It seems the older version of AGSFlashlight didn't persist
it's fields in the savegame like the latest version does.
I decided against trying to explicitly figure out which
version of AGSFlashlight different games used, and instead
simply have fallback handling if the savegame doesn't
have the data.
The only minor disadvantage is that this means that whilst
savegames are portable from standalone AGS to ScummVM for
the game, it won't in the other direction. But I don't
think that's too major an issue, since it's only for the
few games that do use the old AGSFlashlight
The plugin previously had a bunch of hacks since the
AGS engine was rendering the screen at 32-bits rather than
16-bits the original was designed for. But with more recent
engine changes, the screen is 16-bits again. So I was able
to revert the hacks and return to the original code
This at least fixes the darkness in Maniac Mansion Deluxe,
but it will likely need furhter work for any games that
specify more exotic functionalities, such as RGB tinting
The latest change to try and properly handle NumberPtr results
from plugin methods broke the passed parameters on methods with
a void return. To solve this once and for all, I changed all
plugin methods to be a void return, and added a _results field
as part of the passed params parameter
This not only simplifies all the use of _t types to the
ScummVM equivalents, it gets rid of the int32 usage in
favor of just int, solving common type clashes with the
Amiga, for which int doesn't match int32
the AGS codebase comes with the option to build with several
built-in plugins that code is provided for. These will still
need to be cleaned up for the ScummVM DLL implementation