- Exhumed: Wrap all access to SeqStatic[] array and make static.

This commit is contained in:
Mitchell Richters 2023-04-06 18:51:39 +10:00
parent 8df52e1265
commit e9c9f070eb
25 changed files with 53 additions and 42 deletions

View file

@ -223,7 +223,7 @@ void AIAnim::Tick(RunListEvent* ev)
}
pActor->nIndex++;
if (pActor->nIndex >= SeqSize[nSeq])
if (pActor->nIndex >= getSeqFrameCount(nSeq))
{
if (pActor->nAction & 0x10)
{

View file

@ -133,7 +133,7 @@ void AIAnubis::Tick(RunListEvent* ev)
ap->spr.picnum = seq_GetSeqPicnum2(nSeq, ap->nFrame);
ap->nFrame++;
if (ap->nFrame >= SeqSize[nSeq])
if (ap->nFrame >= getSeqFrameCount(nSeq))
{
ap->nFrame = 0;
bVal = true;

View file

@ -101,7 +101,7 @@ void AIBubble::Tick(RunListEvent* ev)
pActor->nFrame++;
if (pActor->nFrame >= SeqSize[nSeq])
if (pActor->nFrame >= getSeqFrameCount(nSeq))
pActor->nFrame = 0;
pActor->spr.pos.Z = pActor->vel.Z;

View file

@ -812,7 +812,7 @@ void AIBullet::Tick(RunListEvent* ev)
}
BulletList[nBullet].nFrame++;
if (BulletList[nBullet].nFrame >= SeqSize[nSeq])
if (BulletList[nBullet].nFrame >= getSeqFrameCount(nSeq))
{
if (!BulletList[nBullet].field_12)
{

View file

@ -50,7 +50,7 @@ void BuildFishLimb(DExhumedActor* pActor, int anim)
auto pChunkActor = insertActor(pActor->sector(), 99);
pChunkActor->nCount = anim + 40;
pChunkActor->nFrame = RandomSize(3) % SeqSize[getSeqFromId(kSeqFish, pChunkActor->nCount)];
pChunkActor->nFrame = RandomSize(3) % getSeqFrameCount(getSeqFromId(kSeqFish, pChunkActor->nCount));
pChunkActor->spr.pos = pActor->spr.pos;
pChunkActor->spr.cstat = 0;
@ -100,7 +100,7 @@ void AIFishLimb::Tick(RunListEvent* ev)
pActor->nFrame++;
if (pActor->nFrame >= SeqSize[nSeq])
if (pActor->nFrame >= getSeqFrameCount(nSeq))
{
pActor->nFrame = 0;
if (RandomBit()) {
@ -369,7 +369,7 @@ void AIFish::Tick(RunListEvent* ev)
seq_MoveSequence(pActor, nSeq, pActor->nFrame);
pActor->nFrame++;
if (pActor->nFrame >= SeqSize[nSeq]) {
if (pActor->nFrame >= getSeqFrameCount(nSeq)) {
pActor->nFrame = 0;
}

View file

@ -296,11 +296,11 @@ void AIGrenade::Tick(RunListEvent* ev)
if (ebp < 0)
{
pActor->nHealth += SeqSize[nSeq] << 8;
pActor->nHealth += getSeqFrameCount(nSeq) << 8;
}
else
{
if (ebp >= SeqSize[nSeq])
if (ebp >= getSeqFrameCount(nSeq))
{
if (pActor->nFrame)
{

View file

@ -393,7 +393,7 @@ void MoveWeapons(int nPlayer)
dword_96E22 = 0;
}
if (pPlayer->nSeqSize2 >= SeqSize[var_3C])
if (pPlayer->nSeqSize2 >= getSeqFrameCount(var_3C))
{
if (pPlayer->nNextWeapon == -1)
{
@ -471,7 +471,7 @@ void MoveWeapons(int nPlayer)
}
else
{
pPlayer->nSeqSize2 = SeqSize[var_3C] - 1;
pPlayer->nSeqSize2 = getSeqFrameCount(var_3C) - 1;
continue;
}
}
@ -568,7 +568,7 @@ void MoveWeapons(int nPlayer)
SelectNewWeapon(nPlayer);
pPlayer->nState = 5;
pPlayer->nSeqSize2 = SeqSize[getSeqFromId(nSeq, WeaponInfo[kWeaponGrenade].b[0])] - 1; // CHECKME
pPlayer->nSeqSize2 = getSeqFrameCount(getSeqFromId(nSeq, WeaponInfo[kWeaponGrenade].b[0])) - 1; // CHECKME
goto loc_flag; // FIXME
}
}
@ -640,7 +640,7 @@ void MoveWeapons(int nPlayer)
pPlayer->nSeqSize2 = 0;
continue;
}
} // end of if (pPlayer->field_34 >= SeqSize[var_3C])
} // end of if (pPlayer->field_34 >= getSeqFrameCount(var_3C))
loc_flag:

View file

@ -227,7 +227,7 @@ void AILavaDude::Tick(RunListEvent* ev)
seq_MoveSequence(pActor, nSeq, var_38);
pActor->nFrame++;
if (pActor->nFrame >= SeqSize[nSeq])
if (pActor->nFrame >= getSeqFrameCount(nSeq))
{
var_1C = 1;
pActor->nFrame = 0;

View file

@ -205,7 +205,7 @@ void AILion::Tick(RunListEvent* ev)
seq_MoveSequence(pActor, nSeq, pActor->nFrame);
pActor->nFrame++;
if (pActor->nFrame >= SeqSize[nSeq])
if (pActor->nFrame >= getSeqFrameCount(nSeq))
{
pActor->nFrame = 0;
bVal = true;

View file

@ -151,7 +151,7 @@ void AIMummy::Tick(RunListEvent* ev)
bool bVal = false;
pActor->nFrame++;
if (pActor->nFrame >= SeqSize[nSeq])
if (pActor->nFrame >= getSeqFrameCount(nSeq))
{
pActor->nFrame = 0;

View file

@ -1893,7 +1893,7 @@ DExhumedActor* BuildObject(DExhumedActor* pActor, int nOjectType, int nHitag)
if (!nOjectType) // if not Explosion Trigger (e.g. Exploding Fire Cauldron)
{
pActor->nFrame = RandomSize(4) % (SeqSize[pActor->nIndex] - 1);
pActor->nFrame = RandomSize(4) % (getSeqFrameCount(pActor->nIndex) - 1);
}
auto pActor2 = insertActor(pActor->sector(), 0);
@ -1963,7 +1963,7 @@ void AIObject::Tick(RunListEvent* ev)
if (bx != -1)
{
pActor->nFrame++;
if (pActor->nFrame >= SeqSize[bx]) {
if (pActor->nFrame >= getSeqFrameCount(bx)) {
pActor->nFrame = 0;
}
@ -2205,7 +2205,7 @@ void DoDrips()
nSeqOffset++;
}
seq_MoveSequence(pActor, nSeqOffset, RandomSize(2) % SeqSize[nSeqOffset]);
seq_MoveSequence(pActor, nSeqOffset, RandomSize(2) % getSeqFrameCount(nSeqOffset));
sDrip[i].nCount = RandomSize(8) + 90;
}

View file

@ -1917,7 +1917,7 @@ static void doPlayerActionSequence(Player* const pPlayer)
seq_MoveSequence(pPlayerActor, nSeq, pPlayer->nSeqSize);
pPlayer->nSeqSize++;
if (pPlayer->nSeqSize < SeqSize[nSeq])
if (pPlayer->nSeqSize < getSeqFrameCount(nSeq))
return;
pPlayer->nSeqSize = 0;
@ -1927,13 +1927,13 @@ static void doPlayerActionSequence(Player* const pPlayer)
default:
break;
case 3:
pPlayer->nSeqSize = SeqSize[nSeq] - 1;
pPlayer->nSeqSize = getSeqFrameCount(nSeq) - 1;
break;
case 4:
pPlayer->nAction = 0;
break;
case 16:
pPlayer->nSeqSize = SeqSize[nSeq] - 1;
pPlayer->nSeqSize = getSeqFrameCount(nSeq) - 1;
if (pPlayerActor->spr.pos.Z < pPlayerActor->sector()->floorz)
pPlayerActor->spr.pos.Z++;

View file

@ -551,7 +551,7 @@ void AIQueenEgg::Tick(RunListEvent* ev)
seq_MoveSequence(pActor, nSeq, pEgg->nFrame);
pEgg->nFrame++;
if (pEgg->nFrame >= SeqSize[nSeq])
if (pEgg->nFrame >= getSeqFrameCount(nSeq))
{
pEgg->nFrame = 0;
bVal = true;
@ -805,7 +805,7 @@ void AIQueenHead::Tick(RunListEvent* ev)
pActor->spr.picnum = seq_GetSeqPicnum2(nSeq, QueenHead.nFrame);
QueenHead.nFrame++;
if (QueenHead.nFrame >= SeqSize[nSeq])
if (QueenHead.nFrame >= getSeqFrameCount(nSeq))
{
QueenHead.nFrame = 0;
var_14 = 1;
@ -1246,7 +1246,7 @@ void AIQueen::Tick(RunListEvent* ev)
seq_MoveSequence(pActor, nSeq, QueenList[nQueen].nFrame);
QueenList[nQueen].nFrame++;
if (QueenList[nQueen].nFrame >= SeqSize[nSeq])
if (QueenList[nQueen].nFrame >= getSeqFrameCount(nSeq))
{
QueenList[nQueen].nFrame = 0;
bVal = true;

View file

@ -223,7 +223,7 @@ void AIRa::Tick(RunListEvent* ev)
seq_MoveSequence(pActor, nSeq, Ra[nPlayer].nFrame);
Ra[nPlayer].nFrame++;
if (Ra[nPlayer].nFrame >= SeqSize[nSeq])
if (Ra[nPlayer].nFrame >= getSeqFrameCount(nSeq))
{
Ra[nPlayer].nFrame = 0;
bVal = true;

View file

@ -250,7 +250,7 @@ void AIRat::Tick(RunListEvent* ev)
seq_MoveSequence(pActor, nSeq, pActor->nFrame);
pActor->nFrame++;
if (pActor->nFrame >= SeqSize[nSeq])
if (pActor->nFrame >= getSeqFrameCount(nSeq))
{
bVal = true;
pActor->nFrame = 0;

View file

@ -208,7 +208,7 @@ void AIRex::Tick(RunListEvent* ev)
seq_MoveSequence(pActor, nSeq, pActor->nFrame);
pActor->nFrame++;
if (pActor->nFrame >= SeqSize[nSeq])
if (pActor->nFrame >= getSeqFrameCount(nSeq))
{
pActor->nFrame = 0;
bVal = true;

View file

@ -217,7 +217,7 @@ void AIRoach::Tick(RunListEvent* ev)
seq_MoveSequence(pActor, nSeq, pActor->nFrame);
pActor->nFrame++;
if (pActor->nFrame >= SeqSize[nSeq])
if (pActor->nFrame >= getSeqFrameCount(nSeq))
{
bVal = true;
pActor->nFrame = 0;

View file

@ -213,7 +213,7 @@ void AIScorp::Tick(RunListEvent* ev)
pActor->nFrame++;
if (pActor->nFrame >= SeqSize[nSeq])
if (pActor->nFrame >= getSeqFrameCount(nSeq))
{
pActor->nFrame = 0;
bVal = true;

View file

@ -52,7 +52,7 @@ int16_t nShadowWidth = 1;
int16_t nFlameHeight = 1;
static int16_t SeqBase[kMaxSequences];
int16_t SeqSize[kMaxSequences];
static int16_t SeqSize[kMaxSequences];
int16_t SeqFlag[kMaxSequences];
int16_t FrameSound[kMaxSEQFrames];
@ -179,6 +179,17 @@ int getSeqFrame(const int nSeq, const int nFrame)
//
//---------------------------------------------------------------------------
int getSeqFrameCount(const int nSeq)
{
return SeqSize[nSeq];
}
//---------------------------------------------------------------------------
//
//
//
//---------------------------------------------------------------------------
int seq_ReadSequence(const char *seqName)
{
const int16_t StartFrameCount = frames;
@ -383,12 +394,12 @@ void seq_LoadSequences()
nBackgroundPic = seq_GetFirstSeqPicnum(kSeqBackgrnd);
nPilotLightBase = getSeqFrame(getSeqFromId(kSeqFlamer, 3));
nPilotLightCount = SeqSize[getSeqFromId(kSeqFlamer, 3)];
nPilotLightCount = getSeqFrameCount(getSeqFromId(kSeqFlamer, 3));
nPilotLightFrame = 0;
nFontFirstChar = seq_GetFirstSeqPicnum(kSeqFont2);
int16_t nSize = SeqSize[getSeqFromId(kSeqFont2)];
int16_t nSize = getSeqFrameCount(getSeqFromId(kSeqFont2));
for (i = 0; i < nSize; i++)
{

View file

@ -110,7 +110,6 @@ struct actionSeq
extern int16_t frames;
extern int16_t SeqSize[];
extern int16_t FrameFlag[];
extern int16_t nShadowWidth;
@ -143,6 +142,7 @@ void seq_DrawPilotLightSeq(double xOffset, double yOffset);
int getSeqFromId(const int nSeqFileId, const int nSeq = 0);
int getSeqFrame(const int nSeq, const int nFrame = 0);
int getSeqFrameCount(const int nSeq);
END_PS_NS

View file

@ -281,7 +281,7 @@ void AISet::Tick(RunListEvent* ev)
}
pActor->nFrame++;
if (pActor->nFrame >= SeqSize[nSeq])
if (pActor->nFrame >= getSeqFrameCount(nSeq))
{
pActor->nFrame = 0;
bVal = true;
@ -567,7 +567,7 @@ void AISet::Tick(RunListEvent* ev)
{
if (bVal)
{
pActor->nFrame = SeqSize[nSeq] - 1;
pActor->nFrame = getSeqFrameCount(nSeq) - 1;
}
if (nMov.exbits & kHitAux2)

View file

@ -718,7 +718,7 @@ void UpdateCreepySounds()
{
if (nCreaturesKilled < nCreaturesTotal && !(PlayerList[nLocalPlayer].pPlayerViewSect->Flag & 0x2000))
{
int vsi = seq_GetFrameSound(getSeqFromId(kSeqCreepy), totalmoves % SeqSize[getSeqFromId(kSeqCreepy)]);
int vsi = seq_GetFrameSound(getSeqFromId(kSeqCreepy), totalmoves % getSeqFrameCount(getSeqFromId(kSeqCreepy)));
if (vsi >= 0 && (vsi & 0x1ff) < kMaxSounds)
{
DVector2 adder;

View file

@ -126,7 +126,7 @@ void AISpider::Tick(RunListEvent* ev)
int nFrameFlag = FrameFlag[getSeqFrame(nSeq, spp->nFrame)];
spp->nFrame++;
if (spp->nFrame >= SeqSize[nSeq]) {
if (spp->nFrame >= getSeqFrameCount(nSeq)) {
spp->nFrame = 0;
}

View file

@ -109,19 +109,19 @@ DEFINE_ACTION_FUNCTION(_Exhumed, MoveStatusSequence)
PARAM_INT(s1);
PARAM_INT(s2);
seq_MoveSequence(nullptr, nStatusSeqOffset + s1, s2);
ACTION_RETURN_INT(SeqSize[nStatusSeqOffset + s1]);
ACTION_RETURN_INT(getSeqFrameCount(nStatusSeqOffset + s1));
}
int SizeOfStatusSequence(int s1)
{
return SeqSize[nStatusSeqOffset + s1];
return getSeqFrameCount(nStatusSeqOffset + s1);
}
DEFINE_ACTION_FUNCTION_NATIVE(_Exhumed, SizeOfStatusSequence, SizeOfStatusSequence)
{
PARAM_PROLOGUE;
PARAM_INT(s1);
ACTION_RETURN_INT(SeqSize[nStatusSeqOffset + s1]);
ACTION_RETURN_INT(getSeqFrameCount(nStatusSeqOffset + s1));
}
//---------------------------------------------------------------------------

View file

@ -221,7 +221,7 @@ void AIWasp::Tick(RunListEvent* ev)
seq_MoveSequence(pActor, nSeq, pActor->nFrame);
pActor->nFrame++;
if (pActor->nFrame >= SeqSize[nSeq])
if (pActor->nFrame >= getSeqFrameCount(nSeq))
{
pActor->nFrame = 0;
bVal = true;