示例#1
0
void controlsCheckConfig() {
    if (keyConfigs.empty())
        keyConfigs.push_back(defaultKeyConfig);
    if (selectedKeyConfig >= keyConfigs.size())
        selectedKeyConfig = 0;
    loadKeyConfig();
}
示例#2
0
/**
 * Gére les messages recu par le module
 *
 * @param msg           Message recu
 */
void EventsEngine::processMessage(module_message& msg)
{
    switch(msg.codeAction) {
        case ACTION_RELOAD_CONFIG_KEYS:
            loadKeyConfig();
            cout << "Reloading config keys" << endl;
            break;
        default: break;


    }
    /// \todo gérer les events, mais y'en aura surement pas ...
}
示例#3
0
/**
 * Constructeur du module de gestin des evenements.
 *
 * @param core          Reference vers le Core du programme
 * @param gameEngine    Reference vers le gameEngine
 * @param guiEngine     Reference vers la guiEngine
 */
EventsEngine::EventsEngine(Core* core, GameEngine* gameEngine, GUIEngine* guiEngine) :
    Module(EVENTS, "Events", core),
    irrEventLogger("Irrlicht", true)
{
    this->gameEngine = gameEngine;
    this->guiEngine = guiEngine;

    l_keyState = new bool[255];
    for(int i=0; i<255; i++)
        l_keyState[i] = false;

    loadKeyConfig();
}
示例#4
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);
}