diff options
-rw-r--r-- | po/POTFILES.in | 1 | ||||
-rw-r--r-- | src/game.cpp | 110 | ||||
-rw-r--r-- | src/keyboardconfig.cpp | 112 | ||||
-rw-r--r-- | src/keyboardconfig.h | 9 |
4 files changed, 120 insertions, 112 deletions
diff --git a/po/POTFILES.in b/po/POTFILES.in index fa3b2f9f..a70d35d4 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -50,5 +50,6 @@ src/resources/monsterdb.cpp src/resources/npcdb.cpp src/being.cpp src/game.cpp +src/keyboardconfig.cpp src/main.cpp src/party.cpp diff --git a/src/game.cpp b/src/game.cpp index 43b3e986..3f6de6af 100644 --- a/src/game.cpp +++ b/src/game.cpp @@ -501,55 +501,6 @@ void Game::handleInput() keyboard.setNewKeyIndex(keyboard.KEY_NO_VALUE); return; } - // Keys pressed together with Alt/Meta - // Emotions and some internal gui windows -#ifndef __APPLE__ - if (event.key.keysym.mod & KMOD_LALT) -#else - if (event.key.keysym.mod & KMOD_LMETA) -#endif - { - switch (event.key.keysym.sym) - { - case SDLK_p: - // Screenshot (picture, hence the p) - saveScreenshot(); - used = true; - break; - - default: - break; - - case SDLK_f: - // Find path to mouse (debug purpose) - viewport->toggleDebugPath(); - used = true; - break; - - case SDLK_t: - // Toggle accepting of incoming trade requests - unsigned int deflt = player_relations.getDefault(); - if (deflt & PlayerRelation::TRADE) - { - chatWindow->chatLog( - _("Ignoring incoming trade requests"), - BY_SERVER); - deflt &= ~PlayerRelation::TRADE; - } - else - { - chatWindow->chatLog( - _("Accepting incoming trade requests"), - BY_SERVER); - deflt |= PlayerRelation::TRADE; - } - - player_relations.setDefault(deflt); - - used = true; - break; - } - } // Mode switch to emotes if (keyboard.isKeyActive(keyboard.KEY_EMOTE)) @@ -563,16 +514,18 @@ void Game::handleInput() return; } } - switch (event.key.keysym.sym) + + const int tKey = keyboard.getKeyIndex(event.key.keysym.sym); + switch (tKey) { - case SDLK_PAGEUP: + case KeyboardConfig::KEY_SCROLL_CHAT_UP: if (chatWindow->isVisible()) { chatWindow->scroll(-DEFAULT_CHAT_WINDOW_SCROLL); used = true; } break; - case SDLK_PAGEDOWN: + case KeyboardConfig::KEY_SCROLL_CHAT_DOWN: if (chatWindow->isVisible()) { chatWindow->scroll(DEFAULT_CHAT_WINDOW_SCROLL); @@ -580,7 +533,7 @@ void Game::handleInput() return; } break; - case SDLK_F1: + case KeyboardConfig::KEY_WINDOW_HELP: // In-game Help if (helpWindow->isVisible()) helpWindow->setVisible(false); @@ -592,7 +545,7 @@ void Game::handleInput() used = true; break; - case SDLK_RETURN: + case KeyboardConfig::KEY_TOGGLE_CHAT: // Input chat window if (chatWindow->isInputFocused() || deathNotice != NULL || @@ -610,8 +563,15 @@ void Game::handleInput() // Close the config window, cancelling changes if opened else if (setupWindow->isVisible()) setupWindow->action(gcn::ActionEvent(NULL, "cancel")); + else + { + chatWindow->requestChatFocus(); + used = true; + } + break; + case KeyboardConfig::KEY_OK: // Submits the text and proceeds to the next dialog - else if (npcStringDialog->isVisible()) + if (npcStringDialog->isVisible()) npcStringDialog->action(gcn::ActionEvent(NULL, "ok")); // Proceed to the next dialog option, or close the window else if (npcTextDialog->isVisible()) @@ -622,15 +582,9 @@ void Game::handleInput() // Submits the text and proceeds to the next dialog else if (npcIntegerDialog->isVisible()) npcIntegerDialog->action(gcn::ActionEvent(NULL, "ok")); - // Else, open the chat edit box - else - { - chatWindow->requestChatFocus(); - used = true; - } break; // Quitting confirmation dialog - case SDLK_ESCAPE: + case KeyboardConfig::KEY_QUIT: if (!exitConfirm) { exitConfirm = new ConfirmDialog( _("Quit"), @@ -754,6 +708,38 @@ void Game::handleInput() case KeyboardConfig::KEY_WINDOW_EMOTE_SHORTCUT: requestedWindow = emoteShortcutWindow; break; + case KeyboardConfig::KEY_SCREENSHOT: + // Screenshot (picture, hence the p) + saveScreenshot(); + used = true; + break; + case KeyboardConfig::KEY_PATHFIND: + // Find path to mouse (debug purpose) + viewport->toggleDebugPath(); + used = true; + break; + case KeyboardConfig::KEY_TRADE: + // Toggle accepting of incoming trade requests + unsigned int deflt = player_relations.getDefault(); + if (deflt & PlayerRelation::TRADE) + { + chatWindow->chatLog( + _("Ignoring incoming trade requests"), + BY_SERVER); + deflt &= ~PlayerRelation::TRADE; + } + else + { + chatWindow->chatLog( + _("Accepting incoming trade requests"), + BY_SERVER); + deflt |= PlayerRelation::TRADE; + } + + player_relations.setDefault(deflt); + + used = true; + break; } } diff --git a/src/keyboardconfig.cpp b/src/keyboardconfig.cpp index d7288796..68d51572 100644 --- a/src/keyboardconfig.cpp +++ b/src/keyboardconfig.cpp @@ -27,64 +27,76 @@ #include "gui/setup_keyboard.h" +#include "utils/gettext.h" +#include "utils/strprintf.h" + struct KeyData { const char *configField; int defaultValue; - const char *caption; + std::string caption; }; // keyData must be in same order as enum keyAction. static KeyData const keyData[KeyboardConfig::KEY_TOTAL] = { - {"keyMoveUp", SDLK_UP, "Move Up"}, - {"keyMoveDown", SDLK_DOWN, "Move Down"}, - {"keyMoveLeft", SDLK_LEFT, "Move Left"}, - {"keyMoveRight", SDLK_RIGHT, "Move Right"}, - {"keyAttack", SDLK_LCTRL, "Attack"}, - {"keySmilie", SDLK_LALT, "Smilie"}, - {"keyTalk", SDLK_t, "Talk"}, - {"keyTarget", SDLK_LSHIFT, "Stop Attack"}, - {"keyTargetClosest", SDLK_a, "Target Closest"}, - {"keyTargetNPC", SDLK_n, "Target NPC"}, - {"keyTargetPlayer", SDLK_q, "Target Player"}, - {"keyPickup", SDLK_z, "Pickup"}, - {"keyHideWindows", SDLK_h, "Hide Windows"}, - {"keyBeingSit", SDLK_s, "Sit"}, - {"keyShortcut1", SDLK_1, "Item Shortcut 1"}, - {"keyShortcut2", SDLK_2, "Item Shortcut 2"}, - {"keyShortcut3", SDLK_3, "Item Shortcut 3"}, - {"keyShortcut4", SDLK_4, "Item Shortcut 4"}, - {"keyShortcut5", SDLK_5, "Item Shortcut 5"}, - {"keyShortcut6", SDLK_6, "Item Shortcut 6"}, - {"keyShortcut7", SDLK_7, "Item Shortcut 7"}, - {"keyShortcut8", SDLK_8, "Item Shortcut 8"}, - {"keyShortcut9", SDLK_9, "Item Shortcut 9"}, - {"keyShortcut10", SDLK_0, "Item Shortcut 10"}, - {"keyShortcut11", SDLK_MINUS, "Item Shortcut 11"}, - {"keyShortcut12", SDLK_EQUALS, "Item Shortcut 12"}, - {"keyWindowStatus", SDLK_F2, "Status Window"}, - {"keyWindowInventory", SDLK_F3, "Inventory Window"}, - {"keyWindowEquipment", SDLK_F4, "Equipment WIndow"}, - {"keyWindowSkill", SDLK_F5, "Skill Window"}, - {"keyWindowMinimap", SDLK_F6, "Minimap Window"}, - {"keyWindowChat", SDLK_F7, "Chat Window"}, - {"keyWindowShortcut", SDLK_F8, "Item Shortcut Window"}, - {"keyWindowSetup", SDLK_F9, "Setup Window"}, - {"keyWindowDebug", SDLK_F10, "Debug Window"}, - {"keyWindowEmote", SDLK_F11, "Emote Window"}, - {"keyWindowEmoteBar", SDLK_F12, "Emote Shortcut Window"}, - {"keyEmoteShortcut1", SDLK_1, "Emote Shortcut 1"}, - {"keyEmoteShortcut2", SDLK_2, "Emote Shortcut 2"}, - {"keyEmoteShortcut3", SDLK_3, "Emote Shortcut 3"}, - {"keyEmoteShortcut4", SDLK_4, "Emote Shortcut 4"}, - {"keyEmoteShortcut5", SDLK_5, "Emote Shortcut 5"}, - {"keyEmoteShortcut6", SDLK_6, "Emote Shortcut 6"}, - {"keyEmoteShortcut7", SDLK_7, "Emote Shortcut 7"}, - {"keyEmoteShortcut8", SDLK_8, "Emote Shortcut 8"}, - {"keyEmoteShortcut9", SDLK_9, "Emote Shortcut 9"}, - {"keyEmoteShortcut10", SDLK_0, "Emote Shortcut 10"}, - {"keyEmoteShortcut11", SDLK_MINUS, "Emote Shortcut 11"}, - {"keyEmoteShortcut12", SDLK_EQUALS, "Emote Shortcut 12"} + {"keyMoveUp", SDLK_UP, _("Move Up")}, + {"keyMoveDown", SDLK_DOWN, _("Move Down")}, + {"keyMoveLeft", SDLK_LEFT, _("Move Left")}, + {"keyMoveRight", SDLK_RIGHT, _("Move Right")}, + {"keyAttack", SDLK_LCTRL, _("Attack")}, + {"keySmilie", SDLK_LALT, _("Smilie")}, + {"keyTalk", SDLK_t, _("Talk")}, + {"keyTarget", SDLK_LSHIFT, _("Stop Attack")}, + {"keyTargetClosest", SDLK_a, _("Target Closest")}, + {"keyTargetNPC", SDLK_n, _("Target NPC")}, + {"keyTargetPlayer", SDLK_q, _("Target Player")}, + {"keyPickup", SDLK_z, _("Pickup")}, + {"keyHideWindows", SDLK_h, _("Hide Windows")}, + {"keyBeingSit", SDLK_s, _("Sit")}, + {"keyScreenshot", SDLK_p, _("Screenshot")}, + {"keyTrade", SDLK_r, _("Enable/Disable Trading")}, + {"keyPathfind", SDLK_f, _("Find Path to Mouse")}, + {"keyShortcut1", SDLK_1, strprintf(_("Item Shortcut %d"), 1)}, + {"keyShortcut2", SDLK_2, strprintf(_("Item Shortcut %d"), 2)}, + {"keyShortcut3", SDLK_3, strprintf(_("Item Shortcut %d"), 3)}, + {"keyShortcut4", SDLK_4, strprintf(_("Item Shortcut %d"), 4)}, + {"keyShortcut5", SDLK_5, strprintf(_("Item Shortcut %d"), 5)}, + {"keyShortcut6", SDLK_6, strprintf(_("Item Shortcut %d"), 6)}, + {"keyShortcut7", SDLK_7, strprintf(_("Item Shortcut %d"), 7)}, + {"keyShortcut8", SDLK_8, strprintf(_("Item Shortcut %d"), 8)}, + {"keyShortcut9", SDLK_9, strprintf(_("Item Shortcut %d"), 9)}, + {"keyShortcut10", SDLK_0, strprintf(_("Item Shortcut %d"), 10)}, + {"keyShortcut11", SDLK_MINUS, strprintf(_("Item Shortcut %d"), 11)}, + {"keyShortcut12", SDLK_EQUALS, strprintf(_("Item Shortcut %d"), 12)}, + {"keyWindowHelp", SDLK_F1, _("Help Window")}, + {"keyWindowStatus", SDLK_F2, _("Status Window")}, + {"keyWindowInventory", SDLK_F3, _("Inventory Window")}, + {"keyWindowEquipment", SDLK_F4, _("Equipment WIndow")}, + {"keyWindowSkill", SDLK_F5, _("Skill Window")}, + {"keyWindowMinimap", SDLK_F6, _("Minimap Window")}, + {"keyWindowChat", SDLK_F7, _("Chat Window")}, + {"keyWindowShortcut", SDLK_F8, _("Item Shortcut Window")}, + {"keyWindowSetup", SDLK_F9, _("Setup Window")}, + {"keyWindowDebug", SDLK_F10, _("Debug Window")}, + {"keyWindowEmote", SDLK_F11, _("Emote Window")}, + {"keyWindowEmoteBar", SDLK_F12, _("Emote Shortcut Window")}, + {"keyEmoteShortcut1", SDLK_1, strprintf(_("Emote Shortcut %d"), 1)}, + {"keyEmoteShortcut2", SDLK_2, strprintf(_("Emote Shortcut %d"), 2)}, + {"keyEmoteShortcut3", SDLK_3, strprintf(_("Emote Shortcut %d"), 3)}, + {"keyEmoteShortcut4", SDLK_4, strprintf(_("Emote Shortcut %d"), 4)}, + {"keyEmoteShortcut5", SDLK_5, strprintf(_("Emote Shortcut %d"), 5)}, + {"keyEmoteShortcut6", SDLK_6, strprintf(_("Emote Shortcut %d"), 6)}, + {"keyEmoteShortcut7", SDLK_7, strprintf(_("Emote Shortcut %d"), 7)}, + {"keyEmoteShortcut8", SDLK_8, strprintf(_("Emote Shortcut %d"), 8)}, + {"keyEmoteShortcut9", SDLK_9, strprintf(_("Emote Shortcut %d"), 9)}, + {"keyEmoteShortcut10", SDLK_0, strprintf(_("Emote Shortcut %d"), 10)}, + {"keyEmoteShortcut11", SDLK_MINUS, strprintf(_("Emote Shortcut %d"), 11)}, + {"keyEmoteShortcut12", SDLK_EQUALS, strprintf(_("Emote Shortcut %d"), 12)}, + {"keyChat", SDLK_RETURN, _("Toggle Chat")}, + {"keyChatScrollUp", SDLK_PAGEUP, _("Scroll Chat Up")}, + {"keyChatScrollDown", SDLK_PAGEDOWN, _("Scroll Chat Down")}, + {"keyOK", SDLK_SPACE, _("Select OK")}, + {"keyQuit", SDLK_ESCAPE, _("Quit")} }; void KeyboardConfig::init() diff --git a/src/keyboardconfig.h b/src/keyboardconfig.h index 2077126d..ba8039bf 100644 --- a/src/keyboardconfig.h +++ b/src/keyboardconfig.h @@ -164,6 +164,9 @@ class KeyboardConfig KEY_PICKUP, KEY_HIDE_WINDOWS, KEY_SIT, + KEY_SCREENSHOT, + KEY_TRADE, + KEY_PATHFIND, KEY_SHORTCUT_1, KEY_SHORTCUT_2, KEY_SHORTCUT_3, @@ -176,6 +179,7 @@ class KeyboardConfig KEY_SHORTCUT_10, KEY_SHORTCUT_11, KEY_SHORTCUT_12, + KEY_WINDOW_HELP, KEY_WINDOW_STATUS, KEY_WINDOW_INVENTORY, KEY_WINDOW_EQUIPMENT, @@ -199,6 +203,11 @@ class KeyboardConfig KEY_EMOTE_10, KEY_EMOTE_11, KEY_EMOTE_12, + KEY_TOGGLE_CHAT, + KEY_SCROLL_CHAT_UP, + KEY_SCROLL_CHAT_DOWN, + KEY_OK, + KEY_QUIT, KEY_TOTAL }; |