Exemplo n.º 1
0
void CPWL_Caret::SetCaret(FX_BOOL bVisible,
                          const CFX_FloatPoint& ptHead,
                          const CFX_FloatPoint& ptFoot) {
  if (bVisible) {
    if (IsVisible()) {
      if (m_ptHead != ptHead || m_ptFoot != ptFoot) {
        m_ptHead = ptHead;
        m_ptFoot = ptFoot;
        m_bFlash = TRUE;
        Move(m_rcInvalid, FALSE, TRUE);
      }
    } else {
      m_ptHead = ptHead;
      m_ptFoot = ptFoot;
      EndTimer();
      BeginTimer(PWL_CARET_FLASHINTERVAL);
      CPWL_Wnd::SetVisible(TRUE);
      m_bFlash = TRUE;
      Move(m_rcInvalid, FALSE, TRUE);
    }
  } else {
    m_ptHead = CFX_FloatPoint();
    m_ptFoot = CFX_FloatPoint();
    m_bFlash = FALSE;
    if (IsVisible()) {
      EndTimer();
      CPWL_Wnd::SetVisible(FALSE);
    }
  }
}
Exemplo n.º 2
0
int AngelFight::RoundBegin()
{
    //DEBUG_LOG( "AngelFight RoundBegin()" );

    for( uint32_t i = 0; i < PLAYER_COUNT; ++i )
    {
        m_pPlayers[i]->SetValidCmd( AFC_ACTION | AFC_QUIT );
        m_pPlayers[i]->ClearActionState();
    }

    if( 1 == m_nPlayerCount && !m_bQuickGame )
    {
        m_pPlayers[0]->SetValidCmd( AFC_ACTION | AFC_QUIT | AFC_QUICK_GAME );
    }

    if( !m_bQuickGame )
    {
        BeginTimer( TE_OPERATION, TIMER_ROUND );
        return NotifyRoundBegin();
    }
    else
    {
        return ActionAndNotify();
    }
}
Exemplo n.º 3
0
void CNetToDisneyDlg::OnBnClickedBegin()
{
	srand((unsigned int)time(0));

	BeginTimer();
	this->GetDlgItem(IDB_BEGIN)->EnableWindow(FALSE);
}
Exemplo n.º 4
0
		void MusicRenderer::RenderToSpeaker()
		{
			SoundEvent currentSoundEvent;

			unsigned int duration = m_header.Duration[m_difficulty] * 1000 + 1000;
			std::vector<SoundEvent>::size_type eventCtr = 0, totalEvents = m_soundEvents->size();
			unsigned int elapsed = 0;
			int percentage = 0;

			printf("0%%");

			BeginTimer();
			while(elapsed < duration)
			{
				if(eventCtr < totalEvents)
				{
					currentSoundEvent = m_soundEvents->at(eventCtr);

					if(currentSoundEvent.Time <= elapsed)
					{
						if(currentSoundEvent.NoteType != 3)
						{
							int sampleIndex = -1;
							if(currentSoundEvent.NoteType == 4)
								sampleIndex = GetSample(currentSoundEvent.RefID + 1000);
							else
								sampleIndex = GetSample(currentSoundEvent.RefID);

							if(sampleIndex >= 0)
							{
								Sample sample = m_samples->at(sampleIndex);
								FMOD_RESULT result = m_fmod->playSound(FMOD_CHANNEL_FREE, sample.Data, false, 0);
							}
						}

						eventCtr++;
					}
				}

				m_fmod->update();
				UpdateTimer();
				elapsed = GetElapsedTime();

				if(percentage < 10)
					printf("\b\b");
				else if(percentage < 100)
					printf("\b\b\b");
				else printf("\b\b\b\b");

				percentage = (int)((float)elapsed / (float)duration * 100.f);
				printf("%d%%", percentage);
			}

			StopTimer();
		}
