Scroll times (ScrollSpeedX, ScrollSpeedY) can't be zero, as this leads
to a division by zero later on. This allows Dreamscape to start and
work properly.
copyFrom frees and reallocates the surface for every update, as long
as the dimensions and format stay the same, we can do with just a
memcpy.
This gives a tiny improvement in the update-part of the Theora-player
(on the order of a bit more than 1 second saved total in the 1:28 long
J.U.L.I.A.-intro)
If we have only one thing being drawn, and that is opaque, we can
skip filling the render surface with background color.
This shaves another few wasted cycles of the FMV playback. (Since we
now don’t have to write the entire render surface TWICE).
This reduces the time spent in drawTickets() to ~60% of what it was before.
Each engine now only has to provide a single configure.engine file
adding the engine into the configure script, which then produces the
required other files automatically.
This is the third and final commit enabling fully pluggable engines.
Now providing an engine folder contains a configure.engine, engine.mk
and engine-plugin.h file, it will be picked up automatically by the
configure script.
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