src/debug.h
changeset 8409 de295d5e2bb4
parent 8247 16e1c8db6f55
child 8915 ea2b40b02844
equal deleted inserted replaced
8408:cab5989c2ce2 8409:de295d5e2bb4
    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