void gamenMgr_Update(){ switch(gamen){ case -1: menu_Update(); break; case 0: game_Update(); break; case 1: config_Update(); break; case 2: break; } }
void Update (GameState gameState) { /*Update - Updates the games state via gameObjects.*/ key key; if(gameState->gamePhase == game && gameState->gameStartTime == -1){ gameState->gameStartTime = SDL_GetTicks(); } switch (gameState->gamePhase){ case titleScreen: OBJECTS->titleMenu->active = true; menu_Update(OBJECTS->titleMenu, OBJECTS->code); if(OBJECTS->titleMenu->active == false){ gameState->gamePhase = game; } DrawMenu(OBJECTS->gameDisplay, OBJECTS->titleMenu, OBJECTS->code, OBJECTS->gameScore); break; case game: key = Get_Key(&OBJECTS->gameDisplay->playerFacing); if(key == PAUSE){ gameState->gamePhase = paused; } player_Update(OBJECTS->player, key, OBJECTS->entities->startPlatform); entity_Update(OBJECTS->entities, gameState->gameStartTime, SDL_GetTicks()); code_Update(OBJECTS->code, SDL_GetTicks()); display_ScoreUpdate(OBJECTS->gameScore, OBJECTS->player, OBJECTS->entities, OBJECTS->gameSounds, \ gameState->gameStartTime, OBJECTS->pauseMenu->menuTimeElapsed); display_Update(OBJECTS->gameDisplay, player_Get_Player_X(OBJECTS->player), \ player_Get_Player_Y(OBJECTS->player), player_Get_Player_Lives(OBJECTS->player), \ OBJECTS->entities, OBJECTS->gameScore); if(player_Get_Player_Lives(OBJECTS->player) < 0){ Mix_PlayChannel(-1, OBJECTS->gameSounds->death, 0); gameState->gamePhase = gameOver; } break; case paused: OBJECTS->pauseMenu->active = true; menu_Update(OBJECTS->pauseMenu, OBJECTS->code); if(OBJECTS->pauseMenu->active == false){ gameState->gamePhase = game; } DrawMenu(OBJECTS->gameDisplay, OBJECTS->pauseMenu, OBJECTS->code, OBJECTS->gameScore); break; case gameOver: display_RecordScore(OBJECTS->gameScore->scorePoints); SDL_Delay(3000); gameState->gamePhase = titleScreen; player_GameOverReset(OBJECTS->player); enitity_GameOverReset(OBJECTS->entities); free(OBJECTS->gameScore); OBJECTS->gameScore = display_ScoreInitialise(OBJECTS->gameDisplay); gameState->gameStartTime = -1; display_ResetBaseItems(OBJECTS->gameDisplay); break; } }