d_menu_window_HIO ok

This commit is contained in:
TakaRikka 2021-12-28 03:02:45 -08:00
parent b459859a82
commit 4b60389c21
2 changed files with 271 additions and 152 deletions

View File

@ -3,4 +3,123 @@
#include "dolphin/types.h"
class dMw_DHIO_c {
public:
/* 801F9E2C */ dMw_DHIO_c();
/* 801F9E98 */ virtual ~dMw_DHIO_c() {}
private:
/* 0x004 */ u8 field_0x4;
/* 0x005 */ bool mMap[32];
/* 0x025 */ bool mCompass[32];
/* 0x045 */ bool mBossKey[32];
/* 0x065 */ bool mBossClear[32];
/* 0x085 */ bool mHeartContainer[32];
/* 0x0A5 */ bool mBossDemo[32];
/* 0x0C5 */ bool mPortal[32];
/* 0x0E5 */ bool mMidBossClear[32];
/* 0x105 */ bool mMapCopy[32];
/* 0x125 */ bool mCompassCopy[32];
/* 0x145 */ bool mBossKeyCopy[32];
/* 0x165 */ bool mBossClearCopy[32];
/* 0x185 */ bool mHeartContainerCopy[32];
/* 0x1A5 */ bool mBossDemoCopy[32];
/* 0x1C5 */ bool mPortalCopy[32];
/* 0x1E5 */ bool mMidBossClearCopy[32];
};
extern dMw_DHIO_c g_mwDHIO;
class dMw_HIO_c {
public:
/* 801F9AFC */ dMw_HIO_c();
/* 801F9B38 */ void init();
/* 801F9E14 */ bool getBombFlag();
/* 801F9E1C */ bool getArrowFlag();
/* 801F9E24 */ bool getPachinkoFlag();
/* 801F9EE0 */ virtual ~dMw_HIO_c() {}
private:
/* 0x004 */ u8 field_0x4;
/* 0x006 */ u16 mLife;
/* 0x008 */ u16 mMaxLife;
/* 0x00A */ u8 mMagic;
/* 0x00B */ u8 mMaxMagic;
/* 0x00C */ s32 mOil;
/* 0x010 */ s32 mMaxOil;
/* 0x014 */ s32 mOxygen;
/* 0x018 */ s32 mMaxOxygen;
/* 0x01C */ bool mEnableMagic;
/* 0x01D */ bool mEnableArrowDrops;
/* 0x01E */ s16 mRupees;
/* 0x020 */ s16 mWalletSize;
/* 0x022 */ u8 mKeys;
/* 0x023 */ u8 field_0x23;
/* 0x024 */ u16 mLifeCopy;
/* 0x026 */ u16 mMaxLifeCopy;
/* 0x028 */ u8 mMagicCopy;
/* 0x029 */ u8 mMaxMagicCopy;
/* 0x02C */ s32 mOilCopy;
/* 0x030 */ s32 mMaxOilCopy;
/* 0x034 */ s32 mOxygenCopy;
/* 0x038 */ s32 mMaxOxygenCopy;
/* 0x03C */ bool mEnableMagicCopy;
/* 0x03D */ bool mEnableArrowDropsCopy;
/* 0x03E */ s16 mRupeesCopy;
/* 0x040 */ s16 mWalletSizeCopy;
/* 0x042 */ s16 mDonationAmount;
/* 0x044 */ s16 mDonationAmountCopy;
/* 0x046 */ u8 mKeysCopy;
/* 0x047 */ u8 field_0x47;
/* 0x048 */ u8 mPoes;
/* 0x049 */ u8 mPoesCopy;
/* 0x04A */ u8 mItems[24];
/* 0x062 */ u8 mItemsCopy[24];
/* 0x07A */ u8 field_0x7a[24];
/* 0x092 */ bool mSwords[4];
/* 0x096 */ bool mShields[3];
/* 0x099 */ bool mClothes[3];
/* 0x09C */ bool mSwordsCopy[4];
/* 0x0A0 */ bool mShieldsCopy[3];
/* 0x0A3 */ bool mClothesCopy[3];
/* 0x0A6 */ u8 mScent;
/* 0x0A7 */ u8 mScentCopy;
/* 0x0A8 */ u8 field_0xa8;
/* 0x0A9 */ bool mBombBagLV2;
/* 0x0AA */ bool mBombBagLV2Copy;
/* 0x0AB */ bool mLV2KeyShards[3];
/* 0x0AE */ bool mLV2KeyShardsCopy[3];
/* 0x0B1 */ bool mLV5Item[2];
/* 0x0B3 */ bool mLV5ItemCopy[2];
/* 0x0B5 */ bool mGoldBug[24];
/* 0x0CD */ bool mGoldBugCopy[24];
/* 0x0E5 */ u8 mArrowNum;
/* 0x0E6 */ u8 mSeedNum;
/* 0x0E7 */ u8 mBombNum[3];
/* 0x0EA */ u8 field_0xea;
/* 0x0EB */ u8 mBottleNum[4];
/* 0x0EF */ u8 mArrowNumCopy;
/* 0x0F0 */ u8 mSeedNumCopy;
/* 0x0F1 */ u8 mBombNumCopy[3];
/* 0x0F4 */ u8 field_0xf4;
/* 0x0F5 */ u8 mBottleNumCopy[4];
/* 0x0F9 */ u8 field_0xf9[8];
/* 0x101 */ u8 field_0x101[8];
/* 0x109 */ u8 field_0x109[8];
/* 0x111 */ u8 field_0x111[8];
/* 0x119 */ bool mEnableOxygenMeter;
/* 0x11A */ bool mEnableOxygenMeterCopy;
/* 0x11B */ u8 mArrowFlag;
/* 0x11C */ u8 mPachinkoFlag;
/* 0x11D */ u8 mBombFlag;
/* 0x11E */ bool mFusedShadow[4];
/* 0x122 */ bool mFusedShadowCopy[4];
/* 0x126 */ bool mMirrorShard[4];
/* 0x12A */ bool mMirrorShardCopy[4];
}; // Size: 0x130
extern dMw_HIO_c g_mwHIO;
#endif /* D_MENU_D_MENU_WINDOW_HIO_H */

