mirror of
https://git.code.sf.net/p/quake/game-source
synced 2024-12-02 00:21:56 +00:00
74 lines
2 KiB
C++
74 lines
2 KiB
C++
|
#ifndef MISC_qh
|
||
|
#define MISC_qh 1
|
||
|
|
||
|
/* Random miscellaneous functions */
|
||
|
|
||
|
@extern {
|
||
|
|
||
|
entity(string clname) spawn;
|
||
|
|
||
|
string(entity e) name; /* Returns the pretty entity name */
|
||
|
|
||
|
#define crandom() (2.0*(random() - 0.5))
|
||
|
|
||
|
void(entity e) makestatic;
|
||
|
void(vector pos, string samp, float vol, float atten) ambientsound;
|
||
|
|
||
|
void() SUB_remove;
|
||
|
void(entity e) safe_remove;
|
||
|
|
||
|
void() SUB_makestatic;
|
||
|
void(entity e) safe_makestatic;
|
||
|
|
||
|
void(vector org, string samp, float vol, float atten) sound_vector;
|
||
|
entity(string clname, string mod, vector org, vector dir, float speed) spawn_missile;
|
||
|
|
||
|
/* :) */
|
||
|
void(.string fld, string match, void(entity e) func) foreach;
|
||
|
void(.string fld, string match, .void() func) foreach_field;
|
||
|
|
||
|
/* swaps self/other temporarily */
|
||
|
float(entity newself, entity newother, float() func) switcheroo;
|
||
|
|
||
|
/* Returns new value */
|
||
|
float(float current, float increment, float max) increase_bound;
|
||
|
|
||
|
/* Returns FALSE if not increased */
|
||
|
float(.float fld, float increment, float max) increase_field;
|
||
|
|
||
|
/* Calculate the player's current maximum speed, taking water/air in to account */
|
||
|
float(entity e) calc_max_speed;
|
||
|
|
||
|
/* sprint one string at a time, and get them all to the destination */
|
||
|
void(entity client, float level) xprint_start;
|
||
|
void(string str) xprint_str;
|
||
|
|
||
|
#define is_activeplayer(e) (e.flags & FL_CLIENT)
|
||
|
|
||
|
#define is_cl(e) (e.flags & FL_CLIENT)
|
||
|
#define is_autothink(e) (e.flags & FL_AUTOTHINK)
|
||
|
|
||
|
/* Return a random entity that matches, or world */
|
||
|
entity(.string fld, string str) find_random;
|
||
|
|
||
|
/* Return something from the .enemy chain */
|
||
|
entity(entity ech) random_enemy_chain;
|
||
|
|
||
|
#define vieworigin(e) (e.origin + e.view_ofs)
|
||
|
#define center(e) ((e.absmin + e.absmax) * 0.5)
|
||
|
|
||
|
/* FIXME: Make this an mdl func? */
|
||
|
#define shootorigin(e) (vieworigin(e) - '0 0 6')
|
||
|
|
||
|
/* Stuff for traceline "projectiles" to hit triggers like normal projectiles */
|
||
|
void() tl_proj_begin;
|
||
|
void() tl_proj_end;
|
||
|
void(entity trigger, entity fake_proj) tl_touch;
|
||
|
|
||
|
.float tl_notsolid;
|
||
|
#define tl_issolid(ent) (!ent.tl_notsolid)
|
||
|
|
||
|
};
|
||
|
|
||
|
#endif
|