diff --git a/include/d/actor/d_a_npc_cdn3.h b/include/d/actor/d_a_npc_cdn3.h index c5ef9f92833..c1436a8e3d8 100644 --- a/include/d/actor/d_a_npc_cdn3.h +++ b/include/d/actor/d_a_npc_cdn3.h @@ -223,7 +223,7 @@ public: break; } /* dSv_event_flag_c::F_0281 - Shop - Malo Mart opens in Castle Town */ - if (dComIfGs_isEventBit((u16)dSv_event_flag_c::saveBitLabels[281]) && uVar3 == 9) { + if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[281]) && uVar3 == 9) { uVar3 = 0xb; } } else { @@ -257,7 +257,7 @@ public: break; } /* dSv_event_flag_c::F_0281 - Shop - Malo Mart opens in Castle Town */ - if (dComIfGs_isEventBit((u16)dSv_event_flag_c::saveBitLabels[281]) && uVar3 == 10) { + if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[281]) && uVar3 == 10) { uVar3 = 12; } } diff --git a/include/d/d_menu_fmap2D.h b/include/d/d_menu_fmap2D.h index 75752c8ccc9..cda275f36f4 100644 --- a/include/d/d_menu_fmap2D.h +++ b/include/d/d_menu_fmap2D.h @@ -14,7 +14,9 @@ class dMsgScrnExplain_c; class dMenu_Fmap2DBack_c : public dDlst_base_c, public dMenuMapCommon_c { public: dMenu_Fmap2DBack_c(); + void setRegionTexData(u8, ResTIMG*, f32, f32, f32, f32, f32, f32, f32, f32, f32); + void setRegionTexData(u8, f32, f32, f32, f32, f32, f32, f32, f32, f32); void calcAllMapPos(); f32 calcAllMapScaleRate(); void calcAllMapPos2DFirst(f32, f32, f32*, f32*); @@ -142,8 +144,8 @@ public: u8 getSpotCursor() { return mSpotCursor; } u8 getSelectRegion() { return mSelectRegion; } bool getAllPathShowFlag() { return mAllPathShowFlag; } - f32 getRegionOriginX(u8 i_region) { return mRegionOriginX[i_region]; } - f32 getRegionOriginZ(u8 i_region) { return mRegionOriginZ[i_region]; } + f32 getRegionOriginX(int i_region) { return mRegionOriginX[i_region]; } + f32 getRegionOriginZ(int i_region) { return mRegionOriginZ[i_region]; } void setArrowAlpha(f32 i_alpha) { mArrowAlpha = i_alpha; } void setSpotTextureFadeAlpha(f32 i_alpha) { mSpotTextureFadeAlpha = i_alpha; } @@ -155,8 +157,8 @@ public: void onArrowDrawFlag() { mArrowDrawFlag = true; } bool isArrowDrawFlag() { return mArrowDrawFlag; } - void onShowRegionFlag(int region_bit) { mRegionFlag |= ((1 << region_bit) & 0xFF); } - bool isShowRegionFlag(int region_bit) { return mRegionFlag & ((1 << region_bit) & 0xFF); } + void onShowRegionFlag(int region_bit) { mRegionFlag |= (u8)(1 << region_bit); } + BOOL isShowRegionFlag(int region_bit) { return mRegionFlag & (u8)(1 << region_bit) ? TRUE : FALSE; } void mapBlink() {} diff --git a/include/d/d_meter2_info.h b/include/d/d_meter2_info.h index b538a2112da..c6bbcda1637 100644 --- a/include/d/d_meter2_info.h +++ b/include/d/d_meter2_info.h @@ -302,7 +302,7 @@ void dMeter2Info_set2DVibrationM(); void dMeter2Info_offUseButton(int pButton); bool dMeter2Info_is2DActiveTouchArea(); u8 dMeter2Info_getRecieveLetterNum(); -bool dMeter2Info_getPixel(f32 i_posX, f32 i_posY, f32 param_2, f32 param_3, f32 i_sizeX, +u8 dMeter2Info_getPixel(f32 i_posX, f32 i_posY, f32 param_2, f32 param_3, f32 i_sizeX, f32 i_sizeY, struct ResTIMG const* i_resTimg); const char* dMeter2Info_getPlusTextureName(); const char* dMeter2Info_getNumberTextureName(int i_num); diff --git a/include/d/d_pane_class.h b/include/d/d_pane_class.h index 7b714584431..345cae12748 100644 --- a/include/d/d_pane_class.h +++ b/include/d/d_pane_class.h @@ -34,7 +34,7 @@ public: JGeometry::TBox2* getBounds(J2DPane*); Vec getGlobalVtx(Mtx* param_0, u8 param_1, bool param_2, s16 param_3) { - return getGlobalVtx(getPanePtr(), param_0, param_1, param_2, param_3); + return getGlobalVtx(mPane, param_0, param_1, param_2, param_3); } Vec getGlobalVtxCenter(bool param_0, s16 param_1) { @@ -60,8 +60,8 @@ public: f32 getPosX() { return getPanePtr()->getBounds().i.x; } f32 getPosY() { return getPanePtr()->getBounds().i.y; } - f32 getSizeX() { return getPanePtr()->getWidth(); } - f32 getSizeY() { return getPanePtr()->getHeight(); } + f32 getSizeX() { return mPane->getWidth(); } + f32 getSizeY() { return mPane->getHeight(); } f32 getRotateZ() { return getPanePtr()->getRotateZ(); } diff --git a/include/d/d_save.h b/include/d/d_save.h index a30d2d62c49..ba358fb04f3 100644 --- a/include/d/d_save.h +++ b/include/d/d_save.h @@ -1027,7 +1027,12 @@ public: #if VERSION > VERSION_GCN_JPN const #endif - static u16 saveBitLabels[822]; +#if PLATFORM_SHIELD + s16 +#else + u16 +#endif + static saveBitLabels[822]; }; class dSv_event_tmp_flag_c { diff --git a/src/Z2AudioLib/Z2LinkMgr.cpp b/src/Z2AudioLib/Z2LinkMgr.cpp index f3d7e82d0d2..ddfd2d59ef7 100644 --- a/src/Z2AudioLib/Z2LinkMgr.cpp +++ b/src/Z2AudioLib/Z2LinkMgr.cpp @@ -317,7 +317,7 @@ JAISoundHandle* Z2CreatureLink::startLinkSoundLevel(JAISoundID soundID, u32 mapi case Z2SE_AL_SNOBO_RIDE: case Z2SE_AL_SNOBO_BREAK: /* dSv_event_flag_c::F_0266 - Snowpeak Ruins - Snowpeak Ruins clear */ - if (dComIfGs_isEventBit((u16)dSv_event_flag_c::saveBitLabels[266]) + if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[266]) && Z2GetSeqMgr()->getSubBgmID() != Z2BGM_SNOW_BOARD) { volume = 0.0f; volumeMoveSteps = 0; diff --git a/src/d/actor/d_a_demo00.cpp b/src/d/actor/d_a_demo00.cpp index 3b611f5bba4..6459c6e67f9 100644 --- a/src/d/actor/d_a_demo00.cpp +++ b/src/d/actor/d_a_demo00.cpp @@ -1089,7 +1089,7 @@ inline int daDemo00_c::execute() { break; } case 1: - dComIfGs_onEventBit((u16)dSv_event_flag_c::saveBitLabels[sp0E]); + dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[sp0E]); break; case 2: { diff --git a/src/d/actor/d_a_e_hp.cpp b/src/d/actor/d_a_e_hp.cpp index 4aad8f2684c..1b052ddb2a4 100644 --- a/src/d/actor/d_a_e_hp.cpp +++ b/src/d/actor/d_a_e_hp.cpp @@ -730,7 +730,7 @@ void daE_HP_c::executeDead() { field_0x784 = -1; if (dComIfGs_getPohSpiritNum() == 20) { - dComIfGs_onEventBit((u16)dSv_event_flag_c::saveBitLabels[0x1c9]); + dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[0x1c9]); } movemode++; diff --git a/src/d/actor/d_a_e_rdy.cpp b/src/d/actor/d_a_e_rdy.cpp index 1033f09a25b..1889fd1ce84 100644 --- a/src/d/actor/d_a_e_rdy.cpp +++ b/src/d/actor/d_a_e_rdy.cpp @@ -4277,7 +4277,7 @@ static int daE_RDY_Execute(e_rdy_class* i_this) { } } - if (i_this->field_0x5b8 == 12 && !dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[239] & 0xffff)) { + if (i_this->field_0x5b8 == 12 && !dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[239])) { fopAcM_OffStatus(a_this, 0); a_this->attention_info.flags = 0; return 1; diff --git a/src/d/actor/d_a_kago.cpp b/src/d/actor/d_a_kago.cpp index ad726a2ef5f..20fe97ac76f 100644 --- a/src/d/actor/d_a_kago.cpp +++ b/src/d/actor/d_a_kago.cpp @@ -522,7 +522,7 @@ void daKago_c::demo_skip(int param_0) { setPlayerRideOn(); field_0x718 = field_0x71a = 0; /* dSv_event_flag_c::M_051 - Main Event - Shadow Kargorok (?) (Large) event complete (Horse grass appears in various places) */ - dComIfGs_onEventBit((u16)dSv_event_flag_c::saveBitLabels[84]); + dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[84]); field_0x748 = 7; field_0x74c = NULL; break; diff --git a/src/d/actor/d_a_kytag14.cpp b/src/d/actor/d_a_kytag14.cpp index a4d63f187f1..faee63a4e45 100644 --- a/src/d/actor/d_a_kytag14.cpp +++ b/src/d/actor/d_a_kytag14.cpp @@ -27,7 +27,7 @@ static int daKytag14_Execute(kytag14_class* i_this) { } if (i_this->mEventID1 != 0xFFFF) { - if (dComIfGs_isEventBit((u16)dSv_event_flag_c::saveBitLabels[i_this->mEventID1])) { + if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[i_this->mEventID1])) { event1_set = true; } else { event1_set = false; @@ -35,7 +35,7 @@ static int daKytag14_Execute(kytag14_class* i_this) { } if (i_this->mEventID2 != 0xFFFF) { - if (!dComIfGs_isEventBit((u16)dSv_event_flag_c::saveBitLabels[i_this->mEventID2])) { + if (!dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[i_this->mEventID2])) { event2_unset = true; } else { event2_unset = false; diff --git a/src/d/actor/d_a_mg_rod.cpp b/src/d/actor/d_a_mg_rod.cpp index c628420e3b3..5e450980ce8 100644 --- a/src/d/actor/d_a_mg_rod.cpp +++ b/src/d/actor/d_a_mg_rod.cpp @@ -2570,7 +2570,7 @@ static void lure_catch(dmg_rod_class* i_this) { } if (i_this->play_cam_timer == 40) { - if (!dComIfGs_isEventBit((u16)dSv_event_flag_c::saveBitLabels[467])) { + if (!dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[467])) { Z2GetAudioMgr()->subBgmStart(Z2BGM_FISHING_GET1); } else if (fish_kind == 3) { Z2GetAudioMgr()->subBgmStart(Z2BGM_FISHING_GET3); @@ -2582,7 +2582,7 @@ static void lure_catch(dmg_rod_class* i_this) { } else if (i_this->play_cam_timer == 80) { u8 sp8 = 1; if (i_this->field_0x14c0 != 0) { - if (!dComIfGs_isEventBit((u16)dSv_event_flag_c::saveBitLabels[467])) { + if (!dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[467])) { sp8 = 2; } else if (fish_kind != 3) { sp8 = 2; @@ -2609,7 +2609,7 @@ static void lure_catch(dmg_rod_class* i_this) { data_80450C9A = 200; } - dComIfGs_onEventBit((u16)dSv_event_flag_c::saveBitLabels[467]); + dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[467]); static u16 catch_msgn_20[] = {0x02CE, 0x02D1, 0x02CF, 0x02D0}; static u16 catch_msgn_21[] = {0x02D2, 0x02D5, 0x02D3, 0x02D4}; @@ -4921,7 +4921,7 @@ static void play_camera(dmg_rod_class* i_this) { i_this->msgflow.init(actor, 0x2C9, 0, NULL); henna->field_0x6ba = 50; henna->field_0x7b8 = 0; - } else if (!dComIfGs_isEventBit((u16)dSv_event_flag_c::saveBitLabels[467])) { + } else if (!dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[467])) { if (i_this->field_0x1470 == 0) { sp174.x = -2800.0f; sp174.z = 4608.0f; @@ -4998,11 +4998,11 @@ static void play_camera(dmg_rod_class* i_this) { ) { int sp20 = 0; int sp1C = 1; - if (dComIfGs_isEventBit((u16)dSv_event_flag_c::saveBitLabels[466])) { + if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[466])) { sp20 = 1; } - if (dComIfGs_isEventBit((u16)dSv_event_flag_c::saveBitLabels[469])) { + if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[469])) { sp1C = 0; } @@ -5195,7 +5195,7 @@ static void play_camera(dmg_rod_class* i_this) { camera->mCamera.SetTrimSize(0); i_this->play_cam_mode = 0; i_this->field_0x146c = 30; - dComIfGs_offEventBit((u16)dSv_event_flag_c::saveBitLabels[466]); + dComIfGs_offEventBit(dSv_event_flag_c::saveBitLabels[466]); i_this->field_0xf81 = 1; } } diff --git a/src/d/actor/d_a_npc.cpp b/src/d/actor/d_a_npc.cpp index e3fa84cd846..727d7259be0 100644 --- a/src/d/actor/d_a_npc.cpp +++ b/src/d/actor/d_a_npc.cpp @@ -2897,15 +2897,15 @@ u8 daNpcT_getDistTableIdx(int param_0, int param_1) { } void daNpcT_onEvtBit(u32 i_no) { - dComIfGs_onEventBit((u16)dSv_event_flag_c::saveBitLabels[i_no]); + dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[i_no]); } void daNpcT_offEvtBit(u32 i_no) { - dComIfGs_offEventBit((u16)dSv_event_flag_c::saveBitLabels[i_no]); + dComIfGs_offEventBit(dSv_event_flag_c::saveBitLabels[i_no]); } BOOL daNpcT_chkEvtBit(u32 i_no) { - return dComIfGs_isEventBit((u16)dSv_event_flag_c::saveBitLabels[i_no]); + return dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[i_no]); } void daNpcT_onTmpBit(u32 i_no) { diff --git a/src/d/actor/d_a_npc4.cpp b/src/d/actor/d_a_npc4.cpp index 6fea49bde16..75143632022 100644 --- a/src/d/actor/d_a_npc4.cpp +++ b/src/d/actor/d_a_npc4.cpp @@ -1848,11 +1848,11 @@ s16 daNpcF_getGroundAngle(cBgS_PolyInfo* param_0, s16 param_1) { } BOOL daNpcF_chkEvtBit(u32 i_no) { - return dComIfGs_isEventBit((u16)dSv_event_flag_c::saveBitLabels[i_no]); + return dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[i_no]); } void daNpcF_onEvtBit(u32 i_no) { - dComIfGs_onEventBit((u16)dSv_event_flag_c::saveBitLabels[i_no]); + dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[i_no]); } BOOL daNpcF_chkTmpBit(u32 i_no) { diff --git a/src/d/actor/d_a_npc_chat.cpp b/src/d/actor/d_a_npc_chat.cpp index 0fd2cc37342..e5514c21e96 100644 --- a/src/d/actor/d_a_npc_chat.cpp +++ b/src/d/actor/d_a_npc_chat.cpp @@ -2383,7 +2383,7 @@ int daNpcChat_c::getObjNum() { } // dSv_event_flag_c::F_0281 - Shop - Malo Mart opens in Castle Town - if (dComIfGs_isEventBit((u16)dSv_event_flag_c::saveBitLabels[281]) && + if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[281]) && objNum == OBJ_CELEB_BAG_M) { objNum = OBJ_MARO_BAG_M; } @@ -2427,7 +2427,7 @@ int daNpcChat_c::getObjNum() { } // dSv_event_flag_c::F_0281 - Shop - Malo Mart opens in Castle Town - if (dComIfGs_isEventBit((u16)dSv_event_flag_c::saveBitLabels[281]) && + if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[281]) && objNum == OBJ_CELEB_BAG_W) { objNum = OBJ_MARO_BAG_W; } diff --git a/src/d/actor/d_a_npc_henna.cpp b/src/d/actor/d_a_npc_henna.cpp index deb5410878c..d13434bb3ca 100644 --- a/src/d/actor/d_a_npc_henna.cpp +++ b/src/d/actor/d_a_npc_henna.cpp @@ -379,7 +379,7 @@ static void henna_shop(npc_henna_class* i_this) { } cLib_addCalcAngleS2(&i_this->actor.current.angle.y, i_this->field_0x618, 2, unkInt1); /* dSv_event_flag_c::F_0461 - Fishing Pond - First time entered fishing house */ - if ((!dComIfGs_isEventBit((u16)dSv_event_flag_c::saveBitLabels[461]) || data_80450C9C != 0) && + if ((!dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[461]) || data_80450C9C != 0) && i_this->field_0x7d7 == 0 && i_this->field_0x6a0 == 56 + TREG_S(7)) { dComIfGp_event_reset(); @@ -388,7 +388,7 @@ static void henna_shop(npc_henna_class* i_this) { i_this->cam_mode = 60; } else { /* dSv_event_flag_c::F_0461 - Fishing Pond - First time entered fishing house */ - dComIfGs_onEventBit((u16)dSv_event_flag_c::saveBitLabels[461]); + dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[461]); i_this->cam_mode = 1; } i_this->field_0x7d7 = 1; @@ -890,9 +890,9 @@ static void demo_camera(npc_henna_class* i_this) { i_this->cam_mode = 0; } /* dSv_event_flag_c::F_0463 - Fishing Pond - Reserved for fishing */ - dComIfGs_offEventBit((u16)dSv_event_flag_c::saveBitLabels[0x1cf]); + dComIfGs_offEventBit(dSv_event_flag_c::saveBitLabels[0x1cf]); /* dSv_event_flag_c::F_0464 - Fishing Pond - Reserved for fishing */ - dComIfGs_offEventBit((u16)dSv_event_flag_c::saveBitLabels[0x1d0]); + dComIfGs_offEventBit(dSv_event_flag_c::saveBitLabels[0x1d0]); } } @@ -994,7 +994,7 @@ static void demo_camera_shop(npc_henna_class* i_this) { if (!dComIfGp_event_runCheck() /* dSv_event_flag_c::F_0465 - Fishing Pond - Reserved for fishing */ - && !dComIfGs_isEventBit((u16)dSv_event_flag_c::saveBitLabels[0x1d1])) + && !dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[0x1d1])) { i_this->field_0x756++; if (i_this->field_0x756 < 200) { @@ -2728,9 +2728,9 @@ static int daNpc_Henna_Create(fopAc_ac_c* i_this) { } } /* dSv_event_flag_c::F_0463 - Fishing Pond - Reserved for fishing */ - dComIfGs_offEventBit((u16)dSv_event_flag_c::saveBitLabels[0x1cf]); + dComIfGs_offEventBit(dSv_event_flag_c::saveBitLabels[0x1cf]); /* dSv_event_flag_c::F_0464 - Fishing Pond - Reserved for fishing */ - dComIfGs_offEventBit((u16)dSv_event_flag_c::saveBitLabels[0x1d0]); + dComIfGs_offEventBit(dSv_event_flag_c::saveBitLabels[0x1d0]); a_this->field_0x618 = i_this->shape_angle.y = i_this->current.angle.y = newAngle; lbl_82_bss_91 = dComIfGs_getEventReg(0xf63f); daNpc_Henna_Execute(a_this); @@ -2775,7 +2775,7 @@ static int daNpc_Henna_Create(fopAc_ac_c* i_this) { NULL, -1); data_80450C99 = 0; /* dSv_event_flag_c::F_0463 - Fishing Pond - Reserved for fishing */ - if (!dComIfGs_isEventBit((u16)dSv_event_flag_c::saveBitLabels[0x1cf])) { + if (!dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[0x1cf])) { a_this->field_0x70a = 4; a_this->field_0x734 = 1; } else { diff --git a/src/d/actor/d_a_npc_ks.cpp b/src/d/actor/d_a_npc_ks.cpp index ffe173521fc..f495a1cb3d5 100644 --- a/src/d/actor/d_a_npc_ks.cpp +++ b/src/d/actor/d_a_npc_ks.cpp @@ -5818,7 +5818,7 @@ static int npc_ks_fsdemo(npc_ks_class* i_this) { switch (i_this->mMode) { case 0: - if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[0x220] & 0xFFFF)) { + if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[0x220])) { i_this->mMode = 40; } else { fpcM_Search(s_fs_sub, i_this); @@ -6628,7 +6628,7 @@ static void kantera_sub(npc_ks_class* i_this) { fopAcM_cancelCarryNow(a_this); cLib_offBit(a_this->attention_info.flags, fopAc_AttnFlag_CARRY_e); i_this->field_0xc17 = 0; - dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[0xE2] & 0xFFFF); + dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[0xE2]); } else { i_this->field_0xc04.x = -30715.0f + AREG_F(8); i_this->field_0xc04.z = -17200.0f + AREG_F(9); @@ -7260,7 +7260,7 @@ static BOOL start_check(npc_ks_class* i_this) { break; case 21: - if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[0x20A] & 0xFFFF)) { + if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[0x20A])) { rv = FALSE; } else { i_this->mActionID = 301; @@ -7268,7 +7268,7 @@ static BOOL start_check(npc_ks_class* i_this) { break; case 22: - if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[0x241] & 0xFFFF)) { + if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[0x241])) { rv = FALSE; } else { i_this->mActionID = 302; diff --git a/src/d/actor/d_a_obj_ihasi.cpp b/src/d/actor/d_a_obj_ihasi.cpp index ff853ce7822..a3f6eb0b3fa 100644 --- a/src/d/actor/d_a_obj_ihasi.cpp +++ b/src/d/actor/d_a_obj_ihasi.cpp @@ -83,7 +83,7 @@ static int daObj_Ihasi_Execute(obj_ihasi_class* i_this) { dComIfG_Bgsp().Release(i_this->mpBgW); i_this->mpBgW = NULL; /* dSv_event_flag_c::M_050 - Main Event - Eldin Bridge disappears */ - dComIfGs_onEventBit((u16)dSv_event_flag_c::saveBitLabels[0x53]); + dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[0x53]); } action(i_this); @@ -162,7 +162,7 @@ static int daObj_Ihasi_Create(fopAc_ac_c* i_actor) { csXyz angle; /* dSv_event_flag_c::M_050 - Main Event - Eldin Bridge disappears */ - if (dComIfGs_isEventBit((u16)dSv_event_flag_c::saveBitLabels[0x53])) { + if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[0x53])) { angle.set(0x0, -0x8000, 0x0); pos.set(34750.0f, -300.0f, -44000.0f); diff --git a/src/d/actor/d_a_obj_kamakiri.cpp b/src/d/actor/d_a_obj_kamakiri.cpp index 386514e0e50..10059140250 100644 --- a/src/d/actor/d_a_obj_kamakiri.cpp +++ b/src/d/actor/d_a_obj_kamakiri.cpp @@ -734,9 +734,9 @@ u8 daObjKAM_c::CreateChk() { if (field_0x9c0 != 2) { if (unkInt1 != 0) { if (!dComIfGs_isEventBit( - (u16)dSv_event_flag_c::saveBitLabels[l_musiya_num[SEX_MALE]]) || + dSv_event_flag_c::saveBitLabels[l_musiya_num[SEX_MALE]]) || !dComIfGs_isEventBit( - (u16)dSv_event_flag_c::saveBitLabels[l_musiya_num[SEX_FEMALE]])) + dSv_event_flag_c::saveBitLabels[l_musiya_num[SEX_FEMALE]])) { return 0; } @@ -750,10 +750,10 @@ u8 daObjKAM_c::CreateChk() { if (mSex == SEX_MALE && !dComIfGs_isEventBit( - (u16)dSv_event_flag_c::saveBitLabels[l_musiya_num[mSex]]) || + dSv_event_flag_c::saveBitLabels[l_musiya_num[mSex]]) || mSex == SEX_FEMALE && !dComIfGs_isEventBit( - (u16)dSv_event_flag_c::saveBitLabels[l_musiya_num[mSex]])) + dSv_event_flag_c::saveBitLabels[l_musiya_num[mSex]])) { return 0; } diff --git a/src/d/actor/d_a_obj_katatsumuri.cpp b/src/d/actor/d_a_obj_katatsumuri.cpp index 54d03d073cb..09b05d6be58 100644 --- a/src/d/actor/d_a_obj_katatsumuri.cpp +++ b/src/d/actor/d_a_obj_katatsumuri.cpp @@ -665,10 +665,10 @@ bool daObjKAT_c::CreateChk() { } if (field_0x808 != 2) { if (uVar4) { - if (dComIfGs_isEventBit((u16)dSv_event_flag_c::saveBitLabels[l_musiya_num[SEX_MALE]]) == + if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[l_musiya_num[SEX_MALE]]) == 0 || dComIfGs_isEventBit( - (u16)dSv_event_flag_c::saveBitLabels[l_musiya_num[SEX_FEMALE]]) == 0) + dSv_event_flag_c::saveBitLabels[l_musiya_num[SEX_FEMALE]]) == 0) { return false; } @@ -681,10 +681,10 @@ bool daObjKAT_c::CreateChk() { } if ((mSex == SEX_MALE && dComIfGs_isEventBit( - (u16)dSv_event_flag_c::saveBitLabels[l_musiya_num[mSex]]) == 0) || + dSv_event_flag_c::saveBitLabels[l_musiya_num[mSex]]) == 0) || (mSex == SEX_FEMALE && dComIfGs_isEventBit( - (u16)dSv_event_flag_c::saveBitLabels[l_musiya_num[mSex]]) == 0)) + dSv_event_flag_c::saveBitLabels[l_musiya_num[mSex]]) == 0)) { return false; } diff --git a/src/d/actor/d_a_obj_volcbom.cpp b/src/d/actor/d_a_obj_volcbom.cpp index 78bdcb22d7c..6280b5a703e 100644 --- a/src/d/actor/d_a_obj_volcbom.cpp +++ b/src/d/actor/d_a_obj_volcbom.cpp @@ -592,7 +592,7 @@ void daObjVolcBom_c::actionWait() { if (checkTalkDistance() /* dSv_event_flag_c::M_051 - Main Event - Shadow Kargorok (?) (Large) event complete (Horse grass appears in various places) */ - && dComIfGs_isEventBit((u16)dSv_event_flag_c::saveBitLabels[84])) { + && dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[84])) { setAction(ACTION_ORDER_EVENT); actionOrderEvent(); } diff --git a/src/d/actor/d_a_scene_exit.cpp b/src/d/actor/d_a_scene_exit.cpp index 9ed25bd34cd..d220a3a512b 100644 --- a/src/d/actor/d_a_scene_exit.cpp +++ b/src/d/actor/d_a_scene_exit.cpp @@ -22,12 +22,12 @@ int daScex_c::checkWork() { } u16 eventBit = getOffEventBit(); - if (eventBit != 0x0FFF && dComIfGs_isEventBit((u16)dSv_event_flag_c::saveBitLabels[eventBit])) { + if (eventBit != 0x0FFF && dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[eventBit])) { return 0; } eventBit = getOnEventBit(); - if (eventBit != 0x0FFF && !dComIfGs_isEventBit((u16)dSv_event_flag_c::saveBitLabels[eventBit])) { + if (eventBit != 0x0FFF && !dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[eventBit])) { return 0; } diff --git a/src/d/d_kankyo.cpp b/src/d/d_kankyo.cpp index c2e8e80534e..ac96a6f3df8 100644 --- a/src/d/d_kankyo.cpp +++ b/src/d/d_kankyo.cpp @@ -8669,8 +8669,8 @@ static int dKy_Create(void* i_this) { #if DEBUG if (strcmp(dComIfGp_getStartStageName(), "T_SASA0") == 0) { - dComIfGs_onEventBit((u16)dSv_event_flag_c::saveBitLabels[142]); - dComIfGs_onEventBit((u16)dSv_event_flag_c::saveBitLabels[167]); + dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[142]); + dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[167]); } #endif diff --git a/src/d/d_menu_fmap2D.cpp b/src/d/d_menu_fmap2D.cpp index 89bf756ad5f..dc5fd5d4f5d 100644 --- a/src/d/d_menu_fmap2D.cpp +++ b/src/d/d_menu_fmap2D.cpp @@ -118,15 +118,10 @@ dMenu_Fmap2DBack_c::dMenu_Fmap2DBack_c() { field_0xfb0 = 0.0; field_0xfb4 = 0.0; field_0xfb8 = 1.0; - mArrowAlpha = 0.0; - mArrowPos3DZ = 0.0; - mArrowPos3DX = 0.0; - field_0x11a8 = 0.0; - field_0x11a4 = 0.0; - field_0x11b0 = 0.0; - field_0x11ac = 0.0; - mArrowPos2DY = 0.0; - mArrowPos2DX = 0.0; + mArrowPos3DX = mArrowPos3DZ = mArrowAlpha = 0.0; + field_0x11a4 = field_0x11a8 = 0.0; + field_0x11ac = field_0x11b0 = 0.0; + mArrowPos2DX = mArrowPos2DY = 0.0; mSpotTextureFadeAlpha = 0.0; field_0x11dc = 0.0; field_0x11e0 = 360.0; @@ -146,7 +141,12 @@ dMenu_Fmap2DBack_c::dMenu_Fmap2DBack_c() { field_0x1210 = 1.0; field_0x1214 = 1.0; mArrowDrawFlag = true; + +#if DEBUG + mAllPathShowFlag = g_fmapHIO.mDisplayAllPaths; +#else mAllPathShowFlag = false; +#endif initiate(dComIfGp_getFmapResArchive()); @@ -168,8 +168,8 @@ dMenu_Fmap2DBack_c::dMenu_Fmap2DBack_c() { dPaneClass_showNullPane(mpBaseScreen); - mpBaseAnm = static_cast(J2DAnmLoaderDataBase::load( - JKRGetNameResource("zelda_map_screen_base.btk", dComIfGp_getFmapResArchive()))); + void* r = JKRGetNameResource("zelda_map_screen_base.btk", dComIfGp_getFmapResArchive()); + mpBaseAnm = (J2DAnmTextureSRTKey*)J2DAnmLoaderDataBase::load(r); mpBaseAnm->searchUpdateMaterialID(mpBaseScreen); mAnmFrame = 0.0; @@ -197,9 +197,9 @@ dMenu_Fmap2DBack_c::dMenu_Fmap2DBack_c() { mpPointScreen = new J2DScreen(); JUT_ASSERT(293, mpPointScreen != NULL); - fg = mpPointScreen->setPriority("zelda_field_map_point_cursor.blo", 0x20000, + mpPointScreen->setPriority("zelda_field_map_point_cursor.blo", 0x20000, dComIfGp_getFmapResArchive()); - JUT_ASSERT(252, fg != false); + JUT_ASSERT(297, fg != false); dPaneClass_showNullPane(mpPointScreen); @@ -425,7 +425,7 @@ void dMenu_Fmap2DBack_c::draw() { mDoGph_gInf_c::getHeightF(), false, false, false); } -void dMenu_Fmap2DBack_c::setRegionTexData(u8 i_regionNo, ResTIMG* i_timg, f32 i_originX, +void dMenu_Fmap2DBack_c::setRegionTexData(u8 i_areaType, ResTIMG* i_timg, f32 i_originX, f32 i_originZ, f32 i_posX, f32 i_posZ, f32 i_scale, f32 i_scrollMinX, f32 i_scrollMinZ, f32 i_scrollMaxX, f32 i_scrollMaxZ) { @@ -433,34 +433,34 @@ void dMenu_Fmap2DBack_c::setRegionTexData(u8 i_regionNo, ResTIMG* i_timg, f32 i_ i_scale = 100.0f; } - mpAreaTex[i_regionNo] = new J2DPicture(i_timg); - JUT_ASSERT(763, mpAreaTex[i_regionNo] != NULL); + mpAreaTex[i_areaType] = new J2DPicture(i_timg); + JUT_ASSERT(763, mpAreaTex[i_areaType] != NULL); - mRegionOriginX[i_regionNo] = i_originX; - mRegionOriginZ[i_regionNo] = i_originZ; - mRegionTexData[i_regionNo].mScale = i_scale * 100.0f; + mRegionOriginX[i_areaType] = i_originX; + mRegionOriginZ[i_areaType] = i_originZ; + mRegionTexData[i_areaType].mScale = i_scale * 100.0f; f32 width = i_timg->width; f32 height = i_timg->height; - f32 min_x = (mRegionOriginX[i_regionNo] + i_posX) - - ((width * 0.5f) * mRegionTexData[i_regionNo].mScale); - f32 min_z = (mRegionOriginZ[i_regionNo] + i_posZ) - - ((height * 0.5f) * mRegionTexData[i_regionNo].mScale); - f32 max_x = (mRegionOriginX[i_regionNo] + i_posX) + - ((width * 0.5f) * mRegionTexData[i_regionNo].mScale); - f32 max_z = (mRegionOriginZ[i_regionNo] + i_posZ) + - ((height * 0.5f) * mRegionTexData[i_regionNo].mScale); + f32 min_x = (mRegionOriginX[i_areaType] + i_posX) - + ((width * 0.5f) * mRegionTexData[i_areaType].mScale); + f32 min_z = (mRegionOriginZ[i_areaType] + i_posZ) - + ((height * 0.5f) * mRegionTexData[i_areaType].mScale); + f32 max_x = (mRegionOriginX[i_areaType] + i_posX) + + ((width * 0.5f) * mRegionTexData[i_areaType].mScale); + f32 max_z = (mRegionOriginZ[i_areaType] + i_posZ) + + ((height * 0.5f) * mRegionTexData[i_areaType].mScale); - mRegionTexData[i_regionNo].mMinX = min_x; - mRegionTexData[i_regionNo].mMinZ = min_z; - mRegionTexData[i_regionNo].mMaxX = max_x; - mRegionTexData[i_regionNo].mMaxZ = max_z; + mRegionTexData[i_areaType].mMinX = min_x; + mRegionTexData[i_areaType].mMinZ = min_z; + mRegionTexData[i_areaType].mMaxX = max_x; + mRegionTexData[i_areaType].mMaxZ = max_z; - mRegionScrollMinX[i_regionNo] = i_scrollMinX; - mRegionScrollMinZ[i_regionNo] = i_scrollMinZ; - mRegionScrollMaxX[i_regionNo] = i_scrollMaxX; - mRegionScrollMaxZ[i_regionNo] = i_scrollMaxZ; + mRegionScrollMinX[i_areaType] = i_scrollMinX; + mRegionScrollMinZ[i_areaType] = i_scrollMinZ; + mRegionScrollMaxX[i_areaType] = i_scrollMaxX; + mRegionScrollMaxZ[i_areaType] = i_scrollMaxZ; bool first = false; @@ -494,12 +494,78 @@ void dMenu_Fmap2DBack_c::setRegionTexData(u8 i_regionNo, ResTIMG* i_timg, f32 i_ } } if ((!bVar14) && (field_0x1230[i] == 0xff)) { - field_0x1230[i] = i_regionNo; + field_0x1230[i] = i_areaType; bVar14 = true; } } } +void dMenu_Fmap2DBack_c::setRegionTexData(u8 i_areaType, f32 i_originX, f32 i_originZ, f32 i_posX, + f32 i_posZ, f32 i_scale, f32 i_scrollMinX, + f32 i_scrollMinZ, f32 i_scrollMaxX, f32 i_scrollMaxZ) { + if (i_scale == 0.0f) { + i_scale = 100.0f; + } + + mRegionOriginX[i_areaType] = i_originX; + mRegionOriginZ[i_areaType] = i_originZ; + mRegionTexData[i_areaType].mScale = i_scale * 100.0f; + + f32 width = mpAreaTex[i_areaType]->getTexture(0)->getTexInfo()->width; + f32 height = mpAreaTex[i_areaType]->getTexture(0)->getTexInfo()->height; + + f32 min_x = (mRegionOriginX[i_areaType] + i_posX) - + ((width * 0.5f) * mRegionTexData[i_areaType].mScale); + f32 min_z = (mRegionOriginZ[i_areaType] + i_posZ) - + ((height * 0.5f) * mRegionTexData[i_areaType].mScale); + f32 max_x = (mRegionOriginX[i_areaType] + i_posX) + + ((width * 0.5f) * mRegionTexData[i_areaType].mScale); + f32 max_z = (mRegionOriginZ[i_areaType] + i_posZ) + + ((height * 0.5f) * mRegionTexData[i_areaType].mScale); + + mRegionTexData[i_areaType].mMinX = min_x; + mRegionTexData[i_areaType].mMinZ = min_z; + mRegionTexData[i_areaType].mMaxX = max_x; + mRegionTexData[i_areaType].mMaxZ = max_z; + + mRegionScrollMinX[i_areaType] = i_scrollMinX; + mRegionScrollMinZ[i_areaType] = i_scrollMinZ; + mRegionScrollMaxX[i_areaType] = i_scrollMaxX; + mRegionScrollMaxZ[i_areaType] = i_scrollMaxZ; + + bool first = false; + + mTexMinX = 0.0f; + mTexMinZ = 0.0f; + mTexMaxX = 0.0f; + mTexMaxZ = 0.0f; + + for (int i = 0; i < 8; i++) { + if (mpAreaTex[i] != NULL) { + if (!first) { + mTexMinX = mRegionTexData[i].mMinX; + mTexMinZ = mRegionTexData[i].mMinZ; + mTexMaxX = mRegionTexData[i].mMaxX; + mTexMaxZ = mRegionTexData[i].mMaxZ; + first = true; + } else { + if (mTexMinX > mRegionTexData[i].mMinX) { + mTexMinX = mRegionTexData[i].mMinX; + } + if (mTexMinZ > mRegionTexData[i].mMinZ) { + mTexMinZ = mRegionTexData[i].mMinZ; + } + if (mTexMaxX < mRegionTexData[i].mMaxX) { + mTexMaxX = mRegionTexData[i].mMaxX; + } + if (mTexMaxZ < mRegionTexData[i].mMaxZ) { + mTexMaxZ = mRegionTexData[i].mMaxZ; + } + } + } + } +} + void dMenu_Fmap2DBack_c::calcAllMapPos() { bool set = false; calcAllMapScaleRate(); @@ -533,21 +599,24 @@ void dMenu_Fmap2DBack_c::calcAllMapPos() { f32 dMenu_Fmap2DBack_c::calcAllMapScaleRate() { f32 width = mTexMaxX - mTexMinX; f32 height = mTexMaxZ - mTexMinZ; - f32 size = width; - if (width < height) { + if (size < height) { size = height; } - - mAllMapScaleRate = getMapAreaSizeX() / size; + f32 v = getMapAreaSizeX(); + mAllMapScaleRate = v / size; return mAllMapScaleRate; } void dMenu_Fmap2DBack_c::calcAllMapPos2DFirst(f32 i_texPosX, f32 i_texPosZ, f32* o_posX, f32* o_posY) { - f32 pos_x = (mAllMapScaleRate * (i_texPosX - (mTexMaxX + mTexMinX) * 0.5f)); - f32 pos_y = (mAllMapScaleRate * (i_texPosZ - (mTexMaxZ + mTexMinZ) * 0.5f)); + f32 midTexX = (mTexMaxX + mTexMinX) * 0.5f; + f32 midTexZ = (mTexMaxZ + mTexMinZ) * 0.5f; + f32 relativePosX = i_texPosX - midTexX; + f32 relativePosZ = i_texPosZ - midTexZ; + f32 pos_x = (mAllMapScaleRate * relativePosX); + f32 pos_y = (mAllMapScaleRate * relativePosZ); *o_posX = pos_x + getMapAreaGlobalCenterPosX(); *o_posY = pos_y + getMapAreaGlobalCenterPosY(); @@ -566,36 +635,39 @@ void dMenu_Fmap2DBack_c::calcAllMapPos2D(char const* param_0, f32 param_1, f32 p field_0xf2c[mRegionCursor], mZoom); } -void dMenu_Fmap2DBack_c::calcAllMapPos2D(f32 param_0, f32 param_1, f32* param_2, f32* param_3, +void dMenu_Fmap2DBack_c::calcAllMapPos2D(f32 param_0, f32 param_1, f32* outX, f32* outZ, f32 param_4, f32 param_5, f32 i_zoom) { - getMapAreaSizeX(); - getMapAreaSizeY(); + f32 unusedX = (mTexMaxX - mTexMinX) / getMapAreaSizeX(); + f32 unusedY = (mTexMaxZ - mTexMinZ) / getMapAreaSizeY(); + f32 unusedMax = unusedX; + if (unusedX < unusedY) { + unusedMax = unusedY; + } + f32 regionMidX = (mRegionTexData[mRegionCursor].mMinX + mRegionTexData[mRegionCursor].mMaxX) * 0.5f; + f32 regionMidY = (mRegionTexData[mRegionCursor].mMinZ + mRegionTexData[mRegionCursor].mMaxZ) * 0.5f; + f32 f25 = mRegionMinMapX[mRegionCursor] + param_4 + (mRegionMapSizeX[mRegionCursor] * i_zoom) * 0.5f; + f32 f24 = mRegionMinMapY[mRegionCursor] + param_5 + (mRegionMapSizeY[mRegionCursor] * i_zoom) * 0.5f; - f32 tmp1 = (mRegionTexData[mRegionCursor].mMinX + mRegionTexData[mRegionCursor].mMaxX) * 0.5f; - f32 tmp2 = (mRegionTexData[mRegionCursor].mMinZ + mRegionTexData[mRegionCursor].mMaxZ) * 0.5f; - f32 tmp3 = mRegionMinMapX[mRegionCursor] + param_4 + (mRegionMapSizeX[mRegionCursor] * i_zoom) * 0.5f; - f32 tmp4 = mRegionMinMapY[mRegionCursor] + param_5 + (mRegionMapSizeY[mRegionCursor] * i_zoom) * 0.5f; - - f32 scaleRatio = (getPathScale(i_zoom) / getMapScissorAreaSizeRealY()); - - f32 tmp5 = (param_0 - tmp1) / scaleRatio; - *param_2 = tmp5 + tmp3; - tmp5 = (param_1 - tmp2) / scaleRatio; - *param_3 = tmp5 + tmp4; + f32 scale = getPathScale(i_zoom) / getMapScissorAreaSizeRealY(); + f32 offsX = (param_0 - regionMidX) / scale; + f32 offsY = (param_1 - regionMidY) / scale; + *outX = offsX + f25; + *outZ = offsY + f24; } -void dMenu_Fmap2DBack_c::calcAllMapPosWorld(f32 param_0, f32 param_1, f32* param_2, f32* param_3) { - f32 tmp1 = (mRegionTexData[mRegionCursor].mMinX + mRegionTexData[mRegionCursor].mMaxX) * 0.5f; - f32 tmp2 = (mRegionTexData[mRegionCursor].mMinZ + mRegionTexData[mRegionCursor].mMaxZ) * 0.5f; - f32 tmp3 = (param_0 - ((mRegionMinMapX[mRegionCursor] + field_0xf0c[mRegionCursor]) + - mRegionMapSizeX[mRegionCursor] * mZoom * 0.5f)); - f32 tmp4 = (param_1 - ((mRegionMinMapY[mRegionCursor] + field_0xf2c[mRegionCursor]) + - mRegionMapSizeY[mRegionCursor] * mZoom * 0.5f)); - +void dMenu_Fmap2DBack_c::calcAllMapPosWorld(f32 param_0, f32 param_1, f32* outX, f32* outZ) { + f32 midX = (mRegionTexData[mRegionCursor].mMinX + mRegionTexData[mRegionCursor].mMaxX) * 0.5f; + f32 midY = (mRegionTexData[mRegionCursor].mMinZ + mRegionTexData[mRegionCursor].mMaxZ) * 0.5f; + f32 tmp3 = (mRegionMinMapX[mRegionCursor] + field_0xf0c[mRegionCursor]) + + mRegionMapSizeX[mRegionCursor] * mZoom * 0.5f; + f32 tmp4 = (mRegionMinMapY[mRegionCursor] + field_0xf2c[mRegionCursor]) + + mRegionMapSizeY[mRegionCursor] * mZoom * 0.5f; + f32 tmp3_ = param_0 - tmp3; + f32 tmp4_ = param_1 - tmp4; f32 tmp5 = field_0xf98 / getMapScissorAreaSizeRealY(); - *param_2 = tmp1 + (tmp3 * tmp5); - *param_3 = tmp2 + (tmp4 * tmp5); + *outX = midX + (tmp3_ * tmp5); + *outZ = midY + (tmp4_ * tmp5); } void dMenu_Fmap2DBack_c::setSpotPane(ResTIMG* i_timg) { @@ -624,27 +696,28 @@ void dMenu_Fmap2DBack_c::zoomMapCalc(f32 i_zoom) { if (g_fmapHIO.field_0x308 == false) { f32 region_centerX = mRegionMinMapX[mRegionCursor] + (mRegionMapSizeX[mRegionCursor] * 0.5f); f32 region_centerY = mRegionMinMapY[mRegionCursor] + (mRegionMapSizeY[mRegionCursor] * 0.5f); - field_0xf0c[mRegionCursor] = region_centerX + (i_zoom * (centerX - region_centerX)) - - (mRegionMapSizeX[mRegionCursor] * mZoom * 0.5f) - - mRegionMinMapX[mRegionCursor]; - field_0xf2c[mRegionCursor] = region_centerY + (i_zoom * (centerY - region_centerY)) - - (mRegionMapSizeY[mRegionCursor] * mZoom * 0.5f) - - mRegionMinMapY[mRegionCursor]; + f32 v = region_centerX + (i_zoom * (centerX - region_centerX)); + f32 v2 = region_centerY + (i_zoom * (centerY - region_centerY)); + field_0xf0c[mRegionCursor] = + v - (mRegionMapSizeX[mRegionCursor] * mZoom * 0.5f) - mRegionMinMapX[mRegionCursor]; + field_0xf2c[mRegionCursor] = + v2 - (mRegionMapSizeY[mRegionCursor] * mZoom * 0.5f) - mRegionMinMapY[mRegionCursor]; } else { f32 dVar12 = (mRegionScrollMapMinX[mRegionCursor] + mRegionScrollMapMaxX[mRegionCursor]) * 0.5f; f32 dVar11 = (mRegionScrollMapMinY[mRegionCursor] + mRegionScrollMapMaxY[mRegionCursor]) * 0.5f; - f32 tmp = (mRegionMinMapY[mRegionCursor] + (mRegionMapSizeY[mRegionCursor] * 0.5f)) - dVar11; + f32 tmp3 = (mRegionMinMapX[mRegionCursor] + mRegionMapSizeX[mRegionCursor] * 0.5f) - dVar12; + f32 tmp = (mRegionMinMapY[mRegionCursor] + mRegionMapSizeY[mRegionCursor] * 0.5f) - dVar11; f32 tmp2 = (dVar12 + (i_zoom * (centerX - dVar12))); - f32 tmp3 = (((mRegionMinMapX[mRegionCursor] + mRegionMapSizeX[mRegionCursor] * 0.5f) - dVar12)); + f32 tmp2_ = (dVar11 + (i_zoom * (centerY - dVar11))); + field_0xf0c[mRegionCursor] = - (((tmp2 + (tmp3 * mZoom))) - mRegionMapSizeX[mRegionCursor] * mZoom * 0.5f) - + ((tmp2 + (tmp3 * mZoom)) - mRegionMapSizeX[mRegionCursor] * mZoom * 0.5f) - mRegionMinMapX[mRegionCursor]; field_0xf2c[mRegionCursor] = - (((dVar11 + (i_zoom * (centerY - dVar11))) + tmp * mZoom) - - mRegionMapSizeY[mRegionCursor] * mZoom * 0.5f) - + ((tmp2_ + tmp * mZoom) - mRegionMapSizeY[mRegionCursor] * mZoom * 0.5f) - mRegionMinMapY[mRegionCursor]; } @@ -718,11 +791,11 @@ void dMenu_Fmap2DBack_c::zoomMapCalc2(f32 param_0) { field_0xf2c[mRegionCursor] = (centerY - (mRegionMapSizeY[mRegionCursor] * mZoom * 0.5f)) - mRegionMinMapY[mRegionCursor]; } else { - f32 tmp1 = (mRegionMinMapY[mRegionCursor] + (mRegionMapSizeY[mRegionCursor] * 0.5f)) - - ((mRegionScrollMapMinY[mRegionCursor] + mRegionScrollMapMaxY[mRegionCursor]) * 0.5f); + f32 x = (mRegionScrollMapMinX[mRegionCursor] + mRegionScrollMapMaxX[mRegionCursor]) * 0.5f; + f32 y = (mRegionScrollMapMinY[mRegionCursor] + mRegionScrollMapMaxY[mRegionCursor]) * 0.5f; - f32 tmp2 = ((mRegionMinMapX[mRegionCursor] + mRegionMapSizeX[mRegionCursor] * 0.5f) - - (mRegionScrollMapMinX[mRegionCursor] + mRegionScrollMapMaxX[mRegionCursor]) * 0.5f); + f32 tmp2 = (mRegionMinMapX[mRegionCursor] + (mRegionMapSizeX[mRegionCursor] * 0.5f)) - x; + f32 tmp1 = (mRegionMinMapY[mRegionCursor] + (mRegionMapSizeY[mRegionCursor] * 0.5f)) - y; field_0xf0c[mRegionCursor] = ((centerX + (tmp2 * mZoom)) - mRegionMapSizeX[mRegionCursor] * mZoom * 0.5f) - @@ -770,11 +843,15 @@ void dMenu_Fmap2DBack_c::zoomMapCalcHIO() { (centerY - (mRegionMapSizeY[mRegionCursor] * mZoom * 0.5f)) - mRegionMinMapY[mRegionCursor]; } else { - f32 tmp1 = (mRegionMinMapY[mRegionCursor] + (mRegionMapSizeY[mRegionCursor] * 0.5f)) - - ((mRegionScrollMapMinY[mRegionCursor] + mRegionScrollMapMaxY[mRegionCursor]) * 0.5f); + f32 x = + (mRegionScrollMapMinX[mRegionCursor] + mRegionScrollMapMaxX[mRegionCursor]) * 0.5f; + f32 y = + (mRegionScrollMapMinY[mRegionCursor] + mRegionScrollMapMaxY[mRegionCursor]) * 0.5f; - f32 tmp2 = ((mRegionMinMapX[mRegionCursor] + mRegionMapSizeX[mRegionCursor] * 0.5f) - - (mRegionScrollMapMinX[mRegionCursor] + mRegionScrollMapMaxX[mRegionCursor]) * 0.5f); + f32 tmp2 = + ((mRegionMinMapX[mRegionCursor] + mRegionMapSizeX[mRegionCursor] * 0.5f) - x); + f32 tmp1 = + ((mRegionMinMapY[mRegionCursor] + mRegionMapSizeY[mRegionCursor] * 0.5f) - y); field_0xf0c[mRegionCursor] = ((centerX + (tmp2 * mZoom)) - mRegionMapSizeX[mRegionCursor] * mZoom * 0.5f) - @@ -800,20 +877,21 @@ void dMenu_Fmap2DBack_c::zoomMapCalcHIO() { } void dMenu_Fmap2DBack_c::scrollCalc(f32 param_0) { - f32 tmp1, tmp2; - calcAllMapPos2D(mArrowPos3DX + control_xpos, mArrowPos3DZ + control_ypos, &tmp1, &tmp2, + f32 sp40, sp3C; + calcAllMapPos2D(mArrowPos3DX + control_xpos, mArrowPos3DZ + control_ypos, &sp40, &sp3C, field_0xf4c[mRegionCursor], field_0xf6c[mRegionCursor], getRegionMapZoomRate(mRegionCursor)); - f32 centerX = getMapAreaGlobalCenterPosX(); - f32 centerY = getMapAreaGlobalCenterPosY(); + f32 sp38 = getMapAreaGlobalCenterPosX(); + f32 sp34 = getMapAreaGlobalCenterPosY(); - f32 tmp3, tmp4; - calcAllMapPosWorld(tmp1 + (param_0 * (centerX - tmp1)), tmp2 + (param_0 * (centerY - tmp2)), - &tmp3, &tmp4); + f32 sp30 = sp40 + (param_0 * (sp38 - sp40)); + f32 sp2C = sp3C + (param_0 * (sp34 - sp3C)); + f32 sp28, sp24; + calcAllMapPosWorld(sp30, sp2C, &sp28, &sp24); - mStageTransX = (mArrowPos3DX + control_xpos) - tmp3; - mStageTransZ = (mArrowPos3DZ + control_ypos) - tmp4; + mStageTransX = (mArrowPos3DX + control_xpos) - sp28; + mStageTransZ = (mArrowPos3DZ + control_ypos) - sp24; field_0x11ac = mStageTransX; field_0x11b0 = mStageTransZ; @@ -835,23 +913,22 @@ void dMenu_Fmap2DBack_c::scrollCalc(f32 param_0) { } calcAllMapPos2D(mArrowPos3DX + control_xpos + local_44, - mArrowPos3DZ + control_ypos + local_48, &tmp1, &tmp2, + mArrowPos3DZ + control_ypos + local_48, &sp40, &sp3C, field_0xf4c[mRegionCursor], field_0xf6c[mRegionCursor], getRegionMapZoomRate(mRegionCursor)); - f32 local_54, local_58; - calcAllMapPosWorld(tmp1 + (param_0 * (centerX - tmp1)), tmp2 + (param_0 * (centerY - tmp2)), - &local_54, &local_58); + f32 sp14 = sp40 + (param_0 * (sp38 - sp40)); + f32 sp10 = sp3C + (param_0 * (sp34 - sp3C)); + f32 spC, sp8; + calcAllMapPosWorld(sp14, sp10, &spC, &sp8); - field_0x11ac = (mArrowPos3DX + control_xpos + local_44) - local_54; - field_0x11b0 = (mArrowPos3DZ + control_ypos + local_48) - local_58; + field_0x11ac = (mArrowPos3DX + control_xpos + local_44) - spC; + field_0x11b0 = (mArrowPos3DZ + control_ypos + local_48) - sp8; } if (param_0 == 0.0f) { - field_0xfd4 = 0.0f; - field_0xfd0 = 0.0f; - field_0xfdc = 0.0f; - field_0xfd8 = 0.0f; + field_0xfd0 = field_0xfd4 = 0.0f; + field_0xfd8 = field_0xfdc = 0.0f; } else if (param_0 == 1.0f) { field_0xfd0 = mStageTransX; field_0xfd4 = mStageTransZ; @@ -861,9 +938,9 @@ void dMenu_Fmap2DBack_c::scrollCalc(f32 param_0) { } void dMenu_Fmap2DBack_c::mapBlink(s16* param_0) { - *param_0 += 1; + *param_0 += (s16)1; if (*param_0 >= 30) { - *param_0 -= 30; + *param_0 -= (s16)30; } } @@ -876,70 +953,73 @@ void dMenu_Fmap2DBack_c::setSpotCursor(u8 param_0) { } void dMenu_Fmap2DBack_c::allmap_move2(STControl* param_0) { - f32 tmp1, tmp2; - calcAllMapPosWorld(getMapScissorAreaLX(), getMapScissorAreaLY(), &tmp1, &tmp2); + f32 sp48, sp44; + calcAllMapPosWorld(getMapScissorAreaLX(), getMapScissorAreaLY(), &sp48, &sp44); - f32 local_50, local_54; + f32 sp40, sp3C; calcAllMapPosWorld(getMapScissorAreaLX() + getMapScissorAreaSizeRealX(), - getMapScissorAreaLY() + getMapScissorAreaSizeRealY(), &local_50, &local_54); + getMapScissorAreaLY() + getMapScissorAreaSizeRealY(), &sp40, &sp3C); + int r26 = 0; + if (r26 == 0) { + f32 spC = g_fmapHIO.mScrollSpeedSlowBound < g_fmapHIO.mScrollSpeedFastBound ? + g_fmapHIO.mScrollSpeedSlowBound : + g_fmapHIO.mScrollSpeedFastBound; + f32 sp8 = g_fmapHIO.mScrollSpeedSlowBound > g_fmapHIO.mScrollSpeedFastBound ? + g_fmapHIO.mScrollSpeedSlowBound : + g_fmapHIO.mScrollSpeedFastBound; - f32 scrollSpeed1 = g_fmapHIO.mScrollSpeedSlowBound < g_fmapHIO.mScrollSpeedFastBound ? - g_fmapHIO.mScrollSpeedSlowBound : - g_fmapHIO.mScrollSpeedFastBound; - f32 scrollSpeed2 = g_fmapHIO.mScrollSpeedSlowBound > g_fmapHIO.mScrollSpeedFastBound ? - g_fmapHIO.mScrollSpeedSlowBound : - g_fmapHIO.mScrollSpeedFastBound; + f32 stickValue = param_0->getValueStick(); + if (stickValue >= spC) { + s16 angle = param_0->getAngleStick(); + f32 local_68 = (mTexMaxX - mTexMinX); + f32 zoomRate = local_68 / getAllMapZoomRate(); + f32 sp24; + if (stickValue < sp8) { + sp24 = g_fmapHIO.mScrollSpeedWorldSlow; + } else { + sp24 = g_fmapHIO.mScrollSpeedWorldFast; + } - f32 stickValue = param_0->getValueStick(); - if (stickValue >= scrollSpeed1) { - s16 angle = param_0->getAngleStick(); - f32 local_68 = (mTexMaxX - mTexMinX); - f32 zoomRate = local_68 / getAllMapZoomRate(); + f32 speed = (sp24 / 100.0f) * zoomRate; + f32 delta_y = speed * cM_ssin(angle); + f32 delta_x = speed * cM_scos(angle); - f32 speed = ((stickValue < scrollSpeed2 ? g_fmapHIO.mScrollSpeedWorldSlow : - g_fmapHIO.mScrollSpeedWorldFast) / - 100.0f); - - f32 delta_y = (speed * zoomRate) * cM_ssin(angle); - f32 delta_x = (speed * zoomRate) * cM_scos(angle); - - control_xpos = control_xpos + delta_y; - control_ypos = control_ypos + delta_x; + control_xpos = control_xpos + delta_y; + control_ypos = control_ypos + delta_x; + } + } + if (mArrowPos3DX + control_xpos < sp48) { + control_xpos = sp48 - mArrowPos3DX; } - if (mArrowPos3DX + control_xpos < tmp1) { - control_xpos = tmp1 - mArrowPos3DX; + if (mArrowPos3DX + control_xpos > sp40) { + control_xpos = sp40 - mArrowPos3DX; } - if (mArrowPos3DX + control_xpos > local_50) { - control_xpos = local_50 - mArrowPos3DX; + if (mArrowPos3DZ + control_ypos < sp44) { + control_ypos = sp44 - mArrowPos3DZ; } - if (mArrowPos3DZ + control_ypos < tmp2) { - control_ypos = tmp2 - mArrowPos3DZ; - } - - if (mArrowPos3DZ + control_ypos > local_54) { - control_ypos = local_54 - mArrowPos3DZ; + if (mArrowPos3DZ + control_ypos > sp3C) { + control_ypos = sp3C - mArrowPos3DZ; } calcRenderingScale(); calcRenderingPos(); calcAllMapPos(); - f32 local_7c, local_80; + f32 sp14, sp10; calcAllMapPos2D((mArrowPos3DX + control_xpos) - mStageTransX, - (mArrowPos3DZ + control_ypos) - mStageTransZ, &local_7c, &local_80); + (mArrowPos3DZ + control_ypos) - mStageTransZ, &sp14, &sp10); mSelectRegion = 0xff; for (int i = 7; i >= 0; i--) { int val = field_0x1230[i]; if (val != 0xff && val != 7) { - const ResTIMG* timg = mpAreaTex[val]->getTexture(0)->getTexInfo(); - bool pixel = dMeter2Info_getPixel( - local_7c, local_80, (mRegionMinMapX[val] + field_0xf0c[val] + mTransX), - (mRegionMinMapY[val] + field_0xf2c[val] + mTransZ), - (mRegionMapSizeX[val] * mZoom), (mRegionMapSizeY[val] * mZoom), timg); + u8 pixel = dMeter2Info_getPixel( + sp14, sp10, (mRegionMinMapX[val] + field_0xf0c[val] + mTransX), + (mRegionMinMapY[val] + field_0xf2c[val] + mTransZ), (mRegionMapSizeX[val] * mZoom), + (mRegionMapSizeY[val] * mZoom), mpAreaTex[val]->getTexture(0)->getTexInfo()); if (pixel) { mSelectRegion = val; } @@ -953,39 +1033,41 @@ void dMenu_Fmap2DBack_c::setIcon2DPos(u8 param_0, f32 param_1, f32 param_2, f32 bool param_5) { f32 local_68, local_6c; - f32 local_70 = mMapZoomRate; + f32 sp30 = mMapZoomRate; u8 uVar9 = 1; if (param_0 == 17) { uVar9 = 2; - f32 local_74, local_78; - calcAllMapPosWorld(getMapScissorAreaCenterPosX(), getMapScissorAreaCenterPosY(), &local_74, - &local_78); + f32 dVar11 = 0.0f; + f32 dVar10 = 0.0f; + f32 sp2C, sp28; + calcAllMapPosWorld(getMapScissorAreaCenterPosX(), getMapScissorAreaCenterPosY(), &sp2C, + &sp28); - f32 local_7c, local_80; - calcAllMapPos2D(local_74 + mStageTransX, local_78 + mStageTransZ, &local_7c, &local_80); + f32 sp24, sp20; + calcAllMapPos2D(sp2C + mStageTransX, sp28 + mStageTransZ, &sp24, &sp20); - f32 dVar11 = getMapScissorAreaCenterPosX() - local_7c; - f32 dVar10 = getMapScissorAreaCenterPosY() - local_80; + dVar11 = getMapScissorAreaCenterPosX() - sp24; + dVar10 = getMapScissorAreaCenterPosY() - sp20; if (mRegionCursor + 1 == dComIfGp_getNowLevel()) { calcAllMapPos2D(param_1 - mStageTransX, param_2 - mStageTransZ, &local_68, &local_6c); - f32 tmp1 = (dVar10 + (mRegionMinMapY[mRegionCursor] + field_0xf2c[mRegionCursor])) + - ((mRegionMapSizeY[mRegionCursor] * mZoom) / 2.0f); f32 tmp2 = (dVar11 + (mRegionMinMapX[mRegionCursor] + field_0xf0c[mRegionCursor])) + ((mRegionMapSizeX[mRegionCursor] * mZoom) / 2.0f); + f32 tmp1 = (dVar10 + (mRegionMinMapY[mRegionCursor] + field_0xf2c[mRegionCursor])) + + ((mRegionMapSizeY[mRegionCursor] * mZoom) / 2.0f); field_0x11e8 = local_68 - tmp2; field_0x11ec = local_6c - tmp1; } else { - f32 tmp1 = (dVar11 + (mRegionScrollMapMaxY[dComIfGp_getNowLevel() + 7] + - mRegionMapSizeY[dComIfGp_getNowLevel() + 7])) + - ((mRegionMinMapY[dComIfGp_getNowLevel() + 7] * mZoom) / 2.0f); - f32 tmp2 = (dVar10 + (mRegionMinMapX[dComIfGp_getNowLevel() + 7] + - field_0xf0c[dComIfGp_getNowLevel() + 7])) + - ((mRegionMapSizeX[dComIfGp_getNowLevel() + 7] * mZoom) / 2.0f); - local_68 = tmp1 + (field_0x11e8 * mZoom); - local_6c = tmp2 + (field_0x11ec * mZoom); + f32 tmp2 = (dVar11 + (mRegionMinMapX[dComIfGp_getNowLevel() - 1] + + field_0xf0c[dComIfGp_getNowLevel() - 1])) + + ((mRegionMapSizeX[dComIfGp_getNowLevel() - 1] * mZoom) / 2.0f); + f32 tmp1 = (dVar10 + (mRegionMinMapY[dComIfGp_getNowLevel() - 1] + + field_0xf2c[dComIfGp_getNowLevel() - 1])) + + ((mRegionMapSizeY[dComIfGp_getNowLevel() - 1] * mZoom) / 2.0f); + local_68 = tmp2 + (field_0x11e8 * mZoom); + local_6c = tmp1 + (field_0x11ec * mZoom); } } else { calcAllMapPos2D(param_1 - mStageTransX, param_2 - mStageTransZ, &local_68, &local_6c); @@ -993,14 +1075,14 @@ void dMenu_Fmap2DBack_c::setIcon2DPos(u8 param_0, f32 param_1, f32 param_2, f32 if (!param_5) { if (param_0 == 1) { - local_70 = (mMapZoomRate * 0.5f) + 0.5f; + sp30 = (mMapZoomRate * 0.5f) + 0.5f; uVar9 = 2; } if (param_4 != 0) { uVar9 = 3; } - setIconInfo(param_0, local_68, local_6c, 1.0f, param_3, local_70, uVar9); + setIconInfo(param_0, local_68, local_6c, 1.0f, param_3, sp30, uVar9); } } @@ -1088,8 +1170,8 @@ f32 dMenu_Fmap2DBack_c::getMapScissorAreaLY() { f32 dMenu_Fmap2DBack_c::getMapScissorAreaSizeX() { f32 scale = mpMapArea->getScaleX(); - - for (J2DPane* pane = mpMapArea->getPanePtr()->getParentPane(); pane != NULL; + J2DPane* pane; + for (pane = mpMapArea->getPanePtr()->getParentPane(); pane != NULL; pane = pane->getParentPane()) { scale *= pane->getScaleX(); @@ -1099,7 +1181,11 @@ f32 dMenu_Fmap2DBack_c::getMapScissorAreaSizeX() { } f32 dMenu_Fmap2DBack_c::getMapScissorAreaSizeRealX() { +#if PLATFORM_GCN return getMapScissorAreaSizeX(); +#else + return getMapScissorAreaSizeX() * mDoGph_gInf_c::getScale(); +#endif } f32 dMenu_Fmap2DBack_c::getMapScissorAreaCenterPosX() { @@ -1112,8 +1198,8 @@ f32 dMenu_Fmap2DBack_c::getMapScissorAreaCenterPosY() { f32 dMenu_Fmap2DBack_c::getMapScissorAreaSizeY() { f32 scale = mpMapArea->getScaleY(); - - for (J2DPane* pane = mpMapArea->getPanePtr()->getParentPane(); pane != NULL; + J2DPane* pane; + for (pane = mpMapArea->getPanePtr()->getParentPane(); pane != NULL; pane = pane->getParentPane()) { scale *= pane->getScaleY(); @@ -1180,24 +1266,24 @@ f32 dMenu_Fmap2DBack_c::getRegionMapZoomRate(int i_regionNo) { if (tmp1 < tmp2) { field_0x122e = false; - tmp2 = tmp1; + return tmp1; } else { field_0x122e = true; + return tmp2; } - - return tmp2; } f32 dMenu_Fmap2DBack_c::getSpotMapZoomRate() { + f32 tmp4; f32 tmp1 = mTexMaxX - mTexMinX; f32 tmp2 = mTexMaxZ - mTexMinZ; - + f32 tmp3 = tmp1; - if (tmp1 < tmp2) { + if (tmp3 < tmp2) { tmp3 = tmp2; } - - return tmp3 / g_fmapHIO.mRegionZoomRange; + tmp4 = tmp3 / g_fmapHIO.mRegionZoomRange; + return tmp4; } void dMenu_Fmap2DBack_c::getStageOriginPath(u8 param_0, f32* param_1, f32* param_2) { @@ -1214,11 +1300,15 @@ void dMenu_Fmap2DBack_c::calcOffset(u8 i_regionNo, char const* i_stageName, f32* o_offsetX, f32* o_offsetZ) { if (mpStages != NULL) { Stage_c::data* data = mpStages->mData; - for (int i = 0; i < mStageDataNum; i++) { - if (i_regionNo + 1 == data[i].mRegionNo && strcmp(i_stageName, data[i].mName) == 0) { - *o_offsetX = mRegionOriginX[i_regionNo] + data[i].mOffsetX; - *o_offsetZ = mRegionOriginZ[i_regionNo] + data[i].mOffsetZ; - return; + for (int j = 0, i = 0; i < mStageDataNum; i++) { + if (i_regionNo + 1 == data[i].mRegionNo) { + if (strcmp(i_stageName, data[i].mName) == 0) { + *o_offsetX = mRegionOriginX[i_regionNo] + data[i].mOffsetX; + *o_offsetZ = mRegionOriginZ[i_regionNo] + data[i].mOffsetZ; + return; + } else { + j++; + } } } } @@ -1229,14 +1319,16 @@ void dMenu_Fmap2DBack_c::calcOffset(u8 i_regionNo, char const* i_stageName, void dMenu_Fmap2DBack_c::regionTextureDraw() { f32 local_84, local_88; + f32 dVar14 = 0.0f; + f32 dVar13 = 0.0f; calcAllMapPosWorld(getMapScissorAreaCenterPosX(), getMapScissorAreaCenterPosY(), &local_84, &local_88); f32 local_8c, local_90; calcAllMapPos2D(local_84 + mStageTransX, local_88 + mStageTransZ, &local_8c, &local_90); - f32 dVar14 = getMapScissorAreaCenterPosX() - local_8c; - f32 dVar13 = getMapScissorAreaCenterPosY() - local_90; + dVar14 = getMapScissorAreaCenterPosX() - local_8c; + dVar13 = getMapScissorAreaCenterPosY() - local_90; s32 uVar9 = mRegionCursor; @@ -1272,17 +1364,19 @@ void dMenu_Fmap2DBack_c::regionTextureDraw() { mpAreaTex[uVar10]->setAlpha(mAlphaRate * 255.0f * fVar3 * field_0xfa4); if (uVar10 != uVar9) { + bool b = 0; + f32 v = mTransX + (dVar14 + (mRegionMinMapX[uVar10] + field_0xf0c[uVar10])); mpAreaTex[uVar10]->draw( - mTransX + (dVar14 + (mRegionMinMapX[uVar10] + field_0xf0c[uVar10])), - mTransZ + (dVar13 + (mRegionMinMapY[uVar10] + field_0xf2c[uVar10])), - mRegionMapSizeX[uVar10] * mZoom, mRegionMapSizeY[uVar10] * mZoom, false, - false, false); + v, mTransZ + (dVar13 + (mRegionMinMapY[uVar10] + field_0xf2c[uVar10])), + mRegionMapSizeX[uVar10] * mZoom, mRegionMapSizeY[uVar10] * mZoom, b, false, + false); } else { + bool b = 0; + f32 v = mTransX + (dVar14 + (mRegionMinMapX[uVar9] + field_0xf0c[uVar9])); mpAreaTex[uVar9]->draw( - mTransX + (dVar14 + (mRegionMinMapX[uVar9] + field_0xf0c[uVar9])), - mTransZ + (dVar13 + (mRegionMinMapY[uVar9] + field_0xf2c[uVar9])), - mRegionMapSizeX[uVar9] * mZoom, mRegionMapSizeY[uVar9] * mZoom, false, - false, false); + v, mTransZ + (dVar13 + (mRegionMinMapY[uVar9] + field_0xf2c[uVar9])), + mRegionMapSizeX[uVar9] * mZoom, mRegionMapSizeY[uVar9] * mZoom, b, false, + false); } } } @@ -1292,8 +1386,7 @@ void dMenu_Fmap2DBack_c::stageTextureDraw() { if (mAllPathShowFlag) { mpSpotTexture->setAlpha(mAlphaRate * 255.0f * mSpotTextureFadeAlpha); } else { - f32 tmp = mAlphaRate * 255.0f * field_0xfa8; - mpSpotTexture->setAlpha(mSpotTextureFadeAlpha * tmp); + mpSpotTexture->setAlpha(mAlphaRate * 255.0f * field_0xfa8 * mSpotTextureFadeAlpha); } mpSpotTexture->draw(mTransX + getMapScissorAreaLX(), mTransZ + getMapScissorAreaLY(), @@ -1516,11 +1609,9 @@ void dMenu_Fmap2DBack_c::stageOriginDraw() { for (int i = 0; i < mStageDataNum; i++) { if (mRegionCursor + 1 == stage_data[i].mRegionNo) { f32 center_x, center_y; - calcAllMapPos2D( - mRegionOriginX[mRegionCursor] + stage_data[i].mOffsetX - mStageTransX, - mRegionOriginZ[mRegionCursor] + stage_data[i].mOffsetZ - mStageTransZ, - ¢er_x, ¢er_y - ); + f32 v1 = mRegionOriginX[mRegionCursor] + stage_data[i].mOffsetX - mStageTransX; + f32 v2 = mRegionOriginZ[mRegionCursor] + stage_data[i].mOffsetZ - mStageTransZ; + calcAllMapPos2D(v1, v2, ¢er_x, ¢er_y); J2DFillBox(center_x - 3.0f, center_y - 3.0f, 6.0f, 6.0f, JUtility::TColor(0, 0, 255, 255)); } @@ -1640,21 +1731,25 @@ void dMenu_Fmap2DBack_c::calcBlink() { f32 tmp_selected_max = g_fmapHIO.mMapBlink[i].mSelectedRegion.mMax / 255.0f; f32 tmp_unselected_min = g_fmapHIO.mMapBlink[i].mUnselectedRegion.mMin / 255.0f; f32 tmp_unselected_max = g_fmapHIO.mMapBlink[i].mUnselectedRegion.mMax / 255.0f; + + f32 sp20 = g_fmapHIO.mMapBlink[i + 1].mSelectedRegion.mMin / 255.0f; + f32 sp1C = g_fmapHIO.mMapBlink[i + 1].mSelectedRegion.mMax / 255.0f; + f32 sp18 = g_fmapHIO.mMapBlink[i + 1].mUnselectedRegion.mMin / 255.0f; + f32 sp14 = g_fmapHIO.mMapBlink[i + 1].mUnselectedRegion.mMax / 255.0f; - selected_max = tmp_selected_max - + t * (g_fmapHIO.mMapBlink[i + 1].mSelectedRegion.mMax / 255.0f - tmp_selected_max); - selected_min = tmp_selected_min - + t * (g_fmapHIO.mMapBlink[i + 1].mSelectedRegion.mMin / 255.0f - tmp_selected_min); - s16 selected_blink_speed = g_fmapHIO.mMapBlink[i].mSelectedRegion.mBlinkSpeed - + t * (g_fmapHIO.mMapBlink[i + 1].mSelectedRegion.mBlinkSpeed - - g_fmapHIO.mMapBlink[i].mSelectedRegion.mBlinkSpeed); - unselected_max = tmp_unselected_max - + t * (g_fmapHIO.mMapBlink[i + 1].mUnselectedRegion.mMax / 255.0f - tmp_unselected_max); - unselected_min = tmp_unselected_min - + t * (g_fmapHIO.mMapBlink[i + 1].mUnselectedRegion.mMin / 255.0f - tmp_unselected_min); - s16 unselected_blink_speed = g_fmapHIO.mMapBlink[i].mUnselectedRegion.mBlinkSpeed - + t * (g_fmapHIO.mMapBlink[i + 1].mUnselectedRegion.mBlinkSpeed - - g_fmapHIO.mMapBlink[i].mUnselectedRegion.mBlinkSpeed); + selected_max = tmp_selected_max + t * (sp1C - tmp_selected_max); + selected_min = tmp_selected_min + t * (sp20 - tmp_selected_min); + + s16 selected_blink_speed = g_fmapHIO.mMapBlink[i].mSelectedRegion.mBlinkSpeed + + t * (g_fmapHIO.mMapBlink[i + 1].mSelectedRegion.mBlinkSpeed - + g_fmapHIO.mMapBlink[i].mSelectedRegion.mBlinkSpeed); + + unselected_max = tmp_unselected_max + t * (sp14 - tmp_unselected_max); + unselected_min = tmp_unselected_min + t * (sp18 - tmp_unselected_min); + + s16 unselected_blink_speed = g_fmapHIO.mMapBlink[i].mUnselectedRegion.mBlinkSpeed + + t * (g_fmapHIO.mMapBlink[i + 1].mUnselectedRegion.mBlinkSpeed - + g_fmapHIO.mMapBlink[i].mUnselectedRegion.mBlinkSpeed); field_0x1218++; if (field_0x1218 >= selected_blink_speed) { @@ -1693,14 +1788,14 @@ void dMenu_Fmap2DBack_c::calcBackAlpha(bool param_0) { if (param_0) { if (mBackAlpha != 1.0f) { cLib_addCalc2(&mBackAlpha, 1.0f, 0.4f, 0.5f); - if (fabsf(mBackAlpha - 1.0f) < 0.1f) { + if (std::fabs(mBackAlpha - 1.0f) < 0.1f) { mBackAlpha = 1.0f; } } } else { if (mBackAlpha != 0.0f) { cLib_addCalc2(&mBackAlpha, 0.0f, 0.4f, 0.5f); - if (fabsf(mBackAlpha) < 0.1f) { + if (std::fabs(mBackAlpha) < 0.1f) { mBackAlpha = 0.0f; } } @@ -1732,27 +1827,35 @@ void dMenu_Fmap2DBack_c::regionMapMove(STControl* i_stick) { calcAllMapPosWorld(getMapScissorAreaLX(), getMapScissorAreaLY(), &min_x, &min_y); calcAllMapPosWorld(getMapScissorAreaLX() + getMapScissorAreaSizeRealX(), getMapScissorAreaLY() + getMapScissorAreaSizeRealY(), &max_x, &max_y); - - f32 slow_bound = g_fmapHIO.mScrollSpeedSlowBound < g_fmapHIO.mScrollSpeedFastBound ? - g_fmapHIO.mScrollSpeedSlowBound : g_fmapHIO.mScrollSpeedFastBound; - f32 fast_bound = g_fmapHIO.mScrollSpeedSlowBound > g_fmapHIO.mScrollSpeedFastBound ? - g_fmapHIO.mScrollSpeedSlowBound : g_fmapHIO.mScrollSpeedFastBound; - - f32 stick_value = i_stick->getValueStick(); - if (stick_value >= slow_bound) { - s16 angle = i_stick->getAngleStick(); - f32 local_68 = mTexMaxX - mTexMinX; - f32 spot_zoom = getSpotMapZoomRate(); - f32 region_zoom = getRegionMapZoomRate(mRegionCursor); - f32 zoom = region_zoom + (mMapZoomRate - 1.0f) * (spot_zoom - region_zoom); - f32 local_78 = local_68 / zoom; - f32 base_speed = stick_value < fast_bound ? - g_fmapHIO.mScrollSpeedRegionSlow : g_fmapHIO.mScrollSpeedRegionFast; - f32 speed = base_speed / 100.0f * local_78; - f32 speed_y = speed * cM_ssin(angle); - f32 speed_x = speed * cM_scos(angle); - control_xpos += speed_y; - control_ypos += speed_x; + int r27 = 0; + if (r27 == 0) { + f32 slow_bound = g_fmapHIO.mScrollSpeedSlowBound < g_fmapHIO.mScrollSpeedFastBound ? + g_fmapHIO.mScrollSpeedSlowBound : + g_fmapHIO.mScrollSpeedFastBound; + f32 fast_bound = g_fmapHIO.mScrollSpeedSlowBound > g_fmapHIO.mScrollSpeedFastBound ? + g_fmapHIO.mScrollSpeedSlowBound : + g_fmapHIO.mScrollSpeedFastBound; + + f32 stick_value = i_stick->getValueStick(); + if (stick_value >= slow_bound) { + s16 angle = i_stick->getAngleStick(); + f32 local_68 = mTexMaxX - mTexMinX; + f32 spot_zoom = getSpotMapZoomRate(); + f32 region_zoom = getRegionMapZoomRate(mRegionCursor); + f32 zoom = region_zoom + (mMapZoomRate - 1.0f) * (spot_zoom - region_zoom); + f32 local_78 = local_68 / zoom; + f32 base_speed; + if (stick_value < fast_bound) { + base_speed = g_fmapHIO.mScrollSpeedRegionSlow; + } else { + base_speed = g_fmapHIO.mScrollSpeedRegionFast; + } + f32 speed = base_speed / 100.0f * local_78; + f32 speed_y = speed * cM_ssin(angle); + f32 speed_x = speed * cM_scos(angle); + control_xpos += speed_y; + control_ypos += speed_x; + } } if (mArrowPos3DX + control_xpos < min_x) { @@ -1778,25 +1881,25 @@ void dMenu_Fmap2DBack_c::regionMapMove(STControl* i_stick) { mSelectRegion = 0xff; int region = mRegionCursor; if (region != 0xff && region != 7) { - if (dMeter2Info_getPixel(pos_x, pos_y, - mRegionMinMapX[region] + field_0xf0c[region] + mTransX, - mRegionMinMapY[region] + field_0xf2c[region] + mTransZ, - mRegionMapSizeX[region] * mZoom, - mRegionMapSizeY[region] * mZoom, - mpAreaTex[region]->getTexture(0)->getTexInfo())) { + u8 pix = dMeter2Info_getPixel( + pos_x, pos_y, mRegionMinMapX[region] + field_0xf0c[region] + mTransX, + mRegionMinMapY[region] + field_0xf2c[region] + mTransZ, mRegionMapSizeX[region] * mZoom, + mRegionMapSizeY[region] * mZoom, mpAreaTex[region]->getTexture(0)->getTexInfo()); + if (pix) { mSelectRegion = region; } } } void dMenu_Fmap2DBack_c::stageMapMove(STControl* i_stick, u8 param_1, bool param_2) { - f32 min_x, min_y, max_x, max_y, center_x, center_y; - - f32 slow_bound = g_fmapHIO.mScrollSpeedSlowBound < g_fmapHIO.mScrollSpeedFastBound ? - g_fmapHIO.mScrollSpeedSlowBound : g_fmapHIO.mScrollSpeedFastBound; - f32 fast_bound = g_fmapHIO.mScrollSpeedSlowBound > g_fmapHIO.mScrollSpeedFastBound ? - g_fmapHIO.mScrollSpeedSlowBound : g_fmapHIO.mScrollSpeedFastBound; + (void)param_1; + f32 slow_bound = g_fmapHIO.mScrollSpeedSlowBound < g_fmapHIO.mScrollSpeedFastBound ? + g_fmapHIO.mScrollSpeedSlowBound : g_fmapHIO.mScrollSpeedFastBound; + f32 fast_bound = g_fmapHIO.mScrollSpeedSlowBound > g_fmapHIO.mScrollSpeedFastBound ? + g_fmapHIO.mScrollSpeedSlowBound : g_fmapHIO.mScrollSpeedFastBound; + + f32 min_x, min_y, max_x, max_y; f32 stick_value = i_stick->getValueStick(); bool bVar6 = false; f32 trans_x = mStageTransX; @@ -1810,8 +1913,12 @@ void dMenu_Fmap2DBack_c::stageMapMove(STControl* i_stick, u8 param_1, bool param f32 region_zoom = getRegionMapZoomRate(mRegionCursor); f32 zoom = region_zoom + (mMapZoomRate - 1.0f) * (spot_zoom - region_zoom); f32 local_78 = local_68 / zoom; - f32 base_speed = stick_value < fast_bound ? - g_fmapHIO.mScrollSpeedRegionZoomSlow : g_fmapHIO.mScrollSpeedRegionZoomFast; + f32 base_speed; + if (stick_value < fast_bound) { + base_speed = g_fmapHIO.mScrollSpeedRegionZoomSlow; + } else { + base_speed = g_fmapHIO.mScrollSpeedRegionZoomFast; + } f32 speed = base_speed / 100.0f * local_78; f32 speed_x = speed * cM_ssin(angle); f32 speed_z = speed * cM_scos(angle); @@ -1820,7 +1927,7 @@ void dMenu_Fmap2DBack_c::stageMapMove(STControl* i_stick, u8 param_1, bool param } else if (!param_2) { return; } - + f32 center_x, center_y; calcAllMapPosWorld(getMapAreaGlobalCenterPosX(), getMapAreaGlobalCenterPosY(), ¢er_x, ¢er_y); calcAllMapPosWorld(getMapScissorAreaLX(), getMapScissorAreaLY(), &min_x, &min_y); @@ -1864,16 +1971,16 @@ void dMenu_Fmap2DBack_c::stageMapMove(STControl* i_stick, u8 param_1, bool param field_0x122d = 0; if (mStageTransX > -(center_x - min_x)) { - field_0x122d |= 1; + field_0x122d |= (u8)1; } if (mStageTransX < -(center_x - max_x)) { - field_0x122d |= 4; + field_0x122d |= (u8)4; } if (mStageTransZ > -(center_y - min_y)) { - field_0x122d |= 8; + field_0x122d |= (u8)8; } if (mStageTransZ < -(center_y - max_y)) { - field_0x122d |= 2; + field_0x122d |= (u8)2; } mpMeterHaihai->_execute(0); @@ -1907,8 +2014,9 @@ void dMenu_Fmap2DBack_c::drawDebugStageArea() { j - mDoGph_gInf_c::getHeightF() / 2.0f, field_0x1244, &stage_no, NULL); if (stage_no >= 0) { - J2DFillBox(i + mDoGph_gInf_c::getMinXF() - 3.0f, j - 3.0f, 6.0f, 6.0f, - colors[stage_no % 6]); + f32 v = i + mDoGph_gInf_c::getMinXF(); + f32 v2 = j; + J2DFillBox(v - 3.0f, v2 - 3.0f, 6.0f, 6.0f, colors[stage_no % 6]); } } } @@ -1916,7 +2024,8 @@ void dMenu_Fmap2DBack_c::drawDebugStageArea() { } void dMenu_Fmap2DBack_c::drawDebugRegionArea() { - getAllMapZoomRate(); + if (mZoom != getAllMapZoomRate()) { + } JUtility::TColor colors[7] = { JUtility::TColor(255, 255, 0, 50), @@ -1930,18 +2039,18 @@ void dMenu_Fmap2DBack_c::drawDebugRegionArea() { for (int i = 0; i < getMapScissorAreaSizeRealX(); i += g_fmapHIO.mRangeCheckInterval + 1) { for (int j = 0; j < getMapScissorAreaSizeRealY(); j += g_fmapHIO.mRangeCheckInterval + 1) { + u8 u = 0; for (int k = 7; k >= 0; k--) { int region = field_0x1230[k]; if (region == 0xff || region == 7) continue; f32 pos_x = i + getMapScissorAreaLX(); f32 pos_y = j + getMapScissorAreaLY(); - if (dMeter2Info_getPixel(pos_x, pos_y, - mRegionMinMapX[region] + field_0xf0c[region] + mTransX, - mRegionMinMapY[region] + field_0xf2c[region] + mTransZ, - mRegionMapSizeX[region] * mZoom, - mRegionMapSizeY[region] * mZoom, - mpAreaTex[region]->getTexture(0)->getTexInfo())) - { + u = dMeter2Info_getPixel( + pos_x, pos_y, mRegionMinMapX[region] + field_0xf0c[region] + mTransX, + mRegionMinMapY[region] + field_0xf2c[region] + mTransZ, + mRegionMapSizeX[region] * mZoom, mRegionMapSizeY[region] * mZoom, + mpAreaTex[region]->getTexture(0)->getTexInfo()); + if (u) { J2DFillBox(pos_x - 3.0f, pos_y - 3.0f, 6.0f, 6.0f, colors[region]); break; } @@ -1974,9 +2083,9 @@ void dMenu_Fmap2DBack_c::setArrowPos3DOffset(u8 i_regionNo, char const* i_stageN if (param_4 != 0.0f) { calcOffset(i_regionNo, i_stageName, &offset_x, &offset_z); - calcAllMapPos2D(i_posX + offset_x - getRegionOriginX(i_regionNo), - i_posZ + offset_z - getRegionOriginZ(i_regionNo), - &pos2d_x, &pos2d_y); + f32 v = i_posX + offset_x - getRegionOriginX(i_regionNo); + f32 v2 = i_posZ + offset_z - getRegionOriginZ(i_regionNo); + calcAllMapPos2D(v, v2, &pos2d_x, &pos2d_y); pos2d_y -= param_4; calcAllMapPosWorld(pos2d_x, pos2d_y, &i_posX, &i_posZ); i_posX += getRegionOriginX(i_regionNo); @@ -1995,27 +2104,29 @@ void dMenu_Fmap2DBack_c::calcDrawPriority() { u8 dVar3 = 6; for (int i = 7; i >= 0; i--) { - region = field_0x1230[i]; if (field_0x1230[i] != 0xff) { if (field_0x1230[i] == mRegionCursor) { field_0x1230[i] = dVar2; break; + } else { + u8 tmp = field_0x1230[i]; + field_0x1230[i] = dVar2; + dVar2 = tmp; } - field_0x1230[i] = dVar2; - dVar2 = region; } } if (mRegionCursor != 6) { for (int i = 7; i >= 0; i--) { - region = field_0x1230[i]; if (field_0x1230[i] != 0xff) { if (field_0x1230[i] == 6) { field_0x1230[i] = dVar3; break; + } else { + u8 tmp = field_0x1230[i]; + field_0x1230[i] = dVar3; + dVar3 = tmp; } - field_0x1230[i] = dVar3; - dVar3 = region; } } } @@ -2024,14 +2135,15 @@ void dMenu_Fmap2DBack_c::calcDrawPriority() { u8 dVar4 = field_0x1230[0]; field_0x1230[0] = 7; for (int i = 1; i < 8; i++) { - region = field_0x1230[i]; if (field_0x1230[i] != 0xff) { if (field_0x1230[i] == 7) { field_0x1230[i] = dVar4; break; + } else { + u8 tmp = field_0x1230[i]; + field_0x1230[i] = dVar4; + dVar4 = tmp; } - field_0x1230[i] = dVar4; - dVar4 = region; } } } @@ -2052,11 +2164,31 @@ dMenu_Fmap2DTop_c::dMenu_Fmap2DTop_c(JKRExpHeap* i_heap, STControl* i_stick) { mpScrnExplain = NULL; mpTitleScreen = new J2DScreen(); - mpTitleScreen->setPriority("zelda_map_screen_title.blo", 0x1020000, - dComIfGp_getFmapResArchive()); + JUT_ASSERT(3872, mpTitleScreen != NULL); +#if PLATFORM_GCN + bool fg = mpTitleScreen->setPriority("zelda_map_screen_title.blo", 0x1020000, + dComIfGp_getFmapResArchive()); +#else + bool fg = mpTitleScreen->setPriority("zelda_map_screen_title_revo.blo", 0x1020000, + dComIfGp_getFmapResArchive()); +#endif + JUT_ASSERT(3877, fg != false); + dPaneClass_showNullPane(mpTitleScreen); mpTitleRoot = new CPaneMgrAlphaMorf(mpTitleScreen, 'ROOT', 2, NULL); - + JUT_ASSERT(3881, mpTitleRoot != NULL); +#if PLATFORM_SHIELD + for (int i = 0; i < 2; i++) { + mpArrowLAlpha[i] = NULL; + mpArrowRAlpha[i] = NULL; + } + mpDpadAlpha = NULL; + mpAnalogStickAlpha = NULL; + mpAnalogStick = NULL; + mpDpad = NULL; + mpTitleScreen->search('tri_Null')->hide(); +#endif +#if PLATFORM_GCN mpArrowLAlpha[0] = new CPaneMgrAlpha(mpTitleScreen, 'yaji_04', 0, NULL); mpArrowLAlpha[1] = new CPaneMgrAlpha(mpTitleScreen, 'yaji_05', 0, NULL); mpArrowRAlpha[0] = new CPaneMgrAlpha(mpTitleScreen, 'yaji_06', 0, NULL); @@ -2068,13 +2200,34 @@ dMenu_Fmap2DTop_c::dMenu_Fmap2DTop_c(JKRExpHeap* i_heap, STControl* i_stick) { mpAnalogStickAlpha->setAlphaRate(0.0f); mpAnalogStick = new CPaneMgr(mpTitleScreen, 'as_n', 0, NULL); mpDpad = new CPaneMgr(mpTitleScreen, 'juji_c_n', 0, NULL); - - mpButtonA = new CPaneMgr(mpTitleScreen, 'abtn_n1', 2, NULL); - mpButtonB = new CPaneMgr(mpTitleScreen, 'bbtn_n1', 2, NULL); - mpButtonZ = new CPaneMgr(mpTitleScreen, 'zbtn_n1', 2, NULL); +#endif +#if PLATFORM_SHIELD + mpButtonA = new CPaneMgr(mpTitleScreen, 'abtn_n', 2, NULL); + JUT_ASSERT(3935, mpButtonA != NULL); + mpButtonB = new CPaneMgr(mpTitleScreen, 'bbtn_n', 2, NULL); + JUT_ASSERT(3938, mpButtonB != NULL); + mpButtonZ = new CPaneMgr(mpTitleScreen, 'j_scal_n', 2, NULL); + JUT_ASSERT(3941, mpButtonZ != NULL); mpButtonTextA = new CPaneMgr(mpTitleScreen, 'a_text_n', 2, NULL); + JUT_ASSERT(3953, mpButtonTextA != NULL); mpButtonTextB = new CPaneMgr(mpTitleScreen, 'b_text_n', 2, NULL); + JUT_ASSERT(3956, mpButtonTextB != NULL); mpButtonTextZ = new CPaneMgr(mpTitleScreen, 'z_text_n', 2, NULL); + JUT_ASSERT(3959, mpButtonTextZ != NULL); +#else + mpButtonA = new CPaneMgr(mpTitleScreen, 'abtn_n1', 2, NULL); + JUT_ASSERT(3935, mpButtonA != NULL); + mpButtonB = new CPaneMgr(mpTitleScreen, 'bbtn_n1', 2, NULL); + JUT_ASSERT(3938, mpButtonB != NULL); + mpButtonZ = new CPaneMgr(mpTitleScreen, 'zbtn_n1', 2, NULL); + JUT_ASSERT(3941, mpButtonZ != NULL); + mpButtonTextA = new CPaneMgr(mpTitleScreen, 'a_text_n', 2, NULL); + JUT_ASSERT(3953, mpButtonTextA != NULL); + mpButtonTextB = new CPaneMgr(mpTitleScreen, 'b_text_n', 2, NULL); + JUT_ASSERT(3956, mpButtonTextB != NULL); + mpButtonTextZ = new CPaneMgr(mpTitleScreen, 'z_text_n', 2, NULL); + JUT_ASSERT(3959, mpButtonTextZ != NULL); +#endif mpButtonA->setAlphaRate(0.0f); mpButtonB->setAlphaRate(0.0f); mpButtonZ->setAlphaRate(0.0f); @@ -2083,12 +2236,16 @@ dMenu_Fmap2DTop_c::dMenu_Fmap2DTop_c(JKRExpHeap* i_heap, STControl* i_stick) { mpButtonTextZ->setAlphaRate(0.0f); mpNamePane = new CPaneMgr(mpTitleScreen, 'name_n', 0, NULL); + JUT_ASSERT(3970, mpNamePane != NULL); mpSubPane = new CPaneMgr(mpTitleScreen, 'sub_n_n', 0, NULL); + JUT_ASSERT(3974, mpSubPane != NULL); + if (dMeter2Info_getMapStatus() == 9) { mpNamePane->hide(); mpSubPane->hide(); } mpContPane = new CPaneMgr(mpTitleScreen, 'cont_n', 0, NULL); + JUT_ASSERT(3984, mpContPane != NULL); mTitlePosX = mTitlePosY = 0.0f; mTitleScale = 1.0f; @@ -2102,9 +2259,13 @@ dMenu_Fmap2DTop_c::dMenu_Fmap2DTop_c(JKRExpHeap* i_heap, STControl* i_stick) { mDoIconScale = 1.0f; OSInitFastCast(); - +#if PLATFORM_GCN mpAnm = static_cast(J2DAnmLoaderDataBase::load( JKRFileLoader::getGlbResource("zelda_map_screen_title.btk", dComIfGp_getFmapResArchive()))); +#else + void* v = JKRGetNameResource("zelda_map_screen_title_revo.btk", dComIfGp_getFmapResArchive()); + mpAnm = static_cast(J2DAnmLoaderDataBase::load(v)); +#endif mpAnm->searchUpdateMaterialID(mpTitleScreen); mAnmFrame = 0.0f; @@ -2124,13 +2285,21 @@ dMenu_Fmap2DTop_c::dMenu_Fmap2DTop_c(JKRExpHeap* i_heap, STControl* i_stick) { mpTitleScreen->search(area_name[i])->hide(); #endif } - +#if PLATFORM_GCN static const u64 sfont_name[7] = { 'sfont00', 'sfontl0', 'sfontl1', 'sfontl2', 'sfontb0', 'sfontb1', 'sfontb2' }; static const u64 ffont_name[7] = { 'ffont00', 'ffontl0', 'ffontl1', 'ffontl2', 'ffontb0', 'ffontb3', 'ffontb4' }; +#else + static const u64 sfont_name[7] = { + 'sfont00', 'sfontl0', 'sfontl1', 'sfontl2', 'sfontb0', 'sfontb1', 'sfontb2' + }; + static const u64 ffont_name[7] = { + 'ffont01', 'ffontl3', 'ffontl4', 'ffontl5', 'ffontb3', 'ffontb4', 'ffontb5' + }; +#endif for (int i = 0; i < 7; i++) { #if VERSION == VERSION_GCN_JPN static_cast(mpTitleScreen->search(sfont_name[i])) @@ -2162,9 +2331,13 @@ dMenu_Fmap2DTop_c::dMenu_Fmap2DTop_c(JKRExpHeap* i_heap, STControl* i_stick) { #endif } setZButtonString(0x529, 0xff); - +#if PLATFORM_GCN static const u64 cont_bt[5] = {'cont_bt1', 'cont_bt2', 'cont_bt3', 'cont_bt4', 'cont_bt'}; static const u64 font_bt[5] = {'font_bt1', 'font_bt2', 'font_bt3', 'font_bt4', 'font_bt5'}; +#else + static const u64 cont_bt[5] = {'cont_bt1', 'cont_bt2', 'cont_bt3', 'cont_bt4', 'cont_bt8'}; + static const u64 font_bt[5] = {'font_bt1', 'font_bt2', 'font_bt3', 'font_bt4', 'font_bt5'}; +#endif for (int i = 0; i < 5; i++) { #if VERSION == VERSION_GCN_JPN static_cast(mpTitleScreen->search(cont_bt[i])) @@ -2197,6 +2370,7 @@ dMenu_Fmap2DTop_c::dMenu_Fmap2DTop_c(JKRExpHeap* i_heap, STControl* i_stick) { } setAButtonString(0x527, 0xff); +#if PLATFORM_GCN static const u64 juji_c[5] = {'juji_c00', 'juji_c01', 'juji_c02', 'juji_c03', 'juji_c04'}; static const u64 fuji_c[5] = {'fuji_c00', 'fuji_c01', 'fuji_c02', 'fuji_c03', 'fuji_c04'}; for (int i = 0; i < 5; i++) { @@ -2230,6 +2404,7 @@ dMenu_Fmap2DTop_c::dMenu_Fmap2DTop_c(JKRExpHeap* i_heap, STControl* i_stick) { #endif } set3DStickString(0x524); +#endif setHIO(true); } @@ -2239,6 +2414,8 @@ dMenu_Fmap2DTop_c::~dMenu_Fmap2DTop_c() { delete mpTitleScreen; mpTitleScreen = NULL; delete mpTitleRoot; + if (mpTitleRoot != NULL) { + } delete mpButtonA; mpButtonA = NULL; delete mpButtonB; @@ -2276,9 +2453,13 @@ dMenu_Fmap2DTop_c::~dMenu_Fmap2DTop_c() { for (int i = 0; i < 2; i++) { if (mpArrowLAlpha[i] != NULL) { delete mpArrowLAlpha[i]; + if (mpArrowLAlpha[i] != NULL) { + } } if (mpArrowRAlpha[i] != NULL) { delete mpArrowRAlpha[i]; + if (mpArrowRAlpha[i] != NULL) { + } } } delete mpAnm; @@ -2407,19 +2588,28 @@ void dMenu_Fmap2DTop_c::setTitleNameString(u32 param_0) { 'sfont00', 'sfontl0', 'sfontl1', 'sfontl2', 'sfontb0', 'sfontb1', 'sfontb2' }; #define setTitleNameString_font_name sfont_name -#else +#elif PLATFORM_GCN static const u64 ffont_name[7] = { 'ffont00', 'ffontl0', 'ffontl1', 'ffontl2', 'ffontb0', 'ffontb3', 'ffontb4' }; #define setTitleNameString_font_name ffont_name +#else + static const u64 ffont_name[7] = { + 'ffont01', 'ffontl3', 'ffontl4', 'ffontl5', 'ffontb3', 'ffontb4', 'ffontb5' + }; +#define setTitleNameString_font_name ffont_name #endif for (int i = 0; i < 7; i++) { if (param_0 == 0) { - J2DTextBox* text_box = static_cast(mpTitleScreen->search(setTitleNameString_font_name[i])); - strcpy(text_box->getStringPtr(), ""); + strcpy(((J2DTextBox*)(mpTitleScreen->search(setTitleNameString_font_name[i]))) + ->getStringPtr(), + ""); } else { - J2DTextBox* text_box = static_cast(mpTitleScreen->search(setTitleNameString_font_name[i])); - dMeter2Info_getStringKanji(param_0, text_box->getStringPtr(), NULL); + dMeter2Info_getStringKanji( + param_0, + ((J2DTextBox*)(mpTitleScreen->search(setTitleNameString_font_name[i]))) + ->getStringPtr(), + NULL); } } } @@ -2434,11 +2624,15 @@ void dMenu_Fmap2DTop_c::setAreaNameString(u32 param_0) { #endif for (int i = 0; i < 3; i++) { if (param_0 == 0) { - J2DTextBox* text_box = static_cast(mpTitleScreen->search(setAreaNameString_area_name[i])); - strcpy(text_box->getStringPtr(), ""); + strcpy(((J2DTextBox*)(mpTitleScreen->search(setAreaNameString_area_name[i]))) + ->getStringPtr(), + ""); } else { - J2DTextBox* text_box = static_cast(mpTitleScreen->search(setAreaNameString_area_name[i])); - dMeter2Info_getStringKanji(param_0, text_box->getStringPtr(), NULL); + dMeter2Info_getStringKanji( + param_0, + ((J2DTextBox*)(mpTitleScreen->search(setAreaNameString_area_name[i]))) + ->getStringPtr(), + NULL); } } } @@ -2456,11 +2650,17 @@ void dMenu_Fmap2DTop_c::setZButtonString(u32 param_0, u8 i_alpha) { #define setZButtonString_font_zt font_zt #endif if (param_0 == 0 || !isWarpAccept()) { +#if PLATFORM_GCN mAlphaButtonZ = ALPHA_MID; +#else + mAlphaButtonZ = ALPHA_MIN; +#endif } else { for (int i = 0; i < 5; i++) { - J2DTextBox* text_box = static_cast(mpTitleScreen->search(setZButtonString_font_zt[i])); - dMeter2Info_getStringKanji(param_0, text_box->getStringPtr(), NULL); + dMeter2Info_getStringKanji( + param_0, + ((J2DTextBox*)(mpTitleScreen->search(setZButtonString_font_zt[i])))->getStringPtr(), + NULL); } if (i_alpha == ALPHA_DEFAULT) { @@ -2487,8 +2687,10 @@ void dMenu_Fmap2DTop_c::setBButtonString(u32 param_0, u8 i_alpha) { mAlphaButtonB = ALPHA_MIN; } else { for (int i = 0; i < 5; i++) { - J2DTextBox* text_box = static_cast(mpTitleScreen->search(setBButtonString_font_bt[i])); - dMeter2Info_getStringKanji(param_0, text_box->getStringPtr(), NULL); + dMeter2Info_getStringKanji( + param_0, + ((J2DTextBox*)(mpTitleScreen->search(setBButtonString_font_bt[i])))->getStringPtr(), + NULL); } if (i_alpha == ALPHA_DEFAULT) { @@ -2511,8 +2713,10 @@ void dMenu_Fmap2DTop_c::setAButtonString(u32 param_0, u8 i_alpha) { mAlphaButtonA = ALPHA_MIN; } else { for (int i = 0; i < 5; i++) { - J2DTextBox* text_box = static_cast(mpTitleScreen->search(setAButtonString_font_at[i])); - dMeter2Info_getStringKanji(param_0, text_box->getStringPtr(), NULL); + dMeter2Info_getStringKanji( + param_0, + ((J2DTextBox*)(mpTitleScreen->search(setAButtonString_font_at[i])))->getStringPtr(), + NULL); } if (i_alpha == ALPHA_DEFAULT) { @@ -2524,6 +2728,7 @@ void dMenu_Fmap2DTop_c::setAButtonString(u32 param_0, u8 i_alpha) { } void dMenu_Fmap2DTop_c::setCrossLRString(u32 param_0) { +#if PLATFORM_GCN || (VERSION == VERSION_SHIELD) #if VERSION == VERSION_GCN_JPN static const u64 juji_c[5] = {'juji_c00', 'juji_c01', 'juji_c02', 'juji_c03', 'juji_c04'}; #else @@ -2544,9 +2749,11 @@ void dMenu_Fmap2DTop_c::setCrossLRString(u32 param_0) { mpTitleScreen->search('juy_sha0')->show(); mAlphaDpad = 2; } +#endif } void dMenu_Fmap2DTop_c::set3DStickString(u32 param_0) { +#if PLATFORM_GCN || (VERSION == VERSION_SHIELD) #if VERSION == VERSION_GCN_JPN static const u64 ast_c[5] = {'ast_00', 'ast_01', 'ast_02', 'ast_03', 'ast_04'}; #else @@ -2567,12 +2774,14 @@ void dMenu_Fmap2DTop_c::set3DStickString(u32 param_0) { mpTitleScreen->search('as_sha0')->show(); mAlphaAnalogStick = 2; } +#endif } void dMenu_Fmap2DTop_c::createExplain(JKRExpHeap* i_heap, STControl* i_stick) { if (!mpScrnExplain) { JKRHeap* heap = mDoExt_setCurrentHeap(i_heap); mpScrnExplain = new dMsgScrnExplain_c(i_stick, 0, false, 1); + JUT_ASSERT(4743, mpScrnExplain != NULL); mDoExt_setCurrentHeap(heap); } } @@ -2640,15 +2849,13 @@ void dMenu_Fmap2DTop_c::setAlphaAnimeMax(CPaneMgrAlpha* i_pane) { } bool dMenu_Fmap2DTop_c::checkPlayerWarpAccept() { - bool ret; - if (!checkWarpAcceptCannon()) { - ret = false; - } else if (!checkWarpAcceptRegion4()) { - ret = false; + if (checkWarpAcceptCannon() == FALSE) { + return FALSE; + } else if (checkWarpAcceptRegion4() == FALSE) { + return FALSE; } else { - ret = daPy_getLinkPlayerActorClass()->checkAcceptDungeonWarpAlink(0); + return daPy_getLinkPlayerActorClass()->checkAcceptDungeonWarpAlink(0); } - return ret; } bool dMenu_Fmap2DTop_c::checkWarpAcceptRegion(int i_region) { diff --git a/src/d/d_meter2_info.cpp b/src/d/d_meter2_info.cpp index f62455b877c..94ddceb7261 100644 --- a/src/d/d_meter2_info.cpp +++ b/src/d/d_meter2_info.cpp @@ -1414,7 +1414,7 @@ const char* dMeter2Info_getPlusTextureName() { return tex_name; } -bool dMeter2Info_getPixel(f32 i_posX, f32 i_posY, f32 param_2, f32 param_3, f32 i_sizeX, +u8 dMeter2Info_getPixel(f32 i_posX, f32 i_posY, f32 param_2, f32 param_3, f32 i_sizeX, f32 i_sizeY, ResTIMG const* i_resTimg) { f32 temp_f31 = i_posX - param_2; f32 temp_f30 = i_posY - param_3; @@ -1442,7 +1442,7 @@ bool dMeter2Info_getPixel(f32 i_posX, f32 i_posY, f32 param_2, f32 param_3, f32 return 1; } - return var_r24 & 0x7000; + return (var_r24 & 0x7000) != 0; } void dMeter2Info_setCloth(u8 i_clothId, bool i_offItemBit) { diff --git a/src/d/d_msg_flow.cpp b/src/d/d_msg_flow.cpp index 3201873387b..29075fe5977 100644 --- a/src/d/d_msg_flow.cpp +++ b/src/d/d_msg_flow.cpp @@ -767,7 +767,7 @@ void dMsgFlow_c::dbgPrint() {} u16 dMsgFlow_c::query001(mesg_flow_node_branch* i_flowNode_p, fopAc_ac_c* i_speaker_p, int param_2) { const u16 prm0 = i_flowNode_p->param; - u16 ret = dComIfGs_isEventBit((u16)dSv_event_flag_c::saveBitLabels[prm0]) == false; + u16 ret = dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[prm0]) == false; if (param_2 != 0) { // "Flag Check" @@ -1753,11 +1753,11 @@ int dMsgFlow_c::event000(mesg_flow_node_event* i_flowNode_p, fopAc_ac_c* i_speak OS_REPORT("flow:%d, prm0:%d, prm1:%d\n", mFlow, prm0, prm1); if (prm0 != 0) { - dComIfGs_onEventBit((u16)dSv_event_flag_c::saveBitLabels[prm0]); + dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[prm0]); } if (prm1 != 0) { - dComIfGs_onEventBit((u16)dSv_event_flag_c::saveBitLabels[prm1]); + dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[prm1]); } return 1; @@ -1772,11 +1772,11 @@ int dMsgFlow_c::event001(mesg_flow_node_event* i_flowNode_p, fopAc_ac_c* i_speak OS_REPORT("flow:%d, prm0:%d, prm1:%d\n", mFlow, prm0, prm1); if (prm0 != 0) { - dComIfGs_offEventBit((u16)dSv_event_flag_c::saveBitLabels[prm0]); + dComIfGs_offEventBit(dSv_event_flag_c::saveBitLabels[prm0]); } if (prm1 != 0) { - dComIfGs_offEventBit((u16)dSv_event_flag_c::saveBitLabels[prm1]); + dComIfGs_offEventBit(dSv_event_flag_c::saveBitLabels[prm1]); } return 1; diff --git a/src/d/d_s_menu.cpp b/src/d/d_s_menu.cpp index 7b7934f473a..09558760248 100644 --- a/src/d/d_s_menu.cpp +++ b/src/d/d_s_menu.cpp @@ -766,7 +766,7 @@ int toGameScene(dScnMenu_c* i_this) { /* Main Event - Get shadow crystal (can now transform) */ dComIfGs_offEventBit(dSv_event_flag_c::M_077); /* dSv_event_flag_c::F_0550 - Main Event - Gain ability to use sense */ - dComIfGs_offEventBit((u16)dSv_event_flag_c::saveBitLabels[550]); + dComIfGs_offEventBit(dSv_event_flag_c::saveBitLabels[550]); /* Secret techniques - Obtained 1 secret techinques - Shield attack */ dComIfGs_offEventBit(dSv_event_flag_c::F_0338); rt = fopScnM_ChangeReq(i_this, PROC_PLAY_SCENE, 0, 5); @@ -909,7 +909,7 @@ void setEnvData(menu_data_class* i_data) { label_no = atoi(string); if (label_no >= 0 && label_no <= 999) { - dComIfGs_onEventBit((u16)dSv_event_flag_c::saveBitLabels[label_no]); + dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[label_no]); } if (i_data->env_data[i] != '+') { @@ -944,7 +944,7 @@ void setEnvData(menu_data_class* i_data) { label_no = atoi(string); if (label_no >= 0 && label_no <= 999) { - dComIfGs_offEventBit((u16)dSv_event_flag_c::saveBitLabels[label_no]); + dComIfGs_offEventBit(dSv_event_flag_c::saveBitLabels[label_no]); } if (i_data->env_data[i] != '+') { @@ -1636,7 +1636,7 @@ int phase_2(dScnMenu_c* i_this) { /* Main Event - when OFF, wolf carries sword and shield on back */ dComIfGs_onEventBit(dSv_event_flag_c::M_068); /* dSv_event_flag_c::F_0550 - Main Event - Gain ability to use sense */ - dComIfGs_onEventBit((u16)dSv_event_flag_c::saveBitLabels[550]); + dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[550]); return cPhs_COMPLEATE_e; } diff --git a/src/d/d_save.cpp b/src/d/d_save.cpp index 2e92baef02b..f2fa9866ce2 100644 --- a/src/d/d_save.cpp +++ b/src/d/d_save.cpp @@ -1708,14 +1708,14 @@ int dSv_info_c::memory_to_card(char* card_ptr, int dataNum) { #endif // If haven't gotten then lantern back from the monkey - if (!dComIfGs_isEventBit((u16)dSv_event_flag_c::saveBitLabels[226])) { + if (!dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[226])) { // Store whether or not it's stolen and dropped - lantern_dropped = dComIfGs_isEventBit((u16)dSv_event_flag_c::saveBitLabels[224]); - lantern_stolen = dComIfGs_isEventBit((u16)dSv_event_flag_c::saveBitLabels[225]); + lantern_dropped = dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[224]); + lantern_stolen = dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[225]); // Then turn those events off - dComIfGs_offEventBit((u16)dSv_event_flag_c::saveBitLabels[224]); - dComIfGs_offEventBit((u16)dSv_event_flag_c::saveBitLabels[225]); + dComIfGs_offEventBit(dSv_event_flag_c::saveBitLabels[224]); + dComIfGs_offEventBit(dSv_event_flag_c::saveBitLabels[225]); // Used to turn events back on later lantern_not_recovered = true; @@ -1765,10 +1765,10 @@ int dSv_info_c::memory_to_card(char* card_ptr, int dataNum) { // Now that we've saved, reset events if needed if (lantern_not_recovered == true) { if (lantern_dropped) { - dComIfGs_onEventBit((u16)dSv_event_flag_c::saveBitLabels[224]); + dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[224]); } if (lantern_stolen) { - dComIfGs_onEventBit((u16)dSv_event_flag_c::saveBitLabels[225]); + dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[225]); } } @@ -2014,7 +2014,12 @@ BOOL flagFile_c::check_flag(u16 i_flag) { #if VERSION > VERSION_GCN_JPN const #endif -u16 dSv_event_flag_c::saveBitLabels[822] = { +#if PLATFORM_SHIELD +s16 +#else +u16 +#endif +dSv_event_flag_c::saveBitLabels[822] = { UNUSED, TEST_001, TEST_002, TEST_003, TEST_004, F_0001, F_0002, F_0003, F_0004, F_0005, F_0006, F_0007, F_0008, F_0009, F_0010, F_0011, F_0012, F_0013, F_0014, F_0015, F_0016, F_0017, F_0018, F_0019, F_0020, D_0001, F_0021, F_0022, F_0023, F_0024, F_0025, F_0026, F_0027, F_0028, F_0029,