[8654] Allow loading some type gameobjects without diplay id set.

But make its always inviisble for client.
This commit is contained in:
VladimirMangos 2009-10-17 02:08:41 +04:00
parent 45c9c136ba
commit bc1f6c7d3f
3 changed files with 16 additions and 5 deletions

View file

@ -693,6 +693,10 @@ bool GameObject::isVisibleForInState(Player const* u, WorldObject const* viewPoi
if(!IsInWorld() || !u->IsInWorld())
return false;
// invisible at client always
if(!GetGOInfo()->displayId)
return false;
// Transport always visible at this step implementation
if(IsTransport() && IsInMap(u))
return true;

View file

@ -1228,11 +1228,18 @@ void ObjectMgr::LoadGameobjects()
if(!gInfo->displayId)
{
sLog.outErrorDb("Gameobject (GUID: %u Entry %u GoType: %u) doesn't have displayId (%u), not loaded.", guid, entry, gInfo->type, gInfo->displayId);
continue;
switch(gInfo->type)
{
// can be invisible always and then not req. display id in like case
case GAMEOBJECT_TYPE_TRAP:
case GAMEOBJECT_TYPE_SPELL_FOCUS:
break;
default:
sLog.outErrorDb("Gameobject (GUID: %u Entry %u GoType: %u) have displayId == 0 and then will always invisible in game.", guid, entry, gInfo->type);
break;
}
}
if (gInfo->displayId && !sGameObjectDisplayInfoStore.LookupEntry(gInfo->displayId))
else if (!sGameObjectDisplayInfoStore.LookupEntry(gInfo->displayId))
{
sLog.outErrorDb("Gameobject (GUID: %u Entry %u GoType: %u) have invalid displayId (%u), not loaded.", guid, entry, gInfo->type, gInfo->displayId);
continue;

View file

@ -1,4 +1,4 @@
#ifndef __REVISION_NR_H__
#define __REVISION_NR_H__
#define REVISION_NR "8653"
#define REVISION_NR "8654"
#endif // __REVISION_NR_H__