From c57aeeaf880a416c1c25b2e2684a571fdb17f6c4 Mon Sep 17 00:00:00 2001
From: Andrei Karas <akaras@inbox.ru>
Date: Mon, 5 Oct 2009 21:20:24 +0300
Subject: Add outfits wear and copy keys in settings

---
 src/game.cpp           | 117 ++++++++++++++++++++++---------------------------
 src/keyboardconfig.cpp |   2 +
 src/keyboardconfig.h   |   2 +
 3 files changed, 56 insertions(+), 65 deletions(-)

diff --git a/src/game.cpp b/src/game.cpp
index 900a6794..85dabbc9 100644
--- a/src/game.cpp
+++ b/src/game.cpp
@@ -601,82 +601,69 @@ void Game::handleInput()
                 }
             }
 
-            if ((event.key.keysym.mod & KMOD_RCTRL || event.key.keysym.mod & KMOD_LCTRL)
-                && !chatWindow->isInputFocused())
+            if (!chatWindow->isInputFocused())
             {
-                int outfitNum = -1;
-                switch (event.key.keysym.sym)
-                {
-                    case SDLK_1:
-                        outfitNum = 0;
-                        break;
-
-                    case SDLK_2:
-                        outfitNum = 1;
-                        break;
-
-                    case SDLK_3:
-                        outfitNum = 2;
-                        break;
-
-                    case SDLK_4:
-                        outfitNum = 3;
-                        break;
-
-                    case SDLK_5:
-                        outfitNum = 4;
-                        break;
+                bool wearOutfit = false;
+                bool copyOutfit = false;
 
-                    case SDLK_6:
-                        outfitNum = 5;
-                        break;
+                if (keyboard.isKeyActive(keyboard.KEY_WEAR_OUTFIT))
+                    wearOutfit = true;
 
-                    case SDLK_7:
-                        outfitNum = 6;
-                        break;
+                if (keyboard.isKeyActive(keyboard.KEY_COPY_OUTFIT))
+                    copyOutfit = true;
 
-                    case SDLK_8:
-                        outfitNum = 7;
-                        break;
-
-                    case SDLK_9:
-                        outfitNum = 8;
-                        break;
+                if (wearOutfit || copyOutfit)
+                {
+                    int outfitNum = -1;
+                    switch (event.key.keysym.sym)
+                    {
+                        case SDLK_1:
+                        case SDLK_2:
+                        case SDLK_3:
+                        case SDLK_4:
+                        case SDLK_5:
+                        case SDLK_6:
+                        case SDLK_7:
+                        case SDLK_8:
+                        case SDLK_9:
+                            outfitNum = event.key.keysym.sym - SDLK_1;
+                            break;
 
-                    case SDLK_0:
-                        outfitNum = 9;
-                        break;
+                        case SDLK_0:
+                            outfitNum = 9;
+                            break;
 
-                    case SDLK_MINUS:
-                        outfitNum = 10;
-                        break;
+                        case SDLK_MINUS:
+                            outfitNum = 10;
+                            break;
 
-                    case SDLK_EQUALS:
-                        outfitNum = 11;
-                        break;
+                        case SDLK_EQUALS:
+                            outfitNum = 11;
+                            break;
 
-                    case SDLK_BACKSPACE:
-                        outfitNum = 12;
-                        break;
+                        case SDLK_BACKSPACE:
+                            outfitNum = 12;
+                            break;
 
-                    case SDLK_INSERT:
-                        outfitNum = 13;
-                        break;
+                        case SDLK_INSERT:
+                            outfitNum = 13;
+                            break;
 
-                    case SDLK_HOME:
-                        outfitNum = 14;
-                        break;
+                        case SDLK_HOME:
+                            outfitNum = 14;
+                            break;
 
-                    default:
-                        break;
-                }
-                if (outfitNum >= 0)
-                {
-                    used = true;
-                    if (event.key.keysym.mod & KMOD_RCTRL)
-                        outfitWindow->wearOutfit(outfitNum);
-                    else if (event.key.keysym.mod & KMOD_LCTRL)
-                        outfitWindow->copyOutfit(outfitNum);
+                        default:
+                            break;
+                    }
+                    if (outfitNum >= 0)
+                    {
+                        used = true;
+                        if (wearOutfit)
+                            outfitWindow->wearOutfit(outfitNum);
+                        else if (copyOutfit)
+                            outfitWindow->copyOutfit(outfitNum);
+                    }
                 }
             }
 
diff --git a/src/keyboardconfig.cpp b/src/keyboardconfig.cpp
index a9b702eb..3a1ce8fc 100644
--- a/src/keyboardconfig.cpp
+++ b/src/keyboardconfig.cpp
@@ -81,6 +81,8 @@ static KeyData const keyData[KeyboardConfig::KEY_TOTAL] = {
     {"keyWindowSocial", SDLK_F11, _("Social Window")},
     {"keyWindowEmoteBar", SDLK_F12, _("Emote Shortcut Window")},
     {"keyWindowOutfit", SDLK_o, _("Outfits Window")},
+    {"keyWearOutfit", SDLK_RCTRL, _("Wear Outfit")},
+    {"keyCopyOutfit", SDLK_RALT, _("Copy Outfit")},
     {"keyEmoteShortcut1", SDLK_1, strprintf(_("Emote Shortcut %d"), 1)},
     {"keyEmoteShortcut2", SDLK_2, strprintf(_("Emote Shortcut %d"), 2)},
     {"keyEmoteShortcut3", SDLK_3, strprintf(_("Emote Shortcut %d"), 3)},
diff --git a/src/keyboardconfig.h b/src/keyboardconfig.h
index 9c23f53b..6b972428 100644
--- a/src/keyboardconfig.h
+++ b/src/keyboardconfig.h
@@ -196,6 +196,8 @@ class KeyboardConfig
             KEY_WINDOW_SOCIAL,
             KEY_WINDOW_EMOTE_SHORTCUT,
             KEY_WINDOW_OUTFIT,
+            KEY_WEAR_OUTFIT,
+            KEY_COPY_OUTFIT,
             KEY_EMOTE_1,
             KEY_EMOTE_2,
             KEY_EMOTE_3,
-- 
cgit v1.2.3-70-g09d2