It seems the current code causes issues on at least AmigaOS.
Changed current code to the way SCI handled it.
Needs to get investigated in detail.
Added FIXME. Also see engines/sci/event.cpp
Original code did assume that AGI volume level is 0-15
(0 for silence, 15 for maximum volume). It actually is the
other way. 0 is maximum, 15 is silence.
Fixed that. Also implemented sync with ScummVM settings dialog.
In case "mute" is enabled by the user, any volume changes done by
scripts are ignored.
Fixes Manhunter 1 Apple IIgs not getting sound anymore since the
VM Var cleanup (the script volume change by the scripts didn't
reach us before)
in game timer is now updated, when scripts read in game timer
VM variables and during main loop. ScummVM total play time feature
is used for it. Game cycle syncing is done at the same time.
renamed getflag() to getFlag()
renamed setflag() to setFlag()
renamed flipflag() to flipFlag()
preagi: renamed setFlag for this engine to setWinnieFlag
Don't access variables directly, but through method
Shouldn't include any functional differences
Also changed several hardcoded values to the corresponding enums.
Caused issues with mouse support (that AGI on DOS never had).
e.g. KQ1/KQ2 on end of mouse click move Graham automatically falls
into water.
The check was added in AGI3 only, but maybe non-DOS interpreters
had it before. Or maybe mouse support was actually implemented
differently. Needs more investigating.
- Keep a non-lowercased user input copy for copying out words
- Check for user input word end after matching a dictionary word
- Fix detection of "a" and "i" words
load/saving via ScummVM menu
Mixed up mother goose has an endless script loop, when no user name
was entered, which means restoring while in there would result
in us staying in the inner loop until the user entered something
agi-font-atarist.bin -> used for platform Atari ST
agi-font-amiga.bin -> used for platform Amiga
agi-font-dos.bin -> used for platform DOS
agi-font-fanmade.bin -> used for fan-made games
That way users can get a more accurate font.
- graphics code fully rewritten
- Apple IIgs font support
- Amiga Topaz support
- Word parser rewritten
- menu code rewritten
- removed forced 2 second delay on all room changes
replaced with heuristic to detect situations, where it's required
- lots of naming cleanup
- new console commands show_map, screenobj, vmvars and vmflags
- all sorts of hacks/workarounds removed
- added SCI wait mouse cursor
- added Apple IIgs mouse cursor
- added Atari ST mouse cursor
- added Amiga/Apple IIgs transition
- added Atari ST transition
- user can select another render mode and
use Apple IIgs palette + transition for PC versions
- inventory screen rewritten
- SetSimple command now properly implemented
- PreAGI Mickey: Sierra logo now shown
- saved games: now saving controller key mapping
also saving automatic save data (SetSimple command)
- fixed invalid memory access when saving games (31 bytes were saved
using Common::String c_ptr()
Special Thanks to:
- fuzzie for helping out with the Apple IIgs font + valgrind
- eriktorbjorn for helping out with valgrind
- LordHoto for figuring out the code, that caused invalid memory
access in the original code, when saving a game
- sev for help out with reversing the Amiga transition
currently missing:
- mouse support for menu
- mouse support for system dialogs
- predictive dialog support
According to Apple IIgs emulator and recorded music on Apple IIgs,
it seems that stereo was reversed. Melody in games seems to be
playing on left channel and not on the right one.