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

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

View File

@ -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

View File

@ -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:

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

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)

View File

@ -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

View File

@ -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)

View File

@ -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

View File

@ -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)

View File

@ -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

View File

@ -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; }

View File

@ -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(); }

View File

@ -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;
};

View File

@ -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")

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

View File

@ -3,4 +3,6 @@
#include "dolphin/types.h"
typedef unsigned short wchar_t;
#endif /* MSL_COMMON_SRC_WCHAR_IO_H */

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;

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();
}

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 */

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);

View File

@ -52,15 +52,15 @@ public:
class dDemo_actor_c : public JStage::TActor {
public:
/* 80038020 */ dDemo_actor_c();
/* 80038128 */ void getActor();
/* 80038128 */ fopAc_ac_c* getActor();
/* 8003815C */ void setActor(fopAc_ac_c*);
/* 8003819C */ void getPrm_Morf();
/* 8003819C */ f32 getPrm_Morf();
/* 80038338 */ void getDemoIDData(int*, int*, int*, u16*, u8*);
/* 80038098 */ virtual ~dDemo_actor_c();
/* 800387EC */ virtual void JSGSetData(u32, void const*, u32);
/* 8003A05C */ virtual void JSGFindNodeID(char const*) const;
/* 8003A088 */ virtual void JSGGetNodeTransformation(u32, f32 (*)[4]) const;
/* 8003A05C */ virtual s32 JSGFindNodeID(char const*) const;
/* 8003A088 */ virtual int JSGGetNodeTransformation(u32, f32 (*)[4]) const;
/* 8003A0D8 */ virtual void JSGGetTranslation(Vec*) const;
/* 80038920 */ virtual void JSGSetTranslation(Vec const&);
/* 8003A0F4 */ virtual void JSGGetScaling(Vec*) const;
@ -77,6 +77,16 @@ public:
/* 8003A0D0 */ virtual f32 JSGGetTextureAnimationFrameMax() const;
void setModel(J3DModel* p_model) { mModel = p_model; }
u8 checkEnable(u16 flag) { return mFlags & flag; }
void onEnable(u16 flag) { mFlags |= flag; }
cXyz& getTrans() { return mTrans; }
cXyz& getScale() { return mScale; }
csXyz& getRatate() { return mRotate; }
u32 getAnmId() { return mAnmId; }
u32 getOldAnmId() { return mOldAnmId; }
void setOldAnmId(u32 id) { mOldAnmId = id; }
void setAnmFrameMax(f32 max) { mAnmFrameMax = max; }
f32 getAnmFrame() { return mAnmFrame; }
private:
/* 0x04 */ u16 mFlags;
@ -136,6 +146,8 @@ public:
/* 80038EA8 */ virtual void JSGSetAngleAttenuation(f32, GXSpotFn);
/* 80038EC0 */ virtual void JSGSetDirection(Vec const&);
void onEnable(u8 flag) { mFlags |= flag; }
private:
/* 0x04 */ u8 mFlags;
/* 0x08 */ JStage::TELight mLightType;
@ -161,6 +173,8 @@ public:
/* 80038F10 */ virtual void JSGSetEndZ(f32);
/* 80038F24 */ virtual void JSGSetColor(GXColor);
void onEnable(u8 flag) { mFlags |= flag; }
private:
/* 0x04 */ u8 mFlags;
/* 0x05 */ u8 mFogType;
@ -193,6 +207,8 @@ public:
/* 80038D84 */ virtual f32 JSGGetViewRoll() const;
/* 80038DDC */ virtual void JSGSetViewRoll(f32);
void onEnable(u8 flag) { mFlags |= flag; }
private:
/* 0x04 */ u8 mFlags;
/* 0x08 */ f32 mProjNear;
@ -214,6 +230,8 @@ public:
/* 800394C8 */ virtual ~dDemo_ambient_c();
/* 80038DF0 */ virtual void JSGSetColor(GXColor);
void onEnable(u8 flag) { mFlags |= flag; }
private:
/* 0x04 */ u8 mFlags;
/* 0x05 */ GXColor mColor;
@ -255,6 +273,8 @@ public:
static s32 getMode() { return m_mode; }
static JStudio::stb::TControl* getControl() { return m_control; }
static bool isStatus(u32 status) { return m_status & status; }
static void onStatus(u32 status) { m_status |= status; }
static void offStatus(u32 status) { m_status &= ~status; }
static void setBranchData(const u8* p_data) { m_branchData = p_data; }
static s16 m_branchId;

View File

@ -226,6 +226,7 @@ public:
/* 80051ADC */ void setScissor(f32, f32, f32, f32);
void setCameraID(int id) { mCameraID = id; }
s8 getCameraID() { return mCameraID; }
void setMode(int mode) { mMode = mode; }
f32 getViewPort() { return mXOrig; }
@ -304,6 +305,8 @@ public:
void setXluListItem3D() { setXluDrawList(mDrawBuffers[DB_XLU_LIST_ITEM3D]); }
void setXluListBG() { setXluDrawList(mDrawBuffers[DB_XLU_LIST_BG]); }
void setOpaListBG() { setOpaDrawList(mDrawBuffers[DB_OPA_LIST_BG]); }
void setOpaList3Dlast() { setOpaDrawList(mDrawBuffers[DB_LIST_3D_LAST]); }
void setXluList3Dlast() { setXluDrawList(mDrawBuffers[DB_LIST_3D_LAST]); }
void setXluList2DScreen() { setXluDrawList(mDrawBuffers[DB_LIST_2D_SCREEN]); }
void peekZdata() { mPeekZ.peekData(); }

View File

@ -2,6 +2,7 @@
#define D_D_LIB_H
#include "dolphin/types.h"
#include "dolphin/os/OS.h"
struct JKRAramArchive;
u32 dLib_getExpandSizeFromAramArchive(JKRAramArchive* arc, char const* resName);
@ -71,12 +72,13 @@ struct CSTControl : public STControl {
};
struct dLib_time_c {
/* 80032804 */ void getTime();
/* 80032804 */ static OSTime getTime();
/* 80032880 */ static void stopTime();
/* 800328BC */ static void startTime();
static u8 m_diffTime[4];
static u8 m_stopTime[4];
static OSTime m_diffTime;
static OSTime m_stopTime;
static bool m_timeStopped;
};
#endif /* D_D_LIB_H */

View File

@ -273,6 +273,10 @@ inline void dMsgObject_readMessageGroup(mDoDvdThd_mountXArchive_c** param_0) {
dMsgObject_getMsgObjectClass()->readMessageGroup(param_0);
}
inline void dMsgObject_setDemoMessage(u32 param_0) {
dMsgObject_getMsgObjectClass()->setDemoMessage(param_0);
}
inline void dMsgObject_setShopWaitTimer(u8 timer) {
dMsgObject_c::setShopWaitTimer(timer);
}

View File

@ -3,4 +3,12 @@
#include "dolphin/types.h"
union FpscrUnion {
f64 f;
struct {
u32 fpscr_pad;
u32 fpscr;
} u;
};
#endif /* PPCARCH_H */

View File

@ -26,6 +26,7 @@ public:
void setMapToolId(u8 id) { mMapToolId = id; }
void setEventId(s16 id) { mEventId = id; }
void setCondition(u16 condition) { mCondition = condition; }
u16 getCondition() { return mCondition; }
void setArchiveName(char* name) { mArchiveName = name; }
u8 getMapToolId() { return mMapToolId; }
s16 getEventId() { return mEventId; }

View File

@ -47,8 +47,12 @@ inline void mDoAud_bgmSetSwordUsing(s32 id) {
Z2AudioMgr::getInterface()->mSeqMgr.bgmSetSwordUsing(id);
}
inline void mDoAud_bgmStart(u32 id) {
Z2AudioMgr::getInterface()->mSeqMgr.bgmStart(id, 0, 0);
inline void mDoAud_bgmStart(u32 i_bgmID) {
Z2AudioMgr::getInterface()->mSeqMgr.bgmStart(i_bgmID, 0, 0);
}
inline void mDoAud_bgmNowBattle(f32 param_0) {
Z2AudioMgr::getInterface()->mSeqMgr.bgmNowBattle(param_0);
}
inline void mDoAud_bgmStreamPrepare(u32 param_0) {
@ -75,13 +79,13 @@ inline void mDoAud_setInDarkness(bool state) {
Z2AudioMgr::getInterface()->mSceneMgr.setInDarkness(state);
}
inline void mDoAud_seStart(u32 sfx_id, const Vec* param_1, u32 param_2, s8 param_3) {
Z2AudioMgr::getInterface()->mSeMgr.seStart(sfx_id, param_1, param_2, param_3, 1.0f, 1.0f, -1.0f,
inline void mDoAud_seStart(u32 i_sfxID, const Vec* i_sePos, u32 param_2, s8 i_reverb) {
Z2AudioMgr::getInterface()->mSeMgr.seStart(i_sfxID, i_sePos, param_2, i_reverb, 1.0f, 1.0f, -1.0f,
-1.0f, 0);
}
inline void i_mDoAud_seStartLevel(u32 sfx_id, const Vec* param_1, u32 param_2, s8 param_3) {
Z2AudioMgr::getInterface()->mSeMgr.seStartLevel(sfx_id, param_1, param_2, param_3, 1.0f, 1.0f,
inline void i_mDoAud_seStartLevel(u32 i_sfxID, const Vec* i_sePos, u32 param_2, s8 i_reverb) {
Z2AudioMgr::getInterface()->mSeMgr.seStartLevel(i_sfxID, i_sePos, param_2, i_reverb, 1.0f, 1.0f,
-1.0f, -1.0f, 0);
}

View File

@ -237,9 +237,11 @@ public:
/* 8000FAE8 */ virtual ~mDoExt_morf_c();
void setPlaySpeed(f32 speed) { mFrameCtrl.setRate(speed); }
void setFrame(f32 frame) { mFrameCtrl.setFrame((s16)frame); }
f32 getPlaySpeed() { return mFrameCtrl.getRate(); }
f32 getFrame() { return mFrameCtrl.getFrame(); }
f32 getEndFrame() { return mFrameCtrl.getEnd(); }
bool isStop() {
bool stopped = true;
@ -309,6 +311,8 @@ public:
/* 8000FD10 */ virtual ~mDoExt_McaMorf();
/* 80010074 */ virtual void calc();
J3DModel* getModel() { return mpModel; }
private:
/* 0x38 */ mDoExt_McaMorfCallBack1_c* mpCallback1;
/* 0x3C */ mDoExt_McaMorfCallBack2_c* mpCallback2;

View File

@ -4,14 +4,12 @@
#include "dolphin/types.h"
#include "f_op/f_op_actor.h"
typedef void (*daMP_Func)();
class daMP_c : public fopAc_ac_c {
public:
/* 80031AD0 */ static void daMP_c_THPPlayerPlay();
/* 80031B24 */ void daMP_c_THPPlayerPause();
/* 80031A78 */ void daMP_c_Get_MovieRestFrame();
/* 80031AA4 */ void daMP_c_Set_PercentMovieVolume(f32);
/* 80031AD0 */ static int daMP_c_THPPlayerPlay();
/* 80031B24 */ static void daMP_c_THPPlayerPause();
/* 80031A78 */ static int daMP_c_Get_MovieRestFrame();
/* 80031AA4 */ static void daMP_c_Set_PercentMovieVolume(f32);
/* 80878BB8 */ void daMP_c_Get_arg_demoNo();
/* 80878C04 */ void daMP_c_Get_arg_movieNo();
/* 80878C28 */ void daMP_c_Init();
@ -24,15 +22,15 @@ public:
/* 80878F38 */ void daMP_c_Callback_Main(daMP_c*);
/* 80878F70 */ void daMP_c_Callback_Draw(daMP_c*);
static u8 m_myObj[4];
static daMP_c* m_myObj;
private:
/* 0x568 */ daMP_Func mpGetMovieRestFrame;
/* 0x56C */ daMP_Func mpSetPercentMovieVol;
/* 0x570 */ daMP_Func mpTHPGetTotalFrame;
/* 0x574 */ daMP_Func mpTHPPlay;
/* 0x578 */ daMP_Func mpTHPStop;
/* 0x57C */ daMP_Func mpTHPPause;
/* 0x568 */ int (*mpGetMovieRestFrame)(void);
/* 0x56C */ void (*mpSetPercentMovieVol)(f32);
/* 0x570 */ int (*mpTHPGetTotalFrame)(void);
/* 0x574 */ int (*mpTHPPlay)(void);
/* 0x578 */ void (*mpTHPStop)(void);
/* 0x57C */ int (*mpTHPPause)(void);
}; // Size: 0x580
#endif /* D_A_MOVIE_PLAYER_H */

View File

@ -24,8 +24,8 @@ void __destroy_global_chain();
void __end_critical_region();
void __begin_critical_region();
void __kill_critical_regions();
void raise();
SECTION_DTORS10 extern void* const __destroy_global_chain_reference;
void raise(int);
SECTION_DTORS10 extern void (*__destroy_global_chain_reference[])(void);
//
// Declarations:
@ -33,7 +33,7 @@ SECTION_DTORS10 extern void* const __destroy_global_chain_reference;
/* ############################################################################################## */
/* 8044D440-8044D540 07A160 0100+00 2/2 0/0 0/0 .bss __atexit_funcs */
static u8 __atexit_funcs[256];
static void (*__atexit_funcs[64])(void);
/* ############################################################################################## */
/* 804519A0-804519A8 000EA0 0008+00 0/0 1/1 0/0 .sbss None */
@ -41,34 +41,71 @@ extern u8 data_804519A0[8];
u8 data_804519A0[8];
/* 8045199C-804519A0 000E9C 0004+00 2/2 0/0 0/0 .sbss __console_exit */
static u8 __console_exit[4];
static void (*__console_exit)(void);
/* 80451998-8045199C 000E98 0004+00 1/1 1/1 0/0 .sbss __stdio_exit */
extern u8 __stdio_exit[4];
u8 __stdio_exit[4];
extern void (*__stdio_exit)(void);
void (*__stdio_exit)(void);
/* 80451994-80451998 000E94 0004+00 2/2 0/0 0/0 .sbss __atexit_curr_func */
static u8 __atexit_curr_func[4];
static int __atexit_curr_func;
/* 80451990-80451994 000E90 0004+00 2/2 0/0 0/0 .sbss __aborting */
static u8 __aborting[4];
static int __aborting;
/* 803629CC-80362ABC 35D30C 00F0+00 0/0 2/2 0/0 .text exit */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void exit() {
nofralloc
#include "asm/MSL_C/MSL_Common/Src/abort_exit/exit.s"
void exit(int status) {
int i;
void (**dtor)(void);
if (!__aborting) {
__begin_critical_region(0);
__end_critical_region(0);
__destroy_global_chain();
dtor = __destroy_global_chain_reference;
while (*dtor != NULL) {
(*dtor)();
dtor++;
}
if (__stdio_exit != NULL) {
__stdio_exit();
__stdio_exit = NULL;
}
}
__begin_critical_region(0);
while (__atexit_curr_func > 0)
__atexit_funcs[--__atexit_curr_func]();
__end_critical_region(0);
__kill_critical_regions();
if (__console_exit != NULL) {
__console_exit();
__console_exit = NULL;
}
_ExitProcess();
}
#pragma pop
/* 80362ABC-80362B58 35D3FC 009C+00 0/0 9/9 0/0 .text abort */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void abort() {
nofralloc
#include "asm/MSL_C/MSL_Common/Src/abort_exit/abort.s"
void abort(void) {
raise(1);
__aborting = 1;
__begin_critical_region(0);
while (__atexit_curr_func > 0)
__atexit_funcs[--__atexit_curr_func]();
__end_critical_region(0);
__kill_critical_regions();
if (__console_exit != NULL) {
__console_exit();
__console_exit = NULL;
}
_ExitProcess();
}
#pragma pop

View File

@ -3,12 +3,14 @@
#
LIBBASE_A_CPP_FILES := \
libs/dolphin/base/PPCArch.cpp \
libs/dolphin/base/PPCArch.c \
LIBBASE_A_O_FILES := \
$(BUILD_DIR)/libs/dolphin/base/PPCArch.o \
LIBBASE_A_CFLAGS := \
-O4,p \
-lang=c \
LIBBASE_A_LDFLAGS := \
-nodefaults \
@ -16,14 +18,16 @@ LIBBASE_A_LDFLAGS := \
-proc gekko \
-linkmode moreram \
$(BUILD_DIR)/libs/dolphin/base/PPCArch.o: MWCC_VERSION := 1.2.5
$(BUILD_DIR)/libbase.a: $(LIBBASE_A_O_FILES)
@echo linking... $(BUILD_DIR)/libbase.a
@echo $(LIBBASE_A_O_FILES) > build/LIBBASE_A_ofiles
@$(LD) -xm l $(LIBBASE_A_LDFLAGS) -o $(BUILD_DIR)/libbase.a @build/LIBBASE_A_ofiles
$(BUILD_DIR)/libs/dolphin/base/%.o: libs/dolphin/base/%.cpp
$(BUILD_DIR)/libs/dolphin/base/%.o: libs/dolphin/base/%.c
@mkdir -p $(@D)
@echo building... $<
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
@$(CC) $(CFLAGS) $(LIBBASE_A_CFLAGS) -c -o $@ $(basename $@).cpp
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).c
@$(CC) $(CFLAGS) $(LIBBASE_A_CFLAGS) -c -o $@ $(basename $@).c

View File

@ -11,28 +11,28 @@
// Forward References:
//
extern "C" void PPCMfmsr();
extern "C" void PPCMtmsr();
extern "C" void PPCMfhid0();
extern "C" void PPCMthid0();
extern "C" void PPCMfl2cr();
extern "C" void PPCMtl2cr();
extern "C" void PPCMtdec();
extern "C" void PPCSync();
extern "C" void PPCHalt();
extern "C" void PPCMtmmcr0();
extern "C" void PPCMtmmcr1();
extern "C" void PPCMtpmc1();
extern "C" void PPCMtpmc2();
extern "C" void PPCMtpmc3();
extern "C" void PPCMtpmc4();
extern "C" void PPCMffpscr();
extern "C" void PPCMtfpscr();
extern "C" void PPCMfhid2();
extern "C" void PPCMthid2();
extern "C" void PPCMtwpar();
extern "C" void PPCDisableSpeculation();
extern "C" void PPCSetFpNonIEEEMode();
extern void PPCMfmsr();
extern void PPCMtmsr();
extern void PPCMfhid0();
extern void PPCMthid0();
extern void PPCMfl2cr();
extern void PPCMtl2cr();
extern void PPCMtdec();
extern void PPCSync();
extern void PPCHalt();
extern void PPCMtmmcr0();
extern void PPCMtmmcr1();
extern void PPCMtpmc1();
extern void PPCMtpmc2();
extern void PPCMtpmc3();
extern void PPCMtpmc4();
extern u32 PPCMffpscr();
extern void PPCMtfpscr();
extern void PPCMfhid2();
extern void PPCMthid2();
extern void PPCMtwpar();
extern void PPCDisableSpeculation();
extern void PPCSetFpNonIEEEMode();
//
// External References:
@ -115,14 +115,17 @@ asm void PPCSync() {
}
/* 80339D00-80339D14 334640 0014+00 0/0 7/7 0/0 .text PPCHalt */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void PPCHalt() {
asm void PPCHalt(void) {
// clang-format off
nofralloc
#include "asm/dolphin/base/PPCArch/PPCHalt.s"
sync
_spin:
nop
li r3, 0
nop
b _spin
// clang-format on
}
#pragma pop
/* 80339D14-80339D1C -00001 0008+00 0/0 0/0 0/0 .text PPCMtmmcr0 */
asm void PPCMtmmcr0() {
@ -182,7 +185,7 @@ asm void PPCMtpmc4() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void PPCMffpscr() {
asm u32 PPCMffpscr() {
nofralloc
#include "asm/dolphin/base/PPCArch/PPCMffpscr.s"
}

View File

@ -518,7 +518,7 @@ extern "C" extern u32 __float_nan;
extern "C" extern u32 __float_max;
extern "C" f32 mWaterY__11fopAcM_wt_c[1 + 1 /* padding */];
extern "C" extern u8 mStayNo__20dStage_roomControl_c[4];
extern "C" extern u8 struct_80450D88[4];
extern "C" extern u8 m_count__9daArrow_c[4];
extern "C" u8 mParticleTracePCB__13dPa_control_c[4 + 4 /* padding */];
extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
extern "C" void __register_global_object();

View File

@ -77,7 +77,7 @@ extern "C" extern void* g_fopAc_Method[8];
extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */];
extern "C" u8 now__14mDoMtx_stack_c[48];
extern "C" extern u8 g_dComIfG_gameInfo[122384];
extern "C" extern u8 struct_80450DC0[4];
extern "C" extern u8 mPlayerNo__11daTagMist_c[4];
//
// Declarations:

View File

@ -4,11 +4,13 @@
//
#include "d/com/d_com_static.h"
#include "d/com/d_com_inf_game.h"
#include "d/d_demo.h"
#include "dol2asm.h"
#include "dolphin/types.h"
#include "rel/d/a/tag/d_a_tag_magne/d_a_tag_magne.h"
#include "rel/d/a/d_a_movie_player/d_a_movie_player.h"
#include "rel/d/a/obj/d_a_obj_carry/d_a_obj_carry.h"
#include "d/com/d_com_inf_game.h"
#include "rel/d/a/tag/d_a_tag_magne/d_a_tag_magne.h"
//
// Types:
@ -27,11 +29,13 @@ struct daTagStream_c {
};
struct daTagMist_c {
/* 80031CF0 */ void getPlayerNo();
/* 80031CF0 */ static u8 getPlayerNo();
static u8 mPlayerNo;
};
struct daSetBgObj_c {
/* 80031870 */ void getArcName(fopAc_ac_c*);
/* 80031870 */ static const char* getArcName(fopAc_ac_c*);
};
struct daObjMovebox {
@ -48,15 +52,6 @@ struct daMirror_c {
static u8 m_myObj[4];
};
struct daMP_c {
/* 80031A78 */ void daMP_c_Get_MovieRestFrame();
/* 80031AA4 */ void daMP_c_Set_PercentMovieVolume(f32);
/* 80031AD0 */ void daMP_c_THPPlayerPlay();
/* 80031B24 */ void daMP_c_THPPlayerPause();
static u8 m_myObj[4];
};
struct daGrass_c {
/* 800319C8 */ void deleteRoomGrass(int);
/* 80031A20 */ void deleteRoomFlower(int);
@ -67,7 +62,7 @@ struct daGrass_c {
};
struct daDsh_c {
static u32 OPEN_SIZE;
static f32 OPEN_SIZE;
static f32 OPEN_ACCEL;
static f32 OPEN_SPEED;
static f32 OPEN_BOUND_SPEED;
@ -86,10 +81,6 @@ struct dFlower_packet_c {
static u8 m_deleteRoom[12];
};
struct dDemo_c {
static u8 m_status[4];
};
//
// Forward References:
//
@ -205,6 +196,7 @@ extern "C" void _restgpr_28();
extern "C" void _restgpr_29();
extern "C" extern u8 const __ptmf_null[12 + 4 /* padding */];
extern "C" u8 m_status__7dDemo_c[4];
extern "C" extern u8 mPlayerNo__11daTagMist_c[4];
//
// Declarations:
@ -212,67 +204,102 @@ extern "C" u8 m_status__7dDemo_c[4];
/* 80030F14-80030FBC 02B854 00A8+00 1/1 0/0 0/0 .text
* set__Q27daSus_c6data_cFScRC4cXyzRC4cXyzUcUcUc */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daSus_c::data_c::set(s8 param_0, cXyz const& param_1, cXyz const& param_2, u8 param_3,
u8 param_4, u8 param_5) {
nofralloc
#include "asm/d/com/d_com_static/set__Q27daSus_c6data_cFScRC4cXyzRC4cXyzUcUcUc.s"
void daSus_c::data_c::set(s8 i_roomNo, cXyz const& param_1, cXyz const& param_2, u8 param_3,
u8 param_4, u8 i_type) {
mRoomNo = i_roomNo;
field_0x8.set(param_1.x - param_2.x, param_1.y, param_1.z - param_2.z);
field_0x14.set(param_1.x + param_2.x, param_1.y + param_2.y, param_1.z + param_2.z);
field_0x2 = param_3;
field_0x1 = param_4 != 0;
field_0x3 = isSwitch() == false;
mType = i_type;
}
#pragma pop
/* 80030FBC-80030FCC 02B8FC 0010+00 3/3 0/0 0/0 .text reset__Q27daSus_c6data_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daSus_c::data_c::reset() {
nofralloc
#include "asm/d/com/d_com_static/reset__Q27daSus_c6data_cFv.s"
daSus_c::data_c* daSus_c::data_c::reset() {
mRoomNo = -1;
return mpNext;
}
#pragma pop
/* 80030FCC-80031038 02B90C 006C+00 2/2 0/0 0/0 .text isSwitch__Q27daSus_c6data_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daSus_c::data_c::isSwitch() {
nofralloc
#include "asm/d/com/d_com_static/isSwitch__Q27daSus_c6data_cFv.s"
u8 daSus_c::data_c::isSwitch() {
if (field_0x1 & 1) {
return dComIfGs_isSwitch(field_0x2, mRoomNo);
} else {
return dComIfGs_isSwitch(field_0x2, mRoomNo) == false;
}
}
#pragma pop
/* 80031038-800310C8 02B978 0090+00 2/2 0/0 0/0 .text check__Q27daSus_c6data_cFRC4cXyz */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daSus_c::data_c::check(cXyz const& param_0) {
nofralloc
#include "asm/d/com/d_com_static/check__Q27daSus_c6data_cFRC4cXyz.s"
bool daSus_c::data_c::check(cXyz const& i_pos) {
if (field_0x3 != 0) {
return false;
}
if ((field_0x8.x <= i_pos.x && i_pos.x <= field_0x14.x) &&
(field_0x8.y <= i_pos.y && i_pos.y <= field_0x14.y) &&
(field_0x8.z <= i_pos.z && i_pos.z <= field_0x14.z)) {
return true;
}
return false;
}
#pragma pop
/* 800310C8-80031150 02BA08 0088+00 1/1 0/0 0/0 .text check__Q27daSus_c6data_cFP10fopAc_ac_c */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daSus_c::data_c::check(fopAc_ac_c* param_0) {
nofralloc
#include "asm/d/com/d_com_static/check__Q27daSus_c6data_cFP10fopAc_ac_c.s"
u8 daSus_c::data_c::check(fopAc_ac_c* i_actor) {
if (field_0x3) {
return 0x80;
}
u8 tmp = 0x80;
if (check(i_actor->orig.pos)) {
tmp |= 1;
}
if (check(i_actor->current.pos)) {
tmp |= 2;
return tmp;
}
return tmp;
}
#pragma pop
/* 80031150-80031190 02BA90 0040+00 1/1 0/0 0/0 .text execute__Q27daSus_c6data_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daSus_c::data_c::execute() {
nofralloc
#include "asm/d/com/d_com_static/execute__Q27daSus_c6data_cFv.s"
void daSus_c::data_c::execute() {
u8 sw = isSwitch();
if (sw != field_0x3) {
field_0x3 = sw;
}
}
#pragma pop
/* 80031190-800311FC 02BAD0 006C+00 1/1 0/0 0/0 .text add__Q27daSus_c6room_cFPQ27daSus_c6data_c */
// instruction reorder
#ifdef NONMATCHING
void daSus_c::room_c::add(daSus_c::data_c* i_data) {
if (mpData == NULL) {
mpData = i_data;
i_data->setNext(NULL);
return;
}
if (i_data->getType() == 0) {
i_data->setNext(mpData);
mpData = i_data;
return;
}
daSus_c::data_c* data1 = mpData;
daSus_c::data_c* data2 = data1->getNext();
while (data1->getType() == 0 && data2 != NULL) {
data1 = data2;
data2 = data2->getNext();
}
i_data->setNext(data1->getNext());
data1->setNext(i_data);
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@ -281,16 +308,14 @@ asm void daSus_c::room_c::add(daSus_c::data_c* param_0) {
#include "asm/d/com/d_com_static/add__Q27daSus_c6room_cFPQ27daSus_c6data_c.s"
}
#pragma pop
#endif
/* 800311FC-80031248 02BB3C 004C+00 0/0 0/0 1/1 .text reset__Q27daSus_c6room_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daSus_c::room_c::reset() {
nofralloc
#include "asm/d/com/d_com_static/reset__Q27daSus_c6room_cFv.s"
void daSus_c::room_c::reset() {
while (mpData != NULL && mpData->getType() == 0) {
mpData = mpData->reset();
}
}
#pragma pop
/* ############################################################################################## */
/* 80423FF0-80423FFC 050D10 000C+00 1/1 0/0 0/0 .bss @3840 */
@ -304,9 +329,11 @@ u8 daSus_c::mRoom[256];
/* 80450D88-80450D8C -00001 0004+00 1/1 0/0 2/2 .sbss None */
/* 80450D88 0002+00 data_80450D88 m_count__9daArrow_c */
extern s16 m_count__9daArrow_c;
s16 m_count__9daArrow_c;
/* 80450D8A 0002+00 data_80450D8A mSetTop__7daSus_c */
extern u8 struct_80450D88[4];
u8 struct_80450D88[4];
s16 daSus_c::mSetTop;
/* 80031248-800313BC 02BB88 0174+00 0/0 0/0 1/1 .text newData__7daSus_cFScRC4cXyzRC4cXyzUcUcUc */
#pragma push
@ -360,102 +387,55 @@ asm void daSus_c::execute() {
#pragma pop
/* 8003160C-80031648 02BF4C 003C+00 0/0 0/0 1/1 .text daNpcMsg_setEvtNum__FUc */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daNpcMsg_setEvtNum(u8 param_0) {
nofralloc
#include "asm/d/com/d_com_static/daNpcMsg_setEvtNum__FUc.s"
int daNpcMsg_setEvtNum(u8 iEvtNum) {
dComIfGs_setTmpReg(0xFDFF, iEvtNum);
return 1;
}
#pragma pop
/* ############################################################################################## */
/* 803790B0-803790B0 005710 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
#pragma push
#pragma force_active on
SECTION_DEAD static char const* const stringBase_803790B0 = "F_SP103";
#pragma pop
/* 80031648-800316A8 02BF88 0060+00 0/0 0/0 6/6 .text daNpcKakashi_chkSwdTutorialStage__Fv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daNpcKakashi_chkSwdTutorialStage() {
nofralloc
#include "asm/d/com/d_com_static/daNpcKakashi_chkSwdTutorialStage__Fv.s"
BOOL daNpcKakashi_chkSwdTutorialStage() {
return !strcmp(dComIfGp_getStartStageName(), "F_SP103") && dComIfG_play_c::getLayerNo(0) == 8;
}
#pragma pop
/* 800316A8-800316E0 02BFE8 0038+00 0/0 0/0 3/3 .text daNpcKakashi_setSwdTutorialStep__FUc */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daNpcKakashi_setSwdTutorialStep(u8 param_0) {
nofralloc
#include "asm/d/com/d_com_static/daNpcKakashi_setSwdTutorialStep__FUc.s"
void daNpcKakashi_setSwdTutorialStep(u8 iEvtNum) {
dComIfGs_setTmpReg(0xFF0F, iEvtNum);
}
#pragma pop
/* 800316E0-80031718 02C020 0038+00 0/0 1/1 4/4 .text daNpcKakashi_getSwdTutorialStep__Fv
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm int daNpcKakashi_getSwdTutorialStep() {
nofralloc
#include "asm/d/com/d_com_static/daNpcKakashi_getSwdTutorialStep__Fv.s"
int daNpcKakashi_getSwdTutorialStep() {
return dComIfGs_getTmpReg(0xFF0F);
}
#pragma pop
/* 80031718-80031754 02C058 003C+00 0/0 1/1 0/0 .text daNpcKakashi_getSwdTutorialResult__Fv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daNpcKakashi_getSwdTutorialResult() {
nofralloc
#include "asm/d/com/d_com_static/daNpcKakashi_getSwdTutorialResult__Fv.s"
bool daNpcKakashi_getSwdTutorialResult() {
return dComIfGs_isTmpBit(0x40);
}
#pragma pop
/* 80031754-800317A4 02C094 0050+00 0/0 0/0 1/1 .text daNpcKakashi_setSwdTutorialResult__Fb */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daNpcKakashi_setSwdTutorialResult(bool param_0) {
nofralloc
#include "asm/d/com/d_com_static/daNpcKakashi_setSwdTutorialResult__Fb.s"
void daNpcKakashi_setSwdTutorialResult(bool param_0) {
if (param_0) {
dComIfGs_onTmpBit(0x40);
} else {
dComIfGs_offTmpBit(0x40);
}
}
#pragma pop
/* 800317A4-800317DC 02C0E4 0038+00 0/0 1/1 1/1 .text daNpcKakashi_getSuccessCount__Fv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daNpcKakashi_getSuccessCount() {
nofralloc
#include "asm/d/com/d_com_static/daNpcKakashi_getSuccessCount__Fv.s"
int daNpcKakashi_getSuccessCount() {
return dComIfGs_getTmpReg(0xFEFF);
}
#pragma pop
/* 800317DC-80031838 02C11C 005C+00 0/0 0/0 1/1 .text daNpcKakashi_incSuccessCount__Fv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daNpcKakashi_incSuccessCount() {
nofralloc
#include "asm/d/com/d_com_static/daNpcKakashi_incSuccessCount__Fv.s"
void daNpcKakashi_incSuccessCount() {
dComIfGs_setTmpReg(0xFEFF, dComIfGs_getTmpReg(0xFEFF) + 1);
}
#pragma pop
/* 80031838-80031870 02C178 0038+00 0/0 0/0 4/4 .text daNpcKakashi_clrSuccessCount__Fv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daNpcKakashi_clrSuccessCount() {
nofralloc
#include "asm/d/com/d_com_static/daNpcKakashi_clrSuccessCount__Fv.s"
void daNpcKakashi_clrSuccessCount() {
dComIfGs_setTmpReg(0xFEFF, 0);
}
#pragma pop
/* ############################################################################################## */
/* 803790B0-803790B0 005710 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
@ -480,19 +460,14 @@ u8 daYkgr_c::m_path[4];
/* 80450D98-80450D9C 000298 0004+00 0/0 1/1 2/2 .sbss m_emitter__8daYkgr_c */
u8 daYkgr_c::m_emitter[4];
/* 80450D9C-80450DA4 00029C 0008+00 1/1 0/0 0/0 .sbss arcName$4309 */
static u8 arcName[8];
/* 80031870-800318B4 02C1B0 0044+00 0/0 0/0 19/19 .text getArcName__12daSetBgObj_cFP10fopAc_ac_c
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daSetBgObj_c::getArcName(fopAc_ac_c* param_0) {
nofralloc
#include "asm/d/com/d_com_static/getArcName__12daSetBgObj_cFP10fopAc_ac_c.s"
const char* daSetBgObj_c::getArcName(fopAc_ac_c* param_0) {
static char arcName[8];
sprintf(arcName, "@bg%04x", (u16)fopAcM_GetParam(param_0));
return arcName;
}
#pragma pop
/* ############################################################################################## */
/* 80451D28-80451D30 -00001 0008+00 0/0 0/0 3/3 .sdata2 M_dir_base__Q212daObjMovebox5Act_c
@ -503,7 +478,7 @@ SECTION_SDATA2 void* daObjMovebox::Act_c::M_dir_base[2] = {
};
/* 80451D30-80451D34 000330 0004+00 0/0 0/0 3/3 .sdata2 OPEN_SIZE__7daDsh_c */
SECTION_SDATA2 u32 daDsh_c::OPEN_SIZE = 0x43870CCD;
SECTION_SDATA2 f32 daDsh_c::OPEN_SIZE = 270.1f;
/* 80451D34-80451D38 000334 0004+00 0/0 0/0 1/1 .sdata2 OPEN_ACCEL__7daDsh_c */
SECTION_SDATA2 f32 daDsh_c::OPEN_ACCEL = 10.0f;
@ -515,7 +490,7 @@ SECTION_SDATA2 f32 daDsh_c::OPEN_SPEED = -40.0f;
SECTION_SDATA2 f32 daDsh_c::OPEN_BOUND_SPEED = -30.0f;
/* 80451D40-80451D44 000340 0004+00 0/0 0/0 1/1 .sdata2 OPEN_BOUND_RATIO__7daDsh_c */
SECTION_SDATA2 f32 daDsh_c::OPEN_BOUND_RATIO = -2.0f / 5.0f;
SECTION_SDATA2 f32 daDsh_c::OPEN_BOUND_RATIO = -0.4f;
/* 80451D44-80451D48 000344 0004+00 0/0 0/0 1/1 .sdata2 CLOSE_ACCEL__7daDsh_c */
SECTION_SDATA2 f32 daDsh_c::CLOSE_ACCEL = 10.0f;
@ -527,7 +502,7 @@ SECTION_SDATA2 f32 daDsh_c::CLOSE_SPEED = 40.0f;
SECTION_SDATA2 f32 daDsh_c::CLOSE_BOUND_SPEED = 30.0f;
/* 80451D50-80451D54 000350 0004+00 0/0 0/0 1/1 .sdata2 CLOSE_BOUND_RATIO__7daDsh_c */
SECTION_SDATA2 f32 daDsh_c::CLOSE_BOUND_RATIO = -2.0f / 5.0f;
SECTION_SDATA2 f32 daDsh_c::CLOSE_BOUND_RATIO = -0.4f;
/* 80451D54-80451D58 000354 0004+00 1/1 0/0 0/0 .sdata2 @4338 */
SECTION_SDATA2 static u8 lit_4338[4] = {
@ -617,47 +592,33 @@ asm void daGrass_c::deleteRoomFlower(int param_0) {
/* ############################################################################################## */
/* 80450DB8-80450DBC 0002B8 0004+00 4/4 0/0 2/2 .sbss m_myObj__6daMP_c */
u8 daMP_c::m_myObj[4];
daMP_c* daMP_c::m_myObj;
/* 80031A78-80031AA4 02C3B8 002C+00 0/0 0/0 1/1 .text daMP_c_Get_MovieRestFrame__6daMP_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daMP_c::daMP_c_Get_MovieRestFrame() {
nofralloc
#include "asm/d/com/d_com_static/daMP_c_Get_MovieRestFrame__6daMP_cFv.s"
int daMP_c::daMP_c_Get_MovieRestFrame() {
return m_myObj->mpGetMovieRestFrame();
}
#pragma pop
/* 80031AA4-80031AD0 02C3E4 002C+00 0/0 0/0 1/1 .text daMP_c_Set_PercentMovieVolume__6daMP_cFf */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daMP_c::daMP_c_Set_PercentMovieVolume(f32 param_0) {
nofralloc
#include "asm/d/com/d_com_static/daMP_c_Set_PercentMovieVolume__6daMP_cFf.s"
void daMP_c::daMP_c_Set_PercentMovieVolume(f32 i_volume) {
m_myObj->mpSetPercentMovieVol(i_volume);
}
#pragma pop
/* 80031AD0-80031B24 02C410 0054+00 0/0 1/1 1/1 .text daMP_c_THPPlayerPlay__6daMP_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daMP_c::daMP_c_THPPlayerPlay() {
nofralloc
#include "asm/d/com/d_com_static/daMP_c_THPPlayerPlay__6daMP_cFv.s"
int daMP_c::daMP_c_THPPlayerPlay() {
if (m_myObj == NULL) {
dDemo_c::onStatus(1);
return 0;
} else {
dDemo_c::offStatus(1);
return m_myObj->mpTHPPlay();
}
}
#pragma pop
/* 80031B24-80031B50 02C464 002C+00 0/0 0/0 1/1 .text daMP_c_THPPlayerPause__6daMP_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daMP_c::daMP_c_THPPlayerPause() {
nofralloc
#include "asm/d/com/d_com_static/daMP_c_THPPlayerPause__6daMP_cFv.s"
void daMP_c::daMP_c_THPPlayerPause() {
m_myObj->mpTHPPause();
}
#pragma pop
/* ############################################################################################## */
/* 80450DBC-80450DC0 0002BC 0004+00 1/1 0/0 3/3 .sbss mTagMagne__12daTagMagne_c */
@ -671,8 +632,7 @@ int daTagMagne_c::checkMagnetCode(cBgS_PolyInfo& poly) {
}
int magCode = dComIfG_Bgsp().GetMagnetCode(poly);
if ((magCode == 1 && mTagMagne->checkMagneA()) ||
(magCode == 2 && mTagMagne->checkMagneB()) ||
if ((magCode == 1 && mTagMagne->checkMagneA()) || (magCode == 2 && mTagMagne->checkMagneB()) ||
(magCode == 3 && mTagMagne->checkMagneC())) {
return 1;
}
@ -710,21 +670,15 @@ int daTagMagne_c::checkMagneC() {
/* ############################################################################################## */
/* 80450DC0-80450DC4 -00001 0004+00 4/4 0/0 2/2 .sbss None */
/* 80450DC0 0001+00 data_80450DC0 None */
extern u8 struct_80450DC0;
u8 struct_80450DC0;
u8 daTagMist_c::mPlayerNo;
/* 80450DC1 0003+00 data_80450DC1 None */
bool daObjCarry_c::mSaveFlag;
/* 80031CF0-80031CF8 02C630 0008+00 0/0 1/1 0/0 .text getPlayerNo__11daTagMist_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daTagMist_c::getPlayerNo() {
nofralloc
#include "asm/d/com/d_com_static/getPlayerNo__11daTagMist_cFv.s"
u8 daTagMist_c::getPlayerNo() {
return mPlayerNo;
}
#pragma pop
/* 80031CF8-80031D04 02C638 000C+00 0/0 1/1 0/0 .text clrSaveFlag__12daObjCarry_cFv */
void daObjCarry_c::clrSaveFlag() {

File diff suppressed because it is too large Load Diff

View File

@ -5,10 +5,10 @@
#include "d/d_demo.h"
#include "d/com/d_com_inf_game.h"
#include "d/msg/d_msg_object.h"
#include "dol2asm.h"
#include "dolphin/types.h"
#include "rel/d/a/d_a_movie_player/d_a_movie_player.h"
#include "d/msg/d_msg_object.h"
//
// Forward References:
@ -506,37 +506,21 @@ SECTION_DATA extern void* data_803A7BF4[9] = {
namespace {
/* 80037DE4-80037E44 032724 0060+00 1/0 0/0 0/0 .text
* __dt__Q220@unnamed@d_demo_cpp@24jstudio_tAdaptor_messageFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm jstudio_tAdaptor_message::~jstudio_tAdaptor_message() {
nofralloc
#include "asm/d/d_demo/func_80037DE4.s"
}
#pragma pop
jstudio_tAdaptor_message::~jstudio_tAdaptor_message() {}
/* 80037E44-80037E74 032784 0030+00 1/0 0/0 0/0 .text
* adaptor_do_MESSAGE__Q220@unnamed@d_demo_cpp@24jstudio_tAdaptor_messageFQ37JStudio4data15TEOperationDataPCvUl
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void jstudio_tAdaptor_message::adaptor_do_MESSAGE(JStudio::data::TEOperationData param_0, const void* param_1, u32 param_2) {
nofralloc
#include "asm/d/d_demo/func_80037E44.s"
void jstudio_tAdaptor_message::adaptor_do_MESSAGE(JStudio::data::TEOperationData param_0,
const void* pContent, u32 uSize) {
if (param_0 == JStudio::data::UNK_0x19) {
dMsgObject_setDemoMessage(*(u32*)pContent);
}
}
#pragma pop
/* 80037E74-80037ED4 0327B4 0060+00 1/0 0/0 0/0 .text
* __dt__Q220@unnamed@d_demo_cpp@29jstudio_tCreateObject_messageFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm jstudio_tCreateObject_message::~jstudio_tCreateObject_message() {
nofralloc
#include "asm/d/d_demo/func_80037E74.s"
}
#pragma pop
jstudio_tCreateObject_message::~jstudio_tCreateObject_message() {}
/* 80037ED4-80038020 032814 014C+00 1/0 0/0 0/0 .text
* create__Q220@unnamed@d_demo_cpp@29jstudio_tCreateObject_messageFPPQ27JStudio7TObjectRCQ47JStudio3stb4data20TParse_TBlock_object
@ -544,7 +528,9 @@ asm jstudio_tCreateObject_message::~jstudio_tCreateObject_message() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void jstudio_tCreateObject_message::create(JStudio::TObject** param_0, const JStudio::stb::data::TParse_TBlock_object& param_1) {
asm void
jstudio_tCreateObject_message::create(JStudio::TObject** param_0,
const JStudio::stb::data::TParse_TBlock_object& param_1) {
nofralloc
#include "asm/d/d_demo/func_80037ED4.s"
}
@ -611,6 +597,18 @@ SECTION_SDATA2 static u8 lit_4040[4] = {
SECTION_SDATA2 static f32 lit_4041 = 1.0f;
/* 80038020-80038098 032960 0078+00 1/1 0/0 0/0 .text __ct__13dDemo_actor_cFv */
// matches with literals
#ifdef NONMATCHING
dDemo_actor_c::dDemo_actor_c() {
mFlags = 0;
mTrans.set(0.0f, 0.0f, 0.0f);
mScale.set(1.0f, 1.0f, 1.0f);
mRotate.set(0, 0, 0);
mModel = NULL;
mAnmFrameMax = __float_max[0];
mTexAnmFrameMax = __float_max[0];
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@ -619,8 +617,24 @@ asm dDemo_actor_c::dDemo_actor_c() {
#include "asm/d/d_demo/__ct__13dDemo_actor_cFv.s"
}
#pragma pop
#endif
/* 80038098-80038128 0329D8 0090+00 1/0 0/0 0/0 .text __dt__13dDemo_actor_cFv */
// matches with vtable data
#ifdef NONMATCHING
dDemo_actor_c::~dDemo_actor_c() {
fopAc_ac_c* actor = getActor();
if (actor != NULL) {
actor->mDemoActorId = 0;
}
mActorId = -1;
mOldAnmId = -1;
mBtpId = -1;
mBtkId = -1;
mBrkId = -1;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@ -630,26 +644,26 @@ extern "C" asm void __dt__13dDemo_actor_cFv() {
#include "asm/d/d_demo/__dt__13dDemo_actor_cFv.s"
}
#pragma pop
#endif
/* 80038128-8003815C 032A68 0034+00 1/1 0/0 0/0 .text getActor__13dDemo_actor_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dDemo_actor_c::getActor() {
nofralloc
#include "asm/d/d_demo/getActor__13dDemo_actor_cFv.s"
fopAc_ac_c* dDemo_actor_c::getActor() {
return fopAcM_SearchByID(mActorId);
}
#pragma pop
/* 8003815C-8003819C 032A9C 0040+00 1/1 1/1 0/0 .text setActor__13dDemo_actor_cFP10fopAc_ac_c */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dDemo_actor_c::setActor(fopAc_ac_c* param_0) {
nofralloc
#include "asm/d/d_demo/setActor__13dDemo_actor_cFP10fopAc_ac_c.s"
void dDemo_actor_c::setActor(fopAc_ac_c* pActor) {
if (pActor == NULL) {
mActorId = -1;
} else {
mActorId = fopAcM_GetID(pActor);
}
mOldAnmId = -1;
mBtpId = -1;
mBtkId = -1;
mBrkId = -1;
}
#pragma pop
/* ############################################################################################## */
/* 80451DB8-80451DC0 0003B8 0008+00 4/4 0/0 0/0 .sdata2 @4127 */
@ -659,7 +673,7 @@ SECTION_SDATA2 static f64 lit_4127 = 4503601774854144.0 /* cast s32 to float */;
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dDemo_actor_c::getPrm_Morf() {
asm f32 dDemo_actor_c::getPrm_Morf() {
nofralloc
#include "asm/d/d_demo/getPrm_Morf__13dDemo_actor_cFv.s"
}
@ -729,7 +743,7 @@ const u8* dDemo_c::m_branchData;
static u8 struct_80450E48[4];
/* 80450E4C-80450E50 00034C 0004+00 1/1 0/0 0/0 .sbss it$4206 */
static u8 it[4];
static int it;
/* 80038338-80038490 032C78 0158+00 0/0 1/1 5/5 .text getDemoIDData__13dDemo_actor_cFPiPiPiPUsPUc
*/
@ -747,7 +761,7 @@ asm void dDemo_actor_c::getDemoIDData(int* param_0, int* param_1, int* param_2,
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void dDemo_getJaiPointer(char const* param_0, u32 param_1, int param_2, u16* param_3) {
static asm void* dDemo_getJaiPointer(char const* param_0, u32 param_1, int param_2, u16* param_3) {
nofralloc
#include "asm/d/d_demo/dDemo_getJaiPointer__FPCcUliPUs.s"
}
@ -759,20 +773,93 @@ SECTION_SDATA2 static f32 lit_4152 = -1.0f;
/* 80038518-800387A8 032E58 0290+00 0/0 0/0 2/2 .text
* dDemo_setDemoData__FP10fopAc_ac_cUcP14mDoExt_McaMorfPCciPUsUlSc */
// reg alloc
#ifdef NONMATCHING
int dDemo_setDemoData(fopAc_ac_c* param_0, u8 param_1, mDoExt_McaMorf* param_2, char const* param_3,
int param_4, u16* param_5, u32 param_6, s8 param_7) {
dDemo_actor_c* demo_actor = dDemo_c::getActor(param_0->mDemoActorId);
if (demo_actor == NULL) {
return 0;
}
u32 flags = demo_actor->checkEnable(param_1);
if (flags & 2) {
param_0->current.pos = demo_actor->getTrans();
param_0->next.pos = param_0->current.pos;
}
if (flags & 8) {
param_0->mCollisionRot = demo_actor->getRatate();
}
if (flags & 4) {
param_0->mScale = demo_actor->getScale();
}
if (flags & 0x80) {
param_0->mGravity = demo_actor->getPrm_Morf();
}
if (param_2 == NULL) {
return 1;
}
demo_actor->setModel(param_2->getModel());
if (flags & 0x20) {
u32 anmID = demo_actor->getAnmId();
if (anmID != demo_actor->getOldAnmId()) {
const char* a_name;
if (anmID & 0x10000) {
a_name = dStage_roomControl_c::getDemoArcName();
} else {
a_name = param_3;
}
demo_actor->setOldAnmId(anmID);
J3DAnmTransform* i_key = (J3DAnmTransform*)dComIfG_getObjectIDRes(a_name, anmID);
void* ptr = dDemo_getJaiPointer(a_name, anmID, param_4, param_5);
param_2->setAnm(i_key, -1, demo_actor->getPrm_Morf(), 1.0f, 0.0f, -1.0f, ptr);
demo_actor->setAnmFrameMax(param_2->getEndFrame());
}
}
if (flags & 0x40) {
f32 anm_frame = demo_actor->getAnmFrame();
if (anm_frame > 1.0f) {
param_2->setFrame(anm_frame - 1.0f);
param_2->play(&param_0->current.pos, param_6, param_7);
} else {
param_2->setFrame(anm_frame);
}
} else {
param_2->play(&param_0->current.pos, param_6, param_7);
}
return 1;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dDemo_setDemoData(fopAc_ac_c* param_0, u8 param_1, mDoExt_McaMorf* param_2,
char const* param_3, int param_4, u16* param_5, u32 param_6,
char const* a_name, int param_4, u16* param_5, u32 param_6,
s8 param_7) {
nofralloc
#include "asm/d/d_demo/dDemo_setDemoData__FP10fopAc_ac_cUcP14mDoExt_McaMorfPCciPUsUlSc.s"
}
#pragma pop
#endif
/* 800387A8-800387EC 0330E8 0044+00 1/1 0/0 0/0 .text branchFile__FPCc */
static void branchFile(char const* resName) {
dDemo_c::setBranchData((u8*)dComIfG_getObjectRes(dStage_roomControl_c::getDemoArcName(), resName));
dDemo_c::setBranchData(
(u8*)dComIfG_getObjectRes(dStage_roomControl_c::getDemoArcName(), resName));
}
/* ############################################################################################## */
@ -814,258 +901,205 @@ asm void dDemo_actor_c::JSGSetTranslation(Vec const& param_0) {
#pragma pop
/* 80038980-800389A8 0332C0 0028+00 1/0 0/0 0/0 .text JSGSetScaling__13dDemo_actor_cFRC3Vec */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dDemo_actor_c::JSGSetScaling(Vec const& param_0) {
nofralloc
#include "asm/d/d_demo/JSGSetScaling__13dDemo_actor_cFRC3Vec.s"
void dDemo_actor_c::JSGSetScaling(Vec const& i_scale) {
mScale = i_scale;
onEnable(0x4);
}
#pragma pop
/* ############################################################################################## */
/* 80451DCC-80451DD0 0003CC 0004+00 1/1 0/0 0/0 .sdata2 @4567 */
SECTION_SDATA2 static f32 lit_4567 = 182.04444885253906f;
/* 800389A8-80038A0C 0332E8 0064+00 1/0 0/0 0/0 .text JSGSetRotation__13dDemo_actor_cFRC3Vec */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dDemo_actor_c::JSGSetRotation(Vec const& param_0) {
nofralloc
#include "asm/d/d_demo/JSGSetRotation__13dDemo_actor_cFRC3Vec.s"
void dDemo_actor_c::JSGSetRotation(Vec const& i_rotate) {
mRotate.x = i_rotate.x * 182.04444885253906f;
mRotate.y = i_rotate.y * 182.04444885253906f;
mRotate.z = i_rotate.z * 182.04444885253906f;
onEnable(0x8);
}
#pragma pop
/* 80038A0C-80038A20 03334C 0014+00 1/0 0/0 0/0 .text JSGSetShape__13dDemo_actor_cFUl */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dDemo_actor_c::JSGSetShape(u32 param_0) {
nofralloc
#include "asm/d/d_demo/JSGSetShape__13dDemo_actor_cFUl.s"
void dDemo_actor_c::JSGSetShape(u32 i_shape) {
mShape = i_shape;
onEnable(0x10);
}
#pragma pop
/* 80038A20-80038A40 033360 0020+00 1/0 0/0 0/0 .text JSGSetAnimation__13dDemo_actor_cFUl
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dDemo_actor_c::JSGSetAnimation(u32 param_0) {
nofralloc
#include "asm/d/d_demo/JSGSetAnimation__13dDemo_actor_cFUl.s"
void dDemo_actor_c::JSGSetAnimation(u32 i_anmID) {
mAnmId = i_anmID;
mAnmFrameMax = __float_max[0];
onEnable(0x20);
}
#pragma pop
/* 80038A40-80038A54 033380 0014+00 1/0 0/0 0/0 .text JSGSetAnimationFrame__13dDemo_actor_cFf */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dDemo_actor_c::JSGSetAnimationFrame(f32 param_0) {
nofralloc
#include "asm/d/d_demo/JSGSetAnimationFrame__13dDemo_actor_cFf.s"
void dDemo_actor_c::JSGSetAnimationFrame(f32 i_frame) {
mAnmFrame = i_frame;
onEnable(0x40);
}
#pragma pop
/* 80038A54-80038A68 033394 0014+00 1/0 0/0 0/0 .text JSGSetAnimationTransition__13dDemo_actor_cFf
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dDemo_actor_c::JSGSetAnimationTransition(f32 param_0) {
nofralloc
#include "asm/d/d_demo/JSGSetAnimationTransition__13dDemo_actor_cFf.s"
void dDemo_actor_c::JSGSetAnimationTransition(f32 i_trans) {
mAnmTransition = i_trans;
onEnable(0x80);
}
#pragma pop
/* 80038A68-80038A7C 0333A8 0014+00 1/0 0/0 0/0 .text JSGSetTextureAnimation__13dDemo_actor_cFUl
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dDemo_actor_c::JSGSetTextureAnimation(u32 param_0) {
nofralloc
#include "asm/d/d_demo/JSGSetTextureAnimation__13dDemo_actor_cFUl.s"
void dDemo_actor_c::JSGSetTextureAnimation(u32 i_anm) {
mTexAnm = i_anm;
onEnable(0x100);
}
#pragma pop
/* 80038A7C-80038A90 0333BC 0014+00 1/0 0/0 0/0 .text
* JSGSetTextureAnimationFrame__13dDemo_actor_cFf */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dDemo_actor_c::JSGSetTextureAnimationFrame(f32 param_0) {
nofralloc
#include "asm/d/d_demo/JSGSetTextureAnimationFrame__13dDemo_actor_cFf.s"
void dDemo_actor_c::JSGSetTextureAnimationFrame(f32 i_frame) {
mTexAnmFrame = i_frame;
onEnable(0x200);
}
#pragma pop
/* 80038A90-80038AC4 0333D0 0034+00 8/8 0/0 0/0 .text getView__Fv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void getView() {
nofralloc
#include "asm/d/d_demo/getView__Fv.s"
static view_class* getView() {
if (dComIfGp_getWindowNum() == 0) {
return NULL;
}
int camID = dComIfGp_getWindow(0)->getCameraID();
return dComIfGp_getCamera(camID);
}
#pragma pop
/* 80038AC4-80038AF8 033404 0034+00 1/0 0/0 0/0 .text JSGGetProjectionNear__14dDemo_camera_cCFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm f32 dDemo_camera_c::JSGGetProjectionNear() const {
nofralloc
#include "asm/d/d_demo/JSGGetProjectionNear__14dDemo_camera_cCFv.s"
f32 dDemo_camera_c::JSGGetProjectionNear() const {
view_class* view = getView();
if (view == NULL) {
return FLOAT_LABEL(lit_4040);
}
return view->mNear;
}
#pragma pop
/* 80038AF8-80038B0C 033438 0014+00 1/0 0/0 0/0 .text JSGSetProjectionNear__14dDemo_camera_cFf */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dDemo_camera_c::JSGSetProjectionNear(f32 param_0) {
nofralloc
#include "asm/d/d_demo/JSGSetProjectionNear__14dDemo_camera_cFf.s"
void dDemo_camera_c::JSGSetProjectionNear(f32 i_projNear) {
mProjNear = i_projNear;
onEnable(0x1);
}
#pragma pop
/* 80038B0C-80038B40 03344C 0034+00 1/0 0/0 0/0 .text JSGGetProjectionFar__14dDemo_camera_cCFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm f32 dDemo_camera_c::JSGGetProjectionFar() const {
nofralloc
#include "asm/d/d_demo/JSGGetProjectionFar__14dDemo_camera_cCFv.s"
f32 dDemo_camera_c::JSGGetProjectionFar() const {
view_class* view = getView();
if (view == NULL) {
return lit_4041;
}
return view->mFar;
}
#pragma pop
/* 80038B40-80038B54 033480 0014+00 1/0 0/0 0/0 .text JSGSetProjectionFar__14dDemo_camera_cFf */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dDemo_camera_c::JSGSetProjectionFar(f32 param_0) {
nofralloc
#include "asm/d/d_demo/JSGSetProjectionFar__14dDemo_camera_cFf.s"
void dDemo_camera_c::JSGSetProjectionFar(f32 i_projFar) {
mProjFar = i_projFar;
onEnable(0x2);
}
#pragma pop
/* ############################################################################################## */
/* 80451DD0-80451DD4 0003D0 0004+00 1/1 0/0 0/0 .sdata2 @4642 */
SECTION_SDATA2 static f32 lit_4642 = 60.0f;
/* 80038B54-80038B88 033494 0034+00 1/0 0/0 0/0 .text JSGGetProjectionFovy__14dDemo_camera_cCFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm f32 dDemo_camera_c::JSGGetProjectionFovy() const {
nofralloc
#include "asm/d/d_demo/JSGGetProjectionFovy__14dDemo_camera_cCFv.s"
f32 dDemo_camera_c::JSGGetProjectionFovy() const {
view_class* view = getView();
if (view == NULL) {
return 60.0f;
}
return view->mFovy;
}
#pragma pop
/* 80038B88-80038B9C 0334C8 0014+00 1/0 0/0 0/0 .text JSGSetProjectionFovy__14dDemo_camera_cFf */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dDemo_camera_c::JSGSetProjectionFovy(f32 param_0) {
nofralloc
#include "asm/d/d_demo/JSGSetProjectionFovy__14dDemo_camera_cFf.s"
void dDemo_camera_c::JSGSetProjectionFovy(f32 i_projFovy) {
mProjFovy = i_projFovy;
onEnable(0x4);
}
#pragma pop
/* ############################################################################################## */
/* 80451DD4-80451DD8 0003D4 0004+00 1/1 0/0 0/0 .sdata2 @4655 */
SECTION_SDATA2 static f32 lit_4655 = 19.0f / 14.0f;
/* 80038B9C-80038BD0 0334DC 0034+00 1/0 0/0 0/0 .text JSGGetProjectionAspect__14dDemo_camera_cCFv
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm f32 dDemo_camera_c::JSGGetProjectionAspect() const {
nofralloc
#include "asm/d/d_demo/JSGGetProjectionAspect__14dDemo_camera_cCFv.s"
f32 dDemo_camera_c::JSGGetProjectionAspect() const {
view_class* view = getView();
if (view == NULL) {
return 1.3571428f;
}
return view->mAspect;
}
#pragma pop
/* 80038BD0-80038BE4 033510 0014+00 1/0 0/0 0/0 .text JSGSetProjectionAspect__14dDemo_camera_cFf
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dDemo_camera_c::JSGSetProjectionAspect(f32 param_0) {
nofralloc
#include "asm/d/d_demo/JSGSetProjectionAspect__14dDemo_camera_cFf.s"
void dDemo_camera_c::JSGSetProjectionAspect(f32 i_aspect) {
mProjAspect = i_aspect;
onEnable(0x8);
}
#pragma pop
/* 80038BE4-80038C44 033524 0060+00 1/0 0/0 0/0 .text JSGGetViewPosition__14dDemo_camera_cCFP3Vec
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dDemo_camera_c::JSGGetViewPosition(Vec* param_0) const {
nofralloc
#include "asm/d/d_demo/JSGGetViewPosition__14dDemo_camera_cCFP3Vec.s"
void dDemo_camera_c::JSGGetViewPosition(Vec* o_position) const {
view_class* view = getView();
if (view == NULL) {
f32 tmp_0 = FLOAT_LABEL(lit_4040);
o_position->x = tmp_0;
o_position->y = tmp_0;
o_position->z = tmp_0;
} else {
*o_position = view->mLookat.mEye;
}
}
#pragma pop
/* 80038C44-80038C6C 033584 0028+00 1/0 0/0 0/0 .text JSGSetViewPosition__14dDemo_camera_cFRC3Vec
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dDemo_camera_c::JSGSetViewPosition(Vec const& param_0) {
nofralloc
#include "asm/d/d_demo/JSGSetViewPosition__14dDemo_camera_cFRC3Vec.s"
void dDemo_camera_c::JSGSetViewPosition(Vec const& i_position) {
mViewPos = i_position;
onEnable(0x10);
}
#pragma pop
/* 80038C6C-80038CD0 0335AC 0064+00 1/0 0/0 0/0 .text JSGGetViewUpVector__14dDemo_camera_cCFP3Vec
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dDemo_camera_c::JSGGetViewUpVector(Vec* param_0) const {
nofralloc
#include "asm/d/d_demo/JSGGetViewUpVector__14dDemo_camera_cCFP3Vec.s"
void dDemo_camera_c::JSGGetViewUpVector(Vec* o_upVec) const {
view_class* view = getView();
if (view == NULL) {
f32 tmp_0 = FLOAT_LABEL(lit_4040);
o_upVec->x = tmp_0;
o_upVec->y = lit_4041;
o_upVec->z = tmp_0;
} else {
*o_upVec = view->mLookat.mUp;
}
}
#pragma pop
/* 80038CD0-80038CF8 033610 0028+00 1/0 0/0 0/0 .text JSGSetViewUpVector__14dDemo_camera_cFRC3Vec
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dDemo_camera_c::JSGSetViewUpVector(Vec const& param_0) {
nofralloc
#include "asm/d/d_demo/JSGSetViewUpVector__14dDemo_camera_cFRC3Vec.s"
void dDemo_camera_c::JSGSetViewUpVector(Vec const& i_upVec) {
mViewUpVector = i_upVec;
onEnable(0x20);
}
#pragma pop
/* 80038CF8-80038D5C 033638 0064+00 1/0 0/0 0/0 .text
* JSGGetViewTargetPosition__14dDemo_camera_cCFP3Vec */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dDemo_camera_c::JSGGetViewTargetPosition(Vec* param_0) const {
nofralloc
#include "asm/d/d_demo/JSGGetViewTargetPosition__14dDemo_camera_cCFP3Vec.s"
void dDemo_camera_c::JSGGetViewTargetPosition(Vec* o_targetPos) const {
view_class* view = getView();
if (view == NULL) {
f32 tmp_0 = FLOAT_LABEL(lit_4040);
o_targetPos->x = tmp_0;
o_targetPos->y = tmp_0;
o_targetPos->z = lit_4041;
} else {
*o_targetPos = view->mLookat.mCenter;
}
}
#pragma pop
/* 80038D5C-80038D84 03369C 0028+00 1/0 0/0 0/0 .text
* JSGSetViewTargetPosition__14dDemo_camera_cFRC3Vec */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dDemo_camera_c::JSGSetViewTargetPosition(Vec const& param_0) {
nofralloc
#include "asm/d/d_demo/JSGSetViewTargetPosition__14dDemo_camera_cFRC3Vec.s"
void dDemo_camera_c::JSGSetViewTargetPosition(Vec const& i_targetPos) {
mViewTargetVector = i_targetPos;
onEnable(0x40);
}
#pragma pop
/* ############################################################################################## */
/* 80451DD8-80451DE0 0003D8 0004+04 2/2 0/0 0/0 .sdata2 @4710 */
@ -1077,6 +1111,18 @@ SECTION_SDATA2 static f32 lit_4710[1 + 1 /* padding */] = {
/* 80038D84-80038DDC 0336C4 0058+00 1/0 0/0 0/0 .text JSGGetViewRoll__14dDemo_camera_cCFv
*/
// matches with literals
#ifdef NONMATCHING
f32 dDemo_camera_c::JSGGetViewRoll() const {
view_class* view = getView();
if (view == NULL) {
return 0.0f;
}
return view->mBank * 0.0054931640625f;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@ -1085,131 +1131,87 @@ asm f32 dDemo_camera_c::JSGGetViewRoll() const {
#include "asm/d/d_demo/JSGGetViewRoll__14dDemo_camera_cCFv.s"
}
#pragma pop
#endif
/* 80038DDC-80038DF0 03371C 0014+00 1/0 0/0 0/0 .text JSGSetViewRoll__14dDemo_camera_cFf
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dDemo_camera_c::JSGSetViewRoll(f32 param_0) {
nofralloc
#include "asm/d/d_demo/JSGSetViewRoll__14dDemo_camera_cFf.s"
void dDemo_camera_c::JSGSetViewRoll(f32 i_roll) {
mViewRoll = i_roll;
onEnable(0x80);
}
#pragma pop
/* 80038DF0-80038E20 033730 0030+00 1/0 0/0 0/0 .text JSGSetColor__15dDemo_ambient_cF8_GXColor */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dDemo_ambient_c::JSGSetColor(_GXColor param_0) {
nofralloc
#include "asm/d/d_demo/JSGSetColor__15dDemo_ambient_cF8_GXColor.s"
void dDemo_ambient_c::JSGSetColor(GXColor i_color) {
mColor = i_color;
onEnable(0x1);
}
#pragma pop
/* 80038E20-80038E34 033760 0014+00 1/0 0/0 0/0 .text
* JSGSetLightType__13dDemo_light_cFQ26JStage7TELight */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dDemo_light_c::JSGSetLightType(JStage::TELight param_0) {
nofralloc
#include "asm/d/d_demo/JSGSetLightType__13dDemo_light_cFQ26JStage7TELight.s"
void dDemo_light_c::JSGSetLightType(JStage::TELight i_lightType) {
mLightType = i_lightType;
onEnable(0x1);
}
#pragma pop
/* 80038E34-80038E5C 033774 0028+00 1/0 0/0 0/0 .text JSGSetPosition__13dDemo_light_cFRC3Vec */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dDemo_light_c::JSGSetPosition(Vec const& param_0) {
nofralloc
#include "asm/d/d_demo/JSGSetPosition__13dDemo_light_cFRC3Vec.s"
void dDemo_light_c::JSGSetPosition(Vec const& i_pos) {
mPosition = i_pos;
onEnable(0x2);
}
#pragma pop
/* 80038E5C-80038E8C 03379C 0030+00 1/0 0/0 0/0 .text JSGSetColor__13dDemo_light_cF8_GXColor */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dDemo_light_c::JSGSetColor(_GXColor param_0) {
nofralloc
#include "asm/d/d_demo/JSGSetColor__13dDemo_light_cF8_GXColor.s"
void dDemo_light_c::JSGSetColor(GXColor i_color) {
mColor = i_color;
onEnable(0x4);
}
#pragma pop
/* 80038E8C-80038EA8 0337CC 001C+00 1/0 0/0 0/0 .text
* JSGSetDistanceAttenuation__13dDemo_light_cFff13_GXDistAttnFn */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dDemo_light_c::JSGSetDistanceAttenuation(f32 param_0, f32 param_1, _GXDistAttnFn param_2) {
nofralloc
#include "asm/d/d_demo/JSGSetDistanceAttenuation__13dDemo_light_cFff13_GXDistAttnFn.s"
void dDemo_light_c::JSGSetDistanceAttenuation(f32 param_0, f32 param_1, GXDistAttnFn i_distAttenFn) {
field_0x24 = param_0;
field_0x28 = param_1;
mDistAttenFn = i_distAttenFn;
onEnable(0x8);
}
#pragma pop
/* 80038EA8-80038EC0 0337E8 0018+00 1/0 0/0 0/0 .text
* JSGSetAngleAttenuation__13dDemo_light_cFf9_GXSpotFn */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dDemo_light_c::JSGSetAngleAttenuation(f32 param_0, _GXSpotFn param_1) {
nofralloc
#include "asm/d/d_demo/JSGSetAngleAttenuation__13dDemo_light_cFf9_GXSpotFn.s"
void dDemo_light_c::JSGSetAngleAttenuation(f32 param_0, GXSpotFn i_spotFn) {
field_0x2c = param_0;
mSpotFn = i_spotFn;
onEnable(0x10);
}
#pragma pop
/* 80038EC0-80038EE8 033800 0028+00 1/0 0/0 0/0 .text JSGSetDirection__13dDemo_light_cFRC3Vec */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dDemo_light_c::JSGSetDirection(Vec const& param_0) {
nofralloc
#include "asm/d/d_demo/JSGSetDirection__13dDemo_light_cFRC3Vec.s"
void dDemo_light_c::JSGSetDirection(Vec const& i_direction) {
mDirection = i_direction;
onEnable(0x20);
}
#pragma pop
/* 80038EE8-80038EFC 033828 0014+00 1/0 0/0 0/0 .text
* JSGSetFogFunction__11dDemo_fog_cF10_GXFogType */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dDemo_fog_c::JSGSetFogFunction(_GXFogType param_0) {
nofralloc
#include "asm/d/d_demo/JSGSetFogFunction__11dDemo_fog_cF10_GXFogType.s"
void dDemo_fog_c::JSGSetFogFunction(GXFogType i_fogType) {
mFogType = i_fogType;
onEnable(0x1);
}
#pragma pop
/* 80038EFC-80038F10 03383C 0014+00 1/0 0/0 0/0 .text JSGSetStartZ__11dDemo_fog_cFf */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dDemo_fog_c::JSGSetStartZ(f32 param_0) {
nofralloc
#include "asm/d/d_demo/JSGSetStartZ__11dDemo_fog_cFf.s"
void dDemo_fog_c::JSGSetStartZ(f32 i_startZ) {
mStartZ = i_startZ;
onEnable(0x2);
}
#pragma pop
/* 80038F10-80038F24 033850 0014+00 1/0 0/0 0/0 .text JSGSetEndZ__11dDemo_fog_cFf */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dDemo_fog_c::JSGSetEndZ(f32 param_0) {
nofralloc
#include "asm/d/d_demo/JSGSetEndZ__11dDemo_fog_cFf.s"
void dDemo_fog_c::JSGSetEndZ(f32 i_endZ) {
mEndZ = i_endZ;
onEnable(0x4);
}
#pragma pop
/* 80038F24-80038F54 033864 0030+00 1/0 0/0 0/0 .text JSGSetColor__11dDemo_fog_cF8_GXColor */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dDemo_fog_c::JSGSetColor(_GXColor param_0) {
nofralloc
#include "asm/d/d_demo/JSGSetColor__11dDemo_fog_cF8_GXColor.s"
void dDemo_fog_c::JSGSetColor(GXColor i_color) {
mColor = i_color;
onEnable(0x8);
}
#pragma pop
/* 80038F54-80038F70 033894 001C+00 1/1 0/0 0/0 .text __ct__14dDemo_object_cFv */
dDemo_object_c::dDemo_object_c() {
@ -1386,7 +1388,7 @@ extern "C" asm void __dt__15dDemo_ambient_cFv() {
/* 80039528-80039678 033E68 0150+00 1/0 0/0 0/0 .text
* JSGFindObject__14dDemo_system_cCFPPQ26JStage7TObjectPCcQ26JStage8TEObject */
bool dDemo_system_c::JSGFindObject(JStage::TObject** p_TObj, char const* actorName,
JStage::TEObject objType) const {
JStage::TEObject objType) const {
if (mpObject == NULL) {
return true;
}
@ -1396,7 +1398,8 @@ bool dDemo_system_c::JSGFindObject(JStage::TObject** p_TObj, char const* actorNa
if (actor == NULL) {
if (objType == JStage::TOBJ_ACTOR && !strncmp(actorName, "d_act", 5)) {
actor = (fopAc_ac_c*)fopAcM_fastCreate(actorName, 0, NULL, -1, NULL, NULL, NULL, NULL);
actor =
(fopAc_ac_c*)fopAcM_fastCreate(actorName, 0, NULL, -1, NULL, NULL, NULL, NULL);
if (actor == NULL) {
return true;
}
@ -1506,7 +1509,7 @@ int dDemo_c::start(u8 const* p_data, cXyz* p_translation, f32 rotationY) {
if (m_data == NULL) {
m_control->setSuspend(0);
}
m_control->forward(0);
m_translation = p_translation;
@ -1617,6 +1620,14 @@ void dDemo_c::reset() {
}
/* 80039F1C-80039F9C 03485C 0080+00 1/0 0/0 0/0 .text emitter_create__16dDemo_particle_cFUl */
// matches with literals
#ifdef NONMATCHING
void dDemo_particle_c::emitter_create(u32 param_0) {
cXyz tmp(0.0f, 0.0f, 0.0f);
int stayNo = dComIfGp_roomControl_getStayNo();
dComIfGp_particle_set(param_0, &tmp, NULL, NULL, 0xFF, NULL, stayNo, NULL, NULL, NULL);
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@ -1625,6 +1636,7 @@ asm void dDemo_particle_c::emitter_create(u32 param_0) {
#include "asm/d/d_demo/emitter_create__16dDemo_particle_cFUl.s"
}
#pragma pop
#endif
/* 80039F9C-80039FFC 0348DC 0060+00 1/0 0/0 0/0 .text __dt__16dDemo_particle_cFv */
#pragma push
@ -1650,67 +1662,38 @@ extern "C" asm void __dt__14dDemo_camera_cFv() {
/* 8003A05C-8003A088 03499C 002C+00 1/0 0/0 0/0 .text JSGFindNodeID__13dDemo_actor_cCFPCc
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dDemo_actor_c::JSGFindNodeID(char const* param_0) const {
nofralloc
#include "asm/d/d_demo/JSGFindNodeID__13dDemo_actor_cCFPCc.s"
s32 dDemo_actor_c::JSGFindNodeID(char const* param_0) const {
return mModel->getModelData()->getJointName()->getIndex(param_0);
}
#pragma pop
/* 8003A088-8003A0C8 0349C8 0040+00 1/0 0/0 0/0 .text
* JSGGetNodeTransformation__13dDemo_actor_cCFUlPA4_f */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dDemo_actor_c::JSGGetNodeTransformation(u32 param_0, f32 (*param_1)[4]) const {
nofralloc
#include "asm/d/d_demo/JSGGetNodeTransformation__13dDemo_actor_cCFUlPA4_f.s"
int dDemo_actor_c::JSGGetNodeTransformation(u32 param_0, Mtx param_1) const {
PSMTXCopy(mModel->i_getAnmMtx((u16)param_0), param_1);
return 1;
}
#pragma pop
/* 8003A0C8-8003A0D0 034A08 0008+00 1/0 0/0 0/0 .text JSGGetAnimationFrameMax__13dDemo_actor_cCFv
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm f32 dDemo_actor_c::JSGGetAnimationFrameMax() const {
nofralloc
#include "asm/d/d_demo/JSGGetAnimationFrameMax__13dDemo_actor_cCFv.s"
f32 dDemo_actor_c::JSGGetAnimationFrameMax() const {
return mAnmFrameMax;
}
#pragma pop
/* 8003A0D0-8003A0D8 034A10 0008+00 1/0 0/0 0/0 .text
* JSGGetTextureAnimationFrameMax__13dDemo_actor_cCFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm f32 dDemo_actor_c::JSGGetTextureAnimationFrameMax() const {
nofralloc
#include "asm/d/d_demo/JSGGetTextureAnimationFrameMax__13dDemo_actor_cCFv.s"
f32 dDemo_actor_c::JSGGetTextureAnimationFrameMax() const {
return mTexAnmFrameMax;
}
#pragma pop
/* 8003A0D8-8003A0F4 034A18 001C+00 1/0 0/0 0/0 .text JSGGetTranslation__13dDemo_actor_cCFP3Vec */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dDemo_actor_c::JSGGetTranslation(Vec* param_0) const {
nofralloc
#include "asm/d/d_demo/JSGGetTranslation__13dDemo_actor_cCFP3Vec.s"
void dDemo_actor_c::JSGGetTranslation(Vec* o_trans) const {
*o_trans = mTrans;
}
#pragma pop
/* 8003A0F4-8003A110 034A34 001C+00 1/0 0/0 0/0 .text JSGGetScaling__13dDemo_actor_cCFP3Vec */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dDemo_actor_c::JSGGetScaling(Vec* param_0) const {
nofralloc
#include "asm/d/d_demo/JSGGetScaling__13dDemo_actor_cCFP3Vec.s"
void dDemo_actor_c::JSGGetScaling(Vec* o_scale) const {
*o_scale = mScale;
}
#pragma pop
/* 8003A110-8003A188 034A50 0078+00 1/0 0/0 0/0 .text JSGGetRotation__13dDemo_actor_cCFP3Vec */
#pragma push

View File

@ -357,49 +357,41 @@ asm u32 dLib_getExpandSizeFromAramArchive(JKRAramArchive* param_0, char const* p
/* ############################################################################################## */
/* 80450DD8-80450DDC 0002D8 0004+00 2/2 0/0 0/0 .sbss m_diffTime__11dLib_time_c */
u8 dLib_time_c::m_diffTime[4];
/* 80450DDC-80450DE0 0002DC 0004+00 2/2 0/0 0/0 .sbss None */
static u8 data_80450DDC[4];
OSTime dLib_time_c::m_diffTime;
/* 80450DE0-80450DE4 0002E0 0004+00 3/3 0/0 0/0 .sbss m_stopTime__11dLib_time_c */
u8 dLib_time_c::m_stopTime[4];
/* 80450DE4-80450DE8 0002E4 0004+00 3/3 0/0 0/0 .sbss None */
static u8 data_80450DE4[4];
OSTime dLib_time_c::m_stopTime;
/* 80450DE8-80450DF0 0002E8 0008+00 3/3 0/0 0/0 .sbss None */
static u8 data_80450DE8[8];
bool dLib_time_c::m_timeStopped;
/* 80032804-80032880 02D144 007C+00 0/0 8/8 0/0 .text getTime__11dLib_time_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dLib_time_c::getTime() {
nofralloc
#include "asm/d/d_lib/getTime__11dLib_time_cFv.s"
OSTime dLib_time_c::getTime() {
if (!m_timeStopped) {
return OSGetTime() - m_diffTime;
}
OSTime time = OSGetTime();
m_diffTime += (time - m_stopTime);
m_stopTime = time;
return time - m_diffTime;
}
#pragma pop
/* 80032880-800328BC 02D1C0 003C+00 0/0 1/1 0/0 .text stopTime__11dLib_time_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dLib_time_c::stopTime() {
nofralloc
#include "asm/d/d_lib/stopTime__11dLib_time_cFv.s"
void dLib_time_c::stopTime() {
if (!m_timeStopped) {
m_stopTime = OSGetTime();
m_timeStopped = true;
}
}
#pragma pop
/* 800328BC-80032918 02D1FC 005C+00 0/0 1/1 0/0 .text startTime__11dLib_time_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dLib_time_c::startTime() {
nofralloc
#include "asm/d/d_lib/startTime__11dLib_time_cFv.s"
void dLib_time_c::startTime() {
if (m_timeStopped) {
m_diffTime += OSGetTime() - m_stopTime;
m_timeStopped = false;
}
}
#pragma pop
/* ############################################################################################## */
/* 80450DF0-80450DF8 -00001 0008+00 0/0 4/4 0/0 .sbss None */
@ -408,4 +400,4 @@ asm void dLib_time_c::startTime() {
/* 80450DF2 0001+00 data_80450DF2 None */
/* 80450DF3 0005+00 data_80450DF3 None */
extern u8 struct_80450DF0[8];
u8 struct_80450DF0[8];
u8 struct_80450DF0[8] ALIGN_DECL(8);

View File

@ -50,7 +50,7 @@ extern "C" void setDefault__12dVibration_cFv();
extern "C" void Init__12dVibration_cFv();
extern "C" void Pause__12dVibration_cFv();
extern "C" void Remove__12dVibration_cFv();
extern "C" extern u8 data_80450F58[8];
extern "C" extern u8 on_final_boss_stg[8];
//
// External References:
@ -243,9 +243,4 @@ asm void dVibration_c::Remove() {
nofralloc
#include "asm/d/d_vibration/Remove__12dVibration_cFv.s"
}
#pragma pop
/* ############################################################################################## */
/* 80450F58-80450F60 000458 0008+00 0/0 2/2 0/0 .sbss None */
extern u8 data_80450F58[8];
u8 data_80450F58[8];
#pragma pop

View File

@ -825,9 +825,9 @@ void dEvDtStaff_c::specialProcSound() {
case 'RIDD':
int* typeP = dComIfGp_evmng_getMyIntegerP(staffId, "Type");
if (typeP != NULL && *typeP == 1) {
mDoAud_seStart(0xC, NULL, 0, 0);
mDoAud_seStart(Z2SE_READ_RIDDLE_A, NULL, 0, 0);
} else {
mDoAud_seStart(0xD, NULL, 0, 0);
mDoAud_seStart(Z2SE_READ_RIDDLE_B, NULL, 0, 0);
}
break;
case 'BGMS':
@ -1087,7 +1087,7 @@ void dEvDtStaff_c::specialProcDirector() {
if (soundP != NULL) {
switch (*soundP) {
case 0:
mDoAud_seStart(0, NULL, 0, 0);
mDoAud_seStart(Z2SE_SY_DUMMY, NULL, 0, 0);
}
}
break;