summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorYunataSavior <58997725+YunataSavior@users.noreply.github.com>2025-10-16 20:21:57 -0700
committerGitHub <noreply@github.com>2025-10-16 20:21:57 -0700
commit43bf8abf483dca508f0c0ec24e4c50afc4190895 (patch)
tree2bfb0f31ee46585c7c9ef0d23e16d5761b020e7a /src
parentda605fd79248c70a75b1ddb69c51ed9dd6782cb8 (diff)
npc_toby OK (#2733)
* npc_toby 68% done * address ykm ykw regressions * All npc_toby cut done + chkPassed1 fakematch * npc_toby OK * npc_toby some hio var rename * npc_gnd cleanup * npc_gnd CreateHeap and reset * Add fakematch comment fo get_u16_Idx
Diffstat (limited to 'src')
-rw-r--r--src/d/actor/d_a_npc.cpp26
-rw-r--r--src/d/actor/d_a_npc_gnd.cpp1092
-rw-r--r--src/d/actor/d_a_npc_moi.cpp14
-rw-r--r--src/d/actor/d_a_npc_toby.cpp4014
-rw-r--r--src/d/actor/d_a_npc_ykm.cpp2
-rw-r--r--src/d/actor/d_a_npc_ykw.cpp2
-rw-r--r--src/d/actor/d_a_obj_automata.cpp4
7 files changed, 2322 insertions, 2832 deletions
diff --git a/src/d/actor/d_a_npc.cpp b/src/d/actor/d_a_npc.cpp
index dfc8b8d875..3e0835750c 100644
--- a/src/d/actor/d_a_npc.cpp
+++ b/src/d/actor/d_a_npc.cpp
@@ -461,12 +461,18 @@ int daNpcT_Path_c::getDstPosH(cXyz i_pnt, cXyz* o_pos_p, int i_idx, int param_3)
/* 80146188-801464D8 140AC8 0350+00 2/2 0/0 2/2 .text chkPassed1__13daNpcT_Path_cF4cXyzi
*/
-// NONMATCHING one instruction order swap
int daNpcT_Path_c::chkPassed1(cXyz i_pnt, int i_num) {
- cXyz prev_pos, cur_pos, next_pos;
+ cXyz prev_pos;
+ cXyz cur_pos;
+ cXyz next_pos;
cXyz sp5C;
+#if VERSION != VERSION_SHIELD_DEBUG
+ // FIXME: fakematch. I literally don't know how else to get this to match....
+ u16 cur_idx = get_u16_Idx();
+#else
u16 cur_idx = getIdx();
+#endif
u16 prev_idx, next_idx;
prev_idx = next_idx = cur_idx;
@@ -543,7 +549,7 @@ int daNpcT_Path_c::chkPassed2(cXyz i_pnt, cXyz* param_2, int i_num, int param_4)
cXyz h_startTan;
cXyz h_endTan;
- u16 cur_idx = (u16)getIdx();
+ u16 cur_idx = getIdx();
u16 sp10;
u16 prev_idx;
u16 next_idx;
@@ -1794,11 +1800,17 @@ int daNpcT_c::ctrlJoint(J3DJoint* i_joint, J3DModel* i_model) {
}
/* 8014997C-80149BB4 1442BC 0238+00 1/0 1/0 58/0 .text evtProc__8daNpcT_cFv */
-// NONMATCHING loads dComIfG_gameInfo twice
BOOL daNpcT_c::evtProc() {
BOOL ret = FALSE;
- if (dComIfGp_event_runCheck() != 0) {
+#if VERSION != VERSION_SHIELD_DEBUG
+ // TODO: gameInfo fake match to force reuse of pointer
+ dComIfG_play_c* play = &g_dComIfG_gameInfo.play;
+ if (play->getEvent().runCheck())
+#else
+ if (dComIfGp_event_runCheck())
+#endif
+ {
if (eventInfo.checkCommandTalk()) {
if (!checkChangeEvt()) {
evtTalk();
@@ -1807,7 +1819,11 @@ BOOL daNpcT_c::evtProc() {
} else if (eventInfo.checkCommandDemoAccrpt()
&& dComIfGp_getEventManager().endCheck(mEvtId)) {
if (evtEndProc()) {
+#if VERSION != VERSION_SHIELD_DEBUG
+ play->getEvent().reset();
+#else
dComIfGp_event_reset();
+#endif
mEvtId = -1;
}
} else {
diff --git a/src/d/actor/d_a_npc_gnd.cpp b/src/d/actor/d_a_npc_gnd.cpp
index eefbc8a53a..7c700c1f0f 100644
--- a/src/d/actor/d_a_npc_gnd.cpp
+++ b/src/d/actor/d_a_npc_gnd.cpp
@@ -8,258 +8,14 @@
#include "d/actor/d_a_npc_gnd.h"
#include "dol2asm.h"
-//
-// Forward References:
-//
-
-extern "C" void __dt__11daNpc_Gnd_cFv();
-extern "C" void create__11daNpc_Gnd_cFv();
-extern "C" void CreateHeap__11daNpc_Gnd_cFv();
-extern "C" void __dt__15J3DTevKColorAnmFv();
-extern "C" void __ct__15J3DTevKColorAnmFv();
-extern "C" void __dt__14J3DTevColorAnmFv();
-extern "C" void __ct__14J3DTevColorAnmFv();
-extern "C" void __dt__11J3DTexNoAnmFv();
-extern "C" void __ct__11J3DTexNoAnmFv();
-extern "C" void __dt__12J3DTexMtxAnmFv();
-extern "C" void __ct__12J3DTexMtxAnmFv();
-extern "C" void __dt__14J3DMatColorAnmFv();
-extern "C" void __ct__14J3DMatColorAnmFv();
-extern "C" void Delete__11daNpc_Gnd_cFv();
-extern "C" void Execute__11daNpc_Gnd_cFv();
-extern "C" void Draw__11daNpc_Gnd_cFv();
-extern "C" void createHeapCallBack__11daNpc_Gnd_cFP10fopAc_ac_c();
-extern "C" void ctrlJointCallBack__11daNpc_Gnd_cFP8J3DJointi();
-extern "C" void getType__11daNpc_Gnd_cFv();
-extern "C" void getFlowNodeNo__11daNpc_Gnd_cFv();
-extern "C" void isDelete__11daNpc_Gnd_cFv();
-extern "C" void reset__11daNpc_Gnd_cFv();
-extern "C" void afterJntAnm__11daNpc_Gnd_cFi();
-extern "C" void ctrlBtk__11daNpc_Gnd_cFv();
-extern "C" void setParam__11daNpc_Gnd_cFv();
-extern "C" void setAfterTalkMotion__11daNpc_Gnd_cFv();
-extern "C" void srchActors__11daNpc_Gnd_cFv();
-extern "C" void evtTalk__11daNpc_Gnd_cFv();
-extern "C" void evtCutProc__11daNpc_Gnd_cFv();
-extern "C" void action__11daNpc_Gnd_cFv();
-extern "C" void beforeMove__11daNpc_Gnd_cFv();
-extern "C" void setAttnPos__11daNpc_Gnd_cFv();
-extern "C" void setCollision__11daNpc_Gnd_cFv();
-extern "C" bool drawDbgInfo__11daNpc_Gnd_cFv();
-extern "C" void afterSetMotionAnm__11daNpc_Gnd_cFiifi();
-extern "C" void selectAction__11daNpc_Gnd_cFv();
-extern "C" void chkAction__11daNpc_Gnd_cFM11daNpc_Gnd_cFPCvPvPv_i();
-extern "C" void setAction__11daNpc_Gnd_cFM11daNpc_Gnd_cFPCvPvPv_i();
-extern "C" void wait__11daNpc_Gnd_cFPv();
-extern "C" void talk__11daNpc_Gnd_cFPv();
-extern "C" static void daNpc_Gnd_Create__FPv();
-extern "C" static void daNpc_Gnd_Delete__FPv();
-extern "C" static void daNpc_Gnd_Execute__FPv();
-extern "C" static void daNpc_Gnd_Draw__FPv();
-extern "C" static bool daNpc_Gnd_IsDelete__FPv();
-extern "C" void calc__11J3DTexNoAnmCFPUs();
-extern "C" void __dt__10cCcD_GSttsFv();
-extern "C" void __dt__8daNpcT_cFv();
-extern "C" void __dt__4cXyzFv();
-extern "C" void __dt__5csXyzFv();
-extern "C" void
-__ct__8daNpcT_cFPC26daNpcT_faceMotionAnmData_cPC22daNpcT_motionAnmData_cPCQ222daNpcT_MotionSeqMngr_c18sequenceStepData_ciPCQ222daNpcT_MotionSeqMngr_c18sequenceStepData_ciPC16daNpcT_evtData_cPPc();
-extern "C" void __ct__5csXyzFv();
-extern "C" void __dt__15daNpcT_JntAnm_cFv();
-extern "C" void __ct__4cXyzFv();
-extern "C" void __dt__18daNpcT_ActorMngr_cFv();
-extern "C" void __dt__22daNpcT_MotionSeqMngr_cFv();
-extern "C" void __dt__12dBgS_AcchCirFv();
-extern "C" void __dt__10dCcD_GSttsFv();
-extern "C" void __dt__12dBgS_ObjAcchFv();
-extern "C" void __dt__12J3DFrameCtrlFv();
-extern "C" void setEyeAngleY__15daNpcT_JntAnm_cF4cXyzsifs();
-extern "C" void setEyeAngleX__15daNpcT_JntAnm_cF4cXyzfs();
-extern "C" void ctrlSubFaceMotion__8daNpcT_cFi();
-extern "C" bool checkChangeJoint__8daNpcT_cFi();
-extern "C" bool checkRemoveJoint__8daNpcT_cFi();
-extern "C" s32 getFootLJointNo__8daNpcT_cFv();
-extern "C" s32 getFootRJointNo__8daNpcT_cFv();
-extern "C" u16 getEyeballMaterialNo__8daNpcT_cFv();
-extern "C" bool checkChangeEvt__8daNpcT_cFv();
-extern "C" bool evtEndProc__8daNpcT_cFv();
-extern "C" void afterMoved__8daNpcT_cFv();
-extern "C" bool chkXYItems__8daNpcT_cFv();
-extern "C" void decTmr__8daNpcT_cFv();
-extern "C" void drawOtherMdl__8daNpcT_cFv();
-extern "C" void drawGhost__8daNpcT_cFv();
-extern "C" bool afterSetFaceMotionAnm__8daNpcT_cFiifi();
-extern "C" void getFaceMotionAnm__8daNpcT_cF26daNpcT_faceMotionAnmData_c();
-extern "C" void getMotionAnm__8daNpcT_cF22daNpcT_motionAnmData_c();
-extern "C" void changeAnm__8daNpcT_cFPiPi();
-extern "C" void changeBck__8daNpcT_cFPiPi();
-extern "C" void changeBtp__8daNpcT_cFPiPi();
-extern "C" void changeBtk__8daNpcT_cFPiPi();
-extern "C" void __sinit_d_a_npc_gnd_cpp();
-extern "C" void
-__ct__11daNpc_Gnd_cFPC26daNpcT_faceMotionAnmData_cPC22daNpcT_motionAnmData_cPCQ222daNpcT_MotionSeqMngr_c18sequenceStepData_ciPCQ222daNpcT_MotionSeqMngr_c18sequenceStepData_ciPC16daNpcT_evtData_cPPc();
-extern "C" void __dt__8cM3dGCylFv();
-extern "C" void __dt__8cM3dGAabFv();
-extern "C" u16 getEyeballRMaterialNo__11daNpc_Gnd_cFv();
-extern "C" u16 getEyeballLMaterialNo__11daNpc_Gnd_cFv();
-extern "C" s32 getHeadJointNo__11daNpc_Gnd_cFv();
-extern "C" s32 getNeckJointNo__11daNpc_Gnd_cFv();
-extern "C" bool getBackboneJointNo__11daNpc_Gnd_cFv();
-extern "C" void __dt__17daNpc_Gnd_Param_cFv();
-extern "C" static void func_809BE47C();
-extern "C" static void func_809BE484();
-extern "C" u8 const m__17daNpc_Gnd_Param_c[140];
-extern "C" extern char const* const d_a_npc_gnd__stringBase0;
-extern "C" void* mCutNameList__11daNpc_Gnd_c;
-extern "C" u8 mCutList__11daNpc_Gnd_c[12];
-
-//
-// External References:
-//
-
-extern "C" void mDoMtx_YrotM__FPA4_fs();
-extern "C" void mDoMtx_ZrotM__FPA4_fs();
-extern "C" void
-__ct__16mDoExt_McaMorfSOFP12J3DModelDataP25mDoExt_McaMorfCallBack1_cP25mDoExt_McaMorfCallBack2_cP15J3DAnmTransformifiiP10Z2CreatureUlUl();
-extern "C" void stopZelAnime__16mDoExt_McaMorfSOFv();
-extern "C" void __ct__10fopAc_ac_cFv();
-extern "C" void __dt__10fopAc_ac_cFv();
-extern "C" void fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl();
-extern "C" void fopAcM_setCullSizeBox__FP10fopAc_ac_cffffff();
-extern "C" void fopAcM_searchActorAngleY__FPC10fopAc_ac_cPC10fopAc_ac_c();
-extern "C" void dComIfGs_wolfeye_effect_check__Fv();
-extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci();
-extern "C" void reset__14dEvt_control_cFv();
-extern "C" void getMyStaffId__16dEvent_manager_cFPCcP10fopAc_ac_ci();
-extern "C" void getMyActIdx__16dEvent_manager_cFiPCPCciii();
-extern "C" void cutEnd__16dEvent_manager_cFi();
-extern "C" void ChkPresentEnd__16dEvent_manager_cFv();
-extern "C" void __ct__12dBgS_AcchCirFv();
-extern "C" void SetWallR__12dBgS_AcchCirFf();
-extern "C" void __dt__9dBgS_AcchFv();
-extern "C" void __ct__9dBgS_AcchFv();
-extern "C" void Set__9dBgS_AcchFP4cXyzP4cXyzP10fopAc_ac_ciP12dBgS_AcchCirP4cXyzP5csXyzP5csXyz();
-extern "C" void CrrPos__9dBgS_AcchFR4dBgS();
-extern "C" void __ct__11dBgS_GndChkFv();
-extern "C" void __dt__11dBgS_GndChkFv();
-extern "C" void __ct__11dBgS_LinChkFv();
-extern "C" void __dt__11dBgS_LinChkFv();
-extern "C" void SetObj__16dBgS_PolyPassChkFv();
-extern "C" void __ct__10dCcD_GSttsFv();
-extern "C" void Init__9dCcD_SttsFiiP10fopAc_ac_c();
-extern "C" void __ct__12dCcD_GObjInfFv();
-extern "C" void __dt__12dCcD_GObjInfFv();
-extern "C" void Set__8dCcD_CylFRC11dCcD_SrcCyl();
-extern "C" void initialize__18daNpcT_ActorMngr_cFv();
-extern "C" void entry__18daNpcT_ActorMngr_cFP10fopAc_ac_c();
-extern "C" void remove__18daNpcT_ActorMngr_cFv();
-extern "C" void getActorP__18daNpcT_ActorMngr_cFv();
-extern "C" void initialize__15daNpcT_MatAnm_cFv();
-extern "C" void initialize__22daNpcT_MotionSeqMngr_cFv();
-extern "C" void initialize__15daNpcT_JntAnm_cFv();
-extern "C" void setParam__15daNpcT_JntAnm_cFP10fopAc_ac_cP8J3DModelP4cXyziiiffffffffffP4cXyz();
-extern "C" void calcJntRad__15daNpcT_JntAnm_cFfff();
-extern "C" void calc__19daNpcT_DmgStagger_cFi();
-extern "C" void tgHitCallBack__8daNpcT_cFP10fopAc_ac_cP12dCcD_GObjInfP10fopAc_ac_cP12dCcD_GObjInf();
-extern "C" void getTevRegKeyAnmP__8daNpcT_cFPCci();
-extern "C" void getColorAnmP__8daNpcT_cFPCci();
-extern "C" void setBrkAnm__8daNpcT_cFP15J3DAnmTevRegKeyP12J3DModelDatafi();
-extern "C" void setBpkAnm__8daNpcT_cFP11J3DAnmColorP12J3DModelDatafi();
-extern "C" void loadRes__8daNpcT_cFPCScPPCc();
-extern "C" void deleteRes__8daNpcT_cFPCScPPCc();
-extern "C" void execute__8daNpcT_cFv();
-extern "C" void draw__8daNpcT_cFiifP11_GXColorS10fiii();
-extern "C" void setEnvTevColor__8daNpcT_cFv();
-extern "C" void setRoomNo__8daNpcT_cFv();
-extern "C" void setMtx__8daNpcT_cFv();
-extern "C" void ctrlJoint__8daNpcT_cFP8J3DJointP8J3DModel();
-extern "C" void evtProc__8daNpcT_cFv();
-extern "C" void setFootPos__8daNpcT_cFv();
-extern "C" void setFootPrtcl__8daNpcT_cFP4cXyzff();
-extern "C" bool checkCullDraw__8daNpcT_cFv();
-extern "C" void twilight__8daNpcT_cFv();
-extern "C" void evtOrder__8daNpcT_cFv();
-extern "C" void evtChange__8daNpcT_cFv();
-extern "C" void clrParam__8daNpcT_cFv();
-extern "C" void setFaceMotionAnm__8daNpcT_cFib();
-extern "C" void setMotionAnm__8daNpcT_cFifi();
-extern "C" void setAngle__8daNpcT_cFs();
-extern "C" void chkActorInSight__8daNpcT_cFP10fopAc_ac_cfs();
-extern "C" void srchPlayerActor__8daNpcT_cFv();
-extern "C" void step__8daNpcT_cFsiiii();
-extern "C" void initTalk__8daNpcT_cFiPP10fopAc_ac_c();
-extern "C" void talkProc__8daNpcT_cFPiiPP10fopAc_ac_ci();
-extern "C" void daNpcT_getDistTableIdx__Fii();
-extern "C" void __ct__10dMsgFlow_cFv();
-extern "C" void __dt__10dMsgFlow_cFv();
-extern "C" void Set__4cCcSFP8cCcD_Obj();
-extern "C" void __mi__4cXyzCFRC3Vec();
-extern "C" void cM_atan2s__Fff();
-extern "C" void cM_rndF__Ff();
-extern "C" void __ct__11cBgS_GndChkFv();
-extern "C" void __dt__11cBgS_GndChkFv();
-extern "C" void __dt__13cBgS_PolyInfoFv();
-extern "C" void __dt__8cM3dGCirFv();
-extern "C" void SetC__8cM3dGCylFRC4cXyz();
-extern "C" void SetH__8cM3dGCylFf();
-extern "C" void SetR__8cM3dGCylFf();
-extern "C" void __ct__10Z2CreatureFv();
-extern "C" void __dt__10Z2CreatureFv();
-extern "C" void init__10Z2CreatureFP3VecP3VecUcUc();
-extern "C" void* __nw__FUl();
-extern "C" void __dl__FPv();
-extern "C" void init__12J3DFrameCtrlFs();
-extern "C" void getTexNo__16J3DAnmTexPatternCFUsPUs();
-extern "C" void initialize__14J3DMaterialAnmFv();
-extern "C" void __destroy_arr();
-extern "C" void __construct_array();
-extern "C" void __ptmf_test();
-extern "C" void __ptmf_cmpr();
-extern "C" void __ptmf_scall();
-extern "C" void _savegpr_22();
-extern "C" void _savegpr_25();
-extern "C" void _savegpr_27();
-extern "C" void _savegpr_28();
-extern "C" void _savegpr_29();
-extern "C" void _restgpr_22();
-extern "C" void _restgpr_25();
-extern "C" void _restgpr_27();
-extern "C" void _restgpr_28();
-extern "C" void _restgpr_29();
-extern "C" extern u8 const __ptmf_null[12 + 4 /* padding */];
-extern "C" extern void* __vt__8dCcD_Cyl[36];
-extern "C" extern void* __vt__9dCcD_Stts[11];
-extern "C" u8 mCcDCyl__8daNpcT_c[68];
-extern "C" extern void* __vt__8daNpcT_c[49];
-extern "C" extern void* __vt__15daNpcT_MatAnm_c[4 + 1 /* padding */];
-extern "C" extern void* __vt__12cCcD_CylAttr[25];
-extern "C" extern void* __vt__14cCcD_ShapeAttr[22];
-extern "C" extern void* __vt__9cCcD_Stts[8];
-extern "C" extern void* __vt__14J3DMaterialAnm[4];
-extern "C" u8 now__14mDoMtx_stack_c[48];
-extern "C" u8 sincosTable___5JMath[65536];
-extern "C" void __register_global_object();
-
-//
-// Declarations:
-//
-
-// /* ############################################################################################## */
-// /* 809BE588-809BE588 0000E8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
-// #pragma push
-// #pragma force_active on
-// SECTION_DEAD static char const* const stringBase_809BE588 = "";
-// SECTION_DEAD static char const* const stringBase_809BE589 = "NO_RESPONSE";
-// SECTION_DEAD static char const* const stringBase_809BE595 = "Gnd";
-// #pragma pop
/* 809BE5BC-809BE5C4 000020 0008+00 1/1 0/0 0/0 .data l_bmdData */
-SECTION_DATA static u8 l_bmdData[8] = {
- 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x01,
+static int l_bmdData[1][2] = {
+ {11, 1},
};
/* 809BE5C4-809BE5D4 -00001 0010+00 0/1 0/0 0/0 .data l_evtList */
-SECTION_DATA static daNpcT_evtData_c l_evtList[2] = {
+static daNpcT_evtData_c l_evtList[2] = {
{"", 0},
{"NO_RESPONSE", 0},
};
@@ -286,23 +42,17 @@ static daNpcT_faceMotionAnmData_c l_faceMotionAnmData[1] = {
};
/* 809BE604-809BE620 000068 001C+00 0/1 0/0 0/0 .data l_motionAnmData */
-#pragma push
-#pragma force_active on
-SECTION_DATA static int l_motionAnmData[7] = {
- 8, 2, 1, 20, 0, 1, 65536
+static daNpcT_motionAnmData_c l_motionAnmData[1] = {
+ {8, 2, 1, 20, 0, 1, 1, 0},
};
-#pragma pop
/* 809BE620-809BE630 000084 0010+00 0/1 0/0 0/0 .data l_faceMotionSequenceData */
-#pragma push
-#pragma force_active on
-SECTION_DATA static daNpcT_MotionSeqMngr_c::sequenceStepData_c l_faceMotionSequenceData[4] = {
+static daNpcT_MotionSeqMngr_c::sequenceStepData_c l_faceMotionSequenceData[4] = {
{0, -1, 0},
{-1, 0, 0},
{-1, 0, 0},
{-1, 0, 0},
};
-#pragma pop
/* 809BE630-809BE640 000094 0010+00 0/1 0/0 0/0 .data l_motionSequenceData */
static daNpcT_MotionSeqMngr_c::sequenceStepData_c l_motionSequenceData[4] = {
@@ -313,369 +63,170 @@ static daNpcT_MotionSeqMngr_c::sequenceStepData_c l_motionSequenceData[4] = {
SECTION_DATA char* daNpc_Gnd_c::mCutNameList = "";
/* 809BE644-809BE650 0000A8 000C+00 2/2 0/0 0/0 .data mCutList__11daNpc_Gnd_c */
-daNpc_Gnd_c::cutFunc daNpc_Gnd_c::mCutList[1] = {
- 0,
-};
-
-/* 809BE650-809BE65C -00001 000C+00 1/1 0/0 0/0 .data @4607 */
-SECTION_DATA static void* lit_4607[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)talk__11daNpc_Gnd_cFPv,
-};
-
-/* 809BE65C-809BE668 -00001 000C+00 1/1 0/0 0/0 .data @4617 */
-SECTION_DATA static void* lit_4617[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)talk__11daNpc_Gnd_cFPv,
-};
-
-/* 809BE668-809BE670 0000CC 0008+00 0/1 0/0 0/0 .data brkAnmData$4830 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static u8 brkAnmData[8] = {
- 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x01,
-};
-#pragma pop
-
-/* 809BE670-809BE678 0000D4 0008+00 0/1 0/0 0/0 .data bpkAnmData$4831 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static u8 bpkAnmData[8] = {
- 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x01,
-};
-#pragma pop
-
-/* 809BE678-809BE684 -00001 000C+00 1/1 0/0 0/0 .data @4881 */
-SECTION_DATA static void* lit_4881[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)wait__11daNpc_Gnd_cFPv,
-};
-
-/* 809BE684-809BE6A4 -00001 0020+00 1/0 0/0 0/0 .data daNpc_Gnd_MethodTable */
-static actor_method_class daNpc_Gnd_MethodTable = {
- (process_method_func)daNpc_Gnd_Create__FPv,
- (process_method_func)daNpc_Gnd_Delete__FPv,
- (process_method_func)daNpc_Gnd_Execute__FPv,
- (process_method_func)daNpc_Gnd_IsDelete__FPv,
- (process_method_func)daNpc_Gnd_Draw__FPv,
-};
-
-/* 809BE6A4-809BE6D4 -00001 0030+00 0/0 0/0 1/0 .data g_profile_NPC_GND */
-extern actor_process_profile_definition g_profile_NPC_GND = {
- fpcLy_CURRENT_e, // mLayerID
- 7, // mListID
- fpcPi_CURRENT_e, // mListPrio
- PROC_NPC_GND, // mProcName
- &g_fpcLf_Method.base, // sub_method
- sizeof(daNpc_Gnd_c), // mSize
- 0, // mSizeOther
- 0, // mParameters
- &g_fopAc_Method.base, // sub_method
- 305, // mPriority
- &daNpc_Gnd_MethodTable, // sub_method
- 0x00044107, // mStatus
- fopAc_NPC_e, // mActorType
- fopAc_CULLBOX_CUSTOM_e, // cullType
-};
-
-/* 809BE6D4-809BE6E0 000138 000C+00 2/2 0/0 0/0 .data __vt__11J3DTexNoAnm */
-SECTION_DATA extern void* __vt__11J3DTexNoAnm[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)calc__11J3DTexNoAnmCFPUs,
-};
-
-/* 809BE6E0-809BE6EC 000144 000C+00 3/3 0/0 0/0 .data __vt__12J3DFrameCtrl */
-SECTION_DATA extern void* __vt__12J3DFrameCtrl[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__12J3DFrameCtrlFv,
-};
-
-// /* 809BE6EC-809BE710 000150 0024+00 3/3 0/0 0/0 .data __vt__12dBgS_ObjAcch */
-// SECTION_DATA extern void* __vt__12dBgS_ObjAcch[9] = {
-// (void*)NULL /* RTTI */,
-// (void*)NULL,
-// (void*)__dt__12dBgS_ObjAcchFv,
-// (void*)NULL,
-// (void*)NULL,
-// (void*)func_809BE484,
-// (void*)NULL,
-// (void*)NULL,
-// (void*)func_809BE47C,
-// };
-
-// /* 809BE710-809BE71C 000174 000C+00 2/2 0/0 0/0 .data __vt__12dBgS_AcchCir */
-// SECTION_DATA extern void* __vt__12dBgS_AcchCir[3] = {
-// (void*)NULL /* RTTI */,
-// (void*)NULL,
-// (void*)__dt__12dBgS_AcchCirFv,
-// };
-
-// /* 809BE71C-809BE728 000180 000C+00 3/3 0/0 0/0 .data __vt__10cCcD_GStts */
-// SECTION_DATA extern void* __vt__10cCcD_GStts[3] = {
-// (void*)NULL /* RTTI */,
-// (void*)NULL,
-// (void*)__dt__10cCcD_GSttsFv,
-// };
-
-// /* 809BE728-809BE734 00018C 000C+00 2/2 0/0 0/0 .data __vt__10dCcD_GStts */
-// SECTION_DATA extern void* __vt__10dCcD_GStts[3] = {
-// (void*)NULL /* RTTI */,
-// (void*)NULL,
-// (void*)__dt__10dCcD_GSttsFv,
-// };
-
-// /* 809BE734-809BE740 000198 000C+00 3/3 0/0 0/0 .data __vt__22daNpcT_MotionSeqMngr_c */
-// SECTION_DATA extern void* __vt__22daNpcT_MotionSeqMngr_c[3] = {
-// (void*)NULL /* RTTI */,
-// (void*)NULL,
-// (void*)__dt__22daNpcT_MotionSeqMngr_cFv,
-// };
-
-// /* 809BE740-809BE74C 0001A4 000C+00 4/4 0/0 0/0 .data __vt__18daNpcT_ActorMngr_c */
-// SECTION_DATA extern void* __vt__18daNpcT_ActorMngr_c[3] = {
-// (void*)NULL /* RTTI */,
-// (void*)NULL,
-// (void*)__dt__18daNpcT_ActorMngr_cFv,
-// };
-
-// /* 809BE74C-809BE758 0001B0 000C+00 3/3 0/0 0/0 .data __vt__15daNpcT_JntAnm_c */
-// SECTION_DATA extern void* __vt__15daNpcT_JntAnm_c[3] = {
-// (void*)NULL /* RTTI */,
-// (void*)NULL,
-// (void*)__dt__15daNpcT_JntAnm_cFv,
-// };
-
-/* 809BE758-809BE764 0001BC 000C+00 3/3 0/0 0/0 .data __vt__8cM3dGAab */
-SECTION_DATA extern void* __vt__8cM3dGAab[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__8cM3dGAabFv,
-};
-
-/* 809BE764-809BE770 0001C8 000C+00 3/3 0/0 0/0 .data __vt__8cM3dGCyl */
-SECTION_DATA extern void* __vt__8cM3dGCyl[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__8cM3dGCylFv,
-};
-
-// /* 809BE770-809BE834 0001D4 00C4+00 2/2 0/0 0/0 .data __vt__11daNpc_Gnd_c */
-// SECTION_DATA extern void* __vt__11daNpc_Gnd_c[49] = {
-// (void*)NULL /* RTTI */,
-// (void*)NULL,
-// (void*)__dt__11daNpc_Gnd_cFv,
-// (void*)ctrlBtk__11daNpc_Gnd_cFv,
-// (void*)ctrlSubFaceMotion__8daNpcT_cFi,
-// (void*)checkChangeJoint__8daNpcT_cFi,
-// (void*)checkRemoveJoint__8daNpcT_cFi,
-// (void*)getBackboneJointNo__11daNpc_Gnd_cFv,
-// (void*)getNeckJointNo__11daNpc_Gnd_cFv,
-// (void*)getHeadJointNo__11daNpc_Gnd_cFv,
-// (void*)getFootLJointNo__8daNpcT_cFv,
-// (void*)getFootRJointNo__8daNpcT_cFv,
-// (void*)getEyeballLMaterialNo__11daNpc_Gnd_cFv,
-// (void*)getEyeballRMaterialNo__11daNpc_Gnd_cFv,
-// (void*)getEyeballMaterialNo__8daNpcT_cFv,
-// (void*)ctrlJoint__8daNpcT_cFP8J3DJointP8J3DModel,
-// (void*)afterJntAnm__11daNpc_Gnd_cFi,
-// (void*)setParam__11daNpc_Gnd_cFv,
-// (void*)checkChangeEvt__8daNpcT_cFv,
-// (void*)evtTalk__11daNpc_Gnd_cFv,
-// (void*)evtEndProc__8daNpcT_cFv,
-// (void*)evtCutProc__11daNpc_Gnd_cFv,
-// (void*)setAfterTalkMotion__11daNpc_Gnd_cFv,
-// (void*)evtProc__8daNpcT_cFv,
-// (void*)action__11daNpc_Gnd_cFv,
-// (void*)beforeMove__11daNpc_Gnd_cFv,
-// (void*)afterMoved__8daNpcT_cFv,
-// (void*)setAttnPos__11daNpc_Gnd_cFv,
-// (void*)setFootPos__8daNpcT_cFv,
-// (void*)setCollision__11daNpc_Gnd_cFv,
-// (void*)setFootPrtcl__8daNpcT_cFP4cXyzff,
-// (void*)checkCullDraw__8daNpcT_cFv,
-// (void*)twilight__8daNpcT_cFv,
-// (void*)chkXYItems__8daNpcT_cFv,
-// (void*)evtOrder__8daNpcT_cFv,
-// (void*)decTmr__8daNpcT_cFv,
-// (void*)clrParam__8daNpcT_cFv,
-// (void*)drawDbgInfo__11daNpc_Gnd_cFv,
-// (void*)drawOtherMdl__8daNpcT_cFv,
-// (void*)drawGhost__8daNpcT_cFv,
-// (void*)afterSetFaceMotionAnm__8daNpcT_cFiifi,
-// (void*)afterSetMotionAnm__11daNpc_Gnd_cFiifi,
-// (void*)getFaceMotionAnm__8daNpcT_cF26daNpcT_faceMotionAnmData_c,
-// (void*)getMotionAnm__8daNpcT_cF22daNpcT_motionAnmData_c,
-// (void*)changeAnm__8daNpcT_cFPiPi,
-// (void*)changeBck__8daNpcT_cFPiPi,
-// (void*)changeBtp__8daNpcT_cFPiPi,
-// (void*)changeBtk__8daNpcT_cFPiPi,
-// (void*)setMotionAnm__8daNpcT_cFifi,
-// };
-
-/* 809BB60C-809BB730 0000EC 0124+00 1/0 0/0 0/0 .text __dt__11daNpc_Gnd_cFv */
-daNpc_Gnd_c::~daNpc_Gnd_c() {
- // NONMATCHING
-}
+daNpc_Gnd_c::cutFunc daNpc_Gnd_c::mCutList[1] = {NULL};
/* ############################################################################################## */
/* 809BE4A0-809BE52C 000000 008C+00 6/6 0/0 0/0 .rodata m__17daNpc_Gnd_Param_c */
-daNpc_Gnd_Param_c::Data const daNpc_Gnd_Param_c::m = {
- 280.0f, -3.0f, 1.0f, 500.0f, 255.0f, 260.0f,
- 35.0f, 50.0f, 0.0f, 0.0f, 10.0f, -10.0f,
- 30.0f, -10.0f, 45.0f, -45.0f, 0.6f, 12.0f,
- 3, 6, 5, 6, 110.0f, 0, 0, 0, 60, 8, 0.0f, 0.0f,
- 4.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f
+const daNpc_Gnd_HIOParam daNpc_Gnd_Param_c::m = {
+ 280.0f,
+ -3.0f,
+ 1.0f,
+ 500.0f,
+ 255.0f,
+ 260.0f,
+ 35.0f,
+ 50.0f,
+ 0.0f,
+ 0.0f,
+ 10.0f,
+ -10.0f,
+ 30.0f,
+ -10.0f,
+ 45.0f,
+ -45.0f,
+ 0.6f,
+ 12.0f,
+ 3,
+ 6,
+ 5,
+ 6,
+ 110.0f,
+ 0.0f,
+ 0.0f,
+ 0.0f,
+ 60,
+ 8,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 4.0f,
+ 0.0f,
+ 0.0f,
+ 0.0f,
+ 0.0f,
+ 0.0f,
+ 0.0f,
+ 0.0f,
};
-/* 809BE52C-809BE530 00008C 0004+00 0/1 0/0 0/0 .rodata @4020 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4020 = -300.0f;
-COMPILER_STRIP_GATE(0x809BE52C, &lit_4020);
-#pragma pop
+NPC_GND_HIO_CLASS l_HIO;
-/* 809BE530-809BE534 000090 0004+00 0/1 0/0 0/0 .rodata @4021 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4021 = -50.0f;
-COMPILER_STRIP_GATE(0x809BE530, &lit_4021);
-#pragma pop
-
-/* 809BE534-809BE538 000094 0004+00 0/1 0/0 0/0 .rodata @4022 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4022 = 300.0f;
-COMPILER_STRIP_GATE(0x809BE534, &lit_4022);
-#pragma pop
+/* 809BB60C-809BB730 0000EC 0124+00 1/0 0/0 0/0 .text __dt__11daNpc_Gnd_cFv */
+daNpc_Gnd_c::~daNpc_Gnd_c() {
+ OS_REPORT("|%06d:%x|daNpc_Gnd_c -> デストラクト\n", g_Counter.mCounter0, this);
+ if (heap != NULL) {
+ mpMorf[0]->stopZelAnime();
+ }
-/* 809BE538-809BE53C 000098 0004+00 0/1 0/0 0/0 .rodata @4023 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4023 = 450.0f;
-COMPILER_STRIP_GATE(0x809BE538, &lit_4023);
-#pragma pop
+#if DEBUG
+ if (mpHIO != NULL) {
+ mpHIO->removeHIO();
+ }
+#endif
-/* 809BE53C-809BE540 00009C 0004+00 0/1 0/0 0/0 .rodata @4024 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4024 = -G_CM3D_F_INF;
-COMPILER_STRIP_GATE(0x809BE53C, &lit_4024);
-#pragma pop
+ deleteRes(l_loadResPtrnList[mType], (const char**)l_resNameList);
+}
/* 809BB730-809BB9D4 000210 02A4+00 1/1 0/0 0/0 .text create__11daNpc_Gnd_cFv */
int daNpc_Gnd_c::create() {
fopAcM_SetupActor2(this, daNpc_Gnd_c, l_faceMotionAnmData,
- (const daNpcT_motionAnmData_c *)l_motionAnmData, l_faceMotionSequenceData, 4,
- l_motionSequenceData, 4, l_evtList, l_resNameList
- );
+ l_motionAnmData, l_faceMotionSequenceData, 4,
+ l_motionSequenceData, 4, l_evtList, l_resNameList);
+
mType = getType();
mFlowNodeNo = getFlowNodeNo();
mTwilight = false;
int rv = loadRes(l_loadResPtrnList[mType], (const char**)l_resNameList);
- if (rv == 4) {
+ if (rv == cPhs_COMPLEATE_e) {
if (!fopAcM_entrySolidHeap(this, createHeapCallBack, 0)) {
+ return cPhs_ERROR_e;
+ }
+ OS_REPORT("\t(%s:%d) flowNo:%d<%08x> ", fopAcM_getProcNameString(this),
+ mType, mFlowNodeNo, fopAcM_GetParam(this));
+ if (isDelete()) {
+ OS_REPORT("===>isDelete:TRUE\n");
+ return cPhs_ERROR_e;
+ }
+
+ OS_REPORT("\n");
+ J3DModelData* modelData = mpMorf[0]->getModel()->getModelData();
+ fopAcM_SetMtx(this, mpMorf[0]->getModel()->getBaseTRMtx());
+ fopAcM_setCullSizeBox(this, -300.0f, -50.0f, -300.0f, 300.0f, 450.0f, 300.0f);
+ fopAcM_OnStatus(this, fopAcM_STATUS_UNK_0x8000000);
+ mSound.init(&current.pos, &eyePos, 3, 1);
+#if DEBUG
+ mpHIO = &l_HIO;
+ // Ganondorf:
+ mpHIO->entryHIO("ガノンドロフ");
+#endif
+ mAcch.Set(fopAcM_GetPosition_p(this), fopAcM_GetOldPosition_p(this), this, 1,
+ &mAcchCir, fopAcM_GetSpeed_p(this), fopAcM_GetAngle_p(this),
+ fopAcM_GetShapeAngle_p(this));
+ mCcStts.Init(mpHIO->m.common.weight, 0, this);
+ mCyl1.Set(mCcDCyl);
+ mCyl1.SetStts(&mCcStts);
+ mCyl1.SetTgHitCallback(tgHitCallBack);
+ mAcch.CrrPos(dComIfG_Bgsp());
+ mGndChk = mAcch.m_gnd;
+ mGroundH = mAcch.GetGroundH();
+ if (mGroundH != -G_CM3D_F_INF) {
+ setEnvTevColor();
+ setRoomNo();
}
+
+ reset();
+ mCreating = 1;
+ Execute();
+ mCreating = 0;
}
- return 0; // Placeholder
+
+ return rv;
}
-/* ############################################################################################## */
-/* 809BE540-809BE544 0000A0 0004+00 5/9 0/0 0/0 .rodata @4178 */
-SECTION_RODATA static u8 const lit_4178[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
-};
-COMPILER_STRIP_GATE(0x809BE540, &lit_4178);
+/* 809BB9D4-809BBC70 0004B4 029C+00 1/1 0/0 0/0 .text CreateHeap__11daNpc_Gnd_cFv */
+int daNpc_Gnd_c::CreateHeap() {
+ J3DModelData* mdlData_p = NULL;
+ J3DModel* model = NULL;
+ int bmdIdx = 0;
+ int res_name_idx = l_bmdData[bmdIdx][1];
+ int my_bmd = l_bmdData[bmdIdx][0];
+ mdlData_p = static_cast<J3DModelData*>(dComIfG_getObjectRes(l_resNameList[res_name_idx], my_bmd));
+ JUT_ASSERT(433, 0 != mdlData_p);
+
+ u32 sp_0x24 = 0x11020285;
+ mpMorf[0] = new mDoExt_McaMorfSO(mdlData_p, NULL, NULL, NULL, -1, 1.0f, 0, -1, &mSound, 0x80000, sp_0x24);
+ if (mpMorf[0] != NULL && mpMorf[0]->getModel() == NULL) {
+ mpMorf[0]->stopZelAnime();
+ mpMorf[0] = NULL;
+ }
-/* 809BE544-809BE548 0000A4 0004+00 0/2 0/0 0/0 .rodata @4179 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4179 = 65536.0f;
-COMPILER_STRIP_GATE(0x809BE544, &lit_4179);
-#pragma pop
+ if (mpMorf[0] == NULL) {
+ return 0;
+ }
+
+ model = mpMorf[0]->getModel();
+ for (u16 i = 0; i < mdlData_p->getJointNum(); i++) {
+ mdlData_p->getJointNodePointer(i)->setCallBack(ctrlJointCallBack);
+ }
-/* 809BE548-809BE54C 0000A8 0004+00 1/4 0/0 0/0 .rodata @4180 */
-SECTION_RODATA static f32 const lit_4180 = 1.0f / 5.0f;
-COMPILER_STRIP_GATE(0x809BE548, &lit_4180);
+ model->setUserArea((uintptr_t)this);
+ for (int idx = 0; idx < 2; ++idx) {
+ mpMatAnm[idx] = new daNpcT_MatAnm_c();
+ if (mpMatAnm[idx] == NULL) {
+ return 0;
+ }
+ }
-/* 809BE54C-809BE550 0000AC 0004+00 3/5 0/0 0/0 .rodata @4331 */
-SECTION_RODATA static f32 const lit_4331 = 1.0f;
-COMPILER_STRIP_GATE(0x809BE54C, &lit_4331);
+ if (setFaceMotionAnm(0, false) && setMotionAnm(0, 0.0f, FALSE)) {
+ return 1;
+ }
-/* 809BB9D4-809BBC70 0004B4 029C+00 1/1 0/0 0/0 .text CreateHeap__11daNpc_Gnd_cFv */
-int daNpc_Gnd_c::CreateHeap() {
-
return 0;
}
-// /* 809BBC70-809BBCAC 000750 003C+00 1/1 0/0 0/0 .text __dt__15J3DTevKColorAnmFv */
-// // J3DTevKColorAnm::~J3DTevKColorAnm() {
-// extern "C" void __dt__15J3DTevKColorAnmFv() {
-// // NONMATCHING
-// }
-
-// /* 809BBCAC-809BBCC4 00078C 0018+00 1/1 0/0 0/0 .text __ct__15J3DTevKColorAnmFv */
-// // J3DTevKColorAnm::J3DTevKColorAnm() {
-// extern "C" void __ct__15J3DTevKColorAnmFv() {
-// // NONMATCHING
-// }
-
-// /* 809BBCC4-809BBD00 0007A4 003C+00 1/1 0/0 0/0 .text __dt__14J3DTevColorAnmFv */
-// // J3DTevColorAnm::~J3DTevColorAnm() {
-// extern "C" void __dt__14J3DTevColorAnmFv() {
-// // NONMATCHING
-// }
-
-// /* 809BBD00-809BBD18 0007E0 0018+00 1/1 0/0 0/0 .text __ct__14J3DTevColorAnmFv */
-// // J3DTevColorAnm::J3DTevColorAnm() {
-// extern "C" void __ct__14J3DTevColorAnmFv() {
-// // NONMATCHING
-// }
-
-// /* 809BBD18-809BBD60 0007F8 0048+00 1/1 0/0 0/0 .text __dt__11J3DTexNoAnmFv */
-// // J3DTexNoAnm::~J3DTexNoAnm() {
-// extern "C" void __dt__11J3DTexNoAnmFv() {
-// // NONMATCHING
-// }
-
-// /* 809BBD60-809BBD84 000840 0024+00 1/1 0/0 0/0 .text __ct__11J3DTexNoAnmFv */
-// // J3DTexNoAnm::J3DTexNoAnm() {
-// extern "C" void __ct__11J3DTexNoAnmFv() {
-// // NONMATCHING
-// }
-
-// /* 809BBD84-809BBDC0 000864 003C+00 1/1 0/0 0/0 .text __dt__12J3DTexMtxAnmFv */
-// // J3DTexMtxAnm::~J3DTexMtxAnm() {
-// extern "C" void __dt__12J3DTexMtxAnmFv() {
-// // NONMATCHING
-// }
-
-// /* 809BBDC0-809BBDD8 0008A0 0018+00 1/1 0/0 0/0 .text __ct__12J3DTexMtxAnmFv */
-// // J3DTexMtxAnm::J3DTexMtxAnm() {
-// extern "C" void __ct__12J3DTexMtxAnmFv() {
-// // NONMATCHING
-// }
-
-// /* 809BBDD8-809BBE14 0008B8 003C+00 1/1 0/0 0/0 .text __dt__14J3DMatColorAnmFv */
-// // J3DMatColorAnm::~J3DMatColorAnm() {
-// extern "C" void __dt__14J3DMatColorAnmFv() {
-// // NONMATCHING
-// }
-
-// /* 809BBE14-809BBE2C 0008F4 0018+00 1/1 0/0 0/0 .text __ct__14J3DMatColorAnmFv */
-// // J3DMatColorAnm::J3DMatColorAnm() {
-// extern "C" void __ct__14J3DMatColorAnmFv() {
-// // NONMATCHING
-// }
-
/* 809BBE2C-809BBE60 00090C 0034+00 1/1 0/0 0/0 .text Delete__11daNpc_Gnd_cFv */
int daNpc_Gnd_c::Delete() {
fopAcM_GetID(this);
@@ -688,18 +239,18 @@ int daNpc_Gnd_c::Execute() {
return daNpcT_c::execute();
}
-/* ############################################################################################## */
-/* 809BE550-809BE554 0000B0 0004+00 1/1 0/0 0/0 .rodata @4391 */
-SECTION_RODATA static f32 const lit_4391 = 100.0f;
-COMPILER_STRIP_GATE(0x809BE550, &lit_4391);
-
/* 809BBE80-809BBF44 000960 00C4+00 1/1 0/0 0/0 .text Draw__11daNpc_Gnd_cFv */
int daNpc_Gnd_c::Draw() {
+ J3DModelData* modelData = mpMorf[0]->getModel()->getModelData();
if (mpMatAnm[0] != NULL) {
- J3DModelData* modelData = mpMorf[0]->getModel()->getModelData();
- modelData->getMaterialNodePointer(getEyeballMaterialNo())->setMaterialAnm(mpMatAnm[0]);
+ modelData->getMaterialNodePointer(getEyeballLMaterialNo())->setMaterialAnm(mpMatAnm[0]);
}
- return daNpcT_c::draw(0, 0, mRealShadowSize, NULL, 100.0f, 0, 0, 0);
+
+ if (mpMatAnm[1] != NULL) {
+ modelData->getMaterialNodePointer(getEyeballRMaterialNo())->setMaterialAnm(mpMatAnm[1]);
+ }
+
+ return daNpcT_c::draw(0, 1, mRealShadowSize, NULL, 100.0f, 0, 0, 0);
}
/* 809BBF44-809BBF64 000A24 0020+00 1/1 0/0 0/0 .text
@@ -710,14 +261,15 @@ int daNpc_Gnd_c::createHeapCallBack(fopAc_ac_c* i_this) {
/* 809BBF64-809BBFBC 000A44 0058+00 1/1 0/0 0/0 .text ctrlJointCallBack__11daNpc_Gnd_cFP8J3DJointi
*/
-int daNpc_Gnd_c::ctrlJointCallBack(J3DJoint* param_1, int param_2) {
- if (param_2 == 0) {
+int daNpc_Gnd_c::ctrlJointCallBack(J3DJoint* i_joint, int arg1) {
+ if (arg1 == 0) {
J3DModel* model = j3dSys.getModel();
daNpc_Gnd_c* i_this = reinterpret_cast<daNpc_Gnd_c*>(model->getUserArea());
if (i_this != 0) {
- i_this->ctrlJoint(param_1, model);
+ i_this->ctrlJoint(i_joint, model);
}
}
+
return 1;
}
@@ -745,6 +297,7 @@ int daNpc_Gnd_c::isDelete() {
if (mType == TYPE_1) {
return 0;
}
+
switch (mType) {
case TYPE_0:
return 0;
@@ -756,7 +309,15 @@ int daNpc_Gnd_c::isDelete() {
/* 809BC028-809BC168 000B08 0140+00 1/1 0/0 0/0 .text reset__11daNpc_Gnd_cFv */
void daNpc_Gnd_c::reset() {
- // NONMATCHING
+ initialize();
+ memset(&field_0xF84, 0, (u8*)&field_0xF9C - (u8*)&field_0xF84);
+ for (int idx = 0; idx < 2; ++idx) {
+ if (mpMatAnm[idx] != NULL) {
+ mpMatAnm[idx]->initialize();
+ }
+ }
+
+ setAngle(home.angle.y);
}
/* 809BC168-809BC1F4 000C48 008C+00 1/0 0/0 0/0 .text afterJntAnm__11daNpc_Gnd_cFi */
@@ -924,109 +485,6 @@ static int daNpc_Gnd_IsDelete(void* i_this) {
return 1;
}
-// /* 809BD2D0-809BD300 001DB0 0030+00 1/0 0/0 0/0 .text calc__11J3DTexNoAnmCFPUs */
-// // void J3DTexNoAnm::calc(u16* param_0) const {
-// extern "C" void calc__11J3DTexNoAnmCFPUs() {
-// // NONMATCHING
-// }
-
-// /* 809BD300-809BD348 001DE0 0048+00 1/0 0/0 0/0 .text __dt__10cCcD_GSttsFv */
-// // cCcD_GStts::~cCcD_GStts() {
-// extern "C" void __dt__10cCcD_GSttsFv() {
-// // NONMATCHING
-// }
-
-// /* 809BD348-809BD6D0 001E28 0388+00 1/1 0/0 0/0 .text __dt__8daNpcT_cFv */
-// // daNpcT_c::~daNpcT_c() {
-// extern "C" void __dt__8daNpcT_cFv() {
-// // NONMATCHING
-// }
-
-// /* 809BD6D0-809BD70C 0021B0 003C+00 3/3 0/0 0/0 .text __dt__4cXyzFv */
-// // cXyz::~cXyz() {
-// extern "C" void __dt__4cXyzFv() {
-// // NONMATCHING
-// }
-
-// /* 809BD70C-809BD748 0021EC 003C+00 2/2 0/0 0/0 .text __dt__5csXyzFv */
-// // csXyz::~csXyz() {
-// extern "C" void __dt__5csXyzFv() {
-// // NONMATCHING
-// }
-
-// /* 809BD748-809BDB4C 002228 0404+00 1/1 0/0 0/0 .text
-// * __ct__8daNpcT_cFPC26daNpcT_faceMotionAnmData_cPC22daNpcT_motionAnmData_cPCQ222daNpcT_MotionSeqMngr_c18sequenceStepData_ciPCQ222daNpcT_MotionSeqMngr_c18sequenceStepData_ciPC16daNpcT_evtData_cPPc
-// */
-// // daNpcT_c::daNpcT_c(daNpcT_faceMotionAnmData_c const* param_0,
-// // daNpcT_motionAnmData_c const* param_1,
-// // daNpcT_MotionSeqMngr_c::sequenceStepData_c const* param_2, int param_3,
-// // daNpcT_MotionSeqMngr_c::sequenceStepData_c const* param_4, int param_5,
-// // daNpcT_evtData_c const* param_6, char** param_7) {
-// extern "C" void __ct__8daNpcT_cFPC26daNpcT_faceMotionAnmData_cPC22daNpcT_motionAnmData_cPCQ222daNpcT_MotionSeqMngr_c18sequenceStepData_ciPCQ222daNpcT_MotionSeqMngr_c18sequenceStepData_ciPC16daNpcT_evtData_cPPc() {
-// // NONMATCHING
-// }
-
-// /* 809BDB4C-809BDB50 00262C 0004+00 1/1 0/0 0/0 .text __ct__5csXyzFv */
-// // csXyz::csXyz() {
-// extern "C" void __ct__5csXyzFv() {
-// /* empty function */
-// }
-
-// /* 809BDB50-809BDC4C 002630 00FC+00 1/0 0/0 0/0 .text __dt__15daNpcT_JntAnm_cFv */
-// // daNpcT_JntAnm_c::~daNpcT_JntAnm_c() {
-// extern "C" void __dt__15daNpcT_JntAnm_cFv() {
-// // NONMATCHING
-// }
-
-// /* 809BDC4C-809BDC50 00272C 0004+00 1/1 0/0 0/0 .text __ct__4cXyzFv */
-// // cXyz::cXyz() {
-// extern "C" void __ct__4cXyzFv() {
-// /* empty function */
-// }
-
-// /* 809BDC50-809BDC98 002730 0048+00 1/0 0/0 0/0 .text __dt__18daNpcT_ActorMngr_cFv */
-// // daNpcT_ActorMngr_c::~daNpcT_ActorMngr_c() {
-// extern "C" void __dt__18daNpcT_ActorMngr_cFv() {
-// // NONMATCHING
-// }
-
-// /* 809BDC98-809BDCE0 002778 0048+00 1/0 0/0 0/0 .text __dt__22daNpcT_MotionSeqMngr_cFv */
-// // daNpcT_MotionSeqMngr_c::~daNpcT_MotionSeqMngr_c() {
-// extern "C" void __dt__22daNpcT_MotionSeqMngr_cFv() {
-// // NONMATCHING
-// }
-
-// /* 809BDCE0-809BDD50 0027C0 0070+00 1/0 0/0 0/0 .text __dt__12dBgS_AcchCirFv */
-// // dBgS_AcchCir::~dBgS_AcchCir() {
-// extern "C" void __dt__12dBgS_AcchCirFv() {
-// // NONMATCHING
-// }
-
-// /* 809BDD50-809BDDAC 002830 005C+00 1/0 0/0 0/0 .text __dt__10dCcD_GSttsFv */
-// // dCcD_GStts::~dCcD_GStts() {
-// extern "C" void __dt__10dCcD_GSttsFv() {
-// // NONMATCHING
-// }
-
-// /* 809BDDAC-809BDE1C 00288C 0070+00 3/2 0/0 0/0 .text __dt__12dBgS_ObjAcchFv */
-// // dBgS_ObjAcch::~dBgS_ObjAcch() {
-// extern "C" void __dt__12dBgS_ObjAcchFv() {
-// // NONMATCHING
-// }
-
-// /* 809BDE1C-809BDE64 0028FC 0048+00 1/0 0/0 0/0 .text __dt__12J3DFrameCtrlFv */
-// // J3DFrameCtrl::~J3DFrameCtrl() {
-// extern "C" void __dt__12J3DFrameCtrlFv() {
-// // NONMATCHING
-// }
-
-// /* 809BDE64-809BDF80 002944 011C+00 1/1 0/0 0/0 .text setEyeAngleY__15daNpcT_JntAnm_cF4cXyzsifs */
-// // void daNpcT_JntAnm_c::setEyeAngleY(cXyz param_0, s16 param_1, int param_2, f32 param_3,
-// // s16 param_4) {
-// extern "C" void setEyeAngleY__15daNpcT_JntAnm_cF4cXyzsifs() {
-// // NONMATCHING
-// }
-
/* ############################################################################################## */
/* 809BE570-809BE578 0000D0 0008+00 0/1 0/0 0/0 .rodata @4785 */
#pragma push
@@ -1055,178 +513,68 @@ SECTION_RODATA static u8 const lit_4787[8] = {
COMPILER_STRIP_GATE(0x809BE580, &lit_4787);
#pragma pop
-// /* 809BDF80-809BE188 002A60 0208+00 1/1 0/0 0/0 .text setEyeAngleX__15daNpcT_JntAnm_cF4cXyzfs */
-// // void daNpcT_JntAnm_c::setEyeAngleX(cXyz param_0, f32 param_1, s16 param_2) {
-// extern "C" void setEyeAngleX__15daNpcT_JntAnm_cF4cXyzfs() {
-// // NONMATCHING
-// }
-
-// /* 809BE188-809BE18C 002C68 0004+00 1/0 0/0 0/0 .text ctrlSubFaceMotion__8daNpcT_cFi */
-// // void daNpcT_c::ctrlSubFaceMotion(int param_0) {
-// extern "C" void ctrlSubFaceMotion__8daNpcT_cFi() {
-// /* empty function */
-// }
-
-// /* 809BE1BC-809BE1C4 002C9C 0008+00 1/0 0/0 0/0 .text evtEndProc__8daNpcT_cFv */
-// // bool daNpcT_c::evtEndProc() {
-// extern "C" bool evtEndProc__8daNpcT_cFv() {
-// return true;
-// }
-
-// /* 809BE1C8-809BE1D0 002CA8 0008+00 1/0 0/0 0/0 .text chkXYItems__8daNpcT_cFv */
-// // bool daNpcT_c::chkXYItems() {
-// extern "C" bool chkXYItems__8daNpcT_cFv() {
-// return false;
-// }
-
-// /* 809BE1D0-809BE1E8 002CB0 0018+00 1/0 0/0 0/0 .text decTmr__8daNpcT_cFv */
-// // void daNpcT_c::decTmr() {
-// extern "C" void decTmr__8daNpcT_cFv() {
-// // NONMATCHING
-// }
-
-// /* 809BE1E8-809BE1EC 002CC8 0004+00 1/0 0/0 0/0 .text drawOtherMdl__8daNpcT_cFv */
-// // void daNpcT_c::drawOtherMdl() {
-// extern "C" void drawOtherMdl__8daNpcT_cFv() {
-// /* empty function */
-// }
-
-// /* 809BE1EC-809BE1F0 002CCC 0004+00 1/0 0/0 0/0 .text drawGhost__8daNpcT_cFv */
-// // void daNpcT_c::drawGhost() {
-// extern "C" void drawGhost__8daNpcT_cFv() {
-// /* empty function */
-// }
-
-// /* 809BE1F0-809BE1F8 002CD0 0008+00 1/0 0/0 0/0 .text afterSetFaceMotionAnm__8daNpcT_cFiifi */
-// // bool daNpcT_c::afterSetFaceMotionAnm(int param_0, int param_1, f32 param_2, int param_3) {
-// extern "C" bool afterSetFaceMotionAnm__8daNpcT_cFiifi() {
-// return true;
-// }
-
-// /* 809BE1F8-809BE228 002CD8 0030+00 1/0 0/0 0/0 .text
-// * getFaceMotionAnm__8daNpcT_cF26daNpcT_faceMotionAnmData_c */
-// // void daNpcT_c::getFaceMotionAnm(daNpcT_faceMotionAnmData_c param_0) {
-// extern "C" void getFaceMotionAnm__8daNpcT_cF26daNpcT_faceMotionAnmData_c() {
-// // NONMATCHING
-// }
-
-// /* 809BE228-809BE258 002D08 0030+00 1/0 0/0 0/0 .text
-// * getMotionAnm__8daNpcT_cF22daNpcT_motionAnmData_c */
-// // void daNpcT_c::getMotionAnm(daNpcT_motionAnmData_c param_0) {
-// extern "C" void getMotionAnm__8daNpcT_cF22daNpcT_motionAnmData_c() {
-// // NONMATCHING
-// }
-
-// /* 809BE258-809BE25C 002D38 0004+00 1/0 0/0 0/0 .text changeAnm__8daNpcT_cFPiPi */
-// // void daNpcT_c::changeAnm(int* param_0, int* param_1) {
-// extern "C" void changeAnm__8daNpcT_cFPiPi() {
-// /* empty function */
-// }
-
-// /* 809BE25C-809BE260 002D3C 0004+00 1/0 0/0 0/0 .text changeBck__8daNpcT_cFPiPi */
-// // void daNpcT_c::changeBck(int* param_0, int* param_1) {
-// extern "C" void changeBck__8daNpcT_cFPiPi() {
-// /* empty function */
-// }
-
-// /* 809BE260-809BE264 002D40 0004+00 1/0 0/0 0/0 .text changeBtp__8daNpcT_cFPiPi */
-// // void daNpcT_c::changeBtp(int* param_0, int* param_1) {
-// extern "C" void changeBtp__8daNpcT_cFPiPi() {
-// /* empty function */
-// }
-
-// /* 809BE264-809BE268 002D44 0004+00 1/0 0/0 0/0 .text changeBtk__8daNpcT_cFPiPi */
-// // void daNpcT_c::changeBtk(int* param_0, int* param_1) {
-// extern "C" void changeBtk__8daNpcT_cFPiPi() {
-// /* empty function */
-// }
-
-// /* ############################################################################################## */
-// /* 809BE834-809BE840 000298 000C+00 2/2 0/0 0/0 .data __vt__17daNpc_Gnd_Param_c */
-// SECTION_DATA extern void* __vt__17daNpc_Gnd_Param_c[3] = {
-// (void*)NULL /* RTTI */,
-// (void*)NULL,
-// (void*)__dt__17daNpc_Gnd_Param_cFv,
-// };
-
-/* 809BE848-809BE854 000008 000C+00 1/1 0/0 0/0 .bss @3813 */
-static u8 lit_3813[12];
-
-/* 809BE854-809BE858 000014 0004+00 1/1 0/0 0/0 .bss l_HIO */
-static u8 l_HIO[4];
-
-/* 809BE268-809BE2D0 002D48 0068+00 0/0 1/0 0/0 .text __sinit_d_a_npc_gnd_cpp */
-void __sinit_d_a_npc_gnd_cpp() {
- // NONMATCHING
-}
+extern "C" void talk__11daNpc_Gnd_cFPv();
+/* 809BE650-809BE65C -00001 000C+00 1/1 0/0 0/0 .data @4607 */
+SECTION_DATA static void* lit_4607[3] = {
+ (void*)NULL,
+ (void*)0xFFFFFFFF,
+ (void*)talk__11daNpc_Gnd_cFPv,
+};
+/* 809BE65C-809BE668 -00001 000C+00 1/1 0/0 0/0 .data @4617 */
+SECTION_DATA static void* lit_4617[3] = {
+ (void*)NULL,
+ (void*)0xFFFFFFFF,
+ (void*)talk__11daNpc_Gnd_cFPv,
+};
+
+/* 809BE668-809BE670 0000CC 0008+00 0/1 0/0 0/0 .data brkAnmData$4830 */
#pragma push
#pragma force_active on
-REGISTER_CTORS(0x809BE268, __sinit_d_a_npc_gnd_cpp);
+SECTION_DATA static u8 brkAnmData[8] = {
+ 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x01,
+};
#pragma pop
-/* 809BE2D0-809BE37C 002DB0 00AC+00 1/1 0/0 0/0 .text
- * __ct__11daNpc_Gnd_cFPC26daNpcT_faceMotionAnmData_cPC22daNpcT_motionAnmData_cPCQ222daNpcT_MotionSeqMngr_c18sequenceStepData_ciPCQ222daNpcT_MotionSeqMngr_c18sequenceStepData_ciPC16daNpcT_evtData_cPPc
-// */
-// daNpc_Gnd_c::daNpc_Gnd_c(daNpcT_faceMotionAnmData_c const* param_0,
-// daNpcT_motionAnmData_c const* param_1,
-// daNpcT_MotionSeqMngr_c::sequenceStepData_c const* param_2, int param_3,
-// daNpcT_MotionSeqMngr_c::sequenceStepData_c const* param_4, int param_5,
-// daNpcT_evtData_c const* param_6, char** param_7) {
-// // NONMATCHING
-// }
-
-// /* 809BE37C-809BE3C4 002E5C 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGCylFv */
-// // cM3dGCyl::~cM3dGCyl() {
-// extern "C" void __dt__8cM3dGCylFv() {
-// // NONMATCHING
-// }
-
-// /* 809BE3C4-809BE40C 002EA4 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGAabFv */
-// // cM3dGAab::~cM3dGAab() {
-// extern "C" void __dt__8cM3dGAabFv() {
-// // NONMATCHING
-// }
-
-/* 809BE40C-809BE414 002EEC 0008+00 1/0 0/0 0/0 .text getEyeballRMaterialNo__11daNpc_Gnd_cFv */
-u16 daNpc_Gnd_c::getEyeballRMaterialNo() {
- return 3;
-}
-
-/* 809BE414-809BE41C 002EF4 0008+00 1/0 0/0 0/0 .text getEyeballLMaterialNo__11daNpc_Gnd_cFv */
-u16 daNpc_Gnd_c::getEyeballLMaterialNo() {
- return 2;
-}
-
-/* 809BE41C-809BE424 002EFC 0008+00 1/0 0/0 0/0 .text getHeadJointNo__11daNpc_Gnd_cFv */
-s32 daNpc_Gnd_c::getHeadJointNo() {
- return 4;
-}
-
-/* 809BE424-809BE42C 002F04 0008+00 1/0 0/0 0/0 .text getNeckJointNo__11daNpc_Gnd_cFv */
-s32 daNpc_Gnd_c::getNeckJointNo() {
- return 3;
-}
-
-/* 809BE42C-809BE434 002F0C 0008+00 1/0 0/0 0/0 .text getBackboneJointNo__11daNpc_Gnd_cFv
- */
-s32 daNpc_Gnd_c::getBackboneJointNo() {
- return 1;
-}
-
-// /* 809BE434-809BE47C 002F14 0048+00 2/1 0/0 0/0 .text __dt__17daNpc_Gnd_Param_cFv */
-// daNpc_Gnd_Param_c::~daNpc_Gnd_Param_c() {
-// // NONMATCHING
-// }
+/* 809BE670-809BE678 0000D4 0008+00 0/1 0/0 0/0 .data bpkAnmData$4831 */
+#pragma push
+#pragma force_active on
+SECTION_DATA static u8 bpkAnmData[8] = {
+ 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x01,
+};
+#pragma pop
-/* 809BE47C-809BE484 002F5C 0008+00 1/0 0/0 0/0 .text @36@__dt__12dBgS_ObjAcchFv */
-static void func_809BE47C() {
- // NONMATCHING
-}
+extern "C" void wait__11daNpc_Gnd_cFPv();
+/* 809BE678-809BE684 -00001 000C+00 1/1 0/0 0/0 .data @4881 */
+SECTION_DATA static void* lit_4881[3] = {
+ (void*)NULL,
+ (void*)0xFFFFFFFF,
+ (void*)wait__11daNpc_Gnd_cFPv,
+};
-/* 809BE484-809BE48C 002F64 0008+00 1/0 0/0 0/0 .text @20@__dt__12dBgS_ObjAcchFv */
-static void func_809BE484() {
- // NONMATCHING
-}
+/* 809BE684-809BE6A4 -00001 0020+00 1/0 0/0 0/0 .data daNpc_Gnd_MethodTable */
+static actor_method_class daNpc_Gnd_MethodTable = {
+ (process_method_func)daNpc_Gnd_Create,
+ (process_method_func)daNpc_Gnd_Delete,
+ (process_method_func)daNpc_Gnd_Execute,
+ (process_method_func)daNpc_Gnd_IsDelete,
+ (process_method_func)daNpc_Gnd_Draw,
+};
-/* 809BE588-809BE588 0000E8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
+/* 809BE6A4-809BE6D4 -00001 0030+00 0/0 0/0 1/0 .data g_profile_NPC_GND */
+extern actor_process_profile_definition g_profile_NPC_GND = {
+ fpcLy_CURRENT_e, // mLayerID
+ 7, // mListID
+ fpcPi_CURRENT_e, // mListPrio
+ PROC_NPC_GND, // mProcName
+ &g_fpcLf_Method.base, // sub_method
+ sizeof(daNpc_Gnd_c), // mSize
+ 0, // mSizeOther
+ 0, // mParameters
+ &g_fopAc_Method.base, // sub_method
+ 305, // mPriority
+ &daNpc_Gnd_MethodTable, // sub_method
+ 0x00044107, // mStatus
+ fopAc_NPC_e, // mActorType
+ fopAc_CULLBOX_CUSTOM_e, // cullType
+};
diff --git a/src/d/actor/d_a_npc_moi.cpp b/src/d/actor/d_a_npc_moi.cpp
index 27605f53fb..900bd1a11e 100644
--- a/src/d/actor/d_a_npc_moi.cpp
+++ b/src/d/actor/d_a_npc_moi.cpp
@@ -454,8 +454,8 @@ BOOL daNpc_Moi_c::isDelete() {
/* 80A74D8C-80A7513C 000F2C 03B0+00 1/1 0/0 0/0 .text reset__11daNpc_Moi_cFv */
void daNpc_Moi_c::reset() {
int iVar8;
- csXyz cStack_80;
cXyz cStack_30;
+ csXyz cStack_80;
int iVar1 = (u8*)&field_0x1670 - (u8*)&field_0x1610;
if (mpMatAnm[0] != NULL) {
@@ -489,13 +489,13 @@ void daNpc_Moi_c::reset() {
break;
case TYPE_2:
if (daNpcT_chkEvtBit(0xcd)) {
+ JUT_ASSERT(1932, 0 != mPath.getPathInfo());
iVar8 = g_Counter.mCounter0 % mPath.getNumPnts();
cStack_30 = mPath.getPntPos(iVar8);
setPos(cStack_30);
mPath.setIdx(iVar8);
- mPath.setNextIdx(mPath.getNumPnts());
- u16 path_idx = mPath.getIdx();
- cStack_30 = mPath.getPntPos(path_idx);
+ mPath.setNextIdx();
+ cStack_30 = mPath.getPntPos(mPath.getIdx());
cStack_80.y = cLib_targetAngleY(&current.pos, &cStack_30);
}
field_0x1666 = 1;
@@ -1576,8 +1576,7 @@ int daNpc_Moi_c::cutConversationWithUri(int param_1) {
setPos(cStack_34);
mPath.setIdx(0);
mPath.setNextIdx(mPath.getNumPnts());
- u16 path_idx = mPath.getIdx();
- cStack_34 = mPath.getPntPos(path_idx);
+ cStack_34 = mPath.getPntPos(mPath.getIdx());
setAngle(cLib_targetAngleY(&current.pos, &cStack_34));
break;
case 2:
@@ -1638,8 +1637,7 @@ int daNpc_Moi_c::cutFindWolf(int param_1) {
mPath.offReverse();
mPath.setIdx(0);
mPath.setNextIdx(mPath.getNumPnts());
- u16 path_idx = mPath.getIdx();
- cStack_30 = mPath.getPntPos(path_idx);
+ cStack_30 = mPath.getPntPos(mPath.getIdx());
field_0x1664 = fopAcM_searchPlayerAngleY(this);
setAngle(field_0x1664);
mPlayerActorMngr.entry(daPy_getPlayerActorClass());
diff --git a/src/d/actor/d_a_npc_toby.cpp b/src/d/actor/d_a_npc_toby.cpp
index 67c121e5b5..ec43a90683 100644
--- a/src/d/actor/d_a_npc_toby.cpp
+++ b/src/d/actor/d_a_npc_toby.cpp
@@ -6,342 +6,125 @@
#include "d/dolzel_rel.h" // IWYU pragma: keep
#include "d/actor/d_a_npc_toby.h"
-#include "dol2asm.h"
-
-//
-// Forward References:
-//
-
-extern "C" void __dt__12daNpc_Toby_cFv();
-extern "C" void create__12daNpc_Toby_cFv();
-extern "C" void CreateHeap__12daNpc_Toby_cFv();
-extern "C" void __dt__15J3DTevKColorAnmFv();
-extern "C" void __ct__15J3DTevKColorAnmFv();
-extern "C" void __dt__14J3DTevColorAnmFv();
-extern "C" void __ct__14J3DTevColorAnmFv();
-extern "C" void __dt__11J3DTexNoAnmFv();
-extern "C" void __ct__11J3DTexNoAnmFv();
-extern "C" void __dt__12J3DTexMtxAnmFv();
-extern "C" void __ct__12J3DTexMtxAnmFv();
-extern "C" void __dt__14J3DMatColorAnmFv();
-extern "C" void __ct__14J3DMatColorAnmFv();
-extern "C" void Delete__12daNpc_Toby_cFv();
-extern "C" void Execute__12daNpc_Toby_cFv();
-extern "C" void Draw__12daNpc_Toby_cFv();
-extern "C" void createHeapCallBack__12daNpc_Toby_cFP10fopAc_ac_c();
-extern "C" void ctrlJointCallBack__12daNpc_Toby_cFP8J3DJointi();
-extern "C" void srchToby__12daNpc_Toby_cFPvPv();
-extern "C" void getOtherTobyP__12daNpc_Toby_cFi();
-extern "C" void getType__12daNpc_Toby_cFv();
-extern "C" void isDelete__12daNpc_Toby_cFv();
-extern "C" void reset__12daNpc_Toby_cFv();
-extern "C" void afterJntAnm__12daNpc_Toby_cFi();
-extern "C" void setParam__12daNpc_Toby_cFv();
-extern "C" void checkChangeEvt__12daNpc_Toby_cFv();
-extern "C" void setAfterTalkMotion__12daNpc_Toby_cFv();
-extern "C" void srchActors__12daNpc_Toby_cFv();
-extern "C" void evtTalk__12daNpc_Toby_cFv();
-extern "C" void evtCutProc__12daNpc_Toby_cFv();
-extern "C" void action__12daNpc_Toby_cFv();
-extern "C" void beforeMove__12daNpc_Toby_cFv();
-extern "C" void setAttnPos__12daNpc_Toby_cFv();
-extern "C" void setCollision__12daNpc_Toby_cFv();
-extern "C" bool drawDbgInfo__12daNpc_Toby_cFv();
-extern "C" void drawOtherMdl__12daNpc_Toby_cFv();
-extern "C" void afterSetFaceMotionAnm__12daNpc_Toby_cFiifi();
-extern "C" void afterSetMotionAnm__12daNpc_Toby_cFiifi();
-extern "C" void selectAction__12daNpc_Toby_cFv();
-extern "C" void chkAction__12daNpc_Toby_cFM12daNpc_Toby_cFPCvPvPv_i();
-extern "C" void setAction__12daNpc_Toby_cFM12daNpc_Toby_cFPCvPvPv_i();
-extern "C" void cutTobyHouseFire__12daNpc_Toby_cFi();
-extern "C" void cutTalkToOneself__12daNpc_Toby_cFi();
-extern "C" void cutRepairSCannon__12daNpc_Toby_cFi();
-extern "C" void cutSCannon__12daNpc_Toby_cFi();
-extern "C" void cutConversationAboutSCannon__12daNpc_Toby_cFi();
-extern "C" void cutConversationAboutZra__12daNpc_Toby_cFi();
-extern "C" void chkAttnZra__12daNpc_Toby_cFv();
-extern "C" void wait__12daNpc_Toby_cFPv();
-extern "C" void walk__12daNpc_Toby_cFPv();
-extern "C" void play__12daNpc_Toby_cFPv();
-extern "C" void talk__12daNpc_Toby_cFPv();
-extern "C" static void daNpc_Toby_Create__FPv();
-extern "C" static void daNpc_Toby_Delete__FPv();
-extern "C" static void daNpc_Toby_Execute__FPv();
-extern "C" static void daNpc_Toby_Draw__FPv();
-extern "C" static bool daNpc_Toby_IsDelete__FPv();
-extern "C" void calc__11J3DTexNoAnmCFPUs();
-extern "C" void __dt__10cCcD_GSttsFv();
-extern "C" void __dt__8daNpcT_cFv();
-extern "C" void __dt__4cXyzFv();
-extern "C" void __dt__5csXyzFv();
-extern "C" void __dt__18daNpcT_ActorMngr_cFv();
-extern "C" void __dt__13daNpcT_Path_cFv();
-extern "C" void __ct__18daNpcT_ActorMngr_cFv();
-extern "C" void __dt__8cM3dGCylFv();
-extern "C" void __dt__8cM3dGAabFv();
-extern "C" void
-__ct__8daNpcT_cFPC26daNpcT_faceMotionAnmData_cPC22daNpcT_motionAnmData_cPCQ222daNpcT_MotionSeqMngr_c18sequenceStepData_ciPCQ222daNpcT_MotionSeqMngr_c18sequenceStepData_ciPC16daNpcT_evtData_cPPc();
-extern "C" void __ct__5csXyzFv();
-extern "C" void __dt__15daNpcT_JntAnm_cFv();
-extern "C" void __ct__4cXyzFv();
-extern "C" void __dt__22daNpcT_MotionSeqMngr_cFv();
-extern "C" void __dt__12dBgS_AcchCirFv();
-extern "C" void __dt__10dCcD_GSttsFv();
-extern "C" void __dt__12dBgS_ObjAcchFv();
-extern "C" void __dt__12J3DFrameCtrlFv();
-extern "C" void setEyeAngleY__15daNpcT_JntAnm_cF4cXyzsifs();
-extern "C" void setEyeAngleX__15daNpcT_JntAnm_cF4cXyzfs();
-extern "C" void ctrlSubFaceMotion__8daNpcT_cFi();
-extern "C" bool getEyeballLMaterialNo__8daNpcT_cFv();
-extern "C" bool getEyeballRMaterialNo__8daNpcT_cFv();
-extern "C" bool evtEndProc__8daNpcT_cFv();
-extern "C" void afterMoved__8daNpcT_cFv();
-extern "C" void decTmr__8daNpcT_cFv();
-extern "C" void drawGhost__8daNpcT_cFv();
-extern "C" void getFaceMotionAnm__8daNpcT_cF26daNpcT_faceMotionAnmData_c();
-extern "C" void getMotionAnm__8daNpcT_cF22daNpcT_motionAnmData_c();
-extern "C" void changeAnm__8daNpcT_cFPiPi();
-extern "C" void changeBck__8daNpcT_cFPiPi();
-extern "C" void changeBtp__8daNpcT_cFPiPi();
-extern "C" void changeBtk__8daNpcT_cFPiPi();
-extern "C" void func_80B24728(void* _this, int*);
-extern "C" void __sinit_d_a_npc_toby_cpp();
-extern "C" void
-__ct__12daNpc_Toby_cFPC26daNpcT_faceMotionAnmData_cPC22daNpcT_motionAnmData_cPCQ222daNpcT_MotionSeqMngr_c18sequenceStepData_ciPCQ222daNpcT_MotionSeqMngr_c18sequenceStepData_ciPC16daNpcT_evtData_cPPc();
-extern "C" u16 getEyeballMaterialNo__12daNpc_Toby_cFv();
-extern "C" s32 getHeadJointNo__12daNpc_Toby_cFv();
-extern "C" s32 getNeckJointNo__12daNpc_Toby_cFv();
-extern "C" bool getBackboneJointNo__12daNpc_Toby_cFv();
-extern "C" void checkChangeJoint__12daNpc_Toby_cFi();
-extern "C" void checkRemoveJoint__12daNpc_Toby_cFi();
-extern "C" s32 getFootLJointNo__12daNpc_Toby_cFv();
-extern "C" s32 getFootRJointNo__12daNpc_Toby_cFv();
-extern "C" bool chkXYItems__12daNpc_Toby_cFv();
-extern "C" void __dt__18daNpc_Toby_Param_cFv();
-extern "C" static void func_80B249C0();
-extern "C" static void func_80B249C8();
-extern "C" u8 const m__18daNpc_Toby_Param_c[156];
-extern "C" extern char const* const d_a_npc_toby__stringBase0;
-extern "C" void* mCutNameList__12daNpc_Toby_c[7];
-extern "C" u8 mCutList__12daNpc_Toby_c[84];
-
-//
-// External References:
-//
-
-extern "C" void mDoMtx_YrotS__FPA4_fs();
-extern "C" void mDoMtx_YrotM__FPA4_fs();
-extern "C" void mDoMtx_ZrotM__FPA4_fs();
-extern "C" void mDoExt_modelUpdateDL__FP8J3DModel();
-extern "C" void
-__ct__16mDoExt_McaMorfSOFP12J3DModelDataP25mDoExt_McaMorfCallBack1_cP25mDoExt_McaMorfCallBack2_cP15J3DAnmTransformifiiP10Z2CreatureUlUl();
-extern "C" void stopZelAnime__16mDoExt_McaMorfSOFv();
-extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl();
-extern "C" void __ct__10fopAc_ac_cFv();
-extern "C" void __dt__10fopAc_ac_cFv();
-extern "C" void fopAcIt_Judge__FPFPvPv_PvPv();
-extern "C" void fopAcM_delete__FP10fopAc_ac_c();
-extern "C" void fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl();
-extern "C" void fopAcM_setCullSizeBox__FP10fopAc_ac_cffffff();
-extern "C" void fopAcM_searchActorAngleY__FPC10fopAc_ac_cPC10fopAc_ac_c();
-extern "C" void fopAcM_searchActorDistance__FPC10fopAc_ac_cPC10fopAc_ac_c();
-extern "C" void fpcEx_IsExist__FUi();
-extern "C" void dStage_changeScene__FifUlScsi();
-extern "C" void getLayerNo__14dComIfG_play_cFi();
-extern "C" void dComIfGs_sense_type_change_Set__FSc();
-extern "C" void dComIfGs_wolfeye_effect_check__Fv();
-extern "C" void isSwitch__12dSv_memBit_cCFi();
-extern "C" void offSwitch__10dSv_info_cFii();
-extern "C" void isSwitch__10dSv_info_cCFii();
-extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci();
-extern "C" void reset__14dEvt_control_cFv();
-extern "C" void setPt2__14dEvt_control_cFPv();
-extern "C" void getMyStaffId__16dEvent_manager_cFPCcP10fopAc_ac_ci();
-extern "C" void getIsAddvance__16dEvent_manager_cFi();
-extern "C" void getMyActIdx__16dEvent_manager_cFiPCPCciii();
-extern "C" void getMySubstanceP__16dEvent_manager_cFiPCci();
-extern "C" void cutEnd__16dEvent_manager_cFi();
-extern "C" void setGoal__16dEvent_manager_cFP4cXyz();
-extern "C" void ChkPresentEnd__16dEvent_manager_cFv();
-extern "C" void init__7dPaPo_cFP9dBgS_Acchff();
-extern "C" void addReal__21dDlst_shadowControl_cFUlP8J3DModel();
-extern "C" void GroundCross__4cBgSFP11cBgS_GndChk();
-extern "C" void __ct__12dBgS_AcchCirFv();
-extern "C" void SetWallR__12dBgS_AcchCirFf();
-extern "C" void __dt__9dBgS_AcchFv();
-extern "C" void __ct__9dBgS_AcchFv();
-extern "C" void Set__9dBgS_AcchFP4cXyzP4cXyzP10fopAc_ac_ciP12dBgS_AcchCirP4cXyzP5csXyzP5csXyz();
-extern "C" void CrrPos__9dBgS_AcchFR4dBgS();
-extern "C" void __ct__11dBgS_GndChkFv();
-extern "C" void __dt__11dBgS_GndChkFv();
-extern "C" void __ct__11dBgS_LinChkFv();
-extern "C" void __dt__11dBgS_LinChkFv();
-extern "C" void SetObj__16dBgS_PolyPassChkFv();
-extern "C" void __ct__10dCcD_GSttsFv();
-extern "C" void Init__9dCcD_SttsFiiP10fopAc_ac_c();
-extern "C" void __ct__12dCcD_GObjInfFv();
-extern "C" void __dt__12dCcD_GObjInfFv();
-extern "C" void GetTgHitObj__12dCcD_GObjInfFv();
-extern "C" void Set__8dCcD_CylFRC11dCcD_SrcCyl();
-extern "C" void initialize__18daNpcT_ActorMngr_cFv();
-extern "C" void entry__18daNpcT_ActorMngr_cFP10fopAc_ac_c();
-extern "C" void remove__18daNpcT_ActorMngr_cFv();
-extern "C" void getActorP__18daNpcT_ActorMngr_cFv();
-extern "C" void initialize__15daNpcT_MatAnm_cFv();
-extern "C" void initialize__22daNpcT_MotionSeqMngr_cFv();
-extern "C" void checkEndSequence__22daNpcT_MotionSeqMngr_cFv();
-extern "C" void initialize__13daNpcT_Path_cFv();
-extern "C" void setPathInfo__13daNpcT_Path_cFUcScUc();
-extern "C" void setNextIdx__13daNpcT_Path_cFi();
-extern "C" void getDstPosH__13daNpcT_Path_cF4cXyzP4cXyzii();
-extern "C" void initialize__15daNpcT_JntAnm_cFv();
-extern "C" void setParam__15daNpcT_JntAnm_cFP10fopAc_ac_cP8J3DModelP4cXyziiiffffffffffP4cXyz();
-extern "C" void calcJntRad__15daNpcT_JntAnm_cFfff();
-extern "C" void setParam__19daNpcT_DmgStagger_cFP10fopAc_ac_cP10fopAc_ac_cs();
-extern "C" void calc__19daNpcT_DmgStagger_cFi();
-extern "C" void tgHitCallBack__8daNpcT_cFP10fopAc_ac_cP12dCcD_GObjInfP10fopAc_ac_cP12dCcD_GObjInf();
-extern "C" void loadRes__8daNpcT_cFPCScPPCc();
-extern "C" void deleteRes__8daNpcT_cFPCScPPCc();
-extern "C" void execute__8daNpcT_cFv();
-extern "C" void draw__8daNpcT_cFiifP11_GXColorS10fiii();
-extern "C" void setEnvTevColor__8daNpcT_cFv();
-extern "C" void setRoomNo__8daNpcT_cFv();
-extern "C" void ctrlBtk__8daNpcT_cFv();
-extern "C" void setMtx__8daNpcT_cFv();
-extern "C" void ctrlJoint__8daNpcT_cFP8J3DJointP8J3DModel();
-extern "C" void evtProc__8daNpcT_cFv();
-extern "C" void setFootPos__8daNpcT_cFv();
-extern "C" void setFootPrtcl__8daNpcT_cFP4cXyzff();
-extern "C" bool checkCullDraw__8daNpcT_cFv();
-extern "C" void twilight__8daNpcT_cFv();
-extern "C" void evtOrder__8daNpcT_cFv();
-extern "C" void evtChange__8daNpcT_cFv();
-extern "C" void clrParam__8daNpcT_cFv();
-extern "C" void setFaceMotionAnm__8daNpcT_cFib();
-extern "C" void setMotionAnm__8daNpcT_cFifi();
-extern "C" void setPos__8daNpcT_cF4cXyz();
-extern "C" void setAngle__8daNpcT_cF5csXyz();
-extern "C" void setAngle__8daNpcT_cFs();
-extern "C" void hitChk__8daNpcT_cFP12dCcD_GObjInfUl();
-extern "C" void setDamage__8daNpcT_cFiii();
-extern "C" void chkActorInSight__8daNpcT_cFP10fopAc_ac_cfs();
-extern "C" void chkPointInArea__8daNpcT_cF4cXyz4cXyzfffs();
-extern "C" void srchPlayerActor__8daNpcT_cFv();
-extern "C" void getAttnPos__8daNpcT_cFP10fopAc_ac_c();
-extern "C" void step__8daNpcT_cFsiiii();
-extern "C" void calcSpeedAndAngle__8daNpcT_cF4cXyziss();
-extern "C" void initTalk__8daNpcT_cFiPP10fopAc_ac_c();
-extern "C" void talkProc__8daNpcT_cFPiiPP10fopAc_ac_ci();
-extern "C" void getNearestActorP__8daNpcT_cFs();
-extern "C" void daNpcT_getPlayerInfoFromPlayerList__FiiP4cXyzP5csXyz();
-extern "C" void daNpcT_getDistTableIdx__Fii();
-extern "C" void daNpcT_onEvtBit__FUl();
-extern "C" void daNpcT_offEvtBit__FUl();
-extern "C" void daNpcT_chkEvtBit__FUl();
-extern "C" void daNpcT_offTmpBit__FUl();
-extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c();
-extern "C" void dKy_darkworld_check__Fv();
-extern "C" void getStatus__12dMsgObject_cFv();
-extern "C" void isMsgSendControl__12dMsgObject_cFv();
-extern "C" void onMsgSend__12dMsgObject_cFv();
-extern "C" void __ct__10dMsgFlow_cFv();
-extern "C" void __dt__10dMsgFlow_cFv();
-extern "C" void getEventId__10dMsgFlow_cFPi();
-extern "C" void Set__4cCcSFP8cCcD_Obj();
-extern "C" void __pl__4cXyzCFRC3Vec();
-extern "C" void __mi__4cXyzCFRC3Vec();
-extern "C" void cM_atan2s__Fff();
-extern "C" void cM_rndF__Ff();
-extern "C" void __ct__11cBgS_GndChkFv();
-extern "C" void __dt__11cBgS_GndChkFv();
-extern "C" void SetPos__11cBgS_GndChkFPC4cXyz();
-extern "C" void __dt__13cBgS_PolyInfoFv();
-extern "C" void __dt__8cM3dGCirFv();
-extern "C" void SetC__8cM3dGCylFRC4cXyz();
-extern "C" void SetH__8cM3dGCylFf();
-extern "C" void SetR__8cM3dGCylFf();
-extern "C" void cLib_addCalcAngleS2__FPssss();
-extern "C" void cLib_chaseS__FPsss();
-extern "C" void cLib_chaseF__FPfff();
-extern "C" void cLib_targetAngleY__FPC3VecPC3Vec();
-extern "C" void seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc();
-extern "C" void bgmStreamPrepare__8Z2SeqMgrFUl();
-extern "C" void bgmStreamPlay__8Z2SeqMgrFv();
-extern "C" void bgmStreamStop__8Z2SeqMgrFUl();
-extern "C" void __ct__10Z2CreatureFv();
-extern "C" void __dt__10Z2CreatureFv();
-extern "C" void init__10Z2CreatureFP3VecP3VecUcUc();
-extern "C" void* __nw__FUl();
-extern "C" void __dl__FPv();
-extern "C" void init__12J3DFrameCtrlFs();
-extern "C" void getTexNo__16J3DAnmTexPatternCFUsPUs();
-extern "C" void initialize__14J3DMaterialAnmFv();
-extern "C" void __destroy_arr();
-extern "C" void __construct_array();
-extern "C" void __ptmf_test();
-extern "C" void __ptmf_cmpr();
-extern "C" void __ptmf_scall();
-extern "C" void __cvt_fp2unsigned();
-extern "C" void _savegpr_22();
-extern "C" void _savegpr_25();
-extern "C" void _savegpr_26();
-extern "C" void _savegpr_27();
-extern "C" void _savegpr_28();
-extern "C" void _savegpr_29();
-extern "C" void _restgpr_22();
-extern "C" void _restgpr_25();
-extern "C" void _restgpr_26();
-extern "C" void _restgpr_27();
-extern "C" void _restgpr_28();
-extern "C" void _restgpr_29();
-extern "C" extern u8 const __ptmf_null[12 + 4 /* padding */];
-extern "C" extern void* __vt__8dCcD_Cyl[36];
-extern "C" extern void* __vt__9dCcD_Stts[11];
-extern "C" u8 mCcDCyl__8daNpcT_c[68];
-extern "C" extern void* __vt__8daNpcT_c[49];
-extern "C" extern void* __vt__15daNpcT_MatAnm_c[4 + 1 /* padding */];
-extern "C" extern void* __vt__12cCcD_CylAttr[25];
-extern "C" extern void* __vt__14cCcD_ShapeAttr[22];
-extern "C" extern void* __vt__9cCcD_Stts[8];
-extern "C" extern void* __vt__14J3DMaterialAnm[4];
-extern "C" u8 now__14mDoMtx_stack_c[48];
-extern "C" u8 mFindActorPtrs__8daNpcT_c[200];
-extern "C" u8 mFindCount__8daNpcT_c[4];
-extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
-extern "C" void __register_global_object();
-extern "C" void setAnm__16daObj_AutoMata_cFib();
-extern "C" void setCannonRepair__11daSCannon_cFv();
-
-//
-// Declarations:
-//
+#include "Z2AudioLib/Z2Instances.h"
+#if DEBUG
+#include "JSystem/JHostIO/JORFile.h"
+#endif
+#include "d/actor/d_a_obj_automata.h"
+#include "d/d_msg_object.h"
+#include "d/actor/d_a_obj_scannon.h"
/* ############################################################################################## */
-/* 80B24B8C-80B24B8C 0001A8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
-#pragma push
-#pragma force_active on
-SECTION_DEAD static char const* const stringBase_80B24B8C = "";
-SECTION_DEAD static char const* const stringBase_80B24B8D = "NO_RESPONSE";
-SECTION_DEAD static char const* const stringBase_80B24B99 = "TALKTO_ONESELF";
-SECTION_DEAD static char const* const stringBase_80B24BA8 = "REPAIR_SCANNON";
-SECTION_DEAD static char const* const stringBase_80B24BB7 = "SCANNON";
-SECTION_DEAD static char const* const stringBase_80B24BBF = "CONVERSATION_ABOUT_SCANNON";
-SECTION_DEAD static char const* const stringBase_80B24BDA = "CONVERSATION_ABOUT_ZRA";
-SECTION_DEAD static char const* const stringBase_80B24BF1 = "Toby";
-SECTION_DEAD static char const* const stringBase_80B24BF6 = "Toby_TW";
-SECTION_DEAD static char const* const stringBase_80B24BFE = "Toby0";
-SECTION_DEAD static char const* const stringBase_80B24C04 = "Toby1";
-SECTION_DEAD static char const* const stringBase_80B24C0A = "Toby2";
-SECTION_DEAD static char const* const stringBase_80B24C10 = "Toby3";
-SECTION_DEAD static char const* const stringBase_80B24C16 = "Toby4";
-SECTION_DEAD static char const* const stringBase_80B24C1C = "Toby5";
-SECTION_DEAD static char const* const stringBase_80B24C22 = "TOBY_HOUSE_FIRE";
-#pragma pop
+/* 80B249E4-80B24A80 000000 009C+00 15/15 0/0 0/0 .rodata m__18daNpc_Toby_Param_c */
+const daNpc_Toby_HIOParam daNpc_Toby_Param_c::m = {
+ 160.0f,
+ -3.0f,
+ 1.0f,
+ 400.0f,
+ 255.0f,
+ 150.0f,
+ 35.0f,
+ 40.0f,
+ 0.0f,
+ 0.0f,
+ 10.0f,
+ -10.0f,
+ 30.0f,
+ -10.0f,
+ 45.0f,
+ -45.0f,
+ 0.6f,
+ 12.0f,
+ 3,
+ 6,
+ 5,
+ 6,
+ 110.0f,
+ 0.0f,
+ 0.0f,
+ 0.0f,
+ 60,
+ 8,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 4.0f,
+ 0.0f,
+ 0.0f,
+ 0.0f,
+ 0.0f,
+ 0.0f,
+ 0.0f,
+ 0.0f,
+ // actor-specific:
+ 4.0f,
+ 2.0f,
+ 2.0f,
+ 4.0f,
+};
+
+#if DEBUG
+daNpc_Toby_HIO_c::daNpc_Toby_HIO_c() {
+ m = daNpc_Toby_Param_c::m;
+}
+
+void daNpc_Toby_HIO_c::listenPropertyEvent(const JORPropertyEvent* event) {
+ char msg_buffer[1988];
+
+ JORReflexible::listenPropertyEvent(event);
+
+ JORFile aJStack_910;
+ int len;
+ switch (reinterpret_cast<u32>(event->id)) {
+ case 0x40000002:
+ if (aJStack_910.open(6, "すべてのファイル(*.*)\0*.*\0", NULL, NULL, NULL) != 0) {
+ memset(msg_buffer, 0, 2000);
+ len = 0;
+ daNpcT_cmnListenPropertyEvent(msg_buffer, &len, &m.common);
+ // performance speed:
+ sprintf(msg_buffer + len, "%d, \t// 演奏速度\n", m.performance_speed);
+ len = strlen(msg_buffer);
+ // performance speed up:
+ sprintf(msg_buffer + len, "%d, \t// 演奏加速\n", m.speedup_performance);
+ len = strlen(msg_buffer);
+ // initial speed of performance:
+ sprintf(msg_buffer + len, "%d, \t// 演奏初速\n", m.init_play_speed);
+ len = strlen(msg_buffer);
+ // switching speed:
+ sprintf(msg_buffer + len, "%d, \t// 切り替え速度\n", m.switching_speed);
+ len = strlen(msg_buffer);
+ aJStack_910.writeData(msg_buffer, len);
+ aJStack_910.close();
+ OS_REPORT("write append success!::%6d\n", len);
+ } else {
+ OS_REPORT("write append failure!\n");
+ }
+ break;
+ }
+}
+
+void daNpc_Toby_HIO_c::genMessage(JORMContext* ctext) {
+ daNpcT_cmnGenMessage(ctext, &m.common);
+ // Performance speed:
+ ctext->genSlider("演奏速度 ", &m.performance_speed, 1.0f, 16.0f, 0, NULL, 0xFFFF, 0xFFFF, 0x200, 24);
+ // playing speed up:
+ ctext->genSlider("演奏加速 ", &m.speedup_performance, 0.0f, 16.0f, 0, NULL, 0xFFFF, 0xFFFF, 0x200, 24);
+ // playing initial velocity:
+ ctext->genSlider("演奏初速 ", &m.init_play_speed, 1.0f, 16.0f, 0, NULL, 0xFFFF, 0xFFFF, 0x200, 24);
+ // switching speed:
+ ctext->genSlider("切り替え速度 ", &m.switching_speed, 0.0f, 16.0f, 0, NULL, 0xFFFF, 0xFFFF, 0x200, 24);
+ // export file:
+ ctext->genButton("ファイル書き出し", 0x40000002, 0, NULL, 0xFFFF, 0xFFFF, 0x200, 0x18);
+}
+#endif
/* 80B24C68-80B24C80 000020 0018+00 1/1 0/0 0/0 .data l_bmdData */
-SECTION_DATA static u8 l_bmdData[24] = {
- 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03,
- 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x06,
+static int l_bmdData[3][2] = {
+ {3, 1},
+ {3, 2},
+ {9, 6},
};
/* 80B24C80-80B24CB8 -00001 0038+00 0/1 0/0 0/0 .data l_evtList */
@@ -369,196 +152,111 @@ static char* l_resNameList[9] = {
};
/* 80B24CDC-80B24CE4 000094 0006+02 1/0 0/0 0/0 .data l_loadResPtrn0 */
-SECTION_DATA static u8 l_loadResPtrn0[6 + 2 /* padding */] = {
- 0x01,
- 0x03,
- 0x04,
- 0x07,
- 0x08,
- 0xFF,
- /* padding */
- 0x00,
- 0x00,
-};
+static s8 l_loadResPtrn0[6] = {1, 3, 4, 7, 8, -1};
/* 80B24CE4-80B24CEC 00009C 0006+02 1/0 0/0 0/0 .data l_loadResPtrn1 */
-SECTION_DATA static u8 l_loadResPtrn1[6 + 2 /* padding */] = {
- 0x02,
- 0x03,
- 0x05,
- 0x07,
- 0x08,
- 0xFF,
- /* padding */
- 0x00,
- 0x00,
-};
+static s8 l_loadResPtrn1[6] = {2, 3, 5, 7, 8, -1};
/* 80B24CEC-80B24CF4 0000A4 0005+03 1/0 0/0 0/0 .data l_loadResPtrn2 */
-SECTION_DATA static u8 l_loadResPtrn2[5 + 3 /* padding */] = {
- 0x01,
- 0x03,
- 0x06,
- 0x07,
- 0xFF,
- /* padding */
- 0x00,
- 0x00,
- 0x00,
-};
+static s8 l_loadResPtrn2[5] = {1, 3, 6, 7, -1};
/* 80B24CF4-80B24CFC 0000AC 0008+00 1/0 0/0 0/0 .data l_loadResPtrn3 */
-SECTION_DATA static u8 l_loadResPtrn3[8] = {
- 0x01, 0x02, 0x03, 0x04, 0x05, 0x07, 0x08, 0xFF,
-};
+static s8 l_loadResPtrn3[8] = {1, 2, 3, 4, 5, 7, 8, -1};
/* 80B24CFC-80B24D18 -00001 001C+00 1/2 0/0 0/0 .data l_loadResPtrnList */
-SECTION_DATA static void* l_loadResPtrnList[7] = {
- (void*)&l_loadResPtrn0, (void*)&l_loadResPtrn1, (void*)&l_loadResPtrn1, (void*)&l_loadResPtrn2,
- (void*)&l_loadResPtrn2, (void*)&l_loadResPtrn0, (void*)&l_loadResPtrn3,
+static s8* l_loadResPtrnList[7] = {
+ l_loadResPtrn0, l_loadResPtrn1, l_loadResPtrn1, l_loadResPtrn2,
+ l_loadResPtrn2, l_loadResPtrn0, l_loadResPtrn3,
};
/* 80B24D18-80B24ED8 0000D0 01C0+00 0/1 0/0 0/0 .data l_faceMotionAnmData */
-#pragma push
-#pragma force_active on
-SECTION_DATA static u8 l_faceMotionAnmData[448] = {
- 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0D,
- 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x05,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04,
- 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1E,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x02,
- 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04,
- 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x15,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05,
- 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x0D,
- 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x06,
- 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x02,
- 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02,
- 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x05,
- 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00,
+static daNpcT_faceMotionAnmData_c l_faceMotionAnmData[16] = {
+ {-1, 0, 0, 13, 2, 3, 1},
+ {5, 0, 3, 14, 0, 3, 0},
+ {12, 0, 4, 29, 0, 4, 0},
+ {14, 0, 4, 31, 0, 4, 0},
+ {13, 0, 4, 30, 0, 4, 0},
+ {6, 0, 4, 26, 0, 4, 0},
+ {7, 2, 4, 27, 2, 4, 0},
+ {8, 2, 4, 28, 2, 4, 0},
+ {7, 0, 5, 21, 0, 5, 0},
+ {5, 0, 7, 19, 0, 7, 0},
+ {5, 0, 8, 18, 0, 8, 0},
+ {6, 0, 5, 20, 0, 5, 0},
+ {9, 2, 5, 13, 2, 3, 1},
+ {6, 2, 7, 13, 2, 3, 1},
+ {6, 2, 8, 19, 2, 8, 0},
+ {8, 2, 5, 22, 2, 5, 0},
};
-#pragma pop
/* 80B24ED8-80B25194 000290 02BC+00 0/1 0/0 0/0 .data l_motionAnmData */
-#pragma push
-#pragma force_active on
-SECTION_DATA static u8 l_motionAnmData[700] = {
- 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0A,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F,
- 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x03, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x02,
- 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03,
- 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04,
- 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x01, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0A,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x03, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04,
- 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x01, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0A,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0B,
- 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x03, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x05,
- 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x10,
- 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09,
- 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x02,
- 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x07,
- 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x10,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09,
- 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x02,
- 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08,
- 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0A,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04,
- 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x02,
- 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06,
- 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0A,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00,
+static daNpcT_motionAnmData_c l_motionAnmData[25] = {
+ {7, 2, 3, 10, 0, 3, 1, 0},
+ {15, 2, 4, 10, 0, 3, 1, 0},
+ {20, 2, 4, 10, 0, 3, 1, 0},
+ {16, 0, 4, 10, 0, 3, 1, 0},
+ {17, 0, 4, 10, 0, 3, 1, 0},
+ {19, 0, 4, 10, 0, 3, 1, 0},
+ {18, 0, 4, 23, 0, 4, 0, 0},
+ {9, 0, 4, 10, 0, 3, 1, 0},
+ {10, 2, 4, 10, 0, 3, 1, 0},
+ {11, 2, 4, 10, 0, 3, 1, 0},
+ {10, 0, 5, 15, 0, 5, 0, 0},
+ {12, 2, 5, 17, 2, 5, 0, 0},
+ {10, 2, 7, 16, 2, 7, 0, 0},
+ {9, 2, 7, 15, 2, 7, 0, 0},
+ {7, 0, 7, 13, 0, 7, 0, 0},
+ {8, 2, 7, 14, 2, 7, 0, 0},
+ {11, 0, 5, 16, 0, 5, 0, 0},
+ {9, 2, 8, 15, 2, 8, 0, 0},
+ {7, 0, 8, 13, 0, 8, 0, 0},
+ {8, 2, 8, 14, 2, 8, 0, 0},
+ {6, 0, 3, 10, 0, 3, 1, 0},
+ {4, 2, 6, 10, 0, 3, 0, 0},
+ {5, 2, 6, 10, 0, 3, 0, 0},
+ {6, 2, 6, 10, 0, 3, 0, 0},
+ {10, 0, 8, 10, 0, 3, 0, 0},
};
-#pragma pop
/* 80B25194-80B252A4 00054C 0110+00 0/1 0/0 0/0 .data l_faceMotionSequenceData */
-#pragma push
-#pragma force_active on
-SECTION_DATA static u8 l_faceMotionSequenceData[272] = {
- 0x00, 0x01, 0xFF, 0x01, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00,
- 0x00, 0x08, 0xFF, 0x01, 0x00, 0x0F, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00,
- 0x00, 0x09, 0xFF, 0x01, 0x00, 0x0D, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00,
- 0x00, 0x0A, 0xFF, 0x01, 0x00, 0x0C, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00,
- 0x00, 0x0B, 0xFF, 0x01, 0x00, 0x0E, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00,
- 0x00, 0x02, 0xFF, 0x01, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00,
- 0x00, 0x05, 0xFF, 0x01, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00,
- 0x00, 0x06, 0x00, 0x01, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00,
- 0x00, 0x07, 0x00, 0x01, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00,
- 0x00, 0x04, 0x00, 0x01, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00,
- 0x00, 0x0D, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00,
- 0x00, 0x0C, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00,
- 0x00, 0x0E, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00,
- 0x00, 0x0F, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00,
- 0x00, 0x03, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00,
- 0x00, 0x0A, 0xFF, 0x01, 0x00, 0x0E, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00,
- 0x00, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00,
+static daNpcT_MotionSeqMngr_c::sequenceStepData_c l_faceMotionSequenceData[68] = {
+ {1, -1, 1}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, {8, -1, 1}, {15, 0, 0}, {-1, 0, 0}, {-1, 0, 0},
+ {9, -1, 1}, {13, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, {10, -1, 1}, {12, 0, 0}, {-1, 0, 0}, {-1, 0, 0},
+ {11, -1, 1}, {14, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, {2, -1, 1}, {3, 0, 0}, {-1, 0, 0}, {-1, 0, 0},
+ {5, -1, 1}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, {6, 0, 1}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0},
+ {7, 0, 1}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, {4, 0, 1}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0},
+ {13, -1, 0}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, {12, -1, 0}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0},
+ {14, -1, 0}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, {15, -1, 0}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0},
+ {3, -1, 0}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, {10, -1, 1}, {14, 0, 0}, {-1, 0, 0}, {-1, 0, 0},
+ {0, -1, 0}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0},
};
-#pragma pop
/* 80B252A4-80B25434 00065C 0190+00 0/1 0/0 0/0 .data l_motionSequenceData */
-#pragma push
-#pragma force_active on
-SECTION_DATA static u8 l_motionSequenceData[400] = {
- 0x00, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00,
- 0x00, 0x01, 0xFF, 0x01, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00,
- 0x00, 0x0A, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00,
- 0x00, 0x0B, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00,
- 0x00, 0x0C, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00,
- 0x00, 0x0D, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00,
- 0x00, 0x0E, 0xFF, 0x01, 0x00, 0x0F, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00,
- 0x00, 0x10, 0xFF, 0x01, 0x00, 0x11, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00,
- 0x00, 0x12, 0xFF, 0x01, 0x00, 0x13, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00,
- 0x00, 0x0F, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00,
- 0x00, 0x11, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00,
- 0x00, 0x13, 0xF7, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00,
- 0x00, 0x03, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00,
- 0x00, 0x04, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00,
- 0x00, 0x05, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00,
- 0x00, 0x02, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00,
- 0x00, 0x07, 0xFF, 0x01, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00,
- 0x00, 0x08, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00,
- 0x00, 0x09, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00,
- 0x00, 0x06, 0x00, 0x01, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00,
- 0x00, 0x14, 0x04, 0x01, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00,
- 0x00, 0x15, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00,
- 0x00, 0x16, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00,
- 0x00, 0x17, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00,
- 0x00, 0x18, 0x02, 0x01, 0x00, 0x11, 0xFF, 0x01, 0x00, 0x12, 0xFF, 0x01, 0x00, 0x13, 0x00, 0x00,
+static daNpcT_MotionSeqMngr_c::sequenceStepData_c l_motionSequenceData[100] = {
+ {0, -1, 0}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, {1, -1, 1}, {0, -1, 0}, {-1, 0, 0}, {-1, 0, 0},
+ {10, -1, 1}, {0, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, {11, -1, 0}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0},
+ {12, -1, 0}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, {13, -1, 0}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0},
+ {14, -1, 1}, {15, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, {16, -1, 1}, {17, 0, 0}, {-1, 0, 0}, {-1, 0, 0},
+ {18, -1, 1}, {19, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, {15, -1, 0}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0},
+ {17, -1, 0}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, {19, -9, 0}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0},
+ {3, -1, 1}, {0, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, {4, -1, 1}, {0, 0, 0}, {-1, 0, 0}, {-1, 0, 0},
+ {5, -1, 1}, {0, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, {2, -1, 0}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0},
+ {7, -1, 1}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, {8, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0},
+ {9, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, {6, 0, 1}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0},
+ {20, 4, 1}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, {21, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0},
+ {22, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, {23, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0},
+ {24, 2, 1}, {17, -1, 1}, {18, -1, 1}, {19, 0, 0},
+};
+
+enum NPC_TOBY_CUTS {
+ CUT_NONE = 0,
+ CUT_TOBY_HOUSE_FIRE = 1,
+ CUT_TALKTO_ONESELF = 2,
+ CUT_REPAIR_SCANNON = 3,
+ CUT_SCANNON = 4,
+ CUT_CONVERSATION_ABOUT_SCANNON = 5,
+ CUT_CONVERSATION_ABOUT_ZRA = 6,
};
-#pragma pop
/* 80B25434-80B25450 -00001 001C+00 1/1 0/0 0/0 .data mCutNameList__12daNpc_Toby_c */
char* daNpc_Toby_c::mCutNameList[7] = {
@@ -571,1611 +269,2041 @@ char* daNpc_Toby_c::mCutNameList[7] = {
"CONVERSATION_ABOUT_ZRA",
};
-/* 80B25450-80B2545C -00001 000C+00 0/1 0/0 0/0 .data @3927 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_3927[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)cutTobyHouseFire__12daNpc_Toby_cFi,
-};
-#pragma pop
-
-/* 80B2545C-80B25468 -00001 000C+00 0/1 0/0 0/0 .data @3928 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_3928[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)cutTalkToOneself__12daNpc_Toby_cFi,
-};
-#pragma pop
-
-/* 80B25468-80B25474 -00001 000C+00 0/1 0/0 0/0 .data @3929 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_3929[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)cutRepairSCannon__12daNpc_Toby_cFi,
-};
-#pragma pop
-
-/* 80B25474-80B25480 -00001 000C+00 0/1 0/0 0/0 .data @3930 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_3930[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)cutSCannon__12daNpc_Toby_cFi,
-};
-#pragma pop
-
-/* 80B25480-80B2548C -00001 000C+00 0/1 0/0 0/0 .data @3931 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_3931[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)cutConversationAboutSCannon__12daNpc_Toby_cFi,
-};
-#pragma pop
-
-/* 80B2548C-80B25498 -00001 000C+00 0/1 0/0 0/0 .data @3932 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_3932[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)cutConversationAboutZra__12daNpc_Toby_cFi,
-};
-#pragma pop
-
/* 80B25498-80B254EC 000850 0054+00 1/2 0/0 0/0 .data mCutList__12daNpc_Toby_c */
-SECTION_DATA u8 daNpc_Toby_c::mCutList[84] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-
-/* 80B254EC-80B254F8 -00001 000C+00 1/1 0/0 0/0 .data @4706 */
-SECTION_DATA static void* lit_4706[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)play__12daNpc_Toby_cFPv,
-};
-
-/* 80B254F8-80B25504 -00001 000C+00 1/1 0/0 0/0 .data @4740 */
-SECTION_DATA static void* lit_4740[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)talk__12daNpc_Toby_cFPv,
-};
-
-/* 80B25504-80B25510 -00001 000C+00 1/1 0/0 0/0 .data @4828 */
-SECTION_DATA static void* lit_4828[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)talk__12daNpc_Toby_cFPv,
-};
-
-/* 80B25510-80B2551C -00001 000C+00 1/1 0/0 0/0 .data @4833 */
-SECTION_DATA static void* lit_4833[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)talk__12daNpc_Toby_cFPv,
-};
-
-/* 80B2551C-80B25528 -00001 000C+00 1/1 0/0 0/0 .data @5075 */
-SECTION_DATA static void* lit_5075[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)play__12daNpc_Toby_cFPv,
-};
-
-/* 80B25528-80B25534 -00001 000C+00 0/1 0/0 0/0 .data @5198 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_5198[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)play__12daNpc_Toby_cFPv,
-};
-#pragma pop
-
-/* 80B25534-80B25540 -00001 000C+00 0/1 0/0 0/0 .data @5204 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_5204[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)walk__12daNpc_Toby_cFPv,
-};
-#pragma pop
-
-/* 80B25540-80B2554C -00001 000C+00 0/1 0/0 0/0 .data @5206 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_5206[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)wait__12daNpc_Toby_cFPv,
-};
-#pragma pop
-
-/* 80B2554C-80B25558 -00001 000C+00 0/1 0/0 0/0 .data @5208 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_5208[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)wait__12daNpc_Toby_cFPv,
-};
-#pragma pop
-
-/* 80B25558-80B25590 -00001 0038+00 1/1 0/0 0/0 .data @5478 */
-SECTION_DATA static void* lit_5478[14] = {
- (void*)(((char*)cutTalkToOneself__12daNpc_Toby_cFi) + 0x258),
- (void*)(((char*)cutTalkToOneself__12daNpc_Toby_cFi) + 0x294),
- (void*)(((char*)cutTalkToOneself__12daNpc_Toby_cFi) + 0x2AC),
- (void*)(((char*)cutTalkToOneself__12daNpc_Toby_cFi) + 0x2F4),
- (void*)(((char*)cutTalkToOneself__12daNpc_Toby_cFi) + 0x2F4),
- (void*)(((char*)cutTalkToOneself__12daNpc_Toby_cFi) + 0x384),
- (void*)(((char*)cutTalkToOneself__12daNpc_Toby_cFi) + 0x3EC),
- (void*)(((char*)cutTalkToOneself__12daNpc_Toby_cFi) + 0x3EC),
- (void*)(((char*)cutTalkToOneself__12daNpc_Toby_cFi) + 0x2F4),
- (void*)(((char*)cutTalkToOneself__12daNpc_Toby_cFi) + 0x49C),
- (void*)(((char*)cutTalkToOneself__12daNpc_Toby_cFi) + 0x4D0),
- (void*)(((char*)cutTalkToOneself__12daNpc_Toby_cFi) + 0x384),
- (void*)(((char*)cutTalkToOneself__12daNpc_Toby_cFi) + 0x384),
- (void*)(((char*)cutTalkToOneself__12daNpc_Toby_cFi) + 0x4F0),
-};
-
-/* 80B25590-80B255C8 -00001 0038+00 1/1 0/0 0/0 .data @5477 */
-SECTION_DATA static void* lit_5477[14] = {
- (void*)(((char*)cutTalkToOneself__12daNpc_Toby_cFi) + 0xEC),
- (void*)(((char*)cutTalkToOneself__12daNpc_Toby_cFi) + 0x110),
- (void*)(((char*)cutTalkToOneself__12daNpc_Toby_cFi) + 0x170),
- (void*)(((char*)cutTalkToOneself__12daNpc_Toby_cFi) + 0x18C),
- (void*)(((char*)cutTalkToOneself__12daNpc_Toby_cFi) + 0x228),
- (void*)(((char*)cutTalkToOneself__12daNpc_Toby_cFi) + 0x194),
- (void*)(((char*)cutTalkToOneself__12daNpc_Toby_cFi) + 0x19C),
- (void*)(((char*)cutTalkToOneself__12daNpc_Toby_cFi) + 0x1B4),
- (void*)(((char*)cutTalkToOneself__12daNpc_Toby_cFi) + 0x228),
- (void*)(((char*)cutTalkToOneself__12daNpc_Toby_cFi) + 0x228),
- (void*)(((char*)cutTalkToOneself__12daNpc_Toby_cFi) + 0x228),
- (void*)(((char*)cutTalkToOneself__12daNpc_Toby_cFi) + 0x1C0),
- (void*)(((char*)cutTalkToOneself__12daNpc_Toby_cFi) + 0x194),
- (void*)(((char*)cutTalkToOneself__12daNpc_Toby_cFi) + 0x220),
-};
-
-/* 80B255C8-80B2561C -00001 0054+00 1/1 0/0 0/0 .data @6040 */
-SECTION_DATA static void* lit_6040[21] = {
- (void*)(((char*)cutConversationAboutSCannon__12daNpc_Toby_cFi) + 0x498),
- (void*)(((char*)cutConversationAboutSCannon__12daNpc_Toby_cFi) + 0x504),
- (void*)(((char*)cutConversationAboutSCannon__12daNpc_Toby_cFi) + 0x5E0),
- (void*)(((char*)cutConversationAboutSCannon__12daNpc_Toby_cFi) + 0x660),
- (void*)(((char*)cutConversationAboutSCannon__12daNpc_Toby_cFi) + 0x6CC),
- (void*)(((char*)cutConversationAboutSCannon__12daNpc_Toby_cFi) + 0x8F4),
- (void*)(((char*)cutConversationAboutSCannon__12daNpc_Toby_cFi) + 0x8F4),
- (void*)(((char*)cutConversationAboutSCannon__12daNpc_Toby_cFi) + 0x944),
- (void*)(((char*)cutConversationAboutSCannon__12daNpc_Toby_cFi) + 0x7B8),
- (void*)(((char*)cutConversationAboutSCannon__12daNpc_Toby_cFi) + 0xA24),
- (void*)(((char*)cutConversationAboutSCannon__12daNpc_Toby_cFi) + 0x7B8),
- (void*)(((char*)cutConversationAboutSCannon__12daNpc_Toby_cFi) + 0xA24),
- (void*)(((char*)cutConversationAboutSCannon__12daNpc_Toby_cFi) + 0xA24),
- (void*)(((char*)cutConversationAboutSCannon__12daNpc_Toby_cFi) + 0xA24),
- (void*)(((char*)cutConversationAboutSCannon__12daNpc_Toby_cFi) + 0xA24),
- (void*)(((char*)cutConversationAboutSCannon__12daNpc_Toby_cFi) + 0xA24),
- (void*)(((char*)cutConversationAboutSCannon__12daNpc_Toby_cFi) + 0xA24),
- (void*)(((char*)cutConversationAboutSCannon__12daNpc_Toby_cFi) + 0xA24),
- (void*)(((char*)cutConversationAboutSCannon__12daNpc_Toby_cFi) + 0xA24),
- (void*)(((char*)cutConversationAboutSCannon__12daNpc_Toby_cFi) + 0xA24),
- (void*)(((char*)cutConversationAboutSCannon__12daNpc_Toby_cFi) + 0xA10),
-};
-
-/* 80B2561C-80B25670 -00001 0054+00 1/1 0/0 0/0 .data @6039 */
-SECTION_DATA static void* lit_6039[21] = {
- (void*)(((char*)cutConversationAboutSCannon__12daNpc_Toby_cFi) + 0x118),
- (void*)(((char*)cutConversationAboutSCannon__12daNpc_Toby_cFi) + 0x13C),
- (void*)(((char*)cutConversationAboutSCannon__12daNpc_Toby_cFi) + 0x144),
- (void*)(((char*)cutConversationAboutSCannon__12daNpc_Toby_cFi) + 0x468),
- (void*)(((char*)cutConversationAboutSCannon__12daNpc_Toby_cFi) + 0x158),
- (void*)(((char*)cutConversationAboutSCannon__12daNpc_Toby_cFi) + 0x468),
- (void*)(((char*)cutConversationAboutSCannon__12daNpc_Toby_cFi) + 0x468),
- (void*)(((char*)cutConversationAboutSCannon__12daNpc_Toby_cFi) + 0x30C),
- (void*)(((char*)cutConversationAboutSCannon__12daNpc_Toby_cFi) + 0x328),
- (void*)(((char*)cutConversationAboutSCannon__12daNpc_Toby_cFi) + 0x3D0),
- (void*)(((char*)cutConversationAboutSCannon__12daNpc_Toby_cFi) + 0x458),
- (void*)(((char*)cutConversationAboutSCannon__12daNpc_Toby_cFi) + 0x468),
- (void*)(((char*)cutConversationAboutSCannon__12daNpc_Toby_cFi) + 0x468),
- (void*)(((char*)cutConversationAboutSCannon__12daNpc_Toby_cFi) + 0x468),
- (void*)(((char*)cutConversationAboutSCannon__12daNpc_Toby_cFi) + 0x468),
- (void*)(((char*)cutConversationAboutSCannon__12daNpc_Toby_cFi) + 0x468),
- (void*)(((char*)cutConversationAboutSCannon__12daNpc_Toby_cFi) + 0x468),
- (void*)(((char*)cutConversationAboutSCannon__12daNpc_Toby_cFi) + 0x468),
- (void*)(((char*)cutConversationAboutSCannon__12daNpc_Toby_cFi) + 0x468),
- (void*)(((char*)cutConversationAboutSCannon__12daNpc_Toby_cFi) + 0x468),
- (void*)(((char*)cutConversationAboutSCannon__12daNpc_Toby_cFi) + 0x464),
-};
-
-/* 80B25670-80B25690 -00001 0020+00 1/0 0/0 0/0 .data daNpc_Toby_MethodTable */
-static actor_method_class daNpc_Toby_MethodTable = {
- (process_method_func)daNpc_Toby_Create__FPv,
- (process_method_func)daNpc_Toby_Delete__FPv,
- (process_method_func)daNpc_Toby_Execute__FPv,
- (process_method_func)daNpc_Toby_IsDelete__FPv,
- (process_method_func)daNpc_Toby_Draw__FPv,
-};
-
-/* 80B25690-80B256C0 -00001 0030+00 0/0 0/0 1/0 .data g_profile_NPC_TOBY */
-extern actor_process_profile_definition g_profile_NPC_TOBY = {
- fpcLy_CURRENT_e, // mLayerID
- 7, // mListID
- fpcPi_CURRENT_e, // mListPrio
- PROC_NPC_TOBY, // mProcName
- &g_fpcLf_Method.base, // sub_method
- sizeof(daNpc_Toby_c), // mSize
- 0, // mSizeOther
- 0, // mParameters
- &g_fopAc_Method.base, // sub_method
- 377, // mPriority
- &daNpc_Toby_MethodTable, // sub_method
- 0x00040107, // mStatus
- fopAc_NPC_e, // mActorType
- fopAc_CULLBOX_CUSTOM_e, // cullType
-};
-
-/* 80B256C0-80B256CC 000A78 000C+00 2/2 0/0 0/0 .data __vt__11J3DTexNoAnm */
-SECTION_DATA extern void* __vt__11J3DTexNoAnm[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)calc__11J3DTexNoAnmCFPUs,
-};
-
-/* 80B256CC-80B256D8 000A84 000C+00 3/3 0/0 0/0 .data __vt__12J3DFrameCtrl */
-SECTION_DATA extern void* __vt__12J3DFrameCtrl[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__12J3DFrameCtrlFv,
-};
-
-/* 80B256D8-80B256FC 000A90 0024+00 3/3 0/0 0/0 .data __vt__12dBgS_ObjAcch */
-SECTION_DATA extern void* __vt__12dBgS_ObjAcch[9] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__12dBgS_ObjAcchFv,
- (void*)NULL,
- (void*)NULL,
- (void*)func_80B249C8,
- (void*)NULL,
- (void*)NULL,
- (void*)func_80B249C0,
-};
-
-/* 80B256FC-80B25708 000AB4 000C+00 2/2 0/0 0/0 .data __vt__12dBgS_AcchCir */
-SECTION_DATA extern void* __vt__12dBgS_AcchCir[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__12dBgS_AcchCirFv,
-};
-
-/* 80B25708-80B25714 000AC0 000C+00 3/3 0/0 0/0 .data __vt__10cCcD_GStts */
-SECTION_DATA extern void* __vt__10cCcD_GStts[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__10cCcD_GSttsFv,
-};
-
-/* 80B25714-80B25720 000ACC 000C+00 2/2 0/0 0/0 .data __vt__10dCcD_GStts */
-SECTION_DATA extern void* __vt__10dCcD_GStts[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__10dCcD_GSttsFv,
-};
-
-/* 80B25720-80B2572C 000AD8 000C+00 3/3 0/0 0/0 .data __vt__22daNpcT_MotionSeqMngr_c */
-SECTION_DATA extern void* __vt__22daNpcT_MotionSeqMngr_c[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__22daNpcT_MotionSeqMngr_cFv,
-};
-
-/* 80B2572C-80B25738 000AE4 000C+00 5/5 0/0 0/0 .data __vt__18daNpcT_ActorMngr_c */
-SECTION_DATA extern void* __vt__18daNpcT_ActorMngr_c[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__18daNpcT_ActorMngr_cFv,
-};
-
-/* 80B25738-80B25744 000AF0 000C+00 3/3 0/0 0/0 .data __vt__15daNpcT_JntAnm_c */
-SECTION_DATA extern void* __vt__15daNpcT_JntAnm_c[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__15daNpcT_JntAnm_cFv,
-};
-
-/* 80B25744-80B25750 000AFC 000C+00 3/3 0/0 0/0 .data __vt__8cM3dGAab */
-SECTION_DATA extern void* __vt__8cM3dGAab[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__8cM3dGAabFv,
+daNpc_Toby_c::cutFunc daNpc_Toby_c::mCutList[7] = {
+ NULL,
+ &daNpc_Toby_c::cutTobyHouseFire,
+ &daNpc_Toby_c::cutTalkToOneself,
+ &daNpc_Toby_c::cutRepairSCannon,
+ &daNpc_Toby_c::cutSCannon,
+ &daNpc_Toby_c::cutConversationAboutSCannon,
+ &daNpc_Toby_c::cutConversationAboutZra,
};
-/* 80B25750-80B2575C 000B08 000C+00 3/3 0/0 0/0 .data __vt__8cM3dGCyl */
-SECTION_DATA extern void* __vt__8cM3dGCyl[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__8cM3dGCylFv,
-};
-
-/* 80B2575C-80B25768 000B14 000C+00 3/3 0/0 0/0 .data __vt__13daNpcT_Path_c */
-SECTION_DATA extern void* __vt__13daNpcT_Path_c[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__13daNpcT_Path_cFv,
-};
-
-/* 80B25768-80B2582C 000B20 00C4+00 2/2 0/0 0/0 .data __vt__12daNpc_Toby_c */
-SECTION_DATA extern void* __vt__12daNpc_Toby_c[49] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__12daNpc_Toby_cFv,
- (void*)ctrlBtk__8daNpcT_cFv,
- (void*)ctrlSubFaceMotion__8daNpcT_cFi,
- (void*)checkChangeJoint__12daNpc_Toby_cFi,
- (void*)checkRemoveJoint__12daNpc_Toby_cFi,
- (void*)getBackboneJointNo__12daNpc_Toby_cFv,
- (void*)getNeckJointNo__12daNpc_Toby_cFv,
- (void*)getHeadJointNo__12daNpc_Toby_cFv,
- (void*)getFootLJointNo__12daNpc_Toby_cFv,
- (void*)getFootRJointNo__12daNpc_Toby_cFv,
- (void*)getEyeballLMaterialNo__8daNpcT_cFv,
- (void*)getEyeballRMaterialNo__8daNpcT_cFv,
- (void*)getEyeballMaterialNo__12daNpc_Toby_cFv,
- (void*)ctrlJoint__8daNpcT_cFP8J3DJointP8J3DModel,
- (void*)afterJntAnm__12daNpc_Toby_cFi,
- (void*)setParam__12daNpc_Toby_cFv,
- (void*)checkChangeEvt__12daNpc_Toby_cFv,
- (void*)evtTalk__12daNpc_Toby_cFv,
- (void*)evtEndProc__8daNpcT_cFv,
- (void*)evtCutProc__12daNpc_Toby_cFv,
- (void*)setAfterTalkMotion__12daNpc_Toby_cFv,
- (void*)evtProc__8daNpcT_cFv,
- (void*)action__12daNpc_Toby_cFv,
- (void*)beforeMove__12daNpc_Toby_cFv,
- (void*)afterMoved__8daNpcT_cFv,
- (void*)setAttnPos__12daNpc_Toby_cFv,
- (void*)setFootPos__8daNpcT_cFv,
- (void*)setCollision__12daNpc_Toby_cFv,
- (void*)setFootPrtcl__8daNpcT_cFP4cXyzff,
- (void*)checkCullDraw__8daNpcT_cFv,
- (void*)twilight__8daNpcT_cFv,
- (void*)chkXYItems__12daNpc_Toby_cFv,
- (void*)evtOrder__8daNpcT_cFv,
- (void*)decTmr__8daNpcT_cFv,
- (void*)clrParam__8daNpcT_cFv,
- (void*)drawDbgInfo__12daNpc_Toby_cFv,
- (void*)drawOtherMdl__12daNpc_Toby_cFv,
- (void*)drawGhost__8daNpcT_cFv,
- (void*)afterSetFaceMotionAnm__12daNpc_Toby_cFiifi,
- (void*)afterSetMotionAnm__12daNpc_Toby_cFiifi,
- (void*)getFaceMotionAnm__8daNpcT_cF26daNpcT_faceMotionAnmData_c,
- (void*)getMotionAnm__8daNpcT_cF22daNpcT_motionAnmData_c,
- (void*)changeAnm__8daNpcT_cFPiPi,
- (void*)changeBck__8daNpcT_cFPiPi,
- (void*)changeBtp__8daNpcT_cFPiPi,
- (void*)changeBtk__8daNpcT_cFPiPi,
- (void*)setMotionAnm__8daNpcT_cFifi,
-};
+NPC_TOBY_HIO_CLASS l_HIO;
/* 80B1E64C-80B1E798 0000EC 014C+00 1/0 0/0 0/0 .text __dt__12daNpc_Toby_cFv */
daNpc_Toby_c::~daNpc_Toby_c() {
- // NONMATCHING
-}
+ OS_REPORT("|%06d:%x|daNpc_Toby_c -> デストラクト\n", g_Counter.mCounter0, this);
+ if (mpMorf[0] != NULL) {
+ mpMorf[0]->stopZelAnime();
+ }
-/* ############################################################################################## */
-/* 80B249E4-80B24A80 000000 009C+00 15/15 0/0 0/0 .rodata m__18daNpc_Toby_Param_c */
-SECTION_RODATA u8 const daNpc_Toby_Param_c::m[156] = {
- 0x43, 0x20, 0x00, 0x00, 0xC0, 0x40, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x43, 0xC8, 0x00, 0x00,
- 0x43, 0x7F, 0x00, 0x00, 0x43, 0x16, 0x00, 0x00, 0x42, 0x0C, 0x00, 0x00, 0x42, 0x20, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x20, 0x00, 0x00, 0xC1, 0x20, 0x00, 0x00,
- 0x41, 0xF0, 0x00, 0x00, 0xC1, 0x20, 0x00, 0x00, 0x42, 0x34, 0x00, 0x00, 0xC2, 0x34, 0x00, 0x00,
- 0x3F, 0x19, 0x99, 0x9A, 0x41, 0x40, 0x00, 0x00, 0x00, 0x03, 0x00, 0x06, 0x00, 0x05, 0x00, 0x06,
- 0x42, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x3C, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x80, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x80, 0x00, 0x00,
- 0x40, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x40, 0x80, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80B249E4, &daNpc_Toby_Param_c::m);
-
-/* 80B24A80-80B24A9C 00009C 001C+00 0/1 0/0 0/0 .rodata heapSize$4089 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const heapSize[28] = {
- 0x00, 0x00, 0x3B, 0xC0, 0x00, 0x00, 0x3B, 0x10, 0x00, 0x00, 0x3B, 0x10, 0x00, 0x00,
- 0x43, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3B, 0xD0, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80B24A80, &heapSize);
-#pragma pop
-
-/* 80B24A9C-80B24AA0 0000B8 0004+00 0/1 0/0 0/0 .rodata @4155 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4155 = -200.0f;
-COMPILER_STRIP_GATE(0x80B24A9C, &lit_4155);
-#pragma pop
-
-/* 80B24AA0-80B24AA4 0000BC 0004+00 0/1 0/0 0/0 .rodata @4156 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4156 = -100.0f;
-COMPILER_STRIP_GATE(0x80B24AA0, &lit_4156);
-#pragma pop
-
-/* 80B24AA4-80B24AA8 0000C0 0004+00 0/1 0/0 0/0 .rodata @4157 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4157 = 200.0f;
-COMPILER_STRIP_GATE(0x80B24AA4, &lit_4157);
-#pragma pop
-
-/* 80B24AA8-80B24AAC 0000C4 0004+00 0/2 0/0 0/0 .rodata @4158 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4158 = 300.0f;
-COMPILER_STRIP_GATE(0x80B24AA8, &lit_4158);
-#pragma pop
-
-/* 80B24AAC-80B24AB0 0000C8 0004+00 6/18 0/0 0/0 .rodata @4159 */
-SECTION_RODATA static u8 const lit_4159[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
-};
-COMPILER_STRIP_GATE(0x80B24AAC, &lit_4159);
+#if DEBUG
+ if (mpHIO != NULL) {
+ mpHIO->removeHIO();
+ }
+#endif
-/* 80B24AB0-80B24AB4 0000CC 0004+00 0/1 0/0 0/0 .rodata @4160 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4160 = -G_CM3D_F_INF;
-COMPILER_STRIP_GATE(0x80B24AB0, &lit_4160);
-#pragma pop
+ deleteRes(l_loadResPtrnList[mType], (const char**)l_resNameList);
+}
/* 80B1E798-80B1EA60 000238 02C8+00 1/1 0/0 0/0 .text create__12daNpc_Toby_cFv */
-void daNpc_Toby_c::create() {
- // NONMATCHING
+int daNpc_Toby_c::create() {
+ static int const heapSize[7] = {
+ 0x3BC0, 0x3B10, 0x3B10, 0x43C0,
+ 0x0, 0x3BD0, 0x0,
+ };
+ fopAcM_SetupActor2(this, daNpc_Toby_c, l_faceMotionAnmData, l_motionAnmData,
+ l_faceMotionSequenceData, 4, l_motionSequenceData, 4,
+ l_evtList, l_resNameList
+ );
+
+ mType = getType();
+ mFlowNodeNo = getFlowNodeNo();
+ mTwilight = dKy_darkworld_check();
+ int rv = loadRes(l_loadResPtrnList[mType], (const char**)l_resNameList);
+ if (rv == cPhs_COMPLEATE_e) {
+ OS_REPORT("\t(%s:%d) flowNo:%d, PathID:%02x, BitSW:%02x<%08x> ",
+ fopAcM_getProcNameString(this), mType, mFlowNodeNo, getPathID(),
+ getBitSW(), fopAcM_GetParam(this));
+ if (isDelete()) {
+ OS_REPORT("===>isDelete:TRUE\n");
+ return cPhs_ERROR_e;
+ }
+
+ OS_REPORT("\n");
+ if (!fopAcM_entrySolidHeap(this, createHeapCallBack, heapSize[mType])) {
+ return cPhs_ERROR_e;
+ }
+
+ J3DModelData* modelData = mpMorf[0]->getModel()->getModelData();
+ fopAcM_SetMtx(this, mpMorf[0]->getModel()->getBaseTRMtx());
+ fopAcM_setCullSizeBox(this, -200.0f, -100.0f, -200.0f, 200.0f, 300.0f, 200.0f);
+ mSound.init(&current.pos, &eyePos, 3, 1);
+ field_0x9c0.init(&mAcch, 0.0f, 0.0f);
+#if DEBUG
+ mpHIO = &l_HIO;
+ // Toby:
+ mpHIO->entryHIO("トビ-");
+#endif
+ reset();
+ mAcch.Set(fopAcM_GetPosition_p(this), fopAcM_GetOldPosition_p(this), this, 1,
+ &mAcchCir, fopAcM_GetSpeed_p(this), fopAcM_GetAngle_p(this),
+ fopAcM_GetShapeAngle_p(this));
+ mCcStts.Init(mpHIO->m.common.weight, 0, this);
+ mCyl1.Set(mCcDCyl);
+ mCyl1.SetStts(&mCcStts);
+ mCyl1.SetTgHitCallback(tgHitCallBack);
+ mAcch.CrrPos(dComIfG_Bgsp());
+ mGndChk = mAcch.m_gnd;
+ mGroundH = mAcch.GetGroundH();
+ if (mGroundH != -G_CM3D_F_INF) {
+ setEnvTevColor();
+ setRoomNo();
+ }
+
+ mCreating = 1;
+ Execute();
+ mCreating = 0;
+ }
+
+ return rv;
}
-/* ############################################################################################## */
-/* 80B24AB4-80B24AB8 0000D0 0004+00 0/2 0/0 0/0 .rodata @4323 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4323 = 65536.0f;
-COMPILER_STRIP_GATE(0x80B24AB4, &lit_4323);
-#pragma pop
-
-/* 80B24AB8-80B24ABC 0000D4 0004+00 0/3 0/0 0/0 .rodata @4324 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4324 = 1.0f / 5.0f;
-COMPILER_STRIP_GATE(0x80B24AB8, &lit_4324);
-#pragma pop
-
-/* 80B24ABC-80B24AC0 0000D8 0004+00 0/1 0/0 0/0 .rodata bmdTypeList$4437 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const bmdTypeList[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x02,
-};
-COMPILER_STRIP_GATE(0x80B24ABC, &bmdTypeList);
-#pragma pop
-
-/* 80B24AC0-80B24AC4 0000DC 0004+00 1/5 0/0 0/0 .rodata @4495 */
-SECTION_RODATA static f32 const lit_4495 = 1.0f;
-COMPILER_STRIP_GATE(0x80B24AC0, &lit_4495);
-
/* 80B1EA60-80B1ED6C 000500 030C+00 1/1 0/0 0/0 .text CreateHeap__12daNpc_Toby_cFv */
-void daNpc_Toby_c::CreateHeap() {
- // NONMATCHING
-}
-
-/* 80B1ED6C-80B1EDA8 00080C 003C+00 1/1 0/0 0/0 .text __dt__15J3DTevKColorAnmFv */
-// J3DTevKColorAnm::~J3DTevKColorAnm() {
-extern "C" void __dt__15J3DTevKColorAnmFv() {
- // NONMATCHING
-}
-
-/* 80B1EDA8-80B1EDC0 000848 0018+00 1/1 0/0 0/0 .text __ct__15J3DTevKColorAnmFv */
-// J3DTevKColorAnm::J3DTevKColorAnm() {
-extern "C" void __ct__15J3DTevKColorAnmFv() {
- // NONMATCHING
-}
-
-/* 80B1EDC0-80B1EDFC 000860 003C+00 1/1 0/0 0/0 .text __dt__14J3DTevColorAnmFv */
-// J3DTevColorAnm::~J3DTevColorAnm() {
-extern "C" void __dt__14J3DTevColorAnmFv() {
- // NONMATCHING
-}
-
-/* 80B1EDFC-80B1EE14 00089C 0018+00 1/1 0/0 0/0 .text __ct__14J3DTevColorAnmFv */
-// J3DTevColorAnm::J3DTevColorAnm() {
-extern "C" void __ct__14J3DTevColorAnmFv() {
- // NONMATCHING
-}
-
-/* 80B1EE14-80B1EE5C 0008B4 0048+00 1/1 0/0 0/0 .text __dt__11J3DTexNoAnmFv */
-// J3DTexNoAnm::~J3DTexNoAnm() {
-extern "C" void __dt__11J3DTexNoAnmFv() {
- // NONMATCHING
-}
-
-/* 80B1EE5C-80B1EE80 0008FC 0024+00 1/1 0/0 0/0 .text __ct__11J3DTexNoAnmFv */
-// J3DTexNoAnm::J3DTexNoAnm() {
-extern "C" void __ct__11J3DTexNoAnmFv() {
- // NONMATCHING
-}
-
-/* 80B1EE80-80B1EEBC 000920 003C+00 1/1 0/0 0/0 .text __dt__12J3DTexMtxAnmFv */
-// J3DTexMtxAnm::~J3DTexMtxAnm() {
-extern "C" void __dt__12J3DTexMtxAnmFv() {
- // NONMATCHING
-}
-
-/* 80B1EEBC-80B1EED4 00095C 0018+00 1/1 0/0 0/0 .text __ct__12J3DTexMtxAnmFv */
-// J3DTexMtxAnm::J3DTexMtxAnm() {
-extern "C" void __ct__12J3DTexMtxAnmFv() {
- // NONMATCHING
-}
-
-/* 80B1EED4-80B1EF10 000974 003C+00 1/1 0/0 0/0 .text __dt__14J3DMatColorAnmFv */
-// J3DMatColorAnm::~J3DMatColorAnm() {
-extern "C" void __dt__14J3DMatColorAnmFv() {
- // NONMATCHING
-}
-
-/* 80B1EF10-80B1EF28 0009B0 0018+00 1/1 0/0 0/0 .text __ct__14J3DMatColorAnmFv */
-// J3DMatColorAnm::J3DMatColorAnm() {
-extern "C" void __ct__14J3DMatColorAnmFv() {
- // NONMATCHING
+int daNpc_Toby_c::CreateHeap() {
+ static int const bmdTypeList[1] = {2};
+
+ J3DModelData* modelData = NULL;
+ J3DModel* model = NULL;
+ int bmdIdx = mTwilight == true ? TRUE : FALSE;
+ int res_name_idx = l_bmdData[bmdIdx][1];
+ int my_bmd = l_bmdData[bmdIdx][0];
+ modelData = static_cast<J3DModelData*>(dComIfG_getObjectRes(l_resNameList[res_name_idx], my_bmd));
+ if (modelData == NULL) {
+ return 0;
+ }
+
+ u32 sp_0x24 = 0x11020284;
+ mpMorf[0] = new mDoExt_McaMorfSO(modelData, NULL, NULL, NULL, -1, 1.0f, 0, -1, &mSound, 0x80000, sp_0x24);
+ if (mpMorf[0] == NULL || mpMorf[0]->getModel() == NULL) {
+ return 0;
+ }
+
+ model = mpMorf[0]->getModel();
+ for (u16 i = 0; i < modelData->getJointNum(); i++) {
+ modelData->getJointNodePointer(i)->setCallBack(ctrlJointCallBack);
+ }
+
+ model->setUserArea((uintptr_t)this);
+ mpMatAnm[0] = new daNpcT_MatAnm_c();
+ if (mpMatAnm[0] == NULL) {
+ return 0;
+ }
+
+ if (mType == 3 || mType == 4) {
+ for (int idx = 0; idx < 1; ++idx) {
+ if (l_bmdData[bmdTypeList[idx]][0] >= 0) {
+ modelData = (J3DModelData*)dComIfG_getObjectRes(l_resNameList[l_bmdData[bmdTypeList[idx]][1]],
+ l_bmdData[bmdTypeList[idx]][0]);
+ } else {
+ modelData = NULL;
+ }
+
+ if (modelData != NULL) {
+ mpTobyModels[idx] = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000084);
+ } else {
+ mpTobyModels[idx] = NULL;
+ }
+ }
+ }
+
+ if (setFaceMotionAnm(1, false) && setMotionAnm(0, 0.0f, FALSE)) {
+ return 1;
+ }
+
+ return 0;
}
/* 80B1EF28-80B1EF5C 0009C8 0034+00 1/1 0/0 0/0 .text Delete__12daNpc_Toby_cFv */
-void daNpc_Toby_c::Delete() {
- // NONMATCHING
+int daNpc_Toby_c::Delete() {
+ OS_REPORT("|%06d:%x|daNpc_Toby_c -> Delete\n", g_Counter.mCounter0, this);
+ fopAcM_RegisterDeleteID(this, "NPC_TOBY");
+ this->~daNpc_Toby_c();
+ return 1;
}
/* 80B1EF5C-80B1EF7C 0009FC 0020+00 2/2 0/0 0/0 .text Execute__12daNpc_Toby_cFv */
-void daNpc_Toby_c::Execute() {
- // NONMATCHING
+int daNpc_Toby_c::Execute() {
+ return daNpcT_c::execute();
}
-/* ############################################################################################## */
-/* 80B24AC4-80B24AC8 0000E0 0004+00 1/2 0/0 0/0 .rodata @4544 */
-SECTION_RODATA static f32 const lit_4544 = 100.0f;
-COMPILER_STRIP_GATE(0x80B24AC4, &lit_4544);
-
/* 80B1EF7C-80B1F010 000A1C 0094+00 1/1 0/0 0/0 .text Draw__12daNpc_Toby_cFv */
-void daNpc_Toby_c::Draw() {
- // NONMATCHING
+int daNpc_Toby_c::Draw() {
+ if (mpMatAnm[0] != NULL) {
+ J3DModelData* modelData = mpMorf[0]->getModel()->getModelData();
+ modelData->getMaterialNodePointer(getEyeballMaterialNo())->setMaterialAnm(mpMatAnm[0]);
+ }
+
+ return daNpcT_c::draw(
+#if DEBUG
+ chkAction(&daNpc_Toby_c::test),
+#else
+ 0,
+#endif
+ 0, mRealShadowSize, NULL, 100.0f, 0, 0, 0);
}
/* 80B1F010-80B1F030 000AB0 0020+00 1/1 0/0 0/0 .text
* createHeapCallBack__12daNpc_Toby_cFP10fopAc_ac_c */
-void daNpc_Toby_c::createHeapCallBack(fopAc_ac_c* param_0) {
- // NONMATCHING
+int daNpc_Toby_c::createHeapCallBack(fopAc_ac_c* i_this) {
+ daNpc_Toby_c* a_this = static_cast<daNpc_Toby_c*>(i_this);
+ return a_this->CreateHeap();
}
/* 80B1F030-80B1F088 000AD0 0058+00 1/1 0/0 0/0 .text
* ctrlJointCallBack__12daNpc_Toby_cFP8J3DJointi */
-void daNpc_Toby_c::ctrlJointCallBack(J3DJoint* param_0, int param_1) {
- // NONMATCHING
+int daNpc_Toby_c::ctrlJointCallBack(J3DJoint* i_joint, int i_int) {
+ if (i_int == 0) {
+ J3DModel* model = j3dSys.getModel();
+ daNpc_Toby_c* i_this = reinterpret_cast<daNpc_Toby_c*>(model->getUserArea());
+ if (i_this != NULL) {
+ i_this->ctrlJoint(i_joint, model);
+ }
+ }
+
+ return 1;
}
/* 80B1F088-80B1F124 000B28 009C+00 1/1 0/0 0/0 .text srchToby__12daNpc_Toby_cFPvPv */
-void daNpc_Toby_c::srchToby(void* param_0, void* param_1) {
- // NONMATCHING
-}
+void* daNpc_Toby_c::srchToby(void* i_actor, void* i_data) {
+ if (mFindCount < 50) {
+ fopAc_ac_c* actor_p = (fopAc_ac_c*)i_actor;
+ if (actor_p != NULL && actor_p != i_data) {
+ if (fopAcM_IsExecuting(fopAcM_GetID(actor_p)) && fopAcM_GetName(actor_p) == PROC_NPC_TOBY) {
+ mFindActorPtrs[mFindCount] = actor_p;
+ mFindCount++;
+ }
+ }
+ }
-/* ############################################################################################## */
-/* 80B24AC8-80B24ACC 0000E4 0004+00 1/1 0/0 0/0 .rodata @4593 */
-SECTION_RODATA static f32 const lit_4593 = G_CM3D_F_INF;
-COMPILER_STRIP_GATE(0x80B24AC8, &lit_4593);
+ return NULL;
+}
/* 80B1F124-80B1F200 000BC4 00DC+00 1/1 0/0 0/0 .text getOtherTobyP__12daNpc_Toby_cFi */
-void daNpc_Toby_c::getOtherTobyP(int param_0) {
- // NONMATCHING
+fopAc_ac_c* daNpc_Toby_c::getOtherTobyP(int i_int) {
+ fopAc_ac_c* actor = NULL;
+ f32 fVar1 = G_CM3D_F_INF;
+ mFindCount = 0;
+
+ fopAcM_Search(srchToby, this);
+
+ for (int i = 0; i < mFindCount; i++) {
+ if (i_int == (((daNpc_Toby_c*)mFindActorPtrs[i])->getType())
+ && fopAcM_searchActorDistance(this, mFindActorPtrs[i]) < fVar1) {
+ fVar1 = fopAcM_searchActorDistance(this, mFindActorPtrs[i]);
+ actor = mFindActorPtrs[i];
+ }
+ }
+
+ return actor;
}
/* 80B1F200-80B1F274 000CA0 0074+00 2/2 0/0 0/0 .text getType__12daNpc_Toby_cFv */
-void daNpc_Toby_c::getType() {
- // NONMATCHING
+u8 daNpc_Toby_c::getType() {
+ u8 prm = fopAcM_GetParam(this);
+ switch (prm & 0xFF) {
+ case 0:
+ return 0;
+ case 1:
+ return 1;
+ case 2:
+ return 2;
+ case 3:
+ return 3;
+ case 4:
+ return 4;
+ case 5:
+ return 5;
+ default:
+ return 6;
+ }
}
/* 80B1F274-80B1F384 000D14 0110+00 1/1 0/0 0/0 .text isDelete__12daNpc_Toby_cFv */
-void daNpc_Toby_c::isDelete() {
- // NONMATCHING
+int daNpc_Toby_c::isDelete() {
+ // 0x054 - M_051 - Fought the Shadow Bulbin riding the Shadow Kargorok (?)
+ // 0x136 - F_0310 - Handed Auru's note to Fyer
+ // 0x190 - F_0400 - Warped sky cannon to Lake Hylia
+ // 0x1E4 - F_0484 - Completed sky canon repairs!
+ // 0x1E5 - F_0485 - Heard Fyer talk about repairs 1 time
+ switch (mType) {
+ case 0:
+ return FALSE;
+ case 1:
+ return daNpcT_chkEvtBit(0x54);
+ case 2:
+ return !daNpcT_chkEvtBit(0x54);
+ case 3:
+ case 4:
+ return !daNpcT_chkEvtBit(0x136) || !daNpcT_chkEvtBit(0x190)
+ || daNpcT_chkEvtBit(0x1E4);
+ case 5:
+ return !daNpcT_chkEvtBit(0x136) || !daNpcT_chkEvtBit(0x190)
+ || daNpcT_chkEvtBit(0x1E4) || daNpcT_chkEvtBit(0x1E5);
+ default:
+ return FALSE;
+ }
}
/* 80B1F384-80B1F5AC 000E24 0228+00 1/1 0/0 0/0 .text reset__12daNpc_Toby_cFv */
void daNpc_Toby_c::reset() {
- // NONMATCHING
+ csXyz sp_0x10;
+ int num_bytes = (u8*)&field_0x1004 - (u8*)&mActFunc_0;
+ if (mpMatAnm[0] != NULL) {
+ mpMatAnm[0]->initialize();
+ }
+
+ initialize();
+ for (int i = 0; i < 4; i++) {
+ mActorMngr[i].initialize();
+ }
+
+ memset(&mActFunc_0, 0, num_bytes);
+ if (getPathID() != 0xFF) {
+ mPath.initialize();
+ mPath.setPathInfo(getPathID(), fopAcM_GetRoomNo(this), 0);
+ }
+
+ sp_0x10.setall(0);
+ sp_0x10.y = home.angle.y;
+ switch (mType) {
+ case 0:
+ eventInfo.setIdx(0);
+ break;
+ case 1:
+ eventInfo.setIdx(0);
+ break;
+ case 2:
+ eventInfo.setIdx(0);
+ break;
+ case 3:
+ mHide = 1;
+ eventInfo.setIdx(1);
+ break;
+ case 4:
+ eventInfo.setIdx(2);
+ break;
+ case 5:
+ mHide = 1;
+ eventInfo.setIdx(3);
+ break;
+ }
+
+ setAngle(sp_0x10);
}
/* 80B1F5AC-80B1F638 00104C 008C+00 1/0 0/0 0/0 .text afterJntAnm__12daNpc_Toby_cFi */
-void daNpc_Toby_c::afterJntAnm(int param_0) {
- // NONMATCHING
+void daNpc_Toby_c::afterJntAnm(int arg0) {
+ if (arg0 == 1) {
+ mDoMtx_stack_c::YrotM(mStagger.getAngleZ(1));
+ mDoMtx_stack_c::ZrotM(-mStagger.getAngleX(1));
+ } else if (arg0 == 4) {
+ mDoMtx_stack_c::YrotM(-mStagger.getAngleZ(0));
+ mDoMtx_stack_c::ZrotM(mStagger.getAngleX(0));
+ }
}
-/* ############################################################################################## */
-/* 80B24ACC-80B24AD0 0000E8 0004+00 1/1 0/0 0/0 .rodata @4735 */
-SECTION_RODATA static f32 const lit_4735 = 600.0f;
-COMPILER_STRIP_GATE(0x80B24ACC, &lit_4735);
-
/* 80B1F638-80B1F784 0010D8 014C+00 1/0 0/0 0/0 .text setParam__12daNpc_Toby_cFv */
void daNpc_Toby_c::setParam() {
- // NONMATCHING
+ selectAction();
+ srchActors();
+ u32 uVar7 = (fopAc_AttnFlag_SPEAK_e | fopAc_AttnFlag_TALK_e);
+ s16 talk_dist = mpHIO->m.common.talk_distance;
+ s16 talk_ang = mpHIO->m.common.talk_angle;
+ s16 att_dist = mpHIO->m.common.attention_distance;
+ s16 att_ang = mpHIO->m.common.attention_angle;
+
+ if (mType == 0) {
+ talk_dist = 2;
+ talk_ang = 3;
+ att_dist = 3;
+ att_ang = 3;
+ }
+
+ attention_info.distances[fopAc_attn_LOCK_e] = daNpcT_getDistTableIdx(att_dist, att_ang);
+ attention_info.distances[fopAc_attn_TALK_e] = attention_info.distances[fopAc_attn_LOCK_e];
+ attention_info.distances[fopAc_attn_SPEAK_e] = daNpcT_getDistTableIdx(talk_dist, talk_ang);
+
+ attention_info.flags = uVar7;
+ scale.set(mpHIO->m.common.scale, mpHIO->m.common.scale,
+ mpHIO->m.common.scale);
+ mCcStts.SetWeight(mpHIO->m.common.weight);
+ mCylH = mpHIO->m.common.height;
+ mWallR = mpHIO->m.common.width;
+ mAttnFovY = mpHIO->m.common.fov;
+ mAcchCir.SetWallR(mWallR);
+ mAcchCir.SetWallH(mpHIO->m.common.knee_length);
+ mRealShadowSize = mpHIO->m.common.real_shadow_size;
+ if (&daNpc_Toby_c::play == mActFunc_0) {
+ mRealShadowSize = 600.0f;
+ }
+
+ mExpressionMorfFrame = mpHIO->m.common.expression_morf_frame;
+ mMorfFrames = mpHIO->m.common.morf_frame;
+ gravity = mpHIO->m.common.gravity;
}
/* 80B1F784-80B1F950 001224 01CC+00 1/0 0/0 0/0 .text checkChangeEvt__12daNpc_Toby_cFv */
-void daNpc_Toby_c::checkChangeEvt() {
- // NONMATCHING
+int daNpc_Toby_c::checkChangeEvt() {
+ if (!chkAction(&daNpc_Toby_c::talk)) {
+ mPreItemNo = 0;
+ if (dComIfGp_event_chkTalkXY()) {
+ if (dComIfGp_evmng_ChkPresentEnd()) {
+ mPreItemNo = dComIfGp_event_getPreItemNo();
+ if (mPreItemNo == fpcNm_ITEM_RAFRELS_MEMO) {
+ return FALSE;
+ }
+
+ mEvtNo = CUT_TOBY_HOUSE_FIRE;
+ evtChange();
+ }
+
+ return TRUE;
+ }
+
+ switch (mType) {
+ case 0:
+ if (daNpcT_chkEvtBit(0x136)) {
+ // Gave note to Fyer.
+ if (daNpcT_chkEvtBit(0x190) && !daNpcT_chkEvtBit(0x1E5) && !daNpcT_chkEvtBit(0x1E4)) {
+ // Warped cannon but did not talk to Fyer.
+ mEvtNo = CUT_CONVERSATION_ABOUT_SCANNON;
+ evtChange();
+ return TRUE;
+ }
+
+ break;
+ }
+
+#if VERSION == VERSION_SHIELD_DEBUG
+ if (chkAttnZra() && !dComIfGs_isSaveSwitch(0x51))
+#else
+ // 0x31E - F_0798 - Heard about Zora from Fyer
+ if (chkAttnZra() && !daNpcT_chkEvtBit(0x31E) && !dComIfGs_isSaveSwitch(0x51))
+#endif
+ {
+ mEvtNo = CUT_CONVERSATION_ABOUT_ZRA;
+ evtChange();
+ return TRUE;
+ }
+
+ break;
+
+ case 1:
+ // 0x0EF - T_0239 - Spoke with Fyer (start dark carge?)
+ if (!daNpcT_chkEvtBit(0xEF)) {
+ mEvtNo = CUT_TALKTO_ONESELF;
+ evtChange();
+ return TRUE;
+ }
+
+ break;
+
+ case 2:
+ case 3:
+ case 4:
+ case 5:
+ break;
+ }
+ }
+
+ return FALSE;
}
-/* ############################################################################################## */
-/* 80B24AD0-80B24AD4 0000EC 0004+00 2/6 0/0 0/0 .rodata @4802 */
-SECTION_RODATA static f32 const lit_4802 = -1.0f;
-COMPILER_STRIP_GATE(0x80B24AD0, &lit_4802);
-
/* 80B1F950-80B1FA08 0013F0 00B8+00 1/0 0/0 0/0 .text setAfterTalkMotion__12daNpc_Toby_cFv */
void daNpc_Toby_c::setAfterTalkMotion() {
- // NONMATCHING
+ int iVar2 = 16;
+ switch(mFaceMotionSeqMngr.getNo()) {
+ case 1:
+ iVar2 = 13;
+ break;
+ case 2:
+ iVar2 = 10;
+ break;
+ case 3:
+ iVar2 = 11;
+ break;
+ case 4:
+ iVar2 = 12;
+ break;
+ case 5:
+ iVar2 = 14;
+ break;
+ }
+
+ mFaceMotionSeqMngr.setNo(iVar2, -1.0f, 0, 0);
}
/* 80B1FA08-80B1FB34 0014A8 012C+00 1/1 0/0 0/0 .text srchActors__12daNpc_Toby_cFv */
void daNpc_Toby_c::srchActors() {
- // NONMATCHING
+ switch (mType) {
+ case 0:
+ if (mActorMngr[0].getActorP() == NULL) {
+ mActorMngr[0].entry(getNearestActorP(PROC_Obj_TobyHouse));
+ }
+
+ if (mActorMngr[1].getActorP() == NULL) {
+ // Fyer's music box that he plays when Link gets shot from the cannon.
+ mActorMngr[1].entry(getNearestActorP(PROC_OBJ_AUTOMATA));
+ }
+
+ if (mActorMngr[2].getActorP() == NULL) {
+ mActorMngr[2].entry(getNearestActorP(PROC_Obj_SCannon));
+ }
+
+ break;
+
+ case 1:
+ if (mActorMngr[3].getActorP() == NULL) {
+ // Shadow Bulbin (drained Lake Hylia Kargorok fight):
+ mActorMngr[3].entry(getNearestActorP(PROC_E_RDY));
+ }
+
+ break;
+
+ case 2:
+ break;
+
+ case 3:
+ if (mActorMngr[2].getActorP() == NULL) {
+ mActorMngr[2].entry(getNearestActorP(PROC_Obj_SCannon));
+ }
+
+ break;
+
+ case 4:
+ case 5:
+ break;
+ }
}
/* 80B1FB34-80B1FBD4 0015D4 00A0+00 1/0 0/0 0/0 .text evtTalk__12daNpc_Toby_cFv */
-void daNpc_Toby_c::evtTalk() {
- // NONMATCHING
+int daNpc_Toby_c::evtTalk() {
+ if (chkAction(&daNpc_Toby_c::talk)) {
+ (this->*mActFunc_1)(NULL);
+ } else {
+ setAction(&daNpc_Toby_c::talk);
+ }
+
+ return 1;
}
/* 80B1FBD4-80B1FC9C 001674 00C8+00 1/0 0/0 0/0 .text evtCutProc__12daNpc_Toby_cFv */
-void daNpc_Toby_c::evtCutProc() {
- // NONMATCHING
+int daNpc_Toby_c::evtCutProc() {
+ int staffId = dComIfGp_getEventManager().getMyStaffId("Toby", this, -1);
+ if (staffId != -1) {
+ mStaffId = staffId;
+ int actIdx = dComIfGp_getEventManager().getMyActIdx(mStaffId, mCutNameList, 7, 0, 0);
+ if ((this->*(mCutList[actIdx]))(mStaffId) != 0) {
+ dComIfGp_getEventManager().cutEnd(mStaffId);
+ }
+
+ return TRUE;
+ }
+
+ return FALSE;
}
/* 80B1FC9C-80B1FE68 00173C 01CC+00 1/0 0/0 0/0 .text action__12daNpc_Toby_cFv */
void daNpc_Toby_c::action() {
- // NONMATCHING
+ fopAc_ac_c* actor_p = NULL;
+ if (!mTwilight) {
+ actor_p = hitChk(&mCyl1, -1);
+ }
+
+ if (actor_p != NULL && mCyl1.GetTgHitObj()->ChkAtType(AT_TYPE_THROW_OBJ)) {
+ mStagger.setParam(this, actor_p, mCurAngle.y);
+ setDamage(0, 16, 0);
+ mDamageTimerStart = 0;
+ mJntAnm.lookNone(1);
+ }
+
+ if (mStagger.checkRebirth()) {
+ mStagger.initialize();
+ mMode = 1;
+ }
+
+ if (mActFunc_0 != NULL) {
+ if (mActFunc_1 == mActFunc_0) {
+ (this->*mActFunc_1)(NULL);
+ } else {
+ setAction(mActFunc_0);
+ }
+ }
+
+ if (dComIfGp_event_runCheck() == FALSE && field_0x1001) {
+ fopAcM_delete(this);
+ }
}
/* 80B1FE68-80B1FF2C 001908 00C4+00 1/0 0/0 0/0 .text beforeMove__12daNpc_Toby_cFv */
void daNpc_Toby_c::beforeMove() {
- // NONMATCHING
-}
-
-/* ############################################################################################## */
-/* 80B24AD4-80B24AD8 0000F0 0004+00 0/2 0/0 0/0 .rodata @4983 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4983 = 30.0f;
-COMPILER_STRIP_GATE(0x80B24AD4, &lit_4983);
-#pragma pop
-
-/* 80B24AD8-80B24ADC 0000F4 0004+00 0/1 0/0 0/0 .rodata @4984 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u32 const lit_4984 = 0x38C90FDB;
-COMPILER_STRIP_GATE(0x80B24AD8, &lit_4984);
-#pragma pop
-
-/* 80B24ADC-80B24AE0 0000F8 0004+00 0/2 0/0 0/0 .rodata @4985 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4985 = 20.0f;
-COMPILER_STRIP_GATE(0x80B24ADC, &lit_4985);
-#pragma pop
-
-/* 80B24AE0-80B24AE4 0000FC 0004+00 0/1 0/0 0/0 .rodata @4986 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4986 = 140.0f;
-COMPILER_STRIP_GATE(0x80B24AE0, &lit_4986);
-#pragma pop
-
-/* 80B24AE4-80B24AE8 000100 0004+00 0/1 0/0 0/0 .rodata @4987 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4987 = 120.0f;
-COMPILER_STRIP_GATE(0x80B24AE4, &lit_4987);
-#pragma pop
-
-/* 80B24AE8-80B24AEC 000104 0004+00 0/1 0/0 0/0 .rodata @4988 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4988 = 40.0f;
-COMPILER_STRIP_GATE(0x80B24AE8, &lit_4988);
-#pragma pop
-
-/* 80B24AEC-80B24AF0 000108 0004+00 0/1 0/0 0/0 .rodata @4989 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4989 = 3.0f;
-COMPILER_STRIP_GATE(0x80B24AEC, &lit_4989);
-#pragma pop
-
-/* 80B24AF0-80B24AF4 00010C 0004+00 0/2 0/0 0/0 .rodata @4990 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4990 = 10.0f;
-COMPILER_STRIP_GATE(0x80B24AF0, &lit_4990);
-#pragma pop
-
-/* 80B24AF4-80B24AFC 000110 0008+00 1/4 0/0 0/0 .rodata @4992 */
-SECTION_RODATA static u8 const lit_4992[8] = {
- 0x43, 0x30, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80B24AF4, &lit_4992);
+ fopAcM_OffStatus(this, fopAcM_STATUS_UNK_0x8000000);
+ if (checkHide()) {
+ fopAcM_OnStatus(this, fopAcM_STATUS_UNK_0x8000000);
+ }
-/* 80B25880-80B2588C 000048 000C+00 1/1 0/0 0/0 .bss @3933 */
-static u8 lit_3933[12];
-
-/* 80B2588C-80B25890 000054 0004+00 1/1 0/0 0/0 .bss l_HIO */
-static u8 l_HIO[4];
-
-/* 80B25890-80B258A0 000058 000C+04 0/1 0/0 0/0 .bss @4922 */
-#pragma push
-#pragma force_active on
-static u8 lit_4922[12 + 4 /* padding */];
-#pragma pop
-
-/* 80B258A0-80B258AC 000068 000C+00 0/1 0/0 0/0 .bss prtclScl$4921 */
-#pragma push
-#pragma force_active on
-static u8 prtclScl[12];
-#pragma pop
+ if (checkHide() || mNoDraw) {
+ attention_info.flags = 0;
+ }
+}
/* 80B1FF2C-80B20278 0019CC 034C+00 1/0 0/0 0/0 .text setAttnPos__12daNpc_Toby_cFv */
void daNpc_Toby_c::setAttnPos() {
- // NONMATCHING
+ cXyz cStack_3c(0.0f, 30.0f, 0.0f);
+ mStagger.calc(0);
+ f32 dVar8 = cM_s2rad(mCurAngle.y - field_0xd7e.y);
+ mJntAnm.setParam(this, mpMorf[0]->getModel(), &cStack_3c, getBackboneJointNo(), getNeckJointNo(),
+ getHeadJointNo(), mpHIO->m.common.body_angleX_min, mpHIO->m.common.body_angleX_max,
+ mpHIO->m.common.body_angleY_min, mpHIO->m.common.body_angleY_max,
+ mpHIO->m.common.head_angleX_min, mpHIO->m.common.head_angleX_max,
+ mpHIO->m.common.head_angleY_min, mpHIO->m.common.head_angleY_max,
+ mpHIO->m.common.neck_rotation_ratio, dVar8, NULL);
+ mJntAnm.calcJntRad(0.2f, 1.0f, dVar8);
+ setMtx();
+ mDoMtx_stack_c::copy(mpMorf[0]->getModel()->getAnmMtx(getHeadJointNo()));
+ mDoMtx_stack_c::multVec(&cStack_3c, &eyePos);
+ mJntAnm.setEyeAngleX(eyePos, 1.0f, 0);
+ mJntAnm.setEyeAngleY(eyePos, mCurAngle.y, 1, 1.0f, 0);
+ cStack_3c.set(0.0f, 0.0f, 20.0f);
+ cStack_3c.y = mpHIO->m.common.attention_offset;
+ if (chkAttnZra()) {
+ cStack_3c.set(0.0f, 140.0f, 20.0f);
+ } else if (mType == 1 && mMotionSeqMngr.getNo() == 11) {
+ cStack_3c.set(0.0f, 120.0f, 40.0f);
+ }
+
+ mDoMtx_stack_c::YrotS(mCurAngle.y);
+ mDoMtx_stack_c::multVec(&cStack_3c, &cStack_3c);
+ attention_info.position = cStack_3c + current.pos;
+ static cXyz prtclScl(1.0f, 1.0f, 1.0f);
+ setFootPos();
+ if (3.0f < speedF) {
+ setFootPrtcl(&prtclScl, 10.0f, 0);
+ }
}
-/* ############################################################################################## */
-/* 80B24AFC-80B24B04 000118 0008+00 0/1 0/0 0/0 .rodata @5050 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5050[8] = {
- 0x3F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80B24AFC, &lit_5050);
-#pragma pop
-
-/* 80B24B04-80B24B0C 000120 0008+00 0/1 0/0 0/0 .rodata @5051 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5051[8] = {
- 0x40, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80B24B04, &lit_5051);
-#pragma pop
-
-/* 80B24B0C-80B24B14 000128 0008+00 0/1 0/0 0/0 .rodata @5052 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5052[8] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80B24B0C, &lit_5052);
-#pragma pop
-
-/* 80B24B14-80B24B18 000130 0004+00 0/1 0/0 0/0 .rodata @5098 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_5098 = 110.0f;
-COMPILER_STRIP_GATE(0x80B24B14, &lit_5098);
-#pragma pop
-
-/* 80B24B18-80B24B1C 000134 0004+00 0/1 0/0 0/0 .rodata @5099 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_5099 = 64.0f;
-COMPILER_STRIP_GATE(0x80B24B18, &lit_5099);
-#pragma pop
-
/* 80B20278-80B2042C 001D18 01B4+00 1/0 0/0 0/0 .text setCollision__12daNpc_Toby_cFv */
void daNpc_Toby_c::setCollision() {
- // NONMATCHING
+ cXyz cyl_center;
+ if (mHide == 0) {
+ int reg_r26 = 0x79;
+ u32 tgType = 0xD8FBFDFF;
+ u32 tgSPrm = 0x1f;
+ if (mTwilight) {
+ tgType = 0;
+ tgSPrm = 0;
+ } else if (mStagger.checkStagger()) {
+ tgType = 0;
+ tgSPrm = 0;
+ }
+
+ mCyl1.SetCoSPrm(reg_r26);
+ mCyl1.SetTgType(tgType);
+ mCyl1.SetTgSPrm(tgSPrm);
+ mCyl1.OnTgNoHitMark();
+ cyl_center.set(0.0f, 0.0f, 10.0f);
+ f32 cylHeight = mCylH;
+ f32 cylRadius = 20.0f + mWallR;
+ if (chkAttnZra()) {
+ cyl_center.set(0.0f, 0.0f, 30.0f);
+ cylHeight = 110.0f;
+ cylRadius = 64.0f;
+ }
+
+ mDoMtx_stack_c::YrotS(mCurAngle.y);
+ mDoMtx_stack_c::multVec(&cyl_center, &cyl_center);
+ cyl_center += current.pos;
+ mCyl1.SetH(cylHeight);
+ mCyl1.SetR(cylRadius);
+ mCyl1.SetC(cyl_center);
+ if (&daNpc_Toby_c::play != mActFunc_0) {
+ dComIfG_Ccsp()->Set(&mCyl1);
+ }
+ }
+
+ mCyl1.ClrCoHit();
+ mCyl1.ClrTgHit();
}
/* 80B2042C-80B20434 001ECC 0008+00 1/0 0/0 0/0 .text drawDbgInfo__12daNpc_Toby_cFv */
-bool daNpc_Toby_c::drawDbgInfo() {
- return false;
+int daNpc_Toby_c::drawDbgInfo() {
+ return FALSE;
}
-/* ############################################################################################## */
-/* 80B24B1C-80B24B20 000138 0004+00 1/1 0/0 0/0 .rodata jointNo$5107 */
-SECTION_RODATA static u8 const jointNo[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x12,
-};
-COMPILER_STRIP_GATE(0x80B24B1C, &jointNo);
+#if DEBUG
+// I have 0 clue what these are about, but I saw them in npc_moir as well.
+static s16 dummy_lit_122993(int sel) {
+ const s16 arr[2] = {0x00C8, 0x00FF};
+ return arr[sel];
+}
+
+static s16 dummy_lit_122996(int sel) {
+ const s16 arr[2] = {0xC800, 0x00FF};
+ return arr[sel];
+}
+
+static s16 dummy_lit_122999(int sel) {
+ const s16 arr[2] = {0x8080, 0x80A0};
+ return arr[sel];
+}
+
+static s16 dummy_lit_123002(int sel) {
+ const s16 arr[2] = {0x8080, 0x80A0};
+ return arr[sel];
+}
+
+static s16 dummy_lit_123016(int sel) {
+ const s16 arr[2] = {0x4190, 0x0000};
+ return arr[sel];
+}
+
+static s16 dummy_lit_123017(int sel) {
+ const s16 arr[2] = {0x4110, 0x0000};
+ return arr[sel];
+}
+#endif
/* 80B20434-80B2050C 001ED4 00D8+00 1/0 0/0 0/0 .text drawOtherMdl__12daNpc_Toby_cFv */
void daNpc_Toby_c::drawOtherMdl() {
- // NONMATCHING
+ J3DModel* model = mpMorf[0]->getModel();
+ for (int i = 0; i < 1; i++) {
+ if (mpTobyModels[i] != NULL && i == 0 && field_0x1002) {
+ g_env_light.setLightTevColorType_MAJI(mpTobyModels[i], &tevStr);
+ static int const jointNo[1] = {18};
+ mDoMtx_stack_c::copy(model->getAnmMtx(jointNo[i]));
+ Mtx jointAnmMtx;
+ cMtx_copy(mDoMtx_stack_c::get(), jointAnmMtx);
+ mpTobyModels[i]->setBaseTRMtx(jointAnmMtx);
+ mDoExt_modelUpdateDL(mpTobyModels[i]);
+ dComIfGd_addRealShadow(mShadowKey, mpTobyModels[i]);
+ }
+ }
}
/* 80B2050C-80B20568 001FAC 005C+00 1/0 0/0 0/0 .text afterSetFaceMotionAnm__12daNpc_Toby_cFiifi
*/
-void daNpc_Toby_c::afterSetFaceMotionAnm(int param_0, int param_1, f32 param_2, int param_3) {
- // NONMATCHING
+bool daNpc_Toby_c::afterSetFaceMotionAnm(int arg0, int, f32, int) {
+ // Amongst all the daNpcTs, seems like this is the only one that creates a
+ // non-trivial definition for this func?
+ switch (arg0) {
+ case 4:
+ case 5:
+ mBckAnm.setPlaySpeed(0.0f);
+ mBtpAnm.setPlaySpeed(0.0f);
+ break;
+ case 6:
+ break;
+ case 7:
+ mAnmFlags &= ~(ANM_PAUSE_BCK | ANM_PAUSE_BTP);
+ mBckAnm.setPlaySpeed(mPlaySpeed);
+ mBtpAnm.setPlaySpeed(mPlaySpeed);
+ break;
+ }
+
+ return true;
}
/* 80B20568-80B205F4 002008 008C+00 1/0 0/0 0/0 .text afterSetMotionAnm__12daNpc_Toby_cFiifi */
-void daNpc_Toby_c::afterSetMotionAnm(int param_0, int param_1, f32 param_2, int param_3) {
- // NONMATCHING
+bool daNpc_Toby_c::afterSetMotionAnm(int arg0, int, f32, int) {
+ switch (arg0) {
+ case 6:
+ mpMorf[0]->setPlaySpeed(0.0f);
+ mBtkAnm.setPlaySpeed(0.0f);
+ break;
+ case 7:
+ mpMorf[0]->setPlaySpeed(0.0f);
+ break;
+ case 8:
+ mpMorf[0]->setPlaySpeed(mPlaySpeed);
+ break;
+ case 9:
+ mAnmFlags &= 0xFFFFFFFE;
+ mpMorf[0]->setPlaySpeed(mPlaySpeed);
+ break;
+ }
+
+ field_0x0FFC = mMorfLoops;
+ return true;
}
/* 80B205F4-80B20710 002094 011C+00 1/1 0/0 0/0 .text selectAction__12daNpc_Toby_cFv */
-void daNpc_Toby_c::selectAction() {
- // NONMATCHING
+int daNpc_Toby_c::selectAction() {
+ mActFunc_0 = NULL;
+#if DEBUG
+ if (mpHIO->m.common.debug_mode_ON) {
+ mActFunc_0 = &daNpc_Toby_c::test;
+ return 1;
+ }
+#endif
+
+ switch (mType) {
+ case 0:
+ if (field_0x0FFF) {
+ mActFunc_0 = &daNpc_Toby_c::play;
+ } else if (field_0x0FFE == 0 && getBitSW() != 0xFF
+ && dComIfGs_isSwitch(getBitSW(), fopAcM_GetRoomNo(this))) {
+ mActFunc_0 = &daNpc_Toby_c::walk;
+ } else {
+ mActFunc_0 = &daNpc_Toby_c::wait;
+ }
+
+ break;
+
+ default:
+ mActFunc_0 = &daNpc_Toby_c::wait;
+ break;
+ }
+
+ return 1;
}
/* 80B20710-80B2073C 0021B0 002C+00 2/2 0/0 0/0 .text
* chkAction__12daNpc_Toby_cFM12daNpc_Toby_cFPCvPvPv_i */
-void daNpc_Toby_c::chkAction(int (daNpc_Toby_c::*param_0)(void*)) {
- // NONMATCHING
+int daNpc_Toby_c::chkAction(actionFunc i_func) {
+ return mActFunc_1 == i_func;
}
/* 80B2073C-80B207E4 0021DC 00A8+00 2/2 0/0 0/0 .text
* setAction__12daNpc_Toby_cFM12daNpc_Toby_cFPCvPvPv_i */
-void daNpc_Toby_c::setAction(int (daNpc_Toby_c::*param_0)(void*)) {
- // NONMATCHING
-}
+int daNpc_Toby_c::setAction(actionFunc i_func) {
+ mMode = MODE_EXIT;
+ if (mActFunc_1 != NULL) {
+ (this->*(mActFunc_1))(NULL);
+ }
-/* ############################################################################################## */
-/* 80B24B8C-80B24B8C 0001A8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
-#pragma push
-#pragma force_active on
-SECTION_DEAD static char const* const stringBase_80B24C32 = "prm";
-SECTION_DEAD static char const* const stringBase_80B24C36 = "timer";
-#pragma pop
+ mMode = MODE_ENTER;
+ mActFunc_1 = i_func;
+ if (mActFunc_1 != NULL) {
+ (this->*(mActFunc_1))(NULL);
+ }
-/* 80B207E4-80B20AB0 002284 02CC+00 1/0 0/0 0/0 .text cutTobyHouseFire__12daNpc_Toby_cFi
- */
-void daNpc_Toby_c::cutTobyHouseFire(int param_0) {
- // NONMATCHING
+ return 1;
}
-/* ############################################################################################## */
-/* 80B24B20-80B24B28 00013C 0008+00 0/1 0/0 0/0 .rodata @5345 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5345[8] = {
- 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-};
-COMPILER_STRIP_GATE(0x80B24B20, &lit_5345);
-#pragma pop
-
-/* 80B24B8C-80B24B8C 0001A8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
-#pragma push
-#pragma force_active on
-SECTION_DEAD static char const* const stringBase_80B24C3C = "msgNo";
-#pragma pop
-
-/* 80B20AB0-80B20FC0 002550 0510+00 3/0 0/0 0/0 .text cutTalkToOneself__12daNpc_Toby_cFi
+/* 80B207E4-80B20AB0 002284 02CC+00 1/0 0/0 0/0 .text cutTobyHouseFire__12daNpc_Toby_cFi
*/
-void daNpc_Toby_c::cutTalkToOneself(int param_0) {
- // NONMATCHING
+int daNpc_Toby_c::cutTobyHouseFire(int arg0) {
+ fopAc_ac_c* atmt_p = mActorMngr[1].getActorP();
+ int retval = 0;
+ int* param_p = NULL;
+ int prm_val = -1;
+ int timer_val = 0;
+ param_p = dComIfGp_evmng_getMyIntegerP(arg0, "prm");
+ if (param_p != NULL) {
+ prm_val = *param_p;
+ }
+
+ param_p = dComIfGp_evmng_getMyIntegerP(arg0, "timer");
+ if (param_p != NULL) {
+ timer_val = *param_p;
+ }
+
+ if (dComIfGp_getEventManager().getIsAddvance(arg0)) {
+ switch (prm_val) {
+ case 0:
+ break;
+
+ case 1:
+ JUT_ASSERT(2331, 0 != atmt_p);
+ field_0x0FFF = 1;
+ setParam();
+ setPos(atmt_p->current.pos);
+ setAngle(atmt_p->shape_angle.y);
+ speedF = 0.0f;
+ speed.setall(0.0f);
+ break;
+
+ case 2:
+ setPos(home.pos);
+ setAngle(home.angle.y);
+ if (getBitSW() != 0xFF) {
+ dComIfGs_offSwitch(getBitSW(), fopAcM_GetRoomNo(this));
+ }
+
+ field_0x0FFE = 0;
+ field_0x0FFF = 0;
+ break;
+
+ case 3:
+ mpMorf[0]->setPlaySpeed(mPlaySpeed);
+ mBtkAnm.setPlaySpeed(mPlaySpeed);
+ mBckAnm.setPlaySpeed(mPlaySpeed);
+ mBtpAnm.setPlaySpeed(mPlaySpeed);
+ break;
+
+ case 4:
+ mEventTimer = timer_val;
+ break;
+
+ case 99:
+ break;
+ }
+ }
+
+ switch (prm_val) {
+ case 0:
+ case 1:
+ case 2:
+ action();
+ retval = 1;
+ break;
+
+ case 3:
+ if (mMotionSeqMngr.getNo() != 19) {
+ mpMorf[0]->setPlaySpeed(mPlaySpeed);
+ mBckAnm.setPlaySpeed(mPlaySpeed);
+ mBtpAnm.setPlaySpeed(mPlaySpeed);
+ ((daObj_AutoMata_c*)atmt_p)->setAnmPlaySpeed(mpMorf[0]->getPlaySpeed());
+ retval = 1;
+ }
+
+ action();
+ break;
+
+ case 4:
+ if (cLib_calcTimer(&mEventTimer) == 0) {
+ retval = 1;
+ }
+
+ action();
+ break;
+
+ case 99:
+ action();
+ break;
+ }
+
+ mCurAngle.y = shape_angle.y;
+ return retval;
+}
+
+/* 80B20AB0-80B20FC0 002550 0510+00 3/0 0/0 0/0 .text cutTalkToOneself__12daNpc_Toby_cFi */
+int daNpc_Toby_c::cutTalkToOneself(int arg0) {
+ int retval = 0;
+ int* param_p = NULL;
+ int prm_val = -1;
+ int msgNo_val = 0;
+ int timer_val = 0;
+ int sp_0x10 = 0;
+ param_p = dComIfGp_evmng_getMyIntegerP(arg0, "prm");
+ if (param_p != NULL) {
+ prm_val = *param_p;
+ }
+
+ param_p = dComIfGp_evmng_getMyIntegerP(arg0, "msgNo");
+ if (param_p != NULL) {
+ msgNo_val = *param_p;
+ }
+
+ param_p = dComIfGp_evmng_getMyIntegerP(arg0, "timer");
+ if (param_p != NULL) {
+ timer_val = *param_p;
+ }
+
+ if (dComIfGp_getEventManager().getIsAddvance(arg0)) {
+ switch (prm_val) { /* switch 1 */
+ case 0:
+ daNpcT_offTmpBit(0xB);
+ daNpcT_offTmpBit(0xC);
+ initTalk(mFlowNodeNo, NULL);
+ break;
+ case 1:
+ mFaceMotionSeqMngr.setNo(16, -1.0f, 0, 0);
+ mMotionSeqMngr.setNo(0, -1.0f, 0, 0);
+ mEventTimer = timer_val;
+ break;
+ case 2:
+ dComIfGs_sense_type_change_Set(1);
+ initTalk(mFlowNodeNo, NULL);
+ break;
+ case 3:
+ mEventTimer = timer_val;
+ break;
+ case 5:
+ case 12:
+ mEventTimer = timer_val;
+ break;
+ case 6:
+ mEventTimer = timer_val;
+ initTalk(mFlowNodeNo, NULL);
+ break;
+ case 7:
+ field_0x0FF4 = 0;
+ break;
+ case 11:
+ mFaceMotionSeqMngr.setNo(0xA, -1.0f, 0, 0);
+ mMotionSeqMngr.setNo(6, -1.0f, 0, 0);
+ mEventTimer = timer_val;
+ break;
+ case 13:
+ dComIfGs_sense_type_change_Set(-1);
+ break;
+ }
+ }
+
+ int sp18[2] = {-1, -1};
+ switch (prm_val) {
+ case 0:
+ if (talkProc(NULL, 0, NULL, 0) && mFlow.checkEndFlow()) {
+ daNpcT_offEvtBit(0xEF);
+ retval = 1;
+ }
+
+ break;
+
+ case 1:
+ if (cLib_calcTimer(&mEventTimer) == 0) {
+ retval = 1;
+ }
+
+ break;
+
+ case 2:
+ sp18[0] = msgNo_val;
+ if (talkProc(sp18, 0, NULL, 0)) {
+ if (msgNo_val) {
+ retval = 1;
+ } else if (mFlow.checkEndFlow()) {
+ retval = 1;
+ }
+ }
+
+ break;
+
+ case 3:
+ case 4:
+ case 8:
+ sp18[0] = msgNo_val;
+ if (prm_val == 4 || prm_val == 8) {
+ sp_0x10 = 1;
+ }
+
+ if (talkProc(sp18, sp_0x10, NULL, 0)) {
+ if (msgNo_val) {
+ retval = 1;
+ } else if (mFlow.checkEndFlow()) {
+ retval = 1;
+ }
+ }
+
+ switch (dMsgObject_getMsgObjectClass()->getStatus()) {
+ case 15:
+ case 16:
+ if (dMsgObject_isMsgSendControl() && prm_val == 3) {
+ retval = 1;
+ }
+ }
+
+ break;
+
+ case 5:
+ case 11:
+ case 12:
+ if (mEventTimer == 0) {
+ if (prm_val == 5) {
+ mDoAud_seStart(Z2SE_EN_RD_V_LAKE_APPEAR, &current.pos, 0, 0);
+ }
+
+ retval = 1;
+ } else {
+ cLib_calcTimer(&mEventTimer);
+ }
+
+ break;
+
+ case 6:
+ case 7:
+ if (talkProc(NULL, 0, NULL, 0) && mFlow.checkEndFlow()) {
+ retval = 1;
+ }
+
+ switch (dMsgObject_getMsgObjectClass()->getStatus()) {
+ case 15:
+ case 16:
+ if (dMsgObject_isMsgSendControl()) {
+ if (prm_val == 6 && cLib_calcTimer(&mEventTimer) == 0) {
+ retval = 1;
+ }
+
+ if (prm_val == 7 && dComIfGp_getEventManager().getIsAddvance(arg0)) {
+ dMsgObject_onMsgSend();
+ }
+ }
+ }
+
+ if (!daNpcT_chkEvtBit(0xEF)) {
+ daNpcT_onEvtBit(0xEF);
+ }
+
+ break;
+
+ case 9:
+ if (talkProc(NULL, 0, NULL, 0) && mFlow.checkEndFlow()) {
+ retval = 1;
+ }
+
+ break;
+
+ case 10:
+ if (talkProc(NULL, 0, NULL, 0) && mFlow.checkEndFlow()) {
+ retval = 1;
+ }
+
+ retval = 1;
+ break;
+
+ case 13:
+ retval = 1;
+ break;
+ }
+
+ return retval;
}
-/* ############################################################################################## */
-/* 80B24B28-80B24B30 000144 0008+00 0/0 0/0 0/0 .rodata @5499 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5499[8] = {
- 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-};
-COMPILER_STRIP_GATE(0x80B24B28, &lit_5499);
-#pragma pop
-
-/* 80B24B30-80B24B34 00014C 0004+00 0/1 0/0 0/0 .rodata @5630 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u32 const lit_5630 = 0x43360B61;
-COMPILER_STRIP_GATE(0x80B24B30, &lit_5630);
-#pragma pop
-
-/* 80B24B34-80B24B38 000150 0004+00 0/2 0/0 0/0 .rodata @5631 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_5631 = 5.0f;
-COMPILER_STRIP_GATE(0x80B24B34, &lit_5631);
-#pragma pop
-
-/* 80B24B38-80B24B3C 000154 0004+00 0/2 0/0 0/0 .rodata @5632 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_5632 = 4.0f;
-COMPILER_STRIP_GATE(0x80B24B38, &lit_5632);
-#pragma pop
-
-/* 80B24B3C-80B24B44 000158 0004+04 0/1 0/0 0/0 .rodata @5633 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_5633[1 + 1 /* padding */] = {
- 360.0f,
- /* padding */
- 0.0f,
-};
-COMPILER_STRIP_GATE(0x80B24B3C, &lit_5633);
-#pragma pop
-
-/* 80B24B44-80B24B4C 000160 0008+00 0/1 0/0 0/0 .rodata @5636 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5636[8] = {
- 0x43, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80B24B44, &lit_5636);
-#pragma pop
-
/* 80B20FC0-80B215B4 002A60 05F4+00 1/0 0/0 0/0 .text cutRepairSCannon__12daNpc_Toby_cFi
*/
-void daNpc_Toby_c::cutRepairSCannon(int param_0) {
- // NONMATCHING
+int daNpc_Toby_c::cutRepairSCannon(int arg0) {
+ dScnKy_env_light_c* env_light = dKy_getEnvlight();
+ fopAc_ac_c* scannon_p = mActorMngr[2].getActorP();
+ cXyz work;
+ csXyz angle;
+ int retval = 0;
+ int* param_p = NULL;
+ int prm_val = -1;
+ int timer_val = 0;
+ param_p = dComIfGp_evmng_getMyIntegerP(arg0, "prm");
+ if (param_p != NULL) {
+ prm_val = *param_p;
+ }
+
+ param_p = dComIfGp_evmng_getMyIntegerP(arg0, "timer");
+ if (param_p != NULL) {
+ timer_val = *param_p;
+ }
+
+ if (dComIfGp_getEventManager().getIsAddvance(arg0)) {
+ switch (prm_val) {
+ case 0:
+ break;
+
+ case 1:
+ mFaceMotionSeqMngr.setNo(16, 0.0f, 0, 0);
+ mMotionSeqMngr.setNo(0, 0.0f, 0, 0);
+ mJntAnm.lookNone(1);
+ setPos(home.pos);
+ setAngle(home.angle.y);
+ speedF = 0.0f;
+ speed.setall(0.0f);
+ mEventTimer = timer_val;
+ if (daNpcT_getPlayerInfoFromPlayerList(1, fopAcM_GetRoomNo(this), &work, &angle)) {
+ daPy_getPlayerActorClass()->setPlayerPosAndAngle(&work, angle.y, 0);
+ }
+
+ JUT_ASSERT(2703, 0 != scannon_p);
+ ((daSCannon_c*)scannon_p)->setCannonRepair();
+ if (mEventTimer) {
+ Z2GetAudioMgr()->bgmStreamPrepare(0x02000003);
+ Z2GetAudioMgr()->bgmStreamPlay();
+ }
+
+ break;
+
+ case 2:
+ mEventTimer = timer_val;
+ break;
+
+ case 10:
+ break;
+
+ case 11:
+ field_0x1002 = 1;
+ break;
+ }
+ }
+
+ int sp10[2] = {-1, -1};
+ switch (prm_val) { /* switch 1; irregular */
+ case 0:
+ action();
+ retval = 1;
+ break;
+
+ case 1:
+ if (mEventTimer && cLib_calcTimer(&mEventTimer) == 0) {
+ Z2GetAudioMgr()->bgmStreamStop(0x1E);
+ dStage_changeScene(8, 0.0f, 0, fopAcM_GetRoomNo(this), 0, dComIfG_play_c::getLayerNo(0));
+ }
+
+ break;
+
+ case 2:
+ action();
+ if (cLib_calcTimer(&mEventTimer) == 0) {
+ retval = 1;
+ }
+
+ break;
+
+ case 10:
+ retval = 1;
+ break;
+
+ case 11:
+ if (mPath.getPathInfo() != NULL) {
+ if (cLib_calcTimer(&mEventTimer) == 0) {
+ if (!dComIfGp_getEventManager().getIsAddvance(arg0)) {
+ mPath.setNextIdx();
+ }
+
+ switch (mPath.getArg1()) {
+ case 0:
+ mHide = 0;
+ mMotionSeqMngr.setNo(0x15, 0.0f, 0, 0);
+ break;
+ case 1:
+ mHide = 0;
+ mMotionSeqMngr.setNo(0x16, 0.0f, 0, 0);
+ break;
+ case 2:
+ mHide = 0;
+ mMotionSeqMngr.setNo(0x17, 0.0f, 0, 0);
+ break;
+ default:
+ mHide = 1;
+ break;
+ }
+
+ current.pos = mPath.getPntPos(mPath.getIdx());
+ old.pos = current.pos;
+ setAngle(cM_deg2s(5.0f * f32(mPath.getArg0())));
+ mEventTimer = mPath.getArg2();
+ }
+ } else if (!mHide) {
+ mHide = 1;
+ }
+
+ mAcch.SetGrndNone();
+ mAcch.SetWallNone();
+ gravity = 0.0f;
+ break;
+ }
+
+ if (prm_val == 1) {
+ env_light->daytime = dComIfGs_getTime();
+ env_light->daytime += 4.0f;
+ if (360.0f <= u32(env_light->daytime)) {
+ env_light->daytime = 0.0f;
+ }
+
+ dComIfGs_setTime(env_light->daytime);
+ }
+
+ return retval;
}
-/* ############################################################################################## */
-/* 80B24B4C-80B24B54 000168 0008+00 0/0 0/0 0/0 .rodata @5658 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5658[8] = {
- 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-};
-COMPILER_STRIP_GATE(0x80B24B4C, &lit_5658);
-#pragma pop
-
-/* 80B24B54-80B24B58 000170 0004+00 0/2 0/0 0/0 .rodata @5751 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_5751 = 1000.0f;
-COMPILER_STRIP_GATE(0x80B24B54, &lit_5751);
-#pragma pop
-
-/* 80B24B58-80B24B5C 000174 0004+00 0/1 0/0 0/0 .rodata @5752 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_5752 = 1600.0f;
-COMPILER_STRIP_GATE(0x80B24B58, &lit_5752);
-#pragma pop
-
-/* 80B24B5C-80B24B60 000178 0004+00 0/1 0/0 0/0 .rodata @5753 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_5753 = 11.0f / 20.0f;
-COMPILER_STRIP_GATE(0x80B24B5C, &lit_5753);
-#pragma pop
-
/* 80B215B4-80B219F4 003054 0440+00 1/0 0/0 0/0 .text cutSCannon__12daNpc_Toby_cFi */
-void daNpc_Toby_c::cutSCannon(int param_0) {
- // NONMATCHING
+int daNpc_Toby_c::cutSCannon(int arg0) {
+ cXyz work;
+ csXyz my_svec;
+ int retval = 0;
+ int* param_p = NULL;
+ int prm_val = -1;
+ int timer_val = 0;
+ f32 reg_f31 = 0.0f;
+ param_p = dComIfGp_evmng_getMyIntegerP(arg0, "prm");
+ if (param_p != NULL) {
+ prm_val = *param_p;
+ }
+
+ param_p = dComIfGp_evmng_getMyIntegerP(arg0, "timer");
+ if (param_p != NULL) {
+ timer_val = *param_p;
+ }
+
+ if (dComIfGp_getEventManager().getIsAddvance(arg0)) {
+ switch (prm_val) {
+ case 0:
+ if (daNpcT_getPlayerInfoFromPlayerList(40, fopAcM_GetRoomNo(this), &work, &my_svec)) {
+ daPy_getPlayerActorClass()->setPlayerPosAndAngle(&work, my_svec.y, 0);
+ dComIfGp_evmng_setGoal(&work);
+ }
+
+ break;
+
+ case 1:
+ initTalk(mFlowNodeNo, NULL);
+ break;
+
+ case 2:
+ mMotionSeqMngr.setNo(15, 4.0f, 0, 0);
+ reg_f31 = 1000.0f;
+ work.set(0.0f, 100.0f, reg_f31);
+ mDoMtx_stack_c::YrotS(home.angle.y + 0x1000);
+ mDoMtx_stack_c::multVec(&work, &work);
+ field_0x0FE8 = home.pos + work;
+ mEventTimer = timer_val;
+ break;
+
+ case 3:
+ mHide = 1;
+ field_0x1001 = 1;
+ break;
+
+ case 4:
+ mEventTimer = 0;
+ break;
+
+ case 5:
+ mEventTimer = timer_val;
+ break;
+ }
+ }
+
+ int sp10[2] = {-1, -1};
+ int sp8 = 0;
+ switch (prm_val) {
+ case 0:
+ mJntAnm.lookPlayer(0);
+ retval = 1;
+ break;
+
+ case 1:
+ mJntAnm.lookPlayer(0);
+ if (talkProc(NULL, 0, NULL, 0) && mFlow.checkEndFlow()) {
+ retval = 1;
+ }
+
+ break;
+
+ case 2:
+ case 4:
+ mJntAnm.lookPlayer(0);
+ if (prm_val == 4) {
+ mJntAnm.lookNone(0);
+ }
+
+ if (1600.0f < current.pos.abs2(field_0x0FE8)) {
+ cLib_addCalcAngleS2(&current.angle.y, cLib_targetAngleY(&current.pos, &field_0x0FE8), 4, 0x400);
+ shape_angle.y = current.angle.y;
+ mCurAngle.y = shape_angle.y;
+ cLib_chaseF(&speedF, 5.0f, 0.55f);
+ } else {
+ mMotionSeqMngr.setNo(0, -1.0f, 0, 0);
+ speedF = 0.0f;
+ speed.setall(0.0f);
+ retval = 1;
+ }
+
+ if (cLib_calcTimer(&mEventTimer) == 0) {
+ retval = 1;
+ }
+
+ break;
+
+ case 5:
+ if (cLib_calcTimer(&mEventTimer) == 0) {
+ retval = 1;
+ }
+
+ break;
+
+ case 3:
+ retval = 1;
+ break;
+ }
+
+ return retval;
}
-/* ############################################################################################## */
-/* 80B24B60-80B24B68 00017C 0008+00 0/1 0/0 0/0 .rodata @5783 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5783[8] = {
- 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-};
-COMPILER_STRIP_GATE(0x80B24B60, &lit_5783);
-#pragma pop
-
-/* 80B24B8C-80B24B8C 0001A8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
-#pragma push
-#pragma force_active on
-SECTION_DEAD static char const* const stringBase_80B24C42 = "send";
-#pragma pop
-
/* 80B219F4-80B22434 003494 0A40+00 3/0 0/0 0/0 .text
* cutConversationAboutSCannon__12daNpc_Toby_cFi */
-void daNpc_Toby_c::cutConversationAboutSCannon(int param_0) {
- // NONMATCHING
+int daNpc_Toby_c::cutConversationAboutSCannon(int arg0) {
+ fopAc_ac_c* actor_p = NULL;
+ cXyz work;
+ cXyz sp_0x5C;
+ csXyz my_svec;
+ int retval = 0;
+ int* param_p = NULL;
+ int prm_val = -1;
+ int timer_val = 0;
+ int msgNo_val = 0;
+ int send_val = 0;
+ f32 reg_f31 = 0.0f;
+ param_p = dComIfGp_evmng_getMyIntegerP(arg0, "prm");
+ if (param_p != NULL) {
+ prm_val = *param_p;
+ }
+
+ param_p = dComIfGp_evmng_getMyIntegerP(arg0, "timer");
+ if (param_p != NULL) {
+ timer_val = *param_p;
+ }
+
+ param_p = dComIfGp_evmng_getMyIntegerP(arg0, "msgNo");
+ if (param_p != NULL) {
+ msgNo_val = *param_p;
+ }
+
+ param_p = dComIfGp_evmng_getMyIntegerP(arg0, "send");
+ if (param_p != NULL) {
+ send_val = *param_p;
+ }
+
+ if (dComIfGp_getEventManager().getIsAddvance(arg0)) {
+ switch (prm_val) {
+ case 0:
+ daNpcT_offTmpBit(0xB);
+ daNpcT_offTmpBit(0xC);
+ initTalk(mFlowNodeNo, NULL);
+ break;
+
+ case 1:
+ mEventTimer = timer_val;
+ break;
+
+ case 2:
+ initTalk(mFlowNodeNo, NULL);
+ break;
+
+ case 4:
+ mFaceMotionSeqMngr.setNo(16, 0.0f, TRUE, 0);
+ mMotionSeqMngr.setNo(15, 0.0f, TRUE, 0);
+ reg_f31 = -300.0f;
+ actor_p = getOtherTobyP(5);
+ JUT_ASSERT(3042, NULL != actor_p);
+ field_0x0FE8 = actor_p->current.pos;
+ setAngle(actor_p->shape_angle.y);
+ work.set(0.0f, 100.0f, reg_f31);
+ mDoMtx_stack_c::YrotS(actor_p->shape_angle.y);
+ mDoMtx_stack_c::multVec(&work, &work);
+ work += actor_p->current.pos;
+ setPos(work);
+ if (daNpcT_getPlayerInfoFromPlayerList(55, fopAcM_GetRoomNo(this), &work, &my_svec)) {
+ dComIfGp_evmng_setGoal(&work);
+ sp_0x5C.set(0.0f, 100.0f, reg_f31);
+ mDoMtx_stack_c::YrotS(my_svec.y);
+ mDoMtx_stack_c::multVec(&sp_0x5C, &sp_0x5C);
+ work += sp_0x5C;
+ mGndChk.SetPos(&work);
+ work.y = dComIfG_Bgsp().GroundCross(&mGndChk);
+ JUT_ASSERT(3064, -G_CM3D_F_INF != work.y);
+ daPy_getPlayerActorClass()->setPlayerPosAndAngle(&work, my_svec.y, 0);
+ }
+
+ initTalk(mFlowNodeNo, NULL);
+ break;
+
+ case 7:
+ mPlayerAngle = fopAcM_searchPlayerAngleY(this);
+ break;
+
+ case 8:
+ mMotionSeqMngr.setNo(15, 4.0f, 0, 0);
+ reg_f31 = -1000.0f;
+ actor_p = getOtherTobyP(5);
+ JUT_ASSERT(3088, NULL != actor_p);
+ work.set(0.0f, 100.0f, reg_f31);
+ mDoMtx_stack_c::YrotS(actor_p->shape_angle.y);
+ mDoMtx_stack_c::multVec(&work, &work);
+ field_0x0FE8 = actor_p->current.pos + work;
+ mEventTimer = timer_val;
+ break;
+
+ case 9:
+ mFaceMotionSeqMngr.setNo(16, 0.0f, 1, 0);
+ mMotionSeqMngr.setNo(0, 0.0f, 1, 0);
+ setPos(home.pos);
+ setAngle(home.angle.y);
+ speedF = 0.0f;
+ speed.setall(0.0f);
+ break;
+
+ case 10:
+ mEventTimer = 0;
+ break;
+
+ case 20:
+ mEventTimer = timer_val;
+ break;
+ }
+ }
+
+ int sp28[2] = {-1, -1};
+ int sp10 = 0;
+
+ switch (prm_val) {
+ case 0:
+ mJntAnm.lookPlayer(0);
+ if (talkProc(NULL, 0, NULL, 0) && mFlow.checkEndFlow()) {
+ retval = 1;
+ }
+
+ break;
+
+ case 1:
+ actor_p = mActorMngr[2].getActorP();
+ if (actor_p != NULL) {
+ mJntAnm.lookPos(&actor_p->current.pos, 0);
+ dComIfGp_getEvent().setPt2(actor_p);
+ } else {
+ mJntAnm.lookNone(0);
+ }
+
+ if (cLib_calcTimer(&mEventTimer) == 0) {
+ retval = 1;
+ }
+
+ break;
+
+ case 2:
+ mJntAnm.lookPlayer(0);
+ sp28[0] = msgNo_val;
+ if (talkProc(sp28, 0, NULL, 0)) {
+ if (msgNo_val) {
+ retval = 1;
+ } else if (mFlow.checkEndFlow()) {
+ retval = 1;
+ }
+ }
+
+ break;
+
+ case 3:
+ mJntAnm.lookPlayer(0);
+ if (talkProc(NULL, 0, NULL, 0) && mFlow.checkEndFlow()) {
+ retval = 1;
+ }
+
+ break;
+
+ case 4:
+ actor_p = mActorMngr[2].getActorP();
+ if (actor_p != NULL) {
+ field_0xd6c = actor_p->current.pos;
+ field_0xd6c.y += 600.0f;
+ mJntAnm.lookPos(&field_0xd6c, 0);
+ dComIfGp_getEvent().setPt2(actor_p);
+ } else {
+ mJntAnm.lookNone(0);
+ }
+ /* fallthrough */
+ case 8:
+ case 10:
+ mJntAnm.lookPlayer(0);
+ if (prm_val == 10) {
+ mJntAnm.lookNone(0);
+ }
+
+ if (1600.0f < current.pos.abs2(field_0x0FE8)) {
+ cLib_addCalcAngleS2(&current.angle.y, cLib_targetAngleY(&current.pos, &field_0x0FE8), 4, 0x400);
+ shape_angle.y = current.angle.y;
+ mCurAngle.y = shape_angle.y;
+ cLib_chaseF(&speedF, 5.0f, 0.55f);
+ } else {
+ mMotionSeqMngr.setNo(0, -1.0f, 0, 0);
+ speedF = 0.0f;
+ speed.setall(0.0f);
+ retval = 1;
+ }
+
+ if ((prm_val == 8 || prm_val == 10) && cLib_calcTimer(&mEventTimer) == 0) {
+ retval = 1;
+ }
+
+ break;
+
+ case 5:
+ case 6:
+ sp28[0] = msgNo_val;
+ field_0xe26 = 0;
+ if (talkProc(sp28, send_val, NULL, 0)) {
+ if (msgNo_val) {
+ retval = 1;
+ } else if (mFlow.checkEndFlow()) {
+ retval = 1;
+ }
+ }
+
+ break;
+
+ case 7:
+ mJntAnm.lookPlayer(0);
+ if (mPlayerAngle != mCurAngle.y) {
+ step(mPlayerAngle, -1, -1, 15, 0);
+ }
+
+ shape_angle.y = mPlayerAngle;
+ if (talkProc(NULL, 0, NULL, 0)) {
+ int itemNo;
+ int eventId = mFlow.getEventId(&itemNo);
+ switch (eventId) {
+ case 19:
+ mEvtNo = CUT_REPAIR_SCANNON;
+ evtChange();
+ break;
+ default:
+ if (mFlow.checkEndFlow()) {
+ retval = 1;
+ }
+ }
+ }
+
+ break;
+
+ case 20:
+ if (cLib_calcTimer(&mEventTimer) == 0) {
+ retval = 1;
+ }
+
+ break;
+ }
+
+ return retval;
}
-/* ############################################################################################## */
-/* 80B24B68-80B24B6C 000184 0004+00 0/1 0/0 0/0 .rodata @6037 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_6037 = -300.0f;
-COMPILER_STRIP_GATE(0x80B24B68, &lit_6037);
-#pragma pop
-
-/* 80B24B6C-80B24B70 000188 0004+00 0/0 0/0 0/0 .rodata @6038 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_6038 = -1000.0f;
-COMPILER_STRIP_GATE(0x80B24B6C, &lit_6038);
-#pragma pop
-
-/* 80B24B70-80B24B78 00018C 0008+00 1/1 0/0 0/0 .rodata @6056 */
-SECTION_RODATA static u8 const lit_6056[8] = {
- 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-};
-COMPILER_STRIP_GATE(0x80B24B70, &lit_6056);
-
/* 80B22434-80B22614 003ED4 01E0+00 1/0 0/0 0/0 .text cutConversationAboutZra__12daNpc_Toby_cFi */
-void daNpc_Toby_c::cutConversationAboutZra(int param_0) {
- // NONMATCHING
+int daNpc_Toby_c::cutConversationAboutZra(int arg0) {
+ int retval = 0;
+ int* param_p = NULL;
+ int prm_val = -1;
+ int timer_val = 0; // unused.
+ int msgNo_val = 0;
+ param_p = dComIfGp_evmng_getMyIntegerP(arg0, "prm");
+ if (param_p != NULL) {
+ prm_val = *param_p;
+ }
+
+ param_p = dComIfGp_evmng_getMyIntegerP(arg0, "timer");
+ if (param_p != NULL) {
+ timer_val = *param_p;
+ }
+
+ param_p = dComIfGp_evmng_getMyIntegerP(arg0, "msgNo");
+ if (param_p != NULL) {
+ msgNo_val = *param_p;
+ }
+
+ if (dComIfGp_getEventManager().getIsAddvance(arg0)) {
+ switch (prm_val) {
+ case 0:
+ initTalk(mFlowNodeNo, NULL);
+ break;
+ case 1:
+ break;
+ }
+ }
+
+ int sp8[2] = {-1, -1};
+ switch (prm_val) {
+ case 0:
+ case 1:
+ mJntAnm.lookPlayer(0);
+ if (prm_val == 0) {
+ mJntAnm.lookNone(0);
+ }
+
+ sp8[0] = msgNo_val;
+ if (talkProc(sp8, 0, NULL, 0)) {
+ if (msgNo_val) {
+ retval = 1;
+ } else if (mFlow.checkEndFlow()) {
+ retval = 1;
+ }
+ }
+
+ break;
+ }
+
+ return retval;
}
/* 80B22614-80B226B0 0040B4 009C+00 5/5 0/0 0/0 .text chkAttnZra__12daNpc_Toby_cFv */
-void daNpc_Toby_c::chkAttnZra() {
- // NONMATCHING
+int daNpc_Toby_c::chkAttnZra() {
+ // In practice, get Bit SW returns 0xEC for all mType == 0, otherwise 0xFF.
+ // 0x0A1 - F_0063 - Lake Hylia - Used Fyer's cannon for first time
+ return (mType == 0 && !daNpcT_chkEvtBit(0xA1) && getBitSW() != 0xFF
+ && !dComIfGs_isSwitch(getBitSW(), fopAcM_GetRoomNo(this)));
}
-/* ############################################################################################## */
-/* 80B24B78-80B24B7C 000194 0004+00 0/1 0/0 0/0 .rodata @6337 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_6337 = 2000.0f;
-COMPILER_STRIP_GATE(0x80B24B78, &lit_6337);
-#pragma pop
-
-/* 80B24B7C-80B24B80 000198 0004+00 0/1 0/0 0/0 .rodata @6338 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_6338 = 90.0f;
-COMPILER_STRIP_GATE(0x80B24B7C, &lit_6338);
-#pragma pop
-
/* 80B226B0-80B22D98 004150 06E8+00 2/0 0/0 0/0 .text wait__12daNpc_Toby_cFPv */
-void daNpc_Toby_c::wait(void* param_0) {
- // NONMATCHING
+int daNpc_Toby_c::wait(void*) {
+ switch (mMode) {
+ case 0:
+ case 1:
+ if (mStagger.checkStagger() == 0) {
+ if (field_0x0FF4 == 0) {
+ if (mType == 1 && daNpcT_chkEvtBit(0xEF)) {
+ mFaceMotionSeqMngr.setNo(12, -1.0f, 0, 0);
+ mMotionSeqMngr.setNo(11, -1.0f, 0, 0);
+ } else if (chkAttnZra()) {
+ mFaceMotionSeqMngr.setNo(16, -1.0f, 0, 0);
+ mMotionSeqMngr.setNo(6, -1.0f, 0, 0);
+ } else {
+ mFaceMotionSeqMngr.setNo(16, -1.0f, 0, 0);
+ mMotionSeqMngr.setNo(0, -1.0f, 0, 0);
+ }
+ }
+
+ mMode = 2;
+ }
+ /* fallthrough */
+ case 2:
+ if (mType == 4 && mHide == 0) {
+ mEvtNo = CUT_SCANNON;
+ field_0xe33 = true;
+ }
+
+ if (mStagger.checkStagger()) {
+ break;
+ }
+
+ if (field_0x0FF4) {
+ if (cLib_calcTimer(&field_0x0FF4) == 0) {
+ mMode = 1;
+ }
+ }
+
+ if (mTwilight == false && mHide == 0 && daPy_py_c::checkNowWolf()) {
+ cXyz att_pos = getAttnPos(daPy_getPlayerActorClass());
+ if (field_0x1000) {
+ if (chkPointInArea(att_pos, attention_info.position,
+ 2000.0f, 300.0f, -300.0f, mCurAngle.y) == FALSE) {
+ mFaceMotionSeqMngr.setNo(16, -1.0f, 0, 0);
+ mMotionSeqMngr.setNo(0, -1.0f, 0, 0);
+ field_0x1000 = 0;
+ } else if (mMotionSeqMngr.getNo() == 24) {
+ if (mMotionSeqMngr.getStepNo() < 2) {
+ cLib_chaseS(&current.angle.y, fopAcM_searchPlayerAngleY(this), 0x1000);
+ shape_angle.y = current.angle.y;
+ mCurAngle.y = shape_angle.y;
+ } else if (mMotionSeqMngr.getStepNo() > 2) {
+ mSound.startCreatureVoiceLevel(Z2SE_TOBY_V_BURUBURU, -1);
+ }
+ }
+ } else {
+ if (chkPointInArea(att_pos, attention_info.position, 1000.0f, 300.0f, -300.0f, mCurAngle.y)) {
+ if (chkActorInSight(daPy_getPlayerActorClass(), 90.0f, mCurAngle.y)) {
+ mFaceMotionSeqMngr.setNo(15, -1.0f, 0, 0);
+ mMotionSeqMngr.setNo(24, -1.0f, 0, 0);
+ mSound.startCreatureVoice(Z2SE_TOBY_V_SURPRISE, -1);
+ field_0x1000 = 1;
+ }
+ }
+ }
+ } else if (field_0x1000) {
+ mFaceMotionSeqMngr.setNo(16, -1.0f, 0, 0);
+ mMotionSeqMngr.setNo(0, -1.0f, 0, 0);
+ field_0x1000 = 0;
+ }
+
+ if (field_0x1000) {
+ attention_info.flags = 0;
+ } else {
+ if (chkAttnZra()) {
+ mPlayerActorMngr.remove();
+ }
+
+ if (mPlayerActorMngr.getActorP() != NULL && mTwilight == false) {
+ int reg_r28 = 1;
+ mJntAnm.lookPlayer(0);
+ if (chkActorInSight(mPlayerActorMngr.getActorP(), mAttnFovY, mCurAngle.y) == FALSE) {
+ mJntAnm.lookNone(0);
+ reg_r28 = 0;
+ }
+
+ if (mType == 0 && reg_r28 == 0) {
+ mPlayerActorMngr.remove();
+ if (home.angle.y == mCurAngle.y) {
+ mMode = 1;
+ }
+ } else if (!srchPlayerActor() && home.angle.y == mCurAngle.y) {
+ mMode = 1;
+ }
+ } else {
+ mJntAnm.lookNone(0);
+ if (home.angle.y != mCurAngle.y) {
+ if (field_0xe34) {
+ if (step(home.angle.y, 0x10, 0x14, 0xF, 0)) {
+ mMode = 1;
+ }
+ } else {
+ setAngle(home.angle.y);
+ mMode = 1;
+ }
+
+ attention_info.flags = 0;
+ } else {
+ srchPlayerActor();
+ }
+ }
+
+ switch (mJntAnm.getMode()) {
+ case 0:
+ break;
+ }
+ }
+
+ break;
+
+ case 3:
+ break;
+ }
+
+ return 1;
}
/* 80B22D98-80B22FAC 004838 0214+00 1/0 0/0 0/0 .text walk__12daNpc_Toby_cFPv */
-void daNpc_Toby_c::walk(void* param_0) {
- // NONMATCHING
+int daNpc_Toby_c::walk(void*) {
+ switch (mMode) {
+ case 0:
+ case 1:
+ if (mStagger.checkStagger() == 0) {
+ mFaceMotionSeqMngr.setNo(0x10, -1.0f, 0, 0);
+ mMotionSeqMngr.setNo(0xF, -1.0f, 0, 0);
+ mAcch.SetWallNone();
+ mMode = 2;
+ }
+ /* fallthrough */
+ case 2:
+ if (mStagger.checkStagger() == 0) {
+ cXyz work;
+ JUT_ASSERT(3620, 0 != mPath.getPathInfo());
+ int dst_pos_h = mPath.getDstPosH(current.pos, &work, mPath.getNumPnts(), 2);
+ calcSpeedAndAngle(work, dst_pos_h, 4, 0x800);
+ if (dst_pos_h && cM3d_IsZero(speedF)) {
+ home.angle.y = 0x4000;
+ if (home.angle.y == mCurAngle.y) {
+ mPlayerActorMngr.entry(daPy_getPlayerActorClass());
+ field_0x0FFE = 1;
+ } else {
+ step(home.angle.y, 16, 20, 15, 0);
+ }
+ }
+
+ mJntAnm.lookNone(0);
+ }
+
+ attention_info.flags = 0;
+ break;
+
+ case 3:
+ mAcch.ClrWallNone();
+ break;
+ }
+
+ return 1;
}
/* 80B22FAC-80B23344 004A4C 0398+00 3/0 0/0 0/0 .text play__12daNpc_Toby_cFPv */
-void daNpc_Toby_c::play(void* param_0) {
- // NONMATCHING
+int daNpc_Toby_c::play(void* param_0) {
+ daObj_AutoMata_c* actor_p = (daObj_AutoMata_c*) mActorMngr[1].getActorP();
+ int reg_r29 = 1;
+ if (actor_p != NULL) {
+ actor_p->setCoNone();
+ }
+
+ switch (mMode) {
+ case 0:
+ case 1:
+ if (mStagger.checkStagger() == 0) {
+ mFaceMotionSeqMngr.setNo(9, 0.0f, 0, 0);
+ mMotionSeqMngr.setNo(19, 0.0f, 0, 0);
+ mSound.startCreatureVoice(Z2SE_TOBY_V_BOOT, -1);
+ mPlaySpeed = 1.0f;
+ if (actor_p != NULL) {
+ actor_p->setAnm(0, 1);
+ actor_p->setAnmPlaySpeed(0.0f);
+ reg_r29 = 0;
+ }
+ mMode = 2;
+ }
+
+ case 2:
+ if (mStagger.checkStagger() == 0) {
+ if (mMotionSeqMngr.getNo() == 19) {
+ if (mMotionSeqMngr.checkEndSequence()) {
+ mFaceMotionSeqMngr.setNo(6, 0.0f, 0, 0);
+ mMotionSeqMngr.setNo(16, 0.0f, 0, 0);
+ field_0x0FFC = mMorfLoops;
+ mPlaySpeed = 1.0f;
+ }
+
+ reg_r29 = 0;
+ } else if (mMotionSeqMngr.getNo() == 16) {
+ if (mMotionSeqMngr.checkEndSequence()) {
+ mFaceMotionSeqMngr.setNo(7, 0.0f, 0, 0);
+ mMotionSeqMngr.setNo(17, 0.0f, 0, 0);
+ field_0x0FFC = mMorfLoops;
+ mPlaySpeed = mpHIO->m.init_play_speed;
+ if (actor_p != NULL) {
+ actor_p->setAnm(1, 1);
+ actor_p->setAnmPlaySpeed(0.0f);
+ reg_r29 = 0;
+ }
+ }
+ } else if (field_0x0FFC != mMorfLoops) {
+ cLib_chaseF(&mPlaySpeed, mpHIO->m.performance_speed, mpHIO->m.speedup_performance);
+ if (mMotionSeqMngr.getNo() != 0x12) {
+ if (mpHIO->m.switching_speed <= mPlaySpeed) {
+ mFaceMotionSeqMngr.setNo(8, -1.0f, 0, 0);
+ mMotionSeqMngr.setNo(18, -1.0f, 0, 0);
+ }
+ }
+
+ mpMorf[0]->setPlaySpeed(mPlaySpeed);
+ mBckAnm.setPlaySpeed(mPlaySpeed);
+ mBtpAnm.setPlaySpeed(mPlaySpeed);
+ }
+
+ if (actor_p != NULL && reg_r29) {
+ actor_p->setAnmPlaySpeed(mpMorf[0]->getPlaySpeed());
+ }
+
+ field_0x0FFC = mMorfLoops;
+ mJntAnm.lookNone(0);
+ }
+
+ attention_info.flags = 0;
+ break;
+
+ case 3:
+ break;
+ }
+
+ return 1;
}
-/* ############################################################################################## */
-/* 80B24B80-80B24B8C 00019C 000C+00 0/1 0/0 0/0 .rodata @6541 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_6541[12] = {
- 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-};
-COMPILER_STRIP_GATE(0x80B24B80, &lit_6541);
-#pragma pop
-
/* 80B23344-80B23628 004DE4 02E4+00 3/0 0/0 0/0 .text talk__12daNpc_Toby_cFPv */
-void daNpc_Toby_c::talk(void* param_0) {
- // NONMATCHING
-}
+int daNpc_Toby_c::talk(void*) {
+ switch (mMode) {
+ case 0:
+ case 1:
+ if (mStagger.checkStagger() == 0) {
+#if VERSION != VERSION_SHIELD_DEBUG
+ if (chkAttnZra()) {
+ mFaceMotionSeqMngr.setNo(16, -1.0f, TRUE, mFaceMotionSeqMngr.getOffset());
+ mMotionSeqMngr.setNo(20, -1.0f, TRUE, mMotionSeqMngr.getOffset());
+ }
+#endif
+
+ if (mPreItemNo == fpcNm_ITEM_RAFRELS_MEMO) {
+ initTalk(2, NULL);
+ } else {
+ initTalk(mFlowNodeNo, NULL);
+ }
+
+ field_0x0FF4 = 0;
+ mMode = 2;
+ }
+ /* fallthrough */
+ case 2:
+ if (mStagger.checkStagger() == 0) {
+ if (mTwilight || mPlayerAngle == mCurAngle.y) {
+ int spC[3] = {-1, -1, -1};
+ if (mPreItemNo == fpcNm_ITEM_RAFRELS_MEMO) {
+ spC[0] = 0x1420;
+ spC[1] = 0x142D;
+ }
+
+ if (talkProc(spC, FALSE, NULL, FALSE)) {
+ int sp8;
+ int evt_id = mFlow.getEventId(&sp8);
+ switch (evt_id) {
+ case 19:
+ mEvtNo = CUT_REPAIR_SCANNON;
+ evtChange();
+ break;
+
+ default:
+ if (mFlow.checkEndFlow()) {
+ mPlayerActorMngr.entry(daPy_getPlayerActorClass());
+ dComIfGp_event_reset();
+ mMode = 3;
+ } else {
+ daPy_getPlayerActorClass()->changeOriginalDemo();
+ daPy_getPlayerActorClass()->changeDemoMode(6, 0, 1, 0);
+ }
+ }
+ }
+
+ mJntAnm.lookPlayer(0);
+ if (mTwilight) {
+ mJntAnm.lookNone(0);
+ }
+ } else {
+ mJntAnm.lookPlayer(0);
+ step(mPlayerAngle, 16, 20, 15, 0);
+ }
+ }
+
+ break;
+
+ case 3:
+ break;
+ }
+
+ return 0;
+}
+
+#if DEBUG
+int daNpc_Toby_c::test(void* param_0) {
+ // TODO
+}
+#endif
/* 80B23628-80B23648 0050C8 0020+00 1/0 0/0 0/0 .text daNpc_Toby_Create__FPv */
-static void daNpc_Toby_Create(void* param_0) {
- // NONMATCHING
+static int daNpc_Toby_Create(void* i_this) {
+ return static_cast<daNpc_Toby_c*>(i_this)->create();
}
/* 80B23648-80B23668 0050E8 0020+00 1/0 0/0 0/0 .text daNpc_Toby_Delete__FPv */
-static void daNpc_Toby_Delete(void* param_0) {
- // NONMATCHING
+static int daNpc_Toby_Delete(void* i_this) {
+ return static_cast<daNpc_Toby_c*>(i_this)->Delete();
}
/* 80B23668-80B23688 005108 0020+00 1/0 0/0 0/0 .text daNpc_Toby_Execute__FPv */
-static void daNpc_Toby_Execute(void* param_0) {
- // NONMATCHING
+static int daNpc_Toby_Execute(void* i_this) {
+ return static_cast<daNpc_Toby_c*>(i_this)->Execute();
}
/* 80B23688-80B236A8 005128 0020+00 1/0 0/0 0/0 .text daNpc_Toby_Draw__FPv */
-static void daNpc_Toby_Draw(void* param_0) {
- // NONMATCHING
+static int daNpc_Toby_Draw(void* i_this) {
+ return static_cast<daNpc_Toby_c*>(i_this)->Draw();
}
/* 80B236A8-80B236B0 005148 0008+00 1/0 0/0 0/0 .text daNpc_Toby_IsDelete__FPv */
-static bool daNpc_Toby_IsDelete(void* param_0) {
- return true;
-}
-
-/* 80B236B0-80B236E0 005150 0030+00 1/0 0/0 0/0 .text calc__11J3DTexNoAnmCFPUs */
-// void J3DTexNoAnm::calc(u16* param_0) const {
-extern "C" void calc__11J3DTexNoAnmCFPUs() {
- // NONMATCHING
-}
-
-/* 80B236E0-80B23728 005180 0048+00 1/0 0/0 0/0 .text __dt__10cCcD_GSttsFv */
-// cCcD_GStts::~cCcD_GStts() {
-extern "C" void __dt__10cCcD_GSttsFv() {
- // NONMATCHING
-}
-
-/* 80B23728-80B23AB0 0051C8 0388+00 1/1 0/0 0/0 .text __dt__8daNpcT_cFv */
-// daNpcT_c::~daNpcT_c() {
-extern "C" void __dt__8daNpcT_cFv() {
- // NONMATCHING
-}
-
-/* 80B23AB0-80B23AEC 005550 003C+00 4/4 0/0 0/0 .text __dt__4cXyzFv */
-// cXyz::~cXyz() {
-extern "C" void __dt__4cXyzFv() {
- // NONMATCHING
-}
-
-/* 80B23AEC-80B23B28 00558C 003C+00 2/2 0/0 0/0 .text __dt__5csXyzFv */
-// csXyz::~csXyz() {
-extern "C" void __dt__5csXyzFv() {
- // NONMATCHING
-}
-
-/* 80B23B28-80B23B70 0055C8 0048+00 3/2 0/0 0/0 .text __dt__18daNpcT_ActorMngr_cFv */
-// daNpcT_ActorMngr_c::~daNpcT_ActorMngr_c() {
-extern "C" void __dt__18daNpcT_ActorMngr_cFv() {
- // NONMATCHING
-}
-
-/* 80B23B70-80B23BB8 005610 0048+00 1/0 0/0 0/0 .text __dt__13daNpcT_Path_cFv */
-// daNpcT_Path_c::~daNpcT_Path_c() {
-extern "C" void __dt__13daNpcT_Path_cFv() {
- // NONMATCHING
-}
-
-/* 80B23BB8-80B23BF4 005658 003C+00 1/1 0/0 0/0 .text __ct__18daNpcT_ActorMngr_cFv */
-// daNpcT_ActorMngr_c::daNpcT_ActorMngr_c() {
-extern "C" void __ct__18daNpcT_ActorMngr_cFv() {
- // NONMATCHING
-}
-
-/* 80B23BF4-80B23C3C 005694 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGCylFv */
-// cM3dGCyl::~cM3dGCyl() {
-extern "C" void __dt__8cM3dGCylFv() {
- // NONMATCHING
-}
-
-/* 80B23C3C-80B23C84 0056DC 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGAabFv */
-// cM3dGAab::~cM3dGAab() {
-extern "C" void __dt__8cM3dGAabFv() {
- // NONMATCHING
-}
-
-/* 80B23C84-80B24088 005724 0404+00 1/1 0/0 0/0 .text
- * __ct__8daNpcT_cFPC26daNpcT_faceMotionAnmData_cPC22daNpcT_motionAnmData_cPCQ222daNpcT_MotionSeqMngr_c18sequenceStepData_ciPCQ222daNpcT_MotionSeqMngr_c18sequenceStepData_ciPC16daNpcT_evtData_cPPc
- */
-// daNpcT_c::daNpcT_c(daNpcT_faceMotionAnmData_c const* param_0,
-// daNpcT_motionAnmData_c const* param_1,
-// daNpcT_MotionSeqMngr_c::sequenceStepData_c const* param_2, int param_3,
-// daNpcT_MotionSeqMngr_c::sequenceStepData_c const* param_4, int param_5,
-// daNpcT_evtData_c const* param_6, char** param_7) {
-extern "C" void __ct__8daNpcT_cFPC26daNpcT_faceMotionAnmData_cPC22daNpcT_motionAnmData_cPCQ222daNpcT_MotionSeqMngr_c18sequenceStepData_ciPCQ222daNpcT_MotionSeqMngr_c18sequenceStepData_ciPC16daNpcT_evtData_cPPc() {
- // NONMATCHING
-}
-
-/* 80B24088-80B2408C 005B28 0004+00 1/1 0/0 0/0 .text __ct__5csXyzFv */
-// csXyz::csXyz() {
-extern "C" void __ct__5csXyzFv() {
- /* empty function */
-}
-
-/* 80B2408C-80B24188 005B2C 00FC+00 1/0 0/0 0/0 .text __dt__15daNpcT_JntAnm_cFv */
-// daNpcT_JntAnm_c::~daNpcT_JntAnm_c() {
-extern "C" void __dt__15daNpcT_JntAnm_cFv() {
- // NONMATCHING
-}
-
-/* 80B24188-80B2418C 005C28 0004+00 1/1 0/0 0/0 .text __ct__4cXyzFv */
-// cXyz::cXyz() {
-extern "C" void __ct__4cXyzFv() {
- /* empty function */
-}
-
-/* 80B2418C-80B241D4 005C2C 0048+00 1/0 0/0 0/0 .text __dt__22daNpcT_MotionSeqMngr_cFv */
-// daNpcT_MotionSeqMngr_c::~daNpcT_MotionSeqMngr_c() {
-extern "C" void __dt__22daNpcT_MotionSeqMngr_cFv() {
- // NONMATCHING
-}
-
-/* 80B241D4-80B24244 005C74 0070+00 1/0 0/0 0/0 .text __dt__12dBgS_AcchCirFv */
-// dBgS_AcchCir::~dBgS_AcchCir() {
-extern "C" void __dt__12dBgS_AcchCirFv() {
- // NONMATCHING
-}
-
-/* 80B24244-80B242A0 005CE4 005C+00 1/0 0/0 0/0 .text __dt__10dCcD_GSttsFv */
-// dCcD_GStts::~dCcD_GStts() {
-extern "C" void __dt__10dCcD_GSttsFv() {
- // NONMATCHING
-}
-
-/* 80B242A0-80B24310 005D40 0070+00 3/2 0/0 0/0 .text __dt__12dBgS_ObjAcchFv */
-// dBgS_ObjAcch::~dBgS_ObjAcch() {
-extern "C" void __dt__12dBgS_ObjAcchFv() {
- // NONMATCHING
-}
-
-/* 80B24310-80B24358 005DB0 0048+00 1/0 0/0 0/0 .text __dt__12J3DFrameCtrlFv */
-// J3DFrameCtrl::~J3DFrameCtrl() {
-extern "C" void __dt__12J3DFrameCtrlFv() {
- // NONMATCHING
-}
-
-/* 80B24358-80B24474 005DF8 011C+00 1/1 0/0 0/0 .text setEyeAngleY__15daNpcT_JntAnm_cF4cXyzsifs */
-// void daNpcT_JntAnm_c::setEyeAngleY(cXyz param_0, s16 param_1, int param_2, f32 param_3,
-// s16 param_4) {
-extern "C" void setEyeAngleY__15daNpcT_JntAnm_cF4cXyzsifs() {
- // NONMATCHING
-}
-
-/* 80B24474-80B2467C 005F14 0208+00 1/1 0/0 0/0 .text setEyeAngleX__15daNpcT_JntAnm_cF4cXyzfs */
-// void daNpcT_JntAnm_c::setEyeAngleX(cXyz param_0, f32 param_1, s16 param_2) {
-extern "C" void setEyeAngleX__15daNpcT_JntAnm_cF4cXyzfs() {
- // NONMATCHING
-}
-
-/* 80B2467C-80B24680 00611C 0004+00 1/0 0/0 0/0 .text ctrlSubFaceMotion__8daNpcT_cFi */
-// void daNpcT_c::ctrlSubFaceMotion(int param_0) {
-extern "C" void ctrlSubFaceMotion__8daNpcT_cFi() {
- /* empty function */
-}
-
-/* 80B24680-80B24688 006120 0008+00 1/0 0/0 0/0 .text getEyeballLMaterialNo__8daNpcT_cFv
- */
-// bool daNpcT_c::getEyeballLMaterialNo() {
-extern "C" bool getEyeballLMaterialNo__8daNpcT_cFv() {
- return false;
-}
-
-/* 80B24688-80B24690 006128 0008+00 1/0 0/0 0/0 .text getEyeballRMaterialNo__8daNpcT_cFv
- */
-// bool daNpcT_c::getEyeballRMaterialNo() {
-extern "C" bool getEyeballRMaterialNo__8daNpcT_cFv() {
- return false;
-}
-
-/* 80B24690-80B24698 006130 0008+00 1/0 0/0 0/0 .text evtEndProc__8daNpcT_cFv */
-// bool daNpcT_c::evtEndProc() {
-extern "C" bool evtEndProc__8daNpcT_cFv() {
+static int daNpc_Toby_IsDelete(void* i_this) {
return true;
}
-/* 80B2469C-80B246B4 00613C 0018+00 1/0 0/0 0/0 .text decTmr__8daNpcT_cFv */
-// void daNpcT_c::decTmr() {
-extern "C" void decTmr__8daNpcT_cFv() {
- // NONMATCHING
-}
-
-/* 80B246B4-80B246B8 006154 0004+00 1/0 0/0 0/0 .text drawGhost__8daNpcT_cFv */
-// void daNpcT_c::drawGhost() {
-extern "C" void drawGhost__8daNpcT_cFv() {
- /* empty function */
-}
-
-/* 80B246B8-80B246E8 006158 0030+00 1/0 0/0 0/0 .text
- * getFaceMotionAnm__8daNpcT_cF26daNpcT_faceMotionAnmData_c */
-// void daNpcT_c::getFaceMotionAnm(daNpcT_faceMotionAnmData_c param_0) {
-extern "C" void getFaceMotionAnm__8daNpcT_cF26daNpcT_faceMotionAnmData_c() {
- // NONMATCHING
-}
-
-/* 80B246E8-80B24718 006188 0030+00 1/0 0/0 0/0 .text
- * getMotionAnm__8daNpcT_cF22daNpcT_motionAnmData_c */
-// void daNpcT_c::getMotionAnm(daNpcT_motionAnmData_c param_0) {
-extern "C" void getMotionAnm__8daNpcT_cF22daNpcT_motionAnmData_c() {
- // NONMATCHING
-}
-
-/* 80B24718-80B2471C 0061B8 0004+00 1/0 0/0 0/0 .text changeAnm__8daNpcT_cFPiPi */
-// void daNpcT_c::changeAnm(int* param_0, int* param_1) {
-extern "C" void changeAnm__8daNpcT_cFPiPi() {
- /* empty function */
-}
-
-/* 80B2471C-80B24720 0061BC 0004+00 1/0 0/0 0/0 .text changeBck__8daNpcT_cFPiPi */
-// void daNpcT_c::changeBck(int* param_0, int* param_1) {
-extern "C" void changeBck__8daNpcT_cFPiPi() {
- /* empty function */
-}
-
-/* 80B24720-80B24724 0061C0 0004+00 1/0 0/0 0/0 .text changeBtp__8daNpcT_cFPiPi */
-// void daNpcT_c::changeBtp(int* param_0, int* param_1) {
-extern "C" void changeBtp__8daNpcT_cFPiPi() {
- /* empty function */
-}
-
-/* 80B24724-80B24728 0061C4 0004+00 1/0 0/0 0/0 .text changeBtk__8daNpcT_cFPiPi */
-// void daNpcT_c::changeBtk(int* param_0, int* param_1) {
-extern "C" void changeBtk__8daNpcT_cFPiPi() {
- /* empty function */
-}
-
-/* 80B24728-80B24744 0061C8 001C+00 6/6 0/0 0/0 .text cLib_calcTimer<i>__FPi */
-extern "C" void func_80B24728(void* _this, int* param_0) {
- // NONMATCHING
-}
-
-/* ############################################################################################## */
-/* 80B2582C-80B25838 000BE4 000C+00 2/2 0/0 0/0 .data __vt__18daNpc_Toby_Param_c */
-SECTION_DATA extern void* __vt__18daNpc_Toby_Param_c[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__18daNpc_Toby_Param_cFv,
+/* 80B25670-80B25690 -00001 0020+00 1/0 0/0 0/0 .data daNpc_Toby_MethodTable */
+static actor_method_class daNpc_Toby_MethodTable = {
+ (process_method_func)daNpc_Toby_Create,
+ (process_method_func)daNpc_Toby_Delete,
+ (process_method_func)daNpc_Toby_Execute,
+ (process_method_func)daNpc_Toby_IsDelete,
+ (process_method_func)daNpc_Toby_Draw,
};
-/* 80B24744-80B24840 0061E4 00FC+00 0/0 1/0 0/0 .text __sinit_d_a_npc_toby_cpp */
-void __sinit_d_a_npc_toby_cpp() {
- // NONMATCHING
-}
-
-#pragma push
-#pragma force_active on
-REGISTER_CTORS(0x80B24744, __sinit_d_a_npc_toby_cpp);
-#pragma pop
-
-/* 80B24840-80B24920 0062E0 00E0+00 1/1 0/0 0/0 .text
- * __ct__12daNpc_Toby_cFPC26daNpcT_faceMotionAnmData_cPC22daNpcT_motionAnmData_cPCQ222daNpcT_MotionSeqMngr_c18sequenceStepData_ciPCQ222daNpcT_MotionSeqMngr_c18sequenceStepData_ciPC16daNpcT_evtData_cPPc
- */
-daNpc_Toby_c::daNpc_Toby_c(daNpcT_faceMotionAnmData_c const* param_0,
- daNpcT_motionAnmData_c const* param_1,
- daNpcT_MotionSeqMngr_c::sequenceStepData_c const* param_2,
- int param_3,
- daNpcT_MotionSeqMngr_c::sequenceStepData_c const* param_4,
- int param_5, daNpcT_evtData_c const* param_6, char** param_7) {
- // NONMATCHING
-}
-
-/* 80B24920-80B24928 0063C0 0008+00 1/0 0/0 0/0 .text getEyeballMaterialNo__12daNpc_Toby_cFv */
-u16 daNpc_Toby_c::getEyeballMaterialNo() {
- return 2;
-}
-
-/* 80B24928-80B24930 0063C8 0008+00 1/0 0/0 0/0 .text getHeadJointNo__12daNpc_Toby_cFv */
-s32 daNpc_Toby_c::getHeadJointNo() {
- return 4;
-}
-
-/* 80B24930-80B24938 0063D0 0008+00 1/0 0/0 0/0 .text getNeckJointNo__12daNpc_Toby_cFv */
-s32 daNpc_Toby_c::getNeckJointNo() {
- return 3;
-}
-
-/* 80B24938-80B24940 0063D8 0008+00 1/0 0/0 0/0 .text getBackboneJointNo__12daNpc_Toby_cFv */
-bool daNpc_Toby_c::getBackboneJointNo() {
- return true;
-}
-
-/* 80B24940-80B24950 0063E0 0010+00 1/0 0/0 0/0 .text checkChangeJoint__12daNpc_Toby_cFi
- */
-void daNpc_Toby_c::checkChangeJoint(int param_0) {
- // NONMATCHING
-}
-
-/* 80B24950-80B24960 0063F0 0010+00 1/0 0/0 0/0 .text checkRemoveJoint__12daNpc_Toby_cFi
- */
-void daNpc_Toby_c::checkRemoveJoint(int param_0) {
- // NONMATCHING
-}
-
-/* 80B24960-80B24968 006400 0008+00 1/0 0/0 0/0 .text getFootLJointNo__12daNpc_Toby_cFv
- */
-s32 daNpc_Toby_c::getFootLJointNo() {
- return 24;
-}
-
-/* 80B24968-80B24970 006408 0008+00 1/0 0/0 0/0 .text getFootRJointNo__12daNpc_Toby_cFv
- */
-s32 daNpc_Toby_c::getFootRJointNo() {
- return 27;
-}
-
-/* 80B24970-80B24978 006410 0008+00 1/0 0/0 0/0 .text chkXYItems__12daNpc_Toby_cFv */
-bool daNpc_Toby_c::chkXYItems() {
- return true;
-}
-
-/* 80B24978-80B249C0 006418 0048+00 2/1 0/0 0/0 .text __dt__18daNpc_Toby_Param_cFv */
-daNpc_Toby_Param_c::~daNpc_Toby_Param_c() {
- // NONMATCHING
-}
-
-/* 80B249C0-80B249C8 006460 0008+00 1/0 0/0 0/0 .text @36@__dt__12dBgS_ObjAcchFv */
-static void func_80B249C0() {
- // NONMATCHING
-}
-
-/* 80B249C8-80B249D0 006468 0008+00 1/0 0/0 0/0 .text @20@__dt__12dBgS_ObjAcchFv */
-static void func_80B249C8() {
- // NONMATCHING
-}
-
-/* ############################################################################################## */
-/* 80B258AC-80B258B0 000074 0004+00 0/0 0/0 0/0 .bss
- * sInstance__40JASGlobalInstance<19JASDefaultBankTable> */
-#pragma push
-#pragma force_active on
-static u8 data_80B258AC[4];
-#pragma pop
-
-/* 80B258B0-80B258B4 000078 0004+00 0/0 0/0 0/0 .bss
- * sInstance__35JASGlobalInstance<14JASAudioThread> */
-#pragma push
-#pragma force_active on
-static u8 data_80B258B0[4];
-#pragma pop
-
-/* 80B258B4-80B258B8 00007C 0004+00 0/0 0/0 0/0 .bss sInstance__27JASGlobalInstance<7Z2SeMgr> */
-#pragma push
-#pragma force_active on
-static u8 data_80B258B4[4];
-#pragma pop
-
-/* 80B258B8-80B258BC 000080 0004+00 0/0 0/0 0/0 .bss sInstance__28JASGlobalInstance<8Z2SeqMgr> */
-#pragma push
-#pragma force_active on
-static u8 data_80B258B8[4];
-#pragma pop
-
-/* 80B258BC-80B258C0 000084 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2SceneMgr>
- */
-#pragma push
-#pragma force_active on
-static u8 data_80B258BC[4];
-#pragma pop
-
-/* 80B258C0-80B258C4 000088 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2StatusMgr>
- */
-#pragma push
-#pragma force_active on
-static u8 data_80B258C0[4];
-#pragma pop
-
-/* 80B258C4-80B258C8 00008C 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2DebugSys>
- */
-#pragma push
-#pragma force_active on
-static u8 data_80B258C4[4];
-#pragma pop
-
-/* 80B258C8-80B258CC 000090 0004+00 0/0 0/0 0/0 .bss
- * sInstance__36JASGlobalInstance<15JAISoundStarter> */
-#pragma push
-#pragma force_active on
-static u8 data_80B258C8[4];
-#pragma pop
-
-/* 80B258CC-80B258D0 000094 0004+00 0/0 0/0 0/0 .bss
- * sInstance__35JASGlobalInstance<14Z2SoundStarter> */
-#pragma push
-#pragma force_active on
-static u8 data_80B258CC[4];
-#pragma pop
-
-/* 80B258D0-80B258D4 000098 0004+00 0/0 0/0 0/0 .bss
- * sInstance__33JASGlobalInstance<12Z2SpeechMgr2> */
-#pragma push
-#pragma force_active on
-static u8 data_80B258D0[4];
-#pragma pop
-
-/* 80B258D4-80B258D8 00009C 0004+00 0/0 0/0 0/0 .bss sInstance__28JASGlobalInstance<8JAISeMgr> */
-#pragma push
-#pragma force_active on
-static u8 data_80B258D4[4];
-#pragma pop
-
-/* 80B258D8-80B258DC 0000A0 0004+00 0/0 0/0 0/0 .bss sInstance__29JASGlobalInstance<9JAISeqMgr> */
-#pragma push
-#pragma force_active on
-static u8 data_80B258D8[4];
-#pragma pop
-
-/* 80B258DC-80B258E0 0000A4 0004+00 0/0 0/0 0/0 .bss
- * sInstance__33JASGlobalInstance<12JAIStreamMgr> */
-#pragma push
-#pragma force_active on
-static u8 data_80B258DC[4];
-#pragma pop
-
-/* 80B258E0-80B258E4 0000A8 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2SoundMgr>
- */
-#pragma push
-#pragma force_active on
-static u8 data_80B258E0[4];
-#pragma pop
-
-/* 80B258E4-80B258E8 0000AC 0004+00 0/0 0/0 0/0 .bss
- * sInstance__33JASGlobalInstance<12JAISoundInfo> */
-#pragma push
-#pragma force_active on
-static u8 data_80B258E4[4];
-#pragma pop
-
-/* 80B258E8-80B258EC 0000B0 0004+00 0/0 0/0 0/0 .bss
- * sInstance__34JASGlobalInstance<13JAUSoundTable> */
-#pragma push
-#pragma force_active on
-static u8 data_80B258E8[4];
-#pragma pop
-
-/* 80B258EC-80B258F0 0000B4 0004+00 0/0 0/0 0/0 .bss
- * sInstance__38JASGlobalInstance<17JAUSoundNameTable> */
-#pragma push
-#pragma force_active on
-static u8 data_80B258EC[4];
-#pragma pop
-
-/* 80B258F0-80B258F4 0000B8 0004+00 0/0 0/0 0/0 .bss
- * sInstance__33JASGlobalInstance<12JAUSoundInfo> */
-#pragma push
-#pragma force_active on
-static u8 data_80B258F0[4];
-#pragma pop
-
-/* 80B258F4-80B258F8 0000BC 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2SoundInfo>
- */
-#pragma push
-#pragma force_active on
-static u8 data_80B258F4[4];
-#pragma pop
-
-/* 80B258F8-80B258FC 0000C0 0004+00 0/0 0/0 0/0 .bss
- * sInstance__34JASGlobalInstance<13Z2SoundObjMgr> */
-#pragma push
-#pragma force_active on
-static u8 data_80B258F8[4];
-#pragma pop
-
-/* 80B258FC-80B25900 0000C4 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2Audience>
- */
-#pragma push
-#pragma force_active on
-static u8 data_80B258FC[4];
-#pragma pop
-
-/* 80B25900-80B25904 0000C8 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2FxLineMgr>
- */
-#pragma push
-#pragma force_active on
-static u8 data_80B25900[4];
-#pragma pop
-
-/* 80B25904-80B25908 0000CC 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2EnvSeMgr>
- */
-#pragma push
-#pragma force_active on
-static u8 data_80B25904[4];
-#pragma pop
+/* 80B25690-80B256C0 -00001 0030+00 0/0 0/0 1/0 .data g_profile_NPC_TOBY */
+extern actor_process_profile_definition g_profile_NPC_TOBY = {
+ fpcLy_CURRENT_e, // mLayerID
+ 7, // mListID
+ fpcPi_CURRENT_e, // mListPrio
+ PROC_NPC_TOBY, // mProcName
+ &g_fpcLf_Method.base, // sub_method
+ sizeof(daNpc_Toby_c), // mSize
+ 0, // mSizeOther
+ 0, // mParameters
+ &g_fopAc_Method.base, // sub_method
+ 377, // mPriority
+ &daNpc_Toby_MethodTable, // sub_method
+ 0x00040107, // mStatus
+ fopAc_NPC_e, // mActorType
+ fopAc_CULLBOX_CUSTOM_e, // cullType
+};
-/* 80B25908-80B2590C 0000D0 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2SpeechMgr>
- */
-#pragma push
-#pragma force_active on
-static u8 data_80B25908[4];
-#pragma pop
-
-/* 80B2590C-80B25910 0000D4 0004+00 0/0 0/0 0/0 .bss
- * sInstance__34JASGlobalInstance<13Z2WolfHowlMgr> */
-#pragma push
-#pragma force_active on
-static u8 data_80B2590C[4];
-#pragma pop
-
-/* 80B24B8C-80B24B8C 0001A8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
+AUDIO_INSTANCES;
diff --git a/src/d/actor/d_a_npc_ykm.cpp b/src/d/actor/d_a_npc_ykm.cpp
index fd70ab5f76..c0b9d59d9c 100644
--- a/src/d/actor/d_a_npc_ykm.cpp
+++ b/src/d/actor/d_a_npc_ykm.cpp
@@ -3426,7 +3426,7 @@ BOOL daNpc_ykM_c::race(void* param_1) {
int idx;
while (true) {
if (mPath.chkPassed1(current.pos, mPath.getNumPnts())) {
- if (mPath.getArg0() == 0) {
+ if (u8(mPath.getArg0()) == 0) {
mSound.startCreatureSound(Z2SE_YM_SNOBO_JUMP, 0, -1);
mSound.startCreatureVoice(Z2SE_YM_V_SNOBO_JUMP, -1);
field_0x157e = 1;
diff --git a/src/d/actor/d_a_npc_ykw.cpp b/src/d/actor/d_a_npc_ykw.cpp
index 9c7b58c591..312aecd198 100644
--- a/src/d/actor/d_a_npc_ykw.cpp
+++ b/src/d/actor/d_a_npc_ykw.cpp
@@ -2879,7 +2879,7 @@ int daNpc_ykW_c::race(void* param_0) {
if (field_0x106e == 0) {
while (true) {
if (mPath.chkPassed1(current.pos, mPath.getNumPnts())) {
- if (mPath.getArg0() == 0) {
+ if (u8(mPath.getArg0()) == 0) {
mSound.startCreatureSound(Z2SE_YW_SNOBO_JUMP, 0, -1);
mSound.startCreatureVoice(Z2SE_YW_V_SNOBO_JUMP, -1);
field_0x106e = 1;
diff --git a/src/d/actor/d_a_obj_automata.cpp b/src/d/actor/d_a_obj_automata.cpp
index 95a9589662..7a3c1a3c50 100644
--- a/src/d/actor/d_a_obj_automata.cpp
+++ b/src/d/actor/d_a_obj_automata.cpp
@@ -148,7 +148,7 @@ int daObj_AutoMata_c::Execute() {
mAnmPlaySpeed = 0.0f;
setSe();
setMtx();
- if (field_0xb31 == 0) {
+ if (mCoNone == 0) {
cStack_28.set(0.0f, 40.0f, 0.0f);
mDoMtx_stack_c::copy(mpMorf->getModel()->getAnmMtx(3));
mDoMtx_stack_c::multVec(&cStack_28, &sphCenter);
@@ -164,7 +164,7 @@ int daObj_AutoMata_c::Execute() {
mCyl.ClrCoHit();
attention_info.flags = 0;
eyePos = attention_info.position = current.pos;
- field_0xb31 = 0;
+ mCoNone = 0;
return 1;
}
return 0;