X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fgame.c;h=59a77329b4b5f83dbffb7fe84bd41036a90a46b9;hb=9c92df9586b75ab4afc1345e944108e95e2f8174;hp=ba066ed9bd6f740064244ccbbbf6d1f775ceded0;hpb=3ff2e8a0b5c27b99a9920bdf5ed82bc41bf40181;p=rocksndiamonds.git diff --git a/src/game.c b/src/game.c index ba066ed9..59a77329 100644 --- a/src/game.c +++ b/src/game.c @@ -2519,17 +2519,11 @@ void DisplayGameControlValues() height = graphic_info[graphic].height * size / TILESIZE; if (draw_masked) - { - SetClipOrigin(src_bitmap, src_bitmap->stored_clip_gc, - dst_x - src_x, dst_y - src_y); BlitBitmapMasked(src_bitmap, drawto, src_x, src_y, width, height, dst_x, dst_y); - } else - { BlitBitmap(src_bitmap, drawto, src_x, src_y, width, height, dst_x, dst_y); - } } } else if (type == TYPE_STRING) @@ -3915,6 +3909,14 @@ void InitGame() FadeIn(REDRAW_FIELD); +#if 1 + // full screen redraw is required at this point in the following cases: + // - special editor door undrawn when game was started from level editor + // - drawing area (playfield) was changed and has to be removed completely + redraw_mask = REDRAW_ALL; + BackToFront(); +#endif + if (!game.restart_level) { /* copy default game door content to main double buffer */ @@ -5007,7 +5009,6 @@ void DrawRelocateScreen(int old_x, int old_y, int x, int y, int move_dir, /* scroll in two steps of half tile size to make things smoother */ BlitBitmap(drawto_field, window, fx, fy, SXSIZE, SYSIZE, SX, SY); - FlushDisplay(); Delay(wait_delay_value); /* scroll second step to align at full tile size */ @@ -10831,6 +10832,9 @@ static void CheckLevelTime() DrawVideoDisplay(VIDEO_STATE_TIME_ON, TapeTime); } + if (tape.recording || tape.playing) + DrawVideoDisplay(VIDEO_STATE_FRAME_ON, FrameCounter); + UpdateAndDisplayGameControlValues(); } @@ -11074,7 +11078,8 @@ void GameActions() TapeRecordAction(tape_action); #if USE_NEW_PLAYER_ASSIGNMENTS - if (game.team_mode) + // !!! also map player actions in single player mode !!! + // if (game.team_mode) { byte mapped_action[MAX_PLAYERS];