summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorCaroline Madsen <69010899+randomsalience@users.noreply.github.com>2024-10-28 18:52:08 -0400
committerGitHub <noreply@github.com>2024-10-28 15:52:08 -0700
commit7f2e42ba1900c559cd9be283ff907d0b5fd6ddfc (patch)
treee3d5acc8b1d69a047814089cfbe88a34da2198a8 /src
parentb1d7bc9cc42699a20dd84e8db0d1d768346ebae3 (diff)
d_a_npc_zrc mostly done (#2228)
Diffstat (limited to 'src')
-rw-r--r--src/d/actor/d_a_npc.cpp6
-rw-r--r--src/d/actor/d_a_npc_zrc.cpp3893
2 files changed, 1648 insertions, 2251 deletions
diff --git a/src/d/actor/d_a_npc.cpp b/src/d/actor/d_a_npc.cpp
index 20b1f765c0..e6bd0adcaf 100644
--- a/src/d/actor/d_a_npc.cpp
+++ b/src/d/actor/d_a_npc.cpp
@@ -4214,7 +4214,6 @@ void daNpcF_c::setDamage(int i_timer, int i_expression, int i_motion) {
mIsDamaged = true;
}
-
/* 80153718-8015387C 14E058 0164+00 0/0 0/0 81/81 .text ctrlMsgAnm__8daNpcF_cFRiRiP10fopAc_ac_ci
*/
int daNpcF_c::ctrlMsgAnm(int& o_expression, int& o_motion, fopAc_ac_c* param_2, BOOL param_3) {
@@ -4949,11 +4948,6 @@ daNpcF_MoveBgActor_c::~daNpcF_MoveBgActor_c() {
/* empty function */
}
-/* 80155BB4-80155BB8 1504F4 0004+00 2/0 0/0 0/0 .text setCollisions__8daNpcF_cFv */
-void daNpcF_c::setCollisions() {
- /* empty function */
-}
-
/* 80155BB8-80155BBC 1504F8 0004+00 2/0 0/0 0/0 .text setAttnPos__8daNpcF_cFv */
void daNpcF_c::setAttnPos() {
/* empty function */
diff --git a/src/d/actor/d_a_npc_zrc.cpp b/src/d/actor/d_a_npc_zrc.cpp
index cecb2a44d1..27ba0562e6 100644
--- a/src/d/actor/d_a_npc_zrc.cpp
+++ b/src/d/actor/d_a_npc_zrc.cpp
@@ -4,696 +4,210 @@
*/
#include "d/actor/d_a_npc_zrc.h"
-#include "dol2asm.h"
-
-//
-// Forward References:
-//
-
-extern "C" void __ct__11daNpc_zrC_cFv();
-extern "C" void __dt__8cM3dGCylFv();
-extern "C" void __dt__8cM3dGAabFv();
-extern "C" void __dt__11daNpc_zrC_cFv();
-extern "C" void create__11daNpc_zrC_cFv();
-extern "C" void CreateHeap__11daNpc_zrC_cFv();
-extern "C" void __dt__15J3DTevKColorAnmFv();
-extern "C" void __ct__15J3DTevKColorAnmFv();
-extern "C" void __dt__14J3DTevColorAnmFv();
-extern "C" void __ct__14J3DTevColorAnmFv();
-extern "C" void __dt__11J3DTexNoAnmFv();
-extern "C" void __ct__11J3DTexNoAnmFv();
-extern "C" void __dt__12J3DTexMtxAnmFv();
-extern "C" void __ct__12J3DTexMtxAnmFv();
-extern "C" void __dt__14J3DMatColorAnmFv();
-extern "C" void __ct__14J3DMatColorAnmFv();
-extern "C" void Delete__11daNpc_zrC_cFv();
-extern "C" void Execute__11daNpc_zrC_cFv();
-extern "C" void Draw__11daNpc_zrC_cFv();
-extern "C" void ctrlJoint__11daNpc_zrC_cFP8J3DJointP8J3DModel();
-extern "C" void createHeapCallBack__11daNpc_zrC_cFP10fopAc_ac_c();
-extern "C" void ctrlJointCallBack__11daNpc_zrC_cFP8J3DJointi();
-extern "C" void setParam__11daNpc_zrC_cFv();
-extern "C" void main__11daNpc_zrC_cFv();
-extern "C" void ctrlBtk__11daNpc_zrC_cFv();
-extern "C" void setAttnPos__11daNpc_zrC_cFv();
-extern "C" void setExpressionAnm__11daNpc_zrC_cFib();
-extern "C" void setExpressionBtp__11daNpc_zrC_cFi();
-extern "C" void setExpression__11daNpc_zrC_cFif();
-extern "C" void setMotionAnm__11daNpc_zrC_cFif();
-extern "C" void setMotion__11daNpc_zrC_cFifi();
-extern "C" bool drawDbgInfo__11daNpc_zrC_cFv();
-extern "C" void drawOtherMdls__11daNpc_zrC_cFv();
-extern "C" void getTypeFromParam__11daNpc_zrC_cFv();
-extern "C" void isDelete__11daNpc_zrC_cFv();
-extern "C" void reset__11daNpc_zrC_cFv();
-extern "C" void playExpression__11daNpc_zrC_cFv();
-extern "C" void playMotion__11daNpc_zrC_cFv();
-extern "C" void playMotionAnm2__11daNpc_zrC_cFPPPQ28daNpcF_c18daNpcF_anmPlayData();
-extern "C" void chkAction__11daNpc_zrC_cFM11daNpc_zrC_cFPCvPvPv_i();
-extern "C" void setAction__11daNpc_zrC_cFM11daNpc_zrC_cFPCvPvPv_i();
-extern "C" void selectAction__11daNpc_zrC_cFv();
-extern "C" void doNormalAction__11daNpc_zrC_cFi();
-extern "C" void doEvent__11daNpc_zrC_cFv();
-extern "C" void setLookMode__11daNpc_zrC_cFi();
-extern "C" void lookat__11daNpc_zrC_cFv();
-extern "C" void setExpressionTalkAfter__11daNpc_zrC_cFv();
-extern "C" void wait__11daNpc_zrC_cFPv();
-extern "C" void waitSick__11daNpc_zrC_cFPv();
-extern "C" void waitPray__11daNpc_zrC_cFPv();
-extern "C" void waitThrone__11daNpc_zrC_cFPv();
-extern "C" void talk__11daNpc_zrC_cFPv();
-extern "C" void test__11daNpc_zrC_cFPv();
-extern "C" void ECut_earringGet__11daNpc_zrC_cFi();
-extern "C" static void daNpc_zrC_Create__FPv();
-extern "C" static void daNpc_zrC_Delete__FPv();
-extern "C" static void daNpc_zrC_Execute__FPv();
-extern "C" static void daNpc_zrC_Draw__FPv();
-extern "C" static bool daNpc_zrC_IsDelete__FPv();
-extern "C" void calc__11J3DTexNoAnmCFPUs();
-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" void setCollisions__8daNpcF_cFv();
-extern "C" void __dt__10cCcD_GSttsFv();
-extern "C" void __sinit_d_a_npc_zrc_cpp();
-extern "C" void adjustShapeAngle__11daNpc_zrC_cFv();
-extern "C" void __dt__17daNpc_zrC_Param_cFv();
-extern "C" static void func_80B931D8();
-extern "C" static void func_80B931E0();
-extern "C" u8 const m__17daNpc_zrC_Param_c[116];
-extern "C" extern char const* const d_a_npc_zrc__stringBase0;
-extern "C" void* mEvtCutNameList__11daNpc_zrC_c[2];
-extern "C" u8 mEvtCutList__11daNpc_zrC_c[24];
-
-//
-// External References:
-//
-
-extern "C" void mDoMtx_YrotS__FPA4_fs();
-extern "C" void mDoMtx_YrotM__FPA4_fs();
-extern "C" void mDoMtx_ZrotM__FPA4_fs();
-extern "C" void changeBckOnly__13mDoExt_bckAnmFP15J3DAnmTransform();
-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 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_orderChangeEventId__FP10fopAc_ac_csUsUs();
-extern "C" void fopAcM_createItemForPresentDemo__FPC4cXyziUciiPC5csXyzPC4cXyz();
-extern "C" void lineCheck__11fopAcM_lc_cFPC4cXyzPC4cXyzPC10fopAc_ac_c();
-extern "C" void gndCheck__11fopAcM_gc_cFPC4cXyz();
-extern "C" void dComIfG_resLoad__FP30request_of_phase_process_classPCc();
-extern "C" void dComIfG_resDelete__FP30request_of_phase_process_classPCc();
-extern "C" void dComIfGs_wolfeye_effect_check__Fv();
-extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci();
-extern "C" void reset__14dEvt_control_cFv();
-extern "C" void reset__14dEvt_control_cFPv();
-extern "C" void setPtI_Id__14dEvt_control_cFUi();
-extern "C" void getEventIdx__16dEvent_manager_cFP10fopAc_ac_cPCcUc();
-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 getMyActIdx__16dEvent_manager_cFiPCPCciii();
-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 SetWallR__12dBgS_AcchCirFf();
-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__15daNpcF_MatAnm_cFv();
-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 tgHitCallBack__8daNpcF_cFP10fopAc_ac_cP12dCcD_GObjInfP10fopAc_ac_cP12dCcD_GObjInf();
-extern "C" void srchAttnActor1__8daNpcF_cFPvPv();
-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 getTexSRTKeyAnmP__8daNpcF_cFPci();
-extern "C" void setMcaMorfAnm__8daNpcF_cFP18J3DAnmTransformKeyffiii();
-extern "C" void setBckAnm__8daNpcF_cFP15J3DAnmTransformfiiib();
-extern "C" void setBtpAnm__8daNpcF_cFP16J3DAnmTexPatternP12J3DModelDatafi();
-extern "C" void setBtkAnm__8daNpcF_cFP19J3DAnmTextureSRTKeyP12J3DModelDatafi();
-extern "C" void setEnvTevColor__8daNpcF_cFv();
-extern "C" void setRoomNo__8daNpcF_cFv();
-extern "C" void playExpressionAnm__8daNpcF_cFPPPQ28daNpcF_c18daNpcF_anmPlayData();
-extern "C" void setLookatMtx__8daNpcF_cFiPif();
-extern "C" void hitChk2__8daNpcF_cFP8dCcD_Cylii();
-extern "C" void setDamage__8daNpcF_cFiii();
-extern "C" void ctrlMsgAnm__8daNpcF_cFRiRiP10fopAc_ac_ci();
-extern "C" void orderEvent__8daNpcF_cFiPcUsUsUcUs();
-extern "C" void changeEvent__8daNpcF_cFPcPcUsUs();
-extern "C" void initTalk__8daNpcF_cFiPP10fopAc_ac_c();
-extern "C" void talkProc__8daNpcF_cFPiiPP10fopAc_ac_c();
-extern "C" void step__8daNpcF_cFsiii();
-extern "C" void setAngle__8daNpcF_cFs();
-extern "C" void getDistTableIdx__8daNpcF_cFii();
-extern "C" void getAttnActorP__8daNpcF_cFiPFPvPv_Pvffffsii();
-extern "C" void chkFindPlayer2__8daNpcF_cFis();
-extern "C" void daNpcF_chkEvtBit__FUl();
-extern "C" void daNpcF_offTmpBit__FUl();
-extern "C" void checkNowWolfEyeUp__9daPy_py_cFv();
-extern "C" void dKy_darkworld_check__Fv();
-extern "C" void __ct__10dMsgFlow_cFv();
-extern "C" void __dt__10dMsgFlow_cFv();
-extern "C" void getEventId__10dMsgFlow_cFPi();
-extern "C" void Set__4cCcSFP8cCcD_Obj();
-extern "C" void __mi__4cXyzCFRC3Vec();
-extern "C" void cM_atan2s__Fff();
-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_addCalc2__FPffff();
-extern "C" void cLib_chaseS__FPsss();
-extern "C" void cLib_targetAngleY__FPC3VecPC3Vec();
-extern "C" void cLib_targetAngleX__FPC4cXyzPC4cXyz();
-extern "C" void subBgmStart__8Z2SeqMgrFUl();
-extern "C" void subBgmStop__8Z2SeqMgrFv();
-extern "C" void __ct__10Z2CreatureFv();
-extern "C" void __dt__10Z2CreatureFv();
-extern "C" void init__10Z2CreatureFP3VecP3VecUcUc();
-extern "C" void* __nw__FUl();
-extern "C" void __dl__FPv();
-extern "C" void init__12J3DFrameCtrlFs();
-extern "C" void getTexNo__16J3DAnmTexPatternCFUsPUs();
-extern "C" void initialize__14J3DMaterialAnmFv();
-extern "C" void __destroy_arr();
-extern "C" void __construct_array();
-extern "C" void __ptmf_test();
-extern "C" void __ptmf_cmpr();
-extern "C" void __ptmf_scall();
-extern "C" void _savegpr_24();
-extern "C" void _savegpr_26();
-extern "C" void _savegpr_27();
-extern "C" void _savegpr_28();
-extern "C" void _savegpr_29();
-extern "C" void _restgpr_24();
-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__15daNpcF_MatAnm_c[4 + 6 /* padding */];
-extern "C" extern void* __vt__12cCcD_CylAttr[25];
-extern "C" extern void* __vt__14cCcD_ShapeAttr[22];
-extern "C" extern void* __vt__9cCcD_Stts[8];
-extern "C" extern void* __vt__14J3DMaterialAnm[4];
-extern "C" u8 now__14mDoMtx_stack_c[48];
-extern "C" u8 mCurrentMtx__6J3DSys[48];
-extern "C" u8 sincosTable___5JMath[65536];
-extern "C" f32 mGroundY__11fopAcM_gc_c;
-extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
-extern "C" void __register_global_object();
-
-//
-// Declarations:
-//
-
-/* ############################################################################################## */
-/* 80B9369C-80B9369C 0004A0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
-#pragma push
-#pragma force_active on
-SECTION_DEAD static char const* const stringBase_80B9369C = "EARRING_GET";
-SECTION_DEAD static char const* const stringBase_80B936A8 = "zrC";
-SECTION_DEAD static char const* const stringBase_80B936AC = "zrC1";
-SECTION_DEAD static char const* const stringBase_80B936B1 = "zrC2";
-SECTION_DEAD static char const* const stringBase_80B936B6 = "zrC_MDL";
-SECTION_DEAD static char const* const stringBase_80B936BE = "zrC_TW";
-SECTION_DEAD static char const* const stringBase_80B936C5 = "zrC_Sick";
-SECTION_DEAD static char const* const stringBase_80B936CE = "zrC_EGD";
-SECTION_DEAD static char const* const stringBase_80B936D6 = "";
-#pragma pop
-
-/* 80B936E8-80B936F4 000000 000C+00 4/4 0/0 0/0 .data cNullVec__6Z2Calc */
-SECTION_DATA static u8 cNullVec__6Z2Calc[12] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
+#include "SSystem/SComponent/c_math.h"
+#include "JSystem/J3DGraphBase/J3DMaterial.h"
+#include "Z2AudioLib/Z2Instances.h"
+
+UNK_REL_DATA
+
+UNK_BSS(1109)
+UNK_BSS(1107)
+UNK_BSS(1105)
+UNK_BSS(1104)
+UNK_BSS(1099)
+UNK_BSS(1097)
+UNK_BSS(1095)
+UNK_BSS(1094)
+UNK_BSS(1057)
+UNK_BSS(1055)
+UNK_BSS(1053)
+UNK_BSS(1052)
+UNK_BSS(1014)
+UNK_BSS(1012)
+UNK_BSS(1010)
+UNK_BSS(1009)
+
+/* 80B93C5C-80B93C60 000054 0004+00 1/1 0/0 0/0 .bss l_HIO */
+static daNpc_zrC_Param_c l_HIO;
-/* 80B936F4-80B93708 00000C 0004+10 0/0 0/0 0/0 .data @1787 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static u32 lit_1787[1 + 4 /* padding */] = {
- 0x02000201,
- /* padding */
- 0x40080000,
- 0x00000000,
- 0x3FE00000,
- 0x00000000,
+/* 80B931FC-80B93270 000000 0074+00 15/15 0/0 0/0 .rodata m__17daNpc_zrC_Param_c */
+daNpc_zrC_Param_c::param const daNpc_zrC_Param_c::m = {
+ 50.0f, // mAttnOffsetY
+ -3.0f, // mGravity
+ 1.0f, // mScale
+ 600.0f, // mShadowDepth
+ 255.0f, // mCcWeight
+ 140.0f, // mCylH
+ 0.0f, // mWallH
+ 30.0f, // mWallR
+ 0.0f, // mBodyUpAngle
+ 0.0f, // mBodyDownAngle
+ 10.0f, // mBodyLeftAngle
+ -10.0f, // mBodyRightAngle
+ 30.0f, // mHeadUpAngle
+ -10.0f, // mHeadDownAngle
+ 45.0f, // mHeadLeftAngle
+ -45.0f, // mHeadRightAngle
+ 0.6f, // mNeckAngleScl
+ 12.0f, // mMorfFrames
+ 3, // mSpeakDistIdx
+ 6, // mSpeakAngleIdx
+ 5, // mTalkDistIdx
+ 6, // mTalkAngleIdx
+ 80.0f, // mAttnFovY
+ 500.0f, // mAttnRadius
+ 300.0f, // mAttnUpperY
+ -300.0f, // mAttnLowerY
+ 60,
+ 8, // mDamageTimer
+ 0, // mTestExpression
+ 0, // mTestMotion
+ 0, // mTestLookMode
+ false, // mTest
+ 350.0f,
+ 2300.0f,
};
-#pragma pop
/* 80B93708-80B93718 000020 0010+00 1/1 0/0 0/0 .data l_bmdGetParamList */
-SECTION_DATA static u8 l_bmdGetParamList[16] = {
- 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04,
+static daNpc_GetParam1 l_bmdGetParamList[2] = {
+ {3, 3}, // zrc
+ {3, 4}, // zrc_sick_tw
};
/* 80B93718-80B93818 000030 0100+00 1/2 0/0 0/0 .data l_bckGetParamList */
-SECTION_DATA static u8 l_bckGetParamList[256] = {
- 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x02,
- 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x01,
- 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x01,
- 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x01,
- 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01,
- 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x05,
- 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x01,
- 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x01,
- 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02,
- 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x01,
- 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x01,
- 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x01,
- 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05,
+static daNpc_GetParam1 l_bckGetParamList[32] = {
+ {9, 0}, // zrc_f_wait_a
+ {5, 2}, // zrc_f_sit_talk
+ {8, 0}, // zrc_f_talk_a
+ {11, 1}, // zrc_f_topray
+ {5, 0}, // zrc_f_sad
+ {6, 0}, // zrc_f_smile
+ {6, 1}, // zrc_f_kizuku
+ {9, 1}, // zrc_f_sad_wait
+ {7, 1}, // zrc_f_kizuku_wait
+ {10, 1}, // zrc_f_talk_normal
+ {8, 1}, // zrc_f_pray
+ {5, 1}, // zrc_f_getup
+ {4, 2}, // zrc_f_sit
+ {7, 0}, // zrc_f_step
+ {10, 0}, // zrc_fh_sad
+ {11, 0}, // zrc_fh_smile
+ {12, 1}, // zrc_fh_kizuku
+ {4, 5}, // zrc_f_sick_demo_wait
+ {13, 0}, // zrc_wait_a
+ {21, 1}, // zrc_topray
+ {16, 1}, // zrc_pray
+ {13, 1}, // zrc_getup
+ {12, 0}, // zrc_step
+ {6, 2}, // zrc_sit
+ {7, 2}, // zrc_sit_talk
+ {17, 1}, // zrc_sad_talk
+ {18, 1}, // zrc_sad_wait
+ {20, 1}, // zrc_talk_a
+ {14, 1}, // zrc_kizuku
+ {15, 1}, // zrc_kizuku_wait
+ {19, 1}, // zrc_smile_talk
+ {5, 5}, // zrc_sick_demo_wait
};
/* 80B93818-80B93890 000130 0078+00 1/1 0/0 0/0 .data l_btpGetParamList */
-SECTION_DATA static u8 l_btpGetParamList[120] = {
- 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00,
- 0x02, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x00,
- 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x20,
- 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
- 0x00, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x05,
+static daNpc_GetParam1 l_btpGetParamList[15] = {
+ {19, 0}, // zrc
+ {10, 2}, // zrc_f_sit_talk
+ {23, 0}, // zrc_f_talk_a
+ {20, 0}, // zrc_f_sad
+ {21, 0}, // zrc_f_smile
+ {31, 1}, // zrc_f_kizuku
+ {34, 1}, // zrc_f_sad_wait
+ {32, 1}, // zrc_f_kizuku_wait
+ {35, 1}, // zrc_f_topray
+ {33, 1}, // zrc_f_pray
+ {30, 1}, // zrc_f_getup
+ {22, 0}, // zrc_f_step
+ {24, 0}, // zrc_fh_sad
+ {25, 0}, // zrc_fh_smile
+ {8, 5}, // zrc_f_sick_demo_wait
};
/* 80B93890-80B938B8 0001A8 0028+00 1/2 0/0 0/0 .data l_btkGetParamList */
-SECTION_DATA static u8 l_btkGetParamList[40] = {
- 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x00,
- 0x00, 0x01, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x18,
- 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x01,
+static daNpc_GetParam1 l_btkGetParamList[5] = {
+ {16, 0}, // zrc
+ {26, 1}, // zrc_sad_talk
+ {27, 1}, // zrc_sad_wait
+ {24, 1}, // zrc_kizuku
+ {25, 1}, // zrc_kizuku_wait
};
/* 80B938B8-80B938C8 0001D0 0010+00 0/2 0/0 0/0 .data l_evtGetParamList */
-#pragma push
-#pragma force_active on
-SECTION_DATA static u8 l_evtGetParamList[16] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x06,
+static daNpc_GetParam1 l_evtGetParamList[2] = {
+ {0, 0},
+ {1, 6},
};
-#pragma pop
/* 80B938C8-80B938D0 -00001 0008+00 0/2 0/0 0/0 .data l_evtNames */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* l_evtNames[2] = {
- (void*)NULL,
- (void*)&d_a_npc_zrc__stringBase0,
+static char* l_evtNames[2] = {
+ NULL,
+ "EARRING_GET",
};
-#pragma pop
/* 80B938D0-80B938E4 0001E8 0014+00 1/0 0/0 0/0 .data l_loadRes_ZRCa */
-SECTION_DATA static u8 l_loadRes_ZRCa[20] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xFF, 0xFF,
- 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
+static int l_loadRes_ZRCa[5] = {
+ 0, 3, -1, -1, 0,
};
/* 80B938E4-80B938F8 0001FC 0014+00 1/0 0/0 0/0 .data l_loadRes_ZRC_SICK */
-SECTION_DATA static u8 l_loadRes_ZRC_SICK[20] = {
- 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00,
- 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
+static int l_loadRes_ZRC_SICK[5] = {
+ 3, 5, 0, -1, 0,
};
/* 80B938F8-80B9390C 000210 0014+00 1/0 0/0 0/0 .data l_loadRes_ZRC0 */
-SECTION_DATA static u8 l_loadRes_ZRC0[20] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xFF, 0xFF,
- 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
+static int l_loadRes_ZRC0[5] = {
+ 0, 3, -1, -1, 0,
};
/* 80B9390C-80B93920 000224 0014+00 1/0 0/0 0/0 .data l_loadRes_ZRC_PRAY */
-SECTION_DATA static u8 l_loadRes_ZRC_PRAY[20] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00,
- 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, 0xFF, 0xFF, 0xFF, 0xFF,
+static int l_loadRes_ZRC_PRAY[5] = {
+ 0, 3, 1, 6, -1,
};
/* 80B93920-80B93934 000238 0014+00 1/0 0/0 0/0 .data l_loadRes_ZRC_SIT */
-SECTION_DATA static u8 l_loadRes_ZRC_SIT[20] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00,
- 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
+static int l_loadRes_ZRC_SIT[5] = {
+ 0, 2, 3, -1, 0,
};
/* 80B93934-80B93948 -00001 0014+00 2/2 0/0 0/0 .data l_loadRes_list */
-SECTION_DATA static void* l_loadRes_list[5] = {
- (void*)&l_loadRes_ZRCa, (void*)&l_loadRes_ZRC_SICK, (void*)&l_loadRes_ZRC_PRAY,
- (void*)&l_loadRes_ZRC_SIT, (void*)&l_loadRes_ZRC0,
+static int* l_loadRes_list[5] = {
+ l_loadRes_ZRCa,
+ l_loadRes_ZRC_SICK,
+ l_loadRes_ZRC_PRAY,
+ l_loadRes_ZRC_SIT,
+ l_loadRes_ZRC0,
};
/* 80B93948-80B93964 -00001 001C+00 6/9 0/0 0/0 .data l_resNames */
-SECTION_DATA static void* l_resNames[7] = {
- (void*)(((char*)&d_a_npc_zrc__stringBase0) + 0xC),
- (void*)(((char*)&d_a_npc_zrc__stringBase0) + 0x10),
- (void*)(((char*)&d_a_npc_zrc__stringBase0) + 0x15),
- (void*)(((char*)&d_a_npc_zrc__stringBase0) + 0x1A),
- (void*)(((char*)&d_a_npc_zrc__stringBase0) + 0x22),
- (void*)(((char*)&d_a_npc_zrc__stringBase0) + 0x29),
- (void*)(((char*)&d_a_npc_zrc__stringBase0) + 0x32),
+static char* l_resNames[7] = {
+ "zrC",
+ "zrC1",
+ "zrC2",
+ "zrC_MDL",
+ "zrC_TW",
+ "zrC_Sick",
+ "zrC_EGD",
};
/* 80B93964-80B93968 -00001 0004+00 0/1 0/0 0/0 .data l_myName */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* l_myName = (void*)(((char*)&d_a_npc_zrc__stringBase0) + 0xC);
-#pragma pop
+static char* l_myName = "zrC";
/* 80B93968-80B93970 -00001 0008+00 0/1 0/0 0/0 .data mEvtCutNameList__11daNpc_zrC_c */
-#pragma push
-#pragma force_active on
-SECTION_DATA void* daNpc_zrC_c::mEvtCutNameList[2] = {
- (void*)(((char*)&d_a_npc_zrc__stringBase0) + 0x3A),
- (void*)&d_a_npc_zrc__stringBase0,
-};
-#pragma pop
-
-/* 80B93970-80B9397C -00001 000C+00 1/1 0/0 0/0 .data @4022 */
-SECTION_DATA static void* lit_4022[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)ECut_earringGet__11daNpc_zrC_cFi,
+char* daNpc_zrC_c::mEvtCutNameList[2] = {
+ "",
+ "EARRING_GET",
};
/* 80B9397C-80B93994 000294 0018+00 1/2 0/0 0/0 .data mEvtCutList__11daNpc_zrC_c */
-SECTION_DATA u8 daNpc_zrC_c::mEvtCutList[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,
-};
-
-/* 80B93994-80B939A0 -00001 000C+00 1/1 0/0 0/0 .data @4517 */
-SECTION_DATA static void* lit_4517[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)test__11daNpc_zrC_cFPv,
-};
-
-/* 80B939A0-80B939E8 -00001 0048+00 1/1 0/0 0/0 .data @4963 */
-SECTION_DATA static void* lit_4963[18] = {
- (void*)(((char*)setExpressionAnm__11daNpc_zrC_cFib) + 0x90),
- (void*)(((char*)setExpressionAnm__11daNpc_zrC_cFib) + 0xB0),
- (void*)(((char*)setExpressionAnm__11daNpc_zrC_cFib) + 0xCC),
- (void*)(((char*)setExpressionAnm__11daNpc_zrC_cFib) + 0xE8),
- (void*)(((char*)setExpressionAnm__11daNpc_zrC_cFib) + 0x104),
- (void*)(((char*)setExpressionAnm__11daNpc_zrC_cFib) + 0x120),
- (void*)(((char*)setExpressionAnm__11daNpc_zrC_cFib) + 0x13C),
- (void*)(((char*)setExpressionAnm__11daNpc_zrC_cFib) + 0x158),
- (void*)(((char*)setExpressionAnm__11daNpc_zrC_cFib) + 0x174),
- (void*)(((char*)setExpressionAnm__11daNpc_zrC_cFib) + 0x190),
- (void*)(((char*)setExpressionAnm__11daNpc_zrC_cFib) + 0x1AC),
- (void*)(((char*)setExpressionAnm__11daNpc_zrC_cFib) + 0x1CC),
- (void*)(((char*)setExpressionAnm__11daNpc_zrC_cFib) + 0x1E8),
- (void*)(((char*)setExpressionAnm__11daNpc_zrC_cFib) + 0x208),
- (void*)(((char*)setExpressionAnm__11daNpc_zrC_cFib) + 0x224),
- (void*)(((char*)setExpressionAnm__11daNpc_zrC_cFib) + 0x244),
- (void*)(((char*)setExpressionAnm__11daNpc_zrC_cFib) + 0x264),
- (void*)(((char*)setExpressionAnm__11daNpc_zrC_cFib) + 0x284),
-};
-
-/* 80B939E8-80B93A24 -00001 003C+00 1/1 0/0 0/0 .data @5001 */
-SECTION_DATA static void* lit_5001[15] = {
- (void*)(((char*)setExpressionBtp__11daNpc_zrC_cFi) + 0x8C),
- (void*)(((char*)setExpressionBtp__11daNpc_zrC_cFi) + 0xB8),
- (void*)(((char*)setExpressionBtp__11daNpc_zrC_cFi) + 0xB8),
- (void*)(((char*)setExpressionBtp__11daNpc_zrC_cFi) + 0xB8),
- (void*)(((char*)setExpressionBtp__11daNpc_zrC_cFi) + 0xB8),
- (void*)(((char*)setExpressionBtp__11daNpc_zrC_cFi) + 0xB8),
- (void*)(((char*)setExpressionBtp__11daNpc_zrC_cFi) + 0xB8),
- (void*)(((char*)setExpressionBtp__11daNpc_zrC_cFi) + 0xB8),
- (void*)(((char*)setExpressionBtp__11daNpc_zrC_cFi) + 0xB8),
- (void*)(((char*)setExpressionBtp__11daNpc_zrC_cFi) + 0x94),
- (void*)(((char*)setExpressionBtp__11daNpc_zrC_cFi) + 0xB8),
- (void*)(((char*)setExpressionBtp__11daNpc_zrC_cFi) + 0xB8),
- (void*)(((char*)setExpressionBtp__11daNpc_zrC_cFi) + 0x9C),
- (void*)(((char*)setExpressionBtp__11daNpc_zrC_cFi) + 0xA4),
- (void*)(((char*)setExpressionBtp__11daNpc_zrC_cFi) + 0xAC),
-};
-
-/* 80B93A24-80B93A5C -00001 0038+00 1/1 0/0 0/0 .data @5051 */
-SECTION_DATA static void* lit_5051[14] = {
- (void*)(((char*)setMotionAnm__11daNpc_zrC_cFif) + 0x10C),
- (void*)(((char*)setMotionAnm__11daNpc_zrC_cFif) + 0xA4),
- (void*)(((char*)setMotionAnm__11daNpc_zrC_cFif) + 0x10C),
- (void*)(((char*)setMotionAnm__11daNpc_zrC_cFif) + 0xAC),
- (void*)(((char*)setMotionAnm__11daNpc_zrC_cFif) + 0xB4),
- (void*)(((char*)setMotionAnm__11daNpc_zrC_cFif) + 0x10C),
- (void*)(((char*)setMotionAnm__11daNpc_zrC_cFif) + 0xBC),
- (void*)(((char*)setMotionAnm__11daNpc_zrC_cFif) + 0xC4),
- (void*)(((char*)setMotionAnm__11daNpc_zrC_cFif) + 0xD4),
- (void*)(((char*)setMotionAnm__11daNpc_zrC_cFif) + 0xDC),
- (void*)(((char*)setMotionAnm__11daNpc_zrC_cFif) + 0xE4),
- (void*)(((char*)setMotionAnm__11daNpc_zrC_cFif) + 0xF4),
- (void*)(((char*)setMotionAnm__11daNpc_zrC_cFif) + 0xFC),
- (void*)(((char*)setMotionAnm__11daNpc_zrC_cFif) + 0x10C),
-};
-
-/* 80B93A5C-80B93A68 -00001 000C+00 0/1 0/0 0/0 .data @5325 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_5325[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)test__11daNpc_zrC_cFPv,
-};
-#pragma pop
-
-/* 80B93A68-80B93A74 -00001 000C+00 0/1 0/0 0/0 .data @5329 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_5329[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)waitSick__11daNpc_zrC_cFPv,
-};
-#pragma pop
-
-/* 80B93A74-80B93A80 -00001 000C+00 0/1 0/0 0/0 .data @5331 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_5331[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)waitPray__11daNpc_zrC_cFPv,
-};
-#pragma pop
-
-/* 80B93A80-80B93A8C -00001 000C+00 0/1 0/0 0/0 .data @5333 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_5333[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)waitThrone__11daNpc_zrC_cFPv,
-};
-#pragma pop
-
-/* 80B93A8C-80B93A98 -00001 000C+00 0/1 0/0 0/0 .data @5335 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_5335[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)wait__11daNpc_zrC_cFPv,
-};
-#pragma pop
-
-/* 80B93A98-80B93AA4 -00001 000C+00 0/1 0/0 0/0 .data @5377 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_5377[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)talk__11daNpc_zrC_cFPv,
-};
-#pragma pop
-
-/* 80B93AA4-80B93AB0 -00001 000C+00 0/1 0/0 0/0 .data @5391 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_5391[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)talk__11daNpc_zrC_cFPv,
-};
-#pragma pop
-
-/* 80B93AB0-80B93AD4 -00001 0024+00 1/1 0/0 0/0 .data @5558 */
-SECTION_DATA static void* lit_5558[9] = {
- (void*)(((char*)setExpressionTalkAfter__11daNpc_zrC_cFv) + 0xB0),
- (void*)(((char*)setExpressionTalkAfter__11daNpc_zrC_cFv) + 0x30),
- (void*)(((char*)setExpressionTalkAfter__11daNpc_zrC_cFv) + 0xCC),
- (void*)(((char*)setExpressionTalkAfter__11daNpc_zrC_cFv) + 0x50),
- (void*)(((char*)setExpressionTalkAfter__11daNpc_zrC_cFv) + 0x70),
- (void*)(((char*)setExpressionTalkAfter__11daNpc_zrC_cFv) + 0x90),
- (void*)(((char*)setExpressionTalkAfter__11daNpc_zrC_cFv) + 0x50),
- (void*)(((char*)setExpressionTalkAfter__11daNpc_zrC_cFv) + 0xB0),
- (void*)(((char*)setExpressionTalkAfter__11daNpc_zrC_cFv) + 0x90),
-};
-
-/* 80B93AD4-80B93AF4 -00001 0020+00 1/0 0/0 0/0 .data daNpc_zrC_MethodTable */
-static actor_method_class daNpc_zrC_MethodTable = {
- (process_method_func)daNpc_zrC_Create__FPv,
- (process_method_func)daNpc_zrC_Delete__FPv,
- (process_method_func)daNpc_zrC_Execute__FPv,
- (process_method_func)daNpc_zrC_IsDelete__FPv,
- (process_method_func)daNpc_zrC_Draw__FPv,
-};
-
-/* 80B93AF4-80B93B24 -00001 0030+00 0/0 0/0 1/0 .data g_profile_NPC_ZRC */
-extern actor_process_profile_definition g_profile_NPC_ZRC = {
- fpcLy_CURRENT_e, // mLayerID
- 7, // mListID
- fpcPi_CURRENT_e, // mListPrio
- PROC_NPC_ZRC, // mProcName
- &g_fpcLf_Method.mBase, // sub_method
- sizeof(daNpc_zrC_c), // mSize
- 0, // mSizeOther
- 0, // mParameters
- &g_fopAc_Method.base, // sub_method
- 389, // mPriority
- &daNpc_zrC_MethodTable, // sub_method
- 0x00044100, // mStatus
- fopAc_NPC_e, // mActorType
- fopAc_CULLBOX_CUSTOM_e, // cullType
-};
-
-/* 80B93B24-80B93B30 00043C 000C+00 2/2 0/0 0/0 .data __vt__11J3DTexNoAnm */
-SECTION_DATA extern void* __vt__11J3DTexNoAnm[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)calc__11J3DTexNoAnmCFPUs,
-};
-
-/* 80B93B30-80B93B78 000448 0048+00 2/2 0/0 0/0 .data __vt__11daNpc_zrC_c */
-SECTION_DATA extern void* __vt__11daNpc_zrC_c[18] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__11daNpc_zrC_cFv,
- (void*)setParam__11daNpc_zrC_cFv,
- (void*)main__11daNpc_zrC_cFv,
- (void*)ctrlBtk__11daNpc_zrC_cFv,
- (void*)adjustShapeAngle__11daNpc_zrC_cFv,
- (void*)setMtx__8daNpcF_cFv,
- (void*)setMtx2__8daNpcF_cFv,
- (void*)setAttnPos__11daNpc_zrC_cFv,
- (void*)setCollisions__8daNpcF_cFv,
- (void*)setExpressionAnm__11daNpc_zrC_cFib,
- (void*)setExpressionBtp__11daNpc_zrC_cFi,
- (void*)setExpression__11daNpc_zrC_cFif,
- (void*)setMotionAnm__11daNpc_zrC_cFif,
- (void*)setMotion__11daNpc_zrC_cFifi,
- (void*)drawDbgInfo__11daNpc_zrC_cFv,
- (void*)drawOtherMdls__11daNpc_zrC_cFv,
-};
-
-/* 80B93B78-80B93B84 000490 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,
-};
-
-/* 80B93B84-80B93BA8 00049C 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_80B931E0,
- (void*)NULL,
- (void*)NULL,
- (void*)func_80B931D8,
-};
-
-/* 80B93BA8-80B93BB4 0004C0 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,
-};
-
-/* 80B93BB4-80B93BC0 0004CC 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,
-};
-
-/* 80B93BC0-80B93BCC 0004D8 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,
-};
-
-/* 80B93BCC-80B93BD8 0004E4 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,
-};
-
-/* 80B93BD8-80B93BE4 0004F0 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,
-};
-
-/* 80B93BE4-80B93BF0 0004FC 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,
-};
-
-/* 80B93BF0-80B93BFC 000508 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,
+daNpc_zrC_c::EventFn daNpc_zrC_c::mEvtCutList[2] = {
+ NULL,
+ &ECut_earringGet,
};
/* 80B8DC0C-80B8DD90 0000EC 0184+00 1/1 0/0 0/0 .text __ct__11daNpc_zrC_cFv */
@@ -701,431 +215,676 @@ daNpc_zrC_c::daNpc_zrC_c() {
// NONMATCHING
}
-/* 80B8DD90-80B8DDD8 000270 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGCylFv */
-// cM3dGCyl::~cM3dGCyl() {
-extern "C" void __dt__8cM3dGCylFv() {
- // NONMATCHING
-}
-
-/* 80B8DDD8-80B8DE20 0002B8 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGAabFv */
-// cM3dGAab::~cM3dGAab() {
-extern "C" void __dt__8cM3dGAabFv() {
- // NONMATCHING
-}
-
/* 80B8DE20-80B8E03C 000300 021C+00 1/0 0/0 0/0 .text __dt__11daNpc_zrC_cFv */
daNpc_zrC_c::~daNpc_zrC_c() {
- // NONMATCHING
-}
+ for (int i = 0; l_loadRes_list[mType][i] >= 0; i++) {
+ int res = l_loadRes_list[mType][i];
+ if (res == 3 && mTwilight) {
+ res = 4;
+ }
+ dComIfG_resDelete(&mPhase[i], l_resNames[res]);
+ }
-/* ############################################################################################## */
-/* 80B931FC-80B93270 000000 0074+00 15/15 0/0 0/0 .rodata m__17daNpc_zrC_Param_c */
-SECTION_RODATA u8 const daNpc_zrC_Param_c::m[116] = {
- 0x42, 0x48, 0x00, 0x00, 0xC0, 0x40, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x44, 0x16, 0x00,
- 0x00, 0x43, 0x7F, 0x00, 0x00, 0x43, 0x0C, 0x00, 0x00, 0x00, 0x00, 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, 0x03, 0x00,
- 0x06, 0x00, 0x05, 0x00, 0x06, 0x42, 0xA0, 0x00, 0x00, 0x43, 0xFA, 0x00, 0x00, 0x43, 0x96,
- 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x43, 0xAF, 0x00, 0x00, 0x45, 0x0F, 0xC0, 0x00,
-};
-COMPILER_STRIP_GATE(0x80B931FC, &daNpc_zrC_Param_c::m);
-
-/* 80B93270-80B93284 000074 0014+00 0/1 0/0 0/0 .rodata heapSize$4316 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const heapSize[20] = {
- 0x00, 0x00, 0x60, 0x10, 0x00, 0x00, 0x46, 0x90, 0x00, 0x00,
- 0x60, 0x10, 0x00, 0x00, 0x60, 0x10, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80B93270, &heapSize);
-#pragma pop
-
-/* 80B93284-80B93288 000088 0004+00 0/1 0/0 0/0 .rodata @4411 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4411 = -300.0f;
-COMPILER_STRIP_GATE(0x80B93284, &lit_4411);
-#pragma pop
-
-/* 80B93288-80B9328C 00008C 0004+00 0/1 0/0 0/0 .rodata @4412 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4412 = -50.0f;
-COMPILER_STRIP_GATE(0x80B93288, &lit_4412);
-#pragma pop
-
-/* 80B9328C-80B93290 000090 0004+00 0/1 0/0 0/0 .rodata @4413 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4413 = 300.0f;
-COMPILER_STRIP_GATE(0x80B9328C, &lit_4413);
-#pragma pop
-
-/* 80B93290-80B93294 000094 0004+00 0/1 0/0 0/0 .rodata @4414 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4414 = 450.0f;
-COMPILER_STRIP_GATE(0x80B93290, &lit_4414);
-#pragma pop
+ if (heap != NULL) {
+ mpMorf->stopZelAnime();
+ }
+}
/* 80B8E03C-80B8E338 00051C 02FC+00 1/1 0/0 0/0 .text create__11daNpc_zrC_cFv */
-void daNpc_zrC_c::create() {
- // NONMATCHING
+cPhs__Step daNpc_zrC_c::create() {
+ fopAcM_SetupActor(this, daNpc_zrC_c);
+
+ mType = getTypeFromParam();
+ if (home.angle.x != 0xffff) {
+ mFlowID = home.angle.x;
+ } else {
+ mFlowID = -1;
+ }
+ mTwilight = dKy_darkworld_check();
+
+ if (isDelete()) {
+ return cPhs_ERROR_e;
+ }
+
+ int res_count = 0;
+ int i;
+ for (i = 0; l_loadRes_list[mType][i] >= 0; i++) {
+ int res_idx = l_loadRes_list[mType][i];
+ if (res_idx == 3 && mTwilight) {
+ res_idx = 4;
+ }
+ cPhs__Step step = (cPhs__Step)dComIfG_resLoad(&mPhase[i], l_resNames[res_idx]);
+ if (step == cPhs_ERROR_e || step == cPhs_UNK3_e) {
+ return cPhs_ERROR_e;
+ }
+ if (step == cPhs_COMPLEATE_e) {
+ res_count++;
+ }
+ }
+
+ if (res_count == i) {
+ static u32 const heapSize[5] = {0x6010, 0x4690, 0x6010, 0x6010, 0x0000};
+ if (!fopAcM_entrySolidHeap(this, createHeapCallBack, heapSize[mType])) {
+ return cPhs_ERROR_e;
+ }
+
+ fopAcM_SetMtx(this, mpMorf->getModel()->getBaseTRMtx());
+ fopAcM_setCullSizeBox(this, -300.0f, -50.0f, -300.0f, 300.0f, 450.0f, 300.0f);
+ mCreatureSound.init(&current.pos, &eyePos, 3, 1);
+ mAcchCir.SetWall(daNpc_zrC_Param_c::m.mWallR, daNpc_zrC_Param_c::m.mWallH);
+ mAcch.Set(fopAcM_GetPosition_p(this), fopAcM_GetOldPosition_p(this), this, 1, &mAcchCir,
+ fopAcM_GetSpeed_p(this), fopAcM_GetAngle_p(this), fopAcM_GetShapeAngle_p(this));
+ mCcStts.Init(daNpc_zrC_Param_c::m.mCcWeight, 0, this);
+ mCcCyl.Set(mCcDCyl);
+ mCcCyl.SetStts(&mCcStts);
+ mCcCyl.SetTgHitCallback(tgHitCallBack);
+ mAcch.CrrPos(dComIfG_Bgsp());
+ mGndChk = mAcch.m_gnd;
+ mGroundH = mAcch.GetGroundH();
+
+ setEnvTevColor();
+ setRoomNo();
+ reset();
+ Execute();
+
+ return cPhs_COMPLEATE_e;
+ } else {
+ return cPhs_INIT_e;
+ }
}
-/* ############################################################################################## */
-/* 80B93294-80B93298 000098 0004+00 4/4 0/0 0/0 .rodata @4483 */
-SECTION_RODATA static f32 const lit_4483 = 1.0f;
-COMPILER_STRIP_GATE(0x80B93294, &lit_4483);
-
-/* 80B93298-80B9329C 00009C 0004+00 6/9 0/0 0/0 .rodata @4484 */
-SECTION_RODATA static u8 const lit_4484[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
-};
-COMPILER_STRIP_GATE(0x80B93298, &lit_4484);
-
/* 80B8E338-80B8E674 000818 033C+00 1/1 0/0 0/0 .text CreateHeap__11daNpc_zrC_cFv */
-void daNpc_zrC_c::CreateHeap() {
- // NONMATCHING
-}
-
-/* 80B8E674-80B8E6B0 000B54 003C+00 1/1 0/0 0/0 .text __dt__15J3DTevKColorAnmFv */
-// J3DTevKColorAnm::~J3DTevKColorAnm() {
-extern "C" void __dt__15J3DTevKColorAnmFv() {
- // NONMATCHING
-}
-
-/* 80B8E6B0-80B8E6C8 000B90 0018+00 1/1 0/0 0/0 .text __ct__15J3DTevKColorAnmFv */
-// J3DTevKColorAnm::J3DTevKColorAnm() {
-extern "C" void __ct__15J3DTevKColorAnmFv() {
- // NONMATCHING
-}
-
-/* 80B8E6C8-80B8E704 000BA8 003C+00 1/1 0/0 0/0 .text __dt__14J3DTevColorAnmFv */
-// J3DTevColorAnm::~J3DTevColorAnm() {
-extern "C" void __dt__14J3DTevColorAnmFv() {
- // NONMATCHING
-}
-
-/* 80B8E704-80B8E71C 000BE4 0018+00 1/1 0/0 0/0 .text __ct__14J3DTevColorAnmFv */
-// J3DTevColorAnm::J3DTevColorAnm() {
-extern "C" void __ct__14J3DTevColorAnmFv() {
- // NONMATCHING
-}
-
-/* 80B8E71C-80B8E764 000BFC 0048+00 1/1 0/0 0/0 .text __dt__11J3DTexNoAnmFv */
-// J3DTexNoAnm::~J3DTexNoAnm() {
-extern "C" void __dt__11J3DTexNoAnmFv() {
- // NONMATCHING
-}
-
-/* 80B8E764-80B8E788 000C44 0024+00 1/1 0/0 0/0 .text __ct__11J3DTexNoAnmFv */
-// J3DTexNoAnm::J3DTexNoAnm() {
-extern "C" void __ct__11J3DTexNoAnmFv() {
- // NONMATCHING
-}
-
-/* 80B8E788-80B8E7C4 000C68 003C+00 1/1 0/0 0/0 .text __dt__12J3DTexMtxAnmFv */
-// J3DTexMtxAnm::~J3DTexMtxAnm() {
-extern "C" void __dt__12J3DTexMtxAnmFv() {
- // NONMATCHING
-}
-
-/* 80B8E7C4-80B8E7DC 000CA4 0018+00 1/1 0/0 0/0 .text __ct__12J3DTexMtxAnmFv */
-// J3DTexMtxAnm::J3DTexMtxAnm() {
-extern "C" void __ct__12J3DTexMtxAnmFv() {
- // NONMATCHING
-}
-
-/* 80B8E7DC-80B8E818 000CBC 003C+00 1/1 0/0 0/0 .text __dt__14J3DMatColorAnmFv */
-// J3DMatColorAnm::~J3DMatColorAnm() {
-extern "C" void __dt__14J3DMatColorAnmFv() {
- // NONMATCHING
-}
-
-/* 80B8E818-80B8E830 000CF8 0018+00 1/1 0/0 0/0 .text __ct__14J3DMatColorAnmFv */
-// J3DMatColorAnm::J3DMatColorAnm() {
-extern "C" void __ct__14J3DMatColorAnmFv() {
- // NONMATCHING
+int daNpc_zrC_c::CreateHeap() {
+ J3DModelData* model_data = NULL;
+ u32 model_flag;
+ if (mTwilight) {
+ if (l_bmdGetParamList[1].fileIdx >= 0) {
+ model_data = static_cast<J3DModelData*>(
+ dComIfG_getObjectRes(l_resNames[l_bmdGetParamList[1].arcIdx],
+ l_bmdGetParamList[1].fileIdx));
+ }
+ model_flag = 0x80000;
+ } else {
+ if (l_bmdGetParamList[0].fileIdx >= 0) {
+ model_data = static_cast<J3DModelData*>(
+ dComIfG_getObjectRes(l_resNames[l_bmdGetParamList[0].arcIdx],
+ l_bmdGetParamList[0].fileIdx));
+ }
+ model_flag = 0;
+ }
+
+ mpMorf = new mDoExt_McaMorfSO(model_data, NULL, NULL, NULL, -1, 1.0f, 0, -1,
+ &mCreatureSound, model_flag, 0x11020284);
+ if (mpMorf != NULL && mpMorf->getModel() == NULL) {
+ mpMorf->stopZelAnime();
+ mpMorf = NULL;
+ }
+ if (mpMorf == NULL) {
+ return 0;
+ }
+
+ J3DModel* model = mpMorf->getModel();
+ for (u16 i = 0; i < model_data->getJointNum(); i++) {
+ model_data->getJointNodePointer(i)->setCallBack(ctrlJointCallBack);
+ }
+ model->setUserArea((u32)this);
+
+ mpMatAnm = new daNpcF_MatAnm_c();
+ if (mpMatAnm == NULL) {
+ return 0;
+ }
+
+ if (mType == 1) {
+ if (!setExpressionAnm(ANM_F_SICK_DEMO_WAIT, false)) {
+ return 0;
+ }
+ setMotionAnm(ANM_SICK_DEMO_WAIT, 0.0f);
+ } else {
+ if (!setExpressionAnm(ANM_F_TALK_A, false)) {
+ return 0;
+ }
+ setMotionAnm(ANM_WAIT_A, 0.0f);
+ }
+
+ return 1;
}
/* 80B8E830-80B8E864 000D10 0034+00 1/1 0/0 0/0 .text Delete__11daNpc_zrC_cFv */
-void daNpc_zrC_c::Delete() {
- // NONMATCHING
+int daNpc_zrC_c::Delete() {
+ this->~daNpc_zrC_c();
+ return 1;
}
/* 80B8E864-80B8E884 000D44 0020+00 2/2 0/0 0/0 .text Execute__11daNpc_zrC_cFv */
-void daNpc_zrC_c::Execute() {
- // NONMATCHING
+int daNpc_zrC_c::Execute() {
+ return execute();
}
/* 80B8E884-80B8E914 000D64 0090+00 1/1 0/0 0/0 .text Draw__11daNpc_zrC_cFv */
-void daNpc_zrC_c::Draw() {
- // NONMATCHING
+int daNpc_zrC_c::Draw() {
+ mpMorf->getModel()->getModelData()->getMaterialNodePointer(1)->setMaterialAnm(mpMatAnm);
+ BOOL is_test = chkAction(&test);
+ return draw(is_test, true, daNpc_zrC_Param_c::m.mShadowDepth, NULL, false);
}
-/* ############################################################################################## */
-/* 80B9329C-80B932A8 0000A0 000C+00 1/1 0/0 0/0 .rodata @4538 */
-SECTION_RODATA static u8 const lit_4538[12] = {
- 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04,
-};
-COMPILER_STRIP_GATE(0x80B9329C, &lit_4538);
-
/* 80B8E914-80B8EB48 000DF4 0234+00 1/1 0/0 0/0 .text
* ctrlJoint__11daNpc_zrC_cFP8J3DJointP8J3DModel */
-void daNpc_zrC_c::ctrlJoint(J3DJoint* param_0, J3DModel* param_1) {
- // NONMATCHING
+int daNpc_zrC_c::ctrlJoint(J3DJoint* i_joint, J3DModel* i_model) {
+ int jnt_no = i_joint->getJntNo();
+ int lookat_joints[3] = {1, 3, 4};
+
+ if (jnt_no == 0) {
+ mDoMtx_stack_c::copy(mpMorf->getModel()->getAnmMtx(1));
+ mDoMtx_stack_c::multVecZero(&mLookatPos[0]);
+ mDoMtx_stack_c::copy(mpMorf->getModel()->getAnmMtx(3));
+ mDoMtx_stack_c::multVecZero(&mLookatPos[1]);
+ mDoMtx_stack_c::copy(mpMorf->getModel()->getAnmMtx(4));
+ mDoMtx_stack_c::multVecZero(&mLookatPos[2]);
+ }
+
+ mDoMtx_stack_c::copy(i_model->getAnmMtx(jnt_no));
+
+ switch (jnt_no) {
+ case 1: // backbone1
+ case 3: // neck
+ case 4: // head
+ setLookatMtx(jnt_no, lookat_joints, daNpc_zrC_Param_c::m.mNeckAngleScl);
+ break;
+ }
+
+ if (jnt_no == 1) {
+ mDoMtx_stack_c::YrotM(-field_0x908[0].z);
+ mDoMtx_stack_c::ZrotM(field_0x908[0].x);
+ } else if (jnt_no == 4) {
+ mDoMtx_stack_c::YrotM(-field_0x908[2].z);
+ mDoMtx_stack_c::ZrotM(field_0x908[2].x);
+ }
+
+ i_model->setAnmMtx(jnt_no, mDoMtx_stack_c::get());
+ MTXCopy(mDoMtx_stack_c::get(), J3DSys::mCurrentMtx);
+
+ if ((jnt_no == 4 || jnt_no == 13) && (mAnmFlags & ANM_PLAY_BCK)) {
+ J3DAnmTransform* bck_anm = mBckAnm.getBckAnm();
+ mBckAnm.changeBckOnly(mpMorf->getAnm());
+ mpMorf->changeAnm(bck_anm);
+ }
+
+ return 1;
}
/* 80B8EB48-80B8EB68 001028 0020+00 1/1 0/0 0/0 .text
* createHeapCallBack__11daNpc_zrC_cFP10fopAc_ac_c */
-void daNpc_zrC_c::createHeapCallBack(fopAc_ac_c* param_0) {
- // NONMATCHING
+int daNpc_zrC_c::createHeapCallBack(fopAc_ac_c* i_this) {
+ return static_cast<daNpc_zrC_c*>(i_this)->CreateHeap();
}
/* 80B8EB68-80B8EBB4 001048 004C+00 1/1 0/0 0/0 .text ctrlJointCallBack__11daNpc_zrC_cFP8J3DJointi
*/
-void daNpc_zrC_c::ctrlJointCallBack(J3DJoint* param_0, int param_1) {
- // NONMATCHING
+int daNpc_zrC_c::ctrlJointCallBack(J3DJoint* i_joint, int param_1) {
+ if (param_1 == 0) {
+ daNpc_zrC_c* _this = (daNpc_zrC_c*)j3dSys.getModel()->getUserArea();
+ if (_this != NULL) {
+ _this->ctrlJoint(i_joint, j3dSys.getModel());
+ }
+ }
+ return 1;
}
/* 80B8EBB4-80B8ED94 001094 01E0+00 1/0 0/0 0/0 .text setParam__11daNpc_zrC_cFv */
void daNpc_zrC_c::setParam() {
- // NONMATCHING
+ ActionFn action = mpNextActionFn;
+ u32 attn_flags = 10;
+ selectAction();
+
+ if (!mTwilight && daPy_py_c::i_checkNowWolf()) {
+ attn_flags = 0;
+ }
+
+ if (mpNextActionFn != action) {
+ for (int i = 3; i < 3; i++) {
+ mActorMngr[i].initialize();
+ }
+ }
+
+ field_0xe10 = 0;
+ field_0xe14 = 0;
+
+ if (mType != 1) {
+ if (mType == 2) {
+ if (!field_0xe30 || daPy_getPlayerActorClass()->checkPlayerFly()
+ || !daPy_getPlayerActorClass()->checkSwimUp()
+ || dComIfGp_checkPlayerStatus0(0, 0x100))
+ {
+ attn_flags = 0;
+ }
+ }
+
+ attention_info.distances[fopAc_attn_LOCK_e] = getDistTableIdx(5, 6);
+ attention_info.distances[fopAc_attn_TALK_e] = attention_info.distances[fopAc_attn_LOCK_e];
+ attention_info.distances[fopAc_attn_SPEAK_e] = getDistTableIdx(3, 6);
+ attention_info.flags = attn_flags;
+
+ if (mType == 3) {
+ gravity = 0.0f;
+ } else {
+ gravity = daNpc_zrC_Param_c::m.mGravity;
+ }
+
+ } else {
+ attention_info.distances[fopAc_attn_LOCK_e] = 0;
+ attention_info.distances[fopAc_attn_TALK_e] = 0;
+ attention_info.distances[fopAc_attn_SPEAK_e] = 0;
+ attention_info.flags = 0;
+ gravity = 0.0f;
+ }
+
+ scale.set(daNpc_zrC_Param_c::m.mScale,
+ daNpc_zrC_Param_c::m.mScale,
+ daNpc_zrC_Param_c::m.mScale);
+
+ mAcchCir.SetWallR(daNpc_zrC_Param_c::m.mWallR);
+ mAcchCir.SetWallH(daNpc_zrC_Param_c::m.mWallH);
}
/* 80B8ED94-80B8EF2C 001274 0198+00 1/0 0/0 0/0 .text main__11daNpc_zrC_cFv */
-void daNpc_zrC_c::main() {
- // NONMATCHING
+BOOL daNpc_zrC_c::main() {
+ if (!doEvent()) {
+ doNormalAction(TRUE);
+ }
+
+ if (checkHide()) {
+ attention_info.flags = 0;
+ }
+
+ if (!daNpc_zrC_Param_c::m.mTest
+ && (!dComIfGp_event_runCheck() || (mOrderNewEvt && dComIfGp_getEvent().isOrderOK())))
+ {
+ if (mOrderEvtNo != EVT_NONE) {
+ eventInfo.setArchiveName(l_resNames[l_evtGetParamList[mOrderEvtNo].arcIdx]);
+ }
+ orderEvent(mSpeakEvent, l_evtNames[l_evtGetParamList[mOrderEvtNo].fileIdx],
+ 0xffff, 0x28, 0xff, 1);
+
+ if (mType == 2) {
+ eventInfo.i_onCondition(dEvtCnd_CANTALKITEM_e);
+ }
+ }
+
+ if (field_0x9ee) {
+ mExpressionMorfOverride = 0.0f;
+ mMotionMorfOverride = 0.0f;
+ field_0x9ee = false;
+ }
+
+ playExpression();
+ playMotion();
+ return TRUE;
}
-/* ############################################################################################## */
-/* 80B932A8-80B932AC 0000AC 0004+00 8/10 0/0 0/0 .rodata @4767 */
-SECTION_RODATA static f32 const lit_4767 = -1.0f;
-COMPILER_STRIP_GATE(0x80B932A8, &lit_4767);
-
-/* 80B932AC-80B932B0 0000B0 0004+00 1/1 0/0 0/0 .rodata @4768 */
-SECTION_RODATA static f32 const lit_4768 = 1.0f / 5.0f;
-COMPILER_STRIP_GATE(0x80B932AC, &lit_4768);
-
/* 80B8EF2C-80B8F00C 00140C 00E0+00 1/0 0/0 0/0 .text ctrlBtk__11daNpc_zrC_cFv */
-void daNpc_zrC_c::ctrlBtk() {
- // NONMATCHING
+BOOL daNpc_zrC_c::ctrlBtk() {
+ if (mpMatAnm != NULL) {
+ J3DAnmTextureSRTKey* btk_anm = NULL;
+ if (l_btkGetParamList[0].fileIdx >= 0) {
+ btk_anm = getTexSRTKeyAnmP(l_resNames[l_btkGetParamList[0].arcIdx],
+ l_btkGetParamList[0].fileIdx);
+ }
+
+ if (btk_anm == mBtkAnm.getBtkAnm()) {
+ mpMatAnm->setNowOffsetX(cM_ssin(mEyeAngle.y) * 0.2f * -1.0f);
+ mpMatAnm->setNowOffsetY(cM_ssin(mEyeAngle.x) * 0.2f);
+ mpMatAnm->onEyeMoveFlag();
+ return TRUE;
+ }
+ mpMatAnm->offEyeMoveFlag();
+ }
+
+ return FALSE;
}
-/* ############################################################################################## */
-/* 80B932B0-80B932B4 0000B4 0004+00 0/1 0/0 0/0 .rodata @4919 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4919 = 10.0f;
-COMPILER_STRIP_GATE(0x80B932B0, &lit_4919);
-#pragma pop
-
-/* 80B932B4-80B932B8 0000B8 0004+00 0/1 0/0 0/0 .rodata @4920 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4920 = 1.0f / 10.0f;
-COMPILER_STRIP_GATE(0x80B932B4, &lit_4920);
-#pragma pop
-
-/* 80B932B8-80B932BC 0000BC 0004+00 0/1 0/0 0/0 .rodata @4921 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4921 = 125.0f;
-COMPILER_STRIP_GATE(0x80B932B8, &lit_4921);
-#pragma pop
-
-/* 80B932BC-80B932C4 0000C0 0008+00 0/2 0/0 0/0 .rodata @4922 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4922[8] = {
- 0x3F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80B932BC, &lit_4922);
-#pragma pop
-
-/* 80B932C4-80B932CC 0000C8 0008+00 0/2 0/0 0/0 .rodata @4923 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4923[8] = {
- 0x40, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80B932C4, &lit_4923);
-#pragma pop
-
-/* 80B932CC-80B932D4 0000D0 0008+00 0/2 0/0 0/0 .rodata @4924 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4924[8] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80B932CC, &lit_4924);
-#pragma pop
-
-/* 80B932D4-80B932D8 0000D8 0004+00 0/1 0/0 0/0 .rodata @4925 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4925 = -20.0f;
-COMPILER_STRIP_GATE(0x80B932D4, &lit_4925);
-#pragma pop
-
-/* 80B932D8-80B932DC 0000DC 0004+00 0/1 0/0 0/0 .rodata @4926 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4926 = 15.0f;
-COMPILER_STRIP_GATE(0x80B932D8, &lit_4926);
-#pragma pop
-
-/* 80B93C10-80B93C14 000008 0001+03 1/1 0/0 0/0 .bss @1109 */
-static u8 lit_1109[1 + 3 /* padding */];
-
-/* 80B93C14-80B93C18 00000C 0001+03 0/0 0/0 0/0 .bss @1107 */
-#pragma push
-#pragma force_active on
-static u8 lit_1107[1 + 3 /* padding */];
-#pragma pop
-
-/* 80B93C18-80B93C1C 000010 0001+03 0/0 0/0 0/0 .bss @1105 */
-#pragma push
-#pragma force_active on
-static u8 lit_1105[1 + 3 /* padding */];
-#pragma pop
-
-/* 80B93C1C-80B93C20 000014 0001+03 0/0 0/0 0/0 .bss @1104 */
-#pragma push
-#pragma force_active on
-static u8 lit_1104[1 + 3 /* padding */];
-#pragma pop
-
-/* 80B93C20-80B93C24 000018 0001+03 0/0 0/0 0/0 .bss @1099 */
-#pragma push
-#pragma force_active on
-static u8 lit_1099[1 + 3 /* padding */];
-#pragma pop
-
-/* 80B93C24-80B93C28 00001C 0001+03 0/0 0/0 0/0 .bss @1097 */
-#pragma push
-#pragma force_active on
-static u8 lit_1097[1 + 3 /* padding */];
-#pragma pop
-
-/* 80B93C28-80B93C2C 000020 0001+03 0/0 0/0 0/0 .bss @1095 */
-#pragma push
-#pragma force_active on
-static u8 lit_1095[1 + 3 /* padding */];
-#pragma pop
-
-/* 80B93C2C-80B93C30 000024 0001+03 0/0 0/0 0/0 .bss @1094 */
-#pragma push
-#pragma force_active on
-static u8 lit_1094[1 + 3 /* padding */];
-#pragma pop
-
-/* 80B93C30-80B93C34 000028 0001+03 0/0 0/0 0/0 .bss @1057 */
-#pragma push
-#pragma force_active on
-static u8 lit_1057[1 + 3 /* padding */];
-#pragma pop
-
-/* 80B93C34-80B93C38 00002C 0001+03 0/0 0/0 0/0 .bss @1055 */
-#pragma push
-#pragma force_active on
-static u8 lit_1055[1 + 3 /* padding */];
-#pragma pop
-
-/* 80B93C38-80B93C3C 000030 0001+03 0/0 0/0 0/0 .bss @1053 */
-#pragma push
-#pragma force_active on
-static u8 lit_1053[1 + 3 /* padding */];
-#pragma pop
-
-/* 80B93C3C-80B93C40 000034 0001+03 0/0 0/0 0/0 .bss @1052 */
-#pragma push
-#pragma force_active on
-static u8 lit_1052[1 + 3 /* padding */];
-#pragma pop
-
-/* 80B93C40-80B93C44 000038 0001+03 0/0 0/0 0/0 .bss @1014 */
-#pragma push
-#pragma force_active on
-static u8 lit_1014[1 + 3 /* padding */];
-#pragma pop
-
-/* 80B93C44-80B93C48 00003C 0001+03 0/0 0/0 0/0 .bss @1012 */
-#pragma push
-#pragma force_active on
-static u8 lit_1012[1 + 3 /* padding */];
-#pragma pop
-
-/* 80B93C48-80B93C4C 000040 0001+03 0/0 0/0 0/0 .bss @1010 */
-#pragma push
-#pragma force_active on
-static u8 lit_1010[1 + 3 /* padding */];
-#pragma pop
-
-/* 80B93C4C-80B93C50 000044 0001+03 0/0 0/0 0/0 .bss @1009 */
-#pragma push
-#pragma force_active on
-static u8 lit_1009[1 + 3 /* padding */];
-#pragma pop
-
-/* 80B93C50-80B93C5C 000048 000C+00 1/1 0/0 0/0 .bss @4021 */
-static u8 lit_4021[12];
-
-/* 80B93C5C-80B93C60 000054 0004+00 1/1 0/0 0/0 .bss l_HIO */
-static u8 l_HIO[4];
-
-/* 80B93C60-80B93C70 000058 000C+04 0/1 0/0 0/0 .bss @4773 */
-#pragma push
-#pragma force_active on
-static u8 lit_4773[12 + 4 /* padding */];
-#pragma pop
-
-/* 80B93C70-80B93C7C 000068 000C+00 0/1 0/0 0/0 .bss eyeOffset$4772 */
-#pragma push
-#pragma force_active on
-static u8 eyeOffset[12];
-#pragma pop
-
/* 80B8F00C-80B8F56C 0014EC 0560+00 1/0 0/0 0/0 .text setAttnPos__11daNpc_zrC_cFv */
void daNpc_zrC_c::setAttnPos() {
- // NONMATCHING
+ static cXyz eyeOffset(10.0f, 10.0f, 0.0f);
+ f32 offset = daNpc_zrC_Param_c::m.mAttnOffsetY;
+ cXyz center, vec2, vec3, vec4;
+
+ mDoMtx_stack_c::YrotS(field_0x990);
+
+ cLib_addCalc2(&field_0x984[0], 0.0f, 0.1f, 125.0f);
+ cLib_addCalc2(&field_0x984[2], 0.0f, 0.1f, 125.0f);
+
+ for (int i = 0; i < 3; i++) {
+ vec3.set(0.0f, 0.0f, field_0x984[i] * cM_ssin(field_0x992));
+ mDoMtx_stack_c::multVec(&vec3, &vec4);
+ field_0x908[i].x = -vec4.z;
+ field_0x908[i].z = -vec4.x;
+ }
+
+ cLib_chaseS(&field_0x992, 0, 0x555);
+
+ if (mLookMode == LOOK_RESET) {
+ for (int i = 0; i < 3; i++) {
+ mLookatAngle[i].setall(0);
+ }
+ }
+
+ setMtx();
+ lookat();
+
+ mDoMtx_stack_c::copy(mpMorf->getModel()->getAnmMtx(4));
+ mDoMtx_stack_c::multVecZero(&mHeadPos);
+ mDoMtx_stack_c::multVec(&eyeOffset, &eyePos);
+ eyeOffset.x = 0.0f;
+ mDoMtx_stack_c::multVec(&eyeOffset, &vec3);
+ mHeadAngle.x = cLib_targetAngleX(&mHeadPos, &vec3);
+ mHeadAngle.y = cLib_targetAngleY(&mHeadPos, &vec3);
+
+ cXyz* attn_pos = mLookat.getAttnPos();
+ if (attn_pos != NULL) {
+ vec2 = *attn_pos - eyePos;
+ mEyeAngle.y = -(mLookatAngle[2].y + mCurAngle.y);
+ mEyeAngle.y += cM_atan2s(vec2.x, vec2.z);
+ mEyeAngle.x = -cM_atan2s(vec2.y, vec2.absXZ());
+ mEyeAngle.x += mHeadAngle.x;
+ } else {
+ mEyeAngle.x = mEyeAngle.y = 0;
+ }
+
+ f32 extra_height, extra_radius;
+ if (mType == 1) {
+ extra_height = -20.0f;
+ extra_radius = 15.0f;
+ vec2.set(0.0f, 0.0f, 0.0f);
+ mDoMtx_stack_c::copy(mpMorf->getModel()->getAnmMtx(0));
+ mDoMtx_stack_c::multVec(&vec2, &center);
+ attention_info.position.set(center.x, center.y + offset, center.z);
+ } else {
+ extra_height = 0.0f;
+ extra_radius = 0.0f;
+ vec2.set(0.0f, 0.0f, 0.0f);
+ center = mHeadPos;
+ attention_info.position.set(center.x, center.y + offset, center.z);
+ center.y = current.pos.y;
+ }
+
+ if (!mHide) {
+ if (!mIsDamaged) {
+ mCcCyl.SetTgType(0xD8FBFDFF);
+ mCcCyl.SetTgSPrm(0x1F);
+ mCcCyl.OnTgNoHitMark();
+ } else {
+ mCcCyl.SetTgType(0);
+ mCcCyl.SetTgSPrm(0);
+ }
+ mCcCyl.SetC(center);
+ mCcCyl.SetH(daNpc_zrC_Param_c::m.mCylH + extra_height);
+ mCcCyl.SetR(daNpc_zrC_Param_c::m.mWallR + extra_radius);
+ dComIfG_Ccsp()->Set(&mCcCyl);
+ }
+ mCcCyl.ClrTgHit();
}
/* 80B8F56C-80B8F898 001A4C 032C+00 2/0 0/0 0/0 .text setExpressionAnm__11daNpc_zrC_cFib
*/
-void daNpc_zrC_c::setExpressionAnm(int param_0, bool param_1) {
- // NONMATCHING
+bool daNpc_zrC_c::setExpressionAnm(int i_idx, bool i_modify) {
+ J3DAnmTransform* bck_anm = NULL;
+ int attr = J3DFrameCtrl::LOOP_ONCE_e;
+ mAnmFlags &= ~ANM_EXPRESSION_FLAGS;
+
+ if (l_bckGetParamList[i_idx].fileIdx >= 0) {
+ bck_anm = getTrnsfrmKeyAnmP(l_resNames[l_bckGetParamList[i_idx].arcIdx],
+ l_bckGetParamList[i_idx].fileIdx);
+ }
+
+ bool res = false;
+ switch (i_idx) {
+ case ANM_F_WAIT_A:
+ res = setExpressionBtp(0);
+ attr = J3DFrameCtrl::LOOP_REPEAT_e;
+ break;
+ case ANM_F_SIT_TALK:
+ res = setExpressionBtp(1);
+ break;
+ case ANM_F_TALK_A:
+ res = setExpressionBtp(2);
+ break;
+ case ANM_F_TOPRAY:
+ res = setExpressionBtp(8);
+ break;
+ case ANM_F_SAD:
+ res = setExpressionBtp(3);
+ break;
+ case ANM_F_SMILE:
+ res = setExpressionBtp(4);
+ break;
+ case ANM_F_KIZUKU:
+ res = setExpressionBtp(5);
+ break;
+ case ANM_F_SAD_WAIT:
+ res = setExpressionBtp(6);
+ break;
+ case ANM_F_KIZUKU_WAIT:
+ res = setExpressionBtp(7);
+ break;
+ case ANM_F_TALK_NORMAL:
+ res = setExpressionBtp(0);
+ break;
+ case ANM_F_PRAY:
+ res = setExpressionBtp(9);
+ attr = J3DFrameCtrl::LOOP_REPEAT_e;
+ break;
+ case ANM_F_GETUP:
+ res = setExpressionBtp(10);
+ break;
+ case ANM_F_SIT:
+ res = setExpressionBtp(0);
+ attr = J3DFrameCtrl::LOOP_REPEAT_e;
+ break;
+ case ANM_F_STEP:
+ res = setExpressionBtp(11);
+ break;
+ case ANM_FH_SAD:
+ res = setExpressionBtp(12);
+ attr = J3DFrameCtrl::LOOP_REPEAT_e;
+ break;
+ case ANM_FH_SMILE:
+ res = setExpressionBtp(13);
+ attr = J3DFrameCtrl::LOOP_REPEAT_e;
+ break;
+ case ANM_FH_KIZUKU:
+ res = setExpressionBtp(0);
+ attr = J3DFrameCtrl::LOOP_REPEAT_e;
+ break;
+ case ANM_F_SICK_DEMO_WAIT:
+ res = setExpressionBtp(14);
+ attr = J3DFrameCtrl::LOOP_REPEAT_e;
+ break;
+ default:
+ bck_anm = NULL;
+ break;
+ }
+
+ if (!res) {
+ return false;
+ }
+
+ if (bck_anm == NULL) {
+ return true;
+ }
+
+ if (setBckAnm(bck_anm, 1.0f, attr, 0, -1, i_modify)) {
+ mAnmFlags |= ANM_PLAY_BCK | ANM_PAUSE_BCK;
+ mExpressionLoops = 0;
+ return true;
+ }
+
+ return false;
}
/* 80B8F898-80B8F9CC 001D78 0134+00 2/0 0/0 0/0 .text setExpressionBtp__11daNpc_zrC_cFi
*/
-void daNpc_zrC_c::setExpressionBtp(int param_0) {
- // NONMATCHING
+bool daNpc_zrC_c::setExpressionBtp(int i_idx) {
+ J3DAnmTexPattern* btp_anm = NULL;
+ int attr = J3DFrameCtrl::LOOP_ONCE_e;
+ mAnmFlags &= ~(ANM_PLAY_BTP | ANM_PAUSE_BTP | ANM_FLAG_800);
+
+ if (l_btpGetParamList[i_idx].fileIdx >= 0) {
+ btp_anm = getTexPtrnAnmP(l_resNames[l_btpGetParamList[i_idx].arcIdx],
+ l_btpGetParamList[i_idx].fileIdx);
+ }
+
+ switch (i_idx) {
+ case 0:
+ attr = J3DFrameCtrl::LOOP_REPEAT_e;
+ break;
+ case 9:
+ attr = J3DFrameCtrl::LOOP_REPEAT_e;
+ break;
+ case 12:
+ attr = J3DFrameCtrl::LOOP_REPEAT_e;
+ break;
+ case 13:
+ attr = J3DFrameCtrl::LOOP_REPEAT_e;
+ break;
+ case 14:
+ attr = J3DFrameCtrl::LOOP_REPEAT_e;
+ break;
+ case 1:
+ case 2:
+ case 3:
+ case 4:
+ case 5:
+ case 6:
+ case 7:
+ case 8:
+ case 10:
+ case 11:
+ break;
+ default:
+ btp_anm = NULL;
+ break;
+ }
+
+ if (btp_anm == NULL) {
+ return true;
+ }
+
+ if (setBtpAnm(btp_anm, mpMorf->getModel()->getModelData(), 1.0f, attr)) {
+ mAnmFlags |= ANM_PLAY_BTP | ANM_PAUSE_BTP;
+ if (i_idx == 0) {
+ mAnmFlags |= ANM_FLAG_800;
+ }
+ return true;
+ }
+
+ return false;
}
/* 80B8F9CC-80B8F9F8 001EAC 002C+00 1/0 0/0 0/0 .text setExpression__11daNpc_zrC_cFif */
-void daNpc_zrC_c::setExpression(int param_0, f32 param_1) {
- // NONMATCHING
+void daNpc_zrC_c::setExpression(int i_expression, f32 i_morf) {
+ if (i_expression >= 0 && i_expression < 18) {
+ mExpression = i_expression;
+ mExpressionMorfOverride = i_morf;
+ mExpressionPrevPhase = -1;
+ mExpressionPhase = 0;
+ }
}
/* 80B8F9F8-80B8FBE4 001ED8 01EC+00 2/0 0/0 0/0 .text setMotionAnm__11daNpc_zrC_cFif */
-bool daNpc_zrC_c::setMotionAnm(int param_0, f32 param_1) {
- // NONMATCHING
+// NONMATCHING regalloc
+bool daNpc_zrC_c::setMotionAnm(int i_idx, f32 i_morf) {
+ J3DAnmTransformKey* bck_anm = NULL;
+ J3DAnmTextureSRTKey* btk_anm = NULL;
+ int btk_idx = 0;
+ int attr = J3DFrameCtrl::LOOP_REPEAT_e;
+ int btk_attr = J3DFrameCtrl::LOOP_REPEAT_e;
+ mAnmFlags &= ~ANM_MOTION_FLAGS;
+
+ if (l_bckGetParamList[i_idx].fileIdx >= 0) {
+ bck_anm = getTrnsfrmKeyAnmP(l_resNames[l_bckGetParamList[i_idx].arcIdx],
+ l_bckGetParamList[i_idx].fileIdx);
+ }
+
+ switch (i_idx) {
+ case ANM_WAIT_A:
+ break;
+ case ANM_TOPRAY:
+ attr = J3DFrameCtrl::LOOP_ONCE_e;
+ break;
+ case ANM_PRAY:
+ break;
+ case ANM_GETUP:
+ attr = J3DFrameCtrl::LOOP_ONCE_e;
+ break;
+ case ANM_STEP:
+ attr = J3DFrameCtrl::LOOP_ONCE_e;
+ break;
+ case ANM_SIT:
+ break;
+ case ANM_SIT_TALK:
+ attr = J3DFrameCtrl::LOOP_ONCE_e;
+ break;
+ case ANM_SAD_TALK:
+ attr = J3DFrameCtrl::LOOP_ONCE_e;
+ btk_idx = 1;
+ btk_attr = J3DFrameCtrl::LOOP_ONCE_e;
+ break;
+ case ANM_SAD_WAIT:
+ btk_idx = 2;
+ break;
+ case ANM_TALK_A:
+ attr = J3DFrameCtrl::LOOP_ONCE_e;
+ break;
+ case ANM_KIZUKU:
+ attr = J3DFrameCtrl::LOOP_ONCE_e;
+ btk_idx = 3;
+ btk_attr = J3DFrameCtrl::LOOP_ONCE_e;
+ break;
+ case ANM_KIZUKU_WAIT:
+ btk_idx = 4;
+ break;
+ case ANM_SMILE_TALK:
+ attr = J3DFrameCtrl::LOOP_ONCE_e;
+ break;
+ case ANM_SICK_DEMO_WAIT:
+ break;
+ default:
+ bck_anm = NULL;
+ btk_anm = NULL;
+ break;
+ }
+
+ if (l_btkGetParamList[btk_idx].fileIdx >= 0) {
+ btk_anm = getTexSRTKeyAnmP(l_resNames[l_btkGetParamList[btk_idx].arcIdx],
+ l_btkGetParamList[btk_idx].fileIdx);
+ }
+
+ if (btk_anm != NULL && setBtkAnm(btk_anm, mpMorf->getModel()->getModelData(), 1.0f, btk_attr)) {
+ mAnmFlags |= ANM_PLAY_BTK | ANM_PAUSE_BTK;
+ }
+
+ if (bck_anm != NULL && setMcaMorfAnm(bck_anm, 1.0f, i_morf, attr, 0, -1)) {
+ mAnmFlags |= ANM_PLAY_MORF | ANM_PAUSE_MORF;
+ mMotionLoops = 0;
+ mMotionAnm = i_idx;
+ }
}
/* 80B8FBE4-80B8FC28 0020C4 0044+00 1/0 0/0 0/0 .text setMotion__11daNpc_zrC_cFifi */
-void daNpc_zrC_c::setMotion(int param_0, f32 param_1, int param_2) {
- // NONMATCHING
+void daNpc_zrC_c::setMotion(int i_motion, f32 i_morf, BOOL i_restart) {
+ s16 motion = i_motion;
+ if (i_restart || mMotion != motion) {
+ if (i_motion >= 0 && i_motion < 14) {
+ mMotion = motion;
+ mMotionMorfOverride = i_morf;
+ mMotionPrevPhase = -1;
+ mMotionPhase = 0;
+ }
+ }
}
/* 80B8FC28-80B8FC30 002108 0008+00 1/0 0/0 0/0 .text drawDbgInfo__11daNpc_zrC_cFv */
-bool daNpc_zrC_c::drawDbgInfo() {
+BOOL daNpc_zrC_c::drawDbgInfo() {
return false;
}
@@ -1136,1332 +895,976 @@ void daNpc_zrC_c::drawOtherMdls() {
/* 80B8FC34-80B8FC8C 002114 0058+00 1/1 0/0 0/0 .text getTypeFromParam__11daNpc_zrC_cFv
*/
-void daNpc_zrC_c::getTypeFromParam() {
- // NONMATCHING
+u8 daNpc_zrC_c::getTypeFromParam() {
+ switch (fopAcM_GetParam(this) & 0xff) {
+ case 0:
+ return 0;
+ case 1:
+ return 1;
+ case 2:
+ return 2;
+ case 3:
+ return 3;
+ default:
+ return 0;
+ }
}
/* 80B8FC8C-80B8FD10 00216C 0084+00 1/1 0/0 0/0 .text isDelete__11daNpc_zrC_cFv */
-void daNpc_zrC_c::isDelete() {
- // NONMATCHING
+int daNpc_zrC_c::isDelete() {
+ if (mType == 4 || mType == 0 || mType == 1 || (mType == 2 && daNpcF_chkEvtBit(0x108)
+ && !daNpcF_chkEvtBit(0x10A)) || mType == 3)
+ {
+ return false;
+ }
+ return true;
}
/* 80B8FD10-80B8FF14 0021F0 0204+00 1/1 0/0 0/0 .text reset__11daNpc_zrC_cFv */
void daNpc_zrC_c::reset() {
- // NONMATCHING
+ initialize();
+ mpMatAnm->initialize();
+ mLookat.initialize();
+ for (int i = 0; i < 3; i++) {
+ mActorMngr[i].initialize();
+ }
+ mpNextActionFn = NULL;
+ mpActionFn = NULL;
+ field_0xe10 = 0;
+ field_0xe14 = 0;
+ field_0xe18 = 0;
+ field_0xe1c = 0;
+ mLookMode = -1;
+ mMode = 0;
+ mItemID = -1;
+ current.pos = home.pos;
+ old.pos = 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);
+ setLookMode(LOOK_NONE);
+ if (mType == 1) {
+ fopAcM_OffStatus(this, 0x100);
+ } else if (mType == 2) {
+ setExpression(EXPR_PRAY, -1.0f);
+ setMotion(2, -1.0f, FALSE);
+ }
+ field_0xe30 = false;
+ mSpeakEvent = false;
+ field_0x9ee = true;
}
-/* ############################################################################################## */
-/* 80B932DC-80B932E8 0000E0 000C+00 0/1 0/0 0/0 .rodata @5139 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5139[12] = {
- 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
-};
-COMPILER_STRIP_GATE(0x80B932DC, &lit_5139);
-#pragma pop
-
-/* 80B932E8-80B932F4 0000EC 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80B932E8, &lit_5140);
-#pragma pop
-
-/* 80B932F4-80B932FC 0000F8 0008+00 0/1 0/0 0/0 .rodata @5141 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5141[8] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80B932F4, &lit_5141);
-#pragma pop
-
-/* 80B932FC-80B93308 000100 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, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
-};
-COMPILER_STRIP_GATE(0x80B932FC, &lit_5142);
-#pragma pop
-
-/* 80B93308-80B93314 00010C 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, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80B93308, &lit_5143);
-#pragma pop
-
-/* 80B93314-80B9331C 000118 0008+00 0/1 0/0 0/0 .rodata @5144 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5144[8] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80B93314, &lit_5144);
-#pragma pop
-
-/* 80B9331C-80B93328 000120 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, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80B9331C, &lit_5145);
-#pragma pop
-
-/* 80B93328-80B9332C 00012C 0004+00 0/1 0/0 0/0 .rodata @5146 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5146[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
-};
-COMPILER_STRIP_GATE(0x80B93328, &lit_5146);
-#pragma pop
-
-/* 80B9332C-80B93338 000130 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, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
-};
-COMPILER_STRIP_GATE(0x80B9332C, &lit_5147);
-#pragma pop
-
-/* 80B93338-80B93344 00013C 000C+00 0/1 0/0 0/0 .rodata @5148 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5148[12] = {
- 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80B93338, &lit_5148);
-#pragma pop
-
-/* 80B93344-80B9334C 000148 0008+00 0/1 0/0 0/0 .rodata @5149 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5149[8] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80B93344, &lit_5149);
-#pragma pop
-
-/* 80B9334C-80B93358 000150 000C+00 0/1 0/0 0/0 .rodata @5150 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5150[12] = {
- 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
-};
-COMPILER_STRIP_GATE(0x80B9334C, &lit_5150);
-#pragma pop
-
-/* 80B93358-80B93364 00015C 000C+00 0/1 0/0 0/0 .rodata @5151 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5151[12] = {
- 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80B93358, &lit_5151);
-#pragma pop
-
-/* 80B93364-80B9336C 000168 0008+00 0/1 0/0 0/0 .rodata @5152 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5152[8] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80B93364, &lit_5152);
-#pragma pop
-
-/* 80B9336C-80B93378 000170 000C+00 0/1 0/0 0/0 .rodata @5153 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5153[12] = {
- 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
-};
-COMPILER_STRIP_GATE(0x80B9336C, &lit_5153);
-#pragma pop
-
-/* 80B93378-80B93384 00017C 000C+00 0/1 0/0 0/0 .rodata @5154 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5154[12] = {
- 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80B93378, &lit_5154);
-#pragma pop
-
-/* 80B93384-80B9338C 000188 0008+00 0/1 0/0 0/0 .rodata @5155 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5155[8] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80B93384, &lit_5155);
-#pragma pop
-
-/* 80B9338C-80B93398 000190 000C+00 0/1 0/0 0/0 .rodata @5156 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5156[12] = {
- 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
-};
-COMPILER_STRIP_GATE(0x80B9338C, &lit_5156);
-#pragma pop
-
-/* 80B93398-80B933A4 00019C 000C+00 0/1 0/0 0/0 .rodata @5157 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5157[12] = {
- 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80B93398, &lit_5157);
-#pragma pop
-
-/* 80B933A4-80B933AC 0001A8 0008+00 0/1 0/0 0/0 .rodata @5158 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5158[8] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80B933A4, &lit_5158);
-#pragma pop
-
-/* 80B933AC-80B933B8 0001B0 000C+00 0/1 0/0 0/0 .rodata @5159 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5159[12] = {
- 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
-};
-COMPILER_STRIP_GATE(0x80B933AC, &lit_5159);
-#pragma pop
-
-/* 80B933B8-80B933C4 0001BC 000C+00 0/1 0/0 0/0 .rodata @5160 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5160[12] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80B933B8, &lit_5160);
-#pragma pop
-
-/* 80B933C4-80B933CC 0001C8 0008+00 0/1 0/0 0/0 .rodata @5161 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5161[8] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80B933C4, &lit_5161);
-#pragma pop
-
-/* 80B933CC-80B933D8 0001D0 000C+00 0/1 0/0 0/0 .rodata @5162 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5162[12] = {
- 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
-};
-COMPILER_STRIP_GATE(0x80B933CC, &lit_5162);
-#pragma pop
-
-/* 80B933D8-80B933E4 0001DC 000C+00 0/1 0/0 0/0 .rodata @5163 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5163[12] = {
- 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80B933D8, &lit_5163);
-#pragma pop
-
-/* 80B933E4-80B933EC 0001E8 0008+00 0/1 0/0 0/0 .rodata @5164 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5164[8] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80B933E4, &lit_5164);
-#pragma pop
-
-/* 80B933EC-80B933F8 0001F0 000C+00 0/1 0/0 0/0 .rodata @5165 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5165[12] = {
- 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80B933EC, &lit_5165);
-#pragma pop
-
-/* 80B933F8-80B933FC 0001FC 0004+00 0/1 0/0 0/0 .rodata @5166 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5166[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
-};
-COMPILER_STRIP_GATE(0x80B933F8, &lit_5166);
-#pragma pop
-
-/* 80B933FC-80B93408 000200 000C+00 0/1 0/0 0/0 .rodata @5167 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5167[12] = {
- 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80B933FC, &lit_5167);
-#pragma pop
-
-/* 80B93408-80B9340C 00020C 0004+00 0/1 0/0 0/0 .rodata @5168 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5168[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
-};
-COMPILER_STRIP_GATE(0x80B93408, &lit_5168);
-#pragma pop
-
-/* 80B9340C-80B93418 000210 000C+00 0/1 0/0 0/0 .rodata @5169 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5169[12] = {
- 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80B9340C, &lit_5169);
-#pragma pop
-
-/* 80B93418-80B9341C 00021C 0004+00 0/1 0/0 0/0 .rodata @5170 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5170[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
-};
-COMPILER_STRIP_GATE(0x80B93418, &lit_5170);
-#pragma pop
-
-/* 80B9341C-80B93428 000220 000C+00 0/1 0/0 0/0 .rodata @5171 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5171[12] = {
- 0x00, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80B9341C, &lit_5171);
-#pragma pop
-
-/* 80B93428-80B9342C 00022C 0004+00 0/1 0/0 0/0 .rodata @5172 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5172[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
-};
-COMPILER_STRIP_GATE(0x80B93428, &lit_5172);
-#pragma pop
-
-/* 80B9342C-80B93438 000230 000C+00 0/1 0/0 0/0 .rodata @5173 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5173[12] = {
- 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
-};
-COMPILER_STRIP_GATE(0x80B9342C, &lit_5173);
-#pragma pop
-
-/* 80B93438-80B93444 00023C 000C+00 0/1 0/0 0/0 .rodata @5174 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5174[12] = {
- 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80B93438, &lit_5174);
-#pragma pop
-
-/* 80B93444-80B9344C 000248 0008+00 0/1 0/0 0/0 .rodata @5175 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5175[8] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80B93444, &lit_5175);
-#pragma pop
-
-/* 80B9344C-80B93458 000250 000C+00 0/1 0/0 0/0 .rodata @5176 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5176[12] = {
- 0x00, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
-};
-COMPILER_STRIP_GATE(0x80B9344C, &lit_5176);
-#pragma pop
-
-/* 80B93458-80B93464 00025C 000C+00 0/1 0/0 0/0 .rodata @5177 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5177[12] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80B93458, &lit_5177);
-#pragma pop
-
-/* 80B93464-80B9346C 000268 0008+00 0/1 0/0 0/0 .rodata @5178 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5178[8] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80B93464, &lit_5178);
-#pragma pop
-
-/* 80B9346C-80B93478 000270 000C+00 0/1 0/0 0/0 .rodata @5179 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5179[12] = {
- 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80B9346C, &lit_5179);
-#pragma pop
-
-/* 80B93478-80B9347C 00027C 0004+00 0/1 0/0 0/0 .rodata @5180 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5180[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
-};
-COMPILER_STRIP_GATE(0x80B93478, &lit_5180);
-#pragma pop
-
-/* 80B9347C-80B93488 000280 000C+00 0/1 0/0 0/0 .rodata @5181 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5181[12] = {
- 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80B9347C, &lit_5181);
-#pragma pop
-
-/* 80B93488-80B9348C 00028C 0004+00 0/1 0/0 0/0 .rodata @5182 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5182[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
-};
-COMPILER_STRIP_GATE(0x80B93488, &lit_5182);
-#pragma pop
-
-/* 80B9348C-80B93498 000290 000C+00 0/1 0/0 0/0 .rodata @5183 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5183[12] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80B9348C, &lit_5183);
-#pragma pop
-
-/* 80B93498-80B9349C 00029C 0004+00 0/1 0/0 0/0 .rodata @5184 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5184[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
-};
-COMPILER_STRIP_GATE(0x80B93498, &lit_5184);
-#pragma pop
-
/* 80B8FF14-80B904DC 0023F4 05C8+00 1/1 0/0 0/0 .text playExpression__11daNpc_zrC_cFv */
void daNpc_zrC_c::playExpression() {
- // NONMATCHING
+ daNpcF_anmPlayData dat0a = {ANM_F_TALK_A, daNpc_zrC_Param_c::m.mMorfFrames, 1};
+ daNpcF_anmPlayData dat0b = {ANM_F_WAIT_A, daNpc_zrC_Param_c::m.mMorfFrames, 0};
+ daNpcF_anmPlayData* pDat0[2] = {&dat0a, &dat0b};
+ daNpcF_anmPlayData dat1a = {ANM_F_SIT_TALK, daNpc_zrC_Param_c::m.mMorfFrames, 1};
+ daNpcF_anmPlayData dat1b = {ANM_F_SIT, daNpc_zrC_Param_c::m.mMorfFrames, 0};
+ daNpcF_anmPlayData* pDat1[2] = {&dat1a, &dat1b};
+ daNpcF_anmPlayData dat2 = {ANM_F_PRAY, daNpc_zrC_Param_c::m.mMorfFrames, 0};
+ daNpcF_anmPlayData* pDat2[1] = {&dat2};
+ daNpcF_anmPlayData dat3a = {ANM_F_SAD, daNpc_zrC_Param_c::m.mMorfFrames, 1};
+ daNpcF_anmPlayData dat3b = {ANM_FH_SAD, daNpc_zrC_Param_c::m.mMorfFrames, 0};
+ daNpcF_anmPlayData* pDat3[2] = {&dat3a, &dat3b};
+ daNpcF_anmPlayData dat4a = {ANM_F_SMILE, daNpc_zrC_Param_c::m.mMorfFrames, 1};
+ daNpcF_anmPlayData dat4b = {ANM_FH_SMILE, daNpc_zrC_Param_c::m.mMorfFrames, 0};
+ daNpcF_anmPlayData* pDat4[2] = {&dat4a, &dat4b};
+ daNpcF_anmPlayData dat5a = {ANM_F_KIZUKU, daNpc_zrC_Param_c::m.mMorfFrames, 1};
+ daNpcF_anmPlayData dat5b = {ANM_FH_KIZUKU, daNpc_zrC_Param_c::m.mMorfFrames, 0};
+ daNpcF_anmPlayData* pDat5[2] = {&dat5a, &dat5b};
+ daNpcF_anmPlayData dat6a = {ANM_F_SAD_WAIT, daNpc_zrC_Param_c::m.mMorfFrames, 1};
+ daNpcF_anmPlayData dat6b = {ANM_FH_SAD, daNpc_zrC_Param_c::m.mMorfFrames, 0};
+ daNpcF_anmPlayData* pDat6[2] = {&dat6a, &dat6b};
+ daNpcF_anmPlayData dat7a = {ANM_F_TALK_NORMAL, daNpc_zrC_Param_c::m.mMorfFrames, 1};
+ daNpcF_anmPlayData dat7b = {ANM_F_WAIT_A, daNpc_zrC_Param_c::m.mMorfFrames, 0};
+ daNpcF_anmPlayData* pDat7[2] = {&dat7a, &dat7b};
+ daNpcF_anmPlayData dat8a = {ANM_F_KIZUKU_WAIT, daNpc_zrC_Param_c::m.mMorfFrames, 1};
+ daNpcF_anmPlayData dat8b = {ANM_FH_KIZUKU, 0.0f, 0};
+ daNpcF_anmPlayData* pDat8[2] = {&dat8a, &dat8b};
+ daNpcF_anmPlayData dat9 = {ANM_FH_KIZUKU, daNpc_zrC_Param_c::m.mMorfFrames, 0};
+ daNpcF_anmPlayData* pDat9[1] = {&dat9};
+ daNpcF_anmPlayData dat10 = {ANM_FH_SAD, daNpc_zrC_Param_c::m.mMorfFrames, 0};
+ daNpcF_anmPlayData* pDat10[1] = {&dat10};
+ daNpcF_anmPlayData dat11 = {ANM_FH_SMILE, daNpc_zrC_Param_c::m.mMorfFrames, 0};
+ daNpcF_anmPlayData* pDat11[1] = {&dat11};
+ daNpcF_anmPlayData dat12 = {ANM_F_STEP, daNpc_zrC_Param_c::m.mMorfFrames, 0};
+ daNpcF_anmPlayData* pDat12[1] = {&dat12};
+ daNpcF_anmPlayData dat13a = {ANM_F_TOPRAY, daNpc_zrC_Param_c::m.mMorfFrames, 1};
+ daNpcF_anmPlayData dat13b = {ANM_F_PRAY, daNpc_zrC_Param_c::m.mMorfFrames, 0};
+ daNpcF_anmPlayData* pDat13[2] = {&dat13a, &dat13b};
+ daNpcF_anmPlayData dat14a = {ANM_F_GETUP, daNpc_zrC_Param_c::m.mMorfFrames, 1};
+ daNpcF_anmPlayData dat14b = {ANM_F_WAIT_A, daNpc_zrC_Param_c::m.mMorfFrames, 0};
+ daNpcF_anmPlayData* pDat14[2] = {&dat14a, &dat14b};
+ daNpcF_anmPlayData dat15 = {ANM_F_SIT, daNpc_zrC_Param_c::m.mMorfFrames, 0};
+ daNpcF_anmPlayData* pDat15[1] = {&dat15};
+ daNpcF_anmPlayData dat16 = {ANM_F_SICK_DEMO_WAIT, daNpc_zrC_Param_c::m.mMorfFrames, 0};
+ daNpcF_anmPlayData* pDat16[1] = {&dat16};
+ daNpcF_anmPlayData dat17 = {ANM_F_WAIT_A, daNpc_zrC_Param_c::m.mMorfFrames, 0};
+ daNpcF_anmPlayData* pDat17[1] = {&dat17};
+ daNpcF_anmPlayData** ppDat[18] = {
+ pDat0, pDat1, pDat2, pDat3, pDat4, pDat5, pDat6, pDat7, pDat8, pDat9, pDat10, pDat11,
+ pDat12, pDat13, pDat14, pDat15, pDat16, pDat17,
+ };
+ if (mExpression >= 0 && mExpression < 18) {
+ playExpressionAnm(ppDat);
+ }
}
-/* ############################################################################################## */
-/* 80B9349C-80B934E4 0002A0 0048+00 0/0 0/0 0/0 .rodata @5185 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5185[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,
-};
-COMPILER_STRIP_GATE(0x80B9349C, &lit_5185);
-#pragma pop
-
-/* 80B934E4-80B934F0 0002E8 000C+00 0/1 0/0 0/0 .rodata @5222 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5222[12] = {
- 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80B934E4, &lit_5222);
-#pragma pop
-
-/* 80B934F0-80B934F4 0002F4 0004+00 0/1 0/0 0/0 .rodata @5223 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5223[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
-};
-COMPILER_STRIP_GATE(0x80B934F0, &lit_5223);
-#pragma pop
-
-/* 80B934F4-80B93500 0002F8 000C+00 0/1 0/0 0/0 .rodata @5224 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5224[12] = {
- 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
-};
-COMPILER_STRIP_GATE(0x80B934F4, &lit_5224);
-#pragma pop
-
-/* 80B93500-80B9350C 000304 000C+00 0/1 0/0 0/0 .rodata @5225 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5225[12] = {
- 0x00, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80B93500, &lit_5225);
-#pragma pop
-
-/* 80B9350C-80B93514 000310 0008+00 0/1 0/0 0/0 .rodata @5226 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5226[8] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80B9350C, &lit_5226);
-#pragma pop
-
-/* 80B93514-80B93520 000318 000C+00 0/1 0/0 0/0 .rodata @5227 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5227[12] = {
- 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80B93514, &lit_5227);
-#pragma pop
-
-/* 80B93520-80B93524 000324 0004+00 0/1 0/0 0/0 .rodata @5228 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5228[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
-};
-COMPILER_STRIP_GATE(0x80B93520, &lit_5228);
-#pragma pop
-
-/* 80B93524-80B93530 000328 000C+00 0/1 0/0 0/0 .rodata @5229 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5229[12] = {
- 0x00, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80B93524, &lit_5229);
-#pragma pop
-
-/* 80B93530-80B93534 000334 0004+00 0/1 0/0 0/0 .rodata @5230 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5230[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
-};
-COMPILER_STRIP_GATE(0x80B93530, &lit_5230);
-#pragma pop
-
-/* 80B93534-80B93540 000338 000C+00 0/1 0/0 0/0 .rodata @5231 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5231[12] = {
- 0x00, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
-};
-COMPILER_STRIP_GATE(0x80B93534, &lit_5231);
-#pragma pop
-
-/* 80B93540-80B9354C 000344 000C+00 0/1 0/0 0/0 .rodata @5232 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5232[12] = {
- 0x00, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80B93540, &lit_5232);
-#pragma pop
-
-/* 80B9354C-80B93554 000350 0008+00 0/1 0/0 0/0 .rodata @5233 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5233[8] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80B9354C, &lit_5233);
-#pragma pop
-
-/* 80B93554-80B93560 000358 000C+00 0/1 0/0 0/0 .rodata @5234 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5234[12] = {
- 0x00, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80B93554, &lit_5234);
-#pragma pop
-
-/* 80B93560-80B93564 000364 0004+00 0/1 0/0 0/0 .rodata @5235 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5235[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
-};
-COMPILER_STRIP_GATE(0x80B93560, &lit_5235);
-#pragma pop
-
-/* 80B93564-80B93570 000368 000C+00 0/1 0/0 0/0 .rodata @5236 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5236[12] = {
- 0x00, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
-};
-COMPILER_STRIP_GATE(0x80B93564, &lit_5236);
-#pragma pop
-
-/* 80B93570-80B9357C 000374 000C+00 0/1 0/0 0/0 .rodata @5237 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5237[12] = {
- 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80B93570, &lit_5237);
-#pragma pop
-
-/* 80B9357C-80B93584 000380 0008+00 0/1 0/0 0/0 .rodata @5238 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5238[8] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80B9357C, &lit_5238);
-#pragma pop
-
-/* 80B93584-80B93590 000388 000C+00 0/1 0/0 0/0 .rodata @5239 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5239[12] = {
- 0x00, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
-};
-COMPILER_STRIP_GATE(0x80B93584, &lit_5239);
-#pragma pop
-
-/* 80B93590-80B9359C 000394 000C+00 0/1 0/0 0/0 .rodata @5240 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5240[12] = {
- 0x00, 0x1D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80B93590, &lit_5240);
-#pragma pop
-
-/* 80B9359C-80B935A4 0003A0 0008+00 0/1 0/0 0/0 .rodata @5241 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5241[8] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80B9359C, &lit_5241);
-#pragma pop
-
-/* 80B935A4-80B935B0 0003A8 000C+00 0/1 0/0 0/0 .rodata @5242 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5242[12] = {
- 0x00, 0x1D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80B935A4, &lit_5242);
-#pragma pop
-
-/* 80B935B0-80B935B4 0003B4 0004+00 0/1 0/0 0/0 .rodata @5243 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5243[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
-};
-COMPILER_STRIP_GATE(0x80B935B0, &lit_5243);
-#pragma pop
-
-/* 80B935B4-80B935C0 0003B8 000C+00 0/1 0/0 0/0 .rodata @5244 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5244[12] = {
- 0x00, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
-};
-COMPILER_STRIP_GATE(0x80B935B4, &lit_5244);
-#pragma pop
-
-/* 80B935C0-80B935CC 0003C4 000C+00 0/1 0/0 0/0 .rodata @5245 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5245[12] = {
- 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80B935C0, &lit_5245);
-#pragma pop
-
-/* 80B935CC-80B935D4 0003D0 0008+00 0/1 0/0 0/0 .rodata @5246 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5246[8] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80B935CC, &lit_5246);
-#pragma pop
-
-/* 80B935D4-80B935E0 0003D8 000C+00 0/1 0/0 0/0 .rodata @5247 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5247[12] = {
- 0x00, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
-};
-COMPILER_STRIP_GATE(0x80B935D4, &lit_5247);
-#pragma pop
-
-/* 80B935E0-80B935EC 0003E4 000C+00 0/1 0/0 0/0 .rodata @5248 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5248[12] = {
- 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80B935E0, &lit_5248);
-#pragma pop
-
-/* 80B935EC-80B935F4 0003F0 0008+00 0/1 0/0 0/0 .rodata @5249 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5249[8] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80B935EC, &lit_5249);
-#pragma pop
-
-/* 80B935F4-80B93600 0003F8 000C+00 0/1 0/0 0/0 .rodata @5250 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5250[12] = {
- 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
-};
-COMPILER_STRIP_GATE(0x80B935F4, &lit_5250);
-#pragma pop
-
-/* 80B93600-80B9360C 000404 000C+00 0/1 0/0 0/0 .rodata @5251 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5251[12] = {
- 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80B93600, &lit_5251);
-#pragma pop
-
-/* 80B9360C-80B93614 000410 0008+00 0/1 0/0 0/0 .rodata @5252 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5252[8] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80B9360C, &lit_5252);
-#pragma pop
-
-/* 80B93614-80B93620 000418 000C+00 0/1 0/0 0/0 .rodata @5253 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5253[12] = {
- 0x00, 0x16, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80B93614, &lit_5253);
-#pragma pop
-
-/* 80B93620-80B93624 000424 0004+00 0/1 0/0 0/0 .rodata @5254 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5254[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
-};
-COMPILER_STRIP_GATE(0x80B93620, &lit_5254);
-#pragma pop
-
-/* 80B93624-80B93630 000428 000C+00 0/1 0/0 0/0 .rodata @5255 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5255[12] = {
- 0x00, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80B93624, &lit_5255);
-#pragma pop
-
-/* 80B93630-80B93634 000434 0004+00 0/1 0/0 0/0 .rodata @5256 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5256[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
-};
-COMPILER_STRIP_GATE(0x80B93630, &lit_5256);
-#pragma pop
-
/* 80B904DC-80B90940 0029BC 0464+00 1/1 0/0 0/0 .text playMotion__11daNpc_zrC_cFv */
void daNpc_zrC_c::playMotion() {
- // NONMATCHING
+ daNpcF_anmPlayData dat0 = {ANM_WAIT_A, daNpc_zrC_Param_c::m.mMorfFrames, 0};
+ daNpcF_anmPlayData* pDat0[1] = {&dat0};
+ daNpcF_anmPlayData dat1a = {ANM_SIT_TALK, daNpc_zrC_Param_c::m.mMorfFrames, 1};
+ daNpcF_anmPlayData dat1b = {ANM_SIT, daNpc_zrC_Param_c::m.mMorfFrames, 0};
+ daNpcF_anmPlayData* pDat1[2] = {&dat1a, &dat1b};
+ daNpcF_anmPlayData dat2 = {ANM_PRAY, daNpc_zrC_Param_c::m.mMorfFrames, 0};
+ daNpcF_anmPlayData* pDat2[1] = {&dat2};
+ daNpcF_anmPlayData dat3 = {ANM_SIT, daNpc_zrC_Param_c::m.mMorfFrames, 0};
+ daNpcF_anmPlayData* pDat3[1] = {&dat3};
+ daNpcF_anmPlayData dat4a = {ANM_SAD_TALK, daNpc_zrC_Param_c::m.mMorfFrames, 1};
+ daNpcF_anmPlayData dat4b = {ANM_SAD_WAIT, 0.0f, 0};
+ daNpcF_anmPlayData* pDat4[2] = {&dat4a, &dat4b};
+ daNpcF_anmPlayData dat5 = {ANM_SAD_WAIT, daNpc_zrC_Param_c::m.mMorfFrames, 0};
+ daNpcF_anmPlayData* pDat5[1] = {&dat5};
+ daNpcF_anmPlayData dat6a = {ANM_TALK_A, daNpc_zrC_Param_c::m.mMorfFrames, 1};
+ daNpcF_anmPlayData dat6b = {ANM_WAIT_A, 0.0f, 0};
+ daNpcF_anmPlayData* pDat6[2] = {&dat6a, &dat6b};
+ daNpcF_anmPlayData dat7a = {ANM_KIZUKU, daNpc_zrC_Param_c::m.mMorfFrames, 1};
+ daNpcF_anmPlayData dat7b = {ANM_KIZUKU_WAIT, 0.0f, 0};
+ daNpcF_anmPlayData* pDat7[2] = {&dat7a, &dat7b};
+ daNpcF_anmPlayData dat8 = {ANM_KIZUKU_WAIT, daNpc_zrC_Param_c::m.mMorfFrames, 0};
+ daNpcF_anmPlayData* pDat8[1] = {&dat8};
+ daNpcF_anmPlayData dat9a = {ANM_SMILE_TALK, daNpc_zrC_Param_c::m.mMorfFrames, 1};
+ daNpcF_anmPlayData dat9b = {ANM_WAIT_A, 0.0f, 0};
+ daNpcF_anmPlayData* pDat9[2] = {&dat9a, &dat9b};
+ daNpcF_anmPlayData dat10a = {ANM_TOPRAY, daNpc_zrC_Param_c::m.mMorfFrames, 1};
+ daNpcF_anmPlayData dat10b = {ANM_PRAY, daNpc_zrC_Param_c::m.mMorfFrames, 0};
+ daNpcF_anmPlayData* pDat10[2] = {&dat10a, &dat10b};
+ daNpcF_anmPlayData dat11a = {ANM_GETUP, daNpc_zrC_Param_c::m.mMorfFrames, 1};
+ daNpcF_anmPlayData dat11b = {ANM_WAIT_A, daNpc_zrC_Param_c::m.mMorfFrames, 0};
+ daNpcF_anmPlayData* pDat11[2] = {&dat11a, &dat11b};
+ daNpcF_anmPlayData dat12 = {ANM_STEP, 3.0f, 0};
+ daNpcF_anmPlayData* pDat12[1] = {&dat12};
+ daNpcF_anmPlayData dat13 = {ANM_SICK_DEMO_WAIT, daNpc_zrC_Param_c::m.mMorfFrames, 0};
+ daNpcF_anmPlayData* pDat13[1] = {&dat13};
+ daNpcF_anmPlayData** ppDat[14] = {
+ pDat0, pDat1, pDat2, pDat3, pDat4, pDat5, pDat6, pDat7, pDat8, pDat9, pDat10, pDat11,
+ pDat12, pDat13,
+ };
+ if (mMotion >= 0 && mMotion < 14) {
+ playMotionAnm2(ppDat);
+ }
}
/* 80B90940-80B90A6C 002E20 012C+00 1/1 0/0 0/0 .text
* playMotionAnm2__11daNpc_zrC_cFPPPQ28daNpcF_c18daNpcF_anmPlayData */
-void daNpc_zrC_c::playMotionAnm2(daNpcF_c::daNpcF_anmPlayData*** param_0) {
- // NONMATCHING
+// NONMATCHING regalloc
+void daNpc_zrC_c::playMotionAnm2(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 && playData->numLoops > 0 &&
+ playData->numLoops <= mMotionLoops)
+ {
+ mMotionPhase++;
+ playData = i_data[mMotion][mMotionPhase];
+ }
+ if (playData != NULL && mMotionPrevPhase != mMotionPhase) {
+ setMotionAnm(playData->idx, 0.0f);
+ f32 morf = playData->morf;
+ if (mMotionPhase == 0 && 0.0f <= mMotionMorfOverride) {
+ morf = mMotionMorfOverride;
+ }
+ if (morf > 0.0f) {
+ mExpressionMorf = 0.0f;
+ mpMorf->setMorf(morf);
+ }
+ }
+ }
+ mMotionPrevPhase = mMotionPhase;
}
/* 80B90A6C-80B90A98 002F4C 002C+00 2/2 0/0 0/0 .text
* chkAction__11daNpc_zrC_cFM11daNpc_zrC_cFPCvPvPv_i */
-void daNpc_zrC_c::chkAction(int (daNpc_zrC_c::*param_0)(void*)) {
- // NONMATCHING
+BOOL daNpc_zrC_c::chkAction(ActionFn i_action) {
+ return mpActionFn == i_action;
}
/* 80B90A98-80B90B40 002F78 00A8+00 2/2 0/0 0/0 .text
* setAction__11daNpc_zrC_cFM11daNpc_zrC_cFPCvPvPv_i */
-void daNpc_zrC_c::setAction(int (daNpc_zrC_c::*param_0)(void*)) {
- // NONMATCHING
+BOOL daNpc_zrC_c::setAction(ActionFn i_action) {
+ mMode = 3;
+ if (mpActionFn != NULL) {
+ (this->*mpActionFn)(NULL);
+ }
+ mMode = 0;
+ mpActionFn = i_action;
+ if (mpActionFn != NULL) {
+ (this->*mpActionFn)(NULL);
+ }
+ return TRUE;
}
/* 80B90B40-80B90C34 003020 00F4+00 1/1 0/0 0/0 .text selectAction__11daNpc_zrC_cFv */
-void daNpc_zrC_c::selectAction() {
- // NONMATCHING
+BOOL daNpc_zrC_c::selectAction() {
+ mpNextActionFn = NULL;
+ if (daNpc_zrC_Param_c::m.mTest) {
+ mpNextActionFn = &test;
+ } else {
+ switch (mType) {
+ case 1:
+ mpNextActionFn = &waitSick;
+ break;
+ case 2:
+ mpNextActionFn = &waitPray;
+ break;
+ case 3:
+ mpNextActionFn = &waitThrone;
+ break;
+ default:
+ mpNextActionFn = &wait;
+ break;
+ }
+ }
+ return TRUE;
}
/* 80B90C34-80B90D48 003114 0114+00 1/1 0/0 0/0 .text doNormalAction__11daNpc_zrC_cFi */
-void daNpc_zrC_c::doNormalAction(int param_0) {
- // NONMATCHING
+void daNpc_zrC_c::doNormalAction(BOOL param_0) {
+ if (param_0 && hitChk2(&mCcCyl, TRUE, FALSE)) {
+ int damage_timer;
+ if (mCutType == daPy_py_c::CUT_TYPE_TURN_RIGHT) {
+ damage_timer = 20;
+ } else {
+ damage_timer = daNpc_zrC_Param_c::m.mDamageTimer;
+ }
+ setDamage(damage_timer, EXPR_WAIT_A, MOT_WAIT_A);
+ setLookMode(LOOK_RESET);
+ } else if (mIsDamaged && mDamageTimer == 0) {
+ mMode = 0;
+ mIsDamaged = false;
+ }
+
+ mOrderEvtNo = EVT_NONE;
+ if (mpNextActionFn != NULL) {
+ if (mpActionFn == mpNextActionFn) {
+ (this->*mpActionFn)(NULL);
+ } else {
+ setAction(mpNextActionFn);
+ }
+ }
}
-/* ############################################################################################## */
-/* 80B9369C-80B9369C 0004A0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
-#pragma push
-#pragma force_active on
-SECTION_DEAD static char const* const stringBase_80B936D7 = "NO_RESPONSE";
-#pragma pop
-
/* 80B90D48-80B9113C 003228 03F4+00 1/1 0/0 0/0 .text doEvent__11daNpc_zrC_cFv */
-void daNpc_zrC_c::doEvent() {
- // NONMATCHING
+// NONMATCHING minor regalloc
+BOOL daNpc_zrC_c::doEvent() {
+ BOOL ret = 0;
+
+ if (dComIfGp_event_runCheck() != FALSE) {
+ dEvent_manager_c& event_mgr = dComIfGp_getEventManager();
+ if ((eventInfo.checkCommandTalk() || eventInfo.i_checkCommandDemoAccrpt()) && !mSpeakEvent)
+ {
+ mOrderNewEvt = false;
+ }
+
+ if (eventInfo.checkCommandTalk()) {
+ if (chkAction(&talk)) {
+ (this->*mpActionFn)(NULL);
+ } else if (dComIfGp_event_chkTalkXY()) {
+ if (dComIfGp_evmng_ChkPresentEnd()) {
+ if (mType == 2 && dComIfGp_event_getPreItemNo() == ASHS_SCRIBBLING) {
+ mFlowID = 0x35;
+ mOrderEvtNo = EVT_EARRING_GET;
+ changeEvent(l_resNames[l_evtGetParamList[mOrderEvtNo].arcIdx],
+ l_evtNames[l_evtGetParamList[mOrderEvtNo].fileIdx], 2, 0xffff);
+ } else {
+ s16 idx = dComIfGp_getEventManager().getEventIdx(this, "NO_RESPONSE", 0xff);
+ dComIfGp_getEvent().reset(this);
+ fopAcM_orderChangeEventId(this, idx, 1, 0xffff);
+ field_0x9ec = true;
+ }
+ }
+ } else {
+ setAction(&talk);
+ }
+ ret = TRUE;
+
+ } else {
+ if (mItemID != -1) {
+ dComIfGp_event_setItemPartnerId(mItemID);
+ mItemID = -1;
+ }
+
+ int staff_id = event_mgr.getMyStaffId(l_myName, NULL, 0);
+ if (staff_id != -1) {
+ mStaffID = staff_id;
+ int act_idx = event_mgr.getMyActIdx(staff_id, mEvtCutNameList, 2, 0, 0);
+ if ((this->*mEvtCutList[act_idx])(staff_id)) {
+ event_mgr.cutEnd(staff_id);
+ }
+ ret = TRUE;
+ }
+
+ if (eventInfo.i_checkCommandDemoAccrpt() && mEventIdx != -1
+ && event_mgr.endCheck(mEventIdx)) {
+ dComIfGp_event_reset();
+ mOrderEvtNo = EVT_NONE;
+ mEventIdx = -1;
+ mFlowID = home.angle.x;
+ }
+ }
+
+ int msg_timer = mMsgTimer;
+ int expression, motion;
+ if (ctrlMsgAnm(expression, motion, this, FALSE)) {
+ if (!field_0x9eb) {
+ setExpression(expression, -1.0f);
+ setMotion(motion, -1.0f, FALSE);
+ }
+ } else if (msg_timer != 0 && !field_0x9eb) {
+ setExpressionTalkAfter();
+ }
+
+ switch (mExpression) {
+ case EXPR_KIZUKU:
+ mAnmFlags &= ~ANM_PAUSE_EXPRESSION;
+ break;
+ case EXPR_WAIT_A:
+ break;
+ default:
+ if (mExpressionPhase != 0) {
+ mAnmFlags &= ~ANM_PAUSE_EXPRESSION;
+ }
+ break;
+ }
+
+ } else {
+ mMsgTimer = 0;
+ if (mStaffID != -1) {
+ mpActionFn = NULL;
+ mStaffID = -1;
+ }
+ }
+
+ return ret;
}
/* 80B9113C-80B91160 00361C 0024+00 9/9 0/0 0/0 .text setLookMode__11daNpc_zrC_cFi */
-void daNpc_zrC_c::setLookMode(int param_0) {
- // NONMATCHING
+void daNpc_zrC_c::setLookMode(int i_lookMode) {
+ if (i_lookMode >= 0 && i_lookMode < 6 && i_lookMode != mLookMode) {
+ mLookMode = i_lookMode;
+ }
}
-/* ############################################################################################## */
-/* 80B93634-80B9366C 000438 0038+00 0/0 0/0 0/0 .rodata @5257 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5257[56] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 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(0x80B93634, &lit_5257);
-#pragma pop
-
-/* 80B9366C-80B93678 000470 000C+00 0/1 0/0 0/0 .rodata @5460 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5460[12] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80B9366C, &lit_5460);
-#pragma pop
-
-/* 80B93678-80B9367C 00047C 0004+00 0/1 0/0 0/0 .rodata @5517 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_5517 = -80.0f;
-COMPILER_STRIP_GATE(0x80B93678, &lit_5517);
-#pragma pop
-
-/* 80B9367C-80B93680 000480 0004+00 0/1 0/0 0/0 .rodata @5518 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_5518 = 80.0f;
-COMPILER_STRIP_GATE(0x80B9367C, &lit_5518);
-#pragma pop
-
-/* 80B93680-80B93684 000484 0004+00 0/1 0/0 0/0 .rodata @5519 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_5519 = 400.0f;
-COMPILER_STRIP_GATE(0x80B93680, &lit_5519);
-#pragma pop
-
-/* 80B93684-80B93688 000488 0004+00 0/1 0/0 0/0 .rodata @5520 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_5520 = 40.0f;
-COMPILER_STRIP_GATE(0x80B93684, &lit_5520);
-#pragma pop
-
/* 80B91160-80B91418 003640 02B8+00 1/1 0/0 0/0 .text lookat__11daNpc_zrC_cFv */
void daNpc_zrC_c::lookat() {
- // NONMATCHING
+ fopAc_ac_c* attn_actor = NULL;
+ J3DModel* model = mpMorf->getModel();
+ BOOL snap = false;
+ f32 body_down_angle = daNpc_zrC_Param_c::m.mBodyDownAngle;
+ f32 body_up_angle = daNpc_zrC_Param_c::m.mBodyUpAngle;
+ f32 body_right_angle = daNpc_zrC_Param_c::m.mBodyRightAngle;
+ f32 body_left_angle = daNpc_zrC_Param_c::m.mBodyLeftAngle;
+ f32 head_down_angle = daNpc_zrC_Param_c::m.mHeadDownAngle;
+ f32 head_up_angle = daNpc_zrC_Param_c::m.mHeadUpAngle;
+ f32 head_right_angle = daNpc_zrC_Param_c::m.mHeadRightAngle;
+ f32 head_left_angle = daNpc_zrC_Param_c::m.mHeadLeftAngle;
+ s16 angle_delta = mCurAngle.y - mOldAngle.y;
+ cXyz lookat_pos[3] = {mLookatPos[0], mLookatPos[1], mLookatPos[2]};
+ csXyz* lookat_angle[3] = {&mLookatAngle[0], &mLookatAngle[1], &mLookatAngle[2]};
+
+ switch (mLookMode) {
+ case LOOK_NONE:
+ break;
+ case LOOK_RESET:
+ snap = true;
+ break;
+ case LOOK_PLAYER:
+ case LOOK_PLAYER_TALK:
+ attn_actor = daPy_getPlayerActorClass();
+ if (mLookMode == LOOK_PLAYER_TALK) {
+ head_right_angle = -80.0f;
+ head_left_angle = 80.0f;
+ }
+ break;
+ case LOOK_ACTOR:
+ attn_actor = mActorMngr[1].getActorP();
+ break;
+ case LOOK_ATTN:
+ attn_actor = mActorMngr[2].getActorP();
+ break;
+ }
+
+ if (attn_actor != NULL) {
+ mLookPos = attn_actor->attention_info.position;
+ if (mLookMode == LOOK_ATTN) {
+ mLookPos.y += 400.0f;
+ } else if (mLookMode != LOOK_PLAYER && mLookMode != LOOK_PLAYER_TALK
+ && mLookMode != LOOK_ACTOR) {
+ mLookPos.y -= 40.0f;
+ }
+ mLookat.setAttnPos(&mLookPos);
+ } else {
+ mLookat.setAttnPos(NULL);
+ }
+
+ mLookat.setParam(body_down_angle, body_up_angle, body_right_angle, body_left_angle,
+ 0.0f, 0.0f, 0.0f, 0.0f,
+ head_down_angle, head_up_angle, head_right_angle, head_left_angle,
+ mCurAngle.y, lookat_pos);
+ mLookat.calc(this, model->getBaseTRMtx(), lookat_angle, snap, angle_delta, false);
}
/* 80B91418-80B914F4 0038F8 00DC+00 2/1 0/0 0/0 .text setExpressionTalkAfter__11daNpc_zrC_cFv */
void daNpc_zrC_c::setExpressionTalkAfter() {
- // NONMATCHING
+ switch (mExpression) {
+ case EXPR_SIT_TALK:
+ setExpression(EXPR_SIT, -1.0f);
+ break;
+ case EXPR_PRAY:
+ break;
+ case EXPR_SAD:
+ case EXPR_SAD_WAIT:
+ setExpression(EXPR_H_SAD, -1.0f);
+ break;
+ case EXPR_SMILE:
+ setExpression(EXPR_H_SMILE, -1.0f);
+ break;
+ case EXPR_KIZUKU:
+ case EXPR_KIZUKU_WAIT:
+ setExpression(EXPR_H_KIZUKU, -1.0f);
+ break;
+ default:
+ setExpression(EXPR_WAIT_A, -1.0f);
+ break;
+ }
}
/* 80B914F4-80B916FC 0039D4 0208+00 1/0 0/0 0/0 .text wait__11daNpc_zrC_cFPv */
-void daNpc_zrC_c::wait(void* param_0) {
- // NONMATCHING
+BOOL daNpc_zrC_c::wait(void* param_0) {
+ switch (mMode) {
+ case 0:
+ setExpression(EXPR_WAIT_A, -1.0f);
+ setMotion(MOT_WAIT_A, -1.0f, FALSE);
+ setLookMode(LOOK_NONE);
+ mTurnMode = 0;
+ mMode = 2;
+ // fallthrough
+
+ case 2: {
+ if (mIsDamaged) {
+ break;
+ }
+
+ BOOL player_attn = mActorMngr[0].getActorP() != NULL;
+ if (chkFindPlayer2(player_attn, shape_angle.y)) {
+ if (!player_attn) {
+ mActorMngr[0].entry(daPy_getPlayerActorClass());
+ mTurnMode = 0;
+ }
+ } else {
+ if (player_attn) {
+ mActorMngr[0].remove();
+ mTurnMode = 0;
+ }
+ }
+
+ if (mActorMngr[0].getActorP() != NULL) {
+ setLookMode(LOOK_PLAYER);
+ } else {
+ setLookMode(LOOK_NONE);
+ if (home.angle.y != mCurAngle.y && step(home.angle.y, EXPR_STEP, MOT_STEP, 15)) {
+ mMode = 0;
+ }
+ }
+
+ if (home.angle.y == mCurAngle.y) {
+ BOOL player_attn = mActorMngr[0].getActorP() != NULL;
+ fopAc_ac_c* attn_actor = getAttnActorP(
+ player_attn, srchAttnActor1, daNpc_zrC_Param_c::m.mAttnRadius,
+ daNpc_zrC_Param_c::m.mAttnUpperY, daNpc_zrC_Param_c::m.mAttnLowerY,
+ daNpc_zrC_Param_c::m.mAttnFovY, shape_angle.y, 120, TRUE);
+ if (attn_actor != NULL) {
+ mActorMngr[1].entry(attn_actor);
+ setLookMode(LOOK_ACTOR);
+ }
+ } else {
+ mAttnChangeTimer = 0;
+ }
+ break;
+ }
+
+ case 3:
+ break;
+ }
+
+ return TRUE;
}
/* 80B916FC-80B91808 003BDC 010C+00 1/0 0/0 0/0 .text waitSick__11daNpc_zrC_cFPv */
-void daNpc_zrC_c::waitSick(void* param_0) {
- // NONMATCHING
+BOOL daNpc_zrC_c::waitSick(void* param_0) {
+ switch (mMode) {
+ case 0:
+ setExpression(EXPR_SICK_DEMO_WAIT, -1.0f);
+ setMotion(MOT_SICK_DEMO_WAIT, -1.0f, FALSE);
+ setLookMode(LOOK_NONE);
+ mTurnMode = 0;
+ mAcch.SetGrndNone();
+ mAcch.SetWallNone();
+ mMode = 2;
+ // fallthrough
+
+ case 2:
+ if (daPy_py_c::i_checkNowWolf() && daPy_py_c::checkNowWolfEyeUp()) {
+ mCreatureSound.startCreatureVoiceLevel(Z2SE_ZRC_V_SLEEPING, -1);
+ }
+ break;
+
+ case 3:
+ break;
+ }
+
+ return TRUE;
}
-/* ############################################################################################## */
-/* 80B93688-80B9368C 00048C 0004+00 0/1 0/0 0/0 .rodata @5766 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_5766 = 100.0f;
-COMPILER_STRIP_GATE(0x80B93688, &lit_5766);
-#pragma pop
-
-/* 80B9368C-80B93690 000490 0004+00 0/1 0/0 0/0 .rodata @5767 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u32 const lit_5767 = 0x43360B61;
-COMPILER_STRIP_GATE(0x80B9368C, &lit_5767);
-#pragma pop
-
/* 80B91808-80B91F78 003CE8 0770+00 1/0 0/0 0/0 .text waitPray__11daNpc_zrC_cFPv */
-void daNpc_zrC_c::waitPray(void* param_0) {
- // NONMATCHING
+BOOL daNpc_zrC_c::waitPray(void* param_0) {
+ f32 player_dist = (daPy_getPlayerActorClass()->current.pos - current.pos).absXZ();
+
+ switch (mMode) {
+ case 0:
+ if (!field_0xe30) {
+ if (mMotionAnm != ANM_TOPRAY && mMotionAnm != ANM_PRAY) {
+ setExpression(EXPR_TOPRAY, -1.0f);
+ setMotion(MOT_TOPRAY, -1.0f, FALSE);
+ }
+ } else {
+ setExpression(EXPR_WAIT_A, -1.0f);
+ setMotion(MOT_WAIT_A, -1.0f, FALSE);
+ }
+ mTurnMode = 0;
+ mMode = 2;
+ // fallthrough
+
+ case 2:
+ if (!daNpcF_chkEvtBit(0x1df) && field_0xe30 && !daPy_py_c::i_checkNowWolf()
+ && player_dist <= daNpc_zrC_Param_c::m.field_0x6c
+ && !daPy_getPlayerActorClass()->checkPlayerFly()
+ && daPy_getPlayerActorClass()->checkSwimUp() && !dComIfGp_checkPlayerStatus0(0, 0x100))
+ {
+ cXyz pos = daPy_getPlayerActorClass()->current.pos;
+ pos.y += 100.0f;
+ if (!fopAcM_lc_c::lineCheck(&mHeadPos, &pos, this)) {
+ mSpeakEvent = true;
+ mFlowID = 0x34;
+ break;
+ }
+ }
+
+ if (mIsDamaged) {
+ break;
+ }
+
+ if (field_0xe30 == true) {
+ if (player_dist > daNpc_zrC_Param_c::m.field_0x70) {
+ setLookMode(LOOK_NONE);
+ if (home.angle.y != mCurAngle.y) {
+ if (step(home.angle.y, EXPR_TOPRAY, MOT_TOPRAY, 30)) {
+ mMode = 0;
+ }
+ } else if (mMotionAnm != ANM_TOPRAY && mMotionAnm != ANM_PRAY) {
+ setExpression(EXPR_TOPRAY, -1.0f);
+ setMotion(MOT_TOPRAY, -1.0f, FALSE);
+ }
+ mTurnMode = 0;
+ field_0xe30 = false;
+ }
+ } else if (mLookMode == LOOK_PLAYER || mLookMode == LOOK_PLAYER_TALK) {
+ if (player_dist > daNpc_zrC_Param_c::m.field_0x70) {
+ setLookMode(LOOK_NONE);
+ setMotion(MOT_PRAY, -1.0f, FALSE);
+ setExpression(EXPR_PRAY, -1.0f);
+ }
+ } else if (player_dist > daNpc_zrC_Param_c::m.field_0x6c) {
+ setLookMode(LOOK_NONE);
+ if (home.angle.y != mCurAngle.y) {
+ if (step(home.angle.y, -1, -1, 30)) {
+ mMode = 0;
+ }
+ } else if (mMotionAnm != ANM_TOPRAY && mMotionAnm != ANM_PRAY) {
+ setExpression(EXPR_TOPRAY, -1.0f);
+ setMotion(MOT_TOPRAY, -1.0f, FALSE);
+ }
+ } else {
+ mTurnMode = 0;
+ setLookMode(LOOK_PLAYER);
+ setExpression(EXPR_WAIT_A, -1.0f);
+ }
+
+ if ((mLookMode == LOOK_PLAYER || mLookMode == LOOK_PLAYER_TALK)) {
+ BOOL find_player = chkFindPlayer2(FALSE, shape_angle.y);
+ if (find_player || field_0xe30) {
+ s16 player_angle = fopAcM_searchPlayerAngleY(this);
+ if (find_player && !field_0xe30) {
+ setExpression(EXPR_GETUP, -1.0f);
+ setMotion(MOT_GETUP, -1.0f, FALSE);
+ field_0xe30 = true;
+ if (player_angle != mCurAngle.y && step(player_angle, -1, -1, 30)) {
+ setExpression(EXPR_WAIT_A, -1.0f);
+ setMotion(MOT_WAIT_A, -1.0f, FALSE);
+ mMode = 0;
+ }
+ } else if (mTurnMode != 0) {
+ int step_rate = 15;
+ if (mMotionAnm == ANM_GETUP) {
+ step_rate = 30;
+ }
+ if (step(player_angle, -1, -1, step_rate)) {
+ setExpression(EXPR_WAIT_A, -1.0f);
+ setMotion(MOT_WAIT_A, -1.0f, FALSE);
+ mMode = 0;
+ }
+ } else if (field_0xe30) {
+ s16 angle = cM_deg2s(daNpc_zrC_Param_c::m.mHeadLeftAngle);
+ if (abs((s16)(player_angle - current.angle.y)) > angle
+ && step(player_angle, EXPR_WAIT_A, MOT_STEP, 15))
+ {
+ setExpression(EXPR_WAIT_A, -1.0f);
+ setMotion(MOT_WAIT_A, -1.0f, FALSE);
+ mMode = 0;
+ }
+ }
+ }
+ }
+ break;
+
+ case 3:
+ break;
+ }
+
+ return TRUE;
}
/* 80B91F78-80B920EC 004458 0174+00 1/0 0/0 0/0 .text waitThrone__11daNpc_zrC_cFPv */
-void daNpc_zrC_c::waitThrone(void* param_0) {
- // NONMATCHING
+BOOL daNpc_zrC_c::waitThrone(void* param_0) {
+ switch (mMode) {
+ case 0:
+ setExpression(EXPR_SIT, -1.0f);
+ setMotion(MOT_SIT, -1.0f, FALSE);
+ setLookMode(LOOK_NONE);
+ mTurnMode = 0;
+ mAcch.SetGrndNone();
+ mAcch.SetWallNone();
+ field_0x9ea = true;
+ mMode = 2;
+ // fallthrough
+
+ case 2: {
+ if (mIsDamaged) {
+ break;
+ }
+
+ BOOL player_attn = mActorMngr[0].getActorP() != NULL;
+ if (chkFindPlayer2(player_attn, shape_angle.y)) {
+ if (!player_attn) {
+ mActorMngr[0].entry(daPy_getPlayerActorClass());
+ mTurnMode = 0;
+ }
+ } else {
+ if (player_attn) {
+ mActorMngr[0].remove();
+ mTurnMode = 0;
+ }
+ }
+
+ if (mActorMngr[0].getActorP() != NULL) {
+ setLookMode(LOOK_PLAYER);
+ } else {
+ setLookMode(LOOK_NONE);
+ }
+ break;
+ }
+
+ case 3:
+ break;
+ }
+
+ return TRUE;
}
/* 80B920EC-80B922D8 0045CC 01EC+00 2/0 0/0 0/0 .text talk__11daNpc_zrC_cFPv */
-void daNpc_zrC_c::talk(void* param_0) {
- // NONMATCHING
+BOOL daNpc_zrC_c::talk(void* param_0) {
+ BOOL ret = FALSE;
+ BOOL talk = FALSE;
+
+ switch (mMode) {
+ case 0:
+ if (mIsDamaged) {
+ break;
+ }
+
+ mSpeakEvent = false;
+ initTalk(mFlowID, NULL);
+ mTurnMode = 0;
+ mMode = 2;
+ // fallthrough
+
+ case 2:
+ if (field_0x9ea) {
+ talk = true;
+ if (mType == 3) {
+ setLookMode(LOOK_PLAYER_TALK);
+ mActorMngr[0].entry(daPy_getPlayerActorClass());
+ }
+ } else {
+ setLookMode(LOOK_PLAYER_TALK);
+ mActorMngr[0].entry(daPy_getPlayerActorClass());
+ if (mCurAngle.y == fopAcM_searchPlayerAngleY(this)) {
+ talk = TRUE;
+ } else if (step(fopAcM_searchPlayerAngleY(this), EXPR_STEP, MOT_STEP, 15)) {
+ setExpression(EXPR_WAIT_A, -1.0f);
+ setMotion(MOT_WAIT_A, -1.0f, FALSE);
+ mTurnMode = 0;
+ }
+ }
+
+ if (talk && talkProc(NULL, TRUE, NULL)) {
+ ret = TRUE;
+ mFlowID = home.angle.x;
+ }
+
+ if (ret) {
+ mMode = 3;
+ if (!field_0x9ec) {
+ dComIfGp_event_reset();
+ }
+ field_0x9ec = false;
+ }
+ break;
+
+ case 3:
+ break;
+ }
+
+ return ret;
}
/* 80B922D8-80B923BC 0047B8 00E4+00 2/0 0/0 0/0 .text test__11daNpc_zrC_cFPv */
-void daNpc_zrC_c::test(void* param_0) {
- // NONMATCHING
+BOOL daNpc_zrC_c::test(void* param_0) {
+ switch (mMode) {
+ case 0:
+ speedF = 0.0f;
+ speed.setall(0.0f);
+ mMode = 2;
+ // fallthrough
+
+ case 2:
+ if (daNpc_zrC_Param_c::m.mTestExpression != mExpression) {
+ setExpression(daNpc_zrC_Param_c::m.mTestExpression, daNpc_zrC_Param_c::m.mMorfFrames);
+ }
+ setMotion(daNpc_zrC_Param_c::m.mTestMotion, daNpc_zrC_Param_c::m.mMorfFrames, FALSE);
+ setLookMode(daNpc_zrC_Param_c::m.mTestLookMode);
+ mOrderEvtNo = EVT_NONE;
+ attention_info.flags = 0;
+ break;
+
+ case 3:
+ break;
+ }
+
+ return TRUE;
}
-/* ############################################################################################## */
-/* 80B93690-80B93694 000494 0004+00 0/1 0/0 0/0 .rodata @5926 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u32 const lit_5926 = 0x46A49CB0;
-COMPILER_STRIP_GATE(0x80B93690, &lit_5926);
-#pragma pop
-
-/* 80B93694-80B93698 000498 0004+00 0/1 0/0 0/0 .rodata @5927 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_5927 = 700.0f;
-COMPILER_STRIP_GATE(0x80B93694, &lit_5927);
-#pragma pop
-
-/* 80B93698-80B9369C 00049C 0004+00 0/1 0/0 0/0 .rodata @5928 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u32 const lit_5928 = 0x43348ED1;
-COMPILER_STRIP_GATE(0x80B93698, &lit_5928);
-#pragma pop
-
-/* 80B9369C-80B9369C 0004A0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
-#pragma push
-#pragma force_active on
-SECTION_DEAD static char const* const stringBase_80B936E3 = "prm";
-#pragma pop
-
/* 80B923BC-80B9286C 00489C 04B0+00 1/0 0/0 0/0 .text ECut_earringGet__11daNpc_zrC_cFi */
-void daNpc_zrC_c::ECut_earringGet(int param_0) {
- // NONMATCHING
+BOOL daNpc_zrC_c::ECut_earringGet(int i_staffID) {
+ dEvent_manager_c& event_mgr = dComIfGp_getEventManager();
+ BOOL ret = FALSE;
+
+ int prm = -1;
+ int* prm_p = dComIfGp_evmng_getMyIntegerP(i_staffID, "prm");
+ if (prm_p != NULL) {
+ prm = *prm_p;
+ }
+
+ if (event_mgr.getIsAddvance(i_staffID)) {
+ switch (prm) {
+ case 0:
+ setLookMode(LOOK_PLAYER);
+ daNpcF_offTmpBit(0xb);
+ daNpcF_offTmpBit(0xc);
+ daNpcF_offTmpBit(0xd);
+ daNpcF_offTmpBit(0xe);
+ daNpcF_offTmpBit(0xf);
+ break;
+
+ case 10:
+ initTalk(mFlowID, NULL);
+ break;
+
+ case 20: {
+ Z2GetAudioMgr()->subBgmStart(Z2BGM_LUTERA1);
+ cXyz pos(21070.344f, 700.0f, 180.55788f);
+ if (fopAcM_gc_c::gndCheck(&pos)) {
+ pos.y = fopAcM_gc_c::getGroundY();
+ }
+ s16 angle = cLib_targetAngleY(&pos, &current.pos);
+ daPy_getPlayerActorClass()->setPlayerPosAndAngle(&pos, angle, 0);
+ setAngle(angle + 0x8000);
+ break;
+ }
+
+ case 30:
+ initTalk(mFlowID, NULL);
+ break;
+
+ case 40: {
+ int item_no = 0;
+ if (mFlow.getEventId(&item_no) == 1) {
+ mItemID = fopAcM_createItemForPresentDemo(&current.pos, item_no,
+ 0, -1, -1, NULL, NULL);
+ }
+ break;
+ }
+
+ case 50:
+ initTalk(mFlowID, NULL);
+ break;
+
+ case 60:
+ initTalk(mFlowID, NULL);
+ break;
+
+ case 70:
+ initTalk(mFlowID, NULL);
+ break;
+
+ case 80:
+ setLookMode(LOOK_PLAYER);
+ initTalk(mFlowID, NULL);
+ break;
+
+ case 90:
+ setLookMode(LOOK_PLAYER);
+ setExpression(EXPR_WAIT_A, -1.0f);
+ setMotion(MOT_WAIT_A, -1.0f, FALSE);
+ Z2GetAudioMgr()->subBgmStop();
+ break;
+ }
+ }
+
+ switch (prm) {
+ case 0:
+ if (mCurAngle.y != fopAcM_searchPlayerAngleY(this)) {
+ if (step(fopAcM_searchPlayerAngleY(this), -1, -1, 30)) {
+ setExpression(EXPR_WAIT_A, -1.0f);
+ setMotion(MOT_WAIT_A, -1.0f, FALSE);
+ mTurnMode = 0;
+ ret = TRUE;
+ }
+ } else {
+ ret = TRUE;
+ }
+ break;
+
+ case 10:
+ if (talkProc(NULL, TRUE, NULL)) {
+ ret = TRUE;
+ }
+ break;
+
+ case 20:
+ ret = TRUE;
+ break;
+
+ case 30:
+ if (talkProc(NULL, TRUE, NULL)) {
+ ret = TRUE;
+ }
+ break;
+
+ case 40:
+ field_0x9eb = true;
+ ret = TRUE;
+ break;
+
+ case 50:
+ case 60:
+ case 70:
+ case 80:
+ if (talkProc(NULL, TRUE, NULL)) {
+ ret = TRUE;
+ }
+ break;
+
+ case 90:
+ ret = TRUE;
+ break;
+
+ default:
+ ret = TRUE;
+ break;
+ }
+
+ return ret;
}
/* 80B9286C-80B9288C 004D4C 0020+00 1/0 0/0 0/0 .text daNpc_zrC_Create__FPv */
-static void daNpc_zrC_Create(void* param_0) {
- // NONMATCHING
+static cPhs__Step daNpc_zrC_Create(void* i_this) {
+ return static_cast<daNpc_zrC_c*>(i_this)->create();
}
/* 80B9288C-80B928AC 004D6C 0020+00 1/0 0/0 0/0 .text daNpc_zrC_Delete__FPv */
-static void daNpc_zrC_Delete(void* param_0) {
- // NONMATCHING
+static int daNpc_zrC_Delete(void* i_this) {
+ return static_cast<daNpc_zrC_c*>(i_this)->Delete();
}
/* 80B928AC-80B928CC 004D8C 0020+00 1/0 0/0 0/0 .text daNpc_zrC_Execute__FPv */
-static void daNpc_zrC_Execute(void* param_0) {
- // NONMATCHING
+static int daNpc_zrC_Execute(void* i_this) {
+ return static_cast<daNpc_zrC_c*>(i_this)->Execute();
}
/* 80B928CC-80B928EC 004DAC 0020+00 1/0 0/0 0/0 .text daNpc_zrC_Draw__FPv */
-static void daNpc_zrC_Draw(void* param_0) {
- // NONMATCHING
+static int daNpc_zrC_Draw(void* i_this) {
+ return static_cast<daNpc_zrC_c*>(i_this)->Draw();
}
/* 80B928EC-80B928F4 004DCC 0008+00 1/0 0/0 0/0 .text daNpc_zrC_IsDelete__FPv */
-static bool daNpc_zrC_IsDelete(void* param_0) {
- return true;
-}
-
-/* 80B928F4-80B92924 004DD4 0030+00 1/0 0/0 0/0 .text calc__11J3DTexNoAnmCFPUs */
-// void J3DTexNoAnm::calc(u16* param_0) const {
-extern "C" void calc__11J3DTexNoAnmCFPUs() {
- // NONMATCHING
+static int daNpc_zrC_IsDelete(void* i_this) {
+ return 1;
}
-/* 80B92924-80B9296C 004E04 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
-}
-
-/* 80B9296C-80B929A8 004E4C 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
-}
+AUDIO_INSTANCES
-/* 80B929A8-80B92A78 004E88 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
-}
-
-/* 80B92A78-80B92AB4 004F58 003C+00 5/5 0/0 0/0 .text __dt__5csXyzFv */
-// csXyz::~csXyz() {
-extern "C" void __dt__5csXyzFv() {
- // NONMATCHING
-}
-
-/* 80B92AB4-80B92AB8 004F94 0004+00 2/2 0/0 0/0 .text __ct__5csXyzFv */
-// csXyz::csXyz() {
-extern "C" void __ct__5csXyzFv() {
- /* empty function */
-}
-
-/* 80B92AB8-80B92AF4 004F98 003C+00 6/6 0/0 0/0 .text __dt__4cXyzFv */
-// cXyz::~cXyz() {
-extern "C" void __dt__4cXyzFv() {
- // NONMATCHING
-}
-
-/* 80B92AF4-80B92AF8 004FD4 0004+00 2/2 0/0 0/0 .text __ct__4cXyzFv */
-// cXyz::cXyz() {
-extern "C" void __ct__4cXyzFv() {
- /* empty function */
-}
-
-/* 80B92AF8-80B92D44 004FD8 024C+00 1/1 0/0 0/0 .text __dt__8daNpcF_cFv */
-// daNpcF_c::~daNpcF_c() {
-extern "C" void __dt__8daNpcF_cFv() {
- // NONMATCHING
-}
-
-/* 80B92D44-80B92F34 005224 01F0+00 1/1 0/0 0/0 .text __ct__8daNpcF_cFv */
-// daNpcF_c::daNpcF_c() {
-extern "C" void __ct__8daNpcF_cFv() {
- // NONMATCHING
-}
-
-/* 80B92F34-80B92FA4 005414 0070+00 1/0 0/0 0/0 .text __dt__12dBgS_AcchCirFv */
-// dBgS_AcchCir::~dBgS_AcchCir() {
-extern "C" void __dt__12dBgS_AcchCirFv() {
- // NONMATCHING
-}
-
-/* 80B92FA4-80B93000 005484 005C+00 1/0 0/0 0/0 .text __dt__10dCcD_GSttsFv */
-// dCcD_GStts::~dCcD_GStts() {
-extern "C" void __dt__10dCcD_GSttsFv() {
- // NONMATCHING
-}
-
-/* 80B93000-80B93070 0054E0 0070+00 3/2 0/0 0/0 .text __dt__12dBgS_ObjAcchFv */
-// dBgS_ObjAcch::~dBgS_ObjAcch() {
-extern "C" void __dt__12dBgS_ObjAcchFv() {
- // NONMATCHING
-}
-
-/* 80B93070-80B930B8 005550 0048+00 1/0 0/0 0/0 .text __dt__12J3DFrameCtrlFv */
-// J3DFrameCtrl::~J3DFrameCtrl() {
-extern "C" void __dt__12J3DFrameCtrlFv() {
- // NONMATCHING
-}
-
-/* 80B930B8-80B930BC 005598 0004+00 1/0 0/0 0/0 .text setCollisions__8daNpcF_cFv */
-// void daNpcF_c::setCollisions() {
-extern "C" void setCollisions__8daNpcF_cFv() {
- /* empty function */
-}
-
-/* 80B930BC-80B93104 00559C 0048+00 1/0 0/0 0/0 .text __dt__10cCcD_GSttsFv */
-// cCcD_GStts::~cCcD_GStts() {
-extern "C" void __dt__10cCcD_GSttsFv() {
- // NONMATCHING
-}
-
-/* ############################################################################################## */
-/* 80B93BFC-80B93C08 000514 000C+00 2/2 0/0 0/0 .data __vt__17daNpc_zrC_Param_c */
-SECTION_DATA extern void* __vt__17daNpc_zrC_Param_c[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__17daNpc_zrC_Param_cFv,
+/* 80B93AD4-80B93AF4 -00001 0020+00 1/0 0/0 0/0 .data daNpc_zrC_MethodTable */
+static actor_method_class daNpc_zrC_MethodTable = {
+ (process_method_func)daNpc_zrC_Create,
+ (process_method_func)daNpc_zrC_Delete,
+ (process_method_func)daNpc_zrC_Execute,
+ (process_method_func)daNpc_zrC_IsDelete,
+ (process_method_func)daNpc_zrC_Draw,
};
-/* 80B93104-80B9318C 0055E4 0088+00 0/0 1/0 0/0 .text __sinit_d_a_npc_zrc_cpp */
-void __sinit_d_a_npc_zrc_cpp() {
- // NONMATCHING
-}
-
-#pragma push
-#pragma force_active on
-REGISTER_CTORS(0x80B93104, __sinit_d_a_npc_zrc_cpp);
-#pragma pop
-
-/* 80B9318C-80B93190 00566C 0004+00 1/0 0/0 0/0 .text adjustShapeAngle__11daNpc_zrC_cFv
- */
-void daNpc_zrC_c::adjustShapeAngle() {
- /* empty function */
-}
-
-/* 80B93190-80B931D8 005670 0048+00 2/1 0/0 0/0 .text __dt__17daNpc_zrC_Param_cFv */
-daNpc_zrC_Param_c::~daNpc_zrC_Param_c() {
- // NONMATCHING
-}
-
-/* 80B931D8-80B931E0 0056B8 0008+00 1/0 0/0 0/0 .text @36@__dt__12dBgS_ObjAcchFv */
-static void func_80B931D8() {
- // NONMATCHING
-}
-
-/* 80B931E0-80B931E8 0056C0 0008+00 1/0 0/0 0/0 .text @20@__dt__12dBgS_ObjAcchFv */
-static void func_80B931E0() {
- // NONMATCHING
-}
-
-/* ############################################################################################## */
-/* 80B93C7C-80B93C80 000074 0004+00 0/0 0/0 0/0 .bss
- * sInstance__40JASGlobalInstance<19JASDefaultBankTable> */
-#pragma push
-#pragma force_active on
-static u8 data_80B93C7C[4];
-#pragma pop
-
-/* 80B93C80-80B93C84 000078 0004+00 0/0 0/0 0/0 .bss
- * sInstance__35JASGlobalInstance<14JASAudioThread> */
-#pragma push
-#pragma force_active on
-static u8 data_80B93C80[4];
-#pragma pop
-
-/* 80B93C84-80B93C88 00007C 0004+00 0/0 0/0 0/0 .bss sInstance__27JASGlobalInstance<7Z2SeMgr> */
-#pragma push
-#pragma force_active on
-static u8 data_80B93C84[4];
-#pragma pop
-
-/* 80B93C88-80B93C8C 000080 0004+00 0/0 0/0 0/0 .bss sInstance__28JASGlobalInstance<8Z2SeqMgr> */
-#pragma push
-#pragma force_active on
-static u8 data_80B93C88[4];
-#pragma pop
-
-/* 80B93C8C-80B93C90 000084 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2SceneMgr>
- */
-#pragma push
-#pragma force_active on
-static u8 data_80B93C8C[4];
-#pragma pop
-
-/* 80B93C90-80B93C94 000088 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2StatusMgr>
- */
-#pragma push
-#pragma force_active on
-static u8 data_80B93C90[4];
-#pragma pop
-
-/* 80B93C94-80B93C98 00008C 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2DebugSys>
- */
-#pragma push
-#pragma force_active on
-static u8 data_80B93C94[4];
-#pragma pop
-
-/* 80B93C98-80B93C9C 000090 0004+00 0/0 0/0 0/0 .bss
- * sInstance__36JASGlobalInstance<15JAISoundStarter> */
-#pragma push
-#pragma force_active on
-static u8 data_80B93C98[4];
-#pragma pop
-
-/* 80B93C9C-80B93CA0 000094 0004+00 0/0 0/0 0/0 .bss
- * sInstance__35JASGlobalInstance<14Z2SoundStarter> */
-#pragma push
-#pragma force_active on
-static u8 data_80B93C9C[4];
-#pragma pop
-
-/* 80B93CA0-80B93CA4 000098 0004+00 0/0 0/0 0/0 .bss
- * sInstance__33JASGlobalInstance<12Z2SpeechMgr2> */
-#pragma push
-#pragma force_active on
-static u8 data_80B93CA0[4];
-#pragma pop
-
-/* 80B93CA4-80B93CA8 00009C 0004+00 0/0 0/0 0/0 .bss sInstance__28JASGlobalInstance<8JAISeMgr> */
-#pragma push
-#pragma force_active on
-static u8 data_80B93CA4[4];
-#pragma pop
-
-/* 80B93CA8-80B93CAC 0000A0 0004+00 0/0 0/0 0/0 .bss sInstance__29JASGlobalInstance<9JAISeqMgr> */
-#pragma push
-#pragma force_active on
-static u8 data_80B93CA8[4];
-#pragma pop
-
-/* 80B93CAC-80B93CB0 0000A4 0004+00 0/0 0/0 0/0 .bss
- * sInstance__33JASGlobalInstance<12JAIStreamMgr> */
-#pragma push
-#pragma force_active on
-static u8 data_80B93CAC[4];
-#pragma pop
-
-/* 80B93CB0-80B93CB4 0000A8 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2SoundMgr>
- */
-#pragma push
-#pragma force_active on
-static u8 data_80B93CB0[4];
-#pragma pop
-
-/* 80B93CB4-80B93CB8 0000AC 0004+00 0/0 0/0 0/0 .bss
- * sInstance__33JASGlobalInstance<12JAISoundInfo> */
-#pragma push
-#pragma force_active on
-static u8 data_80B93CB4[4];
-#pragma pop
-
-/* 80B93CB8-80B93CBC 0000B0 0004+00 0/0 0/0 0/0 .bss
- * sInstance__34JASGlobalInstance<13JAUSoundTable> */
-#pragma push
-#pragma force_active on
-static u8 data_80B93CB8[4];
-#pragma pop
-
-/* 80B93CBC-80B93CC0 0000B4 0004+00 0/0 0/0 0/0 .bss
- * sInstance__38JASGlobalInstance<17JAUSoundNameTable> */
-#pragma push
-#pragma force_active on
-static u8 data_80B93CBC[4];
-#pragma pop
-
-/* 80B93CC0-80B93CC4 0000B8 0004+00 0/0 0/0 0/0 .bss
- * sInstance__33JASGlobalInstance<12JAUSoundInfo> */
-#pragma push
-#pragma force_active on
-static u8 data_80B93CC0[4];
-#pragma pop
-
-/* 80B93CC4-80B93CC8 0000BC 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2SoundInfo>
- */
-#pragma push
-#pragma force_active on
-static u8 data_80B93CC4[4];
-#pragma pop
-
-/* 80B93CC8-80B93CCC 0000C0 0004+00 0/0 0/0 0/0 .bss
- * sInstance__34JASGlobalInstance<13Z2SoundObjMgr> */
-#pragma push
-#pragma force_active on
-static u8 data_80B93CC8[4];
-#pragma pop
-
-/* 80B93CCC-80B93CD0 0000C4 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2Audience>
- */
-#pragma push
-#pragma force_active on
-static u8 data_80B93CCC[4];
-#pragma pop
-
-/* 80B93CD0-80B93CD4 0000C8 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2FxLineMgr>
- */
-#pragma push
-#pragma force_active on
-static u8 data_80B93CD0[4];
-#pragma pop
-
-/* 80B93CD4-80B93CD8 0000CC 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2EnvSeMgr>
- */
-#pragma push
-#pragma force_active on
-static u8 data_80B93CD4[4];
-#pragma pop
-
-/* 80B93CD8-80B93CDC 0000D0 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2SpeechMgr>
- */
-#pragma push
-#pragma force_active on
-static u8 data_80B93CD8[4];
-#pragma pop
-
-/* 80B93CDC-80B93CE0 0000D4 0004+00 0/0 0/0 0/0 .bss
- * sInstance__34JASGlobalInstance<13Z2WolfHowlMgr> */
-#pragma push
-#pragma force_active on
-static u8 data_80B93CDC[4];
-#pragma pop
-
-/* 80B9369C-80B9369C 0004A0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
+/* 80B93AF4-80B93B24 -00001 0030+00 0/0 0/0 1/0 .data g_profile_NPC_ZRC */
+extern actor_process_profile_definition g_profile_NPC_ZRC = {
+ fpcLy_CURRENT_e, // mLayerID
+ 7, // mListID
+ fpcPi_CURRENT_e, // mListPrio
+ PROC_NPC_ZRC, // mProcName
+ &g_fpcLf_Method.mBase, // sub_method
+ sizeof(daNpc_zrC_c), // mSize
+ 0, // mSizeOther
+ 0, // mParameters
+ &g_fopAc_Method.base, // sub_method
+ 389, // mPriority
+ &daNpc_zrC_MethodTable, // sub_method
+ 0x00044100, // mStatus
+ fopAc_NPC_e, // mActorType
+ fopAc_CULLBOX_CUSTOM_e, // cullType
+};