summaryrefslogtreecommitdiff
path: root/src/net/tmwa/npchandler.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/net/tmwa/npchandler.cpp')
-rw-r--r--src/net/tmwa/npchandler.cpp36
1 files changed, 27 insertions, 9 deletions
diff --git a/src/net/tmwa/npchandler.cpp b/src/net/tmwa/npchandler.cpp
index 534ee99db..3a9ee00a9 100644
--- a/src/net/tmwa/npchandler.cpp
+++ b/src/net/tmwa/npchandler.cpp
@@ -68,49 +68,63 @@ void NpcHandler::handleMessage(Net::MessageIn &msg)
{
BLOCK_START("NpcHandler::handleMessage")
- const int npcId = getNpc(msg, msg.getId() == SMSG_NPC_CHOICE
- || msg.getId() == SMSG_NPC_MESSAGE
- || msg.getId() == SMSG_NPC_CHANGETITLE);
-
- if (msg.getId() != SMSG_NPC_STR_INPUT)
- mRequestLang = false;
-
switch (msg.getId())
{
case SMSG_NPC_CHOICE:
+ getNpc(msg);
+ mRequestLang = false;
processNpcChoice(msg);
break;
case SMSG_NPC_MESSAGE:
+ getNpc(msg);
+ mRequestLang = false;
processNpcMessage(msg);
break;
case SMSG_NPC_CLOSE:
+ getNpc(msg);
+ mRequestLang = false;
processNpcClose(msg);
break;
case SMSG_NPC_NEXT:
+ getNpc(msg);
+ mRequestLang = false;
processNpcNext(msg);
break;
case SMSG_NPC_INT_INPUT:
+ getNpc(msg);
+ mRequestLang = false;
processNpcIntInput(msg);
break;
case SMSG_NPC_STR_INPUT:
+ {
+ const int npcId = getNpc(msg);
if (mRequestLang)
processLangReuqest(msg, npcId);
else
processNpcStrInput(msg);
break;
+ }
case SMSG_NPC_COMMAND:
+ {
+ const int npcId = getNpc(msg);
+ mRequestLang = false;
processNpcCommand(msg, npcId);
break;
+ }
case SMSG_NPC_CHANGETITLE:
+ {
+ const int npcId = getNpc(msg);
+ mRequestLang = false;
processChangeTitle(msg, npcId);
break;
+ }
default:
break;
@@ -216,10 +230,14 @@ void NpcHandler::sellItem(const int beingId A_UNUSED,
outMsg.writeInt16(static_cast<int16_t>(amount));
}
-int NpcHandler::getNpc(Net::MessageIn &msg, const bool haveLength)
+int NpcHandler::getNpc(Net::MessageIn &msg)
{
- if (haveLength)
+ if (msg.getId() == SMSG_NPC_CHOICE
+ || msg.getId() == SMSG_NPC_MESSAGE
+ || msg.getId() == SMSG_NPC_CHANGETITLE)
+ {
msg.readInt16(); // length
+ }
const int npcId = msg.readInt32();