summaryrefslogtreecommitdiff
path: root/src/d/actor
diff options
context:
space:
mode:
authorCarco_21 <144170194+carter-ktb21@users.noreply.github.com>2025-08-29 15:40:14 -0400
committerGitHub <noreply@github.com>2025-08-29 22:40:14 +0300
commit179189c7580df49185ef67b71a355ca386d93536 (patch)
tree710b25640bd6741d84cc85293355fca74ac02e63 /src/d/actor
parent6313a96d499510d2b551fd56d6f3e38529af00d0 (diff)
d_a_npc_kasi_hana, mich, and kyu work (#2610)
* equivalent * kasi_mng_c work * class work and create function work * kasi_mng_c is matching * little more work * almost matching * enums defined * kasi_hana almost matching * more mich work * mich almost matching * kyu almost matching * potentially fixed issue * Now maybe good? * Should be fixed now * PR Cleanup
Diffstat (limited to 'src/d/actor')
-rw-r--r--src/d/actor/d_a_b_gg.cpp2
-rw-r--r--src/d/actor/d_a_b_gnd.cpp2
-rw-r--r--src/d/actor/d_a_e_gi.cpp2
-rw-r--r--src/d/actor/d_a_npc_kasi_hana.cpp4211
-rw-r--r--src/d/actor/d_a_npc_kasi_kyu.cpp3019
-rw-r--r--src/d/actor/d_a_npc_kasi_mich.cpp2997
-rw-r--r--src/d/actor/d_a_obj_kwheel00.cpp2
7 files changed, 4708 insertions, 5527 deletions
diff --git a/src/d/actor/d_a_b_gg.cpp b/src/d/actor/d_a_b_gg.cpp
index dd9bcf3ad2..6ad2044179 100644
--- a/src/d/actor/d_a_b_gg.cpp
+++ b/src/d/actor/d_a_b_gg.cpp
@@ -243,7 +243,7 @@ void daB_GG_c::initCc() {
} // mSphAttr
};
- mCcStts.Init(254, 0xFF, this);
+ mCcStts.Init(0xFE, 0xFF, this);
mCcCyl.Set(ccCylSrc);
mCcCyl.SetStts(&mCcStts);
mCcCyl.SetC(current.pos);
diff --git a/src/d/actor/d_a_b_gnd.cpp b/src/d/actor/d_a_b_gnd.cpp
index 7b9a974abd..90f17ee5c3 100644
--- a/src/d/actor/d_a_b_gnd.cpp
+++ b/src/d/actor/d_a_b_gnd.cpp
@@ -4853,7 +4853,7 @@ static int daB_GND_Create(fopAc_ac_c* a_this) {
a_this->health = 24;
i_this->field_0x560 = 24;
- i_this->mGndCcStts.Init(254, 0, a_this);
+ i_this->mGndCcStts.Init(0xFE, 0, a_this);
i_this->mHorseCcStts.Init(150, 0, a_this);
static dCcD_SrcSph h_cc_sph_src = {
diff --git a/src/d/actor/d_a_e_gi.cpp b/src/d/actor/d_a_e_gi.cpp
index 6892e38446..192a583520 100644
--- a/src/d/actor/d_a_e_gi.cpp
+++ b/src/d/actor/d_a_e_gi.cpp
@@ -1099,7 +1099,7 @@ int daE_GI_c::create() {
health = 240;
field_0x560 = 240;
- mCcStts.Init(254, 0, this);
+ mCcStts.Init(0xFE, 0, this);
mCcSph[0].Set(cc_gi_src);
mCcSph[0].SetStts(&mCcStts);
diff --git a/src/d/actor/d_a_npc_kasi_hana.cpp b/src/d/actor/d_a_npc_kasi_hana.cpp
index 5fb330dbb1..ab4efa5e40 100644
--- a/src/d/actor/d_a_npc_kasi_hana.cpp
+++ b/src/d/actor/d_a_npc_kasi_hana.cpp
@@ -6,2294 +6,2391 @@
#include "d/dolzel_rel.h"
#include "d/actor/d_a_npc_kasi_hana.h"
-#include "dol2asm.h"
-
-//
-// Forward References:
-//
-
-extern "C" void calcEscapeForm__15daNpcKasi_Mng_cFv();
-extern "C" void __dt__4cXyzFv();
-extern "C" void calcCenterPos__15daNpcKasi_Mng_cFv();
-extern "C" void getDistFromCenter__15daNpcKasi_Mng_cFv();
-extern "C" void getOffsetFromLeader__15daNpcKasi_Mng_cFRC4cXyzR4cXyz();
-extern "C" void __dt__5csXyzFv();
-extern "C" void initPath__15daNpcKasi_Mng_cFUcUs();
-extern "C" void getPlNearPoint__15daNpcKasi_Mng_cFv();
-extern "C" void getSygnalInfo__15daNpcKasi_Mng_cFv();
-extern "C" void sendInfo__15daNpcKasi_Mng_cFv();
-extern "C" void offTalk__15daNpcKasi_Mng_cFv();
-extern "C" void chkTalk__15daNpcKasi_Mng_cFv();
-extern "C" void chkFear__15daNpcKasi_Mng_cFv();
-extern "C" void chkEscape__15daNpcKasi_Mng_cFv();
-extern "C" void createHearts__15daNpcKasi_Mng_cFv();
-extern "C" void allDemoMove__15daNpcKasi_Mng_cFv();
-extern "C" void allDemoNotMove__15daNpcKasi_Mng_cFv();
-extern "C" void isMiniGamePlaying__15daNpcKasi_Mng_cFv();
-extern "C" void schMemberActor__15daNpcKasi_Mng_cFv();
-extern "C" void schDanchoActor__15daNpcKasi_Mng_cFv();
-extern "C" void deleteAllMember__15daNpcKasi_Mng_cFv();
-extern "C" void chgWeightHeavy__15daNpcKasi_Mng_cFv();
-extern "C" void chgWeightLight__15daNpcKasi_Mng_cFv();
-extern "C" void __ct__15daNpcKasiHana_cFv();
-extern "C" void __dt__15daNpcKasiHana_cFv();
-extern "C" void Create__15daNpcKasiHana_cFv();
-extern "C" void CreateHeap__15daNpcKasiHana_cFv();
-extern "C" void Delete__15daNpcKasiHana_cFv();
-extern "C" void Execute__15daNpcKasiHana_cFv();
-extern "C" void Draw__15daNpcKasiHana_cFv();
-extern "C" void ctrlJoint__15daNpcKasiHana_cFP8J3DJointP8J3DModel();
-extern "C" void createHeapCallBack__15daNpcKasiHana_cFP10fopAc_ac_c();
-extern "C" void ctrlJointCallBack__15daNpcKasiHana_cFP8J3DJointi();
-extern "C" void setParam__15daNpcKasiHana_cFv();
-extern "C" void main__15daNpcKasiHana_cFv();
-extern "C" void setAttnPos__15daNpcKasiHana_cFv();
-extern "C" void setMotionAnm__15daNpcKasiHana_cFif();
-extern "C" void setMotion__15daNpcKasiHana_cFifi();
-extern "C" bool drawDbgInfo__15daNpcKasiHana_cFv();
-extern "C" void reset__15daNpcKasiHana_cFv();
-extern "C" void playMotion__15daNpcKasiHana_cFv();
-extern "C" void playMotionAnmLoop__15daNpcKasiHana_cFPPPQ28daNpcF_c18daNpcF_anmPlayData();
-extern "C" void setAction__15daNpcKasiHana_cFM15daNpcKasiHana_cFPCvPvi_i();
-extern "C" void setLookMode__15daNpcKasiHana_cFi();
-extern "C" void lookat__15daNpcKasiHana_cFv();
-extern "C" void step__15daNpcKasiHana_cFsi();
-extern "C" void chkFindPlayer__15daNpcKasiHana_cFv();
-extern "C" void wait__15daNpcKasiHana_cFi();
-extern "C" void chace_st__15daNpcKasiHana_cFi();
-extern "C" void chace__15daNpcKasiHana_cFi();
-extern "C" void getChacePos__15daNpcKasiHana_cFv();
-extern "C" void turn__15daNpcKasiHana_cFi();
-extern "C" void fear__15daNpcKasiHana_cFi();
-extern "C" void srchWolfTag__15daNpcKasiHana_cFv();
-extern "C" void _srch_escape_tag__15daNpcKasiHana_cFPvPv();
-extern "C" void getWolfPathNearIdx__15daNpcKasiHana_cFv();
-extern "C" void talk__15daNpcKasiHana_cFi();
-extern "C" void demo__15daNpcKasiHana_cFi();
-extern "C" void escape__15daNpcKasiHana_cFi();
-extern "C" void cheer__15daNpcKasiHana_cFi();
-extern "C" void _turn_to_link__15daNpcKasiHana_cFs();
-extern "C" void _turn_pos__15daNpcKasiHana_cFRC4cXyzs();
-extern "C" void actor_front_check__15daNpcKasiHana_cFP10fopAc_ac_c();
-extern "C" void _getOffset__15daNpcKasiHana_cFRC4cXyzR4cXyz();
-extern "C" void _Evt_Kasi_Appear__15daNpcKasiHana_cFi();
-extern "C" void _Evt_Kasi_Appear_CutInit__15daNpcKasiHana_cFRCi();
-extern "C" void _Evt_Kasi_Appear_CutMain__15daNpcKasiHana_cFRCi();
-extern "C" void _Evt_Kasi_Talk__15daNpcKasiHana_cFi();
-extern "C" void _Evt_Kasi_Talk_CutInit__15daNpcKasiHana_cFRCi();
-extern "C" void _Evt_Kasi_Talk_CutMain__15daNpcKasiHana_cFRCii();
-extern "C" void _Evt_Kasi__15daNpcKasiHana_cFi();
-extern "C" void _Evt_Kasi_CutInit__15daNpcKasiHana_cFRCi();
-extern "C" void _Evt_Kasi_CutMain__15daNpcKasiHana_cFRCi();
-extern "C" void _Evt_Kasi_Cheer__15daNpcKasiHana_cFi();
-extern "C" void _Evt_Kasi_Cheer_CutInit__15daNpcKasiHana_cFRCi();
-extern "C" void _Evt_Kasi_Cheer_CutMain__15daNpcKasiHana_cFRCii();
-extern "C" void _Evt_Kasi_Cheer2__15daNpcKasiHana_cFi();
-extern "C" void _Evt_Kasi_Cheer2_CutInit__15daNpcKasiHana_cFRCi();
-extern "C" void _Evt_Kasi_Cheer2_CutMain__15daNpcKasiHana_cFRCii();
-extern "C" static void daNpcKasiHana_Create__FPv();
-extern "C" static void daNpcKasiHana_Delete__FPv();
-extern "C" static void daNpcKasiHana_Execute__FPv();
-extern "C" static void daNpcKasiHana_Draw__FPv();
-extern "C" static bool daNpcKasiHana_IsDelete__FPv();
-extern "C" void __dt__8cM3dGCylFv();
-extern "C" void __dt__8cM3dGAabFv();
-extern "C" void getCenterPos__15daNpcKasi_Mng_cFv();
-extern "C" void adjustShapeAngle__15daNpcKasiHana_cFv();
-extern "C" void __dt__21daNpcKasiHana_Param_cFv();
-extern "C" static void func_80A206C4();
-extern "C" static void func_80A206CC();
-extern "C" void __dt__13daNpcF_Path_cFv();
-extern "C" void __dt__16daNpcF_SPCurve_cFv();
-extern "C" void __dt__18daNpcF_ActorMngr_cFv();
-extern "C" void __ct__18daNpcF_ActorMngr_cFv();
-extern "C" void __dt__15daNpcF_Lookat_cFv();
-extern "C" void __ct__5csXyzFv();
-extern "C" void __ct__4cXyzFv();
-extern "C" void __dt__8daNpcF_cFv();
-extern "C" void __ct__8daNpcF_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" bool ctrlBtk__8daNpcF_cFv();
-extern "C" void setCollisions__8daNpcF_cFv();
-extern "C" bool setExpressionAnm__8daNpcF_cFib();
-extern "C" bool setExpressionBtp__8daNpcF_cFi();
-extern "C" void setExpression__8daNpcF_cFif();
-extern "C" void drawOtherMdls__8daNpcF_cFv();
-extern "C" void __dt__10cCcD_GSttsFv();
-extern "C" void func_80A20F04(void* _this, int, int);
-extern "C" void __sinit_d_a_npc_kasi_hana_cpp();
-extern "C" u8 const m__21daNpcKasiHana_Param_c[124];
-extern "C" extern char const* const d_a_npc_kasi_hana__stringBase0;
-extern "C" u8 mEvtSeqList__15daNpcKasiHana_c[72];
-extern "C" u8 mTargetTag__15daNpcKasiHana_c[4];
-extern "C" u8 mTargetTagDist__15daNpcKasiHana_c[4];
-extern "C" u8 mWolfAngle__15daNpcKasiHana_c[2 + 2 /* padding */];
-
-//
-// External References:
-//
-
-extern "C" void ZXYrotS__14mDoMtx_stack_cFRC5csXyz();
-extern "C" void setMorf__13mDoExt_morf_cFf();
-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 fopAc_IsActor__FPv();
-extern "C" void fopAcM_SearchByName__FsPP10fopAc_ac_c();
-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_searchActorDistanceXZ__FPC10fopAc_ac_cPC10fopAc_ac_c();
-extern "C" void fopAcM_searchActorDistanceXZ2__FPC10fopAc_ac_cPC10fopAc_ac_c();
-extern "C" void fopAcM_fastCreateItem__FPC4cXyziiPC5csXyzPC4cXyzPfPfiiPFPv_i();
-extern "C" void fpcEx_Search__FPFPvPv_PvPv();
-extern "C" void dComIfG_resLoad__FP30request_of_phase_process_classPCc();
-extern "C" void dComIfG_resDelete__FP30request_of_phase_process_classPCc();
-extern "C" void dComIfG_TimerStop__Fi();
-extern "C" void dComIfG_TimerReStart__Fi();
-extern "C" void onSwitch__12dSv_danBit_cFi();
-extern "C" void onSwitch__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 endCheck__16dEvent_manager_cFs();
-extern "C" void getMyStaffId__16dEvent_manager_cFPCcP10fopAc_ac_ci();
-extern "C" void getIsAddvance__16dEvent_manager_cFi();
-extern "C" void getMySubstanceP__16dEvent_manager_cFiPCci();
-extern "C" void cutEnd__16dEvent_manager_cFi();
-extern "C" void ChkPresentEnd__16dEvent_manager_cFv();
-extern "C" void __ct__12dBgS_AcchCirFv();
-extern "C" void SetWall__12dBgS_AcchCirFff();
-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__18daNpcF_ActorMngr_cFv();
-extern "C" void entry__18daNpcF_ActorMngr_cFP10fopAc_ac_c();
-extern "C" void remove__18daNpcF_ActorMngr_cFv();
-extern "C" void getActorP__18daNpcF_ActorMngr_cFv();
-extern "C" void initialize__16daNpcF_SPCurve_cFP5dPathi();
-extern "C" void initialize__13daNpcF_Path_cFv();
-extern "C" void setPathInfo__13daNpcF_Path_cFUcScUc();
-extern "C" void reverse__13daNpcF_Path_cFv();
-extern "C" void getDstPos__13daNpcF_Path_cF4cXyzR4cXyz();
-extern "C" void initialize__15daNpcF_Lookat_cFv();
-extern "C" void setParam__15daNpcF_Lookat_cFffffffffffffsP4cXyz();
-extern "C" void calc__15daNpcF_Lookat_cFP10fopAc_ac_cPA4_fPP5csXyziii();
-extern "C" void execute__8daNpcF_cFv();
-extern "C" void draw__8daNpcF_cFiifP11_GXColorS10i();
-extern "C" void setMtx__8daNpcF_cFv();
-extern "C" void setMtx2__8daNpcF_cFv();
-extern "C" void initialize__8daNpcF_cFv();
-extern "C" void getTrnsfrmKeyAnmP__8daNpcF_cFPci();
-extern "C" void getTexPtrnAnmP__8daNpcF_cFPci();
-extern "C" void setMcaMorfAnm__8daNpcF_cFP18J3DAnmTransformKeyffiii();
-extern "C" void setBtpAnm__8daNpcF_cFP16J3DAnmTexPatternP12J3DModelDatafi();
-extern "C" void setEnvTevColor__8daNpcF_cFv();
-extern "C" void setRoomNo__8daNpcF_cFv();
-extern "C" void playMotionAnm__8daNpcF_cFPPPQ28daNpcF_c18daNpcF_anmPlayData();
-extern "C" void setLookatMtx__8daNpcF_cFiPif();
-extern "C" void ctrlMsgAnm__8daNpcF_cFRiRiP10fopAc_ac_ci();
-extern "C" void orderEvent__8daNpcF_cFiPcUsUsUcUs();
-extern "C" void changeEvent__8daNpcF_cFPcPcUsUs();
-extern "C" void chkActorInSight__8daNpcF_cFP10fopAc_ac_cf();
-extern "C" void chkActorInAttnArea__8daNpcF_cFP10fopAc_ac_cP10fopAc_ac_ci();
-extern "C" void initTalk__8daNpcF_cFiPP10fopAc_ac_c();
-extern "C" void talkProc__8daNpcF_cFPiiPP10fopAc_ac_c();
-extern "C" void turn__8daNpcF_cFsfi();
-extern "C" void getDistTableIdx__8daNpcF_cFii();
-extern "C" void daNpcF_chkEvtBit__FUl();
-extern "C" void dKy_darkworld_check__Fv();
-extern "C" void __ct__10dMsgFlow_cFv();
-extern "C" void __dt__10dMsgFlow_cFv();
-extern "C" void dTimer_show__Fv();
-extern "C" void dTimer_hide__Fv();
-extern "C" void Set__4cCcSFP8cCcD_Obj();
-extern "C" void __pl__4cXyzCFRC3Vec();
-extern "C" void __mi__4cXyzCFRC3Vec();
-extern "C" void __ct__5csXyzFsss();
-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 cLib_chaseAngleS__FPsss();
-extern "C" void cLib_targetAngleY__FPC3VecPC3Vec();
-extern "C" void cLib_targetAngleX__FPC4cXyzPC4cXyz();
-extern "C" void cLib_distanceAngleS__Fss();
-extern "C" void seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc();
-extern "C" void __ct__17Z2CreatureCitizenFv();
-extern "C" void __dt__17Z2CreatureCitizenFv();
-extern "C" void init__17Z2CreatureCitizenFP3VecP3VecUcUc();
-extern "C" void* __nw__FUl();
-extern "C" void __dl__FPv();
-extern "C" void init__12J3DFrameCtrlFs();
-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_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_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__8daNpcF_c[68];
-extern "C" extern void* __vt__8daNpcF_c[18];
-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" u8 now__14mDoMtx_stack_c[48];
-extern "C" u8 mCurrentMtx__6J3DSys[48];
-extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
-extern "C" void __register_global_object();
-
-//
-// Declarations:
-//
-
-/* ############################################################################################## */
-/* 80A21080-80A21084 000000 0004+00 26/26 0/0 0/0 .rodata @3908 */
-SECTION_RODATA static u8 const lit_3908[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
+#include "d/actor/d_a_npc_chin.h"
+#include "d/actor/d_a_npc_kasi_kyu.h"
+#include "d/actor/d_a_npc_kasi_mich.h"
+#include "d/d_timer.h"
+#include "Z2AudioLib/Z2Instances.h"
+
+enum kasi_hana_RES_File_ID {
+ /* BMDR */
+ /* 0x5 */ BMDR_HANA = 0x5,
+
+ /* BTP */
+ /* 0x8 */ BTP_HANA = 0x8,
+
+ /* EVT */
+ /* 0xB */ EVT_EVENT_LIST = 0xB,
+};
+
+enum girls_RES_File_ID {
+ /* BCK */
+ /* 0x3 */ BCK_MICH_IYAN_WAIT = 0x3,
+ /* 0x4 */ BCK_MICH_KYA_TALK,
+ /* 0x5 */ BCK_MICH_OUEN_WAIT_A,
+ /* 0x6 */ BCK_MICH_OUEN_WAIT_B,
+};
+
+enum Wgeneral_RES_File_ID {
+ /* BCK */
+ /* 0x03 */ BCK_W_2LADYTALK_A = 0x3,
+ /* 0x04 */ BCK_W_2LADYTALK_B,
+ /* 0x05 */ BCK_W_2NORMALTALK_A,
+ /* 0x06 */ BCK_W_2NORMALTALK_B,
+ /* 0x07 */ BCK_W_BROWSE_A,
+ /* 0x08 */ BCK_W_BROWSE_B,
+ /* 0x09 */ BCK_W_CELLME,
+ /* 0x0A */ BCK_W_LOOK_A,
+ /* 0x0B */ BCK_W_LOOK_B,
+ /* 0x0C */ BCK_W_MARO_DANCE,
+ /* 0x0D */ BCK_W_RUN_A,
+ /* 0x0E */ BCK_W_RUN_B,
+ /* 0x0F */ BCK_W_SING,
+ /* 0x10 */ BCK_W_SIT_TO_WOLF_A,
+ /* 0x11 */ BCK_W_SIT_TO_WOLF_B,
+ /* 0x12 */ BCK_W_SITTALK_A,
+ /* 0x13 */ BCK_W_SITTALK_A_B,
+ /* 0x14 */ BCK_W_SITTALK_B,
+ /* 0x15 */ BCK_W_SITTALK_B_B,
+ /* 0x16 */ BCK_W_SITWAIT_A,
+ /* 0x17 */ BCK_W_SITWAIT_B,
+ /* 0x18 */ BCK_W_SURPRISE,
+ /* 0x19 */ BCK_W_TALK_A,
+ /* 0x1A */ BCK_W_TALK_B,
+ /* 0x1B */ BCK_W_TALK_B_WALL,
+ /* 0x1C */ BCK_W_TALK_C,
+ /* 0x1D */ BCK_W_TALK_WALL,
+ /* 0x1E */ BCK_W_TO_WOLF,
+ /* 0x1F */ BCK_W_WAIT_A,
+ /* 0x20 */ BCK_W_WAIT_B,
+ /* 0x21 */ BCK_W_WAIT_WALL,
+ /* 0x22 */ BCK_W_WALK_A,
+ /* 0x23 */ BCK_W_WALK_B,
+};
+
+enum RES_Name {
+ /* 0x0 */ KASI_HANA,
+ /* 0x1 */ GIRLS,
+ /* 0x2 */ WGENERAL,
+};
+
+enum Animation {
+ /* 0x0 */ ANM_MICH_IYAN_WAIT,
+ /* 0x1 */ ANM_MICH_KYA_TALK,
+ /* 0x2 */ ANM_MICH_OUEN_WAIT_A,
+ /* 0x3 */ ANM_MICH_OUEN_WAIT_B,
+ /* 0x4 */ ANM_W_WAIT_A,
+ /* 0x5 */ ANM_W_TALK_B,
+ /* 0x6 */ ANM_W_TO_WOLF,
+ /* 0x7 */ ANM_W_WALK_A,
+ /* 0x8 */ ANM_W_LOOK_B,
+ /* 0x9 */ ANM_W_RUN_A,
+ /* 0xA */ ANM_W_SURPRISE,
+ /* 0xB */ ANM_W_WAIT_A_2,
+ /* 0xC */ ANM_W_TALK_A,
+ /* 0xD */ ANM_W_2LADYTALK_B,
+ /* 0xE */ ANM_W_2NORMALTALK_B,
+};
+
+enum Motion {
+ /* 0x0 */ MOT_MICH_KYA_TALK,
+ /* 0x1 */ MOT_MICH_IYAN_WAIT,
+ /* 0x2 */ MOT_MICH_OUEN_WAIT_A,
+ /* 0x3 */ MOT_MICH_OUEN_WAIT_B,
+ /* 0x4 */ MOT_W_WAIT_A,
+ /* 0x5 */ MOT_W_TALK_B,
+ /* 0x6 */ MOT_W_TO_WOLF,
+ /* 0x7 */ MOT_W_WALK_A,
+ /* 0x8 */ MOT_W_LOOK_B,
+ /* 0x9 */ MOT_W_RUN_A,
+ /* 0xA */ MOT_W_SURPRISE,
+ /* 0xB */ MOT_W_WAIT_A_LOOP,
+};
+
+enum Joint {
+ /* 0x00 */ JNT_CENTER,
+ /* 0x01 */ JNT_BACKBONE,
+ /* 0x02 */ JNT_NECK,
+ /* 0x03 */ JNT_HEAD,
+ /* 0x04 */ JNT_SHOULDERL,
+ /* 0x05 */ JNT_ARML1,
+ /* 0x06 */ JNT_ARML2,
+ /* 0x07 */ JNT_HANDL,
+ /* 0x08 */ JNT_SHOULDERR,
+ /* 0x09 */ JNT_ARMR1,
+ /* 0x0A */ JNT_ARMR2,
+ /* 0x0B */ JNT_HANDR,
+ /* 0x0C */ JNT_WAIST,
+ /* 0x0D */ JNT_LEGL1,
+ /* 0x0E */ JNT_LEGL2,
+ /* 0x0F */ JNT_FOOTL,
+ /* 0x10 */ JNT_SKIRTL,
+ /* 0x11 */ JNT_LEGR1,
+ /* 0x12 */ JNT_LEGR2,
+ /* 0x13 */ JNT_FOOTR,
+ /* 0x14 */ JNT_SKIRTR,
+};
+
+enum Event_Names {
+ /* 0x0 */ EVT_NONE,
+ /* 0x1 */ EVT_APPEAR,
+ /* 0x2 */ EVT_TALK,
+ /* 0x3 */ EVT_HEART,
+ /* 0x4 */ EVT_CHEER,
+ /* 0x5 */ EVT_CHEER2,
+};
+
+enum Type {
+ /* 0x0 */ TYPE_WAIT,
+ /* 0x1 */ TYPE_CHEER,
+};
+
+class daNpcKasiHana_Param_c {
+public:
+ /* 80A2067C */ virtual ~daNpcKasiHana_Param_c() {}
+
+ static daNpcKasiHana_HIOParam const m;
};
-COMPILER_STRIP_GATE(0x80A21080, &lit_3908);
-
-/* 80A21084-80A21088 000004 0004+00 0/1 0/0 0/0 .rodata @3909 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_3909 = -70.0f;
-COMPILER_STRIP_GATE(0x80A21084, &lit_3909);
-#pragma pop
-
-/* 80A21088-80A2108C 000008 0004+00 0/1 0/0 0/0 .rodata @3910 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_3910 = -140.0f;
-COMPILER_STRIP_GATE(0x80A21088, &lit_3910);
-#pragma pop
-
-/* 80A1AFAC-80A1B09C 0000EC 00F0+00 1/1 0/0 0/0 .text calcEscapeForm__15daNpcKasi_Mng_cFv
- */
+
+/* 80A21854-80A21858 000054 0004+00 1/1 0/0 0/0 .bss l_HIO */
+static daNpcKasiHana_Param_c l_HIO;
+
+/* 80A1AFAC-80A1B09C 0000EC 00F0+00 1/1 0/0 0/0 .text calcEscapeForm__15daNpcKasi_Mng_cFv */
void daNpcKasi_Mng_c::calcEscapeForm() {
- // NONMATCHING
+ fopAc_ac_c* hana_p = mHanaActorMngr.getActorP();
+ if (hana_p != NULL){
+ cXyz sp1c(0.0f, 0.0f, -70.0f);
+ cXyz sp28(0.0f, 0.0f, -140.0f);
+ cXyz sp34 = fopAcM_GetPosition(hana_p);
+ cXyz sp40;
+ getOffsetFromLeader(sp1c, sp40);
+ setKyuPos(sp34 + sp40);
+ getOffsetFromLeader(sp28, sp40);
+ setMichPos(sp34 + sp40);
+ }
+}
+
+/* 80A1B0D8-80A1B1C8 000218 00F0+00 2/2 0/0 0/0 .text calcCenterPos__15daNpcKasi_Mng_cFv */
+BOOL daNpcKasi_Mng_c::calcCenterPos() {
+ fopAc_ac_c* hana_p = mHanaActorMngr.getActorP();
+ fopAc_ac_c* kyu_p = mKyuActorMngr.getActorP();
+ fopAc_ac_c* mich_p = mMichActorMngr.getActorP();
+
+ if (hana_p == NULL || kyu_p == NULL || mich_p == NULL) {
+ return FALSE;
+ }
+
+ cXyz hana_pos(*fopAcM_GetPosition_p(hana_p));
+ cXyz kyu_pos(*fopAcM_GetPosition_p(kyu_p));
+ cXyz mich_pos(*fopAcM_GetPosition_p(mich_p));
+ f32 pX = (hana_pos.x + kyu_pos.x + mich_pos.x) / 3.0f;
+ f32 pY = (hana_pos.y + kyu_pos.y + mich_pos.y) / 3.0f;
+ f32 pZ = (hana_pos.z + kyu_pos.z + mich_pos.z) / 3.0f;
+ mCenterPos.set(pX, pY, pZ);
+
+ return TRUE;
}
-/* 80A1B09C-80A1B0D8 0001DC 003C+00 5/5 0/0 0/0 .text __dt__4cXyzFv */
-// cXyz::~cXyz() {
-extern "C" void __dt__4cXyzFv() {
- // NONMATCHING
+/* 80A1B1C8-80A1B35C 000308 0194+00 1/1 0/0 0/0 .text getDistFromCenter__15daNpcKasi_Mng_cFv */
+f32 daNpcKasi_Mng_c::getDistFromCenter() {
+ f32 rv;
+
+ if (!calcCenterPos()) {
+ return -1.0f;
+ }
+
+ cXyz sp1c = fopAcM_GetPosition(daPy_getPlayerActorClass());
+ cXyz sp28 = sp1c - mCenterPos;
+ return sp28.absXZ();
}
-/* ############################################################################################## */
-/* 80A2108C-80A21090 00000C 0004+00 1/1 0/0 0/0 .rodata @3944 */
-SECTION_RODATA static f32 const lit_3944 = 3.0f;
-COMPILER_STRIP_GATE(0x80A2108C, &lit_3944);
+/* 80A1B35C-80A1B3D4 00049C 0078+00 1/1 0/0 0/0 .text getOffsetFromLeader__15daNpcKasi_Mng_cFRC4cXyzR4cXyz */
+void daNpcKasi_Mng_c::getOffsetFromLeader(cXyz const& param_1, cXyz& param_2) {
+ param_2 = param_1;
-/* 80A1B0D8-80A1B1C8 000218 00F0+00 2/2 0/0 0/0 .text calcCenterPos__15daNpcKasi_Mng_cFv
- */
-void daNpcKasi_Mng_c::calcCenterPos() {
- // NONMATCHING
+ fopAc_ac_c* hana_p = mHanaActorMngr.getActorP();
+ if (hana_p != NULL) {
+ csXyz angle(*fopAcM_GetShapeAngle_p(hana_p));
+ mDoMtx_stack_c::ZXYrotS(angle);
+ mDoMtx_stack_c::multVec(&param_2, &param_2);
+ }
}
-/* ############################################################################################## */
-/* 80A21090-80A21098 000010 0004+04 9/20 0/0 0/0 .rodata @3998 */
-SECTION_RODATA static f32 const lit_3998[1 + 1 /* padding */] = {
- -1.0f,
- /* padding */
- 0.0f,
-};
-COMPILER_STRIP_GATE(0x80A21090, &lit_3998);
+/* 80A1B410-80A1B48C 000550 007C+00 1/1 0/0 0/0 .text initPath__15daNpcKasi_Mng_cFUcUs */
+void daNpcKasi_Mng_c::initPath(u8 i_pathNo, u16 i_idx) {
+ if (!mIsPathInit) {
+ fopAc_ac_c* hana_p = mHanaActorMngr.getActorP();
+ if (hana_p != NULL) {
+ mPath.initialize();
+ mPath.setPathInfo(i_pathNo, fopAcM_GetRoomNo(hana_p), 0);
+ mPath.setIdx(i_idx);
-/* 80A21098-80A210A0 000018 0008+00 0/1 0/0 0/0 .rodata @3999 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_3999[8] = {
- 0x3F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80A21098, &lit_3999);
-#pragma pop
-
-/* 80A210A0-80A210A8 000020 0008+00 0/1 0/0 0/0 .rodata @4000 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4000[8] = {
- 0x40, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80A210A0, &lit_4000);
-#pragma pop
-
-/* 80A210A8-80A210B0 000028 0008+00 0/1 0/0 0/0 .rodata @4001 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4001[8] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80A210A8, &lit_4001);
-#pragma pop
+ OS_REPORT("---------------------dpath initialize!!\n");
-/* 80A1B1C8-80A1B35C 000308 0194+00 1/1 0/0 0/0 .text getDistFromCenter__15daNpcKasi_Mng_cFv */
-void daNpcKasi_Mng_c::getDistFromCenter() {
- // NONMATCHING
+ mIsPathInit = true;
+ }
+ }
}
-/* 80A1B35C-80A1B3D4 00049C 0078+00 1/1 0/0 0/0 .text
- * getOffsetFromLeader__15daNpcKasi_Mng_cFRC4cXyzR4cXyz */
-void daNpcKasi_Mng_c::getOffsetFromLeader(cXyz const& param_0, cXyz& param_1) {
- // NONMATCHING
-}
+/* 80A1B48C-80A1B5F0 0005CC 0164+00 1/1 0/0 0/0 .text getPlNearPoint__15daNpcKasi_Mng_cFv */
+int daNpcKasi_Mng_c::getPlNearPoint() {
+ daPy_py_c* player = daPy_getPlayerActorClass();
+ cXyz sp58(*fopAcM_GetPosition_p(player));
+ int rv = 0;
+ f32 fVar1, fVar2, fVar3;
+ fVar3 = 0.0f;
+ cXyz sp64, sp70;
-/* 80A1B3D4-80A1B410 000514 003C+00 5/5 0/0 0/0 .text __dt__5csXyzFv */
-// csXyz::~csXyz() {
-extern "C" void __dt__5csXyzFv() {
- // NONMATCHING
-}
+ for (int i = 0; i < 10; i++) {
+ sp64 = mPath.getPntPos(i);
+ sp70 = sp64 - sp58;
+ fVar1 = sp70.abs2XZ();
-/* 80A1B410-80A1B48C 000550 007C+00 1/1 0/0 0/0 .text initPath__15daNpcKasi_Mng_cFUcUs */
-void daNpcKasi_Mng_c::initPath(u8 param_0, u16 param_1) {
- // NONMATCHING
-}
+ if (i == 0) {
+ rv = 0;
+ fVar3 = fVar1;
+ } else if (fVar3 > fVar1) {
+ rv = i;
+ fVar3 = fVar1;
+ } else if (fVar1 > fVar2) break;
-/* 80A1B48C-80A1B5F0 0005CC 0164+00 1/1 0/0 0/0 .text getPlNearPoint__15daNpcKasi_Mng_cFv
- */
-void daNpcKasi_Mng_c::getPlNearPoint() {
- // NONMATCHING
+ fVar2 = fVar1;
+ }
+
+ mPlPoint = rv;
+ return rv;
}
-/* 80A1B5F0-80A1B628 000730 0038+00 1/1 0/0 0/0 .text getSygnalInfo__15daNpcKasi_Mng_cFv
- */
-void daNpcKasi_Mng_c::getSygnalInfo() {
- // NONMATCHING
+/* 80A1B5F0-80A1B628 000730 0038+00 1/1 0/0 0/0 .text getSygnalInfo__15daNpcKasi_Mng_cFv */
+int daNpcKasi_Mng_c::getSygnalInfo() {
+ int iVar1 = 1;
+ for (int i = 0; i < 20; i++) {
+ if (chkSygnal(iVar1)) {
+ return i;
+ }
+
+ iVar1 <<= 1;
+ }
+
+ return -1;
}
/* 80A1B628-80A1B6F8 000768 00D0+00 1/1 0/0 0/0 .text sendInfo__15daNpcKasi_Mng_cFv */
void daNpcKasi_Mng_c::sendInfo() {
- // NONMATCHING
+ int sygnalInfo = getSygnalInfo();
+ daNpcKasiKyu_c* kyu_p = (daNpcKasiKyu_c*)mKyuActorMngr.getActorP();
+ if (kyu_p != NULL) {
+ kyu_p->setSygnal(sygnalInfo);
+ kyu_p->setChacePos(mKyuPos);
+ kyu_p->setCenterPos(mCenterPos);
+ kyu_p->setPlPoint(mPlPoint);
+ }
+
+ daNpcKasiMich_c* michP = (daNpcKasiMich_c*)mMichActorMngr.getActorP();
+ if (michP != NULL) {
+ michP->setSygnal(sygnalInfo);
+ michP->setChacePos(mMichPos);
+ michP->setCenterPos(mCenterPos);
+ michP->setPlPoint(mPlPoint);
+ }
}
/* 80A1B6F8-80A1B774 000838 007C+00 1/1 0/0 0/0 .text offTalk__15daNpcKasi_Mng_cFv */
void daNpcKasi_Mng_c::offTalk() {
- // NONMATCHING
+ daNpcKasiHana_c* hana_p = (daNpcKasiHana_c*)mHanaActorMngr.getActorP();
+ daNpcKasiKyu_c* kyu_p = (daNpcKasiKyu_c*)mKyuActorMngr.getActorP();
+ daNpcKasiMich_c* mich_p = (daNpcKasiMich_c*)mMichActorMngr.getActorP();
+
+ if (hana_p != NULL) {
+ hana_p->off_talked();
+ }
+
+ if (kyu_p != NULL) {
+ kyu_p->off_talked();
+ }
+
+ if (mich_p != NULL) {
+ mich_p->off_talked();
+ }
}
/* 80A1B774-80A1B810 0008B4 009C+00 1/1 0/0 0/0 .text chkTalk__15daNpcKasi_Mng_cFv */
-void daNpcKasi_Mng_c::chkTalk() {
- // NONMATCHING
+BOOL daNpcKasi_Mng_c::chkTalk() {
+ daNpcKasiHana_c* hana_p = (daNpcKasiHana_c*)mHanaActorMngr.getActorP();
+ daNpcKasiKyu_c* kyu_p = (daNpcKasiKyu_c*)mKyuActorMngr.getActorP();
+ daNpcKasiMich_c* mich_p = (daNpcKasiMich_c*)mMichActorMngr.getActorP();
+
+ if (hana_p == NULL || kyu_p == NULL || mich_p == NULL) {
+ OS_REPORT("---------------------some girl no exist!!\n");
+
+ return FALSE;
+ }
+
+ bool rv = true;
+ bool bVar1 = true;
+
+ if (!hana_p->is_talked() && !kyu_p->is_talked()) {
+ bVar1 = false;
+ }
+
+ if (!bVar1 && !mich_p->is_talked()) {
+ rv = false;
+ }
+
+ return rv;
}
/* 80A1B810-80A1B884 000950 0074+00 1/1 0/0 0/0 .text chkFear__15daNpcKasi_Mng_cFv */
-void daNpcKasi_Mng_c::chkFear() {
- // NONMATCHING
+BOOL daNpcKasi_Mng_c::chkFear() {
+ daNpcKasiKyu_c* kyu_p = (daNpcKasiKyu_c*)mKyuActorMngr.getActorP();
+ if (kyu_p != NULL && kyu_p->is_fear()) {
+ return TRUE;
+ }
+
+ daNpcKasiMich_c* mich_p = (daNpcKasiMich_c*)mMichActorMngr.getActorP();
+ if (mich_p != NULL && mich_p->is_fear()) {
+ return TRUE;
+ }
+
+ return FALSE;
}
/* 80A1B884-80A1B920 0009C4 009C+00 1/1 0/0 0/0 .text chkEscape__15daNpcKasi_Mng_cFv */
-void daNpcKasi_Mng_c::chkEscape() {
- // NONMATCHING
+BOOL daNpcKasi_Mng_c::chkEscape() {
+ daNpcKasiHana_c* hana_p = (daNpcKasiHana_c*)mHanaActorMngr.getActorP();
+ daNpcKasiKyu_c* kyu_p = (daNpcKasiKyu_c*)mKyuActorMngr.getActorP();
+ daNpcKasiMich_c* mich_p = (daNpcKasiMich_c*)mMichActorMngr.getActorP();
+
+ if (hana_p == NULL || kyu_p == NULL || mich_p == NULL) {
+ OS_REPORT("---------------------some girl no exist!!\n");
+
+ return TRUE;
+ }
+
+ bool rv = false;
+ bool bVar1 = false;
+
+ if (hana_p->is_escape() && kyu_p->is_escape()) {
+ bVar1 = true;
+ }
+
+ if (bVar1 && mich_p->is_escape()) {
+ rv = true;
+ }
+
+ return rv;
}
-/* ############################################################################################## */
-/* 80A210B0-80A210BC 000030 000C+00 0/1 0/0 0/0 .rodata @4181 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4181[12] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80A210B0, &lit_4181);
-#pragma pop
-
-/* 80A210BC-80A210C0 00003C 0004+00 0/1 0/0 0/0 .rodata @4210 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4210 = 30.0f;
-COMPILER_STRIP_GATE(0x80A210BC, &lit_4210);
-#pragma pop
-
-/* 80A210C0-80A210C4 000040 0004+00 3/8 0/0 0/0 .rodata @4211 */
-SECTION_RODATA static f32 const lit_4211 = 1.0f;
-COMPILER_STRIP_GATE(0x80A210C0, &lit_4211);
-
-/* 80A210C4-80A210C8 000044 0004+00 0/1 0/0 0/0 .rodata @4212 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4212 = 115.0f;
-COMPILER_STRIP_GATE(0x80A210C4, &lit_4212);
-#pragma pop
-
-/* 80A1B920-80A1BAAC 000A60 018C+00 1/1 0/0 0/0 .text createHearts__15daNpcKasi_Mng_cFv
- */
-void daNpcKasi_Mng_c::createHearts() {
- // NONMATCHING
+/* 80A1B920-80A1BAAC 000A60 018C+00 1/1 0/0 0/0 .text createHearts__15daNpcKasi_Mng_cFv */
+BOOL daNpcKasi_Mng_c::createHearts() {
+ fopAc_ac_c* actors[3] = {mHanaActorMngr.getActorP(), mKyuActorMngr.getActorP(), mMichActorMngr.getActorP()};
+ f32 i_speedF = 0.0f;
+ f32 i_speedY = 30.0f;
+ cXyz i_scale(1.0f, 1.0f, 1.0f);
+
+ for (int i = 0; i < 3; i++) {
+ fopAc_ac_c* actor_p = actors[i];
+ if (actor_p != NULL) {
+ cXyz i_pos(*fopAcM_GetPosition_p(actor_p));
+ i_pos.y += 115.0f;
+ fopAc_ac_c* heart_p = NULL;
+ csXyz i_angle(0, cLib_getRndValue<int>(0, 7) << 13, 0);
+ heart_p = fopAcM_fastCreateItem(&i_pos, fpcNm_ITEM_HEART, fopAcM_GetRoomNo(actor_p), &i_angle,
+ &i_scale, &i_speedF, &i_speedY, -1, 0, NULL);
+ if (heart_p != NULL) {
+ Z2GetAudioMgr()->seStart(Z2SE_GIRLS_HEART, &i_pos, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0);
+ fopAcM_OnStatus(heart_p, fopAcM_STATUS_UNK_004000);
+ }
+ }
+ }
+
+ return TRUE;
}
/* 80A1BAAC-80A1BB24 000BEC 0078+00 1/1 0/0 0/0 .text allDemoMove__15daNpcKasi_Mng_cFv */
void daNpcKasi_Mng_c::allDemoMove() {
- // NONMATCHING
+ daNpcKasiHana_c* hana_p = (daNpcKasiHana_c*)mHanaActorMngr.getActorP();
+ if (hana_p != NULL) {
+ fopAcM_OnStatus(hana_p, fopAcM_STATUS_UNK_004000);
+ }
+
+ daNpcKasiKyu_c* kyu_p = (daNpcKasiKyu_c*)mKyuActorMngr.getActorP();
+ if (kyu_p != NULL) {
+ fopAcM_OnStatus(kyu_p, fopAcM_STATUS_UNK_004000);
+ }
+
+ daNpcKasiMich_c* mich_p = (daNpcKasiMich_c*)mMichActorMngr.getActorP();
+ if (mich_p != NULL) {
+ fopAcM_OnStatus(mich_p, fopAcM_STATUS_UNK_004000);
+ }
}
-/* 80A1BB24-80A1BB9C 000C64 0078+00 1/1 0/0 0/0 .text allDemoNotMove__15daNpcKasi_Mng_cFv
- */
+/* 80A1BB24-80A1BB9C 000C64 0078+00 1/1 0/0 0/0 .text allDemoNotMove__15daNpcKasi_Mng_cFv */
void daNpcKasi_Mng_c::allDemoNotMove() {
- // NONMATCHING
+ daNpcKasiHana_c* hana_p = (daNpcKasiHana_c*)mHanaActorMngr.getActorP();
+ if (hana_p != NULL) {
+ fopAcM_OffStatus(hana_p, fopAcM_STATUS_UNK_004000);
+ }
+
+ daNpcKasiKyu_c* kyu_p = (daNpcKasiKyu_c*)mKyuActorMngr.getActorP();
+ if (kyu_p != NULL) {
+ fopAcM_OffStatus(kyu_p, fopAcM_STATUS_UNK_004000);
+ }
+
+ daNpcKasiMich_c* mich_p = (daNpcKasiMich_c*)mMichActorMngr.getActorP();
+ if (mich_p != NULL) {
+ fopAcM_OffStatus(mich_p, fopAcM_STATUS_UNK_004000);
+ }
}
/* 80A1BB9C-80A1BBE0 000CDC 0044+00 2/2 0/0 0/0 .text isMiniGamePlaying__15daNpcKasi_Mng_cFv */
-void daNpcKasi_Mng_c::isMiniGamePlaying() {
- // NONMATCHING
+BOOL daNpcKasi_Mng_c::isMiniGamePlaying() {
+ BOOL rv = FALSE;
+ daNpcChin_c* dancho_p = (daNpcChin_c*)mDanchoActorMngr.getActorP();
+
+ if (dancho_p != NULL) {
+ rv = dancho_p->isMiniGamePlaying();
+ }
+
+ return rv;
}
-/* 80A1BBE0-80A1BC88 000D20 00A8+00 1/1 0/0 0/0 .text schMemberActor__15daNpcKasi_Mng_cFv
- */
+/* 80A1BBE0-80A1BC88 000D20 00A8+00 1/1 0/0 0/0 .text schMemberActor__15daNpcKasi_Mng_cFv */
void daNpcKasi_Mng_c::schMemberActor() {
- // NONMATCHING
+ if (mKyuActorMngr.getPId() == fpcM_ERROR_PROCESS_ID_e) {
+ fopAc_ac_c* kyu_p = NULL;
+
+ if (fopAcM_SearchByName(PROC_NPC_KASIKYU, (fopAc_ac_c**)&kyu_p) != 0 && kyu_p != NULL) {
+ mKyuActorMngr.entry(kyu_p);
+ }
+ }
+
+ if (mMichActorMngr.getPId() == fpcM_ERROR_PROCESS_ID_e) {
+ fopAc_ac_c* mich_p = NULL;
+
+ if (fopAcM_SearchByName(PROC_NPC_KASIMICH, (fopAc_ac_c**)&mich_p) != 0 && mich_p != NULL) {
+ mMichActorMngr.entry(mich_p);
+ }
+ }
}
-/* 80A1BC88-80A1BCF0 000DC8 0068+00 1/1 0/0 0/0 .text schDanchoActor__15daNpcKasi_Mng_cFv
- */
+/* 80A1BC88-80A1BCF0 000DC8 0068+00 1/1 0/0 0/0 .text schDanchoActor__15daNpcKasi_Mng_cFv */
void daNpcKasi_Mng_c::schDanchoActor() {
- // NONMATCHING
+ if (mDanchoActorMngr.getPId() == fpcM_ERROR_PROCESS_ID_e) {
+ fopAc_ac_c* dancho_p = NULL;
+
+ if (fopAcM_SearchByName(PROC_NPC_CHIN, (fopAc_ac_c**)&dancho_p) != 0 && dancho_p != NULL) {
+ mDanchoActorMngr.entry(dancho_p);
+ }
+ }
}
/* 80A1BCF0-80A1BD6C 000E30 007C+00 2/2 0/0 0/0 .text deleteAllMember__15daNpcKasi_Mng_cFv */
void daNpcKasi_Mng_c::deleteAllMember() {
- // NONMATCHING
-}
-
-/* 80A1BD6C-80A1BDD8 000EAC 006C+00 1/1 0/0 0/0 .text chgWeightHeavy__15daNpcKasi_Mng_cFv
- */
+ fopAc_ac_c* kyu_p = mKyuActorMngr.getActorP();
+ if (kyu_p != NULL) {
+ fopAcM_delete(kyu_p);
+ mKyuActorMngr.remove();
+ }
+
+ fopAc_ac_c* mich_p = mMichActorMngr.getActorP();
+ if (mich_p != NULL) {
+ fopAcM_delete(mich_p);
+ mMichActorMngr.remove();
+ }
+
+ fopAc_ac_c* hana_p = mHanaActorMngr.getActorP();
+ if (hana_p != NULL) {
+ fopAcM_delete(hana_p);
+ mHanaActorMngr.remove();
+ }
+}
+
+/* 80A1BD6C-80A1BDD8 000EAC 006C+00 1/1 0/0 0/0 .text chgWeightHeavy__15daNpcKasi_Mng_cFv */
void daNpcKasi_Mng_c::chgWeightHeavy() {
- // NONMATCHING
+ daNpcKasiHana_c* hana_p = (daNpcKasiHana_c*)mHanaActorMngr.getActorP();
+ if (hana_p != NULL) {
+ hana_p->chgWeightHeavy();
+ }
+
+ daNpcKasiKyu_c* kyu_p = (daNpcKasiKyu_c*)mKyuActorMngr.getActorP();
+ if (kyu_p != NULL) {
+ kyu_p->chgWeightHeavy();
+ }
+
+ daNpcKasiMich_c* mich_p = (daNpcKasiMich_c*)mMichActorMngr.getActorP();
+ if (mich_p != NULL) {
+ mich_p->chgWeightHeavy();
+ }
}
-/* 80A1BDD8-80A1BE44 000F18 006C+00 1/1 0/0 0/0 .text chgWeightLight__15daNpcKasi_Mng_cFv
- */
+/* 80A1BDD8-80A1BE44 000F18 006C+00 1/1 0/0 0/0 .text chgWeightLight__15daNpcKasi_Mng_cFv */
void daNpcKasi_Mng_c::chgWeightLight() {
- // NONMATCHING
-}
+ daNpcKasiHana_c* hana_p = (daNpcKasiHana_c*)mHanaActorMngr.getActorP();
+ if (hana_p != NULL) {
+ hana_p->chgWeightLight();
+ }
+
+ daNpcKasiKyu_c* kyu_p = (daNpcKasiKyu_c*)mKyuActorMngr.getActorP();
+ if (kyu_p != NULL) {
+ kyu_p->chgWeightLight();
+ }
-/* ############################################################################################## */
-/* 80A21358-80A21358 0002D8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
-#pragma push
-#pragma force_active on
-SECTION_DEAD static char const* const stringBase_80A21358 = "kasi_hana";
-SECTION_DEAD static char const* const stringBase_80A21362 = "girls";
-SECTION_DEAD static char const* const stringBase_80A21368 = "Wgeneral";
-SECTION_DEAD static char const* const stringBase_80A21371 = "KASIMASI_APPEAR";
-SECTION_DEAD static char const* const stringBase_80A21381 = "KASIMASI_TALK";
-SECTION_DEAD static char const* const stringBase_80A2138F = "KASIMASI_HEART";
-SECTION_DEAD static char const* const stringBase_80A2139E = "KASIMASI_CHEER";
-SECTION_DEAD static char const* const stringBase_80A213AD = "KASIMASI_CHEER2";
-#pragma pop
+ daNpcKasiMich_c* mich_p = (daNpcKasiMich_c*)mMichActorMngr.getActorP();
+ if (mich_p != NULL) {
+ mich_p->chgWeightLight();
+ }
+}
/* 80A213F4-80A214A8 000020 00B4+00 1/1 0/0 0/0 .data l_bckGetParamList */
-SECTION_DATA static u8 l_bckGetParamList[180] = {
- 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00,
- 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00,
- 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02,
- 0x00, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
- 0x1E, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00,
- 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x02, 0x00,
- 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02,
- 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
- 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,
+static daNpc_GetParam2 l_bckGetParamList[15] = {
+ {BCK_MICH_IYAN_WAIT, J3DFrameCtrl::EMode_LOOP, GIRLS},
+ {BCK_MICH_KYA_TALK, J3DFrameCtrl::EMode_LOOP, GIRLS},
+ {BCK_MICH_OUEN_WAIT_A, J3DFrameCtrl::EMode_LOOP, GIRLS},
+ {BCK_MICH_OUEN_WAIT_B, J3DFrameCtrl::EMode_LOOP, GIRLS},
+ {BCK_W_WAIT_A, J3DFrameCtrl::EMode_LOOP, WGENERAL},
+ {BCK_W_TALK_B, J3DFrameCtrl::EMode_NONE, WGENERAL},
+ {BCK_W_TO_WOLF, J3DFrameCtrl::EMode_LOOP, WGENERAL},
+ {BCK_W_WALK_A, J3DFrameCtrl::EMode_LOOP, WGENERAL},
+ {BCK_W_LOOK_B, J3DFrameCtrl::EMode_LOOP, WGENERAL},
+ {BCK_W_RUN_A, J3DFrameCtrl::EMode_LOOP, WGENERAL},
+ {BCK_W_SURPRISE, J3DFrameCtrl::EMode_NONE, WGENERAL},
+ {BCK_W_WAIT_A, J3DFrameCtrl::EMode_NONE, WGENERAL},
+ {BCK_W_TALK_A, J3DFrameCtrl::EMode_NONE, WGENERAL},
+ {BCK_W_2LADYTALK_B, J3DFrameCtrl::EMode_NONE, WGENERAL},
+ {BCK_W_2NORMALTALK_B, J3DFrameCtrl::EMode_NONE, WGENERAL},
};
/* 80A214A8-80A214B4 0000D4 000C+00 0/0 0/0 0/0 .data l_btpGetParamList */
-#pragma push
-#pragma force_active on
-SECTION_DATA static u8 l_btpGetParamList[12] = {
- 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00,
+static daNpc_GetParam2 l_btpGetParamList[1] = {
+ {BTP_HANA, J3DFrameCtrl::EMode_LOOP, KASI_HANA},
};
-#pragma pop
/* 80A214B4-80A214C0 -00001 000C+00 5/7 0/0 0/0 .data l_arcNames */
-SECTION_DATA static void* l_arcNames[3] = {
- (void*)&d_a_npc_kasi_hana__stringBase0,
- (void*)(((char*)&d_a_npc_kasi_hana__stringBase0) + 0xA),
- (void*)(((char*)&d_a_npc_kasi_hana__stringBase0) + 0x10),
+static char* l_arcNames[3] = {
+ "kasi_hana",
+ "girls",
+ "Wgeneral",
};
/* 80A214C0-80A214D8 -00001 0018+00 0/3 0/0 0/0 .data l_evtNames */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* l_evtNames[6] = {
- (void*)NULL,
- (void*)(((char*)&d_a_npc_kasi_hana__stringBase0) + 0x19),
- (void*)(((char*)&d_a_npc_kasi_hana__stringBase0) + 0x29),
- (void*)(((char*)&d_a_npc_kasi_hana__stringBase0) + 0x37),
- (void*)(((char*)&d_a_npc_kasi_hana__stringBase0) + 0x46),
- (void*)(((char*)&d_a_npc_kasi_hana__stringBase0) + 0x55),
+static char* l_evtNames[6] = {
+ NULL,
+ "KASIMASI_APPEAR",
+ "KASIMASI_TALK",
+ "KASIMASI_HEART",
+ "KASIMASI_CHEER",
+ "KASIMASI_CHEER2",
};
-#pragma pop
/* 80A214D8-80A214DC -00001 0004+00 0/2 0/0 0/0 .data l_myName */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* l_myName = (void*)&d_a_npc_kasi_hana__stringBase0;
-#pragma pop
-
-/* 80A214DC-80A214E8 -00001 000C+00 0/1 0/0 0/0 .data @4324 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4324[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)_Evt_Kasi_Appear__15daNpcKasiHana_cFi,
-};
-#pragma pop
-
-/* 80A214E8-80A214F4 -00001 000C+00 0/1 0/0 0/0 .data @4325 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4325[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)_Evt_Kasi_Talk__15daNpcKasiHana_cFi,
-};
-#pragma pop
-
-/* 80A214F4-80A21500 -00001 000C+00 0/1 0/0 0/0 .data @4326 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4326[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)_Evt_Kasi__15daNpcKasiHana_cFi,
-};
-#pragma pop
-
-/* 80A21500-80A2150C -00001 000C+00 0/1 0/0 0/0 .data @4327 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4327[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)_Evt_Kasi_Cheer__15daNpcKasiHana_cFi,
-};
-#pragma pop
-
-/* 80A2150C-80A21518 -00001 000C+00 0/1 0/0 0/0 .data @4328 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4328[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)_Evt_Kasi_Cheer2__15daNpcKasiHana_cFi,
-};
-#pragma pop
+static char* l_myName = "kasi_hana";
/* 80A21518-80A21560 000144 0048+00 0/2 0/0 0/0 .data mEvtSeqList__15daNpcKasiHana_c */
-#pragma push
-#pragma force_active on
-SECTION_DATA u8 daNpcKasiHana_c::mEvtSeqList[72] = {
- 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,
-};
-#pragma pop
-
-/* 80A21560-80A2156C -00001 000C+00 0/1 0/0 0/0 .data @4941 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4941[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)wait__15daNpcKasiHana_cFi,
-};
-#pragma pop
-
-/* 80A2156C-80A21578 -00001 000C+00 0/1 0/0 0/0 .data @4947 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4947[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)demo__15daNpcKasiHana_cFi,
-};
-#pragma pop
-
-/* 80A21578-80A21584 -00001 000C+00 0/1 0/0 0/0 .data @4950 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4950[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)demo__15daNpcKasiHana_cFi,
-};
-#pragma pop
-
-/* 80A21584-80A21590 -00001 000C+00 0/1 0/0 0/0 .data @4955 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4955[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)cheer__15daNpcKasiHana_cFi,
-};
-#pragma pop
-
-/* 80A21590-80A2159C -00001 000C+00 0/1 0/0 0/0 .data @4962 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4962[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)demo__15daNpcKasiHana_cFi,
-};
-#pragma pop
-
-/* 80A2159C-80A215A8 -00001 000C+00 0/1 0/0 0/0 .data @4966 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4966[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)fear__15daNpcKasiHana_cFi,
-};
-#pragma pop
-
-/* 80A215A8-80A215B4 -00001 000C+00 1/1 0/0 0/0 .data @5084 */
-SECTION_DATA static void* lit_5084[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)wait__15daNpcKasiHana_cFi,
-};
-
-/* 80A215B4-80A215C0 -00001 000C+00 0/1 0/0 0/0 .data @5363 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_5363[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)chace_st__15daNpcKasiHana_cFi,
-};
-#pragma pop
-
-/* 80A215C0-80A215CC -00001 000C+00 0/1 0/0 0/0 .data @5369 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_5369[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)chace_st__15daNpcKasiHana_cFi,
-};
-#pragma pop
-
-/* 80A215CC-80A215D8 -00001 000C+00 0/1 0/0 0/0 .data @5376 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_5376[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)chace__15daNpcKasiHana_cFi,
-};
-#pragma pop
-
-/* 80A215D8-80A215E4 -00001 000C+00 0/1 0/0 0/0 .data @5379 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_5379[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)turn__15daNpcKasiHana_cFi,
-};
-#pragma pop
-
-/* 80A215E4-80A215F0 -00001 000C+00 0/1 0/0 0/0 .data @5386 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_5386[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)cheer__15daNpcKasiHana_cFi,
-};
-#pragma pop
-
-/* 80A215F0-80A215FC -00001 000C+00 0/1 0/0 0/0 .data @5395 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_5395[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)talk__15daNpcKasiHana_cFi,
-};
-#pragma pop
-
-/* 80A215FC-80A21608 -00001 000C+00 0/1 0/0 0/0 .data @5400 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_5400[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)demo__15daNpcKasiHana_cFi,
-};
-#pragma pop
-
-/* 80A21608-80A21614 -00001 000C+00 0/1 0/0 0/0 .data @5407 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_5407[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)fear__15daNpcKasiHana_cFi,
-};
-#pragma pop
-
-/* 80A21614-80A21620 -00001 000C+00 1/1 0/0 0/0 .data @5485 */
-SECTION_DATA static void* lit_5485[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)chace__15daNpcKasiHana_cFi,
+daNpcKasiHana_c::EventFn daNpcKasiHana_c::mEvtSeqList[6] = {
+ NULL,
+ &daNpcKasiHana_c::_Evt_Kasi_Appear,
+ &daNpcKasiHana_c::_Evt_Kasi_Talk,
+ &daNpcKasiHana_c::_Evt_Kasi,
+ &daNpcKasiHana_c::_Evt_Kasi_Cheer,
+ &daNpcKasiHana_c::_Evt_Kasi_Cheer2,
};
-/* 80A21620-80A2162C -00001 000C+00 1/1 0/0 0/0 .data @5502 */
-SECTION_DATA static void* lit_5502[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)wait__15daNpcKasiHana_cFi,
-};
-
-/* 80A2162C-80A21638 -00001 000C+00 1/1 0/0 0/0 .data @5505 */
-SECTION_DATA static void* lit_5505[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)chace_st__15daNpcKasiHana_cFi,
-};
+/* 80A1BE44-80A1C0A4 000F84 0260+00 1/1 0/0 0/0 .text __ct__15daNpcKasiHana_cFv */
+daNpcKasiHana_c::daNpcKasiHana_c() {}
-/* 80A21638-80A21644 -00001 000C+00 1/1 0/0 0/0 .data @5577 */
-SECTION_DATA static void* lit_5577[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)wait__15daNpcKasiHana_cFi,
-};
+/* 80A1C0A4-80A1C334 0011E4 0290+00 1/0 0/0 0/0 .text __dt__15daNpcKasiHana_cFv */
+daNpcKasiHana_c::~daNpcKasiHana_c() {
+ for (int i = 0; i < 3; i++) {
+ dComIfG_resDelete(&mPhases[i], l_arcNames[i]);
+ }
+
+ if (heap != NULL) {
+ mpMorf->stopZelAnime();
+ }
+}
-/* 80A21644-80A21660 -00001 001C+00 1/1 0/0 0/0 .data @5636 */
-SECTION_DATA static void* lit_5636[7] = {
- (void*)(((char*)fear__15daNpcKasiHana_cFi) + 0x1F8),
- (void*)(((char*)fear__15daNpcKasiHana_cFi) + 0x48),
- (void*)(((char*)fear__15daNpcKasiHana_cFi) + 0xB4),
- (void*)(((char*)fear__15daNpcKasiHana_cFi) + 0x1F8),
- (void*)(((char*)fear__15daNpcKasiHana_cFi) + 0xF0),
- (void*)(((char*)fear__15daNpcKasiHana_cFi) + 0x17C),
- (void*)(((char*)fear__15daNpcKasiHana_cFi) + 0x1E0),
+/* 80A210C8-80A21144 000048 007C+00 5/12 0/0 0/0 .rodata m__21daNpcKasiHana_Param_c */
+daNpcKasiHana_HIOParam const daNpcKasiHana_Param_c::m = {
+ 55.0f,
+ -3.0f,
+ 1.0f,
+ 500.0f,
+ 216.0f,
+ 140.0f,
+ 35.0f,
+ 30.0f,
+ 0.0f,
+ 0.0f,
+ 10.0f,
+ -10.0f,
+ 30.0f,
+ -10.0f,
+ 45.0f,
+ -45.0f,
+ 0.6f,
+ 12.0f,
+ 2,
+ 6,
+ 3,
+ 6,
+ 60.0f,
+ 500.0f,
+ 300.0f,
+ -300.0f,
+ 60,
+ 0,
+ 0,
+ 0,
+ 0,
+ false,
+ false,
+ 800.0f,
+ 400.0f,
+ 14.0f,
+ 16.0f,
};
-/* 80A21660-80A2166C -00001 000C+00 1/1 0/0 0/0 .data @5717 */
-SECTION_DATA static void* lit_5717[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)wait__15daNpcKasiHana_cFi,
-};
+/* 80A1C334-80A1C5B0 001474 027C+00 1/1 0/0 0/0 .text Create__15daNpcKasiHana_cFv */
+cPhs__Step daNpcKasiHana_c::Create() {
+ fopAcM_SetupActor(this, daNpcKasiHana_c);
+
+ mMessageNo = getMessageNo();
+ mType = getType();
+
+ cPhs__Step phase = cPhs_ERROR_e;
+ for (int i = 0; i < 3; i++) {
+ phase = (cPhs__Step)dComIfG_resLoad(&mPhases[i], l_arcNames[i]);
+
+ if (phase != cPhs_COMPLEATE_e) {
+ return phase;
+ }
+ }
+
+ if (phase == cPhs_COMPLEATE_e) {
+ if (!fopAcM_entrySolidHeap(this, createHeapCallBack, 0x1940)) {
+ return cPhs_ERROR_e;
+ }
+
+ J3DModel* model = mpMorf->getModel();
+ fopAcM_SetMtx(this, mpMorf->getModel()->getBaseTRMtx());
+ fopAcM_setCullSizeBox(this, -60.0f, -10.0f, -60.0f, 60.0f, 160.0f, 60.0f);
+ mSound.init(&current.pos, &eyePos, 3, 1);
+
+ mAcchCir.SetWall(daNpcKasiHana_Param_c::m.common.width, daNpcKasiHana_Param_c::m.common.knee_length);
+ 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));
+ mAcch.CrrPos(dComIfG_Bgsp());
+ mCcStts.Init(0xFE, 0, this);
+ mCyl.Set(mCcDCyl);
+ mCyl.SetStts(&mCcStts);
+ mCyl.SetTgType(0);
+ mCyl.SetTgSPrm(0);
+ mCyl.SetH(daNpcKasiHana_Param_c::m.common.height);
+ mCyl.SetR(daNpcKasiHana_Param_c::m.common.width);
+ mGndChk = mAcch.m_gnd;
+ mGroundH = mAcch.GetGroundH();
+
+ setEnvTevColor();
+ setRoomNo();
+ reset();
+ Execute();
+ }
+
+ return phase;
+}
-/* 80A2166C-80A21678 -00001 000C+00 1/1 0/0 0/0 .data @5727 */
-SECTION_DATA static void* lit_5727[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)wait__15daNpcKasiHana_cFi,
-};
+/* 80A1C5B0-80A1C734 0016F0 0184+00 1/1 0/0 0/0 .text CreateHeap__15daNpcKasiHana_cFv */
+int daNpcKasiHana_c::CreateHeap() {
+ J3DModelData* mdlData_p = (J3DModelData*)dComIfG_getObjectRes(l_arcNames[0], 5);
-/* 80A21678-80A21684 -00001 000C+00 0/1 0/0 0/0 .data @5762 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_5762[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)wait__15daNpcKasiHana_cFi,
-};
-#pragma pop
-
-/* 80A21684-80A21690 -00001 000C+00 0/1 0/0 0/0 .data @5765 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_5765[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)escape__15daNpcKasiHana_cFi,
-};
-#pragma pop
-
-/* 80A21690-80A2169C -00001 000C+00 0/1 0/0 0/0 .data @5768 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_5768[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)wait__15daNpcKasiHana_cFi,
-};
-#pragma pop
-
-/* 80A2169C-80A216A8 -00001 000C+00 0/1 0/0 0/0 .data @5775 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_5775[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)wait__15daNpcKasiHana_cFi,
-};
-#pragma pop
-
-/* 80A216A8-80A216B4 -00001 000C+00 0/1 0/0 0/0 .data @5780 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_5780[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)cheer__15daNpcKasiHana_cFi,
-};
-#pragma pop
-
-/* 80A216B4-80A216C0 -00001 000C+00 0/1 0/0 0/0 .data @5860 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_5860[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)wait__15daNpcKasiHana_cFi,
-};
-#pragma pop
+ JUT_ASSERT(950, 0 != mdlData_p);
-/* 80A216C0-80A216E0 -00001 0020+00 1/0 0/0 0/0 .data daNpcKasiHana_MethodTable */
-static actor_method_class daNpcKasiHana_MethodTable = {
- (process_method_func)daNpcKasiHana_Create__FPv,
- (process_method_func)daNpcKasiHana_Delete__FPv,
- (process_method_func)daNpcKasiHana_Execute__FPv,
- (process_method_func)daNpcKasiHana_IsDelete__FPv,
- (process_method_func)daNpcKasiHana_Draw__FPv,
-};
+ mpMorf = new mDoExt_McaMorfSO(mdlData_p, NULL, NULL, NULL, -1, 1.0f, 0, -1, &mSound, 0x80000, 0x11020084);
+ if (mpMorf != NULL && mpMorf->getModel() == NULL) {
+ mpMorf->stopZelAnime();
+ mpMorf = NULL;
+ }
-/* 80A216E0-80A21710 -00001 0030+00 0/0 0/0 1/0 .data g_profile_NPC_KASIHANA */
-extern actor_process_profile_definition g_profile_NPC_KASIHANA = {
- fpcLy_CURRENT_e, // mLayerID
- 7, // mListID
- fpcPi_CURRENT_e, // mListPrio
- PROC_NPC_KASIHANA, // mProcName
- &g_fpcLf_Method.base, // sub_method
- sizeof(daNpcKasiHana_c), // mSize
- 0, // mSizeOther
- 0, // mParameters
- &g_fopAc_Method.base, // sub_method
- 420, // mPriority
- &daNpcKasiHana_MethodTable, // sub_method
- 0x00040108, // mStatus
- fopAc_NPC_e, // mActorType
- fopAc_CULLBOX_CUSTOM_e, // cullType
-};
+ if (mpMorf == NULL) {
+ return 0;
+ }
-/* 80A21710-80A21758 00033C 0048+00 2/2 0/0 0/0 .data __vt__15daNpcKasiHana_c */
-SECTION_DATA extern void* __vt__15daNpcKasiHana_c[18] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__15daNpcKasiHana_cFv,
- (void*)setParam__15daNpcKasiHana_cFv,
- (void*)main__15daNpcKasiHana_cFv,
- (void*)ctrlBtk__8daNpcF_cFv,
- (void*)adjustShapeAngle__15daNpcKasiHana_cFv,
- (void*)setMtx__8daNpcF_cFv,
- (void*)setMtx2__8daNpcF_cFv,
- (void*)setAttnPos__15daNpcKasiHana_cFv,
- (void*)setCollisions__8daNpcF_cFv,
- (void*)setExpressionAnm__8daNpcF_cFib,
- (void*)setExpressionBtp__8daNpcF_cFi,
- (void*)setExpression__8daNpcF_cFif,
- (void*)setMotionAnm__15daNpcKasiHana_cFif,
- (void*)setMotion__15daNpcKasiHana_cFifi,
- (void*)drawDbgInfo__15daNpcKasiHana_cFv,
- (void*)drawOtherMdls__8daNpcF_cFv,
-};
+ cXyz i_scale(1.0f, 0.8630768f, 1.0f);
+ mpMorf->offTranslate();
+ mpMorf->setTranslateScale(i_scale);
-/* 80A21758-80A21764 000384 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,
-};
+ J3DModel* model = mpMorf->getModel();
+ for (u16 i = 0; i < mdlData_p->getJointNum(); i++) {
+ mdlData_p->getJointNodePointer(i)->setCallBack(ctrlJointCallBack);
+ }
+ model->setUserArea((u32)this);
-/* 80A21764-80A21788 000390 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_80A206CC,
- (void*)NULL,
- (void*)NULL,
- (void*)func_80A206C4,
-};
+ setMotion(MOT_W_WAIT_A, -1.0f, 0);
-/* 80A21788-80A21794 0003B4 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,
-};
+ return 1;
+}
-/* 80A21794-80A217A0 0003C0 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,
-};
+/* 80A1C734-80A1C768 001874 0034+00 1/1 0/0 0/0 .text Delete__15daNpcKasiHana_cFv */
+int daNpcKasiHana_c::Delete() {
+ this->~daNpcKasiHana_c();
+ return 1;
+}
-/* 80A217A0-80A217AC 0003CC 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,
-};
+/* 80A1C768-80A1C78C 0018A8 0024+00 2/2 0/0 0/0 .text Execute__15daNpcKasiHana_cFv */
+int daNpcKasiHana_c::Execute() {
+ execute();
+ return 1;
+}
-/* 80A217AC-80A217B8 0003D8 000C+00 6/6 0/0 0/0 .data __vt__18daNpcF_ActorMngr_c */
-SECTION_DATA extern void* __vt__18daNpcF_ActorMngr_c[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__18daNpcF_ActorMngr_cFv,
-};
+/* 80A1C78C-80A1C7D8 0018CC 004C+00 1/1 0/0 0/0 .text Draw__15daNpcKasiHana_cFv */
+int daNpcKasiHana_c::Draw() {
+ if (!mEscape) {
+ draw(FALSE, FALSE, daNpcKasiHana_Param_c::m.common.real_shadow_size, NULL, FALSE);
+ }
-/* 80A217B8-80A217C4 0003E4 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,
-};
+ return 1;
+}
-/* 80A217C4-80A217D0 0003F0 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,
-};
+/* 80A1C7D8-80A1C964 001918 018C+00 1/1 0/0 0/0 .text ctrlJoint__15daNpcKasiHana_cFP8J3DJointP8J3DModel */
+int daNpcKasiHana_c::ctrlJoint(J3DJoint* i_joint, J3DModel* i_model) {
+ int jntNo = i_joint->getJntNo();
+ int i_jointList[3] = {JNT_BACKBONE, JNT_NECK, JNT_HEAD};
-/* 80A217D0-80A217DC 0003FC 000C+00 4/4 0/0 0/0 .data __vt__16daNpcF_SPCurve_c */
-SECTION_DATA extern void* __vt__16daNpcF_SPCurve_c[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__16daNpcF_SPCurve_cFv,
-};
+ if (jntNo == JNT_CENTER) {
+ mDoMtx_stack_c::copy(mpMorf->getModel()->getAnmMtx(JNT_BACKBONE));
+ mDoMtx_stack_c::multVecZero(&mLookatPos[0]);
+ mDoMtx_stack_c::copy(mpMorf->getModel()->getAnmMtx(JNT_NECK));
+ mDoMtx_stack_c::multVecZero(&mLookatPos[1]);
+ mDoMtx_stack_c::copy(mpMorf->getModel()->getAnmMtx(JNT_HEAD));
+ mDoMtx_stack_c::multVecZero(&mLookatPos[2]);
+ }
-/* 80A217DC-80A217E8 000408 000C+00 3/3 0/0 0/0 .data __vt__13daNpcF_Path_c */
-SECTION_DATA extern void* __vt__13daNpcF_Path_c[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__13daNpcF_Path_cFv,
-};
+ mDoMtx_stack_c::copy(i_model->getAnmMtx(jntNo));
-/* 80A217E8-80A217F4 000414 000C+00 3/3 0/0 0/0 .data __vt__15daNpcF_Lookat_c */
-SECTION_DATA extern void* __vt__15daNpcF_Lookat_c[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__15daNpcF_Lookat_cFv,
-};
+ switch (jntNo) {
+ case JNT_BACKBONE:
+ case JNT_NECK:
+ case JNT_HEAD:
+ setLookatMtx(jntNo, i_jointList, daNpcKasiHana_Param_c::m.common.neck_rotation_ratio);
+ break;
+ }
-/* 80A1BE44-80A1C0A4 000F84 0260+00 1/1 0/0 0/0 .text __ct__15daNpcKasiHana_cFv */
-daNpcKasiHana_c::daNpcKasiHana_c() {
- // NONMATCHING
-}
+ i_model->setAnmMtx(jntNo, mDoMtx_stack_c::get());
+ MTXCopy(mDoMtx_stack_c::get(), J3DSys::mCurrentMtx);
-/* 80A1C0A4-80A1C334 0011E4 0290+00 1/0 0/0 0/0 .text __dt__15daNpcKasiHana_cFv */
-daNpcKasiHana_c::~daNpcKasiHana_c() {
- // NONMATCHING
+ return 1;
}
-/* ############################################################################################## */
-/* 80A210C8-80A21144 000048 007C+00 5/12 0/0 0/0 .rodata m__21daNpcKasiHana_Param_c */
-SECTION_RODATA u8 const daNpcKasiHana_Param_c::m[124] = {
- 0x42, 0x5C, 0x00, 0x00, 0xC0, 0x40, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x43, 0xFA, 0x00, 0x00,
- 0x43, 0x58, 0x00, 0x00, 0x43, 0x0C, 0x00, 0x00, 0x42, 0x0C, 0x00, 0x00, 0x41, 0xF0, 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, 0x02, 0x00, 0x06, 0x00, 0x03, 0x00, 0x06,
- 0x42, 0x70, 0x00, 0x00, 0x43, 0xFA, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00,
- 0x00, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x48, 0x00, 0x00,
- 0x43, 0xC8, 0x00, 0x00, 0x41, 0x60, 0x00, 0x00, 0x41, 0x80, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80A210C8, &daNpcKasiHana_Param_c::m);
-
-/* 80A21144-80A21148 0000C4 0004+00 0/1 0/0 0/0 .rodata @4768 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4768 = -60.0f;
-COMPILER_STRIP_GATE(0x80A21144, &lit_4768);
-#pragma pop
-
-/* 80A21148-80A2114C 0000C8 0004+00 0/1 0/0 0/0 .rodata @4769 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4769 = -10.0f;
-COMPILER_STRIP_GATE(0x80A21148, &lit_4769);
-#pragma pop
-
-/* 80A2114C-80A21150 0000CC 0004+00 0/1 0/0 0/0 .rodata @4770 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4770 = 60.0f;
-COMPILER_STRIP_GATE(0x80A2114C, &lit_4770);
-#pragma pop
-
-/* 80A21150-80A21154 0000D0 0004+00 0/1 0/0 0/0 .rodata @4771 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4771 = 160.0f;
-COMPILER_STRIP_GATE(0x80A21150, &lit_4771);
-#pragma pop
-
-/* 80A1C334-80A1C5B0 001474 027C+00 1/1 0/0 0/0 .text Create__15daNpcKasiHana_cFv */
-void daNpcKasiHana_c::Create() {
- // NONMATCHING
+/* 80A1C964-80A1C984 001AA4 0020+00 1/1 0/0 0/0 .text createHeapCallBack__15daNpcKasiHana_cFP10fopAc_ac_c */
+int daNpcKasiHana_c::createHeapCallBack(fopAc_ac_c* a_this) {
+ daNpcKasiHana_c* i_this = (daNpcKasiHana_c*)a_this;
+ return i_this->CreateHeap();
}
-/* ############################################################################################## */
-/* 80A21154-80A21158 0000D4 0004+00 0/1 0/0 0/0 .rodata @4818 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u32 const lit_4818 = 0x3F5CF29A;
-COMPILER_STRIP_GATE(0x80A21154, &lit_4818);
-#pragma pop
+/* 80A1C984-80A1C9D0 001AC4 004C+00 1/1 0/0 0/0 .text ctrlJointCallBack__15daNpcKasiHana_cFP8J3DJointi */
+int daNpcKasiHana_c::ctrlJointCallBack(J3DJoint* i_joint, int param_2) {
+ if (param_2 == 0) {
+ J3DModel* model = j3dSys.getModel();
+ daNpcKasiHana_c* i_this = (daNpcKasiHana_c*)model->getUserArea();
-/* 80A1C5B0-80A1C734 0016F0 0184+00 1/1 0/0 0/0 .text CreateHeap__15daNpcKasiHana_cFv */
-void daNpcKasiHana_c::CreateHeap() {
- // NONMATCHING
-}
+ if (i_this != NULL) {
+ i_this->ctrlJoint(i_joint, model);
+ }
+ }
-/* 80A1C734-80A1C768 001874 0034+00 1/1 0/0 0/0 .text Delete__15daNpcKasiHana_cFv */
-void daNpcKasiHana_c::Delete() {
- // NONMATCHING
+ return 1;
}
-/* 80A1C768-80A1C78C 0018A8 0024+00 2/2 0/0 0/0 .text Execute__15daNpcKasiHana_cFv */
-void daNpcKasiHana_c::Execute() {
- // NONMATCHING
-}
+/* 80A1C9D0-80A1CA60 001B10 0090+00 1/0 0/0 0/0 .text setParam__15daNpcKasiHana_cFv */
+void daNpcKasiHana_c::setParam() {
+ if (mType == TYPE_WAIT) {
+ mKasiMng.initPath(getRailNo(), 6);
+ }
-/* 80A1C78C-80A1C7D8 0018CC 004C+00 1/1 0/0 0/0 .text Draw__15daNpcKasiHana_cFv */
-void daNpcKasiHana_c::Draw() {
- // NONMATCHING
+ attention_info.distances[fopAc_attn_LOCK_e] = getDistTableIdx(daNpcKasiHana_Param_c::m.common.attention_distance, daNpcKasiHana_Param_c::m.common.attention_angle);
+ attention_info.distances[fopAc_attn_TALK_e] = attention_info.distances[fopAc_attn_LOCK_e];
+ attention_info.distances[fopAc_attn_SPEAK_e] = getDistTableIdx(daNpcKasiHana_Param_c::m.common.talk_distance, daNpcKasiHana_Param_c::m.common.talk_angle);
+ attention_info.flags = 10;
}
-/* ############################################################################################## */
-/* 80A21158-80A21164 0000D8 000C+00 1/1 0/0 0/0 .rodata @4839 */
-SECTION_RODATA static u8 const lit_4839[12] = {
- 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03,
-};
-COMPILER_STRIP_GATE(0x80A21158, &lit_4839);
-
-/* 80A1C7D8-80A1C964 001918 018C+00 1/1 0/0 0/0 .text
- * ctrlJoint__15daNpcKasiHana_cFP8J3DJointP8J3DModel */
-void daNpcKasiHana_c::ctrlJoint(J3DJoint* param_0, J3DModel* param_1) {
- // NONMATCHING
+/* 80A1CA60-80A1CD28 001BA0 02C8+00 1/0 0/0 0/0 .text main__15daNpcKasiHana_cFv */
+BOOL daNpcKasiHana_c::main() {
+ mKasiMng.SygnalClear();
+ mKasiMng.schMemberActor();
+
+ if (mType == TYPE_CHEER) {
+ mKasiMng.schDanchoActor();
+ }
+
+ if (mKasiMng.chkTalk()) {
+ mKasiMng.offTalk();
+
+ if (mType == TYPE_WAIT) {
+ if (chkAction(&daNpcKasiHana_c::wait)) {
+ if (fopAcM_isSwitch(this, getSwitchBitNo())) {
+ mKasiMng.chgWeightHeavy();
+ mOrderEvtNo = EVT_HEART;
+ changeEvent("kasi_hana", l_evtNames[mOrderEvtNo], 2, 0xFFFF);
+ setAction(&daNpcKasiHana_c::demo);
+ } else {
+ mKasiMng.allDemoMove();
+ mOrderEvtNo = EVT_TALK;
+ changeEvent("kasi_hana", l_evtNames[mOrderEvtNo], 2, 0xFFFF);
+ setAction(&daNpcKasiHana_c::demo);
+ }
+ }
+ } else if (mType == TYPE_CHEER) {
+ if (chkAction(&daNpcKasiHana_c::cheer)) {
+ /* dSv_event_flag_c::F_0293 - Castle Town - Star Game 2 cleared */
+ if (daNpcF_chkEvtBit(293)) {
+ mOrderEvtNo = EVT_CHEER2;
+ } else {
+ mOrderEvtNo = EVT_CHEER;
+ }
+
+ dComIfG_TimerStop(6);
+ dTimer_hide();
+ changeEvent("kasi_hana", l_evtNames[mOrderEvtNo], 2, 0xFFFF);
+ setAction(&daNpcKasiHana_c::demo);
+ mKasiMng.onSygnal(1);
+ }
+ }
+ }
+
+ if (mKasiMng.chkFear()) {
+ setAction(&daNpcKasiHana_c::fear);
+ }
+
+ if (mAction) {
+ (this->*mAction)(NULL);
+ }
+
+ mKasiMng.sendInfo();
+ playMotion();
+
+ return TRUE;
}
-/* 80A1C964-80A1C984 001AA4 0020+00 1/1 0/0 0/0 .text
- * createHeapCallBack__15daNpcKasiHana_cFP10fopAc_ac_c */
-void daNpcKasiHana_c::createHeapCallBack(fopAc_ac_c* param_0) {
- // NONMATCHING
-}
+/* 80A1CD28-80A1CED0 001E68 01A8+00 1/0 0/0 0/0 .text setAttnPos__15daNpcKasiHana_cFv */
+void daNpcKasiHana_c::setAttnPos() {
+ if (mLookMode == LOOK_RESET) {
+ for (int i = 0; i < 3; i++) {
+ mLookatAngle[i].setall(0);
+ }
+ }
-/* 80A1C984-80A1C9D0 001AC4 004C+00 1/1 0/0 0/0 .text
- * ctrlJointCallBack__15daNpcKasiHana_cFP8J3DJointi */
-void daNpcKasiHana_c::ctrlJointCallBack(J3DJoint* param_0, int param_1) {
- // NONMATCHING
-}
+ daNpcF_c::setMtx();
+ lookat();
-/* 80A1C9D0-80A1CA60 001B10 0090+00 1/0 0/0 0/0 .text setParam__15daNpcKasiHana_cFv */
-void daNpcKasiHana_c::setParam() {
- // NONMATCHING
-}
+ cXyz sp1c(10.0f, 15.0f, 0.0f);
-/* 80A1CA60-80A1CD28 001BA0 02C8+00 1/0 0/0 0/0 .text main__15daNpcKasiHana_cFv */
-void daNpcKasiHana_c::main() {
- // NONMATCHING
-}
+ mDoMtx_stack_c::copy(mpMorf->getModel()->getAnmMtx(3));
+ mDoMtx_stack_c::multVecZero(&mHeadPos);
+ mDoMtx_stack_c::multVec(&sp1c, &eyePos);
+ sp1c.x = 0.0f;
+ mDoMtx_stack_c::multVec(&sp1c, &sp1c);
-/* ############################################################################################## */
-/* 80A21164-80A21168 0000E4 0004+00 0/1 0/0 0/0 .rodata @5044 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_5044 = 10.0f;
-COMPILER_STRIP_GATE(0x80A21164, &lit_5044);
-#pragma pop
+ mHeadAngle.x = cLib_targetAngleX(&mHeadPos, &sp1c);
+ mHeadAngle.y = cLib_targetAngleY(&mHeadPos, &sp1c);
+ attention_info.position.set(mHeadPos.x, mHeadPos.y + daNpcKasiHana_Param_c::m.common.attention_offset, mHeadPos.z);
-/* 80A21168-80A2116C 0000E8 0004+00 1/2 0/0 0/0 .rodata @5045 */
-SECTION_RODATA static f32 const lit_5045 = 15.0f;
-COMPILER_STRIP_GATE(0x80A21168, &lit_5045);
+ cXyz sp28;
-/* 80A1CD28-80A1CED0 001E68 01A8+00 1/0 0/0 0/0 .text setAttnPos__15daNpcKasiHana_cFv */
-void daNpcKasiHana_c::setAttnPos() {
- // NONMATCHING
+ mDoMtx_stack_c::copy(mpMorf->getModel()->getAnmMtx(1));
+ mDoMtx_stack_c::multVecZero(&sp28);
+ sp28.y = current.pos.y;
+ mCyl.SetC(sp28);
+ #ifdef DEBUG
+ mCyl.SetH(daNpcKasiHana_Param_c::m.common.height);
+ mCyl.SetR(daNpcKasiHana_Param_c::m.common.width);
+ #endif
+ dComIfG_Ccsp()->Set(&mCyl);
}
-/* 80A1CED0-80A1CFA0 002010 00D0+00 1/0 0/0 0/0 .text setMotionAnm__15daNpcKasiHana_cFif
- */
-bool daNpcKasiHana_c::setMotionAnm(int param_0, f32 param_1) {
- // NONMATCHING
+/* 80A1CED0-80A1CFA0 002010 00D0+00 1/0 0/0 0/0 .text setMotionAnm__15daNpcKasiHana_cFif */
+void daNpcKasiHana_c::setMotionAnm(int i_index, f32 i_morf) {
+ J3DAnmTransformKey* i_anm = getTrnsfrmKeyAnmP(l_arcNames[l_bckGetParamList[i_index].arcIdx], l_bckGetParamList[i_index].fileIdx);
+ int i_attr = l_bckGetParamList[i_index].attr;
+ mAnmFlags &= 0xFFFFFFF6;
+
+ if (i_anm != NULL && setMcaMorfAnm(i_anm, 1.0f, i_morf, i_attr, 0, -1)) {
+ mAnmFlags |= ANM_PLAY_MORF | ANM_PAUSE_MORF;
+ mMotionLoops = 0;
+ }
}
/* 80A1CFA0-80A1CFE8 0020E0 0048+00 1/0 0/0 0/0 .text setMotion__15daNpcKasiHana_cFifi */
-void daNpcKasiHana_c::setMotion(int param_0, f32 param_1, int param_2) {
- // NONMATCHING
+void daNpcKasiHana_c::setMotion(int i_motion, f32 i_morf, int param_3) {
+ s16 motion = i_motion;
+ if ((param_3 != 0 || mMotion != motion) && i_motion >= 0 && i_motion < 0xC) {
+ mMotion = motion;
+ mMotionMorfOverride = i_morf;
+ mMotionPrevPhase = -1;
+ mMotionPhase = 0;
+ field_0x143e = 0;
+ }
}
/* 80A1CFE8-80A1CFF0 002128 0008+00 1/0 0/0 0/0 .text drawDbgInfo__15daNpcKasiHana_cFv */
-bool daNpcKasiHana_c::drawDbgInfo() {
- return false;
+int daNpcKasiHana_c::drawDbgInfo() {
+ return 0;
}
/* 80A1CFF0-80A1D238 002130 0248+00 1/1 0/0 0/0 .text reset__15daNpcKasiHana_cFv */
void daNpcKasiHana_c::reset() {
- // NONMATCHING
+ initialize();
+ mLookat.initialize();
+
+ for (int i = 0; i < 1; i++) {
+ mActorMngr[i].initialize();
+ }
+
+ mPath.initialize();
+ mKasiMng.setHanaActor(this);
+
+ if (mType == TYPE_WAIT) {
+ mPath.setPathInfo(getRailNo(), fopAcM_GetRoomNo(this), 0);
+ mPath.setIdx(6);
+ } else if (mType == TYPE_CHEER) {
+ fopAcM_OnStatus(this, fopAcM_STATUS_UNK_004000);
+ }
+
+ field_0x1441 = 0;
+ field_0x1430 = 0;
+ field_0x1434 = 0;
+ mAction = NULL;
+ mLookMode = -1;
+ mMode = 0;
+ current.pos.set(home.pos);
+ old.pos.set(current.pos);
+ current.angle.set(0, home.angle.y, 0);
+ old.angle = current.angle;
+ shape_angle = current.angle;
+ mCurAngle = current.angle;
+ mOldAngle = mCurAngle;
+ speedF = 0.0f;
+ speed.setall(0.0f);
+ field_0x142c = fpcM_ERROR_PROCESS_ID_e;
+ mOrderEvtNo = EVT_NONE;
+
+ J3DAnmTexPattern* i_btp = getTexPtrnAnmP(l_arcNames[0], 8);
+ mAnmFlags &= 0xFFFFF57F;
+
+ if (setBtpAnm(i_btp, mpMorf->getModel()->getModelData(), 1.0f, J3DFrameCtrl::EMode_LOOP)) {
+ mAnmFlags |= ANM_FLAG_800 | ANM_PLAY_BTP | ANM_PAUSE_BTP;
+ }
+
+ mTalked = false;
+ field_0x1445 = false;
+ mEscape = false;
+ setAction(&daNpcKasiHana_c::wait);
+ mMotionMorfOverride = 0.0f;
}
-/* ############################################################################################## */
-/* 80A2116C-80A21178 0000EC 000C+00 0/1 0/0 0/0 .rodata @5120 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5120[12] = {
- 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80A2116C, &lit_5120);
-#pragma pop
-
-/* 80A21178-80A2117C 0000F8 0004+00 0/1 0/0 0/0 .rodata @5121 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5121[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
-};
-COMPILER_STRIP_GATE(0x80A21178, &lit_5121);
-#pragma pop
-
-/* 80A2117C-80A21188 0000FC 000C+00 0/1 0/0 0/0 .rodata @5122 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5122[12] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80A2117C, &lit_5122);
-#pragma pop
-
-/* 80A21188-80A2118C 000108 0004+00 0/1 0/0 0/0 .rodata @5123 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5123[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
-};
-COMPILER_STRIP_GATE(0x80A21188, &lit_5123);
-#pragma pop
-
-/* 80A2118C-80A21198 00010C 000C+00 0/1 0/0 0/0 .rodata @5124 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5124[12] = {
- 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80A2118C, &lit_5124);
-#pragma pop
-
-/* 80A21198-80A2119C 000118 0004+00 0/1 0/0 0/0 .rodata @5125 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5125[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
-};
-COMPILER_STRIP_GATE(0x80A21198, &lit_5125);
-#pragma pop
-
-/* 80A2119C-80A211A8 00011C 000C+00 0/1 0/0 0/0 .rodata @5126 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5126[12] = {
- 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80A2119C, &lit_5126);
-#pragma pop
-
-/* 80A211A8-80A211AC 000128 0004+00 0/1 0/0 0/0 .rodata @5127 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5127[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
-};
-COMPILER_STRIP_GATE(0x80A211A8, &lit_5127);
-#pragma pop
-
-/* 80A211AC-80A211B8 00012C 000C+00 0/1 0/0 0/0 .rodata @5128 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5128[12] = {
- 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80A211AC, &lit_5128);
-#pragma pop
-
-/* 80A211B8-80A211BC 000138 0004+00 0/1 0/0 0/0 .rodata @5129 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5129[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
-};
-COMPILER_STRIP_GATE(0x80A211B8, &lit_5129);
-#pragma pop
-
-/* 80A211BC-80A211C8 00013C 000C+00 0/1 0/0 0/0 .rodata @5130 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5130[12] = {
- 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80A211BC, &lit_5130);
-#pragma pop
-
-/* 80A211C8-80A211CC 000148 0004+00 0/1 0/0 0/0 .rodata @5131 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5131[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
-};
-COMPILER_STRIP_GATE(0x80A211C8, &lit_5131);
-#pragma pop
-
-/* 80A211CC-80A211D8 00014C 000C+00 0/1 0/0 0/0 .rodata @5132 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5132[12] = {
- 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80A211CC, &lit_5132);
-#pragma pop
-
-/* 80A211D8-80A211DC 000158 0004+00 0/1 0/0 0/0 .rodata @5133 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5133[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
-};
-COMPILER_STRIP_GATE(0x80A211D8, &lit_5133);
-#pragma pop
-
-/* 80A211DC-80A211E8 00015C 000C+00 0/1 0/0 0/0 .rodata @5134 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5134[12] = {
- 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80A211DC, &lit_5134);
-#pragma pop
-
-/* 80A211E8-80A211EC 000168 0004+00 0/1 0/0 0/0 .rodata @5135 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5135[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
-};
-COMPILER_STRIP_GATE(0x80A211E8, &lit_5135);
-#pragma pop
-
-/* 80A211EC-80A211F8 00016C 000C+00 0/1 0/0 0/0 .rodata @5136 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5136[12] = {
- 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80A211EC, &lit_5136);
-#pragma pop
-
-/* 80A211F8-80A211FC 000178 0004+00 0/1 0/0 0/0 .rodata @5137 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5137[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
-};
-COMPILER_STRIP_GATE(0x80A211F8, &lit_5137);
-#pragma pop
-
-/* 80A211FC-80A21208 00017C 000C+00 0/1 0/0 0/0 .rodata @5138 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5138[12] = {
- 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80A211FC, &lit_5138);
-#pragma pop
-
-/* 80A21208-80A2120C 000188 0004+00 0/1 0/0 0/0 .rodata @5139 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5139[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
-};
-COMPILER_STRIP_GATE(0x80A21208, &lit_5139);
-#pragma pop
-
-/* 80A2120C-80A21218 00018C 000C+00 0/1 0/0 0/0 .rodata @5140 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5140[12] = {
- 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80A2120C, &lit_5140);
-#pragma pop
-
-/* 80A21218-80A2121C 000198 0004+00 0/1 0/0 0/0 .rodata @5141 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5141[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
-};
-COMPILER_STRIP_GATE(0x80A21218, &lit_5141);
-#pragma pop
-
-/* 80A2121C-80A21228 00019C 000C+00 0/1 0/0 0/0 .rodata @5142 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5142[12] = {
- 0x00, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
-};
-COMPILER_STRIP_GATE(0x80A2121C, &lit_5142);
-#pragma pop
-
-/* 80A21228-80A21234 0001A8 000C+00 0/1 0/0 0/0 .rodata @5143 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5143[12] = {
- 0x00, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
-};
-COMPILER_STRIP_GATE(0x80A21228, &lit_5143);
-#pragma pop
-
-/* 80A21234-80A21240 0001B4 000C+00 0/1 0/0 0/0 .rodata @5144 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5144[12] = {
- 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
-};
-COMPILER_STRIP_GATE(0x80A21234, &lit_5144);
-#pragma pop
-
-/* 80A21240-80A2124C 0001C0 000C+00 0/1 0/0 0/0 .rodata @5145 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5145[12] = {
- 0x00, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
-};
-COMPILER_STRIP_GATE(0x80A21240, &lit_5145);
-#pragma pop
-
-/* 80A2124C-80A21258 0001CC 000C+00 0/1 0/0 0/0 .rodata @5146 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5146[12] = {
- 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
-};
-COMPILER_STRIP_GATE(0x80A2124C, &lit_5146);
-#pragma pop
-
-/* 80A21258-80A21264 0001D8 000C+00 0/1 0/0 0/0 .rodata @5147 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5147[12] = {
- 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80A21258, &lit_5147);
-#pragma pop
-
/* 80A1D238-80A1D604 002378 03CC+00 1/1 0/0 0/0 .text playMotion__15daNpcKasiHana_cFv */
void daNpcKasiHana_c::playMotion() {
- // NONMATCHING
-}
-
-/* 80A1D604-80A1D77C 002744 0178+00 1/1 0/0 0/0 .text
- * playMotionAnmLoop__15daNpcKasiHana_cFPPPQ28daNpcF_c18daNpcF_anmPlayData */
-void daNpcKasiHana_c::playMotionAnmLoop(daNpcF_c::daNpcF_anmPlayData*** param_0) {
- // NONMATCHING
-}
-
-/* 80A1D77C-80A1D824 0028BC 00A8+00 9/9 0/0 0/0 .text
- * setAction__15daNpcKasiHana_cFM15daNpcKasiHana_cFPCvPvi_i */
-void daNpcKasiHana_c::setAction(int (daNpcKasiHana_c::*param_0)(int)) {
- // NONMATCHING
+ daNpcF_anmPlayData dat0 = {ANM_MICH_KYA_TALK, daNpcKasiHana_Param_c::m.common.morf_frame, 0};
+ daNpcF_anmPlayData* pDat0[1] = {&dat0};
+ daNpcF_anmPlayData dat1 = {ANM_MICH_IYAN_WAIT, daNpcKasiHana_Param_c::m.common.morf_frame, 0};
+ daNpcF_anmPlayData* pDat1[1] = {&dat1};
+ daNpcF_anmPlayData dat2 = {ANM_MICH_OUEN_WAIT_A, daNpcKasiHana_Param_c::m.common.morf_frame, 0};
+ daNpcF_anmPlayData* pDat2[1] = {&dat2};
+ daNpcF_anmPlayData dat3 = {ANM_MICH_OUEN_WAIT_B, daNpcKasiHana_Param_c::m.common.morf_frame, 0};
+ daNpcF_anmPlayData* pDat3[1] = {&dat3};
+ daNpcF_anmPlayData dat4 = {ANM_W_WAIT_A, daNpcKasiHana_Param_c::m.common.morf_frame, 0};
+ daNpcF_anmPlayData* pDat4[1] = {&dat4};
+ daNpcF_anmPlayData dat5 = {ANM_W_TALK_B, daNpcKasiHana_Param_c::m.common.morf_frame, 0};
+ daNpcF_anmPlayData* pDat5[1] = {&dat5};
+ daNpcF_anmPlayData dat6 = {ANM_W_TO_WOLF, daNpcKasiHana_Param_c::m.common.morf_frame, 0};
+ daNpcF_anmPlayData* pDat6[1] = {&dat6};
+ daNpcF_anmPlayData dat7 = {ANM_W_WALK_A, daNpcKasiHana_Param_c::m.common.morf_frame, 0};
+ daNpcF_anmPlayData* pDat7[1] = {&dat7};
+ daNpcF_anmPlayData dat8 = {ANM_W_LOOK_B, daNpcKasiHana_Param_c::m.common.morf_frame, 0};
+ daNpcF_anmPlayData* pDat8[1] = {&dat8};
+ daNpcF_anmPlayData dat9 = {ANM_W_RUN_A, daNpcKasiHana_Param_c::m.common.morf_frame, 0};
+ daNpcF_anmPlayData* pDat9[1] = {&dat9};
+ daNpcF_anmPlayData dat10 = {ANM_W_SURPRISE, daNpcKasiHana_Param_c::m.common.morf_frame, 0};
+ daNpcF_anmPlayData* pDat10[1] = {&dat10};
+ daNpcF_anmPlayData dat11a = {ANM_W_WAIT_A_2, daNpcKasiHana_Param_c::m.common.morf_frame, 1};
+ daNpcF_anmPlayData dat11b = {ANM_W_2LADYTALK_B, daNpcKasiHana_Param_c::m.common.morf_frame, 1};
+ daNpcF_anmPlayData dat11c = {ANM_W_TALK_A, daNpcKasiHana_Param_c::m.common.morf_frame, 1};
+ daNpcF_anmPlayData dat11d = {ANM_W_WAIT_A_2, daNpcKasiHana_Param_c::m.common.morf_frame, 1};
+ daNpcF_anmPlayData dat11e = {ANM_W_TALK_B, daNpcKasiHana_Param_c::m.common.morf_frame, 1};
+ daNpcF_anmPlayData dat11f = {ANM_W_2NORMALTALK_B, daNpcKasiHana_Param_c::m.common.morf_frame, 0};
+ daNpcF_anmPlayData* pDat11[6] = {&dat11a, &dat11b, &dat11c, &dat11d, &dat11e, &dat11f};
+
+ daNpcF_anmPlayData** ppDat[12] = {
+ pDat0,
+ pDat1,
+ pDat2,
+ pDat3,
+ pDat4,
+ pDat5,
+ pDat6,
+ pDat7,
+ pDat8,
+ pDat9,
+ pDat10,
+ pDat11,
+ };
+
+ if (mMotion >= 0 && mMotion < 0xC) {
+ field_0x143e = mMotionPhase;
+
+ if (mMotion == MOT_W_WAIT_A_LOOP) {
+ playMotionAnmLoop(ppDat);
+ } else {
+ playMotionAnm(ppDat);
+ }
+ }
+}
+
+/* 80A1D604-80A1D77C 002744 0178+00 1/1 0/0 0/0 .text playMotionAnmLoop__15daNpcKasiHana_cFPPPQ28daNpcF_c18daNpcF_anmPlayData */
+void daNpcKasiHana_c::playMotionAnmLoop(daNpcF_c::daNpcF_anmPlayData*** i_data) {
+ daNpcF_anmPlayData* playData = NULL;
+
+ if (i_data[mMotion] != NULL) {
+ playData = i_data[mMotion][mMotionPhase];
+ }
+
+ if (playData != NULL) {
+ if (mMotionPrevPhase == mMotionPhase) {
+ if (playData->numLoops > 0 && playData->numLoops <= mMotionLoops) {
+ mMotionPhase++;
+ playData = i_data[mMotion][mMotionPhase];
+ } else if (playData->numLoops == 0 && mMotionLoops >= 1) {
+ mMotionPhase = 0;
+ playData = i_data[mMotion][mMotionPhase];
+ }
+ }
+
+ if (playData != NULL && mMotionPrevPhase != mMotionPhase) {
+ setMotionAnm(playData->idx, 0.0f);
+ f32 i_morf = playData->morf;
+
+ if (mMotionPhase == 0) {
+ if (mMotion == MOT_W_WAIT_A_LOOP) {
+ i_morf = daNpcKasiHana_Param_c::m.common.morf_frame;
+ } else if (0.0f <= mMotionMorfOverride) {
+ i_morf = mMotionMorfOverride;
+ }
+ }
+
+ mExpressionMorf = 0.0f;
+ mpMorf->setMorf(i_morf);
+ }
+ }
+
+ mMotionPrevPhase = mMotionPhase;
+}
+
+/* 80A1D77C-80A1D824 0028BC 00A8+00 9/9 0/0 0/0 .text setAction__15daNpcKasiHana_cFM15daNpcKasiHana_cFPCvPvi_i */
+BOOL daNpcKasiHana_c::setAction(actionFunc action) {
+ mMode = -1;
+
+ if (mAction) {
+ (this->*mAction)(NULL);
+ }
+
+ mMode = 0;
+ mAction = action;
+
+ if (mAction) {
+ (this->*mAction)(NULL);
+ }
+
+ return TRUE;
}
/* 80A1D824-80A1D848 002964 0024+00 8/8 0/0 0/0 .text setLookMode__15daNpcKasiHana_cFi */
-void daNpcKasiHana_c::setLookMode(int param_0) {
- // NONMATCHING
+void daNpcKasiHana_c::setLookMode(int i_lookMode) {
+ if (i_lookMode >= 0 && i_lookMode < 4 && i_lookMode != mLookMode) {
+ mLookMode = i_lookMode;
+ }
}
-/* ############################################################################################## */
-/* 80A21264-80A2127C 0001E4 0018+00 0/0 0/0 0/0 .rodata @5148 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5148[24] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80A21264, &lit_5148);
-#pragma pop
-
-/* 80A2127C-80A212AC 0001FC 0030+00 0/0 0/0 0/0 .rodata @5149 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5149[48] = {
- 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,
-};
-COMPILER_STRIP_GATE(0x80A2127C, &lit_5149);
-#pragma pop
-
-/* 80A212AC-80A212B8 00022C 000C+00 0/1 0/0 0/0 .rodata @5228 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5228[12] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80A212AC, &lit_5228);
-#pragma pop
-
-/* 80A212B8-80A212BC 000238 0004+00 0/1 0/0 0/0 .rodata @5276 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_5276 = -80.0f;
-COMPILER_STRIP_GATE(0x80A212B8, &lit_5276);
-#pragma pop
-
-/* 80A212BC-80A212C0 00023C 0004+00 0/1 0/0 0/0 .rodata @5277 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_5277 = 80.0f;
-COMPILER_STRIP_GATE(0x80A212BC, &lit_5277);
-#pragma pop
-
-/* 80A212C0-80A212C4 000240 0004+00 0/1 0/0 0/0 .rodata @5278 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_5278 = 40.0f;
-COMPILER_STRIP_GATE(0x80A212C0, &lit_5278);
-#pragma pop
-
/* 80A1D848-80A1DA28 002988 01E0+00 1/1 0/0 0/0 .text lookat__15daNpcKasiHana_cFv */
void daNpcKasiHana_c::lookat() {
- // NONMATCHING
+ daPy_py_c* player = NULL;
+ J3DModel* model = mpMorf->getModel();
+ BOOL i_snap = FALSE;
+ f32 body_angleX_min = daNpcKasiHana_Param_c::m.common.body_angleX_min;
+ f32 body_angleX_max = daNpcKasiHana_Param_c::m.common.body_angleX_max;
+ f32 body_angleY_min = daNpcKasiHana_Param_c::m.common.body_angleY_min;
+ f32 body_angleY_max = daNpcKasiHana_Param_c::m.common.body_angleY_max;
+ f32 head_angleX_min = daNpcKasiHana_Param_c::m.common.head_angleX_min;
+ f32 head_angleX_max = daNpcKasiHana_Param_c::m.common.head_angleX_max;
+ f32 head_angleY_min = daNpcKasiHana_Param_c::m.common.head_angleY_min;
+ f32 head_angleY_max = daNpcKasiHana_Param_c::m.common.head_angleY_max;
+ s16 angle_delta = mCurAngle.y - mOldAngle.y;
+ cXyz lookatPos[3] = {mLookatPos[0], mLookatPos[1], mLookatPos[2]};
+ csXyz* lookatAngle[3] = {&mLookatAngle[0], &mLookatAngle[1], &mLookatAngle[2]};
+ cXyz spe8;
+
+ switch (mLookMode) {
+ case LOOK_NONE:
+ break;
+
+ case LOOK_RESET:
+ i_snap = TRUE;
+ break;
+
+ case LOOK_PLAYER:
+ case LOOK_PLAYER_TALK:
+ player = daPy_getPlayerActorClass();
+
+ if (mLookMode != LOOK_PLAYER_TALK) {
+ break;
+ }
+
+ head_angleY_min = -80.0f;
+ head_angleY_max = 80.0f;
+ break;
+ }
+
+ if (player != NULL) {
+ mLookPos = player->attention_info.position;
+
+ if (mLookMode != LOOK_PLAYER && mLookMode != LOOK_PLAYER_TALK) {
+ mLookPos.y -= 40.0f;
+ }
+
+ mLookat.setAttnPos(&mLookPos);
+ } else {
+ mLookat.setAttnPos(NULL);
+ }
+
+ mLookat.setParam(body_angleX_min, body_angleX_max, body_angleY_min, body_angleY_max, 0.0f, 0.0f, 0.0f, 0.0f,
+ head_angleX_min, head_angleX_max, head_angleY_min, head_angleY_max, mCurAngle.y, lookatPos);
+ mLookat.calc(this, model->getBaseTRMtx(), lookatAngle, i_snap, angle_delta, FALSE);
}
/* 80A1DA28-80A1DB1C 002B68 00F4+00 1/1 0/0 0/0 .text step__15daNpcKasiHana_cFsi */
-void daNpcKasiHana_c::step(s16 param_0, int param_1) {
- // NONMATCHING
-}
-
-/* 80A1DB1C-80A1DC00 002C5C 00E4+00 1/1 0/0 0/0 .text chkFindPlayer__15daNpcKasiHana_cFv
- */
-void daNpcKasiHana_c::chkFindPlayer() {
- // NONMATCHING
+BOOL daNpcKasiHana_c::step(s16 i_targetAngle, int param_2) {
+ if (mTurnMode == 0) {
+ mTurnTargetAngle = i_targetAngle;
+ mTurnAmount = 0;
+
+ if (mCurAngle.y == mTurnTargetAngle) {
+ mTurnMode++;
+ }
+
+ current.angle.y = mCurAngle.y;
+ shape_angle.y = current.angle.y;
+ mTurnMode++;
+ } else if (mTurnMode == 1) {
+ if (daNpcF_c::turn(mTurnTargetAngle, 15.0f, 0)) {
+ shape_angle.y = current.angle.y;
+ mCurAngle.y = current.angle.y;
+ mOldAngle.y = current.angle.y;
+ mTurnMode++;
+ } else {
+ shape_angle.y = current.angle.y;
+ mCurAngle.y = current.angle.y;
+ }
+ }
+
+ return mTurnMode > 1;
+}
+
+/* 80A1DB1C-80A1DC00 002C5C 00E4+00 1/1 0/0 0/0 .text chkFindPlayer__15daNpcKasiHana_cFv */
+BOOL daNpcKasiHana_c::chkFindPlayer() {
+ if (!chkActorInSight(daPy_getPlayerActorClass(), daNpcKasiHana_Param_c::m.common.fov)) {
+ mActorMngr[0].remove();
+ return FALSE;
+ }
+
+ bool rv;
+ if (mActorMngr[0].getActorP() == NULL) {
+ rv = chkPlayerInSpeakArea(this);
+ } else {
+ rv = chkPlayerInTalkArea(this);
+ }
+
+ if (rv) {
+ mActorMngr[0].entry(daPy_getPlayerActorClass());
+ } else {
+ mActorMngr[0].remove();
+ }
+
+ return rv;
}
-/* ############################################################################################## */
-/* 80A212C4-80A212C8 000244 0004+00 0/1 0/0 0/0 .rodata @5471 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_5471 = 12.0f;
-COMPILER_STRIP_GATE(0x80A212C4, &lit_5471);
-#pragma pop
-
-/* 80A212C8-80A212CC 000248 0004+00 0/1 0/0 0/0 .rodata @5472 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_5472 = 350.0f;
-COMPILER_STRIP_GATE(0x80A212C8, &lit_5472);
-#pragma pop
-
-/* 80A212CC-80A212D0 00024C 0004+00 0/1 0/0 0/0 .rodata @5473 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_5473 = 50.0f;
-COMPILER_STRIP_GATE(0x80A212CC, &lit_5473);
-#pragma pop
-
-/* 80A212D0-80A212D8 000250 0008+00 0/1 0/0 0/0 .rodata @5474 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5474[8] = {
- 0x40, 0x7F, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80A212D0, &lit_5474);
-#pragma pop
-
-/* 80A212D8-80A212E0 000258 0008+00 0/1 0/0 0/0 .rodata @5475 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5475[8] = {
- 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80A212D8, &lit_5475);
-#pragma pop
-
/* 80A1DC00-80A1E184 002D40 0584+00 10/0 0/0 0/0 .text wait__15daNpcKasiHana_cFi */
-void daNpcKasiHana_c::wait(int param_0) {
- // NONMATCHING
+int daNpcKasiHana_c::wait(int param_1) {
+ switch (mMode) {
+ case -1:
+ break;
+
+ case 0:
+ if (mType == TYPE_WAIT && !field_0x1445) {
+ setMotion(MOT_W_WAIT_A_LOOP, 12.0f, 0);
+ } else {
+ setMotion(MOT_W_WAIT_A, -1.0f, 0);
+ }
+
+ speedF = 0.0f;
+ mMode = 1;
+ break;
+
+ case 1:
+ BOOL bVar1 = FALSE;
+ chkFindPlayer();
+
+ if (mActorMngr[0].getActorP() != NULL) {
+ setLookMode(LOOK_PLAYER);
+ bVar1 = TRUE;
+ } else if (!fopAcM_isSwitch(this, getSwitchBitNo())) {
+ setLookMode(LOOK_NONE);
+ if (home.angle.y != mCurAngle.y && step(home.angle.y, 1)) {
+ if (mType == TYPE_WAIT && !field_0x1445) {
+ setMotion(MOT_W_WAIT_A_LOOP, 12.0f, 0);
+ } else {
+ setMotion(MOT_W_WAIT_A, -1.0f, 0);
+ }
+
+ mTurnMode = 0;
+ }
+ }
+
+ if (mType == TYPE_WAIT) {
+ /* dSv_event_flag_c::F_290 - Castle Town - Star Game 1 cleared */
+ if (daNpcF_chkEvtBit(290)) {
+ f32 actorDistance = fopAcM_searchActorDistanceXZ(this, daPy_getPlayerActorClass());
+
+ if (!fopAcM_isSwitch(this, getSwitchBitNo())) {
+ if (actorDistance < 350.0f) {
+ mOrderEvtNo = EVT_APPEAR;
+ }
+ } else if (!daPy_py_c::checkNowWolf()) {
+ if (field_0x1441 == 0) {
+ if (bVar1) {
+ field_0x1441 = 1;
+ mKasiMng.onSygnal(0x200);
+ setAction(&daNpcKasiHana_c::chace_st);
+ return 1;
+ }
+
+ f32 distFromCenter = mKasiMng.getDistFromCenter();
+ if (distFromCenter >= 0.0f && distFromCenter < daNpcKasiHana_Param_c::m.track_start_dist) {
+ field_0x1441 = 1;
+ mKasiMng.onSygnal(0x200);
+ setAction(&daNpcKasiHana_c::chace_st);
+ return 1;
+ }
+ } else if (pl_front_check()) {
+ if (actorDistance >= daNpcKasiHana_Param_c::m.track_stop_dist + 50.0f) {
+ setAction(&daNpcKasiHana_c::chace);
+ return 1;
+ }
+ } else {
+ setAction(&daNpcKasiHana_c::turn);
+ return 1;
+ }
+ }
+ }
+ } else if (mType == TYPE_CHEER && mKasiMng.isMiniGamePlaying()) {
+ setAction(&daNpcKasiHana_c::cheer);
+ return 1;
+ }
+
+ mKasiMng.setKyuPos(current.pos);
+ mKasiMng.setMichPos(current.pos);
+
+ if (dComIfGp_event_runCheck()) {
+ if (eventInfo.checkCommandTalk()) {
+ if (!dComIfGp_event_chkTalkXY() || dComIfGp_evmng_ChkPresentEnd()) {
+ setAction(&daNpcKasiHana_c::talk);
+ }
+ } else if (dComIfGp_getEventManager().getMyStaffId(l_myName, NULL, 0) != -1) {
+ setAction(&daNpcKasiHana_c::demo);
+ }
+ } else {
+ if (!dKy_darkworld_check()) {
+ if (daPy_py_c::checkNowWolf()) {
+ f32 fVar1 = pow(500.0, 2.0);
+ if (fopAcM_searchPlayerDistanceXZ2(this) < fVar1) {
+ setAction(&daNpcKasiHana_c::fear);
+ break;
+ }
+ }
+ }
+
+ if (mOrderEvtNo != EVT_NONE) {
+ eventInfo.setArchiveName(l_arcNames[0]);
+ }
+
+ orderEvent(field_0x1444, l_evtNames[mOrderEvtNo], 0xFFFF, 4, 0xFF, 2);
+ }
+ break;
+ }
+
+ return 1;
}
/* 80A1E184-80A1E228 0032C4 00A4+00 3/0 0/0 0/0 .text chace_st__15daNpcKasiHana_cFi */
-void daNpcKasiHana_c::chace_st(int param_0) {
- // NONMATCHING
+int daNpcKasiHana_c::chace_st(int param_1) {
+ switch (mMode) {
+ case -1:
+ break;
+
+ case 0:
+ field_0x1445 = true;
+ fopAcM_SetSpeedF(this, 0.0f);
+ mMode = 1;
+ break;
+
+ case 1:
+ if (_turn_to_link(0xC00)) {
+ setAction(&daNpcKasiHana_c::chace);
+ }
+ break;
+ }
+
+ return 1;
}
/* 80A1E228-80A1E3AC 003368 0184+00 2/0 0/0 0/0 .text chace__15daNpcKasiHana_cFi */
-void daNpcKasiHana_c::chace(int param_0) {
- // NONMATCHING
+int daNpcKasiHana_c::chace(int param_1) {
+ switch (mMode) {
+ case -1:
+ break;
+
+ case 0:
+ field_0x1445 = true;
+ setMotion(MOT_W_RUN_A, -1.0f, 0);
+ setLookMode(LOOK_NONE);
+ fopAcM_SetSpeed(this, 0.0f, 0.0f, 0.0f);
+ fopAcM_SetSpeedF(this, daNpcKasiHana_Param_c::m.track_spd);
+ mKasiMng.chgWeightLight();
+ mMode = 1;
+ break;
+
+ case 1:
+ cXyz chacePos = getChacePos();
+ _turn_pos(chacePos, 0x800);
+
+ if (pl_front_check()) {
+ if (fopAcM_searchActorDistanceXZ(this, daPy_getPlayerActorClass()) < daNpcKasiHana_Param_c::m.track_stop_dist) {
+ setAction(&daNpcKasiHana_c::wait);
+ }
+ } else {
+ setAction(&daNpcKasiHana_c::chace_st);
+ }
+ break;
+ }
+
+ return 1;
}
/* 80A1E3AC-80A1E4AC 0034EC 0100+00 1/1 0/0 0/0 .text getChacePos__15daNpcKasiHana_cFv */
-void daNpcKasiHana_c::getChacePos() {
- // NONMATCHING
+cXyz daNpcKasiHana_c::getChacePos() {
+ cXyz rv(*fopAcM_GetPosition_p(daPy_getPlayerActorClass()));
+
+ if (!mKasiMng.isPathInit()) {
+ OS_REPORT("-------------------------path not initialize!!\n");
+ return rv;
+ }
+
+ int plNearPoint = mKasiMng.getPlNearPoint();
+ int idx = mPath.getIdx();
+
+ if (idx == plNearPoint) {
+ return rv;
+ }
+
+ if (idx < plNearPoint) {
+ mPath.offReverse();
+ } else if (idx > plNearPoint) {
+ mPath.onReverse();
+ }
+
+ cXyz sp3c;
+ mPath.getDstPos(current.pos, sp3c);
+
+ return sp3c;
}
/* 80A1E4AC-80A1E578 0035EC 00CC+00 1/0 0/0 0/0 .text turn__15daNpcKasiHana_cFi */
-void daNpcKasiHana_c::turn(int param_0) {
- // NONMATCHING
+int daNpcKasiHana_c::turn(int param_1) {
+ switch (mMode) {
+ case -1:
+ break;
+
+ case 0:
+ setMotion(MOT_W_WAIT_A, -1.0f, 0);
+ speedF = 0.0f;
+ mKasiMng.onSygnal(4);
+ mMode = 1;
+ break;
+
+ case 1:
+ if (_turn_to_link(0x1000)) {
+ setAction(&daNpcKasiHana_c::wait);
+ }
+ break;
+
+ default:
+ JUT_ASSERT(2155, 0);
+ }
+
+ return 1;
}
/* 80A1E578-80A1E78C 0036B8 0214+00 3/0 0/0 0/0 .text fear__15daNpcKasiHana_cFi */
-void daNpcKasiHana_c::fear(int param_0) {
- // NONMATCHING
+int daNpcKasiHana_c::fear(int param_1) {
+ switch (mMode) {
+ case -1:
+ break;
+
+ case 0: {
+ mKasiMng.onSygnal(0x80000);
+ dComIfGs_onSaveDunSwitch(60);
+
+ daTagEscape_c* tagEscape_p = srchWolfTag();
+ if (tagEscape_p != NULL) {
+ mPath.initialize();
+ mPath.setPathInfo(tagEscape_p->getPathID(), fopAcM_GetRoomNo(this), 0);
+ mPath.setIdx(getWolfPathNearIdx());
+ mMode = 1;
+ }
+ break;
+ }
+
+ case 1:
+ if (_turn_to_link(0x1000)) {
+ setMotion(MOT_W_SURPRISE, -1.0f, 0);
+ mMode = 3;
+ }
+ break;
+
+ case 3:
+ if (mpMorf->isStop()) {
+ setMotion(MOT_W_RUN_A, -1.0f, 0);
+ fopAcM_SetSpeedF(this, 15.0f);
+ mSound.startCreatureVoice(Z2SE_HANA_V_FEAR, -1);
+ mMode = 4;
+ }
+ break;
+
+ case 4: {
+ cXyz sp28;
+ mpMorf->setPlaySpeed(1.5f);
+
+ if (mPath.getDstPos(current.pos, sp28)) {
+ mEscape = true;
+ mMode = 5;
+ } else {
+ _turn_pos(sp28, 800);
+ }
+ break;
+ }
+
+ case 5:
+ if (mKasiMng.chkEscape()) {
+ mKasiMng.deleteAllMember();
+ }
+ break;
+ }
+
+ return 1;
}
-/* 80A21848-80A21854 000048 000C+00 1/1 0/0 0/0 .bss @4323 */
-static u8 lit_4323[12];
-
-/* 80A21854-80A21858 000054 0004+00 1/1 0/0 0/0 .bss l_HIO */
-static u8 l_HIO[4];
-
/* 80A21858-80A2185C 000058 0004+00 1/2 0/0 0/0 .bss mTargetTag__15daNpcKasiHana_c */
-u8 daNpcKasiHana_c::mTargetTag[4];
+daTagEscape_c* daNpcKasiHana_c::mTargetTag;
-/* 80A2185C-80A21860 00005C 0004+00 0/1 0/0 0/0 .bss mTargetTagDist__15daNpcKasiHana_c
- */
-#pragma push
-#pragma force_active on
-u8 daNpcKasiHana_c::mTargetTagDist[4];
-#pragma pop
+/* 80A2185C-80A21860 00005C 0004+00 0/1 0/0 0/0 .bss mTargetTagDist__15daNpcKasiHana_c */
+f32 daNpcKasiHana_c::mTargetTagDist;
/* 80A21860-80A21864 000060 0002+02 1/2 0/0 0/0 .bss mWolfAngle__15daNpcKasiHana_c */
-u8 daNpcKasiHana_c::mWolfAngle[2 + 2 /* padding */];
+s16 daNpcKasiHana_c::mWolfAngle;
/* 80A1E78C-80A1E7F4 0038CC 0068+00 1/1 0/0 0/0 .text srchWolfTag__15daNpcKasiHana_cFv */
-void daNpcKasiHana_c::srchWolfTag() {
- // NONMATCHING
+daTagEscape_c* daNpcKasiHana_c::srchWolfTag() {
+ mTargetTag = NULL;
+ mWolfAngle = fopAcM_searchPlayerAngleY(this);
+ fpcM_Search(_srch_escape_tag, this);
+ return mTargetTag;
}
/* 80A1E7F4-80A1E8C4 003934 00D0+00 1/1 0/0 0/0 .text _srch_escape_tag__15daNpcKasiHana_cFPvPv */
-void daNpcKasiHana_c::_srch_escape_tag(void* param_0, void* param_1) {
- // NONMATCHING
+void* daNpcKasiHana_c::_srch_escape_tag(void* i_actor, void* i_data) {
+ if (!fopAcM_IsActor(i_actor)) {
+ return NULL;
+ }
+
+ if (fopAcM_GetName(i_actor) != PROC_Tag_Escape) {
+ return NULL;
+ }
+
+ int iVar1 = cLib_distanceAngleS(mWolfAngle, fopAcM_searchActorAngleY((fopAc_ac_c*)i_data, (fopAc_ac_c*)i_actor));
+
+ if (mTargetTag == NULL) {
+ mTargetTagDist = fopAcM_searchActorDistanceXZ2((fopAc_ac_c*)i_data, (fopAc_ac_c*)i_actor);
+ mTargetTag = (daTagEscape_c*)i_actor;
+ return NULL;
+ }
+
+ if (iVar1 > 0x4000) {
+ f32 fVar1 = fopAcM_searchActorDistanceXZ2((fopAc_ac_c*)i_data, (fopAc_ac_c*)i_actor);
+ if (fVar1 < mTargetTagDist) {
+ mTargetTagDist = fVar1;
+ mTargetTag = (daTagEscape_c*)i_actor;
+ }
+ }
+
+ return NULL;
}
/* 80A1E8C4-80A1E9F8 003A04 0134+00 1/1 0/0 0/0 .text getWolfPathNearIdx__15daNpcKasiHana_cFv */
-void daNpcKasiHana_c::getWolfPathNearIdx() {
- // NONMATCHING
-}
+int daNpcKasiHana_c::getWolfPathNearIdx() {
+ int iVar1 = 0;
+ f32 fVar1 = 0.0f;
+ u16 numPnts = mPath.getNumPnts();
+ cXyz sp44, sp50;
-/* 80A1E9F8-80A1EB5C 003B38 0164+00 1/0 0/0 0/0 .text talk__15daNpcKasiHana_cFi */
-void daNpcKasiHana_c::talk(int param_0) {
- // NONMATCHING
-}
+ int rv = 0;
+ for (; rv < numPnts; rv++) {
+ sp44 = mPath.getPntPos(rv);
+ sp50 = sp44 - current.pos;
+ f32 fVar2 = sp50.abs2XZ();
-/* 80A1EB5C-80A1EE38 003C9C 02DC+00 4/0 0/0 0/0 .text demo__15daNpcKasiHana_cFi */
-void daNpcKasiHana_c::demo(int param_0) {
- // NONMATCHING
-}
+ if (rv == 0) {
+ fVar1 = fVar2;
+ iVar1 = 0;
+ } else if (fVar2 < fVar1) {
+ fVar1 = fVar2;
+ iVar1 = rv;
+ }
+ }
-/* ############################################################################################## */
-/* 80A212E0-80A212E4 000260 0004+00 0/0 0/0 0/0 .rodata @5635 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_5635 = 1.5f;
-COMPILER_STRIP_GATE(0x80A212E0, &lit_5635);
-#pragma pop
+ rv = iVar1 + 1;
-/* 80A212E4-80A212E8 000264 0004+00 0/1 0/0 0/0 .rodata @5847 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_5847 = 1.75f;
-COMPILER_STRIP_GATE(0x80A212E4, &lit_5847);
-#pragma pop
+ if (iVar1 == numPnts) {
+ rv = iVar1;
+ }
-/* 80A1EE38-80A1EF90 003F78 0158+00 1/0 0/0 0/0 .text escape__15daNpcKasiHana_cFi */
-void daNpcKasiHana_c::escape(int param_0) {
- // NONMATCHING
+ return rv;
}
-/* 80A1EF90-80A1F198 0040D0 0208+00 3/0 0/0 0/0 .text cheer__15daNpcKasiHana_cFi */
-void daNpcKasiHana_c::cheer(int param_0) {
- // NONMATCHING
-}
-
-/* 80A1F198-80A1F1E4 0042D8 004C+00 5/5 0/0 0/0 .text _turn_to_link__15daNpcKasiHana_cFs
- */
-void daNpcKasiHana_c::_turn_to_link(s16 param_0) {
- // NONMATCHING
-}
-
-/* 80A1F1E4-80A1F240 004324 005C+00 5/5 0/0 0/0 .text _turn_pos__15daNpcKasiHana_cFRC4cXyzs */
-void daNpcKasiHana_c::_turn_pos(cXyz const& param_0, s16 param_1) {
- // NONMATCHING
-}
-
-/* 80A1F240-80A1F318 004380 00D8+00 3/3 0/0 0/0 .text
- * actor_front_check__15daNpcKasiHana_cFP10fopAc_ac_c */
-void daNpcKasiHana_c::actor_front_check(fopAc_ac_c* param_0) {
- // NONMATCHING
-}
-
-/* 80A1F318-80A1F384 004458 006C+00 1/1 0/0 0/0 .text _getOffset__15daNpcKasiHana_cFRC4cXyzR4cXyz
- */
-void daNpcKasiHana_c::_getOffset(cXyz const& param_0, cXyz& param_1) {
- // NONMATCHING
+/* 80A1E9F8-80A1EB5C 003B38 0164+00 1/0 0/0 0/0 .text talk__15daNpcKasiHana_cFi */
+int daNpcKasiHana_c::talk(int param_1) {
+ bool rv = false;
+
+ switch (mMode) {
+ case 0:
+ mTalked = true;
+ setAction(&daNpcKasiHana_c::wait);
+ rv = true;
+ break;
+
+ case -1:
+ if (!field_0x9ec) {
+ dComIfGp_event_reset();
+ }
+ break;
+
+ case 1:
+ if (talkProc(NULL, TRUE, NULL)) {
+ mActorMngr[0].entry(daPy_getPlayerActorClass());
+
+ if (mType == TYPE_WAIT) {
+ setAction(&daNpcKasiHana_c::wait);
+ }
+
+ rv = true;
+ } else {
+ int iVar1, i_motion;
+ if (ctrlMsgAnm(iVar1, i_motion, this, FALSE)) {
+ setMotion(i_motion, -1.0f, 0);
+ }
+ }
+ break;
+
+ case 2:
+ break;
+ }
+
+ return rv;
}
-/* ############################################################################################## */
-/* 80A21358-80A21358 0002D8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
-#pragma push
-#pragma force_active on
-SECTION_DEAD static char const* const stringBase_80A213BD = "cutId";
-#pragma pop
-
-/* 80A1F384-80A1F42C 0044C4 00A8+00 1/0 0/0 0/0 .text _Evt_Kasi_Appear__15daNpcKasiHana_cFi */
-void daNpcKasiHana_c::_Evt_Kasi_Appear(int param_0) {
- // NONMATCHING
+/* 80A1EB5C-80A1EE38 003C9C 02DC+00 4/0 0/0 0/0 .text demo__15daNpcKasiHana_cFi */
+int daNpcKasiHana_c::demo(int param_1) {
+ switch (mMode) {
+ case -1:
+ break;
+
+ case 0:
+ setMotion(MOT_W_WAIT_A, -1.0f, 0);
+ mMode = 1;
+ break;
+
+ case 1:
+ if (dComIfGp_event_runCheck() != FALSE && !eventInfo.checkCommandTalk()) {
+ dEvent_manager_c& eventManager = dComIfGp_getEventManager();
+ s32 staffId = dComIfGp_getEventManager().getMyStaffId(l_myName, NULL, 0);
+ if (staffId != -1) {
+ mStaffID = staffId;
+
+ JUT_ASSERT(2459, 0 != mEvtSeqList[mOrderEvtNo]);
+
+ if ((this->*mEvtSeqList[mOrderEvtNo])(staffId)) {
+ dComIfGp_getEventManager().cutEnd(staffId);
+ }
+ }
+
+ if (eventInfo.checkCommandDemoAccrpt() && mEventIdx != -1 && eventManager.endCheck(mEventIdx)) {
+ switch (mOrderEvtNo) {
+ case EVT_APPEAR:
+ dComIfGp_event_reset();
+ mOrderEvtNo = EVT_NONE;
+ mEventIdx = -1;
+ fopAcM_onSwitch(this, getSwitchBitNo());
+ mKasiMng.onSygnal(1);
+ setAction(&daNpcKasiHana_c::wait);
+ break;
+
+ case EVT_HEART:
+ setAction(&daNpcKasiHana_c::escape);
+ dComIfGp_event_reset();
+ mOrderEvtNo = EVT_NONE;
+ mEventIdx = -1;
+ break;
+
+ case EVT_TALK:
+ mKasiMng.allDemoNotMove();
+ dComIfGp_event_reset();
+ mOrderEvtNo = EVT_NONE;
+ mEventIdx = -1;
+ setAction(&daNpcKasiHana_c::wait);
+ mKasiMng.onSygnal(1);
+ break;
+
+ case EVT_CHEER:
+ case EVT_CHEER2:
+ dTimer_show();
+ // fallthrough
+ default:
+ dComIfGp_event_reset();
+ mOrderEvtNo = EVT_NONE;
+ mEventIdx = -1;
+
+ if (mType == TYPE_WAIT) {
+ setAction(&daNpcKasiHana_c::wait);
+ } else if (mType == TYPE_CHEER) {
+ OS_REPORT("-----------demo return!!\n");
+
+ dComIfG_TimerReStart(6);
+ setAction(&daNpcKasiHana_c::cheer);
+ }
+ break;
+ }
+ }
+ }
+ break;
+ }
+
+ return 1;
}
-/* 80A1F42C-80A1F50C 00456C 00E0+00 1/1 0/0 0/0 .text
- * _Evt_Kasi_Appear_CutInit__15daNpcKasiHana_cFRCi */
-void daNpcKasiHana_c::_Evt_Kasi_Appear_CutInit(int const& param_0) {
- // NONMATCHING
+/* 80A1EE38-80A1EF90 003F78 0158+00 1/0 0/0 0/0 .text escape__15daNpcKasiHana_cFi */
+int daNpcKasiHana_c::escape(int param_1) {
+ switch (mMode) {
+ case -1:
+ break;
+
+ case 0:
+ setMotion(MOT_W_RUN_A, -1.0f, 0);
+ fopAcM_SetSpeed(this, 0.0f, 0.0f, 0.0f);
+ fopAcM_SetSpeedF(this, daNpcKasiHana_Param_c::m.escape_spd);
+ setEscapePathDir();
+ mKasiMng.onSygnal(0x20);
+ mSound.startCreatureVoice(Z2SE_HANA_V_FEAR, -1);
+ mMode = 1;
+ break;
+
+ case 1:
+ cXyz sp28;
+ if (mPath.getDstPos(current.pos, sp28)) {
+ mKasiMng.deleteAllMember();
+ } else {
+ _turn_pos(sp28, 0x600);
+ mKasiMng.calcEscapeForm();
+ mpMorf->setPlaySpeed(1.75f);
+ }
+ break;
+ }
+
+ return 1;
}
-/* ############################################################################################## */
-/* 80A212E8-80A212EC 000268 0004+00 0/3 0/0 0/0 .rodata @5999 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_5999 = 19.0f;
-COMPILER_STRIP_GATE(0x80A212E8, &lit_5999);
-#pragma pop
-
-/* 80A1F50C-80A1F638 00464C 012C+00 1/1 0/0 0/0 .text
- * _Evt_Kasi_Appear_CutMain__15daNpcKasiHana_cFRCi */
-void daNpcKasiHana_c::_Evt_Kasi_Appear_CutMain(int const& param_0) {
- // NONMATCHING
+/* 80A1EF90-80A1F198 0040D0 0208+00 3/0 0/0 0/0 .text cheer__15daNpcKasiHana_cFi */
+int daNpcKasiHana_c::cheer(int param_1) {
+ // NONMATCHING
+ switch (mMode) {
+ case -1:
+ break;
+
+ case 0:
+ /* dSv_event_flag_c::F_290 - Castle Town - Star Game 1 cleared */
+ if (daNpcF_chkEvtBit(290)) {
+ setMotion(MOT_MICH_OUEN_WAIT_B, -1.0f, 0);
+ } else {
+ setMotion(MOT_MICH_OUEN_WAIT_A, -1.0f, 0);
+ }
+
+ setLookMode(LOOK_PLAYER);
+ fopAcM_SetSpeed(this, 0.0f, 0.0f, 0.0f);
+ fopAcM_SetSpeedF(this, 0.0f);
+ mTalked = false;
+ field_0x1440 = 0;
+ mMode = 1;
+ break;
+
+ case 1:
+ if (!mKasiMng.isMiniGamePlaying()) {
+ mKasiMng.onSygnal(1);
+ setAction(&daNpcKasiHana_c::wait);
+ return 1;
+ }
+
+ if (field_0x1440 == 0) {
+ mKasiMng.onSygnal(0x100);
+ field_0x1440 = 1;
+ }
+
+ if (dComIfGp_event_runCheck()) {
+ if (eventInfo.checkCommandTalk()) {
+ if (!dComIfGp_event_chkTalkXY() || dComIfGp_evmng_ChkPresentEnd()) {
+ mTalked = true;
+ dComIfGp_event_reset();
+ }
+ }
+ } else {
+ if (mOrderEvtNo != EVT_NONE) {
+ eventInfo.setArchiveName(l_arcNames[0]);
+ }
+
+ orderEvent(field_0x1444, l_evtNames[mOrderEvtNo], 0xFFFF, 4, 0xFF, 2);
+ }
+ break;
+ }
+
+ return 1;
+}
+
+/* 80A1F198-80A1F1E4 0042D8 004C+00 5/5 0/0 0/0 .text _turn_to_link__15daNpcKasiHana_cFs */
+BOOL daNpcKasiHana_c::_turn_to_link(s16 param_1) {
+ cXyz sp20(*fopAcM_GetPosition_p(daPy_getPlayerActorClass()));
+ return _turn_pos(sp20, param_1);
}
-/* ############################################################################################## */
-/* 80A21358-80A21358 0002D8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
-#pragma push
-#pragma force_active on
-SECTION_DEAD static char const* const stringBase_80A213C3 = "mesNo2";
-SECTION_DEAD static char const* const stringBase_80A213CA = "mesNo1";
-#pragma pop
-
-/* 80A1F638-80A1F740 004778 0108+00 1/0 0/0 0/0 .text _Evt_Kasi_Talk__15daNpcKasiHana_cFi
- */
-void daNpcKasiHana_c::_Evt_Kasi_Talk(int param_0) {
- // NONMATCHING
+/* 80A1F1E4-80A1F240 004324 005C+00 5/5 0/0 0/0 .text _turn_pos__15daNpcKasiHana_cFRC4cXyzs */
+BOOL daNpcKasiHana_c::_turn_pos(cXyz const& param_1, s16 param_2) {
+ BOOL rv = cLib_chaseAngleS(&mCurAngle.y, cLib_targetAngleY(&current.pos, &param_1), param_2);
+ current.angle.y = mCurAngle.y;
+ shape_angle.y = mCurAngle.y;
+ return rv;
+}
+
+/* 80A1F240-80A1F318 004380 00D8+00 3/3 0/0 0/0 .text actor_front_check__15daNpcKasiHana_cFP10fopAc_ac_c */
+BOOL daNpcKasiHana_c::actor_front_check(fopAc_ac_c* actor_p) {
+ if (actor_p == NULL) {
+ return TRUE;
+ }
+
+ cXyz sp24(*fopAcM_GetPosition_p(actor_p));
+ cXyz sp30(sp24 - current.pos);
+ cXyz sp3c(0.0f, 0.0f, 1.0f);
+ cXyz sp48;
+ _getOffset(sp3c, sp48);
+
+ return (sp30.x * sp48.x + sp30.z * sp48.z) >= 0.0f;
+}
+
+/* 80A1F318-80A1F384 004458 006C+00 1/1 0/0 0/0 .text _getOffset__15daNpcKasiHana_cFRC4cXyzR4cXyz */
+void daNpcKasiHana_c::_getOffset(cXyz const& param_1, cXyz& param_2) {
+ param_2 = param_1;
+ csXyz angle(*fopAcM_GetShapeAngle_p(this));
+ mDoMtx_stack_c::ZXYrotS(angle);
+ mDoMtx_stack_c::multVec(&param_2, &param_2);
+}
+
+/* 80A1F384-80A1F42C 0044C4 00A8+00 1/0 0/0 0/0 .text _Evt_Kasi_Appear__15daNpcKasiHana_cFi */
+BOOL daNpcKasiHana_c::_Evt_Kasi_Appear(int i_index) {
+ dEvent_manager_c& eventManager = dComIfGp_getEventManager();
+ int i_cutIndex = -1;
+
+ int* cutId = dComIfGp_evmng_getMyIntegerP(i_index, "cutId");
+ if (cutId != NULL) {
+ i_cutIndex = *cutId;
+ } else {
+ return TRUE;
+ }
+
+ if (eventManager.getIsAddvance(i_index)) {
+ _Evt_Kasi_Appear_CutInit(i_cutIndex);
+ }
+
+ return _Evt_Kasi_Appear_CutMain(i_cutIndex);
+
+}
+
+/* 80A1F42C-80A1F50C 00456C 00E0+00 1/1 0/0 0/0 .text _Evt_Kasi_Appear_CutInit__15daNpcKasiHana_cFRCi */
+BOOL daNpcKasiHana_c::_Evt_Kasi_Appear_CutInit(int const& i_cutIndex) {
+ switch (i_cutIndex) {
+ case 10:
+ mKasiMng.onSygnal(4);
+ setMotion(MOT_W_WAIT_A, -1.0f, 0);
+ field_0x1430 = 20;
+ break;
+
+ case 20:
+ mKasiMng.onSygnal(0x400);
+ setMotion(MOT_MICH_KYA_TALK, -1.0f, 0);
+ initTalk(mMessageNo, NULL);
+ break;
+
+ case 21:
+ mKasiMng.onSygnal(0x1000);
+ field_0x1430 = 24;
+ break;
+ }
+
+ return TRUE;
+}
+
+/* 80A1F50C-80A1F638 00464C 012C+00 1/1 0/0 0/0 .text _Evt_Kasi_Appear_CutMain__15daNpcKasiHana_cFRCi */
+BOOL daNpcKasiHana_c::_Evt_Kasi_Appear_CutMain(int const& i_cutIndex) {
+ BOOL rv = FALSE;
+
+ switch (i_cutIndex) {
+ case 10:
+ if (_turn_to_link(0x1000)) {
+ setLookMode(LOOK_PLAYER);
+ }
+
+ if (--field_0x1430 <= 0) {
+ rv = TRUE;
+ }
+ break;
+
+ case 20:
+ if (talkProc(NULL, TRUE, NULL)) {
+ rv = TRUE;
+ }
+ break;
+
+ case 21:
+ if (mMotion == MOT_MICH_KYA_TALK && (mpMorf->getFrame() == 19.0f || mpMorf->getFrame() == 1.0f)) {
+ setMotion(MOT_W_WAIT_A, -1.0f, 0);
+ }
+
+ field_0x1430--;
+ if (field_0x1430 == 0) {
+ rv = TRUE;
+ }
+ break;
+
+ default:
+ rv = TRUE;
+ }
+
+ return rv;
+}
+
+/* 80A1F638-80A1F740 004778 0108+00 1/0 0/0 0/0 .text _Evt_Kasi_Talk__15daNpcKasiHana_cFi */
+BOOL daNpcKasiHana_c::_Evt_Kasi_Talk(int i_index) {
+ dEvent_manager_c& eventManager = dComIfGp_getEventManager();
+ int i_cutIndex = -1;
+
+ int* cutID = dComIfGp_evmng_getMyIntegerP(i_index, "cutId");
+ if (cutID != NULL) {
+ i_cutIndex = *cutID;
+ } else {
+ return TRUE;
+ }
+
+ if (eventManager.getIsAddvance(i_index)) {
+ _Evt_Kasi_Talk_CutInit(i_cutIndex);
+ }
+
+ int iVar2 = -1;
+ int* mesNo;
+
+ /* dSv_event_flag_c::F_289 - Castle Town - Heard conversation about entering Star Game 1 */
+ if (daNpcF_chkEvtBit(289)) {
+ mesNo = dComIfGp_evmng_getMyIntegerP(i_index, "mesNo2");
+ } else {
+ mesNo = dComIfGp_evmng_getMyIntegerP(i_index, "mesNo1");
+ }
+
+ if (mesNo != NULL) {
+ iVar2 = *mesNo;
+ }
+
+ return _Evt_Kasi_Talk_CutMain(i_cutIndex, iVar2);
+}
+
+/* 80A1F740-80A1F860 004880 0120+00 1/1 0/0 0/0 .text _Evt_Kasi_Talk_CutInit__15daNpcKasiHana_cFRCi */
+BOOL daNpcKasiHana_c::_Evt_Kasi_Talk_CutInit(int const& i_cutIndex) {
+ fopAc_ac_c* actors[3] = {mKasiMng.getHanaActor(), mKasiMng.getKyuActor(), mKasiMng.getMichActor()};
+
+ switch (i_cutIndex) {
+ case 10:
+ setLookMode(LOOK_NONE);
+ setMotion(MOT_MICH_KYA_TALK, -1.0f, 0);
+ initTalk(mMessageNo, actors);
+ break;
+
+ case 20:
+ mKasiMng.onSygnal(0x20000);
+ break;
+
+ case 30:
+ mKasiMng.onSygnal(0x40000);
+ break;
+
+ case 31:
+ mKasiMng.onSygnal(0x1000);
+ break;
+ }
+
+ return TRUE;
+}
+
+/* 80A1F860-80A1F9F4 0049A0 0194+00 1/1 0/0 0/0 .text _Evt_Kasi_Talk_CutMain__15daNpcKasiHana_cFRCii */
+BOOL daNpcKasiHana_c::_Evt_Kasi_Talk_CutMain(int const& i_cutIndex, int param_2) {
+ fopAc_ac_c* actors[3] = {mKasiMng.getHanaActor(), mKasiMng.getKyuActor(), mKasiMng.getMichActor()};
+ BOOL rv = FALSE;
+ int iVar1[2] = {-1, -1};
+
+ switch (i_cutIndex) {
+ case 10:
+ iVar1[0] = param_2;
+
+ if (talkProc(iVar1, FALSE, actors)) {
+ rv = TRUE;
+ }
+ break;
+
+ case 20:
+ if (mMotion == MOT_MICH_KYA_TALK && (mpMorf->getFrame() == 19.0f || mpMorf->getFrame() == 1.0f)) {
+ setMotion(MOT_W_WAIT_A, -1.0f, 0);
+ }
+
+ iVar1[0] = param_2;
+
+ if (talkProc(iVar1, FALSE, actors)) {
+ rv = TRUE;
+ }
+ break;
+
+ case 30:
+ if (talkProc(NULL, FALSE, actors)) {
+ rv = TRUE;
+ }
+ break;
+
+ case 31:
+ rv = TRUE;
+ break;
+
+ default:
+ rv = TRUE;
+ break;
+ }
+
+ return rv;
}
-/* ############################################################################################## */
-/* 80A212EC-80A212F8 00026C 000C+00 1/1 0/0 0/0 .rodata @6026 */
-SECTION_RODATA static u8 const lit_6026[12] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80A212EC, &lit_6026);
-
-/* 80A1F740-80A1F860 004880 0120+00 1/1 0/0 0/0 .text
- * _Evt_Kasi_Talk_CutInit__15daNpcKasiHana_cFRCi */
-void daNpcKasiHana_c::_Evt_Kasi_Talk_CutInit(int const& param_0) {
- // NONMATCHING
-}
+/* 80A1F9F4-80A1FA9C 004B34 00A8+00 1/0 0/0 0/0 .text _Evt_Kasi__15daNpcKasiHana_cFi */
+BOOL daNpcKasiHana_c::_Evt_Kasi(int i_index) {
+ dEvent_manager_c& eventManager = dComIfGp_getEventManager();
+ int i_cutIndex = -1;
-/* ############################################################################################## */
-/* 80A212F8-80A21304 000278 000C+00 0/1 0/0 0/0 .rodata @6044 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_6044[12] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80A212F8, &lit_6044);
-#pragma pop
-
-/* 80A21304-80A2130C 000284 0008+00 0/1 0/0 0/0 .rodata @6045 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_6045[8] = {
- 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-};
-COMPILER_STRIP_GATE(0x80A21304, &lit_6045);
-#pragma pop
+ int* cutId = dComIfGp_evmng_getMyIntegerP(i_index, "cutId");
+ if (cutId != NULL) {
+ i_cutIndex = *cutId;
+ } else {
+ return TRUE;
+ }
-/* 80A1F860-80A1F9F4 0049A0 0194+00 1/1 0/0 0/0 .text
- * _Evt_Kasi_Talk_CutMain__15daNpcKasiHana_cFRCii */
-void daNpcKasiHana_c::_Evt_Kasi_Talk_CutMain(int const& param_0, int param_1) {
- // NONMATCHING
-}
+ if (eventManager.getIsAddvance(i_index) != 0) {
+ _Evt_Kasi_CutInit(i_cutIndex);
+ }
-/* 80A1F9F4-80A1FA9C 004B34 00A8+00 1/0 0/0 0/0 .text _Evt_Kasi__15daNpcKasiHana_cFi */
-void daNpcKasiHana_c::_Evt_Kasi(int param_0) {
- // NONMATCHING
+ return _Evt_Kasi_CutMain(i_cutIndex);
}
/* 80A1FA9C-80A1FBC4 004BDC 0128+00 1/1 0/0 0/0 .text _Evt_Kasi_CutInit__15daNpcKasiHana_cFRCi */
-void daNpcKasiHana_c::_Evt_Kasi_CutInit(int const& param_0) {
- // NONMATCHING
+BOOL daNpcKasiHana_c::_Evt_Kasi_CutInit(int const& i_cutIndex) {
+ switch (i_cutIndex) {
+ case 10:
+ mKasiMng.onSygnal(4);
+ break;
+
+ case 20:
+ setMotion(MOT_MICH_KYA_TALK, -1.0f, 0);
+ mKasiMng.onSygnal(0x400);
+ initTalk(mMessageNo, NULL);
+ break;
+
+ case 21:
+ mKasiMng.onSygnal(0x1000);
+ field_0x1430 = 24;
+ break;
+
+ case 30:
+ setLookMode(LOOK_NONE);
+ mKasiMng.onSygnal(0x40);
+ mKasiMng.calcCenterPos();
+ break;
+
+ case 40:
+ field_0x1430 = 86;
+ mKasiMng.onSygnal(0x800);
+ setMotion(MOT_MICH_IYAN_WAIT, -1.0f, 0);
+ break;
+ }
+
+ return TRUE;
}
/* 80A1FBC4-80A1FD64 004D04 01A0+00 1/1 0/0 0/0 .text _Evt_Kasi_CutMain__15daNpcKasiHana_cFRCi */
-void daNpcKasiHana_c::_Evt_Kasi_CutMain(int const& param_0) {
- // NONMATCHING
+BOOL daNpcKasiHana_c::_Evt_Kasi_CutMain(int const& i_cutIndex) {
+ BOOL rv = FALSE;
+
+ switch (i_cutIndex) {
+ case 10:
+ if (_turn_to_link(0xA00)) {
+ rv = TRUE;
+ }
+ break;
+
+ case 20:
+ if (talkProc(NULL, TRUE, NULL)) {
+ rv = TRUE;
+ }
+ break;
+
+ case 21:
+ if (mMotion == MOT_MICH_KYA_TALK && (mpMorf->getFrame() == 19.0f || mpMorf->getFrame() == 1.0f)) {
+ setMotion(MOT_W_WAIT_A, -1.0f, 0);
+ }
+
+ field_0x1430--;
+ if (field_0x1430 == 0) {
+ rv = TRUE;
+ }
+ break;
+
+ case 30: {
+ cXyz sp38(mKasiMng.getCenterPos());
+
+ if (_turn_pos(sp38, 0xA00)) {
+ rv = TRUE;
+ }
+ break;
+ }
+
+ case 40:
+ field_0x1430--;
+ if (field_0x1430 <= 0) {
+ rv = TRUE;
+ } else if (field_0x1430 == 66) {
+ mKasiMng.createHearts();
+ }
+ break;
+
+ default:
+ rv = TRUE;
+ }
+
+ return rv;
}
/* 80A1FD64-80A1FE6C 004EA4 0108+00 1/0 0/0 0/0 .text _Evt_Kasi_Cheer__15daNpcKasiHana_cFi */
-void daNpcKasiHana_c::_Evt_Kasi_Cheer(int param_0) {
- // NONMATCHING
-}
-
-/* ############################################################################################## */
-/* 80A2130C-80A21318 00028C 000C+00 1/1 0/0 0/0 .rodata @6169 */
-SECTION_RODATA static u8 const lit_6169[12] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80A2130C, &lit_6169);
-
-/* 80A1FE6C-80A1FF78 004FAC 010C+00 1/1 0/0 0/0 .text
- * _Evt_Kasi_Cheer_CutInit__15daNpcKasiHana_cFRCi */
-void daNpcKasiHana_c::_Evt_Kasi_Cheer_CutInit(int const& param_0) {
- // NONMATCHING
-}
-
-/* ############################################################################################## */
-/* 80A21318-80A21324 000298 000C+00 0/1 0/0 0/0 .rodata @6185 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_6185[12] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80A21318, &lit_6185);
-#pragma pop
-
-/* 80A21324-80A2132C 0002A4 0008+00 0/1 0/0 0/0 .rodata @6186 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_6186[8] = {
- 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-};
-COMPILER_STRIP_GATE(0x80A21324, &lit_6186);
-#pragma pop
-
-/* 80A1FF78-80A2016C 0050B8 01F4+00 1/1 0/0 0/0 .text
- * _Evt_Kasi_Cheer_CutMain__15daNpcKasiHana_cFRCii */
-void daNpcKasiHana_c::_Evt_Kasi_Cheer_CutMain(int const& param_0, int param_1) {
- // NONMATCHING
+BOOL daNpcKasiHana_c::_Evt_Kasi_Cheer(int i_index) {
+ OS_REPORT("-------------------daNpcKasiHana_c::_Evt_Kasi_Cheer\n");
+
+ dEvent_manager_c& eventManager = dComIfGp_getEventManager();
+ int i_cutIndex = -1;
+
+ int* cutId = dComIfGp_evmng_getMyIntegerP(i_index, "cutId");
+ if (cutId != NULL) {
+ i_cutIndex = *cutId;
+ } else {
+ return TRUE;
+ }
+
+ if (eventManager.getIsAddvance(i_index) != 0) {
+ _Evt_Kasi_Cheer_CutInit(i_cutIndex);
+ }
+
+ int iVar2 = -1;
+ int* mesNo;
+
+ /* dSv_event_flag_c::F_290 - Castle Town - Star Game 1 cleared */
+ if (daNpcF_chkEvtBit(290)) {
+ mesNo = dComIfGp_evmng_getMyIntegerP(i_index, "mesNo2");
+ } else {
+ mesNo = dComIfGp_evmng_getMyIntegerP(i_index, "mesNo1");
+ }
+
+ if (mesNo != NULL) {
+ iVar2 = *mesNo;
+ }
+
+ return _Evt_Kasi_Cheer_CutMain(i_cutIndex, iVar2);
+}
+
+/* 80A1FE6C-80A1FF78 004FAC 010C+00 1/1 0/0 0/0 .text _Evt_Kasi_Cheer_CutInit__15daNpcKasiHana_cFRCi */
+BOOL daNpcKasiHana_c::_Evt_Kasi_Cheer_CutInit(int const& i_cutIndex) {
+ fopAc_ac_c* actors[3] = {mKasiMng.getHanaActor(), mKasiMng.getKyuActor(), mKasiMng.getMichActor()};
+
+ switch (i_cutIndex) {
+ case 10:
+ setMotion(MOT_MICH_IYAN_WAIT, -1.0f, 0);
+ setLookMode(LOOK_NONE);
+ field_0x1430 = 86;
+ initTalk(mMessageNo, actors);
+ break;
+
+ case 20:
+ mKasiMng.onSygnal(0x8000);
+ break;
+
+ case 30:
+ mKasiMng.onSygnal(0x10000);
+ break;
+ }
+
+ return TRUE;
+}
+
+/* 80A1FF78-80A2016C 0050B8 01F4+00 1/1 0/0 0/0 .text _Evt_Kasi_Cheer_CutMain__15daNpcKasiHana_cFRCii */
+BOOL daNpcKasiHana_c::_Evt_Kasi_Cheer_CutMain(int const& i_cutIndex, int param_2) {
+ fopAc_ac_c* actors[3] = {mKasiMng.getHanaActor(), mKasiMng.getKyuActor(), mKasiMng.getMichActor()};
+ int iVar1[2] = {-1, -1};
+ BOOL rv = FALSE;
+
+ switch (i_cutIndex) {
+ case 10:
+ if (field_0x1430 > 0) {
+ field_0x1430--;
+ if (field_0x1430 == 0) {
+ setMotion(MOT_W_WAIT_A, -1.0f, 0);
+ }
+ }
+
+ iVar1[0] = param_2;
+
+ if (talkProc(iVar1, FALSE, actors)) {
+ rv = TRUE;
+ }
+ break;
+
+ case 20:
+ if (field_0x1430 > 0) {
+ field_0x1430--;
+ if (field_0x1430 == 0) {
+ setMotion(MOT_W_WAIT_A, -1.0f, 0);
+ }
+ }
+
+ iVar1[0] = param_2;
+
+ if (talkProc(iVar1, FALSE, actors)) {
+ rv = TRUE;
+ }
+ break;
+
+ case 30:
+ if (field_0x1430 > 0) {
+ field_0x1430--;
+ if (field_0x1430 == 0) {
+ setMotion(MOT_W_WAIT_A, -1.0f, 0);
+ }
+ }
+
+ if (talkProc(NULL, FALSE, actors)) {
+ rv = TRUE;
+ }
+ break;
+
+ default:
+ rv = TRUE;
+ }
+
+ return rv;
}
/* 80A2016C-80A20244 0052AC 00D8+00 1/0 0/0 0/0 .text _Evt_Kasi_Cheer2__15daNpcKasiHana_cFi */
-void daNpcKasiHana_c::_Evt_Kasi_Cheer2(int param_0) {
- // NONMATCHING
-}
-
-/* ############################################################################################## */
-/* 80A2132C-80A21338 0002AC 000C+00 1/1 0/0 0/0 .rodata @6235 */
-SECTION_RODATA static u8 const lit_6235[12] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80A2132C, &lit_6235);
-
-/* 80A20244-80A20350 005384 010C+00 1/1 0/0 0/0 .text
- * _Evt_Kasi_Cheer2_CutInit__15daNpcKasiHana_cFRCi */
-void daNpcKasiHana_c::_Evt_Kasi_Cheer2_CutInit(int const& param_0) {
- // NONMATCHING
-}
-
-/* ############################################################################################## */
-/* 80A21338-80A21344 0002B8 000C+00 0/1 0/0 0/0 .rodata @6251 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_6251[12] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80A21338, &lit_6251);
-#pragma pop
-
-/* 80A21344-80A21350 0002C4 0008+04 0/1 0/0 0/0 .rodata @6252 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_6252[8 + 4 /* padding */] = {
- 0xFF,
- 0xFF,
- 0xFF,
- 0xFF,
- 0xFF,
- 0xFF,
- 0xFF,
- 0xFF,
- /* padding */
- 0x00,
- 0x00,
- 0x00,
- 0x00,
-};
-COMPILER_STRIP_GATE(0x80A21344, &lit_6252);
-#pragma pop
-
-/* 80A20350-80A20544 005490 01F4+00 1/1 0/0 0/0 .text
- * _Evt_Kasi_Cheer2_CutMain__15daNpcKasiHana_cFRCii */
-void daNpcKasiHana_c::_Evt_Kasi_Cheer2_CutMain(int const& param_0, int param_1) {
- // NONMATCHING
+BOOL daNpcKasiHana_c::_Evt_Kasi_Cheer2(int i_index) {
+ OS_REPORT("-------------------daNpcKasiHana_c::_Evt_Kasi_Cheer2\n");
+
+ dEvent_manager_c& eventManager = dComIfGp_getEventManager();
+ int i_cutIndex = -1;
+
+ int* cutId = dComIfGp_evmng_getMyIntegerP(i_index, "cutId");
+ if (cutId != NULL) {
+ i_cutIndex = *cutId;
+ } else {
+ return TRUE;
+ }
+
+ if (eventManager.getIsAddvance(i_index)) {
+ _Evt_Kasi_Cheer2_CutInit(i_cutIndex);
+ }
+
+ int iVar2 = -1;
+ int* mesNo = dComIfGp_evmng_getMyIntegerP(i_index, "mesNo1");
+ if (mesNo != NULL) {
+ iVar2 = *mesNo;
+ }
+
+ return _Evt_Kasi_Cheer2_CutMain(i_cutIndex, iVar2);
+}
+
+/* 80A20244-80A20350 005384 010C+00 1/1 0/0 0/0 .text _Evt_Kasi_Cheer2_CutInit__15daNpcKasiHana_cFRCi */
+BOOL daNpcKasiHana_c::_Evt_Kasi_Cheer2_CutInit(int const& i_cutIndex) {
+ fopAc_ac_c* actors[3] = {mKasiMng.getHanaActor(), mKasiMng.getKyuActor(), mKasiMng.getMichActor()};
+
+ switch (i_cutIndex) {
+ case 10:
+ setMotion(MOT_MICH_IYAN_WAIT, -1.0f, 0);
+ setLookMode(LOOK_NONE);
+ field_0x1430 = 86;
+ initTalk(mMessageNo, actors);
+ break;
+
+ case 20:
+ mKasiMng.onSygnal(0x2000);
+ break;
+
+ case 30:
+ mKasiMng.onSygnal(0x4000);
+ break;
+ }
+
+ return TRUE;
+}
+
+/* 80A20350-80A20544 005490 01F4+00 1/1 0/0 0/0 .text _Evt_Kasi_Cheer2_CutMain__15daNpcKasiHana_cFRCii */
+BOOL daNpcKasiHana_c::_Evt_Kasi_Cheer2_CutMain(int const& i_cutIndex, int param_2) {
+ fopAc_ac_c* actors[3] = {mKasiMng.getHanaActor(), mKasiMng.getKyuActor(), mKasiMng.getMichActor()};
+ int iVar1[2] = {-1, -1};
+ BOOL rv = FALSE;
+
+ switch (i_cutIndex) {
+ case 10:
+ if (field_0x1430 > 0) {
+ field_0x1430--;
+ if (field_0x1430 == 0) {
+ setMotion(MOT_W_WAIT_A, -1.0f, 0);
+ }
+ }
+
+ iVar1[0] = param_2;
+
+ if (talkProc(iVar1, FALSE, actors)) {
+ rv = TRUE;
+ }
+ break;
+
+ case 20:
+ if (field_0x1430 > 0) {
+ field_0x1430--;
+ if (field_0x1430 == 0) {
+ setMotion(MOT_W_WAIT_A, -1.0f, 0);
+ }
+ }
+
+ iVar1[0] = param_2;
+
+ if (talkProc(iVar1, FALSE, actors)) {
+ rv = TRUE;
+ }
+ break;
+
+ case 30:
+ if (field_0x1430 > 0) {
+ field_0x1430--;
+ if (field_0x1430 == 0) {
+ setMotion(MOT_W_WAIT_A, -1.0f, 0);
+ }
+ }
+
+ if (talkProc(NULL, FALSE, actors)) {
+ rv = TRUE;
+ }
+ break;
+
+ default:
+ rv = TRUE;
+ }
+
+ return rv;
}
/* 80A20544-80A20564 005684 0020+00 1/0 0/0 0/0 .text daNpcKasiHana_Create__FPv */
-static void daNpcKasiHana_Create(void* param_0) {
- // NONMATCHING
+static int daNpcKasiHana_Create(void* a_this) {
+ return static_cast<daNpcKasiHana_c*>(a_this)->Create();
}
/* 80A20564-80A20584 0056A4 0020+00 1/0 0/0 0/0 .text daNpcKasiHana_Delete__FPv */
-static void daNpcKasiHana_Delete(void* param_0) {
- // NONMATCHING
+static int daNpcKasiHana_Delete(void* a_this) {
+ return static_cast<daNpcKasiHana_c*>(a_this)->Delete();
}
/* 80A20584-80A205A4 0056C4 0020+00 1/0 0/0 0/0 .text daNpcKasiHana_Execute__FPv */
-static void daNpcKasiHana_Execute(void* param_0) {
- // NONMATCHING
+static int daNpcKasiHana_Execute(void* a_this) {
+ return static_cast<daNpcKasiHana_c*>(a_this)->Execute();
}
/* 80A205A4-80A205C4 0056E4 0020+00 1/0 0/0 0/0 .text daNpcKasiHana_Draw__FPv */
-static void daNpcKasiHana_Draw(void* param_0) {
- // NONMATCHING
+static int daNpcKasiHana_Draw(void* a_this) {
+ return static_cast<daNpcKasiHana_c*>(a_this)->Draw();
}
/* 80A205C4-80A205CC 005704 0008+00 1/0 0/0 0/0 .text daNpcKasiHana_IsDelete__FPv */
-static bool daNpcKasiHana_IsDelete(void* param_0) {
- return true;
-}
-
-/* 80A205CC-80A20614 00570C 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGCylFv */
-// cM3dGCyl::~cM3dGCyl() {
-extern "C" void __dt__8cM3dGCylFv() {
- // NONMATCHING
-}
-
-/* 80A20614-80A2065C 005754 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGAabFv */
-// cM3dGAab::~cM3dGAab() {
-extern "C" void __dt__8cM3dGAabFv() {
- // NONMATCHING
+static int daNpcKasiHana_IsDelete(void* a_this) {
+ return 1;
}
-/* 80A2065C-80A20678 00579C 001C+00 1/1 0/0 0/0 .text getCenterPos__15daNpcKasi_Mng_cFv
- */
-void daNpcKasi_Mng_c::getCenterPos() {
- // NONMATCHING
-}
+/* 80A2065C-80A20678 00579C 001C+00 1/1 0/0 0/0 .text getCenterPos__15daNpcKasi_Mng_cFv*/
+cXyz daNpcKasi_Mng_c::getCenterPos() { return mCenterPos; }
/* 80A20678-80A2067C 0057B8 0004+00 1/0 0/0 0/0 .text adjustShapeAngle__15daNpcKasiHana_cFv */
-void daNpcKasiHana_c::adjustShapeAngle() {
- /* empty function */
-}
-
-/* ############################################################################################## */
-/* 80A217F4-80A21800 000420 000C+00 2/2 0/0 0/0 .data __vt__21daNpcKasiHana_Param_c */
-SECTION_DATA extern void* __vt__21daNpcKasiHana_Param_c[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__21daNpcKasiHana_Param_cFv,
-};
-
-/* 80A2067C-80A206C4 0057BC 0048+00 2/1 0/0 0/0 .text __dt__21daNpcKasiHana_Param_cFv */
-daNpcKasiHana_Param_c::~daNpcKasiHana_Param_c() {
- // NONMATCHING
-}
-
-/* 80A206C4-80A206CC 005804 0008+00 1/0 0/0 0/0 .text @36@__dt__12dBgS_ObjAcchFv */
-static void func_80A206C4() {
- // NONMATCHING
-}
-
-/* 80A206CC-80A206D4 00580C 0008+00 1/0 0/0 0/0 .text @20@__dt__12dBgS_ObjAcchFv */
-static void func_80A206CC() {
- // NONMATCHING
-}
-
-/* 80A206D4-80A20734 005814 0060+00 1/0 0/0 0/0 .text __dt__13daNpcF_Path_cFv */
-// daNpcF_Path_c::~daNpcF_Path_c() {
-extern "C" void __dt__13daNpcF_Path_cFv() {
- // NONMATCHING
-}
-
-/* 80A20734-80A2077C 005874 0048+00 1/0 0/0 0/0 .text __dt__16daNpcF_SPCurve_cFv */
-// daNpcF_SPCurve_c::~daNpcF_SPCurve_c() {
-extern "C" void __dt__16daNpcF_SPCurve_cFv() {
- // NONMATCHING
-}
-
-/* 80A2077C-80A207C4 0058BC 0048+00 5/4 0/0 0/0 .text __dt__18daNpcF_ActorMngr_cFv */
-// daNpcF_ActorMngr_c::~daNpcF_ActorMngr_c() {
-extern "C" void __dt__18daNpcF_ActorMngr_cFv() {
- // NONMATCHING
-}
-
-/* 80A207C4-80A20800 005904 003C+00 2/2 0/0 0/0 .text __ct__18daNpcF_ActorMngr_cFv */
-// daNpcF_ActorMngr_c::daNpcF_ActorMngr_c() {
-extern "C" void __ct__18daNpcF_ActorMngr_cFv() {
- // NONMATCHING
-}
-
-/* 80A20800-80A208D0 005940 00D0+00 1/0 0/0 0/0 .text __dt__15daNpcF_Lookat_cFv */
-// daNpcF_Lookat_c::~daNpcF_Lookat_c() {
-extern "C" void __dt__15daNpcF_Lookat_cFv() {
- // NONMATCHING
-}
-
-/* 80A208D0-80A208D4 005A10 0004+00 2/2 0/0 0/0 .text __ct__5csXyzFv */
-// csXyz::csXyz() {
-extern "C" void __ct__5csXyzFv() {
- /* empty function */
-}
-
-/* 80A208D4-80A208D8 005A14 0004+00 2/2 0/0 0/0 .text __ct__4cXyzFv */
-// cXyz::cXyz() {
-extern "C" void __ct__4cXyzFv() {
- /* empty function */
-}
+void daNpcKasiHana_c::adjustShapeAngle() {}
-/* 80A208D8-80A20B24 005A18 024C+00 1/1 0/0 0/0 .text __dt__8daNpcF_cFv */
-// daNpcF_c::~daNpcF_c() {
-extern "C" void __dt__8daNpcF_cFv() {
- // NONMATCHING
-}
-
-/* 80A20B24-80A20D14 005C64 01F0+00 1/1 0/0 0/0 .text __ct__8daNpcF_cFv */
-// daNpcF_c::daNpcF_c() {
-extern "C" void __ct__8daNpcF_cFv() {
- // NONMATCHING
-}
-
-/* 80A20D14-80A20D84 005E54 0070+00 1/0 0/0 0/0 .text __dt__12dBgS_AcchCirFv */
-// dBgS_AcchCir::~dBgS_AcchCir() {
-extern "C" void __dt__12dBgS_AcchCirFv() {
- // NONMATCHING
-}
-
-/* 80A20D84-80A20DE0 005EC4 005C+00 1/0 0/0 0/0 .text __dt__10dCcD_GSttsFv */
-// dCcD_GStts::~dCcD_GStts() {
-extern "C" void __dt__10dCcD_GSttsFv() {
- // NONMATCHING
-}
-
-/* 80A20DE0-80A20E50 005F20 0070+00 3/2 0/0 0/0 .text __dt__12dBgS_ObjAcchFv */
-// dBgS_ObjAcch::~dBgS_ObjAcch() {
-extern "C" void __dt__12dBgS_ObjAcchFv() {
- // NONMATCHING
-}
-
-/* 80A20E50-80A20E98 005F90 0048+00 1/0 0/0 0/0 .text __dt__12J3DFrameCtrlFv */
-// J3DFrameCtrl::~J3DFrameCtrl() {
-extern "C" void __dt__12J3DFrameCtrlFv() {
- // NONMATCHING
-}
-
-/* 80A20E98-80A20EA0 005FD8 0008+00 1/0 0/0 0/0 .text ctrlBtk__8daNpcF_cFv */
-// bool daNpcF_c::ctrlBtk() {
-extern "C" bool ctrlBtk__8daNpcF_cFv() {
- return false;
-}
-
-/* 80A20EA0-80A20EA4 005FE0 0004+00 1/0 0/0 0/0 .text setCollisions__8daNpcF_cFv */
-// void daNpcF_c::setCollisions() {
-extern "C" void setCollisions__8daNpcF_cFv() {
- /* empty function */
-}
-
-/* 80A20EA4-80A20EAC 005FE4 0008+00 1/0 0/0 0/0 .text setExpressionAnm__8daNpcF_cFib */
-// bool daNpcF_c::setExpressionAnm(int param_0, bool param_1) {
-extern "C" bool setExpressionAnm__8daNpcF_cFib() {
- return true;
-}
-
-/* 80A20EAC-80A20EB4 005FEC 0008+00 1/0 0/0 0/0 .text setExpressionBtp__8daNpcF_cFi */
-// bool daNpcF_c::setExpressionBtp(int param_0) {
-extern "C" bool setExpressionBtp__8daNpcF_cFi() {
- return true;
-}
-
-/* 80A20EB4-80A20EB8 005FF4 0004+00 1/0 0/0 0/0 .text setExpression__8daNpcF_cFif */
-// void daNpcF_c::setExpression(int param_0, f32 param_1) {
-extern "C" void setExpression__8daNpcF_cFif() {
- /* empty function */
-}
-
-/* 80A20EB8-80A20EBC 005FF8 0004+00 1/0 0/0 0/0 .text drawOtherMdls__8daNpcF_cFv */
-// void daNpcF_c::drawOtherMdls() {
-extern "C" void drawOtherMdls__8daNpcF_cFv() {
- /* empty function */
-}
+AUDIO_INSTANCES;
-/* 80A20EBC-80A20F04 005FFC 0048+00 1/0 0/0 0/0 .text __dt__10cCcD_GSttsFv */
-// cCcD_GStts::~cCcD_GStts() {
-extern "C" void __dt__10cCcD_GSttsFv() {
- // NONMATCHING
-}
-
-/* ############################################################################################## */
-/* 80A21350-80A21358 0002D0 0008+00 1/1 0/0 0/0 .rodata @6323 */
-SECTION_RODATA static u8 const lit_6323[8] = {
- 0x43, 0x30, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
+/* 80A216C0-80A216E0 -00001 0020+00 1/0 0/0 0/0 .data daNpcKasiHana_MethodTable */
+static actor_method_class daNpcKasiHana_MethodTable = {
+ (process_method_func)daNpcKasiHana_Create,
+ (process_method_func)daNpcKasiHana_Delete,
+ (process_method_func)daNpcKasiHana_Execute,
+ (process_method_func)daNpcKasiHana_IsDelete,
+ (process_method_func)daNpcKasiHana_Draw,
};
-COMPILER_STRIP_GATE(0x80A21350, &lit_6323);
-
-/* 80A20F04-80A20F80 006044 007C+00 1/1 0/0 0/0 .text cLib_getRndValue<i>__Fii */
-extern "C" void func_80A20F04(void* _this, int param_0, int param_1) {
- // NONMATCHING
-}
-
-/* 80A20F80-80A2106C 0060C0 00EC+00 0/0 1/0 0/0 .text __sinit_d_a_npc_kasi_hana_cpp */
-void __sinit_d_a_npc_kasi_hana_cpp() {
- // NONMATCHING
-}
-#pragma push
-#pragma force_active on
-REGISTER_CTORS(0x80A20F80, __sinit_d_a_npc_kasi_hana_cpp);
-#pragma pop
-
-/* ############################################################################################## */
-/* 80A21864-80A21868 000064 0004+00 0/0 0/0 0/0 .bss
- * sInstance__40JASGlobalInstance<19JASDefaultBankTable> */
-#pragma push
-#pragma force_active on
-static u8 data_80A21864[4];
-#pragma pop
-
-/* 80A21868-80A2186C 000068 0004+00 0/0 0/0 0/0 .bss
- * sInstance__35JASGlobalInstance<14JASAudioThread> */
-#pragma push
-#pragma force_active on
-static u8 data_80A21868[4];
-#pragma pop
-
-/* 80A2186C-80A21870 00006C 0004+00 0/0 0/0 0/0 .bss sInstance__27JASGlobalInstance<7Z2SeMgr> */
-#pragma push
-#pragma force_active on
-static u8 data_80A2186C[4];
-#pragma pop
-
-/* 80A21870-80A21874 000070 0004+00 0/0 0/0 0/0 .bss sInstance__28JASGlobalInstance<8Z2SeqMgr> */
-#pragma push
-#pragma force_active on
-static u8 data_80A21870[4];
-#pragma pop
-
-/* 80A21874-80A21878 000074 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2SceneMgr>
- */
-#pragma push
-#pragma force_active on
-static u8 data_80A21874[4];
-#pragma pop
-
-/* 80A21878-80A2187C 000078 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2StatusMgr>
- */
-#pragma push
-#pragma force_active on
-static u8 data_80A21878[4];
-#pragma pop
-
-/* 80A2187C-80A21880 00007C 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2DebugSys>
- */
-#pragma push
-#pragma force_active on
-static u8 data_80A2187C[4];
-#pragma pop
-
-/* 80A21880-80A21884 000080 0004+00 0/0 0/0 0/0 .bss
- * sInstance__36JASGlobalInstance<15JAISoundStarter> */
-#pragma push
-#pragma force_active on
-static u8 data_80A21880[4];
-#pragma pop
-
-/* 80A21884-80A21888 000084 0004+00 0/0 0/0 0/0 .bss
- * sInstance__35JASGlobalInstance<14Z2SoundStarter> */
-#pragma push
-#pragma force_active on
-static u8 data_80A21884[4];
-#pragma pop
-
-/* 80A21888-80A2188C 000088 0004+00 0/0 0/0 0/0 .bss
- * sInstance__33JASGlobalInstance<12Z2SpeechMgr2> */
-#pragma push
-#pragma force_active on
-static u8 data_80A21888[4];
-#pragma pop
-
-/* 80A2188C-80A21890 00008C 0004+00 0/0 0/0 0/0 .bss sInstance__28JASGlobalInstance<8JAISeMgr> */
-#pragma push
-#pragma force_active on
-static u8 data_80A2188C[4];
-#pragma pop
-
-/* 80A21890-80A21894 000090 0004+00 0/0 0/0 0/0 .bss sInstance__29JASGlobalInstance<9JAISeqMgr> */
-#pragma push
-#pragma force_active on
-static u8 data_80A21890[4];
-#pragma pop
-
-/* 80A21894-80A21898 000094 0004+00 0/0 0/0 0/0 .bss
- * sInstance__33JASGlobalInstance<12JAIStreamMgr> */
-#pragma push
-#pragma force_active on
-static u8 data_80A21894[4];
-#pragma pop
-
-/* 80A21898-80A2189C 000098 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2SoundMgr>
- */
-#pragma push
-#pragma force_active on
-static u8 data_80A21898[4];
-#pragma pop
-
-/* 80A2189C-80A218A0 00009C 0004+00 0/0 0/0 0/0 .bss
- * sInstance__33JASGlobalInstance<12JAISoundInfo> */
-#pragma push
-#pragma force_active on
-static u8 data_80A2189C[4];
-#pragma pop
-
-/* 80A218A0-80A218A4 0000A0 0004+00 0/0 0/0 0/0 .bss
- * sInstance__34JASGlobalInstance<13JAUSoundTable> */
-#pragma push
-#pragma force_active on
-static u8 data_80A218A0[4];
-#pragma pop
-
-/* 80A218A4-80A218A8 0000A4 0004+00 0/0 0/0 0/0 .bss
- * sInstance__38JASGlobalInstance<17JAUSoundNameTable> */
-#pragma push
-#pragma force_active on
-static u8 data_80A218A4[4];
-#pragma pop
-
-/* 80A218A8-80A218AC 0000A8 0004+00 0/0 0/0 0/0 .bss
- * sInstance__33JASGlobalInstance<12JAUSoundInfo> */
-#pragma push
-#pragma force_active on
-static u8 data_80A218A8[4];
-#pragma pop
-
-/* 80A218AC-80A218B0 0000AC 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2SoundInfo>
- */
-#pragma push
-#pragma force_active on
-static u8 data_80A218AC[4];
-#pragma pop
-
-/* 80A218B0-80A218B4 0000B0 0004+00 0/0 0/0 0/0 .bss
- * sInstance__34JASGlobalInstance<13Z2SoundObjMgr> */
-#pragma push
-#pragma force_active on
-static u8 data_80A218B0[4];
-#pragma pop
-
-/* 80A218B4-80A218B8 0000B4 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2Audience>
- */
-#pragma push
-#pragma force_active on
-static u8 data_80A218B4[4];
-#pragma pop
-
-/* 80A218B8-80A218BC 0000B8 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2FxLineMgr>
- */
-#pragma push
-#pragma force_active on
-static u8 data_80A218B8[4];
-#pragma pop
-
-/* 80A218BC-80A218C0 0000BC 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2EnvSeMgr>
- */
-#pragma push
-#pragma force_active on
-static u8 data_80A218BC[4];
-#pragma pop
-
-/* 80A218C0-80A218C4 0000C0 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2SpeechMgr>
- */
-#pragma push
-#pragma force_active on
-static u8 data_80A218C0[4];
-#pragma pop
-
-/* 80A218C4-80A218C8 0000C4 0004+00 0/0 0/0 0/0 .bss
- * sInstance__34JASGlobalInstance<13Z2WolfHowlMgr> */
-#pragma push
-#pragma force_active on
-static u8 data_80A218C4[4];
-#pragma pop
-
-/* 80A21358-80A21358 0002D8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
+/* 80A216E0-80A21710 -00001 0030+00 0/0 0/0 1/0 .data g_profile_NPC_KASIHANA */
+extern actor_process_profile_definition g_profile_NPC_KASIHANA = {
+ fpcLy_CURRENT_e, // mLayerID
+ 7, // mListID
+ fpcPi_CURRENT_e, // mListPrio
+ PROC_NPC_KASIHANA, // mProcName
+ &g_fpcLf_Method.base, // sub_method
+ sizeof(daNpcKasiHana_c), // mSize
+ 0, // mSizeOther
+ 0, // mParameters
+ &g_fopAc_Method.base, // sub_method
+ 420, // mPriority
+ &daNpcKasiHana_MethodTable, // sub_method
+ 0x00040108, // mStatus
+ fopAc_NPC_e, // mActorType
+ fopAc_CULLBOX_CUSTOM_e, // cullType
+};
diff --git a/src/d/actor/d_a_npc_kasi_kyu.cpp b/src/d/actor/d_a_npc_kasi_kyu.cpp
index 35a257e1a8..1df16348ef 100644
--- a/src/d/actor/d_a_npc_kasi_kyu.cpp
+++ b/src/d/actor/d_a_npc_kasi_kyu.cpp
@@ -6,1937 +6,1476 @@
#include "d/dolzel_rel.h"
#include "d/actor/d_a_npc_kasi_kyu.h"
-#include "dol2asm.h"
-
-//
-// Forward References:
-//
-
-extern "C" void __ct__14daNpcKasiKyu_cFv();
-extern "C" void __dt__8cM3dGCylFv();
-extern "C" void __dt__8cM3dGAabFv();
-extern "C" void __dt__14daNpcKasiKyu_cFv();
-extern "C" void Create__14daNpcKasiKyu_cFv();
-extern "C" void CreateHeap__14daNpcKasiKyu_cFv();
-extern "C" void Delete__14daNpcKasiKyu_cFv();
-extern "C" void Execute__14daNpcKasiKyu_cFv();
-extern "C" void Draw__14daNpcKasiKyu_cFv();
-extern "C" void ctrlJoint__14daNpcKasiKyu_cFP8J3DJointP8J3DModel();
-extern "C" void createHeapCallBack__14daNpcKasiKyu_cFP10fopAc_ac_c();
-extern "C" void ctrlJointCallBack__14daNpcKasiKyu_cFP8J3DJointi();
-extern "C" void setParam__14daNpcKasiKyu_cFv();
-extern "C" void main__14daNpcKasiKyu_cFv();
-extern "C" void setAttnPos__14daNpcKasiKyu_cFv();
-extern "C" void setMotionAnm__14daNpcKasiKyu_cFif();
-extern "C" void setMotion__14daNpcKasiKyu_cFifi();
-extern "C" bool drawDbgInfo__14daNpcKasiKyu_cFv();
-extern "C" void reset__14daNpcKasiKyu_cFv();
-extern "C" void playMotion__14daNpcKasiKyu_cFv();
-extern "C" void playMotionAnmLoop__14daNpcKasiKyu_cFPPPQ28daNpcF_c18daNpcF_anmPlayData();
-extern "C" void setAction__14daNpcKasiKyu_cFM14daNpcKasiKyu_cFPCvPvi_i();
-extern "C" void setLookMode__14daNpcKasiKyu_cFi();
-extern "C" void lookat__14daNpcKasiKyu_cFv();
-extern "C" void step__14daNpcKasiKyu_cFsi();
-extern "C" void chkFindPlayer__14daNpcKasiKyu_cFv();
-extern "C" void wait__14daNpcKasiKyu_cFi();
-extern "C" void fear__14daNpcKasiKyu_cFi();
-extern "C" void srchWolfTag__14daNpcKasiKyu_cFv();
-extern "C" void _srch_escape_tag__14daNpcKasiKyu_cFPvPv();
-extern "C" void getWolfPathNearIdx__14daNpcKasiKyu_cFv();
-extern "C" void chace_st__14daNpcKasiKyu_cFi();
-extern "C" void chace__14daNpcKasiKyu_cFi();
-extern "C" void getChacePos__14daNpcKasiKyu_cFv();
-extern "C" void turn_link__14daNpcKasiKyu_cFi();
-extern "C" void turn_home__14daNpcKasiKyu_cFi();
-extern "C" void turn_center__14daNpcKasiKyu_cFi();
-extern "C" void talk_dummy__14daNpcKasiKyu_cFi();
-extern "C" void kya__14daNpcKasiKyu_cFi();
-extern "C" void kya2__14daNpcKasiKyu_cFi();
-extern "C" void kya_stop__14daNpcKasiKyu_cFi();
-extern "C" void iyan__14daNpcKasiKyu_cFi();
-extern "C" void iyan_look__14daNpcKasiKyu_cFi();
-extern "C" void turn_hana__14daNpcKasiKyu_cFi();
-extern "C" void escape__14daNpcKasiKyu_cFi();
-extern "C" void wait_dummy__14daNpcKasiKyu_cFi();
-extern "C" void cheer__14daNpcKasiKyu_cFi();
-extern "C" void _turn_to_link__14daNpcKasiKyu_cFs();
-extern "C" void _turn_pos__14daNpcKasiKyu_cFRC4cXyzs();
-extern "C" void actor_front_check__14daNpcKasiKyu_cFP10fopAc_ac_c();
-extern "C" void _getOffset__14daNpcKasiKyu_cFRC4cXyzR4cXyz();
-extern "C" static void daNpcKasiKyu_Create__FPv();
-extern "C" static void daNpcKasiKyu_Delete__FPv();
-extern "C" static void daNpcKasiKyu_Execute__FPv();
-extern "C" static void daNpcKasiKyu_Draw__FPv();
-extern "C" static bool daNpcKasiKyu_IsDelete__FPv();
-extern "C" void __dt__13daNpcF_Path_cFv();
-extern "C" void __dt__16daNpcF_SPCurve_cFv();
-extern "C" void __dt__18daNpcF_ActorMngr_cFv();
-extern "C" void __ct__18daNpcF_ActorMngr_cFv();
-extern "C" void __dt__15daNpcF_Lookat_cFv();
-extern "C" void __dt__5csXyzFv();
-extern "C" void __ct__5csXyzFv();
-extern "C" void __dt__4cXyzFv();
-extern "C" void __ct__4cXyzFv();
-extern "C" void __dt__8daNpcF_cFv();
-extern "C" void __ct__8daNpcF_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" bool ctrlBtk__8daNpcF_cFv();
-extern "C" void setCollisions__8daNpcF_cFv();
-extern "C" bool setExpressionAnm__8daNpcF_cFib();
-extern "C" bool setExpressionBtp__8daNpcF_cFi();
-extern "C" void setExpression__8daNpcF_cFif();
-extern "C" void drawOtherMdls__8daNpcF_cFv();
-extern "C" void __dt__10cCcD_GSttsFv();
-extern "C" void __sinit_d_a_npc_kasi_kyu_cpp();
-extern "C" void adjustShapeAngle__14daNpcKasiKyu_cFv();
-extern "C" void __dt__20daNpcKasiKyu_Param_cFv();
-extern "C" static void func_80A25894();
-extern "C" static void func_80A2589C();
-extern "C" u8 const m__20daNpcKasiKyu_Param_c[116];
-extern "C" extern char const* const d_a_npc_kasi_kyu__stringBase0;
-extern "C" u8 mEvtSeqList__14daNpcKasiKyu_c[12];
-extern "C" u8 mTargetTag__14daNpcKasiKyu_c[4];
-extern "C" u8 mTargetTagDist__14daNpcKasiKyu_c[4];
-
-//
-// External References:
-//
-
-extern "C" void ZXYrotS__14mDoMtx_stack_cFRC5csXyz();
-extern "C" void setMorf__13mDoExt_morf_cFf();
-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 fopAc_IsActor__FPv();
-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_searchActorDistanceXZ__FPC10fopAc_ac_cPC10fopAc_ac_c();
-extern "C" void fopAcM_searchActorDistanceXZ2__FPC10fopAc_ac_cPC10fopAc_ac_c();
-extern "C" void fpcEx_Search__FPFPvPv_PvPv();
-extern "C" void dComIfG_resLoad__FP30request_of_phase_process_classPCc();
-extern "C" void dComIfG_resDelete__FP30request_of_phase_process_classPCc();
-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 ChkPresentEnd__16dEvent_manager_cFv();
-extern "C" void __ct__12dBgS_AcchCirFv();
-extern "C" void SetWall__12dBgS_AcchCirFff();
-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__18daNpcF_ActorMngr_cFv();
-extern "C" void entry__18daNpcF_ActorMngr_cFP10fopAc_ac_c();
-extern "C" void remove__18daNpcF_ActorMngr_cFv();
-extern "C" void getActorP__18daNpcF_ActorMngr_cFv();
-extern "C" void initialize__16daNpcF_SPCurve_cFP5dPathi();
-extern "C" void initialize__13daNpcF_Path_cFv();
-extern "C" void setPathInfo__13daNpcF_Path_cFUcScUc();
-extern "C" void getDstPos__13daNpcF_Path_cF4cXyzR4cXyz();
-extern "C" void initialize__15daNpcF_Lookat_cFv();
-extern "C" void setParam__15daNpcF_Lookat_cFffffffffffffsP4cXyz();
-extern "C" void calc__15daNpcF_Lookat_cFP10fopAc_ac_cPA4_fPP5csXyziii();
-extern "C" void execute__8daNpcF_cFv();
-extern "C" void draw__8daNpcF_cFiifP11_GXColorS10i();
-extern "C" void setMtx__8daNpcF_cFv();
-extern "C" void setMtx2__8daNpcF_cFv();
-extern "C" void initialize__8daNpcF_cFv();
-extern "C" void getTrnsfrmKeyAnmP__8daNpcF_cFPci();
-extern "C" void getTexPtrnAnmP__8daNpcF_cFPci();
-extern "C" void setMcaMorfAnm__8daNpcF_cFP18J3DAnmTransformKeyffiii();
-extern "C" void setBtpAnm__8daNpcF_cFP16J3DAnmTexPatternP12J3DModelDatafi();
-extern "C" void setEnvTevColor__8daNpcF_cFv();
-extern "C" void setRoomNo__8daNpcF_cFv();
-extern "C" void playMotionAnm__8daNpcF_cFPPPQ28daNpcF_c18daNpcF_anmPlayData();
-extern "C" void setLookatMtx__8daNpcF_cFiPif();
-extern "C" void orderEvent__8daNpcF_cFiPcUsUsUcUs();
-extern "C" void chkActorInSight__8daNpcF_cFP10fopAc_ac_cf();
-extern "C" void chkActorInAttnArea__8daNpcF_cFP10fopAc_ac_cP10fopAc_ac_ci();
-extern "C" void turn__8daNpcF_cFsfi();
-extern "C" void getDistTableIdx__8daNpcF_cFii();
-extern "C" void daNpcF_chkEvtBit__FUl();
-extern "C" void dKy_darkworld_check__Fv();
-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 __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 cLib_chaseAngleS__FPsss();
-extern "C" void cLib_targetAngleY__FPC3VecPC3Vec();
-extern "C" void cLib_targetAngleX__FPC4cXyzPC4cXyz();
-extern "C" void cLib_distanceAngleS__Fss();
-extern "C" void __ct__17Z2CreatureCitizenFv();
-extern "C" void __dt__17Z2CreatureCitizenFv();
-extern "C" void init__17Z2CreatureCitizenFP3VecP3VecUcUc();
-extern "C" void* __nw__FUl();
-extern "C" void __dl__FPv();
-extern "C" void init__12J3DFrameCtrlFs();
-extern "C" void __destroy_arr();
-extern "C" void __construct_array();
-extern "C" void __ptmf_test();
-extern "C" void __ptmf_scall();
-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_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__8daNpcF_c[68];
-extern "C" extern void* __vt__8daNpcF_c[18];
-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" u8 now__14mDoMtx_stack_c[48];
-extern "C" u8 mCurrentMtx__6J3DSys[48];
-extern "C" void __register_global_object();
-
-//
-// Declarations:
-//
-
-/* ############################################################################################## */
-/* 80A25B0C-80A25B0C 000254 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
-#pragma push
-#pragma force_active on
-SECTION_DEAD static char const* const stringBase_80A25B0C = "kasi_kyu";
-SECTION_DEAD static char const* const stringBase_80A25B15 = "girls";
-SECTION_DEAD static char const* const stringBase_80A25B1B = "Wgeneral";
-#pragma pop
+#include "Z2AudioLib/Z2Instances.h"
+
+enum kasi_kyu_RES_File_ID {
+ /* BMDR */
+ /* 0x4 */ BMDR_KYU = 0x4,
+
+ /* BTP */
+ /* 0x7 */ BTP_KYU = 0x7,
+};
+
+enum girls_RES_File_ID {
+ /* BCK */
+ /* 0x3 */ BCK_MICH_IYAN_WAIT = 0x3,
+ /* 0x4 */ BCK_MICH_KYA_TALK,
+ /* 0x5 */ BCK_MICH_OUEN_WAIT_A,
+ /* 0x6 */ BCK_MICH_OUEN_WAIT_B,
+};
+
+enum Wgeneral_RES_File_ID {
+ /* BCK */
+ /* 0x03 */ BCK_W_2LADYTALK_A = 0x3,
+ /* 0x04 */ BCK_W_2LADYTALK_B,
+ /* 0x05 */ BCK_W_2NORMALTALK_A,
+ /* 0x06 */ BCK_W_2NORMALTALK_B,
+ /* 0x07 */ BCK_W_BROWSE_A,
+ /* 0x08 */ BCK_W_BROWSE_B,
+ /* 0x09 */ BCK_W_CELLME,
+ /* 0x0A */ BCK_W_LOOK_A,
+ /* 0x0B */ BCK_W_LOOK_B,
+ /* 0x0C */ BCK_W_MARO_DANCE,
+ /* 0x0D */ BCK_W_RUN_A,
+ /* 0x0E */ BCK_W_RUN_B,
+ /* 0x0F */ BCK_W_SING,
+ /* 0x10 */ BCK_W_SIT_TO_WOLF_A,
+ /* 0x11 */ BCK_W_SIT_TO_WOLF_B,
+ /* 0x12 */ BCK_W_SITTALK_A,
+ /* 0x13 */ BCK_W_SITTALK_A_B,
+ /* 0x14 */ BCK_W_SITTALK_B,
+ /* 0x15 */ BCK_W_SITTALK_B_B,
+ /* 0x16 */ BCK_W_SITWAIT_A,
+ /* 0x17 */ BCK_W_SITWAIT_B,
+ /* 0x18 */ BCK_W_SURPRISE,
+ /* 0x19 */ BCK_W_TALK_A,
+ /* 0x1A */ BCK_W_TALK_B,
+ /* 0x1B */ BCK_W_TALK_B_WALL,
+ /* 0x1C */ BCK_W_TALK_C,
+ /* 0x1D */ BCK_W_TALK_WALL,
+ /* 0x1E */ BCK_W_TO_WOLF,
+ /* 0x1F */ BCK_W_WAIT_A,
+ /* 0x20 */ BCK_W_WAIT_B,
+ /* 0x21 */ BCK_W_WAIT_WALL,
+ /* 0x22 */ BCK_W_WALK_A,
+ /* 0x23 */ BCK_W_WALK_B,
+};
+
+enum RES_Name {
+ /* 0x0 */ KASI_KYU,
+ /* 0x1 */ GIRLS,
+ /* 0x2 */ WGENERAL,
+};
+
+enum Animation {
+ /* 0x0 */ ANM_MICH_IYAN_WAIT,
+ /* 0x1 */ ANM_MICH_KYA_TALK,
+ /* 0x2 */ ANM_MICH_OUEN_WAIT_A,
+ /* 0x3 */ ANM_MICH_OUEN_WAIT_B,
+ /* 0x4 */ ANM_W_WAIT_A,
+ /* 0x5 */ ANM_W_TALK_B,
+ /* 0x6 */ ANM_W_WALK_A,
+ /* 0x7 */ ANM_W_CELLME,
+ /* 0x8 */ ANM_W_RUN_A,
+ /* 0x9 */ ANM_W_TO_WOLF,
+ /* 0xA */ ANM_W_SURPRISE,
+ /* 0xB */ ANM_W_WAIT_A_2,
+ /* 0xC */ ANM_W_TALK_B_2,
+ /* 0xD */ ANM_W_2LADYTALK_B,
+ /* 0xE */ ANM_W_2NORMALTALK_B,
+ /* 0xF */ ANM_W_2NORMALTALK_A,
+};
+
+enum Motion {
+ /* 0x0 */ MOT_MICH_KYA_TALK,
+ /* 0x1 */ MOT_MICH_IYAN_WAIT,
+ /* 0x2 */ MOT_MICH_OUEN_WAIT_A,
+ /* 0x3 */ MOT_MICH_OUEN_WAIT_B,
+ /* 0x4 */ MOT_W_WAIT_A,
+ /* 0x5 */ MOT_W_TALK_B,
+ /* 0x6 */ MOT_W_WALK_A,
+ /* 0x7 */ MOT_W_CELLME,
+ /* 0x8 */ MOT_W_RUN_A,
+ /* 0x9 */ MOT_W_TO_WOLF,
+ /* 0xA */ MOT_W_SURPRISE,
+ /* 0xB */ MOT_W_WAIT_A_LOOP,
+ /* 0xC */ MOT_W_2NORMALTALK_A,
+};
+
+/* 80A2605C-80A26060 000054 0004+00 1/1 0/0 0/0 .bss l_HIO */
+static daNpcKasiKyu_Param_c l_HIO;
/* 80A25B44-80A25C04 000020 00C0+00 1/1 0/0 0/0 .data l_bckGetParamList */
-SECTION_DATA static u8 l_bckGetParamList[192] = {
- 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04,
- 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x02,
- 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01,
- 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x1A,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x02,
- 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02,
- 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x1E,
- 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,
- 0x00, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,
+static daNpc_GetParam2 l_bckGetParamList[16] = {
+ {BCK_MICH_IYAN_WAIT, J3DFrameCtrl::EMode_LOOP, GIRLS},
+ {BCK_MICH_KYA_TALK, J3DFrameCtrl::EMode_LOOP, GIRLS},
+ {BCK_MICH_OUEN_WAIT_A, J3DFrameCtrl::EMode_LOOP, GIRLS},
+ {BCK_MICH_OUEN_WAIT_B, J3DFrameCtrl::EMode_LOOP, GIRLS},
+ {BCK_W_WAIT_A, J3DFrameCtrl::EMode_LOOP, WGENERAL},
+ {BCK_W_TALK_B, J3DFrameCtrl::EMode_NONE, WGENERAL},
+ {BCK_W_WALK_A, J3DFrameCtrl::EMode_LOOP, WGENERAL},
+ {BCK_W_CELLME, J3DFrameCtrl::EMode_LOOP, WGENERAL},
+ {BCK_W_RUN_A, J3DFrameCtrl::EMode_LOOP, WGENERAL},
+ {BCK_W_TO_WOLF, J3DFrameCtrl::EMode_LOOP, WGENERAL},
+ {BCK_W_SURPRISE, J3DFrameCtrl::EMode_NONE, WGENERAL},
+ {BCK_W_WAIT_A, J3DFrameCtrl::EMode_NONE, WGENERAL},
+ {BCK_W_TALK_B, J3DFrameCtrl::EMode_NONE, WGENERAL},
+ {BCK_W_2LADYTALK_A, J3DFrameCtrl::EMode_NONE, WGENERAL},
+ {BCK_W_2NORMALTALK_B, J3DFrameCtrl::EMode_NONE, WGENERAL},
+ {BCK_W_2NORMALTALK_A, J3DFrameCtrl::EMode_NONE, WGENERAL},
};
/* 80A25C04-80A25C10 0000E0 000C+00 0/0 0/0 0/0 .data l_btpGetParamList */
-#pragma push
-#pragma force_active on
-SECTION_DATA static u8 l_btpGetParamList[12] = {
- 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00,
+static daNpc_GetParam2 l_btpGetParamList[1] = {
+ {BTP_KYU, J3DFrameCtrl::EMode_LOOP, KASI_KYU},
};
-#pragma pop
/* 80A25C10-80A25C1C -00001 000C+00 5/6 0/0 0/0 .data l_arcNames */
-SECTION_DATA static void* l_arcNames[3] = {
- (void*)&d_a_npc_kasi_kyu__stringBase0,
- (void*)(((char*)&d_a_npc_kasi_kyu__stringBase0) + 0x9),
- (void*)(((char*)&d_a_npc_kasi_kyu__stringBase0) + 0xF),
+static char* l_arcNames[3] = {
+ "kasi_kyu",
+ "girls",
+ "Wgeneral",
};
/* 80A25C1C-80A25C20 0000F8 0004+00 1/2 0/0 0/0 .data l_evtNames */
-SECTION_DATA static u8 l_evtNames[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
+static char* l_evtNames[1] = {
+ NULL,
};
/* 80A25C20-80A25C24 -00001 0004+00 0/0 0/0 0/0 .data l_myName */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* l_myName = (void*)&d_a_npc_kasi_kyu__stringBase0;
-#pragma pop
+static char* l_myName = "kasi_kyu";
/* 80A25C24-80A25C30 000100 000C+00 1/1 0/0 0/0 .data mEvtSeqList__14daNpcKasiKyu_c */
-SECTION_DATA u8 daNpcKasiKyu_c::mEvtSeqList[12] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+daNpcKasiKyu_c::EventFn daNpcKasiKyu_c::mEvtSeqList[1] = {
+ NULL
};
-/* 80A25C30-80A25C3C -00001 000C+00 0/1 0/0 0/0 .data @4365 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4365[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)wait__14daNpcKasiKyu_cFi,
-};
-#pragma pop
-
-/* 80A25C3C-80A25C48 -00001 000C+00 0/1 0/0 0/0 .data @4366 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4366[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)chace__14daNpcKasiKyu_cFi,
-};
-#pragma pop
-
-/* 80A25C48-80A25C54 -00001 000C+00 0/1 0/0 0/0 .data @4367 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4367[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)turn_link__14daNpcKasiKyu_cFi,
-};
-#pragma pop
-
-/* 80A25C54-80A25C60 -00001 000C+00 0/1 0/0 0/0 .data @4368 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4368[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)turn_home__14daNpcKasiKyu_cFi,
-};
-#pragma pop
-
-/* 80A25C60-80A25C6C -00001 000C+00 0/1 0/0 0/0 .data @4369 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4369[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)talk_dummy__14daNpcKasiKyu_cFi,
-};
-#pragma pop
-
-/* 80A25C6C-80A25C78 -00001 000C+00 0/1 0/0 0/0 .data @4370 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4370[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)escape__14daNpcKasiKyu_cFi,
-};
-#pragma pop
-
-/* 80A25C78-80A25C84 -00001 000C+00 0/1 0/0 0/0 .data @4371 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4371[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)turn_center__14daNpcKasiKyu_cFi,
-};
-#pragma pop
-
-/* 80A25C84-80A25C90 -00001 000C+00 0/1 0/0 0/0 .data @4372 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4372[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)wait_dummy__14daNpcKasiKyu_cFi,
-};
-#pragma pop
-
-/* 80A25C90-80A25C9C -00001 000C+00 0/1 0/0 0/0 .data @4373 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4373[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)cheer__14daNpcKasiKyu_cFi,
-};
-#pragma pop
-
-/* 80A25C9C-80A25CA8 -00001 000C+00 0/1 0/0 0/0 .data @4374 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4374[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)chace_st__14daNpcKasiKyu_cFi,
-};
-#pragma pop
-
-/* 80A25CA8-80A25CB4 -00001 000C+00 0/1 0/0 0/0 .data @4375 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4375[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)kya__14daNpcKasiKyu_cFi,
-};
-#pragma pop
-
-/* 80A25CB4-80A25CC0 -00001 000C+00 0/1 0/0 0/0 .data @4376 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4376[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)iyan__14daNpcKasiKyu_cFi,
-};
-#pragma pop
-
-/* 80A25CC0-80A25CCC -00001 000C+00 0/1 0/0 0/0 .data @4377 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4377[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)kya_stop__14daNpcKasiKyu_cFi,
-};
-#pragma pop
-
-/* 80A25CCC-80A25CD8 -00001 000C+00 0/1 0/0 0/0 .data @4378 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4378[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)iyan_look__14daNpcKasiKyu_cFi,
-};
-#pragma pop
-
-/* 80A25CD8-80A25CE4 -00001 000C+00 0/1 0/0 0/0 .data @4379 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4379[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)wait_dummy__14daNpcKasiKyu_cFi,
-};
-#pragma pop
-
-/* 80A25CE4-80A25CF0 -00001 000C+00 0/1 0/0 0/0 .data @4380 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4380[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)turn_hana__14daNpcKasiKyu_cFi,
-};
-#pragma pop
-
-/* 80A25CF0-80A25CFC -00001 000C+00 0/1 0/0 0/0 .data @4381 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4381[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)kya2__14daNpcKasiKyu_cFi,
-};
-#pragma pop
-
-/* 80A25CFC-80A25D08 -00001 000C+00 0/1 0/0 0/0 .data @4382 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4382[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)kya_stop__14daNpcKasiKyu_cFi,
-};
-#pragma pop
-
-/* 80A25D08-80A25D14 -00001 000C+00 0/1 0/0 0/0 .data @4383 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4383[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)fear__14daNpcKasiKyu_cFi,
-};
-#pragma pop
-
-/* 80A25D14-80A25E04 0001F0 00F0+00 0/1 0/0 0/0 .data sSygnalAct$4364 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static u8 sSygnalAct[240] = {
- 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, 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, 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,
-};
-#pragma pop
-
-/* 80A25E04-80A25E10 -00001 000C+00 1/1 0/0 0/0 .data @4488 */
-SECTION_DATA static void* lit_4488[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)wait__14daNpcKasiKyu_cFi,
-};
-
-/* 80A25E10-80A25E1C -00001 000C+00 0/1 0/0 0/0 .data @4777 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4777[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)chace__14daNpcKasiKyu_cFi,
-};
-#pragma pop
-
-/* 80A25E1C-80A25E28 -00001 000C+00 0/1 0/0 0/0 .data @4780 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4780[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)turn_link__14daNpcKasiKyu_cFi,
-};
-#pragma pop
-
-/* 80A25E28-80A25E34 -00001 000C+00 0/0 0/0 0/0 .data @4960 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4960[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)wait__14daNpcKasiKyu_cFi,
-};
-#pragma pop
-
-/* 80A25E34-80A25E40 -00001 000C+00 0/0 0/0 0/0 .data @4968 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4968[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)wait__14daNpcKasiKyu_cFi,
-};
-#pragma pop
-
-/* 80A25E40-80A25E4C -00001 000C+00 0/0 0/0 0/0 .data @5003 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_5003[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)wait__14daNpcKasiKyu_cFi,
-};
-#pragma pop
-
-/* 80A25E4C-80A25E58 -00001 000C+00 1/1 0/0 0/0 .data @5026 */
-SECTION_DATA static void* lit_5026[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)chace__14daNpcKasiKyu_cFi,
-};
-
-/* 80A25E58-80A25E64 -00001 000C+00 1/1 0/0 0/0 .data @5043 */
-SECTION_DATA static void* lit_5043[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)wait__14daNpcKasiKyu_cFi,
-};
-
-/* 80A25E64-80A25E70 -00001 000C+00 1/1 0/0 0/0 .data @5046 */
-SECTION_DATA static void* lit_5046[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)chace_st__14daNpcKasiKyu_cFi,
-};
-
-/* 80A25E70-80A25E7C -00001 000C+00 0/0 0/0 0/0 .data @5106 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_5106[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)chace__14daNpcKasiKyu_cFi,
-};
-#pragma pop
-
-/* 80A25E7C-80A25E88 -00001 000C+00 1/1 0/0 0/0 .data @5120 */
-SECTION_DATA static void* lit_5120[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)wait__14daNpcKasiKyu_cFi,
-};
-
-/* 80A25E88-80A25E94 -00001 000C+00 1/1 0/0 0/0 .data @5134 */
-SECTION_DATA static void* lit_5134[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)wait_dummy__14daNpcKasiKyu_cFi,
-};
-
-/* 80A25E94-80A25EA0 -00001 000C+00 1/1 0/0 0/0 .data @5148 */
-SECTION_DATA static void* lit_5148[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)wait_dummy__14daNpcKasiKyu_cFi,
-};
-
-/* 80A25EA0-80A25EAC -00001 000C+00 1/1 0/0 0/0 .data @5201 */
-SECTION_DATA static void* lit_5201[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)wait__14daNpcKasiKyu_cFi,
-};
-
-/* 80A25EAC-80A25EB8 -00001 000C+00 1/1 0/0 0/0 .data @5209 */
-SECTION_DATA static void* lit_5209[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)wait_dummy__14daNpcKasiKyu_cFi,
-};
-
-/* 80A25EB8-80A25EC4 -00001 000C+00 1/1 0/0 0/0 .data @5237 */
-SECTION_DATA static void* lit_5237[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)wait_dummy__14daNpcKasiKyu_cFi,
-};
-
-/* 80A25EC4-80A25EE4 -00001 0020+00 1/0 0/0 0/0 .data daNpcKasiKyu_MethodTable */
-static actor_method_class daNpcKasiKyu_MethodTable = {
- (process_method_func)daNpcKasiKyu_Create__FPv,
- (process_method_func)daNpcKasiKyu_Delete__FPv,
- (process_method_func)daNpcKasiKyu_Execute__FPv,
- (process_method_func)daNpcKasiKyu_IsDelete__FPv,
- (process_method_func)daNpcKasiKyu_Draw__FPv,
-};
-
-/* 80A25EE4-80A25F14 -00001 0030+00 0/0 0/0 1/0 .data g_profile_NPC_KASIKYU */
-extern actor_process_profile_definition g_profile_NPC_KASIKYU = {
- fpcLy_CURRENT_e, // mLayerID
- 7, // mListID
- fpcPi_CURRENT_e, // mListPrio
- PROC_NPC_KASIKYU, // mProcName
- &g_fpcLf_Method.base, // sub_method
- sizeof(daNpcKasiKyu_c), // mSize
- 0, // mSizeOther
- 0, // mParameters
- &g_fopAc_Method.base, // sub_method
- 421, // mPriority
- &daNpcKasiKyu_MethodTable, // sub_method
- 0x00040108, // mStatus
- fopAc_NPC_e, // mActorType
- fopAc_CULLBOX_CUSTOM_e, // cullType
-};
-
-/* 80A25F14-80A25F5C 0003F0 0048+00 2/2 0/0 0/0 .data __vt__14daNpcKasiKyu_c */
-SECTION_DATA extern void* __vt__14daNpcKasiKyu_c[18] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__14daNpcKasiKyu_cFv,
- (void*)setParam__14daNpcKasiKyu_cFv,
- (void*)main__14daNpcKasiKyu_cFv,
- (void*)ctrlBtk__8daNpcF_cFv,
- (void*)adjustShapeAngle__14daNpcKasiKyu_cFv,
- (void*)setMtx__8daNpcF_cFv,
- (void*)setMtx2__8daNpcF_cFv,
- (void*)setAttnPos__14daNpcKasiKyu_cFv,
- (void*)setCollisions__8daNpcF_cFv,
- (void*)setExpressionAnm__8daNpcF_cFib,
- (void*)setExpressionBtp__8daNpcF_cFi,
- (void*)setExpression__8daNpcF_cFif,
- (void*)setMotionAnm__14daNpcKasiKyu_cFif,
- (void*)setMotion__14daNpcKasiKyu_cFifi,
- (void*)drawDbgInfo__14daNpcKasiKyu_cFv,
- (void*)drawOtherMdls__8daNpcF_cFv,
-};
-
-/* 80A25F5C-80A25F68 000438 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,
-};
+/* 80A219CC-80A21B84 0000EC 01B8+00 1/1 0/0 0/0 .text __ct__14daNpcKasiKyu_cFv */
+daNpcKasiKyu_c::daNpcKasiKyu_c() {}
-/* 80A25F68-80A25F8C 000444 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_80A2589C,
- (void*)NULL,
- (void*)NULL,
- (void*)func_80A25894,
-};
+/* 80A21C14-80A21E24 000334 0210+00 1/0 0/0 0/0 .text __dt__14daNpcKasiKyu_cFv */
+daNpcKasiKyu_c::~daNpcKasiKyu_c() {
+ for (int i = 0; i < 3; i ++) {
+ dComIfG_resDelete(&mPhases[i], l_arcNames[i]);
+ }
-/* 80A25F8C-80A25F98 000468 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,
-};
+ if (heap != NULL) {
+ mpMorf->stopZelAnime();
+ }
+}
-/* 80A25F98-80A25FA4 000474 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,
+/* 80A258B8-80A2592C 000000 0074+00 18/18 0/0 0/0 .rodata m__20daNpcKasiKyu_Param_c */
+daNpcKasiKyu_HIOParam const daNpcKasiKyu_Param_c::m = {
+ 55.0f,
+ -3.0f,
+ 1.0f,
+ 500.0f,
+ 216.0f,
+ 140.0f,
+ 35.0f,
+ 30.0f,
+ 0.0f,
+ 0.0f,
+ 10.0f,
+ -10.0f,
+ 30.0f,
+ -10.0f,
+ 45.0f,
+ -45.0f,
+ 0.6f,
+ 12.0f,
+ 2,
+ 6,
+ 3,
+ 6,
+ 60.0f,
+ 500.0f,
+ 300.0f,
+ -300.0f,
+ 60,
+ 0,
+ 0,
+ 0,
+ 0,
+ false,
+ false,
+ 10,
+ 16.0f,
};
-/* 80A25FA4-80A25FB0 000480 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,
-};
+/* 80A21E24-80A220A0 000544 027C+00 1/1 0/0 0/0 .text Create__14daNpcKasiKyu_cFv */
+cPhs__Step daNpcKasiKyu_c::Create() {
+ fopAcM_SetupActor(this, daNpcKasiKyu_c);
+
+ mType = getType();
+ mMessageNo = getMessageNo();
+
+ cPhs__Step phase = cPhs_ERROR_e;
+ for (int i = 0; i < 3; i++) {
+ phase = (cPhs__Step)dComIfG_resLoad(&mPhases[i], l_arcNames[i]);
+
+ if (phase != cPhs_COMPLEATE_e) {
+ return phase;
+ }
+ }
+
+ if (phase == cPhs_COMPLEATE_e) {
+ if (!fopAcM_entrySolidHeap(this, createHeapCallBack, 0x1940)) {
+ return cPhs_ERROR_e;
+ }
+
+ J3DModel* model = mpMorf->getModel();
+ fopAcM_SetMtx(this, mpMorf->getModel()->getBaseTRMtx());
+ fopAcM_setCullSizeBox(this, -60.0f, -10.0f, -60.0f, 60.0f, 220.0f, 60.0f);
+ mSound.init(&current.pos, &eyePos, 3, 1);
+
+ mAcchCir.SetWall(daNpcKasiKyu_Param_c::m.common.width, daNpcKasiKyu_Param_c::m.common.knee_length);
+ 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));
+ mAcch.CrrPos(dComIfG_Bgsp());
+ mCcStts.Init(0xFE, 0, this);
+ mCyl.Set(mCcDCyl);
+ mCyl.SetStts(&mCcStts);
+ mCyl.SetTgType(0);
+ mCyl.SetTgSPrm(0);
+ mCyl.SetH(daNpcKasiKyu_Param_c::m.common.height);
+ mCyl.SetR(daNpcKasiKyu_Param_c::m.common.width);
+ mGndChk = mAcch.m_gnd;
+ mGroundH = mAcch.GetGroundH();
+
+ setEnvTevColor();
+ setRoomNo();
+ reset();
+ Execute();
+ }
+
+ return phase;
+}
-/* 80A25FB0-80A25FBC 00048C 000C+00 4/4 0/0 0/0 .data __vt__18daNpcF_ActorMngr_c */
-SECTION_DATA extern void* __vt__18daNpcF_ActorMngr_c[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__18daNpcF_ActorMngr_cFv,
-};
+/* 80A220A0-80A22224 0007C0 0184+00 1/1 0/0 0/0 .text CreateHeap__14daNpcKasiKyu_cFv */
+int daNpcKasiKyu_c::CreateHeap() {
+ J3DModelData* mdlData_p = (J3DModelData*)dComIfG_getObjectRes(l_arcNames[0], BMDR_KYU);
-/* 80A25FBC-80A25FC8 000498 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,
-};
+ JUT_ASSERT(322, 0 != mdlData_p);
-/* 80A25FC8-80A25FD4 0004A4 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,
-};
+ mpMorf = new mDoExt_McaMorfSO(mdlData_p, NULL, NULL, NULL, -1, 1.0f, 0, -1, &mSound, 0x80000, 0x11020084);
+ if (mpMorf != NULL && mpMorf->getModel() == NULL) {
+ mpMorf->stopZelAnime();
+ mpMorf = NULL;
+ }
-/* 80A25FD4-80A25FE0 0004B0 000C+00 4/4 0/0 0/0 .data __vt__16daNpcF_SPCurve_c */
-SECTION_DATA extern void* __vt__16daNpcF_SPCurve_c[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__16daNpcF_SPCurve_cFv,
-};
+ if (mpMorf == NULL) {
+ return 0;
+ }
-/* 80A25FE0-80A25FEC 0004BC 000C+00 3/3 0/0 0/0 .data __vt__13daNpcF_Path_c */
-SECTION_DATA extern void* __vt__13daNpcF_Path_c[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__13daNpcF_Path_cFv,
-};
+ cXyz i_scale(1.0f, 0.8630768f, 1.0f);
+ mpMorf->offTranslate();
+ mpMorf->setTranslateScale(i_scale);
-/* 80A25FEC-80A25FF8 0004C8 000C+00 3/3 0/0 0/0 .data __vt__15daNpcF_Lookat_c */
-SECTION_DATA extern void* __vt__15daNpcF_Lookat_c[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__15daNpcF_Lookat_cFv,
-};
+ J3DModel* model = mpMorf->getModel();
+ for (u16 i = 0; i < mdlData_p->getJointNum(); i++) {
+ mdlData_p->getJointNodePointer(i)->setCallBack(ctrlJointCallBack);
+ }
+ model->setUserArea((u32)this);
-/* 80A219CC-80A21B84 0000EC 01B8+00 1/1 0/0 0/0 .text __ct__14daNpcKasiKyu_cFv */
-daNpcKasiKyu_c::daNpcKasiKyu_c() {
- // NONMATCHING
-}
+ setMotion(MOT_W_WAIT_A, -1.0f, 0);
-/* 80A21B84-80A21BCC 0002A4 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGCylFv */
-// cM3dGCyl::~cM3dGCyl() {
-extern "C" void __dt__8cM3dGCylFv() {
- // NONMATCHING
+ return 1;
}
-/* 80A21BCC-80A21C14 0002EC 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGAabFv */
-// cM3dGAab::~cM3dGAab() {
-extern "C" void __dt__8cM3dGAabFv() {
- // NONMATCHING
+/* 80A22224-80A22258 000944 0034+00 1/1 0/0 0/0 .text Delete__14daNpcKasiKyu_cFv */
+int daNpcKasiKyu_c::Delete() {
+ this->~daNpcKasiKyu_c();
+ return 1;
}
-/* 80A21C14-80A21E24 000334 0210+00 1/0 0/0 0/0 .text __dt__14daNpcKasiKyu_cFv */
-daNpcKasiKyu_c::~daNpcKasiKyu_c() {
- // NONMATCHING
+/* 80A22258-80A22284 000978 002C+00 2/2 0/0 0/0 .text Execute__14daNpcKasiKyu_cFv */
+int daNpcKasiKyu_c::Execute() {
+ mFear = false;
+ execute();
+ return 1;
}
-/* ############################################################################################## */
-/* 80A258B8-80A2592C 000000 0074+00 18/18 0/0 0/0 .rodata m__20daNpcKasiKyu_Param_c */
-SECTION_RODATA u8 const daNpcKasiKyu_Param_c::m[116] = {
- 0x42, 0x5C, 0x00, 0x00, 0xC0, 0x40, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x43, 0xFA, 0x00,
- 0x00, 0x43, 0x58, 0x00, 0x00, 0x43, 0x0C, 0x00, 0x00, 0x42, 0x0C, 0x00, 0x00, 0x41, 0xF0,
- 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, 0x02, 0x00,
- 0x06, 0x00, 0x03, 0x00, 0x06, 0x42, 0x70, 0x00, 0x00, 0x43, 0xFA, 0x00, 0x00, 0x43, 0x96,
- 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x41, 0x80, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80A258B8, &daNpcKasiKyu_Param_c::m);
-
-/* 80A2592C-80A25930 000074 0004+00 0/1 0/0 0/0 .rodata @4197 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4197 = -60.0f;
-COMPILER_STRIP_GATE(0x80A2592C, &lit_4197);
-#pragma pop
-
-/* 80A25930-80A25934 000078 0004+00 0/1 0/0 0/0 .rodata @4198 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4198 = -10.0f;
-COMPILER_STRIP_GATE(0x80A25930, &lit_4198);
-#pragma pop
-
-/* 80A25934-80A25938 00007C 0004+00 0/1 0/0 0/0 .rodata @4199 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4199 = 60.0f;
-COMPILER_STRIP_GATE(0x80A25934, &lit_4199);
-#pragma pop
-
-/* 80A25938-80A2593C 000080 0004+00 0/1 0/0 0/0 .rodata @4200 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4200 = 220.0f;
-COMPILER_STRIP_GATE(0x80A25938, &lit_4200);
-#pragma pop
+/* 80A22284-80A222D0 0009A4 004C+00 1/1 0/0 0/0 .text Draw__14daNpcKasiKyu_cFv */
+int daNpcKasiKyu_c::Draw() {
+ if (!mEscape) {
+ draw(FALSE, FALSE, daNpcKasiKyu_Param_c::m.common.real_shadow_size, NULL, FALSE);
+ }
-/* 80A21E24-80A220A0 000544 027C+00 1/1 0/0 0/0 .text Create__14daNpcKasiKyu_cFv */
-void daNpcKasiKyu_c::Create() {
- // NONMATCHING
+ return 1;
}
-/* ############################################################################################## */
-/* 80A2593C-80A25940 000084 0004+00 4/8 0/0 0/0 .rodata @4247 */
-SECTION_RODATA static f32 const lit_4247 = 1.0f;
-COMPILER_STRIP_GATE(0x80A2593C, &lit_4247);
+/* 80A222D0-80A2245C 0009F0 018C+00 1/1 0/0 0/0 .text ctrlJoint__14daNpcKasiKyu_cFP8J3DJointP8J3DModel */
+int daNpcKasiKyu_c::ctrlJoint(J3DJoint* i_joint, J3DModel* i_model) {
+ int jntNo = i_joint->getJntNo();
+ int i_jointList[3] = {1, 2, 3};
-/* 80A25940-80A25944 000088 0004+00 0/1 0/0 0/0 .rodata @4248 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u32 const lit_4248 = 0x3F5CF29A;
-COMPILER_STRIP_GATE(0x80A25940, &lit_4248);
-#pragma pop
+ if (jntNo == 0) {
+ mDoMtx_stack_c::copy(mpMorf->getModel()->getAnmMtx(1));
+ mDoMtx_stack_c::multVecZero(&mLookatPos[0]);
+ mDoMtx_stack_c::copy(mpMorf->getModel()->getAnmMtx(2));
+ mDoMtx_stack_c::multVecZero(&mLookatPos[1]);
+ mDoMtx_stack_c::copy(mpMorf->getModel()->getAnmMtx(3));
+ mDoMtx_stack_c::multVecZero(&mLookatPos[2]);
+ }
-/* 80A25944-80A25948 00008C 0004+00 7/16 0/0 0/0 .rodata @4249 */
-SECTION_RODATA static f32 const lit_4249 = -1.0f;
-COMPILER_STRIP_GATE(0x80A25944, &lit_4249);
+ mDoMtx_stack_c::copy(i_model->getAnmMtx(jntNo));
-/* 80A220A0-80A22224 0007C0 0184+00 1/1 0/0 0/0 .text CreateHeap__14daNpcKasiKyu_cFv */
-void daNpcKasiKyu_c::CreateHeap() {
- // NONMATCHING
-}
+ switch (jntNo) {
+ case 1:
+ case 2:
+ case 3:
+ setLookatMtx(jntNo, i_jointList, daNpcKasiKyu_Param_c::m.common.neck_rotation_ratio);
+ break;
+ }
-/* 80A22224-80A22258 000944 0034+00 1/1 0/0 0/0 .text Delete__14daNpcKasiKyu_cFv */
-void daNpcKasiKyu_c::Delete() {
- // NONMATCHING
-}
+ i_model->setAnmMtx(jntNo, mDoMtx_stack_c::get());
+ MTXCopy(mDoMtx_stack_c::get(), J3DSys::mCurrentMtx);
-/* 80A22258-80A22284 000978 002C+00 2/2 0/0 0/0 .text Execute__14daNpcKasiKyu_cFv */
-void daNpcKasiKyu_c::Execute() {
- // NONMATCHING
+ return 1;
}
-/* 80A22284-80A222D0 0009A4 004C+00 1/1 0/0 0/0 .text Draw__14daNpcKasiKyu_cFv */
-void daNpcKasiKyu_c::Draw() {
- // NONMATCHING
+/* 80A2245C-80A2247C 000B7C 0020+00 1/1 0/0 0/0 .text createHeapCallBack__14daNpcKasiKyu_cFP10fopAc_ac_ */
+int daNpcKasiKyu_c::createHeapCallBack(fopAc_ac_c* a_this) {
+ daNpcKasiKyu_c* i_this = (daNpcKasiKyu_c*)a_this;
+ return i_this->CreateHeap();
}
-/* ############################################################################################## */
-/* 80A25948-80A25954 000090 000C+00 1/1 0/0 0/0 .rodata @4270 */
-SECTION_RODATA static u8 const lit_4270[12] = {
- 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03,
-};
-COMPILER_STRIP_GATE(0x80A25948, &lit_4270);
-
-/* 80A222D0-80A2245C 0009F0 018C+00 1/1 0/0 0/0 .text
- * ctrlJoint__14daNpcKasiKyu_cFP8J3DJointP8J3DModel */
-void daNpcKasiKyu_c::ctrlJoint(J3DJoint* param_0, J3DModel* param_1) {
- // NONMATCHING
-}
+/* 80A2247C-80A224C8 000B9C 004C+00 1/1 0/0 0/0 .text ctrlJointCallBack__14daNpcKasiKyu_cFP8J3DJointi */
+int daNpcKasiKyu_c::ctrlJointCallBack(J3DJoint* i_joint, int param_2) {
+ if (param_2 == 0) {
+ J3DModel* model = j3dSys.getModel();
+ daNpcKasiKyu_c* i_this = (daNpcKasiKyu_c*)model->getUserArea();
-/* 80A2245C-80A2247C 000B7C 0020+00 1/1 0/0 0/0 .text
- * createHeapCallBack__14daNpcKasiKyu_cFP10fopAc_ac_c */
-void daNpcKasiKyu_c::createHeapCallBack(fopAc_ac_c* param_0) {
- // NONMATCHING
-}
+ if (i_this != NULL) {
+ i_this->ctrlJoint(i_joint, model);
+ }
+ }
-/* 80A2247C-80A224C8 000B9C 004C+00 1/1 0/0 0/0 .text
- * ctrlJointCallBack__14daNpcKasiKyu_cFP8J3DJointi */
-void daNpcKasiKyu_c::ctrlJointCallBack(J3DJoint* param_0, int param_1) {
- // NONMATCHING
+ return 1;
}
/* 80A224C8-80A22534 000BE8 006C+00 1/0 0/0 0/0 .text setParam__14daNpcKasiKyu_cFv */
void daNpcKasiKyu_c::setParam() {
- // NONMATCHING
+ attention_info.distances[fopAc_attn_LOCK_e] = getDistTableIdx(daNpcKasiKyu_Param_c::m.common.attention_distance, daNpcKasiKyu_Param_c::m.common.attention_angle);
+ attention_info.distances[fopAc_attn_TALK_e] = attention_info.distances[fopAc_attn_LOCK_e];
+ attention_info.distances[fopAc_attn_SPEAK_e] = getDistTableIdx(daNpcKasiKyu_Param_c::m.common.talk_distance, daNpcKasiKyu_Param_c::m.common.talk_angle);
+ attention_info.flags = 10;
}
-/* 80A26050-80A2605C 000048 000C+00 1/1 0/0 0/0 .bss @3807 */
-static u8 lit_3807[12];
-
-/* 80A2605C-80A26060 000054 0004+00 1/1 0/0 0/0 .bss l_HIO */
-static u8 l_HIO[4];
-
/* 80A26060-80A26064 000058 0004+00 1/2 0/0 0/0 .bss mTargetTag__14daNpcKasiKyu_c */
-u8 daNpcKasiKyu_c::mTargetTag[4];
+daTagEscape_c* daNpcKasiKyu_c::mTargetTag;
/* 80A26064-80A26068 00005C 0004+00 0/1 0/0 0/0 .bss mTargetTagDist__14daNpcKasiKyu_c */
-#pragma push
-#pragma force_active on
-u8 daNpcKasiKyu_c::mTargetTagDist[4];
-#pragma pop
+f32 daNpcKasiKyu_c::mTargetTagDist;
/* 80A26068-80A2606C -00001 0004+00 2/3 0/0 0/0 .bss None */
/* 80A26068 0002+00 data_80A26068 mWolfAngle__14daNpcKasiKyu_c */
/* 80A2606A 0002+00 data_80A2606A None */
-static u8 struct_80A26068[4];
+s16 daNpcKasiKyu_c::mWolfAngle;
/* 80A22534-80A227DC 000C54 02A8+00 1/0 0/0 0/0 .text main__14daNpcKasiKyu_cFv */
-void daNpcKasiKyu_c::main() {
- // NONMATCHING
+BOOL daNpcKasiKyu_c::main() {
+ if (mSygnal >= 0) {
+ static daNpcKasiKyu_c::actionFunc sSygnalAct[20] = {
+ &daNpcKasiKyu_c::wait,
+ &daNpcKasiKyu_c::chace,
+ &daNpcKasiKyu_c::turn_link,
+ &daNpcKasiKyu_c::turn_home,
+ &daNpcKasiKyu_c::talk_dummy,
+ &daNpcKasiKyu_c::escape,
+ &daNpcKasiKyu_c::turn_center,
+ &daNpcKasiKyu_c::wait_dummy,
+ &daNpcKasiKyu_c::cheer,
+ &daNpcKasiKyu_c::chace_st,
+ &daNpcKasiKyu_c::kya,
+ &daNpcKasiKyu_c::iyan,
+ &daNpcKasiKyu_c::kya_stop,
+ &daNpcKasiKyu_c::iyan_look,
+ &daNpcKasiKyu_c::wait_dummy,
+ &daNpcKasiKyu_c::turn_hana,
+ NULL,
+ &daNpcKasiKyu_c::kya2,
+ &daNpcKasiKyu_c::kya_stop,
+ &daNpcKasiKyu_c::fear,
+ };
+ setAction(sSygnalAct[mSygnal]);
+ }
+
+ if (mAction) {
+ (this->*mAction)(NULL);
+ }
+
+ playMotion();
+
+ return TRUE;
}
-/* ############################################################################################## */
-/* 80A25954-80A25958 00009C 0004+00 0/1 0/0 0/0 .rodata @4447 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4447 = 10.0f;
-COMPILER_STRIP_GATE(0x80A25954, &lit_4447);
-#pragma pop
-
-/* 80A25958-80A2595C 0000A0 0004+00 1/3 0/0 0/0 .rodata @4448 */
-SECTION_RODATA static f32 const lit_4448 = 15.0f;
-COMPILER_STRIP_GATE(0x80A25958, &lit_4448);
-
-/* 80A2595C-80A25960 0000A4 0004+00 12/22 0/0 0/0 .rodata @4449 */
-SECTION_RODATA static u8 const lit_4449[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
-};
-COMPILER_STRIP_GATE(0x80A2595C, &lit_4449);
-
/* 80A227DC-80A22984 000EFC 01A8+00 1/0 0/0 0/0 .text setAttnPos__14daNpcKasiKyu_cFv */
void daNpcKasiKyu_c::setAttnPos() {
- // NONMATCHING
+ if (mLookMode == LOOK_RESET) {
+ for (int i = 0; i < 3; i++) {
+ mLookatAngle[i].setall(0);
+ }
+ }
+
+ daNpcF_c::setMtx();
+ lookat();
+
+ cXyz sp1c(10.0f, 15.0f, 0.0f);
+
+ mDoMtx_stack_c::copy(mpMorf->getModel()->getAnmMtx(3));
+ mDoMtx_stack_c::multVecZero(&mHeadPos);
+ mDoMtx_stack_c::multVec(&sp1c, &eyePos);
+ sp1c.x = 0.0f;
+ mDoMtx_stack_c::multVec(&sp1c, &sp1c);
+
+ mHeadAngle.x = cLib_targetAngleX(&mHeadPos, &sp1c);
+ mHeadAngle.y = cLib_targetAngleY(&mHeadPos, &sp1c);
+ attention_info.position.set(mHeadPos.x, mHeadPos.y + daNpcKasiKyu_Param_c::m.common.attention_offset, mHeadPos.z);
+
+ cXyz sp28;
+
+ mDoMtx_stack_c::copy(mpMorf->getModel()->getAnmMtx(1));
+ mDoMtx_stack_c::multVecZero(&sp28);
+ sp28.y = current.pos.y;
+ mCyl.SetC(sp28);
+ #ifdef DEBUG
+ mCyl.SetH(daNpcKasiKyu_Param_c::m.common.height);
+ mCyl.SetR(daNpcKasiKyu_Param_c::m.common.width);
+ #endif
+ dComIfG_Ccsp()->Set(&mCyl);
}
-/* 80A22984-80A22A54 0010A4 00D0+00 1/0 0/0 0/0 .text setMotionAnm__14daNpcKasiKyu_cFif
- */
-bool daNpcKasiKyu_c::setMotionAnm(int param_0, f32 param_1) {
- // NONMATCHING
+/* 80A22984-80A22A54 0010A4 00D0+00 1/0 0/0 0/0 .text setMotionAnm__14daNpcKasiKyu_cFif */
+void daNpcKasiKyu_c::setMotionAnm(int i_index, f32 i_morf) {
+ J3DAnmTransformKey* i_anm = getTrnsfrmKeyAnmP(l_arcNames[l_bckGetParamList[i_index].arcIdx], l_bckGetParamList[i_index].fileIdx);
+ int i_attr = l_bckGetParamList[i_index].attr;
+ mAnmFlags &= 0xFFFFFFF6;
+
+ if (i_anm != NULL && setMcaMorfAnm(i_anm, 1.0f, i_morf, i_attr, 0, -1)) {
+ mAnmFlags |= ANM_PLAY_MORF | ANM_PAUSE_MORF;
+ mMotionLoops = 0;
+ }
}
/* 80A22A54-80A22A9C 001174 0048+00 1/0 0/0 0/0 .text setMotion__14daNpcKasiKyu_cFifi */
-void daNpcKasiKyu_c::setMotion(int param_0, f32 param_1, int param_2) {
- // NONMATCHING
+void daNpcKasiKyu_c::setMotion(int i_motion, f32 i_morf, int param_3) {
+ s16 motion = i_motion;
+ if ((param_3 != 0 || mMotion != motion) && i_motion >= 0 && i_motion < 0xD) {
+ mMotion = motion;
+ mMotionMorfOverride = i_morf;
+ mMotionPrevPhase = -1;
+ mMotionPhase = 0;
+ field_0x143e = 0;
+ }
}
/* 80A22A9C-80A22AA4 0011BC 0008+00 1/0 0/0 0/0 .text drawDbgInfo__14daNpcKasiKyu_cFv */
-bool daNpcKasiKyu_c::drawDbgInfo() {
- return false;
+BOOL daNpcKasiKyu_c::drawDbgInfo() {
+ return FALSE;
}
/* 80A22AA4-80A22CD8 0011C4 0234+00 1/1 0/0 0/0 .text reset__14daNpcKasiKyu_cFv */
void daNpcKasiKyu_c::reset() {
- // NONMATCHING
+ initialize();
+ mLookat.initialize();
+
+ for (int i = 0; i < 1; i++) {
+ mActorMngr[i].initialize();
+ }
+
+ mPath.initialize();
+
+ if (mType == 0) {
+ mPath.setPathInfo(getRailNo(), fopAcM_GetRoomNo(this), 0);
+ mPath.setIdx(6);
+ } else if (mType == 1) {
+ fopAcM_OnStatus(this, fopAcM_STATUS_UNK_004000);
+ }
+
+ field_0x1430 = 0;
+ field_0x1434 = 0;
+ mAction = NULL;
+ mLookMode = -1;
+ mMode = 0;
+ current.pos.set(home.pos);
+ old.pos.set(current.pos);
+ current.angle.set(0, home.angle.y, 0);
+ old.angle = current.angle;
+ shape_angle = current.angle;
+ mCurAngle = current.angle;
+ mOldAngle = mCurAngle;
+ speedF = 0.0f;
+ speed.setall(0.0f);
+ field_0x142c = fpcM_ERROR_PROCESS_ID_e;
+ mOrderEvtNo = 0;
+
+ J3DAnmTexPattern* i_btp = getTexPtrnAnmP(l_arcNames[0], 7);
+ mAnmFlags &= 0xFFFFF57F;
+
+ if (setBtpAnm(i_btp, mpMorf->getModel()->getModelData(), 1.0f, J3DFrameCtrl::EMode_LOOP)) {
+ mAnmFlags |= ANM_FLAG_800 | ANM_PLAY_BTP | ANM_PAUSE_BTP;
+ }
+
+ mTalked = false;
+ mFear = false;
+ field_0x1465 = 0;
+ mEscape = false;
+ setAction(&daNpcKasiKyu_c::wait);
+ mMotionMorfOverride = 0.0f;
}
-/* ############################################################################################## */
-/* 80A25960-80A2596C 0000A8 000C+00 0/1 0/0 0/0 .rodata @4534 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4534[12] = {
- 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80A25960, &lit_4534);
-#pragma pop
-
-/* 80A2596C-80A25970 0000B4 0004+00 0/1 0/0 0/0 .rodata @4535 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4535[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
-};
-COMPILER_STRIP_GATE(0x80A2596C, &lit_4535);
-#pragma pop
-
-/* 80A25970-80A2597C 0000B8 000C+00 0/1 0/0 0/0 .rodata @4536 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4536[12] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80A25970, &lit_4536);
-#pragma pop
-
-/* 80A2597C-80A25980 0000C4 0004+00 0/1 0/0 0/0 .rodata @4537 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4537[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
-};
-COMPILER_STRIP_GATE(0x80A2597C, &lit_4537);
-#pragma pop
-
-/* 80A25980-80A2598C 0000C8 000C+00 0/1 0/0 0/0 .rodata @4538 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4538[12] = {
- 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80A25980, &lit_4538);
-#pragma pop
-
-/* 80A2598C-80A25990 0000D4 0004+00 0/1 0/0 0/0 .rodata @4539 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4539[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
-};
-COMPILER_STRIP_GATE(0x80A2598C, &lit_4539);
-#pragma pop
-
-/* 80A25990-80A2599C 0000D8 000C+00 0/1 0/0 0/0 .rodata @4540 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4540[12] = {
- 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80A25990, &lit_4540);
-#pragma pop
-
-/* 80A2599C-80A259A0 0000E4 0004+00 0/1 0/0 0/0 .rodata @4541 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4541[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
-};
-COMPILER_STRIP_GATE(0x80A2599C, &lit_4541);
-#pragma pop
-
-/* 80A259A0-80A259AC 0000E8 000C+00 0/1 0/0 0/0 .rodata @4542 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4542[12] = {
- 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80A259A0, &lit_4542);
-#pragma pop
-
-/* 80A259AC-80A259B0 0000F4 0004+00 0/1 0/0 0/0 .rodata @4543 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4543[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
-};
-COMPILER_STRIP_GATE(0x80A259AC, &lit_4543);
-#pragma pop
-
-/* 80A259B0-80A259BC 0000F8 000C+00 0/1 0/0 0/0 .rodata @4544 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4544[12] = {
- 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80A259B0, &lit_4544);
-#pragma pop
-
-/* 80A259BC-80A259C0 000104 0004+00 0/1 0/0 0/0 .rodata @4545 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4545[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
-};
-COMPILER_STRIP_GATE(0x80A259BC, &lit_4545);
-#pragma pop
-
-/* 80A259C0-80A259CC 000108 000C+00 0/1 0/0 0/0 .rodata @4546 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4546[12] = {
- 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80A259C0, &lit_4546);
-#pragma pop
-
-/* 80A259CC-80A259D0 000114 0004+00 0/1 0/0 0/0 .rodata @4547 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4547[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
-};
-COMPILER_STRIP_GATE(0x80A259CC, &lit_4547);
-#pragma pop
-
-/* 80A259D0-80A259DC 000118 000C+00 0/1 0/0 0/0 .rodata @4548 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4548[12] = {
- 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80A259D0, &lit_4548);
-#pragma pop
-
-/* 80A259DC-80A259E0 000124 0004+00 0/1 0/0 0/0 .rodata @4549 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4549[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
-};
-COMPILER_STRIP_GATE(0x80A259DC, &lit_4549);
-#pragma pop
-
-/* 80A259E0-80A259EC 000128 000C+00 0/1 0/0 0/0 .rodata @4550 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4550[12] = {
- 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80A259E0, &lit_4550);
-#pragma pop
-
-/* 80A259EC-80A259F0 000134 0004+00 0/1 0/0 0/0 .rodata @4551 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4551[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
-};
-COMPILER_STRIP_GATE(0x80A259EC, &lit_4551);
-#pragma pop
-
-/* 80A259F0-80A259FC 000138 000C+00 0/1 0/0 0/0 .rodata @4552 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4552[12] = {
- 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80A259F0, &lit_4552);
-#pragma pop
-
-/* 80A259FC-80A25A00 000144 0004+00 0/1 0/0 0/0 .rodata @4553 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4553[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
-};
-COMPILER_STRIP_GATE(0x80A259FC, &lit_4553);
-#pragma pop
-
-/* 80A25A00-80A25A0C 000148 000C+00 0/1 0/0 0/0 .rodata @4554 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4554[12] = {
- 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80A25A00, &lit_4554);
-#pragma pop
-
-/* 80A25A0C-80A25A10 000154 0004+00 0/1 0/0 0/0 .rodata @4555 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4555[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
-};
-COMPILER_STRIP_GATE(0x80A25A0C, &lit_4555);
-#pragma pop
-
-/* 80A25A10-80A25A1C 000158 000C+00 0/1 0/0 0/0 .rodata @4556 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4556[12] = {
- 0x00, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
-};
-COMPILER_STRIP_GATE(0x80A25A10, &lit_4556);
-#pragma pop
-
-/* 80A25A1C-80A25A28 000164 000C+00 0/1 0/0 0/0 .rodata @4557 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4557[12] = {
- 0x00, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
-};
-COMPILER_STRIP_GATE(0x80A25A1C, &lit_4557);
-#pragma pop
-
-/* 80A25A28-80A25A34 000170 000C+00 0/1 0/0 0/0 .rodata @4558 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4558[12] = {
- 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
-};
-COMPILER_STRIP_GATE(0x80A25A28, &lit_4558);
-#pragma pop
-
-/* 80A25A34-80A25A40 00017C 000C+00 0/1 0/0 0/0 .rodata @4559 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4559[12] = {
- 0x00, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
-};
-COMPILER_STRIP_GATE(0x80A25A34, &lit_4559);
-#pragma pop
-
-/* 80A25A40-80A25A4C 000188 000C+00 0/1 0/0 0/0 .rodata @4560 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4560[12] = {
- 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
-};
-COMPILER_STRIP_GATE(0x80A25A40, &lit_4560);
-#pragma pop
-
-/* 80A25A4C-80A25A58 000194 000C+00 0/1 0/0 0/0 .rodata @4561 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4561[12] = {
- 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80A25A4C, &lit_4561);
-#pragma pop
-
-/* 80A25A58-80A25A70 0001A0 0018+00 0/0 0/0 0/0 .rodata @4562 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4562[24] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80A25A58, &lit_4562);
-#pragma pop
-
-/* 80A25A70-80A25A7C 0001B8 000C+00 0/1 0/0 0/0 .rodata @4563 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4563[12] = {
- 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
-};
-COMPILER_STRIP_GATE(0x80A25A70, &lit_4563);
-#pragma pop
-
-/* 80A25A7C-80A25A88 0001C4 000C+00 0/1 0/0 0/0 .rodata @4564 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4564[12] = {
- 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80A25A7C, &lit_4564);
-#pragma pop
-
-/* 80A25A88-80A25A90 0001D0 0008+00 0/1 0/0 0/0 .rodata @4565 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4565[8] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80A25A88, &lit_4565);
-#pragma pop
-
/* 80A22CD8-80A2310C 0013F8 0434+00 1/1 0/0 0/0 .text playMotion__14daNpcKasiKyu_cFv */
void daNpcKasiKyu_c::playMotion() {
- // NONMATCHING
-}
-
-/* 80A2310C-80A23284 00182C 0178+00 1/1 0/0 0/0 .text
- * playMotionAnmLoop__14daNpcKasiKyu_cFPPPQ28daNpcF_c18daNpcF_anmPlayData */
-void daNpcKasiKyu_c::playMotionAnmLoop(daNpcF_c::daNpcF_anmPlayData*** param_0) {
- // NONMATCHING
-}
-
-/* 80A23284-80A2332C 0019A4 00A8+00 10/10 0/0 0/0 .text
- * setAction__14daNpcKasiKyu_cFM14daNpcKasiKyu_cFPCvPvi_i */
-void daNpcKasiKyu_c::setAction(int (daNpcKasiKyu_c::*param_0)(int)) {
- // NONMATCHING
+ daNpcF_anmPlayData dat0 = {ANM_MICH_KYA_TALK, daNpcKasiKyu_Param_c::m.common.morf_frame, 0};
+ daNpcF_anmPlayData* pDat0[1] = {&dat0};
+ daNpcF_anmPlayData dat1 = {ANM_MICH_IYAN_WAIT, daNpcKasiKyu_Param_c::m.common.morf_frame, 0};
+ daNpcF_anmPlayData* pDat1[1] = {&dat1};
+ daNpcF_anmPlayData dat2 = {ANM_MICH_OUEN_WAIT_A, daNpcKasiKyu_Param_c::m.common.morf_frame, 0};
+ daNpcF_anmPlayData* pDat2[1] = {&dat2};
+ daNpcF_anmPlayData dat3 = {ANM_MICH_OUEN_WAIT_B, daNpcKasiKyu_Param_c::m.common.morf_frame, 0};
+ daNpcF_anmPlayData* pDat3[1] = {&dat3};
+ daNpcF_anmPlayData dat4 = {ANM_W_WAIT_A, daNpcKasiKyu_Param_c::m.common.morf_frame, 0};
+ daNpcF_anmPlayData* pDat4[1] = {&dat4};
+ daNpcF_anmPlayData dat5 = {ANM_W_TALK_B, daNpcKasiKyu_Param_c::m.common.morf_frame, 0};
+ daNpcF_anmPlayData* pDat5[1] = {&dat5};
+ daNpcF_anmPlayData dat6 = {ANM_W_WALK_A, daNpcKasiKyu_Param_c::m.common.morf_frame, 0};
+ daNpcF_anmPlayData* pDat6[1] = {&dat6};
+ daNpcF_anmPlayData dat7 = {ANM_W_CELLME, daNpcKasiKyu_Param_c::m.common.morf_frame, 0};
+ daNpcF_anmPlayData* pDat7[1] = {&dat7};
+ daNpcF_anmPlayData dat8 = {ANM_W_RUN_A, daNpcKasiKyu_Param_c::m.common.morf_frame, 0};
+ daNpcF_anmPlayData* pDat8[1] = {&dat8};
+ daNpcF_anmPlayData dat9 = {ANM_W_TO_WOLF, daNpcKasiKyu_Param_c::m.common.morf_frame, 0};
+ daNpcF_anmPlayData* pDat9[1] = {&dat9};
+ daNpcF_anmPlayData dat10 = {ANM_W_SURPRISE, daNpcKasiKyu_Param_c::m.common.morf_frame, 0};
+ daNpcF_anmPlayData* pDat10[1] = {&dat10};
+ daNpcF_anmPlayData dat11a = {ANM_W_WAIT_A_2, daNpcKasiKyu_Param_c::m.common.morf_frame, 1};
+ daNpcF_anmPlayData dat11b = {ANM_W_2LADYTALK_B, daNpcKasiKyu_Param_c::m.common.morf_frame, 1};
+ daNpcF_anmPlayData dat11c = {ANM_W_TALK_B_2, daNpcKasiKyu_Param_c::m.common.morf_frame, 1};
+ daNpcF_anmPlayData dat11d = {ANM_W_WAIT_A_2, daNpcKasiKyu_Param_c::m.common.morf_frame, 1};
+ daNpcF_anmPlayData dat11e = {ANM_W_TALK_B, daNpcKasiKyu_Param_c::m.common.morf_frame, 1};
+ daNpcF_anmPlayData dat11f = {ANM_W_2NORMALTALK_B, daNpcKasiKyu_Param_c::m.common.morf_frame, 0};
+ daNpcF_anmPlayData* pDat11[6] = {&dat11a, &dat11b, &dat11c, &dat11d, &dat11e, &dat11f};
+ daNpcF_anmPlayData dat12a = {ANM_W_2NORMALTALK_A, daNpcKasiKyu_Param_c::m.common.morf_frame, 1};
+ daNpcF_anmPlayData dat12b = {ANM_W_WAIT_A, daNpcKasiKyu_Param_c::m.common.morf_frame, 0};
+ daNpcF_anmPlayData* pDat12[2] = {&dat12a, &dat12b};
+
+ daNpcF_anmPlayData** ppDat[13] = {
+ pDat0,
+ pDat1,
+ pDat2,
+ pDat3,
+ pDat4,
+ pDat5,
+ pDat6,
+ pDat7,
+ pDat8,
+ pDat9,
+ pDat10,
+ pDat11,
+ pDat12
+ };
+
+ if (mMotion >= 0 && mMotion < 0xD) {
+ field_0x143e = mMotionPhase;
+
+ if (mMotion == MOT_W_WAIT_A_LOOP) {
+ playMotionAnmLoop(ppDat);
+ } else {
+ playMotionAnm(ppDat);
+ }
+ }
+}
+
+/* 80A2310C-80A23284 00182C 0178+00 1/1 0/0 0/0 .text playMotionAnmLoop__14daNpcKasiKyu_cFPPPQ28daNpcF_c18daNpcF_anmPlayData */
+void daNpcKasiKyu_c::playMotionAnmLoop(daNpcF_c::daNpcF_anmPlayData*** i_data) {
+ daNpcF_anmPlayData* playData = NULL;
+
+ if (i_data[mMotion] != NULL) {
+ playData = i_data[mMotion][mMotionPhase];
+ }
+
+ if (playData != NULL) {
+ if (mMotionPrevPhase == mMotionPhase) {
+ if (playData->numLoops > 0 && playData->numLoops <= mMotionLoops) {
+ mMotionPhase++;
+ playData = i_data[mMotion][mMotionPhase];
+ } else if (playData->numLoops == 0 && mMotionLoops >= 1) {
+ mMotionPhase = 0;
+ playData = i_data[mMotion][mMotionPhase];
+ }
+ }
+
+ if (playData != NULL && mMotionPrevPhase != mMotionPhase) {
+ setMotionAnm(playData->idx, 0.0f);
+ f32 i_morf = playData->morf;
+
+ if (mMotionPhase == 0) {
+ if (mMotion == MOT_W_WAIT_A_LOOP) {
+ i_morf = daNpcKasiKyu_Param_c::m.common.morf_frame;
+ } else if (0.0f <= mMotionMorfOverride) {
+ i_morf = mMotionMorfOverride;
+ }
+ }
+
+ mExpressionMorf = 0.0f;
+ mpMorf->setMorf(i_morf);
+ }
+ }
+
+ mMotionPrevPhase = mMotionPhase;
+}
+
+/* 80A23284-80A2332C 0019A4 00A8+00 10/10 0/0 0/0 .text setAction__14daNpcKasiKyu_cFM14daNpcKasiKyu_cFPCvPvi_i */
+BOOL daNpcKasiKyu_c::setAction(actionFunc action) {
+ mMode = -1;
+
+ if (mAction) {
+ (this->*mAction)(NULL);
+ }
+
+ mMode = 0;
+ mAction = action;
+
+ if (mAction) {
+ (this->*mAction)(NULL);
+ }
+
+ return TRUE;
}
/* 80A2332C-80A23350 001A4C 0024+00 8/8 0/0 0/0 .text setLookMode__14daNpcKasiKyu_cFi */
-void daNpcKasiKyu_c::setLookMode(int param_0) {
- // NONMATCHING
+void daNpcKasiKyu_c::setLookMode(int i_lookMode) {
+ if (i_lookMode >= 0 && i_lookMode < 4 && i_lookMode != mLookMode) {
+ mLookMode = i_lookMode;
+ }
}
-/* ############################################################################################## */
-/* 80A25A90-80A25AC4 0001D8 0034+00 0/0 0/0 0/0 .rodata @4566 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4566[52] = {
- 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,
-};
-COMPILER_STRIP_GATE(0x80A25A90, &lit_4566);
-#pragma pop
-
-/* 80A25AC4-80A25AD0 00020C 000C+00 0/1 0/0 0/0 .rodata @4647 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4647[12] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80A25AC4, &lit_4647);
-#pragma pop
-
-/* 80A25AD0-80A25AD4 000218 0004+00 0/1 0/0 0/0 .rodata @4695 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4695 = -80.0f;
-COMPILER_STRIP_GATE(0x80A25AD0, &lit_4695);
-#pragma pop
-
-/* 80A25AD4-80A25AD8 00021C 0004+00 0/1 0/0 0/0 .rodata @4696 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4696 = 80.0f;
-COMPILER_STRIP_GATE(0x80A25AD4, &lit_4696);
-#pragma pop
-
-/* 80A25AD8-80A25ADC 000220 0004+00 0/1 0/0 0/0 .rodata @4697 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4697 = 40.0f;
-COMPILER_STRIP_GATE(0x80A25AD8, &lit_4697);
-#pragma pop
-
/* 80A23350-80A23530 001A70 01E0+00 1/1 0/0 0/0 .text lookat__14daNpcKasiKyu_cFv */
void daNpcKasiKyu_c::lookat() {
- // NONMATCHING
+ daPy_py_c* player = NULL;
+ J3DModel* model = mpMorf->getModel();
+ BOOL i_snap = FALSE;
+ f32 body_angleX_min = daNpcKasiKyu_Param_c::m.common.body_angleX_min;
+ f32 body_angleX_max = daNpcKasiKyu_Param_c::m.common.body_angleX_max;
+ f32 body_angleY_min = daNpcKasiKyu_Param_c::m.common.body_angleY_min;
+ f32 body_angleY_max = daNpcKasiKyu_Param_c::m.common.body_angleY_max;
+ f32 head_angleX_min = daNpcKasiKyu_Param_c::m.common.head_angleX_min;
+ f32 head_angleX_max = daNpcKasiKyu_Param_c::m.common.head_angleX_max;
+ f32 head_angleY_min = daNpcKasiKyu_Param_c::m.common.head_angleY_min;
+ f32 head_angleY_max = daNpcKasiKyu_Param_c::m.common.head_angleY_max;
+ s16 angle_delta = mCurAngle.y - mOldAngle.y;
+ cXyz lookatPos[3] = {mLookatPos[0], mLookatPos[1], mLookatPos[2]};
+ csXyz* lookatAngle[3] = {&mLookatAngle[0], &mLookatAngle[1], &mLookatAngle[2]};
+ cXyz spe8;
+
+ switch (mLookMode) {
+ case LOOK_NONE:
+ break;
+
+ case LOOK_RESET:
+ i_snap = TRUE;
+ break;
+
+ case LOOK_PLAYER:
+ case LOOK_PLAYER_TALK:
+ player = daPy_getPlayerActorClass();
+
+ if (mLookMode != LOOK_PLAYER_TALK) {
+ break;
+ }
+
+ head_angleY_min = -80.0f;
+ head_angleY_max = 80.0f;
+ break;
+ }
+
+ if (player != NULL) {
+ mLookPos = player->attention_info.position;
+
+ if (mLookMode != LOOK_PLAYER && mLookMode != LOOK_PLAYER_TALK) {
+ mLookPos.y -= 40.0f;
+ }
+
+ mLookat.setAttnPos(&mLookPos);
+ } else {
+ mLookat.setAttnPos(NULL);
+ }
+
+ mLookat.setParam(body_angleX_min, body_angleX_max, body_angleY_min, body_angleY_max, 0.0f, 0.0f, 0.0f, 0.0f,
+ head_angleX_min, head_angleX_max, head_angleY_min, head_angleY_max, mCurAngle.y, lookatPos);
+ mLookat.calc(this, model->getBaseTRMtx(), lookatAngle, i_snap, angle_delta, FALSE);
}
/* 80A23530-80A23624 001C50 00F4+00 1/1 0/0 0/0 .text step__14daNpcKasiKyu_cFsi */
-void daNpcKasiKyu_c::step(s16 param_0, int param_1) {
- // NONMATCHING
+BOOL daNpcKasiKyu_c::step(s16 i_targetAngle, int param_2) {
+ if (mTurnMode == 0) {
+ mTurnTargetAngle = i_targetAngle;
+ mTurnAmount = 0;
+
+ if (mCurAngle.y == mTurnTargetAngle) {
+ mTurnMode++;
+ }
+
+ current.angle.y = mCurAngle.y;
+ shape_angle.y = current.angle.y;
+ mTurnMode++;
+ } else if (mTurnMode == 1) {
+ if (daNpcF_c::turn(mTurnTargetAngle, 15.0f, 0)) {
+ shape_angle.y = current.angle.y;
+ mCurAngle.y = current.angle.y;
+ mOldAngle.y = current.angle.y;
+ mTurnMode++;
+ } else {
+ shape_angle.y = current.angle.y;
+ mCurAngle.y = current.angle.y;
+ }
+ }
+
+ return mTurnMode > 1;
+}
+
+/* 80A23624-80A23708 001D44 00E4+00 1/1 0/0 0/0 .text chkFindPlayer__14daNpcKasiKyu_cFv */
+BOOL daNpcKasiKyu_c::chkFindPlayer() {
+ if (!chkActorInSight(daPy_getPlayerActorClass(), daNpcKasiKyu_Param_c::m.common.fov)) {
+ mActorMngr[0].remove();
+ return FALSE;
+ }
+
+ bool rv;
+ if (mActorMngr[0].getActorP() == NULL) {
+ rv = chkPlayerInSpeakArea(this);
+ } else {
+ rv = chkPlayerInTalkArea(this);
+ }
+
+ if (rv) {
+ mActorMngr[0].entry(daPy_getPlayerActorClass());
+ } else {
+ mActorMngr[0].remove();
+ }
+
+ return rv;
}
-/* 80A23624-80A23708 001D44 00E4+00 1/1 0/0 0/0 .text chkFindPlayer__14daNpcKasiKyu_cFv
- */
-void daNpcKasiKyu_c::chkFindPlayer() {
- // NONMATCHING
-}
-
-/* ############################################################################################## */
-/* 80A25ADC-80A25AE0 000224 0004+00 0/1 0/0 0/0 .rodata @4830 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4830 = 450.0f;
-COMPILER_STRIP_GATE(0x80A25ADC, &lit_4830);
-#pragma pop
-
-/* 80A25AE0-80A25AE8 000228 0008+00 0/1 0/0 0/0 .rodata @4831 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4831[8] = {
- 0x40, 0x7F, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80A25AE0, &lit_4831);
-#pragma pop
-
-/* 80A25AE8-80A25AF0 000230 0008+00 0/1 0/0 0/0 .rodata @4832 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4832[8] = {
- 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80A25AE8, &lit_4832);
-#pragma pop
-
/* 80A23708-80A23AB4 001E28 03AC+00 8/0 0/0 0/0 .text wait__14daNpcKasiKyu_cFi */
-void daNpcKasiKyu_c::wait(int param_0) {
- // NONMATCHING
+int daNpcKasiKyu_c::wait(int param_1) {
+ // NONMATCHING
+ switch (mMode) {
+ case -1:
+ break;
+
+ case 0:
+ if (mType == 0 && !field_0x1465) {
+ setMotion(MOT_W_WAIT_A_LOOP, -1.0f, 0);
+ } else {
+ setMotion(MOT_W_WAIT_A, -1.0f, 0);
+ }
+
+ speedF = 0.0f;
+ mMode = 1;
+ break;
+
+ case 1:
+ chkFindPlayer();
+
+ if (mActorMngr[0].getActorP() != NULL) {
+ setLookMode(LOOK_PLAYER);
+ } else if (!fopAcM_isSwitch(this, 12) && !dComIfGp_event_runCheck()) {
+ setLookMode(LOOK_NONE);
+ if (home.angle.y != mCurAngle.y && step(home.angle.y, 1)) {
+ if (mType == 0 && !field_0x1465) {
+ setMotion(MOT_W_WAIT_A_LOOP, -1.0f, 0);
+ } else {
+ setMotion(MOT_W_WAIT_A, -1.0f, 0);
+ }
+
+ mTurnMode = 0;
+ }
+ }
+
+ /* dSv_event_flag_c::F_290 - Castle Town - Star Game 1 cleared */
+ if (daNpcF_chkEvtBit(290) && field_0x1465 && mType == 0 && fopAcM_isSwitch(this, 12)) {
+ if (pl_front_check()) {
+ if (fopAcM_searchActorDistanceXZ(this, daPy_getPlayerActorClass()) >= 450.0f) {
+ setAction(&daNpcKasiKyu_c::chace);
+ return 1;
+ }
+ } else {
+ setAction(&daNpcKasiKyu_c::turn_link);
+ return 1;
+ }
+ }
+
+ if (dComIfGp_event_runCheck()) {
+ if (eventInfo.checkCommandTalk()) {
+ if (!dComIfGp_event_chkTalkXY() || dComIfGp_evmng_ChkPresentEnd()) {
+ OS_REPORT("------------------kyu talk reset!!\n");
+
+ mTalked = true;
+ dComIfGp_event_reset();
+ }
+ }
+ } else {
+ if (!dKy_darkworld_check()) {
+ if (daPy_py_c::checkNowWolf()) {
+ f32 fVar1 = pow(500.0, 2.0);
+ if (fopAcM_searchPlayerDistanceXZ2(this) < fVar1) {
+ mFear = true;
+ break;
+ }
+ }
+ }
+
+ if (mOrderEvtNo != 0) {
+ eventInfo.setArchiveName(l_arcNames[0]);
+ }
+
+ orderEvent(field_0x1469, l_evtNames[mOrderEvtNo], 0xFFFF, 40, 0xFF, 1);
+ }
+ break;
+
+ default:
+ JUT_ASSERT(1296, 0);
+ break;
+ }
+
+ return 1;
}
-/* ############################################################################################## */
-/* 80A25AF0-80A25AF4 000238 0004+00 0/1 0/0 0/0 .rodata @4879 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4879 = 1.5f;
-COMPILER_STRIP_GATE(0x80A25AF0, &lit_4879);
-#pragma pop
-
/* 80A23AB4-80A23C90 0021D4 01DC+00 1/0 0/0 0/0 .text fear__14daNpcKasiKyu_cFi */
-void daNpcKasiKyu_c::fear(int param_0) {
- // NONMATCHING
+int daNpcKasiKyu_c::fear(int param_1) {
+ switch (mMode) {
+ case -1:
+ break;
+
+ case 0: {
+ daTagEscape_c* tagEscape_p = srchWolfTag();
+ if (tagEscape_p != NULL) {
+ mPath.initialize();
+ mPath.setPathInfo(tagEscape_p->getPathID(), fopAcM_GetRoomNo(this), 0);
+ mPath.setIdx(getWolfPathNearIdx());
+ mMode = 1;
+ }
+ break;
+ }
+
+ case 1:
+ if (_turn_to_link(0x1000)) {
+ setMotion(MOT_W_SURPRISE, -1.0f, 0);
+ mMode = 3;
+ }
+ break;
+
+ case 3:
+ if (mpMorf->isStop()) {
+ setMotion(MOT_W_RUN_A, -1.0f, 0);
+ mSound.startCreatureVoice(Z2SE_KIU_V_FEAR, -1);
+ fopAcM_SetSpeedF(this, 15.0f);
+ mMode = 4;
+ }
+ break;
+
+ case 4: {
+ cXyz sp28;
+ mpMorf->setPlaySpeed(1.5f);
+
+ if (mPath.getDstPos(current.pos, sp28)) {
+ mEscape = true;
+ mMode = -1;
+ } else {
+ _turn_pos(sp28, 800);
+ }
+ break;
+ }
+ }
+
+ return 1;
}
/* 80A23C90-80A23CF8 0023B0 0068+00 1/1 0/0 0/0 .text srchWolfTag__14daNpcKasiKyu_cFv */
-void daNpcKasiKyu_c::srchWolfTag() {
- // NONMATCHING
+daTagEscape_c* daNpcKasiKyu_c::srchWolfTag() {
+ mTargetTag = NULL;
+ mWolfAngle = fopAcM_searchPlayerAngleY(this);
+ fpcM_Search(_srch_escape_tag, this);
+ return mTargetTag;
}
/* 80A23CF8-80A23DC8 002418 00D0+00 1/1 0/0 0/0 .text _srch_escape_tag__14daNpcKasiKyu_cFPvPv */
-void daNpcKasiKyu_c::_srch_escape_tag(void* param_0, void* param_1) {
- // NONMATCHING
+void* daNpcKasiKyu_c::_srch_escape_tag(void* i_actor, void* i_data) {
+ if (!fopAcM_IsActor(i_actor)) {
+ return NULL;
+ }
+
+ if (fopAcM_GetName(i_actor) != PROC_Tag_Escape) {
+ return NULL;
+ }
+
+ int iVar1 = cLib_distanceAngleS(mWolfAngle, fopAcM_searchActorAngleY((fopAc_ac_c*)i_data, (fopAc_ac_c*)i_actor));
+
+ if (mTargetTag == NULL) {
+ mTargetTagDist = fopAcM_searchActorDistanceXZ2((fopAc_ac_c*)i_data, (fopAc_ac_c*)i_actor);
+ mTargetTag = (daTagEscape_c*)i_actor;
+ return NULL;
+ }
+
+ if (iVar1 > 0x4000) {
+ f32 fVar1 = fopAcM_searchActorDistanceXZ2((fopAc_ac_c*)i_data, (fopAc_ac_c*)i_actor);
+ if (fVar1 < mTargetTagDist) {
+ mTargetTagDist = fVar1;
+ mTargetTag = (daTagEscape_c*)i_actor;
+ }
+ }
+
+ return NULL;
}
/* 80A23DC8-80A23EFC 0024E8 0134+00 1/1 0/0 0/0 .text getWolfPathNearIdx__14daNpcKasiKyu_cFv */
-void daNpcKasiKyu_c::getWolfPathNearIdx() {
- // NONMATCHING
-}
+int daNpcKasiKyu_c::getWolfPathNearIdx() {
+ int iVar1 = 0;
+ f32 fVar1 = 0.0f;
+ u16 numPnts = mPath.getNumPnts();
+ cXyz sp44, sp50;
-/* 80A23EFC-80A23FA0 00261C 00A4+00 2/0 0/0 0/0 .text chace_st__14daNpcKasiKyu_cFi */
-void daNpcKasiKyu_c::chace_st(int param_0) {
- // NONMATCHING
-}
+ int rv = 0;
+ for (; rv < numPnts; rv++) {
+ sp44 = mPath.getPntPos(rv);
+ sp50 = sp44 - current.pos;
+ f32 fVar2 = sp50.abs2XZ();
-/* ############################################################################################## */
-/* 80A25AF4-80A25AF8 00023C 0004+00 0/1 0/0 0/0 .rodata @5067 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_5067 = 14.0f;
-COMPILER_STRIP_GATE(0x80A25AF4, &lit_5067);
-#pragma pop
-
-/* 80A25AF8-80A25AFC 000240 0004+00 0/1 0/0 0/0 .rodata @5068 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_5068 = 400.0f;
-COMPILER_STRIP_GATE(0x80A25AF8, &lit_5068);
-#pragma pop
+ if (rv == 0) {
+ fVar1 = fVar2;
+ iVar1 = 0;
+ } else if (fVar2 < fVar1) {
+ fVar1 = fVar2;
+ iVar1 = rv;
+ }
+ }
-/* 80A23FA0-80A24110 0026C0 0170+00 4/0 0/0 0/0 .text chace__14daNpcKasiKyu_cFi */
-void daNpcKasiKyu_c::chace(int param_0) {
- // NONMATCHING
-}
+ rv = iVar1 + 1;
-/* 80A24110-80A241CC 002830 00BC+00 1/1 0/0 0/0 .text getChacePos__14daNpcKasiKyu_cFv */
-void daNpcKasiKyu_c::getChacePos() {
- // NONMATCHING
-}
+ if (iVar1 == numPnts) {
+ rv = iVar1;
+ }
-/* 80A241CC-80A2428C 0028EC 00C0+00 2/0 0/0 0/0 .text turn_link__14daNpcKasiKyu_cFi */
-void daNpcKasiKyu_c::turn_link(int param_0) {
- // NONMATCHING
+ return rv;
}
-/* 80A2428C-80A24370 0029AC 00E4+00 1/0 0/0 0/0 .text turn_home__14daNpcKasiKyu_cFi */
-void daNpcKasiKyu_c::turn_home(int param_0) {
+/* 80A23EFC-80A23FA0 00261C 00A4+00 2/0 0/0 0/0 .text chace_st__14daNpcKasiKyu_cFi */
+int daNpcKasiKyu_c::chace_st(int param_1) {
// NONMATCHING
-}
+ switch (mMode) {
+ case -1:
+ break;
-/* 80A24370-80A24440 002A90 00D0+00 1/0 0/0 0/0 .text turn_center__14daNpcKasiKyu_cFi */
-void daNpcKasiKyu_c::turn_center(int param_0) {
- // NONMATCHING
-}
+ case 0:
+ fopAcM_SetSpeedF(this, 0.0f);
+ field_0x1465 = true;
+ mMode = 1;
+ break;
-/* 80A24440-80A244B8 002B60 0078+00 1/0 0/0 0/0 .text talk_dummy__14daNpcKasiKyu_cFi */
-void daNpcKasiKyu_c::talk_dummy(int param_0) {
- // NONMATCHING
-}
+ case 1:
+ if (_turn_to_link(0xC00)) {
+ setAction(&daNpcKasiKyu_c::chace);
+ }
+ break;
+ }
-/* 80A244B8-80A24590 002BD8 00D8+00 1/0 0/0 0/0 .text kya__14daNpcKasiKyu_cFi */
-void daNpcKasiKyu_c::kya(int param_0) {
- // NONMATCHING
+ return 1;
}
-/* 80A24590-80A24628 002CB0 0098+00 1/0 0/0 0/0 .text kya2__14daNpcKasiKyu_cFi */
-void daNpcKasiKyu_c::kya2(int param_0) {
- // NONMATCHING
+/* 80A23FA0-80A24110 0026C0 0170+00 4/0 0/0 0/0 .text chace__14daNpcKasiKyu_cFi */
+int daNpcKasiKyu_c::chace(int param_1) {
+ // NONMATCHING
+ switch (mMode) {
+ case -1:
+ break;
+
+ case 0:
+ setMotion(MOT_W_RUN_A, -1.0f, 0);
+ setLookMode(LOOK_NONE);
+ fopAcM_SetSpeed(this, 0.0f, 0.0f, 0.0f);
+ fopAcM_SetSpeedF(this, 14.0f);
+ field_0x1465 = 1;
+ mMode = 1;
+ break;
+
+ case 1:
+ cXyz chacePos = getChacePos();
+ _turn_pos(chacePos, 0x800);
+
+ if (pl_front_check()) {
+ if (fopAcM_searchActorDistanceXZ(this, daPy_getPlayerActorClass()) < 400.0f) {
+ setAction(&daNpcKasiKyu_c::wait);
+ }
+ } else {
+ setAction(&daNpcKasiKyu_c::chace_st);
+ }
+ break;
+ }
+
+ return 1;
}
-/* ############################################################################################## */
-/* 80A25AFC-80A25B00 000244 0004+00 1/1 0/0 0/0 .rodata @5219 */
-SECTION_RODATA static f32 const lit_5219 = 19.0f;
-COMPILER_STRIP_GATE(0x80A25AFC, &lit_5219);
+/* 80A24110-80A241CC 002830 00BC+00 1/1 0/0 0/0 .text getChacePos__14daNpcKasiKyu_cFv */
+cXyz daNpcKasiKyu_c::getChacePos() {
+ int plPoint = mPlPoint;
+ int idx = mPath.getIdx();
-/* 80A24628-80A246FC 002D48 00D4+00 2/0 0/0 0/0 .text kya_stop__14daNpcKasiKyu_cFi */
-void daNpcKasiKyu_c::kya_stop(int param_0) {
- // NONMATCHING
-}
+ if (idx == plPoint) {
+ return *fopAcM_GetPosition_p(daPy_getPlayerActorClass());
+ }
-/* 80A246FC-80A24774 002E1C 0078+00 1/0 0/0 0/0 .text iyan__14daNpcKasiKyu_cFi */
-void daNpcKasiKyu_c::iyan(int param_0) {
- // NONMATCHING
-}
+ if (idx < plPoint) {
+ mPath.offReverse();
+ } else if (idx > plPoint) {
+ mPath.onReverse();
+ }
-/* 80A24774-80A2484C 002E94 00D8+00 1/0 0/0 0/0 .text iyan_look__14daNpcKasiKyu_cFi */
-void daNpcKasiKyu_c::iyan_look(int param_0) {
- // NONMATCHING
+ cXyz chacePos;
+ mPath.getDstPos(current.pos, chacePos);
+
+ return chacePos;
}
-/* ############################################################################################## */
-/* 80A25B00-80A25B04 000248 0004+00 0/1 0/0 0/0 .rodata @5256 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_5256 = -3200.0f;
-COMPILER_STRIP_GATE(0x80A25B00, &lit_5256);
-#pragma pop
-
-/* 80A25B04-80A25B08 00024C 0004+00 0/1 0/0 0/0 .rodata @5257 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_5257 = 1500.0f;
-COMPILER_STRIP_GATE(0x80A25B04, &lit_5257);
-#pragma pop
-
-/* 80A2484C-80A2493C 002F6C 00F0+00 1/0 0/0 0/0 .text turn_hana__14daNpcKasiKyu_cFi */
-void daNpcKasiKyu_c::turn_hana(int param_0) {
+/* 80A241CC-80A2428C 0028EC 00C0+00 2/0 0/0 0/0 .text turn_link__14daNpcKasiKyu_cFi */
+int daNpcKasiKyu_c::turn_link(int param_1) {
// NONMATCHING
-}
+ switch (mMode) {
+ case -1:
+ break;
-/* ############################################################################################## */
-/* 80A25B08-80A25B0C 000250 0004+00 0/1 0/0 0/0 .rodata @5281 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_5281 = 1.75f;
-COMPILER_STRIP_GATE(0x80A25B08, &lit_5281);
-#pragma pop
+ case 0:
+ setMotion(MOT_W_WAIT_A, -1.0f, 0);
+ speedF = 0.0f;
+ mMode = 1;
+ break;
-/* 80A2493C-80A24A54 00305C 0118+00 1/0 0/0 0/0 .text escape__14daNpcKasiKyu_cFi */
-void daNpcKasiKyu_c::escape(int param_0) {
- // NONMATCHING
-}
+ case 1:
+ if (_turn_to_link(0x1000)) {
+ setAction(&daNpcKasiKyu_c::wait);
+ break;
+ }
+ }
-/* 80A24A54-80A24AD8 003174 0084+00 6/0 0/0 0/0 .text wait_dummy__14daNpcKasiKyu_cFi */
-void daNpcKasiKyu_c::wait_dummy(int param_0) {
- // NONMATCHING
+ return 1;
}
-/* 80A24AD8-80A24CC4 0031F8 01EC+00 1/0 0/0 0/0 .text cheer__14daNpcKasiKyu_cFi */
-void daNpcKasiKyu_c::cheer(int param_0) {
+/* 80A2428C-80A24370 0029AC 00E4+00 1/0 0/0 0/0 .text turn_home__14daNpcKasiKyu_cFi */
+int daNpcKasiKyu_c::turn_home(int param_1) {
// NONMATCHING
-}
+ switch (mMode) {
+ case -1:
+ break;
-/* 80A24CC4-80A24D10 0033E4 004C+00 3/3 0/0 0/0 .text _turn_to_link__14daNpcKasiKyu_cFs
- */
-void daNpcKasiKyu_c::_turn_to_link(s16 param_0) {
- // NONMATCHING
-}
+ case 0:
+ setLookMode(LOOK_NONE);
+ setMotion(MOT_W_WAIT_A, -1.0f, 0);
+ speedF = 0.0f;
+ mMode = 1;
+ break;
-/* 80A24D10-80A24D6C 003430 005C+00 6/6 0/0 0/0 .text _turn_pos__14daNpcKasiKyu_cFRC4cXyzs */
-void daNpcKasiKyu_c::_turn_pos(cXyz const& param_0, s16 param_1) {
- // NONMATCHING
-}
+ case 1:
+ BOOL bVar1 = cLib_chaseAngleS(&mCurAngle.y, home.angle.y, 0x1000);
+ current.angle.y = mCurAngle.y;
+ shape_angle.y = current.angle.y;
-/* 80A24D6C-80A24E44 00348C 00D8+00 2/2 0/0 0/0 .text
- * actor_front_check__14daNpcKasiKyu_cFP10fopAc_ac_c */
-void daNpcKasiKyu_c::actor_front_check(fopAc_ac_c* param_0) {
- // NONMATCHING
-}
+ if (bVar1) {
+ setAction(&daNpcKasiKyu_c::wait_dummy);
+ }
+ break;
+ }
-/* 80A24E44-80A24EB0 003564 006C+00 1/1 0/0 0/0 .text _getOffset__14daNpcKasiKyu_cFRC4cXyzR4cXyz
- */
-void daNpcKasiKyu_c::_getOffset(cXyz const& param_0, cXyz& param_1) {
- // NONMATCHING
+ return 1;
}
-/* 80A24EB0-80A24ED0 0035D0 0020+00 1/0 0/0 0/0 .text daNpcKasiKyu_Create__FPv */
-static void daNpcKasiKyu_Create(void* param_0) {
+/* 80A24370-80A24440 002A90 00D0+00 1/0 0/0 0/0 .text turn_center__14daNpcKasiKyu_cFi */
+int daNpcKasiKyu_c::turn_center(int param_1) {
// NONMATCHING
-}
+ switch (mMode) {
+ case -1:
+ break;
-/* 80A24ED0-80A24EF0 0035F0 0020+00 1/0 0/0 0/0 .text daNpcKasiKyu_Delete__FPv */
-static void daNpcKasiKyu_Delete(void* param_0) {
- // NONMATCHING
-}
+ case 0:
+ setLookMode(LOOK_NONE);
+ setMotion(MOT_W_WAIT_A, -1.0f, 0);
+ speedF = 0.0f;
+ mMode = 1;
+ break;
-/* 80A24EF0-80A24F10 003610 0020+00 1/0 0/0 0/0 .text daNpcKasiKyu_Execute__FPv */
-static void daNpcKasiKyu_Execute(void* param_0) {
- // NONMATCHING
-}
+ case 1:
+ if (_turn_pos(mCenterPos, 0x1000)) {
+ setAction(&daNpcKasiKyu_c::wait_dummy);
+ }
+ break;
+ }
-/* 80A24F10-80A24F30 003630 0020+00 1/0 0/0 0/0 .text daNpcKasiKyu_Draw__FPv */
-static void daNpcKasiKyu_Draw(void* param_0) {
- // NONMATCHING
+ return 1;
}
-/* 80A24F30-80A24F38 003650 0008+00 1/0 0/0 0/0 .text daNpcKasiKyu_IsDelete__FPv */
-static bool daNpcKasiKyu_IsDelete(void* param_0) {
- return true;
-}
+/* 80A24440-80A244B8 002B60 0078+00 1/0 0/0 0/0 .text talk_dummy__14daNpcKasiKyu_cFi */
+int daNpcKasiKyu_c::talk_dummy(int param_1) {
+ switch (mMode) {
+ case -1:
+ break;
-/* 80A24F38-80A24F98 003658 0060+00 1/0 0/0 0/0 .text __dt__13daNpcF_Path_cFv */
-// daNpcF_Path_c::~daNpcF_Path_c() {
-extern "C" void __dt__13daNpcF_Path_cFv() {
- // NONMATCHING
-}
+ case 0:
+ setMotion(MOT_MICH_KYA_TALK, -1.0f, 0);
+ speedF = 0.0f;
+ mMode = 1;
+ break;
-/* 80A24F98-80A24FE0 0036B8 0048+00 1/0 0/0 0/0 .text __dt__16daNpcF_SPCurve_cFv */
-// daNpcF_SPCurve_c::~daNpcF_SPCurve_c() {
-extern "C" void __dt__16daNpcF_SPCurve_cFv() {
- // NONMATCHING
-}
+ case 1:
+ break;
+ }
-/* 80A24FE0-80A25028 003700 0048+00 5/4 0/0 0/0 .text __dt__18daNpcF_ActorMngr_cFv */
-// daNpcF_ActorMngr_c::~daNpcF_ActorMngr_c() {
-extern "C" void __dt__18daNpcF_ActorMngr_cFv() {
- // NONMATCHING
+ return 1;
}
-/* 80A25028-80A25064 003748 003C+00 2/2 0/0 0/0 .text __ct__18daNpcF_ActorMngr_cFv */
-// daNpcF_ActorMngr_c::daNpcF_ActorMngr_c() {
-extern "C" void __ct__18daNpcF_ActorMngr_cFv() {
- // NONMATCHING
+/* 80A244B8-80A24590 002BD8 00D8+00 1/0 0/0 0/0 .text kya__14daNpcKasiKyu_cFi */
+int daNpcKasiKyu_c::kya(int param_1) {
+ switch (mMode) {
+ case -1:
+ break;
+
+ case 0:
+ setMotion(MOT_MICH_KYA_TALK, -1.0f, 0);
+ speedF = 0.0f;
+ mpMorf->setPlaySpeed(0.0f);
+ field_0x1460 = 8;
+ mMode = 1;
+ break;
+
+ case 1:
+ if (field_0x1460 > 0) {
+ field_0x1460--;
+
+ if (field_0x1460 == 0) {
+ mpMorf->setPlaySpeed(1.0f);
+ } else {
+ mpMorf->setPlaySpeed(0.0f);
+ }
+ }
+ break;
+ }
+
+ return 1;
}
-/* 80A25064-80A25134 003784 00D0+00 1/0 0/0 0/0 .text __dt__15daNpcF_Lookat_cFv */
-// daNpcF_Lookat_c::~daNpcF_Lookat_c() {
-extern "C" void __dt__15daNpcF_Lookat_cFv() {
- // NONMATCHING
-}
+/* 80A24590-80A24628 002CB0 0098+00 1/0 0/0 0/0 .text kya2__14daNpcKasiKyu_cFi */
+int daNpcKasiKyu_c::kya2(int param_1) {
+ switch (mMode) {
+ case -1:
+ break;
-/* 80A25134-80A25170 003854 003C+00 5/5 0/0 0/0 .text __dt__5csXyzFv */
-// csXyz::~csXyz() {
-extern "C" void __dt__5csXyzFv() {
- // NONMATCHING
-}
+ case 0:
+ setMotion(MOT_MICH_KYA_TALK, -1.0f, 0);
+ setLookMode(LOOK_NONE);
+ speedF = 0.0f;
+ mpMorf->setPlaySpeed(1.0f);
+ mMode = 1;
+ break;
-/* 80A25170-80A25174 003890 0004+00 2/2 0/0 0/0 .text __ct__5csXyzFv */
-// csXyz::csXyz() {
-extern "C" void __ct__5csXyzFv() {
- /* empty function */
-}
+ case 1:
+ break;
+ }
-/* 80A25174-80A251B0 003894 003C+00 5/5 0/0 0/0 .text __dt__4cXyzFv */
-// cXyz::~cXyz() {
-extern "C" void __dt__4cXyzFv() {
- // NONMATCHING
+ return 1;
}
-/* 80A251B0-80A251B4 0038D0 0004+00 2/2 0/0 0/0 .text __ct__4cXyzFv */
-// cXyz::cXyz() {
-extern "C" void __ct__4cXyzFv() {
- /* empty function */
+/* 80A24628-80A246FC 002D48 00D4+00 2/0 0/0 0/0 .text kya_stop__14daNpcKasiKyu_cFi */
+int daNpcKasiKyu_c::kya_stop(int param_1) {
+ // NONMATCHING
+ switch (mMode) {
+ case -1:
+ break;
+
+ case 0:
+ if (mMotion != MOT_MICH_KYA_TALK) {
+ setAction(&daNpcKasiKyu_c::wait);
+ } else {
+ mMode = 1;
+ }
+ break;
+
+ case 1:
+ if (mpMorf->getFrame() == 19.0f || mpMorf->getFrame() == 1.0f) {
+ setAction(&daNpcKasiKyu_c::wait_dummy);
+ }
+ break;
+ }
+
+ return 1;
}
-/* 80A251B4-80A25400 0038D4 024C+00 1/1 0/0 0/0 .text __dt__8daNpcF_cFv */
-// daNpcF_c::~daNpcF_c() {
-extern "C" void __dt__8daNpcF_cFv() {
- // NONMATCHING
-}
+/* 80A246FC-80A24774 002E1C 0078+00 1/0 0/0 0/0 .text iyan__14daNpcKasiKyu_cFi */
+int daNpcKasiKyu_c::iyan(int param_1) {
+ switch (mMode) {
+ case -1:
+ break;
-/* 80A25400-80A255F0 003B20 01F0+00 1/1 0/0 0/0 .text __ct__8daNpcF_cFv */
-// daNpcF_c::daNpcF_c() {
-extern "C" void __ct__8daNpcF_cFv() {
- // NONMATCHING
-}
+ case 0:
+ setMotion(MOT_MICH_IYAN_WAIT, -1.0f, 0);
+ speedF = 0.0f;
+ mMode = 1;
+ break;
-/* 80A255F0-80A25660 003D10 0070+00 1/0 0/0 0/0 .text __dt__12dBgS_AcchCirFv */
-// dBgS_AcchCir::~dBgS_AcchCir() {
-extern "C" void __dt__12dBgS_AcchCirFv() {
- // NONMATCHING
-}
+ case 1:
+ break;
+ }
-/* 80A25660-80A256BC 003D80 005C+00 1/0 0/0 0/0 .text __dt__10dCcD_GSttsFv */
-// dCcD_GStts::~dCcD_GStts() {
-extern "C" void __dt__10dCcD_GSttsFv() {
- // NONMATCHING
+ return 1;
}
-/* 80A256BC-80A2572C 003DDC 0070+00 3/2 0/0 0/0 .text __dt__12dBgS_ObjAcchFv */
-// dBgS_ObjAcch::~dBgS_ObjAcch() {
-extern "C" void __dt__12dBgS_ObjAcchFv() {
+/* 80A24774-80A2484C 002E94 00D8+00 1/0 0/0 0/0 .text iyan_look__14daNpcKasiKyu_cFi */
+int daNpcKasiKyu_c::iyan_look(int param_1) {
// NONMATCHING
-}
+ switch (mMode) {
+ case -1:
+ break;
-/* 80A2572C-80A25774 003E4C 0048+00 1/0 0/0 0/0 .text __dt__12J3DFrameCtrlFv */
-// J3DFrameCtrl::~J3DFrameCtrl() {
-extern "C" void __dt__12J3DFrameCtrlFv() {
- // NONMATCHING
-}
+ case 0:
+ setMotion(MOT_MICH_IYAN_WAIT, -1.0f, 0);
+ speedF = 0.0f;
+ setLookMode(LOOK_NONE);
+ field_0x1460 = 86;
+ mMode = 1;
+ break;
-/* 80A25774-80A2577C 003E94 0008+00 1/0 0/0 0/0 .text ctrlBtk__8daNpcF_cFv */
-// bool daNpcF_c::ctrlBtk() {
-extern "C" bool ctrlBtk__8daNpcF_cFv() {
- return false;
-}
+ case 1:
+ field_0x1460--;
+ if (field_0x1460 == 0) {
+ setAction(&daNpcKasiKyu_c::wait_dummy);
+ }
+ break;
+ }
-/* 80A2577C-80A25780 003E9C 0004+00 1/0 0/0 0/0 .text setCollisions__8daNpcF_cFv */
-// void daNpcF_c::setCollisions() {
-extern "C" void setCollisions__8daNpcF_cFv() {
- /* empty function */
+ return 1;
}
-/* 80A25780-80A25788 003EA0 0008+00 1/0 0/0 0/0 .text setExpressionAnm__8daNpcF_cFib */
-// bool daNpcF_c::setExpressionAnm(int param_0, bool param_1) {
-extern "C" bool setExpressionAnm__8daNpcF_cFib() {
- return true;
+/* 80A2484C-80A2493C 002F6C 00F0+00 1/0 0/0 0/0 .text turn_hana__14daNpcKasiKyu_cFi */
+int daNpcKasiKyu_c::turn_hana(int param_1) {
+ switch (mMode) {
+ case -1:
+ break;
+
+ case 0:
+ setMotion(MOT_W_WAIT_A, -1.0f, 0);
+ speedF = 0.0f;
+ setLookMode(LOOK_NONE);
+ mMode = 1;
+ break;
+
+ case 1: {
+ cXyz pos(-3200.0f, 0.0f, 1500.0f);
+ if (_turn_pos(pos, 0x800)) {
+ setMotion(MOT_W_2NORMALTALK_A, -1.0f, 0);
+ mMode = 2;
+ }
+ break;
+ }
+
+ case 2:
+ break;
+ }
+
+ return 1;
}
-/* 80A25788-80A25790 003EA8 0008+00 1/0 0/0 0/0 .text setExpressionBtp__8daNpcF_cFi */
-// bool daNpcF_c::setExpressionBtp(int param_0) {
-extern "C" bool setExpressionBtp__8daNpcF_cFi() {
- return true;
+/* 80A2493C-80A24A54 00305C 0118+00 1/0 0/0 0/0 .text escape__14daNpcKasiKyu_cFi */
+int daNpcKasiKyu_c::escape(int param_1) {
+ switch (mMode) {
+ case -1:
+ break;
+
+ case 0:
+ setMotion(MOT_W_RUN_A, -1.0f, 0);
+ fopAcM_SetSpeed(this, 0.0f, 0.0f, 0.0f);
+ fopAcM_SetSpeedF(this, 0.0f);
+ field_0x1430 = daNpcKasiKyu_Param_c::m.escape_time;
+ mMode = 1;
+ break;
+
+ case 1:
+ if (--field_0x1430 <= 0) {
+ fopAcM_SetSpeedF(this, daNpcKasiKyu_Param_c::m.escape_spd);
+ mSound.startCreatureVoice(Z2SE_KIU_V_FEAR, -1);
+ mMode = 2;
+ }
+ break;
+
+ case 2:
+ _turn_pos(mChacePos, 0x1000);
+ mpMorf->setPlaySpeed(1.75f);
+ break;
+ }
+
+ return 1;
}
-/* 80A25790-80A25794 003EB0 0004+00 1/0 0/0 0/0 .text setExpression__8daNpcF_cFif */
-// void daNpcF_c::setExpression(int param_0, f32 param_1) {
-extern "C" void setExpression__8daNpcF_cFif() {
- /* empty function */
-}
+/* 80A24A54-80A24AD8 003174 0084+00 6/0 0/0 0/0 .text wait_dummy__14daNpcKasiKyu_cFi */
+int daNpcKasiKyu_c::wait_dummy(int param_1) {
+ switch (mMode) {
+ case -1:
+ break;
-/* 80A25794-80A25798 003EB4 0004+00 1/0 0/0 0/0 .text drawOtherMdls__8daNpcF_cFv */
-// void daNpcF_c::drawOtherMdls() {
-extern "C" void drawOtherMdls__8daNpcF_cFv() {
- /* empty function */
-}
+ case 0:
+ setMotion(MOT_W_WAIT_A, -1.0f, 0);
+ fopAcM_SetSpeed(this, 0.0f, 0.0f, 0.0f);
+ fopAcM_SetSpeedF(this, 0.0f);
+ mMode = 1;
+ break;
-/* 80A25798-80A257E0 003EB8 0048+00 1/0 0/0 0/0 .text __dt__10cCcD_GSttsFv */
-// cCcD_GStts::~cCcD_GStts() {
-extern "C" void __dt__10cCcD_GSttsFv() {
- // NONMATCHING
-}
+ case 1:
+ break;
+ }
-/* ############################################################################################## */
-/* 80A25FF8-80A26004 0004D4 000C+00 2/2 0/0 0/0 .data __vt__20daNpcKasiKyu_Param_c */
-SECTION_DATA extern void* __vt__20daNpcKasiKyu_Param_c[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__20daNpcKasiKyu_Param_cFv,
-};
+ return 1;
+}
-/* 80A257E0-80A25848 003F00 0068+00 0/0 1/0 0/0 .text __sinit_d_a_npc_kasi_kyu_cpp */
-void __sinit_d_a_npc_kasi_kyu_cpp() {
- // NONMATCHING
+/* 80A24AD8-80A24CC4 0031F8 01EC+00 1/0 0/0 0/0 .text cheer__14daNpcKasiKyu_cFi */
+int daNpcKasiKyu_c::cheer(int param_1) {
+ // NONMATCHING
+ switch (mMode) {
+ case -1:
+ break;
+
+ case 0:
+ /* dSv_event_flag_c::F_290 - Castle Town - Star Game 1 cleared */
+ if (daNpcF_chkEvtBit(290)) {
+ setMotion(MOT_MICH_OUEN_WAIT_B, -1.0f, 0);
+ } else {
+ setMotion(MOT_MICH_OUEN_WAIT_A, -1.0f, 0);
+ }
+
+ setLookMode(LOOK_PLAYER);
+ fopAcM_SetSpeed(this, 0.0f, 0.0f, 0.0f);
+ fopAcM_SetSpeedF(this, 0.0f);
+ mpMorf->setPlaySpeed(0.0f);
+ mTalked = false;
+ field_0x1460 = 20;
+ mMode = 1;
+ break;
+
+ case 1:
+ if (field_0x1460 > 0) {
+ field_0x1460--;
+
+ if (field_0x1460 == 0) {
+ mpMorf->setPlaySpeed(1.0f);
+ } else {
+ mpMorf->setPlaySpeed(0.0f);
+ }
+ }
+
+ cLib_chaseAngleS(&mCurAngle.y, home.angle.y, 0x400);
+ current.angle.y = mCurAngle.y;
+ shape_angle.y = mCurAngle.y;
+
+ if (dComIfGp_event_runCheck()) {
+ if (eventInfo.checkCommandTalk()) {
+ if (!dComIfGp_event_chkTalkXY() || dComIfGp_evmng_ChkPresentEnd()) {
+ mTalked = true;
+ dComIfGp_event_reset();
+ }
+ }
+ } else {
+ orderEvent(field_0x1469, l_evtNames[mOrderEvtNo], 0xFFFF, 4, 0xFF, 2);
+ }
+ break;
+ }
+
+ return 1;
+}
+
+/* 80A24CC4-80A24D10 0033E4 004C+00 3/3 0/0 0/0 .text _turn_to_link__14daNpcKasiKyu_cFs */
+BOOL daNpcKasiKyu_c::_turn_to_link(s16 param_1) {
+ cXyz pos(*fopAcM_GetPosition_p(daPy_getPlayerActorClass()));
+ return _turn_pos(pos, param_1);
+}
+
+/* 80A24D10-80A24D6C 003430 005C+00 6/6 0/0 0/0 .text _turn_pos__14daNpcKasiKyu_cFRC4cXyzs */
+BOOL daNpcKasiKyu_c::_turn_pos(cXyz const& param_1, s16 param_2) {
+ BOOL rv = cLib_chaseAngleS(&mCurAngle.y, cLib_targetAngleY(&current.pos, &param_1), param_2);
+ current.angle.y = mCurAngle.y;
+ shape_angle.y = mCurAngle.y;
+ return rv;
+}
+
+/* 80A24D6C-80A24E44 00348C 00D8+00 2/2 0/0 0/0 .text actor_front_check__14daNpcKasiKyu_cFP10fopAc_ac_c */
+BOOL daNpcKasiKyu_c::actor_front_check(fopAc_ac_c* actor_p) {
+ if (actor_p == NULL) {
+ return TRUE;
+ }
+
+ cXyz sp24(*fopAcM_GetPosition_p(actor_p));
+ cXyz sp30(sp24 - current.pos);
+ cXyz sp3c(0.0f, 0.0f, 1.0f);
+ cXyz sp48;
+ _getOffset(sp3c, sp48);
+
+ return (sp30.x * sp48.x + sp30.z * sp48.z) >= 0.0f;
+}
+
+/* 80A24E44-80A24EB0 003564 006C+00 1/1 0/0 0/0 .text _getOffset__14daNpcKasiKyu_cFRC4cXyzR4cXyz */
+void daNpcKasiKyu_c::_getOffset(cXyz const& param_1, cXyz& param_2) {
+ param_2 = param_1;
+ csXyz angle(*fopAcM_GetShapeAngle_p(this));
+ mDoMtx_stack_c::ZXYrotS(angle);
+ mDoMtx_stack_c::multVec(&param_2, &param_2);
}
-#pragma push
-#pragma force_active on
-REGISTER_CTORS(0x80A257E0, __sinit_d_a_npc_kasi_kyu_cpp);
-#pragma pop
+/* 80A24EB0-80A24ED0 0035D0 0020+00 1/0 0/0 0/0 .text daNpcKasiKyu_Create__FPv */
+static int daNpcKasiKyu_Create(void* a_this) {
+ return static_cast<daNpcKasiKyu_c*>(a_this)->Create();
+}
-/* 80A25848-80A2584C 003F68 0004+00 1/0 0/0 0/0 .text adjustShapeAngle__14daNpcKasiKyu_cFv */
-void daNpcKasiKyu_c::adjustShapeAngle() {
- /* empty function */
+/* 80A24ED0-80A24EF0 0035F0 0020+00 1/0 0/0 0/0 .text daNpcKasiKyu_Delete__FPv */
+static int daNpcKasiKyu_Delete(void* a_this) {
+ return static_cast<daNpcKasiKyu_c*>(a_this)->Delete();
}
-/* 80A2584C-80A25894 003F6C 0048+00 2/1 0/0 0/0 .text __dt__20daNpcKasiKyu_Param_cFv */
-daNpcKasiKyu_Param_c::~daNpcKasiKyu_Param_c() {
- // NONMATCHING
+/* 80A24EF0-80A24F10 003610 0020+00 1/0 0/0 0/0 .text daNpcKasiKyu_Execute__FPv */
+static int daNpcKasiKyu_Execute(void* a_this) {
+ return static_cast<daNpcKasiKyu_c*>(a_this)->Execute();
}
-/* 80A25894-80A2589C 003FB4 0008+00 1/0 0/0 0/0 .text @36@__dt__12dBgS_ObjAcchFv */
-static void func_80A25894() {
- // NONMATCHING
+/* 80A24F10-80A24F30 003630 0020+00 1/0 0/0 0/0 .text daNpcKasiKyu_Draw__FPv */
+static int daNpcKasiKyu_Draw(void* a_this) {
+ return static_cast<daNpcKasiKyu_c*>(a_this)->Draw();
}
-/* 80A2589C-80A258A4 003FBC 0008+00 1/0 0/0 0/0 .text @20@__dt__12dBgS_ObjAcchFv */
-static void func_80A2589C() {
- // NONMATCHING
+/* 80A24F30-80A24F38 003650 0008+00 1/0 0/0 0/0 .text daNpcKasiKyu_IsDelete__FPv */
+static int daNpcKasiKyu_IsDelete(void* a_this) {
+ return 1;
}
-/* ############################################################################################## */
-/* 80A2606C-80A26070 000064 0004+00 0/0 0/0 0/0 .bss
- * sInstance__40JASGlobalInstance<19JASDefaultBankTable> */
-#pragma push
-#pragma force_active on
-static u8 data_80A2606C[4];
-#pragma pop
-
-/* 80A26070-80A26074 000068 0004+00 0/0 0/0 0/0 .bss
- * sInstance__35JASGlobalInstance<14JASAudioThread> */
-#pragma push
-#pragma force_active on
-static u8 data_80A26070[4];
-#pragma pop
-
-/* 80A26074-80A26078 00006C 0004+00 0/0 0/0 0/0 .bss sInstance__27JASGlobalInstance<7Z2SeMgr> */
-#pragma push
-#pragma force_active on
-static u8 data_80A26074[4];
-#pragma pop
-
-/* 80A26078-80A2607C 000070 0004+00 0/0 0/0 0/0 .bss sInstance__28JASGlobalInstance<8Z2SeqMgr> */
-#pragma push
-#pragma force_active on
-static u8 data_80A26078[4];
-#pragma pop
-
-/* 80A2607C-80A26080 000074 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2SceneMgr>
- */
-#pragma push
-#pragma force_active on
-static u8 data_80A2607C[4];
-#pragma pop
-
-/* 80A26080-80A26084 000078 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2StatusMgr>
- */
-#pragma push
-#pragma force_active on
-static u8 data_80A26080[4];
-#pragma pop
-
-/* 80A26084-80A26088 00007C 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2DebugSys>
- */
-#pragma push
-#pragma force_active on
-static u8 data_80A26084[4];
-#pragma pop
-
-/* 80A26088-80A2608C 000080 0004+00 0/0 0/0 0/0 .bss
- * sInstance__36JASGlobalInstance<15JAISoundStarter> */
-#pragma push
-#pragma force_active on
-static u8 data_80A26088[4];
-#pragma pop
-
-/* 80A2608C-80A26090 000084 0004+00 0/0 0/0 0/0 .bss
- * sInstance__35JASGlobalInstance<14Z2SoundStarter> */
-#pragma push
-#pragma force_active on
-static u8 data_80A2608C[4];
-#pragma pop
-
-/* 80A26090-80A26094 000088 0004+00 0/0 0/0 0/0 .bss
- * sInstance__33JASGlobalInstance<12Z2SpeechMgr2> */
-#pragma push
-#pragma force_active on
-static u8 data_80A26090[4];
-#pragma pop
-
-/* 80A26094-80A26098 00008C 0004+00 0/0 0/0 0/0 .bss sInstance__28JASGlobalInstance<8JAISeMgr> */
-#pragma push
-#pragma force_active on
-static u8 data_80A26094[4];
-#pragma pop
-
-/* 80A26098-80A2609C 000090 0004+00 0/0 0/0 0/0 .bss sInstance__29JASGlobalInstance<9JAISeqMgr> */
-#pragma push
-#pragma force_active on
-static u8 data_80A26098[4];
-#pragma pop
-
-/* 80A2609C-80A260A0 000094 0004+00 0/0 0/0 0/0 .bss
- * sInstance__33JASGlobalInstance<12JAIStreamMgr> */
-#pragma push
-#pragma force_active on
-static u8 data_80A2609C[4];
-#pragma pop
-
-/* 80A260A0-80A260A4 000098 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2SoundMgr>
- */
-#pragma push
-#pragma force_active on
-static u8 data_80A260A0[4];
-#pragma pop
-
-/* 80A260A4-80A260A8 00009C 0004+00 0/0 0/0 0/0 .bss
- * sInstance__33JASGlobalInstance<12JAISoundInfo> */
-#pragma push
-#pragma force_active on
-static u8 data_80A260A4[4];
-#pragma pop
-
-/* 80A260A8-80A260AC 0000A0 0004+00 0/0 0/0 0/0 .bss
- * sInstance__34JASGlobalInstance<13JAUSoundTable> */
-#pragma push
-#pragma force_active on
-static u8 data_80A260A8[4];
-#pragma pop
-
-/* 80A260AC-80A260B0 0000A4 0004+00 0/0 0/0 0/0 .bss
- * sInstance__38JASGlobalInstance<17JAUSoundNameTable> */
-#pragma push
-#pragma force_active on
-static u8 data_80A260AC[4];
-#pragma pop
-
-/* 80A260B0-80A260B4 0000A8 0004+00 0/0 0/0 0/0 .bss
- * sInstance__33JASGlobalInstance<12JAUSoundInfo> */
-#pragma push
-#pragma force_active on
-static u8 data_80A260B0[4];
-#pragma pop
-
-/* 80A260B4-80A260B8 0000AC 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2SoundInfo>
- */
-#pragma push
-#pragma force_active on
-static u8 data_80A260B4[4];
-#pragma pop
-
-/* 80A260B8-80A260BC 0000B0 0004+00 0/0 0/0 0/0 .bss
- * sInstance__34JASGlobalInstance<13Z2SoundObjMgr> */
-#pragma push
-#pragma force_active on
-static u8 data_80A260B8[4];
-#pragma pop
-
-/* 80A260BC-80A260C0 0000B4 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2Audience>
- */
-#pragma push
-#pragma force_active on
-static u8 data_80A260BC[4];
-#pragma pop
-
-/* 80A260C0-80A260C4 0000B8 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2FxLineMgr>
- */
-#pragma push
-#pragma force_active on
-static u8 data_80A260C0[4];
-#pragma pop
-
-/* 80A260C4-80A260C8 0000BC 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2EnvSeMgr>
- */
-#pragma push
-#pragma force_active on
-static u8 data_80A260C4[4];
-#pragma pop
-
-/* 80A260C8-80A260CC 0000C0 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2SpeechMgr>
- */
-#pragma push
-#pragma force_active on
-static u8 data_80A260C8[4];
-#pragma pop
-
-/* 80A260CC-80A260D0 0000C4 0004+00 0/0 0/0 0/0 .bss
- * sInstance__34JASGlobalInstance<13Z2WolfHowlMgr> */
-#pragma push
-#pragma force_active on
-static u8 data_80A260CC[4];
-#pragma pop
-
-/* 80A25B0C-80A25B0C 000254 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
+AUDIO_INSTANCES;
+
+/* 80A25EC4-80A25EE4 -00001 0020+00 1/0 0/0 0/0 .data daNpcKasiKyu_MethodTable */
+static actor_method_class daNpcKasiKyu_MethodTable = {
+ (process_method_func)daNpcKasiKyu_Create,
+ (process_method_func)daNpcKasiKyu_Delete,
+ (process_method_func)daNpcKasiKyu_Execute,
+ (process_method_func)daNpcKasiKyu_IsDelete,
+ (process_method_func)daNpcKasiKyu_Draw,
+};
+
+/* 80A25EE4-80A25F14 -00001 0030+00 0/0 0/0 1/0 .data g_profile_NPC_KASIKYU */
+extern actor_process_profile_definition g_profile_NPC_KASIKYU = {
+ fpcLy_CURRENT_e, // mLayerID
+ 7, // mListID
+ fpcPi_CURRENT_e, // mListPrio
+ PROC_NPC_KASIKYU, // mProcName
+ &g_fpcLf_Method.base, // sub_method
+ sizeof(daNpcKasiKyu_c), // mSize
+ 0, // mSizeOther
+ 0, // mParameters
+ &g_fopAc_Method.base, // sub_method
+ 421, // mPriority
+ &daNpcKasiKyu_MethodTable, // sub_method
+ 0x00040108, // mStatus
+ fopAc_NPC_e, // mActorType
+ fopAc_CULLBOX_CUSTOM_e, // cullType
+};
diff --git a/src/d/actor/d_a_npc_kasi_mich.cpp b/src/d/actor/d_a_npc_kasi_mich.cpp
index 1f229bd7bd..fbade0d8c5 100644
--- a/src/d/actor/d_a_npc_kasi_mich.cpp
+++ b/src/d/actor/d_a_npc_kasi_mich.cpp
@@ -6,1923 +6,1468 @@
#include "d/dolzel_rel.h"
#include "d/actor/d_a_npc_kasi_mich.h"
-#include "dol2asm.h"
-
-//
-// Forward References:
-//
-
-extern "C" void __ct__15daNpcKasiMich_cFv();
-extern "C" void __dt__8cM3dGCylFv();
-extern "C" void __dt__8cM3dGAabFv();
-extern "C" void __dt__15daNpcKasiMich_cFv();
-extern "C" void Create__15daNpcKasiMich_cFv();
-extern "C" void CreateHeap__15daNpcKasiMich_cFv();
-extern "C" void Delete__15daNpcKasiMich_cFv();
-extern "C" void Execute__15daNpcKasiMich_cFv();
-extern "C" void Draw__15daNpcKasiMich_cFv();
-extern "C" void ctrlJoint__15daNpcKasiMich_cFP8J3DJointP8J3DModel();
-extern "C" void createHeapCallBack__15daNpcKasiMich_cFP10fopAc_ac_c();
-extern "C" void ctrlJointCallBack__15daNpcKasiMich_cFP8J3DJointi();
-extern "C" void setParam__15daNpcKasiMich_cFv();
-extern "C" void main__15daNpcKasiMich_cFv();
-extern "C" void setAttnPos__15daNpcKasiMich_cFv();
-extern "C" void setMotionAnm__15daNpcKasiMich_cFif();
-extern "C" void setMotion__15daNpcKasiMich_cFifi();
-extern "C" bool drawDbgInfo__15daNpcKasiMich_cFv();
-extern "C" void reset__15daNpcKasiMich_cFv();
-extern "C" void playMotion__15daNpcKasiMich_cFv();
-extern "C" void playMotionAnmLoop__15daNpcKasiMich_cFPPPQ28daNpcF_c18daNpcF_anmPlayData();
-extern "C" void setAction__15daNpcKasiMich_cFM15daNpcKasiMich_cFPCvPvi_i();
-extern "C" void setLookMode__15daNpcKasiMich_cFi();
-extern "C" void lookat__15daNpcKasiMich_cFv();
-extern "C" void step__15daNpcKasiMich_cFsi();
-extern "C" void chkFindPlayer__15daNpcKasiMich_cFv();
-extern "C" void wait__15daNpcKasiMich_cFi();
-extern "C" void fear__15daNpcKasiMich_cFi();
-extern "C" void srchWolfTag__15daNpcKasiMich_cFv();
-extern "C" void _srch_escape_tag__15daNpcKasiMich_cFPvPv();
-extern "C" void getWolfPathNearIdx__15daNpcKasiMich_cFv();
-extern "C" void chace_st__15daNpcKasiMich_cFi();
-extern "C" void chace__15daNpcKasiMich_cFi();
-extern "C" void getChacePos__15daNpcKasiMich_cFv();
-extern "C" void turn_link__15daNpcKasiMich_cFi();
-extern "C" void turn_home__15daNpcKasiMich_cFi();
-extern "C" void turn_center__15daNpcKasiMich_cFi();
-extern "C" void talk_dummy__15daNpcKasiMich_cFi();
-extern "C" void kya__15daNpcKasiMich_cFi();
-extern "C" void kya2__15daNpcKasiMich_cFi();
-extern "C" void kya_stop__15daNpcKasiMich_cFi();
-extern "C" void iyan__15daNpcKasiMich_cFi();
-extern "C" void escape__15daNpcKasiMich_cFi();
-extern "C" void iyan_look__15daNpcKasiMich_cFi();
-extern "C" void turn_hana__15daNpcKasiMich_cFi();
-extern "C" void wait_dummy__15daNpcKasiMich_cFi();
-extern "C" void cheer__15daNpcKasiMich_cFi();
-extern "C" void _turn_to_link__15daNpcKasiMich_cFs();
-extern "C" void _turn_pos__15daNpcKasiMich_cFRC4cXyzs();
-extern "C" void actor_front_check__15daNpcKasiMich_cFP10fopAc_ac_c();
-extern "C" void _getOffset__15daNpcKasiMich_cFRC4cXyzR4cXyz();
-extern "C" static void daNpcKasiMich_Create__FPv();
-extern "C" static void daNpcKasiMich_Delete__FPv();
-extern "C" static void daNpcKasiMich_Execute__FPv();
-extern "C" static void daNpcKasiMich_Draw__FPv();
-extern "C" static bool daNpcKasiMich_IsDelete__FPv();
-extern "C" void __dt__13daNpcF_Path_cFv();
-extern "C" void __dt__16daNpcF_SPCurve_cFv();
-extern "C" void __dt__18daNpcF_ActorMngr_cFv();
-extern "C" void __ct__18daNpcF_ActorMngr_cFv();
-extern "C" void __dt__15daNpcF_Lookat_cFv();
-extern "C" void __dt__5csXyzFv();
-extern "C" void __ct__5csXyzFv();
-extern "C" void __dt__4cXyzFv();
-extern "C" void __ct__4cXyzFv();
-extern "C" void __dt__8daNpcF_cFv();
-extern "C" void __ct__8daNpcF_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" bool ctrlBtk__8daNpcF_cFv();
-extern "C" void setCollisions__8daNpcF_cFv();
-extern "C" bool setExpressionAnm__8daNpcF_cFib();
-extern "C" bool setExpressionBtp__8daNpcF_cFi();
-extern "C" void setExpression__8daNpcF_cFif();
-extern "C" void drawOtherMdls__8daNpcF_cFv();
-extern "C" void __dt__10cCcD_GSttsFv();
-extern "C" void __sinit_d_a_npc_kasi_mich_cpp();
-extern "C" void adjustShapeAngle__15daNpcKasiMich_cFv();
-extern "C" void __dt__21daNpcKasiMich_Param_cFv();
-extern "C" static void func_80A2A028();
-extern "C" static void func_80A2A030();
-extern "C" u8 const m__21daNpcKasiMich_Param_c[116];
-extern "C" extern char const* const d_a_npc_kasi_mich__stringBase0;
-extern "C" u8 mEvtSeqList__15daNpcKasiMich_c[12];
-extern "C" u8 mTargetTag__15daNpcKasiMich_c[4];
-extern "C" u8 mTargetTagDist__15daNpcKasiMich_c[4];
-
-//
-// External References:
-//
-
-extern "C" void ZXYrotS__14mDoMtx_stack_cFRC5csXyz();
-extern "C" void setMorf__13mDoExt_morf_cFf();
-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 fopAc_IsActor__FPv();
-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_searchActorDistanceXZ__FPC10fopAc_ac_cPC10fopAc_ac_c();
-extern "C" void fopAcM_searchActorDistanceXZ2__FPC10fopAc_ac_cPC10fopAc_ac_c();
-extern "C" void fpcEx_Search__FPFPvPv_PvPv();
-extern "C" void dComIfG_resLoad__FP30request_of_phase_process_classPCc();
-extern "C" void dComIfG_resDelete__FP30request_of_phase_process_classPCc();
-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 ChkPresentEnd__16dEvent_manager_cFv();
-extern "C" void __ct__12dBgS_AcchCirFv();
-extern "C" void SetWall__12dBgS_AcchCirFff();
-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__18daNpcF_ActorMngr_cFv();
-extern "C" void entry__18daNpcF_ActorMngr_cFP10fopAc_ac_c();
-extern "C" void remove__18daNpcF_ActorMngr_cFv();
-extern "C" void getActorP__18daNpcF_ActorMngr_cFv();
-extern "C" void initialize__16daNpcF_SPCurve_cFP5dPathi();
-extern "C" void initialize__13daNpcF_Path_cFv();
-extern "C" void setPathInfo__13daNpcF_Path_cFUcScUc();
-extern "C" void getDstPos__13daNpcF_Path_cF4cXyzR4cXyz();
-extern "C" void initialize__15daNpcF_Lookat_cFv();
-extern "C" void setParam__15daNpcF_Lookat_cFffffffffffffsP4cXyz();
-extern "C" void calc__15daNpcF_Lookat_cFP10fopAc_ac_cPA4_fPP5csXyziii();
-extern "C" void execute__8daNpcF_cFv();
-extern "C" void draw__8daNpcF_cFiifP11_GXColorS10i();
-extern "C" void setMtx__8daNpcF_cFv();
-extern "C" void setMtx2__8daNpcF_cFv();
-extern "C" void initialize__8daNpcF_cFv();
-extern "C" void getTrnsfrmKeyAnmP__8daNpcF_cFPci();
-extern "C" void getTexPtrnAnmP__8daNpcF_cFPci();
-extern "C" void setMcaMorfAnm__8daNpcF_cFP18J3DAnmTransformKeyffiii();
-extern "C" void setBtpAnm__8daNpcF_cFP16J3DAnmTexPatternP12J3DModelDatafi();
-extern "C" void setEnvTevColor__8daNpcF_cFv();
-extern "C" void setRoomNo__8daNpcF_cFv();
-extern "C" void playMotionAnm__8daNpcF_cFPPPQ28daNpcF_c18daNpcF_anmPlayData();
-extern "C" void setLookatMtx__8daNpcF_cFiPif();
-extern "C" void orderEvent__8daNpcF_cFiPcUsUsUcUs();
-extern "C" void chkActorInSight__8daNpcF_cFP10fopAc_ac_cf();
-extern "C" void chkActorInAttnArea__8daNpcF_cFP10fopAc_ac_cP10fopAc_ac_ci();
-extern "C" void turn__8daNpcF_cFsfi();
-extern "C" void getDistTableIdx__8daNpcF_cFii();
-extern "C" void daNpcF_chkEvtBit__FUl();
-extern "C" void dKy_darkworld_check__Fv();
-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 __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 cLib_chaseAngleS__FPsss();
-extern "C" void cLib_targetAngleY__FPC3VecPC3Vec();
-extern "C" void cLib_targetAngleX__FPC4cXyzPC4cXyz();
-extern "C" void cLib_distanceAngleS__Fss();
-extern "C" void __ct__17Z2CreatureCitizenFv();
-extern "C" void __dt__17Z2CreatureCitizenFv();
-extern "C" void init__17Z2CreatureCitizenFP3VecP3VecUcUc();
-extern "C" void* __nw__FUl();
-extern "C" void __dl__FPv();
-extern "C" void init__12J3DFrameCtrlFs();
-extern "C" void __destroy_arr();
-extern "C" void __construct_array();
-extern "C" void __ptmf_test();
-extern "C" void __ptmf_scall();
-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_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__8daNpcF_c[68];
-extern "C" extern void* __vt__8daNpcF_c[18];
-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" u8 now__14mDoMtx_stack_c[48];
-extern "C" u8 mCurrentMtx__6J3DSys[48];
-extern "C" void __register_global_object();
-
-//
-// Declarations:
-//
-
-/* ############################################################################################## */
-/* 80A2A298-80A2A298 00024C 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
-#pragma push
-#pragma force_active on
-SECTION_DEAD static char const* const stringBase_80A2A298 = "kasi_mich";
-SECTION_DEAD static char const* const stringBase_80A2A2A2 = "girls";
-SECTION_DEAD static char const* const stringBase_80A2A2A8 = "Wgeneral";
-#pragma pop
+#include "Z2AudioLib/Z2Instances.h"
+
+enum kasi_mich_RES_File_ID {
+ /* BMDR */
+ /* 0x4 */ BMDR_MICH = 0x4,
+
+ /* BTP */
+ /* 0x7 */ BTP_MICH = 0x7,
+};
+
+enum girls_RES_File_ID {
+ /* BCK */
+ /* 0x3 */ BCK_MICH_IYAN_WAIT = 0x3,
+ /* 0x4 */ BCK_MICH_KYA_TALK,
+ /* 0x5 */ BCK_MICH_OUEN_WAIT_A,
+ /* 0x6 */ BCK_MICH_OUEN_WAIT_B,
+};
+
+enum Wgeneral_RES_File_ID {
+ /* BCK */
+ /* 0x03 */ BCK_W_2LADYTALK_A = 0x3,
+ /* 0x04 */ BCK_W_2LADYTALK_B,
+ /* 0x05 */ BCK_W_2NORMALTALK_A,
+ /* 0x06 */ BCK_W_2NORMALTALK_B,
+ /* 0x07 */ BCK_W_BROWSE_A,
+ /* 0x08 */ BCK_W_BROWSE_B,
+ /* 0x09 */ BCK_W_CELLME,
+ /* 0x0A */ BCK_W_LOOK_A,
+ /* 0x0B */ BCK_W_LOOK_B,
+ /* 0x0C */ BCK_W_MARO_DANCE,
+ /* 0x0D */ BCK_W_RUN_A,
+ /* 0x0E */ BCK_W_RUN_B,
+ /* 0x0F */ BCK_W_SING,
+ /* 0x10 */ BCK_W_SIT_TO_WOLF_A,
+ /* 0x11 */ BCK_W_SIT_TO_WOLF_B,
+ /* 0x12 */ BCK_W_SITTALK_A,
+ /* 0x13 */ BCK_W_SITTALK_A_B,
+ /* 0x14 */ BCK_W_SITTALK_B,
+ /* 0x15 */ BCK_W_SITTALK_B_B,
+ /* 0x16 */ BCK_W_SITWAIT_A,
+ /* 0x17 */ BCK_W_SITWAIT_B,
+ /* 0x18 */ BCK_W_SURPRISE,
+ /* 0x19 */ BCK_W_TALK_A,
+ /* 0x1A */ BCK_W_TALK_B,
+ /* 0x1B */ BCK_W_TALK_B_WALL,
+ /* 0x1C */ BCK_W_TALK_C,
+ /* 0x1D */ BCK_W_TALK_WALL,
+ /* 0x1E */ BCK_W_TO_WOLF,
+ /* 0x1F */ BCK_W_WAIT_A,
+ /* 0x20 */ BCK_W_WAIT_B,
+ /* 0x21 */ BCK_W_WAIT_WALL,
+ /* 0x22 */ BCK_W_WALK_A,
+ /* 0x23 */ BCK_W_WALK_B,
+};
+
+enum RES_Name {
+ /* 0x0 */ KASI_MICH,
+ /* 0x1 */ GIRLS,
+ /* 0x2 */ WGENERAL,
+};
+
+enum Animation {
+ /* 0x0 */ ANM_MICH_IYAN_WAIT,
+ /* 0x1 */ ANM_MICH_KYA_TALK,
+ /* 0x2 */ ANM_MICH_OUEN_WAIT_A,
+ /* 0x3 */ ANM_MICH_OUEN_WAIT_B,
+ /* 0x4 */ ANM_W_WAIT_A,
+ /* 0x5 */ ANM_W_TALK_B,
+ /* 0x6 */ ANM_W_WALK_A,
+ /* 0x7 */ ANM_W_LOOK_B,
+ /* 0x8 */ ANM_W_RUN_A,
+ /* 0x9 */ ANM_W_TO_WOLF,
+ /* 0xA */ ANM_W_SURPRISE,
+ /* 0xB */ ANM_W_WAIT_A_2,
+ /* 0xC */ ANM_W_TALK_A,
+ /* 0xD */ ANM_W_2LADYTALK_A,
+ /* 0xE */ ANM_W_2NORMALTALK_A,
+ /* 0xF */ ANM_W_2NORMALTALK_B,
+};
+
+enum Motion {
+ /* 0x0 */ MOT_MICH_KYA_TALK,
+ /* 0x1 */ MOT_MICH_IYAN_WAIT,
+ /* 0x2 */ MOT_MICH_OUEN_WAIT_A,
+ /* 0x3 */ MOT_MICH_OUEN_WAIT_B,
+ /* 0x4 */ MOT_W_WAIT_A,
+ /* 0x5 */ MOT_W_TALK_B,
+ /* 0x6 */ MOT_W_WALK_A,
+ /* 0x7 */ MOT_W_LOOK_B,
+ /* 0x8 */ MOT_W_RUN_A,
+ /* 0x9 */ MOT_W_TO_WOLF,
+ /* 0xA */ MOT_W_SURPRISE,
+ /* 0xB */ MOT_W_TALK_A,
+ /* 0xC */ MOT_W_2NORMALTALK_B
+};
+
+/* 80A2A7EC-80A2A7F0 000054 0004+00 1/1 0/0 0/0 .bss l_HIO */
+static daNpcKasiMich_Param_c l_HIO;
/* 80A2A2D4-80A2A394 000020 00C0+00 1/1 0/0 0/0 .data l_bckGetParamList */
-SECTION_DATA static u8 l_bckGetParamList[192] = {
- 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04,
- 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x02,
- 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01,
- 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x1A,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x02,
- 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02,
- 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x1E,
- 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,
- 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,
+static daNpc_GetParam2 l_bckGetParamList[16] = {
+ {BCK_MICH_IYAN_WAIT, J3DFrameCtrl::EMode_LOOP, GIRLS},
+ {BCK_MICH_KYA_TALK, J3DFrameCtrl::EMode_LOOP, GIRLS},
+ {BCK_MICH_OUEN_WAIT_A, J3DFrameCtrl::EMode_LOOP, GIRLS},
+ {BCK_MICH_OUEN_WAIT_B, J3DFrameCtrl::EMode_LOOP, GIRLS},
+ {BCK_W_WAIT_A, J3DFrameCtrl::EMode_LOOP, WGENERAL},
+ {BCK_W_TALK_B, J3DFrameCtrl::EMode_NONE, WGENERAL},
+ {BCK_W_WALK_A, J3DFrameCtrl::EMode_LOOP, WGENERAL},
+ {BCK_W_LOOK_B, J3DFrameCtrl::EMode_LOOP, WGENERAL},
+ {BCK_W_RUN_A, J3DFrameCtrl::EMode_LOOP, WGENERAL},
+ {BCK_W_TO_WOLF, J3DFrameCtrl::EMode_LOOP, WGENERAL},
+ {BCK_W_SURPRISE, J3DFrameCtrl::EMode_NONE, WGENERAL},
+ {BCK_W_WAIT_A, J3DFrameCtrl::EMode_NONE, WGENERAL},
+ {BCK_W_TALK_A, J3DFrameCtrl::EMode_NONE, WGENERAL},
+ {BCK_W_2LADYTALK_A, J3DFrameCtrl::EMode_NONE, WGENERAL},
+ {BCK_W_2NORMALTALK_A, J3DFrameCtrl::EMode_NONE, WGENERAL},
+ {BCK_W_2NORMALTALK_B, J3DFrameCtrl::EMode_NONE, WGENERAL},
};
/* 80A2A394-80A2A3A0 0000E0 000C+00 0/0 0/0 0/0 .data l_btpGetParamList */
-#pragma push
-#pragma force_active on
-SECTION_DATA static u8 l_btpGetParamList[12] = {
- 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00,
+static daNpc_GetParam2 l_btpGetParamList[1] = {
+ {BTP_MICH, J3DFrameCtrl::EMode_LOOP, KASI_MICH},
};
-#pragma pop
/* 80A2A3A0-80A2A3AC -00001 000C+00 5/6 0/0 0/0 .data l_arcNames */
-SECTION_DATA static void* l_arcNames[3] = {
- (void*)&d_a_npc_kasi_mich__stringBase0,
- (void*)(((char*)&d_a_npc_kasi_mich__stringBase0) + 0xA),
- (void*)(((char*)&d_a_npc_kasi_mich__stringBase0) + 0x10),
+static char* l_arcNames[3] = {
+ "kasi_mich",
+ "girls",
+ "Wgeneral",
};
/* 80A2A3AC-80A2A3B0 0000F8 0004+00 1/2 0/0 0/0 .data l_evtNames */
-SECTION_DATA static u8 l_evtNames[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
+static char* l_evtNames[1] = {
+ NULL
};
/* 80A2A3B0-80A2A3B4 -00001 0004+00 0/0 0/0 0/0 .data l_myName */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* l_myName = (void*)&d_a_npc_kasi_mich__stringBase0;
-#pragma pop
+static char* l_myName = "kasi_mich";
/* 80A2A3B4-80A2A3C0 000100 000C+00 1/1 0/0 0/0 .data mEvtSeqList__15daNpcKasiMich_c */
-SECTION_DATA u8 daNpcKasiMich_c::mEvtSeqList[12] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+daNpcKasiMich_c::EventFn daNpcKasiMich_c::mEvtSeqList[1] = {
+ NULL
};
-/* 80A2A3C0-80A2A3CC -00001 000C+00 0/1 0/0 0/0 .data @4365 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4365[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)wait__15daNpcKasiMich_cFi,
-};
-#pragma pop
-
-/* 80A2A3CC-80A2A3D8 -00001 000C+00 0/1 0/0 0/0 .data @4366 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4366[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)chace__15daNpcKasiMich_cFi,
-};
-#pragma pop
-
-/* 80A2A3D8-80A2A3E4 -00001 000C+00 0/1 0/0 0/0 .data @4367 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4367[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)turn_link__15daNpcKasiMich_cFi,
-};
-#pragma pop
-
-/* 80A2A3E4-80A2A3F0 -00001 000C+00 0/1 0/0 0/0 .data @4368 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4368[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)turn_home__15daNpcKasiMich_cFi,
-};
-#pragma pop
-
-/* 80A2A3F0-80A2A3FC -00001 000C+00 0/1 0/0 0/0 .data @4369 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4369[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)talk_dummy__15daNpcKasiMich_cFi,
-};
-#pragma pop
-
-/* 80A2A3FC-80A2A408 -00001 000C+00 0/1 0/0 0/0 .data @4370 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4370[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)escape__15daNpcKasiMich_cFi,
-};
-#pragma pop
-
-/* 80A2A408-80A2A414 -00001 000C+00 0/1 0/0 0/0 .data @4371 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4371[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)turn_center__15daNpcKasiMich_cFi,
-};
-#pragma pop
-
-/* 80A2A414-80A2A420 -00001 000C+00 0/1 0/0 0/0 .data @4372 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4372[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)wait_dummy__15daNpcKasiMich_cFi,
-};
-#pragma pop
-
-/* 80A2A420-80A2A42C -00001 000C+00 0/1 0/0 0/0 .data @4373 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4373[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)cheer__15daNpcKasiMich_cFi,
-};
-#pragma pop
-
-/* 80A2A42C-80A2A438 -00001 000C+00 0/1 0/0 0/0 .data @4374 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4374[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)chace_st__15daNpcKasiMich_cFi,
-};
-#pragma pop
-
-/* 80A2A438-80A2A444 -00001 000C+00 0/1 0/0 0/0 .data @4375 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4375[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)kya__15daNpcKasiMich_cFi,
-};
-#pragma pop
-
-/* 80A2A444-80A2A450 -00001 000C+00 0/1 0/0 0/0 .data @4376 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4376[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)iyan__15daNpcKasiMich_cFi,
-};
-#pragma pop
-
-/* 80A2A450-80A2A45C -00001 000C+00 0/1 0/0 0/0 .data @4377 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4377[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)kya_stop__15daNpcKasiMich_cFi,
-};
-#pragma pop
-
-/* 80A2A45C-80A2A468 -00001 000C+00 0/1 0/0 0/0 .data @4378 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4378[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)wait_dummy__15daNpcKasiMich_cFi,
-};
-#pragma pop
-
-/* 80A2A468-80A2A474 -00001 000C+00 0/1 0/0 0/0 .data @4379 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4379[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)iyan_look__15daNpcKasiMich_cFi,
-};
-#pragma pop
-
-/* 80A2A474-80A2A480 -00001 000C+00 0/1 0/0 0/0 .data @4380 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4380[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)turn_hana__15daNpcKasiMich_cFi,
-};
-#pragma pop
-
-/* 80A2A480-80A2A48C -00001 000C+00 0/1 0/0 0/0 .data @4381 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4381[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)wait_dummy__15daNpcKasiMich_cFi,
-};
-#pragma pop
-
-/* 80A2A48C-80A2A498 -00001 000C+00 0/1 0/0 0/0 .data @4382 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4382[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)kya2__15daNpcKasiMich_cFi,
-};
-#pragma pop
-
-/* 80A2A498-80A2A4A4 -00001 000C+00 0/1 0/0 0/0 .data @4383 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4383[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)fear__15daNpcKasiMich_cFi,
-};
-#pragma pop
-
-/* 80A2A4A4-80A2A594 0001F0 00F0+00 0/1 0/0 0/0 .data sSygnalAct$4364 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static u8 sSygnalAct[240] = {
- 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, 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, 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,
-};
-#pragma pop
-
-/* 80A2A594-80A2A5A0 -00001 000C+00 1/1 0/0 0/0 .data @4488 */
-SECTION_DATA static void* lit_4488[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)wait__15daNpcKasiMich_cFi,
-};
-
-/* 80A2A5A0-80A2A5AC -00001 000C+00 0/1 0/0 0/0 .data @4777 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4777[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)chace__15daNpcKasiMich_cFi,
-};
-#pragma pop
-
-/* 80A2A5AC-80A2A5B8 -00001 000C+00 0/1 0/0 0/0 .data @4780 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4780[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)turn_link__15daNpcKasiMich_cFi,
-};
-#pragma pop
-
-/* 80A2A5B8-80A2A5C4 -00001 000C+00 0/0 0/0 0/0 .data @4960 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4960[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)wait__15daNpcKasiMich_cFi,
-};
-#pragma pop
-
-/* 80A2A5C4-80A2A5D0 -00001 000C+00 0/0 0/0 0/0 .data @4968 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4968[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)wait__15daNpcKasiMich_cFi,
-};
-#pragma pop
-
-/* 80A2A5D0-80A2A5DC -00001 000C+00 0/0 0/0 0/0 .data @5003 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_5003[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)wait__15daNpcKasiMich_cFi,
-};
-#pragma pop
-
-/* 80A2A5DC-80A2A5E8 -00001 000C+00 1/1 0/0 0/0 .data @5026 */
-SECTION_DATA static void* lit_5026[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)chace__15daNpcKasiMich_cFi,
-};
-
-/* 80A2A5E8-80A2A5F4 -00001 000C+00 1/1 0/0 0/0 .data @5043 */
-SECTION_DATA static void* lit_5043[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)wait__15daNpcKasiMich_cFi,
-};
-
-/* 80A2A5F4-80A2A600 -00001 000C+00 1/1 0/0 0/0 .data @5046 */
-SECTION_DATA static void* lit_5046[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)chace_st__15daNpcKasiMich_cFi,
-};
-
-/* 80A2A600-80A2A60C -00001 000C+00 0/0 0/0 0/0 .data @5106 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_5106[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)chace__15daNpcKasiMich_cFi,
-};
-#pragma pop
-
-/* 80A2A60C-80A2A618 -00001 000C+00 1/1 0/0 0/0 .data @5120 */
-SECTION_DATA static void* lit_5120[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)wait__15daNpcKasiMich_cFi,
-};
-
-/* 80A2A618-80A2A624 -00001 000C+00 1/1 0/0 0/0 .data @5134 */
-SECTION_DATA static void* lit_5134[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)wait_dummy__15daNpcKasiMich_cFi,
-};
-
-/* 80A2A624-80A2A630 -00001 000C+00 1/1 0/0 0/0 .data @5148 */
-SECTION_DATA static void* lit_5148[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)wait_dummy__15daNpcKasiMich_cFi,
-};
-
-/* 80A2A630-80A2A63C -00001 000C+00 1/1 0/0 0/0 .data @5201 */
-SECTION_DATA static void* lit_5201[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)wait__15daNpcKasiMich_cFi,
-};
-
-/* 80A2A63C-80A2A648 -00001 000C+00 1/1 0/0 0/0 .data @5209 */
-SECTION_DATA static void* lit_5209[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)wait_dummy__15daNpcKasiMich_cFi,
-};
-
-/* 80A2A648-80A2A654 -00001 000C+00 1/1 0/0 0/0 .data @5261 */
-SECTION_DATA static void* lit_5261[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)wait_dummy__15daNpcKasiMich_cFi,
-};
-
-/* 80A2A654-80A2A674 -00001 0020+00 1/0 0/0 0/0 .data daNpcKasiMich_MethodTable */
-static actor_method_class daNpcKasiMich_MethodTable = {
- (process_method_func)daNpcKasiMich_Create__FPv,
- (process_method_func)daNpcKasiMich_Delete__FPv,
- (process_method_func)daNpcKasiMich_Execute__FPv,
- (process_method_func)daNpcKasiMich_IsDelete__FPv,
- (process_method_func)daNpcKasiMich_Draw__FPv,
-};
-
-/* 80A2A674-80A2A6A4 -00001 0030+00 0/0 0/0 1/0 .data g_profile_NPC_KASIMICH */
-extern actor_process_profile_definition g_profile_NPC_KASIMICH = {
- fpcLy_CURRENT_e, // mLayerID
- 7, // mListID
- fpcPi_CURRENT_e, // mListPrio
- PROC_NPC_KASIMICH, // mProcName
- &g_fpcLf_Method.base, // sub_method
- sizeof(daNpcKasiMich_c), // mSize
- 0, // mSizeOther
- 0, // mParameters
- &g_fopAc_Method.base, // sub_method
- 422, // mPriority
- &daNpcKasiMich_MethodTable, // sub_method
- 0x00040108, // mStatus
- fopAc_NPC_e, // mActorType
- fopAc_CULLBOX_CUSTOM_e, // cullType
-};
-
-/* 80A2A6A4-80A2A6EC 0003F0 0048+00 2/2 0/0 0/0 .data __vt__15daNpcKasiMich_c */
-SECTION_DATA extern void* __vt__15daNpcKasiMich_c[18] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__15daNpcKasiMich_cFv,
- (void*)setParam__15daNpcKasiMich_cFv,
- (void*)main__15daNpcKasiMich_cFv,
- (void*)ctrlBtk__8daNpcF_cFv,
- (void*)adjustShapeAngle__15daNpcKasiMich_cFv,
- (void*)setMtx__8daNpcF_cFv,
- (void*)setMtx2__8daNpcF_cFv,
- (void*)setAttnPos__15daNpcKasiMich_cFv,
- (void*)setCollisions__8daNpcF_cFv,
- (void*)setExpressionAnm__8daNpcF_cFib,
- (void*)setExpressionBtp__8daNpcF_cFi,
- (void*)setExpression__8daNpcF_cFif,
- (void*)setMotionAnm__15daNpcKasiMich_cFif,
- (void*)setMotion__15daNpcKasiMich_cFifi,
- (void*)drawDbgInfo__15daNpcKasiMich_cFv,
- (void*)drawOtherMdls__8daNpcF_cFv,
-};
-
-/* 80A2A6EC-80A2A6F8 000438 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,
-};
+/* 80A261CC-80A26384 0000EC 01B8+00 1/1 0/0 0/0 .text __ct__15daNpcKasiMich_cFv */
+daNpcKasiMich_c::daNpcKasiMich_c() {}
-/* 80A2A6F8-80A2A71C 000444 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_80A2A030,
- (void*)NULL,
- (void*)NULL,
- (void*)func_80A2A028,
-};
+/* 80A26414-80A26624 000334 0210+00 1/0 0/0 0/0 .text __dt__15daNpcKasiMich_cFv */
+daNpcKasiMich_c::~daNpcKasiMich_c() {
+ for (int i = 0; i < 3; i ++) {
+ dComIfG_resDelete(&mPhases[i], l_arcNames[i]);
+ }
-/* 80A2A71C-80A2A728 000468 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,
-};
+ if (heap != NULL) {
+ mpMorf->stopZelAnime();
+ }
+}
-/* 80A2A728-80A2A734 000474 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,
+/* 80A2A04C-80A2A0C0 000000 0074+00 17/17 0/0 0/0 .rodata m__21daNpcKasiMich_Param_c */
+daNpcKasiMich_HIOParam const daNpcKasiMich_Param_c::m = {
+ 55.0f,
+ -3.0f,
+ 1.0f,
+ 500.0f,
+ 216.0f,
+ 140.0f,
+ 35.0f,
+ 30.0f,
+ 0.0f,
+ 0.0f,
+ 10.0f,
+ -10.0f,
+ 30.0f,
+ -10.0f,
+ 45.0f,
+ -45.0f,
+ 0.6f,
+ 12.0f,
+ 2,
+ 6,
+ 3,
+ 6,
+ 60.0f,
+ 500.0f,
+ 300.0f,
+ -300.0f,
+ 60,
+ 0,
+ 0,
+ 0,
+ 0,
+ false,
+ false,
+ 10,
+ 16.0f,
};
-/* 80A2A734-80A2A740 000480 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,
-};
+/* 80A26624-80A268A0 000544 027C+00 1/1 0/0 0/0 .text Create__15daNpcKasiMich_cFv */
+cPhs__Step daNpcKasiMich_c::Create() {
+ fopAcM_SetupActor(this, daNpcKasiMich_c);
+
+ mType = getType();
+ mMessageNo = getMessageNo();
+
+ cPhs__Step phase = cPhs_ERROR_e;
+ for (int i = 0; i < 3; i++) {
+ phase = (cPhs__Step)dComIfG_resLoad(&mPhases[i], l_arcNames[i]);
+
+ if (phase != cPhs_COMPLEATE_e) {
+ return phase;
+ }
+ }
+
+ if (phase == cPhs_COMPLEATE_e) {
+ if (!fopAcM_entrySolidHeap(this, createHeapCallBack, 0x1940)) {
+ return cPhs_ERROR_e;
+ }
+
+ J3DModel* model = mpMorf->getModel();
+ fopAcM_SetMtx(this, mpMorf->getModel()->getBaseTRMtx());
+ fopAcM_setCullSizeBox(this, -60.0f, -10.0f, -60.0f, 60.0f, 220.0f, 60.0f);
+ mSound.init(&current.pos, &eyePos, 3, 1);
+
+ mAcchCir.SetWall(daNpcKasiMich_Param_c::m.common.width, daNpcKasiMich_Param_c::m.common.knee_length);
+ 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));
+ mAcch.CrrPos(dComIfG_Bgsp());
+ mCcStts.Init(0xFE, 0, this);
+ mCyl.Set(mCcDCyl);
+ mCyl.SetStts(&mCcStts);
+ mCyl.SetTgType(0);
+ mCyl.SetTgSPrm(0);
+ mCyl.SetH(daNpcKasiMich_Param_c::m.common.height);
+ mCyl.SetR(daNpcKasiMich_Param_c::m.common.width);
+ mGndChk = mAcch.m_gnd;
+ mGroundH = mAcch.GetGroundH();
+
+ setEnvTevColor();
+ setRoomNo();
+ reset();
+ Execute();
+ }
+
+ return phase;
+}
-/* 80A2A740-80A2A74C 00048C 000C+00 4/4 0/0 0/0 .data __vt__18daNpcF_ActorMngr_c */
-SECTION_DATA extern void* __vt__18daNpcF_ActorMngr_c[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__18daNpcF_ActorMngr_cFv,
-};
+/* 80A268A0-80A26A24 0007C0 0184+00 1/1 0/0 0/0 .text CreateHeap__15daNpcKasiMich_cFv */
+int daNpcKasiMich_c::CreateHeap() {
+ J3DModelData* mdlData_p = (J3DModelData*)dComIfG_getObjectRes(l_arcNames[0], BMDR_MICH);
-/* 80A2A74C-80A2A758 000498 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,
-};
+ JUT_ASSERT(314, 0 != mdlData_p);
-/* 80A2A758-80A2A764 0004A4 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,
-};
+ mpMorf = new mDoExt_McaMorfSO(mdlData_p, NULL, NULL, NULL, -1, 1.0f, 0, -1, &mSound, 0x80000, 0x11020084);
+ if (mpMorf != NULL && mpMorf->getModel() == NULL) {
+ mpMorf->stopZelAnime();
+ mpMorf = NULL;
+ }
-/* 80A2A764-80A2A770 0004B0 000C+00 4/4 0/0 0/0 .data __vt__16daNpcF_SPCurve_c */
-SECTION_DATA extern void* __vt__16daNpcF_SPCurve_c[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__16daNpcF_SPCurve_cFv,
-};
+ if (mpMorf == NULL) {
+ return 0;
+ }
-/* 80A2A770-80A2A77C 0004BC 000C+00 3/3 0/0 0/0 .data __vt__13daNpcF_Path_c */
-SECTION_DATA extern void* __vt__13daNpcF_Path_c[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__13daNpcF_Path_cFv,
-};
+ cXyz i_scale(1.0f, 0.8630768f, 1.0f);
+ mpMorf->offTranslate();
+ mpMorf->setTranslateScale(i_scale);
-/* 80A2A77C-80A2A788 0004C8 000C+00 3/3 0/0 0/0 .data __vt__15daNpcF_Lookat_c */
-SECTION_DATA extern void* __vt__15daNpcF_Lookat_c[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__15daNpcF_Lookat_cFv,
-};
+ J3DModel* model = mpMorf->getModel();
+ for (u16 i = 0; i < mdlData_p->getJointNum(); i++) {
+ mdlData_p->getJointNodePointer(i)->setCallBack(ctrlJointCallBack);
+ }
+ model->setUserArea((u32)this);
-/* 80A261CC-80A26384 0000EC 01B8+00 1/1 0/0 0/0 .text __ct__15daNpcKasiMich_cFv */
-daNpcKasiMich_c::daNpcKasiMich_c() {
- // NONMATCHING
-}
+ setMotion(MOT_W_WAIT_A, -1.0f, 0);
-/* 80A26384-80A263CC 0002A4 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGCylFv */
-// cM3dGCyl::~cM3dGCyl() {
-extern "C" void __dt__8cM3dGCylFv() {
- // NONMATCHING
+ return 1;
}
-/* 80A263CC-80A26414 0002EC 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGAabFv */
-// cM3dGAab::~cM3dGAab() {
-extern "C" void __dt__8cM3dGAabFv() {
- // NONMATCHING
+/* 80A26A24-80A26A58 000944 0034+00 1/1 0/0 0/0 .text Delete__15daNpcKasiMich_cFv */
+int daNpcKasiMich_c::Delete() {
+ this->~daNpcKasiMich_c();
+ return 1;
}
-/* 80A26414-80A26624 000334 0210+00 1/0 0/0 0/0 .text __dt__15daNpcKasiMich_cFv */
-daNpcKasiMich_c::~daNpcKasiMich_c() {
- // NONMATCHING
+/* 80A26A58-80A26A84 000978 002C+00 2/2 0/0 0/0 .text Execute__15daNpcKasiMich_cFv */
+int daNpcKasiMich_c::Execute() {
+ mFear = false;
+ execute();
+ return 1;
}
-/* ############################################################################################## */
-/* 80A2A04C-80A2A0C0 000000 0074+00 17/17 0/0 0/0 .rodata m__21daNpcKasiMich_Param_c */
-SECTION_RODATA u8 const daNpcKasiMich_Param_c::m[116] = {
- 0x42, 0x5C, 0x00, 0x00, 0xC0, 0x40, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x43, 0xFA, 0x00,
- 0x00, 0x43, 0x58, 0x00, 0x00, 0x43, 0x0C, 0x00, 0x00, 0x42, 0x0C, 0x00, 0x00, 0x41, 0xF0,
- 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, 0x02, 0x00,
- 0x06, 0x00, 0x03, 0x00, 0x06, 0x42, 0x70, 0x00, 0x00, 0x43, 0xFA, 0x00, 0x00, 0x43, 0x96,
- 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x41, 0x80, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80A2A04C, &daNpcKasiMich_Param_c::m);
-
-/* 80A2A0C0-80A2A0C4 000074 0004+00 0/1 0/0 0/0 .rodata @4197 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4197 = -60.0f;
-COMPILER_STRIP_GATE(0x80A2A0C0, &lit_4197);
-#pragma pop
-
-/* 80A2A0C4-80A2A0C8 000078 0004+00 0/1 0/0 0/0 .rodata @4198 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4198 = -10.0f;
-COMPILER_STRIP_GATE(0x80A2A0C4, &lit_4198);
-#pragma pop
-
-/* 80A2A0C8-80A2A0CC 00007C 0004+00 0/1 0/0 0/0 .rodata @4199 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4199 = 60.0f;
-COMPILER_STRIP_GATE(0x80A2A0C8, &lit_4199);
-#pragma pop
-
-/* 80A2A0CC-80A2A0D0 000080 0004+00 0/1 0/0 0/0 .rodata @4200 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4200 = 220.0f;
-COMPILER_STRIP_GATE(0x80A2A0CC, &lit_4200);
-#pragma pop
+/* 80A26A84-80A26AD0 0009A4 004C+00 1/1 0/0 0/0 .text Draw__15daNpcKasiMich_cFv */
+int daNpcKasiMich_c::Draw() {
+ if (!mEscape) {
+ draw(FALSE, FALSE, daNpcKasiMich_Param_c::m.common.real_shadow_size, NULL, FALSE);
+ }
-/* 80A26624-80A268A0 000544 027C+00 1/1 0/0 0/0 .text Create__15daNpcKasiMich_cFv */
-void daNpcKasiMich_c::Create() {
- // NONMATCHING
+ return 1;
}
-/* ############################################################################################## */
-/* 80A2A0D0-80A2A0D4 000084 0004+00 4/8 0/0 0/0 .rodata @4247 */
-SECTION_RODATA static f32 const lit_4247 = 1.0f;
-COMPILER_STRIP_GATE(0x80A2A0D0, &lit_4247);
+/* 80A26AD0-80A26C5C 0009F0 018C+00 1/1 0/0 0/0 .text ctrlJoint__15daNpcKasiMich_cFP8J3DJointP8J3DModel */
+int daNpcKasiMich_c::ctrlJoint(J3DJoint* i_joint, J3DModel* i_model) {
+ int jntNo = i_joint->getJntNo();
+ int i_jointList[3] = {1, 2, 3};
-/* 80A2A0D4-80A2A0D8 000088 0004+00 0/1 0/0 0/0 .rodata @4248 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u32 const lit_4248 = 0x3F5CF29A;
-COMPILER_STRIP_GATE(0x80A2A0D4, &lit_4248);
-#pragma pop
+ if (jntNo == 0) {
+ mDoMtx_stack_c::copy(mpMorf->getModel()->getAnmMtx(1));
+ mDoMtx_stack_c::multVecZero(&mLookatPos[0]);
+ mDoMtx_stack_c::copy(mpMorf->getModel()->getAnmMtx(2));
+ mDoMtx_stack_c::multVecZero(&mLookatPos[1]);
+ mDoMtx_stack_c::copy(mpMorf->getModel()->getAnmMtx(3));
+ mDoMtx_stack_c::multVecZero(&mLookatPos[2]);
+ }
-/* 80A2A0D8-80A2A0DC 00008C 0004+00 8/16 0/0 0/0 .rodata @4249 */
-SECTION_RODATA static f32 const lit_4249 = -1.0f;
-COMPILER_STRIP_GATE(0x80A2A0D8, &lit_4249);
+ mDoMtx_stack_c::copy(i_model->getAnmMtx(jntNo));
-/* 80A268A0-80A26A24 0007C0 0184+00 1/1 0/0 0/0 .text CreateHeap__15daNpcKasiMich_cFv */
-void daNpcKasiMich_c::CreateHeap() {
- // NONMATCHING
-}
+ switch (jntNo) {
+ case 1:
+ case 2:
+ case 3:
+ setLookatMtx(jntNo, i_jointList, daNpcKasiMich_Param_c::m.common.neck_rotation_ratio);
+ break;
+ }
-/* 80A26A24-80A26A58 000944 0034+00 1/1 0/0 0/0 .text Delete__15daNpcKasiMich_cFv */
-void daNpcKasiMich_c::Delete() {
- // NONMATCHING
-}
+ i_model->setAnmMtx(jntNo, mDoMtx_stack_c::get());
+ MTXCopy(mDoMtx_stack_c::get(), J3DSys::mCurrentMtx);
-/* 80A26A58-80A26A84 000978 002C+00 2/2 0/0 0/0 .text Execute__15daNpcKasiMich_cFv */
-void daNpcKasiMich_c::Execute() {
- // NONMATCHING
+ return 1;
}
-/* 80A26A84-80A26AD0 0009A4 004C+00 1/1 0/0 0/0 .text Draw__15daNpcKasiMich_cFv */
-void daNpcKasiMich_c::Draw() {
- // NONMATCHING
+/* 80A26C5C-80A26C7C 000B7C 0020+00 1/1 0/0 0/0 .text createHeapCallBack__15daNpcKasiMich_cFP10fopAc_ac_c */
+int daNpcKasiMich_c::createHeapCallBack(fopAc_ac_c* a_this) {
+ daNpcKasiMich_c* i_this = (daNpcKasiMich_c*)a_this;
+ return i_this->CreateHeap();
}
-/* ############################################################################################## */
-/* 80A2A0DC-80A2A0E8 000090 000C+00 1/1 0/0 0/0 .rodata @4270 */
-SECTION_RODATA static u8 const lit_4270[12] = {
- 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03,
-};
-COMPILER_STRIP_GATE(0x80A2A0DC, &lit_4270);
-
-/* 80A26AD0-80A26C5C 0009F0 018C+00 1/1 0/0 0/0 .text
- * ctrlJoint__15daNpcKasiMich_cFP8J3DJointP8J3DModel */
-void daNpcKasiMich_c::ctrlJoint(J3DJoint* param_0, J3DModel* param_1) {
- // NONMATCHING
-}
+/* 80A26C7C-80A26CC8 000B9C 004C+00 1/1 0/0 0/0 .text ctrlJointCallBack__15daNpcKasiMich_cFP8J3DJointi */
+int daNpcKasiMich_c::ctrlJointCallBack(J3DJoint* i_joint, int param_2) {
+ if (param_2 == 0) {
+ J3DModel* model = j3dSys.getModel();
+ daNpcKasiMich_c* i_this = (daNpcKasiMich_c*)model->getUserArea();
-/* 80A26C5C-80A26C7C 000B7C 0020+00 1/1 0/0 0/0 .text
- * createHeapCallBack__15daNpcKasiMich_cFP10fopAc_ac_c */
-void daNpcKasiMich_c::createHeapCallBack(fopAc_ac_c* param_0) {
- // NONMATCHING
-}
+ if (i_this != NULL) {
+ i_this->ctrlJoint(i_joint, model);
+ }
+ }
-/* 80A26C7C-80A26CC8 000B9C 004C+00 1/1 0/0 0/0 .text
- * ctrlJointCallBack__15daNpcKasiMich_cFP8J3DJointi */
-void daNpcKasiMich_c::ctrlJointCallBack(J3DJoint* param_0, int param_1) {
- // NONMATCHING
+ return 1;
}
/* 80A26CC8-80A26D34 000BE8 006C+00 1/0 0/0 0/0 .text setParam__15daNpcKasiMich_cFv */
void daNpcKasiMich_c::setParam() {
- // NONMATCHING
+ attention_info.distances[fopAc_attn_LOCK_e] = getDistTableIdx(daNpcKasiMich_Param_c::m.common.attention_distance, daNpcKasiMich_Param_c::m.common.attention_angle);
+ attention_info.distances[fopAc_attn_TALK_e] = attention_info.distances[fopAc_attn_LOCK_e];
+ attention_info.distances[fopAc_attn_SPEAK_e] = getDistTableIdx(daNpcKasiMich_Param_c::m.common.talk_distance, daNpcKasiMich_Param_c::m.common.talk_angle);
+ attention_info.flags = 10;
}
-/* 80A2A7E0-80A2A7EC 000048 000C+00 1/1 0/0 0/0 .bss @3807 */
-static u8 lit_3807[12];
-
-/* 80A2A7EC-80A2A7F0 000054 0004+00 1/1 0/0 0/0 .bss l_HIO */
-static u8 l_HIO[4];
-
/* 80A2A7F0-80A2A7F4 000058 0004+00 1/2 0/0 0/0 .bss mTargetTag__15daNpcKasiMich_c */
-u8 daNpcKasiMich_c::mTargetTag[4];
+daTagEscape_c* daNpcKasiMich_c::mTargetTag;
-/* 80A2A7F4-80A2A7F8 00005C 0004+00 0/1 0/0 0/0 .bss mTargetTagDist__15daNpcKasiMich_c
- */
-#pragma push
-#pragma force_active on
-u8 daNpcKasiMich_c::mTargetTagDist[4];
-#pragma pop
+/* 80A2A7F4-80A2A7F8 00005C 0004+00 0/1 0/0 0/0 .bss mTargetTagDist__15daNpcKasiMich_c */
+f32 daNpcKasiMich_c::mTargetTagDist;
/* 80A2A7F8-80A2A7FC -00001 0004+00 2/3 0/0 0/0 .bss None */
/* 80A2A7F8 0002+00 data_80A2A7F8 mWolfAngle__15daNpcKasiMich_c */
/* 80A2A7FA 0002+00 data_80A2A7FA None */
-static u8 struct_80A2A7F8[4];
+s16 daNpcKasiMich_c::mWolfAngle;
/* 80A26D34-80A26FDC 000C54 02A8+00 1/0 0/0 0/0 .text main__15daNpcKasiMich_cFv */
-void daNpcKasiMich_c::main() {
- // NONMATCHING
+BOOL daNpcKasiMich_c::main() {
+ if (mSygnal >= 0) {
+ static daNpcKasiMich_c::actionFunc sSygnalAct[20] = {
+ &daNpcKasiMich_c::wait,
+ &daNpcKasiMich_c::chace,
+ &daNpcKasiMich_c::turn_link,
+ &daNpcKasiMich_c::turn_home,
+ &daNpcKasiMich_c::talk_dummy,
+ &daNpcKasiMich_c::escape,
+ &daNpcKasiMich_c::turn_center,
+ &daNpcKasiMich_c::wait_dummy,
+ &daNpcKasiMich_c::cheer,
+ &daNpcKasiMich_c::chace_st,
+ &daNpcKasiMich_c::kya,
+ &daNpcKasiMich_c::iyan,
+ &daNpcKasiMich_c::kya_stop,
+ &daNpcKasiMich_c::wait_dummy,
+ &daNpcKasiMich_c::iyan_look,
+ NULL,
+ &daNpcKasiMich_c::turn_hana,
+ &daNpcKasiMich_c::wait_dummy,
+ &daNpcKasiMich_c::kya2,
+ &daNpcKasiMich_c::fear,
+ };
+ setAction(sSygnalAct[mSygnal]);
+ }
+
+ if (mAction) {
+ (this->*mAction)(NULL);
+ }
+
+ playMotion();
+
+ return TRUE;
}
-/* ############################################################################################## */
-/* 80A2A0E8-80A2A0EC 00009C 0004+00 0/1 0/0 0/0 .rodata @4447 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4447 = 10.0f;
-COMPILER_STRIP_GATE(0x80A2A0E8, &lit_4447);
-#pragma pop
-
-/* 80A2A0EC-80A2A0F0 0000A0 0004+00 1/3 0/0 0/0 .rodata @4448 */
-SECTION_RODATA static f32 const lit_4448 = 15.0f;
-COMPILER_STRIP_GATE(0x80A2A0EC, &lit_4448);
-
-/* 80A2A0F0-80A2A0F4 0000A4 0004+00 13/22 0/0 0/0 .rodata @4449 */
-SECTION_RODATA static u8 const lit_4449[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
-};
-COMPILER_STRIP_GATE(0x80A2A0F0, &lit_4449);
-
/* 80A26FDC-80A27184 000EFC 01A8+00 1/0 0/0 0/0 .text setAttnPos__15daNpcKasiMich_cFv */
void daNpcKasiMich_c::setAttnPos() {
- // NONMATCHING
+ if (mLookMode == LOOK_RESET) {
+ for (int i = 0; i < 3; i++) {
+ mLookatAngle[i].setall(0);
+ }
+ }
+
+ daNpcF_c::setMtx();
+ lookat();
+
+ cXyz sp1c(10.0f, 15.0f, 0.0f);
+
+ mDoMtx_stack_c::copy(mpMorf->getModel()->getAnmMtx(3));
+ mDoMtx_stack_c::multVecZero(&mHeadPos);
+ mDoMtx_stack_c::multVec(&sp1c, &eyePos);
+ sp1c.x = 0.0f;
+ mDoMtx_stack_c::multVec(&sp1c, &sp1c);
+
+ mHeadAngle.x = cLib_targetAngleX(&mHeadPos, &sp1c);
+ mHeadAngle.y = cLib_targetAngleY(&mHeadPos, &sp1c);
+ attention_info.position.set(mHeadPos.x, mHeadPos.y + daNpcKasiMich_Param_c::m.common.attention_offset, mHeadPos.z);
+
+ cXyz sp28;
+
+ mDoMtx_stack_c::copy(mpMorf->getModel()->getAnmMtx(1));
+ mDoMtx_stack_c::multVecZero(&sp28);
+ sp28.y = current.pos.y;
+ mCyl.SetC(sp28);
+ #ifdef DEBUG
+ mCyl.SetH(daNpcKasiMich_Param_c::m.common.height);
+ mCyl.SetR(daNpcKasiMich_Param_c::m.common.width);
+ #endif
+ dComIfG_Ccsp()->Set(&mCyl);
}
-/* 80A27184-80A27254 0010A4 00D0+00 1/0 0/0 0/0 .text setMotionAnm__15daNpcKasiMich_cFif
- */
-bool daNpcKasiMich_c::setMotionAnm(int param_0, f32 param_1) {
- // NONMATCHING
+/* 80A27184-80A27254 0010A4 00D0+00 1/0 0/0 0/0 .text setMotionAnm__15daNpcKasiMich_cFif */
+void daNpcKasiMich_c::setMotionAnm(int i_index, f32 i_morf) {
+ J3DAnmTransformKey* i_anm = getTrnsfrmKeyAnmP(l_arcNames[l_bckGetParamList[i_index].arcIdx], l_bckGetParamList[i_index].fileIdx);
+ int i_attr = l_bckGetParamList[i_index].attr;
+ mAnmFlags &= 0xFFFFFFF6;
+
+ if (i_anm != NULL && setMcaMorfAnm(i_anm, 1.0f, i_morf, i_attr, 0, -1)) {
+ mAnmFlags |= ANM_PLAY_MORF | ANM_PAUSE_MORF;
+ mMotionLoops = 0;
+ }
}
/* 80A27254-80A2729C 001174 0048+00 1/0 0/0 0/0 .text setMotion__15daNpcKasiMich_cFifi */
-void daNpcKasiMich_c::setMotion(int param_0, f32 param_1, int param_2) {
- // NONMATCHING
+void daNpcKasiMich_c::setMotion(int i_motion, f32 i_morf, int param_3) {
+ s16 motion = i_motion;
+ if ((param_3 != 0 || mMotion != motion) && i_motion >= 0 && i_motion < 0xD) {
+ mMotion = motion;
+ mMotionMorfOverride = i_morf;
+ mMotionPrevPhase = -1;
+ mMotionPhase = 0;
+ field_0x143e = 0;
+ }
}
/* 80A2729C-80A272A4 0011BC 0008+00 1/0 0/0 0/0 .text drawDbgInfo__15daNpcKasiMich_cFv */
-bool daNpcKasiMich_c::drawDbgInfo() {
- return false;
+BOOL daNpcKasiMich_c::drawDbgInfo() {
+ return FALSE;
}
/* 80A272A4-80A274D8 0011C4 0234+00 1/1 0/0 0/0 .text reset__15daNpcKasiMich_cFv */
void daNpcKasiMich_c::reset() {
- // NONMATCHING
+ initialize();
+ mLookat.initialize();
+
+ for (int i = 0; i < 1; i++) {
+ mActorMngr[i].initialize();
+ }
+
+ mPath.initialize();
+
+ if (mType == 0) {
+ mPath.setPathInfo(getRailNo(), fopAcM_GetRoomNo(this), 0);
+ mPath.setIdx(6);
+ } else if (mType == 1) {
+ fopAcM_OnStatus(this, fopAcM_STATUS_UNK_004000);
+ }
+
+ field_0x1430 = 0;
+ field_0x1434 = 0;
+ mAction = NULL;
+ mLookMode = -1;
+ mMode = 0;
+ current.pos.set(home.pos);
+ old.pos.set(current.pos);
+ current.angle.set(0, home.angle.y, 0);
+ old.angle = current.angle;
+ shape_angle = current.angle;
+ mCurAngle = current.angle;
+ mOldAngle = mCurAngle;
+ speedF = 0.0f;
+ speed.setall(0.0f);
+ field_0x142c = fpcM_ERROR_PROCESS_ID_e;
+ mOrderEvtNo = 0;
+
+ J3DAnmTexPattern* i_btp = getTexPtrnAnmP(l_arcNames[0], 7);
+ mAnmFlags &= 0xFFFFF57F;
+
+ if (setBtpAnm(i_btp, mpMorf->getModel()->getModelData(), 1.0f, J3DFrameCtrl::EMode_LOOP)) {
+ mAnmFlags |= ANM_FLAG_800 | ANM_PLAY_BTP | ANM_PAUSE_BTP;
+ }
+
+ mTalked = false;
+ mFear = false;
+ mEscape = false;
+ field_0x1465 = 0;
+ setAction(&daNpcKasiMich_c::wait);
+ mMotionMorfOverride = 0.0f;
}
-/* ############################################################################################## */
-/* 80A2A0F4-80A2A100 0000A8 000C+00 0/1 0/0 0/0 .rodata @4534 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4534[12] = {
- 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80A2A0F4, &lit_4534);
-#pragma pop
-
-/* 80A2A100-80A2A104 0000B4 0004+00 0/1 0/0 0/0 .rodata @4535 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4535[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
-};
-COMPILER_STRIP_GATE(0x80A2A100, &lit_4535);
-#pragma pop
-
-/* 80A2A104-80A2A110 0000B8 000C+00 0/1 0/0 0/0 .rodata @4536 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4536[12] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80A2A104, &lit_4536);
-#pragma pop
-
-/* 80A2A110-80A2A114 0000C4 0004+00 0/1 0/0 0/0 .rodata @4537 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4537[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
-};
-COMPILER_STRIP_GATE(0x80A2A110, &lit_4537);
-#pragma pop
-
-/* 80A2A114-80A2A120 0000C8 000C+00 0/1 0/0 0/0 .rodata @4538 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4538[12] = {
- 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80A2A114, &lit_4538);
-#pragma pop
-
-/* 80A2A120-80A2A124 0000D4 0004+00 0/1 0/0 0/0 .rodata @4539 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4539[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
-};
-COMPILER_STRIP_GATE(0x80A2A120, &lit_4539);
-#pragma pop
-
-/* 80A2A124-80A2A130 0000D8 000C+00 0/1 0/0 0/0 .rodata @4540 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4540[12] = {
- 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80A2A124, &lit_4540);
-#pragma pop
-
-/* 80A2A130-80A2A134 0000E4 0004+00 0/1 0/0 0/0 .rodata @4541 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4541[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
-};
-COMPILER_STRIP_GATE(0x80A2A130, &lit_4541);
-#pragma pop
-
-/* 80A2A134-80A2A140 0000E8 000C+00 0/1 0/0 0/0 .rodata @4542 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4542[12] = {
- 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80A2A134, &lit_4542);
-#pragma pop
-
-/* 80A2A140-80A2A144 0000F4 0004+00 0/1 0/0 0/0 .rodata @4543 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4543[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
-};
-COMPILER_STRIP_GATE(0x80A2A140, &lit_4543);
-#pragma pop
-
-/* 80A2A144-80A2A150 0000F8 000C+00 0/1 0/0 0/0 .rodata @4544 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4544[12] = {
- 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80A2A144, &lit_4544);
-#pragma pop
-
-/* 80A2A150-80A2A154 000104 0004+00 0/1 0/0 0/0 .rodata @4545 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4545[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
-};
-COMPILER_STRIP_GATE(0x80A2A150, &lit_4545);
-#pragma pop
-
-/* 80A2A154-80A2A160 000108 000C+00 0/1 0/0 0/0 .rodata @4546 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4546[12] = {
- 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80A2A154, &lit_4546);
-#pragma pop
-
-/* 80A2A160-80A2A164 000114 0004+00 0/1 0/0 0/0 .rodata @4547 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4547[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
-};
-COMPILER_STRIP_GATE(0x80A2A160, &lit_4547);
-#pragma pop
-
-/* 80A2A164-80A2A170 000118 000C+00 0/1 0/0 0/0 .rodata @4548 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4548[12] = {
- 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80A2A164, &lit_4548);
-#pragma pop
-
-/* 80A2A170-80A2A174 000124 0004+00 0/1 0/0 0/0 .rodata @4549 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4549[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
-};
-COMPILER_STRIP_GATE(0x80A2A170, &lit_4549);
-#pragma pop
-
-/* 80A2A174-80A2A180 000128 000C+00 0/1 0/0 0/0 .rodata @4550 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4550[12] = {
- 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80A2A174, &lit_4550);
-#pragma pop
-
-/* 80A2A180-80A2A184 000134 0004+00 0/1 0/0 0/0 .rodata @4551 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4551[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
-};
-COMPILER_STRIP_GATE(0x80A2A180, &lit_4551);
-#pragma pop
-
-/* 80A2A184-80A2A190 000138 000C+00 0/1 0/0 0/0 .rodata @4552 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4552[12] = {
- 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80A2A184, &lit_4552);
-#pragma pop
-
-/* 80A2A190-80A2A194 000144 0004+00 0/1 0/0 0/0 .rodata @4553 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4553[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
-};
-COMPILER_STRIP_GATE(0x80A2A190, &lit_4553);
-#pragma pop
-
-/* 80A2A194-80A2A1A0 000148 000C+00 0/1 0/0 0/0 .rodata @4554 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4554[12] = {
- 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80A2A194, &lit_4554);
-#pragma pop
-
-/* 80A2A1A0-80A2A1A4 000154 0004+00 0/1 0/0 0/0 .rodata @4555 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4555[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
-};
-COMPILER_STRIP_GATE(0x80A2A1A0, &lit_4555);
-#pragma pop
-
-/* 80A2A1A4-80A2A1B0 000158 000C+00 0/1 0/0 0/0 .rodata @4556 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4556[12] = {
- 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
-};
-COMPILER_STRIP_GATE(0x80A2A1A4, &lit_4556);
-#pragma pop
-
-/* 80A2A1B0-80A2A1BC 000164 000C+00 0/1 0/0 0/0 .rodata @4557 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4557[12] = {
- 0x00, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
-};
-COMPILER_STRIP_GATE(0x80A2A1B0, &lit_4557);
-#pragma pop
-
-/* 80A2A1BC-80A2A1C8 000170 000C+00 0/1 0/0 0/0 .rodata @4558 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4558[12] = {
- 0x00, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
-};
-COMPILER_STRIP_GATE(0x80A2A1BC, &lit_4558);
-#pragma pop
-
-/* 80A2A1C8-80A2A1D4 00017C 000C+00 0/1 0/0 0/0 .rodata @4559 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4559[12] = {
- 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
-};
-COMPILER_STRIP_GATE(0x80A2A1C8, &lit_4559);
-#pragma pop
-
-/* 80A2A1D4-80A2A1E0 000188 000C+00 0/1 0/0 0/0 .rodata @4560 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4560[12] = {
- 0x00, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
-};
-COMPILER_STRIP_GATE(0x80A2A1D4, &lit_4560);
-#pragma pop
-
-/* 80A2A1E0-80A2A1EC 000194 000C+00 0/1 0/0 0/0 .rodata @4561 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4561[12] = {
- 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80A2A1E0, &lit_4561);
-#pragma pop
-
-/* 80A2A1EC-80A2A204 0001A0 0018+00 0/0 0/0 0/0 .rodata @4562 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4562[24] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80A2A1EC, &lit_4562);
-#pragma pop
-
-/* 80A2A204-80A2A210 0001B8 000C+00 0/1 0/0 0/0 .rodata @4563 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4563[12] = {
- 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
-};
-COMPILER_STRIP_GATE(0x80A2A204, &lit_4563);
-#pragma pop
-
-/* 80A2A210-80A2A21C 0001C4 000C+00 0/1 0/0 0/0 .rodata @4564 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4564[12] = {
- 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80A2A210, &lit_4564);
-#pragma pop
-
-/* 80A2A21C-80A2A224 0001D0 0008+00 0/1 0/0 0/0 .rodata @4565 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4565[8] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80A2A21C, &lit_4565);
-#pragma pop
-
/* 80A274D8-80A2790C 0013F8 0434+00 1/1 0/0 0/0 .text playMotion__15daNpcKasiMich_cFv */
void daNpcKasiMich_c::playMotion() {
- // NONMATCHING
-}
-
-/* 80A2790C-80A27A84 00182C 0178+00 1/1 0/0 0/0 .text
- * playMotionAnmLoop__15daNpcKasiMich_cFPPPQ28daNpcF_c18daNpcF_anmPlayData */
-void daNpcKasiMich_c::playMotionAnmLoop(daNpcF_c::daNpcF_anmPlayData*** param_0) {
- // NONMATCHING
-}
-
-/* 80A27A84-80A27B2C 0019A4 00A8+00 10/10 0/0 0/0 .text
- * setAction__15daNpcKasiMich_cFM15daNpcKasiMich_cFPCvPvi_i */
-void daNpcKasiMich_c::setAction(int (daNpcKasiMich_c::*param_0)(int)) {
- // NONMATCHING
+ daNpcF_anmPlayData dat0 = {ANM_MICH_KYA_TALK, daNpcKasiMich_Param_c::m.common.morf_frame, 0};
+ daNpcF_anmPlayData* pDat0[1] = {&dat0};
+ daNpcF_anmPlayData dat1 = {ANM_MICH_IYAN_WAIT, daNpcKasiMich_Param_c::m.common.morf_frame, 0};
+ daNpcF_anmPlayData* pDat1[1] = {&dat1};
+ daNpcF_anmPlayData dat2 = {ANM_MICH_OUEN_WAIT_A, daNpcKasiMich_Param_c::m.common.morf_frame, 0};
+ daNpcF_anmPlayData* pDat2[1] = {&dat2};
+ daNpcF_anmPlayData dat3 = {ANM_MICH_OUEN_WAIT_B, daNpcKasiMich_Param_c::m.common.morf_frame, 0};
+ daNpcF_anmPlayData* pDat3[1] = {&dat3};
+ daNpcF_anmPlayData dat4 = {ANM_W_WAIT_A, daNpcKasiMich_Param_c::m.common.morf_frame, 0};
+ daNpcF_anmPlayData* pDat4[1] = {&dat4};
+ daNpcF_anmPlayData dat5 = {ANM_W_TALK_B, daNpcKasiMich_Param_c::m.common.morf_frame, 0};
+ daNpcF_anmPlayData* pDat5[1] = {&dat5};
+ daNpcF_anmPlayData dat6 = {ANM_W_WALK_A, daNpcKasiMich_Param_c::m.common.morf_frame, 0};
+ daNpcF_anmPlayData* pDat6[1] = {&dat6};
+ daNpcF_anmPlayData dat7 = {ANM_W_LOOK_B, daNpcKasiMich_Param_c::m.common.morf_frame, 0};
+ daNpcF_anmPlayData* pDat7[1] = {&dat7};
+ daNpcF_anmPlayData dat8 = {ANM_W_RUN_A, daNpcKasiMich_Param_c::m.common.morf_frame, 0};
+ daNpcF_anmPlayData* pDat8[1] = {&dat8};
+ daNpcF_anmPlayData dat9 = {ANM_W_TO_WOLF, daNpcKasiMich_Param_c::m.common.morf_frame, 0};
+ daNpcF_anmPlayData* pDat9[1] = {&dat9};
+ daNpcF_anmPlayData dat10 = {ANM_W_SURPRISE, daNpcKasiMich_Param_c::m.common.morf_frame, 0};
+ daNpcF_anmPlayData* pDat10[1] = {&dat10};
+ daNpcF_anmPlayData dat11a = {ANM_W_TALK_A, daNpcKasiMich_Param_c::m.common.morf_frame, 1};
+ daNpcF_anmPlayData dat11b = {ANM_W_2LADYTALK_A, daNpcKasiMich_Param_c::m.common.morf_frame, 1};
+ daNpcF_anmPlayData dat11c = {ANM_W_WAIT_A_2, daNpcKasiMich_Param_c::m.common.morf_frame, 1};
+ daNpcF_anmPlayData dat11d = {ANM_W_TALK_B, daNpcKasiMich_Param_c::m.common.morf_frame, 1};
+ daNpcF_anmPlayData dat11e = {ANM_W_WAIT_A_2, daNpcKasiMich_Param_c::m.common.morf_frame, 1};
+ daNpcF_anmPlayData dat11f = {ANM_W_2NORMALTALK_A, daNpcKasiMich_Param_c::m.common.morf_frame, 0};
+ daNpcF_anmPlayData* pDat11[6] = {&dat11a, &dat11b, &dat11c, &dat11d, &dat11e, &dat11f};
+ daNpcF_anmPlayData dat12a = {ANM_W_2NORMALTALK_B, daNpcKasiMich_Param_c::m.common.morf_frame, 1};
+ daNpcF_anmPlayData dat12b = {ANM_W_WAIT_A, daNpcKasiMich_Param_c::m.common.morf_frame, 0};
+ daNpcF_anmPlayData* pDat12[2] = {&dat12a, &dat12b};
+
+ daNpcF_anmPlayData** ppDat[13] = {
+ pDat0,
+ pDat1,
+ pDat2,
+ pDat3,
+ pDat4,
+ pDat5,
+ pDat6,
+ pDat7,
+ pDat8,
+ pDat9,
+ pDat10,
+ pDat11,
+ pDat12
+ };
+
+ if (mMotion >= 0 && mMotion < 0xD) {
+ field_0x143e = mMotionPhase;
+
+ if (mMotion == MOT_W_TALK_A) {
+ playMotionAnmLoop(ppDat);
+ } else {
+ playMotionAnm(ppDat);
+ }
+ }
+}
+
+/* 80A2790C-80A27A84 00182C 0178+00 1/1 0/0 0/0 .text playMotionAnmLoop__15daNpcKasiMich_cFPPPQ28daNpcF_c18daNpcF_anmPlayData */
+void daNpcKasiMich_c::playMotionAnmLoop(daNpcF_c::daNpcF_anmPlayData*** i_data) {
+ daNpcF_anmPlayData* playData = NULL;
+
+ if (i_data[mMotion] != NULL) {
+ playData = i_data[mMotion][mMotionPhase];
+ }
+
+ if (playData != NULL) {
+ if (mMotionPrevPhase == mMotionPhase) {
+ if (playData->numLoops > 0 && playData->numLoops <= mMotionLoops) {
+ mMotionPhase++;
+ playData = i_data[mMotion][mMotionPhase];
+ } else if (playData->numLoops == 0 && mMotionLoops >= 1) {
+ mMotionPhase = 0;
+ playData = i_data[mMotion][mMotionPhase];
+ }
+ }
+
+ if (playData != NULL && mMotionPrevPhase != mMotionPhase) {
+ setMotionAnm(playData->idx, 0.0f);
+ f32 i_morf = playData->morf;
+
+ if (mMotionPhase == 0) {
+ if (mMotion == MOT_W_TALK_A) {
+ i_morf = daNpcKasiMich_Param_c::m.common.morf_frame;
+ } else if (0.0f <= mMotionMorfOverride) {
+ i_morf = mMotionMorfOverride;
+ }
+ }
+
+ mExpressionMorf = 0.0f;
+ mpMorf->setMorf(i_morf);
+ }
+ }
+
+ mMotionPrevPhase = mMotionPhase;
+}
+
+/* 80A27A84-80A27B2C 0019A4 00A8+00 10/10 0/0 0/0 .text setAction__15daNpcKasiMich_cFM15daNpcKasiMich_cFPCvPvi_i */
+BOOL daNpcKasiMich_c::setAction(actionFunc action) {
+ mMode = -1;
+
+ if (mAction) {
+ (this->*mAction)(NULL);
+ }
+
+ mMode = 0;
+ mAction = action;
+
+ if (mAction) {
+ (this->*mAction)(NULL);
+ }
+
+ return TRUE;
}
/* 80A27B2C-80A27B50 001A4C 0024+00 8/8 0/0 0/0 .text setLookMode__15daNpcKasiMich_cFi */
-void daNpcKasiMich_c::setLookMode(int param_0) {
- // NONMATCHING
+void daNpcKasiMich_c::setLookMode(int i_lookMode) {
+ if (i_lookMode >= 0 && i_lookMode < 4 && i_lookMode != mLookMode) {
+ mLookMode = i_lookMode;
+ }
}
-/* ############################################################################################## */
-/* 80A2A224-80A2A258 0001D8 0034+00 0/0 0/0 0/0 .rodata @4566 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4566[52] = {
- 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,
-};
-COMPILER_STRIP_GATE(0x80A2A224, &lit_4566);
-#pragma pop
-
-/* 80A2A258-80A2A264 00020C 000C+00 0/1 0/0 0/0 .rodata @4647 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4647[12] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80A2A258, &lit_4647);
-#pragma pop
-
-/* 80A2A264-80A2A268 000218 0004+00 0/1 0/0 0/0 .rodata @4695 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4695 = -80.0f;
-COMPILER_STRIP_GATE(0x80A2A264, &lit_4695);
-#pragma pop
-
-/* 80A2A268-80A2A26C 00021C 0004+00 0/1 0/0 0/0 .rodata @4696 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4696 = 80.0f;
-COMPILER_STRIP_GATE(0x80A2A268, &lit_4696);
-#pragma pop
-
-/* 80A2A26C-80A2A270 000220 0004+00 0/1 0/0 0/0 .rodata @4697 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4697 = 40.0f;
-COMPILER_STRIP_GATE(0x80A2A26C, &lit_4697);
-#pragma pop
-
/* 80A27B50-80A27D30 001A70 01E0+00 1/1 0/0 0/0 .text lookat__15daNpcKasiMich_cFv */
void daNpcKasiMich_c::lookat() {
- // NONMATCHING
+ daPy_py_c* player = NULL;
+ J3DModel* model = mpMorf->getModel();
+ BOOL i_snap = FALSE;
+ f32 body_angleX_min = daNpcKasiMich_Param_c::m.common.body_angleX_min;
+ f32 body_angleX_max = daNpcKasiMich_Param_c::m.common.body_angleX_max;
+ f32 body_angleY_min = daNpcKasiMich_Param_c::m.common.body_angleY_min;
+ f32 body_angleY_max = daNpcKasiMich_Param_c::m.common.body_angleY_max;
+ f32 head_angleX_min = daNpcKasiMich_Param_c::m.common.head_angleX_min;
+ f32 head_angleX_max = daNpcKasiMich_Param_c::m.common.head_angleX_max;
+ f32 head_angleY_min = daNpcKasiMich_Param_c::m.common.head_angleY_min;
+ f32 head_angleY_max = daNpcKasiMich_Param_c::m.common.head_angleY_max;
+ s16 angle_delta = mCurAngle.y - mOldAngle.y;
+ cXyz lookatPos[3] = {mLookatPos[0], mLookatPos[1], mLookatPos[2]};
+ csXyz* lookatAngle[3] = {&mLookatAngle[0], &mLookatAngle[1], &mLookatAngle[2]};
+ cXyz spe8;
+
+ switch (mLookMode) {
+ case LOOK_NONE:
+ break;
+
+ case LOOK_RESET:
+ i_snap = TRUE;
+ break;
+
+ case LOOK_PLAYER:
+ case LOOK_PLAYER_TALK:
+ player = daPy_getPlayerActorClass();
+
+ if (mLookMode != LOOK_PLAYER_TALK) {
+ break;
+ }
+
+ head_angleY_min = -80.0f;
+ head_angleY_max = 80.0f;
+ break;
+ }
+
+ if (player != NULL) {
+ mLookPos = player->attention_info.position;
+
+ if (mLookMode != LOOK_PLAYER && mLookMode != LOOK_PLAYER_TALK) {
+ mLookPos.y -= 40.0f;
+ }
+
+ mLookat.setAttnPos(&mLookPos);
+ } else {
+ mLookat.setAttnPos(NULL);
+ }
+
+ mLookat.setParam(body_angleX_min, body_angleX_max, body_angleY_min, body_angleY_max, 0.0f, 0.0f, 0.0f, 0.0f,
+ head_angleX_min, head_angleX_max, head_angleY_min, head_angleY_max, mCurAngle.y, lookatPos);
+ mLookat.calc(this, model->getBaseTRMtx(), lookatAngle, i_snap, angle_delta, FALSE);
}
/* 80A27D30-80A27E24 001C50 00F4+00 1/1 0/0 0/0 .text step__15daNpcKasiMich_cFsi */
-void daNpcKasiMich_c::step(s16 param_0, int param_1) {
- // NONMATCHING
+BOOL daNpcKasiMich_c::step(s16 i_targetAngle, int param_2) {
+ if (mTurnMode == 0) {
+ mTurnTargetAngle = i_targetAngle;
+ mTurnAmount = 0;
+
+ if (mCurAngle.y == mTurnTargetAngle) {
+ mTurnMode++;
+ }
+
+ current.angle.y = mCurAngle.y;
+ shape_angle.y = current.angle.y;
+ mTurnMode++;
+ } else if (mTurnMode == 1) {
+ if (daNpcF_c::turn(mTurnTargetAngle, 15.0f, 0)) {
+ shape_angle.y = current.angle.y;
+ mCurAngle.y = current.angle.y;
+ mOldAngle.y = current.angle.y;
+ mTurnMode++;
+ } else {
+ shape_angle.y = current.angle.y;
+ mCurAngle.y = current.angle.y;
+ }
+ }
+
+ return mTurnMode > 1;
+}
+
+/* 80A27E24-80A27F08 001D44 00E4+00 1/1 0/0 0/0 .text chkFindPlayer__15daNpcKasiMich_cFv */
+BOOL daNpcKasiMich_c::chkFindPlayer() {
+ if (!chkActorInSight(daPy_getPlayerActorClass(), daNpcKasiMich_Param_c::m.common.fov)) {
+ mActorMngr[0].remove();
+ return FALSE;
+ }
+
+ bool rv;
+ if (mActorMngr[0].getActorP() == NULL) {
+ rv = chkPlayerInSpeakArea(this);
+ } else {
+ rv = chkPlayerInTalkArea(this);
+ }
+
+ if (rv) {
+ mActorMngr[0].entry(daPy_getPlayerActorClass());
+ } else {
+ mActorMngr[0].remove();
+ }
+
+ return rv;
}
-/* 80A27E24-80A27F08 001D44 00E4+00 1/1 0/0 0/0 .text chkFindPlayer__15daNpcKasiMich_cFv
- */
-void daNpcKasiMich_c::chkFindPlayer() {
- // NONMATCHING
-}
-
-/* ############################################################################################## */
-/* 80A2A270-80A2A274 000224 0004+00 0/1 0/0 0/0 .rodata @4830 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4830 = 450.0f;
-COMPILER_STRIP_GATE(0x80A2A270, &lit_4830);
-#pragma pop
-
-/* 80A2A274-80A2A27C 000228 0008+00 0/1 0/0 0/0 .rodata @4831 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4831[8] = {
- 0x40, 0x7F, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80A2A274, &lit_4831);
-#pragma pop
-
-/* 80A2A27C-80A2A284 000230 0008+00 0/1 0/0 0/0 .rodata @4832 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4832[8] = {
- 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80A2A27C, &lit_4832);
-#pragma pop
-
/* 80A27F08-80A282B4 001E28 03AC+00 8/0 0/0 0/0 .text wait__15daNpcKasiMich_cFi */
-void daNpcKasiMich_c::wait(int param_0) {
- // NONMATCHING
+int daNpcKasiMich_c::wait(int param_1) {
+ // NONMATCHING
+ switch (mMode) {
+ case -1:
+ break;
+
+ case 0:
+ if (mType == 0 && !field_0x1465) {
+ setMotion(MOT_W_TALK_A, -1.0f, 0);
+ } else {
+ setMotion(MOT_W_WAIT_A, -1.0f, 0);
+ }
+
+ speedF = 0.0f;
+ mMode = 1;
+ break;
+
+ case 1:
+ chkFindPlayer();
+
+ if (mActorMngr[0].getActorP() != NULL) {
+ setLookMode(LOOK_PLAYER);
+ } else if (!fopAcM_isSwitch(this, 12) && !dComIfGp_event_runCheck()) {
+ setLookMode(LOOK_NONE);
+ if (home.angle.y != mCurAngle.y && step(home.angle.y, 1)) {
+ if (mType == 0 && !field_0x1465) {
+ setMotion(MOT_W_TALK_A, -1.0f, 0);
+ } else {
+ setMotion(MOT_W_WAIT_A, -1.0f, 0);
+ }
+
+ mTurnMode = 0;
+ }
+ }
+
+ /* dSv_event_flag_c::F_290 - Castle Town - Star Game 1 cleared */
+ if (daNpcF_chkEvtBit(290) && field_0x1465 && mType == 0 && fopAcM_isSwitch(this, 12)) {
+ if (pl_front_check()) {
+ if (fopAcM_searchActorDistanceXZ(this, daPy_getPlayerActorClass()) >= 450.0f) {
+ setAction(&daNpcKasiMich_c::chace);
+ return 1;
+ }
+ } else {
+ setAction(&daNpcKasiMich_c::turn_link);
+ return 1;
+ }
+ }
+
+ if (dComIfGp_event_runCheck()) {
+ if (eventInfo.checkCommandTalk()) {
+ if (!dComIfGp_event_chkTalkXY() || dComIfGp_evmng_ChkPresentEnd()) {
+ OS_REPORT("------------------mich talk reset!!\n");
+
+ mTalked = true;
+ dComIfGp_event_reset();
+ }
+ }
+ } else {
+ if (!dKy_darkworld_check()) {
+ if (daPy_py_c::checkNowWolf()) {
+ f32 fVar1 = pow(500.0, 2.0);
+ if (fopAcM_searchPlayerDistanceXZ2(this) < fVar1) {
+ mFear = true;
+ break;
+ }
+ }
+ }
+
+ if (mOrderEvtNo != 0) {
+ eventInfo.setArchiveName(l_arcNames[0]);
+ }
+
+ orderEvent(field_0x1469, l_evtNames[mOrderEvtNo], 0xFFFF, 40, 0xFF, 1);
+ }
+ break;
+
+ default:
+ JUT_ASSERT(1301, 0);
+ break;
+ }
+
+ return 1;
}
-/* ############################################################################################## */
-/* 80A2A284-80A2A288 000238 0004+00 0/1 0/0 0/0 .rodata @4879 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4879 = 1.5f;
-COMPILER_STRIP_GATE(0x80A2A284, &lit_4879);
-#pragma pop
-
/* 80A282B4-80A28490 0021D4 01DC+00 1/0 0/0 0/0 .text fear__15daNpcKasiMich_cFi */
-void daNpcKasiMich_c::fear(int param_0) {
- // NONMATCHING
+int daNpcKasiMich_c::fear(int param_1) {
+ switch (mMode) {
+ case -1:
+ break;
+
+ case 0: {
+ daTagEscape_c* tagEscape_p = srchWolfTag();
+ if (tagEscape_p != NULL) {
+ mPath.initialize();
+ mPath.setPathInfo(tagEscape_p->getPathID(), fopAcM_GetRoomNo(this), 0);
+ mPath.setIdx(getWolfPathNearIdx());
+ mMode = 1;
+ }
+ break;
+ }
+
+ case 1:
+ if (_turn_to_link(0x1000)) {
+ setMotion(MOT_W_SURPRISE, -1.0f, 0);
+ mMode = 3;
+ }
+ break;
+
+ case 3:
+ if (mpMorf->isStop()) {
+ setMotion(MOT_W_RUN_A, -1.0f, 0);
+ fopAcM_SetSpeedF(this, 15.0f);
+ mSound.startCreatureVoice(Z2SE_MICH_V_FEAR, -1);
+ mMode = 4;
+ }
+ break;
+
+ case 4: {
+ cXyz sp28;
+ mpMorf->setPlaySpeed(1.5f);
+
+ if (mPath.getDstPos(current.pos, sp28)) {
+ mEscape = true;
+ mMode = -1;
+ } else {
+ _turn_pos(sp28, 800);
+ }
+ break;
+ }
+ }
+
+ return 1;
}
/* 80A28490-80A284F8 0023B0 0068+00 1/1 0/0 0/0 .text srchWolfTag__15daNpcKasiMich_cFv */
-void daNpcKasiMich_c::srchWolfTag() {
- // NONMATCHING
+daTagEscape_c* daNpcKasiMich_c::srchWolfTag() {
+ mTargetTag = NULL;
+ mWolfAngle = fopAcM_searchPlayerAngleY(this);
+ fpcM_Search(_srch_escape_tag, this);
+ return mTargetTag;
}
/* 80A284F8-80A285C8 002418 00D0+00 1/1 0/0 0/0 .text _srch_escape_tag__15daNpcKasiMich_cFPvPv */
-void daNpcKasiMich_c::_srch_escape_tag(void* param_0, void* param_1) {
- // NONMATCHING
+void* daNpcKasiMich_c::_srch_escape_tag(void* i_actor, void* i_data) {
+ if (!fopAcM_IsActor(i_actor)) {
+ return NULL;
+ }
+
+ if (fopAcM_GetName(i_actor) != PROC_Tag_Escape) {
+ return NULL;
+ }
+
+ int iVar1 = cLib_distanceAngleS(mWolfAngle, fopAcM_searchActorAngleY((fopAc_ac_c*)i_data, (fopAc_ac_c*)i_actor));
+
+ if (mTargetTag == NULL) {
+ mTargetTagDist = fopAcM_searchActorDistanceXZ2((fopAc_ac_c*)i_data, (fopAc_ac_c*)i_actor);
+ mTargetTag = (daTagEscape_c*)i_actor;
+ return NULL;
+ }
+
+ if (iVar1 > 0x4000) {
+ f32 fVar1 = fopAcM_searchActorDistanceXZ2((fopAc_ac_c*)i_data, (fopAc_ac_c*)i_actor);
+ if (fVar1 < mTargetTagDist) {
+ mTargetTagDist = fVar1;
+ mTargetTag = (daTagEscape_c*)i_actor;
+ }
+ }
+
+ return NULL;
}
/* 80A285C8-80A286FC 0024E8 0134+00 1/1 0/0 0/0 .text getWolfPathNearIdx__15daNpcKasiMich_cFv */
-void daNpcKasiMich_c::getWolfPathNearIdx() {
- // NONMATCHING
+int daNpcKasiMich_c::getWolfPathNearIdx() {
+ int iVar1 = 0;
+ f32 fVar1 = 0.0f;
+ u16 numPnts = mPath.getNumPnts();
+ cXyz sp44, sp50;
+
+ int rv = 0;
+ for (; rv < numPnts; rv++) {
+ sp44 = mPath.getPntPos(rv);
+ sp50 = sp44 - current.pos;
+ f32 fVar2 = sp50.abs2XZ();
+
+ if (rv == 0) {
+ fVar1 = fVar2;
+ iVar1 = 0;
+ } else if (fVar2 < fVar1) {
+ fVar1 = fVar2;
+ iVar1 = rv;
+ }
+ }
+
+ rv = iVar1 + 1;
+
+ if (iVar1 == numPnts) {
+ rv = iVar1;
+ }
+
+ return rv;
}
/* 80A286FC-80A287A0 00261C 00A4+00 2/0 0/0 0/0 .text chace_st__15daNpcKasiMich_cFi */
-void daNpcKasiMich_c::chace_st(int param_0) {
+int daNpcKasiMich_c::chace_st(int param_1) {
// NONMATCHING
-}
+ switch (mMode) {
+ case -1:
+ break;
-/* ############################################################################################## */
-/* 80A2A288-80A2A28C 00023C 0004+00 0/1 0/0 0/0 .rodata @5067 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_5067 = 14.0f;
-COMPILER_STRIP_GATE(0x80A2A288, &lit_5067);
-#pragma pop
-
-/* 80A2A28C-80A2A290 000240 0004+00 0/1 0/0 0/0 .rodata @5068 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_5068 = 400.0f;
-COMPILER_STRIP_GATE(0x80A2A28C, &lit_5068);
-#pragma pop
+ case 0:
+ field_0x1465 = true;
+ fopAcM_SetSpeedF(this, 0.0f);
+ mMode = 1;
+ break;
-/* 80A287A0-80A28910 0026C0 0170+00 4/0 0/0 0/0 .text chace__15daNpcKasiMich_cFi */
-void daNpcKasiMich_c::chace(int param_0) {
- // NONMATCHING
-}
+ case 1:
+ if (_turn_to_link(0xC00)) {
+ setAction(&daNpcKasiMich_c::chace);
+ }
+ break;
+ }
-/* 80A28910-80A289CC 002830 00BC+00 1/1 0/0 0/0 .text getChacePos__15daNpcKasiMich_cFv */
-void daNpcKasiMich_c::getChacePos() {
- // NONMATCHING
+ return 1;
}
-/* 80A289CC-80A28A8C 0028EC 00C0+00 2/0 0/0 0/0 .text turn_link__15daNpcKasiMich_cFi */
-void daNpcKasiMich_c::turn_link(int param_0) {
- // NONMATCHING
+/* 80A287A0-80A28910 0026C0 0170+00 4/0 0/0 0/0 .text chace__15daNpcKasiMich_cFi */
+int daNpcKasiMich_c::chace(int param_1) {
+ // NONMATCHING
+ switch (mMode) {
+ case -1:
+ break;
+
+ case 0:
+ setMotion(MOT_W_RUN_A, -1.0f, 0);
+ setLookMode(LOOK_NONE);
+ fopAcM_SetSpeed(this, 0.0f, 0.0f, 0.0f);
+ fopAcM_SetSpeedF(this, 14.0f);
+ field_0x1465 = 1;
+ mMode = 1;
+ break;
+
+ case 1:
+ cXyz chacePos = getChacePos();
+ _turn_pos(chacePos, 0x800);
+
+ if (pl_front_check()) {
+ if (fopAcM_searchActorDistanceXZ(this, daPy_getPlayerActorClass()) < 400.0f) {
+ setAction(&daNpcKasiMich_c::wait);
+ }
+ } else {
+ setAction(&daNpcKasiMich_c::chace_st);
+ }
+ break;
+ }
+
+ return 1;
}
-/* 80A28A8C-80A28B70 0029AC 00E4+00 1/0 0/0 0/0 .text turn_home__15daNpcKasiMich_cFi */
-void daNpcKasiMich_c::turn_home(int param_0) {
- // NONMATCHING
-}
+/* 80A28910-80A289CC 002830 00BC+00 1/1 0/0 0/0 .text getChacePos__15daNpcKasiMich_cFv */
+cXyz daNpcKasiMich_c::getChacePos() {
+ int plPoint = mPlPoint;
+ int idx = mPath.getIdx();
-/* 80A28B70-80A28C40 002A90 00D0+00 1/0 0/0 0/0 .text turn_center__15daNpcKasiMich_cFi */
-void daNpcKasiMich_c::turn_center(int param_0) {
- // NONMATCHING
-}
+ if (idx == plPoint) {
+ return *fopAcM_GetPosition_p(daPy_getPlayerActorClass());
+ }
-/* 80A28C40-80A28CB8 002B60 0078+00 1/0 0/0 0/0 .text talk_dummy__15daNpcKasiMich_cFi */
-void daNpcKasiMich_c::talk_dummy(int param_0) {
- // NONMATCHING
-}
+ if (idx < plPoint) {
+ mPath.offReverse();
+ } else if (idx > plPoint) {
+ mPath.onReverse();
+ }
-/* 80A28CB8-80A28D90 002BD8 00D8+00 1/0 0/0 0/0 .text kya__15daNpcKasiMich_cFi */
-void daNpcKasiMich_c::kya(int param_0) {
- // NONMATCHING
+ cXyz chacePos;
+ mPath.getDstPos(current.pos, chacePos);
+
+ return chacePos;
}
-/* 80A28D90-80A28E28 002CB0 0098+00 1/0 0/0 0/0 .text kya2__15daNpcKasiMich_cFi */
-void daNpcKasiMich_c::kya2(int param_0) {
+/* 80A289CC-80A28A8C 0028EC 00C0+00 2/0 0/0 0/0 .text turn_link__15daNpcKasiMich_cFi */
+int daNpcKasiMich_c::turn_link(int param_1) {
// NONMATCHING
-}
+ switch (mMode) {
+ case -1:
+ break;
-/* ############################################################################################## */
-/* 80A2A290-80A2A294 000244 0004+00 1/1 0/0 0/0 .rodata @5219 */
-SECTION_RODATA static f32 const lit_5219 = 19.0f;
-COMPILER_STRIP_GATE(0x80A2A290, &lit_5219);
+ case 0:
+ setMotion(MOT_W_WAIT_A, -1.0f, 0);
+ speedF = 0.0f;
+ mMode = 1;
+ break;
-/* 80A28E28-80A28EFC 002D48 00D4+00 1/0 0/0 0/0 .text kya_stop__15daNpcKasiMich_cFi */
-void daNpcKasiMich_c::kya_stop(int param_0) {
- // NONMATCHING
+ case 1:
+ if (_turn_to_link(0x1000)) {
+ setAction(&daNpcKasiMich_c::wait);
+ break;
+ }
+ }
+
+ return 1;
}
-/* 80A28EFC-80A28F74 002E1C 0078+00 1/0 0/0 0/0 .text iyan__15daNpcKasiMich_cFi */
-void daNpcKasiMich_c::iyan(int param_0) {
+/* 80A28A8C-80A28B70 0029AC 00E4+00 1/0 0/0 0/0 .text turn_home__15daNpcKasiMich_cFi */
+int daNpcKasiMich_c::turn_home(int param_1) {
// NONMATCHING
-}
+ switch (mMode) {
+ case -1:
+ break;
-/* ############################################################################################## */
-/* 80A2A294-80A2A298 000248 0004+00 0/1 0/0 0/0 .rodata @5251 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_5251 = 1.75f;
-COMPILER_STRIP_GATE(0x80A2A294, &lit_5251);
-#pragma pop
+ case 0:
+ setLookMode(LOOK_NONE);
+ setMotion(MOT_W_WAIT_A, -1.0f, 0);
+ speedF = 0.0f;
+ mMode = 1;
+ break;
-/* 80A28F74-80A2908C 002E94 0118+00 1/0 0/0 0/0 .text escape__15daNpcKasiMich_cFi */
-void daNpcKasiMich_c::escape(int param_0) {
- // NONMATCHING
-}
+ case 1:
+ BOOL bVar1 = cLib_chaseAngleS(&mCurAngle.y, home.angle.y, 0x1000);
+ current.angle.y = mCurAngle.y;
+ shape_angle.y = current.angle.y;
-/* 80A2908C-80A29164 002FAC 00D8+00 1/0 0/0 0/0 .text iyan_look__15daNpcKasiMich_cFi */
-void daNpcKasiMich_c::iyan_look(int param_0) {
- // NONMATCHING
-}
+ if (bVar1) {
+ setAction(&daNpcKasiMich_c::wait_dummy);
+ }
+ break;
+ }
-/* 80A29164-80A291E8 003084 0084+00 1/0 0/0 0/0 .text turn_hana__15daNpcKasiMich_cFi */
-void daNpcKasiMich_c::turn_hana(int param_0) {
- // NONMATCHING
+ return 1;
}
-/* 80A291E8-80A2926C 003108 0084+00 7/0 0/0 0/0 .text wait_dummy__15daNpcKasiMich_cFi */
-void daNpcKasiMich_c::wait_dummy(int param_0) {
+/* 80A28B70-80A28C40 002A90 00D0+00 1/0 0/0 0/0 .text turn_center__15daNpcKasiMich_cFi */
+int daNpcKasiMich_c::turn_center(int param_1) {
// NONMATCHING
-}
+ switch (mMode) {
+ case -1:
+ break;
-/* 80A2926C-80A29458 00318C 01EC+00 1/0 0/0 0/0 .text cheer__15daNpcKasiMich_cFi */
-void daNpcKasiMich_c::cheer(int param_0) {
- // NONMATCHING
-}
+ case 0:
+ setLookMode(LOOK_NONE);
+ setMotion(MOT_W_WAIT_A, -1.0f, 0);
+ speedF = 0.0f;
+ mMode = 1;
+ break;
-/* 80A29458-80A294A4 003378 004C+00 3/3 0/0 0/0 .text _turn_to_link__15daNpcKasiMich_cFs
- */
-void daNpcKasiMich_c::_turn_to_link(s16 param_0) {
- // NONMATCHING
-}
+ case 1:
+ if (_turn_pos(mCenterPos, 0x1000)) {
+ setAction(&daNpcKasiMich_c::wait_dummy);
+ }
+ break;
+ }
-/* 80A294A4-80A29500 0033C4 005C+00 5/5 0/0 0/0 .text _turn_pos__15daNpcKasiMich_cFRC4cXyzs */
-void daNpcKasiMich_c::_turn_pos(cXyz const& param_0, s16 param_1) {
- // NONMATCHING
+ return 1;
}
-/* 80A29500-80A295D8 003420 00D8+00 2/2 0/0 0/0 .text
- * actor_front_check__15daNpcKasiMich_cFP10fopAc_ac_c */
-void daNpcKasiMich_c::actor_front_check(fopAc_ac_c* param_0) {
- // NONMATCHING
-}
+/* 80A28C40-80A28CB8 002B60 0078+00 1/0 0/0 0/0 .text talk_dummy__15daNpcKasiMich_cFi */
+int daNpcKasiMich_c::talk_dummy(int param_1) {
+ switch (mMode) {
+ case -1:
+ break;
-/* 80A295D8-80A29644 0034F8 006C+00 1/1 0/0 0/0 .text _getOffset__15daNpcKasiMich_cFRC4cXyzR4cXyz
- */
-void daNpcKasiMich_c::_getOffset(cXyz const& param_0, cXyz& param_1) {
- // NONMATCHING
-}
+ case 0:
+ setMotion(MOT_MICH_KYA_TALK, -1.0f, 0);
+ speedF = 0.0f;
+ mMode = 1;
+ break;
-/* 80A29644-80A29664 003564 0020+00 1/0 0/0 0/0 .text daNpcKasiMich_Create__FPv */
-static void daNpcKasiMich_Create(void* param_0) {
- // NONMATCHING
-}
+ case 1:
+ break;
+ }
-/* 80A29664-80A29684 003584 0020+00 1/0 0/0 0/0 .text daNpcKasiMich_Delete__FPv */
-static void daNpcKasiMich_Delete(void* param_0) {
- // NONMATCHING
+ return 1;
}
-/* 80A29684-80A296A4 0035A4 0020+00 1/0 0/0 0/0 .text daNpcKasiMich_Execute__FPv */
-static void daNpcKasiMich_Execute(void* param_0) {
- // NONMATCHING
+/* 80A28CB8-80A28D90 002BD8 00D8+00 1/0 0/0 0/0 .text kya__15daNpcKasiMich_cFi */
+int daNpcKasiMich_c::kya(int param_1) {
+ switch (mMode) {
+ case -1:
+ break;
+
+ case 0:
+ setMotion(MOT_MICH_KYA_TALK, -1.0f, 0);
+ speedF = 0.0f;
+ mpMorf->setPlaySpeed(0.0f);
+ field_0x1440 = 16;
+ mMode = 1;
+ break;
+
+ case 1:
+ if (field_0x1440 > 0) {
+ field_0x1440--;
+
+ if (field_0x1440 == 0) {
+ mpMorf->setPlaySpeed(1.0f);
+ } else {
+ mpMorf->setPlaySpeed(0.0f);
+ }
+ }
+ break;
+ }
+
+ return 1;
}
-/* 80A296A4-80A296C4 0035C4 0020+00 1/0 0/0 0/0 .text daNpcKasiMich_Draw__FPv */
-static void daNpcKasiMich_Draw(void* param_0) {
- // NONMATCHING
-}
+/* 80A28D90-80A28E28 002CB0 0098+00 1/0 0/0 0/0 .text kya2__15daNpcKasiMich_cFi */
+int daNpcKasiMich_c::kya2(int param_1) {
+ switch (mMode) {
+ case -1:
+ break;
-/* 80A296C4-80A296CC 0035E4 0008+00 1/0 0/0 0/0 .text daNpcKasiMich_IsDelete__FPv */
-static bool daNpcKasiMich_IsDelete(void* param_0) {
- return true;
-}
+ case 0:
+ setMotion(MOT_MICH_KYA_TALK, -1.0f, 0);
+ setLookMode(LOOK_NONE);
+ speedF = 0.0f;
+ mpMorf->setPlaySpeed(1.0f);
+ mMode = 1;
+ break;
-/* 80A296CC-80A2972C 0035EC 0060+00 1/0 0/0 0/0 .text __dt__13daNpcF_Path_cFv */
-// daNpcF_Path_c::~daNpcF_Path_c() {
-extern "C" void __dt__13daNpcF_Path_cFv() {
- // NONMATCHING
-}
+ case 1:
+ break;
+ }
-/* 80A2972C-80A29774 00364C 0048+00 1/0 0/0 0/0 .text __dt__16daNpcF_SPCurve_cFv */
-// daNpcF_SPCurve_c::~daNpcF_SPCurve_c() {
-extern "C" void __dt__16daNpcF_SPCurve_cFv() {
- // NONMATCHING
+ return 1;
}
-/* 80A29774-80A297BC 003694 0048+00 5/4 0/0 0/0 .text __dt__18daNpcF_ActorMngr_cFv */
-// daNpcF_ActorMngr_c::~daNpcF_ActorMngr_c() {
-extern "C" void __dt__18daNpcF_ActorMngr_cFv() {
- // NONMATCHING
+/* 80A28E28-80A28EFC 002D48 00D4+00 1/0 0/0 0/0 .text kya_stop__15daNpcKasiMich_cFi */
+int daNpcKasiMich_c::kya_stop(int param_1) {
+ // NONMATCHING
+ switch (mMode) {
+ case -1:
+ break;
+
+ case 0:
+ if (mMotion != MOT_MICH_KYA_TALK) {
+ setAction(&daNpcKasiMich_c::wait);
+ } else {
+ mMode = 1;
+ }
+ break;
+
+ case 1:
+ if (mpMorf->getFrame() == 19.0f || mpMorf->getFrame() == 1.0f) {
+ setAction(&daNpcKasiMich_c::wait_dummy);
+ }
+ break;
+ }
+
+ return 1;
}
-/* 80A297BC-80A297F8 0036DC 003C+00 2/2 0/0 0/0 .text __ct__18daNpcF_ActorMngr_cFv */
-// daNpcF_ActorMngr_c::daNpcF_ActorMngr_c() {
-extern "C" void __ct__18daNpcF_ActorMngr_cFv() {
- // NONMATCHING
-}
+/* 80A28EFC-80A28F74 002E1C 0078+00 1/0 0/0 0/0 .text iyan__15daNpcKasiMich_cFi */
+int daNpcKasiMich_c::iyan(int param_1) {
+ switch (mMode) {
+ case -1:
+ break;
-/* 80A297F8-80A298C8 003718 00D0+00 1/0 0/0 0/0 .text __dt__15daNpcF_Lookat_cFv */
-// daNpcF_Lookat_c::~daNpcF_Lookat_c() {
-extern "C" void __dt__15daNpcF_Lookat_cFv() {
- // NONMATCHING
-}
+ case 0:
+ setMotion(MOT_MICH_IYAN_WAIT, -1.0f, 0);
+ speedF = 0.0f;
+ mMode = 1;
+ break;
-/* 80A298C8-80A29904 0037E8 003C+00 5/5 0/0 0/0 .text __dt__5csXyzFv */
-// csXyz::~csXyz() {
-extern "C" void __dt__5csXyzFv() {
- // NONMATCHING
+ case 1:
+ break;
+ }
+
+ return 1;
}
-/* 80A29904-80A29908 003824 0004+00 2/2 0/0 0/0 .text __ct__5csXyzFv */
-// csXyz::csXyz() {
-extern "C" void __ct__5csXyzFv() {
- /* empty function */
+/* 80A28F74-80A2908C 002E94 0118+00 1/0 0/0 0/0 .text escape__15daNpcKasiMich_cFi */
+int daNpcKasiMich_c::escape(int param_1) {
+ switch (mMode) {
+ case -1:
+ break;
+
+ case 0:
+ setMotion(MOT_W_RUN_A, -1.0f, 0);
+ fopAcM_SetSpeed(this, 0.0f, 0.0f, 0.0f);
+ fopAcM_SetSpeedF(this, 0.0f);
+ field_0x1430 = daNpcKasiMich_Param_c::m.escape_time;
+ mMode = 1;
+ break;
+
+ case 1:
+ if (--field_0x1430 <= 0) {
+ fopAcM_SetSpeedF(this, daNpcKasiMich_Param_c::m.escape_spd);
+ mSound.startCreatureVoice(Z2SE_MICH_V_FEAR, -1);
+ mMode = 2;
+ }
+ break;
+
+ case 2:
+ _turn_pos(mChacePos, 0x1000);
+ mpMorf->setPlaySpeed(1.75f);
+ break;
+ }
+
+ return 1;
}
-/* 80A29908-80A29944 003828 003C+00 5/5 0/0 0/0 .text __dt__4cXyzFv */
-// cXyz::~cXyz() {
-extern "C" void __dt__4cXyzFv() {
+/* 80A2908C-80A29164 002FAC 00D8+00 1/0 0/0 0/0 .text iyan_look__15daNpcKasiMich_cFi */
+int daNpcKasiMich_c::iyan_look(int param_1) {
// NONMATCHING
-}
+ switch (mMode) {
+ case -1:
+ break;
-/* 80A29944-80A29948 003864 0004+00 2/2 0/0 0/0 .text __ct__4cXyzFv */
-// cXyz::cXyz() {
-extern "C" void __ct__4cXyzFv() {
- /* empty function */
-}
+ case 0:
+ setMotion(MOT_MICH_IYAN_WAIT, -1.0f, 0);
+ speedF = 0.0f;
+ field_0x1440 = 86;
+ setLookMode(LOOK_NONE);
+ mMode = 1;
+ break;
-/* 80A29948-80A29B94 003868 024C+00 1/1 0/0 0/0 .text __dt__8daNpcF_cFv */
-// daNpcF_c::~daNpcF_c() {
-extern "C" void __dt__8daNpcF_cFv() {
- // NONMATCHING
-}
+ case 1:
+ field_0x1440--;
+ if (field_0x1440 == 0) {
+ setAction(&daNpcKasiMich_c::wait_dummy);
+ }
+ break;
+ }
-/* 80A29B94-80A29D84 003AB4 01F0+00 1/1 0/0 0/0 .text __ct__8daNpcF_cFv */
-// daNpcF_c::daNpcF_c() {
-extern "C" void __ct__8daNpcF_cFv() {
- // NONMATCHING
+ return 1;
}
-/* 80A29D84-80A29DF4 003CA4 0070+00 1/0 0/0 0/0 .text __dt__12dBgS_AcchCirFv */
-// dBgS_AcchCir::~dBgS_AcchCir() {
-extern "C" void __dt__12dBgS_AcchCirFv() {
- // NONMATCHING
-}
+/* 80A29164-80A291E8 003084 0084+00 1/0 0/0 0/0 .text turn_hana__15daNpcKasiMich_cFi */
+int daNpcKasiMich_c::turn_hana(int param_1) {
+ switch (mMode) {
+ case -1:
+ break;
-/* 80A29DF4-80A29E50 003D14 005C+00 1/0 0/0 0/0 .text __dt__10dCcD_GSttsFv */
-// dCcD_GStts::~dCcD_GStts() {
-extern "C" void __dt__10dCcD_GSttsFv() {
- // NONMATCHING
-}
+ case 0:
+ speedF = 0.0f;
+ setLookMode(LOOK_NONE);
+ setMotion(MOT_W_2NORMALTALK_B, -1.0f, 0);
+ mMode = 1;
+ break;
-/* 80A29E50-80A29EC0 003D70 0070+00 3/2 0/0 0/0 .text __dt__12dBgS_ObjAcchFv */
-// dBgS_ObjAcch::~dBgS_ObjAcch() {
-extern "C" void __dt__12dBgS_ObjAcchFv() {
- // NONMATCHING
-}
+ case 1:
+ break;
+ }
-/* 80A29EC0-80A29F08 003DE0 0048+00 1/0 0/0 0/0 .text __dt__12J3DFrameCtrlFv */
-// J3DFrameCtrl::~J3DFrameCtrl() {
-extern "C" void __dt__12J3DFrameCtrlFv() {
- // NONMATCHING
+ return 1;
}
-/* 80A29F08-80A29F10 003E28 0008+00 1/0 0/0 0/0 .text ctrlBtk__8daNpcF_cFv */
-// bool daNpcF_c::ctrlBtk() {
-extern "C" bool ctrlBtk__8daNpcF_cFv() {
- return false;
-}
+/* 80A291E8-80A2926C 003108 0084+00 7/0 0/0 0/0 .text wait_dummy__15daNpcKasiMich_cFi */
+int daNpcKasiMich_c::wait_dummy(int param_1) {
+ switch (mMode) {
+ case -1:
+ break;
-/* 80A29F10-80A29F14 003E30 0004+00 1/0 0/0 0/0 .text setCollisions__8daNpcF_cFv */
-// void daNpcF_c::setCollisions() {
-extern "C" void setCollisions__8daNpcF_cFv() {
- /* empty function */
-}
+ case 0:
+ setMotion(MOT_W_WAIT_A, -1.0f, 0);
+ fopAcM_SetSpeed(this, 0.0f, 0.0f, 0.0f);
+ fopAcM_SetSpeedF(this, 0.0f);
+ mMode = 1;
+ break;
-/* 80A29F14-80A29F1C 003E34 0008+00 1/0 0/0 0/0 .text setExpressionAnm__8daNpcF_cFib */
-// bool daNpcF_c::setExpressionAnm(int param_0, bool param_1) {
-extern "C" bool setExpressionAnm__8daNpcF_cFib() {
- return true;
-}
+ case 1:
+ break;
+ }
-/* 80A29F1C-80A29F24 003E3C 0008+00 1/0 0/0 0/0 .text setExpressionBtp__8daNpcF_cFi */
-// bool daNpcF_c::setExpressionBtp(int param_0) {
-extern "C" bool setExpressionBtp__8daNpcF_cFi() {
- return true;
+ return 1;
}
-/* 80A29F24-80A29F28 003E44 0004+00 1/0 0/0 0/0 .text setExpression__8daNpcF_cFif */
-// void daNpcF_c::setExpression(int param_0, f32 param_1) {
-extern "C" void setExpression__8daNpcF_cFif() {
- /* empty function */
+/* 80A2926C-80A29458 00318C 01EC+00 1/0 0/0 0/0 .text cheer__15daNpcKasiMich_cFi */
+int daNpcKasiMich_c::cheer(int param_1) {
+ // NONMATCHING
+ switch (mMode) {
+ case -1:
+ break;
+
+ case 0:
+ /* dSv_event_flag_c::F_290 - Castle Town - Star Game 1 cleared */
+ if (daNpcF_chkEvtBit(290)) {
+ setMotion(MOT_MICH_OUEN_WAIT_B, -1.0f, 0);
+ } else {
+ setMotion(MOT_MICH_OUEN_WAIT_A, -1.0f, 0);
+ }
+
+ setLookMode(LOOK_PLAYER);
+ fopAcM_SetSpeed(this, 0.0f, 0.0f, 0.0f);
+ fopAcM_SetSpeedF(this, 0.0f);
+ mpMorf->setPlaySpeed(0.0f);
+ mTalked = false;
+ field_0x1440 = 20;
+ mMode = 1;
+ break;
+
+ case 1:
+ if (field_0x1440 > 0) {
+ field_0x1440--;
+
+ if (field_0x1440 == 0) {
+ mpMorf->setPlaySpeed(1.0f);
+ } else {
+ mpMorf->setPlaySpeed(0.0f);
+ }
+ }
+
+ cLib_chaseAngleS(&mCurAngle.y, home.angle.y, 0x400);
+ current.angle.y = mCurAngle.y;
+ shape_angle.y = mCurAngle.y;
+
+ if (dComIfGp_event_runCheck()) {
+ if (eventInfo.checkCommandTalk()) {
+ if (!dComIfGp_event_chkTalkXY() || dComIfGp_evmng_ChkPresentEnd()) {
+ mTalked = true;
+ dComIfGp_event_reset();
+ }
+ }
+ } else {
+ orderEvent(field_0x1469, l_evtNames[mOrderEvtNo], 0xFFFF, 4, 0xFF, 2);
+ }
+ break;
+ }
+
+ return 1;
+}
+
+/* 80A29458-80A294A4 003378 004C+00 3/3 0/0 0/0 .text _turn_to_link__15daNpcKasiMich_cFs */
+BOOL daNpcKasiMich_c::_turn_to_link(s16 param_1) {
+ cXyz pos(*fopAcM_GetPosition_p(daPy_getPlayerActorClass()));
+ return _turn_pos(pos, param_1);
+
+}
+
+/* 80A294A4-80A29500 0033C4 005C+00 5/5 0/0 0/0 .text _turn_pos__15daNpcKasiMich_cFRC4cXyzs */
+BOOL daNpcKasiMich_c::_turn_pos(cXyz const& param_1, s16 param_2) {
+ BOOL rv = cLib_chaseAngleS(&mCurAngle.y, cLib_targetAngleY(&current.pos, &param_1), param_2);
+ current.angle.y = mCurAngle.y;
+ shape_angle.y = mCurAngle.y;
+ return rv;
+}
+
+/* 80A29500-80A295D8 003420 00D8+00 2/2 0/0 0/0 .text actor_front_check__15daNpcKasiMich_cFP10fopAc_ac_c */
+BOOL daNpcKasiMich_c::actor_front_check(fopAc_ac_c* actor_p) {
+ if (actor_p == NULL) {
+ return TRUE;
+ }
+
+ cXyz sp24(*fopAcM_GetPosition_p(actor_p));
+ cXyz sp30(sp24 - current.pos);
+ cXyz sp3c(0.0f, 0.0f, 1.0f);
+ cXyz sp48;
+ _getOffset(sp3c, sp48);
+
+ return (sp30.x * sp48.x + sp30.z * sp48.z) >= 0.0f;
+}
+
+/* 80A295D8-80A29644 0034F8 006C+00 1/1 0/0 0/0 .text _getOffset__15daNpcKasiMich_cFRC4cXyzR4cXyz */
+void daNpcKasiMich_c::_getOffset(cXyz const& param_1, cXyz& param_2) {
+ param_2 = param_1;
+ csXyz angle(*fopAcM_GetShapeAngle_p(this));
+ mDoMtx_stack_c::ZXYrotS(angle);
+ mDoMtx_stack_c::multVec(&param_2, &param_2);
}
-/* 80A29F28-80A29F2C 003E48 0004+00 1/0 0/0 0/0 .text drawOtherMdls__8daNpcF_cFv */
-// void daNpcF_c::drawOtherMdls() {
-extern "C" void drawOtherMdls__8daNpcF_cFv() {
- /* empty function */
+/* 80A29644-80A29664 003564 0020+00 1/0 0/0 0/0 .text daNpcKasiMich_Create__FPv */
+static int daNpcKasiMich_Create(void* a_this) {
+ return static_cast<daNpcKasiMich_c*>(a_this)->Create();
}
-/* 80A29F2C-80A29F74 003E4C 0048+00 1/0 0/0 0/0 .text __dt__10cCcD_GSttsFv */
-// cCcD_GStts::~cCcD_GStts() {
-extern "C" void __dt__10cCcD_GSttsFv() {
- // NONMATCHING
+/* 80A29664-80A29684 003584 0020+00 1/0 0/0 0/0 .text daNpcKasiMich_Delete__FPv */
+static int daNpcKasiMich_Delete(void* a_this) {
+ return static_cast<daNpcKasiMich_c*>(a_this)->Delete();
}
-/* ############################################################################################## */
-/* 80A2A788-80A2A794 0004D4 000C+00 2/2 0/0 0/0 .data __vt__21daNpcKasiMich_Param_c */
-SECTION_DATA extern void* __vt__21daNpcKasiMich_Param_c[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__21daNpcKasiMich_Param_cFv,
-};
-
-/* 80A29F74-80A29FDC 003E94 0068+00 0/0 1/0 0/0 .text __sinit_d_a_npc_kasi_mich_cpp */
-void __sinit_d_a_npc_kasi_mich_cpp() {
- // NONMATCHING
+/* 80A29684-80A296A4 0035A4 0020+00 1/0 0/0 0/0 .text daNpcKasiMich_Execute__FPv */
+static int daNpcKasiMich_Execute(void* a_this) {
+ return static_cast<daNpcKasiMich_c*>(a_this)->Execute();
}
-#pragma push
-#pragma force_active on
-REGISTER_CTORS(0x80A29F74, __sinit_d_a_npc_kasi_mich_cpp);
-#pragma pop
-
-/* 80A29FDC-80A29FE0 003EFC 0004+00 1/0 0/0 0/0 .text adjustShapeAngle__15daNpcKasiMich_cFv */
-void daNpcKasiMich_c::adjustShapeAngle() {
- /* empty function */
+/* 80A296A4-80A296C4 0035C4 0020+00 1/0 0/0 0/0 .text daNpcKasiMich_Draw__FPv */
+static int daNpcKasiMich_Draw(void* a_this) {
+ return static_cast<daNpcKasiMich_c*>(a_this)->Draw();
}
-/* 80A29FE0-80A2A028 003F00 0048+00 2/1 0/0 0/0 .text __dt__21daNpcKasiMich_Param_cFv */
-daNpcKasiMich_Param_c::~daNpcKasiMich_Param_c() {
- // NONMATCHING
+/* 80A296C4-80A296CC 0035E4 0008+00 1/0 0/0 0/0 .text daNpcKasiMich_IsDelete__FPv */
+static int daNpcKasiMich_IsDelete(void* a_this) {
+ return 1;
}
-/* 80A2A028-80A2A030 003F48 0008+00 1/0 0/0 0/0 .text @36@__dt__12dBgS_ObjAcchFv */
-static void func_80A2A028() {
- // NONMATCHING
-}
+AUDIO_INSTANCES;
-/* 80A2A030-80A2A038 003F50 0008+00 1/0 0/0 0/0 .text @20@__dt__12dBgS_ObjAcchFv */
-static void func_80A2A030() {
- // NONMATCHING
-}
+/* 80A2A654-80A2A674 -00001 0020+00 1/0 0/0 0/0 .data daNpcKasiMich_MethodTable */
+static actor_method_class daNpcKasiMich_MethodTable = {
+ (process_method_func)daNpcKasiMich_Create,
+ (process_method_func)daNpcKasiMich_Delete,
+ (process_method_func)daNpcKasiMich_Execute,
+ (process_method_func)daNpcKasiMich_IsDelete,
+ (process_method_func)daNpcKasiMich_Draw,
+};
-/* ############################################################################################## */
-/* 80A2A7FC-80A2A800 000064 0004+00 0/0 0/0 0/0 .bss
- * sInstance__40JASGlobalInstance<19JASDefaultBankTable> */
-#pragma push
-#pragma force_active on
-static u8 data_80A2A7FC[4];
-#pragma pop
-
-/* 80A2A800-80A2A804 000068 0004+00 0/0 0/0 0/0 .bss
- * sInstance__35JASGlobalInstance<14JASAudioThread> */
-#pragma push
-#pragma force_active on
-static u8 data_80A2A800[4];
-#pragma pop
-
-/* 80A2A804-80A2A808 00006C 0004+00 0/0 0/0 0/0 .bss sInstance__27JASGlobalInstance<7Z2SeMgr> */
-#pragma push
-#pragma force_active on
-static u8 data_80A2A804[4];
-#pragma pop
-
-/* 80A2A808-80A2A80C 000070 0004+00 0/0 0/0 0/0 .bss sInstance__28JASGlobalInstance<8Z2SeqMgr> */
-#pragma push
-#pragma force_active on
-static u8 data_80A2A808[4];
-#pragma pop
-
-/* 80A2A80C-80A2A810 000074 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2SceneMgr>
- */
-#pragma push
-#pragma force_active on
-static u8 data_80A2A80C[4];
-#pragma pop
-
-/* 80A2A810-80A2A814 000078 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2StatusMgr>
- */
-#pragma push
-#pragma force_active on
-static u8 data_80A2A810[4];
-#pragma pop
-
-/* 80A2A814-80A2A818 00007C 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2DebugSys>
- */
-#pragma push
-#pragma force_active on
-static u8 data_80A2A814[4];
-#pragma pop
-
-/* 80A2A818-80A2A81C 000080 0004+00 0/0 0/0 0/0 .bss
- * sInstance__36JASGlobalInstance<15JAISoundStarter> */
-#pragma push
-#pragma force_active on
-static u8 data_80A2A818[4];
-#pragma pop
-
-/* 80A2A81C-80A2A820 000084 0004+00 0/0 0/0 0/0 .bss
- * sInstance__35JASGlobalInstance<14Z2SoundStarter> */
-#pragma push
-#pragma force_active on
-static u8 data_80A2A81C[4];
-#pragma pop
-
-/* 80A2A820-80A2A824 000088 0004+00 0/0 0/0 0/0 .bss
- * sInstance__33JASGlobalInstance<12Z2SpeechMgr2> */
-#pragma push
-#pragma force_active on
-static u8 data_80A2A820[4];
-#pragma pop
-
-/* 80A2A824-80A2A828 00008C 0004+00 0/0 0/0 0/0 .bss sInstance__28JASGlobalInstance<8JAISeMgr> */
-#pragma push
-#pragma force_active on
-static u8 data_80A2A824[4];
-#pragma pop
-
-/* 80A2A828-80A2A82C 000090 0004+00 0/0 0/0 0/0 .bss sInstance__29JASGlobalInstance<9JAISeqMgr> */
-#pragma push
-#pragma force_active on
-static u8 data_80A2A828[4];
-#pragma pop
-
-/* 80A2A82C-80A2A830 000094 0004+00 0/0 0/0 0/0 .bss
- * sInstance__33JASGlobalInstance<12JAIStreamMgr> */
-#pragma push
-#pragma force_active on
-static u8 data_80A2A82C[4];
-#pragma pop
-
-/* 80A2A830-80A2A834 000098 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2SoundMgr>
- */
-#pragma push
-#pragma force_active on
-static u8 data_80A2A830[4];
-#pragma pop
-
-/* 80A2A834-80A2A838 00009C 0004+00 0/0 0/0 0/0 .bss
- * sInstance__33JASGlobalInstance<12JAISoundInfo> */
-#pragma push
-#pragma force_active on
-static u8 data_80A2A834[4];
-#pragma pop
-
-/* 80A2A838-80A2A83C 0000A0 0004+00 0/0 0/0 0/0 .bss
- * sInstance__34JASGlobalInstance<13JAUSoundTable> */
-#pragma push
-#pragma force_active on
-static u8 data_80A2A838[4];
-#pragma pop
-
-/* 80A2A83C-80A2A840 0000A4 0004+00 0/0 0/0 0/0 .bss
- * sInstance__38JASGlobalInstance<17JAUSoundNameTable> */
-#pragma push
-#pragma force_active on
-static u8 data_80A2A83C[4];
-#pragma pop
-
-/* 80A2A840-80A2A844 0000A8 0004+00 0/0 0/0 0/0 .bss
- * sInstance__33JASGlobalInstance<12JAUSoundInfo> */
-#pragma push
-#pragma force_active on
-static u8 data_80A2A840[4];
-#pragma pop
-
-/* 80A2A844-80A2A848 0000AC 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2SoundInfo>
- */
-#pragma push
-#pragma force_active on
-static u8 data_80A2A844[4];
-#pragma pop
-
-/* 80A2A848-80A2A84C 0000B0 0004+00 0/0 0/0 0/0 .bss
- * sInstance__34JASGlobalInstance<13Z2SoundObjMgr> */
-#pragma push
-#pragma force_active on
-static u8 data_80A2A848[4];
-#pragma pop
-
-/* 80A2A84C-80A2A850 0000B4 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2Audience>
- */
-#pragma push
-#pragma force_active on
-static u8 data_80A2A84C[4];
-#pragma pop
-
-/* 80A2A850-80A2A854 0000B8 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2FxLineMgr>
- */
-#pragma push
-#pragma force_active on
-static u8 data_80A2A850[4];
-#pragma pop
-
-/* 80A2A854-80A2A858 0000BC 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2EnvSeMgr>
- */
-#pragma push
-#pragma force_active on
-static u8 data_80A2A854[4];
-#pragma pop
-
-/* 80A2A858-80A2A85C 0000C0 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2SpeechMgr>
- */
-#pragma push
-#pragma force_active on
-static u8 data_80A2A858[4];
-#pragma pop
-
-/* 80A2A85C-80A2A860 0000C4 0004+00 0/0 0/0 0/0 .bss
- * sInstance__34JASGlobalInstance<13Z2WolfHowlMgr> */
-#pragma push
-#pragma force_active on
-static u8 data_80A2A85C[4];
-#pragma pop
-
-/* 80A2A298-80A2A298 00024C 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
+/* 80A2A674-80A2A6A4 -00001 0030+00 0/0 0/0 1/0 .data g_profile_NPC_KASIMICH */
+extern actor_process_profile_definition g_profile_NPC_KASIMICH = {
+ fpcLy_CURRENT_e, // mLayerID
+ 7, // mListID
+ fpcPi_CURRENT_e, // mListPrio
+ PROC_NPC_KASIMICH, // mProcName
+ &g_fpcLf_Method.base, // sub_method
+ sizeof(daNpcKasiMich_c), // mSize
+ 0, // mSizeOther
+ 0, // mParameters
+ &g_fopAc_Method.base, // sub_method
+ 422, // mPriority
+ &daNpcKasiMich_MethodTable, // sub_method
+ 0x00040108, // mStatus
+ fopAc_NPC_e, // mActorType
+ fopAc_CULLBOX_CUSTOM_e, // cullType
+};
diff --git a/src/d/actor/d_a_obj_kwheel00.cpp b/src/d/actor/d_a_obj_kwheel00.cpp
index ec03c2583a..82344c013c 100644
--- a/src/d/actor/d_a_obj_kwheel00.cpp
+++ b/src/d/actor/d_a_obj_kwheel00.cpp
@@ -169,7 +169,7 @@ int daObjKWheel00_c::Create() {
if(m_type == TYPE_SMALL_PLATINUM)
fopAcM_SetStatus(this, 0);
- mStts.Init(254, 0, this);
+ mStts.Init(0xFE, 0, this);
for(int i = 0; i < 4; i++) {
mLargeGearTeethSphereColliders[i].SetStts(&mStts);