D_a_npc_hi1 matching for retail (#897)

* bit too difficult for me for now, might go back later

* progress

* getmsg

* logic matching data isnt

* data section matches

* mathubcg 100%

* cleanup

* revert this change

* final cleanup and configure.py

* nevermind cleanup

* Equivalent onstead of matching

* removed padding

* cleanup code comments and a bit more

* matching

* cleanup

* matching for retail

* little bit of cleanup
This commit is contained in:
Zeclos
2025-12-24 05:20:37 +01:00
committed by GitHub
parent a0476593c9
commit 65611e09a4
6 changed files with 869 additions and 137 deletions
+1 -1
View File
@@ -1637,7 +1637,7 @@ config.libs = [
ActorRel(NonMatching, "d_a_npc_ds1"),
ActorRel(NonMatching, "d_a_npc_gk1"),
ActorRel(NonMatching, "d_a_npc_gp1"),
ActorRel(NonMatching, "d_a_npc_hi1"),
ActorRel(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d_a_npc_hi1"),
ActorRel(NonMatching, "d_a_npc_ho"),
ActorRel(NonMatching, "d_a_npc_hr"),
ActorRel(NonMatching, "d_a_npc_jb1"),
+96 -39
View File
@@ -2,27 +2,34 @@
#define D_A_NPC_HI1_H
#include "f_op/f_op_actor.h"
#include "d/d_npc.h"
class J3DNode;
class daNpc_Hi1_c : public fopAc_ac_c {
class daNpc_Hi1_c : public fopNpc_npc_c {
public:
typedef int (daNpc_Hi1_c::*ActionFunc)(void*);
struct anm_prm_c {
s8 field_0x0;
s8 field_0x1;
f32 field_0x4;
f32 field_0x8;
int field_0xC;
};
void _nodeCB_Head(J3DNode*, J3DModel*);
void _nodeCB_BackBone(J3DNode*, J3DModel*);
void init_HI1_0();
void createInit();
bool init_HI1_0();
bool createInit();
void play_animation();
void setMtx(bool);
void bckResID(int);
void btpResID(int);
void btkResID(int);
void setBtp(signed char, bool);
void setBtk(signed char, bool);
void init_texPttrnAnm(signed char, bool);
int bckResID(int);
int btpResID(int);
int btkResID(int);
bool setBtp(s8, bool);
bool setBtk(s8, bool);
bool init_texPttrnAnm(s8, bool);
void play_btp_anm();
void play_btk_anm();
void setAnm_anm(anm_prm_c*);
@@ -30,50 +37,100 @@ public:
void setAnm();
void chngAnmTag();
void ctrlAnmTag();
void chngAnmAtr(unsigned char);
void chngAnmAtr(u8);
void ctrlAnmAtr();
void setAnm_ATR();
void anmAtr(unsigned short);
void next_msgStatus(unsigned long*);
void getMsg_HI1_0();
void getMsg();
void anmAtr(u16);
u16 next_msgStatus(u32*);
u32 getMsg_HI1_0();
u32 getMsg();
void eventOrder();
void checkOrder();
void chk_talk();
void chk_parts_notMov();
void searchByID(fpc_ProcID, int*);
bool chk_talk();
bool chk_parts_notMov();
fopAc_ac_c* searchByID(fpc_ProcID, int*);
void lookBack();
void chkAttention();
bool chkAttention();
void setAttention(bool);
void decideType(int);
bool decideType(int);
void privateCut(int);
void endEvent();
void isEventEntry();
int isEventEntry();
void event_proc(int);
void set_action(int (daNpc_Hi1_c::*)(void*), void*);
bool set_action(ActionFunc, void*);
void setStt(signed char);
void wait_1();
void talk_1();
void wait_action1(void*);
void demo();
BOOL wait_1();
BOOL talk_1();
int wait_action1(void*);
u8 demo();
void shadowDraw();
BOOL _draw();
BOOL _execute();
BOOL _delete();
cPhs_State _create();
void bodyCreateHeap();
void CreateHeap();
BOOL bodyCreateHeap();
BOOL CreateHeap();
public:
/* Place member variables here */
};
class daNpc_Hi1_HIO_c {
public:
daNpc_Hi1_HIO_c();
public:
/* Place member variables here */
};
/* 0x6C4 */ request_of_phase_process_class mPhs;
/* 0x6CC */ s8 m_hed_jnt_num;
/* 0x6CD */ s8 m_bbone_jnt_num;
/* 0x6CE */ char mArcName[3];
/* 0x6D4 */ u32 mShadowId;
/* 0x6D8 */ mDoExt_btkAnm mBtkAnm;
/* 0x6EC */ u8 mBtkAnmFrame;
/* 0x6F0 */ mDoExt_btpAnm mBtpAnm;
/* 0x704 */ u8 mBtpAnmFrame;
/* 0x706 */ s16 mTimer1;
/* 0x708 */ ActionFunc mCurrActionFunc;
/* 0x714 */ u8 field_0x714[0x718 - 0x714];
/* 0x718 */ u32 mPId;
/* 0x71C */ u8 field_0x71C[0x724 - 0x71C];
/* 0x724 */ cXyz field_0x724;
/* 0x730 */ csXyz field_0x730;
/* 0x736 */ csXyz field_0x736;
/* 0x73C */ u8 field_0x73C[0x744 - 0x73C];
/* 0x744 */ cXyz field_0x744;
/* 0x750 */ cXyz field_0x750;
/* 0x75C */ u8 field_0x75C[0x768 - 0x75C];
/* 0x768 */ cXyz field_0x768;
/* 0x774 */ u8 field_0x774[0x780 - 0x774];
/* 0x780 */ f32 mFrame;
/* 0x784 */ u8 field_0x784[0x788 - 0x784];
/* 0x788 */ csXyz field_0x788;
/* 0x790 */ int field_0x790;
/* 0x794 */ s16 mEventIdx[6];
/* 0x7A0 */ s16 mTimer2;
/* 0x7A2 */ u8 field_0x7A2[0x7AA - 0x7A2];
/* 0x7AA */ s16 field_0x7AA;
/* 0x7AC */ s8 field_0x7AC;
/* 0x7AD */ u8 field_0x7AD;
/* 0x7AE */ u8 mItemNo;
/* 0x7AF */ u8 field_0x7AF[0x7B0 - 0x7AF];
/* 0x7B0 */ bool field_0x7B0;
/* 0x7B1 */ bool mStateIsComplaete;
/* 0x7B2 */ bool field_0x7B2;
/* 0x7B3 */ bool field_0x7B3;
/* 0x7B4 */ bool field_0x7B4;
/* 0x7B5 */ bool field_0x7B5;
/* 0x7B6 */ bool mHasAttention;
/* 0x7B7 */ bool field_0x7B7;
/* 0x7B8 */ bool field_0x7B8;
/* 0x7B9 */ bool field_0x7B9;
/* 0x7BA */ bool field_0x7BA;
/* 0x7BB */ s8 mActIdx;
/* 0x7BC */ u8 field_0x7BC;
/* 0x7BD */ u8 field_0x7BD;
/* 0x7BE */ s8 field_0x7BE;
/* 0x7BF */ s8 field_0x7BF;
/* 0x7C0 */ s8 field_0x7C0;
/* 0x7C1 */ s8 field_0x7C1;
/* 0x7C2 */ s8 field_0x7C2;
/* 0x7C3 */ s8 field_0x7C3;
/* 0x7C4 */ s8 field_0x7C4;
/* 0x7C5 */ s8 field_0x7C5;
/* 0x7C6 */ s8 field_0x7C6;
/* 0x7C7 */ s8 field_0x7C7;
/* 0x7C8 */ s8 field_0x7C8;
}; // Size: 0x7CC
#endif /* D_A_NPC_HI1_H */
+2 -2
View File
@@ -67,9 +67,9 @@ public:
~dDemo_actor_c();
fopAc_ac_c* getActor();
void setActor(fopAc_ac_c*);
void* getP_BtpData(const char*);
J3DAnmTexPattern* getP_BtpData(const char*);
void* getP_BrkData(const char*);
void* getP_BtkData(const char*);
J3DAnmTextureSRTKey* getP_BtkData(const char*);
f32 getPrm_Morf();
void JSGSetData(u32, const void*, u32);
void JSGSetTranslation(const Vec&);
+1
View File
@@ -285,5 +285,6 @@ void dNpc_calc_DisXZ_AngY(cXyz, cXyz, float*, short*);
bool dNpc_chkArasoi();
bool dNpc_chkLetterPassed();
bool dNpc_setAnm_2(mDoExt_McaMorf* pMorf, int loopMode, f32 morf, f32 speed, int animFileIdx, int soundFileIdx, const char* arcName);
bool dNpc_chkAttn(fopAc_ac_c* i_this, cXyz destPos, f32 param_3, f32 param_4, f32 param_5, bool param_6);
#endif /* D_NPC_H */
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -52,7 +52,7 @@ void dDemo_actor_c::setActor(fopAc_ac_c* ac) {
}
/* 80069434-80069550 .text getP_BtpData__13dDemo_actor_cFPCc */
void* dDemo_actor_c::getP_BtpData(const char* name) {
J3DAnmTexPattern* dDemo_actor_c::getP_BtpData(const char* name) {
/* Nonmatching */
if (!checkEnable(ENABLE_UNK_e))
return NULL;
@@ -64,7 +64,7 @@ void* dDemo_actor_c::getP_BrkData(const char*) {
}
/* 800695E8-8006969C .text getP_BtkData__13dDemo_actor_cFPCc */
void* dDemo_actor_c::getP_BtkData(const char*) {
J3DAnmTextureSRTKey* dDemo_actor_c::getP_BtkData(const char*) {
/* Nonmatching */
}