Core/AI: minimize further undesired behaviours (e3e4b97 followup)

Those Category checks come from checking all Spell::SummonGuardian uses
This commit is contained in:
ccrs
2019-06-24 12:49:15 +02:00
parent e3e4b975ce
commit ebd438883e

View File

@@ -21,6 +21,7 @@
#include "Creature.h"
#include "CreatureAIImpl.h"
#include "CreatureTextMgr.h"
#include "DBCStructure.h"
#include "Language.h"
#include "Log.h"
#include "Map.h"
@@ -153,13 +154,22 @@ void CreatureAI::TriggerAlert(Unit const* who) const
void CreatureAI::JustAppeared()
{
if (!me->GetVehicle())
// Filter which type of summons apply the following follow handling
if (!me->IsSummon())
return;
TempSummon* summon = me->ToTempSummon();
if (summon->m_Properties->Category != SUMMON_CATEGORY_UNK && summon->m_Properties->Category != SUMMON_CATEGORY_PET)
return;
// Not applied to vehicles
if (summon->GetVehicle())
return;
if (Unit* owner = summon->GetCharmerOrOwner())
{
if (Unit* owner = me->GetCharmerOrOwner())
{
me->GetMotionMaster()->Clear();
me->GetMotionMaster()->MoveFollow(owner, PET_FOLLOW_DIST, me->GetFollowAngle());
}
summon->GetMotionMaster()->Clear();
summon->GetMotionMaster()->MoveFollow(owner, PET_FOLLOW_DIST, summon->GetFollowAngle());
}
}