From 41d9631073b0f6c1632df205253dc785b1b5bece Mon Sep 17 00:00:00 2001 From: WilliamArnett Date: Thu, 22 May 2025 08:31:29 -0500 Subject: [PATCH] 82% text --- include/d/actor/d_a_npc_kk1.h | 42 ++- src/d/actor/d_a_npc_kk1.cpp | 574 +++++++++++++++++++++++++++++++--- 2 files changed, 554 insertions(+), 62 deletions(-) diff --git a/include/d/actor/d_a_npc_kk1.h b/include/d/actor/d_a_npc_kk1.h index 3eb22423d..7ee71522d 100644 --- a/include/d/actor/d_a_npc_kk1.h +++ b/include/d/actor/d_a_npc_kk1.h @@ -132,7 +132,7 @@ public: bool set_action(ActionFunc, void*); void setStt(signed char); void createTama(float); - u32 chk_areaIN(float, cXyz); + bool chk_areaIN(float, cXyz); bool startEvent_check(); bool chkHitPlayer(); void set_pthPoint(unsigned char); @@ -145,21 +145,21 @@ public: void setAse(); void flwAse(); void delAse(); - bool wait_1(); - bool walk_1(); - void wait_2(); + BOOL wait_1(); + BOOL walk_1(); + BOOL wait_2(); void init_CMT_WAI(); void move_CMT_WAI(); void init_CMT_TRN(); void move_CMT_TRN(); void init_CMT_PCK(); void move_CMT_PCK(); - void cmmt_1(); - void wait_3(); - void wait_4(); - void talk_1(); + BOOL cmmt_1(); + BOOL wait_3(); + BOOL wait_4(); + BOOL talk_1(); int wait_action1(void*); - void demo(); + u8 demo(); void shadowDraw(); bool _draw(); bool _execute(); @@ -176,7 +176,8 @@ public: /* 0x6CD */ s8 field_0x6CD; //ui bodyCreateHeap /* 0x6CE */ char mArcName; /* 0x6CF */ u8 field_0x6CF; - /* 0x6D0 */ u8 field_0x6D0[0x6D8 - 0x6D0]; + /* 0x6D0 */ u32 field_0x6D0; + /* 0x6D4 */ u32 mShadowID; /* 0x6D8 */ mDoExt_btpAnm mBtpAnm; /* 0x6EC*/ u8 field_0x6EC; /* 0x6ED*/ s8 field_0x6ED; @@ -211,20 +212,14 @@ public: /* 0x798 */ s16 field_0x798; /* 0x79A */ s16 field_0x79A; /* 0x79C */ s16 field_0x79C; - /* 0x79E */ s8 field_0x79E; - /* 0x79E */ s8 field_0x79F; + /* 0x79E */ s16 field_0x79E; + ///* 0x79E */ s8 field_0x79F; /* 0x7A0 */ s16 field_0x7A0; - /* 0x7A2 */ s16 field_0x7A2; - /* 0x7A4 */ s16 field_0x7A4; - /* 0x7A6 */ s16 field_0x7A6; - /* 0x7A8 */ s16 field_0x7A8; - /* 0x7AA */ s16 field_0x7AA; - /* 0x7AC */ s16 field_0x7AC; /* 0x7AE */ s16 field_0x7AE; /* 0x7B0 */ s16 field_0x7B0; @@ -247,7 +242,9 @@ public: /* 0x7C2 */ u8 field_0x7C2; /* 0x7C3 */ u8 field_0x7C3; /* 0x7C4 */ bool field_0x7C4; - /* 0x7C5 */ u8 field_0x7C5[0x7CF - 0x7C5]; + /* 0x7C5 */ bool field_0x7C5; + /* 0x7C6 */ u8 field_0x7C6; + /* 0x7C5 */ u8 field_0x7C7[0x7CF - 0x7C7]; /* 0x7CF */ u8 field_0x7CF; /* 0x7D0 */ anm_prm_c* field_0x7D0; /* 0x7D4 */ u8 field_0x7D4[0x7DC - 0x7D4]; @@ -273,7 +270,7 @@ public: /* 0x81A */ s8 field_0x81A; /* 0x81B */ s8 field_0x81B; /* 0x81C */ s8 field_0x81C; - /* 0x81D */ u8 field_0x81D; + /* 0x81D */ s8 field_0x81D; /* 0x81E */ u8 field_0x81E; /* 0x81F */ s8 field_0x81F; /* 0x820 */ s8 field_0x820; @@ -297,7 +294,8 @@ public: /* 0x11 */ u8 field_0x11[0x1E - 0x11]; /* 0x1E */ s16 field_0x1E; /* 0x20 */ f32 field_0x20; - /* 0x24 */ f32 field_0x24; + /* 0x24 */ s16 field_0x24; + /* 0x26 */ s16 field_0x26; /* 0x28 */ s16 field_0x28; /* 0x28 */ s16 field_0x2A; /* 0x2C */ s16 field_0x2C; @@ -309,7 +307,7 @@ public: /* 0x3C */ f32 field_0x3C; /* 0x40 */ f32 field_0x40; /* 0x44 */ f32 field_0x44; - ///* 0x44 */ s16 field_0x46; + ///* 0x46 */ s16 field_0x46; /* 0x48 */ f32 field_0x48; /* 0x4C */ f32 field_0x4C; /* 0x50 */ f32 field_0x50; diff --git a/src/d/actor/d_a_npc_kk1.cpp b/src/d/actor/d_a_npc_kk1.cpp index 0f315127b..f97ec1380 100644 --- a/src/d/actor/d_a_npc_kk1.cpp +++ b/src/d/actor/d_a_npc_kk1.cpp @@ -294,7 +294,7 @@ int daNpc_Kk1_c::bckResID(int param_1) { /* 00000AAC-00000AC0 .text btpResID__11daNpc_Kk1_cFi */ int daNpc_Kk1_c::btpResID(int param_1) { - static const u32 a_resID_tbl_2[] = {17}; + static const u32 a_resID_tbl_2[] = {0x00000011}; return a_resID_tbl_2[param_1]; } @@ -440,8 +440,8 @@ void daNpc_Kk1_c::setAnm_anm(daNpc_Kk1_c::anm_prm_c* param_1) { 0x00,00,0000, 8.0, 1.0, 0x00000002, }; - static daNpc_Kk1_c::anm_prm_c a_anm_prm_tbl3[14] = { - {5,0,0,8.0,1.0,2}, + static daNpc_Kk1_c::anm_prm_c a_anm_prm_tbl3[13] = { + {0,0,0,8.0,1.0,2}, {1,0,0,8.0,1.0,2}, {2,0,0,8.0,1.0,2}, {3,0,0,8.0,1.0,2}, @@ -1751,7 +1751,7 @@ void daNpc_Kk1_c::createTama(float param_1) { } /* 000032D8-0000345C .text chk_areaIN__11daNpc_Kk1_cFf4cXyz */ -u32 daNpc_Kk1_c::chk_areaIN(float param_1, cXyz param_2) { +bool daNpc_Kk1_c::chk_areaIN(float param_1, cXyz param_2) { float distanceXZ = (dComIfGp_getLinkPlayer()->current.pos - param_2).absXZ(); @@ -1947,30 +1947,75 @@ bool daNpc_Kk1_c::kyorokyoro() { /* 00003A84-00003C9C .text chk_attn__11daNpc_Kk1_cFv */ bool daNpc_Kk1_c::chk_attn() { /* Nonmatching */ - float fVar1; - bool bVar2; - short sVar4; - int iVar3; - cXyz local_54; - cXyz local_48 [2]; + // float fVar1; + // bool bVar2; + // short sVar4; + // int iVar3; + // cXyz local_54; + // cXyz local_48 [2]; + // int uVar5; - s16 fVar6 = (current.pos-dComIfGp_getLinkPlayer()->current.pos).absXZ(); + // s16 fVar6 = (current.pos-dComIfGp_getLinkPlayer()->current.pos).absXZ(); + // fVar1 = current.pos.y - dComIfGp_getLinkPlayer()->current.pos.y; + // sVar4 = cLib_targetAngleY(¤t.pos,&dComIfGp_getLinkPlayer()->current.pos); + // iVar3 = (sVar4 - current.angle.y); + // if(field_0x81E == 1){ + // u32 uVar5 = 0; + // bVar2 = false; + // if (fVar6 < 200.0 && (fabs(iVar3)/182.0444) < 90.0){ + // bVar2 = true; + // } + // if ((bVar2) && (fabs(fVar1) < 300.0)) { + // uVar5 = 1; + // } + // //return uVar5; + // } + // else{ + // uVar5 = 0; + // bVar2 = false; + // if((fVar6 < 200.0f)&&(fabs(iVar3) / 182.0444 < 60.0)){ + // bVar2 = true; + // } + // if((bVar2) && (abs(fVar1)) < 300.0){ + // uVar5 = 1; + // } + // } + // return uVar5; - fVar1 = cLib_targetAngleY(¤t.pos,&dComIfGp_getLinkPlayer()->current.pos) - current.angle.y; - if(field_0x81E == 1){ - u32 uVar5 = 0; - bVar2 = false; - if (fVar6 < 200.0 && (fabs(iVar3)/182.0444) < 300.0){ + f32 fVar6; + + u8 bVar2; + bool retval = 0; + + fVar6 = (current.pos-dComIfGp_getLinkPlayer()->current.pos).absXZ(); + + f32 fVar1 = current.pos.y - dComIfGp_getLinkPlayer()->current.pos.y; + s16 sVar4 = cLib_targetAngleY(¤t.pos, &dComIfGp_getLinkPlayer()->current.pos); + s16 iVar3 = (sVar4 - current.angle.y); + if ((s32)field_0x81E == 1) { + retval = 0; + bVar2 = 0; + if ((fVar6 < 200.0f) && (((f32)abs(iVar3) / 182.04445f) < 90.0f)) { + bVar2 = 1; } - if ((bVar2) && (fabs(fVar1) < 300.0)) { - uVar5 = 1; + if ((bVar2) && (std::fabsf(fVar1) < 300.0f)) { + retval = 1; } - return uVar5; + return retval; + }else{ + retval = 0; + bVar2 = 0; + if ((fVar6 < 200.0f) && (((f32) abs(iVar3) / 182.04445f) < 60.0f)) { + bVar2 = 1; + } + if ((bVar2) && (std::fabsf(fVar1) < 300.0f)) { + retval = 1; + } + return retval; } - } /* 00003C9C-00003D9C .text setBikon__11daNpc_Kk1_cF4cXyz */ void daNpc_Kk1_c::setBikon(cXyz param_1) { @@ -2036,7 +2081,7 @@ void daNpc_Kk1_c::delAse() { } /* 00003ED0-0000415C .text wait_1__11daNpc_Kk1_cFv */ -bool daNpc_Kk1_c::wait_1() { +BOOL daNpc_Kk1_c::wait_1() { if(field_0x7C3 != 0){ if(chk_talk() != 0){ setStt(2); @@ -2105,7 +2150,7 @@ bool daNpc_Kk1_c::wait_1() { } /* 0000415C-0000449C .text walk_1__11daNpc_Kk1_cFv */ -bool daNpc_Kk1_c::walk_1() { +BOOL daNpc_Kk1_c::walk_1() { short sVar2; float fVar3; @@ -2180,73 +2225,522 @@ bool daNpc_Kk1_c::walk_1() { /* 0000449C-00004614 .text wait_2__11daNpc_Kk1_cFv */ -void daNpc_Kk1_c::wait_2() { - /* Nonmatching */ +BOOL daNpc_Kk1_c::wait_2() { + + int sp8; + cLib_addCalcAngleS(¤t.angle.y,field_0x71A,4,0x800,0x80); + if(field_0x7C3 != 0){ + if(chk_talk() != 0){ + setStt(2); + field_0x81E = 1; + field_0x7C4 = 0; + field_0x7C5 = 0; + m_jnt.setTrn(); + } + return 1; + } + field_0x81E = 0; + field_0x7C4 = 1; + s8 temp_r0 = field_0x81B; + if(temp_r0 == 3 || temp_r0 == 4){ + return 1; + } + if(field_0x7B8 != 0){ + u8 temp_r4 = field_0x7B5; + if((temp_r4 != 0xFF) && (dComIfGs_isSwitch(temp_r4,current.roomNo) != 0)){ + fopAc_ac_c* temp_r3 = searchByID(mPartnerProcID,&sp8); + if((temp_r3 != NULL) && (sp8 == 0)){ + s16 difference = cLib_targetAngleY(&temp_r3->current.pos,&dComIfGp_getLinkPlayer()->current.pos)-temp_r3->current.angle.y; + if(abs(difference) < 0x4000){ + field_0x81B = 4; + }else{ + field_0x81B = 3; + } + mStts.SetWeight(0xD9); + return 1; + } + } + } + field_0x81B = 2; + return 1; + } /* 00004614-0000466C .text init_CMT_WAI__11daNpc_Kk1_cFv */ void daNpc_Kk1_c::init_CMT_WAI() { - /* Nonmatching */ + + field_0x7A4 = cLib_getRndValue(0x5a,0xb4); + this->field_0x81E = 5; + this->field_0x7C4 = 1; + setAnm_NUM(0,1); + return; } /* 0000466C-00004754 .text move_CMT_WAI__11daNpc_Kk1_cFv */ void daNpc_Kk1_c::move_CMT_WAI() { - /* Nonmatching */ + + short sVar2; + uint uVar1; + + + sVar2 = cLib_calcTimer(&field_0x7A4); + if (sVar2 == 0) { + if ((field_0x81B != 1) && (field_0x81B < 3)) { + //local_18 = ; + uVar1 = chk_areaIN(l_HIO.field_0x5C,current.pos); + if ((uVar1 & 0xff) != 0) { + this->field_0x81B = 8; + return; + } + } + field_0x816 = 0; + setAnm_NUM(3,1); + field_0x7B6 = 1; + } + else if (((field_0x81B != 1) && (field_0x81B < 3)) && + (startEvent_check() != 0)) { + field_0x81B = 9; + } + return; } /* 00004754-000047D4 .text init_CMT_TRN__11daNpc_Kk1_cFv */ void daNpc_Kk1_c::init_CMT_TRN() { - /* Nonmatching */ + + field_0x7AA = current.angle.y; + s16 uVar1 = cLib_getRndValue(0x5A,0xB4); + field_0x7A4 = uVar1; + field_0x798 = l_HIO.field_0x2C; + field_0x794 = l_HIO.field_0x28; + field_0x792 = l_HIO.field_0x2A; + field_0x81E = 0; + field_0x7C4 = 1; + setAnm_NUM(0,1); + return; } /* 000047D4-00004A14 .text move_CMT_TRN__11daNpc_Kk1_cFv */ void daNpc_Kk1_c::move_CMT_TRN() { - /* Nonmatching */ + + short sVar1; + uint uVar2; + short sVar3; + short sVar4; + cXyz local_20; + + sVar1 = field_0x7AA + 0x8000; + sVar3 = current.angle.y; + uVar2 = cLib_calcTimer(&field_0x798); + if ((short)uVar2 != 0) { + s8 temp_r0 = field_0x81B; + if((temp_r0 != 1) && (temp_r0 < 3) && startEvent_check() != 0){ + field_0x81B = 9; + } + }else if (field_0x7A4 == 0) { + local_20 = mRunPath.getPoint(mRunPath.mCurrPointIndex); + sVar3 = cLib_targetAngleY(¤t.pos,&local_20); + sVar1 = cLib_addCalcAngleS(¤t.angle.y,sVar3,l_HIO.field_0x30,l_HIO.field_0x32,0x80); + uVar2 = (uint)sVar1; + if ((field_0x81B != 1) && ((char)field_0x81B < 3)) { + + if (startEvent_check() != 0) { + field_0x81B = 9; + return; + } + if (current.angle.y == (int)sVar3) { + field_0x816 = 0; + setAnm_NUM(3,1); + field_0x7B6 = 1; + } + } + }else { + sVar4 = cLib_addCalcAngleS(¤t.angle.y,sVar1,l_HIO.field_0x30,l_HIO.field_0x32,0x80); + uVar2 = (uint)sVar4; + sVar4 = current.angle.y; + if (sVar4 == sVar1) { + if (sVar4 != sVar3) { + field_0x81E = 5; + field_0x7C4 = 1; + } + if (cLib_calcTimer(&field_0x7A4) == 0) { + if ((field_0x81B != '\x01') && ((char)field_0x81B < '\x03')) { + if (chk_areaIN(l_HIO.field_0x5C,current.pos)) { + field_0x81B = 8; + } + } + field_0x81E = 0; + field_0x7C4 = 1; + } + } + if (((field_0x81B != '\x01') && ((char)field_0x81B < '\x03')) && + (uVar2 = startEvent_check(), (uVar2 & 0xff) != 0)) { + field_0x81B = 9; + } + } } /* 00004A14-00004A84 .text init_CMT_PCK__11daNpc_Kk1_cFv */ void daNpc_Kk1_c::init_CMT_PCK() { - /* Nonmatching */ + + setAnm_NUM(1,1); + field_0x7A4 = l_HIO.field_0x26; + field_0x81E = 0; + field_0x7C4 = 1; + mEvtIDIdx = 2; + eventInfo.mEventId = mEvtIDTbl[mEvtIDIdx]; } /* 00004A84-00004C34 .text move_CMT_PCK__11daNpc_Kk1_cFv */ void daNpc_Kk1_c::move_CMT_PCK() { /* Nonmatching */ + cXyz sp8; + s16 temp_r3; + u8 temp_r0; + u8 temp_r0_2; + + if (field_0x7A4 == 0) { + sp8 = mRunPath.getPoint(mRunPath.mCurrPointIndex); + + temp_r3 = cLib_targetAngleY(¤t.pos,&sp8); + cLib_addCalcAngleS(¤t.angle.y, temp_r3, l_HIO.field_0x30, l_HIO.field_0x32, 0x80); + temp_r0 = field_0x81B; + if (((s8) temp_r0 != 1) && ((s8) temp_r0 < 3)) { + if (startEvent_check() != 0) { + field_0x81B = 9; + return; + } + if (current.angle.y == temp_r3) { + field_0x816 = 0; + setAnm_NUM(3, 1); + field_0x7B6 = 1; + } + } + } else if ((u8) field_0x7C3 == 0) { + temp_r0_2 = field_0x81B; + if (((s8) temp_r0_2 != 1) && ((s8) temp_r0_2 < 3) && (chkHitPlayer() != 0)) { + field_0x81B = 1; + return; + } + if (!cLib_calcTimer(&field_0x7A4)) { + setAnm_NUM(0, 1); + eventInfo.mEventId = -1; + field_0x81B = 0; + return; + } + mDoAud_seStart(0x509BU, ¤t.pos); + field_0x81B = 2; + } } /* 00004C34-00004DD0 .text cmmt_1__11daNpc_Kk1_cFv */ -void daNpc_Kk1_c::cmmt_1() { +BOOL daNpc_Kk1_c::cmmt_1() { /* Nonmatching */ + u8 temp_r0; + + u8 temp_r0_4; + + switch (field_0x816) { /* irregular */ + case 1: + move_CMT_WAI(); + return 1; + case 4: + move_CMT_TRN(); + return 1; + case 5: + move_CMT_PCK(); + return 1; + case 0: + default: + if ((field_0x81B != 1) && (field_0x81B < 3) && (field_0x81A != 1) && (startEvent_check() != 0)) { + field_0x81B = 9; + } + field_0x81E = 0; + field_0x7C4 = 1; + if (event_move( 1) != 0) { + if ((field_0x81B == 1) || (field_0x81B >= 3)) { + return 1; + } + temp_r0_4 = field_0x816; + switch ((s8) temp_r0_4) { + case 1: + init_CMT_WAI(); + break; + case 4: + init_CMT_TRN(); + break; + case 5: + init_CMT_PCK(); + break; + case 0: + default: + field_0x816 = 0; + setAnm_NUM(3, 1); + field_0x7B6 = 1; + break; + } + + } + if ((field_0x81B == 1) || (field_0x81B >= 3)) { + return 1; + } + field_0x81B = 0; + return 1; + } } /* 00004DD0-00004F74 .text wait_3__11daNpc_Kk1_cFv */ -void daNpc_Kk1_c::wait_3() { - /* Nonmatching */ +BOOL daNpc_Kk1_c::wait_3() { + + + + + float fVar4 = (current.pos-dComIfGp_getLinkPlayer()->current.pos).absXZ(); + + field_0x7C5 = fVar4 > 300.0f; + if (field_0x7C5) { + cLib_addCalcAngleS(¤t.angle.y,field_0x71A,4,0x800,0x80); + } + if (field_0x7C3 != 0) { + if (chk_talk()) { + setStt(2); + this->field_0x81E = 1; + this->field_0x7C4 = 0; + this->field_0x7C5 = 0; + m_jnt.mbTrn = true; + + } + return 1; + } + else { + field_0x81E = 0; + field_0x7C4 = 1; + if (chk_attn()) { + this->field_0x81E = 1; + } + if ((this->field_0x81B != 1) && (field_0x81B < 3)) { + this->field_0x81B = 2; + } + } + return 1; } /* 00004F74-00005170 .text wait_4__11daNpc_Kk1_cFv */ -void daNpc_Kk1_c::wait_4() { +BOOL daNpc_Kk1_c::wait_4() { /* Nonmatching */ + float fVar1; + bool bVar3; + short target; + int iVar2; + float fVar4; + cXyz local_44; + cXyz local_38; + cXyz local_2c; + cXyz local_20 [2]; + + fVar4 = (current.pos-dComIfGp_getLinkPlayer()->current.pos).absXZ(); + + + + if (this->field_0x7C3) { + if (chk_talk()) { + setStt('\x02'); + setAnm_NUM(0,1); + this->field_0x81E = 1; + this->field_0x7C4 = 0; + m_jnt.mbTrn = true; + } + return 1; + } + else { + this->field_0x81B = 2; + this->field_0x81E = 1; + this->field_0x7C4 = 0; + this->field_0x7B6 = fVar4 > 300.0f; + if (this->field_0x7B6) { + local_20[0] = mRunPath.getPoint(mRunPath.mCurrPointIndex); + + target = cLib_targetAngleY(¤t.pos,local_20); + cLib_addCalcAngleS(¤t.angle.y,target,l_HIO.field_0x30,l_HIO.field_0x32,0x80); + s16 diff = target - current.angle.y; + iVar2 = abs(diff); + if (iVar2 < 0x1800) { + setStt('\x03'); + field_0x7B7 = 0; + } + this->field_0x81E = 0; + this->field_0x7C4 = 1; + } + } + return 1; } /* 00005170-000052B4 .text talk_1__11daNpc_Kk1_cFv */ -void daNpc_Kk1_c::talk_1() { - /* Nonmatching */ +BOOL daNpc_Kk1_c::talk_1() { + + msg_class *pmVar3; + int uVar4; + short sVar5; + + int uVar6 = chk_parts_notMov(); + talk(1); + pmVar3 = mpCurrMsg; + if (pmVar3 == NULL) { + return 1; + } + switch(pmVar3->mStatus){ + case 6: + case 2: + break; + case 19: + field_0x7B4 = 0xff; + field_0x7C3 = 0; + + setStt(field_0x81D); + uVar4 = cLib_getRndValue(0xF,0x1E); + field_0x79E = uVar4; + + switch(mCurrMsgNo){ + case 0x1CA9: + dComIfGs_onEventBit(0xE10); + break; + case 0x1CAB: + field_0x81B = 7; + break; + case 0x1CAC: + field_0x81E = 1; + field_0x7C4 = 0; + field_0x7A2 = 0; + break; + default: + break; + } + endEvent(); + break; + } + sVar5 = cLib_calcTimer(&field_0x7A2); + if ((sVar5 != 0) && (field_0x7A2 == 1)) { + this->field_0x81E = 1; + this->field_0x7C4 = 0; + } + return uVar6; } + /* 000052B4-000053F4 .text wait_action1__11daNpc_Kk1_cFPv */ -int daNpc_Kk1_c::wait_action1(void*) { - /* Nonmatching */ +int daNpc_Kk1_c::wait_action1(void* arg0) { + + u8 temp_r0; + u8 temp_r0_2; + + temp_r0 = this->field_0x821; + switch ((s8) temp_r0) { + + case 0: + if (dKy_daynight_check() == 0) { + this->field_0x7B7 = 0; + setStt(1); + this->field_0x821 += 1; + } else { + setStt(4); + this->field_0x821 += 1; + } + break; + + case 9: + default: + break; + case 1: + case 2: + case 3: + field_0x7C2 = chkAttention(); + + switch (field_0x81C) { + case 1: + field_0x778 = wait_1(); + break; + case 2: + field_0x778 = talk_1(); + break; + case 3: + field_0x778 = walk_1(); + break; + case 4: + field_0x778 = wait_2(); + break; + case 5: + field_0x778 = cmmt_1(); + break; + case 6: + field_0x778 = wait_3(); + break; + case 7: + field_0x778 = wait_4(); + break; + } + break; + } + return 1; } /* 000053F4-00005534 .text demo__11daNpc_Kk1_cFv */ -void daNpc_Kk1_c::demo() { - /* Nonmatching */ +u8 daNpc_Kk1_c::demo() { + + //dDemo_actor_c *this_00; + J3DAnmTexPattern *pJVar2; + + if (demoActorID == 0) { + if (field_0x7C6 != 0) { + field_0x7C6 = 0; + } + } + else { + if (field_0x7C6 == NULL) { + field_0x7C6 = 1; + field_0x7BF = 0; + + m_jnt.setHead_y(0); + m_jnt.setHead_x(0); + m_jnt.setBackBone_y(0); + m_jnt.setBackBone_x(0); + + } + dDemo_actor_c* this_00 = dComIfGp_demo_getActor(demoActorID); + + pJVar2 = mBtpAnm.getBtpAnm(); + + if (pJVar2 != NULL) { + + u8 cmp = pJVar2 ->getFrameMax(); + field_0x6EC += 1; + if (field_0x6EC >= cmp) { + field_0x6EC = cmp; + } + } + + pJVar2 = (J3DAnmTexPattern*)(this_00)->getP_BtpData(&mArcName); + if (pJVar2 != NULL) { + mBtpAnm.init(mpMorf->getModel()->getModelData(),pJVar2,1,0,1.0,0,-1,true,0); + + field_0x819 = 1; + field_0x6EC = 0; + } + dDemo_setDemoData(this,0x6A,mpMorf,&mArcName,0,0,0,0); + + } + return field_0x7C6; + } /* 00005534-000055C4 .text shadowDraw__11daNpc_Kk1_cFv */ void daNpc_Kk1_c::shadowDraw() { - /* Nonmatching */ + + cXyz local_18(current.pos.x,current.pos.y + 150.0f, current.pos.z); + + GXTexObj* tex = dDlst_shadowControl_c::getSimpleTex(); + + mShadowID = dComIfGd_setShadow(mShadowID,1,mpMorf->getModel(),&local_18,800.0f,40.0f,current.pos.y,mObjAcch.GetGroundH(), + mObjAcch.m_gnd,&tevStr,0,1.0,tex); + } /* 000055C4-00005798 .text _draw__11daNpc_Kk1_cFv */