471 lines
12 KiB
Plaintext
471 lines
12 KiB
Plaintext
/*========================================
|
|
defs.qc
|
|
========================================*/
|
|
|
|
/*==========
|
|
System Globals
|
|
==========*/
|
|
|
|
entity self, other, world;
|
|
float time, frametime, force_retouch;
|
|
string mapname;
|
|
float deathmatch, coop, teamplay, serverflags;
|
|
float total_secrets, total_monsters, found_secrets, killed_monsters;
|
|
float parm1, parm2, parm3, parm4, parm5, parm6, parm7, parm8,
|
|
parm9, parm10, parm11, parm12, parm13, parm14, parm15, parm16;
|
|
vector v_forward, v_up, v_right;
|
|
float trace_allsolid, trace_startsolid, trace_fraction;
|
|
vector trace_endpos, trace_plane_normal;
|
|
float trace_plane_dist;
|
|
entity trace_ent;
|
|
float trace_inopen, trace_inwater;
|
|
entity msg_entity;
|
|
void() main, StartFrame, PlayerPreThink, PlayerPostThink, ClientKill, ClientConnect,
|
|
PutClientInServer, ClientDisconnect, SetNewParms, SetChangeParms;
|
|
void end_sys_globals;
|
|
|
|
/*==========
|
|
System Fields
|
|
==========*/
|
|
|
|
.float modelindex;
|
|
.vector absmin, absmax;
|
|
.float ltime;
|
|
.float movetype;
|
|
.float solid;
|
|
.vector origin;
|
|
.vector oldorigin;
|
|
.vector velocity;
|
|
.vector angles;
|
|
.vector avelocity;
|
|
.vector punchangle;
|
|
.string classname;
|
|
.string model;
|
|
.float frame;
|
|
.float skin;
|
|
.float effects;
|
|
.vector mins, maxs;
|
|
.vector size;
|
|
.void() touch;
|
|
.void() use;
|
|
.void() think;
|
|
.void() blocked;
|
|
.float nextthink;
|
|
.entity groundentity;
|
|
.float health;
|
|
.float frags;
|
|
.float weapon;
|
|
.string weaponmodel;
|
|
.float weaponframe;
|
|
.float currentammo;
|
|
.float ammo_shells, ammo_nails, ammo_rockets, ammo_cells;
|
|
.float items;
|
|
.float takedamage;
|
|
.entity chain;
|
|
.float deadflag;
|
|
.vector view_ofs;
|
|
.float button0;
|
|
.float button1;
|
|
.float button2;
|
|
.float impulse;
|
|
.float fixangle;
|
|
.vector v_angle;
|
|
.float idealpitch;
|
|
.string netname;
|
|
.entity enemy;
|
|
.float flags;
|
|
.float colormap;
|
|
.float team;
|
|
.float max_health;
|
|
.float teleport_time;
|
|
.float armortype;
|
|
.float armorvalue;
|
|
.float waterlevel;
|
|
.float watertype;
|
|
.float ideal_yaw;
|
|
.float yaw_speed;
|
|
.entity aiment;
|
|
.entity goalentity;
|
|
.float spawnflags;
|
|
.string target;
|
|
.string targetname;
|
|
.float dmg_take;
|
|
.float dmg_save;
|
|
.entity dmg_inflictor;
|
|
.entity owner;
|
|
.vector movedir;
|
|
.string message;
|
|
.float sounds;
|
|
.string noise, noise1, noise2, noise3;
|
|
void end_sys_fields;
|
|
|
|
/*==========
|
|
Builtins
|
|
==========*/
|
|
|
|
__used void(vector ang) makevectors = #1;
|
|
__used void(entity e, vector o) setorigin = #2;
|
|
__used void(entity e, string m) setmodel = #3;
|
|
__used void(entity e, vector min, vector max) setsize = #4;
|
|
__used void() break = #6;
|
|
__used float() random = #7;
|
|
__used void(entity e, float chan, string samp, float vol, float atten) sound = #8;
|
|
__used vector(vector v) normalize = #9;
|
|
__used void(string e) error = #10;
|
|
__used void(string e) objerror = #11;
|
|
__used float(vector v) vlen = #12;
|
|
__used float(vector v) vectoyaw = #13;
|
|
__used entity() spawn = #14;
|
|
__used void(entity e) remove = #15;
|
|
__used void(vector v1, vector v2, float nomonsters, entity forent) traceline = #16;
|
|
__used entity() checkclient = #17;
|
|
__used entity(entity start, .string fld, string match) find = #18;
|
|
__used string(string s) precache_sound = #19;
|
|
__used string(string s) precache_model = #20;
|
|
__used void(entity client, string s) stuffcmd = #21;
|
|
__used entity(vector org, float rad) findradius = #22;
|
|
__used void(string s) bprint = #23;
|
|
__used void(entity client, string s, optional string s2) sprint = #24;
|
|
__used void(string s) dprint = #25;
|
|
__used string(float f) ftos = #26;
|
|
__used string(vector v) vtos = #27;
|
|
__used void() coredump = #28;
|
|
__used void() traceon = #29;
|
|
__used void() traceoff = #30;
|
|
__used void(entity e) eprint = #31;
|
|
__used float(float yaw, float dist) walkmove = #32;
|
|
__used float() droptofloor= #34;
|
|
__used void(float style, string value) lightstyle = #35;
|
|
__used float(float v) rint = #36;
|
|
__used float(float v) floor = #37;
|
|
__used float(float v) ceil = #38;
|
|
__used float(entity e) checkbottom = #40;
|
|
__used float(vector v) pointcontents = #41;
|
|
__used float(float f) fabs = #43;
|
|
__used vector(entity e, float speed) aim = #44;
|
|
__used float(string s) cvar = #45;
|
|
__used void(string s) localcmd = #46;
|
|
__used entity(entity e) nextent = #47;
|
|
__used void particle(vector o, vector d, float color, float count) = #48;
|
|
__used void() changeyaw = #49;
|
|
__used vector(vector v) vectoangles = #51;
|
|
__used void(float to, float f) WriteByte = #52;
|
|
__used void(float to, float f) WriteChar = #53;
|
|
__used void(float to, float f) WriteShort = #54;
|
|
__used void(float to, float f) WriteLong = #55;
|
|
__used void(float to, float f) WriteCoord = #56;
|
|
__used void(float to, float f) WriteAngle = #57;
|
|
__used void(float to, string s) WriteString = #58;
|
|
__used void(float to, entity s) WriteEntity = #59;
|
|
__used void(float step) movetogoal = #67;
|
|
__used string(string s) precache_file = #68;
|
|
__used void(entity e) makestatic = #69;
|
|
__used void(string s) changelevel = #70;
|
|
__used void(string var, string val) cvar_set = #72;
|
|
__used void(entity client, string s1, optional string s2, optional string s3,
|
|
optional string s4, optional string s5, optional string s6, optional string s7) centerprint = #73;
|
|
__used void(vector pos, string samp, float vol, float atten) ambientsound = #74;
|
|
__used string(string s) precache_model2 = #75;
|
|
__used string(string s) precache_sound2 = #76;
|
|
__used string(string s) precache_file2 = #77;
|
|
__used void(entity e) setspawnparms = #78;
|
|
|
|
/*==========
|
|
Constants
|
|
==========*/
|
|
|
|
// booleans
|
|
const float FALSE = 0;
|
|
const float TRUE = 1;
|
|
|
|
// flags
|
|
float FL_FLY = 1;
|
|
float FL_SWIM = 2;
|
|
// 4 is unused
|
|
float FL_CLIENT = 8;
|
|
float FL_INWATER = 16;
|
|
float FL_MONSTER = 32;
|
|
float FL_GODMODE = 64;
|
|
float FL_NOTARGET = 128;
|
|
float FL_ITEM = 256;
|
|
float FL_ONGROUND = 512;
|
|
float FL_PARTIALGROUND = 1024;
|
|
float FL_WATERJUMP = 2048;
|
|
float FL_JUMPRELEASED = 4096;
|
|
|
|
// movetype
|
|
float MOVETYPE_NONE = 0;
|
|
float MOVETYPE_WALK = 3;
|
|
float MOVETYPE_STEP = 4;
|
|
float MOVETYPE_FLY = 5;
|
|
float MOVETYPE_TOSS = 6;
|
|
float MOVETYPE_PUSH = 7;
|
|
float MOVETYPE_NOCLIP = 8;
|
|
float MOVETYPE_FLYMISSILE = 9;
|
|
float MOVETYPE_BOUNCE = 10;
|
|
|
|
// solid
|
|
float SOLID_NOT = 0;
|
|
float SOLID_TRIGGER = 1;
|
|
float SOLID_BBOX = 2;
|
|
float SOLID_SLIDEBOX = 3;
|
|
float SOLID_BSP = 4;
|
|
|
|
// range
|
|
float RANGE_MELEE = 0;
|
|
float RANGE_NEAR = 1;
|
|
float RANGE_MID = 2;
|
|
float RANGE_FAR = 3;
|
|
|
|
// deadflag
|
|
float DEAD_NO = 0;
|
|
float DEAD_DYING = 1;
|
|
float DEAD_DEAD = 2;
|
|
float DEAD_RESPAWNABLE = 4;
|
|
|
|
// takedamage
|
|
float DAMAGE_NO = 0;
|
|
float DAMAGE_YES = 1;
|
|
float DAMAGE_AIM = 2;
|
|
|
|
// items
|
|
float IT_SHOTGUN = 1;
|
|
float IT_SUPER_SHOTGUN = 2;
|
|
float IT_NAILGUN = 4;
|
|
float IT_SUPER_NAILGUN = 8;
|
|
float IT_GRENADE_LAUNCHER = 16;
|
|
float IT_ROCKET_LAUNCHER = 32;
|
|
float IT_LIGHTNING = 64;
|
|
float IT_EXTRA_WEAPON = 128;
|
|
float IT_SHELLS = 256;
|
|
float IT_NAILS = 512;
|
|
float IT_ROCKETS = 1024;
|
|
float IT_CELLS = 2048;
|
|
float IT_AXE = 4096;
|
|
float IT_ARMOR1 = 8192;
|
|
float IT_ARMOR2 = 16384;
|
|
float IT_ARMOR3 = 32768;
|
|
float IT_SUPERHEALTH = 65536;
|
|
float IT_KEY1 = 131072;
|
|
float IT_KEY2 = 262144;
|
|
float IT_INVISIBILITY = 524288;
|
|
float IT_INVULNERABILITY = 1048576;
|
|
float IT_SUIT = 2097152;
|
|
float IT_QUAD = 4194304;
|
|
|
|
// content
|
|
float CONTENT_EMPTY = -1;
|
|
float CONTENT_SOLID = -2;
|
|
float CONTENT_WATER = -3;
|
|
float CONTENT_SLIME = -4;
|
|
float CONTENT_LAVA = -5;
|
|
float CONTENT_SKY = -6;
|
|
|
|
// state
|
|
float STATE_TOP = 0;
|
|
float STATE_BOTTOM = 1;
|
|
float STATE_UP = 2;
|
|
float STATE_DOWN = 3;
|
|
|
|
// hull sizes
|
|
vector VEC_ORIGIN = '0 0 0';
|
|
vector VEC_HULL_MIN = '-16 -16 -24';
|
|
vector VEC_HULL_MAX = '16 16 32';
|
|
vector VEC_HULL2_MIN = '-32 -32 -24';
|
|
vector VEC_HULL2_MAX = '32 32 64';
|
|
|
|
// protocol bytes
|
|
float SVC_BAD = 0;
|
|
float SVC_NOP = 1;
|
|
float SVC_DISCONNECT = 2;
|
|
float SVC_UPDATESTAT = 3;
|
|
float SVC_VERSION = 4;
|
|
float SVC_SETVIEW = 5;
|
|
float SVC_SOUND = 6;
|
|
float SVC_TIME = 7;
|
|
float SVC_PRINT = 8;
|
|
float SVC_STUFFTEXT = 9;
|
|
float SVC_SETANGLE = 10;
|
|
float SVC_SERVERINFO = 11;
|
|
float SVC_LIGHTSTYLE = 12;
|
|
float SVC_UPDATENAME = 13;
|
|
float SVC_UPDATEFRAGS = 14;
|
|
float SVC_CLIENTDATA = 15;
|
|
float SVC_STOPSOUND = 16;
|
|
float SVC_UPDATECOLORS = 17;
|
|
float SVC_PARTICLE = 18;
|
|
float SVC_DAMAGE = 19;
|
|
float SVC_SPAWNSTATIC = 20;
|
|
float SVC_SPAWNBINARY = 21;
|
|
float SVC_SPAWNBASELINE = 22;
|
|
float SVC_TEMPENTITY = 23;
|
|
float SVC_SETPAUSE = 24;
|
|
float SVC_SIGNONNUM = 25;
|
|
float SVC_CENTERPRINT = 26;
|
|
float SVC_KILLEDMONSTER = 27;
|
|
float SVC_FOUNDSECRET = 28;
|
|
float SVC_SPAWNSTATICSOUND= 29;
|
|
float SVC_INTERMISSION = 30;
|
|
float SVC_FINALE = 31;
|
|
float SVC_CDTRACK = 32;
|
|
float SVC_SELLSCREEN = 33;
|
|
float SVC_CUTSCENE = 34;
|
|
|
|
// stats
|
|
float STAT_HEALTH = 0;
|
|
float STAT_FRAGS = 1;
|
|
float STAT_WEAPON = 2;
|
|
float STAT_AMMO = 3;
|
|
float STAT_ARMOR = 4;
|
|
float STAT_WEAPONFRAME = 5;
|
|
float STAT_SHELLS = 6;
|
|
float STAT_NAILS = 7;
|
|
float STAT_ROCKETS = 8;
|
|
float STAT_CELLS = 9;
|
|
float STAT_ACTIVEWEAPON = 10;
|
|
float STAT_TOTALSECRETS = 11;
|
|
float STAT_TOTALMONSTERS = 12;
|
|
float STAT_SECRETS = 13;
|
|
float STAT_MONSTERS = 14;
|
|
|
|
// temp ents
|
|
float TE_SPIKE = 0;
|
|
float TE_SUPERSPIKE = 1;
|
|
float TE_GUNSHOT = 2;
|
|
float TE_EXPLOSION = 3;
|
|
float TE_TAREXPLOSION = 4;
|
|
float TE_LIGHTNING1 = 5;
|
|
float TE_LIGHTNING2 = 6;
|
|
float TE_WIZSPIKE = 7;
|
|
float TE_KNIGHTSPIKE = 8;
|
|
float TE_LIGHTNING3 = 9;
|
|
float TE_LAVASPLASH = 10;
|
|
float TE_TELEPORT = 11;
|
|
float TE_EXPLOSION2 = 12;
|
|
float TE_BEAM = 13;
|
|
|
|
// sound channels
|
|
float CHAN_AUTO = 0;
|
|
float CHAN_WEAPON = 1;
|
|
float CHAN_VOICE = 2;
|
|
float CHAN_ITEM = 3;
|
|
float CHAN_BODY = 4;
|
|
|
|
// sound attenuation
|
|
float ATTN_NONE = 0;
|
|
float ATTN_NORM = 1;
|
|
float ATTN_IDLE = 2;
|
|
float ATTN_STATIC = 3;
|
|
|
|
// update types
|
|
float UPDATE_GENERAL = 0;
|
|
float UPDATE_STATIC = 1;
|
|
float UPDATE_BINARY = 2;
|
|
float UPDATE_TEMP = 3;
|
|
|
|
// effects
|
|
float EF_BRIGHTFIELD = 1;
|
|
float EF_MUZZLEFLASH = 2;
|
|
float EF_BRIGHTLIGHT = 4;
|
|
float EF_DIMLIGHT = 8;
|
|
|
|
// messages
|
|
float MSG_BROADCAST = 0;
|
|
float MSG_ONE = 1;
|
|
float MSG_ALL = 2;
|
|
float MSG_INIT = 3;
|
|
|
|
// attack styles
|
|
float AS_STRAIGHT = 1;
|
|
float AS_SLIDING = 2;
|
|
float AS_MELEE = 3;
|
|
float AS_MISSILE = 4;
|
|
float AS_SPAM = 5;
|
|
|
|
// traceline flags
|
|
float MOVE_NORMAL = 0;
|
|
float MOVE_NOMONSTERS = 1;
|
|
float MOVE_MISSILE = 2;
|
|
|
|
// flags2
|
|
float FL2_ONLADDER = 1;
|
|
float FL2_PROJECTILE = 2;
|
|
|
|
/*==========
|
|
Globals
|
|
==========*/
|
|
|
|
string string_null;
|
|
entity newmis;
|
|
entity activator;
|
|
float framecount;
|
|
float skill;
|
|
entity lastspawn;
|
|
float developer;
|
|
float sv_gravity;
|
|
float gameover, intermission_running, intermission_exittime;
|
|
string nextmap;
|
|
|
|
/*==========
|
|
Fields
|
|
==========*/
|
|
|
|
// not used by gamecode, but used by map compiling utilities, so included to stop console warnings
|
|
__used .float light_lev;
|
|
__used .string wad;
|
|
|
|
// pain and death
|
|
.void(entity inflictor, entity attacker) th_die;
|
|
.void(entity attacker, float damage) th_pain;
|
|
|
|
// monster AI
|
|
.void() th_stand;
|
|
.void() th_walk;
|
|
.void() th_run;
|
|
.void() th_missile;
|
|
.void() th_melee;
|
|
.void() th_spam;
|
|
|
|
.float alpha;
|
|
.vector finaldest;
|
|
.float gravity;
|
|
.string killtarget;
|
|
.string map;
|
|
.float style;
|
|
.float style2;
|
|
.float switchshadstyle;
|
|
.void() think1;
|
|
.float worldtype;
|
|
.entity trigger_field;
|
|
.float cnt, colour, count, delay, distance, dmg, height, lip, pausetime, speed, state, volume, wait;
|
|
.float t_length, t_width;
|
|
.string mdl, mdl1, mdl2, mdl3, headmodel;
|
|
.string noise4;
|
|
.vector dest1, dest2;
|
|
.vector pos1, pos2;
|
|
.vector mangle, oldorigin;
|
|
.float attack_finished, pain_finished;
|
|
.float attack_state;
|
|
.entity movetarget, oldenemy;
|
|
.float lefty;
|
|
.float search_time;
|
|
.float show_hostile;
|
|
.float air_finished, fly_sound, health_rot_time, hurt_time, jump_flag, swim_flag, walkframe;
|
|
.string deathtype;
|
|
.float flags2;
|
|
|
|
// powerups
|
|
.float invincible_finished, invincible_time, invincible_sound;
|
|
.float invisible_finished, invisible_time, invisible_sound;
|
|
.float super_damage_finished, super_time, super_sound;
|
|
.float radsuit_finished, rad_time;
|
|
|
|
/*==========
|
|
Prototypes
|
|
==========*/
|
|
|
|
void() monster_death_use;
|
|
void() FoundTarget;
|
|
void(vector org, entity who) spawn_tdeath;
|
|
void(vector org) spawn_tfog;
|