1
0
mirror of https://github.com/rwengine/openrw.git synced 2024-09-20 01:11:46 +02:00
openrw/rwgame/loadingstate.cpp
Christoph Heiss 649f7b144d Replace SFML with SDL2
This entirely replaces all remaining SFML pieces with SDL2 and
brings OpenRW up to OpenGL 3.3
2016-06-22 12:29:39 +02:00

62 lines
1.1 KiB
C++

#include "loadingstate.hpp"
#include "RWGame.hpp"
#include <render/OpenGLRenderer.hpp>
LoadingState::LoadingState(RWGame* game)
: State(game), next(nullptr)
{
}
void LoadingState::enter()
{
// Load Item definitions
for( auto& def : game->getGameData()->ideLocations )
{
game->getGameData()->loadObjects(def.second);
}
game->newGame();
getWindow().hideCursor();
}
void LoadingState::exit()
{
}
void LoadingState::tick(float dt)
{
// If background work is completed, switch to the next state
if( getWorld()->_work->isEmpty() ) {
StateManager::get().exec(next);
}
}
bool LoadingState::shouldWorldUpdate()
{
return false;
}
void LoadingState::setNextState(State* nextState)
{
next = nextState;
}
void LoadingState::handleEvent(const SDL_Event& e)
{
State::handleEvent(e);
}
void LoadingState::draw(GameRenderer* r)
{
// Display some manner of loading screen.
TextRenderer::TextInfo ti;
ti.text = "Loading...";
auto size = r->getRenderer()->getViewport();
ti.size = 25.f;
ti.screenPosition = glm::vec2( 50.f, size.y - ti.size - 50.f );
ti.font = 2;
ti.baseColour = glm::u8vec3(255);
r->text.renderText(ti);
}