FS2_Open
Open source remastering of the Freespace 2 engine
objcollide.h File Reference

Go to the source code of this file.

Classes

struct  collision_info_struct
 
struct  obj_pair
 

Macros

#define COLLISION_FRICTION_FACTOR   0.0f
 
#define COLLISION_ROTATION_FACTOR   0.2f
 
#define MIN_LANDING_SOUND_VEL   2.0f
 
#define LANDING_POS_OFFSET   0.05f
 
#define COLLISION_OF(a, b)   (((a)<<8)|(b))
 
#define COLLISION_TYPE_NONE   0
 
#define COLLISION_TYPE_OLD   1
 
#define COLLISION_TYPE_NEW   2
 
#define SUBMODEL_NO_ROT_HIT   0
 
#define SUBMODEL_ROT_HIT   1
 

Typedefs

typedef struct collision_info_struct collision_info_struct
 
typedef struct obj_pair obj_pair
 

Functions

void set_hit_struct_info (collision_info_struct *hit, mc_info *mc, int submodel_rot_hit)
 
void obj_pairs_close ()
 
void obj_reset_pairs ()
 
void obj_add_pair (object *A, object *B, int check_time=-1, int add_to_end=0)
 
void obj_add_collider (int obj_index)
 
void obj_remove_collider (int obj_index)
 
void obj_reset_colliders ()
 
void obj_check_all_collisions ()
 
void obj_sort_and_collide ()
 
void obj_quicksort_colliders (SCP_vector< int > *list, int left, int right, int axis)
 
void obj_find_overlap_colliders (SCP_vector< int > *overlap_list_out, SCP_vector< int > *list, int axis, bool collide)
 
float obj_get_collider_endpoint (int obj_num, int axis, bool min)
 
void obj_collide_pair (object *A, object *B)
 
void obj_all_collisions_retime (int checkdly=25)
 
void obj_collide_retime_cached_pairs (int checkdly=25)
 
int weapon_will_never_hit (object *weapon, object *other, obj_pair *current_pair)
 
int collide_subdivide (vec3d *p0, vec3d *p1, float prad, vec3d *q0, vec3d *q1, float qrad)
 
int collide_weapon_weapon (obj_pair *pair)
 
int collide_ship_weapon (obj_pair *pair)
 
void ship_weapon_do_hit_stuff (object *pship_obj, object *weapon_obj, vec3d *world_hitpos, vec3d *hitpos, int quadrant_num, int submodel_num=-1)
 
int collide_debris_weapon (obj_pair *pair)
 
int collide_debris_ship (obj_pair *pair)
 
int collide_asteroid_ship (obj_pair *pair)
 
int collide_asteroid_weapon (obj_pair *pair)
 
int collide_ship_ship (obj_pair *pair)
 
int pp_collide (vec3d *curpos, vec3d *goalpos, object *goalobjp, float radius)
 
int collide_predict_large_ship (object *objp, float distance)
 
int collide_remove_weapons (void)
 
void collide_ship_ship_do_sound (vec3d *world_hit_pos, object *A, object *B, int player_involved)
 
void collide_ship_ship_sounds_init ()
 
int get_ship_quadrant_from_global (vec3d *global_pos, object *objp)
 
int reject_due_collision_groups (object *A, object *B)
 
void init_collision_info_struct (collision_info_struct *cis)
 

Variables

int collision_type
 

Macro Definition Documentation

#define COLLISION_FRICTION_FACTOR   0.0f

Definition at line 42 of file objcollide.h.

#define COLLISION_OF (   a,
  b 
)    (((a)<<8)|(b))

Definition at line 63 of file objcollide.h.

#define COLLISION_ROTATION_FACTOR   0.2f

Definition at line 43 of file objcollide.h.

#define COLLISION_TYPE_NEW   2

Definition at line 67 of file objcollide.h.

#define COLLISION_TYPE_NONE   0

Definition at line 65 of file objcollide.h.

#define COLLISION_TYPE_OLD   1

Definition at line 66 of file objcollide.h.

#define LANDING_POS_OFFSET   0.05f

Definition at line 45 of file objcollide.h.

#define MIN_LANDING_SOUND_VEL   2.0f

Definition at line 44 of file objcollide.h.

#define SUBMODEL_NO_ROT_HIT   0

Definition at line 71 of file objcollide.h.

#define SUBMODEL_ROT_HIT   1

Definition at line 72 of file objcollide.h.

Typedef Documentation

typedef struct obj_pair obj_pair

Function Documentation

int collide_asteroid_ship ( obj_pair pair)

Checks asteroid-ship collisions.

Parameters
pairobj_pair pointer to the two objects. pair->a is asteroid and pair->b is ship.
Returns
1 if all future collisions between these can be ignored

Definition at line 183 of file collidedebrisship.cpp.

int collide_asteroid_weapon ( obj_pair pair)

Checks debris-weapon collisions.

Parameters
pairobj_pair pointer to the two objects. pair->a is debris and pair->b is weapon.
Returns
1 if all future collisions between these can be ignored

