diff options
author | Filippos Karapetis | 2014-11-03 11:38:01 +0200 |
---|---|---|
committer | Filippos Karapetis | 2014-11-03 11:40:38 +0200 |
commit | 35577ab71e8482ce629decb220b7df0cf0482d0f (patch) | |
tree | 371ad85348546ac535a6cac01d51957c2c81afbf /engines | |
parent | 5dc03107fd86abb725eff6d9ea704267534d9dfe (diff) | |
download | scummvm-rg350-35577ab71e8482ce629decb220b7df0cf0482d0f.tar.gz scummvm-rg350-35577ab71e8482ce629decb220b7df0cf0482d0f.tar.bz2 scummvm-rg350-35577ab71e8482ce629decb220b7df0cf0482d0f.zip |
GROOVIE: Initial implementation of direct game load for the 11th Hour
Diffstat (limited to 'engines')
-rw-r--r-- | engines/groovie/script.cpp | 20 |
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 |