From d3f315b45bd9055ac7f61082f5af54b863410517 Mon Sep 17 00:00:00 2001
From: Jared Adams <jaxad0127@gmail.com>
Date: Sun, 22 Mar 2009 18:55:51 -0600
Subject: Move handling of eA skill messages to SkillHandler

---
 src/gui/chat.cpp            |  98 +--------------------------------
 src/gui/chat.h              |  55 -------------------
 src/net/ea/skillhandler.cpp | 130 +++++++++++++++++++++++++++++++++++++++++++-
 3 files changed, 132 insertions(+), 151 deletions(-)

(limited to 'src')

diff --git a/src/gui/chat.cpp b/src/gui/chat.cpp
index 6408a61d..c0d6ed77 100644
--- a/src/gui/chat.cpp
+++ b/src/gui/chat.cpp
@@ -323,13 +323,6 @@ void ChatWindow::chatLog(std::string line, int own, std::string channelName,
     mRecorder->record(line.substr(3));
 }
 
-#ifdef EATHENA_SUPPORT
-void ChatWindow::chatLog(CHATSKILL act)
-{
-    chatLog(const_msg(act), BY_SERVER);
-}
-#endif
-
 const std::string &ChatWindow::getFocused() const
 {
     return mChatTabs->getSelectedTab()->getCaption();
@@ -832,9 +825,9 @@ void ChatWindow::chatSend(const std::string &nick, std::string msg)
     }
     else if (command == "me")
     {
-	std::stringstream actionStr;
-	actionStr << "*" << msg << "*";
-	chatSend(player_node->getName(), actionStr.str());
+        std::stringstream actionStr;
+        actionStr << "*" << msg << "*";
+        chatSend(player_node->getName(), actionStr.str());
     }
     else
     {
@@ -842,91 +835,6 @@ void ChatWindow::chatSend(const std::string &nick, std::string msg)
     }
 }
 
-std::string ChatWindow::const_msg(CHATSKILL act)
-{
-    std::string msg;
-    if (act.success == SKILL_FAILED && act.skill == SKILL_BASIC)
-    {
-        switch (act.bskill)
-        {
-            case BSKILL_TRADE:
-                msg = _("Trade failed!");
-                break;
-            case BSKILL_EMOTE:
-                msg = _("Emote failed!");
-                break;
-            case BSKILL_SIT:
-                msg = _("Sit failed!");
-                break;
-            case BSKILL_CREATECHAT:
-                msg = _("Chat creating failed!");
-                break;
-            case BSKILL_JOINPARTY:
-                msg = _("Could not join party!");
-                break;
-            case BSKILL_SHOUT:
-                msg = _("Cannot shout!");
-                break;
-        }
-
-        msg += " ";
-
-        switch (act.reason)
-        {
-            case RFAIL_SKILLDEP:
-                msg += _("You have not yet reached a high enough lvl!");
-                break;
-            case RFAIL_INSUFHP:
-                msg += _("Insufficient HP!");
-                break;
-            case RFAIL_INSUFSP:
-                msg += _("Insufficient SP!");
-                break;
-            case RFAIL_NOMEMO:
-                msg += _("You have no memos!");
-                break;
-            case RFAIL_SKILLDELAY:
-                msg += _("You cannot do that right now!");
-                break;
-            case RFAIL_ZENY:
-                msg += _("Seems you need more money... ;-)");
-                break;
-            case RFAIL_WEAPON:
-                msg += _("You cannot use this skill with that kind of weapon!");
-                break;
-            case RFAIL_REDGEM:
-                msg += _("You need another red gem!");
-                break;
-            case RFAIL_BLUEGEM:
-                msg += _("You need another blue gem!");
-                break;
-            case RFAIL_OVERWEIGHT:
-                msg += _("You're carrying to much to do this!");
-                break;
-            default:
-                msg += _("Huh? What's that?");
-                break;
-        }
-    }
-    else
-    {
-        switch (act.skill)
-        {
-            case SKILL_WARP :
-                msg = _("Warp failed...");
-                break;
-            case SKILL_STEAL :
-                msg = _("Could not steal anything...");
-                break;
-            case SKILL_ENVENOM :
-                msg = _("Poison had no effect...");
-                break;
-        }
-    }
-
-    return msg;
-}
-
 #endif
 
 void ChatWindow::scroll(int amount)
