From 8fb9f600c89c185fe7d729f734872954f599e52f Mon Sep 17 00:00:00 2001 From: smatz Date: Fri, 18 Jul 2008 12:11:46 +0000 Subject: (svn r13727) -Fix (r13375): compilation with NO_DEBUG_MESSAGES was broken --- src/gamelog.cpp | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) (limited to 'src/gamelog.cpp') diff --git a/src/gamelog.cpp b/src/gamelog.cpp index 11b651851..f612f8951 100644 --- a/src/gamelog.cpp +++ b/src/gamelog.cpp @@ -114,10 +114,12 @@ void GamelogStopAction() { assert(_gamelog_action_type != GLAT_NONE); // nobody should try to stop if there is no action in progress + bool print = _current_action != NULL; + _current_action = NULL; _gamelog_action_type = GLAT_NONE; - if (_debug_gamelog_level > 4) GamelogPrintDebug(); + if (print) GamelogPrintDebug(5); } /** Resets and frees all memory allocated - used before loading or starting a new game @@ -318,14 +320,22 @@ void GamelogPrintConsole() GamelogPrint(&GamelogPrintConsoleProc); } +static int _gamelog_print_level = 0; ///< gamelog debug level we need to print stuff static void GamelogPrintDebugProc(const char *s) { - debug_print("gamelog", s); + DEBUG(gamelog, _gamelog_print_level, s); } -void GamelogPrintDebug() + +/** Prints gamelog to debug output. Code is executed even when + * there will be no output. It is called very seldom, so it + * doesn't matter that much. At least it gives more uniform code... + * @param level debug level we need to print stuff + */ +void GamelogPrintDebug(int level) { + _gamelog_print_level = level; GamelogPrint(&GamelogPrintDebugProc); } -- cgit v1.2.3-54-g00ecf