Join GitHub today
GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.Sign up
CINE: 9 fixes to music, UI, savegame etc #2454
Make Amiga music loop until fade out when changing scene. This is based on watching a video of Future Wars Amiga walkthrough, not on playing the Amiga version or reading its disassembly. But it does seem that the music loops instead of just playing once.
Fix transparency of page number and grid position (e.g. 04 and D2) in the copy protection scene of Amiga and Atari ST versions of Future Wars.
After player has died it was hard to get the system menu to appear by pressing the left and right mouse buttons simultaneously or the middle mouse button. Fix that by using the maximum values of the mouse button states for the polling period (Around 110ms at default play speed).
Previously the inventory could be summoned multiple times by pressing F3 or F4. Fix that by keeping track when the inventory has been opened and not allowing multiple use of it simultaneously.
Previously I encountered an std::bad_alloc with the code in manageEvents pushing an empty Event into the event queue. It did not happen very often but I got it to appear while debugging at least once or maybe twice. This is an attempt to fix this possible behaviour by not pushing empty events into the event queue but making sure the current status is checked without needing to push empty events into an empty event queue. I played through Italian Amiga version of Future Wars with this change and encountered no problems with it.
Total playtime is kept as milliseconds in the engine. It is saved as seconds. Previously it was not converted to milliseconds on load but seconds were took as milliseconds (i.e. 10s -> 10ms). Fix that by converting total playtime on load from seconds to milliseconds.
Previously there was a fix for bug #2669415 ("FW: half walking speed in a screen") which only addressed a single scene in Amiga and Atari ST versions of Future Wars. This fix fixes half walking speed in 8 more scenes in Amiga and Atari ST versions of Future Wars. The scenes were identified by playing through an Italian version of Amiga Future Wars. 3 more scenes were left over with half walking speed because they could not be fixed as easily (i.e. using this fix on them broke the scenes in some way, made them too fast or made the people walk into wrong positions or something else). The scenes left over are the ones using the following background files: - "L10.PI1": The medieval castle's hall. - "L18.PI1": The medieval castle's teleport room. - "L45.PI1": Space station's computer room.
The Italian Amiga version of Future Wars tries to load music from file "TELESONG.DAT" which does not exist. Previously after this starting to play music might either try to play a null stream and crash or play an old wrong music in memory. Fix that by setting the stream to null if no music exists (Checked that the stream is destroyed i.e. the destructor is run so it should be safe to set the _moduleStream variable to nullptr directly).
In Future Wars the command line was not always updated and thus failed sometimes to be up to date (i.e. showing wrong text, e.g. "EXAMINE" only when it should have read "EXAMINE scaffolding" because the mouse cursor was on the scaffolding). Now we just always update the command line for both Future Wars and Operation Stealth which seems to fix the command line updating. I think this probably was a regression caused by adding support for Operation Stealth (i.e. pull request #2365) and the efforts made in it to make the user interface responsive.