Browse Source

Make debug compatible with GCC 6.2

pull/2750/head
Anders Jenbo 5 years ago
parent
commit
de01f15398
  1. 64
      Source/debug.cpp
  2. 4
      Source/debug.h

64
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<DebugCmdItem> 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<std::string_view, _talker_id> TownerShortNameToTownerId = {
std::unordered_map<string_view, _talker_id> TownerShortNameToTownerId = {
{ "griswold", _talker_id::TOWN_SMITH },
{ "pepin", _talker_id::TOWN_HEALER },
{ "ogden", _talker_id::TOWN_TAVERN },
@ -214,7 +214,7 @@ std::unordered_map<std::string_view, _talker_id> 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);

4
Source/debug.h

@ -5,13 +5,13 @@
*/
#pragma once
#include <string_view>
#include <unordered_map>
#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

Loading…
Cancel
Save