[C++20] Enable C++20 + Fixes + FMT 9.1 (#2664)

* [CPP] Enable and build compliance with cpp20

* Windows build fix

* bump fmt version

* Updated fmt to 9.1, updated cmake minimum and verified preprocessor stuff works.

* Missing :

* Fix warning: top-level comma expression in array subscript is deprecated

* Fix warning: top-level comma expression in array subscript is deprecated

Co-authored-by: KimLS <KimLS@peqtgc.com>
This commit is contained in:
Chris Miles
2022-12-20 21:52:36 -06:00
committed by GitHub
parent db12c069ef
commit c236c57a2c
41 changed files with 145 additions and 151 deletions
+1 -1
View File
@@ -1,4 +1,4 @@
CMAKE_MINIMUM_REQUIRED(VERSION 3.2)
CMAKE_MINIMUM_REQUIRED(VERSION 3.12)
SET(world_sources
adventure.cpp
+1 -1
View File
@@ -989,7 +989,7 @@ bool Client::HandleDeleteCharacterPacket(const EQApplicationPacket *app) {
uint32 char_acct_id = database.GetAccountIDByChar((char*)app->pBuffer);
if(char_acct_id == GetAccountID()) {
LogInfo("Delete character: [{}]", app->pBuffer);
LogInfo("Delete character: [{}]", (const char*)app->pBuffer);
database.DeleteCharacter((char *)app->pBuffer);
SendCharInfo();
}
+23 -26
View File
@@ -319,7 +319,7 @@ void ClientList::SendCLEList(const int16& admin, const char* to, WorldTCPConnect
strcpy(newline, "\r\n");
else
strcpy(newline, "^");
fmt::memory_buffer out;
std::vector<char> out;
iterator.Reset();
while(iterator.MoreElements()) {
@@ -328,22 +328,21 @@ void ClientList::SendCLEList(const int16& admin, const char* to, WorldTCPConnect
struct in_addr in;
in.s_addr = cle->GetIP();
if (addnewline) {
fmt::format_to(out, newline);
fmt::format_to(std::back_inserter(out), fmt::runtime(newline));
}
fmt::format_to(out, "ID: {} Acc# {} AccName: {} IP: {}", cle->GetID(), cle->AccountID(), cle->AccountName(), inet_ntoa(in));
fmt::format_to(out, "{} Stale: {} Online: {} Admin: {}", newline, cle->GetStaleCounter(), cle->Online(), cle->Admin());
fmt::format_to(std::back_inserter(out), "ID: {} Acc# {} AccName: {} IP: {}", cle->GetID(), cle->AccountID(), cle->AccountName(), inet_ntoa(in));
fmt::format_to(std::back_inserter(out), "{} Stale: {} Online: {} Admin: {}", newline, cle->GetStaleCounter(), cle->Online(), cle->Admin());
if (cle->LSID())
fmt::format_to(out, "{} LSID: {} LSName: {} WorldAdmin: {}", newline, cle->LSID(), cle->LSName(), cle->WorldAdmin());
fmt::format_to(std::back_inserter(out), "{} LSID: {} LSName: {} WorldAdmin: {}", newline, cle->LSID(), cle->LSName(), cle->WorldAdmin());
if (cle->CharID())
fmt:format_to(out, "{} CharID: {} CharName: {} Zone: {} ({})", newline, cle->CharID(), cle->name(), ZoneName(cle->zone()), cle->zone());
fmt::format_to(std::back_inserter(out), "{} CharID: {} CharName: {} Zone: {} ({})", newline, cle->CharID(), cle->name(), ZoneName(cle->zone()), cle->zone());
if (out.size() >= 3072) {
auto output = fmt::to_string(out);
connection->SendEmoteMessageRaw(
to,
0,
AccountStatus::Player,
Chat::NPCQuestSay,
output.c_str()
out.data()
);
addnewline = false;
out.clear();
@@ -355,14 +354,13 @@ void ClientList::SendCLEList(const int16& admin, const char* to, WorldTCPConnect
iterator.Advance();
x++;
}
fmt::format_to(out, "{}{} CLEs in memory. {} CLEs listed. numplayers = {}.", newline, x, y, numplayers);
auto output = fmt::to_string(out);
fmt::format_to(std::back_inserter(out), "{}{} CLEs in memory. {} CLEs listed. numplayers = {}.", newline, x, y, numplayers);
connection->SendEmoteMessageRaw(
to,
0,
AccountStatus::Player,
Chat::NPCQuestSay,
output.c_str()
out.data()
);
}
@@ -1061,12 +1059,12 @@ void ClientList::ConsoleSendWhoAll(const char* to, int16 admin, Who_All_Struct*
if (whom)
whomlen = strlen(whom->whom);
fmt::memory_buffer out;
fmt::format_to(out, "Players on server:");
std::vector<char> out;
fmt::format_to(std::back_inserter(out), "Players on server:");
if (connection->IsConsole())
fmt::format_to(out, "\r\n");
fmt::format_to(std::back_inserter(out), "\r\n");
else
fmt::format_to(out, "\n");
fmt::format_to(std::back_inserter(out), "\n");
iterator.Reset();
while (iterator.MoreElements()) {
cle = iterator.GetData();
@@ -1162,23 +1160,22 @@ void ClientList::ConsoleSendWhoAll(const char* to, int16 admin, Who_All_Struct*
else
sprintf(line, " %s[%i %s] %s (%s)%s zone: %s%s%s", tmpgm, cle->level(), GetClassIDName(cle->class_(), cle->level()), cle->name(), GetRaceIDName(cle->race()), tmpguild, tmpZone, LFG, accinfo);
fmt::format_to(out, line);
fmt::format_to(std::back_inserter(out), fmt::runtime(line));
if (out.size() >= 3584) {
auto output = fmt::to_string(out);
connection->SendEmoteMessageRaw(
to,
0,
AccountStatus::Player,
Chat::NPCQuestSay,
output.c_str()
out.data()
);
out.clear();
}
else {
if (connection->IsConsole())
fmt::format_to(out, "\r\n");
fmt::format_to(std::back_inserter(out), "\r\n");
else
fmt::format_to(out, "\n");
fmt::format_to(std::back_inserter(out), "\n");
}
x++;
if (x >= 20 && admin < AccountStatus::QuestTroupe)
@@ -1188,24 +1185,24 @@ void ClientList::ConsoleSendWhoAll(const char* to, int16 admin, Who_All_Struct*
}
if (x >= 20 && admin < AccountStatus::QuestTroupe)
fmt::format_to(out, "too many results...20 players shown");
fmt::format_to(std::back_inserter(out), "too many results...20 players shown");
else
fmt::format_to(out, "{} players online", x);
fmt::format_to(std::back_inserter(out), "{} players online", x);
if (admin >= AccountStatus::GMAdmin && (whom == 0 || whom->gmlookup != 0xFFFF)) {
if (connection->IsConsole())
fmt::format_to(out, "\r\n");
fmt::format_to(std::back_inserter(out), "\r\n");
else
fmt::format_to(out, "\n");
fmt::format_to(std::back_inserter(out), "\n");
//console_list.SendConsoleWho(connection, to, admin, &output, &outsize, &outlen);
}
auto output = fmt::to_string(out);
connection->SendEmoteMessageRaw(
to,
0,
AccountStatus::Player,
Chat::NPCQuestSay,
output.c_str()
out.data()
);
}
+2 -3
View File
@@ -60,9 +60,8 @@ void ExpeditionDatabase::PurgeExpiredExpeditions()
if (!expedition_ids.empty())
{
auto joined_expedition_ids = fmt::join(expedition_ids, ",");
ExpeditionsRepository::DeleteWhere(database, fmt::format("id IN ({})", joined_expedition_ids));
ExpeditionLockoutsRepository::DeleteWhere(database, fmt::format("expedition_id IN ({})", joined_expedition_ids));
ExpeditionsRepository::DeleteWhere(database, fmt::format("id IN ({})", fmt::join(expedition_ids, ",")));
ExpeditionLockoutsRepository::DeleteWhere(database, fmt::format("expedition_id IN ({})", fmt::join(expedition_ids, ",")));
DynamicZoneMembersRepository::RemoveAllMembers(database, dynamic_zone_ids);
}
}
+17 -20
View File
@@ -311,19 +311,19 @@ void ZSList::SendZoneStatus(const char* to, int16 admin, WorldTCPConnection* con
strcpy(locked, "No");
}
fmt::memory_buffer out;
std::vector<char> out;
if (connection->IsConsole()) {
fmt::format_to(out, "World Locked: {}\r\n", locked);
fmt::format_to(std::back_inserter(out), "World Locked: {}\r\n", locked);
}
else {
fmt::format_to(out, "World Locked: {}^", locked);
fmt::format_to(std::back_inserter(out), "World Locked: {}^", locked);
}
if (connection->IsConsole()) {
fmt::format_to(out, "Zoneservers online:\r\n");
fmt::format_to(std::back_inserter(out), "Zoneservers online:\r\n");
}
else {
fmt::format_to(out, "Zoneservers online:^");
fmt::format_to(std::back_inserter(out), "Zoneservers online:^");
}
int v = 0, w = 0, x = 0, y = 0, z = 0;
@@ -363,7 +363,7 @@ void ZSList::SendZoneStatus(const char* to, int16 admin, WorldTCPConnection* con
zone_data_string[0] = 0;
}
fmt::format_to(out,
fmt::format_to(std::back_inserter(out),
"#{:<3} :: {} :: {}:{:<5} :: {:2} :: {}:{} :: {} :: ({})",
zone_server_data->GetID(),
is_static_string,
@@ -377,21 +377,20 @@ void ZSList::SendZoneStatus(const char* to, int16 admin, WorldTCPConnection* con
);
if (out.size() >= 3584) {
auto output = fmt::to_string(out);
connection->SendEmoteMessageRaw(
to,
0,
AccountStatus::Player,
Chat::NPCQuestSay,
output.c_str()
out.data()
);
out.clear();
}
else {
if (connection->IsConsole())
fmt::format_to(out, "\r\n");
fmt::format_to(std::back_inserter(out), "\r\n");
else
fmt::format_to(out, "^");
fmt::format_to(std::back_inserter(out), "^");
}
x++;
}
@@ -400,24 +399,23 @@ void ZSList::SendZoneStatus(const char* to, int16 admin, WorldTCPConnection* con
strcpy(zone_data_string, zone_server_data->GetZoneName());
else
zone_data_string[0] = 0;
fmt::format_to(out, " #{} {} {}", zone_server_data->GetID(), is_static_string, zone_data_string);
fmt::format_to(std::back_inserter(out), " #{} {} {}", zone_server_data->GetID(), is_static_string, zone_data_string);
if (out.size() >= 3584) {
auto output = fmt::to_string(out);
connection->SendEmoteMessageRaw(
to,
0,
AccountStatus::Player,
Chat::NPCQuestSay,
output.c_str()
out.data()
);
out.clear();
}
else {
if (connection->IsConsole()) {
fmt::format_to(out, "\r\n");
fmt::format_to(std::back_inserter(out), "\r\n");
}
else {
fmt::format_to(out, "^");
fmt::format_to(std::back_inserter(out), "^");
}
}
x++;
@@ -427,21 +425,20 @@ void ZSList::SendZoneStatus(const char* to, int16 admin, WorldTCPConnection* con
}
if (connection->IsConsole()) {
fmt::format_to(out, "{} servers listed. {} servers online.\r\n", x, y);
fmt::format_to(std::back_inserter(out), "{} servers listed. {} servers online.\r\n", x, y);
}
else {
fmt::format_to(out, "{} servers listed. {} servers online.^", x, y);
fmt::format_to(std::back_inserter(out), "{} servers listed. {} servers online.^", x, y);
}
fmt::format_to(out, "{} zones are static zones, {} zones are booted zones, {} zones available.", z, w, v);
fmt::format_to(std::back_inserter(out), "{} zones are static zones, {} zones are booted zones, {} zones available.", z, w, v);
auto output = fmt::to_string(out);
connection->SendEmoteMessageRaw(
to,
0,
AccountStatus::Player,
Chat::NPCQuestSay,
output.c_str()
out.data()
);
}