diff options
| author | TakaRikka <38417346+TakaRikka@users.noreply.github.com> | 2024-10-10 07:29:58 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-10-10 08:29:58 -0600 |
| commit | 12eb254d769d84743b5cc6cd5424057c57eaf0ad (patch) | |
| tree | 4509be332b2ccfc6fe939f47740d68f7746eca3e /src/d/d_menu_option.cpp | |
| parent | 2fd702c0ac170a789af879b8b92a82d4dcc9080c (diff) | |
switch to dtk setup (#2203)
* switch to dtk setup
* some cleanup / fixes
* cleanup d_a_alink literals
* Restore doxygen, update CI & README.md (#1)
* Fix build image ref (#2)
---------
Co-authored-by: Luke Street <luke@street.dev>
Diffstat (limited to 'src/d/d_menu_option.cpp')
| -rw-r--r-- | src/d/d_menu_option.cpp | 3258 |
1 files changed, 3258 insertions, 0 deletions
diff --git a/src/d/d_menu_option.cpp b/src/d/d_menu_option.cpp new file mode 100644 index 0000000000..d09dce3540 --- /dev/null +++ b/src/d/d_menu_option.cpp @@ -0,0 +1,3258 @@ +// +// Generated By: dol2asm +// Translation Unit: d/d_menu_option +// + +#include "d/d_menu_option.h" +#include "JSystem/JKernel/JKRMemArchive.h" +#include "d/d_com_inf_game.h" +#include "d/d_lib.h" +#include "d/d_select_cursor.h" +#include "d/d_file_sel_warning.h" +#include "d/d_menu_calibration.h" +#include "d/d_menu_window.h" +#include "d/d_meter2_info.h" +#include "d/d_meter_HIO.h" +#include "d/d_meter_haihai.h" +#include "d/d_msg_string.h" +#include "dol2asm.h" +#include "dolphin/os/OSRtc.h" +#include "dolphin/types.h" +#include "f_op/f_op_msg_mng.h" +#include "m_Do/m_Do_controller_pad.h" +#include "m_Do/m_Do_graphic.h" +#include "string.h" +#include "JSystem/J2DGraph/J2DAnmLoader.h" + +// +// Forward References: +// + +extern "C" void __ct__14dMenu_Option_cFP10JKRArchiveP9STControl(); +extern "C" void __dt__14dMenu_Option_cFv(); +extern "C" void _create__14dMenu_Option_cFv(); +extern "C" void _delete__14dMenu_Option_cFv(); +extern "C" void _move__14dMenu_Option_cFv(); +extern "C" void _draw__14dMenu_Option_cFv(); +extern "C" void drawHaihai__14dMenu_Option_cFv(); +extern "C" void isSync__14dMenu_Option_cFv(); +extern "C" void checkLeftTrigger__14dMenu_Option_cFv(); +extern "C" void checkRightTrigger__14dMenu_Option_cFv(); +extern "C" void setAnimation__14dMenu_Option_cFv(); +extern "C" void _open__14dMenu_Option_cFv(); +extern "C" void _close__14dMenu_Option_cFv(); +extern "C" void atten_init__14dMenu_Option_cFv(); +extern "C" void atten_move__14dMenu_Option_cFv(); +extern "C" void vib_init__14dMenu_Option_cFv(); +extern "C" void vib_move__14dMenu_Option_cFv(); +extern "C" void sound_init__14dMenu_Option_cFv(); +extern "C" void sound_move__14dMenu_Option_cFv(); +extern "C" void change_init__14dMenu_Option_cFv(); +extern "C" void change_move__14dMenu_Option_cFv(); +extern "C" void confirm_open_init__14dMenu_Option_cFv(); +extern "C" void confirm_open_move__14dMenu_Option_cFv(); +extern "C" void confirm_move_init__14dMenu_Option_cFv(); +extern "C" void confirm_move_move__14dMenu_Option_cFv(); +extern "C" void confirm_select_init__14dMenu_Option_cFv(); +extern "C" void confirm_select_move__14dMenu_Option_cFv(); +extern "C" void confirm_close_init__14dMenu_Option_cFv(); +extern "C" void confirm_close_move__14dMenu_Option_cFv(); +extern "C" void tv_open1_move__14dMenu_Option_cFv(); +extern "C" void tv_open2_move__14dMenu_Option_cFv(); +extern "C" void tv_move_move__14dMenu_Option_cFv(); +extern "C" void tv_close1_move__14dMenu_Option_cFv(); +extern "C" void tv_close2_move__14dMenu_Option_cFv(); +extern "C" void calibration_open1_move__14dMenu_Option_cFv(); +extern "C" void calibration_open2_move__14dMenu_Option_cFv(); +extern "C" void calibration_move_move__14dMenu_Option_cFv(); +extern "C" void calibration_close1_move__14dMenu_Option_cFv(); +extern "C" void calibration_close2_move__14dMenu_Option_cFv(); +extern "C" void menuVisible__14dMenu_Option_cFv(); +extern "C" void menuShow__14dMenu_Option_cFi(); +extern "C" void menuHide__14dMenu_Option_cFi(); +extern "C" void screenSet__14dMenu_Option_cFv(); +extern "C" void setSoundMode__14dMenu_Option_cFUl(); +extern "C" void setAttenString__14dMenu_Option_cFv(); +extern "C" void setVibString__14dMenu_Option_cFv(); +extern "C" void setSoundString__14dMenu_Option_cFv(); +extern "C" void setCursorPos__14dMenu_Option_cFUc(); +extern "C" void setSelectColor__14dMenu_Option_cFUcb(); +extern "C" void getSelectType__14dMenu_Option_cFv(); +extern "C" void changeBarColor__14dMenu_Option_cFb(); +extern "C" void setHIO__14dMenu_Option_cFb(); +extern "C" void cursorAnime__14dMenu_Option_cFf(); +extern "C" void setZButtonString__14dMenu_Option_cFUs(); +extern "C" void changeTVCheck__14dMenu_Option_cFv(); +extern "C" void setAButtonString__14dMenu_Option_cFUs(); +extern "C" void setBButtonString__14dMenu_Option_cFUs(); +extern "C" void isRumbleSupported__14dMenu_Option_cFv(); +extern "C" bool dpdMenuMove__14dMenu_Option_cFv(); +extern "C" void paneResize__14dMenu_Option_cFUx(); +extern "C" void initialize__14dMenu_Option_cFv(); +extern "C" void yesnoMenuMoveAnmInitSet__14dMenu_Option_cFii(); +extern "C" void yesnoMenuMoveAnm__14dMenu_Option_cFv(); +extern "C" void yesnoSelectMoveAnm__14dMenu_Option_cFv(); +extern "C" void yesnoCursorShow__14dMenu_Option_cFv(); +extern "C" void yesNoSelectStart__14dMenu_Option_cFv(); +extern "C" void yesnoSelectAnmSet__14dMenu_Option_cFv(); +extern "C" void yesnoCancelAnmSet__14dMenu_Option_cFv(); +extern "C" void yesnoWakuAlpahAnmInit__14dMenu_Option_cFUcUcUcUc(); +extern "C" void yesnoWakuAlpahAnm__14dMenu_Option_cFUc(); +extern "C" void draw__14dMenu_Option_cFv(); +extern "C" void __sinit_d_menu_option_cpp(); +extern "C" extern char const* const d_menu_d_menu_option__stringBase0; + +// +// External References: +// + +extern "C" void mDoExt_getMesgFont__Fv(); +extern "C" void mDoExt_getRubyFont__Fv(); +extern "C" void create__24mDoDvdThd_mountArchive_cFPCcUcP7JKRHeap(); +extern "C" void fopMsgM_messageGet__FPcUl(); +extern "C" void setNowVibration__14dComIfG_play_cFUc(); +extern "C" void getNowVibration__14dComIfG_play_cFv(); +extern "C" void checkTrigger__9STControlFv(); +extern "C" void checkLeftTrigger__9STControlFv(); +extern "C" void checkRightTrigger__9STControlFv(); +extern "C" void checkUpTrigger__9STControlFv(); +extern "C" void checkDownTrigger__9STControlFv(); +extern "C" void getSound__19dSv_player_config_cFv(); +extern "C" void setSound__19dSv_player_config_cFUc(); +extern "C" void setVibration__19dSv_player_config_cFUc(); +extern "C" void __ct__15dFile_warning_cFP10JKRArchiveUc(); +extern "C" void _move__15dFile_warning_cFv(); +extern "C" void openInit__15dFile_warning_cFv(); +extern "C" void closeInit__15dFile_warning_cFv(); +extern "C" void drawSelf__15dFile_warning_cFv(); +extern "C" void setText__15dFile_warning_cFUl(); +extern "C" void setFontColor__15dFile_warning_cFQ28JUtility6TColorQ28JUtility6TColor(); +extern "C" void __ct__Q28JUtility6TColorFv(); +extern "C" void __ct__16dSelect_cursor_cFUcfP10JKRArchive(); +extern "C" void setPos__16dSelect_cursor_cFffP7J2DPaneb(); +extern "C" void setParam__16dSelect_cursor_cFfffff(); +extern "C" void setScale__16dSelect_cursor_cFf(); +extern "C" void setAlphaRate__16dSelect_cursor_cFf(); +extern "C" void _move__19dMenu_Calibration_cFv(); +extern "C" void dMw_fade_out__5dMw_cFv(); +extern "C" void dMw_fade_in__5dMw_cFv(); +extern "C" void __ct__14dMeterHaihai_cFUc(); +extern "C" void drawHaihai__14dMeterHaihai_cFUcffff(); +extern "C" void getStringKanji__13dMeter2Info_cFUlPcP14JMSMesgEntry_c(); +extern "C" void dMeter2Info_set2DVibration__Fv(); +extern "C" void dMeter2Info_set2DVibrationM__Fv(); +extern "C" void __ct__12dMsgString_cFv(); +extern "C" void __dt__12dMsgString_cFv(); +extern "C" void __ct__8CPaneMgrFv(); +extern "C" void __ct__8CPaneMgrFP9J2DScreenUxUcP10JKRExpHeap(); +extern "C" void __dt__8CPaneMgrFv(); +extern "C" void paneTrans__8CPaneMgrFff(); +extern "C" void +colorAnime__8CPaneMgrFsQ28JUtility6TColorQ28JUtility6TColorQ28JUtility6TColorQ28JUtility6TColorUc(); +extern "C" void getGlobalVtxCenter__8CPaneMgrFP7J2DPanebs(); +extern "C" void dPaneClass_showNullPane__FP9J2DScreen(); +extern "C" void show__13CPaneMgrAlphaFv(); +extern "C" void hide__13CPaneMgrAlphaFv(); +extern "C" void setAlphaRate__13CPaneMgrAlphaFf(); +extern "C" void alphaAnime__13CPaneMgrAlphaFsUcUcUc(); +extern "C" void cLib_addCalc2__FPffff(); +extern "C" void seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc(); +extern "C" void setOutputMode__10Z2AudioMgrFUl(); +extern "C" void* __nw__FUl(); +extern "C" void __dl__FPv(); +extern "C" void getGlbResource__13JKRFileLoaderFPCcP13JKRFileLoader(); +extern "C" void startPatternedRumble__Q210JUTGamePad7CRumbleFPvQ310JUTGamePad7CRumble7ERumbleUl(); +extern "C" void getBounds__7J2DPaneFv(); +extern "C" void setBasePosition__7J2DPaneF15J2DBasePosition(); +extern "C" void animationTransform__7J2DPaneFv(); +extern "C" void __ct__9J2DScreenFv(); +extern "C" void setPriority__9J2DScreenFPCcUlP10JKRArchive(); +extern "C" void draw__9J2DScreenFffPC14J2DGrafContext(); +extern "C" void animation__9J2DScreenFv(); +extern "C" void __ct__10J2DPictureFPC7ResTIMG(); +extern "C" void getStringPtr__10J2DTextBoxCFv(); +extern "C" void setString__10J2DTextBoxFsPCce(); +extern "C" void load__20J2DAnmLoaderDataBaseFPCv(); +extern "C" void __construct_array(); +extern "C" void __ptmf_scall(); +extern "C" void _savegpr_20(); +extern "C" void _savegpr_23(); +extern "C" void _savegpr_24(); +extern "C" void _savegpr_25(); +extern "C" void _savegpr_26(); +extern "C" void _savegpr_27(); +extern "C" void _savegpr_28(); +extern "C" void _savegpr_29(); +extern "C" void _restgpr_20(); +extern "C" void _restgpr_23(); +extern "C" void _restgpr_24(); +extern "C" void _restgpr_25(); +extern "C" void _restgpr_26(); +extern "C" void _restgpr_27(); +extern "C" void _restgpr_28(); +extern "C" void _restgpr_29(); +extern "C" extern void* __vt__12dDlst_base_c[3]; +extern "C" u8 m_gamePad__8mDoCPd_c[16]; +extern "C" u8 m_cpadInfo__8mDoCPd_c[256]; +extern "C" u8 mFader__13mDoGph_gInf_c[4]; +extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */]; +extern "C" u8 sRumbleSupported__10JUTGamePad[4]; + +// +// Declarations: +// + +/* ############################################################################################## */ +/* 803BDBA8-803BDBB4 01ACC8 000C+00 1/1 0/0 0/0 .data cNullVec__6Z2Calc */ +SECTION_DATA static u8 cNullVec__6Z2Calc[12] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +}; + +#ifdef NONMATCHING +typedef void (dMenu_Option_c::*initFunc)(); +static initFunc init[] = { + &dMenu_Option_c::atten_init, &dMenu_Option_c::vib_init, + &dMenu_Option_c::sound_init, &dMenu_Option_c::change_init, + &dMenu_Option_c::confirm_open_init, &dMenu_Option_c::confirm_move_init, + &dMenu_Option_c::confirm_select_init, &dMenu_Option_c::confirm_close_init, +}; + +typedef void (dMenu_Option_c::*processFunc)(); +static processFunc process[] = { + &dMenu_Option_c::atten_move, &dMenu_Option_c::vib_move, + &dMenu_Option_c::sound_move, &dMenu_Option_c::change_move, + &dMenu_Option_c::confirm_open_move, &dMenu_Option_c::confirm_move_move, + &dMenu_Option_c::confirm_select_move, &dMenu_Option_c::confirm_close_move, +}; + +typedef void (dMenu_Option_c::*tvProcessFunc)(); +static tvProcessFunc tv_process[] = { + &dMenu_Option_c::tv_open1_move, &dMenu_Option_c::tv_open2_move, &dMenu_Option_c::tv_move_move, + &dMenu_Option_c::tv_close1_move, &dMenu_Option_c::tv_close2_move, +}; + +typedef void (dMenu_Option_c::*calibrationFunc)(); +static calibrationFunc calibration_process[] = { + &dMenu_Option_c::calibration_open1_move, &dMenu_Option_c::calibration_open2_move, + &dMenu_Option_c::calibration_move_move, &dMenu_Option_c::calibration_close1_move, + &dMenu_Option_c::calibration_close2_move, +}; + +#else +/* 803BDBB4-803BDBC0 -00001 000C+00 0/1 0/0 0/0 .data @3838 */ +#pragma push +#pragma force_active on +SECTION_DATA static void* lit_3838[3] = { + (void*)NULL, + (void*)0xFFFFFFFF, + (void*)atten_init__14dMenu_Option_cFv, +}; +#pragma pop + +/* 803BDBC0-803BDBCC -00001 000C+00 0/1 0/0 0/0 .data @3839 */ +#pragma push +#pragma force_active on +SECTION_DATA static void* lit_3839[3] = { + (void*)NULL, + (void*)0xFFFFFFFF, + (void*)vib_init__14dMenu_Option_cFv, +}; +#pragma pop + +/* 803BDBCC-803BDBD8 -00001 000C+00 0/1 0/0 0/0 .data @3840 */ +#pragma push +#pragma force_active on +SECTION_DATA static void* lit_3840[3] = { + (void*)NULL, + (void*)0xFFFFFFFF, + (void*)sound_init__14dMenu_Option_cFv, +}; +#pragma pop + +/* 803BDBD8-803BDBE4 -00001 000C+00 0/1 0/0 0/0 .data @3841 */ +#pragma push +#pragma force_active on +SECTION_DATA static void* lit_3841[3] = { + (void*)NULL, + (void*)0xFFFFFFFF, + (void*)change_init__14dMenu_Option_cFv, +}; +#pragma pop + +/* 803BDBE4-803BDBF0 -00001 000C+00 0/1 0/0 0/0 .data @3842 */ +#pragma push +#pragma force_active on +SECTION_DATA static void* lit_3842[3] = { + (void*)NULL, + (void*)0xFFFFFFFF, + (void*)confirm_open_init__14dMenu_Option_cFv, +}; +#pragma pop + +/* 803BDBF0-803BDBFC -00001 000C+00 0/1 0/0 0/0 .data @3843 */ +#pragma push +#pragma force_active on +SECTION_DATA static void* lit_3843[3] = { + (void*)NULL, + (void*)0xFFFFFFFF, + (void*)confirm_move_init__14dMenu_Option_cFv, +}; +#pragma pop + +/* 803BDBFC-803BDC08 -00001 000C+00 0/1 0/0 0/0 .data @3844 */ +#pragma push +#pragma force_active on +SECTION_DATA static void* lit_3844[3] = { + (void*)NULL, + (void*)0xFFFFFFFF, + (void*)confirm_select_init__14dMenu_Option_cFv, +}; +#pragma pop + +/* 803BDC08-803BDC14 -00001 000C+00 0/1 0/0 0/0 .data @3845 */ +#pragma push +#pragma force_active on +SECTION_DATA static void* lit_3845[3] = { + (void*)NULL, + (void*)0xFFFFFFFF, + (void*)confirm_close_init__14dMenu_Option_cFv, +}; +#pragma pop + +/* 803BDC14-803BDC74 01AD34 0060+00 1/2 0/0 0/0 .data init */ +SECTION_DATA static u8 init[96] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +}; + +/* 803BDC74-803BDC80 -00001 000C+00 0/1 0/0 0/0 .data @3846 */ +#pragma push +#pragma force_active on +SECTION_DATA static void* lit_3846[3] = { + (void*)NULL, + (void*)0xFFFFFFFF, + (void*)atten_move__14dMenu_Option_cFv, +}; +#pragma pop + +/* 803BDC80-803BDC8C -00001 000C+00 0/1 0/0 0/0 .data @3847 */ +#pragma push +#pragma force_active on +SECTION_DATA static void* lit_3847[3] = { + (void*)NULL, + (void*)0xFFFFFFFF, + (void*)vib_move__14dMenu_Option_cFv, +}; +#pragma pop + +/* 803BDC8C-803BDC98 -00001 000C+00 0/1 0/0 0/0 .data @3848 */ +#pragma push +#pragma force_active on +SECTION_DATA static void* lit_3848[3] = { + (void*)NULL, + (void*)0xFFFFFFFF, + (void*)sound_move__14dMenu_Option_cFv, +}; +#pragma pop + +/* 803BDC98-803BDCA4 -00001 000C+00 0/1 0/0 0/0 .data @3849 */ +#pragma push +#pragma force_active on +SECTION_DATA static void* lit_3849[3] = { + (void*)NULL, + (void*)0xFFFFFFFF, + (void*)change_move__14dMenu_Option_cFv, +}; +#pragma pop + +/* 803BDCA4-803BDCB0 -00001 000C+00 0/1 0/0 0/0 .data @3850 */ +#pragma push +#pragma force_active on +SECTION_DATA static void* lit_3850[3] = { + (void*)NULL, + (void*)0xFFFFFFFF, + (void*)confirm_open_move__14dMenu_Option_cFv, +}; +#pragma pop + +/* 803BDCB0-803BDCBC -00001 000C+00 0/1 0/0 0/0 .data @3851 */ +#pragma push +#pragma force_active on +SECTION_DATA static void* lit_3851[3] = { + (void*)NULL, + (void*)0xFFFFFFFF, + (void*)confirm_move_move__14dMenu_Option_cFv, +}; +#pragma pop + +/* 803BDCBC-803BDCC8 -00001 000C+00 0/1 0/0 0/0 .data @3852 */ +#pragma push +#pragma force_active on +SECTION_DATA static void* lit_3852[3] = { + (void*)NULL, + (void*)0xFFFFFFFF, + (void*)confirm_select_move__14dMenu_Option_cFv, +}; +#pragma pop + +/* 803BDCC8-803BDCD4 -00001 000C+00 0/1 0/0 0/0 .data @3853 */ +#pragma push +#pragma force_active on +SECTION_DATA static void* lit_3853[3] = { + (void*)NULL, + (void*)0xFFFFFFFF, + (void*)confirm_close_move__14dMenu_Option_cFv, +}; +#pragma pop + +/* 803BDCD4-803BDD34 01ADF4 0060+00 1/2 0/0 0/0 .data process */ +SECTION_DATA static u8 process[96] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +}; + +/* 803BDD34-803BDD40 -00001 000C+00 0/1 0/0 0/0 .data @3854 */ +#pragma push +#pragma force_active on +SECTION_DATA static void* lit_3854[3] = { + (void*)NULL, + (void*)0xFFFFFFFF, + (void*)tv_open1_move__14dMenu_Option_cFv, +}; +#pragma pop + +/* 803BDD40-803BDD4C -00001 000C+00 0/1 0/0 0/0 .data @3855 */ +#pragma push +#pragma force_active on +SECTION_DATA static void* lit_3855[3] = { + (void*)NULL, + (void*)0xFFFFFFFF, + (void*)tv_open2_move__14dMenu_Option_cFv, +}; +#pragma pop + +/* 803BDD4C-803BDD58 -00001 000C+00 0/1 0/0 0/0 .data @3856 */ +#pragma push +#pragma force_active on +SECTION_DATA static void* lit_3856[3] = { + (void*)NULL, + (void*)0xFFFFFFFF, + (void*)tv_move_move__14dMenu_Option_cFv, +}; +#pragma pop + +/* 803BDD58-803BDD64 -00001 000C+00 0/1 0/0 0/0 .data @3857 */ +#pragma push +#pragma force_active on +SECTION_DATA static void* lit_3857[3] = { + (void*)NULL, + (void*)0xFFFFFFFF, + (void*)tv_close1_move__14dMenu_Option_cFv, +}; +#pragma pop + +/* 803BDD64-803BDD70 -00001 000C+00 0/1 0/0 0/0 .data @3858 */ +#pragma push +#pragma force_active on +SECTION_DATA static void* lit_3858[3] = { + (void*)NULL, + (void*)0xFFFFFFFF, + (void*)tv_close2_move__14dMenu_Option_cFv, +}; +#pragma pop + +/* 803BDD70-803BDDAC 01AE90 003C+00 3/4 0/0 0/0 .data tv_process */ +SECTION_DATA static u8 tv_process[60] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +}; + +/* 803BDDAC-803BDDB8 -00001 000C+00 0/1 0/0 0/0 .data @3859 */ +#pragma push +#pragma force_active on +SECTION_DATA static void* lit_3859[3] = { + (void*)NULL, + (void*)0xFFFFFFFF, + (void*)calibration_open1_move__14dMenu_Option_cFv, +}; +#pragma pop + +/* 803BDDB8-803BDDC4 -00001 000C+00 0/1 0/0 0/0 .data @3860 */ +#pragma push +#pragma force_active on +SECTION_DATA static void* lit_3860[3] = { + (void*)NULL, + (void*)0xFFFFFFFF, + (void*)calibration_open2_move__14dMenu_Option_cFv, +}; +#pragma pop + +/* 803BDDC4-803BDDD0 -00001 000C+00 0/1 0/0 0/0 .data @3861 */ +#pragma push +#pragma force_active on +SECTION_DATA static void* lit_3861[3] = { + (void*)NULL, + (void*)0xFFFFFFFF, + (void*)calibration_move_move__14dMenu_Option_cFv, +}; +#pragma pop + +/* 803BDDD0-803BDDDC -00001 000C+00 0/1 0/0 0/0 .data @3862 */ +#pragma push +#pragma force_active on +SECTION_DATA static void* lit_3862[3] = { + (void*)NULL, + (void*)0xFFFFFFFF, + (void*)calibration_close1_move__14dMenu_Option_cFv, +}; +#pragma pop + +/* 803BDDDC-803BDDE8 -00001 000C+00 0/1 0/0 0/0 .data @3863 */ +#pragma push +#pragma force_active on +SECTION_DATA static void* lit_3863[3] = { + (void*)NULL, + (void*)0xFFFFFFFF, + (void*)calibration_close2_move__14dMenu_Option_cFv, +}; +#pragma pop + +/* 803BDDE8-803BDE54 01AF08 003C+30 0/1 0/0 0/0 .data calibration_process */ +#pragma push +#pragma force_active on +SECTION_DATA static u8 calibration_process[60 + 48 /* padding */] = { + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + /* padding */ + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, +}; +#pragma pop +#endif + +/* 803BDE54-803BDE70 01AF74 0010+0C 2/2 0/0 0/0 .data __vt__14dMenu_Option_c */ +SECTION_DATA extern void* __vt__14dMenu_Option_c[4 + 3 /* padding */] = { + (void*)NULL /* RTTI */, + (void*)NULL, + (void*)draw__14dMenu_Option_cFv, + (void*)__dt__14dMenu_Option_cFv, + /* padding */ + NULL, + NULL, + NULL, +}; + +/* 801E1F10-801E2014 1DC850 0104+00 0/0 2/2 0/0 .text + * __ct__14dMenu_Option_cFP10JKRArchiveP9STControl */ +dMenu_Option_c::dMenu_Option_c(JKRArchive* i_archive, STControl* i_stick) { + mUseFlag = 0; + mBarScale[0] = g_drawHIO.mOptionScreen.mBarScale[0]; + mBarScale[1] = g_drawHIO.mOptionScreen.mBarScale[1]; + mpArchive = NULL; + mpStick = i_stick; + mpMount = NULL; + mQuitStatus = 1; + mpCalibration = NULL; +} + +/* 801E2014-801E205C 1DC954 0048+00 1/0 0/0 0/0 .text __dt__14dMenu_Option_cFv */ +dMenu_Option_c::~dMenu_Option_c() {} + +/* 80396EA8-80396EB8 023508 000C+04 4/4 0/0 0/0 .rodata dMo_soundMode */ +static const u32 dMo_soundMode[3] = {0, 1, 2}; + +/* 80396EB8-80396EE0 023518 0028+00 0/1 0/0 0/0 .rodata text_a_tag$3904 */ +#pragma push +#pragma force_active on +static const u64 text_a_tag_3904[5] = { + 'atext1_1', 'atext1_2', 'atext1_3', 'atext1_4', 'atext1_5', +}; +#pragma pop + +/* 80396EE0-80396F08 023540 0028+00 0/1 0/0 0/0 .rodata text_b_tag$3905 */ +#pragma push +#pragma force_active on +static const u64 text_b_tag_3905[5] = { + 'btext1_1', 'btext1_2', 'btext1_3', 'btext1_4', 'btext1_5', +}; +#pragma pop + +/* 80396F08-80396F18 023568 0010+00 0/1 0/0 0/0 .rodata l_tagName012$3918 */ +#pragma push +#pragma force_active on +static const u64 l_tagName012[2] = { + 'w_no_n', + 'w_yes_n', +}; +#pragma pop + +/* 80396F18-80396F28 023578 0010+00 0/1 0/0 0/0 .rodata l_tagName013$3919 */ +#pragma push +#pragma force_active on +static const u64 l_tagName013[2] = { + 'w_no_t', + 'w_yes_t', +}; +#pragma pop + +/* 80396F28-80396F38 023588 0010+00 0/1 0/0 0/0 .rodata l_tagName9$3928 */ +#pragma push +#pragma force_active on +static const u64 l_tagName9[2] = { + 'w_no_m', + 'w_yes_m', +}; +#pragma pop + +/* 80396F38-80396F48 023598 0010+00 0/1 0/0 0/0 .rodata l_tagName10$3929 */ +#pragma push +#pragma force_active on +static const u64 l_tagName10[2] = { + 'w_no_g', + 'w_yes_g', +}; +#pragma pop + +/* 80396F48-80396F58 0235A8 0010+00 0/1 0/0 0/0 .rodata l_tagName11$3930 */ +#pragma push +#pragma force_active on +static const u64 l_tagName11[2] = { + 'w_no_gr', + 'w_yes_gr', +}; +#pragma pop + +/* 803975D8-803975D8 023C38 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ +#pragma push +#pragma force_active on +SECTION_DEAD static char const* const stringBase_803975D8 = "zelda_option_select_menu.blo"; +SECTION_DEAD static char const* const stringBase_803975F5 = ""; +SECTION_DEAD static char const* const stringBase_803975F6 = "zelda_option_base.blo"; +SECTION_DEAD static char const* const stringBase_8039760C = "zelda_option_menu_text.blo"; +SECTION_DEAD static char const* const stringBase_80397627 = "zelda_option_menu_shadow.blo"; +SECTION_DEAD static char const* const stringBase_80397644 = "zelda_option_check.blo"; +SECTION_DEAD static char const* const stringBase_8039765B = "zelda_collect_soubi_do_icon_parts.blo"; +SECTION_DEAD static char const* const stringBase_80397681 = "tt_block8x8.bti"; +SECTION_DEAD static char const* const stringBase_80397691 = "zelda_file_select_yes_no_window.blo"; +SECTION_DEAD static char const* const stringBase_803976B5 = "zelda_file_select_yes_no_window.bck"; +SECTION_DEAD static char const* const stringBase_803976D9 = "zelda_file_select_yes_no_window.bpk"; +SECTION_DEAD static char const* const stringBase_803976FD = "zelda_file_select_yes_no_window.btk"; +#pragma pop + +/* 80454328-8045432C 002928 0002+02 1/1 0/0 0/0 .sdata2 l_msgNum2$3920 */ +SECTION_SDATA2 static u8 l_msgNum2[2 + 2 /* padding */] = { + 0x08, + 0x07, + /* padding */ + 0x00, + 0x00, +}; + +/* 8045432C-80454330 00292C 0004+00 11/11 0/0 0/0 .sdata2 @4068 */ +SECTION_SDATA2 static u8 lit_4068[4] = { + 0x00, + 0x00, + 0x00, + 0x00, +}; + +/* 80454330-80454334 002930 0004+00 18/18 0/0 0/0 .sdata2 @4069 */ +SECTION_SDATA2 static f32 lit_4069 = 1.0f; + +/* 801E205C-801E2C1C 1DC99C 0BC0+00 1/1 0/0 0/0 .text _create__14dMenu_Option_cFv */ +void dMenu_Option_c::_create() { + mpFont = mDoExt_getMesgFont(); + mpString = new dMsgString_c(); + mpMeterHaihai = new dMeterHaihai_c(3); + field_0x3f6 = 0; + mpScreen = new J2DScreen(); + mpScreen->setPriority("zelda_option_select_menu.blo", 0x20000, mpArchive); + mpScreen->search('base_a_n')->hide(); + mpScreen->search('y_set_p4')->hide(); + mpScreen->search('y_set_p3')->hide(); + mpScreen->search('y_set_p2')->hide(); + mpScreen->search('y_set_p1')->hide(); + mpScreen->search('y_set_p0')->hide(); + field_0x254[0] = (J2DTextBox*)mpScreen->search('cont_ts'); + field_0x254[1] = (J2DTextBox*)mpScreen->search('cont_t'); + for (int i = 0; i < 2; i++) { + field_0x254[i]->setFont(mDoExt_getMesgFont()); + field_0x254[i]->setString(0x20, ""); + } + mpBackScreen = new J2DScreen(); + mpBackScreen->setPriority("zelda_option_base.blo", 0x20000, mpArchive); + mpBackScreen->search('wi_btn_n')->hide(); + field_0x27c = mpBackScreen->search('let_area'); + mpClipScreen = new J2DScreen(); + mpClipScreen->setPriority("zelda_option_menu_text.blo", 0x20000, mpArchive); + dPaneClass_showNullPane(mpClipScreen); + mpClipScreen->setScissor(true); + mpShadowScreen = new J2DScreen(); + mpShadowScreen->setPriority("zelda_option_menu_shadow.blo", 0x20000, mpArchive); + dPaneClass_showNullPane(mpShadowScreen); + mpShadowScreen->search('mw_n_5')->hide(); + mpTVScreen = new J2DScreen(); + mpTVScreen->setPriority("zelda_option_check.blo", 0x20000, mpArchive); + dPaneClass_showNullPane(mpTVScreen); + mpTVButtonAB = new CPaneMgr(mpTVScreen, 'g_abtn_n', 0, NULL); + mpTVButtonText = new CPaneMgr(mpTVScreen, 'a_text_n', 0, NULL); + mpTVScreen->search('g_abtn_n')->hide(); + mpScreenIcon = new J2DScreen(); + mpScreenIcon->setPriority("zelda_collect_soubi_do_icon_parts.blo", 0x20000, mpArchive); + for (int i = 0; i < 2; i++) { + mpButtonAB[i] = NULL; + mpButtonText[i] = NULL; + } + dPaneClass_showNullPane(mpScreenIcon); + field_0x3dc = 0; + field_0x3de = 0; + for (int i = 0; i < 5; i++) { + ((J2DTextBox*)(mpScreenIcon->search(text_a_tag_3904[i])))->setFont(mDoExt_getMesgFont()); + ((J2DTextBox*)(mpScreenIcon->search(text_b_tag_3905[i])))->setFont(mDoExt_getMesgFont()); + + ((J2DTextBox*)(mpScreenIcon->search(text_a_tag_3904[i])))->setString(0x20, ""); + ((J2DTextBox*)(mpScreenIcon->search(text_b_tag_3905[i])))->setString(0x20, ""); + } + setAButtonString(0x40C); + setBButtonString(0x3F9); + ResTIMG* timg = (ResTIMG*)dComIfGp_getMain2DArchive()->getResource('TIMG', "tt_block8x8.bti"); + mpBlackTex = new J2DPicture(timg); + mpBlackTex->setBlackWhite(JUtility::TColor(0, 0, 0, 0), JUtility::TColor(0, 0, 0, 0xff)); + mpBlackTex->setAlpha(0); + field_0x374 = 0.0f; + mpWarning = new dFile_warning_c(mpArchive, 1); + mpWarning->setFontColor(JUtility::TColor(0, 0, 0, 0), JUtility::TColor(0xc8, 0xc8, 0xc8, 0xff)); + mpSelectScreen = new J2DScreen(); + mpSelectScreen->setPriority("zelda_file_select_yes_no_window.blo", 0x1100000, mpArchive); + dPaneClass_showNullPane(mpSelectScreen); + void* resource = JKRGetNameResource("zelda_file_select_yes_no_window.bck", mpArchive); + field_0x24 = (J2DAnmTransform*)J2DAnmLoaderDataBase::load(resource); + field_0x28 = (J2DAnmTransform*)J2DAnmLoaderDataBase::load(resource); + field_0x20 = (J2DAnmTransform*)J2DAnmLoaderDataBase::load(resource); + field_0x24->searchUpdateMaterialID(mpSelectScreen); + field_0x28->searchUpdateMaterialID(mpSelectScreen); + field_0x20->searchUpdateMaterialID(mpSelectScreen); + for (int i = 0; i < 2; i++) { + mpYesNoSelBase_c[i] = new CPaneMgr(mpSelectScreen, l_tagName012[i], 0, NULL); + mpYesNoTxt_c[i] = new CPaneMgr(mpSelectScreen, l_tagName013[i], 0, NULL); + J2DTextBox* yesNoTxt = (J2DTextBox*)mpYesNoTxt_c[i]->getPanePtr(); + yesNoTxt->setFont(mDoExt_getMesgFont()); + char message[24]; + fopMsgM_messageGet(message, l_msgNum2[i]); + J2DTextBox* yesNoTxt2 = (J2DTextBox*)mpYesNoTxt_c[i]->getPanePtr(); + yesNoTxt2->setString(0x20, message); + } + resource = JKRGetNameResource("zelda_file_select_yes_no_window.bpk", mpArchive); + field_0x2c = (J2DAnmColor*)J2DAnmLoaderDataBase::load(resource); + field_0x2c->searchUpdateMaterialID(mpSelectScreen); + field_0x3c0 = 0; + resource = JKRGetNameResource("zelda_file_select_yes_no_window.btk", mpArchive); + field_0x30 = (J2DAnmTextureSRTKey*)J2DAnmLoaderDataBase::load(resource); + field_0x30->searchUpdateMaterialID(mpSelectScreen); + field_0x3c4 = 0; + for (int i = 0; i < 2; i++) { + mpYesNoCurWaku_c[i] = new CPaneMgr(mpSelectScreen, l_tagName9[i], 0, NULL); + mpYesNoCurWakuG0_c[i] = new CPaneMgr(mpSelectScreen, l_tagName10[i], 0, NULL); + mpYesNoCurWakuG1_c[i] = new CPaneMgr(mpSelectScreen, l_tagName11[i], 0, NULL); + mpYesNoCurWaku_c[i]->getPanePtr()->setAnimation(field_0x2c); + mpYesNoCurWakuG0_c[i]->getPanePtr()->setAnimation(field_0x2c); + mpYesNoCurWakuG1_c[i]->getPanePtr()->setAnimation(field_0x2c); + mpYesNoCurWakuG0_c[i]->getPanePtr()->setAnimation(field_0x30); + mpYesNoCurWakuG1_c[i]->getPanePtr()->setAnimation(field_0x30); + } + field_0x3f9 = 0; + field_0x3fa = 0; + field_0x401 = 0xff; + field_0x402 = 0xff; + for (int i = 0; i < 2; i++) { + field_0x3fb[i] = 0; + field_0x3fd[i] = 0; + field_0x3ff[i] = 0; + } + field_0x403 = 0; + screenSet(); + field_0x3e0 = 0; + field_0x3e1 = 10; + field_0x3e2 = 0xff; + field_0x3e3 = 0xc0; + field_0x3ef = 0; + field_0x3f0 = 0xff; + field_0x3f1 = 0xff; + field_0x3f2 = 0; + field_0x3f5 = 0; + field_0x3f3 = 5; + field_0x3f4 = 5; + field_0x334 = 0.0f; + field_0x330 = 0.0f; + field_0x338 = 1.0f; + field_0x3f7 = 0; + setZButtonString(1); + field_0x378 = 0.0f; + field_0x37c = 0.0f; + field_0x380 = 1.0f; + for (int i = 0; i < 6; i++) { + field_0x384[i] = 0.0f; + field_0x39c[i] = 0.0f; + } + field_0x3b8.r = 0xff; + field_0x3b8.g = 0xff; + field_0x3b8.b = 0xff; + field_0x3b8.a = 0xff; + field_0x3bc.r = 0xff; + field_0x3bc.g = 0xff; + field_0x3bc.b = 0xff; + field_0x3bc.a = 0xff; + initialize(); + setHIO(true); +} + + +/* 801E2C1C-801E3408 1DD55C 07EC+00 0/0 3/3 0/0 .text _delete__14dMenu_Option_cFv */ +void dMenu_Option_c::_delete() { + delete mpString; + mpString = NULL; + + delete mpScreen; + mpScreen = NULL; + + delete mpMeterHaihai; + mpMeterHaihai = NULL; + + delete mpBackScreen; + mpBackScreen = NULL; + + delete mpClipScreen; + mpClipScreen = NULL; + + delete mpShadowScreen; + mpShadowScreen = NULL; + + delete mpTVScreen; + mpTVScreen = NULL; + + if (mpTVButtonAB != NULL) { + delete mpTVButtonAB; + mpTVButtonAB = NULL; + } + + if (mpTVButtonText != NULL) { + delete mpTVButtonText; + mpTVButtonText = NULL; + } + + delete mpScreenIcon; + mpScreenIcon = NULL; + + for (int i = 0; i < 2; i++) { + if (mpButtonAB[i] != NULL) { + delete mpButtonAB[i]; + mpButtonAB[i] = NULL; + } + + if (mpButtonText[i] != NULL) { + delete mpButtonText[i]; + mpButtonText[i] = NULL; + } + } + + delete mpBlackTex; + mpBlackTex = NULL; + + delete mpWarning; + mpWarning = NULL; + + delete mpSelectScreen; + mpSelectScreen = NULL; + + delete field_0x24; + field_0x24 = NULL; + + delete field_0x28; + field_0x28 = NULL; + + delete field_0x20; + field_0x20 = NULL; + + for (int i = 0; i < 2; i++) { + delete mpYesNoSelBase_c[i]; + mpYesNoSelBase_c[i] = NULL; + + delete mpYesNoTxt_c[i]; + mpYesNoTxt_c[i] = NULL; + + delete mpYesNoCurWaku_c[i]; + mpYesNoCurWaku_c[i] = NULL; + + delete mpYesNoCurWakuG0_c[i]; + mpYesNoCurWakuG0_c[i] = NULL; + + delete mpYesNoCurWakuG1_c[i]; + mpYesNoCurWakuG1_c[i] = NULL; + } + + delete field_0x2c; + field_0x2c = NULL; + + delete field_0x30; + field_0x30 = NULL; + + if (isUseFlag(1)) { + delete mpStick; + mpStick = NULL; + } + + delete mpTitle; + mpTitle = NULL; + + delete mpDrawCursor; + mpDrawCursor = NULL; + + for (int i = 0; i < 5; i++) { + delete mpParent[i]; + mpParent[i] = NULL; + } + + for (int i = 0; i < 5; i++) { + delete mpHaihaiPosL[i]; + mpHaihaiPosL[i] = NULL; + + delete mpHaihaiPosR[i]; + mpHaihaiPosR[i] = NULL; + } + + for (int i = 0; i < 6; i++) { + delete mpMenuNull[i]; + mpMenuNull[i] = NULL; + + delete mpMenuPane[i]; + mpMenuPane[i] = NULL; + + if (mpMenuPaneC[i] != NULL) { + delete mpMenuPaneC[i]; + mpMenuPaneC[i] = NULL; + } + + if (mpMenuPane2[i] != NULL) { + delete mpMenuPane2[i]; + mpMenuPane2[i] = NULL; + } + + if (mpMenuPane3[i] != NULL) { + delete mpMenuPane3[i]; + mpMenuPane3[i] = NULL; + } + + if (mpMenuPane32[i] != NULL) { + delete mpMenuPane32[i]; + mpMenuPane32[i] = NULL; + } + } + + for (int i = 0; i < 6; i++) { + for (int j = 0; j < 6; j++) { + if (mpMenuText[i][j] != NULL) { + delete mpMenuText[i][j]; + mpMenuText[i][j] = NULL; + } + } + } + + for (int i = 0; i < 4; i++) { + if (field_0x1c0[i] != NULL) { + delete field_0x1c0[i]; + field_0x1c0[i] = NULL; + } + } + + for (int i = 0; i < 3; i++) { + if (mpZButtonText[i] != NULL) { + delete mpZButtonText[i]; + mpZButtonText[i] = NULL; + } + } + + if (mpMount != NULL) { + mpMount->getArchive()->unmount(); + delete mpMount; + mpMount = NULL; + } + + if (mpArchive != NULL) { + mpArchive->unmount(); + mpArchive = NULL; + } + + dComIfGp_setOptionResArchive(NULL); +} + +/* 801E3408-801E36CC 1DDD48 02C4+00 0/0 2/2 0/0 .text _move__14dMenu_Option_cFv */ +#ifdef NONMATCHING +// matches but sinit and literals +void dMenu_Option_c::_move() { + mpStick->checkTrigger(); + if (field_0x3ea != 0 && !isRumbleSupported()) { + field_0x3ea = 0; + } + if (mDoGph_gInf_c::getFader()->getStatus() == 1) { + if (mDoCPd_c::getTrigA(PAD_1) != 0 && field_0x3ef != 3 && field_0x3f3 == 5) { + if (field_0x3f4 == 5 && field_0x3ef != 4 && field_0x3ef != 5 && field_0x3ef != 6 && + field_0x3ef != 7) + { + if (mDoCPd_c::getTrigStart(PAD_1) == 0 && mDoCPd_c::getTrigB(PAD_1) == 0) { + if (mDoCPd_c::getTrigUp(PAD_1) == 0 && mDoCPd_c::getTrigDown(PAD_1) == 0 && + mDoCPd_c::getTrigLeft(PAD_1) == 0 && mDoCPd_c::getTrigRight(PAD_1) == 0) + { + field_0x3f7 = 1; + field_0x3f5 = field_0x3ef; + field_0x3ef = 4; + dMeter2Info_set2DVibration(); + (this->*init[field_0x3ef])(); + goto skip; + } + } + } + } + if (mDoCPd_c::getTrigB(PAD_1) != 0 && field_0x3ef != 3 && field_0x3f3 == 5 && + field_0x3ef != 4 && field_0x3ef != 5 && field_0x3ef != 6 && field_0x3ef != 7) + { + if (field_0x3f4 == 5 && mDoCPd_c::getTrigStart(PAD_1) == 0 && + mDoCPd_c::getTrigA(PAD_1) == 0 && mDoCPd_c::getTrigUp(PAD_1) == 0 && + mDoCPd_c::getTrigDown(PAD_1) == 0 && mDoCPd_c::getTrigLeft(PAD_1) == 0 && + mDoCPd_c::getTrigRight(PAD_1) == 0) + { + field_0x3f7 = 0; + field_0x3f5 = field_0x3ef; + field_0x3ef = 4; + dMeter2Info_set2DVibration(); + (this->*init[field_0x3ef])(); + } + } + } +skip: + u8 oldValue = field_0x3ef; + if (field_0x3f3 == 5 && oldValue != 4 && oldValue != 5 && oldValue != 6 && oldValue != 7) { + dpdMenuMove(); + } + field_0x3f2 = 0; + if (field_0x3f1 != 0xff) { + if (field_0x3f0 != field_0x3f1 && field_0x3ef != field_0x3f1) { + field_0x3f0 = field_0x3f1; + field_0x3f2 = 1; + } + } else { + field_0x3f0 = 0xff; + } + (this->*process[field_0x3ef])(); + mpSelectScreen->animation(); + if (oldValue != field_0x3ef) { + (this->*init[field_0x3ef])(); + } + setHIO(false); +} +#else +void dMenu_Option_c::_move() { + // NONMATCHING +} +#endif + +/* ############################################################################################## */ +/* 80454334-80454338 002934 0004+00 1/1 0/0 0/0 .sdata2 @4442 */ +SECTION_SDATA2 static f32 lit_4442 = 608.0f; + +/* 80454338-80454340 002938 0004+04 1/1 0/0 0/0 .sdata2 @4443 */ +SECTION_SDATA2 static f32 lit_4443[1 + 1 /* padding */] = { + 448.0f, + /* padding */ + 0.0f, +}; + +/* 80454340-80454348 002940 0008+00 1/1 0/0 0/0 .sdata2 @4445 */ +SECTION_SDATA2 static f64 lit_4445 = 4503599627370496.0 /* cast u32 to float */; + +/* 801E36CC-801E38CC 1DE00C 0200+00 1/1 1/1 0/0 .text _draw__14dMenu_Option_cFv */ +void dMenu_Option_c::_draw() { + if (mpArchive != NULL) { + J2DGrafContext* ctx = dComIfGp_getCurrentGrafPort(); + mpBlackTex->setAlpha(0xff); + mpBlackTex->draw(0.0f, 0.0f, 608.0f, 448.0f, 0, 0, 0); + mpBackScreen->draw(0.0f, 0.0f, ctx); + f32 alpha = (f32)g_drawHIO.mOptionScreen.mBackgroundAlpha * (f32)field_0x374; + mpBlackTex->setAlpha(alpha); + mpBlackTex->draw(0.0f, 0.0f, 608.0f, 448.0f, 0, 0, 0); + mpScreen->draw(0.0f, 0.0f, ctx); + mpClipScreen->draw(0.0f, 0.0f, ctx); + mpShadowScreen->draw(0.0f, 0.0f, ctx); + if (field_0x3f3 == 1 || field_0x3f3 == 2 || field_0x3f3 == 3) { + mpTVScreen->draw(0.0f, 0.0f, ctx); + } + if (field_0x3f3 == 5) { + mpDrawCursor->draw(); + } + drawHaihai(); + mpWarning->drawSelf(); + mpSelectScreen->draw(0.0f, 0.0f, ctx); + if (field_0x3f3 != 1 && field_0x3f3 != 2 && field_0x3f3 != 3) { + mpScreenIcon->draw(0.0f, 0.0f, ctx); + } + } +} + + +/* ############################################################################################## */ +/* 80454348-8045434C 002948 0004+00 1/1 0/0 0/0 .sdata2 @4469 */ +SECTION_SDATA2 static f32 lit_4469 = 43.0f / 10.0f; + +/* 8045434C-80454350 00294C 0004+00 1/1 0/0 0/0 .sdata2 @4470 */ +SECTION_SDATA2 static f32 lit_4470 = -5.0f; + +/* 80454350-80454354 002950 0004+00 5/5 0/0 0/0 .sdata2 @4471 */ +SECTION_SDATA2 static f32 lit_4471 = 0.5f; + +/* 80454354-80454358 002954 0004+00 11/11 0/0 0/0 .sdata2 @4472 */ +SECTION_SDATA2 static f32 lit_4472 = -1.0f; + +/* 801E38CC-801E3A7C 1DE20C 01B0+00 1/1 0/0 0/0 .text drawHaihai__14dMenu_Option_cFv */ +void dMenu_Option_c::drawHaihai() { + CPaneMgr pane; + u8 selectType = getSelectType(); + field_0x3f6 = 0; + field_0x3f6 |= 1; + field_0x3f6 |= 4; + if (selectType < 4 && field_0x3f6 != 0 && field_0x3f3 == 5 && field_0x3ef != 4 && + field_0x3ef != 5 && field_0x3ef != 6 && field_0x3ef != 7) + { + mpMeterHaihai->_execute(0); + Vec haihaiPosL = + mpHaihaiPosL[selectType]->getGlobalVtxCenter(mpHaihaiPosL[selectType]->mPane, false, 0); + Vec haihaiPosR = + mpHaihaiPosR[selectType]->getGlobalVtxCenter(mpHaihaiPosR[selectType]->mPane, false, 0); + haihaiPosL.x += g_drawHIO.mOptionScreen.mArrowOffsetX_4x3; + haihaiPosR.x -= g_drawHIO.mOptionScreen.mArrowOffsetX_4x3; + + f32 haihaiX = haihaiPosR.x - haihaiPosL.x; + f32 haihaiY = haihaiPosR.y - haihaiPosL.y; + mpMeterHaihai->drawHaihai(field_0x3f6, haihaiPosL.x + haihaiX / 2 + -5.0f + 4.3f, + haihaiPosL.y + haihaiY / 2 + -1.0f, haihaiX, haihaiY); + field_0x3f6 = 0; + } +} + + +/* 801E3A7C-801E3AA4 1DE3BC 0028+00 0/0 1/1 0/0 .text isSync__14dMenu_Option_cFv */ +bool dMenu_Option_c::isSync() { + if (mpMount != NULL && mpMount->sync() == false) { + return 0; + } + return 1; +} + +/* 801E3AA4-801E3AC8 1DE3E4 0024+00 4/4 0/0 0/0 .text checkLeftTrigger__14dMenu_Option_cFv */ +bool dMenu_Option_c::checkLeftTrigger() { + return mpStick->checkLeftTrigger(); +} + +/* 801E3AC8-801E3AEC 1DE408 0024+00 4/4 0/0 0/0 .text checkRightTrigger__14dMenu_Option_cFv */ +bool dMenu_Option_c::checkRightTrigger() { + return mpStick->checkRightTrigger(); +} + +/* ############################################################################################## */ +/* 80454358-80454360 002958 0008+00 8/8 0/0 0/0 .sdata2 @4520 */ +SECTION_SDATA2 static f64 lit_4520 = 4503601774854144.0 /* cast s32 to float */; + +/* 801E3AEC-801E3B98 1DE42C 00AC+00 4/4 0/0 0/0 .text setAnimation__14dMenu_Option_cFv */ +void dMenu_Option_c::setAnimation() { + s16 frameMax; + + field_0x3c0 += 2; + frameMax = field_0x2c->getFrameMax(); + if (field_0x3c0 >= frameMax) { + field_0x3c0 = field_0x3c0 - frameMax; + } + field_0x2c->setFrame(field_0x3c0); + + field_0x3c4 += 2; + frameMax = field_0x30->getFrameMax(); + if (field_0x3c4 >= frameMax) { + field_0x3c4 = field_0x3c4 - frameMax; + } + field_0x30->setFrame(field_0x3c4); +} + + +/* ############################################################################################## */ +/* 803975D8-803975D8 023C38 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ +#pragma push +#pragma force_active on +SECTION_DEAD static char const* const stringBase_80397721 = "/res/Layout/optres.arc"; +#pragma pop + +/* 801E3B98-801E3DE0 1DE4D8 0248+00 0/0 2/2 0/0 .text _open__14dMenu_Option_cFv */ +bool dMenu_Option_c::_open() { + if (!mpMount) { + mpMount = mDoDvdThd_mountArchive_c::create("/res/Layout/optres.arc", 0, NULL); + } + if (mpMount->sync() != 0) { + if (!dComIfGp_getOptionResArchive()) { + dComIfGp_setOptionResArchive(mpMount->getArchive()); + mpArchive = dComIfGp_getOptionResArchive(); + delete mpMount; + mpMount = NULL; + _create(); + } + } else { + return 0; + } + + s16 openFrame = g_drawHIO.mOptionScreen.mOpenFrames; + s16 closeFrame = g_drawHIO.mOptionScreen.mCloseFrames; + mFrame = openFrame; + setHIO(false); + if (mFrame >= openFrame) { + mFrame = closeFrame; + mQuitStatus = 2; + field_0x3ef = 0; + atten_init(); + for (int i = 0; i < 5; i++) { + f32 scale = field_0x380; + mpParent[i]->scale(scale, scale); + mpParent[i]->setAlphaRate(1.0f); + } + setCursorPos(getSelectType()); + cursorAnime(1.0f); + mpDrawCursor->onPlayAnime(0); + return 1; + } else { + f32 div = (f32)mFrame / (f32)openFrame; + for (int i = 0; i < 5; i++) { + f32 scale = div * field_0x380; + mpParent[i]->scale(scale, scale); + mpParent[i]->setAlphaRate(div); + } + setCursorPos(getSelectType()); + cursorAnime(div); + return 0; + } +} + + +/* 801E3DE0-801E3F6C 1DE720 018C+00 0/0 1/1 0/0 .text _close__14dMenu_Option_cFv */ +bool dMenu_Option_c::_close() { + s16 closeFrame = g_drawHIO.mOptionScreen.mCloseFrames; + mFrame = 0; + setHIO(false); + if (mFrame <= 0) { + mFrame = 0; + mQuitStatus = 0; + f32 scale = 0.0f; + for (int i = 0; i < 5; i++) { + mpParent[i]->scale(scale, scale); + mpParent[i]->setAlphaRate(0.0f); + } + setCursorPos(getSelectType()); + cursorAnime(0.0f); + return 1; + } else { + f32 div = (f32)mFrame / (f32)closeFrame; + for (int i = 0; i < 5; i++) { + f32 scale = div * field_0x380; + mpParent[i]->scale(scale, scale); + mpParent[i]->setAlphaRate(div); + } + setCursorPos(getSelectType()); + cursorAnime(div); + return 0; + } +} + + +/* 801E3F6C-801E3FC4 1DE8AC 0058+00 2/1 0/0 0/0 .text atten_init__14dMenu_Option_cFv */ +void dMenu_Option_c::atten_init() { + mpDrawCursor->setAlphaRate(1.0f); + setCursorPos(0); + setAButtonString(0x40C); + setBButtonString(0x3F9); +} + + +/* 801E3FC4-801E41A0 1DE904 01DC+00 1/0 0/0 0/0 .text atten_move__14dMenu_Option_cFv */ +#ifdef NONMATCHING +// matches but sinit and literals +void dMenu_Option_c::atten_move() { + bool downTrigger = mpStick->checkDownTrigger(); + bool leftTrigger = checkLeftTrigger(); + bool rightTrigger = checkRightTrigger(); + + if (field_0x3f3 != 5) { + (this->*tv_process[field_0x3f3])(); + } else if (downTrigger) { + field_0x3ef = 1; + Z2GetAudioMgr()->seStart(Z2SE_SY_CURSOR_OPTION, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0); + } else if (leftTrigger) { + if (field_0x3e4 == 0) { + field_0x3e4 = 1; + field_0x3da = -5; + } else if (field_0x3e4 == 1) { + field_0x3e4 = 0; + field_0x3da = -5; + } + field_0x3ef = 3; + field_0x3f5 = 0; + Z2GetAudioMgr()->seStart(Z2SE_SY_OPTION_SWITCH, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0); + } else if (rightTrigger) { + if (field_0x3e4 == 0) { + field_0x3e4 = 1; + field_0x3da = 5; + } else if (field_0x3e4 == 1) { + field_0x3e4 = 0; + field_0x3da = 5; + } + field_0x3ef = 3; + field_0x3f5 = 0; + Z2GetAudioMgr()->seStart(Z2SE_SY_OPTION_SWITCH, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0); + } else { + changeTVCheck(); + } +} +#else +void dMenu_Option_c::atten_move() { + // NONMATCHING +} +#endif + +/* 801E41A0-801E41F8 1DEAE0 0058+00 1/0 0/0 0/0 .text vib_init__14dMenu_Option_cFv */ +void dMenu_Option_c::vib_init() { + mpDrawCursor->setAlphaRate(1.0f); + setCursorPos(1); + setAButtonString(0x40C); + setBButtonString(0x3F9); +} + + +/* 801E41F8-801E4488 1DEB38 0290+00 1/0 0/0 0/0 .text vib_move__14dMenu_Option_cFv */ +#ifdef NONMATCHING +// matches but sinit and literals +void dMenu_Option_c::vib_move() { + bool upTrigger = mpStick->checkUpTrigger(); + bool downTrigger = mpStick->checkDownTrigger(); + bool leftTrigger = checkLeftTrigger(); + bool rightTrigger = checkRightTrigger(); + + if (field_0x3f3 != 5) { + (this->*tv_process[field_0x3f3])(); + } else if (upTrigger) { + field_0x3ef = 0; + Z2GetAudioMgr()->seStart(Z2SE_SY_CURSOR_OPTION, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0); + } else if (downTrigger) { + field_0x3ef = 2; + Z2GetAudioMgr()->seStart(Z2SE_SY_CURSOR_OPTION, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0); + } else if (leftTrigger) { + if (isRumbleSupported()) { + if (field_0x3ea == 0) { + field_0x3ea = 1; + mDoCPd_c::startMotorWave(0, &field_0x3e0, JUTGamePad::CRumble::VAL_0, 0x3c); + field_0x3da = -5; + } else if (field_0x3ea == 1) { + field_0x3ea = 0; + field_0x3da = -5; + } + field_0x3ef = 3; + field_0x3f5 = 1; + Z2GetAudioMgr()->seStart(Z2SE_SY_OPTION_SWITCH, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, + 0); + } + } else if (rightTrigger) { + if (isRumbleSupported()) { + if (field_0x3ea == 0) { + field_0x3ea = 1; + mDoCPd_c::startMotorWave(0, &field_0x3e0, JUTGamePad::CRumble::VAL_0, 0x3c); + field_0x3da = 5; + } else if (field_0x3ea == 1) { + field_0x3ea = 0; + field_0x3da = 5; + } + field_0x3ef = 3; + field_0x3f5 = 1; + Z2GetAudioMgr()->seStart(Z2SE_SY_OPTION_SWITCH, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, + 0); + } + } else { + changeTVCheck(); + } +} +#else +void dMenu_Option_c::vib_move() { + // NONMATCHING +} +#endif + +/* 801E4488-801E44E0 1DEDC8 0058+00 1/0 0/0 0/0 .text sound_init__14dMenu_Option_cFv */ +void dMenu_Option_c::sound_init() { + mpDrawCursor->setAlphaRate(1.0f); + setCursorPos(2); + setAButtonString(0x40C); + setBButtonString(0x3F9); +} + + +/* 801E44E0-801E48AC 1DEE20 03CC+00 1/0 0/0 0/0 .text sound_move__14dMenu_Option_cFv */ +#ifdef NONMATCHING +// matches but sinit and literals +void dMenu_Option_c::sound_move() { + bool upTrigger = mpStick->checkUpTrigger(); + mpStick->checkDownTrigger(); + bool leftTrigger = checkLeftTrigger(); + bool rightTrigger = checkRightTrigger(); + + if (field_0x3f3 != 5) { + (this->*tv_process[field_0x3f3])(); + } else if (upTrigger) { + field_0x3ef = 1; + Z2GetAudioMgr()->seStart(Z2SE_SY_CURSOR_OPTION, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0); + } else if (leftTrigger) { + if (field_0x3e9 == 2) { + field_0x3e9 = 0; + } else { + field_0x3e9++; + } + field_0x3da = -5; + switch (field_0x3e9) { + case 0: + Z2GetAudioMgr()->seStart(Z2SE_SY_SOUND_MODE_MONO, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, + 0); + break; + case 1: + Z2GetAudioMgr()->seStart(Z2SE_SY_SOUND_MODE_STEREO, NULL, 0, 0, 1.0f, 1.0f, -1.0f, + -1.0f, 0); + break; + case 2: + Z2GetAudioMgr()->seStart(Z2SE_SY_SOUND_MODE_SURROUND, NULL, 0, 0, 1.0f, 1.0f, -1.0f, + -1.0f, 0); + break; + } + Z2AudioMgr::mAudioMgrPtr->setOutputMode(dMo_soundMode[field_0x3e9]); + setSoundMode(dMo_soundMode[field_0x3e9]); + field_0x3ef = 3; + field_0x3f5 = 2; + Z2GetAudioMgr()->seStart(Z2SE_SY_OPTION_SWITCH, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0); + } else if (rightTrigger) { + if (field_0x3e9 == 0) { + field_0x3e9 = 2; + } else { + field_0x3e9--; + } + field_0x3da = 5; + switch (field_0x3e9) { + case 0: + Z2GetAudioMgr()->seStart(Z2SE_SY_SOUND_MODE_MONO, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, + 0); + break; + case 1: + Z2GetAudioMgr()->seStart(Z2SE_SY_SOUND_MODE_STEREO, NULL, 0, 0, 1.0f, 1.0f, -1.0f, + -1.0f, 0); + break; + case 2: + Z2GetAudioMgr()->seStart(Z2SE_SY_SOUND_MODE_SURROUND, NULL, 0, 0, 1.0f, 1.0f, -1.0f, + -1.0f, 0); + break; + } + Z2AudioMgr::mAudioMgrPtr->setOutputMode(dMo_soundMode[field_0x3e9]); + setSoundMode(dMo_soundMode[field_0x3e9]); + field_0x3ef = 3; + field_0x3f5 = 2; + Z2GetAudioMgr()->seStart(Z2SE_SY_OPTION_SWITCH, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0); + } else { + changeTVCheck(); + } +} +#else +void dMenu_Option_c::sound_move() { + // NONMATCHING +} +#endif + +/* 801E48AC-801E48E8 1DF1EC 003C+00 1/0 0/0 0/0 .text change_init__14dMenu_Option_cFv */ +void dMenu_Option_c::change_init() { + setAButtonString(0x40C); + setBButtonString(0x3F9); +} + +/* ############################################################################################## */ +/* 80454360-80454364 002960 0004+00 2/2 0/0 0/0 .sdata2 @4862 */ +SECTION_SDATA2 static f32 lit_4862 = 5.0f; + +/* 801E48E8-801E4B34 1DF228 024C+00 1/0 0/0 0/0 .text change_move__14dMenu_Option_cFv */ +#ifdef NONMATCHING +// matches but sinit and literals +void dMenu_Option_c::change_move() { + f32 x = 0.0f; + + if (field_0x3da > 0) { + field_0x3da--; + } else if (field_0x3da < 0) { + field_0x3da++; + } + u8 index; + switch (field_0x3f5) { + case 0: + index = 0; + if (field_0x3da == 0) { + setAttenString(); + } + break; + case 1: + index = 1; + if (field_0x3da == 0) { + setVibString(); + } + break; + case 2: + index = 2; + if (field_0x3da == 0) { + setSoundString(); + } + break; + } + if (field_0x3da > 0) { + f32 initPosX = (5 - field_0x3da) / 5.0f; + if (mpMenuText[index][3] != NULL) { + x = mpMenuText[index][3]->getInitPosX() - mpMenuText[index][0]->getInitPosX(); + } + x *= initPosX; + } else if (field_0x3da < 0) { + f32 initPosX = (field_0x3da + 5) / 5.0f; + if (mpMenuText[index][5] != NULL) { + x = mpMenuText[index][5]->getInitPosX() - mpMenuText[index][0]->getInitPosX(); + } + x *= initPosX; + } + for (int i = 0; i < 6; i++) { + if (mpMenuText[index][i] != NULL) { + mpMenuText[index][i]->show(); + mpMenuText[index][i]->paneTrans(x + field_0x3b4, 0.0f); + } + } + if (field_0x3da == 0) { + for (int i = 0; i < 6; i++) { + for (int j = 2; j < 6; j++) { + CPaneMgr* menuText = mpMenuText[i][j]; + if (menuText != NULL) { + menuText->hide(); + } + } + } + field_0x3ef = field_0x3f5; + } +} +#else +void dMenu_Option_c::change_move() { + // NONMATCHING +} +#endif + +/* 801E4B34-801E4C10 1DF474 00DC+00 1/0 0/0 0/0 .text confirm_open_init__14dMenu_Option_cFv */ +void dMenu_Option_c::confirm_open_init() { + if (field_0x3f7 == 1) { + mpWarning->setText(0x55F); + } else { + mpWarning->setText(0x560); + } + mpWarning->openInit(); + yesnoMenuMoveAnmInitSet(0x473, 0x47D); + field_0x403 = getSelectType(); + setSelectColor(field_0x403, true); + changeBarColor(true); + setAButtonString(0); + setBButtonString(0); + Z2GetAudioMgr()->seStart(Z2SE_SY_EXP_WIN_OPEN, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0); +} + + +/* ############################################################################################## */ +/* 80454364-80454368 002964 0004+00 2/2 0/0 0/0 .sdata2 @4893 */ +SECTION_SDATA2 static f32 lit_4893 = 2.0f / 5.0f; + +/* 80454368-8045436C 002968 0004+00 2/2 0/0 0/0 .sdata2 @4894 */ +SECTION_SDATA2 static f32 lit_4894 = 1.0f / 10.0f; + +/* 801E4C10-801E4CE4 1DF550 00D4+00 1/0 0/0 0/0 .text confirm_open_move__14dMenu_Option_cFv */ +void dMenu_Option_c::confirm_open_move() { + bool status = mpWarning->getStatus(); + bool yesNoMenuMove = yesnoMenuMoveAnm(); + + if (field_0x374 != 1.0f) { + cLib_addCalc2(&field_0x374, 1.0f, 0.4f, 0.5f); + if (fabsf(field_0x374 - 1.0f) < 0.1f) { + field_0x374 = 1.0f; + } + } + if (status == 1 && yesNoMenuMove == 1 && field_0x374 == 1.0f) { + yesnoCursorShow(); + field_0x3ef = 5; + } + mpWarning->_move(); + setAnimation(); +} + + +/* 801E4CE4-801E4D20 1DF624 003C+00 1/0 0/0 0/0 .text confirm_move_init__14dMenu_Option_cFv */ +void dMenu_Option_c::confirm_move_init() { + setAButtonString(0x40C); + setBButtonString(0x3F9); +} + +/* 801E4D20-801E4E98 1DF660 0178+00 1/0 0/0 0/0 .text confirm_move_move__14dMenu_Option_cFv */ +void dMenu_Option_c::confirm_move_move() { + bool leftTrigger = checkLeftTrigger(); + bool rightTrigger = checkRightTrigger(); + + if (mDoCPd_c::getTrigA(PAD_1) != 0) { + yesNoSelectStart(); + field_0x3ef = 7; + dMeter2Info_set2DVibrationM(); + } else if (mDoCPd_c::getTrigB(PAD_1) != 0) { + field_0x3f9 = 0; + yesnoCancelAnmSet(); + field_0x3ef = 7; + dMeter2Info_set2DVibrationM(); + } else if (rightTrigger != 0) { + if (field_0x3f9 != 0) { + Z2GetAudioMgr()->seStart(Z2SE_SY_MENU_CURSOR_COMMON, NULL, 0, 0, 1.0f, 1.0f, -1.0f, + -1.0f, 0); + field_0x3fa = field_0x3f9; + field_0x3f9 = 0; + yesnoSelectAnmSet(); + field_0x3ef = 6; + } + } else if (leftTrigger != 0) { + if (field_0x3f9 != 1) { + Z2GetAudioMgr()->seStart(Z2SE_SY_MENU_CURSOR_COMMON, NULL, 0, 0, 1.0f, 1.0f, -1.0f, + -1.0f, 0); + field_0x3fa = field_0x3f9; + field_0x3f9 = 1; + yesnoSelectAnmSet(); + field_0x3ef = 6; + } + } + mpWarning->_move(); + setAnimation(); +} + + +/* 801E4E98-801E4E9C 1DF7D8 0004+00 1/0 0/0 0/0 .text confirm_select_init__14dMenu_Option_cFv */ +void dMenu_Option_c::confirm_select_init() { + /* empty function */ +} + +/* 801E4E9C-801E4F18 1DF7DC 007C+00 1/0 0/0 0/0 .text confirm_select_move__14dMenu_Option_cFv */ +void dMenu_Option_c::confirm_select_move() { + u8 selectMoveAnm = yesnoSelectMoveAnm(); + u8 wakuAlphaAnm = yesnoWakuAlpahAnm(field_0x3fa); + + if (selectMoveAnm == 1 && wakuAlphaAnm == 1) { + yesnoCursorShow(); + field_0x3ef = 5; + } + mpWarning->_move(); + setAnimation(); +} + +/* 801E4F18-801E4FB0 1DF858 0098+00 1/0 0/0 0/0 .text confirm_close_init__14dMenu_Option_cFv */ +void dMenu_Option_c::confirm_close_init() { + mpWarning->closeInit(); + setSelectColor(field_0x403, false); + changeBarColor(false); + setAButtonString(0); + setBButtonString(0); + Z2GetAudioMgr()->seStart(Z2SE_SY_EXP_WIN_CLOSE, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0); +} + + +/* ############################################################################################## */ +/* 8045436C-80454370 00296C 0004+00 2/2 0/0 0/0 .sdata2 @5026 */ +SECTION_SDATA2 static f32 lit_5026 = 101.0f / 100.0f; + +/* 80454370-80454374 002970 0004+00 2/2 0/0 0/0 .sdata2 @5027 */ +SECTION_SDATA2 static f32 lit_5027 = 17.0f / 20.0f; + +/* 80454374-80454378 002974 0004+00 2/2 0/0 0/0 .sdata2 @5028 */ +SECTION_SDATA2 static f32 lit_5028 = 1.0f / 50.0f; + +/* 801E4FB0-801E51CC 1DF8F0 021C+00 1/0 0/0 0/0 .text confirm_close_move__14dMenu_Option_cFv */ +void dMenu_Option_c::confirm_close_move() { + bool status = mpWarning->getStatus(); + yesnoMenuMoveAnm(); + if (field_0x374 != 0.0f) { + cLib_addCalc2(&field_0x374, 0.0f, 0.4f, 0.5); + if (fabsf(field_0x374) < 0.1f) { + field_0x374 = 0.0f; + } + } + if (status == 1 && status == 1 && field_0x374 == 0.0f) { + if (field_0x3f7 == 1) { + if (field_0x3f9 == 1) { + mQuitStatus = 3; + dComIfGs_setOptAttentionType(field_0x3e4); + if (isRumbleSupported()) { + dComIfGs_setOptVibration(field_0x3ea); + } + dComIfGs_setOptSound(field_0x3e9); + dComIfGp_setNowVibration(field_0x3ea); + dComIfGs_setOptCameraControl(field_0x3e5); + mpDrawCursor->offPlayAnime(0); + } else { + mpDrawCursor->setParam(1.01f, 0.85f, 0.02f, 0.5f, 0.5f); + field_0x3ef = field_0x3f5; + } + } else if (field_0x3f9 == 1) { + mQuitStatus = 3; + if (field_0x3e9 != dComIfGs_getOptSound()) { + field_0x3e9 = dComIfGs_getOptSound(); + Z2GetAudioMgr()->setOutputMode(dMo_soundMode[field_0x3e9]); + setSoundMode(dMo_soundMode[field_0x3e9]); + } + mpDrawCursor->offPlayAnime(0); + } else { + mpDrawCursor->setParam(1.01f, 0.85f, 0.02f, 0.5f, 0.5f); + field_0x3ef = field_0x3f5; + } + } + mpWarning->_move(); + setAnimation(); +} + + +/* 801E51CC-801E5244 1DFB0C 0078+00 1/0 0/0 0/0 .text tv_open1_move__14dMenu_Option_cFv + */ +void dMenu_Option_c::tv_open1_move() { + if (mDoGph_gInf_c::getFader()->getStatus() == 0) { + dMw_c::dMw_fade_in(); + field_0x330 = 0.0f; + field_0x3f3 = 1; + setAButtonString(0); + setBButtonString(0x3F9); + setCursorPos(getSelectType()); + } +} + + +/* 801E5244-801E5260 1DFB84 001C+00 1/0 0/0 0/0 .text tv_open2_move__14dMenu_Option_cFv + */ +void dMenu_Option_c::tv_open2_move() { + if (mDoGph_gInf_c::getFader()->getStatus() == 1) { + field_0x3f3 = 2; + } +} + +/* 801E5260-801E5300 1DFBA0 00A0+00 1/0 0/0 0/0 .text tv_move_move__14dMenu_Option_cFv */ +void dMenu_Option_c::tv_move_move() { + if (mDoCPd_c::getTrigZ(PAD_1) != 0 || mDoCPd_c::getTrigA(PAD_1) != 0) { + Z2GetAudioMgr()->seStart(Z2SE_SY_MENU_BACK, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0); + field_0x3f3 = 3; + setAButtonString(0x40C); + setBButtonString(0x3F9); + dMw_c::dMw_fade_out(); + dMeter2Info_set2DVibration(); + } +} + + +/* 801E5300-801E5364 1DFC40 0064+00 1/0 0/0 0/0 .text tv_close1_move__14dMenu_Option_cFv + */ +void dMenu_Option_c::tv_close1_move() { + if (mDoGph_gInf_c::getFader()->getStatus() == 0) { + dMw_c::dMw_fade_in(); + field_0x3f3 = 4; + setZButtonString(1); + setCursorPos(getSelectType()); + } +} + +/* 801E5364-801E5380 1DFCA4 001C+00 1/0 0/0 0/0 .text tv_close2_move__14dMenu_Option_cFv + */ +void dMenu_Option_c::tv_close2_move() { + if (mDoGph_gInf_c::getFader()->getStatus() == 1) { + field_0x3f3 = 5; + } +} + +/* 801E5380-801E53C4 1DFCC0 0044+00 1/0 0/0 0/0 .text calibration_open1_move__14dMenu_Option_cFv + */ +void dMenu_Option_c::calibration_open1_move() { + if (mDoGph_gInf_c::getFader()->getStatus() == 0) { + dMw_c::dMw_fade_in(); + field_0x3f4 = 1; + } +} + +/* 801E53C4-801E53E0 1DFD04 001C+00 1/0 0/0 0/0 .text calibration_open2_move__14dMenu_Option_cFv + */ +void dMenu_Option_c::calibration_open2_move() { + if (mDoGph_gInf_c::getFader()->getStatus() == 1) { + field_0x3f4 = 2; + } +} + +/* 801E53E0-801E5434 1DFD20 0054+00 1/0 0/0 0/0 .text calibration_move_move__14dMenu_Option_cFv */ +void dMenu_Option_c::calibration_move_move() { + if (mpCalibration->mStatus == 0) { + dMw_c::dMw_fade_out(); + field_0x3f4 = 3; + } else if (mpCalibration->mStatus == 1) { + mpCalibration->_move(); + } +} + +/* 801E5434-801E5478 1DFD74 0044+00 1/0 0/0 0/0 .text calibration_close1_move__14dMenu_Option_cFv + */ +void dMenu_Option_c::calibration_close1_move() { + if (mDoGph_gInf_c::getFader()->getStatus() == 0) { + dMw_c::dMw_fade_in(); + field_0x3f4 = 4; + } +} + +/* 801E5478-801E5494 1DFDB8 001C+00 1/0 0/0 0/0 .text calibration_close2_move__14dMenu_Option_cFv + */ +void dMenu_Option_c::calibration_close2_move() { + if (mDoGph_gInf_c::getFader()->getStatus() == 1) { + field_0x3f4 = 5; + } +} + +/* 801E5494-801E54F8 1DFDD4 0064+00 1/1 0/0 0/0 .text menuVisible__14dMenu_Option_cFv */ +void dMenu_Option_c::menuVisible() { + for (int i = 0; i < 6; i++) { + if (i < 3) { + menuShow(i); + } else { + menuHide(i); + } + } +} + +/* 801E54F8-801E55B8 1DFE38 00C0+00 1/1 0/0 0/0 .text menuShow__14dMenu_Option_cFi */ +void dMenu_Option_c::menuShow(int index) { + mpMenuNull[index]->show(); + mpMenuPane[index]->show(); + if (mpMenuPaneC[index] != NULL) { + mpMenuPaneC[index]->show(); + } + if (mpMenuPane2[index] != NULL) { + mpMenuPane2[index]->show(); + } + if (mpMenuPane3[index] != NULL) { + mpMenuPane3[index]->show(); + } + for (int i = 0; i < 2; i++) { + if (mpMenuText[index][i] != NULL) { + mpMenuText[index][i]->show(); + } + } +} + +/* 801E55B8-801E5678 1DFEF8 00C0+00 1/1 0/0 0/0 .text menuHide__14dMenu_Option_cFi */ +void dMenu_Option_c::menuHide(int index) { + mpMenuNull[index]->hide(); + mpMenuPane[index]->hide(); + if (mpMenuPaneC[index] != NULL) { + mpMenuPaneC[index]->hide(); + } + if (mpMenuPane2[index] != NULL) { + mpMenuPane2[index]->hide(); + } + if (mpMenuPane3[index] != NULL) { + mpMenuPane3[index]->hide(); + } + for (int i = 0; i < 2; i++) { + if (mpMenuText[index][i] != NULL) { + mpMenuText[index][i]->hide(); + } + } +} + +/* ############################################################################################## */ +/* 80396F58-80396F88 0235B8 0030+00 0/1 0/0 0/0 .rodata tag_frame$5201 */ +#pragma push +#pragma force_active on +static const u64 tag_frame[6] = { + 'flame_00', 'flame_01', 'flame_02', 'flame_03', 'flame_04', 'flame_05', +}; +#pragma pop + +/* 80396F88-80396FB8 0235E8 0030+00 0/1 0/0 0/0 .rodata tag_menu0$5202 */ +#pragma push +#pragma force_active on +static const u64 tag_menu0[6] = { + 'fenu_t0', 'fenu_t1', 'fenu_t2', 'fenu_t3', 'fenu_t4', 'fenu_t5', +}; +#pragma pop + +/* 80396FB8-80396FE8 023618 0030+00 0/1 0/0 0/0 .rodata let_n$5214 */ +#pragma push +#pragma force_active on +static const u64 let_n[6] = { + 'let_00_n', 'let_01_n', 'let_02_n', 'let_03_n', 'let_04_n', 'let_05_n', +}; +#pragma pop + +/* 80396FE8-80397018 023648 0030+00 0/1 0/0 0/0 .rodata let2_n$5215 */ +#pragma push +#pragma force_active on +static const u64 let2_n[6] = { + 'let_00_n', 'let_01_n', 'let_02_n', 'let_03_n', 'let_04_n', +}; +#pragma pop + +/* 80397018-80397048 023678 0030+00 0/1 0/0 0/0 .rodata menu_n$5216 */ +#pragma push +#pragma force_active on +static const u64 menu_n[6] = { + 'menu_n0', 'menu_n1', 'menu_n2', 'menu_n3', 'menu_n4', 'menu_n5', +}; +#pragma pop + +/* 80397048-80397078 0236A8 0030+00 0/1 0/0 0/0 .rodata menu2_n$5217 */ +#pragma push +#pragma force_active on +static const u64 menu2_n[6] = { + 'mw_n_0', 'mw_n_1', 'mw_n_2', 'mw_n_3', 'mw_n_4', +}; +#pragma pop + +/* 80397078-803970A8 0236D8 0030+00 0/1 0/0 0/0 .rodata al0_n$5218 */ +#pragma push +#pragma force_active on +static const u64 al0_n[6] = { + 's_grr_00', 's_grr_01', 's_grr_02', 's_grr_03', 's_grr_04', 's_grr_05', +}; +#pragma pop + +/* 803970A8-803970D8 023708 0030+00 0/1 0/0 0/0 .rodata al1_n$5219 */ +#pragma push +#pragma force_active on +static const u64 al1_n[6] = { + 'c_grr_00', 'c_grr_01', 'c_grr_02', 'c_grr_03', 'c_grr_04', 'c_grr_05', +}; +#pragma pop + +/* 803970D8-80397108 023738 0030+00 0/1 0/0 0/0 .rodata al2_n$5220 */ +#pragma push +#pragma force_active on +static const u64 al2_n[6] = { + 's_grl_00', 's_grl_01', 's_grl_02', 's_grl_03', 's_grl_04', 's_grl_05', +}; +#pragma pop + +/* 80397108-80397138 023768 0030+00 0/1 0/0 0/0 .rodata al3_n$5221 */ +#pragma push +#pragma force_active on +static const u64 al3_n[6] = { + 'c_grl_00', 'c_grl_01', 'c_grl_02', 'c_grl_03', 'c_grl_04', 'c_grl_05', +}; +#pragma pop + +/* 80397138-80397160 023798 0028+00 0/1 0/0 0/0 .rodata haihail_n$5238 */ +#pragma push +#pragma force_active on +static const u64 haihail_n[5] = { + 'y_set_l0', 'y_set_l1', 'y_set_l2', 'y_set_l3', 'y_set_l4', +}; +#pragma pop + +/* 80397160-80397188 0237C0 0028+00 0/1 0/0 0/0 .rodata haihair_n$5239 */ +#pragma push +#pragma force_active on +static const u64 haihair_n[5] = { + 'y_set_r0', 'y_set_r1', 'y_set_r2', 'y_set_r3', 'y_set_r4', +}; +#pragma pop + +/* 80397188-803971B8 0237E8 0030+00 0/1 0/0 0/0 .rodata menu3_n$5256 */ +#pragma push +#pragma force_active on +static const u64 menu3_n[6] = { + 'menuapn0', 'menuapn1', 'menuapn2', 'menuapn3', 'menuapn4', +}; +#pragma pop + +/* 803971B8-803971E0 023818 0028+00 0/1 0/0 0/0 .rodata tv_btnA$5275 */ +#pragma push +#pragma force_active on +static const u64 tv_btnA[5] = { + 'cont_at1', 'cont_at2', 'cont_at3', 'cont_at4', 'cont_at', +}; +#pragma pop + +/* 803971E0-80397208 023840 0028+00 0/1 0/0 0/0 .rodata ftv_btnA$5276 */ +#pragma push +#pragma force_active on +static const u64 ftv_btnA[5] = { + 'font_a1', 'font_at2', 'font_at3', 'font_at4', 'font_at', +}; +#pragma pop + +/* 80397208-80397218 023868 0010+00 0/1 0/0 0/0 .rodata fenu_t0$5282 */ +#pragma push +#pragma force_active on +static const u64 fenu_t0[2] = { + 'fenu_t0s', + 'fenu_t0', +}; +#pragma pop + +/* 80397218-80397228 023878 0010+00 0/1 0/0 0/0 .rodata menu_t0$5283 */ +#pragma push +#pragma force_active on +static const u64 menu_t0[2] = { + 'menu_t0s', + 'menu_t0', +}; +#pragma pop + +/* 80397228-80397238 023888 0010+00 0/1 0/0 0/0 .rodata fenu_t2$5289 */ +#pragma push +#pragma force_active on +static const u64 fenu_t2[2] = { + 'fenu_t1s', + 'fenu_t1', +}; +#pragma pop + +/* 80397238-80397248 023898 0010+00 0/1 0/0 0/0 .rodata menu_t2$5290 */ +#pragma push +#pragma force_active on +static const u64 menu_t2[2] = { + 'menu_t1s', + 'menu_t1', +}; +#pragma pop + +/* 80397248-80397258 0238A8 0010+00 0/1 0/0 0/0 .rodata fenu_t3$5296 */ +#pragma push +#pragma force_active on +static const u64 fenu_t3[2] = {'fenu_t2s', 'fenu_t2'}; +#pragma pop + +/* 80397258-80397268 0238B8 0010+00 0/1 0/0 0/0 .rodata menu_t3$5297 */ +#pragma push +#pragma force_active on +static const u64 menu_t3[2] = { + 'menu_t2s', + 'menu_t2', +}; +#pragma pop + +/* 80397268-80397278 0238C8 0010+00 0/1 0/0 0/0 .rodata fenu_t4$5303 */ +#pragma push +#pragma force_active on +static const u64 fenu_t4[2] = { + 'fenu_t3s', + 'fenu_t3', +}; +#pragma pop + +/* 80397278-80397288 0238D8 0010+00 0/1 0/0 0/0 .rodata menu_t4$5304 */ +#pragma push +#pragma force_active on +static const u64 menu_t4[2] = { + 'menu_t3s', + 'menu_t3', +}; +#pragma pop + +/* 80397288-80397298 0238E8 0010+00 0/1 0/0 0/0 .rodata fenu_t1$5310 */ +#pragma push +#pragma force_active on +static const u64 fenu_t1[2] = { + 'fenu_t4s', + 'fenu_t4', +}; +#pragma pop + +/* 80397298-803972A8 0238F8 0010+00 0/1 0/0 0/0 .rodata menu_t1$5311 */ +#pragma push +#pragma force_active on +static const u64 menu_t1[2] = { + 'menu_t4s', + 'menu_t4', +}; +#pragma pop + +/* 803972A8-803972B8 023908 0010+00 0/1 0/0 0/0 .rodata fenu_t5$5317 */ +#pragma push +#pragma force_active on +static const u64 fenu_t5[2] = { + 'fenu_t5s', + 'fenu_t5', +}; +#pragma pop + +/* 803972B8-803972C8 023918 0010+00 0/1 0/0 0/0 .rodata menu_t5$5318 */ +#pragma push +#pragma force_active on +static const u64 menu_t5[2] = { + 'menu_t5s', + 'menu_t5', +}; +#pragma pop + +/* 803972C8-803972F8 023928 0030+00 0/1 0/0 0/0 .rodata menut_0$5324 */ +#pragma push +#pragma force_active on +static const u64 menut_0[6] = { + 'menut0as', 'menut0a', 'menut0a2', 'menut0a1', 'menut0a4', 'menut0a3', +}; +#pragma pop + +/* 803972F8-80397328 023958 0030+00 0/1 0/0 0/0 .rodata fenut_0$5325 */ +#pragma push +#pragma force_active on +static const u64 fenut_0[6] = { + 'menut010', 'menut0a9', 'menut0a8', 'menut0a7', 'menut0a6', 'menut0a5', +}; +#pragma pop + +/* 80397328-80397358 023988 0030+00 0/1 0/0 0/0 .rodata menut_1$5332 */ +#pragma push +#pragma force_active on +static const u64 menut_1[6] = { + 'menut1as', 'menut1a', 'menut1a2', 'menut1a1', 'menut1a4', 'menut1a3', +}; +#pragma pop + +/* 80397358-80397388 0239B8 0030+00 0/1 0/0 0/0 .rodata fenut_1$5333 */ +#pragma push +#pragma force_active on +static const u64 fenut_1[6] = { + 'menut110', 'menut1a9', 'menut1a8', 'menut1a7', 'menut1a6', 'menut1a5', +}; +#pragma pop + +/* 80397388-803973B8 0239E8 0030+00 0/1 0/0 0/0 .rodata menut_2$5340 */ +#pragma push +#pragma force_active on +static const u64 menut_2[6] = { + 'menut2as', 'menut2a', 'menut2a2', 'menut2a1', 'menut2a4', 'menut2a3', +}; +#pragma pop + +/* 803973B8-803973E8 023A18 0030+00 0/1 0/0 0/0 .rodata fenut_2$5341 */ +#pragma push +#pragma force_active on +static const u64 fenut_2[6] = { + 'menut210', 'menut2a9', 'menut2a8', 'menut2a7', 'menut2a6', 'menut2a5', +}; +#pragma pop + +/* 803973E8-80397418 023A48 0030+00 0/1 0/0 0/0 .rodata menut_3$5348 */ +#pragma push +#pragma force_active on +static const u64 menut_3[6] = { + 'menut3a5', 'menut3a6', 'menut3a7', 'menut3a8', 'menut3a9', 'menut310', +}; +#pragma pop + +/* 80397418-80397448 023A78 0030+00 0/1 0/0 0/0 .rodata fenut_3$5349 */ +#pragma push +#pragma force_active on +static const u64 fenut_3[6] = { + 'menut315', 'menut314', 'menut313', 'menut312', 'menut311', 'menut001', +}; +#pragma pop + +/* 80397448-80397478 023AA8 0030+00 0/1 0/0 0/0 .rodata menut_4$5356 */ +#pragma push +#pragma force_active on +static const u64 menut_4[6] = { + 'menut3as', 'menut3a', 'menut3a2', 'menut3a1', 'menut3a4', 'menut3a3', +}; +#pragma pop + +/* 80397478-803974A8 023AD8 0030+00 0/1 0/0 0/0 .rodata fenut_4$5357 */ +#pragma push +#pragma force_active on +static const u64 fenut_4[6] = { + 'menut321', 'menut320', 'menut319', 'menut318', 'menut317', 'menut316', +}; +#pragma pop + +/* 803974A8-803974D8 023B08 0030+00 0/1 0/0 0/0 .rodata tx$5381 */ +#pragma push +#pragma force_active on +static const u64 tx[6] = { + 'w_p_tex5', 'w_p_tex6', 'w_p_tex3', 'w_p_tex4', 'fps_tex1', 'f_p_tex1', +}; +#pragma pop + +/* 803974D8-803974F8 023B38 0020+00 0/0 0/0 0/0 .rodata op_tx$5393 */ +#pragma push +#pragma force_active on +static const u64 op_tx[4] = { + 'w_text_n', + 'w_btn_n', + 'w_k_t_n', + 'w_abtn_n', +}; +#pragma pop + +/* 803974F8-80397510 023B58 0018+00 0/1 0/0 0/0 .rodata z_tx$5399 */ +#pragma push +#pragma force_active on +static const u64 z_tx[3] = { + 'z_gc_n', +}; +#pragma pop + +/* 80397510-80397560 023B70 0050+00 0/1 0/0 0/0 .rodata txTV$5409 */ +#pragma push +#pragma force_active on +static const u64 txTV[10] = { + 'menu_t61', 'menu_t2', 'menu_t91', 'menu_t1', 'menut101', + 'menu_t01', 'menu_t71', 'menu_t3', 'menu_t81', 'menu_t4', +}; +#pragma pop + +/* 801E5678-801E6FBC 1DFFB8 1944+00 1/1 0/0 0/0 .text screenSet__14dMenu_Option_cFv */ +void dMenu_Option_c::screenSet() { + mpTitle = new CPaneMgr(mpBackScreen, 'title_n', 0, NULL); + Vec pos = mpTitle->getGlobalVtxCenter(mpTitle->mPane, false, 0); + mpWarning->mPosY = pos.y + g_drawHIO.mOptionScreen.mBackgroundPosY; + for (int i = 0; i < 6; i++) { + field_0x280[i] = (J2DPicture*)mpScreen->search(tag_frame[i]); + field_0x298[i] = (J2DTextBox*)mpScreen->search(tag_menu0[i]); + } + field_0x2b0[0] = field_0x280[1]->getBlack(); + field_0x2c0[0] = field_0x280[1]->getWhite(); + field_0x2b0[1] = field_0x298[1]->getBlack(); + field_0x2c0[1] = field_0x298[1]->getWhite(); + field_0x2b8[0] = field_0x280[0]->getBlack(); + field_0x2c8[0] = field_0x280[0]->getWhite(); + field_0x2b8[1] = field_0x298[0]->getBlack(); + field_0x2c8[1] = field_0x298[0]->getWhite(); + field_0x2b8[0].a = 0xff; + field_0x2b0[0].a = 0xff; + mpDrawCursor = new dSelect_cursor_c(2, 1.0f, NULL); + mpDrawCursor->setAlphaRate(0.0f); + mpDrawCursor->setScale(0.0f); + mpDrawCursor->setParam(1.01f, 0.85f, 0.02f, 0.5f, 0.5f); + mpDrawCursor->offPlayAnime(0); + mpParent[0] = new CPaneMgr(mpScreen, 'n_all', 2, NULL); + mpParent[1] = new CPaneMgr(mpClipScreen, 'n_all', 2, NULL); + mpParent[2] = new CPaneMgr(mpShadowScreen, 'nall', 2, NULL); + mpParent[3] = new CPaneMgr(mpTVScreen, 'n_all', 2, NULL); + mpParent[4] = new CPaneMgr(mpBackScreen, 'n_all', 2, NULL); + for (int i = 0; i < 6; i++) { + mpMenuNull[i] = new CPaneMgr(mpScreen, let_n[i], 0, NULL); + mpMenuPane[i] = new CPaneMgr(mpScreen, menu_n[i], 0, NULL); + if (menu2_n[i] != 0) { + mpMenuPaneC[i] = new CPaneMgr(mpScreen, menu2_n[i], 0, NULL); + Vec pos = mpMenuPaneC[i]->getGlobalVtxCenter(mpMenuPaneC[i]->mPane, false, 0); + field_0x344[i] = pos.x; + field_0x35c[i] = pos.y; + } else { + mpMenuPaneC[i] = NULL; + field_0x344[i] = 0.0f; + field_0x35c[i] = 0.0f; + } + field_0x2d0[i][0] = mpScreen->search(al0_n[i]); + field_0x2d0[i][1] = mpScreen->search(al1_n[i]); + field_0x2d0[i][2] = mpScreen->search(al2_n[i]); + field_0x2d0[i][3] = mpScreen->search(al3_n[i]); + } + for (int i = 0; i < 4; i++) { + field_0x404[i] = field_0x2d0[1][i]->getAlpha(); + field_0x408[i] = field_0x2d0[0][i]->getAlpha(); + } + for (int i = 0; i < 5; i++) { + mpHaihaiPosL[i] = new CPaneMgr(mpScreen, haihail_n[i], 0, NULL); + mpHaihaiPosR[i] = new CPaneMgr(mpScreen, haihair_n[i], 0, NULL); + } + for (int i = 0; i < 6; i++) { + if (let2_n[i] != 0) { + mpMenuPane2[i] = new CPaneMgr(mpShadowScreen, let2_n[i], 0, NULL); + } else { + mpMenuPane2[i] = NULL; + } + } + for (int i = 0; i < 6; i++) { + if (let2_n[i] != NULL) { + mpMenuPane3[i] = new CPaneMgr(mpClipScreen, let2_n[i], 0, NULL); + } else { + mpMenuPane3[i] = NULL; + } + if (menu3_n[i] != NULL) { + mpMenuPane32[i] = new CPaneMgr(mpClipScreen, menu3_n[i], 0, NULL); + } else { + mpMenuPane32[i] = NULL; + } + } + field_0x270[0] = (J2DTextBox*)mpBackScreen->search('f_t00'); + field_0x270[1] = (J2DTextBox*)mpBackScreen->search('t_t01'); + mpBackScreen->search('t_t00')->hide(); + mpBackScreen->search('t_t01')->hide(); + field_0x270[2] = (J2DTextBox*)mpTVScreen->search('f_t00'); + mpTVScreen->search('t_t00')->hide(); + for (int i = 0; i < 3; i++) { + field_0x270[i]->setFont(mDoExt_getRubyFont()); + field_0x270[i]->setString(0x40, ""); + } + mpString->getString(0x547, field_0x270[0], NULL, NULL, NULL, 0); + mpString->getString(0x547, field_0x270[1], NULL, NULL, NULL, 0); + mpString->getString(0x55C, field_0x270[2], NULL, NULL, NULL, 0); + for (int i = 0; i < 5; i++) { + field_0x25c[i] = (J2DTextBox*)mpTVScreen->search(ftv_btnA[i]); + mpTVScreen->search(tv_btnA[i])->hide(); + field_0x25c[i]->setFont(mDoExt_getMesgFont()); + field_0x25c[i]->setString(0x40, ""); + mpString->getString(0x564, field_0x25c[i], NULL, NULL, NULL, 0); + } + for (int i = 0; i < 2; i++) { + field_0x21c[0][i] = (J2DTextBox*)mpScreen->search(fenu_t0[i]); + mpScreen->search(menu_t0[i])->hide(); + field_0x21c[0][i]->setFont(mpFont); + field_0x21c[0][i]->setString(0x40, ""); + mpString->getString(0x548, field_0x21c[0][i], NULL, NULL, NULL, 0); + } + for (int i = 0; i < 2; i++) { + field_0x21c[1][i] = (J2DTextBox*)mpScreen->search(fenu_t2[i]); + mpScreen->search(menu_t2[i])->hide(); + field_0x21c[1][i]->setFont(mpFont); + field_0x21c[1][i]->setString(0x40, ""); + mpString->getString(0x54E, field_0x21c[1][i], NULL, NULL, NULL, 0); + } + for (int i = 0; i < 2; i++) { + field_0x21c[2][i] = (J2DTextBox*)mpScreen->search(fenu_t3[i]); + mpScreen->search(menu_t3[i])->hide(); + field_0x21c[2][i]->setFont(mpFont); + field_0x21c[2][i]->setString(0x40, ""); + mpString->getString(0x54F, field_0x21c[2][i], NULL, NULL, NULL, 0); + } + for (int i = 0; i < 2; i++) { + field_0x21c[3][i] = (J2DTextBox*)mpScreen->search(fenu_t4[i]); + mpScreen->search(menu_t4[i])->hide(); + field_0x21c[3][i]->setFont(mpFont); + field_0x21c[3][i]->setString(0x40, ""); + } + for (int i = 0; i < 2; i++) { + field_0x21c[4][i] = (J2DTextBox*)mpScreen->search(fenu_t1[i]); + mpScreen->search(menu_t1[i])->hide(); + field_0x21c[4][i]->setFont(mpFont); + field_0x21c[4][i]->setString(0x40, ""); + } + for (int i = 0; i < 2; i++) { + field_0x21c[5][i] = (J2DTextBox*)mpScreen->search(fenu_t5[i]); + mpScreen->search(menu_t5[i])->hide(); + field_0x21c[5][i]->setFont(mpFont); + field_0x21c[5][i]->setString(0x40, ""); + mpString->getString(0x554, field_0x21c[5][i], NULL, NULL, NULL, 0); + } + for (int i = 0; i < 6; i++) { + paneResize(fenut_0[i]); + mpMenuText[0][i] = new CPaneMgr(mpClipScreen, fenut_0[i], 0, NULL); + mpClipScreen->search(menut_0[i])->hide(); + ((J2DTextBox*)(mpMenuText[0][i]->getPanePtr()))->setFont(mpFont); + ((J2DTextBox*)(mpMenuText[0][i]->getPanePtr()))->setString(0x40, ""); + mpMenuText[0][i]->getPanePtr()->setBasePosition(J2DBasePosition_4); + } + for (int i = 0; i < 6; i++) { + paneResize(fenut_1[i]); + mpMenuText[1][i] = new CPaneMgr(mpClipScreen, fenut_1[i], 0, NULL); + mpClipScreen->search(menut_1[i])->hide(); + mpMenuText[1][i]->show(); + ((J2DTextBox*)(mpMenuText[1][i]->getPanePtr()))->setFont(mpFont); + ((J2DTextBox*)(mpMenuText[1][i]->getPanePtr()))->setString(0x40, ""); + mpMenuText[1][i]->getPanePtr()->setBasePosition(J2DBasePosition_4); + } + for (int i = 0; i < 6; i++) { + paneResize(fenut_2[i]); + mpMenuText[2][i] = new CPaneMgr(mpClipScreen, fenut_2[i], 0, NULL); + mpClipScreen->search(menut_2[i])->hide(); + mpMenuText[2][i]->show(); + ((J2DTextBox*)(mpMenuText[2][i]->getPanePtr()))->setFont(mpFont); + ((J2DTextBox*)(mpMenuText[2][i]->getPanePtr()))->setString(0x40, ""); + mpMenuText[2][i]->getPanePtr()->setBasePosition(J2DBasePosition_4); + } + for (int i = 0; i < 6; i++) { + paneResize(fenut_3[i]); + mpMenuText[3][i] = new CPaneMgr(mpClipScreen, fenut_3[i], 0, NULL); + mpClipScreen->search(menut_3[i])->hide(); + mpMenuText[3][i]->show(); + ((J2DTextBox*)(mpMenuText[3][i]->getPanePtr()))->setFont(mpFont); + ((J2DTextBox*)(mpMenuText[3][i]->getPanePtr()))->setString(0x40, ""); + mpMenuText[3][i]->getPanePtr()->setBasePosition(J2DBasePosition_4); + } + for (int i = 0; i < 6; i++) { + paneResize(fenut_4[i]); + mpMenuText[4][i] = new CPaneMgr(mpClipScreen, fenut_4[i], 0, NULL); + mpClipScreen->search(menut_4[i])->hide(); + mpMenuText[4][i]->show(); + ((J2DTextBox*)(mpMenuText[4][i]->getPanePtr()))->setFont(mpFont); + ((J2DTextBox*)(mpMenuText[4][i]->getPanePtr()))->setString(0x40, ""); + mpMenuText[4][i]->getPanePtr()->setBasePosition(J2DBasePosition_4); + } + for (int i = 0; i < 6; i++) { + mpMenuText[5][i] = NULL; + } + for (int i = 0; i < 6; i++) { + for (int j = 2; j < 6; j++) { + if (mpMenuText[i][j] != NULL) { + mpMenuText[i][j]->hide(); + } + } + } + field_0x3b4 = 0.0f; + menuVisible(); + mpBackScreen->search('jpn_n')->hide(); + mpBackScreen->search('foregn_n')->show(); + for (int i = 0; i < 6; i++) { + J2DTextBox* backScreen = (J2DTextBox*)mpBackScreen->search(tx[i]); + backScreen->setFont(mpFont); + backScreen->setString(0x80, ""); + if (i < 2) { + mpString->getString(0x55D, backScreen, NULL, NULL, NULL, 0); + } else if (i < 4) { + mpString->getString(0x55E, backScreen, NULL, NULL, NULL, 0); + } else { + mpString->getString(0x556, backScreen, NULL, NULL, NULL, 0); + } + } + mpBackScreen->search('wi_btn_n')->hide(); + for (int i = 0; i < 4; i++) { + field_0x1c0[i] = 0; + } + for (int i = 0; i < 3; i++) { + if (z_tx[i] != NULL) { + mpZButtonText[i] = new CPaneMgr(mpBackScreen, z_tx[i], 2, NULL); + } else { + mpZButtonText[i] = NULL; + } + } + for (int i = 0; i < 10; i++) { + J2DTextBox* tvScreen = (J2DTextBox*)mpTVScreen->search(txTV[i]); + tvScreen->setFont(mpFont); + tvScreen->setCharSpace(0.0f); + + if (i < 2) { + tvScreen->setString(0x100, ""); + mpString->getString(0x558, tvScreen, NULL, NULL, NULL, 0); + } else if (i < 4) { + tvScreen->setString(0x100, ""); + mpString->getString(0x557, tvScreen, NULL, NULL, NULL, 0); + } else if (i < 6) { + tvScreen->setString(0x100, ""); + mpString->getString(0x559, tvScreen, NULL, NULL, NULL, 0); + } else if (i < 8) { + tvScreen->setString(0x100, ""); + mpString->getString(0x55A, tvScreen, NULL, NULL, NULL, 0); + } else { + tvScreen->setString(0x100, ""); + mpString->getString(0x55B, tvScreen, NULL, NULL, NULL, 0); + } + } + for (int i = 0; i < 5; i++) { + mpParent[i]->setAlphaRate(0.0f); + } +} + + +/* 801E6FBC-801E7004 1E18FC 0048+00 2/2 0/0 0/0 .text setSoundMode__14dMenu_Option_cFUl + */ +void dMenu_Option_c::setSoundMode(u32 param_0) { + switch (param_0) { + case 0: + OSSetSoundMode(OS_SOUND_MODE_MONO); + break; + case 1: + case 2: + OSSetSoundMode(OS_SOUND_MODE_STEREO); + break; + } +} + +/* 801E7004-801E70E8 1E1944 00E4+00 2/2 0/0 0/0 .text setAttenString__14dMenu_Option_cFv + */ +void dMenu_Option_c::setAttenString() { + u16 stringId1; + u16 stringId2; + + if (field_0x3e4 == 0) { + stringId1 = 0x549; + stringId2 = 0x54A; + } else { + stringId1 = 0x54A; + stringId2 = 0x549; + } + for (int i = 0; i < 6; i++) { + if (i < 2) { + J2DTextBox* textBox = (J2DTextBox*)mpMenuText[0][i]->getPanePtr(); + mpString->getString(stringId1, textBox, NULL, NULL, NULL, 0); + } else { + J2DTextBox* textBox = (J2DTextBox*)mpMenuText[0][i]->getPanePtr(); + mpString->getString(stringId2, textBox, NULL, NULL, NULL, 0); + } + } +} + +/* 801E70E8-801E71CC 1E1A28 00E4+00 2/2 0/0 0/0 .text setVibString__14dMenu_Option_cFv */ +void dMenu_Option_c::setVibString() { + u16 stringId1; + u16 stringId2; + + if (field_0x3ea == 0) { + stringId1 = 0x54C; + stringId2 = 0x54D; + } else { + stringId1 = 0x54D; + stringId2 = 0x54C; + } + for (int i = 0; i < 6; i++) { + if (i < 2) { + J2DTextBox* textBox = (J2DTextBox*)mpMenuText[1][i]->getPanePtr(); + mpString->getString(stringId1, textBox, NULL, NULL, NULL, 0); + } else { + J2DTextBox* textBox = (J2DTextBox*)mpMenuText[1][i]->getPanePtr(); + mpString->getString(stringId2, textBox, NULL, NULL, NULL, 0); + } + } +} + +/* 801E71CC-801E7314 1E1B0C 0148+00 2/2 0/0 0/0 .text setSoundString__14dMenu_Option_cFv + */ +void dMenu_Option_c::setSoundString() { + u16 stringId1; + u16 stringId2; + u16 stringId3; + + if (field_0x3e9 == 0) { + stringId1 = 0x551; + stringId2 = 0x550; + stringId3 = 0x552; + } else if (field_0x3e9 == 1) { + stringId1 = 0x550; + stringId2 = 0x552; + stringId3 = 0x551; + } else { + stringId1 = 0x552; + stringId2 = 0x551; + stringId3 = 0x550; + } + for (int i = 0; i < 6; i++) { + if (i < 2) { + J2DTextBox* textBox = (J2DTextBox*)mpMenuText[2][i]->getPanePtr(); + mpString->getString(stringId1, textBox, NULL, NULL, NULL, 0); + } else if (i < 4) { + J2DTextBox* textBox = (J2DTextBox*)mpMenuText[2][i]->getPanePtr(); + mpString->getString(stringId2, textBox, NULL, NULL, NULL, 0); + } else { + J2DTextBox* textBox = (J2DTextBox*)mpMenuText[2][i]->getPanePtr(); + mpString->getString(stringId3, textBox, NULL, NULL, NULL, 0); + } + } +} + +/* 801E7314-801E73D8 1E1C54 00C4+00 8/8 0/0 0/0 .text setCursorPos__14dMenu_Option_cFUc + */ +void dMenu_Option_c::setCursorPos(u8 i_index) { + if (i_index == 4) { + i_index = 5; + } + + Vec pos = mpMenuPane[i_index]->getGlobalVtxCenter(mpMenuPane[i_index]->mPane, false, 0); + mpDrawCursor->setPos(pos.x + (field_0x330 - field_0x334), pos.y, + mpMenuPane[i_index]->getPanePtr(), false); + setSelectColor(i_index, false); + changeBarColor(false); +} + +/* 801E73D8-801E76EC 1E1D18 0314+00 4/4 0/0 0/0 .text setSelectColor__14dMenu_Option_cFUcb */ +void dMenu_Option_c::setSelectColor(u8 param_0, bool param_1) { + for (int i = 0; i < 6; i++) { + if (i == param_0 || param_1) { + if (field_0x21c[i][0] != NULL) { + field_0x21c[i][0]->setFontColor(field_0x3b8, field_0x3b8); + } + if (field_0x21c[i][1] != NULL) { + field_0x21c[i][1]->setFontColor(field_0x3b8, field_0x3b8); + } + mpMenuNull[i]->scale(mBarScale[0], mBarScale[0]); + if (mpMenuPaneC[i] != NULL) { + Vec pos = mpMenuPaneC[i]->getGlobalVtxCenter(mpMenuPaneC[i]->mPane, false, 0); + if (mpMenuPane2[i] != NULL) { + mpMenuPane2[i]->scale(mBarScale[0], mBarScale[0]); + } + if (mpMenuPane3[i] != NULL) { + mpMenuPane3[i]->scale(mBarScale[0], mBarScale[0]); + } + } + } else { + if (field_0x21c[i][0] != NULL) { + field_0x21c[i][0]->setFontColor(field_0x3bc, field_0x3bc); + } + if (field_0x21c[i][1] != NULL) { + field_0x21c[i][1]->setFontColor(field_0x3bc, field_0x3bc); + } + mpMenuNull[i]->scale(mBarScale[1], mBarScale[1]); + if (mpMenuPaneC[i] != NULL) { + Vec pos = mpMenuPaneC[i]->getGlobalVtxCenter(mpMenuPaneC[i]->mPane, false, 0); + if (mpMenuPane2[i] != NULL) { + mpMenuPane2[i]->scale(mBarScale[1], mBarScale[1]); + } + if (mpMenuPane3[i] != NULL) { + mpMenuPane3[i]->scale(mBarScale[1], mBarScale[1]); + } + } + } + } +} + +/* 801E76EC-801E7718 1E202C 002C+00 8/8 0/0 0/0 .text getSelectType__14dMenu_Option_cFv + */ +u8 dMenu_Option_c::getSelectType() { + if (field_0x3ef < 3) { + return field_0x3ef; + } + if (field_0x3f5 < 3) { + return field_0x3f5; + } + return 0; +} + +/* 801E7718-801E78B8 1E2058 01A0+00 3/3 0/0 0/0 .text changeBarColor__14dMenu_Option_cFb + */ +void dMenu_Option_c::changeBarColor(bool i_changeColor) { + u8 selectType = getSelectType(); + + for (int i = 0; i < 6; i++) { + if (i == selectType || i_changeColor) { + field_0x280[i]->setBlackWhite(field_0x2b0[0], field_0x2c0[0]); + field_0x298[i]->setBlackWhite(field_0x2b0[1], field_0x2c0[1]); + for (int j = 0; j < 4; j++) { + field_0x2d0[i][j]->setAlpha(field_0x404[j]); + } + } else { + field_0x280[i]->setBlackWhite(field_0x2b8[0], field_0x2c8[0]); + field_0x298[i]->setBlackWhite(field_0x2b8[1], field_0x2c8[1]); + for (int j = 0; j < 4; j++) { + field_0x2d0[i][j]->setAlpha(field_0x408[j]); + } + } + } +} + +/* 801E78B8-801E7D18 1E21F8 0460+00 4/4 0/0 0/0 .text setHIO__14dMenu_Option_cFb */ +void dMenu_Option_c::setHIO(bool i_useHIO) { + if (field_0x378 != g_drawHIO.mOptionScreen.mWindowPosX || + field_0x37c != g_drawHIO.mOptionScreen.mWindowPosY) + { + field_0x378 = g_drawHIO.mOptionScreen.mWindowPosX; + field_0x37c = g_drawHIO.mOptionScreen.mWindowPosY; + for (int i = 0; i < 5; i++) { + mpParent[i]->paneTrans(field_0x378, field_0x37c); + } + setCursorPos(getSelectType()); + } + if (field_0x380 != g_drawHIO.mOptionScreen.mWindowScale) { + field_0x380 = g_drawHIO.mOptionScreen.mWindowScale; + for (int i = 0; i < 5; i++) { + f32 windowScale = field_0x380; + mpParent[i]->scale(windowScale, windowScale); + } + setCursorPos(getSelectType()); + } + if (field_0x3b8.r != g_drawHIO.mOptionScreen.mSelectColor.r || + field_0x3b8.g != g_drawHIO.mOptionScreen.mSelectColor.g || + field_0x3b8.b != g_drawHIO.mOptionScreen.mSelectColor.b || + field_0x3b8.a != g_drawHIO.mOptionScreen.mSelectColor.a || + field_0x3bc.r != g_drawHIO.mOptionScreen.mUnselectColor.r || + field_0x3bc.g != g_drawHIO.mOptionScreen.mUnselectColor.g || + field_0x3bc.b != g_drawHIO.mOptionScreen.mUnselectColor.b || + field_0x3bc.a != g_drawHIO.mOptionScreen.mUnselectColor.a) + { + field_0x3b8.set(g_drawHIO.mOptionScreen.mSelectColor); + field_0x3bc.set(g_drawHIO.mOptionScreen.mUnselectColor); + setSelectColor(getSelectType(), false); + } + for (int i = 0; i < 6; i++) { + if (field_0x384[i] != g_drawHIO.mOptionScreen.mOptionTypeBGPosX[i] || + field_0x39c[i] != g_drawHIO.mOptionScreen.mOptionTypeBGPosY[i]) + { + field_0x384[i] = g_drawHIO.mOptionScreen.mOptionTypeBGPosX[i]; + field_0x39c[i] = g_drawHIO.mOptionScreen.mOptionTypeBGPosY[i]; + mpMenuPane[i]->paneTrans(field_0x384[i], field_0x39c[i]); + } + } + for (int i = 0; i < 2; i++) { + if (mBarScale[i] != g_drawHIO.mOptionScreen.mBarScale[i]) { + mBarScale[i] = g_drawHIO.mOptionScreen.mBarScale[i]; + } + } + if (g_drawHIO.mOptionScreen.mDebug) { + Vec pos = mpTitle->getGlobalVtxCenter(mpTitle->mPane, false, 0); + mpWarning->mPosY = pos.y + g_drawHIO.mOptionScreen.mBackgroundPosY; + } + if (g_drawHIO.mCollectScreen.mButtonDebugON != false || i_useHIO) { + if (mpButtonAB[0] != NULL) { + mpButtonAB[0]->paneTrans(g_drawHIO.mCollectScreen.mButtonAPosX, + g_drawHIO.mCollectScreen.mButtonAPosY); + f32 AButtonScale = g_drawHIO.mCollectScreen.mButtonAScale; + mpButtonAB[0]->scale(AButtonScale, AButtonScale); + } + if (mpButtonAB[1] != NULL) { + mpButtonAB[1]->paneTrans(g_drawHIO.mCollectScreen.mButtonBPosX, + g_drawHIO.mCollectScreen.mButtonBPosY); + f32 BButtonScale = g_drawHIO.mCollectScreen.mButtonBScale; + mpButtonAB[1]->scale(BButtonScale, BButtonScale); + } + if (mpButtonText[0] != NULL) { + mpButtonText[0]->paneTrans(g_drawHIO.mCollectScreen.mButtonATextPosX, + g_drawHIO.mCollectScreen.mButtonATextPosY); + f32 AButtonTextScale = g_drawHIO.mCollectScreen.mButtonATextScale; + mpButtonText[0]->scale(AButtonTextScale, AButtonTextScale); + } + if (mpButtonText[1] != NULL) { + mpButtonText[1]->paneTrans(g_drawHIO.mCollectScreen.mButtonBTextPosX, + g_drawHIO.mCollectScreen.mButtonBTextPosY); + f32 BButtonTextScale = g_drawHIO.mCollectScreen.mButtonBTextScale; + mpButtonText[1]->scale(BButtonTextScale, BButtonTextScale); + } + } +} + +/* 801E7D18-801E7D60 1E2658 0048+00 2/2 0/0 0/0 .text cursorAnime__14dMenu_Option_cFf */ +void dMenu_Option_c::cursorAnime(f32 i_cursorValue) { + mpDrawCursor->setAlphaRate(i_cursorValue); + mpDrawCursor->setScale(i_cursorValue); +} + +/* 801E7D60-801E7DF4 1E26A0 0094+00 3/3 0/0 0/0 .text setZButtonString__14dMenu_Option_cFUs */ +void dMenu_Option_c::setZButtonString(u16 i_stringID) { + if (i_stringID == 0) { + for (int i = 0; i < 3; i++) { + if (mpZButtonText[i] != NULL) { + mpZButtonText[i]->hide(); + } + } + } else { + for (int i = 0; i < 3; i++) { + if (mpZButtonText[i] != NULL) { + mpZButtonText[i]->show(); + } + } + } +} + +/* 801E7DF4-801E7E98 1E2734 00A4+00 3/3 0/0 0/0 .text changeTVCheck__14dMenu_Option_cFv + */ +void dMenu_Option_c::changeTVCheck() { + if (mDoCPd_c::getTrigZ(PAD_1) != 0) { + Z2GetAudioMgr()->seStart(Z2SE_SY_MENU_CHANGE_WINDOW, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, + 0); + field_0x3f3 = 0; + setAButtonString(0); + setBButtonString(0); + setZButtonString(0); + dMw_c::dMw_fade_out(); + dMeter2Info_set2DVibration(); + } +} + + +/* 80397560-80397588 023BC0 0028+00 0/0 0/0 0/0 .rodata txTVhide$5410 */ +#pragma push +#pragma force_active on +static const u64 txTVhide[5] = { + 'menu_6n', 'menu_9n', 'menu_10n', 'menu_7n', 'menu_8n', +}; +#pragma pop + +/* 80397588-803975B0 023BE8 0028+00 1/1 0/0 0/0 .rodata text_a_tag$6194 */ +static const u64 text_a_tag_6194[5] = { + 'atext1_1', 'atext1_2', 'atext1_3', 'atext1_4', 'atext1_5', +}; + +/* 801E7E98-801E7F9C 1E27D8 0104+00 11/11 0/0 0/0 .text setAButtonString__14dMenu_Option_cFUs */ +void dMenu_Option_c::setAButtonString(u16 i_stringID) { + u32 stringId = i_stringID; + if (stringId != field_0x3dc) { + field_0x3dc = i_stringID; + } + + if (stringId == 0) { + for (int i = 0; i < 5; i++) { + J2DTextBox* textBox = (J2DTextBox*)mpScreenIcon->search(text_a_tag_6194[i]); + strcpy(textBox->getStringPtr(), ""); + } + } else { + for (int i = 0; i < 5; i++) { + J2DTextBox* textBox = (J2DTextBox*)mpScreenIcon->search(text_a_tag_6194[i]); + dMeter2Info_getStringKanji(stringId, textBox->getStringPtr(), NULL); + } + } +} + + +/* 803975B0-803975D8 023C10 0028+00 1/1 0/0 0/0 .rodata text_b_tag$6217 */ +static const u64 text_b_tag_6217[5] = { + 'btext1_1', 'btext1_2', 'btext1_3', 'btext1_4', 'btext1_5', +}; + +/* 801E7F9C-801E80A0 1E28DC 0104+00 11/11 0/0 0/0 .text setBButtonString__14dMenu_Option_cFUs */ +void dMenu_Option_c::setBButtonString(u16 i_stringID) { + u32 stringId = i_stringID; + if (stringId != field_0x3de) { + field_0x3de = i_stringID; + } + + if (stringId == 0) { + for (int i = 0; i < 5; i++) { + J2DTextBox* textBox = (J2DTextBox*)mpScreenIcon->search(text_b_tag_6217[i]); + strcpy(textBox->getStringPtr(), ""); + } + } else { + for (int i = 0; i < 5; i++) { + J2DTextBox* textBox = (J2DTextBox*)mpScreenIcon->search(text_b_tag_6217[i]); + dMeter2Info_getStringKanji(stringId, textBox->getStringPtr(), NULL); + } + } +} + + +/* 801E80A0-801E80AC 1E29E0 000C+00 4/4 0/0 0/0 .text isRumbleSupported__14dMenu_Option_cFv */ +bool dMenu_Option_c::isRumbleSupported() { + return JUTGamePad::sRumbleSupported >> 0x1f; +} + +/* 801E80AC-801E80B4 1E29EC 0008+00 1/1 0/0 0/0 .text dpdMenuMove__14dMenu_Option_cFv */ +bool dMenu_Option_c::dpdMenuMove() { + return false; +} + +/* ############################################################################################## */ +/* 80454378-8045437C 002978 0004+00 1/1 0/0 0/0 .sdata2 @6256 */ +SECTION_SDATA2 static f32 lit_6256 = 10.0f; + +/* 801E80B4-801E8210 1E29F4 015C+00 1/1 0/0 0/0 .text paneResize__14dMenu_Option_cFUx */ +#ifdef NONMATCHING +// float regswap +void dMenu_Option_c::paneResize(u64 i_tag) { + f32 boundsY = mpClipScreen->search(i_tag)->getBounds().i.y; + f32 boundsX = mpClipScreen->search(i_tag)->getBounds().i.x - 5.0f; + mpClipScreen->search(i_tag)->move(boundsX, boundsY); + + f32 height = mpClipScreen->search(i_tag)->getHeight(); + f32 width = mpClipScreen->search(i_tag)->getWidth(); + + mpClipScreen->search(i_tag)->resize(width + 10.0f, height); +} +#else +void dMenu_Option_c::paneResize(u64 param_0) { + // NONMATCHING +} +#endif + +/* 801E8210-801E82C4 1E2B50 00B4+00 1/1 1/1 0/0 .text initialize__14dMenu_Option_cFv */ +void dMenu_Option_c::initialize() { + field_0x3e4 = dComIfGs_getOptAttentionType(); + field_0x3e5 = dComIfGs_getOptCameraControl(); + field_0x3e8 = 0; + field_0x3eb = 0; + field_0x3e6 = 0; + field_0x3e7 = 0; + field_0x3e9 = dComIfGs_getOptSound(); + if (isRumbleSupported()) { + field_0x3ea = dComIfGp_getNowVibration(); + } else { + field_0x3ea = 0; + } + setAttenString(); + setVibString(); + setSoundString(); + mFrame = 0; + field_0x3da = 0; +} + +/* 801E82C4-801E8438 1E2C04 0174+00 3/3 0/0 0/0 .text yesnoMenuMoveAnmInitSet__14dMenu_Option_cFii + */ +void dMenu_Option_c::yesnoMenuMoveAnmInitSet(int param_0, int param_1) { + if (field_0x3f8 == 0) { + field_0x3f9 = 0; + field_0x3fa = 1; + } + if (param_0 == 0x473) { + ((J2DTextBox*)mpYesNoTxt_c[field_0x3f9]->getPanePtr()) + ->setWhite(JUtility::TColor(0xff, 0xff, 0xff, 0xff)); + ((J2DTextBox*)mpYesNoTxt_c[field_0x3fa]->getPanePtr()) + ->setWhite(JUtility::TColor(0x96, 0x96, 0x96, 0xff)); + } + mpDrawCursor->setAlphaRate(0.0f); + mpYesNoSelBase_c[0]->getPanePtr()->setAnimation(field_0x20); + mpYesNoSelBase_c[1]->getPanePtr()->setAnimation(field_0x20); + field_0x3c8[2] = param_0; + field_0x3c8[3] = param_1; + field_0x20->setFrame(field_0x3c8[2]); + mpYesNoSelBase_c[0]->getPanePtr()->animationTransform(); + mpYesNoSelBase_c[1]->getPanePtr()->animationTransform(); +} + + +/* 801E8438-801E85D4 1E2D78 019C+00 2/2 0/0 0/0 .text yesnoMenuMoveAnm__14dMenu_Option_cFv */ +bool dMenu_Option_c::yesnoMenuMoveAnm() { + bool ret; + if (field_0x3c8[2] != field_0x3c8[3]) { + if (field_0x3c8[2] < field_0x3c8[3]) { + field_0x3c8[2] += 2; + if (field_0x3c8[2] > field_0x3c8[3]) { + field_0x3c8[2] = field_0x3c8[3]; + } + } else { + field_0x3c8[2] -= 2; + if (field_0x3c8[2] < field_0x3c8[3]) { + field_0x3c8[2] = field_0x3c8[3]; + } + } + field_0x20->setFrame(field_0x3c8[2]); + mpYesNoSelBase_c[0]->getPanePtr()->animationTransform(); + mpYesNoSelBase_c[1]->getPanePtr()->animationTransform(); + ret = 0; + } + if (field_0x3c8[2] == field_0x3c8[3]) { + mpYesNoSelBase_c[0]->getPanePtr()->setAnimation((J2DAnmTransform*)NULL); + mpYesNoSelBase_c[1]->getPanePtr()->setAnimation((J2DAnmTransform*)NULL); + if (field_0x3c8[2] == 0x47D) { + field_0x3f8 = 1; + } else { + field_0x3f8 = 0; + if (field_0x3f9 != 0xff) { + mpYesNoCurWaku_c[field_0x3f9]->setAlpha(0); + mpYesNoCurWakuG0_c[field_0x3f9]->setAlpha(0); + mpYesNoCurWakuG1_c[field_0x3f9]->setAlpha(0); + } + } + ret = 1; + } + return ret; +} + + +/* 80450730-80450738 0001B0 0008+00 2/2 0/0 0/0 .sdata OptYnSelStartFrameTbl */ +static s32 OptYnSelStartFrameTbl[2] = {1251, 1236}; + +/* 80450738-80450740 0001B8 0008+00 2/2 0/0 0/0 .sdata OptYnSelEndFrameTbl */ +static s32 OptYnSelEndFrameTbl[2] = {1236, 1251}; + +/* 801E85D4-801E8888 1E2F14 02B4+00 1/1 0/0 0/0 .text yesnoSelectMoveAnm__14dMenu_Option_cFv */ +u8 dMenu_Option_c::yesnoSelectMoveAnm() { + u8 ret = 0; + bool bVar1; + bool bVar2; + + if (field_0x3fa != 0xff) { + if (field_0x3c8[field_0x3fa] != OptYnSelStartFrameTbl[field_0x3fa]) { + if (field_0x3c8[field_0x3fa] < OptYnSelStartFrameTbl[field_0x3fa]) { + field_0x3c8[field_0x3fa] += 2; + if (field_0x3c8[field_0x3fa] > OptYnSelStartFrameTbl[field_0x3fa]) { + field_0x3c8[field_0x3fa] = OptYnSelStartFrameTbl[field_0x3fa]; + } + } else { + field_0x3c8[field_0x3fa] -= 2; + if (field_0x3c8[field_0x3fa] < OptYnSelStartFrameTbl[field_0x3fa]) { + field_0x3c8[field_0x3fa] = OptYnSelStartFrameTbl[field_0x3fa]; + } + } + field_0x24->setFrame(field_0x3c8[field_0x3fa]); + mpYesNoSelBase_c[field_0x3fa]->getPanePtr()->animationTransform(); + } + if (field_0x3c8[field_0x3fa] == OptYnSelStartFrameTbl[field_0x3fa]) { + bVar1 = true; + } else { + bVar1 = false; + } + } else { + bVar1 = true; + } + if (field_0x3f9 != 0xff) { + if (field_0x3c8[field_0x3f9] != OptYnSelEndFrameTbl[field_0x3f9]) { + if (field_0x3c8[field_0x3f9] < OptYnSelEndFrameTbl[field_0x3f9]) { + field_0x3c8[field_0x3f9] += 2; + if (field_0x3c8[field_0x3f9] > OptYnSelEndFrameTbl[field_0x3f9]) { + field_0x3c8[field_0x3f9] = OptYnSelEndFrameTbl[field_0x3f9]; + } + } else { + field_0x3c8[field_0x3f9] -= 2; + if (field_0x3c8[field_0x3f9] < OptYnSelEndFrameTbl[field_0x3f9]) { + field_0x3c8[field_0x3f9] = OptYnSelEndFrameTbl[field_0x3f9]; + } + } + field_0x28->setFrame(field_0x3c8[field_0x3f9]); + mpYesNoSelBase_c[field_0x3f9]->getPanePtr()->animationTransform(); + } + if (field_0x3c8[field_0x3f9] == OptYnSelEndFrameTbl[field_0x3f9]) { + bVar2 = true; + } else { + bVar2 = false; + } + } else { + bVar2 = true; + } + if (bVar1 == 1 && bVar2 == 1) { + if (field_0x3fa != 0xff) { + mpYesNoSelBase_c[field_0x3fa]->getPanePtr()->setAnimation((J2DAnmTransform*)NULL); + } + if (field_0x3f9 != 0xff) { + mpYesNoSelBase_c[field_0x3f9]->getPanePtr()->setAnimation((J2DAnmTransform*)NULL); + } + ret = 1; + } + return ret; +} + + +/* 8045437C-80454380 00297C 0004+00 1/1 0/0 0/0 .sdata2 @6507 */ +SECTION_SDATA2 static f32 lit_6507 = 24.0f / 25.0f; + +/* 80454380-80454384 002980 0004+00 1/1 0/0 0/0 .sdata2 @6508 */ +SECTION_SDATA2 static f32 lit_6508 = 21.0f / 25.0f; + +/* 80454384-80454388 002984 0004+00 1/1 0/0 0/0 .sdata2 @6509 */ +SECTION_SDATA2 static f32 lit_6509 = 3.0f / 50.0f; + +/* 801E8888-801E89F8 1E31C8 0170+00 2/2 0/0 0/0 .text yesnoCursorShow__14dMenu_Option_cFv + */ +void dMenu_Option_c::yesnoCursorShow() { + if (field_0x3f9 != 0xff) { + ((J2DTextBox*)mpYesNoTxt_c[field_0x3f9]->getPanePtr()) + ->setWhite(JUtility::TColor(0xff, 0xff, 0xff, 0xff)); + mpYesNoCurWaku_c[field_0x3f9]->setAlpha(0xff); + mpYesNoCurWakuG0_c[field_0x3f9]->setAlpha(0xff); + mpYesNoCurWakuG1_c[field_0x3f9]->setAlpha(0xff); + Vec pos = mpYesNoSelBase_c[field_0x3f9]->getGlobalVtxCenter( + mpYesNoSelBase_c[field_0x3f9]->mPane, false, 0); + mpDrawCursor->setPos(pos.x, pos.y, mpYesNoSelBase_c[field_0x3f9]->getPanePtr(), true); + mpDrawCursor->setAlphaRate(1.0f); + mpDrawCursor->setParam(0.96f, 0.84f, 0.06f, 0.5f, 0.5f); + } +} + + +/* 801E89F8-801E8AC8 1E3338 00D0+00 1/1 0/0 0/0 .text yesNoSelectStart__14dMenu_Option_cFv */ +void dMenu_Option_c::yesNoSelectStart() { + if (field_0x3f9 != 0) { + if (field_0x3f7 == 1) { + Z2GetAudioMgr()->seStart(Z2SE_SY_NAME_OK, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0); + } else { + Z2GetAudioMgr()->seStart(Z2SE_SY_MENU_BACK, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0); + } + yesnoMenuMoveAnmInitSet(0x47D, 0x473); + mpDrawCursor->setAlphaRate(0.0f); + } else { + yesnoCancelAnmSet(); + } +} + + +/* 801E8AC8-801E8C38 1E3408 0170+00 1/1 0/0 0/0 .text yesnoSelectAnmSet__14dMenu_Option_cFv */ +void dMenu_Option_c::yesnoSelectAnmSet() { + if (field_0x3fa != 0xff) { + yesnoWakuAlpahAnmInit(field_0x3fa, 0xff, 0, 5); + mpYesNoSelBase_c[field_0x3fa]->getPanePtr()->setAnimation(field_0x24); + field_0x3c8[field_0x3fa] = OptYnSelEndFrameTbl[field_0x3fa]; + field_0x24->setFrame(field_0x3c8[field_0x3fa]); + mpYesNoSelBase_c[field_0x3fa]->getPanePtr()->animationTransform(); + mpDrawCursor->setAlphaRate(0.0f); + } + if (field_0x3f9 != 0xff) { + mpYesNoSelBase_c[field_0x3f9]->getPanePtr()->setAnimation(field_0x28); + field_0x3c8[field_0x3f9] = OptYnSelStartFrameTbl[field_0x3f9]; + field_0x28->setFrame(field_0x3c8[field_0x3f9]); + mpYesNoSelBase_c[field_0x3f9]->getPanePtr()->animationTransform(); + } +} + + +/* 801E8C38-801E8CB0 1E3578 0078+00 2/2 0/0 0/0 .text yesnoCancelAnmSet__14dMenu_Option_cFv */ +void dMenu_Option_c::yesnoCancelAnmSet() { + Z2GetAudioMgr()->seStart(Z2SE_SY_CURSOR_CANCEL, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0); + mpDrawCursor->setAlphaRate(0.0f); + yesnoMenuMoveAnmInitSet(0x47D, 0x473); +} + + +/* 801E8CB0-801E8CFC 1E35F0 004C+00 1/1 0/0 0/0 .text + * yesnoWakuAlpahAnmInit__14dMenu_Option_cFUcUcUcUc */ +void dMenu_Option_c::yesnoWakuAlpahAnmInit(u8 i_idx, u8 param_1, u8 param_2, u8 param_3) { + if (i_idx != 0xff) { + mpYesNoCurWaku_c[i_idx]->alphaAnimeStart(0); + mpYesNoCurWakuG0_c[i_idx]->alphaAnimeStart(0); + mpYesNoCurWakuG1_c[i_idx]->alphaAnimeStart(0); + field_0x3fb[i_idx] = param_1; + field_0x3fd[i_idx] = param_2; + field_0x3ff[i_idx] = param_3; + mpYesNoTxt_c[i_idx]->colorAnimeStart(0); + } +} + +/* 801E8CFC-801E8E6C 1E363C 0170+00 1/1 0/0 0/0 .text yesnoWakuAlpahAnm__14dMenu_Option_cFUc */ +u8 dMenu_Option_c::yesnoWakuAlpahAnm(u8 i_idx) { + u8 ret = 0; + bool wakuAnime; + bool wakuAnimeG0; + bool wakuAnimeG1; + bool colorAnime; + + if (i_idx != 0xff) { + wakuAnime = mpYesNoCurWaku_c[i_idx]->alphaAnime(field_0x3ff[i_idx], field_0x3fb[i_idx], + field_0x3fd[i_idx], 0); + wakuAnimeG0 = mpYesNoCurWakuG0_c[i_idx]->alphaAnime(field_0x3ff[i_idx], field_0x3fb[i_idx], + field_0x3fd[i_idx], 0); + wakuAnimeG1 = mpYesNoCurWakuG1_c[i_idx]->alphaAnime(field_0x3ff[i_idx], field_0x3fb[i_idx], + field_0x3fd[i_idx], 0); + colorAnime = mpYesNoTxt_c[i_idx]->colorAnime( + field_0x3ff[i_idx], mpYesNoTxt_c[i_idx]->getInitBlack(), + mpYesNoTxt_c[i_idx]->getInitBlack(), JUtility::TColor(0xff, 0xff, 0xff, 0xff), + JUtility::TColor(0x96, 0x96, 0x96, 0xff), 0); + } else { + wakuAnime = true; + wakuAnimeG0 = true; + wakuAnimeG1 = true; + colorAnime = true; + } + if (wakuAnime == 1 && wakuAnimeG0 == 1 && wakuAnimeG1 == 1 && colorAnime == 1) { + ret = 1; + } + return ret; +} + +/* 801E8E6C-801E8E8C 1E37AC 0020+00 1/0 0/0 0/0 .text draw__14dMenu_Option_cFv */ +// void dMenu_Option_c::draw() { +extern "C" void draw__14dMenu_Option_cFv() { + // NONMATCHING +} + +/* 801E8E8C-801E9118 1E37CC 028C+00 0/0 1/0 0/0 .text __sinit_d_menu_option_cpp */ +#ifdef NONMATCHING + +#else +void __sinit_d_menu_option_cpp(){// NONMATCHING +} + +#pragma push +#pragma force_active on +REGISTER_CTORS(0x801E8E8C, __sinit_d_menu_option_cpp); +#pragma pop + +#endif
\ No newline at end of file |
