12 #ifndef _COLLIDESTUFF_H
13 #define _COLLIDESTUFF_H
42 #define COLLISION_FRICTION_FACTOR 0.0f //Default value if not set in ships.tbl
43 #define COLLISION_ROTATION_FACTOR 0.2f //Default value if not set in ships.tbl
44 #define MIN_LANDING_SOUND_VEL 2.0f
45 #define LANDING_POS_OFFSET 0.05f
63 #define COLLISION_OF(a,b) (((a)<<8)|(b))
65 #define COLLISION_TYPE_NONE 0
66 #define COLLISION_TYPE_OLD 1 // checks all n objects with each other each frame
67 #define COLLISION_TYPE_NEW 2 // keeps track of collision pairs. throws out collisions that won't happen.
71 #define SUBMODEL_NO_ROT_HIT 0
72 #define SUBMODEL_ROT_HIT 1
77 void obj_add_pair(
object *
A,
object *
B,
int check_time = -1,
int add_to_end = 0 );
void set_hit_struct_info(collision_info_struct *hit, mc_info *mc, int submodel_rot_hit)
void obj_remove_collider(int obj_index)
void obj_check_all_collisions()
int collide_debris_ship(obj_pair *pair)
void obj_add_collider(int obj_index)
int(* check_collision)(obj_pair *pair)
int collide_ship_ship(obj_pair *pair)
void obj_reset_colliders()
int reject_due_collision_groups(object *A, object *B)
void init_collision_info_struct(collision_info_struct *cis)
void obj_find_overlap_colliders(SCP_vector< int > *overlap_list_out, SCP_vector< int > *list, int axis, bool collide)
int get_ship_quadrant_from_global(vec3d *global_pos, object *objp)
void obj_collide_retime_cached_pairs(int checkdly=25)
int collide_asteroid_weapon(obj_pair *pair)
vec3d heavy_collision_cm_pos
void collide_ship_ship_do_sound(vec3d *world_hit_pos, object *A, object *B, int player_involved)
typedef int(SCP_EXT_CALLCONV *SCPDLL_PFVERSION)(SCPDLL_Version *)
void obj_quicksort_colliders(SCP_vector< int > *list, int left, int right, int axis)
int collide_asteroid_ship(obj_pair *pair)
int pp_collide(vec3d *curpos, vec3d *goalpos, object *goalobjp, float radius)
int collide_weapon_weapon(obj_pair *pair)
void obj_all_collisions_retime(int checkdly=25)
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_ship_weapon(obj_pair *pair)
struct collision_info_struct collision_info_struct
void collide_ship_ship_sounds_init()
int collide_subdivide(vec3d *p0, vec3d *p1, float prad, vec3d *q0, vec3d *q1, float qrad)
int collide_predict_large_ship(object *objp, float distance)
int weapon_will_never_hit(object *weapon, object *other, obj_pair *current_pair)
void obj_collide_pair(object *A, object *B)
int collide_remove_weapons(void)
void obj_sort_and_collide()
void obj_add_pair(object *A, object *B, int check_time=-1, int add_to_end=0)
float obj_get_collider_endpoint(int obj_num, int axis, bool min)
vec3d light_collision_cm_pos