Status
ITE is completable with rare minor gfx glitches. IHNM shows complete intro
IHNM ToDos
- 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 "zapping" animations are not shown. This is perhaps because sfSwapActors() does not assign the non-protagonist ID
- sfPlaceActor throws a "Wrong frameOffset 0x1" warning when using the knife to scare the mice away in the kitchen with Garrister
- 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 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
- Psychic Profile display. Underlying variables seem to be deciphered.
- 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
- The panel background color is not always black (e.g. it's purple at AM's speech after chapter selection and yellow when Garrister enter the dining room)
- Don't allow the player to move the main actor using the mouse during scripted animated sequences
- 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. Garrister can get stuck in the corridor railings
- It's impossible to climb up the stairs with Garrister, because the hitzone returned is wrong. ScummVM crashes with "ObjectMap::getHitZone wrong index 0x1!"
- 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
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?
- We need to find out where following functions are called:
- 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.