# ai_controller.hpp

Go to the documentation of this file.

    00001 /* $Id: ai_controller.hpp 16272 2009-05-10 21:26:46Z rubidium $ */
    00002
    00005 #ifndef AI_CONTROLLER_HPP
    00006 #define AI_CONTROLLER_HPP
    00007
    00008 #include "../../core/string_compare_type.hpp"
    00009 #include <map>
    00010
    00015 class AIController {
    00016   friend class AIScanner;
    00017   friend class AIInstance;
    00018
    00019 public:
    00020   static const char *GetClassName() { return "AIController"; }
    00021
    00025   AIController();
    00026
    00030   ~AIController();
    00031
    00038   void Start();
    00039
    00044   static uint GetTick();
    00045
    00051   static int GetSetting(const char *name);
    00052
    00063   static uint GetVersion();
    00064
    00075   static void SetCommandDelay(int ticks);
    00076
    00086   static void Sleep(int ticks);
    00087
    00095   static void Print(bool error_msg, const char *message);
    00096
    00097 private:
    00098   typedef std::map<const char *, const char *, StringCompare> LoadedLibraryList;
    00099
    00100   uint ticks;
    00101   LoadedLibraryList loaded_library;
    00102   int loaded_library_count;
    00103
    00107   void RegisterClasses();
    00108
    00119   bool LoadedLibrary(const char *library_name, int *next_number, char *fake_class_name, int fake_class_name_len);
    00120
    00124   void AddLoadedLibrary(const char *library_name, const char *fake_class_name);
    00125 };
    00126
    00127 #endif /* AI_CONTROLLER_HPP */