mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-01-21 20:56:23 +00:00
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 UpdateWorldStateForPlayer(uint32 Field, uint32 Value, Player* player);
|
||||
void EndBattleground(TeamId winnerTeamId);
|
||||
|
||||
virtual void EndBattleground(TeamId winnerTeamId);
|
||||
void BlockMovement(Player* player);
|
||||
|
||||
void SendWarningToAll(uint32 entry, ...);
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user