Core/Movement: Creatures' idle movement generator can no longer override player mover control.

Port From (https://github.com/TrinityCore/TrinityCore/commit/88c1739e3e1ecf58407b0846f3c8dfeb589f3113)
This commit is contained in:
hondacrx
2021-06-23 17:50:46 -04:00
parent 11cbb26bc1
commit ca1afb5c2e
4 changed files with 13 additions and 3 deletions
+6 -1
View File
@@ -99,10 +99,15 @@ namespace Game.AI
public static IMovementGenerator SelectMovementAI(Creature creature)
{
return creature.DefaultMovementType switch
MovementGeneratorType type = MovementGeneratorType.Idle;
if (creature.GetPlayerMovingMe() == null)
type = creature.GetDefaultMovementType();
return type switch
{
MovementGeneratorType.Random => new RandomMovementGenerator(),
MovementGeneratorType.Waypoint => new WaypointMovementGenerator(),
MovementGeneratorType.Idle => new IdleMovementGenerator(),
_ => null,
};
}
+1 -1
View File
@@ -3177,7 +3177,7 @@ namespace Game.Entities
public void SetNoSearchAssistance(bool val) { m_AlreadySearchedAssistance = val; }
public bool HasSearchedAssistance() { return m_AlreadySearchedAssistance; }
MovementGeneratorType GetDefaultMovementType() { return DefaultMovementType; }
public MovementGeneratorType GetDefaultMovementType() { return DefaultMovementType; }
public void SetDefaultMovementType(MovementGeneratorType mgt) { DefaultMovementType = mgt; }
public long GetRespawnTime() { return m_respawnTime; }
+5
View File
@@ -7245,8 +7245,13 @@ namespace Game.Entities
public void SetMover(Unit target)
{
m_unitMovedByMe.m_playerMovingMe = null;
if (m_unitMovedByMe.IsCreature())
m_unitMovedByMe.GetMotionMaster().Initialize();
m_unitMovedByMe = target;
m_unitMovedByMe.m_playerMovingMe = this;
if (m_unitMovedByMe.IsCreature())
m_unitMovedByMe.GetMotionMaster().Initialize();
MoveSetActiveMover packet = new();
packet.MoverGUID = target.GetGUID();
+1 -1
View File
@@ -1603,7 +1603,7 @@ namespace Game.Entities
return null;
}
Player GetPlayerMovingMe() { return m_playerMovingMe; }
public Player GetPlayerMovingMe() { return m_playerMovingMe; }
public void AddUnitMovementFlag(MovementFlag f)
{