diff options
Diffstat (limited to 'src/engine/shared')
| -rw-r--r-- | src/engine/shared/config_variables.h | 1 | ||||
| -rw-r--r-- | src/engine/shared/console.cpp | 35 | ||||
| -rw-r--r-- | src/engine/shared/console.h | 2 | ||||
| -rw-r--r-- | src/engine/shared/demorec.cpp | 45 | ||||
| -rw-r--r-- | src/engine/shared/demorec.h | 6 | ||||
| -rw-r--r-- | src/engine/shared/network.h | 2 | ||||
| -rw-r--r-- | src/engine/shared/network_client.cpp | 2 | ||||
| -rw-r--r-- | src/engine/shared/network_server.cpp | 9 |
8 files changed, 66 insertions, 36 deletions
diff --git a/src/engine/shared/config_variables.h b/src/engine/shared/config_variables.h index 9fb67e80..03d8f907 100644 --- a/src/engine/shared/config_variables.h +++ b/src/engine/shared/config_variables.h @@ -10,6 +10,7 @@ MACRO_CONFIG_STR(PlayerName, player_name, 24, "nameless tee", CFGFLAG_SAVE|CFGFL MACRO_CONFIG_STR(ClanName, clan_name, 32, "", CFGFLAG_SAVE|CFGFLAG_CLIENT, "(not used)") MACRO_CONFIG_STR(Password, password, 32, "", CFGFLAG_CLIENT|CFGFLAG_SERVER, "Password to the server") MACRO_CONFIG_STR(Logfile, logfile, 128, "", CFGFLAG_SAVE|CFGFLAG_CLIENT|CFGFLAG_SERVER, "Filename to log all output to") +MACRO_CONFIG_INT(ConsoleOutputLevel, console_output_level, 0, 0, 2, CFGFLAG_CLIENT|CFGFLAG_SERVER, "Adjusts the amount of information in the console") MACRO_CONFIG_INT(ClCpuThrottle, cl_cpu_throttle, 0, 0, 1, CFGFLAG_SAVE|CFGFLAG_CLIENT, "") MACRO_CONFIG_INT(ClEditor, cl_editor, 0, 0, 1, CFGFLAG_CLIENT, "") diff --git a/src/engine/shared/console.cpp b/src/engine/shared/console.cpp index 367e7e87..dc2e1a25 100644 --- a/src/engine/shared/console.cpp +++ b/src/engine/shared/console.cpp @@ -157,11 +157,15 @@ void CConsole::RegisterPrintCallback(FPrintCallback pfnPrintCallback, void *pUse m_pPrintCallbackUserdata = pUserData; } -void CConsole::Print(const char *pStr) +void CConsole::Print(int Level, const char *pFrom, const char *pStr) { - dbg_msg("console" ,"%s", pStr); - if (m_pfnPrintCallback) - m_pfnPrintCallback(pStr, m_pPrintCallbackUserdata); + dbg_msg(pFrom ,"%s", pStr); + if (Level <= g_Config.m_ConsoleOutputLevel && m_pfnPrintCallback) + { + char aBuf[1024]; + str_format(aBuf, sizeof(aBuf), "[%s]: %s", pFrom, pStr); + m_pfnPrintCallback(aBuf, m_pPrintCallbackUserdata); + } } void CConsole::ExecuteLineStroked(int Stroke, const char *pStr) @@ -218,7 +222,7 @@ void CConsole::ExecuteLineStroked(int Stroke, const char *pStr) { char aBuf[256]; str_format(aBuf, sizeof(aBuf), "Invalid arguments... Usage: %s %s", pCommand->m_pName, pCommand->m_pParams); - Print(aBuf); + Print(OUTPUT_LEVEL_STANDARD, "Console", aBuf); } else if(m_StoreCommands && pCommand->m_Flags&CFGFLAG_STORE) { @@ -234,7 +238,7 @@ void CConsole::ExecuteLineStroked(int Stroke, const char *pStr) { char aBuf[256]; str_format(aBuf, sizeof(aBuf), "No such command: %s.", pResult->m_pCommand); - Print(aBuf); + Print(OUTPUT_LEVEL_STANDARD, "Console", aBuf); } pStr = pNextPart; @@ -298,12 +302,14 @@ void CConsole::ExecuteFile(const char *pFilename) // exec the file IOHANDLE File = m_pStorage->OpenFile(pFilename, IOFLAG_READ); + char aBuf[256]; if(File) { char *pLine; CLineReader lr; - dbg_msg("console", "executing '%s'", pFilename); + str_format(aBuf, sizeof(aBuf), "executing '%s'", pFilename); + Print(IConsole::OUTPUT_LEVEL_STANDARD, "console", aBuf); lr.Init(File); while((pLine = lr.Get())) @@ -312,14 +318,17 @@ void CConsole::ExecuteFile(const char *pFilename) io_close(File); } else - dbg_msg("console", "failed to open '%s'", pFilename); + { + str_format(aBuf, sizeof(aBuf), "failed to open '%s'", pFilename); + Print(IConsole::OUTPUT_LEVEL_STANDARD, "console", aBuf); + } m_pFirstExec = pPrev; } void CConsole::Con_Echo(IResult *pResult, void *pUserData) { - ((CConsole*)pUserData)->Print(pResult->GetString(0)); + ((CConsole*)pUserData)->Print(IConsole::OUTPUT_LEVEL_STANDARD, "Console", pResult->GetString(0)); } void CConsole::Con_Exec(IResult *pResult, void *pUserData) @@ -365,7 +374,7 @@ static void IntVariableCommand(IConsole::IResult *pResult, void *pUserData) { char aBuf[1024]; str_format(aBuf, sizeof(aBuf), "Value: %d", *(pData->m_pVariable)); - pData->m_pConsole->Print(aBuf); + pData->m_pConsole->Print(IConsole::OUTPUT_LEVEL_STANDARD, "Console", aBuf); } } @@ -379,7 +388,7 @@ static void StrVariableCommand(IConsole::IResult *pResult, void *pUserData) { char aBuf[1024]; str_format(aBuf, sizeof(aBuf), "Value: %s", pData->m_pStr); - pData->m_pConsole->Print(aBuf); + pData->m_pConsole->Print(IConsole::OUTPUT_LEVEL_STANDARD, "Console", aBuf); } } @@ -466,7 +475,9 @@ void CConsole::Chain(const char *pName, FChainCommandCallback pfnChainFunc, void if(!pCommand) { - dbg_msg("console", "failed to chain '%s'", pName); + char aBuf[256]; + str_format(aBuf, sizeof(aBuf), "failed to chain '%s'", pName); + Print(IConsole::OUTPUT_LEVEL_DEBUG, "console", aBuf); return; } diff --git a/src/engine/shared/console.h b/src/engine/shared/console.h index 9c127ae0..87df6dea 100644 --- a/src/engine/shared/console.h +++ b/src/engine/shared/console.h @@ -123,7 +123,7 @@ public: virtual void ExecuteFile(const char *pFilename); virtual void RegisterPrintCallback(FPrintCallback pfnPrintCallback, void *pUserData); - virtual void Print(const char *pStr); + virtual void Print(int Level, const char *pFrom, const char *pStr); }; #endif diff --git a/src/engine/shared/demorec.cpp b/src/engine/shared/demorec.cpp index 6c2ba07d..23da2478 100644 --- a/src/engine/shared/demorec.cpp +++ b/src/engine/shared/demorec.cpp @@ -1,4 +1,5 @@ #include <base/system.h> +#include <engine/console.h> #include <engine/shared/protocol.h> #include <engine/storage.h> #include "demorec.h" @@ -20,17 +21,20 @@ CDemoRecorder::CDemoRecorder(class CSnapshotDelta *pSnapshotDelta) //static IOHANDLE m_File = 0; // Record -int CDemoRecorder::Start(class IStorage *pStorage, const char *pFilename, const char *pNetVersion, const char *pMap, int Crc, const char *pType) +int CDemoRecorder::Start(class IStorage *pStorage, class IConsole *pConsole, const char *pFilename, const char *pNetVersion, const char *pMap, int Crc, const char *pType) { CDemoHeader Header; if(m_File) return -1; + m_pConsole = pConsole; m_File = pStorage->OpenFile(pFilename, IOFLAG_WRITE); if(!m_File) { - dbg_msg("demorec/record", "Unable to open '%s' for recording", pFilename); + char aBuf[256]; + str_format(aBuf, sizeof(aBuf), "Unable to open '%s' for recording", pFilename); + m_pConsole->Print(IConsole::OUTPUT_LEVEL_STANDARD, "demo_recorder", aBuf); return -1; } @@ -49,7 +53,9 @@ int CDemoRecorder::Start(class IStorage *pStorage, const char *pFilename, const m_LastKeyFrame = -1; m_LastTickMarker = -1; - dbg_msg("demorec/record", "Recording to '%s'", pFilename); + char aBuf[256]; + str_format(aBuf, sizeof(aBuf), "Recording to '%s'", pFilename); + m_pConsole->Print(IConsole::OUTPUT_LEVEL_STANDARD, "demo_recorder", aBuf); return 0; } @@ -193,7 +199,7 @@ int CDemoRecorder::Stop() if(!m_File) return -1; - dbg_msg("demorec/record", "Stopped recording"); + m_pConsole->Print(IConsole::OUTPUT_LEVEL_STANDARD, "demo_recorder", "Stopped recording"); io_close(m_File); m_File = 0; return 0; @@ -348,7 +354,7 @@ void CDemoPlayer::DoTick() if(ReadChunkHeader(&ChunkType, &ChunkSize, &ChunkTick)) { // stop on error or eof - dbg_msg("demorec", "end of file"); + m_pConsole->Print(IConsole::OUTPUT_LEVEL_ADDINFO, "demo_player", "end of file"); Pause(); break; } @@ -359,7 +365,7 @@ void CDemoPlayer::DoTick() if(io_read(m_File, aCompresseddata, ChunkSize) != (unsigned)ChunkSize) { // stop on error or eof - dbg_msg("demorec", "error reading chunk"); + m_pConsole->Print(IConsole::OUTPUT_LEVEL_ADDINFO, "demo_player", "error reading chunk"); Stop(); break; } @@ -368,7 +374,7 @@ void CDemoPlayer::DoTick() if(DataSize < 0) { // stop on error or eof - dbg_msg("demorec", "error during network decompression"); + m_pConsole->Print(IConsole::OUTPUT_LEVEL_ADDINFO, "demo_player", "error during network decompression"); Stop(); break; } @@ -377,7 +383,7 @@ void CDemoPlayer::DoTick() if(DataSize < 0) { - dbg_msg("demorec", "error during intpack decompression"); + m_pConsole->Print(IConsole::OUTPUT_LEVEL_ADDINFO, "demo_player", "error during intpack decompression"); Stop(); break; } @@ -401,7 +407,11 @@ void CDemoPlayer::DoTick() mem_copy(m_aLastSnapshotData, aNewsnap, DataSize); } else - dbg_msg("demorec", "error duing unpacking of delta, err=%d", DataSize); + { + char aBuf[256]; + str_format(aBuf, sizeof(aBuf), "error during unpacking of delta, err=%d", DataSize); + m_pConsole->Print(IConsole::OUTPUT_LEVEL_ADDINFO, "demo_player", aBuf); + } } else if(ChunkType == CHUNKTYPE_SNAPSHOT) { @@ -452,12 +462,15 @@ void CDemoPlayer::Unpause() } } -int CDemoPlayer::Load(class IStorage *pStorage, const char *pFilename) +int CDemoPlayer::Load(class IStorage *pStorage, class IConsole *pConsole, const char *pFilename) { + m_pConsole = pConsole; m_File = pStorage->OpenFile(pFilename, IOFLAG_READ); if(!m_File) { - dbg_msg("demorec/playback", "could not open '%s'", pFilename); + char aBuf[256]; + str_format(aBuf, sizeof(aBuf), "could not open '%s'", pFilename); + m_pConsole->Print(IConsole::OUTPUT_LEVEL_STANDARD, "demo_player", aBuf); return -1; } @@ -477,7 +490,9 @@ int CDemoPlayer::Load(class IStorage *pStorage, const char *pFilename) io_read(m_File, &m_Info.m_Header, sizeof(m_Info.m_Header)); if(mem_comp(m_Info.m_Header.m_aMarker, gs_aHeaderMarker, sizeof(gs_aHeaderMarker)) != 0) { - dbg_msg("demorec/playback", "'%s' is not a demo file", pFilename); + char aBuf[256]; + str_format(aBuf, sizeof(aBuf), "'%s' is not a demo file", pFilename); + m_pConsole->Print(IConsole::OUTPUT_LEVEL_STANDARD, "demo_player", aBuf); io_close(m_File); m_File = 0; return -1; @@ -599,8 +614,10 @@ int CDemoPlayer::Update() if(m_Info.m_Info.m_CurrentTick == m_Info.m_PreviousTick || m_Info.m_Info.m_CurrentTick == m_Info.m_NextTick) { - dbg_msg("demorec/playback", "tick error prev=%d cur=%d next=%d", + char aBuf[256]; + str_format(aBuf, sizeof(aBuf), "tick error prev=%d cur=%d next=%d", m_Info.m_PreviousTick, m_Info.m_Info.m_CurrentTick, m_Info.m_NextTick); + m_pConsole->Print(IConsole::OUTPUT_LEVEL_ADDINFO, "demo_player", aBuf); } } @@ -612,7 +629,7 @@ int CDemoPlayer::Stop() if(!m_File) return -1; - dbg_msg("demorec/playback", "Stopped playback"); + m_pConsole->Print(IConsole::OUTPUT_LEVEL_STANDARD, "demo_player", "Stopped playback"); io_close(m_File); m_File = 0; mem_free(m_pKeyFrames); diff --git a/src/engine/shared/demorec.h b/src/engine/shared/demorec.h index 294a088b..cdf46e99 100644 --- a/src/engine/shared/demorec.h +++ b/src/engine/shared/demorec.h @@ -15,6 +15,7 @@ struct CDemoHeader class CDemoRecorder : public IDemoRecorder { + class IConsole *m_pConsole; IOHANDLE m_File; int m_LastTickMarker; int m_LastKeyFrame; @@ -26,7 +27,7 @@ class CDemoRecorder : public IDemoRecorder public: CDemoRecorder(class CSnapshotDelta *pSnapshotDelta); - int Start(class IStorage *pStorage, const char *pFilename, const char *pNetversion, const char *pMap, int MapCrc, const char *pType); + int Start(class IStorage *pStorage, class IConsole *pConsole, const char *pFilename, const char *pNetversion, const char *pMap, int MapCrc, const char *pType); int Stop(); void RecordSnapshot(int Tick, const void *pData, int Size); @@ -80,6 +81,7 @@ private: CKeyFrameSearch *m_pNext; }; + class IConsole *m_pConsole; IOHANDLE m_File; CKeyFrame *m_pKeyFrames; @@ -99,7 +101,7 @@ public: void SetListner(IListner *pListner); - int Load(class IStorage *pStorage, const char *pFilename); + int Load(class IStorage *pStorage, class IConsole *pConsole, const char *pFilename); int Play(); void Pause(); void Unpause(); diff --git a/src/engine/shared/network.h b/src/engine/shared/network.h index 7de534a4..a2232320 100644 --- a/src/engine/shared/network.h +++ b/src/engine/shared/network.h @@ -79,7 +79,7 @@ enum }; -typedef int (*NETFUNC_DELCLIENT)(int ClientID, void *pUser); +typedef int (*NETFUNC_DELCLIENT)(int ClientID, const char* pReason, void *pUser); typedef int (*NETFUNC_NEWCLIENT)(int ClientID, void *pUser); struct CNetChunk diff --git a/src/engine/shared/network_client.cpp b/src/engine/shared/network_client.cpp index f7859c0a..57ed08a8 100644 --- a/src/engine/shared/network_client.cpp +++ b/src/engine/shared/network_client.cpp @@ -21,7 +21,7 @@ int CNetClient::Close() int CNetClient::Disconnect(const char *pReason) { - dbg_msg("netclient", "disconnected. reason=\"%s\"", pReason); + //dbg_msg("netclient", "disconnected. reason=\"%s\"", pReason); m_Connection.Disconnect(pReason); return 0; } diff --git a/src/engine/shared/network_server.cpp b/src/engine/shared/network_server.cpp index 2d30a7d1..ed714365 100644 --- a/src/engine/shared/network_server.cpp +++ b/src/engine/shared/network_server.cpp @@ -79,16 +79,15 @@ int CNetServer::Drop(int ClientID, const char *pReason) // TODO: insert lots of checks here NETADDR Addr = ClientAddr(ClientID); - dbg_msg("net_server", "client dropped. cid=%d ip=%d.%d.%d.%d reason=\"%s\"", + /*dbg_msg("net_server", "client dropped. cid=%d ip=%d.%d.%d.%d reason=\"%s\"", ClientID, Addr.ip[0], Addr.ip[1], Addr.ip[2], Addr.ip[3], pReason - ); + );*/ + if(m_pfnDelClient) + m_pfnDelClient(ClientID, pReason, m_UserPtr); m_aSlots[ClientID].m_Connection.Disconnect(pReason); - - if(m_pfnDelClient) - m_pfnDelClient(ClientID, m_UserPtr); return 0; } |