void MasterWidget::ChangeContext(UiDefines::UiStates::ConnectionState new_state) { ui_state_ = (new_state == UiDefines::UiStates::NoStateChange ? ui_state_ : new_state); current_size_ = CleanSelf(); switch (ui_state_) { case UiDefines::UiStates::Disconnected: { SAFE_DELETE(login_widget_); login_widget_ = new QWidget(); login_ui_->setupUi(login_widget_); layout()->addWidget(login_widget_); to_be_removed_ << "login_ui_"; config_helper_->SetPreviousData(login_ui_, login_helper_->GetPreviousCredentials()); login_ui_->passwordLineEdit->setFocus(Qt::MouseFocusReason); if (!login_helper_->GetErrorMessage().isEmpty()) login_ui_->statusLabel->setText(login_helper_->GetErrorMessage()); connect(login_ui_->connectPushButton, SIGNAL( clicked() ), login_helper_, SLOT( TryLogin() )); connect(login_ui_->presetsComboBox, SIGNAL( currentIndexChanged(int) ), this, SLOT( PresetSelected(int) )); connect(login_helper_, SIGNAL( StateChange(UiDefines::UiStates::ConnectionState) ), this, SLOT( ChangeContext(UiDefines::UiStates::ConnectionState) )); break; } case UiDefines::UiStates::Connecting: { SAFE_DELETE(loading_widget_); loading_widget_ = new QWidget(); loading_ui_->setupUi(loading_widget_); layout()->addWidget(loading_widget_); to_be_removed_ << "loading_ui_"; connect(loading_ui_->cancelPushButton, SIGNAL( clicked() ), login_helper_, SLOT( LoginCanceled() )); break; } case UiDefines::UiStates::Connected: { config_helper_->SaveLoginData(login_helper_->GetPreviousCredentials()); SAFE_DELETE(session_manager_widget_); session_manager_widget_ = new QWidget(); session_manager_ui_->setupUi(session_manager_widget_); layout()->addWidget(session_manager_widget_); to_be_removed_ << "session_manager_ui_"; connect(session_manager_, SIGNAL( StateChange(UiDefines::UiStates::ConnectionState) ), this, SLOT( ChangeContext(UiDefines::UiStates::ConnectionState) )); session_manager_->Start(login_helper_->GetPreviousCredentials()["username"], login_helper_->GetConnectionInterface(), event_handler_); break; } case UiDefines::UiStates::Exit: { hide(); return; } } resize(current_size_); }
// // called by IrComm to let us know of major connection state changes // void IrDAComm::ConnectionStatus(Boolean connected) { static Boolean last_connected = false; // cut down on the debug log noise XTRACE(kLogConnectionStatus, fState, connected); if (connected != last_connected) { DebugLog("connection status %d", connected); last_connected = connected; } check(fState != kIrDACommStateIdle); if (connected) StateChange(kIrDACommEventConnected); else StateChange(kIrDACommEventDisconnected); }
//--------------------------------------------------------------------------- void TSessionLog::OpenLogFile() { try { assert(FFile == nullptr); assert(FConfiguration != nullptr); FCurrentLogFileName = FConfiguration->GetLogFileName(); FFile = OpenFile(FCurrentLogFileName, FSessionData, FConfiguration->GetLogFileAppend(), FCurrentFileName); } catch (Exception & E) { // We failed logging to file, turn it off and notify user. FCurrentLogFileName = L""; FCurrentFileName = L""; FConfiguration->SetLogFileName(UnicodeString()); try { throw ExtException(&E, LoadStr(LOG_GEN_ERROR)); } catch (Exception & E) { AddException(&E); FUI->HandleExtendedException(&E); } } StateChange(); }
/** * ProcessEvents() reacts to a list of events originating from other VLC threads * * This function must be called with p_sys->lock unlocked * * @param intf_thread_t *p_intf This interface thread state * @param callback_info_t *p_events the list of events to process */ static void ProcessEvents( intf_thread_t *p_intf, callback_info_t **p_events, int i_events ) { for( int i = 0; i < i_events; i++ ) { switch( p_events[i]->signal ) { case SIGNAL_ITEM_CURRENT: TrackChange( p_intf ); break; case SIGNAL_INTF_CHANGE: case SIGNAL_PLAYLIST_ITEM_APPEND: case SIGNAL_PLAYLIST_ITEM_DELETED: TrackListChangeEmit( p_intf, p_events[i]->signal, p_events[i]->i_node ); break; case SIGNAL_RANDOM: case SIGNAL_REPEAT: case SIGNAL_LOOP: StatusChangeEmit( p_intf ); break; case SIGNAL_STATE: StateChange( p_intf ); break; case SIGNAL_INPUT_METADATA: break; default: assert(0); } free( p_events[i] ); } }
void SessionManager::SignOut() { im_connection_->Close(); friend_list_widget_->close(); SAFE_DELETE(friend_list_widget_); emit StateChange(UiDefines::UiStates::Disconnected); }
void CUser::PartyBBSDelete(char *pBuf) { int send_index = 0; // Basic Initializations. BYTE result = 0; char send_buff[256]; memset( send_buff, NULL, 256); if (m_bNeedParty == 1) goto fail_return; // You don't need anymore m_bNeedParty = 1; // Success! You no longer need a party !!! result = 1; SetByte(send_buff, 2, send_index); // Send new 'Need Party Status' to region!!! SetByte(send_buff, m_bNeedParty, send_index); StateChange(send_buff); send_index = 0; memset(send_buff, NULL, 256); // Now, let's find out which page the user is on. SetShort(send_buff, 0, send_index); PartyBBSNeeded(send_buff, PARTY_BBS_DELETE); return; fail_return: SetByte(send_buff, WIZ_PARTY_BBS, send_index); SetByte(send_buff, PARTY_BBS_DELETE, send_index); SetByte(send_buff, result, send_index); Send(send_buff, send_index); return; }
static void Run ( intf_thread_t *p_intf ) { for( ;; ) { if( dbus_connection_get_dispatch_status(p_intf->p_sys->p_conn) == DBUS_DISPATCH_COMPLETE ) msleep( INTF_IDLE_SLEEP ); int canc = vlc_savecancel(); dbus_connection_read_write_dispatch( p_intf->p_sys->p_conn, 0 ); /* Get the list of events to process * * We can't keep the lock on p_intf->p_sys->p_events, else we risk a * deadlock: * The signal functions could lock mutex X while p_events is locked; * While some other function in vlc (playlist) might lock mutex X * and then set a variable which would call AllCallback(), which itself * needs to lock p_events to add a new event. */ vlc_mutex_lock( &p_intf->p_sys->lock ); int i_events = vlc_array_count( p_intf->p_sys->p_events ); callback_info_t* info[i_events]; for( int i = i_events - 1; i >= 0; i-- ) { info[i] = vlc_array_item_at_index( p_intf->p_sys->p_events, i ); vlc_array_remove( p_intf->p_sys->p_events, i ); } vlc_mutex_unlock( &p_intf->p_sys->lock ); for( int i = 0; i < i_events; i++ ) { switch( info[i]->signal ) { case SIGNAL_ITEM_CURRENT: TrackChange( p_intf ); break; case SIGNAL_INTF_CHANGE: case SIGNAL_PLAYLIST_ITEM_APPEND: case SIGNAL_PLAYLIST_ITEM_DELETED: TrackListChangeEmit( p_intf, info[i]->signal, info[i]->i_node ); break; case SIGNAL_RANDOM: case SIGNAL_REPEAT: case SIGNAL_LOOP: StatusChangeEmit( p_intf ); break; case SIGNAL_STATE: StateChange( p_intf, info[i]->i_input_state ); break; default: assert(0); } free( info[i] ); } vlc_restorecancel( canc ); } }
//--------------------------------------------------------------------------- void TSessionLog::CloseLogFile() { if (FFile != nullptr) { fclose(static_cast<FILE *>(FFile)); FFile = nullptr; } FCurrentLogFileName = L""; FCurrentFileName = L""; StateChange(); }
void CSoundManager::InitComplete() { iIsLoad = ETrue; iData->InitVolume(iPlayer->MaxVolume()); iData->SetPlayerState(KPlayerStatePlay); StateChange(); VolumeChange(); if (iSoundCallBack) { iSoundCallBack->InitComplete(); } }
QTSS_Error QTSSErrorLogModuleDispatch(QTSS_Role inRole, QTSS_RoleParamPtr inParamBlock) { switch (inRole) { case QTSS_Register_Role: return Register(&inParamBlock->regParams); case QTSS_StateChange_Role: return StateChange(&inParamBlock->stateChangeParams); case QTSS_ErrorLog_Role: return LogError(inParamBlock); case QTSS_Shutdown_Role: return Shutdown(); } return QTSS_NoErr; }
void Ai_Fly_bug::Search() { float angle_ = GetAngleToTarget(unit->GetPos(), targer_pos); float dis_ = distan_coord(unit->GetPos(), targer_pos); int see_ = map->CollutionPosToPos(unit->GetPos(), targer_pos); //0이 안막혀있는거 search_time = 0; unit->SetAngle(angle_); unit->Approach(gm, targer_pos, NULL); int move_ = unit->UnitSlipMove(gm, unit->GetSpeed(unit->GetAngle()), angle_); if(move_ == -1 || (dis_ < 10 && (count % 10 == 0))) { moving = false; StateChange(MSI_LOST); } }
void CUser::PartyBBSRegister(char *pBuf) { CUser* pUser = NULL; int index = 0, send_index = 0; // Basic Initializations. BYTE result = 0; short bbs_len = 0; char send_buff[256]; memset(send_buff, NULL, 256); int i = 0, counter = 0; if (m_sPartyIndex != -1) goto fail_return; // You are already in a party! if (m_bNeedParty == 2) goto fail_return; // You are already on the BBS! m_bNeedParty = 2; // Success! Now you officially need a party!!! result = 1; SetByte(send_buff, 2, send_index); // Send new 'Need Party Status' to region!!! SetByte(send_buff, m_bNeedParty, send_index); StateChange(send_buff); send_index = 0; memset(send_buff, NULL, 256); // Now, let's find out which page the user is on. for (i = 0 ; i < MAX_USER ; i++) { pUser = m_pMain->GetUnsafeUserPtr(i); if (pUser == NULL || pUser->getNation() != getNation() || pUser->m_bNeedParty == 1) continue; if( !( ( pUser->m_pUserData->m_bLevel <= (int)(m_pUserData->m_bLevel * 1.5) && pUser->m_pUserData->m_bLevel >= (int)(m_pUserData->m_bLevel * 1.5)) || ( pUser->m_pUserData->m_bLevel <= (m_pUserData->m_bLevel+8) && pUser->m_pUserData->m_bLevel >= ((int)(m_pUserData->m_bLevel)-8) ) ) ) continue; if (pUser->GetSocketID() == GetSocketID()) break; counter++; } SetShort(send_buff, counter / MAX_BBS_PAGE, send_index); PartyBBSNeeded(send_buff, PARTY_BBS_REGISTER); return; fail_return: SetByte(send_buff, WIZ_PARTY_BBS, send_index); SetByte(send_buff, PARTY_BBS_REGISTER, send_index); SetByte(send_buff, result, send_index); Send(send_buff, send_index); return; }
Presenter::Presenter(IView *view) { this->view = view; this->game = new GameController(); QObject* qview = dynamic_cast<QObject*>(view); connect(qview, SIGNAL(onNewGame()), this->game, SLOT(onNewGame())); connect(qview, SIGNAL(onPause()), this->game, SLOT(onPause())); connect(qview, SIGNAL(onRotate()), this->game, SLOT(onRotate())); connect(qview, SIGNAL(onToLeft()), this->game, SLOT(onMoveLeft())); connect(qview, SIGNAL(onToRight()), this->game, SLOT(onMoveRight())); connect(qview, SIGNAL(onSpeedup()), this->game, SLOT(onSpeedup())); connect(qview, SIGNAL(onEndGame()), this->game, SLOT(onEnd())); connect(game, SIGNAL(onStateChanged()), this, SLOT(StateChange())); connect(game, SIGNAL(onGameEnd()), this, SLOT(EndGame())); // instead of speedup connect(qview, SIGNAL(onMakeMove()), this->game, SLOT(onMove())); }
bool GUIManager::Update(const FrameEvent& evt) { static bool clickedMouse = false; if(mCurrentState != GAMEENGINE.GetStateManager()->GetCurrentState()) StateChange(); CEGUI::System::getSingleton().injectMouseMove(GAMEENGINE.GetMouse()->getMouseState().X.rel, GAMEENGINE.GetMouse()->getMouseState().Y.rel); if(!clickedMouse && GAMEENGINE.GetMouse()->getMouseState().buttonDown(OIS::MB_Left)) { CEGUI::System::getSingleton().injectMouseButtonDown(CEGUI::LeftButton); CEGUI::System::getSingleton().injectMouseButtonClick(CEGUI::LeftButton); clickedMouse = true; } else if(!GAMEENGINE.GetMouse()->getMouseState().buttonDown(OIS::MB_Left)) clickedMouse = false; return true; }
QTSS_Error QTSSAccessLogModuleDispatch(QTSS_Role inRole, QTSS_RoleParamPtr inParamBlock) { switch (inRole) { case QTSS_Register_Role: return Register(&inParamBlock->regParams); case QTSS_StateChange_Role: return StateChange(&inParamBlock->stateChangeParams); case QTSS_Initialize_Role: return Initialize(&inParamBlock->initParams); case QTSS_RereadPrefs_Role: return RereadPrefs(); case QTSS_RTSPPostProcessor_Role: return PostProcess(&inParamBlock->rtspPostProcessorParams); case QTSS_ClientSessionClosing_Role: return ClientSessionClosing(&inParamBlock->clientSessionClosingParams); case QTSS_Shutdown_Role: return Shutdown(); } return QTSS_NoErr; }
LNetworkConnectionMonitor::LNetworkConnectionMonitor( QObject* parent ) : NetworkConnectionMonitor( parent ) { m_nmInterface = new QDBusInterface( QString( "org.freedesktop.NetworkManager" ), QString( "/org/freedesktop/NetworkManager" ), QString( "org.freedesktop.NetworkManager" ), QDBusConnection::systemBus(), this ); //get current connection state QDBusInterface* dbusInterface = new QDBusInterface( QString( "org.freedesktop.NetworkManager" ), QString( "/org/freedesktop/NetworkManager" ), QString( "org.freedesktop.DBus.Properties" ), QDBusConnection::systemBus(), this ); QDBusReply<QVariant> reply = dbusInterface->call( "Get", "org.freedesktop.NetworkManager", "state" ); if ( reply.isValid() ) { if ( reply.value() == Connected ) { setConnected( true ); } else if ( reply.value() == Disconnected ) { setConnected( false ); } } else { qDebug() << "Error: " << reply.error(); } delete dbusInterface; //connect network manager signals connect( m_nmInterface, SIGNAL( StateChange( uint ) ), this, SLOT( onStateChange( uint ) ) ); }
//--------------------------------------------------------------------------- void TSessionLog::ReflectSettings() { TGuard Guard(FCriticalSection); bool ALogging = !FClosed && ((FParent != nullptr) || FConfiguration->GetLogging()); if (FLogging != ALogging) { FLogging = ALogging; StateChange(); } // if logging to file was turned off or log file was changed -> close current log file if ((FFile != nullptr) && (!LogToFile() || (FCurrentLogFileName != FConfiguration->GetLogFileName()))) { CloseLogFile(); } DeleteUnnecessary(); }
void tSonarSourceStateMachine::ChangeState(SonarCommon::eSonarServerState NewState) { if(!m_HaveHardware && NewState == SonarCommon::eSonarServerState_Server) { NewState = SonarCommon::eSonarServerState_NoServer; } QString serverClass = tSonarSourceStateMachine::GetClassString(m_Class); DbgPrintf("tSonarSourceStateMachine(%s)::Changing state from %s to %s", serverClass.toStdString().c_str(), m_StateStrings[m_State], m_StateStrings[NewState]); // NSW-25760 Luigi - StructureScan 3D source appearing in source list for lowrance products //if (tSonar::Instance()->GetSaveAndKeepSourceSelected() == true) { if(NewState != m_State) { if(NewState == SonarCommon::eSonarServerState_Server) { m_pSettings->SetValue<bool>(true, m_IamServer, "IamServer"); } else { m_pSettings->SetValue<bool>(false, m_IamServer, "IamServer"); } } } bool stillServer = SonarCommon::IsServerState(m_State) && SonarCommon::IsServerState(NewState); m_State = NewState; // If we were a server before and still are a server, then no need to emit if(!stillServer) { DbgPrintf("SonarStatemachine: (%s) %s", m_Class == SonarCommon::eSonarServer_Conventional ? "conv" : "struc", m_StateStrings[m_State]); emit StateChange(m_State, m_Class); } }
void CTwain::SetState(TW_STATE nS) { if (nState != nS) { #ifdef _DEBUG if (bTrace) { LPCTSTR pzState[] = { g_szEmptyString, _T("1(PRE_SESSION)"), _T("2(SOURCE_MANAGER_LOADED)"), _T("3(SOURCE_MANAGER_OPEN)"), _T("4(SOURCE_OPEN)"), _T("5(SOURCE_ENABLED)"), _T("6(TRANSFER_READY)"), _T("7(TRANSFERRING)") }; ATLTRACE(_T("TWAIN:State %s -> %s\n"), pzState[nState], pzState[nS]); } #endif nState = nS; // update the 'global' StateChange(nS); // notify derived classes via callback } } // SetState
void ChoosePowerState::Init() { std::vector<FreePositions> dummyVar; List<EnemyWithStates> dummyList; Entity dummyEnt = _builder->EntityC().Create(); _allPowers.push_back(new LockOnStrike(_builder, dummyEnt, &dummyList)); _allPowers.push_back(new RandomBlink(_builder, dummyEnt, dummyVar)); _allPowers.push_back(new CharmPower(_builder, dummyEnt, &dummyList)); _allPowers.push_back(new TimeStopper(_builder, dummyEnt, &dummyList)); _allPowers.push_back(new RegenPower(_builder, nullptr, dummyEnt)); _allPowers.push_back(new LifeDrain(_builder, dummyEnt, &dummyList, nullptr)); size_t firstPower = rand() % _allPowers.size(); size_t secondPower = (firstPower + 1) % _allPowers.size(); auto options = System::GetOptions(); float pctX = options->GetScreenResolutionWidth() / 100.0f; float pctY = options->GetScreenResolutionHeight() / 100.0f; float midX = options->GetScreenResolutionWidth() / 2.0f; float midY = options->GetScreenResolutionHeight() / 2.0f; _choice2 = _builder->CreateOverlay(XMFLOAT3(midX - 30.0f * pctX, midY - 20.0f * pctY, 0.0f), 28.0f * pctX, 40.0f * pctY, "Assets/Textures/menuthing.png"); _choice1 = _builder->CreateOverlay(XMFLOAT3(midX + 2.0f * pctX, midY - 20.0f * pctY, 0.0f), 28.0f * pctX, 40.0f * pctY, "Assets/Textures/menuthing.png"); _choice2Text = _builder->CreateLabel(XMFLOAT3(midX + 4.0f * pctX, midY - 18.0f * pctY, 0.0f), _allPowers[firstPower]->GetDescription(40),20, XMFLOAT4(0.8f, 0.8f, 0.5f, 1.0f), 1.0f, 1.0f, ""); _choice1Text = _builder->CreateLabel(XMFLOAT3(midX - 29.0f * pctX, midY - 18.0f * pctY, 0.0f), _allPowers[secondPower]->GetDescription(40), 20, XMFLOAT4(0.8f, 0.8f, 0.5f, 1.0f), 1.0f, 1.0f, ""); _powerLabel = _builder->CreateLabel(XMFLOAT3(midX - 30.0f * pctX, midY - 10.0f * pctY - 20.0f * pctY, 0.0f), "Choose your powers", 35, XMFLOAT4(0.8f, 0.8f, 0.4f, 1.0f), 60.0f * pctX, 8.0f * pctY, ""); GameState* gstate = (GameState*)this->_savedState; auto i = System::GetInput(); i->HideCursor(false); i->LockMouseToCenter(false); _builder->Event()->BindEvent(_choice1, EventManager::EventType::LeftClick, [this, i, firstPower, gstate]() { _powerToGive = _allPowers[firstPower]->GetType(); i->LockMouseToCenter(true); _controller->ReleaseEntity(_choice1); _controller->ReleaseEntity(_choice2); _controller->ReleaseEntity(_powerLabel); _controller->ReleaseEntity(_choice1Text); _controller->ReleaseEntity(_choice2Text); i->HideCursor(true); gstate->ProgressNoNextLevel(_powerToGive); System::GetAudio()->PlaySoundEffect(L"choosepower.wav", 1.0f); ChangeStateTo(StateChange(gstate, false, true, false)); }); _builder->Event()->BindEvent(_choice2, EventManager::EventType::LeftClick, [this, i, secondPower, gstate]() { _powerToGive = _allPowers[secondPower]->GetType(); i->LockMouseToCenter(true); i->LockMouseToWindow(true); _controller->ReleaseEntity(_choice1); _controller->ReleaseEntity(_choice2); _controller->ReleaseEntity(_powerLabel); _controller->ReleaseEntity(_choice1Text); _controller->ReleaseEntity(_choice2Text); i->HideCursor(true); gstate->ProgressNoNextLevel(_powerToGive); System::GetAudio()->PlaySoundEffect(L"choosepower.wav", 1.0f); ChangeStateTo(StateChange(gstate, false, true, false)); }); _camera = _builder->CreateCamera(XMVectorSet(0.0f, 0.0f, 0.0f, 1.0f)); _builder->Transform()->SetDirection(_camera, XMVectorSet(0.0f, 0.0f, 1.0f, 0.0f)); _backgroundObject = _builder->CreateObject(XMVectorSet(0.0f, 0.0f, 3.0f, 1.0f), XMVectorSet(0, 0, 0, 0), XMVectorSet(32.0f, 32.0f, 1.0f, 0.0f), "Assets/Models/cube.arf", "Assets/Textures/Dungeon/0/Wall_Dif.png", "Assets/Textures/Dungeon/0/Wall_NM.png", "Assets/Textures/Dungeon/0/Wall_Disp.png", "Assets/Textures/Dungeon/0/Wall_Roughness.png", "Assets/Textures/Dungeon/0/Wall_Glossiness.png"); _builder->Material()->SetMaterialProperty(_backgroundObject, "ParallaxScaling", 0.04f, "Shaders/GBuffer.hlsl"); _builder->Material()->SetMaterialProperty(_backgroundObject, "ParallaxBias", -0.03f, "Shaders/GBuffer.hlsl"); _builder->Material()->SetMaterialProperty(_backgroundObject, "TexCoordScaleU", 32.0f, "Shaders/GBuffer.hlsl"); _builder->Material()->SetMaterialProperty(_backgroundObject, "TexCoordScaleV", 32.0f, "Shaders/GBuffer.hlsl"); _light = _builder->EntityC().Create(); _builder->Light()->BindPointLight(_light, XMFLOAT3(3.0f, 3.0f, 1.0f), 10.0f, XMFLOAT3(1.0f, 1.0f, 1.0f), 4.0f); }
void CUser::PartyInsert() // ?????? ??? ???. ????? ??Y?? ???°??? ??? { int send_index = 0, i = 0; CUser* pUser = NULL; _PARTY_GROUP* pParty = NULL; char send_buff[256]; memset( send_buff, 0x00, 256 ); if( m_sPartyIndex == -1 ) return; pParty = m_pMain->m_PartyArray.GetData( m_sPartyIndex ); if( !pParty ) { // ????? ??? m_sPartyIndex = -1; return; } for(int i=0; i<8; i++) { // Send your info to the rest of the party members. if (pParty->uid[i] == GetSocketID()) continue; pUser = m_pMain->GetUserPtr(pParty->uid[i]); if (pUser == NULL) continue; memset( send_buff, 0x00, 256 ); send_index = 0; SetByte( send_buff, WIZ_PARTY, send_index ); SetByte( send_buff, PARTY_INSERT, send_index ); SetShort( send_buff, pParty->uid[i], send_index ); SetKOString(send_buff, pUser->m_pUserData->m_id, send_index); SetShort( send_buff, pParty->sMaxHp[i], send_index ); SetShort( send_buff, pParty->sHp[i], send_index ); SetByte( send_buff, pParty->bLevel[i], send_index ); SetShort( send_buff, pParty->sClass[i], send_index ); SetShort( send_buff, pUser->m_iMaxMp, send_index ); SetShort( send_buff, pUser->m_pUserData->m_sMp, send_index ); Send( send_buff, send_index ); } for(i=0; i<8; i++ ) { if( pParty->uid[i] == -1 ) { pParty->uid[i] = m_Sid; pParty->sMaxHp[i] = m_iMaxHp; pParty->sHp[i] = m_pUserData->m_sHp; pParty->bLevel[i] = m_pUserData->m_bLevel; pParty->sClass[i] = m_pUserData->m_sClass; break; } } pUser = m_pMain->GetUserPtr(pParty->uid[0]); if (pUser == NULL) return; if (pUser->m_bNeedParty == 2 && pUser->m_sPartyIndex != -1) { pUser->m_bNeedParty = 1; memset( send_buff, 0x00, 256 ); send_index = 0; SetByte(send_buff, 2, send_index); SetByte(send_buff, pUser->m_bNeedParty, send_index); pUser->StateChange(send_buff); } if (m_bNeedParty == 2 && m_sPartyIndex != -1) { m_bNeedParty = 1; memset( send_buff, 0x00, 256 ); send_index = 0; SetByte(send_buff, 2, send_index); SetByte(send_buff, m_bNeedParty, send_index); StateChange(send_buff); } memset( send_buff, 0x00, 256 ); send_index = 0; SetByte( send_buff, WIZ_PARTY, send_index ); SetByte( send_buff, PARTY_INSERT, send_index ); SetShort( send_buff, m_Sid, send_index ); SetKOString( send_buff, m_pUserData->m_id, send_index ); SetShort( send_buff, m_iMaxHp, send_index ); SetShort( send_buff, m_pUserData->m_sHp, send_index ); SetByte( send_buff, m_pUserData->m_bLevel, send_index ); SetShort( send_buff, m_pUserData->m_sClass, send_index ); SetShort( send_buff, m_iMaxMp, send_index ); SetShort( send_buff, m_pUserData->m_sMp, send_index ); m_pMain->Send_PartyMember( m_sPartyIndex, send_buff, send_index ); // AI Server BYTE byIndex = i; send_index = 0; memset( send_buff, 0x00, 256 ); SetByte( send_buff, AG_USER_PARTY, send_index ); SetByte( send_buff, PARTY_INSERT, send_index ); SetShort( send_buff, pParty->wIndex, send_index ); SetByte( send_buff, byIndex, send_index ); SetShort( send_buff, pParty->uid[i], send_index ); //SetShort( send_buff, pParty->sHp[i], send_index ); //SetByte( send_buff, pParty->bLevel[i], send_index ); //SetShort( send_buff, pParty->sClass[i], send_index ); m_pMain->Send_AIServer(m_pUserData->m_bZone, send_buff, send_index); }
void addStateChange(const StateMachineHolder& sm, const std::string& expected, bool negate) { states.push_back(StateChange(sm, expected, negate, false)); }
void addStateCheck(const StateMachineHolder& sm, const std::string& state, bool negate) { states.push_back(StateChange(sm, state, negate, true)); }
void PauseState::Init() { auto i = System::GetInput(); auto o = System::GetOptions(); float width = (float)o->GetScreenResolutionWidth(); float height = (float)o->GetScreenResolutionHeight(); auto c = _controller; auto a = System::GetInstance()->GetAudio(); float widthPercentOfDefault = (1.0f / 1920.0f) * width; float heightPercentOfDefault = (1.0f / 1080.0f) * height; float fontSize = 40 ; XMFLOAT4 TextColor = XMFLOAT4(41.0f / 255.0f, 127.0f / 255.0f, 185.0f / 255.0f, 1.0f); // Radiant text Entity text = _builder->CreateLabel( XMFLOAT3(width / 2.0f - 110.0f, 25.0f, 0.0f), "Game Paused", fontSize, TextColor, 250.0f, 45.0f, ""); _builder->Transform()->SetPosition(text, XMFLOAT3(width / 2.0f - _builder->Text()->GetLength(text) / 2.0f, 25.0f, 0.0f)); // Resume button Entity b1 = _builder->CreateButton( XMFLOAT3(width / 2.0f - 110.0f, height/4.0f, 0.0f), "Resume Game", fontSize, TextColor, "", []() { }); _builder->Transform()->SetPosition(b1, XMFLOAT3(width / 2.0f - _builder->Text()->GetLength(b1) / 2.0f, height / 1.5f, 0.0f)); //Main menu button Entity b5 = _builder->CreateButton( XMFLOAT3(width / 2.0f - 110.0f, height / 4.0f, 0.0f), "Main Menu", fontSize, TextColor, "", [i, a]() { a->PlaySoundEffect(L"menuclick.wav", 1); ChangeStateTo(StateChange(new MenuState())); }); _builder->Transform()->SetPosition(b5, XMFLOAT3(width / 2.0f - _builder->Text()->GetLength(b5) / 2.0f, height / 1.5f + 55.0f, 0.0f)); // Exit button Entity b2 = _builder->CreateButton( XMFLOAT3(width / 2.0f - 110.0f, height / 4.0f + 55.0f, 0.0f), "Exit to desktop", fontSize, TextColor, "", [a]() { a->PlaySoundEffect(L"menuclick.wav", 1); ExitApplication; }); _builder->Transform()->SetPosition(b2, XMFLOAT3(width / 2.0f - _builder->Text()->GetLength(b2)/2.0f, height / 1.5f + 110.0f, 0.0f)); _controller->BindEvent(b1, EventManager::EventType::LeftClick, [i, a, this, text, b1, b2, b5]() { _controller->ReleaseEntity(text); _controller->ReleaseEntity(b1); _controller->ReleaseEntity(b2); _controller->ReleaseEntity(b5); i->LockMouseToCenter(true); i->LockMouseToWindow(true); i->HideCursor(true); i->MouseUp(VK_LBUTTON); a->PlaySoundEffect(L"menuclick.wav", 1); ChangeStateTo(StateChange(_savedState,false,true,true)); _savedState = nullptr; }); _controller->BindEvent(b1, EventManager::EventType::Update, [i, a, this, text, b1, b2, b5]() { if (i->IsKeyPushed(VK_ESCAPE)) { _controller->ReleaseEntity(text); _controller->ReleaseEntity(b1); _controller->ReleaseEntity(b2); _controller->ReleaseEntity(b5); i->LockMouseToCenter(true); i->LockMouseToWindow(true); i->HideCursor(true); i->MouseUp(VK_LBUTTON); a->PlaySoundEffect(L"menuclick.wav", 1); ChangeStateTo(StateChange(_savedState, false, true, true)); _savedState = nullptr; } }); }
/** * * FsmL() * * @param TMmfAudioOggRecEvents aEventCode * @param CMdaAudioClipUtility::TState aRecorderState * @param TInt aError * */ void CTestMmfOggAudioRecorderBase::FsmL(TMmfAudioOggRecEvents aEventCode, CMdaAudioClipUtility::TState aRecorderState, TInt aError) { if ((iExpectedError != KErrUnderflow) && (iError == KErrUnderflow)) { INFO_PRINTF1(_L("Underflow!")); } else if (iExpectedRecEvent != aEventCode) { ERR_PRINTF3(_L("ExpectedEvent : %d, ActualEvent : %d"), iExpectedRecEvent, aEventCode); CActiveScheduler::Stop(); } else if (iExpectedError != aError) { ERR_PRINTF3(_L("ExpectedError : %d, ActualError : %d"), iExpectedError, iError); CActiveScheduler::Stop(); } else if (iExpectedRecState != aRecorderState) { ERR_PRINTF3(_L("ExpectedRecorderState : %d, ActualRecorderState : %d"), iExpectedRecState, aRecorderState); CActiveScheduler::Stop(); } else { switch (iState) { case 0: { INFO_PRINTF2(_L("Opening the file %S.."), &iFileName); iAudioRecorder->OpenFileL(iFileName); StateChange(EOggMoscoStateChange, CMdaAudioClipUtility::EOpen); break; } case 1: { //AfterOpenL(); INFO_PRINTF1(_L("iAudioRecorder->SetMaxWriteLength(40000)")); iAudioRecorder->SetMaxWriteLength(KMaxWriteLength); INFO_PRINTF1(_L("Record the audio file...")); iAudioRecorder->RecordL(); StateChange(EOggMoscoStateChange, CMdaAudioClipUtility::ERecording); break; } case 2: { StateChange(EOggMoscoStateChange, CMdaAudioClipUtility::EOpen); break; } case 3: { // Check if there's error while recording the file if (aError != KErrNone) { ERR_PRINTF2(_L("Recording the audio file failed, unexpected error %d."), aError); } else { INFO_PRINTF1(_L("Audio file opened and recorded.")); iTestStepResult = EPass; } iAudioRecorder->Close(); CActiveScheduler::Stop(); break; } default: { INFO_PRINTF1(_L("Invalid Audio event!")); } } } }
void GameOverState::Init() { auto o = System::GetOptions(); float width = (float)o->GetScreenResolutionWidth(); float height = (float)o->GetScreenResolutionHeight(); auto i = System::GetInput(); auto c = _controller; auto a = System::GetInstance()->GetAudio(); a->PlayBGMusic(L"mamb.wav", 0.5f); XMFLOAT4 TextColor = XMFLOAT4(41.0f / 255.0f, 127.0f / 255.0f, 185.0f / 255.0f, 1.0f); XMFLOAT4 ScoreTextColor = XMFLOAT4(17.0f / 255.0f, 166.0f / 255.0f, 67.0f / 255.0f, 1.0f); //========================== //==== High Score Text ==== //========================== float widthPercentOfDefault = (1.0f / 1920.0f) * width; float heightPercentOfDefault = (1.0f / 1080.0f) * height; Entity scoreOverlay = _builder->CreateOverlay(XMFLOAT3(0.0f, 0.0f, 0.0f), 550.0f*widthPercentOfDefault, 350.0f*heightPercentOfDefault, "Assets/Textures/GameOverOverlay.png"); float fontSize = 40 * widthPercentOfDefault; //High Score Entity textHighScore = _builder->CreateLabel(XMFLOAT3(0.0f, 0.0f, 0.0f), "Statistics", fontSize, ScoreTextColor, 125.0f, 25.0f, ""); _builder->Text()->ChangeFontSize(textHighScore, (uint)(fontSize*1.5f)); _builder->Transform()->SetPosition(textHighScore, XMFLOAT3(550.0f*widthPercentOfDefault / 2 - _builder->Text()->GetLength(textHighScore) / 2, 0.0f, 0.0f)); _builder->Transform()->BindChild(scoreOverlay, textHighScore); //Light High Score Entity totalLightHighScoreText = _builder->CreateLabel(XMFLOAT3(0.0f, 0.0f, 0.0f), "Light Collected:", fontSize, ScoreTextColor, 125.0f, 25.0f, ""); _builder->Text()->ChangeFontSize(totalLightHighScoreText, (uint)(fontSize*0.55f)); _builder->Transform()->SetPosition(totalLightHighScoreText, XMFLOAT3(0.0f, fontSize*1.5f + fontSize * 0 + 10.0f * 1 * heightPercentOfDefault, 0.0f)); _builder->Transform()->BindChild(scoreOverlay, totalLightHighScoreText); Entity totalLightCollectedText = _builder->CreateLabel(XMFLOAT3(0.0f, 0.0f, 0.0f), std::to_string(_thePlayer->GetTotalLightCollected()), fontSize, ScoreTextColor, 125.0f, 25.0f, ""); _builder->Text()->ChangeFontSize(totalLightCollectedText, (uint)(fontSize*0.55f)); _builder->Transform()->SetPosition(totalLightCollectedText, XMFLOAT3(560.0f*widthPercentOfDefault / 2, fontSize*1.5f + fontSize * 0 + 10.0f * 1 * heightPercentOfDefault, 0.0f)); _builder->Transform()->BindChild(scoreOverlay, totalLightCollectedText); //Shots Fired Entity totalShotsFiredHighScoreText = _builder->CreateLabel(XMFLOAT3(0.0f, 0.0f, 0.0f), "Shots Fired:", fontSize, ScoreTextColor, 125.0f, 25.0f, ""); _builder->Text()->ChangeFontSize(totalShotsFiredHighScoreText, (uint)(fontSize*0.55f)); _builder->Transform()->SetPosition(totalShotsFiredHighScoreText, XMFLOAT3(0.0f, fontSize*1.5f + fontSize * 1 + 10.0f * 2 * heightPercentOfDefault, 0.0f)); _builder->Transform()->BindChild(scoreOverlay, totalShotsFiredHighScoreText); Entity totalShotsFiredText = _builder->CreateLabel(XMFLOAT3(0.0f, 0.0f, 0.0f), std::to_string(_thePlayer->GetShotsFired()), fontSize, ScoreTextColor, 125.0f, 25.0f, ""); _builder->Text()->ChangeFontSize(totalShotsFiredText, (uint)(fontSize*0.55f)); _builder->Transform()->SetPosition(totalShotsFiredText, XMFLOAT3(560.0f*widthPercentOfDefault / 2, fontSize*1.5f + fontSize * 1 + 10.0f * 2 * heightPercentOfDefault, 0.0f)); _builder->Transform()->BindChild(scoreOverlay, totalShotsFiredText); //Shots Connected Entity totalShotsConnectedHighScoreText = _builder->CreateLabel(XMFLOAT3(0.0f, 0.0f, 0.0f), "Shots Hitting:", fontSize, ScoreTextColor, 125.0f, 25.0f, ""); _builder->Text()->ChangeFontSize(totalShotsConnectedHighScoreText, (uint)(fontSize*0.55f)); _builder->Transform()->SetPosition(totalShotsConnectedHighScoreText, XMFLOAT3(0.0f, fontSize*1.5f + fontSize * 2 + 10.0f * 3 * heightPercentOfDefault, 0.0f)); _builder->Transform()->BindChild(scoreOverlay, totalShotsConnectedHighScoreText); Entity totalShotsConnectedText = _builder->CreateLabel(XMFLOAT3(0.0f, 0.0f, 0.0f), std::to_string(_thePlayer->GetShotsConnected()), fontSize, ScoreTextColor, 125.0f, 25.0f, ""); _builder->Text()->ChangeFontSize(totalShotsConnectedText, (uint)(fontSize*0.55f)); _builder->Transform()->SetPosition(totalShotsConnectedText, XMFLOAT3(560.0f*widthPercentOfDefault / 2, fontSize*1.5f + fontSize * 2 + 10.0f * 3 * heightPercentOfDefault, 0.0f)); _builder->Transform()->BindChild(scoreOverlay, totalShotsConnectedText); //Hit Chance Entity totalHitChanceHighScoreText = _builder->CreateLabel(XMFLOAT3(0.0f, 0.0f, 0.0f), "Hit Percent:", fontSize, ScoreTextColor, 125.0f, 25.0f, ""); _builder->Text()->ChangeFontSize(totalHitChanceHighScoreText, (uint)(fontSize*0.55f)); _builder->Transform()->SetPosition(totalHitChanceHighScoreText, XMFLOAT3(0.0f, fontSize*1.5f + fontSize * 3 + 10.0f * 4 * heightPercentOfDefault, 0.0f)); _builder->Transform()->BindChild(scoreOverlay, totalHitChanceHighScoreText); float value = _thePlayer->GetHitPercent(); int intValue = static_cast<int>(value); Entity totalHitPercentText = _builder->CreateLabel(XMFLOAT3(0.0f, 0.0f, 0.0f), std::to_string(intValue) + "." + std::to_string(static_cast<int>((value-(float)intValue)*100))+ "%", fontSize, ScoreTextColor, 125.0f, 25.0f, ""); _builder->Text()->ChangeFontSize(totalHitPercentText, (uint)(fontSize*0.55f)); _builder->Transform()->SetPosition(totalHitPercentText, XMFLOAT3(560.0f*widthPercentOfDefault / 2, fontSize*1.5f + fontSize * 3 + 10.0f * 4 * heightPercentOfDefault, 0.0f)); _builder->Transform()->BindChild(scoreOverlay, totalHitPercentText); //Enemies Defeated Entity totalEnemiesDefeatedScoreText = _builder->CreateLabel(XMFLOAT3(0.0f, 0.0f, 0.0f), "Enemies Defeated:", fontSize, ScoreTextColor, 125.0f, 25.0f, ""); _builder->Text()->ChangeFontSize(totalEnemiesDefeatedScoreText, (uint)(fontSize*0.55f)); _builder->Transform()->SetPosition(totalEnemiesDefeatedScoreText, XMFLOAT3(0.0f, fontSize*1.5f + fontSize * 4 + 10.0f * 5 * heightPercentOfDefault, 0.0f)); _builder->Transform()->BindChild(scoreOverlay, totalEnemiesDefeatedScoreText); Entity totalEnemiesDefeatedText = _builder->CreateLabel(XMFLOAT3(0.0f, 0.0f, 0.0f), std::to_string(_thePlayer->GetEnemiesDefeated()), fontSize, ScoreTextColor, 125.0f, 25.0f, ""); _builder->Text()->ChangeFontSize(totalEnemiesDefeatedText, (uint)(fontSize*0.75f)); _builder->Transform()->SetPosition(totalEnemiesDefeatedText, XMFLOAT3(560.0f*widthPercentOfDefault / 2, fontSize*1.5f + fontSize * 4 + 10.0f * 5 * heightPercentOfDefault, 0.0f)); _builder->Transform()->BindChild(scoreOverlay, totalEnemiesDefeatedText); //Set the overlay, and all it's childrens', positions. _builder->Transform()->SetPosition(scoreOverlay, XMFLOAT3(width - 550.0f*widthPercentOfDefault, height - 350.0f*heightPercentOfDefault, 0.0f)); //========================== //==== Buttons ==== //========================== // Start game button Entity b1 = _builder->CreateButton( XMFLOAT3(50.0f, height - 230.0f, 0.0f), "New Game", fontSize, TextColor, "", [i, a]() { a->PlaySoundEffect(L"menuclick.wav", 1); ChangeStateTo(StateChange(new GameState())); }); //Options button Entity b5 = _builder->CreateButton( XMFLOAT3(50.0f, height - 180.0f, 0.0f), "Main Menu", fontSize, TextColor, "", [i, a]() { a->PlaySoundEffect(L"menuclick.wav", 1); ChangeStateTo(StateChange(new MenuState)); }); // Exit button Entity b2 = _builder->CreateButton( XMFLOAT3(50.0f, height - 130.0f, 0.0f), "Exit", fontSize, TextColor, "", [a]() { a->PlaySoundEffect(L"menuclick.wav", 1); ExitApplication; }); //========================== //==== Background ==== //========================== // Game Over text _builder->CreateLabel( XMFLOAT3(width / 2.0f - 100.0f, 25.0f, 0.0f), "Game Over", fontSize, TextColor, 250.0f, 45.0f, ""); _altar = _builder->CreateObject( XMVectorSet(1.5f, 0.0f, 1.0f, 1.0f), XMVectorSet(0.0f, 0.0f, 0.0f, 0.0f), XMVectorSet(0.5f, 0.5f, 0.5f, 0.0f), "Assets/Models/Altar.arf", "Assets/Textures/Altar_Albedo.png", "Assets/Textures/Altar_NM.png", "Assets/Textures/default_displacement.png", "Assets/Textures/Altar_Roughness.png"); _builder->Material()->SetMaterialProperty(_altar, "ParallaxBias", -0.05f, "Shaders/GBuffer.hlsl"); _builder->Material()->SetMaterialProperty(_altar, "ParallaxScaling", 0.12f, "Shaders/GBuffer.hlsl"); _builder->Bounding()->CreateBoundingSphere(_altar, 2.0f); _altarCenterLight = _builder->EntityC().Create(); _builder->Light()->BindPointLight(_altarCenterLight, XMFLOAT3(0.0f, 0.0f, 0.0f), 3.0f, XMFLOAT3(0.0f, 0.25f, 0.35f), 10.0f); _builder->Light()->ChangeLightBlobRange(_altarCenterLight, 1.0f); _builder->Transform()->CreateTransform(_altarCenterLight); _builder->Transform()->SetPosition(_altarCenterLight, XMFLOAT3(0.0f, 1.4f, 0.0f)); _builder->Transform()->BindChild(_altar, _altarCenterLight); for (int i = 0; i < _numAltarBolts; ++i) { _altarBolts[i] = _builder->EntityC().Create(); _builder->Light()->BindPointLight(_altarBolts[i], XMFLOAT3(0.0f, 0.0f, 0.0f), 1.0f, XMFLOAT3(0.35f, 1.0f, 0.25f), 5.0f); _builder->Light()->ChangeLightBlobRange(_altarBolts[i], 0.3f); _builder->Lightning()->CreateLightningBolt(_altarBolts[i], _altarCenterLight); _builder->Lightning()->SetScale(_altarBolts[i], XMFLOAT2(0.4f, 0.4f)); _builder->Transform()->CreateTransform(_altarBolts[i]); _builder->Transform()->BindChild(_altarCenterLight, _altarBolts[i]); float angle = XM_2PI / _numAltarBolts; _builder->Transform()->SetPosition(_altarBolts[i], XMFLOAT3(1.5f * sinf(i * angle), 0.0f, 1.5f * cosf(i * angle))); _altarBoltAngle[i] = i * angle; } _builder->Transform()->SetPosition(_altar, XMFLOAT3(0.0f, 0.0f, 0.0f)); _controller->BindEventHandler(_altar, EventManager::Type::Object); _controller->BindEvent(_altar, EventManager::EventType::Update, [this]() { _builder->Transform()->RotateYaw(_altarCenterLight, _gameTimer.DeltaTime() * 25.0f); static float animDeltaTime = 0; animDeltaTime += _gameTimer.DeltaTime(); bool resetAnimTime = false; for (int i = 0; i < _numAltarBolts; ++i) { _altarBoltAngle[i] += _gameTimer.DeltaTime() * XM_PIDIV2 + _gameTimer.DeltaTime()*XM_PI * (i / 6); if (_altarBoltAngle[i] >= XM_2PI) _altarBoltAngle[i] -= XM_2PI; XMVECTOR pos = _builder->Transform()->GetPosition(_altarBolts[i]); _builder->Transform()->SetPosition(_altarBolts[i], XMVectorSetY(pos, 0.8f * sinf(_altarBoltAngle[i]))); if (animDeltaTime >= 0.02f) { resetAnimTime = true; _builder->Lightning()->Animate(_altarBolts[i]); } } if (resetAnimTime) animDeltaTime -= 0.02f; }); Entity camera = _builder->CreateCamera(XMVectorSet(0.0f, 1.0f, -3.0f, 0.0f)); _builder->Transform()->SetRotation(camera, XMFLOAT3(0.0f, 0.0f, 0.0f)); //========================== //==== Update ==== //========================== _controller->BindEvent(b2, EventManager::EventType::Update, [i, this]() { if (i->IsKeyPushed(VK_ESCAPE)) { ExitApplication; } if (i->IsKeyPushed('1')) { ChangeStateTo(StateChange(new GameState())); } if (i->IsKeyPushed('2')) { ChangeStateTo(StateChange(new MenuState())); } } ); }