mirror of https://github.com/nmlgc/ReC98.git
69 lines
1.3 KiB
NASM
69 lines
1.3 KiB
NASM
public BULLET_TURN_X
|
|
bullet_turn_x proc near
|
|
|
|
@@bullet = word ptr 4
|
|
|
|
push bp
|
|
mov bp, sp
|
|
push si
|
|
mov si, [bp+@@bullet]
|
|
inc [si+bullet_t.turn_count]
|
|
mov al, 80h
|
|
sub al, [si+bullet_t.BULLET_angle]
|
|
mov [si+bullet_t.BULLET_angle], al
|
|
mov al, [si+bullet_t.turn_count]
|
|
cmp al, _bullet_turn_count_max
|
|
jb short @@still_allowed_to_turn
|
|
mov [si+bullet_t.move_state], BMS_REGULAR
|
|
|
|
@@still_allowed_to_turn:
|
|
lea ax, [si+bullet_t.pos.velocity]
|
|
push ax
|
|
push word ptr [si+bullet_t.BULLET_angle]
|
|
mov al, [si+bullet_t.speed_cur]
|
|
mov ah, 0
|
|
push ax
|
|
call vector2_near
|
|
if GAME eq 5
|
|
call bullet_update_patnum pascal, si
|
|
endif
|
|
pop si
|
|
pop bp
|
|
retn 2
|
|
bullet_turn_x endp
|
|
|
|
|
|
public BULLET_TURN_Y
|
|
bullet_turn_y proc near
|
|
|
|
@@bullet = word ptr 4
|
|
|
|
push bp
|
|
mov bp, sp
|
|
push si
|
|
mov si, [bp+@@bullet]
|
|
inc [si+bullet_t.turn_count]
|
|
mov al, [si+bullet_t.BULLET_angle]
|
|
neg al
|
|
mov [si+bullet_t.BULLET_angle], al
|
|
mov al, [si+bullet_t.turn_count]
|
|
cmp al, _bullet_turn_count_max
|
|
jb short @@still_allowed_to_turn
|
|
mov [si+bullet_t.move_state], BMS_REGULAR
|
|
|
|
@@still_allowed_to_turn:
|
|
lea ax, [si+bullet_t.pos.velocity]
|
|
push ax
|
|
push word ptr [si+bullet_t.BULLET_angle]
|
|
mov al, [si+bullet_t.speed_cur]
|
|
mov ah, 0
|
|
push ax
|
|
call vector2_near
|
|
if GAME eq 5
|
|
call bullet_update_patnum pascal, si
|
|
endif
|
|
pop si
|
|
pop bp
|
|
retn 2
|
|
bullet_turn_y endp
|