main/collide.c File Reference

#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include "rle.h"
#include "inferno.h"
#include "game.h"
#include "gr.h"
#include "bm.h"
#include "mono.h"
#include "3d.h"
#include "segment.h"
#include "texmap.h"
#include "laser.h"
#include "key.h"
#include "gameseg.h"
#include "object.h"
#include "physics.h"
#include "slew.h"
#include "wall.h"
#include "vclip.h"
#include "polyobj.h"
#include "fireball.h"
#include "error.h"
#include "ai.h"
#include "hostage.h"
#include "fuelcen.h"
#include "sounds.h"
#include "robot.h"
#include "weapon.h"
#include "player.h"
#include "gauges.h"
#include "powerup.h"
#include "network.h"
#include "newmenu.h"
#include "scores.h"
#include "effects.h"
#include "textures.h"
#include "multi.h"
#include "cntrlcen.h"
#include "newdemo.h"
#include "endlevel.h"
#include "multibot.h"
#include "piggy.h"
#include "text.h"
#include "maths.h"
#include "multipow.h"
#include "vlcnfire.h"
#include "collide.h"

Defines

#define STANDARD_EXPL_DELAY   (f1_0/4)
#define DAMAGE_SCALE   128
#define DAMAGE_THRESHOLD   (F1_0/3)
#define WALL_LOUDNESS_SCALE   (20)
#define VOLATILE_WALL_EXPL_STRENGTH   i2f(10)
#define VOLATILE_WALL_IMPACT_SIZE   i2f(3)
#define VOLATILE_WALL_DAMAGE_FORCE   i2f(5)
#define VOLATILE_WALL_DAMAGE_RADIUS   i2f(30)
#define COLLISION_OF(a, b)   (((a)<<8) + (b))
#define DO_COLLISION(type1, type2, collision_function)   case COLLISION_OF( (type1), (type2) ): (collision_function)( (A), (B), collision_point ); break; case COLLISION_OF( (type2), (type1) ): (collision_function)( (B), (A), collision_point ); break;
#define DO_SAME_COLLISION(type1, type2, collision_function)   case COLLISION_OF( (type1), (type1) ): (collision_function)( (A), (B), collision_point ); break;
#define NO_COLLISION(type1, type2, collision_function)   case COLLISION_OF( (type1), (type2) ): case COLLISION_OF( (type2), (type1) ): break;
#define NO_SAME_COLLISION(type1, type2, collision_function)   case COLLISION_OF( (type1), (type1) ): break;
#define IGNORE_COLLISION(type1, type2, collision_function)
#define ERROR_COLLISION(type1, type2, collision_function)
#define ENABLE_COLLISION(type1, type2)   CollisionResult[type1][type2] = RESULT_CHECK; CollisionResult[type2][type1] = RESULT_CHECK;
#define DISABLE_COLLISION(type1, type2)   CollisionResult[type1][type2] = RESULT_NOTHING; CollisionResult[type2][type1] = RESULT_NOTHING;

Functions

