13 Commits

Author SHA1 Message Date
Eugene Sandulenko
abea37c9bb
ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
Paul Gilbert
5f3004b94e AGS: Fix loading standalone AGS Maniac Mansion Deluxe saves
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
2021-09-09 20:14:27 -07:00
antoniou79
d474ee3003 AGS: Change a few char variables to int8
In order to specify that they should be treated as signed

Some ports may treat an (unspecified) "char" as unsigned by default. Android does this for its ARM architectures and while we did fix this by enforcing -fsigned-char to its compiler, the issue may come up for other ports. Also it should be better to clarify in the engine when a variable is not actually storing string characters.

I've spotted and changed the most "safe" cases I could find for this. As far as I can tell, out of these, only the Outline field and fontoutline array could potentially be assigned valid negative values which would cause bugs for ports treating chars as unsigned.
2021-09-09 19:27:49 -07:00
Paul Gilbert
2702b13768 AGS: Built-in script methods were being added to wrong import list 2021-07-23 20:08:21 -07:00
Paul Gilbert
ae1814553f AGS: Implement PluginMethod class as proxy for calling script methods 2021-07-18 21:47:45 -07:00
Paul Gilbert
b38d1c3e6c AGS: Fix crash when starting games with multiple plugins 2021-07-18 21:19:29 -07:00
Paul Gilbert
14b53d9a9e AGS: Moved plugins globals into Globals 2021-07-18 17:07:02 -07:00
Paul Gilbert
e543a32ec0 AGS: In progress converting plugin classes to be instance based
Previously the plugin system was obviously built around function
pointers, since a loaded plugin DLL would expose them statically.
This meant that the plugin classes I implemented also had to use
static methods, and all the variables had to be static as well.

This has been getting more and more annoying. So this commit is
an in-progress refactoring of AGS to allow for plugins to be
properly instance-based, and pointers to script methods will be
both a pointer to the plugin as well as the method name.
2021-07-18 17:07:01 -07:00
Paul Gilbert
83bf163365 AGS: Move script exports for DrawingSurface to a new plugins/core/ folder 2021-07-16 19:48:13 -07:00
Paul Gilbert
00603b341d AGS: Remove duplicate IAGSFontRenderer class definition 2021-06-18 21:24:27 -07:00
Cameron Cawley
9b348b3e7d AGS: Fix more type mismatches 2021-06-16 13:03:41 +01:00
Paul Gilbert
c942554810 AGS: Fixes for calling plugins 2021-06-13 21:08:52 -07:00
Paul Gilbert
701396361c AGS: Import of fresh codebase 2021-06-13 21:08:44 -07:00