diff options
| author | elijah-thomas774 <elijahthomas774@gmail.com> | 2026-05-14 17:50:49 -0400 |
|---|---|---|
| committer | elijah-thomas774 <elijahthomas774@gmail.com> | 2026-05-24 20:34:42 -0400 |
| commit | d2d52cc88c6c4223d6eb892055c73bd937054e2f (patch) | |
| tree | a02861cc489adfd897cb123d66b229947ecd32ac /include/d | |
| parent | 5b6788804a0d401aba6b2cfb6dc90e137e6dc02a (diff) | |
dAcEKs_c + dTgKiesuTag_c progress
Diffstat (limited to 'include/d')
| -rw-r--r-- | include/d/a/e/d_a_e_ks.h | 129 | ||||
| -rw-r--r-- | include/d/a/e/d_a_en_base.h | 7 | ||||
| -rw-r--r-- | include/d/a/obj/d_a_obj_base.h | 3 | ||||
| -rw-r--r-- | include/d/col/c/c_cc_d.h | 2 | ||||
| -rw-r--r-- | include/d/d_pouch.h | 2 | ||||
| -rw-r--r-- | include/d/t/d_t_ks.h | 78 |
6 files changed, 201 insertions, 20 deletions
diff --git a/include/d/a/e/d_a_e_ks.h b/include/d/a/e/d_a_e_ks.h index 21f29941..05e94685 100644 --- a/include/d/a/e/d_a_e_ks.h +++ b/include/d/a/e/d_a_e_ks.h @@ -43,25 +43,46 @@ public: STATE_FUNC_DECLARE(dAcEKs_c, WindBlow); STATE_FUNC_DECLARE(dAcEKs_c, PathMove); + STATE_MGR_DEFINE_UTIL_CHANGESTATE(dAcEKs_c); + STATE_MGR_DEFINE_UTIL_ISSTATE(dAcEKs_c); + public: void linkKiesuTag(dTgKiesuTag_c *pTgKs); void setStartingState(); void setIdleState(); + void fn_155_A60(); + f32 getLineCrossYRange(const mVec3_c &pos, f32 range); + void kill(bool dropItem); + void chaseTargetY(f32, f32); + void playBlinkAnm(); + void soundSqueak(); + void soundStun(); + void fn_155_1430(); + + void fn_155_1470(); + + // Move impl? + void fn_155_1C80(); + /* 0 -> blink_1, 1 -> blink_2, 2 -> blink_3*/ void setBlink(u8 blink); void setBlinkChecked(u8 blink); + + void fn_155_2270(); + /* p1 = 0 -> just LineCross return check, 1 -> increment field_0xDCB till 10 then return check*/ bool fn_155_29D0(s32 p1); + bool fn_155_2B80(bool b, s32 p1); bool fn_155_2D60(bool b, s32 p1); bool fn_155_2EA0(); bool isOutsideRange(); bool isNotWaitingNorDamage(); bool isTargeted(); - bool ChkWall(); - void ChkGnd(); - void ChkRoof(); + bool checkWallCross(); + void adjustTargetGnd(); + void adjustTargetRoof(); bool ChkHit(); void fn_155_3460(); void fn_155_3480(); @@ -79,9 +100,17 @@ public: void setPitchYawToPoint(const mVec3_c &pnt); void fn_155_3BD0(const mVec3_c &); void fn_155_3BE0(const mVec3_c &); + void clampRotationX(); + bool checkPathPntParam(u32 param); + void fn_155_3E30(); void fn_155_3E90(); void fn_155_3EC0(); + /* Some Timestone Check */ + bool fn_155_3EF0(); + + void fn_155_3F50(); + private: /* 0x378 */ dAcRef_c<dTgKiesuTag_c> mTgRef; /* 0x384 */ nw4r::g3d::ResFile mResFile; @@ -101,44 +130,112 @@ private: /* 0xAA8 */ u8 field_0xAB0; /* 0xAB1 */ u8 _0xAB1[0xB14 - 0xAB1]; /* 0xB14 */ mVec3_c mPnts[10]; - /* 0xB8C */ u8 _0xB8C[0xBB0 - 0xB8C]; - /* 0xBB0 */ mVec3_c field_0xBB0; + /* 0xB8C */ mVec3_c field_0xB8C; + /* 0xB98 */ u8 _0xB98[0xBB0 - 0xB98]; + /* 0xBB0 */ mVec3_c mTargetPos; /* 0xBBC */ mVec3_c field_0xBBC; - /* 0xBC8 */ u8 _0xBC8[0xBF8 - 0xBC8]; + /* 0xBC8 */ mVec3_c field_0xBC8; + /* 0xBD4 */ mVec3_c field_0xBD4; + /* 0xBE0 */ mVec3_c field_0xBE0; + /* 0xBEC */ mVec3_c field_0xBEC; /* 0xBF8 */ mVec3_c field_0xBF8; - /* 0xC04 */ u8 _0xC04[0xC28 - 0xC04]; + /* 0xC04 */ mVec3_c field_0xC04; + /* 0xC10 */ mVec3_c field_0xC10; + /* 0xC1C */ mVec3_c field_0xC1C; /* 0xC28 */ mVec3_c field_0xC28; /* 0xC34 */ mAng mPitch_0xC34; /* 0xC36 */ mAng mYaw_0xC36; /* 0xC38 */ u8 _0xC38[0xC3C - 0xC38]; /* 0xC3C */ f32 field_0xC3C; /* 0xC40 */ f32 field_0xC40; - /* 0xC44 */ u8 _0xC44[0xD1C - 0xC44]; + /* 0xC44 */ f32 field_0xC44; + /* 0xC48 */ f32 field_0xC48; + /* 0xC4C */ u8 _0xC4C[0xC70 - 0xC4C]; + /* 0xC70 */ f32 field_0xC70; + /* 0xC74 */ u8 _0xC74[0xD00 - 0xC74]; + /* 0xD00 */ f32 field_0xD00; + /* 0xD04 */ f32 field_0xD04; + /* 0xD08 */ f32 field_0xD08; + /* 0xD0C */ f32 field_0xD0C; + /* 0xD10 */ f32 field_0xD10; + /* 0xD14 */ f32 field_0xD14; + /* 0xD18 */ f32 field_0xD18; /* 0xD1C */ f32 field_0xD1C; /* 0xD20 */ f32 field_0xD20; /* 0xD24 */ u8 _0xD24[0xD32 - 0xD24]; /* 0xD32 */ s16 mTimer; - /* 0xD34 */ u8 _0xD34[0xD60 - 0xD34]; + /* 0xD34 */ u8 _0xD34[0xD52 - 0xD34]; + /* 0xD52 */ s16 field_0xD52; + /* 0xD54 */ s16 field_0xD54; + /* 0xD56 */ u8 _0xD56[0xD5E - 0xD56]; + /* 0xD5E */ s16 field_0xD5E; /* 0xD60 */ s16 field_0xD60; - /* 0xD62 */ u8 _0xD62[0xDA6 - 0xD62]; + /* 0xD62 */ u8 _0xD62[0xD6A - 0xD62]; + /* 0xD6A */ s16 field_0xD6A; + /* 0xD6C */ s16 field_0xD6C; + /* 0xD6E */ s16 field_0xD6E; + /* 0xD70 */ s16 field_0xD70; + /* 0xD72 */ s16 field_0xD72; + /* 0xD74 */ s16 field_0xD74; + /* 0xD76 */ s16 field_0xD76; + /* 0xD78 */ s16 mBlinkTimer; + /* 0xD7A */ s16 field_0xD7A; + /* 0xD7C */ s16 field_0xD7C; + /* 0xD7E */ s16 mSqueakSoundTimer; + /* 0xD80 */ s16 mStunSoundTimer; + /* 0xD82 */ s16 field_0xD82; + /* 0xD84 */ s16 field_0xD84; + /* 0xD86 */ s16 field_0xD86; + /* 0xD88 */ s16 field_0xD88; + /* 0xD8A */ s16 field_0xD8A; + /* 0xD8C */ s16 field_0xD8C; + /* 0xD8E */ s16 field_0xD8E; + /* 0xD90 */ s16 field_0xD90; + /* 0xD92 */ s16 field_0xD92; + /* 0xD94 */ s16 field_0xD94; + /* 0xD96 */ s16 field_0xD96; + /* 0xD98 */ s16 field_0xD98; + /* 0xD9A */ s16 field_0xD9A; + /* 0xD9C */ s16 field_0xD9C; + /* 0xD9E */ s16 field_0xD9E; + /* 0xDA0 */ s16 field_0xDA0; + /* 0xDA2 */ u8 _0xDA2[0xDA5 - 0xDA2]; + /* 0xDA5 */ u8 field_0xDA5; /* 0xDA6 */ u8 field_0xDA6; /* 0xDA7 */ u8 field_0xDA7; /* 0xDA8 */ u8 field_0xDA8; /* 0xDA9 */ u8 field_0xDA9; - /* 0xDAA */ u8 _0xDAA[0xDB1 - 0xDAA]; + /* 0xDAA */ u8 _0xDAA[0xDAF - 0xDAA]; + /* 0xDAF */ u8 field_0xDAF; + /* 0xDB0 */ u8 field_0xDB0; /* 0xDB1 */ u8 field_0xDB1; /* 0xDB2 */ u8 field_0xDB2; - /* 0xDB3 */ u8 _0xDB3[0xDBB - 0xDB3]; + /* 0xDB3 */ u8 field_0xDB3; + /* 0xDB4 */ u8 field_0xDB4; + /* 0xDB5 */ u8 field_0xDB5; + /* 0xDB6 */ u8 field_0xDB6; + /* 0xDB7 */ u8 field_0xDB7; + /* 0xDB8 */ u8 field_0xDB8; + /* 0xDB9 */ u8 field_0xDB9; + /* 0xDBA */ u8 field_0xDBA; /* 0xDBB */ u8 field_0xDBB; /* 0xDBC */ u8 mType; - /* 0xDBD */ u8 _0xDBD[0xDC0 - 0xDBD]; - /* 0xDC2 */ u8 mCurrentAnmTexPat; // blink + /* 0xDBD */ u8 field_0xDBD; + /* 0xDBE */ u8 field_0xDBE; + /* 0xDBF */ u8 field_0xDBF; + /* 0xDC0 */ u8 mCurrentAnmTexPat; // blink /* 0xDC1 */ u8 field_0xDC1; /* 0xDC2 */ u8 mCurrentState; /* 0xDC3 */ u8 mNextState; - /* 0xDC4 */ u8 _0xDC4[0xDC7 - 0xDC4]; + /* 0xDC4 */ u8 field_0xDC4; + /* 0xDC5 */ u8 field_0xDC5; + /* 0xDC6 */ u8 field_0xDC6; /* 0xDC7 */ u8 mStartingState; - /* 0xDC8 */ u8 _0xDC8[0xDCF - 0xDB8]; + /* 0xDC8 */ u8 field_0xDC8; + /* 0xDC9 */ u8 field_0xDC9; + /* 0xDCA */ u8 field_0xDCA; + /* 0xDCB */ u8 field_0xDCB; + /* 0xDCC */ u8 _0xDCC[0xDCF - 0xDCC]; /* 0xDCF */ u8 field_0xDCF; /* 0xDD0 */ u8 _0xDD0[0xDD4 - 0xDD0]; /* 0xDD4 */ mVec3_c mHomePos; diff --git a/include/d/a/e/d_a_en_base.h b/include/d/a/e/d_a_en_base.h index d94633c6..3dc5d670 100644 --- a/include/d/a/e/d_a_en_base.h +++ b/include/d/a/e/d_a_en_base.h @@ -68,6 +68,9 @@ public: dAcBomb_c *getBombWithinRadius(f32 radius); // fn_8002f700 + void playDeathEffect0(const mVec3_c &pos, const mVec3_c *pScale, bool skipKill); + void playDeathEffect1(const mVec3_c &pos, const mVec3_c *pScale, bool skipKill); + // Deals with dealing damage to Enemy // Returns a value 0-13 (similar to mStts rank?) int fn_8002FDE0(cCcD_Obj &mCc, u16 *pTgOut); @@ -75,9 +78,9 @@ public: // Returns 0-3 based on collision int fn_800301b0(const mVec3_c &pos, mAng ang, bool, f32); void fn_80030400(m3d::mdl_c &, u8, bool, u8); - void fn_800306d0(); + void fn_800306D0(); void fn_80030700(); - dAcObjBase_c *attackPlayerOrScrapper(f32 biasToScrapper); + dAcObjBase_c *targetPlayerOrScrapper(f32 biasToScrapper); static void fn_80030980(m3d::mdl_c &, s32, bool markDirty); void fn_80030c20(u32 flags, f32, f32, f32, f32); diff --git a/include/d/a/obj/d_a_obj_base.h b/include/d/a/obj/d_a_obj_base.h index b2ae203d..fab81e6d 100644 --- a/include/d/a/obj/d_a_obj_base.h +++ b/include/d/a/obj/d_a_obj_base.h @@ -101,6 +101,9 @@ public: mVec3_c &getStartingPosition() { return mStartingPos; } + const mVec3_c &getStartingPos() const { + return mStartingPos; + } void setStartingPosition(const mVec3_c &v) { mStartingPos = v; } diff --git a/include/d/col/c/c_cc_d.h b/include/d/col/c/c_cc_d.h index 7d8c49e9..362d88b1 100644 --- a/include/d/col/c/c_cc_d.h +++ b/include/d/col/c/c_cc_d.h @@ -813,7 +813,7 @@ public: bool ChkTgBit23() const; bool ChkTgBit24() const; bool ChkTgBit25() const; - u16 GetTgSoundID() const; + s32 GetTgSoundID() const; s16 GetTg_0x6A() const; bool ChkTgBit8() const; u8 GetTg_0x4A() const; diff --git a/include/d/d_pouch.h b/include/d/d_pouch.h index 3b3ae555..1c10c91f 100644 --- a/include/d/d_pouch.h +++ b/include/d/d_pouch.h @@ -25,6 +25,8 @@ bool swapStockItems(s32 slot1, s32 slot2); void sortStock(); +bool tryDropItem(f32 chance); + #define ITEM_CHECK_SLOT_NONE 60 u16 itemCheckFindItemSlot(ITEM_ID item); diff --git a/include/d/t/d_t_ks.h b/include/d/t/d_t_ks.h index e0b066c0..bfa0afb9 100644 --- a/include/d/t/d_t_ks.h +++ b/include/d/t/d_t_ks.h @@ -1,9 +1,16 @@ #ifndef D_T_KS_H #define D_T_KS_H +#include "d/a/d_a_base.h" #include "d/t/d_tg.h" +#include "m/m_angle.h" +#include "m/m_mtx.h" +#include "m/m_vec.h" #include "s/s_State.hpp" +#include "toBeSorted/d_path.h" +#include "toBeSorted/time_area_mgr.h" +class dAcEKs_c; class dTgKiesuTag_c : public dTg_c { public: dTgKiesuTag_c() : mStateMgr(*this) {} @@ -17,8 +24,77 @@ public: STATE_FUNC_DECLARE(dTgKiesuTag_c, ControlPathMove); STATE_FUNC_DECLARE(dTgKiesuTag_c, DoNothing); + /* fn_154_8B0 */ + mVec3_c &getSpawnKsPosition(); + + void incrementField_0x456() { + field_0x456++; + } + private: - /* 0x??? */ STATE_MGR_DECLARE(dTgKiesuTag_c); + /* 0x0FC */ STATE_MGR_DECLARE(dTgKiesuTag_c); + /* 0x138 */ dAcRef_c<dAcEKs_c> mKsRefs[16]; + /* 0x1F8 */ mMtx_c mAreaMtx; + /* 0x228 */ ActorOnRail_Ext mRail; + /* 0x25C */ TimeAreaStruct mTimeArea; + /* 0x268 */ mMtx_c field_0x268; + + /* 0x31C */ mVec3_c field_0x31C; + /* 0x328 */ mVec3_c field_0x328; + /* 0x334 */ mVec3_c field_0x334; + /* 0x340 */ mVec3_c field_0x340; + /* 0x34C */ mVec3_c field_0x34C; + + /* 0x37C */ mVec3_c mTargetPosition; + /* 0x388 */ mVec3_c mSpawnKsPosition; + + /* 0x3A0 */ mAng3_c mSpawnKsAngle; + /* 0x3A8 */ mAng3_c field_0x3A8; + /* 0x3AC */ mAng field_0x3AC; // pitch + /* 0x3AE */ mAng field_0x3AE; // yaw + + /* 0x3B4 */ f32 field_0x3B4; + /* 0x3B8 */ f32 field_0x3B8; // Y pos offset + /* 0x3BC */ f32 field_0x3BC; // X/Z scale + /* 0x3C0 */ f32 field_0x3C0; // Y scale + + /* 0x3D8 */ f32 field_0x3D8; // Y scale + /* 0x3DC */ f32 field_0x3DC; // X/Z scale + + /* 0x3EC */ mVec3_c field_0x3EC; + + /* 0x44C */ s16 field_0x448; + + // Related to Control? + /* 0x44C */ s16 field_0x44C; + /* 0x44E */ s16 field_0x44E; + /* 0x450 */ s16 field_0x450; + + // Related to ControlFighting? + /* 0x452 */ s16 field_0x452; + /* 0x454 */ s16 field_0x454; + /* 0x456 */ s16 field_0x456; + /* 0x458 */ s16 field_0x458; + /* 0x45A */ s16 field_0x45A; + /* 0x45C */ s16 field_0x45C; + /* 0x45E */ s16 field_0x45E; + + /* 0x460 */ s16 field_0x460; + /* 0x462 */ s16 mMaxKsToLink; + + /* 0x468 */ s16 field_0x468; + + /* 0x46C */ s16 mNumKsAlive; + /* 0x46E */ s16 field435_0x46e; + + /* 0x44A */ s16 mNumKsControl; + + /* 0x474 */ bool field_0x474; + /* 0x47E */ bool mbAllKsActive; + + /* 0x48A */ u8 field_0x48A; // Related to getting spawnPos/ Type? + + /* 0x48E */ u8 mNumKsActive; }; #endif |
