From 76777a656765d8f6f3354568b94f48fada0ebacd Mon Sep 17 00:00:00 2001 From: Mitchell Richters Date: Sun, 26 Mar 2023 09:51:38 +1100 Subject: [PATCH] - Exhumed: Change `doPlayerActionSequence()` to do an early return instead of nested branches. --- source/games/exhumed/src/player.cpp | 62 ++++++++++++++--------------- 1 file changed, 31 insertions(+), 31 deletions(-) diff --git a/source/games/exhumed/src/player.cpp b/source/games/exhumed/src/player.cpp index 820338cef..bed91825c 100644 --- a/source/games/exhumed/src/player.cpp +++ b/source/games/exhumed/src/player.cpp @@ -1615,41 +1615,41 @@ static void doPlayerActionSequence(Player* const pPlayer) seq_MoveSequence(pPlayerActor, nSeq, pPlayer->nSeqSize); pPlayer->nSeqSize++; - if (pPlayer->nSeqSize >= SeqSize[nSeq]) + if (pPlayer->nSeqSize < SeqSize[nSeq]) + return; + + pPlayer->nSeqSize = 0; + + switch (pPlayer->nAction) { - pPlayer->nSeqSize = 0; + default: + break; + case 3: + pPlayer->nSeqSize = SeqSize[nSeq] - 1; + break; + case 4: + pPlayer->nAction = 0; + break; + case 16: + pPlayer->nSeqSize = SeqSize[nSeq] - 1; - switch (pPlayer->nAction) + if (pPlayerActor->spr.pos.Z < pPlayerActor->sector()->floorz) + pPlayerActor->spr.pos.Z++; + + if (!RandomSize(5)) { - default: - break; - case 3: - pPlayer->nSeqSize = SeqSize[nSeq] - 1; - break; - case 4: - pPlayer->nAction = 0; - break; - case 16: - pPlayer->nSeqSize = SeqSize[nSeq] - 1; - - if (pPlayerActor->spr.pos.Z < pPlayerActor->sector()->floorz) - pPlayerActor->spr.pos.Z++; - - if (!RandomSize(5)) - { - sectortype* mouthSect; - const auto pos = WheresMyMouth(pPlayer->nPlayer, &mouthSect); - BuildAnim(nullptr, 71, 0, DVector3(pos.XY(), pPlayerActor->spr.pos.Z + 15), mouthSect, 1.171875, 128); - } - break; - case 17: - pPlayer->nAction = 18; - break; - case 19: - pPlayerActor->spr.cstat |= CSTAT_SPRITE_INVISIBLE; - pPlayer->nAction = 20; - break; + sectortype* mouthSect; + const auto pos = WheresMyMouth(pPlayer->nPlayer, &mouthSect); + BuildAnim(nullptr, 71, 0, DVector3(pos.XY(), pPlayerActor->spr.pos.Z + 15), mouthSect, 1.171875, 128); } + break; + case 17: + pPlayer->nAction = 18; + break; + case 19: + pPlayerActor->spr.cstat |= CSTAT_SPRITE_INVISIBLE; + pPlayer->nAction = 20; + break; } }