24 #include "../../cl_shared.h"
25 #include "../../../shared/parse.h"
77 const char* errhead =
"CL_ParseRanks: unexpected end of file (medal/rank ";
83 if (!*text || *token !=
'{') {
84 cgi->Com_Printf(
"CL_ParseRanks: rank/medal \"%s\" without body ignored\n", name);
90 cgi->Com_Printf(
"CL_ParseRanks: Rank with same name '%s' already loaded.\n", name);
96 cgi->Com_Printf(
"CL_ParseRanks: Too many rank descriptions, '%s' ignored.\n", name);
116 }
else if (
Q_streq(token,
"type")) {
124 cgi->Com_Printf(
"CL_ParseRanks: unknown token \"%s\" ignored (medal/rank %s)\n", token, name);
127 if (rank->
image ==
nullptr || !strlen(rank->
image))
128 cgi->Com_Error(
ERR_DROP,
"CL_ParseRanks: image is missing for rank %s", rank->
id);
130 if (rank->
name ==
nullptr || !strlen(rank->
name))
131 cgi->Com_Error(
ERR_DROP,
"CL_ParseRanks: name is missing for rank %s", rank->
id);
136 if (rank->
level == -1)
137 cgi->Com_Error(
ERR_DROP,
"CL_ParseRanks: level is missing for rank %s", rank->
id);
employeeType_t E_GetEmployeeType(const char *type)
Convert string to employeeType_t.
Describes a rank that a recruit can gain.
int CL_GetRankIdx(const char *rankID)
Get the index of the given rankID in ccs.ranks array.
rank_t * CL_GetRankByIdx(const int index)
Returns a rank at an index.
memPool_t * cp_campaignPool
const cgame_import_t * cgi
static const value_t rankValues[]
const char * Com_Parse(const char *data_p[], char *target, size_t size, bool replaceWhitespaces)
Parse a token out of a string.
QGL_EXTERN GLuint GLsizei GLsizei GLint GLenum GLchar * name
#define MEMBER_SIZEOF(TYPE, MEMBER)
Header file for single player campaign control.
const char *IMPORT * Com_EParse(const char **text, const char *errhead, const char *errinfo)
void CL_ParseRanks(const char *name, const char **text)
Parse medals and ranks defined in the medals.ufo file.
char *IMPORT * PoolStrDup(const char *in, memPool_t *pool, const int tagNum)