diff options
author | Philipp Sehmisch <crush@themanaworld.org> | 2009-01-18 23:12:15 +0100 |
---|---|---|
committer | Philipp Sehmisch <crush@themanaworld.org> | 2009-01-18 23:12:15 +0100 |
commit | a10cebb21bdd211716628039b406362f2168c852 (patch) | |
tree | f8776ca56b5972b1ae6bae31e84b12d37019d41a /src/net | |
parent | f4abf6b94adf53db7a053f7c342cc79f69a03262 (diff) | |
parent | a2c136d3ae4f192f30ea229c4a313bc528e26c90 (diff) | |
download | mana-a10cebb21bdd211716628039b406362f2168c852.tar.gz mana-a10cebb21bdd211716628039b406362f2168c852.tar.bz2 mana-a10cebb21bdd211716628039b406362f2168c852.tar.xz mana-a10cebb21bdd211716628039b406362f2168c852.zip |
Merge branch 'master' of git@gitorious.org:tmw/eathena
Diffstat (limited to 'src/net')
-rw-r--r-- | src/net/npchandler.cpp | 22 | ||||
-rw-r--r-- | src/net/protocol.h | 4 |
2 files changed, 26 insertions, 0 deletions
diff --git a/src/net/npchandler.cpp b/src/net/npchandler.cpp index b633835c..d8763f43 100644 --- a/src/net/npchandler.cpp +++ b/src/net/npchandler.cpp @@ -27,11 +27,15 @@ #include "../beingmanager.h" #include "../npc.h" +#include "../gui/npcintegerdialog.h" #include "../gui/npclistdialog.h" +#include "../gui/npcstringdialog.h" #include "../gui/npc_text.h" +extern NpcIntegerDialog *npcIntegerDialog; extern NpcListDialog *npcListDialog; extern NpcTextDialog *npcTextDialog; +extern NpcStringDialog *npcStringDialog; NPCHandler::NPCHandler() { @@ -40,6 +44,8 @@ NPCHandler::NPCHandler() SMSG_NPC_MESSAGE, SMSG_NPC_NEXT, SMSG_NPC_CLOSE, + SMSG_NPC_INT_INPUT, + SMSG_NPC_STR_INPUT, 0 }; handledMessages = _messages; @@ -78,5 +84,21 @@ void NPCHandler::handleMessage(MessageIn *msg) case SMSG_NPC_NEXT: // Next button in NPC dialog, currently unused break; + + case SMSG_NPC_INT_INPUT: + // Request for an integer + id = msg->readInt32(); + current_npc = dynamic_cast<NPC*>(beingManager->findBeing(id)); + npcIntegerDialog->prepDialog(0, 0, 2147483647); + npcIntegerDialog->setVisible(true); + break; + + case SMSG_NPC_STR_INPUT: + // Request for a string + id = msg->readInt32(); + current_npc = dynamic_cast<NPC*>(beingManager->findBeing(id)); + npcStringDialog->setValue(""); + npcStringDialog->setVisible(true); + break; } } diff --git a/src/net/protocol.h b/src/net/protocol.h index d7bdd041..f52aa794 100644 --- a/src/net/protocol.h +++ b/src/net/protocol.h @@ -75,6 +75,8 @@ #define SMSG_NPC_SELL 0x00c7 #define SMSG_NPC_BUY_RESPONSE 0x00ca #define SMSG_NPC_SELL_RESPONSE 0x00cb +#define SMSG_NPC_INT_INPUT 0x0142 /**< Integer input */ +#define SMSG_NPC_STR_INPUT 0x01d4 /**< String input */ #define SMSG_PLAYER_CHAT 0x008e /**< Player talks */ #define SMSG_WHISPER 0x0097 /**< Whisper Recieved */ #define SMSG_WHISPER_RESPONSE 0x0098 @@ -100,6 +102,8 @@ #define CMSG_NPC_LIST_CHOICE 0x00b8 #define CMSG_NPC_NEXT_REQUEST 0x00b9 #define CMSG_NPC_SELL_REQUEST 0x00c9 +#define CMSG_NPC_INT_RESPONSE 0x0143 +#define CMSG_NPC_STR_RESPONSE 0x01d5 #define CMSG_SKILL_LEVELUP_REQUEST 0x0112 #define CMSG_STAT_UPDATE_REQUEST 0x00bb #define CMSG_TRADE_ITEM_ADD_REQUEST 0x00e8 |