aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sword2/sword2.cpp6
-rw-r--r--sword2/sword2.h1
2 files changed, 7 insertions, 0 deletions
diff --git a/sword2/sword2.cpp b/sword2/sword2.cpp
index 38784d6c82..1e765f3237 100644
--- a/sword2/sword2.cpp
+++ b/sword2/sword2.cpp
@@ -106,6 +106,7 @@ Sword2State::Sword2State(GameDetector *detector, OSystem *syst)
g_sword2 = this;
_features = detector->_game.features;
_gameId = detector->_game.id;
+ _bootParam = detector->_bootParam;
// Setup mixer
if (!_mixer->bindToSystem(syst))
@@ -496,6 +497,11 @@ void Sword2State::Start_game(void) //Tony29May97
else
screen_manager_id = 949; // INTRO & PARIS START
+ // FIXME this could be validated against startup.inf for valid numbers
+ // to stop people shooting themselves in the foot
+ if (_bootParam != 0)
+ screen_manager_id = _bootParam;
+
char *raw_script;
char *raw_data_ad;
uint32 null_pc=1; // the required start-scripts are both script #1 in the respective ScreenManager objects
diff --git a/sword2/sword2.h b/sword2/sword2.h
index 621f2fd556..d8eb4512fc 100644
--- a/sword2/sword2.h
+++ b/sword2/sword2.h
@@ -64,6 +64,7 @@ class Sword2State : public Engine {
OSystem::MutexRef _paletteMutex; // put in a gfx class?
private:
bool _quit;
+ uint32 _bootParam;
};
extern Sword2State *g_sword2;