diff --git a/th04/shots_add.asm b/th04/shots_add.asm new file mode 100644 index 00000000..9572c9d6 --- /dev/null +++ b/th04/shots_add.asm @@ -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 diff --git a/th04/shots_add[bss].asm b/th04/shots_add[bss].asm new file mode 100644 index 00000000..52616af7 --- /dev/null +++ b/th04/shots_add[bss].asm @@ -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 ? diff --git a/th04_main.asm b/th04_main.asm index a8f8ec94..190c78a6 100644 --- a/th04_main.asm +++ b/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 ? diff --git a/th05/shots_add.asm b/th05/shots_add.asm new file mode 100644 index 00000000..698da16d --- /dev/null +++ b/th05/shots_add.asm @@ -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 diff --git a/th05_main.asm b/th05_main.asm index 0c583410..fafc2512 100644 --- a/th05_main.asm +++ b/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 ?