}
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");
}
/*
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);