00001 /* $Id: ai_log.hpp 15481 2009-02-14 20:03:06Z yexo $ */ 00002 00005 #ifndef AI_LOG_HPP 00006 #define AI_LOG_HPP 00007 00008 #include "ai_object.hpp" 00009 00013 class AILog : public AIObject { 00014 /* AIController needs access to Enum and Log, in order to keep the flow from 00015 * OpenTTD core to NoAI API clear and simple. */ 00016 friend class AIController; 00017 00018 public: 00019 static const char *GetClassName() { return "AILog"; } 00020 00021 #ifndef EXPORT_SKIP 00022 00026 enum AILogType { 00027 LOG_SQ_ERROR = 0, 00028 LOG_ERROR = 1, 00029 LOG_SQ_INFO = 2, 00030 LOG_WARNING = 3, 00031 LOG_INFO = 4, 00032 }; 00033 00038 struct LogData { 00039 char **lines; 00040 AILog::AILogType *type; 00041 int count; 00042 int pos; 00043 int used; 00044 }; 00045 #endif /* EXPORT_SKIP */ 00046 00051 static void Info(const char *message); 00052 00057 static void Warning(const char *message); 00058 00063 static void Error(const char *message); 00064 00065 #ifndef EXPORT_SKIP 00066 00070 static void FreeLogPointer(); 00071 #endif /* EXPORT_SKIP */ 00072 00073 private: 00077 static void Log(AILog::AILogType level, const char *message); 00078 }; 00079 00080 #endif /* AI_LOG_HPP */