Since the ultima.dat is just a zip file, this should have been done
sooner. This will allow the tracking of changes to individual files
within the archive. Additionally, it will allow for future work
in-progress changes to files without taking the space of creating an
entirely new ultima.dat
There are 2 problems with the way combat music interacts with the menu (and the
credits you can view from there):
* When the menu is closed, the combat music becomes the "last request", so it
never stops even if combat finishes.
* If the creidts are viewed, the requested credits music is ignored because
combat is active, and the music player is checking the actor's status to
decide whether to change tracks.
This fixes both those problems, and restores the original game behavior of just
turning off the music when the menu is opened. I also removed the coupling of
actor state from the music process. I think this now works properly in all
situations.
Cause was deleting _shapes without _shapes being initialized to nullptr
Error occured when Bladerunner engine exited early due to missing data files. In this case the _shapes is not yet initialized, yet its deletion was calling the Shapes destruction and the array clear function leading to a segmentaiton fault. To reproduce just remove or rename one of the required files for BladeRunner and run the game (the error might not be triggered the first time).
This resolves confusion with Texture originally using a uint32 * buffer,
but then force casting to an uint16 * when in 16bpp pixel mode and
TEX_FMT_NATIVE is being used. Now using a surface, it's more able to
manage it's own buffer, and there'll be less confusion about how the
data is contained
The minimap appears incorrectly for 2 reasons:
* The memset_32 implementation is buggy - it uses a logical or instead
of a binary or, and it fails to move the buffer pointer after doing
the aligned section. This becomes more obvious in 16bpp mode.
* The top line is not long enough
This corrects both issues.