X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fapp%2FWorldState.cpp;h=372b659f8975b4c564bc73a8d91485abb6eafd69;hb=65dbb0391afb6867bd9b388c6351b947a022abad;hp=6ca9959c7de78c634316e1c46e78d7d0e53d1180;hpb=afd253b2dd10fdf2d4655d3d4a5766e6aa8c1a2c;p=blank.git diff --git a/src/app/WorldState.cpp b/src/app/WorldState.cpp index 6ca9959..372b659 100644 --- a/src/app/WorldState.cpp +++ b/src/app/WorldState.cpp @@ -10,16 +10,24 @@ namespace blank { WorldState::WorldState( Environment &env, const Interface::Config &ic, - const World::Config &wc + const World::Config &wc, + const WorldSave &save ) : env(env) -, world(wc) +, world(env.assets, wc, save) , spawner(world) -, interface(ic, env, world) { +, interface(ic, env, world) +, preload(env, world.Loader()) +, unload(env, world.Loader()) { } +void WorldState::OnEnter() { + env.state.Push(&preload); +} + + void WorldState::Handle(const SDL_Event &event) { switch (event.type) { case SDL_KEYDOWN: @@ -40,6 +48,9 @@ void WorldState::Handle(const SDL_Event &event) { case SDL_MOUSEWHEEL: interface.Handle(event.wheel); break; + case SDL_QUIT: + env.state.Switch(&unload); + break; default: break; }