Delete possessed AI only on creature delete.

--HG--
branch : trunk
This commit is contained in:
gvcoman
2008-11-16 14:38:02 -05:00
parent 4b6072f9c3
commit 478ca47083
3 changed files with 9 additions and 8 deletions
+6 -5
View File
@@ -147,7 +147,11 @@ Creature::~Creature()
delete i_AI; delete i_AI;
i_AI = NULL; i_AI = NULL;
DeletePossessedAI(); if (i_AI_possessed)
{
delete i_AI_possessed;
i_AI_possessed = NULL;
}
} }
void Creature::AddToWorld() void Creature::AddToWorld()
@@ -555,13 +559,10 @@ void Creature::InitPossessedAI()
i_AI->OnPossess(true); i_AI->OnPossess(true);
} }
void Creature::DeletePossessedAI() void Creature::DisablePossessedAI()
{ {
if (!i_AI_possessed) return; if (!i_AI_possessed) return;
delete i_AI_possessed;
i_AI_possessed = NULL;
// Signal the old AI that it's been re-enabled // Signal the old AI that it's been re-enabled
i_AI->OnPossess(false); i_AI->OnPossess(false);
} }
+1 -1
View File
@@ -457,7 +457,7 @@ class TRINITY_DLL_SPEC Creature : public Unit
bool AIM_Initialize(); bool AIM_Initialize();
void InitPossessedAI(); void InitPossessedAI();
void DeletePossessedAI(); void DisablePossessedAI();
void AI_SendMoveToPacket(float x, float y, float z, uint32 time, uint32 MovementFlags, uint8 type); void AI_SendMoveToPacket(float x, float y, float z, uint32 time, uint32 MovementFlags, uint8 type);
CreatureAI* AI() { return isPossessed() && i_AI_possessed ? i_AI_possessed : i_AI; } CreatureAI* AI() { return isPossessed() && i_AI_possessed ? i_AI_possessed : i_AI; }
+2 -2
View File
@@ -18896,8 +18896,8 @@ void Player::RemovePossess(bool attack)
if(attack) if(attack)
target->AddThreat(this, 1000000.0f); target->AddThreat(this, 1000000.0f);
} }
// Delete the assigned possessed AI // Disable the assigned possessed AI
((Creature*)target)->DeletePossessedAI(); ((Creature*)target)->DisablePossessedAI();
} }
} }