In particular this means to remove the option to disable widescreen aspect ratios. The way this was handled makes no sense with the current render backend.
The aspect ratio code will have to be redone entirely to properly obey the backend's settings.
This needs to be called unconditionally for every frame being rendered, not all of the game modules did that.
Placing this call here ensures that it is independent of anything the games do.
* rewrote all uses of timerSetCallback. Most were unnecessary or long obsolete, the sound updates need to run per frame, not per tic and the UI tickers need to be handled in the main loop anyway.
* Use a more precise timer to animate the menu transition.
* uncouple other menu animations from the game timer.
Taking a cue from GDX to properly synchronize it because PCExhumed's approach looked broken by design.
It had no frame rate sync and solely depended on the low level audio stream for it.
Avoid passing this anywhere in the client code. It should only be set right before rendering the 3D view and the only code using the base palette should be the 3D renderer and hud_drawsprite.
Also make the palette override CVARs 3D view only in debug mode.
- Input velocity now consistent irrespective of frame rate.
- Angle and horizon calculated at frame rate.
- Replace usage of F16() macro with fix16_from_int() in GetInterruptKeys().
Note: Known issues with look up/down keys that is to be repaired.
All games combined there's 11(!!!) scene render blocks, not counting the sub-blocks for ROR and mirrors.
Does it surprise anyone that most of these sub-blocks do not feature all engine capabilities?
The data organization here is a mess, no wonder that this game could only save at the beginning of a level.
Fortunately it's all static so no allocations and pointers to track.
The regular sounds are not a big deal, but this game contains two special effects that were problematic to port. We'll have to wait and see if they work as intended - the original panning effect is not 3D compatible so I had to redo it.
Also, not sure what to do re: map screen. OG seems to keep playing the currently playing track, which seems slightly janky? should we just play track 19?
# Conflicts:
# source/exhumed/src/cd.cpp
# source/exhumed/src/cd.h