void collide_robot_and_wall (object *robot, fix hitspeed, short hitseg, short hitwall, vms_vector *hitpt)
int apply_damage_to_clutter (object *clutter, fix damage)
void apply_force_damage (object *obj, fix force, object *other_obj)
void bump_this_object (object *objp, object *other_objp, vms_vector *force, int damage_flag)
void bump_two_objects (object *obj0, object *obj1, int damage_flag)
void bump_one_object (object *obj0, vms_vector *hit_dir, fix damage)
void collide_player_and_wall (object *player, fix hitspeed, short hitseg, short hitwall, vms_vector *hitpt)
void collide_weapon_and_wall (object *weapon, fix hitspeed, short hitseg, short hitwall, vms_vector *hitpt)
void collide_debris_and_wall (object *debris, fix hitspeed, short hitseg, short hitwall, vms_vector *hitpt)
void scrape_object_on_wall (object *obj, short hitseg, short hitside, vms_vector *hitpt)
int check_effect_blowup (segment *seg, int side, vms_vector *pnt)
void collide_robot_and_robot (object *robot1, object *robot2, vms_vector *collision_point)
void collide_robot_and_controlcen (object *obj1, object *obj2, vms_vector *collision_point)
void collide_robot_and_player (object *robot, object *player, vms_vector *collision_point)
void net_destroy_controlcen (object *controlcen)
void apply_damage_to_controlcen (object *controlcen, fix damage, short who)
void collide_player_and_controlcen (object *controlcen, object *player, vms_vector *collision_point)
void maybe_kill_weapon (object *weapon, object *other_obj)
void collide_weapon_and_controlcen (object *weapon, object *controlcen, vms_vector *collision_point)
void collide_weapon_and_clutter (object *weapon, object *clutter, vms_vector *collision_point)
int apply_damage_to_robot (object *robot, fix damage, int killer_objnum)
void collide_robot_and_weapon (object *robot, object *weapon, vms_vector *collision_point)
void collide_hostage_and_player (object *hostage, object *player, vms_vector *collision_point)
void collide_player_and_player (object *player1, object *player2, vms_vector *collision_point)
void drop_pow_count (object *obj, int *pow_count)
void drop_player_eggs (object *player)
void apply_damage_to_player (object *player, object *killer, fix damage)
void collide_player_and_weapon (object *player, object *weapon, vms_vector *collision_point)
void collide_player_and_nasty_robot (object *player, object *robot, vms_vector *collision_point)
void collide_player_and_materialization_center (object *objp)
void collide_robot_and_materialization_center (object *objp)
void collide_player_and_powerup (object *player, object *powerup, vms_vector *collision_point)
void collide_player_and_clutter (object *player, object *clutter, vms_vector *collision_point)
int maybe_detonate_weapon (object *weapon1, object *weapon2, vms_vector *collision_point)
void collide_weapon_and_weapon (object *weapon1, object *weapon2, vms_vector *collision_point)
void collide_weapon_and_debris (object *weapon, object *debris, vms_vector *collision_point)
void collide_two_objects (object *A, object *B, vms_vector *collision_point)
void collide_init ()
void collide_object_with_wall (object *A, fix hitspeed, short hitseg, short hitwall, vms_vector *hitpt)

Variables

int Ugly_robot_cheat = 0
int Ugly_robot_texture = 0
fix Last_volatile_scrape_sound_time = 0
int Network_got_powerup

Define Documentation

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

#define DAMAGE_SCALE   128
 

#define DAMAGE_THRESHOLD   (F1_0/3)
 

#define DISABLE_COLLISION type1,
type2   )     CollisionResult[type1][type2] = RESULT_NOTHING; CollisionResult[type2][type1] = RESULT_NOTHING;
 

#define DO_COLLISION type1,
type2,
collision_function   )     case COLLISION_OF( (type1), (type2) ): (collision_function)( (A), (B), collision_point ); break; case COLLISION_OF( (type2), (type1) ): (collision_function)( (B), (A), collision_point ); break;
 

#define DO_SAME_COLLISION type1,
type2,
collision_function   )     case COLLISION_OF( (type1), (type1) ): (collision_function)( (A), (B), collision_point ); break;
 

#define ENABLE_COLLISION type1,
type2   )     CollisionResult[type1][type2] = RESULT_CHECK; CollisionResult[type2][type1] = RESULT_CHECK;
 

#define ERROR_COLLISION type1,
type2,
collision_function   ) 
 

Value:

case COLLISION_OF( (type1), (type2) ):                                          \
                Error( "Error in collision type!" );                                    \
                break;                                                                  \
        case COLLISION_OF( (type2), (type1) ):                                          \
                Error( "Error in collision type!" );                                    \
                break;

#define IGNORE_COLLISION type1,
type2,
collision_function   ) 
 

Value:

case COLLISION_OF( (type1), (type2) ):                                          \
                break;                                                                  \
        case COLLISION_OF( (type2), (type1) ):                                          \
                break;

#define NO_COLLISION type1,
type2,
collision_function   )     case COLLISION_OF( (type1), (type2) ): case COLLISION_OF( (type2), (type1) ): break;
 

#define NO_SAME_COLLISION type1,
type2,
collision_function   )     case COLLISION_OF( (type1), (type1) ): break;
 

