(PS3) Refactor menu code

This commit is contained in:
Twinaphex 2012-07-30 16:24:28 +02:00
parent 51b49ac027
commit 463c8c551c
3 changed files with 185 additions and 252 deletions

View File

@ -14,7 +14,7 @@
* If not, see <http://www.gnu.org/licenses/>. * If not, see <http://www.gnu.org/licenses/>.
*/ */
item items_generalsettings[MAX_NO_OF_CONTROLS_SETTINGS] = item menu_items[MAX_NO_OF_CONTROLS_SETTINGS] =
{ {
{ {
SETTING_CHANGE_RESOLUTION, /* enum ID of item */ SETTING_CHANGE_RESOLUTION, /* enum ID of item */
@ -25,7 +25,6 @@ item items_generalsettings[MAX_NO_OF_CONTROLS_SETTINGS] =
YELLOW, /* text color */ YELLOW, /* text color */
"INFO - Change the display resolution - press X to confirm.", /* item comment */ "INFO - Change the display resolution - press X to confirm.", /* item comment */
WHITE, /* color of item comment */ WHITE, /* color of item comment */
0.83f, /* comment Y position */
}, },
{ {
SETTING_SHADER_PRESETS, SETTING_SHADER_PRESETS,
@ -36,7 +35,6 @@ item items_generalsettings[MAX_NO_OF_CONTROLS_SETTINGS] =
YELLOW, YELLOW,
"INFO - Select a [CG Preset] script.", "INFO - Select a [CG Preset] script.",
WHITE, WHITE,
0.83f,
}, },
{ {
SETTING_SHADER, SETTING_SHADER,
@ -47,7 +45,6 @@ item items_generalsettings[MAX_NO_OF_CONTROLS_SETTINGS] =
YELLOW, YELLOW,
"INFO - Select a shader as [Shader #1]. NOTE: Some shaders might be\ntoo slow at 1080p. If you experience any slowdown, try another shader.", "INFO - Select a shader as [Shader #1]. NOTE: Some shaders might be\ntoo slow at 1080p. If you experience any slowdown, try another shader.",
WHITE, WHITE,
0.83f,
}, },
{ {
SETTING_SHADER_2, SETTING_SHADER_2,
@ -58,7 +55,6 @@ item items_generalsettings[MAX_NO_OF_CONTROLS_SETTINGS] =
YELLOW, YELLOW,
"INFO - Select a shader as [Shader #2]. NOTE: Some shaders might be\ntoo slow at 1080p. If you experience any slowdown, try another shader.", "INFO - Select a shader as [Shader #2]. NOTE: Some shaders might be\ntoo slow at 1080p. If you experience any slowdown, try another shader.",
WHITE, WHITE,
0.83f,
}, },
{ {
SETTING_FONT_SIZE, SETTING_FONT_SIZE,
@ -69,7 +65,6 @@ item items_generalsettings[MAX_NO_OF_CONTROLS_SETTINGS] =
YELLOW, YELLOW,
"INFO - Increase or decrease the font size in the menu.", "INFO - Increase or decrease the font size in the menu.",
WHITE, WHITE,
0.83f,
}, },
{ {
SETTING_KEEP_ASPECT_RATIO, SETTING_KEEP_ASPECT_RATIO,
@ -80,7 +75,6 @@ item items_generalsettings[MAX_NO_OF_CONTROLS_SETTINGS] =
YELLOW, YELLOW,
"INFO - [Aspect Ratio] is set to 'Scaled (4:3)' - screen will have black\nborders left/right on widescreen TVs/monitors.", "INFO - [Aspect Ratio] is set to 'Scaled (4:3)' - screen will have black\nborders left/right on widescreen TVs/monitors.",
WHITE, WHITE,
0.83f,
}, },
{ {
SETTING_HW_TEXTURE_FILTER, SETTING_HW_TEXTURE_FILTER,
@ -91,7 +85,6 @@ item items_generalsettings[MAX_NO_OF_CONTROLS_SETTINGS] =
YELLOW, YELLOW,
"INFO - Hardware filtering is set to 'Bilinear filtering' for [Shader #1].", "INFO - Hardware filtering is set to 'Bilinear filtering' for [Shader #1].",
WHITE, WHITE,
0.83f,
}, },
{ {
SETTING_HW_TEXTURE_FILTER_2, SETTING_HW_TEXTURE_FILTER_2,
@ -102,7 +95,6 @@ item items_generalsettings[MAX_NO_OF_CONTROLS_SETTINGS] =
YELLOW, YELLOW,
"INFO - Hardware filtering is set to 'Bilinear filtering' for [Shader #2].", "INFO - Hardware filtering is set to 'Bilinear filtering' for [Shader #2].",
WHITE, WHITE,
0.83f,
}, },
{ {
SETTING_SCALE_ENABLED, SETTING_SCALE_ENABLED,
@ -113,7 +105,6 @@ item items_generalsettings[MAX_NO_OF_CONTROLS_SETTINGS] =
YELLOW, YELLOW,
"INFO - [Custom Scaling] is set to 'ON' - 2x shaders will look much\nbetter, and you can select a shader for [Shader #2].", "INFO - [Custom Scaling] is set to 'ON' - 2x shaders will look much\nbetter, and you can select a shader for [Shader #2].",
WHITE, WHITE,
0.83f,
}, },
{ {
SETTING_SCALE_FACTOR, SETTING_SCALE_FACTOR,
@ -124,7 +115,6 @@ item items_generalsettings[MAX_NO_OF_CONTROLS_SETTINGS] =
YELLOW, YELLOW,
"INFO - [Custom Scaling Factor] is set to '2x'.", "INFO - [Custom Scaling Factor] is set to '2x'.",
WHITE, WHITE,
0.83f,
}, },
{ {
SETTING_HW_OVERSCAN_AMOUNT, SETTING_HW_OVERSCAN_AMOUNT,
@ -135,7 +125,6 @@ item items_generalsettings[MAX_NO_OF_CONTROLS_SETTINGS] =
YELLOW, YELLOW,
"INFO - Adjust or decrease [Overscan]. Set this to higher than 0.000\nif the screen doesn't fit on your TV/monitor.", "INFO - Adjust or decrease [Overscan]. Set this to higher than 0.000\nif the screen doesn't fit on your TV/monitor.",
WHITE, WHITE,
0.83f,
}, },
{ {
SETTING_THROTTLE_MODE, SETTING_THROTTLE_MODE,
@ -146,7 +135,6 @@ item items_generalsettings[MAX_NO_OF_CONTROLS_SETTINGS] =
YELLOW, YELLOW,
"INFO - [Throttle Mode] is set to 'ON' - VSync is enabled and sound\nis turned on.", "INFO - [Throttle Mode] is set to 'ON' - VSync is enabled and sound\nis turned on.",
WHITE, WHITE,
0.83f,
}, },
{ {
SETTING_TRIPLE_BUFFERING, SETTING_TRIPLE_BUFFERING,
@ -157,7 +145,6 @@ item items_generalsettings[MAX_NO_OF_CONTROLS_SETTINGS] =
YELLOW, YELLOW,
"INFO - [Triple Buffering] is set to 'ON' - faster graphics/shaders at\nthe possible expense of input lag.", "INFO - [Triple Buffering] is set to 'ON' - faster graphics/shaders at\nthe possible expense of input lag.",
WHITE, WHITE,
0.83f,
}, },
{ {
SETTING_ENABLE_SCREENSHOTS, SETTING_ENABLE_SCREENSHOTS,
@ -168,7 +155,6 @@ item items_generalsettings[MAX_NO_OF_CONTROLS_SETTINGS] =
YELLOW, YELLOW,
"INFO - [Enable Screenshots] feature is set to 'OFF'.", "INFO - [Enable Screenshots] feature is set to 'OFF'.",
WHITE, WHITE,
0.83f,
}, },
{ {
SETTING_SAVE_SHADER_PRESET, SETTING_SAVE_SHADER_PRESET,
@ -179,7 +165,6 @@ item items_generalsettings[MAX_NO_OF_CONTROLS_SETTINGS] =
YELLOW, YELLOW,
"INFO - Save the current video settings to a [CG Preset] (CGP) file.", "INFO - Save the current video settings to a [CG Preset] (CGP) file.",
GREEN, GREEN,
0.83f,
}, },
{ {
SETTING_APPLY_SHADER_PRESET_ON_STARTUP, SETTING_APPLY_SHADER_PRESET_ON_STARTUP,
@ -190,7 +175,6 @@ item items_generalsettings[MAX_NO_OF_CONTROLS_SETTINGS] =
YELLOW, YELLOW,
"INFO - Automatically load the currently selected [CG Preset] file on startup.", "INFO - Automatically load the currently selected [CG Preset] file on startup.",
GREEN, GREEN,
0.83f,
}, },
{ {
SETTING_DEFAULT_VIDEO_ALL, SETTING_DEFAULT_VIDEO_ALL,
@ -201,7 +185,6 @@ item items_generalsettings[MAX_NO_OF_CONTROLS_SETTINGS] =
YELLOW, YELLOW,
"INFO - Set all [General Video Settings] back to their 'DEFAULT' values.", "INFO - Set all [General Video Settings] back to their 'DEFAULT' values.",
GREEN, GREEN,
0.83f,
}, },
{ {
SETTING_SOUND_MODE, SETTING_SOUND_MODE,
@ -212,7 +195,6 @@ item items_generalsettings[MAX_NO_OF_CONTROLS_SETTINGS] =
YELLOW, YELLOW,
"INFO - [Sound Output] is set to 'Normal' - normal audio output will be\nused.", "INFO - [Sound Output] is set to 'Normal' - normal audio output will be\nused.",
WHITE, WHITE,
0.83f,
}, },
{ {
SETTING_RSOUND_SERVER_IP_ADDRESS, SETTING_RSOUND_SERVER_IP_ADDRESS,
@ -223,7 +205,6 @@ item items_generalsettings[MAX_NO_OF_CONTROLS_SETTINGS] =
YELLOW, YELLOW,
"INFO - Enter the IP Address of the [RSound Audio Server]. IP address\nmust be an IPv4 32-bits address, eg: '192.168.1.7'.", "INFO - Enter the IP Address of the [RSound Audio Server]. IP address\nmust be an IPv4 32-bits address, eg: '192.168.1.7'.",
WHITE, WHITE,
0.83f,
}, },
{ {
SETTING_ENABLE_CUSTOM_BGM, SETTING_ENABLE_CUSTOM_BGM,
@ -234,7 +215,6 @@ item items_generalsettings[MAX_NO_OF_CONTROLS_SETTINGS] =
YELLOW, YELLOW,
"INFO - [Enable Custom BGM] feature is set to 'ON'.", "INFO - [Enable Custom BGM] feature is set to 'ON'.",
WHITE, WHITE,
0.83f,
}, },
{ {
SETTING_DEFAULT_AUDIO_ALL, SETTING_DEFAULT_AUDIO_ALL,
@ -245,7 +225,6 @@ item items_generalsettings[MAX_NO_OF_CONTROLS_SETTINGS] =
YELLOW, YELLOW,
"INFO - Set all [General Audio Settings] back to their 'DEFAULT' values.", "INFO - Set all [General Audio Settings] back to their 'DEFAULT' values.",
GREEN, GREEN,
0.83f,
}, },
{ {
SETTING_EMU_CURRENT_SAVE_STATE_SLOT, SETTING_EMU_CURRENT_SAVE_STATE_SLOT,
@ -256,7 +235,6 @@ item items_generalsettings[MAX_NO_OF_CONTROLS_SETTINGS] =
YELLOW, YELLOW,
"INFO - Set the current savestate slot (can also be configured ingame).", "INFO - Set the current savestate slot (can also be configured ingame).",
WHITE, WHITE,
0.83f,
}, },
{ {
SETTING_EMU_SHOW_INFO_MSG, SETTING_EMU_SHOW_INFO_MSG,
@ -267,7 +245,6 @@ item items_generalsettings[MAX_NO_OF_CONTROLS_SETTINGS] =
YELLOW, YELLOW,
"INFO - Show onscreen info messages in the menu.", "INFO - Show onscreen info messages in the menu.",
WHITE, WHITE,
0.83f,
}, },
{ {
SETTING_ZIP_EXTRACT, SETTING_ZIP_EXTRACT,
@ -278,7 +255,6 @@ item items_generalsettings[MAX_NO_OF_CONTROLS_SETTINGS] =
YELLOW, YELLOW,
"INFO - Select the [ZIP Extract] mode. This setting controls how ZIP files are extracted.", "INFO - Select the [ZIP Extract] mode. This setting controls how ZIP files are extracted.",
WHITE, WHITE,
0.83f,
}, },
{ {
SETTING_RARCH_DEFAULT_EMU, SETTING_RARCH_DEFAULT_EMU,
@ -289,7 +265,6 @@ item items_generalsettings[MAX_NO_OF_CONTROLS_SETTINGS] =
YELLOW, YELLOW,
"INFO - Select a default emulator core to launch at start-up.", "INFO - Select a default emulator core to launch at start-up.",
WHITE, WHITE,
0.83f,
}, },
{ {
SETTING_EMU_DEFAULT_ALL, SETTING_EMU_DEFAULT_ALL,
@ -300,7 +275,6 @@ item items_generalsettings[MAX_NO_OF_CONTROLS_SETTINGS] =
YELLOW, YELLOW,
"INFO - Set [all RetroArch settings] back to their 'DEFAULT' values.", "INFO - Set [all RetroArch settings] back to their 'DEFAULT' values.",
GREEN, GREEN,
0.83f,
}, },
{ {
SETTING_EMU_REWIND_ENABLED, SETTING_EMU_REWIND_ENABLED,
@ -311,7 +285,6 @@ item items_generalsettings[MAX_NO_OF_CONTROLS_SETTINGS] =
YELLOW, YELLOW,
"INFO - [Rewind] feature is set to 'OFF'.", "INFO - [Rewind] feature is set to 'OFF'.",
WHITE, WHITE,
0.83f,
}, },
{ {
SETTING_EMU_VIDEO_DEFAULT_ALL, SETTING_EMU_VIDEO_DEFAULT_ALL,
@ -322,7 +295,6 @@ item items_generalsettings[MAX_NO_OF_CONTROLS_SETTINGS] =
YELLOW, YELLOW,
"INFO - Set [all RetroArch Video settings] back to their 'DEFAULT' values.", "INFO - Set [all RetroArch Video settings] back to their 'DEFAULT' values.",
GREEN, GREEN,
0.83f,
}, },
{ {
SETTING_EMU_AUDIO_MUTE, SETTING_EMU_AUDIO_MUTE,
@ -333,7 +305,6 @@ item items_generalsettings[MAX_NO_OF_CONTROLS_SETTINGS] =
YELLOW, YELLOW,
"INFO - [Mute Audio] is set to 'OFF'.", "INFO - [Mute Audio] is set to 'OFF'.",
WHITE, WHITE,
0.83f,
}, },
{ {
SETTING_EMU_AUDIO_DEFAULT_ALL, SETTING_EMU_AUDIO_DEFAULT_ALL,
@ -344,7 +315,6 @@ item items_generalsettings[MAX_NO_OF_CONTROLS_SETTINGS] =
YELLOW, YELLOW,
"INFO - Set [all RetroArch Audio settings] back to their 'DEFAULT' values.", "INFO - Set [all RetroArch Audio settings] back to their 'DEFAULT' values.",
GREEN, GREEN,
0.83f,
}, },
{ {
SETTING_PATH_DEFAULT_ROM_DIRECTORY, SETTING_PATH_DEFAULT_ROM_DIRECTORY,
@ -355,7 +325,6 @@ item items_generalsettings[MAX_NO_OF_CONTROLS_SETTINGS] =
YELLOW, YELLOW,
"INFO - Set the default [Startup ROM directory]. NOTE: You will have to\nrestart the emulator for this change to have any effect.", "INFO - Set the default [Startup ROM directory]. NOTE: You will have to\nrestart the emulator for this change to have any effect.",
WHITE, WHITE,
0.83f,
}, },
{ {
SETTING_PATH_SAVESTATES_DIRECTORY, SETTING_PATH_SAVESTATES_DIRECTORY,
@ -366,7 +335,6 @@ item items_generalsettings[MAX_NO_OF_CONTROLS_SETTINGS] =
YELLOW, YELLOW,
"INFO - Set the default path where all the savestate files will be saved to.", "INFO - Set the default path where all the savestate files will be saved to.",
WHITE, WHITE,
0.83f,
}, },
{ {
SETTING_PATH_SRAM_DIRECTORY, SETTING_PATH_SRAM_DIRECTORY,
@ -377,7 +345,6 @@ item items_generalsettings[MAX_NO_OF_CONTROLS_SETTINGS] =
YELLOW, YELLOW,
"INFO - Set the default SRAM (SaveRAM) directory path. All the\nbattery backup saves will be stored in this directory.", "INFO - Set the default SRAM (SaveRAM) directory path. All the\nbattery backup saves will be stored in this directory.",
WHITE, WHITE,
0.83f,
}, },
{ {
SETTING_PATH_CHEATS, SETTING_PATH_CHEATS,
@ -388,7 +355,6 @@ item items_generalsettings[MAX_NO_OF_CONTROLS_SETTINGS] =
YELLOW, YELLOW,
"INFO - Set the default [Cheatfile directory] path. All CHT (cheat) files\nwill be stored here.", "INFO - Set the default [Cheatfile directory] path. All CHT (cheat) files\nwill be stored here.",
WHITE, WHITE,
0.83f,
}, },
{ {
SETTING_PATH_SYSTEM, SETTING_PATH_SYSTEM,
@ -399,7 +365,6 @@ item items_generalsettings[MAX_NO_OF_CONTROLS_SETTINGS] =
YELLOW, YELLOW,
"INFO - Set the default [System directory] path. System files like\nBIOS files, etc. will be stored here.", "INFO - Set the default [System directory] path. System files like\nBIOS files, etc. will be stored here.",
WHITE, WHITE,
0.83f,
}, },
{ {
SETTING_ENABLE_SRAM_PATH, SETTING_ENABLE_SRAM_PATH,
@ -410,7 +375,6 @@ item items_generalsettings[MAX_NO_OF_CONTROLS_SETTINGS] =
YELLOW, YELLOW,
"INFO - [Custom SRAM Dir Path] feature is set to 'OFF'.", "INFO - [Custom SRAM Dir Path] feature is set to 'OFF'.",
WHITE, WHITE,
0.83f,
1 1
}, },
{ {
@ -422,7 +386,6 @@ item items_generalsettings[MAX_NO_OF_CONTROLS_SETTINGS] =
YELLOW, YELLOW,
"INFO - [Custom Save State Dir Path] feature is set to 'OFF'.", "INFO - [Custom Save State Dir Path] feature is set to 'OFF'.",
WHITE, WHITE,
0.83f,
}, },
{ {
SETTING_PATH_DEFAULT_ALL, SETTING_PATH_DEFAULT_ALL,
@ -433,7 +396,6 @@ item items_generalsettings[MAX_NO_OF_CONTROLS_SETTINGS] =
YELLOW, YELLOW,
"INFO - Set [all Path settings] back to their 'DEFAULT' values.", "INFO - Set [all Path settings] back to their 'DEFAULT' values.",
GREEN, GREEN,
0.83f,
}, },
{ {
SETTING_CONTROLS_SCHEME, SETTING_CONTROLS_SCHEME,
@ -444,7 +406,6 @@ item items_generalsettings[MAX_NO_OF_CONTROLS_SETTINGS] =
YELLOW, YELLOW,
"", "",
WHITE, WHITE,
0.83f,
}, },
{ {
SETTING_CONTROLS_NUMBER, SETTING_CONTROLS_NUMBER,
@ -455,7 +416,6 @@ item items_generalsettings[MAX_NO_OF_CONTROLS_SETTINGS] =
YELLOW, YELLOW,
"", "",
WHITE, WHITE,
0.83f,
}, },
{ {
SETTING_CONTROLS_RETRO_DEVICE_ID_JOYPAD_B, SETTING_CONTROLS_RETRO_DEVICE_ID_JOYPAD_B,
@ -466,7 +426,6 @@ item items_generalsettings[MAX_NO_OF_CONTROLS_SETTINGS] =
YELLOW, YELLOW,
"", "",
WHITE, WHITE,
0.83f,
}, },
{ {
SETTING_CONTROLS_RETRO_DEVICE_ID_JOYPAD_Y, SETTING_CONTROLS_RETRO_DEVICE_ID_JOYPAD_Y,
@ -477,7 +436,6 @@ item items_generalsettings[MAX_NO_OF_CONTROLS_SETTINGS] =
YELLOW, YELLOW,
"", "",
WHITE, WHITE,
0.83f,
}, },
{ {
SETTING_CONTROLS_RETRO_DEVICE_ID_JOYPAD_SELECT, SETTING_CONTROLS_RETRO_DEVICE_ID_JOYPAD_SELECT,
@ -488,7 +446,6 @@ item items_generalsettings[MAX_NO_OF_CONTROLS_SETTINGS] =
YELLOW, YELLOW,
"", "",
WHITE, WHITE,
0.83f,
}, },
{ {
SETTING_CONTROLS_RETRO_DEVICE_ID_JOYPAD_START, SETTING_CONTROLS_RETRO_DEVICE_ID_JOYPAD_START,
@ -499,7 +456,6 @@ item items_generalsettings[MAX_NO_OF_CONTROLS_SETTINGS] =
YELLOW, YELLOW,
"", "",
WHITE, WHITE,
0.83f,
}, },
{ {
SETTING_CONTROLS_RETRO_DEVICE_ID_JOYPAD_UP, SETTING_CONTROLS_RETRO_DEVICE_ID_JOYPAD_UP,
@ -510,7 +466,6 @@ item items_generalsettings[MAX_NO_OF_CONTROLS_SETTINGS] =
YELLOW, YELLOW,
"", "",
WHITE, WHITE,
0.83f,
}, },
{ {
SETTING_CONTROLS_RETRO_DEVICE_ID_JOYPAD_DOWN, SETTING_CONTROLS_RETRO_DEVICE_ID_JOYPAD_DOWN,
@ -521,7 +476,6 @@ item items_generalsettings[MAX_NO_OF_CONTROLS_SETTINGS] =
YELLOW, YELLOW,
"", "",
WHITE, WHITE,
0.83f,
}, },
{ {
SETTING_CONTROLS_RETRO_DEVICE_ID_JOYPAD_LEFT, SETTING_CONTROLS_RETRO_DEVICE_ID_JOYPAD_LEFT,
@ -532,7 +486,6 @@ item items_generalsettings[MAX_NO_OF_CONTROLS_SETTINGS] =
YELLOW, YELLOW,
"", "",
WHITE, WHITE,
0.83f,
}, },
{ {
SETTING_CONTROLS_RETRO_DEVICE_ID_JOYPAD_RIGHT, SETTING_CONTROLS_RETRO_DEVICE_ID_JOYPAD_RIGHT,
@ -543,7 +496,6 @@ item items_generalsettings[MAX_NO_OF_CONTROLS_SETTINGS] =
YELLOW, YELLOW,
"", "",
WHITE, WHITE,
0.83f,
}, },
{ {
SETTING_CONTROLS_RETRO_DEVICE_ID_JOYPAD_A, SETTING_CONTROLS_RETRO_DEVICE_ID_JOYPAD_A,
@ -554,7 +506,6 @@ item items_generalsettings[MAX_NO_OF_CONTROLS_SETTINGS] =
YELLOW, YELLOW,
"", "",
WHITE, WHITE,
0.83f,
}, },
{ {
SETTING_CONTROLS_RETRO_DEVICE_ID_JOYPAD_X, SETTING_CONTROLS_RETRO_DEVICE_ID_JOYPAD_X,
@ -565,7 +516,6 @@ item items_generalsettings[MAX_NO_OF_CONTROLS_SETTINGS] =
YELLOW, YELLOW,
"", "",
WHITE, WHITE,
0.83f,
}, },
{ {
SETTING_CONTROLS_RETRO_DEVICE_ID_JOYPAD_L, SETTING_CONTROLS_RETRO_DEVICE_ID_JOYPAD_L,
@ -576,7 +526,6 @@ item items_generalsettings[MAX_NO_OF_CONTROLS_SETTINGS] =
YELLOW, YELLOW,
"", "",
WHITE, WHITE,
0.83f,
}, },
{ {
SETTING_CONTROLS_RETRO_DEVICE_ID_JOYPAD_R, SETTING_CONTROLS_RETRO_DEVICE_ID_JOYPAD_R,
@ -587,7 +536,6 @@ item items_generalsettings[MAX_NO_OF_CONTROLS_SETTINGS] =
YELLOW, YELLOW,
"", "",
WHITE, WHITE,
0.83f,
}, },
{ {
SETTING_CONTROLS_RETRO_DEVICE_ID_JOYPAD_L2, SETTING_CONTROLS_RETRO_DEVICE_ID_JOYPAD_L2,
@ -598,7 +546,6 @@ item items_generalsettings[MAX_NO_OF_CONTROLS_SETTINGS] =
YELLOW, YELLOW,
"", "",
WHITE, WHITE,
0.83f,
}, },
{ {
SETTING_CONTROLS_RETRO_DEVICE_ID_JOYPAD_R2, SETTING_CONTROLS_RETRO_DEVICE_ID_JOYPAD_R2,
@ -609,7 +556,6 @@ item items_generalsettings[MAX_NO_OF_CONTROLS_SETTINGS] =
YELLOW, YELLOW,
"", "",
WHITE, WHITE,
0.83f,
}, },
{ {
SETTING_CONTROLS_RETRO_DEVICE_ID_JOYPAD_L3, SETTING_CONTROLS_RETRO_DEVICE_ID_JOYPAD_L3,
@ -620,7 +566,6 @@ item items_generalsettings[MAX_NO_OF_CONTROLS_SETTINGS] =
YELLOW, YELLOW,
"", "",
WHITE, WHITE,
0.83f,
}, },
{ {
SETTING_CONTROLS_RETRO_DEVICE_ID_JOYPAD_R3, SETTING_CONTROLS_RETRO_DEVICE_ID_JOYPAD_R3,
@ -631,7 +576,6 @@ item items_generalsettings[MAX_NO_OF_CONTROLS_SETTINGS] =
YELLOW, YELLOW,
"", "",
WHITE, WHITE,
0.83f,
}, },
{ {
SETTING_CONTROLS_SAVE_CUSTOM_CONTROLS, SETTING_CONTROLS_SAVE_CUSTOM_CONTROLS,
@ -642,7 +586,6 @@ item items_generalsettings[MAX_NO_OF_CONTROLS_SETTINGS] =
YELLOW, YELLOW,
"INFO - Save the custom control settings.", "INFO - Save the custom control settings.",
GREEN, GREEN,
0.83f,
}, },
{ {
SETTING_CONTROLS_DEFAULT_ALL, SETTING_CONTROLS_DEFAULT_ALL,
@ -653,7 +596,6 @@ item items_generalsettings[MAX_NO_OF_CONTROLS_SETTINGS] =
YELLOW, YELLOW,
"INFO - Set all [Controls settings] back to their 'DEFAULT' values.", "INFO - Set all [Controls settings] back to their 'DEFAULT' values.",
GREEN, GREEN,
0.83f,
} }
}; };
@ -668,7 +610,6 @@ item ingame_menu_settings[MENU_ITEM_LAST] =
YELLOW, /* text color */ YELLOW, /* text color */
"INFO - Press LEFT or RIGHT to change the current save state slot.\nPress CROSS to load the state from the currently selected save state slot.", "INFO - Press LEFT or RIGHT to change the current save state slot.\nPress CROSS to load the state from the currently selected save state slot.",
WHITE, /* color of item comment */ WHITE, /* color of item comment */
0.83f, /* comment Y position */
}, },
{ {
MENU_ITEM_SAVE_STATE, MENU_ITEM_SAVE_STATE,
@ -679,7 +620,6 @@ item ingame_menu_settings[MENU_ITEM_LAST] =
YELLOW, YELLOW,
"INFO - Press LEFT or RIGHT to change the current save state slot.\nPress CROSS to save the state to the currently selected save state slot.", "INFO - Press LEFT or RIGHT to change the current save state slot.\nPress CROSS to save the state to the currently selected save state slot.",
WHITE, WHITE,
0.83f,
}, },
{ {
MENU_ITEM_KEEP_ASPECT_RATIO, MENU_ITEM_KEEP_ASPECT_RATIO,
@ -690,7 +630,6 @@ item ingame_menu_settings[MENU_ITEM_LAST] =
YELLOW, YELLOW,
"INFO - Press LEFT or RIGHT to change the [Aspect Ratio].\nPress START to reset back to default values.", "INFO - Press LEFT or RIGHT to change the [Aspect Ratio].\nPress START to reset back to default values.",
WHITE, WHITE,
0.83f,
}, },
{ {
MENU_ITEM_OVERSCAN_AMOUNT, MENU_ITEM_OVERSCAN_AMOUNT,
@ -701,7 +640,6 @@ item ingame_menu_settings[MENU_ITEM_LAST] =
YELLOW, YELLOW,
"INFO - Press LEFT or RIGHT to change the [Overscan] settings.\nPress START to reset back to default values.", "INFO - Press LEFT or RIGHT to change the [Overscan] settings.\nPress START to reset back to default values.",
WHITE, WHITE,
0.83f,
}, },
{ {
MENU_ITEM_ORIENTATION, MENU_ITEM_ORIENTATION,
@ -712,7 +650,6 @@ item ingame_menu_settings[MENU_ITEM_LAST] =
YELLOW, YELLOW,
"INFO - Press LEFT or RIGHT to change the [Rotation] settings.\nPress START to reset back to default values.", "INFO - Press LEFT or RIGHT to change the [Rotation] settings.\nPress START to reset back to default values.",
WHITE, WHITE,
0.83f,
}, },
{ {
MENU_ITEM_SCALE_FACTOR, MENU_ITEM_SCALE_FACTOR,
@ -723,7 +660,6 @@ item ingame_menu_settings[MENU_ITEM_LAST] =
YELLOW, YELLOW,
"INFO - Press LEFT or RIGHT to change the [Scaling] settings.\nPress START to reset back to default values.", "INFO - Press LEFT or RIGHT to change the [Scaling] settings.\nPress START to reset back to default values.",
WHITE, WHITE,
0.83f,
}, },
{ {
MENU_ITEM_RESIZE_MODE, MENU_ITEM_RESIZE_MODE,
@ -734,7 +670,6 @@ item ingame_menu_settings[MENU_ITEM_LAST] =
YELLOW, YELLOW,
"INFO - Allows you to resize the scree by moving the two analog sticks.\nPress TRIANGLE to reset to default values, and CIRCLE to go back.", "INFO - Allows you to resize the scree by moving the two analog sticks.\nPress TRIANGLE to reset to default values, and CIRCLE to go back.",
GREEN, GREEN,
0.83f,
}, },
{ {
MENU_ITEM_FRAME_ADVANCE, MENU_ITEM_FRAME_ADVANCE,
@ -745,7 +680,6 @@ item ingame_menu_settings[MENU_ITEM_LAST] =
YELLOW, YELLOW,
"INFO - Press 'CROSS', 'L2' or 'R2' button to step one frame.", "INFO - Press 'CROSS', 'L2' or 'R2' button to step one frame.",
GREEN, GREEN,
0.83f,
}, },
{ {
MENU_ITEM_SCREENSHOT_MODE, MENU_ITEM_SCREENSHOT_MODE,
@ -756,7 +690,6 @@ item ingame_menu_settings[MENU_ITEM_LAST] =
YELLOW, YELLOW,
"INFO - Allows you to take a clean screenshot.\nPress 'CIRCLE' to go back to the in-game menu while in 'Screenshot Mode'.", "INFO - Allows you to take a clean screenshot.\nPress 'CIRCLE' to go back to the in-game menu while in 'Screenshot Mode'.",
WHITE, WHITE,
0.83f,
}, },
{ {
MENU_ITEM_RESET, MENU_ITEM_RESET,
@ -767,7 +700,6 @@ item ingame_menu_settings[MENU_ITEM_LAST] =
YELLOW, YELLOW,
"INFO - Press 'CROSS' to reset the game.", "INFO - Press 'CROSS' to reset the game.",
WHITE, WHITE,
0.83f,
}, },
{ {
MENU_ITEM_RETURN_TO_GAME, MENU_ITEM_RETURN_TO_GAME,
@ -778,7 +710,6 @@ item ingame_menu_settings[MENU_ITEM_LAST] =
YELLOW, YELLOW,
"INFO - Press 'CROSS' to return back to the game.", "INFO - Press 'CROSS' to return back to the game.",
WHITE, WHITE,
0.83f,
}, },
{ {
MENU_ITEM_RETURN_TO_MENU, MENU_ITEM_RETURN_TO_MENU,
@ -789,7 +720,6 @@ item ingame_menu_settings[MENU_ITEM_LAST] =
YELLOW, YELLOW,
"INFO - Press 'CROSS' to return back to the ROM Browser menu.", "INFO - Press 'CROSS' to return back to the ROM Browser menu.",
WHITE, WHITE,
0.83f,
}, },
{ {
MENU_ITEM_CHANGE_LIBRETRO, MENU_ITEM_CHANGE_LIBRETRO,
@ -800,8 +730,8 @@ item ingame_menu_settings[MENU_ITEM_LAST] =
YELLOW, YELLOW,
"INFO - Press 'CROSS' to choose a different emulator core.", "INFO - Press 'CROSS' to choose a different emulator core.",
GREEN, GREEN,
0.83f,
}, },
#ifdef HAVE_MULTIMAN
{ {
MENU_ITEM_RETURN_TO_MULTIMAN, MENU_ITEM_RETURN_TO_MULTIMAN,
"Return to multiMAN", "Return to multiMAN",
@ -811,8 +741,8 @@ item ingame_menu_settings[MENU_ITEM_LAST] =
YELLOW, YELLOW,
"INFO - Press 'CROSS' to quit the emulator/game and return to multiMAN.", "INFO - Press 'CROSS' to quit the emulator/game and return to multiMAN.",
GREEN, GREEN,
0.83f,
}, },
#endif
{ {
MENU_ITEM_RETURN_TO_DASHBOARD, MENU_ITEM_RETURN_TO_DASHBOARD,
"Return to XMB", "Return to XMB",
@ -822,6 +752,5 @@ item ingame_menu_settings[MENU_ITEM_LAST] =
YELLOW, YELLOW,
"INFO - Press 'CROSS' to quit the emulator/game and return to the XMB.", "INFO - Press 'CROSS' to quit the emulator/game and return to the XMB.",
GREEN, GREEN,
0.83f,
}, },
}; };

