diff options
author | Jared Adams <jaxad0127@gmail.com> | 2009-03-22 18:55:51 -0600 |
---|---|---|
committer | Jared Adams <jaxad0127@gmail.com> | 2009-03-22 20:38:13 -0600 |
commit | d3f315b45bd9055ac7f61082f5af54b863410517 (patch) | |
tree | 1314eaf07e01c7651330b2845c9bcd10def62586 /src | |
parent | 2303bb28359d18b8f23328376f800dc36e5c2f5f (diff) | |
download | mana-client-d3f315b45bd9055ac7f61082f5af54b863410517.tar.gz mana-client-d3f315b45bd9055ac7f61082f5af54b863410517.tar.bz2 mana-client-d3f315b45bd9055ac7f61082f5af54b863410517.tar.xz mana-client-d3f315b45bd9055ac7f61082f5af54b863410517.zip |
Move handling of eA skill messages to SkillHandler
Diffstat (limited to 'src')
-rw-r--r-- | src/gui/chat.cpp | 98 | ||||
-rw-r--r-- | src/gui/chat.h | 55 | ||||
-rw-r--r-- | src/net/ea/skillhandler.cpp | 130 |
3 files changed, 132 insertions, 151 deletions
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; } } |