mirror of
https://github.com/Laupetin/OpenAssetTools.git
synced 2025-06-10 23:08:05 -05:00
Add ZoneScriptString class to store zone script strings
This commit is contained in:
@ -50,7 +50,7 @@ ContentLoader::ContentLoader()
|
||||
|
||||
void ContentLoader::LoadScriptStringList(const bool atStreamStart)
|
||||
{
|
||||
assert(m_zone->m_script_strings.empty());
|
||||
assert(m_zone->m_script_strings.Empty());
|
||||
|
||||
m_stream->PushBlock(XFILE_BLOCK_VIRTUAL);
|
||||
|
||||
@ -69,18 +69,18 @@ void ContentLoader::LoadScriptStringList(const bool atStreamStart)
|
||||
{
|
||||
if (varScriptStringList->strings[i])
|
||||
{
|
||||
m_zone->m_script_strings.emplace_back(varScriptStringList->strings[i]);
|
||||
m_zone->m_script_strings.AddScriptString(varScriptStringList->strings[i]);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_zone->m_script_strings.emplace_back("");
|
||||
m_zone->m_script_strings.AddScriptString("");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
m_stream->PopBlock();
|
||||
|
||||
assert(m_zone->m_script_strings.size() <= SCR_STRING_MAX + 1);
|
||||
assert(m_zone->m_script_strings.Count() <= SCR_STRING_MAX + 1);
|
||||
}
|
||||
|
||||
void ContentLoader::LoadXAsset(const bool atStreamStart)
|
||||
|
@ -63,7 +63,7 @@ ContentLoader::ContentLoader()
|
||||
|
||||
void ContentLoader::LoadScriptStringList(const bool atStreamStart)
|
||||
{
|
||||
assert(m_zone->m_script_strings.empty());
|
||||
assert(m_zone->m_script_strings.Empty());
|
||||
|
||||
m_stream->PushBlock(XFILE_BLOCK_VIRTUAL);
|
||||
|
||||
@ -82,18 +82,18 @@ void ContentLoader::LoadScriptStringList(const bool atStreamStart)
|
||||
{
|
||||
if (varScriptStringList->strings[i])
|
||||
{
|
||||
m_zone->m_script_strings.emplace_back(varScriptStringList->strings[i]);
|
||||
m_zone->m_script_strings.AddScriptString(varScriptStringList->strings[i]);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_zone->m_script_strings.emplace_back("");
|
||||
m_zone->m_script_strings.AddScriptString("");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
m_stream->PopBlock();
|
||||
|
||||
assert(m_zone->m_script_strings.size() <= SCR_STRING_MAX + 1);
|
||||
assert(m_zone->m_script_strings.Count() <= SCR_STRING_MAX + 1);
|
||||
}
|
||||
|
||||
void ContentLoader::LoadXAsset(const bool atStreamStart)
|
||||
|
@ -30,11 +30,12 @@ void AssetLoader::AddDependency(XAssetInfoGeneric* assetInfo)
|
||||
|
||||
scr_string_t AssetLoader::UseScriptString(const scr_string_t scrString)
|
||||
{
|
||||
assert(scrString < m_zone->m_script_strings.size());
|
||||
assert(scrString < m_zone->m_script_strings.Count());
|
||||
|
||||
if (scrString >= m_zone->m_script_strings.size())
|
||||
if (scrString >= m_zone->m_script_strings.Count())
|
||||
return 0u;
|
||||
|
||||
m_used_script_strings.emplace(scrString);
|
||||
return scrString;
|
||||
}
|
||||
|
||||
@ -55,7 +56,19 @@ void AssetLoader::LoadScriptStringArray(const bool atStreamStart, const size_t c
|
||||
|
||||
XAssetInfoGeneric* AssetLoader::LinkAsset(std::string name, void* asset)
|
||||
{
|
||||
return m_zone->m_pools->AddAsset(m_asset_type, std::move(name), asset, m_dependencies);
|
||||
std::vector<scr_string_t> usedScriptStrings;
|
||||
if(!m_used_script_strings.empty())
|
||||
{
|
||||
for(auto scrString : m_used_script_strings)
|
||||
{
|
||||
usedScriptStrings.push_back(scrString);
|
||||
}
|
||||
|
||||
std::sort(usedScriptStrings.begin(), usedScriptStrings.end());
|
||||
m_used_script_strings.clear();
|
||||
}
|
||||
|
||||
return m_zone->m_pools->AddAsset(m_asset_type, std::move(name), asset, std::move(m_dependencies), std::move(usedScriptStrings));
|
||||
}
|
||||
|
||||
XAssetInfoGeneric* AssetLoader::GetAssetInfo(std::string name) const
|
||||
|
@ -1,5 +1,8 @@
|
||||
#pragma once
|
||||
|
||||
#include <vector>
|
||||
#include <unordered_set>
|
||||
|
||||
#include "Zone/ZoneTypes.h"
|
||||
#include "Pool/XAssetInfo.h"
|
||||
#include "ContentLoaderBase.h"
|
||||
@ -9,6 +12,7 @@ class AssetLoader : public ContentLoaderBase
|
||||
asset_type_t m_asset_type;
|
||||
|
||||
std::vector<XAssetInfoGeneric*> m_dependencies;
|
||||
std::unordered_set<scr_string_t> m_used_script_strings;
|
||||
|
||||
protected:
|
||||
scr_string_t* varScriptString;
|
||||
|
Reference in New Issue
Block a user