This is the second part of allowing engines to be added dynamically.
Each folder in engines/ which must contain a file named "engine.mk"
containing the make definitions for that engine.
This is the first part of allowing engines to be added dynamically.
They are placed into a folder in engines/ which must contain a file
named "configure.engine" to add the engine, which is pulled into the
top level configure script automatically.
The old version did only work as expected when all the filenames were all
lowercase. This seems to be the case for most (or even all?) WME games.
However, we are better safe than sorry and make the code case agnostic.
The language data for the Czech version are in data.dcp, but the pairs
of {language.dcp, data.dcp} get preference over just a match on data.dcp,
thus we need to detect Czech as one of these pairs, giving the user the
choice of language on detection. In this case I just copied the english-detection.
Reversion 1.3 seems to have one language file in it’s main-folder, and
a full set in languages/ (not language/ like a few other games), the names
of the language-files are also different from what we’ve seen earlier.
This is mostly a quick fix to solve the rather common case of wanting
to use bold Arial. This will not handle the user adding the actual Arial.ttf
file to the folder yet, but atleast it solves the common case of having
to fallback to FreeSans.
This is needed for English versions of multilingual games, which use
UTF-8 strings, but we can treat them as plain ASCII, since wide and
UTF-8 strings are not yet supported in Wintermute. This allows at least
the English versions of these games to run.
This allows Reversion 2 and Shaban to start
This fixes two issues:
* The rendering rectangle was not rotated, causing garbage to be
drawn if the rotated rectangle did not fully cover the unrotated
rectangle, or sprites to be clipped in the opposite case.
* The order of mirror/scale/rotation operations was inconsistent.
This commit does scaling first, followed by rotation. (This is only an
issue because scaling is specified separately in X and Y directions.)
For now only FIXMEs are added for mirroring.
This broke loading in Broken Circle demo.
We now reset the queue state when skipping a frame, and re-use
lastFrameIter instead of keeping track of lastAddedTicket separately.