void PlayerInfo::onReceiveCommand(int32_t clientId, sf::Packet& packet) { if (clientId != this->clientId) return; int16_t command; packet >> command; switch(command) { case CMD_UPDATE_CREW_POSITION: { int32_t position; bool active; packet >> position >> active; crew_position[position] = active; if (isMainScreen()) main_screen_control = false; if (active && mySpaceship) { int main_screen_control_cnt = 0; foreach(PlayerInfo, i, playerInfoList) { if (i->ship_id == mySpaceship->getMultiplayerId() && i->main_screen_control) main_screen_control_cnt++; } if (main_screen_control_cnt == 0) main_screen_control = true; } } break; case CMD_UPDATE_SHIP_ID: packet >> ship_id; break; case CMD_UPDATE_MAIN_SCREEN_CONTROL: packet >> main_screen_control; break; }
static int handleToggleCommands (int command, void *data) { switch (command & BRL_MSK_CMD) { case BRL_CMD_SKPIDLNS: toggleFeatureSetting(&prefs.skipIdenticalLines, command); break; case BRL_CMD_SKPBLNKWINS: toggleFeatureSetting(&prefs.skipBlankBrailleWindows, command); break; case BRL_CMD_SLIDEWIN: toggleFeatureSetting(&prefs.slidingBrailleWindow, command); break; case BRL_CMD_SIXDOTS: toggleFeatureSetting(&prefs.textStyle, command); break; case BRL_CMD_CSRTRK: toggleSetting(&ses->trackScreenCursor, command, ALERT_CURSOR_UNLINKED, ALERT_CURSOR_LINKED); if (ses->trackScreenCursor) { #ifdef ENABLE_SPEECH_SUPPORT if (spk.track.isActive && (scr.number == spk.track.screenNumber)) { spk.track.speechLocation = SPK_LOC_NONE; } else #endif /* ENABLE_SPEECH_SUPPORT */ { trackScreenCursor(1); } } break; case BRL_CMD_CSRSIZE: toggleFeatureSetting(&prefs.screenCursorStyle, command); break; case BRL_CMD_CSRVIS: toggleFeatureSetting(&prefs.showScreenCursor, command); break; case BRL_CMD_CSRHIDE: toggleModeSetting(&ses->hideScreenCursor, command); break; case BRL_CMD_CSRBLINK: toggleFeatureSetting(&prefs.blinkingScreenCursor, command); break; case BRL_CMD_ATTRVIS: toggleFeatureSetting(&prefs.showAttributes, command); break; case BRL_CMD_ATTRBLINK: toggleFeatureSetting(&prefs.blinkingAttributes, command); break; case BRL_CMD_CAPBLINK: toggleFeatureSetting(&prefs.blinkingCapitals, command); break; case BRL_CMD_AUTOREPEAT: toggleFeatureSetting(&prefs.autorepeat, command); break; case BRL_CMD_BRLKBD: toggleFeatureSetting(&prefs.brailleKeyboardEnabled, command); break; case BRL_CMD_BRLUCDOTS: toggleFeatureSetting(&prefs.brailleInputMode, command); break; case BRL_CMD_TOUCH_NAV: toggleFeatureSetting(&prefs.touchNavigation, command); break; case BRL_CMD_TUNES: toggleFeatureSetting(&prefs.alertTunes, command); /* toggle sound on/off */ break; case BRL_CMD_AUTOSPEAK: toggleFeatureSetting(&prefs.autospeak, command); break; case BRL_CMD_ASPK_SEL_LINE: toggleFeatureSetting(&prefs.autospeakSelectedLine, command); break; case BRL_CMD_ASPK_SEL_CHAR: toggleFeatureSetting(&prefs.autospeakSelectedCharacter, command); break; case BRL_CMD_ASPK_INS_CHARS: toggleFeatureSetting(&prefs.autospeakInsertedCharacters, command); break; case BRL_CMD_ASPK_DEL_CHARS: toggleFeatureSetting(&prefs.autospeakDeletedCharacters, command); break; case BRL_CMD_ASPK_REP_CHARS: toggleFeatureSetting(&prefs.autospeakReplacedCharacters, command); break; case BRL_CMD_ASPK_CMP_WORDS: toggleFeatureSetting(&prefs.autospeakCompletedWords, command); break; case BRL_CMD_SHOW_CURR_LOCN: toggleFeatureSetting(&prefs.showSpeechCursor, command); break; case BRL_CMD_INFO: if ((prefs.statusPosition == spNone) || haveStatusCells()) { toggleModeSetting(&infoMode, command); } else { ToggleResult result = toggleModeSetting(&textMaximized, command); if (result > TOGGLE_SAME) reconfigureBrailleWindow(); } break; case BRL_CMD_DISPMD: toggleModeSetting(&ses->displayMode, command); break; case BRL_CMD_FREEZE: { unsigned char setting; if (isMainScreen()) { setting = 0; } else if (isSpecialScreen(SCR_FROZEN)) { setting = 1; } else { alert(ALERT_COMMAND_REJECTED); break; } switch (toggleSetting(&setting, command, ALERT_SCREEN_UNFROZEN, ALERT_SCREEN_FROZEN)) { case TOGGLE_OFF: deactivateSpecialScreen(SCR_FROZEN); break; case TOGGLE_ON: if (!activateSpecialScreen(SCR_FROZEN)) alert(ALERT_COMMAND_REJECTED); break; default: break; } break; } default: return 0; } return 1; }
void mainScreenUpdated (void) { if (isMainScreen()) { scheduleUpdateIn("main screen updated", SCREEN_UPDATE_SCHEDULE_DELAY); } }