diff options
author | Krudor <erikstrandberg93@hotmail.com> | 2016-07-06 21:30:59 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2016-07-06 21:30:59 +0200 |
commit | 147d77102c0dcb2e2c38c4e0b69d6cf45ab74e33 (patch) | |
tree | 224409795f5190e9ea30df77285b06aff976b620 | |
parent | be461280d2e919df3dbf7990cbf9684a03bcfbad (diff) |
[6.x] Fix camera and player collision not updating when object scale changes (#17529)
-rw-r--r-- | src/server/game/Entities/Player/Player.cpp | 9 | ||||
-rw-r--r-- | src/server/game/Entities/Player/Player.h | 7 |
2 files changed, 10 insertions, 6 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 2875d3a2d5a..ad9bc52a335 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -1761,6 +1761,15 @@ void Player::RemoveFromWorld() } } +void Player::SetObjectScale(float scale) +{ + Unit::SetObjectScale(scale); + SetFloatValue(UNIT_FIELD_BOUNDINGRADIUS, scale * DEFAULT_WORLD_OBJECT_SIZE); + SetFloatValue(UNIT_FIELD_COMBATREACH, scale * DEFAULT_COMBAT_REACH); + if (IsInWorld()) + SendMovementSetCollisionHeight(scale * GetCollisionHeight(IsMounted())); +} + bool Player::IsImmunedToSpellEffect(SpellInfo const* spellInfo, uint32 index) const { SpellEffectInfo const* effect = spellInfo->GetEffect(GetMap()->GetDifficultyID(), index); diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h index 20739ed4148..33666bdd5b3 100644 --- a/src/server/game/Entities/Player/Player.h +++ b/src/server/game/Entities/Player/Player.h @@ -1199,12 +1199,7 @@ class TC_GAME_API Player : public Unit, public GridObject<Player> void AddToWorld() override; void RemoveFromWorld() override; - void SetObjectScale(float scale) override - { - Unit::SetObjectScale(scale); - SetFloatValue(UNIT_FIELD_BOUNDINGRADIUS, scale * DEFAULT_WORLD_OBJECT_SIZE); - SetFloatValue(UNIT_FIELD_COMBATREACH, scale * DEFAULT_COMBAT_REACH); - } + void SetObjectScale(float scale) override; bool TeleportTo(uint32 mapid, float x, float y, float z, float orientation, uint32 options = 0); bool TeleportTo(WorldLocation const &loc, uint32 options = 0); |