summaryrefslogtreecommitdiff
path: root/src/net
diff options
context:
space:
mode:
authorJared Adams <jaxad0127@gmail.com>2009-01-07 15:22:44 +0000
committerJared Adams <jaxad0127@gmail.com>2009-01-18 10:24:58 +0000
commitccef6c4284a9cc250da72c5835501ae03c2c513f (patch)
tree0edc78d5572fe8a407884f772031bf6f1cac4ec2 /src/net
parent5340364ee4b91d5d26358d1ec131016946f2998b (diff)
downloadmana-ccef6c4284a9cc250da72c5835501ae03c2c513f.tar.gz
mana-ccef6c4284a9cc250da72c5835501ae03c2c513f.tar.bz2
mana-ccef6c4284a9cc250da72c5835501ae03c2c513f.tar.xz
mana-ccef6c4284a9cc250da72c5835501ae03c2c513f.zip
Add dialogs to input text and numbers for scripts
Diffstat (limited to 'src/net')
-rw-r--r--src/net/npchandler.cpp22
-rw-r--r--src/net/protocol.h4
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