game-source/klik/damage.qh
2004-02-08 07:34:17 +00:00

58 lines
1.5 KiB
C++

#ifndef DAMAGE_qh
#define DAMAGE_qh 1
@extern {
#define DAMAGE_SHOULDDIE 16777214
#define DAMAGE_MUSTDIE 16777215
.entity dmg_attacker;
.void () deathmsg;
.string deathmsg1, deathmsg2, deathmsg3, deathmsg4, deathmsg5, deathmsg6;
// You _MUST_ have th_takedamage if you .takedamage!
// Return TRUE if you were damaged, FALSE otherwise.
.float (float dmg) th_takedamage;
/* Allows you to globally override damage you deal */
/* self = you, other = target */
/* returns new amount of damage, or < 0 for don't */
.float (float dmg) th_dealdamage;
/* Use this when you attack something. It may modify missile. */
/* You should have at least classname, velocity, dmg, and mass */
#define damage_attack(missile) do { if (self.th_attack) self.th_attack (missile); } while (0)
.void (entity missile) th_attack;
/* Update frags in these. */
.void () th_die;
.void () th_kill;
.float (entity missile) th_projectile;
/* ghost_inflictor is for radius and bullets...
Only guaranteed to have:
classname
velocity
mass
*/
entity ghost_inflictor;
void () damage_init;
void (entity from, entity to) deathmsg_copy;
void () deathmsg_display;
void () deathmsg_nodisplay;
float (float d) damage_armor;
void (float d) damage_push;
float (entity ent, entity attacker, entity inflictor, float d, void () deathmessage) damage;
/* Fill in appropriate fields, inflictor _WILL_ be modified. */
void (entity ignore, entity attacker, entity inflictor, void () deathmessage) damage_radius;
float (vector org, entity e) _damage_radius_can_hit;
};
#endif