From 3ccb9e43be9532fd891d604d519244083905eee3 Mon Sep 17 00:00:00 2001 From: Crain-32 <25422785+Crain-32@users.noreply.github.com> Date: Sun, 24 Dec 2023 09:26:52 -0700 Subject: [PATCH] d_a_tag_etc PR Feedback --- include/d/actor/d_a_tag_etc.h | 2 +- src/d/actor/d_a_tag_etc.cpp | 102 ++++++++++++---------------------- 2 files changed, 37 insertions(+), 67 deletions(-) diff --git a/include/d/actor/d_a_tag_etc.h b/include/d/actor/d_a_tag_etc.h index 75617f096..a3c29bd3f 100644 --- a/include/d/actor/d_a_tag_etc.h +++ b/include/d/actor/d_a_tag_etc.h @@ -22,7 +22,7 @@ public: /* 0x291*/ u8 field_0x291; /* 0x292*/ u8 field_0x292; /* 0x293*/ u8 field_0x293; - /* 0x294 */ void* field_0x294; + /* 0x294 */ s32 processId; /* 0x298 */ s16 eventIndex; /* 0x29A */ short field_0x29A; }; diff --git a/src/d/actor/d_a_tag_etc.cpp b/src/d/actor/d_a_tag_etc.cpp index 0fc36a944..d3ab7ecd3 100644 --- a/src/d/actor/d_a_tag_etc.cpp +++ b/src/d/actor/d_a_tag_etc.cpp @@ -4,45 +4,31 @@ // #include "d/actor/d_a_tag_etc.h" +#include "d/actor/d_a_npc_md.h" #include "d/d_com_inf_game.h" -#include "d/d_event.h" -#include "d/d_event_manager.h" #include "dolphin/types.h" -#include "f_op/f_op_actor_iter.h" -#include "f_pc/f_pc_searcher.h" -#include "global.h" + /* 00000078-00000084 .text getEventNo__11daTag_Etc_cFv */ u8 daTag_Etc_c::getEventNo() { - return this->mBase.mParameters >> 0x18; + return fopAcM_GetParam(this) >> 0x18; } /* 00000084-00000090 .text getType2__11daTag_Etc_cFv */ u32 daTag_Etc_c::getType2() { - return this->mBase.mParameters >> 8 & 0xF; + return fopAcM_GetParam(this) >> 8 & 0xF; } /* Not Matching */ /* 00000090-000001B4 .text rangeCheck__11daTag_Etc_cFP10fopAc_ac_c */ BOOL daTag_Etc_c::rangeCheck(fopAc_ac_c* pActor) { BOOL result; - float fVar4; float distanceMagnitude; - cXyz cxYz_planar_distance; - cXyz cXyz_distance; + cXyz delta; - cXyz_distance = ((pActor->current).pos - (this->current).pos); - if (0.0 <= cXyz_distance.x) { - cxYz_planar_distance.x = cXyz_distance.x; - cxYz_planar_distance.y = 0.0; - cxYz_planar_distance.z = cXyz_distance.z; - distanceMagnitude = PSVECSquareMag(&cxYz_planar_distance); - if (0.0 < distanceMagnitude) { - fVar4 = sqrtf(distanceMagnitude); - } - distanceMagnitude = this->mScale.x; - distanceMagnitude *= 100; - if ((distanceMagnitude <= fVar4) || ((this->mScale.x) * 100 < cXyz_distance.y)) { + delta = pActor->current.pos - current.pos; + if (delta.y >= 0.0f) { + if ((mScale.x * 100) <= delta.absXZ() || (mScale.x * 100) < delta.y) { result = FALSE; } else { result = TRUE; @@ -61,9 +47,7 @@ BOOL daTag_Etc_c::otherCheck(fopAc_ac_c* pActor) { switch (cVar2) { case 0: - if (pActor != (fopAc_ac_c*)0x0 && - ((u32)pActor[0x13].mBase.mLnTg.mBase.mpTagData & 0x10) != 0) - { + if (pActor != (daNpc_Md_c*)0x0 && (((daNpc_Md_c*)pActor)->m30F0 & 0x10) != 0) { result = TRUE; } else { result = FALSE; @@ -76,36 +60,28 @@ BOOL daTag_Etc_c::otherCheck(fopAc_ac_c* pActor) { return result; } -/* Not matching, registers seem off */ /* 00000214-000002EC .text demoProc__11daTag_Etc_cFv */ void daTag_Etc_c::demoProc() { - s16 sVar1; - fopAc_ac_c* pfVar2; + daNpc_Md_c* pMedli; int staffIdx; u8 cVar3; - void* local_18[2]; - - local_18[0] = this->field_0x294; - pfVar2 = (fopAc_ac_c*)fopAcIt_Judge(fpcSch_JudgeByID, local_18); - staffIdx = g_dComIfG_gameInfo.play.mEvtManager.getMyStaffId("TAG_ETC_D", (fopAc_ac_c*)0x0, 0); + pMedli = (daNpc_Md_c*)fopAcM_SearchByID(processId); + staffIdx = dComIfGp_evmng_getMyStaffId("TAG_ETC_D", (daNpc_Md_c*)0x0, 0); if (staffIdx != -1) { cVar3 = getType2(); switch (cVar3) { case 0: - if ((pfVar2 == (fopAc_ac_c*)0x0) || - ((u32)pfVar2[0x13].mBase.mLnTg.mBase.mpTagData & 0x10) == 0) - { - sVar1 = this->field_0x29A; - if (sVar1 >= 1) { - this->field_0x29A = sVar1 + -1; + if ((pMedli == (daNpc_Md_c*)0x0) || (pMedli->m30F0 & 0x10) == 0) { + if (field_0x29A > 0) { + field_0x29A--; } else { - g_dComIfG_gameInfo.play.mEvtManager.cutEnd(staffIdx); + dComIfGp_evmng_cutEnd(staffIdx); } } break; default: - g_dComIfG_gameInfo.play.mEvtManager.cutEnd(staffIdx); + dComIfGp_evmng_cutEnd(staffIdx); } } } @@ -114,23 +90,19 @@ void daTag_Etc_c::demoProc() { void daTag_Etc_c::demoInitProc() { u8 cVar1; fopAc_ac_c* pActor; - void* local_18[4]; - dEvt_control_c* control; cVar1 = getType2(); - switch (cVar1) - case 0: { - local_18[0] = this->field_0x294; - pActor = (fopAc_ac_c*)fopAcIt_Judge(fpcSch_JudgeByID, local_18); - control = &g_dComIfG_gameInfo.play.mEvtCtrl; - control->mPtItem = control->getPId(pActor); - this->field_0x29A = 0xf; + switch (cVar1) { + case 0: + pActor = fopAcM_SearchByID(processId); + dComIfGp_event_setItemPartner(pActor); + field_0x29A = 0xf; + break; default:; } - return; + return; } -// Not matching /* 00000368-00000458 .text create__11daTag_Etc_cFv */ s32 daTag_Etc_c::create() { float fVar1; @@ -141,28 +113,26 @@ s32 daTag_Etc_c::create() { fopAcM_SetupActor(this, daTag_Etc_c); stageEVNTListIndex = getEventNo(); - this->eventIndex = - g_dComIfG_gameInfo.play.mEvtManager.getEventIdx((char*)0x0, stageEVNTListIndex); - if (this->eventIndex == -1) { - this->field_0x290 = 0; + eventIndex = dComIfGp_evmng_getEventIdx((char*)0x0, stageEVNTListIndex); + if (eventIndex == -1) { + field_0x290 = 0; } else { cVar3 = getType2(); switch (cVar3) { case 0: - this->field_0x290 = 1; + field_0x290 = 1; break; default: - this->field_0x290 = 0; + field_0x290 = 0; } } - this->shape_angle.z = 0; - this->shape_angle.x = 0; - this->current.angle.z = 0; - this->current.angle.x = 0; - this->mAttentionInfo.mFlags = fopAc_Attn_ACTION_TALK_e; - // MNot matching part, seems to be a constant value? - this->mAttentionInfo.mPosition.y += 150.0; - this->mEyePos.y += 150.0; + shape_angle.z = 0; + shape_angle.x = 0; + current.angle.z = 0; + current.angle.x = 0; + mAttentionInfo.mFlags = fopAc_Attn_ACTION_TALK_e; + mAttentionInfo.mPosition.y += 150.0f; + mEyePos.y += 150.0f; return 4; }