Skip to content
This repository was archived by the owner on Jul 29, 2024. It is now read-only.
/ sol Public archive

Commit c5482bc

Browse files
committed
Sol: Enable С++20
1 parent 9d8845b commit c5482bc

File tree

25 files changed

+100
-118
lines changed

25 files changed

+100
-118
lines changed

deps/g3dlite/include/G3D/Array.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -346,7 +346,7 @@ class Array {
346346

347347
/** Resizes this to match the size of \a other and then copies the data from other using memcpy. This is only safe for POD types */
348348
void copyPOD(const Array<T>& other) {
349-
static_assert(std::is_pod<T>::value, "copyPOD called on non-POD type");
349+
static_assert(std::is_standard_layout<T>::value, "copyPOD called on non-POD type");
350350
if (numAllocated < other.num) {
351351
m_memoryManager->free(data);
352352
data = NULL;
@@ -365,7 +365,7 @@ class Array {
365365
/** Resizes this to just barely match the size of \a other + itself and then copies the data to the end of the array from other using memcpy.
366366
This is only safe for POD types */
367367
void appendPOD(const Array<T>& other) {
368-
static_assert(std::is_pod<T>::value, "appendPOD called on non-POD type");
368+
static_assert(std::is_standard_layout<T>::value, "appendPOD called on non-POD type");
369369
const size_t oldSize = num;
370370
num += other.num;
371371
if (numAllocated < num) {

src/cmake/compiler/gcc/settings.cmake

-14
Original file line numberDiff line numberDiff line change
@@ -9,20 +9,6 @@ target_compile_definitions(acore-compile-option-interface
99
INTERFACE
1010
-D_BUILD_DIRECTIVE="${CMAKE_BUILD_TYPE}")
1111

12-
set(GCC_EXPECTED_VERSION 4.8.2)
13-
14-
if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS GCC_EXPECTED_VERSION)
15-
message(FATAL_ERROR "GCC: This project requires version ${GCC_EXPECTED_VERSION} to build but found ${CMAKE_CXX_COMPILER_VERSION}")
16-
endif()
17-
18-
if(PLATFORM EQUAL 32)
19-
# Required on 32-bit systems to enable SSE2 (standard on x64)
20-
target_compile_options(acore-compile-option-interface
21-
INTERFACE
22-
-msse2
23-
-mfpmath=sse)
24-
endif()
25-
2612
target_compile_definitions(acore-compile-option-interface
2713
INTERFACE
2814
-DHAVE_SSE2

src/cmake/macros/ConfigureBaseTargets.cmake

+3-4
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,11 @@
77
# An interface library to make the target com available to other targets
88
add_library(acore-compile-option-interface INTERFACE)
99

10-
# Use -std=c++17 instead of -std=gnu++17
1110
set(CXX_EXTENSIONS OFF)
1211

13-
# Enable support С++17
14-
set(CMAKE_CXX_STANDARD 17)
15-
message(STATUS "Enabled С++17 support")
12+
# Enable support С++20
13+
set(CMAKE_CXX_STANDARD 20)
14+
message(STATUS "Enabled С++20 support")
1615

1716
# An interface library to make the target features available to other targets
1817
add_library(acore-feature-interface INTERFACE)

src/common/Common.h

+7-10
Original file line numberDiff line numberDiff line change
@@ -105,16 +105,13 @@ inline bool myisfinite(float f) { return isfinite(f) && !isnan(f); }
105105

106106
#define MAX_NETCLIENT_PACKET_SIZE (32767 - 1) // Client hardcap: int16 with trailing zero space otherwise crash on memory free
107107

108-
enum TimeConstants
109-
{
110-
MINUTE = 60,
111-
HOUR = MINUTE*60,
112-
DAY = HOUR*24,
113-
WEEK = DAY*7,
114-
MONTH = DAY*30,
115-
YEAR = MONTH*12,
116-
IN_MILLISECONDS = 1000
117-
};
108+
static constexpr int32 MINUTE = 60;
109+
static constexpr int32 HOUR = MINUTE * 60;
110+
static constexpr int32 DAY = HOUR * 24;
111+
static constexpr int32 WEEK = DAY * 7;
112+
static constexpr int32 MONTH = DAY * 30;
113+
static constexpr int32 YEAR = MONTH * 12;
114+
static constexpr int32 IN_MILLISECONDS = 1000;
118115

119116
enum AccountTypes
120117
{

src/server/game/AuctionHouse/AuctionHouseMgr.cpp

+3-3
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ uint32 AuctionHouseMgr::GetAuctionDeposit(AuctionHouseEntry const* entry, uint32
6060
uint32 MSV = pItem->GetTemplate()->SellPrice;
6161

6262
if (MSV <= 0)
63-
return AH_MINIMUM_DEPOSIT * sWorld->getRate(RATE_AUCTION_DEPOSIT);
63+
return static_cast<float>(AH_MINIMUM_DEPOSIT) * sWorld->getRate(RATE_AUCTION_DEPOSIT);
6464

6565
float multiplier = CalculatePct(float(entry->depositPercent), 3);
6666
uint32 timeHr = (((time / 60) / 60) / 12);
@@ -73,8 +73,8 @@ uint32 AuctionHouseMgr::GetAuctionDeposit(AuctionHouseEntry const* entry, uint32
7373
sLog->outDebug(LOG_FILTER_AUCTIONHOUSE, "Deposit: %u", deposit);
7474
#endif
7575

76-
if (deposit < AH_MINIMUM_DEPOSIT * sWorld->getRate(RATE_AUCTION_DEPOSIT))
77-
return AH_MINIMUM_DEPOSIT * sWorld->getRate(RATE_AUCTION_DEPOSIT);
76+
if (deposit < static_cast<float>(AH_MINIMUM_DEPOSIT) * sWorld->getRate(RATE_AUCTION_DEPOSIT))
77+
return static_cast<float>(AH_MINIMUM_DEPOSIT) * sWorld->getRate(RATE_AUCTION_DEPOSIT);
7878
else
7979
return deposit;
8080
}

src/server/game/Battlefield/Battlefield.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -998,7 +998,7 @@ bool BfCapturePoint::Update(uint32 diff)
998998
HandlePlayerEnter(*itr);
999999

10001000
// get the difference of numbers
1001-
float fact_diff = ((float) m_activePlayers[0].size() - (float) m_activePlayers[1].size()) * diff / BATTLEFIELD_OBJECTIVE_UPDATE_INTERVAL;
1001+
float fact_diff = ((float) m_activePlayers[0].size() - (float) m_activePlayers[1].size()) * diff / static_cast<float>(BATTLEFIELD_OBJECTIVE_UPDATE_INTERVAL);
10021002
if (G3D::fuzzyEq(fact_diff, 0.0f))
10031003
return false;
10041004

src/server/game/Battlegrounds/BattlegroundQueue.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -621,10 +621,10 @@ bool BattlegroundQueue::CheckSkirmishForSameFaction(BattlegroundBracketId bracke
621621
{
622622
// update internal GroupQueueInfo data
623623
(*pitr)->teamId = wrongTeamId;
624-
(*pitr)->_groupType = BG_QUEUE_NORMAL_ALLIANCE + wrongTeamId;
624+
(*pitr)->_groupType = static_cast<int>(BG_QUEUE_NORMAL_ALLIANCE) + static_cast<int>(wrongTeamId);
625625

626626
// add GroupQueueInfo to new queue
627-
m_QueuedGroups[bracket_id][BG_QUEUE_NORMAL_ALLIANCE + wrongTeamId].push_front(*pitr);
627+
m_QueuedGroups[bracket_id][static_cast<int>(BG_QUEUE_NORMAL_ALLIANCE) + static_cast<int>(wrongTeamId)].push_front(*pitr);
628628

629629
// remove GroupQueueInfo from old queue
630630
for (auto qitr = m_QueuedGroups[bracket_id][BG_QUEUE_NORMAL_ALLIANCE + i].begin(); qitr != m_QueuedGroups[bracket_id][BG_QUEUE_NORMAL_ALLIANCE + i].end(); ++qitr)

src/server/game/Battlegrounds/Zones/BattlegroundAB.cpp

+6-6
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ void BattlegroundAB::PostUpdateImpl(uint32 diff)
127127
void BattlegroundAB::StartingEventCloseDoors()
128128
{
129129

130-
for (uint32 obj = BG_AB_OBJECT_BANNER_NEUTRAL; obj < BG_AB_DYNAMIC_NODES_COUNT * BG_AB_OBJECTS_PER_NODE; ++obj)
130+
for (uint32 obj = BG_AB_OBJECT_BANNER_NEUTRAL; obj < static_cast<int>(BG_AB_DYNAMIC_NODES_COUNT) * static_cast<int>(BG_AB_OBJECTS_PER_NODE); ++obj)
131131
SpawnBGObject(obj, RESPAWN_ONE_DAY);
132132
for (uint32 i = 0; i < BG_AB_DYNAMIC_NODES_COUNT * 3; ++i)
133133
SpawnBGObject(BG_AB_OBJECT_SPEEDBUFF_STABLES + i, RESPAWN_ONE_DAY);
@@ -306,7 +306,7 @@ void BattlegroundAB::EventPlayerClickedOnFlag(Player* player, GameObject* gameOb
306306
{
307307
player->KilledMonsterCredit(BG_AB_QUEST_CREDIT_BASE + node, 0);
308308
UpdatePlayerScore(player, SCORE_BASES_ASSAULTED, 1);
309-
_capturePointInfo[node]._state = BG_AB_NODE_STATE_ALLY_CONTESTED + player->GetTeamId();
309+
_capturePointInfo[node]._state = static_cast<int>(BG_AB_NODE_STATE_ALLY_CONTESTED) + static_cast<int>(player->GetTeamId());
310310
_capturePointInfo[node]._ownerTeamId = TEAM_NEUTRAL;
311311
_bgEvents.RescheduleEvent(BG_AB_EVENT_CAPTURE_STABLE + node, BG_AB_FLAG_CAPTURING_TIME);
312312
sound = BG_AB_SOUND_NODE_CLAIMED;
@@ -319,15 +319,15 @@ void BattlegroundAB::EventPlayerClickedOnFlag(Player* player, GameObject* gameOb
319319
{
320320
player->KilledMonsterCredit(BG_AB_QUEST_CREDIT_BASE + node, 0);
321321
UpdatePlayerScore(player, SCORE_BASES_ASSAULTED, 1);
322-
_capturePointInfo[node]._state = BG_AB_NODE_STATE_ALLY_CONTESTED + player->GetTeamId();
322+
_capturePointInfo[node]._state = static_cast<int>(BG_AB_NODE_STATE_ALLY_CONTESTED) + static_cast<int>(player->GetTeamId());
323323
_capturePointInfo[node]._ownerTeamId = TEAM_NEUTRAL;
324324
_bgEvents.RescheduleEvent(BG_AB_EVENT_CAPTURE_STABLE + node, BG_AB_FLAG_CAPTURING_TIME);
325325
message = LANG_BG_AB_NODE_ASSAULTED;
326326
}
327327
else
328328
{
329329
UpdatePlayerScore(player, SCORE_BASES_DEFENDED, 1);
330-
_capturePointInfo[node]._state = BG_AB_NODE_STATE_ALLY_OCCUPIED + player->GetTeamId();
330+
_capturePointInfo[node]._state = static_cast<int>(BG_AB_NODE_STATE_ALLY_OCCUPIED) + static_cast<int>(player->GetTeamId());
331331
_capturePointInfo[node]._ownerTeamId = player->GetTeamId();
332332
_bgEvents.CancelEvent(BG_AB_EVENT_CAPTURE_STABLE + node);
333333
NodeOccupied(node); // after setting team owner
@@ -341,7 +341,7 @@ void BattlegroundAB::EventPlayerClickedOnFlag(Player* player, GameObject* gameOb
341341
UpdatePlayerScore(player, SCORE_BASES_ASSAULTED, 1);
342342
NodeDeoccupied(node); // before setting team owner to neutral
343343

344-
_capturePointInfo[node]._state = BG_AB_NODE_STATE_ALLY_CONTESTED + player->GetTeamId();
344+
_capturePointInfo[node]._state = static_cast<int>(BG_AB_NODE_STATE_ALLY_CONTESTED) + static_cast<int>(player->GetTeamId());
345345

346346
ApplyPhaseMask();
347347
_bgEvents.RescheduleEvent(BG_AB_EVENT_CAPTURE_STABLE + node, BG_AB_FLAG_CAPTURING_TIME);
@@ -438,7 +438,7 @@ void BattlegroundAB::EndBattleground(TeamId winnerTeamId)
438438

439439
GraveyardStruct const* BattlegroundAB::GetClosestGraveyard(Player* player)
440440
{
441-
GraveyardStruct const* entry = sGraveyard->GetGraveyard(BG_AB_GraveyardIds[BG_AB_SPIRIT_ALIANCE + player->GetTeamId()]);
441+
GraveyardStruct const* entry = sGraveyard->GetGraveyard(BG_AB_GraveyardIds[static_cast<int>(BG_AB_SPIRIT_ALIANCE) + static_cast<int>(player->GetTeamId())]);
442442
GraveyardStruct const* nearestEntry = entry;
443443

444444
float pX = player->GetPositionX();

src/server/game/Battlegrounds/Zones/BattlegroundAV.cpp

+8-8
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
BattlegroundAV::BattlegroundAV()
2222
{
2323
BgObjects.resize(BG_AV_OBJECT_MAX);
24-
BgCreatures.resize(AV_CPLACE_MAX+AV_STATICCPLACE_MAX);
24+
BgCreatures.resize(static_cast<int>(AV_CPLACE_MAX)+static_cast<int>(AV_STATICCPLACE_MAX));
2525

2626
for (uint8 i = 0; i < 2; i++)
2727
{
@@ -293,7 +293,7 @@ Creature* BattlegroundAV::AddAVCreature(uint16 cinfoid, uint16 type)
293293
{
294294
bool isStatic = false;
295295
Creature* creature = nullptr;
296-
ASSERT(type <= AV_CPLACE_MAX + AV_STATICCPLACE_MAX);
296+
ASSERT(type <= static_cast<int>(AV_CPLACE_MAX) + static_cast<int>(AV_STATICCPLACE_MAX));
297297
if (type >= AV_CPLACE_MAX) //static
298298
{
299299
type -= AV_CPLACE_MAX;
@@ -625,8 +625,8 @@ void BattlegroundAV::EventPlayerDestroyedPoint(BG_AV_Nodes node)
625625
RewardReputationToTeam(ownerId == TEAM_ALLIANCE ? 730 : 729, BG_AV_REP_TOWER, ownerId);
626626
RewardHonorToTeam(GetBonusHonorFromKill(BG_AV_KILL_TOWER), ownerId);
627627

628-
SpawnBGObject(BG_AV_OBJECT_TAURA_A_DUNBALDAR_SOUTH+ownerId+(2*tmp), RESPAWN_ONE_DAY);
629-
SpawnBGObject(BG_AV_OBJECT_TFLAG_A_DUNBALDAR_SOUTH+ownerId+(2*tmp), RESPAWN_ONE_DAY);
628+
SpawnBGObject(static_cast<int>(BG_AV_OBJECT_TAURA_A_DUNBALDAR_SOUTH)+static_cast<int>(ownerId)+(2*tmp), RESPAWN_ONE_DAY);
629+
SpawnBGObject(static_cast<int>(BG_AV_OBJECT_TFLAG_A_DUNBALDAR_SOUTH)+static_cast<int>(ownerId)+(2*tmp), RESPAWN_ONE_DAY);
630630
}
631631
else
632632
{
@@ -635,7 +635,7 @@ void BattlegroundAV::EventPlayerDestroyedPoint(BG_AV_Nodes node)
635635
else
636636
SpawnBGObject(object+11, RESPAWN_IMMEDIATELY);
637637
SpawnBGObject(BG_AV_OBJECT_AURA_N_FIRSTAID_STATION+3*node, RESPAWN_ONE_DAY);
638-
SpawnBGObject(BG_AV_OBJECT_AURA_A_FIRSTAID_STATION+ownerId+3*node, RESPAWN_IMMEDIATELY);
638+
SpawnBGObject(static_cast<int>(BG_AV_OBJECT_AURA_A_FIRSTAID_STATION)+static_cast<int>(ownerId)+3*node, RESPAWN_IMMEDIATELY);
639639
PopulateNode(node);
640640
if (node == BG_AV_NODES_SNOWFALL_GRAVE) //snowfall eyecandy
641641
{
@@ -955,7 +955,7 @@ void BattlegroundAV::EventPlayerDefendsPoint(Player* player, uint32 object)
955955
if (!IsTower(node))
956956
{
957957
SpawnBGObject(BG_AV_OBJECT_AURA_N_FIRSTAID_STATION+3*node, RESPAWN_ONE_DAY);
958-
SpawnBGObject(BG_AV_OBJECT_AURA_A_FIRSTAID_STATION+teamId+3*node, RESPAWN_IMMEDIATELY);
958+
SpawnBGObject(static_cast<int>(BG_AV_OBJECT_AURA_A_FIRSTAID_STATION)+static_cast<int>(teamId)+3*node, RESPAWN_IMMEDIATELY);
959959
}
960960
// despawn old go
961961
SpawnBGObject(object, RESPAWN_ONE_DAY);
@@ -1071,7 +1071,7 @@ void BattlegroundAV::EventPlayerAssaultsPoint(Player* player, uint32 object)
10711071
{
10721072
//spawning/despawning of aura
10731073
SpawnBGObject(BG_AV_OBJECT_AURA_N_FIRSTAID_STATION+3*node, RESPAWN_IMMEDIATELY); //neutral aura spawn
1074-
SpawnBGObject(BG_AV_OBJECT_AURA_A_FIRSTAID_STATION+prevOwnerId+3*node, RESPAWN_ONE_DAY); //teeamaura despawn
1074+
SpawnBGObject(static_cast<int>(BG_AV_OBJECT_AURA_A_FIRSTAID_STATION)+static_cast<int>(prevOwnerId)+3*node, RESPAWN_ONE_DAY); //teeamaura despawn
10751075

10761076
RelocateDeadPlayers(BgCreatures[node]);
10771077
}
@@ -1727,7 +1727,7 @@ void BattlegroundAV::ResetBGSubclass()
17271727
InitNode(BG_AV_NODES_SNOWFALL_GRAVE, TEAM_NEUTRAL, false); //give snowfall neutral owner
17281728

17291729
m_Mine_Timer=AV_MINE_TICK_TIMER;
1730-
for (uint16 i = 0; i < AV_CPLACE_MAX+AV_STATICCPLACE_MAX; i++)
1730+
for (uint16 i = 0; i < static_cast<int>(AV_CPLACE_MAX)+static_cast<int>(AV_STATICCPLACE_MAX); i++)
17311731
if (BgCreatures[i])
17321732
DelCreature(i);
17331733
}

src/server/game/Battlegrounds/Zones/BattlegroundEY.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -571,7 +571,7 @@ void BattlegroundEY::FillInitialWorldStates(WorldPacket& data)
571571

572572
GraveyardStruct const* BattlegroundEY::GetClosestGraveyard(Player* player)
573573
{
574-
GraveyardStruct const* entry = sGraveyard->GetGraveyard(BG_EY_GRAVEYARD_MAIN_ALLIANCE + player->GetTeamId());
574+
GraveyardStruct const* entry = sGraveyard->GetGraveyard(static_cast<int>(BG_EY_GRAVEYARD_MAIN_ALLIANCE) + static_cast<int>(player->GetTeamId()));
575575
GraveyardStruct const* nearestEntry = entry;
576576

577577
float pX = player->GetPositionX();

src/server/game/Battlegrounds/Zones/BattlegroundIC.cpp

+5-5
Original file line numberDiff line numberDiff line change
@@ -589,13 +589,13 @@ void BattlegroundIC::EventPlayerClickedOnFlag(Player* player, GameObject* gameOb
589589
nodePoint[i].timer = BANNER_STATE_CHANGE_TIME; // 1 minute for last change (real faction banner)
590590
nodePoint[i].needChange = true;
591591

592-
RelocateDeadPlayers(BgCreatures[BG_IC_NPC_SPIRIT_GUIDE_1 + nodePoint[i].nodeType - 2]);
592+
RelocateDeadPlayers(BgCreatures[static_cast<int>(BG_IC_NPC_SPIRIT_GUIDE_1) + static_cast<int>(nodePoint[i].nodeType) - 2]);
593593

594594
// if we are here means that the point has been lost, or it is the first capture
595595

596596
if (nodePoint[i].nodeType != NODE_TYPE_REFINERY && nodePoint[i].nodeType != NODE_TYPE_QUARRY)
597-
if (BgCreatures[BG_IC_NPC_SPIRIT_GUIDE_1+(nodePoint[i].nodeType)-2])
598-
DelCreature(BG_IC_NPC_SPIRIT_GUIDE_1+(nodePoint[i].nodeType)-2);
597+
if (BgCreatures[static_cast<int>(BG_IC_NPC_SPIRIT_GUIDE_1)+static_cast<int>(nodePoint[i].nodeType)-2])
598+
DelCreature(static_cast<int>(BG_IC_NPC_SPIRIT_GUIDE_1)+static_cast<int>(nodePoint[i].nodeType)-2);
599599

600600
UpdatePlayerScore(player, SCORE_BASES_ASSAULTED, 1);
601601

@@ -723,7 +723,7 @@ void BattlegroundIC::HandleCapturedNodes(ICNodePoint* nodePoint, bool recapture)
723723
{
724724
if (nodePoint->nodeType != NODE_TYPE_REFINERY && nodePoint->nodeType != NODE_TYPE_QUARRY)
725725
{
726-
if (!AddSpiritGuide(BG_IC_NPC_SPIRIT_GUIDE_1+nodePoint->nodeType-2,
726+
if (!AddSpiritGuide(static_cast<int>(BG_IC_NPC_SPIRIT_GUIDE_1)+static_cast<int>(nodePoint->nodeType)-2,
727727
BG_IC_SpiritGuidePos[nodePoint->nodeType][0], BG_IC_SpiritGuidePos[nodePoint->nodeType][1],
728728
BG_IC_SpiritGuidePos[nodePoint->nodeType][2], BG_IC_SpiritGuidePos[nodePoint->nodeType][3],
729729
nodePoint->faction))
@@ -983,7 +983,7 @@ GraveyardStruct const* BattlegroundIC::GetClosestGraveyard(Player* player)
983983
}
984984
// If not, place ghost on starting location
985985
if (!good_entry)
986-
good_entry = sGraveyard->GetGraveyard(BG_IC_GraveyardIds[player->GetTeamId()+MAX_NODE_TYPES]);
986+
good_entry = sGraveyard->GetGraveyard(BG_IC_GraveyardIds[static_cast<int>(player->GetTeamId())+static_cast<int>(MAX_NODE_TYPES)]);
987987

988988
return good_entry;
989989
}

src/server/game/Battlegrounds/Zones/BattlegroundSA.cpp

+6-6
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ BattlegroundSA::BattlegroundSA()
2121
StartMessageIds[BG_STARTING_EVENT_THIRD] = LANG_BG_SA_START_HALF_MINUTE;
2222
StartMessageIds[BG_STARTING_EVENT_FOURTH] = LANG_BG_SA_HAS_BEGUN;
2323
BgObjects.resize(BG_SA_MAXOBJ);
24-
BgCreatures.resize(BG_SA_MAXNPC + BG_SA_MAX_GY);
24+
BgCreatures.resize(static_cast<int>(BG_SA_MAXNPC) + static_cast<int>(BG_SA_MAX_GY));
2525
TimerEnabled = false;
2626
UpdateWaitTimer = 0;
2727
SignaledRoundTwo = false;
@@ -86,7 +86,7 @@ bool BattlegroundSA::ResetObjs()
8686
for (uint8 i = 0; i < BG_SA_MAXNPC; i++)
8787
DelCreature(i);
8888

89-
for (uint8 i = BG_SA_MAXNPC; i < BG_SA_MAXNPC + BG_SA_MAX_GY; i++)
89+
for (uint8 i = BG_SA_MAXNPC; i < static_cast<int>(BG_SA_MAXNPC) + static_cast<int>(BG_SA_MAX_GY); i++)
9090
DelCreature(i);
9191

9292
for (uint8 i = 0; i < 6; ++i)
@@ -882,7 +882,7 @@ void BattlegroundSA::CaptureGraveyard(BG_SA_Graveyards i, Player *Source)
882882

883883
GraveyardStatus[i] = Source->GetTeamId();
884884
// Those who are waiting to resurrect at this node are taken to the closest own node's graveyard
885-
std::vector<uint64> ghost_list = m_ReviveQueue[BgCreatures[BG_SA_MAXNPC + i]];
885+
std::vector<uint64> ghost_list = m_ReviveQueue[BgCreatures[static_cast<int>(BG_SA_MAXNPC) + static_cast<int>(i)]];
886886
if (!ghost_list.empty())
887887
{
888888
GraveyardStruct const* ClosestGrave = NULL;
@@ -899,10 +899,10 @@ void BattlegroundSA::CaptureGraveyard(BG_SA_Graveyards i, Player *Source)
899899
player->TeleportTo(GetMapId(), ClosestGrave->x, ClosestGrave->y, ClosestGrave->z, player->GetOrientation());
900900
}
901901
// xinef: clear resurrect queue for this creature
902-
m_ReviveQueue[BgCreatures[BG_SA_MAXNPC + i]].clear();
902+
m_ReviveQueue[BgCreatures[static_cast<int>(BG_SA_MAXNPC) + static_cast<int>(i)]].clear();
903903
}
904904

905-
DelCreature(BG_SA_MAXNPC + i);
905+
DelCreature(static_cast<int>(BG_SA_MAXNPC) + static_cast<int>(i));
906906

907907
GraveyardStruct const* sg = sGraveyard->GetGraveyard(BG_SA_GYEntries[i]);
908908
if (!sg)
@@ -911,7 +911,7 @@ void BattlegroundSA::CaptureGraveyard(BG_SA_Graveyards i, Player *Source)
911911
return;
912912
}
913913

914-
AddSpiritGuide(i + BG_SA_MAXNPC, sg->x, sg->y, sg->z, BG_SA_GYOrientation[i], GraveyardStatus[i]);
914+
AddSpiritGuide(static_cast<int>(i) + static_cast<int>(BG_SA_MAXNPC), sg->x, sg->y, sg->z, BG_SA_GYOrientation[i], GraveyardStatus[i]);
915915
uint32 npc = 0;
916916
uint32 flag = 0;
917917

0 commit comments

Comments
 (0)