// // ThoughtManager.h // // Class responsible for updating threads in the AI and scheduling their programs to run // // // Threads used in the real game // struct RealGameThreads { SearchThread Search; WorkerThread Worker; ProductionThread Production; ControlGroupCheckThread ControlGroupCheck; ArmyCheckThread ArmyCheck; OverlordThread Overlord; QueenThread Queen; GasWorkerThread GasWorker; ArmyThread Army; ChronoBoostThread ChronoBoost; MicroThread Micro; }; // // Class that stores all threads used by the current game and handles their execution. // class ThoughtManager : public Manager { public: ThoughtManager() {} void ResetAll(); void StartFrame(); void EndFrame(); void ExecuteStep(); private: void FindWork(); Vector _AllThreads; // All threads in the AI Program *_ActiveProgram; // Currently executing program AIThread *_ActiveThread; // Currently executing thread RealGameThreads _RealGameThreads; // Threads for multiplayer Starcraft II };