mirror of https://github.com/nmlgc/ReC98.git
[Reverse-engineering] [th04/th05] Adding new player shots
Funded by -Tom-.
This commit is contained in:
parent
9a2c6f72ba
commit
b9f3d86e44
|
@ -0,0 +1,28 @@
|
|||
; Searches and returns the next free shot slot, or NULL if there are no more
|
||||
; free ones.
|
||||
|
||||
; shot_t* shots_add(void);
|
||||
public _shots_add
|
||||
_shots_add proc near
|
||||
xor ax, ax
|
||||
|
||||
@@loop:
|
||||
cmp _shot_last_id, SHOT_COUNT
|
||||
jnb short @@ret
|
||||
mov bx, _shot_ptr
|
||||
add _shot_ptr, size shot_t
|
||||
cmp [bx+shot_t.flag], 0
|
||||
jz short @@found
|
||||
inc _shot_last_id
|
||||
jmp short @@loop
|
||||
|
||||
@@found:
|
||||
mov word ptr [bx+shot_t.flag], 1
|
||||
mov eax, player_pos.cur
|
||||
mov dword ptr [bx+shot_t.pos.cur], eax
|
||||
mov dword ptr [bx+shot_t.pos.velocity], (-12 shl 4) shl 16 or (0)
|
||||
mov ax, bx
|
||||
|
||||
@@ret:
|
||||
retn
|
||||
_shots_add endp
|
|
@ -0,0 +1,6 @@
|
|||
public _shot_ptr, _shot_last_id
|
||||
; Points to the next free entry in [shots].
|
||||
_shot_ptr dw ?
|
||||
; Index of the last valid entry in [shots].
|
||||
_shot_last_id db ?
|
||||
db ?
|
184
th04_main.asm
184
th04_main.asm
|
@ -5593,8 +5593,8 @@ shot_marisa_l0 proc near
|
|||
mov bp, sp
|
||||
push si
|
||||
mov _shot_ptr, offset _shots
|
||||
mov byte_256A6, 0
|
||||
call sub_11D96
|
||||
mov _shot_last_id, 0
|
||||
call _shots_add
|
||||
mov si, ax
|
||||
or ax, ax
|
||||
jz short loc_DA70
|
||||
|
@ -5614,8 +5614,8 @@ shot_marisa_l1 proc near
|
|||
mov bp, sp
|
||||
push si
|
||||
mov _shot_ptr, offset _shots
|
||||
mov byte_256A6, 0
|
||||
call sub_11D96
|
||||
mov _shot_last_id, 0
|
||||
call _shots_add
|
||||
mov si, ax
|
||||
or ax, ax
|
||||
jz short loc_DAA3
|
||||
|
@ -5671,8 +5671,8 @@ loc_DADA:
|
|||
cmp byte_22C1A, 4
|
||||
ja short loc_DB39
|
||||
mov _shot_ptr, offset _shots
|
||||
mov byte_256A6, 0
|
||||
call sub_11D96
|
||||
mov _shot_last_id, 0
|
||||
call _shots_add
|
||||
mov si, ax
|
||||
or ax, ax
|
||||
jz short loc_DB17
|
||||
|
@ -5684,7 +5684,7 @@ loc_DADA:
|
|||
mov [si+2], ax
|
||||
|
||||
loc_DB17:
|
||||
call sub_11D96
|
||||
call _shots_add
|
||||
mov si, ax
|
||||
or ax, ax
|
||||
jz short loc_DB45
|
||||
|
@ -5718,7 +5718,7 @@ shot_marisa_a_l2 proc near
|
|||
push 0
|
||||
call sub_DAA6
|
||||
mov _shot_ptr, offset _shots
|
||||
mov byte_256A6, 0
|
||||
mov _shot_last_id, 0
|
||||
jmp short loc_DB7C
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
|
@ -5736,7 +5736,7 @@ loc_DB62:
|
|||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_DB7C:
|
||||
call sub_11D96
|
||||
call _shots_add
|
||||
mov si, ax
|
||||
or ax, ax
|
||||
jnz short loc_DB62
|
||||
|
@ -5759,7 +5759,7 @@ shot_marisa_a_l3 proc near
|
|||
push 0
|
||||
call sub_DAA6
|
||||
mov _shot_ptr, offset _shots
|
||||
mov byte_256A6, 0
|
||||
mov _shot_last_id, 0
|
||||
jmp short loc_DBC1
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
|
@ -5780,7 +5780,7 @@ loc_DBB5:
|
|||
jle short loc_DBCA
|
||||
|
||||
loc_DBC1:
|
||||
call sub_11D96
|
||||
call _shots_add
|
||||
mov si, ax
|
||||
or ax, ax
|
||||
jnz short loc_DBA4
|
||||
|
@ -5804,7 +5804,7 @@ shot_marisa_a_l4 proc near
|
|||
push 1
|
||||
call sub_DAA6
|
||||
mov _shot_ptr, offset _shots
|
||||
mov byte_256A6, 0
|
||||
mov _shot_last_id, 0
|
||||
jmp short loc_DC07
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
|
@ -5825,7 +5825,7 @@ loc_DBFB:
|
|||
jle short loc_DC10
|
||||
|
||||
loc_DC07:
|
||||
call sub_11D96
|
||||
call _shots_add
|
||||
mov si, ax
|
||||
or ax, ax
|
||||
jnz short loc_DBEA
|
||||
|
@ -5849,7 +5849,7 @@ shot_marisa_a_l5 proc near
|
|||
call sub_DAA6
|
||||
mov byte ptr [bp-1], 0B8h
|
||||
mov _shot_ptr, offset _shots
|
||||
mov byte_256A6, 0
|
||||
mov _shot_last_id, 0
|
||||
jmp short loc_DC53
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
|
@ -5867,7 +5867,7 @@ loc_DC35:
|
|||
jle short loc_DC5C
|
||||
|
||||
loc_DC53:
|
||||
call sub_11D96
|
||||
call _shots_add
|
||||
mov si, ax
|
||||
or ax, ax
|
||||
jnz short loc_DC35
|
||||
|
@ -5891,7 +5891,7 @@ shot_marisa_a_l6 proc near
|
|||
call sub_DAA6
|
||||
mov byte ptr [bp-1], 0B8h
|
||||
mov _shot_ptr, offset _shots
|
||||
mov byte_256A6, 0
|
||||
mov _shot_last_id, 0
|
||||
jmp short loc_DCA0
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
|
@ -5909,7 +5909,7 @@ loc_DC82:
|
|||
jle short loc_DCA9
|
||||
|
||||
loc_DCA0:
|
||||
call sub_11D96
|
||||
call _shots_add
|
||||
mov si, ax
|
||||
or ax, ax
|
||||
jnz short loc_DC82
|
||||
|
@ -5933,7 +5933,7 @@ shot_marisa_a_l7 proc near
|
|||
call sub_DAA6
|
||||
mov byte ptr [bp-1], 0B8h
|
||||
mov _shot_ptr, offset _shots
|
||||
mov byte_256A6, 0
|
||||
mov _shot_last_id, 0
|
||||
jmp short loc_DCED
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
|
@ -5951,7 +5951,7 @@ loc_DCCF:
|
|||
jle short loc_DCF6
|
||||
|
||||
loc_DCED:
|
||||
call sub_11D96
|
||||
call _shots_add
|
||||
mov si, ax
|
||||
or ax, ax
|
||||
jnz short loc_DCCF
|
||||
|
@ -5975,7 +5975,7 @@ shot_marisa_a_l8 proc near
|
|||
call sub_DAA6
|
||||
mov byte ptr [bp-1], 0B4h
|
||||
mov _shot_ptr, offset _shots
|
||||
mov byte_256A6, 0
|
||||
mov _shot_last_id, 0
|
||||
jmp short loc_DD3A
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
|
@ -5993,7 +5993,7 @@ loc_DD1C:
|
|||
jle short loc_DD43
|
||||
|
||||
loc_DD3A:
|
||||
call sub_11D96
|
||||
call _shots_add
|
||||
mov si, ax
|
||||
or ax, ax
|
||||
jnz short loc_DD1C
|
||||
|
@ -6017,7 +6017,7 @@ shot_marisa_a_l9 proc near
|
|||
call sub_DAA6
|
||||
mov byte ptr [bp-1], 0B4h
|
||||
mov _shot_ptr, offset _shots
|
||||
mov byte_256A6, 0
|
||||
mov _shot_last_id, 0
|
||||
jmp short loc_DD87
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
|
@ -6035,7 +6035,7 @@ loc_DD69:
|
|||
jle short loc_DD90
|
||||
|
||||
loc_DD87:
|
||||
call sub_11D96
|
||||
call _shots_add
|
||||
mov si, ax
|
||||
or ax, ax
|
||||
jnz short loc_DD69
|
||||
|
@ -6056,7 +6056,7 @@ shot_marisa_b_l2 proc near
|
|||
push di
|
||||
mov di, 3
|
||||
mov _shot_ptr, offset _shots
|
||||
mov byte_256A6, 0
|
||||
mov _shot_last_id, 0
|
||||
jmp short loc_DDEA
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
|
@ -6095,7 +6095,7 @@ loc_DDE7:
|
|||
jle short loc_DDF3
|
||||
|
||||
loc_DDEA:
|
||||
call sub_11D96
|
||||
call _shots_add
|
||||
mov si, ax
|
||||
or ax, ax
|
||||
jnz short loc_DDA9
|
||||
|
@ -6116,7 +6116,7 @@ shot_marisa_b_l3 proc near
|
|||
push di
|
||||
mov di, 4
|
||||
mov _shot_ptr, offset _shots
|
||||
mov byte_256A6, 0
|
||||
mov _shot_last_id, 0
|
||||
jmp short loc_DE4F
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
|
@ -6158,7 +6158,7 @@ loc_DE4C:
|
|||
jle short loc_DE58
|
||||
|
||||
loc_DE4F:
|
||||
call sub_11D96
|
||||
call _shots_add
|
||||
mov si, ax
|
||||
or ax, ax
|
||||
jnz short loc_DE0C
|
||||
|
@ -6179,7 +6179,7 @@ shot_marisa_b_l4 proc near
|
|||
push di
|
||||
mov di, 4
|
||||
mov _shot_ptr, offset _shots
|
||||
mov byte_256A6, 0
|
||||
mov _shot_last_id, 0
|
||||
jmp short loc_DEC9
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
|
@ -6232,7 +6232,7 @@ loc_DEC6:
|
|||
jle short loc_DED2
|
||||
|
||||
loc_DEC9:
|
||||
call sub_11D96
|
||||
call _shots_add
|
||||
mov si, ax
|
||||
or ax, ax
|
||||
jnz short loc_DE71
|
||||
|
@ -6253,7 +6253,7 @@ shot_marisa_b_l5 proc near
|
|||
mov di, 5
|
||||
mov byte ptr [bp-1], 0B8h
|
||||
mov _shot_ptr, offset _shots
|
||||
mov byte_256A6, 0
|
||||
mov _shot_last_id, 0
|
||||
jmp short loc_DF49
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
|
@ -6303,7 +6303,7 @@ loc_DF46:
|
|||
jle short loc_DF52
|
||||
|
||||
loc_DF49:
|
||||
call sub_11D96
|
||||
call _shots_add
|
||||
mov si, ax
|
||||
or ax, ax
|
||||
jnz short loc_DEF0
|
||||
|
@ -6324,7 +6324,7 @@ shot_marisa_b_l6 proc near
|
|||
mov di, 7
|
||||
mov byte ptr [bp-3], 0B8h
|
||||
mov _shot_ptr, offset _shots
|
||||
mov byte_256A6, 0
|
||||
mov _shot_last_id, 0
|
||||
jmp short loc_DFD4
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
|
@ -6381,7 +6381,7 @@ loc_DFD1:
|
|||
jle short loc_DFDD
|
||||
|
||||
loc_DFD4:
|
||||
call sub_11D96
|
||||
call _shots_add
|
||||
mov si, ax
|
||||
or ax, ax
|
||||
jnz short loc_DF70
|
||||
|
@ -6414,7 +6414,7 @@ var_3 = word ptr -3
|
|||
mov di, 7
|
||||
mov byte ptr [bp+var_3], 0B6h
|
||||
mov _shot_ptr, offset _shots
|
||||
mov byte_256A6, 0
|
||||
mov _shot_last_id, 0
|
||||
jmp short loc_E068
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
|
@ -6471,7 +6471,7 @@ loc_E065:
|
|||
jle short loc_E071
|
||||
|
||||
loc_E068:
|
||||
call sub_11D96
|
||||
call _shots_add
|
||||
mov si, ax
|
||||
or ax, ax
|
||||
jnz short loc_E004
|
||||
|
@ -6504,7 +6504,7 @@ var_3 = word ptr -3
|
|||
mov di, 8
|
||||
mov byte ptr [bp+var_3], 0B6h
|
||||
mov _shot_ptr, offset _shots
|
||||
mov byte_256A6, 0
|
||||
mov _shot_last_id, 0
|
||||
jmp loc_E118
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
|
@ -6575,7 +6575,7 @@ loc_E115:
|
|||
jle short loc_E123
|
||||
|
||||
loc_E118:
|
||||
call sub_11D96
|
||||
call _shots_add
|
||||
mov si, ax
|
||||
or ax, ax
|
||||
jnz loc_E099
|
||||
|
@ -6608,7 +6608,7 @@ var_3 = word ptr -3
|
|||
mov di, 0Ah
|
||||
mov byte ptr [bp+var_3], 0B6h
|
||||
mov _shot_ptr, offset _shots
|
||||
mov byte_256A6, 0
|
||||
mov _shot_last_id, 0
|
||||
jmp loc_E1D8
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
|
@ -6689,7 +6689,7 @@ loc_E1D5:
|
|||
jle short loc_E1E3
|
||||
|
||||
loc_E1D8:
|
||||
call sub_11D96
|
||||
call _shots_add
|
||||
mov si, ax
|
||||
or ax, ax
|
||||
jnz loc_E14B
|
||||
|
@ -8917,8 +8917,8 @@ shot_reimu_l0 proc near
|
|||
mov bp, sp
|
||||
push si
|
||||
mov _shot_ptr, offset _shots
|
||||
mov byte_256A6, 0
|
||||
call sub_11D96
|
||||
mov _shot_last_id, 0
|
||||
call _shots_add
|
||||
mov si, ax
|
||||
or ax, ax
|
||||
jz short loc_F38D
|
||||
|
@ -8938,8 +8938,8 @@ shot_reimu_l1 proc near
|
|||
mov bp, sp
|
||||
push si
|
||||
mov _shot_ptr, offset _shots
|
||||
mov byte_256A6, 0
|
||||
call sub_11D96
|
||||
mov _shot_last_id, 0
|
||||
call _shots_add
|
||||
mov si, ax
|
||||
or ax, ax
|
||||
jz short loc_F3C0
|
||||
|
@ -8984,7 +8984,7 @@ loc_F3D7:
|
|||
loc_F3E9:
|
||||
inc byte_256A2
|
||||
mov _shot_ptr, offset _shots
|
||||
mov byte_256A6, 0
|
||||
mov _shot_last_id, 0
|
||||
jmp short loc_F446
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
|
@ -9031,7 +9031,7 @@ loc_F43F:
|
|||
jle short loc_F44F
|
||||
|
||||
loc_F446:
|
||||
call sub_11D96
|
||||
call _shots_add
|
||||
mov si, ax
|
||||
or ax, ax
|
||||
jnz short loc_F3FA
|
||||
|
@ -9068,7 +9068,7 @@ loc_F467:
|
|||
loc_F479:
|
||||
inc byte_256A2
|
||||
mov _shot_ptr, offset _shots
|
||||
mov byte_256A6, 0
|
||||
mov _shot_last_id, 0
|
||||
jmp short loc_F4DC
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
|
@ -9119,7 +9119,7 @@ loc_F4D9:
|
|||
jle short loc_F4E5
|
||||
|
||||
loc_F4DC:
|
||||
call sub_11D96
|
||||
call _shots_add
|
||||
mov si, ax
|
||||
or ax, ax
|
||||
jnz short loc_F48A
|
||||
|
@ -9156,7 +9156,7 @@ loc_F510:
|
|||
inc byte_256A2
|
||||
mov byte ptr [bp-1], 0BAh
|
||||
mov _shot_ptr, offset _shots
|
||||
mov byte_256A6, 0
|
||||
mov _shot_last_id, 0
|
||||
jmp short loc_F578
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
|
@ -9204,7 +9204,7 @@ loc_F575:
|
|||
jle short loc_F581
|
||||
|
||||
loc_F578:
|
||||
call sub_11D96
|
||||
call _shots_add
|
||||
mov si, ax
|
||||
or ax, ax
|
||||
jnz short loc_F525
|
||||
|
@ -9241,7 +9241,7 @@ loc_F5AC:
|
|||
inc byte_256A2
|
||||
mov byte ptr [bp-1], 0B8h
|
||||
mov _shot_ptr, offset _shots
|
||||
mov byte_256A6, 0
|
||||
mov _shot_last_id, 0
|
||||
jmp short loc_F614
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
|
@ -9289,7 +9289,7 @@ loc_F611:
|
|||
jle short loc_F61D
|
||||
|
||||
loc_F614:
|
||||
call sub_11D96
|
||||
call _shots_add
|
||||
mov si, ax
|
||||
or ax, ax
|
||||
jnz short loc_F5C1
|
||||
|
@ -9326,7 +9326,7 @@ loc_F648:
|
|||
inc byte_256A2
|
||||
mov byte ptr [bp-1], 0B8h
|
||||
mov _shot_ptr, offset _shots
|
||||
mov byte_256A6, 0
|
||||
mov _shot_last_id, 0
|
||||
jmp short loc_F6B0
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
|
@ -9374,7 +9374,7 @@ loc_F6AD:
|
|||
jle short loc_F6B9
|
||||
|
||||
loc_F6B0:
|
||||
call sub_11D96
|
||||
call _shots_add
|
||||
mov si, ax
|
||||
or ax, ax
|
||||
jnz short loc_F65D
|
||||
|
@ -9416,7 +9416,7 @@ loc_F6E4:
|
|||
inc byte_256A2
|
||||
mov byte ptr [bp+var_2+1], 0BAh
|
||||
mov _shot_ptr, offset _shots
|
||||
mov byte_256A6, 0
|
||||
mov _shot_last_id, 0
|
||||
jmp loc_F780
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
|
@ -9490,7 +9490,7 @@ loc_F77D:
|
|||
jle short loc_F78B
|
||||
|
||||
loc_F780:
|
||||
call sub_11D96
|
||||
call _shots_add
|
||||
mov si, ax
|
||||
or ax, ax
|
||||
jnz loc_F6FA
|
||||
|
@ -9519,7 +9519,7 @@ var_2 = word ptr -2
|
|||
inc byte_256A2
|
||||
mov byte ptr [bp+var_2+1], 0BAh
|
||||
mov _shot_ptr, offset _shots
|
||||
mov byte_256A6, 0
|
||||
mov _shot_last_id, 0
|
||||
jmp loc_F833
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
|
@ -9592,7 +9592,7 @@ loc_F830:
|
|||
jle short loc_F83E
|
||||
|
||||
loc_F833:
|
||||
call sub_11D96
|
||||
call _shots_add
|
||||
mov si, ax
|
||||
or ax, ax
|
||||
jnz loc_F7B1
|
||||
|
@ -9636,7 +9636,7 @@ loc_F86C:
|
|||
inc byte_256A2
|
||||
mov byte ptr [bp-1], 0BAh
|
||||
mov _shot_ptr, offset _shots
|
||||
mov byte_256A6, 0
|
||||
mov _shot_last_id, 0
|
||||
jmp loc_F948
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
|
@ -9744,7 +9744,7 @@ loc_F945:
|
|||
jle short loc_F953
|
||||
|
||||
loc_F948:
|
||||
call sub_11D96
|
||||
call _shots_add
|
||||
mov si, ax
|
||||
or ax, ax
|
||||
jnz loc_F882
|
||||
|
@ -9786,7 +9786,7 @@ loc_F96C:
|
|||
loc_F97E:
|
||||
inc byte_256A2
|
||||
mov _shot_ptr, offset _shots
|
||||
mov byte_256A6, 0
|
||||
mov _shot_last_id, 0
|
||||
jmp short loc_F9D9
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
|
@ -9829,7 +9829,7 @@ loc_F9D2:
|
|||
jle short loc_F9E2
|
||||
|
||||
loc_F9D9:
|
||||
call sub_11D96
|
||||
call _shots_add
|
||||
mov si, ax
|
||||
or ax, ax
|
||||
jnz short loc_F98F
|
||||
|
@ -9865,7 +9865,7 @@ loc_F9FB:
|
|||
loc_FA0D:
|
||||
inc byte_256A2
|
||||
mov _shot_ptr, offset _shots
|
||||
mov byte_256A6, 0
|
||||
mov _shot_last_id, 0
|
||||
jmp short loc_FA70
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
|
@ -9913,7 +9913,7 @@ loc_FA63:
|
|||
jle short loc_FA79
|
||||
|
||||
loc_FA70:
|
||||
call sub_11D96
|
||||
call _shots_add
|
||||
mov si, ax
|
||||
or ax, ax
|
||||
jnz short loc_FA1E
|
||||
|
@ -9950,7 +9950,7 @@ loc_FAA4:
|
|||
inc byte_256A2
|
||||
mov byte ptr [bp-3], 0BAh
|
||||
mov _shot_ptr, offset _shots
|
||||
mov byte_256A6, 0
|
||||
mov _shot_last_id, 0
|
||||
jmp short loc_FB15
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
|
@ -9997,7 +9997,7 @@ loc_FB0C:
|
|||
jle short loc_FB1E
|
||||
|
||||
loc_FB15:
|
||||
call sub_11D96
|
||||
call _shots_add
|
||||
mov si, ax
|
||||
or ax, ax
|
||||
jnz short loc_FAB9
|
||||
|
@ -10034,7 +10034,7 @@ loc_FB49:
|
|||
inc byte_256A2
|
||||
mov byte ptr [bp-3], 0BAh
|
||||
mov _shot_ptr, offset _shots
|
||||
mov byte_256A6, 0
|
||||
mov _shot_last_id, 0
|
||||
jmp short loc_FBD9
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
|
@ -10105,7 +10105,7 @@ loc_FBD0:
|
|||
jle short loc_FBE4
|
||||
|
||||
loc_FBD9:
|
||||
call sub_11D96
|
||||
call _shots_add
|
||||
mov si, ax
|
||||
or ax, ax
|
||||
jnz loc_FB5E
|
||||
|
@ -10147,7 +10147,7 @@ loc_FC17:
|
|||
inc byte_256A2
|
||||
mov byte ptr [bp-3], 0BAh
|
||||
mov _shot_ptr, offset _shots
|
||||
mov byte_256A6, 0
|
||||
mov _shot_last_id, 0
|
||||
jmp short loc_FCA7
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
|
@ -10218,7 +10218,7 @@ loc_FC9E:
|
|||
jle short loc_FCB2
|
||||
|
||||
loc_FCA7:
|
||||
call sub_11D96
|
||||
call _shots_add
|
||||
mov si, ax
|
||||
or ax, ax
|
||||
jnz loc_FC2C
|
||||
|
@ -10260,7 +10260,7 @@ loc_FCE5:
|
|||
inc byte_256A2
|
||||
mov byte ptr [bp-3], 0BAh
|
||||
mov _shot_ptr, offset _shots
|
||||
mov byte_256A6, 0
|
||||
mov _shot_last_id, 0
|
||||
jmp short loc_FD75
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
|
@ -10331,7 +10331,7 @@ loc_FD6C:
|
|||
jle short loc_FD80
|
||||
|
||||
loc_FD75:
|
||||
call sub_11D96
|
||||
call _shots_add
|
||||
mov si, ax
|
||||
or ax, ax
|
||||
jnz loc_FCFA
|
||||
|
@ -10373,7 +10373,7 @@ loc_FDB3:
|
|||
inc byte_256A2
|
||||
mov byte ptr [bp-3], 0B8h
|
||||
mov _shot_ptr, offset _shots
|
||||
mov byte_256A6, 0
|
||||
mov _shot_last_id, 0
|
||||
jmp short loc_FE43
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
|
@ -10444,7 +10444,7 @@ loc_FE3A:
|
|||
jle short loc_FE4E
|
||||
|
||||
loc_FE43:
|
||||
call sub_11D96
|
||||
call _shots_add
|
||||
mov si, ax
|
||||
or ax, ax
|
||||
jnz loc_FDC8
|
||||
|
@ -10486,7 +10486,7 @@ loc_FE81:
|
|||
inc byte_256A2
|
||||
mov byte ptr [bp-3], 0B8h
|
||||
mov _shot_ptr, offset _shots
|
||||
mov byte_256A6, 0
|
||||
mov _shot_last_id, 0
|
||||
jmp loc_FF19
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
|
@ -10562,7 +10562,7 @@ loc_FF10:
|
|||
jle short loc_FF24
|
||||
|
||||
loc_FF19:
|
||||
call sub_11D96
|
||||
call _shots_add
|
||||
mov si, ax
|
||||
or ax, ax
|
||||
jnz loc_FE97
|
||||
|
@ -14252,35 +14252,7 @@ loc_11D92:
|
|||
retn
|
||||
sub_11C1A endp
|
||||
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
||||
|
||||
sub_11D96 proc near
|
||||
xor ax, ax
|
||||
|
||||
loc_11D98:
|
||||
cmp byte_256A6, SHOT_COUNT
|
||||
jnb short locret_11DC9
|
||||
mov bx, _shot_ptr
|
||||
add _shot_ptr, size shot_t
|
||||
cmp [bx+shot_t.flag], 0
|
||||
jz short loc_11DB3
|
||||
inc byte_256A6
|
||||
jmp short loc_11D98
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_11DB3:
|
||||
mov word ptr [bx], 1
|
||||
mov eax, player_pos.cur
|
||||
mov dword ptr [bx+shot_t.pos.cur], eax
|
||||
mov dword ptr [bx+shot_t.pos.velocity], (-12 shl 4) shl 16 or (0)
|
||||
mov ax, bx
|
||||
|
||||
locret_11DC9:
|
||||
retn
|
||||
sub_11D96 endp
|
||||
|
||||
include th04/shots_add.asm
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
||||
|
@ -43899,9 +43871,7 @@ dword_2569A dd ?
|
|||
dword_2569E dd ?
|
||||
byte_256A2 db ?
|
||||
db ?
|
||||
_shot_ptr dw ?
|
||||
byte_256A6 db ?
|
||||
db ?
|
||||
include th04/shots_add[bss].asm
|
||||
byte_256A8 db ?
|
||||
byte_256A9 db ?
|
||||
fp_256AA dw ?
|
||||
|
|
|
@ -0,0 +1,28 @@
|
|||
; Searches and returns the next free shot slot, or NULL if there are no more
|
||||
; free ones.
|
||||
|
||||
; shot_t* shots_add(void)
|
||||
public _shots_add
|
||||
_shots_add proc near
|
||||
xor ax, ax
|
||||
mov bx, _shot_ptr
|
||||
|
||||
@@loop:
|
||||
cmp bx, offset _shots_end
|
||||
jnb short @@ret
|
||||
add bx, size shot_t
|
||||
cmp [bx+shot_t.flag], 0
|
||||
jnz short @@loop
|
||||
mov word ptr [bx+shot_t.flag], 1
|
||||
mov eax, player_pos.cur
|
||||
mov dword ptr [bx+shot_t.pos.cur], eax
|
||||
mov dword ptr [bx+shot_t.pos.velocity], (-12 shl 4) shl 16 or (0)
|
||||
mov word ptr [bx+shot_t.patnum_base], 20
|
||||
mov ax, bx
|
||||
add bx, size shot_t
|
||||
mov _shot_ptr, bx
|
||||
|
||||
@@ret:
|
||||
retn
|
||||
_shots_add endp
|
||||
even
|
104
th05_main.asm
104
th05_main.asm
|
@ -6862,35 +6862,7 @@ sub_E480 proc far
|
|||
retf
|
||||
sub_E480 endp
|
||||
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
||||
|
||||
sub_E4A6 proc near
|
||||
xor ax, ax
|
||||
mov bx, _shot_ptr
|
||||
|
||||
loc_E4AC:
|
||||
cmp bx, offset _shots_end
|
||||
jnb short locret_E4DC
|
||||
add bx, size shot_t
|
||||
cmp [bx+shot_t.flag], 0
|
||||
jnz short loc_E4AC
|
||||
mov word ptr [bx+shot_t.flag], 1
|
||||
mov eax, player_pos.cur
|
||||
mov dword ptr [bx+shot_t.pos.cur], eax
|
||||
mov dword ptr [bx+shot_t.pos.velocity], (-12 shl 4) shl 16 or (0)
|
||||
mov word ptr [bx+shot_t.patnum_base], 20
|
||||
mov ax, bx
|
||||
add bx, size shot_t
|
||||
mov _shot_ptr, bx
|
||||
|
||||
locret_E4DC:
|
||||
retn
|
||||
sub_E4A6 endp
|
||||
|
||||
; ---------------------------------------------------------------------------
|
||||
nop
|
||||
include th05/shots_add.asm
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
||||
|
@ -14821,7 +14793,7 @@ loc_12951:
|
|||
|
||||
loc_12955:
|
||||
mov _shot_ptr, offset _shots
|
||||
mov byte_2D064, 0
|
||||
mov _shot_last_id, 0
|
||||
mov al, [bp+var_1]
|
||||
leave
|
||||
retn
|
||||
|
@ -14857,7 +14829,7 @@ shot_l0 proc near
|
|||
call sub_12914
|
||||
test al, 1
|
||||
jz short loc_1299E
|
||||
call sub_E4A6
|
||||
call _shots_add
|
||||
mov si, ax
|
||||
or ax, ax
|
||||
jz short loc_1299E
|
||||
|
@ -14881,7 +14853,7 @@ shot_l1 proc near
|
|||
call sub_12914
|
||||
test al, 1
|
||||
jz short loc_129C8
|
||||
call sub_E4A6
|
||||
call _shots_add
|
||||
mov si, ax
|
||||
or ax, ax
|
||||
jz short loc_129C8
|
||||
|
@ -14963,7 +14935,7 @@ loc_12A34:
|
|||
jbe short loc_12A49
|
||||
|
||||
loc_12A40:
|
||||
call sub_E4A6
|
||||
call _shots_add
|
||||
mov si, ax
|
||||
or ax, ax
|
||||
jnz short loc_129E9
|
||||
|
@ -15040,7 +15012,7 @@ loc_12AB8:
|
|||
jbe short loc_12ACD
|
||||
|
||||
loc_12AC4:
|
||||
call sub_E4A6
|
||||
call _shots_add
|
||||
mov si, ax
|
||||
or ax, ax
|
||||
jnz short loc_12A6A
|
||||
|
@ -15115,7 +15087,7 @@ loc_12B32:
|
|||
jbe short loc_12B51
|
||||
|
||||
loc_12B48:
|
||||
call sub_E4A6
|
||||
call _shots_add
|
||||
mov si, ax
|
||||
or ax, ax
|
||||
jnz short loc_12AEE
|
||||
|
@ -15201,7 +15173,7 @@ loc_12BCF:
|
|||
jbe short loc_12BEE
|
||||
|
||||
loc_12BE5:
|
||||
call sub_E4A6
|
||||
call _shots_add
|
||||
mov si, ax
|
||||
or ax, ax
|
||||
jnz short loc_12B75
|
||||
|
@ -15287,7 +15259,7 @@ loc_12C6C:
|
|||
jbe short loc_12C8B
|
||||
|
||||
loc_12C82:
|
||||
call sub_E4A6
|
||||
call _shots_add
|
||||
mov si, ax
|
||||
or ax, ax
|
||||
jnz short loc_12C12
|
||||
|
@ -15373,7 +15345,7 @@ loc_12D09:
|
|||
jbe short loc_12D28
|
||||
|
||||
loc_12D1F:
|
||||
call sub_E4A6
|
||||
call _shots_add
|
||||
mov si, ax
|
||||
or ax, ax
|
||||
jnz short loc_12CAF
|
||||
|
@ -15448,7 +15420,7 @@ loc_12D8A:
|
|||
jbe short loc_12DA9
|
||||
|
||||
loc_12DA0:
|
||||
call sub_E4A6
|
||||
call _shots_add
|
||||
mov si, ax
|
||||
or ax, ax
|
||||
jnz short loc_12D3D
|
||||
|
@ -15544,7 +15516,7 @@ loc_12E3E:
|
|||
jbe short loc_12E5F
|
||||
|
||||
loc_12E54:
|
||||
call sub_E4A6
|
||||
call _shots_add
|
||||
mov si, ax
|
||||
or ax, ax
|
||||
jnz loc_12DCE
|
||||
|
@ -15619,7 +15591,7 @@ loc_12ECC:
|
|||
jbe short loc_12EE1
|
||||
|
||||
loc_12ED8:
|
||||
call sub_E4A6
|
||||
call _shots_add
|
||||
mov si, ax
|
||||
or ax, ax
|
||||
jnz short loc_12E80
|
||||
|
@ -15721,7 +15693,7 @@ loc_12F7D:
|
|||
jbe short loc_12F94
|
||||
|
||||
loc_12F89:
|
||||
call sub_E4A6
|
||||
call _shots_add
|
||||
mov si, ax
|
||||
or ax, ax
|
||||
jnz loc_12F07
|
||||
|
@ -15846,7 +15818,7 @@ loc_13077:
|
|||
jbe short loc_1308E
|
||||
|
||||
loc_13083:
|
||||
call sub_E4A6
|
||||
call _shots_add
|
||||
mov si, ax
|
||||
or ax, ax
|
||||
jnz loc_12FC2
|
||||
|
@ -15975,7 +15947,7 @@ loc_1317E:
|
|||
jbe short loc_13195
|
||||
|
||||
loc_1318A:
|
||||
call sub_E4A6
|
||||
call _shots_add
|
||||
mov si, ax
|
||||
or ax, ax
|
||||
jnz loc_130C0
|
||||
|
@ -16112,7 +16084,7 @@ loc_13287:
|
|||
jbe short loc_1329E
|
||||
|
||||
loc_13293:
|
||||
call sub_E4A6
|
||||
call _shots_add
|
||||
mov si, ax
|
||||
or ax, ax
|
||||
jnz loc_131CA
|
||||
|
@ -16268,7 +16240,7 @@ loc_133C1:
|
|||
jbe short loc_133D8
|
||||
|
||||
loc_133CD:
|
||||
call sub_E4A6
|
||||
call _shots_add
|
||||
mov si, ax
|
||||
or ax, ax
|
||||
jnz loc_132D8
|
||||
|
@ -16426,7 +16398,7 @@ loc_134FF:
|
|||
jbe short loc_13516
|
||||
|
||||
loc_1350B:
|
||||
call sub_E4A6
|
||||
call _shots_add
|
||||
mov si, ax
|
||||
or ax, ax
|
||||
jnz loc_13416
|
||||
|
@ -16612,7 +16584,7 @@ loc_13680:
|
|||
jbe short loc_13697
|
||||
|
||||
loc_1368C:
|
||||
call sub_E4A6
|
||||
call _shots_add
|
||||
mov si, ax
|
||||
or ax, ax
|
||||
jnz loc_13554
|
||||
|
@ -16698,7 +16670,7 @@ loc_1370B:
|
|||
jbe short loc_13720
|
||||
|
||||
loc_13717:
|
||||
call sub_E4A6
|
||||
call _shots_add
|
||||
mov si, ax
|
||||
or ax, ax
|
||||
jnz short loc_136D1
|
||||
|
@ -16773,7 +16745,7 @@ loc_13783:
|
|||
jbe short loc_13798
|
||||
|
||||
loc_1378F:
|
||||
call sub_E4A6
|
||||
call _shots_add
|
||||
mov si, ax
|
||||
or ax, ax
|
||||
jnz short loc_13741
|
||||
|
@ -16862,7 +16834,7 @@ loc_13813:
|
|||
jbe short loc_13828
|
||||
|
||||
loc_1381F:
|
||||
call sub_E4A6
|
||||
call _shots_add
|
||||
mov si, ax
|
||||
or ax, ax
|
||||
jnz short loc_137B9
|
||||
|
@ -16956,7 +16928,7 @@ loc_138AB:
|
|||
jbe short loc_138C0
|
||||
|
||||
loc_138B7:
|
||||
call sub_E4A6
|
||||
call _shots_add
|
||||
mov si, ax
|
||||
or ax, ax
|
||||
jnz short loc_13856
|
||||
|
@ -17058,7 +17030,7 @@ loc_13957:
|
|||
jbe short loc_1396C
|
||||
|
||||
loc_13963:
|
||||
call sub_E4A6
|
||||
call _shots_add
|
||||
mov si, ax
|
||||
or ax, ax
|
||||
jnz short loc_138EF
|
||||
|
@ -17163,7 +17135,7 @@ loc_13A08:
|
|||
jbe short loc_13A1F
|
||||
|
||||
loc_13A14:
|
||||
call sub_E4A6
|
||||
call _shots_add
|
||||
mov si, ax
|
||||
or ax, ax
|
||||
jnz loc_1399B
|
||||
|
@ -17274,7 +17246,7 @@ loc_13AD0:
|
|||
jbe short loc_13AE7
|
||||
|
||||
loc_13ADC:
|
||||
call sub_E4A6
|
||||
call _shots_add
|
||||
mov si, ax
|
||||
or ax, ax
|
||||
jnz loc_13A54
|
||||
|
@ -17416,7 +17388,7 @@ loc_13BD1:
|
|||
jbe short loc_13BE8
|
||||
|
||||
loc_13BDD:
|
||||
call sub_E4A6
|
||||
call _shots_add
|
||||
mov si, ax
|
||||
or ax, ax
|
||||
jnz loc_13B19
|
||||
|
@ -17500,7 +17472,7 @@ loc_13C55:
|
|||
jbe short loc_13C74
|
||||
|
||||
loc_13C6B:
|
||||
call sub_E4A6
|
||||
call _shots_add
|
||||
mov si, ax
|
||||
or ax, ax
|
||||
jnz short loc_13C1D
|
||||
|
@ -17585,7 +17557,7 @@ loc_13CEA:
|
|||
jbe short loc_13CFF
|
||||
|
||||
loc_13CF6:
|
||||
call sub_E4A6
|
||||
call _shots_add
|
||||
mov si, ax
|
||||
or ax, ax
|
||||
jnz short loc_13C96
|
||||
|
@ -17675,7 +17647,7 @@ loc_13D7E:
|
|||
jbe short loc_13D9D
|
||||
|
||||
loc_13D94:
|
||||
call sub_E4A6
|
||||
call _shots_add
|
||||
mov si, ax
|
||||
or ax, ax
|
||||
jnz short loc_13D23
|
||||
|
@ -17780,7 +17752,7 @@ loc_13E32:
|
|||
jbe short loc_13E53
|
||||
|
||||
loc_13E48:
|
||||
call sub_E4A6
|
||||
call _shots_add
|
||||
mov si, ax
|
||||
or ax, ax
|
||||
jnz loc_13DC2
|
||||
|
@ -17911,7 +17883,7 @@ loc_13F13:
|
|||
jbe short loc_13F34
|
||||
|
||||
loc_13F29:
|
||||
call sub_E4A6
|
||||
call _shots_add
|
||||
mov si, ax
|
||||
or ax, ax
|
||||
jnz loc_13E81
|
||||
|
@ -18058,7 +18030,7 @@ loc_14012:
|
|||
jbe short loc_14033
|
||||
|
||||
loc_14028:
|
||||
call sub_E4A6
|
||||
call _shots_add
|
||||
mov si, ax
|
||||
or ax, ax
|
||||
jnz loc_13F6A
|
||||
|
@ -18209,7 +18181,7 @@ loc_14110:
|
|||
jbe short loc_14131
|
||||
|
||||
loc_14126:
|
||||
call sub_E4A6
|
||||
call _shots_add
|
||||
mov si, ax
|
||||
or ax, ax
|
||||
jnz loc_1406C
|
||||
|
@ -18374,7 +18346,7 @@ loc_14227:
|
|||
jbe short loc_14248
|
||||
|
||||
loc_1423D:
|
||||
call sub_E4A6
|
||||
call _shots_add
|
||||
mov si, ax
|
||||
or ax, ax
|
||||
jnz loc_1416D
|
||||
|
@ -49184,9 +49156,7 @@ word_2D05C dw ?
|
|||
word_2D05E dw ?
|
||||
byte_2D060 db ?
|
||||
db ?
|
||||
_shot_ptr dw ?
|
||||
byte_2D064 db ?
|
||||
db ?
|
||||
include th04/shots_add[bss].asm
|
||||
include th04/boss_funcs[bss].asm
|
||||
byte_2D076 db ?
|
||||
byte_2D077 db ?
|
||||
|
|
Loading…
Reference in New Issue