aboutsummaryrefslogtreecommitdiff
path: root/engines/lure/diassembly/Lure_notes.txt
diff options
context:
space:
mode:
Diffstat (limited to 'engines/lure/diassembly/Lure_notes.txt')
-rw-r--r--engines/lure/diassembly/Lure_notes.txt35
1 files changed, 32 insertions, 3 deletions
diff --git a/engines/lure/diassembly/Lure_notes.txt b/engines/lure/diassembly/Lure_notes.txt
index 8feb47f85a..f41b618c54 100644
--- a/engines/lure/diassembly/Lure_notes.txt
+++ b/engines/lure/diassembly/Lure_notes.txt
@@ -69,6 +69,18 @@ char_face_up/char_face_down/char_face_left/char_face_right - Faces the character
Input: si = Hotspot record
di = Animation slot
+character_change_room - Changes the current room for a given character
+ Input: current_hotspot = Character hotspot Id
+ dx = New room number
+ cx = New X position
+ bx = New Y position
+
+character_check_room_change - Checks whether the given character is within the
+ bounds of a room exit, and if so, handles moving the player to
+ the new room
+ Input: si = Character hotspot Id
+ di = Chracter animation slot
+
character_update_frame - Handles updating a character's current frame
Input: ?
Output: ax = 1 for end of ?? list, 0 = frame successfully changed
@@ -359,7 +371,7 @@ set_upper_vga_palette - Sets the last 16 palette entries of the VGA palette to a
sequence_execute - Outer execution method for handling a sequence of script instructions.
Input: ax = Pointer to script set. See tables section for instruction formats
Output: ax = sequence result value
- zf = set if the result value is zero
+ zf = set if the result value is zero
sequence_execute_inner - Inner handling method for script instructions
Input: si = Pointer to script set
@@ -373,6 +385,13 @@ show_disk_cursor - Shows the disk cursor
show_startup - Shows the starting screens of the game, and then calls the
show_introduction method to show the animated introduction sequence
+skorl_caught_check - Checks to see if the Skorl is close enough to the player
+ for it to 'catch' the player
+ Input: bx = Player hotspot record
+ si = Skorl hotspot record
+ di = Skorl animation slot
+ Output: ax = 1 -> Skorl is close to player, 0 -> Skorl is not
+
skorl_knockout - Runs the animation sequence of a Skorl knocking out the player
sleep - Sleeps for a given number of clock cycles (each being 1/18th of a second)
@@ -664,6 +683,9 @@ The format of hotspots are as follows:
17h 2 Tick handler proc offset
19h 2 Copy of hotspot width
1Bh 2 Copy of hotspot height
+ 1Dh 2 Y correction. Currently only known use is as a Y
+ correction factor when checking if a character is in
+ an exit region
1fh 2 Timeout decrement value for frame change
21h 2 Pointer to memory containing disk resource Id for the
pixel data for the hotspot's animation (or possibly
@@ -781,8 +803,15 @@ aren't necessarily animated.
sets this back to zero
11h 2 Tick handler proc offset - called every frame for hotspots
loaded into the animation table where [0Ch] is non-zero
- 13h 2 ??? Copy of the animation width
- 15h 2 ??? Copy of the animation height
+ 13h 2 Copy of the animation width - this the height copy are
+ used in some areas to, for example, varying the strict
+ Y ordering of objects in a scene (for example, Ratpouch
+ has a larger height copy to make him appear on top of
+ the rack rather than behind it).
+ 15h 2 Copy of the animation height
+ 17h 2 Y correction. Currently only known use is as a Y
+ correction factor when checking if a character is in
+ an exit region
19h 2 Offset of the original resource record used to load this
animation entry.
1Bh 2 Hotspot Id of the entry. Can also be 0ffffh, which seems