Frame interp: Fix fmap scroll arrows

This commit is contained in:
Irastris
2026-04-11 18:19:09 -04:00
parent 880c9f9e9e
commit b628a1beb6
3 changed files with 15 additions and 0 deletions
+3
View File
@@ -152,6 +152,9 @@ public:
void setRegionCursor(u8 i_value) { mRegionCursor = i_value; }
void setMapDrawFlag(bool i_flag) { mMapDrawFlag = i_flag; }
void resetDrug() { field_0x1238 = 0; }
#if TARGET_PC
void resetScrollArrowMask() { field_0x122d = 0; }
#endif
void offArrowDrawFlag() { mArrowDrawFlag = false; }
void onArrowDrawFlag() { mArrowDrawFlag = true; }
+6
View File
@@ -1133,6 +1133,12 @@ void dMenu_Fmap_c::zoom_region_to_spot_proc() {
void dMenu_Fmap_c::zoom_spot_to_region_init() {
mZoomLevel = 10;
field_0x1ec = 1.0f;
#if TARGET_PC
// Frame interp note: field_0x122d used to be set every draw, causing flickering. Do it here instead.
if (dusk::getSettings().game.enableFrameInterpolation) {
mpDraw2DBack->resetScrollArrowMask();
}
#endif
Z2GetAudioMgr()->seStart(Z2SE_SY_MAP_ZOOMOUT, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0);
}
+6
View File
@@ -432,7 +432,13 @@ void dMenu_Fmap2DBack_c::draw() {
if (field_0x122d) {
mpMeterHaihai->drawHaihai(field_0x122d);
#if TARGET_PC
if (!dusk::getSettings().game.enableFrameInterpolation) {
field_0x122d = 0;
}
#else
field_0x122d = 0;
#endif
}
if (g_fmapHIO.mRangeCheck && !g_fmapHIO.mRangeCheckDrawPriority) {