mirror of
https://github.com/HowestDAE/dae16-VerhulstBram.git
synced 2025-12-16 18:41:48 +01:00
Add alot of memory leak fixes
This commit is contained in:
@@ -63,6 +63,10 @@ WorldLevel::WorldLevel(Camera* camera, Rectf viewport): Level(camera),
|
||||
|
||||
}
|
||||
WorldLevel::~WorldLevel() {
|
||||
delete m_refeulBuilding;
|
||||
delete m_mineralBuilding;
|
||||
delete m_junkBuilding;
|
||||
delete m_repairBuilding;
|
||||
//delete m_pTextTexture;
|
||||
}
|
||||
void WorldLevel::Update(float elapsedSec) {
|
||||
@@ -111,6 +115,25 @@ void WorldLevel::Update(float elapsedSec) {
|
||||
|
||||
m_player.Update(elapsedSec, *this);
|
||||
|
||||
//Move the camera when the player gets to the edge
|
||||
if(m_FollowPlayer) {
|
||||
Vector2f playerPos = m_player.GetPosition();
|
||||
Vector2f newCameraPos = m_pCamera->GetPosition();
|
||||
if (playerPos.x < newCameraPos.x + 50) {
|
||||
newCameraPos.x = playerPos.x - 50;
|
||||
}
|
||||
if (playerPos.x > newCameraPos.x + m_viewport.width - 100) {
|
||||
newCameraPos.x = playerPos.x - m_viewport.width + 100;
|
||||
}
|
||||
if (playerPos.y < newCameraPos.y + 50) {
|
||||
newCameraPos.y = playerPos.y - 50;
|
||||
}
|
||||
if (playerPos.y > newCameraPos.y + m_viewport.height - 50) {
|
||||
newCameraPos.y = playerPos.y - m_viewport.height + 50;
|
||||
}
|
||||
m_pCamera->SetPosition(newCameraPos);
|
||||
}
|
||||
|
||||
Screen* screen = m_screenManager->GetCurrentScreen();
|
||||
if (screen != nullptr) {
|
||||
screen->Update(elapsedSec);
|
||||
@@ -158,6 +181,9 @@ void WorldLevel::Draw() const {
|
||||
m_pCamera->EndRendering();
|
||||
|
||||
utils::FillRect(utils::GetMousePos(), 10, 10);
|
||||
|
||||
utils::DrawRect(50, 50, m_viewport.width - 100, m_viewport.height - 100);
|
||||
|
||||
const Screen* screen = m_screenManager->GetCurrentScreen();
|
||||
if (screen != nullptr) {
|
||||
screen->Draw();
|
||||
@@ -209,12 +235,12 @@ void WorldLevel::ProcessImGui() {
|
||||
}
|
||||
if (ImGui::BeginMenu("Screens")) {
|
||||
if (ImGui::MenuItem("Open Fuel screen")) {
|
||||
ScreenManager::GetInstance()->OpenScreen(ScreenManager::Fuel);
|
||||
ScreenManager::GetInstance()->OpenScreen(ScreenManager::m_FuelScreen);
|
||||
}
|
||||
|
||||
|
||||
if (ImGui::MenuItem("Open Sell screen")) {
|
||||
ScreenManager::GetInstance()->OpenScreen(ScreenManager::SellScreen);
|
||||
ScreenManager::GetInstance()->OpenScreen(ScreenManager::m_SellScreen);
|
||||
}
|
||||
|
||||
if (ImGui::MenuItem("Close Screen")) {
|
||||
@@ -249,6 +275,7 @@ void WorldLevel::ProcessImGui() {
|
||||
m_pCamera->SetPosition(Vector2f { -m_viewport.width / 2, -m_viewport.height / 2 });
|
||||
m_pCamera->SetScale(1.0f);
|
||||
}
|
||||
ImGui::Checkbox("Follow Player", &m_FollowPlayer);
|
||||
ImGui::End();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user