View File

@ -4,125 +4,160 @@
//
#include "d/menu/d_menu_window_HIO.h"
#include "d/com/d_com_inf_game.h"
#include "dol2asm.h"
#include "dolphin/types.h"
//
// Types:
//
struct dSv_player_get_item_c {
/* 80033EC8 */ void isFirstBit(u8) const;
};
struct dMw_HIO_c {
/* 801F9AFC */ dMw_HIO_c();
/* 801F9B38 */ void init();
/* 801F9E14 */ bool getBombFlag();
/* 801F9E1C */ bool getArrowFlag();
/* 801F9E24 */ bool getPachinkoFlag();
/* 801F9EE0 */ ~dMw_HIO_c();
};
struct dMw_DHIO_c {
/* 801F9E2C */ dMw_DHIO_c();
/* 801F9E98 */ ~dMw_DHIO_c();
};
//
// Forward References:
//
extern "C" void __ct__9dMw_HIO_cFv();
extern "C" void init__9dMw_HIO_cFv();
extern "C" bool getBombFlag__9dMw_HIO_cFv();
extern "C" bool getArrowFlag__9dMw_HIO_cFv();
extern "C" bool getPachinkoFlag__9dMw_HIO_cFv();
extern "C" void __ct__10dMw_DHIO_cFv();
extern "C" void __dt__10dMw_DHIO_cFv();
extern "C" void __dt__9dMw_HIO_cFv();
extern "C" void __sinit_d_menu_window_HIO_cpp();
//
// External References:
//
extern "C" void isFirstBit__21dSv_player_get_item_cCFUc();
extern "C" void __dl__FPv();
extern "C" void __register_global_object();
extern "C" void _savegpr_26();
extern "C" void _restgpr_26();
extern "C" extern u8 g_dComIfG_gameInfo[122384];
//
// Declarations:
//
/* ############################################################################################## */
/* 803BE8E0-803BE8EC 01BA00 000C+00 2/2 0/0 0/0 .data __vt__10dMw_DHIO_c */
SECTION_DATA extern void* __vt__10dMw_DHIO_c[3] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__10dMw_DHIO_cFv,
};
/* 803BE8EC-803BE8F8 01BA0C 000C+00 2/2 0/0 0/0 .data __vt__9dMw_HIO_c */
SECTION_DATA extern void* __vt__9dMw_HIO_c[3] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__9dMw_HIO_cFv,
};
inline int dComIfGs_isItemFirstBit(u8 i_no) {
return g_dComIfG_gameInfo.info.getPlayer().getGetItem().isFirstBit(i_no);
}
/* 801F9AFC-801F9B38 1F443C 003C+00 1/1 0/0 0/0 .text __ct__9dMw_HIO_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm dMw_HIO_c::dMw_HIO_c() {
nofralloc
#include "asm/d/menu/d_menu_window_HIO/__ct__9dMw_HIO_cFv.s"
dMw_HIO_c::dMw_HIO_c() {
init();
}
#pragma pop
/* ############################################################################################## */
/* 80450748-8045074C 0001C8 0003+01 1/1 0/0 0/0 .sdata m_cloth_item$3797 */
SECTION_SDATA static u8 m_cloth_item[3 + 1 /* padding */] = {
0x2F,
0x30,
0x31,
/* padding */
0x00,
static u8 m_cloth_item[3] = {
WEAR_KOKIRI,
ARMOR,
WEAR_ZORA,
};
/* 8045074C-80450750 0001CC 0004+00 1/1 0/0 0/0 .sdata m_sword_item$3798 */
SECTION_SDATA static u8 m_sword_item[4] = {
0x28,
0x29,
0x49,
0x3F,
static u8 m_sword_item[4] = {
SWORD,
MASTER_SWORD,
LIGHT_SWORD,
WOOD_STICK,
};
/* 80450750-80450758 0001D0 0003+05 1/1 0/0 0/0 .sdata m_shield_item$3799 */
SECTION_SDATA static u8 m_shield_item[3 + 5 /* padding */] = {
0x2B,
0x2C,
0x2A,
/* padding */
0x00,
0x00,
0x00,
0x00,
0x00,
static u8 m_shield_item[3] = {
SHIELD,
HYLIA_SHIELD,
WOOD_SHIELD,
};
/* 801F9B38-801F9E14 1F4478 02DC+00 1/1 0/0 0/0 .text init__9dMw_HIO_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMw_HIO_c::init() {
nofralloc
#include "asm/d/menu/d_menu_window_HIO/init__9dMw_HIO_cFv.s"
void dMw_HIO_c::init() {
mArrowFlag = 0;
mBombFlag = 0;
mPachinkoFlag = 0;
mLifeCopy = 0;
mLife = 0;
mMaxLifeCopy = 0;
mMaxLife = 0;
mMagicCopy = 0;
mMagic = 0;
mMaxMagicCopy = 0;
mMaxMagic = 0;
mOilCopy = 0;
mOil = 0;
mMaxOilCopy = 0;
mMaxOil = 0;
mOxygenCopy = 0;
mOxygen = 0;
mMaxOxygenCopy = 0;
mMaxOxygen = 0;
mEnableMagicCopy = false;
mEnableMagic = false;
mEnableArrowDropsCopy = false;
mEnableArrowDrops = false;
mRupeesCopy = 0;
mRupees = 0;
mWalletSizeCopy = WALLET;
mWalletSize = WALLET;
mKeysCopy = 0;
mKeys = 0;
field_0x47 = 0;
field_0x23 = 0;
mEnableOxygenMeterCopy = false;
mEnableOxygenMeter = false;
mPoesCopy = 0;
mPoes = 0;
mDonationAmountCopy = 0;
mDonationAmount = 0;
for (int i = 0; i < 24; i++) {
mItemsCopy[i] = NO_ITEM;
mItems[i] = NO_ITEM;
field_0x7a[i] = 0;
}
for (int i = 0; i < 4; i++) {
mBottleNumCopy[i] = 0;
mBottleNum[i] = 0;
}
for (int i = 0; i < 3; i++) {
mBombNumCopy[i] = 0;
mBombNum[i] = 0;
}
mScentCopy = NO_ITEM;
mScent = NO_ITEM;
field_0xa8 = 0;
field_0xf4 = 0;
field_0xea = 0;
for (int i = 0; i < 4; i++) {
bool swordBit = dComIfGs_isItemFirstBit(m_sword_item[i]);
mSwordsCopy[i] = swordBit;
mSwords[i] = swordBit;
}
for (int i = 0; i < 3; i++) {
bool shieldBit = dComIfGs_isItemFirstBit(m_shield_item[i]);
mShieldsCopy[i] = shieldBit;
mShields[i] = shieldBit;
bool clothesBit = dComIfGs_isItemFirstBit(m_cloth_item[i]);
mClothesCopy[i] = clothesBit;
mClothes[i] = clothesBit;
}
mBombBagLV2Copy = false;
mBombBagLV2 = false;
for (int i = 0; i < 3; i++) {
mLV2KeyShardsCopy[i] = false;
mLV2KeyShards[i] = false;
}
for (int i = 0; i < 2; i++) {
mLV5ItemCopy[i] = false;
mLV5Item[i] = false;
}
for (int i = 0; i < 24; i++) {
mGoldBugCopy[i] = false;
mGoldBug[i] = false;
}
for (int i = 0; i < 8; i++) {
field_0x101[i] = 0;
field_0xf9[i] = 0;
field_0x111[i] = 0;
field_0x109[i] = 0;
}
for (int i = 0; i < 4; i++) {
mFusedShadowCopy[i] = false;
mFusedShadow[i] = false;
}
for (int i = 0; i < 4; i++) {
mMirrorShardCopy[i] = false;
mMirrorShard[i] = false;
}
}
#pragma pop
/* 801F9E14-801F9E1C 1F4754 0008+00 0/0 1/1 0/0 .text getBombFlag__9dMw_HIO_cFv */
bool dMw_HIO_c::getBombFlag() {
@ -140,64 +175,29 @@ bool dMw_HIO_c::getPachinkoFlag() {
}
/* 801F9E2C-801F9E98 1F476C 006C+00 1/1 0/0 0/0 .text __ct__10dMw_DHIO_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm dMw_DHIO_c::dMw_DHIO_c() {
nofralloc
#include "asm/d/menu/d_menu_window_HIO/__ct__10dMw_DHIO_cFv.s"
dMw_DHIO_c::dMw_DHIO_c() {
for (int i = 0; i < 32; i++) {
mMap[i] = false;
mCompass[i] = false;
mBossKey[i] = false;
mBossClear[i] = false;
mHeartContainer[i] = false;
mBossDemo[i] = false;
mPortal[i] = false;
mMidBossClear[i] = false;
mMapCopy[i] = false;
mCompassCopy[i] = false;
mBossKeyCopy[i] = false;
mBossClearCopy[i] = false;
mHeartContainerCopy[i] = false;
mBossDemoCopy[i] = false;
mPortalCopy[i] = false;
mMidBossClearCopy[i] = false;
}
}
#pragma pop
/* 801F9E98-801F9EE0 1F47D8 0048+00 2/1 0/0 0/0 .text __dt__10dMw_DHIO_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm dMw_DHIO_c::~dMw_DHIO_c() {
nofralloc
#include "asm/d/menu/d_menu_window_HIO/__dt__10dMw_DHIO_cFv.s"
}
#pragma pop
/* 801F9EE0-801F9F28 1F4820 0048+00 2/1 0/0 0/0 .text __dt__9dMw_HIO_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm dMw_HIO_c::~dMw_HIO_c() {
nofralloc
#include "asm/d/menu/d_menu_window_HIO/__dt__9dMw_HIO_cFv.s"
}
#pragma pop
/* ############################################################################################## */
/* 8042E860-8042E86C 05B580 000C+00 1/1 0/0 0/0 .bss @3773 */
static u8 lit_3773[12];
/* 8042E86C-8042E99C 05B58C 0130+00 0/1 4/4 0/0 .bss g_mwHIO */
extern u8 g_mwHIO[304];
u8 g_mwHIO[304];
/* 8042E99C-8042E9A8 05B6BC 000C+00 0/1 0/0 0/0 .bss @3774 */
#pragma push
#pragma force_active on
static u8 lit_3774[12];
#pragma pop
dMw_HIO_c g_mwHIO;
/* 8042E9A8-8042EBB0 05B6C8 0208+00 0/1 1/1 0/0 .bss g_mwDHIO */
extern u8 g_mwDHIO[520];
u8 g_mwDHIO[520];
/* 801F9F28-801F9F84 1F4868 005C+00 0/0 1/0 0/0 .text __sinit_d_menu_window_HIO_cpp */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void __sinit_d_menu_window_HIO_cpp() {
nofralloc
#include "asm/d/menu/d_menu_window_HIO/__sinit_d_menu_window_HIO_cpp.s"
}
#pragma pop
#pragma push
#pragma force_active on
REGISTER_CTORS(0x801F9F28, __sinit_d_menu_window_HIO_cpp);
#pragma pop
dMw_DHIO_c g_mwDHIO;