void MSG_WriteCoord (sizebuf_t *sb, float f, protocolversion_t protocol)
{
- if (protocol == PROTOCOL_QUAKE || protocol == PROTOCOL_QUAKEDP || protocol == PROTOCOL_NEHAHRAMOVIE || protocol == PROTOCOL_QUAKEWORLD)
+ if (protocol == PROTOCOL_QUAKE || protocol == PROTOCOL_QUAKEDP || protocol == PROTOCOL_NEHAHRAMOVIE || protocol == PROTOCOL_NEHAHRABJP || protocol == PROTOCOL_NEHAHRABJP2 || protocol == PROTOCOL_NEHAHRABJP3 || protocol == PROTOCOL_QUAKEWORLD)
MSG_WriteCoord13i (sb, f);
else if (protocol == PROTOCOL_DARKPLACES1)
MSG_WriteCoord32f (sb, f);
void MSG_WriteAngle (sizebuf_t *sb, float f, protocolversion_t protocol)
{
- if (protocol == PROTOCOL_QUAKE || protocol == PROTOCOL_QUAKEDP || protocol == PROTOCOL_NEHAHRAMOVIE || protocol == PROTOCOL_DARKPLACES1 || protocol == PROTOCOL_DARKPLACES2 || protocol == PROTOCOL_DARKPLACES3 || protocol == PROTOCOL_DARKPLACES4 || protocol == PROTOCOL_QUAKEWORLD)
+ if (protocol == PROTOCOL_QUAKE || protocol == PROTOCOL_QUAKEDP || protocol == PROTOCOL_NEHAHRAMOVIE || protocol == PROTOCOL_NEHAHRABJP || protocol == PROTOCOL_NEHAHRABJP2 || protocol == PROTOCOL_NEHAHRABJP3 || protocol == PROTOCOL_DARKPLACES1 || protocol == PROTOCOL_DARKPLACES2 || protocol == PROTOCOL_DARKPLACES3 || protocol == PROTOCOL_DARKPLACES4 || protocol == PROTOCOL_QUAKEWORLD)
MSG_WriteAngle8i (sb, f);
else
MSG_WriteAngle16i (sb, f);
float MSG_ReadCoord (protocolversion_t protocol)
{
- if (protocol == PROTOCOL_QUAKE || protocol == PROTOCOL_QUAKEDP || protocol == PROTOCOL_NEHAHRAMOVIE || protocol == PROTOCOL_QUAKEWORLD)
+ if (protocol == PROTOCOL_QUAKE || protocol == PROTOCOL_QUAKEDP || protocol == PROTOCOL_NEHAHRAMOVIE || protocol == PROTOCOL_NEHAHRABJP || protocol == PROTOCOL_NEHAHRABJP2 || protocol == PROTOCOL_NEHAHRABJP3 || protocol == PROTOCOL_QUAKEWORLD)
return MSG_ReadCoord13i();
else if (protocol == PROTOCOL_DARKPLACES1)
return MSG_ReadCoord32f();
float MSG_ReadAngle (protocolversion_t protocol)
{
- if (protocol == PROTOCOL_QUAKE || protocol == PROTOCOL_QUAKEDP || protocol == PROTOCOL_NEHAHRAMOVIE || protocol == PROTOCOL_DARKPLACES1 || protocol == PROTOCOL_DARKPLACES2 || protocol == PROTOCOL_DARKPLACES3 || protocol == PROTOCOL_DARKPLACES4 || protocol == PROTOCOL_QUAKEWORLD)
+ if (protocol == PROTOCOL_QUAKE || protocol == PROTOCOL_QUAKEDP || protocol == PROTOCOL_NEHAHRAMOVIE || protocol == PROTOCOL_NEHAHRABJP || protocol == PROTOCOL_NEHAHRABJP2 || protocol == PROTOCOL_NEHAHRABJP3 || protocol == PROTOCOL_DARKPLACES1 || protocol == PROTOCOL_DARKPLACES2 || protocol == PROTOCOL_DARKPLACES3 || protocol == PROTOCOL_DARKPLACES4 || protocol == PROTOCOL_QUAKEWORLD)
return MSG_ReadAngle8i ();
else
return MSG_ReadAngle16i ();
Parse a token out of a string
==============
*/
-int COM_ParseToken_Simple(const char **datapointer, int returnnewline)
+int COM_ParseToken_Simple(const char **datapointer, qboolean returnnewline, qboolean parsebackslash)
{
int len;
int c;
else if (*data == '\"')
{
// quoted string
- for (data++;*data != '\"';data++)
+ for (data++;*data && *data != '\"';data++)
{
- if (!*data || len >= (int)sizeof(com_token) - 1)
- {
- com_token[0] = 0;
- *datapointer = NULL;
- return false;
- }
c = *data;
- if (*data == '\\')
+ if (*data == '\\' && parsebackslash)
{
data++;
c = *data;
else if (c == 't')
c = '\t';
}
- com_token[len++] = c;
+ if (len < (int)sizeof(com_token) - 1)
+ com_token[len++] = c;
}
com_token[len] = 0;
- *datapointer = data+1;
+ if (*data == '\"')
+ data++;
+ *datapointer = data;
return true;
}
else if (*data == '\r')
{
// regular word
for (;*data > ' ';data++)
- {
- if (len >= (int)sizeof(com_token) - 1)
- {
- com_token[0] = 0;
- *datapointer = NULL;
- return false;
- }
- com_token[len++] = *data;
- }
+ if (len < (int)sizeof(com_token) - 1)
+ com_token[len++] = *data;
com_token[len] = 0;
*datapointer = data;
return true;
Parse a token out of a string
==============
*/
-int COM_ParseToken_QuakeC(const char **datapointer, int returnnewline)
+int COM_ParseToken_QuakeC(const char **datapointer, qboolean returnnewline)
{
int len;
int c;
{
// quoted string
char quote = *data;
- for (data++;*data != quote;data++)
+ for (data++;*data && *data != quote;data++)
{
- if (!*data || len >= (int)sizeof(com_token) - 1)
- {
- com_token[0] = 0;
- *datapointer = NULL;
- return false;
- }
c = *data;
if (*data == '\\')
{
else if (c == 't')
c = '\t';
}
- com_token[len++] = c;
+ if (len < (int)sizeof(com_token) - 1)
+ com_token[len++] = c;
}
com_token[len] = 0;
- *datapointer = data+1;
+ if (*data == quote)
+ data++;
+ *datapointer = data;
return true;
}
else if (*data == '\r')
{
// regular word
for (;*data > ' ' && *data != '{' && *data != '}' && *data != ')' && *data != '(' && *data != ']' && *data != '[' && *data != ':' && *data != ',' && *data != ';';data++)
- {
- if (len >= (int)sizeof(com_token) - 1)
- {
- com_token[0] = 0;
- *datapointer = NULL;
- return false;
- }
- com_token[len++] = *data;
- }
+ if (len < (int)sizeof(com_token) - 1)
+ com_token[len++] = *data;
com_token[len] = 0;
*datapointer = data;
return true;
Parse a token out of a string
==============
*/
-int COM_ParseToken_VM_Tokenize(const char **datapointer, int returnnewline)
+int COM_ParseToken_VM_Tokenize(const char **datapointer, qboolean returnnewline)
{
int len;
int c;
{
char quote = *data;
// quoted string
- for (data++;*data != quote;data++)
+ for (data++;*data && *data != quote;data++)
{
- if (!*data || len >= (int)sizeof(com_token) - 1)
- {
- com_token[0] = 0;
- *datapointer = NULL;
- return false;
- }
c = *data;
if (*data == '\\')
{
else if (c == 't')
c = '\t';
}
- com_token[len++] = c;
+ if (len < (int)sizeof(com_token) - 1)
+ com_token[len++] = c;
}
com_token[len] = 0;
- *datapointer = data+1;
+ if (*data == quote)
+ data++;
+ *datapointer = data;
return true;
}
else if (*data == '\r')
{
// regular word
for (;*data > ' ' && *data != ',' && *data != ';' && *data != '{' && *data != '}' && *data != ')' && *data != '(' && *data != ']' && *data != '[' && *data != ':' && *data != ',' && *data != ';';data++)
- {
- if (len >= (int)sizeof(com_token) - 1)
- {
- com_token[0] = 0;
- *datapointer = NULL;
- return false;
- }
- com_token[len++] = *data;
- }
+ if (len < (int)sizeof(com_token) - 1)
+ com_token[len++] = *data;
com_token[len] = 0;
*datapointer = data;
return true;
else if (*data == '\"')
{
// quoted string
- for (data++;*data != '\"';data++)
+ for (data++;*data && *data != '\"';data++)
{
- if (!*data || len >= (int)sizeof(com_token) - 1)
- {
- com_token[0] = 0;
- *datapointer = NULL;
- return false;
- }
// allow escaped " and \ case
if (*data == '\\' && (data[1] == '\"' || data[1] == '\\'))
data++;
- com_token[len++] = *data;
+ if (len < (int)sizeof(com_token) - 1)
+ com_token[len++] = *data;
}
com_token[len] = 0;
- *datapointer = data+1;
+ if (*data == '\"')
+ data++;
+ *datapointer = data;
}
else
{
// regular word
for (;*data > ' ';data++)
- {
- if (len >= (int)sizeof(com_token) - 1)
- {
- com_token[0] = 0;
- *datapointer = NULL;
- return false;
- }
- com_token[len++] = *data;
- }
+ if (len < (int)sizeof(com_token) - 1)
+ com_token[len++] = *data;
com_token[len] = 0;
*datapointer = data;
}