Definition at line 92 of file collidedebrisweapon.cpp.

int collide_debris_ship ( obj_pair pair)

Checks debris-ship collisions.

Parameters
pairobj_pair pointer to the two objects. pair->a is debris and pair->b is ship.
Returns
1 if all future collisions between these can be ignored

Definition at line 31 of file collidedebrisship.cpp.

int collide_debris_weapon ( obj_pair pair)

Checks debris-weapon collisions.

Parameters
pairobj_pair pointer to the two objects. pair->a is debris and pair->b is weapon.
Returns
1 if all future collisions between these can be ignored

Definition at line 40 of file collidedebrisweapon.cpp.

int collide_predict_large_ship ( object objp,
float  distance 
)

Definition at line 967 of file objcollide.cpp.

int collide_remove_weapons ( void  )

Definition at line 1039 of file objcollide.cpp.

int collide_ship_ship ( obj_pair pair)

Checks ship-ship collisions.

Returns
1 if all future collisions between these can be ignored because pair->a or pair->b aren't ships
Otherwise always returns 0, since two ships can always collide unless one (1) dies or (2) warps out.

Definition at line 1064 of file collideshipship.cpp.

void collide_ship_ship_do_sound ( vec3d world_hit_pos,
object A,
object B,
int  player_involved 
)

Determine what sound to play when two ships collide

Definition at line 958 of file collideshipship.cpp.

void collide_ship_ship_sounds_init ( )

Definition at line 947 of file collideshipship.cpp.

int collide_ship_weapon ( obj_pair pair)

Checks ship-weapon collisions.

Parameters
pairobj_pair pointer to the two objects. pair->a is ship and pair->b is weapon.
Returns
1 if all future collisions between these can be ignored

Definition at line 469 of file collideshipweapon.cpp.

int collide_subdivide ( vec3d p0,
vec3d p1,
float  prad,
vec3d q0,
vec3d q1,
float  qrad 
)

Definition at line 628 of file objcollide.cpp.

int collide_weapon_weapon ( obj_pair pair)

Checks weapon-weapon collisions.

Parameters
pairobj_pair pointer to the two objects. pair->a and pair->b are weapons.
Returns
1 if all future collisions between these can be ignored

Definition at line 27 of file collideweaponweapon.cpp.

int get_ship_quadrant_from_global ( vec3d global_pos,
object objp 
)

Given a global point and an object, get the quadrant number the point belongs to.

Definition at line 935 of file collideshipship.cpp.

void init_collision_info_struct ( collision_info_struct cis)

Definition at line 1157 of file objcollide.cpp.

void obj_add_collider ( int  obj_index)

Definition at line 1163 of file objcollide.cpp.

void obj_add_pair ( object A,
object B,
int  check_time = -1,
int  add_to_end = 0 
)

Definition at line 174 of file objcollide.cpp.

void obj_all_collisions_retime ( int  checkdly = 25)

Definition at line 80 of file objcollide.cpp.

void obj_check_all_collisions ( )

Definition at line 530 of file objcollide.cpp.

void obj_collide_pair ( object A,
object B 
)

Definition at line 1378 of file objcollide.cpp.

void obj_collide_retime_cached_pairs ( int  checkdly = 25)

Definition at line 1209 of file objcollide.cpp.

void obj_find_overlap_colliders ( SCP_vector< int > *  overlap_list_out,
SCP_vector< int > *  list,
int  axis,
bool  collide 
)

Definition at line 1242 of file objcollide.cpp.

float obj_get_collider_endpoint ( int  obj_num,
int  axis,
bool  min 
)

Definition at line 1295 of file objcollide.cpp.

void obj_pairs_close ( )

Definition at line 70 of file objcollide.cpp.

void obj_quicksort_colliders ( SCP_vector< int > *  list,
int  left,
int  right,
int  axis 
)

Definition at line 1342 of file objcollide.cpp.

void obj_remove_collider ( int  obj_index)

Definition at line 1184 of file objcollide.cpp.

void obj_reset_colliders ( )

Definition at line 1203 of file objcollide.cpp.

void obj_reset_pairs ( )

Definition at line 98 of file objcollide.cpp.

void obj_sort_and_collide ( )

Definition at line 1218 of file objcollide.cpp.

int pp_collide ( vec3d curpos,
vec3d goalpos,
object goalobjp,
float  radius 
)

Definition at line 926 of file objcollide.cpp.

int reject_due_collision_groups ( object A,
object B 
)

Definition at line 165 of file objcollide.cpp.

void set_hit_struct_info ( collision_info_struct hit,
mc_info mc,
int  submodel_rot_hit 
)

Definition at line 1144 of file objcollide.cpp.

void ship_weapon_do_hit_stuff ( object pship_obj,
object weapon_obj,
vec3d world_hitpos,
vec3d hitpos,
int  quadrant_num,
int  submodel_num = -1 
)
int weapon_will_never_hit ( object weapon,
object other,
obj_pair current_pair 
)

Definition at line 730 of file objcollide.cpp.

Variable Documentation

int collision_type