diff --git a/src/gui/chat.h b/src/gui/chat.h
index 88a5d3e9..a05a2577 100644
--- a/src/gui/chat.h
+++ b/src/gui/chat.h
@@ -65,49 +65,6 @@ enum
 #define CAT_IS            ""
 #define CAT_WHISPER       " whispers: "
 
-#ifdef EATHENA_SUPPORT
-/** job dependend identifiers (?)  */
-#define SKILL_BASIC       0x0001
-#define SKILL_WARP        0x001b
-#define SKILL_STEAL       0x0032
-#define SKILL_ENVENOM     0x0034
-
-/** basic skills identifiers       */
-#define BSKILL_TRADE      0x0000
-#define BSKILL_EMOTE      0x0001
-#define BSKILL_SIT        0x0002
-#define BSKILL_CREATECHAT 0x0003
-#define BSKILL_JOINPARTY  0x0004
-#define BSKILL_SHOUT      0x0005
-#define BSKILL_PK         0x0006 // ??
-#define BSKILL_SETALLIGN  0x0007 // ??
-
-/** reasons why action failed      */
-#define RFAIL_SKILLDEP    0x00
-#define RFAIL_INSUFHP     0x01
-#define RFAIL_INSUFSP     0x02
-#define RFAIL_NOMEMO      0x03
-#define RFAIL_SKILLDELAY  0x04
-#define RFAIL_ZENY        0x05
-#define RFAIL_WEAPON      0x06
-#define RFAIL_REDGEM      0x07
-#define RFAIL_BLUEGEM     0x08
-#define RFAIL_OVERWEIGHT  0x09
-#define RFAIL_GENERIC     0x0a
-
-/** should always be zero if failed */
-#define SKILL_FAILED      0x00
-
-struct CHATSKILL
-{
-    short skill;
-    short bskill;
-    short unused;
-    char success;
-    char reason;
-};
-#endif
-
 #define DEFAULT_CHAT_WINDOW_SCROLL 7 // 1 means `1/8th of the window size'.
 
 /**
@@ -155,13 +112,6 @@ class ChatWindow : public Window,
                      std::string channelName = "",
                      bool ignoreRecord = false);
 
-#ifdef EATHENA_SUPPORT
-        /**
-         * Calls original chat_log() after processing the packet.
-         */
-        void chatLog(CHATSKILL);
-#endif
-
         /**
          * Gets the focused tab's name
          */
@@ -301,11 +251,6 @@ class ChatWindow : public Window,
             int own;
         };
 
-#ifdef EATHENA_SUPPORT
-        /** Constructs failed messages for actions */
-        std::string const_msg(CHATSKILL);
-#endif
-
         /**
          * A structure combining a BrowserBox with its ScrollArea.
          */
diff --git a/src/net/ea/skillhandler.cpp b/src/net/ea/skillhandler.cpp
index 6e766008..f5cec761 100644
--- a/src/net/ea/skillhandler.cpp
+++ b/src/net/ea/skillhandler.cpp
@@ -28,6 +28,134 @@
 #include "../../gui/chat.h"
 #include "../../gui/skill.h"
 
