X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Fevents.c;h=3997764e0dfdb948517b13950db73e2eb260e0ac;hb=12d5d704d201d4df017290bfee65145e51cdf97a;hp=bad68898754e4249cdc09113095de3dc57728356;hpb=887ef75d8d48c7279d4ea0897350070782f2c457;p=rocksndiamonds.git diff --git a/src/events.c b/src/events.c index bad68898..3997764e 100644 --- a/src/events.c +++ b/src/events.c @@ -309,7 +309,7 @@ void EventLoop(void) BackToFront(); /* reset video frame delay to default (may change again while playing) */ - SetVideoFrameDelay(GAME_FRAME_DELAY); + SetVideoFrameDelay(MenuFrameDelay); if (game_status == GAME_MODE_QUIT) return; @@ -1357,6 +1357,7 @@ void HandleKey(Key key, int key_status) if ((key == KSYM_minus || key == KSYM_plus || + key == KSYM_equal || // ("Shift-=" is "+" on US keyboards) key == KSYM_0) && ((GetKeyModState() & KMOD_Control) || (GetKeyModState() & KMOD_Alt) || @@ -1522,10 +1523,6 @@ void HandleKey(Key key, int key_status) break; #ifdef DEBUG - case KSYM_0: - GameFrameDelay = (GameFrameDelay == 500 ? GAME_FRAME_DELAY : 500); - break; - case KSYM_b: setup.sp_show_border_elements = !setup.sp_show_border_elements; printf("Supaplex border elements %s\n", @@ -1552,20 +1549,6 @@ void HandleKey(Key key, int key_status) break; #ifdef DEBUG - case KSYM_0: - if (key == KSYM_0) - { - if (GameFrameDelay == 500) - GameFrameDelay = GAME_FRAME_DELAY; - else - GameFrameDelay = 500; - } - else - GameFrameDelay = (key - KSYM_0) * 10; - printf("Game speed == %d%% (%d ms delay between two frames)\n", - GAME_FRAME_DELAY * 100 / GameFrameDelay, GameFrameDelay); - break; - case KSYM_d: if (options.debug) { @@ -1601,6 +1584,41 @@ void HandleKey(Key key, int key_status) return; } } + +#ifdef DEBUG + if (game_status == GAME_MODE_PLAYING || !setup.debug.frame_delay_game_only) + { + boolean mod_key_pressed = ((GetKeyModState() & KMOD_Control) || + (GetKeyModState() & KMOD_Alt) || + (GetKeyModState() & KMOD_Meta)); + + for (i = 0; i < NUM_DEBUG_FRAME_DELAY_KEYS; i++) + { + if (key == setup.debug.frame_delay_key[i] && + (mod_key_pressed || !setup.debug.frame_delay_use_mod_key)) + { + GameFrameDelay = (GameFrameDelay != setup.debug.frame_delay[i] ? + setup.debug.frame_delay[i] : GAME_FRAME_DELAY); + + if (!setup.debug.frame_delay_game_only) + MenuFrameDelay = GameFrameDelay; + + SetVideoFrameDelay(GameFrameDelay); + + if (GameFrameDelay > ONE_SECOND_DELAY) + Error(ERR_DEBUG, "frame delay == %d ms", GameFrameDelay); + else if (GameFrameDelay != 0) + Error(ERR_DEBUG, "frame delay == %d ms (max. %d fps / %d %%)", + GameFrameDelay, ONE_SECOND_DELAY / GameFrameDelay, + GAME_FRAME_DELAY * 100 / GameFrameDelay); + else + Error(ERR_DEBUG, "frame delay == 0 ms (maximum speed)"); + + break; + } + } + } +#endif } void HandleNoEvent()