mirror of
https://github.com/Laupetin/OpenAssetTools.git
synced 2025-04-21 00:25:44 +00:00
Fix not straight up inserting scriptstrings on loading from zone
This commit is contained in:
parent
4380a6c9f2
commit
5fbcbaf3c7
@ -89,7 +89,7 @@ XAssetInfoGeneric* AssetLoadingManager::LoadAssetDependency(const asset_type_t a
|
|||||||
// Make sure any used script string is available in the created zone
|
// Make sure any used script string is available in the created zone
|
||||||
// The replacement of the scr_string_t values will be done upon writing
|
// The replacement of the scr_string_t values will be done upon writing
|
||||||
for(auto scrString : existingAsset->m_used_script_strings)
|
for(auto scrString : existingAsset->m_used_script_strings)
|
||||||
m_context.m_zone->m_script_strings.AddScriptString(existingAsset->m_zone->m_script_strings[scrString]);
|
m_context.m_zone->m_script_strings.AddOrGetScriptString(existingAsset->m_zone->m_script_strings[scrString]);
|
||||||
|
|
||||||
AddAsset(existingAsset->m_type, existingAsset->m_name, existingAsset->m_ptr, std::move(dependencies), existingAsset->m_used_script_strings, existingAsset->m_zone);
|
AddAsset(existingAsset->m_type, existingAsset->m_name, existingAsset->m_ptr, std::move(dependencies), existingAsset->m_used_script_strings, existingAsset->m_zone);
|
||||||
auto* lastDependency = m_last_dependency_loaded;
|
auto* lastDependency = m_last_dependency_loaded;
|
||||||
|
@ -3,7 +3,14 @@
|
|||||||
#include <stdexcept>
|
#include <stdexcept>
|
||||||
#include <sstream>
|
#include <sstream>
|
||||||
|
|
||||||
scr_string_t ZoneScriptStrings::AddScriptString(const std::string& value)
|
void ZoneScriptStrings::AddScriptString(const std::string& value)
|
||||||
|
{
|
||||||
|
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())
|
if (m_scr_strings.empty())
|
||||||
{
|
{
|
||||||
|
@ -14,8 +14,9 @@ class ZoneScriptStrings
|
|||||||
std::unordered_map<std::string, scr_string_t> m_scr_string_lookup;
|
std::unordered_map<std::string, scr_string_t> m_scr_string_lookup;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
scr_string_t AddScriptString(const std::string& value);
|
void AddScriptString(const std::string& value);
|
||||||
scr_string_t GetScriptString(const std::string& value) const;
|
scr_string_t AddOrGetScriptString(const std::string& value);
|
||||||
|
_NODISCARD scr_string_t GetScriptString(const std::string& value) const;
|
||||||
_NODISCARD size_t Count() const;
|
_NODISCARD size_t Count() const;
|
||||||
_NODISCARD bool Empty() const;
|
_NODISCARD bool Empty() const;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user