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 ++++++++++-------------------- src/gui/npcpostdialog.cpp | 11 ++++++----- 2 files changed, 16 insertions(+), 25 deletions(-) (limited to 'src/gui') 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; } diff --git a/src/gui/npcpostdialog.cpp b/src/gui/npcpostdialog.cpp index 7a85dda5..c53203be 100644 --- a/src/gui/npcpostdialog.cpp +++ b/src/gui/npcpostdialog.cpp @@ -30,6 +30,9 @@ #include "gui/widgets/textfield.h" #include "gui/widgets/scrollarea.h" +#include "net/net.h" +#include "net/npchandler.h" + #include "utils/gettext.h" NpcPostDialog::DialogList NpcPostDialog::instances; @@ -97,11 +100,9 @@ void NpcPostDialog::action(const gcn::ActionEvent &event) } else { - Mana::Event event(EVENT_DOSENDLETTER); - event.setInt("npcId", mNpcId); - event.setString("recipient", mSender->getText()); - event.setString("text", mText->getText()); - event.trigger(CHANNEL_NPC); + Net::getNpcHandler()->sendLetter(mNpcId, + mSender->getText(), + mText->getText()); } setVisible(false); } -- cgit v1.2.3-70-g09d2