d_a_npc_bs1 Work (#613)

* d_a_npc_bs1 Work

* d_a_npc_bs1 Removed redeclaration

* d_a_npc_bs1 PR Feedback
This commit is contained in:
Crain
2024-04-02 12:13:50 -06:00
committed by GitHub
parent 8ef6dd4285
commit 7303d2997a
4 changed files with 1136 additions and 98 deletions
+133 -42
View File
@@ -1,101 +1,192 @@
#ifndef D_A_NPC_BS1_H
#define D_A_NPC_BS1_H
#include "f_op/f_op_actor.h"
#include "SSystem/SComponent/c_phase.h"
#include "d/d_npc.h"
#include "d/d_shop.h"
#include "d/d_lib.h"
#include "f_op/f_op_actor.h"
#include "m_Do/m_Do_hostIO.h"
class daNpc_Bs1_c : public fopAc_ac_c {
public:
void getBackboneJntNum() {}
void getBackbone_x() {}
void getBackbone_y() {}
enum Animation {
ANM_UNK_0 = 0,
ANM_UNK_1 = 1,
ANM_UNK_2 = 2,
ANM_UNK_3 = 3,
ANM_UNK_4 = 4,
ANM_UNK_5 = 5,
ANM_UNK_6 = 6,
ANM_UNK_7 = 7,
ANM_UNK_8 = 8,
ANM_UNK_9 = 9,
ANM_UNK_A = 0xA,
ANM_UNK_B = 0xB,
};
daNpc_Bs1_c();
int getBackboneJntNum() { return m_backbone_jnt_num; }
int getBackbone_x() { return mJntCtrl.getBackbone_x(); }
int getBackbone_y() { return mJntCtrl.getBackbone_y(); }
void getBuyItem() {}
void getBuyItemMax() {}
void getHeadJntNum() {}
void getHead_x() {}
void getHead_y() {}
int getHeadJntNum() { return m_head_jnt_num; }
int getHead_x() { return mJntCtrl.getHead_x(); }
int getHead_y() { return mJntCtrl.getHead_y(); }
void getPayRupee() {}
void incAttnSetCount() {}
void setAction(int (daNpc_Bs1_c::*)(void*), void*) {}
void setAttentionBasePos(cXyz) {}
void setAttentionBasePos(cXyz value) { m718 = value;}
void setBuyItem(unsigned char) {}
void setBuyItemMax(unsigned char) {}
void setEyePos(cXyz) {}
void setEyePos(cXyz other) { eyePos = other; }
void setPayRupee(short) {}
void XyEventCB(int);
void initTexPatternAnm(bool);
s16 XyEventCB(int);
BOOL initTexPatternAnm(bool);
void playTexPatternAnm();
void setAnm(signed char);
void setTexAnm(signed char);
void setAnmFromMsgTag();
void chkAttention(cXyz, short);
BOOL chkAttention(cXyz, short);
void eventOrder();
void checkOrder();
void next_msgStatus(unsigned long*);
u16 next_msgStatus(unsigned long*);
void getMsg();
void setCollision();
void talkInit();
void shopMsgCheck(unsigned long);
u32 shopMsgCheck(unsigned long);
void getDefaultMsg();
void shopStickMoveMsgCheck(unsigned long);
void checkBeastItemSellMsg(unsigned long);
BOOL checkBeastItemSellMsg(u32);
void normal_talk();
void shop_talk();
void talk();
u16 talk();
void createShopList();
void isSellBomb();
void CreateInit();
BOOL isSellBomb();
BOOL CreateInit();
void setAttention(bool);
void lookBack();
void wait01();
void talk01();
void wait_action(void*);
void getdemo_action(void*);
void evn_talk_init(int);
void evn_continue_talk_init(int);
void evn_talk();
void evn_jnt_lock_init(int);
void evn_wait_init(int);
void evn_wait();
void evn_set_anm_init(int);
void evn_praise_init();
void evn_mantan_init();
void privateCut();
void event_action(void*);
BOOL wait01();
BOOL talk01();
BOOL wait_action(void*);
BOOL getdemo_action(void*);
BOOL evn_talk_init(int);
BOOL evn_continue_talk_init(int);
BOOL evn_talk();
BOOL evn_jnt_lock_init(int);
BOOL evn_wait_init(int);
BOOL evn_wait();
BOOL evn_set_anm_init(int);
BOOL evn_praise_init();
BOOL evn_mantan_init();
BOOL privateCut();
BOOL event_action(void*);
BOOL _draw();
BOOL _execute();
BOOL _delete();
s32 _create();
void CreateHeap();
BOOL CreateHeap();
typedef BOOL (daNpc_Bs1_c::*ActionFunc)(void*);
public:
/* 0x290 */ u8 m290[0x748 - 0x290];
/* 0x290 */ request_of_phase_process_class mphs;
/* 0x298 */ mDoExt_McaMorf* mpMorf;
/* 0x29C */ u32 m29C;
/* 0x2A0 */ J3DModel* mpModelArr[3];
/* 0x2AC */ J3DAnmTexPattern* m_head_tex_pattern;
/* 0x2B0 */ mDoExt_btpAnm mBtpAnm;
/* 0x2C4 */ u8 mFrame;
/* 0x2C5 */ u8 m2C5;
/* 0x2C6 */ s16 m2C6;
/* 0x2C8 */ J3DModel* mpModel;
/* 0x2CC */ dBgS_Acch mAcch;
/* 0x490 */ dBgS_AcchCir mAcchCir;
/* 0x4D0 */ cXyz m4D0;
/* 0x4D0 */ u8 m2CC[0x63C - 0x4DC];
/* 0x63C */ s8 m_head_jnt_num;
/* 0x63D */ s8 m_backbone_jnt_num;
/* 0x63E */ s16 m63E;
/* 0x640 */ char* m640;
/* 0x644 */ u8 m644[0x6AC - 0x644];
/* 0x6AC */ dNpc_JntCtrl_c mJntCtrl;
/* 0x6E0 */ STControl mStickControl;
/* 0x708 */ u8 m708[0x718 - 0x708];
/* 0x718 */ cXyz m718;
/* 0x724 */ s16 m724;
/* 0x726 */ u16 m726;
/* 0x728 */ u8 m728[0x72E - 0x728];
/* 0x72E */ u8 m72E;
/* 0x72F */ u8 m72F;
/* 0x730 */ u8 m730;
/* 0x731 */ u8 m731;
/* 0x732 */ u8 m732;
/* 0x733 */ u8 m733;
/* 0x734 */ f32 m734;
/* 0x738 */ u32 m738;
/* 0x73C */ u8 m73C[0x740 - 0x73C];
/* 0x740 */ u32 m740;
/* 0x744 */ u32 m744;
/* 0x748 */ cXyz mItemPosOffsets[3];
/* 0x76C */ u8 m76C;
/* 0x76D */ u8 m76D[0x7D4 - 0x76D];
/* 0x76D */ u8 m76D[0x770 - 0x76D];
/* 0x770 */ ActionFunc m770;
/* 0x77C */ ShopCam_action_c mShopCamAction;
/* 0x7D4 */ ShopItems_c mShopItems;
/* 0x818 */ u8 m818[0x81C - 0x818];
/* 0x81C */ __shop_items_set_data* mpItemSetList[4];
/* 0x82C */ u8 m82C[0x833 - 0x82C];
/* 0x818 */ ShopCursor_c* mpShopCursor;
/* 0x81C */ __shop_items_set_data* mpItemSetList[3];
/* 0x828 */ s8 m828;
/* 0x829 */ s8 m829;
/* 0x82A */ s8 m82A;
/* 0x82B */ s8 m82B;
/* 0x82C */ s16 m82C;
/* 0x82E */ s16 m82E;
/* 0x830 */ s8 m830; // Unknown usage
/* 0x831 */ u8 m831; // Unknown usage
/* 0x832 */ s8 mLHioChildIdx; // Used in createShopList
/* 0x833 */ u8 mShopIndex;
/* 0x834 */ u8 m834[0x844 - 0x834];
/* 0x834 */ s8 m834;
/* 0x835 */ u8 m835;
/* 0x836 */ u8 m836[0x83A - 0x836];
/* 0x83A */ s16 m83A;
/* 0x83C */ u8 m83C[0x844 - 0x83C];
};
class daNpc_Bs1_childHIO_c {
public:
daNpc_Bs1_childHIO_c();
virtual ~daNpc_Bs1_childHIO_c();
public:
/* Place member variables here */
/* 0x000 */ // this.__vt
/* 0x004 */ dNpc_HIO_c mHIO;
/* 0x02C */ u8 m2C; // Isolating at u8 based on stb in Constructor
/* 0x02D */ u8 m2D[0x3];
/* 0x030 */ f32 m30;
/* 0x034 */ f32 m34;
/* 0x038 */ f32 m38;
/* 0x03C */ f32 m3C;
/* 0x040 */ f32 m40;
};
class daNpc_Bs1_HIO_c {
class daNpc_Bs1_HIO_c : public JORReflexible {
public:
daNpc_Bs1_HIO_c();
virtual ~daNpc_Bs1_HIO_c();
public:
/* Place member variables here */
/* 0x000 */ // this.__vt
/* 0x004 */ s8 mChildId;
/* 0x008 */ int m8;
/* 0x00C */ daNpc_Bs1_childHIO_c mpChildArray[2];
};
STATIC_ASSERT(sizeof(daNpc_Bs1_c) == 0x844);
STATIC_ASSERT(sizeof(daNpc_Bs1_HIO_c) == 0x94);
STATIC_ASSERT(sizeof(daNpc_Bs1_childHIO_c) == 0x44);
#endif /* D_A_NPC_BS1_H */
+11
View File
@@ -376,6 +376,10 @@ public:
void setRStatus(u8 status) { field_0x492d = status; }
u8 getRStatusForce() { return field_0x4930; }
void setRStatusForce(u8 status) { field_0x4930 = status; }
u8 getAStatusForce() { return field_0x4931; }
void setAStatusForce(u8 value) { field_0x4931 = value; }
u8 getDoStatusForce() { return field_0x4932; }
void setDoStatusForce(u8 value) { field_0x4932 = value; }
u8 getPictureStatus() { return mPictureStatus; }
void setPictureStatusOn() { mPictureStatus = 2; }
@@ -2222,6 +2226,13 @@ inline void dComIfGp_clearPlayerStatus1(int param_0, u32 flag) {
g_dComIfG_gameInfo.play.clearPlayerStatus(param_0, 1, flag);
}
inline void dComIfGp_setDoStatusForce(u8 value) {
g_dComIfG_gameInfo.play.setDoStatusForce(value);
}
inline void dComIfGp_setAStatusForce(u8 value) {
g_dComIfG_gameInfo.play.setAStatusForce(value);
}
/**
* Returns which item is on a specific button.
* @param i_btnIdx The index of the button. 0 for X, 1 for Y, 2 for Z.
+10 -1
View File
@@ -10,6 +10,7 @@ class STControl;
typedef u32 (*dShop_DefaultMsgCallback)(void*);
enum ShopItems_c__BuyConditions {
Shop_BuyCond_MUST_OWN_ITEM_e = 0x01,
Shop_BuyCond_MUST_NOT_OWN_ITEM_e = 0x02,
@@ -34,6 +35,13 @@ struct __shop_items_set_data {
/* 0x10 */ int mCount;
};
extern __shop_items_set_data shopItems_setData_Bomb30Bs2;
extern __shop_items_set_data shopItems_setData_arrow30Bs2;
extern __shop_items_set_data shopItems_setData_red_bottleBs2;
extern __shop_items_set_data shopItems_setData_emptybottle;
extern __shop_items_set_data shopItems_setData_kakera_heart;
extern __shop_items_set_data shopItems_setData_map;
struct ShopItems_c__select_list_data {
/* 0x00 */ s16 mLeftIdx;
/* 0x02 */ s16 mRightIdx;
@@ -80,7 +88,8 @@ public:
/* 0x34 */ cXyz mOrigCenter;
/* 0x40 */ cXyz mOrigEye;
/* 0x4C */ f32 mOrigFovy;
/* 0x50 */ u8 m50[0x54 - 0x50];
/* 0x50 */ u16 m50; // Per daNpc_Bs1_c::constructor
/* 0x52 */ u16 m52;
/* 0x54 */ s16 m54;
/* 0x56 */ s16 mCamDataIdx;
};
File diff suppressed because it is too large Load Diff