diff options
| author | Carco_21 <144170194+carter-ktb21@users.noreply.github.com> | 2025-08-12 13:54:06 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-08-12 20:54:06 +0300 |
| commit | 4ade12fd6422b1444c0aa73083506d6dadab9ed3 (patch) | |
| tree | 6a7422f07e59f4a1e1a8ebd6710f530aa4a078dc /include | |
| parent | 58a6d8d7931e982a4d00fe14d30f2bf325ac4e84 (diff) | |
d_a_npc_coach work (#2579)
* data and class member work
* inline work
* got to SetCoachBlazing
* work on some calc functions
* all functions worked on
* pr cleanup
* more pr cleanup
* coach header cleanup
Diffstat (limited to 'include')
| -rw-r--r-- | include/d/actor/d_a_coach_2D.h | 2 | ||||
| -rw-r--r-- | include/d/actor/d_a_e_kr.h | 3 | ||||
| -rw-r--r-- | include/d/actor/d_a_npc_coach.h | 327 | ||||
| -rw-r--r-- | include/d/actor/d_a_npc_theB.h | 25 | ||||
| -rw-r--r-- | include/d/d_bg_s_acch.h | 3 | ||||
| -rw-r--r-- | include/d/d_bg_w.h | 1 | ||||
| -rw-r--r-- | include/d/d_path.h | 4 | ||||
| -rw-r--r-- | include/d/d_tresure.h | 4 | ||||
| -rw-r--r-- | include/m_Do/m_Do_ext.h | 8 |
9 files changed, 341 insertions, 36 deletions
diff --git a/include/d/actor/d_a_coach_2D.h b/include/d/actor/d_a_coach_2D.h index aa281afaab..f20a6668d5 100644 --- a/include/d/actor/d_a_coach_2D.h +++ b/include/d/actor/d_a_coach_2D.h @@ -46,6 +46,8 @@ public: void show() { mIsVisible = true; } void hide() { mIsVisible = false; } bool isVisible() { return mIsVisible ? true : false; } + void setHitCount(u8 i_hitCount) { mHitCount = i_hitCount; } + void setMaxHitCount(u8 i_maxHitCount) { mMaxHitCount = i_maxHitCount; } /* 0x574 */ J2DScreen* mpScrn; /* 0x578 */ J2DAnmTevRegKey* mpFireIconBrk; diff --git a/include/d/actor/d_a_e_kr.h b/include/d/actor/d_a_e_kr.h index 4a93509645..9252341cba 100644 --- a/include/d/actor/d_a_e_kr.h +++ b/include/d/actor/d_a_e_kr.h @@ -18,6 +18,9 @@ class e_kr_class { public: /* 80705004 */ e_kr_class(); + s32 getId() { return field_0xf00; } + s32 checkBombDrop() { return field_0xf04; } + /* 0x000 */ fopEn_enemy_c enemy; /* 0x5AC */ request_of_phase_process_class mPhase; /* 0x5B4 */ mDoExt_McaMorfSO* mpMorf; diff --git a/include/d/actor/d_a_npc_coach.h b/include/d/actor/d_a_npc_coach.h index 77ff6d7801..0fe48ac5e9 100644 --- a/include/d/actor/d_a_npc_coach.h +++ b/include/d/actor/d_a_npc_coach.h @@ -2,6 +2,7 @@ #define D_A_NPC_COACH_H #include "d/actor/d_a_npc.h" +#include "d/d_path.h" /** * @ingroup actors-npcs @@ -10,18 +11,233 @@ * * @details * - */ +*/ + +class daNpcCoach_Attr_c { +public: + /* 0x00 */ f32 gravity; // 重力 - Gravity + /* 0x04 */ f32 max_fall_speed; // 最大落下速度 - Maximum Fall Speed + /* 0x08 */ f32 jump_coeff; // 跳係数 - Jump Coefficient + /* 0x0C */ f32 field_0xc; + /* 0x10 */ f32 field_0x10; + /* 0x14 */ f32 field_0x14; + /* 0x18 */ f32 field_0x18; + /* 0x1C */ f32 max_speed; // 最大速度 - Maximum Speed + /* 0x20 */ f32 spring_constant; // バネ係数 - Spring Constant + /* 0x24 */ f32 damp_coeff[1]; // 減衰係数 - Damp Coefficient + /* 0x28 */ f32 field_0x28[1]; + /* 0x2C */ f32 field_0x2c; + /* 0x30 */ f32 field_0x30; + /* 0x34 */ f32 field_0x34; + /* 0x38 */ f32 vert_swing_width; // 縦揺れ幅 - Vertical Swing Width + /* 0x3C */ f32 shake_dist; // 揺れ距離 - Shake Distance + /* 0x40 */ f32 jump_dist; // 跳ね距離 - Jump Distance + /* 0x44 */ f32 wheel_bounce; // 車輪跳ね - Wheel Bounce + /* 0x48 */ f32 field_0x48; + /* 0x4C */ f32 field_0x4c; + /* 0x50 */ f32 field_0x50; + /* 0x54 */ f32 field_0x54; + /* 0x58 */ f32 field_0x58; + /* 0x5C */ f32 field_0x5c; + /* 0x60 */ s16 field_0x60; + /* 0x62 */ s16 horse_rot_limit; // 馬Rot限度 - Horse Rot Limit + /* 0x64 */ s16 horiz_sway_range; // 横揺れ幅 - Horizontal Sway Range + /* 0x66 */ s16 field_0x66; + /* 0x68 */ s16 field_0x68; + /* 0x6A */ s8 field_0x6a; + /* 0x6B */ u8 field_0x6b; + /* 0x6C */ u8 field_0x6c; + /* 0x6D */ u8 shake_test; // 揺れ実験 - Shake Test + /* 0x6E */ s16 field_0x6e; + /* 0x70 */ int damage_reduction; // ダメージ減量 - Damage Reduction + /* 0x74 */ int damage_durability; // ダメージ耐久度 - Damage Durability + /* 0x78 */ u8 damage_extinguish_level; // ダメージ消火度 - Damage Extinguish Level + /* 0x79 */ u8 horse_camera; // 馬カメラ - Horse Camera + /* 0x7A */ u8 field_0x7a; + /* 0x7B */ u8 field_0x7b; + /* 0x7C */ f32 camera_dist; // カメラ距離 - Camera Distance + /* 0x80 */ s16 camera_elevation_angle; // カメラ仰角 - Camera Elevation Angle + /* 0x82 */ s16 camera_rotation_angle; // カメラ回転角 - Camera Rotation Angle + /* 0x84 */ s16 field_0x84; + /* 0x86 */ u8 field_0x86; + /* 0x87 */ u8 field_0x87; + /* 0x88 */ u8 field_0x88; + /* 0x89 */ u8 field_0x89; + /* 0x8A */ s16 field_0x8a; + /* 0x8C */ f32 field_0x8c; + /* 0x90 */ f32 field_0x90; + /* 0x94 */ f32 field_0x94; + /* 0x98 */ f32 deceleration_speed; // 減速速度 - Deceleration Speed + /* 0x9C */ s32 deceleration_time; // 減速時間 - Deceleration Time +}; + +class daNpcChReins_c { +public: + /* 0x000 */ mDoExt_3DlineMat1_c field_0x0; + /* 0x03C */ mDoExt_3DlineMat1_c field_0x3c; + /* 0x078 */ cXyz field_0x78[10]; + /* 0x0F0 */ cXyz field_0xf0[10]; + /* 0x168 */ f32 field_0x168; + /* 0x16C */ s8 field_0x16c; + /* 0x170 */ cXyz field_0x170; +}; + +class daNpcChHorse_c { +public: + /* 0x000 */ mDoExt_McaMorf2* mpModelMorf; + /* 0x004 */ mDoExt_btpAnm* mpBtpAnm; + /* 0x008 */ mDoExt_bckAnm* mpBckAnm; + /* 0x00C */ dBgS_ObjAcch mBgc; + /* 0x1F0 */ dCcD_Cyl field_0x1f0[4]; + /* 0x6D4 */ Z2CreatureRide mSound; + /* 0x770 */ cXyz field_0x770; + /* 0x77C */ f32 mAnmRate; + /* 0x780 */ f32 mAimSpeed; + /* 0x784 */ f32 field_0x784; + /* 0x788 */ int field_0x788; + /* 0x78C */ int field_0x78c; + /* 0x790 */ int field_0x790; + /* 0x794 */ u32 mShadowKey; + /* 0x798 */ daNpcChReins_c mChReins; +}; + +class daNpcChWheel_c { +public: + /* 0x00 */ cXyz field_0x0; + /* 0x0C */ u32 field_0xc[2]; + /* 0x14 */ csXyz mWheelRot; + /* 0x1A */ s16 field_0x1a; + /* 0x1C */ s16 field_0x1c; + /* 0x1E */ s16 field_0x1e; + /* 0x20 */ s16 field_0x20; +}; + +class daNpcChHarness_c { +public: + /* 809A3570 */ ~daNpcChHarness_c(); + + /* 0x000 */ J3DModel* mHarnessModel; + /* 0x004 */ dKy_tevstr_c mTevStr; + /* 0x38C */ dBgS_ObjAcch mBgc; + /* 0x564 */ dCcD_Cyl field_0x564; + /* 0x6A0 */ dBgW* field_0x6a0; + /* 0x6A4 */ Mtx mMtx; + /* 0x6D4 */ cXyz field_0x6d4; + /* 0x6E0 */ cXyz field_0x6e0; + /* 0x6EC */ cXyz field_0x6ec; + /* 0x6F8 */ u32 mShadowKey; + /* 0x6FC */ f32 field_0x6fc; + /* 0x700 */ csXyz field_0x700; + /* 0x706 */ csXyz field_0x706; + /* 0x70C */ daNpcChWheel_c field_0x70c; + /* 0x730 */ daNpcChWheel_c field_0x730; +}; + +class daNpcChCoach_c { +public: + /* 809A3674 */ ~daNpcChCoach_c(); + + /* 0x000 */ J3DModel* mCoachModel; + /* 0x004 */ dKy_tevstr_c mTevStr; + /* 0x38C */ dBgS_ObjAcch mBgc; + /* 0x564 */ dBgW* field_0x564; + /* 0x568 */ Mtx field_0x568; + /* 0x598 */ Mtx field_0x598; + /* 0x5C8 */ cXyz field_0x5c8; + /* 0x5D4 */ cXyz field_0x5d4; + /* 0x5E0 */ cXyz field_0x5e0; + /* 0x5EC */ cXyz field_0x5ec; + /* 0x5F8 */ JPABaseEmitter* field_0x5f8[10]; + /* 0x620 */ Z2SoundObjCoach mSound; + /* 0x644 */ dCcD_Sph field_0x644; + /* 0x77C */ int field_0x77c; + /* 0x780 */ u32 mShadowKey; + /* 0x784 */ f32 field_0x784; + /* 0x788 */ f32 field_0x788; + /* 0x78C */ f32 mCoachTrans; + /* 0x790 */ f32 field_0x790; + /* 0x794 */ f32 field_0x794; + /* 0x798 */ s16 mCoachRot; + /* 0x79A */ csXyz field_0x79a; + /* 0x7A0 */ csXyz field_0x7a0; + /* 0x7A8 */ daNpcChWheel_c field_0x7a8; + /* 0x7CC */ daNpcChWheel_c field_0x7cc; +}; + +class daNpcChYelia_c { +public: + /* 0x000 */ mDoExt_McaMorfSO* mpModelMorf; + /* 0x004 */ dKy_tevstr_c mTevStr; + /* 0x38C */ Z2Creature mSound; + /* 0x41C */ dCcD_Cyl field_0x41c[2]; + /* 0x694 */ cXyz field_0x694; +}; + +class daNpcChPath_c { +public: + BOOL setPath(int, int, cXyz*, bool); + BOOL isClose() { return dPath_ChkClose(mpPath); } + bool setNextPoint() { + mPntIndex++; + + if (mPntIndex >= mpPath->m_num) { + if (isClose()) { + mPntIndex = 0; + } else { + mPntIndex--; + return FALSE; + } + } + + return TRUE; + } + BOOL setPrevPoint() { + mPntIndex--; + + if (mPntIndex < 0) { + if (isClose()) { + mPntIndex = mpPath->m_num - 1; + } else { + mPntIndex++; + return FALSE; + } + } + + return TRUE; + } + void getTargetPoint(cXyz& param_1) { + if (mpPath != NULL) { + param_1 = dPath_GetPnt(mpPath, mPntIndex)->m_position; + } + } + bool isPath() { return mpPath != NULL; } + int getCurrentId() { return mCurrentID; } + s8 getArg0() { return mpPath->m_points[mPntIndex].mArg0; } + s8 getArg1() { return mpPath->m_points[mPntIndex].mArg1; } + s8 getArg2() { return mpPath->m_points[mPntIndex].mArg2; } + int getArg3() { return mpPath->m_points[mPntIndex].mArg3; } + inline int checkNearAttackPoint(); + inline bool checkPoint(cXyz*, f32); + inline bool setNextTarget(); + + /* 0x00 */ dPath* mpPath; + /* 0x04 */ cXyz* field_0x4; + /* 0x08 */ f32 field_0x8; + /* 0x0C */ int mCurrentID; + /* 0x10 */ int mPntIndex; +}; + class daNpcCoach_c : public fopAc_ac_c { public: /* 8099DA60 */ void hitFireArrow(cXyz); /* 8099DBA4 */ void deleteFireArrow(unsigned int); /* 8099DCE8 */ bool deleteFireArrowFromList(unsigned int); /* 8099DD28 */ void setPosAngle(cXyz&, csXyz&); - /* 8099DD7C */ void ctrlJointHorse(J3DJoint*, J3DModel*); + /* 8099DD7C */ int ctrlJointHorse(J3DJoint*, J3DModel*); /* 8099DE18 */ void initCoachPosition(Vec&, SVec&); /* 8099E138 */ void changeAtherPath(s8, cXyz&, csXyz&); - /* 8099E4C0 */ void createHeap(); - /* 8099EB40 */ void execute(); + /* 8099E4C0 */ int createHeap(); + /* 8099EB40 */ int execute(); /* 8099EEA0 */ void checkCoachDamage(); /* 8099F1B8 */ void setCoachBlazing(u8); /* 8099F4BC */ void reinsExecute(); @@ -33,9 +249,9 @@ public: /* 809A1810 */ void calcHorseMotion(); /* 809A1BE0 */ void calcHorseAnm(); /* 809A2740 */ void calcHorsePath(); - /* 809A2EB8 */ void draw(); + /* 809A2EB8 */ int draw(); /* 809A3330 */ ~daNpcCoach_c(); - /* 809A3884 */ void create(); + /* 809A3884 */ cPhs__Step create(); /* 809A3928 */ void create_init(); /* 809A4078 */ void initCollision(); /* 809A43A0 */ void initBaseMtx(); @@ -43,30 +259,97 @@ public: /* 809A46C4 */ void initCoachBlazing(); /* 809A48A8 */ daNpcCoach_c(); - bool checkCoachBlazing() { return field_0x1dc4; } - Mtx* getCoachMtx() { return &field_0x2490; } + inline bool checkCoachBlazing() { return mCoachBlazing; } + inline Mtx* getCoachMtx() { return &mCoachMtx; } + inline csXyz* getFrontWheelRot(int param_1) { + if (param_1 == 2) { + return &mChHarness.field_0x70c.mWheelRot; + } + + return &mChHarness.field_0x730.mWheelRot; + } + inline csXyz* getRearWheelRot(int param_1) { + if (param_1 == 1) { + return &mChCoach.field_0x7a8.mWheelRot; + } + + return &mChCoach.field_0x7cc.mWheelRot; + } + inline s16 getCoachRotate() { return mChCoach.mCoachRot; } + inline f32 getCoachTrans() { return mChCoach.mCoachTrans; } + inline int getRailID() { return mChPath.getCurrentId(); } - static u8 const M_attr[160]; + inline void setDriverMtx(); + inline void calcDriverMotion() { setDriverMtx(); } + inline void calcYeliaMotion(); + inline void setYeliaMtx() { + mDoMtx_stack_c::copy(mChCoach.mCoachModel->getAnmMtx(6)); + mDoMtx_stack_c::multVecZero(&mChYelia.field_0x694); + mChYelia.mpModelMorf->getModel()->setBaseTRMtx(mDoMtx_stack_c::get()); + } + inline void setCoachCollision(); + inline s16 getGroundSlope(dBgS_ObjAcch*, s16); + inline void calcSpringF(f32*, f32, f32*); + inline void calcSpringS(s16*, s16, f32*); + inline void setCoachMtx(); + inline void setWheelSmoke(daNpcChWheel_c*, dBgS_ObjAcch*, dKy_tevstr_c*, csXyz*); + inline void setHarnessCollision(); + inline f32 calcMaxSpeed(); + inline void setHorseCollision(); + inline void setHorseMtx(); + inline void setHorseAnm(int); + inline void eyeWink(); + inline BOOL checkKargoAttack(); + inline BOOL setExpressionAnm(int, bool); + inline void resetOverAngle(); + inline void reinsDraw(); + inline u8 getPathID() { return fopAcM_GetParam(this) & 0xFF; } + inline int getMessageNo() { return home.angle.x; } + inline void setHarnessMtx(); + + const daNpcCoach_Attr_c& attr() { return M_attr; } + + static daNpcCoach_Attr_c const M_attr; + static u16 const ParticleName[10]; private: - /* 0x568 */ u8 field_0x568[0x1dc4 - 0x568]; - /* 0x1DC4 */ bool field_0x1dc4; - /* 0x1DC5 */ u8 field_0x1dc5[0x247c - 0x1dc5]; - /* 0x247C */ u32 field_0x247c[4]; - /* 0x248C */ u8 field_0x248c[0x2490 - 0x248c]; - /* 0x2490 */ Mtx field_0x2490; - /* 0x24C0 */ u8 field_0x254c[0x2570 - 0x24c0]; + /* 0x0568 */ daNpcChHorse_c mChHorse; + /* 0x0E7C */ daNpcChHarness_c mChHarness; + /* 0x15D0 */ daNpcChCoach_c mChCoach; + /* 0x1DC0 */ int field_0x1dc0; + /* 0x1DC4 */ bool mCoachBlazing; + /* 0x1DC5 */ u8 field_0x1dc5; + /* 0x1DC6 */ u8 field_0x1dc6; + /* 0x1DC7 */ u8 field_0x1dc7; + /* 0x1DC8 */ daNpcChYelia_c mChYelia; + /* 0x2468 */ daNpcChPath_c mChPath; + /* 0x247C */ fpc_ProcID field_0x247c[5]; + /* 0x2490 */ Mtx mCoachMtx; + /* 0x24C0 */ int field_0x24c0; + /* 0x24C4 */ int field_0x24c4; + /* 0x24C8 */ f32 field_0x24c8; + /* 0x24CC */ dBgS_AcchCir mAcchCir; + /* 0x250C */ dCcD_Stts mStts; + /* 0x2548 */ request_of_phase_process_class mPhase; + /* 0x2550 */ int field_0x2550; + /* 0x2554 */ fpc_ProcID field_0x2554; + /* 0x2558 */ u8 field_0x2558; + /* 0x2559 */ u8 field_0x2559; + /* 0x255C */ cXyz field_0x255c; + /* 0x2568 */ int mPathID; + /* 0x256C */ u8 field_0x256c[0x2570 - 0x256c]; }; STATIC_ASSERT(sizeof(daNpcCoach_c) == 0x2570); -class daNpcChHarness_c { +struct daNpcCoach_Hio_c { public: - /* 809A3570 */ ~daNpcChHarness_c(); -}; + void default_set() { + field_0xc = daNpcCoach_c::M_attr; + } -class daNpcChCoach_c { -public: - /* 809A3674 */ ~daNpcChCoach_c(); + /* 0x0 */ u8 field_0x0[0x8 - 0x0]; + /* 0x8 */ int field_0x8; + /* 0xC */ daNpcCoach_Attr_c field_0xc; }; #endif /* D_A_NPC_COACH_H */ diff --git a/include/d/actor/d_a_npc_theB.h b/include/d/actor/d_a_npc_theB.h index 98ecd7722c..47b31015f6 100644 --- a/include/d/actor/d_a_npc_theB.h +++ b/include/d/actor/d_a_npc_theB.h @@ -11,7 +11,7 @@ * @details * */ -class daNpcTheB_c : public fopAc_ac_c { +class daNpcTheB_c : public daNpcF_c { public: /* 80AFC76C */ daNpcTheB_c(); /* 80AFC980 */ ~daNpcTheB_c(); @@ -23,17 +23,17 @@ public: /* 80AFD2A8 */ void ctrlJoint(J3DJoint*, J3DModel*); /* 80AFD49C */ void createHeapCallBack(fopAc_ac_c*); /* 80AFD4BC */ void ctrlJointCallBack(J3DJoint*, int); - /* 80AFD508 */ void getHandPos1(int); - /* 80AFD5F0 */ void getHandPos2(int); + /* 80AFD508 */ cXyz getHandPos1(int); + /* 80AFD5F0 */ cXyz getHandPos2(int); /* 80AFD6D8 */ void setHintEvent(s32, u16, int); - /* 80AFD6F0 */ void main(); + /* 80AFD6F0 */ BOOL main(); /* 80AFD938 */ void setParam(); - /* 80AFDAA4 */ void ctrlBtk(); + /* 80AFDAA4 */ BOOL ctrlBtk(); /* 80AFDB70 */ void setAttnPos(); - /* 80AFDEC0 */ void setExpressionAnm(int, bool); - /* 80AFE0BC */ void setExpressionBtp(int); - /* 80AFE1BC */ bool setMotionAnm(int, f32); - /* 80AFE398 */ bool drawDbgInfo(); + /* 80AFDEC0 */ bool setExpressionAnm(int, bool); + /* 80AFE0BC */ bool setExpressionBtp(int); + /* 80AFE1BC */ void setMotionAnm(int, f32); + /* 80AFE398 */ BOOL drawDbgInfo(); /* 80AFE3A0 */ void reset(); /* 80AFE574 */ void playExpression(); /* 80AFE704 */ void playMotion(); @@ -51,10 +51,15 @@ public: /* 80AFFFE0 */ void EvCut_TheBHint(int); /* 80B00204 */ void EvCut_CoachGuardGameOver(int); + void setTRMtx(MtxP mtx) { mpMorf->getModel()->setBaseTRMtx(mtx); } + void setGameOver() { mGameOver = 1; } + static u8 mEvtSeqList[72]; private: - /* 0x568 */ u8 field_0x568[0xe14 - 0x568]; + /* 0xB48 */ u8 field_0xb48[0xe0d - 0xb48]; + /* 0xE0D */ u8 mGameOver; + /* 0xE0E */ u8 field_0xe0e[0xe14 - 0xe0e]; }; STATIC_ASSERT(sizeof(daNpcTheB_c) == 0xe14); diff --git a/include/d/d_bg_s_acch.h b/include/d/d_bg_s_acch.h index 1cb9afb141..6d3c4e7f7d 100644 --- a/include/d/d_bg_s_acch.h +++ b/include/d/d_bg_s_acch.h @@ -174,6 +174,7 @@ public: void OnLineCheckHit() { m_flags |= LINE_CHECK_HIT; } bool ChkGroundAway() const { return (m_flags & GROUND_AWAY) != 0; } void ClrGroundHit() { m_flags &= ~GROUND_HIT; } + void SetGroundCheckOffset(f32 offset) { m_gnd_chk_offset = offset; } cM3dGCyl* GetWallBmdCylP() { return &m_wall_cyl; } fopAc_ac_c* getMyAc() { return m_my_ac; } @@ -215,7 +216,7 @@ public: /* 0x090 */ f32 field_0x90; /* 0x094 */ f32 field_0x94; /* 0x098 */ f32 m_ground_h; - /* 0x09C */ f32 field_0x9c; + /* 0x09C */ f32 m_gnd_chk_offset; /* 0x0A0 */ cM3dGPla field_0xa0; /* 0x0B4 */ bool field_0xb4; /* 0x0B8 */ f32 field_0xb8; diff --git a/include/d/d_bg_w.h b/include/d/d_bg_w.h index 6f20f13387..63794aa506 100644 --- a/include/d/d_bg_w.h +++ b/include/d/d_bg_w.h @@ -328,6 +328,7 @@ public: void SetCrrFunc(dBgW_CrrFunc func) { m_crr_func = func; } void SetRideCallback(dBgW_RideCallback func) { m_ride_callback = func; } + void SetArrowStickCallback(dBgW_ArrowStickCallback func) { m_arrow_stick_callback = func; } void OnMoveFlag() { m_flags |= 1; } private: diff --git a/include/d/d_path.h b/include/d/d_path.h index 36e168171b..534d2b3d89 100644 --- a/include/d/d_path.h +++ b/include/d/d_path.h @@ -9,8 +9,8 @@ struct cXyz; struct dPnt { /* 0x0 */ u8 mArg1; - /* 0x1 */ u8 field_0x1; - /* 0x2 */ u8 field_0x2; + /* 0x1 */ u8 mArg2; + /* 0x2 */ u8 mArg3; /* 0x3 */ u8 mArg0; /* 0x4 */ Vec m_position; }; // Size: 0x10 diff --git a/include/d/d_tresure.h b/include/d/d_tresure.h index a4a5042c28..30c4827465 100644 --- a/include/d/d_tresure.h +++ b/include/d/d_tresure.h @@ -98,6 +98,10 @@ public: static void setNpcYkmPosition(int param_1, Vec* param_2) { setPosition(param_1, 13, param_2, -1); } + + static void setCoachPosition(int param_1, Vec* param_2, int param_3) { + setPosition(param_1, 10, param_2, param_3); + } }; #endif /* D_D_TRESURE_H */ diff --git a/include/m_Do/m_Do_ext.h b/include/m_Do/m_Do_ext.h index f38cdaf880..514134953e 100644 --- a/include/m_Do/m_Do_ext.h +++ b/include/m_Do/m_Do_ext.h @@ -403,11 +403,17 @@ public: /* 800113FC */ virtual ~mDoExt_McaMorf2(); /* 800116F4 */ virtual void calc(); + inline f32 getAnmRate() { return mAnmRate; } + inline void changeAnm(J3DAnmTransform* anm, J3DAnmTransform* anm2) { + mpAnm = anm; + field_0x40 = anm2; + } + inline J3DModel* getModel() { return mpModel; } private: /* 0x38 */ mDoExt_McaMorfCallBack1_c* mpCallback1; /* 0x3C */ mDoExt_McaMorfCallBack2_c* mpCallback2; /* 0x40 */ J3DAnmTransform* field_0x40; - /* 0x44 */ f32 field_0x44; + /* 0x44 */ f32 mAnmRate; /* 0x48 */ Z2Creature* mpSound; /* 0x4C */ void* mpBas; }; |
