Delete possessed AI only on creature delete.
--HG-- branch : trunk
This commit is contained in:
@@ -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
@@ -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
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user