void GameWorld::bindKeys() { bindKey(MoveForward, Qt::Key_W); bindKey(MoveBackward, Qt::Key_S); bindKey(MoveLeft, Qt::Key_A); bindKey(MoveRight, Qt::Key_D); bindKey(Hold, Qt::LeftButton); bindKey(Sprint, Qt::Key_Shift); bindKey(Jump, Qt::Key_Space); bindKey(Exit, Qt::Key_Backspace); }
void InputService::onEnable() { bindings.clear(); bindKey(KEY_UP, sf::Keyboard::W); bindKey(KEY_LEFT, sf::Keyboard::A); bindKey(KEY_DOWN, sf::Keyboard::S); bindKey(KEY_RIGHT, sf::Keyboard::D); bindKey(KEY_YIELD_CONTROL, sf::Keyboard::Tab); bindKey(KEY_SPRINT, sf::Keyboard::Space); bindKey(KEY_EXIT, sf::Keyboard::Escape); // todo load from config // check all keys have been registered if (bindings.left.size() != KEY_UNKNOWN) { Logger::logError(format("Expected %1% key bindings, received %2% instead", _str(KEY_UNKNOWN), _str(bindings.left.size()))); error("Invalid number of key bindings"); } // listen to input events auto events = Locator::locate<EventService>(); events->registerListener(this, EVENT_RAW_INPUT_KEY); events->registerListener(this, EVENT_RAW_INPUT_CLICK); }
// Bind an alternate key to a command. void QsciCommand::setAlternateKey(int altkey) { bindKey(altkey,qaltkey,scialtkey); }
// Bind a key to a command. void QsciCommand::setKey(int key) { bindKey(key,qkey,scikey); }
int Menu::update(sf::Vector2i mousePos) { if (isBinding) { bindKey(); } else { for(unsigned int i = 0; i < mainMenu.size(); ++i) { if(mainMenu[i]->update(mousePos)) { switch(i) { case 0: //single player for (unsigned int a = 0; a < mainMenu.size(); ++a) { mainMenu[a]->setVisible(false); } for (unsigned int a = 0; a < singleMenu.size(); ++a) { singleMenu[a]->setVisible(true); } break; case 1: //multi player return 5; break; case 2: //go to settings for (unsigned int a = 0; a < mainMenu.size(); ++a) { mainMenu[a]->setVisible(false); } for (unsigned int a = 0; a < settingsMenu.size(); ++a) { settingsMenu[a]->setVisible(true); } background.setTexture(&settingsBackgroundTexture); isBinding = false; break; case 3: //exit return 10; break; } } } for(unsigned int i = 0; i < settingsMenu.size(); ++i) { if (settingsMenu[i]->update(mousePos)) { switch(i) { case 0: //back for (unsigned int a = 0; a < mainMenu.size(); ++a) { mainMenu[a]->setVisible(true); } for (unsigned int a = 0; a < settingsMenu.size(); ++a) { settingsMenu[a]->setVisible(false); } updateTips(); background.setTexture(&mainBackgroundTexture); writeSettings(); break; case 1: //music down settings.musicVolume--; if (settings.musicVolume < 0) { settings.musicVolume = 0; } updateSettings(); break; case 2: //music up settings.musicVolume++; if (settings.musicVolume > 10) { settings.musicVolume = 10; } updateSettings(); break; case 3: //effects down settings.effectVolume--; if (settings.effectVolume < 0) { settings.effectVolume = 0; } updateSettings(); break; case 4: //effects up settings.effectVolume++; if (settings.effectVolume > 10) { settings.effectVolume = 10; } updateSettings(); break; case 5: //enable mouse settings.enableMouse = !settings.enableMouse; updateSettings(); break; case 6: //select after upgrade settings.selectAfterUpgrade = !settings.selectAfterUpgrade; updateSettings(); break; default: sprintf(bindMessage, "Press the escape key to exit.\n\nPress the new key for %s", hotkeyNames[i - 7]); isBinding = true; currentKey = i; updateSettings(); break; } } } for (unsigned int i = 0; i < singleMenu.size(); ++i) { if(singleMenu[i]->update(mousePos)) { switch(i) { case 0: //back button for (unsigned int a = 0; a < mainMenu.size(); ++a) { mainMenu[a]->setVisible(true); } for (unsigned int a = 0; a < singleMenu.size(); ++a) { singleMenu[a]->setVisible(false); } updateTips(); break; case 1: //mission 1 return 1; break; case 2: //mission 2 return 2; break; case 3: //mission 3 return 3; break; case 4: //mission 4 return 4; break; } } } } return 0; }
static void bindWhereClause(SQLiteStatement& query, int64_t id, IDBKey* key) { query.bindInt64(1, id); bindKey(query, 2, key); }