[Scummvm-cvs-logs] SF.net SVN: scummvm: [22406] scummvm/trunk/engines/lure/diassembly/LURE.ASM
dreammaster at users.sourceforge.net
dreammaster at users.sourceforge.net
Thu May 11 00:27:00 CEST 2006
Revision: 22406
Author: dreammaster
Date: 2006-05-11 00:25:54 -0700 (Thu, 11 May 2006)
ViewCVS: http://svn.sourceforge.net/scummvm/?rev=22406&view=rev
Log Message:
-----------
Added proper labels in some of the existing disassembled methods
Modified Paths:
--------------
scummvm/trunk/engines/lure/diassembly/LURE.ASM
Modified: scummvm/trunk/engines/lure/diassembly/LURE.ASM
===================================================================
--- scummvm/trunk/engines/lure/diassembly/LURE.ASM 2006-05-10 20:50:59 UTC (rev 22405)
+++ scummvm/trunk/engines/lure/diassembly/LURE.ASM 2006-05-11 07:25:54 UTC (rev 22406)
@@ -208,6 +208,7 @@
HS_DEST_Y equ 56h
HS_V58 equ 58h
HS_MOVEMENT_SRC_OFFSET equ 5Ah
+HS_V5E equ 5Eh
HS_V60 equ 60h
HS_ACTION_OFFSET equ 61h
HS_FIRST_ACTION_OFFSET equ 63h
@@ -267,7 +268,7 @@
ROOM_SEQUENCE_OFFSET equ 11h
ROOM_ENTRY_TIME equ 13h
ROOM_V17 equ 17h
-ROOM_V18 equ 18h
+ROOM_BOUNDS_INDEX equ 18h
ROOM_X_START equ 19h
ROOM_X_END equ 1Bh
ROOM_EXITS_START equ 1Dh
@@ -3181,18 +3182,18 @@
273F:132F C6 06 9834 01 mov cursor_state, CURSORSTATE_ACTION
273F:1334 \xFABE 6CEF mov si, offset player_hotspot_rec
273F:1337 33 C0 xor ax,ax ; Zero register
-273F:1339 89 44 52 mov [si+HS_DEST_HOTSPOT],ax
-273F:133C 88 44 2A mov [si+HS_ACTION_CTR], al
-273F:133F 89 44 42 mov [si+42h],ax
-273F:1342 88 44 44 mov [si+44h],al
+273F:1339 89 44 52 mov [si+HS_DEST_HOTSPOT], ax
+273F:133C 88 44 2A mov [si+HS_ACTION_CTR], al
+273F:133F 89 44 42 mov [si+HS_V42], ax
+273F:1342 88 44 44 mov [si+HS_V44], al
273F:1345 8B DE mov bx,si
273F:1347 03 5C 61 add bx, [si+HS_ACTION_OFFSET]
273F:134A 83 C3 63 add bx, HS_FIRST_ACTION_OFFSET
273F:134D \xFABF 65F3 mov di, offset player_action_support_record
273F:1350 89 7F 01 mov [bx+CURRENT_ACTION_SUPPORT_TABLE], di
-273F:1353 C7 05 0010 mov word ptr [di], 10h
+273F:1353 C7 05 0010 mov word ptr [di], ACTION_LOOK_AT
273F:1357 A1 1924 mov ax, hotspot_id
-273F:135A 89 45 02 mov [di+2],ax
+273F:135A 89 45 02 mov [di+2], ax
273F:135D C7 45 04 0000 mov word ptr [di+4], 0
273F:1362 C6 07 02 mov byte ptr [bx], CHAR_ACTION_DISPATCH_ACTION
273F:1365 E8 5C9D call menubar_clear_image
@@ -3271,8 +3272,8 @@
273F:1414 89 05 mov [di],ax
273F:1416 88 44 FF mov [si-1],al
273F:1419 88 44 2A mov [si+HS_ACTION_CTR],al
-273F:141C 89 44 42 mov [si+42h],ax
-273F:141F 88 44 44 mov [si+44h],al
+273F:141C 89 44 42 mov [si+HS_V42], ax
+273F:141F 88 44 44 mov [si+HS_V44], al
273F:1422 88 44 FF mov [si-1],al
273F:1425 FF 16 075E call word ptr [show_cursor_proc]
273F:1429 C3 retn
@@ -10180,6 +10181,10 @@
273F:41D7 FF E0 jmp ax
action_dispatch endp
+ ;\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF
+ ; JUMP POINT
+ ;
+ ;\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF
273F:41D9 loc_825: ; xref 273F:52BB
273F:41D9 \xFA8B DE mov bx, si
@@ -10196,7 +10201,6 @@
273F:41F7 C6 07 00 mov byte ptr [bx], CHAR_ACTION_NONE
273F:41FA 81 7D 1B 03E8 cmp word ptr [di+ANIM_HOTSPOT_ID], PLAYER_HOTSPOT_ID
273F:41FF 75 0B jne loc_ret_827 ; Jump if not equal
- assume ds:seg_code
273F:4201 C6 06 9834 00 mov cursor_state, CURSORSTATE_NONE
273F:4206 C7 06 11E4 FFFF mov hotspot_name_id2, 0FFFFh
@@ -10872,7 +10876,7 @@
273F:4610 BB 0005 mov bx,5
273F:4613 E8 1D8C call display_message_dialog_2
273F:4616 5B pop bx
-273F:4617 C7 44 42 0004 mov word ptr [si+HS_V42],4
+273F:4617 C7 44 42 0004 mov word ptr [si+HS_V42], 4
273F:461C loc_882: ; xref 273F:460D
273F:461C C7 47 2B 002A mov word ptr [bx+HS_V2B], 2Ah
273F:4621 8B 45 1B mov ax, [di+ANIM_HOTSPOT_ID]
@@ -10923,10 +10927,10 @@
273F:4686 C6 44 2A 00 mov byte ptr [si+HS_ACTION_CTR], 0
273F:468A 81 3E BA1B 0408 cmp active_hotspot_id, 408h
273F:4690 73 0F jae loc_889 ; Jump if above or =
-273F:4692 C6 47 44 08 mov byte ptr [bx+44h],8
-273F:4696 C7 47 42 001E mov word ptr [bx+42h],1Eh
+273F:4692 C6 47 44 08 mov byte ptr [bx+HS_V44], 8
+273F:4696 C7 47 42 001E mov word ptr [bx+HS_V42], 30
273F:469B 8B 45 1B mov ax, [di+ANIM_HOTSPOT_ID]
-273F:469E 89 47 50 mov [bx+50h],ax
+273F:469E 89 47 50 mov [bx+50h], ax
273F:46A1 loc_889: ; xref 273F:4690
273F:46A1 33 C0 xor ax,ax ; Zero register
273F:46A3 C3 retn
@@ -10940,7 +10944,7 @@
seq_method_45 proc near
273F:46A4 E8 C641 call get_room_resource_pointer
273F:46A7 C6 44 44 07 mov byte ptr [si+HS_V44], 7
-273F:46AB C7 44 42 0082 mov word ptr [si+HS_V42], 82h
+273F:46AB C7 44 42 0082 mov word ptr [si+HS_V42], 130
273F:46B0 C3 retn
seq_method_45 endp
@@ -12397,13 +12401,13 @@
273F:508F E8 BC56 call get_room_resource_pointer
273F:5092 5B pop bx
273F:5093 87 F3 xchg si, bx ; si=char Id,
-273F:5095 8B 44 06 mov ax, [si+6]
+273F:5095 8B 44 06 mov ax, [si+HS_ROOM_NUM]
273F:5098 3B 47 06 cmp ax, [bx+6]
273F:509B 75 0B jne loc_1038 ; Jump if not equal
273F:509D E8 0501 call characters_impinging_check
273F:50A0 74 06 jz loc_1038 ; Jump if zero
273F:50A2 loc_1035: ; xref 273F:5089
-273F:50A2 83 6C 42 01 sub word ptr [si+42h],1
+273F:50A2 83 6C 42 01 sub word ptr [si+HS_V42], 1
273F:50A6 loc_ret_1036: ; xref 273F:50BB
273F:50A6 C3 retn
@@ -12411,8 +12415,8 @@
273F:50A7 5B pop bx
273F:50A8 loc_1038: ; xref 273F:507F, 509B, 50A0
273F:50A8 33 C0 xor ax,ax ; Zero register
-273F:50AA 89 44 50 mov [si+50h],ax
-273F:50AD 86 44 44 xchg [si+44h],al
+273F:50AA 89 44 50 mov [si+HS_DIRECTION], ax
+273F:50AD 86 44 44 xchg [si+HS_V44], al
273F:50B0 50 push ax
273F:50B1 E8 F2D3 call character_pathfind_clear
273F:50B4 58 pop ax
@@ -12429,8 +12433,8 @@
273F:50CD 74 0F jz loc_1041 ; Jump if zero
273F:50CF F6 06 6D52 FF test player_action_state, 0FFh
273F:50D4 74 08 jz loc_1041 ; Jump if zero
-273F:50D6 C6 44 2A C7 mov byte ptr [si+2Ah],0C7h
-273F:50DA C6 07 02 mov byte ptr [bx],2
+273F:50D6 C6 44 2A C7 mov byte ptr [si+HS_ACTION_CTR], 199
+273F:50DA C6 07 02 mov byte ptr [bx], CHAR_ACTION_DISPATCH_ACTION
273F:50DD C3 retn
273F:50DE loc_1041: ; xref 273F:50CD, 50D4
@@ -12451,15 +12455,15 @@
; Dispatching action
273F:50FA 8B 45 0E mov ax, [di+ANIM_ROOM_NUM]
-273F:50FD F7 47 03 FFFF test word ptr [bx+3], 0FFFFh
+273F:50FD F7 47 03 FFFF test word ptr [bx+CURRENT_ACTION_ROOM_NUM], 0FFFFh
273F:5102 75 03 jnz loc_1043 ; Jump if not zero
-273F:5104 89 47 03 mov [bx+3], ax
+273F:5104 89 47 03 mov [bx+CURRENT_ACTION_ROOM_NUM], ax
273F:5107 loc_1043: ; xref 273F:5102
-273F:5107 3B 47 03 cmp ax, [bx+3] ; Compare against room number
+273F:5107 3B 47 03 cmp ax, [bx+CURRENT_ACTION_ROOM_NUM] ; Compare against room number
273F:510A 74 03 je loc_1044 ; Jump if equal
273F:510C E9 01F6 jmp loc_1078
273F:510F loc_1044: ; xref 273F:510A
-273F:510F C6 45 1D 00 mov byte ptr [di+1Dh],0
+273F:510F C6 45 1D 00 mov byte ptr [di+ANIM_LAYER1_SKIP], 0
273F:5113 E9 F0A8 jmp action_dispatch
273F:5116 loc_1045: ; xref 273F:50EC
273F:5116 E9 00E0 jmp loc_1060 ; (51F9)
@@ -12467,7 +12471,7 @@
273F:5119 E8 BE8D call hotspot_script_execute
273F:511C 0B C0 or ax,ax ; Zero ?
273F:511E 75 03 jnz loc_ret_1047 ; Jump if not zero
-273F:5120 C6 07 02 mov byte ptr [bx],2
+273F:5120 C6 07 02 mov byte ptr [bx], CHAR_ACTION_DISPATCH_ACTION
273F:5123 loc_ret_1047: ; xref 273F:511E
273F:5123 C3 retn
@@ -12504,19 +12508,19 @@
273F:515E EB 79 jmp short loc_1058 ; (51D9)
273F:5160 loc_1052: ; xref 273F:5157, 515C
273F:5160 87 D3 xchg dx,bx
-273F:5162 80 7C 4C 02 cmp byte ptr [si+4Ch],2
+273F:5162 80 7C 4C 02 cmp byte ptr [si+HS_V4C], 2
273F:5166 74 24 je loc_1054 ; Jump if equal
-273F:5168 80 44 4C 01 add byte ptr [si+4Ch],1
-273F:516C F6 44 4D FF test byte ptr [si+4Dh],0FFh
+273F:5168 80 44 4C 01 add byte ptr [si+HS_V4C],1
+273F:516C F6 44 4D FF test byte ptr [si+HS_V4D], 0FFh
273F:5170 75 0B jnz loc_1053 ; Jump if not zero
273F:5172 83 44 61 05 add word ptr [si+HS_ACTION_OFFSET], CURRENT_ACTION_RECORD_SIZE
-273F:5176 C6 44 4D 01 mov byte ptr [si+4Dh], 1
+273F:5176 C6 44 4D 01 mov byte ptr [si+HS_V4D], 1
273F:517A 83 C3 05 add bx, CURRENT_ACTION_RECORD_SIZE
273F:517D loc_1053: ; xref 273F:5170
273F:517D C7 47 01 13C2 mov word ptr [bx+CURRENT_ACTION_SUPPORT_TABLE], 13C2h
273F:5182 C6 07 02 mov byte ptr [bx], CHAR_ACTION_DISPATCH_ACTION
-273F:5185 8B 44 06 mov ax, [si+6]
-273F:5188 89 47 03 mov [bx+3], ax
+273F:5185 8B 44 06 mov ax, [si+HS_ROOM_NUM]
+273F:5188 89 47 03 mov [bx+CURRENT_ACTION_ROOM_NUM], ax
273F:518B C3 retn
273F:518C loc_1054: ; xref 273F:5166
273F:518C 53 push bx
@@ -12633,7 +12637,7 @@
273F:5249 80 64 0D F8 and byte ptr [si+HS_X], 0F8h
273F:524D 80 0D 05 or byte ptr [di+ANIM_X], 5
273F:5250 80 4C 0D 05 or byte ptr [si+HS_X], 5
-273F:5254 C6 44 60 00 mov byte ptr [si+60h], 0
+273F:5254 C6 44 60 00 mov byte ptr [si+HS_V60], 0
273F:5258 C6 45 1D 2A mov byte ptr [di+ANIM_LAYER1_SKIP], 2Ah
273F:525C C6 07 02 mov byte ptr [bx], CHAR_ACTION_DISPATCH_ACTION
273F:525F F6 C1 FF test cl, 0FFh ; Any direction specified?
@@ -12682,12 +12686,19 @@
273F:52B6 8B 07 mov ax, [bx]
273F:52B8 89 44 33 mov [si+HS_V33], ax
273F:52BB E9 EF1B jmp loc_825 ; (41D9)
+ npc_unknown1 endp
+
+ ;\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF
+ ; JUMP POINT
+ ;
+ ;\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF
+
273F:52BE loc_1073: ; xref 273F:530D
-273F:52BE C6 44 60 00 mov byte ptr [si+60h], 0
+273F:52BE C6 44 60 00 mov byte ptr [si+HS_V60], 0
273F:52C2 F7 44 61 FFFF test word ptr [si+HS_ACTION_OFFSET], 0FFFFh
273F:52C7 74 28 jz loc_1077 ; Jump if zero
273F:52C9 53 push bx
-273F:52CA F7 44 4E FFFF test word ptr [si+4Eh],0FFFFh
+273F:52CA F7 44 4E FFFF test word ptr [si+HS_V4E], 0FFFFh
273F:52CF 74 18 jz loc_1075 ; Jump if zero
273F:52D1 8B 5F 01 mov bx, [bx+1]
273F:52D4 81 FB 13BE cmp bx, 13BEh
@@ -12705,18 +12716,19 @@
273F:52F0 loc_ret_1076: ; xref 273F:52F6
273F:52F0 C3 retn
273F:52F1 loc_1077: ; xref 273F:52C7
-273F:52F1 F7 44 5E FFFF test word ptr [si+5Eh], 0FFFFh
+273F:52F1 F7 44 5E FFFF test word ptr [si+HS_V5E], 0FFFFh
273F:52F6 74 F8 jz loc_ret_1076 ; Jump if zero
-273F:52F8 8B 44 5E mov ax, [si+5Eh]
-273F:52FB 89 47 01 mov [bx+1], ax
+273F:52F8 8B 44 5E mov ax, [si+HS_V5E]
+273F:52FB 89 47 01 mov [bx+CURRENT_ACTION_SUPPORT_TABLE], ax
273F:52FE 8B 44 06 mov ax, [si+6]
-273F:5301 89 47 03 mov [bx+3], ax
+273F:5301 89 47 03 mov [bx+CURRENT_ACTION_ROOM_NUM], ax
273F:5304 C3 retn
- npc_unknown1 endp
;\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF
; JUMP POINT
;
+ ; I think code moves an NPC character to the right room if the current
+ ; action's room # is different from the NPC's current room
;\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF
273F:5305 loc_1078: ; xref 273F:510C
@@ -12786,10 +12798,10 @@
273F:538E 5B pop bx
273F:538F 87 DE xchg bx,si
273F:5391 58 pop ax
-273F:5392 F6 47 0C FF test byte ptr [bx+0Ch],0FFh
-273F:5396 74 39 jz loc_1085 ; Jump if zero
+273F:5392 F6 47 0C FF test byte ptr [bx+REHS_EXIT_BLOCKED], 0FFh
+273F:5396 74 39 jz loc_1085 ; Jump if not blocked
273F:5398 50 push ax
-273F:5399 8B 45 1B mov ax,[di+1Bh]
+273F:5399 8B 45 1B mov ax, [di+ANIM_HOTSPOT_ID]
273F:539C BB 0006 mov bx,6
273F:539F 2D 03E9 sub ax,3E9h
273F:53A2 F7 E3 mul bx ; dx:ax = reg * ax
@@ -12813,7 +12825,7 @@
273F:53D1 loc_1085: ; xref 273F:5373, 5396
273F:53D1 5B pop bx
273F:53D2 C6 07 01 mov byte ptr [bx],1
-273F:53D5 C6 45 27 01 mov byte ptr [di+27h],1
+273F:53D5 C6 45 27 01 mov byte ptr [di+ANIM_UNKNOWN1], 1
273F:53D9 C3 retn
;\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF
@@ -13183,16 +13195,16 @@
;\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF
npc_hotspot5e_proc proc near
-273F:561E 8B DD mov bx,bp
-273F:5620 8B 07 mov ax,[bx]
-273F:5622 8B 4F 02 mov cx,[bx+2]
-273F:5625 83 C5 04 add bp,4
-273F:5628 89 4C 5E mov [si+5Eh],cx
-273F:562B C6 44 60 00 mov byte ptr [si+60h],0
-273F:562F 8B DE mov bx,si
+273F:561E 8B DD mov bx, bp
+273F:5620 8B 07 mov ax, [bx]
+273F:5622 8B 4F 02 mov cx, [bx+2]
+273F:5625 83 C5 04 add bp, 4
+273F:5628 89 4C 5E mov [si+HS_V5E], cx
+273F:562B C6 44 60 00 mov byte ptr [si+HS_V60], 0
+273F:562F 8B DE mov bx, si
273F:5631 03 5C 61 add bx, [si+HS_ACTION_OFFSET]
273F:5634 83 C3 63 add bx, HS_FIRST_ACTION_OFFSET
-273F:5637 89 47 03 mov [bx+3], ax
+273F:5637 89 47 03 mov [bx+CURRENT_ACTION_ROOM_NUM], ax
273F:563A E9 FF44 jmp character_walking_end
npc_hotspot5e_proc endp
@@ -13205,12 +13217,12 @@
273F:563D 8B DD mov bx,bp
273F:563F 8B 07 mov ax,[bx]
273F:5641 83 C5 02 add bp,2
-273F:5644 C7 44 5E 0000 mov word ptr [si+5Eh],0
-273F:5649 C6 44 60 00 mov byte ptr [si+60h],0
+273F:5644 C7 44 5E 0000 mov word ptr [si+HS_V5E], 0
+273F:5649 C6 44 60 00 mov byte ptr [si+HS_V60], 0
273F:564D 8B DE mov bx,si
273F:564F 03 5C 61 add bx, [si+HS_ACTION_OFFSET]
273F:5652 83 C3 63 add bx, HS_FIRST_ACTION_OFFSET
-273F:5655 89 47 03 mov [bx+3], ax
+273F:5655 89 47 03 mov [bx+CURRENT_ACTION_ROOM_NUM], ax
273F:5658 E9 FF26 jmp character_walking_end
go_to_proc endp
@@ -13238,11 +13250,11 @@
273F:566E 56 push si
273F:566F 8B 44 06 mov ax, [si+HS_ROOM_NUM] ; Get char's room rsc
273F:5672 E8 B675 call get_room_resource_pointer2
-273F:5675 8A 5C 18 mov bl, [si+ROOM_V18]
+273F:5675 8A 5C 18 mov bl, [si+ROOM_BOUNDS_INDEX]
273F:5678 32 FF xor bh, bh
273F:567A B1 03 mov cl, 3
273F:567C D3 E3 shl bx, cl
-273F:567E 81 C3 2EB1 add bx, offset room_rsc_table
+273F:567E 81 C3 2EB1 add bx, offset room_bounds_table
273F:5682 B9 0014 mov cx, 20 ; # attempts
273F:5685 5E pop si
@@ -13580,8 +13592,8 @@
273F:58DD 74 0E jz loc_ret_1138 ; Jump if zero
273F:58DF 3D 002A cmp ax,2Ah
273F:58E2 75 09 jne loc_ret_1138 ; Jump if not equal
-273F:58E4 C7 44 42 0050 mov word ptr [si+42h],50h
-273F:58E9 C6 44 44 02 mov byte ptr [si+44h],2
+273F:58E4 C7 44 42 0050 mov word ptr [si+HS_V42], 80
+273F:58E9 C6 44 44 02 mov byte ptr [si+HS_V44], 2
273F:58ED loc_ret_1138: ; xref 273F:58D8, 58DD, 58E2
273F:58ED C3 retn
@@ -14321,7 +14333,7 @@
npc_unknown_4 proc near
273F:5E04 8B DD mov bx,bp
273F:5E06 8B 47 02 mov ax, [bx+2]
-273F:5E09 89 44 42 mov [si+42h],ax
+273F:5E09 89 44 42 mov [si+HS_V42], ax
273F:5E0C C6 44 44 03 mov byte ptr [si+HS_V44], 3
273F:5E10 83 C5 04 add bp, 4
273F:5E13 E9 F76B jmp character_walking_end
@@ -14808,8 +14820,8 @@
273F:615F 74 16 jz loc_ret_1237 ; Jump if zero
273F:6161 loc_1236: ; xref 273F:6149
273F:6161 8B 44 37 mov ax, [si+HS_TALK_COUNTDOWN]
-273F:6164 89 44 42 mov [si+42h], ax
-273F:6167 C6 44 44 05 mov byte ptr [si+44h],5
+273F:6164 89 44 42 mov [si+HS_V42], ax
+273F:6167 C6 44 44 05 mov byte ptr [si+HS_V44], 5
273F:616B A1 BA19 mov ax, use_hotspot_id
273F:616E 89 44 3E mov [si+3Eh], ax
273F:6171 A1 BA1B mov ax, active_hotspot_id
@@ -14837,7 +14849,7 @@
273F:618A 75 16 jnz loc_1240 ; Jump if not zero
273F:618C F6 06 CE20 0C test data_1152, 0Ch
273F:6191 74 0A jz loc_1239 ; Jump if zero
-273F:6193 83 44 42 01 add word ptr [si+42h],1
+273F:6193 83 44 42 01 add word ptr [si+HS_V42], 1
273F:6197 80 2E CE20 04 sub data_1152, 4
273F:619C C3 retn
273F:619D loc_1239: ; xref 273F:6191
@@ -20682,11 +20694,11 @@
273F:89AB 80 4C 03 80 or byte ptr [si+3],80h
273F:89AF C3 retn
273F:89B0 loc_1705: ; xref 273F:5BD7
-273F:89B0 E8 006E call sub_218
+273F:89B0 E8 006E call talk_init
273F:89B3 8B 1E BA21 mov bx,ds:data_480e ; (273F:BA21=0)
273F:89B7 D1 E3 shl bx,1 ; Shift w/zeros fill
273F:89B9 8B 9F 5050 mov bx,word ptr ds:[5050h][bx] ; (273F:5050=34E8h)
-273F:89BD E8 00C8 call sub_220 ; (8A88)
+273F:89BD E8 00C8 call talk_init2
273F:89C0 E9 CBCA jmp character_walking_end_2
;\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF
@@ -20732,9 +20744,9 @@
273F:8A10 74 03 jz loc_1710 ; Jump if zero
273F:8A12 E9 CB6C jmp character_walking_end
273F:8A15 loc_1710: ; xref 273F:8A0B, 8A10
-273F:8A15 E8 0009 call sub_218 ; (8A21)
+273F:8A15 E8 0009 call talk_init
273F:8A18 E8 0026 call talk_get_record
-273F:8A1B E8 006A call sub_220 ; (8A88)
+273F:8A1B E8 006A call talk_init2
273F:8A1E E9 CB6C jmp character_walking_end_2
talk_to_proc endp
@@ -20747,10 +20759,10 @@
; talk tick handler
;\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC
-273F:8A21 sub_218 proc near
-273F:8A21 8B 45 1B mov ax,[di+ANIM_HOTSPOT_ID]
-273F:8A24 89 47 2F mov [bx+2Fh],ax
-273F:8A27 C7 47 2B 0000 mov word ptr [bx+2Bh],0
+ talk_init proc near
+273F:8A21 8B 45 1B mov ax, [di+ANIM_HOTSPOT_ID]
+273F:8A24 89 47 2F mov [bx+HS_USE_HOTSPOT_ID], ax
+273F:8A27 C7 47 2B 0000 mov [bx+HS_V2B], 0
273F:8A2C 89 1E CF06 mov talk_to_hotspot_ptr, bx
273F:8A30 55 push bp
273F:8A31 E8 B932 call character_update_movement
@@ -20759,7 +20771,7 @@
273F:8A38 89 45 11 mov [di+ANIM_TICK_PROC], ax
273F:8A3B C6 06 9834 03 mov cursor_state, CURSORSTATE_TALK
273F:8A40 C3 retn
- sub_218 endp
+ talk_init endp
;\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF
@@ -20814,7 +20826,7 @@
; Called from: 273F:89BD, 8A1B
;\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC
-273F:8A88 sub_220 proc near
+ talk_init2 proc near
273F:8A88 8B 07 mov ax, [bx]
273F:8A8A A3 CF02 mov talk_response_ptr, ax
273F:8A8D 83 C3 02 add bx, 2
@@ -20828,7 +20840,7 @@
273F:8AAB A3 9841 mov data_436, ax
273F:8AAE C6 06 9849 01 mov pathfind_data, 1
273F:8AB3 C3 retn
- sub_220 endp
+ talk_init2 endp
;\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF\xDF
; SUBROUTINE
@@ -20898,7 +20910,7 @@
273F:8B2E loc_1724: ; xref 273F:8B24
273F:8B2E 8B 1E CF06 mov bx, talk_to_hotspot_ptr
-273F:8B32 C7 47 42 0000 mov word ptr [bx+42h], 0
+273F:8B32 C7 47 42 0000 mov word ptr [bx+HS_V42], 0
273F:8B37 80 3E CF09 01 cmp talk_line_num, 1 ; Only one option?
273F:8B3C 75 05 jne loc_1725 ; If not, then jump
@@ -21123,8 +21135,8 @@
273F:8CE6 C6 06 6D33 00 mov data_900, 0
273F:8CEB C7 06 6D31 0000 mov data_6D31, 0
273F:8CF1 8B 1E CF06 mov bx, talk_to_hotspot_ptr
-273F:8CF5 C7 47 2F 0000 mov word ptr [bx+2Fh],0
-273F:8CFA C7 47 42 0018 mov word ptr [bx+42h],18h
+273F:8CF5 C7 47 2F 0000 mov word ptr [bx+HS_USE_HOTSPOT_ID], 0
+273F:8CFA C7 47 42 0018 mov word ptr [bx+HS_V42], 18h
273F:8CFF C6 06 9834 00 mov cursor_state, CURSORSTATE_NONE
273F:8D04 EB C3 jmp short loc_1749 ; (8CC9)
@@ -21141,8 +21153,8 @@
273F:8D0E 75 16 jnz loc_1752 ; Jump if not zero
273F:8D10 56 push si
273F:8D11 8B 36 CF06 mov si, talk_to_hotspot_ptr
-273F:8D15 8B 5C 0B mov bx,[si+0Bh]
-273F:8D18 8B 4F 1B mov cx,[bx+1Bh]
+273F:8D15 8B 5C 0B mov bx, [si+HS_ANIM_OFFSET]
+273F:8D18 8B 4F 1B mov cx, [bx+1Bh]
273F:8D1B BB 002B mov bx,2Bh
273F:8D1E 33 D2 xor dx,dx ; Zero register
273F:8D20 E8 D698 call display_message_dialog_4
@@ -25993,7 +26005,11 @@
31E4:2EA6 27 28 40 2C 27 29 db 27h, 28h, 40h, 2Ch, 27h, 29h
31E4:2EAC 80 2D 27 00 00 db 80h, 2Dh, 27h, 00h, 00h
-31E4:2EB1 02 room_rsc_table db 02h
+; This table contains a set of rectangles indicating the main walkable areas
+; of each room, and is used by the NPC code to choose random destinations for
+; characters after bumping into each other
+
+31E4:2EB1 02 room_bounds_table db 02h
31E4:2EB2 01 51 01 1D 01 38 db 01h, 51h, 01h, 1Dh, 01h, 38h
31E4:2EB8 01 B2 00 6A 01 F9 db 01h,0B2h, 00h, 6Ah, 01h,0F9h
31E4:2EBE 00 12 01 C1 00 63 db 00h, 12h, 01h,0C1h, 00h, 63h
@@ -26011,7 +26027,7 @@
31E4:2F06 01 38 01 9C 00 9F db 01h, 38h, 01h, 9Ch, 00h, 9Fh
31E4:2F0C 01 0D 01 38 01 9C db 01h, 0Dh, 01h, 38h, 01h, 9Ch
31E4:2F12 00 9F 01 F7 db 00h, 9Fh, 01h,0F7h
-31E4:2F16 00 data_769 db 0 ; Data table (indexed access)
+31E4:2F16 00 db 0
31E4:2F17 38 01 CF 00 70 01 db 38h, 01h,0CFh, 00h, 70h, 01h
31E4:2F1D EF 00 28 01 9C 00 db 0EFh, 00h, 28h, 01h, 9Ch, 00h
31E4:2F23 9F 01 0E 01 38 01 db 9Fh, 01h, 0Eh, 01h, 38h, 01h
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list