コード例 #1
0
ファイル: p_player.cpp プロジェクト: JoshEngebretson/Mongrel
void VBasePlayer::AdvanceViewStates(float deltaTime)
{
    for (int i = 0; i < NUMPSPRITES; i++)
    {
        VViewState& St = ViewStates[i];
        // a null state means not active
        if (St.State)
        {
            // drop tic count and possibly change state
            // a -1 tic count never changes
            if (St.StateTime != -1.0)
            {
                St.StateTime -= deltaTime;
                if (eventCheckDoubleFiringSpeed())
                {
                    // [BC] Apply double firing speed.
                    St.StateTime -= deltaTime;
                }

                if (St.StateTime <= 0.0)
                {
                    St.StateTime = 0.0;
                    SetViewState(i, St.State->NextState);
                }
            }
        }
    }
}
コード例 #2
0
ファイル: gamemap.cpp プロジェクト: wendingzhang/Super-Mary
void GAMEMAP::KeyUpProc(int iKey)
{
    switch(iKey)
    {
    case VK_RIGHT:
        rmain.movex=0;
        break;

    case VK_LEFT:
        rmain.movex=0;
        break;

    case KEY_X: //跳
        break;

    case KEY_Z: //FIRE
        iBeginFire=0;
        break;
    }
    SetViewState(STATE_VIEW_STOP);
}
コード例 #3
0
ファイル: LeftView.cpp プロジェクト: TortoiseGit/tortoisesvn
void CLeftView::UseBothLeftFirst()
{
    if (!IsRightViewGood())
        return;
    int nFirstViewLine = 0; // first view line in selection
    int nLastViewLine  = 0; // last view line in selection

    if (!IsWritable())
        return;
    if (!GetViewSelection(nFirstViewLine, nLastViewLine))
        return;

    int nNextViewLine = nLastViewLine + 1; // first view line after selected block

    CUndo::GetInstance().BeginGrouping();

    // right original become added
    for (int viewLine = nFirstViewLine; viewLine <= nLastViewLine; viewLine++)
    {
        if (!IsStateEmpty(GetViewState(viewLine)))
        {
            SetViewState(viewLine, DIFFSTATE_REMOVED);
        }
    }
    SaveUndoStep();

    // your block is done, now insert their block
    int viewindex = nNextViewLine;
    for (int viewLine = nFirstViewLine; viewLine <= nLastViewLine; viewLine++)
    {
        viewdata line = m_pwndRight->GetViewData(viewLine);
        if (IsStateEmpty(line.state))
        {
            line.state = DIFFSTATE_EMPTY;
        }
        else
        {
            if (line.state!=DIFFSTATE_NORMAL) {
                m_pwndRight->SetViewState(viewLine, DIFFSTATE_NORMAL);
                line.state = DIFFSTATE_NORMAL;
            }
            SetModified();
        }
        InsertViewData(viewindex++, line);
    }
    SaveUndoStep();

    // now insert an empty block in right view
    int nCount = nLastViewLine - nFirstViewLine + 1;
    m_pwndRight->InsertViewEmptyLines(nFirstViewLine, nCount);
    m_pwndRight->Invalidate();
    SaveUndoStep();

    // clean up
    int nRemovedLines = CleanEmptyLines();
    SaveUndoStep();
    UpdateViewLineNumbers();
    SaveUndoStep();

    CUndo::GetInstance().EndGrouping();

    // final clean up
    ClearSelection();
    SetupAllViewSelection(nFirstViewLine, 2*nLastViewLine - nFirstViewLine - nRemovedLines + 1);
    BuildAllScreen2ViewVector();
    RefreshViews();
}