diff options
author | Andrei Karas <akaras@inbox.ru> | 2015-08-27 21:26:15 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2015-08-27 21:26:15 +0300 |
commit | e6e9b2c524f28e18f7efa582ee0dd0ee1e1420df (patch) | |
tree | 02e52352e86985edc08308b22731473da7c9b4a9 /src/net/ea/npchandler.cpp | |
parent | 2dbb62e760853f88a19e6e783870de156d52f8c6 (diff) | |
download | manaverse-e6e9b2c524f28e18f7efa582ee0dd0ee1e1420df.tar.gz manaverse-e6e9b2c524f28e18f7efa582ee0dd0ee1e1420df.tar.bz2 manaverse-e6e9b2c524f28e18f7efa582ee0dd0ee1e1420df.tar.xz manaverse-e6e9b2c524f28e18f7efa582ee0dd0ee1e1420df.zip |
Move receive code from npchandler into separate file.
Diffstat (limited to 'src/net/ea/npchandler.cpp')
-rw-r--r-- | src/net/ea/npchandler.cpp | 182 |
1 files changed, 4 insertions, 178 deletions
diff --git a/src/net/ea/npchandler.cpp b/src/net/ea/npchandler.cpp index 2224de3e0..78ed6de53 100644 --- a/src/net/ea/npchandler.cpp +++ b/src/net/ea/npchandler.cpp @@ -28,6 +28,8 @@ #include "net/messagein.h" +#include "net/ea/npcrecv.h" + #include "utils/langs.h" #include "debug.h" @@ -35,186 +37,10 @@ namespace Ea { -NpcDialog *NpcHandler::mDialog = nullptr; -bool NpcHandler::mRequestLang = false; - NpcHandler::NpcHandler() { - mDialog = nullptr; - mRequestLang = false; -} - -void NpcHandler::processNpcChoice(Net::MessageIn &msg) -{ - npcHandler->getNpc(msg); - mRequestLang = false; - - if (mDialog) - { - mDialog->choiceRequest(); - mDialog->parseListItems(msg.readString(msg.getLength() - 8, - "select items")); - } - else - { - msg.readString(msg.getLength() - 8, "select items"); - } -} - -void NpcHandler::processNpcMessage(Net::MessageIn &msg) -{ - npcHandler->getNpc(msg); - mRequestLang = false; - - const std::string message = msg.readString(msg.getLength() - 8, "message"); - // ignore future legacy npc commands. - if (message.size() > 3 && message.substr(0, 3) == "###") - return; - if (mDialog) - mDialog->addText(message); -} - -void NpcHandler::processNpcClose(Net::MessageIn &msg) -{ - // Show the close button - npcHandler->getNpc(msg); - mRequestLang = false; - if (mDialog) - mDialog->showCloseButton(); -} - -void NpcHandler::processNpcNext(Net::MessageIn &msg) -{ - // Show the next button - npcHandler->getNpc(msg); - mRequestLang = false; - if (mDialog) - mDialog->showNextButton(); -} - -void NpcHandler::processNpcIntInput(Net::MessageIn &msg) -{ - // Request for an integer - npcHandler->getNpc(msg); - mRequestLang = false; - if (mDialog) - mDialog->integerRequest(0); -} - -void NpcHandler::processNpcStrInput(Net::MessageIn &msg) -{ - // Request for a string - BeingId npcId = npcHandler->getNpc(msg); - if (mRequestLang) - { - mRequestLang = false; - npcHandler->stringInput(npcId, getLangSimple()); - } - else if (mDialog) - { - mDialog->textRequest(""); - } -} - -void NpcHandler::processNpcCommand(Net::MessageIn &msg) -{ - const BeingId npcId = npcHandler->getNpc(msg); - mRequestLang = false; - - const int cmd = msg.readInt16("cmd"); - const BeingId id = msg.readBeingId("id"); - const int x = msg.readInt16("x"); - const int y = msg.readInt16("y"); - switch (cmd) - { - case 0: - mRequestLang = true; - break; - - case 1: - if (viewport) - viewport->moveCameraToActor(npcId); - break; - - case 2: - if (viewport) - { - if (id == BeingId_zero) - viewport->moveCameraToPosition(x, y); - else - viewport->moveCameraToActor(id, x, y); - } - break; - - case 3: - if (viewport) - viewport->returnCamera(); - break; - - case 4: - if (viewport) - { - viewport->moveCameraRelative(x, y); - } - break; - case 5: // close dialog - if (mDialog) - mDialog->restoreCamera(); - npcHandler->closeDialog(npcId); - break; - case 6: // show avatar - if (mDialog) - { - mDialog->showAvatar(fromInt(id, BeingTypeId)); - } - break; - case 7: // set avatar direction - if (mDialog) - { - mDialog->setAvatarDirection( - Net::MessageIn::fromServerDirection( - static_cast<uint8_t>(id))); - } - break; - case 8: // set avatar action - if (mDialog) - mDialog->setAvatarAction(toInt(id, int)); - break; - case 9: // clear npc dialog - if (mDialog) - mDialog->clearRows(); - break; - case 10: // send selected item id - { - int invSize = toInt(id, int); - if (!invSize) - invSize = 1; - if (mDialog) - mDialog->itemRequest(invSize); - break; - } - case 11: // send selected item index - { - int invSize = toInt(id, int); - if (!invSize) - invSize = 1; - if (mDialog) - mDialog->itemIndexRequest(invSize); - break; - } - default: - UNIMPLIMENTEDPACKET; - break; - } -} - -void NpcHandler::processChangeTitle(Net::MessageIn &msg) -{ - npcHandler->getNpc(msg); - mRequestLang = false; - const std::string str = msg.readString(-1, "title"); - if (mDialog) - mDialog->setCaption(str); + NpcRecv::mDialog = nullptr; + NpcRecv::mRequestLang = false; } } // namespace Ea |