Exemple #1
0
void LoginState::attemptLogin(const std::string &ipAddress, const std::string &playerName)
  {
    int ret;
    net::NetData *netdata = NULL;
    // First, save our login settings, overwriting the previous file
    std::ofstream lastLoginSettings((bundlePath() + "login.cfg").c_str(), std::ios::trunc);
    lastLoginSettings << "IPaddress="<<ipAddress<<std::endl;
    lastLoginSettings << "PlayerName="<<playerName<<std::endl;
    lastLoginSettings << "PlayerColor="<<pGui->getColorSliderValue()<<std::endl;
    lastLoginSettings.close();

    // attempt to actually connect to the server
    netdata = new net::NetData(net::NetData::CLIENT);

    pGui->addConsoleItem("Connecting to server " + ipAddress);

    ret = netdata->connect(ipAddress, 50740);

    switch(ret) {
        case 1:
            // success
            pGui->addConsoleItem("Connection to server succeeded");
            break;
        default:
            std::stringstream out;
            out << ret;
            pGui->addConsoleItem("Connection to server failed: " + out.str());
            return;
    }

    netdata->me.nick = playerName;
    netdata->me.color = getColorFromPseudoHue(pGui->getColorSliderValue());
    netdata->me.changed = true;         // Mark this info for transmission
    netdata->sendChanges();             // Send changes without waiting!

    // Then, login.

    getStateManager()->loginToGame(netdata);
  }
Exemple #2
0
Paused::Paused(StateManager& stateManager, State* parent)
    : State(stateManager, parent)
{
    ResourceManager& resMngr = getStateManager().getSharedContext().resourceManager;
    const sf::Vector2u& windowSize = getStateManager().getSharedContext().window.getSize();

    background.setTexture(resMngr.getTexture(Textures::ID::Paused));
    background.setTextureRect(sf::IntRect(2, 2, 32, 32));
    background.setScale
    (   windowSize.x / background.getLocalBounds().width,
        windowSize.y / background.getLocalBounds().width
    );

    constexpr int cw = 491;
    constexpr int ch = 295;
    float cx = (windowSize.x / 2) - (cw / 2);
    float cy = (windowSize.y / 2) - (ch / 2);

    constexpr int mc = 75;
    int mx = cx + 45;
    int my = cy + 43;

    pausedMenu = std::make_unique<GraphicMenu>
    (
        std::list<GraphicMenu::MenuOptionData>
        {
            GraphicMenu::MenuOptionData
            {
                [&] ()
                {
                    getStateManager().getSharedContext().soundPlayer.play
                    (
                        Sounds::ID::MenuClose
                    );
                    getStateManager().setCurrentState
                    (
                        States::ID::Starting,
                        Transitions::ID::CircleOpen,
                        sf::milliseconds(500)
                    );
                },
                sf::Vector2f(mx, my),
                sf::IntRect(259, 427, 255, 54),
                sf::IntRect(2, 427, 255, 54)
            },
            GraphicMenu::MenuOptionData
            {
                [&] ()
                {
                    getStateManager().getSharedContext().soundPlayer.play
                    (
                        Sounds::ID::MenuOpen
                    );
                    getStateManager().setCurrentState
                    (
                        States::ID::RestartConfirm,
                        Transitions::ID::CircleClose,
                        sf::milliseconds(500)
                    );
                },
                sf::Vector2f(mx, my + (mc * 1)),
                sf::IntRect(304, 367, 300, 58),
                sf::IntRect(2, 367, 300, 58)
            },
            GraphicMenu::MenuOptionData
            {
                [&] ()
                {
                    getStateManager().getSharedContext().soundPlayer.play
                    (
                        Sounds::ID::MenuOpen
                    );
                    getStateManager().setCurrentState
                    (
                        States::ID::QuitConfirm,
                        Transitions::ID::CircleClose,
                        sf::milliseconds(500)
                    );
                },
                sf::Vector2f(mx, my + (mc  * 2)),
                sf::IntRect(173, 299, 169, 66),
                sf::IntRect(2, 299, 169, 66)
            }
        },
        GraphicMenu::MenuContainerData
        {
            sf::Vector2f(cx, cy),
            sf::IntRect(36, 2, 491, 295)
        },
        resMngr.getTexture(Textures::ID::Paused)
    );

    if (!snapShot.create(windowSize.x, windowSize.y))
    {
        throw std::runtime_error("Can not create Paused Render Texture");
    }
}
Exemple #3
0
VertexArrayImpl *ContextGL::createVertexArray(const gl::VertexArrayState &data)
{
    return new VertexArrayGL(data, getFunctions(), getStateManager());
}
Exemple #4
0
BufferImpl *ContextGL::createBuffer(const gl::BufferState &state)
{
    return new BufferGL(state, getFunctions(), getStateManager());
}
Exemple #5
0
RenderbufferImpl *ContextGL::createRenderbuffer(const gl::RenderbufferState &state)
{
    return new RenderbufferGL(state, getFunctions(), getWorkaroundsGL(), getStateManager(),
                              mRenderer->getBlitter(), getNativeTextureCaps());
}
Exemple #6
0
ProgramImpl *ContextGL::createProgram(const gl::ProgramState &data)
{
    return new ProgramGL(data, getFunctions(), getWorkaroundsGL(), getStateManager(),
                         getExtensions().pathRendering, mRenderer);
}
Exemple #7
0
TransformFeedbackImpl *ContextGL::createTransformFeedback(const gl::TransformFeedbackState &state)
{
    return new TransformFeedbackGL(state, getFunctions(), getStateManager());
}
Exemple #8
0
BufferImpl *ContextGL::createBuffer()
{
    return new BufferGL(getFunctions(), getStateManager());
}
Exemple #9
0
QueryImpl *ContextGL::createQuery(GLenum type)
{
    return new QueryGL(type, getFunctions(), getStateManager());
}
Exemple #10
0
TextureImpl *ContextGL::createTexture(const gl::TextureState &state)
{
    return new TextureGL(state, getFunctions(), getWorkaroundsGL(), getStateManager(),
                         mRenderer->getBlitter());
}
Exemple #11
0
RenderbufferImpl *ContextGL::createRenderbuffer()
{
    return new RenderbufferGL(getFunctions(), getWorkaroundsGL(), getStateManager(),
                              getNativeTextureCaps());
}
Exemple #12
0
FramebufferImpl *ContextGL::createFramebuffer(const gl::FramebufferState &data)
{
    return new FramebufferGL(data, getFunctions(), getStateManager(), getWorkaroundsGL(),
                             mRenderer->getBlitter(), false);
}
Exemple #13
0
void StateGame::goToPause(EventDetails * evDetails)
{
	getStateManager()->switchTo(StateType::Pause);
}
Exemple #14
0
void StateGame::goToMainMenu(EventDetails * evDetails)
{
	getStateManager()->switchTo(StateType::MainMenu);
}
Exemple #15
0
void StateGame::draw()
{
	
	mWorld.render(*(getStateManager()->getStateContext()->mWindow->getRenderWindow()));
}
Exemple #16
0
StateGame::~StateGame()
{
	EventManager* evManager = getStateManager()->getStateContext()->mEventManager;
	evManager->removeCallback(StateType::Game, "KeyEscape");
	evManager->removeCallback(StateType::Game, "KeyP");
}