From 32cddc725b38d062b56a421f8db9c11d5ce397e7 Mon Sep 17 00:00:00 2001 From: "Jasper St. Pierre" Date: Sun, 19 Apr 2026 16:21:30 -0700 Subject: [PATCH] mirror flicker fix 2 --- include/d/actor/d_a_mirror.h | 3 +++ src/d/actor/d_a_mirror.cpp | 18 ++++++++++++------ 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/include/d/actor/d_a_mirror.h b/include/d/actor/d_a_mirror.h index fd69c8682e..06c5603899 100644 --- a/include/d/actor/d_a_mirror.h +++ b/include/d/actor/d_a_mirror.h @@ -25,6 +25,9 @@ public: /* 0x164 */ cXyz mMinVal; /* 0x170 */ cXyz mMaxVal; /* 0x17C */ cXyz mViewScale; +#if TARGET_PC + bool mbReset = false; +#endif }; /** diff --git a/src/d/actor/d_a_mirror.cpp b/src/d/actor/d_a_mirror.cpp index e9d56df9fb..4711dee681 100644 --- a/src/d/actor/d_a_mirror.cpp +++ b/src/d/actor/d_a_mirror.cpp @@ -34,7 +34,11 @@ dMirror_packet_c::dMirror_packet_c() { } void dMirror_packet_c::reset() { +#if TARGET_PC + mbReset = true; +#else mModelCount = 0; +#endif } void dMirror_packet_c::calcMinMax() { @@ -76,6 +80,13 @@ void dMirror_packet_c::calcMinMax() { } int dMirror_packet_c::entryModel(J3DModel* i_model) { +#if TARGET_PC + if (mbReset) { + mModelCount = 0; + mbReset = false; + } +#endif + if (mModelCount >= 0x40) { return 0; } @@ -444,12 +455,7 @@ void dMirror_packet_c::draw() { } mDoLib_clipper::resetFar(); -#if TARGET_PC - if (!dusk::frame_interp::is_sim_frame()) -#endif - { - reset(); - } + reset(); } daMirror_c::daMirror_c() {