mirror of
https://github.com/AxioDL/PrimeWorldEditor.git
synced 2025-12-21 02:39:17 +00:00
Fixed CHAR files failing to load
This commit is contained in:
@@ -165,7 +165,7 @@ REGISTER_RESOURCE_TYPE(ATBL, eAudioLookupTable, ePrimeDemo, eCorruption)
|
||||
REGISTER_RESOURCE_TYPE(BFRC, eBurstFireData, eCorruptionProto, eCorruption)
|
||||
REGISTER_RESOURCE_TYPE(CAAD, eUnknown_CAAD, eCorruption, eCorruption)
|
||||
REGISTER_RESOURCE_TYPE(CAUD, eAudioMacro, eCorruptionProto, eReturns)
|
||||
REGISTER_RESOURCE_TYPE(CHAR, eCharacter, eCorruptionProto, eReturns)
|
||||
REGISTER_RESOURCE_TYPE(CHAR, eAnimSet, eCorruptionProto, eReturns)
|
||||
REGISTER_RESOURCE_TYPE(CINF, eSkeleton, ePrimeDemo, eReturns)
|
||||
REGISTER_RESOURCE_TYPE(CMDL, eModel, ePrimeDemo, eReturns)
|
||||
REGISTER_RESOURCE_TYPE(CRSC, eParticleCollisionResponse, ePrimeDemo, eCorruption)
|
||||
|
||||
@@ -38,7 +38,7 @@ public:
|
||||
CResource(CResourceEntry *pEntry = 0)
|
||||
: mpEntry(pEntry), mRefCount(0)
|
||||
{
|
||||
if (!mpEntry) mpEntry = gResourceStore.CreateTransientEntry(Type());
|
||||
if (!mpEntry) mpEntry = gResourceStore.RegisterTransientResource(Type());
|
||||
}
|
||||
|
||||
virtual ~CResource() {}
|
||||
|
||||
@@ -194,6 +194,20 @@ void CAnimSetLoader::LoadHalfTransition(IInputStream& rANCS)
|
||||
}
|
||||
|
||||
// ************ STATIC ************
|
||||
CAnimSet* CAnimSetLoader::LoadANCSOrCHAR(IInputStream& rFile, CResourceEntry *pEntry)
|
||||
{
|
||||
if (!rFile.IsValid()) return nullptr;
|
||||
u8 Test = rFile.PeekByte();
|
||||
|
||||
if (Test == 0x3 || Test == 0x5 || Test == 0x59)
|
||||
return LoadCHAR(rFile, pEntry);
|
||||
else if (Test == 0x0)
|
||||
return LoadANCS(rFile, pEntry);
|
||||
|
||||
Log::Error("Failed to determine animset format for " + rFile.GetSourceString() + "; first byte is " + TString::HexString(Test, 2));
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
CAnimSet* CAnimSetLoader::LoadANCS(IInputStream& rANCS, CResourceEntry *pEntry)
|
||||
{
|
||||
if (!rANCS.IsValid()) return nullptr;
|
||||
|
||||
@@ -42,6 +42,7 @@ class CAnimSetLoader
|
||||
void LoadHalfTransition(IInputStream& rANCS);
|
||||
|
||||
public:
|
||||
static CAnimSet* LoadANCSOrCHAR(IInputStream& rFile, CResourceEntry *pEntry);
|
||||
static CAnimSet* LoadANCS(IInputStream& rANCS, CResourceEntry *pEntry);
|
||||
static CAnimSet* LoadCHAR(IInputStream& rCHAR, CResourceEntry *pEntry);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user