several matches for d_a_npc_nz

This commit is contained in:
LagoLunatic
2024-04-14 12:52:34 -04:00
parent d8a0182f72
commit d3985aa24d
5 changed files with 103 additions and 114 deletions
+1 -1
View File
@@ -27,7 +27,7 @@ public:
BOOL NodeCallBack(J3DNode*, int);
BOOL TailNodeCallBack(J3DNode*, int);
void TailControl();
bool _createHeap();
BOOL _createHeap();
s16 XyEventCB(int);
void eventOrder();
void checkOrder();
+12 -5
View File
@@ -8,13 +8,18 @@ namespace daObjBarrel {
public:
void attr() const {}
void get_slant_angle() {}
void pos_init() {
current.pos = home.pos;
current.angle = home.angle;
shape_angle = home.angle;
bool pos_init() {
if (m60C == 0) {
current.pos = home.pos;
current.angle = home.angle;
shape_angle = home.angle;
return true;
} else {
return false;
}
}
void prm_get_cull() const {}
void set_slant_angle(short) {}
void set_slant_angle(s16) {}
void solidHeapCB(fopAc_ac_c*);
void create_heap();
@@ -58,6 +63,8 @@ namespace daObjBarrel {
public:
/* Place member variables here */
/* 0x290 */ u8 m290[0x60C - 0x290];
/* 0x60C */ int m60C;
};
namespace Method {
+17 -16
View File
@@ -32,23 +32,24 @@ namespace daTsubo {
void data() const {}
void data_spec_boko(int) {}
void is_switch() const {}
void pos_init() {
if (m678 != 2) {
return;
bool pos_init() {
if (m678 == 2) {
current.pos = home.pos;
current.angle = home.angle;
shape_angle = home.angle;
m688.Val(cSAngle::_0);
m68A.Val(cSAngle::_0);
m68C.Val(cSAngle::_0);
m68E.Val(cSAngle::_0);
m690.Val(cSAngle::_0);
m692.Val(current.angle.y);
mDoMtx_identity(mPoseMtx);
return true;
} else {
return false;
}
current.pos = home.pos;
current.angle = home.angle;
shape_angle = home.angle;
m688.Val(cSAngle::_0);
m68A.Val(cSAngle::_0);
m68C.Val(cSAngle::_0);
m68E.Val(cSAngle::_0);
m690.Val(cSAngle::_0);
m692.Val(current.angle.y);
mDoMtx_identity(mPoseMtx);
}
void prmZ_get_swSave() const {}
void prm_get_cull() const {}
+58 -62
View File
@@ -10,7 +10,7 @@
#include "d/d_item.h"
#include "d/d_procname.h"
static u8 dummy_bss[0x58];
static u8 dummy_bss[0x4C];
// need to figure out what's putting this data in front of a bunch of rels
static f32 dummy[3] = {1.0f, 1.0f, 1.0f};
@@ -59,8 +59,6 @@ static BOOL daNpcNz_TailNodeCallBack(J3DNode* node, int param_1) {
/* 000002C4-000003A4 .text TailNodeCallBack__10daNpc_Nz_cFP7J3DNodei */
BOOL daNpc_Nz_c::TailNodeCallBack(J3DNode* node, int param_1) {
/* Nonmatching */
if (!param_1) {
J3DJoint* joint = (J3DJoint*)node;
s32 jntNo = joint->getJntNo();
@@ -84,63 +82,68 @@ BOOL daNpc_Nz_c::TailNodeCallBack(J3DNode* node, int param_1) {
void daNpc_Nz_c::TailControl() {
/* Nonmatching */
cXyz temp(0.0f, 0.0f, 5.0f);
cXyz sp64;
cXyz sp58;
cXyz sp4C;
cXyz sp40;
sp58.set(0.0f, 0.0f, 5.0f);
field_0x974[0] = field_0xA64[0];
cXyz temp2 = field_0xA64[1] - field_0xA64[0];
s32 angle = cM_atan2s(temp2.x, temp2.z);
f32 dist = temp2.absXZ();
s32 angle2 = cM_atan2s(temp2.x, dist);
sp64 = field_0xA64[1] - field_0xA64[0];
s32 angle = cM_atan2s(sp64.x, sp64.z);
f32 dist = sp64.absXZ();
s16 angle2 = -cM_atan2s(sp64.y, dist);
mDoMtx_stack_c::YrotS(angle);
mDoMtx_stack_c::XrotM(angle2);
mDoMtx_stack_c::multVec(&temp, &temp2);
mDoMtx_stack_c::multVec(&sp58, &sp40);
cXyz* r19 = &field_0x974[1];
cXyz* r18 = &field_0x9EC[1];
cXyz* r17 = &field_0x934.mpLines->mpSegments[0];
dBgS_GndChk gndChk;
for(int i = 1; i < 10; i++) {
f32 temp3 = 1.0f - i * 0.1f;
cXyz temp4;
temp4.x = field_0x9EC[i].x + temp2.x * temp3;
temp4.y = field_0x9EC[i].y + temp2.y * temp3;
temp4.z = field_0x9EC[i].z + temp2.z * temp3;
f32 temp5 = field_0x974[i].y + temp4.y - 2.0f;
for(int i = 1; i < 10; i++, r19++, r18++) {
f32 temp3 = 1.0f - (i-1) * 0.1f;
cXyz sp34;
sp34.x = r18[0].x + sp40.x * temp3;
sp34.y = r18[0].y + sp40.y * temp3;
sp34.z = r18[0].z + sp40.z * temp3;
f32 temp5 = r19[0].y + sp34.y - 2.0f;
if(temp5 < home.pos.y + 5.0f) {
temp5 = home.pos.y + 5.0f;
}
cXyz temp6;
temp6.y = temp5 - field_0x974[i].y;
temp6.x = temp4.x + (field_0x974[i].x - field_0x974[i - 1].x);
temp6.z = temp4.z + (field_0x974[i].z - field_0x974[i - 1].z);
s16 temp7 = cM_atan2s(temp6.x, temp6.z);
f32 temp8 = temp6.absXZ();
s16 temp9 = -cM_atan2s(temp6.x, dist);
cXyz temp10(0.0f, 0.0f, 20.0f);
sp64.y = temp5 - r19[-1].y;
sp64.x = sp34.x + (r19[0].x - r19[-1].x);
sp64.z = sp34.z + (r19[0].z - r19[-1].z);
int temp7 = cM_atan2s(sp64.x, sp64.z);
dist = sp64.absXZ();
s16 temp9 = -cM_atan2s(sp64.y, dist);
sp58.set(0.0f, 0.0f, 20.0f);
mDoMtx_stack_c::YrotS(temp7);
mDoMtx_stack_c::XrotM(temp9);
mDoMtx_stack_c::multVec(&temp10, &temp6);
field_0x9EC[i] = field_0x974[i];
field_0x974[i].x = field_0x974[i - 1].x + temp6.x;
field_0x974[i].y = field_0x974[i - 1].y + temp6.y;
field_0x974[i].z = field_0x974[i - 1].z + temp6.z;
field_0x9EC[i].x = (field_0x974[i].x - field_0x9EC[i].x) * 0.8f;
field_0x9EC[i].y = (field_0x974[i].y - field_0x9EC[i].y) * 0.8f;
field_0x9EC[i].z = (field_0x974[i].z - field_0x9EC[i].z) * 0.8f;
mDoMtx_stack_c::multVec(&sp58, &sp4C);
r18[0] = r19[0];
r19[0].x = r19[-1].x + sp4C.x;
r19[0].y = r19[-1].y + sp4C.y;
r19[0].z = r19[-1].z + sp4C.z;
r18[0].x = (r19[0].x - r18[0].x) * 0.8f;
r18[0].y = (r19[0].y - r18[0].y) * 0.8f;
r18[0].z = (r19[0].z - r18[0].z) * 0.8f;
}
for(int i = 0; i < 10; i++) {
field_0x934.mpLines->mpSegments[i] = field_0x974[i];
cXyz* r3 = field_0x974;
for(int i = 0; i < 10; i++, r3++, r17++) {
*r17 = r3[0];
}
}
static daNpc_Nz_HIO_c l_HIO;
/* 00000CF8-00000D18 .text createHeap_CB__FP10fopAc_ac_c */
static int createHeap_CB(fopAc_ac_c* i_this) {
/* Nonmatching */
static BOOL createHeap_CB(fopAc_ac_c* i_this) {
return static_cast<daNpc_Nz_c*>(i_this)->_createHeap();
}
/* 00000D18-00000F98 .text _createHeap__10daNpc_Nz_cFv */
bool daNpc_Nz_c::_createHeap() {
BOOL daNpc_Nz_c::_createHeap() {
J3DModelData* modelData = static_cast<J3DModelData*>(dComIfG_getObjectRes(m_bdl_arc_name, 3));
JUT_ASSERT(0xD0, modelData != 0);
@@ -175,7 +178,11 @@ bool daNpc_Nz_c::_createHeap() {
}
}
return field_0x934.init(1, 10, static_cast<ResTIMG*>(dComIfG_getObjectRes(m_arc_name, 0x2E)), 0) != FALSE;
if (field_0x934.init(1, 10, static_cast<ResTIMG*>(dComIfG_getObjectRes(m_arc_name, 0x2E)), 0)) {
return TRUE;
} else {
return FALSE;
}
}
/* 00000F98-00001010 .text __ct__14daNpc_Nz_HIO_cFv */
@@ -225,9 +232,6 @@ static s16 daNpc_Nz_XyEventCB(void* i_this, int param_1) {
/* 000011C0-00001210 .text XyEventCB__10daNpc_Nz_cFi */
s16 daNpc_Nz_c::XyEventCB(int) {
static char* a_demo_name_tbl[] = {
"DEFAULT_NPC_NZ_ESA",
};
field_0x8FA = dComIfGp_evmng_getEventIdx("DEFAULT_NPC_NZ_ESA", -1);
return field_0x8FA;
}
@@ -264,11 +268,10 @@ void daNpc_Nz_c::setAttention() {
/* 000012F4-000013E8 .text LookBack__10daNpc_Nz_cFv */
void daNpc_Nz_c::LookBack() {
/* Nonmatching */
cXyz* dstTemp;
s16 targetY = current.angle.y;
cXyz dstPos = dNpc_playerEyePos(0.0f);
cXyz* dstTemp = &dstPos;
dstTemp = &dstPos;
s16 maxFollowRotVel;
if (m_jnt.trnChk()) {
@@ -284,8 +287,6 @@ void daNpc_Nz_c::LookBack() {
/* 000013E8-0000146C .text setAnm__10daNpc_Nz_cFScb */
void daNpc_Nz_c::setAnm(s8 param_1, bool param_2) {
/* Nonmatching */
static const dLib_anm_idx_c a_anm_idx_tbl[] = {
{0x23, 0x12},
{0x15, 0x07},
@@ -395,22 +396,22 @@ void daNpc_Nz_c::setMtx() {
cXyz temp3 = temp + temp2;
switch(field_0x908) {
case 0x82:
case BIRD_ESA_5:
temp4 = -15.0f;
break;
case 0x83:
case dItem_HYOI_PEAR_e:
temp4 = -5.0f;
break;
case 0x51:
case 0x53:
case RED_BOTTLE:
case BLUE_BOTTLE:
temp4 = -5.0f;
break;
case 0xC:
case 0xE:
case BOMB_10:
case BOMB_30:
temp4 = -15.0f;
break;
case 0x10:
case 0x12:
case ARROW_10:
case ARROW_30:
temp4 = -10.0f;
break;
}
@@ -461,8 +462,6 @@ void daNpc_Nz_c::modeEventEsa() {
/* 000018EC-000019DC .text modeProc__10daNpc_Nz_cFQ210daNpc_Nz_c6Proc_ei */
void daNpc_Nz_c::modeProc(daNpc_Nz_c::Proc_e proc, int newMode) {
/* Nonmatching */
typedef void(daNpc_Nz_c::*mode_func_t)(void);
struct mode_entry_t {
mode_func_t init;
@@ -574,7 +573,6 @@ void daNpc_Nz_c::deleteShopItem() {
/* 00001CF0-00002038 .text next_msgStatus__10daNpc_Nz_cFPUl */
u16 daNpc_Nz_c::next_msgStatus(u32* pMsgNo) {
/* Nonmatching */
u16 msgStatus = fopMsgStts_MSG_CONTINUES_e;
static const u32 shop_next_msg_tbl[4][2] = {
@@ -781,8 +779,6 @@ void daNpc_Nz_c::anmAtr(u16) {
/* 000022C0-00002390 .text _execute__10daNpc_Nz_cFv */
bool daNpc_Nz_c::_execute() {
/* Nonmatching */
cLib_addCalc2(&speedF, field_0x6EC, 0.3f, 4.0f);
checkOrder();
modeProc(PROC_EXEC, 2);
@@ -802,8 +798,6 @@ bool daNpc_Nz_c::_execute() {
/* 00002390-0000254C .text _draw__10daNpc_Nz_cFv */
bool daNpc_Nz_c::_draw() {
/* Nonmatching */
if(!field_0x8FC) {
return true;
}
@@ -834,6 +828,8 @@ bool daNpc_Nz_c::_draw() {
dComIfGd_setList();
GXColor unusedColor_5609 = {255, 255, 0, 128};
GXColor unusedColor_5611 = {255, 0, 0, 128};
GXColor color = {200, 200, 200, 255};
field_0x934.update(10, scale.x * 5.0f, color, 6, &tevStr);
dComIfGd_set3DlineMat(&field_0x934);
+15 -30
View File
@@ -16,8 +16,6 @@ static BOOL searchEsa_CB(void* param_1, void* i_this) {
/* 000032E8-000034F0 .text _searchEsa__10daNpc_Nz_cFP10fopAc_ac_c */
BOOL daNpc_Nz_c::_searchEsa(fopAc_ac_c* pActor) {
/* Nonmatching */
if(fopAcM_GetName(pActor) == PROC_ESA) {
esa_class* pBait = static_cast<esa_class*>(pActor);
if(pBait->field_0x298 == 0) {
@@ -25,7 +23,7 @@ BOOL daNpc_Nz_c::_searchEsa(fopAc_ac_c* pActor) {
if(mpMorf->getFrame() < 6.0f) {
cLib_addCalcPos2(&pBait->current.pos, current.pos, 0.1f, 2.5f);
mDoMtx_stack_c::transS(pBait->current.pos);
mDoMtx_stack_c::ZXYrotM(current.angle);
mDoMtx_stack_c::ZXYrotM(pBait->current.angle);
pBait->mpModel->setBaseTRMtx(mDoMtx_stack_c::get());
}
@@ -52,27 +50,22 @@ static BOOL searchNzAndBomb_CB(void* param_1, void*) {
/* 00003528-0000377C .text searchTsuboAndBarrel_CB__FPvPv */
static BOOL searchTsuboAndBarrel_CB(void* param_1, void* param_2) {
/* Nonmatching */
fopAc_ac_c* pActor1 = static_cast<fopAc_ac_c*>(param_1);
fopAc_ac_c* pActor2 = static_cast<fopAc_ac_c*>(param_2);
daNpc_Nz_c* i_this = static_cast<daNpc_Nz_c*>(param_2);
if(fopAcM_GetName(pActor1) == PROC_TSUBO || fopAcM_GetName(pActor1) == PROC_Obj_Barrel) {
cXyz delta = pActor1->current.pos - pActor2->current.pos;
if(fopAcM_GetName(param_1) == PROC_TSUBO || fopAcM_GetName(param_1) == PROC_Obj_Barrel) {
cXyz delta = i_this->field_0x6C4 - pActor1->current.pos;
if(delta.absXZ() < 300.0f) {
bool success = false;
if(fopAcM_GetName(pActor1) == PROC_TSUBO) {
static_cast<daTsubo::Act_c*>(pActor1)->pos_init();
return true;
success = static_cast<daTsubo::Act_c*>(pActor1)->pos_init();
}
else if(fopAcM_GetName(pActor1) == PROC_TSUBO) { // this condition seems weird, also has another part with barrel member variables
static_cast<daObjBarrel::Act_c*>(pActor1)->pos_init();
return true;
else if(fopAcM_GetName(pActor1) == PROC_TSUBO) {
success = static_cast<daObjBarrel::Act_c*>(pActor1)->pos_init();
}
if(fopAcM_GetName(pActor1) == PROC_TSUBO) {
if(!success) {
fopAcM_delete(pActor1);
}
}
@@ -90,7 +83,7 @@ static BOOL searchEsaInit_CB(void* pActor1, void* pActor2) {
cXyz pos(pNz->field_0x6C4);
pos.x += cM_ssin(pNz->current.angle.y) * 150.0f;
pos.z += cM_scos(pNz->current.angle.y) * 150.0f;
s16 angle = cM_rndFX(358.0f) * 182.0444f;
s16 angle = cAngle::d2s(cM_rndFX(358.0f));
f32 mag = cM_rndF(30.0f);
pos.x += mag * cM_ssin(angle);
pos.z += mag * cM_scos(angle);
@@ -108,8 +101,6 @@ static BOOL searchEsaInit_CB(void* pActor1, void* pActor2) {
/* 00003908-00003B90 .text cutProc__10daNpc_Nz_cFv */
void daNpc_Nz_c::cutProc() {
/* Nonmatching */
typedef void(daNpc_Nz_c::*Func_t)(void);
struct mode_entry_t {
Func_t start;
@@ -167,6 +158,10 @@ void daNpc_Nz_c::cutProc() {
}
};
static char* a_demo_name_tbl[] = {
"DEFAULT_NPC_NZ_ESA",
};
int actIdx = dComIfGp_evmng_getMyActIdx(field_0x8F4, action_table, ARRAY_SIZE(action_table), 1, 0);
if(actIdx == -1) {
dComIfGp_evmng_cutEnd(field_0x8F4);
@@ -187,8 +182,6 @@ void daNpc_Nz_c::cutEatesaStart() {
/* 00003BB8-00003CEC .text cutEatesaProc__10daNpc_Nz_cFv */
void daNpc_Nz_c::cutEatesaProc() {
/* Nonmatching */
fopAcM_Search((fopAcIt_JudgeFunc)&searchEsa_CB, this);
fopAc_ac_c* pBait = mpBait;
@@ -199,7 +192,7 @@ void daNpc_Nz_c::cutEatesaProc() {
if(pBait) {
fopAcM_delete(pBait);
mpBait = 0;
field_0x910 = FLOAT_MIN;
field_0x910 = FLOAT_MAX;
}
else {
if(mpMorf->checkFrame(mpMorf->getEndFrame() - 1.0f)) {
@@ -218,8 +211,6 @@ void daNpc_Nz_c::cutEatesaFirstStart() {
/* 00003D40-00003F54 .text cutEatesaFirstProc__10daNpc_Nz_cFv */
void daNpc_Nz_c::cutEatesaFirstProc() {
/* Nonmatching */
cXyz target(field_0x6C4);
target.x += cM_ssin(home.angle.y) * 100.0f;
target.z += cM_scos(home.angle.y) * 100.0f;
@@ -294,8 +285,6 @@ void daNpc_Nz_c::cutHideProc() {
/* 00004100-00004204 .text cutSetAnmStart__10daNpc_Nz_cFv */
void daNpc_Nz_c::cutSetAnmStart() {
/* Nonmatching */
u32* pAnmNo = dComIfGp_evmng_getMyIntegerP(field_0x8F4, "anm_no");
s32 anmNo = 0;
u32* pLoopCount = dComIfGp_evmng_getMyIntegerP(field_0x8F4, "loop_count");
@@ -319,8 +308,6 @@ void daNpc_Nz_c::cutSetAnmStart() {
/* 00004204-000043C0 .text cutSetAnmProc__10daNpc_Nz_cFv */
void daNpc_Nz_c::cutSetAnmProc() {
/* Nonmatching */
if(mpMorf->checkFrame(mpMorf->getEndFrame() - 1.0f)) {
field_0x906--;
}
@@ -360,8 +347,6 @@ void daNpc_Nz_c::cutGoHomeStart() {
/* 000043C4-000044D4 .text cutGoHomeProc__10daNpc_Nz_cFv */
void daNpc_Nz_c::cutGoHomeProc() {
/* Nonmatching */
s16 target = cLib_targetAngleY(&current.pos, &home.pos);
cLib_addCalcAngleS2(&current.angle.y, target, 4, 0x1000);
shape_angle.y = current.angle.y;