17 * 4 - debugging messages (crude loop status, etc.) |
17 * 4 - debugging messages (crude loop status, etc.) |
18 * 5 - detailed debugging information |
18 * 5 - detailed debugging information |
19 * 6.. - extremely detailed spamming |
19 * 6.. - extremely detailed spamming |
20 */ |
20 */ |
21 |
21 |
22 /* Of course MSVC 2003 and lower has no support for variadic macros |
|
23 * so we need to work around this... *sigh* */ |
|
24 #if defined(_MSC_VER) && (_MSC_VER < 1400) |
|
25 #define NO_VARARG_MACRO |
|
26 #endif |
|
27 |
|
28 #if defined(NO_VARARG_MACRO) |
|
29 enum DebugLevelType { |
|
30 ai, |
|
31 driver, |
|
32 grf, |
|
33 map, |
|
34 misc, |
|
35 ms, |
|
36 net, |
|
37 sprite, |
|
38 oldloader, |
|
39 ntp, |
|
40 npf, |
|
41 yapf, |
|
42 freetype, |
|
43 sl, |
|
44 station, |
|
45 }; |
|
46 #endif /* NO_VARARG_MACRO */ |
|
47 |
|
48 #ifdef NO_DEBUG_MESSAGES |
22 #ifdef NO_DEBUG_MESSAGES |
49 #if defined(NO_VARARG_MACRO) |
23 #if defined(__GNUC__) && (__GNUC__ < 3) |
50 static inline void DEBUG(int name, int level, ...) {} |
|
51 #elif defined(__GNUC__) && (__GNUC__ < 3) |
|
52 #define DEBUG(name, level, args...) |
24 #define DEBUG(name, level, args...) |
53 #else |
25 #else |
54 #define DEBUG(name, level, ...) |
26 #define DEBUG(name, level, ...) |
55 #endif |
27 #endif |
56 #else /* NO_DEBUG_MESSAGES */ |
28 #else /* NO_DEBUG_MESSAGES */ |
57 #if defined(NO_VARARG_MACRO) |
29 #if defined(__GNUC__) && (__GNUC__ < 3) |
58 void CDECL DEBUG(int name, int level, ...); |
|
59 #elif defined(__GNUC__) && (__GNUC__ < 3) |
|
60 #define DEBUG(name, level, args...) if ((level == 0) || ( _debug_ ## name ## _level >= level)) debug(#name, args) |
30 #define DEBUG(name, level, args...) if ((level == 0) || ( _debug_ ## name ## _level >= level)) debug(#name, args) |
61 #else |
31 #else |
62 #define DEBUG(name, level, ...) if (level == 0 || _debug_ ## name ## _level >= level) debug(#name, __VA_ARGS__) |
32 #define DEBUG(name, level, ...) if (level == 0 || _debug_ ## name ## _level >= level) debug(#name, __VA_ARGS__) |
63 #endif |
33 #endif |
64 |
34 |
76 extern int _debug_yapf_level; |
46 extern int _debug_yapf_level; |
77 extern int _debug_freetype_level; |
47 extern int _debug_freetype_level; |
78 extern int _debug_sl_level; |
48 extern int _debug_sl_level; |
79 extern int _debug_station_level; |
49 extern int _debug_station_level; |
80 |
50 |
81 #if !defined(NO_VARARG_MACRO) |
51 void CDECL debug(const char *dbg, ...); |
82 void CDECL debug(const char *dbg, ...); |
|
83 #endif /* NO_VARARG_MACRO */ |
|
84 #endif /* NO_DEBUG_MESSAGES */ |
52 #endif /* NO_DEBUG_MESSAGES */ |
85 |
53 |
86 void SetDebugString(const char *s); |
54 void SetDebugString(const char *s); |
87 const char *GetDebugString(); |
55 const char *GetDebugString(); |
88 |
56 |