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); } } }
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(); } }
void CNetToDisneyDlg::OnBnClickedBegin() { srand((unsigned int)time(0)); BeginTimer(); this->GetDlgItem(IDB_BEGIN)->EnableWindow(FALSE); }
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(); }
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); } } }
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; }
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(); }
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); }
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(); } }
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(); } }