Things To Do
Engine Verification
- Verify functions:
- ScummEngine::runInputScript()
- V2 opcodes:
- beginOverride
- waitForMessage
- waitForSentence
- waitForActor
- assignVarWordIndirect
- assignVarByte
- addIndirect
- subIndirect
- add
- subtract
- isLessEqual
- isGreaterEqual
- isLess
- isGreater
- ifClassOfIs
- startScript
- chainScript
- ifNotState08
- ifState08
- ifNotState04
- ifState04
- ifState02
- ifNotState02
- ifNotState01
- ifState01
- setState08 * does not appear to request redraw (as clearState08 does)
- clearState08
- setState04
- clearState04
- setState02
- clearState02
- setState01
- clearState01
- drawObject
- pickupObject * partially checked
- loadRoomWithEgo * unchecked
- setBitVar * unchecked
- getBitVar * unchecked
- setOwnerOf * unchecked
- delay
- walkActorToObject * unchecked
- putActorAtObject * unchecked
- walkActorTo * unchecked
- setActorElevation * different - does not multiply elevation by 2, takes it as-is
- putActor * unchecked
- setObjPreposition * different - does nothing at all
- getObjPreposition
- doSentence * partially checked
- drawSentence * unchecked
- cutscene * difference - also saves _currentScript and clears some click-related vars
- endCutscene * difference - clears the _currentScript var saved in cutscene
- setCameraAt * difference - sets camera to Panning mode, not Normal mode
- panCameraTo * difference - no mention of camera._movingToActor
- cursorCommand
- getActorX
- getActorY
- getActorElevation * different - does not divide elevation by 2, returns it as-is
- getActorWalkBox
- animateActor * unchecked
- lights * partially checked
- setObjectName * unchecked
- resourceRoutines * different - does nothing at all
- restart * unchecked
- setBoxFlags
- verbOps * different - no case for 0xFF (verb on/off), sets fewer vars
- roomOps * different - lacks case 2 (room color)
- actorOps
- actorFromPos * unchecked
- findObject * unchecked
- switchCostumeSet
- V5 opcodes:
- jumpRelative * unchecked
- stopObjectCode * unchecked
- breakHere * unchecked
- setVarRange * unchecked
- move * unchecked
- increment * unchecked
- decrement * unchecked
- equalZero * unchecked
- notEqualZero * unchecked
- isNotEqual
- isEqual
- stopScript * unchecked
- pseudoRoom * unchecked
- loadRoom * unchecked
- getObjectOwner * unchecked
- printEgo * unchecked
- print * unchecked
- getDist * unchecked
- getClosestObjActor * unchecked
- getRandomNr
- getActorMoving
- isSoundRunning
- isScriptRunning
- delayVariable
- stopSound
- startMusic/startSound
- walkActorToActor * unchecked
- putActorInRoom * unchecked
- actorFollowCamera * unchecked
- getActorCostume
- getActorRoom
- getActorFacing
- faceActor * unchecked
- saveLoadGame
- stopMusic * different - only stops music track
Graphics
- Flashlight shape
- Gray room palette in flashlight mode
Scripts
- Fix freeze after scrolling Maniac Manion logo
- Somehow add static MM logo and LucasArts logo (needs to be done before engine initializes)