CDependencyTree: Make use of size_t where applicable

This commit is contained in:
Lioncash 2020-06-22 22:57:02 -04:00
parent 13f0ca07ef
commit 9ed81480cc
2 changed files with 33 additions and 33 deletions

View File

@ -46,8 +46,8 @@ public:
static IDependencyNode* ArchiveConstructor(EDependencyNodeType Type);
// Accessors
uint32 NumChildren() const { return mChildren.size(); }
IDependencyNode* ChildByIndex(uint32 Index) const { return mChildren[Index].get(); }
size_t NumChildren() const { return mChildren.size(); }
IDependencyNode* ChildByIndex(size_t Index) const { return mChildren[Index].get(); }
};
// Basic dependency tree; this class is sufficient for most resource types.
@ -130,14 +130,14 @@ public:
class CScriptInstanceDependency : public IDependencyNode
{
protected:
uint mObjectType = 0;
uint32 mObjectType = 0;
public:
EDependencyNodeType Type() const override;
void Serialize(IArchive& rArc) override;
// Accessors
uint ObjectType() const { return mObjectType; }
uint32 ObjectType() const { return mObjectType; }
// Static
static std::unique_ptr<CScriptInstanceDependency> BuildTree(CScriptObject *pInstance);
@ -151,7 +151,7 @@ protected:
public:
CSetCharacterDependency() = default;
CSetCharacterDependency(uint32 SetIndex) : mCharSetIndex(SetIndex) {}
explicit CSetCharacterDependency(uint32 SetIndex) : mCharSetIndex(SetIndex) {}
EDependencyNodeType Type() const override;
void Serialize(IArchive& rArc) override;
@ -217,8 +217,8 @@ public:
void GetModuleDependencies(EGame Game, std::vector<TString>& rModuleDepsOut, std::vector<uint32>& rModuleLayerOffsetsOut) const;
// Accessors
uint32 NumScriptLayers() const { return mLayerOffsets.size(); }
uint32 ScriptLayerOffset(uint32 LayerIdx) const { return mLayerOffsets[LayerIdx]; }
size_t NumScriptLayers() const { return mLayerOffsets.size(); }
uint32 ScriptLayerOffset(size_t LayerIdx) const { return mLayerOffsets[LayerIdx]; }
};
#endif // CDEPENDENCYTREE

View File

