diff --git a/client/CPreGame.cpp b/client/CPreGame.cpp index 576e36072..a7a9f1602 100644 --- a/client/CPreGame.cpp +++ b/client/CPreGame.cpp @@ -584,10 +584,10 @@ CSelectionScreen::CSelectionScreen(CMenuScreen::EState Type, CMenuScreen::EMulti OBJ_CONSTRUCTION_CAPTURING_ALL; - bool network = (MultiPlayer == CMenuScreen::MULTI_NETWORK_GUEST || MultiPlayer == CMenuScreen::MULTI_NETWORK_HOST); + bool network = (isGuest() || isHost()); CServerHandler *sh = nullptr; - if(multiPlayer == CMenuScreen::MULTI_NETWORK_HOST) + if(isHost()) { sh = new CServerHandler; sh->startServer(); @@ -645,7 +645,7 @@ CSelectionScreen::CSelectionScreen(CMenuScreen::EState Type, CMenuScreen::EMulti case CMenuScreen::newGame: { SDL_Color orange = {232, 184, 32, 0}; - SDL_Color overlayColor = multiPlayer == CMenuScreen::MULTI_NETWORK_GUEST ? orange : Colors::WHITE; + SDL_Color overlayColor = isGuest() ? orange : Colors::WHITE; card->difficulty->addCallback(std::bind(&CSelectionScreen::difficultyChange, this, _1)); card->difficulty->setSelected(1); @@ -675,7 +675,7 @@ CSelectionScreen::CSelectionScreen(CMenuScreen::EState Type, CMenuScreen::EMulti CButton *hideChat = new CButton(Point(619, 83), "GSPBUT2.DEF", CGI->generaltexth->zelp[48], std::bind(&InfoCard::toggleChat, card), SDLK_h); hideChat->addTextOverlay(CGI->generaltexth->allTexts[531], FONT_SMALL); - if(multiPlayer == CMenuScreen::MULTI_NETWORK_GUEST) + if(isGuest()) { select->block(true); opts->block(true); @@ -705,7 +705,7 @@ CSelectionScreen::CSelectionScreen(CMenuScreen::EState Type, CMenuScreen::EMulti if(network) { - if(multiPlayer == CMenuScreen::MULTI_NETWORK_HOST) + if(isHost()) { assert(playerNames.size() == 1 && vstd::contains(playerNames, 1)); //TODO hot-seat/network combo serv = sh->connectToServer(); @@ -713,30 +713,25 @@ CSelectionScreen::CSelectionScreen(CMenuScreen::EState Type, CMenuScreen::EMulti myNameID = 1; } else - { serv = CServerHandler::justConnectToServer(Address, Port); - } serv->enterPregameConnectionMode(); *serv << playerNames.begin()->second; - if(multiPlayer == CMenuScreen::MULTI_NETWORK_GUEST) + if(isGuest()) { const CMapInfo *map; *serv >> myNameID >> map; serv->connectionID = myNameID; changeSelection(map); } - else //host + else if(current) { - if(current) - { - SelectMap sm(*current); - *serv << &sm; + SelectMap sm(*current); + *serv << &sm; - UpdateStartOptions uso(sInfo); - *serv << &uso; - } + UpdateStartOptions uso(sInfo); + *serv << &uso; } applier = new CApplier; @@ -769,7 +764,7 @@ CSelectionScreen::~CSelectionScreen() void CSelectionScreen::toggleTab(CIntObject *tab) { - if(multiPlayer == CMenuScreen::MULTI_NETWORK_HOST && serv) + if(isHost() && serv) { PregameGuiAction pga; if(tab == curTab) @@ -805,10 +800,8 @@ void CSelectionScreen::toggleTab(CIntObject *tab) void CSelectionScreen::changeSelection(const CMapInfo * to) { if(current == to) return; - if(multiPlayer == CMenuScreen::MULTI_NETWORK_GUEST) - { + if(isGuest()) vstd::clear_pointer(current); - } current = to; @@ -836,7 +829,7 @@ void CSelectionScreen::changeSelection(const CMapInfo * to) opt->recreate(); } - if(multiPlayer == CMenuScreen::MULTI_NETWORK_HOST && serv) + if(isHost() && serv) { SelectMap sm(*to); *serv << &sm; @@ -849,9 +842,7 @@ void CSelectionScreen::changeSelection(const CMapInfo * to) void CSelectionScreen::startCampaign() { if (SEL->current) - { GH.pushInt(new CBonusSelection(SEL->current->fileURI)); - } } void CSelectionScreen::startScenario() @@ -871,7 +862,7 @@ void CSelectionScreen::startScenario() } } - if(multiPlayer == CMenuScreen::MULTI_NETWORK_HOST) + if(isHost()) { start->block(true); StartWithCurrentSettings swcs; @@ -3973,7 +3964,7 @@ void PlayerJoined::apply(CSelectionScreen *selScreen) void SelectMap::apply(CSelectionScreen *selScreen) { - if(selScreen->multiPlayer == CMenuScreen::MULTI_NETWORK_GUEST) + if(selScreen->isGuest()) { free = false; selScreen->changeSelection(mapInfo);