void LoginApp::MessageReceived(BMessage *message) { bool reboot = false; switch (message->what) { case kAttemptLogin: message->PrintToStream(); TryLogin(message); // TODO break; #ifdef __ANTARES__ case kHaltAction: reboot = false; // FALLTHROUGH case kRebootAction: { BRoster roster; BRoster::Private rosterPrivate(roster); status_t error = rosterPrivate.ShutDown(reboot, false, false); if (error < B_OK) { BString msg("Error: "); msg << strerror(error); (new BAlert("Error", msg.String(), "OK"))->Go(); } break; } case kSuspendAction: (new BAlert("Error", "Unimplemented", "OK"))->Go(); break; #endif default: BApplication::MessageReceived(message); } }
//---------------------------------------------------------- void TMasterLogic::HandleFromMMOEngine(nsMMOEngine::TBaseEvent* pBE) { std::string sEvent; switch(pBE->mType) { case nsMMOEngine::eConnectDown: sEvent = "ConnectDown"; ConnectDown((nsMMOEngine::TEventConnectDown*)pBE); break; case nsMMOEngine::eDisconnectDown: sEvent = "DisconnectDown"; DisconnectDown((nsMMOEngine::TEventDisconnectDown*)pBE); break; case nsMMOEngine::eConnectUp: sEvent = "ConnectUp"; ConnectUp((nsMMOEngine::TEventConnectUp*)pBE); break; case nsMMOEngine::eDisconnectUp: sEvent = "DisconnectUp"; DisconnectUp((nsMMOEngine::TEventDisconnectUp*)pBE); break; case nsMMOEngine::eError: { char sError[300]; nsMMOEngine::TEventError* pEr = (nsMMOEngine::TEventError*)pBE; sprintf(sError, "Error code=%u", pEr->code); sEvent = sError; } break; case nsMMOEngine::eRecvFromDown: sEvent = "RecvFromDown"; break; case nsMMOEngine::eRecvFromUp: sEvent = "RecvFromUp"; break; case nsMMOEngine::eTryLogin: sEvent = "TryLogin"; TryLogin((nsMMOEngine::TEventTryLogin*)pBE); break; case nsMMOEngine::eDestroyGroup: sEvent = "DestroyGroup"; break; default:BL_FIX_BUG(); } GetLogger("Inner")->WriteF_time("MMOEngine: %s.\n",sEvent.data()); }
void LoginApp::MessageReceived(BMessage *message) { bool reboot = false; switch (message->what) { case kAttemptLogin: message->PrintToStream(); TryLogin(message); // TODO break; #ifdef __HAIKU__ case kHaltAction: reboot = false; // FALLTHROUGH case kRebootAction: { BRoster roster; BRoster::Private rosterPrivate(roster); status_t error = rosterPrivate.ShutDown(reboot, false, false); if (error < B_OK) { BString msg(B_TRANSLATE("Error: %1")); msg.ReplaceFirst("%1", strerror(error)); BAlert* alert = new BAlert(("Error"), msg.String(), B_TRANSLATE("OK")); alert->SetFlags(alert->Flags() | B_CLOSE_ON_ESCAPE); alert->Go(); } break; } case kSuspendAction: { BAlert* alert = new BAlert(B_TRANSLATE("Error"), B_TRANSLATE("Unimplemented"), B_TRANSLATE("OK")); alert->SetFlags(alert->Flags() | B_CLOSE_ON_ESCAPE); alert->Go(); break; } #endif default: BApplication::MessageReceived(message); } }
/*********************************************************** called to check for game events and handle them ***********************************************************/ void LbaNetEngine::HandleGameEvents() { std::vector<GameEvent *> events; InternalWorkpile::getInstance()->GetPendingEvents(events); std::vector<GameEvent *>::iterator it = events.begin(); std::vector<GameEvent *>::iterator end = events.end(); for(; it != end; ++it) { switch((*it)->GetType()) { case 1: // login event if(m_currentstate == ELogin) { //SaveCharToFile(); LoginEvent * ev = static_cast<LoginEvent *> (*it); TryLogin(ev->_Name, ev->_Password); m_gui_handler.SetPlayerName(ev->_Name); } break; case 2: // gui exit event ExitGui(); break; case 3: // change world event { ChangeWorldEvent * evcw = static_cast<ChangeWorldEvent *> (*it); ChangeWorld(evcw->_NewWorld); } break; case 4: // display gui event { DisplayGUIEvent * evdg = static_cast<DisplayGUIEvent *> (*it); DisplayGUI(evdg->_GuiNumber); } break; case 5: // GameServerAddressEvent { GameServerAddressEvent * evdg = static_cast<GameServerAddressEvent *> (*it); ConnectToGameServer(evdg->_ServerName, evdg->_ServerAddress); } break; case 6: // GameServerUnreachableEvent { GameErrorMessageEvent * evdg = static_cast<GameErrorMessageEvent *> (*it); GameErrorMessage(evdg->_Message); } break; case 7: // NewMapEvent { NewMapEvent * evdg = static_cast<NewMapEvent *> (*it); m_lbaNetModel.NewMapEvent(evdg->_MapName, evdg->_MapType); m_gui_handler.SetCurrentMap(evdg->_MapName); } break; case 8: // new font size event { m_gui_handler.ReloadFontSize(); } break; //case 9: // teleport event // { // TeleportEvent * evcbe = static_cast<TeleportEvent *> (*it); // m_lbaNetModel.ChangeMap(evcbe->_NewMap, evcbe->_Spawning); // } //break; //case 10: // teleport event // { // ChangeMainBodyColorEvent * evcbe = static_cast<ChangeMainBodyColorEvent *> (*it); // if(evcbe->_plus) // m_lbaNetModel.IncreasePlayerBodyColor(); // else // m_lbaNetModel.DecreasePlayerBodyColor(); // } //break; case 11: // display text event { if(m_currentstate == EGaming) { DisplayGameTextEvent * evcbe = static_cast<DisplayGameTextEvent *> (*it); m_gui_handler.DisplayGameText(evcbe->_textid); } } break; //case 12: // player scripted event // { // if(m_currentstate == EGaming) // { // MainPlayerScriptedEvent * evcbe = static_cast<MainPlayerScriptedEvent *> (*it); // m_lbaNetModel.DoPlayerScriptedEvent(evcbe->_script); // } // } //break; //case 13: // game signal event // { // if(m_currentstate == EGaming) // { // GameSignalvent * evcbe = static_cast<GameSignalvent *> (*it); // m_lbaNetModel.SignalEvent(evcbe->_signal, evcbe->_targets); // } // } //break; //case 14: // teleport anywere event // { // if(m_currentstate == EGaming) // { // TeleportAnyEvent * evcbe = static_cast<TeleportAnyEvent *> (*it); // m_lbaNetModel.ChangeMap(evcbe->_NewMap, evcbe->_X, evcbe->_Y, evcbe->_Z, 0); // } // } //break; //case 15: // change perspective event // { // ChangePerspectiveEvent * evcs = static_cast<ChangePerspectiveEvent *> (*it); // m_lbaNetModel.ChangePespective(evcs->_perspective); // } //break; //case 16: // display exits event // { // DisplayExitsEvent * evcs = static_cast<DisplayExitsEvent *> (*it); // m_lbaNetModel.DisplayExits(evcs->_display); // } //break; //case 17: // playerhurt // { // PlayerHurtEvent * evcs = static_cast<PlayerHurtEvent *> (*it); // m_lbaNetModel.PlayerHurt(evcs->_fromactorid); // } //break; //case 18: // do full check // { // m_lbaNetModel.DoFullCheckEvent(); // } //break; //case 19: // player life changed // { // PlayerLifeChangedEvent * evcs = static_cast<PlayerLifeChangedEvent *> (*it); // m_lbaNetModel.PlayerLifeChanged(evcs->_CurLife, evcs->_MaxLife, // evcs->_CurMana, evcs->_MaxMana); // _MaxLife = evcs->_MaxLife; // _MaxMana = evcs->_MaxMana; // _CurrentLife = evcs->_CurLife; // if(_CurrentLife < 0) // _CurrentLife = 0; // _CurrentMana = evcs->_CurMana; // if(_CurrentMana < 0) // _CurrentMana = 0; // } //break; //case 20: // player name color changed // { // PlayerNameColorChangedEvent * evcs = // static_cast<PlayerNameColorChangedEvent *> (*it); // m_lbaNetModel.SetPlayerNameColor(evcs->_R, evcs->_G, evcs->_B); // } //break; //case 21: // change stance event // { // ChangeStanceEvent * evcs = // static_cast<ChangeStanceEvent *> (*it); // PlayerChangeStance(evcs->_stance); // } //break; //case 22: // inventory used event // { // InventoryObjectUsedEvent * evcs = // static_cast<InventoryObjectUsedEvent *> (*it); // m_lbaNetModel.InventoryUsed(evcs->_ObjectId, _CurrentLife==_MaxLife, _CurrentMana==_MaxMana); // } //break; case 23: // focus chatbox event FocusChatbox(true); break; //case 24: // display NPC dialog // { // DisplayDialogEvent * evcs = // static_cast<DisplayDialogEvent *> (*it); // m_guiHandler.ShowDialog(evcs->_ActorId, evcs->_ActorName, evcs->_Dialog, // evcs->_Show, evcs->_inventory); // } //break; //case 25: // object update event // { // ObjectUpdateEvent * evcs = // static_cast<ObjectUpdateEvent *> (*it); // if(!evcs->_Received) // { // std::stringstream strs; // strs<<"You used "<<evcs->_Number<<" [colour='FFFFFFFF'][image='set:"<<ImageSetHandler::GetInstance()->GetInventoryMiniImage(evcs->_ObjectId)<<" image:full_image']"; // ThreadSafeWorkpile::ChatTextData cdata; // cdata.Channel = "All"; // cdata.Sender = "info"; // cdata.Text = strs.str(); // ThreadSafeWorkpile::getInstance()->AddChatData(cdata); // } // else // { // std::stringstream strs; // strs<<"You received "<<evcs->_Number<<" [colour='FFFFFFFF'][image='set:"<<ImageSetHandler::GetInstance()->GetInventoryMiniImage(evcs->_ObjectId)<<" image:full_image']"; // ThreadSafeWorkpile::ChatTextData cdata; // cdata.Channel = "All"; // cdata.Sender = "info"; // cdata.Text = strs.str(); // ThreadSafeWorkpile::getInstance()->AddChatData(cdata); // } // } //break; } delete *it; } }
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_); }