refactor(Core/Creature): Remove Inhabit Type (#9272)

This is in reference to issue: https://github.com/azerothcore/azerothcore-wotlk/issues/4361
This is comprised of a cherry pick and partial tc cherry pick:
592516ae69
dbadb6369c
34cfa69efd
12de860b4a
a22bc236eb
This commit is contained in:
acidmanifesto
2022-01-06 14:33:22 +01:00
committed by GitHub
parent d504a62293
commit 2d4e17fd16
26 changed files with 4948 additions and 230 deletions

View File

@@ -195,18 +195,30 @@ void RandomMovementGenerator<Creature>::_setRandomLocation(Creature* creature)
_currDestPosition.Relocate(finalPoint.x, finalPoint.y, finalPoint.z);
creature->AddUnitState(UNIT_STATE_ROAMING_MOVE);
++_moveCount;
if (roll_chance_i((int32)_moveCount * 25 + 10))
bool walk = true;
switch (creature->GetMovementTemplate().GetRandom())
{
_moveCount = 0;
_nextMoveTime.Reset(urand(4000, 8000));
case CreatureRandomMovementType::CanRun:
walk = creature->IsWalking();
break;
case CreatureRandomMovementType::AlwaysRun:
walk = false;
break;
default:
break;
}
Movement::MoveSplineInit init(creature);
init.MovebyPath(finalPath);
init.SetWalk(true);
init.SetWalk(walk);
init.Launch();
++_moveCount;
if (roll_chance_i((int32) _moveCount * 25 + 10))
{
_moveCount = 0;
_nextMoveTime.Reset(urand(4000, 8000));
}
if (sWorld->getBoolConfig(CONFIG_DONT_CACHE_RANDOM_MOVEMENT_PATHS))
_preComputedPaths.erase(pathIdx);

View File

@@ -189,7 +189,18 @@ bool ChaseMovementGenerator<T>::DoUpdate(T* owner, uint32 time_diff)
bool walk = false;
if (cOwner && !cOwner->IsPet())
{
walk = owner->IsWalking();
switch (cOwner->GetMovementTemplate().GetChase())
{
case CreatureChaseMovementType::CanWalk:
if (owner->IsWalking())
walk = true;
break;
case CreatureChaseMovementType::AlwaysWalk:
walk = true;
break;
default:
break;
}
}
owner->AddUnitState(UNIT_STATE_CHASE_MOVE);