diff options
author | LaG1924 <12997935+LaG1924@users.noreply.github.com> | 2018-03-17 16:53:05 +0100 |
---|---|---|
committer | LaG1924 <12997935+LaG1924@users.noreply.github.com> | 2018-03-17 16:53:05 +0100 |
commit | c9200dfbece69507e7a9a22af5a73d3f010bc14f (patch) | |
tree | 2db8f6cafb3a877aa502037ca48e39b2c0ce3428 /src/RendererWorld.cpp | |
parent | New lock-free RendererSectionData parsing (diff) | |
download | AltCraft-c9200dfbece69507e7a9a22af5a73d3f010bc14f.tar AltCraft-c9200dfbece69507e7a9a22af5a73d3f010bc14f.tar.gz AltCraft-c9200dfbece69507e7a9a22af5a73d3f010bc14f.tar.bz2 AltCraft-c9200dfbece69507e7a9a22af5a73d3f010bc14f.tar.lz AltCraft-c9200dfbece69507e7a9a22af5a73d3f010bc14f.tar.xz AltCraft-c9200dfbece69507e7a9a22af5a73d3f010bc14f.tar.zst AltCraft-c9200dfbece69507e7a9a22af5a73d3f010bc14f.zip |
Diffstat (limited to '')
-rw-r--r-- | src/RendererWorld.cpp | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/src/RendererWorld.cpp b/src/RendererWorld.cpp index 6349573..628680c 100644 --- a/src/RendererWorld.cpp +++ b/src/RendererWorld.cpp @@ -170,17 +170,15 @@ RendererWorld::RendererWorld(GameState* ptr) { auto it = sections.find(parsing[id].renderer.sectionPos); - if (it != sections.end() && parsing[id].renderer.hash == it->second.GetHash() && !parsing[id].renderer.forced) { - LOG(WARNING) << "Generated not necessary RendererSectionData: " << parsing[id].renderer.sectionPos; - return; - } - - if (it != sections.end()) - sections.erase(it); - - const RendererSectionData &data = parsing[id].renderer; - - sections.emplace(std::make_pair(parsing[id].renderer.sectionPos, RendererSection(data))); + if (it != sections.end()) { + if (parsing[id].renderer.hash == it->second.GetHash() && !parsing[id].renderer.forced) { + LOG(WARNING) << "Generated not necessary RendererSectionData: " << parsing[id].renderer.sectionPos; + parsing[id] = RendererWorld::SectionParsing(); + return; + } + it->second.UpdateData(parsing[id].renderer); + } else + sections.emplace(std::make_pair(parsing[id].renderer.sectionPos, RendererSection(parsing[id].renderer))); parsing[id] = RendererWorld::SectionParsing(); }); |