From b46e669dfcc67322b5c6d13c75f7adef44914b3f Mon Sep 17 00:00:00 2001 From: Jacob Ledbetter Date: Mon, 14 Sep 2026 10:39:01 -0600 Subject: [PATCH 1/2] fix(W3DDevice): Return from handleClientRecoil() when m_curState is null. --- .../Source/W3DDevice/GameClient/Drawable/Draw/W3DModelDraw.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Core/GameEngineDevice/Source/W3DDevice/GameClient/Drawable/Draw/W3DModelDraw.cpp b/Core/GameEngineDevice/Source/W3DDevice/GameClient/Drawable/Draw/W3DModelDraw.cpp index 4799c9aa33e..9870f1d80a7 100644 --- a/Core/GameEngineDevice/Source/W3DDevice/GameClient/Drawable/Draw/W3DModelDraw.cpp +++ b/Core/GameEngineDevice/Source/W3DDevice/GameClient/Drawable/Draw/W3DModelDraw.cpp @@ -2496,7 +2496,7 @@ void W3DModelDraw::handleClientTurretPositioning() void W3DModelDraw::handleClientRecoil() { const W3DModelDrawModuleData* d = getW3DModelDrawModuleData(); - if (!(m_curState->m_validStuff & ModelConditionInfo::BARRELS_VALID)) + if (!m_curState || !(m_curState->m_validStuff & ModelConditionInfo::BARRELS_VALID)) { return; } From 62f3dbf361b3edff84f736485119ac7b7144c4fa Mon Sep 17 00:00:00 2001 From: Jacob Ledbetter Date: Fri, 18 Sep 2026 12:41:25 -0600 Subject: [PATCH 2/2] fix(w3dmodeldraw): Move past return --- .../Source/W3DDevice/GameClient/Drawable/Draw/W3DModelDraw.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Core/GameEngineDevice/Source/W3DDevice/GameClient/Drawable/Draw/W3DModelDraw.cpp b/Core/GameEngineDevice/Source/W3DDevice/GameClient/Drawable/Draw/W3DModelDraw.cpp index 9870f1d80a7..36449abf29c 100644 --- a/Core/GameEngineDevice/Source/W3DDevice/GameClient/Drawable/Draw/W3DModelDraw.cpp +++ b/Core/GameEngineDevice/Source/W3DDevice/GameClient/Drawable/Draw/W3DModelDraw.cpp @@ -2495,12 +2495,13 @@ void W3DModelDraw::handleClientTurretPositioning() */ void W3DModelDraw::handleClientRecoil() { - const W3DModelDrawModuleData* d = getW3DModelDrawModuleData(); if (!m_curState || !(m_curState->m_validStuff & ModelConditionInfo::BARRELS_VALID)) { return; } + const W3DModelDrawModuleData* d = getW3DModelDrawModuleData(); + // do recoil, if any for (int wslot = 0; wslot < WEAPONSLOT_COUNT; ++wslot) {