home *** CD-ROM | disk | FTP | other *** search
/ Quake 'em / QUAKEEM.BIN / quake / programs / jteam092 / defs.qc < prev    next >
Encoding:
Text File  |  1996-08-16  |  18.2 KB  |  717 lines

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