mirror of https://github.com/nmlgc/ReC98.git
55 lines
1.5 KiB
NASM
55 lines
1.5 KiB
NASM
|
; Laser modes
|
||
|
; -----------
|
||
|
LM_NONE = 0
|
||
|
LM_SHOOTOUT = 1
|
||
|
LM_FIXED_WAIT_TO_GROW = 2
|
||
|
LM_FIXED_GROW = 3
|
||
|
; Fixed laser has reached its target width and will now actually kill the
|
||
|
; player on contact
|
||
|
LM_FIXED_ACTIVE = 4
|
||
|
LM_FIXED_SHRINK = 5
|
||
|
LM_FIXED_SHRINK_AND_WAIT_TO_GROW = 6
|
||
|
LM_SHOOTOUT_DECAY = 7
|
||
|
; -----------
|
||
|
|
||
|
; [origin], the two distances, and [shootout_speed] are stored in units of
|
||
|
; 1/16th of a pixel.
|
||
|
; TODO: Remove the anti-collision LASER_ prefixes once this gets decompiled.
|
||
|
laser_t struc
|
||
|
mode db ?
|
||
|
|
||
|
LASER_color db ?
|
||
|
origin Point <?>
|
||
|
|
||
|
; Start and end point on the infinite [angle]° line starting at [origin]
|
||
|
; that make up the actually rendered (and damaging) laser.
|
||
|
starts_at_distance dw ?
|
||
|
ends_at_distance dw ?
|
||
|
|
||
|
angle db ?
|
||
|
LASER_width db ?
|
||
|
; 1/16th pixel units per frame.
|
||
|
shootout_speed dw ?
|
||
|
LASER_age dw ?
|
||
|
|
||
|
; [age] at which a fixed laser should transition from LM_FIXED_WAIT_TO_GROW
|
||
|
; to LM_FIXED_GROW.
|
||
|
grow_at_age label word
|
||
|
; [age] at which a shoot-out laser should stop growing and start moving
|
||
|
; along the infinite [angle]° line.
|
||
|
moveout_at_age label word
|
||
|
dw ?
|
||
|
|
||
|
; [age] at which a fixed laser should transition from LM_FIXED_ACTIVE to
|
||
|
; LM_FIXED_SHRINK.
|
||
|
shrink_at_age dw ?
|
||
|
; [width] at which a fixed laser should transition from LM_FIXED_GROW to
|
||
|
; LM_FIXED_ACTIVE.
|
||
|
grow_to_width db ?
|
||
|
db 3 dup(?)
|
||
|
laser_t ends
|
||
|
|
||
|
LASER_COUNT = 32
|
||
|
_lasers laser_t LASER_COUNT dup(<?>)
|
||
|
_laser_template laser_t <?>
|