X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fgame.c;h=82931d3f3bc55fb9888fbc314604685c6ae700f9;hb=9fa601d400aa71f38fcdc19eaf107f42e0d2a2a3;hp=eeb12767d1a042edb8c334c194e205ea7302501a;hpb=ca2a6ad31f7d41df73e3a45800eb92f7924c446c;p=rocksndiamonds.git diff --git a/src/game.c b/src/game.c index eeb12767..82931d3f 100644 --- a/src/game.c +++ b/src/game.c @@ -3039,7 +3039,11 @@ static void InitGameEngine() for (i = 0; i < MAX_PLAYERS; i++) game.snapshot.last_action[i] = 0; game.snapshot.changed_action = FALSE; - game.snapshot.mode = SNAPSHOT_MODE_MOVE; + game.snapshot.mode = + (strEqual(setup.engine_snapshot_mode, STR_SNAPSHOT_MODE_EVERY_STEP) ? + SNAPSHOT_MODE_EVERY_STEP : + strEqual(setup.engine_snapshot_mode, STR_SNAPSHOT_MODE_EVERY_MOVE) ? + SNAPSHOT_MODE_EVERY_MOVE : SNAPSHOT_MODE_OFF); FreeEngineSnapshotList(); } @@ -14752,13 +14756,13 @@ boolean SaveEngineSnapshotToList() { boolean save_snapshot = (FrameCounter == 0 || - (game.snapshot.mode == SNAPSHOT_MODE_STEP) || - (game.snapshot.mode == SNAPSHOT_MODE_MOVE && + (game.snapshot.mode == SNAPSHOT_MODE_EVERY_STEP) || + (game.snapshot.mode == SNAPSHOT_MODE_EVERY_MOVE && game.snapshot.changed_action)); game.snapshot.changed_action = FALSE; - if (!save_snapshot) + if (game.snapshot.mode == SNAPSHOT_MODE_OFF || !save_snapshot) return FALSE; ListNode *buffers = SaveEngineSnapshotBuffers(); @@ -14802,12 +14806,17 @@ void LoadEngineSnapshot_Redo(int steps) LoadEngineSnapshotValues(); } -boolean CheckEngineSnapshot() +boolean CheckEngineSnapshotSingle() { return (strEqual(snapshot_level_identifier, leveldir_current->identifier) && snapshot_level_nr == level_nr); } +boolean CheckEngineSnapshotList() +{ + return CheckSnapshotList(); +} + /* ---------- new game button stuff ---------------------------------------- */ @@ -15019,7 +15028,7 @@ void GameUndoRedoExt() void GameUndo(int steps) { - if (!CheckEngineSnapshot()) + if (!CheckEngineSnapshotList()) return; LoadEngineSnapshot_Undo(steps); @@ -15029,7 +15038,7 @@ void GameUndo(int steps) void GameRedo(int steps) { - if (!CheckEngineSnapshot()) + if (!CheckEngineSnapshotList()) return; LoadEngineSnapshot_Redo(steps);