SAGA/TODO

From ScummVM :: Wiki
< SAGA
Revision as of 20:28, 3 June 2007 by Md5 (talk | contribs) (Reordered the TODOs a bit, put the 3 most important ones first)
Jump to navigation Jump to search

Status

ITE is completable with rare minor gfx glitches. IHNM shows complete intro


IHNM ToDos

  • [Important] It's impossible to climb up the stairs with Gorrister, because the hitzone returned is wrong. ScummVM crashes with "ObjectMap::getHitZone wrong index 0x1!"
  • [Important] Conversation options are not shown. Therefore, it's currently impossible to talk to characters when multiple conversation options are available. This is noticeable with Nimdok, where you are able to talk to the guard (no conversation options) but when talking to the prisoner, the expected conversation options are not shown. If a conversation option is selected (using a hack in the code), the character does not say it and we immediately jump to the other character's reply instead
  • [Important] When a wrong monitor is selected with Ted, normally the door closes, screen goes black and AM says "Oh oh oh sorry Ted, try again", and we're taken to the character selection screen again. ScummVM just exits without error
  • Psychic Profile display. Underlying variables seem to be deciphered.
  • Actor animations are all wrong. (It's better now, but is it right yet?). Helen's walking animation is not showing at all. Actor::getActorFrameRange keeps throwing wrong frametypes 0x0 and 0x2 for actorId 0x2000 and 0x2001
  • Actor walking speed is not correct (It's better now, but is it right yet? Calculations should be the same, and it seems to be similar to the otiginal running under DOSBox)
  • sfPlaceActor throws a "Wrong frameOffset 0x1" warning when using the knife to scare the mice away in the kitchen with Gorrister
  • After the introduction, during the character selection screen, 5 warnings are thrown (Frame List ID = 0 for actor index 0,1,2,3,9). This happens at other places, too
  • After the introduction, during the character selection screen, if the mouse is hovered over a character, the game crashes. This is probably related to setStatusText
  • After chapter selection AM has intro speech. It is not possible to skip it with ESC, but it is possible to skip it with the left mouse button
  • It seems that depth image isn't correct. Different format?
  • I've seen no stepzones so far. Probably their format has changed and they aren't loaded
  • Options panel shows up without textures on the buttons and some options are not functioning yet (e.g. the load/save dialogs)
  • Voices volume isn't implemented yet
  • Implement saving and loading
  • The way that verbs are assigned internally is ugly and needs to be cleaned up
  • Implement sfScriptGotoScene differences for IHNM
  • If you look outside the porthole in the room where the gun is, the screen will change, showing the ship's engine. However, after the animation is complete, the scene diesn't update properly to show the room again, and it shows the last frame of the engine animation instead. This could be because of the unimplemented differences for IHNM in sfScriptGotoScene
  • Characters can get stuck in environmental objects (might be because of mistakes in actor animation). E.g. Gorrister can get stuck in the corridor railings
  • Pathfinding algorithm bugs: When walking with Benny from the forest to the caves, the actor can't find the path properly. Also, when clicking on a cave entrance with Ben, he starts walking to the cave and then moves a step back, thus he can't enter it. If the user clicks on the lower left of each cave (or other spots around the cave entrance), Ben enters the cave correctly
  • Implement several missing script functions (e.g. sfScriptFade, sfScriptStartVideo, sfScriptReturnFromVideo, sfScriptEndVideo etc)


ITE ToDos

  • Amiga versions of the game would be nice to support. Though Amiga porter which once appeared at our forums doesn't reply to sev's letters. Maybe another dev should try that?
  • Original DOS demo. It is based on very early version of engine, so many structures are different. I've mapped most of resources but they stay untested.
    • Move actors and objects list to our code. I've found them but not yet processed.
  • Requests
    • We need to find out where following functions are called:
      • SF_cycleColors -- all implementation bits sit in palanim.cpp
      • sfPlayVoice -- used in ITE CD
    • There are currently two versions of ITE that are not uniquely identified: the Wyrmkeep "Win32 CD Version" and the original "DOS/Win32 CD Version". When adding games, the user gets to do the disambiguation, but what happens with the detection when playing the game?
  • BUGS
    • Occasional graphics glitches in ISO rooms. (At least in the Rats maze.) Most notable when entering rounded doors. (3d draw sequence is wrong)
    • pressing ESC during making fire - brokes anim sequence
  • Interface
    • wrong Option button draw sequence - some dots have inproper color.
    • handleConverseUpdate scrolls converse too quickly.
    • handleCommandUpdate scrolls inventory too quickly.
  • ORIGINAL ENGINE BUGS
    • Actors are drawn (some pixels above status bar) at Chota's falling. - Original engine draws its too - so it is not our bug


Long-term ToDos

Bugs/misfeatures

  • Make actor animation Event-driven. See FIXME in actor.cpp. Maybe it should be INTERVAL_EVENT
  • Inspect Font module - free memory, GameFontIds <-> FONT_ID
  • In many places RSC_LoadResource() is called but memory is not freed afterwards, i.e. there is a huge leak
  • Optimize screen output. Now we blit whole screen for each frame.
  • When using the original XMIDI music resources, some songs play at the wrong speed. The worst example I've heard of this is the "Elk Fanfare" during the intro. It could be the meta events we don't handle, but at least the tempo event doesn't seem to make any difference. Maybe something in the data header instead...?
  • Remove use of floating point, especially doubles.