local_player->LevelSolved_GameEnd = TRUE;
- CloseDoor(DOOR_CLOSE_1);
+ if (!global.use_envelope_request)
+ CloseDoor(DOOR_CLOSE_1);
if (local_player->LevelSolved_SaveTape)
{
SaveTapeChecked(tape.level_nr); /* ask to save tape */
}
+ CloseDoor(DOOR_CLOSE_ALL);
+
if (level_editor_test_game)
{
game_status = GAME_MODE_MAIN;
}
else
{
- GameActions_RND();
+ GameActions_RND_Main();
}
+
+ BlitScreenToBitmap(backbuffer);
+
+ CheckLevelTime();
+
+ AdvanceFrameAndPlayerCounters(-1); /* advance counters for all players */
}
void GameActions_EM_Main()
effective_action[i] = stored_player[i].effective_action;
GameActions_EM(effective_action, warp_mode);
-
- CheckLevelTime();
-
- AdvanceFrameAndPlayerCounters(-1); /* advance counters for all players */
}
void GameActions_SP_Main()
effective_action[i] = stored_player[i].effective_action;
GameActions_SP(effective_action, warp_mode);
+}
- CheckLevelTime();
-
- AdvanceFrameAndPlayerCounters(-1); /* advance counters for all players */
+void GameActions_RND_Main()
+{
+ GameActions_RND();
}
void GameActions_RND()
}
#endif
- CheckLevelTime();
-
DrawAllPlayers();
PlayAllPlayersSound();
redraw_mask |= REDRAW_FPS;
}
- AdvanceFrameAndPlayerCounters(-1); /* advance counters for all players */
-
if (local_player->show_envelope != 0 && local_player->MovPos == 0)
{
ShowEnvelope(local_player->show_envelope - EL_ENVELOPE_1);
void ScrollLevel(int dx, int dy)
{
- int softscroll_offset = (setup.soft_scrolling ? 2 * TILEX_VAR : 0);
+ int scroll_offset = 2 * TILEX_VAR;
int x, y;
BlitBitmap(drawto_field, drawto_field,
- FX + TILEX_VAR * (dx == -1) - softscroll_offset,
- FY + TILEY_VAR * (dy == -1) - softscroll_offset,
- SXSIZE - TILEX_VAR * (dx != 0) + 2 * softscroll_offset,
- SYSIZE - TILEY_VAR * (dy != 0) + 2 * softscroll_offset,
- FX + TILEX_VAR * (dx == 1) - softscroll_offset,
- FY + TILEY_VAR * (dy == 1) - softscroll_offset);
+ FX + TILEX_VAR * (dx == -1) - scroll_offset,
+ FY + TILEY_VAR * (dy == -1) - scroll_offset,
+ SXSIZE - TILEX_VAR * (dx != 0) + 2 * scroll_offset,
+ SYSIZE - TILEY_VAR * (dy != 0) + 2 * scroll_offset,
+ FX + TILEX_VAR * (dx == 1) - scroll_offset,
+ FY + TILEY_VAR * (dy == 1) - scroll_offset);
if (dx != 0)
{