The old code expected sciAudio FOpen calls to fail, because they
contained a directory name. On AmigaOS those calls succeeded.
Because of that at least on AmigaOS, sciAudio support didn't
work at all.
We now detect sciAudio FOpen calls and return a proper virtual file
handle. This should fix it on all platforms.
Also moved the SCI32 virtual save file handle from 200 to 32100.
- Detection works via signatures (couldn't find a better way)
- new kString subcalls were introduced SCI2.1 LATE
- kString now has signatures and is split via subcall table
- kString fix, so that KQ7 doesn't crash, when starting a chapter
- Sci2StringFunctionType removed, because no longer needed
This uses the same hack as the one used to reset the menus in Jones.
I've tested some more SCI games, and they don't disable menu entries
when loading a game. Hopefully, Jones and PQ2 are the only ones
script patch, so that points are awarded, when
changing back clothes. You have to clean out the
bank account again, because that's the problematic
script. Also happened in original interpreter.
Only happened for Space Quest 4 CD
worked in floppy
implement string collecting for SCI3
implement object offset collecting for SCI0-SCI2
implement said-str offset collecting for SCI0-SCI1
add new debug command scro / script_objects
add new debug command script_said
string without terminating NUL now a warning
the latter happens in qfg2 for amiga room 84
When parsing a sentence, its type 0x142 word (presumably the object) is
now stored. Any pronouns (type 0x080) are then automatically replaced by
this stored word.
getSciEvent can trigger the main ScummVM menu, which can trigger loading
a game, which will invalidate the game state that kGetEvent is operating
on.
Other kernel functions may still have the same problem, and a better
solution may be necessary.
getting back on saurus in the desert by typing
command "ride" freezes the game. This patch
fixes the issue.
Attention: difficult bug to fix, may cause issues
- also kDisplay cleanup, removed dummy opcodes
- workarounds should be used instead
- fixed hq1 workaround entry, it seems we are able
to read vocabulary now