+#include "../../utils/gettext.h"
+
+/** job dependend identifiers (?)  */
+#define SKILL_BASIC       0x0001
+#define SKILL_WARP        0x001b
+#define SKILL_STEAL       0x0032
+#define SKILL_ENVENOM     0x0034
+
+/** basic skills identifiers       */
+#define BSKILL_TRADE      0x0000
+#define BSKILL_EMOTE      0x0001
+#define BSKILL_SIT        0x0002
+#define BSKILL_CREATECHAT 0x0003
+#define BSKILL_JOINPARTY  0x0004
+#define BSKILL_SHOUT      0x0005
+#define BSKILL_PK         0x0006 // ??
+#define BSKILL_SETALLIGN  0x0007 // ??
+
+/** reasons why action failed      */
+#define RFAIL_SKILLDEP    0x00
+#define RFAIL_INSUFHP     0x01
+#define RFAIL_INSUFSP     0x02
+#define RFAIL_NOMEMO      0x03
+#define RFAIL_SKILLDELAY  0x04
+#define RFAIL_ZENY        0x05
+#define RFAIL_WEAPON      0x06
+#define RFAIL_REDGEM      0x07
+#define RFAIL_BLUEGEM     0x08
+#define RFAIL_OVERWEIGHT  0x09
+#define RFAIL_GENERIC     0x0a
+
+/** should always be zero if failed */
+#define SKILL_FAILED      0x00
+
+struct CHATSKILL
+{
+    short skill;
+    short bskill;
+    short unused;
+    char success;
+    char reason;
+};
+
+std::string const_msg(CHATSKILL act)
+{
+    std::string msg;
+    if (act.success == SKILL_FAILED && act.skill == SKILL_BASIC)
+    {
+        switch (act.bskill)
+        {
+            case BSKILL_TRADE:
+                msg = _("Trade failed!");
+                break;
+            case BSKILL_EMOTE:
+                msg = _("Emote failed!");
+                break;
+            case BSKILL_SIT:
+                msg = _("Sit failed!");
+                break;
+            case BSKILL_CREATECHAT:
+                msg = _("Chat creating failed!");
+                break;
+            case BSKILL_JOINPARTY:
+                msg = _("Could not join party!");
+                break;
+            case BSKILL_SHOUT:
+                msg = _("Cannot shout!");
+                break;
+        }
+
+        msg += " ";
+
+        switch (act.reason)
+        {
+            case RFAIL_SKILLDEP:
+                msg += _("You have not yet reached a high enough lvl!");
+                break;
+            case RFAIL_INSUFHP:
+                msg += _("Insufficient HP!");
+                break;
+            case RFAIL_INSUFSP:
+                msg += _("Insufficient SP!");
+                break;
+            case RFAIL_NOMEMO:
+                msg += _("You have no memos!");
+                break;
+            case RFAIL_SKILLDELAY:
+                msg += _("You cannot do that right now!");
+                break;
+            case RFAIL_ZENY:
+                msg += _("Seems you need more money... ;-)");
+                break;
+            case RFAIL_WEAPON:
+                msg += _("You cannot use this skill with that kind of weapon!");
+                break;
+            case RFAIL_REDGEM:
+                msg += _("You need another red gem!");
+                break;
+            case RFAIL_BLUEGEM:
+                msg += _("You need another blue gem!");
+                break;
+            case RFAIL_OVERWEIGHT:
+                msg += _("You're carrying to much to do this!");
+                break;
+            default:
+                msg += _("Huh? What's that?");
+                break;
+        }
+    }
+    else
+    {
+        switch (act.skill)
+        {
+            case SKILL_WARP :
+                msg = _("Warp failed...");
+                break;
+            case SKILL_STEAL :
+                msg = _("Could not steal anything...");
+                break;
+            case SKILL_ENVENOM :
+                msg = _("Poison had no effect...");
+                break;
+        }
+    }
+
+    return msg;
+}
+
 SkillHandler::SkillHandler()
 {
     static const Uint16 _messages[] = {
@@ -87,7 +215,7 @@ void SkillHandler::handleMessage(MessageIn &msg)
             {
                 logger->log("Action: %d/%d", action.bskill, action.success);
             }
-            chatWindow->chatLog(action);
+            chatWindow->chatLog(const_msg(action));
             break;
     }
 }
-- 
cgit v1.2.3-70-g09d2