diff options
author | rubidium <rubidium@openttd.org> | 2012-01-26 17:24:56 +0000 |
---|---|---|
committer | rubidium <rubidium@openttd.org> | 2012-01-26 17:24:56 +0000 |
commit | a48e3cb891af580dc03e3fe1ae8d4978fad575fe (patch) | |
tree | c81648ce0840f55aacdfd3e1e61a66b09d4b6cb4 | |
parent | d99eb6aac2c8f772632291d71e5334f13f4d534f (diff) | |
download | openttd-a48e3cb891af580dc03e3fe1ae8d4978fad575fe.tar.xz |
(svn r23854) -Codechange: make it easier to put random debug stuff into the random log
-rw-r--r-- | src/core/random_func.cpp | 6 | ||||
-rw-r--r-- | src/core/random_func.hpp | 13 | ||||
-rw-r--r-- | src/debug.cpp | 28 | ||||
-rw-r--r-- | src/debug.h | 3 |
4 files changed, 25 insertions, 25 deletions
diff --git a/src/core/random_func.cpp b/src/core/random_func.cpp index 5adc17066..7800591e6 100644 --- a/src/core/random_func.cpp +++ b/src/core/random_func.cpp @@ -69,11 +69,7 @@ void SetRandomSeed(uint32 seed) uint32 DoRandom(int line, const char *file) { if (_networking && (!_network_server || (NetworkClientSocket::IsValidID(0) && NetworkClientSocket::Get(0)->status != NetworkClientSocket::STATUS_INACTIVE))) { - static FILE *f = FioFOpenFile("random-out.log", "wb", AUTOSAVE_DIR); - if (f != NULL) { - fprintf(f, "%08x; %02x; %04x; %02x; %s:%d\n", _date, _date_fract, _frame_counter, (byte)_current_company, file, line); - fflush(f); - } + DEBUG(random, 0, "%08x; %02x; %04x; %02x; %s:%d", _date, _date_fract, _frame_counter, (byte)_current_company, file, line); } return _random.Next(); diff --git a/src/core/random_func.hpp b/src/core/random_func.hpp index 8c3bed166..ea0716b9a 100644 --- a/src/core/random_func.hpp +++ b/src/core/random_func.hpp @@ -17,19 +17,6 @@ #define Random OTTD_Random #endif /* __APPLE__ */ -/************** - * Warning: DO NOT enable this unless you understand what it does - * - * If enabled, in a network game all randoms will be dumped to the - * stdout if the first client joins (or if you are a client). This - * is to help finding desync problems. - * - * Warning: DO NOT enable this unless you understand what it does - **************/ - -//#define RANDOM_DEBUG - - /** * Structure to encapsulate the pseudo random number generators. */ diff --git a/src/debug.cpp b/src/debug.cpp index f7d31b89a..fe5b0d3fd 100644 --- a/src/debug.cpp +++ b/src/debug.cpp @@ -39,6 +39,9 @@ int _debug_sl_level; int _debug_gamelog_level; int _debug_desync_level; int _debug_console_level; +#ifdef RANDOM_DEBUG +int _debug_random_level; +#endif uint32 _realtime_tick = 0; @@ -64,6 +67,9 @@ struct DebugLevel { DEBUG_LEVEL(gamelog), DEBUG_LEVEL(desync), DEBUG_LEVEL(console), +#ifdef RANDOM_DEBUG + DEBUG_LEVEL(random), +#endif }; #undef DEBUG_LEVEL @@ -85,7 +91,21 @@ static void debug_print(const char *dbg, const char *buf) return; } #endif /* ENABLE_NETWORK */ - if (strcmp(dbg, "desync") != 0) { + if (strcmp(dbg, "desync") == 0) { + static FILE *f = FioFOpenFile("commands-out.log", "wb", AUTOSAVE_DIR); + if (f == NULL) return; + + fprintf(f, "%s%s\n", GetLogPrefix(), buf); + fflush(f); +#ifdef RANDOM_DEBUG + } else if (strcmp(dbg, "random") == 0) { + static FILE *f = FioFOpenFile("random-out.log", "wb", AUTOSAVE_DIR); + if (f == NULL) return; + + fprintf(f, "%s\n", buf); + fflush(f); +#endif + } else { #if defined(WINCE) /* We need to do OTTD2FS twice, but as it uses a static buffer, we need to store one temporary */ TCHAR tbuf[512]; @@ -98,12 +118,6 @@ static void debug_print(const char *dbg, const char *buf) NetworkAdminConsole(dbg, buf); #endif /* ENABLE_NETWORK */ IConsoleDebug(dbg, buf); - } else { - static FILE *f = FioFOpenFile("commands-out.log", "wb", AUTOSAVE_DIR); - if (f == NULL) return; - - fprintf(f, "%s%s\n", GetLogPrefix(), buf); - fflush(f); } } diff --git a/src/debug.h b/src/debug.h index 07d4eb333..263ba0356 100644 --- a/src/debug.h +++ b/src/debug.h @@ -51,6 +51,9 @@ extern int _debug_gamelog_level; extern int _debug_desync_level; extern int _debug_console_level; +#ifdef RANDOM_DEBUG + extern int _debug_random_level; +#endif void CDECL debug(const char *dbg, const char *format, ...) WARN_FORMAT(2, 3); #endif /* NO_DEBUG_MESSAGES */ |