BOOL CPropTask::Execute() { AFX_MANAGE_STATE(AfxGetStaticModuleState( )); Init(); GenTask(m_TaskText); InsertTask(); WriteFile(m_ResourceText); InformProjectManager(); return TRUE; }
ThreadPool::~ThreadPool() { for (int tid = 0; tid < mThreadCount; tid++) { ITask* pExitTask = new ITask(TP_Exit); InsertTask(pExitTask); } WaitUntilAllDone(); for (std::vector<Thread*>::iterator itr = mThreadList.begin(); itr != mThreadList.end(); itr++) { if ((*itr) != NULL) { delete (*itr); (*itr) = NULL; } } mThreadList.clear(); }
DWORD Model::Human::OnAction(Terrain::Hex* Hex, DWORD Flag) { if(!ds::Input::KeyDown(Skeleton::Key(Skeleton::KeyBindCommands))) ClearTasks(); switch(Flag) { //-------------------------------------- case Action::ActionMoveAt: if(!Hex || Hex->GetType() != Terrain::Hex::HexEmpty) return Result::ResultWrongParams; InsertTask(new Task::HumanMove(Hex)); return Result::ResultOk; //-------------------------------------- case Action::ActionRepair: if(!Hex->GetUnit()) return Result::ResultWrongParams; if(m_Major != MajorEngineer) return Result::ResultUnknown; InsertTask(new Task::HumanMove(Hex)); InsertTask(new Task::HumanRepairUnit(Hex->GetUnit())); return Result::ResultOk; //-------------------------------------- case Action::ActionBuild: if(!Hex->GetUnit()) return Result::ResultWrongParams; InsertTask(new Task::HumanMove(Hex)); InsertTask(new Task::HumanRepairUnit(Hex->GetUnit())); return Result::ResultOk; //-------------------------------------- case Action::ActionGetSupply: InsertTask(new Task::HumanMove(Hex)); return Result::ResultOk; } return Result::ResultUnknown; }