X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Fgame_em%2Finput.c;h=4028f19a553f692e9dc7a3541358f0ab24d27918;hp=cc703ba96cb4ab622f7bec3c2e7f7e5a1dd1b5f1;hb=567cfcb396e3fc031a25362b747dd0a5a096b4ec;hpb=ac86d841daa4ecafff3128110a1db109e03fb355 diff --git a/src/game_em/input.c b/src/game_em/input.c index cc703ba9..4028f19a 100644 --- a/src/game_em/input.c +++ b/src/game_em/input.c @@ -6,7 +6,7 @@ #include "main_em.h" -unsigned long RandomEM; +unsigned int RandomEM; struct LEVEL lev; struct PLAYER ply[MAX_PLAYERS]; @@ -63,43 +63,18 @@ void InitGameEngine_EM() prepare_em_level(); game_initscreen(); - game_animscreen(); -#if 0 - /* blit playfield from scroll buffer to normal back buffer for fading in */ - BlitScreenToBitmap_EM(backbuffer); -#endif + RedrawPlayfield_EM(FALSE); +} + +void UpdateGameDoorValues_EM() +{ } void GameActions_EM(byte action[MAX_PLAYERS], boolean warp_mode) { int i; - -#if 0 - static int foo = -1; - - if (action[0] == 0 && foo != 0) - printf("KEY RELEASED @ %05d\n", FrameCounter); - - foo = action[0]; -#endif - -#if 0 -#if 1 - if (FrameCounter % 10 == 0) -#endif - printf("::: %05d: %lu, %d\n", FrameCounter, RandomEM, frame); -#endif - - game_animscreen(); - -#if 1 -#if 0 - SyncDisplay(); -#endif - - blitscreen(); -#endif + boolean any_player_dropping = FALSE; RandomEM = RandomEM * 129 + 1; @@ -108,7 +83,7 @@ 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); + UpdateEngineValues(screen_x / TILEX, screen_y / TILEY, ply[0].x, ply[0].y); if (frame == 7) { @@ -121,9 +96,20 @@ void GameActions_EM(byte action[MAX_PLAYERS], boolean warp_mode) synchro_3(); sound_play(); - if (!warp_mode) /* do not redraw values in warp mode */ - DrawGameDoorValues_EM(); + UpdateGameDoorValues_EM(); } + + for (i = 0; i < MAX_PLAYERS; i++) + if (ply[i].joy_drop && + ply[i].dynamite && + ply[i].dynamite_cnt > 0 && + 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); + + RedrawPlayfield_EM(FALSE); } /* read input device for players */