*/
void VM_cvar (void)
{
- VM_SAFEPARMCOUNT(1,VM_cvar);
-
- PRVM_G_FLOAT(OFS_RETURN) = Cvar_VariableValue(PRVM_G_STRING(OFS_PARM0));
+ char string[VM_STRINGTEMP_LENGTH];
+ VM_SAFEPARMCOUNTRANGE(1,8,VM_cvar);
+ VM_VarString(0, string, sizeof(string));
+ VM_CheckEmptyString(string);
+ PRVM_G_FLOAT(OFS_RETURN) = Cvar_VariableValue(string);
}
/*
=================
VM_cvar_string
-const string VM_cvar_string (string)
+const string VM_cvar_string (string, ...)
=================
*/
void VM_cvar_string(void)
{
- const char *name;
- VM_SAFEPARMCOUNT(1,VM_cvar_string);
-
- name = PRVM_G_STRING(OFS_PARM0);
-
- VM_CheckEmptyString(name);
-
- PRVM_G_INT(OFS_RETURN) = PRVM_SetTempString(Cvar_VariableString(name));
+ char string[VM_STRINGTEMP_LENGTH];
+ VM_SAFEPARMCOUNTRANGE(1,8,VM_cvar_string);
+ VM_VarString(0, string, sizeof(string));
+ VM_CheckEmptyString(string);
+ PRVM_G_INT(OFS_RETURN) = PRVM_SetTempString(Cvar_VariableString(string));
}
========================
VM_cvar_defstring
-const string VM_cvar_defstring (string)
+const string VM_cvar_defstring (string, ...)
========================
*/
void VM_cvar_defstring (void)
{
- const char *name;
- VM_SAFEPARMCOUNT(1,VM_cvar_string);
-
- name = PRVM_G_STRING(OFS_PARM0);
-
- VM_CheckEmptyString(name);
-
- PRVM_G_INT(OFS_RETURN) = PRVM_SetTempString(Cvar_VariableDefString(name));
+ char string[VM_STRINGTEMP_LENGTH];
+ VM_SAFEPARMCOUNTRANGE(1,8,VM_cvar_defstring);
+ VM_VarString(0, string, sizeof(string));
+ VM_CheckEmptyString(string);
+ PRVM_G_INT(OFS_RETURN) = PRVM_SetTempString(Cvar_VariableDefString(string));
}
/*
=================
VM_cvar_set
-void cvar_set (string,string)
+void cvar_set (string,string, ...)
=================
*/
void VM_cvar_set (void)
{
- VM_SAFEPARMCOUNT(2,VM_cvar_set);
-
- Cvar_Set(PRVM_G_STRING(OFS_PARM0), PRVM_G_STRING(OFS_PARM1));
+ const char *name;
+ char string[VM_STRINGTEMP_LENGTH];
+ VM_SAFEPARMCOUNTRANGE(2,8,VM_cvar_set);
+ VM_VarString(1, string, sizeof(string));
+ name = PRVM_G_STRING(OFS_PARM0);
+ VM_CheckEmptyString(name);
+ Cvar_Set(name, string);
}
/*
}
else
PRVM_ED_Free (ed);
-// if (ed == prog->edicts)
-// PRVM_ERROR ("remove: tried to remove world");
-// if (PRVM_NUM_FOR_EDICT(ed) <= sv.maxclients)
-// Host_Error("remove: tried to remove a client");
}
/*
VM_SAFEPARMCOUNT(1,VM_strdecolorize);
szString = PRVM_G_STRING(OFS_PARM0);
- COM_StringDecolorize(szString, szNewString, sizeof(szNewString), TRUE);
+ COM_StringDecolorize(szString, 0, szNewString, sizeof(szNewString), TRUE);
PRVM_G_INT(OFS_RETURN) = PRVM_SetTempString(szNewString);
}
szString = PRVM_G_STRING(OFS_PARM0);
- nCnt = COM_StringLengthNoColors(szString, NULL);
+ nCnt = COM_StringLengthNoColors(szString, 0, NULL);
PRVM_G_FLOAT(OFS_RETURN) = nCnt;
}
+// DRESK - String to Uppercase and Lowercase
+/*
+=========
+VM_strtolower
+
+string strtolower(string s)
+=========
+*/
+// string (string s) strtolower = #480; // returns passed in string in lowercase form
+void VM_strtolower(void)
+{
+ char szNewString[VM_STRINGTEMP_LENGTH];
+ const char *szString;
+
+ // Prepare Strings
+ VM_SAFEPARMCOUNT(1,VM_strtolower);
+ szString = PRVM_G_STRING(OFS_PARM0);
+
+ COM_ToLowerString(szString, szNewString, sizeof(szNewString) );
+
+ PRVM_G_INT(OFS_RETURN) = PRVM_SetTempString(szNewString);
+}
+
+/*
+=========
+VM_strtoupper
+
+string strtoupper(string s)
+=========
+*/
+// string (string s) strtoupper = #481; // returns passed in string in uppercase form
+void VM_strtoupper(void)
+{
+ char szNewString[VM_STRINGTEMP_LENGTH];
+ const char *szString;
+
+ // Prepare Strings
+ VM_SAFEPARMCOUNT(1,VM_strtoupper);
+ szString = PRVM_G_STRING(OFS_PARM0);
+
+ COM_ToUpperString(szString, szNewString, sizeof(szNewString) );
+
+ PRVM_G_INT(OFS_RETURN) = PRVM_SetTempString(szNewString);
+}
+
/*
=========
VM_strcat
p = PRVM_G_STRING(OFS_PARM0);
num_tokens = 0;
- while(COM_ParseToken(&p, false))
+ while(COM_ParseToken_VM_Tokenize(&p, false))
{
if (num_tokens >= (int)(sizeof(tokens)/sizeof(tokens[0])))
break;
int separatorlen[7];
const char *separators[7];
const char *p;
+ const char *token;
char tokentext[MAX_INPUTLINE];
VM_SAFEPARMCOUNTRANGE(2, 8,VM_tokenizebyseparator);
for (j = 1;j < prog->argc;j++)
{
// skip any blank separator strings
- if (!PRVM_G_STRING(OFS_PARM0 + j)[0])
+ const char *s = PRVM_G_STRING(OFS_PARM0+j*3);
+ if (!s[0])
continue;
- separators[numseparators] = PRVM_G_STRING(OFS_PARM0 + j);
- separatorlen[numseparators] = strlen(separators[numseparators]);
+ separators[numseparators] = s;
+ separatorlen[numseparators] = strlen(s);
numseparators++;
}
num_tokens = 0;
- for (num_tokens = 0;num_tokens < (int)(sizeof(tokens)/sizeof(tokens[0]));num_tokens++)
+ j = 0;
+
+ while (num_tokens < (int)(sizeof(tokens)/sizeof(tokens[0])))
{
+ token = tokentext + j;
while (*p)
{
for (k = 0;k < numseparators;k++)
}
if (k < numseparators)
break;
- if (j < (int)sizeof(tokentext[MAX_INPUTLINE]-1))
+ if (j < (int)sizeof(tokentext)-1)
tokentext[j++] = *p;
p++;
}
- tokentext[j] = 0;
- tokens[num_tokens] = PRVM_SetTempString(tokentext);
+ if (j >= (int)sizeof(tokentext))
+ break;
+ tokentext[j++] = 0;
+ tokens[num_tokens++] = PRVM_SetTempString(token);
if (!*p)
break;
}
VM_SAFEPARMCOUNT(2, VM_parseentitydata);
- // get edict and test it
+ // get edict and test it
ent = PRVM_G_EDICT(OFS_PARM0);
if (ent->priv.required->free)
PRVM_ERROR ("VM_parseentitydata: %s: Can only set already spawned entities (entity %i is free)!", PRVM_NAME, PRVM_NUM_FOR_EDICT(ent));
data = PRVM_G_STRING(OFS_PARM1);
- // parse the opening brace
- if (!COM_ParseTokenConsole(&data) || com_token[0] != '{' )
+ // parse the opening brace
+ if (!COM_ParseToken_Simple(&data, false) || com_token[0] != '{' )
PRVM_ERROR ("VM_parseentitydata: %s: Couldn't parse entity data:\n%s", PRVM_NAME, data );
PRVM_ED_ParseEdict (data, ent);
void VM_strncmp (void)
{
const char *s1, *s2;
- VM_SAFEPARMCOUNT(1, VM_strncmp);
+ VM_SAFEPARMCOUNT(3, VM_strncmp);
s1 = PRVM_G_STRING(OFS_PARM0);
s2 = PRVM_G_STRING(OFS_PARM1);
PRVM_G_FLOAT(OFS_RETURN) = strncmp(s1, s2, (size_t)PRVM_G_FLOAT(OFS_PARM2));