From 0a2b38da2b07cc983fbc13cdbadf6d6345ad5d89 Mon Sep 17 00:00:00 2001 From: elijah-thomas774 Date: Tue, 16 Sep 2025 21:55:32 -0400 Subject: [PATCH] Object Property Enum --- include/d/a/obj/d_a_obj_base.h | 38 ++++++++++++++++++- src/REL/d/a/obj/d_a_obj_F400_gate_seal.cpp | 6 +-- src/REL/d/a/obj/d_a_obj_amber.cpp | 4 +- src/REL/d/a/obj/d_a_obj_chair.cpp | 10 ++--- .../a/obj/d_a_obj_flying_clawshot_target.cpp | 10 ++--- src/REL/d/a/obj/d_a_obj_ivy_rope.cpp | 4 +- src/REL/d/a/obj/d_a_obj_rope_base.cpp | 2 +- src/REL/d/a/obj/d_a_obj_stream_lava.cpp | 4 +- src/REL/d/a/obj/d_a_obj_tarzan_pole.cpp | 2 +- src/REL/d/a/obj/d_a_obj_tubo.cpp | 6 +-- src/REL/d/a/obj/d_a_obj_tumble_weed.cpp | 3 +- src/d/a/obj/d_a_obj_fairy.cpp | 2 +- src/d/a/obj/d_a_obj_switch.cpp | 2 +- src/d/a/obj/d_a_obj_tbox.cpp | 8 ++-- src/d/d_linkage.cpp | 12 +++--- src/d/d_player_mdl.cpp | 2 +- 16 files changed, 75 insertions(+), 40 deletions(-) diff --git a/include/d/a/obj/d_a_obj_base.h b/include/d/a/obj/d_a_obj_base.h index 6f6708f1..0b1a95cb 100644 --- a/include/d/a/obj/d_a_obj_base.h +++ b/include/d/a/obj/d_a_obj_base.h @@ -24,6 +24,42 @@ // vtable: 0x805015b8 // non-official name class dAcObjBase_c : public dAcBase_c { +public: + enum ObjProperties_e { + OBJ_PROP_0x1 = (1 << 0), + OBJ_PROP_0x2 = (1 << 1), + OBJ_PROP_0x4 = (1 << 2), + OBJ_PROP_0x8 = (1 << 3), + OBJ_PROP_0x10 = (1 << 4), + OBJ_PROP_0x20 = (1 << 5), + OBJ_PROP_0x40 = (1 << 6), + OBJ_PROP_0x80 = (1 << 7), + OBJ_PROP_0x100 = (1 << 8), + OBJ_PROP_0x200 = (1 << 9), + OBJ_PROP_0x400 = (1 << 10), + OBJ_PROP_0x800 = (1 << 11), + OBJ_PROP_0x1000 = (1 << 12), + OBJ_PROP_0x2000 = (1 << 13), + OBJ_PROP_0x4000 = (1 << 14), + OBJ_PROP_0x8000 = (1 << 15), + OBJ_PROP_0x10000 = (1 << 16), + OBJ_PROP_0x20000 = (1 << 17), + OBJ_PROP_0x40000 = (1 << 18), + OBJ_PROP_0x80000 = (1 << 19), + OBJ_PROP_0x100000 = (1 << 20), + OBJ_PROP_0x200000 = (1 << 21), + OBJ_PROP_0x400000 = (1 << 22), + OBJ_PROP_0x800000 = (1 << 23), + OBJ_PROP_0x1000000 = (1 << 24), + OBJ_PROP_0x2000000 = (1 << 25), + OBJ_PROP_0x4000000 = (1 << 26), + OBJ_PROP_0x8000000 = (1 << 27), + OBJ_PROP_0x10000000 = (1 << 28), + OBJ_PROP_0x20000000 = (1 << 29), + OBJ_PROP_0x40000000 = (1 << 30), + OBJ_PROP_0x80000000 = (1 << 31), + }; + public: /* 0x0FC */ f32 mYOffset; /* 0x100 */ f32 field_0x100; @@ -82,7 +118,7 @@ public: } bool checkSlower(f32 speed) const { - return fabsf(mSpeed) <= speed; + return std::fabsf(mSpeed) <= speed; } bool checkYOffsetField_0x100() const { diff --git a/src/REL/d/a/obj/d_a_obj_F400_gate_seal.cpp b/src/REL/d/a/obj/d_a_obj_F400_gate_seal.cpp index 03e42eed..c3ce8ad7 100644 --- a/src/REL/d/a/obj/d_a_obj_F400_gate_seal.cpp +++ b/src/REL/d/a/obj/d_a_obj_F400_gate_seal.cpp @@ -94,7 +94,7 @@ int dAcOF400GateSeal_c::actorExecute() { f32 frame = mAnmClr.getFrameStart(0); mAnmClr.setFrame(frame, 0); } else { - if (checkObjectProperty(2)) { + if (checkObjectProperty(OBJ_PROP_0x2)) { f32 frame = mAnmClr.getFrameMax(0); mAnmClr.setFrame(frame, 0); } else { @@ -102,9 +102,9 @@ int dAcOF400GateSeal_c::actorExecute() { } } if (mAnmClr.isStop(0)) { - setObjectProperty(0x200); + setObjectProperty(OBJ_PROP_0x200); } else { - unsetObjectProperty(0x200); + unsetObjectProperty(OBJ_PROP_0x200); } return SUCCEEDED; } diff --git a/src/REL/d/a/obj/d_a_obj_amber.cpp b/src/REL/d/a/obj/d_a_obj_amber.cpp index 110847ce..cf3cbd16 100644 --- a/src/REL/d/a/obj/d_a_obj_amber.cpp +++ b/src/REL/d/a/obj/d_a_obj_amber.cpp @@ -70,10 +70,10 @@ int dAcOAmber_c::draw() { void dAcOAmber_c::registerInEvent() { const char *eventName = EventManager::sInstance->getCurrentEventName(); if (strequals(eventName, "TimeDoorIn") || strequals(eventName, "TimeDoorOut")) { - mObjectActorFlags |= 0x200; + setObjectProperty(OBJ_PROP_0x200); } } void dAcOAmber_c::unkVirtFunc_0x6C() { - mObjectActorFlags &= ~0x200; + unsetObjectProperty(OBJ_PROP_0x200); } diff --git a/src/REL/d/a/obj/d_a_obj_chair.cpp b/src/REL/d/a/obj/d_a_obj_chair.cpp index 0af39065..cf3434ff 100644 --- a/src/REL/d/a/obj/d_a_obj_chair.cpp +++ b/src/REL/d/a/obj/d_a_obj_chair.cpp @@ -134,7 +134,7 @@ int dAcOChair_c::actorExecute() { mStateMgr.executeState(); // Calculate the HealCooldown (Heal link if needed) - if (!checkObjectProperty(0x8000)) { + if (!checkObjectProperty(OBJ_PROP_0x8000)) { if (!isBench()) { mCyl.SetC(getPosition()); dCcS::GetInstance()->Set(&mCyl); @@ -148,7 +148,7 @@ int dAcOChair_c::actorExecute() { } // Set the flag that link is sitting - if (checkObjectProperty(0x8000) && isPlayerSitting()) { + if (checkObjectProperty(OBJ_PROP_0x8000) && isPlayerSitting()) { if (mSceneflag < 0xFF && !SceneflagManager::sInstance->checkBoolFlag(mRoomID, mSceneflag)) { SceneflagManager::sInstance->setFlag(mRoomID, mSceneflag); } @@ -159,7 +159,7 @@ int dAcOChair_c::actorExecute() { } if (!isBench()) { - if (isChairTypeIdk0() && !checkObjectProperty(0x8000)) { + if (isChairTypeIdk0() && !checkObjectProperty(OBJ_PROP_0x8000)) { if (sLib::absDiff(getRotation().y, getXZAngleToPlayer()) > 910) { getRotation().y = getXZAngleToPlayer(); } @@ -173,7 +173,7 @@ int dAcOChair_c::actorExecute() { mMdl.setLocalMtx(mWorldMtx); mMdl.calc(false); } else { - if (isChairTypeIdk0() && !checkObjectProperty(0x8000)) { + if (isChairTypeIdk0() && !checkObjectProperty(OBJ_PROP_0x8000)) { if (sLib::absDiff(getRotation().y, getXZAngleToPlayer()) > 910) { getRotation().y = getXZAngleToPlayer(); } @@ -251,7 +251,7 @@ void dAcOChair_c::updateChairPos() { mPositionCopy3 = mPositionCopy2; } else { field_0xB1A = true; - if (!checkObjectProperty(0x8000)) { + if (!checkObjectProperty(OBJ_PROP_0x8000)) { mVec3_c work = mVec3_c::Ez * getDistToPlayer(); work.rotY(getRelativeYRotationToPlayer()); work.z = 0.f; diff --git a/src/REL/d/a/obj/d_a_obj_flying_clawshot_target.cpp b/src/REL/d/a/obj/d_a_obj_flying_clawshot_target.cpp index 2e47a594..7265baed 100644 --- a/src/REL/d/a/obj/d_a_obj_flying_clawshot_target.cpp +++ b/src/REL/d/a/obj/d_a_obj_flying_clawshot_target.cpp @@ -89,10 +89,10 @@ int dAcOFlyingClawshotTarget_c::actorExecute() { f32 dist_to = markPoint.squareDistance(player->mPosition); - if (checkObjectProperty(0x4)) { + if (checkObjectProperty(OBJ_PROP_0x4)) { player->vt_0x0DC(this, mMarkPoint); } - if (checkObjectProperty(0x4) && dist_to < 2500.f && + if (checkObjectProperty(OBJ_PROP_0x4) && dist_to < 2500.f && (player->checkActionFlagsCont(0x10000000) || player->checkActionFlagsCont(0x20000000))) { static mVec3_c vec = -mVec3_c::Ey; mVec3_c v2; @@ -125,7 +125,7 @@ int dAcOFlyingClawshotTarget_c::actorExecute() { switch (mState) { case 0: { - if (checkObjectProperty(0x4)) { + if (checkObjectProperty(OBJ_PROP_0x4)) { if (player->checkActionFlagsCont(0x10000000) || player->checkActionFlagsCont(0x20000000)) { mState = 2; } else { @@ -134,7 +134,7 @@ int dAcOFlyingClawshotTarget_c::actorExecute() { } } break; case 1: { - if (checkObjectProperty(0x4)) { + if (checkObjectProperty(OBJ_PROP_0x4)) { if (player->checkActionFlagsCont(0x10000000) || player->checkActionFlagsCont(0x20000000)) { mState = 2; } @@ -143,7 +143,7 @@ int dAcOFlyingClawshotTarget_c::actorExecute() { } } break; case 2: { - if (!checkObjectProperty(0x4)) { + if (!checkObjectProperty(OBJ_PROP_0x4)) { mState = 0; } } break; diff --git a/src/REL/d/a/obj/d_a_obj_ivy_rope.cpp b/src/REL/d/a/obj/d_a_obj_ivy_rope.cpp index e6320b1f..647ac90b 100644 --- a/src/REL/d/a/obj/d_a_obj_ivy_rope.cpp +++ b/src/REL/d/a/obj/d_a_obj_ivy_rope.cpp @@ -808,7 +808,7 @@ void dAcOivyRope_c::fn_256_D1B0() { } void dAcOivyRope_c::fn_256_D2B0() { - if (checkObjectProperty(0x1)) { + if (checkObjectProperty(OBJ_PROP_0x1)) { return; } @@ -1124,7 +1124,7 @@ void dAcOivyRope_c::fn_256_E3E0() { mField_0x1039 = fn_256_DF30(); } break; case 5: { - if (checkObjectProperty(0x1)) { + if (checkObjectProperty(OBJ_PROP_0x1)) { mField_0x1039 = 2; } else { for (int i = 0; i < 0x23; i++) { diff --git a/src/REL/d/a/obj/d_a_obj_rope_base.cpp b/src/REL/d/a/obj/d_a_obj_rope_base.cpp index ac8aa1fc..3ca31e8d 100644 --- a/src/REL/d/a/obj/d_a_obj_rope_base.cpp +++ b/src/REL/d/a/obj/d_a_obj_rope_base.cpp @@ -35,7 +35,7 @@ int dAcOropeBase_c::doDelete() { } int dAcOropeBase_c::actorExecute() { - if (checkObjectProperty(2)) { + if (checkObjectProperty(OBJ_PROP_0x2)) { field_0x35C = true; } else { field_0x35C = false; diff --git a/src/REL/d/a/obj/d_a_obj_stream_lava.cpp b/src/REL/d/a/obj/d_a_obj_stream_lava.cpp index 7f1622fc..4e11814c 100644 --- a/src/REL/d/a/obj/d_a_obj_stream_lava.cpp +++ b/src/REL/d/a/obj/d_a_obj_stream_lava.cpp @@ -109,10 +109,10 @@ int dAcOstreamLava_c::actorExecute() { dRoom_c *currentRoom = dStage_c::GetInstance()->getRoom(mRoomID); if (currentRoom->checkFlag(2)) { - setObjectProperty(0x200); + setObjectProperty(OBJ_PROP_0x200); return SUCCEEDED; } else { - unsetObjectProperty(0x200); + unsetObjectProperty(OBJ_PROP_0x200); return SUCCEEDED; } } diff --git a/src/REL/d/a/obj/d_a_obj_tarzan_pole.cpp b/src/REL/d/a/obj/d_a_obj_tarzan_pole.cpp index 57b5f54b..a4d9897e 100644 --- a/src/REL/d/a/obj/d_a_obj_tarzan_pole.cpp +++ b/src/REL/d/a/obj/d_a_obj_tarzan_pole.cpp @@ -82,7 +82,7 @@ int dAcOTarzanPole_c::actorExecute() { const dAcPy_c *player = dAcPy_c::GetLink(); bool bVar = false; if (mCollider.ChkTgHit() && mCollider.ChkTgAtHitType(AT_TYPE_WHIP)) { - setObjectProperty(0x1000); + setObjectProperty(OBJ_PROP_0x1000); } mVec = mVec3_c::Ex * sXOffset + mVec3_c::Ey * sYOffset; diff --git a/src/REL/d/a/obj/d_a_obj_tubo.cpp b/src/REL/d/a/obj/d_a_obj_tubo.cpp index 0d531d3b..8e045807 100644 --- a/src/REL/d/a/obj/d_a_obj_tubo.cpp +++ b/src/REL/d/a/obj/d_a_obj_tubo.cpp @@ -404,7 +404,7 @@ void dAcOtubo_c::initializeState_Rebirth() { mSph.ClrCoSet(); mSph.ClrTgSet(); - setObjectProperty(0x200); + setObjectProperty(OBJ_PROP_0x200); getLinkage().fn_80050EA0(this); int item_drop_table = getParams2UpperByte(); @@ -426,7 +426,7 @@ void dAcOtubo_c::executeState_Rebirth() { case 0: count = dAcItem_c::getTotalArrowCount(); break; case 1: count = dAcItem_c::getTotalSeedCount(); break; } - if (checkObjectProperty(0x2) && count <= 3) { + if (checkObjectProperty(OBJ_PROP_0x2) && count <= 3) { if (sLib::calcTimer(&mTimer_0x9E8) == 0) { mStateMgr.changeState(StateID_Wait); } @@ -438,7 +438,7 @@ void dAcOtubo_c::finalizeState_Rebirth() { mSph.OnCoSet(); mSph.OnTgSet(); mpPosition = &mPosition; - unsetObjectProperty(0x200); + unsetObjectProperty(OBJ_PROP_0x200); setActorProperty(AC_PROP_0x1); } diff --git a/src/REL/d/a/obj/d_a_obj_tumble_weed.cpp b/src/REL/d/a/obj/d_a_obj_tumble_weed.cpp index 7ae5e2a4..537d5b49 100644 --- a/src/REL/d/a/obj/d_a_obj_tumble_weed.cpp +++ b/src/REL/d/a/obj/d_a_obj_tumble_weed.cpp @@ -129,8 +129,7 @@ int dAcOTumbleWeed_c::actorExecute() { } adjustTimeScale(); - // TODO(mObjectActorFlags) - if (checkObjectProperty(0x2)) { + if (checkObjectProperty(OBJ_PROP_0x2)) { // Weak function not being placed right if (sLib::calcTimer(&mTumbleTimer) == 0) { killNoItemDrop(); diff --git a/src/d/a/obj/d_a_obj_fairy.cpp b/src/d/a/obj/d_a_obj_fairy.cpp index fe12be21..bdc0bf8a 100644 --- a/src/d/a/obj/d_a_obj_fairy.cpp +++ b/src/d/a/obj/d_a_obj_fairy.cpp @@ -96,7 +96,7 @@ void dAcObjFairy_c::executeState_CatchDemo() { } void dAcObjFairy_c::finalizeState_CatchDemo() { field_0xB89 = 0; - unsetObjectProperty(0x200); + unsetObjectProperty(OBJ_PROP_0x200); } bool dAcObjFairy_c::shouldAvoidLink() const { diff --git a/src/d/a/obj/d_a_obj_switch.cpp b/src/d/a/obj/d_a_obj_switch.cpp index 6bd51b37..9f75909b 100644 --- a/src/d/a/obj/d_a_obj_switch.cpp +++ b/src/d/a/obj/d_a_obj_switch.cpp @@ -66,7 +66,7 @@ void dAcOsw_c::rideCallback(dBgW *unknown, dAcObjBase_c *actor, dAcObjBase_c *in } } } - interactor->setObjectProperty(0x40); + interactor->setObjectProperty(OBJ_PROP_0x40); } bool dAcOsw_c::createHeap() { diff --git a/src/d/a/obj/d_a_obj_tbox.cpp b/src/d/a/obj/d_a_obj_tbox.cpp index c61e6886..830b554d 100644 --- a/src/d/a/obj/d_a_obj_tbox.cpp +++ b/src/d/a/obj/d_a_obj_tbox.cpp @@ -1192,9 +1192,9 @@ int dAcTbox_c::actorExecute() { dRoom_c *r = dStage_c::GetInstance()->getRoom(mRoomID); bool hasFlags = r->checkFlag(0x1E); if (hasFlags) { - setObjectProperty(0x200); + setObjectProperty(OBJ_PROP_0x200); } else { - unsetObjectProperty(0x200); + unsetObjectProperty(OBJ_PROP_0x200); } if (hasFlags) { @@ -1328,9 +1328,9 @@ int dAcTbox_c::actorExecuteInEvent() { dRoom_c *r = dStage_c::GetInstance()->getRoom(mRoomID); bool hasFlags = r->checkFlag(0x1E); if (hasFlags) { - setObjectProperty(0x200); + setObjectProperty(OBJ_PROP_0x200); } else { - unsetObjectProperty(0x200); + unsetObjectProperty(OBJ_PROP_0x200); } if (hasFlags) { diff --git a/src/d/d_linkage.cpp b/src/d/d_linkage.cpp index b2e3f719..3c44fafd 100644 --- a/src/d/d_linkage.cpp +++ b/src/d/d_linkage.cpp @@ -72,16 +72,16 @@ bool dLinkage_c::tryAttach( return false; } } - pActor->unsetObjectProperty(0x1000); - pActor->unsetObjectProperty(0x4); + pActor->unsetObjectProperty(dAcObjBase_c::OBJ_PROP_0x1000); + pActor->unsetObjectProperty(dAcObjBase_c::OBJ_PROP_0x4); mControllingActor.link(pSrc); mState = STATE_ACTIVE; mType = type; if (type == CONNECTION_4) { - pActor->setObjectProperty(0x4); + pActor->setObjectProperty(dAcObjBase_c::OBJ_PROP_0x4); } else if (type == CONNECTION_7) { - pActor->setObjectProperty(0x1000); + pActor->setObjectProperty(dAcObjBase_c::OBJ_PROP_0x1000); field_0x1A = 4; } MTXIdentity(carryTransMtx); @@ -134,11 +134,11 @@ void dLinkage_c::fn_80050EB0(dAcObjBase_c *pActor) { MTXIdentity(carryTransMtx); } else if (mType == CONNECTION_4) { if (pActor) { - pActor->unsetObjectProperty(0x4); + pActor->unsetObjectProperty(dAcObjBase_c::OBJ_PROP_0x4); } } else if (mType == CONNECTION_7) { if (pActor) { - pActor->unsetObjectProperty(0x1000); + pActor->unsetObjectProperty(dAcObjBase_c::OBJ_PROP_0x1000); } } diff --git a/src/d/d_player_mdl.cpp b/src/d/d_player_mdl.cpp index 8e67a1bf..19d7b35c 100644 --- a/src/d/d_player_mdl.cpp +++ b/src/d/d_player_mdl.cpp @@ -1958,6 +1958,6 @@ bool daPlayerModelBase_c::fn_80061410() { // and this causes the vtable and all other weak functions to be here /* vt 0x114 */ void daPlayerModelBase_c::somethingWithCarriedActorFlags() { if (mCarriedActorRef.get() != nullptr) { - mCarriedActorRef.get()->setObjectProperty(0x200); + mCarriedActorRef.get()->setObjectProperty(OBJ_PROP_0x200); } }