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;
i_AI = NULL;
DeletePossessedAI();
if (i_AI_possessed)
{
delete i_AI_possessed;
i_AI_possessed = NULL;
}
}
void Creature::AddToWorld()
@@ -555,13 +559,10 @@ void Creature::InitPossessedAI()
i_AI->OnPossess(true);
}
void Creature::DeletePossessedAI()
void Creature::DisablePossessedAI()
{
if (!i_AI_possessed) return;
delete i_AI_possessed;
i_AI_possessed = NULL;
// Signal the old AI that it's been re-enabled
i_AI->OnPossess(false);
}
+1 -1
View File
@@ -457,7 +457,7 @@ class TRINITY_DLL_SPEC Creature : public Unit
bool AIM_Initialize();
void InitPossessedAI();
void DeletePossessedAI();
void DisablePossessedAI();
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; }
+2 -2
View File
@@ -18896,8 +18896,8 @@ void Player::RemovePossess(bool attack)
if(attack)
target->AddThreat(this, 1000000.0f);
}
// Delete the assigned possessed AI
((Creature*)target)->DeletePossessedAI();
// Disable the assigned possessed AI
((Creature*)target)->DisablePossessedAI();
}
}