mirror of https://github.com/nmlgc/ReC98.git
49 lines
1.2 KiB
NASM
49 lines
1.2 KiB
NASM
|
public BULLET_UPDATE_PATNUM
|
||
|
bullet_update_patnum proc near
|
||
|
|
||
|
@@patnum_base = byte ptr -1
|
||
|
@@bullet = word ptr 4
|
||
|
|
||
|
push bp
|
||
|
mov bp, sp
|
||
|
sub sp, 2
|
||
|
push si
|
||
|
mov si, [bp+@@bullet]
|
||
|
cmp [si+bullet_t.BULLET_patnum], PAT_BULLET16_D_BLUE
|
||
|
jl short @@ret
|
||
|
cmp [si+bullet_t.BULLET_patnum], PAT_BULLET16_D_GREEN
|
||
|
jge short @@d_green?
|
||
|
mov [bp+@@patnum_base], PAT_BULLET16_D_BLUE
|
||
|
jmp short @@set
|
||
|
; ---------------------------------------------------------------------------
|
||
|
|
||
|
@@d_green?:
|
||
|
cmp [si+bullet_t.BULLET_patnum], PAT_BULLET16_V_RED
|
||
|
jge short @@v_red?
|
||
|
mov [bp+@@patnum_base], PAT_BULLET16_D_GREEN
|
||
|
jmp short @@set
|
||
|
; ---------------------------------------------------------------------------
|
||
|
|
||
|
@@v_red?:
|
||
|
cmp [si+bullet_t.BULLET_patnum], PAT_BULLET16_V_BLUE
|
||
|
jge short @@v_blue?
|
||
|
mov [bp+@@patnum_base], PAT_BULLET16_V_RED
|
||
|
jmp short @@set
|
||
|
; ---------------------------------------------------------------------------
|
||
|
|
||
|
@@v_blue?:
|
||
|
mov [bp+@@patnum_base], PAT_BULLET16_V_BLUE
|
||
|
|
||
|
@@set:
|
||
|
mov al, [bp+@@patnum_base]
|
||
|
mov ah, 0
|
||
|
call bullet_patnum_for_angle pascal, ax, word ptr [si+bullet_t.BULLET_angle]
|
||
|
mov ah, 0
|
||
|
mov [si+bullet_t.BULLET_patnum], ax
|
||
|
|
||
|
@@ret:
|
||
|
pop si
|
||
|
leave
|
||
|
retn 2
|
||
|
bullet_update_patnum endp
|