X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fapp%2FUnloadState.cpp;fp=src%2Fapp%2FUnloadState.cpp;h=43aae056f27727ebc036e75d69dc044549dcec6f;hb=13e676a6e49128ebc6c63b8dd08bef51d360e8e9;hp=534a14acb4a0b9496382fb6023b2ea3dd9418a35;hpb=43820582217f7e4b707d98f2e69d969eb77fc7c3;p=blank.git diff --git a/src/app/UnloadState.cpp b/src/app/UnloadState.cpp index 534a14a..43aae05 100644 --- a/src/app/UnloadState.cpp +++ b/src/app/UnloadState.cpp @@ -7,14 +7,18 @@ 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) {