diff options
author | Andrei Karas <akaras@inbox.ru> | 2015-02-09 16:49:57 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2015-02-09 16:49:57 +0300 |
commit | 23ea6f137e33ba1158ec3e6783fe31435fcffe1f (patch) | |
tree | 245421bca38fad9ac728cccb77d7ff153826faa1 /src/net/eathena/searchstorehandler.cpp | |
parent | 2aef4c43560203a41ee2866245732fbfa2639a6d (diff) | |
download | mv-23ea6f137e33ba1158ec3e6783fe31435fcffe1f.tar.gz mv-23ea6f137e33ba1158ec3e6783fe31435fcffe1f.tar.bz2 mv-23ea6f137e33ba1158ec3e6783fe31435fcffe1f.tar.xz mv-23ea6f137e33ba1158ec3e6783fe31435fcffe1f.zip |
eathena: add packet SMSG_SEARCHSTORE_SEARCH_FAILED 0x0837.
Diffstat (limited to 'src/net/eathena/searchstorehandler.cpp')
-rw-r--r-- | src/net/eathena/searchstorehandler.cpp | 43 |
1 files changed, 42 insertions, 1 deletions
diff --git a/src/net/eathena/searchstorehandler.cpp b/src/net/eathena/searchstorehandler.cpp index 22f892a8a..6d6a7e1b8 100644 --- a/src/net/eathena/searchstorehandler.cpp +++ b/src/net/eathena/searchstorehandler.cpp @@ -20,9 +20,13 @@ #include "net/eathena/searchstorehandler.h" +#include "notifymanager.h" + #include "net/eathena/messageout.h" #include "net/eathena/protocol.h" +#include "resources/notifytypes.h" + #include "debug.h" extern Net::SearchStoreHandler *searchStoreHandler; @@ -36,6 +40,7 @@ SearchStoreHandler::SearchStoreHandler() : static const uint16_t _messages[] = { SMSG_SEARCHSTORE_SEARCH_ACK, + SMSG_SEARCHSTORE_SEARCH_FAILED, 0 }; handledMessages = _messages; @@ -50,6 +55,10 @@ void SearchStoreHandler::handleMessage(Net::MessageIn &msg) processSearchAck(msg); break; + case SMSG_SEARCHSTORE_SEARCH_FAILED: + processSearchFailed(msg); + break; + default: break; } @@ -86,9 +95,41 @@ void SearchStoreHandler::processSearchAck(Net::MessageIn &msg) msg.readInt32("price"); msg.readInt16("amount"); msg.readUInt8("refine"); - for (int f = 0; f < 4; f++) + for (int d = 0; d < 4; d++) msg.readInt16("card"); } } +void SearchStoreHandler::processSearchFailed(Net::MessageIn &msg) +{ + const int result = msg.readUInt8("result"); + switch (result) + { + case 0: + NotifyManager::notify( + NotifyTypes::SEARCH_STORE_FAILED_NO_STORES); + break; + case 1: + NotifyManager::notify( + NotifyTypes::SEARCH_STORE_FAILED_MANY_RESULTS); + break; + case 2: + NotifyManager::notify( + NotifyTypes::SEARCH_STORE_FAILED_CANT_SEARCH_ANYMORE); + break; + case 3: + NotifyManager::notify( + NotifyTypes::SEARCH_STORE_FAILED_CANT_SEARCH_YET); + break; + case 4: + NotifyManager::notify( + NotifyTypes::SEARCH_STORE_FAILED_NO_INFORMATION); + break; + default: + NotifyManager::notify( + NotifyTypes::SEARCH_STORE_FAILED); + break; + } +} + } // namespace EAthena |