Files
dae16-VerhulstBram-GameProject/Game/Gui/Screens/ScreenManager.cpp
2024-04-23 11:17:17 +02:00

56 lines
1.7 KiB
C++

#include "pch.h"
#include "ScreenManager.h"
#include "FuelScreen.h"
#include "utils.h"
ScreenManager* ScreenManager::m_pInstance = nullptr;
Screen* ScreenManager::m_FuelScreen{ nullptr };
Screen* ScreenManager::m_SellScreen{ nullptr };
ScreenManager* ScreenManager::GetInstance() {
if(m_pInstance == nullptr) {
m_pInstance = new ScreenManager();
}
if(!m_pInstance->m_AreScreensInitialized) {
m_pInstance->InitializeScreens(); //TODO: Ask if this a hack
m_pInstance->m_AreScreensInitialized = true;
}
return m_pInstance;
}
void ScreenManager::DestroyInstance() {
delete m_pInstance;
}
void ScreenManager::OpenScreen(Screen* screen) {
if(m_IsScreenOpen == false) {
m_currentScreen = screen;
m_IsScreenOpen = true;
}
}
void ScreenManager::CloseScreen() {
if(m_IsScreenOpen == true) {
m_IsScreenOpen = false;
m_currentScreen = nullptr;
}
}
ScreenManager::~ScreenManager() {
delete m_FuelScreen;
delete m_SellScreen;
}
void ScreenManager::InitializeScreens() {
Vector2f fuelScreenSize = Vector2f { 492, 396 };
Vector2f fuelScreenCenter = Vector2f { utils::GetViewport().x / 2 - fuelScreenSize.x / 2, utils::GetViewport().y / 2 - fuelScreenSize.y / 2 };
m_FuelScreen = new FuelScreen { "gui/fuel/background.png", fuelScreenCenter, Vector2f { 0, 0 }, TextureManager::GetInstance() };
Vector2f sellScreenSize = Vector2f { 533, 398 };
Vector2f sellScreenCenter = Vector2f { utils::GetViewport().x / 2 - sellScreenSize.x / 2, utils::GetViewport().y / 2 - sellScreenSize.y / 2 };
m_SellScreen = new Screen { "gui/sell/background.png", sellScreenCenter, sellScreenSize, TextureManager::GetInstance() };
//m_Button = Button { "gui/close.png", closeButtonPos, closeButtonSize, TextureManager::GetInstance() };
}