Tinsel/TODO

From ScummVM :: Wiki
< Tinsel
Revision as of 03:58, 28 May 2012 by Digitall (talk | contribs) (Added Minor Bugs from 2012-05-28 DW1 Playtesting)
Jump to navigation Jump to search
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:
    1. Identify all global variables (this includes "static" variables hidden inside function bodies).
    2. 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.
    3. 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.
    4. 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.
  • The following (minor) bugs were found in a Discworld 1 playthrough on 2012-05-27. It is suspected, but unconfirmed that they occur in the original interpreter. If so, they should be moved to Tinsel/Bugs.
    • Act 2: After the first trip through L-Space to the library in the past, the game can get stuck when the "Hiding From Thief" script is triggered and Rincewind hides. This appears to be caused by a problem with the Luggage pathfinding to hide and getting stuck. As the mouse is disabled at this point and the game is waiting for the Luggage to hide before the Thief appears, the game is stuck. This only seems to occur when playing the game from a clean new game start to this point i.e. during release playtesting, but it is recoverable as exiting and loading a savegame from just before this does not exhibit the bug and allows the game to continue.
    • Act 2: The scene outside of the Hideout waiting for the Thief to give the password can glitch badly if the glass is used on the pipe very early. This causes a bad GFX glitch with Ego (Rincewind) jumping to the top left of the screen and then walking down-right until back to normal. This is not game-breaking.
    • Acts 1-3: (Seen in Act 3) At the Livery Stable, the drunk Donkey's "hiccup" bubbles are in the top left of the screen, rather than correctly located over the Donkey's head. Unsure if the original exhibits this.
    • Act 4: Loading Mambo/M16 with coals, only the coughing animation is shown each time, except for the last time when he "roars" and smokes. Though this act's scripts are known to be buggy, IIRC the original interpreter shows an animation of Rincewind pouring the coals into M16 prior to coughing animations...
    • Act 2-4: In the Dark Wood (heading to Nanny Ogg's cottage), there are two trees on the path with a large spider web between. On the first walk, Ego (Rincewind) triggers a "Walking into Spiderweb" animation, and the web is no longer visible on latter visits. However, either on any latter visit or after load, though the web is not visible, the "Walking into Spiderweb" animation plays when Ego walks through this point. This probably occurs in the original.
    • Act 3-4: Pathfinding on the drive at Lady Ramkin's Dragon Sancturary is buggy and can result in Ego (Rincewind) walking through the closed gate/gatepost. This probably occurs in the original.
  • 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?