diff options
author | aap <aap@papnet.eu> | 2020-07-16 13:36:25 +0200 |
---|---|---|
committer | aap <aap@papnet.eu> | 2020-07-16 13:36:25 +0200 |
commit | 4e3e1d0b87b88738741955fd2b673ee6ea4295ab (patch) | |
tree | 5c8df0e14777e604db1471a831e81d89437d2c5d /src/core/FileLoader.cpp | |
parent | Merge branch 'master' into miami (diff) | |
download | re3-4e3e1d0b87b88738741955fd2b673ee6ea4295ab.tar re3-4e3e1d0b87b88738741955fd2b673ee6ea4295ab.tar.gz re3-4e3e1d0b87b88738741955fd2b673ee6ea4295ab.tar.bz2 re3-4e3e1d0b87b88738741955fd2b673ee6ea4295ab.tar.lz re3-4e3e1d0b87b88738741955fd2b673ee6ea4295ab.tar.xz re3-4e3e1d0b87b88738741955fd2b673ee6ea4295ab.tar.zst re3-4e3e1d0b87b88738741955fd2b673ee6ea4295ab.zip |
Diffstat (limited to '')
-rw-r--r-- | src/core/FileLoader.cpp | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/core/FileLoader.cpp b/src/core/FileLoader.cpp index 08126081..a7ab365c 100644 --- a/src/core/FileLoader.cpp +++ b/src/core/FileLoader.cpp @@ -393,6 +393,16 @@ CFileLoader::FindRelatedModelInfoCB(RpAtomic *atomic, void *data) return atomic; } +#ifdef LIBRW +void +InitClump(RpClump *clump) +{ + RpClumpForAllAtomics(clump, ConvertPlatformAtomic, nil); +} +#else +#define InitClump(clump) +#endif + void CFileLoader::LoadModelFile(const char *filename) { @@ -404,6 +414,7 @@ CFileLoader::LoadModelFile(const char *filename) if(RwStreamFindChunk(stream, rwID_CLUMP, nil, nil)){ clump = RpClumpStreamRead(stream); if(clump){ + InitClump(clump); RpClumpForAllAtomics(clump, FindRelatedModelInfoCB, clump); RpClumpDestroy(clump); } @@ -429,6 +440,7 @@ CFileLoader::LoadClumpFile(const char *filename) GetNameAndLOD(nodename, name, &n); mi = (CClumpModelInfo*)CModelInfo::GetModelInfo(name, nil); if(mi){ + InitClump(clump); assert(mi->IsClump()); mi->SetClump(clump); }else @@ -449,6 +461,7 @@ CFileLoader::LoadClumpFile(RwStream *stream, uint32 id) clump = RpClumpStreamRead(stream); if(clump == nil) return false; + InitClump(clump); mi = (CClumpModelInfo*)CModelInfo::GetModelInfo(id); mi->SetClump(clump); return true; @@ -476,6 +489,7 @@ CFileLoader::FinishLoadClumpFile(RwStream *stream, uint32 id) clump = RpClumpGtaStreamRead2(stream); if(clump){ + InitClump(clump); mi = (CClumpModelInfo*)CModelInfo::GetModelInfo(id); mi->SetClump(clump); return true; @@ -496,6 +510,7 @@ CFileLoader::LoadAtomicFile(RwStream *stream, uint32 id) clump = RpClumpStreamRead(stream); if(clump == nil) return false; + InitClump(clump); gpRelatedModelInfo = (CSimpleModelInfo*)CModelInfo::GetModelInfo(id); RpClumpForAllAtomics(clump, SetRelatedModelInfoCB, clump); RpClumpDestroy(clump); @@ -531,6 +546,8 @@ CFileLoader::LoadAtomicFile2Return(const char *filename) stream = RwStreamOpen(rwSTREAMFILENAME, rwSTREAMREAD, filename); if(RwStreamFindChunk(stream, rwID_CLUMP, nil, nil)) clump = RpClumpStreamRead(stream); + if(clump) + InitClump(clump); RwStreamClose(stream, nil); return clump; } |