[Fix] Memory leaks not logging correctly.

This commit is contained in:
Tamir Atias 2012-06-11 00:03:20 +03:00
parent 307800e02f
commit 30dfb9dba0
7 changed files with 26 additions and 23 deletions

View File

@ -1,4 +1,5 @@
#include "Game.h" #include "Game.h"
#include "../libUnuk/Engine/MemManager.h"
#include "../libUnuk/Engine/NPC.h" #include "../libUnuk/Engine/NPC.h"
#include "../libUnuk/Engine/WorldManager.h" #include "../libUnuk/Engine/WorldManager.h"
#include "../Unuk/Globals.h" #include "../Unuk/Globals.h"
@ -6,7 +7,7 @@
Game::Game(void) { Game::Game(void) {
Debug::logger->message("Creating characters.."); Debug::logger->message("Creating characters..");
_player = new Player(&_map); _player = scNew(Player,(&_map));
_map.SetPlayer(_player); _map.SetPlayer(_player);
_runGameReturnValue = gameMainMenu; _runGameReturnValue = gameMainMenu;
@ -85,7 +86,7 @@ gameNavVal_t Game::Run(void) {
_playerExpBar.SetWidthHeight(200, 25); _playerExpBar.SetWidthHeight(200, 25);
_playerExpBar.SetProgress(0.0f); _playerExpBar.SetProgress(0.0f);
eventHistory = new EventHistory(); eventHistory = scNew(EventHistory,);
_gameRunning = true; _gameRunning = true;
while(_gameRunning) { while(_gameRunning) {

View File

@ -7,6 +7,7 @@
#include "../libUnuk/UI/MainMenu.h" #include "../libUnuk/UI/MainMenu.h"
#include "../libUnuk/UI/SavegameMenu.h" #include "../libUnuk/UI/SavegameMenu.h"
#include "../libUnuk/Engine/MemManager.h"
#include "../libUnuk/Engine/NPC.h" #include "../libUnuk/Engine/NPC.h"
#include "../libUnuk/System/Debug.h" #include "../libUnuk/System/Debug.h"
#include "../libUnuk/System/Input.h" #include "../libUnuk/System/Input.h"
@ -40,7 +41,7 @@ static gameNavVal_t RunGame(bool load) {
saveFilename << "save_" << savegameMenu.GetSelection(); saveFilename << "save_" << savegameMenu.GetSelection();
Debug::logger->message("Entering game state.."); Debug::logger->message("Entering game state..");
Game* game = new Game; Game* game = scNew(Game,);
if(load) { if(load) {
game->Load(saveFilename.str()); game->Load(saveFilename.str());
@ -97,7 +98,7 @@ int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int) {
Text::LoadFonts(); Text::LoadFonts();
Debug::logger->message("Creating mainmenu.."); Debug::logger->message("Creating mainmenu..");
MainMenu* menu = new MainMenu; MainMenu* menu = scNew(MainMenu,);
// Initiate input. // Initiate input.
Debug::logger->message("Setting up I/O.."); Debug::logger->message("Setting up I/O..");
@ -113,7 +114,7 @@ int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int) {
delete menu; delete menu;
switch(RunGame(false)) { switch(RunGame(false)) {
case gameMainMenu: case gameMainMenu:
menu = new MainMenu; menu = scNew(MainMenu,);
break; break;
case gameQuitGame: case gameQuitGame:
menuRunning = false; menuRunning = false;
@ -124,7 +125,7 @@ int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int) {
delete menu; delete menu;
switch(RunGame(true)) { switch(RunGame(true)) {
case gameMainMenu: case gameMainMenu:
menu = new MainMenu; menu = scNew(MainMenu,);
break; break;
case gameQuitGame: case gameQuitGame:
menuRunning = false; menuRunning = false;

View File

@ -52,6 +52,4 @@ void operator delete[](void* buffer) throw();
#define __LINE__ 0 #define __LINE__ 0
#endif #endif
#ifndef _MSC_VER #define scNew(cName, params) (new (__FILE__, __LINE__)(cName)(params))
#define new(__FILE__, __LINE__)
#endif

View File

@ -1,4 +1,5 @@
#include "WorldManager.h" #include "WorldManager.h"
#include "MemManager.h"
#include "NPC.h" #include "NPC.h"
#include "../../Unuk/Player.h" #include "../../Unuk/Player.h"
#include "../../Unuk/Globals.h" #include "../../Unuk/Globals.h"
@ -69,7 +70,7 @@ NPC* WorldManager::GetNPCAt(int xArg, int yArg) {
} }
void WorldManager::CreateNPC(int x, int y) { void WorldManager::CreateNPC(int x, int y) {
NPC* npc = new NPC(_level); NPC* npc = scNew(NPC,(_level));
npc->SetXY(x, y); npc->SetXY(x, y);
npc->ForceMove(); npc->ForceMove();
npc->LoadSprites("../Data/Media/Images/Characters/template.png", 40,45); npc->LoadSprites("../Data/Media/Images/Characters/template.png", 40,45);

View File

@ -3,9 +3,9 @@
#include <cstdarg> #include <cstdarg>
#include <ctime> #include <ctime>
#include "Debug.h" #include "Debug.h"
#include "../libUnuk/Engine/MemManager.h"
#include "string" #include "string"
using namespace std; using namespace std;
// =================================================================== // ===================================================================
@ -87,7 +87,7 @@ bool Debug::openLog(bool logToFile) {
logger->message("Warning: Multiple calls to openLog()."); logger->message("Warning: Multiple calls to openLog().");
return false; return false;
} }
logger = new Debug(logToFile); logger = scNew(Debug,logToFile);
return true; return true;
} }

View File

@ -1,9 +1,10 @@
#include "IngameMenu.h" #include "IngameMenu.h"
#include "../Engine/MemManager.h"
IngameMenu::IngameMenu(void) { IngameMenu::IngameMenu(void) {
_active = false; _active = false;
Button* btnResume = new Button(); Button* btnResume = scNew(Button,);
btnResume->SetOutRGB(200, 200, 200); btnResume->SetOutRGB(200, 200, 200);
btnResume->SetOverRGB(255, 255, 255); btnResume->SetOverRGB(255, 255, 255);
btnResume->SetTextRGB(0, 0, 0); btnResume->SetTextRGB(0, 0, 0);
@ -12,7 +13,7 @@ IngameMenu::IngameMenu(void) {
btnResume->SetHighlighted(false); btnResume->SetHighlighted(false);
btnResume->SetXY(SCREEN_WIDTH / 2 - btnResume->GetWidth() / 2, 50); btnResume->SetXY(SCREEN_WIDTH / 2 - btnResume->GetWidth() / 2, 50);
Button* btnSaveGame = new Button(); Button* btnSaveGame = scNew(Button,);
btnSaveGame->SetOutRGB(200, 200, 200); btnSaveGame->SetOutRGB(200, 200, 200);
btnSaveGame->SetOverRGB(255, 255, 255); btnSaveGame->SetOverRGB(255, 255, 255);
btnSaveGame->SetTextRGB(0, 0, 0); btnSaveGame->SetTextRGB(0, 0, 0);
@ -21,7 +22,7 @@ IngameMenu::IngameMenu(void) {
btnSaveGame->SetHighlighted(false); btnSaveGame->SetHighlighted(false);
btnSaveGame->SetXY(SCREEN_WIDTH / 2 - btnSaveGame->GetWidth() / 2, 100); btnSaveGame->SetXY(SCREEN_WIDTH / 2 - btnSaveGame->GetWidth() / 2, 100);
Button* btnLoadGame = new Button(); Button* btnLoadGame = scNew(Button,);
btnLoadGame->SetOutRGB(200, 200, 200); btnLoadGame->SetOutRGB(200, 200, 200);
btnLoadGame->SetOverRGB(255, 255, 255); btnLoadGame->SetOverRGB(255, 255, 255);
btnLoadGame->SetTextRGB(0, 0, 0); btnLoadGame->SetTextRGB(0, 0, 0);
@ -30,7 +31,7 @@ IngameMenu::IngameMenu(void) {
btnLoadGame->SetHighlighted(false); btnLoadGame->SetHighlighted(false);
btnLoadGame->SetXY(SCREEN_WIDTH / 2 - btnLoadGame->GetWidth() / 2, 150); btnLoadGame->SetXY(SCREEN_WIDTH / 2 - btnLoadGame->GetWidth() / 2, 150);
Button* btnOptions = new Button(); Button* btnOptions = scNew(Button,);
btnOptions->SetOutRGB(200, 200, 200); btnOptions->SetOutRGB(200, 200, 200);
btnOptions->SetOverRGB(255, 255, 255); btnOptions->SetOverRGB(255, 255, 255);
btnOptions->SetTextRGB(0, 0, 0); btnOptions->SetTextRGB(0, 0, 0);
@ -39,7 +40,7 @@ IngameMenu::IngameMenu(void) {
btnOptions->SetHighlighted(false); btnOptions->SetHighlighted(false);
btnOptions->SetXY(SCREEN_WIDTH / 2 - btnOptions->GetWidth() / 2, 200); btnOptions->SetXY(SCREEN_WIDTH / 2 - btnOptions->GetWidth() / 2, 200);
Button* btnExitToMenu = new Button(); Button* btnExitToMenu = scNew(Button,);
btnExitToMenu->SetOutRGB(200, 200, 200); btnExitToMenu->SetOutRGB(200, 200, 200);
btnExitToMenu->SetOverRGB(255, 255, 255); btnExitToMenu->SetOverRGB(255, 255, 255);
btnExitToMenu->SetTextRGB(0, 0, 0); btnExitToMenu->SetTextRGB(0, 0, 0);

View File

@ -1,7 +1,8 @@
#include "MainMenu.h" #include "MainMenu.h"
#include "../Engine/MemManager.h"
MainMenu::MainMenu(void) { MainMenu::MainMenu(void) {
Button* btnNewGame = new Button(); Button* btnNewGame = scNew(Button,);
btnNewGame->SetOutRGB(200, 200, 200); btnNewGame->SetOutRGB(200, 200, 200);
btnNewGame->SetOverRGB(255, 255, 255); btnNewGame->SetOverRGB(255, 255, 255);
btnNewGame->SetTextRGB(0, 0, 0); btnNewGame->SetTextRGB(0, 0, 0);
@ -10,7 +11,7 @@ MainMenu::MainMenu(void) {
btnNewGame->SetHighlightRGB(255, 128, 0); btnNewGame->SetHighlightRGB(255, 128, 0);
btnNewGame->SetHighlighted(false); btnNewGame->SetHighlighted(false);
Button* btnLoadGame = new Button(); Button* btnLoadGame = scNew(Button,);
btnLoadGame->SetOutRGB(200, 200, 200); btnLoadGame->SetOutRGB(200, 200, 200);
btnLoadGame->SetOverRGB(255, 255, 255); btnLoadGame->SetOverRGB(255, 255, 255);
btnLoadGame->SetTextRGB(0, 0, 0); btnLoadGame->SetTextRGB(0, 0, 0);
@ -19,7 +20,7 @@ MainMenu::MainMenu(void) {
btnLoadGame->SetHighlighted(false); btnLoadGame->SetHighlighted(false);
btnLoadGame->SetXY(100, 200); btnLoadGame->SetXY(100, 200);
Button* btnOptions = new Button(); Button* btnOptions = scNew(Button,);
btnOptions->SetOutRGB(200, 200, 200); btnOptions->SetOutRGB(200, 200, 200);
btnOptions->SetOverRGB(255, 255, 255); btnOptions->SetOverRGB(255, 255, 255);
btnOptions->SetTextRGB(0, 0, 0); btnOptions->SetTextRGB(0, 0, 0);
@ -28,7 +29,7 @@ MainMenu::MainMenu(void) {
btnOptions->SetHighlighted(false); btnOptions->SetHighlighted(false);
btnOptions->SetXY(100, 250); btnOptions->SetXY(100, 250);
Button* btnExit = new Button(); Button* btnExit = scNew(Button,);
btnExit->SetOutRGB(200, 200, 200); btnExit->SetOutRGB(200, 200, 200);
btnExit->SetOverRGB(255, 255, 255); btnExit->SetOverRGB(255, 255, 255);
btnExit->SetTextRGB(0, 0, 0); btnExit->SetTextRGB(0, 0, 0);
@ -54,7 +55,7 @@ MainMenu::MainMenu(void) {
lblMenu.SetXY(100, 75); lblMenu.SetXY(100, 75);
lblMenu.SetTextBlended("Unuk", vlarge, 0, 0, 0); lblMenu.SetTextBlended("Unuk", vlarge, 0, 0, 0);
Button* btnNewGameYes = new Button(); Button* btnNewGameYes = scNew(Button,);
btnNewGameYes->SetOutRGB(20, 150, 20); btnNewGameYes->SetOutRGB(20, 150, 20);
btnNewGameYes->SetOverRGB(20, 255, 20); btnNewGameYes->SetOverRGB(20, 255, 20);
btnNewGameYes->SetTextRGB(0, 0, 0); btnNewGameYes->SetTextRGB(0, 0, 0);
@ -63,7 +64,7 @@ MainMenu::MainMenu(void) {
btnNewGameYes->SetHighlighted(false); btnNewGameYes->SetHighlighted(false);
btnNewGameYes->SetXY(rectNewGame.GetX() + rectNewGame.GetWidth() / 2 - 40 - btnNewGameYes->GetWidth(), 190); btnNewGameYes->SetXY(rectNewGame.GetX() + rectNewGame.GetWidth() / 2 - 40 - btnNewGameYes->GetWidth(), 190);
Button* btnNewGameNo = new Button(); Button* btnNewGameNo = scNew(Button,);
btnNewGameNo->SetOutRGB(150, 20, 20); btnNewGameNo->SetOutRGB(150, 20, 20);
btnNewGameNo->SetOverRGB(255, 20, 20); btnNewGameNo->SetOverRGB(255, 20, 20);
btnNewGameNo->SetTextRGB(0, 0, 0); btnNewGameNo->SetTextRGB(0, 0, 0);