void CGamePlay::Update(float fElapsedTime) { CSGD_MessageSystem *pMS = CSGD_MessageSystem::GetInstance(); CSGD_ObjectManager *pOM = CSGD_ObjectManager::GetInstance(); CPlayerCharacter *pPC = CPlayerCharacter::GetInstance(); CGame *theGame = CGame::GetInstance(); CSGD_DirectInput *pDI = CSGD_DirectInput::GetInstance(); CSGD_EventSystem *pES = CSGD_EventSystem::GetInstance(); stateTimer -= fElapsedTime; for (int i = 0; i < CHEAT_MAX; ++i) CheckForCheats(i); if (pDI->CheckBufferedKeys() != 0) m_cPreviousKeys.push(pDI->CheckBufferedKeys()); if (stateTimer <= 0) { if (m_nEnemyCounter < 3 && m_nRemainingEnemies > 0 && GetLevel() <= 2) pES->SendEvent("spawn enemies", &fElapsedTime); stateTimer = 6; } if (pDI->GetBufferedKey(DIK_P)) theGame->SetPaused(!theGame->GetPaused()); if (GetLevel() == 3) { if (CGame::GetInstance()->GetPaused() == false) m_nBridgeOffsetY += m_nBridgeVelocityY * fElapsedTime * CGame::GetInstance()->GetSpeed(); if (m_nBridgeOffsetY > 450) { m_nBridgeOffsetY = 449; m_nBridgeVelocityY *= -1; } if (m_nBridgeOffsetY < 64) { m_nBridgeOffsetY = 65; m_nBridgeVelocityY *= -1; } CPlayerCharacter::GetInstance()->SetPosY(m_nBridgeOffsetY - 64); m_fSpawnPowerupTimer -= fElapsedTime; if (m_fSpawnPowerupTimer <= 0) { CSGD_EventSystem::GetInstance()->SendEvent("spawn powerups",NULL); m_fSpawnPowerupTimer = 15.0f; } } vector<CBase*>::iterator iter = enemies.begin(); int i = 0; while(iter != enemies.end()) { // see if we've found the pointer we are looking for int i = 0; if ((*iter)->GetHP() <= 0 && GetLevel() <= 3) { int value = enemies[i]->GetScoreValue(); enemies.erase(iter); SetEnemyCounter(GetEnemyCounter() - 1); SetRemainingEnemies(GetRemainingEnemies() - 1); theGame->SetScore(theGame->GetScore() + value); ++i; break; } else iter++; } if (pPC->GetHP() <= 0) { CGame::GetInstance()->SetLives(CGame::GetInstance()->GetLives() - 1); CGame::GetInstance()->ChangeState( CLevelTransition::GetInstance()); } else if (m_nRemainingEnemies <= 0 && m_nEnemyCounter <= 0 && enemies.empty()) { m_fFinishedTimer -= fElapsedTime; if (m_fFinishedTimer <= 0) { SetLevel(GetLevel() + 1); CTallyMenu::GetInstance()->SetHP(pPC->GetHP()); CGame::GetInstance()->ChangeState( CTallyMenu::GetInstance()); } } if (pDI->GetBufferedKey(DIK_ESCAPE)) CGame::GetInstance()->ChangeState( CMainMenu::GetInstance() ); }
void COptions::Update(float fElapsedTime) { CSGD_DirectInput *pDI = CSGD_DirectInput::GetInstance(); CSGD_WaveManager *pWM = CSGD_WaveManager::GetInstance(); pWM->SetVolume(m_nSoundID[0], m_nSFXVolume); pWM->SetVolume(m_nSoundID[1], m_nMusicVolume); if (pDI->GetBufferedKey(DIK_DOWN)) { if (m_nCursorPosition == 450) m_nCursorPosition = 75; else m_nCursorPosition += 125; } if (pDI->GetBufferedKey(DIK_UP)) { if (m_nCursorPosition == 75) m_nCursorPosition = 450; else m_nCursorPosition -= 125; } if (m_nCursorPosition == 75 && !pWM->IsWavePlaying(m_nSoundID[1])) { if (pWM->IsWavePlaying(m_nSoundID[0])) pWM->Stop(m_nSoundID[0]); pWM->Reset(m_nSoundID[1]); pWM->SetVolume(m_nSoundID[1], m_nMusicVolume - 40); //pWM->Play(m_nSoundID[1],1); } if (m_nCursorPosition == 200 && !pWM->IsWavePlaying(m_nSoundID[0])) { if (pWM->IsWavePlaying(m_nSoundID[1])) pWM->Stop(m_nSoundID[1]); pWM->Reset(m_nSoundID[0]); pWM->SetVolume(m_nSoundID[0], GetSFXVolume() - 40); //pWM->Play(m_nSoundID[0],1); } if (m_nCursorPosition > 200) { if (pWM->IsWavePlaying(m_nSoundID[0])) pWM->Stop(m_nSoundID[0]); if (pWM->IsWavePlaying(m_nSoundID[1])) pWM->Stop(m_nSoundID[1]); } if (pDI->GetBufferedKey(DIK_LEFT) && m_nCursorPosition == 75) { if (m_nMusicVolume != 0) m_nMusicVolume -= 10; } if (pDI->GetBufferedKey(DIK_RIGHT) && m_nCursorPosition == 75) { if (m_nMusicVolume != 100) m_nMusicVolume += 10; } if (pDI->GetBufferedKey(DIK_LEFT) && m_nCursorPosition == 200) { if (m_nSFXVolume != 0) m_nSFXVolume -= 10; } if (pDI->GetBufferedKey(DIK_RIGHT) && m_nCursorPosition == 200) { if (m_nSFXVolume != 100) m_nSFXVolume += 10; } if (pDI->GetBufferedKey(DIK_LEFT) && m_nCursorPosition == 325) { if (m_nDifficulty == DIFFICULTY_EASY) m_nDifficulty = DIFFICULTY_HARD; else m_nDifficulty -= 1; } if (pDI->GetBufferedKey(DIK_RIGHT) && m_nCursorPosition == 325) { if (m_nDifficulty == DIFFICULTY_HARD) m_nDifficulty = DIFFICULTY_EASY; else m_nDifficulty += 1; } if (pDI->GetBufferedKey(DIK_RETURN) && m_nCursorPosition == 450 || pDI->GetBufferedKey(DIK_ESCAPE)) { CGame::GetInstance()->ChangeState( CMainMenu::GetInstance() ); } }