diff --git a/src/Library/CreatureData/SpeciesVariant.hpp b/src/Library/CreatureData/SpeciesVariant.hpp index 6fbd12b..5232968 100644 --- a/src/Library/CreatureData/SpeciesVariant.hpp +++ b/src/Library/CreatureData/SpeciesVariant.hpp @@ -47,9 +47,16 @@ namespace CreatureLib::Library { [[nodiscard]] const size_t GetTalentCount() const { return _talents.Count(); } [[nodiscard]] const size_t GetSecretTalentCount() const { return _secretTalents.Count(); } [[nodiscard]] const ArbUt::CaseInsensitiveConstString& GetTalent(const TalentIndex& index) const { - if (index.IsSecret()) - return _secretTalents.At(index.GetIndex()); - return _talents.At(index.GetIndex()); + if (index.IsSecret() && _secretTalents.Count() > 0) { + auto i = index.GetIndex(); + if (i > _secretTalents.Count()) + i = _secretTalents.Count(); + return _secretTalents.At(i); + } + auto i = index.GetIndex(); + if (i > _talents.Count()) + i = _talents.Count(); + return _talents.At(i); } [[nodiscard]] const TalentIndex GetTalentIndex(const ArbUt::CaseInsensitiveConstString& talent) const;