/** * Finds the menu item that matches the given key bidning hash and runs its event. */ bool Accelerators::MatchMenus(int hash) { if(m_activeChord) { std::map<int, KeyBinding*>::iterator iterator; iterator = m_activeChord->bindings.find(hash); if(iterator != m_activeChord->bindings.end()) { KeyBinding* binding = iterator->second; RunEvent(binding->id, m_editorFrame); ResetChords(); } // If we have an active chord and it matches nothing or something, don't let it keep processing either way ResetChords(); return true; } else { std::map<int, KeyChord*>::iterator iterator; iterator = m_chords.find(hash); if(iterator != m_chords.end()) { m_activeChord = iterator->second; return true; } std::map<int, KeyBinding*>::iterator iterator2; iterator2 = m_bindings.find(hash); if(iterator2 != m_bindings.end()) { KeyBinding* binding = iterator2->second; RunEvent(binding->id, m_editorFrame); ResetChords(); return true; } } ResetChords(); return false; }
void CUser::RecvSelectMsg(char *pBuf) // Receive menu reply from client. { int index = 0, selevent, selnum; EVENT* pEvent = NULL; EVENT_DATA* pEventData = NULL; selnum = GetByte( pBuf, index ); if( selnum < 0 || selnum > MAX_MESSAGE_EVENT ) goto fail_return; selevent = m_iSelMsgEvent[selnum]; // Get the event number that needs to be processed next. pEvent = m_pMain->m_Event.GetData(m_pUserData->m_bZone); if(!pEvent) goto fail_return; pEventData = pEvent->m_arEvent.GetData(selevent); if(!pEventData) goto fail_return; if( !CheckEventLogic(pEventData) ) goto fail_return; if( !RunEvent(pEventData) ) { goto fail_return; } return; fail_return: for (int i = 0 ; i < MAX_MESSAGE_EVENT ; i++) { m_iSelMsgEvent[i] = -1; } }
void CRoomEvent::MainRoom( float fcurtime ) { // 조건 검색먼저 해야 겠지.. BOOL bCheck = FALSE, bRunCheck = FALSE; int event_num = m_Logic[m_byLogicNumber-1].sNumber; bCheck = CheckEvent( event_num, fcurtime ); if( bCheck ) { event_num = m_Exec[m_byLogicNumber-1].sNumber; bRunCheck = RunEvent( event_num ); if( bRunCheck ) { //wsprintf(notify, "** 알림 : [%d]방이 클리어 되어습니다. **", m_sRoomNumber); //m_pMain->SendSystemMsg( notify, PUBLIC_CHAT, SEND_ALL); m_byStatus = 3; } } }
void CRoomEvent::MainRoom() { // 조건 검색먼저 해야 겠지.. bool bCheck = false, bRunCheck = false; int event_num = m_Logic[m_byLogicNumber-1].sNumber; bCheck = CheckEvent(event_num); if( bCheck ) { event_num = m_Exec[m_byLogicNumber-1].sNumber; bRunCheck = RunEvent( event_num ); if( bRunCheck ) { //wsprintf(notify, "** 알림 : [%d]방이 클리어 되어습니다. **", m_sRoomNumber); //g_pMain->SendSystemMsg(notify, PUBLIC_CHAT); m_byStatus = 3; } } }
void mtsIntuitiveResearchKitArm::Run(void) { ProcessQueuedEvents(); GetRobotData(); switch (RobotState) { case mtsIntuitiveResearchKitArmTypes::DVRK_UNINITIALIZED: break; case mtsIntuitiveResearchKitArmTypes::DVRK_HOMING_POWERING: RunHomingPower(); break; case mtsIntuitiveResearchKitArmTypes::DVRK_HOMING_CALIBRATING_ARM: RunHomingCalibrateArm(); break; case mtsIntuitiveResearchKitArmTypes::DVRK_ARM_CALIBRATED: break; case mtsIntuitiveResearchKitArmTypes::DVRK_READY: break; case mtsIntuitiveResearchKitArmTypes::DVRK_POSITION_JOINT: RunPositionJoint(); break; case mtsIntuitiveResearchKitArmTypes::DVRK_POSITION_GOAL_JOINT: RunPositionGoalJoint(); break; case mtsIntuitiveResearchKitArmTypes::DVRK_POSITION_CARTESIAN: RunPositionCartesian(); break; case mtsIntuitiveResearchKitArmTypes::DVRK_POSITION_GOAL_CARTESIAN: RunPositionGoalCartesian(); break; case mtsIntuitiveResearchKitArmTypes::DVRK_MANUAL: break; default: RunArmSpecific(); break; } RunEvent(); ProcessQueuedCommands(); mCounter++; CartesianGetPrevious = CartesianGet; }
void mtsIntuitiveResearchKitPSM::Run(void) { Counter++; ProcessQueuedEvents(); GetRobotData(); switch (RobotState) { case PSM_UNINITIALIZED: break; case PSM_HOMING_POWERING: RunHomingPower(); break; case PSM_HOMING_CALIBRATING_ARM: RunHomingCalibrateArm(); break; case PSM_ARM_CALIBRATED: break; case PSM_ENGAGING_ADAPTER: RunEngagingAdapter(); break; case PSM_ADAPTER_ENGAGED: // choose next state break; case PSM_ENGAGING_TOOL: RunEngagingTool(); break; case PSM_READY: case PSM_POSITION_CARTESIAN: RunPositionCartesian(); break; case PSM_MANUAL: break; default: break; } RunEvent(); ProcessQueuedCommands(); }
void mtsIntuitiveResearchKitMTM::Run(void) { ProcessQueuedEvents(); GetRobotData(); switch (RobotState) { case mtsIntuitiveResearchKitMTMTypes::MTM_UNINITIALIZED: break; case mtsIntuitiveResearchKitMTMTypes::MTM_HOMING_POWERING: RunHomingPower(); break; case mtsIntuitiveResearchKitMTMTypes::MTM_HOMING_CALIBRATING_ARM: RunHomingCalibrateArm(); break; case mtsIntuitiveResearchKitMTMTypes::MTM_HOMING_CALIBRATING_ROLL: RunHomingCalibrateRoll(); break; case mtsIntuitiveResearchKitMTMTypes::MTM_READY: break; case mtsIntuitiveResearchKitMTMTypes::MTM_POSITION_CARTESIAN: RunPositionCartesian(); break; case mtsIntuitiveResearchKitMTMTypes::MTM_GRAVITY_COMPENSATION: RunGravityCompensation(); break; case mtsIntuitiveResearchKitMTMTypes::MTM_CLUTCH: RunClutch(); default: break; } RunEvent(); ProcessQueuedCommands(); // update previous value CartesianGetPrevious = CartesianGet; }
BOOL CUser::RunEvent(EVENT_DATA *pEventData) { EXEC* pExec = NULL; list<EXEC*>::iterator Iter; for( Iter = pEventData->m_arExec.begin(); Iter != pEventData->m_arExec.end(); Iter++ ) { pExec = (*Iter); if( !pExec ) break; switch(pExec->m_Exec){ case EXEC_SAY: SendNpcSay( pExec ); break; case EXEC_SELECT_MSG: SelectMsg( pExec ); break; case EXEC_RUN_EVENT: { EVENT* pEvent = NULL; EVENT_DATA* pEventData = NULL; pEvent = m_pMain->m_Event.GetData(m_pUserData->m_bZone); if(!pEvent) break; pEventData = pEvent->m_arEvent.GetData(pExec->m_ExecInt[0]); if(!pEventData) break; if( !CheckEventLogic(pEventData) ) break; if( !RunEvent(pEventData) ){ return FALSE; } } break; case EXEC_GIVE_ITEM: if ( !GiveItem(pExec->m_ExecInt[0], pExec->m_ExecInt[1]) ) return FALSE; break; case EXEC_ROB_ITEM: if ( !RobItem(pExec->m_ExecInt[0], pExec->m_ExecInt[1]) ) return FALSE; break; case EXEC_GIVE_NOAH: GoldGain(pExec->m_ExecInt[0]); break; case EXEC_SAVE_COM_EVENT: SaveComEvent(pExec->m_ExecInt[0]); break; case EXEC_ROB_NOAH: GoldLose(pExec->m_ExecInt[0]); break; // case EXEC_RETURN: return FALSE; break; /* case EXEC_SAY: break; case EXEC_SELECT_MSG: SelectMsg( pExec ); break; case EXEC_RUN_EVENT: { EVENT* pEvent = NULL; pEvent = m_pMain->m_Quest.GetData(m_pUserData->m_bZone); if(!pEvent) break; EVENT_DATA* pEventData = NULL; pEventData = pEvent->m_arEvent.GetData(pExec->m_ExecInt[0]); if(!pEventData) break; if( !CheckEventLogic(pEventData) ) break; if( !RunEvent(pEventData) ) { return FALSE; } } break; case EXEC_ROB_NOAH: break; case EXEC_GIVE_QUEST: break; case EXEC_QUEST_END: break; case EXEC_QUEST_SAVE: break; case EXEC_RETURN: return FALSE; /////// These events are for the test quest. /////// case EXEC_ROB_ITEM: if (!RobItem(pExec->m_ExecInt[0], pExec->m_ExecInt[1])) { return FALSE; } break; case EXEC_GIVE_ITEM: if (!GiveItem(pExec->m_ExecInt[0], pExec->m_ExecInt[1])) { return FALSE; } break; */ default: break; } } return TRUE; }