X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Ftools.c;h=dc847065c0916b414429cc4aae6af7373c946f88;hb=adbac7f8da2ae3ec52cd6f08e8c4c6fedacfc804;hp=3c301a3912f9b03461885a1102dfafe0807dee71;hpb=c9308ba3e7ddea2d7e44b4d98f0dfbb19e18f04f;p=rocksndiamonds.git diff --git a/src/tools.c b/src/tools.c index 3c301a39..dc847065 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,23 @@ void CheckSaveEngineSnapshot_SP(boolean murphy_is_waiting, } } +void CheckSaveEngineSnapshot_MM(boolean element_clicked, + boolean button_released) +{ + if (button_released) + { + if (game.snapshot.mode == SNAPSHOT_MODE_EVERY_MOVE) + CheckSaveEngineSnapshotToList(); + } + else if (element_clicked) + { + if (game.snapshot.mode != SNAPSHOT_MODE_EVERY_MOVE) + CheckSaveEngineSnapshotToList(); + + game.snapshot.changed_action = TRUE; + } +} + void CheckSingleStepMode_EM(byte action[MAX_PLAYERS], int frame, boolean any_player_moving, boolean any_player_snapping, @@ -8774,6 +8794,16 @@ void CheckSingleStepMode_SP(boolean murphy_is_waiting, CheckSaveEngineSnapshot_SP(murphy_is_waiting, murphy_is_dropping); } +void CheckSingleStepMode_MM(boolean element_clicked, + boolean button_released) +{ + if (tape.single_step && tape.recording && !tape.pausing) + if (button_released) + TapeTogglePause(TAPE_TOGGLE_AUTOMATIC); + + CheckSaveEngineSnapshot_MM(element_clicked, button_released); +} + void getGraphicSource_SP(struct GraphicInfo_SP *g_sp, int graphic, int sync_frame, int x, int y) {