Files
prog2/Game/Gui/Screens/ScreenManager.cpp
Bram Verhulst 5f1dcd5788 Add Alot
2024-06-09 22:03:29 +02:00

59 lines
1.8 KiB
C++

#include "pch.h"
#include "ScreenManager.h"
#include "FuelScreen/FuelScreen.h"
#include "SellScreen/SellScreen.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();
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;
}
}
bool ScreenManager::IsScreenOpen() const {
return m_IsScreenOpen;
}
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 SellScreen { "gui/sell/background.png", sellScreenCenter, sellScreenSize, TextureManager::GetInstance() };
//m_Button = Button { "gui/close.png", closeButtonPos, closeButtonSize, TextureManager::GetInstance() };
}