summaryrefslogtreecommitdiff
path: root/src/net/ea/npchandler.cpp
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2015-08-27 21:26:15 +0300
committerAndrei Karas <akaras@inbox.ru>2015-08-27 21:26:15 +0300
commite6e9b2c524f28e18f7efa582ee0dd0ee1e1420df (patch)
tree02e52352e86985edc08308b22731473da7c9b4a9 /src/net/ea/npchandler.cpp
parent2dbb62e760853f88a19e6e783870de156d52f8c6 (diff)
downloadmanaverse-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.cpp182
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