diff options
Diffstat (limited to 'src/game/OutdoorPvPMgr.cpp')
-rw-r--r-- | src/game/OutdoorPvPMgr.cpp | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/src/game/OutdoorPvPMgr.cpp b/src/game/OutdoorPvPMgr.cpp index ff0d1269447..7d367392764 100644 --- a/src/game/OutdoorPvPMgr.cpp +++ b/src/game/OutdoorPvPMgr.cpp @@ -207,21 +207,22 @@ bool OutdoorPvPMgr::HandleCustomSpell(Player *plr, uint32 spellId, GameObject * return false; } -bool OutdoorPvPMgr::HandleOpenGo(Player *plr, uint64 guid) +void OutdoorPvPMgr::OnGameObjectCreate(GameObject *go, bool add) { + if(go->GetGoType() != GAMEOBJECT_TYPE_CAPTURE_POINT) + return; + for(OutdoorPvPSet::iterator itr = m_OutdoorPvPSet.begin(); itr != m_OutdoorPvPSet.end(); ++itr) - { - if((*itr)->HandleOpenGo(plr,guid)) - return true; - } - return false; + for(OutdoorPvP::OPvPCapturePointMap::iterator itr2 = (*itr)->m_capturePoints.begin(); itr2 != (*itr)->m_capturePoints.end(); ++itr2) + if((*itr2)->m_CapturePointGUID == go->GetDBTableGUIDLow()) + (*itr2)->m_capturePoint = add ? go : NULL; } -bool OutdoorPvPMgr::HandleCaptureCreaturePlayerMoveInLos(Player * plr, Creature * c) +bool OutdoorPvPMgr::HandleOpenGo(Player *plr, uint64 guid) { for(OutdoorPvPSet::iterator itr = m_OutdoorPvPSet.begin(); itr != m_OutdoorPvPSet.end(); ++itr) { - if((*itr)->HandleCaptureCreaturePlayerMoveInLos(plr,c)) + if((*itr)->HandleOpenGo(plr,guid)) return true; } return false; @@ -254,4 +255,3 @@ void OutdoorPvPMgr::HandleDropFlag(Player *plr, uint32 spellId) return; } } - |