From ddbf1ea7703ac8ed6762fee63e8d9095d551482c Mon Sep 17 00:00:00 2001 From: wraitii Date: Sun, 6 Jun 2021 07:44:20 +0000 Subject: [PATCH] Hotfix 4ffc005a7f A GUI sprite can have e.g. "color:" and "stretched:", but 'sprite' was moved from after the first call. Refs #6206 Differential Revision: https://code.wildfiregames.com/D4094 This was SVN commit r25698. --- source/gui/GUIRenderer.cpp | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/source/gui/GUIRenderer.cpp b/source/gui/GUIRenderer.cpp index 6832b351f6..3c7ff3d03b 100644 --- a/source/gui/GUIRenderer.cpp +++ b/source/gui/GUIRenderer.cpp @@ -111,7 +111,6 @@ void GUIRenderer::UpdateDrawCallCache(const CGUI& pGUI, DrawCalls& Calls, const } sprite->AddImage(std::move(image)); - Sprites[SpriteName] = std::move(sprite); } else if (SpriteName.Find("cropped:") != -1) { @@ -136,7 +135,6 @@ void GUIRenderer::UpdateDrawCallCache(const CGUI& pGUI, DrawCalls& Calls, const } sprite->AddImage(std::move(image)); - Sprites[SpriteName] = std::move(sprite); } if (SpriteName.Find("color:") != -1) { @@ -165,17 +163,14 @@ void GUIRenderer::UpdateDrawCallCache(const CGUI& pGUI, DrawCalls& Calls, const } sprite->AddImage(std::move(image)); - Sprites[SpriteName] = std::move(sprite); } - it = Sprites.find(SpriteName); - - // Otherwise, just complain and give up: - if (it == Sprites.end()) + if (sprite->m_Images.empty()) { - sprite.reset(); LOGERROR("Trying to use a sprite that doesn't exist (\"%s\").", SpriteName.c_str()); return; } + else + it = Sprites.insert_or_assign(SpriteName, std::move(sprite)).first; } Calls.reserve(it->second->m_Images.size());