Allow use of keys to control view, and remap of mouse buttons

This commit is contained in:
Ciaran Gultnieks 2014-01-23 22:43:41 +00:00
parent 9bc206a2f0
commit dbb97e12a9
4 changed files with 31 additions and 11 deletions

View File

@ -34,7 +34,7 @@ Default Controls
- Shift: sneak/go down
- Q: drop item
- I: inventory
- Mouse: turn/look
- Mouse (or arrow keys): turn/look
- Mouse left: dig/punch
- Mouse right: place/use
- Mouse wheel: select item

View File

@ -35,6 +35,12 @@ void set_default_settings(Settings *settings)
settings->setDefault("keymap_right", "KEY_KEY_D");
settings->setDefault("keymap_jump", "KEY_SPACE");
settings->setDefault("keymap_sneak", "KEY_LSHIFT");
settings->setDefault("keymap_turnleft", "KEY_LEFT");
settings->setDefault("keymap_turnright", "KEY_RIGHT");
settings->setDefault("keymap_lookup", "KEY_UP");
settings->setDefault("keymap_lookdown", "KEY_DOWN");
settings->setDefault("keymap_lbutton", "KEY_LBUTTON");
settings->setDefault("keymap_rbutton", "KEY_RBUTTON");
settings->setDefault("keymap_drop", "KEY_KEY_Q");
settings->setDefault("keymap_inventory", "KEY_KEY_I");
settings->setDefault("keymap_special1", "KEY_KEY_E");

View File

@ -2131,15 +2131,15 @@ void the_game(
dy = -dy;
//infostream<<"window active, pos difference "<<dx<<","<<dy<<std::endl;
/*const float keyspeed = 500;
if(input->isKeyDown(irr::KEY_UP))
const float keyspeed = 500;
if(input->isKeyDown(getKeySetting("keymap_lookup")))
dy -= dtime * keyspeed;
if(input->isKeyDown(irr::KEY_DOWN))
if(input->isKeyDown(getKeySetting("keymap_lookdown")))
dy += dtime * keyspeed;
if(input->isKeyDown(irr::KEY_LEFT))
if(input->isKeyDown(getKeySetting("keymap_turnleft")))
dx -= dtime * keyspeed;
if(input->isKeyDown(irr::KEY_RIGHT))
dx += dtime * keyspeed;*/
if(input->isKeyDown(getKeySetting("keymap_turnright")))
dx += dtime * keyspeed;
float d = g_settings->getFloat("mouse_sensitivity");
d = rangelim(d, 0.01, 100.0);
@ -2186,8 +2186,8 @@ void the_game(
input->isKeyDown(getKeySetting("keymap_jump")),
input->isKeyDown(getKeySetting("keymap_special1")),
input->isKeyDown(getKeySetting("keymap_sneak")),
input->getLeftState(),
input->getRightState(),
input->isKeyDown(getKeySetting("keymap_lbutton")),
input->isKeyDown(getKeySetting("keymap_rbutton")),
camera_pitch,
camera_yaw
);
@ -2200,8 +2200,8 @@ void the_game(
16*(int)input->isKeyDown(getKeySetting("keymap_jump"))+
32*(int)input->isKeyDown(getKeySetting("keymap_special1"))+
64*(int)input->isKeyDown(getKeySetting("keymap_sneak"))+
128*(int)input->getLeftState()+
256*(int)input->getRightState();
128*(int)input->isKeyDown(getKeySetting("keymap_lbutton"))+
256*(int)input->isKeyDown(getKeySetting("keymap_lbutton"));
LocalPlayer* player = client.getEnv().getLocalPlayer();
player->keyPressed=keyPressed;
}

View File

@ -58,6 +58,14 @@ enum
// other
GUI_ID_CB_AUX1_DESCENDS,
GUI_ID_CB_DOUBLETAP_JUMP,
// mouse controls
GUI_ID_KEY_TURNLEFT_BUTTON,
GUI_ID_KEY_TURNRIGHT_BUTTON,
GUI_ID_KEY_LOOKUP_BUTTON,
GUI_ID_KEY_LOOKDOWN_BUTTON,
GUI_ID_KEY_LBUTTON_BUTTON,
GUI_ID_KEY_RBUTTON_BUTTON,
};
GUIKeyChangeMenu::GUIKeyChangeMenu(gui::IGUIEnvironment* env,
@ -403,4 +411,10 @@ void GUIKeyChangeMenu::init_keys()
this->add_key(GUI_ID_KEY_NOCLIP_BUTTON, wgettext("Toggle noclip"), "keymap_noclip");
this->add_key(GUI_ID_KEY_RANGE_BUTTON, wgettext("Range select"), "keymap_rangeselect");
this->add_key(GUI_ID_KEY_DUMP_BUTTON, wgettext("Print stacks"), "keymap_print_debug_stacks");
this->add_key(GUI_ID_KEY_TURNLEFT_BUTTON, wgettext("Turn left"), "keymap_turnleft");
this->add_key(GUI_ID_KEY_TURNRIGHT_BUTTON, wgettext("Turn right"), "keymap_turnright");
this->add_key(GUI_ID_KEY_LOOKUP_BUTTON, wgettext("Look up"), "keymap_lookup");
this->add_key(GUI_ID_KEY_LOOKDOWN_BUTTON, wgettext("Look down"), "keymap_lookdown");
this->add_key(GUI_ID_KEY_LBUTTON_BUTTON, wgettext("Left button"), "keymap_lbutton");
this->add_key(GUI_ID_KEY_RBUTTON_BUTTON, wgettext("Right button"), "keymap_rbutton");
}