From 124fd3ff085cb2d4c7d498dd4ac7443202a792e1 Mon Sep 17 00:00:00 2001 From: Lucas Picoli Date: Mon, 15 Jun 2026 05:52:43 -0700 Subject: [PATCH] SceneAgbGhost: match _14 The door-mask position copy reloaded mDoorMaskAnim and mDoorAnim between setPosX and setPosY because the member-pointer stores could alias. Caching the createCellAnim result and mDoorAnim in locals keeps both pointers live across the inlined stores, matching the target's codegen. --- src/Game/AgbGhost/SceneAgbGhost.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/Game/AgbGhost/SceneAgbGhost.cpp b/src/Game/AgbGhost/SceneAgbGhost.cpp index 6cc65f5..07be3df 100644 --- a/src/Game/AgbGhost/SceneAgbGhost.cpp +++ b/src/Game/AgbGhost/SceneAgbGhost.cpp @@ -112,9 +112,11 @@ void CSceneAgbGhost::_14(void) { mDoorAnim->setPos(-146.0f, -69.0f); mDoorAnim->setLayer(2800); - mDoorMaskAnim = gCellAnimManager->createCellAnim(0, ghost_door_mask); - mDoorMaskAnim->setPosX(mDoorAnim->getPosX()); - mDoorMaskAnim->setPosY(mDoorAnim->getPosY()); + CCellAnim *doorMaskAnim = gCellAnimManager->createCellAnim(0, ghost_door_mask); + mDoorMaskAnim = doorMaskAnim; + CCellAnim *doorAnim = mDoorAnim; + doorMaskAnim->setPosX(doorAnim->getPosX()); + doorMaskAnim->setPosY(doorAnim->getPosY()); mDoorMaskAnim->setLayer(1500); mDoorMaskAnim->setEnabled(false);