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.
op_getInventoryItem/op_setInventoryItem could operate on
inventoryItems[4] while inventoryItems has only 4 elements. This
effectively accesses the 'money' field right behind this array.
Due to a broken assert, this was never detected.
This commit fixes it by redirecting accesses to inventoryItems[4] to
money, and also fixes the assert.
An alternative solution would have been enlarging the array, and
removing the money field, but that would require more changes in the
engine.
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.
Thanks to clone2727 for pointing out the issue here.
Tested with Valgrind and no leaks present.
However, the music output is still not correct, when compared to
Midi output. This is due to the track numbering. Either the
external files need renaming or a mapping table will be needed.
This removes most of the bad accesses and use of invalid pointers, but
it is still not quite correct. Also, it appears the music id and
external track ids may not be a direct mapping.
Detection of the external digital music files works, but they currently
fail to play and cause segfaults if present... Suspected to be related
to premature destruction of audiostream data.
Given the message Touche prints when it found a game, printing the
MD5 sums of the files was probably what it expected the
AdvancedDetector would do in the filebase fallback detector. This may
have been true in the past, but it's not what it does anymore,
rendering the message pointless.
This fixes it by calling the now accessable reportUnknown method.
The A-acute, I-acute, O-acute and U-acute seem to be missing from the font,
and are now all remapped to their unaccented ASCII variants. I and A
were added by 303333352a3, and this patch adds O and U.
This is assuming the CP850 encoding, which is not entirely verified.
See bugs #2040311 and #3483383.
Since we stream the VOC files from disk now, we can not use the global
resource file handle for playback but instead need to open a new handle for
every SFX started.
Fixes odd noises at the beginning of the Touche demo.
When reallocation is unsuccessful, the passed buffer is not freed. In this case, assigning the result (NULL) will result in a leak of the original memory buffer.
See http://msdn.microsoft.com/en-us/library/kkedhy7c.aspx