Core/Movement: Refresh collision height on shapeshifting

Port From (https://github.com/TrinityCore/TrinityCore/commit/49992508a46eb8cd73205a896ae8d84bd991bc39)
This commit is contained in:
hondacrx
2021-02-13 21:03:57 -05:00
parent 74457b4b0b
commit 077a06f7c1
4 changed files with 13 additions and 9 deletions
+3 -3
View File
@@ -4815,7 +4815,7 @@ namespace Game.Entities
SendPacket(new OnCancelExpectedRideVehicleAura());
}
public void SendMovementSetCollisionHeight(float height)
public void SendMovementSetCollisionHeight(float height, UpdateCollisionHeightReason reason)
{
MoveSetCollisionHeight setCollisionHeight = new MoveSetCollisionHeight();
setCollisionHeight.MoverGUID = GetGUID();
@@ -4824,7 +4824,7 @@ namespace Game.Entities
setCollisionHeight.Scale = GetObjectScale();
setCollisionHeight.MountDisplayID = GetMountDisplayId();
setCollisionHeight.ScaleDuration = m_unitData.ScaleDuration;
setCollisionHeight.Reason = UpdateCollisionHeightReason.Mount;
setCollisionHeight.Reason = reason;
SendPacket(setCollisionHeight);
MoveUpdateCollisionHeight updateCollisionHeight = new MoveUpdateCollisionHeight();
@@ -6382,7 +6382,7 @@ namespace Game.Entities
SetBoundingRadius(scale * SharedConst.DefaultPlayerBoundingRadius);
SetCombatReach(scale * SharedConst.DefaultPlayerCombatReach);
if (IsInWorld)
SendMovementSetCollisionHeight(scale * GetCollisionHeight(IsMounted()));
SendMovementSetCollisionHeight(scale * GetCollisionHeight(IsMounted()), UpdateCollisionHeightReason.Scale);
}
public uint GetXP() { return m_activePlayerData.XP; }
+2 -2
View File
@@ -1318,7 +1318,7 @@ namespace Game.Entities
if (charm.GetTypeId() == TypeId.Unit)
charm.AddUnitFlag(UnitFlags.Stunned);
player.SendMovementSetCollisionHeight(player.GetCollisionHeight(true));
player.SendMovementSetCollisionHeight(player.GetCollisionHeight(true), UpdateCollisionHeightReason.Mount);
}
RemoveAurasWithInterruptFlags(SpellAuraInterruptFlags.Mount);
@@ -1334,7 +1334,7 @@ namespace Game.Entities
Player thisPlayer = ToPlayer();
if (thisPlayer != null)
thisPlayer.SendMovementSetCollisionHeight(thisPlayer.GetCollisionHeight(false));
thisPlayer.SendMovementSetCollisionHeight(thisPlayer.GetCollisionHeight(false), UpdateCollisionHeightReason.Mount);
// dismount as a vehicle
if (IsTypeId(TypeId.Player) && GetVehicleKit() != null)