X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Fevents.c;h=d749ad3dca9ccc27e5cdbef86d90e6640fd71ed9;hp=843fb1972f2005871c0eab401a157b6ccd260be1;hb=8a383c7596b43a99276cbd82d0b21cbf12588a33;hpb=0f93b05731f58802973324200cfd8aecb11a4786 diff --git a/src/events.c b/src/events.c index 843fb197..d749ad3d 100644 --- a/src/events.c +++ b/src/events.c @@ -1202,6 +1202,60 @@ static void HandleKeysSpecial(Key key) } } +void HandleKeysDebug(Key key) +{ +#ifdef DEBUG + int i; + + if (game_status == GAME_MODE_PLAYING || !setup.debug.frame_delay_game_only) + { + boolean mod_key_pressed = (GetKeyModState() != KMOD_None); + + 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; + } + } + } + + if (game_status == GAME_MODE_PLAYING) + { + if (key == KSYM_d) + { + options.debug = !options.debug; + + Error(ERR_DEBUG, "debug mode %s", + (options.debug ? "enabled" : "disabled")); + } + else if (key == KSYM_v) + { + Error(ERR_DEBUG, "currently using game engine version %d", + game.engine_version); + } + } +#endif +} + void HandleKey(Key key, int key_status) { boolean anyTextGadgetActiveOrJustFinished = anyTextGadgetActive(); @@ -1584,26 +1638,6 @@ void HandleKey(Key key, int key_status) RequestQuitGame(setup.ask_on_escape); break; -#ifdef DEBUG - case KSYM_d: - if (options.debug) - { - options.debug = FALSE; - printf("debug mode disabled\n"); - } - else - { - options.debug = TRUE; - printf("debug mode enabled\n"); - } - break; - - case KSYM_v: - printf("::: currently using game engine version %d\n", - game.engine_version); - break; -#endif - default: break; } @@ -1621,40 +1655,7 @@ void HandleKey(Key key, int key_status) } } -#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 + HandleKeysDebug(key); } void HandleNoEvent()