1 /* $Id: collide.h,v 1.2 2003-10-10 09:36:34 btb Exp $ */
3 THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX
4 SOFTWARE CORPORATION ("PARALLAX"). PARALLAX, IN DISTRIBUTING THE CODE TO
5 END-USERS, AND SUBJECT TO ALL OF THE TERMS AND CONDITIONS HEREIN, GRANTS A
6 ROYALTY-FREE, PERPETUAL LICENSE TO SUCH END-USERS FOR USE BY SUCH END-USERS
7 IN USING, DISPLAYING, AND CREATING DERIVATIVE WORKS THEREOF, SO LONG AS
8 SUCH USE, DISPLAY OR CREATION IS FOR NON-COMMERCIAL, ROYALTY OR REVENUE
9 FREE PURPOSES. IN NO EVENT SHALL THE END-USER USE THE COMPUTER CODE
10 CONTAINED HEREIN FOR REVENUE-BEARING PURPOSES. THE END-USER UNDERSTANDS
11 AND AGREES TO THE TERMS HEREIN AND ACCEPTS THE SAME BY USE OF THIS FILE.
12 COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED.
17 * Header for collide.c
20 * Revision 1.1 1995/05/16 15:55:09 allender
23 * Revision 2.0 1995/02/27 11:28:59 john
24 * New version 2.0, which has no anonymous unions, builds with
25 * Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
27 * Revision 1.23 1995/01/26 22:11:47 mike
28 * Purple chromo-blaster (ie, fusion cannon) spruce up (chromification)
30 * Revision 1.22 1994/12/21 19:03:24 rob
31 * Fixing score accounting for multiplayer robots
33 * Revision 1.21 1994/12/21 11:34:56 mike
34 * make control center take badass damage.
36 * Revision 1.20 1994/10/29 16:53:16 allender
37 * added check_effect_blowup for demo recording to record monitor explosions
39 * Revision 1.19 1994/10/09 13:46:48 mike
40 * Make public collide_player_and_powerup.
42 * Revision 1.18 1994/10/05 14:54:29 rob
43 * Added serial game support in control center sequence..
45 * Revision 1.17 1994/09/15 16:32:12 mike
46 * Prototype collide_player_and_nasty_robot.
48 * Revision 1.16 1994/09/11 15:49:04 mike
49 * Prototype for maybe_detonate_weapon.
51 * Revision 1.15 1994/09/09 14:20:07 matt
52 * Added prototype for scrape function
54 * Revision 1.14 1994/09/02 14:00:44 matt
55 * Simplified explode_object() & mutliple-stage explosions
57 * Revision 1.13 1994/08/18 10:47:35 john
58 * Cleaned up game sequencing and player death stuff
59 * in preparation for making the player explode into
62 * Revision 1.12 1994/08/17 16:50:08 john
63 * Added damaging fireballs, missiles.
65 * Revision 1.11 1994/08/03 16:45:31 mike
66 * Prototype a function.
68 * Revision 1.10 1994/08/03 15:17:41 mike
69 * make matcen whack on you if it's ready to make a robot.
71 * Revision 1.9 1994/07/22 12:08:03 mike
72 * Make robot hit vclip and sound weapon-based until robot dies, then robot-based.
74 * Revision 1.8 1994/07/09 17:36:31 mike
75 * Prototype apply_damage_to_robot.
77 * Revision 1.7 1994/07/09 13:20:36 mike
78 * Prototype apply_damage_to_player.
80 * Revision 1.6 1994/06/20 23:35:52 john
83 * Revision 1.5 1994/06/17 18:04:03 yuan
84 * Added Immaterialization...
85 * Fixed Invulnerability to allow being hit.
87 * Revision 1.4 1994/05/13 20:28:02 john
88 * Version II of John's new object code.
90 * Revision 1.3 1994/05/13 12:20:35 john
91 * Fixed some potential problems with code using global variables
92 * that are set in fvi.
94 * Revision 1.2 1994/05/12 23:20:32 john
95 * Moved all object collision handling into collide.c.
97 * Revision 1.1 1994/05/12 20:39:09 john
108 void collide_two_objects(object * A, object * B, vms_vector *collision_point);
109 void collide_object_with_wall(object * A, fix hitspeed, short hitseg, short hitwall, vms_vector * hitpt);
110 extern void apply_damage_to_player(object *player, object *killer, fix damage);
112 // Returns 1 if robot died, else 0.
113 extern int apply_damage_to_robot(object *robot, fix damage, int killer_objnum);
115 extern int Immaterial;
117 extern void collide_player_and_weapon(object * player, object * weapon, vms_vector *collision_point);
118 extern void collide_player_and_materialization_center(object *objp);
119 extern void collide_robot_and_materialization_center(object *objp);
121 extern void scrape_object_on_wall(object *obj, short hitseg, short hitwall, vms_vector * hitpt);
122 extern int maybe_detonate_weapon(object *obj0p, object *obj, vms_vector *pos);
124 extern void collide_player_and_nasty_robot(object * player, object * robot, vms_vector *collision_point);
126 extern void net_destroy_controlcen(object *controlcen);
127 extern void collide_player_and_powerup(object * player, object * powerup, vms_vector *collision_point);
128 extern int check_effect_blowup(segment *seg,int side,vms_vector *pnt, object *blower, int force_blowup_flag);
129 extern void apply_damage_to_controlcen(object *controlcen, fix damage, short who);
130 extern void bump_one_object(object *obj0, vms_vector *hit_dir, fix damage);
132 #endif /* _COLLIDE_H */