Exemplo n.º 5
0
void CPWL_Caret::SetCaret(FX_BOOL bVisible, const CPDF_Point & ptHead, const CPDF_Point & ptFoot)
{
	if (bVisible)
	{
		if (IsVisible())
		{
			if (m_ptHead.x != ptHead.x || m_ptHead.y != ptHead.y ||
					m_ptFoot.x != ptFoot.x || m_ptFoot.y != ptFoot.y)
			{
				m_ptHead = ptHead;
				m_ptFoot = ptFoot;

				m_bFlash = TRUE;
				//Move(GetCaretRect(),FALSE,TRUE);
				Move(m_rcInvalid, FALSE, TRUE);
			}
		}
		else
		{
			m_ptHead = ptHead;
			m_ptFoot = ptFoot;

			EndTimer();
			BeginTimer(PWL_CARET_FLASHINTERVAL);

			CPWL_Wnd::SetVisible(TRUE);
			m_bFlash = TRUE;

			//Move(GetCaretRect(),FALSE,TRUE);
			Move(m_rcInvalid, FALSE, TRUE);
		}
	}
	else
	{
		m_ptHead = CPDF_Point(0, 0);
		m_ptFoot = CPDF_Point(0, 0);

		m_bFlash = FALSE;
		if (IsVisible())
		{
			EndTimer();
			CPWL_Wnd::SetVisible(FALSE);
		}
	}
}
Exemplo n.º 6
0
int AngelFight::NotifyGameInfo()
{
    DEBUG_LOG( "AngelFight NotifyGameInfo()" );

    BeginTimer( TE_LOAD_DATA, TIMER_LOAD_DATA );

    m_nGameState = GS_WAIT_CLIENT;

    int len = sizeof(protocol_t);
    ant::pack( pkg, PLAYER_COUNT, len );
    for( uint32_t i = 0; i < PLAYER_COUNT; ++i )
    {
        m_pPlayers[i]->SetValidCmd( AFC_QUIT | AFC_DATA_OK );

        int count = m_pTeam[i]->GetTeamSize();
        ant::pack( pkg, m_pTeam[i]->GetTeamID(), len );
        ant::pack( pkg, count, len );
        Player* p = m_pTeam[i];
        while( p )
        {
            ant::pack( pkg, p->GetUserID(), len );
            ant::pack( pkg, p->GetMaxHP(), len );
            ant::pack( pkg, p->GetHP(), len );
            ant::pack( pkg, p->GetMaxMP(), len );
            ant::pack( pkg, p->GetMP(), len );
            ant::pack( pkg, p->GetLevel(), len );
            ant::pack( pkg, p->GetEquipID(), len );
            ant::pack( pkg, p->GetName(), MAX_NAME_LEN * sizeof(char), len );
            ant::pack( pkg, p->GetColor(), len );
            VecSkillID_t& skillInfo = p->GetSkillInfo();
            ant::pack( pkg, (int)skillInfo.size(), len );
            for( uint32_t j = 0; j < skillInfo.size(); ++j )
            {
                ant::pack( pkg, skillInfo[j].id, len );
            }
            p = p->GetPartner();
        }

    }
    init_proto_head( pkg, AFP_NOTIFY_GAME_INFO, len );
    send_to_players( m_pGrp, pkg, len );
    return 0;
}
Exemplo n.º 7
0
int AngelFight::CheckGameOver()
{
    for( int i = 0; i < PLAYER_COUNT; ++i )
    {
        if( m_pPlayers[i]->GetHP() <= 0 )
        {
            if( m_pPlayers[i]->GetValidPartner() )
            {
                m_pPlayers[i] = m_pPlayers[i]->GetValidPartner();
                m_pPlayers[i]->GetTar()->SetTar( m_pPlayers[i] );
                //notify change player
                int len = sizeof(protocol_t);
                ant::pack( pkg, m_pPlayers[i]->GetTeamID(), len );
                ant::pack( pkg, m_pPlayers[i]->GetUserID(), len );
                init_proto_head( pkg, AFP_NOTIFY_CHANGE_PLAYER, len );
                if( m_pGrp )
                {
                    if( !m_bQuickGame )
                    {
                        send_to_players( m_pGrp, pkg, len );
                        for( uint32_t j = 0; j < m_nPlayerCount; ++j )
                        {
                            m_pPlayers[j]->SetValidCmd( AFC_QUIT | AFC_ANI_OK );
                        }
                        BeginTimer( TE_CHANGE_PLAYER, TIMER_CHANGE_PLAYER );
                        return 0;
                    }
                    else
                    {
                        return RoundBegin();
                    }
                }
            }
            else
            {
                m_nWinnerTeam = i ^ 0x1;
                return NotifyGameOver();
            }
        }
    }

    return RoundBegin();
}
Exemplo n.º 8
0
void CNetToDisneyDlg::OnTimer(UINT_PTR nIDEvent)
{
	if (m_nTimerId == nIDEvent)
	{
		if (m_nCurrentPost < m_UrlList.GetSize())
		{
			CString strData = m_UrlList[m_nCurrentPost++];

			CString strUrl = L"";

			int nR = rand() % 8000;

			strUrl.Format(L"%s%d", strData, nR);
			this->SetDlgItemText(IDE_URL, strUrl);

			m_WebCtrl.Navigate(strUrl, NULL, NULL, NULL, NULL);

			strData.Format(L"%d", m_nCurrentPost);
			this->SetDlgItemText(IDE_TOULEDE, strData);
		}

		this->KillTimer(m_nTimerId);
		m_nTimerId = 0;

		if (m_nCurrentPost < m_UrlList.GetSize())
		{
			BeginTimer();
		}
		else
		{
			CString strData = L"";
			strData.Format(L"投票完毕,一共投了 %d 票,请明天再来!", m_nCurrentPost);
			this->SetDlgItemText(IDE_TOULEDE, strData);
			this->SetDlgItemText(IDE_INFO, strData);

			this->MessageBox(strData);
		}
	}

	CDialog::OnTimer(nIDEvent);
}
Exemplo n.º 9
0
void AngelFight::GameStart()
{
    DEBUG_LOG( "AngelFight GameStart()" );
    //单人游戏
    if( 1 == m_nPlayerCount )
    {
        BeginTimer( TE_SELECT_MONSTER, TIMER_MONSTER_SELECT );
        m_pPlayers[0]->SetValidCmd( AFC_QUIT | AFC_SELECT_MONSTER );
        m_nGameState = GS_WAIT_CLIENT;
        int len = sizeof(protocol_t);
        init_proto_head( pkg, AFP_DB_OK, len );
        send_to_player( m_pPlayers[0]->GetSprite(), pkg, len );
    }
    else
    {
        m_nLevelID = LEVEL_ID_PK;
        m_nLevelType = LT_PK;
        NotifyGameInfo();
    }

}
Exemplo n.º 10
0
int AngelFight::ActionAndNotify()
{
    //DEBUG_LOG("AngelFight::ActionAndNotify()");

    for( uint32_t i = 0; i < PLAYER_COUNT; ++i )
    {
        //somebody has not ready
        if( m_pPlayers[i]->GetActionState() == AS_WAIT )
        {
            if( m_bQuickGame )
            {
                m_pPlayers[i]->AutoAct();
            }
            else
            {
                return 0;
            }
        }
    }

    Player* pAct[PLAYER_COUNT];

    if(	m_pPlayers[0]->GetActSPD() > m_pPlayers[1]->GetActSPD() )
    {
        pAct[0] = m_pPlayers[0];
        pAct[1] = m_pPlayers[1];
    }
    else if( m_pPlayers[0]->GetActSPD() < m_pPlayers[1]->GetActSPD() )
    {
        pAct[0] = m_pPlayers[1];
        pAct[1] = m_pPlayers[0];
    }
    //equal
    else
    {
        int val = rand()%2;
        pAct[0] = m_pPlayers[val];
        pAct[1] = m_pPlayers[val^1];
    }

    int len = sizeof(protocol_t);
    //清空发送缓存
    pAct[0]->NoticeBuffClear();
    pAct[1]->NoticeBuffClear();

    //有一方势力全灭后,不再进行计算,避免出现双方同时阵亡

    //是否只通知操作而不做行动
    bool bDeclare = false;
    for( uint32_t i = 0; i < PLAYER_COUNT; ++i )
    {
        int ret = pAct[i]->Action( bDeclare );

        switch( ret )
        {
        //无阵亡
        case PS_NORMAL:
        {
            //执行buff效果
            if( PS_OVER == pAct[i]->ExecuteBuff() )
            {
                bDeclare = true;
            }
        }
        break;
        //自己阵亡
        case PS_OVER:
        {
            //自己阵亡后若没有后续队友则结束
            if( !pAct[i]->GetValidPartner() )
            {
                bDeclare = true;
            }
        }
        break;
        //对手全体阵亡
        case PS_WIN:
        {
        }
        break;
        default:
            break;
        }
    }

    for( int i = 0; i < PLAYER_COUNT; ++i )
    {
        pAct[i]->ConstraintHpMp();
        pAct[i]->GetNoticeInfo( pkg, len , 4096 );
    }

    init_proto_head( pkg, AFP_NOTIFY_ACTION, len );

    //UnPackDataForTest( pkg, len );

    if( m_pGrp && !m_bQuickGame )
    {
        send_to_players( m_pGrp, pkg, len );
        //DEBUG_LOG( "Send Action Info To  Players User ID1:[%u] ID2:[%u]", m_pPlayers[0]->GetUserID(), m_pPlayers[1]->GetUserID() );
    }

    // wait for client's animation
    if( !m_bQuickGame )
    {
        for( uint32_t i = 0; i < m_nPlayerCount; ++i )
        {
            m_pPlayers[i]->SetValidCmd( AFC_QUIT | AFC_ANI_OK );
        }
        BeginTimer( TE_WAIT_ANI, TIMER_ACTION_ANI );
        return 0;
    }
    else
    {
        return CheckGameOver();
    }
}