Annotation of quake1/progs.h, revision 1.1

1.1     ! root        1: 
        !             2: #include "pr_comp.h"                   // defs shared with qcc
        !             3: #include "progdefs.h"                  // generated by program cdefs
        !             4: 
        !             5: typedef union eval_s
        !             6: {
        !             7:        string_t                string;
        !             8:        float                   _float;
        !             9:        float                   vector[3];
        !            10:        func_t                  function;
        !            11:        int                             _int;
        !            12:        int                             edict;
        !            13: } eval_t;      
        !            14: 
        !            15: #define        MAX_ENT_LEAFS   16
        !            16: typedef struct edict_s
        !            17: {
        !            18:        qboolean        free;
        !            19:        link_t          area;                           // linked to a division node or leaf
        !            20:        
        !            21:        int                     num_leafs;
        !            22:        short           leafnums[MAX_ENT_LEAFS];
        !            23: 
        !            24:        entity_state_t  baseline;
        !            25:        
        !            26:        float           freetime;                       // sv.time when the object was freed
        !            27:        entvars_t       v;                                      // C exported fields from progs
        !            28: // other fields from progs come immediately after
        !            29: } edict_t;
        !            30: #define        EDICT_FROM_AREA(l) STRUCT_FROM_LINK(l,edict_t,area)
        !            31: 
        !            32: //============================================================================
        !            33: 
        !            34: extern dprograms_t             *progs;
        !            35: extern dfunction_t             *pr_functions;
        !            36: extern char                    *pr_strings;
        !            37: extern ddef_t                  *pr_globaldefs;
        !            38: extern ddef_t                  *pr_fielddefs;
        !            39: extern dstatement_t    *pr_statements;
        !            40: extern globalvars_t    *pr_global_struct;
        !            41: extern float                   *pr_globals;                    // same as pr_global_struct
        !            42: 
        !            43: extern int                             pr_edict_size;  // in bytes
        !            44: 
        !            45: //============================================================================
        !            46: 
        !            47: void PR_Init (void);
        !            48: 
        !            49: void PR_ExecuteProgram (func_t fnum);
        !            50: void PR_LoadProgs (void);
        !            51: 
        !            52: void PR_Profile_f (void);
        !            53: 
        !            54: edict_t *ED_Alloc (void);
        !            55: void ED_Free (edict_t *ed);
        !            56: 
        !            57: char   *ED_NewString (char *string);
        !            58: // returns a copy of the string allocated from the server's string heap
        !            59: 
        !            60: void ED_Print (edict_t *ed);
        !            61: void ED_Write (FILE *f, edict_t *ed);
        !            62: char *ED_ParseEdict (char *data, edict_t *ent);
        !            63: 
        !            64: void ED_WriteGlobals (FILE *f);
        !            65: void ED_ParseGlobals (char *data);
        !            66: 
        !            67: void ED_LoadFromFile (char *data);
        !            68: 
        !            69: //define EDICT_NUM(n) ((edict_t *)(sv.edicts+ (n)*pr_edict_size))
        !            70: //define NUM_FOR_EDICT(e) (((byte *)(e) - sv.edicts)/pr_edict_size)
        !            71: 
        !            72: edict_t *EDICT_NUM(int n);
        !            73: int NUM_FOR_EDICT(edict_t *e);
        !            74: 
        !            75: #define        NEXT_EDICT(e) ((edict_t *)( (byte *)e + pr_edict_size))
        !            76: 
        !            77: #define        EDICT_TO_PROG(e) ((byte *)e - (byte *)sv.edicts)
        !            78: #define PROG_TO_EDICT(e) ((edict_t *)((byte *)sv.edicts + e))
        !            79: 
        !            80: //============================================================================
        !            81: 
        !            82: #define        G_FLOAT(o) (pr_globals[o])
        !            83: #define        G_INT(o) (*(int *)&pr_globals[o])
        !            84: #define        G_EDICT(o) ((edict_t *)((byte *)sv.edicts+ *(int *)&pr_globals[o]))
        !            85: #define G_EDICTNUM(o) NUM_FOR_EDICT(G_EDICT(o))
        !            86: #define        G_VECTOR(o) (&pr_globals[o])
        !            87: #define        G_STRING(o) (pr_strings + *(string_t *)&pr_globals[o])
        !            88: #define        G_FUNCTION(o) (*(func_t *)&pr_globals[o])
        !            89: 
        !            90: #define        E_FLOAT(e,o) (((float*)&e->v)[o])
        !            91: #define        E_INT(e,o) (*(int *)&((float*)&e->v)[o])
        !            92: #define        E_VECTOR(e,o) (&((float*)&e->v)[o])
        !            93: #define        E_STRING(e,o) (pr_strings + *(string_t *)&((float*)&e->v)[o])
        !            94: 
        !            95: extern int             type_size[8];
        !            96: 
        !            97: typedef void (*builtin_t) (void);
        !            98: extern builtin_t *pr_builtins;
        !            99: extern int pr_numbuiltins;
        !           100: 
        !           101: extern int             pr_argc;
        !           102: 
        !           103: extern qboolean        pr_trace;
        !           104: extern dfunction_t     *pr_xfunction;
        !           105: extern int                     pr_xstatement;
        !           106: 
        !           107: extern unsigned short          pr_crc;
        !           108: 
        !           109: void PR_RunError (char *error, ...);
        !           110: 
        !           111: void ED_PrintEdicts (void);
        !           112: void ED_PrintNum (int ent);
        !           113: 

unix.superglobalmegacorp.com

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