diff --git a/config/SOUE01/rels/d_a_obj_control_panelNP/symbols.txt b/config/SOUE01/rels/d_a_obj_control_panelNP/symbols.txt index 15bb789d..b3d921ff 100644 --- a/config/SOUE01/rels/d_a_obj_control_panelNP/symbols.txt +++ b/config/SOUE01/rels/d_a_obj_control_panelNP/symbols.txt @@ -57,7 +57,7 @@ updateSpotTilesFromPuzzle__13dAcOCtrlPnl_cFv = .text:0x00002290; // type:functio isFirstTime__13dAcOCtrlPnl_cFv = .text:0x000022E0; // type:function size:0x90 changedPuzzle__13dAcOCtrlPnl_cFv = .text:0x00002370; // type:function size:0x6C getScreenCenter__13dAcOCtrlPnl_cFR7mVec3_c = .text:0x000023E0; // type:function size:0x98 -handleLinkObjProp0x200__13dAcOCtrlPnl_cFb = .text:0x00002480; // type:function size:0x38 +setLinkVisibility__13dAcOCtrlPnl_cFb = .text:0x00002480; // type:function size:0x38 timingB__Q213dAcOCtrlPnl_c10callback_cFUlPQ34nw4r3g3d13WorldMtxManipQ34nw4r3g3d6ResMdl = .text:0x000024C0; // type:function size:0x1EC updateTileColors__13dAcOCtrlPnl_cFv = .text:0x000026B0; // type:function size:0x34C __dt__13dAcOCtrlPnl_cFv = .text:0x00002A00; // type:function size:0x144 diff --git a/include/d/a/obj/d_a_obj_control_panel.h b/include/d/a/obj/d_a_obj_control_panel.h index 2932660d..7f32a5c8 100644 --- a/include/d/a/obj/d_a_obj_control_panel.h +++ b/include/d/a/obj/d_a_obj_control_panel.h @@ -75,7 +75,7 @@ public: void updateTilePositions(); void updateSpotTilesFromPuzzle(); void getScreenCenter(mVec3_c &); - void handleLinkObjProp0x200(bool); + void setLinkVisibility(bool); void updateTileColors(); void afterControlPanel(); void afterControlPanelFirst(); @@ -112,7 +112,6 @@ private: /* 0x664 */ s32 mCurrentlyHoveredTile; /* 0x668 */ s32 mCurrentlyHoveredSpot; /** The spots where tiles can be, in the following order: - * TODO check * 0 | 1 | 2 * ---+---+--- * 3 | 4 | 5 diff --git a/src/REL/d/a/obj/d_a_obj_control_panel.cpp b/src/REL/d/a/obj/d_a_obj_control_panel.cpp index 8b1683ef..893c81bd 100644 --- a/src/REL/d/a/obj/d_a_obj_control_panel.cpp +++ b/src/REL/d/a/obj/d_a_obj_control_panel.cpp @@ -249,7 +249,7 @@ void dAcOCtrlPnl_c::doInteraction(s32) { } void dAcOCtrlPnl_c::enterMove() { - handleLinkObjProp0x200(false); + setLinkVisibility(false); mCurrentlyHoveredSpot = 0xFF; mCurrentlyHoveredTile = -1; mHasMovedATile = false; @@ -258,7 +258,7 @@ void dAcOCtrlPnl_c::enterMove() { sIsInSkykeepPuzzle = true; } void dAcOCtrlPnl_c::finishMove() { - handleLinkObjProp0x200(true); + setLinkVisibility(true); bool changed = changedPuzzle(); sIsInSkykeepPuzzle = false; savePuzzleState(); @@ -378,7 +378,7 @@ void dAcOCtrlPnl_c::handleEvent() { case 'ctrl': handleControl(); if (mLeavePuzzle) { - handleLinkObjProp0x200(true); + setLinkVisibility(true); mCurrentlyHoveredSpot = 0xFF; mCurrentlyHoveredTile = -1; dSndSmallEffectMgr_c::GetInstance()->playSound(SE_S_CtrlPnl_DECIDE); @@ -742,11 +742,9 @@ void dAcOCtrlPnl_c::updateSpotTilesFromPuzzle() { } } -// non matching bool dAcOCtrlPnl_c::isFirstTime() { u8 flag = getFromParams(0x10, 0xFF); - // non matching: first comparison is weird - return flag >= 0xFF || (flag < 0xFF && !SceneflagManager::sInstance->checkBoolFlag(mRoomID, flag)); + return !(flag < 0xFF) || (flag < 0xFF && !SceneflagManager::sInstance->checkBoolFlag(mRoomID, flag)); } bool dAcOCtrlPnl_c::changedPuzzle() { @@ -765,11 +763,11 @@ void dAcOCtrlPnl_c::getScreenCenter(mVec3_c &outVec) { d3d::worldToScreen(outVec, local); } -void dAcOCtrlPnl_c::handleLinkObjProp0x200(bool shouldUnset) { +void dAcOCtrlPnl_c::setLinkVisibility(bool isVisible) { if (dAcPy_c::GetLinkM() == nullptr) { return; } - if (shouldUnset) { + if (isVisible) { dAcPy_c::GetLinkM()->unsetObjectProperty(OBJ_PROP_0x200); } else { dAcPy_c::GetLinkM()->setObjectProperty(OBJ_PROP_0x200);