void NetSynchronizeState::onMessage(Message &message) { if (evaluate()) return; if (!message.hasInt(FPNetMessage::TYPE)) return; int msgType = message.getInt(FPNetMessage::TYPE); if ((msgType == FPNetMessage::kGameSync) || (msgType == FPNetMessage::kGameAck)){ if (!message.hasInt("SynID")) return; int synID = message.getInt("SynID"); if (synID == m_synID) { if (msgType == FPNetMessage::kGameSync) { if (!m_ackSent) { sendAckMessage(); m_ackSent = true; } evaluateStateMachine(); } else { m_synchronized = true; evaluateStateMachine(); } } } }
void NetSynchronizeState::cycle() { if (m_cyclesCounter++ == m_cyclesTimeout) { m_failed = true; evaluateStateMachine(); } sendSyncMessage(); }
void GPSReader::fetchPositionData(Stream &port) { currentFieldReading = 0; currentFieldReadingPos = 0; state = WaitForStart; while ( state != DataOK ) evaluateStateMachine(port); }
void NetMatchPlayingState::action(Widget *sender, int actionType, event_manager::GameControlEvent *event) { switch (actionType) { case NetworkGameWidget::NETWORK_FAILURE: m_networkFailure = true; evaluateStateMachine(); break; default: MatchPlayingState::action(sender, actionType, event); break; } }