refactor(Core/Battlefield): Clean some dead code and follow convention in BattlefieldWG.h (#26224)

This commit is contained in:
NoxMax
2026-06-16 06:47:14 -06:00
committed by GitHub
parent 0b359eab0f
commit 5dfe06614e
@@ -36,7 +36,6 @@ using GameObjectSet = std::set<GameObject*>;
using GameObjectBuilding = std::set<BfWGGameObjectBuilding*>; using GameObjectBuilding = std::set<BfWGGameObjectBuilding*>;
using Workshop = std::set<WGWorkshop*>; using Workshop = std::set<WGWorkshop*>;
using GroupSet = std::set<Group*>; using GroupSet = std::set<Group*>;
//using CapturePointSet = std::set<WintergraspCapturePoint*>; unused ?
uint32 const VehNumWorldState[2] = { WORLD_STATE_BATTLEFIELD_WG_VEHICLE_A, WORLD_STATE_BATTLEFIELD_WG_VEHICLE_H }; uint32 const VehNumWorldState[2] = { WORLD_STATE_BATTLEFIELD_WG_VEHICLE_A, WORLD_STATE_BATTLEFIELD_WG_VEHICLE_H };
uint32 const MaxVehNumWorldState[2] = { WORLD_STATE_BATTLEFIELD_WG_MAX_VEHICLE_A, WORLD_STATE_BATTLEFIELD_WG_MAX_VEHICLE_H }; uint32 const MaxVehNumWorldState[2] = { WORLD_STATE_BATTLEFIELD_WG_MAX_VEHICLE_A, WORLD_STATE_BATTLEFIELD_WG_MAX_VEHICLE_H };
@@ -495,8 +494,8 @@ enum WintergraspWorkshopIds
BATTLEFIELD_WG_WORKSHOP_NW, BATTLEFIELD_WG_WORKSHOP_NW,
BATTLEFIELD_WG_WORKSHOP_SE, BATTLEFIELD_WG_WORKSHOP_SE,
BATTLEFIELD_WG_WORKSHOP_SW, BATTLEFIELD_WG_WORKSHOP_SW,
BATTLEFIELD_WG_WORKSHOP_KEEP_WEST,
BATTLEFIELD_WG_WORKSHOP_KEEP_EAST, BATTLEFIELD_WG_WORKSHOP_KEEP_EAST,
BATTLEFIELD_WG_WORKSHOP_KEEP_WEST,
}; };
/// @todo: Handle this with creature_text ? /// @todo: Handle this with creature_text ?
@@ -1022,9 +1021,11 @@ WintergraspTowerCannonData const TowerCannon[WG_MAX_TOWER_CANNON] =
// Workshop data and elements // Workshop data and elements
uint8 const WG_MAX_WORKSHOP = 6; uint8 const WG_MAX_WORKSHOP = 6;
// IDs below this are the capturable workshops (NE/NW/SE/SW) with graveyards.
uint8 const WG_CAPTURE_WORKSHOP_COUNT = 4;
struct WGWorkshopData struct WGWorkshopData
{ {
uint8 id;
uint32 worldstate; uint32 worldstate;
uint8 attackText; uint8 attackText;
uint8 takenText; uint8 takenText;
@@ -1033,17 +1034,17 @@ struct WGWorkshopData
WGWorkshopData const WorkshopsData[WG_MAX_WORKSHOP] = WGWorkshopData const WorkshopsData[WG_MAX_WORKSHOP] =
{ {
// NE // NE
{BATTLEFIELD_WG_WORKSHOP_NE, WORLD_STATE_BATTLEFIELD_WG_WORKSHOP_NE, BATTLEFIELD_WG_TEXT_WORKSHOP_NE_ATTACK, BATTLEFIELD_WG_TEXT_WORKSHOP_NE_TAKEN}, {WORLD_STATE_BATTLEFIELD_WG_WORKSHOP_NE, BATTLEFIELD_WG_TEXT_WORKSHOP_NE_ATTACK, BATTLEFIELD_WG_TEXT_WORKSHOP_NE_TAKEN},
// NW // NW
{BATTLEFIELD_WG_WORKSHOP_NW, WORLD_STATE_BATTLEFIELD_WG_WORKSHOP_NW, BATTLEFIELD_WG_TEXT_WORKSHOP_NW_ATTACK, BATTLEFIELD_WG_TEXT_WORKSHOP_NW_TAKEN}, {WORLD_STATE_BATTLEFIELD_WG_WORKSHOP_NW, BATTLEFIELD_WG_TEXT_WORKSHOP_NW_ATTACK, BATTLEFIELD_WG_TEXT_WORKSHOP_NW_TAKEN},
// SE // SE
{BATTLEFIELD_WG_WORKSHOP_SE, WORLD_STATE_BATTLEFIELD_WG_WORKSHOP_SE, BATTLEFIELD_WG_TEXT_WORKSHOP_SE_ATTACK, BATTLEFIELD_WG_TEXT_WORKSHOP_SE_TAKEN}, {WORLD_STATE_BATTLEFIELD_WG_WORKSHOP_SE, BATTLEFIELD_WG_TEXT_WORKSHOP_SE_ATTACK, BATTLEFIELD_WG_TEXT_WORKSHOP_SE_TAKEN},
// SW // SW
{BATTLEFIELD_WG_WORKSHOP_SW, WORLD_STATE_BATTLEFIELD_WG_WORKSHOP_SW, BATTLEFIELD_WG_TEXT_WORKSHOP_SW_ATTACK, BATTLEFIELD_WG_TEXT_WORKSHOP_SW_TAKEN}, {WORLD_STATE_BATTLEFIELD_WG_WORKSHOP_SW, BATTLEFIELD_WG_TEXT_WORKSHOP_SW_ATTACK, BATTLEFIELD_WG_TEXT_WORKSHOP_SW_TAKEN},
// KEEP WEST - It can't be taken
{BATTLEFIELD_WG_WORKSHOP_KEEP_WEST, WORLD_STATE_BATTLEFIELD_WG_WORKSHOP_K_W, 0, BATTLEFIELD_WG_TEXT_WORKSHOP_NE_TAKEN},
// KEEP EAST - It can't be taken // KEEP EAST - It can't be taken
{BATTLEFIELD_WG_WORKSHOP_KEEP_EAST, WORLD_STATE_BATTLEFIELD_WG_WORKSHOP_K_E, 0, BATTLEFIELD_WG_TEXT_WORKSHOP_NE_TAKEN} {WORLD_STATE_BATTLEFIELD_WG_WORKSHOP_K_E, 0, BATTLEFIELD_WG_TEXT_WORKSHOP_NE_TAKEN},
// KEEP WEST - It can't be taken
{WORLD_STATE_BATTLEFIELD_WG_WORKSHOP_K_W, 0, BATTLEFIELD_WG_TEXT_WORKSHOP_NE_TAKEN}
}; };
// Structs for Building, Graveyard, and Workshop runtime objects // Structs for Building, Graveyard, and Workshop runtime objects
@@ -1185,9 +1186,7 @@ struct BfWGGameObjectBuilding
void Init(GameObject* gobj, uint32 type, uint32 worldstate, uint8 damageText, uint8 destroyText) void Init(GameObject* gobj, uint32 type, uint32 worldstate, uint8 damageText, uint8 destroyText)
{ {
if (!gobj) if (!gobj)
{
return; return;
}
// GameObject associated to object // GameObject associated to object
m_Build = gobj->GetGUID(); m_Build = gobj->GetGUID();
@@ -1219,23 +1218,20 @@ struct BfWGGameObjectBuilding
} }
m_State = sWorldState->getWorldState(m_WorldState); m_State = sWorldState->getWorldState(m_WorldState);
if (gobj) switch (m_State)
{ {
switch (m_State) case BATTLEFIELD_WG_OBJECTSTATE_ALLIANCE_INTACT:
{ case BATTLEFIELD_WG_OBJECTSTATE_HORDE_INTACT:
case BATTLEFIELD_WG_OBJECTSTATE_ALLIANCE_INTACT: gobj->SetDestructibleState(GO_DESTRUCTIBLE_REBUILDING, nullptr, true);
case BATTLEFIELD_WG_OBJECTSTATE_HORDE_INTACT: break;
gobj->SetDestructibleState(GO_DESTRUCTIBLE_REBUILDING, nullptr, true); case BATTLEFIELD_WG_OBJECTSTATE_ALLIANCE_DESTROY:
break; case BATTLEFIELD_WG_OBJECTSTATE_HORDE_DESTROY:
case BATTLEFIELD_WG_OBJECTSTATE_ALLIANCE_DESTROY: gobj->SetDestructibleState(GO_DESTRUCTIBLE_DESTROYED);
case BATTLEFIELD_WG_OBJECTSTATE_HORDE_DESTROY: break;
gobj->SetDestructibleState(GO_DESTRUCTIBLE_DESTROYED); case BATTLEFIELD_WG_OBJECTSTATE_ALLIANCE_DAMAGE:
break; case BATTLEFIELD_WG_OBJECTSTATE_HORDE_DAMAGE:
case BATTLEFIELD_WG_OBJECTSTATE_ALLIANCE_DAMAGE: gobj->SetDestructibleState(GO_DESTRUCTIBLE_DAMAGED);
case BATTLEFIELD_WG_OBJECTSTATE_HORDE_DAMAGE: break;
gobj->SetDestructibleState(GO_DESTRUCTIBLE_DAMAGED);
break;
}
} }
int32 towerid = -1; int32 towerid = -1;
@@ -1415,7 +1411,7 @@ struct WGWorkshop
WGWorkshop(BattlefieldWG* _bf, uint8 _workshopId) WGWorkshop(BattlefieldWG* _bf, uint8 _workshopId)
{ {
ASSERT(_bf || _workshopId < WG_MAX_WORKSHOP); ASSERT(_bf && _workshopId < WG_MAX_WORKSHOP);
bf = _bf; bf = _bf;
workshopId = _workshopId; workshopId = _workshopId;
@@ -1423,6 +1419,9 @@ struct WGWorkshop
state = BATTLEFIELD_WG_OBJECTSTATE_NONE; state = BATTLEFIELD_WG_OBJECTSTATE_NONE;
} }
// True for the four capturable workshops.
bool IsCapturable() const { return workshopId < WG_CAPTURE_WORKSHOP_COUNT; }
void GiveControlTo(TeamId team, bool init /* for first call in setup*/) void GiveControlTo(TeamId team, bool init /* for first call in setup*/)
{ {
switch (team) switch (team)
@@ -1438,7 +1437,7 @@ struct WGWorkshop
bf->SendUpdateWorldState(WorkshopsData[workshopId].worldstate, state); bf->SendUpdateWorldState(WorkshopsData[workshopId].worldstate, state);
// Found associate graveyard and update it // Found associate graveyard and update it
if (workshopId < BATTLEFIELD_WG_WORKSHOP_KEEP_WEST) if (IsCapturable())
if (bf->GetGraveyardById(workshopId)) if (bf->GetGraveyardById(workshopId))
bf->GetGraveyardById(workshopId)->GiveControlTo(team); bf->GetGraveyardById(workshopId)->GiveControlTo(team);
@@ -1457,7 +1456,7 @@ struct WGWorkshop
bf->SendWarning(team == TEAM_ALLIANCE ? WorkshopsData[workshopId].takenText : (WorkshopsData[workshopId].takenText + 2)); bf->SendWarning(team == TEAM_ALLIANCE ? WorkshopsData[workshopId].takenText : (WorkshopsData[workshopId].takenText + 2));
// Found associate graveyard and update it // Found associate graveyard and update it
if (workshopId < BATTLEFIELD_WG_WORKSHOP_KEEP_WEST) if (IsCapturable())
if (bf->GetGraveyardById(workshopId)) if (bf->GetGraveyardById(workshopId))
bf->GetGraveyardById(workshopId)->GiveControlTo(team); bf->GetGraveyardById(workshopId)->GiveControlTo(team);
@@ -1475,7 +1474,7 @@ struct WGWorkshop
void UpdateGraveyardAndWorkshop() void UpdateGraveyardAndWorkshop()
{ {
if (workshopId < BATTLEFIELD_WG_WORKSHOP_KEEP_WEST) if (IsCapturable())
bf->GetGraveyardById(workshopId)->GiveControlTo(TeamId(teamControl)); bf->GetGraveyardById(workshopId)->GiveControlTo(TeamId(teamControl));
else else
GiveControlTo(bf->GetDefenderTeam(), true); GiveControlTo(bf->GetDefenderTeam(), true);