The major contributors provided their consent:
DrMcCoy, Strangerke, sdelamarre, sev.
The goal is to allow the re-release of this code under
Switch, which is incompatible with pure GPL
This mechanism was used to accommodate games existing in several resolutions, while keeping the same script logic across versions.
Opcodes manipulating coordinates and lengths call the adjustCoords() function to double or halve their values depending on the adjustment needed.
Its usage has been confirmed only in a German version of Adibou1 for now, restrict the feature to this game.
Only cursors drawn from scripts must be copied in _cursorSprites, not the ones loaded from executable.
This simplifies a lot of globals from the Draw object, that were needed only in the cursor-from-exec case.
Note: other GOB games are not impacted even if shared code from draw_v2.cpp, inter_v1.cpp is modified (_cursorHotspotsX and _doCursorPalettes are non-null only in Adibou 2).
Try to mimic more closely what is done in the executable.
Fixes black squares sometimes blinking around the cursor (just after selecting the character, when hoovering seeds bags in the vegetable garden...), and fix a temporarily disappearing "waiting" cursor in some "change CD" screens.
Draw::_vgaSmallPalette was supposed to be a 16-color VGA
palette / EGA palette, but we've been using the first 16
entries of Draw::_vgaPalette for that for ages now.
The only parts where we didn't were codepaths never
actually taken in the gob games, so for the sake of
clarity (and fixing Coverity issues), this commit removes
those as well.
Fixes Coverity issues 1192648 and 1192649.
The DOS, Amiga and Atari version of Little Red come with a small
screen, accessible through the main menu, that lets children read and
listen to animal names in 5 languages: French, German, English,
Spanish and Italian.
Unfortunately, the German names are partially wrong. This is
especially tragic because this is a game for small children and
they're supposed to learn something here. So I deem fixing this a
very good idea.
Just to be sure, someone should probably look over the French,
Spanish and Italian words too.
When the cursor name is "", then that cursor is drawn by the scripts
instead of loaded from cursor32.dll. That cursor does not have its own
palette then.
Fixes the cursors in the "paint" game in Adibou2.
Add
static const int kFrontSurface = 20;
static const int kBackSurface = 21;
static const int kAnimSurface = 22;
static const int kCursorSurface = 23;
static const int kCaptureSurface = 30;
to class Draw and substitute the raw numbers in other files with
those aliases, for readability.
svn-id: r51852
Fascination - initial version of several 'Fascination Window' functions, proper naming of most of fascination OPCODEDRAW and OPCODEGOB functions
svn-id: r44472