summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorCarco_21 <144170194+carter-ktb21@users.noreply.github.com>2025-08-12 13:54:06 -0400
committerGitHub <noreply@github.com>2025-08-12 20:54:06 +0300
commit4ade12fd6422b1444c0aa73083506d6dadab9ed3 (patch)
tree6a7422f07e59f4a1e1a8ebd6710f530aa4a078dc /include
parent58a6d8d7931e982a4d00fe14d30f2bf325ac4e84 (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.h2
-rw-r--r--include/d/actor/d_a_e_kr.h3
-rw-r--r--include/d/actor/d_a_npc_coach.h327
-rw-r--r--include/d/actor/d_a_npc_theB.h25
-rw-r--r--include/d/d_bg_s_acch.h3
-rw-r--r--include/d/d_bg_w.h1
-rw-r--r--include/d/d_path.h4
-rw-r--r--include/d/d_tresure.h4
-rw-r--r--include/m_Do/m_Do_ext.h8
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;
};