X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Ftools.c;h=777a1a08c833bcde707f13a322b04767195a82f3;hb=0ac301d6e3c5551a5ff66baaaa8ce867bb1aceb1;hp=3c301a3912f9b03461885a1102dfafe0807dee71;hpb=c9308ba3e7ddea2d7e44b4d98f0dfbb19e18f04f;p=rocksndiamonds.git diff --git a/src/tools.c b/src/tools.c index 3c301a39..777a1a08 100644 --- a/src/tools.c +++ b/src/tools.c @@ -654,10 +654,9 @@ void DrawTileCursor(int draw_target) !tile_cursor.active) return; - if (tile_cursor.x != tile_cursor.target_x || - tile_cursor.y != tile_cursor.target_y) + if (tile_cursor.moving) { - int step = TILESIZE_VAR / (GADGET_FRAME_DELAY / video.frame_delay_value); + int step = TILESIZE_VAR / 4; int dx = tile_cursor.target_x - tile_cursor.x; int dy = tile_cursor.target_y - tile_cursor.y; @@ -670,6 +669,10 @@ void DrawTileCursor(int draw_target) tile_cursor.y = tile_cursor.target_y; else tile_cursor.y += SIGN(dy) * step; + + if (tile_cursor.x == tile_cursor.target_x && + tile_cursor.y == tile_cursor.target_y) + tile_cursor.moving = FALSE; } dst_x = tile_cursor.x; @@ -8744,6 +8747,11 @@ void CheckSaveEngineSnapshot_SP(boolean murphy_is_waiting, } } +void CheckSaveEngineSnapshot_MM(boolean button_released) +{ + CheckSaveEngineSnapshotToList(); +} + void CheckSingleStepMode_EM(byte action[MAX_PLAYERS], int frame, boolean any_player_moving, boolean any_player_snapping, @@ -8774,6 +8782,15 @@ void CheckSingleStepMode_SP(boolean murphy_is_waiting, CheckSaveEngineSnapshot_SP(murphy_is_waiting, murphy_is_dropping); } +void CheckSingleStepMode_MM(boolean button_released) +{ + if (tape.single_step && tape.recording && !tape.pausing) + if (button_released) + TapeTogglePause(TAPE_TOGGLE_AUTOMATIC); + + CheckSaveEngineSnapshot_MM(button_released); +} + void getGraphicSource_SP(struct GraphicInfo_SP *g_sp, int graphic, int sync_frame, int x, int y) {