]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - prvm_cmds.c
Fixed some errors in the vid_vsync code.
[xonotic/darkplaces.git] / prvm_cmds.c
index f19deb65613ffa2d1f1eea3d1603b09f076daa3d..0a6acf871d01aad6796c392aa31776f2ed3db7f2 100644 (file)
@@ -180,11 +180,6 @@ mempool_t *vm_strings_mempool[PRVM_MAXPROGS];
 static char vm_string_temp[VM_STRINGTEMP_BUFFERS][VM_STRINGTEMP_LENGTH];
 static int vm_string_tempindex = 0;
 
-// qc cvar 
-#define MAX_QC_CVARS 128 * PRVM_MAXPROGS
-cvar_t vm_qc_cvar[MAX_QC_CVARS];
-int vm_currentqc_cvar;
-
 // qc file handling
 #define MAX_VMFILES            256
 #define MAX_PRVMFILES  MAX_VMFILES * PRVM_MAXPROGS
@@ -629,14 +624,14 @@ void VM_localsound(void)
 
        s = PRVM_G_STRING(OFS_PARM0);
 
-       if(!S_GetCached(s))
+       if(!S_GetCached(s, true))
        {
                Con_Printf("VM_localsound: %s : %s not cached !\n", PRVM_NAME, s);
                PRVM_G_FLOAT(OFS_RETURN) = -4;
                return;
        }               
 
-       S_LocalSound(s);
+       S_LocalSound(s, true);
        PRVM_G_FLOAT(OFS_RETURN) = 1;
 }
 
@@ -711,7 +706,7 @@ void VM_str_cvar(void)
        
        strcpy(out, cvar_string);
 
-       PRVM_G_INT(OFS_PARM0) = PRVM_SetString(out);
+       PRVM_G_INT(OFS_RETURN) = PRVM_SetString(out);
 }
 
 /*
@@ -860,7 +855,7 @@ void VM_spawn (void)
 =========
 VM_remove
 
-entity remove()
+remove(entity e)
 =========
 */
 
@@ -1109,14 +1104,14 @@ void VM_precache_sound (void)
        PRVM_G_INT(OFS_RETURN) = PRVM_G_INT(OFS_PARM0);
        VM_CheckEmptyString (s);
        
-       if(S_GetCached(s))
+       if(S_GetCached(s, true))
        {
                Con_Printf("VM_precache_sound: %s already cached (%s)\n", s, PRVM_NAME);
                return;
        }
        
-       if(!S_PrecacheSound(s,true))
-               Con_Printf("VM_prache_sound: Failed to load %s for %s\n", s, PRVM_NAME);
+       if(!S_PrecacheSound(s,true, true))
+               Con_Printf("VM_precache_sound: Failed to load %s for %s\n", s, PRVM_NAME);
 }
 
 /*
@@ -1361,12 +1356,12 @@ void VM_WriteLong (void)
 
 void VM_WriteAngle (void)
 {
-       MSG_WriteAngle (VM_WriteDest(), PRVM_G_FLOAT(OFS_PARM0));
+       MSG_WriteAngle (VM_WriteDest(), PRVM_G_FLOAT(OFS_PARM0), sv.protocol);
 }
 
 void VM_WriteCoord (void)
 {
-       MSG_WriteDPCoord (VM_WriteDest(), PRVM_G_FLOAT(OFS_PARM0));
+       MSG_WriteCoord (VM_WriteDest(), PRVM_G_FLOAT(OFS_PARM0), sv.protocol);
 }
 
 void VM_WriteString (void)
@@ -1496,8 +1491,7 @@ float     registercvar (string name, string value, float flags)
 void VM_registercvar (void)
 {
        char *name, *value;
-       cvar_t *variable;
-       int     flags;  
+       int     flags;
 
        VM_SAFEPARMCOUNT(3,VM_registercvar);
 
@@ -1520,19 +1514,8 @@ void VM_registercvar (void)
                return;
        }
 
-       if (vm_currentqc_cvar >= MAX_QC_CVARS)
-               PRVM_ERROR ("VM_registercvar: ran out of cvar slots (%i)\n", MAX_QC_CVARS);
+       Cvar_Get(name, value, 0);
 
-// copy the name and value
-       variable = &vm_qc_cvar[vm_currentqc_cvar++];
-       variable->flags = flags;
-       variable->name = Z_Malloc (strlen(name)+1);
-       strcpy (variable->name, name);
-       variable->string = Z_Malloc (strlen(value)+1);
-       strcpy (variable->string, value);
-       variable->value = atof (value);
-
-       Cvar_RegisterVariable(variable);
        PRVM_G_FLOAT(OFS_RETURN) = 1; // success
 }
 
@@ -1746,6 +1729,9 @@ void VM_fopen(void)
                return;
        }
        VM_FILES[filenum] = FS_Open(va("data/%s", filename), modestring, false);
+       if (VM_FILES[filenum] == NULL && mode == 0)
+               VM_FILES[filenum] = FS_Open(va("%s", filename), modestring, false);
+
        if (VM_FILES[filenum] == NULL)
                PRVM_G_FLOAT(OFS_RETURN) = -1;
        else
@@ -1823,7 +1809,7 @@ void VM_fgets(void)
                c = FS_Getc(VM_FILES[filenum]);
        if (developer.integer)
                Con_Printf("fgets: %s: %s\n", PRVM_NAME, string);
-       if (c >= 0)
+       if (c >= 0 || end)
                PRVM_G_INT(OFS_RETURN) = PRVM_SetString(string);
        else
                PRVM_G_INT(OFS_RETURN) = 0;
@@ -2114,6 +2100,7 @@ void PF_setattachment (void)
                                for (i = 0;i < model->data_overridetagnamesforskin[(unsigned int)tagentity->v->skin].num_overridetagnames;i++)
                                        if (!strcmp(tagname, model->data_overridetagnamesforskin[(unsigned int)tagentity->v->skin].data_overridetagnames[i].name))
                                                v->_float = i + 1;
+                       // FIXME: use a model function to get tag info (need to handle skeletal)
                        if (v->_float == 0 && model->alias.aliasnum_tags)
                                for (i = 0;i < model->alias.aliasnum_tags;i++)
                                        if (!strcmp(tagname, model->alias.aliasdata_tags[i].name))
@@ -2778,7 +2765,7 @@ void VM_getimagesize(void)
 void VM_Cmd_Init(void)
 {
        // only init the stuff for the current prog
-       VM_STRINGS_MEMPOOL = Mem_AllocPool(va("vm_stringsmempool[%s]",PRVM_NAME));
+       VM_STRINGS_MEMPOOL = Mem_AllocPool(va("vm_stringsmempool[%s]",PRVM_NAME), 0, NULL);
        VM_Files_Init();
        VM_Search_Init();
 }