int2str(TimeLeft, 3), FS_SMALL, FC_YELLOW);
UnmapGameButtons();
+ UnmapTapeButtons();
game_gadget[SOUND_CTRL_ID_MUSIC]->checked = setup.sound_music;
game_gadget[SOUND_CTRL_ID_LOOPS]->checked = setup.sound_loops;
game_gadget[SOUND_CTRL_ID_SIMPLE]->checked = setup.sound_simple;
action_delay_value =
(tape.playing && tape.fast_forward ? FfwdFrameDelay : GameFrameDelay);
+ if (tape.playing && tape.index_search)
+ action_delay_value = 0;
+
/* ---------- main game synchronization point ---------- */
WaitUntilDelayReached(&action_delay, action_delay_value);
if (tape.pausing)
return;
- if (tape.playing)
- TapePlayDelay();
- else if (tape.recording)
- TapeRecordDelay();
-
recorded_player_action = (tape.playing ? TapePlayAction() : NULL);
for (i=0; i<MAX_PLAYERS; i++)
return FALSE;
#else
if (!FrameReached(&player->move_delay, player->move_delay_value) &&
- !(tape.playing && tape.file_version < FILE_VERSION_2_0))
+ !(tape.playing && tape.game_version < GAME_VERSION_2_0))
return FALSE;
#endif
return MF_NO_ACTION;
#else
if (!FrameReached(&player->push_delay, player->push_delay_value) &&
- !(tape.playing && tape.file_version < FILE_VERSION_2_0) &&
+ !(tape.playing && tape.game_version < GAME_VERSION_2_0) &&
element != EL_SPRING)
return MF_NO_ACTION;
#endif
return MF_NO_ACTION;
#else
if (!FrameReached(&player->push_delay, player->push_delay_value) &&
- !(tape.playing && tape.file_version < FILE_VERSION_2_0) &&
+ !(tape.playing && tape.game_version < GAME_VERSION_2_0) &&
element != EL_BALLOON)
return MF_NO_ACTION;
#endif
}
}
+void RequestQuitGame()
+{
+ if (AllPlayersGone ||
+ !setup.ask_on_escape ||
+ level_editor_test_game ||
+ Request("Do you really want to quit the game ?",
+ REQ_ASK | REQ_STAY_CLOSED))
+ {
+#if defined(PLATFORM_UNIX)
+ if (options.network)
+ SendToServer_StopPlaying();
+ else
+#endif
+ {
+ game_status = MAINMENU;
+ DrawMainMenu();
+ }
+ }
+ else
+ {
+ OpenDoor(DOOR_OPEN_1 | DOOR_COPY_BACK);
+ }
+}
+
+
/* ---------- new game button stuff ---------------------------------------- */
/* graphic position values for game buttons */
switch (id)
{
case GAME_CTRL_ID_STOP:
- if (AllPlayersGone)
- {
- CloseDoor(DOOR_CLOSE_1);
- game_status = MAINMENU;
- DrawMainMenu();
- break;
- }
-
- if (level_editor_test_game ||
- Request("Do you really want to quit the game ?",
- REQ_ASK | REQ_STAY_CLOSED))
- {
-#if defined(PLATFORM_UNIX)
- if (options.network)
- SendToServer_StopPlaying();
- else
-#endif
- {
- game_status = MAINMENU;
- DrawMainMenu();
- }
- }
- else
- OpenDoor(DOOR_OPEN_1 | DOOR_COPY_BACK);
+ RequestQuitGame();
break;
case GAME_CTRL_ID_PAUSE: