X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fmainloop.cpp;h=978d6bfede1b5360b06903ddcfceb84e9cbd59b2;hb=38105c22495d9439b30221732dd5d7b89f328a0c;hp=4d32e54ff627200396db98a293f010c1ac3e8545;hpb=eba22158410e664ad102c7542e333d00dcb80cc3;p=supertux.git diff --git a/src/mainloop.cpp b/src/mainloop.cpp index 4d32e54ff..978d6bfed 100644 --- a/src/mainloop.cpp +++ b/src/mainloop.cpp @@ -35,6 +35,7 @@ #include "screen_fade.hpp" #include "timer.hpp" #include "player_status.hpp" +#include "video/renderer.hpp" #include "random_generator.hpp" // the engine will be run with a logical framerate of 64fps. @@ -179,21 +180,49 @@ void MainLoop::process_events() { main_controller->update(); + Uint8* keystate = SDL_GetKeyState(NULL); SDL_Event event; - while(SDL_PollEvent(&event)) { - main_controller->process_event(event); - if(Menu::current() != NULL) - Menu::current()->event(event); - if(event.type == SDL_QUIT) - quit(); - else if (event.type == SDL_KEYDOWN && event.key.keysym.sym == SDLK_F11) { - config->use_fullscreen = !config->use_fullscreen; - init_video(); - } - else if (event.type == SDL_KEYDOWN && event.key.keysym.sym == SDLK_PRINT) { - take_screenshot(); + while(SDL_PollEvent(&event)) + { + main_controller->process_event(event); + + if(Menu::current() != NULL) + Menu::current()->event(event); + + switch(event.type) + { + case SDL_QUIT: + quit(); + break; + + case SDL_VIDEORESIZE: + Renderer::instance()->resize(event.resize.w, event.resize.h); + Menu::recalc_pos(); + break; + + case SDL_KEYDOWN: + if (event.key.keysym.sym == SDLK_F11) + { + config->use_fullscreen = !config->use_fullscreen; + init_video(); + Menu::recalc_pos(); + } + else if (event.key.keysym.sym == SDLK_PRINT || + event.key.keysym.sym == SDLK_F12) + { + take_screenshot(); + } + else if (event.key.keysym.sym == SDLK_F1 && + (keystate[SDLK_LCTRL] || keystate[SDLK_RCTRL]) && + keystate[SDLK_c]) + { + Console::instance->toggle(); + config->console_enabled = true; + config->save(); + } + break; + } } - } } void @@ -250,7 +279,7 @@ MainLoop::run(DrawingContext &context) if (elapsed_ticks > ticks_per_frame*4) { // when the game loads up or levels are switched the - // elapsed_ticks grows extremly large, so we just ignore those + // elapsed_ticks grows extremely large, so we just ignore those // large time jumps elapsed_ticks = 0; }