diff options
author | Andrei Karas <akaras@inbox.ru> | 2013-12-17 14:42:42 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2013-12-17 14:42:42 +0300 |
commit | a714d83889a34d30b542c3c6ab7c49228fe71f53 (patch) | |
tree | 0e5f9887c73b5c0854b30370714c2cc3579acf61 | |
parent | 79114bbfe4bddf95345c33505a750f3aa80f1c56 (diff) | |
download | manaplus-a714d83889a34d30b542c3c6ab7c49228fe71f53.tar.gz manaplus-a714d83889a34d30b542c3c6ab7c49228fe71f53.tar.bz2 manaplus-a714d83889a34d30b542c3c6ab7c49228fe71f53.tar.xz manaplus-a714d83889a34d30b542c3c6ab7c49228fe71f53.zip |
Add support for set npc dialog title from server script.
Change client version netcode to 12.
-rw-r--r-- | src/net/tmwa/network.cpp | 2 | ||||
-rw-r--r-- | src/net/tmwa/network.h | 2 | ||||
-rw-r--r-- | src/net/tmwa/npchandler.cpp | 16 | ||||
-rw-r--r-- | src/net/tmwa/npchandler.h | 2 | ||||
-rw-r--r-- | src/net/tmwa/protocol.h | 1 |
5 files changed, 20 insertions, 3 deletions
diff --git a/src/net/tmwa/network.cpp b/src/net/tmwa/network.cpp index 24615ab16..77b28dadd 100644 --- a/src/net/tmwa/network.cpp +++ b/src/net/tmwa/network.cpp @@ -78,7 +78,7 @@ int16_t packet_lengths[] = // #0x0200 26, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 19, 10, 0, 0, 0, 2, -1, 16, 0, 8, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - -1, 122, -1, -1, -1, -1, 10, -1, 0, 0, 0, 0, 0, 0, 0, 0, + -1, 122, -1, -1, -1, -1, 10, -1, -1, 0, 0, 0, 0, 0, 0, 0, }; static const int packet_lengths_size diff --git a/src/net/tmwa/network.h b/src/net/tmwa/network.h index 83bd34610..21ff221aa 100644 --- a/src/net/tmwa/network.h +++ b/src/net/tmwa/network.h @@ -31,7 +31,7 @@ * Protocol version, reported to the eAthena char and mapserver who can adjust * the protocol accordingly. */ -#define CLIENT_PROTOCOL_VERSION 11 +#define CLIENT_PROTOCOL_VERSION 12 #define CLIENT_TMW_PROTOCOL_VERSION 1 namespace TmwAthena diff --git a/src/net/tmwa/npchandler.cpp b/src/net/tmwa/npchandler.cpp index 7dc926c73..18191769f 100644 --- a/src/net/tmwa/npchandler.cpp +++ b/src/net/tmwa/npchandler.cpp @@ -57,6 +57,7 @@ NpcHandler::NpcHandler() : SMSG_NPC_INT_INPUT, SMSG_NPC_STR_INPUT, SMSG_NPC_COMMAND, + SMSG_NPC_CHANGETITLE, 0 }; handledMessages = _messages; @@ -66,8 +67,10 @@ NpcHandler::NpcHandler() : 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_MESSAGE + || msg.getId() == SMSG_NPC_CHANGETITLE); if (msg.getId() != SMSG_NPC_STR_INPUT) mRequestLang = false; @@ -105,6 +108,10 @@ void NpcHandler::handleMessage(Net::MessageIn &msg) processNpcCommand(msg, npcId); break; + case SMSG_NPC_CHANGETITLE: + processChangeTitle(msg, npcId); + break; + default: break; } @@ -339,4 +346,11 @@ void NpcHandler::processLangReuqest(Net::MessageIn &msg A_UNUSED, stringInput(npcId, getLangSimple()); } +void NpcHandler::processChangeTitle(Net::MessageIn &msg, const int npcId) const +{ + const std::string str = msg.readString(); + if (mDialog) + mDialog->setCaption(str); +} + } // namespace TmwAthena diff --git a/src/net/tmwa/npchandler.h b/src/net/tmwa/npchandler.h index 50238cdf7..2cd4a3cd0 100644 --- a/src/net/tmwa/npchandler.h +++ b/src/net/tmwa/npchandler.h @@ -72,6 +72,8 @@ class NpcHandler final : public MessageHandler, public Ea::NpcHandler void processLangReuqest(Net::MessageIn &msg, const int npcId); + void processChangeTitle(Net::MessageIn &msg, const int npcId) const; + private: bool mRequestLang; }; diff --git a/src/net/tmwa/protocol.h b/src/net/tmwa/protocol.h index 965c67a50..a09a498aa 100644 --- a/src/net/tmwa/protocol.h +++ b/src/net/tmwa/protocol.h @@ -352,6 +352,7 @@ enum #define SMSG_BEING_MOVE3 0x0225 #define SMSG_MAP_MASK 0x0226 #define SMSG_MAP_MUSIC 0x0227 +#define SMSG_NPC_CHANGETITLE 0x0228 #define CMSG_SEND_CLIENT_INFO 0x7533 #define SMSG_UPDATE_HOST2 0x7534 |