void YOGLoginScreen::runLobby() { Glob2TabScreen screen(true); YOGClientLobbyScreen lobby(&screen, client); YOGClientOptionsScreen options(&screen, client); YOGClientMapDownloadScreen maps(&screen, client); int rc = screen.execute(globalContainer->gfx, 40); if(rc == YOGClientLobbyScreen::ConnectionLost) endExecute(ConnectionLost); else if(rc == -1) endExecute(-1); else endExecute(LoggedIn); }
void SFMLmultigameButton::click(SFMLshape *) { ClientManager *client = ClientManager::getInstance(); gameOptions *opts = gameOptions::getGameOptions(); menuManager *menuManager = menuManager::getInst(); TickTimer _timer(5, std::bind(&SFMLmultigameButton::outTimeLobbyAnswer, this)); if (client->CurrentLobby) return ; try { client->askJoinGame(_text.getString().toAnsiString(), opts->getNickName()); client->CurrentLobby = new Lobby(_text.getString().toAnsiString(), "UNDEFINED", opts->getNickName()); while (client->CurrentLobby && client->CurrentLobby->isConfirmed() == false) { _timer.update(); client->handleNetwork(); std::cout << "Checking" << std::endl; } std::cout << client->CurrentLobby << std::endl; if (client->CurrentLobby) { SFMLmultiplayerLobbyMenu lobby(GUEST); menuManager->goTo("MultiplayerLobby"); lobby.launch(); } } catch (std::runtime_error &) {} std::cout << "Try to deleting" << std::endl; if (client->CurrentLobby) { std::cout << "delete" << std::endl; delete client->CurrentLobby; client->CurrentLobby = nullptr; } }
int main(int argc, char ** argv) { // Checking args if(argc > 1) return FAILURE; std::cout << "\nRunning program : " << argv[0] << "\n" << std::endl; // Starting load of heavy resources // Launching thread ResourceLoader rLoader(DEBUG); rLoader.start(); // Creating window sf::RenderWindow window(sf::VideoMode(WINDOW_WIDTH, WINDOW_HEIGHT), WINDOW_NAME, sf::Style::Titlebar); // Window framerate - Default : 120 fps window.setFramerateLimit(WINDOW_FPS); // Starting some videos while loading res SplashScreen splash(DEBUG); //splash.start(&window); // Getting loaded resources // Wait if not finished while(!rLoader.getLoadState()) sf::sleep(sf::milliseconds(WAIT_TIME)); ManagerGroup * managerGroup = rLoader.getManager(); // Creating menu LoginMenu loginMenu(DEBUG, managerGroup); //Creating lobby Lobby lobby(DEBUG, managerGroup); //Creating warmUp WarmUp warmUp(DEBUG, managerGroup); //Creating Game Game game(DEBUG, managerGroup); // Setting main target managerGroup->ptr_targetManager->isOnLoginMenu(); sf::Clock clock; while (window.isOpen()) { // Exiting program if(!managerGroup->ptr_targetManager->isExit()) { managerGroup->ptr_musicManager->stopPlaylist(); window.close(); continue; } double elapsedTime = clock.getElapsedTime().asSeconds(); clock.restart().asMilliseconds(); window.clear(); sf::Event event; while (window.pollEvent(event)) { if (event.type == sf::Event::Closed) window.close(); } // Updating game logic loginMenu.update(&window, &event, elapsedTime); lobby.update(&window, &event, elapsedTime); warmUp.update(&window, &event, elapsedTime); game.update(&window, &event, elapsedTime); managerGroup->ptr_musicManager->update(); window.display(); } return SUCCESS; }
void serverlogin(){ int badserver; int field = 0, pos = 0, len = 0, addresslen = 0, usernamelen = 0, key = 0; char address[33] = ""; int i; char username[17] = ""; int j; while(1){ i = strlen(address); j = strlen(username); if (field) len = usernamelen; else len = addresslen; xt_par0(XT_CH_NORMAL); SETPOS(ROWS / 2 - 3, COLS / 2 - 30); printf("%s Server Connect %s", XT_CH_INVERSE,XT_CH_NORMAL); SETPOS(ROWS / 2 - 2, COLS / 2 - 30); printf("%s %s %s %s", XT_CH_INVERSE,XT_CH_NORMAL, XT_CH_INVERSE,XT_CH_NORMAL); SETPOS(ROWS / 2 - 1, COLS / 2 - 30); printf("%s %s Address: %s %s %s %s", XT_CH_INVERSE,XT_CH_NORMAL, XT_CH_UNDERLINE,XT_CH_NORMAL, XT_CH_INVERSE,XT_CH_NORMAL); SETPOS(ROWS / 2 - 1, COLS / 2 - 17); xt_par0(XT_CH_UNDERLINE); printf("%s", address); xt_par0(XT_CH_NORMAL); SETPOS(ROWS / 2, COLS / 2 - 30); printf("%s %s %s %s", XT_CH_INVERSE,XT_CH_NORMAL, XT_CH_INVERSE,XT_CH_NORMAL); SETPOS(ROWS / 2 + 1, COLS / 2 - 30); printf("%s %s Username: %s %s %s %s", XT_CH_INVERSE,XT_CH_NORMAL, XT_CH_UNDERLINE, XT_CH_NORMAL, XT_CH_INVERSE,XT_CH_NORMAL); SETPOS(ROWS / 2 + 1, COLS / 2 - 16); xt_par0(XT_CH_UNDERLINE); printf("%s", username); xt_par0(XT_CH_NORMAL); SETPOS(ROWS / 2 + 2, COLS / 2 - 30); printf("%s %s %s %s", XT_CH_INVERSE,XT_CH_NORMAL, XT_CH_INVERSE,XT_CH_NORMAL); SETPOS(ROWS / 2 + 3, COLS / 2 - 30); printf("%s Esc to go back, Enter to connect, Up/Down to switch fields %s", XT_CH_INVERSE, XT_CH_NORMAL); fflush(stdout); if (addresslen < 32) { xt_par0(XT_CH_NORMAL); if (pos < 32) xt_par0(XT_CH_UNDERLINE); SETPOS(ROWS / 2 - 1, COLS / 2 - 17 + addresslen); putchar(' '); } if (usernamelen < 16) { xt_par0(XT_CH_NORMAL); if (pos < 16) xt_par0(XT_CH_UNDERLINE); SETPOS(ROWS / 2 + 1, COLS / 2 - 16 + usernamelen); putchar(' '); } xt_par0(XT_CH_NORMAL); switch (field) { case 0: SETPOS(ROWS / 2 - 1, COLS / 2 - 17 + pos); break; case 1: SETPOS(ROWS / 2 + 1, COLS / 2 - 16 + pos); break; } while((key = getkey()) == KEY_NOTHING); switch(key){ case KEY_ENTER: { if (i == 0 || j < 2) break; badserver = 0; sockfd = make_connection(address); if (sockfd < 0) badserver = 1; else if (transmit(sockfd, CMD_CONNECT, username) < 0) badserver = 1; else { int command; char* buffer; if (receive(sockfd, &command, &buffer) < 0) badserver = 1; else { if (command == CMD_CONNECT) our_id = atoi(buffer); else badserver = 1; free(buffer); } } if (badserver) { xt_par0(XT_CH_NORMAL); SETPOS(ROWS / 2 - 3, COLS / 2 - 30); printf("%s Server Connect %s", XT_CH_INVERSE,XT_CH_NORMAL); SETPOS(ROWS / 2 - 2, COLS / 2 - 30); printf("%s %s %s %s", XT_CH_INVERSE,XT_CH_NORMAL, XT_CH_INVERSE,XT_CH_NORMAL); SETPOS(ROWS / 2 - 1, COLS / 2 - 30); printf("%s %s Address: %s%s%s %s %s", XT_CH_INVERSE,XT_CH_NORMAL, XT_CH_UNDERLINE, address, XT_CH_NORMAL, XT_CH_INVERSE,XT_CH_NORMAL); SETPOS(ROWS / 2, COLS / 2 - 30); printf("%s %s %s %s", XT_CH_INVERSE,XT_CH_NORMAL, XT_CH_INVERSE,XT_CH_NORMAL); SETPOS(ROWS / 2 + 1, COLS / 2 - 30); printf("%s %s Server not found on this address. %s %s", XT_CH_INVERSE,XT_CH_NORMAL, XT_CH_INVERSE,XT_CH_NORMAL); SETPOS(ROWS / 2 + 2, COLS / 2 - 30); printf("%s %s %s %s", XT_CH_INVERSE,XT_CH_NORMAL, XT_CH_INVERSE,XT_CH_NORMAL); SETPOS(ROWS / 2 + 3, COLS / 2 - 30); printf("%s Esc to go back %s", XT_CH_INVERSE, XT_CH_NORMAL); fflush(stdout); break; } xt_par0(XT_CLEAR_SCREEN); lobby(); close(sockfd); return; } case 27: //ESC xt_par0(XT_CLEAR_SCREEN); //return 0; return; case KEY_UP: case KEY_DOWN: field = !field; if (field) len = usernamelen; else len = addresslen; pos = 0; break; case KEY_LEFT: if (pos > 0){ pos--; } break; case KEY_RIGHT: if (pos < len){ pos++; } break; case KEY_BACKSPACE: if (field && pos > 0) { username[--pos] = ' '; username[usernamelen--] = '\0'; for (i = pos + 1; i <= usernamelen; i++) { username[i-1] = username[i]; } } else if (!field && pos > 0) { address[--pos] = ' '; address[addresslen--] = '\0'; for (i = pos + 1; i <= addresslen; i++) { address[i-1] = address[i]; } } break; default: if (key >= ' ' && key <= '~') { if (field && usernamelen < 16) { if (pos != usernamelen) { for (i = usernamelen; i > pos; i--) { username[i] = username[i-1]; } } username[pos] = key; pos++; putchar(key); usernamelen++; } else if (!field && addresslen < 32) { if (pos != addresslen) { for (i = addresslen; i > pos; i--) { address[i] = address[i-1]; } } address[pos] = key; pos++; putchar(key); addresslen++; } } break; } } }