#include "pch.h" #include "GameManager.h" GameManager* GameManager::m_pInstance = nullptr; GameManager& GameManager::GetInstance() { if (m_pInstance == nullptr) { m_pInstance = new GameManager(); } return *m_pInstance; } void GameManager::DestroyInstance() { delete m_pInstance->m_pInventory; delete m_pInstance->m_FuelLowSound; delete m_pInstance; } void GameManager::SetMainScreen(MainScreen* pMainScreen) { m_pMainScreen = pMainScreen; //TODO: not the best but ¯\_(ツ)_/¯ } void GameManager::SetPlayer(Player* pPlayer) { m_pPlayer = pPlayer; } void GameManager::SetFuel(float fuel) { m_Fuel = fuel; //Limit to 0 - MAXa } float GameManager::GetFuel() const { return m_Fuel; } void GameManager::DecreaseFuel(float fuel) { m_Fuel -= fuel; m_Fuel = std::max(0.0f, m_Fuel); } void GameManager::AddFuel(float fuel) { m_Fuel += fuel; } void GameManager::SetHullIntegrity(int hullIntegrity) { m_HullIntegrity = hullIntegrity; } int GameManager::GetHullIntegrity() const { return m_HullIntegrity; } void GameManager::DamageHull(int damage) { m_HullIntegrity -= damage; } void GameManager::SetScore(int score) { m_Score = score; } int GameManager::GetScore() const { return m_Score; } void GameManager::IncreaseScore(int score) { m_Score += score; } void GameManager::SetMoney(int money) { m_Money = money; } int GameManager::GetMoney() const { return m_Money; } void GameManager::IncreaseMoney(int money) { m_Money += money; } void GameManager::Update(float elapsedSecs) { m_pMainScreen->SetFuelMeterValue(this->GetMaxFuel() - m_Fuel); m_pMainScreen->SetHullMeterValue(m_HullIntegrity); m_pMainScreen->SetScore(std::to_string(m_Score)); m_pMainScreen->SetMoney("$ " + std::to_string(m_Money)); if (m_HullIntegrity <= 0 or m_Fuel <= 0) { m_pPlayer->Die(); } if(m_Fuel <= 20) { if(m_FuelLowSound->IsPlaying() == false) { m_FuelLowSound->Play(1); } } } int GameManager::GetMaxFuel() { return 100; //TODO: change if i ever add upgrades } PlayerInventory* GameManager::GetInventory() { return m_pInventory; } Player* GameManager::GetPlayer() { return m_pPlayer; } GameManager::GameManager() { m_pInventory = new PlayerInventory(); m_FuelLowSound = new SoundEffect{ "sound/fuel_low.wav" }; }