summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorTakaRikka <38417346+TakaRikka@users.noreply.github.com>2021-08-23 13:47:18 -0700
committerGitHub <noreply@github.com>2021-08-23 22:47:18 +0200
commite14b04c54a40e95f0117df44f1186f2d44799ac7 (patch)
tree0fb9accde017a5f0dd204c4f3845904a5325fe1e /include
parentf6df420a61bc6c5176c0190a227b615a68ef910a (diff)
move more of d_save / d_com_inf_game (#141)
* some d_save matches / fixes * more d_save cleanup * fopAc_ac_c changes * move a bunch of d_save / d_com_inf_game stuff * format + remove asm * move bit labels to correct header * format * move d_item * fix check_itemno doc * move * fixes * getLayerNo_common_common almost matching just regalloc issues * small fixes * few more matches * fix
Diffstat (limited to 'include')
-rw-r--r--include/JSystem/JKernel/JKRExpHeap.h4
-rw-r--r--include/JSystem/JUtility/JUTGamePad.h2
-rw-r--r--include/d/a/d_a_alink.h11
-rw-r--r--include/d/a/d_a_itembase.h20
-rw-r--r--include/d/a/d_a_player.h4
-rw-r--r--include/d/com/d_com_inf_game.h623
-rw-r--r--include/d/d_attention.h6
-rw-r--r--include/d/d_bomb.h2
-rw-r--r--include/d/d_item.h384
-rw-r--r--include/d/d_stage.h269
-rw-r--r--include/d/event/d_event.h1
-rw-r--r--include/d/event/d_event_manager.h2
-rw-r--r--include/d/kankyo/d_kankyo.h2
-rw-r--r--include/d/meter/d_meter2_info.h23
-rw-r--r--include/d/save/d_save.h554
-rw-r--r--include/dolphin/mtx/vec.h5
-rw-r--r--include/f_op/f_op_actor.h4
-rw-r--r--include/msl_c/string.h2
18 files changed, 1348 insertions, 570 deletions
diff --git a/include/JSystem/JKernel/JKRExpHeap.h b/include/JSystem/JKernel/JKRExpHeap.h
index dcadbef8d4..eeeab96a39 100644
--- a/include/JSystem/JKernel/JKRExpHeap.h
+++ b/include/JSystem/JKernel/JKRExpHeap.h
@@ -91,4 +91,8 @@ public:
static JKRExpHeap* create(void*, u32, JKRHeap*, bool);
};
+inline JKRExpHeap* JKRCreateExpHeap(u32 param_0, JKRHeap* param_1, bool param_2) {
+ return JKRExpHeap::create(param_0, param_1, param_2);
+}
+
#endif /* JKREXPHEAP_H */
diff --git a/include/JSystem/JUtility/JUTGamePad.h b/include/JSystem/JUtility/JUTGamePad.h
index 5153cb08f0..875da3ab5a 100644
--- a/include/JSystem/JUtility/JUTGamePad.h
+++ b/include/JSystem/JUtility/JUTGamePad.h
@@ -40,7 +40,7 @@ public:
static u8 mPadAssign[4];
static u8 sSuppressPadReset[4];
static s32 sAnalogMode;
- static u8 sRumbleSupported[4];
+ static u32 sRumbleSupported;
enum EStickMode {};
enum EWhichStick {};
diff --git a/include/d/a/d_a_alink.h b/include/d/a/d_a_alink.h
index 7b185f5bc5..726d58950c 100644
--- a/include/d/a/d_a_alink.h
+++ b/include/d/a/d_a_alink.h
@@ -545,7 +545,7 @@ public:
/* 800BB084 */ void getBodyAngleXAtnActor(int);
/* 800BB2B0 */ void setBodyAngleXReadyAnime(int);
/* 800BB324 */ void setMagicArmorBrk(int);
- /* 800BB408 */ void checkMagicArmorHeavy() const;
+ /* 800BB408 */ BOOL checkMagicArmorHeavy() const;
/* 800BB4B8 */ void checkHeavyStateOn(int, int);
/* 800BB644 */ void initGravity();
/* 800BB770 */ void setSpecialGravity(f32, f32, int);
@@ -577,7 +577,7 @@ public:
/* 800BF9F0 */ void setItemActor();
/* 800BFD74 */ void makeItemType();
/* 800BFDB0 */ void checkZoraWearAbility() const;
- /* 800BFDFC */ void checkMagicArmorWearAbility() const;
+ /* 800BFDFC */ BOOL checkMagicArmorWearAbility() const;
/* 800BFE48 */ void loadAramBmd(u16, u32);
/* 800BFF04 */ void loadAram(u16, u32);
/* 800BFF70 */ void loadAramItemBrk(u16, J3DModel*);
@@ -2156,7 +2156,7 @@ public:
virtual bool getSwordChangeWaitTimer(void) const;
virtual bool checkMetamorphose(void) const;
virtual bool checkWolfDownAttackPullOut(void) const;
- virtual bool checkBootsOrArmorHeavy(void) const;
+ virtual BOOL checkBootsOrArmorHeavy(void) const;
virtual s32 getBottleOpenAppearItem(void) const;
virtual bool checkItemSwordEquip(void) const;
virtual float getSinkShapeOffset(void) const;
@@ -2171,6 +2171,7 @@ public:
// inlined version of checkModeFlg
u32 i_checkModeFlg(u32 pFlag) const { return mModeFlg & pFlag; }
bool checkUpperAnime(u16 pIdx) const { return mUpperAnime[UPPER_NOW].getIdx() == pIdx; }
+ bool checkIronBallWaitAnime() const { return checkUpperAnime(0x19C); }
static u8 const m_mainBckShield[80];
static u8 const m_mainBckSword[20];
@@ -2909,7 +2910,7 @@ public:
private:
/* 0x0000 */ fopAc_ac_c mActor;
- /* 0x0570 */ u8 field_0x570[0xCE4];
+ /* 0x0568 */ u8 field_0x568[0xCEC];
/* 0x1254 */ daPy_actorKeep_c mZeldaActorKeep;
};
@@ -2932,7 +2933,7 @@ public:
private:
/* 0x0000 */ fopAc_ac_c mActor;
- /* 0x0570 */ u8 field_0x570[0x324];
+ /* 0x0568 */ u8 field_0x568[0x32C];
/* 0x0894 */ u32 mStateFlg1;
/* 0x0898 */ u32 mEndResetStateFlg0;
};
diff --git a/include/d/a/d_a_itembase.h b/include/d/a/d_a_itembase.h
index 3cdfec42dd..aa5871a8bc 100644
--- a/include/d/a/d_a_itembase.h
+++ b/include/d/a/d_a_itembase.h
@@ -36,6 +36,26 @@ public:
static u8 const m_data[56];
private:
+#ifdef NONMATCHING
+ /* 0x568 */ void* field_0x568;
+ /* 0x56C */ request_of_phase_process_class* field_0x56c;
+ /* 0x570 */ u8 field_0x578[4];
+ /* 0x574 */ J3DModel* field_0x574;
+ /* 0x578 */ mDoExt_btkAnm* field_0x578;
+ /* 0x57C */ mDoExt_bpkAnm* field_0x57c;
+ /* 0x580 */ mDoExt_brkAnm* field_0x580;
+ /* 0x584 */ mDoExt_bckAnm* field_0x584;
+ /* 0x588 */ mDoExt_btpAnm* field_0x588;
+ /* 0x58C */ dBgS_ObjAcch field_0x58c;
+ /* 0x764 */ dBgS_AcchCir field_0x764;
+ /* 0x7A4 */ dCcD_Stts field_0x7a4;
+ /* 0x7E0 */ dCcD_Cyl field_0x7e0;
+ /* 0x91C */ u32 field_0x91c;
+ /* 0x920 */ u8 field_0x920[0xA];
+ /* 0x92A */ u8 m_itemNo;
+ /* 0x92B */ u8 field_0x92b;
+#endif
+
u8 unk0[0x92a];
u8 mItemNo;
u8 unk2347;
diff --git a/include/d/a/d_a_player.h b/include/d/a/d_a_player.h
index f48328e34c..c83e850200 100644
--- a/include/d/a/d_a_player.h
+++ b/include/d/a/d_a_player.h
@@ -126,6 +126,7 @@ private:
class daPy_py_c : public fopAc_ac_c {
public:
+ /* 0x0568 */ u8 field_0x568[8];
/* 0x0570 */ int mNoResetFlg0;
/* 0x0574 */ int mNoResetFlg1;
/* 0x0578 */ int mNoResetFlg2;
@@ -399,8 +400,11 @@ public:
int i_checkNoResetFlg1(daPy_FLG1 pFlag) const { return mNoResetFlg1 & pFlag; }
int i_checkNoResetFlg2(daPy_FLG2 pFlag) const { return mNoResetFlg2 & pFlag; }
void i_onNoResetFlg0(int pFlg) { mNoResetFlg0 |= pFlg; }
+ void i_onNoResetFlg3(int pFlg) { mNoResetFlg3 |= pFlg; }
+ void i_offNoResetFlg3(int pFlg) { mNoResetFlg3 &= ~pFlg; }
void i_onEndResetFlg1(daPy_ERFLG1 pFlg) { mEndResetFlg1 |= pFlg; }
int i_checkWolf() { return i_checkNoResetFlg1(Wolf); }
+ BOOL i_checkEquipHeavyBoots() const { return i_checkNoResetFlg0(EquipHeavyBoots); }
static u8 m_midnaActor[4];
};
diff --git a/include/d/com/d_com_inf_game.h b/include/d/com/d_com_inf_game.h
index fb3aa7e4b6..70a50b7c5c 100644
--- a/include/d/com/d_com_inf_game.h
+++ b/include/d/com/d_com_inf_game.h
@@ -15,7 +15,7 @@
#include "dolphin/types.h"
struct dTimer_c {
- /* 8025D524 */ void deleteCheck();
+ /* 8025D524 */ int deleteCheck();
/* 8025D618 */ void start(int, s16);
/* 8025D538 */ void start(int);
/* 8025D7E8 */ void stop(u8);
@@ -39,70 +39,78 @@ public:
u8 mTimerType;
};
+struct camera_class {};
+
class dComIfG_camera_info_class {
public:
- dComIfG_camera_info_class(void) {}
- /* 80030208 */ ~dComIfG_camera_info_class() {}
+ dComIfG_camera_info_class() {}
+ ~dComIfG_camera_info_class() {}
-private:
- u8 field_0x0[12];
- cXyz field_0xc;
- cXyz field_0x18;
- u8 field_0x24[0x14];
+ /* 0x00 */ camera_class* mCamera;
+ /* 0x04 */ u8 field_0x4;
+ /* 0x05 */ u8 field_0x5[3];
+ /* 0x08 */ u32 mCameraAttentionStatus;
+ /* 0x0C */ f32 mCameraZoomScale;
+ /* 0x10 */ f32 mCameraZoomForcus;
+ /* 0x14 */ char* mCameraParamFileName;
+ /* 0x18 */ cXyz mCameraPos;
+ /* 0x24 */ cXyz mCameraTarget;
+ /* 0x30 */ f32 field_0x30;
+ /* 0x34 */ s16 field_0x34;
};
STATIC_ASSERT(sizeof(dComIfG_camera_info_class) == 0x38);
class dComIfG_play_c {
public:
dComIfG_play_c() { this->ct(); }
- void ct(void);
- void init(void);
- void itemInit(void);
+ void ct();
+ void init();
+ void itemInit();
void setItemBombNumCount(u8, s16);
s16 getItemBombNumCount(u8);
void clearItemBombNumCount(u8);
void setNowVibration(u8);
- u32 getNowVibration(void);
+ u32 getNowVibration();
void setStartStage(dStage_startStage_c*);
- int getLayerNo_common_common(char const*, int, int);
- int getLayerNo_common(char const*, int, int);
- int getLayerNo(int);
- void createParticle(void);
- u32 createSimpleModel(void);
- void deleteSimpleModel(void);
- void drawSimpleModel(void);
+ static int getLayerNo_common_common(char const*, int, int);
+ static int getLayerNo_common(char const*, int, int);
+ static int getLayerNo(int);
+ void createParticle();
+ u32 createSimpleModel();
+ void deleteSimpleModel();
+ void drawSimpleModel();
u32 addSimpleModel(J3DModelData*, int, u8);
u32 removeSimpleModel(J3DModelData*, int);
u32 entrySimpleModel(J3DModel*, int);
void setTimerNowTimeMs(int);
- int getTimerNowTimeMs(void);
+ int getTimerNowTimeMs();
void setTimerLimitTimeMs(int);
- int getTimerLimitTimeMs(void);
+ int getTimerLimitTimeMs();
void setTimerMode(int);
- int getTimerMode(void);
+ int getTimerMode();
void setTimerType(u8);
- u8 getTimerType(void);
+ u8 getTimerType();
void setTimerPtr(dTimer_c*);
- dTimer_c* getTimerPtr(void);
+ dTimer_c* getTimerPtr();
void setWarpItemData(const char*, cXyz, s16, s8, u8, u8);
- void setSelectItem(int, u8);
- void setSelectItemTest(int, u8);
~dComIfG_play_c() {}
// inlines
bool& isPauseFlag() { return mPauseFlag; }
void* getMsgObjectClass() { return mMsgObjectClass; }
dStage_roomControl_c* getRoomControl() { return &mRoomControl; }
+ dStage_stageDt_c& getStage() { return mStageData; }
dEvt_control_c getEvent() { return mEvent; }
- daHorse_c* getHorseActor() { return mHorseActor; }
+ daHorse_c* getHorseActor() { return (daHorse_c*)mPlayerPtr[1]; }
u8& getItemLifeCountType() { return mItemLifeCountType; }
void setItem(u8 slot, u8 i_no) {
mItemSlot = slot;
mItemID = i_no;
}
- void setUnkWarashibe1(u8 num) { mItemSlot = num; }
- void setUnkWarashibe2(u8 num) { mItemID = num; }
+ void setSelectItem(int idx, u8 itemId) { mSelectItem[idx] = itemId; }
+
+ u8 getSelectItem(int idx) { return mSelectItem[idx]; }
void setZStatus(u8 status, u8 flag) {
mZStatus = status;
@@ -137,17 +145,28 @@ public:
void setItemMaxLifeCount(s16 max) { mItemMaxLifeCount += max; }
void setOxygen(int oxygen) { mOxygen = oxygen; }
void setMaxOxygen(int max) { mMaxOxygen = max; }
- u8 getDoStatus(void) { return mDoStatus; }
- u8 getRStatus(void) { return mRStatus; }
+ u8 getDoStatus() { return mDoStatus; }
+ u8 getRStatus() { return mRStatus; }
inline char* getStartStageName() { return mStartStage.getName(); }
+ inline s8 getStartStageRoomNo() { return mStartStage.getRoomNo(); }
+ inline s8 getStartStageLayer() { return mStartStage.getLayer(); }
+ inline u8 isHeapLockFlag() { return mHeapLockFlag; }
+ inline void setHeapLockFlag(u8 status) { mHeapLockFlag = status; }
+ inline void setSubHeapLockFlag(int idx, u8 status) { mSubHeapLockFlag[idx] = status; }
+ inline u8 getSubHeapLockFlag(int idx) { return mSubHeapLockFlag[idx]; }
+ inline void offHeapLockFlag() { mHeapLockFlag = 0; }
+ inline JKRExpHeap* getSubExpHeap2D(int idx) { return mSubExpHeap2D[idx]; }
+ inline void setSubExpHeap2D(int idx, void* heap) { mSubExpHeap2D[idx] = (JKRExpHeap*)heap; }
+ inline void offEnableNextStage() { mNextStage.offEnable(); }
+ inline JKRHeap* getExpHeap2D() { return mExpHeap2D; }
+ inline dEvent_manager_c& getEvtManager() { return mEvtManager; }
+ inline dAttention_c& getAttention() { return mAttention; }
public:
/* 0x00000 */ dBgS mDBgS;
/* 0x01404 */ dCcS mDCcS;
/* 0x03EC8 */ dStage_startStage_c mStartStage;
- /* 0x03ED5 */ u8 field_0x3ed5; // probably padding
/* 0x03ED6 */ dStage_nextStage_c mNextStage;
- /* 0x03EE7 */ u8 field_0x3ee7; // probably padding
/* 0x03EE8 */ dStage_stageDt_c mStageData;
/* 0x03F8C */ dStage_roomControl_c mRoomControl;
/* 0x03F90 */ dEvt_control_c mEvent;
@@ -188,10 +207,9 @@ public:
/* 0x04E0E */ u16 mStatus;
/* 0x04E10 */ dDlst_window_c mWindow[1];
/* 0x04E3C */ dComIfG_camera_info_class mCameraInfo[1];
- /* 0x04E74 */ daAlink_c* mPlayer;
+ /* 0x04E74 */ daAlink_c* mPlayer[1];
/* 0x04E78 */ s8 mPlayerCameraID[4];
- /* 0x04E7C */ daAlink_c* mPlayerPtr;
- /* 0x04E80 */ daHorse_c* mHorseActor;
+ /* 0x04E7C */ void* mPlayerPtr[2]; // 0: Player, 1: Horse ; type may be wrong
/* 0x04E84 */ void* mMsgObjectClass;
/* 0x04E88 */ float mItemLifeCount;
/* 0x04E8C */ int mItemRupeeCount;
@@ -334,8 +352,8 @@ public:
/* 0x04F90 */ JKRExpHeap* mMsgExpHeap;
/* 0x04F94 */ char field_0x4F94[8]; // related to setWarpItemData
/* 0x04F9C */ cXyz field_0x4f9c; // related to setWarpItemData
- /* 0x04FA8 */ u8 field_0x4fa8[2];
- /* 0x04FAA */ u8 field_0x4faa; // related to setWarpItemData
+ /* 0x04FA8 */ s16 field_0x4fa8;
+ /* 0x04FAA */ s8 field_0x4faa; // related to setWarpItemData
/* 0x04FAB */ u8 field_0x4fab; // related to setWarpItemData
/* 0x04FAC */ u8 field_0x4fac; // related to setWarpItemData
/* 0x04FAD */ u8 field_0x4fad[3];
@@ -367,279 +385,556 @@ class dRes_control_c {
public:
dRes_control_c() {}
/* 8003BFB0 */ ~dRes_control_c();
- /* 8003C078 */ void setRes(char const*, dRes_info_c*, int, char const*, u8, JKRHeap*);
- /* 8003C160 */ void syncRes(char const*, dRes_info_c*, int);
+ /* 8003C078 */ static int setRes(char const*, dRes_info_c*, int, char const*, u8, JKRHeap*);
+ /* 8003C160 */ static int syncRes(char const*, dRes_info_c*, int);
/* 8003C194 */ void deleteRes(char const*, dRes_info_c*, int);
/* 8003C37C */ void getRes(char const*, char const*, dRes_info_c*, int);
+ int setObjectRes(const char* name, u8 param_1, JKRHeap* heap) {
+ return setRes(name, &mResInfos1[0], ARRAY_SIZE(mResInfos1), "/res/Object/", param_1, heap);
+ }
+
+ int syncObjectRes(const char* name) {
+ return syncRes(name, &mResInfos1[0], ARRAY_SIZE(mResInfos1));
+ }
+
private:
/* 0x0000 */ dRes_info_c mResInfos1[0x80];
/* 0x1200 */ dRes_info_c mResInfos2[0x40];
}; // Size: 0x1B00
-#pragma pack(push, 1)
class dComIfG_inf_c {
public:
- dComIfG_inf_c(void) { this->ct(); }
+ dComIfG_inf_c() { this->ct(); }
~dComIfG_inf_c() {}
- void ct(void);
-
- // temp for setWarashibeItem
- void setPlayUnkWarashibe1(u8 num) { play.setUnkWarashibe1(num); }
- void setPlayUnkWarashibe2(u8 num) { play.setUnkWarashibe2(num); }
- void setWorldDark(u8 state) { mWorldDark = state; }
- u8 setWorldDark() { return mWorldDark; }
-
- dSv_player_c& getPlayer() { return info.getPlayer(); }
- dSv_save_c& getSaveFile() { return info.getSavedata(); }
- u32 getNowVibration() { return play.getNowVibration(); }
- dDlst_peekZ_c& getdlstPeekZ() { return draw_list_list.dlstPeekZ; }
- dComIfG_play_c& getPlay() { return play; }
- dSv_memory_c& getMemory() { return info.getMemory(); }
- dSv_event_c& getEvent() { return info.getTmp(); }
- dSv_info_c& getInfo() { return info; }
- inline dDlst_list_c& getDrawlist() { return draw_list_list; }
+ void ct();
-private:
/* 0x00000 */ dSv_info_c info;
/* 0x00F38 */ dComIfG_play_c play;
/* 0x05F64 */ dDlst_list_c draw_list_list;
/* 0x1C110 */ u8 field_0x1C114[0x1E8 - 0xA];
/* 0x1C2F8 */ dRes_control_c mResControl;
- /* 0x1DDF8 */ u8 field_0x1ddf8;
+ /* 0x1DDF8 */ u8 field_0x1ddf8; // related to fade, controls brightness
/* 0x1DDF9 */ u8 mWorldDark;
- /* 0x1DDFA */ u8 field_0x1ddfa;
- /* 0x1DDFB */ u8 field_0x1ddfb;
- /* 0x1DDFC */ u8 field_0x1ddfc;
+ /* 0x1DDFA */ s8 field_0x1ddfa;
+ /* 0x1DDFB */ s8 field_0x1ddfb;
+ /* 0x1DDFC */ s8 field_0x1ddfc;
/* 0x1DE00 */ u32 field_0x1de00;
/* 0x1DE04 */ u32 field_0x1de04;
/* 0x1DE08 */ u8 field_0x1de08;
/* 0x1DE09 */ u8 field_0x1de09;
/* 0x1DE0A */ u8 field_0x1de0a;
- u8 _pad[8];
+ /* 0x1DE0B */ u8 field_0x1de0b;
+ /* 0x1DE0C */ u8 field_0x1de0c;
static __d_timer_info_c dComIfG_mTimerInfo;
};
-#pragma pack(pop)
STATIC_ASSERT(122384 == sizeof(dComIfG_inf_c));
extern dComIfG_inf_c g_dComIfG_gameInfo;
-/* void dComIfGp_setItemLifeCount(float, u8);
+void dComIfGp_setItemLifeCount(float, u8);
void dComIfGp_setItemRupeeCount(long);
int dComIfGs_isItemFirstBit(u8);
+u16 dComIfGs_getRupee();
+void dComIfGp_setSelectItem(int);
+u8 dComIfGs_getMixItemIndex(int);
+void dComIfGs_setSelectItemIndex(int, u8);
+void dComIfGs_setMixItemIndex(int, u8);
+u8 dComIfGs_getBottleMax();
+u8 dComIfGs_checkGetItem(u8);
+void dComIfGs_setSelectEquipClothes(u8);
+void dComIfG_get_timelayer(int*);
+s32 dComIfGp_offHeapLockFlag(int);
+void dComIfGp_createSubExpHeap2D();
+void dComIfGp_destroySubExpHeap2D();
+int dComIfGp_checkEmptySubHeap2D();
+int dComIfGp_searchUseSubHeap2D(int);
+void dComIfGs_setLastWarpMarkItemData(const char*, cXyz, s16, s8, u8, u8);
+u16 dComIfGs_getMaxLifeGauge();
inline void dComIfGp_setRStatus(u8 status, u8 flag) {
- g_dComIfG_gameInfo.getPlay().setRStatus(status, flag);
+ g_dComIfG_gameInfo.play.setRStatus(status, flag);
}
+
inline void dComIfGp_setDoStatus(u8 status, u8 flag) {
- g_dComIfG_gameInfo.getPlay().setDoStatus(status, flag);
+ g_dComIfG_gameInfo.play.setDoStatus(status, flag);
}
+
inline void dComIfGp_setAStatus(u8 status, u8 flag) {
- g_dComIfG_gameInfo.getPlay().setAStatus(status, flag);
+ g_dComIfG_gameInfo.play.setAStatus(status, flag);
}
+
inline void dComIfGp_setZStatus(u8 status, u8 flag) {
- g_dComIfG_gameInfo.getPlay().setZStatus(status, flag);
+ g_dComIfG_gameInfo.play.setZStatus(status, flag);
}
+
inline void dComIfGp_setItemMagicCount(s16 amount) {
- g_dComIfG_gameInfo.getPlay().setItemMagicCount(amount);
+ g_dComIfG_gameInfo.play.setItemMagicCount(amount);
}
+
inline void dComIfGp_setItemMaxMagicCount(s16 max) {
- g_dComIfG_gameInfo.getPlay().setItemMaxMagicCount(max);
+ g_dComIfG_gameInfo.play.setItemMaxMagicCount(max);
}
+
inline void dComIfGp_setItemArrowNumCount(s16 amount) {
- g_dComIfG_gameInfo.getPlay().setItemArrowNumCount(amount);
+ g_dComIfG_gameInfo.play.setItemArrowNumCount(amount);
}
+
inline void dComIfGp_setItemPachinkoNumCount(s16 amount) {
- g_dComIfG_gameInfo.getPlay().setItemPachinkoNumCount(amount);
+ g_dComIfG_gameInfo.play.setItemPachinkoNumCount(amount);
}
+
+inline void dComIfGp_setItemBombNumCount(u8 param_0, s16 amount) {
+ g_dComIfG_gameInfo.play.setItemBombNumCount(param_0, amount);
+}
+
inline void dComIfGp_setItemKeyNumCount(s16 amount) {
- g_dComIfG_gameInfo.getPlay().setItemKeyNumCount(amount);
+ g_dComIfG_gameInfo.play.setItemKeyNumCount(amount);
}
+
inline void dComIfGp_setItemMaxLifeCount(s16 max) {
- g_dComIfG_gameInfo.getPlay().setItemMaxLifeCount(max);
+ g_dComIfG_gameInfo.play.setItemMaxLifeCount(max);
}
-inline void dComIfGs_onDungeonItemMap(void) {
- g_dComIfG_gameInfo.getMemory().getTempFlags().onDungeonItemMap();
+
+inline void dComIfGs_onDungeonItemMap() {
+ g_dComIfG_gameInfo.info.getMemory().getBit().onDungeonItemMap();
}
-inline void dComIfGs_onDungeonItemCompass(void) {
- g_dComIfG_gameInfo.getMemory().getTempFlags().onDungeonItemCompass();
+
+inline void dComIfGs_onDungeonItemCompass() {
+ g_dComIfG_gameInfo.info.getMemory().getBit().onDungeonItemCompass();
}
-inline void dComIfGs_onDungeonItemWarp(void) {
- g_dComIfG_gameInfo.getMemory().getTempFlags().onDungeonItemWarp();
+
+inline void dComIfGs_onDungeonItemWarp() {
+ g_dComIfG_gameInfo.info.getMemory().getBit().onDungeonItemWarp();
}
+
inline void dComIfGs_setItem(int slot, u8 i_no) {
- g_dComIfG_gameInfo.getSaveFile().getPlayerItem().setItem(slot, i_no);
+ g_dComIfG_gameInfo.info.getPlayer().getItem().setItem(slot, i_no);
}
+
inline void dComIfGs_setOxygen(int amount) {
- g_dComIfG_gameInfo.getPlay().setOxygen(amount);
+ g_dComIfG_gameInfo.play.setOxygen(amount);
}
+
inline void dComIfGs_setMaxOxygen(int max) {
- g_dComIfG_gameInfo.getPlay().setMaxOxygen(max);
+ g_dComIfG_gameInfo.play.setMaxOxygen(max);
}
+
inline void dComIfGs_setOil(u16 amount) {
- g_dComIfG_gameInfo.getSaveFile().getPlayerStatusA().setOil(amount);
+ g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusA().setOil(amount);
}
+
inline void dComIfGs_setMaxOil(u16 max) {
- g_dComIfG_gameInfo.getSaveFile().getPlayerStatusA().setMaxOil(max);
+ g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusA().setMaxOil(max);
}
+
inline void dComIfGs_setWalletSize(u8 size) {
- g_dComIfG_gameInfo.getSaveFile().getPlayerStatusA().setWalletSize(size);
+ g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusA().setWalletSize(size);
}
+
inline void dComIfGs_setMagic(u8 amount) {
- g_dComIfG_gameInfo.getSaveFile().getPlayerStatusA().setMagic(amount);
+ g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusA().setMagic(amount);
}
+
inline void dComIfGs_setMaxMagic(u8 max) {
- g_dComIfG_gameInfo.getSaveFile().getPlayerStatusA().setMaxMagic(max);
+ g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusA().setMaxMagic(max);
}
+
inline void dComIfGs_setRupee(u16 amount) {
- g_dComIfG_gameInfo.getSaveFile().getPlayerStatusA().setRupee(amount);
+ g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusA().setRupee(amount);
}
+
inline void dComIfGs_setLife(u16 amount) {
- g_dComIfG_gameInfo.getSaveFile().getPlayerStatusA().setLife(amount);
+ g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusA().setLife(amount);
}
+
inline void dComIfGs_setMaxLife(u8 max) {
- g_dComIfG_gameInfo.getSaveFile().getPlayerStatusA().setMaxLife(max);
+ g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusA().setMaxLife(max);
}
-inline void dComIfGs_onDungeonItemBossKey(void) {
- g_dComIfG_gameInfo.getMemory().getTempFlags().onDungeonItemBossKey();
+
+inline void dComIfGs_onDungeonItemBossKey() {
+ g_dComIfG_gameInfo.info.getMemory().getBit().onDungeonItemBossKey();
}
+
inline void dComIfGs_setCollectSword(u8 sword_id) {
- g_dComIfG_gameInfo.getSaveFile().getPlayerCollect().setCollect(SWORD_BITFIELD, sword_id);
+ g_dComIfG_gameInfo.info.getPlayer().getCollect().setCollect(COLLECT_SWORD, sword_id);
}
+
inline void dComIfGs_setCollectShield(u8 shield_id) {
- g_dComIfG_gameInfo.getSaveFile().getPlayerCollect().setCollect(SHIELD_BITFIELD, shield_id);
+ g_dComIfG_gameInfo.info.getPlayer().getCollect().setCollect(COLLECT_SHIELD, shield_id);
}
+
inline void dComIfGs_setCollectClothes(u8 clothes_id) {
- g_dComIfG_gameInfo.getSaveFile().getPlayerCollect().setCollect(CLOTHING_BITFIELD, clothes_id);
+ g_dComIfG_gameInfo.info.getPlayer().getCollect().setCollect(COLLECT_CLOTHING, clothes_id);
}
-inline void dComIfGs_setRodTypeLevelUp(void) {
- g_dComIfG_gameInfo.getSaveFile().getPlayerItem().setRodTypeLevelUp();
+
+inline void dComIfGs_setRodTypeLevelUp() {
+ g_dComIfG_gameInfo.info.getPlayer().getItem().setRodTypeLevelUp();
}
+
inline void dComIfGs_setArrowNum(u8 amount) {
- g_dComIfG_gameInfo.getSaveFile().getPlayerItemRecord().setArrowNum(amount);
+ g_dComIfG_gameInfo.info.getPlayer().getItemRecord().setArrowNum(amount);
}
+
inline void dComIfGs_setArrowMax(u8 max) {
- g_dComIfG_gameInfo.getSaveFile().getPlayerItemMax().setArrowNum(max);
+ g_dComIfG_gameInfo.info.getPlayer().getItemMax().setArrowNum(max);
}
-inline u8 dComIfGs_getPachinkoMax(void) {
+
+inline u8 dComIfGs_getPachinkoMax() {
return 50;
}
-inline void dComIfGs_setEmptyBombBag(void) {
- g_dComIfG_gameInfo.getSaveFile().getPlayerItem().setEmptyBombBag();
+
+inline void dComIfGs_setEmptyBombBag() {
+ g_dComIfG_gameInfo.info.getPlayer().getItem().setEmptyBombBag();
}
+
inline void dComIfGs_setEmptyBombBag(u8 type, u8 amount) {
- g_dComIfG_gameInfo.getSaveFile().getPlayerItem().setEmptyBombBag(type, amount);
+ g_dComIfG_gameInfo.info.getPlayer().getItem().setEmptyBombBag(type, amount);
}
+
inline void dComIfGs_setEmptyBombBagItemIn(u8 type, bool unk) {
- g_dComIfG_gameInfo.getSaveFile().getPlayerItem().setEmptyBombBagItemIn(type, unk);
+ g_dComIfG_gameInfo.info.getPlayer().getItem().setEmptyBombBagItemIn(type, unk);
}
-inline void dComIfGs_setEmptyBottle(void) {
- g_dComIfG_gameInfo.getSaveFile().getPlayerItem().setEmptyBottle();
+
+inline void dComIfGs_setEmptyBottle() {
+ g_dComIfG_gameInfo.info.getPlayer().getItem().setEmptyBottle();
}
+
inline void dComIfGs_setEmptyBottle(u8 type) {
- g_dComIfG_gameInfo.getSaveFile().getPlayerItem().setEmptyBottle(type);
+ g_dComIfG_gameInfo.info.getPlayer().getItem().setEmptyBottle(type);
}
+
inline void dComIfGs_setEmptyBottleItemIn(u8 type) {
- g_dComIfG_gameInfo.getSaveFile().getPlayerItem().setEmptyBottleItemIn(type);
+ g_dComIfG_gameInfo.info.getPlayer().getItem().setEmptyBottleItemIn(type);
+}
+
+inline void dComIfGs_setBottleNum(u8 param_0, u8 param_1) {
+ g_dComIfG_gameInfo.info.getPlayer().getItemRecord().setBottleNum(param_0, param_1);
}
+
inline void dComIfGs_onEventBit(u16 id) {
- g_dComIfG_gameInfo.getSaveFile().getEventFlags().onEventBit(id);
+ g_dComIfG_gameInfo.info.getSavedata().getEvent().onEventBit(id);
}
+
inline void dComIfGs_onLightDropFlag(u8 area_id) {
- g_dComIfG_gameInfo.getSaveFile().getLightDrop().onLightDropGetFlag(area_id);
+ g_dComIfG_gameInfo.info.getPlayer().getLightDrop().onLightDropGetFlag(area_id);
}
+
inline void dComIfGs_onSwitch(int param1, int param2) {
- g_dComIfG_gameInfo.getInfo().onSwitch(param1, param2);
+ g_dComIfG_gameInfo.info.onSwitch(param1, param2);
+}
+
+inline void dComIfGs_offSwitch(int param1, int param2) {
+ g_dComIfG_gameInfo.info.offSwitch(param1, param2);
}
-inline bool dComIfGs_isDungeonItemMap(void) {
- return g_dComIfG_gameInfo.getMemory().getTempFlags().isDungeonItemMap();
+
+inline BOOL dComIfGs_isSwitch(int param1, int param2) {
+ return g_dComIfG_gameInfo.info.isSwitch(param1, param2);
}
-inline bool dComIfGs_isDungeonItemBossKey(void) {
- return g_dComIfG_gameInfo.getMemory().getTempFlags().isDungeonItemBossKey();
+
+inline s32 dComIfGs_isDungeonItemMap() {
+ return g_dComIfG_gameInfo.info.getMemory().getBit().isDungeonItemMap();
}
+
+inline s32 dComIfGs_isDungeonItemBossKey() {
+ return g_dComIfG_gameInfo.info.getMemory().getBit().isDungeonItemBossKey();
+}
+
inline u8 dComIfGs_getItem(int slot, bool unk) {
- return g_dComIfG_gameInfo.getSaveFile().getPlayerItem().getItem(slot, unk);
+ return g_dComIfG_gameInfo.info.getPlayer().getItem().getItem(slot, unk);
}
+
inline BOOL dComIfGs_isCollectSword(u8 sword_id) {
- return g_dComIfG_gameInfo.getSaveFile().getPlayerCollect().isCollect(SWORD_BITFIELD, sword_id);
+ return g_dComIfG_gameInfo.info.getPlayer().getCollect().isCollect(COLLECT_SWORD, sword_id);
}
+
inline BOOL dComIfGs_isCollectClothing(u8 clothing_id) {
- return g_dComIfG_gameInfo.getSaveFile().getPlayerCollect().isCollect(CLOTHING_BITFIELD,
- clothing_id);
+ return g_dComIfG_gameInfo.info.getPlayer().getCollect().isCollect(COLLECT_CLOTHING,
+ clothing_id);
}
+
inline u8 dComIfGs_checkBottle(u8 type) {
- return g_dComIfG_gameInfo.getSaveFile().getPlayerItem().checkBottle(type);
+ return g_dComIfG_gameInfo.info.getPlayer().getItem().checkBottle(type);
}
+
inline BOOL dComIfGs_isLightDropGetFlag(u8 area_id) {
- return g_dComIfG_gameInfo.getSaveFile().getLightDrop().isLightDropGetFlag(area_id);
+ return g_dComIfG_gameInfo.info.getPlayer().getLightDrop().isLightDropGetFlag(area_id);
}
-inline u8 dComIfGs_getArrowMax(void) {
- return g_dComIfG_gameInfo.getSaveFile().getPlayer().getPlayerItemMax().getArrowNum();
+
+inline u8 dComIfGs_getArrowMax() {
+ return g_dComIfG_gameInfo.info.getPlayer().getItemMax().getArrowNum();
}
-inline u8 dComIfGs_getCollectSmell(void) {
- return g_dComIfG_gameInfo.getSaveFile().getPlayer().getPlayerStatusA().getSelectEquip(3);
+
+inline u8 dComIfGs_getCollectSmell() {
+ return g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusA().getSelectEquip(3);
}
-inline u8 dComIfGs_getPohSpiritNum(void) {
- return g_dComIfG_gameInfo.getSaveFile().getPlayer().getPlayerCollect().getPohNum();
+
+inline u8 dComIfGs_getPohSpiritNum() {
+ return g_dComIfG_gameInfo.info.getPlayer().getCollect().getPohNum();
}
-inline u8 dComIfGs_getKeyNum(void) {
- return g_dComIfG_gameInfo.getMemory().getTempFlags().getKeyNum();
+
+inline u8 dComIfGs_getKeyNum() {
+ return g_dComIfG_gameInfo.info.getMemory().getBit().getKeyNum();
}
+
inline void dComIfGs_onItemFirstBit(u8 i_no) {
- g_dComIfG_gameInfo.getSaveFile().getPlayerGetItem().onFirstBit(i_no);
+ g_dComIfG_gameInfo.info.getPlayer().getGetItem().onFirstBit(i_no);
}
-inline u16 dComIfGs_getMaxLife(void) {
- return g_dComIfG_gameInfo.getSaveFile().getPlayerStatusA().getMaxLife();
+
+inline u16 dComIfGs_getMaxLife() {
+ return g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusA().getMaxLife();
}
+
inline void dComIfGs_offEventBit(u16 event) {
- g_dComIfG_gameInfo.getSaveFile().getEventFlags().offEventBit(event);
+ g_dComIfG_gameInfo.info.getSavedata().getEvent().offEventBit(event);
}
+
// inline int dComIfGs_isEventBit__FUs(u16 event) {
-// return g_dComIfG_gameInfo.getSaveFile().getEventFlags().isEventBit(event);
+// return g_dComIfG_gameInfo.getSaveFile().getTmp().isEventBit(event);
// }
-inline const char* dComIfGs_getLastWarpMarkStageName(void) {
- return g_dComIfG_gameInfo.getSaveFile().getPlayerLastMarkInfo().getName();
+
+inline const char* dComIfGs_getLastWarpMarkStageName() {
+ return g_dComIfG_gameInfo.info.getPlayer().getPlayerLastMarkInfo().getName();
}
-inline cXyz dComIfGs_getLastWarpMarkPlayerPos(void) {
- return g_dComIfG_gameInfo.getSaveFile().getPlayerLastMarkInfo().getPos();
+
+inline cXyz dComIfGs_getLastWarpMarkPlayerPos() {
+ return g_dComIfG_gameInfo.info.getPlayer().getPlayerLastMarkInfo().getPos();
}
-inline s16 dComIfGs_getLastWarpMarkPlayerAngleY(void) {
- return g_dComIfG_gameInfo.getSaveFile().getPlayerLastMarkInfo().getAngleY();
+
+inline s16 dComIfGs_getLastWarpMarkPlayerAngleY() {
+ return g_dComIfG_gameInfo.info.getPlayer().getPlayerLastMarkInfo().getAngleY();
}
-inline s8 dComIfGs_getLastWarpMarkRoomNo(void) {
- return g_dComIfG_gameInfo.getSaveFile().getPlayerLastMarkInfo().getRoomNo();
+
+inline s8 dComIfGs_getLastWarpMarkRoomNo() {
+ return g_dComIfG_gameInfo.info.getPlayer().getPlayerLastMarkInfo().getRoomNo();
}
-inline char dComIfGs_getLastWarpAcceptStage(void) {
- return g_dComIfG_gameInfo.getSaveFile().getPlayerLastMarkInfo().getWarpAcceptStage();
+
+inline char dComIfGs_getLastWarpAcceptStage() {
+ return g_dComIfG_gameInfo.info.getPlayer().getPlayerLastMarkInfo().getWarpAcceptStage();
}
-inline u8 dComIfGs_getSelectEquipClothes(void) {
- return g_dComIfG_gameInfo.getSaveFile().getPlayerStatusA().getSelectEquip(CLOTHING_BITFIELD);
+
+inline u8 dComIfGs_getSelectEquipClothes() {
+ return g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusA().getSelectEquip(COLLECT_CLOTHING);
}
-inline u8 dComIfGs_getSelectEquipSword(void) {
- return g_dComIfG_gameInfo.getSaveFile().getPlayerStatusA().getSelectEquip(SWORD_BITFIELD);
+
+inline u8 dComIfGs_getSelectEquipSword() {
+ return g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusA().getSelectEquip(COLLECT_SWORD);
}
-inline u8 dComIfGs_getSelectEquipShield(void) {
- return g_dComIfG_gameInfo.getSaveFile().getPlayerStatusA().getSelectEquip(SHIELD_BITFIELD);
+
+inline u8 dComIfGs_getSelectEquipShield() {
+ return g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusA().getSelectEquip(COLLECT_SHIELD);
}
+
inline u8 dComIfGs_getLightDropNum(u8 area_id) {
- return g_dComIfG_gameInfo.getSaveFile().getLightDrop().getLightDropNum(area_id);
+ return g_dComIfG_gameInfo.info.getPlayer().getLightDrop().getLightDropNum(area_id);
}
+
inline u8 dComIfGs_getSelectItemIndex(int idx) {
- return g_dComIfG_gameInfo.getPlayer().getPlayerStatusA().getSelectItemIndex(idx);
+ return g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusA().getSelectItemIndex(idx);
}
+
inline void dComIfGp_setItem(u8 slot, u8 i_no) {
- g_dComIfG_gameInfo.getPlay().setItem(slot, i_no);
+ g_dComIfG_gameInfo.play.setItem(slot, i_no);
}
-inline u32 dComIfGp_getNowVibration(void) {
- return g_dComIfG_gameInfo.getPlay().getNowVibration();
+
+inline u32 dComIfGp_getNowVibration() {
+ return g_dComIfG_gameInfo.play.getNowVibration();
+}
+
+inline char* dComIfGp_getStartStageName() {
+ return g_dComIfG_gameInfo.play.getStartStageName();
}
-inline char* dComIfGp_getStartStageName(void) {
- return g_dComIfG_gameInfo.getPlay().getStartStageName();
+
+inline void dComIfGd_reset() {
+ g_dComIfG_gameInfo.draw_list_list.reset();
+}
+
+inline u8 dComIfGs_getOptVibration() {
+ return g_dComIfG_gameInfo.info.getPlayer().getConfig().getVibration();
+}
+
+inline s8 dComIfGp_roomControl_getStayNo() {
+ return dStage_roomControl_c::getStayNo();
+}
+
+inline s8 dComIfGp_getStartStageRoomNo() {
+ return g_dComIfG_gameInfo.play.getStartStageRoomNo();
+}
+
+inline s8 dComIfGp_getStartStageLayer() {
+ return g_dComIfG_gameInfo.play.getStartStageLayer();
+}
+
+inline roomRead_class* dComIfGp_getStageRoom() {
+ return g_dComIfG_gameInfo.play.getStage().getRoom();
+}
+
+inline stage_stag_info_class* dComIfGp_getStageStagInfo() {
+ return g_dComIfG_gameInfo.play.getStage().getStagInfo();
+}
+
+inline BOOL dComIfGs_isTbox(int i_no) {
+ return g_dComIfG_gameInfo.info.getMemory().getBit().isTbox(i_no);
+}
+
+inline BOOL dComIfGs_isSaveTbox(int i_stageNo, int i_no) {
+ return g_dComIfG_gameInfo.info.getSavedata().getSave(i_stageNo).getBit().isTbox(i_no);
+}
+
+inline void dComIfGs_onSaveSwitch(int i_stageNo, int i_no) {
+ g_dComIfG_gameInfo.info.getSavedata().getSave(i_stageNo).getBit().onSwitch(i_no);
+}
+
+inline void dComIfGs_offSaveSwitch(int i_stageNo, int i_no) {
+ g_dComIfG_gameInfo.info.getSavedata().getSave(i_stageNo).getBit().offSwitch(i_no);
+}
+
+inline BOOL dComIfGs_isSaveSwitch(int i_stageNo, int i_no) {
+ return g_dComIfG_gameInfo.info.getSavedata().getSave(i_stageNo).getBit().isSwitch(i_no);
+}
+
+inline void dComIfGs_onStageBossEnemy() {
+ g_dComIfG_gameInfo.info.getMemory().getBit().onStageBossEnemy();
+}
+
+inline s32 dComIfGs_isDungeonItemWarp() {
+ return g_dComIfG_gameInfo.info.getMemory().getBit().isDungeonItemWarp();
+}
+
+inline u8 dComIfGp_isHeapLockFlag() {
+ return g_dComIfG_gameInfo.play.isHeapLockFlag();
+}
+
+inline void dComIfGp_setSubHeapLockFlag(int idx, u8 status) {
+ g_dComIfG_gameInfo.play.setSubHeapLockFlag(idx, status);
+}
+
+inline u8 dComIfGp_getSubHeapLockFlag(int idx) {
+ return g_dComIfG_gameInfo.play.getSubHeapLockFlag(idx);
+}
+
+inline JKRExpHeap* dComIfGp_getSubExpHeap2D(int idx) {
+ return g_dComIfG_gameInfo.play.getSubExpHeap2D(idx);
+}
+
+inline void dComIfGp_setSubExpHeap2D(int idx, void* heap) {
+ g_dComIfG_gameInfo.play.setSubExpHeap2D(idx, heap);
+}
+
+inline void dComIfGp_offEnableNextStage() {
+ g_dComIfG_gameInfo.play.offEnableNextStage();
+}
+
+inline void dComIfGs_setKeyNum(u8 keyNum) {
+ g_dComIfG_gameInfo.info.getMemory().getBit().setKeyNum(keyNum);
+}
+
+void dComIfGs_setKeyNum(int i_stageNo, u8 keyNum);
+
+inline int dComIfG_getTimerMode() {
+ return g_dComIfG_gameInfo.play.getTimerMode();
+}
+
+inline dTimer_c* dComIfG_getTimerPtr() {
+ return g_dComIfG_gameInfo.play.getTimerPtr();
+}
+
+inline void dComIfGp_roomControl_initZone() {
+ g_dComIfG_gameInfo.play.getRoomControl()->initZone();
+}
+
+inline bool dComIfG_setObjectRes(const char* name, u8 param_1, JKRHeap* heap) {
+ return g_dComIfG_gameInfo.mResControl.setObjectRes(name, param_1, heap);
+}
+
+inline int dComIfG_syncObjectRes(const char* name) {
+ return g_dComIfG_gameInfo.mResControl.syncObjectRes(name);
+}
+
+inline JKRHeap* dComIfGp_getExpHeap2D() {
+ return g_dComIfG_gameInfo.play.getExpHeap2D();
+}
+
+inline u16 dComIfGs_getOil() {
+ return g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusA().getOil();
+}
+
+inline s64 dComIfGs_getSaveStartTime() {
+ return g_dComIfG_gameInfo.info.getStartTime();
+}
+
+inline s64 dComIfGs_getSaveTotalTime() {
+ return g_dComIfG_gameInfo.info.getSaveTotalTime();
+}
+
+inline dSv_save_c& dComIfGs_getSaveData() {
+ return g_dComIfG_gameInfo.info.getSavedata();
+}
+
+inline void dComIfGs_setLineUpItem() {
+ g_dComIfG_gameInfo.info.getPlayer().getItem().setLineUpItem();
+}
+
+inline void dComIfGp_setNowVibration(u8 status) {
+ g_dComIfG_gameInfo.play.setNowVibration(status);
+}
+
+inline s32 dComIfGs_isGetMagicUseFlag() {
+ return g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusA().isMagicFlag(0);
+}
+
+inline void dComIfGs_offTmpBit(u16 flag) {
+ g_dComIfG_gameInfo.info.getTmp().offEventBit(flag);
+}
+
+inline dAttention_c& dComIfGp_getAttention() {
+ return g_dComIfG_gameInfo.play.getAttention();
+}
+
+inline BOOL dComIfGs_isDarkClearLV(int param_0) {
+ return g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusB().isDarkClearLV(param_0);
+}
+
+inline BOOL dComIfGs_isTmpBit(u16 flag) {
+ return g_dComIfG_gameInfo.info.getTmp().isEventBit(flag);
+}
+
+inline BOOL dComIfGs_isTransformLV(int param_0) {
+ return g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusB().isTransformLV(param_0);
+}
+
+inline void dComIfGs_onStageLife() {
+ g_dComIfG_gameInfo.info.getMemory().getBit().onStageLife();
+}
+
+inline u8 dComIfGs_getBombNum(u8 param_0) {
+ return g_dComIfG_gameInfo.info.getPlayer().getItemRecord().getBombNum(param_0);
+}
+
+inline u8 dComIfGs_getPachinkoNum() {
+ return g_dComIfG_gameInfo.info.getPlayer().getItemRecord().getPachinkoNum();
+}
+
+inline u8 dComIfGs_getBottleNum(u8 param_0) {
+ return g_dComIfG_gameInfo.info.getPlayer().getItemRecord().getBottleNum(param_0);
+}
+
+inline u8 dComIfGs_getBombMax(u8 param_0) {
+ return g_dComIfG_gameInfo.info.getPlayer().getItemMax().getBombNum(param_0);
+}
+
+inline void dComIfGs_setBombNum(u8 param_0, u8 param_1) {
+ g_dComIfG_gameInfo.info.getPlayer().getItemRecord().setBombNum(param_0, param_1);
+}
+
+inline void dComIfGs_setPachinkoNum(u8 param_0) {
+ g_dComIfG_gameInfo.info.getPlayer().getItemRecord().setPachinkoNum(param_0);
+}
+
+inline void dComIfGs_addBottleNum(u8 param_0, s16 param_1) {
+ g_dComIfG_gameInfo.info.getPlayer().getItemRecord().addBottleNum(param_0, param_1);
}
-inline void dComIfGd_reset(void) {
- g_dComIfG_gameInfo.getDrawlist().reset();
-} */
#endif /* D_COM_D_COM_INF_GAME_H */
diff --git a/include/d/d_attention.h b/include/d/d_attention.h
index a2b2147b88..7758314a47 100644
--- a/include/d/d_attention.h
+++ b/include/d/d_attention.h
@@ -27,11 +27,13 @@ private:
class dAttCatch_c {
public:
dAttCatch_c() {}
- void convPId(unsigned int);
+ s32 convPId(unsigned int);
void init();
void proc();
void request(fopAc_ac_c*, u8, f32, f32, f32, s16, int);
+ s32 getCatghTarget() { return convPId(field_0x10); }
+
private:
void* field_0x0;
u32 field_0x4;
@@ -188,6 +190,8 @@ public:
/* 800737E4 */ void LockonTruth();
/* 80073838 */ void checkDistance(cXyz*, s16, cXyz*, f32, f32, f32, f32);
+ dAttCatch_c& getCatghTarget() { return mCatghTarget; }
+
static u8 loc_type_tbl[12];
static u8 act_type_tbl[20];
static u8 dist_table[6552];
diff --git a/include/d/d_bomb.h b/include/d/d_bomb.h
index b021b0a411..7a9b57caee 100644
--- a/include/d/d_bomb.h
+++ b/include/d/d_bomb.h
@@ -15,7 +15,7 @@ public:
u32 checkWaterBomb() const { return checkStateFlg0(WATER_BOMB); }
/* 0x000 */ fopAc_ac_c mActor;
- /* 0x570 */ u8 field_0x570[8];
+ /* 0x568 */ u8 field_0x568[0x10];
/* 0x578 */ dBgS_Acch mAcch;
/* 0x750 */ dBgS_AcchCir mAcchCir;
/* 0x790 */ dCcD_Stts mStts;
diff --git a/include/d/d_item.h b/include/d/d_item.h
index 20e8cf36cb..af66f97e0f 100644
--- a/include/d/d_item.h
+++ b/include/d/d_item.h
@@ -1,6 +1,390 @@
#ifndef D_D_ITEM_H
#define D_D_ITEM_H
+#include "d/com/d_com_inf_game.h"
#include "dolphin/types.h"
+void item_func_HEART();
+void item_func_GREEN_RUPEE();
+void item_func_BLUE_RUPEE();
+void item_func_YELLOW_RUPEE();
+void item_func_RED_RUPEE();
+void item_func_PURPLE_RUPEE();
+void item_func_ORANGE_RUPEE();
+void item_func_SILVER_RUPEE();
+void item_func_S_MAGIC();
+void item_func_L_MAGIC();
+void item_func_BOMB_5();
+void item_func_BOMB_10();
+void item_func_BOMB_20();
+void item_func_BOMB_30();
+void item_func_ARROW_10();
+void item_func_ARROW_20();
+void item_func_ARROW_30();
+void item_func_ARROW_1();
+void item_func_PACHINKO_SHOT();
+void item_func_WATER_BOMB_5();
+void item_func_WATER_BOMB_10();
+void item_func_WATER_BOMB_20();
+void item_func_WATER_BOMB_30();
+void item_func_BOMB_INSECT_5();
+void item_func_BOMB_INSECT_10();
+void item_func_BOMB_INSECT_20();
+void item_func_BOMB_INSECT_30();
+void item_func_RECOVER_FAILY();
+void item_func_TRIPLE_HEART();
+void item_func_SMALL_KEY();
+void item_func_KAKERA_HEART();
+void item_func_UTUWA_HEART();
+void item_func_MAP();
+void item_func_COMPUS();
+void item_func_DUNGEON_EXIT();
+void item_func_BOSS_KEY();
+void item_func_DUNGEON_BACK();
+void item_func_SWORD();
+void item_func_MASTER_SWORD();
+void item_func_WOOD_SHIELD();
+void item_func_SHIELD();
+void item_func_HYLIA_SHIELD();
+void item_func_TKS_LETTER();
+void item_func_WEAR_CASUAL();
+void item_func_WEAR_KOKIRI();
+void item_func_ARMOR();
+void item_func_WEAR_ZORA();
+void item_func_MAGIC_LV1();
+void item_func_DUNGEON_EXIT_2();
+void item_func_WALLET_LV1();
+void item_func_WALLET_LV2();
+void item_func_WALLET_LV3();
+void item_func_ZORAS_JEWEL();
+void item_func_HAWK_EYE();
+void item_func_WOOD_STICK();
+void item_func_BOOMERANG();
+void item_func_SPINNER();
+void item_func_IRONBALL();
+void item_func_BOW();
+void item_func_HOOKSHOT();
+void item_func_HVY_BOOTS();
+void item_func_COPY_ROD();
+void item_func_W_HOOKSHOT();
+void item_func_KANTERA();
+void item_func_LIGHT_SWORD();
+void item_func_FISHING_ROD_1();
+void item_func_PACHINKO();
+void item_func_COPY_ROD_2();
+void item_func_BOMB_BAG_LV2();
+void item_func_BOMB_BAG_LV1();
+void item_func_BOMB_IN_BAG();
+void item_func_LIGHT_ARROW();
+void item_func_ARROW_LV1();
+void item_func_ARROW_LV2();
+void item_func_ARROW_LV3();
+void item_func_LURE_ROD();
+void item_func_BOMB_ARROW();
+void item_func_HAWK_ARROW();
+void item_func_BEE_ROD();
+void item_func_JEWEL_ROD();
+void item_func_WORM_ROD();
+void item_func_JEWEL_BEE_ROD();
+void item_func_JEWEL_WORM_ROD();
+void item_func_EMPTY_BOTTLE();
+void item_func_RED_BOTTLE();
+void item_func_GREEN_BOTTLE();
+void item_func_BLUE_BOTTLE();
+void item_func_MILK_BOTTLE();
+void item_func_HALF_MILK_BOTTLE();
+void item_func_OIL_BOTTLE();
+void item_func_WATER_BOTTLE();
+void item_func_OIL_BOTTLE2();
+void item_func_RED_BOTTLE2();
+void item_func_UGLY_SOUP();
+void item_func_HOT_SPRING();
+void item_func_FAIRY_BOTTLE();
+void item_func_HOT_SPRING2();
+void item_func_OIL2();
+void item_func_OIL();
+void item_func_NORMAL_BOMB();
+void item_func_WATER_BOMB();
+void item_func_POKE_BOMB();
+void item_func_FAIRY_DROP();
+void item_func_WORM();
+void item_func_DROP_BOTTLE();
+void item_func_BEE_CHILD();
+void item_func_CHUCHU_RARE();
+void item_func_CHUCHU_RED();
+void item_func_CHUCHU_BLUE();
+void item_func_CHUCHU_GREEN();
+void item_func_CHUCHU_YELLOW();
+void item_func_CHUCHU_PURPLE();
+void item_func_LV1_SOUP();
+void item_func_LV2_SOUP();
+void item_func_LV3_SOUP();
+void item_func_LETTER();
+void item_func_BILL();
+void item_func_WOOD_STATUE();
+void item_func_IRIAS_PENDANT();
+void item_func_HORSE_FLUTE();
+void item_func_RAFRELS_MEMO();
+void item_func_ASHS_SCRIBBLING();
+void item_func_CHUCHU_YELLOW2();
+void item_func_OIL_BOTTLE3();
+void item_func_SHOP_BEE_CHILD();
+void item_func_CHUCHU_BLACK();
+void item_func_LIGHT_DROP();
+void item_func_DROP_CONTAINER();
+void item_func_DROP_CONTAINER02();
+void item_func_DROP_CONTAINER03();
+void item_func_FILLED_CONTAINER();
+void item_func_MIRROR_PIECE_2();
+void item_func_MIRROR_PIECE_3();
+void item_func_MIRROR_PIECE_4();
+void item_func_SMELL_YELIA_POUCH();
+void item_func_SMELL_PUMPKIN();
+void item_func_SMELL_POH();
+void item_func_SMELL_FISH();
+void item_func_SMELL_CHILDREN();
+void item_func_SMELL_MEDICINE();
+void item_func_M_BEETLE();
+void item_func_F_BEETLE();
+void item_func_M_BUTTERFLY();
+void item_func_F_BUTTERFLY();
+void item_func_M_STAG_BEETLE();
+void item_func_F_STAG_BEETLE();
+void item_func_M_GRASSHOPPER();
+void item_func_F_GRASSHOPPER();
+void item_func_M_NANAFUSHI();
+void item_func_F_NANAFUSHI();
+void item_func_M_DANGOMUSHI();
+void item_func_F_DANGOMUSHI();
+void item_func_M_MANTIS();
+void item_func_F_MANTIS();
+void item_func_M_LADYBUG();
+void item_func_F_LADYBUG();
+void item_func_M_SNAIL();
+void item_func_F_SNAIL();
+void item_func_M_DRAGONFLY();
+void item_func_F_DRAGONFLY();
+void item_func_M_ANT();
+void item_func_F_ANT();
+void item_func_M_MAYFLY();
+void item_func_F_MAYFLY();
+void item_func_POU_SPIRIT();
+void item_func_ANCIENT_DOCUMENT();
+void item_func_AIR_LETTER();
+void item_func_ANCIENT_DOCUMENT2();
+void item_func_LV7_DUNGEON_EXIT();
+void item_func_LINKS_SAVINGS();
+void item_func_SMALL_KEY2();
+void item_func_POU_FIRE1();
+void item_func_POU_FIRE2();
+void item_func_POU_FIRE3();
+void item_func_POU_FIRE4();
+void item_func_BOSSRIDER_KEY();
+void item_func_TOMATO_PUREE();
+void item_func_TASTE();
+void item_func_LV5_BOSS_KEY();
+void item_func_SURFBOARD();
+void item_func_KANTERA2();
+void item_func_L2_KEY_PIECES1();
+void item_func_L2_KEY_PIECES2();
+void item_func_L2_KEY_PIECES3();
+void item_func_KEY_OF_CARAVAN();
+void item_func_LV2_BOSS_KEY();
+void item_func_KEY_OF_FILONE();
+void item_func_noentry();
+
+s32 item_getcheck_func_HEART();
+s32 item_getcheck_func_GREEN_RUPEE();
+s32 item_getcheck_func_BLUE_RUPEE();
+s32 item_getcheck_func_YELLOW_RUPEE();
+s32 item_getcheck_func_RED_RUPEE();
+s32 item_getcheck_func_PURPLE_RUPEE();
+s32 item_getcheck_func_ORANGE_RUPEE();
+s32 item_getcheck_func_SILVER_RUPEE();
+s32 item_getcheck_func_S_MAGIC();
+s32 item_getcheck_func_L_MAGIC();
+s32 item_getcheck_func_BOMB_5();
+s32 item_getcheck_func_BOMB_10();
+s32 item_getcheck_func_BOMB_20();
+s32 item_getcheck_func_BOMB_30();
+s32 item_getcheck_func_ARROW_10();
+s32 item_getcheck_func_ARROW_20();
+s32 item_getcheck_func_ARROW_30();
+s32 item_getcheck_func_ARROW_1();
+s32 item_getcheck_func_PACHINKO_SHOT();
+s32 item_getcheck_func_WATER_BOMB_5();
+s32 item_getcheck_func_WATER_BOMB_10();
+s32 item_getcheck_func_WATER_BOMB_20();
+s32 item_getcheck_func_WATER_BOMB_30();
+s32 item_getcheck_func_BOMB_INSECT_5();
+s32 item_getcheck_func_BOMB_INSECT_10();
+s32 item_getcheck_func_BOMB_INSECT_20();
+s32 item_getcheck_func_BOMB_INSECT_30();
+s32 item_getcheck_func_RECOVER_FAILY();
+s32 item_getcheck_func_TRIPLE_HEART();
+s32 item_getcheck_func_SMALL_KEY();
+s32 item_getcheck_func_KAKERA_HEART();
+s32 item_getcheck_func_UTUWA_HEART();
+s32 item_getcheck_func_MAP();
+s32 item_getcheck_func_COMPUS();
+s32 item_getcheck_func_DUNGEON_EXIT();
+s32 item_getcheck_func_BOSS_KEY();
+s32 item_getcheck_func_DUNGEON_BACK();
+s32 item_getcheck_func_SWORD();
+s32 item_getcheck_func_MASTER_SWORD();
+s32 item_getcheck_func_WOOD_SHIELD();
+s32 item_getcheck_func_SHIELD();
+s32 item_getcheck_func_HYLIA_SHIELD();
+s32 item_getcheck_func_TKS_LETTER();
+s32 item_getcheck_func_WEAR_CASUAL();
+s32 item_getcheck_func_WEAR_KOKIRI();
+s32 item_getcheck_func_ARMOR();
+s32 item_getcheck_func_WEAR_ZORA();
+s32 item_getcheck_func_MAGIC_LV1();
+s32 item_getcheck_func_DUNGEON_EXIT_2();
+s32 item_getcheck_func_WALLET_LV1();
+s32 item_getcheck_func_WALLET_LV2();
+s32 item_getcheck_func_WALLET_LV3();
+s32 item_getcheck_func_ZORAS_JEWEL();
+s32 item_getcheck_func_HAWK_EYE();
+s32 item_getcheck_func_WOOD_STICK();
+s32 item_getcheck_func_BOOMERANG();
+s32 item_getcheck_func_SPINNER();
+s32 item_getcheck_func_IRONBALL();
+s32 item_getcheck_func_BOW();
+s32 item_getcheck_func_HOOKSHOT();
+s32 item_getcheck_func_HVY_BOOTS();
+s32 item_getcheck_func_COPY_ROD();
+s32 item_getcheck_func_W_HOOKSHOT();
+s32 item_getcheck_func_KANTERA();
+s32 item_getcheck_func_LIGHT_SWORD();
+s32 item_getcheck_func_FISHING_ROD_1();
+s32 item_getcheck_func_PACHINKO();
+s32 item_getcheck_func_COPY_ROD_2();
+s32 item_getcheck_func_BOMB_BAG_LV2();
+s32 item_getcheck_func_BOMB_BAG_LV1();
+s32 item_getcheck_func_BOMB_IN_BAG();
+s32 item_getcheck_func_LIGHT_ARROW();
+s32 item_getcheck_func_ARROW_LV1();
+s32 item_getcheck_func_ARROW_LV2();
+s32 item_getcheck_func_ARROW_LV3();
+s32 item_getcheck_func_LURE_ROD();
+s32 item_getcheck_func_BOMB_ARROW();
+s32 item_getcheck_func_HAWK_ARROW();
+s32 item_getcheck_func_BEE_ROD();
+s32 item_getcheck_func_JEWEL_ROD();
+s32 item_getcheck_func_WORM_ROD();
+s32 item_getcheck_func_JEWEL_BEE_ROD();
+s32 item_getcheck_func_JEWEL_WORM_ROD();
+s32 item_getcheck_func_EMPTY_BOTTLE();
+s32 item_getcheck_func_RED_BOTTLE();
+s32 item_getcheck_func_GREEN_BOTTLE();
+s32 item_getcheck_func_BLUE_BOTTLE();
+s32 item_getcheck_func_MILK_BOTTLE();
+s32 item_getcheck_func_HALF_MILK_BOTTLE();
+s32 item_getcheck_func_OIL_BOTTLE();
+s32 item_getcheck_func_WATER_BOTTLE();
+s32 item_getcheck_func_OIL_BOTTLE2();
+s32 item_getcheck_func_RED_BOTTLE2();
+s32 item_getcheck_func_UGLY_SOUP();
+s32 item_getcheck_func_HOT_SPRING();
+s32 item_getcheck_func_FAIRY_BOTTLE();
+s32 item_getcheck_func_HOT_SPRING2();
+s32 item_getcheck_func_OIL2();
+s32 item_getcheck_func_OIL();
+s32 item_getcheck_func_NORMAL_BOMB();
+s32 item_getcheck_func_WATER_BOMB();
+s32 item_getcheck_func_POKE_BOMB();
+s32 item_getcheck_func_FAIRY_DROP();
+s32 item_getcheck_func_WORM();
+s32 item_getcheck_func_DROP_BOTTLE();
+s32 item_getcheck_func_BEE_CHILD();
+s32 item_getcheck_func_CHUCHU_RARE();
+s32 item_getcheck_func_CHUCHU_RED();
+s32 item_getcheck_func_CHUCHU_BLUE();
+s32 item_getcheck_func_CHUCHU_GREEN();
+s32 item_getcheck_func_CHUCHU_YELLOW();
+s32 item_getcheck_func_CHUCHU_PURPLE();
+s32 item_getcheck_func_LV1_SOUP();
+s32 item_getcheck_func_LV2_SOUP();
+s32 item_getcheck_func_LV3_SOUP();
+s32 item_getcheck_func_LETTER();
+s32 item_getcheck_func_BILL();
+s32 item_getcheck_func_WOOD_STATUE();
+s32 item_getcheck_func_IRIAS_PENDANT();
+s32 item_getcheck_func_HORSE_FLUTE();
+s32 item_getcheck_func_RAFRELS_MEMO();
+s32 item_getcheck_func_ASHS_SCRIBBLING();
+s32 item_getcheck_func_CHUCHU_YELLOW2();
+s32 item_getcheck_func_OIL_BOTTLE3();
+s32 item_getcheck_func_SHOP_BEE_CHILD();
+s32 item_getcheck_func_CHUCHU_BLACK();
+s32 item_getcheck_func_LIGHT_DROP();
+s32 item_getcheck_func_DROP_CONTAINER();
+s32 item_getcheck_func_DROP_CONTAINER02();
+s32 item_getcheck_func_DROP_CONTAINER03();
+s32 item_getcheck_func_FILLED_CONTAINER();
+s32 item_getcheck_func_MIRROR_PIECE_2();
+s32 item_getcheck_func_MIRROR_PIECE_3();
+s32 item_getcheck_func_MIRROR_PIECE_4();
+s32 item_getcheck_func_SMELL_YELIA_POUCH();
+s32 item_getcheck_func_SMELL_PUMPKIN();
+s32 item_getcheck_func_SMELL_POH();
+s32 item_getcheck_func_SMELL_FISH();
+s32 item_getcheck_func_SMELL_CHILDREN();
+s32 item_getcheck_func_SMELL_MEDICINE();
+s32 item_getcheck_func_M_BEETLE();
+s32 item_getcheck_func_F_BEETLE();
+s32 item_getcheck_func_M_BUTTERFLY();
+s32 item_getcheck_func_F_BUTTERFLY();
+s32 item_getcheck_func_M_STAG_BEETLE();
+s32 item_getcheck_func_F_STAG_BEETLE();
+s32 item_getcheck_func_M_GRASSHOPPER();
+s32 item_getcheck_func_F_GRASSHOPPER();
+s32 item_getcheck_func_M_NANAFUSHI();
+s32 item_getcheck_func_F_NANAFUSHI();
+s32 item_getcheck_func_M_DANGOMUSHI();
+s32 item_getcheck_func_F_DANGOMUSHI();
+s32 item_getcheck_func_M_MANTIS();
+s32 item_getcheck_func_F_MANTIS();
+s32 item_getcheck_func_M_LADYBUG();
+s32 item_getcheck_func_F_LADYBUG();
+s32 item_getcheck_func_M_SNAIL();
+s32 item_getcheck_func_F_SNAIL();
+s32 item_getcheck_func_M_DRAGONFLY();
+s32 item_getcheck_func_F_DRAGONFLY();
+s32 item_getcheck_func_M_ANT();
+s32 item_getcheck_func_F_ANT();
+s32 item_getcheck_func_M_MAYFLY();
+s32 item_getcheck_func_F_MAYFLY();
+s32 item_getcheck_func_POU_SPIRIT();
+s32 item_getcheck_func_ANCIENT_DOCUMENT();
+s32 item_getcheck_func_AIR_LETTER();
+s32 item_getcheck_func_ANCIENT_DOCUMENT2();
+s32 item_getcheck_func_LV7_DUNGEON_EXIT();
+s32 item_getcheck_func_LINKS_SAVINGS();
+s32 item_getcheck_func_SMALL_KEY2();
+s32 item_getcheck_func_POU_FIRE1();
+s32 item_getcheck_func_POU_FIRE2();
+s32 item_getcheck_func_POU_FIRE3();
+s32 item_getcheck_func_POU_FIRE4();
+s32 item_getcheck_func_BOSSRIDER_KEY();
+s32 item_getcheck_func_TOMATO_PUREE();
+s32 item_getcheck_func_TASTE();
+s32 item_getcheck_func_LV5_BOSS_KEY();
+s32 item_getcheck_func_SURFBOARD();
+s32 item_getcheck_func_KANTERA2();
+s32 item_getcheck_func_L2_KEY_PIECES1();
+s32 item_getcheck_func_L2_KEY_PIECES2();
+s32 item_getcheck_func_L2_KEY_PIECES3();
+s32 item_getcheck_func_KEY_OF_CARAVAN();
+s32 item_getcheck_func_LV2_BOSS_KEY();
+s32 item_getcheck_func_KEY_OF_FILONE();
+s32 item_getcheck_func_noentry();
+
+s32 checkItemGet(u8, int);
+s32 isBomb(u8);
+s32 isArrow(u8);
+void addBombCount(u8, u8);
+
#endif /* D_D_ITEM_H */
diff --git a/include/d/d_stage.h b/include/d/d_stage.h
index 06909c5f0f..56aec5199f 100644
--- a/include/d/d_stage.h
+++ b/include/d/d_stage.h
@@ -6,6 +6,7 @@
#include "d/save/d_save.h"
#include "dolphin/types.h"
#include "f_op/f_op_actor.h"
+#include "f_op/f_op_actor_mng.h"
#include "msl_c/string.h"
struct stage_vrboxcol_info_class {};
@@ -17,14 +18,32 @@ struct stage_tresure_class {};
struct stage_tgsc_data_class {
/* 8002847C */ ~stage_tgsc_data_class() {}
/* 800284B8 */ stage_tgsc_data_class() {}
- u8 unk_0[0x24];
+ /* 0x00 */ u32 field_0x0;
+ /* 0x04 */ u32 field_0x4;
+ /* 0x08 */ fopAcM_prmBase_class field_0x8;
+ /* 0x20 */ u16 field_0x20;
+ /* 0x22 */ u8 field_0x22;
}; // Size = 0x24
STATIC_ASSERT(sizeof(stage_tgsc_data_class) == 0x24);
struct stage_tgsc_class {};
-struct stage_stag_info_class {};
+struct stage_stag_info_class {
+ /* 0x00 */ u8 field_0x00[8];
+ /* 0x08 */ u8 mCameraType;
+ /* 0x09 */ u8 field_0x09;
+ /* 0x0A */ u16 field_0x0a;
+ /* 0x0C */ u32 field_0x0c;
+ /* 0x10 */ u32 field_0x10;
+ /* 0x14 */ u8 field_0x14[6];
+ /* 0x1A */ s16 mGapLevel;
+ /* 0x1C */ s16 mRangeUp;
+ /* 0x1E */ s16 mRangeDown;
+ /* 0x20 */ u8 field_0x20[8];
+ /* 0x28 */ u8 mMsgGroup;
+ /* 0x2A */ u16 mStageTitleNo;
+}; // Size: Unknown
struct stage_scls_info_dummy_class {};
@@ -327,102 +346,101 @@ private:
class dStage_roomDt_c : public dStage_dt_c {
public:
dStage_roomDt_c() {}
- stage_pure_lightvec_info_class* getLightVecInfo(void) const;
- int getLightVecInfoNum(void) const;
- stage_map_info_class* getMapInfo(void) const;
- stage_map_info_dummy_class* getMapInfoBase(void) const;
- int getMapPath(void);
- stage_vrbox_info_class* getVrboxInfo(void) const;
- stage_vrboxcol_info_class* getVrboxcolInfo(void) const;
- dStage_FileList2_dt_c* getFileList2Info(void) const;
- dStage_FileList_dt_c* getFileListInfo(void) const;
- stage_actor_class* getPlayer(void) const;
- dStage_dPnt_c* getPnt2Inf(void) const;
- dStage_dPath_c* getPath2Inf(void) const;
- stage_camera_class* getCamera(void) const;
- stage_arrow_class* getArrow(void) const;
- dStage_MapEventInfo_c* getMapEventInfo(void) const;
- dStage_SoundInfo_c* getSoundInf(void) const;
- dStage_SoundInfo_c* getSoundInfCL(void) const;
- stage_scls_info_dummy_class* getSclsInfo(void) const;
- dStage_Lbnk_c* getLbnk(void) const;
- stage_tresure_class* getTresure(void) const;
- stage_tgsc_class* getDrTg(void) const;
- stage_tgsc_class* getDoor(void) const;
- dStage_FloorInfo_c* getFloorInfo(void) const;
- u16 getPlayerNum(void) const;
- int getEnvrNumInfo(void) const;
- int getVrboxNumInfo(void) const;
- int getVrboxcolNumInfo(void) const;
- int getMapInfo2(int) const;
- int getPlightNumInfo(void) const;
- stage_stag_info_class* getStagInfo(void) const;
- dStage_dPnt_c* getPntInf(void) const;
- dStage_dPath_c* getPathInf(void) const;
- dStage_MemoryConfig_c* getMemoryConfig(void) const;
- dStage_MemoryMap_c* getMemoryMap(void) const;
- dStage_Multi_c* getMulti(void) const;
- dStage_Multi_c* getOldMulti(void) const;
- dStage_DMap_c* getDMap(void) const;
- dStage_Elst_c* getElst(void);
- roomRead_class* getRoom(void) const;
- stage_palette_info_class* getPaletteInfo(void) const;
- stage_pselect_info_class* getPselectInfo(void) const;
- stage_envr_info_class* getEnvrInfo(void) const;
- stage_plight_info_class* getPlightInfo(void) const;
- int getPaletteNumInfo(void) const;
- int getPselectNumInfo(void) const;
-
void initFileList2(void);
- void init(void);
-
- void setLightVecInfo(stage_pure_lightvec_info_class*);
- void setLightVecInfoNum(int);
- void setMapInfo(stage_map_info_class*);
- void setMapInfoBase(stage_map_info_dummy_class*);
- void setVrboxInfo(stage_vrbox_info_class*);
- void setVrboxcolInfo(stage_vrboxcol_info_class*);
- void setFileList2Info(dStage_FileList2_dt_c*);
- void setFileListInfo(dStage_FileList_dt_c*);
- void setPlayer(stage_actor_class*);
void setPnt2Inf(dStage_dPnt_c*);
- void setPath2Info(dStage_dPath_c*);
- void setCamera(stage_camera_class*);
- void setArrow(stage_arrow_class*);
- void setMapEventInfo(dStage_MapEventInfo_c*);
- void setSoundInf(dStage_SoundInfo_c*);
- void setSoundInfCL(dStage_SoundInfo_c*);
- void setSclsInfo(stage_scls_info_dummy_class*);
- void setLbnk(dStage_Lbnk_c*);
void setTreasure(stage_tresure_class*);
- void setDrTg(stage_tgsc_class*);
- void setDoor(stage_tgsc_class*);
- void setFloorInfo(dStage_FloorInfo_c*);
- void setPlayerNum(u16);
- void setVrboxNumInfo(int);
- void setVrboxcolNumInfo(int);
- void setStagInfo(stage_stag_info_class*);
- void setPntInfo(dStage_dPnt_c*);
- void setPathInfo(dStage_dPath_c*);
- void setPnt2Info(dStage_dPnt_c*);
- void setPlightNumInfo(int);
- void setMemoryConfig(dStage_MemoryConfig_c*);
- void setMemoryMap(dStage_MemoryMap_c*);
- void setMulti(dStage_Multi_c*);
- void setOldMulti(void);
- void resetOldMulti(void);
- void setTresure(stage_tresure_class*);
- void setDMap(dStage_DMap_c*);
- void setMapPath(void*);
- void setElst(dStage_Elst_c*);
- void setRoom(roomRead_class*);
- void setPaletteInfo(stage_palette_info_class*);
- void setPselectInfo(stage_pselect_info_class*);
- void setEnvrInfo(stage_envr_info_class*);
- void setPlightInfo(stage_plight_info_class*);
- void setPaletteNumInfo(int);
- void setPselectNumInfo(int);
- void setEnvrNumInfo(int);
+
+ virtual void init(void);
+ virtual void setCamera(stage_camera_class*);
+ virtual stage_camera_class* getCamera(void) const;
+ virtual void setArrow(stage_arrow_class*);
+ virtual stage_arrow_class* getArrow(void) const;
+ virtual void setPlayer(stage_actor_class*);
+ virtual stage_actor_class* getPlayer(void) const;
+ virtual void setPlayerNum(u16);
+ virtual u16 getPlayerNum(void) const;
+ virtual void setRoom(roomRead_class*);
+ virtual roomRead_class* getRoom(void) const;
+ virtual void setMapInfo(stage_map_info_class*);
+ virtual stage_map_info_class* getMapInfo(void) const;
+ virtual int getMapInfo2(int) const;
+ virtual void setMapInfoBase(stage_map_info_dummy_class*);
+ virtual stage_map_info_dummy_class* getMapInfoBase(void) const;
+ virtual void setPaletteInfo(stage_palette_info_class*);
+ virtual stage_palette_info_class* getPaletteInfo(void) const;
+ virtual void setPselectInfo(stage_pselect_info_class*);
+ virtual stage_pselect_info_class* getPselectInfo(void) const;
+ virtual void setEnvrInfo(stage_envr_info_class*);
+ virtual stage_envr_info_class* getEnvrInfo(void) const;
+ virtual void setVrboxInfo(stage_vrbox_info_class*);
+ virtual stage_vrbox_info_class* getVrboxInfo(void) const;
+ virtual void setVrboxcolInfo(stage_vrboxcol_info_class*);
+ virtual stage_vrboxcol_info_class* getVrboxcolInfo(void) const;
+ virtual void setPlightInfo(stage_plight_info_class*);
+ virtual stage_plight_info_class* getPlightInfo(void) const;
+ virtual void setPaletteNumInfo(int);
+ virtual int getPaletteNumInfo(void) const;
+ virtual void setPselectNumInfo(int);
+ virtual int getPselectNumInfo(void) const;
+ virtual void setEnvrNumInfo(int);
+ virtual int getEnvrNumInfo(void) const;
+ virtual void setVrboxNumInfo(int);
+ virtual int getVrboxNumInfo(void) const;
+ virtual void setVrboxcolNumInfo(int);
+ virtual int getVrboxcolNumInfo(void) const;
+ virtual void setPlightNumInfo(int);
+ virtual int getPlightNumInfo(void) const;
+ virtual void setLightVecInfo(stage_pure_lightvec_info_class*);
+ virtual stage_pure_lightvec_info_class* getLightVecInfo(void) const;
+ virtual void setLightVecInfoNum(int);
+ virtual int getLightVecInfoNum(void) const;
+ virtual void setStagInfo(stage_stag_info_class*);
+ virtual stage_stag_info_class* getStagInfo(void) const;
+ virtual void setSclsInfo(stage_scls_info_dummy_class*);
+ virtual stage_scls_info_dummy_class* getSclsInfo(void) const;
+ virtual void setPntInfo(dStage_dPnt_c*);
+ virtual dStage_dPnt_c* getPntInf(void) const;
+ virtual void setPathInfo(dStage_dPath_c*);
+ virtual dStage_dPath_c* getPathInf(void) const;
+ virtual void setPnt2Info(dStage_dPnt_c*);
+ virtual dStage_dPnt_c* getPnt2Inf(void) const;
+ virtual void setPath2Info(dStage_dPath_c*);
+ virtual dStage_dPath_c* getPath2Inf(void) const;
+ virtual void setSoundInf(dStage_SoundInfo_c*);
+ virtual dStage_SoundInfo_c* getSoundInf(void) const;
+ virtual void setSoundInfCL(dStage_SoundInfo_c*);
+ virtual dStage_SoundInfo_c* getSoundInfCL(void) const;
+ virtual void setMapEventInfo(dStage_MapEventInfo_c*);
+ virtual dStage_MapEventInfo_c* getMapEventInfo(void) const;
+ virtual void setFileList2Info(dStage_FileList2_dt_c*);
+ virtual dStage_FileList2_dt_c* getFileList2Info(void) const;
+ virtual void setFileListInfo(dStage_FileList_dt_c*);
+ virtual dStage_FileList_dt_c* getFileListInfo(void) const;
+ virtual void setFloorInfo(dStage_FloorInfo_c*);
+ virtual dStage_FloorInfo_c* getFloorInfo(void) const;
+ virtual void setMemoryConfig(dStage_MemoryConfig_c*);
+ virtual dStage_MemoryConfig_c* getMemoryConfig(void) const;
+ virtual void setMemoryMap(dStage_MemoryMap_c*);
+ virtual dStage_MemoryMap_c* getMemoryMap(void) const;
+ virtual void setMulti(dStage_Multi_c*);
+ virtual dStage_Multi_c* getMulti(void) const;
+ virtual void setOldMulti(void);
+ virtual void resetOldMulti(void);
+ virtual dStage_Multi_c* getOldMulti(void) const;
+ virtual void setLbnk(dStage_Lbnk_c*);
+ virtual dStage_Lbnk_c* getLbnk(void) const;
+ virtual void setTresure(stage_tresure_class*);
+ virtual stage_tresure_class* getTresure(void) const;
+ virtual void setDMap(dStage_DMap_c*);
+ virtual dStage_DMap_c* getDMap(void) const;
+ virtual void setDrTg(stage_tgsc_class*);
+ virtual stage_tgsc_class* getDrTg(void) const;
+ virtual void setDoor(stage_tgsc_class*);
+ virtual stage_tgsc_class* getDoor(void) const;
+ virtual void setMapPath(void*);
+ virtual int getMapPath(void);
+ virtual void setElst(dStage_Elst_c*);
+ virtual dStage_Elst_c* getElst(void);
private:
stage_pure_lightvec_info_class* mLightVecInfo;
@@ -454,14 +472,13 @@ private:
}; // Size: 0x6C
class dStage_roomStatus_c {
-private:
+public:
/* 0x000 */ dStage_roomDt_c mRoomDt;
/* 0x06C */ dKy_tevstr_c mKyTevStr;
/* 0x3F4 */ u8 unk_0x3F4[3];
/* 0x3F7 */ s8 mZoneNo;
/* 0x3F8 */ u8 unk_3F8[0x404 - 0x3F8];
-public:
int getZoneNo() const { return mZoneNo; }
/* 80028360 */ ~dStage_roomStatus_c() {}
/* 8002839C */ dStage_roomStatus_c() {}
@@ -469,6 +486,8 @@ public:
STATIC_ASSERT(sizeof(dStage_roomStatus_c) == 0x404);
+extern s8 struct_80450D64; // sStayNo
+
class dStage_roomControl_c {
public:
class roomDzs_c {
@@ -500,51 +519,27 @@ public:
/* 80024954 */ void resetArchiveBank(int);
/* 80024DB0 */ static void SetTimePass(int);
+ inline static s8 getStayNo() { return struct_80450D64; }
+
static JKRExpHeap* mMemoryBlock[19];
static u8 mArcBank[320];
static dStage_roomStatus_c mStatus[0x40];
static u8 mDemoArcName[10 + 2 /* padding */];
static u32 mProcID;
- static u8 mArcBankName[4];
- static u8 mArcBankData[4];
+ static char* mArcBankName;
+ static char* mArcBankData;
static roomDzs_c m_roomDzs;
private:
u8 field_0x0[4];
};
-#pragma pack(push, 1)
-class dStage_nextStage_c {
-public:
- dStage_nextStage_c() {
- enabled = 0; // TODO: maybe wrong
- }
- void set(const char*, s8, s16, s8, s8, u8);
-
-private:
- char mStage[8];
- s16 mPoint;
- u8 mRoomNo;
- u8 mLayer;
- u8 field_0xc;
- s8 enabled;
- u8 wipe;
- u8 wipe_speed;
-};
-#pragma pack(pop)
-
class dStage_startStage_c {
public:
void set(const char*, s8, s16, s8);
inline char* getName() { return mStage; }
s8 getLayer() { return mLayer; }
- void operator=(const dStage_startStage_c& other) {
- strcpy(mStage, other.mStage);
- mPoint = other.mPoint;
- mRoomNo = other.mRoomNo;
- mLayer = other.mLayer;
- mDarkArea = other.mDarkArea;
- }
+ s8 getRoomNo() { return mRoomNo; }
private:
/* 0x0 */ char mStage[8];
@@ -554,6 +549,20 @@ private:
/* 0xC */ s8 mDarkArea;
};
+class dStage_nextStage_c : public dStage_startStage_c {
+public:
+ dStage_nextStage_c() {
+ enabled = 0; // TODO: maybe wrong
+ }
+ void set(const char*, s8, s16, s8, s8, u8);
+ void offEnable() { enabled = 0; }
+
+private:
+ s8 enabled;
+ u8 wipe;
+ u8 wipe_speed;
+};
+
// unknown name
struct dStage_objectNameInf {
char mName[8];
@@ -564,7 +573,7 @@ struct dStage_objectNameInf {
class dStage_KeepDoorInfo {
public:
/* 80028418 */ ~dStage_KeepDoorInfo() {}
- /* 0x000 */ u8 unk_0x0[4];
+ /* 0x000 */ stage_tgsc_class* unk_0x0;
/* 0x004 */ stage_tgsc_data_class unk_0x4[0x40];
}; // Size = 0x904
@@ -625,8 +634,14 @@ static void dStage_fieldMapTresureInit(dStage_dt_c*, void*, int, void*);
static void dStage_fieldMapFiliInfo2Init(dStage_dt_c*, void*, int, void*);
static void dStage_fieldMapMapPathInit(dStage_dt_c*, void*, int, void*);
+u8 dStage_roomRead_dt_c_GetReverbStage(roomRead_class&, int);
+
inline u8 dStage_roomRead_dt_c_GetLoadRoomIndex(u8 param_0) {
return param_0 & 0x3f;
}
+inline u32 dStage_stagInfo_GetSTType(stage_stag_info_class* pstag) {
+ return pstag->field_0x0c >> 0x10 & 7;
+}
+
#endif /* D_D_STAGE_H */
diff --git a/include/d/event/d_event.h b/include/d/event/d_event.h
index b7cf2df3c4..0d8841412d 100644
--- a/include/d/event/d_event.h
+++ b/include/d/event/d_event.h
@@ -77,6 +77,7 @@ public:
void setPtI_Id(unsigned int);
void setPtD(void*);
void setGtItm(u8);
+ void isOrderOK();
u16 chkFlag2(u16 flag) { return flag & mFlag2; }
diff --git a/include/d/event/d_event_manager.h b/include/d/event/d_event_manager.h
index 02f8e4233d..8adf1c142c 100644
--- a/include/d/event/d_event_manager.h
+++ b/include/d/event/d_event_manager.h
@@ -39,7 +39,7 @@ public:
void Experts();
void getEventData(s16);
dEvDtEvent_c* getEventData(s16, int);
- void getEventIdx(char const*, u8, s32);
+ int getEventIdx(char const*, u8, s32);
void getEventIdx(fopAc_ac_c*, u8);
void getEventIdx(fopAc_ac_c*, char const*, u8);
void isMapToolCamera(u8, s32);
diff --git a/include/d/kankyo/d_kankyo.h b/include/d/kankyo/d_kankyo.h
index 63208f2691..a54f18f9d7 100644
--- a/include/d/kankyo/d_kankyo.h
+++ b/include/d/kankyo/d_kankyo.h
@@ -63,4 +63,6 @@ private:
STATIC_ASSERT(sizeof(dKy_tevstr_c) == 0x388);
+BOOL dKy_darkworld_stage_check(char const*, int);
+
#endif /* D_KANKYO_D_KANKYO_H */
diff --git a/include/d/meter/d_meter2_info.h b/include/d/meter/d_meter2_info.h
index 61ba0bd8a9..c058da0d98 100644
--- a/include/d/meter/d_meter2_info.h
+++ b/include/d/meter/d_meter2_info.h
@@ -9,10 +9,6 @@
#include "f_op/f_op_actor.h"
//#include "JSystem/JUtility/JUTFont.h"
-struct dSv_event_flag_c {
- static u8 saveBitLabels[1644 + 4 /* padding */];
-};
-
struct dMsgObject_c {
/* 802384C4 */ void setLetterNameID(u16);
/* 802379AC */ void setKillMessageFlag();
@@ -115,6 +111,7 @@ public:
dMeterMap_c* getMeterMapClass() { return mMeterMap; }
dMw_c* getMenuWindowClass() { return mMenuWindowClass; }
void offUseButton(int pButton) { mUseButton &= ~(u16)pButton; }
+ u16 getOilGaugeBackUp() { return mOilGaugeBackUp; }
private:
/* 0x04 */ u8 unk4[4];
@@ -201,6 +198,8 @@ private:
extern dMeter2Info_c g_meter2_info;
+void dMeter2Info_setSword(u8, bool);
+
inline void dMeter2Info_Initialize() {
g_meter2_info.init();
}
@@ -217,4 +216,20 @@ inline void dMeter2Info_setWindowStatus(u8 status) {
g_meter2_info.setWindowStatus(status);
}
+inline void dMeter2Info_getString(u32 param_0, char* param_1, JMSMesgEntry_c* param_2) {
+ g_meter2_info.getString(param_0, param_1, param_2);
+}
+
+inline void dMeter2Info_setHotSpringTimer(u8 time) {
+ g_meter2_info.setHotSpringTimer(time);
+}
+
+inline u16 dMeter2Info_getOilGaugeBackUp() {
+ return g_meter2_info.getOilGaugeBackUp();
+}
+
+inline void dMeter2Info_setSaveStageName(const char* name) {
+ g_meter2_info.setSaveStageName(name);
+}
+
#endif /* D_METER_D_METER2_INFO_H */
diff --git a/include/d/save/d_save.h b/include/d/save/d_save.h
index 7a690fdcd7..e6cfc1e681 100644
--- a/include/d/save/d_save.h
+++ b/include/d/save/d_save.h
@@ -3,6 +3,7 @@
#include "SSystem/SComponent/c_xyz.h"
#include "dolphin/types.h"
+#include "msl_c/string.h"
#define DEFAULT_SELECT_ITEM_INDEX 0
#define MAX_SELECT_ITEM 4
@@ -15,6 +16,11 @@
#define BOTTLE_MAX 4
#define TBOX_MAX 64
#define DSV_MEMBIT_ENUM_MAX 8
+#define ITEM_MAX_DAN 128
+#define SWITCH_ZONE_MAX 0x20
+#define SWITCH_ONE_ZONE_MAX 0x10
+#define ITEM_ZONE_MAX 0x20
+#define ITEM_ONE_ZONE_MAX 0x10
enum Wallets { WALLET, BIG_WALLET, GIANT_WALLET };
@@ -306,9 +312,14 @@ enum ItemTable {
enum CollectItem { COLLECT_CLOTHING, COLLECT_SWORD, COLLECT_SHIELD, COLLECT_SMELL, B_BUTTON_ITEM };
-enum Swords { ORDON_SWORD_FLAG, MASTER_SWORD_FLAG, WOODEN_SWORD_FLAG, LIGHT_SWORD_FLAG };
+enum Swords {
+ COLLECT_ORDON_SWORD,
+ COLLECT_MASTER_SWORD,
+ COLLECT_WOODEN_SWORD,
+ COLLECT_LIGHT_SWORD
+};
-enum Shields { ORDON_SHIELD_FLAG, HYLIAN_SHIELD_FLAG, WOODEN_SHIELD_FLAG };
+enum Shields { COLLECT_WOODEN_SHIELD, COLLECT_ORDON_SHIELD, COLLECT_HYLIAN_SHIELD };
enum Armors { KOKIRI_CLOTHES_FLAG };
@@ -318,12 +329,12 @@ enum ItemMax { ARROW_MAX, NORMAL_BOMB_MAX, WATER_BOMB_MAX, POKE_BOMB_MAX = 6 };
class dSv_player_status_a_c {
public:
- void init(void);
+ void init();
void setSelectItemIndex(signed int, u8);
u8 getSelectItemIndex(signed int) const;
void setMixItemIndex(signed int, u8);
u8 getMixItemIndex(signed int) const;
- u16 getRupeeMax(void) const;
+ u16 getRupeeMax() const;
int isMagicFlag(u8) const;
u16& getMaxLife() { return mMaxLife; }
@@ -331,7 +342,6 @@ public:
u16& getRupee() { return mRupee; }
u16& getOil() { return mOil; }
u8 getSelectEquip(int item) const { return mSelectEquip[item]; }
- void setWalletLV(u8 lv) { mWalletSize = lv; }
void setOil(u16 oil) { mOil = oil; }
void setMaxOil(u16 max) { mMaxOil = max; }
void setWalletSize(u8 size) { mWalletSize = size; }
@@ -361,141 +371,143 @@ private:
/* 0x1D */ u8 unk29;
/* 0x1E */ u8 mTransformStatus;
/* 0x1F */ u8 unk31[3];
- /* 0x22 */ u8 padding[6];
-};
+}; // Size: 0x28
class dSv_player_status_b_c {
public:
- void init(void);
+ void init();
void onDarkClearLV(int);
BOOL isDarkClearLV(int) const;
void onTransformLV(int);
BOOL isTransformLV(int) const;
+ void setDateIpl(s64 time) { mDateIpl = time; }
+
private:
- u64 mDateIpl;
- u8 mTransformLevelFlag;
- u8 mDarkClearLevelFlag;
- u8 unk10;
- u8 unk11;
- float mTime;
- u16 mDate;
- u8 unk18[3];
- u8 padding[3];
-};
+ /* 0x00 */ s64 mDateIpl;
+ /* 0x08 */ u8 mTransformLevelFlag;
+ /* 0x09 */ u8 mDarkClearLevelFlag;
+ /* 0x0A */ u8 unk10;
+ /* 0x0B */ u8 unk11;
+ /* 0x0C */ float mTime;
+ /* 0x10 */ u16 mDate;
+ /* 0x12 */ u8 unk18[3];
+}; // Size: 0x18
class dSv_horse_place_c {
public:
- void init(void);
+ void init();
void set(const char*, const cXyz&, s16, s8);
private:
- cXyz mPosition;
- u16 mXRotation;
- char mCurrentStage[8];
- u8 mSpawnId;
- u8 mRoomId;
-};
+ /* 0x00 */ cXyz mPos;
+ /* 0x0C */ u16 mAngleY;
+ /* 0x0E */ char mName[8];
+ /* 0x16 */ u8 mSpawnId;
+ /* 0x17 */ u8 mRoomNo;
+}; // Size: 0x18
class dSv_player_return_place_c {
public:
- void init(void);
+ void init();
void set(const char*, s8, u8);
+ u8 getRoomNo() { return mRoomNo; }
+ u8 getPlayerStatus() { return mPlayerStatus; }
+ char* getName() { return mName; }
private:
- char mCurrentStage[8];
- u8 mSpawnId;
- u8 mRoomId;
- u8 unk10;
- u8 unk11;
-};
+ /* 0x00 */ char mName[8];
+ /* 0x08 */ u8 mPlayerStatus;
+ /* 0x09 */ s8 mRoomNo;
+ /* 0x0A */ u8 unk10;
+ /* 0x0B */ u8 unk11;
+}; // Size: 0xC
class dSv_player_field_last_stay_info_c {
public:
- void init(void);
+ void init();
BOOL isRegionBit(int unk) const;
void onRegionBit(int unk);
void set(const char*, const cXyz&, s16, s8, u8);
private:
- cXyz mPos;
- s16 mAngleY;
- char mName[8];
- u8 mLastSpawnId;
- u8 mRegionNo;
- bool mFieldDataExistFlag;
- u8 mRegion;
- u8 unk26[2];
-};
+ /* 0x00 */ cXyz mPos;
+ /* 0x0C */ s16 mAngleY;
+ /* 0x0E */ char mName[8];
+ /* 0x16 */ u8 mLastSpawnId;
+ /* 0x17 */ u8 mRegionNo;
+ /* 0x18 */ bool mFieldDataExistFlag;
+ /* 0x19 */ u8 mRegion;
+ /* 0x1A */ u8 unk26[2];
+}; // Size: 0x1C
class dSv_player_last_mark_info_c {
public:
- void init(void);
+ void init();
void setWarpItemData(const char*, const cXyz&, s16, s8, u8, u8);
- const char* getName(void) { return mOoccooStage; }
- cXyz getPos(void) { return mOoccooPosition; }
- s16 getAngleY(void) { return mOoccooXRotation; }
- s8 getRoomNo(void) { return mOoccooRoomId; }
- char getWarpAcceptStage(void) { return mWarpAcceptStage; }
+ const char* getName() { return mName; }
+ cXyz getPos() { return mPos; }
+ s16 getAngleY() { return mAngleY; }
+ s8 getRoomNo() { return mRoomNo; }
+ char getWarpAcceptStage() { return mWarpAcceptStage; }
private:
- cXyz mOoccooPosition;
- s16 mOoccooXRotation;
- char mOoccooStage[8];
- u8 mOoccooSpawnId;
- s8 mOoccooRoomId;
- char mWarpAcceptStage;
- u8 unk25[3];
-};
+ /* 0x00 */ cXyz mPos;
+ /* 0x0C */ s16 mAngleY;
+ /* 0x0E */ char mName[8];
+ /* 0x16 */ u8 mSpawnId;
+ /* 0x17 */ s8 mRoomNo;
+ /* 0x18 */ char mWarpAcceptStage;
+ /* 0x19 */ u8 unk25[3];
+}; // Size: 0x1C
class dSv_player_item_c {
public:
- void init(void);
+ void init();
void setItem(int, u8);
u8 getItem(int, bool) const;
- void setLineUpItem(void);
+ void setLineUpItem();
u8 getLineUpItem(int) const;
void setBottleItemIn(u8, u8);
void setEmptyBottleItemIn(u8);
- void setEmptyBottle(void);
+ void setEmptyBottle();
void setEmptyBottle(u8);
void setEquipBottleItemIn(u8, u8);
void setEquipBottleItemEmpty(u8);
u8 checkBottle(u8);
- int checkInsectBottle(void);
- u8 checkEmptyBottle(void);
+ int checkInsectBottle();
+ u8 checkEmptyBottle();
void setBombBagItemIn(u8, u8, bool);
void setBombBagItemIn(u8, u8, u8, bool);
void setEmptyBombBagItemIn(u8, bool);
void setEmptyBombBagItemIn(u8, u8, bool);
- void setEmptyBombBag(void);
+ void setEmptyBombBag();
void setEmptyBombBag(u8, u8);
u8 checkBombBag(u8);
void setWarashibeItem(u8);
- void setRodTypeLevelUp(void);
+ void setRodTypeLevelUp();
void setBaitItem(u8);
private:
- u8 mItems[24];
- u8 mItemSlots[24];
-};
+ /* 0x00 */ u8 mItems[24];
+ /* 0x18 */ u8 mItemSlots[24];
+}; // Size: 0x30
class dSv_player_get_item_c {
public:
- void init(void);
+ void init();
void onFirstBit(u8);
void offFirstBit(u8);
int isFirstBit(u8) const;
private:
- u32 mPauseMenuBitFields[4];
- u8 padding[16];
-};
+ /* 0x0 */ u32 mItemFlags[8];
+}; // Size: 0x20
class dSv_player_item_record_c {
public:
- void init(void);
+ void init();
void setBombNum(u8, u8);
u8 getBombNum(u8) const;
void setBottleNum(u8, u8);
@@ -503,18 +515,20 @@ public:
u8 getBottleNum(u8) const;
void setArrowNum(u8 amount) { mArrowNum = amount; }
+ u8 getPachinkoNum() const { return mPachinkoNum; }
+ void setPachinkoNum(u8 num) { mPachinkoNum = num; }
private:
- u8 mArrowNum;
- u8 mBombNum[3];
- u8 mBottleNum[4];
- u8 mPachinkoNum;
- u8 unk5[3];
-};
+ /* 0x0 */ u8 mArrowNum;
+ /* 0x1 */ u8 mBombNum[3];
+ /* 0x4 */ u8 mBottleNum[4];
+ /* 0x8 */ u8 mPachinkoNum;
+ /* 0x9 */ u8 unk5[3];
+}; // Size: 0xC
class dSv_player_item_max_c {
public:
- void init(void);
+ void init();
void setBombNum(u8, u8);
u8 getBombNum(u8) const;
@@ -522,12 +536,12 @@ public:
u8 getArrowNum() { return mItemMax[ARROW_MAX]; }
private:
- u8 mItemMax[8];
-};
+ /* 0x0 */ u8 mItemMax[8];
+}; // Size: 0x8
class dSv_player_collect_c {
public:
- void init(void);
+ void init();
void setCollect(int, u8);
BOOL isCollect(int, u8) const;
void onCollectCrystal(u8);
@@ -538,90 +552,91 @@ public:
u8 getPohNum() { return mPohNum; }
private:
- u8 mItem[8];
- u8 unk8;
- u8 mCrystal;
- u8 mMirror;
- u8 unk11;
- u8 mPohNum;
- u8 padding[3];
-};
+ /* 0x0 */ u8 mItem[8];
+ /* 0x8 */ u8 unk8;
+ /* 0x9 */ u8 mCrystal;
+ /* 0xA */ u8 mMirror;
+ /* 0xB */ u8 unk11;
+ /* 0xC */ u8 mPohNum;
+ /* 0xD */ u8 padding[3];
+}; // Size: 0x10
class dSv_player_wolf_c {
public:
- void init(void);
+ void init();
private:
- u8 unk0[3];
- u8 unk3;
-};
+ /* 0x0 */ u8 unk0[3];
+ /* 0x3 */ u8 unk3;
+}; // Size: 0x4
class dSv_light_drop_c {
public:
- void init(void);
+ void init();
void setLightDropNum(u8, u8);
u8 getLightDropNum(u8) const;
void onLightDropGetFlag(u8);
BOOL isLightDropGetFlag(u8) const;
private:
- u8 mLightDropNum[4];
- u8 mLightDropGetFlag;
- u8 unk5[3];
-};
+ /* 0x0 */ u8 mLightDropNum[4];
+ /* 0x4 */ u8 mLightDropGetFlag;
+ /* 0x5 */ u8 unk5[3];
+}; // Size: 0x8
class dSv_letter_info_c {
public:
- void init(void);
+ void init();
void onLetterGetFlag(int);
BOOL isLetterGetFlag(int) const;
void onLetterReadFlag(int);
int isLetterReadFlag(int) const;
private:
- u32 mLetterGetBitfields[2];
- u32 mLetterReadBitfields[2];
- u8 unk16[64];
-};
+ /* 0x00 */ u32 mLetterGetFlags[2];
+ /* 0x08 */ u32 mLetterReadFlags[2];
+ /* 0x10 */ u8 mGetNumber[64];
+}; // Size: 0x50
class dSv_fishing_info_c {
public:
- void init(void);
+ void init();
void addFishCount(u8);
private:
- u16 mFishCount[16];
- u8 mMaxSize[16];
- u8 padding[4];
-};
+ /* 0x00 */ u16 mFishCount[16];
+ /* 0x20 */ u8 mMaxSize[16];
+}; // Size: 0x34
class dSv_player_info_c {
public:
- void init(void);
+ void init();
char* getLinkName() { return (char*)mPlayerName; }
+ void setPlayerName(const char* name) { strcpy((char*)mPlayerName, name); }
+ void setHorseName(const char* name) { strcpy((char*)mHorseName, name); }
+ void setTotalTime(s64 time) { mTotalTime = time; }
private:
- u32 unk0;
- u32 unk4;
- u64 mTotalTime;
- u16 unk16;
- u16 mDeathCount;
- u8 mPlayerName[16];
- u8 unk36;
- u8 mHorseName[16];
- u8 unk53;
- u8 mClearCount;
- u8 unk55[5];
- u8 padding[4];
-};
+ /* 0x00 */ u32 unk0;
+ /* 0x04 */ u32 unk4;
+ /* 0x08 */ u64 mTotalTime;
+ /* 0x10 */ u16 unk16;
+ /* 0x12 */ u16 mDeathCount;
+ /* 0x14 */ u8 mPlayerName[16];
+ /* 0x24 */ u8 unk36;
+ /* 0x25 */ u8 mHorseName[16];
+ /* 0x35 */ u8 unk53;
+ /* 0x36 */ u8 mClearCount;
+ /* 0x37 */ u8 unk55[5];
+}; // Size: 0x40
class dSv_player_config_c {
public:
- void init(void);
- u32 checkVibration(void) const;
- u8 getSound(void);
+ void init();
+ u32 checkVibration() const;
+ u8 getSound();
void setSound(u8);
- u8 getVibration(void);
+ u8 getVibration();
void setVibration(u8);
inline u8 getAttentionType(void) { return mAttentionType; }
inline void setAttentionType(u8 i_mAttentionType) { mAttentionType = i_mAttentionType; }
@@ -637,68 +652,69 @@ public:
inline void setPointer(bool i_mPointer) { mPointer = i_mPointer; }
private:
- u8 unk0;
- u8 mSoundMode;
- u8 mAttentionType; // 0 : hold, 1 : switch
- u8 mVibration;
- u8 unk4;
- u8 unk5;
- u16 mCalibrateDist; // Wii pointer horizontal calibration. Default is 0x015E
- u8 mCalValue; // Wii pointer vertical calibration. Default is 0x00
- bool mShortCut; // Wii icon shortcut enabled/disabled.
- u8 mCameraControl; // 0 : normal, 1 : inverted
- bool mPointer; // Wii pointer enabled/disabled.
- u8 padding[4];
-};
+ /* 0x0 */ u8 unk0;
+ /* 0x1 */ u8 mSoundMode;
+ /* 0x2 */ u8 mAttentionType; // Lock-On Type; 0 : hold, 1 : switch
+ /* 0x3 */ u8 mVibration; // Rumble status
+ /* 0x4 */ u8 unk4;
+ /* 0x5 */ u8 unk5;
+ /* 0x6 */ u16 mCalibrateDist; // Wii pointer horizontal calibration. Default is 0x015E
+ /* 0x8 */ u8 mCalValue; // Wii pointer vertical calibration. Default is 0x00
+ /* 0x9 */ bool mShortCut; // Wii icon shortcut enabled/disabled.
+ /* 0xA */ u8 mCameraControl; // 0 : normal, 1 : inverted
+ /* 0xB */ bool mPointer; // Wii pointer enabled/disabled.
+}; // Size: 0xC
class dSv_player_c {
public:
- void init(void);
+ void init();
dSv_player_info_c& getPlayerInfo() { return mPlayerInfo; }
- dSv_player_status_a_c& getPlayerStatusA() { return player_status_a; }
- dSv_player_item_c& getPlayerItem() { return player_item; }
- dSv_player_collect_c& getPlayerCollect() { return player_collect; }
- dSv_player_item_record_c& getPlayerItemRecord() { return player_item_record; }
- dSv_player_item_max_c& getPlayerItemMax() { return player_item_max; }
- dSv_player_last_mark_info_c& getPlayerLastMarkInfo() { return player_last_mark; }
- dSv_light_drop_c& getLightDrop() { return light_drop; }
- dSv_player_get_item_c& getPlayerGetItem() { return player_get_item; }
+ dSv_player_status_a_c& getPlayerStatusA() { return mPlayerStatusA; }
+ dSv_player_status_b_c& getPlayerStatusB() { return mPlayerStatusB; }
+ dSv_player_item_c& getItem() { return mItem; }
+ dSv_player_collect_c& getCollect() { return mCollect; }
+ dSv_player_item_record_c& getItemRecord() { return mItemRecord; }
+ dSv_player_item_max_c& getItemMax() { return mItemMax; }
+ dSv_player_last_mark_info_c& getPlayerLastMarkInfo() { return mPlayerLastMarkInfo; }
+ dSv_player_return_place_c& getPlayerReturnPlace() { return mPlayerReturnPlace; }
+ dSv_light_drop_c& getLightDrop() { return mLightDrop; }
+ dSv_player_get_item_c& getGetItem() { return mGetItem; }
+ dSv_player_config_c& getConfig() { return mConfig; }
private:
- dSv_player_status_a_c player_status_a;
- dSv_player_status_b_c player_status_b;
- dSv_horse_place_c horse_place;
- dSv_player_return_place_c player_return;
- dSv_player_field_last_stay_info_c player_last_field;
- dSv_player_last_mark_info_c player_last_mark;
- dSv_player_item_c player_item;
- dSv_player_get_item_c player_get_item;
- dSv_player_item_record_c player_item_record;
- dSv_player_item_max_c player_item_max;
- dSv_player_collect_c player_collect;
- dSv_player_wolf_c player_wolf;
- dSv_light_drop_c light_drop;
- dSv_letter_info_c letter_info;
- dSv_fishing_info_c fishing_info;
- dSv_player_info_c mPlayerInfo;
- dSv_player_config_c player_config;
-};
+ /* 0x000 */ dSv_player_status_a_c mPlayerStatusA;
+ /* 0x028 */ dSv_player_status_b_c mPlayerStatusB;
+ /* 0x040 */ dSv_horse_place_c mHorsePlace;
+ /* 0x058 */ dSv_player_return_place_c mPlayerReturnPlace;
+ /* 0x064 */ dSv_player_field_last_stay_info_c mPlayerFieldLastStayInfo;
+ /* 0x080 */ dSv_player_last_mark_info_c mPlayerLastMarkInfo;
+ /* 0x09C */ dSv_player_item_c mItem;
+ /* 0x0CC */ dSv_player_get_item_c mGetItem;
+ /* 0x0EC */ dSv_player_item_record_c mItemRecord;
+ /* 0x0F8 */ dSv_player_item_max_c mItemMax;
+ /* 0x100 */ dSv_player_collect_c mCollect;
+ /* 0x110 */ dSv_player_wolf_c mWolf;
+ /* 0x114 */ dSv_light_drop_c mLightDrop;
+ /* 0x11C */ dSv_letter_info_c mLetterInfo;
+ /* 0x16C */ dSv_fishing_info_c mFishingInfo;
+ /* 0x1A0 */ dSv_player_info_c mPlayerInfo;
+ /* 0x1E0 */ dSv_player_config_c mConfig;
+}; // Size: 0x1EC
-#pragma pack(push, 1)
class dSv_memBit_c {
public:
enum {
- MAP_FLAG,
- COMPASS_FLAG,
- BOSS_KEY_FLAG,
+ MAP,
+ COMPASS,
+ BOSS_KEY,
STAGE_BOSS_ENEMY,
STAGE_LIFE,
STAGE_BOSS_DEMO,
- OOCCOO_NOTE_FLAG,
+ OOCCOO_NOTE,
STAGE_BOSS_ENEMY_2
};
- void init(void);
+ void init();
void onTbox(int);
void offTbox(int);
BOOL isTbox(int) const;
@@ -709,28 +725,34 @@ public:
void onItem(int);
BOOL isItem(int) const;
void onDungeonItem(int);
- bool isDungeonItem(int) const;
+ s32 isDungeonItem(int) const;
u8 getKeyNum() { return mKeyNum; }
- void onDungeonItemMap() { onDungeonItem(MAP_FLAG); }
- bool isDungeonItemMap() const { return isDungeonItem(MAP_FLAG); }
- void onDungeonItemCompass() { onDungeonItem(COMPASS_FLAG); }
- void onDungeonItemWarp() { onDungeonItem(OOCCOO_NOTE_FLAG); }
- void onDungeonItemBossKey() { onDungeonItem(BOSS_KEY_FLAG); }
- bool isDungeonItemBossKey() const { return isDungeonItem(BOSS_KEY_FLAG); }
+ void setKeyNum(u8 keyNum) { mKeyNum = keyNum; }
+ void onDungeonItemMap() { onDungeonItem(MAP); }
+ s32 isDungeonItemMap() const { return isDungeonItem(MAP); }
+ void onDungeonItemCompass() { onDungeonItem(COMPASS); }
+ void onDungeonItemWarp() { onDungeonItem(OOCCOO_NOTE); }
+ void onDungeonItemBossKey() { onDungeonItem(BOSS_KEY); }
+ s32 isDungeonItemBossKey() const { return isDungeonItem(BOSS_KEY); }
+ void onStageBossEnemy() {
+ onDungeonItem(STAGE_BOSS_ENEMY);
+ onDungeonItem(OOCCOO_NOTE);
+ }
+ s32 isDungeonItemWarp() const { return isDungeonItem(OOCCOO_NOTE); }
+ void onStageLife() { onDungeonItem(STAGE_LIFE); }
private:
/* 0x00 */ u32 mTbox[2];
/* 0x08 */ u32 mSwitch[4];
- /* 0x18 */ u32 mItem[1]; // not sure if this is right
+ /* 0x18 */ u32 mItem[1];
/* 0x1C */ u8 mKeyNum;
/* 0x1D */ u8 mDungeonItem;
-};
-#pragma pack(pop)
+}; // Size: 0x20
class dSv_event_c {
public:
- void init(void);
+ void init();
void onEventBit(u16);
void offEventBit(u16);
int isEventBit(u16) const;
@@ -738,48 +760,47 @@ public:
u8 getEventReg(u16) const;
private:
- u8 mEvent[256];
-};
+ /* 0x0 */ u8 mEvent[256];
+}; // Size: 0x100
class dSv_MiniGame_c {
public:
- void init(void);
+ void init();
private:
- u8 unk0;
- u8 unk1[3];
- u32 unk4;
- u32 mBalloonScore;
- u32 mRaceGameTime;
- u32 unk16;
- u32 unk20;
-};
+ /* 0x00 */ u8 unk0;
+ /* 0x01 */ u8 unk1[3];
+ /* 0x04 */ u32 mStarTime;
+ /* 0x08 */ u32 mBalloonScore;
+ /* 0x0C */ u32 mRaceGameTime;
+ /* 0x10 */ u32 unk16;
+ /* 0x14 */ u32 unk20;
+}; // Size: 0x18
class dSv_memory_c {
public:
- dSv_memory_c(void) { this->init(); }
- void init(void);
- dSv_memBit_c& getMemBit() { return mMemBit; }
- const dSv_memBit_c& getMemBitConst() const { return mMemBit; }
+ dSv_memory_c() { this->init(); }
+ void init();
+ dSv_memBit_c& getBit() { return mBit; }
+ const dSv_memBit_c& getBit() const { return mBit; }
private:
- dSv_memBit_c mMemBit;
- u8 padding30[2];
-};
+ /* 0x0 */ dSv_memBit_c mBit;
+}; // Size: 0x20
STATIC_ASSERT(sizeof(dSv_memory_c) == 0x20);
class dSv_memory2_c {
public:
- dSv_memory2_c(void) { this->init(); }
- void init(void);
+ dSv_memory2_c() { this->init(); }
+ void init();
void onVisitedRoom(int);
void offVisitedRoom(int);
BOOL isVisitedRoom(int);
private:
- u32 mVisitedRoom[2];
-};
+ /* 0x0 */ u32 mVisitedRoom[2];
+}; // Size: 0x8
STATIC_ASSERT(sizeof(dSv_memory2_c) == 8);
@@ -794,19 +815,19 @@ public:
BOOL isItem(int) const;
private:
- s8 mStageNo;
- u8 unk1;
- u8 unk2[2];
- u32 mSwitch[2];
- u32 mItem[4];
- s16 unk28[16];
-};
+ /* 0x00 */ s8 mStageNo;
+ /* 0x01 */ u8 unk1;
+ /* 0x02 */ u8 unk2[2];
+ /* 0x04 */ u32 mSwitch[2];
+ /* 0x0C */ u32 mItem[4];
+ /* 0x1C */ s16 unk28[16];
+}; // Size: 0x3C
class dSv_zoneBit_c {
public:
- void init(void);
- void clearRoomSwitch(void);
- void clearRoomItem(void);
+ void init();
+ void clearRoomSwitch();
+ void clearRoomItem();
void onSwitch(int);
void offSwitch(int);
BOOL isSwitch(int) const;
@@ -821,16 +842,16 @@ public:
BOOL isOneItem(int) const;
private:
- u16 mSwitch[2];
- u16 mRoomSwitch;
- u16 mItem[2];
- u16 mRoomItem;
- u16 unk12;
-};
+ /* 0x00 */ u16 mSwitch[2];
+ /* 0x04 */ u16 mRoomSwitch;
+ /* 0x06 */ u16 mItem[2];
+ /* 0x0A */ u16 mRoomItem;
+ /* 0x0C */ u16 unk12;
+}; // Size: 0xE
class dSv_zoneActor_c {
public:
- void init(void);
+ void init();
void on(int);
void off(int);
BOOL is(int) const;
@@ -838,26 +859,26 @@ public:
static const int ACTOR_MAX = 0xFFFF;
private:
- u32 actor_bitfield[4];
-};
+ /* 0x00 */ u32 mActorFlags[4];
+}; // Size: 0x10
class dSv_zone_c {
public:
dSv_zone_c(void) { mRoomNo = -1; } // the assembly for this is in d_com_inf_game.s
void init(int);
dSv_zoneBit_c& getZoneBit() { return mBit; }
- const dSv_zoneBit_c& getZoneBitConst() const { return mBit; }
- dSv_zoneActor_c& getZoneActor() { return mActor; }
- const dSv_zoneActor_c& getZoneActorConst() const { return mActor; }
+ const dSv_zoneBit_c& getBit() const { return mBit; }
+ dSv_zoneActor_c& getActor() { return mActor; }
+ const dSv_zoneActor_c& getActor() const { return mActor; }
s8& getRoomNo() { return mRoomNo; }
private:
- s8 mRoomNo;
- u8 unk1;
- dSv_zoneBit_c mBit;
- dSv_zoneActor_c mActor;
-};
+ /* 0x00 */ s8 mRoomNo;
+ /* 0x01 */ u8 unk1;
+ /* 0x02 */ dSv_zoneBit_c mBit;
+ /* 0x10 */ dSv_zoneActor_c mActor;
+}; // Size: 0x20
STATIC_ASSERT(sizeof(dSv_zone_c) == 0x20);
@@ -875,15 +896,15 @@ private:
/* 0x18 */ f32 mLastSpeedF;
/* 0x1C */ u32 mLastMode;
/* 0x20 */ s16 mLastAngleY;
-};
+}; // Size: 0x24
class dSv_turnRestart_c {
public:
class dSv_turnRestart_camera_c {
- cXyz mCameraCtr;
- cXyz mCameraEye;
- cXyz mCameraUp;
- };
+ /* 0x00 */ cXyz mCameraCtr;
+ /* 0x0C */ cXyz mCameraEye;
+ /* 0x18 */ cXyz mCameraUp;
+ }; // Size: 0x24
void set(const cXyz&, s16, s8, u32);
@@ -894,7 +915,7 @@ private:
/* 0x12 */ s8 unk18;
/* 0x14 */ dSv_turnRestart_camera_c mCamera;
/* 0x38 */ f32 mCameraFvy;
-};
+}; // Size: 0x3C
class dSv_reserve_c {
public:
@@ -904,39 +925,32 @@ private:
class dSv_save_c {
public:
- void init(void);
+ void init();
dSv_memory2_c* getSave2(int);
+
dSv_player_c& getPlayer() { return mPlayer; }
- dSv_player_status_a_c& getPlayerStatusA() { return mPlayer.getPlayerStatusA(); }
- dSv_player_get_item_c& getPlayerGetItem() { return mPlayer.getPlayerGetItem(); }
- dSv_player_item_record_c& getPlayerItemRecord() { return mPlayer.getPlayerItemRecord(); }
- dSv_player_item_max_c& getPlayerItemMax() { return mPlayer.getPlayerItemMax(); }
- dSv_player_last_mark_info_c& getPlayerLastMarkInfo() { return mPlayer.getPlayerLastMarkInfo(); }
- dSv_player_item_c& getPlayerItem() { return mPlayer.getPlayerItem(); }
- dSv_player_collect_c& getPlayerCollect() { return mPlayer.getPlayerCollect(); }
- dSv_light_drop_c& getLightDrop() { return mPlayer.getLightDrop(); }
dSv_event_c& getEvent() { return mEvent; }
+ dSv_memory_c& getSave(int i_stageNo) { return mSave[i_stageNo]; }
+ void putSave(int i_stageNo, dSv_memory_c mem) { mSave[i_stageNo] = mem; }
static const int STAGE_MAX = 32;
static const int STAGE2_MAX = 64;
// private:
- dSv_player_c mPlayer;
- dSv_memory_c mSave[STAGE_MAX];
- dSv_memory2_c mSave2[STAGE2_MAX];
- dSv_event_c mEvent;
- dSv_reserve_c reserve;
- dSv_MiniGame_c mMiniGame;
-};
-#pragma pack(push, 1)
+ /* 0x000 */ dSv_player_c mPlayer;
+ /* 0x1F0 */ dSv_memory_c mSave[STAGE_MAX];
+ /* 0x5F0 */ dSv_memory2_c mSave2[STAGE2_MAX];
+ /* 0x7F0 */ dSv_event_c mEvent;
+ /* 0x8F0 */ dSv_reserve_c reserve;
+ /* 0x940 */ dSv_MiniGame_c mMiniGame;
+}; // Size: 0x958
+
class dSv_info_c {
public:
- dSv_info_c() {}
- ~dSv_info_c() {}
- void init(void);
+ void init();
void getSave(int);
void putSave(int);
- void initZone(void);
+ void initZone();
u32 createZone(int);
void onSwitch(int, int);
void offSwitch(int, int);
@@ -947,8 +961,8 @@ public:
void onActor(int, int);
void offActor(int, int);
BOOL isActor(int, int) const;
- void memory_to_card(char*, int);
- void card_to_memory(char*, int);
+ int memory_to_card(char*, int);
+ int card_to_memory(char*, int);
void initdata_to_card(char*, int);
dSv_save_c& getSavedata() { return mSavedata; }
@@ -956,6 +970,9 @@ public:
dSv_zone_c* getZones() { return mZone; }
dSv_player_c& getPlayer() { return mSavedata.getPlayer(); }
dSv_event_c& getTmp() { return mTmp; }
+ s64 getStartTime() { return mStartTime; }
+ s64 getSaveTotalTime() { return mSaveTotalTime; }
+ void initDan(s8 param_0) { mDan.init(param_0); }
private:
/* 0x000 */ dSv_save_c mSavedata;
@@ -970,9 +987,18 @@ private:
/* 0xF19 */ u8 mNewFile;
/* 0xF1A */ u8 mNoFile;
/* 0xF1B */ u8 field_0xf1b[13];
- /* 0xF28 */ u64 mStartTime;
- /* 0xF30 */ u64 mSaveTotalTime;
+ /* 0xF28 */ s64 mStartTime;
+ /* 0xF30 */ s64 mSaveTotalTime;
+}; // Size: 0xF38
+
+class dSv_event_flag_c {
+public:
+ static u16 saveBitLabels[822];
+};
+
+class dSv_event_tmp_flag_c {
+public:
+ static u16 const tempBitLabels[185];
};
-#pragma pack(pop)
#endif /* D_SAVE_D_SAVE_H */
diff --git a/include/dolphin/mtx/vec.h b/include/dolphin/mtx/vec.h
index 05af4f6838..174f84ad9c 100644
--- a/include/dolphin/mtx/vec.h
+++ b/include/dolphin/mtx/vec.h
@@ -16,6 +16,11 @@ struct Vec {
y = pY;
z = pZ;
}
+ void set(const Vec& other) {
+ x = other.x;
+ y = other.y;
+ z = other.z;
+ }
};
extern "C" {
diff --git a/include/f_op/f_op_actor.h b/include/f_op/f_op_actor.h
index 903c6e0384..ac32c1408f 100644
--- a/include/f_op/f_op_actor.h
+++ b/include/f_op/f_op_actor.h
@@ -107,7 +107,7 @@ public:
/* 0x534 */ f32 mMaxFallSpeed;
/* 0x538 */ cXyz mEyePos;
/* 0x544 */ actor_attention_types mAttentionInfo;
- /* 0x560 */ u8 field_0x560[0x10]; // not 100% sure on this
+ /* 0x560 */ u8 field_0x560[0x8]; // not 100% sure on this
fopAc_ac_c();
~fopAc_ac_c();
@@ -116,6 +116,6 @@ public:
const cXyz& getPosition() const { return mCurrent.mPosition; }
const csXyz& getAngle() const { return mCurrent.mAngle; }
-}; // Size: 0x570?
+}; // Size: 0x568
#endif
diff --git a/include/msl_c/string.h b/include/msl_c/string.h
index f39ec80e07..6f66cb20a0 100644
--- a/include/msl_c/string.h
+++ b/include/msl_c/string.h
@@ -15,6 +15,8 @@ char* strncpy(char* dest, const char* source, u32 n);
char* strcpy(char* dest, const char* source);
u32 strlen(const char* s);
int tolower(int);
+int sprintf(char*, const char*, ...);
+int printf(const char*, ...);
}
#endif \ No newline at end of file