[10107] Pool/event info in .npc info and .gobject target commands

Signed-off-by: VladimirMangos <vladimir@getmangos.com>
This commit is contained in:
schmoozerd 2010-06-26 18:46:21 +04:00 committed by VladimirMangos
parent a504b4d200
commit 4e1c8a2ad6
12 changed files with 152 additions and 47 deletions

View file

@ -839,6 +839,39 @@ void GameEventMgr::UpdateWorldStates(uint16 event_id, bool Activate)
}
}
// Get the Game Event ID for Creature by guid
template <>
int16 GameEventMgr::GetGameEventId<Creature>(uint32 guid_or_poolid)
{
for (uint16 i = 0; i < mGameEventCreatureGuids.size(); i++) // 0 <= i <= 2*(S := mGameEvent.size()) - 2
for (GuidList::const_iterator itr = mGameEventCreatureGuids[i].begin(); itr != mGameEventCreatureGuids[i].end(); itr++)
if (*itr == guid_or_poolid)
return i + 1 - mGameEvent.size(); // -S *1 + 1 <= . <= 1*S - 1
return 0;
}
// Get the Game Event ID for GameObject by guid
template <>
int16 GameEventMgr::GetGameEventId<GameObject>(uint32 guid_or_poolid)
{
for (uint16 i = 0; i < mGameEventGameobjectGuids.size(); i++)
for (GuidList::const_iterator itr = mGameEventGameobjectGuids[i].begin(); itr != mGameEventGameobjectGuids[i].end(); itr++)
if (*itr == guid_or_poolid)
return i + 1 - mGameEvent.size(); // -S *1 + 1 <= . <= 1*S - 1
return 0;
}
// Get the Game Event ID for Pool by pool ID
template <>
int16 GameEventMgr::GetGameEventId<Pool>(uint32 guid_or_poolid)
{
for (uint16 i = 0; i < mGameEventSpawnPoolIds.size(); i++)
for (IdList::const_iterator itr = mGameEventSpawnPoolIds[i].begin(); itr != mGameEventSpawnPoolIds[i].end(); itr++)
if (*itr == guid_or_poolid)
return i;
return 0;
}
GameEventMgr::GameEventMgr()
{
m_IsGameEventsInit = false;