From 7bab8b97b86b751bf3e9d9325cd450621ca55577 Mon Sep 17 00:00:00 2001 From: elijah-thomas774 Date: Sat, 26 Sep 2026 13:47:43 -0400 Subject: [PATCH] CC Cut Direction Related Changes --- config/SOUE01/symbols.txt | 4 +- include/d/col/c/c_cc_d.h | 38 ++-- include/d/d_player_act.h | 13 -- src/REL/d/a/b/d_a_b_lastboss.cpp | 204 ++++++++---------- src/REL/d/a/e/d_a_e_ks.cpp | 22 +- src/REL/d/a/e/d_a_e_remly.cpp | 4 +- src/REL/d/a/e/d_a_e_skytail.cpp | 12 +- src/REL/d/a/e/d_a_e_sm.cpp | 5 +- src/REL/d/a/npc/d_a_npc_bee.cpp | 11 +- src/REL/d/a/obj/d_a_obj_barrel.cpp | 8 +- src/REL/d/a/obj/d_a_obj_bird_sp.cpp | 4 +- src/REL/d/a/obj/d_a_obj_block_underground.cpp | 4 +- src/REL/d/a/obj/d_a_obj_chair.cpp | 4 +- src/REL/d/a/obj/d_a_obj_cloud_dive.cpp | 5 +- src/REL/d/a/obj/d_a_obj_dungeon_ship.cpp | 5 +- .../a/obj/d_a_obj_flying_clawshot_target.cpp | 4 +- src/REL/d/a/obj/d_a_obj_grass_coil.cpp | 4 +- src/REL/d/a/obj/d_a_obj_grave.cpp | 4 +- src/REL/d/a/obj/d_a_obj_ivy_rope.cpp | 12 +- src/REL/d/a/obj/d_a_obj_pinwheel.cpp | 8 +- src/REL/d/a/obj/d_a_obj_rope_igaiga.cpp | 8 +- src/REL/d/a/obj/d_a_obj_seat_sword.cpp | 4 +- src/REL/d/a/obj/d_a_obj_soil.cpp | 4 +- src/REL/d/a/obj/d_a_obj_spike.cpp | 22 +- src/REL/d/a/obj/d_a_obj_tarzan_pole.cpp | 4 +- src/REL/d/a/obj/d_a_obj_toD3_stone_figure.cpp | 4 +- src/REL/d/a/obj/d_a_obj_triforce.cpp | 4 +- src/REL/d/a/obj/d_a_obj_tubo.cpp | 5 +- src/REL/d/a/obj/d_a_obj_tumble_weed.cpp | 5 +- src/REL/d/a/obj/d_a_obj_warp_hole.cpp | 9 +- src/REL/d/t/d_t_reaction.cpp | 10 +- src/d/a/d_a_item.cpp | 8 +- src/d/a/d_a_salbage_obj.cpp | 4 +- src/d/a/obj/d_a_obj_arrow.cpp | 8 +- src/d/a/obj/d_a_obj_bomb.cpp | 8 +- src/d/a/obj/d_a_obj_boomerang.cpp | 4 +- src/d/a/obj/d_a_obj_fairy.cpp | 8 +- src/d/a/obj/d_a_obj_tbox.cpp | 12 +- src/d/col/c/c_cc_d.cpp | 8 +- src/d/tg/d_t_mass_object.cpp | 10 +- src/toBeSorted/d_enemy_sword_mdl.cpp | 5 +- 41 files changed, 268 insertions(+), 261 deletions(-) diff --git a/config/SOUE01/symbols.txt b/config/SOUE01/symbols.txt index 41c3fdef..3fefff01 100644 --- a/config/SOUE01/symbols.txt +++ b/config/SOUE01/symbols.txt @@ -18794,8 +18794,8 @@ ChkTgBit23__8cCcD_ObjCFv = .text:0x80328E80; // type:function size:0xC ChkTgBit20__8cCcD_ObjCFv = .text:0x80328E90; // type:function size:0xC ChkTgBit24__8cCcD_ObjCFv = .text:0x80328EA0; // type:function size:0xC ChkTgBit25__8cCcD_ObjCFv = .text:0x80328EB0; // type:function size:0xC -GetTgSoundID__8cCcD_ObjCFv = .text:0x80328EC0; // type:function size:0x8 -GetTg_0x6A__8cCcD_ObjCFv = .text:0x80328ED0; // type:function size:0x8 +GetTgAtCutDir__8cCcD_ObjCFv = .text:0x80328EC0; // type:function size:0x8 +GetTgAtCutAng__8cCcD_ObjCFv = .text:0x80328ED0; // type:function size:0x8 ChkTgBit8__8cCcD_ObjCFv = .text:0x80328EE0; // type:function size:0xC GetTg_0x4A__8cCcD_ObjCFv = .text:0x80328EF0; // type:function size:0x8 GetTgActor__8cCcD_ObjFv = .text:0x80328F00; // type:function size:0x8 diff --git a/include/d/col/c/c_cc_d.h b/include/d/col/c/c_cc_d.h index a6165353..6c701aeb 100644 --- a/include/d/col/c/c_cc_d.h +++ b/include/d/col/c/c_cc_d.h @@ -328,7 +328,7 @@ struct cCcD_SrcGObjTg { /* 0x04 */ u32 mSPrm; /* 0x08 */ cCcD_SrcGObjTgInfo mInfo; /* 0x0C */ u16 field_0x0C; - /* 0x0E */ u16 field_0x0E; + /* 0x0E */ u16 mCutDir; // cCcD_CutDir }; enum dCcD_ObjAtType { @@ -386,7 +386,21 @@ struct cCcD_SrcGObjAtInfo { enum cCcD_AtSPrm { AT_SPRM_DAMAGE = 0x4, }; +enum cCcD_CutDir { + CUT_DIR_NONE = 0, + CUT_DIR_U = (1 << 0), // 0x0001 + CUT_DIR_LU = (1 << 1), // 0x0002 + CUT_DIR_L = (1 << 2), // 0x0004 + CUT_DIR_LD = (1 << 3), // 0x0008 + CUT_DIR_D = (1 << 4), // 0x0010 + CUT_DIR_RD = (1 << 5), // 0x0020 + CUT_DIR_R = (1 << 6), // 0x0040 + CUT_DIR_RU = (1 << 7), // 0x0080 + CUT_DIR_STAB = (1 << 8), // 0x0100 + CUT_DIR_ALL = + (CUT_DIR_U | CUT_DIR_LU | CUT_DIR_L | CUT_DIR_LD | CUT_DIR_D | CUT_DIR_RD | CUT_DIR_R | CUT_DIR_RU | CUT_DIR_STAB) +}; struct cCcD_SrcGObjAt { /* 0x00 */ u32 mType; /* 0x04 */ u32 mSPrm; @@ -395,8 +409,8 @@ struct cCcD_SrcGObjAt { /* 0x0D */ u8 field_0xD; /* 0x0E */ u8 field_0xE; /* 0x0F */ u8 field_0xF; - /* 0x10 */ u16 field_0x10; - /* 0x12 */ s16 field_0x12; + /* 0x10 */ u16 mCutDir; // cCcD_CutDir + /* 0x12 */ s16 mCutAng; }; struct cCcD_SrcGObjCo { @@ -595,12 +609,12 @@ public: return mAtHitSrc.mType; } - void SetFlag_0xA(u16 flag) { - mSrc.field_0x0E = flag; + void SetCutDir(u16 flag) { + mSrc.mCutDir = flag; } - u16 GetFlag_0xA(u16 mask) const { - return mSrc.field_0x0E & mask; + u16 ChkCutDir(u16 mask) const { + return mSrc.mCutDir & mask; } void ClrSet() { OffSPrm(1); @@ -816,8 +830,8 @@ public: bool ChkTgBit23() const; bool ChkTgBit24() const; bool ChkTgBit25() const; - s32 GetTgSoundID() const; - s16 GetTg_0x6A() const; + s32 GetTgAtCutDir() const; + s16 GetTgAtCutAng() const; bool ChkTgBit8() const; u8 GetTg_0x4A() const; dAcObjBase_c *GetTgActor(); @@ -879,10 +893,8 @@ public: void SetAtRpm(u32 f) { mAt.SetRPrm(f); } - - // Related to directional attacks? - void SetTgFlag_0xA(u16 flag) { - mTg.SetFlag_0xA(flag); + void SetTgCutDir(u16 flag) { + mTg.SetCutDir(flag); } void SetTgSrcField_0x0C(u16 val) { diff --git a/include/d/d_player_act.h b/include/d/d_player_act.h index 4c1e77a2..3506940c 100644 --- a/include/d/d_player_act.h +++ b/include/d/d_player_act.h @@ -468,19 +468,6 @@ public: ATTACK_FINAL_BLOW = 11, }; - enum SpecificPlayerAttackDirection_e { - /* 0x000 */ ATTACK_DIRECTION_NONE = 0, - /* 0x001 */ ATTACK_DIRECTION_DOWN = 1 << 0, - /* 0x002 */ ATTACK_DIRECTION_DOWNRIGHT = 1 << 1, - /* 0x004 */ ATTACK_DIRECTION_RIGHT = 1 << 2, - /* 0x008 */ ATTACK_DIRECTION_UPRIGHT = 1 << 3, - /* 0x010 */ ATTACK_DIRECTION_UP = 1 << 4, - /* 0x020 */ ATTACK_DIRECTION_UPLEFT = 1 << 5, - /* 0x040 */ ATTACK_DIRECTION_LEFT = 1 << 6, - /* 0x080 */ ATTACK_DIRECTION_DOWNLEFT = 1 << 7, - /* 0x100 */ ATTACK_DIRECTION_STAB = 1 << 8, - }; - enum ModelUpdateFlags_e { UPDATE_MODEL_SWORD = 0x20, UPDATE_MODEL_SHIELD = 0x40, diff --git a/src/REL/d/a/b/d_a_b_lastboss.cpp b/src/REL/d/a/b/d_a_b_lastboss.cpp index b93d5546..7fd2b306 100644 --- a/src/REL/d/a/b/d_a_b_lastboss.cpp +++ b/src/REL/d/a/b/d_a_b_lastboss.cpp @@ -58,13 +58,13 @@ STATE_DEFINE(dAcBlastboss_c, ThunderWait); static dCcD_SrcCyl sSrcCyl1 = { /* mObjInf */ - {/* mObjAt */ {0, 0, {0, 0, 0}, 0, 0, 0, 0, 0, 0}, + {/* mObjAt */ {0, 0, {0, 0, 0}, 0, 0, 0, 0, CUT_DIR_NONE, 0}, /* mObjTg */ {~(AT_TYPE_BUGNET | AT_TYPE_GLITTERING_SPORES | AT_TYPE_BELLOWS | AT_TYPE_BEETLE | AT_TYPE_WIND | AT_TYPE_0x8000), 0x4103, {0, 0x4, 0x407}, 0x0, - 0x0}, + CUT_DIR_NONE}, /* mObjCo */ {0x0}}, /* mCylInf */ {40.f, 300.f} @@ -72,9 +72,8 @@ static dCcD_SrcCyl sSrcCyl1 = { static dCcD_SrcCyl sSrcCyl2 = { /* mObjInf */ - {/* mObjAt */ {0, 0, {0, 0, 0}, 0, 0, 0, 0, 0, 0}, - /* mObjTg */ - {AT_TYPE_BELLOWS, 0x103, {0, 0x4, 0x407}, 0x0, 0x0}, + {/* mObjAt */ {0, 0, {0, 0, 0}, 0, 0, 0, 0, CUT_DIR_NONE, 0}, + /* mObjTg */ {AT_TYPE_BELLOWS, 0x103, {0, 0x4, 0x407}, 0x0, CUT_DIR_NONE}, /* mObjCo */ {0x0}}, /* mCylInf */ {70.f, 30.f} @@ -82,9 +81,8 @@ static dCcD_SrcCyl sSrcCyl2 = { static dCcD_SrcCyl sSrcCyl3 = { /* mObjInf */ - {/* mObjAt */ {0, 0, {0, 0, 0}, 0, 0, 0, 0, 0, 0}, - /* mObjTg */ - {0x0, 0x0, {0, 0x0, 0x407}, 0x0, 0x0}, + {/* mObjAt */ {0, 0, {0, 0, 0}, 0, 0, 0, 0, CUT_DIR_NONE, 0}, + /* mObjTg */ {0x0, 0x0, {0, 0x0, 0x407}, 0x0, CUT_DIR_NONE}, /* mObjCo */ {0xE5}}, /* mCylInf */ {100.f, 250.f} @@ -92,9 +90,8 @@ static dCcD_SrcCyl sSrcCyl3 = { static dCcD_SrcSph sSrcSph1 = { /* mObjInf */ - {/* mObjAt */ {AT_TYPE_DAMAGE, 0x2008D, {0, 0, 0}, 4, 0, 0, 0, 0, 0}, - /* mObjTg */ - {0, 0, {0, 0x0, 0x407}, 0, 0}, + {/* mObjAt */ {AT_TYPE_DAMAGE, 0x2008D, {0, 0, 0}, 4, 0, 0, 0, CUT_DIR_NONE, 0}, + /* mObjTg */ {0, 0, {0, 0x0, 0x407}, 0, CUT_DIR_NONE}, /* mObjCo */ {0}}, /* mSphInf */ {100.0f} @@ -102,9 +99,8 @@ static dCcD_SrcSph sSrcSph1 = { static dCcD_SrcSph sSrcSph2 = { /* mObjInf */ - {/* mObjAt */ {AT_TYPE_DAMAGE, 0x22008D, {0, 0, 4}, 8, 0, 0, 0, 0, 0}, - /* mObjTg */ - {AT_TYPE_0x800000 | AT_TYPE_BUGNET, 0x103, {0, 0x19, 0x407}, 0, 0}, + {/* mObjAt */ {AT_TYPE_DAMAGE, 0x22008D, {0, 0, 4}, 8, 0, 0, 0, CUT_DIR_NONE, 0}, + /* mObjTg */ {AT_TYPE_0x800000 | AT_TYPE_BUGNET, 0x103, {0, 0x19, 0x407}, 0, CUT_DIR_NONE}, /* mObjCo */ {0}}, /* mSphInf */ {100.0f} @@ -112,9 +108,8 @@ static dCcD_SrcSph sSrcSph2 = { static dCcD_SrcSph sSrcSph = { /* mObjInf */ - {/* mObjAt */ {0, 0, {0, 0, 0}, 0, 0, 0, 0, 0, 0}, - /* mObjTg */ - {AT_TYPE_BELLOWS, 0x4103, {0, 0x0, 0x40F}, 0, 0}, + {/* mObjAt */ {0, 0, {0, 0, 0}, 0, 0, 0, 0, CUT_DIR_NONE, 0}, + /* mObjTg */ {AT_TYPE_BELLOWS, 0x4103, {0, 0x0, 0x40F}, 0, CUT_DIR_NONE}, /* mObjCo */ {0}}, /* mSphInf */ {30.0f} @@ -1115,10 +1110,9 @@ void dAcBlastboss_c::executeState_Fight() { checkForCloseRangeAttack(); checkForCounter(); } - mCc1.SetTgFlag_0xA(0x1FF); + mCc1.SetTgCutDir(CUT_DIR_ALL); } else { - // TODO - mCc1.SetTgFlag_0xA(0); + mCc1.SetTgCutDir(CUT_DIR_NONE); } if (mTimers[TIMER_4] == 1) { @@ -1204,14 +1198,14 @@ void dAcBlastboss_c::executeState_Attack() { mStateMgr.changeState(StateID_CounterAttack); return; } - mCc1.SetTgFlag_0xA(0); + mCc1.SetTgCutDir(CUT_DIR_NONE); } else { if (mpCurrentAnm == "AttackR") { - mCc1.SetTgFlag_0xA(0xE); + mCc1.SetTgCutDir(CUT_DIR_LD | CUT_DIR_L | CUT_DIR_LU); } else if (mpCurrentAnm == "AttackL") { - mCc1.SetTgFlag_0xA(0xE0); + mCc1.SetTgCutDir(CUT_DIR_RD | CUT_DIR_R | CUT_DIR_RU); } else { - mCc1.SetTgFlag_0xA(0x1); + mCc1.SetTgCutDir(CUT_DIR_U); } } checkForCounter(); @@ -1285,12 +1279,12 @@ void dAcBlastboss_c::executeState_CounterAttack() { if (link->checkCurrentAction(/* BACKFLIP */ 0x62)) { field_0x113E = 20; } - mCc1.SetTgFlag_0xA(0); + mCc1.SetTgCutDir(CUT_DIR_NONE); if (field_0x113E != 0) { field_0x1142 = 0; field_0x1134 = 0; } else if (b) { - mCc1.SetTgFlag_0xA(0x1FF); + mCc1.SetTgCutDir(CUT_DIR_ALL); field_0x1142 = 0; checkForCounter(); } @@ -1310,7 +1304,7 @@ void dAcBlastboss_c::initializeState_PunchAttack() { void dAcBlastboss_c::executeState_PunchAttack() { f32 speed = 0.0f; field_0x1131 = 1; - mCc1.SetTgFlag_0xA(0); + mCc1.SetTgCutDir(CUT_DIR_NONE); sLib::addCalcAngle(mAngle.y.ref(), mYAngleToLink, 2, 0x800); if (mMdl.getAnm().getFrame() < 15.0f) { speed = -10.0f; @@ -1340,7 +1334,7 @@ void dAcBlastboss_c::executeState_DashAttack() { field_0x1131 = 1; f32 targetSpeed = 0.0f; f32 stepSize = 40.0f; // never set differently - mCc1.SetTgFlag_0xA(0x1FF); + mCc1.SetTgCutDir(CUT_DIR_ALL); sLib::addCalcAngle(mAngle.y.ref(), mYAngleToLink, 2, 0x1000); switch (mSubState) { case SUB_STATE_0: { @@ -1415,7 +1409,7 @@ void dAcBlastboss_c::executeState_SmallAttack() { field_0x1131 = 1; f32 targetSpeed = 0.0f; - mCc1.SetTgFlag_0xA(0); + mCc1.SetTgCutDir(CUT_DIR_NONE); switch (mSubState) { case SUB_STATE_0: { if (mMdl.getAnm().getFrame() >= 31.0f && mMdl.getAnm().getFrame() <= 33.0f) { @@ -1467,7 +1461,7 @@ void dAcBlastboss_c::initializeState_ThunderAttack() { void dAcBlastboss_c::executeState_ThunderAttack() { field_0x1131 = 1; f32 targetSpeed = 0.0f; - mCc1.SetTgFlag_0xA(0); + mCc1.SetTgCutDir(CUT_DIR_NONE); sLib::addCalcAngle(mAngle.y.ref(), mYAngleToLink, 2, 0x400); if (mMdl.getAnm().getFrame() >= 21.0f && mMdl.getAnm().getFrame() <= 25.0f) { mSwordMdl.enable(); @@ -1516,16 +1510,16 @@ void dAcBlastboss_c::executeState_Guard() { }; static const u32 sGuardFlags[] = { - 0x8 | 0x4 | 0x2, - 0x8 | 0x4 | 0x2, - 0x10 | 0x8 | 0x4 | 0x2, - 0x80 | 0x40 | 0x20, - 0x80 | 0x40 | 0x20, - 0x80 | 0x40 | 0x20 | 0x10, - 0x80 | 0x2 | 0x1, - 0x20 | 0x10 | 0x8, - 0x100, - 0x100 | 0x80 | 0x40 | 0x20 | 0x10 | 0x8 | 0x4 | 0x2 | 0x1, + CUT_DIR_LD | CUT_DIR_L | CUT_DIR_LU, // GUARD_RIGHT + CUT_DIR_LD | CUT_DIR_L | CUT_DIR_LU, // GUARD_UPRIGHT + CUT_DIR_D | CUT_DIR_LD | CUT_DIR_L | CUT_DIR_LU, // GUARD_DOWNRIGHT + CUT_DIR_RU | CUT_DIR_R | CUT_DIR_RD, // GUARD_LEFT + CUT_DIR_RU | CUT_DIR_R | CUT_DIR_RD, // GUARD_UPLEFT + CUT_DIR_RU | CUT_DIR_R | CUT_DIR_RD | CUT_DIR_D, // GUARD_DOWNLEFT + CUT_DIR_RU | CUT_DIR_LU | CUT_DIR_U, // GUARD_UP + CUT_DIR_RD | CUT_DIR_D | CUT_DIR_LD, // GUARD_DOWN + CUT_DIR_STAB, // GUARD_CENTER + CUT_DIR_ALL, }; switch (mSubState) { @@ -1607,21 +1601,21 @@ void dAcBlastboss_c::executeState_Guard() { setAnmRate(1.0f); if (link->isAttacking()) { switch (dAcPy_c::GetLinkM()->getSpecificAttackDirection()) { - case daPlayerActBase_c::ATTACK_DIRECTION_DOWN: mGuardDirection = GUARD_UP; break; - case daPlayerActBase_c::ATTACK_DIRECTION_LEFT: mGuardDirection = GUARD_LEFT; break; - case daPlayerActBase_c::ATTACK_DIRECTION_DOWNLEFT: mGuardDirection = GUARD_UPLEFT; break; - case daPlayerActBase_c::ATTACK_DIRECTION_UPLEFT: mGuardDirection = GUARD_DOWNLEFT; break; - case daPlayerActBase_c::ATTACK_DIRECTION_RIGHT: mGuardDirection = GUARD_RIGHT; break; - case daPlayerActBase_c::ATTACK_DIRECTION_DOWNRIGHT: mGuardDirection = GUARD_UPRIGHT; break; - case daPlayerActBase_c::ATTACK_DIRECTION_UPRIGHT: mGuardDirection = GUARD_DOWNRIGHT; break; - case daPlayerActBase_c::ATTACK_DIRECTION_UP: mGuardDirection = GUARD_DOWN; break; - default: mGuardDirection = GUARD_CENTER; break; + case CUT_DIR_U: mGuardDirection = GUARD_UP; break; + case CUT_DIR_R: mGuardDirection = GUARD_LEFT; break; + case CUT_DIR_RU: mGuardDirection = GUARD_UPLEFT; break; + case CUT_DIR_RD: mGuardDirection = GUARD_DOWNLEFT; break; + case CUT_DIR_L: mGuardDirection = GUARD_RIGHT; break; + case CUT_DIR_LU: mGuardDirection = GUARD_UPRIGHT; break; + case CUT_DIR_LD: mGuardDirection = GUARD_DOWNRIGHT; break; + case CUT_DIR_D: mGuardDirection = GUARD_DOWN; break; + default: mGuardDirection = GUARD_CENTER; break; } setAnm(sGuardNames[mGuardDirection], 3.0); } } - mCc1.SetTgFlag_0xA(sGuardFlags[mGuardDirection]); + mCc1.SetTgCutDir(sGuardFlags[mGuardDirection]); checkForRangeAttack(); } void dAcBlastboss_c::finalizeState_Guard() {} @@ -1629,13 +1623,9 @@ void dAcBlastboss_c::finalizeState_Guard() {} void dAcBlastboss_c::initializeState_GuardBreak() { s32 side; s32 attackDir = dAcPy_c::GetLinkM()->getSpecificAttackDirection(); - if (attackDir == daPlayerActBase_c::ATTACK_DIRECTION_LEFT || - attackDir == daPlayerActBase_c::ATTACK_DIRECTION_DOWNLEFT || - attackDir == daPlayerActBase_c::ATTACK_DIRECTION_UPLEFT) { + if (attackDir == CUT_DIR_R || attackDir == CUT_DIR_RU || attackDir == CUT_DIR_RD) { side = 0; - } else if (attackDir == daPlayerActBase_c::ATTACK_DIRECTION_RIGHT || - attackDir == daPlayerActBase_c::ATTACK_DIRECTION_DOWNRIGHT || - attackDir == daPlayerActBase_c::ATTACK_DIRECTION_UPRIGHT) { + } else if (attackDir == CUT_DIR_L || attackDir == CUT_DIR_LU || attackDir == CUT_DIR_LD) { side = 1; } else { side = (s32)cM::rndF(1.99f); @@ -1659,7 +1649,7 @@ void dAcBlastboss_c::executeState_GuardBreak() { mSpeed = -30.0f; } sLib::addCalcScaled(&mSpeed, 1.0f, 4.0f); - mCc1.SetTgFlag_0xA(0x1FF); + mCc1.SetTgCutDir(CUT_DIR_ALL); checkForCounter(); } void dAcBlastboss_c::finalizeState_GuardBreak() {} @@ -1682,7 +1672,7 @@ void dAcBlastboss_c::executeState_Damage() { } field_0x113E = 0; if (mIsPhaseTwo == 0 && !link->isAttackingSpin()) { - mCc1.SetTgFlag_0xA(0x1FF); + mCc1.SetTgCutDir(CUT_DIR_ALL); } checkForCounter(); } @@ -1722,7 +1712,7 @@ void dAcBlastboss_c::executeState_SitDamage() { mTimers[TIMER_4] = 15; } checkForCounter(); - mCc1.SetTgFlag_0xA(0x1FF); + mCc1.SetTgCutDir(CUT_DIR_ALL); return; } case SUB_STATE_5: { @@ -1749,7 +1739,7 @@ void dAcBlastboss_c::executeState_SitDamage() { } } } - mCc1.SetTgFlag_0xA(0); + mCc1.SetTgCutDir(CUT_DIR_NONE); } void dAcBlastboss_c::finalizeState_SitDamage() {} @@ -1996,13 +1986,13 @@ void dAcBlastboss_c::executeState_Stun() { sLib::addCalcScaled(&mSpeed, 1.0f, 10.0f); if (mChanceAttackCounter >= 7) { - mCc1.SetTgFlag_0xA(0x1FF); + mCc1.SetTgCutDir(CUT_DIR_ALL); checkForCounter(); } else { if (mInvulnerabilityTimerMaybe != 0) { - mCc1.SetTgFlag_0xA(0x1FF); + mCc1.SetTgCutDir(CUT_DIR_ALL); } else { - mCc1.SetTgFlag_0xA(0); + mCc1.SetTgCutDir(CUT_DIR_NONE); } } } @@ -2016,7 +2006,7 @@ void dAcBlastboss_c::initializeState_ThunderWait() { } void dAcBlastboss_c::executeState_ThunderWait() { dAcPy_c *link = dAcPy_c::GetLinkM(); - mCc1.SetTgFlag_0xA(0); + mCc1.SetTgCutDir(CUT_DIR_NONE); switch (mSubState) { case SUB_STATE_0: { @@ -2051,7 +2041,7 @@ void dAcBlastboss_c::executeState_ThunderWait() { } case SUB_STATE_5: { if (mMdl.getAnm().getFrame() >= 20.0f) { - mCc1.SetTgFlag_0xA(0x1FF); + mCc1.SetTgCutDir(CUT_DIR_ALL); checkForCounter(); } if (mMdl.getAnm().isStop()) { @@ -2264,15 +2254,13 @@ bool dAcBlastboss_c::checkDamage() { field_0x1138 = 10; field_0x11B8 = 5.0f; field_0x11A4 = 7.0f; - if (mLastAttackDirection == daPlayerActBase_c::ATTACK_DIRECTION_LEFT || - mLastAttackDirection == daPlayerActBase_c::ATTACK_DIRECTION_DOWNLEFT || - mLastAttackDirection == daPlayerActBase_c::ATTACK_DIRECTION_UPLEFT) { + if (mLastAttackDirection == CUT_DIR_R || mLastAttackDirection == CUT_DIR_RU || + mLastAttackDirection == CUT_DIR_RD) { field_0x1137 = 1; - } else if (mLastAttackDirection == daPlayerActBase_c::ATTACK_DIRECTION_RIGHT || - mLastAttackDirection == daPlayerActBase_c::ATTACK_DIRECTION_DOWNRIGHT || - mLastAttackDirection == daPlayerActBase_c::ATTACK_DIRECTION_UPRIGHT) { + } else if (mLastAttackDirection == CUT_DIR_L || mLastAttackDirection == CUT_DIR_LU || + mLastAttackDirection == CUT_DIR_LD) { field_0x1137 = 2; - } else if (mLastAttackDirection == daPlayerActBase_c::ATTACK_DIRECTION_STAB) { + } else if (mLastAttackDirection == CUT_DIR_STAB) { field_0x1137 = 3; } else { field_0x1137 = 0; @@ -2310,15 +2298,13 @@ bool dAcBlastboss_c::checkDamage() { mAttackKnockbackZ = v2.z; field_0x11B8 = 5.0f; field_0x11A4 = 7.0f; - if (mLastAttackDirection == daPlayerActBase_c::ATTACK_DIRECTION_LEFT || - mLastAttackDirection == daPlayerActBase_c::ATTACK_DIRECTION_DOWNLEFT || - mLastAttackDirection == daPlayerActBase_c::ATTACK_DIRECTION_UPLEFT) { + if (mLastAttackDirection == CUT_DIR_R || mLastAttackDirection == CUT_DIR_RU || + mLastAttackDirection == CUT_DIR_RD) { field_0x1137 = 1; - } else if (mLastAttackDirection == daPlayerActBase_c::ATTACK_DIRECTION_RIGHT || - mLastAttackDirection == daPlayerActBase_c::ATTACK_DIRECTION_DOWNRIGHT || - mLastAttackDirection == daPlayerActBase_c::ATTACK_DIRECTION_UPRIGHT) { + } else if (mLastAttackDirection == CUT_DIR_L || mLastAttackDirection == CUT_DIR_LU || + mLastAttackDirection == CUT_DIR_LD) { field_0x1137 = 2; - } else if (mLastAttackDirection == daPlayerActBase_c::ATTACK_DIRECTION_DOWN) { + } else if (mLastAttackDirection == CUT_DIR_U) { field_0x1137 = 3; } else { field_0x1137 = 0; @@ -2347,15 +2333,13 @@ bool dAcBlastboss_c::checkDamage() { field_0x1138 = 10; field_0x11B8 = 5.0f; field_0x11A4 = 7.0f; - if (mLastAttackDirection == daPlayerActBase_c::ATTACK_DIRECTION_LEFT || - mLastAttackDirection == daPlayerActBase_c::ATTACK_DIRECTION_DOWNLEFT || - mLastAttackDirection == daPlayerActBase_c::ATTACK_DIRECTION_UPLEFT) { + if (mLastAttackDirection == CUT_DIR_R || mLastAttackDirection == CUT_DIR_RU || + mLastAttackDirection == CUT_DIR_RD) { field_0x1137 = 1; - } else if (mLastAttackDirection == daPlayerActBase_c::ATTACK_DIRECTION_RIGHT || - mLastAttackDirection == daPlayerActBase_c::ATTACK_DIRECTION_DOWNRIGHT || - mLastAttackDirection == daPlayerActBase_c::ATTACK_DIRECTION_UPRIGHT) { + } else if (mLastAttackDirection == CUT_DIR_L || mLastAttackDirection == CUT_DIR_LU || + mLastAttackDirection == CUT_DIR_LD) { field_0x1137 = 2; - } else if (mLastAttackDirection == daPlayerActBase_c::ATTACK_DIRECTION_STAB) { + } else if (mLastAttackDirection == CUT_DIR_STAB) { field_0x1137 = 3; } else { field_0x1137 = 0; @@ -2500,14 +2484,12 @@ bool dAcBlastboss_c::checkForCounter() { if (mStateMgr.isState(StateID_Attack)) { if (mpCurrentAnm == "AttackR" && - (attackDir == dAcPy_c::ATTACK_DIRECTION_RIGHT || attackDir == dAcPy_c::ATTACK_DIRECTION_UPRIGHT || - attackDir == dAcPy_c::ATTACK_DIRECTION_DOWNRIGHT)) { + (attackDir == CUT_DIR_L || attackDir == CUT_DIR_LD || attackDir == CUT_DIR_LU)) { mGuardDirection = GUARD_RIGHT; - } else if (mpCurrentAnm == "AttackL" && (attackDir == dAcPy_c::ATTACK_DIRECTION_LEFT || - attackDir == dAcPy_c::ATTACK_DIRECTION_UPLEFT || - attackDir == dAcPy_c::ATTACK_DIRECTION_DOWNLEFT)) { + } else if (mpCurrentAnm == "AttackL" && + (attackDir == CUT_DIR_R || attackDir == CUT_DIR_RD || attackDir == CUT_DIR_RU)) { mGuardDirection = GUARD_LEFT; - } else if (mpCurrentAnm == "AttackU" && attackDir == daPlayerActBase_c::ATTACK_DIRECTION_DOWN) { + } else if (mpCurrentAnm == "AttackU" && attackDir == CUT_DIR_U) { mGuardDirection = GUARD_UP; } else { return false; @@ -2521,15 +2503,15 @@ bool dAcBlastboss_c::checkForCounter() { } switch (attackDir) { - case daPlayerActBase_c::ATTACK_DIRECTION_DOWN: mGuardDirection = GUARD_UP; break; - case daPlayerActBase_c::ATTACK_DIRECTION_LEFT: mGuardDirection = GUARD_LEFT; break; - case daPlayerActBase_c::ATTACK_DIRECTION_DOWNLEFT: mGuardDirection = GUARD_UPLEFT; break; - case daPlayerActBase_c::ATTACK_DIRECTION_UPLEFT: mGuardDirection = GUARD_DOWNLEFT; break; - case daPlayerActBase_c::ATTACK_DIRECTION_RIGHT: mGuardDirection = GUARD_RIGHT; break; - case daPlayerActBase_c::ATTACK_DIRECTION_DOWNRIGHT: mGuardDirection = GUARD_UPRIGHT; break; - case daPlayerActBase_c::ATTACK_DIRECTION_UPRIGHT: mGuardDirection = GUARD_DOWNRIGHT; break; - case daPlayerActBase_c::ATTACK_DIRECTION_UP: mGuardDirection = GUARD_DOWN; break; - default: mGuardDirection = GUARD_CENTER; break; + case CUT_DIR_U: mGuardDirection = GUARD_UP; break; + case CUT_DIR_R: mGuardDirection = GUARD_LEFT; break; + case CUT_DIR_RU: mGuardDirection = GUARD_UPLEFT; break; + case CUT_DIR_RD: mGuardDirection = GUARD_DOWNLEFT; break; + case CUT_DIR_L: mGuardDirection = GUARD_RIGHT; break; + case CUT_DIR_LU: mGuardDirection = GUARD_UPRIGHT; break; + case CUT_DIR_LD: mGuardDirection = GUARD_DOWNRIGHT; break; + case CUT_DIR_D: mGuardDirection = GUARD_DOWN; break; + default: mGuardDirection = GUARD_CENTER; break; } if (!mStateMgr.isState(StateID_Guard)) { mStateMgr.changeState(StateID_Guard); @@ -3047,20 +3029,20 @@ bool dAcBlastboss_c::checkForLinkSwordBySwordHit() { u8 dAcBlastboss_c::classifyAttackDirection(s32 attackDir) { switch (attackDir) { - case daPlayerActBase_c::ATTACK_DIRECTION_LEFT: - case daPlayerActBase_c::ATTACK_DIRECTION_DOWNLEFT: - case daPlayerActBase_c::ATTACK_DIRECTION_UPLEFT: return 0; + case CUT_DIR_R: + case CUT_DIR_RU: + case CUT_DIR_RD: return 0; - case daPlayerActBase_c::ATTACK_DIRECTION_RIGHT: - case daPlayerActBase_c::ATTACK_DIRECTION_DOWNRIGHT: - case daPlayerActBase_c::ATTACK_DIRECTION_UPRIGHT: return 1; + case CUT_DIR_L: + case CUT_DIR_LU: + case CUT_DIR_LD: return 1; - case daPlayerActBase_c::ATTACK_DIRECTION_DOWN: return 2; - case daPlayerActBase_c::ATTACK_DIRECTION_UP: return 3; + case CUT_DIR_U: return 2; + case CUT_DIR_D: return 3; - case daPlayerActBase_c::ATTACK_DIRECTION_STAB: return 4; + case CUT_DIR_STAB: return 4; - default: return -1; + default: return -1; } } diff --git a/src/REL/d/a/e/d_a_e_ks.cpp b/src/REL/d/a/e/d_a_e_ks.cpp index fc397e1c..c2eba199 100644 --- a/src/REL/d/a/e/d_a_e_ks.cpp +++ b/src/REL/d/a/e/d_a_e_ks.cpp @@ -127,9 +127,9 @@ SPECIAL_ACTOR_PROFILE(E_KS, dAcEKs_c, fProfile::E_KS, 0xFE, 0, 4099); static dCcD_SrcSph sSrcSph = { { - /* mObjAt */ {AT_TYPE_DAMAGE, 0x1D, {0, 0, 0}, 2, 0, 0, 0, 0, 0}, + /* mObjAt */ {AT_TYPE_DAMAGE, 0x1D, {0, 0, 0}, 2, 0, 0, 0, CUT_DIR_NONE, 0}, /* mObjTg */ - {~AT_TYPE_COMMON0, 0x200303, {0, 1, 0x40F}, 8, 0}, + {~AT_TYPE_COMMON0, 0x200303, {0, 1, 0x40F}, 8, CUT_DIR_NONE}, /* mObjCo*/ {0xE5}, }, {35.f} @@ -293,27 +293,27 @@ void dAcEKs_c::fn_155_A60() { s16 a = 0; s16 x = -cLib::targetAngleX(mPosition, dAcPy_c::GetLink()->mPosition); - if (mSph.GetTgSoundID() == 0x01) { + if (mSph.GetTgAtCutDir() == CUT_DIR_U) { x += 0x2000; - } else if (mSph.GetTgSoundID() == 0x80) { + } else if (mSph.GetTgAtCutDir() == CUT_DIR_RU) { a = 0x1000; x += 0x1000; - } else if (mSph.GetTgSoundID() == 0x40) { + } else if (mSph.GetTgAtCutDir() == CUT_DIR_R) { a = 0x2000; - } else if (mSph.GetTgSoundID() == 0x20) { + } else if (mSph.GetTgAtCutDir() == CUT_DIR_RD) { a = 0x1000; x += -0x1000; - } else if (mSph.GetTgSoundID() == 0x10) { + } else if (mSph.GetTgAtCutDir() == CUT_DIR_D) { x += -0x2000; - } else if (mSph.GetTgSoundID() == 0x08) { + } else if (mSph.GetTgAtCutDir() == CUT_DIR_LD) { a = -0x1000; x += -0x1000; - } else if (mSph.GetTgSoundID() == 0x04) { + } else if (mSph.GetTgAtCutDir() == CUT_DIR_L) { a = -0x2000; - } else if (mSph.GetTgSoundID() == 0x02) { + } else if (mSph.GetTgAtCutDir() == CUT_DIR_LU) { a = -0x1000; x += 0x1000; - } else if (mSph.GetTgSoundID() == 0x100) { + } else if (mSph.GetTgAtCutDir() == CUT_DIR_STAB) { x += -0x4000; } diff --git a/src/REL/d/a/e/d_a_e_remly.cpp b/src/REL/d/a/e/d_a_e_remly.cpp index ad4cfdbd..8ad28f0a 100644 --- a/src/REL/d/a/e/d_a_e_remly.cpp +++ b/src/REL/d/a/e/d_a_e_remly.cpp @@ -51,8 +51,8 @@ SPECIAL_ACTOR_PROFILE(E_REMLY, dAcEremly_c, fProfile::E_REMLY, 0xE1, 0, 3); static dCcD_SrcSph sSphSrc = { - {{AT_TYPE_DAMAGE, 0xD, {0, 0, 0}, 2, 0, 0, 0, 0}, - {~(AT_TYPE_BUGNET | AT_TYPE_BEETLE | AT_TYPE_0x8000 | AT_TYPE_WIND), 0x303, {0, 0, 0x40F}, 8, 0}, + {{AT_TYPE_DAMAGE, 0xD, {0, 0, 0}, 2, 0, 0, CUT_DIR_NONE, 0}, + {~(AT_TYPE_BUGNET | AT_TYPE_BEETLE | AT_TYPE_0x8000 | AT_TYPE_WIND), 0x303, {0, 0, 0x40F}, 8, CUT_DIR_NONE}, {0xE5}}, {50.f}, }; diff --git a/src/REL/d/a/e/d_a_e_skytail.cpp b/src/REL/d/a/e/d_a_e_skytail.cpp index cbacdebf..98b522fa 100644 --- a/src/REL/d/a/e/d_a_e_skytail.cpp +++ b/src/REL/d/a/e/d_a_e_skytail.cpp @@ -45,18 +45,18 @@ static mVec3_c sArrVecs[5] = { /* clang-format off */ static dCcD_SrcSph sCcSrcHead = { - {{AT_TYPE_DAMAGE,0x1D, {0, 0, 0}, 4, 0, 0, 0}, - {~(AT_TYPE_COMMON0 | AT_TYPE_PHYSICS), 0x303, {0, 0x18, 0x407}, 0, 0}, + {{AT_TYPE_DAMAGE,0x1D, {0, 0, 0}, 4, 0, CUT_DIR_NONE, 0}, + {~(AT_TYPE_COMMON0 | AT_TYPE_PHYSICS), 0x303, {0, 0x18, 0x407}, 0, CUT_DIR_NONE}, {0xC5}}, {180.0f},}; static dCcD_SrcSph sCcSrcSpine = { - {{AT_TYPE_DAMAGE,0x1D, {0, 0, 0}, 4, 0, 0, 0}, - {~(AT_TYPE_COMMON0 | AT_TYPE_PHYSICS), 0x303, {0, 0x18, 0x407}, 0, 0}, + {{AT_TYPE_DAMAGE,0x1D, {0, 0, 0}, 4, 0, CUT_DIR_NONE, 0}, + {~(AT_TYPE_COMMON0 | AT_TYPE_PHYSICS), 0x303, {0, 0x18, 0x407}, 0, CUT_DIR_NONE}, {0xC5}}, {170.0f},}; static dCcD_SrcSph sCcSrcRear = { - {{0, 0, {0, 0, 0}, 0, 0, 0, 0}, - {~(AT_TYPE_COMMON0 | AT_TYPE_PHYSICS), 0x303, {0, 0, 0x407}, 0, 0}, + {{0, 0, {0, 0, 0}, 0, 0, CUT_DIR_NONE, 0}, + {~(AT_TYPE_COMMON0 | AT_TYPE_PHYSICS), 0x303, {0, 0, 0x407}, 0, CUT_DIR_NONE}, {0xC5}}, {200.0f},}; /* clang-format on */ diff --git a/src/REL/d/a/e/d_a_e_sm.cpp b/src/REL/d/a/e/d_a_e_sm.cpp index 41f43331..2ae4bdc2 100644 --- a/src/REL/d/a/e/d_a_e_sm.cpp +++ b/src/REL/d/a/e/d_a_e_sm.cpp @@ -46,8 +46,9 @@ SPECIAL_ACTOR_PROFILE(E_SM, dAcEsm_c, fProfile::E_SM, 0xEB, 0, 4098); static dCcD_SrcSph sSphSrc = { /* mObjInf */ - {/* mObjAt */ {AT_TYPE_DAMAGE, 0xD, {0, 0, 0}, 0, 0, 0, 0, 0, 0}, - /* mObjTg */ {~(AT_TYPE_BUGNET | AT_TYPE_BEETLE | AT_TYPE_0x8000 | AT_TYPE_WIND), 0x3303, {0, 3, 0x40F}, 8, 0}, + {/* mObjAt */ {AT_TYPE_DAMAGE, 0xD, {0, 0, 0}, 0, 0, 0, 0, CUT_DIR_NONE, 0}, + /* mObjTg */ + {~(AT_TYPE_BUGNET | AT_TYPE_BEETLE | AT_TYPE_0x8000 | AT_TYPE_WIND), 0x3303, {0, 3, 0x40F}, 8, CUT_DIR_NONE}, /* mObjCo */ {0xC5}}, /* mSphInf */ {50.f}, diff --git a/src/REL/d/a/npc/d_a_npc_bee.cpp b/src/REL/d/a/npc/d_a_npc_bee.cpp index ad571d57..23a93b27 100644 --- a/src/REL/d/a/npc/d_a_npc_bee.cpp +++ b/src/REL/d/a/npc/d_a_npc_bee.cpp @@ -41,8 +41,9 @@ SPECIAL_ACTOR_PROFILE(NPC_BEE, dAcNpcBee_c, fProfile::NPC_BEE, 0x123, 0, 0); static dCcD_SrcSph beeColliderSrc = { - /* mObjInf */ {/* mObjAt */ {AT_TYPE_0x2000000, 0x20000F, {0, 0, 0}, 1, 0, 0, 0, 0, 0}, - /* mObjTg */ {AT_TYPE_BUGNET | AT_TYPE_BELLOWS | AT_TYPE_BOMB, 0x00004011, {0, 00, 0x40F}, 8, 0}, + /* mObjInf */ + {/* mObjAt */ {AT_TYPE_0x2000000, 0x20000F, {0, 0, 0}, 1, 0, 0, 0, CUT_DIR_NONE, 0}, + /* mObjTg */ {AT_TYPE_BUGNET | AT_TYPE_BELLOWS | AT_TYPE_BOMB, 0x00004011, {0, 00, 0x40F}, 8, CUT_DIR_NONE}, /* mObjCo */ {0}}, /* mSphInf */ {15.0f} @@ -381,10 +382,8 @@ void dAcNpcBee_c::handleBeeFlyingStates(dAcNpcBeeSingleBee *bee) { dodgedSword = false; local_98 = dAcPy_c::GetLink()->getPosition() - bee->mPos; if (local_98.squareMagXZ() < 90000.f) { - if (dAcPy_c::GetLink()->getSpecificAttackDirection() == - (s16)daPlayerActBase_c::ATTACK_DIRECTION_LEFT || - dAcPy_c::GetLink()->getSpecificAttackDirection() == - (s16)daPlayerActBase_c::ATTACK_DIRECTION_RIGHT) { + if (dAcPy_c::GetLink()->getSpecificAttackDirection() == (s16)CUT_DIR_R || + dAcPy_c::GetLink()->getSpecificAttackDirection() == (s16)CUT_DIR_L) { local_98.y += 150.f; if (std::fabsf(local_98.y) < 50.f) { if (local_98.y < 0.f) { diff --git a/src/REL/d/a/obj/d_a_obj_barrel.cpp b/src/REL/d/a/obj/d_a_obj_barrel.cpp index 79fb7ce2..7eb83dd0 100644 --- a/src/REL/d/a/obj/d_a_obj_barrel.cpp +++ b/src/REL/d/a/obj/d_a_obj_barrel.cpp @@ -91,13 +91,13 @@ STATE_DEFINE(dAcOBarrel_c, Rebirth); namespace { static dCcD_SrcCyl sSrcCyl = { { - /* mObjAt */ {AT_TYPE_PHYSICS, 0x10013, {0, 0, 0}, 4, 0, 0, 0, 0, 0}, + /* mObjAt */ {AT_TYPE_PHYSICS, 0x10013, {0, 0, 0}, 4, 0, 0, 0, CUT_DIR_NONE, 0}, /* mObjTg */ {~(AT_TYPE_BUGNET | AT_TYPE_BEETLE | AT_TYPE_GLITTERING_SPORES | AT_TYPE_0x8000), 0x2000111, {0, 0xF, 0x407}, 0, - 0}, + CUT_DIR_NONE}, /* mObjCo*/ {0xE9}, }, { @@ -106,13 +106,13 @@ static dCcD_SrcCyl sSrcCyl = { }; static dCcD_SrcSph sSrcSph = { { - /* mObjAt */ {AT_TYPE_PHYSICS, 0x10003, {0, 0, 0}, 4, 0, 0, 0, 0, 0}, + /* mObjAt */ {AT_TYPE_PHYSICS, 0x10003, {0, 0, 0}, 4, 0, 0, 0, CUT_DIR_NONE, 0}, /* mObjTg */ {~(AT_TYPE_BUGNET | AT_TYPE_BEETLE | AT_TYPE_GLITTERING_SPORES | AT_TYPE_0x8000 | AT_TYPE_WIND), 0x2000111, {0, 0xF, 0x407}, 0, - 0}, + CUT_DIR_NONE}, /* mObjCo*/ {0xE9}, }, {55.f} diff --git a/src/REL/d/a/obj/d_a_obj_bird_sp.cpp b/src/REL/d/a/obj/d_a_obj_bird_sp.cpp index 73a39ddf..aef47d7f 100644 --- a/src/REL/d/a/obj/d_a_obj_bird_sp.cpp +++ b/src/REL/d/a/obj/d_a_obj_bird_sp.cpp @@ -10,9 +10,9 @@ // clang-format off dCcD_SrcSph dAcObjBirdSp_c::sCcSrc = { /* mObjInf */ { - /* mObjAt */ {0, 2, {0, 0, 0}, 0, 0, 0, 0, 0, 0}, + /* mObjAt */ {0, 2, {0, 0, 0}, 0, 0, 0, 0, CUT_DIR_NONE, 0}, // AT_TYPE_COMMON0 - AT_TYPE_WIND - /* mObjTg */ {~(AT_TYPE_BUGNET | AT_TYPE_BEETLE | AT_TYPE_GLITTERING_SPORES | AT_TYPE_0x8000), 0x00000105, {0, 00, 0x407}, 0, 0}, + /* mObjTg */ {~(AT_TYPE_BUGNET | AT_TYPE_BEETLE | AT_TYPE_GLITTERING_SPORES | AT_TYPE_0x8000), 0x00000105, {0, 00, 0x407}, 0, CUT_DIR_NONE}, /* mObjCo */ {0x00004029}}, /* mSphInf */ {1000.0f} }; diff --git a/src/REL/d/a/obj/d_a_obj_block_underground.cpp b/src/REL/d/a/obj/d_a_obj_block_underground.cpp index 3b1326cf..04e639de 100644 --- a/src/REL/d/a/obj/d_a_obj_block_underground.cpp +++ b/src/REL/d/a/obj/d_a_obj_block_underground.cpp @@ -43,8 +43,8 @@ const char *const dAcOBlockUnderground::sDzbPlcNames[4] = { const dCcD_SrcCyl dAcOBlockUnderground::sCylSrc = { /* mObjInf */ - {/* mObjAt */ {0, 0, {0, 0, 0}, 0, 0, 0, 0, 0, 0}, - /* mObjTg */ {AT_TYPE_BOMB, 0x11, {0, 8, 0x407}, 0x0, 0x0}, + {/* mObjAt */ {0, 0, {0, 0, 0}, 0, 0, 0, 0, CUT_DIR_NONE, 0}, + /* mObjTg */ {AT_TYPE_BOMB, 0x11, {0, 8, 0x407}, 0x0, CUT_DIR_NONE}, /* mObjCo */ {0}}, /* mCylInf */ {50.f, 100.f} 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 b618aa17..f6be0b97 100644 --- a/src/REL/d/a/obj/d_a_obj_chair.cpp +++ b/src/REL/d/a/obj/d_a_obj_chair.cpp @@ -32,13 +32,13 @@ char *CHAIR_FILES[9] = { static dCcD_SrcCyl sChairColData = { /* mObjInf */ - {/* mObjAt */ {0, 0, {0, 0, 0}, 0, 0, 0, 0, 0, 0}, + {/* mObjAt */ {0, 0, {0, 0, 0}, 0, 0, 0, 0, CUT_DIR_NONE, 0}, /* mObjTg */ {~(AT_TYPE_BUGNET | AT_TYPE_GLITTERING_SPORES | AT_TYPE_BEETLE | AT_TYPE_WIND | AT_TYPE_0x8000), 0x111, {0, 0x7, 0x407}, 0x0, - 0x0}, + CUT_DIR_NONE}, /* mObjCo */ {0xE9}}, /* mCylInf */ {40.f, 50.f} diff --git a/src/REL/d/a/obj/d_a_obj_cloud_dive.cpp b/src/REL/d/a/obj/d_a_obj_cloud_dive.cpp index 7e87cbd5..4158e89a 100644 --- a/src/REL/d/a/obj/d_a_obj_cloud_dive.cpp +++ b/src/REL/d/a/obj/d_a_obj_cloud_dive.cpp @@ -16,9 +16,8 @@ const f32 dAcOcloudDive_c::height = 40.0f; dCcD_SrcCyl dAcOcloudDive_c::sCylSrc = { /* mObjInf */ - {/* mObjAt */ {0, 0, {0, 0, 0}, 0, 0, 0, 0, 0, 0}, - /* mObjTg */ - {AT_TYPE_BOMB, 0x111, {0, 0, 0x407}, 0, 0}, + {/* mObjAt */ {0, 0, {0, 0, 0}, 0, 0, 0, 0, CUT_DIR_NONE, 0}, + /* mObjTg */ {AT_TYPE_BOMB, 0x111, {0, 0, 0x407}, 0, CUT_DIR_NONE}, /* mObjCo */ {0}}, /* mCylInf */ {100.f, 10.f} diff --git a/src/REL/d/a/obj/d_a_obj_dungeon_ship.cpp b/src/REL/d/a/obj/d_a_obj_dungeon_ship.cpp index b82aef58..2916aff1 100644 --- a/src/REL/d/a/obj/d_a_obj_dungeon_ship.cpp +++ b/src/REL/d/a/obj/d_a_obj_dungeon_ship.cpp @@ -29,13 +29,12 @@ SPECIAL_ACTOR_PROFILE(OBJ_DUNGEON_SHIP, dAcODungeonShip_c, fProfile::OBJ_DUNGEON dCcD_SrcCps dAcODungeonShip_c::sCcSrc = { { - - {0, 0x1003E, {0, 0, 0}, 0, 0, 0, 0, 0, 0}, + {0, 0x1003E, {0, 0, 0}, 0, 0, 0, 0, CUT_DIR_NONE, 0}, {~(AT_TYPE_BUGNET | AT_TYPE_BEETLE | AT_TYPE_GLITTERING_SPORES | AT_TYPE_0x8000 | AT_TYPE_WIND), 0x111, {0, 0, 0x407}, 0, - 0}, + CUT_DIR_NONE}, {0xE8}, }, {1000.0f}, 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 33b6a7dd..4c8e59d4 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 @@ -39,8 +39,8 @@ bool dAcOFlyingClawshotTarget_c::createHeap() { // clang-format off const cCcD_SrcGObj dAcOFlyingClawshotTarget_c::sColSrc = { - /* mObjAt */ {0, 0, {0, 0, 0}, 0, 0, 0, 0, 0, 0}, - /* mObjTg */ {~(AT_TYPE_BUGNET | AT_TYPE_BEETLE | AT_TYPE_GLITTERING_SPORES | AT_TYPE_0x8000 | AT_TYPE_WIND), 0x1080111, {0, 6, 0x407}, 0, 0}, + /* mObjAt */ {0, 0, {0, 0, 0}, 0, 0, 0, 0, CUT_DIR_NONE, 0}, + /* mObjTg */ {~(AT_TYPE_BUGNET | AT_TYPE_BEETLE | AT_TYPE_GLITTERING_SPORES | AT_TYPE_0x8000 | AT_TYPE_WIND), 0x1080111, {0, 6, 0x407}, 0, CUT_DIR_NONE}, /* mObjCo */ {0x0} }; // clang-format on diff --git a/src/REL/d/a/obj/d_a_obj_grass_coil.cpp b/src/REL/d/a/obj/d_a_obj_grass_coil.cpp index 1ece5d83..78ea0801 100644 --- a/src/REL/d/a/obj/d_a_obj_grass_coil.cpp +++ b/src/REL/d/a/obj/d_a_obj_grass_coil.cpp @@ -21,14 +21,14 @@ STATE_DEFINE(dAcOgrassCoil_c, Wait); dCcD_SrcCyl dAcOgrassCoil_c::sCylSrc = { /* mObjInf */ - {/* mObjAt */ {0, 0, {0, 0, 0}, 0, 0, 0, 0, 0, 0}, + {/* mObjAt */ {0, 0, {0, 0, 0}, 0, 0, 0, 0, CUT_DIR_NONE, 0}, /* mObjTg */ {AT_TYPE_SWORD | AT_TYPE_BOMB | AT_TYPE_0x40 | AT_TYPE_SLINGSHOT | AT_TYPE_WHIP | AT_TYPE_ARROW | AT_TYPE_CLAWSHOT | AT_TYPE_0x800000, 0x200111, {0, 0xb, 0x407}, 0x0, - 0x0}, + CUT_DIR_NONE}, /* mObjCo */ {0x29}}, /* mCylInf */ {50.f, 130.f} diff --git a/src/REL/d/a/obj/d_a_obj_grave.cpp b/src/REL/d/a/obj/d_a_obj_grave.cpp index 437c83a4..2efe3048 100644 --- a/src/REL/d/a/obj/d_a_obj_grave.cpp +++ b/src/REL/d/a/obj/d_a_obj_grave.cpp @@ -28,13 +28,13 @@ STATE_DEFINE(dAcOGrave_c, Wait); STATE_DEFINE(dAcOGrave_c, Move); dCcD_SrcUnk dAcOGrave_c::sUnkSrc = { - {/* mObjAt */ {0, 0, {0, 0, 0}, 0, 0, 0, 0, 0, 0}, + {/* mObjAt */ {0, 0, {0, 0, 0}, 0, 0, 0, 0, CUT_DIR_NONE, 0}, /* mObjTg */ {~(AT_TYPE_BUGNET | AT_TYPE_BEETLE | AT_TYPE_GLITTERING_SPORES | AT_TYPE_0x8000 | AT_TYPE_WIND), 0x111, {0, 6, 0x407}, 0, - 0}, + CUT_DIR_NONE}, /* mObjCo */ {0}}, {-65.0f, 0.0f, -25.0f, 65.0f, 156.0f, 25.0f}, }; 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 cfbe3258..df8cd5a3 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 @@ -40,14 +40,14 @@ InteractionTargetDef dAcOivyRope_c::sInteraction = { dCcD_SrcCps dAcOivyRope_c::sCpsSrc = { /* mObjInf */ - {/* mObjAt */ {0, 0, {0, 0, 0}, 0, 0, 0, 0, 0, 0}, + {/* mObjAt */ {0, 0, {0, 0, 0}, 0, 0, 0, 0, CUT_DIR_NONE, 0}, /* mObjTg */ {AT_TYPE_0x800000 | AT_TYPE_BEETLE | AT_TYPE_CLAWSHOT | AT_TYPE_ARROW | AT_TYPE_WHIP | AT_TYPE_SLINGSHOT | AT_TYPE_BOMB | AT_TYPE_SWORD, 0x111, {0, 0x19, 0x407}, 0, - 0}, + CUT_DIR_NONE}, /* mObjCo */ {0x4029}}, /* mCpsInf */ {10.f} @@ -55,9 +55,9 @@ dCcD_SrcCps dAcOivyRope_c::sCpsSrc = { dCcD_SrcSph dAcOivyRope_c::sSphSrc = { /* mObjInf */ - {/* mObjAt */ {AT_TYPE_DAMAGE, 0x11, {0, 0, 0}, 1, 0, 0, 0, 0, 0}, + {/* mObjAt */ {AT_TYPE_DAMAGE, 0x11, {0, 0, 0}, 1, 0, 0, 0, CUT_DIR_NONE, 0}, /* mObjTg */ - {~AT_TYPE_COMMON0, 0x111, {0, 0, 0x407}, 0, 0}, + {~AT_TYPE_COMMON0, 0x111, {0, 0, 0x407}, 0, CUT_DIR_NONE}, /* mObjCo */ {0x29}}, /* mSphInf */ {100.f} @@ -65,9 +65,9 @@ dCcD_SrcSph dAcOivyRope_c::sSphSrc = { dCcD_SrcCyl dAcOivyRope_c::sCylSrc = { /* mObjInf */ - {/* mObjAt */ {0, 0, {0, 0, 0}, 0, 0, 0, 0, 0, 0}, + {/* mObjAt */ {0, 0, {0, 0, 0}, 0, 0, 0, 0, CUT_DIR_NONE, 0}, /* mObjTg */ - {AT_TYPE_BELLOWS, 0x311, {0, 0, 8}, 8, 0}, + {AT_TYPE_BELLOWS, 0x311, {0, 0, 8}, 8, CUT_DIR_NONE}, /* mObjCo */ {0x109}}, /* mCylInf */ {10.f, 750.f} diff --git a/src/REL/d/a/obj/d_a_obj_pinwheel.cpp b/src/REL/d/a/obj/d_a_obj_pinwheel.cpp index e38af748..31144cdf 100644 --- a/src/REL/d/a/obj/d_a_obj_pinwheel.cpp +++ b/src/REL/d/a/obj/d_a_obj_pinwheel.cpp @@ -21,9 +21,13 @@ STATE_DEFINE(dAcOpinwheel_c, Deceleration); dCcD_SrcSph dAcOpinwheel_c::sSphSrc = { /* mObjInf */ - {/* mObjAt */ {0, 0, {0, 0, 0}, 0, 0, 0, 0, 0, 0}, + {/* mObjAt */ {0, 0, {0, 0, 0}, 0, 0, 0, 0, CUT_DIR_NONE, 0}, /* mObjTg */ - {~(AT_TYPE_BUGNET | AT_TYPE_BEETLE | AT_TYPE_GLITTERING_SPORES | AT_TYPE_0x8000 | AT_TYPE_WIND), 0x111, {0, 6, 0x8}, 8, 0}, + {~(AT_TYPE_BUGNET | AT_TYPE_BEETLE | AT_TYPE_GLITTERING_SPORES | AT_TYPE_0x8000 | AT_TYPE_WIND), + 0x111, + {0, 6, 0x8}, + 8, + CUT_DIR_NONE}, /* mObjCo */ {0xE9}}, /* mSphInf */ {50.f}, diff --git a/src/REL/d/a/obj/d_a_obj_rope_igaiga.cpp b/src/REL/d/a/obj/d_a_obj_rope_igaiga.cpp index 35b71ecc..77774cb1 100644 --- a/src/REL/d/a/obj/d_a_obj_rope_igaiga.cpp +++ b/src/REL/d/a/obj/d_a_obj_rope_igaiga.cpp @@ -36,9 +36,13 @@ STATE_DEFINE(dAcOropeIgaiga_c, Water); dCcD_SrcSph dAcOropeIgaiga_c::sSphSrc = { /* mObjInf */ - {/* mObjAt */ {AT_TYPE_DAMAGE, 0x1F, {0, 0, 0}, 1, 0, 0, 0, 0, 0}, + {/* mObjAt */ {AT_TYPE_DAMAGE, 0x1F, {0, 0, 0}, 1, 0, 0, 0, CUT_DIR_NONE, 0}, /* mObjTg */ - {~(AT_TYPE_WIND | AT_TYPE_0x8000 | AT_TYPE_GLITTERING_SPORES | AT_TYPE_BEETLE | AT_TYPE_BUGNET), 0x311, {0, 0, 0x407}, 0, 0}, + {~(AT_TYPE_WIND | AT_TYPE_0x8000 | AT_TYPE_GLITTERING_SPORES | AT_TYPE_BEETLE | AT_TYPE_BUGNET), + 0x311, + {0, 0, 0x407}, + 0, + CUT_DIR_NONE}, /* mObjCo */ {0xA9}}, /* mSphInf */ {20.f}, diff --git a/src/REL/d/a/obj/d_a_obj_seat_sword.cpp b/src/REL/d/a/obj/d_a_obj_seat_sword.cpp index 83f194bd..b9d8f4d8 100644 --- a/src/REL/d/a/obj/d_a_obj_seat_sword.cpp +++ b/src/REL/d/a/obj/d_a_obj_seat_sword.cpp @@ -25,8 +25,8 @@ STATE_DEFINE(dAcOSeatSword_c, Get); dCcD_SrcCyl dAcOSeatSword_c::sCylSrc = { /* mObjInf */ - {/* mObjAt */ {0, 0, {0, 0, 0}, 0, 0, 0, 0, 0, 0}, - /* mObjTg */ {0, 0x311, {0, 0, 0x407}, 0x0, 0x0}, + {/* mObjAt */ {0, 0, {0, 0, 0}, 0, 0, 0, 0, CUT_DIR_NONE, 0}, + /* mObjTg */ {0, 0x311, {0, 0, 0x407}, 0x0, CUT_DIR_NONE}, /* mObjCo */ {0xE9}}, /* mCylInf */ {20.f, 100.f} diff --git a/src/REL/d/a/obj/d_a_obj_soil.cpp b/src/REL/d/a/obj/d_a_obj_soil.cpp index 5a06cbf0..57cebabf 100644 --- a/src/REL/d/a/obj/d_a_obj_soil.cpp +++ b/src/REL/d/a/obj/d_a_obj_soil.cpp @@ -39,9 +39,9 @@ STATE_DEFINE(dAcOsoil_c, Ready); dCcD_SrcCyl dAcOsoil_c::sCylSrc = { /* mObjInf */ - {/* mObjAt */ {0, 0, {0, 0, 0}, 0, 0, 0, 0, 0, 0}, + {/* mObjAt */ {0, 0, {0, 0, 0}, 0, 0, 0, 0, CUT_DIR_NONE, 0}, /* mObjTg */ - {0, 0x111, {0, 0, 0x407}, 0, 0}, + {0, 0x111, {0, 0, 0x407}, 0, CUT_DIR_NONE}, /* mObjCo */ {0xC9}}, /* mCylInf */ {10.f, 15.f} diff --git a/src/REL/d/a/obj/d_a_obj_spike.cpp b/src/REL/d/a/obj/d_a_obj_spike.cpp index 3db060fe..9188021b 100644 --- a/src/REL/d/a/obj/d_a_obj_spike.cpp +++ b/src/REL/d/a/obj/d_a_obj_spike.cpp @@ -2,16 +2,20 @@ #include "d/a/obj/d_a_obj_base.h" #include "d/col/cc/d_cc_s.h" +#include "f/f_base.h" SPECIAL_ACTOR_PROFILE(OBJ_SPIKE, dAcOspike_c, fProfile::OBJ_SPIKE, 0x1D9, 0, 2); -// clang-format off dCcD_SrcUnk dAcOspike_c::sCcSrc = { - {{AT_TYPE_DAMAGE, 0x2003F, {0, 0, 0}, 1, 0, 0, 0, 0}, - {~(AT_TYPE_BUGNET | AT_TYPE_BEETLE | AT_TYPE_GLITTERING_SPORES | AT_TYPE_0x8000 | AT_TYPE_WIND), 0x111, 0x0, 0x06, 0x407, 0, }, - {0}}, - {-1.0f, -246.0f, -472.0f, 73.0f, 255.0f, 482.0f}}; -// clang-format on + {{AT_TYPE_DAMAGE, 0x2003F, {0, 0, 0}, 1, 0, 0, CUT_DIR_NONE, 0}, + {~(AT_TYPE_BUGNET | AT_TYPE_BEETLE | AT_TYPE_GLITTERING_SPORES | AT_TYPE_0x8000 | AT_TYPE_WIND), + 0x111, + {0x0, 0x06, 0x407}, + 0, + CUT_DIR_NONE}, + {0}}, + {-1.0f, -246.0f, -472.0f, 73.0f, 255.0f, 482.0f} +}; const mVec3_c dAcOspike_c::sVec1 = mVec3_c(-1.0f, -246.0f, -472.0f); const mVec3_c dAcOspike_c::sVec2 = mVec3_c(73.0f, 255.0f, 482.0f); @@ -68,19 +72,19 @@ int dAcOspike_c::create() { } int dAcOspike_c::doDelete() { - return 1; + return SUCCEEDED; } int dAcOspike_c::actorExecute() { mStateMgr.executeState(); mCollision.cM3dGUnk::Set(mPosition, mRotation.y); dCcS::GetInstance()->Set(&mCollision); - return 1; + return SUCCEEDED; } int dAcOspike_c::draw() { drawModelType1(&mMdl); - return 1; + return SUCCEEDED; } void dAcOspike_c::initializeState_Wait() {} 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 a4d9897e..cd66c54b 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 @@ -16,8 +16,8 @@ SPECIAL_ACTOR_PROFILE(OBJ_TARZAN_POLE, dAcOTarzanPole_c, fProfile::OBJ_TARZAN_PO // clang-format off dCcD_SrcSph dAcOTarzanPole_c::sCcSrc = { /* mObjInf */ { - /* mObjAt */ {0, 0, {0, 0, 0}, 0, 0, 0, 0, 0, 0}, - /* mObjTg */ {(AT_TYPE_WHIP | AT_TYPE_WIND), 0x800311, {0, 0, 0x407}, 0x0000, 0x0000}, + /* mObjAt */ {0, 0, {0, 0, 0}, 0, 0, 0, 0, CUT_DIR_NONE, 0}, + /* mObjTg */ {(AT_TYPE_WHIP | AT_TYPE_WIND), 0x800311, {0, 0, 0x407}, 0x0000, CUT_DIR_NONE}, /* mObjCo */ {0x00000000}}, /* mSphInf */ {10.0f} }; diff --git a/src/REL/d/a/obj/d_a_obj_toD3_stone_figure.cpp b/src/REL/d/a/obj/d_a_obj_toD3_stone_figure.cpp index 4f1e0e87..4eb1b451 100644 --- a/src/REL/d/a/obj/d_a_obj_toD3_stone_figure.cpp +++ b/src/REL/d/a/obj/d_a_obj_toD3_stone_figure.cpp @@ -18,12 +18,12 @@ f32 dAcOtoD3StoneFigure_c::sRadius = 85.0f; f32 dAcOtoD3StoneFigure_c::sHeight = 290.0f; dCcD_SrcCyl dAcOtoD3StoneFigure_c::sCcSrc = { - {{0, 0, {0, 0, 0}, 0, 0, 0, 0, 0, 0}, + {{0, 0, {0, 0, 0}, 0, 0, 0, 0, CUT_DIR_NONE, 0}, {~(AT_TYPE_BUGNET | AT_TYPE_BEETLE | AT_TYPE_GLITTERING_SPORES | AT_TYPE_0x8000 | AT_TYPE_WIND), 0x1000111, {0, 0x06, 0x407}, 0, - 0}, + CUT_DIR_NONE}, {0xE9}}, {dAcOtoD3StoneFigure_c::sRadius, dAcOtoD3StoneFigure_c::sHeight} }; diff --git a/src/REL/d/a/obj/d_a_obj_triforce.cpp b/src/REL/d/a/obj/d_a_obj_triforce.cpp index 9eaaec27..640762ea 100644 --- a/src/REL/d/a/obj/d_a_obj_triforce.cpp +++ b/src/REL/d/a/obj/d_a_obj_triforce.cpp @@ -10,8 +10,8 @@ SPECIAL_ACTOR_PROFILE(OBJ_TRIFORCE, dAcOtriforce_c, fProfile::OBJ_TRIFORCE, 0x15 // clang-format off dCcD_SrcSph dAcOtriforce_c::sCcSrc = { - {{0, 0, 0, 0, 0, 0, 0, 0, 0}, - {~(AT_TYPE_BUGNET | AT_TYPE_BEETLE | AT_TYPE_GLITTERING_SPORES | AT_TYPE_0x8000 | AT_TYPE_WIND), 0x111, 0x0, 0x06, 0x407, 0, 0}, + {{0, 0, 0, 0, 0, 0, 0, CUT_DIR_NONE, 0}, + {~(AT_TYPE_BUGNET | AT_TYPE_BEETLE | AT_TYPE_GLITTERING_SPORES | AT_TYPE_0x8000 | AT_TYPE_WIND), 0x111, 0x0, 0x06, 0x407, 0, CUT_DIR_NONE}, {0xE9}}, {150.0f}}; // clang-format on 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 83a90f23..232483c4 100644 --- a/src/REL/d/a/obj/d_a_obj_tubo.cpp +++ b/src/REL/d/a/obj/d_a_obj_tubo.cpp @@ -52,8 +52,9 @@ STATE_DEFINE(dAcOtubo_c, Rebirth); dCcD_SrcSph dAcOtubo_c::sSphSrc = { /* mObjInf */ - {/* mObjAt */ {AT_TYPE_PHYSICS, 0x12, {0, 0, 0}, 2, 0, 0, 0, 0, 0}, - /* mObjTg */ {~(AT_TYPE_BUGNET | AT_TYPE_GLITTERING_SPORES | AT_TYPE_0x8000), 0x801111, {0, 0xA, 0x40F}, 8, 0}, + {/* mObjAt */ {AT_TYPE_PHYSICS, 0x12, {0, 0, 0}, 2, 0, 0, 0, CUT_DIR_NONE, 0}, + /* mObjTg */ + {~(AT_TYPE_BUGNET | AT_TYPE_GLITTERING_SPORES | AT_TYPE_0x8000), 0x801111, {0, 0xA, 0x40F}, 8, CUT_DIR_NONE}, /* mObjCo */ {0x1E9}}, /* mSphInf */ {30.f}, 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 1a42712d..3e600b80 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 @@ -34,8 +34,9 @@ STATE_DEFINE(dAcOTumbleWeed_c, Slope); dCcD_SrcSph dAcOTumbleWeed_c::sSphSrc = { /* mObjInf */ - {/* mObjAt */ {0, 0, {0, 0, 0}, 0, 0, 0, 0, 0, 0}, - /* mObjTg */ {~(AT_TYPE_BEETLE | AT_TYPE_GLITTERING_SPORES | AT_TYPE_0x8000), 0x111, {0, 8, 0x40F}, 0, 0}, + {/* mObjAt */ {0, 0, {0, 0, 0}, 0, 0, 0, 0, CUT_DIR_NONE, 0}, + /* mObjTg */ + {~(AT_TYPE_BEETLE | AT_TYPE_GLITTERING_SPORES | AT_TYPE_0x8000), 0x111, {0, 8, 0x40F}, 0, CUT_DIR_NONE}, /* mObjCo */ {0xE9}}, /* mSphInf */ {60.f}, diff --git a/src/REL/d/a/obj/d_a_obj_warp_hole.cpp b/src/REL/d/a/obj/d_a_obj_warp_hole.cpp index b61cf595..0172c815 100644 --- a/src/REL/d/a/obj/d_a_obj_warp_hole.cpp +++ b/src/REL/d/a/obj/d_a_obj_warp_hole.cpp @@ -3,6 +3,7 @@ #include "c/c_lib.h" #include "d/a/d_a_player.h" #include "d/a/npc/d_a_npc_talk_kensei.h" +#include "d/col/c/c_cc_d.h" #include "d/col/cc/d_cc_s.h" #include "d/d_sc_game.h" #include "d/d_vec.h" @@ -13,9 +14,13 @@ SPECIAL_ACTOR_PROFILE(OBJ_WARP_HOLE, dAcOwarpHole_c, fProfile::OBJ_WARP_HOLE, 0x dCcD_SrcCyl dAcOwarpHole_c::sCylSrc = { /* mObjInf */ - {/* mObjAt */ {0, 0, {0, 0, 0}, 0, 0, 0, 0, 0, 0}, + {/* mObjAt */ {0, 0, {0, 0, 0}, 0, 0, 0, 0, CUT_DIR_NONE, 0}, /* mObjTg */ - {~(AT_TYPE_BUGNET | AT_TYPE_GLITTERING_SPORES | AT_TYPE_BEETLE | AT_TYPE_WIND | AT_TYPE_0x8000), 0x111, {0, 0, 0x407}, 0, 0}, + {~(AT_TYPE_BUGNET | AT_TYPE_GLITTERING_SPORES | AT_TYPE_BEETLE | AT_TYPE_WIND | AT_TYPE_0x8000), + 0x111, + {0, 0, 0x407}, + 0, + CUT_DIR_NONE}, /* mObjCo */ {0x29}}, /* mCylInf */ {320.f, 300.f} diff --git a/src/REL/d/t/d_t_reaction.cpp b/src/REL/d/t/d_t_reaction.cpp index 5ede15d2..89bf731c 100644 --- a/src/REL/d/t/d_t_reaction.cpp +++ b/src/REL/d/t/d_t_reaction.cpp @@ -21,8 +21,8 @@ const f32 dTgReaction_c::sHeight = 100.0f; // clang-format off dCcD_SrcCyl dTgReaction_c::sCcSrc = { - {{0, 0, 0, 0, 0, 0, 0, 0, 0}, - {AT_TYPE_BELLOWS, 0x213, {0, 0, 0x8},0x8}, + {{0, 0, 0, 0, 0, 0, 0, CUT_DIR_NONE, 0}, + {AT_TYPE_BELLOWS, 0x213, {0, 0, 0x8},0x8, CUT_DIR_NONE}, {0xE8}}, {dTgReaction_c::sRadius, dTgReaction_c::sHeight} }; @@ -74,19 +74,19 @@ int dTgReaction_c::create() { switch (getReactType()) { case REACT_SLINGSHOT: mCollision.SetTgType(AT_TYPE_SLINGSHOT); - mCollision.SetTgFlag_0xA(0); + mCollision.SetTgCutDir(CUT_DIR_NONE); mCollision.SetR(sCcSrc.mCylInf.mRadius * mScale.x); mCollision.SetH(sCcSrc.mCylInf.mHeight * mScale.y); break; case REACT_GUST_BELLOWS: mCollision.SetTgType(AT_TYPE_BELLOWS); - mCollision.SetTgFlag_0xA(8); + mCollision.SetTgCutDir(CUT_DIR_LD); mCollision.SetR(sCcSrc.mCylInf.mRadius * mScale.x); mCollision.SetH(sCcSrc.mCylInf.mHeight * mScale.y); break; case REACT_UNDERWATER: mCollision.SetTgType(AT_TYPE_BUBBLE); - mCollision.SetTgFlag_0xA(0); + mCollision.SetTgCutDir(CUT_DIR_NONE); mCollision.SetR(sCcSrc.mCylInf.mRadius * mScale.x); mCollision.SetH(sCcSrc.mCylInf.mHeight * mScale.y); break; diff --git a/src/d/a/d_a_item.cpp b/src/d/a/d_a_item.cpp index dbd17943..8b66fc41 100644 --- a/src/d/a/d_a_item.cpp +++ b/src/d/a/d_a_item.cpp @@ -260,8 +260,12 @@ static const GlitteringSporeRupeeChance sSporeRupeeChances[] = { }; static const dCcD_SrcCyl sSrcCyl = { - {{0, 0, {0, 0, 0}, 0, 0, 0, 0, 0, 0}, - {~(AT_TYPE_BEETLE | AT_TYPE_GLITTERING_SPORES | AT_TYPE_0x8000 | AT_TYPE_WIND), 0x111, {0, 0x08, 0x407}, 0, 0}, + {{0, 0, {0, 0, 0}, 0, 0, 0, 0, CUT_DIR_NONE, 0}, + {~(AT_TYPE_BEETLE | AT_TYPE_GLITTERING_SPORES | AT_TYPE_0x8000 | AT_TYPE_WIND), + 0x111, + {0, 0x08, 0x407}, + 0, + CUT_DIR_NONE}, {0xE9}}, {40.0f, 60.0f} }; diff --git a/src/d/a/d_a_salbage_obj.cpp b/src/d/a/d_a_salbage_obj.cpp index 33c183ee..81b7173d 100644 --- a/src/d/a/d_a_salbage_obj.cpp +++ b/src/d/a/d_a_salbage_obj.cpp @@ -26,9 +26,9 @@ STATE_DEFINE(dAcSalbageObj_c, Kill); static dCcD_SrcCyl sCylSrc = { /* mObjInf */ - {/* mObjAt */ {0, 0, {0, 0, 0}, 0, 0, 0, 0, 0, 0}, + {/* mObjAt */ {0, 0, {0, 0, 0}, 0, 0, 0, 0, CUT_DIR_NONE, 0}, /* mObjTg */ - {~0, 0x111, {0, 0x02, 0x407}, 0, 0}, + {~0, 0x111, {0, 0x02, 0x407}, 0, CUT_DIR_NONE}, /* mObjCo */ {0xE9}}, /* mCylInf */ {0.0f, 0.0f} diff --git a/src/d/a/obj/d_a_obj_arrow.cpp b/src/d/a/obj/d_a_obj_arrow.cpp index 41c919b0..ef1ebdac 100644 --- a/src/d/a/obj/d_a_obj_arrow.cpp +++ b/src/d/a/obj/d_a_obj_arrow.cpp @@ -66,10 +66,10 @@ STATE_DEFINE(dAcArrow_c, Bound); // clang-format off cCcD_SrcGObj dAcArrow_c::sCcSrcInf = { - {AT_TYPE_ARROW, 0x8BB, {0x15,0, 0}, sDamageArrMaybe[0], 0, 0, 0, 0, 0}, + {AT_TYPE_ARROW, 0x8BB, {0x15,0, 0}, sDamageArrMaybe[0], 0, 0, 0, CUT_DIR_NONE, 0}, { ~(AT_TYPE_BUGNET | AT_TYPE_BEETLE | AT_TYPE_GLITTERING_SPORES | AT_TYPE_0x8000 | AT_TYPE_ARROW | AT_TYPE_0x100 | AT_TYPE_WIND | AT_TYPE_SLINGSHOT), - 0x210, {0, 0, 0x407}, 0, 0 + 0x210, {0, 0, 0x407}, 0, CUT_DIR_NONE }, {0}, }; @@ -80,8 +80,8 @@ dCcD_SrcCps dAcArrow_c::sCc1 = { }; const dCcD_SrcSph dAcArrow_c::sCc2 = { - {{0x0, 0x0, 0x0, 0, 0, 0, 0, 0, 0}, - {AT_TYPE_SWORD, 0x211, {0, 0, 0x407}, 0, 0}, + {{0x0, 0x0, 0x0, 0, 0, 0, 0, CUT_DIR_NONE, 0}, + {AT_TYPE_SWORD, 0x211, {0, 0, 0x407}, 0, CUT_DIR_NONE}, {0xC28}}, {100.0f}, }; diff --git a/src/d/a/obj/d_a_obj_bomb.cpp b/src/d/a/obj/d_a_obj_bomb.cpp index 339548d5..05d5e931 100644 --- a/src/d/a/obj/d_a_obj_bomb.cpp +++ b/src/d/a/obj/d_a_obj_bomb.cpp @@ -85,9 +85,13 @@ STATE_DEFINE(dAcBomb_c, WindCarry); dCcD_SrcSph sSphSrc = { /* mObjInf */ - {/* mObjAt */ {AT_TYPE_BOMB, 0x1803E, {0, 0, 0}, sHIO.getSomething(), 0, 0, 0, 0, 0}, + {/* mObjAt */ {AT_TYPE_BOMB, 0x1803E, {0, 0, 0}, sHIO.getSomething(), 0, 0, 0, CUT_DIR_NONE, 0}, /* mObjTg */ - {~(AT_TYPE_BUGNET | AT_TYPE_GLITTERING_SPORES | AT_TYPE_0x8000 | AT_TYPE_0x10), 0x800111, {0, 0x0A, 0x40F}, 0, 0}, + {~(AT_TYPE_BUGNET | AT_TYPE_GLITTERING_SPORES | AT_TYPE_0x8000 | AT_TYPE_0x10), + 0x800111, + {0, 0x0A, 0x40F}, + 0, + CUT_DIR_NONE}, /* mObjCo */ {0xE9}}, /* mSphInf */ {sHIO.getBombScale()} diff --git a/src/d/a/obj/d_a_obj_boomerang.cpp b/src/d/a/obj/d_a_obj_boomerang.cpp index ad220988..d7c707f1 100644 --- a/src/d/a/obj/d_a_obj_boomerang.cpp +++ b/src/d/a/obj/d_a_obj_boomerang.cpp @@ -32,8 +32,8 @@ dBgS_BeetleLinChk dAcBoomerang_c::sLinChk; dCcD_SrcSph dAcBoomerang_c::sSphSrc = { - {{AT_TYPE_BEETLE, BoomerangAtFlags, {4, 0, 0}, 0, 1, 0, 0, 0}, - {~AT_TYPE_COMMON0, 0x291, {0, 0, 0x407}, 0, 0}, + {{AT_TYPE_BEETLE, BoomerangAtFlags, {4, 0, 0}, 0, 1, 0, CUT_DIR_NONE, 0}, + {~AT_TYPE_COMMON0, 0x291, {0, 0, 0x407}, 0, CUT_DIR_NONE}, {0x28}}, {15.f} }; diff --git a/src/d/a/obj/d_a_obj_fairy.cpp b/src/d/a/obj/d_a_obj_fairy.cpp index 7dd556e3..e6b173e7 100644 --- a/src/d/a/obj/d_a_obj_fairy.cpp +++ b/src/d/a/obj/d_a_obj_fairy.cpp @@ -32,8 +32,8 @@ SPECIAL_ACTOR_PROFILE(OBJ_FAIRY, dAcOFairy_c, fProfile::OBJ_FAIRY, 0x22D, 0, 0x2 static dCcD_SrcSph sSphSrc1 = { /* mObjInf */ - {/* mObjAt */ {0, 0, {0, 0, 0}, 0, 0, 0, 0, 0, 0}, - /* mObjTg */ {AT_TYPE_BUGNET | AT_TYPE_BELLOWS | AT_TYPE_WIND, 0x200311, {0, 0, 0x40F}, 0, 0}, + {/* mObjAt */ {0, 0, {0, 0, 0}, 0, 0, 0, 0, CUT_DIR_NONE, 0}, + /* mObjTg */ {AT_TYPE_BUGNET | AT_TYPE_BELLOWS | AT_TYPE_WIND, 0x200311, {0, 0, 0x40F}, 0, CUT_DIR_NONE}, /* mObjCo */ {0}}, /* mSphInf */ {30.f}, @@ -41,8 +41,8 @@ static dCcD_SrcSph sSphSrc1 = { static dCcD_SrcSph sSphSrc2 = { /* mObjInf */ - {/* mObjAt */ {0, 0x0, {0, 0, 0}, 0, 0, 0, 0, 0, 0}, - /* mObjTg */ {0, 0x0, {0, 0, 0x40F}, 0, 0}, + {/* mObjAt */ {0, 0x0, {0, 0, 0}, 0, 0, 0, 0, CUT_DIR_NONE, 0}, + /* mObjTg */ {0, 0x0, {0, 0, 0x40F}, 0, CUT_DIR_NONE}, /* mObjCo */ {0x29}}, /* mSphInf */ {10.f}, diff --git a/src/d/a/obj/d_a_obj_tbox.cpp b/src/d/a/obj/d_a_obj_tbox.cpp index 45ce812f..55363407 100644 --- a/src/d/a/obj/d_a_obj_tbox.cpp +++ b/src/d/a/obj/d_a_obj_tbox.cpp @@ -92,8 +92,8 @@ static char *const sOpenEventNames[] = { // clang-format off // TODO just copied from somewhere const cCcD_SrcGObj dAcTbox_c::sColSrc = { - /* mObjAt */ {0, 0, {0, 0, 0}, 0, 0, 0, 0, 0, 0}, - /* mObjTg */ {~(AT_TYPE_BUGNET | AT_TYPE_BEETLE | AT_TYPE_GLITTERING_SPORES | AT_TYPE_0x8000 | AT_TYPE_WIND), 0, {0, 0, 0x407}, 0, 0}, + /* mObjAt */ {0, 0, {0, 0, 0}, 0, 0, 0, 0, CUT_DIR_NONE, 0}, + /* mObjTg */ {~(AT_TYPE_BUGNET | AT_TYPE_BEETLE | AT_TYPE_GLITTERING_SPORES | AT_TYPE_0x8000 | AT_TYPE_WIND), 0, {0, 0, 0x407}, 0, CUT_DIR_NONE}, /* mObjCo */ {0xE9} }; // clang-format on @@ -1079,8 +1079,8 @@ int dAcTbox_c::create() { if (mVariant == SMALL) { // clang-format off static const dCcD_SrcUnk s3 = {{ - /* mObjAt */ {0, 0, {0, 0, 0}, 0, 0, 0, 0, 0, 0}, - /* mObjTg */ {~(AT_TYPE_BUGNET | AT_TYPE_BEETLE | AT_TYPE_GLITTERING_SPORES | AT_TYPE_0x8000 | AT_TYPE_WIND), 0x1010111, {7, 0x407}, 0, 0}, + /* mObjAt */ {0, 0, {0, 0, 0}, 0, 0, 0, 0, CUT_DIR_NONE, 0}, + /* mObjTg */ {~(AT_TYPE_BUGNET | AT_TYPE_BEETLE | AT_TYPE_GLITTERING_SPORES | AT_TYPE_0x8000 | AT_TYPE_WIND), 0x1010111, {7, 0, 0x407}, 0, CUT_DIR_NONE}, /* mObjCo */ {0x0}}, {0.0f, 0.0f, 0.0f, 1.0f, 1.0f, 1.0f}, }; @@ -1090,8 +1090,8 @@ int dAcTbox_c::create() { } else { // clang-format off static const dCcD_SrcUnk s4 = {{ - /* mObjAt */ {0, 0, {0, 0, 0}, 0, 0, 0, 0, 0, 0}, - /* mObjTg */ {~(AT_TYPE_BUGNET | AT_TYPE_BEETLE | AT_TYPE_GLITTERING_SPORES | AT_TYPE_0x8000 | AT_TYPE_WIND), 0x1010111, {6, 0x407}, 0, 0}, + /* mObjAt */ {0, 0, {0, 0, 0}, 0, 0, 0, 0, CUT_DIR_NONE, 0}, + /* mObjTg */ {~(AT_TYPE_BUGNET | AT_TYPE_BEETLE | AT_TYPE_GLITTERING_SPORES | AT_TYPE_0x8000 | AT_TYPE_WIND), 0x1010111, {6, 0, 0x407}, 0, CUT_DIR_NONE}, /* mObjCo */ {0x0}}, {0.0f, 0.0f, 0.0f, 1.0f, 1.0f, 1.0f}, }; diff --git a/src/d/col/c/c_cc_d.cpp b/src/d/col/c/c_cc_d.cpp index ebf84503..64ab3163 100644 --- a/src/d/col/c/c_cc_d.cpp +++ b/src/d/col/c/c_cc_d.cpp @@ -486,12 +486,12 @@ bool cCcD_Obj::ChkTgBit25() const { return mTg.MskAtHitSPrm(0x2000000); } -s32 cCcD_Obj::GetTgSoundID() const { - return mTg.mAtHitSrc.field_0x10; +s32 cCcD_Obj::GetTgAtCutDir() const { + return mTg.mAtHitSrc.mCutDir; } -s16 cCcD_Obj::GetTg_0x6A() const { - return mTg.mAtHitSrc.field_0x12; +s16 cCcD_Obj::GetTgAtCutAng() const { + return mTg.mAtHitSrc.mCutAng; } bool cCcD_Obj::ChkTgBit8() const { diff --git a/src/d/tg/d_t_mass_object.cpp b/src/d/tg/d_t_mass_object.cpp index 6c58db5b..a9ebc8e5 100644 --- a/src/d/tg/d_t_mass_object.cpp +++ b/src/d/tg/d_t_mass_object.cpp @@ -874,9 +874,9 @@ bool dTgMassObjInstance::checkForHit( } hitPosition = link->mPosition; distance = mGroundHeight.distance(hitPosition); - if ((s32)link->getSpecificAttackDirection() == dAcPy_c::ATTACK_DIRECTION_DOWN || - (s32)link->getSpecificAttackDirection() == dAcPy_c::ATTACK_DIRECTION_UP || - (s32)link->getSpecificAttackDirection() == dAcPy_c::ATTACK_DIRECTION_STAB) { + if ((s32)link->getSpecificAttackDirection() == CUT_DIR_U || + (s32)link->getSpecificAttackDirection() == CUT_DIR_D || + (s32)link->getSpecificAttackDirection() == CUT_DIR_STAB) { if (distance < fVar20) { isNotCut = 0; } else { @@ -893,8 +893,8 @@ bool dTgMassObjInstance::checkForHit( hitPosition = dAcPy_c::GetLink()->getSwordPos(); distance = mGroundHeight.distance(hitPosition); - if ((s32)link->getSpecificAttackDirection() != dAcPy_c::ATTACK_DIRECTION_DOWNRIGHT && - (s32)link->getSpecificAttackDirection() != dAcPy_c::ATTACK_DIRECTION_DOWNLEFT) { + if ((s32)link->getSpecificAttackDirection() != CUT_DIR_LU && + (s32)link->getSpecificAttackDirection() != CUT_DIR_RU) { return true; } if (distance >= fVar21) { diff --git a/src/toBeSorted/d_enemy_sword_mdl.cpp b/src/toBeSorted/d_enemy_sword_mdl.cpp index aee66acc..366a5535 100644 --- a/src/toBeSorted/d_enemy_sword_mdl.cpp +++ b/src/toBeSorted/d_enemy_sword_mdl.cpp @@ -1,6 +1,7 @@ #include "toBeSorted/d_enemy_sword_mdl.h" #include "common.h" +#include "d/col/c/c_cc_d.h" #include "d/col/cc/d_cc_s.h" #include "d/d_sc_game.h" #include "m/m3d/m_shadow.h" @@ -11,8 +12,8 @@ dCcD_SrcCps sCcSrc = { { - {AT_TYPE_DAMAGE, 0x8D, {1, 0, 0}, 1, 0, 0, 0, 0, 0}, - {0, 0, {0, 0, 0x407}, 0, 0}, + {AT_TYPE_DAMAGE, 0x8D, {1, 0, 0}, 1, 0, 0, 0, CUT_DIR_NONE, 0}, + {0, 0, {0, 0, 0x407}, 0, CUT_DIR_NONE}, {0}, }, {30.0f},