- The game is completable with some minor glitches (see bugs).
These are minor issues which would be good to be fixed in the future
- Check if background resources are used before purging them when changing scenes - check the comments inside sfLoadScene
- When saving a game, save the whole screen when an animation is playing e.g. when playing animations (the script controlled ones, not the movies) it should save the whole screen when the game is saved when such an animation is running since it uses delta-frames so currently, once restored, the screen is wrong. This is only observed in a few places.
- Some sounds are cut off prematurely (e.g. when an animation finishes before the sound sample, when changing scenes and a dialog is immediately started afterwards). This is by design (new animations and scene changes stop sounds that are already playing), so this requires changes to the way new scenes are started. We need to verify what the original does here.
- Pathfinding bugs in Fort Apache and the Indian village - e.g. when moving to the door on the right, the hero walks around a big path. Same when moving to the tent on the top in the Indian village. (this also happens in the original - check this video)
- Offering (pick-up/give) the Union Flag to the 'sleeping' Sergeant in the cell initiates voice playback of "I've already seen it" but subtitle on screen displays "I doubt it would interest him". The text is correct but the voice is not - this also happens in the original, [Bug #6228]
- When getting the piano player off the well, he walks up facing to the left (his side animation is shown) - probably related to pathfinding?
- Sometimes, some stray lines are drawn below fonts - probably because the text doesn't fit inside the screen and the surface is cut off incorrectly.
- Some artifacts are drawn on screen occasionally (e.g. when text is shown over an animation).
- Some of the menu colors are wrong
- Sound streaming in movies is problematic. Right now, part of the sound of a movie is preloaded and if there's still a sound buffer, it's loaded on the fly. When the sound buffer is later on loaded on the fly, the sound gets off sync. This is notable during the intro of the game (which is the longest video in the game)
- Save sound volume and panning in saved games
- Implement music volume
- Load/start sound and music of the saved scene when loading.
- Crashes sometimes on scene changes
- (I guess because some talktext is still running although the slot used by it has changed)
- Crashes sometimes (e.g. when inside the barn and going up the ladder)
- These crashes are caused by non-stopping background sounds, see TODO above.
- The game music is in XMIDI. I'm assuming that the rest of the formats were because of badly dumped resources - finalize() calls were missing and the resulting music could contain anything.
- Implement dirty rectangles (low priority)
- Optimize segment mask redrawing (only redraw what's necessary)
- Add movie playback functionality (movie format is known, needs implementing)
- Add sound support (after rewrite of the resource system)
- Still some clipping issues (walking upstairs in the saloon, when on top of the tower in the hideout)
- Add game menu
- Rewrite from scratch with only minor stuff from the disasm since the original menu is one huge messy function
- Rewrite the resource system to something similar as used by M4
- each resource type gets its own class, the resource cache manages the resource instances
- generic resource class which has a method that creates a MemoryReadStream
- rewrite parts of the engine to use the new resource system
- Extend savegame format (savegame version, description, more data)