mirror of
https://github.com/encounter/tp.git
synced 2026-07-11 06:18:46 -07:00
dbg npc_aru (-1 func), npc_maro, and npc_bans equiv (#3053)
* dbg npc_aru (-1 func), npc_maro, and tag_push equiv * daNpc_Aru_c::adjustMoveDir doesn't match. I don't know how to fix it without breaking GCN * JORM default args + PR comments * npc_bans dbg equiv
This commit is contained in:
@@ -277,7 +277,7 @@ public:
|
||||
u32 checkCutTurnCancel() const { return checkEndResetStateFlg0(ERFLG0_CUT_TURN_CANCEL); }
|
||||
u32 checkTurnCancelKeep() const { return checkStateFlg0(FLG0_TURN_CANCEL_KEEP); }
|
||||
u32 checkRodeoLeft() const { return checkStateFlg0(FLG0_RODEO_LEFT); }
|
||||
u32 checkHorseCallWait() const { return checkStateFlg0(FLG0_NO_DRAW_WAIT); }
|
||||
u32 checkHorseCallWait() { return checkStateFlg0(FLG0_NO_DRAW_WAIT); }
|
||||
BOOL checkTurn() const { return m_procID == PROC_TURN_e && field_0x1720 == 0; }
|
||||
BOOL checkStop() const { return m_procID == PROC_STOP_e; }
|
||||
BOOL checkJump() const { return m_procID == PROC_JUMP_e; }
|
||||
|
||||
@@ -153,7 +153,9 @@ public:
|
||||
char** i_arcNames)
|
||||
: daNpcT_c(i_faceMotionAnmData, i_motionAnmData, i_faceMotionSequenceData,
|
||||
i_faceMotionStepNum, i_motionSequenceData, i_motionStepNum, i_evtData,
|
||||
i_arcNames) {}
|
||||
i_arcNames) {
|
||||
OS_REPORT("|%06d:%x|daNpc_Aru_c -> コンストラクト\n", g_Counter.mCounter0, this);
|
||||
}
|
||||
u16 getEyeballMaterialNo() { return ARU_EYEBALL_M; }
|
||||
s32 getHeadJointNo() { return JNT_HEAD; }
|
||||
s32 getNeckJointNo() { return JNT_NECK; }
|
||||
@@ -165,13 +167,9 @@ public:
|
||||
|
||||
int getFlowNodeNo() {
|
||||
u16 nodeNo = home.angle.x;
|
||||
if (nodeNo == 0xffff) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
return nodeNo;
|
||||
return (nodeNo == 0xFFFF) ? -1 : nodeNo;
|
||||
}
|
||||
int getPathID() { return (fopAcM_GetParam(this) & 0xFF00) >> 8; }
|
||||
u8 getPathID() { return (fopAcM_GetParam(this) & 0xFF00) >> 8; }
|
||||
void setLastIn() { mLastGoatIn = true; }
|
||||
|
||||
static char* mCutNameList[7];
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
|
||||
struct daNpc_Maro_HIOParam {
|
||||
/* 0x00 */ daNpcT_HIOParam common;
|
||||
/* 0x8C */ s16 field_0x8c;
|
||||
/* 0x8C */ s16 tease_interval;
|
||||
};
|
||||
|
||||
class daNpc_Maro_Param_c {
|
||||
@@ -125,6 +125,7 @@ public:
|
||||
int arrowTutorial(void*);
|
||||
int talk(void*);
|
||||
int shop(void*);
|
||||
BOOL test(void*);
|
||||
daNpc_Maro_c(
|
||||
daNpcT_faceMotionAnmData_c const* i_faceMotionAnmData,
|
||||
daNpcT_motionAnmData_c const* i_motionAnmData,
|
||||
@@ -169,16 +170,21 @@ public:
|
||||
static char* mCutNameList[17];
|
||||
static cutFunc mCutList[17];
|
||||
|
||||
u8 getGroupId() {
|
||||
return (fopAcM_GetParam(this) & 0xF0000000) >> 28;
|
||||
}
|
||||
|
||||
u8 getPathID() {
|
||||
return (fopAcM_GetParam(this) & 0xFF00) >> 8;
|
||||
}
|
||||
|
||||
int getFlowNodeNo() {
|
||||
u16 nodeNo = home.angle.x;
|
||||
if (nodeNo == 0xffff) {
|
||||
return -1;
|
||||
}
|
||||
return nodeNo;
|
||||
return (nodeNo == 0xFFFF) ? -1 : nodeNo;
|
||||
}
|
||||
|
||||
u8 getMaxNumItem() {
|
||||
return (fopAcM_GetParam(this) & 0xf000000) >> 0x18;
|
||||
return (fopAcM_GetParam(this) & 0xF000000) >> 24;
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
@@ -174,7 +174,7 @@ public:
|
||||
void setTimeMs(s32 i_time) { mTimeMs = i_time; }
|
||||
s32 getTimeMs() { return mTimeMs; }
|
||||
u8 getNowCount() { return mNowCount; }
|
||||
int getMaxCount() { return mMaxCount; }
|
||||
u8 getMaxCount() { return mMaxCount; }
|
||||
void setScopeZoomPointer(u8 param_0) { mScopeZoomPointer = param_0; }
|
||||
u8 getItemExplainWindowStatus() { return mItemExplainWindowStatus; }
|
||||
void setItemExplainWindowStatus(u8 i_value) { mItemExplainWindowStatus = i_value; }
|
||||
@@ -671,7 +671,7 @@ inline u8 dMeter2Info_getNowCount() {
|
||||
return g_meter2_info.getNowCount();
|
||||
}
|
||||
|
||||
inline int dMeter2Info_getMaxCount() {
|
||||
inline u8 dMeter2Info_getMaxCount() {
|
||||
return g_meter2_info.getMaxCount();
|
||||
}
|
||||
|
||||
|
||||
@@ -70,11 +70,11 @@ public:
|
||||
/* 0x2c */ fopAc_ac_c* field_0x2c;
|
||||
/* 0x30 */ fopAc_ac_c* field_0x30;
|
||||
/* 0x34 */ fopAc_ac_c* field_0x34;
|
||||
/* 0x38 */ cXyz field_0x38;
|
||||
/* 0x44 */ cXyz field_0x44;
|
||||
/* 0x38 */ Vec field_0x38;
|
||||
/* 0x44 */ Vec field_0x44;
|
||||
/* 0x50 */ f32 field_0x50;
|
||||
/* 0x54 */ cXyz field_0x54;
|
||||
/* 0x60 */ cXyz field_0x60;
|
||||
/* 0x54 */ Vec field_0x54;
|
||||
/* 0x60 */ Vec field_0x60;
|
||||
/* 0x6c */ f32 field_0x6c;
|
||||
/* 0x70 */ cXyz field_0x70;
|
||||
/* 0x7C */ cXyz field_0x7c;
|
||||
|
||||
+285
-159
File diff suppressed because it is too large
Load Diff
@@ -137,6 +137,51 @@ enum Type {
|
||||
/* 0x5 */ TYPE_DEFAULT,
|
||||
};
|
||||
|
||||
daNpc_Bans_HIOParam const daNpc_Bans_Param_c::m = {
|
||||
200.0f,
|
||||
-3.0f,
|
||||
1.0f,
|
||||
400.0f,
|
||||
255.0f,
|
||||
190.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,
|
||||
false,
|
||||
false,
|
||||
4.0f,
|
||||
-20.0f,
|
||||
0.0f,
|
||||
-20.0f,
|
||||
20.0f,
|
||||
40.0f,
|
||||
20.0f,
|
||||
110.0f,
|
||||
10.0f,
|
||||
};
|
||||
|
||||
#if DEBUG
|
||||
daNpc_Bans_HIO_c::daNpc_Bans_HIO_c() {
|
||||
m = daNpc_Bans_Param_c::m;
|
||||
@@ -150,7 +195,7 @@ void daNpc_Bans_HIO_c::listenPropertyEvent(const JORPropertyEvent* event) {
|
||||
|
||||
switch ((u32)event->id) {
|
||||
case 0x40000002:
|
||||
if (jorFile.open(6, "", NULL, NULL, NULL)) {
|
||||
if (jorFile.open(6, "すべてのファイル(*.*)\0*.*\0", NULL, NULL, NULL)) {
|
||||
memset(buffer, 0, sizeof(buffer));
|
||||
len = 0;
|
||||
daNpcT_cmnListenPropertyEvent(buffer, &len, &m.common);
|
||||
@@ -325,51 +370,6 @@ daNpc_Bans_c::~daNpc_Bans_c() {
|
||||
deleteRes(l_loadResPtrnList[mType], (const char**)l_resNameList);
|
||||
}
|
||||
|
||||
daNpc_Bans_HIOParam const daNpc_Bans_Param_c::m = {
|
||||
200.0f,
|
||||
-3.0f,
|
||||
1.0f,
|
||||
400.0f,
|
||||
255.0f,
|
||||
190.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,
|
||||
false,
|
||||
false,
|
||||
4.0f,
|
||||
-20.0f,
|
||||
0.0f,
|
||||
-20.0f,
|
||||
20.0f,
|
||||
40.0f,
|
||||
20.0f,
|
||||
110.0f,
|
||||
10.0f,
|
||||
};
|
||||
|
||||
static NPC_BANS_HIO_CLASS l_HIO;
|
||||
|
||||
cPhs__Step daNpc_Bans_c::create() {
|
||||
@@ -439,13 +439,11 @@ cPhs__Step daNpc_Bans_c::create() {
|
||||
}
|
||||
|
||||
int daNpc_Bans_c::CreateHeap() {
|
||||
J3DModelData* modelData;
|
||||
int bmdIdx;
|
||||
int resIdx;
|
||||
u32 idx = 0;
|
||||
idx = mTwilight == true ? TRUE : FALSE;
|
||||
resIdx = l_bmdData[idx][1];
|
||||
bmdIdx = l_bmdData[idx][0];
|
||||
J3DModelData* modelData = NULL;
|
||||
J3DModel* model = NULL;
|
||||
u32 idx = mTwilight == true ? TRUE : FALSE;
|
||||
int resIdx = l_bmdData[idx][1];
|
||||
int bmdIdx = l_bmdData[idx][0];
|
||||
modelData = (J3DModelData*)dComIfG_getObjectRes(l_resNameList[resIdx], bmdIdx);
|
||||
if (modelData == NULL) {
|
||||
return 0;
|
||||
@@ -457,7 +455,7 @@ int daNpc_Bans_c::CreateHeap() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
J3DModel* model = mpMorf[0]->getModel();
|
||||
model = mpMorf[0]->getModel();
|
||||
for (u16 i = 0; i < modelData->getJointNum(); i++) {
|
||||
modelData->getJointNodePointer(i)->setCallBack(ctrlJointCallBack);
|
||||
}
|
||||
@@ -477,8 +475,8 @@ int daNpc_Bans_c::CreateHeap() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
u32 uVar3 = 0x11000084;
|
||||
mpScoopMorf = new mDoExt_McaMorfSO(modelData, NULL, NULL, NULL, -1, 1.0f, 0, -1, NULL, J3DMdlFlag_DifferedDLBuffer, uVar3);
|
||||
uVar2 = 0x11000084;
|
||||
mpScoopMorf = new mDoExt_McaMorfSO(modelData, NULL, NULL, NULL, -1, 1.0f, 0, -1, NULL, J3DMdlFlag_DifferedDLBuffer, uVar2);
|
||||
if (mpScoopMorf == NULL || mpScoopMorf->getModel() == NULL) {
|
||||
return 0;
|
||||
}
|
||||
@@ -1119,10 +1117,10 @@ bool daNpc_Bans_c::setScoopAnm(int i_idx, int i_attr, f32 i_morf) {
|
||||
};
|
||||
|
||||
J3DAnmTransform* anm = NULL;
|
||||
|
||||
int my_idx = i_idx;
|
||||
if (mpScoopMorf != NULL) {
|
||||
if (scoopAnmData[i_idx][0] > 0) {
|
||||
anm = getTrnsfrmKeyAnmP(l_resNameList[scoopAnmData[i_idx][1]], scoopAnmData[i_idx][0]);
|
||||
if (scoopAnmData[my_idx][0] > 0) {
|
||||
anm = getTrnsfrmKeyAnmP(l_resNameList[scoopAnmData[my_idx][1]], scoopAnmData[my_idx][0]);
|
||||
}
|
||||
|
||||
if (anm != NULL) {
|
||||
@@ -1133,12 +1131,9 @@ bool daNpc_Bans_c::setScoopAnm(int i_idx, int i_attr, f32 i_morf) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
bool daNpc_Bans_c::afterSetMotionAnm(int i_idx, int i_attr, f32 i_morf, int param_4) {
|
||||
if (mCreating == true) {
|
||||
i_morf = 0.0f;
|
||||
}
|
||||
|
||||
return setScoopAnm(i_idx, i_attr, i_morf);
|
||||
bool daNpc_Bans_c::afterSetMotionAnm(int i_idx, int i_attr, f32 i_morf, int) {
|
||||
f32 morf_val = (mCreating == true) ? 0.0f : i_morf;
|
||||
return setScoopAnm(i_idx, i_attr, morf_val);
|
||||
}
|
||||
|
||||
BOOL daNpc_Bans_c::selectAction() {
|
||||
@@ -1184,43 +1179,35 @@ BOOL daNpc_Bans_c::setAction(actionFunc action) {
|
||||
}
|
||||
|
||||
BOOL daNpc_Bans_c::checkPlayerIn2ndFloorOfBombShop() {
|
||||
bool rv = false;
|
||||
|
||||
return strcmp("R_SP109", dComIfGp_getStartStageName()) == 0 && dComIfGp_roomControl_getStayNo() == 1 &&
|
||||
300.0f < fabsf(daPy_getPlayerActorClass()->current.pos.y - current.pos.y);
|
||||
}
|
||||
|
||||
void daNpc_Bans_c::orderAngerEvt() {
|
||||
daTag_EvtArea_c* actor = NULL;
|
||||
daPy_py_c* player = daPy_getPlayerActorClass();
|
||||
|
||||
if (player->checkUseKandelaar(0) && player->getKandelaarFlamePos() != NULL) {
|
||||
mEvtNo = EVT_ANGER;
|
||||
|
||||
for (int i = 0; i < 2; i++) {
|
||||
daTag_EvtArea_c* actor = (daTag_EvtArea_c*)mActorMngrs[i + 5].getActorP();
|
||||
bool bVar1 = false;
|
||||
bool bVar2 = false;
|
||||
|
||||
if (actor != NULL) {
|
||||
cXyz& pos(player->current.pos);
|
||||
bVar1 = true;
|
||||
if (actor->chkPointInArea(pos)) {
|
||||
mEvtNo = EVT_ANGER_NEAR;
|
||||
break;
|
||||
}
|
||||
actor = (daTag_EvtArea_c*)mActorMngrs[i + 5].getActorP();
|
||||
if (actor != NULL && actor->chkPointInArea(player->current.pos)) {
|
||||
mEvtNo = EVT_ANGER_NEAR;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fopAc_ac_c* daNpc_Bans_c::getKMsgTagP() {
|
||||
f32 fVar1 = 1000000000.0f;
|
||||
int reg_r29 = 0; // unused
|
||||
f32 fVar1 = G_CM3D_F_INF;
|
||||
mFindCount = 0;
|
||||
mSrchName = PROC_TAG_KMSG;
|
||||
fopAcM_Search(srchActor, this);
|
||||
int i = 0;
|
||||
|
||||
for (; i < mFindCount; i++) {
|
||||
for (int i = 0; i < mFindCount; i++) {
|
||||
if (((daTag_KMsg_c*)mFindActorPtrs[i])->getType() == 1) {
|
||||
return mFindActorPtrs[i];
|
||||
}
|
||||
@@ -1485,7 +1472,7 @@ int daNpc_Bans_c::cutPurchase(int i_staffId) {
|
||||
return rv;
|
||||
}
|
||||
|
||||
int daNpc_Bans_c::wait(void* param_1) {
|
||||
int daNpc_Bans_c::wait(void*) {
|
||||
daNpc_Len_c* actor_p = NULL;
|
||||
|
||||
switch (mMode) {
|
||||
@@ -1599,7 +1586,7 @@ int daNpc_Bans_c::wait(void* param_1) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
int daNpc_Bans_c::tend(void* param_1) {
|
||||
int daNpc_Bans_c::tend(void*) {
|
||||
fopAc_ac_c* actor_p = NULL;
|
||||
|
||||
switch (mMode) {
|
||||
@@ -1731,7 +1718,7 @@ int daNpc_Bans_c::tend(void* param_1) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
int daNpc_Bans_c::talk(void* param_1) {
|
||||
int daNpc_Bans_c::talk(void*) {
|
||||
switch (mMode) {
|
||||
case 0:
|
||||
case 1:
|
||||
@@ -1779,7 +1766,7 @@ int daNpc_Bans_c::talk(void* param_1) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
int daNpc_Bans_c::shop(void* param_1) {
|
||||
int daNpc_Bans_c::shop(void*) {
|
||||
switch (mMode) {
|
||||
case 0:
|
||||
case 1:
|
||||
@@ -1820,7 +1807,7 @@ int daNpc_Bans_c::shop(void* param_1) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
int daNpc_Bans_c::test(void* param_1) {
|
||||
int daNpc_Bans_c::test(void*) {
|
||||
int rv = 0;
|
||||
|
||||
switch (mMode) {
|
||||
@@ -1860,7 +1847,7 @@ static int daNpc_Bans_Draw(void* i_this) {
|
||||
return static_cast<daNpc_Bans_c*>(i_this)->Draw();
|
||||
}
|
||||
|
||||
static int daNpc_Bans_IsDelete(void* i_this) {
|
||||
static int daNpc_Bans_IsDelete(void*) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
@@ -360,7 +360,6 @@ void daNpc_Besu_HIO_c::listenPropertyEvent(const JORPropertyEvent* event) {
|
||||
}
|
||||
|
||||
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);
|
||||
|
||||
+243
-146
File diff suppressed because it is too large
Load Diff
@@ -2007,7 +2007,7 @@ int daNpc_Toby_c::walk(void*) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
int daNpc_Toby_c::play(void* param_0) {
|
||||
int daNpc_Toby_c::play(void*) {
|
||||
daObj_AutoMata_c* actor_p = (daObj_AutoMata_c*) mActorMngr[1].getActorP();
|
||||
int reg_r29 = 1;
|
||||
if (actor_p != NULL) {
|
||||
@@ -2192,7 +2192,7 @@ static int daNpc_Toby_Draw(void* i_this) {
|
||||
return static_cast<daNpc_Toby_c*>(i_this)->Draw();
|
||||
}
|
||||
|
||||
static int daNpc_Toby_IsDelete(void* i_this) {
|
||||
static int daNpc_Toby_IsDelete(void*) {
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -154,7 +154,7 @@ static int daTag_Push_Draw(void* i_this) {
|
||||
return static_cast<daTag_Push_c*>(i_this)->Draw();
|
||||
}
|
||||
|
||||
static int daTag_Push_IsDelete(void* i_this) {
|
||||
static int daTag_Push_IsDelete(void*) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user