From c9200dfbece69507e7a9a22af5a73d3f010bc14f Mon Sep 17 00:00:00 2001 From: LaG1924 <12997935+LaG1924@users.noreply.github.com> Date: Sat, 17 Mar 2018 20:53:05 +0500 Subject: Optimized update of RendererSection --- src/RendererWorld.cpp | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) (limited to 'src/RendererWorld.cpp') 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(); }); -- cgit v1.2.3