From d8c981fb42d20b0bc31266ac238a2925f9e72100 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ed=C3=AAnis=20Freindorfer=20Azevedo?= Date: Fri, 6 Sep 2019 14:09:59 -0300 Subject: [PATCH] Fix toggles for video/audio layer options on menu. We could not use key shortcuts for this, since it was only checking if the option was activated on menu. This only happens if you open the menu and click it, so the key shortcut does not work. --- src/wx/cmdevents.cpp | 99 +++++++++++++++++++++++++++++++++++++------- 1 file changed, 84 insertions(+), 15 deletions(-) diff --git a/src/wx/cmdevents.cpp b/src/wx/cmdevents.cpp index 2793ac5b..1014392f 100644 --- a/src/wx/cmdevents.cpp +++ b/src/wx/cmdevents.cpp @@ -1839,61 +1839,100 @@ EVT_HANDLER(CheatsEnable, "Enable cheats (toggle)") // Debug menu EVT_HANDLER_MASK(VideoLayersBG0, "Video layer BG0 (toggle)", CMDEN_GB | CMDEN_GBA) { - GetMenuOptionInt("VideoLayersBG0", layerSettings, (1 << 8)); + bool menuPress; + char keyName[] = "VideoLayersBG0"; + GetMenuOptionBool(keyName, menuPress); + toggleBitVar(&menuPress, &layerSettings, (1 << 8)); + SetMenuOption(keyName, menuPress ? 1 : 0); + GetMenuOptionInt(keyName, layerSettings, (1 << 8)); layerEnable = DISPCNT & layerSettings; CPUUpdateRenderBuffers(false); } EVT_HANDLER_MASK(VideoLayersBG1, "Video layer BG1 (toggle)", CMDEN_GB | CMDEN_GBA) { - GetMenuOptionInt("VideoLayersBG1", layerSettings, (1 << 9)); + bool menuPress; + char keyName[] = "VideoLayersBG1"; + GetMenuOptionBool(keyName, menuPress); + toggleBitVar(&menuPress, &layerSettings, (1 << 9)); + SetMenuOption(keyName, menuPress ? 1 : 0); + GetMenuOptionInt(keyName, layerSettings, (1 << 9)); layerEnable = DISPCNT & layerSettings; CPUUpdateRenderBuffers(false); } EVT_HANDLER_MASK(VideoLayersBG2, "Video layer BG2 (toggle)", CMDEN_GB | CMDEN_GBA) { - GetMenuOptionInt("VideoLayersBG2", layerSettings, (1 << 10)); + bool menuPress; + char keyName[] = "VideoLayersBG2"; + GetMenuOptionBool(keyName, menuPress); + toggleBitVar(&menuPress, &layerSettings, (1 << 10)); + SetMenuOption(keyName, menuPress ? 1 : 0); + GetMenuOptionInt(keyName, layerSettings, (1 << 10)); layerEnable = DISPCNT & layerSettings; CPUUpdateRenderBuffers(false); } EVT_HANDLER_MASK(VideoLayersBG3, "Video layer BG3 (toggle)", CMDEN_GB | CMDEN_GBA) { - GetMenuOptionInt("VideoLayersBG3", layerSettings, (1 << 11)); + bool menuPress; + char keyName[] = "VideoLayersBG3"; + GetMenuOptionBool(keyName, menuPress); + toggleBitVar(&menuPress, &layerSettings, (1 << 11)); + SetMenuOption(keyName, menuPress ? 1 : 0); + GetMenuOptionInt(keyName, layerSettings, (1 << 11)); layerEnable = DISPCNT & layerSettings; CPUUpdateRenderBuffers(false); } EVT_HANDLER_MASK(VideoLayersOBJ, "Video layer OBJ (toggle)", CMDEN_GB | CMDEN_GBA) { - GetMenuOptionInt("VideoLayersOBJ", layerSettings, (1 << 12)); + bool menuPress; + char keyName[] = "VideoLayersOBJ"; + GetMenuOptionBool(keyName, menuPress); + toggleBitVar(&menuPress, &layerSettings, (1 << 12)); + SetMenuOption(keyName, menuPress ? 1 : 0); + GetMenuOptionInt(keyName, layerSettings, (1 << 12)); layerEnable = DISPCNT & layerSettings; CPUUpdateRenderBuffers(false); } EVT_HANDLER_MASK(VideoLayersWIN0, "Video layer WIN0 (toggle)", CMDEN_GB | CMDEN_GBA) { - GetMenuOptionInt("VideoLayersWIN0", layerSettings, (1 << 13)); + bool menuPress; + char keyName[] = "VideoLayersWIN0"; + GetMenuOptionBool(keyName, menuPress); + toggleBitVar(&menuPress, &layerSettings, (1 << 13)); + SetMenuOption(keyName, menuPress ? 1 : 0); + GetMenuOptionInt(keyName, layerSettings, (1 << 13)); layerEnable = DISPCNT & layerSettings; CPUUpdateRenderBuffers(false); } EVT_HANDLER_MASK(VideoLayersWIN1, "Video layer WIN1 (toggle)", CMDEN_GB | CMDEN_GBA) { - GetMenuOptionInt("VideoLayersWIN1", layerSettings, (1 << 14)); + bool menuPress; + char keyName[] = "VideoLayersWIN1"; + GetMenuOptionBool(keyName, menuPress); + toggleBitVar(&menuPress, &layerSettings, (1 << 14)); + SetMenuOption(keyName, menuPress ? 1 : 0); + GetMenuOptionInt(keyName, layerSettings, (1 << 14)); layerEnable = DISPCNT & layerSettings; CPUUpdateRenderBuffers(false); } EVT_HANDLER_MASK(VideoLayersOBJWIN, "Video layer OBJWIN (toggle)", CMDEN_GB | CMDEN_GBA) { - GetMenuOptionInt("VideoLayersOBJWIN", layerSettings, (1 << 15)); + bool menuPress; + char keyName[] = "VideoLayersOBJWIN"; + GetMenuOptionBool(keyName, menuPress); + toggleBitVar(&menuPress, &layerSettings, (1 << 15)); + SetMenuOption(keyName, menuPress ? 1 : 0); + GetMenuOptionInt(keyName, layerSettings, (1 << 15)); layerEnable = DISPCNT & layerSettings; CPUUpdateRenderBuffers(false); } -// not in menu EVT_HANDLER_MASK(VideoLayersReset, "Show all video layers", CMDEN_GB | CMDEN_GBA) { #define set_vl(s) \ @@ -1920,42 +1959,72 @@ EVT_HANDLER_MASK(VideoLayersReset, "Show all video layers", CMDEN_GB | CMDEN_GBA EVT_HANDLER_MASK(SoundChannel1, "Sound Channel 1 (toggle)", CMDEN_GB | CMDEN_GBA) { - GetMenuOptionInt("SoundChannel1", gopts.sound_en, (1 << 0)); + bool menuPress; + char keyName[] = "SoundChannel1"; + GetMenuOptionBool(keyName, menuPress); + toggleBitVar(&menuPress, &gopts.sound_en, (1 << 0)); + SetMenuOption(keyName, menuPress ? 1 : 0); + GetMenuOptionInt(keyName, gopts.sound_en, (1 << 0)); soundSetEnable(gopts.sound_en); update_opts(); } EVT_HANDLER_MASK(SoundChannel2, "Sound Channel 2 (toggle)", CMDEN_GB | CMDEN_GBA) { - GetMenuOptionInt("SoundChannel2", gopts.sound_en, (1 << 1)); + bool menuPress; + char keyName[] = "SoundChannel2"; + GetMenuOptionBool(keyName, menuPress); + toggleBitVar(&menuPress, &gopts.sound_en, (1 << 1)); + SetMenuOption(keyName, menuPress ? 1 : 0); + GetMenuOptionInt(keyName, gopts.sound_en, (1 << 1)); soundSetEnable(gopts.sound_en); update_opts(); } EVT_HANDLER_MASK(SoundChannel3, "Sound Channel 3 (toggle)", CMDEN_GB | CMDEN_GBA) { - GetMenuOptionInt("SoundChannel3", gopts.sound_en, (1 << 2)); + bool menuPress; + char keyName[] = "SoundChannel3"; + GetMenuOptionBool(keyName, menuPress); + toggleBitVar(&menuPress, &gopts.sound_en, (1 << 2)); + SetMenuOption(keyName, menuPress ? 1 : 0); + GetMenuOptionInt(keyName, gopts.sound_en, (1 << 2)); soundSetEnable(gopts.sound_en); update_opts(); } EVT_HANDLER_MASK(SoundChannel4, "Sound Channel 4 (toggle)", CMDEN_GB | CMDEN_GBA) { - GetMenuOptionInt("SoundChannel4", gopts.sound_en, (1 << 3)); + bool menuPress; + char keyName[] = "SoundChannel4"; + GetMenuOptionBool(keyName, menuPress); + toggleBitVar(&menuPress, &gopts.sound_en, (1 << 3)); + SetMenuOption(keyName, menuPress ? 1 : 0); + GetMenuOptionInt(keyName, gopts.sound_en, (1 << 3)); soundSetEnable(gopts.sound_en); update_opts(); } EVT_HANDLER_MASK(DirectSoundA, "Direct Sound A (toggle)", CMDEN_GBA) { - GetMenuOptionInt("DirectSoundA", gopts.sound_en, (1 << 8)); + bool menuPress; + char keyName[] = "DirectSoundA"; + GetMenuOptionBool(keyName, menuPress); + toggleBitVar(&menuPress, &gopts.sound_en, (1 << 8)); + SetMenuOption(keyName, menuPress ? 1 : 0); + GetMenuOptionInt(keyName, gopts.sound_en, (1 << 8)); soundSetEnable(gopts.sound_en); update_opts(); } EVT_HANDLER_MASK(DirectSoundB, "Direct Sound B (toggle)", CMDEN_GBA) { - GetMenuOptionInt("DirectSoundB", gopts.sound_en, (1 << 9)); + bool menuPress; + char keyName[] = "DirectSoundB"; + GetMenuOptionBool(keyName, menuPress); + toggleBitVar(&menuPress, &gopts.sound_en, (1 << 9)); + SetMenuOption(keyName, menuPress ? 1 : 0); + GetMenuOptionInt(keyName, gopts.sound_en, (1 << 9)); soundSetEnable(gopts.sound_en); update_opts(); }