Exemplo n.º 1
0
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);
}
Exemplo n.º 2
0
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;
	}
}
Exemplo n.º 3
0
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;
}
Exemplo n.º 4
0
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;
        }
    }
}