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