Core/Entities: Some changes to LoS z checking & MotionMaster.MoveJumpTo

Port From (https://github.com/TrinityCore/TrinityCore/commit/fe362cf2c9d5c71db4698480ce26cb35dbc58f28)
This commit is contained in:
hondacrx
2021-03-17 13:55:29 -04:00
parent 369c4526be
commit f2317c2bdf
6 changed files with 45 additions and 43 deletions
+26
View File
@@ -782,6 +782,32 @@ namespace Game.Entities
public void SetHoverHeight(float hoverHeight) { SetUpdateFieldValue(m_values.ModifyValue(m_unitData).ModifyValue(m_unitData.HoverHeight), hoverHeight); }
public override float GetCollisionHeight()
{
float scaleMod = GetObjectScale(); // 99% sure about this
if (IsMounted())
{
var mountDisplayInfo = CliDB.CreatureDisplayInfoStorage.LookupByKey(GetMountDisplayId());
if (mountDisplayInfo != null)
{
var mountModelData = CliDB.CreatureModelDataStorage.LookupByKey(mountDisplayInfo.ModelID);
if (mountModelData != null)
{
var displayInfo = CliDB.CreatureDisplayInfoStorage.LookupByKey(GetNativeDisplayId());
var modelData = CliDB.CreatureModelDataStorage.LookupByKey(displayInfo.ModelID);
return scaleMod * (mountModelData.MountHeight + modelData.CollisionHeight * 0.5f);
}
}
}
//! Dismounting case - use basic default model data
var defaultDisplayInfo = CliDB.CreatureDisplayInfoStorage.LookupByKey(GetNativeDisplayId());
var defaultModelData = CliDB.CreatureModelDataStorage.LookupByKey(defaultDisplayInfo.ModelID);
return scaleMod * defaultModelData.CollisionHeight;
}
public Guardian GetGuardianPet()
{
ObjectGuid pet_guid = GetPetGUID();