d_attention / d_demo / d_lib work

This commit is contained in:
TakaRikka
2022-10-18 05:15:45 -07:00
parent 74c248990c
commit 6d006074a7
40 changed files with 2249 additions and 1174 deletions
+4 -4
View File
@@ -7,22 +7,22 @@ Section | Percentage | Decompiled (bytes) | Total (bytes)
.init | 91.849662% | 8700 | 9472
.extab | 100.000000% | 96 | 96
.extabindex | 100.000000% | 96 | 96
.text | 16.500285% | 593440 | 3596544
.text | 16.800351% | 604232 | 3596544
.ctors | 100.000000% | 448 | 448
.dtors | 100.000000% | 32 | 32
.rodata | 100.000000% | 193856 | 193856
.data | 100.000000% | 197632 | 197632
.sdata | 100.000000% | 1408 | 1408
.sdata2 | 100.000000% | 20832 | 20832
Total | 25.289205% | 1016796 | 4020672
Total | 25.557618% | 1027588 | 4020672
## Total
Section | Percentage | Decompiled (bytes) | Total (bytes)
---|---|---|---
main.dol | 25.289205% | 1016796 | 4020672
main.dol | 25.557618% | 1027588 | 4020672
RELs | 33.217047% | 3820068 | 11500324
Total | 31.163361% | 4836864 | 15520996
Total | 31.232893% | 4847656 | 15520996
## RELs
@@ -1,3 +1,3 @@
lbl_80031CF0:
/* 80031CF0 88 6D 88 40 */ lbz r3, struct_80450DC0+0x0(r13)
/* 80031CF0 88 6D 88 40 */ lbz r3, mPlayerNo__11daTagMist_c+0x0(r13)
/* 80031CF4 4E 80 00 20 */ blr
@@ -10,7 +10,7 @@ lbl_80031248:
/* 80031268 7C CA 33 78 */ mr r10, r6
/* 8003126C 7C E0 3B 78 */ mr r0, r7
/* 80031270 7D 09 43 78 */ mr r9, r8
/* 80031274 A8 AD 88 0A */ lha r5, struct_80450D88+0x2(r13)
/* 80031274 A8 AD 88 0A */ lha r5, m_count__9daArrow_c+0x2(r13)
/* 80031278 1C 85 00 24 */ mulli r4, r5, 0x24
/* 8003127C 3C 60 80 42 */ lis r3, mData__7daSus_c@ha /* 0x80423FFC@ha */
/* 80031280 38 63 3F FC */ addi r3, r3, mData__7daSus_c@l /* 0x80423FFC@l */
@@ -42,7 +42,7 @@ lbl_80031290:
/* 800312E4 7C 03 00 50 */ subf r0, r3, r0
/* 800312E8 54 00 28 3E */ rotlwi r0, r0, 5
/* 800312EC 7C 00 1A 14 */ add r0, r0, r3
/* 800312F0 B0 0D 88 0A */ sth r0, struct_80450D88+0x2(r13)
/* 800312F0 B0 0D 88 0A */ sth r0, m_count__9daArrow_c+0x2(r13)
/* 800312F4 38 60 00 01 */ li r3, 1
/* 800312F8 48 00 00 AC */ b lbl_800313A4
lbl_800312FC:
@@ -81,7 +81,7 @@ lbl_80031320:
/* 80031374 7C 03 00 50 */ subf r0, r3, r0
/* 80031378 54 00 28 3E */ rotlwi r0, r0, 5
/* 8003137C 7C 00 1A 14 */ add r0, r0, r3
/* 80031380 B0 0D 88 0A */ sth r0, struct_80450D88+0x2(r13)
/* 80031380 B0 0D 88 0A */ sth r0, m_count__9daArrow_c+0x2(r13)
/* 80031384 38 60 00 01 */ li r3, 1
/* 80031388 48 00 00 1C */ b lbl_800313A4
lbl_8003138C:
+2 -2
View File
@@ -105,7 +105,7 @@ lbl_80072A9C:
/* 80072A9C 54 60 00 C7 */ rlwinm. r0, r3, 0, 3, 3
/* 80072AA0 41 82 00 48 */ beq lbl_80072AE8
/* 80072AA4 80 7F 00 0C */ lwz r3, 0xc(r31)
/* 80072AA8 4B FF D5 71 */ bl func_80070018
/* 80072AA8 4B FF D5 71 */ bl padLockButton
/* 80072AAC 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 80072AB0 40 82 00 84 */ bne lbl_80072B34
/* 80072AB4 80 1F 03 34 */ lwz r0, 0x334(r31)
@@ -124,7 +124,7 @@ lbl_80072AD8:
/* 80072AE4 48 00 00 50 */ b lbl_80072B34
lbl_80072AE8:
/* 80072AE8 80 7F 00 0C */ lwz r3, 0xc(r31)
/* 80072AEC 4B FF D5 2D */ bl func_80070018
/* 80072AEC 4B FF D5 2D */ bl padLockButton
/* 80072AF0 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 80072AF4 41 82 00 40 */ beq lbl_80072B34
/* 80072AF8 7F E3 FB 78 */ mr r3, r31
+1 -1
View File
@@ -46,7 +46,7 @@ lbl_80070038:
/* 800700E8 48 2F 88 AD */ bl strcmp
/* 800700EC 7C 60 00 34 */ cntlzw r0, r3
/* 800700F0 54 00 D9 7E */ srwi r0, r0, 5
/* 800700F4 98 0D 89 D8 */ stb r0, data_80450F58(r13)
/* 800700F4 98 0D 89 D8 */ stb r0, on_final_boss_stg(r13)
/* 800700F8 7F E3 FB 78 */ mr r3, r31
/* 800700FC 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80070100 80 01 00 14 */ lwz r0, 0x14(r1)
@@ -4,7 +4,7 @@ lbl_800720F8:
/* 80072100 90 01 00 14 */ stw r0, 0x14(r1)
/* 80072104 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80072108 7C 7F 1B 78 */ mr r31, r3
/* 8007210C 88 0D 89 D8 */ lbz r0, data_80450F58(r13)
/* 8007210C 88 0D 89 D8 */ lbz r0, on_final_boss_stg(r13)
/* 80072110 28 00 00 00 */ cmplwi r0, 0
/* 80072114 41 82 00 60 */ beq lbl_80072174
/* 80072118 88 0D 87 E4 */ lbz r0, mStayNo__20dStage_roomControl_c+0x0(r13)
@@ -69,7 +69,7 @@ lbl_800721E8:
/* 800721F0 48 00 00 9C */ b lbl_8007228C
lbl_800721F4:
/* 800721F4 80 7F 00 0C */ lwz r3, 0xc(r31)
/* 800721F8 4B FF DE 21 */ bl func_80070018
/* 800721F8 4B FF DE 21 */ bl padLockButton
/* 800721FC 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 80072200 40 82 00 10 */ bne lbl_80072210
/* 80072204 80 1F 03 34 */ lwz r0, 0x334(r31)
@@ -105,7 +105,7 @@ lbl_8007223C:
/* 80072270 48 00 00 1C */ b lbl_8007228C
lbl_80072274:
/* 80072274 80 7F 00 0C */ lwz r3, 0xc(r31)
/* 80072278 4B FF DD A1 */ bl func_80070018
/* 80072278 4B FF DD A1 */ bl padLockButton
/* 8007227C 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 80072280 40 82 00 0C */ bne lbl_8007228C
/* 80072284 38 00 00 04 */ li r0, 4
@@ -154,8 +154,8 @@ lbl_8049ABF0:
/* 8049AC14 60 00 00 02 */ ori r0, r0, 2
/* 8049AC18 90 1F 06 E0 */ stw r0, 0x6e0(r31)
lbl_8049AC1C:
/* 8049AC1C 3C 60 80 45 */ lis r3, struct_80450D88+0x0@ha /* 0x80450D88@ha */
/* 8049AC20 38 83 0D 88 */ addi r4, r3, struct_80450D88+0x0@l /* 0x80450D88@l */
/* 8049AC1C 3C 60 80 45 */ lis r3, m_count__9daArrow_c+0x0@ha /* 0x80450D88@ha */
/* 8049AC20 38 83 0D 88 */ addi r4, r3, m_count__9daArrow_c+0x0@l /* 0x80450D88@l */
/* 8049AC24 A8 04 00 00 */ lha r0, 0(r4)
/* 8049AC28 B0 1F 09 4E */ sth r0, 0x94e(r31)
/* 8049AC2C A8 64 00 00 */ lha r3, 0(r4)
@@ -41,8 +41,8 @@ lbl_8049CF14:
/* 8049CF38 48 00 01 60 */ b lbl_8049D098
lbl_8049CF3C:
/* 8049CF3C A8 9F 09 4E */ lha r4, 0x94e(r31)
/* 8049CF40 3C 60 80 45 */ lis r3, struct_80450D88+0x0@ha /* 0x80450D88@ha */
/* 8049CF44 A8 03 0D 88 */ lha r0, struct_80450D88+0x0@l(r3) /* 0x80450D88@l */
/* 8049CF40 3C 60 80 45 */ lis r3, m_count__9daArrow_c+0x0@ha /* 0x80450D88@ha */
/* 8049CF44 A8 03 0D 88 */ lha r0, m_count__9daArrow_c+0x0@l(r3) /* 0x80450D88@l */
/* 8049CF48 7C 04 00 00 */ cmpw r4, r0
/* 8049CF4C 40 82 00 0C */ bne lbl_8049CF58
/* 8049CF50 38 00 00 01 */ li r0, 1
@@ -42,8 +42,8 @@ lbl_8048F370:
/* 8048F410 41 82 00 14 */ beq lbl_8048F424
/* 8048F414 80 1F 00 B0 */ lwz r0, 0xb0(r31)
/* 8048F418 54 00 46 BE */ rlwinm r0, r0, 8, 0x1a, 0x1f
/* 8048F41C 3C 60 80 45 */ lis r3, struct_80450DC0+0x0@ha /* 0x80450DC0@ha */
/* 8048F420 98 03 0D C0 */ stb r0, struct_80450DC0+0x0@l(r3) /* 0x80450DC0@l */
/* 8048F41C 3C 60 80 45 */ lis r3, mPlayerNo__11daTagMist_c+0x0@ha /* 0x80450DC0@ha */
/* 8048F420 98 03 0D C0 */ stb r0, mPlayerNo__11daTagMist_c+0x0@l(r3) /* 0x80450DC0@l */
lbl_8048F424:
/* 8048F424 38 00 00 00 */ li r0, 0
/* 8048F428 98 1F 05 A0 */ stb r0, 0x5a0(r31)
@@ -69,8 +69,8 @@ lbl_8048F63C:
/* 8048F65C 4B FF FC 69 */ bl onMySw__11daTagMist_cFv
/* 8048F660 80 1F 00 B0 */ lwz r0, 0xb0(r31)
/* 8048F664 54 00 46 BE */ rlwinm r0, r0, 8, 0x1a, 0x1f
/* 8048F668 3C 60 80 45 */ lis r3, struct_80450DC0+0x0@ha /* 0x80450DC0@ha */
/* 8048F66C 98 03 0D C0 */ stb r0, struct_80450DC0+0x0@l(r3) /* 0x80450DC0@l */
/* 8048F668 3C 60 80 45 */ lis r3, mPlayerNo__11daTagMist_c+0x0@ha /* 0x80450DC0@ha */
/* 8048F66C 98 03 0D C0 */ stb r0, mPlayerNo__11daTagMist_c+0x0@l(r3) /* 0x80450DC0@l */
lbl_8048F670:
/* 8048F670 9B DF 05 A0 */ stb r30, 0x5a0(r31)
/* 8048F674 38 60 00 01 */ li r3, 1
@@ -34,6 +34,7 @@ public:
u16 getWEvlpMtxNum() const { return mWEvlpMtxNum; }
u16 getJointNum() const { return mJointNum; }
u16 getDrawMtxNum() const { return mDrawMtxData.mEntryNum; }
JUTNameTab* getJointName() const { return mJointName; }
J3DJoint* getRootNode() { return mRootNode; }
J3DJoint* getJointNodePointer(u16 idx) const { return mJointNodePointer[idx]; }
J3DMtxCalc* getBasicMtxCalc() const { return mBasicMtxCalc; }
@@ -33,6 +33,7 @@ public:
J3DShape* getShapeNodePointer(u16 idx) const { return mShapeTable.getShapeNodePointer(idx); }
J3DJoint* getJointNodePointer(u16 idx) const { return mJointTree.getJointNodePointer(idx); }
J3DJointTree& getJointTree() { return mJointTree; }
JUTNameTab* getJointName() const { return mJointTree.getJointName(); }
Mtx& getInvJointMtx(s32 idx) const { return mJointTree.getInvJointMtx(idx); }
J3DTexture* getTexture() const { return mMaterialTable.getTexture(); }
JUTNameTab* getTextureName() const { return mMaterialTable.getTextureName(); }
@@ -9,7 +9,9 @@
namespace JStudio {
namespace data {
struct TEOperationData {};
enum TEOperationData {
UNK_0x19 = 0x19,
};
};
struct TAdaptor;
@@ -50,6 +52,26 @@ public:
/* 8028680C */ virtual void do_wait(u32);
/* 8028682C */ virtual void do_data(void const*, u32, void const*, u32);
void prepareAdaptor() {
if (mpAdaptor != NULL) {
// mpAdaptor->adaptor_setObject_(this);
// mpAdaptor->adaptor_do_begin();
}
}
template<class T>
T* createFromAdaptor(const stb::data::TParse_TBlock_object& param_0, T* param_1) {
T* n = new T(param_0, param_1);
if (n == NULL) {
return NULL;
}
n->prepareAdaptor();
return n;
}
/* 0x34 */ TAdaptor* mpAdaptor;
};
@@ -86,7 +108,11 @@ struct TAdaptor {
/* 80286648 */ void adaptor_setVariableValue_FVR_INDEX_(JStudio::TAdaptor*, JStudio::TControl*,
u32, void const*, u32);
/* 0x4 */ TObject* pObject_;
void adaptor_setObject_(const TObject* pObject) {
pObject_ = pObject;
}
/* 0x4 */ const TObject* pObject_;
/* 0x8 */ TVariableValue* pValue_;
/* 0xC */ u32 u;
};
@@ -73,7 +73,7 @@ struct TParse_TParagraph_data : public TParseData_aligned<4> {
};
TParse_TParagraph_data(const void* content) : TParseData_aligned<4>(content) {}
/* 80289A80 */ void getData(TData*) const;
/* 80289A80 */ void getData(TData* pData) const;
};
// Parses a TObject ("demo object")
+40
View File
@@ -152,6 +152,46 @@ private:
/* 0x54 */ s32 _54;
};
template <int T>
struct TParseData {
TParseData(const void* pContent) {
data::TParse_TParagraph_data data(pContent);
set(data);
}
void set(const data::TParse_TParagraph_data& data) {
//data::TParse_TParagraph_data::TData* p = (data::TParse_TParagraph_data::TData*)this;
data.getData(m_data);
}
bool isEnd() const {
return m_data->_0 == 0;
}
bool empty() const {
return m_data->_c == NULL;
}
bool isValid() const {
return !empty() && m_data->_0 == 50;
}
data::TParse_TParagraph_data::TData* m_data;
};
template <int T>
struct TParseData_fixed : public TParseData<T> {
TParseData_fixed(const void* pContent) : TParseData(pContent) {}
const void* getNext() const {
return m_data->_c;
}
bool isValid() const {
return TParseData::isValid() && getNext() != NULL;
}
};
} // namespace stb
} // namespace JStudio
+2
View File
@@ -3,4 +3,6 @@
#include "dolphin/types.h"
typedef unsigned short wchar_t;
#endif /* MSL_COMMON_SRC_WCHAR_IO_H */
+11 -11
View File
@@ -25,8 +25,8 @@ class Z2SeqMgr {
public:
Z2SeqMgr();
void bgmStart(u32, u32, s32);
void bgmStop(u32, s32);
void bgmStart(u32 i_bgmID, u32, s32);
void bgmStop(u32 i_bgmID, s32);
void subBgmStart(u32);
void subBgmStop();
void subBgmStopInner();
@@ -79,12 +79,12 @@ public:
void i_setTwilightGateVol(f32 vol) { mTwilightGateVol = vol; }
void i_setWindStoneVol(f32 vol, u32 count) { field_0x94.move(vol, count); }
void i_setWindStoneVol(f32 vol, u32 count) { mWindStone.move(vol, count); }
void i_bgmAllUnMute(u32 count) { field_0x74.move(1.0f, count); }
void i_bgmAllUnMute(u32 count) { mAllBgmMaster.move(1.0f, count); }
void i_unMuteSceneBgm(u32 count) {
field_0x34.move(1.0f, 0);
mBgmPause.move(1.0f, 0);
field_0x44.move(1.0f, count);
}
@@ -94,15 +94,15 @@ private:
/* 0x08 */ JAISoundHandle field_0x08;
/* 0x0C */ JAISoundHandle field_0x0c;
/* 0x10 */ JAISoundID field_0x10;
/* 0x14 */ Z2SoundFader field_0x14;
/* 0x24 */ Z2SoundFader field_0x24;
/* 0x34 */ Z2SoundFader field_0x34;
/* 0x14 */ Z2SoundFader mMainBgmMaster;
/* 0x24 */ Z2SoundFader mSubBgmMaster;
/* 0x34 */ Z2SoundFader mBgmPause;
/* 0x44 */ Z2SoundFader field_0x44;
/* 0x54 */ Z2SoundFader field_0x54;
/* 0x54 */ Z2SoundFader mFanfareMute;
/* 0x64 */ Z2SoundFader field_0x64;
/* 0x74 */ Z2SoundFader field_0x74;
/* 0x74 */ Z2SoundFader mAllBgmMaster;
/* 0x84 */ Z2SoundFader field_0x84;
/* 0x94 */ Z2SoundFader field_0x94;
/* 0x94 */ Z2SoundFader mWindStone;
/* 0xA4 */ Z2SoundFader field_0xa4;
/* 0xB4 */ f32 mTwilightGateVol;
/* 0xB8 */ u16 field_0xb8;
+32 -1
View File
@@ -380,6 +380,8 @@ public:
return mCameraInfo[i].mCameraAttentionStatus & flag;
}
void setCameraAttentionStatus(int i, u32 flag) { mCameraInfo[i].mCameraAttentionStatus = flag; }
void onCameraAttentionStatus(int i, u32 flag) { mCameraInfo[i].mCameraAttentionStatus |= flag; }
void offCameraAttentionStatus(int i, u32 flag) { mCameraInfo[i].mCameraAttentionStatus &= ~flag; }
void setCameraInfo(int camIdx, camera_class* p_cam, int param_2, int param_3, int param_4) {
mCameraInfo[camIdx].mCamera = p_cam;
mCameraInfo[camIdx].field_0x4 = param_2;
@@ -400,6 +402,7 @@ public:
int getMessageCountNumber() { return mMessageCountNum; }
void setWindowNum(u8 num) { mWindowNum = num; }
int getWindowNum() { return mWindowNum; }
dDlst_window_c* getWindow(int i) { return &mWindow[i]; }
void setWindow(int i, f32 param_1, f32 param_2, f32 param_3, f32 param_4, f32 param_5,
f32 param_6, int camID, int mode) {
@@ -1062,6 +1065,10 @@ inline u8 dComIfGs_getOptVibration() {
return g_dComIfG_gameInfo.info.getPlayer().getConfig().getVibration();
}
inline u8 dComIfGs_getOptAttentionType() {
return g_dComIfG_gameInfo.info.getPlayer().getConfig().getAttentionType();
}
inline BOOL dComIfGs_isTbox(int i_no) {
return g_dComIfG_gameInfo.info.getMemory().getBit().isTbox(i_no);
}
@@ -1400,7 +1407,7 @@ inline void dComIfGs_setTmpReg(u16 reg, u8 flag) {
g_dComIfG_gameInfo.info.getTmp().setEventReg(reg, flag);
}
inline u8 dComIfGs_getTmpReg(u16 reg) {
inline int dComIfGs_getTmpReg(u16 reg) {
return g_dComIfG_gameInfo.info.getTmp().getEventReg(reg);
}
@@ -2026,6 +2033,14 @@ inline BOOL dComIfGp_checkCameraAttentionStatus(int i, u32 flag) {
return g_dComIfG_gameInfo.play.checkCameraAttentionStatus(i, flag);
}
inline void dComIfGp_onCameraAttentionStatus(int i, u32 flag) {
g_dComIfG_gameInfo.play.onCameraAttentionStatus(i, flag);
}
inline void dComIfGp_offCameraAttentionStatus(int i, u32 flag) {
g_dComIfG_gameInfo.play.offCameraAttentionStatus(i, flag);
}
inline void dComIfGp_setCameraInfo(int camIdx, camera_class* p_cam, int param_2, int param_3,
int param_4) {
g_dComIfG_gameInfo.play.setCameraInfo(camIdx, p_cam, param_2, param_3, param_4);
@@ -2171,6 +2186,10 @@ inline void dComIfGp_setWindowNum(int num) {
g_dComIfG_gameInfo.play.setWindowNum(num);
}
inline int dComIfGp_getWindowNum() {
return g_dComIfG_gameInfo.play.getWindowNum();
}
inline dDlst_window_c* dComIfGp_getWindow(int i) {
return g_dComIfG_gameInfo.play.getWindow(i);
}
@@ -2546,6 +2565,13 @@ inline view_class* dComIfGd_getView() {
return g_dComIfG_gameInfo.drawlist.getView();
}
inline MtxP dComIfGd_getViewRotMtx() {
return ((camera_process_class*)g_dComIfG_gameInfo.drawlist.getView())->mViewMtxNoTrans;
}
inline MtxP dComIfGd_getViewMtx() {
return ((camera_process_class*)g_dComIfG_gameInfo.drawlist.getView())->mViewMtx;
}
inline J3DDrawBuffer* dComIfGd_getListFilter() {
return g_dComIfG_gameInfo.drawlist.getOpaListFilter();
}
@@ -2578,6 +2604,11 @@ inline void dComIfGd_setListItem3D() {
g_dComIfG_gameInfo.drawlist.setXluListItem3D();
}
inline void dComIfGd_setList3Dlast() {
g_dComIfG_gameInfo.drawlist.setOpaList3Dlast();
g_dComIfG_gameInfo.drawlist.setXluList3Dlast();
}
inline void dComIfGd_setXluList2DScreen() {
g_dComIfG_gameInfo.drawlist.setXluList2DScreen();
}
+22 -6
View File
@@ -11,21 +11,36 @@ public:
class data_c {
public:
/* 80030F14 */ void set(s8, cXyz const&, cXyz const&, u8, u8, u8);
/* 80030FBC */ void reset();
/* 80030FCC */ void isSwitch();
/* 800310C8 */ void check(fopAc_ac_c*);
/* 80031038 */ void check(cXyz const&);
/* 80030FBC */ data_c* reset();
/* 80030FCC */ u8 isSwitch();
/* 800310C8 */ u8 check(fopAc_ac_c*);
/* 80031038 */ bool check(cXyz const&);
/* 80031150 */ void execute();
/* 80031F28 */ ~data_c();
/* 80031F64 */ data_c();
};
void setNext(data_c* i_next) { mpNext = i_next; }
data_c* getNext() { return mpNext; }
u8 getType() { return mType; }
/* 0x00 */ s8 mRoomNo;
/* 0x01 */ bool field_0x1;
/* 0x02 */ u8 field_0x2;
/* 0x03 */ u8 field_0x3;
/* 0x04 */ u8 mType;
/* 0x08 */ cXyz field_0x8;
/* 0x14 */ cXyz field_0x14;
/* 0x20 */ data_c* mpNext;
}; // Size: 0x24
class room_c {
public:
/* 80031190 */ void add(daSus_c::data_c*);
/* 800311FC */ void reset();
/* 80031EE4 */ room_c();
};
/* 0x0 */ data_c* mpData;
}; // Size: 0x4
/* 80031248 */ void newData(s8, cXyz const&, cXyz const&, u8, u8, u8);
/* 800313BC */ void reset();
@@ -35,6 +50,7 @@ public:
static u8 mData[1152];
static u8 mRoom[256];
static s16 mSetTop;
};
#endif /* D_COM_D_COM_STATIC_H */
+84 -77
View File
@@ -10,32 +10,32 @@
class dAttHint_c {
public:
dAttHint_c() {}
/* 800738B4 */ void getPId(void*);
/* 800738CC */ void convPId(unsigned int);
/* 800738FC */ void request(fopAc_ac_c*, int);
/* 800738B4 */ u32 getPId(void*);
/* 800738CC */ fopAc_ac_c* convPId(unsigned int);
/* 800738FC */ int request(fopAc_ac_c*, int);
/* 80073958 */ void init();
/* 80073970 */ void proc();
private:
/* 0x0 */ u32 mHintActorID;
/* 0x4 */ u32 mPriority;
/* 0x4 */ int mPriority;
/* 0x8 */ u32 field_0x8;
};
class dAttCatch_c {
public:
dAttCatch_c() {}
s32 convPId(unsigned int);
fopAc_ac_c* convPId(unsigned int);
void init();
void proc();
void request(fopAc_ac_c*, u8, f32, f32, f32, s16, int);
s32 getCatghTarget() { return convPId(mCatghTargetID); }
fopAc_ac_c* getCatghTarget() { return convPId(mCatghTargetID); }
u8 getChangeItem() { return mChangeItem; }
private:
/* 0x00 */ void* field_0x0;
/* 0x04 */ f32 field_0x4;
/* 0x00 */ u32 field_0x0;
/* 0x04 */ int field_0x4;
/* 0x08 */ f32 field_0x8;
/* 0x0C */ u8 field_0xc;
/* 0x0D */ u8 field_0xd;
@@ -47,11 +47,7 @@ private:
class dAttParam_c {
public:
dAttParam_c() {}
/* 80070038 */ dAttParam_c(s32);
private:
/* 0x00 */ u16 field_0x0;
/* 0x00 */ u16 mFlags;
/* 0x04 */ f32 field_0x4;
/* 0x08 */ f32 field_0x8;
/* 0x0C */ f32 field_0xc;
@@ -66,21 +62,23 @@ private:
/* 0x30 */ f32 mAttnCursorOffsetY;
/* 0x34 */ u8 mAttnCursorAppearFrames;
/* 0x35 */ u8 mAttnCursorDisappearFrames;
/* 0x38 */ f32 field_0x38;
/* 0x3C */ f32 field_0x3c;
public:
/* 80070110 */ virtual ~dAttParam_c();
/* 0x38 vtable */
dAttParam_c() {}
/* 80070038 */ dAttParam_c(s32);
private:
/* 0x3C */ f32 mSelCursorAnmSpeed;
/* 0x40 */ f32 mAttnCursorAnmSpeed;
/* 0x44 */ u32 mDispPosX;
/* 0x48 */ u32 mDispPosY;
}; // Size = 0x4C
/* 80070110 */ virtual ~dAttParam_c();
bool CheckFlag(u16 flag) { return mFlags & flag; }
/* 0x40 vtable */
}; // Size: 0x44
class dAttLook_c {
public:
/* 80073CA4 */ void convPId(unsigned int);
/* 80073CA4 */ fopAc_ac_c* convPId(unsigned int);
/* 80073CD4 */ void init();
/* 80073CEC */ void proc();
/* 80073D08 */ void request(fopAc_ac_c*, f32, f32, f32, s16, int);
@@ -96,10 +94,11 @@ class dAttList_c {
public:
/* 800304D0 */ ~dAttList_c() {}
/* 8003050C */ dAttList_c() {}
/* 80073864 */ void getActor();
/* 80073864 */ fopAc_ac_c* getActor();
/* 80073898 */ void setActor(fopAc_ac_c*);
private:
u32 getPid() { return mActorID; }
/* 0x00 */ f32 mWeight;
/* 0x04 */ f32 mDistance;
/* 0x08 */ cSAngle mAngle;
@@ -117,15 +116,15 @@ public:
/* 800732B0 */ void draw(cXyz&, f32 (*)[4]);
/* 0x000 */ J3DModel* mModel[2];
/* 0x008 */ mDoExt_bckAnm bckAnm[2];
/* 0x040 */ mDoExt_bpkAnm bpkAnm[2];
/* 0x070 */ mDoExt_brkAnm brkAnm[2];
/* 0x0A0 */ mDoExt_brkAnm brkAnm2[2];
/* 0x0D0 */ mDoExt_btkAnm btkAnm[2];
/* 0x100 */ mDoExt_bckAnm bckAnm2;
/* 0x11C */ mDoExt_bpkAnm bpkAnm2;
/* 0x134 */ mDoExt_brkAnm brkAnm3;
/* 0x14C */ mDoExt_btkAnm btkAnm2;
/* 0x008 */ mDoExt_bckAnm mNoticeCursorBck[2];
/* 0x040 */ mDoExt_bpkAnm mNoticeCursorBpk[2];
/* 0x070 */ mDoExt_brkAnm mNoticeCursorBrk[2];
/* 0x0A0 */ mDoExt_brkAnm mNoticeCursor02Brk[2];
/* 0x0D0 */ mDoExt_btkAnm mNoticeCursorBtk[2];
/* 0x100 */ mDoExt_bckAnm mImpactBck;
/* 0x11C */ mDoExt_bpkAnm mImpactBpk;
/* 0x134 */ mDoExt_brkAnm mImpactBrk;
/* 0x14C */ mDoExt_btkAnm mImpactBtk;
/* 0x164 */ cXyz field_0x164;
/* 0x170 */ u8 field_0x170;
/* 0x171 */ u8 field_0x171;
@@ -152,45 +151,56 @@ struct dist_entry {
u32 field_0x18;
}; // Size: 0x1C
struct type_tbl_entry {
s16 field_0x0;
u16 field_0x2;
};
class dAttention_c {
public:
enum EState {
ST_NONE,
ST_LOCK,
ST_RELEASE,
};
dAttention_c() {}
/* 80070198 */ dAttention_c(fopAc_ac_c*, u32);
/* 80070774 */ ~dAttention_c();
/* 80070844 */ void GetLockonList(s32);
/* 80070880 */ void getActionBtnB();
/* 80070974 */ void getActionBtnXY();
/* 80070A70 */ void chkAttMask(u32, u32);
/* 80070E90 */ void calcWeight(int, fopAc_ac_c*, f32, s16, s16, u32*);
/* 80070844 */ dAttList_c* GetLockonList(s32);
/* 80070880 */ dAttList_c* getActionBtnB();
/* 80070974 */ dAttList_c* getActionBtnXY();
/* 80070A70 */ int chkAttMask(u32, u32);
/* 80070E90 */ f32 calcWeight(int, fopAc_ac_c*, f32, s16, s16, u32*);
/* 800710C0 */ void setList(int, fopAc_ac_c*, f32, f32, cSAngle, u32);
/* 80071240 */ void initList(u32);
/* 800713CC */ void makeList();
/* 800713CC */ int makeList();
/* 80071424 */ void setOwnerAttentionPos();
/* 80071488 */ void SelectAttention(fopAc_ac_c*);
/* 80071488 */ int SelectAttention(fopAc_ac_c*);
/* 800716B8 */ void sortList();
/* 800718A4 */ void stockAttention();
/* 80071960 */ void nextAttention();
/* 80071A68 */ void freeAttention();
/* 80071A98 */ void chaseAttention();
/* 80071CC0 */ void EnemyDistance(fopAc_ac_c*);
/* 80071960 */ fopAc_ac_c* nextAttention();
/* 80071A68 */ int freeAttention();
/* 80071A98 */ bool chaseAttention();
/* 80071CC0 */ f32 EnemyDistance(fopAc_ac_c*);
/* 80071DEC */ void runSoundProc();
/* 80071E84 */ void runDrawProc();
/* 800720F4 */ void runDebugDisp();
/* 800720F8 */ void checkButton();
/* 800722A0 */ void triggerProc();
/* 800722EC */ void lostCheck();
/* 800722A0 */ bool triggerProc();
/* 800722EC */ int lostCheck();
/* 80072344 */ void judgementStatus4Hold();
/* 800725F0 */ void judgementStatus4Switch();
/* 80072924 */ void Run();
/* 80072924 */ int Run();
/* 80072BD4 */ void Draw();
/* 80072D80 */ void lockSoundStart(u32);
/* 8007353C */ void LockonTarget(s32);
/* 800735DC */ void LockonReleaseDistanse();
/* 800736CC */ void LockonTargetPId(s32);
/* 80073734 */ void ActionTarget(s32);
/* 8007378C */ void CheckObjectTarget(s32);
/* 8007353C */ fopAc_ac_c* LockonTarget(s32);
/* 800735DC */ f32 LockonReleaseDistanse();
/* 800736CC */ u32 LockonTargetPId(s32);
/* 80073734 */ fopAc_ac_c* ActionTarget(s32);
/* 8007378C */ fopAc_ac_c* CheckObjectTarget(s32);
/* 800737E4 */ bool LockonTruth();
/* 80073838 */ void checkDistance(cXyz*, s16, cXyz*, f32, f32, f32, f32);
/* 80073838 */ int checkDistance(cXyz*, s16, cXyz*, f32, f32, f32, f32);
/* 8016E424 */ void LockEdge();
/* 80182994 */ void GetCheckObjectCount();
/* 80182AD0 */ void keepLock(int);
@@ -199,6 +209,8 @@ public:
dAttCatch_c& getCatghTarget() { return mCatghTarget; }
u8 getCatchChgItem() { return mCatghTarget.getChangeItem(); }
BOOL chkFlag(u32 flag) { return mFlags & flag; }
void setFlag(u32 flag) { mFlags |= flag; }
void clrFlag(u32 flag) { mFlags &= ~flag; }
s8 Lockon() {
/* s32 chk = true;
if (!LockonTruth() && !chkFlag(0x20000000)) {
@@ -209,28 +221,28 @@ public:
return !LockonTruth() && !chkFlag(0x20000000);
}
static u8 loc_type_tbl[12];
static u8 act_type_tbl[20];
static type_tbl_entry loc_type_tbl[3];
static type_tbl_entry act_type_tbl[5];
static dist_entry dist_table[234];
static u32 loc_type_num;
static u32 act_type_num;
static u32 chk_type_tbl;
static u32 chk_type_num;
static int loc_type_num;
static int act_type_num;
static type_tbl_entry chk_type_tbl[1];
static int chk_type_num;
public:
/* 0x000 */ fopAc_ac_c* mpPlayer;
/* 0x004 */ u32 mLockTargetID;
/* 0x008 */ dAttDraw_CallBack_c mpDrawCallback;
/* 0x00C */ u32 field_0xc;
/* 0x00C */ u32 mPadNo;
/* 0x010 */ u32 field_0x10;
/* 0x014 */ u8 field_0x14[4];
/* 0x018 */ JKRSolidHeap* heap;
/* 0x01C */ cXyz field_0x1c;
/* 0x01C */ cXyz mDrawAttnPos;
/* 0x028 */ dAttDraw_c draw[2];
/* 0x318 */ int field_0x318;
/* 0x31C */ cXyz field_0x31c;
/* 0x328 */ u8 field_0x328;
/* 0x329 */ u8 field_0x329;
/* 0x318 */ u32 mTargetActorID;
/* 0x31C */ cXyz mOwnerAttnPos;
/* 0x328 */ s8 field_0x328;
/* 0x329 */ u8 mAttnStatus;
/* 0x32A */ u8 field_0x32a;
/* 0x32B */ u8 field_0x32b;
/* 0x32C */ u8 field_0x32c;
@@ -248,22 +260,17 @@ public:
/* 0x3E0 */ dAttList_c mActionList[4];
/* 0x430 */ int mActionCount;
/* 0x434 */ int mActionOffset;
/* 0x438 */ dAttList_c field_0x438[4];
/* 0x438 */ dAttList_c mCheckObjectList[4];
/* 0x488 */ int mCheckObjectCount;
/* 0x48C */ int field_0x48c;
/* 0x48C */ int mCheckObjectOffset;
/* 0x490 */ dAttHint_c mZHintTarget;
/* 0x49C */ dAttCatch_c mCatghTarget;
/* 0x4B4 */ dAttLook_c mLookTarget;
/* 0x4C4 */ int field_0x4c4;
/* 0x4C8 */ u8 field_0x4c8;
/* 0x4C9 */ u8 field_0x4c9;
/* 0x4CA */ u8 field_0x4ca;
/* 0x4CB */ u8 field_0x4cb;
/* 0x4CC */ u8 field_0x4cc;
/* 0x4CD */ u8 field_0x4cd;
/* 0x4CE */ u8 field_0x4ce;
/* 0x4CF */ u8 field_0x4cf;
/* 0x4D0 */ dAttParam_c mAttParam;
/* 0x4C4 */ int mAttnBlockTimer;
/* 0x4C8 */ dAttParam_c mAttParam;
/* 0x50C */ u8 field_0x50c[0x514 - 0x50c];
/* 0x514 */ u32 mEnemyActorID;
/* 0x518 */ f32 mEnemyDist;
}; // Size: 0x51C
STATIC_ASSERT(sizeof(dAttention_c) == 0x51C);

Some files were not shown because too many files have changed in this diff Show More