Tinsel/TODO
TODO List | |
Name | Tinsel Engine TODO |
Technical Contact(s) | Tinsel Engine Team |
Subsystem | Engine |
TODO
- The AdLib music does not sound right. I'm speculating that we would need to use the SAMPLE.* files from the original for Adlib instruments. Here is a description of the format probably used by SAMPLE.BNK: http://www.descent2.com/ddn/specs/bnk/ . The adlib.diff patch could possibly provide a starting point.
- Return to launcher is currently impossible, because the game uses a ton of global variables to keeps its state. These are not reset when one exits one Tinsel game to the launcher and then starts another Tinsel game (possibly the same). A quick way to fix it would be the following:
- Identify all global variables (this includes "static" variables hidden inside function bodies).
- Optionally, remove the inline initialization for all of them. This way, Valgrind can detect if they are used uninitialized, which may help in tracking down problematic vars.
- Initialize each global variable (or at least each that needs it) in an InitFILENAME() method in each file, which is to be called by the TinselEngine constructor or some other appropriate place.
- On the long run, turning all these variables into members of to-be-added classes (i.e. objectifying the engine) is preferable, but the above seems to be the easiest and quickest solution.
- Check engine code for any 64-bit system incompatible code.
- Check engine code for endian issues, specifically Big Endian issues.
- Perform play testing, looking for bugs.
- Add fixes/workarounds for bugs present in the original games - See Tinsel/Bugs.
- Currently, we semi-arbitrarily assigned F5 & F7 to open the load/save dialogs (dreammaster did this to match Lure, which in turn follows the 'Sierra standard'). Maybe we should agree on some standard hotkeys which work in all (most/many) engines?