mirror of
https://github.com/zeldaret/tww.git
synced 2026-07-07 05:14:58 -04:00
d_a_npc_mt 100% for GZLE01 (#1102)
* d_a_npc_mt 100% for GZLE01 * implemented dPb_erasePicture and added some relevant inlines * fixed existing references to mSelectPicture * PR changes made
This commit is contained in:
+1
-1
@@ -1684,7 +1684,7 @@ config.libs = [
|
||||
ActorRel(Matching, "d_a_npc_ls1"),
|
||||
ActorRel(NonMatching, "d_a_npc_mk"),
|
||||
ActorRel(NonMatching, "d_a_npc_mn"),
|
||||
ActorRel(NonMatching, "d_a_npc_mt"),
|
||||
ActorRel(MatchingFor("GZLE01"), "d_a_npc_mt"),
|
||||
ActorRel(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d_a_npc_nz"),
|
||||
ActorRel(NonMatching, "d_a_npc_ob1"),
|
||||
ActorRel(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d_a_npc_os"),
|
||||
|
||||
@@ -8,9 +8,45 @@
|
||||
#include "d/d_npc.h"
|
||||
|
||||
struct sMtAnmDat {
|
||||
|
||||
/* 0x00 */ u8 field_0x00;
|
||||
/* 0x01 */ u8 field_0x01;
|
||||
/* 0x02 */ u8 field_0x02;
|
||||
};
|
||||
|
||||
struct NpcDatStruct {
|
||||
/* 0x00 */ s16 mMax_head_x;
|
||||
/* 0x02 */ s16 mMax_head_y;
|
||||
/* 0x04 */ s16 mMax_backbone_x;
|
||||
/* 0x06 */ s16 mMax_backbone_y;
|
||||
/* 0x08 */ s16 mMin_head_x;
|
||||
/* 0x0A */ s16 mMin_head_y;
|
||||
/* 0x0C */ s16 mMin_backbone_x;
|
||||
/* 0x0E */ s16 mMin_backbone_y;
|
||||
/* 0x10 */ s16 mMax_turn_step;
|
||||
/* 0x12 */ s16 field_0x12;
|
||||
/* 0x14 */ f32 field_0x14;
|
||||
/* 0x18 */ f32 field_0x18;
|
||||
/* 0x1C */ f32 field_0x1C;
|
||||
/* 0x20 */ f32 field_0x20;
|
||||
/* 0x24 */ f32 field_0x24;
|
||||
/* 0x28 */ s16 field_0x28;
|
||||
/* 0x2A */ s16 field_0x2A;
|
||||
/* 0x2C */ s16 field_0x2C;
|
||||
/* 0x2E */ s16 field_0x2E;
|
||||
/* 0x30 */ f32 field_0x30;
|
||||
/* 0x34 */ f32 field_0x34;
|
||||
/* 0x38 */ f32 field_0x38;
|
||||
/* 0x3C */ s16 field_0x3C;
|
||||
/* 0x3E */ s16 field_0x3E;
|
||||
/* 0x40 */ s16 field_0x40;
|
||||
/* 0x42 */ s16 field_0x42;
|
||||
/* 0x44 */ s16 field_0x44;
|
||||
/* 0x46 */ s16 field_0x46;
|
||||
/* 0x48 */ s16 field_0x48;
|
||||
/* 0x4A */ s8 field_0x4A;
|
||||
/* 0x4B */ s8 field_0x4B;
|
||||
}; // Size: 0x4c
|
||||
|
||||
class daNpcMt_c : public fopNpc_npc_c {
|
||||
public:
|
||||
void attnOff() {
|
||||
@@ -25,73 +61,99 @@ public:
|
||||
|
||||
daNpcMt_c();
|
||||
cPhs_State _create();
|
||||
void createHeap();
|
||||
void createInit();
|
||||
BOOL createHeap();
|
||||
cPhs_State createInit();
|
||||
bool _delete();
|
||||
bool _draw();
|
||||
bool _execute();
|
||||
void executeCommon();
|
||||
BOOL executeCommon();
|
||||
void executeSetMode(u8);
|
||||
void executeWaitInit();
|
||||
s32 executeWaitInit();
|
||||
void executeWait();
|
||||
void executeTalkInit();
|
||||
s32 executeTalkInit();
|
||||
void executeTalk();
|
||||
void checkOrder();
|
||||
void eventOrder();
|
||||
void eventMove();
|
||||
void privateCut();
|
||||
void eventMesSetInit(int);
|
||||
void eventMesSet();
|
||||
bool eventMesSet();
|
||||
void eventGetItemInit();
|
||||
void talk2(int);
|
||||
u16 talk2(int);
|
||||
u16 next_msgStatus(u32*);
|
||||
u32 getMsg();
|
||||
void chkMsg();
|
||||
void setMessage(u32);
|
||||
void setAnmFromMsgTag();
|
||||
void getPrmNpcNo();
|
||||
u8 getPrmNpcNo();
|
||||
void setMtx();
|
||||
void chkAttention();
|
||||
void lookBack();
|
||||
void initTexPatternAnm(bool);
|
||||
BOOL initTexPatternAnm(bool);
|
||||
void playTexPatternAnm();
|
||||
void playAnm();
|
||||
void setAnm(u8, int, f32);
|
||||
void setAnmTbl(sMtAnmDat*);
|
||||
void XyCheckCB(int);
|
||||
bool setAnmTbl(sMtAnmDat*);
|
||||
s16 XyCheckCB(int);
|
||||
void setCollision(dCcD_Cyl*, cXyz, f32, f32);
|
||||
void chkEndEvent();
|
||||
bool isFigureGet(u8);
|
||||
BOOL chkEndEvent();
|
||||
u8 isFigureGet(u8);
|
||||
void setFigure(u8);
|
||||
int getFigureMakeNum();
|
||||
bool isComp();
|
||||
void changePhotoNo(u8);
|
||||
BOOL isComp();
|
||||
u8 changePhotoNo(u8);
|
||||
|
||||
static const char m_arcname[6];
|
||||
|
||||
public:
|
||||
typedef s32(daNpcMt_c::*InitFunc_t)();
|
||||
typedef void(daNpcMt_c::*MoveFunc_t)();
|
||||
|
||||
/* 0x6C4 */ request_of_phase_process_class mPhsArcname;
|
||||
/* 0x6CC */ request_of_phase_process_class mPhs;
|
||||
/* 0x6D4 */ u8 m6D4[0x6D8 - 0x6D4];
|
||||
/* 0x6D4 */ J3DAnmTexPattern* m_head_tex_pattern;
|
||||
/* 0x6D8 */ mDoExt_btpAnm mBtpAnm;
|
||||
/* 0x6EC */ u8 m6EC[0x710 - 0x6EC];
|
||||
/* 0x6EC */ s32 mShadowId;
|
||||
/* 0x6F0 */ u32 m6F0;
|
||||
/* 0x6F4 */ u8 m6F4[0x704 - 0x6F4];
|
||||
/* 0x704 */ cXyz mLookAtPos;
|
||||
/* 0x710 */ sMtAnmDat* mpAnmDat;
|
||||
/* 0x714 */ int* mpMsgTbl;
|
||||
/* 0x718 */ u8 m718[0x71C - 0x718];
|
||||
/* 0x714 */ u32* mpMsgTbl;
|
||||
/* 0x718 */ f32 m718;
|
||||
/* 0x71C */ f32 m71C;
|
||||
/* 0x720 */ u8 m720[0x72A - 0x720];
|
||||
/* 0x720 */ f32 m720;
|
||||
/* 0x724 */ s32 mItemNo;
|
||||
/* 0x728 */ bool m728;
|
||||
/* 0x729 */ u8 m729;
|
||||
/* 0x72A */ s16 mMtGetItemEventIdx;
|
||||
/* 0x72C */ u8 m72C[0x732 - 0x72C];
|
||||
/* 0x72C */ s16 m72C;
|
||||
/* 0x72E */ s16 m72E;
|
||||
/* 0x730 */ s16 m730;
|
||||
/* 0x732 */ s16 m732;
|
||||
/* 0x734 */ u8 m734[0x742 - 0x734];
|
||||
/* 0x734 */ u16 m734;
|
||||
/* 0x736 */ s16 m736;
|
||||
/* 0x738 */ u8 m738[0x73A - 0x738];
|
||||
/* 0x73A */ s16 mTimer;
|
||||
/* 0x73C */ s16 m73C;
|
||||
/* 0x73E */ s16 m73E;
|
||||
/* 0x740 */ s16 m740;
|
||||
/* 0x742 */ u8 m742;
|
||||
/* 0x743 */ u8 m743[0x747 - 0x743];
|
||||
/* 0x743 */ u8 m743;
|
||||
/* 0x744 */ u8 m744;
|
||||
/* 0x745 */ u8 mFrame;
|
||||
/* 0x746 */ u8 m746;
|
||||
/* 0x747 */ u8 m747;
|
||||
/* 0x748 */ u8 mPrmNpcNo;
|
||||
/* 0x749 */ u8 m749[0x74A - 0x749];
|
||||
/* 0x749 */ u8 m749;
|
||||
/* 0x74A */ u8 m74A;
|
||||
/* 0x74B */ u8 m74B[0x750 - 0x74B];
|
||||
/* 0x74B */ u8 mAnmFlag;
|
||||
/* 0x74C */ s8 m74C;
|
||||
/* 0x74D */ s8 m74D;
|
||||
/* 0x74E */ u8 m74E;
|
||||
/* 0x74F */ s8 m74F;
|
||||
/* 0x750 */ u8 m750;
|
||||
/* 0x751 */ u8 m751;
|
||||
/* 0x752 */ u8 m752[0x753 - 0x752];
|
||||
/* 0x752 */ u8 m752;
|
||||
/* 0x753 */ bool m753;
|
||||
/* 0x754 */ u8 m754[0x758 - 0x754];
|
||||
};
|
||||
|
||||
@@ -619,6 +619,9 @@ public:
|
||||
mPictureFlag &= ~mask;
|
||||
}
|
||||
u8 getPictureFormat() { return mPictureFormat; }
|
||||
void setPictureFormat(u8 i) { mPictureFormat = i; }
|
||||
u8 getSelectPicture() { return mSelectPicture; }
|
||||
void setSelectPicture(u8 i) { mSelectPicture = i; }
|
||||
u8 getPictureResult() { return mPictureResult; }
|
||||
u8 getPictureResultDetail() { return mPictureResultDetail; }
|
||||
void setBossBattleData(JKRAramBlock* aramBlock, int i) { mBossBattleData[i] = aramBlock; }
|
||||
@@ -825,7 +828,7 @@ public:
|
||||
/* 0x495E */ u8 mPictureStatus;
|
||||
/* 0x495F */ u8 field_0x495f;
|
||||
/* 0x4960 */ u8 mPictureFormat;
|
||||
/* 0x4961 */ u8 field_0x4961;
|
||||
/* 0x4961 */ u8 mSelectPicture;
|
||||
/* 0x4962 */ u8 mHeapLockFlag;
|
||||
#if VERSION > VERSION_DEMO
|
||||
/* 0x4963 */ u8 mNowVibration;
|
||||
@@ -3192,6 +3195,18 @@ inline u8 dComIfGp_getPictureFormat() {
|
||||
return g_dComIfG_gameInfo.play.getPictureFormat();
|
||||
}
|
||||
|
||||
inline void dComIfGp_setPictureFormat(u8 i) {
|
||||
g_dComIfG_gameInfo.play.setPictureFormat(i);
|
||||
}
|
||||
|
||||
inline u8 dComIfGp_getSelectPicture() {
|
||||
return g_dComIfG_gameInfo.play.getSelectPicture();
|
||||
}
|
||||
|
||||
inline void dComIfGp_setSelectPicture(u8 i) {
|
||||
g_dComIfG_gameInfo.play.setSelectPicture(i);
|
||||
}
|
||||
|
||||
inline u8 dComIfGp_getPictureResult() {
|
||||
return g_dComIfG_gameInfo.play.getPictureResult();
|
||||
}
|
||||
|
||||
+1
-1
@@ -172,7 +172,7 @@ enum {
|
||||
/* 0xA4 */ DSNAP_TYPE_UNKA4,
|
||||
/* 0xA5 */ DSNAP_TYPE_UNKA5,
|
||||
/* 0xA6 */ DSNAP_TYPE_UNKA6,
|
||||
/* 0xA7 */ DSNAP_TYPE_UNKA7,
|
||||
/* 0xA7 */ DSNAP_TYPE_NPC_MT,
|
||||
/* 0xA8 */ DSNAP_TYPE_UNKA8,
|
||||
/* 0xA9 */ DSNAP_TYPE_UNKA9,
|
||||
/* 0xAA */ DSNAP_TYPE_BK,
|
||||
|
||||
+1172
-75
File diff suppressed because it is too large
Load Diff
@@ -159,7 +159,7 @@ void dComIfG_play_c::itemInit() {
|
||||
mPictureStatus = 0;
|
||||
field_0x495f = 0;
|
||||
mPictureFormat = 0;
|
||||
field_0x4961 = 0;
|
||||
mSelectPicture = 0;
|
||||
mHeapLockFlag = 0;
|
||||
field_0x4965 = 0;
|
||||
|
||||
|
||||
@@ -6,10 +6,17 @@
|
||||
#include "d/dolzel.h" // IWYU pragma: keep
|
||||
#include "d/d_picture_box.h"
|
||||
#include "f_op/f_op_msg.h"
|
||||
#include "d/d_com_inf_game.h"
|
||||
|
||||
/* 802258C8-80225954 .text dPb_erasePicture__Fv */
|
||||
void dPb_erasePicture() {
|
||||
/* Nonmatching */
|
||||
u8 selectPicture = dComIfGp_getSelectPicture();
|
||||
u8 evReg = dComIfGs_getEventReg(dSv_event_flag_c::UNK_89FF);
|
||||
if (selectPicture < 3) {
|
||||
dComIfGs_setEventReg(dSv_event_flag_c::UNK_89FF, evReg | (1 << (selectPicture)));
|
||||
dComIfGp_setItemPictureNumCount(-1);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/* 80225954-80225E88 .text screenSet__9dJle_Pb_cFv */
|
||||
|
||||
Reference in New Issue
Block a user