]> git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - prvm_cmds.c
client: Add cl_parse.h and move cl_parse prototypes to it
[xonotic/darkplaces.git] / prvm_cmds.c
index 6833080ec04a9f33c1508e4bae5be7a16328d079..4782261c86e4049239770e98f218cb37213a160e 100644 (file)
@@ -263,7 +263,7 @@ checkextension(extensionname)
 */
 
 // kind of helper function
-static qboolean checkextension(prvm_prog_t *prog, const char *name)
+static qbool checkextension(prvm_prog_t *prog, const char *name)
 {
        const char **e;
 
@@ -629,11 +629,11 @@ void VM_localcmd_server(prvm_prog_t *prog)
        Cbuf_AddText(&cmd_server, string);
 }
 
-static qboolean PRVM_Cvar_ReadOk(prvm_prog_t *prog, const char *string)
+static qbool PRVM_Cvar_ReadOk(prvm_prog_t *prog, const char *string)
 {
        cvar_t *cvar;
        cvar = Cvar_FindVar(prog->console_cmd->cvars, string, prog->console_cmd->cvars_flagsmask);
-       return ((cvar) && ((cvar->flags & CVAR_PRIVATE) == 0));
+       return ((cvar) && ((cvar->flags & CF_PRIVATE) == 0));
 }
 
 /*
@@ -684,15 +684,15 @@ void VM_cvar_type(prvm_prog_t *prog)
        }
 
        ret = 1; // CVAR_EXISTS
-       if(cvar->flags & CVAR_SAVE)
+       if(cvar->flags & CF_ARCHIVE)
                ret |= 2; // CVAR_TYPE_SAVED
-       if(cvar->flags & CVAR_PRIVATE)
+       if(cvar->flags & CF_PRIVATE)
                ret |= 4; // CVAR_TYPE_PRIVATE
-       if(!(cvar->flags & CVAR_ALLOCATED))
+       if(!(cvar->flags & CF_ALLOCATED))
                ret |= 8; // CVAR_TYPE_ENGINE
        if(cvar->description != cvar_dummy_description)
                ret |= 16; // CVAR_TYPE_HASDESCRIPTION
-       if(cvar->flags & CVAR_READONLY)
+       if(cvar->flags & CF_READONLY)
                ret |= 32; // CVAR_TYPE_READONLY
        
        PRVM_G_FLOAT(OFS_RETURN) = ret;
@@ -1335,7 +1335,7 @@ coredump()
 */
 void VM_coredump(prvm_prog_t *prog)
 {
-       cmd_state_t *cmd = cls.state == ca_dedicated ? &cmd_server : &cmd_client;
+       cmd_state_t *cmd =      !host_isclient.integer ? &cmd_server : &cmd_client;
        VM_SAFEPARMCOUNT(0,VM_coredump);
 
        Cbuf_AddText(cmd, "prvm_edicts ");
@@ -1661,7 +1661,7 @@ void VM_registercvar(prvm_prog_t *prog)
        flags = prog->argc >= 3 ? (int)PRVM_G_FLOAT(OFS_PARM2) : 0;
        PRVM_G_FLOAT(OFS_RETURN) = 0;
 
-       if(flags > CVAR_MAXFLAGSVAL)
+       if(flags > CF_MAXFLAGSVAL)
                return;
 
 // first check to see if it has already been defined
@@ -2044,7 +2044,7 @@ Return name of the specified field as a string, or empty if the field is invalid
 */
 void VM_entityfieldname(prvm_prog_t *prog)
 {
-       ddef_t *d;
+       mdef_t *d;
        int i = (int)PRVM_G_FLOAT(OFS_PARM0);
 
        if (i < 0 || i >= prog->numfielddefs)
@@ -2068,7 +2068,7 @@ float(float fieldnum) entityfieldtype
 */
 void VM_entityfieldtype(prvm_prog_t *prog)
 {
-       ddef_t *d;
+       mdef_t *d;
        int i = (int)PRVM_G_FLOAT(OFS_PARM0);
        
        if (i < 0 || i >= prog->numfielddefs)
@@ -2093,7 +2093,7 @@ string(float fieldnum, entity ent) getentityfieldstring
 void VM_getentityfieldstring(prvm_prog_t *prog)
 {
        // put the data into a string
-       ddef_t *d;
+       mdef_t *d;
        int type, j;
        prvm_eval_t *val;
        prvm_edict_t * ent;
@@ -2143,7 +2143,7 @@ float(float fieldnum, entity ent, string s) putentityfieldstring
 */
 void VM_putentityfieldstring(prvm_prog_t *prog)
 {
-       ddef_t *d;
+       mdef_t *d;
        prvm_edict_t * ent;
        int i = (int)PRVM_G_FLOAT(OFS_PARM0);
 
@@ -3088,16 +3088,16 @@ static void VM_Search_Reset(prvm_prog_t *prog)
 =========
 VM_search_begin
 
-float search_begin(string pattern, float caseinsensitive, float quiet)
+float search_begin(string pattern, float caseinsensitive, float quiet[, string packfile])
 =========
 */
 void VM_search_begin(prvm_prog_t *prog)
 {
        int handle;
-       const char *pattern;
+       const char *packfile = NULL, *pattern;
        int caseinsens, quiet;
 
-       VM_SAFEPARMCOUNT(3, VM_search_begin);
+       VM_SAFEPARMCOUNTRANGE(3, 4, VM_search_begin);
 
        pattern = PRVM_G_STRING(OFS_PARM0);
 
@@ -3106,6 +3106,10 @@ void VM_search_begin(prvm_prog_t *prog)
        caseinsens = (int)PRVM_G_FLOAT(OFS_PARM1);
        quiet = (int)PRVM_G_FLOAT(OFS_PARM2);
 
+       // optional packfile parameter (DP_QC_FS_SEARCH_PACKFILE)
+       if(prog->argc >= 4)
+               packfile = PRVM_G_STRING(OFS_PARM3);
+
        for(handle = 0; handle < PRVM_MAX_OPENSEARCHES; handle++)
                if(!prog->opensearches[handle])
                        break;
@@ -3117,7 +3121,7 @@ void VM_search_begin(prvm_prog_t *prog)
                return;
        }
 
-       if(!(prog->opensearches[handle] = FS_Search(pattern,caseinsens, quiet)))
+       if(!(prog->opensearches[handle] = FS_Search(pattern,caseinsens, quiet, packfile)))
                PRVM_G_FLOAT(OFS_RETURN) = -1;
        else
        {
@@ -5344,7 +5348,7 @@ static const char *detect_match_rule(char *pattern, int *matchrule)
 }
 
 // todo: support UTF8
-static qboolean match_rule(const char *string, int max_string, const char *pattern, int patternlength, int rule)
+static qbool match_rule(const char *string, int max_string, const char *pattern, int patternlength, int rule)
 {
        const char *mid;
 
@@ -5472,7 +5476,7 @@ void VM_buf_cvarlist(prvm_prog_t *prog)
        const char *partial, *antipartial;
        size_t len, antilen;
        size_t alloclen;
-       qboolean ispattern, antiispattern;
+       qbool ispattern, antiispattern;
        int n;
        prvm_stringbuffer_t     *stringbuffer;
        VM_SAFEPARMCOUNTRANGE(2, 3, VM_buf_cvarlist);
@@ -6233,7 +6237,7 @@ void VM_uri_get (prvm_prog_t *prog)
 {
        const char *url;
        float id;
-       qboolean ret;
+       qbool ret;
        uri_to_prog_t *handle;
        const char *posttype = NULL;
        const char *postseparator = NULL;
@@ -6823,6 +6827,7 @@ nolength:
                                                                o += u8_strpad(o, end - o, buf, (flags & PRINTF_LEFT) != 0, width, precision);
                                                        }
                                                        break;
+                                               //spike FIXME -- 'S' for quoted tokenize-safe-or-print escaping of strings so stuff can safely survive console commands.
                                                case 's':
                                                        if(flags & PRINTF_ALTERNATE)
                                                        {
@@ -6906,7 +6911,7 @@ static void animatemodel(prvm_prog_t *prog, dp_model_t *model, prvm_edict_t *ed)
 {
        skeleton_t *skeleton;
        int skeletonindex = -1;
-       qboolean need = false;
+       qbool need = false;
        struct animatemodel_cache *animatemodel_cache;
        if (!prog->animatemodel_cache)
        {