void idFixedPosition::parse(const char * (*text)) { const char *token; Com_MatchToken(text, "{"); do { token = Com_Parse(text); if(!token[0]) { break; } if(!strcmp(token, "}")) { break; } // here we may have to jump over brush epairs ( only used in editor ) do { // if token is not a brace, it is a key for a key/value pair if(!token[0] || !strcmp(token, "(") || !strcmp(token, "}")) { break; } Com_UngetToken(); idStr key = Com_ParseOnLine(text); Com_Parse(text); if(Q_stricmp(key.c_str(), "pos") == 0) { Com_UngetToken(); Com_Parse1DMatrix(text, 3, pos); } else { Com_UngetToken(); idCameraPosition::parseToken(key.c_str(), text); } token = Com_Parse(text); } while(1); if(!strcmp(token, "}")) { break; } } while(1); Com_UngetToken(); Com_MatchToken(text, "}"); }
/* ==================== Com_ParseRestOfLine ==================== */ const char *Com_ParseRestOfLine(const char * (*data_p)) { static char line[MAX_TOKEN_CHARS]; const char *token; line[0] = 0; while(1) { token = Com_ParseOnLine(data_p); if(!token[0]) { break; } if(line[0]) { Q_strcat(line, sizeof(line), " "); } Q_strcat(line, sizeof(line), token); } return line; }
void idSplineList::parse(const char *(*text) ) { const char *token; //Com_MatchToken( text, "{" ); do { token = Com_Parse( text ); if ( !token[0] ) { break; } if ( !Q_stricmp (token, "}") ) { break; } do { // if token is not a brace, it is a key for a key/value pair if ( !token[0] || !Q_stricmp (token, "(") || !Q_stricmp(token, "}")) { break; } Com_UngetToken(); idStr key = Com_ParseOnLine(text); const char *token = Com_Parse(text); if (Q_stricmp(key.c_str(), "granularity") == 0) { granularity = atof(token); } else if (Q_stricmp(key.c_str(), "name") == 0) { name = token; } token = Com_Parse(text); } while (1); if ( !Q_stricmp (token, "}") ) { break; } Com_UngetToken(); // read the control point idVec3_t point; Com_Parse1DMatrix( text, 3, point ); addPoint(point.x, point.y, point.z); } while (1); //Com_UngetToken(); //Com_MatchToken( text, "}" ); dirty = true; }
void idCameraFOV::parse(const char *(*text) ) { const char *token; Com_MatchToken( text, "{" ); do { token = Com_Parse( text ); if ( !token[0] ) { break; } if ( !strcmp (token, "}") ) { break; } // here we may have to jump over brush epairs ( only used in editor ) do { // if token is not a brace, it is a key for a key/value pair if ( !token[0] || !strcmp (token, "(") || !strcmp(token, "}")) { break; } Com_UngetToken(); idStr key = Com_ParseOnLine(text); const char *token = Com_Parse(text); if (Q_stricmp(key.c_str(), "fov") == 0) { fov = atof(token); } else if (Q_stricmp(key.c_str(), "startFOV") == 0) { startFOV = atof(token); } else if (Q_stricmp(key.c_str(), "endFOV") == 0) { endFOV = atof(token); } else if (Q_stricmp(key.c_str(), "time") == 0) { time = atoi(token); } token = Com_Parse(text); } while (1); if ( !strcmp (token, "}") ) { break; } } while (1); Com_UngetToken(); Com_MatchToken( text, "}" ); }
void idCameraEvent::parse(const char *(*text) ) { const char *token; Com_MatchToken( text, "{" ); do { token = Com_Parse( text ); if ( !token[0] ) { break; } if ( !strcmp (token, "}") ) { break; } // here we may have to jump over brush epairs ( only used in editor ) do { // if token is not a brace, it is a key for a key/value pair if ( !token[0] || !strcmp (token, "(") || !strcmp(token, "}")) { break; } Com_UngetToken(); idStr key = Com_ParseOnLine(text); const char *token = Com_Parse(text); if (Q_stricmp(key.c_str(), "type") == 0) { type = static_cast<idCameraEvent::eventType>(atoi(token)); } else if (Q_stricmp(key.c_str(), "param") == 0) { paramStr = token; } else if (Q_stricmp(key.c_str(), "time") == 0) { time = atoi(token); } token = Com_Parse(text); } while (1); if ( !strcmp (token, "}") ) { break; } } while (1); Com_UngetToken(); Com_MatchToken( text, "}" ); }
qboolean __cdecl Com_LoadDvarsFromBuffer(const char **inputbuf, unsigned int length, const char *data_p, const char *filename) { const char *cvar_name; int i, count; char buf[16384]; const char* line; Com_Memset(buf, 0, sizeof(buf)); for(i = 0; i < length; i++) { Cvar_Reset(inputbuf[i]); } Com_BeginParseSession(filename); count = 0; while ( (cvar_name = Com_Parse(&data_p)) && cvar_name[0]) { for(i = 0; i < length; i++) { if(!Q_stricmp(cvar_name, inputbuf[i])) break; } if(i == length) { if(com_developer && com_developer->integer) { Com_PrintWarning("WARNING: unknown cvar '%s' in file '%s'\n", cvar_name, filename); } Com_SkipRestOfLine(&data_p); }else{ line = Com_ParseOnLine(&data_p); if(com_developer && com_developer->integer) { Cvar_Set(inputbuf[i], line); }else{ if((!Q_strncmp(inputbuf[i],"bg_shock_viewKickPeriod", 23) || !Q_strncmp(inputbuf[i],"bg_shock_viewKickFadeTime", 25)) && (line[0] == '0' && line[1] == '\0')) { /* Quite this spam */ }else{ Cvar_Set(inputbuf[i], line); } } if ( !buf[i] ) { buf[i] = 1; ++count; } } } Com_EndParseSession(); if ( length == count ) { /* No Errors */ return 1; } Com_PrintError("ERROR: the following cvars were not specified in file '%s'\n", filename); for(i = 0; i < length; i++) { while ( buf[i] && i < length ) { ++i; } if(i < length) Com_PrintError(" %s\n", inputbuf[i]); } return 0; }