From aab159decefad8ccc19d4d8f612a10fe47409273 Mon Sep 17 00:00:00 2001 From: me Date: Sun, 7 Jun 2020 15:02:01 +0300 Subject: [PATCH] - --- Makefile | 2 +- src/GameMain.cpp | 13 +++++++++++-- src/SystemSettings.cpp | 9 +++++++++ src/SystemSettings.h | 3 +++ 4 files changed, 24 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index c257e64..78ffcd0 100644 --- a/Makefile +++ b/Makefile @@ -21,7 +21,7 @@ clean: make -C .build clean run: - ./bin/glkeeper-debug -gamedir ../games/dk2 + ./bin/glkeeper-debug $(ARGS) builddir: test -d .build || mkdir .build diff --git a/src/GameMain.cpp b/src/GameMain.cpp index f587db3..817ae52 100644 --- a/src/GameMain.cpp +++ b/src/GameMain.cpp @@ -33,8 +33,17 @@ bool GameMain::Initialize() // set initial gamestate //SwitchToGameState(&mMeshViewGamestate); - gGameWorld.LoadScenario("null"); - SwitchToGameState(&mGameplayGamestate); + if (!gSystem.mStartupParams.mStartupMapName.empty()) + { + if (gGameWorld.LoadScenario(gSystem.mStartupParams.mStartupMapName)) + { + SwitchToGameState(&mGameplayGamestate); + } + } + else + { + gConsole.LogMessage(eLogMessage_Info, "Startup map is not specified"); + } //SwitchToGameState(&mGuiTestGamestate); diff --git a/src/SystemSettings.cpp b/src/SystemSettings.cpp index a749daf..07a7672 100644 --- a/src/SystemSettings.cpp +++ b/src/SystemSettings.cpp @@ -64,6 +64,14 @@ bool SystemStartupParams::ParseStartupParams(int argc, char *argv[]) continue; } + if (cxx_stricmp(argv[iarg], "-mapname") == 0 && (argc > iarg + 1)) + { + mStartupMapName.assign(argv[iarg + 1]); + + iarg += 2; + continue; + } + ++iarg; } @@ -74,4 +82,5 @@ void SystemStartupParams::Clear() { mCustomConfigFileName.clear(); mDungeonKeeperGamePath.clear(); + mStartupMapName.clear(); } diff --git a/src/SystemSettings.h b/src/SystemSettings.h index 89a4b4b..8fdac14 100644 --- a/src/SystemSettings.h +++ b/src/SystemSettings.h @@ -30,6 +30,9 @@ struct SystemStartupParams // full path to dungeon keeper game folder std::string mDungeonKeeperGamePath; + // custom map name to load + std::string mStartupMapName; + public: SystemStartupParams() = default;