Some systems have fseeko but you need to check that off_t is a 64-bit
value (and this requires some magic incantation on some platforms),
others need fseeko64(), Windows has a different symbol, and then some
systems only have an fseek() that's limited to <2GB files.
This is a first step in trying to improve this.
The default mouse was only refenced in the message box gump, which is only used by the recall command in Crusader. The pointing hand cursor in Crusader is an arrow, so it should be acceptable for now.
It appears a lot, and these casts are intentional and look safe.
Example:
../scummvm/engines/glk/alan3/actor.cpp: In function 'Glk::Alan3::ScriptEntry* Glk::Alan3::scriptOf(int)':
../scummvm/engines/glk/alan3/lists.h:35:52: warning: converting a packed 'Glk::Alan3::ScriptEntry' pointer (alignment 1) to a 'Glk::Alan3::Aword' {aka 'unsigned int'} pointer (alignment 4) may result in an unaligned pointer value [-Waddress-of-packed-member]
35 | #define isEndOfArray(x) implementationOfIsEndOfList((Aword *) (x))
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
../scummvm/engines/glk/alan3/actor.cpp:38:84: note: in expansion of macro 'isEndOfArray'
38 | for (scr = (ScriptEntry *) pointerTo(header->scriptTableAddress); !isEndOfArray(scr); scr++)
| ^~~~~~~~~~~~
In file included from ../scummvm/engines/glk/alan3/actor.h:25,
from ../scummvm/engines/glk/alan3/actor.cpp:22:
../scummvm/engines/glk/alan3/acode.h:453:8: note: defined here
453 | struct ScriptEntry { /* SCRIPT TABLE */
| ^~~~~~~~~~~
Unlike the 8-disk version, this one has proper MT-32 resources (see
commit 655afcdf55 for more context).
Reported by a French player owning this (rare?) release.
The French VGA floppy version of Monkey 1 (and, apparently, this version
alone) is missing the usual 'roland' room, and the index references an
invalid DISK00.LEC file, although the game scripts didn't disable the
MT-32 feature itself. This causes a fatal error when trying to run this
game with MT-32 support, even with the original interpreter (while it
does work with the English and Spanish VGA floppy versions).
We can't do much about this, since many resources appear to be missing,
but we can detect this version and warn the user before going back to
Adlib mode. Otherwise, some users can be confused by the fatal error
about the DISK00.LEC file.
The talkie version was silently killed while we completed the support for the regular Mac version.
Also cleanup all the LOK static resources a bit (remove garbage offsets).