I think this is the correct thing to do, and that it won't have
any noticeable effect whatsoever.
Cases 29 and 30 happen in the first half of the game, in the
cantine, while case 42 happens in the second half of the game. By
the time you reach the point where case 42 does something, I don't
think it's possible to get back to cases 29 and 30, so when case
29 falls through neither 30 nor 42 will do anything.
CID 1003730, 1003731
This fixes a mismatched function prototype wrt. the definition and
removes the underscores in various variables as per project coding
standard. Also, minor reordering of functions for readability.
This removes an unecessary type and unused parameter from the load
method and renames to remove underscores from variable names as per
the project coding conventions.
The loading of cseg is now replaced by skipping, so that the external
dat file remains the same, but RAM usage is reduced.
The callbacks code will now error on unknown callback addresses, which
should not happen as all cases should now be covered, though the
callback tables need to be checked to ensure this is guaranteed.
This could occur on other platforms too and was a race hazard between
mixer thread startup and music being valid i.e. If the music doesn't
already exist, when the mixer callback is done, this deletes the channel
as idle. Reordered the calls to fix this.
Also, removed unecessary music->start() as this is done by setMusic(n)
on successful load anyway.
This code appeared to be missing. After comparing with the original
interpreter under DOSBox which showed the expected behaviour if it
was present, have added it.
By doing this, have tracked down most of the remaining missing trivial
callbacks using these strings. Some strings are either unused or are
used in odd places, marked these with FIXME.
Also discovered another unimplemented non-trivial callback.
This now emits warning output if a callback is not explicitly
implemented in the switch statement. This is to migrate away from
loading and using the cseg data in favor of explicit code blocks.
Also, some implementation of callbacks using cseg previously.