mirror of
https://github.com/UberGames/rpgxEF.git
synced 2025-02-23 20:41:11 +00:00
Work on logging.
- added additional logger macros - made cg_main.c traceable
This commit is contained in:
parent
1494913f18
commit
b9a73ecdad
4 changed files with 169 additions and 48 deletions
|
@ -12,6 +12,8 @@ enum {
|
|||
LL_TRACE
|
||||
};
|
||||
|
||||
#define CG_LogFuncBegin() CG_LocLogger(LL_TRACE, "%s - Begin\n", __FUNCTION__)
|
||||
#define CG_LogFuncEnd() CG_LocLogger(LL_TRACE, "%s - End\n", __FUNCTION__)
|
||||
#define CG_LocLogger(X,...) _CG_LocLogger(__FILE__, __LINE__, X, __VA_ARGS__)
|
||||
void QDECL CG_Logger(int level, char* fmt, ...) __attribute__ ((format (printf, 2, 3)));
|
||||
void QDECL _CG_LocLogger(const char* file, int line, int level, char* fmt, ...) __attribute__ ((format (printf, 4, 5)));
|
||||
|
|
|
@ -38,26 +38,36 @@ This must be the very first function compiled into the .q3vm file
|
|||
================
|
||||
*/
|
||||
Q_EXPORT intptr_t vmMain( int32_t command, int32_t arg0, int32_t arg1, int32_t arg2, int32_t arg3, int32_t arg4, int32_t arg5, int32_t arg6 ) {
|
||||
CG_LogFuncBegin();
|
||||
|
||||
switch ( command ) {
|
||||
case CG_INIT:
|
||||
CG_Init( arg0, arg1 );
|
||||
CG_LogFuncEnd();
|
||||
return 0;
|
||||
case CG_SHUTDOWN:
|
||||
CG_Shutdown();
|
||||
CG_LogFuncEnd();
|
||||
return 0;
|
||||
case CG_CONSOLE_COMMAND:
|
||||
CG_LogFuncEnd();
|
||||
return CG_ConsoleCommand();
|
||||
case CG_DRAW_ACTIVE_FRAME:
|
||||
CG_DrawActiveFrame( arg0, (stereoFrame_t)arg1, (qboolean)arg2 );
|
||||
CG_LogFuncEnd();
|
||||
return 0;
|
||||
case CG_CROSSHAIR_PLAYER:
|
||||
CG_LogFuncEnd();
|
||||
return CG_CrosshairPlayer();
|
||||
case CG_LAST_ATTACKER:
|
||||
CG_LogFuncEnd();
|
||||
return CG_LastAttacker();
|
||||
default:
|
||||
CG_Error( "vmMain: unknown command %i", command );
|
||||
break;
|
||||
}
|
||||
|
||||
CG_LogFuncEnd();
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
@ -353,6 +363,8 @@ void CG_PrecacheRemapShaders(void) {
|
|||
char* token;
|
||||
qhandle_t shader;
|
||||
|
||||
CG_LogFuncBegin();
|
||||
|
||||
COM_StripExtension(cgs.mapname, filepath);
|
||||
Com_sprintf(filepath, MAX_QPATH, "%s.precache", filepath);
|
||||
|
||||
|
@ -360,6 +372,7 @@ void CG_PrecacheRemapShaders(void) {
|
|||
|
||||
if(!f) {
|
||||
CG_Logger(LL_INFO, "No precache file ...\n");
|
||||
CG_LogFuncEnd();
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -367,6 +380,7 @@ void CG_PrecacheRemapShaders(void) {
|
|||
if(!data) {
|
||||
trap_FS_FCloseFile(f);
|
||||
CG_Printf(S_COLOR_RED "Error - could not allocate %d byte of memory.\n", sizeof(char)*(len+1));
|
||||
CG_LogFuncEnd();
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -374,27 +388,35 @@ void CG_PrecacheRemapShaders(void) {
|
|||
trap_FS_FCloseFile(f);
|
||||
|
||||
//CG_Printf("Precaching texture files ...");
|
||||
CG_Printf("Precaching texture files ...");
|
||||
CG_Logger(LL_INFO, "Precaching texture files ...");
|
||||
COM_BeginParseSession();
|
||||
|
||||
ptr = data;
|
||||
token = COM_Parse(&ptr);
|
||||
while(token != NULL) {
|
||||
if(!token[0]) break;
|
||||
if(!strcmp(token, "END")) break;
|
||||
if(token == NULL || token[0] == 0) {
|
||||
CG_Logger(LL_DEBUG, "token == NULL\n");
|
||||
break;
|
||||
}
|
||||
|
||||
CG_Printf("\t%s ... ", token);
|
||||
if(strcmp(token, "END") == 0) {
|
||||
CG_Logger(LL_DEBUG, "token == END\n");
|
||||
break;
|
||||
}
|
||||
|
||||
CG_Logger(LL_INFO, "\t%s ... ", token);
|
||||
|
||||
shader = trap_R_RegisterShader(token);
|
||||
if(!shader) {
|
||||
CG_Printf(S_COLOR_RED "FAIL\n");
|
||||
if(shader == NULL) {
|
||||
CG_Logger(LL_WARN, "FAIL\n");
|
||||
} else {
|
||||
CG_Printf("OK\n");
|
||||
CG_Logger(LL_INFO, "OK\n");
|
||||
}
|
||||
|
||||
token = COM_Parse(&ptr);
|
||||
}
|
||||
|
||||
CG_LogFuncEnd();
|
||||
free(data);
|
||||
}
|
||||
|
||||
|
@ -408,6 +430,8 @@ void CG_RegisterCvars( void ) {
|
|||
cvarTable_t *cv;
|
||||
char var[MAX_TOKEN_CHARS];
|
||||
|
||||
CG_LogFuncBegin();
|
||||
|
||||
for ( i = 0, cv = cvarTable ; i < CVAR_TABLE_SIZE ; i++, cv++ ) {
|
||||
trap_Cvar_Register( cv->vmCvar, cv->cvarName,
|
||||
cv->defaultString, cv->cvarFlags );
|
||||
|
@ -416,6 +440,8 @@ void CG_RegisterCvars( void ) {
|
|||
// see if we are also running the server on this machine
|
||||
trap_Cvar_VariableStringBuffer( "sv_running", var, sizeof( var ) );
|
||||
cgs.localServer = (qboolean)atoi( var );
|
||||
|
||||
CG_LogFuncEnd();
|
||||
}
|
||||
|
||||
|
||||
|
@ -428,6 +454,8 @@ void CG_UpdateCvars( void ) {
|
|||
int32_t i;
|
||||
cvarTable_t *cv;
|
||||
|
||||
CG_LogFuncBegin();
|
||||
|
||||
for ( i = 0, cv = cvarTable ; i < CVAR_TABLE_SIZE ; i++, cv++ )
|
||||
{
|
||||
trap_Cvar_Update( cv->vmCvar );
|
||||
|
@ -446,21 +474,33 @@ void CG_UpdateCvars( void ) {
|
|||
trap_Cvar_Set( "teamoverlay", "0" );
|
||||
}
|
||||
}
|
||||
|
||||
CG_LogFuncEnd();
|
||||
}
|
||||
|
||||
|
||||
int32_t CG_CrosshairPlayer( void ) {
|
||||
CG_LogFuncBegin();
|
||||
|
||||
if ( cg.time > ( cg.crosshairClientTime + 1000 ) ) {
|
||||
CG_LogFuncEnd();
|
||||
return -1;
|
||||
}
|
||||
|
||||
CG_LogFuncEnd();
|
||||
return cg.crosshairClientNum;
|
||||
}
|
||||
|
||||
|
||||
int32_t CG_LastAttacker( void ) {
|
||||
CG_LogFuncBegin();
|
||||
|
||||
if ( !cg.attackerTime ) {
|
||||
CG_LogFuncEnd();
|
||||
return -1;
|
||||
}
|
||||
|
||||
CG_LogFuncEnd();
|
||||
return cg.snap->ps.persistant[PERS_ATTACKER];
|
||||
}
|
||||
|
||||
|
@ -496,10 +536,14 @@ void QDECL CG_Error( const char *msg, ... ) {
|
|||
va_list argptr;
|
||||
char text[1024];
|
||||
|
||||
CG_LogFuncBegin();
|
||||
|
||||
va_start (argptr, msg);
|
||||
vsprintf (text, msg, argptr);
|
||||
va_end (argptr);
|
||||
|
||||
CG_LogFuncEnd();
|
||||
|
||||
trap_Error( text );
|
||||
}
|
||||
|
||||
|
@ -510,10 +554,14 @@ void QDECL Com_Error( int32_t level, const char *error, ... ) {
|
|||
va_list argptr;
|
||||
char text[1024];
|
||||
|
||||
CG_LogFuncBegin();
|
||||
|
||||
va_start (argptr, error);
|
||||
vsprintf (text, error, argptr);
|
||||
va_end (argptr);
|
||||
|
||||
CG_LogFuncEnd();
|
||||
|
||||
CG_Error( "%s", text);
|
||||
}
|
||||
|
||||
|
@ -540,8 +588,12 @@ CG_Argv
|
|||
const char *CG_Argv( int32_t arg ) {
|
||||
static char buffer[MAX_STRING_CHARS];
|
||||
|
||||
CG_LogFuncBegin();
|
||||
|
||||
trap_Argv( arg, buffer, sizeof( buffer ) );
|
||||
|
||||
CG_LogFuncEnd();
|
||||
|
||||
return buffer;
|
||||
}
|
||||
|
||||
|
@ -561,6 +613,8 @@ static void CG_RegisterItemSounds( int32_t itemNum ) {
|
|||
char *s, *start;
|
||||
int32_t len;
|
||||
|
||||
CG_LogFuncBegin();
|
||||
|
||||
item = &bg_itemlist[ itemNum ];
|
||||
|
||||
if ( item->pickup_sound )
|
||||
|
@ -570,8 +624,10 @@ static void CG_RegisterItemSounds( int32_t itemNum ) {
|
|||
|
||||
// parse the space seperated precache string for other media
|
||||
s = item->sounds;
|
||||
if (!s || !s[0])
|
||||
if (s == NULL || s[0] == 0) {
|
||||
CG_LogFuncEnd();
|
||||
return;
|
||||
}
|
||||
|
||||
while (*s) {
|
||||
start = s;
|
||||
|
@ -581,6 +637,7 @@ static void CG_RegisterItemSounds( int32_t itemNum ) {
|
|||
|
||||
len = s-start;
|
||||
if (len >= MAX_QPATH || len < 5) {
|
||||
CG_LogFuncEnd();
|
||||
CG_Error( "PrecacheItem: %s has bad precache string",
|
||||
item->classname);
|
||||
return;
|
||||
|
@ -595,6 +652,8 @@ static void CG_RegisterItemSounds( int32_t itemNum ) {
|
|||
trap_S_RegisterSound( data );
|
||||
}
|
||||
}
|
||||
|
||||
CG_LogFuncEnd();
|
||||
}
|
||||
|
||||
|
||||
|
@ -612,6 +671,8 @@ static void CG_RegisterSounds( void )
|
|||
char name[MAX_QPATH];
|
||||
const char *soundName;
|
||||
|
||||
CG_LogFuncBegin();
|
||||
|
||||
cg.loadLCARSStage = 1; // Loading bar stage 1
|
||||
CG_LoadingString( "sounds" );
|
||||
|
||||
|
@ -745,6 +806,8 @@ static void CG_RegisterSounds( void )
|
|||
cgs.media.electricExpSound[1] = trap_S_RegisterSound("sound/weapons/explosions/explode11.wav");
|
||||
cgs.media.electricExpSound[2] = trap_S_RegisterSound("sound/weapons/explosions/explode15.wav");
|
||||
cgs.media.bigSurfExpSound = trap_S_RegisterSound("sound/weapons/explosions/explode12.wav");
|
||||
|
||||
CG_LogFuncEnd();
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -757,7 +820,6 @@ This function may execute for a couple of minutes with a slow disk.
|
|||
static void CG_RegisterGraphics( void ) {
|
||||
int32_t i;
|
||||
char items[MAX_ITEMS+1];
|
||||
|
||||
static char *sb_nums[11] = {
|
||||
"gfx/2d/numbers/zero",
|
||||
"gfx/2d/numbers/one",
|
||||
|
@ -771,7 +833,6 @@ static void CG_RegisterGraphics( void ) {
|
|||
"gfx/2d/numbers/nine",
|
||||
"gfx/2d/numbers/minus",
|
||||
};
|
||||
|
||||
static char *sb_t_nums[11] = {
|
||||
"gfx/2d/numbers/t_zero",
|
||||
"gfx/2d/numbers/t_one",
|
||||
|
@ -786,6 +847,7 @@ static void CG_RegisterGraphics( void ) {
|
|||
"gfx/2d/numbers/t_minus",
|
||||
};
|
||||
|
||||
CG_LogFuncBegin();
|
||||
|
||||
// clear any references to old media
|
||||
memset( &cg.refdef, 0, sizeof( cg.refdef ) );
|
||||
|
@ -860,19 +922,19 @@ static void CG_RegisterGraphics( void ) {
|
|||
|
||||
//RPG-X START | GSIO01 | 09/05/2009 | START
|
||||
switch(rpg_forceFieldSet.integer) {
|
||||
case 2:
|
||||
cgs.media.shieldActivateShaderBorg = trap_R_RegisterShader( "gfx/forcefielddarkgreen" );
|
||||
cgs.media.shieldActivateShaderYellow = trap_R_RegisterShader( "gfx/forcefielddarkyellow" );
|
||||
cgs.media.shieldActivateShaderRed = trap_R_RegisterShader( "gfx/forcefielddarkred" );
|
||||
cgs.media.shieldActivateShaderBlue = trap_R_RegisterShader( "gfx/forcefielddarkblue" );
|
||||
break;
|
||||
case 1:
|
||||
default:
|
||||
cgs.media.shieldActivateShaderBorg = trap_R_RegisterShader( "gfx/ff_green" );
|
||||
cgs.media.shieldActivateShaderYellow = trap_R_RegisterShader( "gfx/ff_yellow" );
|
||||
cgs.media.shieldActivateShaderRed = trap_R_RegisterShader( "gfx/ff_red" );
|
||||
cgs.media.shieldActivateShaderBlue = trap_R_RegisterShader( "gfx/ff_blue" );
|
||||
break;
|
||||
case 2:
|
||||
cgs.media.shieldActivateShaderBorg = trap_R_RegisterShader( "gfx/forcefielddarkgreen" );
|
||||
cgs.media.shieldActivateShaderYellow = trap_R_RegisterShader( "gfx/forcefielddarkyellow" );
|
||||
cgs.media.shieldActivateShaderRed = trap_R_RegisterShader( "gfx/forcefielddarkred" );
|
||||
cgs.media.shieldActivateShaderBlue = trap_R_RegisterShader( "gfx/forcefielddarkblue" );
|
||||
break;
|
||||
case 1:
|
||||
default:
|
||||
cgs.media.shieldActivateShaderBorg = trap_R_RegisterShader( "gfx/ff_green" );
|
||||
cgs.media.shieldActivateShaderYellow = trap_R_RegisterShader( "gfx/ff_yellow" );
|
||||
cgs.media.shieldActivateShaderRed = trap_R_RegisterShader( "gfx/ff_red" );
|
||||
cgs.media.shieldActivateShaderBlue = trap_R_RegisterShader( "gfx/ff_blue" );
|
||||
break;
|
||||
}
|
||||
//RPG-X END
|
||||
|
||||
|
@ -1082,6 +1144,8 @@ static void CG_RegisterGraphics( void ) {
|
|||
cgs.media.orangeStarShader = trap_R_RegisterShaderNoMip( "gfx/misc/orangestar" );
|
||||
cgs.media.qFlashSprite = trap_R_RegisterShaderNoMip( "gfx/effects/qflash" );
|
||||
|
||||
|
||||
CG_LogFuncEnd();
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -1093,6 +1157,8 @@ CG_RegisterClients
|
|||
static void CG_RegisterClients( void ) {
|
||||
int32_t i;
|
||||
|
||||
CG_LogFuncBegin();
|
||||
|
||||
cg.loadLCARSStage = 8; // Loading bar stage 8
|
||||
CG_LoadingString( "clients" );
|
||||
|
||||
|
@ -1113,6 +1179,8 @@ static void CG_RegisterClients( void ) {
|
|||
|
||||
}
|
||||
cg.loadLCARSStage = 9; // Loading bar stage 9
|
||||
|
||||
CG_LogFuncEnd();
|
||||
}
|
||||
|
||||
//===========================================================================
|
||||
|
@ -1123,9 +1191,14 @@ CG_ConfigString
|
|||
=================
|
||||
*/
|
||||
const char *CG_ConfigString( int32_t index ) {
|
||||
CG_LogFuncBegin();
|
||||
|
||||
if ( index < 0 || index >= MAX_CONFIGSTRINGS ) {
|
||||
CG_LogFuncEnd();
|
||||
CG_Error( "CG_ConfigString: bad index: %i", index );
|
||||
}
|
||||
|
||||
CG_LogFuncEnd();
|
||||
return cgs.gameState.stringData + cgs.gameState.stringOffsets[ index ];
|
||||
}
|
||||
|
||||
|
@ -1141,17 +1214,23 @@ void CG_StartMusic( void ) {
|
|||
char *s;
|
||||
char parm1[MAX_QPATH], parm2[MAX_QPATH];
|
||||
|
||||
CG_LogFuncBegin();
|
||||
|
||||
// start the background music
|
||||
s = (char *)CG_ConfigString( CS_MUSIC );
|
||||
Q_strncpyz( parm1, COM_Parse( &s ), sizeof( parm1 ) );
|
||||
Q_strncpyz( parm2, COM_Parse( &s ), sizeof( parm2 ) );
|
||||
|
||||
trap_S_StartBackgroundTrack( parm1, parm2 );
|
||||
|
||||
CG_LogFuncEnd();
|
||||
}
|
||||
|
||||
extern int32_t altAmmoUsage[];
|
||||
void CG_InitModRules( void )
|
||||
{
|
||||
CG_LogFuncBegin();
|
||||
|
||||
if ( cgs.pModDisintegration )
|
||||
{//don't use up ammo in disintegration mode
|
||||
altAmmoUsage[WP_6] = 0;
|
||||
|
@ -1160,6 +1239,8 @@ void CG_InitModRules( void )
|
|||
{//tripwires use more ammo
|
||||
altAmmoUsage[WP_8] = 3;
|
||||
}
|
||||
|
||||
CG_LogFuncEnd();
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -1174,6 +1255,7 @@ void CG_Init( int32_t serverMessageNum, int32_t serverCommandSequence ) {
|
|||
const char *s;
|
||||
int32_t i;
|
||||
|
||||
CG_LogFuncBegin();
|
||||
CG_Logger(LL_ALWAYS, "This is RPG-X version %s compiled by %s on %s.\n", RPGX_VERSION, RPGX_COMPILEDBY, RPGX_COMPILEDATE);
|
||||
|
||||
// clear everything
|
||||
|
@ -1262,6 +1344,7 @@ void CG_Init( int32_t serverMessageNum, int32_t serverCommandSequence ) {
|
|||
// check version
|
||||
s = CG_ConfigString( CS_GAME_VERSION );
|
||||
if ( strcmp( s, GAME_VERSION ) ) {
|
||||
CG_LogFuncEnd();
|
||||
CG_Error( "Client/Server game mismatch: %s/%s", GAME_VERSION, s );
|
||||
}
|
||||
|
||||
|
@ -1316,16 +1399,19 @@ void CG_Init( int32_t serverMessageNum, int32_t serverCommandSequence ) {
|
|||
|
||||
if ( !CG_LoadCrosshairs() )
|
||||
{
|
||||
CG_LogFuncEnd();
|
||||
CG_Error( "Couldn't load crosshairs script" );
|
||||
}
|
||||
|
||||
if ( !CG_LoadRanks() )
|
||||
{
|
||||
CG_LogFuncEnd();
|
||||
CG_Error( "Couldn't load rankset script: %s", cgs.rankSet );
|
||||
}
|
||||
|
||||
if ( !CG_LoadClasses() )
|
||||
{
|
||||
CG_LogFuncEnd();
|
||||
CG_Error( "Couldn't load classset script: %s", cgs.classSet );
|
||||
}
|
||||
|
||||
|
@ -1336,10 +1422,9 @@ void CG_Init( int32_t serverMessageNum, int32_t serverCommandSequence ) {
|
|||
/* shader remapping */
|
||||
CG_ShaderStateChanged();
|
||||
|
||||
if(grp_berp.integer)
|
||||
CG_Printf(S_COLOR_YELLOW "GSIO01 and Ubergames greet Brave Explorers.\n");
|
||||
|
||||
CG_PrecacheRemapShaders();
|
||||
|
||||
CG_LogFuncEnd();
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -1350,7 +1435,7 @@ Called before every level change or subsystem restart
|
|||
=================
|
||||
*/
|
||||
void CG_Shutdown( void ) {
|
||||
|
||||
CG_LocLogger(LL_TRACE, "%s\n", __FUNCTION__);
|
||||
}
|
||||
|
||||
|
||||
|
@ -1369,6 +1454,8 @@ void CG_ParseIngameText(void)
|
|||
int32_t i;
|
||||
int32_t len;
|
||||
|
||||
CG_LogFuncBegin();
|
||||
|
||||
COM_BeginParseSession();
|
||||
|
||||
buffer = ingameText;
|
||||
|
@ -1388,19 +1475,21 @@ void CG_ParseIngameText(void)
|
|||
|
||||
if (i> IGT_MAX)
|
||||
{
|
||||
Com_Printf( S_COLOR_RED "CG_ParseIngameText : too many values!\n");
|
||||
CG_LocLogger(LL_ERROR, "CG_ParseIngameText : too many values!\n");
|
||||
CG_LogFuncEnd();
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (i != IGT_MAX)
|
||||
{
|
||||
Com_Printf( S_COLOR_RED "CG_ParseIngameText : not enough lines! Read %d of %d!\n",i,IGT_MAX);
|
||||
CG_LocLogger(LL_ERROR, "CG_ParseIngameText : not enough lines! Read %d of %d!\n", i, IGT_MAX);
|
||||
for(;i<IGT_MAX;i++) {
|
||||
ingame_text[i] = "?";
|
||||
}
|
||||
}
|
||||
|
||||
CG_LogFuncEnd();
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -1411,6 +1500,8 @@ void CG_LanguageFilename(char *baseName,char *baseExtension,char *finalName)
|
|||
char language[32];
|
||||
fileHandle_t file;
|
||||
|
||||
CG_LogFuncBegin();
|
||||
|
||||
trap_Cvar_VariableStringBuffer("g_language", language, 32 );
|
||||
|
||||
// If it's English then no extension
|
||||
|
@ -1434,6 +1525,8 @@ void CG_LanguageFilename(char *baseName,char *baseExtension,char *finalName)
|
|||
trap_FS_FCloseFile( file );
|
||||
}
|
||||
}
|
||||
|
||||
CG_LogFuncEnd();
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -1447,19 +1540,23 @@ void CG_LoadIngameText(void)
|
|||
fileHandle_t f;
|
||||
char fileName[MAX_QPATH];
|
||||
|
||||
CG_LogFuncBegin();
|
||||
|
||||
CG_LanguageFilename("ext_data/mp_ingametext","dat",fileName);
|
||||
|
||||
len = trap_FS_FOpenFile( fileName, &f, FS_READ );
|
||||
|
||||
if ( !f )
|
||||
{
|
||||
Com_Printf( S_COLOR_RED "CG_LoadIngameText : mp_ingametext.dat file not found!\n");
|
||||
CG_LocLogger(LL_ERROR, "CG_LoadIngameText : mp_ingametext.dat file not found!\n");
|
||||
CG_LogFuncEnd();
|
||||
return;
|
||||
}
|
||||
|
||||
if (len > MAXINGAMETEXT)
|
||||
{
|
||||
Com_Printf( S_COLOR_RED "CG_LoadIngameText : mp_ingametext.dat file bigger than %d!\n",MAXINGAMETEXT);
|
||||
CG_LocLogger(LL_ERROR, "CG_LoadIngameText : mp_ingametext.dat file bigger than %d!\n", MAXINGAMETEXT);
|
||||
CG_LogFuncEnd();
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -1473,6 +1570,7 @@ void CG_LoadIngameText(void)
|
|||
|
||||
CG_ParseIngameText();
|
||||
|
||||
CG_LogFuncEnd();
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -1490,6 +1588,8 @@ void CG_LoadObjectivesForMap(void)
|
|||
char fullFileName[MAX_QPATH];
|
||||
char objtext[MAX_OBJ_TEXT_LENGTH];
|
||||
|
||||
CG_LogFuncBegin();
|
||||
|
||||
COM_StripExtension( cgs.mapname, fileName );
|
||||
CG_LanguageFilename( fileName, "efo", fullFileName);
|
||||
|
||||
|
@ -1497,7 +1597,8 @@ void CG_LoadObjectivesForMap(void)
|
|||
|
||||
if ( len > MAX_OBJ_TEXT_LENGTH )
|
||||
{
|
||||
Com_Printf( S_COLOR_RED "CG_LoadObjectivesForMap : %s file bigger than %d!\n", fileName, MAX_OBJ_TEXT_LENGTH );
|
||||
CG_LocLogger(LL_ERROR, "CG_LoadObjectivesForMap : %s file bigger than %d!\n", fileName, MAX_OBJ_TEXT_LENGTH );
|
||||
CG_LogFuncEnd();
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -1544,6 +1645,8 @@ void CG_LoadObjectivesForMap(void)
|
|||
Q_strncpyz( cgs.objectives[objnum-1].abridgedText, token, sizeof(cgs.objectives[objnum-1].abridgedText) );
|
||||
}
|
||||
}
|
||||
|
||||
CG_LogFuncEnd();
|
||||
}
|
||||
|
||||
|
||||
|
@ -1557,6 +1660,8 @@ qboolean CG_LoadClasses( void )
|
|||
int32_t numClasses=0;
|
||||
int32_t i;
|
||||
|
||||
CG_LogFuncBegin();
|
||||
|
||||
Com_sprintf( filePath, sizeof( filePath ), "ext_data/classes/%s.classes", cgs.classSet );
|
||||
|
||||
memset( &cgs.classData, 0, sizeof( cg_classData_t ) );
|
||||
|
@ -1565,13 +1670,15 @@ qboolean CG_LoadClasses( void )
|
|||
|
||||
if ( !file_len )
|
||||
{
|
||||
CG_Printf( S_COLOR_RED "Couldn't find class file: %s\n", filePath );
|
||||
CG_LocLogger(LL_ERROR, "Couldn't find class file: %s\n", filePath );
|
||||
CG_LogFuncEnd();
|
||||
return qfalse;
|
||||
}
|
||||
|
||||
if ( file_len > sizeof( buffer ) )
|
||||
{
|
||||
CG_Printf( S_COLOR_RED "File %s was way too big to be loaded.\n", filePath );
|
||||
CG_LocLogger(LL_ERROR, "File %s was way too big to be loaded.\n", filePath );
|
||||
CG_LogFuncEnd();
|
||||
return qfalse;
|
||||
}
|
||||
|
||||
|
@ -1587,12 +1694,14 @@ qboolean CG_LoadClasses( void )
|
|||
token = COM_Parse( &textPtr );
|
||||
|
||||
if ( !token[0] ) {
|
||||
CG_Printf( S_COLOR_RED "ERROR: No data was found when going to parse the file!\n" );
|
||||
CG_LocLogger(LL_ERROR, "ERROR: No data was found when going to parse the file!\n" );
|
||||
CG_LogFuncEnd();
|
||||
return qfalse;
|
||||
}
|
||||
|
||||
if ( Q_stricmpn( token, "{", 1 ) ) {
|
||||
CG_Printf( S_COLOR_RED "ERROR: File did not start with a '{' symbol!\n" );
|
||||
CG_LocLogger(LL_ERROR, "ERROR: File did not start with a '{' symbol!\n" );
|
||||
CG_LogFuncEnd();
|
||||
return qfalse;
|
||||
}
|
||||
|
||||
|
@ -1616,7 +1725,7 @@ qboolean CG_LoadClasses( void )
|
|||
{
|
||||
if ( COM_ParseString( &textPtr, &token ) )
|
||||
{
|
||||
CG_Printf( S_COLOR_RED "ERROR: Invalid class formal name in class index: %i.\n", numClasses );
|
||||
CG_LocLogger(LL_ERROR, "ERROR: Invalid class formal name in class index: %i.\n", numClasses );
|
||||
continue;
|
||||
}
|
||||
|
||||
|
@ -1630,7 +1739,7 @@ qboolean CG_LoadClasses( void )
|
|||
|
||||
if ( COM_ParseVec3( &textPtr, temp ) )
|
||||
{
|
||||
CG_Printf( S_COLOR_RED "ERROR: Invalid color values in class index: %i.\n", numClasses );
|
||||
CG_LocLogger(LL_ERROR, "ERROR: Invalid color values in class index: %i.\n", numClasses );
|
||||
continue;
|
||||
}
|
||||
|
||||
|
@ -1646,7 +1755,7 @@ qboolean CG_LoadClasses( void )
|
|||
{
|
||||
if ( COM_ParseString( &textPtr, &token ) )
|
||||
{
|
||||
CG_Printf( S_COLOR_RED "ERROR: Invalid class icon color in class index: %i.\n", numClasses );
|
||||
CG_LocLogger(LL_ERROR, "ERROR: Invalid class icon color in class index: %i.\n", numClasses );
|
||||
continue;
|
||||
}
|
||||
|
||||
|
@ -1680,7 +1789,7 @@ qboolean CG_LoadClasses( void )
|
|||
{
|
||||
if ( COM_ParseInt( &textPtr, (int32_t *)&cgs.classData[numClasses].isMedic ) )
|
||||
{
|
||||
CG_Printf( S_COLOR_RED "ERROR: Class medic check for class %i was invalid.\n", numClasses );
|
||||
CG_LocLogger(LL_ERROR, "ERROR: Class medic check for class %i was invalid.\n", numClasses );
|
||||
continue;
|
||||
}
|
||||
|
||||
|
@ -1691,7 +1800,7 @@ qboolean CG_LoadClasses( void )
|
|||
{
|
||||
if( COM_ParseInt( &textPtr, (int32_t *)&cgs.classData[numClasses].isBorg ) )
|
||||
{
|
||||
CG_Printf( S_COLOR_RED "ERROR: Class borg check for class %i was invalid.\n", numClasses );
|
||||
CG_LocLogger(LL_ERROR, "ERROR: Class borg check for class %i was invalid.\n", numClasses );
|
||||
continue;
|
||||
}
|
||||
continue;
|
||||
|
@ -1701,7 +1810,7 @@ qboolean CG_LoadClasses( void )
|
|||
{
|
||||
if ( COM_ParseInt( &textPtr, (int32_t *)&cgs.classData[numClasses].showRanks ) )
|
||||
{
|
||||
CG_Printf( S_COLOR_RED "ERROR: Class Ranks check for class %i was invalid.\n", numClasses );
|
||||
CG_LocLogger(LL_ERROR, "ERROR: Class Ranks check for class %i was invalid.\n", numClasses );
|
||||
continue;
|
||||
}
|
||||
|
||||
|
@ -1746,11 +1855,12 @@ qboolean CG_LoadClasses( void )
|
|||
}
|
||||
}
|
||||
|
||||
if ( numClasses > 0 )
|
||||
if ( numClasses > 0 ) {
|
||||
CG_LogFuncEnd();
|
||||
return qtrue;
|
||||
else
|
||||
{
|
||||
CG_Printf( S_COLOR_RED "ERROR: No classes were found in the class file!\n" );
|
||||
} else {
|
||||
CG_LocLogger(LL_ERROR, "ERROR: No classes were found in the class file!\n" );
|
||||
CG_LogFuncEnd();
|
||||
return qfalse;
|
||||
}
|
||||
}
|
||||
|
@ -1767,6 +1877,8 @@ qboolean CG_LoadUsablesStrings( void )
|
|||
int32_t i;
|
||||
int32_t strLen;
|
||||
|
||||
CG_LogFuncBegin();
|
||||
|
||||
//setup the file route
|
||||
Com_sprintf( mapRoute, sizeof( mapRoute ), "%s", cgs.mapname );
|
||||
|
||||
|
@ -1786,6 +1898,7 @@ qboolean CG_LoadUsablesStrings( void )
|
|||
{
|
||||
//CG_Printf( S_COLOR_YELLOW "WARNING: No file named %s was found. If the server \n", fileRoute );
|
||||
trap_FS_FCloseFile( f );
|
||||
CG_LogFuncEnd();
|
||||
return qfalse;
|
||||
}
|
||||
|
||||
|
@ -1798,7 +1911,8 @@ qboolean CG_LoadUsablesStrings( void )
|
|||
|
||||
if ( !buffer[0] )
|
||||
{
|
||||
CG_Printf( S_COLOR_RED "ERROR: Attempted to load %s, but no data was inside!\n", fileRoute );
|
||||
CG_LocLogger(LL_ERROR, "ERROR: Attempted to load %s, but no data was inside!\n", fileRoute );
|
||||
CG_LogFuncEnd();
|
||||
return qfalse;
|
||||
}
|
||||
|
||||
|
@ -1818,7 +1932,7 @@ qboolean CG_LoadUsablesStrings( void )
|
|||
token = COM_Parse( &textPtr );
|
||||
if ( Q_strncmp( token, "{", 1 ) != 0 )
|
||||
{
|
||||
CG_Printf( S_COLOR_RED "ERROR: UsableDescriptions had no opening brace ( { )!\n" );
|
||||
CG_LocLogger(LL_ERROR, "ERROR: UsableDescriptions had no opening brace ( { )!\n" );
|
||||
continue;
|
||||
}
|
||||
|
||||
|
@ -1853,5 +1967,6 @@ qboolean CG_LoadUsablesStrings( void )
|
|||
}
|
||||
}
|
||||
|
||||
CG_LogFuncEnd();
|
||||
return qtrue;
|
||||
}
|
||||
|
|
|
@ -12,6 +12,8 @@ enum {
|
|||
LL_TRACE
|
||||
};
|
||||
|
||||
#define G_LogFuncBegin() G_LocLogger(LL_TRACE, "%s - Begin\n", __FUNCTION__)
|
||||
#define G_LogFuncEnd() G_LocLogger(LL_TRACE, "%s - End\n", __FUNCTION__)
|
||||
#define G_LocLogger(X,...) _G_LocLogger(__FILE__, __LINE__, X, __VA_ARGS__)
|
||||
void QDECL G_Logger(int level, char* fmt, ...) __attribute__ ((format (printf, 2, 3)));
|
||||
void QDECL _G_LocLogger(const char* file, int line, int level, char* fmt, ...) __attribute__ ((format (printf, 4, 5)));
|
||||
|
|
|
@ -12,6 +12,8 @@ enum {
|
|||
LL_TRACE
|
||||
};
|
||||
|
||||
#define UI_LogFuncBegin() UI_LocLogger(LL_TRACE, "%s - Begin\n", __FUNCTION__)
|
||||
#define UI_LogFuncEnd() UI_LocLogger(LL_TRACE, "%s - End\n", __FUNCTION__)
|
||||
#define UI_LocLogger(X,...) _UI_LocLogger(__FILE__, __LINE__, X, __VA_ARGS__)
|
||||
void QDECL UI_Logger(int level, char* fmt, ...) __attribute__ ((format (printf, 2, 3)));
|
||||
void QDECL _UI_LocLogger(const char* file, int line, int level, char* fmt, ...) __attribute__ ((format (printf, 4, 5)));
|
||||
|
|
Loading…
Reference in a new issue