void ObjectAccessor::AddCorpsesToGrid(GridPair const& gridpair,GridType& grid,Map* map) { #ifndef NOTSAFE_SEMAPHORE_OVERHANDLING HashMapHolder<Corpse>::ReadGuard g(HashMapHolder<Corpse>::GetLock()); #endif for(Player2CorpsesMapType::iterator iter = i_player2corpse.begin(); iter != i_player2corpse.end(); ++iter) if(iter->second->GetGrid() == gridpair) { // verify, if the corpse in our instance (add only corpses which are) if (map->Instanceable()) { if (iter->second->GetInstanceId() == map->GetInstanceId()) { grid.AddWorldObject(iter->second); } } else { grid.AddWorldObject(iter->second); } } }
void ObjectAccessor::AddCorpsesToGrid(GridCoord const& gridpair, GridType& grid, Map* map) { TRINITY_READ_GUARD(ACE_RW_Thread_Mutex, i_corpseLock); for (Player2CorpsesMapType::iterator iter = i_player2corpse.begin(); iter != i_player2corpse.end(); ++iter) { if (iter->second->IsInGrid()) { //TODO: add this assert later //ASSERT(iter->second->GetGridCoord() == gridpair); continue; } if (iter->second->GetGridCoord() == gridpair) { // verify, if the corpse in our instance (add only corpses which are) if (map->Instanceable()) { if (iter->second->GetInstanceId() == map->GetInstanceId()) grid.AddWorldObject(iter->second); } else grid.AddWorldObject(iter->second); } } }
void LoadHelper(CellCorpseSet const& cell_corpses, CellPair& cell, CorpseMapType& /*m*/, uint32& count, Map* map, GridType& grid) { if (cell_corpses.empty()) return; for (CellCorpseSet::const_iterator itr = cell_corpses.begin(); itr != cell_corpses.end(); ++itr) { if (itr->second != map->GetInstanceId()) continue; uint32 player_lowguid = itr->first; Corpse* obj = sObjectAccessor.GetCorpseForPlayerGUID(ObjectGuid(HIGHGUID_PLAYER, player_lowguid)); if (!obj) continue; grid.AddWorldObject(obj); addUnitState(obj, cell); obj->SetMap(map); obj->AddToWorld(); if (obj->isActiveObject()) map->AddToActive(obj); ++count; } }
void ObjectAccessor::AddCorpsesToGrid(GridPair const& gridpair,GridType& grid,Map* map) { ACE_GUARD(LockType, g, i_corpseGuard); for (Player2CorpsesMapType::iterator iter = i_player2corpse.begin(); iter != i_player2corpse.end(); ++iter) if (iter->second->GetGrid()==gridpair) { // verify, if the corpse in our instance (add only corpses which are) if (map->Instanceable()) { if (iter->second->GetInstanceId() == map->GetInstanceId()) grid.AddWorldObject(iter->second); } else grid.AddWorldObject(iter->second); } }
void Camera::Event_AddedToWorld() { GridType* grid = m_source->GetViewPoint().m_grid; MANGOS_ASSERT(grid); grid->AddWorldObject(this); UpdateVisibilityForOwner(); }
void Camera::Event_AddedToWorld() { if (!IsInitialized()) ResetView(); GridType* grid = GetBody()->GetViewPoint().m_grid; MANGOS_ASSERT(grid); grid->AddWorldObject(this); UpdateVisibilityForOwner(); }
void ObjectAccessor::AddCorpsesToGrid(GridPair const& gridpair, GridType& grid, Map* map) { Guard guard(i_corpseGuard); for (auto& iter : i_player2corpse) if (iter.second->GetGrid() == gridpair) { // verify, if the corpse in our instance (add only corpses which are) if (map->Instanceable()) { if (iter.second->GetInstanceId() == map->GetInstanceId()) { grid.AddWorldObject(iter.second); } } else { grid.AddWorldObject(iter.second); } } }
void ObjectAccessor::AddCorpsesToGrid(GridCoord const& gridpair, GridType& grid, Map* map) { TRINITY_READ_GUARD(ACE_RW_Thread_Mutex, i_corpseLock); for (Player2CorpsesMapType::iterator iter = i_player2corpse.begin(); iter != i_player2corpse.end(); ++iter) { // We need this check otherwise a corpose may be added to a grid twice if (iter->second->IsInGrid()) continue; if (iter->second->GetGridCoord() == gridpair) { // verify, if the corpse in our instance (add only corpses which are) if (map->Instanceable()) { if (iter->second->GetInstanceId() == map->GetInstanceId()) grid.AddWorldObject(iter->second); } else grid.AddWorldObject(iter->second); } } }