X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fgame_em%2Finput.c;h=7418f0b6a55547757d60334fb3a3089733dbd348;hb=ceb7ded99fc9cc9519adeea07808a344678c196e;hp=f04718f7e4a5b19000c457551d1355ee342cd2ec;hpb=73dd81c85be90e466493bcc6f45c402d29bc7f20;p=rocksndiamonds.git diff --git a/src/game_em/input.c b/src/game_em/input.c index f04718f7..7418f0b6 100644 --- a/src/game_em/input.c +++ b/src/game_em/input.c @@ -8,14 +8,12 @@ #include "level.h" -unsigned long Random; +unsigned long RandomEM; struct PLAYER ply1; struct PLAYER ply2; struct LEVEL lev; -struct LevelInfo_EM native_em_level; - unsigned short **Boom; unsigned short **Cave; unsigned short **Next; @@ -31,7 +29,7 @@ void game_init_vars(void) { int x, y; - Random = 1684108901; + RandomEM = 1684108901; for (y = 0; y < HEIGHT; y++) for (x = 0; x < WIDTH; x++) @@ -72,7 +70,11 @@ void InitGameEngine_EM() void GameActions_EM(byte action) { static unsigned long game_frame_delay = 0; +#if 1 + unsigned long game_frame_delay_value = getGameFrameDelay_EM(20); +#else unsigned long game_frame_delay_value = getGameFrameDelay_EM(25); +#endif #if 0 /* this is done in screens.c/HandleGameActions() by calling BackToFront() */ @@ -83,7 +85,7 @@ void GameActions_EM(byte action) game_animscreen(); - Random = Random * 129 + 1; + RandomEM = RandomEM * 129 + 1; frame = (frame - 1) & 7; @@ -102,9 +104,22 @@ void GameActions_EM(byte action) synchro_3(); sound_play(); - DrawGameDoorValues_EM(lev.required, ply1.dynamite, lev.score, - (lev.time + 4) / 5); + if (game_frame_delay_value > 0) /* do not redraw values in warp mode */ + DrawGameDoorValues_EM(); } + +#if 0 + if (lev.time_initial == 0) + lev.time++; + else if (lev.time > 0) + lev.time--; +#endif + +#if 0 + if (lev.time_initial > 0 && + lev.time > 0 && lev.time <= 50 && lev.time % 5 == 0 && setup.time_limit) + play_sound(-1, -1, SAMPLE_time); +#endif } @@ -112,7 +127,8 @@ void GameActions_EM(byte action) void readjoy(byte action) { - unsigned int north = 0, east = 0, south = 0, west = 0, fire = 0; + unsigned int north = 0, east = 0, south = 0, west = 0; + unsigned int snap = 0, drop = 0; if (action & JOY_LEFT) west = 1; @@ -127,10 +143,14 @@ void readjoy(byte action) south = 1; if (action & JOY_BUTTON_1) - fire = 1; + snap = 1; + + if (action & JOY_BUTTON_2) + drop = 1; #if 1 - ply1.joy_fire = fire; + ply1.joy_snap = snap; + ply1.joy_drop = drop; if (ply1.joy_stick || (north | east | south | west)) { ply1.joy_n = north; @@ -138,8 +158,11 @@ void readjoy(byte action) ply1.joy_s = south; ply1.joy_w = west; } + #else - ply2.joy_fire = fire; + + ply2.joy_snap = snap; + ply2.joy_drop = drop; if (ply2.joy_stick || (north | east | south | west)) { ply2.joy_n = north;