From de01f15398eec5f02458a08bfb724ff50a468a53 Mon Sep 17 00:00:00 2001 From: Anders Jenbo Date: Sun, 29 Aug 2021 17:18:13 +0200 Subject: [PATCH] Make debug compatible with GCC 6.2 --- Source/debug.cpp | 64 ++++++++++++++++++++++++------------------------ Source/debug.h | 4 +-- 2 files changed, 34 insertions(+), 34 deletions(-) diff --git a/Source/debug.cpp b/Source/debug.cpp index 72c6d113d..0e8b1a6c9 100644 --- a/Source/debug.cpp +++ b/Source/debug.cpp @@ -81,15 +81,15 @@ void PrintDebugMonster(int m) } struct DebugCmdItem { - const std::string_view text; - const std::string_view description; - const std::string_view requiredParameter; - std::string (*actionProc)(const std::string_view); + const string_view text; + const string_view description; + const string_view requiredParameter; + std::string (*actionProc)(const string_view); }; extern std::vector DebugCmdList; -std::string DebugCmdHelp(const std::string_view parameter) +std::string DebugCmdHelp(const string_view parameter) { if (parameter.empty()) { std::string ret = "Available Debug Commands: "; @@ -99,7 +99,7 @@ std::string DebugCmdHelp(const std::string_view parameter) first = false; else ret.append(" - "); - ret.append(dbgCmd.text); + ret.append(std::string(dbgCmd.text)); } return ret; } else { @@ -113,7 +113,7 @@ std::string DebugCmdHelp(const std::string_view parameter) } } -std::string DebugCmdGiveGoldCheat(const std::string_view parameter) +std::string DebugCmdGiveGoldCheat(const string_view parameter) { auto &myPlayer = Players[MyPlayerId]; @@ -134,7 +134,7 @@ std::string DebugCmdGiveGoldCheat(const std::string_view parameter) return "You are now rich! If only this was as easy in real life..."; } -std::string DebugCmdTakeGoldCheat(const std::string_view parameter) +std::string DebugCmdTakeGoldCheat(const string_view parameter) { auto &myPlayer = Players[MyPlayerId]; @@ -154,7 +154,7 @@ std::string DebugCmdTakeGoldCheat(const std::string_view parameter) return "You are poor..."; } -std::string DebugCmdWarpToLevel(const std::string_view parameter) +std::string DebugCmdWarpToLevel(const string_view parameter) { auto &myPlayer = Players[MyPlayerId]; auto level = atoi(parameter.data()); @@ -168,7 +168,7 @@ std::string DebugCmdWarpToLevel(const std::string_view parameter) return fmt::format("Welcome to level {}.", level); } -std::string DebugCmdLoadMap(const std::string_view parameter) +std::string DebugCmdLoadMap(const string_view parameter) { if (parameter.empty()) { std::string ret = "What mapid do you want to visit?"; @@ -200,7 +200,7 @@ std::string DebugCmdLoadMap(const std::string_view parameter) return fmt::format("Level {} is not known. Do you want to write a mod?", level); } -std::unordered_map TownerShortNameToTownerId = { +std::unordered_map TownerShortNameToTownerId = { { "griswold", _talker_id::TOWN_SMITH }, { "pepin", _talker_id::TOWN_HEALER }, { "ogden", _talker_id::TOWN_TAVERN }, @@ -214,7 +214,7 @@ std::unordered_map TownerShortNameToTownerId = { { "nut", _talker_id::TOWN_COWFARM }, }; -std::string DebugCmdVisitTowner(const std::string_view parameter) +std::string DebugCmdVisitTowner(const string_view parameter) { auto &myPlayer = Players[MyPlayerId]; @@ -226,7 +226,7 @@ std::string DebugCmdVisitTowner(const std::string_view parameter) ret = "Who? "; for (auto &entry : TownerShortNameToTownerId) { ret.append(" "); - ret.append(entry.first); + ret.append(std::string(entry.first)); } return ret; } @@ -254,7 +254,7 @@ std::string DebugCmdVisitTowner(const std::string_view parameter) return fmt::format("Couldn't find {}.", parameter); } -std::string DebugCmdResetLevel(const std::string_view parameter) +std::string DebugCmdResetLevel(const string_view parameter) { auto &myPlayer = Players[MyPlayerId]; @@ -277,7 +277,7 @@ std::string DebugCmdResetLevel(const std::string_view parameter) return fmt::format("Level {} was restored and looks fabulous.", level); } -std::string DebugCmdGodMode(const std::string_view parameter) +std::string DebugCmdGodMode(const string_view parameter) { DebugGodMode = !DebugGodMode; if (DebugGodMode) @@ -285,21 +285,21 @@ std::string DebugCmdGodMode(const std::string_view parameter) return "You are mortal, beware of the darkness."; } -std::string DebugCmdLighting(const std::string_view parameter) +std::string DebugCmdLighting(const string_view parameter) { ToggleLighting(); return "All raindrops are the same."; } -std::string DebugCmdMap(const std::string_view parameter) +std::string DebugCmdMap(const string_view parameter) { std::fill(&AutomapView[0][0], &AutomapView[DMAXX - 1][DMAXX - 1], true); return "The way is made clear when viewed from above"; } -std::string DebugCmdVision(const std::string_view parameter) +std::string DebugCmdVision(const string_view parameter) { DebugVision = !DebugVision; if (DebugVision) @@ -308,7 +308,7 @@ std::string DebugCmdVision(const std::string_view parameter) return "My path is set."; } -std::string DebugCmdQuest(const std::string_view parameter) +std::string DebugCmdQuest(const string_view parameter) { if (parameter.empty()) { std::string ret = "You must provide an id. This could be: all"; @@ -347,7 +347,7 @@ std::string DebugCmdQuest(const std::string_view parameter) return fmt::format("{} enabled.", QuestData[questId]._qlstr); } -std::string DebugCmdLevelUp(const std::string_view parameter) +std::string DebugCmdLevelUp(const string_view parameter) { int levels = std::max(1, atoi(parameter.data())); for (int i = 0; i < levels; i++) @@ -355,7 +355,7 @@ std::string DebugCmdLevelUp(const std::string_view parameter) return "New experience leads to new insights."; } -std::string DebugCmdSetSpellsLevel(const std::string_view parameter) +std::string DebugCmdSetSpellsLevel(const string_view parameter) { int level = std::max(0, atoi(parameter.data())); for (int i = SPL_FIREBOLT; i < MAX_SPELLS; i++) { @@ -369,7 +369,7 @@ std::string DebugCmdSetSpellsLevel(const std::string_view parameter) return "Knowledge is power."; } -std::string DebugCmdRefillHealthMana(const std::string_view parameter) +std::string DebugCmdRefillHealthMana(const string_view parameter) { auto &myPlayer = Players[MyPlayerId]; myPlayer._pMana = myPlayer._pMaxMana; @@ -382,24 +382,24 @@ std::string DebugCmdRefillHealthMana(const std::string_view parameter) return "Ready for more."; } -std::string DebugCmdGenerateUniqueItem(const std::string_view parameter) +std::string DebugCmdGenerateUniqueItem(const string_view parameter) { return DebugSpawnItem(parameter.data(), true); } -std::string DebugCmdGenerateItem(const std::string_view parameter) +std::string DebugCmdGenerateItem(const string_view parameter) { return DebugSpawnItem(parameter.data(), false); } -std::string DebugCmdExit(const std::string_view parameter) +std::string DebugCmdExit(const string_view parameter) { gbRunGame = false; gbRunGameResult = false; return "See you again my Lord."; } -std::string DebugCmdArrow(const std::string_view parameter) +std::string DebugCmdArrow(const string_view parameter) { auto &myPlayer = Players[MyPlayerId]; @@ -421,7 +421,7 @@ std::string DebugCmdArrow(const std::string_view parameter) return "I can shoot any arrow."; } -std::string DebugCmdTalkToTowner(const std::string_view parameter) +std::string DebugCmdTalkToTowner(const string_view parameter) { if (DebugTalkToTowner(parameter.data())) { return "Hello from the other side."; @@ -429,7 +429,7 @@ std::string DebugCmdTalkToTowner(const std::string_view parameter) return "NPC not found."; } -std::string DebugCmdShowCoords(const std::string_view parameter) +std::string DebugCmdShowCoords(const string_view parameter) { DebugCoords = !DebugCoords; if (DebugCoords) @@ -438,7 +438,7 @@ std::string DebugCmdShowCoords(const std::string_view parameter) return "I hate math."; } -std::string DebugCmdShowGrid(const std::string_view parameter) +std::string DebugCmdShowGrid(const string_view parameter) { DebugGrid = !DebugGrid; if (DebugGrid) @@ -447,7 +447,7 @@ std::string DebugCmdShowGrid(const std::string_view parameter) return "Back to boring."; } -std::string DebugCmdShowCursorCoords(const std::string_view parameter) +std::string DebugCmdShowCursorCoords(const string_view parameter) { DebugCursorCoords = !DebugCursorCoords; if (DebugCursorCoords) @@ -576,14 +576,14 @@ void SetDebugLevelSeedInfos(uint32_t mid1Seed, uint32_t mid2Seed, uint32_t mid3S glEndSeed[currlevel] = endSeed; } -bool CheckDebugTextCommand(const std::string_view text) +bool CheckDebugTextCommand(const string_view text) { auto debugCmdIterator = std::find_if(DebugCmdList.begin(), DebugCmdList.end(), [&](const DebugCmdItem &elem) { return text.find(elem.text) == 0 && (text.length() == elem.text.length() || text[elem.text.length()] == ' '); }); if (debugCmdIterator == DebugCmdList.end()) return false; auto &dbgCmd = *debugCmdIterator; - std::string_view parameter = ""; + string_view parameter = ""; if (text.length() > (dbgCmd.text.length() + 1)) parameter = text.substr(dbgCmd.text.length() + 1); const auto result = dbgCmd.actionProc(parameter); diff --git a/Source/debug.h b/Source/debug.h index 9d31b6af0..db86b2855 100644 --- a/Source/debug.h +++ b/Source/debug.h @@ -5,13 +5,13 @@ */ #pragma once -#include #include #include "engine.h" #include "engine/cel_sprite.hpp" #include "miniwin/miniwin.h" #include "utils/stdcompat/optional.hpp" +#include "utils/stdcompat/string_view.hpp" namespace devilution { @@ -30,6 +30,6 @@ void PrintDebugQuest(); void GetDebugMonster(); void NextDebugMonster(); void SetDebugLevelSeedInfos(uint32_t mid1Seed, uint32_t mid2Seed, uint32_t mid3Seed, uint32_t endSeed); -bool CheckDebugTextCommand(const std::string_view text); +bool CheckDebugTextCommand(const string_view text); } // namespace devilution