From 07466f6080e5afa8a5f744bf688917d4c3b044ac Mon Sep 17 00:00:00 2001 From: Mitchell Richters Date: Wed, 4 Oct 2023 11:17:56 +1100 Subject: [PATCH] - Duke: Clean up player/actor accesses in `doanimations()`. --- source/games/duke/src/sectors.cpp | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/source/games/duke/src/sectors.cpp b/source/games/duke/src/sectors.cpp index a8357a81b..90620efb9 100644 --- a/source/games/duke/src/sectors.cpp +++ b/source/games/duke/src/sectors.cpp @@ -408,14 +408,17 @@ void doanimations(void) if (type == anim_floorz) { - for (auto p = connecthead; p >= 0; p = connectpoint2[p]) - if (getPlayer(p)->cursector == dasectp) - if ((dasectp->floorz - getPlayer(p)->GetActor()->getOffsetZ()) < 64) - if (getPlayer(p)->GetActor()->GetOwner() != nullptr) - { - getPlayer(p)->GetActor()->spr.pos.Z += v; - getPlayer(p)->vel.Z = 0; - } + for (auto j = connecthead; j >= 0; j = connectpoint2[j]) + { + const auto p = getPlayer(j); + const auto pact = p->GetActor(); + + if ((p->cursector == dasectp) && ((dasectp->floorz - pact->getOffsetZ()) < 64) && (pact->GetOwner() != nullptr)) + { + pact->spr.pos.Z += v; + p->vel.Z = 0; + } + } DukeSectIterator it(dasectp); while (auto act = it.Next())