refactor(Core/BG/AV): code cleanup (#1695)

This commit is contained in:
Francesco Borzì
2020-01-10 08:47:45 +01:00
committed by Stoabrogga
parent 55b23c53ad
commit 41946bbedb
3 changed files with 45 additions and 51 deletions

View File

@@ -489,7 +489,8 @@ class Battleground
void UpdateWorldState(uint32 Field, uint32 Value);
void UpdateWorldStateForPlayer(uint32 Field, uint32 Value, Player* player);
void EndBattleground(TeamId winnerTeamId);
virtual void EndBattleground(TeamId winnerTeamId);
void BlockMovement(Player* player);
void SendWarningToAll(uint32 entry, ...);

View File

@@ -290,7 +290,7 @@ void BattlegroundAV::UpdateScore(TeamId teamId, int16 points)
Creature* BattlegroundAV::AddAVCreature(uint16 cinfoid, uint16 type)
{
bool isStatic = false;
Creature* creature = NULL;
Creature* creature = nullptr;
ASSERT(type <= AV_CPLACE_MAX + AV_STATICCPLACE_MAX);
if (type >= AV_CPLACE_MAX) //static
{
@@ -314,7 +314,7 @@ Creature* BattlegroundAV::AddAVCreature(uint16 cinfoid, uint16 type)
BG_AV_CreaturePos[type][3]);
}
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])
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:
//player->Unmount();
break;
default:
break;
}
}
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())
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);
}
}
return;
}
bool BattlegroundAV::PlayerCanDoMineQuest(int32 GOId, TeamId teamId)
@@ -1180,15 +1181,14 @@ void BattlegroundAV::SendMineWorldStates(uint32 mine)
GraveyardStruct const* BattlegroundAV::GetClosestGraveyard(Player* player)
{
GraveyardStruct const* pGraveyard = NULL;
GraveyardStruct const* entry = NULL;
GraveyardStruct const* entry = nullptr;
float dist = 0;
float minDist = 0;
float 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);
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
{
for (uint8 mine = 0; mine < 2; mine++)
if (m_Mine_Owner[mine] != teamId)
for (auto mine : m_Mine_Owner)
if (mine != teamId)
return false;
return true;
@@ -1582,10 +1582,7 @@ bool BattlegroundAV::IsAllTowersControlledAndCaptainAlive(TeamId teamId) const
if (m_Nodes[i].State != POINT_DESTROYED)
return false;
if (!m_CaptainAlive[0])
return false;
return true;
return m_CaptainAlive[0];
}
else if (teamId == TEAM_HORDE)
{
@@ -1604,10 +1601,7 @@ bool BattlegroundAV::IsAllTowersControlledAndCaptainAlive(TeamId teamId) const
if (m_Nodes[i].State != POINT_DESTROYED)
return false;
if (!m_CaptainAlive[1])
return false;
return true;
return m_CaptainAlive[1];
}
return false;

View File

@@ -1544,8 +1544,8 @@ inline BG_AV_Nodes &operator++(BG_AV_Nodes &i){ return i = BG_AV_Nodes(i + 1); }
struct BattlegroundAVScore : public BattlegroundScore
{
BattlegroundAVScore(Player* player) : BattlegroundScore(player), GraveyardsAssaulted(0), GraveyardsDefended(0), TowersAssaulted(0), TowersDefended(0), MinesCaptured(0), LeadersKilled(0), SecondaryObjectives(0) { }
~BattlegroundAVScore() { }
explicit BattlegroundAVScore(Player* player) : BattlegroundScore(player), GraveyardsAssaulted(0), GraveyardsDefended(0), TowersAssaulted(0), TowersDefended(0), MinesCaptured(0), LeadersKilled(0), SecondaryObjectives(0) { }
~BattlegroundAVScore() override { }
uint32 GraveyardsAssaulted;
uint32 GraveyardsDefended;
uint32 TowersAssaulted;
@@ -1554,53 +1554,52 @@ struct BattlegroundAVScore : public BattlegroundScore
uint32 LeadersKilled;
uint32 SecondaryObjectives;
uint32 GetAttr1() const final override { return GraveyardsAssaulted; }
uint32 GetAttr2() const final override { return GraveyardsDefended; }
uint32 GetAttr3() const final override { return TowersAssaulted; }
uint32 GetAttr4() const final override { return TowersDefended; }
uint32 GetAttr5() const final override { return MinesCaptured; }
uint32 GetAttr1() const final { return GraveyardsAssaulted; }
uint32 GetAttr2() const final { return GraveyardsDefended; }
uint32 GetAttr3() const final { return TowersAssaulted; }
uint32 GetAttr4() const final { return TowersDefended; }
uint32 GetAttr5() const final { return MinesCaptured; }
};
class BattlegroundAV : public Battleground
{
public:
BattlegroundAV();
~BattlegroundAV();
~BattlegroundAV() override;
/* inherited from BattlegroundClass */
void AddPlayer(Player* player);
void StartingEventCloseDoors();
void StartingEventOpenDoors();
void AddPlayer(Player* player) override;
void StartingEventCloseDoors() override;
void StartingEventOpenDoors() override;
void RemovePlayer(Player* player);
void HandleAreaTrigger(Player* player, uint32 trigger);
bool SetupBattleground();
void ResetBGSubclass();
void RemovePlayer(Player* player) override;
void HandleAreaTrigger(Player* player, uint32 trigger) override;
bool SetupBattleground() override;
void ResetBGSubclass() override;
/*general stuff*/
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
void EventPlayerClickedOnFlag(Player* source, GameObject* gameObject);
void HandleKillPlayer(Player* player, Player* killer);
void HandleKillUnit(Creature* unit, Player* killer);
void EventPlayerClickedOnFlag(Player* source, GameObject* gameObject) override;
void HandleKillPlayer(Player* player, Player* killer) override;
void HandleKillUnit(Creature* unit, Player* killer) override;
void HandleQuestComplete(uint32 questid, Player* player);
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. */
bool IsBothMinesControlledByTeam(TeamId teamId) const;
bool IsAllTowersControlledAndCaptainAlive(TeamId teamId) const;
TeamId GetPrematureWinner();
TeamId GetPrematureWinner() override;
private:
void PostUpdateImpl(uint32 diff);
void PostUpdateImpl(uint32 diff) override;
/* Nodes occupying */
void EventPlayerAssaultsPoint(Player* player, uint32 object);
@@ -1624,7 +1623,7 @@ class BattlegroundAV : public Battleground
void ChangeMineOwner(uint8 mine, TeamId teamId, bool initial=false);
/*worldstates*/
void FillInitialWorldStates(WorldPacket& data);
void FillInitialWorldStates(WorldPacket& data) override;
uint8 GetWorldStateType(uint8 state, TeamId teamId);
void SendMineWorldStates(uint32 mine);
void UpdateNodeWorldState(BG_AV_Nodes node);
@@ -1633,18 +1632,18 @@ class BattlegroundAV : public Battleground
Creature* AddAVCreature(uint16 cinfoid, uint16 type);
/*variables */
int32 m_Team_Scores[2];
uint32 m_Team_QuestStatus[2][9]; //[x][y] x=team y=questcounter
int32 m_Team_Scores[2]{};
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
uint32 m_Mine_Reclaim_Timer[2];
uint32 m_CaptainBuffTimer[2];
bool m_CaptainAlive[2];
uint32 m_Mine_Reclaim_Timer[2]{};
uint32 m_CaptainBuffTimer[2]{};
bool m_CaptainAlive[2]{};
bool m_IsInformedNearVictory[2];
bool m_IsInformedNearVictory[2]{};
};
#endif