void updateCheatMenu() { bool redraw = false; int numCheats = cheatEngine->getNumCheats(); if(cheatMenuSelection >= numCheats) { cheatMenuSelection = 0; } UIKey key; while((key = uiReadKey()) != UI_KEY_NONE) { if(key == UI_KEY_UP) { if(cheatMenuSelection > 0) { cheatMenuSelection--; redraw = true; } } else if(key == UI_KEY_DOWN) { if(cheatMenuSelection < numCheats - 1) { cheatMenuSelection++; redraw = true; } } else if(key == UI_KEY_RIGHT || key == UI_KEY_LEFT) { cheatEngine->toggleCheat(cheatMenuSelection, !cheatEngine->isCheatEnabled(cheatMenuSelection)); redraw = true; } else if(key == UI_KEY_R) { cheatMenuSelection += cheatsPerPage; if(cheatMenuSelection >= numCheats) { cheatMenuSelection = 0; } redraw = true; } else if(key == UI_KEY_L) { cheatMenuSelection -= cheatsPerPage; if(cheatMenuSelection < 0) { cheatMenuSelection = numCheats - 1; } redraw = true; } else if(key == UI_KEY_B) { closeSubMenu(); if(!cheatMenuGameboyWasPaused) { mgrUnpause(); } return; } } if(redraw) { redrawCheatMenu(); } }
// Private function used for simple submenus void subMenuGenericUpdateFunc() { if (keyJustPressed(KEY_A) || keyJustPressed(KEY_B)) closeSubMenu(); }
void updateKeyConfigChooser() { bool redraw = false; int& option = keyConfigChooser_option; KeyConfig* config = &keyConfigs[selectedKeyConfig]; if (keyJustPressed(KEY_B)) { loadKeyConfig(); closeSubMenu(); } else if (keyJustPressed(KEY_X)) { keyConfigs.push_back(KeyConfig(*config)); selectedKeyConfig = keyConfigs.size()-1; char name[32]; sprintf(name, "Custom %d", keyConfigs.size()-1); strcpy(keyConfigs.back().name, name); option = -1; redraw = true; } else if (keyJustPressed(KEY_Y)) { if (selectedKeyConfig != 0) /* can't erase the default */ { keyConfigs.erase(keyConfigs.begin() + selectedKeyConfig); if (selectedKeyConfig >= keyConfigs.size()) selectedKeyConfig = keyConfigs.size() - 1; redraw = true; } } else if (keyPressedAutoRepeat(KEY_DOWN)) { if (option == NUM_BINDABLE_BUTTONS-1) option = -1; #if defined(_3DS) else if(option == 11) //Skip nonexistant keys option = 14; else if(option == 15) option = 24; #endif else option++; redraw = true; } else if (keyPressedAutoRepeat(KEY_UP)) { if (option == -1) option = NUM_BINDABLE_BUTTONS-1; #if defined(_3DS) else if(option == 14) //Skip nonexistant keys option = 11; else if(option == 24) option = 15; #endif else option--; redraw = true; } else if (keyPressedAutoRepeat(KEY_LEFT)) { if (option == -1) { if (selectedKeyConfig == 0) selectedKeyConfig = keyConfigs.size()-1; else selectedKeyConfig--; } else { config->funcKeys[option]--; if (config->funcKeys[option] < 0) config->funcKeys[option] = NUM_FUNC_KEYS-1; } redraw = true; } else if (keyPressedAutoRepeat(KEY_RIGHT)) { if (option == -1) { selectedKeyConfig++; if (selectedKeyConfig >= keyConfigs.size()) selectedKeyConfig = 0; } else { config->funcKeys[option]++; if (config->funcKeys[option] >= NUM_FUNC_KEYS) config->funcKeys[option] = 0; } redraw = true; } if (redraw) doAtVBlank(redrawKeyConfigChooser); }