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();
}
+
+ redraw_mask |= REDRAW_FIELD;
}
void GameActions_EM_Main()
AdvanceFrameAndPlayerCounters(-1); /* advance counters for all players */
}
+void GameActions_RND_Main()
+{
+ GameActions_RND();
+
+ BlitScreenToBitmap_RND(backbuffer);
+}
+
void GameActions_RND()
{
int magic_wall_x = 0, magic_wall_y = 0;
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)
{