diff options
author | Spp <spp@jorge.gr> | 2011-10-18 09:51:55 +0200 |
---|---|---|
committer | Spp <spp@jorge.gr> | 2011-10-18 09:51:55 +0200 |
commit | be34ae68bbf29ba326a2ad6f030253ff065da0a1 (patch) | |
tree | 82816ee8f636248d251c4ce5df1e327df19cf0c7 | |
parent | 8a448c5d914f9b7c081f258cdfc9eb2d100fcd8b (diff) |
Core/GameObject: Fixed memory leak in GameObject AI handling
-rwxr-xr-x | src/server/game/Entities/GameObject/GameObject.cpp | 20 |
1 files changed, 7 insertions, 13 deletions
diff --git a/src/server/game/Entities/GameObject/GameObject.cpp b/src/server/game/Entities/GameObject/GameObject.cpp index 4cfa8940964..bac96a01222 100755 --- a/src/server/game/Entities/GameObject/GameObject.cpp +++ b/src/server/game/Entities/GameObject/GameObject.cpp @@ -16,26 +16,14 @@ * with this program. If not, see <http://www.gnu.org/licenses/>. */ -#include "Common.h" -#include "QuestDef.h" #include "GameObjectAI.h" #include "ObjectMgr.h" #include "GroupMgr.h" #include "PoolMgr.h" #include "SpellMgr.h" -#include "Spell.h" -#include "UpdateMask.h" -#include "Opcodes.h" -#include "WorldPacket.h" #include "World.h" -#include "DatabaseEnv.h" -#include "LootMgr.h" -#include "GridNotifiers.h" #include "GridNotifiersImpl.h" #include "CellImpl.h" -#include "InstanceScript.h" -#include "Battleground.h" -#include "Util.h" #include "OutdoorPvPMgr.h" #include "BattlegroundAV.h" #include "ScriptMgr.h" @@ -73,15 +61,21 @@ GameObject::GameObject() : WorldObject(), m_goValue(new GameObjectValue), m_AI(N GameObject::~GameObject() { delete m_goValue; + delete m_AI; //if (m_uint32Values) // field array can be not exist if GameOBject not loaded // CleanupsBeforeDelete(); } bool GameObject::AIM_Initialize() { + if (m_AI) + delete m_AI; m_AI = FactorySelector::SelectGameObjectAI(this); - if (!m_AI) return false; + + if (!m_AI) + return false; + m_AI->InitializeAI(); return true; } |