// // ProgramProduceUnitBase.h // // Program to produce bases // enum ProgProduceUnitBaseState { ProgProduceUnitBaseSelectWorkers, ProgProduceUnitBaseMoveToBuildingSite, ProgProduceUnitBaseSelectBuildStructure, ProgProduceUnitBaseSelectBuilding, ProgProduceUnitBaseFindBuildingPlacement, ProgProduceUnitBaseWaitForSuccess, }; struct BaseInfo; class ProgramProduceUnitBase : public Program { public: void Init(BaseInfo *Base); ProgramResultType ExecuteStep(); private: UINT _AttemptsMade; double _TimeoutTime0; double _TimeoutTime1; BaseInfo *_Base; ProgProduceUnitBaseState _CurState; };