This commit is contained in:
lepelog
2026-10-17 01:53:56 +02:00
parent 012a744e2b
commit 502cd46c8a
3 changed files with 8 additions and 11 deletions
@@ -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
+1 -2
View File
@@ -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
+6 -8
View File
@@ -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);