Annotation of quakeworld/progs/defs.qc, revision 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.