X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fgame.c;h=fada15db70f1733e76a78b67ac8cfdfea807e05f;hb=fd18ece8535cd87bd72989d7d39092d55b283939;hp=73cab1164f2c8c48b934128ce355bf0f85784376;hpb=cc17a49a1a63c1df0e55a5afd510698e21b71dfe;p=rocksndiamonds.git diff --git a/src/game.c b/src/game.c index 73cab116..fada15db 100644 --- a/src/game.c +++ b/src/game.c @@ -405,16 +405,8 @@ void InitGame() ScreenMovPos = 0; ScreenGfxPos = 0; - if (level.high_speed) - { - MoveSpeed = 4; - ScrollStepSize = TILEX/4; - } - else - { - MoveSpeed = 8; - ScrollStepSize = TILEX/8; - } + MoveSpeed = (level.double_speed ? 4 : 8); + ScrollStepSize = TILEX / MoveSpeed; AllPlayersGone = FALSE; SiebAktiv = FALSE; @@ -568,10 +560,10 @@ void InitGame() SBY_Lower = lev_fieldy - SCR_FIELDY + 1; } - if (lev_fieldx < SCR_FIELDX) + if (lev_fieldx + (SBX_Left == -1 ? 2 : 0) <= SCR_FIELDX) SBX_Left = SBX_Right = -1 * (SCR_FIELDX - lev_fieldx) / 2; - if (lev_fieldy < SCR_FIELDY) + if (lev_fieldy + (SBY_Upper == -1 ? 2 : 0) <= SCR_FIELDY) SBY_Upper = SBY_Lower = -1 * (SCR_FIELDY - lev_fieldy) / 2; scroll_x = SBX_Left; @@ -625,6 +617,7 @@ void InitGame() game_gadget[SOUND_CTRL_ID_LOOPS]->checked = setup.sound_loops; game_gadget[SOUND_CTRL_ID_SIMPLE]->checked = setup.sound_simple; MapGameButtons(); + MapTapeButtons(); #endif XCopyArea(display, drawto, pix[PIX_DB_DOOR], gc, @@ -1083,6 +1076,7 @@ void Explode(int ex, int ey, int phase, int mode) int num_phase = 9, delay = 2; int last_phase = num_phase * delay; int half_phase = (num_phase / 2) * delay; + int first_phase_after_start = EX_PHASE_START + 1; if (phase == EX_PHASE_START) /* initialize 'Store[][]' field */ { @@ -1197,9 +1191,20 @@ void Explode(int ex, int ey, int phase, int mode) x = ex; y = ey; - Frame[x][y] = (phase