From 80708040a4e9bb10ed49fd4958567a22eb4f0856 Mon Sep 17 00:00:00 2001 From: Deukhoofd Date: Sun, 9 Feb 2020 12:04:59 +0100 Subject: [PATCH] When setting variant of species with the same name of already existing variant, delete previous variant. --- src/Library/CreatureData/CreatureSpecies.hpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/Library/CreatureData/CreatureSpecies.hpp b/src/Library/CreatureData/CreatureSpecies.hpp index 6302b44..9fd4bf2 100644 --- a/src/Library/CreatureData/CreatureSpecies.hpp +++ b/src/Library/CreatureData/CreatureSpecies.hpp @@ -40,7 +40,13 @@ namespace CreatureLib::Library { [[nodiscard]] Gender GetRandomGender(Core::Random& rand) const; [[nodiscard]] const std::string& GetName() const; - void SetVariant(const std::string& name, const SpeciesVariant* variant) { _variants.insert({name, variant}); } + void SetVariant(const std::string& name, const SpeciesVariant* variant) { + auto find = _variants.find(name); + if (find != _variants.end()) { + delete find->second; + } + _variants[name] = variant; + } }; }