Decompile menuhandlerScreenSplit

This commit is contained in:
Ryan Dwyer
2020-03-22 13:50:24 +10:00
parent a0967fef7a
commit 9e6afa81f9
4 changed files with 565 additions and 699 deletions
-591
View File
@@ -1428,594 +1428,3 @@ u16 g_SoundModeOptions[] = {
L_OPTIONS(234), // "Headphone"
L_OPTIONS(235), // "Surround"
};
// 17a10
u16 g_ScreenSizeOptions[] = {
L_OPTIONS(220), // "Full"
L_OPTIONS(221), // "Wide"
L_OPTIONS(222), // "Cinema"
0x0000, // ""
};
// 17a18
u16 g_ScreenRatioOptions[] = {
L_OPTIONS(223), // "Normal"
L_OPTIONS(224), // "16:9"
};
// 17a1c
u16 g_ScreenSplitOptions[] = {
L_OPTIONS(225), // "Horizontal"
L_OPTIONS(226), // "Vertical"
};
// 17a20
struct menu_item menuitems_briefing[] = {
{ MENUITEMTYPE_SCROLLABLE, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
{ MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
};
// 17a48
struct menu_dialog menudialog_briefing = {
MENUDIALOGTYPE_DEFAULT,
L_OPTIONS(247), // "Briefing"
menuitems_briefing,
menudialog00103368,
0x00000008,
NULL,
};
// 17a60
struct menu_item menuitems_objectives[] = {
{ MENUITEMTYPE_OBJECTIVES, 1, 0x00000000, 0x00000000, 0x00000000, NULL },
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_OPTIONS(274), 0x00000000, menuhandlerAcceptMission }, // "Accept"
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_OPTIONS(275), 0x00000000, NULL }, // "Decline"
{ MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
};
// 17ab0
struct menu_dialog g_ObjectivesMenuDialog = {
MENUDIALOGTYPE_DEFAULT,
(u32)&soloMenuTitleStageOverview,
menuitems_objectives,
menudialog00103608,
0x0000000c,
&menudialog_briefing,
};
// 17ac8
struct menu_item menuitems_perfectdarkmodesettings[] = {
{ MENUITEMTYPE_LABEL, 0, 0x00000012, L_MPWEAPONS(222), 0x00000000, NULL }, // "Choose Settings:"
{ MENUITEMTYPE_SLIDER, 1, 0x00100000, L_MPWEAPONS(224), 0x000000ff, menuhandlerPdModeSetting }, // "Enemy Health"
{ MENUITEMTYPE_SLIDER, 2, 0x00100000, L_MPWEAPONS(225), 0x000000ff, menuhandlerPdModeSetting }, // "Enemy Damage"
{ MENUITEMTYPE_SLIDER, 3, 0x00100000, L_MPWEAPONS(226), 0x000000ff, menuhandlerPdModeSetting }, // "Enemy Accuracy"
{ MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x000000b4, 0x00000000, NULL },
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_MPWEAPONS(227), 0x00000000, menuhandlerAcceptPdModeSettings }, // "OK"
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPWEAPONS(228), 0x00000000, NULL }, // "Cancel"
{ MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
};
// 17b68
struct menu_dialog g_PdModeSettingsDialog = {
MENUDIALOGTYPE_DEFAULT,
L_MPWEAPONS(221), // "Perfect Dark"
menuitems_perfectdarkmodesettings,
NULL,
0x00000004,
NULL,
};
// 17b80
struct menu_item menuitems_selectdifficulty[] = {
{ MENUITEMTYPE_LABEL, 0, 0x00000012, L_OPTIONS(249), L_OPTIONS(250), NULL }, // "Difficulty"
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_OPTIONS(251), (u32)&soloMenuTextBestTime, menuhandlerSoloDifficulty }, // "Agent"
{ MENUITEMTYPE_SELECTABLE, 1, 0x00000000, L_OPTIONS(252), (u32)&soloMenuTextBestTime, menuhandlerSoloDifficulty }, // "Special Agent"
{ MENUITEMTYPE_SELECTABLE, 2, 0x00000000, L_OPTIONS(253), (u32)&soloMenuTextBestTime, menuhandlerSoloDifficulty }, // "Perfect Agent"
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_MPWEAPONS(221), 0x00000000, menuhandlerPdMode }, // "Perfect Dark"
{ MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_OPTIONS(254), 0x00000000, NULL }, // "Cancel"
{ MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
};
// 17c20
struct menu_dialog menudialog_selectdifficulty = {
MENUDIALOGTYPE_DEFAULT,
L_OPTIONS(248), // "Select Difficulty"
menuitems_selectdifficulty,
NULL,
0x00000004,
NULL,
};
// 17c38
struct menu_item menuitems_cooperativeoptions[] = {
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS(256), 0x00000000, menuhandlerCoopRadar }, // "Radar On"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS(257), 0x00000000, menuhandlerCoopFriendlyFire }, // "Friendly Fire"
{ MENUITEMTYPE_DROPDOWN, 0, 0x00000000, L_OPTIONS(258), 0x00000000, menuhandlerCoopBuddy }, // "Perfect Buddy"
{ MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, // ""
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_OPTIONS(259), 0x00000000, menuhandlerBuddyOptionsContinue }, // "Continue"
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_OPTIONS(260), 0x00000000, NULL }, // "Cancel"
{ MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, // ""
};
// 17cc4
struct menu_dialog g_CoopOptionsMenuDialog = {
MENUDIALOGTYPE_DEFAULT,
L_OPTIONS(255), // "Co-Operative Options"
menuitems_cooperativeoptions,
menudialogCoopAntiOptions,
0x00000004,
NULL,
};
// 17cdc
struct menu_item menuitems_counteroperativeoptions[] = {
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS(267), 0x00000000, menuhandlerAntiRadar }, // "Radar On"
{ MENUITEMTYPE_DROPDOWN, 0, 0x00000000, L_OPTIONS(268), 0x00000000, menuhandlerAntiPlayer }, // "Counter-Operative"
{ MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_OPTIONS(269), 0x00000000, menuhandlerBuddyOptionsContinue }, // "Continue"
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_OPTIONS(270), 0x00000000, NULL }, // "Cancel"
{ MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
};
// 17d54
struct menu_dialog g_AntiOptionsMenuDialog = {
MENUDIALOGTYPE_DEFAULT,
L_OPTIONS(266), // "Counter-Operative Options"
menuitems_counteroperativeoptions,
menudialogCoopAntiOptions,
0x00000004,
NULL,
};
// 17d6c
struct menu_item menuitems_selectdifficulty2[] = {
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_OPTIONS(251), 0x00000000, menuhandlerCoopDifficulty }, // "Agent"
{ MENUITEMTYPE_SELECTABLE, 1, 0x00000000, L_OPTIONS(252), 0x00000000, menuhandlerCoopDifficulty }, // "Special Agent"
{ MENUITEMTYPE_SELECTABLE, 2, 0x00000000, L_OPTIONS(253), 0x00000000, menuhandlerCoopDifficulty }, // "Perfect Agent"
{ MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_OPTIONS(254), 0x00000000, NULL }, // "Cancel"
{ MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
};
// 17de4
struct menu_dialog menudialog_selectdifficulty2 = {
MENUDIALOGTYPE_DEFAULT,
L_OPTIONS(248), // "Select Difficulty"
menuitems_selectdifficulty2,
NULL,
0x00000004,
NULL,
};
// 17dfc
struct menu_item menuitems_selectdifficulty3[] = {
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_OPTIONS(251), 0x00000000, menuhandlerAntiDifficulty }, // "Agent"
{ MENUITEMTYPE_SELECTABLE, 1, 0x00000000, L_OPTIONS(252), 0x00000000, menuhandlerAntiDifficulty }, // "Special Agent"
{ MENUITEMTYPE_SELECTABLE, 2, 0x00000000, L_OPTIONS(253), 0x00000000, menuhandlerAntiDifficulty }, // "Perfect Agent"
{ MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_OPTIONS(254), 0x00000000, NULL }, // "Cancel"
{ MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
};
// 17e74
struct menu_dialog menudialog_selectdifficulty3 = {
MENUDIALOGTYPE_DEFAULT,
L_OPTIONS(248), // "Select Difficulty"
menuitems_selectdifficulty3,
NULL,
0x00000004,
NULL,
};
// 17e8c
struct stageoverviewentry g_StageNames[NUM_SOLOSTAGES] = {
// stage, unk04, name1, name2, name3
{ STAGE_DEFECTION, 0x0c, 0x5685, 0x5686, 0x547c },
{ STAGE_INVESTIGATION, 0x0d, 0x5687, 0x5688, 0x54ac },
{ STAGE_EXTRACTION, 0x0e, 0x5689, 0x568a, 0x547d },
{ STAGE_VILLA, 0x0f, 0x568b, 0x568c, 0x568b },
{ STAGE_CHICAGO, 0x10, 0x568d, 0x568e, 0x568d },
{ STAGE_G5BUILDING, 0x11, 0x568f, 0x5690, 0x568f },
{ STAGE_INFILTRATION, 0x12, 0x5691, 0x5692, 0x547e },
{ STAGE_RESCUE, 0x13, 0x5693, 0x5694, 0x547f },
{ STAGE_ESCAPE, 0x14, 0x5695, 0x5696, 0x5480 },
{ STAGE_AIRBASE, 0x15, 0x5697, 0x5698, 0x5697 },
{ STAGE_AIRFORCEONE, 0x16, 0x5699, 0x569a, 0x5699 },
{ STAGE_CRASHSITE, 0x17, 0x569b, 0x569c, 0x569b },
{ STAGE_PELAGIC, 0x18, 0x569d, 0x569e, 0x569d },
{ STAGE_DEEPSEA, 0x19, 0x569f, 0x56a0, 0x569f },
{ STAGE_DEFENSE, 0x1a, 0x56a1, 0x56a2, 0x56a1 },
{ STAGE_ATTACKSHIP, 0x1b, 0x56a3, 0x56a4, 0x56a3 },
{ STAGE_SKEDARRUINS, 0x1c, 0x56a5, 0x56a6, 0x56a5 },
{ STAGE_MBR, 0x1c, 0x56a7, 0x5603, 0x56a7 },
{ STAGE_MAIANSOS, 0x1c, 0x56a8, 0x5603, 0x56a8 },
{ STAGE_WAR, 0x1c, 0x56aa, 0x5603, 0x56aa },
{ STAGE_DUEL, 0x1c, 0x56ab, 0x5603, 0x56ab },
};
// 17f88
struct mission missions[] = {
// first stage index, name
{ 0, L_OPTIONS(123) }, // "Mission 1"
{ 3, L_OPTIONS(124) }, // "Mission 2"
{ 4, L_OPTIONS(125) }, // "Mission 3"
{ 6, L_OPTIONS(126) }, // "Mission 4"
{ 9, L_OPTIONS(127) }, // "Mission 5"
{ 12, L_OPTIONS(128) }, // "Mission 6"
{ 14, L_OPTIONS(129) }, // "Mission 7"
{ 15, L_OPTIONS(130) }, // "Mission 8"
{ 16, L_OPTIONS(131) }, // "Mission 9"
{ 99, L_OPTIONS(132) }, // "Special Assignments"
};
// 17fd8
struct menu_item menuitems_17fd8[] = {
{ MENUITEMTYPE_SCROLLABLE, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
{ MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
};
// 18000
struct menu_item menuitems_18000[] = {
{ MENUITEMTYPE_SCROLLABLE, 0, 0x00000000, 0x00000078, 0x00000000, NULL },
{ MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
};
// 18028
struct menu_dialog menudialog_18028 = {
MENUDIALOGTYPE_DEFAULT,
L_OPTIONS(247), // "Briefing"
menuitems_17fd8,
NULL,
0x00000008,
NULL,
};
// 18040
struct menu_dialog menudialog_18040 = {
MENUDIALOGTYPE_DEFAULT,
L_OPTIONS(247), // "Briefing"
menuitems_17fd8,
NULL,
0x00000008,
NULL,
};
// 18058
struct menu_dialog menudialog_18058 = {
MENUDIALOGTYPE_DEFAULT,
L_OPTIONS(247), // "Briefing"
menuitems_18000,
NULL,
0x00000008,
NULL,
};
// 18070
struct menu_item menuitems_control[] = {
{ MENUITEMTYPE_CUSTOM, 0, 0x00800000, 0x00000050, 0x00000000, menuhandler001024dc },
{ MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
};
// 18098
struct menu_dialog g_ControlStyleMultiMenuDialog = {
MENUDIALOGTYPE_DEFAULT,
L_OPTIONS(236), // "Control"
menuitems_control,
NULL,
0x00000400,
NULL,
};
// 180b0
struct menu_item menuitems_control2[] = {
{ MENUITEMTYPE_CUSTOM, 0, 0x00800000, 0x00000028, 0x00000096, menuhandler001024dc },
{ MENUITEMTYPE_CONTROLLER, 0, 0x00000001, 0x00000000, 0x00000000, NULL },
{ MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
};
// 180ec
struct menu_dialog g_ControlStyleSingleMenuDialog = {
MENUDIALOGTYPE_DEFAULT,
L_OPTIONS(236), // "Control"
menuitems_control2,
NULL,
0x00000400,
NULL,
};
// 18104
struct menu_item menuitems_control3[] = {
{ MENUITEMTYPE_CUSTOM, 0, 0x00800000, 0x00000028, 0x00000096, menuhandler001024dc },
{ MENUITEMTYPE_CONTROLLER, 0, 0x00000001, 0x00000000, 0x00000000, NULL },
{ MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
};
// 18140
struct menu_dialog menudialog_control3 = {
MENUDIALOGTYPE_DEFAULT,
L_OPTIONS(236), // "Control"
menuitems_control3,
NULL,
0x00000400,
NULL,
};
// 18158
struct menu_item menuitems_control4[] = {
{ MENUITEMTYPE_CUSTOM, 0, 0x00800000, 0x00000028, 0x00000096, menuhandler001024fc },
{ MENUITEMTYPE_CONTROLLER, 0, 0x00000001, 0x00000000, 0x00000000, NULL },
{ MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
};
// 18194
struct menu_dialog menudialog_control4 = {
MENUDIALOGTYPE_DEFAULT,
L_OPTIONS(236), // "Control"
menuitems_control4,
NULL,
0x00000400,
NULL,
};
// 181ac
struct menu_item menuitems_audiooptions[] = {
{ MENUITEMTYPE_SLIDER, 0, L_LEN(0), L_OPTIONS(228), L_MPMENU(0), menuhandlerSfxVolume }, // "Sound"
{ MENUITEMTYPE_SLIDER, 0, L_LEN(0), L_OPTIONS(229), L_MPMENU(0), menuhandlerMusicVolume }, // "Music"
{ MENUITEMTYPE_DROPDOWN, 0, 0x00000000, L_OPTIONS(230), 0x00000000, menuhandlerSoundMode }, // "Sound Mode"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPWEAPONS(218), 0x00000000, menuhandlerLangFilter }, // "Language Filter"
{ MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_OPTIONS(231), 0x00000000, NULL }, // ""
{ MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
};
// 18238
struct menu_dialog menudialog_audiooptions = {
MENUDIALOGTYPE_DEFAULT,
L_OPTIONS(227), // "Audio Options"
menuitems_audiooptions,
NULL,
0x00000000,
NULL,
};
// 18250
struct menu_item menuitems_audiooptions2[] = {
{ MENUITEMTYPE_SLIDER, 0, 0x00102800, L_OPTIONS(228), L_MPMENU(0), menuhandlerSfxVolume }, // "Sound"
{ MENUITEMTYPE_SLIDER, 0, 0x00102800, L_OPTIONS(229), L_MPMENU(0), menuhandlerMusicVolume }, // "Music"
{ MENUITEMTYPE_DROPDOWN, 0, 0x00000000, L_MPWEAPONS(153), 0x00000000, menuhandlerSoundMode }, // "Mode"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPWEAPONS(218), 0x00000000, menuhandlerLangFilter }, // "Language Filter"
{ MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_OPTIONS(231), 0x00000000, NULL }, // "Back"
{ MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
};
// 182dc
struct menu_dialog menudialog_audiooptionsshort = {
MENUDIALOGTYPE_DEFAULT,
L_OPTIONS(227), // "Audio Options"
menuitems_audiooptions2,
NULL,
0x00000000,
NULL,
};
// 182f4
struct menu_item menuitems_videooptions[] = {
{ MENUITEMTYPE_DROPDOWN, 0, 0x00000000, L_OPTIONS(215), 0x00000000, menuhandlerScreenSize }, // "Screen Size"
{ MENUITEMTYPE_DROPDOWN, 0, 0x00000000, L_OPTIONS(216), 0x00000000, menuhandlerScreenRatio }, // "Ratio"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS(217), 0x00000000, menuhandlerHiRes }, // "Hi-Res"
{ MENUITEMTYPE_DROPDOWN, 0, 0x00000000, L_OPTIONS(218), 0x00000000, menuhandlerScreenSplit }, // "2-Player Screen Split"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPWEAPONS(170), 0x00000000, menuhandlerAlternativeTitle }, // "Alternative Title Screen"
{ MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x000000c8, 0x00000000, NULL },
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_OPTIONS(219), 0x00000000, NULL }, // "Back"
{ MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
};
// 18394
struct menu_item menuitems_videooptionsshort[] = {
{ MENUITEMTYPE_DROPDOWN, 0, 0x00000000, L_OPTIONS(216), 0x00000000, menuhandlerScreenRatio }, // "Ratio"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS(217), 0x00000000, menuhandlerHiRes }, // "Hi-Res"
{ MENUITEMTYPE_DROPDOWN, 0, 0x00000000, L_MPWEAPONS(154), 0x00000000, menuhandlerScreenSplit }, // "Split"
{ MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_OPTIONS(219), 0x00000000, NULL }, // "Back"
{ MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
};
// 1840c
struct menu_dialog menudialog_videooptions = {
MENUDIALOGTYPE_DEFAULT,
L_OPTIONS(214), // "Video Options"
menuitems_videooptions,
NULL,
0x00000000,
NULL,
};
// 18424
struct menu_dialog menudialog_videooptionsshort = {
MENUDIALOGTYPE_DEFAULT,
L_OPTIONS(214), // "Video Options"
menuitems_videooptionsshort,
NULL,
0x00000000,
NULL,
};
// 1843c
struct menu_item menuitems_displayoptions[] = {
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS(205), 0x00000004, menuhandlerSightOnScreen }, // "Sight on Screen"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS(206), 0x00000004, menuhandlerAlwaysShowTarget }, // "Always Show Target"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS(207), 0x00000004, menuhandlerShowZoomRange }, // "Show Zoom Range"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS(208), 0x00000004, menuhandlerAmmoOnScreen }, // "Ammo on Screen"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS(209), 0x00000004, menuhandlerShowGunFunction }, // "Show Gun Function"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS(210), 0x00000004, menuhandlerPaintball }, // "Paintball"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPWEAPONS(169), 0x00000004, menuhandlerInGameSubtitles }, // "In-Game Subtitles"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPWEAPONS(168), 0x00000004, menuhandlerCutsceneSubtitles }, // "Cutscene Subtitles"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS(212), 0x00000004, menuhandlerShowMissionTime }, // "Show Mission Time"
{ MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_OPTIONS(213), 0x00000000, NULL }, // "Back"
{ MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
};
// 1852c
struct menu_dialog menudialog_displayoptions = {
MENUDIALOGTYPE_DEFAULT,
L_OPTIONS(203), // "Display Options"
menuitems_displayoptions,
NULL,
0x00000000,
NULL,
};
// 18544
struct menu_item menuitems_displayoptionsshort[] = {
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPWEAPONS(145), 0x00000004, menuhandlerSightOnScreen }, // "Sight on Screen"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPWEAPONS(146), 0x00000004, menuhandlerAlwaysShowTarget }, // "Target"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPWEAPONS(147), 0x00000004, menuhandlerShowZoomRange }, // "Zoom Range"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPWEAPONS(148), 0x00000004, menuhandlerAmmoOnScreen }, // "Show Ammo"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPWEAPONS(149), 0x00000004, menuhandlerShowGunFunction }, // "Gun Function"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPWEAPONS(150), 0x00000004, menuhandlerPaintball }, // "Paintball"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPWEAPONS(169), 0x00000004, menuhandlerInGameSubtitles }, // "In-Game Subtitles"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPWEAPONS(168), 0x00000004, menuhandlerCutsceneSubtitles }, // "Cutscene Subtitles"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPWEAPONS(152), 0x00000004, menuhandlerShowMissionTime }, // "Mission Time"
{ MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_OPTIONS(213), 0x00000000, NULL }, // "Back"
{ MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
};
// 18634
struct menu_dialog menudialog_displayoptionsshort = {
MENUDIALOGTYPE_DEFAULT,
L_OPTIONS(203), // "Display Options"
menuitems_displayoptionsshort,
NULL,
0x00000000,
NULL,
};
// 1864c
struct menu_item menuitems_displayoptions_2pplayer1[] = {
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS(205), 0x00000004, menuhandlerSightOnScreen }, // "Sight on Screen"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS(206), 0x00000004, menuhandlerAlwaysShowTarget }, // "Always Show Target"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS(207), 0x00000004, menuhandlerShowZoomRange }, // "Show Zoom Range"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS(208), 0x00000004, menuhandlerAmmoOnScreen }, // "Ammo on Screen"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS(209), 0x00000004, menuhandlerShowGunFunction }, // "Show Gun Function"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS(210), 0x00000004, menuhandlerPaintball }, // "Paintball"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPWEAPONS(169), 0x00000004, menuhandlerInGameSubtitles }, // "In-Game Subtitles"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPWEAPONS(168), 0x00000004, menuhandlerCutsceneSubtitles }, // "Cutscene Subtitles"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS(212), 0x00000004, menuhandlerShowMissionTime }, // "Show Mission Time"
{ MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_OPTIONS(213), 0x00000000, NULL }, // "Back"
{ MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
};
struct menu_dialog menudialog_displayplayer2;
// 1873c
struct menu_dialog menudialog_displayoptions_2pplayer1 = {
MENUDIALOGTYPE_DEFAULT,
L_OPTIONS(203), // "Display Options"
menuitems_displayoptions_2pplayer1,
NULL,
0x00000000,
&menudialog_displayplayer2,
};
// 18754
struct menu_item menuitems_displayplayer2[] = {
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, 0x000056cd, 0x00000005, menuhandlerSightOnScreen },
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, 0x000056ce, 0x00000005, menuhandlerAlwaysShowTarget },
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, 0x000056cf, 0x00000005, menuhandlerShowZoomRange },
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, 0x000056d0, 0x00000005, menuhandlerAmmoOnScreen },
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, 0x000056d1, 0x00000005, menuhandlerShowGunFunction },
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, 0x000056d2, 0x00000005, menuhandlerPaintball },
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, 0x000054a9, 0x00000005, menuhandlerInGameSubtitles },
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, 0x000054a8, 0x00000005, menuhandlerCutsceneSubtitles },
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, 0x000056d4, 0x00000005, menuhandlerShowMissionTime },
{ MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000008, 0x000056d5, 0x00000000, NULL },
{ MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
};
// 18844
struct menu_dialog menudialog_displayplayer2 = {
MENUDIALOGTYPE_DEFAULT,
L_OPTIONS(204), // "Display Player 2"
menuitems_displayplayer2,
NULL,
0x00000000,
NULL,
};
// 1885c
struct menu_item menuitems_controloptions[] = {
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_OPTIONS(194), (u32)&func0f105664, menuhandlerControlStyle }, // "Control Style"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS(195), 0x00000004, menuhandlerReversePitch }, // "Reverse Pitch"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS(196), 0x00000004, menuhandlerLookAhead }, // "Look Ahead"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS(197), 0x00000004, menuhandlerHeadRoll }, // "Head Roll"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS(198), 0x00000004, menuhandlerAutoAim }, // "Auto-Aim"
{ MENUITEMTYPE_DROPDOWN, 0, 0x00000000, L_OPTIONS(199), 0x00000004, menuhandlerAimControl }, // "Aim Control"
{ MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_OPTIONS(200), 0x00000000, NULL }, // "Back"
{ MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
};
// 18910
struct menu_dialog menudialog_controloptions = {
MENUDIALOGTYPE_DEFAULT,
L_OPTIONS(192), // "Control Options"
menuitems_controloptions,
NULL,
0x00000000,
NULL,
};
// 18928
struct menu_item menuitems_18928[] = {
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_OPTIONS(194), (u32)&func0f105664, &menudialog_control3 }, // "Control Style"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS(195), 0x00000004, menuhandlerReversePitch }, // "Reverse Pitch"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS(196), 0x00000004, menuhandlerLookAhead }, // "Look Ahead"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS(197), 0x00000004, menuhandlerHeadRoll }, // "Head Roll"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS(198), 0x00000004, menuhandlerAutoAim }, // "Auto-Aim"
{ MENUITEMTYPE_DROPDOWN, 0, 0x00000000, L_OPTIONS(199), 0x00000004, menuhandlerAimControl }, // "Aim Control"
{ MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_OPTIONS(200), 0x00000000, NULL }, // "Back"
{ MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
};
struct menu_dialog menudialog_18aa8;
// 189dc
struct menu_dialog menudialog_189dc = {
MENUDIALOGTYPE_DEFAULT,
L_OPTIONS(192), // "Control Options"
menuitems_18928,
NULL,
0x00000000,
&menudialog_18aa8,
};
// 189f4
struct menu_item menuitems_189f4[] = {
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000004, 0x000056c2, (u32)&func0f1056a0, &menudialog_control4 },
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, 0x000056c3, 0x00000005, menuhandlerReversePitch },
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, 0x000056c4, 0x00000005, menuhandlerLookAhead },
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, 0x000056c5, 0x00000005, menuhandlerHeadRoll },
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, 0x000056c6, 0x00000005, menuhandlerAutoAim },
{ MENUITEMTYPE_DROPDOWN, 0, 0x00000000, 0x000056c7, 0x00000005, menuhandlerAimControl },
{ MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000008, 0x000056c8, 0x00000000, NULL },
{ MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
};
// 18aa8
struct menu_dialog menudialog_18aa8 = {
MENUDIALOGTYPE_DEFAULT,
L_OPTIONS(193), // "Control Player 2"
menuitems_189f4,
NULL,
0x00000000,
NULL,
};
+563 -107
View File
@@ -509,113 +509,54 @@ glabel menuhandlerScreenRatio
/* f1028c8: 00000000 */ sll $zero,$zero,0x0
);
GLOBAL_ASM(
glabel menuhandlerScreenSplit
/* f1028cc: 27bdffc8 */ addiu $sp,$sp,-56
/* f1028d0: 3c0e8007 */ lui $t6,%hi(g_ScreenSplitOptions)
/* f1028d4: afbf0014 */ sw $ra,0x14($sp)
/* f1028d8: afa5003c */ sw $a1,0x3c($sp)
/* f1028dc: 25ce19fc */ addiu $t6,$t6,%lo(g_ScreenSplitOptions)
/* f1028e0: 8dc10000 */ lw $at,0x0($t6)
/* f1028e4: 27a20034 */ addiu $v0,$sp,0x34
/* f1028e8: 24080002 */ addiu $t0,$zero,0x2
/* f1028ec: ac410000 */ sw $at,0x0($v0)
/* f1028f0: 24010001 */ addiu $at,$zero,0x1
/* f1028f4: 10810009 */ beq $a0,$at,.L0f10291c
/* f1028f8: 24010003 */ addiu $at,$zero,0x3
/* f1028fc: 10810009 */ beq $a0,$at,.L0f102924
/* f102900: 24010006 */ addiu $at,$zero,0x6
/* f102904: 1081000e */ beq $a0,$at,.L0f102940
/* f102908: 24010007 */ addiu $at,$zero,0x7
/* f10290c: 10810043 */ beq $a0,$at,.L0f102a1c
/* f102910: 00000000 */ sll $zero,$zero,0x0
/* f102914: 10000046 */ beqz $zero,.L0f102a30
/* f102918: 00001025 */ or $v0,$zero,$zero
.L0f10291c:
/* f10291c: 10000043 */ beqz $zero,.L0f102a2c
/* f102920: acc80000 */ sw $t0,0x0($a2)
.L0f102924:
/* f102924: 8cc90000 */ lw $t1,0x0($a2)
/* f102928: 00095040 */ sll $t2,$t1,0x1
/* f10292c: 004a5821 */ addu $t3,$v0,$t2
/* f102930: 0fc5b9f1 */ jal langGet
/* f102934: 95640000 */ lhu $a0,0x0($t3)
/* f102938: 1000003e */ beqz $zero,.L0f102a34
/* f10293c: 8fbf0014 */ lw $ra,0x14($sp)
.L0f102940:
/* f102940: 0fc54bcd */ jal optionsGetScreenSplit
/* f102944: afa60040 */ sw $a2,0x40($sp)
/* f102948: 8fa60040 */ lw $a2,0x40($sp)
/* f10294c: 8cc30000 */ lw $v1,0x0($a2)
/* f102950: 50430037 */ beql $v0,$v1,.L0f102a30
/* f102954: 00001025 */ or $v0,$zero,$zero
/* f102958: 0fc54bd0 */ jal optionsSetScreenSplit
/* f10295c: 306400ff */ andi $a0,$v1,0xff
/* f102960: 3c02800a */ lui $v0,%hi(g_Vars)
/* f102964: 24429fc0 */ addiu $v0,$v0,%lo(g_Vars)
/* f102968: 8c4c0458 */ lw $t4,0x458($v0)
/* f10296c: 8c58006c */ lw $t8,0x6c($v0)
/* f102970: 00002825 */ or $a1,$zero,$zero
/* f102974: 358d0001 */ ori $t5,$t4,0x1
/* f102978: 13000003 */ beqz $t8,.L0f102988
/* f10297c: ac4d0458 */ sw $t5,0x458($v0)
/* f102980: 10000001 */ beqz $zero,.L0f102988
/* f102984: 24050001 */ addiu $a1,$zero,0x1
.L0f102988:
/* f102988: 8c4f0068 */ lw $t7,0x68($v0)
/* f10298c: 00001825 */ or $v1,$zero,$zero
/* f102990: 00002025 */ or $a0,$zero,$zero
/* f102994: 11e00003 */ beqz $t7,.L0f1029a4
/* f102998: 00000000 */ sll $zero,$zero,0x0
/* f10299c: 10000001 */ beqz $zero,.L0f1029a4
/* f1029a0: 24030001 */ addiu $v1,$zero,0x1
.L0f1029a4:
/* f1029a4: 8c4e0064 */ lw $t6,0x64($v0)
/* f1029a8: 11c00003 */ beqz $t6,.L0f1029b8
/* f1029ac: 00000000 */ sll $zero,$zero,0x0
/* f1029b0: 10000001 */ beqz $zero,.L0f1029b8
/* f1029b4: 24040001 */ addiu $a0,$zero,0x1
.L0f1029b8:
/* f1029b8: 8c590070 */ lw $t9,0x70($v0)
/* f1029bc: 00001025 */ or $v0,$zero,$zero
/* f1029c0: 13200003 */ beqz $t9,.L0f1029d0
/* f1029c4: 00000000 */ sll $zero,$zero,0x0
/* f1029c8: 10000001 */ beqz $zero,.L0f1029d0
/* f1029cc: 24020001 */ addiu $v0,$zero,0x1
.L0f1029d0:
/* f1029d0: 00444021 */ addu $t0,$v0,$a0
/* f1029d4: 01034821 */ addu $t1,$t0,$v1
/* f1029d8: 01255021 */ addu $t2,$t1,$a1
/* f1029dc: 29410002 */ slti $at,$t2,0x2
/* f1029e0: 14200012 */ bnez $at,.L0f102a2c
/* f1029e4: 3c028007 */ lui $v0,%hi(g_MpPlayerNum)
/* f1029e8: 24421448 */ addiu $v0,$v0,%lo(g_MpPlayerNum)
/* f1029ec: 8c4b0000 */ lw $t3,0x0($v0)
/* f1029f0: ac400000 */ sw $zero,0x0($v0)
/* f1029f4: 0fc3e048 */ jal func0f0f8120
/* f1029f8: afab0030 */ sw $t3,0x30($sp)
/* f1029fc: 240c0001 */ addiu $t4,$zero,0x1
/* f102a00: 3c018007 */ lui $at,%hi(g_MpPlayerNum)
/* f102a04: 0fc3e048 */ jal func0f0f8120
/* f102a08: ac2c1448 */ sw $t4,%lo(g_MpPlayerNum)($at)
/* f102a0c: 8fad0030 */ lw $t5,0x30($sp)
/* f102a10: 3c018007 */ lui $at,%hi(g_MpPlayerNum)
/* f102a14: 10000005 */ beqz $zero,.L0f102a2c
/* f102a18: ac2d1448 */ sw $t5,%lo(g_MpPlayerNum)($at)
.L0f102a1c:
/* f102a1c: 0fc54bcd */ jal optionsGetScreenSplit
/* f102a20: afa60040 */ sw $a2,0x40($sp)
/* f102a24: 8fa60040 */ lw $a2,0x40($sp)
/* f102a28: acc20000 */ sw $v0,0x0($a2)
.L0f102a2c:
/* f102a2c: 00001025 */ or $v0,$zero,$zero
.L0f102a30:
/* f102a30: 8fbf0014 */ lw $ra,0x14($sp)
.L0f102a34:
/* f102a34: 27bd0038 */ addiu $sp,$sp,0x38
/* f102a38: 03e00008 */ jr $ra
/* f102a3c: 00000000 */ sll $zero,$zero,0x0
);
u16 g_ScreenSizeOptions[] = {
L_OPTIONS(220), // "Full"
L_OPTIONS(221), // "Wide"
L_OPTIONS(222), // "Cinema"
0x0000, // ""
};
u16 g_ScreenRatioOptions[] = {
L_OPTIONS(223), // "Normal"
L_OPTIONS(224), // "16:9"
};
char *menuhandlerScreenSplit(u32 operation, struct menu_item *item, s32 *value)
{
u16 options[] = {
L_OPTIONS(225), // "Horizontal"
L_OPTIONS(226), // "Vertical"
};
switch (operation) {
case MENUOP_GETOPTIONCOUNT:
*value = 2;
break;
case MENUOP_GETOPTIONTEXT:
return langGet(options[*value]);
case MENUOP_SET:
if (optionsGetScreenSplit() != *value) {
optionsSetScreenSplit(*value);
g_Vars.unk000458 |= 1;
if (PLAYERCOUNT() > 1) {
u32 prevplayernum = g_MpPlayerNum;
g_MpPlayerNum = 0;
func0f0f8120();
g_MpPlayerNum = 1;
func0f0f8120();
g_MpPlayerNum = prevplayernum;
}
}
break;
case MENUOP_GETOPTIONVALUE:
*value = optionsGetScreenSplit();
break;
}
return NULL;
}
s32 menuhandlerLookAhead(u32 operation, struct menu_item *item, bool *enable)
{
@@ -983,6 +924,20 @@ glabel menudialog00103368
/* f1033f4: 00000000 */ sll $zero,$zero,0x0
);
struct menu_item menuitems_briefing[] = {
{ MENUITEMTYPE_SCROLLABLE, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
{ MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
};
struct menu_dialog menudialog_briefing = {
MENUDIALOGTYPE_DEFAULT,
L_OPTIONS(247), // "Briefing"
menuitems_briefing,
menudialog00103368,
0x00000008,
NULL,
};
GLOBAL_ASM(
glabel menuhandlerAcceptMission
/* f1033f8: 27bdffe8 */ addiu $sp,$sp,-24
@@ -1170,6 +1125,22 @@ s32 menudialog00103608(u32 operation, struct menu_dialog *dialog, struct menusta
return 0;
}
struct menu_item menuitems_objectives[] = {
{ MENUITEMTYPE_OBJECTIVES, 1, 0x00000000, 0x00000000, 0x00000000, NULL },
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_OPTIONS(274), 0x00000000, menuhandlerAcceptMission }, // "Accept"
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_OPTIONS(275), 0x00000000, NULL }, // "Decline"
{ MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
};
struct menu_dialog g_ObjectivesMenuDialog = {
MENUDIALOGTYPE_DEFAULT,
(u32)&soloMenuTitleStageOverview,
menuitems_objectives,
menudialog00103608,
0x0000000c,
&menudialog_briefing,
};
f32 func0f1036ac(u8 value, s32 prop)
{
if (prop == PDMODEPROP_REACTION) {
@@ -1228,6 +1199,26 @@ s32 menuhandlerAcceptPdModeSettings(s32 operation, struct menu_item *item, bool
return 0;
}
struct menu_item menuitems_perfectdarkmodesettings[] = {
{ MENUITEMTYPE_LABEL, 0, 0x00000012, L_MPWEAPONS(222), 0x00000000, NULL }, // "Choose Settings:"
{ MENUITEMTYPE_SLIDER, 1, 0x00100000, L_MPWEAPONS(224), 0x000000ff, menuhandlerPdModeSetting }, // "Enemy Health"
{ MENUITEMTYPE_SLIDER, 2, 0x00100000, L_MPWEAPONS(225), 0x000000ff, menuhandlerPdModeSetting }, // "Enemy Damage"
{ MENUITEMTYPE_SLIDER, 3, 0x00100000, L_MPWEAPONS(226), 0x000000ff, menuhandlerPdModeSetting }, // "Enemy Accuracy"
{ MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x000000b4, 0x00000000, NULL },
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_MPWEAPONS(227), 0x00000000, menuhandlerAcceptPdModeSettings }, // "OK"
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPWEAPONS(228), 0x00000000, NULL }, // "Cancel"
{ MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
};
struct menu_dialog g_PdModeSettingsDialog = {
MENUDIALOGTYPE_DEFAULT,
L_MPWEAPONS(221), // "Perfect Dark"
menuitems_perfectdarkmodesettings,
NULL,
0x00000004,
NULL,
};
GLOBAL_ASM(
glabel isStageDifficultyUnlocked
/* f1038ec: 28810011 */ slti $at,$a0,0x11
@@ -1596,6 +1587,26 @@ char *soloMenuTextBestTime(struct menu_item *item)
return g_StringPointer;
}
struct menu_item menuitems_selectdifficulty[] = {
{ MENUITEMTYPE_LABEL, 0, 0x00000012, L_OPTIONS(249), L_OPTIONS(250), NULL }, // "Difficulty"
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_OPTIONS(251), (u32)&soloMenuTextBestTime, menuhandlerSoloDifficulty }, // "Agent"
{ MENUITEMTYPE_SELECTABLE, 1, 0x00000000, L_OPTIONS(252), (u32)&soloMenuTextBestTime, menuhandlerSoloDifficulty }, // "Special Agent"
{ MENUITEMTYPE_SELECTABLE, 2, 0x00000000, L_OPTIONS(253), (u32)&soloMenuTextBestTime, menuhandlerSoloDifficulty }, // "Perfect Agent"
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_MPWEAPONS(221), 0x00000000, menuhandlerPdMode }, // "Perfect Dark"
{ MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_OPTIONS(254), 0x00000000, NULL }, // "Cancel"
{ MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
};
struct menu_dialog menudialog_selectdifficulty = {
MENUDIALOGTYPE_DEFAULT,
L_OPTIONS(248), // "Select Difficulty"
menuitems_selectdifficulty,
NULL,
0x00000004,
NULL,
};
const u32 var7f1b2d40[] = {0x57055706};
const u32 var7f1b2d44[] = {0x57075708};
const u32 var7f1b2d48[] = {0x57090000};
@@ -1866,6 +1877,25 @@ glabel menuhandlerCoopBuddy
/* f10441c: 00000000 */ sll $zero,$zero,0x0
);
struct menu_item menuitems_cooperativeoptions[] = {
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS(256), 0x00000000, menuhandlerCoopRadar }, // "Radar On"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS(257), 0x00000000, menuhandlerCoopFriendlyFire }, // "Friendly Fire"
{ MENUITEMTYPE_DROPDOWN, 0, 0x00000000, L_OPTIONS(258), 0x00000000, menuhandlerCoopBuddy }, // "Perfect Buddy"
{ MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, // ""
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_OPTIONS(259), 0x00000000, menuhandlerBuddyOptionsContinue }, // "Continue"
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_OPTIONS(260), 0x00000000, NULL }, // "Cancel"
{ MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, // ""
};
struct menu_dialog g_CoopOptionsMenuDialog = {
MENUDIALOGTYPE_DEFAULT,
L_OPTIONS(255), // "Co-Operative Options"
menuitems_cooperativeoptions,
menudialogCoopAntiOptions,
0x00000004,
NULL,
};
s32 menuhandlerAntiRadar(u32 operation, struct menu_item *item, bool *enable)
{
switch (operation) {
@@ -1901,6 +1931,24 @@ char *menuhandlerAntiPlayer(u32 operation, struct menu_dialog *dialog, s32 *valu
return NULL;
}
struct menu_item menuitems_counteroperativeoptions[] = {
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS(267), 0x00000000, menuhandlerAntiRadar }, // "Radar On"
{ MENUITEMTYPE_DROPDOWN, 0, 0x00000000, L_OPTIONS(268), 0x00000000, menuhandlerAntiPlayer }, // "Counter-Operative"
{ MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_OPTIONS(269), 0x00000000, menuhandlerBuddyOptionsContinue }, // "Continue"
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_OPTIONS(270), 0x00000000, NULL }, // "Cancel"
{ MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
};
struct menu_dialog g_AntiOptionsMenuDialog = {
MENUDIALOGTYPE_DEFAULT,
L_OPTIONS(266), // "Counter-Operative Options"
menuitems_counteroperativeoptions,
menudialogCoopAntiOptions,
0x00000004,
NULL,
};
const char var7f1b2d50[] = "\n";
s32 menuhandlerCoopDifficulty(u32 operation, struct menu_item *item, s32 *value)
@@ -1922,6 +1970,24 @@ s32 menuhandlerCoopDifficulty(u32 operation, struct menu_item *item, s32 *value)
return 0;
}
struct menu_item menuitems_selectdifficulty2[] = {
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_OPTIONS(251), 0x00000000, menuhandlerCoopDifficulty }, // "Agent"
{ MENUITEMTYPE_SELECTABLE, 1, 0x00000000, L_OPTIONS(252), 0x00000000, menuhandlerCoopDifficulty }, // "Special Agent"
{ MENUITEMTYPE_SELECTABLE, 2, 0x00000000, L_OPTIONS(253), 0x00000000, menuhandlerCoopDifficulty }, // "Perfect Agent"
{ MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_OPTIONS(254), 0x00000000, NULL }, // "Cancel"
{ MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
};
struct menu_dialog menudialog_selectdifficulty2 = {
MENUDIALOGTYPE_DEFAULT,
L_OPTIONS(248), // "Select Difficulty"
menuitems_selectdifficulty2,
NULL,
0x00000004,
NULL,
};
s32 menuhandlerAntiDifficulty(u32 operation, struct menu_item *item, s32 *value)
{
switch (operation) {
@@ -1936,6 +2002,49 @@ s32 menuhandlerAntiDifficulty(u32 operation, struct menu_item *item, s32 *value)
return 0;
}
struct menu_item menuitems_selectdifficulty3[] = {
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_OPTIONS(251), 0x00000000, menuhandlerAntiDifficulty }, // "Agent"
{ MENUITEMTYPE_SELECTABLE, 1, 0x00000000, L_OPTIONS(252), 0x00000000, menuhandlerAntiDifficulty }, // "Special Agent"
{ MENUITEMTYPE_SELECTABLE, 2, 0x00000000, L_OPTIONS(253), 0x00000000, menuhandlerAntiDifficulty }, // "Perfect Agent"
{ MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_OPTIONS(254), 0x00000000, NULL }, // "Cancel"
{ MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
};
struct menu_dialog menudialog_selectdifficulty3 = {
MENUDIALOGTYPE_DEFAULT,
L_OPTIONS(248), // "Select Difficulty"
menuitems_selectdifficulty3,
NULL,
0x00000004,
NULL,
};
struct stageoverviewentry g_StageNames[NUM_SOLOSTAGES] = {
// stage, unk04,
{ STAGE_DEFECTION, 0x0c, L_OPTIONS(133), L_OPTIONS(134), L_MPWEAPONS(124) },
{ STAGE_INVESTIGATION, 0x0d, L_OPTIONS(135), L_OPTIONS(136), L_MPWEAPONS(172) },
{ STAGE_EXTRACTION, 0x0e, L_OPTIONS(137), L_OPTIONS(138), L_MPWEAPONS(125) },
{ STAGE_VILLA, 0x0f, L_OPTIONS(139), L_OPTIONS(140), L_OPTIONS(139) },
{ STAGE_CHICAGO, 0x10, L_OPTIONS(141), L_OPTIONS(142), L_OPTIONS(141) },
{ STAGE_G5BUILDING, 0x11, L_OPTIONS(143), L_OPTIONS(144), L_OPTIONS(143) },
{ STAGE_INFILTRATION, 0x12, L_OPTIONS(145), L_OPTIONS(146), L_MPWEAPONS(126) },
{ STAGE_RESCUE, 0x13, L_OPTIONS(147), L_OPTIONS(148), L_MPWEAPONS(127) },
{ STAGE_ESCAPE, 0x14, L_OPTIONS(149), L_OPTIONS(150), L_MPWEAPONS(128) },
{ STAGE_AIRBASE, 0x15, L_OPTIONS(151), L_OPTIONS(152), L_OPTIONS(151) },
{ STAGE_AIRFORCEONE, 0x16, L_OPTIONS(153), L_OPTIONS(154), L_OPTIONS(153) },
{ STAGE_CRASHSITE, 0x17, L_OPTIONS(155), L_OPTIONS(156), L_OPTIONS(155) },
{ STAGE_PELAGIC, 0x18, L_OPTIONS(157), L_OPTIONS(158), L_OPTIONS(157) },
{ STAGE_DEEPSEA, 0x19, L_OPTIONS(159), L_OPTIONS(160), L_OPTIONS(159) },
{ STAGE_DEFENSE, 0x1a, L_OPTIONS(161), L_OPTIONS(162), L_OPTIONS(161) },
{ STAGE_ATTACKSHIP, 0x1b, L_OPTIONS(163), L_OPTIONS(164), L_OPTIONS(163) },
{ STAGE_SKEDARRUINS, 0x1c, L_OPTIONS(165), L_OPTIONS(166), L_OPTIONS(165) },
{ STAGE_MBR, 0x1c, L_OPTIONS(167), L_OPTIONS(3), L_OPTIONS(167) },
{ STAGE_MAIANSOS, 0x1c, L_OPTIONS(168), L_OPTIONS(3), L_OPTIONS(168) },
{ STAGE_WAR, 0x1c, L_OPTIONS(170), L_OPTIONS(3), L_OPTIONS(170) },
{ STAGE_DUEL, 0x1c, L_OPTIONS(171), L_OPTIONS(3), L_OPTIONS(171) },
};
s32 getNumUnlockedSpecialStages(void)
{
s32 next = 0;
@@ -1979,6 +2088,20 @@ s32 func0f104720(s32 value)
return 20;
}
struct mission missions[] = {
// first stage index, name
{ 0, L_OPTIONS(123) }, // "Mission 1"
{ 3, L_OPTIONS(124) }, // "Mission 2"
{ 4, L_OPTIONS(125) }, // "Mission 3"
{ 6, L_OPTIONS(126) }, // "Mission 4"
{ 9, L_OPTIONS(127) }, // "Mission 5"
{ 12, L_OPTIONS(128) }, // "Mission 6"
{ 14, L_OPTIONS(129) }, // "Mission 7"
{ 15, L_OPTIONS(130) }, // "Mission 8"
{ 16, L_OPTIONS(131) }, // "Mission 9"
{ 99, L_OPTIONS(132) }, // "Special Assignments"
};
GLOBAL_ASM(
glabel menuhandler0010476c
.late_rodata
@@ -3006,6 +3129,43 @@ s32 menudialog0010559c(u32 operation, struct menu_dialog *dialog, struct menusta
return 0;
}
struct menu_item menuitems_17fd8[] = {
{ MENUITEMTYPE_SCROLLABLE, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
{ MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
};
struct menu_item menuitems_18000[] = {
{ MENUITEMTYPE_SCROLLABLE, 0, 0x00000000, 0x00000078, 0x00000000, NULL },
{ MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
};
struct menu_dialog menudialog_18028 = {
MENUDIALOGTYPE_DEFAULT,
L_OPTIONS(247), // "Briefing"
menuitems_17fd8,
NULL,
0x00000008,
NULL,
};
struct menu_dialog menudialog_18040 = {
MENUDIALOGTYPE_DEFAULT,
L_OPTIONS(247), // "Briefing"
menuitems_17fd8,
NULL,
0x00000008,
NULL,
};
struct menu_dialog menudialog_18058 = {
MENUDIALOGTYPE_DEFAULT,
L_OPTIONS(247), // "Briefing"
menuitems_18000,
NULL,
0x00000008,
NULL,
};
char *func0f105664(struct menu_item *item)
{
s32 stack[4];
@@ -3068,6 +3228,302 @@ s32 menuhandlerChangeAgent(s32 operation, struct menu_item *item, s32 *value)
return 0;
}
struct menu_item menuitems_control[] = {
{ MENUITEMTYPE_CUSTOM, 0, 0x00800000, 0x00000050, 0x00000000, menuhandler001024dc },
{ MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
};
struct menu_dialog g_ControlStyleMultiMenuDialog = {
MENUDIALOGTYPE_DEFAULT,
L_OPTIONS(236), // "Control"
menuitems_control,
NULL,
0x00000400,
NULL,
};
struct menu_item menuitems_control2[] = {
{ MENUITEMTYPE_CUSTOM, 0, 0x00800000, 0x00000028, 0x00000096, menuhandler001024dc },
{ MENUITEMTYPE_CONTROLLER, 0, 0x00000001, 0x00000000, 0x00000000, NULL },
{ MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
};
struct menu_dialog g_ControlStyleSingleMenuDialog = {
MENUDIALOGTYPE_DEFAULT,
L_OPTIONS(236), // "Control"
menuitems_control2,
NULL,
0x00000400,
NULL,
};
struct menu_item menuitems_control3[] = {
{ MENUITEMTYPE_CUSTOM, 0, 0x00800000, 0x00000028, 0x00000096, menuhandler001024dc },
{ MENUITEMTYPE_CONTROLLER, 0, 0x00000001, 0x00000000, 0x00000000, NULL },
{ MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
};
struct menu_dialog menudialog_control3 = {
MENUDIALOGTYPE_DEFAULT,
L_OPTIONS(236), // "Control"
menuitems_control3,
NULL,
0x00000400,
NULL,
};
struct menu_item menuitems_control4[] = {
{ MENUITEMTYPE_CUSTOM, 0, 0x00800000, 0x00000028, 0x00000096, menuhandler001024fc },
{ MENUITEMTYPE_CONTROLLER, 0, 0x00000001, 0x00000000, 0x00000000, NULL },
{ MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
};
struct menu_dialog menudialog_control4 = {
MENUDIALOGTYPE_DEFAULT,
L_OPTIONS(236), // "Control"
menuitems_control4,
NULL,
0x00000400,
NULL,
};
struct menu_item menuitems_audiooptions[] = {
{ MENUITEMTYPE_SLIDER, 0, L_LEN(0), L_OPTIONS(228), L_MPMENU(0), menuhandlerSfxVolume }, // "Sound"
{ MENUITEMTYPE_SLIDER, 0, L_LEN(0), L_OPTIONS(229), L_MPMENU(0), menuhandlerMusicVolume }, // "Music"
{ MENUITEMTYPE_DROPDOWN, 0, 0x00000000, L_OPTIONS(230), 0x00000000, menuhandlerSoundMode }, // "Sound Mode"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPWEAPONS(218), 0x00000000, menuhandlerLangFilter }, // "Language Filter"
{ MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_OPTIONS(231), 0x00000000, NULL }, // ""
{ MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
};
struct menu_dialog menudialog_audiooptions = {
MENUDIALOGTYPE_DEFAULT,
L_OPTIONS(227), // "Audio Options"
menuitems_audiooptions,
NULL,
0x00000000,
NULL,
};
struct menu_item menuitems_audiooptions2[] = {
{ MENUITEMTYPE_SLIDER, 0, 0x00102800, L_OPTIONS(228), L_MPMENU(0), menuhandlerSfxVolume }, // "Sound"
{ MENUITEMTYPE_SLIDER, 0, 0x00102800, L_OPTIONS(229), L_MPMENU(0), menuhandlerMusicVolume }, // "Music"
{ MENUITEMTYPE_DROPDOWN, 0, 0x00000000, L_MPWEAPONS(153), 0x00000000, menuhandlerSoundMode }, // "Mode"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPWEAPONS(218), 0x00000000, menuhandlerLangFilter }, // "Language Filter"
{ MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_OPTIONS(231), 0x00000000, NULL }, // "Back"
{ MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
};
struct menu_dialog menudialog_audiooptionsshort = {
MENUDIALOGTYPE_DEFAULT,
L_OPTIONS(227), // "Audio Options"
menuitems_audiooptions2,
NULL,
0x00000000,
NULL,
};
struct menu_item menuitems_videooptions[] = {
{ MENUITEMTYPE_DROPDOWN, 0, 0x00000000, L_OPTIONS(215), 0x00000000, menuhandlerScreenSize }, // "Screen Size"
{ MENUITEMTYPE_DROPDOWN, 0, 0x00000000, L_OPTIONS(216), 0x00000000, menuhandlerScreenRatio }, // "Ratio"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS(217), 0x00000000, menuhandlerHiRes }, // "Hi-Res"
{ MENUITEMTYPE_DROPDOWN, 0, 0x00000000, L_OPTIONS(218), 0x00000000, menuhandlerScreenSplit }, // "2-Player Screen Split"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPWEAPONS(170), 0x00000000, menuhandlerAlternativeTitle }, // "Alternative Title Screen"
{ MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x000000c8, 0x00000000, NULL },
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_OPTIONS(219), 0x00000000, NULL }, // "Back"
{ MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
};
struct menu_item menuitems_videooptionsshort[] = {
{ MENUITEMTYPE_DROPDOWN, 0, 0x00000000, L_OPTIONS(216), 0x00000000, menuhandlerScreenRatio }, // "Ratio"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS(217), 0x00000000, menuhandlerHiRes }, // "Hi-Res"
{ MENUITEMTYPE_DROPDOWN, 0, 0x00000000, L_MPWEAPONS(154), 0x00000000, menuhandlerScreenSplit }, // "Split"
{ MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_OPTIONS(219), 0x00000000, NULL }, // "Back"
{ MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
};
struct menu_dialog menudialog_videooptions = {
MENUDIALOGTYPE_DEFAULT,
L_OPTIONS(214), // "Video Options"
menuitems_videooptions,
NULL,
0x00000000,
NULL,
};
struct menu_dialog menudialog_videooptionsshort = {
MENUDIALOGTYPE_DEFAULT,
L_OPTIONS(214), // "Video Options"
menuitems_videooptionsshort,
NULL,
0x00000000,
NULL,
};
struct menu_item menuitems_displayoptions[] = {
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS(205), 0x00000004, menuhandlerSightOnScreen }, // "Sight on Screen"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS(206), 0x00000004, menuhandlerAlwaysShowTarget }, // "Always Show Target"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS(207), 0x00000004, menuhandlerShowZoomRange }, // "Show Zoom Range"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS(208), 0x00000004, menuhandlerAmmoOnScreen }, // "Ammo on Screen"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS(209), 0x00000004, menuhandlerShowGunFunction }, // "Show Gun Function"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS(210), 0x00000004, menuhandlerPaintball }, // "Paintball"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPWEAPONS(169), 0x00000004, menuhandlerInGameSubtitles }, // "In-Game Subtitles"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPWEAPONS(168), 0x00000004, menuhandlerCutsceneSubtitles }, // "Cutscene Subtitles"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS(212), 0x00000004, menuhandlerShowMissionTime }, // "Show Mission Time"
{ MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_OPTIONS(213), 0x00000000, NULL }, // "Back"
{ MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
};
struct menu_dialog menudialog_displayoptions = {
MENUDIALOGTYPE_DEFAULT,
L_OPTIONS(203), // "Display Options"
menuitems_displayoptions,
NULL,
0x00000000,
NULL,
};
struct menu_item menuitems_displayoptionsshort[] = {
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPWEAPONS(145), 0x00000004, menuhandlerSightOnScreen }, // "Sight on Screen"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPWEAPONS(146), 0x00000004, menuhandlerAlwaysShowTarget }, // "Target"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPWEAPONS(147), 0x00000004, menuhandlerShowZoomRange }, // "Zoom Range"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPWEAPONS(148), 0x00000004, menuhandlerAmmoOnScreen }, // "Show Ammo"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPWEAPONS(149), 0x00000004, menuhandlerShowGunFunction }, // "Gun Function"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPWEAPONS(150), 0x00000004, menuhandlerPaintball }, // "Paintball"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPWEAPONS(169), 0x00000004, menuhandlerInGameSubtitles }, // "In-Game Subtitles"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPWEAPONS(168), 0x00000004, menuhandlerCutsceneSubtitles }, // "Cutscene Subtitles"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPWEAPONS(152), 0x00000004, menuhandlerShowMissionTime }, // "Mission Time"
{ MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_OPTIONS(213), 0x00000000, NULL }, // "Back"
{ MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
};
struct menu_dialog menudialog_displayoptionsshort = {
MENUDIALOGTYPE_DEFAULT,
L_OPTIONS(203), // "Display Options"
menuitems_displayoptionsshort,
NULL,
0x00000000,
NULL,
};
struct menu_item menuitems_displayoptions_2pplayer1[] = {
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS(205), 0x00000004, menuhandlerSightOnScreen }, // "Sight on Screen"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS(206), 0x00000004, menuhandlerAlwaysShowTarget }, // "Always Show Target"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS(207), 0x00000004, menuhandlerShowZoomRange }, // "Show Zoom Range"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS(208), 0x00000004, menuhandlerAmmoOnScreen }, // "Ammo on Screen"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS(209), 0x00000004, menuhandlerShowGunFunction }, // "Show Gun Function"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS(210), 0x00000004, menuhandlerPaintball }, // "Paintball"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPWEAPONS(169), 0x00000004, menuhandlerInGameSubtitles }, // "In-Game Subtitles"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPWEAPONS(168), 0x00000004, menuhandlerCutsceneSubtitles }, // "Cutscene Subtitles"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS(212), 0x00000004, menuhandlerShowMissionTime }, // "Show Mission Time"
{ MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_OPTIONS(213), 0x00000000, NULL }, // "Back"
{ MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
};
struct menu_dialog menudialog_displayplayer2;
struct menu_dialog menudialog_displayoptions_2pplayer1 = {
MENUDIALOGTYPE_DEFAULT,
L_OPTIONS(203), // "Display Options"
menuitems_displayoptions_2pplayer1,
NULL,
0x00000000,
&menudialog_displayplayer2,
};
struct menu_item menuitems_displayplayer2[] = {
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, 0x000056cd, 0x00000005, menuhandlerSightOnScreen },
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, 0x000056ce, 0x00000005, menuhandlerAlwaysShowTarget },
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, 0x000056cf, 0x00000005, menuhandlerShowZoomRange },
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, 0x000056d0, 0x00000005, menuhandlerAmmoOnScreen },
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, 0x000056d1, 0x00000005, menuhandlerShowGunFunction },
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, 0x000056d2, 0x00000005, menuhandlerPaintball },
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, 0x000054a9, 0x00000005, menuhandlerInGameSubtitles },
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, 0x000054a8, 0x00000005, menuhandlerCutsceneSubtitles },
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, 0x000056d4, 0x00000005, menuhandlerShowMissionTime },
{ MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000008, 0x000056d5, 0x00000000, NULL },
{ MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
};
struct menu_dialog menudialog_displayplayer2 = {
MENUDIALOGTYPE_DEFAULT,
L_OPTIONS(204), // "Display Player 2"
menuitems_displayplayer2,
NULL,
0x00000000,
NULL,
};
struct menu_item menuitems_controloptions[] = {
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_OPTIONS(194), (u32)&func0f105664, menuhandlerControlStyle }, // "Control Style"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS(195), 0x00000004, menuhandlerReversePitch }, // "Reverse Pitch"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS(196), 0x00000004, menuhandlerLookAhead }, // "Look Ahead"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS(197), 0x00000004, menuhandlerHeadRoll }, // "Head Roll"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS(198), 0x00000004, menuhandlerAutoAim }, // "Auto-Aim"
{ MENUITEMTYPE_DROPDOWN, 0, 0x00000000, L_OPTIONS(199), 0x00000004, menuhandlerAimControl }, // "Aim Control"
{ MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_OPTIONS(200), 0x00000000, NULL }, // "Back"
{ MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
};
struct menu_dialog menudialog_controloptions = {
MENUDIALOGTYPE_DEFAULT,
L_OPTIONS(192), // "Control Options"
menuitems_controloptions,
NULL,
0x00000000,
NULL,
};
struct menu_item menuitems_18928[] = {
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_OPTIONS(194), (u32)&func0f105664, &menudialog_control3 }, // "Control Style"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS(195), 0x00000004, menuhandlerReversePitch }, // "Reverse Pitch"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS(196), 0x00000004, menuhandlerLookAhead }, // "Look Ahead"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS(197), 0x00000004, menuhandlerHeadRoll }, // "Head Roll"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS(198), 0x00000004, menuhandlerAutoAim }, // "Auto-Aim"
{ MENUITEMTYPE_DROPDOWN, 0, 0x00000000, L_OPTIONS(199), 0x00000004, menuhandlerAimControl }, // "Aim Control"
{ MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_OPTIONS(200), 0x00000000, NULL }, // "Back"
{ MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
};
struct menu_dialog menudialog_189dc = {
MENUDIALOGTYPE_DEFAULT,
L_OPTIONS(192), // "Control Options"
menuitems_18928,
NULL,
0x00000000,
&menudialog_18aa8,
};
struct menu_item menuitems_189f4[] = {
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000004, 0x000056c2, (u32)&func0f1056a0, &menudialog_control4 },
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, 0x000056c3, 0x00000005, menuhandlerReversePitch },
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, 0x000056c4, 0x00000005, menuhandlerLookAhead },
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, 0x000056c5, 0x00000005, menuhandlerHeadRoll },
{ MENUITEMTYPE_CHECKBOX, 0, 0x00000000, 0x000056c6, 0x00000005, menuhandlerAutoAim },
{ MENUITEMTYPE_DROPDOWN, 0, 0x00000000, 0x000056c7, 0x00000005, menuhandlerAimControl },
{ MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000008, 0x000056c8, 0x00000000, NULL },
{ MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
};
struct menu_dialog menudialog_18aa8 = {
MENUDIALOGTYPE_DEFAULT,
L_OPTIONS(193), // "Control Player 2"
menuitems_189f4,
NULL,
0x00000000,
NULL,
};
struct menu_item menuitems_changeagent[] = {
{ MENUITEMTYPE_LABEL, 0, 0x00000012, L_OPTIONS(189), 0x00000000, NULL }, // "Do you want to load another agent?"
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_OPTIONS(190), 0x00000000, menuhandlerChangeAgent }, // "Yes"
+1
View File
@@ -221,6 +221,7 @@ extern struct menu_dialog menudialog_displayoptions_2pplayer1;
extern struct menu_dialog menudialog_18028;
extern struct menu_dialog menudialog_18040;
extern struct menu_dialog menudialog_18058;
extern struct menu_dialog menudialog_18aa8;
extern struct menu_dialog menudialog_189dc;
extern struct menu_item menuitems_18c18[];
extern struct menu_dialog menudialog_18d30;
+1 -1
View File
@@ -66,7 +66,7 @@ s32 menuhandlerPdModeSetting(u32 operation, struct menu_item *item, struct numan
s32 menuhandlerReversePitch(u32 operation, struct menu_item *item, bool *enable);
s32 menuhandlerScreenRatio(u32 operation, struct menu_item *item, bool *enable);
s32 menuhandlerScreenSize(u32 operation, struct menu_item *item, bool *enable);
s32 menuhandlerScreenSplit(u32 operation, struct menu_item *item, bool *enable);
char *menuhandlerScreenSplit(u32 operation, struct menu_item *item, s32 *value);
s32 menuhandlerSfxVolume(u32 operation, struct menu_item *item, u32 *volume);
s32 menuhandlerShowGunFunction(u32 operation, struct menu_item *item, bool *enable);
s32 menuhandlerShowMissionTime(u32 operation, struct menu_item *item, bool *enable);