#define STANDARD_EXPL_DELAY   (f1_0/4)
 

#define VOLATILE_WALL_DAMAGE_FORCE   i2f(5)
 

#define VOLATILE_WALL_DAMAGE_RADIUS   i2f(30)
 

#define VOLATILE_WALL_EXPL_STRENGTH   i2f(10)
 

#define VOLATILE_WALL_IMPACT_SIZE   i2f(3)
 

#define WALL_LOUDNESS_SCALE   (20)
 


Function Documentation

int apply_damage_to_clutter object clutter,
fix  damage
 

void apply_damage_to_controlcen object controlcen,
fix  damage,
short  who
 

void apply_damage_to_player object player,
object killer,
fix  damage
 

int apply_damage_to_robot object robot,
fix  damage,
int  killer_objnum
 

void apply_force_damage object obj,
fix  force,
object other_obj
 

void bump_one_object object obj0,
vms_vector hit_dir,
fix  damage
 

void bump_this_object object objp,
object other_objp,
vms_vector force,
int  damage_flag
 

void bump_two_objects object obj0,
object obj1,
int  damage_flag
 

int check_effect_blowup segment seg,
int  side,
vms_vector pnt
 

void collide_debris_and_wall object debris,
fix  hitspeed,
short  hitseg,
short  hitwall,
vms_vector hitpt
 

void collide_hostage_and_player object hostage,
object player,
vms_vector collision_point
 

void collide_init  ) 
 

void collide_object_with_wall object A,
fix  hitspeed,
short  hitseg,
short  hitwall,
vms_vector hitpt
 

void collide_player_and_clutter object player,
object clutter,
vms_vector collision_point
 

void collide_player_and_controlcen object controlcen,
object player,
vms_vector collision_point
 

void collide_player_and_materialization_center object objp  ) 
 

void collide_player_and_nasty_robot object player,
object robot,
vms_vector collision_point
 

void collide_player_and_player object player1,
object player2,
vms_vector collision_point
 

void collide_player_and_powerup object player,
object powerup,
vms_vector collision_point
 

void collide_player_and_wall object player,
fix  hitspeed,
short  hitseg,
short  hitwall,
vms_vector hitpt
 

void collide_player_and_weapon object player,
object weapon,
vms_vector collision_point
 

void collide_robot_and_controlcen object obj1,
object obj2,
vms_vector collision_point
 

void collide_robot_and_materialization_center object objp  ) 
 

void collide_robot_and_player object robot,
object player,
vms_vector collision_point
 

void collide_robot_and_robot object robot1,
object robot2,
vms_vector collision_point
 

void collide_robot_and_wall object robot,
fix  hitspeed,
short  hitseg,
short  hitwall,
vms_vector hitpt
 

void collide_robot_and_weapon object robot,
object weapon,
vms_vector collision_point
 

void collide_two_objects object A,
object B,
vms_vector collision_point
 

void collide_weapon_and_clutter object weapon,
object clutter,
vms_vector collision_point
 

void collide_weapon_and_controlcen object weapon,
object controlcen,
vms_vector collision_point
 

void collide_weapon_and_debris object weapon,
object debris,
vms_vector collision_point
 

void collide_weapon_and_wall object weapon,
fix  hitspeed,
short  hitseg,
short  hitwall,
vms_vector hitpt
 

void collide_weapon_and_weapon object weapon1,
object weapon2,
vms_vector collision_point
 

void drop_player_eggs object player  ) 
 

void drop_pow_count object obj,
int *  pow_count
 

int maybe_detonate_weapon object weapon1,
object weapon2,
vms_vector collision_point
 

void maybe_kill_weapon object weapon,
object other_obj
 

void net_destroy_controlcen object controlcen  ) 
 

void scrape_object_on_wall object obj,
short  hitseg,
short  hitside,
vms_vector hitpt
 


Variable Documentation

fix Last_volatile_scrape_sound_time = 0
 

int Network_got_powerup
 

int Ugly_robot_cheat = 0
 

int Ugly_robot_texture = 0
 


Generated on Mon Aug 28 20:55:32 2006 for D1X-Rebirth by  doxygen 1.4.6