refactor(Core/Battlefield): Clean some dead code and follow convention in BattlefieldWG.h (#26224)
This commit is contained in:
@@ -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);
|
||||||
|
|||||||
Reference in New Issue
Block a user