Annotation of quakeworld/progs/defs.qc, revision 1.1.1.1

1.1       root        1: 
                      2: /*
                      3: ==============================================================================
                      4: 
                      5:                        SOURCE FOR GLOBALVARS_T C STRUCTURE
                      6: 
                      7: ==============================================================================
                      8: */
                      9: 
                     10: //
                     11: // system globals
                     12: //
                     13: entity          self;
                     14: entity          other;
                     15: entity          world;
                     16: float           time;
                     17: float           frametime;
                     18: 
                     19: entity          newmis;                         // if this is set, the entity that just
                     20:                                                                // run created a new missile that should
                     21:                                                                // be simulated immediately
                     22: 
                     23: 
                     24: float           force_retouch;          // force all entities to touch triggers
                     25:                                                                // next frame.  this is needed because
                     26:                                                                // non-moving things don't normally scan
                     27:                                                                // for triggers, and when a trigger is
                     28:                                                                // created (like a teleport trigger), it
                     29:                                                                // needs to catch everything.
                     30:                                                                // decremented each frame, so set to 2
                     31:                                                                // to guarantee everything is touched
                     32: string          mapname;
                     33: 
                     34: float           serverflags;            // propagated from level to level, used to
                     35:                                                                // keep track of completed episodes
                     36: 
                     37: float           total_secrets;
                     38: float           total_monsters;
                     39: 
                     40: float           found_secrets;          // number of secrets found
                     41: float           killed_monsters;        // number of monsters killed
                     42: 
                     43: 
                     44: // spawnparms are used to encode information about clients across server
                     45: // level changes
                     46: float           parm1, parm2, parm3, parm4, parm5, parm6, parm7, parm8, parm9, parm10, parm11, parm12, parm13, parm14, parm15, parm16;
                     47: 
                     48: //
                     49: // global variables set by built in functions
                     50: //      
                     51: vector          v_forward, v_up, v_right;       // set by makevectors()
                     52:        
                     53: // set by traceline / tracebox
                     54: float           trace_allsolid;
                     55: float           trace_startsolid;
                     56: float           trace_fraction;
                     57: vector          trace_endpos;
                     58: vector          trace_plane_normal;
                     59: float           trace_plane_dist;
                     60: entity          trace_ent;
                     61: float           trace_inopen;
                     62: float           trace_inwater;
                     63: 
                     64: entity          msg_entity;                             // destination of single entity writes
                     65: 
                     66: //
                     67: // required prog functions
                     68: //
                     69: void()          main;                                           // only for testing
                     70: 
                     71: void()          StartFrame;
                     72: 
                     73: void()          PlayerPreThink;
                     74: void()          PlayerPostThink;
                     75: 
                     76: void()          ClientKill;
                     77: void()          ClientConnect;
                     78: void()          PutClientInServer;              // call after setting the parm1... parms
                     79: void()          ClientDisconnect;
                     80: 
                     81: void()          SetNewParms;                    // called when a client first connects to
                     82:                                                                        // a server. sets parms so they can be
                     83:                                                                        // saved off for restarts
                     84: 
                     85: void()          SetChangeParms;                 // call to set parms for self so they can
                     86:                                                                        // be saved for a level transition
                     87: 
                     88: 
                     89: //================================================
                     90: void            end_sys_globals;                // flag for structure dumping
                     91: //================================================
                     92: 
                     93: /*
                     94: ==============================================================================
                     95: 
                     96:                        SOURCE FOR ENTVARS_T C STRUCTURE
                     97: 
                     98: ==============================================================================
                     99: */
                    100: 
                    101: //
                    102: // system fields (*** = do not set in prog code, maintained by C code)
                    103: //
                    104: .float          modelindex;             // *** model index in the precached list
                    105: .vector         absmin, absmax; // *** origin + mins / maxs
                    106: 
                    107: .float          ltime;                  // local time for entity
                    108: .float          lastruntime;    // *** to allow entities to run out of sequence
                    109: 
                    110: .float          movetype;
                    111: .float          solid;
                    112: 
                    113: .vector         origin;                 // ***
                    114: .vector         oldorigin;              // ***
                    115: .vector         velocity;
                    116: .vector         angles;
                    117: .vector         avelocity;
                    118: 
                    119: .string         classname;              // spawn function
                    120: .string         model;
                    121: .float          frame;
                    122: .float          skin;
                    123: .float          effects;
                    124: 
                    125: .vector         mins, maxs;             // bounding box extents reletive to origin
                    126: .vector         size;                   // maxs - mins
                    127: 
                    128: .void()         touch;
                    129: .void()         use;
                    130: .void()         think;
                    131: .void()         blocked;                // for doors or plats, called when can't push other
                    132: 
                    133: .float          nextthink;
                    134: .entity         groundentity;
                    135: 
                    136: 
                    137: 
                    138: // stats
                    139: .float          health;
                    140: .float          frags;
                    141: .float          weapon;                 // one of the IT_SHOTGUN, etc flags
                    142: .string         weaponmodel;
                    143: .float          weaponframe;
                    144: .float          currentammo;
                    145: .float          ammo_shells, ammo_nails, ammo_rockets, ammo_cells;
                    146: 
                    147: .float          items;                  // bit flags
                    148: 
                    149: .float          takedamage;
                    150: .entity         chain;
                    151: .float          deadflag;
                    152: 
                    153: .vector         view_ofs;                       // add to origin to get eye point
                    154: 
                    155: 
                    156: .float          button0;                // fire
                    157: .float          button1;                // use
                    158: .float          button2;                // jump
                    159: 
                    160: .float          impulse;                // weapon changes
                    161: 
                    162: .float          fixangle;
                    163: .vector         v_angle;                // view / targeting angle for players
                    164: 
                    165: .string         netname;
                    166: 
                    167: .entity         enemy;
                    168: 
                    169: .float          flags;
                    170: 
                    171: .float          colormap;
                    172: .float          team;
                    173: 
                    174: .float          max_health;             // players maximum health is stored here
                    175: 
                    176: .float          teleport_time;  // don't back up
                    177: 
                    178: .float          armortype;              // save this fraction of incoming damage
                    179: .float          armorvalue;
                    180: 
                    181: .float          waterlevel;             // 0 = not in, 1 = feet, 2 = wast, 3 = eyes
                    182: .float          watertype;              // a contents value
                    183: 
                    184: .float          ideal_yaw;
                    185: .float          yaw_speed;
                    186: 
                    187: .entity         aiment;
                    188: 
                    189: .entity         goalentity;             // a movetarget or an enemy
                    190: 
                    191: .float          spawnflags;
                    192: 
                    193: .string         target;
                    194: .string         targetname;
                    195: 
                    196: // damage is accumulated through a frame. and sent as one single
                    197: // message, so the super shotgun doesn't generate huge messages
                    198: .float          dmg_take;
                    199: .float          dmg_save;
                    200: .entity         dmg_inflictor;
                    201: 
                    202: .entity         owner;          // who launched a missile
                    203: .vector         movedir;        // mostly for doors, but also used for waterjump
                    204: 
                    205: .string         message;                // trigger messages
                    206: 
                    207: .float          sounds;         // either a cd track number or sound number
                    208: 
                    209: .string         noise, noise1, noise2, noise3;  // contains names of wavs to play
                    210: 
                    211: //================================================
                    212: void            end_sys_fields;                 // flag for structure dumping
                    213: //================================================
                    214: 
                    215: /*
                    216: ==============================================================================
                    217: 
                    218:                                VARS NOT REFERENCED BY C CODE
                    219: 
                    220: ==============================================================================
                    221: */
                    222: 
                    223: 
                    224: //
                    225: // constants
                    226: //
                    227: 
                    228: float   FALSE                                   = 0;
                    229: float   TRUE                                    = 1;
                    230: 
                    231: // edict.flags
                    232: float   FL_FLY                                  = 1;
                    233: float   FL_SWIM                                 = 2;
                    234: float   FL_CLIENT                               = 8;    // set for all client edicts
                    235: float   FL_INWATER                              = 16;   // for enter / leave water splash
                    236: float   FL_MONSTER                              = 32;
                    237: float   FL_GODMODE                              = 64;   // player cheat
                    238: float   FL_NOTARGET                             = 128;  // player cheat
                    239: float   FL_ITEM                                 = 256;  // extra wide size for bonus items
                    240: float   FL_ONGROUND                             = 512;  // standing on something
                    241: float   FL_PARTIALGROUND                = 1024; // not all corners are valid
                    242: float   FL_WATERJUMP                    = 2048; // player jumping out of water
                    243: float   FL_JUMPRELEASED                 = 4096; // for jump debouncing
                    244: 
                    245: // edict.movetype values
                    246: float   MOVETYPE_NONE                   = 0;    // never moves
                    247: //float MOVETYPE_ANGLENOCLIP    = 1;
                    248: //float MOVETYPE_ANGLECLIP              = 2;
                    249: float   MOVETYPE_WALK                   = 3;    // players only
                    250: float   MOVETYPE_STEP                   = 4;    // discrete, not real time unless fall
                    251: float   MOVETYPE_FLY                    = 5;
                    252: float   MOVETYPE_TOSS                   = 6;    // gravity
                    253: float   MOVETYPE_PUSH                   = 7;    // no clip to world, push and crush
                    254: float   MOVETYPE_NOCLIP                 = 8;
                    255: float   MOVETYPE_FLYMISSILE             = 9;    // fly with extra size against monsters
                    256: float   MOVETYPE_BOUNCE                 = 10;
                    257: float   MOVETYPE_BOUNCEMISSILE  = 11;   // bounce with extra size
                    258: 
                    259: // edict.solid values
                    260: float   SOLID_NOT                               = 0;    // no interaction with other objects
                    261: float   SOLID_TRIGGER                   = 1;    // touch on edge, but not blocking
                    262: float   SOLID_BBOX                              = 2;    // touch on edge, block
                    263: float   SOLID_SLIDEBOX                  = 3;    // touch on edge, but not an onground
                    264: float   SOLID_BSP                               = 4;    // bsp clip, touch on edge, block
                    265: 
                    266: // range values
                    267: float   RANGE_MELEE                             = 0;
                    268: float   RANGE_NEAR                              = 1;
                    269: float   RANGE_MID                               = 2;
                    270: float   RANGE_FAR                               = 3;
                    271: 
                    272: // deadflag values
                    273: 
                    274: float   DEAD_NO                                 = 0;
                    275: float   DEAD_DYING                              = 1;
                    276: float   DEAD_DEAD                               = 2;
                    277: float   DEAD_RESPAWNABLE                = 3;
                    278: 
                    279: // takedamage values
                    280: 
                    281: float   DAMAGE_NO                               = 0;
                    282: float   DAMAGE_YES                              = 1;
                    283: float   DAMAGE_AIM                              = 2;
                    284: 
                    285: // items
                    286: float   IT_AXE                                  = 4096;
                    287: float   IT_SHOTGUN                              = 1;
                    288: float   IT_SUPER_SHOTGUN                = 2;
                    289: float   IT_NAILGUN                              = 4;
                    290: float   IT_SUPER_NAILGUN                = 8;
                    291: float   IT_GRENADE_LAUNCHER             = 16;
                    292: float   IT_ROCKET_LAUNCHER              = 32;
                    293: float   IT_LIGHTNING                    = 64;
                    294: float   IT_EXTRA_WEAPON                 = 128;
                    295: 
                    296: float   IT_SHELLS                               = 256;
                    297: float   IT_NAILS                                = 512;
                    298: float   IT_ROCKETS                              = 1024;
                    299: float   IT_CELLS                                = 2048;
                    300: 
                    301: float   IT_ARMOR1                               = 8192;
                    302: float   IT_ARMOR2                               = 16384;
                    303: float   IT_ARMOR3                               = 32768;
                    304: float   IT_SUPERHEALTH                  = 65536;
                    305: 
                    306: float   IT_KEY1                                 = 131072;
                    307: float   IT_KEY2                                 = 262144;
                    308: 
                    309: float   IT_INVISIBILITY                 = 524288;
                    310: float   IT_INVULNERABILITY              = 1048576;
                    311: float   IT_SUIT                                 = 2097152;
                    312: float   IT_QUAD                                 = 4194304;
                    313: 
                    314: // point content values
                    315: 
                    316: float   CONTENT_EMPTY                   = -1;
                    317: float   CONTENT_SOLID                   = -2;
                    318: float   CONTENT_WATER                   = -3;
                    319: float   CONTENT_SLIME                   = -4;
                    320: float   CONTENT_LAVA                    = -5;
                    321: float   CONTENT_SKY                             = -6;
                    322: 
                    323: float   STATE_TOP               = 0;
                    324: float   STATE_BOTTOM    = 1;
                    325: float   STATE_UP                = 2;
                    326: float   STATE_DOWN              = 3;
                    327: 
                    328: vector  VEC_ORIGIN = '0 0 0';
                    329: vector  VEC_HULL_MIN = '-16 -16 -24';
                    330: vector  VEC_HULL_MAX = '16 16 32';
                    331: 
                    332: vector  VEC_HULL2_MIN = '-32 -32 -24';
                    333: vector  VEC_HULL2_MAX = '32 32 64';
                    334: 
                    335: // protocol bytes
                    336: float   SVC_TEMPENTITY          = 23;
                    337: float   SVC_KILLEDMONSTER       = 27;
                    338: float   SVC_FOUNDSECRET         = 28;
                    339: float   SVC_INTERMISSION        = 30;
                    340: float   SVC_FINALE                      = 31;
                    341: float   SVC_CDTRACK                     = 32;
                    342: float   SVC_SELLSCREEN          = 33;
                    343: float   SVC_SMALLKICK           = 34;
                    344: float   SVC_BIGKICK                     = 35;
                    345: float   SVC_MUZZLEFLASH         = 39;
                    346: 
                    347: 
                    348: float   TE_SPIKE                = 0;
                    349: float   TE_SUPERSPIKE   = 1;
                    350: float   TE_GUNSHOT              = 2;
                    351: float   TE_EXPLOSION    = 3;
                    352: float   TE_TAREXPLOSION = 4;
                    353: float   TE_LIGHTNING1   = 5;
                    354: float   TE_LIGHTNING2   = 6;
                    355: float   TE_WIZSPIKE             = 7;
                    356: float   TE_KNIGHTSPIKE  = 8;
                    357: float   TE_LIGHTNING3   = 9;
                    358: float   TE_LAVASPLASH   = 10;
                    359: float   TE_TELEPORT             = 11;
                    360: float   TE_BLOOD                = 12;
                    361: float   TE_LIGHTNINGBLOOD = 13;
                    362: 
                    363: // sound channels
                    364: // channel 0 never willingly overrides
                    365: // other channels (1-7) allways override a playing sound on that channel
                    366: float   CHAN_AUTO               = 0;
                    367: float   CHAN_WEAPON             = 1;
                    368: float   CHAN_VOICE              = 2;
                    369: float   CHAN_ITEM               = 3;
                    370: float   CHAN_BODY               = 4;
                    371: float   CHAN_NO_PHS_ADD = 8;    // ie: CHAN_BODY+CHAN_NO_PHS_ADD
                    372: 
                    373: float   ATTN_NONE               = 0;
                    374: float   ATTN_NORM               = 1;
                    375: float   ATTN_IDLE               = 2;
                    376: float   ATTN_STATIC             = 3;
                    377: 
                    378: // update types
                    379: 
                    380: float   UPDATE_GENERAL  = 0;
                    381: float   UPDATE_STATIC   = 1;
                    382: float   UPDATE_BINARY   = 2;
                    383: float   UPDATE_TEMP             = 3;
                    384: 
                    385: // entity effects
                    386: 
                    387: //float EF_BRIGHTFIELD  = 1;
                    388: //float EF_MUZZLEFLASH  = 2;
                    389: float   EF_BRIGHTLIGHT  = 4;
                    390: float   EF_DIMLIGHT     = 8;
                    391: float   EF_FLAG1                = 16;
                    392: float   EF_FLAG2                = 32;
                    393: // GLQuakeWorld Stuff
                    394: float  EF_BLUE         =       64;     // Blue Globe effect for Quad
                    395: float  EF_RED          =       128;    // Red Globe effect for Pentagram
                    396: // messages
                    397: float   MSG_BROADCAST   = 0;            // unreliable to all
                    398: float   MSG_ONE                 = 1;            // reliable to one (msg_entity)
                    399: float   MSG_ALL                 = 2;            // reliable to all
                    400: float   MSG_INIT                = 3;            // write to the init string
                    401: float   MSG_MULTICAST   = 4;            // for multicast() call
                    402: 
                    403: // message levels
                    404: float   PRINT_LOW               = 0;            // pickup messages
                    405: float   PRINT_MEDIUM           = 1;            // death messages
                    406: float   PRINT_HIGH              = 2;            // critical messages
                    407: float   PRINT_CHAT              = 3;            // also goes to chat console
                    408: 
                    409: // multicast sets
                    410: float   MULTICAST_ALL   = 0;            // every client
                    411: float   MULTICAST_PHS   = 1;            // within hearing
                    412: float   MULTICAST_PVS   = 2;            // within sight
                    413: float   MULTICAST_ALL_R = 3;            // every client, reliable
                    414: float   MULTICAST_PHS_R = 4;            // within hearing, reliable
                    415: float   MULTICAST_PVS_R = 5;            // within sight, reliable
                    416: 
                    417: 
                    418: 
                    419: 
                    420: //================================================
                    421: 
                    422: //
                    423: // globals
                    424: //
                    425: float   movedist;
                    426: 
                    427: string  string_null;    // null string, nothing should be held here
                    428: float   empty_float;
                    429: 
                    430: entity  activator;              // the entity that activated a trigger or brush
                    431: 
                    432: entity  damage_attacker;        // set by T_Damage
                    433: entity  damage_inflictor;
                    434: float   framecount;
                    435: 
                    436: //
                    437: // cvars checked each frame
                    438: //
                    439: float           teamplay;
                    440: float           timelimit;
                    441: float           fraglimit;
                    442: float           deathmatch;
                    443: float           rj                      =       1;
                    444: 
                    445: //================================================
                    446: 
                    447: //
                    448: // world fields (FIXME: make globals)
                    449: //
                    450: .string         wad;
                    451: .string         map;
                    452: .float          worldtype;      // 0=medieval 1=metal 2=base
                    453: 
                    454: //================================================
                    455: 
                    456: .string         killtarget;
                    457: 
                    458: //
                    459: // quakeed fields
                    460: //
                    461: .float          light_lev;              // not used by game, but parsed by light util
                    462: .float          style;
                    463: 
                    464: 
                    465: //
                    466: // monster ai
                    467: //
                    468: .void()         th_stand;
                    469: .void()         th_walk;
                    470: .void()         th_run;
                    471: .void()         th_missile;
                    472: .void()         th_melee;
                    473: .void(entity attacker, float damage)            th_pain;
                    474: .void()         th_die;
                    475: 
                    476: .entity         oldenemy;               // mad at this player before taking damage
                    477: 
                    478: .float          speed;
                    479: 
                    480: .float  lefty;
                    481: 
                    482: .float  search_time;
                    483: .float  attack_state;
                    484: 
                    485: float   AS_STRAIGHT             = 1;
                    486: float   AS_SLIDING              = 2;
                    487: float   AS_MELEE                = 3;
                    488: float   AS_MISSILE              = 4;
                    489: 
                    490: //
                    491: // player only fields
                    492: //
                    493: .float          voided;
                    494: .float          walkframe;
                    495: 
                    496: // Zoid Additions
                    497: .float         maxspeed;               // Used to set Maxspeed on a player
                    498: .float         gravity;                // Gravity Multiplier (0 to 1.0)
                    499: 
                    500: 
                    501: 
                    502: .float          attack_finished;
                    503: .float          pain_finished;
                    504: 
                    505: .float          invincible_finished;
                    506: .float          invisible_finished;
                    507: .float          super_damage_finished;
                    508: .float          radsuit_finished;
                    509: 
                    510: .float          invincible_time, invincible_sound;
                    511: .float          invisible_time, invisible_sound;
                    512: .float          super_time, super_sound;
                    513: .float          rad_time;
                    514: .float          fly_sound;
                    515: 
                    516: .float          axhitme;
                    517: 
                    518: .float          show_hostile;   // set to time+0.2 whenever a client fires a
                    519:                                                        // weapon or takes damage.  Used to alert
                    520:                                                        // monsters that otherwise would let the player go
                    521: .float          jump_flag;              // player jump flag
                    522: .float          swim_flag;              // player swimming sound flag
                    523: .float          air_finished;   // when time > air_finished, start drowning
                    524: .float          bubble_count;   // keeps track of the number of bubbles
                    525: .string         deathtype;              // keeps track of how the player died
                    526: 
                    527: //
                    528: // object stuff
                    529: //
                    530: .string         mdl;
                    531: .vector         mangle;                 // angle at start
                    532: 
                    533: .vector         oldorigin;              // only used by secret door
                    534: 
                    535: .float          t_length, t_width;
                    536: 
                    537: 
                    538: //
                    539: // doors, etc
                    540: //
                    541: .vector         dest, dest1, dest2;
                    542: .float          wait;                   // time from firing to restarting
                    543: .float          delay;                  // time from activation to firing
                    544: .entity         trigger_field;  // door's trigger entity
                    545: .string         noise4;
                    546: 
                    547: //
                    548: // monsters
                    549: //
                    550: .float          pausetime;
                    551: .entity         movetarget;
                    552: 
                    553: 
                    554: //
                    555: // doors
                    556: //
                    557: .float          aflag;
                    558: .float          dmg;                    // damage done by door when hit
                    559:        
                    560: //
                    561: // misc
                    562: //
                    563: .float          cnt;                    // misc flag
                    564:        
                    565: //
                    566: // subs
                    567: //
                    568: .void()         think1;
                    569: .vector         finaldest, finalangle;
                    570: 
                    571: //
                    572: // triggers
                    573: //
                    574: .float          count;                  // for counting triggers
                    575: 
                    576: 
                    577: //
                    578: // plats / doors / buttons
                    579: //
                    580: .float          lip;
                    581: .float          state;
                    582: .vector         pos1, pos2;             // top and bottom positions
                    583: .float          height;
                    584: 
                    585: //
                    586: // sounds
                    587: //
                    588: .float          waitmin, waitmax;
                    589: .float          distance;
                    590: .float          volume;
                    591: 
                    592: 
                    593: 
                    594: 
                    595: //===========================================================================
                    596:        
                    597: 
                    598: //
                    599: // builtin functions
                    600: //
                    601: 
                    602: void(vector ang)        makevectors             = #1;           // sets v_forward, etc globals
                    603: void(entity e, vector o) setorigin      = #2;
                    604: void(entity e, string m) setmodel       = #3;           // set movetype and solid first
                    605: void(entity e, vector min, vector max) setsize = #4;
                    606: // #5 was removed
                    607: void() break                                            = #6;
                    608: float() random                                          = #7;           // returns 0 - 1
                    609: void(entity e, float chan, string samp, float vol, float atten) sound = #8;
                    610: vector(vector v) normalize                      = #9;
                    611: void(string e) error                            = #10;
                    612: void(string e) objerror                         = #11;
                    613: float(vector v) vlen                            = #12;
                    614: float(vector v) vectoyaw                        = #13;
                    615: entity() spawn                                          = #14;
                    616: void(entity e) remove                           = #15;
                    617: 
                    618: // sets trace_* globals
                    619: // nomonsters can be:
                    620: // An entity will also be ignored for testing if forent == test,
                    621: // forent->owner == test, or test->owner == forent
                    622: // a forent of world is ignored
                    623: void(vector v1, vector v2, float nomonsters, entity forent) traceline = #16;    
                    624: 
                    625: entity() checkclient                            = #17;  // returns a client to look for
                    626: entity(entity start, .string fld, string match) find = #18;
                    627: string(string s) precache_sound         = #19;
                    628: string(string s) precache_model         = #20;
                    629: void(entity client, string s)stuffcmd = #21;
                    630: entity(vector org, float rad) findradius = #22;
                    631: void(float level, string s) bprint                              = #23;
                    632: void(entity client, float level, string s) sprint = #24;
                    633: void(string s) dprint                           = #25;
                    634: string(float f) ftos                            = #26;
                    635: string(vector v) vtos                           = #27;
                    636: void() coredump                                         = #28;          // prints all edicts
                    637: void() traceon                                          = #29;          // turns statment trace on
                    638: void() traceoff                                         = #30;
                    639: void(entity e) eprint                           = #31;          // prints an entire edict
                    640: float(float yaw, float dist) walkmove   = #32;  // returns TRUE or FALSE
                    641: // #33 was removed
                    642: float(float yaw, float dist) droptofloor= #34;  // TRUE if landed on floor
                    643: void(float style, string value) lightstyle = #35;
                    644: float(float v) rint                                     = #36;          // round to nearest int
                    645: float(float v) floor                            = #37;          // largest integer <= v
                    646: float(float v) ceil                                     = #38;          // smallest integer >= v
                    647: // #39 was removed
                    648: float(entity e) checkbottom                     = #40;          // true if self is on ground
                    649: float(vector v) pointcontents           = #41;          // returns a CONTENT_*
                    650: // #42 was removed
                    651: float(float f) fabs = #43;
                    652: vector(entity e, float speed) aim = #44;                // returns the shooting vector
                    653: float(string s) cvar = #45;                                             // return cvar.value
                    654: void(string s) localcmd = #46;                                  // put string into local que
                    655: entity(entity e) nextent = #47;                                 // for looping through all ents
                    656: // #48 was removed
                    657: void() ChangeYaw = #49;                                         // turn towards self.ideal_yaw
                    658:                                                                                        // at self.yaw_speed
                    659: // #50 was removed
                    660: vector(vector v) vectoangles                    = #51;
                    661: 
                    662: //
                    663: // direct client message generation
                    664: //
                    665: void(float to, float f) WriteByte               = #52;
                    666: void(float to, float f) WriteChar               = #53;
                    667: void(float to, float f) WriteShort              = #54;
                    668: void(float to, float f) WriteLong               = #55;
                    669: void(float to, float f) WriteCoord              = #56;
                    670: void(float to, float f) WriteAngle              = #57;
                    671: void(float to, string s) WriteString    = #58;
                    672: void(float to, entity s) WriteEntity    = #59;
                    673: 
                    674: // several removed
                    675: 
                    676: void(float step) movetogoal                             = #67;
                    677: 
                    678: string(string s) precache_file          = #68;  // no effect except for -copy
                    679: void(entity e) makestatic               = #69;
                    680: void(string s) changelevel = #70;
                    681: 
                    682: //#71 was removed
                    683: 
                    684: void(string var, string val) cvar_set = #72;    // sets cvar.value
                    685: 
                    686: void(entity client, string s) centerprint = #73;        // sprint, but in middle
                    687: 
                    688: void(vector pos, string samp, float vol, float atten) ambientsound = #74;
                    689: 
                    690: string(string s) precache_model2        = #75;          // registered version only
                    691: string(string s) precache_sound2        = #76;          // registered version only
                    692: string(string s) precache_file2         = #77;          // registered version only
                    693: 
                    694: void(entity e) setspawnparms            = #78;          // set parm1... to the
                    695:                                                                                                // values at level start
                    696:                                                                                                // for coop respawn
                    697: void(entity killer, entity killee) logfrag = #79;       // add to stats
                    698: 
                    699: string(entity e, string key) infokey    = #80;  // get a key value (world = serverinfo)
                    700: float(string s) stof                            = #81;          // convert string to float
                    701: void(vector where, float set) multicast = #82;  // sends the temp message to a set
                    702:                                                                                                // of clients, possibly in PVS or PHS
                    703: 
                    704: //============================================================================
                    705: 
                    706: //
                    707: // subs.qc
                    708: //
                    709: void(vector tdest, float tspeed, void() func) SUB_CalcMove;
                    710: void(entity ent, vector tdest, float tspeed, void() func) SUB_CalcMoveEnt;
                    711: void(vector destangle, float tspeed, void() func) SUB_CalcAngleMove;
                    712: void()  SUB_CalcMoveDone;
                    713: void() SUB_CalcAngleMoveDone;
                    714: void() SUB_Null;
                    715: void() SUB_UseTargets;
                    716: void() SUB_Remove;
                    717: 
                    718: //
                    719: //      combat.qc
                    720: //
                    721: void(entity targ, entity inflictor, entity attacker, float damage) T_Damage;
                    722: 
                    723: 
                    724: float (entity e, float healamount, float ignore) T_Heal; // health function
                    725: 
                    726: float(entity targ, entity inflictor) CanDamage;
                    727: 
                    728: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.