diff options
| author | TakaRikka <38417346+TakaRikka@users.noreply.github.com> | 2026-03-17 03:44:11 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-03-17 03:44:11 -0700 |
| commit | 9f340b604b5ac3d19d330b7bd6a2d7355c58bc27 (patch) | |
| tree | 1db19763775c1b495235e05bd6ae1471a8bb53fb /src/d/d_menu_window_HIO.cpp | |
| parent | ae0f8909a6ad9d1df2cf247a2538ff658d6e49c0 (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.cpp | 1304 |
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; |
