From 924ac25df1823e47bdbdb9a39c49075747f8d8cd Mon Sep 17 00:00:00 2001 From: Mitchell Richters <mjr4077au@gmail.com> Date: Thu, 6 Apr 2023 19:30:36 +1000 Subject: [PATCH] - Exhumed: Wrap all access to `FrameSize[]` array and make static. --- source/games/exhumed/src/sequence.cpp | 21 ++++++++++++++++----- source/games/exhumed/src/sequence.h | 2 +- source/games/exhumed/src/status.cpp | 2 +- 3 files changed, 18 insertions(+), 7 deletions(-) diff --git a/source/games/exhumed/src/sequence.cpp b/source/games/exhumed/src/sequence.cpp index 6c3669f46..9f06e2e4d 100644 --- a/source/games/exhumed/src/sequence.cpp +++ b/source/games/exhumed/src/sequence.cpp @@ -56,7 +56,7 @@ static int16_t SeqSize[kMaxSequences]; static int16_t SeqFlag[kMaxSequences]; // not used at all. int16_t FrameSound[kMaxSEQFrames]; -int16_t FrameSize[kMaxSEQFrames]; +static int16_t FrameSize[kMaxSEQFrames]; static int16_t FrameBase[kMaxSEQFrames]; static int16_t FrameFlag[kMaxSEQFrames]; @@ -212,6 +212,17 @@ int getSeqFrameFlags(const int nFrame) // //--------------------------------------------------------------------------- +int getSeqFrameChunkCount(const int nFrame) +{ + return FrameSize[nFrame]; +} + +//--------------------------------------------------------------------------- +// +// +// +//--------------------------------------------------------------------------- + int seq_ReadSequence(const char *seqName) { const int16_t StartFrameCount = frames; @@ -439,7 +450,7 @@ void seq_DrawPilotLightSeq(double xOffset, double yOffset) { int16_t nFrame = nPilotLightBase + nPilotLightFrame; int16_t nFrameBase = getSeqFrameChunk(nFrame); - int16_t nFrameSize = FrameSize[nFrame]; + int16_t nFrameSize = getSeqFrameChunkCount(nFrame); while (1) { @@ -467,7 +478,7 @@ int seq_DrawGunSequence(int nSeqOffset, int16_t dx, double xOffs, double yOffs, { int nFrame = getSeqFrame(nSeqOffset, dx); int nFrameBase = getSeqFrameChunk(nFrame); - int nFrameSize = FrameSize[nFrame]; + int nFrameSize = getSeqFrameChunkCount(nFrame); int frameFlag = getSeqFrameFlags(nFrame); while (1) @@ -571,7 +582,7 @@ int seq_PlotArrowSequence(int nSprite, int16_t nSeq, int nVal) int16_t nFrame = getSeqFrame(nSeq + nSeqOffset, nVal); int16_t nFrameBase = getSeqFrameChunk(nFrame); - int16_t nFrameSize = FrameSize[nFrame]; + int16_t nFrameSize = getSeqFrameChunkCount(nFrame); uint8_t nShade = pTSprite->shade; auto nStat = pTSprite->cstat; @@ -635,7 +646,7 @@ int seq_PlotSequence(int nSprite, int16_t edx, int16_t nFrame, int16_t ecx) int edi = getSeqFrame(edx + val, nFrame); int16_t nBase = getSeqFrameChunk(edi); - int16_t nSize = FrameSize[edi]; + int16_t nSize = getSeqFrameChunkCount(edi); int8_t shade = pTSprite->shade; diff --git a/source/games/exhumed/src/sequence.h b/source/games/exhumed/src/sequence.h index ff54debe4..bb5dc4aee 100644 --- a/source/games/exhumed/src/sequence.h +++ b/source/games/exhumed/src/sequence.h @@ -120,7 +120,6 @@ extern int16_t ChunkYpos[]; extern int16_t ChunkXpos[]; extern int16_t ChunkPict[]; extern int16_t ChunkFlag[]; -extern int16_t FrameSize[]; void seq_LoadSequences(); @@ -141,6 +140,7 @@ int getSeqFrame(const int nSeq, const int nFrame = 0); int getSeqFrameCount(const int nSeq); int getSeqFrameChunk(const int nFrame); int getSeqFrameFlags(const int nFrame); +int getSeqFrameChunkCount(const int nFrame); END_PS_NS diff --git a/source/games/exhumed/src/status.cpp b/source/games/exhumed/src/status.cpp index 8ecb7c3b7..1f9fc5aee 100644 --- a/source/games/exhumed/src/status.cpp +++ b/source/games/exhumed/src/status.cpp @@ -99,7 +99,7 @@ DEFINE_ACTION_FUNCTION(_Exhumed, GetStatusSequence) frameindex += getSeqFrame(nSequence + nStatusSeqOffset); if (numret > 0) ret[0].SetInt(getSeqFrameChunk(frameindex)); - if (numret > 1) ret[1].SetInt(FrameSize[frameindex]); + if (numret > 1) ret[1].SetInt(getSeqFrameChunkCount(frameindex)); return min(numret, 2); }