directSave was clobbering script variables with the savename, so now the savename is handled outside of the script variables. Also o_returnscript now sets _wantAutosave so that the autosave can be executed the next time it's safe, inside of o_inputloopend to ensure the game is in a stable state
Some scripts, such as the boat puzzle in Clandestiny, were clearing variables right before the o_inputloopend instruction, which was causing a crash because we were deferring our input actions until then. This change means hotspots execute their actions immediately instead of deferring, this is how the old Win95 exe does it.
- Move Groovie2 mini-game logic orchestration inside script opcode 0x42
- Move 11h mousetrap logic into a separate file
- Move music file names for MusicPlayerClan inside music.cpp
- Remove the now obsolete ClanGame and T11hGame classes
For The 11th Hour, this means things like clock chimes and wind sounds. This also fixes the end of the game where you have until the clock chimes 12 to choose a door.
- also renamed the stub ops functions
- sound effect volume setting for Groovie 2 games
- stop sound effects when playing an FMV (an interlaced video)
This is enough to get through the whole game, although you have to use the GameBook to solve mouse trap, chapel, and cake. Modern art has rudimentary AI. Beehive and Pente both auto-solve. Updated o2_stub49 so the player can choose an ending.
For each engine:
- Make a new folder detection
- Move detection-related files inside the folder
- Add a new module "enginename/detection"
- Add DETECT_OBJS here
- Adjust the normal engine module to remove detect_objs
- Adjust every file for the new changes.
The 7th Guest initializes GM devices during the "loading GM drivers"
screen, which is a normal video that plays "audio" that consists of
initialization messages (mostly Roland GS sysexes). The original
interpreter plays this video twice, which is enough time to play the
entire INI_SC.XMI initialization file. ScummVM apparently plays video
a bit faster, and there is not enough time to play the entire init
file. Because of this GM initialization is incomplete.
I've fixed this by making the init video loop until the audio has
finished playing.
Note: I have only tested this with the original DOS version of the
game. I don't know if the file reference I've used to identify the
GM init video is the same on other platforms. If not, this change
might not work and/or have unintended results.
Loading and returning from subscripts alters the _variables
used, thus are not guaranteed to create a valid save state.
Loading a save should be valid at any time, as long as the
active script being run is restored to the base game script.
If the user enters in an invalid description for the save then it will be
simplified by the saved name cache process in Script::savegame.
I checked this with t7g, but not with the 11th guest or any other Groovie game.
The original in-game loading/saving can still only access the first 10 save
slots (0-9).
Its possible to saving via the GMM when the game is interactive.
Loading a game saved via the gui using the original in-game load menu
works fine.
Saving via the GMM with timestamp works, but only only saves the characters
up to the first non-alpha non-letter characer.
These two speed modes enable faster movement throughout the mansion.
iOS mode matches the behavior of the official iOS release while
tweaked mode additionally uses original framerate for 'teeth'
animations.
- Rewritten T7G's font code to subclass Graphics::Font and make it cleaner.
- Use theme fonts for the Mac version of T7G (which used ugly system fonts
originally). With this the Mac version should be completable.
- Cleanup include interdependencies.
svn-id: r49487