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.
This commit is contained in:
Edênis Freindorfer Azevedo 2019-09-06 14:09:59 -03:00 committed by Rafael Kitover
parent c0f96425e6
commit d8c981fb42
1 changed files with 84 additions and 15 deletions

View File

@ -1839,61 +1839,100 @@ EVT_HANDLER(CheatsEnable, "Enable cheats (toggle)")
// Debug menu // Debug menu
EVT_HANDLER_MASK(VideoLayersBG0, "Video layer BG0 (toggle)", CMDEN_GB | CMDEN_GBA) 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; layerEnable = DISPCNT & layerSettings;
CPUUpdateRenderBuffers(false); CPUUpdateRenderBuffers(false);
} }
EVT_HANDLER_MASK(VideoLayersBG1, "Video layer BG1 (toggle)", CMDEN_GB | CMDEN_GBA) 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; layerEnable = DISPCNT & layerSettings;
CPUUpdateRenderBuffers(false); CPUUpdateRenderBuffers(false);
} }
EVT_HANDLER_MASK(VideoLayersBG2, "Video layer BG2 (toggle)", CMDEN_GB | CMDEN_GBA) 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; layerEnable = DISPCNT & layerSettings;
CPUUpdateRenderBuffers(false); CPUUpdateRenderBuffers(false);
} }
EVT_HANDLER_MASK(VideoLayersBG3, "Video layer BG3 (toggle)", CMDEN_GB | CMDEN_GBA) 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; layerEnable = DISPCNT & layerSettings;
CPUUpdateRenderBuffers(false); CPUUpdateRenderBuffers(false);
} }
EVT_HANDLER_MASK(VideoLayersOBJ, "Video layer OBJ (toggle)", CMDEN_GB | CMDEN_GBA) 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; layerEnable = DISPCNT & layerSettings;
CPUUpdateRenderBuffers(false); CPUUpdateRenderBuffers(false);
} }
EVT_HANDLER_MASK(VideoLayersWIN0, "Video layer WIN0 (toggle)", CMDEN_GB | CMDEN_GBA) 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; layerEnable = DISPCNT & layerSettings;
CPUUpdateRenderBuffers(false); CPUUpdateRenderBuffers(false);
} }
EVT_HANDLER_MASK(VideoLayersWIN1, "Video layer WIN1 (toggle)", CMDEN_GB | CMDEN_GBA) 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; layerEnable = DISPCNT & layerSettings;
CPUUpdateRenderBuffers(false); CPUUpdateRenderBuffers(false);
} }
EVT_HANDLER_MASK(VideoLayersOBJWIN, "Video layer OBJWIN (toggle)", CMDEN_GB | CMDEN_GBA) 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; layerEnable = DISPCNT & layerSettings;
CPUUpdateRenderBuffers(false); CPUUpdateRenderBuffers(false);
} }
// not in menu
EVT_HANDLER_MASK(VideoLayersReset, "Show all video layers", CMDEN_GB | CMDEN_GBA) EVT_HANDLER_MASK(VideoLayersReset, "Show all video layers", CMDEN_GB | CMDEN_GBA)
{ {
#define set_vl(s) \ #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) 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); soundSetEnable(gopts.sound_en);
update_opts(); update_opts();
} }
EVT_HANDLER_MASK(SoundChannel2, "Sound Channel 2 (toggle)", CMDEN_GB | CMDEN_GBA) 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); soundSetEnable(gopts.sound_en);
update_opts(); update_opts();
} }
EVT_HANDLER_MASK(SoundChannel3, "Sound Channel 3 (toggle)", CMDEN_GB | CMDEN_GBA) 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); soundSetEnable(gopts.sound_en);
update_opts(); update_opts();
} }
EVT_HANDLER_MASK(SoundChannel4, "Sound Channel 4 (toggle)", CMDEN_GB | CMDEN_GBA) 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); soundSetEnable(gopts.sound_en);
update_opts(); update_opts();
} }
EVT_HANDLER_MASK(DirectSoundA, "Direct Sound A (toggle)", CMDEN_GBA) 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); soundSetEnable(gopts.sound_en);
update_opts(); update_opts();
} }
EVT_HANDLER_MASK(DirectSoundB, "Direct Sound B (toggle)", CMDEN_GBA) 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); soundSetEnable(gopts.sound_en);
update_opts(); update_opts();
} }