diff --git a/src/server/game/Battlegrounds/Battleground.h b/src/server/game/Battlegrounds/Battleground.h index eac35f6d2..6588c01cf 100644 --- a/src/server/game/Battlegrounds/Battleground.h +++ b/src/server/game/Battlegrounds/Battleground.h @@ -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, ...); diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundAV.cpp b/src/server/game/Battlegrounds/Zones/BattlegroundAV.cpp index 2a8964f9d..5b3d4286e 100644 --- a/src/server/game/Battlegrounds/Zones/BattlegroundAV.cpp +++ b/src/server/game/Battlegrounds/Zones/BattlegroundAV.cpp @@ -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; diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundAV.h b/src/server/game/Battlegrounds/Zones/BattlegroundAV.h index 3f2bf7d94..75d9eeb13 100644 --- a/src/server/game/Battlegrounds/Zones/BattlegroundAV.h +++ b/src/server/game/Battlegrounds/Zones/BattlegroundAV.h @@ -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