I'm told not every version of the game plays this. Mine does though,
and I see no harm in adding it for all versions. The code is robust
enough to work even if the "introdub.raw" file is missing completely.
This affected Bud's line, "Is that the great mystery invention you
had hidden away?" in the intro, making it very hard to hear, and
possibly other sounds as well. I don't know if this was a bug in
the original game, but it's much closer to the English version I
own now.
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 mof instruction needs to return 0 or 1 to continue execution, rather
than 2 which indicates to end table instruction execution. Using 0 as
this is most likely correct value.
This ensures that if any unhandled/invalid instructions are present,
they are skipped, rather than locking up engine execution.
This is a secondary fix for bug #3614697 - "Spanish version
uncompletable at end of 2nd part" and any other future bugs of this
type.
This add support for the unhandled "mof" instruction present in the
Spanish version. This effectively skips it as a NOP/invalid, which
prevents it locking up the game at the end of the 2nd part.
This affects the Console / debugger classes of multiple engines.
An alternative solution would have been to remove the unused _vm
member vars. However, it seems likely that in the future, the _vm
member could be useful for methods added to the console. So instead,
we add a simple assert(_vm) to silence the clang warning.