summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/SSystem/SComponent/c_cc_d.h2
-rw-r--r--include/d/actor/d_a_npc_md.h146
-rw-r--r--include/m_Do/m_Do_ext.h13
-rw-r--r--src/d/actor/d_a_am.cpp2
-rw-r--r--src/d/actor/d_a_am2.cpp4
-rw-r--r--src/d/actor/d_a_npc_md.cpp471
-rw-r--r--src/d/actor/d_a_obj_barrier.cpp2
-rw-r--r--src/d/actor/d_a_obj_paper.cpp2
-rw-r--r--src/d/d_kankyo_rain.cpp2
-rw-r--r--src/m_Do/m_Do_ext.cpp11
10 files changed, 529 insertions, 126 deletions
diff --git a/include/SSystem/SComponent/c_cc_d.h b/include/SSystem/SComponent/c_cc_d.h
index ef248f18..fb847b49 100644
--- a/include/SSystem/SComponent/c_cc_d.h
+++ b/include/SSystem/SComponent/c_cc_d.h
@@ -41,7 +41,7 @@ enum cCcD_ObjAtType {
/* 0x00100000 */ AT_TYPE_LIGHT_ARROW = (1 << 20),
/* 0x00200000 */ AT_TYPE_LEAF_WIND = (1 << 21),
/* 0x00400000 */ AT_TYPE_UNK400000 = (1 << 22),
- /* 0x00800000 */ AT_TYPE_UNK800000 = (1 << 23),
+ /* 0x00800000 */ AT_TYPE_LIGHT = (1 << 23),
/* 0x01000000 */ AT_TYPE_STALFOS_MACE = (1 << 24),
/* 0x04000000 */ AT_TYPE_DARKNUT_SWORD = (1 << 26),
/* 0x08000000 */ AT_TYPE_GRAPPLING_HOOK = (1 << 27),
diff --git a/include/d/actor/d_a_npc_md.h b/include/d/actor/d_a_npc_md.h
index d0e4fd35..a29578b5 100644
--- a/include/d/actor/d_a_npc_md.h
+++ b/include/d/actor/d_a_npc_md.h
@@ -195,18 +195,30 @@ public:
class daNpc_Md_c : public daPy_npc_c {
public:
+ enum ActionStatus {
+ ACTION_STARTING = 0,
+ ACTION_ONGOING = 1,
+ ACTION_ENDING = -1,
+ };
+
+ typedef int (daNpc_Md_c::*ActionFunc)(void*);
+
+ bool chkPlayerAction(ActionFunc func) { return mCurrPlayerActionFunc == func; }
+ bool chkNpcAction(ActionFunc func) { return mCurrNpcActionFunc == func; }
+ bool isOldLightBodyHit() { return m30F0 & 0x8000; }
+
daNpc_Md_c() {}
~daNpc_Md_c();
void XyCheckCB(int);
void XyEventCB(int);
s32 create();
- void createHeap();
- void setAction(int (daNpc_Md_c::**)(void*), int (daNpc_Md_c::*)(void*), void*);
+ BOOL createHeap();
+ BOOL setAction(ActionFunc*, ActionFunc, void*);
void npcAction(void*);
- void setNpcAction(int (daNpc_Md_c::*)(void*), void*);
+ void setNpcAction(ActionFunc, void*);
void playerAction(void*);
- void setPlayerAction(int (daNpc_Md_c::*)(void*), void*);
+ void setPlayerAction(ActionFunc, void*);
void getStickAngY(int);
void calcStickPos(short, cXyz*);
void flyCheck();
@@ -228,50 +240,50 @@ public:
void setMessageAnimation(unsigned char);
void waitGroundCheck();
void chkAdanmaeDemoOrder();
- void waitNpcAction(void*);
- void harpWaitNpcAction(void*);
+ int waitNpcAction(void*);
+ int harpWaitNpcAction(void*);
void XYTalkCheck();
- void talkNpcAction(void*);
- void shipTalkNpcAction(void*);
- void kyohiNpcAction(void*);
- void shipNpcAction(void*);
- void mwaitNpcAction(void*);
- void squatdownNpcAction(void*);
- void sqwait01NpcAction(void*);
+ int talkNpcAction(void*);
+ int shipTalkNpcAction(void*);
+ int kyohiNpcAction(void*);
+ int shipNpcAction(void*);
+ int mwaitNpcAction(void*);
+ int squatdownNpcAction(void*);
+ int sqwait01NpcAction(void*);
void changeCaught02();
- void carryNpcAction(void*);
- void throwNpcAction(void*);
- void glidingNpcAction(void*);
+ int carryNpcAction(void*);
+ int throwNpcAction(void*);
+ int glidingNpcAction(void*);
void windProc();
- void fallNpcAction(void*);
- void fall02NpcAction(void*);
- void wallHitNpcAction(void*);
- void land01NpcAction(void*);
- void land02NpcAction(void*);
- void land03NpcAction(void*);
- void piyo2NpcAction(void*);
- void deleteNpcAction(void*);
- void demoFlyNpcAction(void*);
+ int fallNpcAction(void*);
+ int fall02NpcAction(void*);
+ int wallHitNpcAction(void*);
+ int land01NpcAction(void*);
+ int land02NpcAction(void*);
+ int land03NpcAction(void*);
+ int piyo2NpcAction(void*);
+ int deleteNpcAction(void*);
+ int demoFlyNpcAction(void*);
void routeAngCheck(cXyz&, short*);
void routeWallCheck(cXyz&, cXyz&, short*);
void checkForwardGroundY(short);
void checkWallJump(short);
void routeCheck(float, short*);
- void searchNpcAction(void*);
- void hitNpcAction(void*);
+ int searchNpcAction(void*);
+ int hitNpcAction(void*);
void setNormalSpeedF(float, float, float, float, float);
void setSpeedAndAngleNormal(float, short);
void walkProc(float, short);
- void jumpNpcAction(void*);
- void escapeNpcAction(void*);
- void waitPlayerAction(void*);
- void walkPlayerAction(void*);
- void hitPlayerAction(void*);
- void jumpPlayerAction(void*);
- void flyPlayerAction(void*);
- void landPlayerAction(void*);
- void mkamaePlayerAction(void*);
- void carryPlayerAction(void*);
+ int jumpNpcAction(void*);
+ int escapeNpcAction(void*);
+ int waitPlayerAction(void*);
+ int walkPlayerAction(void*);
+ int hitPlayerAction(void*);
+ int jumpPlayerAction(void*);
+ int flyPlayerAction(void*);
+ int landPlayerAction(void*);
+ int mkamaePlayerAction(void*);
+ int carryPlayerAction(void*);
void eventProc();
void initialDefault(int);
void actionDefault(int);
@@ -312,9 +324,9 @@ public:
void talk_init();
void talk(int);
void getAnmType(unsigned char);
- void initTexPatternAnm(unsigned char, bool);
+ BOOL initTexPatternAnm(unsigned char, bool);
void playTexPatternAnm();
- void initLightBtkAnm(bool);
+ BOOL initLightBtkAnm(bool);
void playLightBtkAnm();
void setAnm(int);
void dNpc_Md_setAnm(mDoExt_McaMorf2*, float, int, float, float, char*, char*, const char*);
@@ -349,12 +361,18 @@ public:
virtual MtxP getRightHandMatrix() {}
virtual f32 getBaseAnimeFrameRate() {}
virtual f32 getBaseAnimeFrame() {}
+
+ static bool m_flying;
+ static short m_flyingTimer;
public:
/* 0x04EC */ request_of_phase_process_class mPhs;
- /* 0x04F4 */ u8 m04F4[0x04FC - 0x04F4];
- /* 0x04FC */ mDoExt_McaMorf2* m04FC;
- /* 0x0500 */ u8 m0500[0x0520 - 0x0500];
+ /* 0x04F4 */ J3DModel* mpHarpModel;
+ /* 0x04F8 */ J3DModel* mpHarpLightModel;
+ /* 0x04FC */ mDoExt_McaMorf2* mpMorf;
+ /* 0x0500 */ mDoExt_McaMorf2* mpArmMorf;
+ /* 0x0504 */ mDoExt_McaMorf* mpWingMorf;
+ /* 0x0508 */ u8 m0508[0x0520 - 0x0508];
/* 0x0520 */ mDoExt_btpAnm m0520;
/* 0x0534 */ mDoExt_btkAnm m0534;
/* 0x0548 */ u8 m0548[0x054C - 0x0548];
@@ -372,24 +390,30 @@ public:
/* 0x3074 */ dPa_rippleEcallBack m3074;
/* 0x3088 */ u8 m3088[0x30A0 - 0x3088];
/* 0x30A0 */ cXyz m30A0;
- /* 0x30AC */ u8 m30AC[0x30EC - 0x30AC];
+ /* 0x30AC */ u8 m30AC[0x30D4 - 0x30AC];
+ /* 0x30D4 */ ActionFunc mCurrPlayerActionFunc;
+ /* 0x30E0 */ ActionFunc mCurrNpcActionFunc;
/* 0x30EC */ int mMsgId;
/* 0x30F0 */ u32 m30F0;
/* 0x30F4 */ u8 m30F4[0x30F8 - 0x30F4];
/* 0x30F8 */ f32 m30F8;
/* 0x30FC */ u8 m30FC[0x3104 - 0x30FC];
/* 0x3104 */ int m3104;
- /* 0x3108 */ u8 m3108[0x3120 - 0x3108];
- /* 0x3120 */ u8 mArmRlocJointIdx;
- /* 0x3121 */ u8 mArmLlocJointIdx;
- /* 0x3122 */ u8 mWingRlocJointIdx;
- /* 0x3123 */ u8 mWingLlocJointIdx;
- /* 0x3124 */ u8 mNeckJointIdx;
- /* 0x3125 */ u8 mWingR2JointIdx;
- /* 0x3126 */ u8 mWingL2JointIdx;
- /* 0x3127 */ u8 mWingR3JointIdx;
- /* 0x3128 */ u8 mWingL3JointIdx;
- /* 0x3129 */ u8 mHandLJointIdx;
+ /* 0x3108 */ u8 m3108[0x311C - 0x3108];
+ /* 0x311C */ s8 m_backbone1_jnt_num;
+ /* 0x311D */ s8 m_backbone2_jnt_num;
+ /* 0x311E */ s8 m_armR_jnt_num;
+ /* 0x311F */ s8 m_armL_jnt_num;
+ /* 0x3120 */ s8 m_armRloc_jnt_num;
+ /* 0x3121 */ s8 m_armLloc_jnt_num;
+ /* 0x3122 */ s8 m_wingRloc_jnt_num;
+ /* 0x3123 */ s8 m_wingLloc_jnt_num;
+ /* 0x3124 */ s8 m_neck_jnt_num;
+ /* 0x3125 */ s8 m_wingR2_jnt_num;
+ /* 0x3126 */ s8 m_wingL2_jnt_num;
+ /* 0x3127 */ s8 m_wingR3_jnt_num;
+ /* 0x3128 */ s8 m_wingL3_jnt_num;
+ /* 0x3129 */ s8 m_handL_jnt_num;
/* 0x312A */ u8 m312A;
/* 0x312B */ u8 m312B[0x312C - 0x312B];
/* 0x312C */ u8 m312C;
@@ -397,18 +421,24 @@ public:
/* 0x312E */ u8 mCurEventMode;
/* 0x312F */ u8 m312F[0x3131 - 0x312F];
/* 0x3131 */ u8 m3131;
- /* 0x3132 */ u8 m3132;
+ /* 0x3132 */ s8 mActionStatus;
/* 0x3133 */ u8 m3133[0x3138 - 0x3133];
/* 0x3138 */ u8 m3138;
/* 0x3139 */ u8 mCurEvent;
/* 0x313A */ u8 m313A;
- /* 0x313B */ u8 m313B[0x3148 - 0x313B];
+ /* 0x313B */ u8 m313B[0x3140 - 0x313B];
+ /* 0x3140 */ bool m3140;
+ /* 0x3141 */ u8 m3141[0x3144 - 0x3141];
+ /* 0x3144 */ s16 m3144;
+ /* 0x3146 */ s16 m3146;
/* 0x3148 */ s16 m3148;
/* 0x314A */ s16 m314A;
/* 0x314C */ s16 m314C;
- /* 0x314E */ u8 m314E[0x3158 - 0x314E];
+ /* 0x314E */ u8 m314E[0x3150 - 0x314E];
+ /* 0x3150 */ f32 m3150;
+ /* 0x3154 */ u8 m3154[0x3158 - 0x3154];
/* 0x3158 */ s16 mEventIdxTable[10];
- /* 0x316C */ u8 m316C[0x3174 - 0x316C];
+ /* 0x316C */ s8 m_hair_jnt_nums[8];
/* 0x3174 */ cXyz m3174[8];
/* 0x31D4 */ cXyz m31D4[8];
/* 0x3234 */ cXyz m3234[4];
diff --git a/include/m_Do/m_Do_ext.h b/include/m_Do/m_Do_ext.h
index 38f3b1d3..702c74ce 100644
--- a/include/m_Do/m_Do_ext.h
+++ b/include/m_Do/m_Do_ext.h
@@ -329,7 +329,10 @@ public:
class mDoExt_McaMorf : public J3DMtxCalcMaya {
public:
- mDoExt_McaMorf(J3DModelData*, mDoExt_McaMorfCallBack1_c*, mDoExt_McaMorfCallBack2_c*, J3DAnmTransform*, int, float, int, int, int, void*, unsigned long, unsigned long);
+ mDoExt_McaMorf(J3DModelData* modelData, mDoExt_McaMorfCallBack1_c* callback1,
+ mDoExt_McaMorfCallBack2_c* callback2, J3DAnmTransform* anmTransform,
+ int loopMode, f32 param_5, int param_6, int param_7, int param_8,
+ void* basAnm, u32 modelFlag, u32 differedDlistFlag);
virtual ~mDoExt_McaMorf();
void calc();
@@ -384,7 +387,11 @@ public:
class mDoExt_McaMorf2 : public J3DMtxCalcMaya {
public:
- mDoExt_McaMorf2(J3DModelData*, mDoExt_McaMorfCallBack1_c*, mDoExt_McaMorfCallBack2_c*, J3DAnmTransform*, J3DAnmTransform*, int, f32, int, int, int, void*, u32, u32);
+ mDoExt_McaMorf2(J3DModelData* modelData, mDoExt_McaMorfCallBack1_c* callback1,
+ mDoExt_McaMorfCallBack2_c* callback2,
+ J3DAnmTransform* anmTransform1, J3DAnmTransform* anmTransform2,
+ int loopMode, f32 param_5, int param_6, int param_7, int param_8,
+ void* basAnm, u32 modelFlag, u32 differedDlistFlag);
~mDoExt_McaMorf2();
void ERROR_EXIT();
@@ -396,6 +403,8 @@ public:
void calc();
void stopZelAnime();
+ J3DModel* getModel() { return mpModel; }
+
/* 0x50 */ J3DModel* mpModel;
/* 0x54 */ J3DAnmTransform* field_0x54;
/* 0x58 */ J3DAnmTransform* field_0x58;
diff --git a/src/d/actor/d_a_am.cpp b/src/d/actor/d_a_am.cpp
index 94e0362c..1fa13770 100644
--- a/src/d/actor/d_a_am.cpp
+++ b/src/d/actor/d_a_am.cpp
@@ -1367,7 +1367,7 @@ static s32 daAM_Create(fopAc_ac_c* i_actor) {
/* SrcObjAt Type */ AT_TYPE_UNK1000,
/* SrcObjAt Atp */ 0,
/* SrcObjAt SPrm */ 0,
- /* SrcObjTg Type */ ~(AT_TYPE_WATER | AT_TYPE_UNK20000 | AT_TYPE_LEAF_WIND | AT_TYPE_UNK400000 | AT_TYPE_UNK800000),
+ /* SrcObjTg Type */ ~(AT_TYPE_WATER | AT_TYPE_UNK20000 | AT_TYPE_LEAF_WIND | AT_TYPE_UNK400000 | AT_TYPE_LIGHT),
/* SrcObjTg SPrm */ 0x03,
/* SrcObjCo SPrm */ 0x75,
/* SrcGObjAt Se */ 0,
diff --git a/src/d/actor/d_a_am2.cpp b/src/d/actor/d_a_am2.cpp
index 5f104ce3..fbaa2dfd 100644
--- a/src/d/actor/d_a_am2.cpp
+++ b/src/d/actor/d_a_am2.cpp
@@ -1450,7 +1450,7 @@ static s32 daAM2_Create(fopAc_ac_c* i_actor) {
/* SrcObjAt Type */ AT_TYPE_UNK1000,
/* SrcObjAt Atp */ 0,
/* SrcObjAt SPrm */ 0,
- /* SrcObjTg Type */ ~(AT_TYPE_WATER | AT_TYPE_UNK20000 | AT_TYPE_LEAF_WIND | AT_TYPE_UNK400000 | AT_TYPE_UNK800000),
+ /* SrcObjTg Type */ ~(AT_TYPE_WATER | AT_TYPE_UNK20000 | AT_TYPE_LEAF_WIND | AT_TYPE_UNK400000 | AT_TYPE_LIGHT),
/* SrcObjTg SPrm */ 0x03,
/* SrcObjCo SPrm */ 0,
/* SrcGObjAt Se */ 0,
@@ -1482,7 +1482,7 @@ static s32 daAM2_Create(fopAc_ac_c* i_actor) {
/* SrcObjAt Type */ AT_TYPE_UNK1000,
/* SrcObjAt Atp */ 0,
/* SrcObjAt SPrm */ 0,
- /* SrcObjTg Type */ ~(AT_TYPE_WATER | AT_TYPE_UNK20000 | AT_TYPE_LEAF_WIND | AT_TYPE_UNK400000 | AT_TYPE_UNK800000),
+ /* SrcObjTg Type */ ~(AT_TYPE_WATER | AT_TYPE_UNK20000 | AT_TYPE_LEAF_WIND | AT_TYPE_UNK400000 | AT_TYPE_LIGHT),
/* SrcObjTg SPrm */ 0x03,
/* SrcObjCo SPrm */ 0x75,
/* SrcGObjAt Se */ 0,
diff --git a/src/d/actor/d_a_npc_md.cpp b/src/d/actor/d_a_npc_md.cpp
index 30aa50b6..364a100b 100644
--- a/src/d/actor/d_a_npc_md.cpp
+++ b/src/d/actor/d_a_npc_md.cpp
@@ -7,6 +7,160 @@
#include "d/d_procname.h"
#include "JSystem/JKernel/JKRHeap.h"
+// Needed for the .data section to match.
+static f32 dummy1[3] = {1.0f, 1.0f, 1.0f};
+static f32 dummy2[3] = {1.0f, 1.0f, 1.0f};
+static u8 dummy3[4] = {0x02, 0x00, 0x02, 0x01};
+static f64 dummy4[2] = {3.0, 0.5};
+
+static char* l_arc_name = "Md";
+static char* l_arc_name_ship = "Md_ship";
+static char* l_staff_name = "Md1";
+
+static char* event_name_tbl[] = {
+ "Md_ItemGet",
+ "Md_RopeGet",
+ "MD_FLY",
+ "md_cliff",
+ "Md_Fly2",
+ "Md_Tact",
+ "Md_TactTrue",
+ "Md_HarpTalk",
+ "OPTION_CHAR_END",
+ "DEFAULT_TALK_XY",
+};
+
+static dCcD_SrcCyl l_cyl_src = {
+ // dCcD_SrcGObjInf
+ {
+ /* Flags */ 0,
+ /* SrcObjAt Type */ 0,
+ /* SrcObjAt Atp */ 0,
+ /* SrcObjAt SPrm */ 0,
+ /* SrcObjTg Type */ ~(AT_TYPE_BOOMERANG | AT_TYPE_LEAF_WIND | AT_TYPE_LIGHT),
+ /* SrcObjTg SPrm */ 0x05,
+ /* SrcObjCo SPrm */ 0x75,
+ /* SrcGObjAt Se */ 0,
+ /* SrcGObjAt HitMark */ 0,
+ /* SrcGObjAt Spl */ 0,
+ /* SrcGObjAt Mtrl */ 0,
+ /* SrcGObjAt GFlag */ 0,
+ /* SrcGObjTg Se */ 0,
+ /* SrcGObjTg HitMark */ 0,
+ /* SrcGObjTg Spl */ 0,
+ /* SrcGObjTg Mtrl */ 0,
+ /* SrcGObjTg GFlag */ 0x04,
+ /* SrcGObjCo GFlag */ 0,
+ },
+ // cM3dGCylS
+ {
+ /* Center */ 0.0f, 0.0f, 0.0f,
+ /* Radius */ 30.0f,
+ /* Height */ 80.0f,
+ },
+};
+
+static dCcD_SrcCyl l_light_cyl_src = {
+ // dCcD_SrcGObjInf
+ {
+ /* Flags */ 0,
+ /* SrcObjAt Type */ 0,
+ /* SrcObjAt Atp */ 0,
+ /* SrcObjAt SPrm */ 0,
+ /* SrcObjTg Type */ AT_TYPE_LIGHT,
+ /* SrcObjTg SPrm */ 0x03,
+ /* SrcObjCo SPrm */ 0,
+ /* SrcGObjAt Se */ 0,
+ /* SrcGObjAt HitMark */ 0,
+ /* SrcGObjAt Spl */ 0,
+ /* SrcGObjAt Mtrl */ 0,
+ /* SrcGObjAt GFlag */ 0,
+ /* SrcGObjTg Se */ 0,
+ /* SrcGObjTg HitMark */ 0,
+ /* SrcGObjTg Spl */ 0,
+ /* SrcGObjTg Mtrl */ 0,
+ /* SrcGObjTg GFlag */ 0x04,
+ /* SrcGObjCo GFlag */ 0,
+ },
+ // cM3dGCylS
+ {
+ /* Center */ 0.0f, 0.0f, 0.0f,
+ /* Radius */ 30.0f,
+ /* Height */ 80.0f,
+ },
+};
+
+static dCcD_SrcCps l_fan_light_cps_src = {
+ // dCcD_SrcGObjInf
+ {
+ /* Flags */ 0,
+ /* SrcObjAt Type */ AT_TYPE_LIGHT,
+ /* SrcObjAt Atp */ 0,
+ /* SrcObjAt SPrm */ 0x0F,
+ /* SrcObjTg Type */ 0,
+ /* SrcObjTg SPrm */ 0,
+ /* SrcObjCo SPrm */ 0,
+ /* SrcGObjAt Se */ 0,
+ /* SrcGObjAt HitMark */ 0,
+ /* SrcGObjAt Spl */ 0,
+ /* SrcGObjAt Mtrl */ 0,
+ /* SrcGObjAt GFlag */ 0x02,
+ /* SrcGObjTg Se */ 0,
+ /* SrcGObjTg HitMark */ 0,
+ /* SrcGObjTg Spl */ 0,
+ /* SrcGObjTg Mtrl */ 0,
+ /* SrcGObjTg GFlag */ 0,
+ /* SrcGObjCo GFlag */ 0,
+ },
+ // cM3dGCpsS
+ {
+ /* Start */ 0.0f, 0.0f, 0.0f,
+ /* End */ 0.0f, 0.0f, 0.0f,
+ /* Radius */ 70.0f,
+ },
+};
+
+static dCcD_SrcCyl l_wind_cyl_src = {
+ // dCcD_SrcGObjInf
+ {
+ /* Flags */ 0,
+ /* SrcObjAt Type */ 0,
+ /* SrcObjAt Atp */ 0,
+ /* SrcObjAt SPrm */ 0,
+ /* SrcObjTg Type */ AT_TYPE_LEAF_WIND,
+ /* SrcObjTg SPrm */ 0x03,
+ /* SrcObjCo SPrm */ 0,
+ /* SrcGObjAt Se */ 0,
+ /* SrcGObjAt HitMark */ 0,
+ /* SrcGObjAt Spl */ 0,
+ /* SrcGObjAt Mtrl */ 0,
+ /* SrcGObjAt GFlag */ 0,
+ /* SrcGObjTg Se */ 0,
+ /* SrcGObjTg HitMark */ 0,
+ /* SrcGObjTg Spl */ 0,
+ /* SrcGObjTg Mtrl */ 0,
+ /* SrcGObjTg GFlag */ 0x04,
+ /* SrcGObjCo GFlag */ 0,
+ },
+ // cM3dGCylS
+ {
+ /* Center */ 0.0f, 0.0f, 0.0f,
+ /* Radius */ 30.0f,
+ /* Height */ 80.0f,
+ },
+};
+
+static char* hairName[] = {
+ "hair1",
+ "hair2",
+ "hair3",
+ "hair4",
+ "hair5",
+ "hair6",
+ "hair7",
+};
+
+
/* 000000EC-0000013C .text __ct__15daNpc_Md_HIO6_cFv */
daNpc_Md_HIO6_c::daNpc_Md_HIO6_c() {
m04 = 500.0f;
@@ -163,8 +317,8 @@ daNpc_Md_HIO_c::daNpc_Md_HIO_c() {
}
/* 000006DC-000006FC .text daNpc_Md_XyCheckCB__FPvi */
-static void daNpc_Md_XyCheckCB(void*, int) {
- /* Nonmatching */
+static void daNpc_Md_XyCheckCB(void* i_this, int param_1) {
+ return static_cast<daNpc_Md_c*>(i_this)->XyCheckCB(param_1);
}
/* 000006FC-000007FC .text XyCheckCB__10daNpc_Md_cFi */
@@ -173,8 +327,8 @@ void daNpc_Md_c::XyCheckCB(int) {
}
/* 000007FC-0000081C .text daNpc_Md_XyEventCB__FPvi */
-static void daNpc_Md_XyEventCB(void*, int) {
- /* Nonmatching */
+static void daNpc_Md_XyEventCB(void* i_this, int param_1) {
+ return static_cast<daNpc_Md_c*>(i_this)->XyEventCB(param_1);
}
/* 0000081C-00000864 .text XyEventCB__10daNpc_Md_cFi */
@@ -183,8 +337,8 @@ void daNpc_Md_c::XyEventCB(int) {
}
/* 00000864-00000884 .text CheckCreateHeap__FP10fopAc_ac_c */
-static void CheckCreateHeap(fopAc_ac_c*) {
- /* Nonmatching */
+static BOOL CheckCreateHeap(fopAc_ac_c* i_this) {
+ return static_cast<daNpc_Md_c*>(i_this)->createHeap();
}
/* 00000884-00000D80 .text create__10daNpc_Md_cFv */
@@ -194,17 +348,17 @@ s32 daNpc_Md_c::create() {
}
/* 000012C0-00001444 .text nodeCallBack__FP7J3DNodei */
-static void nodeCallBack(J3DNode*, int) {
+static int nodeCallBack(J3DNode*, int) {
/* Nonmatching */
}
/* 00001444-0000154C .text waistNodeCallBack__FP7J3DNodei */
-static void waistNodeCallBack(J3DNode*, int) {
+static int waistNodeCallBack(J3DNode*, int) {
/* Nonmatching */
}
/* 0000154C-0000160C .text armNodeCallBack__FP7J3DNodei */
-static void armNodeCallBack(J3DNode*, int) {
+static int armNodeCallBack(J3DNode*, int) {
/* Nonmatching */
}
@@ -214,7 +368,7 @@ static void hairCross(cXyz*, cXyz*, cXyz*) {
}
/* 00001CBC-00001D0C .text hairTopNodeCallBack__FP7J3DNodei */
-static void hairTopNodeCallBack(J3DNode*, int) {
+static int hairTopNodeCallBack(J3DNode*, int) {
/* Nonmatching */
}
@@ -224,37 +378,240 @@ static void vecChange(cXyz*, cXyz*, short) {
}
/* 00001F5C-0000240C .text hairNodeCallBack__FP7J3DNodei */
-static void hairNodeCallBack(J3DNode*, int) {
+static int hairNodeCallBack(J3DNode*, int) {
/* Nonmatching */
}
/* 0000240C-00002F80 .text createHeap__10daNpc_Md_cFv */
-void daNpc_Md_c::createHeap() {
- /* Nonmatching */
+BOOL daNpc_Md_c::createHeap() {
+ /* Nonmatching */
+ char wait_anim_name[32];
+ char arm_wait_anim_name[32];
+ if (m3138 == 7) {
+ strcpy(wait_anim_name, "md_shipwait.bck");
+ strcpy(arm_wait_anim_name, "mdarm_shipwait.bck");
+ } else {
+ strcpy(wait_anim_name, "md_wait01.bck");
+ strcpy(arm_wait_anim_name, "mdarm_wait01.bck");
+ }
+
+ J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes(mModelArcName, "md.bdl");
+ JUT_ASSERT(1995, modelData != 0);
+
+ mpMorf = new mDoExt_McaMorf2(
+ modelData,
+ NULL, NULL,
+ (J3DAnmTransformKey*)dComIfG_getObjectRes(mModelArcName, wait_anim_name),
+ NULL,
+ J3DFrameCtrl::LOOP_REPEAT_e, 1.0f, 0, -1, 1,
+ NULL,
+ 0x00080000,
+ 0x11020022
+ );
+ if (!mpMorf || !mpMorf->getModel()) {
+ return FALSE;
+ }
+
+ m_backbone1_jnt_num = modelData->getJointName()->getIndex("backbone1");
+ JUT_ASSERT(2013, m_backbone1_jnt_num >= 0);
+ m_backbone2_jnt_num = modelData->getJointName()->getIndex("backbone2");
+ JUT_ASSERT(2016, m_backbone2_jnt_num >= 0);
+ m_armR_jnt_num = modelData->getJointName()->getIndex("armR");
+ JUT_ASSERT(2019, m_armR_jnt_num >= 0);
+ m_armL_jnt_num = modelData->getJointName()->getIndex("armL");
+ JUT_ASSERT(2022, m_armL_jnt_num >= 0);
+ m_neck_jnt_num = modelData->getJointName()->getIndex("neck");
+ JUT_ASSERT(2025, m_neck_jnt_num >= 0);
+
+ s16 neck_jnt_num = modelData->getJointName()->getIndex("neck");
+ if (neck_jnt_num >= 0) {
+ modelData->getJointNodePointer(neck_jnt_num)->setCallBack(nodeCallBack);
+ }
+ modelData->getJointNodePointer(m_backbone1_jnt_num)->setCallBack(waistNodeCallBack);
+ m_hair_jnt_nums[0] = modelData->getJointName()->getIndex(hairName[0]);
+ if (m_hair_jnt_nums[0] >= 0) {
+ modelData->getJointNodePointer(m_hair_jnt_nums[0])->setCallBack(hairTopNodeCallBack);
+ }
+ for (int i = 1; i < 8; i++) {
+ m_hair_jnt_nums[i] = modelData->getJointName()->getIndex(hairName[i]);
+ if (m_hair_jnt_nums[i] >= 0) {
+ modelData->getJointNodePointer(m_hair_jnt_nums[i])->setCallBack(hairNodeCallBack);
+ }
+ }
+
+ mpMorf->getModel()->setUserArea((u32)this);
+
+ modelData = (J3DModelData*)dComIfG_getObjectRes(mModelArcName, "md.bdl");
+ JUT_ASSERT(2051, modelData != 0);
+
+ mpArmMorf = new mDoExt_McaMorf2(
+ modelData,
+ NULL, NULL,
+ (J3DAnmTransformKey*)dComIfG_getObjectRes(mModelArcName, arm_wait_anim_name),
+ NULL,
+ J3DFrameCtrl::LOOP_REPEAT_e, 1.0f, 0, -1, 0,
+ NULL,
+ 0x00000000,
+ 0x11020203
+ );
+ if (!mpArmMorf || !mpArmMorf->getModel()) {
+ return FALSE;
+ }
+
+ m_armRloc_jnt_num = modelData->getJointName()->getIndex("armRloc");
+ JUT_ASSERT(2065, m_armRloc_jnt_num >= 0);
+ m_armLloc_jnt_num = modelData->getJointName()->getIndex("armLloc");
+ JUT_ASSERT(2068, m_armLloc_jnt_num >= 0);
+ m_handL_jnt_num = modelData->getJointName()->getIndex("handL");
+ JUT_ASSERT(2071, m_handL_jnt_num >= 0);
+
+ modelData->getJointNodePointer(m_armRloc_jnt_num)->setCallBack(armNodeCallBack);
+ modelData->getJointNodePointer(m_armLloc_jnt_num)->setCallBack(armNodeCallBack);
+
+ mpArmMorf->getModel()->setUserArea((u32)this);
+
+ if (m3138 != 7) {
+ modelData = (J3DModelData*)dComIfG_getObjectRes(mModelArcName, "mdwing.bdl");
+ JUT_ASSERT(2077, modelData != 0);
+
+ mpWingMorf = new mDoExt_McaMorf(
+ modelData,
+ NULL, NULL,
+ (J3DAnmTransformKey*)dComIfG_getObjectRes(mModelArcName, "mdwing_wait01.bck"),
+ J3DFrameCtrl::LOOP_REPEAT_e, 1.0f, 0, -1, 0,
+ NULL,
+ 0x00000000,
+ 0x11020203
+ );
+ if (!mpWingMorf || !mpWingMorf->getModel()) {
+ return FALSE;
+ }
+
+ m_wingRloc_jnt_num = modelData->getJointName()->getIndex("wingRloc");
+ JUT_ASSERT(2097, m_wingRloc_jnt_num >= 0);
+ m_wingLloc_jnt_num = modelData->getJointName()->getIndex("wingLloc");
+ JUT_ASSERT(2100, m_wingLloc_jnt_num >= 0);
+ m_wingR2_jnt_num = modelData->getJointName()->getIndex("wingR2");
+ JUT_ASSERT(2103, m_wingR2_jnt_num >= 0);
+ m_wingL2_jnt_num = modelData->getJointName()->getIndex("wingL2");
+ JUT_ASSERT(2106, m_wingL2_jnt_num >= 0);
+ m_wingR3_jnt_num = modelData->getJointName()->getIndex("wingR3");
+ JUT_ASSERT(2109, m_wingR3_jnt_num >= 0);
+ m_wingL3_jnt_num = modelData->getJointName()->getIndex("wingL3");
+ JUT_ASSERT(2112, m_wingL3_jnt_num >= 0);
+
+ modelData->getJointNodePointer(m_wingRloc_jnt_num)->setCallBack(armNodeCallBack);
+ modelData->getJointNodePointer(m_wingLloc_jnt_num)->setCallBack(armNodeCallBack);
+
+ mpWingMorf->getModel()->setUserArea((u32)this);
+ }
+
+ modelData = (J3DModelData*)dComIfG_getObjectRes(mModelArcName, "mdharp.bdl");
+ mpHarpModel = mDoExt_J3DModel__create(modelData, 0, 0x11020203);
+ if (!mpHarpModel) {
+ return FALSE;
+ }
+
+ modelData = (J3DModelData*)dComIfG_getObjectRes(mModelArcName, "ymdhp00.bdl");
+ mpHarpLightModel = mDoExt_J3DModel__create(modelData, 0, 0x11020203);
+ if (!mpHarpLightModel) {
+ return FALSE;
+ }
+
+ if (!initLightBtkAnm(false)) {
+ return FALSE;
+ }
+ if (!initTexPatternAnm(0, 0)) {
+ return FALSE;
+ }
+
+ mAcchCir[0].SetWall(20.0f, 20.0f);
+ mAcchCir[1].SetWall(60.0f, 20.0f);
+ mAcch.Set(&current.pos, &next.pos, this, ARRAY_SIZE(mAcchCir), mAcchCir, &speed, NULL, NULL);
+ mAcch.ClrRoofNone();
+ mAcch.SetRoofCrrHeight(120.0f);
+ mAcch.OnLineCheck();
+ mAcch.ClrWaterNone();
+
+ return TRUE;
}
/* 00002F80-00003050 .text setAction__10daNpc_Md_cFPM10daNpc_Md_cFPCvPvPv_iM10daNpc_Md_cFPCvPvPv_iPv */
-void daNpc_Md_c::setAction(int (daNpc_Md_c::**)(void*), int (daNpc_Md_c::*)(void*), void*) {
- /* Nonmatching */
+BOOL daNpc_Md_c::setAction(ActionFunc* pCurrActionFunc, ActionFunc newActionFunc, void* arg) {
+ if (*pCurrActionFunc != newActionFunc) {
+ if (*pCurrActionFunc) {
+ mActionStatus = ACTION_ENDING;
+ (this->**pCurrActionFunc)(arg);
+ }
+ *pCurrActionFunc = newActionFunc;
+ mActionStatus = ACTION_STARTING;
+ m3144 = 0;
+ m3146 = 0;
+ m3148 = 0;
+ m314A = 0;
+ m3150 = 0.0f;
+ (this->**pCurrActionFunc)(arg);
+ }
+ return TRUE;
}
/* 00003050-00003124 .text npcAction__10daNpc_Md_cFPv */
-void daNpc_Md_c::npcAction(void*) {
- /* Nonmatching */
+void daNpc_Md_c::npcAction(void* arg) {
+ if (!mCurrNpcActionFunc) {
+ speedF = 0.0f;
+ if (m3104 == 0x20) {
+ setNpcAction(&mwaitNpcAction, NULL);
+ } else {
+ setNpcAction(&waitNpcAction, NULL);
+ }
+ }
+
+ (this->*mCurrNpcActionFunc)(arg);
}
/* 00003124-00003194 .text setNpcAction__10daNpc_Md_cFM10daNpc_Md_cFPCvPvPv_iPv */
-void daNpc_Md_c::setNpcAction(int (daNpc_Md_c::*)(void*), void*) {
- /* Nonmatching */
+void daNpc_Md_c::setNpcAction(ActionFunc actionFunc, void* arg) {
+ m_flying = false;
+ mCurrPlayerActionFunc = NULL;
+ setAction(&mCurrNpcActionFunc, actionFunc, arg);
}
/* 00003194-00003360 .text playerAction__10daNpc_Md_cFPv */
-void daNpc_Md_c::playerAction(void*) {
- /* Nonmatching */
+void daNpc_Md_c::playerAction(void* arg) {
+ /* Nonmatching */
+ if (!mCurrPlayerActionFunc) {
+ speedF = 0.0f;
+ setPlayerAction(&waitPlayerAction, NULL);
+ }
+
+ if (mAcch.ChkGroundHit() && isOldLightBodyHit()) {
+ dComIfGp_setRStatusForce(0x07); // Show "Return" on the R button
+ if (chkPlayerAction(mkamaePlayerAction)) {
+ dComIfGp_setDoStatus(0x00); // Show the A button without anything on it
+ dComIfGp_setAStatus(0x08); // TODO
+ } else {
+ dComIfGp_setDoStatus(0x2E); // TODO
+ dComIfGp_setAStatus(0x3E); // Do not display the B button icon at all
+ if (!m3140) {
+ dComIfGp_getVibration().StartShock(4, -0x21, cXyz(0.0f, 1.0f, 0.0f));
+ }
+ }
+ } else {
+ dComIfGp_setDoStatus(0x23); // Show "Fly" on the A button
+ if (chkPlayerAction(flyPlayerAction)) {
+ dComIfGp_setRStatusForce(0x3E); // TODO
+ dComIfGp_setAStatus(0x06); // Show "Let Go" on the B button icon
+ } else {
+ dComIfGp_setRStatusForce(0x07); // Show "Return" on the R button
+ dComIfGp_setAStatus(0x3E); // Do not display the B button icon at all
+ }
+ }
+
+ (this->*mCurrPlayerActionFunc)(arg);
}
/* 00003360-000033C4 .text setPlayerAction__10daNpc_Md_cFM10daNpc_Md_cFPCvPvPv_iPv */
-void daNpc_Md_c::setPlayerAction(int (daNpc_Md_c::*)(void*), void*) {
+void daNpc_Md_c::setPlayerAction(ActionFunc actionFunc, void* arg) {
/* Nonmatching */
}
@@ -369,12 +726,12 @@ void daNpc_Md_c::chkAdanmaeDemoOrder() {
}
/* 000043D4-00004B04 .text waitNpcAction__10daNpc_Md_cFPv */
-void daNpc_Md_c::waitNpcAction(void*) {
+int daNpc_Md_c::waitNpcAction(void*) {
/* Nonmatching */
}
/* 00004B04-00004CFC .text harpWaitNpcAction__10daNpc_Md_cFPv */
-void daNpc_Md_c::harpWaitNpcAction(void*) {
+int daNpc_Md_c::harpWaitNpcAction(void*) {
/* Nonmatching */
}
@@ -384,37 +741,37 @@ void daNpc_Md_c::XYTalkCheck() {
}
/* 00004D40-0000504C .text talkNpcAction__10daNpc_Md_cFPv */
-void daNpc_Md_c::talkNpcAction(void*) {
+int daNpc_Md_c::talkNpcAction(void*) {
/* Nonmatching */
}
/* 0000504C-000051FC .text shipTalkNpcAction__10daNpc_Md_cFPv */
-void daNpc_Md_c::shipTalkNpcAction(void*) {
+int daNpc_Md_c::shipTalkNpcAction(void*) {
/* Nonmatching */
}
/* 000051FC-00005308 .text kyohiNpcAction__10daNpc_Md_cFPv */
-void daNpc_Md_c::kyohiNpcAction(void*) {
+int daNpc_Md_c::kyohiNpcAction(void*) {
/* Nonmatching */
}
/* 00005308-00005534 .text shipNpcAction__10daNpc_Md_cFPv */
-void daNpc_Md_c::shipNpcAction(void*) {
+int daNpc_Md_c::shipNpcAction(void*) {
/* Nonmatching */
}
/* 00005534-000057B0 .text mwaitNpcAction__10daNpc_Md_cFPv */
-void daNpc_Md_c::mwaitNpcAction(void*) {
+int daNpc_Md_c::mwaitNpcAction(void*) {
/* Nonmatching */
}
/* 000057B0-000058E0 .text squatdownNpcAction__10daNpc_Md_cFPv */
-void daNpc_Md_c::squatdownNpcAction(void*) {
+int daNpc_Md_c::squatdownNpcAction(void*) {
/* Nonmatching */
}
/* 000058E0-00005A74 .text sqwait01NpcAction__10daNpc_Md_cFPv */
-void daNpc_Md_c::sqwait01NpcAction(void*) {
+int daNpc_Md_c::sqwait01NpcAction(void*) {
/* Nonmatching */
}
@@ -424,17 +781,17 @@ void daNpc_Md_c::changeCaught02() {
}
/* 00005AB0-000061A8 .text carryNpcAction__10daNpc_Md_cFPv */
-void daNpc_Md_c::carryNpcAction(void*) {
+int daNpc_Md_c::carryNpcAction(void*) {
/* Nonmatching */
}
/* 000061A8-00006450 .text throwNpcAction__10daNpc_Md_cFPv */
-void daNpc_Md_c::throwNpcAction(void*) {
+int daNpc_Md_c::throwNpcAction(void*) {
/* Nonmatching */
}
/* 00006450-00006764 .text glidingNpcAction__10daNpc_Md_cFPv */
-void daNpc_Md_c::glidingNpcAction(void*) {
+int daNpc_Md_c::glidingNpcAction(void*) {
/* Nonmatching */
}
@@ -444,47 +801,47 @@ void daNpc_Md_c::windProc() {
}
/* 00006B24-00006C80 .text fallNpcAction__10daNpc_Md_cFPv */
-void daNpc_Md_c::fallNpcAction(void*) {
+int daNpc_Md_c::fallNpcAction(void*) {
/* Nonmatching */
}
/* 00006C80-00006F70 .text fall02NpcAction__10daNpc_Md_cFPv */
-void daNpc_Md_c::fall02NpcAction(void*) {
+int daNpc_Md_c::fall02NpcAction(void*) {
/* Nonmatching */
}
/* 00006F70-000071E4 .text wallHitNpcAction__10daNpc_Md_cFPv */
-void daNpc_Md_c::wallHitNpcAction(void*) {
+int daNpc_Md_c::wallHitNpcAction(void*) {
/* Nonmatching */
}
/* 000071E4-000073BC .text land01NpcAction__10daNpc_Md_cFPv */
-void daNpc_Md_c::land01NpcAction(void*) {
+int daNpc_Md_c::land01NpcAction(void*) {
/* Nonmatching */
}
/* 000073BC-000074C0 .text land02NpcAction__10daNpc_Md_cFPv */
-void daNpc_Md_c::land02NpcAction(void*) {
+int daNpc_Md_c::land02NpcAction(void*) {
/* Nonmatching */
}
/* 000074C0-000075C4 .text land03NpcAction__10daNpc_Md_cFPv */
-void daNpc_Md_c::land03NpcAction(void*) {
+int daNpc_Md_c::land03NpcAction(void*) {
/* Nonmatching */
}
/* 000075C4-00007824 .text piyo2NpcAction__10daNpc_Md_cFPv */
-void daNpc_Md_c::piyo2NpcAction(void*) {
+int daNpc_Md_c::piyo2NpcAction(void*) {
/* Nonmatching */
}
/* 00007824-0000786C .text deleteNpcAction__10daNpc_Md_cFPv */
-void daNpc_Md_c::deleteNpcAction(void*) {
+int daNpc_Md_c::deleteNpcAction(void*) {
/* Nonmatching */
}
/* 0000786C-00007A98 .text demoFlyNpcAction__10daNpc_Md_cFPv */
-void daNpc_Md_c::demoFlyNpcAction(void*) {
+int daNpc_Md_c::demoFlyNpcAction(void*) {
/* Nonmatching */
}
@@ -514,12 +871,12 @@ void daNpc_Md_c::routeCheck(float, short*) {
}
/* 00008858-00008CEC .text searchNpcAction__10daNpc_Md_cFPv */
-void daNpc_Md_c::searchNpcAction(void*) {
+int daNpc_Md_c::searchNpcAction(void*) {
/* Nonmatching */
}
/* 00008CEC-00008E54 .text hitNpcAction__10daNpc_Md_cFPv */
-void daNpc_Md_c::hitNpcAction(void*) {
+int daNpc_Md_c::hitNpcAction(void*) {
/* Nonmatching */
}
@@ -539,52 +896,52 @@ void daNpc_Md_c::walkProc(float, short) {
}
/* 00009180-000092E0 .text jumpNpcAction__10daNpc_Md_cFPv */
-void daNpc_Md_c::jumpNpcAction(void*) {
+int daNpc_Md_c::jumpNpcAction(void*) {
/* Nonmatching */
}
/* 000092E0-000095C8 .text escapeNpcAction__10daNpc_Md_cFPv */
-void daNpc_Md_c::escapeNpcAction(void*) {
+int daNpc_Md_c::escapeNpcAction(void*) {
/* Nonmatching */
}
/* 000095C8-00009894 .text waitPlayerAction__10daNpc_Md_cFPv */
-void daNpc_Md_c::waitPlayerAction(void*) {
+int daNpc_Md_c::waitPlayerAction(void*) {
/* Nonmatching */
}
/* 00009894-00009B08 .text walkPlayerAction__10daNpc_Md_cFPv */
-void daNpc_Md_c::walkPlayerAction(void*) {
+int daNpc_Md_c::walkPlayerAction(void*) {
/* Nonmatching */
}
/* 00009B08-00009CCC .text hitPlayerAction__10daNpc_Md_cFPv */
-void daNpc_Md_c::hitPlayerAction(void*) {
+int daNpc_Md_c::hitPlayerAction(void*) {
/* Nonmatching */
}
/* 00009CCC-00009E7C .text jumpPlayerAction__10daNpc_Md_cFPv */
-void daNpc_Md_c::jumpPlayerAction(void*) {
+int daNpc_Md_c::jumpPlayerAction(void*) {
/* Nonmatching */
}
/* 00009E7C-0000A534 .text flyPlayerAction__10daNpc_Md_cFPv */
-void daNpc_Md_c::flyPlayerAction(void*) {
+int daNpc_Md_c::flyPlayerAction(void*) {
/* Nonmatching */
}
/* 0000A534-0000A698 .text landPlayerAction__10daNpc_Md_cFPv */
-void daNpc_Md_c::landPlayerAction(void*) {
+int daNpc_Md_c::landPlayerAction(void*) {
/* Nonmatching */
}
/* 0000A698-0000A8D0 .text mkamaePlayerAction__10daNpc_Md_cFPv */
-void daNpc_Md_c::mkamaePlayerAction(void*) {
+int daNpc_Md_c::mkamaePlayerAction(void*) {
/* Nonmatching */
}
/* 0000A8D0-0000A9BC .text carryPlayerAction__10daNpc_Md_cFPv */
-void daNpc_Md_c::carryPlayerAction(void*) {
+int daNpc_Md_c::carryPlayerAction(void*) {
/* Nonmatching */
}
@@ -788,7 +1145,7 @@ void daNpc_Md_c::getAnmType(unsigned char) {
}
/* 0000CDF4-0000CF18 .text initTexPatternAnm__10daNpc_Md_cFUcb */
-void daNpc_Md_c::initTexPatternAnm(unsigned char, bool) {
+BOOL daNpc_Md_c::initTexPatternAnm(unsigned char, bool) {
/* Nonmatching */
}
@@ -798,7 +1155,7 @@ void daNpc_Md_c::playTexPatternAnm() {
}
/* 0000CFCC-0000D0B8 .text initLightBtkAnm__10daNpc_Md_cFb */
-void daNpc_Md_c::initLightBtkAnm(bool) {
+BOOL daNpc_Md_c::initLightBtkAnm(bool) {
/* Nonmatching */
}
diff --git a/src/d/actor/d_a_obj_barrier.cpp b/src/d/actor/d_a_obj_barrier.cpp
index 9ac41853..6349ebf1 100644
--- a/src/d/actor/d_a_obj_barrier.cpp
+++ b/src/d/actor/d_a_obj_barrier.cpp
@@ -139,7 +139,7 @@ static const dCcD_SrcCyl l_cyl_tg_src = {
/* SrcObjAt Type */ 0,
/* SrcObjAt Atp */ 0,
/* SrcObjAt SPrm */ 0,
- /* SrcObjTg Type */ ~(AT_TYPE_WATER | AT_TYPE_UNK20000 | AT_TYPE_UNK400000 | AT_TYPE_UNK800000),
+ /* SrcObjTg Type */ ~(AT_TYPE_WATER | AT_TYPE_UNK20000 | AT_TYPE_UNK400000 | AT_TYPE_LIGHT),
/* SrcObjTg SPrm */ 9,
/* SrcObjCo SPrm */ 0,
/* SrcGObjAt Se */ 0,
diff --git a/src/d/actor/d_a_obj_paper.cpp b/src/d/actor/d_a_obj_paper.cpp
index 33b8ef1d..c8235e2c 100644
--- a/src/d/actor/d_a_obj_paper.cpp
+++ b/src/d/actor/d_a_obj_paper.cpp
@@ -62,7 +62,7 @@ namespace daObjPaper {
/* SrcObjAt Type */ 0,
/* SrcObjAt Atp */ 0,
/* SrcObjAt SPrm */ 0,
- /* SrcObjTg Type */ ~(AT_TYPE_WATER | AT_TYPE_UNK20000 | AT_TYPE_LEAF_WIND | AT_TYPE_UNK400000 | AT_TYPE_UNK800000),
+ /* SrcObjTg Type */ ~(AT_TYPE_WATER | AT_TYPE_UNK20000 | AT_TYPE_LEAF_WIND | AT_TYPE_UNK400000 | AT_TYPE_LIGHT),
/* SrcObjTg SPrm */ 0x0F,
/* SrcObjCo SPrm */ 0x79,
/* SrcGObjAt Se */ 0,
diff --git a/src/d/d_kankyo_rain.cpp b/src/d/d_kankyo_rain.cpp
index d5a84295..60d172df 100644
--- a/src/d/d_kankyo_rain.cpp
+++ b/src/d/d_kankyo_rain.cpp
@@ -743,7 +743,7 @@ BOOL light_at_hit_check(cXyz* pPos) {
bool ret = false;
fopAc_ac_c * pActor;
u32 res = dComIfG_Ccsp()->mMass_Mng.Chk(pPos, &pActor, &hitInfo);
- if (((res & 1) != 0) && (hitInfo.GetAtHitObj()->GetAtType() & AT_TYPE_UNK800000) != 0)
+ if (((res & 1) != 0) && (hitInfo.GetAtHitObj()->GetAtType() & AT_TYPE_LIGHT) != 0)
ret = true;
return ret;
}
diff --git a/src/m_Do/m_Do_ext.cpp b/src/m_Do/m_Do_ext.cpp
index 16819f6b..1b622b09 100644
--- a/src/m_Do/m_Do_ext.cpp
+++ b/src/m_Do/m_Do_ext.cpp
@@ -1151,7 +1151,10 @@ void mDoExt_MtxCalcOldFrame::decOldFrameMorfCounter() {
}
/* 80012650-800129E4 .text __ct__14mDoExt_McaMorfFP12J3DModelDataP25mDoExt_McaMorfCallBack1_cP25mDoExt_McaMorfCallBack2_cP15J3DAnmTransformifiiiPvUlUl */
-mDoExt_McaMorf::mDoExt_McaMorf(J3DModelData* modelData, mDoExt_McaMorfCallBack1_c* callback1, mDoExt_McaMorfCallBack2_c* callback2, J3DAnmTransform* anmTransform, int loopMode, f32 param_5, int param_6, int param_7, int param_8, void* basAnm, u32 modelFlag, u32 differedDlistFlag) {
+mDoExt_McaMorf::mDoExt_McaMorf(J3DModelData* modelData, mDoExt_McaMorfCallBack1_c* callback1,
+ mDoExt_McaMorfCallBack2_c* callback2, J3DAnmTransform* anmTransform,
+ int loopMode, f32 param_5, int param_6, int param_7, int param_8,
+ void* basAnm, u32 modelFlag, u32 differedDlistFlag) {
mpModel = NULL;
mpSound = NULL;
mpTransformInfo = NULL;
@@ -1380,7 +1383,11 @@ void mDoExt_McaMorf::stopZelAnime() {
}
/* 80013388-800136F4 .text __ct__15mDoExt_McaMorf2FP12J3DModelDataP25mDoExt_McaMorfCallBack1_cP25mDoExt_McaMorfCallBack2_cP15J3DAnmTransformP15J3DAnmTransformifiiiPvUlUl */
-mDoExt_McaMorf2::mDoExt_McaMorf2(J3DModelData*, mDoExt_McaMorfCallBack1_c*, mDoExt_McaMorfCallBack2_c*, J3DAnmTransform*, J3DAnmTransform*, int, f32, int, int, int, void*, u32, u32) {
+mDoExt_McaMorf2::mDoExt_McaMorf2(J3DModelData* modelData, mDoExt_McaMorfCallBack1_c* callback1,
+ mDoExt_McaMorfCallBack2_c* callback2,
+ J3DAnmTransform* anmTransform1, J3DAnmTransform* anmTransform2,
+ int loopMode, f32 param_5, int param_6, int param_7, int param_8,
+ void* basAnm, u32 modelFlag, u32 differedDlistFlag) {
/* Nonmatching */
}