Several more TUs matching (#2601)

This commit is contained in:
Max Roncace 2025-08-24 13:56:20 -04:00 committed by GitHub
parent 0abe859c28
commit 46a11f2cd7
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
17 changed files with 202 additions and 277 deletions

View File

@ -1579,7 +1579,7 @@ config.libs = [
ActorRel(MatchingFor("GZ2E01"), "d_a_npc_besu"),
ActorRel(MatchingFor("GZ2E01"), "d_a_npc_fairy_seirei"),
ActorRel(MatchingFor("GZ2E01"), "d_a_npc_fish"),
ActorRel(Equivalent, "d_a_npc_henna"), # weak func order
ActorRel(MatchingFor("GZ2E01"), "d_a_npc_henna"),
ActorRel(NonMatching, "d_a_npc_kakashi"),
ActorRel(NonMatching, "d_a_npc_kkri"),
ActorRel(MatchingFor("GZ2E01"), "d_a_npc_kolin"),
@ -1785,7 +1785,7 @@ config.libs = [
ActorRel(NonMatching, "d_a_npc_ashB", extra_cflags=[DANPCF_C_HACK]),
ActorRel(NonMatching, "d_a_npc_bans"),
ActorRel(NonMatching, "d_a_npc_blue_ns"),
ActorRel(Equivalent, "d_a_npc_bou"), # weak func order
ActorRel(MatchingFor("GZ2E01"), "d_a_npc_bou"),
ActorRel(NonMatching, "d_a_npc_bouS"),
ActorRel(NonMatching, "d_a_npc_cdn3"),
ActorRel(NonMatching, "d_a_npc_chat"),
@ -1886,7 +1886,7 @@ config.libs = [
ActorRel(MatchingFor("GZ2E01"), "d_a_npc_zant"),
ActorRel(NonMatching, "d_a_npc_zelR"),
ActorRel(NonMatching, "d_a_npc_zelRo"),
ActorRel(Equivalent, "d_a_npc_zelda"), # weak function order
ActorRel(MatchingFor("GZ2E01"), "d_a_npc_zelda"),
ActorRel(NonMatching, "d_a_npc_zra", extra_cflags=[DANPCF_C_HACK]),
ActorRel(NonMatching, "d_a_npc_zrc", extra_cflags=[DANPCF_C_HACK]),
ActorRel(NonMatching, "d_a_npc_zrz", extra_cflags=[DANPCF_C_HACK]),
@ -1904,7 +1904,7 @@ config.libs = [
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_bbox"),
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_bed"),
ActorRel(NonMatching, "d_a_obj_bemos"),
ActorRel(Equivalent, "d_a_obj_bhbridge"), # vtable order
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_bhbridge"), # vtable order
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_bk_leaf"),
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_bky_rock"),
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_bmWindow"),
@ -1916,7 +1916,7 @@ config.libs = [
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_bubblePilar"),
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_catdoor"),
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_cb"),
ActorRel(Equivalent, "d_a_obj_cblock"), # unsure why this doesn't match, .rel files seem to be identical
ActorRel(Equivalent, "d_a_obj_cblock"), # weird weak data issue
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_cdoor"),
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_chandelier"),
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_chest"),
@ -2117,7 +2117,7 @@ config.libs = [
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_sekizo"),
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_sekizoa"),
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_shield"),
ActorRel(Equivalent, "d_a_obj_sm_door"), # vtable order
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_sm_door"),
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_smallkey"),
ActorRel(NonMatching, "d_a_obj_smgdoor"),
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_smoke"),
@ -2140,7 +2140,7 @@ config.libs = [
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_swBallC"),
ActorRel(NonMatching, "d_a_obj_swLight"),
ActorRel(NonMatching, "d_a_obj_swchain"),
ActorRel(Equivalent, "d_a_obj_swhang"), # weak func + vtable order
ActorRel(Equivalent, "d_a_obj_swhang"), # vtable order
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_sword"),
ActorRel(NonMatching, "d_a_obj_swpush2"),
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_swspinner"),

View File

@ -112,12 +112,12 @@ public:
daNpcT_c(param_1, param_2, param_3, param_4, param_5, param_6, param_7, param_8)
{}
/* 809727D4 */ virtual int checkChangeJoint(int);
/* 809727E4 */ virtual int checkRemoveJoint(int);
/* 809727CC */ virtual s32 getBackboneJointNo();
/* 809727C4 */ virtual s32 getNeckJointNo();
/* 809727BC */ virtual s32 getHeadJointNo();
/* 809727B4 */ virtual u16 getEyeballMaterialNo();
/* 809727D4 */ virtual int checkChangeJoint(int param_0) { return param_0 == 4; }
/* 809727E4 */ virtual int checkRemoveJoint(int param_0) { return param_0 == 8; }
/* 809727CC */ virtual s32 getBackboneJointNo() { return 1; }
/* 809727C4 */ virtual s32 getNeckJointNo() { return 3; }
/* 809727BC */ virtual s32 getHeadJointNo() { return 4; }
/* 809727B4 */ virtual u16 getEyeballMaterialNo() { return 1; }
/* 8096DD44 */ virtual void afterJntAnm(int);
/* 8096DDC8 */ virtual void setParam();
/* 8096DF9C */ virtual BOOL checkChangeEvt();
@ -205,38 +205,5 @@ private:
STATIC_ASSERT(sizeof(daNpc_Bou_c) == 0xffc);
/* 809727B4-809727BC 005914 0008+00 1/0 0/0 0/0 .text getEyeballMaterialNo__11daNpc_Bou_cFv */
u16 daNpc_Bou_c::getEyeballMaterialNo() {
return 1;
}
/* 809727BC-809727C4 00591C 0008+00 1/0 0/0 0/0 .text getHeadJointNo__11daNpc_Bou_cFv */
s32 daNpc_Bou_c::getHeadJointNo() {
return 4;
}
/* 809727C4-809727CC 005924 0008+00 1/0 0/0 0/0 .text getNeckJointNo__11daNpc_Bou_cFv */
s32 daNpc_Bou_c::getNeckJointNo() {
return 3;
}
/* 809727CC-809727D4 00592C 0008+00 1/0 0/0 0/0 .text getBackboneJointNo__11daNpc_Bou_cFv
*/
s32 daNpc_Bou_c::getBackboneJointNo() {
return 1;
}
/* 809727D4-809727E4 005934 0010+00 1/0 0/0 0/0 .text checkChangeJoint__11daNpc_Bou_cFi
*/
int daNpc_Bou_c::checkChangeJoint(int param_0) {
return param_0 == 4;
}
/* 809727E4-809727F4 005944 0010+00 1/0 0/0 0/0 .text checkRemoveJoint__11daNpc_Bou_cFi
*/
int daNpc_Bou_c::checkRemoveJoint(int param_0) {
return param_0 == 8;
}
#endif /* D_A_NPC_BOU_H */

View File

@ -10,7 +10,23 @@
*
* @details
*
*/
*/
struct daNpcShad_HIOParam {
/* 0x00 */ daNpcF_HIOParam common;
/* 0x6C */ f32 traveling_speed; // 走行速度 (Traveling Speed)
};
class daNpcShad_Param_c: public JORReflexible {
public:
/* 80AE1F70 */ virtual ~daNpcShad_Param_c() {}
#ifdef DEBUG
void genMessage(JORMContext*);
#endif
static const daNpcShad_HIOParam m;
};
class daNpcShad_c : public daNpcF_c {
public:
@ -113,7 +129,7 @@ public:
};
/* 80AD820C */ daNpcShad_c();
/* 80AD8420 */ ~daNpcShad_c();
/* 80AD8420 */ virtual ~daNpcShad_c();
/* 80AD8620 */ cPhs__Step Create();
/* 80AD8B60 */ int CreateHeap();
/* 80AD90E0 */ int Delete();
@ -163,7 +179,7 @@ public:
u8 getPathID() { return (fopAcM_GetParam(this) >> 8) & 0xFF; }
s16 getMessageNo() { return shape_angle.x; }
inline void setAction(ActionFn action) {
void setAction(ActionFn action) {
field_0xe1a = 3;
if (mActionFn) {
@ -178,14 +194,14 @@ public:
}
}
inline csXyz* unk_inline();
inline BOOL chkFindPlayer();
inline void setLookMode(int, fopAc_ac_c*, cXyz*);
inline BOOL step(s16, int, f32);
inline void setExpressionTalkAfter();
inline void setLookObliquenessUp();
csXyz* unk_inline();
BOOL chkFindPlayer();
void setLookMode(int, fopAc_ac_c*, cXyz*);
BOOL step(s16, int, f32);
void setExpressionTalkAfter();
void setLookObliquenessUp();
inline void searchActors() {
void searchActors() {
if (mMode == 0) {
if (mActorMngr[1].getActorP() == NULL) {
mActorMngr[1].entry(fopAcM_SearchByName(PROC_NPC_ASH));

View File

@ -3,41 +3,9 @@
#include "d/actor/d_a_npc.h"
class daNpc_Zelda_HIOParam {
public:
/* 0x00 */ daNpcT_HIOParam common;
};
STATIC_ASSERT(sizeof(daNpc_Zelda_HIOParam) == 0x8c);
class daNpc_Zelda_Param_c {
public:
/* 80B77F5C */ virtual ~daNpc_Zelda_Param_c();
static const daNpc_Zelda_HIOParam m;
};
class daNpc_Zelda_HIO_c
#if DEBUG
: public mDoHIO_entry_c
#endif
{
public:
daNpc_Zelda_HIO_c();
void genMessage(JORMContext* ctx);
void listenPropertyEvent(const JORPropertyEvent*);
#if DEBUG
daNpc_Zelda_HIOParam param;
#endif
};
class daNpc_Zelda_HIO_c;
class daNpc_Zelda_c;
typedef int (daNpc_Zelda_c::*cutFunc)(int);
typedef int (daNpc_Zelda_c::*actionFunc)(void*);
/**
* @ingroup actors-npcs
* @class daNpc_Zelda_c
@ -48,6 +16,9 @@ typedef int (daNpc_Zelda_c::*actionFunc)(void*);
*/
class daNpc_Zelda_c : public daNpcT_c {
public:
typedef int (daNpc_Zelda_c::*cutFunc)(int);
typedef int (daNpc_Zelda_c::*actionFunc)(void*);
/* 80B7512C */ virtual ~daNpc_Zelda_c();
u8 getPathID() {
return (fopAcM_GetParam(this) & 0xff00) >> 8;
@ -84,17 +55,22 @@ public:
/* 80B767F0 */ BOOL setAction(actionFunc);
/* 80B76898 */ int wait(void*);
/* 80B76B74 */ int talk(void*);
/* 80B77DD8 */ daNpc_Zelda_c(daNpcT_faceMotionAnmData_c const*, daNpcT_motionAnmData_c const*,
daNpcT_MotionSeqMngr_c::sequenceStepData_c const*, int,
daNpcT_MotionSeqMngr_c::sequenceStepData_c const*, int,
daNpcT_evtData_c const*, char**);
/* 80B77F14 */ u16 getEyeballRMaterialNo();
/* 80B77F1C */ u16 getEyeballLMaterialNo();
/* 80B77F24 */ s32 getHeadJointNo();
/* 80B77F2C */ s32 getNeckJointNo();
/* 80B77F34 */ s32 getBackboneJointNo();
/* 80B77F3C */ int checkChangeJoint(int);
/* 80B77F4C */ int checkRemoveJoint(int);
/* 80B77DD8 */ daNpc_Zelda_c(daNpcT_faceMotionAnmData_c const* param_0,
daNpcT_motionAnmData_c const* param_1,
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* param_2,
int param_3,
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* param_4,
int param_5, daNpcT_evtData_c const* param_6, char** param_7) :
daNpcT_c(param_0, param_1, param_2, param_3, param_4, param_5, param_6, param_7) {
OS_REPORT("|%06d:%x|daNpc_Zelda_c -> コンストラクト\n", g_Counter.mCounter0, this);
}
/* 80B77F14 */ u16 getEyeballRMaterialNo() { return 5; }
/* 80B77F1C */ u16 getEyeballLMaterialNo() { return 4; }
/* 80B77F24 */ s32 getHeadJointNo() { return 4; }
/* 80B77F2C */ s32 getNeckJointNo() { return 3; }
/* 80B77F34 */ s32 getBackboneJointNo() { return 1; }
/* 80B77F3C */ int checkChangeJoint(int param_0) { return param_0 == 4; }
/* 80B77F4C */ int checkRemoveJoint(int param_0) { return param_0 == 17; }
static const char* mCutNameList;
static cutFunc mCutList[1];
@ -110,4 +86,34 @@ private:
STATIC_ASSERT(sizeof(daNpc_Zelda_c) == 0xfa0);
class daNpc_Zelda_HIOParam {
public:
/* 0x00 */ daNpcT_HIOParam common;
};
STATIC_ASSERT(sizeof(daNpc_Zelda_HIOParam) == 0x8c);
class daNpc_Zelda_Param_c {
public:
/* 80B77F5C */ virtual ~daNpc_Zelda_Param_c() {}
static const daNpc_Zelda_HIOParam m;
};
class daNpc_Zelda_HIO_c
#if DEBUG
: public mDoHIO_entry_c
#endif
{
public:
daNpc_Zelda_HIO_c();
void genMessage(JORMContext* ctx);
void listenPropertyEvent(const JORPropertyEvent*);
#if DEBUG
daNpc_Zelda_HIOParam param;
#endif
};
#endif /* D_A_NPC_ZELDA_H */

View File

@ -10,9 +10,11 @@
#include "Z2AudioLib/Z2Calc.h" // IWYU pragma: export
// Fixes weak function ordering
#include "cmath.h"
#include "string.h"
#include "d/d_com_inf_game.h" // IWYU pragma: export
#include "d/d_bg_w.h" // IWYU pragma: export
#include "m_Do/m_Do_graphic.h" // IWYU pragma: export
#include "JSystem/J2DGraph/J2DOrthograph.h" // IWYU pragma: export
#include "JSystem/J2DGraph/J2DPane.h" // IWYU pragma: export
#include "JSystem/J2DGraph/J2DPictureEx.h" // IWYU pragma: export

View File

@ -2,7 +2,7 @@
#define DOLZEL_REL_H
// PCH breaks debug build for RELs right now
#if __MWERKS__ && !DEBUG
#if __MWERKS__
#include "d/dolzel_rel.mch"
#else
#include "d/dolzel_rel.pch"

View File

@ -11,14 +11,6 @@
#include "dol2asm.h"
#include "m_Do/m_Do_graphic.h"
namespace std {
/* 807E2350 */ void fabsf(f32);
};
//
// Forward References:
//

View File

@ -170,7 +170,12 @@ static int daNpc_Henna_Draw(npc_henna_class* i_this) {
return 1;
}
// needed for matching .rodata, maybe from a stripped method?
// needed for matching .rodata + weak func order, probably from a stripped method?
static f32 dummy_dt_cxyz() {
cXyz xyz(0.0f, 0.0f, 0.0f);
return xyz.x;
}
static f32 dummy_100() {
return 100.0f;
@ -180,11 +185,11 @@ static f32 dummy_30() {
return 30.0f;
}
static f32 dummy__30() {
static f32 dummy_m30() {
return -30.0f;
}
static f32 dummy__100() {
static f32 dummy_m100() {
return -100.0f;
}
@ -192,7 +197,7 @@ static f32 dummy_300() {
return 300.0f;
}
static f32 dummy__450() {
static f32 dummy_m450() {
return -450.0f;
}
@ -200,12 +205,12 @@ static f32 dummy_0_8() {
return 0.8f;
}
static f32 dummy__300() {
static f32 dummy_m300() {
return -300.0f;
}
static cM3dGPla dummy_cM3dGPla() {
return cM3dGPla();
static void dummy_dt_cm3dgpla() {
delete (cM3dGPla*)NULL;
}
/* 80543544-805436CC 000724 0188+00 1/1 0/0 0/0 .text s_npc_sub__FPvPv */

View File

@ -11,22 +11,6 @@
#include "d/actor/d_a_tag_evtarea.h"
#include "d/d_msg_object.h"
struct daNpcShad_HIOParam {
/* 0x00 */ daNpcF_HIOParam common;
/* 0x6C */ f32 traveling_speed; // 走行速度 (Traveling Speed)
};
class daNpcShad_Param_c: public JORReflexible {
public:
/* 80AE1F70 */ virtual ~daNpcShad_Param_c() {}
#ifdef DEBUG
void genMessage(JORMContext*);
#endif
static const daNpcShad_HIOParam m;
};
enum Shad_RES_File_ID {
/* BCK */
/* 0x07 */ BCK_SHAD_F_DISCOURAGED = 0x7,
@ -308,19 +292,6 @@ daNpcShad_c::EventFn daNpcShad_c::mEvtSeqList[14] = {
&daNpcShad_c::EvCut_WiretapEntrant,
};
daNpcShad_c::daNpcShad_c() {}
/* 80AD8420-80AD8620 000300 0200+00 1/0 0/0 0/0 .text __dt__11daNpcShad_cFv */
daNpcShad_c::~daNpcShad_c() {
for (int i = 0; l_loadRes_list[mMode][i] >= 0; i++) {
dComIfG_resDelete(&mPhases[i], l_arcNames[l_loadRes_list[mMode][i]]);
}
if (heap != NULL) {
mpMorf->stopZelAnime();
}
}
/* 80AE1FDC-80AE204C 000000 0070+00 19/19 0/0 0/0 .rodata m__17daNpcShad_Param_c */
const daNpcShad_HIOParam daNpcShad_Param_c::m = {
35.0f,
@ -359,6 +330,21 @@ const daNpcShad_HIOParam daNpcShad_Param_c::m = {
12.0f,
};
daNpcShad_c::daNpcShad_c() {
// empty function
}
/* 80AD8420-80AD8620 000300 0200+00 1/0 0/0 0/0 .text __dt__11daNpcShad_cFv */
daNpcShad_c::~daNpcShad_c() {
for (int i = 0; l_loadRes_list[mMode][i] >= 0; i++) {
dComIfG_resDelete(&mPhases[i], l_arcNames[l_loadRes_list[mMode][i]]);
}
if (heap != NULL) {
mpMorf->stopZelAnime();
}
}
/* 80AD8620-80AD8B60 000500 0540+00 1/1 0/0 0/0 .text Create__11daNpcShad_cFv */
cPhs__Step daNpcShad_c::Create() {
fopAcM_SetupActor(this, daNpcShad_c);
@ -911,7 +897,7 @@ inline bool daNpcShad_c::isSneaking() {
}
/* 80AE0B58-80AE0ED0 008A38 0378+00 1/1 0/0 0/0 .text playExpression__11daNpcShad_cFv */
void daNpcShad_c::playExpression() {
inline void daNpcShad_c::playExpression() {
daNpcF_anmPlayData dat0 = {ANM_F_TALK_A, daNpcShad_Param_c::m.common.morf_frame, 0};
daNpcF_anmPlayData* pDat0[1] = {&dat0};
daNpcF_anmPlayData dat1a = {ANM_F_HAPPY, daNpcShad_Param_c::m.common.morf_frame, 1};
@ -949,11 +935,11 @@ void daNpcShad_c::playExpression() {
if (mExpression >= 0 && mExpression < 0xD) {
playExpressionAnm(ppDat);
}
}
}
/* 80AE04D8-80AE0B58 0083B8 0680+00 1/1 0/0 0/0 .text playMotion__11daNpcShad_cFv */
void daNpcShad_c::playMotion() {
inline void daNpcShad_c::playMotion() {
daNpcF_anmPlayData dat0 = {ANM_WAIT_A, daNpcShad_Param_c::m.common.morf_frame, 0};
daNpcF_anmPlayData* pDat0[1] = {&dat0};
daNpcF_anmPlayData dat1a = {ANM_BOOK_TALK_A, daNpcShad_Param_c::m.common.morf_frame, 1};
@ -2576,6 +2562,11 @@ static int daNpcShad_IsDelete(void* a_this) {
return 1;
}
// force J3DTexNoAnm::calc to be emitted earlier than it otherwise would be
static void dummy() {
((J3DTexNoAnm*)NULL)->calc(NULL);
}
/* 80AE01BC-80AE0438 00809C 027C+00 1/0 0/0 0/0 .text setParam__11daNpcShad_cFv */
void daNpcShad_c::setParam() {
searchActors();
@ -2690,7 +2681,7 @@ inline void daNpcShad_c::setAttnPos() {
}
/* 80AE153C-80AE1544 00941C 0008+00 1/0 0/0 0/0 .text drawDbgInfo__11daNpcShad_cFv */
BOOL daNpcShad_c::drawDbgInfo() {
inline BOOL daNpcShad_c::drawDbgInfo() {
return FALSE;
}

View File

@ -19,13 +19,10 @@
static u32 l_bmdData[2] = { 11, 1 };
#pragma push
#pragma force_active on
static daNpcT_evtData_c l_evtList[2] = {
{"", 0},
{"NO_RESPONSE", 0},
};
#pragma pop
static char* l_resNameList[2] = {
"",
@ -62,7 +59,7 @@ static daNpcT_MotionSeqMngr_c::sequenceStepData_c l_motionSequenceData[8] = {
};
const char* daNpc_Zelda_c::mCutNameList = "";
cutFunc daNpc_Zelda_c::mCutList[1] = { 0 };
daNpc_Zelda_c::cutFunc daNpc_Zelda_c::mCutList[1] = { 0 };
#if DEBUG
static daNpc_Zelda_HIO_c l_HIO;
@ -204,7 +201,7 @@ int daNpc_Zelda_c::create() {
J3DModelData* unusedModelData = mpMorf[0]->getModel()->getModelData();
fopAcM_SetMtx(this, mpMorf[0]->getModel()->getBaseTRMtx());
fopAcM_setCullSizeBox(this, -200.0f, -100.0f, -200.0f, 200.0f, 300.0f, 200.0f);
fopAcM_OnStatus(this, fopAcM_STATUS_UNK_8000000);
fopAcM_OnStatus(this, fopAcM_STATUS_UNK_80000000);
mSound.init(&current.pos, &eyePos, 3, 1);
#if DEBUG
@ -245,15 +242,15 @@ int daNpc_Zelda_c::create() {
return loadResult;
}
f32 dummy0() {
static f32 dummy0() {
return 0.0f;
}
f32 dummy1() {
static f32 dummy1() {
return 65536.0f;
}
f32 dummy2() {
static f32 dummy2() {
return 0.2f;
}
@ -831,62 +828,6 @@ static int daNpc_Zelda_IsDelete(void* param_0) {
return 1;
}
/* 80B77DD8-80B77E84 002D98 00AC+00 1/1 0/0 0/0 .text
* __ct__13daNpc_Zelda_cFPC26daNpcT_faceMotionAnmData_cPC22daNpcT_motionAnmData_cPCQ222daNpcT_MotionSeqMngr_c18sequenceStepData_ciPCQ222daNpcT_MotionSeqMngr_c18sequenceStepData_ciPC16daNpcT_evtData_cPPc
*/
daNpc_Zelda_c::daNpc_Zelda_c(daNpcT_faceMotionAnmData_c const* param_0,
daNpcT_motionAnmData_c const* param_1,
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* param_2,
int param_3,
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* param_4,
int param_5, daNpcT_evtData_c const* param_6, char** param_7) :
daNpcT_c(param_0, param_1, param_2, param_3, param_4, param_5, param_6, param_7) {
OS_REPORT("|%06d:%x|daNpc_Zelda_c -> コンストラクト\n", g_Counter.mCounter0, this);
}
/* 80B77F14-80B77F1C 002ED4 0008+00 1/0 0/0 0/0 .text getEyeballRMaterialNo__13daNpc_Zelda_cFv */
u16 daNpc_Zelda_c::getEyeballRMaterialNo() {
return 5;
}
/* 80B77F1C-80B77F24 002EDC 0008+00 1/0 0/0 0/0 .text getEyeballLMaterialNo__13daNpc_Zelda_cFv */
u16 daNpc_Zelda_c::getEyeballLMaterialNo() {
return 4;
}
/* 80B77F24-80B77F2C 002EE4 0008+00 1/0 0/0 0/0 .text getHeadJointNo__13daNpc_Zelda_cFv
*/
s32 daNpc_Zelda_c::getHeadJointNo() {
return 4;
}
/* 80B77F2C-80B77F34 002EEC 0008+00 1/0 0/0 0/0 .text getNeckJointNo__13daNpc_Zelda_cFv
*/
s32 daNpc_Zelda_c::getNeckJointNo() {
return 3;
}
/* 80B77F34-80B77F3C 002EF4 0008+00 1/0 0/0 0/0 .text getBackboneJointNo__13daNpc_Zelda_cFv */
s32 daNpc_Zelda_c::getBackboneJointNo() {
return 1;
}
/* 80B77F3C-80B77F4C 002EFC 0010+00 1/0 0/0 0/0 .text checkChangeJoint__13daNpc_Zelda_cFi
*/
int daNpc_Zelda_c::checkChangeJoint(int param_0) {
return param_0 == 4;
}
/* 80B77F4C-80B77F5C 002F0C 0010+00 1/0 0/0 0/0 .text checkRemoveJoint__13daNpc_Zelda_cFi
*/
int daNpc_Zelda_c::checkRemoveJoint(int param_0) {
return param_0 == 17;
}
/* 80B77F5C-80B77FA4 002F1C 0048+00 2/1 0/0 0/0 .text __dt__19daNpc_Zelda_Param_cFv */
daNpc_Zelda_Param_c::~daNpc_Zelda_Param_c() {
}
/* 80B78240-80B78260 -00001 0020+00 1/0 0/0 0/0 .data daNpc_Zelda_MethodTable */
static actor_method_class daNpc_Zelda_MethodTable = {
(process_method_func)daNpc_Zelda_Create,

View File

@ -120,6 +120,14 @@ inline int daObjBhbridge_c::create() {
return rv;
}
/* 80BB5934-80BB59AC 000694 0078+00 1/0 0/0 0/0 .text CreateHeap__15daObjBhbridge_cFv */
inline int daObjBhbridge_c::CreateHeap() {
J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes(l_arcName, "M_BHbridge.bmd");
JUT_ASSERT(83, modelData != 0);
mModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000084);
return mModel != NULL ? TRUE : FALSE;
}
/* 80BB56F0-80BB58C4 000450 01D4+00 1/0 0/0 0/0 .text daObjBhbridge_Create__FP10fopAc_ac_c */
static int daObjBhbridge_Create(fopAc_ac_c* a_this) {
daObjBhbridge_c* i_this = static_cast<daObjBhbridge_c*>(a_this);
@ -127,16 +135,8 @@ static int daObjBhbridge_Create(fopAc_ac_c* a_this) {
return i_this->create();
}
/* 80BB5934-80BB59AC 000694 0078+00 1/0 0/0 0/0 .text CreateHeap__15daObjBhbridge_cFv */
int daObjBhbridge_c::CreateHeap() {
J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes(l_arcName, "M_BHbridge.bmd");
JUT_ASSERT(83, modelData != 0);
mModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000084);
return mModel != NULL ? TRUE : FALSE;
}
/* 80BB59AC-80BB5A14 00070C 0068+00 1/0 0/0 0/0 .text Create__15daObjBhbridge_cFv */
int daObjBhbridge_c::Create() {
inline int daObjBhbridge_c::Create() {
fopAcM_setCullSizeBox(this, -400.0f, -800.0f, -1000.0f, 400.0f, 300.0f, 1000.0f);
initBaseMtx();
mpBgW->SetRideCallback(rideCallBack);
@ -144,7 +144,7 @@ int daObjBhbridge_c::Create() {
}
/* 80BB5A14-80BB5E10 000774 03FC+00 1/0 0/0 0/0 .text Execute__15daObjBhbridge_cFPPA3_A4_f */
int daObjBhbridge_c::Execute(f32 (**i_mtxP)[3][4]) {
inline int daObjBhbridge_c::Execute(f32 (**i_mtxP)[3][4]) {
cXyz cStack_5c(current.pos.x, current.pos.y + HREG_F(0), current.pos.z);
f32 dVar10 = current.pos.y;
if (fopAcM_wt_c::waterCheck(&cStack_5c)) {
@ -195,7 +195,7 @@ int daObjBhbridge_c::Execute(f32 (**i_mtxP)[3][4]) {
}
/* 80BB5E10-80BB5EB4 000B70 00A4+00 1/0 0/0 0/0 .text Draw__15daObjBhbridge_cFv */
int daObjBhbridge_c::Draw() {
inline int daObjBhbridge_c::Draw() {
g_env_light.settingTevStruct(0x10, &current.pos, &tevStr);
g_env_light.setLightTevColorType_MAJI(mModel, &tevStr);
dComIfGd_setListBG();
@ -205,7 +205,7 @@ int daObjBhbridge_c::Draw() {
}
/* 80BB5EB4-80BB5EE8 000C14 0034+00 1/0 0/0 0/0 .text Delete__15daObjBhbridge_cFv */
int daObjBhbridge_c::Delete() {
inline int daObjBhbridge_c::Delete() {
dComIfG_resDelete(&mPhase, l_arcName);
return 1;
}

View File

@ -160,6 +160,35 @@ static int daObjSM_DOOR_Execute(daObjSM_DOOR_c* i_this) {
return i_this->MoveBGExecute();
}
/* 80CD90A4-80CD9258 000B64 01B4+00 1/0 0/0 0/0 .text CreateHeap__14daObjSM_DOOR_cFv */
inline int daObjSM_DOOR_c::CreateHeap() {
J3DModelData* model_data;
J3DModelData* alpha_model_data;
if (mType == 0) {
model_data = (J3DModelData*)dComIfG_getObjectRes(l_arcName, "A_SM_DoorA.bmd");
alpha_model_data = (J3DModelData*)dComIfG_getObjectRes(l_arcName, "A_SM_DoorA_Alpha.bmd");
} else if (mType == 1) {
model_data = (J3DModelData*)dComIfG_getObjectRes(l_arcName, "A_SM_DoorBl.bmd");
alpha_model_data = (J3DModelData*)dComIfG_getObjectRes(l_arcName, "A_SM_DoorBl_Alpha.bmd");
} else if (mType == 2) {
model_data = (J3DModelData*)dComIfG_getObjectRes(l_arcName, "A_SM_DoorWo.bmd");
alpha_model_data = (J3DModelData*)dComIfG_getObjectRes(l_arcName, "A_SM_DoorWo_Alpha.bmd");
}
mpAlphaModel = mDoExt_J3DModel__create(alpha_model_data, 0x80000, 0x11000084);
if (mpAlphaModel == NULL) {
return 0;
}
mpModel = mDoExt_J3DModel__create(model_data, 0x80000, 0x11000084);
if (mpModel == NULL) {
return 0;
}
return 1;
}
/* 80CD8D4C-80CD902C 00080C 02E0+00 1/1 0/0 0/0 .text create__14daObjSM_DOOR_cFv */
cPhs__Step daObjSM_DOOR_c::create() {
fopAcM_SetupActor(this, daObjSM_DOOR_c);
@ -215,44 +244,15 @@ static int daObjSM_DOOR_IsDelete(daObjSM_DOOR_c* i_this) {
return 1;
}
/* 80CD90A4-80CD9258 000B64 01B4+00 1/0 0/0 0/0 .text CreateHeap__14daObjSM_DOOR_cFv */
int daObjSM_DOOR_c::CreateHeap() {
J3DModelData* model_data;
J3DModelData* alpha_model_data;
if (mType == 0) {
model_data = (J3DModelData*)dComIfG_getObjectRes(l_arcName, "A_SM_DoorA.bmd");
alpha_model_data = (J3DModelData*)dComIfG_getObjectRes(l_arcName, "A_SM_DoorA_Alpha.bmd");
} else if (mType == 1) {
model_data = (J3DModelData*)dComIfG_getObjectRes(l_arcName, "A_SM_DoorBl.bmd");
alpha_model_data = (J3DModelData*)dComIfG_getObjectRes(l_arcName, "A_SM_DoorBl_Alpha.bmd");
} else if (mType == 2) {
model_data = (J3DModelData*)dComIfG_getObjectRes(l_arcName, "A_SM_DoorWo.bmd");
alpha_model_data = (J3DModelData*)dComIfG_getObjectRes(l_arcName, "A_SM_DoorWo_Alpha.bmd");
}
mpAlphaModel = mDoExt_J3DModel__create(alpha_model_data, 0x80000, 0x11000084);
if (mpAlphaModel == NULL) {
return 0;
}
mpModel = mDoExt_J3DModel__create(model_data, 0x80000, 0x11000084);
if (mpModel == NULL) {
return 0;
}
return 1;
}
/* 80CD9258-80CD929C 000D18 0044+00 1/0 0/0 0/0 .text Create__14daObjSM_DOOR_cFv */
int daObjSM_DOOR_c::Create() {
inline int daObjSM_DOOR_c::Create() {
fopAcM_setCullSizeBox(this, -1000.0f, -500.0f, -1000.0f, 1000.0f, 500.0f, 1000.0f);
return cPhs_COMPLEATE_e;
}
/* 80CD929C-80CD930C 000D5C 0070+00 1/0 0/0 0/0 .text Execute__14daObjSM_DOOR_cFPPA3_A4_f
*/
int daObjSM_DOOR_c::Execute(Mtx** i_mtxP) {
inline int daObjSM_DOOR_c::Execute(Mtx** i_mtxP) {
if (mSwType == 0xF) {
DrawChk1();
} else if (mSwType == 0) {
@ -266,7 +266,7 @@ int daObjSM_DOOR_c::Execute(Mtx** i_mtxP) {
}
/* 80CD930C-80CD9544 000DCC 0238+00 1/0 0/0 0/0 .text Draw__14daObjSM_DOOR_cFv */
int daObjSM_DOOR_c::Draw() {
inline int daObjSM_DOOR_c::Draw() {
if (mActive) {
g_env_light.settingTevStruct(0x10, &current.pos, &tevStr);
@ -301,7 +301,7 @@ int daObjSM_DOOR_c::Draw() {
}
/* 80CD9544-80CD9578 001004 0034+00 1/0 0/0 0/0 .text Delete__14daObjSM_DOOR_cFv */
int daObjSM_DOOR_c::Delete() {
inline int daObjSM_DOOR_c::Delete() {
dComIfG_resDelete(&mPhase, l_arcName);
return 1;
}

View File

@ -528,6 +528,11 @@ static int daObjSwHang_MoveBGDraw(daObjSwHang_c* i_this) {
return i_this->Draw();
}
static void dummy() {
((dEvLib_callback_c*)NULL)->eventStart();
delete (cCcD_GStts*)NULL;
}
/* 80CFD3EC-80CFD40C -00001 0020+00 1/0 0/0 0/0 .data daObjSwHang_METHODS */
static actor_method_class daObjSwHang_METHODS = {
(process_method_func)daObjSwHang_create1st,

View File

@ -47,7 +47,7 @@ static void messageSet(u32 status, bool i_drawBg) {
BMG_INF1* inf1 = (BMG_INF1*)&msg_data[0x20];
const char* msg_p = (const char*)((u8*)inf1->getNext() + sizeof(JUTDataBlockHeader) + inf1->entries[status]);
JUT_ASSERT(102, std::strlen(msg_p)-1 < 512);
JUT_ASSERT(102, strlen(msg_p)-1 < 512);
J2DTextBox tpane('TEXT1', JGeometry::TBox2<f32>(0.0f, 0.0f, 608.0f, 200.0f), (ResFONT*)font_data, msg_p, 512, HBIND_CENTER, VBIND_CENTER);
J2DTextBox spane('TEXT2', JGeometry::TBox2<f32>(0.0f, 0.0f, 608.0f, 200.0f), (ResFONT*)font_data, msg_p, 512, HBIND_CENTER, VBIND_CENTER);

View File

@ -2284,7 +2284,7 @@ void dMeter2Draw_c::drawButtonA(u8 i_action, f32 i_posX, f32 i_posY, f32 i_textP
mpTextA->hide();
}
JUT_ASSERT(0, std::strlen (mp_string) < (64));
JUT_ASSERT(0, strlen(mp_string) < (64));
if (daPy_getPlayerActorClass()->getSumouMode()) {
mpTextA->show();
@ -2352,7 +2352,7 @@ void dMeter2Draw_c::drawButtonB(u8 i_action, bool param_1, f32 i_posX, f32 i_pos
}
}
JUT_ASSERT(0, std::strlen (mp_string) < (64));
JUT_ASSERT(0, strlen(mp_string) < (64));
for (int i = 0; i < 5; i++) {
strcpy(static_cast<J2DTextBox*>(mpBText[i]->getPanePtr())->getStringPtr(), mp_string);
@ -2438,7 +2438,7 @@ void dMeter2Draw_c::drawButtonZ(u8 i_action) {
mpButtonMidona->show();
}
JUT_ASSERT(0, std::strlen (mp_string) < (64));
JUT_ASSERT(0, strlen(mp_string) < (64));
for (int i = 0; i < 5; i++) {
strcpy(static_cast<J2DTextBox*>(mpXYText[i][2]->getPanePtr())->getStringPtr(), mp_string);
@ -2543,7 +2543,7 @@ void dMeter2Draw_c::drawButtonXY(int i_no, u8 i_itemNo, u8 i_action, bool param_
mpTextXY[i_no]->hide();
}
JUT_ASSERT(0, std::strlen (mp_string) < (64));
JUT_ASSERT(0, strlen(mp_string) < (64));
for (int i = 0; i < 5; i++) {
strcpy(static_cast<J2DTextBox*>(mpXYText[i][i_no]->getPanePtr())->getStringPtr(),

View File

@ -227,29 +227,29 @@ bool dMsgScrn3Select_c::isSelect() {
void dMsgScrn3Select_c::setString(char* mpText0, char* mpText1, char* mpText2) {
if (mpTmSel_c[0] != NULL) {
JUT_ASSERT(0, ((J2DTextBox*)(mpTmSel_c[0]->getPanePtr()))->getStringAllocByte() >
std::strlen(mpText0));
strlen(mpText0));
}
if (mpTmSel_c[1] != NULL) {
JUT_ASSERT(0, ((J2DTextBox*)(mpTmSel_c[1]->getPanePtr()))->getStringAllocByte() >
std::strlen(mpText1));
strlen(mpText1));
}
if (mpTmSel_c[2] != NULL) {
JUT_ASSERT(0, ((J2DTextBox*)(mpTmSel_c[2]->getPanePtr()))->getStringAllocByte() >
std::strlen(mpText2));
strlen(mpText2));
}
if (mpTmSel_c[0] != NULL) {
std::strcpy(((J2DTextBox*)(mpTmSel_c[0]->getPanePtr()))->getStringPtr(), mpText0);
strcpy(((J2DTextBox*)(mpTmSel_c[0]->getPanePtr()))->getStringPtr(), mpText0);
}
if (mpTmSel_c[1] != NULL) {
std::strcpy(((J2DTextBox*)(mpTmSel_c[1]->getPanePtr()))->getStringPtr(), mpText1);
strcpy(((J2DTextBox*)(mpTmSel_c[1]->getPanePtr()))->getStringPtr(), mpText1);
}
if (mpTmSel_c[2] != NULL) {
std::strcpy(((J2DTextBox*)(mpTmSel_c[2]->getPanePtr()))->getStringPtr(), mpText2);
strcpy(((J2DTextBox*)(mpTmSel_c[2]->getPanePtr()))->getStringPtr(), mpText2);
}
}
@ -257,29 +257,29 @@ void dMsgScrn3Select_c::setString(char* mpText0, char* mpText1, char* mpText2) {
void dMsgScrn3Select_c::setRubyString(char* pText0, char* pText1, char* pText2) {
if (mpTmrSel_c[0] != NULL) {
JUT_ASSERT(0, ((J2DTextBox*)(mpTmrSel_c[0]->getPanePtr()))->getStringAllocByte() >
std::strlen(pText0));
strlen(pText0));
}
if (mpTmrSel_c[1] != NULL) {
JUT_ASSERT(0, ((J2DTextBox*)(mpTmrSel_c[1]->getPanePtr()))->getStringAllocByte() >
std::strlen(pText1));
strlen(pText1));
}
if (mpTmrSel_c[2] != NULL) {
JUT_ASSERT(0, ((J2DTextBox*)(mpTmrSel_c[2]->getPanePtr()))->getStringAllocByte() >
std::strlen(pText2));
strlen(pText2));
}
if (mpTmrSel_c[0] != NULL) {
std::strcpy(((J2DTextBox*)(mpTmrSel_c[0]->getPanePtr()))->getStringPtr(), pText0);
strcpy(((J2DTextBox*)(mpTmrSel_c[0]->getPanePtr()))->getStringPtr(), pText0);
}
if (mpTmrSel_c[1] != NULL) {
std::strcpy(((J2DTextBox*)(mpTmrSel_c[1]->getPanePtr()))->getStringPtr(), pText1);
strcpy(((J2DTextBox*)(mpTmrSel_c[1]->getPanePtr()))->getStringPtr(), pText1);
}
if (mpTmrSel_c[2] != NULL) {
std::strcpy(((J2DTextBox*)(mpTmrSel_c[2]->getPanePtr()))->getStringPtr(), pText2);
strcpy(((J2DTextBox*)(mpTmrSel_c[2]->getPanePtr()))->getStringPtr(), pText2);
}
}

View File

@ -91,7 +91,7 @@ void dMsgScrnBase_c::drawOutFont(f32 param_0, f32 param_1, f32 param_2) {
void dMsgScrnBase_c::setString(char* mpText, char* i_stringB) {
for (int i = 0; i < 7; i++) {
if (mpTm_c[i] != NULL) {
JUT_ASSERT(262, ((J2DTextBox*)(mpTm_c[i]->getPanePtr()))->getStringAllocByte() > std::strlen(mpText));
JUT_ASSERT(262, ((J2DTextBox*)(mpTm_c[i]->getPanePtr()))->getStringAllocByte() > strlen(mpText));
if (i == 0) {
strcpy(((J2DTextBox*)mpTm_c[i]->getPanePtr())->getStringPtr(), mpText);
} else {
@ -106,7 +106,7 @@ void dMsgScrnBase_c::setString(char* mpText, char* i_stringB) {
void dMsgScrnBase_c::setRubyString(char* mpText) {
for (int i = 0; i < 3; i++) {
if (mpTmr_c[i] != NULL) {
JUT_ASSERT(288, ((J2DTextBox*)(mpTmr_c[i]->getPanePtr()))->getStringAllocByte() > std::strlen(mpText));
JUT_ASSERT(288, ((J2DTextBox*)(mpTmr_c[i]->getPanePtr()))->getStringAllocByte() > strlen(mpText));
strcpy(((J2DTextBox*)mpTmr_c[i]->getPanePtr())->getStringPtr(), mpText);
}
}