From 3d2942960d5dc07773ee4fb14839bab602c33c11 Mon Sep 17 00:00:00 2001 From: YunataSavior <58997725+YunataSavior@users.noreply.github.com> Date: Thu, 10 Apr 2025 06:24:46 -0700 Subject: [PATCH] d_a_e_ym, d_a_e_oc, and d_a_npc_hanjo equivalent, d_a_npc_ashB work (#2368) * d_a_e_ym, d_a_e_oc, and d_a_npc_hanjo equivalent, d_a_npc_ashB work * Updates to PR based on feedback, plus fix debug build --- configure.py | 6 +- include/d/actor/d_a_npc.h | 3 +- include/d/actor/d_a_npc_ashB.h | 2 +- include/d/actor/d_a_npc_hanjo.h | 2 +- src/d/actor/d_a_e_oc.cpp | 29 +- src/d/actor/d_a_e_ym.cpp | 31 +- src/d/actor/d_a_npc.cpp | 5 - src/d/actor/d_a_npc_ashB.cpp | 193 ++++---- src/d/actor/d_a_npc_hanjo.cpp | 758 ++------------------------------ src/d/actor/d_a_npc_zelR.cpp | 3 +- 10 files changed, 175 insertions(+), 857 deletions(-) diff --git a/configure.py b/configure.py index 5e75fb3eaad..2e0929de9ce 100755 --- a/configure.py +++ b/configure.py @@ -1652,7 +1652,7 @@ config.libs = [ ActorRel(NonMatching, "d_a_e_mm_mt"), ActorRel(NonMatching, "d_a_e_ms"), ActorRel(NonMatching, "d_a_e_nz"), - ActorRel(NonMatching, "d_a_e_oc"), + ActorRel(Equivalent, "d_a_e_oc"), ActorRel(MatchingFor("GZ2E01"), "d_a_e_oct_bg"), ActorRel(Equivalent, "d_a_e_ot"), # weak func order ActorRel(MatchingFor("GZ2E01"), "d_a_e_ph"), @@ -1689,7 +1689,7 @@ config.libs = [ ActorRel(NonMatching, "d_a_e_yg"), ActorRel(NonMatching, "d_a_e_yh"), ActorRel(Equivalent, "d_a_e_yk"), # weak func order - ActorRel(NonMatching, "d_a_e_ym"), + ActorRel(Equivalent, "d_a_e_ym"), ActorRel(MatchingFor("GZ2E01"), "d_a_e_ym_tag"), ActorRel(NonMatching, "d_a_e_ymb"), ActorRel(NonMatching, "d_a_e_yr"), @@ -1752,7 +1752,7 @@ config.libs = [ ActorRel(NonMatching, "d_a_npc_grz"), ActorRel(NonMatching, "d_a_npc_guard"), ActorRel(NonMatching, "d_a_npc_gwolf"), - ActorRel(NonMatching, "d_a_npc_hanjo"), + ActorRel(Equivalent, "d_a_npc_hanjo"), ActorRel(MatchingFor("GZ2E01"), "d_a_npc_henna0"), ActorRel(NonMatching, "d_a_npc_hoz"), ActorRel(NonMatching, "d_a_npc_impal"), diff --git a/include/d/actor/d_a_npc.h b/include/d/actor/d_a_npc.h index e047893a8ca..303a2b94173 100644 --- a/include/d/actor/d_a_npc.h +++ b/include/d/actor/d_a_npc.h @@ -1033,6 +1033,7 @@ public: /* 5 */ LOOK_ATTN, }; + daNpcF_c() { initialize(); } /* 80152014 */ BOOL execute(); /* 801522AC */ int draw(BOOL, BOOL, f32, _GXColorS10*, BOOL); /* 80152614 */ static void tgHitCallBack(fopAc_ac_c*, dCcD_GObjInf*, fopAc_ac_c*, @@ -1091,7 +1092,7 @@ public: /* 80155BC8 */ virtual void setParam(); /* 80155BC0 */ virtual BOOL main(); /* 80155BD8 */ virtual BOOL ctrlBtk(); - /* 80155BBC */ virtual void adjustShapeAngle(); + /* 80155BBC */ virtual void adjustShapeAngle() {} /* 8015276C */ virtual void setMtx(); /* 801527FC */ virtual void setMtx2(); /* 80155BB8 */ virtual void setAttnPos(); diff --git a/include/d/actor/d_a_npc_ashB.h b/include/d/actor/d_a_npc_ashB.h index ada312947e0..0748a9b2112 100644 --- a/include/d/actor/d_a_npc_ashB.h +++ b/include/d/actor/d_a_npc_ashB.h @@ -137,7 +137,7 @@ STATIC_ASSERT(sizeof(daNpcAshB_c) == 0xdf0); class daNpcAshB_Param_c { public: - /* 80962078 */ virtual ~daNpcAshB_Param_c(); + /* 80962078 */ virtual ~daNpcAshB_Param_c() {} struct param { /* 0x00 */ f32 mAttnOffsetY; diff --git a/include/d/actor/d_a_npc_hanjo.h b/include/d/actor/d_a_npc_hanjo.h index 913dfdd6394..fdf50f8eb1c 100644 --- a/include/d/actor/d_a_npc_hanjo.h +++ b/include/d/actor/d_a_npc_hanjo.h @@ -179,7 +179,7 @@ public: static dCcD_SrcGObjInf const mStoneCcDObjInfo; static char* mCutNameList[6]; static cutFunc mCutList[6]; - static u8 mStoneCcDSph[64]; + static dCcD_SrcSph mStoneCcDSph; private: /* 0x0E40 */ int field_0x0E40; /* 0x0E44 */ J3DModel* mModel1; diff --git a/src/d/actor/d_a_e_oc.cpp b/src/d/actor/d_a_e_oc.cpp index e2cfd15afdd..efde656b962 100644 --- a/src/d/actor/d_a_e_oc.cpp +++ b/src/d/actor/d_a_e_oc.cpp @@ -2508,32 +2508,30 @@ static int useHeapInit(fopAc_ac_c* i_this) { /* 80734DA8-807352AC 0088C8 0504+00 1/1 0/0 0/0 .text create__8daE_OC_cFv */ cPhs__Step daE_OC_c::create() { - // NONMATCHING. regalloc issue - f32 mult_val = 100.0f; - fopAc_ac_c* a_this = this; fopAcM_SetupActor(this, daE_OC_c); field_0x6b4 = fopAcM_GetParam(this) & 0xff; if (field_0x6b4 == 0xff) { field_0x6b4 = 0; } - u8 range_sel = (fopAcM_GetParam(this) >> 8 & 0xff); - if (range_sel == 0x1) { + + u8 u_var = ((fopAcM_GetParam(this) & 0xff00) >> 8); + if (u_var == 0x1) { mPlayerRange = l_HIO.field_0x0c; } else { mPlayerRange = l_HIO.field_0x08; } - field_0x6e0 = fopAcM_GetParam(this) >> 0x10; + field_0x6e0 = (fopAcM_GetParam(this) & 0xff0000) >> 0x10; if (field_0x6e0 != 0xff) { if (dComIfGs_isSwitch(field_0x6e0, fopAcM_GetRoomNo(this))) { return cPhs_ERROR_e; } } - field_0x6e1 = fopAcM_GetParam(this) >> 0x18; - u8 u_var = current.angle.x; + field_0x6e1 = (fopAcM_GetParam(this) & 0xff000000) >> 0x18; + u_var = current.angle.x & 0xff; if (u_var == 0xff) { u_var = 0; } - mMoveRange = mult_val * u_var; + mMoveRange = 100.0f * u_var; u_var = current.angle.x >> 8 & 0xff; if (u_var == 0xff || u_var == 0) { mName = "E_OC"; @@ -2557,7 +2555,8 @@ cPhs__Step daE_OC_c::create() { fopAcM_SetMtx(this, mpMorf->getModel()->getBaseTRMtx()); fopAcM_SetMin(this, -200.0f, -200.0f, -200.0f); fopAcM_SetMax(this, 200.0f, 200.0f, 200.0f); - mAcch.Set(¤t.pos, &old.pos, a_this, 1, &mAcchCir, &speed, NULL, NULL); + mAcch.Set(fopAcM_GetPosition_p(this), fopAcM_GetOldPosition_p(this), this, 1, &mAcchCir, + fopAcM_GetSpeed_p(this), NULL, NULL); if (0 == strcmp("D_MN05", dComIfGp_getStartStageName()) && dComIfGp_getStartStageRoomNo() == 0xc) { mAcchCir.SetWallH(95.0f); @@ -2566,12 +2565,11 @@ cPhs__Step daE_OC_c::create() { } mAcchCir.SetWallR(100.0f); if (mName == "E_OC") { - health = 40; - field_0x560 = 40; + field_0x560 = health = 40; } else { - health = 220; - field_0x560 = 220; + field_0x560 = health = 220; } + mStts.Init(100.0f, 0, this); mSphs_cc[0].Set(E_OC_n::cc_sph_src); mSphs_cc[0].SetStts(&mStts); @@ -2593,8 +2591,7 @@ cPhs__Step daE_OC_c::create() { mSound.setEnemyName("E_oc"); mpSound = &mSound; field_0xe5a = 1; - shape_angle.x = 0; - current.angle.x = 0; + current.angle.x = shape_angle.x = 0; gravity = -5.0f; switch (field_0x6b4) { case 2: diff --git a/src/d/actor/d_a_e_ym.cpp b/src/d/actor/d_a_e_ym.cpp index 7c48ea1b364..3c0e472d8a7 100644 --- a/src/d/actor/d_a_e_ym.cpp +++ b/src/d/actor/d_a_e_ym.cpp @@ -3227,7 +3227,6 @@ static int useHeapInit(fopAc_ac_c* i_this) { /* 80813EA4-808143A0 00BE64 04FC+00 2/2 0/0 0/0 .text checkBeforeBg__8daE_YM_cFs */ u8 daE_YM_c::checkBeforeBg(s16 i_rot_val) { - // NONMATCHING - regalloc dBgS_LinChk lin_chk; cXyz my_vec_0; cXyz my_vec_1; @@ -3275,7 +3274,7 @@ u8 daE_YM_c::checkBeforeBg(s16 i_rot_val) { mDoMtx_stack_c::multVec(&my_vec_0, &my_vec_1); my_vec_3 = current.pos + my_vec_1; cXyz inside_vec(0.0f, 0.0f, 80.0f); - cLib_offsetPos(&my_vec_2, &my_vec_3, field_0x668.z, &inside_vec); + cLib_offsetPos(&my_vec_2, &my_vec_3, (s16)field_0x668.z, &inside_vec); lin_chk.Set(&my_vec_3, &my_vec_2, NULL); if (dComIfG_Bgsp().LineCross(&lin_chk) == 0) { return 1; @@ -3283,8 +3282,7 @@ u8 daE_YM_c::checkBeforeBg(s16 i_rot_val) { cM3dGPla plane; dComIfG_Bgsp().GetTriPla(lin_chk, &plane); cXyz* p_vec = plane.GetNP(); - f32 absxz_val = p_vec->absXZ(); - s16 tan_val = cM_atan2s(absxz_val, p_vec->y) + -0x8000; + s16 tan_val = cM_atan2s(p_vec->absXZ(), p_vec->y) + -0x8000; if (abs(tan_val + 0x4000) <= 0x1555) { if (field_0x668.z != (s16)(cM_atan2s(p_vec->x, p_vec->z) + 0x8000)) { return 1; @@ -3395,7 +3393,6 @@ void daE_YM_c::setHideType() { /* 80814BA4-80815224 00CB64 0680+00 2/1 0/0 0/0 .text create__8daE_YM_cFv */ int daE_YM_c::create() { - // NONMATCHING - regalloc fopAcM_SetupActor(this, daE_YM_c); mType = fopAcM_GetParam(this); @@ -3403,17 +3400,17 @@ int daE_YM_c::create() { mType = 0; } - mSwitchBit = fopAcM_GetParam(this) >> 0x18; + mSwitchBit = (fopAcM_GetParam(this) & 0xff000000) >> 24; - u8 prm2 = fopAcM_GetParam(this) >> 0x10; + u8 prm2 = (fopAcM_GetParam(this) & 0xff0000) >> 16; if (prm2 == 0xFF) { prm2 = 0; } field_0x6e0 = prm2 * 100.0f; - u8 prm1 = fopAcM_GetParam(this) >> 0x8; - u8 tmp0 = (current.angle.z >> 8) & 0xff; + u8 prm1 = (fopAcM_GetParam(this) & 0xff00) >> 8; + u8 tmp0 = (current.angle.z & 0xff00) >> 8; mTagNo = current.angle.z; field_0x6a1 = 1; if ((current.angle.x & 3) != 0) { @@ -3424,7 +3421,7 @@ int daE_YM_c::create() { field_0x6cb = 1; } - field_0x6a3 = (current.angle.x >> 8) & 0xff; + field_0x6a3 = (current.angle.x & 0xff00) >> 8; if (mSwitchBit != 0xFF && dComIfGs_isSwitch(mSwitchBit, fopAcM_GetRoomNo(this))) { #ifdef DEBUG @@ -3448,10 +3445,9 @@ int daE_YM_c::create() { } if (phase == cPhs_COMPLEATE_e) { - current.angle.z = 0; - current.angle.x = 0; - shape_angle.z = 0; - shape_angle.x = 0; + OS_REPORT("E_YM PARAM %x %x %x \n", fopAcM_GetParam(this), current.angle.z, current.angle.x); + current.angle.x = current.angle.z = 0; + shape_angle.x = shape_angle.z = 0; if (!fopAcM_entrySolidHeap(this, useHeapInit, 0x28B0)) { return cPhs_ERROR_e; @@ -3469,12 +3465,11 @@ int daE_YM_c::create() { fopAcM_SetMin(this, -200.0f, -100.0f, -200.0f); fopAcM_SetMax(this, 200.0f, 100.0f, 200.0f); - mAcch.Set(¤t.pos, &old.pos, this, 1, &mAcchCir, &speed, NULL, NULL); + mAcch.Set(fopAcM_GetPosition_p(this), fopAcM_GetOldPosition_p(this), this, 1, &mAcchCir, + fopAcM_GetSpeed_p(this), NULL, NULL); mAcch.OnLineCheck(); mAcchCir.SetWall(30.0f, 60.0f); - - health = 10; - field_0x560 = 10; + field_0x560 = health = 10; mStts.Init(100, 0, this); mSphCc.Set(E_YM_n::cc_sph_src); diff --git a/src/d/actor/d_a_npc.cpp b/src/d/actor/d_a_npc.cpp index 6252b2a9539..ca881820997 100644 --- a/src/d/actor/d_a_npc.cpp +++ b/src/d/actor/d_a_npc.cpp @@ -5188,11 +5188,6 @@ void daNpcF_c::setAttnPos() { /* empty function */ } -/* 80155BBC-80155BC0 1504FC 0004+00 2/0 0/0 0/0 .text adjustShapeAngle__8daNpcF_cFv */ -void daNpcF_c::adjustShapeAngle() { - /* empty function */ -} - /* 80155BC0-80155BC8 150500 0008+00 2/0 0/0 0/0 .text main__8daNpcF_cFv */ BOOL daNpcF_c::main() { return true; diff --git a/src/d/actor/d_a_npc_ashB.cpp b/src/d/actor/d_a_npc_ashB.cpp index fc0cb3ef7f8..c50bfde86e0 100644 --- a/src/d/actor/d_a_npc_ashB.cpp +++ b/src/d/actor/d_a_npc_ashB.cpp @@ -227,13 +227,7 @@ extern "C" void __register_global_object(); // Declarations: // -// fake data / lazy solution to get matches. fix later -static char* tmp[5] = {}; - -/* 80962418-80962424 000000 000C+00 3/3 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, -}; +UNK_REL_DATA; /* 80962438-80962534 000020 00FC+00 1/2 0/0 0/0 .data l_bckGetParamList */ static daNpc_GetParam2 l_bckGetParamList[21] = { @@ -260,6 +254,8 @@ static daNpc_GetParam2 l_bckGetParamList[21] = { {19, 0, 0}, }; +static daNpcAshB_Param_c l_HIO; + /* 80962534-80962564 00011C 0030+00 1/1 0/0 0/0 .data l_btpGetParamList */ static daNpc_GetParam2 l_btpGetParamList[4] = { {38,2,0}, @@ -298,7 +294,7 @@ daNpcAshB_c::EventFn daNpcAshB_c::mEvtSeqList[2] = { }; /* 8095DE4C-8095DFD0 0000EC 0184+00 1/1 0/0 0/0 .text __ct__11daNpcAshB_cFv */ -daNpcAshB_c::daNpcAshB_c() { +daNpcAshB_c::daNpcAshB_c() : daNpcF_c() { // NONMATCHING } @@ -463,7 +459,7 @@ int daNpcAshB_c::Draw() { * ctrlJoint__11daNpcAshB_cFP8J3DJointP8J3DModel */ bool daNpcAshB_c::ctrlJoint(J3DJoint* i_joint, J3DModel* i_model) { int jointNo = i_joint->getJntNo(); - int lookatJoints[3] = {1, 3, 4}; + int lookatJoints[3] = {1, 9, 10}; if (jointNo == 0) { mDoMtx_stack_c::copy(mpMorf->getModel()->getAnmMtx(1)); @@ -570,40 +566,6 @@ inline void daNpcAshB_c::playExpression() { } } -bool daNpcAshB_c::step(s16 i_targetAngle, int param_2, f32 i_rate) { - if (mTurnMode == 0) { - if (param_2 != 0) { - if ((int)fabsf(cM_sht2d((s16)(i_targetAngle - mCurAngle.y))) > 40) { - setExpression(6, -1.0f); - setMotion(10, -1.0f, 0); - } - - mTurnTargetAngle = i_targetAngle; - mTurnAmount = 0; - - if (mCurAngle.y == mTurnTargetAngle) { - mTurnMode++; - } - - current.angle.y = mCurAngle.y; - shape_angle.y = current.angle.y; - mTurnMode++; - } - } else if (mTurnMode == 1) { - if (turn(mTurnTargetAngle, i_rate, 0)) { - shape_angle.y = current.angle.y; - mCurAngle.y = current.angle.y; - mOldAngle.y = current.angle.y; - mTurnMode++; - } else { - shape_angle.y = current.angle.y; - mCurAngle.y = current.angle.y; - } - } - - return mTurnMode > 1; -} - /* 8095EC00-8095EE00 000EA0 0200+00 2/0 0/0 0/0 .text setExpressionAnm__11daNpcAshB_cFib */ bool daNpcAshB_c::setExpressionAnm(int i_idx, bool i_modify) { @@ -689,14 +651,12 @@ bool daNpcAshB_c::setExpressionBtp(int i_idx) { /* 8095EEE0-8095F0A4 001180 01C4+00 1/0 0/0 0/0 .text setMotionAnm__11daNpcAshB_cFif */ // NONMATCHING regalloc bool daNpcAshB_c::setMotionAnm(int i_idx, f32 i_morf) { - int iVar4; - int iVar5; if (i_idx < 7 || i_idx >= 21) { return; } - iVar5 = 0; + int iVar5 = 0; switch (i_idx) { case 0x10: iVar5 = 1; @@ -713,16 +673,18 @@ bool daNpcAshB_c::setMotionAnm(int i_idx, f32 i_morf) { l_bckGetParamList[i_idx].fileIdx); J3DAnmTextureSRTKey* btkAnm = getTexSRTKeyAnmP(l_arcNames[l_btkGetParamList[iVar5].arcIdx], l_btkGetParamList[iVar5].fileIdx); - iVar5 = l_bckGetParamList[i_idx].attr; - iVar4 = l_btkGetParamList[i_idx].attr; + + int oiVar5 = l_bckGetParamList[i_idx].attr; + int iVar4 = l_btkGetParamList[iVar5].attr; mAnmFlags &= 0xffffffc0; if (i_idx == 12) { - setExpressionBtp(1); + bool unused_bool = setExpressionBtp(1); + (void) unused_bool; } - if (morfAnm && setMcaMorfAnm(morfAnm,1.0f,i_morf,iVar5,0,-1)) { + if (morfAnm && setMcaMorfAnm(morfAnm,1.0f,i_morf,oiVar5,0,-1)) { mAnmFlags |= 9; mMotionLoops = 0; } @@ -783,6 +745,41 @@ bool daNpcAshB_c::setAction(daNpcAshB_c::ActionFn i_actionFn) { return true; } +bool daNpcAshB_c::step(s16 i_targetAngle, int param_2, f32 i_rate) { + if (mTurnMode == 0) { + if (param_2 != 0) { + s16 diff = i_targetAngle - mCurAngle.y; + if ((int)fabsf(cM_sht2d(diff)) > 40) { + setExpression(6, -1.0f); + setMotion(10, -1.0f, 0); + } + } + + mTurnTargetAngle = i_targetAngle; + mTurnAmount = 0; + + if (mCurAngle.y == mTurnTargetAngle) { + mTurnMode++; + } + + current.angle.y = mCurAngle.y; + shape_angle.y = current.angle.y; + mTurnMode++; + } else if (mTurnMode == 1) { + if (turn(mTurnTargetAngle, i_rate, 0)) { + shape_angle.y = current.angle.y; + mCurAngle.y = current.angle.y; + mOldAngle.y = current.angle.y; + mTurnMode++; + } else { + shape_angle.y = current.angle.y; + mCurAngle.y = current.angle.y; + } + } + + return mTurnMode > 1; +} + /* 8095F2C4-8095FC70 001564 09AC+00 4/0 0/0 0/0 .text wait__11daNpcAshB_cFPv */ // NONMATCHING - float literals, regalloc, wrong variable order loads. the shitty trifecta bool daNpcAshB_c::wait(void* param_0) { @@ -832,13 +829,8 @@ bool daNpcAshB_c::wait(void* param_0) { } else { setLookMode(LOOK_NONE); - // loading these in the other order results in correct order load, wrong registers - // loading it in this order results in wrong order load, correct registers - s16 home_angle = home.angle.y; - s16 cur_angle = mCurAngle.y; - - if (cur_angle != home_angle) { - if (step(mCurAngle.y,1,15.0f)) { + if (home.angle.y != mCurAngle.y) { + if (step(home.angle.y,1,15.0f)) { setExpression(EXPR_EXPLAIN_B, -1.0f); setMotion(MOT_WAIT_A, -1.0f, false); mTurnMode = 0; @@ -863,7 +855,8 @@ bool daNpcAshB_c::wait(void* param_0) { if (!dComIfGp_evmng_ChkPresentEnd()) { return true; } else { - if (dComIfGp_event_getPreItemNo() == 0x91) { + u8 preitemno = dComIfGp_event_getPreItemNo(); + if (preitemno == fpcNm_ITEM_ASHS_SCRIBBLING) { mFlowID = 504; setAction(&wait); } else { @@ -878,7 +871,8 @@ bool daNpcAshB_c::wait(void* param_0) { setAction(&wait); } } else { - if (dComIfGp_getEventManager().getMyStaffId(l_myName, NULL, 0) != -1) { + int mystaffid = dComIfGp_getEventManager().getMyStaffId(l_myName, NULL, 0); + if (mystaffid != -1) { setAction(&wait); } } @@ -897,6 +891,8 @@ bool daNpcAshB_c::wait(void* param_0) { break; case 3: break; + default: + JUT_ASSERT(0x579, 0); } return true; @@ -1006,8 +1002,8 @@ bool daNpcAshB_c::talk(void* param_0) { } else { s16 angle = fopAcM_searchPlayerAngleY(this); - if (step(angle,1,15.0)) { - setMotion(0,0.0f,false); + if (step(angle, 1, 15.0f)) { + setMotion(0, -1.0f, false); mTurnMode = 0; } } @@ -1219,39 +1215,48 @@ BOOL daNpcAshB_c::main() { void daNpcAshB_c::playMotion() { daNpcF_anmPlayData dat0 = {7, daNpcAshB_Param_c::m.mMorfFrames, 0}; daNpcF_anmPlayData* pDat0[1] = {&dat0}; + daNpcF_anmPlayData dat1 = {8, daNpcAshB_Param_c::m.mMorfFrames, 0}; daNpcF_anmPlayData* pDat1[1] = {&dat1}; - daNpcF_anmPlayData dat2 = {0xc, daNpcAshB_Param_c::m.mMorfFrames, 1}; - daNpcF_anmPlayData* pDat2[1] = {&dat2}; - daNpcF_anmPlayData dat3a = {0xd, daNpcAshB_Param_c::m.mMorfFrames, 1}; - daNpcF_anmPlayData dat3b = {8, daNpcAshB_Param_c::m.mMorfFrames, 0}; + + daNpcF_anmPlayData dat2a = {0xC, daNpcAshB_Param_c::m.mMorfFrames, 1}; + daNpcF_anmPlayData dat2b = {0xD, 0.0f, 1}; + daNpcF_anmPlayData dat2c = {8, 0.0f, 0}; + daNpcF_anmPlayData* pDat2[3] = {&dat2a, &dat2b, &dat2c}; + + daNpcF_anmPlayData dat3a = {0xE, daNpcAshB_Param_c::m.mMorfFrames, 1}; + daNpcF_anmPlayData dat3b = {8, 0.0f, 0}; daNpcF_anmPlayData* pDat3[2] = {&dat3a, &dat3b}; - daNpcF_anmPlayData dat4a = {0xe, daNpcAshB_Param_c::m.mMorfFrames, 1}; - daNpcF_anmPlayData dat4b = {8, daNpcAshB_Param_c::m.mMorfFrames, 0}; + + daNpcF_anmPlayData dat4a = {0xF, daNpcAshB_Param_c::m.mMorfFrames, 1}; + daNpcF_anmPlayData dat4b = {8, 0.0f, 0}; daNpcF_anmPlayData* pDat4[2] = {&dat4a, &dat4b}; - daNpcF_anmPlayData dat5a = {0xf, daNpcAshB_Param_c::m.mMorfFrames, 1}; - daNpcF_anmPlayData dat5b = {8, daNpcAshB_Param_c::m.mMorfFrames, 0}; + + daNpcF_anmPlayData dat5a = {0x10, daNpcAshB_Param_c::m.mMorfFrames, 1}; + daNpcF_anmPlayData dat5b = {8, 0.0f, 0}; daNpcF_anmPlayData* pDat5[2] = {&dat5a, &dat5b}; - daNpcF_anmPlayData dat6a = {16, daNpcAshB_Param_c::m.mMorfFrames, 1}; - daNpcF_anmPlayData dat6b = {0x11, daNpcAshB_Param_c::m.mMorfFrames, 0}; + + daNpcF_anmPlayData dat6a = {0x11, daNpcAshB_Param_c::m.mMorfFrames, 1}; + daNpcF_anmPlayData dat6b = {8, 0.0f, 0}; daNpcF_anmPlayData* pDat6[2] = {&dat6a, &dat6b}; - daNpcF_anmPlayData dat7 = {8, daNpcAshB_Param_c::m.mMorfFrames, 1}; - daNpcF_anmPlayData* pDat7[1] = {&dat7}; - daNpcF_anmPlayData dat8 = {0x12, daNpcAshB_Param_c::m.mMorfFrames, 0}; + + daNpcF_anmPlayData dat7a = {0x12, daNpcAshB_Param_c::m.mMorfFrames, 1}; + daNpcF_anmPlayData dat7b = {0x13, 0.0f, 0}; + daNpcF_anmPlayData* pDat7[2] = {&dat7a, &dat7b}; + + daNpcF_anmPlayData dat8 = {0x13, daNpcAshB_Param_c::m.mMorfFrames, 0}; daNpcF_anmPlayData* pDat8[1] = {&dat8}; - daNpcF_anmPlayData dat9 = {0x13, daNpcAshB_Param_c::m.mMorfFrames, 0}; - daNpcF_anmPlayData* pDat9[1] = {&dat9}; - daNpcF_anmPlayData dat10 = {0x13, daNpcAshB_Param_c::m.mMorfFrames, 1}; - daNpcF_anmPlayData* pDat10[1] = {&dat10}; - daNpcF_anmPlayData dat11 = {0x14, daNpcAshB_Param_c::m.mMorfFrames, 1}; - daNpcF_anmPlayData* pDat11[1] = {&dat11}; - // daNpcF_anmPlayData dat12 = {0x08, daNpcAshB_Param_c::m.mMorfFrames, 0}; - // daNpcF_anmPlayData* pDat12[1] = {&dat12}; - // daNpcF_anmPlayData dat13 = {0xa0, daNpcAshB_Param_c::m.mMorfFrames, 1}; - // daNpcF_anmPlayData* pDat13[1] = {&dat13}; - // daNpcF_anmPlayData dat14 = {0xb0, daNpcAshB_Param_c::m.mMorfFrames, 1}; - // daNpcF_anmPlayData* pDat14[1] = {&dat14}; - daNpcF_anmPlayData** ppDat[15] = { + + daNpcF_anmPlayData dat9a = {0x14, daNpcAshB_Param_c::m.mMorfFrames, 1}; + daNpcF_anmPlayData dat9b = {8, 0.0f, 0}; + daNpcF_anmPlayData* pDat9[2] = {&dat9a, &dat9b}; + + daNpcF_anmPlayData dat10 = {0xA, 4.0f, 1}; + daNpcF_anmPlayData* pDat10[2] = {&dat10, NULL}; + daNpcF_anmPlayData dat11 = {0xB, 4.0f, 1}; + daNpcF_anmPlayData* pDat11[2] = {&dat11, NULL}; + + daNpcF_anmPlayData** ppDat[12] = { pDat0, pDat1, pDat2, @@ -1264,9 +1269,6 @@ void daNpcAshB_c::playMotion() { pDat9, pDat10, pDat11, - // pDat12, - // pDat13, - // pDat14 }; if (mMotion >= 0 && mMotion < 12) { playMotionAnm(ppDat); @@ -1277,7 +1279,8 @@ void daNpcAshB_c::playMotion() { // NONMATCHING inlining issues BOOL daNpcAshB_c::ctrlBtk() { if (mpMatAnm != NULL) { - J3DAnmTextureSRTKey* btkAnm = getTexSRTKeyAnmP(l_arcNames[l_btkGetParamList[0].arcIdx],l_btkGetParamList[0].fileIdx); + J3DAnmTextureSRTKey* btkAnm = NULL; + btkAnm = getTexSRTKeyAnmP(l_arcNames[l_btkGetParamList[0].arcIdx],l_btkGetParamList[0].fileIdx); if (btkAnm == mBtkAnm.getBtkAnm()) { mpMatAnm->setNowOffsetX(cM_ssin(mEyeAngle.y) * 0.2f * -1.0f); @@ -1286,8 +1289,8 @@ BOOL daNpcAshB_c::ctrlBtk() { return true; } mpMatAnm->offEyeMoveFlag(); - return false; - } + } + return false; } /* 80961264-80961574 003504 0310+00 1/0 0/0 0/0 .text setAttnPos__11daNpcAshB_cFv */ @@ -1368,8 +1371,8 @@ void daNpcAshB_c::lookat() { if (mLookMode != LOOK_PLAYER_TALK) { break; } - body_down_angle = 0.0f; - body_up_angle = 1.0f; + body_down_angle = -80.0f; + body_up_angle = 80.0f; break; case LOOK_ACTOR: actor = daPy_getPlayerActorClass(); diff --git a/src/d/actor/d_a_npc_hanjo.cpp b/src/d/actor/d_a_npc_hanjo.cpp index 3ca5ef04fcf..da90ca61f37 100644 --- a/src/d/actor/d_a_npc_hanjo.cpp +++ b/src/d/actor/d_a_npc_hanjo.cpp @@ -13,361 +13,12 @@ #include "Z2AudioLib/Z2Instances.h" #include "dol2asm.h" -// -// Forward References: -// - -extern "C" void __dt__13daNpc_Hanjo_cFv(); -extern "C" void create__13daNpc_Hanjo_cFv(); -extern "C" void CreateHeap__13daNpc_Hanjo_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__13daNpc_Hanjo_cFv(); -extern "C" void Execute__13daNpc_Hanjo_cFv(); -extern "C" void Draw__13daNpc_Hanjo_cFv(); -extern "C" void createHeapCallBack__13daNpc_Hanjo_cFP10fopAc_ac_c(); -extern "C" void ctrlJointCallBack__13daNpc_Hanjo_cFP8J3DJointi(); -extern "C" void getType__13daNpc_Hanjo_cFv(); -extern "C" void isDelete__13daNpc_Hanjo_cFv(); -extern "C" void reset__13daNpc_Hanjo_cFv(); -extern "C" void afterJntAnm__13daNpc_Hanjo_cFi(); -extern "C" void setParam__13daNpc_Hanjo_cFv(); -extern "C" void checkChangeEvt__13daNpc_Hanjo_cFv(); -extern "C" void setAfterTalkMotion__13daNpc_Hanjo_cFv(); -extern "C" void srchActors__13daNpc_Hanjo_cFv(); -extern "C" void evtTalk__13daNpc_Hanjo_cFv(); -extern "C" void evtCutProc__13daNpc_Hanjo_cFv(); -extern "C" void action__13daNpc_Hanjo_cFv(); -extern "C" void beforeMove__13daNpc_Hanjo_cFv(); -extern "C" void afterMoved__13daNpc_Hanjo_cFv(); -extern "C" void setAttnPos__13daNpc_Hanjo_cFv(); -extern "C" void setCollision__13daNpc_Hanjo_cFv(); -extern "C" bool drawDbgInfo__13daNpc_Hanjo_cFv(); -extern "C" void drawOtherMdl__13daNpc_Hanjo_cFv(); -extern "C" void selectAction__13daNpc_Hanjo_cFv(); -extern "C" void chkAction__13daNpc_Hanjo_cFM13daNpc_Hanjo_cFPCvPvPv_i(); -extern "C" void setAction__13daNpc_Hanjo_cFM13daNpc_Hanjo_cFPCvPvPv_i(); -extern "C" void initShoot__13daNpc_Hanjo_cFi(); -extern "C" void shoot__13daNpc_Hanjo_cFi(); -extern "C" void initDive__13daNpc_Hanjo_cFv(); -extern "C" void dive__13daNpc_Hanjo_cFv(); -extern "C" void lookround__13daNpc_Hanjo_cFs(); -extern "C" void commandToHawk__13daNpc_Hanjo_cFv(); -extern "C" void cutConversationAboutSaru__13daNpc_Hanjo_cFi(); -extern "C" void cutConversation__13daNpc_Hanjo_cFi(); -extern "C" void cutPursuitBee__13daNpc_Hanjo_cFi(); -extern "C" void cutAppearHawker__13daNpc_Hanjo_cFi(); -extern "C" void cutDive__13daNpc_Hanjo_cFi(); -extern "C" void wait__13daNpc_Hanjo_cFPv(); -extern "C" void throwStone__13daNpc_Hanjo_cFPv(); -extern "C" void takayose__13daNpc_Hanjo_cFPv(); -extern "C" void talk__13daNpc_Hanjo_cFPv(); -extern "C" static void daNpc_Hanjo_Create__FPv(); -extern "C" static void daNpc_Hanjo_Delete__FPv(); -extern "C" static void daNpc_Hanjo_Execute__FPv(); -extern "C" static void daNpc_Hanjo_Draw__FPv(); -extern "C" static bool daNpc_Hanjo_IsDelete__FPv(); -extern "C" void calc__11J3DTexNoAnmCFPUs(); -extern "C" void __dt__10cCcD_GSttsFv(); -extern "C" void __dt__8daNpcT_cFv(); -extern "C" void __dt__4cXyzFv(); -extern "C" void __dt__5csXyzFv(); -extern "C" void __dt__18daNpcT_ActorMngr_cFv(); -extern "C" void __dt__13daNpcT_Path_cFv(); -extern "C" void __ct__18daNpcT_ActorMngr_cFv(); -extern "C" void __dt__8cM3dGCylFv(); -extern "C" void __dt__8cM3dGAabFv(); -extern "C" void -__ct__8daNpcT_cFPC26daNpcT_faceMotionAnmData_cPC22daNpcT_motionAnmData_cPCQ222daNpcT_MotionSeqMngr_c18sequenceStepData_ciPCQ222daNpcT_MotionSeqMngr_c18sequenceStepData_ciPC16daNpcT_evtData_cPPc(); -extern "C" void __ct__5csXyzFv(); -extern "C" void __dt__15daNpcT_JntAnm_cFv(); -extern "C" void __ct__4cXyzFv(); -extern "C" void __dt__22daNpcT_MotionSeqMngr_cFv(); -extern "C" void __dt__12dBgS_AcchCirFv(); -extern "C" void __dt__10dCcD_GSttsFv(); -extern "C" void __dt__12dBgS_ObjAcchFv(); -extern "C" void __dt__12J3DFrameCtrlFv(); -extern "C" void setEyeAngleY__15daNpcT_JntAnm_cF4cXyzsifs(); -extern "C" void setEyeAngleX__15daNpcT_JntAnm_cF4cXyzfs(); -extern "C" void ctrlSubFaceMotion__8daNpcT_cFi(); -extern "C" bool getEyeballLMaterialNo__8daNpcT_cFv(); -extern "C" bool getEyeballRMaterialNo__8daNpcT_cFv(); -extern "C" bool evtEndProc__8daNpcT_cFv(); -extern "C" bool chkXYItems__8daNpcT_cFv(); -extern "C" void decTmr__8daNpcT_cFv(); -extern "C" void drawGhost__8daNpcT_cFv(); -extern "C" bool afterSetFaceMotionAnm__8daNpcT_cFiifi(); -extern "C" bool afterSetMotionAnm__8daNpcT_cFiifi(); -extern "C" void getFaceMotionAnm__8daNpcT_cF26daNpcT_faceMotionAnmData_c(); -extern "C" void getMotionAnm__8daNpcT_cF22daNpcT_motionAnmData_c(); -extern "C" void changeAnm__8daNpcT_cFPiPi(); -extern "C" void changeBck__8daNpcT_cFPiPi(); -extern "C" void changeBtp__8daNpcT_cFPiPi(); -extern "C" void changeBtk__8daNpcT_cFPiPi(); -extern "C" void func_809FFE6C(void* _this, int*); -extern "C" void func_809FFE88(void* _this, f32, f32); -extern "C" void __sinit_d_a_npc_hanjo_cpp(); -extern "C" void __dt__18daNpc_HanjoStone_cFv(); -extern "C" void -__ct__13daNpc_Hanjo_cFPC26daNpcT_faceMotionAnmData_cPC22daNpcT_motionAnmData_cPCQ222daNpcT_MotionSeqMngr_c18sequenceStepData_ciPCQ222daNpcT_MotionSeqMngr_c18sequenceStepData_ciPC16daNpcT_evtData_cPPc(); -extern "C" void __ct__18daNpc_HanjoStone_cFv(); -extern "C" void __dt__8cM3dGSphFv(); -extern "C" s32 getEyeballMaterialNo__13daNpc_Hanjo_cFv(); -extern "C" void getPos__18daNpc_HanjoStone_cFv(); -extern "C" void getOld__18daNpc_HanjoStone_cFv(); -extern "C" void posMoveF__18daNpc_HanjoStone_cFP10fopAc_ac_c(); -extern "C" void setPos__18daNpc_HanjoStone_cF4cXyz(); -extern "C" s32 getHeadJointNo__13daNpc_Hanjo_cFv(); -extern "C" s32 getNeckJointNo__13daNpc_Hanjo_cFv(); -extern "C" bool getBackboneJointNo__13daNpc_Hanjo_cFv(); -extern "C" void setAngle__18daNpc_HanjoStone_cF5csXyz(); -extern "C" void checkChangeJoint__13daNpc_Hanjo_cFi(); -extern "C" void checkRemoveJoint__13daNpc_Hanjo_cFi(); -extern "C" s32 getFootLJointNo__13daNpc_Hanjo_cFv(); -extern "C" s32 getFootRJointNo__13daNpc_Hanjo_cFv(); -extern "C" void __dt__19daNpc_Hanjo_Param_cFv(); -extern "C" static void func_80A0057C(); -extern "C" static void func_80A00584(); -extern "C" void chkPointInArea__15daTag_EvtArea_cF4cXyz(); -extern "C" u8 const m__19daNpc_Hanjo_Param_c[180]; -extern "C" u8 const mStoneCcDObjInfo__13daNpc_Hanjo_c[48]; -extern "C" extern char const* const d_a_npc_hanjo__stringBase0; -extern "C" void* mCutNameList__13daNpc_Hanjo_c[6]; -extern "C" u8 mCutList__13daNpc_Hanjo_c[72]; -extern "C" u8 mStoneCcDSph__13daNpc_Hanjo_c[64]; - -// -// External References: -// - -extern "C" void mDoMtx_XYZrotM__FPA4_fsss(); -extern "C" void mDoMtx_YrotS__FPA4_fs(); -extern "C" void mDoMtx_YrotM__FPA4_fs(); -extern "C" void mDoMtx_ZrotM__FPA4_fs(); -extern "C" void transS__14mDoMtx_stack_cFRC4cXyz(); -extern "C" void transM__14mDoMtx_stack_cFfff(); -extern "C" void scaleM__14mDoMtx_stack_cFfff(); -extern "C" void ZXYrotM__14mDoMtx_stack_cFRC5csXyz(); -extern "C" void mDoExt_modelUpdateDL__FP8J3DModel(); -extern "C" void -__ct__16mDoExt_McaMorfSOFP12J3DModelDataP25mDoExt_McaMorfCallBack1_cP25mDoExt_McaMorfCallBack2_cP15J3DAnmTransformifiiP10Z2CreatureUlUl(); -extern "C" void stopZelAnime__16mDoExt_McaMorfSOFv(); -extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl(); -extern "C" void __ct__10fopAc_ac_cFv(); -extern "C" void __dt__10fopAc_ac_cFv(); -extern "C" void fopAc_IsActor__FPv(); -extern "C" void fopAcM_delete__FP10fopAc_ac_c(); -extern "C" void fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl(); -extern "C" void fopAcM_setCullSizeBox2__FP10fopAc_ac_cP12J3DModelData(); -extern "C" void fopAcM_searchActorAngleY__FPC10fopAc_ac_cPC10fopAc_ac_c(); -extern "C" void fopAcM_getWaterY__FPC4cXyzPf(); -extern "C" void dComIfGs_wolfeye_effect_check__Fv(); -extern "C" void isCollect__20dSv_player_collect_cCFiUc(); -extern "C" void onSwitch__12dSv_memBit_cFi(); -extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci(); -extern "C" void reset__14dEvt_control_cFv(); -extern "C" void setSkipZev__14dEvt_control_cFPvPc(); -extern "C" void onSkipFade__14dEvt_control_cFv(); -extern "C" void setPt2__14dEvt_control_cFPv(); -extern "C" void setPtT__14dEvt_control_cFPv(); -extern "C" void getMyStaffId__16dEvent_manager_cFPCcP10fopAc_ac_ci(); -extern "C" void getIsAddvance__16dEvent_manager_cFi(); -extern "C" void getMyActIdx__16dEvent_manager_cFiPCPCciii(); -extern "C" void getMySubstanceP__16dEvent_manager_cFiPCci(); -extern "C" void cutEnd__16dEvent_manager_cFi(); -extern "C" void setGoal__16dEvent_manager_cFP4cXyz(); -extern "C" void getRunEventName__16dEvent_manager_cFv(); -extern "C" void ChkPresentEnd__16dEvent_manager_cFv(); -extern "C" void -set__13dPa_control_cFUlUcUsPC4cXyzPC12dKy_tevstr_cPC5csXyzPC4cXyzUcP18dPa_levelEcallBackScPC8_GXColorPC8_GXColorPC4cXyzf(); -extern "C" void init__7dPaPo_cFP9dBgS_Acchff(); -extern "C" void StartShock__12dVibration_cFii4cXyz(); -extern "C" void LineCross__4cBgSFP11cBgS_LinChk(); -extern "C" void GroundCross__4cBgSFP11cBgS_GndChk(); -extern "C" void __ct__12dBgS_AcchCirFv(); -extern "C" void SetWallR__12dBgS_AcchCirFf(); -extern "C" void __dt__9dBgS_AcchFv(); -extern "C" void __ct__9dBgS_AcchFv(); -extern "C" void Set__9dBgS_AcchFP4cXyzP4cXyzP10fopAc_ac_ciP12dBgS_AcchCirP4cXyzP5csXyzP5csXyz(); -extern "C" void CrrPos__9dBgS_AcchFR4dBgS(); -extern "C" void __ct__11dBgS_GndChkFv(); -extern "C" void __dt__11dBgS_GndChkFv(); -extern "C" void __ct__11dBgS_LinChkFv(); -extern "C" void __dt__11dBgS_LinChkFv(); -extern "C" void Set__11dBgS_LinChkFPC4cXyzPC4cXyzPC10fopAc_ac_c(); -extern "C" void SetObj__16dBgS_PolyPassChkFv(); -extern "C" void GetAc__22dCcD_GAtTgCoCommonBaseFv(); -extern "C" void __ct__10dCcD_GSttsFv(); -extern "C" void Init__9dCcD_SttsFiiP10fopAc_ac_c(); -extern "C" void __ct__12dCcD_GObjInfFv(); -extern "C" void __dt__12dCcD_GObjInfFv(); -extern "C" void GetTgHitObj__12dCcD_GObjInfFv(); -extern "C" void ChkCoHit__12dCcD_GObjInfFv(); -extern "C" void GetCoHitObj__12dCcD_GObjInfFv(); -extern "C" void Set__8dCcD_CylFRC11dCcD_SrcCyl(); -extern "C" void Set__8dCcD_SphFRC11dCcD_SrcSph(); -extern "C" void initialize__18daNpcT_ActorMngr_cFv(); -extern "C" void entry__18daNpcT_ActorMngr_cFP10fopAc_ac_c(); -extern "C" void remove__18daNpcT_ActorMngr_cFv(); -extern "C" void getActorP__18daNpcT_ActorMngr_cFv(); -extern "C" void initialize__15daNpcT_MatAnm_cFv(); -extern "C" void initialize__22daNpcT_MotionSeqMngr_cFv(); -extern "C" void checkEndSequence__22daNpcT_MotionSeqMngr_cFv(); -extern "C" void initialize__13daNpcT_Path_cFv(); -extern "C" void setPathInfo__13daNpcT_Path_cFUcScUc(); -extern "C" void getDstPosH__13daNpcT_Path_cF4cXyzP4cXyzii(); -extern "C" void initialize__15daNpcT_JntAnm_cFv(); -extern "C" void setParam__15daNpcT_JntAnm_cFP10fopAc_ac_cP8J3DModelP4cXyziiiffffffffffP4cXyz(); -extern "C" void calcJntRad__15daNpcT_JntAnm_cFfff(); -extern "C" void setParam__19daNpcT_DmgStagger_cFP10fopAc_ac_cP10fopAc_ac_cs(); -extern "C" void calc__19daNpcT_DmgStagger_cFi(); -extern "C" void tgHitCallBack__8daNpcT_cFP10fopAc_ac_cP12dCcD_GObjInfP10fopAc_ac_cP12dCcD_GObjInf(); -extern "C" void getTrnsfrmKeyAnmP__8daNpcT_cFPCci(); -extern "C" void loadRes__8daNpcT_cFPCScPPCc(); -extern "C" void deleteRes__8daNpcT_cFPCScPPCc(); -extern "C" void execute__8daNpcT_cFv(); -extern "C" void draw__8daNpcT_cFiifP11_GXColorS10fiii(); -extern "C" void setEnvTevColor__8daNpcT_cFv(); -extern "C" void setRoomNo__8daNpcT_cFv(); -extern "C" void ctrlBtk__8daNpcT_cFv(); -extern "C" void setMtx__8daNpcT_cFv(); -extern "C" void ctrlJoint__8daNpcT_cFP8J3DJointP8J3DModel(); -extern "C" void evtProc__8daNpcT_cFv(); -extern "C" void setFootPos__8daNpcT_cFv(); -extern "C" void setFootPrtcl__8daNpcT_cFP4cXyzff(); -extern "C" bool checkCullDraw__8daNpcT_cFv(); -extern "C" void twilight__8daNpcT_cFv(); -extern "C" void evtOrder__8daNpcT_cFv(); -extern "C" void evtChange__8daNpcT_cFv(); -extern "C" void clrParam__8daNpcT_cFv(); -extern "C" void setFaceMotionAnm__8daNpcT_cFib(); -extern "C" void setMotionAnm__8daNpcT_cFifi(); -extern "C" void setPos__8daNpcT_cF4cXyz(); -extern "C" void setAngle__8daNpcT_cF5csXyz(); -extern "C" void setAngle__8daNpcT_cFs(); -extern "C" void hitChk__8daNpcT_cFP12dCcD_GObjInfUl(); -extern "C" void setDamage__8daNpcT_cFiii(); -extern "C" void chkActorInSight__8daNpcT_cFP10fopAc_ac_cfs(); -extern "C" void chkPointInArea__8daNpcT_cF4cXyz4cXyzfffs(); -extern "C" void srchPlayerActor__8daNpcT_cFv(); -extern "C" void step__8daNpcT_cFsiiii(); -extern "C" void initTalk__8daNpcT_cFiPP10fopAc_ac_c(); -extern "C" void talkProc__8daNpcT_cFPiiPP10fopAc_ac_ci(); -extern "C" void getNearestActorP__8daNpcT_cFs(); -extern "C" void getEvtAreaTagP__8daNpcT_cFii(); -extern "C" void daNpcT_getDistTableIdx__Fii(); -extern "C" void daNpcT_onEvtBit__FUl(); -extern "C" void daNpcT_chkEvtBit__FUl(); -extern "C" void daNpcT_onTmpBit__FUl(); -extern "C" void daNpcT_offTmpBit__FUl(); -extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c(); -extern "C" void dKy_set_actcol_ratio__Ff(); -extern "C" void dKy_set_bgcol_ratio__Ff(); -extern "C" void dKy_set_fogcol_ratio__Ff(); -extern "C" void __ct__10dMsgFlow_cFv(); -extern "C" void __dt__10dMsgFlow_cFv(); -extern "C" void remove__10dMsgFlow_cFv(); -extern "C" void GetAc__8cCcD_ObjFv(); -extern "C" void Set__4cCcSFP8cCcD_Obj(); -extern "C" void __pl__4cXyzCFRC3Vec(); -extern "C" void __mi__4cXyzCFRC3Vec(); -extern "C" void cM_atan2s__Fff(); -extern "C" void cM_rnd__Fv(); -extern "C" void cM_rndF__Ff(); -extern "C" void __ct__11cBgS_GndChkFv(); -extern "C" void __dt__11cBgS_GndChkFv(); -extern "C" void SetPos__11cBgS_GndChkFPC4cXyz(); -extern "C" void __dt__13cBgS_PolyInfoFv(); -extern "C" void __dt__8cM3dGCirFv(); -extern "C" void SetC__8cM3dGCylFRC4cXyz(); -extern "C" void SetH__8cM3dGCylFf(); -extern "C" void SetR__8cM3dGCylFf(); -extern "C" void SetC__8cM3dGSphFRC4cXyz(); -extern "C" void SetR__8cM3dGSphFf(); -extern "C" void cLib_addCalc__FPfffff(); -extern "C" void cLib_addCalcAngleS2__FPssss(); -extern "C" void cLib_chaseF__FPfff(); -extern "C" void cLib_targetAngleY__FPC3VecPC3Vec(); -extern "C" void seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc(); -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 checkPass__12J3DFrameCtrlFf(); -extern "C" void getTexNo__16J3DAnmTexPatternCFUsPUs(); -extern "C" void initialize__14J3DMaterialAnmFv(); -extern "C" void __destroy_arr(); -extern "C" void __construct_array(); -extern "C" void __ptmf_test(); -extern "C" void __ptmf_cmpr(); -extern "C" void __ptmf_scall(); -extern "C" void _savegpr_22(); -extern "C" void _savegpr_23(); -extern "C" void _savegpr_24(); -extern "C" void _savegpr_25(); -extern "C" void _savegpr_26(); -extern "C" void _savegpr_27(); -extern "C" void _savegpr_28(); -extern "C" void _savegpr_29(); -extern "C" void _restgpr_22(); -extern "C" void _restgpr_23(); -extern "C" void _restgpr_24(); -extern "C" void _restgpr_25(); -extern "C" void _restgpr_26(); -extern "C" void _restgpr_27(); -extern "C" void _restgpr_28(); -extern "C" void _restgpr_29(); -extern "C" extern u8 const __ptmf_null[12 + 4 /* padding */]; -extern "C" extern void* __vt__8dCcD_Sph[36]; -extern "C" extern void* __vt__8dCcD_Cyl[36]; -extern "C" extern void* __vt__9dCcD_Stts[11]; -extern "C" u8 mCcDCyl__8daNpcT_c[68]; -extern "C" extern void* __vt__8daNpcT_c[49]; -extern "C" extern void* __vt__15daNpcT_MatAnm_c[4 + 1 /* padding */]; -extern "C" extern void* __vt__12cCcD_SphAttr[25]; -extern "C" extern void* __vt__12cCcD_CylAttr[25]; -extern "C" extern void* __vt__14cCcD_ShapeAttr[22]; -extern "C" extern void* __vt__9cCcD_Stts[8]; -extern "C" extern void* __vt__14J3DMaterialAnm[4]; -extern "C" u8 now__14mDoMtx_stack_c[48]; -extern "C" u8 sincosTable___5JMath[65536]; -extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */]; -extern "C" void chkPointInArea__15daTag_EvtArea_cF4cXyz4cXyz(); -extern "C" void __register_global_object(); // // Declarations: // - - -/* 80A00940-80A0094C 000000 000C+00 3/3 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, -}; - -/* 80A0094C-80A00960 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, -}; -#pragma pop +UNK_REL_DATA; /* 80A00960-80A00980 000020 0020+00 1/1 0/0 0/0 .data l_bmdData */ static int l_bmdData[4][2] = { @@ -402,14 +53,6 @@ static char* l_resNameList[6] = { "Sera", }; -/* ############################################################################################## */ -/* 80A007F8-80A007F8 0001F8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80A008F0 = "CONVERSATION_ABOUT_SARU"; -SECTION_DEAD static char const* const stringBase_80A00908 = "CONVERSATION"; -#pragma pop - /* 80A009F0-80A009F4 0000B0 0003+01 1/0 0/0 0/0 .data l_loadResPtrn0 */ static s8 l_loadResPtrn0[3] = { 1, @@ -447,8 +90,6 @@ static s8* l_loadResPtrnList[5] = { }; /* 80A00A1C-80A00B34 0000DC 0118+00 0/1 0/0 0/0 .data l_faceMotionAnmData */ -#pragma push -#pragma force_active on SECTION_DATA static daNpcT_faceMotionAnmData_c l_faceMotionAnmData[10] = { {-1, 0, 0, 20, 2, 1, 1}, {7, 0, 1, 20, 2, 1, 1}, @@ -461,7 +102,6 @@ SECTION_DATA static daNpcT_faceMotionAnmData_c l_faceMotionAnmData[10] = { {9, 0, 2, 36, 0, 2, 0}, { 11, 2, 2, 38, 2, 2, 0}, }; -#pragma pop /* 80A00B34-80A00DB8 0001F4 0284+00 1/2 0/0 0/0 .data l_motionAnmData */ SECTION_DATA static int l_motionAnmData[161] = { @@ -506,228 +146,22 @@ SECTION_DATA char* daNpc_Hanjo_c::mCutNameList[6] = { "DIVE", }; -// /* 80A00F90-80A00F9C -00001 000C+00 0/1 0/0 0/0 .data @3854 */ -// #pragma push -// #pragma force_active on -// SECTION_DATA static void* lit_3854[3] = { -// (void*)NULL, -// (void*)0xFFFFFFFF, -// (void*)cutConversationAboutSaru__13daNpc_Hanjo_cFi, -// }; -// #pragma pop - -// /* 80A00F9C-80A00FA8 -00001 000C+00 0/1 0/0 0/0 .data @3855 */ -// #pragma push -// #pragma force_active on -// SECTION_DATA static void* lit_3855[3] = { -// (void*)NULL, -// (void*)0xFFFFFFFF, -// (void*)cutConversation__13daNpc_Hanjo_cFi, -// }; -// #pragma pop - -// /* 80A00FA8-80A00FB4 -00001 000C+00 0/1 0/0 0/0 .data @3856 */ -// #pragma push -// #pragma force_active on -// SECTION_DATA static void* lit_3856[3] = { -// (void*)NULL, -// (void*)0xFFFFFFFF, -// (void*)cutPursuitBee__13daNpc_Hanjo_cFi, -// }; -// #pragma pop - -// /* 80A00FB4-80A00FC0 -00001 000C+00 0/1 0/0 0/0 .data @3857 */ -// #pragma push -// #pragma force_active on -// SECTION_DATA static void* lit_3857[3] = { -// (void*)NULL, -// (void*)0xFFFFFFFF, -// (void*)cutAppearHawker__13daNpc_Hanjo_cFi, -// }; -// #pragma pop - -// /* 80A00FC0-80A00FCC -00001 000C+00 0/1 0/0 0/0 .data @3858 */ -// #pragma push -// #pragma force_active on -// SECTION_DATA static void* lit_3858[3] = { -// (void*)NULL, -// (void*)0xFFFFFFFF, -// (void*)cutDive__13daNpc_Hanjo_cFi, -// }; -// #pragma pop - /* 80A00FCC-80A01014 00068C 0048+00 1/2 0/0 0/0 .data mCutList__13daNpc_Hanjo_c */ daNpc_Hanjo_c::cutFunc daNpc_Hanjo_c::mCutList[6] = { + NULL, &daNpc_Hanjo_c::cutConversationAboutSaru, &daNpc_Hanjo_c::cutConversation, &daNpc_Hanjo_c::cutPursuitBee, &daNpc_Hanjo_c::cutAppearHawker, &daNpc_Hanjo_c::cutDive, - NULL, }; /* 80A01014-80A01054 0006D4 0040+00 0/1 0/0 0/0 .data mStoneCcDSph__13daNpc_Hanjo_c */ -#pragma push -#pragma force_active on -SECTION_DATA u8 daNpc_Hanjo_c::mStoneCcDSph[64] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +dCcD_SrcSph daNpc_Hanjo_c::mStoneCcDSph = { + daNpc_Hanjo_c::mStoneCcDObjInfo, {} }; -#pragma pop -// /* 80A010F8-80A01104 0007B8 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, -// }; - -// /* 80A01104-80A01110 0007C4 000C+00 3/3 0/0 0/0 .data __vt__8cM3dGSph */ -// SECTION_DATA extern void* __vt__8cM3dGSph[3] = { -// (void*)NULL /* RTTI */, -// (void*)NULL, -// (void*)__dt__8cM3dGSphFv, -// }; - -// /* 80A01110-80A0111C 0007D0 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, -// }; - -// /* 80A0111C-80A01140 0007DC 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_80A00584, -// (void*)NULL, -// (void*)NULL, -// (void*)func_80A0057C, -// }; - -// /* 80A01140-80A0114C 000800 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, -// }; - -// /* 80A0114C-80A01158 00080C 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, -// }; - -// /* 80A01158-80A01164 000818 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, -// }; - -// /* 80A01164-80A01170 000824 000C+00 3/3 0/0 0/0 .data __vt__22daNpcT_MotionSeqMngr_c */ -// SECTION_DATA extern void* __vt__22daNpcT_MotionSeqMngr_c[3] = { -// (void*)NULL /* RTTI */, -// (void*)NULL, -// (void*)__dt__22daNpcT_MotionSeqMngr_cFv, -// }; - -// /* 80A01170-80A0117C 000830 000C+00 5/5 0/0 0/0 .data __vt__18daNpcT_ActorMngr_c */ -// SECTION_DATA extern void* __vt__18daNpcT_ActorMngr_c[3] = { -// (void*)NULL /* RTTI */, -// (void*)NULL, -// (void*)__dt__18daNpcT_ActorMngr_cFv, -// }; - -// /* 80A0117C-80A01188 00083C 000C+00 3/3 0/0 0/0 .data __vt__15daNpcT_JntAnm_c */ -// SECTION_DATA extern void* __vt__15daNpcT_JntAnm_c[3] = { -// (void*)NULL /* RTTI */, -// (void*)NULL, -// (void*)__dt__15daNpcT_JntAnm_cFv, -// }; - -// /* 80A01188-80A01194 000848 000C+00 5/5 0/0 0/0 .data __vt__8cM3dGAab */ -// SECTION_DATA extern void* __vt__8cM3dGAab[3] = { -// (void*)NULL /* RTTI */, -// (void*)NULL, -// (void*)__dt__8cM3dGAabFv, -// }; - -// /* 80A01194-80A011A0 000854 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, -// }; - -// /* 80A011A0-80A011AC 000860 000C+00 3/3 0/0 0/0 .data __vt__13daNpcT_Path_c */ -// SECTION_DATA extern void* __vt__13daNpcT_Path_c[3] = { -// (void*)NULL /* RTTI */, -// (void*)NULL, -// (void*)__dt__13daNpcT_Path_cFv, -// }; - -// /* 80A011AC-80A01270 00086C 00C4+00 2/2 0/0 0/0 .data __vt__13daNpc_Hanjo_c */ -// SECTION_DATA extern void* __vt__13daNpc_Hanjo_c[49] = { -// (void*)NULL /* RTTI */, -// (void*)NULL, -// (void*)__dt__13daNpc_Hanjo_cFv, -// (void*)ctrlBtk__8daNpcT_cFv, -// (void*)ctrlSubFaceMotion__8daNpcT_cFi, -// (void*)checkChangeJoint__13daNpc_Hanjo_cFi, -// (void*)checkRemoveJoint__13daNpc_Hanjo_cFi, -// (void*)getBackboneJointNo__13daNpc_Hanjo_cFv, -// (void*)getNeckJointNo__13daNpc_Hanjo_cFv, -// (void*)getHeadJointNo__13daNpc_Hanjo_cFv, -// (void*)getFootLJointNo__13daNpc_Hanjo_cFv, -// (void*)getFootRJointNo__13daNpc_Hanjo_cFv, -// (void*)getEyeballLMaterialNo__8daNpcT_cFv, -// (void*)getEyeballRMaterialNo__8daNpcT_cFv, -// (void*)getEyeballMaterialNo__13daNpc_Hanjo_cFv, -// (void*)ctrlJoint__8daNpcT_cFP8J3DJointP8J3DModel, -// (void*)afterJntAnm__13daNpc_Hanjo_cFi, -// (void*)setParam__13daNpc_Hanjo_cFv, -// (void*)checkChangeEvt__13daNpc_Hanjo_cFv, -// (void*)evtTalk__13daNpc_Hanjo_cFv, -// (void*)evtEndProc__8daNpcT_cFv, -// (void*)evtCutProc__13daNpc_Hanjo_cFv, -// (void*)setAfterTalkMotion__13daNpc_Hanjo_cFv, -// (void*)evtProc__8daNpcT_cFv, -// (void*)action__13daNpc_Hanjo_cFv, -// (void*)beforeMove__13daNpc_Hanjo_cFv, -// (void*)afterMoved__13daNpc_Hanjo_cFv, -// (void*)setAttnPos__13daNpc_Hanjo_cFv, -// (void*)setFootPos__8daNpcT_cFv, -// (void*)setCollision__13daNpc_Hanjo_cFv, -// (void*)setFootPrtcl__8daNpcT_cFP4cXyzff, -// (void*)checkCullDraw__8daNpcT_cFv, -// (void*)twilight__8daNpcT_cFv, -// (void*)chkXYItems__8daNpcT_cFv, -// (void*)evtOrder__8daNpcT_cFv, -// (void*)decTmr__8daNpcT_cFv, -// (void*)clrParam__8daNpcT_cFv, -// (void*)drawDbgInfo__13daNpc_Hanjo_cFv, -// (void*)drawOtherMdl__13daNpc_Hanjo_cFv, -// (void*)drawGhost__8daNpcT_cFv, -// (void*)afterSetFaceMotionAnm__8daNpcT_cFiifi, -// (void*)afterSetMotionAnm__8daNpcT_cFiifi, -// (void*)getFaceMotionAnm__8daNpcT_cF26daNpcT_faceMotionAnmData_c, -// (void*)getMotionAnm__8daNpcT_cF22daNpcT_motionAnmData_c, -// (void*)changeAnm__8daNpcT_cFPiPi, -// (void*)changeBck__8daNpcT_cFPiPi, -// (void*)changeBtp__8daNpcT_cFPiPi, -// (void*)changeBtk__8daNpcT_cFPiPi, -// (void*)setMotionAnm__8daNpcT_cFifi, -// }; - /* 809F908C-809F9278 0000EC 01EC+00 1/0 0/0 0/0 .text __dt__13daNpc_Hanjo_cFv */ daNpc_Hanjo_c::~daNpc_Hanjo_c() { OS_REPORT("|%06d:%x|daNpc_Hanjo_c -> デストラクト\n", g_Counter.mCounter0, this); @@ -757,13 +191,9 @@ dCcD_SrcGObjInf const daNpc_Hanjo_c::mStoneCcDObjInfo = { {{0}}, }; -/* 80A006E4-80A006F8 0000E4 0014+00 0/1 0/0 0/0 .rodata heapSize$4058 */ -static int const heapSize[5] = { - 0x61B0, 0x41D0, 0x39D0, 0x39C0, 0, -}; - /* 809F9278-809F9578 0002D8 0300+00 1/1 0/0 0/0 .text create__13daNpc_Hanjo_cFv */ int daNpc_Hanjo_c::create() { + static int const heapSize[5] = {0x61B0, 0x41D0, 0x39D0, 0x39C0, 0}; fopAcM_SetupActor2(this, daNpc_Hanjo_c, l_faceMotionAnmData, (daNpcT_motionAnmData_c*)l_motionAnmData, l_faceMotionSequenceData, 4, l_motionSequenceData, 4, l_evtList, l_resNameList); @@ -806,7 +236,7 @@ int daNpc_Hanjo_c::create() { setRoomNo(); } for (int i = 0; i < 4; i ++) { - mStones[i].getSphP()->Set(*(dCcD_SrcSph*)&mStoneCcDSph); + mStones[i].getSphP()->Set(mStoneCcDSph); mStones[i].getSphP()->SetStts(&mCcStts); } mCreating = 1; @@ -816,18 +246,9 @@ int daNpc_Hanjo_c::create() { return rv; } -/* 80A00710-80A00718 000110 0008+00 0/1 0/0 0/0 .rodata bmdTypeList$4495 */ -static int const bmdTypeList[2] = { - 2, 3, -}; -COMPILER_STRIP_GATE(0x80A00710, &bmdTypeList); - -// /* 80A00718-80A0071C 000118 0004+00 1/9 0/0 0/0 .rodata @4593 */ -// SECTION_RODATA static f32 const lit_4593 = 1.0f; -// COMPILER_STRIP_GATE(0x80A00718, &lit_4593); - /* 809F9578-809F997C 0005D8 0404+00 1/1 0/0 0/0 .text CreateHeap__13daNpc_Hanjo_cFv */ int daNpc_Hanjo_c::CreateHeap() { + static int const bmdTypeList[2] = {2, 3}; J3DModelData* modelData = static_cast(dComIfG_getObjectRes( l_resNameList[l_bmdData[0][1]], l_bmdData[0][0])); if (modelData == NULL) { @@ -1279,104 +700,10 @@ void daNpc_Hanjo_c::afterMoved() { } } -/* 80A01288-80A0128C 000008 0001+03 1/1 0/0 0/0 .bss @1109 */ -static u8 lit_1109[1 + 3 /* padding */]; - -/* 80A0128C-80A01290 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 - -/* 80A01290-80A01294 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 - -/* 80A01294-80A01298 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 - -/* 80A01298-80A0129C 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 - -/* 80A0129C-80A012A0 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 - -/* 80A012A0-80A012A4 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 - -/* 80A012A4-80A012A8 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 - -/* 80A012A8-80A012AC 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 - -/* 80A012AC-80A012B0 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 - -/* 80A012B0-80A012B4 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 - -/* 80A012B4-80A012B8 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 - -/* 80A012B8-80A012BC 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 - -/* 80A012BC-80A012C0 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 - -/* 80A012C0-80A012C4 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 - -/* 80A012C4-80A012C8 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 - -/* 80A012C8-80A012D4 000048 000C+00 1/1 0/0 0/0 .bss @3859 */ -static u8 lit_3859[12]; +UNK_REL_BSS; /* 80A012D4-80A012D8 000054 0004+00 1/1 0/0 0/0 .bss l_HIO */ -static u8 l_HIO[4]; +static daNpc_Hanjo_Param_c l_HIO; /* 809FABB8-809FAF90 001C18 03D8+00 1/0 0/0 0/0 .text setAttnPos__13daNpc_Hanjo_cFv */ void daNpc_Hanjo_c::setAttnPos() { @@ -1656,7 +983,7 @@ void daNpc_Hanjo_c::dive() { cLib_chaseF(&speedF, 0.0f, 0.1f); } else { if (field_0x1720 == 0) { - mSound.startCreatureSound(Z2SE_CM_BODYFALL_WATER_M, 0, 0xffffffff); + mSound.startCreatureSound(Z2SE_CM_BODYFALL_WATER_M, 0, -1); speedF *= 0.5f; field_0x1720 = 1; } else if (field_0x171f == 0) { @@ -1892,8 +1219,6 @@ int daNpc_Hanjo_c::cutConversation(int param_1) { } /* 809FC80C-809FCDC4 00386C 05B8+00 1/0 0/0 0/0 .text cutPursuitBee__13daNpc_Hanjo_cFi */ -// NONMATCHING -// One instruction out of order int daNpc_Hanjo_c::cutPursuitBee(int param_1) { cXyz cStack_6c; int rv = 0; @@ -1983,31 +1308,31 @@ int daNpc_Hanjo_c::cutPursuitBee(int param_1) { mJntAnm.lookNone(0); if (field_0x10e8.getDstPosH(current.pos, &cStack_6c, field_0x10e8.mpRoomPath->m_num, 4)) { rv = 1; - } else { - cLib_addCalcAngleS2(¤t.angle.y, cLib_targetAngleY(¤t.pos, &cStack_6c), 4, 0x800); - shape_angle.y = current.angle.y; - mCurAngle.y = current.angle.y; - field_0xd7e.y = mCurAngle.y; - cLib_chaseF(&speedF, - daNpc_Hanjo_Param_c::m.field_0x90, 0.5f); - if (mEventTimer != 0 && - mCyl1.ChkCoHit()) - { - fopAc_ac_c* hitActor = mCyl1.GetCoHitAc(); - if (daPy_getPlayerActorClass() == hitActor) { - f32 dVar17 = 40.0f; - s16 sVar11 = cM_deg2s(50.0f); - s16 actorAngle = fopAcM_searchActorAngleY(this, daPy_getPlayerActorClass()) - current.angle.y; - s16 angle2; - if (actorAngle > 0) { - angle2 = current.angle.y + 0x2000; - } else { - angle2 = current.angle.y - 0x2000; - } - daPy_getPlayerActorClass()->setThrowDamage(angle2, dVar17 * cM_scos(sVar11), dVar17 * cM_ssin(sVar11), 0, 1, 0); - field_0x1724 = 1; - mEventTimer = 0; + break; + } + + cLib_addCalcAngleS2(¤t.angle.y, cLib_targetAngleY(¤t.pos, &cStack_6c), 4, 0x800); + shape_angle.y = current.angle.y; + mCurAngle.y = current.angle.y; + field_0xd7e.y = mCurAngle.y; + cLib_chaseF(&speedF, daNpc_Hanjo_Param_c::m.field_0x90, 0.5f); + if (mEventTimer != 0 && + mCyl1.ChkCoHit()) + { + fopAc_ac_c* hitActor = mCyl1.GetCoHitAc(); + if (daPy_getPlayerActorClass() == hitActor) { + s16 sVar11 = cM_deg2s(50.0f); + s16 actorAngle = fopAcM_searchActorAngleY(this, daPy_getPlayerActorClass()); + actorAngle -= current.angle.y; + if (actorAngle > 0) { + actorAngle = current.angle.y + 0x2000; + } else { + actorAngle = current.angle.y - 0x2000; } + daPy_getPlayerActorClass()->setThrowDamage(actorAngle, 40.0f * cM_scos(sVar11), + 40.0f * cM_ssin(sVar11), 0, 1, 0); + field_0x1724 = 1; + mEventTimer = 0; } } break; @@ -2080,13 +1405,14 @@ int daNpc_Hanjo_c::cutAppearHawker(int param_1) { case 5: mEventTimer = iVar7; break; - case 6: + case 6: { mEventTimer = iVar7; fopAc_ac_c* actor_p = field_0x10c8[2].getActorP(); JUT_ASSERT(3005, 0 != actor_p); ((daNPC_TK_c*)actor_p)->setAttackLink(); field_0x1722 = 1; break; + } case 99: mMotionSeqMngr.setNo(13, 0.0, 1, 0); @@ -2195,12 +1521,13 @@ int daNpc_Hanjo_c::cutDive(int param_1) { initTalk(0xd0, NULL); mEventTimer = uVar4; break; - case 1: + case 1: { fopAc_ac_c* actor_p = field_0x10c8[2].getActorP(); if (actor_p != NULL){ ((daNPC_TK_c*)actor_p)->setAway(); } break; + } case 2: mFaceMotionSeqMngr.setNo(6, -1.0f, 0, 0); mMotionSeqMngr.setNo(17, -1.0f, 0, @@ -2231,7 +1558,7 @@ int daNpc_Hanjo_c::cutDive(int param_1) { rv = 1; } break; - case 2: + case 2: { cStack_2c.set(0.0f, 0.0f, 50.0f); mDoMtx_stack_c::YrotS(mCurAngle.y); mDoMtx_stack_c::multVec(&cStack_2c, &cStack_2c); @@ -2257,6 +1584,7 @@ int daNpc_Hanjo_c::cutDive(int param_1) { mCurAngle.y = current.angle.y; cLib_chaseF(&speedF, daNpc_Hanjo_Param_c::m.field_0x90, 1.0f); break; + } case 3: if (field_0x1720) { if (mType == TYPE_1) { @@ -2495,7 +1823,7 @@ int daNpc_Hanjo_c::takayose(void* param_0) { field_0x1710 = cLib_getRndValue(dVar8 * 0.5f, dVar8 * 1.5f); mMode = 2; } - case 2: + case 2: { field_0xe2d = 0; dComIfG_play_c& play = g_dComIfG_gameInfo.play; if (play.getEvent().runCheck()) { @@ -2599,6 +1927,7 @@ int daNpc_Hanjo_c::takayose(void* param_0) { } } break; + } case 3: default: break; @@ -2705,6 +2034,3 @@ extern actor_process_profile_definition g_profile_NPC_HANJO = { fopAc_NPC_e, // mActorType fopAc_CULLBOX_CUSTOM_e, // cullType }; - - -/* 80A007F8-80A007F8 0001F8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ diff --git a/src/d/actor/d_a_npc_zelR.cpp b/src/d/actor/d_a_npc_zelR.cpp index f045245696f..70be96e8b44 100644 --- a/src/d/actor/d_a_npc_zelR.cpp +++ b/src/d/actor/d_a_npc_zelR.cpp @@ -4,6 +4,7 @@ */ #include "d/actor/d_a_npc_zelR.h" +#include "SSystem/SComponent/c_counter.h" UNK_REL_DATA @@ -138,7 +139,7 @@ int daNpc_ZelR_c::create() { } OS_REPORT("\t(%s:%d) flowNo:%d, PathID:%02x<%08x> ", fopAcM_getProcNameString(this), mType, - mFlowNodeNo, getPathID(), fopAcM_GetParam(this)); + mFlowNodeNo, getPath(), fopAcM_GetParam(this)); if (isDelete()) { OS_REPORT("===>isDelete:TRUE\n"); return cPhs_ERROR_e;