SAGA/TODO

From ScummVM :: Wiki
< SAGA
Revision as of 23:15, 4 June 2007 by Md5 (talk | contribs) (Update)
Jump to navigation Jump to search

Status

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


IHNM ToDos

  • [Important] Implement sfScriptGotoScene differences for IHNM. For example, 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, because this case is currently not handled by sfScriptGotoScene yet
  • Stepzone format seems to be changed or no stepzones exist in IHNM
  • When trying to climb up the stairs to the second floor of the zeppelin with Gorrister, the game tries to disable the hitzone of the tear at the end of the corridor, however the hitzone returned is wrong. Currently, the hitzone is not disabled using a hack in the code, which makes the staircase work correctly in that room, thus preventing a crash
  • Conversation options are not shown correctly (wrong positioning and colors). This is noticeable with Nimdok, when talking to the prisoner. Also, if a conversation option is selected, the character does not say it and we immediately jump to the other character's reply instead
  • 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. After the speech, the actor is incorrectly shown for a brief moment. In the original, the screen colors get garbled momentarily, so this seems to be an issue with the scripts in the original game, albeit it affects ScummVM in a different manner
  • It seems that depth image isn't correct. Different format?
  • 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
  • If you look outside the porthole in the room where the gun is (Gorrister's chapter, exit starting room, go left and enter the right door), 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 occurs because of the unimplemented parts of Anim::returnFromCutaway(), in particular the missing restoreScene() function
  • 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.