aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFilippos Karapetis2014-11-03 11:38:01 +0200
committerFilippos Karapetis2014-11-03 11:40:38 +0200
commit35577ab71e8482ce629decb220b7df0cf0482d0f (patch)
tree371ad85348546ac535a6cac01d51957c2c81afbf
parent5dc03107fd86abb725eff6d9ea704267534d9dfe (diff)
downloadscummvm-rg350-35577ab71e8482ce629decb220b7df0cf0482d0f.tar.gz
scummvm-rg350-35577ab71e8482ce629decb220b7df0cf0482d0f.tar.bz2
scummvm-rg350-35577ab71e8482ce629decb220b7df0cf0482d0f.zip
GROOVIE: Initial implementation of direct game load for the 11th Hour
-rw-r--r--engines/groovie/script.cpp20
1 files changed, 14 insertions, 6 deletions
diff --git a/engines/groovie/script.cpp b/engines/groovie/script.cpp
index c4091f6da7..eef97b6ff9 100644
--- a/engines/groovie/script.cpp
+++ b/engines/groovie/script.cpp
@@ -179,12 +179,20 @@ void Script::directGameLoad(int slot) {
// TODO: Return to the main script, likely reusing most of o_returnscript()
- // HACK: We set variable 0x19 to the slot to load, and set the current
- // instruction to the one that actually loads the saved game specified
- // in that variable. This will change in other versions of the game and
- // in other games.
- setVariable(0x19, slot);
- _currentInstruction = 0x287;
+ // HACK: We set the slot to load in the appropriate variable, and set the
+ // current instruction to the one that actually loads the saved game
+ // specified in that variable. This differs depending on the game and its
+ // version.
+ if (_version == kGroovieT7G) {
+ // 7th Guest
+ setVariable(0x19, slot);
+ _currentInstruction = 0x287;
+ } else {
+ // 11th Hour
+ setVariable(0xF, slot);
+ // FIXME: This bypasses a lot of the game's initialization procedure
+ _currentInstruction = 0xE78E;
+ }
// TODO: We'll probably need to start by running the beginning of the
// script to let it do the soundcard initialization and then do the