From 710f252d53d3f94d87026cd972bc6ab51fb94109 Mon Sep 17 00:00:00 2001 From: SuperDude88 <82904174+SuperDude88@users.noreply.github.com> Date: Sun, 7 Jun 2026 23:18:45 -0400 Subject: [PATCH] Fix Respawning in Final Zant Phase (#2013) Zant was trying to get the player's position before the player was even created Based on the fix for camera/peahat load order --- src/d/actor/d_a_b_zant.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/d/actor/d_a_b_zant.cpp b/src/d/actor/d_a_b_zant.cpp index b3405adb7d..bc6aa0dcdc 100644 --- a/src/d/actor/d_a_b_zant.cpp +++ b/src/d/actor/d_a_b_zant.cpp @@ -5472,6 +5472,15 @@ int daB_ZANT_c::create() { fopAcM_ct(this, daB_ZANT_c); OS_REPORT("B_ZANT PARAM %x\n", fopAcM_GetParam(this)); +#if TARGET_PC + // Due to our loads being so much faster, Zant can initialize *before* the player + // This breaks respawning in the final phase of the fight when it tries + // to load the player's position + if (daPy_getPlayerActorClass() == NULL) { + return cPhs_INIT_e; + } +#endif + mSwbit = fopAcM_GetParam(this); if (mSwbit != 0xFF) { if (dComIfGs_isSwitch(mSwbit, fopAcM_GetRoomNo(this))) {