X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fapp%2FUnloadState.cpp;h=43aae056f27727ebc036e75d69dc044549dcec6f;hb=38a4cffc0b6aa58e49d24c06aad7bee14cb6515d;hp=dfe270ed61f39301032abd3a6a3121f8df017363;hpb=5cd73a8f2b40e59ec13aa2a6af33bc8e2a6b9a6c;p=blank.git diff --git a/src/app/UnloadState.cpp b/src/app/UnloadState.cpp index dfe270e..43aae05 100644 --- a/src/app/UnloadState.cpp +++ b/src/app/UnloadState.cpp @@ -1,20 +1,24 @@ #include "UnloadState.hpp" #include "Environment.hpp" +#include "../io/WorldSave.hpp" #include "../world/ChunkLoader.hpp" -#include "../world/WorldSave.hpp" namespace blank { -UnloadState::UnloadState(Environment &env, ChunkLoader &loader) +UnloadState::UnloadState( + Environment &env, + ChunkStore &chunks, + const WorldSave &save) : env(env) -, loader(loader) +, chunks(chunks) +, save(save) , progress(env.assets.large_ui_font) -, cur(loader.Loaded().begin()) -, end(loader.Loaded().end()) +, cur(chunks.begin()) +, end(chunks.end()) , done(0) -, total(loader.Loaded().size()) +, total(chunks.NumLoaded()) , per_update(64) { progress.Position(glm::vec3(0.0f), Gravity::CENTER); progress.Template("Unloading chunks: %d/%d (%d%%)"); @@ -22,10 +26,10 @@ UnloadState::UnloadState(Environment &env, ChunkLoader &loader) void UnloadState::OnResume() { - cur = loader.Loaded().begin(); - end = loader.Loaded().end(); + cur = chunks.begin(); + end = chunks.end(); done = 0; - total = loader.Loaded().size(); + total = chunks.NumLoaded(); } @@ -36,7 +40,7 @@ void UnloadState::Handle(const SDL_Event &) { void UnloadState::Update(int dt) { for (std::size_t i = 0; i < per_update && cur != end; ++i, ++cur, ++done) { if (cur->ShouldUpdateSave()) { - loader.SaveFile().Write(*cur); + save.Write(*cur); } } if (cur == end) {