Changed EGame to an enum class. Created NGameList and NPropertyMap to change how templates are managed/saved/loaded. Added support for property map keeping track of ID/type pairs.

This commit is contained in:
Aruki
2018-10-07 17:53:19 -06:00
parent 42d021e757
commit 84d689e104
108 changed files with 1074 additions and 1198 deletions

View File

@@ -9,7 +9,7 @@ CDoorExtra::CDoorExtra(CScriptObject* pInstance, CScene* pScene, CScriptNode* pP
mShieldModelProp = CAssetRef(pInstance->PropertyData(), pProperties->ChildByID(0xB20CC271));
if (mShieldModelProp.IsValid()) PropertyModified(mShieldModelProp.Property());
if (mGame >= eEchoes)
if (mGame >= EGame::Echoes)
{
mShieldColorProp = CColorRef(pInstance->PropertyData(), pProperties->ChildByID(0x47B4E863));
if (mShieldColorProp.IsValid()) PropertyModified(mShieldColorProp.Property());

View File

@@ -10,8 +10,8 @@ CPointOfInterestExtra::CPointOfInterestExtra(CScriptObject *pInstance, CScene *p
// Fetch scan data property
CStructProperty* pProperties = pInstance->Template()->Properties();
if (mGame <= ePrime) mScanProperty = CAssetRef(pInstance->PropertyData(), pProperties->ChildByIDString("0x04:0x00"));
else mScanProperty = CAssetRef(pInstance->PropertyData(), pProperties->ChildByIDString("0xBDBEC295:0xB94E9BE7"));
if (mGame <= EGame::Prime) mScanProperty = CAssetRef(pInstance->PropertyData(), pProperties->ChildByIDString("0x04:0x00"));
else mScanProperty = CAssetRef(pInstance->PropertyData(), pProperties->ChildByIDString("0xBDBEC295:0xB94E9BE7"));
PropertyModified(mScanProperty.Property());
}

View File

@@ -56,7 +56,7 @@ CScriptExtra* CScriptExtra::CreateExtra(CScriptNode *pNode)
case 0x53505041: // "SPPA" SplinePath (DKCR)
case 0x5043544C: // "PCTL" PathControl (DKCR)
case 0x434C5043: // "CLPC" ClingPathControl (DKCR)
if (pNode->Instance()->Area()->Game() == eReturns)
if (pNode->Instance()->Area()->Game() == EGame::DKCReturns)
pExtra = new CSplinePathExtra(pObj, pNode->Scene(), pNode);
break;

View File

@@ -41,7 +41,7 @@ void CSplinePathExtra::FindAttachedWaypoints(std::set<CWaypointExtra*>& rChecked
void CSplinePathExtra::AddWaypoints()
{
if (mGame != eReturns)
if (mGame != EGame::DKCReturns)
return;
std::set<CWaypointExtra*> CheckedWaypoints;

View File

@@ -28,7 +28,7 @@ void CWaypointExtra::CheckColor()
}
// Fetch color from parent node's model (MP1/2/3)
else if (mGame < eReturns)
else if (mGame < EGame::DKCReturns)
{
CScriptNode *pScript = static_cast<CScriptNode*>(mpParent);
CModel *pModel = pScript->ActiveModel();
@@ -185,5 +185,5 @@ void CWaypointExtra::Draw(FRenderOptions /*Options*/, int ComponentIndex, ERende
CColor CWaypointExtra::TevColor()
{
return (mGame < eReturns ? CColor::skWhite : mColor);
return (mGame < EGame::DKCReturns ? CColor::skWhite : mColor);
}