mirror of https://github.com/OpenTTD/OpenTTD
(svn r23854) -Codechange: make it easier to put random debug stuff into the random log
parent
d99eb6aac2
commit
a48e3cb891
|
@ -69,11 +69,7 @@ void SetRandomSeed(uint32 seed)
|
||||||
uint32 DoRandom(int line, const char *file)
|
uint32 DoRandom(int line, const char *file)
|
||||||
{
|
{
|
||||||
if (_networking && (!_network_server || (NetworkClientSocket::IsValidID(0) && NetworkClientSocket::Get(0)->status != NetworkClientSocket::STATUS_INACTIVE))) {
|
if (_networking && (!_network_server || (NetworkClientSocket::IsValidID(0) && NetworkClientSocket::Get(0)->status != NetworkClientSocket::STATUS_INACTIVE))) {
|
||||||
static FILE *f = FioFOpenFile("random-out.log", "wb", AUTOSAVE_DIR);
|
DEBUG(random, 0, "%08x; %02x; %04x; %02x; %s:%d", _date, _date_fract, _frame_counter, (byte)_current_company, file, line);
|
||||||
if (f != NULL) {
|
|
||||||
fprintf(f, "%08x; %02x; %04x; %02x; %s:%d\n", _date, _date_fract, _frame_counter, (byte)_current_company, file, line);
|
|
||||||
fflush(f);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return _random.Next();
|
return _random.Next();
|
||||||
|
|
|
@ -17,19 +17,6 @@
|
||||||
#define Random OTTD_Random
|
#define Random OTTD_Random
|
||||||
#endif /* __APPLE__ */
|
#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.
|
* Structure to encapsulate the pseudo random number generators.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -39,6 +39,9 @@ int _debug_sl_level;
|
||||||
int _debug_gamelog_level;
|
int _debug_gamelog_level;
|
||||||
int _debug_desync_level;
|
int _debug_desync_level;
|
||||||
int _debug_console_level;
|
int _debug_console_level;
|
||||||
|
#ifdef RANDOM_DEBUG
|
||||||
|
int _debug_random_level;
|
||||||
|
#endif
|
||||||
|
|
||||||
uint32 _realtime_tick = 0;
|
uint32 _realtime_tick = 0;
|
||||||
|
|
||||||
|
@ -64,6 +67,9 @@ struct DebugLevel {
|
||||||
DEBUG_LEVEL(gamelog),
|
DEBUG_LEVEL(gamelog),
|
||||||
DEBUG_LEVEL(desync),
|
DEBUG_LEVEL(desync),
|
||||||
DEBUG_LEVEL(console),
|
DEBUG_LEVEL(console),
|
||||||
|
#ifdef RANDOM_DEBUG
|
||||||
|
DEBUG_LEVEL(random),
|
||||||
|
#endif
|
||||||
};
|
};
|
||||||
#undef DEBUG_LEVEL
|
#undef DEBUG_LEVEL
|
||||||
|
|
||||||
|
@ -85,7 +91,21 @@ static void debug_print(const char *dbg, const char *buf)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
#endif /* ENABLE_NETWORK */
|
#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)
|
#if defined(WINCE)
|
||||||
/* We need to do OTTD2FS twice, but as it uses a static buffer, we need to store one temporary */
|
/* We need to do OTTD2FS twice, but as it uses a static buffer, we need to store one temporary */
|
||||||
TCHAR tbuf[512];
|
TCHAR tbuf[512];
|
||||||
|
@ -98,12 +118,6 @@ static void debug_print(const char *dbg, const char *buf)
|
||||||
NetworkAdminConsole(dbg, buf);
|
NetworkAdminConsole(dbg, buf);
|
||||||
#endif /* ENABLE_NETWORK */
|
#endif /* ENABLE_NETWORK */
|
||||||
IConsoleDebug(dbg, buf);
|
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);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -51,6 +51,9 @@
|
||||||
extern int _debug_gamelog_level;
|
extern int _debug_gamelog_level;
|
||||||
extern int _debug_desync_level;
|
extern int _debug_desync_level;
|
||||||
extern int _debug_console_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);
|
void CDECL debug(const char *dbg, const char *format, ...) WARN_FORMAT(2, 3);
|
||||||
#endif /* NO_DEBUG_MESSAGES */
|
#endif /* NO_DEBUG_MESSAGES */
|
||||||
|
|
Loading…
Reference in New Issue