fix(Core): increase visibility distance of large game objects (#1788)

This commit is contained in:
Stoabrogga
2019-05-08 08:01:40 +02:00
committed by GitHub
parent a68c13488e
commit eee8e965e7
4 changed files with 48 additions and 3 deletions

View File

@@ -351,6 +351,10 @@ bool GameObject::Create(uint32 guidlow, uint32 name_id, Map* map, uint32 phaseMa
LastUsedScriptID = GetGOInfo()->ScriptId;
AIM_Initialize();
// Check if GameObject is Large
if (goinfo->IsLargeGameObject())
SetVisibilityDistanceOverride(true);
return true;
}

View File

@@ -524,6 +524,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;
}
}
bool IsGameObjectForQuests() const
{
return IsForQuests;