diff --git a/src/game/BattleGround.cpp b/src/game/BattleGround.cpp index 0e9e8549c..86e380e3d 100644 --- a/src/game/BattleGround.cpp +++ b/src/game/BattleGround.cpp @@ -1413,9 +1413,9 @@ bool BattleGround::AddObject(uint32 type, uint32 entry, float x, float y, float //some doors aren't despawned so we cannot handle their closing in gameobject::update() //it would be nice to correctly implement GO_ACTIVATED state and open/close doors in gameobject code -void BattleGround::DoorClose(uint32 type) +void BattleGround::DoorClose(uint64 const& guid) { - GameObject *obj = HashMapHolder::Find(m_BgObjects[type]); + GameObject *obj = HashMapHolder::Find(guid); if (obj) { //if doors are open, close it @@ -1432,9 +1432,9 @@ void BattleGround::DoorClose(uint32 type) } } -void BattleGround::DoorOpen(uint32 type) +void BattleGround::DoorOpen(uint64 const& guid) { - GameObject *obj = HashMapHolder::Find(m_BgObjects[type]); + GameObject *obj = HashMapHolder::Find(guid); if (obj) { //change state to be sure they will be opened @@ -1447,32 +1447,28 @@ void BattleGround::DoorOpen(uint32 type) } } -void BattleGround::SpawnBGObject(uint32 type, uint32 respawntime) + +void BattleGround::SpawnBGObject(uint64 const& guid, uint32 respawntime) { + GameObject *obj = HashMapHolder::Find(guid); + if(!obj) + return; Map * map = MapManager::Instance().FindMap(GetMapId(),GetInstanceID()); if (!map) return; if (respawntime == 0) { - GameObject *obj = HashMapHolder::Find(m_BgObjects[type]); - if (obj) - { - //we need to change state from GO_JUST_DEACTIVATED to GO_READY in case battleground is starting again - if (obj->getLootState() == GO_JUST_DEACTIVATED) - obj->SetLootState(GO_READY); - obj->SetRespawnTime(0); - map->Add(obj); - } + //we need to change state from GO_JUST_DEACTIVATED to GO_READY in case battleground is starting again + if (obj->getLootState() == GO_JUST_DEACTIVATED) + obj->SetLootState(GO_READY); + obj->SetRespawnTime(0); + map->Add(obj); } else { - GameObject *obj = HashMapHolder::Find(m_BgObjects[type]); - if (obj) - { - map->Add(obj); - obj->SetRespawnTime(respawntime); - obj->SetLootState(GO_JUST_DEACTIVATED); - } + map->Add(obj); + obj->SetRespawnTime(respawntime); + obj->SetLootState(GO_JUST_DEACTIVATED); } } @@ -1508,36 +1504,32 @@ Creature* BattleGround::AddCreature(uint32 entry, uint32 type, uint32 teamval, f return pCreature; } -/* -void BattleGround::SpawnBGCreature(uint32 type, uint32 respawntime) -{ - Map * map = MapManager::Instance().FindMap(GetMapId(),GetInstanceId()); - if (!map) - return false; +void BattleGround::SpawnBGCreature(uint64 const& guid, uint32 respawntime) +{ + Creature* obj = HashMapHolder::Find(guid); + if (!obj) + return; + Map * map = MapManager::Instance().FindMap(GetMapId(),GetInstanceID()); + if (!map) + return; if (respawntime == 0) { - Creature *obj = HashMapHolder::Find(m_BgCreatures[type]); - if (obj) - { - //obj->Respawn(); // bugged - obj->SetRespawnTime(0); - objmgr.SaveCreatureRespawnTime(obj->GetGUIDLow(), GetInstanceID(), 0); - map->Add(obj); - } + //obj->SetVisibility(VISIBILITY_ON); + obj->Respawn(); + //obj->SetRespawnTime(0); + //objmgr.SaveCreatureRespawnTime(obj->GetGUIDLow(), GetInstanceID(), 0); + map->Add(obj); } else { - Creature *obj = HashMapHolder::Find(m_BgCreatures[type]); - if (obj) - { - obj->setDeathState(DEAD); - obj->SetRespawnTime(respawntime); - map->Add(obj); - } + map->Add(obj); + obj->setDeathState(JUST_DIED); + obj->SetRespawnDelay(respawntime); + obj->RemoveCorpse(); } } -*/ + bool BattleGround::DelCreature(uint32 type) { if (!m_BgCreatures[type]) @@ -1666,17 +1658,19 @@ void BattleGround::HandleTriggerBuff(uint64 const& go_guid) if (m_BuffChange && entry != Buff_Entries[buff]) { //despawn current buff - SpawnBGObject(index, RESPAWN_ONE_DAY); + SpawnBGObject(m_BgObjects[index], RESPAWN_ONE_DAY); //set index for new one for (uint8 currBuffTypeIndex = 0; currBuffTypeIndex < 3; ++currBuffTypeIndex) + { if (entry == Buff_Entries[currBuffTypeIndex]) { index -= currBuffTypeIndex; index += buff; } + } } - SpawnBGObject(index, BUFF_RESPAWN_TIME); + SpawnBGObject(m_BgObjects[index], BUFF_RESPAWN_TIME); } void BattleGround::HandleKillPlayer( Player *player, Player *killer ) diff --git a/src/game/BattleGround.h b/src/game/BattleGround.h index a7d92abfd..893e692b0 100644 --- a/src/game/BattleGround.h +++ b/src/game/BattleGround.h @@ -487,16 +487,16 @@ class BattleGround typedef std::vector BGCreatures; BGObjects m_BgObjects; BGCreatures m_BgCreatures; - void SpawnBGObject(uint32 type, uint32 respawntime); + void SpawnBGObject(uint64 const& guid, uint32 respawntime); bool AddObject(uint32 type, uint32 entry, float x, float y, float z, float o, float rotation0, float rotation1, float rotation2, float rotation3, uint32 respawnTime = 0); -// void SpawnBGCreature(uint32 type, uint32 respawntime); + void SpawnBGCreature(uint64 const& guid, uint32 respawntime); Creature* AddCreature(uint32 entry, uint32 type, uint32 teamval, float x, float y, float z, float o, uint32 respawntime = 0); bool DelCreature(uint32 type); bool DelObject(uint32 type); bool AddSpiritGuide(uint32 type, float x, float y, float z, float o, uint32 team); - void DoorOpen(uint32 type); - void DoorClose(uint32 type); + void DoorOpen(uint64 const& guid); + void DoorClose(uint64 const& guid); virtual bool HandlePlayerUnderMap(Player * /*plr*/) { return false; } diff --git a/src/game/BattleGroundAB.cpp b/src/game/BattleGroundAB.cpp index 68936d998..7c4876b45 100644 --- a/src/game/BattleGroundAB.cpp +++ b/src/game/BattleGroundAB.cpp @@ -166,15 +166,15 @@ void BattleGroundAB::StartingEventCloseDoors() { // despawn banners, auras and buffs for (int obj = BG_AB_OBJECT_BANNER_NEUTRAL; obj < BG_AB_DYNAMIC_NODES_COUNT * 8; ++obj) - SpawnBGObject(obj, RESPAWN_ONE_DAY); + SpawnBGObject(m_BgObjects[obj], RESPAWN_ONE_DAY); for (int i = 0; i < BG_AB_DYNAMIC_NODES_COUNT * 3; ++i) - SpawnBGObject(BG_AB_OBJECT_SPEEDBUFF_STABLES + i, RESPAWN_ONE_DAY); + SpawnBGObject(m_BgObjects[BG_AB_OBJECT_SPEEDBUFF_STABLES + i], RESPAWN_ONE_DAY); // Starting doors - DoorClose(BG_AB_OBJECT_GATE_A); - DoorClose(BG_AB_OBJECT_GATE_H); - SpawnBGObject(BG_AB_OBJECT_GATE_A, RESPAWN_IMMEDIATELY); - SpawnBGObject(BG_AB_OBJECT_GATE_H, RESPAWN_IMMEDIATELY); + DoorClose(m_BgObjects[BG_AB_OBJECT_GATE_A]); + DoorClose(m_BgObjects[BG_AB_OBJECT_GATE_H]); + SpawnBGObject(m_BgObjects[BG_AB_OBJECT_GATE_A], RESPAWN_IMMEDIATELY); + SpawnBGObject(m_BgObjects[BG_AB_OBJECT_GATE_H], RESPAWN_IMMEDIATELY); // Starting base spirit guides _NodeOccupied(BG_AB_SPIRIT_ALIANCE,ALLIANCE); @@ -185,15 +185,15 @@ void BattleGroundAB::StartingEventOpenDoors() { // spawn neutral banners for (int banner = BG_AB_OBJECT_BANNER_NEUTRAL, i = 0; i < 5; banner += 8, ++i) - SpawnBGObject(banner, RESPAWN_IMMEDIATELY); + SpawnBGObject(m_BgObjects[banner], RESPAWN_IMMEDIATELY); for (int i = 0; i < BG_AB_DYNAMIC_NODES_COUNT; ++i) { //randomly select buff to spawn uint8 buff = urand(0, 2); - SpawnBGObject(BG_AB_OBJECT_SPEEDBUFF_STABLES + buff + i * 3, RESPAWN_IMMEDIATELY); + SpawnBGObject(m_BgObjects[BG_AB_OBJECT_SPEEDBUFF_STABLES + buff + i * 3], RESPAWN_IMMEDIATELY); } - DoorOpen(BG_AB_OBJECT_GATE_A); - DoorOpen(BG_AB_OBJECT_GATE_H); + DoorOpen(m_BgObjects[BG_AB_OBJECT_GATE_A]); + DoorOpen(m_BgObjects[BG_AB_OBJECT_GATE_H]); } void BattleGroundAB::AddPlayer(Player *plr) @@ -259,25 +259,25 @@ void BattleGroundAB::_CreateBanner(uint8 node, uint8 type, uint8 teamIndex, bool uint8 obj = node*8 + type + teamIndex; - SpawnBGObject(obj, RESPAWN_IMMEDIATELY); + SpawnBGObject(m_BgObjects[obj], RESPAWN_IMMEDIATELY); // handle aura with banner if (!type) return; obj = node * 8 + ((type == BG_AB_NODE_TYPE_OCCUPIED) ? (5 + teamIndex) : 7); - SpawnBGObject(obj, RESPAWN_IMMEDIATELY); + SpawnBGObject(m_BgObjects[obj], RESPAWN_IMMEDIATELY); } void BattleGroundAB::_DelBanner(uint8 node, uint8 type, uint8 teamIndex) { uint8 obj = node*8 + type + teamIndex; - SpawnBGObject(obj, RESPAWN_ONE_DAY); + SpawnBGObject(m_BgObjects[obj], RESPAWN_ONE_DAY); // handle aura with banner if (!type) return; obj = node * 8 + ((type == BG_AB_NODE_TYPE_OCCUPIED) ? (5 + teamIndex) : 7); - SpawnBGObject(obj, RESPAWN_ONE_DAY); + SpawnBGObject(m_BgObjects[obj], RESPAWN_ONE_DAY); } int32 BattleGroundAB::_GetNodeNameId(uint8 node) diff --git a/src/game/BattleGroundBE.cpp b/src/game/BattleGroundBE.cpp index e15e360ba..482b15387 100644 --- a/src/game/BattleGroundBE.cpp +++ b/src/game/BattleGroundBE.cpp @@ -57,19 +57,19 @@ void BattleGroundBE::Update(uint32 diff) void BattleGroundBE::StartingEventCloseDoors() { for(uint32 i = BG_BE_OBJECT_DOOR_1; i <= BG_BE_OBJECT_DOOR_4; ++i) - SpawnBGObject(i, RESPAWN_IMMEDIATELY); + SpawnBGObject(m_BgObjects[i], RESPAWN_IMMEDIATELY); for(uint32 i = BG_BE_OBJECT_BUFF_1; i <= BG_BE_OBJECT_BUFF_2; ++i) - SpawnBGObject(i, RESPAWN_ONE_DAY); + SpawnBGObject(m_BgObjects[i], RESPAWN_ONE_DAY); } void BattleGroundBE::StartingEventOpenDoors() { for(uint32 i = BG_BE_OBJECT_DOOR_1; i <= BG_BE_OBJECT_DOOR_2; ++i) - DoorOpen(i); + DoorOpen(m_BgObjects[i]); for(uint32 i = BG_BE_OBJECT_BUFF_1; i <= BG_BE_OBJECT_BUFF_2; ++i) - SpawnBGObject(i, 60); + SpawnBGObject(m_BgObjects[i], 60); } void BattleGroundBE::AddPlayer(Player *plr) diff --git a/src/game/BattleGroundEY.cpp b/src/game/BattleGroundEY.cpp index 2b3d35f8f..2de51699a 100644 --- a/src/game/BattleGroundEY.cpp +++ b/src/game/BattleGroundEY.cpp @@ -95,25 +95,25 @@ void BattleGroundEY::Update(uint32 diff) void BattleGroundEY::StartingEventCloseDoors() { - SpawnBGObject(BG_EY_OBJECT_DOOR_A, RESPAWN_IMMEDIATELY); - SpawnBGObject(BG_EY_OBJECT_DOOR_H, RESPAWN_IMMEDIATELY); + SpawnBGObject(m_BgObjects[BG_EY_OBJECT_DOOR_A], RESPAWN_IMMEDIATELY); + SpawnBGObject(m_BgObjects[BG_EY_OBJECT_DOOR_H], RESPAWN_IMMEDIATELY); for(uint32 i = BG_EY_OBJECT_A_BANNER_FEL_REALVER_CENTER; i < BG_EY_OBJECT_MAX; ++i) - SpawnBGObject(i, RESPAWN_ONE_DAY); + SpawnBGObject(m_BgObjects[i], RESPAWN_ONE_DAY); } void BattleGroundEY::StartingEventOpenDoors() { - SpawnBGObject(BG_EY_OBJECT_DOOR_A, RESPAWN_ONE_DAY); - SpawnBGObject(BG_EY_OBJECT_DOOR_H, RESPAWN_ONE_DAY); + SpawnBGObject(m_BgObjects[BG_EY_OBJECT_DOOR_A], RESPAWN_ONE_DAY); + SpawnBGObject(m_BgObjects[BG_EY_OBJECT_DOOR_H], RESPAWN_ONE_DAY); for(uint32 i = BG_EY_OBJECT_N_BANNER_FEL_REALVER_CENTER; i <= BG_EY_OBJECT_FLAG_NETHERSTORM; ++i) - SpawnBGObject(i, RESPAWN_IMMEDIATELY); + SpawnBGObject(m_BgObjects[i], RESPAWN_IMMEDIATELY); for(uint32 i = 0; i < EY_POINTS_MAX; ++i) { //randomly spawn buff uint8 buff = urand(0, 2); - SpawnBGObject(BG_EY_OBJECT_SPEEDBUFF_FEL_REALVER + buff + i * 3, RESPAWN_IMMEDIATELY); + SpawnBGObject(m_BgObjects[BG_EY_OBJECT_SPEEDBUFF_FEL_REALVER + buff + i * 3], RESPAWN_IMMEDIATELY); } } @@ -538,11 +538,11 @@ void BattleGroundEY::Reset() void BattleGroundEY::RespawnFlag(bool send_message) { if (m_FlagCapturedBgObjectType > 0) - SpawnBGObject(m_FlagCapturedBgObjectType, RESPAWN_ONE_DAY); + SpawnBGObject(m_BgObjects[m_FlagCapturedBgObjectType], RESPAWN_ONE_DAY); m_FlagCapturedBgObjectType = 0; m_FlagState = BG_EY_FLAG_STATE_ON_BASE; - SpawnBGObject(BG_EY_OBJECT_FLAG_NETHERSTORM, RESPAWN_IMMEDIATELY); + SpawnBGObject(m_BgObjects[BG_EY_OBJECT_FLAG_NETHERSTORM], RESPAWN_IMMEDIATELY); if (send_message) { @@ -631,7 +631,7 @@ void BattleGroundEY::EventPlayerClickedOnFlag(Player *Source, GameObject* target UpdateWorldState(NETHERSTORM_FLAG, 0); m_FlagState = BG_EY_FLAG_STATE_ON_PLAYER; - SpawnBGObject(BG_EY_OBJECT_FLAG_NETHERSTORM, RESPAWN_ONE_DAY); + SpawnBGObject(m_BgObjects[BG_EY_OBJECT_FLAG_NETHERSTORM], RESPAWN_ONE_DAY); SetFlagPicker(Source->GetGUID()); //get flag aura on player Source->CastSpell(Source, BG_EY_NETHERSTORM_FLAG_SPELL, true); @@ -657,21 +657,21 @@ void BattleGroundEY::EventTeamLostPoint(Player *Source, uint32 Point) if (Team == ALLIANCE) { m_TeamPointsCount[BG_TEAM_ALLIANCE]--; - SpawnBGObject(m_LoosingPointTypes[Point].DespawnObjectTypeAlliance, RESPAWN_ONE_DAY); - SpawnBGObject(m_LoosingPointTypes[Point].DespawnObjectTypeAlliance + 1, RESPAWN_ONE_DAY); - SpawnBGObject(m_LoosingPointTypes[Point].DespawnObjectTypeAlliance + 2, RESPAWN_ONE_DAY); + SpawnBGObject(m_BgObjects[m_LoosingPointTypes[Point].DespawnObjectTypeAlliance], RESPAWN_ONE_DAY); + SpawnBGObject(m_BgObjects[m_LoosingPointTypes[Point].DespawnObjectTypeAlliance + 1], RESPAWN_ONE_DAY); + SpawnBGObject(m_BgObjects[m_LoosingPointTypes[Point].DespawnObjectTypeAlliance + 2], RESPAWN_ONE_DAY); } else { m_TeamPointsCount[BG_TEAM_HORDE]--; - SpawnBGObject(m_LoosingPointTypes[Point].DespawnObjectTypeHorde, RESPAWN_ONE_DAY); - SpawnBGObject(m_LoosingPointTypes[Point].DespawnObjectTypeHorde + 1, RESPAWN_ONE_DAY); - SpawnBGObject(m_LoosingPointTypes[Point].DespawnObjectTypeHorde + 2, RESPAWN_ONE_DAY); + SpawnBGObject(m_BgObjects[m_LoosingPointTypes[Point].DespawnObjectTypeHorde], RESPAWN_ONE_DAY); + SpawnBGObject(m_BgObjects[m_LoosingPointTypes[Point].DespawnObjectTypeHorde + 1], RESPAWN_ONE_DAY); + SpawnBGObject(m_BgObjects[m_LoosingPointTypes[Point].DespawnObjectTypeHorde + 2], RESPAWN_ONE_DAY); } - SpawnBGObject(m_LoosingPointTypes[Point].SpawnNeutralObjectType, RESPAWN_IMMEDIATELY); - SpawnBGObject(m_LoosingPointTypes[Point].SpawnNeutralObjectType + 1, RESPAWN_IMMEDIATELY); - SpawnBGObject(m_LoosingPointTypes[Point].SpawnNeutralObjectType + 2, RESPAWN_IMMEDIATELY); + SpawnBGObject(m_BgObjects[m_LoosingPointTypes[Point].SpawnNeutralObjectType], RESPAWN_IMMEDIATELY); + SpawnBGObject(m_BgObjects[m_LoosingPointTypes[Point].SpawnNeutralObjectType + 1], RESPAWN_IMMEDIATELY); + SpawnBGObject(m_BgObjects[m_LoosingPointTypes[Point].SpawnNeutralObjectType + 2], RESPAWN_IMMEDIATELY); //buff isn't despawned @@ -694,23 +694,23 @@ void BattleGroundEY::EventTeamCapturedPoint(Player *Source, uint32 Point) uint32 Team = Source->GetTeam(); - SpawnBGObject(m_CapturingPointTypes[Point].DespawnNeutralObjectType, RESPAWN_ONE_DAY); - SpawnBGObject(m_CapturingPointTypes[Point].DespawnNeutralObjectType + 1, RESPAWN_ONE_DAY); - SpawnBGObject(m_CapturingPointTypes[Point].DespawnNeutralObjectType + 2, RESPAWN_ONE_DAY); + SpawnBGObject(m_BgObjects[m_CapturingPointTypes[Point].DespawnNeutralObjectType], RESPAWN_ONE_DAY); + SpawnBGObject(m_BgObjects[m_CapturingPointTypes[Point].DespawnNeutralObjectType + 1], RESPAWN_ONE_DAY); + SpawnBGObject(m_BgObjects[m_CapturingPointTypes[Point].DespawnNeutralObjectType + 2], RESPAWN_ONE_DAY); if (Team == ALLIANCE) { m_TeamPointsCount[BG_TEAM_ALLIANCE]++; - SpawnBGObject(m_CapturingPointTypes[Point].SpawnObjectTypeAlliance, RESPAWN_IMMEDIATELY); - SpawnBGObject(m_CapturingPointTypes[Point].SpawnObjectTypeAlliance + 1, RESPAWN_IMMEDIATELY); - SpawnBGObject(m_CapturingPointTypes[Point].SpawnObjectTypeAlliance + 2, RESPAWN_IMMEDIATELY); + SpawnBGObject(m_BgObjects[m_CapturingPointTypes[Point].SpawnObjectTypeAlliance], RESPAWN_IMMEDIATELY); + SpawnBGObject(m_BgObjects[m_CapturingPointTypes[Point].SpawnObjectTypeAlliance + 1], RESPAWN_IMMEDIATELY); + SpawnBGObject(m_BgObjects[m_CapturingPointTypes[Point].SpawnObjectTypeAlliance + 2], RESPAWN_IMMEDIATELY); } else { m_TeamPointsCount[BG_TEAM_HORDE]++; - SpawnBGObject(m_CapturingPointTypes[Point].SpawnObjectTypeHorde, RESPAWN_IMMEDIATELY); - SpawnBGObject(m_CapturingPointTypes[Point].SpawnObjectTypeHorde + 1, RESPAWN_IMMEDIATELY); - SpawnBGObject(m_CapturingPointTypes[Point].SpawnObjectTypeHorde + 2, RESPAWN_IMMEDIATELY); + SpawnBGObject(m_BgObjects[m_CapturingPointTypes[Point].SpawnObjectTypeHorde], RESPAWN_IMMEDIATELY); + SpawnBGObject(m_BgObjects[m_CapturingPointTypes[Point].SpawnObjectTypeHorde + 1], RESPAWN_IMMEDIATELY); + SpawnBGObject(m_BgObjects[m_CapturingPointTypes[Point].SpawnObjectTypeHorde + 2], RESPAWN_IMMEDIATELY); } //buff isn't respawned @@ -754,7 +754,7 @@ void BattleGroundEY::EventPlayerCapturedFlag(Player *Source, uint32 BgObjectType else PlaySoundToAll(BG_EY_SOUND_FLAG_CAPTURED_HORDE); - SpawnBGObject(BgObjectType, RESPAWN_IMMEDIATELY); + SpawnBGObject(m_BgObjects[BgObjectType], RESPAWN_IMMEDIATELY); m_FlagsTimer = BG_EY_FLAG_RESPAWN_TIME; m_FlagCapturedBgObjectType = BgObjectType; diff --git a/src/game/BattleGroundNA.cpp b/src/game/BattleGroundNA.cpp index bc8738202..ab3fcc398 100644 --- a/src/game/BattleGroundNA.cpp +++ b/src/game/BattleGroundNA.cpp @@ -57,16 +57,16 @@ void BattleGroundNA::Update(uint32 diff) void BattleGroundNA::StartingEventCloseDoors() { for(uint32 i = BG_NA_OBJECT_DOOR_1; i <= BG_NA_OBJECT_DOOR_4; ++i) - SpawnBGObject(i, RESPAWN_IMMEDIATELY); + SpawnBGObject(m_BgObjects[i], RESPAWN_IMMEDIATELY); } void BattleGroundNA::StartingEventOpenDoors() { for(uint32 i = BG_NA_OBJECT_DOOR_1; i <= BG_NA_OBJECT_DOOR_2; ++i) - DoorOpen(i); + DoorOpen(m_BgObjects[i]); for(uint32 i = BG_NA_OBJECT_BUFF_1; i <= BG_NA_OBJECT_BUFF_2; ++i) - SpawnBGObject(i, 60); + SpawnBGObject(m_BgObjects[i], 60); } void BattleGroundNA::AddPlayer(Player *plr) diff --git a/src/game/BattleGroundRL.cpp b/src/game/BattleGroundRL.cpp index d79db75b1..9a79c7061 100644 --- a/src/game/BattleGroundRL.cpp +++ b/src/game/BattleGroundRL.cpp @@ -57,16 +57,16 @@ void BattleGroundRL::Update(uint32 diff) void BattleGroundRL::StartingEventCloseDoors() { for(uint32 i = BG_RL_OBJECT_DOOR_1; i <= BG_RL_OBJECT_DOOR_2; ++i) - SpawnBGObject(i, RESPAWN_IMMEDIATELY); + SpawnBGObject(m_BgObjects[i], RESPAWN_IMMEDIATELY); } void BattleGroundRL::StartingEventOpenDoors() { for(uint32 i = BG_RL_OBJECT_DOOR_1; i <= BG_RL_OBJECT_DOOR_2; ++i) - DoorOpen(i); + DoorOpen(m_BgObjects[i]); for(uint32 i = BG_RL_OBJECT_BUFF_1; i <= BG_RL_OBJECT_BUFF_2; ++i) - SpawnBGObject(i, 60); + SpawnBGObject(m_BgObjects[i], 60); } void BattleGroundRL::AddPlayer(Player *plr) diff --git a/src/game/BattleGroundWS.cpp b/src/game/BattleGroundWS.cpp index 258c54887..cff5e0476 100644 --- a/src/game/BattleGroundWS.cpp +++ b/src/game/BattleGroundWS.cpp @@ -95,27 +95,27 @@ void BattleGroundWS::StartingEventCloseDoors() { for(uint32 i = BG_WS_OBJECT_DOOR_A_1; i <= BG_WS_OBJECT_DOOR_H_4; ++i) { - DoorClose(i); - SpawnBGObject(i, RESPAWN_IMMEDIATELY); + DoorClose(m_BgObjects[i]); + SpawnBGObject(m_BgObjects[i], RESPAWN_IMMEDIATELY); } for(uint32 i = BG_WS_OBJECT_A_FLAG; i <= BG_WS_OBJECT_BERSERKBUFF_2; ++i) - SpawnBGObject(i, RESPAWN_ONE_DAY); + SpawnBGObject(m_BgObjects[i], RESPAWN_ONE_DAY); } void BattleGroundWS::StartingEventOpenDoors() { for(uint32 i = BG_WS_OBJECT_DOOR_A_1; i <= BG_WS_OBJECT_DOOR_A_4; ++i) - DoorOpen(i); + DoorOpen(m_BgObjects[i]); for(uint32 i = BG_WS_OBJECT_DOOR_H_1; i <= BG_WS_OBJECT_DOOR_H_2; ++i) - DoorOpen(i); + DoorOpen(m_BgObjects[i]); - SpawnBGObject(BG_WS_OBJECT_DOOR_A_5, RESPAWN_ONE_DAY); - SpawnBGObject(BG_WS_OBJECT_DOOR_A_6, RESPAWN_ONE_DAY); - SpawnBGObject(BG_WS_OBJECT_DOOR_H_3, RESPAWN_ONE_DAY); - SpawnBGObject(BG_WS_OBJECT_DOOR_H_4, RESPAWN_ONE_DAY); + SpawnBGObject(m_BgObjects[BG_WS_OBJECT_DOOR_A_5], RESPAWN_ONE_DAY); + SpawnBGObject(m_BgObjects[BG_WS_OBJECT_DOOR_A_6], RESPAWN_ONE_DAY); + SpawnBGObject(m_BgObjects[BG_WS_OBJECT_DOOR_H_3], RESPAWN_ONE_DAY); + SpawnBGObject(m_BgObjects[BG_WS_OBJECT_DOOR_H_4], RESPAWN_ONE_DAY); for(uint32 i = BG_WS_OBJECT_A_FLAG; i <= BG_WS_OBJECT_BERSERKBUFF_2; ++i) - SpawnBGObject(i, RESPAWN_IMMEDIATELY); + SpawnBGObject(m_BgObjects[i], RESPAWN_IMMEDIATELY); } void BattleGroundWS::AddPlayer(Player *plr) @@ -143,8 +143,8 @@ void BattleGroundWS::RespawnFlag(uint32 Team, bool captured) if (captured) { //when map_update will be allowed for battlegrounds this code will be useless - SpawnBGObject(BG_WS_OBJECT_H_FLAG, RESPAWN_IMMEDIATELY); - SpawnBGObject(BG_WS_OBJECT_A_FLAG, RESPAWN_IMMEDIATELY); + SpawnBGObject(m_BgObjects[BG_WS_OBJECT_H_FLAG], RESPAWN_IMMEDIATELY); + SpawnBGObject(m_BgObjects[BG_WS_OBJECT_A_FLAG], RESPAWN_IMMEDIATELY); SendMessageToAll(LANG_BG_WS_F_PLACED, CHAT_MSG_BG_SYSTEM_NEUTRAL); PlaySoundToAll(BG_WS_SOUND_FLAGS_RESPAWNED); // flag respawned sound... } @@ -158,12 +158,12 @@ void BattleGroundWS::RespawnFlagAfterDrop(uint32 team) RespawnFlag(team,false); if (team == ALLIANCE) { - SpawnBGObject(BG_WS_OBJECT_A_FLAG, RESPAWN_IMMEDIATELY); + SpawnBGObject(m_BgObjects[BG_WS_OBJECT_A_FLAG], RESPAWN_IMMEDIATELY); SendMessageToAll(LANG_BG_WS_ALLIANCE_FLAG_RESPAWNED, CHAT_MSG_BG_SYSTEM_NEUTRAL); } else { - SpawnBGObject(BG_WS_OBJECT_H_FLAG, RESPAWN_IMMEDIATELY); + SpawnBGObject(m_BgObjects[BG_WS_OBJECT_H_FLAG], RESPAWN_IMMEDIATELY); SendMessageToAll(LANG_BG_WS_HORDE_FLAG_RESPAWNED, CHAT_MSG_BG_SYSTEM_NEUTRAL); } @@ -217,8 +217,8 @@ void BattleGroundWS::EventPlayerCapturedFlag(Player *Source) //for flag capture is reward 2 honorable kills RewardHonorToTeam(GetBonusHonorFromKill(2), Source->GetTeam()); - SpawnBGObject(BG_WS_OBJECT_H_FLAG, BG_WS_FLAG_RESPAWN_TIME); - SpawnBGObject(BG_WS_OBJECT_A_FLAG, BG_WS_FLAG_RESPAWN_TIME); + SpawnBGObject(m_BgObjects[BG_WS_OBJECT_H_FLAG], BG_WS_FLAG_RESPAWN_TIME); + SpawnBGObject(m_BgObjects[BG_WS_OBJECT_A_FLAG], BG_WS_FLAG_RESPAWN_TIME); if (Source->GetTeam() == ALLIANCE) SendMessageToAll(LANG_BG_WS_CAPTURED_HF, CHAT_MSG_BG_SYSTEM_ALLIANCE, Source); @@ -344,7 +344,7 @@ void BattleGroundWS::EventPlayerClickedOnFlag(Player *Source, GameObject* target message_id = LANG_BG_WS_PICKEDUP_AF; type = CHAT_MSG_BG_SYSTEM_HORDE; PlaySoundToAll(BG_WS_SOUND_ALLIANCE_FLAG_PICKED_UP); - SpawnBGObject(BG_WS_OBJECT_A_FLAG, RESPAWN_ONE_DAY); + SpawnBGObject(m_BgObjects[BG_WS_OBJECT_A_FLAG], RESPAWN_ONE_DAY); SetAllianceFlagPicker(Source->GetGUID()); m_FlagState[BG_TEAM_ALLIANCE] = BG_WS_FLAG_STATE_ON_PLAYER; //update world state to show correct flag carrier @@ -360,7 +360,7 @@ void BattleGroundWS::EventPlayerClickedOnFlag(Player *Source, GameObject* target message_id = LANG_BG_WS_PICKEDUP_HF; type = CHAT_MSG_BG_SYSTEM_ALLIANCE; PlaySoundToAll(BG_WS_SOUND_HORDE_FLAG_PICKED_UP); - SpawnBGObject(BG_WS_OBJECT_H_FLAG, RESPAWN_ONE_DAY); + SpawnBGObject(m_BgObjects[BG_WS_OBJECT_H_FLAG], RESPAWN_ONE_DAY); SetHordeFlagPicker(Source->GetGUID()); m_FlagState[BG_TEAM_HORDE] = BG_WS_FLAG_STATE_ON_PLAYER; //update world state to show correct flag carrier @@ -378,7 +378,7 @@ void BattleGroundWS::EventPlayerClickedOnFlag(Player *Source, GameObject* target type = CHAT_MSG_BG_SYSTEM_ALLIANCE; UpdateFlagState(HORDE, BG_WS_FLAG_STATE_WAIT_RESPAWN); RespawnFlag(ALLIANCE, false); - SpawnBGObject(BG_WS_OBJECT_A_FLAG, RESPAWN_IMMEDIATELY); + SpawnBGObject(m_BgObjects[BG_WS_OBJECT_A_FLAG], RESPAWN_IMMEDIATELY); PlaySoundToAll(BG_WS_SOUND_FLAG_RETURNED); UpdatePlayerScore(Source, SCORE_FLAG_RETURNS, 1); } @@ -387,7 +387,7 @@ void BattleGroundWS::EventPlayerClickedOnFlag(Player *Source, GameObject* target message_id = LANG_BG_WS_PICKEDUP_AF; type = CHAT_MSG_BG_SYSTEM_HORDE; PlaySoundToAll(BG_WS_SOUND_ALLIANCE_FLAG_PICKED_UP); - SpawnBGObject(BG_WS_OBJECT_A_FLAG, RESPAWN_ONE_DAY); + SpawnBGObject(m_BgObjects[BG_WS_OBJECT_A_FLAG], RESPAWN_ONE_DAY); SetAllianceFlagPicker(Source->GetGUID()); Source->CastSpell(Source, BG_WS_SPELL_SILVERWING_FLAG, true); m_FlagState[BG_TEAM_ALLIANCE] = BG_WS_FLAG_STATE_ON_PLAYER; @@ -407,7 +407,7 @@ void BattleGroundWS::EventPlayerClickedOnFlag(Player *Source, GameObject* target type = CHAT_MSG_BG_SYSTEM_HORDE; UpdateFlagState(ALLIANCE, BG_WS_FLAG_STATE_WAIT_RESPAWN); RespawnFlag(HORDE, false); - SpawnBGObject(BG_WS_OBJECT_H_FLAG, RESPAWN_IMMEDIATELY); + SpawnBGObject(m_BgObjects[BG_WS_OBJECT_H_FLAG], RESPAWN_IMMEDIATELY); PlaySoundToAll(BG_WS_SOUND_FLAG_RETURNED); UpdatePlayerScore(Source, SCORE_FLAG_RETURNS, 1); } @@ -416,7 +416,7 @@ void BattleGroundWS::EventPlayerClickedOnFlag(Player *Source, GameObject* target message_id = LANG_BG_WS_PICKEDUP_HF; type = CHAT_MSG_BG_SYSTEM_ALLIANCE; PlaySoundToAll(BG_WS_SOUND_HORDE_FLAG_PICKED_UP); - SpawnBGObject(BG_WS_OBJECT_H_FLAG, RESPAWN_ONE_DAY); + SpawnBGObject(m_BgObjects[BG_WS_OBJECT_H_FLAG], RESPAWN_ONE_DAY); SetHordeFlagPicker(Source->GetGUID()); Source->CastSpell(Source, BG_WS_SPELL_WARSONG_FLAG, true); m_FlagState[BG_TEAM_HORDE] = BG_WS_FLAG_STATE_ON_PLAYER;