refactor(Core/BG/AV): code cleanup (#1695)
This commit is contained in:
committed by
Stoabrogga
parent
55b23c53ad
commit
41946bbedb
@@ -489,7 +489,8 @@ class Battleground
|
|||||||
|
|
||||||
void UpdateWorldState(uint32 Field, uint32 Value);
|
void UpdateWorldState(uint32 Field, uint32 Value);
|
||||||
void UpdateWorldStateForPlayer(uint32 Field, uint32 Value, Player* player);
|
void UpdateWorldStateForPlayer(uint32 Field, uint32 Value, Player* player);
|
||||||
void EndBattleground(TeamId winnerTeamId);
|
|
||||||
|
virtual void EndBattleground(TeamId winnerTeamId);
|
||||||
void BlockMovement(Player* player);
|
void BlockMovement(Player* player);
|
||||||
|
|
||||||
void SendWarningToAll(uint32 entry, ...);
|
void SendWarningToAll(uint32 entry, ...);
|
||||||
|
|||||||
@@ -290,7 +290,7 @@ void BattlegroundAV::UpdateScore(TeamId teamId, int16 points)
|
|||||||
Creature* BattlegroundAV::AddAVCreature(uint16 cinfoid, uint16 type)
|
Creature* BattlegroundAV::AddAVCreature(uint16 cinfoid, uint16 type)
|
||||||
{
|
{
|
||||||
bool isStatic = false;
|
bool isStatic = false;
|
||||||
Creature* creature = NULL;
|
Creature* creature = nullptr;
|
||||||
ASSERT(type <= AV_CPLACE_MAX + AV_STATICCPLACE_MAX);
|
ASSERT(type <= AV_CPLACE_MAX + AV_STATICCPLACE_MAX);
|
||||||
if (type >= AV_CPLACE_MAX) //static
|
if (type >= AV_CPLACE_MAX) //static
|
||||||
{
|
{
|
||||||
@@ -314,7 +314,7 @@ Creature* BattlegroundAV::AddAVCreature(uint16 cinfoid, uint16 type)
|
|||||||
BG_AV_CreaturePos[type][3]);
|
BG_AV_CreaturePos[type][3]);
|
||||||
}
|
}
|
||||||
if (!creature)
|
if (!creature)
|
||||||
return NULL;
|
return nullptr;
|
||||||
if (creature->GetEntry() == BG_AV_CreatureInfo[AV_NPC_A_CAPTAIN] || creature->GetEntry() == BG_AV_CreatureInfo[AV_NPC_H_CAPTAIN])
|
if (creature->GetEntry() == BG_AV_CreatureInfo[AV_NPC_A_CAPTAIN] || creature->GetEntry() == BG_AV_CreatureInfo[AV_NPC_H_CAPTAIN])
|
||||||
creature->SetRespawnDelay(RESPAWN_ONE_DAY); // TODO: look if this can be done by database + also add this for the wingcommanders
|
creature->SetRespawnDelay(RESPAWN_ONE_DAY); // TODO: look if this can be done by database + also add this for the wingcommanders
|
||||||
|
|
||||||
@@ -550,12 +550,14 @@ void BattlegroundAV::HandleAreaTrigger(Player* player, uint32 trigger)
|
|||||||
case 3331:
|
case 3331:
|
||||||
//player->Unmount();
|
//player->Unmount();
|
||||||
break;
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void BattlegroundAV::UpdatePlayerScore(Player* player, uint32 type, uint32 value, bool doAddHonor)
|
void BattlegroundAV::UpdatePlayerScore(Player* player, uint32 type, uint32 value, bool doAddHonor)
|
||||||
{
|
{
|
||||||
BattlegroundScoreMap::iterator itr = PlayerScores.find(player->GetGUID());
|
auto itr = PlayerScores.find(player->GetGUID());
|
||||||
if (itr == PlayerScores.end())
|
if (itr == PlayerScores.end())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@@ -744,7 +746,6 @@ void BattlegroundAV::ChangeMineOwner(uint8 mine, TeamId teamId, bool initial)
|
|||||||
YellToAll(creature, LANG_BG_AV_S_MINE_BOSS_CLAIMS, LANG_UNIVERSAL);
|
YellToAll(creature, LANG_BG_AV_S_MINE_BOSS_CLAIMS, LANG_UNIVERSAL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool BattlegroundAV::PlayerCanDoMineQuest(int32 GOId, TeamId teamId)
|
bool BattlegroundAV::PlayerCanDoMineQuest(int32 GOId, TeamId teamId)
|
||||||
@@ -1180,15 +1181,14 @@ void BattlegroundAV::SendMineWorldStates(uint32 mine)
|
|||||||
|
|
||||||
GraveyardStruct const* BattlegroundAV::GetClosestGraveyard(Player* player)
|
GraveyardStruct const* BattlegroundAV::GetClosestGraveyard(Player* player)
|
||||||
{
|
{
|
||||||
GraveyardStruct const* pGraveyard = NULL;
|
GraveyardStruct const* entry = nullptr;
|
||||||
GraveyardStruct const* entry = NULL;
|
|
||||||
float dist = 0;
|
float dist = 0;
|
||||||
float minDist = 0;
|
float minDist = 0;
|
||||||
float x, y;
|
float x, y;
|
||||||
|
|
||||||
player->GetPosition(x, y);
|
player->GetPosition(x, y);
|
||||||
|
|
||||||
pGraveyard = sGraveyard->GetGraveyard(BG_AV_GraveyardIds[player->GetTeamId()+7]);
|
GraveyardStruct const* pGraveyard = sGraveyard->GetGraveyard(BG_AV_GraveyardIds[player->GetTeamId()+7]);
|
||||||
minDist = (pGraveyard->x - x)*(pGraveyard->x - x)+(pGraveyard->y - y)*(pGraveyard->y - y);
|
minDist = (pGraveyard->x - x)*(pGraveyard->x - x)+(pGraveyard->y - y)*(pGraveyard->y - y);
|
||||||
|
|
||||||
for (uint8 i = BG_AV_NODES_FIRSTAID_STATION; i <= BG_AV_NODES_FROSTWOLF_HUT; ++i)
|
for (uint8 i = BG_AV_NODES_FIRSTAID_STATION; i <= BG_AV_NODES_FROSTWOLF_HUT; ++i)
|
||||||
@@ -1556,8 +1556,8 @@ void BattlegroundAV::ResetBGSubclass()
|
|||||||
|
|
||||||
bool BattlegroundAV::IsBothMinesControlledByTeam(TeamId teamId) const
|
bool BattlegroundAV::IsBothMinesControlledByTeam(TeamId teamId) const
|
||||||
{
|
{
|
||||||
for (uint8 mine = 0; mine < 2; mine++)
|
for (auto mine : m_Mine_Owner)
|
||||||
if (m_Mine_Owner[mine] != teamId)
|
if (mine != teamId)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
@@ -1582,10 +1582,7 @@ bool BattlegroundAV::IsAllTowersControlledAndCaptainAlive(TeamId teamId) const
|
|||||||
if (m_Nodes[i].State != POINT_DESTROYED)
|
if (m_Nodes[i].State != POINT_DESTROYED)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (!m_CaptainAlive[0])
|
return m_CaptainAlive[0];
|
||||||
return false;
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
else if (teamId == TEAM_HORDE)
|
else if (teamId == TEAM_HORDE)
|
||||||
{
|
{
|
||||||
@@ -1604,10 +1601,7 @@ bool BattlegroundAV::IsAllTowersControlledAndCaptainAlive(TeamId teamId) const
|
|||||||
if (m_Nodes[i].State != POINT_DESTROYED)
|
if (m_Nodes[i].State != POINT_DESTROYED)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (!m_CaptainAlive[1])
|
return m_CaptainAlive[1];
|
||||||
return false;
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
@@ -1544,8 +1544,8 @@ inline BG_AV_Nodes &operator++(BG_AV_Nodes &i){ return i = BG_AV_Nodes(i + 1); }
|
|||||||
|
|
||||||
struct BattlegroundAVScore : public BattlegroundScore
|
struct BattlegroundAVScore : public BattlegroundScore
|
||||||
{
|
{
|
||||||
BattlegroundAVScore(Player* player) : BattlegroundScore(player), GraveyardsAssaulted(0), GraveyardsDefended(0), TowersAssaulted(0), TowersDefended(0), MinesCaptured(0), LeadersKilled(0), SecondaryObjectives(0) { }
|
explicit BattlegroundAVScore(Player* player) : BattlegroundScore(player), GraveyardsAssaulted(0), GraveyardsDefended(0), TowersAssaulted(0), TowersDefended(0), MinesCaptured(0), LeadersKilled(0), SecondaryObjectives(0) { }
|
||||||
~BattlegroundAVScore() { }
|
~BattlegroundAVScore() override { }
|
||||||
uint32 GraveyardsAssaulted;
|
uint32 GraveyardsAssaulted;
|
||||||
uint32 GraveyardsDefended;
|
uint32 GraveyardsDefended;
|
||||||
uint32 TowersAssaulted;
|
uint32 TowersAssaulted;
|
||||||
@@ -1554,53 +1554,52 @@ struct BattlegroundAVScore : public BattlegroundScore
|
|||||||
uint32 LeadersKilled;
|
uint32 LeadersKilled;
|
||||||
uint32 SecondaryObjectives;
|
uint32 SecondaryObjectives;
|
||||||
|
|
||||||
uint32 GetAttr1() const final override { return GraveyardsAssaulted; }
|
uint32 GetAttr1() const final { return GraveyardsAssaulted; }
|
||||||
uint32 GetAttr2() const final override { return GraveyardsDefended; }
|
uint32 GetAttr2() const final { return GraveyardsDefended; }
|
||||||
uint32 GetAttr3() const final override { return TowersAssaulted; }
|
uint32 GetAttr3() const final { return TowersAssaulted; }
|
||||||
uint32 GetAttr4() const final override { return TowersDefended; }
|
uint32 GetAttr4() const final { return TowersDefended; }
|
||||||
uint32 GetAttr5() const final override { return MinesCaptured; }
|
uint32 GetAttr5() const final { return MinesCaptured; }
|
||||||
};
|
};
|
||||||
|
|
||||||
class BattlegroundAV : public Battleground
|
class BattlegroundAV : public Battleground
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
BattlegroundAV();
|
BattlegroundAV();
|
||||||
~BattlegroundAV();
|
~BattlegroundAV() override;
|
||||||
|
|
||||||
/* inherited from BattlegroundClass */
|
/* inherited from BattlegroundClass */
|
||||||
void AddPlayer(Player* player);
|
void AddPlayer(Player* player) override;
|
||||||
void StartingEventCloseDoors();
|
void StartingEventCloseDoors() override;
|
||||||
void StartingEventOpenDoors();
|
void StartingEventOpenDoors() override;
|
||||||
|
|
||||||
void RemovePlayer(Player* player);
|
void RemovePlayer(Player* player) override;
|
||||||
void HandleAreaTrigger(Player* player, uint32 trigger);
|
void HandleAreaTrigger(Player* player, uint32 trigger) override;
|
||||||
bool SetupBattleground();
|
bool SetupBattleground() override;
|
||||||
void ResetBGSubclass();
|
void ResetBGSubclass() override;
|
||||||
|
|
||||||
/*general stuff*/
|
/*general stuff*/
|
||||||
void UpdateScore(TeamId teamId, int16 points);
|
void UpdateScore(TeamId teamId, int16 points);
|
||||||
void UpdatePlayerScore(Player* player, uint32 type, uint32 value, bool doAddHonor = true);
|
void UpdatePlayerScore(Player* player, uint32 type, uint32 value, bool doAddHonor = true) override;
|
||||||
|
|
||||||
/*handlestuff*/ //these are functions which get called from extern
|
/*handlestuff*/ //these are functions which get called from extern
|
||||||
void EventPlayerClickedOnFlag(Player* source, GameObject* gameObject);
|
void EventPlayerClickedOnFlag(Player* source, GameObject* gameObject) override;
|
||||||
void HandleKillPlayer(Player* player, Player* killer);
|
void HandleKillPlayer(Player* player, Player* killer) override;
|
||||||
void HandleKillUnit(Creature* unit, Player* killer);
|
void HandleKillUnit(Creature* unit, Player* killer) override;
|
||||||
void HandleQuestComplete(uint32 questid, Player* player);
|
void HandleQuestComplete(uint32 questid, Player* player);
|
||||||
bool PlayerCanDoMineQuest(int32 GOId, TeamId teamId);
|
bool PlayerCanDoMineQuest(int32 GOId, TeamId teamId);
|
||||||
TeamId GetMineOwner(uint8 mine) { return m_Mine_Owner[mine]; }
|
|
||||||
|
|
||||||
void EndBattleground(TeamId winnerTeamId);
|
void EndBattleground(TeamId winnerTeamId) override;
|
||||||
|
|
||||||
GraveyardStruct const* GetClosestGraveyard(Player* player);
|
GraveyardStruct const* GetClosestGraveyard(Player* player) override;
|
||||||
|
|
||||||
/* achievement req. */
|
/* achievement req. */
|
||||||
bool IsBothMinesControlledByTeam(TeamId teamId) const;
|
bool IsBothMinesControlledByTeam(TeamId teamId) const;
|
||||||
bool IsAllTowersControlledAndCaptainAlive(TeamId teamId) const;
|
bool IsAllTowersControlledAndCaptainAlive(TeamId teamId) const;
|
||||||
|
|
||||||
TeamId GetPrematureWinner();
|
TeamId GetPrematureWinner() override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void PostUpdateImpl(uint32 diff);
|
void PostUpdateImpl(uint32 diff) override;
|
||||||
|
|
||||||
/* Nodes occupying */
|
/* Nodes occupying */
|
||||||
void EventPlayerAssaultsPoint(Player* player, uint32 object);
|
void EventPlayerAssaultsPoint(Player* player, uint32 object);
|
||||||
@@ -1624,7 +1623,7 @@ class BattlegroundAV : public Battleground
|
|||||||
void ChangeMineOwner(uint8 mine, TeamId teamId, bool initial=false);
|
void ChangeMineOwner(uint8 mine, TeamId teamId, bool initial=false);
|
||||||
|
|
||||||
/*worldstates*/
|
/*worldstates*/
|
||||||
void FillInitialWorldStates(WorldPacket& data);
|
void FillInitialWorldStates(WorldPacket& data) override;
|
||||||
uint8 GetWorldStateType(uint8 state, TeamId teamId);
|
uint8 GetWorldStateType(uint8 state, TeamId teamId);
|
||||||
void SendMineWorldStates(uint32 mine);
|
void SendMineWorldStates(uint32 mine);
|
||||||
void UpdateNodeWorldState(BG_AV_Nodes node);
|
void UpdateNodeWorldState(BG_AV_Nodes node);
|
||||||
@@ -1633,18 +1632,18 @@ class BattlegroundAV : public Battleground
|
|||||||
Creature* AddAVCreature(uint16 cinfoid, uint16 type);
|
Creature* AddAVCreature(uint16 cinfoid, uint16 type);
|
||||||
|
|
||||||
/*variables */
|
/*variables */
|
||||||
int32 m_Team_Scores[2];
|
int32 m_Team_Scores[2]{};
|
||||||
uint32 m_Team_QuestStatus[2][9]; //[x][y] x=team y=questcounter
|
uint32 m_Team_QuestStatus[2][9]{}; //[x][y] x=team y=questcounter
|
||||||
|
|
||||||
BG_AV_NodeInfo m_Nodes[BG_AV_NODES_MAX];
|
BG_AV_NodeInfo m_Nodes[BG_AV_NODES_MAX]{};
|
||||||
|
|
||||||
TeamId m_Mine_Owner[2];
|
TeamId m_Mine_Owner[2]{};
|
||||||
int32 m_Mine_Timer; //ticks for both teams
|
int32 m_Mine_Timer; //ticks for both teams
|
||||||
uint32 m_Mine_Reclaim_Timer[2];
|
uint32 m_Mine_Reclaim_Timer[2]{};
|
||||||
uint32 m_CaptainBuffTimer[2];
|
uint32 m_CaptainBuffTimer[2]{};
|
||||||
bool m_CaptainAlive[2];
|
bool m_CaptainAlive[2]{};
|
||||||
|
|
||||||
bool m_IsInformedNearVictory[2];
|
bool m_IsInformedNearVictory[2]{};
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Reference in New Issue
Block a user