/**
 * \file Debug.h
 * \date 23.11.2002
 * \author Matus Horvath
 *
 * Useful debugging functions header
 */

#ifndef SUPPORT_DEBUG_H
#define SUPPORT_DEBUG_H

#ifdef DEBUG

void DBG_INIT();
void DBG_DONE();
void DBG_SET_ID(const char* id);

void DBG(const char* format, ...);
void DBGN(const char* format, ...);

void TRACE();

#else

// Visual C++ 6.0 does not support macros with variable arg. count
inline void DBG_INIT() {}
inline void DBG_DONE() {}
inline void DBG_SET_ID(const char*) {}

inline void DBG(const char*, ...) {}
inline void DBGN(const char*, ...) {}

#endif

void ERR(const char*, ...);
void ERRN(const char*, ...);

void WARN(const char*, ...);
void WARNN(const char*, ...);

void TXT(const char*, ...);
void TXTN(const char*, ...);

// Use this to partly disable debugging
inline void DO_NOTHING(const char*, ...) {}

#endif // SUPPORT_DEBUG_H
