12 #ifndef __FS2_BEAM_WEAPON_HEADER_FILE
13 #define __FS2_BEAM_WEAPON_HEADER_FILE
32 #define BEAM_TYPE_A 0 // unidirectional beam
33 #define BEAM_TYPE_B 1 // "slash" in one direction
34 #define BEAM_TYPE_C 2 // targeting lasers (only lasts one frame)
35 #define BEAM_TYPE_D 3 // similar to the type A beams, but takes multiple shots and "chases" fighters around
36 #define BEAM_TYPE_E 4 // stupid beam. like type A, only it doesn't aim. it just shoots directly out of the turret
39 #define MAX_BEAM_SHOTS 5
50 #define BFIF_IS_FIGHTER_BEAM (1<<0)
51 #define BFIF_FORCE_FIRING (1<<1)
52 #define BFIF_TARGETING_COORDS (1<<2)
53 #define BFIF_FLOATING_BEAM (1<<3)
93 #define MAX_FRAME_COLLISIONS 10
106 #define BF_SAFETY (1<<0) // if this is set, don't collide or render for this frame. lifetime still increases though
107 #define BF_SHRINK (1<<1) // if this is set, the beam is in the warmdown phase
108 #define BF_FORCE_FIRING (1<<2)
109 #define BF_IS_FIGHTER_BEAM (1<<3)
110 #define BF_TARGETING_COORDS (1<<4)
111 #define BF_FLOATING_BEAM (1<<5)
int beam_get_num_collisions(int objnum)
void beam_move_all_post()
void beam_calc_facing_pts(vec3d *top, vec3d *bot, vec3d *fvec, vec3d *pos, float w, float z_add)
beam_info * beam_info_override
struct beam_info beam_info
int fighter_beam_loop_sound
ship_subsys * target_subsys
int beam_collide_ship(obj_pair *pair)
float shot_aim[MAX_BEAM_SHOTS]
int beam_fire(beam_fire_info *fire_info)
vec3d targeting_laser_offset
GLboolean GLboolean GLboolean GLboolean a
beam_collision r_collisions[MAX_FRAME_COLLISIONS]
#define MAX_BEAM_SECTIONS
float beam_get_ship_damage(beam *b, object *objp)
beam_info * beam_info_override
struct beam_collision beam_collision
vec3d targeting_laser_offset
int beam_get_weapon_info_index(object *bm)
int beam_get_parent(object *bm)
vec3d targeting_laser_offset
ship_subsys * target_subsys
GLboolean GLboolean GLboolean b
struct beam_fire_info beam_fire_info
int beam_get_collision(int objnum, int num, int *collision_objnum, mc_info **cinfo)
float beam_section_frame[MAX_BEAM_SECTIONS]
int beam_collide_early_out(object *a, object *b)
GLubyte GLubyte GLubyte GLubyte w
ship_subsys * target_subsys
int beam_collide_asteroid(obj_pair *pair)
#define MAX_FRAME_COLLISIONS
int beam_collide_missile(obj_pair *pair)
beam_collision f_collisions[MAX_FRAME_COLLISIONS]
void beam_unpause_sounds()
int beam_collide_debris(obj_pair *pair)
struct fighter_beam_fire_info fighter_beam_fire_info
GLdouble GLdouble GLdouble GLdouble top
int beam_fire_targeting(fighter_beam_fire_info *fire_info)