SScanParametersMP1: Make use of std::array

This commit is contained in:
Lioncash 2020-06-28 02:24:03 -04:00
parent 665d1f3560
commit 4a9695a698
2 changed files with 23 additions and 23 deletions

View File

@ -613,31 +613,33 @@ void GenerateAssetNames(CGameProject *pProj)
debugf("Processing scans");
for (TResourceIterator<EResourceType::Scan> It(pStore); It; ++It)
{
if (It->IsNamed()) continue;
CScan *pScan = (CScan*) It->Load();
if (It->IsNamed())
continue;
auto* pScan = static_cast<CScan*>(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<CStringTable*>(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<SScanParametersMP1*>(pScan->ScanData().DataPointer());
const auto& kParms = *static_cast<SScanParametersMP1*>(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<EResourceType::Font> It(pStore); It; ++It)
{
CFont *pFont = (CFont*) It->Load();
if (pFont)
if (auto* pFont = static_cast<CFont*>(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");
}
}

View File

@ -3,6 +3,7 @@
#include "ELogbookCategory.h"
#include <Common/Common.h>
#include <array>
/** 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<SScanImage, 4> ScanImages;
};
#endif // SSCANPARAMETERSMP1_H