TrinityCore
BattlefieldWG.h
Go to the documentation of this file.
1/*
2 * This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
3 *
4 * This program is free software; you can redistribute it and/or modify it
5 * under the terms of the GNU General Public License as published by the
6 * Free Software Foundation; either version 2 of the License, or (at your
7 * option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12 * more details.
13 *
14 * You should have received a copy of the GNU General Public License along
15 * with this program. If not, see <http://www.gnu.org/licenses/>.
16 */
17
18#ifndef BATTLEFIELD_WG_
19#define BATTLEFIELD_WG_
20
21#include "Battlefield.h"
22
23class Group;
24class BattlefieldWG;
26
32
33typedef std::vector<BfWGGameObjectBuilding*> GameObjectBuildingVect;
34typedef std::vector<WintergraspWorkshop*> WorkshopVect;
35
37{
38 // Wartime auras
52
53 // Reward spells
60
63
66
67 // Other spells
71
72 // Phasing spells
75
76 SPELL_HORDE_CONTROL_PHASE_SHIFT = 55773, // ADDS PHASE 64
77 SPELL_ALLIANCE_CONTROL_PHASE_SHIFT = 55774 // ADDS PHASE 128
78};
79
81{
91
92 BATTLEFIELD_WG_MAPID = 571 // Northrend
93};
94
96{
114
116{
122
123/*#########################
124 *####### Graveyards ######
125 *#########################*/
126
128{
129 public:
131
132 void SetTextId(uint32 textId) { m_GossipTextId = textId; }
133 uint32 GetTextId() const { return m_GossipTextId; }
134
135 protected:
137};
138
140{
150
152{
161
163{
167
168 NPC_TAUNKA_SPIRIT_GUIDE = 31841, // Horde spirit guide for Wintergrasp
169 NPC_DWARVEN_SPIRIT_GUIDE = 31842, // Alliance spirit guide for Wintergrasp
170
177
178/* ######################### *
179 * WintergraspCapturePoint *
180 * ######################### */
181
183{
184 public:
186
187 void HandleContestedEventHorde([[maybe_unused]] GameObject* controlZone) override;
188 void HandleContestedEventAlliance([[maybe_unused]] GameObject* controlZone) override;
189 void HandleProgressEventHorde([[maybe_unused]] GameObject* controlZone) override;
190 void HandleProgressEventAlliance([[maybe_unused]] GameObject* controlZone) override;
191
192 protected:
194};
195
196/* ######################### *
197 * WinterGrasp Battlefield *
198 * ######################### */
199
201{
202 public:
211 void OnBattleStart() override;
212
222 void OnBattleEnd(bool endByTimer) override;
223
228 void OnStartGrouping() override;
229
238 void OnPlayerJoinWar(Player* player) override;
239
245 void OnPlayerLeaveWar(Player* player) override;
246
251 void OnPlayerLeaveZone(Player* player) override;
252
259 void OnPlayerEnterZone(Player* player) override;
260
265 void OnCreatureCreate(Creature* creature) override;
266
271 void OnCreatureRemove(Creature* creature) override;
272
276 void OnGameObjectCreate(GameObject* go) override;
277
282 void BrokenWallOrTower(TeamId team, BfWGGameObjectBuilding* building);
283
289
296
297 void DoCompleteOrIncrementAchievement(uint32 achievement, Player* player, uint8 incrementNumber = 1) override;
298
299 void RemoveAurasFromPlayer(Player* player);
300
304 bool SetupBattlefield() override;
305
308
310 void SetRelic(ObjectGuid relicGUID) { m_titansRelicGUID = relicGUID; }
311
314
316 void SetRelicInteractible(bool allow) { m_isRelicInteractible = allow; }
317
319 void UpdateCounterVehicle(bool init);
320
321 void HandleKill(Player* killer, Unit* victim) override;
322 void OnUnitDeath(Unit* unit) override;
323 void HandlePromotion(Player* killer, Unit* killed);
324 void PromotePlayer(Player* killer);
325
326 void UpdateTenacity();
327 void ProcessEvent(WorldObject* obj, uint32 eventId, WorldObject* invoker) override;
328
329 bool FindAndRemoveVehicleFromList(Unit* vehicle);
330
331 // returns the graveyardId in the specified area.
332 uint8 GetSpiritGraveyardId(uint32 areaId) const;
333
334 uint32 GetData(uint32 data) const override;
335
336 protected:
338
340
343
346
349
351};
352
354{
362
364{
376
378{
387
389{
397
399{
404
406{
407 // Invisible Stalker
434
441
446
450
452{
457
459
464
468
471
474
475// ********************************************************************
476// * Structs using for Building, Graveyard, Workshop *
477// ********************************************************************
478
479// Structure for different buildings that can be destroyed during battle
481{
482private:
483 // WG object
485
486 // Linked gameobject
488
489 // the team that controls this point
491
494
496
498
499 // GameObject associations
501
502 // Creature associations
507
508public:
510 void Init(GameObject* go);
511
512 ObjectGuid const& GetGUID() const { return _buildGUID; }
513
514 void Rebuild();
515 void RebuildGate();
516
517 // Called when associated gameobject is damaged
518 void Damaged();
519
520 // Called when associated gameobject is destroyed
521 void Destroyed();
522
523 void UpdateCreatureAndGo();
524
525 void UpdateTurretAttack(bool disable);
526};
527
528// Structure for the 6 workshop
530{
531private:
532 BattlefieldWG* _wg; // Pointer to wintergrasp
535 TeamId _teamControl; // Team witch control the workshop
536
538
539public:
541
542 uint8 GetId() const;
544
545 // Called on change faction in CapturePoint class
546 void GiveControlTo(TeamId teamId, bool init = false);
547
549};
550
551#endif
WGGossipText
@ BATTLEFIELD_WG_GOSSIPTEXT_GY_HORDE
@ BATTLEFIELD_WG_GOSSIPTEXT_GY_SW
@ BATTLEFIELD_WG_GOSSIPTEXT_GY_SE
@ BATTLEFIELD_WG_GOSSIPTEXT_GY_NE
@ BATTLEFIELD_WG_GOSSIPTEXT_GY_NW
@ BATTLEFIELD_WG_GOSSIPTEXT_GY_ALLIANCE
@ BATTLEFIELD_WG_GOSSIPTEXT_GY_KEEP
WintergraspGameObjectBuildingType
@ BATTLEFIELD_WG_OBJECTTYPE_DOOR
@ BATTLEFIELD_WG_OBJECTTYPE_TOWER
@ BATTLEFIELD_WG_OBJECTTYPE_KEEP_TOWER
@ BATTLEFIELD_WG_OBJECTTYPE_WALL
@ BATTLEFIELD_WG_OBJECTTYPE_DOOR_LAST
@ BATTLEFIELD_WG_OBJECTTYPE_TITANRELIC
WintergraspNpcs
@ NPC_WINTERGRASP_SIEGE_ENGINE_HORDE
@ NPC_WINTERGRASP_CATAPULT
@ NPC_WINTERGRASP_DEMOLISHER
@ NPC_WINTERGRASP_TOWER_CANNON
@ BATTLEFIELD_WG_NPC_GUARD_H
@ NPC_DWARVEN_SPIRIT_GUIDE
@ NPC_TAUNKA_SPIRIT_GUIDE
@ BATTLEFIELD_WG_NPC_STALKER
@ BATTLEFIELD_WG_NPC_GUARD_A
@ NPC_WINTERGRASP_SIEGE_ENGINE_ALLIANCE
WintergraspTowerIds
@ BATTLEFIELD_WG_TOWER_WINTER_S_EDGE
@ BATTLEFIELD_WG_TOWER_SHADOWSIGHT
@ BATTLEFIELD_WG_TOWER_FORTRESS_SE
@ BATTLEFIELD_WG_TOWER_FORTRESS_NW
@ BATTLEFIELD_WG_TOWER_FLAMEWATCH
@ BATTLEFIELD_WG_TOWER_FORTRESS_NE
@ BATTLEFIELD_WG_TOWER_FORTRESS_SW
WintergraspSpells
Definition: BattlefieldWG.h:37
@ SPELL_HORDE_FLAG
Definition: BattlefieldWG.h:50
@ SPELL_GREATEST_HONOR
Definition: BattlefieldWG.h:48
@ SPELL_ESSENCE_OF_WINTERGRASP
Definition: BattlefieldWG.h:69
@ SPELL_VICTORY_AURA
Definition: BattlefieldWG.h:65
@ SPELL_WINTERGRASP_RESTRICTED_FLIGHT_AREA
Definition: BattlefieldWG.h:70
@ SPELL_RECRUIT
Definition: BattlefieldWG.h:39
@ SPELL_TELEPORT_FORTRESS
Definition: BattlefieldWG.h:62
@ SPELL_TENACITY
Definition: BattlefieldWG.h:42
@ SPELL_ALLIANCE_CONTROLS_FACTORY_PHASE_SHIFT
Definition: BattlefieldWG.h:74
@ SPELL_HORDE_CONTROLS_FACTORY_PHASE_SHIFT
Definition: BattlefieldWG.h:73
@ SPELL_GRAB_PASSENGER
Definition: BattlefieldWG.h:51
@ SPELL_TELEPORT_BRIDGE
Definition: BattlefieldWG.h:61
@ SPELL_HORDE_CONTROL_PHASE_SHIFT
Definition: BattlefieldWG.h:76
@ SPELL_VICTORY_REWARD
Definition: BattlefieldWG.h:54
@ SPELL_CORPORAL
Definition: BattlefieldWG.h:40
@ SPELL_GREATER_HONOR
Definition: BattlefieldWG.h:47
@ SPELL_TELEPORT_DALARAN
Definition: BattlefieldWG.h:64
@ SPELL_DAMAGED_BUILDING
Definition: BattlefieldWG.h:58
@ SPELL_GREAT_HONOR
Definition: BattlefieldWG.h:46
@ SPELL_ALLIANCE_CONTROL_PHASE_SHIFT
Definition: BattlefieldWG.h:77
@ SPELL_WINTERGRASP_WATER
Definition: BattlefieldWG.h:68
@ SPELL_INTACT_BUILDING
Definition: BattlefieldWG.h:59
@ SPELL_DESTROYED_TOWER
Definition: BattlefieldWG.h:57
@ SPELL_SPIRITUAL_IMMUNITY
Definition: BattlefieldWG.h:45
@ SPELL_ALLIANCE_FLAG
Definition: BattlefieldWG.h:49
@ SPELL_DEFEAT_REWARD
Definition: BattlefieldWG.h:55
@ SPELL_TENACITY_VEHICLE
Definition: BattlefieldWG.h:43
@ SPELL_LIEUTENANT
Definition: BattlefieldWG.h:41
@ SPELL_DAMAGED_TOWER
Definition: BattlefieldWG.h:56
@ SPELL_TOWER_CONTROL
Definition: BattlefieldWG.h:44
WintergraspTeamControl
@ BATTLEFIELD_WG_TEAM_HORDE
@ BATTLEFIELD_WG_TEAM_NEUTRAL
@ BATTLEFIELD_WG_TEAM_ALLIANCE
std::vector< BfWGGameObjectBuilding * > GameObjectBuildingVect
Definition: BattlefieldWG.h:33
WintergraspQuests
@ QUEST_CREDIT_TOWERS_DESTROYED
@ QUEST_VICTORY_WINTERGRASP_A
@ QUEST_CREDIT_DEFEND_SIEGE
@ QUEST_VICTORY_WINTERGRASP_H
WintergraspGameObject
@ GO_WINTERGRASP_FACTORY_BANNER_SW
@ GO_WINTERGRASP_FORTRESS_TOWER_3
@ GO_WINTERGRASP_FORTRESS_TOWER_2
@ GO_WINTERGRASP_FLAMEWATCH_TOWER
@ GO_WINTERGRASP_FORTRESS_TOWER_4
@ GO_WINTERGRASP_SHADOWSIGHT_TOWER
@ GO_WINTERGRASP_FACTORY_BANNER_NW
@ GO_WINTERGRASP_FACTORY_BANNER_NE
@ GO_WINTERGRASP_TITAN_S_RELIC
@ GO_WINTERGRASP_FORTRESS_TOWER_1
@ GO_WINTERGRASP_FACTORY_BANNER_SE
@ GO_WINTERGRASP_FORTRESS_GATE
@ GO_WINTERGRASP_WINTER_S_EDGE_TOWER
@ GO_WINTERGRASP_VAULT_GATE
@ GO_WINTERGRASP_KEEP_COLLISION_WALL
WGGraveyardId
@ BATTLEFIELD_WG_GY_WORKSHOP_NE
@ BATTLEFIELD_WG_GY_KEEP
@ BATTLEFIELD_WG_GRAVEYARD_MAX
@ BATTLEFIELD_WG_GY_WORKSHOP_SW
@ BATTLEFIELD_WG_GY_WORKSHOP_SE
@ BATTLEFIELD_WG_GY_HORDE
@ BATTLEFIELD_WG_GY_WORKSHOP_NW
@ BATTLEFIELD_WG_GY_ALLIANCE
WintergraspAchievements
Definition: BattlefieldWG.h:96
@ ACHIEVEMENTS_WG_TOWER_CANNON_KILL
@ ACHIEVEMENTS_STONE_KEEPER_1000
@ ACHIEVEMENTS_DESTRUCTION_DERBY_A
@ ACHIEVEMENTS_WIN_WG
Definition: BattlefieldWG.h:97
@ ACHIEVEMENTS_WG_GNOMESLAUGHTER
Definition: BattlefieldWG.h:99
@ ACHIEVEMENTS_STONE_KEEPER_50
@ ACHIEVEMENTS_DESTRUCTION_DERBY_H
@ ACHIEVEMENTS_STONE_KEEPER_100
@ ACHIEVEMENTS_WIN_WG_TIMER_10
@ ACHIEVEMENTS_WIN_WG_100
Definition: BattlefieldWG.h:98
@ ACHIEVEMENTS_STONE_KEEPER_250
@ ACHIEVEMENTS_WG_MASTER_H
@ ACHIEVEMENTS_WG_RANGER
@ ACHIEVEMENTS_WG_MASTER_A
@ ACHIEVEMENTS_STONE_KEEPER_500
@ ACHIEVEMENTS_WG_TOWER_DESTROY
WintergraspText
@ BATTLEFIELD_WG_TEXT_WESTSPARK_ATTACK_HORDE
@ BATTLEFIELD_WG_TEXT_WESTSPARK_CAPTURE_HORDE
@ BATTLEFIELD_WG_TEXT_FORTRESS_DEFEND_HORDE
@ BATTLEFIELD_WG_TEXT_RANK_CORPORAL
@ BATTLEFIELD_WG_TEXT_SUNKEN_RING_CAPTURE_ALLIANCE
@ BATTLEFIELD_WG_TEXT_SUNKEN_RING_ATTACK_HORDE
@ BATTLEFIELD_WG_TEXT_EASTSPARK_CAPTURE_HORDE
@ BATTLEFIELD_WG_TEXT_WESTSPARK_ATTACK_ALLIANCE
@ BATTLEFIELD_WG_TEXT_EASTERN_TOWER_DESTROY
@ BATTLEFIELD_WG_TEXT_BROKEN_TEMPLE_ATTACK_ALLIANCE
@ BATTLEFIELD_WG_TEXT_BROKEN_TEMPLE_CAPTURE_ALLIANCE
@ BATTLEFIELD_WG_TEXT_WESTERN_TOWER_DAMAGE
@ BATTLEFIELD_WG_TEXT_START_BATTLE
@ BATTLEFIELD_WG_TEXT_EASTSPARK_ATTACK_HORDE
@ BATTLEFIELD_WG_TEXT_EASTSPARK_CAPTURE_ALLIANCE
@ BATTLEFIELD_WG_TEXT_RANK_FIRST_LIEUTENANT
@ BATTLEFIELD_WG_TEXT_NE_KEEPTOWER_DAMAGE
@ BATTLEFIELD_WG_TEXT_BROKEN_TEMPLE_CAPTURE_HORDE
@ BATTLEFIELD_WG_TEXT_FORTRESS_CAPTURE_ALLIANCE
@ BATTLEFIELD_WG_TEXT_SE_KEEPTOWER_DAMAGE
@ BATTLEFIELD_WG_TEXT_EASTERN_TOWER_DAMAGE
@ BATTLEFIELD_WG_TEXT_SE_KEEPTOWER_DESTROY
@ BATTLEFIELD_WG_TEXT_NW_KEEPTOWER_DESTROY
@ BATTLEFIELD_WG_TEXT_START_GROUPING
@ BATTLEFIELD_WG_TEXT_SUNKEN_RING_ATTACK_ALLIANCE
@ BATTLEFIELD_WG_TEXT_SW_KEEPTOWER_DESTROY
@ BATTLEFIELD_WG_TEXT_SUNKEN_RING_CAPTURE_HORDE
@ BATTLEFIELD_WG_TEXT_WESTSPARK_CAPTURE_ALLIANCE
@ BATTLEFIELD_WG_TEXT_EASTSPARK_ATTACK_ALLIANCE
@ BATTLEFIELD_WG_TEXT_NE_KEEPTOWER_DESTROY
@ BATTLEFIELD_WG_TEXT_FORTRESS_DEFEND_ALLIANCE
@ BATTLEFIELD_WG_TEXT_SOUTHERN_TOWER_DESTROY
@ BATTLEFIELD_WG_TEXT_NW_KEEPTOWER_DAMAGE
@ BATTLEFIELD_WG_TEXT_FORTRESS_CAPTURE_HORDE
@ BATTLEFIELD_WG_TEXT_SW_KEEPTOWER_DAMAGE
@ BATTLEFIELD_WG_TEXT_BROKEN_TEMPLE_ATTACK_HORDE
@ BATTLEFIELD_WG_TEXT_SOUTHERN_TOWER_DAMAGE
@ BATTLEFIELD_WG_TEXT_WESTERN_TOWER_DESTROY
WintergraspData
Definition: BattlefieldWG.h:81
@ BATTLEFIELD_WG_MAPID
Definition: BattlefieldWG.h:92
@ BATTLEFIELD_WG_DATA_VEHICLE_A
Definition: BattlefieldWG.h:88
@ BATTLEFIELD_WG_DATA_MAX_VEHICLE_A
Definition: BattlefieldWG.h:86
@ BATTLEFIELD_WG_DATA_MAX
Definition: BattlefieldWG.h:90
@ BATTLEFIELD_WG_DATA_DAMAGED_TOWER_DEF
Definition: BattlefieldWG.h:82
@ BATTLEFIELD_WG_DATA_VEHICLE_H
Definition: BattlefieldWG.h:89
@ BATTLEFIELD_WG_DATA_BROKEN_TOWER_ATT
Definition: BattlefieldWG.h:85
@ BATTLEFIELD_WG_DATA_MAX_VEHICLE_H
Definition: BattlefieldWG.h:87
@ BATTLEFIELD_WG_DATA_DAMAGED_TOWER_ATT
Definition: BattlefieldWG.h:84
@ BATTLEFIELD_WG_DATA_BROKEN_TOWER_DEF
Definition: BattlefieldWG.h:83
WintergraspGameObjectState
@ BATTLEFIELD_WG_OBJECTSTATE_ALLIANCE_DAMAGE
@ BATTLEFIELD_WG_OBJECTSTATE_NONE
@ BATTLEFIELD_WG_OBJECTSTATE_ALLIANCE_DESTROY
@ BATTLEFIELD_WG_OBJECTSTATE_HORDE_DESTROY
@ BATTLEFIELD_WG_OBJECTSTATE_NEUTRAL_DESTROY
@ BATTLEFIELD_WG_OBJECTSTATE_NEUTRAL_INTACT
@ BATTLEFIELD_WG_OBJECTSTATE_ALLIANCE_INTACT
@ BATTLEFIELD_WG_OBJECTSTATE_HORDE_INTACT
@ BATTLEFIELD_WG_OBJECTSTATE_NEUTRAL_DAMAGE
@ BATTLEFIELD_WG_OBJECTSTATE_HORDE_DAMAGE
WintergraspWorkshopIds
@ BATTLEFIELD_WG_WORKSHOP_SE
@ BATTLEFIELD_WG_WORKSHOP_KEEP_WEST
@ BATTLEFIELD_WG_WORKSHOP_KEEP_EAST
@ BATTLEFIELD_WG_WORKSHOP_NW
@ BATTLEFIELD_WG_WORKSHOP_SW
@ BATTLEFIELD_WG_WORKSHOP_NE
std::vector< WintergraspWorkshop * > WorkshopVect
Definition: BattlefieldWG.h:34
uint8_t uint8
Definition: Define.h:144
uint32_t uint32
Definition: Define.h:142
std::unordered_set< ObjectGuid > GuidUnorderedSet
Definition: ObjectGuid.h:396
std::vector< ObjectGuid > GuidVector
Definition: ObjectGuid.h:395
TeamId
uint8 constexpr PVP_TEAMS_COUNT
ObjectGuid m_titansRelicGUID
uint32 m_tenacityStack
void OnPlayerLeaveZone(Player *player) override
Called when player left the WG zone.
void OnUnitDeath(Unit *unit) override
GuidVector DefenderPortalList[PVP_TEAMS_COUNT]
void RemoveAurasFromPlayer(Player *player)
void UpdateCounterVehicle(bool init)
void OnBattleEnd(bool endByTimer) override
Called when battle end.
void OnStartGrouping() override
Called when grouping starts (15 minutes before battlestart)
GameObject * GetRelic()
Return pointer to relic object.
WorkshopVect Workshops
void ProcessEvent(WorldObject *obj, uint32 eventId, WorldObject *invoker) override
void PromotePlayer(Player *killer)
void OnPlayerLeaveWar(Player *player) override
Called when player left the battle.
void UpdateVehicleCountWG()
void SetRelicInteractible(bool allow)
Define if player can interact with the relic.
bool SetupBattlefield() override
Called when battlefield is setup, at server start.
void UpdatedDestroyedTowerCount(TeamId team)
Called when tower is broken.
void BrokenWallOrTower(TeamId team, BfWGGameObjectBuilding *building)
Called when a wall/tower is broken.
void OnBattleStart() override
Called when the battle start.
GuidUnorderedSet m_vehicles[PVP_TEAMS_COUNT]
void OnPlayerEnterZone(Player *player) override
Called when player enters in WG zone.
bool m_isRelicInteractible
bool CanInteractWithRelic()
Check if players can interact with the relic (Only if the last door has been broken)
void UpdateDamagedTowerCount(TeamId team)
Called when a tower is damaged.
GameObjectBuildingVect BuildingsInZone
void SetRelic(ObjectGuid relicGUID)
Define relic object.
void OnCreatureRemove(Creature *creature) override
Called when a creature is removed.
void OnPlayerJoinWar(Player *player) override
Called when player accept invite to join battle.
void OnCreatureCreate(Creature *creature) override
Called when a creature is created.
bool FindAndRemoveVehicleFromList(Unit *vehicle)
uint8 GetSpiritGraveyardId(uint32 areaId) const
void HandleKill(Player *killer, Unit *victim) override
Called when a Unit is kill in battlefield zone.
void OnGameObjectCreate(GameObject *go) override
Called when a gameobject is created.
uint32 GetData(uint32 data) const override
void DoCompleteOrIncrementAchievement(uint32 achievement, Player *player, uint8 incrementNumber=1) override
GuidVector CanonList
void HandlePromotion(Player *killer, Unit *killed)
TeamId m_tenacityTeam
GameObject * GetGameObject(ObjectGuid guid)
Battlefield(Map *map)
Constructor.
Definition: Battlefield.cpp:36
BfGraveyardWG(BattlefieldWG *Bf)
void SetTextId(uint32 textId)
uint32 GetTextId() const
uint32 m_GossipTextId
Definition: Group.h:197
Definition: Unit.h:627
void HandleContestedEventAlliance(GameObject *controlZone) override
void HandleProgressEventHorde(GameObject *controlZone) override
WintergraspWorkshop * m_Workshop
void HandleProgressEventAlliance(GameObject *controlZone) override
void HandleContestedEventHorde(GameObject *controlZone) override
WintergraspCapturePoint(BattlefieldWG *battlefield, WintergraspWorkshop *workshop)
GuidVector m_CreatureBottomList[PVP_TEAMS_COUNT]
StaticWintergraspTowerInfo const * _staticTowerInfo
void UpdateTurretAttack(bool disable)
BfWGGameObjectBuilding(BattlefieldWG *wg, WintergraspGameObjectBuildingType type, uint32 worldState)
void Init(GameObject *go)
WintergraspGameObjectState _state
ObjectGuid const & GetGUID() const
WintergraspGameObjectBuildingType _type
GuidVector m_TowerCannonBottomList
GuidVector m_CreatureTopList[PVP_TEAMS_COUNT]
BattlefieldWG * _wg
GuidVector m_GameObjectList[PVP_TEAMS_COUNT]
BattlefieldWG * _wg
WintergraspGameObjectState _state
void GiveControlTo(TeamId teamId, bool init=false)
StaticWintergraspWorkshopInfo const * _staticInfo
WintergraspWorkshop(BattlefieldWG *wg, uint8 type)
TeamId GetTeamControl() const