View File

@ -79,23 +79,23 @@ typedef enum {
MENU_ROMSELECT_ACTION_NOOP, MENU_ROMSELECT_ACTION_NOOP,
} menu_romselect_action_t; } menu_romselect_action_t;
static void set_setting_label_write_on_or_off(bool cond, unsigned currentsetting) static void set_setting_label_write_on_or_off(item *items, bool cond, unsigned currentsetting)
{ {
if(cond) if(cond)
snprintf(items_generalsettings[currentsetting].setting_text, sizeof(items_generalsettings[currentsetting].setting_text), "ON"); snprintf(items[currentsetting].setting_text, sizeof(items[currentsetting].setting_text), "ON");
else else
snprintf(items_generalsettings[currentsetting].setting_text, sizeof(items_generalsettings[currentsetting].setting_text), "OFF"); snprintf(items[currentsetting].setting_text, sizeof(items[currentsetting].setting_text), "OFF");
} }
static void set_setting_label_color(bool cond, unsigned currentsetting) static void set_setting_label_color(item *items, bool cond, unsigned currentsetting)
{ {
if(cond) if(cond)
items_generalsettings[currentsetting].text_color = GREEN; items[currentsetting].text_color = GREEN;
else else
items_generalsettings[currentsetting].text_color = ORANGE; items[currentsetting].text_color = ORANGE;
} }
static void set_setting_label(menu * menu_obj, unsigned currentsetting) static void set_setting_label(menu * menu_obj, item *items, unsigned currentsetting)
{ {
char fname[PATH_MAX]; char fname[PATH_MAX];
(void)fname; (void)fname;
@ -103,72 +103,72 @@ static void set_setting_label(menu * menu_obj, unsigned currentsetting)
switch(currentsetting) switch(currentsetting)
{ {
case SETTING_CHANGE_RESOLUTION: case SETTING_CHANGE_RESOLUTION:
set_setting_label_color(g_console.initial_resolution_id == g_console.supported_resolutions[g_console.current_resolution_index], currentsetting); set_setting_label_color(items,g_console.initial_resolution_id == g_console.supported_resolutions[g_console.current_resolution_index], currentsetting);
snprintf(items_generalsettings[currentsetting].setting_text, sizeof(items_generalsettings[currentsetting].setting_text), ps3_get_resolution_label(g_console.supported_resolutions[g_console.current_resolution_index])); snprintf(items[currentsetting].setting_text, sizeof(items[currentsetting].setting_text), ps3_get_resolution_label(g_console.supported_resolutions[g_console.current_resolution_index]));
break; break;
case SETTING_SHADER_PRESETS: case SETTING_SHADER_PRESETS:
set_setting_label_color(true, currentsetting); set_setting_label_color(items,true, currentsetting);
fill_pathname_base(fname, g_console.cgp_path, sizeof(fname)); fill_pathname_base(fname, g_console.cgp_path, sizeof(fname));
snprintf(items_generalsettings[currentsetting].setting_text, sizeof(items_generalsettings[currentsetting].setting_text), fname); snprintf(items[currentsetting].setting_text, sizeof(items[currentsetting].setting_text), fname);
break; break;
case SETTING_SHADER: case SETTING_SHADER:
fill_pathname_base(fname, g_settings.video.cg_shader_path, sizeof(fname)); fill_pathname_base(fname, g_settings.video.cg_shader_path, sizeof(fname));
snprintf(items_generalsettings[currentsetting].setting_text, sizeof(items_generalsettings[currentsetting].setting_text), "%s", fname); snprintf(items[currentsetting].setting_text, sizeof(items[currentsetting].setting_text), "%s", fname);
set_setting_label_color(strcmp(g_settings.video.cg_shader_path, default_paths.shader_file) == 0, set_setting_label_color(items,strcmp(g_settings.video.cg_shader_path, default_paths.shader_file) == 0,
currentsetting); currentsetting);
break; break;
case SETTING_SHADER_2: case SETTING_SHADER_2:
fill_pathname_base(fname, g_settings.video.second_pass_shader, sizeof(fname)); fill_pathname_base(fname, g_settings.video.second_pass_shader, sizeof(fname));
snprintf(items_generalsettings[currentsetting].setting_text, sizeof(items_generalsettings[currentsetting].setting_text), "%s", fname); snprintf(items[currentsetting].setting_text, sizeof(items[currentsetting].setting_text), "%s", fname);
set_setting_label_color(strcmp(g_settings.video.second_pass_shader, default_paths.shader_file) == 0, set_setting_label_color(items,strcmp(g_settings.video.second_pass_shader, default_paths.shader_file) == 0,
currentsetting); currentsetting);
break; break;
case SETTING_FONT_SIZE: case SETTING_FONT_SIZE:
set_setting_label_color(g_console.menu_font_size == 1.0f, currentsetting); set_setting_label_color(items,g_console.menu_font_size == 1.0f, currentsetting);
snprintf(items_generalsettings[currentsetting].setting_text, sizeof(items_generalsettings[currentsetting].setting_text), "%f", g_console.menu_font_size); snprintf(items[currentsetting].setting_text, sizeof(items[currentsetting].setting_text), "%f", g_console.menu_font_size);
break; break;
case SETTING_KEEP_ASPECT_RATIO: case SETTING_KEEP_ASPECT_RATIO:
set_setting_label_color(g_console.aspect_ratio_index == ASPECT_RATIO_4_3, currentsetting); set_setting_label_color(items,g_console.aspect_ratio_index == ASPECT_RATIO_4_3, currentsetting);
snprintf(items_generalsettings[currentsetting].setting_text, sizeof(items_generalsettings[currentsetting].setting_text), aspectratio_lut[g_console.aspect_ratio_index].name); snprintf(items[currentsetting].setting_text, sizeof(items[currentsetting].setting_text), aspectratio_lut[g_console.aspect_ratio_index].name);
break; break;
case SETTING_HW_TEXTURE_FILTER: case SETTING_HW_TEXTURE_FILTER:
set_setting_label_color(g_settings.video.smooth, currentsetting); set_setting_label_color(items,g_settings.video.smooth, currentsetting);
if(g_settings.video.smooth) if(g_settings.video.smooth)
snprintf(items_generalsettings[currentsetting].setting_text, sizeof(items_generalsettings[currentsetting].setting_text), "Linear interpolation"); snprintf(items[currentsetting].setting_text, sizeof(items[currentsetting].setting_text), "Linear interpolation");
else else
snprintf(items_generalsettings[currentsetting].setting_text, sizeof(items_generalsettings[currentsetting].setting_text), "Point filtering"); snprintf(items[currentsetting].setting_text, sizeof(items[currentsetting].setting_text), "Point filtering");
break; break;
case SETTING_HW_TEXTURE_FILTER_2: case SETTING_HW_TEXTURE_FILTER_2:
set_setting_label_color(g_settings.video.second_pass_smooth, currentsetting); set_setting_label_color(items,g_settings.video.second_pass_smooth, currentsetting);
if(g_settings.video.second_pass_smooth) if(g_settings.video.second_pass_smooth)
snprintf(items_generalsettings[currentsetting].setting_text, sizeof(items_generalsettings[currentsetting].setting_text), "Linear interpolation"); snprintf(items[currentsetting].setting_text, sizeof(items[currentsetting].setting_text), "Linear interpolation");
else else
snprintf(items_generalsettings[currentsetting].setting_text, sizeof(items_generalsettings[currentsetting].setting_text), "Point filtering"); snprintf(items[currentsetting].setting_text, sizeof(items[currentsetting].setting_text), "Point filtering");
break; break;
case SETTING_SCALE_ENABLED: case SETTING_SCALE_ENABLED:
set_setting_label_write_on_or_off(g_console.fbo_enabled, currentsetting); set_setting_label_write_on_or_off(items, g_console.fbo_enabled, currentsetting);
set_setting_label_color(g_console.fbo_enabled, currentsetting); set_setting_label_color(items,g_console.fbo_enabled, currentsetting);
break; break;
case SETTING_SCALE_FACTOR: case SETTING_SCALE_FACTOR:
set_setting_label_color(g_settings.video.fbo_scale_x == 2.0f, currentsetting); set_setting_label_color(items,g_settings.video.fbo_scale_x == 2.0f, currentsetting);
snprintf(items_generalsettings[currentsetting].setting_text, sizeof(items_generalsettings[currentsetting].setting_text), "%fx (X) / %fx (Y)", g_settings.video.fbo_scale_x, g_settings.video.fbo_scale_y); snprintf(items[currentsetting].setting_text, sizeof(items[currentsetting].setting_text), "%fx (X) / %fx (Y)", g_settings.video.fbo_scale_x, g_settings.video.fbo_scale_y);
snprintf(items_generalsettings[currentsetting].comment, sizeof(items_generalsettings[currentsetting].comment), "INFO - [Custom Scaling Factor] is set to: '%fx (X) / %fx (Y)'.", g_settings.video.fbo_scale_x, g_settings.video.fbo_scale_y); snprintf(items[currentsetting].comment, sizeof(items[currentsetting].comment), "INFO - [Custom Scaling Factor] is set to: '%fx (X) / %fx (Y)'.", g_settings.video.fbo_scale_x, g_settings.video.fbo_scale_y);
break; break;
case SETTING_HW_OVERSCAN_AMOUNT: case SETTING_HW_OVERSCAN_AMOUNT:
set_setting_label_color(g_console.overscan_amount == 0.0f, currentsetting); set_setting_label_color(items,g_console.overscan_amount == 0.0f, currentsetting);
snprintf(items_generalsettings[currentsetting].setting_text, sizeof(items_generalsettings[currentsetting].setting_text), "%f", g_console.overscan_amount); snprintf(items[currentsetting].setting_text, sizeof(items[currentsetting].setting_text), "%f", g_console.overscan_amount);
break; break;
case SETTING_THROTTLE_MODE: case SETTING_THROTTLE_MODE:
set_setting_label_write_on_or_off(g_console.throttle_enable, currentsetting); set_setting_label_write_on_or_off(items, g_console.throttle_enable, currentsetting);
set_setting_label_color(g_console.throttle_enable, currentsetting); set_setting_label_color(items,g_console.throttle_enable, currentsetting);
break; break;
case SETTING_TRIPLE_BUFFERING: case SETTING_TRIPLE_BUFFERING:
set_setting_label_write_on_or_off(g_console.triple_buffering_enable, currentsetting); set_setting_label_write_on_or_off(items, g_console.triple_buffering_enable, currentsetting);
set_setting_label_color(g_console.triple_buffering_enable, currentsetting); set_setting_label_color(items,g_console.triple_buffering_enable, currentsetting);
break; break;
case SETTING_ENABLE_SCREENSHOTS: case SETTING_ENABLE_SCREENSHOTS:
set_setting_label_write_on_or_off(g_console.screenshots_enable, currentsetting); set_setting_label_write_on_or_off(items, g_console.screenshots_enable, currentsetting);
set_setting_label_color(g_console.screenshots_enable, currentsetting); set_setting_label_color(items,g_console.screenshots_enable, currentsetting);
break; break;
case SETTING_APPLY_SHADER_PRESET_ON_STARTUP: case SETTING_APPLY_SHADER_PRESET_ON_STARTUP:
case SETTING_DEFAULT_VIDEO_ALL: case SETTING_DEFAULT_VIDEO_ALL:
@ -177,128 +177,128 @@ static void set_setting_label(menu * menu_obj, unsigned currentsetting)
switch(g_console.sound_mode) switch(g_console.sound_mode)
{ {
case SOUND_MODE_NORMAL: case SOUND_MODE_NORMAL:
snprintf(items_generalsettings[currentsetting].comment, sizeof(items_generalsettings[currentsetting].comment), snprintf(items[currentsetting].comment, sizeof(items[currentsetting].comment),
"INFO - [Sound Output] is set to 'Normal' - normal audio output will be\nused."); "INFO - [Sound Output] is set to 'Normal' - normal audio output will be\nused.");
snprintf(items_generalsettings[currentsetting].setting_text, sizeof(items_generalsettings[currentsetting].setting_text), "Normal"); snprintf(items[currentsetting].setting_text, sizeof(items[currentsetting].setting_text), "Normal");
items_generalsettings[currentsetting].text_color = GREEN; items[currentsetting].text_color = GREEN;
break; break;
case SOUND_MODE_RSOUND: case SOUND_MODE_RSOUND:
snprintf(items_generalsettings[currentsetting].comment, sizeof(items_generalsettings[currentsetting].comment), snprintf(items[currentsetting].comment, sizeof(items[currentsetting].comment),
"INFO - [Sound Output] is set to 'RSound' - the sound will be streamed over the\n network to the RSound audio server." ); "INFO - [Sound Output] is set to 'RSound' - the sound will be streamed over the\n network to the RSound audio server." );
snprintf(items_generalsettings[currentsetting].setting_text, sizeof(items_generalsettings[currentsetting].setting_text), "RSound"); snprintf(items[currentsetting].setting_text, sizeof(items[currentsetting].setting_text), "RSound");
items_generalsettings[currentsetting].text_color = ORANGE; items[currentsetting].text_color = ORANGE;
break; break;
case SOUND_MODE_HEADSET: case SOUND_MODE_HEADSET:
snprintf(items_generalsettings[currentsetting].comment, sizeof(items_generalsettings[currentsetting].comment), snprintf(items[currentsetting].comment, sizeof(items[currentsetting].comment),
"INFO - [Sound Output] is set to 'USB/Bluetooth Headset' - sound will\n be output through the headset"); "INFO - [Sound Output] is set to 'USB/Bluetooth Headset' - sound will\n be output through the headset");
snprintf(items_generalsettings[currentsetting].setting_text, sizeof(items_generalsettings[currentsetting].setting_text), "USB/Bluetooth Headset"); snprintf(items[currentsetting].setting_text, sizeof(items[currentsetting].setting_text), "USB/Bluetooth Headset");
items_generalsettings[currentsetting].text_color = ORANGE; items[currentsetting].text_color = ORANGE;
break; break;
default: default:
break; break;
} }
break; break;
case SETTING_RSOUND_SERVER_IP_ADDRESS: case SETTING_RSOUND_SERVER_IP_ADDRESS:
set_setting_label_color(strcmp(g_settings.audio.device,"0.0.0.0") == 0, currentsetting); set_setting_label_color(items,strcmp(g_settings.audio.device,"0.0.0.0") == 0, currentsetting);
snprintf(items_generalsettings[currentsetting].setting_text, sizeof(items_generalsettings[currentsetting].setting_text), g_settings.audio.device); snprintf(items[currentsetting].setting_text, sizeof(items[currentsetting].setting_text), g_settings.audio.device);
break; break;
case SETTING_DEFAULT_AUDIO_ALL: case SETTING_DEFAULT_AUDIO_ALL:
break; break;
case SETTING_EMU_CURRENT_SAVE_STATE_SLOT: case SETTING_EMU_CURRENT_SAVE_STATE_SLOT:
set_setting_label_color(g_extern.state_slot == 0, currentsetting); set_setting_label_color(items,g_extern.state_slot == 0, currentsetting);
snprintf(items_generalsettings[currentsetting].setting_text, sizeof(items_generalsettings[currentsetting].setting_text), "%d", g_extern.state_slot); snprintf(items[currentsetting].setting_text, sizeof(items[currentsetting].setting_text), "%d", g_extern.state_slot);
break; break;
/* emu-specific */ /* emu-specific */
case SETTING_EMU_SHOW_INFO_MSG: case SETTING_EMU_SHOW_INFO_MSG:
set_setting_label_write_on_or_off(g_console.info_msg_enable, currentsetting); set_setting_label_write_on_or_off(items, g_console.info_msg_enable, currentsetting);
set_setting_label_color(g_console.info_msg_enable, currentsetting); set_setting_label_color(items,g_console.info_msg_enable, currentsetting);
break; break;
case SETTING_EMU_REWIND_ENABLED: case SETTING_EMU_REWIND_ENABLED:
set_setting_label_write_on_or_off(g_settings.rewind_enable, currentsetting); set_setting_label_write_on_or_off(items, g_settings.rewind_enable, currentsetting);
if(g_settings.rewind_enable) if(g_settings.rewind_enable)
{ {
items_generalsettings[currentsetting].text_color = ORANGE; items[currentsetting].text_color = ORANGE;
snprintf(items_generalsettings[currentsetting].comment, sizeof(items_generalsettings[currentsetting].comment), "INFO - [Rewind] feature is set to 'ON'. You can rewind the game in real-time."); snprintf(items[currentsetting].comment, sizeof(items[currentsetting].comment), "INFO - [Rewind] feature is set to 'ON'. You can rewind the game in real-time.");
} }
else else
{ {
items_generalsettings[currentsetting].text_color = GREEN; items[currentsetting].text_color = GREEN;
snprintf(items_generalsettings[currentsetting].comment, sizeof(items_generalsettings[currentsetting].comment), "INFO - [Rewind] feature is set to 'OFF'."); snprintf(items[currentsetting].comment, sizeof(items[currentsetting].comment), "INFO - [Rewind] feature is set to 'OFF'.");
} }
break; break;
case SETTING_ZIP_EXTRACT: case SETTING_ZIP_EXTRACT:
set_setting_label_color(g_console.zip_extract_mode == ZIP_EXTRACT_TO_CURRENT_DIR, currentsetting); set_setting_label_color(items,g_console.zip_extract_mode == ZIP_EXTRACT_TO_CURRENT_DIR, currentsetting);
switch(g_console.zip_extract_mode) switch(g_console.zip_extract_mode)
{ {
case ZIP_EXTRACT_TO_CURRENT_DIR: case ZIP_EXTRACT_TO_CURRENT_DIR:
snprintf(items_generalsettings[currentsetting].setting_text, sizeof(items_generalsettings[currentsetting].setting_text), "Current dir"); snprintf(items[currentsetting].setting_text, sizeof(items[currentsetting].setting_text), "Current dir");
snprintf(items_generalsettings[currentsetting].comment, sizeof(items_generalsettings[currentsetting].comment), "INFO - [ZIP Extract Mode] is set to 'Current dir'.\nZIP files are extracted to the current directory."); snprintf(items[currentsetting].comment, sizeof(items[currentsetting].comment), "INFO - [ZIP Extract Mode] is set to 'Current dir'.\nZIP files are extracted to the current directory.");
break; break;
case ZIP_EXTRACT_TO_CURRENT_DIR_AND_LOAD_FIRST_FILE: case ZIP_EXTRACT_TO_CURRENT_DIR_AND_LOAD_FIRST_FILE:
snprintf(items_generalsettings[currentsetting].setting_text, sizeof(items_generalsettings[currentsetting].setting_text), "Current dir and load first file"); snprintf(items[currentsetting].setting_text, sizeof(items[currentsetting].setting_text), "Current dir and load first file");
snprintf(items_generalsettings[currentsetting].comment, sizeof(items_generalsettings[currentsetting].comment), "INFO - [ZIP Extract Mode] is set to 'Current dir and load first file'.\nZIP files are extracted to the current directory, and the first game is automatically loaded."); snprintf(items[currentsetting].comment, sizeof(items[currentsetting].comment), "INFO - [ZIP Extract Mode] is set to 'Current dir and load first file'.\nZIP files are extracted to the current directory, and the first game is automatically loaded.");
break; break;
case ZIP_EXTRACT_TO_CACHE_DIR: case ZIP_EXTRACT_TO_CACHE_DIR:
snprintf(items_generalsettings[currentsetting].setting_text, sizeof(items_generalsettings[currentsetting].setting_text), "Cache dir"); snprintf(items[currentsetting].setting_text, sizeof(items[currentsetting].setting_text), "Cache dir");
snprintf(items_generalsettings[currentsetting].comment, sizeof(items_generalsettings[currentsetting].comment), "INFO - [ZIP Extract Mode] is set to 'Cache dir'.\nZIP files are extracted to the cache directory (dev_hdd1)."); snprintf(items[currentsetting].comment, sizeof(items[currentsetting].comment), "INFO - [ZIP Extract Mode] is set to 'Cache dir'.\nZIP files are extracted to the cache directory (dev_hdd1).");
break; break;
} }
break; break;
case SETTING_RARCH_DEFAULT_EMU: case SETTING_RARCH_DEFAULT_EMU:
fill_pathname_base(fname, g_settings.libretro, sizeof(fname)); fill_pathname_base(fname, g_settings.libretro, sizeof(fname));
snprintf(items_generalsettings[currentsetting].setting_text, sizeof(items_generalsettings[currentsetting].setting_text), "%s", fname); snprintf(items[currentsetting].setting_text, sizeof(items[currentsetting].setting_text), "%s", fname);
items_generalsettings[currentsetting].text_color = GREEN; items[currentsetting].text_color = GREEN;
break; break;
case SETTING_EMU_AUDIO_MUTE: case SETTING_EMU_AUDIO_MUTE:
set_setting_label_write_on_or_off(g_extern.audio_data.mute, currentsetting); set_setting_label_write_on_or_off(items, g_extern.audio_data.mute, currentsetting);
set_setting_label_color(!g_extern.audio_data.mute, currentsetting); set_setting_label_color(items,!g_extern.audio_data.mute, currentsetting);
if(g_extern.audio_data.mute) if(g_extern.audio_data.mute)
snprintf(items_generalsettings[currentsetting].comment, sizeof(items_generalsettings[currentsetting].comment), "INFO - [Audio Mute] feature is set to 'ON'. The game audio will be muted."); snprintf(items[currentsetting].comment, sizeof(items[currentsetting].comment), "INFO - [Audio Mute] feature is set to 'ON'. The game audio will be muted.");
else else
snprintf(items_generalsettings[currentsetting].comment, sizeof(items_generalsettings[currentsetting].comment), "INFO - [Audio Mute] feature is set to 'OFF'."); snprintf(items[currentsetting].comment, sizeof(items[currentsetting].comment), "INFO - [Audio Mute] feature is set to 'OFF'.");
break; break;
case SETTING_ENABLE_CUSTOM_BGM: case SETTING_ENABLE_CUSTOM_BGM:
set_setting_label_write_on_or_off(g_console.custom_bgm_enable, currentsetting); set_setting_label_write_on_or_off(items, g_console.custom_bgm_enable, currentsetting);
set_setting_label_color(g_console.custom_bgm_enable, currentsetting); set_setting_label_color(items,g_console.custom_bgm_enable, currentsetting);
break; break;
case SETTING_PATH_DEFAULT_ROM_DIRECTORY: case SETTING_PATH_DEFAULT_ROM_DIRECTORY:
set_setting_label_color(!(strcmp(g_console.default_rom_startup_dir, "/")), currentsetting); set_setting_label_color(items,!(strcmp(g_console.default_rom_startup_dir, "/")), currentsetting);
snprintf(items_generalsettings[currentsetting].setting_text, sizeof(items_generalsettings[currentsetting].setting_text), g_console.default_rom_startup_dir); snprintf(items[currentsetting].setting_text, sizeof(items[currentsetting].setting_text), g_console.default_rom_startup_dir);
break; break;
case SETTING_PATH_SAVESTATES_DIRECTORY: case SETTING_PATH_SAVESTATES_DIRECTORY:
set_setting_label_color(!(strcmp(g_console.default_savestate_dir, default_paths.port_dir)), currentsetting); set_setting_label_color(items,!(strcmp(g_console.default_savestate_dir, default_paths.port_dir)), currentsetting);
snprintf(items_generalsettings[currentsetting].setting_text, sizeof(items_generalsettings[currentsetting].setting_text), g_console.default_savestate_dir); snprintf(items[currentsetting].setting_text, sizeof(items[currentsetting].setting_text), g_console.default_savestate_dir);
break; break;
case SETTING_PATH_SRAM_DIRECTORY: case SETTING_PATH_SRAM_DIRECTORY:
set_setting_label_color(!(strcmp(g_console.default_sram_dir, default_paths.port_dir)), currentsetting); set_setting_label_color(items,!(strcmp(g_console.default_sram_dir, default_paths.port_dir)), currentsetting);
snprintf(items_generalsettings[currentsetting].setting_text, sizeof(items_generalsettings[currentsetting].setting_text), g_console.default_sram_dir); snprintf(items[currentsetting].setting_text, sizeof(items[currentsetting].setting_text), g_console.default_sram_dir);
break; break;
case SETTING_PATH_CHEATS: case SETTING_PATH_CHEATS:
set_setting_label_color(!(strcmp(g_settings.cheat_database, default_paths.port_dir)), currentsetting); set_setting_label_color(items,!(strcmp(g_settings.cheat_database, default_paths.port_dir)), currentsetting);
snprintf(items_generalsettings[currentsetting].setting_text, sizeof(items_generalsettings[currentsetting].setting_text), g_settings.cheat_database); snprintf(items[currentsetting].setting_text, sizeof(items[currentsetting].setting_text), g_settings.cheat_database);
break; break;
case SETTING_PATH_SYSTEM: case SETTING_PATH_SYSTEM:
set_setting_label_color(!(strcmp(g_settings.system_directory, default_paths.system_dir)), currentsetting); set_setting_label_color(items,!(strcmp(g_settings.system_directory, default_paths.system_dir)), currentsetting);
snprintf(items_generalsettings[currentsetting].setting_text, sizeof(items_generalsettings[currentsetting].setting_text), g_settings.system_directory); snprintf(items[currentsetting].setting_text, sizeof(items[currentsetting].setting_text), g_settings.system_directory);
break; break;
case SETTING_ENABLE_SRAM_PATH: case SETTING_ENABLE_SRAM_PATH:
set_setting_label_write_on_or_off(g_console.default_sram_dir_enable, currentsetting); set_setting_label_write_on_or_off(items, g_console.default_sram_dir_enable, currentsetting);
set_setting_label_color(!g_console.default_sram_dir_enable, currentsetting); set_setting_label_color(items,!g_console.default_sram_dir_enable, currentsetting);
break; break;
case SETTING_ENABLE_STATE_PATH: case SETTING_ENABLE_STATE_PATH:
set_setting_label_write_on_or_off(g_console.default_savestate_dir_enable, currentsetting); set_setting_label_write_on_or_off(items, g_console.default_savestate_dir_enable, currentsetting);
set_setting_label_color(!g_console.default_savestate_dir_enable, currentsetting); set_setting_label_color(items,!g_console.default_savestate_dir_enable, currentsetting);
break; break;
case SETTING_CONTROLS_SCHEME: case SETTING_CONTROLS_SCHEME:
set_setting_label_color(strcmp(g_console.input_cfg_path,"") == 0, currentsetting); set_setting_label_color(items,strcmp(g_console.input_cfg_path,"") == 0, currentsetting);
snprintf(items_generalsettings[currentsetting].comment, sizeof(items_generalsettings[currentsetting].comment), "INFO - Input scheme preset [%s] is selected.", g_console.input_cfg_path); snprintf(items[currentsetting].comment, sizeof(items[currentsetting].comment), "INFO - Input scheme preset [%s] is selected.", g_console.input_cfg_path);
snprintf(items_generalsettings[currentsetting].setting_text, sizeof(items_generalsettings[currentsetting].setting_text), g_console.input_cfg_path); snprintf(items[currentsetting].setting_text, sizeof(items[currentsetting].setting_text), g_console.input_cfg_path);
break; break;
case SETTING_CONTROLS_NUMBER: case SETTING_CONTROLS_NUMBER:
set_setting_label_color(currently_selected_controller_menu == 0, currentsetting); set_setting_label_color(items,currently_selected_controller_menu == 0, currentsetting);
snprintf(items_generalsettings[currentsetting].comment, sizeof(items_generalsettings[currentsetting].comment), "Controller %d is currently selected.", currently_selected_controller_menu+1); snprintf(items[currentsetting].comment, sizeof(items[currentsetting].comment), "Controller %d is currently selected.", currently_selected_controller_menu+1);
snprintf(items_generalsettings[currentsetting].setting_text, sizeof(items_generalsettings[currentsetting].setting_text), "%d", currently_selected_controller_menu+1); snprintf(items[currentsetting].setting_text, sizeof(items[currentsetting].setting_text), "%d", currently_selected_controller_menu+1);
break; break;
case SETTING_CONTROLS_RETRO_DEVICE_ID_JOYPAD_B: case SETTING_CONTROLS_RETRO_DEVICE_ID_JOYPAD_B:
case SETTING_CONTROLS_RETRO_DEVICE_ID_JOYPAD_Y: case SETTING_CONTROLS_RETRO_DEVICE_ID_JOYPAD_Y:
@ -317,12 +317,12 @@ static void set_setting_label(menu * menu_obj, unsigned currentsetting)
case SETTING_CONTROLS_RETRO_DEVICE_ID_JOYPAD_L3: case SETTING_CONTROLS_RETRO_DEVICE_ID_JOYPAD_L3:
case SETTING_CONTROLS_RETRO_DEVICE_ID_JOYPAD_R3: case SETTING_CONTROLS_RETRO_DEVICE_ID_JOYPAD_R3:
{ {
set_setting_label_color(g_settings.input.binds[currently_selected_controller_menu][currentsetting-(FIRST_CONTROL_BIND)].joykey == rarch_default_keybind_lut[currentsetting-FIRST_CONTROL_BIND], currentsetting); set_setting_label_color(items,g_settings.input.binds[currently_selected_controller_menu][currentsetting-(FIRST_CONTROL_BIND)].joykey == rarch_default_keybind_lut[currentsetting-FIRST_CONTROL_BIND], currentsetting);
const char * value = rarch_input_find_platform_key_label(g_settings.input.binds[currently_selected_controller_menu][currentsetting-(FIRST_CONTROL_BIND)].joykey); const char * value = rarch_input_find_platform_key_label(g_settings.input.binds[currently_selected_controller_menu][currentsetting-(FIRST_CONTROL_BIND)].joykey);
unsigned id = currentsetting - FIRST_CONTROL_BIND; unsigned id = currentsetting - FIRST_CONTROL_BIND;
snprintf(items_generalsettings[currentsetting].text, sizeof(items_generalsettings[currentsetting].text), rarch_input_get_default_keybind_name(id)); snprintf(items[currentsetting].text, sizeof(items[currentsetting].text), rarch_input_get_default_keybind_name(id));
snprintf(items_generalsettings[currentsetting].comment, sizeof(items_generalsettings[currentsetting].comment), "INFO - [%s] on the PS3 controller is mapped to action:\n[%s].", items_generalsettings[currentsetting].text, value); snprintf(items[currentsetting].comment, sizeof(items[currentsetting].comment), "INFO - [%s] on the PS3 controller is mapped to action:\n[%s].", items[currentsetting].text, value);
snprintf(items_generalsettings[currentsetting].setting_text, sizeof(items_generalsettings[currentsetting].setting_text), value); snprintf(items[currentsetting].setting_text, sizeof(items[currentsetting].setting_text), value);
} }
break; break;
case SETTING_CONTROLS_SAVE_CUSTOM_CONTROLS: case SETTING_CONTROLS_SAVE_CUSTOM_CONTROLS:
@ -332,7 +332,7 @@ static void set_setting_label(menu * menu_obj, unsigned currentsetting)
case SETTING_PATH_DEFAULT_ALL: case SETTING_PATH_DEFAULT_ALL:
case SETTING_EMU_DEFAULT_ALL: case SETTING_EMU_DEFAULT_ALL:
case SETTING_SAVE_SHADER_PRESET: case SETTING_SAVE_SHADER_PRESET:
set_setting_label_color(menu_obj->selected == currentsetting, currentsetting); set_setting_label_color(items,menu_obj->selected == currentsetting, currentsetting);
break; break;
default: default:
break; break;
@ -371,13 +371,13 @@ static void menu_stack_refresh (item *items, unsigned stack_idx)
items[i].text_xpos = 0.09f; items[i].text_xpos = 0.09f;
items[i].text_ypos = increment; items[i].text_ypos = increment;
items[i].page = page; items[i].page = page;
set_setting_label(menu_obj, i); set_setting_label(menu_obj, items, i);
increment += 0.03f; increment += 0.03f;
j++; j++;
} }
} }
static void menu_stack_push(unsigned stack_idx, unsigned menu_id) static void menu_stack_push(unsigned stack_idx, item *items, unsigned menu_id)
{ {
switch(menu_id) switch(menu_id)
{ {
@ -409,7 +409,7 @@ static void menu_stack_push(unsigned stack_idx, unsigned menu_id)
menuStack[stack_idx].selected = 0; menuStack[stack_idx].selected = 0;
menuStack[stack_idx].page = 0; menuStack[stack_idx].page = 0;
menuStack[stack_idx].category_id = CATEGORY_FILEBROWSER; menuStack[stack_idx].category_id = CATEGORY_FILEBROWSER;
menu_stack_refresh(items_generalsettings, stack_idx); menu_stack_refresh(items, stack_idx);
strlcpy(browser.extensions, rarch_console_get_rom_ext(), sizeof(browser.extensions)); strlcpy(browser.extensions, rarch_console_get_rom_ext(), sizeof(browser.extensions));
filebrowser_set_root(&browser, g_console.default_rom_startup_dir); filebrowser_set_root(&browser, g_console.default_rom_startup_dir);
filebrowser_iterate(&browser, FILEBROWSER_ACTION_RESET); filebrowser_iterate(&browser, FILEBROWSER_ACTION_RESET);
@ -420,7 +420,7 @@ static void menu_stack_push(unsigned stack_idx, unsigned menu_id)
menuStack[stack_idx].selected = 0; menuStack[stack_idx].selected = 0;
menuStack[stack_idx].page = 0; menuStack[stack_idx].page = 0;
menuStack[stack_idx].category_id = CATEGORY_FILEBROWSER; menuStack[stack_idx].category_id = CATEGORY_FILEBROWSER;
menu_stack_refresh(items_generalsettings, stack_idx); menu_stack_refresh(items, stack_idx);
strlcpy(tmpBrowser.extensions, "self|SELF|bin|BIN", sizeof(tmpBrowser.extensions)); strlcpy(tmpBrowser.extensions, "self|SELF|bin|BIN", sizeof(tmpBrowser.extensions));
filebrowser_set_root(&tmpBrowser, default_paths.core_dir); filebrowser_set_root(&tmpBrowser, default_paths.core_dir);
filebrowser_iterate(&tmpBrowser, FILEBROWSER_ACTION_RESET); filebrowser_iterate(&tmpBrowser, FILEBROWSER_ACTION_RESET);
@ -431,7 +431,7 @@ static void menu_stack_push(unsigned stack_idx, unsigned menu_id)
menuStack[stack_idx].selected = 0; menuStack[stack_idx].selected = 0;
menuStack[stack_idx].page = 0; menuStack[stack_idx].page = 0;
menuStack[stack_idx].category_id = CATEGORY_FILEBROWSER; menuStack[stack_idx].category_id = CATEGORY_FILEBROWSER;
menu_stack_refresh(items_generalsettings, stack_idx); menu_stack_refresh(items, stack_idx);
strlcpy(tmpBrowser.extensions, "cgp|CGP", sizeof(tmpBrowser.extensions)); strlcpy(tmpBrowser.extensions, "cgp|CGP", sizeof(tmpBrowser.extensions));
filebrowser_set_root(&tmpBrowser, default_paths.cgp_dir); filebrowser_set_root(&tmpBrowser, default_paths.cgp_dir);
filebrowser_iterate(&tmpBrowser, FILEBROWSER_ACTION_RESET); filebrowser_iterate(&tmpBrowser, FILEBROWSER_ACTION_RESET);
@ -442,7 +442,7 @@ static void menu_stack_push(unsigned stack_idx, unsigned menu_id)
menuStack[stack_idx].selected = 0; menuStack[stack_idx].selected = 0;
menuStack[stack_idx].page = 0; menuStack[stack_idx].page = 0;
menuStack[stack_idx].category_id = CATEGORY_FILEBROWSER; menuStack[stack_idx].category_id = CATEGORY_FILEBROWSER;
menu_stack_refresh(items_generalsettings, stack_idx); menu_stack_refresh(items, stack_idx);
strlcpy(tmpBrowser.extensions, "cfg|CFG", sizeof(tmpBrowser.extensions)); strlcpy(tmpBrowser.extensions, "cfg|CFG", sizeof(tmpBrowser.extensions));
filebrowser_set_root(&tmpBrowser, default_paths.input_presets_dir); filebrowser_set_root(&tmpBrowser, default_paths.input_presets_dir);
filebrowser_iterate(&tmpBrowser, FILEBROWSER_ACTION_RESET); filebrowser_iterate(&tmpBrowser, FILEBROWSER_ACTION_RESET);
@ -453,7 +453,7 @@ static void menu_stack_push(unsigned stack_idx, unsigned menu_id)
menuStack[stack_idx].selected = 0; menuStack[stack_idx].selected = 0;
menuStack[stack_idx].page = 0; menuStack[stack_idx].page = 0;
menuStack[stack_idx].category_id = CATEGORY_FILEBROWSER; menuStack[stack_idx].category_id = CATEGORY_FILEBROWSER;
menu_stack_refresh(items_generalsettings, stack_idx); menu_stack_refresh(items, stack_idx);
strlcpy(tmpBrowser.extensions, "cg|CG", sizeof(tmpBrowser.extensions)); strlcpy(tmpBrowser.extensions, "cg|CG", sizeof(tmpBrowser.extensions));
filebrowser_set_root(&tmpBrowser, default_paths.shader_dir); filebrowser_set_root(&tmpBrowser, default_paths.shader_dir);
filebrowser_iterate(&tmpBrowser, FILEBROWSER_ACTION_RESET); filebrowser_iterate(&tmpBrowser, FILEBROWSER_ACTION_RESET);
@ -464,7 +464,7 @@ static void menu_stack_push(unsigned stack_idx, unsigned menu_id)
menuStack[stack_idx].selected = 0; menuStack[stack_idx].selected = 0;
menuStack[stack_idx].page = 0; menuStack[stack_idx].page = 0;
menuStack[stack_idx].category_id = CATEGORY_FILEBROWSER; menuStack[stack_idx].category_id = CATEGORY_FILEBROWSER;
menu_stack_refresh(items_generalsettings, stack_idx); menu_stack_refresh(items, stack_idx);
strlcpy(tmpBrowser.extensions, "png|PNG|jpg|JPG|JPEG|jpeg", sizeof(tmpBrowser.extensions)); strlcpy(tmpBrowser.extensions, "png|PNG|jpg|JPG|JPEG|jpeg", sizeof(tmpBrowser.extensions));
filebrowser_set_root(&tmpBrowser, default_paths.border_dir); filebrowser_set_root(&tmpBrowser, default_paths.border_dir);
filebrowser_iterate(&tmpBrowser, FILEBROWSER_ACTION_RESET); filebrowser_iterate(&tmpBrowser, FILEBROWSER_ACTION_RESET);
@ -479,7 +479,7 @@ static void menu_stack_push(unsigned stack_idx, unsigned menu_id)
menuStack[stack_idx].selected = 0; menuStack[stack_idx].selected = 0;
menuStack[stack_idx].page = 0; menuStack[stack_idx].page = 0;
menuStack[stack_idx].category_id = CATEGORY_FILEBROWSER; menuStack[stack_idx].category_id = CATEGORY_FILEBROWSER;
menu_stack_refresh(items_generalsettings, stack_idx); menu_stack_refresh(items, stack_idx);
strlcpy(tmpBrowser.extensions, "empty", sizeof(tmpBrowser.extensions)); strlcpy(tmpBrowser.extensions, "empty", sizeof(tmpBrowser.extensions));
filebrowser_set_root(&tmpBrowser, "/"); filebrowser_set_root(&tmpBrowser, "/");
filebrowser_iterate(&tmpBrowser, FILEBROWSER_ACTION_RESET); filebrowser_iterate(&tmpBrowser, FILEBROWSER_ACTION_RESET);
@ -492,7 +492,7 @@ static void menu_stack_push(unsigned stack_idx, unsigned menu_id)
menuStack[stack_idx].first_setting = FIRST_VIDEO_SETTING; menuStack[stack_idx].first_setting = FIRST_VIDEO_SETTING;
menuStack[stack_idx].max_settings = MAX_NO_OF_VIDEO_SETTINGS; menuStack[stack_idx].max_settings = MAX_NO_OF_VIDEO_SETTINGS;
menuStack[stack_idx].category_id = CATEGORY_SETTINGS; menuStack[stack_idx].category_id = CATEGORY_SETTINGS;
menu_stack_refresh(items_generalsettings, stack_idx); menu_stack_refresh(items, stack_idx);
break; break;
case GENERAL_AUDIO_MENU: case GENERAL_AUDIO_MENU:
strlcpy(menuStack[stack_idx].title, "Audio", sizeof(menuStack[stack_idx].title)); strlcpy(menuStack[stack_idx].title, "Audio", sizeof(menuStack[stack_idx].title));
@ -502,7 +502,7 @@ static void menu_stack_push(unsigned stack_idx, unsigned menu_id)
menuStack[stack_idx].first_setting = FIRST_AUDIO_SETTING; menuStack[stack_idx].first_setting = FIRST_AUDIO_SETTING;
menuStack[stack_idx].max_settings = MAX_NO_OF_AUDIO_SETTINGS; menuStack[stack_idx].max_settings = MAX_NO_OF_AUDIO_SETTINGS;
menuStack[stack_idx].category_id = CATEGORY_SETTINGS; menuStack[stack_idx].category_id = CATEGORY_SETTINGS;
menu_stack_refresh(items_generalsettings, stack_idx); menu_stack_refresh(items, stack_idx);
break; break;
case EMU_GENERAL_MENU: case EMU_GENERAL_MENU:
strlcpy(menuStack[stack_idx].title, "Retro", sizeof(menuStack[stack_idx].title)); strlcpy(menuStack[stack_idx].title, "Retro", sizeof(menuStack[stack_idx].title));
@ -512,7 +512,7 @@ static void menu_stack_push(unsigned stack_idx, unsigned menu_id)
menuStack[stack_idx].first_setting = FIRST_EMU_SETTING; menuStack[stack_idx].first_setting = FIRST_EMU_SETTING;
menuStack[stack_idx].max_settings = MAX_NO_OF_EMU_SETTINGS; menuStack[stack_idx].max_settings = MAX_NO_OF_EMU_SETTINGS;
menuStack[stack_idx].category_id = CATEGORY_SETTINGS; menuStack[stack_idx].category_id = CATEGORY_SETTINGS;
menu_stack_refresh(items_generalsettings, stack_idx); menu_stack_refresh(items, stack_idx);
break; break;
case EMU_VIDEO_MENU: case EMU_VIDEO_MENU:
strlcpy(menuStack[stack_idx].title, "Retro Video", sizeof(menuStack[stack_idx].title)); strlcpy(menuStack[stack_idx].title, "Retro Video", sizeof(menuStack[stack_idx].title));
@ -522,7 +522,7 @@ static void menu_stack_push(unsigned stack_idx, unsigned menu_id)
menuStack[stack_idx].first_setting = FIRST_EMU_VIDEO_SETTING; menuStack[stack_idx].first_setting = FIRST_EMU_VIDEO_SETTING;
menuStack[stack_idx].max_settings = MAX_NO_OF_EMU_VIDEO_SETTINGS; menuStack[stack_idx].max_settings = MAX_NO_OF_EMU_VIDEO_SETTINGS;
menuStack[stack_idx].category_id = CATEGORY_SETTINGS; menuStack[stack_idx].category_id = CATEGORY_SETTINGS;
menu_stack_refresh(items_generalsettings, stack_idx); menu_stack_refresh(items, stack_idx);
break; break;
case EMU_AUDIO_MENU: case EMU_AUDIO_MENU:
strlcpy(menuStack[stack_idx].title, "Retro Audio", sizeof(menuStack[stack_idx].title)); strlcpy(menuStack[stack_idx].title, "Retro Audio", sizeof(menuStack[stack_idx].title));
@ -532,7 +532,7 @@ static void menu_stack_push(unsigned stack_idx, unsigned menu_id)
menuStack[stack_idx].first_setting = FIRST_EMU_AUDIO_SETTING; menuStack[stack_idx].first_setting = FIRST_EMU_AUDIO_SETTING;
menuStack[stack_idx].max_settings = MAX_NO_OF_EMU_AUDIO_SETTINGS; menuStack[stack_idx].max_settings = MAX_NO_OF_EMU_AUDIO_SETTINGS;
menuStack[stack_idx].category_id = CATEGORY_SETTINGS; menuStack[stack_idx].category_id = CATEGORY_SETTINGS;
menu_stack_refresh(items_generalsettings, stack_idx); menu_stack_refresh(items, stack_idx);
break; break;
case PATH_MENU: case PATH_MENU:
strlcpy(menuStack[stack_idx].title, "Path", sizeof(menuStack[stack_idx].title)); strlcpy(menuStack[stack_idx].title, "Path", sizeof(menuStack[stack_idx].title));
@ -542,7 +542,7 @@ static void menu_stack_push(unsigned stack_idx, unsigned menu_id)
menuStack[stack_idx].first_setting = FIRST_PATH_SETTING; menuStack[stack_idx].first_setting = FIRST_PATH_SETTING;
menuStack[stack_idx].max_settings = MAX_NO_OF_PATH_SETTINGS; menuStack[stack_idx].max_settings = MAX_NO_OF_PATH_SETTINGS;
menuStack[stack_idx].category_id = CATEGORY_SETTINGS; menuStack[stack_idx].category_id = CATEGORY_SETTINGS;
menu_stack_refresh(items_generalsettings, stack_idx); menu_stack_refresh(items, stack_idx);
break; break;
case CONTROLS_MENU: case CONTROLS_MENU:
strlcpy(menuStack[stack_idx].title, "Controls", sizeof(menuStack[stack_idx].title)); strlcpy(menuStack[stack_idx].title, "Controls", sizeof(menuStack[stack_idx].title));
@ -552,7 +552,7 @@ static void menu_stack_push(unsigned stack_idx, unsigned menu_id)
menuStack[stack_idx].first_setting = FIRST_CONTROLS_SETTING_PAGE_1; menuStack[stack_idx].first_setting = FIRST_CONTROLS_SETTING_PAGE_1;
menuStack[stack_idx].max_settings = MAX_NO_OF_CONTROLS_SETTINGS; menuStack[stack_idx].max_settings = MAX_NO_OF_CONTROLS_SETTINGS;
menuStack[stack_idx].category_id = CATEGORY_SETTINGS; menuStack[stack_idx].category_id = CATEGORY_SETTINGS;
menu_stack_refresh(items_generalsettings, stack_idx); menu_stack_refresh(items, stack_idx);
break; break;
default: default:
break; break;
@ -754,7 +754,7 @@ static void apply_scaling (unsigned init_mode)
} }
} }
static void select_file(void) static void select_file(item *items)
{ {
unsigned menu_id = menuStack[menuStackindex].enum_id; unsigned menu_id = menuStack[menuStackindex].enum_id;
char extensions[256], object[256], comment[256], path[PATH_MAX]; char extensions[256], object[256], comment[256], path[PATH_MAX];
@ -813,7 +813,7 @@ static void select_file(void)
strlcpy(g_settings.video.second_pass_shader, path, sizeof(g_settings.video.second_pass_shader)); strlcpy(g_settings.video.second_pass_shader, path, sizeof(g_settings.video.second_pass_shader));
break; break;
} }
menu_stack_refresh(items_generalsettings, menuStackindex); menu_stack_refresh(items, menuStackindex);
break; break;
case PRESET_CHOICE: case PRESET_CHOICE:
strlcpy(g_console.cgp_path, path, sizeof(g_console.cgp_path)); strlcpy(g_console.cgp_path, path, sizeof(g_console.cgp_path));
@ -824,7 +824,7 @@ static void select_file(void)
case INPUT_PRESET_CHOICE: case INPUT_PRESET_CHOICE:
strlcpy(g_console.input_cfg_path, path, sizeof(g_console.input_cfg_path)); strlcpy(g_console.input_cfg_path, path, sizeof(g_console.input_cfg_path));
config_read_keybinds(path); config_read_keybinds(path);
menu_stack_refresh(items_generalsettings, menuStackindex); menu_stack_refresh(items, menuStackindex);
break; break;
case BORDER_CHOICE: case BORDER_CHOICE:
break; break;
@ -852,7 +852,7 @@ static void select_file(void)
gl_render_msg_post(gl); gl_render_msg_post(gl);
} }
static void select_directory(void) static void select_directory(item *items)
{ {
unsigned menu_id = menuStack[menuStackindex].enum_id; unsigned menu_id = menuStack[menuStackindex].enum_id;
char path[1024]; char path[1024];
@ -1018,7 +1018,7 @@ static void rarch_filename_input_and_save (unsigned filename_type)
} }
} }
static void producesettingentry(menu * menu_obj, unsigned switchvalue) static void producesettingentry(menu * menu_obj, item *items, unsigned switchvalue)
{ {
switch(switchvalue) switch(switchvalue)
{ {
@ -1067,7 +1067,7 @@ static void producesettingentry(menu * menu_obj, unsigned switchvalue)
if(g_console.emulator_initialized) if(g_console.emulator_initialized)
{ {
menu_stack_increment(); menu_stack_increment();
menu_stack_push(menuStackindex, PRESET_CHOICE); menu_stack_push(menuStackindex, items, PRESET_CHOICE);
} }
} }
if(input_st & (1 << RETRO_DEVICE_ID_JOYPAD_START)) if(input_st & (1 << RETRO_DEVICE_ID_JOYPAD_START))
@ -1077,28 +1077,28 @@ static void producesettingentry(menu * menu_obj, unsigned switchvalue)
if((input_st & (1 << RETRO_DEVICE_ID_JOYPAD_LEFT)) || (input_st & (1 << RETRO_DEVICE_ID_JOYPAD_RIGHT)) || (input_st & (1 << RETRO_DEVICE_ID_JOYPAD_B))) if((input_st & (1 << RETRO_DEVICE_ID_JOYPAD_LEFT)) || (input_st & (1 << RETRO_DEVICE_ID_JOYPAD_RIGHT)) || (input_st & (1 << RETRO_DEVICE_ID_JOYPAD_B)))
{ {
menu_stack_increment(); menu_stack_increment();
menu_stack_push(menuStackindex, SHADER_CHOICE); menu_stack_push(menuStackindex, items, SHADER_CHOICE);
set_shader = 0; set_shader = 0;
} }
if(input_st & (1 << RETRO_DEVICE_ID_JOYPAD_START)) if(input_st & (1 << RETRO_DEVICE_ID_JOYPAD_START))
{ {
rarch_load_shader(1, NULL); rarch_load_shader(1, NULL);
strlcpy(g_settings.video.cg_shader_path, default_paths.shader_file, sizeof(g_settings.video.cg_shader_path)); strlcpy(g_settings.video.cg_shader_path, default_paths.shader_file, sizeof(g_settings.video.cg_shader_path));
menu_stack_refresh(items_generalsettings, menuStackindex); menu_stack_refresh(items, menuStackindex);
} }
break; break;
case SETTING_SHADER_2: case SETTING_SHADER_2:
if((input_st & (1 << RETRO_DEVICE_ID_JOYPAD_LEFT)) || (input_st & (1 << RETRO_DEVICE_ID_JOYPAD_RIGHT)) || (input_st & (1 << RETRO_DEVICE_ID_JOYPAD_B))) if((input_st & (1 << RETRO_DEVICE_ID_JOYPAD_LEFT)) || (input_st & (1 << RETRO_DEVICE_ID_JOYPAD_RIGHT)) || (input_st & (1 << RETRO_DEVICE_ID_JOYPAD_B)))
{ {
menu_stack_increment(); menu_stack_increment();
menu_stack_push(menuStackindex, SHADER_CHOICE); menu_stack_push(menuStackindex, items, SHADER_CHOICE);
set_shader = 1; set_shader = 1;
} }
if(input_st & (1 << RETRO_DEVICE_ID_JOYPAD_START)) if(input_st & (1 << RETRO_DEVICE_ID_JOYPAD_START))
{ {
rarch_load_shader(2, NULL); rarch_load_shader(2, NULL);
strlcpy(g_settings.video.second_pass_shader, default_paths.shader_file, sizeof(g_settings.video.second_pass_shader)); strlcpy(g_settings.video.second_pass_shader, default_paths.shader_file, sizeof(g_settings.video.second_pass_shader));
menu_stack_refresh(items_generalsettings, menuStackindex); menu_stack_refresh(items, menuStackindex);
} }
break; break;
case SETTING_FONT_SIZE: case SETTING_FONT_SIZE:
@ -1375,7 +1375,7 @@ static void producesettingentry(menu * menu_obj, unsigned switchvalue)
if((input_st & (1 << RETRO_DEVICE_ID_JOYPAD_LEFT)) || (input_st & (1 << RETRO_DEVICE_ID_JOYPAD_RIGHT)) || (input_st & (1 << RETRO_DEVICE_ID_JOYPAD_B))) if((input_st & (1 << RETRO_DEVICE_ID_JOYPAD_LEFT)) || (input_st & (1 << RETRO_DEVICE_ID_JOYPAD_RIGHT)) || (input_st & (1 << RETRO_DEVICE_ID_JOYPAD_B)))
{ {
menu_stack_increment(); menu_stack_increment();
menu_stack_push(menuStackindex, LIBRETRO_CHOICE); menu_stack_push(menuStackindex, items, LIBRETRO_CHOICE);
set_libretro_core_as_launch = false; set_libretro_core_as_launch = false;
} }
if(input_st & (1 << RETRO_DEVICE_ID_JOYPAD_START)) if(input_st & (1 << RETRO_DEVICE_ID_JOYPAD_START))
@ -1416,7 +1416,7 @@ static void producesettingentry(menu * menu_obj, unsigned switchvalue)
if((input_st & (1 << RETRO_DEVICE_ID_JOYPAD_LEFT)) || (input_st & (1 << RETRO_DEVICE_ID_JOYPAD_RIGHT)) || (input_st & (1 << RETRO_DEVICE_ID_JOYPAD_B))) if((input_st & (1 << RETRO_DEVICE_ID_JOYPAD_LEFT)) || (input_st & (1 << RETRO_DEVICE_ID_JOYPAD_RIGHT)) || (input_st & (1 << RETRO_DEVICE_ID_JOYPAD_B)))
{ {
menu_stack_increment(); menu_stack_increment();
menu_stack_push(menuStackindex, PATH_DEFAULT_ROM_DIR_CHOICE); menu_stack_push(menuStackindex, items, PATH_DEFAULT_ROM_DIR_CHOICE);
} }
if(input_st & (1 << RETRO_DEVICE_ID_JOYPAD_START)) if(input_st & (1 << RETRO_DEVICE_ID_JOYPAD_START))
@ -1426,7 +1426,7 @@ static void producesettingentry(menu * menu_obj, unsigned switchvalue)
if((input_st & (1 << RETRO_DEVICE_ID_JOYPAD_LEFT)) || (input_st & (1 << RETRO_DEVICE_ID_JOYPAD_RIGHT)) || (input_st & (1 << RETRO_DEVICE_ID_JOYPAD_B))) if((input_st & (1 << RETRO_DEVICE_ID_JOYPAD_LEFT)) || (input_st & (1 << RETRO_DEVICE_ID_JOYPAD_RIGHT)) || (input_st & (1 << RETRO_DEVICE_ID_JOYPAD_B)))
{ {
menu_stack_increment(); menu_stack_increment();
menu_stack_push(menuStackindex, PATH_SAVESTATES_DIR_CHOICE); menu_stack_push(menuStackindex, items, PATH_SAVESTATES_DIR_CHOICE);
} }
if(input_st & (1 << RETRO_DEVICE_ID_JOYPAD_START)) if(input_st & (1 << RETRO_DEVICE_ID_JOYPAD_START))
@ -1437,7 +1437,7 @@ static void producesettingentry(menu * menu_obj, unsigned switchvalue)
if((input_st & (1 << RETRO_DEVICE_ID_JOYPAD_LEFT)) || (input_st & (1 << RETRO_DEVICE_ID_JOYPAD_RIGHT)) || (input_st & (1 << RETRO_DEVICE_ID_JOYPAD_B))) if((input_st & (1 << RETRO_DEVICE_ID_JOYPAD_LEFT)) || (input_st & (1 << RETRO_DEVICE_ID_JOYPAD_RIGHT)) || (input_st & (1 << RETRO_DEVICE_ID_JOYPAD_B)))
{ {
menu_stack_increment(); menu_stack_increment();
menu_stack_push(menuStackindex, PATH_SRAM_DIR_CHOICE); menu_stack_push(menuStackindex, items, PATH_SRAM_DIR_CHOICE);
} }
if(input_st & (1 << RETRO_DEVICE_ID_JOYPAD_START)) if(input_st & (1 << RETRO_DEVICE_ID_JOYPAD_START))
@ -1447,7 +1447,7 @@ static void producesettingentry(menu * menu_obj, unsigned switchvalue)
if((input_st & (1 << RETRO_DEVICE_ID_JOYPAD_LEFT)) || (input_st & (1 << RETRO_DEVICE_ID_JOYPAD_RIGHT)) || (input_st & (1 << RETRO_DEVICE_ID_JOYPAD_B))) if((input_st & (1 << RETRO_DEVICE_ID_JOYPAD_LEFT)) || (input_st & (1 << RETRO_DEVICE_ID_JOYPAD_RIGHT)) || (input_st & (1 << RETRO_DEVICE_ID_JOYPAD_B)))
{ {
menu_stack_increment(); menu_stack_increment();
menu_stack_push(menuStackindex, PATH_CHEATS_DIR_CHOICE); menu_stack_push(menuStackindex, items, PATH_CHEATS_DIR_CHOICE);
} }
if(input_st & (1 << RETRO_DEVICE_ID_JOYPAD_START)) if(input_st & (1 << RETRO_DEVICE_ID_JOYPAD_START))
@ -1457,7 +1457,7 @@ static void producesettingentry(menu * menu_obj, unsigned switchvalue)
if((input_st & (1 << RETRO_DEVICE_ID_JOYPAD_LEFT)) || (input_st & (1 << RETRO_DEVICE_ID_JOYPAD_RIGHT)) || (input_st & (1 << RETRO_DEVICE_ID_JOYPAD_B))) if((input_st & (1 << RETRO_DEVICE_ID_JOYPAD_LEFT)) || (input_st & (1 << RETRO_DEVICE_ID_JOYPAD_RIGHT)) || (input_st & (1 << RETRO_DEVICE_ID_JOYPAD_B)))
{ {
menu_stack_increment(); menu_stack_increment();
menu_stack_push(menuStackindex, PATH_SYSTEM_DIR_CHOICE); menu_stack_push(menuStackindex, items, PATH_SYSTEM_DIR_CHOICE);
} }
if(input_st & (1 << RETRO_DEVICE_ID_JOYPAD_START)) if(input_st & (1 << RETRO_DEVICE_ID_JOYPAD_START))
@ -1467,24 +1467,24 @@ static void producesettingentry(menu * menu_obj, unsigned switchvalue)
if((input_st & (1 << RETRO_DEVICE_ID_JOYPAD_LEFT)) || (input_st & (1 << RETRO_DEVICE_ID_JOYPAD_RIGHT))) if((input_st & (1 << RETRO_DEVICE_ID_JOYPAD_LEFT)) || (input_st & (1 << RETRO_DEVICE_ID_JOYPAD_RIGHT)))
{ {
g_console.default_sram_dir_enable = !g_console.default_sram_dir_enable; g_console.default_sram_dir_enable = !g_console.default_sram_dir_enable;
menu_stack_refresh(items_generalsettings, menuStackindex); menu_stack_refresh(items, menuStackindex);
} }
if(input_st & (1 << RETRO_DEVICE_ID_JOYPAD_START)) if(input_st & (1 << RETRO_DEVICE_ID_JOYPAD_START))
{ {
g_console.default_sram_dir_enable = true; g_console.default_sram_dir_enable = true;
menu_stack_refresh(items_generalsettings, menuStackindex); menu_stack_refresh(items, menuStackindex);
} }
break; break;
case SETTING_ENABLE_STATE_PATH: case SETTING_ENABLE_STATE_PATH:
if((input_st & (1 << RETRO_DEVICE_ID_JOYPAD_LEFT)) || (input_st & (1 << RETRO_DEVICE_ID_JOYPAD_RIGHT))) if((input_st & (1 << RETRO_DEVICE_ID_JOYPAD_LEFT)) || (input_st & (1 << RETRO_DEVICE_ID_JOYPAD_RIGHT)))
{ {
g_console.default_savestate_dir_enable = !g_console.default_savestate_dir_enable; g_console.default_savestate_dir_enable = !g_console.default_savestate_dir_enable;
menu_stack_refresh(items_generalsettings, menuStackindex); menu_stack_refresh(items, menuStackindex);
} }
if(input_st & (1 << RETRO_DEVICE_ID_JOYPAD_START)) if(input_st & (1 << RETRO_DEVICE_ID_JOYPAD_START))
{ {
g_console.default_savestate_dir_enable = true; g_console.default_savestate_dir_enable = true;
menu_stack_refresh(items_generalsettings, menuStackindex); menu_stack_refresh(items, menuStackindex);
} }
break; break;
case SETTING_PATH_DEFAULT_ALL: case SETTING_PATH_DEFAULT_ALL:
@ -1495,31 +1495,31 @@ static void producesettingentry(menu * menu_obj, unsigned switchvalue)
strlcpy(g_settings.cheat_database, default_paths.port_dir, sizeof(g_settings.cheat_database)); strlcpy(g_settings.cheat_database, default_paths.port_dir, sizeof(g_settings.cheat_database));
strlcpy(g_console.default_sram_dir, "", sizeof(g_console.default_sram_dir)); strlcpy(g_console.default_sram_dir, "", sizeof(g_console.default_sram_dir));
menu_stack_refresh(items_generalsettings, menuStackindex); menu_stack_refresh(items, menuStackindex);
} }
break; break;
case SETTING_CONTROLS_SCHEME: case SETTING_CONTROLS_SCHEME:
if((input_st & (1 << RETRO_DEVICE_ID_JOYPAD_LEFT)) || (input_st & (1 << RETRO_DEVICE_ID_JOYPAD_RIGHT)) || (input_st & (1 << RETRO_DEVICE_ID_JOYPAD_B)) || (input_st & (1 << RETRO_DEVICE_ID_JOYPAD_START))) if((input_st & (1 << RETRO_DEVICE_ID_JOYPAD_LEFT)) || (input_st & (1 << RETRO_DEVICE_ID_JOYPAD_RIGHT)) || (input_st & (1 << RETRO_DEVICE_ID_JOYPAD_B)) || (input_st & (1 << RETRO_DEVICE_ID_JOYPAD_START)))
{ {
menu_stack_increment(); menu_stack_increment();
menu_stack_push(menuStackindex, INPUT_PRESET_CHOICE); menu_stack_push(menuStackindex, items, INPUT_PRESET_CHOICE);
} }
if(input_st & (1 << RETRO_DEVICE_ID_JOYPAD_START)) if(input_st & (1 << RETRO_DEVICE_ID_JOYPAD_START))
menu_stack_refresh(items_generalsettings, menuStackindex); menu_stack_refresh(items, menuStackindex);
break; break;
case SETTING_CONTROLS_NUMBER: case SETTING_CONTROLS_NUMBER:
if(input_st & (1 << RETRO_DEVICE_ID_JOYPAD_LEFT)) if(input_st & (1 << RETRO_DEVICE_ID_JOYPAD_LEFT))
{ {
if(currently_selected_controller_menu != 0) if(currently_selected_controller_menu != 0)
currently_selected_controller_menu--; currently_selected_controller_menu--;
menu_stack_refresh(items_generalsettings, menuStackindex); menu_stack_refresh(items, menuStackindex);
} }
if((input_st & (1 << RETRO_DEVICE_ID_JOYPAD_RIGHT)) || (input_st & (1 << RETRO_DEVICE_ID_JOYPAD_B))) if((input_st & (1 << RETRO_DEVICE_ID_JOYPAD_RIGHT)) || (input_st & (1 << RETRO_DEVICE_ID_JOYPAD_B)))
{ {
if(currently_selected_controller_menu < 6) if(currently_selected_controller_menu < 6)
currently_selected_controller_menu++; currently_selected_controller_menu++;
menu_stack_refresh(items_generalsettings, menuStackindex); menu_stack_refresh(items, menuStackindex);
} }
if(input_st & (1 << RETRO_DEVICE_ID_JOYPAD_START)) if(input_st & (1 << RETRO_DEVICE_ID_JOYPAD_START))
@ -1581,15 +1581,15 @@ static void producesettingentry(menu * menu_obj, unsigned switchvalue)
if((input_st & (1 << RETRO_DEVICE_ID_JOYPAD_LEFT)) || (input_st & (1 << RETRO_DEVICE_ID_JOYPAD_RIGHT)) || (input_st & (1 << RETRO_DEVICE_ID_JOYPAD_B)) || (input_st & (1 << RETRO_DEVICE_ID_JOYPAD_START))) if((input_st & (1 << RETRO_DEVICE_ID_JOYPAD_LEFT)) || (input_st & (1 << RETRO_DEVICE_ID_JOYPAD_RIGHT)) || (input_st & (1 << RETRO_DEVICE_ID_JOYPAD_B)) || (input_st & (1 << RETRO_DEVICE_ID_JOYPAD_START)))
{ {
rarch_input_set_default_keybinds(currently_selected_controller_menu); rarch_input_set_default_keybinds(currently_selected_controller_menu);
menu_stack_refresh(items_generalsettings, menuStackindex); menu_stack_refresh(items, menuStackindex);
} }
break; break;
} }
set_setting_label(menu_obj, switchvalue); set_setting_label(menu_obj, items, switchvalue);
} }
static void settings_iterate(menu * menu_obj, settings_action_t action) static void settings_iterate(menu * menu_obj, item *items, settings_action_t action)
{ {
switch(action) switch(action)
{ {
@ -1599,8 +1599,8 @@ static void settings_iterate(menu * menu_obj, settings_action_t action)
if (menu_obj->selected >= menu_obj->max_settings) if (menu_obj->selected >= menu_obj->max_settings)
menu_obj->selected = menu_obj->first_setting; menu_obj->selected = menu_obj->first_setting;
if (items_generalsettings[menu_obj->selected].page != menu_obj->page) if (items[menu_obj->selected].page != menu_obj->page)
menu_obj->page = items_generalsettings[menu_obj->selected].page; menu_obj->page = items[menu_obj->selected].page;
break; break;
case SETTINGS_ACTION_UP: case SETTINGS_ACTION_UP:
if (menu_obj->selected == menu_obj->first_setting) if (menu_obj->selected == menu_obj->first_setting)
@ -1608,8 +1608,8 @@ static void settings_iterate(menu * menu_obj, settings_action_t action)
else else
menu_obj->selected--; menu_obj->selected--;
if (items_generalsettings[menu_obj->selected].page != menu_obj->page) if (items[menu_obj->selected].page != menu_obj->page)
menu_obj->page = items_generalsettings[menu_obj->selected].page; menu_obj->page = items[menu_obj->selected].page;
break; break;
case SETTINGS_ACTION_TAB_PREVIOUS: case SETTINGS_ACTION_TAB_PREVIOUS:
menu_stack_decrement(); menu_stack_decrement();
@ -1624,7 +1624,7 @@ static void settings_iterate(menu * menu_obj, settings_action_t action)
case EMU_AUDIO_MENU: case EMU_AUDIO_MENU:
case PATH_MENU: case PATH_MENU:
menu_stack_increment(); menu_stack_increment();
menu_stack_push(menuStackindex, menu_obj->enum_id+1); menu_stack_push(menuStackindex, items, menu_obj->enum_id+1);
break; break;
case CONTROLS_MENU: case CONTROLS_MENU:
default: default:
@ -1636,7 +1636,7 @@ static void settings_iterate(menu * menu_obj, settings_action_t action)
} }
} }
static void select_setting(void) static void select_setting(item *items)
{ {
unsigned i; unsigned i;
gl_t * gl = driver.video_data; gl_t * gl = driver.video_data;
@ -1655,9 +1655,9 @@ static void select_setting(void)
action = SETTINGS_ACTION_UP; action = SETTINGS_ACTION_UP;
if(action != SETTINGS_ACTION_NOOP) if(action != SETTINGS_ACTION_NOOP)
settings_iterate(menu_obj, action); settings_iterate(menu_obj, items, action);
producesettingentry(menu_obj, menu_obj->selected); producesettingentry(menu_obj, items, menu_obj->selected);
display_menubar(); display_menubar();
gl_render_msg_post(gl); gl_render_msg_post(gl);
@ -1665,22 +1665,22 @@ static void select_setting(void)
for (i = menu_obj->first_setting; i < menu_obj->max_settings; i++) for (i = menu_obj->first_setting; i < menu_obj->max_settings; i++)
{ {
if(items_generalsettings[i].page == menu_obj->page) if(items[i].page == menu_obj->page)
{ {
cellDbgFontPuts(items_generalsettings[i].text_xpos, items_generalsettings[i].text_ypos, FONT_SIZE, menu_obj->selected == items_generalsettings[i].enum_id ? YELLOW : items_generalsettings[i].item_color, items_generalsettings[i].text); cellDbgFontPuts(items[i].text_xpos, items[i].text_ypos, FONT_SIZE, menu_obj->selected == items[i].enum_id ? YELLOW : items[i].item_color, items[i].text);
cellDbgFontPuts(0.5f, items_generalsettings[i].text_ypos, FONT_SIZE, items_generalsettings[i].text_color, items_generalsettings[i].setting_text); cellDbgFontPuts(0.5f, items[i].text_ypos, FONT_SIZE, items[i].text_color, items[i].setting_text);
gl_render_msg_post(gl); gl_render_msg_post(gl);
} }
} }
cellDbgFontPuts(0.09f, items_generalsettings[menu_obj->selected].comment_ypos, 0.86f, LIGHTBLUE, items_generalsettings[menu_obj->selected].comment); cellDbgFontPuts(0.09f, COMMENT_YPOS, 0.86f, LIGHTBLUE, items[menu_obj->selected].comment);
cellDbgFontPuts(0.09f, 0.91f, FONT_SIZE, YELLOW, "UP/DOWN - select L3+R3 - resume game X/LEFT/RIGHT - change"); cellDbgFontPuts(0.09f, 0.91f, FONT_SIZE, YELLOW, "UP/DOWN - select L3+R3 - resume game X/LEFT/RIGHT - change");
cellDbgFontPuts(0.09f, 0.95f, FONT_SIZE, YELLOW, "START - default L1/CIRCLE - go back R1 - go forward"); cellDbgFontPuts(0.09f, 0.95f, FONT_SIZE, YELLOW, "START - default L1/CIRCLE - go back R1 - go forward");
gl_render_msg_post(gl); gl_render_msg_post(gl);
} }
static void menu_romselect_iterate(filebrowser_t *filebrowser, menu_romselect_action_t action) static void menu_romselect_iterate(filebrowser_t *filebrowser, item *items, menu_romselect_action_t action)
{ {
switch(action) switch(action)
{ {
@ -1692,14 +1692,14 @@ static void menu_romselect_iterate(filebrowser_t *filebrowser, menu_romselect_ac
break; break;
case MENU_ROMSELECT_ACTION_GOTO_SETTINGS: case MENU_ROMSELECT_ACTION_GOTO_SETTINGS:
menu_stack_increment(); menu_stack_increment();
menu_stack_push(menuStackindex, GENERAL_VIDEO_MENU); menu_stack_push(menuStackindex, items, GENERAL_VIDEO_MENU);
break; break;
default: default:
break; break;
} }
} }
static void select_rom(void) static void select_rom(item *items)
{ {
gl_t * gl = driver.video_data; gl_t * gl = driver.video_data;
@ -1713,7 +1713,7 @@ static void select_rom(void)
action = MENU_ROMSELECT_ACTION_OK; action = MENU_ROMSELECT_ACTION_OK;
if (action != MENU_ROMSELECT_ACTION_NOOP) if (action != MENU_ROMSELECT_ACTION_NOOP)
menu_romselect_iterate(&browser, action); menu_romselect_iterate(&browser, items, action);
bool is_dir = filebrowser_get_current_path_isdir(&browser); bool is_dir = filebrowser_get_current_path_isdir(&browser);
@ -1736,8 +1736,10 @@ static void select_rom(void)
} }
static void ingame_menu_resize(void) static void ingame_menu_resize(item *items)
{ {
(void)items;
gl_t * gl = driver.video_data; gl_t * gl = driver.video_data;
float x_position = 0.09f; float x_position = 0.09f;
@ -1842,8 +1844,10 @@ static void ingame_menu_resize(void)
} }
} }
static void ingame_menu_screenshot(void) static void ingame_menu_screenshot(item *items)
{ {
(void)items;
gl_t * gl = driver.video_data; gl_t * gl = driver.video_data;
if(g_console.ingame_menu_enable) if(g_console.ingame_menu_enable)
@ -1856,7 +1860,7 @@ static void ingame_menu_screenshot(void)
} }
} }
static void ingame_menu(void) static void ingame_menu(item *items)
{ {
char comment[256]; char comment[256];
static unsigned menuitem_colors[MENU_ITEM_LAST]; static unsigned menuitem_colors[MENU_ITEM_LAST];
@ -1905,11 +1909,11 @@ static void ingame_menu(void)
strlcpy(comment, "Press LEFT or RIGHT to change the current save state slot.\nPress CROSS to save the state to the currently selected save state slot.", sizeof(comment)); strlcpy(comment, "Press LEFT or RIGHT to change the current save state slot.\nPress CROSS to save the state to the currently selected save state slot.", sizeof(comment));
break; break;
case MENU_ITEM_KEEP_ASPECT_RATIO: case MENU_ITEM_KEEP_ASPECT_RATIO:
producesettingentry(menu_obj, SETTING_KEEP_ASPECT_RATIO); producesettingentry(menu_obj, items, SETTING_KEEP_ASPECT_RATIO);
strlcpy(comment, "Press LEFT or RIGHT to change the [Aspect Ratio].\nPress START to reset back to default values.", sizeof(comment)); strlcpy(comment, "Press LEFT or RIGHT to change the [Aspect Ratio].\nPress START to reset back to default values.", sizeof(comment));
break; break;
case MENU_ITEM_OVERSCAN_AMOUNT: case MENU_ITEM_OVERSCAN_AMOUNT:
producesettingentry(menu_obj, SETTING_HW_OVERSCAN_AMOUNT); producesettingentry(menu_obj, items, SETTING_HW_OVERSCAN_AMOUNT);
strlcpy(comment, "Press LEFT or RIGHT to change the [Overscan] settings.\nPress START to reset back to default values.", sizeof(comment)); strlcpy(comment, "Press LEFT or RIGHT to change the [Overscan] settings.\nPress START to reset back to default values.", sizeof(comment));
break; break;
case MENU_ITEM_ORIENTATION: case MENU_ITEM_ORIENTATION:
@ -1933,7 +1937,7 @@ static void ingame_menu(void)
strlcpy(comment, "Press LEFT or RIGHT to change the [Orientation] settings.\nPress START to reset back to default values.", sizeof(comment)); strlcpy(comment, "Press LEFT or RIGHT to change the [Orientation] settings.\nPress START to reset back to default values.", sizeof(comment));
break; break;
case MENU_ITEM_SCALE_FACTOR: case MENU_ITEM_SCALE_FACTOR:
producesettingentry(menu_obj, SETTING_SCALE_FACTOR); producesettingentry(menu_obj, items, SETTING_SCALE_FACTOR);
strlcpy(comment, "Press LEFT or RIGHT to change the [Scaling] settings.\nPress START to reset back to default values.", sizeof(comment)); strlcpy(comment, "Press LEFT or RIGHT to change the [Scaling] settings.\nPress START to reset back to default values.", sizeof(comment));
break; break;
case MENU_ITEM_FRAME_ADVANCE: case MENU_ITEM_FRAME_ADVANCE:
@ -1948,7 +1952,7 @@ static void ingame_menu(void)
if(input_st & (1 << RETRO_DEVICE_ID_JOYPAD_B)) if(input_st & (1 << RETRO_DEVICE_ID_JOYPAD_B))
{ {
menu_stack_increment(); menu_stack_increment();
menu_stack_push(menuStackindex, INGAME_MENU_RESIZE); menu_stack_push(menuStackindex, items, INGAME_MENU_RESIZE);
} }
strlcpy(comment, "Allows you to resize the screen by moving around the two analog sticks.\nPress TRIANGLE to reset to default values, and CIRCLE to go back.", sizeof(comment)); strlcpy(comment, "Allows you to resize the screen by moving around the two analog sticks.\nPress TRIANGLE to reset to default values, and CIRCLE to go back.", sizeof(comment));
break; break;
@ -1956,7 +1960,7 @@ static void ingame_menu(void)
if(input_st & (1 << RETRO_DEVICE_ID_JOYPAD_B)) if(input_st & (1 << RETRO_DEVICE_ID_JOYPAD_B))
{ {
menu_stack_increment(); menu_stack_increment();
menu_stack_push(menuStackindex, INGAME_MENU_SCREENSHOT); menu_stack_push(menuStackindex, items, INGAME_MENU_SCREENSHOT);
} }
strlcpy(comment, "Allows you to take a screenshot without any text clutter.\nPress CIRCLE to go back to the in-game menu while in 'Screenshot Mode'.", sizeof(comment)); strlcpy(comment, "Allows you to take a screenshot without any text clutter.\nPress CIRCLE to go back to the in-game menu while in 'Screenshot Mode'.", sizeof(comment));
break; break;
@ -1985,7 +1989,7 @@ static void ingame_menu(void)
if(input_st & (1 << RETRO_DEVICE_ID_JOYPAD_B)) if(input_st & (1 << RETRO_DEVICE_ID_JOYPAD_B))
{ {
menu_stack_increment(); menu_stack_increment();
menu_stack_push(menuStackindex, LIBRETRO_CHOICE); menu_stack_push(menuStackindex, items, LIBRETRO_CHOICE);
set_libretro_core_as_launch = true; set_libretro_core_as_launch = true;
} }
strlcpy(comment, "Press 'CROSS' to choose a different emulator core.", sizeof(comment)); strlcpy(comment, "Press 'CROSS' to choose a different emulator core.", sizeof(comment));
@ -2104,7 +2108,7 @@ void menu_init (void)
const char *id = info.library_name ? info.library_name : "Unknown"; const char *id = info.library_name ? info.library_name : "Unknown";
snprintf(core_text, sizeof(core_text), "Libretro core: %s %s", id, info.library_version); snprintf(core_text, sizeof(core_text), "Libretro core: %s %s", id, info.library_version);
menu_stack_push(0, FILE_BROWSER_MENU); menu_stack_push(0, menu_items, FILE_BROWSER_MENU);
filebrowser_set_root(&tmpBrowser, "/"); filebrowser_set_root(&tmpBrowser, "/");
} }
@ -2124,7 +2128,7 @@ void menu_loop(void)
if(g_console.ingame_menu_enable) if(g_console.ingame_menu_enable)
{ {
menu_stack_increment(); menu_stack_increment();
menu_stack_push(menuStackindex, INGAME_MENU); menu_stack_push(menuStackindex, menu_items, INGAME_MENU);
} }
do do
@ -2177,7 +2181,7 @@ void menu_loop(void)
switch(menu_id) switch(menu_id)
{ {
case FILE_BROWSER_MENU: case FILE_BROWSER_MENU:
select_rom(); select_rom(menu_items);
fb = &browser; fb = &browser;
break; break;
case GENERAL_VIDEO_MENU: case GENERAL_VIDEO_MENU:
@ -2187,32 +2191,32 @@ void menu_loop(void)
case EMU_AUDIO_MENU: case EMU_AUDIO_MENU:
case PATH_MENU: case PATH_MENU:
case CONTROLS_MENU: case CONTROLS_MENU:
select_setting(); select_setting(menu_items);
break; break;
case SHADER_CHOICE: case SHADER_CHOICE:
case PRESET_CHOICE: case PRESET_CHOICE:
case BORDER_CHOICE: case BORDER_CHOICE:
case LIBRETRO_CHOICE: case LIBRETRO_CHOICE:
case INPUT_PRESET_CHOICE: case INPUT_PRESET_CHOICE:
select_file(); select_file(menu_items);
fb = &tmpBrowser; fb = &tmpBrowser;
break; break;
case PATH_SAVESTATES_DIR_CHOICE: case PATH_SAVESTATES_DIR_CHOICE:
case PATH_DEFAULT_ROM_DIR_CHOICE: case PATH_DEFAULT_ROM_DIR_CHOICE:
case PATH_CHEATS_DIR_CHOICE: case PATH_CHEATS_DIR_CHOICE:
case PATH_SRAM_DIR_CHOICE: case PATH_SRAM_DIR_CHOICE:
select_directory(); select_directory(menu_items);
fb = &tmpBrowser; fb = &tmpBrowser;
break; break;
case INGAME_MENU: case INGAME_MENU:
if(g_console.ingame_menu_enable) if(g_console.ingame_menu_enable)
ingame_menu(); ingame_menu(menu_items);
break; break;
case INGAME_MENU_RESIZE: case INGAME_MENU_RESIZE:
ingame_menu_resize(); ingame_menu_resize(menu_items);
break; break;
case INGAME_MENU_SCREENSHOT: case INGAME_MENU_SCREENSHOT:
ingame_menu_screenshot(); ingame_menu_screenshot(menu_items);
break; break;
} }

View File

@ -18,18 +18,18 @@
#define MENU_H_ #define MENU_H_
#define FONT_SIZE (g_console.menu_font_size) #define FONT_SIZE (g_console.menu_font_size)
#define COMMENT_YPOS 0.83f
typedef struct typedef struct
{ {
unsigned char enum_id; /* enum ID of item */ unsigned char enum_id; /* enum ID of item */
char text[256]; /* item label */ char text[128]; /* item label */
char setting_text[256]; /* setting label */ char setting_text[256]; /* setting label */
float text_xpos; /* text X position (upper left corner) */ float text_xpos; /* text X position (upper left corner) */
float text_ypos; /* text Y position (upper left corner) */ float text_ypos; /* text Y position (upper left corner) */
unsigned text_color; /* text color */ unsigned text_color; /* text color */
char comment[256]; /* item comment */ char comment[256]; /* item comment */
unsigned item_color; /* color of item */ unsigned item_color; /* color of item */
float comment_ypos; /* comment Y position (upper left corner) */
unsigned char page; /* page */ unsigned char page; /* page */
} item; } item;