void Game::Load(const string& savegameIDArg) { _saveGameID = savegameIDArg; LoadSavegame(savegameIDArg); int spawnX; int spawnY; _map.FindSpawnPoint(spawnX, spawnY, 40, 45); _player->SetXY((float)spawnX, (float)spawnY); }
void Game::HandleInput(void) { if(_ingameMenu.GetStatus() == false) { while(SDL_PollEvent(&event)) { _player->HandleInput(); if(event.key.type == SDL_KEYDOWN) { if(event.key.keysym.sym == SDLK_ESCAPE) _ingameMenu.SetStatus(true); if(event.key.keysym.sym == SDLK_p) debugEnabled = !debugEnabled; if(event.key.keysym.sym == SDLK_0) eventHistory->LogEvent("Item gained."); } else if(event.type == SDL_QUIT) { _gameRunning = false; _runGameReturnValue = gameQuitGame; break; } } } else { switch(_ingameMenu.HandleInput()) { case ingameMenuNothing: break; case ingameMenuResume: _ingameMenu.SetStatus(false); break; case ingameMenuSaveGame: SaveSavegame(); _ingameMenu.SetStatus(false); Debug::logger->message("Game Saved!"); break; case ingameMenuLoadGame: LoadSavegame(_saveGameID); _ingameMenu.SetStatus(false); Debug::logger->message("Game Loaded!"); break; case ingameMenuOptions: break; case ingameMenuMainMenu: SDL_FillRect(screen, NULL, 0); _gameRunning = false; break; } if(event.type == SDL_QUIT) { _gameRunning = false; _ingameMenu.SetStatus(false); _runGameReturnValue = gameQuitGame; } } }
int change_resolution(int fullscreen, int ResIndex) { int screen_mode; if(!IsInstalled) { return install(fullscreen,800,480,32); //Security mesure } KillTextures(); allegro_gl_set(AGL_COLOR_DEPTH, Resolutions->mode[ResIndex].bpp); if(fullscreen) screen_mode=GFX_OPENGL_FULLSCREEN; else screen_mode=GFX_OPENGL_WINDOWED; if (set_gfx_mode(screen_mode, Resolutions->mode[ResIndex].width,Resolutions->mode[ResIndex].height, 0, 0)) { set_gfx_mode(GFX_TEXT, 0, 0, 0, 0); allegro_message("Unable to set graphic mode\n%s\n", allegro_error); return 1; } SetOpenGL2D(); RefreshGLTextures(); AspectRatio=(float)SCREEN_W/(float)SCREEN_H; Fullscreen=fullscreen; Width=Resolutions->mode[ResIndex].width; Height=Resolutions->mode[ResIndex].height; depth=Resolutions->mode[ResIndex].bpp; ResolutionIndex=ResIndex; set_config_file("Resources/Setting.cfg"); set_config_int("graphics","Fullscreen",Fullscreen); set_config_int("graphics","Width",Width); set_config_int("graphics","Height",Height); set_config_int("graphics","depth",depth); set_config_int("graphics","ResolutionIndex",ResIndex); flush_config_file(); LoadSavegame(); return 0; }