aboutsummaryrefslogtreecommitdiff
path: root/src/server/scripts/Battlefield/BattlefieldWG.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/scripts/Battlefield/BattlefieldWG.cpp')
-rw-r--r--src/server/scripts/Battlefield/BattlefieldWG.cpp28
1 files changed, 23 insertions, 5 deletions
diff --git a/src/server/scripts/Battlefield/BattlefieldWG.cpp b/src/server/scripts/Battlefield/BattlefieldWG.cpp
index fcf9d6c3dc8..895868b9cec 100644
--- a/src/server/scripts/Battlefield/BattlefieldWG.cpp
+++ b/src/server/scripts/Battlefield/BattlefieldWG.cpp
@@ -411,8 +411,6 @@ bool BattlefieldWG::SetupBattlefield()
m_TypeId = BATTLEFIELD_WG; // See enum BattlefieldTypes
m_BattleId = BATTLEFIELD_BATTLEID_WG;
m_ZoneId = AREA_WINTERGRASP;
- m_MapId = BATTLEFIELD_WG_MAPID;
- m_Map = sMapMgr->CreateBaseMap(m_MapId);
InitStalker(BATTLEFIELD_WG_NPC_STALKER, WintergraspStalkerPos);
@@ -1477,6 +1475,26 @@ void BfWGGameObjectBuilding::Init(GameObject* go)
}
_state = WintergraspGameObjectState(sWorldStateMgr->GetValue(_worldState, _wg->GetMap()));
+ if (_state == BATTLEFIELD_WG_OBJECTSTATE_NONE)
+ {
+ // set to default state based on type
+ switch (_teamControl)
+ {
+ case TEAM_ALLIANCE:
+ _state = BATTLEFIELD_WG_OBJECTSTATE_ALLIANCE_INTACT;
+ break;
+ case TEAM_HORDE:
+ _state = BATTLEFIELD_WG_OBJECTSTATE_HORDE_INTACT;
+ break;
+ case TEAM_NEUTRAL:
+ _state = BATTLEFIELD_WG_OBJECTSTATE_NEUTRAL_INTACT;
+ break;
+ default:
+ break;
+ }
+ sWorldStateMgr->SetValueAndSaveInDb(_worldState, _state, false, _wg->GetMap());
+ }
+
switch (_state)
{
case BATTLEFIELD_WG_OBJECTSTATE_NEUTRAL_INTACT:
@@ -1774,9 +1792,9 @@ class Battlefield_wintergrasp : public BattlefieldScript
public:
Battlefield_wintergrasp() : BattlefieldScript("battlefield_wg") { }
- Battlefield* GetBattlefield() const override
+ Battlefield* GetBattlefield(Map* map) const override
{
- return new BattlefieldWG();
+ return new BattlefieldWG(map);
}
};
@@ -1794,7 +1812,7 @@ public:
if (!killer || killer->GetTypeId() != TYPEID_PLAYER)
return;
- BattlefieldWG* wintergrasp = static_cast<BattlefieldWG*>(sBattlefieldMgr->GetBattlefieldByBattleId(BATTLEFIELD_BATTLEID_WG));
+ BattlefieldWG* wintergrasp = static_cast<BattlefieldWG*>(sBattlefieldMgr->GetBattlefieldByBattleId(killer->GetMap(), BATTLEFIELD_BATTLEID_WG));
if (!wintergrasp)
return;