Fix not supporting nullptr scriptstrings

This commit is contained in:
Jan
2021-12-30 16:51:16 +01:00
parent 7283cc5640
commit 538c4be839
20 changed files with 209 additions and 142 deletions

View File

@ -45,13 +45,11 @@ void ContentWriter::CreateXAssetList(XAssetList& xAssetList, MemoryManager& memo
if (!m_zone->m_script_strings.Empty())
{
assert(m_zone->m_script_strings.Count() <= SCR_STRING_MAX + 1);
xAssetList.stringList.count = m_zone->m_script_strings.Count();
xAssetList.stringList.count = static_cast<int>(m_zone->m_script_strings.Count());
xAssetList.stringList.strings = static_cast<const char**>(memory.Alloc(sizeof(const char*) * m_zone->m_script_strings.Count()));
for (auto i = 0u; i < m_zone->m_script_strings.Count(); i++)
{
xAssetList.stringList.strings[i] = m_zone->m_script_strings[i].c_str();
}
xAssetList.stringList.strings[i] = m_zone->m_script_strings.CValue(i);
}
else
{
@ -62,7 +60,7 @@ void ContentWriter::CreateXAssetList(XAssetList& xAssetList, MemoryManager& memo
const auto assetCount = m_zone->m_pools->GetTotalAssetCount();
if (assetCount > 0)
{
xAssetList.assetCount = assetCount;
xAssetList.assetCount = static_cast<int>(assetCount);
xAssetList.assets = static_cast<XAsset*>(memory.Alloc(sizeof(XAsset) * assetCount));
const auto end = m_zone->m_pools->end();

View File

@ -55,13 +55,11 @@ void ContentWriter::CreateXAssetList(XAssetList& xAssetList, MemoryManager& memo
if (!m_zone->m_script_strings.Empty())
{
assert(m_zone->m_script_strings.Count() <= SCR_STRING_MAX + 1);
xAssetList.stringList.count = m_zone->m_script_strings.Count();
xAssetList.stringList.count = static_cast<int>(m_zone->m_script_strings.Count());
xAssetList.stringList.strings = static_cast<const char**>(memory.Alloc(sizeof(const char*) * m_zone->m_script_strings.Count()));
for (auto i = 0u; i < m_zone->m_script_strings.Count(); i++)
{
xAssetList.stringList.strings[i] = m_zone->m_script_strings[i].c_str();
}
xAssetList.stringList.strings[i] = m_zone->m_script_strings.CValue(i);
}
else
{
@ -72,7 +70,7 @@ void ContentWriter::CreateXAssetList(XAssetList& xAssetList, MemoryManager& memo
const auto assetCount = m_zone->m_pools->GetTotalAssetCount();
if (assetCount > 0)
{
xAssetList.assetCount = assetCount;
xAssetList.assetCount = static_cast<int>(assetCount);
xAssetList.assets = static_cast<XAsset*>(memory.Alloc(sizeof(XAsset) * assetCount));
const auto end = m_zone->m_pools->end();

View File

@ -60,13 +60,11 @@ void ContentWriter::CreateXAssetList(XAssetList& xAssetList, MemoryManager& memo
if (!m_zone->m_script_strings.Empty())
{
assert(m_zone->m_script_strings.Count() <= SCR_STRING_MAX + 1);
xAssetList.stringList.count = m_zone->m_script_strings.Count();
xAssetList.stringList.count = static_cast<int>(m_zone->m_script_strings.Count());
xAssetList.stringList.strings = static_cast<const char**>(memory.Alloc(sizeof(const char*) * m_zone->m_script_strings.Count()));
for (auto i = 0u; i < m_zone->m_script_strings.Count(); i++)
{
xAssetList.stringList.strings[i] = m_zone->m_script_strings[i].c_str();
}
xAssetList.stringList.strings[i] = m_zone->m_script_strings.CValue(i);
}
else
{
@ -77,7 +75,7 @@ void ContentWriter::CreateXAssetList(XAssetList& xAssetList, MemoryManager& memo
const auto assetCount = m_zone->m_pools->GetTotalAssetCount();
if (assetCount > 0)
{
xAssetList.assetCount = assetCount;
xAssetList.assetCount = static_cast<int>(assetCount);
xAssetList.assets = static_cast<XAsset*>(memory.Alloc(sizeof(XAsset) * assetCount));
const auto end = m_zone->m_pools->end();

View File

@ -52,13 +52,11 @@ void ContentWriter::CreateXAssetList(XAssetList& xAssetList, MemoryManager& memo
if (!m_zone->m_script_strings.Empty())
{
assert(m_zone->m_script_strings.Count() <= SCR_STRING_MAX + 1);
xAssetList.stringList.count = m_zone->m_script_strings.Count();
xAssetList.stringList.count = static_cast<int>(m_zone->m_script_strings.Count());
xAssetList.stringList.strings = static_cast<const char**>(memory.Alloc(sizeof(const char*) * m_zone->m_script_strings.Count()));
for (auto i = 0u; i < m_zone->m_script_strings.Count(); i++)
{
xAssetList.stringList.strings[i] = m_zone->m_script_strings[i].c_str();
}
xAssetList.stringList.strings[i] = m_zone->m_script_strings.CValue(i);
}
else
{
@ -69,7 +67,7 @@ void ContentWriter::CreateXAssetList(XAssetList& xAssetList, MemoryManager& memo
const auto assetCount = m_zone->m_pools->GetTotalAssetCount();
if (assetCount > 0)
{
xAssetList.assetCount = assetCount;
xAssetList.assetCount = static_cast<int>(assetCount);
xAssetList.assets = static_cast<XAsset*>(memory.Alloc(sizeof(XAsset) * assetCount));
const auto end = m_zone->m_pools->end();

View File

@ -68,13 +68,11 @@ void ContentWriter::CreateXAssetList(XAssetList& xAssetList, MemoryManager& memo
if (!m_zone->m_script_strings.Empty())
{
assert(m_zone->m_script_strings.Count() <= SCR_STRING_MAX + 1);
xAssetList.stringList.count = m_zone->m_script_strings.Count();
xAssetList.stringList.count = static_cast<int>(m_zone->m_script_strings.Count());
xAssetList.stringList.strings = static_cast<const char**>(memory.Alloc(sizeof(const char*) * m_zone->m_script_strings.Count()));
for (auto i = 0u; i < m_zone->m_script_strings.Count(); i++)
{
xAssetList.stringList.strings[i] = m_zone->m_script_strings[i].c_str();
}
xAssetList.stringList.strings[i] = m_zone->m_script_strings.CValue(i);
}
else
{
@ -88,7 +86,7 @@ void ContentWriter::CreateXAssetList(XAssetList& xAssetList, MemoryManager& memo
const auto assetCount = m_zone->m_pools->GetTotalAssetCount();
if (assetCount > 0)
{
xAssetList.assetCount = assetCount;
xAssetList.assetCount = static_cast<int>(assetCount);
xAssetList.assets = static_cast<XAsset*>(memory.Alloc(sizeof(XAsset) * assetCount));
const auto end = m_zone->m_pools->end();

View File

@ -17,7 +17,7 @@ scr_string_t AssetWriter::UseScriptString(const scr_string_t scrString) const
if (m_asset->m_zone == m_zone)
return scrString;
const auto strValue = m_asset->m_zone->m_script_strings[scrString];
const auto strValue = m_asset->m_zone->m_script_strings.CValue(scrString);
return m_zone->m_script_strings.GetScriptString(strValue);
}