[11807] Add gameobject_addon table

table holds additional per-guid gameobject data.
currently it contains path rotation info that required for some elevators and transports
This commit is contained in:
SilverIce 2011-09-26 02:34:29 +03:00
parent 7a67f27ab3
commit 3567e69a3d
11 changed files with 93 additions and 16 deletions

View file

@ -1398,7 +1398,7 @@ void ObjectMgr::RemoveCreatureFromGrid(uint32 guid, CreatureData const* data)
}
}
void ObjectMgr::LoadGameobjects()
void ObjectMgr::LoadGameObjects()
{
uint32 count = 0;
@ -1561,6 +1561,33 @@ void ObjectMgr::LoadGameobjects()
sLog.outString( ">> Loaded %lu gameobjects", (unsigned long)mGameObjectDataMap.size());
}
void ObjectMgr::LoadGameObjectAddon()
{
sGameObjectDataAddonStorage.Load();
sLog.outString(">> Loaded %u gameobject addons", sGameObjectDataAddonStorage.RecordCount);
sLog.outString();
for(uint32 i = 1; i < sGameObjectDataAddonStorage.MaxEntry; ++i)
{
GameObjectDataAddon const* addon = sGameObjectDataAddonStorage.LookupEntry<GameObjectDataAddon>(i);
if (!addon)
continue;
if (!GetGODataPair(addon->guid))
{
sLog.outErrorDb("Gameobject (GUID: %u) does not exist but has a record in `gameobject_addon`",addon->guid);
continue;
}
if (!addon->path_rotation.isUnit())
{
sLog.outErrorDb("Gameobject (GUID: %u) has invalid path rotation", addon->guid);
const_cast<GameObjectDataAddon*>(addon)->path_rotation = QuaternionData(0.f, 0.f, 0.f, 1.f);
}
}
}
void ObjectMgr::AddGameobjectToGrid(uint32 guid, GameObjectData const* data)
{
uint8 mask = data->spawnMask;