Fix not straight up inserting scriptstrings on loading from zone

This commit is contained in:
Jan
2021-03-23 00:42:41 +01:00
parent 4380a6c9f2
commit 5fbcbaf3c7
3 changed files with 13 additions and 5 deletions

View File

@ -3,9 +3,16 @@
#include <stdexcept>
#include <sstream>
scr_string_t ZoneScriptStrings::AddScriptString(const std::string& value)
void ZoneScriptStrings::AddScriptString(const std::string& value)
{
if(m_scr_strings.empty())
const auto newScrStringIndex = static_cast<scr_string_t>(m_scr_strings.size());
m_scr_strings.emplace_back(value);
m_scr_string_lookup[value] = newScrStringIndex;
}
scr_string_t ZoneScriptStrings::AddOrGetScriptString(const std::string& value)
{
if (m_scr_strings.empty())
{
m_scr_strings.emplace_back("");
m_scr_string_lookup[""] = static_cast<scr_string_t>(0);

View File

@ -14,8 +14,9 @@ class ZoneScriptStrings
std::unordered_map<std::string, scr_string_t> m_scr_string_lookup;
public:
scr_string_t AddScriptString(const std::string& value);
scr_string_t GetScriptString(const std::string& value) const;
void AddScriptString(const std::string& value);
scr_string_t AddOrGetScriptString(const std::string& value);
_NODISCARD scr_string_t GetScriptString(const std::string& value) const;
_NODISCARD size_t Count() const;
_NODISCARD bool Empty() const;