summaryrefslogtreecommitdiff
path: root/src/d/d_menu_window_HIO.cpp
diff options
context:
space:
mode:
authorTakaRikka <38417346+TakaRikka@users.noreply.github.com>2026-03-17 03:44:11 -0700
committerGitHub <noreply@github.com>2026-03-17 03:44:11 -0700
commit9f340b604b5ac3d19d330b7bd6a2d7355c58bc27 (patch)
tree1db19763775c1b495235e05bd6ae1471a8bb53fb /src/d/d_menu_window_HIO.cpp
parentae0f8909a6ad9d1df2cf247a2538ff658d6e49c0 (diff)
various d_bg debug cleanup / d_menu_window_HIO debug (#3132)
* various d_bg debug cleanup * matching forward decl for compiler compatibility * fix build
Diffstat (limited to 'src/d/d_menu_window_HIO.cpp')
-rw-r--r--src/d/d_menu_window_HIO.cpp1304
1 files changed, 1231 insertions, 73 deletions
diff --git a/src/d/d_menu_window_HIO.cpp b/src/d/d_menu_window_HIO.cpp
index c48e62d0a8..053aeaf837 100644
--- a/src/d/d_menu_window_HIO.cpp
+++ b/src/d/d_menu_window_HIO.cpp
@@ -7,6 +7,13 @@
#include "d/d_menu_window_HIO.h"
#include "d/d_com_inf_game.h"
+#include "d/d_msg_object.h"
+#include "d/d_meter2_info.h"
+
+#if DEBUG
+#include "JSystem/JHostIO/JORServer.h"
+#include "d/d_s_menu.h"
+#endif
dMw_HIO_c::dMw_HIO_c() {
init();
@@ -21,127 +28,1058 @@ void dMw_HIO_c::init() {
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;
+ mLife = mLifeCopy = 0;
+ mMaxLife = mMaxLifeCopy = 0;
+ mMagic = mMagicCopy = 0;
+ mMaxMagic = mMaxMagicCopy = 0;
+ mOil = mOilCopy = 0;
+ mMaxOil = mMaxOilCopy = 0;
+ mOxygen = mOxygenCopy = 0;
+ mMaxOxygen = mMaxOxygenCopy = 0;
+ mEnableMagic = mEnableMagicCopy = false;
+ mEnableArrowDrops = mEnableArrowDropsCopy = false;
+ mRupees = mRupeesCopy = 0;
+ mWalletSize = mWalletSizeCopy = WALLET;
+ mKeys = mKeysCopy = 0;
+ field_0x23 = field_0x47 = 0;
+ mEnableOxygenMeter = mEnableOxygenMeterCopy = false;
+ mPoes = mPoesCopy = 0;
+ mDonationAmount = mDonationAmountCopy = 0;
for (int i = 0; i < 24; i++) {
- mItemsCopy[i] = dItemNo_NONE_e;
- mItems[i] = dItemNo_NONE_e;
+ mItems[i] = mItemsCopy[i] = dItemNo_NONE_e;
field_0x7a[i] = 0;
}
for (int i = 0; i < 4; i++) {
- mBottleNumCopy[i] = 0;
- mBottleNum[i] = 0;
+ mBottleNum[i] = mBottleNumCopy[i] = 0;
}
for (int i = 0; i < 3; i++) {
- mBombNumCopy[i] = 0;
- mBombNum[i] = 0;
+ mBombNum[i] = mBombNumCopy[i] = 0;
}
- mScentCopy = dItemNo_NONE_e;
- mScent = dItemNo_NONE_e;
+ mScent = mScentCopy = dItemNo_NONE_e;
field_0xa8 = 0;
- field_0xf4 = 0;
- field_0xea = 0;
+ field_0xea = field_0xf4 = 0;
for (int i = 0; i < 4; i++) {
- bool swordBit = dComIfGs_isItemFirstBit(m_sword_item[i]);
- mSwordsCopy[i] = swordBit;
- mSwords[i] = swordBit;
+ mSwords[i] = mSwordsCopy[i] = dComIfGs_isItemFirstBit(m_sword_item[i]) ? 1 : 0;
}
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;
+ mShields[i] = mShieldsCopy[i] = dComIfGs_isItemFirstBit(m_shield_item[i]) ? 1 : 0;
+ mClothes[i] = mClothesCopy[i] = dComIfGs_isItemFirstBit(m_cloth_item[i]) ? 1 : 0;
}
- mBombBagLV2Copy = false;
- mBombBagLV2 = false;
+ mBombBagLV2 = mBombBagLV2Copy = false;
for (int i = 0; i < 3; i++) {
- mLV2KeyShardsCopy[i] = false;
- mLV2KeyShards[i] = false;
+ mLV2KeyShards[i] = mLV2KeyShardsCopy[i] = false;
}
for (int i = 0; i < 2; i++) {
- mLV5ItemCopy[i] = false;
- mLV5Item[i] = false;
+ mLV5Item[i] = mLV5ItemCopy[i] = false;
}
for (int i = 0; i < 24; i++) {
- mGoldBugCopy[i] = false;
- mGoldBug[i] = false;
+ mGoldBug[i] = mGoldBugCopy[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;
+ field_0xf9[i] = field_0x101[i] = 0;
+ field_0x109[i] = field_0x111[i] = 0;
}
for (int i = 0; i < 4; i++) {
- mFusedShadowCopy[i] = false;
- mFusedShadow[i] = false;
+ mFusedShadow[i] = mFusedShadowCopy[i] = false;
}
for (int i = 0; i < 4; i++) {
- mMirrorShardCopy[i] = false;
- mMirrorShard[i] = false;
+ mMirrorShard[i] = mMirrorShardCopy[i] = false;
}
}
-bool dMw_HIO_c::getBombFlag() {
+#if DEBUG
+void dMw_HIO_c::genMessage(JORMContext* mctx) {
+ // "*****Player Status*****"
+ mctx->genLabel("\n*****プレイヤーの状態*****", 0);
+ mctx->genCheckBox("魔法使える", &mEnableMagic, 1);
+ mctx->genCheckBox("矢補給", &mEnableArrowDrops, 1);
+ mctx->genCheckBox("矢の数無限", &mArrowFlag, 1);
+ mctx->genCheckBox("パチンコ玉の数無限", &mPachinkoFlag, 1);
+ mctx->genCheckBox("爆弾の数無限", &mBombFlag, 1);
+ mctx->genSlider("ライフ", (s16*)&mLife, 0, 80);
+ mctx->genSlider("ライフ最大", (s16*)&mMaxLife, 0, 100);
+ mctx->genSlider("魔法メーター", &mMagic, 0, 32);
+ mctx->genSlider("魔法メーター最大", &mMaxMagic, 0, 32);
+ mctx->genSlider("カンテラ油", &mOil, 0, 100000);
+ mctx->genSlider("カンテラ油最大", &mMaxOil, 0, 100000);
+ mctx->genCheckBox("酸素メーターON", &mEnableOxygenMeter, 1);
+ mctx->genSlider("酸素メーター", &mOxygen, 0, 100000);
+ mctx->genSlider("酸素メーター最大", &mMaxOxygen, 0, 100000);
+ mctx->genSlider("ルピ−", &mRupees, 0, 5000);
+ mctx->genSlider("財布", &mWalletSize, 0, 2);
+ mctx->genSlider("鍵", &mKeys, 0, 99);
+ mctx->genSlider("ゴースト", &mPoes, 0, 60);
+ mctx->genSlider("お布施総額", &mDonationAmount, 0, 10000);
+ mctx->genCheckBox("爆弾袋LV2", &mBombBagLV2, 1);
+
+ // "*****Item*****"
+ mctx->genLabel("\n*****アイテム*****", 0);
+ mctx->startComboBox("風のロッド", &mItems[0], 0, NULL, 0xFFFF, 0xFFFF, 256, 26);
+ mctx->genComboBoxItem("未装備", dItemNo_NONE_e);
+ mctx->genComboBoxItem("風のロッド", dItemNo_BOOMERANG_e);
+ mctx->endComboBox();
+
+ mctx->startComboBox("カンテラ", &mItems[1], 0, NULL, 0xFFFF, 0xFFFF, 256, 26);
+ mctx->genComboBoxItem("未装備", dItemNo_NONE_e);
+ mctx->genComboBoxItem("カンテラ", dItemNo_KANTERA_e);
+ mctx->endComboBox();
+
+ mctx->startComboBox("スピナー", &mItems[2], 0, NULL, 0xFFFF, 0xFFFF, 256, 26);
+ mctx->genComboBoxItem("未装備", dItemNo_NONE_e);
+ mctx->genComboBoxItem("スピナー", dItemNo_SPINNER_e);
+ mctx->endComboBox();
+
+ mctx->startComboBox("アイアンブーツ", &mItems[3], 0, NULL, 0xFFFF, 0xFFFF, 256, 26);
+ mctx->genComboBoxItem("未装備", dItemNo_NONE_e);
+ mctx->genComboBoxItem("アイアンブーツ", dItemNo_HVY_BOOTS_e);
+ mctx->endComboBox();
+
+ mctx->startComboBox("弓矢", &mItems[4], 0, NULL, 0xFFFF, 0xFFFF, 256, 26);
+ mctx->genComboBoxItem("未装備", dItemNo_NONE_e);
+ mctx->genComboBoxItem("弓矢", dItemNo_BOW_e);
+ mctx->genComboBoxItem("光の矢", dItemNo_LIGHT_ARROW_e);
+ mctx->genComboBoxItem("ホークアイ+矢", dItemNo_HAWK_ARROW_e);
+ mctx->genComboBoxItem("爆弾+矢", dItemNo_BOMB_ARROW_e);
+ mctx->endComboBox();
+
+ mctx->genSlider("矢の数", &mArrowNum, 0, 100);
+
+ mctx->startComboBox("ホークアイ", &mItems[5], 0, NULL, 0xFFFF, 0xFFFF, 256, 26);
+ mctx->genComboBoxItem("未装備", dItemNo_NONE_e);
+ mctx->genComboBoxItem("ホークアイ", dItemNo_HAWK_EYE_e);
+ mctx->endComboBox();
+
+ mctx->startComboBox("鉄球", &mItems[6], 0, NULL, 0xFFFF, 0xFFFF, 256, 26);
+ mctx->genComboBoxItem("未装備", dItemNo_NONE_e);
+ mctx->genComboBoxItem("鉄球", dItemNo_IRONBALL_e);
+ mctx->endComboBox();
+
+ mctx->startComboBox("ミラーシールド", &mItems[7], 0, NULL, 0xFFFF, 0xFFFF, 256, 26);
+ mctx->genComboBoxItem("未装備", dItemNo_NONE_e);
+ mctx->endComboBox();
+
+ mctx->startComboBox("コピーロッド", &mItems[8], 0, NULL, 0xFFFF, 0xFFFF, 256, 26);
+ mctx->genComboBoxItem("未装備", dItemNo_NONE_e);
+ mctx->genComboBoxItem("コピーロッド", dItemNo_COPY_ROD_e);
+ mctx->endComboBox();
+
+ mctx->startComboBox("フックショット", &mItems[9], 0, NULL, 0xFFFF, 0xFFFF, 256, 26);
+ mctx->genComboBoxItem("未装備", dItemNo_NONE_e);
+ mctx->genComboBoxItem("フックショット", dItemNo_HOOKSHOT_e);
+ mctx->endComboBox();
+
+ mctx->startComboBox("Wフックショット", &mItems[10], 0, NULL, 0xFFFF, 0xFFFF, 256, 26);
+ mctx->genComboBoxItem("未装備", dItemNo_NONE_e);
+ mctx->genComboBoxItem("Wフックショット", dItemNo_W_HOOKSHOT_e);
+ mctx->endComboBox();
+
+ for (int i = 0; i < 4; i = i + 1) {
+ char sp30[8];
+ sprintf(sp30, "ビン%d", i + 1);
+ mctx->startComboBox(sp30, &mItems[11 + i], 0, NULL, 0xFFFF, 0xFFFF, 256, 26);
+ mctx->genComboBoxItem("未装備", dItemNo_NONE_e);
+ mctx->genComboBoxItem("空きビン", dItemNo_EMPTY_BOTTLE_e);
+ mctx->genComboBoxItem("赤い薬入りビン", dItemNo_RED_BOTTLE_e);
+ mctx->genComboBoxItem("緑の薬入りビン", dItemNo_GREEN_BOTTLE_e);
+ mctx->genComboBoxItem("青い薬入りビン", dItemNo_BLUE_BOTTLE_e);
+ mctx->genComboBoxItem("水入りビン", dItemNo_WATER_BOTTLE_e);
+ mctx->genComboBoxItem("妖精入りビン", dItemNo_FAIRY_e);
+ mctx->genComboBoxItem("牛乳入りビン", dItemNo_MILK_BOTTLE_e);
+ mctx->genComboBoxItem("牛乳半分入りビン", dItemNo_HALF_MILK_BOTTLE_e);
+ mctx->genComboBoxItem("油入りビン", dItemNo_OIL_BOTTLE_e);
+ mctx->genComboBoxItem("まずいスープ", dItemNo_UGLY_SOUP_e);
+ mctx->genComboBoxItem("温泉水入りビン", dItemNo_HOT_SPRING_e);
+ mctx->genComboBoxItem("最初にもらうスープ", dItemNo_LV1_SOUP_e);
+ mctx->genComboBoxItem("材料が1つ入ったスープ", dItemNo_LV2_SOUP_e);
+ mctx->genComboBoxItem("完成したスープ", dItemNo_LV3_SOUP_e);
+ mctx->genComboBoxItem("ポウの炎1", dItemNo_POU_FIRE1_e);
+ mctx->genComboBoxItem("ポウの炎2", dItemNo_POU_FIRE2_e);
+ mctx->genComboBoxItem("ポウの炎3", dItemNo_POU_FIRE3_e);
+ mctx->genComboBoxItem("ポウの炎4", dItemNo_POU_FIRE4_e);
+ mctx->genComboBoxItem("チュチュゼリー赤", dItemNo_CHUCHU_RED_e);
+ mctx->genComboBoxItem("チュチュゼリー青", dItemNo_CHUCHU_BLUE_e);
+ mctx->genComboBoxItem("チュチュゼリー緑", dItemNo_CHUCHU_GREEN_e);
+ mctx->genComboBoxItem("チュチュゼリー黄", dItemNo_CHUCHU_YELLOW_e);
+ mctx->genComboBoxItem("チュチュゼリー紫", dItemNo_CHUCHU_PURPLE_e);
+ mctx->genComboBoxItem("チュチュゼリーレア", dItemNo_CHUCHU_RARE_e);
+ mctx->genComboBoxItem("チュチュゼリー黒", dItemNo_CHUCHU_BLACK_e);
+ mctx->genComboBoxItem("妖精", dItemNo_FAIRY_e);
+ mctx->genComboBoxItem("カブトムシ♂", dItemNo_M_BEETLE_e);
+ mctx->genComboBoxItem("カブトムシ♀", dItemNo_F_BEETLE_e);
+ mctx->genComboBoxItem("チョウチョ♂", dItemNo_M_BUTTERFLY_e);
+ mctx->genComboBoxItem("チョウチョ♀", dItemNo_F_BUTTERFLY_e);
+ mctx->genComboBoxItem("クワガタ♂", dItemNo_M_STAG_BEETLE_e);
+ mctx->genComboBoxItem("クワガタ♀", dItemNo_F_STAG_BEETLE_e);
+ mctx->genComboBoxItem("バッタ♂", dItemNo_M_GRASSHOPPER_e);
+ mctx->genComboBoxItem("バッタ♀", dItemNo_F_GRASSHOPPER_e);
+ mctx->genComboBoxItem("ナナフシ♂", dItemNo_M_NANAFUSHI_e);
+ mctx->genComboBoxItem("ナナフシ♀", dItemNo_F_NANAFUSHI_e);
+ mctx->genComboBoxItem("ダンゴムシ♂", dItemNo_M_DANGOMUSHI_e);
+ mctx->genComboBoxItem("ダンゴムシ♀", dItemNo_F_DANGOMUSHI_e);
+ mctx->genComboBoxItem("カマキリ♂", dItemNo_M_MANTIS_e);
+ mctx->genComboBoxItem("カマキリ♀", dItemNo_F_MANTIS_e);
+ mctx->genComboBoxItem("テントウムシ♂", dItemNo_M_LADYBUG_e);
+ mctx->genComboBoxItem("テントウムシ♀", dItemNo_F_LADYBUG_e);
+ mctx->genComboBoxItem("カタツムリ♂", dItemNo_M_SNAIL_e);
+ mctx->genComboBoxItem("カタツムリ♀", dItemNo_F_SNAIL_e);
+ mctx->genComboBoxItem("トンボ♂", dItemNo_M_DRAGONFLY_e);
+ mctx->genComboBoxItem("トンボ♀", dItemNo_F_DRAGONFLY_e);
+ mctx->genComboBoxItem("アリ♂", dItemNo_M_ANT_e);
+ mctx->genComboBoxItem("アリ♀", dItemNo_F_ANT_e);
+ mctx->genComboBoxItem("カゲロウ♂", dItemNo_M_MAYFLY_e);
+ mctx->genComboBoxItem("カゲロウ♀", dItemNo_F_MAYFLY_e);
+ mctx->genComboBoxItem("蜂の子", dItemNo_BEE_CHILD_e);
+ mctx->genComboBoxItem("みみず", dItemNo_WORM_e);
+ mctx->genComboBoxItem("大妖精の滴", dItemNo_FAIRY_DROP_e);
+ mctx->endComboBox();
+
+ mctx->genSlider("アイテムの数", &mBottleNum[i], 0, 10);
+ }
+
+ for (int i = 0; i < 3; i = i + 1) {
+ char sp38[8];
+ sprintf(sp38, "爆弾袋%d", i + 1);
+ mctx->startComboBox(sp38, &mItems[15 + i], 0, NULL, 0xFFFF, 0xFFFF, 256, 26);
+ mctx->genComboBoxItem("未装備", dItemNo_NONE_e);
+ mctx->genComboBoxItem("爆弾袋", dItemNo_BOMB_BAG_LV1_e);
+ mctx->genComboBoxItem("ノーマル爆弾", dItemNo_NORMAL_BOMB_e);
+ mctx->genComboBoxItem("水中爆弾", dItemNo_WATER_BOMB_e);
+ mctx->genComboBoxItem("ポケ虫", dItemNo_POKE_BOMB_e);
+ mctx->endComboBox();
+
+ mctx->genSlider("爆弾の数", &mBombNum[i], 0, 99);
+ }
+
+ mctx->startComboBox("天空人", &mItems[18], 0, NULL, 0xFFFF, 0xFFFF, 256, 26);
+ mctx->genComboBoxItem("未装備", dItemNo_NONE_e);
+ mctx->genComboBoxItem("天空人", dItemNo_DUNGEON_EXIT_e);
+ mctx->genComboBoxItem("天空人の息子", dItemNo_DUNGEON_BACK_e);
+ mctx->genComboBoxItem("天空人の書置き", dItemNo_TKS_LETTER_e);
+ mctx->genComboBoxItem("再開時の天空人", dItemNo_DUNGEON_EXIT_2_e);
+ mctx->endComboBox();
+
+ mctx->startComboBox("メモ", &mItems[19], 0, NULL, 0xFFFF, 0xFFFF, 256, 26);
+ mctx->genComboBoxItem("未装備", dItemNo_NONE_e);
+ mctx->genComboBoxItem("ラフレルのメモ", dItemNo_RAFRELS_MEMO_e);
+ mctx->genComboBoxItem("アッシュの走り書き", dItemNo_ASHS_SCRIBBLING_e);
+ mctx->endComboBox();
+
+ mctx->startComboBox("釣竿", &mItems[20], 0, NULL, 0xFFFF, 0xFFFF, 256, 26);
+ mctx->genComboBoxItem("未装備", dItemNo_NONE_e);
+ mctx->genComboBoxItem("珊瑚の耳飾り", dItemNo_ZORAS_JEWEL_e);
+ mctx->genComboBoxItem("釣竿", dItemNo_FISHING_ROD_1_e);
+ mctx->genComboBoxItem("釣竿+蜂の子", dItemNo_BEE_ROD_e);
+ mctx->genComboBoxItem("釣竿+みみず", dItemNo_WORM_ROD_e);
+ mctx->genComboBoxItem("珊瑚+釣竿", dItemNo_JEWEL_ROD_e);
+ mctx->genComboBoxItem("珊瑚+釣竿+蜂の子", dItemNo_JEWEL_BEE_ROD_e);
+ mctx->genComboBoxItem("珊瑚+釣竿+みみず", dItemNo_JEWEL_WORM_ROD_e);
+ mctx->endComboBox();
+
+ mctx->startComboBox("わらしべアイテム", &mItems[21], 0, NULL, 0xFFFF, 0xFFFF, 256, 26);
+ mctx->genComboBoxItem("未装備", dItemNo_NONE_e);
+ mctx->genComboBoxItem("レナードの手紙", dItemNo_LETTER_e);
+ mctx->genComboBoxItem("請求書", dItemNo_BILL_e);
+ mctx->genComboBoxItem("木彫りの像", dItemNo_WOOD_STATUE_e);
+ mctx->genComboBoxItem("イリアのペンダント", dItemNo_IRIAS_PENDANT_e);
+ mctx->genComboBoxItem("馬笛", dItemNo_HORSE_FLUTE_e);
+ mctx->endComboBox();
+
+ mctx->startComboBox("古文書", &mItems[22], 0, NULL, 0xFFFF, 0xFFFF, 256, 26);
+ mctx->genComboBoxItem("未装備", dItemNo_NONE_e);
+ mctx->genComboBoxItem("天空の古文書", dItemNo_ANCIENT_DOCUMENT_e);
+ mctx->genComboBoxItem("天空文字", dItemNo_AIR_LETTER_e);
+ mctx->genComboBoxItem("解封の古文書", dItemNo_ANCIENT_DOCUMENT2_e);
+ mctx->endComboBox();
+
+ char sp40[8];
+ sprintf(sp40, "パチンコ");
+ mctx->startComboBox(sp40, &mItems[23], 0, NULL, 0xFFFF, 0xFFFF, 256, 26);
+ mctx->genComboBoxItem("未装備", dItemNo_NONE_e);
+ mctx->genComboBoxItem("パチンコ", dItemNo_PACHINKO_e);
+ mctx->endComboBox();
+
+ mctx->genSlider("パチンコ玉の数", &mSeedNum, 0, 50);
+
+ // "*****Collect*****"
+ mctx->genLabel("\n*****コレクト*****", 0);
+ mctx->genCheckBox("コキリの服", &mClothes[0], 1);
+ mctx->genCheckBox("装甲服", &mClothes[1], 1);
+ mctx->genCheckBox("ゾーラの服", &mClothes[2], 1);
+ mctx->genCheckBox("木刀", &mSwords[3], 1);
+ mctx->genCheckBox("金剛の剣", &mSwords[0], 1);
+ mctx->genCheckBox("マスターソード", &mSwords[1], 1);
+ mctx->genCheckBox("ライトニングソード", &mSwords[2], 1);
+ mctx->genCheckBox("木彫りの盾", &mShields[2], 1);
+ mctx->genCheckBox("木の盾", &mShields[0], 1);
+ mctx->genCheckBox("ハイリアの盾", &mShields[1], 1);
+ mctx->genCheckBox("LV2ボス鍵かけら1", &mLV2KeyShards[0], 1);
+ mctx->genCheckBox("LV2ボス鍵かけら2", &mLV2KeyShards[1], 1);
+ mctx->genCheckBox("LV2ボス鍵かけら3", &mLV2KeyShards[2], 1);
+ mctx->genCheckBox("かぼちゃ", &mLV5Item[0], 1);
+ mctx->genCheckBox("トアル産チーズ", &mLV5Item[1], 1);
+
+ mctx->startComboBox("におい", &mScent, 0, NULL, 0xFFFF, 0xFFFF, 256, 26);
+ mctx->genComboBoxItem("覚えてない", dItemNo_NONE_e);
+ mctx->genComboBoxItem("かぼちゃのにおい(削除)", dItemNo_SMELL_PUMPKIN_e);
+ mctx->genComboBoxItem("イリアのポーチのにおい", dItemNo_SMELL_YELIA_POUCH_e);
+ mctx->genComboBoxItem("魚のにおい", dItemNo_SMELL_FISH_e);
+ mctx->genComboBoxItem("ポウのにおい", dItemNo_SMELL_POH_e);
+ mctx->genComboBoxItem("子供のにおい", dItemNo_SMELL_CHILDREN_e);
+ mctx->genComboBoxItem("薬品のにおい", dItemNo_SMELL_MEDICINE_e);
+ mctx->endComboBox();
+
+ for (int i = 0; i < 24; i = i + 1) {
+ static const char* insect_name[] = {
+ "カブトムシ♂", "カブトムシ♀",
+ "チョウチョ♂", "チョウチョ♀",
+ "クワガタ♂", "クワガタ♀",
+ "バッタ♂", "バッタ♀",
+ "ナナフシ♂", "ナナフシ♀",
+ "ダンゴムシ♂", "ダンゴムシ♀",
+ "カマキリ♂", "カマキリ♀",
+ "テントウムシ♂", "テントウムシ♀",
+ "カタツムリ♂", "カタツムリ♀",
+ "トンボ♂", "トンボ♀",
+ "アリ♂", "アリ♀",
+ "カゲロウ♂", "カゲロウ♀",
+ };
+
+ mctx->genCheckBox(insect_name[i], &mGoldBug[i], 1);
+ }
+
+ // "*****Fused Shadows*****"
+ mctx->genLabel("\n*****影の水晶石*****", 0);
+ char sp28[24];
+ for (int i = 0; i < 4; i = i + 1) {
+ sprintf(sp28, "影の水晶石%d", i + 1);
+ mctx->genCheckBox(sp28, &mFusedShadow[i], 1);
+ }
+
+ // "*****Mirror Shards*****"
+ mctx->genLabel("\n*****陰りの鏡*****", 0);
+ for (int i = 0; i < 4; i = i + 1) {
+ sprintf(sp28, "陰りの鏡%d", i + 1);
+ mctx->genCheckBox(sp28, &mMirrorShard[i], 1);
+ }
+}
+
+void dMw_HIO_c::update() {
+ JORMContext* mctx = attachJORMContext(8);
+ mctx->startUpdateNode(this);
+ mctx->updateCheckBox(2, &mArrowFlag, 1, 0);
+ mctx->updateCheckBox(2, &mBombFlag, 1, 0);
+ mctx->endUpdateNode();
+ releaseJORMContext(mctx);
+}
+
+void dMw_HIO_c::playerStatusHIO() {
+ JORMContext* mctx = attachJORMContext(8);
+
+ if (mLife != mLifeCopy) {
+ s16 sp10 = mLife - dComIfGs_getLife();
+ dComIfGp_clearItemLifeCount();
+ dComIfGp_setItemLifeCount(sp10, 0);
+ mLifeCopy = mLife;
+ } else if (mLifeCopy != dComIfGs_getLife()) {
+ mLife = mLifeCopy = dComIfGs_getLife();
+ mctx->updateSlider(2, &mLife, 0, 0, 0);
+ }
+
+ if (mMaxLifeCopy != mMaxLife) {
+ s16 spE = mMaxLife - dComIfGs_getMaxLife();
+ dComIfGp_clearItemMaxLifeCount();
+ dComIfGp_setItemMaxLifeCount(spE);
+ mMaxLifeCopy = mMaxLife;
+ } else if (mMaxLifeCopy != dComIfGs_getMaxLife()) {
+ mMaxLife = mMaxLifeCopy = dComIfGs_getMaxLife();
+ mctx->updateSlider(2, &mMaxLife, 0, 0, 0);
+ }
+
+ if (mMagicCopy != mMagic) {
+ s16 spC = mMagic - dComIfGs_getMagic();
+ dComIfGp_setItemMagicCount(spC);
+ mMagicCopy = mMagic;
+ } else if (mMagicCopy != dComIfGs_getMagic()) {
+ mMagic = mMagicCopy = dComIfGs_getMagic();
+ mctx->updateSlider(2, &mMagic, 0, 0, 0);
+ }
+
+ if (mMaxMagicCopy != mMaxMagic) {
+ s16 spB = mMaxMagic - dComIfGs_getMaxMagic();
+ dComIfGp_setItemMaxMagicCount(spB);
+ mMaxMagicCopy = mMaxMagic;
+ } else if (mMaxMagicCopy != dComIfGs_getMaxMagic()) {
+ mMaxMagic = mMaxMagicCopy = dComIfGs_getMaxMagic();
+ mctx->updateSlider(2, &mMaxMagic, 0, 0, 0);
+ }
+
+ if (mOilCopy != mOil) {
+ s32 sp2C = mOil - dComIfGs_getOil();
+ dComIfGp_setItemOilCount(sp2C);
+ mOilCopy = mOil;
+ } else if (mOilCopy != dComIfGs_getOil()) {
+ mOil = mOilCopy = dComIfGs_getOil();
+ mctx->updateSlider(2, &mOil, 0, 0, 0);
+ }
+
+ if (mMaxOilCopy != mMaxOil) {
+ s32 sp30 = mMaxOil - dComIfGs_getMaxOil();
+ dComIfGp_setItemMaxOilCount(sp30);
+ mMaxOilCopy = mMaxOil;
+ } else if (mMaxOilCopy != dComIfGs_getMaxOil()) {
+ mMaxOil = mMaxOilCopy = dComIfGs_getMaxOil();
+ mctx->updateSlider(2, &mMaxOil, 0, 0, 0);
+ }
+
+ if (mEnableOxygenMeterCopy != mEnableOxygenMeter) {
+ if (mEnableOxygenMeter) {
+ dComIfGp_onOxygenShowFlag();
+ } else {
+ dComIfGp_offOxygenShowFlag();
+ }
+ mEnableOxygenMeterCopy = mEnableOxygenMeter;
+ } else if (mEnableOxygenMeterCopy != dComIfGp_getOxygenShowFlag()) {
+ mEnableOxygenMeter = mEnableOxygenMeterCopy = dComIfGp_getOxygenShowFlag();
+ mctx->updateSlider(2, &mEnableOxygenMeter, 0, 0, 0);
+ }
+
+ if (mOxygenCopy != mOxygen) {
+ s32 sp30 = mOxygen - dComIfGp_getOxygen();
+ dComIfGp_setOxygenCount(sp30);
+ mOxygenCopy = mOxygen;
+ } else if (mOxygenCopy != dComIfGp_getOxygen()) {
+ mOxygen = mOxygenCopy = dComIfGp_getOxygen();
+ mctx->updateSlider(2, &mOxygen, 0, 0, 0);
+ }
+
+ if (mMaxOxygenCopy != mMaxOxygen) {
+ s32 sp30 = mMaxOxygen - dComIfGp_getMaxOxygen();
+ dComIfGp_setMaxOxygenCount(sp30);
+ mMaxOxygenCopy = mMaxOxygen;
+ } else if (mMaxOxygenCopy != dComIfGp_getMaxOxygen()) {
+ mMaxOxygen = mMaxOxygenCopy = dComIfGp_getMaxOxygen();
+ mctx->updateSlider(2, &mMaxOxygen, 0, 0, 0);
+ }
+
+ if (mRupeesCopy != mRupees) {
+ s32 sp30 = mRupees - dComIfGs_getRupee();
+ dComIfGp_clearItemRupeeCount();
+ dComIfGp_setItemRupeeCount(sp30);
+ mRupeesCopy = mRupees;
+ } else if (mRupeesCopy != dComIfGs_getRupee()) {
+ mRupees = mRupeesCopy = dComIfGs_getRupee();
+ mctx->updateSlider(2, &mRupees, 0, 0, 0);
+ }
+
+ if (mWalletSizeCopy != mWalletSize) {
+ mWalletSizeCopy = mWalletSize;
+ dComIfGs_setWalletSize(mWalletSize);
+ } else if (mWalletSizeCopy != (s16)dComIfGs_getWalletSize()) {
+ mWalletSize = mWalletSizeCopy = dComIfGs_getWalletSize();
+ mctx->updateSlider(2, &mWalletSize, 0, 0, 0);
+ }
+
+ if (mKeysCopy != mKeys) {
+ s16 sp30 = mKeys - dComIfGs_getKeyNum();
+ dComIfGp_clearItemKeyNumCount();
+ dComIfGp_setItemKeyNumCount(sp30);
+ mKeysCopy = mKeys;
+ } else if (mKeysCopy != dComIfGs_getKeyNum()) {
+ mKeys = mKeysCopy = dComIfGs_getKeyNum();
+ mctx->updateSlider(2, &mKeys, 0, 0, 0);
+ }
+
+ if (mPoesCopy != mPoes) {
+ dComIfGs_setPohSpiritNum(mPoes);
+ mPoesCopy = mPoes;
+ } else if (mPoesCopy != dComIfGs_getPohSpiritNum()) {
+ mPoes = mPoesCopy = dComIfGs_getPohSpiritNum();
+ mctx->updateSlider(2, &mPoes, 0, 0, 0);
+ }
+
+ if (mDonationAmountCopy != mDonationAmount) {
+ dMsgObject_setOffering(mDonationAmount);
+ mDonationAmountCopy = mDonationAmount;
+ } else if (mDonationAmountCopy != dMsgObject_getOffering()) {
+ mDonationAmount = mDonationAmountCopy = dMsgObject_getOffering();
+ mctx->updateSlider(2, &mDonationAmount, 0, 0, 0);
+ }
+
+ releaseJORMContext(mctx);
+}
+#endif
+
+u8 dMw_HIO_c::getBombFlag() {
+ #if DEBUG
+ if (mDoCPd_c::isConnect(PAD_3)) {
+ return mBombFlag;
+ } else if (mDoCPd_c::isConnect(PAD_3)) {
+ return mBombFlag;
+ } else {
+ return false;
+ }
+ #else
return false;
+ #endif
}
-bool dMw_HIO_c::getArrowFlag() {
+u8 dMw_HIO_c::getArrowFlag() {
+ #if DEBUG
+ if (mDoCPd_c::isConnect(PAD_3)) {
+ return mArrowFlag;
+ } else {
+ return false;
+ }
+ #else
return false;
+ #endif
}
-bool dMw_HIO_c::getPachinkoFlag() {
+u8 dMw_HIO_c::getPachinkoFlag() {
+ #if DEBUG
+ if (mDoCPd_c::isConnect(PAD_3)) {
+ return mPachinkoFlag;
+ } else {
+ return false;
+ }
+ #else
return false;
+ #endif
+}
+
+#if DEBUG
+void dMw_HIO_c::itemBitCheck() {
+ JORMContext* mctx = attachJORMContext(8);
+ u8 var_r29;
+
+ if (dComIfGs_isGetMagicUseFlag())
+ var_r29 = 1;
+ else
+ var_r29 = 0;
+
+ if (mEnableMagicCopy != var_r29) {
+ mEnableMagicCopy = mEnableMagic;
+ mEnableMagic = var_r29;
+ mctx->updateSlider(2, &mEnableMagic, 0, 0, 0);
+ }
+
+ if (mEnableArrowDrops != mEnableArrowDropsCopy) {
+ mEnableArrowDropsCopy = mEnableArrowDrops;
+ if (mEnableArrowDrops) {
+ dComIfGs_onItemFirstBit(dItemNo_BOW_e);
+ } else {
+ dComIfGs_offItemFirstBit(dItemNo_BOW_e);
+ }
+ }
+
+ if (mEnableArrowDrops != (u8)dComIfGs_isItemFirstBit(dItemNo_BOW_e)) {
+ mEnableArrowDrops = mEnableArrowDropsCopy = dComIfGs_isItemFirstBit(dItemNo_BOW_e);
+
+ JORMContext* mctx = attachJORMContext(8);
+ mctx->startUpdateNode(this);
+ mctx->updateCheckBox(2, &mEnableArrowDrops, 1, 0);
+ mctx->endUpdateNode();
+ releaseJORMContext(mctx);
+ }
+
+ for (int i = 0; i < 24; i++) {
+ if (mItemsCopy[i] != dComIfGs_getItem((u8)i, false)) {
+ field_0x7a[i] = 1;
+ mItemsCopy[i] = mItems[i];
+ mItems[i] = dComIfGs_getItem((u8)i, false);
+ mctx->updateComboBox(2, &mItems[i], 0);
+ }
+ }
+
+ if (mScentCopy != dComIfGs_getCollectSmell()) {
+ field_0xa8 = 1;
+ mScentCopy = mScent;
+ mScent = dComIfGs_getCollectSmell();
+ mctx->updateComboBox(2, &mScent, 0);
+ }
+
+ var_r29 = field_0x101[0];
+ if (dComIfGs_isCollectClothes(2)) {
+ var_r29 = 3;
+ } else if (dComIfGs_isCollectClothes(1)) {
+ var_r29 = 2;
+ } else if (dComIfGs_isCollectClothes(0)) {
+ var_r29 = 1;
+ } else {
+ var_r29 = 0;
+ }
+
+ if (field_0x101[0] != var_r29) {
+ field_0x101[0] = field_0xf9[0];
+ field_0xf9[0] = var_r29;
+ mctx->updateComboBox(2, &field_0xf9[0], 0);
+ }
+
+ for (int i = 0; i < 4; i++) {
+ static u8 m_sword_item[] = {dItemNo_SWORD_e, dItemNo_MASTER_SWORD_e, dItemNo_LIGHT_SWORD_e, dItemNo_WOOD_STICK_e};
+ if (dComIfGs_isItemFirstBit(m_sword_item[i]))
+ var_r29 = 1;
+ else
+ var_r29 = 0;
+
+ if (mSwordsCopy[i] != var_r29) {
+ mSwordsCopy[i] = mSwords[i];
+ mSwords[i] = var_r29;
+ mctx->updateSlider(2, &mSwords[i], 0, 0, 0);
+ }
+ }
+
+ for (int i = 0; i < 3; i++) {
+ static u8 m_cloth_item[] = {dItemNo_WEAR_KOKIRI_e, dItemNo_ARMOR_e, dItemNo_WEAR_ZORA_e};
+ if (dComIfGs_isItemFirstBit(m_cloth_item[i]))
+ var_r29 = 1;
+ else
+ var_r29 = 0;
+
+ if (mClothesCopy[i] != var_r29) {
+ mClothesCopy[i] = mClothes[i];
+ mClothes[i] = var_r29;
+ mctx->updateSlider(2, &mClothes[i], 0, 0, 0);
+ }
+
+ static u8 m_shield_item[] = {dItemNo_SHIELD_e, dItemNo_HYLIA_SHIELD_e, dItemNo_WOOD_SHIELD_e};
+ if (dComIfGs_isItemFirstBit(m_shield_item[i]))
+ var_r29 = 1;
+ else
+ var_r29 = 0;
+
+ if (mShieldsCopy[i] != var_r29) {
+ mShieldsCopy[i] = mShields[i];
+ mShields[i] = var_r29;
+ mctx->updateSlider(2, &mShields[i], 0, 0, 0);
+ }
+ }
+
+ if (dComIfGs_isItemFirstBit(dItemNo_BOMB_BAG_LV2_e))
+ var_r29 = 1;
+ else
+ var_r29 = 0;
+
+ if (mBombBagLV2Copy != var_r29) {
+ mBombBagLV2Copy = mBombBagLV2;
+ mBombBagLV2 = var_r29;
+ mctx->updateSlider(2, &mBombBagLV2, 0, 0, 0);
+ }
+
+ for (int i = 0; i < 3; i++) {
+ static u8 m_lv2_dun_key[] = {dItemNo_L2_KEY_PIECES1_e, dItemNo_L2_KEY_PIECES2_e, dItemNo_L2_KEY_PIECES3_e};
+ if (dComIfGs_isItemFirstBit(m_lv2_dun_key[i]))
+ var_r29 = 1;
+ else
+ var_r29 = 0;
+
+ if (mLV2KeyShardsCopy[i] != var_r29) {
+ mLV2KeyShardsCopy[i] = mLV2KeyShards[i];
+ mLV2KeyShards[i] = var_r29;
+ mctx->updateSlider(2, &mLV2KeyShards[i], 0, 0, 0);
+ }
+ }
+
+ for (int i = 0; i < 2; i++) {
+ static u8 m_lv5_dun_item[] = {dItemNo_TOMATO_PUREE_e, dItemNo_TASTE_e};
+ if (dComIfGs_isItemFirstBit(m_lv5_dun_item[i]))
+ var_r29 = 1;
+ else
+ var_r29 = 0;
+
+ if (mLV5ItemCopy[i] != var_r29) {
+ mLV5ItemCopy[i] = mLV5Item[i];
+ mLV5Item[i] = var_r29;
+ mctx->updateSlider(2, &mLV5Item[i], 0, 0, 0);
+ }
+ }
+
+ for (int i = 0; i < 24; i++) {
+ if (dComIfGs_isItemFirstBit(i + dItemNo_M_BEETLE_e))
+ var_r29 = 1;
+ else
+ var_r29 = 0;
+
+ if (mGoldBugCopy[i] != var_r29) {
+ mGoldBugCopy[i] = mGoldBug[i];
+ mGoldBug[i] = var_r29;
+ mctx->updateSlider(2, &mGoldBug[i], 0, 0, 0);
+ }
+ }
+
+ var_r29 = field_0x101[1];
+ if (dComIfGs_isCollectSword(1)) {
+ var_r29 = 2;
+ } else if (dComIfGs_isCollectSword(0)) {
+ var_r29 = 1;
+ } else if (dComIfGs_isCollectSword(2)) {
+ var_r29 = 3;
+ } else if (dComIfGs_isCollectSword(3)) {
+ var_r29 = 4;
+ } else {
+ var_r29 = 0;
+ }
+
+ if (field_0x101[1] != var_r29) {
+ field_0x101[1] = field_0xf9[1];
+ field_0xf9[1] = var_r29;
+ mctx->updateComboBox(2, &field_0xf9[1], 0);
+ }
+
+ var_r29 = field_0x101[2];
+ if (dComIfGs_isCollectShield(3)) {
+ var_r29 = 4;
+ } else if (dComIfGs_isCollectShield(2)) {
+ var_r29 = 3;
+ } else if (dComIfGs_isCollectShield(1)) {
+ var_r29 = 2;
+ } else if (dComIfGs_isCollectShield(0)) {
+ var_r29 = 1;
+ } else {
+ var_r29 = 0;
+ }
+
+ if (field_0x101[2] != var_r29) {
+ field_0x101[2] = field_0xf9[2];
+ field_0xf9[2] = var_r29;
+ mctx->updateComboBox(2, &field_0xf9[2], 0);
+ }
+
+ for (int i = 0; i < 4; i++) {
+ if (dComIfGs_isCollectCrystal(i))
+ var_r29 = 1;
+ else
+ var_r29 = 0;
+
+ if (mFusedShadowCopy[i] != var_r29) {
+ mFusedShadowCopy[i] = mFusedShadow[i];
+ mFusedShadow[i] = var_r29;
+ mctx->updateSlider(2, &mFusedShadow[i], 0, 0, 0);
+ }
+ }
+
+ for (int i = 0; i < 4; i++) {
+ if (dComIfGs_isCollectMirror(i))
+ var_r29 = 1;
+ else
+ var_r29 = 0;
+
+ if (mMirrorShardCopy[i] != var_r29) {
+ mMirrorShardCopy[i] = mMirrorShard[i];
+ mMirrorShard[i] = var_r29;
+ mctx->updateSlider(2, &mMirrorShard[i], 0, 0, 0);
+ }
+ }
+
+ releaseJORMContext(mctx);
}
+void dMw_HIO_c::itemNumHIO() {
+ JORMContext* mctx = attachJORMContext(8);
+
+ if (mArrowNumCopy != mArrowNum) {
+ s16 count = mArrowNum - dComIfGs_getArrowNum();
+ dComIfGp_setItemArrowNumCount(count);
+ mArrowNumCopy = mArrowNum;
+ } else if (mArrowNumCopy != dComIfGs_getArrowNum()) {
+ mArrowNum = mArrowNumCopy = dComIfGs_getArrowNum();
+ mctx->updateSlider(2, &mArrowNum, 0, 0, 0);
+ }
+
+ for (int i = 0; i < 4; i++) {
+ if (mBottleNumCopy[i] != mBottleNum[i]) {
+ s16 count = mBottleNum[i] - dComIfGs_getBottleNum(i);
+ dComIfGs_addBottleNum(i, count);
+ mBottleNumCopy[i] = mBottleNum[i];
+ } else if (mBottleNumCopy[i] != dComIfGs_getBottleNum(i)) {
+ mBottleNum[i] = mBottleNumCopy[i] = dComIfGs_getBottleNum(i);
+ mctx->updateSlider(2, &mBottleNum[i], 0, 0, 0);
+ }
+ }
+
+ for (int i = 0; i < 3; i++) {
+ if (mBombNumCopy[i] != mBombNum[i]) {
+ s16 count = mBombNum[i] - dComIfGs_getBombNum(i);
+ dComIfGp_setItemBombNumCount(i, count);
+ mBombNumCopy[i] = mBombNum[i];
+ } else if (mBombNumCopy[i] != dComIfGs_getBombNum(i)) {
+ mBombNum[i] = mBombNumCopy[i] = dComIfGs_getBombNum(i);
+ mctx->updateSlider(2, &mBombNum[i], 0, 0, 0);
+ }
+ }
+
+ if (mSeedNumCopy != mSeedNum) {
+ s16 count = mSeedNum - dComIfGs_getPachinkoNum();
+ dComIfGp_setItemPachinkoNumCount(count);
+ mSeedNumCopy = mSeedNum;
+ } else if (mSeedNumCopy != dComIfGs_getPachinkoNum()) {
+ mSeedNum = mSeedNumCopy = dComIfGs_getPachinkoNum();
+ mctx->updateSlider(2, &mSeedNum, 0, 0, 0);
+ }
+
+ releaseJORMContext(mctx);
+}
+
+void dMw_HIO_c::itemHIO() {
+ playerStatusHIO();
+ itemNumHIO();
+ itemBitCheck();
+
+ JORMContext* mctx = attachJORMContext(8);
+
+ if (mEnableMagic != mEnableMagicCopy) {
+ mEnableMagicCopy = mEnableMagic;
+ if (mEnableMagic) {
+ dComIfGs_onGetMagicUseFlag();
+ } else {
+ dComIfGs_offGetMagicUseFlag();
+ }
+ }
+
+ if (mEnableMagic != (u8)dComIfGs_isGetMagicUseFlag()) {
+ mEnableMagic = mEnableMagicCopy = dComIfGs_isGetMagicUseFlag();
+
+ JORMContext* mctx = attachJORMContext(8);
+ mctx->startUpdateNode(this);
+ mctx->updateCheckBox(2, &mEnableMagic, 1, 0);
+ mctx->endUpdateNode();
+ releaseJORMContext(mctx);
+ }
+
+ if (mEnableArrowDrops != mEnableArrowDropsCopy) {
+ mEnableArrowDropsCopy = mEnableArrowDrops;
+ if (mEnableArrowDrops) {
+ dComIfGs_onItemFirstBit(dItemNo_BOW_e);
+ } else {
+ dComIfGs_offItemFirstBit(dItemNo_BOW_e);
+ }
+ }
+
+ if (mEnableArrowDrops != (u8)dComIfGs_isItemFirstBit(dItemNo_BOW_e)) {
+ mEnableArrowDrops = mEnableArrowDropsCopy = dComIfGs_isItemFirstBit(dItemNo_BOW_e);
+
+ JORMContext* mctx = attachJORMContext(8);
+ mctx->startUpdateNode(this);
+ mctx->updateCheckBox(2, &mEnableArrowDrops, 1, 0);
+ mctx->endUpdateNode();
+ releaseJORMContext(mctx);
+ }
+
+ for (int i = 0; i < 24; i++) {
+ if (mItems[i] != mItemsCopy[i]) {
+ if (i == 20 && field_0x7a[i] == 0) {
+ switch (mItems[i]) {
+ case dItemNo_NONE_e:
+ case dItemNo_FISHING_ROD_1_e:
+ case dItemNo_BEE_ROD_e:
+ case dItemNo_WORM_ROD_e:
+ dComIfGs_offItemFirstBit(dItemNo_ZORAS_JEWEL_e);
+ break;
+ case dItemNo_JEWEL_ROD_e:
+ case dItemNo_JEWEL_BEE_ROD_e:
+ case dItemNo_JEWEL_WORM_ROD_e:
+ case dItemNo_ZORAS_JEWEL_e:
+ dComIfGs_onItemFirstBit(dItemNo_ZORAS_JEWEL_e);
+ break;
+ }
+ }
+
+ dComIfGs_setItem((u8)i, mItems[i]);
+
+ if (mItems[i] == dItemNo_HOT_SPRING_e) {
+ dMeter2Info_setHotSpringTimer(i);
+ }
+
+ if (mItems[i] == dItemNo_BEE_CHILD_e && field_0x7a[i] == 0) {
+ dComIfGs_setBottleNum(i - 11, dComIfGs_getBottleMax());
+ }
+
+ mItemsCopy[i] = mItems[i];
+ field_0x7a[i] = 0;
+ }
+ }
+
+ if (mScent != mScentCopy) {
+ dMsgObject_setSmellType(mScent);
+ mScentCopy = mScent;
+ field_0xa8 = 0;
+ }
+
+ for (int i = 0; i < 4; i++) {
+ if (mSwords[i] != mSwordsCopy[i]) {
+ static u8 m_sword_item[] = {dItemNo_SWORD_e, dItemNo_MASTER_SWORD_e, dItemNo_LIGHT_SWORD_e, dItemNo_WOOD_STICK_e};
+ if (mSwords[i] != 0) {
+ dComIfGs_onItemFirstBit(m_sword_item[i]);
+ } else {
+ dComIfGs_offItemFirstBit(m_sword_item[i]);
+ if (m_sword_item[i] == dComIfGs_getSelectEquipSword()) {
+ dMeter2Info_setSword(dItemNo_NONE_e, false);
+ }
+ }
+
+ mSwordsCopy[i] = mSwords[i];
+ }
+ }
+
+ for (int i = 0; i < 3; i++) {
+ if (mClothes[i] != mClothesCopy[i]) {
+ static u8 m_cloth_item[] = {dItemNo_WEAR_KOKIRI_e, dItemNo_ARMOR_e, dItemNo_WEAR_ZORA_e};
+ if (mClothes[i] != 0) {
+ dComIfGs_onItemFirstBit(m_cloth_item[i]);
+ } else {
+ dComIfGs_offItemFirstBit(m_cloth_item[i]);
+
+ }
+ mClothesCopy[i] = mClothes[i];
+ }
+
+ if (mShields[i] != mShieldsCopy[i]) {
+ static u8 m_shield_item[] = {dItemNo_SHIELD_e, dItemNo_HYLIA_SHIELD_e, dItemNo_WOOD_SHIELD_e};
+ if (mShields[i] != 0) {
+ dComIfGs_onItemFirstBit(m_shield_item[i]);
+ } else {
+ dComIfGs_offItemFirstBit(m_shield_item[i]);
+
+ }
+ mShieldsCopy[i] = mShields[i];
+ }
+ }
+
+ if (mBombBagLV2 != mBombBagLV2Copy) {
+ if (mBombBagLV2) {
+ dComIfGs_onItemFirstBit(dItemNo_BOMB_BAG_LV2_e);
+ } else {
+ dComIfGs_offItemFirstBit(dItemNo_BOMB_BAG_LV2_e);
+ }
+ mBombBagLV2Copy = mBombBagLV2;
+ }
+
+ for (int i = 0; i < 3; i++) {
+ static u8 m_lv2_dun_key[] = {dItemNo_L2_KEY_PIECES1_e, dItemNo_L2_KEY_PIECES2_e, dItemNo_L2_KEY_PIECES3_e};
+ if (mLV2KeyShards[i] != mLV2KeyShardsCopy[i]) {
+ if (mLV2KeyShards[i] != 0) {
+ dComIfGs_onItemFirstBit(m_lv2_dun_key[i]);
+ } else {
+ dComIfGs_offItemFirstBit(m_lv2_dun_key[i]);
+ }
+ mLV2KeyShardsCopy[i] = mLV2KeyShards[i];
+ }
+ }
+
+ for (int i = 0; i < 2; i++) {
+ static u8 m_lv5_dun_item[] = {dItemNo_TOMATO_PUREE_e, dItemNo_TASTE_e};
+ if (mLV5Item[i] != mLV5ItemCopy[i]) {
+ if (mLV5Item[i] != 0) {
+ dComIfGs_onItemFirstBit(m_lv5_dun_item[i]);
+ } else {
+ dComIfGs_offItemFirstBit(m_lv5_dun_item[i]);
+ }
+ mLV5ItemCopy[i] = mLV5Item[i];
+ }
+ }
+
+ for (int i = 0; i < 24; i++) {
+ if (mGoldBug[i] != mGoldBugCopy[i]) {
+ if (mGoldBug[i] != 0) {
+ dComIfGs_onItemFirstBit(i + dItemNo_M_BEETLE_e);
+ } else {
+ dComIfGs_offItemFirstBit(i + dItemNo_M_BEETLE_e);
+ }
+ mGoldBugCopy[i] = mGoldBug[i];
+ }
+ }
+
+ for (int i = 0; i < 3; i++) {
+ if (i == 0) {
+ if (g_playerKind == 2) {
+ field_0xf9[i] = 0;
+ } else if (g_playerKind == 3) {
+ field_0xf9[i] = 1;
+ } else if (g_playerKind == 4) {
+ field_0xf9[i] = 2;
+ }
+ }
+
+ if (field_0xf9[i] != field_0x101[i]) {
+ switch (i) {
+ case 0:
+ for (int j = 0; j < 8; j++) {
+ dComIfGs_offCollectClothes(j);
+ }
+
+ if (field_0xf9[i] != 0) {
+ dComIfGs_setCollectClothes(field_0xf9[i] - 1);
+ } else {
+ dComIfGs_setSelectEquipClothes(dItemNo_WEAR_CASUAL_e);
+ }
+ break;
+ case 1:
+ for (int j = 0; j < 8; j++) {
+ dComIfGs_offCollectSword(j);
+ }
+
+ if (field_0xf9[i] != 0) {
+ dComIfGs_setCollectSword(field_0xf9[i] - 1);
+ } else {
+ dComIfGs_setSelectEquipSword(dItemNo_NONE_e);
+ }
+ break;
+ case 2:
+ for (int j = 0; j < 8; j++) {
+ dComIfGs_offCollectShield(j);
+ }
+
+ if (field_0xf9[i] != 0) {
+ dComIfGs_setCollectShield(field_0xf9[i] - 1);
+ } else {
+ dComIfGs_setSelectEquipShield(dItemNo_NONE_e);
+ }
+ break;
+ }
+
+ field_0x101[i] = field_0xf9[i];
+ }
+ }
+
+ for (int i = 0; i < 4; i++) {
+ if (mFusedShadow[i] != mFusedShadowCopy[i]) {
+ if (mFusedShadow[i] != 0) {
+ dComIfGs_onCollectCrystal(i);
+ } else {
+ dComIfGs_offCollectCrystal(i);
+ }
+ mFusedShadowCopy[i] = mFusedShadow[i];
+ }
+ }
+
+ for (int i = 0; i < 4; i++) {
+ if (mMirrorShard[i] != mMirrorShardCopy[i]) {
+ if (mMirrorShard[i] != 0) {
+ dComIfGs_onCollectMirror(i);
+ } else {
+ dComIfGs_offCollectMirror(i);
+ }
+ mMirrorShardCopy[i] = mMirrorShard[i];
+ }
+ }
+
+ releaseJORMContext(mctx);
+}
+#endif
+
dMw_DHIO_c::dMw_DHIO_c() {
for (int i = 0; i < 32; i++) {
mMap[i] = false;
@@ -163,6 +1101,226 @@ dMw_DHIO_c::dMw_DHIO_c() {
}
}
+#if DEBUG
+void dMw_DHIO_c::genMessage(JORMContext* mctx) {
+ static const char* name_str[] = {
+ "\n*****0 ラトアーヌ地方*****",
+ "\n*****1 ハイラル城*****",
+ "\n*****2 フィローネ地方*****",
+ "\n*****3 オルディン地方*****",
+ "\n*****4 ラネール地方*****",
+ "\n*****5 影の世界*****",
+ "\n*****6 環状フィールド*****",
+ "\n*****7 空き*****",
+ "\n*****8 空き*****",
+ "\n*****9 空き*****",
+ "\n*****10 空き*****",
+ "\n*****11 空き*****",
+ "\n*****12 空き*****",
+ "\n*****13 空き*****",
+ "\n*****14 空き*****",
+ "\n*****15 空き*****",
+ "\n*****16 L-1ダンジョン*****",
+ "\n*****17 L-2ダンジョン*****",
+ "\n*****18 L-3ダンジョン*****",
+ "\n*****19 L-4ダンジョン*****",
+ "\n*****20 L-5ダンジョン*****",
+ "\n*****21 L-6ダンジョン*****",
+ "\n*****22 L-7ダンジョン*****",
+ "\n*****23 L-8ダンジョン*****",
+ "\n*****24 最終ダンジョン*****",
+ "\n*****25 空き*****",
+ "\n*****26 空き*****",
+ "\n*****27 空き*****",
+ "\n*****28 空き*****",
+ "\n*****29 空き*****",
+ "\n*****30 空き*****",
+ "\n*****31 デフォルト*****",
+ };
+
+ for (int i = 16; i < 25; i++) {
+ mctx->genLabel(name_str[i], 0);
+ mctx->genCheckBox("マップ", &mMap[i], 1);
+ mctx->genCheckBox("コンパス", &mCompass[i], 1);
+ mctx->genCheckBox("ボス鍵", &mBossKey[i], 1);
+ mctx->genCheckBox("ワープ", &mPortal[i], 1);
+ mctx->genCheckBox("中ボス攻略", &mMidBossClear[i], 1);
+ mctx->genCheckBox("ボス攻略", &mBossClear[i], 1);
+ mctx->genCheckBox("ハートの器", &mHeartContainer[i], 1);
+ mctx->genCheckBox("ボスデモ", &mBossDemo[i], 1);
+ }
+}
+
+void dMw_DHIO_c::bitCheck() {
+ JORMContext* mctx = attachJORMContext(8);
+ u8 var_r28;
+
+ for (int i = 0; i < 32; i++) {
+ if (dComIfGs_isDungeonItemMap(i))
+ var_r28 = 1;
+ else
+ var_r28 = 0;
+
+ if (mMapCopy[i] != var_r28) {
+ mMapCopy[i] = mMap[i];
+ mMap[i] = var_r28;
+ mctx->updateSlider(2, &mMap[i], 0, 0, 0);
+ }
+
+ if (mMap[i] != mMapCopy[i]) {
+ if (mMap[i] != 0) {
+ dComIfGs_onDungeonItemMap(i);
+ } else {
+ dComIfGs_offDungeonItemMap(i);
+ }
+ mMapCopy[i] = mMap[i];
+ }
+
+ if (dComIfGs_isDungeonItemCompass(i))
+ var_r28 = 1;
+ else
+ var_r28 = 0;
+
+ if (mCompassCopy[i] != var_r28) {
+ mCompassCopy[i] = mCompass[i];
+ mCompass[i] = var_r28;
+ mctx->updateSlider(2, &mCompass[i], 0, 0, 0);
+ }
+
+ if (mCompass[i] != mCompassCopy[i]) {
+ if (mCompass[i] != 0) {
+ dComIfGs_onDungeonItemCompass(i);
+ } else {
+ dComIfGs_offDungeonItemCompass(i);
+ }
+ mCompassCopy[i] = mCompass[i];
+ }
+
+ if (dComIfGs_isDungeonItemBossKey(i))
+ var_r28 = 1;
+ else
+ var_r28 = 0;
+
+ if (mBossKeyCopy[i] != var_r28) {
+ mBossKeyCopy[i] = mBossKey[i];
+ mBossKey[i] = var_r28;
+ mctx->updateSlider(2, &mBossKey[i], 0, 0, 0);
+ }
+
+ if (mBossKey[i] != mBossKeyCopy[i]) {
+ if (mBossKey[i] != 0) {
+ dComIfGs_onDungeonItemBossKey(i);
+ } else {
+ dComIfGs_offDungeonItemBossKey(i);
+ }
+ mBossKeyCopy[i] = mBossKey[i];
+ }
+
+ if (dComIfGs_isDungeonItemWarp(i))
+ var_r28 = 1;
+ else
+ var_r28 = 0;
+
+ if (mPortalCopy[i] != var_r28) {
+ mPortalCopy[i] = mPortal[i];
+ mPortal[i] = var_r28;
+ mctx->updateSlider(2, &mPortal[i], 0, 0, 0);
+ }
+
+ if (mPortal[i] != mPortalCopy[i]) {
+ if (mPortal[i] != 0) {
+ dComIfGs_onDungeonItemWarp(i);
+ } else {
+ dComIfGs_offDungeonItemWarp(i);
+ }
+ mPortalCopy[i] = mPortal[i];
+ }
+
+ if (dComIfGs_isStageBossEnemy(i))
+ var_r28 = 1;
+ else
+ var_r28 = 0;
+
+ if (mBossClearCopy[i] != var_r28) {
+ mBossClearCopy[i] = mBossClear[i];
+ mBossClear[i] = var_r28;
+ mctx->updateSlider(2, &mBossClear[i], 0, 0, 0);
+ }
+
+ if (mBossClear[i] != mBossClearCopy[i]) {
+ if (mBossClear[i] != 0) {
+ dComIfGs_onStageBossEnemy(i);
+ } else {
+ dComIfGs_offStageBossEnemy(i);
+ }
+ mBossClearCopy[i] = mBossClear[i];
+ }
+
+ if (dComIfGs_isStageMiddleBoss(i))
+ var_r28 = 1;
+ else
+ var_r28 = 0;
+
+ if (mMidBossClearCopy[i] != var_r28) {
+ mMidBossClearCopy[i] = mMidBossClear[i];
+ mMidBossClear[i] = var_r28;
+ mctx->updateSlider(2, &mMidBossClear[i], 0, 0, 0);
+ }
+
+ if (mMidBossClear[i] != mMidBossClearCopy[i]) {
+ if (mMidBossClear[i] != 0) {
+ dComIfGs_onStageMiddleBoss(i);
+ } else {
+ dComIfGs_offStageMiddleBoss(i);
+ }
+ mMidBossClearCopy[i] = mMidBossClear[i];
+ }
+
+ if (dComIfGs_isStageLife(i))
+ var_r28 = 1;
+ else
+ var_r28 = 0;
+
+ if (mHeartContainerCopy[i] != var_r28) {
+ mHeartContainerCopy[i] = mHeartContainer[i];
+ mHeartContainer[i] = var_r28;
+ mctx->updateSlider(2, &mHeartContainer[i], 0, 0, 0);
+ }
+
+ if (mHeartContainer[i] != mHeartContainerCopy[i]) {
+ if (mHeartContainer[i] != 0) {
+ dComIfGs_onStageLife(i);
+ } else {
+ dComIfGs_offStageLife(i);
+ }
+ mHeartContainerCopy[i] = mHeartContainer[i];
+ }
+
+ if (dComIfGs_isStageBossDemo(i))
+ var_r28 = 1;
+ else
+ var_r28 = 0;
+
+ if (mBossDemoCopy[i] != var_r28) {
+ mBossDemoCopy[i] = mBossDemo[i];
+ mBossDemo[i] = var_r28;
+ mctx->updateSlider(2, &mBossDemo[i], 0, 0, 0);
+ }
+
+ if (mBossDemo[i] != mBossDemoCopy[i]) {
+ if (mBossDemo[i] != 0) {
+ dComIfGs_onStageBossDemo(i);
+ } else {
+ dComIfGs_offStageBossDemo(i);
+ }
+ mBossDemoCopy[i] = mBossDemo[i];
+ }
+ }
+
+ releaseJORMContext(mctx);
+}
+#endif
+
dMw_HIO_c g_mwHIO;
dMw_DHIO_c g_mwDHIO;