@ -85,10 +85,10 @@ void CCharacterUsageMap::FindUsagesForLayer(CResourceEntry *pAreaEntry, uint32 L
// Only examine dependencies of the particular layer specified by the caller
const bool IsLastLayer = mLayerIndex == pTree->NumScriptLayers() - 1;
const uint32 StartIdx = pTree->ScriptLayerOffset(mLayerIndex);
const uint32 EndIdx = IsLastLayer ? pTree->NumChildren() : pTree->ScriptLayerOffset(mLayerIndex + 1);
const size_t StartIdx = pTree->ScriptLayerOffset(mLayerIndex);
const size_t EndIdx = IsLastLayer ? pTree->NumChildren() : pTree->ScriptLayerOffset(mLayerIndex + 1);
for (uint32 iInst = StartIdx; iInst < EndIdx; iInst++)
for (size_t iInst = StartIdx; iInst < EndIdx; iInst++)
ParseDependencyNode(pTree->ChildByIndex(iInst));
}
@ -165,14 +165,14 @@ void CCharacterUsageMap::ParseDependencyNode(IDependencyNode *pNode)
auto* pDep = static_cast<CResourceDependency*>(pNode);
CResourceEntry* pEntry = mpStore->FindEntry(pDep->ID());
if (pEntry && pEntry->ResourceType() == EResourceType::Scan)
if (pEntry != nullptr && pEntry->ResourceType() == EResourceType::Scan)
{
ParseDependencyNode(pEntry->Dependencies());
}
}
else // Look for sub-dependencies of the current node
{
for (uint32 iChild = 0; iChild < pNode->NumChildren(); iChild++)
for (size_t iChild = 0; iChild < pNode->NumChildren(); iChild++)
ParseDependencyNode(pNode->ChildByIndex(iChild));
}
}
@ -334,7 +334,7 @@ void CPackageDependencyListBuilder::EvaluateDependencyNode(CResourceEntry *pCurE
mIsPlayerActor = (ObjType == 0x4C || ObjType == FOURCC('PLAC'));
}
for (uint32 iChild = 0; iChild < pNode->NumChildren(); iChild++)
for (size_t iChild = 0; iChild < pNode->NumChildren(); iChild++)
EvaluateDependencyNode(pCurEntry, pNode->ChildByIndex(iChild), rOut);
if (Type == EDependencyNodeType::ScriptInstance)
@ -400,38 +400,38 @@ void CAreaDependencyListBuilder::BuildDependencyList(std::list<CAssetID>& rAsset
CAreaDependencyTree *pTree = static_cast<CAreaDependencyTree*>(mpAreaEntry->Dependencies());
// Fill area base used assets set (don't actually add to list yet)
uint32 BaseEndIndex = (pTree->NumScriptLayers() > 0 ? pTree->ScriptLayerOffset(0) : pTree->NumChildren());
const size_t BaseEndIndex = pTree->NumScriptLayers() > 0 ? pTree->ScriptLayerOffset(0) : pTree->NumChildren();
for (uint32 iDep = 0; iDep < BaseEndIndex; iDep++)
for (size_t iDep = 0; iDep < BaseEndIndex; iDep++)
{
CResourceDependency *pRes = static_cast<CResourceDependency*>(pTree->ChildByIndex(iDep));
const auto* pRes = static_cast<const CResourceDependency*>(pTree->ChildByIndex(iDep));
ASSERT(pRes->Type() == EDependencyNodeType::Resource);
mBaseUsedAssets.insert(pRes->ID());
}
// Get dependencies of each layer
for (uint32 iLyr = 0; iLyr < pTree->NumScriptLayers(); iLyr++)
for (size_t iLyr = 0; iLyr < pTree->NumScriptLayers(); iLyr++)
{
mLayerUsedAssets.clear();
mCharacterUsageMap.FindUsagesForLayer(mpAreaEntry, iLyr);
rLayerOffsetsOut.push_back(rAssetsOut.size());
bool IsLastLayer = (iLyr == pTree->NumScriptLayers() - 1);
uint32 StartIdx = pTree->ScriptLayerOffset(iLyr);
uint32 EndIdx = (IsLastLayer ? pTree->NumChildren() : pTree->ScriptLayerOffset(iLyr + 1));
const bool IsLastLayer = iLyr == pTree->NumScriptLayers() - 1;
const size_t StartIdx = pTree->ScriptLayerOffset(iLyr);
const size_t EndIdx = IsLastLayer ? pTree->NumChildren() : pTree->ScriptLayerOffset(iLyr + 1);
for (uint32 iChild = StartIdx; iChild < EndIdx; iChild++)
for (size_t iChild = StartIdx; iChild < EndIdx; iChild++)
{
IDependencyNode *pNode = pTree->ChildByIndex(iChild);
const IDependencyNode *pNode = pTree->ChildByIndex(iChild);
if (pNode->Type() == EDependencyNodeType::ScriptInstance)
{
auto* pInst = static_cast<CScriptInstanceDependency*>(pNode);
const auto* pInst = static_cast<const CScriptInstanceDependency*>(pNode);
mIsPlayerActor = (pInst->ObjectType() == 0x4C || pInst->ObjectType() == FOURCC('PLAC'));
for (uint32 iDep = 0; iDep < pInst->NumChildren(); iDep++)
for (size_t iDep = 0; iDep < pInst->NumChildren(); iDep++)
{
auto* pDep = static_cast<CPropertyDependency*>(pInst->ChildByIndex(iDep));
const auto* pDep = static_cast<const CPropertyDependency*>(pInst->ChildByIndex(iDep));
// For MP3, exclude the CMDL/CSKR properties for the suit assets - only include default character assets
if (mGame == EGame::Corruption && mIsPlayerActor)
@ -456,7 +456,7 @@ void CAreaDependencyListBuilder::BuildDependencyList(std::list<CAssetID>& rAsset
}
else if (pNode->Type() == EDependencyNodeType::Resource)
{
CResourceDependency *pResDep = static_cast<CResourceDependency*>(pNode);
const auto* pResDep = static_cast<const CResourceDependency*>(pNode);
AddDependency(pResDep->ID(), rAssetsOut, pAudioGroupsOut);
}
else
@ -471,9 +471,9 @@ void CAreaDependencyListBuilder::BuildDependencyList(std::list<CAssetID>& rAsset
mLayerUsedAssets.clear();
rLayerOffsetsOut.push_back(rAssetsOut.size());
for (uint32 iDep = 0; iDep < BaseEndIndex; iDep++)
for (size_t iDep = 0; iDep < BaseEndIndex; iDep++)
{
CResourceDependency *pDep = static_cast<CResourceDependency*>(pTree->ChildByIndex(iDep));
const auto* pDep = static_cast<const CResourceDependency*>(pTree->ChildByIndex(iDep));
AddDependency(pDep->ID(), rAssetsOut, pAudioGroupsOut);
}
}
@ -541,12 +541,12 @@ void CAreaDependencyListBuilder::EvaluateDependencyNode(CResourceEntry *pCurEntr
if (Type == EDependencyNodeType::Resource || Type == EDependencyNodeType::ScriptProperty || Type == EDependencyNodeType::CharacterProperty)
{
const auto* pDep = static_cast<CResourceDependency*>(pNode);
const auto* pDep = static_cast<const CResourceDependency*>(pNode);
AddDependency(pDep->ID(), rOut, pAudioGroupsOut);
}
else if (Type == EDependencyNodeType::AnimEvent)
{
const auto* pDep = static_cast<CAnimEventDependency*>(pNode);
const auto* pDep = static_cast<const CAnimEventDependency*>(pNode);
const uint32 CharIndex = pDep->CharIndex();
if (CharIndex == UINT32_MAX || mCharacterUsageMap.IsCharacterUsed(mCurrentAnimSetID, CharIndex))
@ -557,7 +557,7 @@ void CAreaDependencyListBuilder::EvaluateDependencyNode(CResourceEntry *pCurEntr
// Note: For MP1/2 PlayerActor, always treat as if Empty Suit is the only used one
const uint32 kEmptySuitIndex = (mGame >= EGame::EchoesDemo ? 3 : 5);
const auto *pChar = static_cast<CSetCharacterDependency*>(pNode);
const auto *pChar = static_cast<const CSetCharacterDependency*>(pNode);
const uint32 SetIndex = pChar->CharSetIndex();
ParseChildren = mCharacterUsageMap.IsCharacterUsed(mCurrentAnimSetID, pChar->CharSetIndex()) || (mIsPlayerActor && SetIndex == kEmptySuitIndex);
}
@ -573,7 +573,7 @@ void CAreaDependencyListBuilder::EvaluateDependencyNode(CResourceEntry *pCurEntr
if (ParseChildren)
{
for (uint32 iChild = 0; iChild < pNode->NumChildren(); iChild++)
for (size_t iChild = 0; iChild < pNode->NumChildren(); iChild++)
EvaluateDependencyNode(pCurEntry, pNode->ChildByIndex(iChild), rOut, pAudioGroupsOut);
}
}
@ -653,7 +653,7 @@ void CAssetDependencyListBuilder::EvaluateDependencyNode(CResourceEntry* pCurEnt
if (ParseChildren)
{
for (uint32 iChild = 0; iChild < pNode->NumChildren(); iChild++)
for (size_t iChild = 0; iChild < pNode->NumChildren(); iChild++)
EvaluateDependencyNode(pCurEntry, pNode->ChildByIndex(iChild), Out);
}
}