Exemplo n.º 1
0
BOOL CPropTask::Execute()
{
    AFX_MANAGE_STATE(AfxGetStaticModuleState( ));

    Init();
    GenTask(m_TaskText);
    InsertTask();
    WriteFile(m_ResourceText);
    InformProjectManager();

    return TRUE;
}
Exemplo n.º 2
0
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();
}
Exemplo n.º 3
0
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;
}