From 3efda43abd11979adfd048fc62fe4f09e702f772 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Wed, 10 Apr 2013 14:57:39 +0300 Subject: improve npchandler class. --- src/net/ea/npchandler.cpp | 8 ++++---- src/net/ea/npchandler.h | 8 ++++---- src/net/eathena/npchandler.cpp | 42 +++++++++++++++++++++++------------------- src/net/eathena/npchandler.h | 33 +++++++++++++++++++-------------- src/net/npchandler.h | 34 +++++++++++++++++++--------------- src/net/tmwa/npchandler.cpp | 42 +++++++++++++++++++++++------------------- src/net/tmwa/npchandler.h | 34 ++++++++++++++++++++-------------- 7 files changed, 112 insertions(+), 89 deletions(-) diff --git a/src/net/ea/npchandler.cpp b/src/net/ea/npchandler.cpp index 1640d3650..9f8e5b87f 100644 --- a/src/net/ea/npchandler.cpp +++ b/src/net/ea/npchandler.cpp @@ -34,19 +34,19 @@ NpcHandler::NpcHandler() : { } -void NpcHandler::sendLetter(int npcId A_UNUSED, +void NpcHandler::sendLetter(const int npcId A_UNUSED, const std::string &recipient A_UNUSED, - const std::string &text A_UNUSED) + const std::string &text A_UNUSED) const { // TODO } -void NpcHandler::startShopping(int beingId A_UNUSED) +void NpcHandler::startShopping(const int beingId A_UNUSED) const { // TODO } -void NpcHandler::endShopping(int beingId A_UNUSED) +void NpcHandler::endShopping(const int beingId A_UNUSED) const { // TODO } diff --git a/src/net/ea/npchandler.h b/src/net/ea/npchandler.h index ea5bad135..526ced9f0 100644 --- a/src/net/ea/npchandler.h +++ b/src/net/ea/npchandler.h @@ -42,13 +42,13 @@ class NpcHandler : public Net::NpcHandler A_DELETE_COPY(NpcHandler) void sendLetter(int npcId, const std::string &recipient, - const std::string &text); + const std::string &text) const override; - void startShopping(int beingId); + void startShopping(int beingId) const override; - void endShopping(int beingId); + void endShopping(int beingId) const override; - void clearDialogs(); + void clearDialogs() override; virtual int getNpc(Net::MessageIn &msg, bool haveLength) A_WARN_UNUSED = 0; diff --git a/src/net/eathena/npchandler.cpp b/src/net/eathena/npchandler.cpp index 530ba0416..e2d5a003a 100644 --- a/src/net/eathena/npchandler.cpp +++ b/src/net/eathena/npchandler.cpp @@ -112,20 +112,20 @@ void NpcHandler::handleMessage(Net::MessageIn &msg) mDialog = nullptr; } -void NpcHandler::talk(int npcId) +void NpcHandler::talk(const int npcId) const { MessageOut outMsg(CMSG_NPC_TALK); outMsg.writeInt32(npcId); outMsg.writeInt8(0); // Unused } -void NpcHandler::nextDialog(int npcId) +void NpcHandler::nextDialog(const int npcId) const { MessageOut outMsg(CMSG_NPC_NEXT_REQUEST); outMsg.writeInt32(npcId); } -void NpcHandler::closeDialog(int npcId) +void NpcHandler::closeDialog(const int npcId) { MessageOut outMsg(CMSG_NPC_CLOSE); outMsg.writeInt32(npcId); @@ -133,29 +133,30 @@ void NpcHandler::closeDialog(int npcId) const NpcDialogs::iterator it = mNpcDialogs.find(npcId); if (it != mNpcDialogs.end()) { - if ((*it).second.dialog) - (*it).second.dialog->close(); - if ((*it).second.dialog == mDialog) + NpcDialog *const dialog = (*it).second.dialog; + if (dialog) + dialog->close(); + if (dialog == mDialog) mDialog = nullptr; mNpcDialogs.erase(it); } } -void NpcHandler::listInput(int npcId, unsigned char value) +void NpcHandler::listInput(const int npcId, const unsigned char value) const { MessageOut outMsg(CMSG_NPC_LIST_CHOICE); outMsg.writeInt32(npcId); outMsg.writeInt8(value); } -void NpcHandler::integerInput(int npcId, int value) +void NpcHandler::integerInput(const int npcId, const int value) const { MessageOut outMsg(CMSG_NPC_INT_RESPONSE); outMsg.writeInt32(npcId); outMsg.writeInt32(value); } -void NpcHandler::stringInput(int npcId, const std::string &value) +void NpcHandler::stringInput(const int npcId, const std::string &value) const { MessageOut outMsg(CMSG_NPC_STR_RESPONSE); outMsg.writeInt16(static_cast(value.length() + 9)); @@ -164,22 +165,23 @@ void NpcHandler::stringInput(int npcId, const std::string &value) outMsg.writeInt8(0); // Prevent problems with string reading } -void NpcHandler::buy(int beingId) +void NpcHandler::buy(const int beingId) const { MessageOut outMsg(CMSG_NPC_BUY_SELL_REQUEST); outMsg.writeInt32(beingId); outMsg.writeInt8(0); // Buy } -void NpcHandler::sell(int beingId) +void NpcHandler::sell(const int beingId) const { MessageOut outMsg(CMSG_NPC_BUY_SELL_REQUEST); outMsg.writeInt32(beingId); outMsg.writeInt8(1); // Sell } -void NpcHandler::buyItem(int beingId A_UNUSED, int itemId, - unsigned char color A_UNUSED, int amount) +void NpcHandler::buyItem(const int beingId A_UNUSED, const int itemId, + const unsigned char color A_UNUSED, + const int amount) const { MessageOut outMsg(CMSG_NPC_BUY_REQUEST); outMsg.writeInt16(8); // One item (length of packet) @@ -187,7 +189,8 @@ void NpcHandler::buyItem(int beingId A_UNUSED, int itemId, outMsg.writeInt16(static_cast(itemId)); } -void NpcHandler::sellItem(int beingId A_UNUSED, int itemId, int amount) +void NpcHandler::sellItem(const int beingId A_UNUSED, + const int itemId, const int amount) const { MessageOut outMsg(CMSG_NPC_SELL_REQUEST); outMsg.writeInt16(8); // One item (length of packet) @@ -195,7 +198,7 @@ void NpcHandler::sellItem(int beingId A_UNUSED, int itemId, int amount) outMsg.writeInt16(static_cast(amount)); } -int NpcHandler::getNpc(Net::MessageIn &msg, bool haveLength) +int NpcHandler::getNpc(Net::MessageIn &msg, const bool haveLength) { if (haveLength) msg.readInt16(); // length @@ -231,9 +234,10 @@ int NpcHandler::getNpc(Net::MessageIn &msg, bool haveLength) } else { - if (mDialog && mDialog != diag->second.dialog) + NpcDialog *const dialog = diag->second.dialog; + if (mDialog && mDialog != dialog) mDialog->restoreCamera(); - mDialog = diag->second.dialog; + mDialog = dialog; if (mDialog) mDialog->saveCamera(); } @@ -241,14 +245,14 @@ int NpcHandler::getNpc(Net::MessageIn &msg, bool haveLength) } void NpcHandler::processNpcCutin(Net::MessageIn &msg A_UNUSED, - int npcId A_UNUSED) + int npcId A_UNUSED) const { msg.readString(64); // image name msg.readInt8(); // type } void NpcHandler::processNpcViewPoint(Net::MessageIn &msg A_UNUSED, - int npcId A_UNUSED) + int npcId A_UNUSED) const { msg.readInt32(); // type msg.readInt32(); // x diff --git a/src/net/eathena/npchandler.h b/src/net/eathena/npchandler.h index fc6a3fb6e..196da8398 100644 --- a/src/net/eathena/npchandler.h +++ b/src/net/eathena/npchandler.h @@ -44,33 +44,38 @@ class NpcHandler final : public MessageHandler, public Ea::NpcHandler A_DELETE_COPY(NpcHandler) - void handleMessage(Net::MessageIn &msg); + void handleMessage(Net::MessageIn &msg) override; - void talk(int npcId); + void talk(const int npcId) const override; - void nextDialog(int npcId); + void nextDialog(const int npcId) const override; - void closeDialog(int npcId); + void closeDialog(const int npcId) override; - void listInput(int npcId, unsigned char value); + void listInput(const int npcId, + const unsigned char value) const override; - void integerInput(int npcId, int value); + void integerInput(const int npcId, const int value) const override; - void stringInput(int npcId, const std::string &value); + void stringInput(const int npcId, + const std::string &value) const override; - void buy(int beingId); + void buy(const int beingId) const override; - void sell(int beingId); + void sell(const int beingId) const override; - void buyItem(int beingId, int itemId, unsigned char color, int amount); + void buyItem(const int beingId, const int itemId, + const unsigned char color, + const int amount) const override; - void sellItem(int beingId, int itemId, int amount); + void sellItem(const int beingId, const int itemId, + const int amount) const override; - int getNpc(Net::MessageIn &msg, bool haveLength); + int getNpc(Net::MessageIn &msg, const bool haveLength) override; - void processNpcCutin(Net::MessageIn &msg, int npcId); + void processNpcCutin(Net::MessageIn &msg, const int npcId) const; - void processNpcViewPoint(Net::MessageIn &msg, int npcId); + void processNpcViewPoint(Net::MessageIn &msg, const int npcId) const; }; } // namespace EAthena diff --git a/src/net/npchandler.h b/src/net/npchandler.h index c0fa49a9a..685e04c57 100644 --- a/src/net/npchandler.h +++ b/src/net/npchandler.h @@ -34,33 +34,37 @@ class NpcHandler virtual ~NpcHandler() { } - virtual void talk(int npcId) = 0; + virtual void talk(const int npcId) const = 0; - virtual void nextDialog(int npcId) = 0; + virtual void nextDialog(const int npcId) const = 0; - virtual void closeDialog(int npcId) = 0; + virtual void closeDialog(const int npcId) = 0; - virtual void listInput(int npcId, unsigned char value) = 0; + virtual void listInput(const int npcId, + const unsigned char value) const = 0; - virtual void integerInput(int npcId, int value) = 0; + virtual void integerInput(const int npcId, const int value) const = 0; - virtual void stringInput(int npcId, const std::string &value) = 0; + virtual void stringInput(const int npcId, + const std::string &value) const = 0; - virtual void sendLetter(int npcId, const std::string &recipient, - const std::string &text) = 0; + virtual void sendLetter(const int npcId, const std::string &recipient, + const std::string &text) const = 0; - virtual void startShopping(int beingId) = 0; + virtual void startShopping(const int beingId) const = 0; - virtual void buy(int beingId) = 0; + virtual void buy(const int beingId) const = 0; - virtual void sell(int beingId) = 0; + virtual void sell(const int beingId) const = 0; - virtual void buyItem(int beingId, int itemId, unsigned char color, - int amount) = 0; + virtual void buyItem(const int beingId, const int itemId, + const unsigned char color, + const int amount) const = 0; - virtual void sellItem(int beingId, int itemId, int amount) = 0; + virtual void sellItem(const int beingId, const int itemId, + const int amount) const = 0; - virtual void endShopping(int beingId) = 0; + virtual void endShopping(const int beingId) const = 0; virtual void clearDialogs() = 0; }; diff --git a/src/net/tmwa/npchandler.cpp b/src/net/tmwa/npchandler.cpp index 9166c5b84..0c55d8d7e 100644 --- a/src/net/tmwa/npchandler.cpp +++ b/src/net/tmwa/npchandler.cpp @@ -111,20 +111,20 @@ void NpcHandler::handleMessage(Net::MessageIn &msg) BLOCK_END("NpcHandler::handleMessage") } -void NpcHandler::talk(int npcId) +void NpcHandler::talk(const int npcId) const { MessageOut outMsg(CMSG_NPC_TALK); outMsg.writeInt32(npcId); outMsg.writeInt8(0); // Unused } -void NpcHandler::nextDialog(int npcId) +void NpcHandler::nextDialog(const int npcId) const { MessageOut outMsg(CMSG_NPC_NEXT_REQUEST); outMsg.writeInt32(npcId); } -void NpcHandler::closeDialog(int npcId) +void NpcHandler::closeDialog(const int npcId) { MessageOut outMsg(CMSG_NPC_CLOSE); outMsg.writeInt32(npcId); @@ -132,29 +132,30 @@ void NpcHandler::closeDialog(int npcId) const NpcDialogs::iterator it = mNpcDialogs.find(npcId); if (it != mNpcDialogs.end()) { - if ((*it).second.dialog) - (*it).second.dialog->close(); - if ((*it).second.dialog == mDialog) + NpcDialog *const dialog = (*it).second.dialog; + if (dialog) + dialog->close(); + if (dialog == mDialog) mDialog = nullptr; mNpcDialogs.erase(it); } } -void NpcHandler::listInput(int npcId, unsigned char value) +void NpcHandler::listInput(const int npcId, const unsigned char value) const { MessageOut outMsg(CMSG_NPC_LIST_CHOICE); outMsg.writeInt32(npcId); outMsg.writeInt8(value); } -void NpcHandler::integerInput(int npcId, int value) +void NpcHandler::integerInput(const int npcId, const int value) const { MessageOut outMsg(CMSG_NPC_INT_RESPONSE); outMsg.writeInt32(npcId); outMsg.writeInt32(value); } -void NpcHandler::stringInput(int npcId, const std::string &value) +void NpcHandler::stringInput(const int npcId, const std::string &value) const { MessageOut outMsg(CMSG_NPC_STR_RESPONSE); outMsg.writeInt16(static_cast(value.length() + 9)); @@ -163,22 +164,22 @@ void NpcHandler::stringInput(int npcId, const std::string &value) outMsg.writeInt8(0); // Prevent problems with string reading } -void NpcHandler::buy(int beingId) +void NpcHandler::buy(const int beingId) const { MessageOut outMsg(CMSG_NPC_BUY_SELL_REQUEST); outMsg.writeInt32(beingId); outMsg.writeInt8(0); // Buy } -void NpcHandler::sell(int beingId) +void NpcHandler::sell(const int beingId) const { MessageOut outMsg(CMSG_NPC_BUY_SELL_REQUEST); outMsg.writeInt32(beingId); outMsg.writeInt8(1); // Sell } -void NpcHandler::buyItem(int beingId A_UNUSED, int itemId, - unsigned char color, int amount) +void NpcHandler::buyItem(const int beingId A_UNUSED, const int itemId, + const unsigned char color, const int amount) const { MessageOut outMsg(CMSG_NPC_BUY_REQUEST); if (serverVersion > 0) @@ -197,7 +198,8 @@ void NpcHandler::buyItem(int beingId A_UNUSED, int itemId, } } -void NpcHandler::sellItem(int beingId A_UNUSED, int itemId, int amount) +void NpcHandler::sellItem(const int beingId A_UNUSED, + const int itemId, const int amount) const { MessageOut outMsg(CMSG_NPC_SELL_REQUEST); outMsg.writeInt16(8); // One item (length of packet) @@ -205,7 +207,7 @@ void NpcHandler::sellItem(int beingId A_UNUSED, int itemId, int amount) outMsg.writeInt16(static_cast(amount)); } -int NpcHandler::getNpc(Net::MessageIn &msg, bool haveLength) +int NpcHandler::getNpc(Net::MessageIn &msg, const bool haveLength) { if (haveLength) msg.readInt16(); // length @@ -241,16 +243,17 @@ int NpcHandler::getNpc(Net::MessageIn &msg, bool haveLength) } else { - if (mDialog && mDialog != diag->second.dialog) + NpcDialog *const dialog = diag->second.dialog; + if (mDialog && mDialog != dialog) mDialog->restoreCamera(); - mDialog = diag->second.dialog; + mDialog = dialog; if (mDialog) mDialog->saveCamera(); } return npcId; } -void NpcHandler::processNpcCommand(Net::MessageIn &msg, int npcId) +void NpcHandler::processNpcCommand(Net::MessageIn &msg, const int npcId) { const int cmd = msg.readInt16(); switch (cmd) @@ -324,7 +327,8 @@ void NpcHandler::processNpcCommand(Net::MessageIn &msg, int npcId) } } -void NpcHandler::processLangReuqest(Net::MessageIn &msg A_UNUSED, int npcId) +void NpcHandler::processLangReuqest(Net::MessageIn &msg A_UNUSED, + const int npcId) { mRequestLang = false; stringInput(npcId, getLangSimple()); diff --git a/src/net/tmwa/npchandler.h b/src/net/tmwa/npchandler.h index 1659cfb5c..139f37872 100644 --- a/src/net/tmwa/npchandler.h +++ b/src/net/tmwa/npchandler.h @@ -44,33 +44,39 @@ class NpcHandler final : public MessageHandler, public Ea::NpcHandler A_DELETE_COPY(NpcHandler) - void handleMessage(Net::MessageIn &msg); + void handleMessage(Net::MessageIn &msg) override; - void talk(int npcId); + void talk(const int npcId) const override; - void nextDialog(int npcId); + void nextDialog(const int npcId) const override; - void closeDialog(int npcId); + void closeDialog(const int npcId) override; - void listInput(int npcId, unsigned char value); + void listInput(const int npcId, + const unsigned char value) const override; - void integerInput(int npcId, int value); + void integerInput(const int npcId, const int value) const override; - void stringInput(int npcId, const std::string &value); + void stringInput(const int npcId, + const std::string &value) const override; - void buy(int beingId); + void buy(const int beingId) const override; - void sell(int beingId); + void sell(const int beingId) const override; - void buyItem(int beingId, int itemId, unsigned char color, int amount); + void buyItem(const int beingId, const int itemId, + const unsigned char color, + const int amount) const override; - void sellItem(int beingId, int itemId, int amount); + void sellItem(const int beingId, const int itemId, + const int amount) const override; - int getNpc(Net::MessageIn &msg, bool haveLength) A_WARN_UNUSED; + int getNpc(Net::MessageIn &msg, + const bool haveLength) override A_WARN_UNUSED; - void processNpcCommand(Net::MessageIn &msg, int npcId); + void processNpcCommand(Net::MessageIn &msg, const int npcId); - void processLangReuqest(Net::MessageIn &msg, int npcId); + void processLangReuqest(Net::MessageIn &msg, const int npcId); private: bool mRequestLang; -- cgit v1.2.3-70-g09d2