From 861c033cafe549ffc70a542b54f2029ddcbebc0b Mon Sep 17 00:00:00 2001 From: Jonathan G Rennison Date: Sun, 18 Jun 2023 19:54:03 +0100 Subject: [PATCH] Crash log: Include game mode in config info --- src/crashlog.cpp | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/crashlog.cpp b/src/crashlog.cpp index bda0d4d9ef..0fbec485a2 100644 --- a/src/crashlog.cpp +++ b/src/crashlog.cpp @@ -33,6 +33,7 @@ #include "debug_desync.h" #include "event_logs.h" #include "scope.h" +#include "progress.h" #include "ai/ai_info.hpp" #include "game/game.hpp" @@ -226,6 +227,15 @@ char *CrashLog::LogConfiguration(char *buffer, const char *last) const default: return "-"; }; }; + auto mode_name = []() -> const char * { + switch (_game_mode) { + case GM_MENU: return "MENU"; + case GM_NORMAL: return "NORMAL"; + case GM_EDITOR: return "EDITOR"; + case GM_BOOTSTRAP: return "BOOTSTRAP"; + default: return "-"; + }; + }; buffer += seprintf(buffer, last, "Configuration:\n" " Blitter: %s\n" @@ -237,7 +247,7 @@ char *CrashLog::LogConfiguration(char *buffer, const char *last) const " Sound driver: %s\n" " Sound set: %s (%u)\n" " Video driver: %s\n" - " Pathfinder: %s %s %s\n\n", + " Pathfinder: %s %s %s\n", BlitterFactory::GetCurrentBlitter() == nullptr ? "none" : BlitterFactory::GetCurrentBlitter()->GetName(), BaseGraphics::GetUsedSet() == nullptr ? "none" : BaseGraphics::GetUsedSet()->name.c_str(), BaseGraphics::GetUsedSet() == nullptr ? UINT32_MAX : BaseGraphics::GetUsedSet()->version, @@ -252,6 +262,10 @@ char *CrashLog::LogConfiguration(char *buffer, const char *last) const VideoDriver::GetInstance() == nullptr ? "none" : VideoDriver::GetInstance()->GetInfoString(), pathfinder_name(_settings_game.pf.pathfinder_for_trains), pathfinder_name(_settings_game.pf.pathfinder_for_roadvehs), pathfinder_name(_settings_game.pf.pathfinder_for_ships) ); + buffer += seprintf(buffer, last, " Game mode: %s", mode_name()); + if (_switch_mode != SM_NONE) buffer += seprintf(buffer, last, ", SM: %u", _switch_mode); + if (HasModalProgress()) buffer += seprintf(buffer, last, ", HMP"); + buffer += seprintf(buffer, last, "\n\n"); this->CrashLogFaultSectionCheckpoint(buffer);