From 009cfa4b2959bf89370e9d271f2244ef5446f3a0 Mon Sep 17 00:00:00 2001 From: Chuck Miller Date: Fri, 12 Nov 2010 20:58:30 -0500 Subject: Change NPC handling in the net code Instead of using events to invoke netcode, invoke netcode directly and have it send events Reviewed-by: Freeyorp --- src/gui/npcdialog.cpp | 30 ++++++++++-------------------- 1 file changed, 10 insertions(+), 20 deletions(-) (limited to 'src/gui/npcdialog.cpp') diff --git a/src/gui/npcdialog.cpp b/src/gui/npcdialog.cpp index 33c18eca..5b1939a6 100644 --- a/src/gui/npcdialog.cpp +++ b/src/gui/npcdialog.cpp @@ -37,6 +37,9 @@ #include "gui/widgets/textbox.h" #include "gui/widgets/textfield.h" +#include "net/net.h" +#include "net/npchandler.h" + #include "utils/gettext.h" #include "utils/stringutils.h" @@ -47,9 +50,6 @@ #define CAPTION_CLOSE _("Close") #define CAPTION_SUBMIT _("Submit") -#define NpcEvent(name) Mana::Event event(name);\ -event.setInt("npcId", mNpcId); - typedef std::map NpcDialogs; class NpcEventListener : public Mana::Listener @@ -225,25 +225,19 @@ void NpcDialog::action(const gcn::ActionEvent &event) printText = mItems[selectedIndex]; - NpcEvent(EVENT_DOMENU) - event.setInt("choice", selectedIndex + 1); - event.trigger(CHANNEL_NPC); + Net::getNpcHandler()->menuSelect(mNpcId, selectedIndex + 1); } else if (mInputState == NPC_INPUT_STRING) { printText = mTextField->getText(); - NpcEvent(EVENT_DOSTRINGINPUT) - event.setString("value", printText); - event.trigger(CHANNEL_NPC); + Net::getNpcHandler()->stringInput(mNpcId, printText); } else if (mInputState == NPC_INPUT_INTEGER) { printText = strprintf("%d", mIntField->getValue()); - NpcEvent(EVENT_DOINTEGERINPUT) - event.setInt("value", mIntField->getValue()); - event.trigger(CHANNEL_NPC); + Net::getNpcHandler()->integerInput(mNpcId, mIntField->getValue()); } // addText will auto remove the input layout addText(strprintf("\n> \"%s\"\n", printText.c_str()), false); @@ -281,14 +275,12 @@ void NpcDialog::action(const gcn::ActionEvent &event) void NpcDialog::nextDialog() { - NpcEvent(EVENT_DONEXT); - event.trigger(CHANNEL_NPC); + Net::getNpcHandler()->nextDialog(mNpcId); } void NpcDialog::closeDialog() { - NpcEvent(EVENT_DOCLOSE); - event.trigger(CHANNEL_NPC); + Net::getNpcHandler()->closeDialog(mNpcId); close(); } @@ -559,8 +551,7 @@ void NpcEventListener::event(Channels channel, if (!dialog) { int mNpcId = id; - NpcEvent(EVENT_DONEXT); - event.trigger(CHANNEL_NPC); + Net::getNpcHandler()->nextDialog(mNpcId); return; } @@ -574,8 +565,7 @@ void NpcEventListener::event(Channels channel, if (!dialog) { int mNpcId = id; - NpcEvent(EVENT_DOCLOSE); - event.trigger(CHANNEL_NPC); + Net::getNpcHandler()->closeDialog(mNpcId); return; } -- cgit v1.2.3-70-g09d2