Add alot of memory leak fixes

This commit is contained in:
Bram Verhulst
2024-04-23 11:17:17 +02:00
parent e75b80eea8
commit 1b90f222a4
27 changed files with 234 additions and 48 deletions

View File

@@ -7,7 +7,7 @@ class MainMenuLevel : public Level
public:
MainMenuLevel(Camera* camera);
virtual ~MainMenuLevel();
virtual ~MainMenuLevel() override;
void Update(float elapsedSec) override;
void Draw() const override;

View File

@@ -1,5 +1,7 @@
#include "pch.h"
#include "Building.h"
#include <iostream>
Building::Building(const std::string& filePath, const Vector2f& position, TextureManager* pTextureManager): m_Position(position) {
m_Texture = pTextureManager->GetTexture(filePath);
m_Size = Vector2f(m_Texture->GetWidth(), m_Texture->GetHeight());

View File

@@ -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();
}

View File

@@ -44,10 +44,11 @@ private:
Building* m_junkBuilding;
Building* m_repairBuilding;
float testLerp{ 0.0f };
// ImGui Vars
bool m_ShowTextureManagerWindow { false };
bool m_ShowCameraWindow { false };
bool m_ShowPlayerInfo { true };
bool m_FollowPlayer { false };
};