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
This commit is contained in:
TakaRikka
2021-08-23 13:47:18 -07:00
committed by GitHub
parent af5a4adcb8
commit a384552cb7
422 changed files with 4869 additions and 14588 deletions
+4
View File
@@ -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 */
+1 -1
View File
@@ -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 {};
+6 -5
View File
@@ -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;
};
+20
View File
@@ -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;
+4
View File
@@ -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];
};
+459 -164
View File
@@ -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);
void ct();
// 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; }
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 bool dComIfGs_isDungeonItemMap(void) {
return g_dComIfG_gameInfo.getMemory().getTempFlags().isDungeonItemMap();
inline void dComIfGs_offSwitch(int param1, int param2) {
g_dComIfG_gameInfo.info.offSwitch(param1, param2);
}
inline bool dComIfGs_isDungeonItemBossKey(void) {
return g_dComIfG_gameInfo.getMemory().getTempFlags().isDungeonItemBossKey();
inline BOOL dComIfGs_isSwitch(int param1, int param2) {
return g_dComIfG_gameInfo.info.isSwitch(param1, param2);
}
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(void) {
return g_dComIfG_gameInfo.getPlay().getStartStageName();
inline char* dComIfGp_getStartStageName() {
return g_dComIfG_gameInfo.play.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 */
+5 -1
View File
@@ -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];
+1 -1
View File
@@ -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;
+384
View File
@@ -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 */
+142 -127
View File
@@ -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 */
+1
View File
@@ -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; }
+1 -1
View File
@@ -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);
+2
View File
@@ -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 */
+19 -4
View File
@@ -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 */
+290 -264
View File
@@ -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 */
+5
View File
@@ -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" {
+2 -2
View File
@@ -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
+2
View File
@@ -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