mirror of https://github.com/nmlgc/ReC98.git
57 lines
999 B
NASM
57 lines
999 B
NASM
|
public SHOT_CYCLE_INIT
|
||
|
shot_cycle_init proc near
|
||
|
|
||
|
@@cycle_flag = byte ptr [bp-1]
|
||
|
|
||
|
enter 2, 0
|
||
|
mov @@cycle_flag, 0
|
||
|
mov al, _shot_time
|
||
|
mov ah, 0
|
||
|
sub ax, 3
|
||
|
mov bx, ax
|
||
|
cmp bx, 15
|
||
|
ja short @@cycle____
|
||
|
add bx, bx
|
||
|
jmp word ptr cs:@@time_to_cycle[bx]
|
||
|
|
||
|
@@cycle6321:
|
||
|
mov @@cycle_flag, SC_6X or SC_3X or SC_2X or SC_1X
|
||
|
jmp short @@snd
|
||
|
|
||
|
@@cycle6_2_:
|
||
|
mov @@cycle_flag, SC_6X or SC_2X
|
||
|
jmp short @@in_a_cycle
|
||
|
|
||
|
@@cycle63__:
|
||
|
mov @@cycle_flag, SC_6X or SC_3X
|
||
|
|
||
|
@@snd:
|
||
|
call snd_se_play pascal, 1
|
||
|
jmp short @@in_a_cycle
|
||
|
|
||
|
@@cycle6___:
|
||
|
mov @@cycle_flag, SC_6X
|
||
|
jmp short @@in_a_cycle
|
||
|
|
||
|
@@cycle____:
|
||
|
mov al, 0
|
||
|
leave
|
||
|
retn
|
||
|
|
||
|
@@in_a_cycle:
|
||
|
mov _shot_ptr, offset _shots
|
||
|
mov _shot_last_id, 0
|
||
|
mov al, @@cycle_flag
|
||
|
leave
|
||
|
retn
|
||
|
|
||
|
db 0
|
||
|
@@time_to_cycle label word
|
||
|
dw @@cycle6___, @@cycle____, @@cycle____
|
||
|
dw @@cycle63__, @@cycle____, @@cycle____
|
||
|
dw @@cycle6_2_, @@cycle____, @@cycle____
|
||
|
dw @@cycle63__, @@cycle____, @@cycle____
|
||
|
dw @@cycle6___, @@cycle____, @@cycle____
|
||
|
dw @@cycle6321
|
||
|
shot_cycle_init endp
|