mirror of
https://github.com/zeldaret/tww.git
synced 2026-08-10 03:05:19 -04:00
Fully match d_a_npc_bmsw and mark equivalent (#789)
* Match up d_a_npc_bmsw to 98% * Remove old nonmatching comments * Match MailCreateInit by using a static cast * Match Throw and daNpc_Bmsw_getGameEndMsg * Match CreateInit using demo for ref * Fix inline for dComIfG_TimerStart * Match shiwake_game_action * Match getNextNo * Mark Equivalent
This commit is contained in:
+1
-1
@@ -1588,7 +1588,7 @@ config.libs = [
|
||||
ActorRel(NonMatching, "d_a_npc_bm1"),
|
||||
ActorRel(NonMatching, "d_a_npc_bmcon1"),
|
||||
ActorRel(NonMatching, "d_a_npc_bms1"),
|
||||
ActorRel(NonMatching, "d_a_npc_bmsw"),
|
||||
ActorRel(Equivalent, "d_a_npc_bmsw", extra_cflags=['-sym off']),
|
||||
ActorRel(NonMatching, "d_a_npc_bs1"), # regalloc, weak func order
|
||||
ActorRel(NonMatching, "d_a_npc_btsw"),
|
||||
ActorRel(Equivalent, "d_a_npc_btsw2", extra_cflags=['-pragma "nosyminline on"']), # weak func order
|
||||
|
||||
+216
-56
@@ -1,57 +1,26 @@
|
||||
#ifndef D_A_NPC_BMSW_H
|
||||
#define D_A_NPC_BMSW_H
|
||||
|
||||
#include "d/d_lib.h"
|
||||
#include "f_op/f_op_actor.h"
|
||||
#include "d/d_npc.h"
|
||||
#include "m_Do/m_Do_hostIO.h"
|
||||
|
||||
class ShopCursor_c;
|
||||
|
||||
class daNpc_Bmsw_c : public fopAc_ac_c {
|
||||
public:
|
||||
void getArmLMtx() {}
|
||||
void getArmRMtx() {}
|
||||
void getAttentionBasePos() {}
|
||||
void setAction(int (daNpc_Bmsw_c::*)(void*), void*) {}
|
||||
|
||||
void initTexPatternAnm(bool);
|
||||
void playTexPatternAnm();
|
||||
void setAnm(signed char);
|
||||
void chkAttention(cXyz, short);
|
||||
void eventOrder();
|
||||
void checkOrder();
|
||||
void next_msgStatus(unsigned long*);
|
||||
void getMsg();
|
||||
void anmAtr(unsigned short);
|
||||
void CreateInit();
|
||||
void set_mtx();
|
||||
void setAttention();
|
||||
void lookBack();
|
||||
void wait01();
|
||||
void talk01();
|
||||
void wait_action(void*);
|
||||
void checkNextMailThrowOK();
|
||||
void setGameGetRupee(short);
|
||||
void TimerCountDown();
|
||||
void shiwake_game_action(void*);
|
||||
BOOL _draw();
|
||||
BOOL _execute();
|
||||
BOOL _delete();
|
||||
cPhs_State _create();
|
||||
void CreateHeap();
|
||||
|
||||
public:
|
||||
/* 0x6C4 */ u8 m6C4[0x968 - 0x6C4];
|
||||
/* 0x968 */ ShopCursor_c* mpShopCursor;
|
||||
/* 0x96C */ u8 m96C[0x9E4 - 0x96C];
|
||||
};
|
||||
|
||||
class SwMail_c {
|
||||
public:
|
||||
void CheckProc(void (SwMail_c::*)()) {}
|
||||
void SetProc(void (SwMail_c::*)()) {}
|
||||
typedef void (SwMail_c::*SwMail_Func)();
|
||||
|
||||
void MailCreateInit(cXyz*, cXyz*);
|
||||
void getNextNo(unsigned char);
|
||||
BOOL CheckProc(SwMail_Func func) {
|
||||
return mFunc == func;
|
||||
}
|
||||
void SetProc(SwMail_Func func) {
|
||||
mFunc = func;
|
||||
}
|
||||
|
||||
BOOL MailCreateInit(cXyz*, cXyz*);
|
||||
static u8 getNextNo(unsigned char);
|
||||
void init();
|
||||
void set_mtx();
|
||||
void set_mtx_throw();
|
||||
@@ -69,30 +38,221 @@ public:
|
||||
void move();
|
||||
void draw(dKy_tevstr_c*);
|
||||
|
||||
static u8 m_same_count;
|
||||
static u8 m_no_buff;
|
||||
|
||||
public:
|
||||
/* Place member variables here */
|
||||
};
|
||||
/* 0x00 */ SwMail_Func mFunc;
|
||||
/* 0x0C */ J3DModel* mpModel;
|
||||
/* 0x10 */ mDoExt_btpAnm field_0x10;
|
||||
/* 0x24 */ cXyz field_0x24;
|
||||
/* 0x30 */ cXyz field_0x30;
|
||||
/* 0x3C */ cXyz field_0x3C;
|
||||
/* 0x48 */ csXyz field_0x48;
|
||||
/* 0x4E */ csXyz field_0x4E;
|
||||
/* 0x54 */ u8 field_0x54;
|
||||
/* 0x55 */ u8 field_0x55;
|
||||
/* 0x56 */ u8 field_0x56;
|
||||
/* 0x57 */ u8 field_0x57[0x58 - 0x57];
|
||||
/* 0x58 */ cXyz* field_0x58;
|
||||
/* 0x5C */ cXyz* field_0x5C;
|
||||
}; // Size: 0x60
|
||||
|
||||
class SwCam_c {
|
||||
public:
|
||||
void ActiveOff() {}
|
||||
void ActiveOn() {}
|
||||
void getCenterP() {}
|
||||
void getEyeP() {}
|
||||
void setAimIdx(signed char, signed char) {}
|
||||
SwCam_c() {
|
||||
field_0x1E = 0;
|
||||
field_0x1C = 0;
|
||||
field_0x1D = 0;
|
||||
field_0x00 = SwCam_c::camera_center_data[0][1];
|
||||
field_0x0C = camera_eye;
|
||||
field_0x18 = 58.0f;
|
||||
}
|
||||
|
||||
void ActiveOff() {
|
||||
field_0x1E = 0;
|
||||
}
|
||||
void ActiveOn() {
|
||||
field_0x1E = 1;
|
||||
|
||||
field_0x00 = camera_center_data[0][1];
|
||||
field_0x0C = camera_eye;
|
||||
field_0x18 = 58.0f;
|
||||
|
||||
setAimIdx(0, 0);
|
||||
}
|
||||
cXyz* getCenterP() {
|
||||
return &field_0x0C;
|
||||
}
|
||||
cXyz* getEyeP() {
|
||||
return &field_0x00;
|
||||
}
|
||||
void setAimIdx(s8 row, s8 col) {
|
||||
field_0x1C = row;
|
||||
field_0x1D = col;
|
||||
}
|
||||
|
||||
void Move();
|
||||
|
||||
public:
|
||||
/* Place member variables here */
|
||||
};
|
||||
static cXyz camera_center_data[2][3];
|
||||
static cXyz camera_eye;
|
||||
|
||||
class daNpc_Bmsw_HIO_c {
|
||||
public:
|
||||
/* 0x00 */ cXyz field_0x00;
|
||||
/* 0x0C */ cXyz field_0x0C;
|
||||
/* 0x18 */ f32 field_0x18;
|
||||
/* 0x1C */ s8 field_0x1C;
|
||||
/* 0x1D */ s8 field_0x1D;
|
||||
/* 0x1E */ u8 field_0x1E;
|
||||
}; // Size: 0x1F
|
||||
|
||||
class daNpc_Bmsw_c : public fopNpc_npc_c {
|
||||
public:
|
||||
typedef BOOL (daNpc_Bmsw_c::*ActionFunc)(void*);
|
||||
|
||||
enum ActionStatus {
|
||||
ACTION_STARTING = 0,
|
||||
ACTION_ONGOING = 1,
|
||||
ACTION_UNK_2 = 2,
|
||||
ACTION_ENDING = -1,
|
||||
};
|
||||
|
||||
|
||||
Mtx& getArmLMtx() {
|
||||
return field_0x794;
|
||||
}
|
||||
Mtx& getArmRMtx() {
|
||||
return field_0x7C4;
|
||||
}
|
||||
cXyz& getAttentionBasePos() {
|
||||
return mAttPos;
|
||||
}
|
||||
void setAction(ActionFunc func, void* arg) {
|
||||
if (mCurrActionFunc != func) {
|
||||
if (mCurrActionFunc) {
|
||||
mActionStatus = ACTION_ENDING;
|
||||
(this->*mCurrActionFunc)(arg);
|
||||
}
|
||||
mCurrActionFunc = func;
|
||||
mActionStatus = ACTION_STARTING;
|
||||
(this->*mCurrActionFunc)(arg);
|
||||
}
|
||||
}
|
||||
|
||||
BOOL initTexPatternAnm(bool);
|
||||
void playTexPatternAnm();
|
||||
void setAnm(signed char);
|
||||
bool chkAttention(cXyz, short);
|
||||
void eventOrder();
|
||||
void checkOrder();
|
||||
u16 next_msgStatus(unsigned long*);
|
||||
u32 getMsg();
|
||||
void anmAtr(unsigned short);
|
||||
BOOL CreateInit();
|
||||
void set_mtx();
|
||||
void setAttention();
|
||||
void lookBack();
|
||||
void wait01();
|
||||
void talk01();
|
||||
BOOL wait_action(void*);
|
||||
BOOL checkNextMailThrowOK();
|
||||
void setGameGetRupee(short);
|
||||
void TimerCountDown();
|
||||
BOOL shiwake_game_action(void*);
|
||||
BOOL _draw();
|
||||
BOOL _execute();
|
||||
BOOL _delete();
|
||||
cPhs_State _create();
|
||||
BOOL CreateHeap();
|
||||
|
||||
public:
|
||||
/* 0x6C4 */ s8 m_ArmR;
|
||||
/* 0x6C5 */ s8 m_ArmL;
|
||||
/* 0x6C6 */ s8 m_handR;
|
||||
/* 0x6C7 */ s8 m_handL;
|
||||
/* 0x6C8 */ s8 m_body_ArmR;
|
||||
/* 0x6C9 */ s8 m_body_ArmL;
|
||||
/* 0x6CA */ s8 m_neck_jnt_num;
|
||||
/* 0x6CB */ u8 field_0x6CB[0x6CC - 0x6CB];
|
||||
/* 0x6CC */ request_of_phase_process_class mPhs;
|
||||
/* 0x6D4 */ J3DModel* field_0x6D4;
|
||||
/* 0x6D8 */ J3DModel* field_0x6D8;
|
||||
/* 0x6DC */ J3DModel* field_0x6DC;
|
||||
/* 0x6E0 */ dKy_tevstr_c field_0x6E0;
|
||||
/* 0x790 */ mDoExt_McaMorf* mpMorfHand;
|
||||
/* 0x794 */ Mtx field_0x794;
|
||||
/* 0x7C4 */ Mtx field_0x7C4;
|
||||
/* 0x7F4 */ J3DAnmTexPattern* m_head_tex_pattern;
|
||||
/* 0x7F8 */ mDoExt_btpAnm field_0x7F8;
|
||||
/* 0x80C */ u8 field_0x80C;
|
||||
/* 0x80D */ u8 field_0x80D[0x810 - 0x80D];
|
||||
/* 0x810 */ SwMail_c mSwMail0;
|
||||
/* 0x870 */ SwMail_c mSwMail1;
|
||||
/* 0x8D0 */ SwMail_c mSwMail2;
|
||||
/* 0x930 */ SwMail_c* field_0x930[3];
|
||||
/* 0x93C */ u8 field_0x93C;
|
||||
/* 0x93D */ u8 field_0x93D[0x940 - 0x93D];
|
||||
/* 0x940 */ SwCam_c mSwCam;
|
||||
/* 0x960 */ s16 field_0x960;
|
||||
/* 0x962 */ u8 field_0x962;
|
||||
/* 0x963 */ u8 field_0x963;
|
||||
/* 0x964 */ s16 field_0x964;
|
||||
/* 0x966 */ u8 field_0x966[0x968 - 0x966];
|
||||
/* 0x968 */ ShopCursor_c* mpShopCursor;
|
||||
/* 0x96C */ cXyz mAttPos;
|
||||
/* 0x978 */ u8 field_0x978[0x97A - 0x978];
|
||||
/* 0x97A */ s16 field_0x97A;
|
||||
/* 0x97C */ u8 field_0x97C[0x97E - 0x97C];
|
||||
/* 0x97E */ csXyz field_0x97E;
|
||||
/* 0x984 */ u8 field_0x984[0x988 - 0x984];
|
||||
/* 0x988 */ STControl field_0x988;
|
||||
/* 0x9B0 */ s8 field_0x9B0;
|
||||
/* 0x9B1 */ s8 field_0x9B1;
|
||||
/* 0x9B2 */ u8 field_0x9B2[0x9B4 - 0x9B2];
|
||||
/* 0x9B4 */ s32 field_0x9B4;
|
||||
/* 0x9B8 */ u8 mHasAttention;
|
||||
/* 0x9B9 */ u8 field_0x9B9;
|
||||
/* 0x9BA */ u8 field_0x9BA[0x9C0 - 0x9BA];
|
||||
/* 0x9C0 */ fpc_ProcID field_0x9C0;
|
||||
/* 0x9C4 */ s8 field_0x9C4;
|
||||
/* 0x9C5 */ u8 field_0x9C5[0x9C8 - 0x9C5];
|
||||
/* 0x9C8 */ ActionFunc mCurrActionFunc;
|
||||
/* 0x9D4 */ s8 field_0x9D4;
|
||||
/* 0x9D5 */ s8 field_0x9D5;
|
||||
/* 0x9D6 */ s8 field_0x9D6;
|
||||
/* 0x9D7 */ s8 field_0x9D7;
|
||||
/* 0x9D8 */ s16 field_0x9D8;
|
||||
/* 0x9DA */ s8 field_0x9DA;
|
||||
/* 0x9DB */ u8 field_0x9DB[0x9DD - 0x9DB];
|
||||
/* 0x9DD */ s8 mActionStatus;
|
||||
/* 0x9DE */ u8 field_0x9DE[0x9E0 - 0x9DE];
|
||||
/* 0x9E0 */ fpc_ProcID field_0x9E0;
|
||||
}; // Size: 0x9E4
|
||||
|
||||
class daNpc_Bmsw_HIO_c : public JORReflexible {
|
||||
public:
|
||||
daNpc_Bmsw_HIO_c();
|
||||
virtual ~daNpc_Bmsw_HIO_c() {}
|
||||
|
||||
public:
|
||||
/* Place member variables here */
|
||||
};
|
||||
/* 0x04 */ s8 mNo;
|
||||
/* 0x05 */ u8 field_0x05[0x08 - 0x05];
|
||||
/* 0x08 */ dNpc_HIO_c mNpc;
|
||||
/* 0x30 */ s16 field_0x30;
|
||||
/* 0x32 */ s16 field_0x32;
|
||||
/* 0x34 */ s16 field_0x34;
|
||||
/* 0x36 */ s16 r_1;
|
||||
/* 0x38 */ s16 g_1;
|
||||
/* 0x3A */ s16 b_1;
|
||||
/* 0x3C */ s16 r_2;
|
||||
/* 0x3E */ s16 g_2;
|
||||
/* 0x40 */ s16 b_2;
|
||||
/* 0x42 */ u8 field_0x42[0x44 - 0x42];
|
||||
/* 0x44 */ f32 field_0x44;
|
||||
/* 0x48 */ f32 field_0x48;
|
||||
/* 0x4C */ f32 field_0x4C;
|
||||
/* 0x50 */ f32 field_0x50;
|
||||
/* 0x54 */ f32 field_0x54;
|
||||
}; // Size: 0x58
|
||||
|
||||
#endif /* D_A_NPC_BMSW_H */
|
||||
|
||||
@@ -4040,12 +4040,12 @@ inline void dComIfG_TimerDeleteRequest() {
|
||||
if (dComIfG_getTimerPtr() != NULL)
|
||||
dComIfG_getTimerPtr()->deleteRequest();
|
||||
}
|
||||
inline void dComIfG_TimerStart(int timer, s16 mode) {
|
||||
inline void dComIfG_TimerStart(int mode, s16 timer) {
|
||||
if (dComIfG_getTimerMode() == mode && dComIfG_getTimerPtr() != NULL) {
|
||||
if (timer != 0)
|
||||
dComIfG_getTimerPtr()->start(timer);
|
||||
else
|
||||
if (!timer)
|
||||
dComIfG_getTimerPtr()->start();
|
||||
else
|
||||
dComIfG_getTimerPtr()->start(timer);
|
||||
}
|
||||
}
|
||||
inline void dComIfG_TimerReStart(int timer) {
|
||||
|
||||
@@ -11,8 +11,11 @@ public:
|
||||
PLACED_NAYRUS_PEARL = 0x1410,
|
||||
PLACED_FARORES_PEARL = 0x1440,
|
||||
PLACED_DINS_PEARL = 0x1480,
|
||||
UNK_1A01 = 0x1A01,
|
||||
UNK_1A02 = 0x1A02,
|
||||
UNLOCK_TING_DISCOUNT = 0x1A08,
|
||||
UNLOCK_TINGLE_BALLOON_DISCOUNT = 0x1A10,
|
||||
UNK_2701 = 0x2701,
|
||||
RODE_KORL = 0x2A08,
|
||||
BARRIER_BREAK = 0x2C02,
|
||||
LITHOGRAPH_1 = 0x3508,
|
||||
|
||||
+1
-1
@@ -155,7 +155,7 @@ enum {
|
||||
/* 0x93 */ DSNAP_TYPE_UNK93,
|
||||
/* 0x94 */ DSNAP_TYPE_UNK94,
|
||||
/* 0x95 */ DSNAP_TYPE_UNK95,
|
||||
/* 0x96 */ DSNAP_TYPE_UNK96,
|
||||
/* 0x96 */ DSNAP_TYPE_BMSW,
|
||||
/* 0x97 */ DSNAP_TYPE_UNK97,
|
||||
/* 0x98 */ DSNAP_TYPE_BTSW,
|
||||
/* 0x99 */ DSNAP_TYPE_DR,
|
||||
|
||||
@@ -745,7 +745,7 @@ void daAuction_c::eventMainInit() {
|
||||
m834 = 0;
|
||||
m82E = 0;
|
||||
|
||||
dComIfG_TimerStart(0, 4);
|
||||
dComIfG_TimerStart(4, 0);
|
||||
|
||||
if (m822 == 1) {
|
||||
dAuction_screen_gaugeShow();
|
||||
|
||||
+1421
-70
File diff suppressed because it is too large
Load Diff
@@ -89,7 +89,7 @@ bool daTagvolcano::Act_c::_execute() {
|
||||
if (field_0x298 == 1) {
|
||||
if (dComIfG_getTimerPtr() != NULL) {
|
||||
if (field_0x299 == 0) {
|
||||
dComIfG_TimerStart(0, 3);
|
||||
dComIfG_TimerStart(3, 0);
|
||||
field_0x299 = 1;
|
||||
} else {
|
||||
if (dComIfGp_event_runCheck()) {
|
||||
|
||||
Reference in New Issue
Block a user