mirror of
https://git.code.sf.net/p/quake/game-source
synced 2024-11-26 05:40:59 +00:00
725 lines
22 KiB
C
725 lines
22 KiB
C
|
|
/*
|
|
==============================================================================
|
|
|
|
SOURCE FOR GLOBALVARS_T C STRUCTURE
|
|
|
|
==============================================================================
|
|
*/
|
|
|
|
//
|
|
// system globals
|
|
//
|
|
@extern entity self;
|
|
@extern entity other;
|
|
@extern entity world;
|
|
@extern float time;
|
|
@extern float frametime;
|
|
|
|
@extern entity newmis; // if this is set, the entity that just
|
|
// run created a new missile that should
|
|
// be simulated immediately
|
|
|
|
|
|
@extern float force_retouch; // force all entities to touch triggers
|
|
// next frame. this is needed because
|
|
// non-moving things don't normally scan
|
|
// for triggers, and when a trigger is
|
|
// created (like a teleport trigger), it
|
|
// needs to catch everything.
|
|
// decremented each frame, so set to 2
|
|
// to guarantee everything is touched
|
|
@extern string mapname;
|
|
|
|
@extern float serverflags; // propagated from level to level, used to
|
|
// keep track of completed episodes
|
|
|
|
@extern float total_secrets;
|
|
@extern float total_monsters;
|
|
|
|
@extern float found_secrets; // number of secrets found
|
|
@extern float killed_monsters; // number of monsters killed
|
|
|
|
|
|
// spawnparms are used to encode information about clients across server
|
|
// level changes
|
|
@extern float parm1, parm2, parm3, parm4, parm5, parm6, parm7, parm8, parm9, parm10, parm11, parm12, parm13, parm14, parm15, parm16;
|
|
|
|
//
|
|
// global variables set by built in functions
|
|
//
|
|
@extern vector v_forward, v_up, v_right; // set by makevectors()
|
|
|
|
// set by traceline / tracebox
|
|
@extern float trace_allsolid;
|
|
@extern float trace_startsolid;
|
|
@extern float trace_fraction;
|
|
@extern vector trace_endpos;
|
|
@extern vector trace_plane_normal;
|
|
@extern float trace_plane_dist;
|
|
@extern entity trace_ent;
|
|
@extern float trace_inopen;
|
|
@extern float trace_inwater;
|
|
|
|
@extern entity msg_entity; // destination of single entity writes
|
|
|
|
//
|
|
// required prog functions
|
|
//
|
|
@extern void() main; // only for testing
|
|
|
|
@extern void() StartFrame;
|
|
|
|
@extern void() PlayerPreThink;
|
|
@extern void() PlayerPostThink;
|
|
|
|
@extern void() ClientKill;
|
|
@extern void() ClientConnect;
|
|
@extern void() PutClientInServer; // call after setting the parm1... parms
|
|
@extern void() ClientDisconnect;
|
|
|
|
@extern void() SetNewParms; // called when a client first connects to
|
|
// a server. sets parms so they can be
|
|
// saved off for restarts
|
|
|
|
@extern void() SetChangeParms; // call to set parms for self so they can
|
|
// be saved for a level transition
|
|
|
|
|
|
//================================================
|
|
@extern void end_sys_globals; // flag for structure dumping
|
|
//================================================
|
|
|
|
/*
|
|
==============================================================================
|
|
|
|
SOURCE FOR ENTVARS_T C STRUCTURE
|
|
|
|
==============================================================================
|
|
*/
|
|
|
|
//
|
|
// system fields (*** = do not set in prog code, maintained by C code)
|
|
//
|
|
@extern .float modelindex; // *** model index in the precached list
|
|
@extern .vector absmin, absmax; // *** origin + mins / maxs
|
|
|
|
@extern .float ltime; // local time for entity
|
|
@extern .float lastruntime; // *** to allow entities to run out of sequence
|
|
|
|
@extern .float movetype;
|
|
@extern .float solid;
|
|
|
|
@extern .vector origin; // ***
|
|
@extern .vector oldorigin; // ***
|
|
@extern .vector velocity;
|
|
@extern .vector angles;
|
|
@extern .vector avelocity;
|
|
|
|
@extern .string classname; // spawn function
|
|
@extern .string model;
|
|
@extern .float frame;
|
|
@extern .float skin;
|
|
@extern .float effects;
|
|
|
|
@extern .vector mins, maxs; // bounding box extents reletive to origin
|
|
@extern .vector size; // maxs - mins
|
|
|
|
@extern .void() touch;
|
|
@extern .void() use;
|
|
@extern .void() think;
|
|
@extern .void() blocked; // for doors or plats, called when can't push other
|
|
|
|
@extern .float nextthink;
|
|
@extern .entity groundentity;
|
|
|
|
|
|
|
|
// stats
|
|
@extern .float health;
|
|
@extern .float frags;
|
|
@extern .float weapon; // one of the IT_SHOTGUN, etc flags
|
|
@extern .string weaponmodel;
|
|
@extern .float weaponframe;
|
|
@extern .float currentammo;
|
|
@extern .float ammo_shells, ammo_nails, ammo_rockets, ammo_cells;
|
|
|
|
@extern .float items; // bit flags
|
|
|
|
@extern .float takedamage;
|
|
@extern .entity chain;
|
|
@extern .float deadflag;
|
|
|
|
@extern .vector view_ofs; // add to origin to get eye point
|
|
|
|
|
|
@extern .float button0; // fire
|
|
@extern .float button1; // use
|
|
@extern .float button2; // jump
|
|
|
|
@extern .float impulse; // weapon changes
|
|
|
|
@extern .float fixangle;
|
|
@extern .vector v_angle; // view / targeting angle for players
|
|
|
|
@extern .string netname;
|
|
|
|
@extern .entity enemy;
|
|
|
|
@extern .float flags;
|
|
|
|
@extern .float colormap;
|
|
@extern .float team;
|
|
|
|
@extern .float max_health; // players maximum health is stored here
|
|
|
|
@extern .float teleport_time; // don't back up
|
|
|
|
@extern .float armortype; // save this fraction of incoming damage
|
|
@extern .float armorvalue;
|
|
|
|
@extern .float waterlevel; // 0 = not in, 1 = feet, 2 = wast, 3 = eyes
|
|
@extern .float watertype; // a contents value
|
|
|
|
@extern .float ideal_yaw;
|
|
@extern .float yaw_speed;
|
|
|
|
@extern .entity aiment;
|
|
|
|
@extern .entity goalentity; // a movetarget or an enemy
|
|
|
|
@extern .float spawnflags;
|
|
|
|
@extern .string target;
|
|
@extern .string targetname;
|
|
|
|
// damage is accumulated through a frame. and sent as one single
|
|
// message, so the super shotgun doesn't generate huge messages
|
|
@extern .float dmg_take;
|
|
@extern .float dmg_save;
|
|
@extern .entity dmg_inflictor;
|
|
|
|
@extern .entity owner; // who launched a missile
|
|
@extern .vector movedir; // mostly for doors, but also used for waterjump
|
|
|
|
@extern .string message; // trigger messages
|
|
|
|
@extern .float sounds; // either a cd track number or sound number
|
|
|
|
@extern .string noise, noise1, noise2, noise3; // contains names of wavs to play
|
|
|
|
//================================================
|
|
@extern void end_sys_fields; // flag for structure dumping
|
|
//================================================
|
|
|
|
/*
|
|
==============================================================================
|
|
|
|
VARS NOT REFERENCED BY C CODE
|
|
|
|
==============================================================================
|
|
*/
|
|
|
|
|
|
//
|
|
// constants
|
|
//
|
|
|
|
// edict.flags
|
|
@extern float FL_FLY;
|
|
@extern float FL_SWIM;
|
|
@extern float FL_CLIENT; // set for all client edicts
|
|
@extern float FL_INWATER; // for enter / leave water splash
|
|
@extern float FL_MONSTER;
|
|
@extern float FL_GODMODE; // player cheat
|
|
@extern float FL_NOTARGET; // player cheat
|
|
@extern float FL_ITEM; // extra wide size for bonus items
|
|
@extern float FL_ONGROUND; // standing on something
|
|
@extern float FL_PARTIALGROUND; // not all corners are valid
|
|
@extern float FL_WATERJUMP; // player jumping out of water
|
|
@extern float FL_JUMPRELEASED; // for jump debouncing
|
|
|
|
// edict.movetype values
|
|
#define MOVETYPE_NONE 0 // never moves
|
|
//#define MOVETYPE_ANGLENOCLIP 1
|
|
//#define MOVETYPE_ANGLECLIP 2
|
|
#define MOVETYPE_WALK 3 // players only
|
|
#define MOVETYPE_STEP 4 // discrete, not real time unless fall
|
|
#define MOVETYPE_FLY 5
|
|
#define MOVETYPE_TOSS 6 // gravity
|
|
#define MOVETYPE_PUSH 7 // no clip to world, push and crush
|
|
#define MOVETYPE_NOCLIP 8
|
|
#define MOVETYPE_FLYMISSILE 9 // fly with extra size against monsters
|
|
#define MOVETYPE_BOUNCE 10
|
|
#define MOVETYPE_BOUNCEMISSILE 11 // bounce with extra size
|
|
|
|
// edict.solid values
|
|
@extern float SOLID_NOT; // no interaction with other objects
|
|
@extern float SOLID_TRIGGER; // touch on edge, but not blocking
|
|
@extern float SOLID_BBOX; // touch on edge, block
|
|
@extern float SOLID_SLIDEBOX; // touch on edge, but not an onground
|
|
@extern float SOLID_BSP; // bsp clip, touch on edge, block
|
|
|
|
// range values
|
|
@extern float RANGE_MELEE;
|
|
@extern float RANGE_NEAR;
|
|
@extern float RANGE_MID;
|
|
@extern float RANGE_FAR;
|
|
|
|
// deadflag values
|
|
|
|
@extern float DEAD_NO;
|
|
@extern float DEAD_DYING;
|
|
@extern float DEAD_DEAD;
|
|
@extern float DEAD_RESPAWNABLE;
|
|
|
|
// takedamage values
|
|
|
|
@extern float DAMAGE_NO;
|
|
@extern float DAMAGE_YES;
|
|
@extern float DAMAGE_AIM;
|
|
|
|
// items
|
|
@extern float IT_AXE;
|
|
@extern float IT_SHOTGUN;
|
|
@extern float IT_SUPER_SHOTGUN;
|
|
@extern float IT_NAILGUN;
|
|
@extern float IT_SUPER_NAILGUN;
|
|
@extern float IT_GRENADE_LAUNCHER;
|
|
@extern float IT_ROCKET_LAUNCHER;
|
|
@extern float IT_LIGHTNING;
|
|
@extern float IT_EXTRA_WEAPON;
|
|
|
|
@extern float IT_SHELLS;
|
|
@extern float IT_NAILS;
|
|
@extern float IT_ROCKETS;
|
|
@extern float IT_CELLS;
|
|
|
|
@extern float IT_ARMOR1;
|
|
@extern float IT_ARMOR2;
|
|
@extern float IT_ARMOR3;
|
|
@extern float IT_SUPERHEALTH;
|
|
|
|
@extern float IT_KEY1;
|
|
@extern float IT_KEY2;
|
|
|
|
@extern float IT_INVISIBILITY;
|
|
@extern float IT_INVULNERABILITY;
|
|
@extern float IT_SUIT;
|
|
@extern float IT_QUAD;
|
|
|
|
// point content values
|
|
|
|
@extern float CONTENT_EMPTY;
|
|
@extern float CONTENT_SOLID;
|
|
@extern float CONTENT_WATER;
|
|
@extern float CONTENT_SLIME;
|
|
@extern float CONTENT_LAVA;
|
|
@extern float CONTENT_SKY;
|
|
|
|
@extern float STATE_TOP;
|
|
@extern float STATE_BOTTOM;
|
|
@extern float STATE_UP;
|
|
@extern float STATE_DOWN;
|
|
|
|
@extern vector VEC_ORIGIN;
|
|
@extern vector VEC_HULL_MIN;
|
|
@extern vector VEC_HULL_MAX;
|
|
|
|
@extern vector VEC_HULL2_MIN;
|
|
@extern vector VEC_HULL2_MAX;
|
|
|
|
// protocol bytes
|
|
@extern float SVC_TEMPENTITY;
|
|
@extern float SVC_KILLEDMONSTER;
|
|
@extern float SVC_FOUNDSECRET;
|
|
@extern float SVC_INTERMISSION;
|
|
@extern float SVC_FINALE;
|
|
@extern float SVC_CDTRACK;
|
|
@extern float SVC_SELLSCREEN;
|
|
@extern float SVC_SMALLKICK;
|
|
@extern float SVC_BIGKICK;
|
|
@extern float SVC_MUZZLEFLASH;
|
|
|
|
|
|
@extern float TE_SPIKE;
|
|
@extern float TE_SUPERSPIKE;
|
|
@extern float TE_GUNSHOT;
|
|
@extern float TE_EXPLOSION;
|
|
@extern float TE_TAREXPLOSION;
|
|
@extern float TE_LIGHTNING1;
|
|
@extern float TE_LIGHTNING2;
|
|
@extern float TE_WIZSPIKE;
|
|
@extern float TE_KNIGHTSPIKE;
|
|
@extern float TE_LIGHTNING3;
|
|
@extern float TE_LAVASPLASH;
|
|
@extern float TE_TELEPORT;
|
|
@extern float TE_BLOOD;
|
|
@extern float TE_LIGHTNINGBLOOD;
|
|
|
|
// sound channels
|
|
// channel 0 never willingly overrides
|
|
// other channels (1-7) allways override a playing sound on that channel
|
|
@extern float CHAN_AUTO;
|
|
@extern float CHAN_WEAPON;
|
|
@extern float CHAN_VOICE;
|
|
@extern float CHAN_ITEM;
|
|
@extern float CHAN_BODY;
|
|
@extern float CHAN_NO_PHS_ADD; // ie: CHAN_BODY+CHAN_NO_PHS_ADD
|
|
|
|
@extern float ATTN_NONE;
|
|
@extern float ATTN_NORM;
|
|
@extern float ATTN_IDLE;
|
|
@extern float ATTN_STATIC;
|
|
|
|
// update types
|
|
|
|
@extern float UPDATE_GENERAL;
|
|
@extern float UPDATE_STATIC;
|
|
@extern float UPDATE_BINARY;
|
|
@extern float UPDATE_TEMP;
|
|
|
|
// entity effects
|
|
|
|
//float EF_BRIGHTFIELD;
|
|
//float EF_MUZZLEFLASH;
|
|
@extern float EF_BRIGHTLIGHT;
|
|
@extern float EF_DIMLIGHT;
|
|
@extern float EF_FLAG1;
|
|
@extern float EF_FLAG2;
|
|
// GLQuakeWorld Stuff
|
|
@extern float EF_BLUE; // Blue Globe effect for Quad
|
|
@extern float EF_RED; // Red Globe effect for Pentagram
|
|
// messages
|
|
@extern float MSG_BROADCAST; // unreliable to all
|
|
@extern float MSG_ONE; // reliable to one (msg_entity)
|
|
@extern float MSG_ALL; // reliable to all
|
|
@extern float MSG_INIT; // write to the init string
|
|
@extern float MSG_MULTICAST; // for multicast() call
|
|
|
|
// message levels
|
|
@extern float PRINT_LOW; // pickup messages
|
|
@extern float PRINT_MEDIUM; // death messages
|
|
@extern float PRINT_HIGH; // critical messages
|
|
@extern float PRINT_CHAT; // also goes to chat console
|
|
|
|
// multicast sets
|
|
@extern float MULTICAST_ALL; // every client
|
|
@extern float MULTICAST_PHS; // within hearing
|
|
@extern float MULTICAST_PVS; // within sight
|
|
@extern float MULTICAST_ALL_R; // every client, reliable
|
|
@extern float MULTICAST_PHS_R; // within hearing, reliable
|
|
@extern float MULTICAST_PVS_R; // within sight, reliable
|
|
|
|
|
|
|
|
|
|
//================================================
|
|
|
|
//
|
|
// globals
|
|
//
|
|
@extern float movedist;
|
|
|
|
@extern string string_null; // null string, nothing should be held here
|
|
@extern float empty_float;
|
|
|
|
@extern entity activator; // the entity that activated a trigger or brush
|
|
|
|
@extern entity damage_attacker; // set by T_Damage
|
|
@extern entity damage_inflictor;
|
|
@extern float framecount;
|
|
|
|
//
|
|
// cvars checked each frame
|
|
//
|
|
@extern float teamplay;
|
|
@extern float timelimit;
|
|
@extern float fraglimit;
|
|
@extern float deathmatch;
|
|
@extern float rj;
|
|
|
|
//================================================
|
|
|
|
//
|
|
// world fields (FIXME: make globals)
|
|
//
|
|
@extern .string wad;
|
|
@extern .string map;
|
|
@extern .float worldtype; // 0=medieval 1=metal 2=base
|
|
|
|
//================================================
|
|
|
|
@extern .string killtarget;
|
|
|
|
//
|
|
// quakeed fields
|
|
//
|
|
@extern .float light_lev; // not used by game, but parsed by light util
|
|
@extern .float style;
|
|
|
|
|
|
//
|
|
// monster ai
|
|
//
|
|
@extern .void() th_stand;
|
|
@extern .void() th_walk;
|
|
@extern .void() th_run;
|
|
@extern .void() th_missile;
|
|
@extern .void() th_melee;
|
|
@extern .void(entity attacker, float damage) th_pain;
|
|
@extern .void() th_die;
|
|
|
|
@extern .entity oldenemy; // mad at this player before taking damage
|
|
|
|
@extern .float speed;
|
|
|
|
@extern .float lefty;
|
|
|
|
@extern .float search_time;
|
|
@extern .float attack_state;
|
|
|
|
@extern float AS_STRAIGHT;
|
|
@extern float AS_SLIDING;
|
|
@extern float AS_MELEE;
|
|
@extern float AS_MISSILE;
|
|
|
|
//
|
|
// player only fields
|
|
//
|
|
@extern .float voided;
|
|
@extern .float walkframe;
|
|
|
|
// Zoid Additions
|
|
@extern .float maxspeed; // Used to set Maxspeed on a player
|
|
@extern .float gravity; // Gravity Multiplier (0 to 1.0)
|
|
|
|
|
|
|
|
@extern .float attack_finished;
|
|
@extern .float pain_finished;
|
|
|
|
@extern .float invincible_finished;
|
|
@extern .float invisible_finished;
|
|
@extern .float super_damage_finished;
|
|
@extern .float radsuit_finished;
|
|
|
|
@extern .float invincible_time, invincible_sound;
|
|
@extern .float invisible_time, invisible_sound;
|
|
@extern .float super_time, super_sound;
|
|
@extern .float rad_time;
|
|
@extern .float fly_sound;
|
|
|
|
@extern .float axhitme;
|
|
|
|
@extern .float show_hostile; // set to time+0.2 whenever a client fires a
|
|
// weapon or takes damage. Used to alert
|
|
// monsters that otherwise would let the player go
|
|
@extern .float jump_flag; // player jump flag
|
|
@extern .float swim_flag; // player swimming sound flag
|
|
@extern .float air_finished; // when time > air_finished, start drowning
|
|
@extern .float bubble_count; // keeps track of the number of bubbles
|
|
@extern .string deathtype; // keeps track of how the player died
|
|
|
|
//
|
|
// object stuff
|
|
//
|
|
@extern .string mdl;
|
|
@extern .vector mangle; // angle at start
|
|
|
|
@extern .vector oldorigin; // only used by secret door
|
|
|
|
@extern .float t_length, t_width;
|
|
|
|
|
|
//
|
|
// doors, etc
|
|
//
|
|
@extern .vector dest, dest1, dest2;
|
|
@extern .float wait; // time from firing to restarting
|
|
@extern .float delay; // time from activation to firing
|
|
@extern .entity trigger_field; // door's trigger entity
|
|
@extern .string noise4;
|
|
|
|
//
|
|
// monsters
|
|
//
|
|
@extern .float pausetime;
|
|
@extern .entity movetarget;
|
|
|
|
|
|
//
|
|
// doors
|
|
//
|
|
@extern .float aflag;
|
|
@extern .float dmg; // damage done by door when hit
|
|
|
|
//
|
|
// misc
|
|
//
|
|
@extern .float cnt; // misc flag
|
|
|
|
//
|
|
// subs
|
|
//
|
|
@extern .void() think1;
|
|
@extern .vector finaldest, finalangle;
|
|
|
|
//
|
|
// triggers
|
|
//
|
|
@extern .float count; // for counting triggers
|
|
|
|
|
|
//
|
|
// plats / doors / buttons
|
|
//
|
|
@extern .float lip;
|
|
@extern .float state;
|
|
@extern .vector pos1, pos2; // top and bottom positions
|
|
@extern .float height;
|
|
|
|
//
|
|
// sounds
|
|
//
|
|
@extern .float waitmin, waitmax;
|
|
@extern .float distance;
|
|
@extern .float volume;
|
|
|
|
|
|
|
|
|
|
//===========================================================================
|
|
|
|
|
|
//
|
|
// builtin functions
|
|
//
|
|
|
|
@extern void(vector ang) makevectors; // sets v_forward, etc globals
|
|
@extern void(entity e, vector o) setorigin;
|
|
@extern void(entity e, string m) setmodel; // set movetype and solid first
|
|
@extern void(entity e, vector min, vector max) setsize;
|
|
// #5 was removed
|
|
//void() break;
|
|
@extern float() random; // returns 0 - 1
|
|
@extern void(entity e, float chan, string samp, float vol, float atten) sound;
|
|
@extern vector(vector v) normalize;
|
|
@extern void(string e) error;
|
|
@extern void(string e) objerror;
|
|
@extern float(vector v) vlen;
|
|
@extern float(vector v) vectoyaw;
|
|
@extern entity() spawn;
|
|
@extern void(entity e) remove;
|
|
|
|
// sets trace_* globals
|
|
// nomonsters can be:
|
|
// An entity will also be ignored for testing if forent == test,
|
|
// forent->owner == test, or test->owner == forent
|
|
// a forent of world is ignored
|
|
@extern void(vector v1, vector v2, float nomonsters, entity forent) traceline;
|
|
|
|
@extern entity() checkclient; // returns a client to look for
|
|
@extern entity(entity start, .string fld, string match) find;
|
|
@extern string(string s) precache_sound;
|
|
@extern string(string s) precache_model;
|
|
@extern void(entity client, string s)stuffcmd;
|
|
@extern entity(vector org, float rad) findradius;
|
|
@extern void(float level, string s) bprint;
|
|
@extern void(entity client, float level, string s) sprint;
|
|
@extern void(string s) dprint;
|
|
@extern string(float f) ftos;
|
|
@extern string(vector v) vtos;
|
|
@extern void() coredump; // prints all edicts
|
|
@extern void() traceon; // turns statment trace on
|
|
@extern void() traceoff;
|
|
@extern void(entity e) eprint; // prints an entire edict
|
|
@extern float(float yaw, float dist) walkmove; // returns TRUE or FALSE
|
|
// #33 was removed
|
|
@extern float() droptofloor; // TRUE if landed on floor
|
|
@extern void(float style, string value) lightstyle;
|
|
@extern float(float v) rint; // round to nearest int
|
|
@extern float(float v) floor; // largest integer <= v
|
|
@extern float(float v) ceil; // smallest integer >= v
|
|
// #39 was removed
|
|
@extern float(entity e) checkbottom; // true if self is on ground
|
|
@extern float(vector v) pointcontents; // returns a CONTENT_*
|
|
// #42 was removed
|
|
@extern float(float f) fabs;
|
|
@extern vector(entity e, float speed) aim; // returns the shooting vector
|
|
@extern float(string s) cvar; // return cvar.value
|
|
@extern void(string s) localcmd; // put string into local que
|
|
@extern entity(entity e) nextent; // for looping through all ents
|
|
// #48 was removed
|
|
@extern void() ChangeYaw; // turn towards self.ideal_yaw
|
|
// at self.yaw_speed
|
|
// #50 was removed
|
|
@extern vector(vector v) vectoangles;
|
|
|
|
//
|
|
// direct client message generation
|
|
//
|
|
@extern void(float to, float f) WriteByte;
|
|
@extern void(float to, float f) WriteChar;
|
|
@extern void(float to, float f) WriteShort;
|
|
@extern void(float to, float f) WriteLong;
|
|
@extern void(float to, float f) WriteCoord;
|
|
@extern void(float to, float f) WriteAngle;
|
|
@extern void(float to, string s) WriteString;
|
|
@extern void(float to, entity s) WriteEntity;
|
|
|
|
// several removed
|
|
|
|
@extern void(float step) movetogoal;
|
|
|
|
@extern string(string s) precache_file; // no effect except for -copy
|
|
@extern void(entity e) makestatic;
|
|
@extern void(string s) changelevel;
|
|
|
|
//#71 was removed
|
|
|
|
@extern void(string var, string val) cvar_set; // sets cvar.value
|
|
|
|
@extern void(entity client, string s) centerprint; // sprint, but in middle
|
|
|
|
@extern void(vector pos, string samp, float vol, float atten) ambientsound;
|
|
|
|
@extern string(string s) precache_model2; // registered version only
|
|
@extern string(string s) precache_sound2; // registered version only
|
|
@extern string(string s) precache_file2; // registered version only
|
|
|
|
@extern void(entity e) setspawnparms; // set parm1... to the
|
|
// values at level start
|
|
// for coop respawn
|
|
@extern void(entity killer, entity killee) logfrag; // add to stats
|
|
|
|
@extern string(entity e, string key) infokey; // get a key value (world = serverinfo)
|
|
@extern float(string s) stof; // convert string to float
|
|
@extern void(vector where, float set) multicast; // sends the temp message to a set
|
|
// of clients, possibly in PVS or PHS
|
|
|
|
//============================================================================
|
|
|
|
//
|
|
// subs.qc
|
|
//
|
|
@extern void(vector tdest, float tspeed, void() func) SUB_CalcMove;
|
|
@extern void(entity ent, vector tdest, float tspeed, void() func) SUB_CalcMoveEnt;
|
|
@extern void(vector destangle, float tspeed, void() func) SUB_CalcAngleMove;
|
|
@extern void() SUB_CalcMoveDone;
|
|
@extern void() SUB_CalcAngleMoveDone;
|
|
@extern void() SUB_Null;
|
|
@extern void() SUB_UseTargets;
|
|
@extern void() SUB_Remove;
|
|
|
|
//
|
|
// combat.qc
|
|
//
|
|
@extern void(entity targ, entity inflictor, entity attacker, float damage) T_Damage;
|
|
|
|
|
|
@extern float (entity e, float healamount, float ignore) T_Heal; // health function
|
|
|
|
@extern float(entity targ, entity inflictor) CanDamage;
|
|
|
|
|