void UTIL_LogToFile(char* szFileName, const char *fmt, ...) { va_list argptr; va_start ( argptr, fmt ); vsnprintf ( g_szLogString, sizeof(g_szLogString), fmt, argptr ); va_end ( argptr ); char* szFilePath = new char[strlen(GlobalVariables::g_szDLLDirPath) + 12 + 30 + 1]; char* szLogFile = get_timestring("_%Y%m%d.log"); sprintf(szFilePath, "%slogs/%s%s", (GlobalVariables::g_szDLLDirPath), szFileName, szLogFile); FILE* hFile = fopen(szFilePath, "a+"); delete[] szFilePath; delete[] szLogFile; if(hFile == NULL) { char szError[256]; sprintf(szError, "Error fopen: %s\n", strerror(errno)); SERVER_PRINT(szError); clearerr(hFile); return; } fprintf(hFile, g_szLogString); if(ferror(hFile)) { char szError[256]; sprintf(szError, "Error fprintf: %s\n", strerror(errno)); SERVER_PRINT(szError); clearerr(hFile); return; } fclose(hFile); }
/* <22fed4> ../cstrike/dlls/debug.cpp:94 */ void SetDebugFlag(const char *flagStr, bool state) { if (flagStr != NULL) { DebugOutputType flag; for (int i = 0; i < ARRAYSIZE(outputLevel); ++i) { DebugOutputLevel level = outputLevel[ i ]; if (FStrEq(level.name, flagStr)) { flag = level.value; if (state) theDebugOutputTypes |= flag; else theDebugOutputTypes &= ~flag; SERVER_PRINT(SharedVarArgs("mp_debug: %s is now %s\n", flagStr, state ? "on" : "off")); return; } } } SERVER_PRINT(SharedVarArgs("mp_debug: unknown variable '%s'\n", flagStr)); }
// Debug message void REALBOT_PRINT(cBot * pBot, char *Function, char *msg) { // Message format: // Function name - [BOT NAME, BOT TEAM]: Message char cMessage[256]; char team[9]; char name[32]; memset(team, 0, sizeof(team)); // clear memset(name, 0, sizeof(name)); // clear strcpy(team, "TERROR"); // t strcpy(name, "FUNCTION"); if (pBot) { memset(name, 0, sizeof(name)); // clear strcpy(name, pBot->name); // copy name if (pBot->iTeam == 2) strcpy(team, "COUNTER"); } else { strcpy(team, "NONE"); } sprintf(cMessage, "RBPRINT->[%s '%s']-[Team %s] : %s\n", name, Function, team, msg); // print in console only when on debug print if (Game.bDebug) SERVER_PRINT(cMessage); // print this realbot message also in the LOG file. rblog(cMessage); } // REALBOT_PRINT()
/* <23001f> ../cstrike/dlls/debug.cpp:126 */ void PrintDebugFlag(const char *flagStr) { if (flagStr != NULL) { DebugOutputType flag; for (int i = 0; i < ARRAYSIZE(outputLevel); ++i) { DebugOutputLevel level = outputLevel[ i ]; if (FStrEq(level.name, flagStr)) { flag = level.value; SERVER_PRINT(SharedVarArgs("mp_debug: %s is %s\n", flagStr, (flag & theDebugOutputTypes) ? "on" : "off")); return; } } } SERVER_PRINT(SharedVarArgs("mp_debug: unknown variable '%s'\n", flagStr)); }
NOINLINE void LCPrintf(const char *fmt, ...) { va_list argptr; const int prefixlen = sizeof("[ReIZ]: ") - 1; va_start(argptr, fmt); vsnprintf(logstring + prefixlen, sizeof(logstring) - prefixlen, fmt, argptr); va_end(argptr); SERVER_PRINT(logstring); }
void print_srvconsole( const char *fmt, ...) { va_list argptr; static char string[384]; va_start(argptr, fmt); vsnprintf(string, sizeof(string) - 1, fmt, argptr); string[sizeof(string) - 1] = '\0'; va_end(argptr); SERVER_PRINT(string); }
void UTIL_ServerPrint(const char *fmt, ...) { va_list argptr; char string[1024]; va_start(argptr, fmt); vsprintf(string, fmt, argptr); va_end(argptr); SERVER_PRINT(string); }
void CONSOLE_ECHO(char *pszMsg, ...) { va_list argptr; static char szStr[1024]; va_start(argptr, pszMsg); vsprintf(szStr, pszMsg, argptr); va_end(argptr); SERVER_PRINT(szStr); }
void print(char* format, ...) { char buffer[1000]; va_list args; va_start(args, format); vsprintf(buffer, format, args); SERVER_PRINT(buffer); Util::debug_fprintf(buffer); va_end(args); }
/* <22fe23> ../cstrike/dlls/debug.cpp:56 */ void UTIL_DPrintf(char *pszMsg, ...) { if (!IsDeveloper()) return; va_list argptr; va_start(argptr, pszMsg); vsprintf(theDebugBuffer, pszMsg, argptr); va_end(argptr); SERVER_PRINT(theDebugBuffer); }
/* <23027d> ../cstrike/dlls/debug.cpp:247 */ NOXREF void UTIL_HostageDPrintf(char *pszMsg, ...) { if (!IsDeveloper()) return; if (theDebugOutputTypes & DEBUG_HOSTAGE) { va_list argptr; va_start(argptr, pszMsg); vsprintf(theDebugBuffer, pszMsg, argptr); va_end(argptr); SERVER_PRINT(theDebugBuffer); } }
void UTIL_LogError(const char *fmt, ...) { va_list argptr; va_start ( argptr, fmt ); vsnprintf ( g_szLogString, sizeof(g_szLogString), fmt, argptr ); va_end ( argptr ); char* szStr = UTIL_GetLog(g_szLogString); strcpy(g_szLogString, szStr); SERVER_PRINT(szStr); UTIL_LogToFile("error", g_szLogString); ALERT( at_error, szStr ); delete[] szStr; }
/* <22ff69> ../cstrike/dlls/debug.cpp:45 */ NOXREF void UTIL_DPrintf(DebugOutputType outputType, char *pszMsg, ...) { if (!IsDeveloper()) return; if (theDebugOutputTypes & outputType) { va_list argptr; va_start(argptr, pszMsg); vsprintf(theDebugBuffer, pszMsg, argptr); va_end(argptr); SERVER_PRINT(theDebugBuffer); } }
/* <230181> ../cstrike/dlls/debug.cpp:193 */ void UTIL_CareerDPrintf(char *pszMsg, ...) { if (!IsDeveloper()) return; if (theDebugOutputTypes & DEBUG_CAREER) { va_list argptr; va_start(argptr, pszMsg); vsprintf(theDebugBuffer, pszMsg, argptr); va_end(argptr); SERVER_PRINT(theDebugBuffer); } }
/* <22fe97> ../cstrike/dlls/debug.cpp:78 */ void PrintDebugFlags() { char *tmp; int remainder = DebugBufferSize; theDebugBuffer[0] = '\0'; tmp = BufPrintf(theDebugBuffer, remainder, "mp_debug:\n"); for (int i = 0; i < NUM_LEVELS - 1; ++i) { DebugOutputLevel level = outputLevel[i]; tmp = BufPrintf(tmp, remainder, " %s: %s\n", level.name, (theDebugOutputTypes & level.value) ? "on" : "off"); } SERVER_PRINT(theDebugBuffer); }
// Log to console; newline added. void mutil_LogConsole(plid_t /* plid */, const char *fmt, ...) { va_list ap; char buf[MAX_LOGMSG_LEN]; unsigned int len; va_start(ap, fmt); vsnprintf(buf, sizeof(buf), fmt, ap); va_end(ap); // end msg with newline len=strlen(buf); if(len < sizeof(buf)-2) // -1 null, -1 for newline strcat(buf, "\n"); else buf[len-1] = '\n'; SERVER_PRINT(buf); }
void _printf2(const char *fmt, ...) { /* * check is null, test the demo started before than searches pointer to refs */ if (&g_engfuncs == NULL || g_engfuncs.pfnServerPrint == NULL) return; static char Dest[4096]; va_list ap; va_start(ap, fmt); vsnprintf(Dest, sizeof(Dest), fmt, ap); va_end(ap); if (Q_strlen(Dest) < sizeof(Dest) - 2) Q_strcat(Dest, "\n"); else Dest[Q_strlen(Dest) - 1] = '\n'; SERVER_PRINT(Dest); }
void LCPrintf(bool critical, const char *fmt, ...) { va_list argptr; const int prefixlen = 11; //sizeof(LOG_PREFIX) - 1; va_start(argptr, fmt); vsnprintf(logstring + prefixlen, sizeof(logstring) - prefixlen, fmt, argptr); va_end(argptr); bool bNeedWriteInConsole = critical || (g_RevoiceConfig && g_RevoiceConfig->hasLogMode(rl_console)); bool bNeedWriteInLog = critical || (g_RevoiceConfig && g_RevoiceConfig->hasLogMode(rl_logfile)); if (bNeedWriteInConsole && bNeedWriteInLog && g_RehldsSvs && g_RehldsSvs->IsLogActive()) { if (pcv_mp_logecho && pcv_mp_logecho->value != 0.0) bNeedWriteInConsole = false; } if (bNeedWriteInConsole) SERVER_PRINT(logstring); if (bNeedWriteInLog) ALERT(at_logged, logstring); }
// Parse IAD file: // Important Area Definition file void INI_PARSE_IAD() { char dirname[256]; char filename[256]; FILE *stream; int section = INI_NONE; int wordtype = WORD_NONE; // Set Directory name strcpy(dirname, "data/cstrike/ini/"); strcat(dirname, STRING(gpGlobals->mapname)); strcat(dirname, ".ini"); // nodes file // writes whole path into "filename", Linux compatible UTIL_BuildFileNameRB(dirname, filename); SERVER_PRINT(filename); SERVER_PRINT("\n"); float AreaX, AreaY, AreaZ; AreaX = AreaY = AreaZ = 9999; if ((stream = fopen(filename, "r+t")) != NULL) { char linefeed[80]; char lineword[25]; char linesection[30]; // infinite loop baby while (!feof(stream)) { INI_Sentence(stream, linefeed); // Linefeed contains a string of 1 sentence. Whenever the first character is a commentary // character (which is "//", ";" or "#"), or an empty line, then skip it if (linefeed[0] == ';' || linefeed[0] == '#' || (linefeed[0] == '/' && linefeed[1] == '/') || linefeed[0] == '\n' || linefeed[0] == '\0') continue; // Skip wordtype = WORD_NONE; // Every line is checked for a new section. INI_Section(linefeed, linesection); if (linesection[0] != '\0' && strlen(linesection) > 1) { section = INI_SectionType(linesection, section); continue; // next line } // Check word only when in a section if (section != INI_NONE) { INI_Word(linefeed, lineword); wordtype = INI_WordType(lineword, section); if (section == INI_AREA) { if (wordtype == WORD_AREAX) AreaX = INI_WordValueINT(linefeed); if (wordtype == WORD_AREAY) AreaY = INI_WordValueINT(linefeed); if (wordtype == WORD_AREAZ) AreaZ = INI_WordValueINT(linefeed); if (AreaX != 9999 && AreaY != 9999 && AreaZ != 9999) { // add this to goal rblog("IAD: Adding an important area/goal\n"); NodeMachine.goal_add(NULL, GOAL_IMPORTANT, Vector(AreaX, AreaY, AreaZ)); AreaX = AreaY = AreaZ = 9999; } } } } // while fclose(stream); } }