Recently we started to use this as new semantics, although in the past
we used simly <engine>_H. Now these guard defines are consistent with
rest of the files which are used in the engines.
This fix applies to drawPanelText(), where we used to hard-code
the text positions. Now we define the dimensions of the area where
the text is drawn (like we do for button texts) and calculate the
position based on the dimensions of the text string.
The drawPanelText() function is used for the Save, Quit, Protect
and Option dialogs, but for everything except the Option dialog it
already centered the text to the dialog. I decided to use this
centering mechanism for the title of the ITE Option dialog, even
though that changes the X coordinate by one pixel. Other than that,
it only affects the following texts:
ITE: Show Dialog / Reading Speed, Music and Sound
IHNM: Reading Speed, Music, Sound, Voices
I have verified that this looks at least ok for the English and
German versions of ITE, and the English, German, French and
Spanish versions of IHNM, so I'm reasonably confident that this
change is ok.
The same fix that had already been applied to the Spanish version
also applies to the French and German versions. (Judging by the
detection entries, there aren't any alternative versions so the
ones I got from GOG should be representative.)
The palettes aren't quite identical to the Spanish one, but I
think the remaining difference is for the spiritual barometer, so
the special case for that remains Spanish-only.
Some backends like GCW0 do no support graphics >320x240 due to
the hardware limitation (downscaling is possible but it will ruin
the pixel hunting which is often part of the gameplay).
Instead of manually updating the list of engines, we now introduce
a new dependency.
I marked all relevant engines, but some, like tinsel, require more
work with putting their relevant high-res games under USE_HIGHRES
define.
Note that this breaks the IHNM demo, as provided on the ScummVM web
page, since it doesn't have the sample.ad and sample.opl files
needed, but I have a feeling that this is a packaging error on
our part.
I don't have the original release of ITE, so I can't test that.
This was a hack that was implemented while IHNM was being developed.
That code should no longer be needed. If this issue does occur again,
the actual cause should be investigated, instead of hiding it with
workarounds. The code was buggy anyway, as _currentProtag was not
initialized properly
The changes are based on the Java implementation of the Shorten decoder.
This avoids all the out of bounds access (negative array indices), but
it still doesn't fully fix the actual decoder