X-Git-Url: https://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fapp%2FWorldState.cpp;h=372b659f8975b4c564bc73a8d91485abb6eafd69;hb=f5e5e8522b94a6b81a137d4bca7665ef15bcd2c6;hp=b686ab28b058f14608e67b1ee58ef0d9ec587ad4;hpb=7bb75960dbf9bfdee9ac865384aca81791b3da5c;p=blank.git diff --git a/src/app/WorldState.cpp b/src/app/WorldState.cpp index b686ab2..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(env.assets, 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; }