From ad115701d57258cf9436752ef4dda31d360f15e1 Mon Sep 17 00:00:00 2001 From: drmortalwombat <90205530+drmortalwombat@users.noreply.github.com> Date: Sat, 5 Oct 2024 21:39:51 +0200 Subject: [PATCH] Fix sprite pad level 3 read --- oscar64/Preprocessor.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/oscar64/Preprocessor.cpp b/oscar64/Preprocessor.cpp index dafa28d..c849559 100644 --- a/oscar64/Preprocessor.cpp +++ b/oscar64/Preprocessor.cpp @@ -391,6 +391,15 @@ struct SPDHeader1 uint8 mColors[3]; }; +struct SPDHeader3 +{ + uint8 mFlags; + uint16 mNumSprites, mNumTiles; + uint8 mNumSpriteAnmis, mNumTileAnims; + uint8 mTileWidth, mTileHeight; + uint8 mColors[3]; +}; + struct SPDHeader5 { uint8 mFlags; @@ -421,6 +430,13 @@ void SourceFile::ReadSpritePad(Errors* errors, const Location& location, SourceF numSprites = spdHeader5.mNumSprites; break; } + case 3: + { + SPDHeader3 spdHeader3; + fread(&spdHeader3, sizeof(SPDHeader3), 1, mFile); + numSprites = spdHeader3.mNumSprites; + break; + } case 1: { SPDHeader1 spdHeader1;