From 4a9695a698efcd4b94a7e4d0abefbeb01a30db9b Mon Sep 17 00:00:00 2001 From: Lioncash Date: Sun, 28 Jun 2020 02:24:03 -0400 Subject: [PATCH] SScanParametersMP1: Make use of std::array --- src/Core/GameProject/AssetNameGeneration.cpp | 33 ++++++++++---------- src/Core/Resource/Scan/SScanParametersMP1.h | 13 ++++---- 2 files changed, 23 insertions(+), 23 deletions(-) diff --git a/src/Core/GameProject/AssetNameGeneration.cpp b/src/Core/GameProject/AssetNameGeneration.cpp index e86b26e9..d2c2bd5c 100644 --- a/src/Core/GameProject/AssetNameGeneration.cpp +++ b/src/Core/GameProject/AssetNameGeneration.cpp @@ -613,31 +613,33 @@ void GenerateAssetNames(CGameProject *pProj) debugf("Processing scans"); for (TResourceIterator It(pStore); It; ++It) { - if (It->IsNamed()) continue; - CScan *pScan = (CScan*) It->Load(); + if (It->IsNamed()) + continue; + + auto* pScan = static_cast(It->Load()); TString ScanName; if (ScanName.IsEmpty()) { - CAssetID StringID = pScan->ScanStringPropertyRef().Get(); - CStringTable *pString = (CStringTable*) gpResourceStore->LoadResource(StringID, EResourceType::StringTable); - if (pString) ScanName = pString->Entry()->Name(); + const CAssetID StringID = pScan->ScanStringPropertyRef().Get(); + if (const auto* pString = static_cast(gpResourceStore->LoadResource(StringID, EResourceType::StringTable))) + ScanName = pString->Entry()->Name(); } ApplyGeneratedName(pScan->Entry(), It->DirectoryPath(), ScanName); if (!ScanName.IsEmpty() && pProj->Game() <= EGame::Prime) { - const SScanParametersMP1& kParms = *static_cast(pScan->ScanData().DataPointer()); + const auto& kParms = *static_cast(pScan->ScanData().DataPointer()); - CResourceEntry *pEntry = pStore->FindEntry(kParms.GuiFrame); - if (pEntry) ApplyGeneratedName(pEntry, pEntry->DirectoryPath(), "ScanFrame"); + if (CResourceEntry* pEntry = pStore->FindEntry(kParms.GuiFrame)) + ApplyGeneratedName(pEntry, pEntry->DirectoryPath(), "ScanFrame"); - for (uint32 iImg = 0; iImg < 4; iImg++) + for (size_t iImg = 0; iImg < kParms.ScanImages.size(); iImg++) { - CAssetID ImageID = kParms.ScanImages[iImg].Texture; - CResourceEntry *pImgEntry = pStore->FindEntry(ImageID); - if (pImgEntry) ApplyGeneratedName(pImgEntry, pImgEntry->DirectoryPath(), TString::Format("%s_Image%d", *ScanName, iImg)); + const CAssetID ImageID = kParms.ScanImages[iImg].Texture; + if (CResourceEntry* pImgEntry = pStore->FindEntry(ImageID)) + ApplyGeneratedName(pImgEntry, pImgEntry->DirectoryPath(), TString::Format("%s_Image%zu", *ScanName, iImg)); } } } @@ -648,15 +650,12 @@ void GenerateAssetNames(CGameProject *pProj) debugf("Processing fonts"); for (TResourceIterator It(pStore); It; ++It) { - CFont *pFont = (CFont*) It->Load(); - - if (pFont) + if (auto* pFont = static_cast(It->Load())) { ApplyGeneratedName(pFont->Entry(), pFont->Entry()->DirectoryPath(), pFont->FontName()); - CTexture *pFontTex = pFont->Texture(); - if (pFontTex) + if (CTexture* pFontTex = pFont->Texture()) ApplyGeneratedName(pFontTex->Entry(), pFont->Entry()->DirectoryPath(), pFont->Entry()->Name() + "_tex"); } } diff --git a/src/Core/Resource/Scan/SScanParametersMP1.h b/src/Core/Resource/Scan/SScanParametersMP1.h index 624102f4..0b14cec1 100644 --- a/src/Core/Resource/Scan/SScanParametersMP1.h +++ b/src/Core/Resource/Scan/SScanParametersMP1.h @@ -3,6 +3,7 @@ #include "ELogbookCategory.h" #include +#include /** Struct mapping to SCAN property layout in MP1 */ enum class EScanSpeed @@ -49,12 +50,12 @@ struct SScanImage struct SScanParametersMP1 { - CAssetID GuiFrame; - CAssetID String; - EScanSpeed Speed; - ELogbookCategory LogbookCategory; - bool IsCritical; - SScanImage ScanImages[4]; + CAssetID GuiFrame; + CAssetID String; + EScanSpeed Speed; + ELogbookCategory LogbookCategory; + bool IsCritical; + std::array ScanImages; }; #endif // SSCANPARAMETERSMP1_H