X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fgame_em%2Fgame.c;h=cb7a1cbfc09f7b9a4995535ce36c75368b53d0dd;hb=92ae204856b3b41863f4244dd75cc5c7268f034d;hp=2d11170dc6b392e22443a55949b65a83237f59a6;hpb=e1015ff65ebebc0362ba23172acef6f35dc69f51;p=rocksndiamonds.git diff --git a/src/game_em/game.c b/src/game_em/game.c index 2d11170d..cb7a1cbf 100644 --- a/src/game_em/game.c +++ b/src/game_em/game.c @@ -75,12 +75,14 @@ void InitGameEngine_EM(void) { prepare_em_level(); + logic_init(); + game_initscreen(); RedrawPlayfield_EM(FALSE); } -void GameActions_EM(byte action[MAX_PLAYERS], boolean warp_mode) +void GameActions_EM(byte action[MAX_PLAYERS]) { int i; boolean any_player_dropping = FALSE; @@ -92,7 +94,10 @@ void GameActions_EM(byte action[MAX_PLAYERS], boolean warp_mode) for (i = 0; i < MAX_PLAYERS; i++) readjoy(action[i], &ply[i]); - UpdateEngineValues(screen_x / TILEX, screen_y / TILEY, ply[0].x, ply[0].y); + UpdateEngineValues(CAVE_POS_X(screen_x / TILEX), + CAVE_POS_Y(screen_y / TILEY), + CAVE_POS_X(ply[0].x), + CAVE_POS_Y(ply[0].y)); logic(); @@ -103,8 +108,13 @@ void GameActions_EM(byte action[MAX_PLAYERS], boolean warp_mode) ply[i].dynamite_cnt < 5) any_player_dropping = TRUE; - CheckSingleStepMode_EM(action, frame, game_em.any_player_moving, - game_em.any_player_snapping, any_player_dropping); + boolean single_step_mode_paused = + CheckSingleStepMode_EM(action, frame, game_em.any_player_moving, + game_em.any_player_snapping, any_player_dropping); + + // draw wrapping around before going to single step pause mode + if (single_step_mode_paused && logic_check_wrap()) + logic_move(); RedrawPlayfield_EM(FALSE); }