key[KeyType::LEFT] = getKeySetting("keymap_left");
key[KeyType::RIGHT] = getKeySetting("keymap_right");
key[KeyType::JUMP] = getKeySetting("keymap_jump");
- key[KeyType::SPECIAL1] = getKeySetting("keymap_special1");
+ key[KeyType::AUX1] = getKeySetting("keymap_aux1");
key[KeyType::SNEAK] = getKeySetting("keymap_sneak");
key[KeyType::DIG] = getKeySetting("keymap_dig");
key[KeyType::PLACE] = getKeySetting("keymap_place");
key[KeyType::DEC_VOLUME] = getKeySetting("keymap_decrease_volume");
key[KeyType::CINEMATIC] = getKeySetting("keymap_cinematic");
key[KeyType::SCREENSHOT] = getKeySetting("keymap_screenshot");
+ key[KeyType::TOGGLE_BLOCK_BOUNDS] = getKeySetting("keymap_toggle_block_bounds");
key[KeyType::TOGGLE_HUD] = getKeySetting("keymap_toggle_hud");
key[KeyType::TOGGLE_CHAT] = getKeySetting("keymap_toggle_chat");
key[KeyType::TOGGLE_FOG] = getKeySetting("keymap_toggle_fog");
// Remember whether each key is down or up
if (event.EventType == irr::EET_KEY_INPUT_EVENT) {
const KeyPress &keyCode = event.KeyInput;
- if (keysListenedFor.count(keyCode)) {
- // If the key is being held down then the OS may
- // send a continuous stream of keydown events.
- // In this case, we don't want to let this
- // stream reach the application as it will cause
- // certain actions to repeat constantly.
+ if (keysListenedFor[keyCode]) {
if (event.KeyInput.PressedDown) {
- if (!IsKeyDown(keyCode)) {
- keyWasDown.insert(keyCode);
- keyWasPressed.insert(keyCode);
- }
- keyIsDown.insert(keyCode);
+ if (!IsKeyDown(keyCode))
+ keyWasPressed.set(keyCode);
+
+ keyIsDown.set(keyCode);
+ keyWasDown.set(keyCode);
} else {
if (IsKeyDown(keyCode))
- keyWasReleased.insert(keyCode);
+ keyWasReleased.set(keyCode);
- keyIsDown.erase(keyCode);
+ keyIsDown.unset(keyCode);
}
return true;
switch (event.MouseInput.Event) {
case EMIE_LMOUSE_PRESSED_DOWN:
key = "KEY_LBUTTON";
- keyIsDown.insert(key);
- keyWasDown.insert(key);
- keyWasPressed.insert(key);
+ keyIsDown.set(key);
+ keyWasDown.set(key);
+ keyWasPressed.set(key);
break;
case EMIE_MMOUSE_PRESSED_DOWN:
key = "KEY_MBUTTON";
- keyIsDown.insert(key);
- keyWasDown.insert(key);
- keyWasPressed.insert(key);
+ keyIsDown.set(key);
+ keyWasDown.set(key);
+ keyWasPressed.set(key);
break;
case EMIE_RMOUSE_PRESSED_DOWN:
key = "KEY_RBUTTON";
- keyIsDown.insert(key);
- keyWasDown.insert(key);
- keyWasPressed.insert(key);
+ keyIsDown.set(key);
+ keyWasDown.set(key);
+ keyWasPressed.set(key);
break;
case EMIE_LMOUSE_LEFT_UP:
key = "KEY_LBUTTON";
- keyIsDown.erase(key);
- keyWasReleased.insert(key);
+ keyIsDown.unset(key);
+ keyWasReleased.set(key);
break;
case EMIE_MMOUSE_LEFT_UP:
key = "KEY_MBUTTON";
- keyIsDown.erase(key);
- keyWasReleased.insert(key);
+ keyIsDown.unset(key);
+ keyWasReleased.set(key);
break;
case EMIE_RMOUSE_LEFT_UP:
key = "KEY_RBUTTON";
- keyIsDown.erase(key);
- keyWasReleased.insert(key);
+ keyIsDown.unset(key);
+ keyWasReleased.set(key);
break;
case EMIE_MOUSE_WHEEL:
mouse_wheel += event.MouseInput.Wheel;
{
static RandomInputHandlerSimData rnd_data[] = {
{ "keymap_jump", 0.0f, 40 },
- { "keymap_special1", 0.0f, 40 },
+ { "keymap_aux1", 0.0f, 40 },
{ "keymap_forward", 0.0f, 40 },
{ "keymap_left", 0.0f, 40 },
{ "keymap_dig", 0.0f, 30 },
i.counter -= dtime;
if (i.counter < 0.0) {
i.counter = 0.1 * Rand(1, i.time_max);
- KeyPress k = getKeySetting(i.key.c_str());
- if (keydown.count(k))
- keydown.erase(k);
- else
- keydown.insert(k);
+ keydown.toggle(getKeySetting(i.key.c_str()));
}
}
{