Exemple #1
0
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();
    }
}
Exemple #2
0
// Private function used for simple submenus
void subMenuGenericUpdateFunc() {
    if (keyJustPressed(KEY_A) || keyJustPressed(KEY_B))
        closeSubMenu();
}
Exemple #3
0
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);
}