From ScummVM :: Wiki
< Lastexpress
Revision as of 05:28, 27 July 2012 by Julien (talk | contribs) (Add sound issue to TODO list)
Jump to navigation Jump to search



  • Review logic code for all entities
    • Review shared logic functions
    • Review chapter logic functions (each chapter uses a set of functions + shared functions)
  • Cleanup MACRO usage

Savegame support

  • Add support for original savegame format (the game data is compressed, the headers are not)
  • Add support for importing existing savegames (the demo uses a savegame to initialize the logic and we have to treat it as a data file)
  • Prefix savegame filenames with the game id

Demo support

  • Add support in the logic/menu (needs to be initialized to a specific time)
  • Add support in entity/actions handling (differences need to be investigated)
  • Add support for the promotional slide-show

Inventory support

  • Add blinking menu icon
  • Fix regression in inventory UI code (in progress)


  • Add graphic transitions
  • Add support for luminosity adjustement
    • Add luminosity table
    • Check if all graphics are concerned by the luminosity adjustement
    • Support adjusting luminosity on the fly in the graphics manager
  • Add dirty-rects handling
    • Classes implementing Drawable need to return a Common::Rect when drawing. Some need to be updated (they return an empty rect right now).
    • The GraphicsManager class needs to be updated to store each surface dirty rects and merge those when doing the update.
    • The previous frame dirty rects should also be stored in case we want to be able to redraw everything when getting clear background calls.
  • Correct rendering black color for cursors (see magnifier cursor)
  • Convert NIS animations to use sound&scene managers
  • Fix subtitle debug output on Linux

Combat sequences

  • Objectify Fight class


  • Rewrite sound timer
    • Implement sound filters
    • Implement remaining sound queue/cache logic
    • Allow switching of filter function on the fly (can change between playback of each audio sample)
  • Add subtitle handling
  • Add option to disable subtitles
  • Finish implementation of audio queue
  • Implement sound looping function (train/steam sounds?)
  • Fix improper triggering of actions on sound end (visible when trying to open/knock on doors)
  • Rewrite NIS animations to use the audio queue (currently outputs directly with a hardcoded filter id)
  • Investigate sound playback issues (especially noticeable at 44100Hz output rate) -- reported by eriktorbjorn
    • Check number of audio samples returned. ScummVM assumes returning less than asked only happens at the end of the sound (it doesn't have to do any resampling at 44kHz and the "copy rate converter" asks for larger chunks at a time)

Known issues

Feel free to add a short description of your issue. This will help a lot when debugging AI & shared logic code. You can consult the list of characters to help you identify the name of a certain character.

Chapter 1

  • Alexei eats way too fast in the restaurant. This also happens with Mertens&Coudert when standing up and several other characters. This seems to be due to a wrong time interval calculation for certain frames.
  • Pascale never stops talking to August in the restaurant
  • Anna can be seen entering a compartment in the green car (hers is in the red car)
  • Verges appears walking when looking at doors
  • Characters sometimes get stuck in an animation cycle.
    • Mertens can get stuck if he sees you trying to open the wrong compartment door.
    • Verges can get stuck at Mertens's seat. Merten was standing up when the conductor was approaching. The conductor never got past him, and Mertens remained standing. Seems to happen if I wait long enough near Mertens's seat.
    • Francois gets stuck outside his compartment, flickering. He is supposed to get out and start running in the corridor.
    • Mahmud stays on the corridor after knocking on one of his companions' doors

Chapter 2

Chapter 3

Chapter 4

Chapter 5

Graphical glitches

To catch this, walk really quickly to the end of the sleeping car. If you don't stop to talk to anyone, you should be able to catch Anna opening the door.