diff --git a/include/d/actor/d_a_npc.h b/include/d/actor/d_a_npc.h index 08fee130bc..6ea1e22a94 100644 --- a/include/d/actor/d_a_npc.h +++ b/include/d/actor/d_a_npc.h @@ -817,6 +817,12 @@ STATIC_ASSERT(sizeof(daNpcT_c) == 0xE40); fopAcM_OnCondition(ptr, fopAcCnd_INIT_e); \ } +#if DEBUG + #define NpcT_CHK_ACTION(ClassName) chkAction(&ClassName::test) +#else + #define NpcT_CHK_ACTION(ClassName) FALSE +#endif + BOOL daNpcT_chkEvtBit(u32 i_idx); BOOL daNpcT_chkPointInArea(cXyz param_0, cXyz param_1, cXyz param_2, s16 param_3, BOOL param_4); u8 daNpcT_getDistTableIdx(int param_0, int param_1); diff --git a/include/d/actor/d_a_npc_besu.h b/include/d/actor/d_a_npc_besu.h index 0e1028069f..e09e2faa7d 100644 --- a/include/d/actor/d_a_npc_besu.h +++ b/include/d/actor/d_a_npc_besu.h @@ -104,6 +104,7 @@ public: int nurse(void*); int giveHotWater(void*); int talk(void*); + BOOL test(void* param_0); daNpc_Besu_c( daNpcT_faceMotionAnmData_c const* i_faceMotionAnmData, daNpcT_motionAnmData_c const* i_motionAnmData, diff --git a/include/d/actor/d_a_tag_push.h b/include/d/actor/d_a_tag_push.h index 007c755f22..ae3d664401 100644 --- a/include/d/actor/d_a_tag_push.h +++ b/include/d/actor/d_a_tag_push.h @@ -14,12 +14,9 @@ public: int isDelete(); int chkPointInArea(cXyz); - u32 getId() { - u32 id = fopAcM_GetParam(this) >> 0x18; - if (id != 0xFF) { - return id; - } - return -1; + int getId() { + u16 id = (fopAcM_GetParam(this) & 0xFF000000) >> 24; + return (id == 0xFF) ? -1 : id; } u8 getBitSW() { return fopAcM_GetParam(this) & 0xFF; } diff --git a/include/d/d_com_static.h b/include/d/d_com_static.h index df814b3223..517fcb8fab 100644 --- a/include/d/d_com_static.h +++ b/include/d/d_com_static.h @@ -6,7 +6,7 @@ u8 daNpcKakashi_getSwdTutorialStep(); void daNpcKakashi_setSwdTutorialStep(u8 iEvtNum); bool daNpcKakashi_getSwdTutorialResult(); -u8 daNpcKakashi_chkSwdTutorialStage(); +bool daNpcKakashi_chkSwdTutorialStage(); u8 daNpcKakashi_getSuccessCount(); void daNpcKakashi_clrSuccessCount(); void daNpcKakashi_setSwdTutorialResult(bool param_0); diff --git a/src/d/actor/d_a_npc_aru.cpp b/src/d/actor/d_a_npc_aru.cpp index 3e126080bf..b275a36b22 100644 --- a/src/d/actor/d_a_npc_aru.cpp +++ b/src/d/actor/d_a_npc_aru.cpp @@ -449,14 +449,7 @@ int daNpc_Aru_c::Draw() { mdlData_p->getMaterialNodePointer(getEyeballMaterialNo())->setMaterialAnm(mpMatAnm[0]); } - return draw( -#if DEBUG - chkAction(&daNpc_Aru_c::test), -#else - FALSE, -#endif - FALSE, mRealShadowSize, NULL, 100.0f, FALSE, FALSE, FALSE - ); + return draw(NpcT_CHK_ACTION(daNpc_Aru_c), FALSE, mRealShadowSize, NULL, 100.0f, FALSE, FALSE, FALSE); } int daNpc_Aru_c::createHeapCallBack(fopAc_ac_c* a_this) { diff --git a/src/d/actor/d_a_npc_bans.cpp b/src/d/actor/d_a_npc_bans.cpp index 99c2512ec5..859c0abb6d 100644 --- a/src/d/actor/d_a_npc_bans.cpp +++ b/src/d/actor/d_a_npc_bans.cpp @@ -547,11 +547,7 @@ int daNpc_Bans_c::Draw() { modelData->getMaterialNodePointer(getEyeballMaterialNo())->setMaterialAnm(mpMatAnm[0]); } - #if DEBUG - return draw(chkAction(&daNpc_Bans_c::test), !(mTwilight & 0xFF), mRealShadowSize, NULL, 100.0f, FALSE, FALSE, FALSE); - #else - return draw(FALSE, !(mTwilight & 0xFF), mRealShadowSize, NULL, 100.0f, FALSE, FALSE, FALSE); - #endif + return draw(NpcT_CHK_ACTION(daNpc_Bans_c), !(mTwilight & 0xFF), mRealShadowSize, NULL, 100.0f, FALSE, FALSE, FALSE); } int daNpc_Bans_c::createHeapCallBack(fopAc_ac_c* a_this) { diff --git a/src/d/actor/d_a_npc_besu.cpp b/src/d/actor/d_a_npc_besu.cpp index d3336a6109..896c99ee69 100644 --- a/src/d/actor/d_a_npc_besu.cpp +++ b/src/d/actor/d_a_npc_besu.cpp @@ -10,6 +10,10 @@ #include "d/actor/d_a_tag_push.h" #include "d/d_com_static.h" #include "d/d_item.h" +#if DEBUG +#include "JSystem/JHostIO/JORFile.h" +#include "d/d_debug_viewer.h" +#endif enum Besu_RES_File_ID { /* BMDR */ @@ -279,9 +283,91 @@ enum Event { /* 0xC */ EVENT_CONVERSATION_ABOUT_ZORA, }; -#if !DEBUG -#endif +const daNpc_Besu_HIOParam daNpc_Besu_Param_c::m = { + 160.0f, + -3.0f, + 1.0f, + 400.0f, + 255.0f, + 140.0f, + 35.0f, + 30.0f, + 0.0f, + 0.0f, + 10.0f, + -10.0f, + 30.0f, + -10.0f, + 45.0f, + -45.0f, + 0.6f, + 12.0f, + 3, + 6, + 5, + 6, + 110.0f, + 0.0f, + 0.0f, + 0.0f, + 60, + 8, + 0, + 0, + 0, + 0, + 0, + 4.0f, + -15.0f, + 0.0f, + -15.0f, + 15.0f, + 30.0f, + 15.0f, + 70.0f, + 1.0f, +}; +#if DEBUG +daNpc_Besu_HIO_c::daNpc_Besu_HIO_c() { + m = daNpc_Besu_Param_c::m; +} + +void daNpc_Besu_HIO_c::listenPropertyEvent(const JORPropertyEvent* event) { + char msg_buffer[2000]; + + JORReflexible::listenPropertyEvent(event); + + JORFile aJStack_910; + int len; + switch ((u32)event->id) { + case 0x40000002: + if (aJStack_910.open(6, "すべてのファイル(*.*)\0*.*\0", NULL, NULL, NULL) != 0) { + memset(msg_buffer, 0, 2000); + len = 0; + daNpcT_cmnListenPropertyEvent(msg_buffer, &len, &m.common); + // animation playback speed + sprintf(msg_buffer + len, "%.3ff,\t// アニメ再生速度\n", m.field_0x8c); + len = strlen(msg_buffer); + aJStack_910.writeData(msg_buffer, len); + aJStack_910.close(); + OS_REPORT("write append success!::%6d\n", len); + } else { + OS_REPORT("write append failure!\n"); + } + break; + } +} + +void daNpc_Besu_HIO_c::genMessage(JORMContext* ctx) { + // NONMATCHING + daNpcT_cmnGenMessage(ctx, &m.common); + // animation playback speed: + ctx->genSlider("アニメ再生速度 ", &m.field_0x8c, -0.0f, 16.0f, 0, NULL, 0xFFFF, 0xFFFF, 0x200, 24); + // export file: + ctx->genButton("ファイル書き出し", 0x40000002, 0, NULL, 0xFFFF, 0xFFFF, 0x200, 0x18); +} +#endif static int l_bmdData[6][2] = { {3, 1}, @@ -529,20 +615,6 @@ daNpc_Besu_c::cutFunc daNpc_Besu_c::mCutList[15] = { static NPC_BESU_HIO_CLASS l_HIO; -#if DEBUG -daNpc_Besu_HIO_c::daNpc_Besu_HIO_c() { - m = daNpc_Besu_Param_c::m; -} - -void daNpc_Besu_HIO_c::listenPropertyEvent(const JORPropertyEvent* event) { - // NONMATCHING -} - -void daNpc_Besu_HIO_c::genMessage(JORMContext* ctx) { - // NONMATCHING -} -#endif - daNpc_Besu_c::~daNpc_Besu_c() { // "Destruct": OS_REPORT("|%06d:%x|daNpc_Besu_c -> デストラクト\n", g_Counter.mCounter0, this); @@ -563,51 +635,6 @@ daNpc_Besu_c::~daNpc_Besu_c() { deleteRes((l_loadResPtrnList)[mType], (const char**)l_resNameList); } -const daNpc_Besu_HIOParam daNpc_Besu_Param_c::m = { - 160.0f, - -3.0f, - 1.0f, - 400.0f, - 255.0f, - 140.0f, - 35.0f, - 30.0f, - 0.0f, - 0.0f, - 10.0f, - -10.0f, - 30.0f, - -10.0f, - 45.0f, - -45.0f, - 0.6f, - 12.0f, - 3, - 6, - 5, - 6, - 110.0f, - 0.0f, - 0.0f, - 0.0f, - 60, - 8, - 0, - 0, - 0, - 0, - 0, - 4.0f, - -15.0f, - 0.0f, - -15.0f, - 15.0f, - 30.0f, - 15.0f, - 70.0f, - 1.0f, -}; - int daNpc_Besu_c::create() { static int const heapSize[19] = { 0x35C0, 0x35C0, 0x3510, 0x35D0, @@ -768,8 +795,8 @@ int daNpc_Besu_c::CreateHeap() { } int daNpc_Besu_c::Delete() { - OS_REPORT("|%06d:%x|daNpc_Besu_c -> Delete\n", g_Counter, this); - fopAcM_GetID(this); + OS_REPORT("|%06d:%x|daNpc_Besu_c -> Delete\n", g_Counter.mCounter0, this); + fopAcM_RegisterDeleteID(this, "NPC_BESU"); this->~daNpc_Besu_c(); return 1; } @@ -779,18 +806,17 @@ int daNpc_Besu_c::Execute() { } int daNpc_Besu_c::Draw() { - daNpcT_MatAnm_c* matAnm = mpMatAnm[0]; - if (matAnm != NULL) { + if (mpMatAnm[0] != NULL) { J3DModelData* modelData = mpMorf[0]->getModel()->getModelData(); - J3DMaterial* material = modelData->getMaterialNodePointer(getEyeballMaterialNo()); - material->setMaterialAnm(matAnm); + modelData->getMaterialNodePointer(getEyeballMaterialNo())->setMaterialAnm(mpMatAnm[0]); } - return draw(FALSE, 0, mRealShadowSize, NULL, 100.0f, 0, 0, 0); + return draw(NpcT_CHK_ACTION(daNpc_Besu_c), 0, mRealShadowSize, NULL, 100.0f, 0, 0, 0); } int daNpc_Besu_c::createHeapCallBack(fopAc_ac_c* i_this) { - return static_cast(i_this)->CreateHeap(); + daNpc_Besu_c* a_this = static_cast(i_this); + return a_this->CreateHeap(); } int daNpc_Besu_c::ctrlJointCallBack(J3DJoint* param_0, int param_1) { @@ -806,7 +832,8 @@ int daNpc_Besu_c::ctrlJointCallBack(J3DJoint* param_0, int param_1) { } u8 daNpc_Besu_c::getType() { - switch (fopAcM_GetParam(this) & 0xFF) { + u8 prm = fopAcM_GetParam(this); + switch (prm & 0xFF) { case 0: return 0; case 1: @@ -1013,7 +1040,7 @@ void daNpc_Besu_c::setParam() { s16 talk_ang = mpHIO->m.common.talk_angle; s16 att_dist = mpHIO->m.common.attention_distance; s16 att_ang = mpHIO->m.common.attention_angle; - if (daNpcKakashi_chkSwdTutorialStage() & 0xFF) { + if (daNpcKakashi_chkSwdTutorialStage()) { talk_dist = 11; talk_ang = 6; att_dist = 15; @@ -1270,31 +1297,13 @@ void daNpc_Besu_c::action() { ) { mStagger.setParam(this, actor_p, mCurAngle.y); setDamage(0, 0xC, 0x12); - // FIXME: Fakematch -#if DEBUG mStagger.setPower(0.0f); -#else - for (int i = 0; i < 2; i++) { - mStagger.mPower[i] = 0.0f; - } -#endif mDamageTimerStart = 0; mJntAnm.lookNone(1); } if (mStagger.checkRebirth()) { - // FIXME: Fakematch -#if DEBUG mStagger.initialize(); -#else - for (int i = 0; i < 2; i++) { - mStagger.mAngle[i].setall(0); - mStagger.mPower[i] = 0.0f; - } - mStagger.mStagger = 0; - mStagger.field_0x16 = 0; - mStagger.mRebirth = 0; -#endif mMode = 1; } @@ -1405,6 +1414,7 @@ void daNpc_Besu_c::setAttnPos() { void daNpc_Besu_c::setCollision() { cXyz cStack_48; if (!mHide) { + u32 co_sprm = 0x79; int tgType = 0xD8FBFDFF; int tgSPrm = 0x1F; if (mTwilight) { @@ -1415,7 +1425,7 @@ void daNpc_Besu_c::setCollision() { tgSPrm = 0; } - mCyl1.SetCoSPrm(0x79); + mCyl1.SetCoSPrm(co_sprm); mCyl1.SetTgType(tgType); mCyl1.SetTgSPrm(tgSPrm); mCyl1.OnTgNoHitMark(); @@ -1455,7 +1465,8 @@ void daNpc_Besu_c::setCollision() { mDoMtx_stack_c::YrotS(mCurAngle.y); mDoMtx_stack_c::multVec(&cStack_48, &cStack_48); cStack_48 += current.pos; - mCyl2.SetCoSPrm(0x19); + co_sprm = 0x19; + mCyl2.SetCoSPrm(co_sprm); mCyl2.SetH(cylH); mCyl2.SetR(wallR); mCyl2.SetC(cStack_48); @@ -1470,6 +1481,17 @@ void daNpc_Besu_c::setCollision() { } int daNpc_Besu_c::drawDbgInfo() { +#if DEBUG + if (mpHIO->m.common.debug_info_ON) { + f32 dist_max_speak = dComIfGp_getAttention()->getDistTable(attention_info.distances[fopAc_attn_SPEAK_e]).mDistMax; + f32 dist_max_talk = dComIfGp_getAttention()->getDistTable(attention_info.distances[fopAc_attn_TALK_e]).mDistMax; + dDbVw_drawCircleOpa(attention_info.position, dist_max_speak, (GXColor){0x00, 0xC8, 0x00, 0xFF}, 1, 12); + dDbVw_drawCircleOpa(attention_info.position, dist_max_talk, (GXColor){0xC8, 0x00, 0x00, 0xFF}, 1, 12); + dDbVw_drawSphereXlu(eyePos, 18.0f, (GXColor){0x80, 0x80, 0x80, 0xA0}, 1); + dDbVw_drawSphereXlu(attention_info.position, 9.0f, (GXColor){0x80, 0x80, 0x80, 0xA0}, 1); + } +#endif + return false; } @@ -1513,9 +1535,10 @@ bool daNpc_Besu_c::setCupAnm(int arg0, int i_attr, f32 i_morf) { }; J3DAnmTransform* transform_p = NULL; + int reg_r29 = arg0; if (mpCupModelMorf != NULL) { - if (cupAnmData[arg0][0] > 0) { - transform_p = getTrnsfrmKeyAnmP(l_resNameList[cupAnmData[arg0][1]], cupAnmData[arg0][0]); + if (cupAnmData[reg_r29][0] > 0) { + transform_p = getTrnsfrmKeyAnmP(l_resNameList[cupAnmData[reg_r29][1]], cupAnmData[reg_r29][0]); } if (transform_p != NULL && transform_p != mpCupModelMorf->getAnm()) { @@ -1616,17 +1639,23 @@ void daNpc_Besu_c::changeBtp(int* arg0, int* arg1) { void daNpc_Besu_c::changeBtk(int* arg0, int* arg1) { if (mType == 0x11) { - if (*arg0 != 0x16) { - return; + switch (*arg0) { + case 0x16: + *arg0 = 0x10; + *arg1 = 7; } - - *arg0 = 0x10; - *arg1 = 7; } } int daNpc_Besu_c::selectAction() { mNextAction = NULL; +#if DEBUG + if (mpHIO->m.common.debug_mode_ON) { + mNextAction = &daNpc_Besu_c::test; + return 1; + } +#endif + switch (mType) { case 6: mNextAction = &daNpc_Besu_c::nurse; @@ -1638,7 +1667,7 @@ int daNpc_Besu_c::selectAction() { mNextAction = &daNpc_Besu_c::nurse; break; case 14: - if (daNpcKakashi_chkSwdTutorialStage() & 0xFF) { + if (daNpcKakashi_chkSwdTutorialStage()) { mNextAction = &daNpc_Besu_c::swdTutorial; } else { mNextAction = &daNpc_Besu_c::wait; @@ -1954,7 +1983,8 @@ int daNpc_Besu_c::cutConversationAboutWoodSwd(int arg0) { case 1: { if (talkProc(NULL, 0, speakers, 0)) { int ev_id; - switch (mFlow.getEventId(&ev_id)) { + int event_id = mFlow.getEventId(&ev_id); + switch (event_id) { case 2: { dStage_changeScene(0xC, 0.0f, 0U, fopAcM_GetRoomNo(this), 0, -1); break; @@ -2669,7 +2699,7 @@ int daNpc_Besu_c::wait(void* param_0) { attention_info.flags = 0; } else { u8 var_r28 = 0; - if (daNpcKakashi_chkSwdTutorialStage() & 0xFF) { + if (daNpcKakashi_chkSwdTutorialStage()) { mPlayerActorMngr.remove(); } else { if (mType == 11 || mType == 17) { @@ -2725,7 +2755,7 @@ int daNpc_Besu_c::wait(void* param_0) { mMode = 1; } attention_info.flags = 0; - } else if (daNpcKakashi_chkSwdTutorialStage() & 0xFF) { + } else if (daNpcKakashi_chkSwdTutorialStage()) { mJntAnm.lookPlayer(0); } else if (mTwilight == 0) { srchPlayerActor(); @@ -2946,7 +2976,7 @@ int daNpc_Besu_c::giveHotWater(void* param_0) { return 1; } -int daNpc_Besu_c::talk(void* param_0) { +int daNpc_Besu_c::talk(void*) { switch (mMode) { case 0: case 1: { @@ -2990,6 +3020,26 @@ int daNpc_Besu_c::talk(void* param_0) { return 0; } +BOOL daNpc_Besu_c::test(void*) { + switch(mMode) { + case 0: + case 1: + speedF = 0.0f; + speed.setall(0.0f); + mMode = 2; + // fallthrough + case 2: + mFaceMotionSeqMngr.setNo(mpHIO->m.common.face_expression, -1.0f, 0, 0); + mMotionSeqMngr.setNo(mpHIO->m.common.motion, -1.0f, 0, 0); + mJntAnm.lookNone(0); + attention_info.flags = 0; + break; + case 3: + break; + } + return 1; +} + static int daNpc_Besu_Create(void* i_this) { return static_cast(i_this)->create(); } diff --git a/src/d/actor/d_a_npc_doc.cpp b/src/d/actor/d_a_npc_doc.cpp index 72a4f2bf16..3300891133 100644 --- a/src/d/actor/d_a_npc_doc.cpp +++ b/src/d/actor/d_a_npc_doc.cpp @@ -274,14 +274,7 @@ int daNpc_Doc_c::Draw() { mdlData_p->getMaterialNodePointer(getEyeballMaterialNo())->setMaterialAnm(mpMatAnm[0]); } - return draw( -#if DEBUG - chkAction(&daNpc_Doc_c::test), -#else - FALSE, -#endif - FALSE, mRealShadowSize, NULL, 100.0f, FALSE, FALSE, FALSE - ); + return draw(NpcT_CHK_ACTION(daNpc_Doc_c), FALSE, mRealShadowSize, NULL, 100.0f, FALSE, FALSE, FALSE); } int daNpc_Doc_c::createHeapCallBack(fopAc_ac_c* i_this) { diff --git a/src/d/actor/d_a_npc_fairy.cpp b/src/d/actor/d_a_npc_fairy.cpp index e0ea3bdeaf..f85d40c9e4 100644 --- a/src/d/actor/d_a_npc_fairy.cpp +++ b/src/d/actor/d_a_npc_fairy.cpp @@ -748,11 +748,7 @@ int daNpc_Fairy_c::Draw() { mdlData_p->getMaterialNodePointer(getEyeballMaterialNo())->setMaterialAnm(mpMatAnm[0]); } - #if DEBUG - return draw(chkAction(&daNpc_Fairy_c::test), TRUE, mRealShadowSize, NULL, 100.0f, FALSE, FALSE, FALSE); - #else - return draw(FALSE, TRUE, mRealShadowSize, NULL, 100.0f, FALSE, FALSE, FALSE); - #endif + return draw(NpcT_CHK_ACTION(daNpc_Fairy_c), TRUE, mRealShadowSize, NULL, 100.0f, FALSE, FALSE, FALSE); } void daNpc_Fairy_c::drawOtherMdl() { diff --git a/src/d/actor/d_a_npc_grmc.cpp b/src/d/actor/d_a_npc_grmc.cpp index 52d82a8acd..15904ef3c2 100644 --- a/src/d/actor/d_a_npc_grmc.cpp +++ b/src/d/actor/d_a_npc_grmc.cpp @@ -346,14 +346,7 @@ int daNpc_grMC_c::Execute() { } int daNpc_grMC_c::Draw() { - return draw( - #if DEBUG - chkAction(&daNpc_grMC_c::test), - #else - FALSE, - #endif - FALSE, mRealShadowSize, NULL, 100.0f, FALSE, FALSE, FALSE - ); + return draw(NpcT_CHK_ACTION(daNpc_grMC_c), FALSE, mRealShadowSize, NULL, 100.0f, FALSE, FALSE, FALSE); } int daNpc_grMC_c::createHeapCallBack(fopAc_ac_c* a_this) { diff --git a/src/d/actor/d_a_npc_hoz.cpp b/src/d/actor/d_a_npc_hoz.cpp index 8b5bd3f856..0b67504bb8 100644 --- a/src/d/actor/d_a_npc_hoz.cpp +++ b/src/d/actor/d_a_npc_hoz.cpp @@ -423,13 +423,7 @@ int daNpc_Hoz_c::Draw() { modelData->getMaterialNodePointer(getEyeballMaterialNo())->setMaterialAnm(mpMatAnm[0]); } - return draw( -#if DEBUG - chkAction(&daNpc_Hoz_c::test), -#else - FALSE, -#endif - FALSE, mpHIO->m.common.real_shadow_size, NULL, 100.0f, FALSE, FALSE, FALSE + return draw(NpcT_CHK_ACTION(daNpc_Hoz_c), FALSE, mpHIO->m.common.real_shadow_size, NULL, 100.0f, FALSE, FALSE, FALSE ); } diff --git a/src/d/actor/d_a_npc_kn.cpp b/src/d/actor/d_a_npc_kn.cpp index f29e6b64fc..88c8f6f1b4 100644 --- a/src/d/actor/d_a_npc_kn.cpp +++ b/src/d/actor/d_a_npc_kn.cpp @@ -724,13 +724,7 @@ int daNpc_Kn_c::Draw() { tevcolor.g = 0; tevcolor.b = 0; tevcolor.a = s16(mpHIO->m.alpha); - return draw( -#if DEBUG - chkAction(&daNpc_Kn_c::test), -#else - FALSE, -#endif - FALSE, mpHIO->m.common.real_shadow_size, &tevcolor, 0.0f, TRUE, FALSE, FALSE); + return draw(NpcT_CHK_ACTION(daNpc_Kn_c), FALSE, mpHIO->m.common.real_shadow_size, &tevcolor, 0.0f, TRUE, FALSE, FALSE); } int daNpc_Kn_c::createHeapCallBack(fopAc_ac_c* i_this) { @@ -1362,12 +1356,8 @@ void daNpc_Kn_c::drawOtherMdl() { if (cM3d_IsZero(col_strength) == false) { mTevStr.TevColor.r = col_strength * 20.0f; } - } else { -#if DEBUG - if (chkAction(&daNpc_Kn_c::test)) { - mTevStr.TevColor.g = 20; - } -#endif + } else if (NpcT_CHK_ACTION(daNpc_Kn_c)) { + mTevStr.TevColor.g = 20; } g_env_light.settingTevStruct(0, ¤t.pos, &mTevStr); diff --git a/src/d/actor/d_a_npc_pachi_besu.cpp b/src/d/actor/d_a_npc_pachi_besu.cpp index 352e0cc3f7..85b5295b83 100644 --- a/src/d/actor/d_a_npc_pachi_besu.cpp +++ b/src/d/actor/d_a_npc_pachi_besu.cpp @@ -655,15 +655,7 @@ int daNpc_Pachi_Besu_c::Draw() { modelData->getMaterialNodePointer(getEyeballMaterialNo())->setMaterialAnm(mpMatAnm[0]); } - return draw( -#if DEBUG - chkAction(&daNpc_Pachi_Besu_c::test), -#else - FALSE, -#endif - FALSE, - mRealShadowSize, NULL, 100.0f, FALSE, FALSE, FALSE - ); + return draw(NpcT_CHK_ACTION(daNpc_Pachi_Besu_c), FALSE, mRealShadowSize, NULL, 100.0f, FALSE, FALSE, FALSE); } int daNpc_Pachi_Besu_c::createHeapCallBack(fopAc_ac_c* a_this) { diff --git a/src/d/actor/d_a_npc_pachi_maro.cpp b/src/d/actor/d_a_npc_pachi_maro.cpp index 5aa501fd1b..acf5c9be53 100644 --- a/src/d/actor/d_a_npc_pachi_maro.cpp +++ b/src/d/actor/d_a_npc_pachi_maro.cpp @@ -666,15 +666,7 @@ int daNpc_Pachi_Maro_c::Draw() { modelData->getMaterialNodePointer(getEyeballMaterialNo())->setMaterialAnm(mpMatAnm[0]); } - return draw( -#if DEBUG - chkAction(&daNpc_Pachi_Maro_c::test), -#else - FALSE, -#endif - FALSE, - mRealShadowSize, NULL, 100.0f, FALSE, FALSE, FALSE - ); + return draw(NpcT_CHK_ACTION(daNpc_Pachi_Maro_c), FALSE, mRealShadowSize, NULL, 100.0f, FALSE, FALSE, FALSE); } int daNpc_Pachi_Maro_c::createHeapCallBack(fopAc_ac_c* i_this) { diff --git a/src/d/actor/d_a_npc_pachi_taro.cpp b/src/d/actor/d_a_npc_pachi_taro.cpp index 1bfcdc3c15..8b2e7eab78 100644 --- a/src/d/actor/d_a_npc_pachi_taro.cpp +++ b/src/d/actor/d_a_npc_pachi_taro.cpp @@ -916,15 +916,7 @@ int daNpc_Pachi_Taro_c::Draw() { modelData->getMaterialNodePointer(getEyeballMaterialNo())->setMaterialAnm(mpMatAnm[0]); } - return draw( -#if DEBUG - chkAction(&daNpc_Pachi_Taro_c::test), -#else - FALSE, -#endif - FALSE, - mRealShadowSize, NULL, 100.0f, FALSE, FALSE, FALSE - ); + return draw(NpcT_CHK_ACTION(daNpc_Pachi_Taro_c), FALSE, mRealShadowSize, NULL, 100.0f, FALSE, FALSE, FALSE); } int daNpc_Pachi_Taro_c::createHeapCallBack(fopAc_ac_c* i_this) { diff --git a/src/d/actor/d_a_npc_post.cpp b/src/d/actor/d_a_npc_post.cpp index d0aea1a003..15832646c6 100644 --- a/src/d/actor/d_a_npc_post.cpp +++ b/src/d/actor/d_a_npc_post.cpp @@ -536,13 +536,7 @@ int daNpc_Post_c::Draw() { modelData->getMaterialNodePointer(getEyeballMaterialNo())->setMaterialAnm(mpMatAnm[0]); } - return draw( -#if DEBUG - chkAction(&daNpc_Post_c::test), -#else - 0, -#endif - 0, mRealShadowSize, NULL, 100.0f, 0, 0, 0); + return draw(NpcT_CHK_ACTION(daNpc_Post_c), FALSE, mRealShadowSize, NULL, 100.0f, 0, 0, 0); } int daNpc_Post_c::createHeapCallBack(fopAc_ac_c* i_this) { diff --git a/src/d/actor/d_a_npc_shaman.cpp b/src/d/actor/d_a_npc_shaman.cpp index 2ecf943314..6461f5c889 100644 --- a/src/d/actor/d_a_npc_shaman.cpp +++ b/src/d/actor/d_a_npc_shaman.cpp @@ -343,11 +343,7 @@ int daNpc_Sha_c::Draw() { mdlData_p->getMaterialNodePointer(getEyeballMaterialNo())->setMaterialAnm(mpMatAnm[0]); } - #if DEBUG - return draw(chkAction(&daNpc_Sha_c::test), FALSE, mRealShadowSize, NULL, 100.0f, FALSE, FALSE, FALSE); - #else - return draw(FALSE, FALSE, mRealShadowSize, NULL, 100.0f, FALSE, FALSE, FALSE); - #endif + return draw(NpcT_CHK_ACTION(daNpc_Sha_c), FALSE, mRealShadowSize, NULL, 100.0f, FALSE, FALSE, FALSE); } int daNpc_Sha_c::createHeapCallBack(fopAc_ac_c* i_this) { diff --git a/src/d/actor/d_a_npc_toby.cpp b/src/d/actor/d_a_npc_toby.cpp index 11b0bd5989..4e8af5bfa4 100644 --- a/src/d/actor/d_a_npc_toby.cpp +++ b/src/d/actor/d_a_npc_toby.cpp @@ -9,6 +9,7 @@ #include "Z2AudioLib/Z2Instances.h" #if DEBUG #include "JSystem/JHostIO/JORFile.h" +#include "d/d_debug_viewer.h" #endif #include "d/actor/d_a_obj_automata.h" #include "d/d_msg_object.h" @@ -414,14 +415,7 @@ int daNpc_Toby_c::Draw() { modelData->getMaterialNodePointer(getEyeballMaterialNo())->setMaterialAnm(mpMatAnm[0]); } - return daNpcT_c::draw( -#if DEBUG - chkAction(&daNpc_Toby_c::test), -#else - FALSE, -#endif - FALSE, mRealShadowSize, NULL, 100.0f, 0, 0, 0 - ); + return daNpcT_c::draw(NpcT_CHK_ACTION(daNpc_Toby_c), FALSE, mRealShadowSize, NULL, 100.0f, 0, 0, 0); } int daNpc_Toby_c::createHeapCallBack(fopAc_ac_c* i_this) { @@ -442,9 +436,10 @@ int daNpc_Toby_c::ctrlJointCallBack(J3DJoint* i_joint, int i_int) { } void* daNpc_Toby_c::srchToby(void* i_actor, void* i_data) { + fopAc_ac_c* o_actor = (fopAc_ac_c*) i_data; if (mFindCount < 50) { fopAc_ac_c* actor_p = (fopAc_ac_c*)i_actor; - if (actor_p != NULL && actor_p != i_data) { + if (actor_p != NULL && actor_p != o_actor) { if (fopAcM_IsExecuting(fopAcM_GetID(actor_p)) && fopAcM_GetName(actor_p) == PROC_NPC_TOBY) { mFindActorPtrs[mFindCount] = actor_p; mFindCount++; @@ -888,42 +883,20 @@ void daNpc_Toby_c::setCollision() { } int daNpc_Toby_c::drawDbgInfo() { +#if DEBUG + if (mpHIO->m.common.debug_info_ON) { + f32 dist_max_speak = dComIfGp_getAttention()->getDistTable(attention_info.distances[fopAc_attn_SPEAK_e]).mDistMax; + f32 dist_max_talk = dComIfGp_getAttention()->getDistTable(attention_info.distances[fopAc_attn_TALK_e]).mDistMax; + dDbVw_drawCircleOpa(attention_info.position, dist_max_speak, (GXColor){0x00, 0xC8, 0x00, 0xFF}, 1, 12); + dDbVw_drawCircleOpa(attention_info.position, dist_max_talk, (GXColor){0xC8, 0x00, 0x00, 0xFF}, 1, 12); + dDbVw_drawSphereXlu(eyePos, 18.0f, (GXColor){0x80, 0x80, 0x80, 0xA0}, 1); + dDbVw_drawSphereXlu(attention_info.position, 9.0f, (GXColor){0x80, 0x80, 0x80, 0xA0}, 1); + } +#endif + return FALSE; } -#if DEBUG -// I have 0 clue what these are about, but I saw them in npc_moir as well. -static s16 dummy_lit_122993(int sel) { - const s16 arr[2] = {0x00C8, 0x00FF}; - return arr[sel]; -} - -static s16 dummy_lit_122996(int sel) { - const s16 arr[2] = {0xC800, 0x00FF}; - return arr[sel]; -} - -static s16 dummy_lit_122999(int sel) { - const s16 arr[2] = {0x8080, 0x80A0}; - return arr[sel]; -} - -static s16 dummy_lit_123002(int sel) { - const s16 arr[2] = {0x8080, 0x80A0}; - return arr[sel]; -} - -static s16 dummy_lit_123016(int sel) { - const s16 arr[2] = {0x4190, 0x0000}; - return arr[sel]; -} - -static s16 dummy_lit_123017(int sel) { - const s16 arr[2] = {0x4110, 0x0000}; - return arr[sel]; -} -#endif - void daNpc_Toby_c::drawOtherMdl() { J3DModel* model = mpMorf[0]->getModel(); for (int i = 0; i < 1; i++) { @@ -2183,7 +2156,7 @@ int daNpc_Toby_c::talk(void*) { return 0; } -int daNpc_Toby_c::test(void* param_0) { +BOOL daNpc_Toby_c::test(void*) { switch(mMode) { case 0: case 1: diff --git a/src/d/actor/d_a_npc_ykm.cpp b/src/d/actor/d_a_npc_ykm.cpp index 87f497110e..bf789e9a52 100644 --- a/src/d/actor/d_a_npc_ykm.cpp +++ b/src/d/actor/d_a_npc_ykm.cpp @@ -771,14 +771,7 @@ int daNpc_ykM_c::Draw() { mdlData_p->getMaterialNodePointer(3)->getShape()->hide(); } - rv = draw( - #if DEBUG - chkAction(&daNpc_ykM_c::test), - #else - FALSE, - #endif - FALSE, mRealShadowSize, NULL, 0.0f, FALSE, field_0x1581 == 1, FALSE - ); + rv = draw(NpcT_CHK_ACTION(daNpc_ykM_c), FALSE, mRealShadowSize, NULL, 0.0f, FALSE, field_0x1581 == 1, FALSE); if (field_0x157a != 0) { mdlData_p->getMaterialNodePointer(3)->getShape()->show(); diff --git a/src/d/actor/d_a_npc_zanb.cpp b/src/d/actor/d_a_npc_zanb.cpp index a3aee281b0..81309f74cb 100644 --- a/src/d/actor/d_a_npc_zanb.cpp +++ b/src/d/actor/d_a_npc_zanb.cpp @@ -254,14 +254,7 @@ int daNpc_zanB_c::Draw() { mdlData_p->getMaterialNodePointer(getEyeballMaterialNo())->setMaterialAnm(mpMatAnm[0]); } - return draw( -#if DEBUG - chkAction(&daNpc_zanB_c::test), -#else - FALSE, -#endif - FALSE, mRealShadowSize, NULL, 0.0f, TRUE, FALSE, FALSE - ); + return draw(NpcT_CHK_ACTION(daNpc_zanB_c), FALSE, mRealShadowSize, NULL, 0.0f, TRUE, FALSE, FALSE); } int daNpc_zanB_c::createHeapCallBack(fopAc_ac_c* i_this) { diff --git a/src/d/actor/d_a_npc_zelRo.cpp b/src/d/actor/d_a_npc_zelRo.cpp index afc1a2faf1..7e730f09d4 100644 --- a/src/d/actor/d_a_npc_zelRo.cpp +++ b/src/d/actor/d_a_npc_zelRo.cpp @@ -277,13 +277,7 @@ int daNpc_ZelRo_c::Draw() { mdlData_p->getMaterialNodePointer(getEyeballRMaterialNo())->setMaterialAnm(mpMatAnm[1]); } - return draw( -#if DEBUG - chkAction(&daNpc_ZelRo_c::test), -#else - FALSE, -#endif - TRUE, mRealShadowSize, NULL, 100.0f, FALSE, FALSE, FALSE + return draw(NpcT_CHK_ACTION(daNpc_ZelRo_c), TRUE, mRealShadowSize, NULL, 100.0f, FALSE, FALSE, FALSE ); } diff --git a/src/d/d_com_static.cpp b/src/d/d_com_static.cpp index 05ec34453c..d90414e976 100644 --- a/src/d/d_com_static.cpp +++ b/src/d/d_com_static.cpp @@ -204,8 +204,8 @@ int daNpcMsg_setEvtNum(u8 iEvtNum) { return 1; } -u8 daNpcKakashi_chkSwdTutorialStage() { - return strcmp(dComIfGp_getStartStageName(), "F_SP103") == 0 && dComIfG_play_c::getLayerNo(0) == 8; +bool daNpcKakashi_chkSwdTutorialStage() { + return bool(strcmp(dComIfGp_getStartStageName(), "F_SP103") == 0 && dComIfG_play_c::getLayerNo(0) == 8); } void daNpcKakashi_setSwdTutorialStep(u8 iEvtNum) {