summaryrefslogtreecommitdiff
path: root/src/net/eathena
diff options
context:
space:
mode:
Diffstat (limited to 'src/net/eathena')
-rw-r--r--src/net/eathena/npchandler.cpp16
-rw-r--r--src/net/eathena/npchandler.h4
2 files changed, 14 insertions, 6 deletions
diff --git a/src/net/eathena/npchandler.cpp b/src/net/eathena/npchandler.cpp
index f5b06ff29..f8041940c 100644
--- a/src/net/eathena/npchandler.cpp
+++ b/src/net/eathena/npchandler.cpp
@@ -35,6 +35,8 @@
#include "net/ea/npcrecv.h"
#include "net/eathena/messageout.h"
+#include "net/eathena/npcrecv.h"
+
#include "net/eathena/protocolout.h"
#include "resources/item/shopitem.h"
@@ -52,11 +54,14 @@ NpcHandler::NpcHandler() :
npcHandler = this;
}
-void NpcHandler::talk(const BeingId npcId) const
+void NpcHandler::talk(const Being *const being) const
{
+ if (!being)
+ return;
createOutPacket(CMSG_NPC_TALK);
- outMsg.writeBeingId(npcId, "npc id");
+ outMsg.writeBeingId(being->getId(), "npc id");
outMsg.writeInt8(0, "unused");
+ EAthena::NpcRecv::mNpcTypeId = being->getSubType();
}
void NpcHandler::nextDialog(const BeingId npcId) const
@@ -108,11 +113,14 @@ void NpcHandler::stringInput(const BeingId npcId,
outMsg.writeInt8(0, "null byte");
}
-void NpcHandler::buy(const BeingId beingId) const
+void NpcHandler::buy(const Being *const being) const
{
+ if (!being)
+ return;
createOutPacket(CMSG_NPC_BUY_SELL_REQUEST);
- outMsg.writeBeingId(beingId, "npc id");
+ outMsg.writeBeingId(being->getId(), "npc id");
outMsg.writeInt8(0, "action");
+ EAthena::NpcRecv::mNpcTypeId = being->getSubType();
}
void NpcHandler::sell(const BeingId beingId) const
diff --git a/src/net/eathena/npchandler.h b/src/net/eathena/npchandler.h
index 4c758a7a2..d13d0f0cc 100644
--- a/src/net/eathena/npchandler.h
+++ b/src/net/eathena/npchandler.h
@@ -35,7 +35,7 @@ class NpcHandler final : public Ea::NpcHandler
A_DELETE_COPY(NpcHandler)
- void talk(const BeingId npcId) const override final;
+ void talk(const Being *const being) const override final;
void nextDialog(const BeingId npcId) const override final;
@@ -50,7 +50,7 @@ class NpcHandler final : public Ea::NpcHandler
void stringInput(const BeingId npcId,
const std::string &value) const override final;
- void buy(const BeingId beingId) const override final;
+ void buy(const Being *const being) const override final;
void sell(const BeingId beingId) const override final;