diff options
| author | Kittnz <Kittnz@users.noreply.github.com> | 2019-01-16 20:47:25 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-01-16 20:47:25 +0100 |
| commit | d1c3ee957962897a8b323e8ca40302fc5ff8c932 (patch) | |
| tree | 3172d2e387de6b2728ba7eb2700351ba2ad6740d /src/server/game/Entities/GameObject | |
| parent | 583eba3688c1ab8a4c5de38e00939bc491411960 (diff) | |
Core/Objects: increase sight range of objects & correct general default visibility distance (#22891)
This can be used for anything really.
Note: This does not make the object active.
#21111 #21681
Diffstat (limited to 'src/server/game/Entities/GameObject')
| -rw-r--r-- | src/server/game/Entities/GameObject/GameObject.cpp | 4 | ||||
| -rw-r--r-- | src/server/game/Entities/GameObject/GameObjectData.h | 16 |
2 files changed, 20 insertions, 0 deletions
diff --git a/src/server/game/Entities/GameObject/GameObject.cpp b/src/server/game/Entities/GameObject/GameObject.cpp index 8ae536497f4..bae468c329c 100644 --- a/src/server/game/Entities/GameObject/GameObject.cpp +++ b/src/server/game/Entities/GameObject/GameObject.cpp @@ -399,6 +399,10 @@ bool GameObject::Create(ObjectGuid::LowType guidlow, uint32 name_id, Map* map, u delete linkedGO; } + // Check if GameObject is Large + if (goinfo->IsLargeGameObject()) + SetVisibilityDistanceOverride(VisibilityDistanceType::Large); + return true; } diff --git a/src/server/game/Entities/GameObject/GameObjectData.h b/src/server/game/Entities/GameObject/GameObjectData.h index b27e004289b..ecb5ba8e684 100644 --- a/src/server/game/Entities/GameObject/GameObjectData.h +++ b/src/server/game/Entities/GameObject/GameObjectData.h @@ -571,6 +571,22 @@ struct GameObjectTemplate } } + bool IsLargeGameObject() const + { + switch (type) + { + case GAMEOBJECT_TYPE_BUTTON: return button.large != 0; + case GAMEOBJECT_TYPE_QUESTGIVER: return questgiver.large != 0; + case GAMEOBJECT_TYPE_GENERIC: return _generic.large != 0; + case GAMEOBJECT_TYPE_TRAP: return trap.large != 0; + case GAMEOBJECT_TYPE_SPELL_FOCUS: return spellFocus.large != 0; + case GAMEOBJECT_TYPE_GOOBER: return goober.large != 0; + case GAMEOBJECT_TYPE_SPELLCASTER: return spellcaster.large != 0; + case GAMEOBJECT_TYPE_CAPTURE_POINT: return capturePoint.large != 0; + default: return false; + } + } + void InitializeQueryData(); WorldPacket BuildQueryData(LocaleConstant loc) const; }; |
