summaryrefslogtreecommitdiff
path: root/src/net/tmwa
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2013-03-28 23:21:07 +0300
committerAndrei Karas <akaras@inbox.ru>2013-03-28 23:21:07 +0300
commitbe3c1cf049d3df146d18acfb7cbead2ef3f660f1 (patch)
tree9f70999543adce3be255abdad6a9e284de266f50 /src/net/tmwa
parent58974e6733a39bd55b9511f0010e0a8b7cd49aa4 (diff)
downloadmanaplus-be3c1cf049d3df146d18acfb7cbead2ef3f660f1.tar.gz
manaplus-be3c1cf049d3df146d18acfb7cbead2ef3f660f1.tar.bz2
manaplus-be3c1cf049d3df146d18acfb7cbead2ef3f660f1.tar.xz
manaplus-be3c1cf049d3df146d18acfb7cbead2ef3f660f1.zip
improve generalhandler class.
Diffstat (limited to 'src/net/tmwa')
-rw-r--r--src/net/tmwa/generalhandler.cpp118
-rw-r--r--src/net/tmwa/generalhandler.h23
2 files changed, 65 insertions, 76 deletions
diff --git a/src/net/tmwa/generalhandler.cpp b/src/net/tmwa/generalhandler.cpp
index f6a78372e..b1a555d4f 100644
--- a/src/net/tmwa/generalhandler.cpp
+++ b/src/net/tmwa/generalhandler.cpp
@@ -109,8 +109,6 @@ GeneralHandler::GeneralHandler() :
stats.push_back(ItemDB::Stat("luck", _("Luck %+d")));
ItemDB::setStatsList(stats);
-
- listen(CHANNEL_GAME);
}
GeneralHandler::~GeneralHandler()
@@ -122,12 +120,12 @@ GeneralHandler::~GeneralHandler()
void GeneralHandler::handleMessage(Net::MessageIn &msg)
{
BLOCK_START("GeneralHandler::handleMessage")
- int code;
switch (msg.getId())
{
case SMSG_CONNECTION_PROBLEM:
- code = msg.readInt8();
+ {
+ const int code = msg.readInt8();
logger->log("Connection problem: %i", code);
switch (code)
@@ -161,9 +159,11 @@ void GeneralHandler::handleMessage(Net::MessageIn &msg)
}
Client::setState(STATE_ERROR);
break;
+ }
default:
break;
+
}
BLOCK_END("GeneralHandler::handleMessage")
}
@@ -199,11 +199,10 @@ void GeneralHandler::reload()
mNetwork->disconnect();
static_cast<LoginHandler*>(mLoginHandler.get())->clearWorlds();
- static_cast<CharServerHandler*>(
- mCharServerHandler.get())->setCharCreateDialog(nullptr);
- static_cast<CharServerHandler*>(
- mCharServerHandler.get())->setCharSelectDialog(nullptr);
-
+ CharServerHandler *charHandler = static_cast<CharServerHandler*>(
+ mCharServerHandler.get());
+ charHandler->setCharCreateDialog(nullptr);
+ charHandler->setCharSelectDialog(nullptr);
static_cast<PartyHandler*>(mPartyHandler.get())->reload();
}
@@ -246,66 +245,55 @@ void GeneralHandler::clearHandlers()
mNetwork->clearHandlers();
}
-void GeneralHandler::processEvent(Channels channel,
- const DepricatedEvent &event)
+void GeneralHandler::gameStarted() const
{
- if (channel == CHANNEL_GAME)
- {
- if (event.getName() == EVENT_GUIWINDOWSLOADED)
- {
- if (inventoryWindow)
- inventoryWindow->setSplitAllowed(false);
- if (skillDialog)
- skillDialog->loadSkills();
-
- if (!statusWindow)
- return;
-
- // protection against double addition attributes.
- statusWindow->clearAttributes();
-
- statusWindow->addAttribute(STR, _("Strength"), "str", true, "");
- statusWindow->addAttribute(AGI, _("Agility"), "agi", true, "");
- statusWindow->addAttribute(VIT, _("Vitality"), "vit", true, "");
- statusWindow->addAttribute(INT, _("Intelligence"),
- "int", true, "");
- statusWindow->addAttribute(DEX, _("Dexterity"), "dex", true, "");
- statusWindow->addAttribute(LUK, _("Luck"), "luk", true, "");
-
- statusWindow->addAttribute(ATK, _("Attack"));
- statusWindow->addAttribute(DEF, _("Defense"));
- statusWindow->addAttribute(MATK, _("M.Attack"));
- statusWindow->addAttribute(MDEF, _("M.Defense"));
- // xgettext:no-c-format
- statusWindow->addAttribute(HIT, _("% Accuracy"));
- // xgettext:no-c-format
- statusWindow->addAttribute(FLEE, _("% Evade"));
- // xgettext:no-c-format
- statusWindow->addAttribute(CRIT, _("% Critical"));
- statusWindow->addAttribute(PlayerInfo::ATTACK_DELAY,
- _("Attack Delay"));
- statusWindow->addAttribute(PlayerInfo::WALK_SPEED,
- _("Walk Delay"));
- statusWindow->addAttribute(PlayerInfo::ATTACK_RANGE,
- _("Attack Range"));
- statusWindow->addAttribute(PlayerInfo::ATTACK_SPEED,
- _("Damage per sec."));
- }
- else if (event.getName() == EVENT_GUIWINDOWSUNLOADING)
- {
- if (socialWindow)
- {
- socialWindow->removeTab(Ea::taGuild);
- socialWindow->removeTab(Ea::taParty);
- }
+ if (inventoryWindow)
+ inventoryWindow->setSplitAllowed(false);
+ if (skillDialog)
+ skillDialog->loadSkills();
- delete Ea::guildTab;
- Ea::guildTab = nullptr;
+ if (!statusWindow)
+ return;
- delete Ea::partyTab;
- Ea::partyTab = nullptr;
- }
+ // protection against double addition attributes.
+ statusWindow->clearAttributes();
+
+ statusWindow->addAttribute(STR, _("Strength"), "str", true, "");
+ statusWindow->addAttribute(AGI, _("Agility"), "agi", true, "");
+ statusWindow->addAttribute(VIT, _("Vitality"), "vit", true, "");
+ statusWindow->addAttribute(INT, _("Intelligence"), "int", true, "");
+ statusWindow->addAttribute(DEX, _("Dexterity"), "dex", true, "");
+ statusWindow->addAttribute(LUK, _("Luck"), "luk", true, "");
+
+ statusWindow->addAttribute(ATK, _("Attack"));
+ statusWindow->addAttribute(DEF, _("Defense"));
+ statusWindow->addAttribute(MATK, _("M.Attack"));
+ statusWindow->addAttribute(MDEF, _("M.Defense"));
+ // xgettext:no-c-format
+ statusWindow->addAttribute(HIT, _("% Accuracy"));
+ // xgettext:no-c-format
+ statusWindow->addAttribute(FLEE, _("% Evade"));
+ // xgettext:no-c-format
+ statusWindow->addAttribute(CRIT, _("% Critical"));
+ statusWindow->addAttribute(PlayerInfo::ATTACK_DELAY, _("Attack Delay"));
+ statusWindow->addAttribute(PlayerInfo::WALK_SPEED, _("Walk Delay"));
+ statusWindow->addAttribute(PlayerInfo::ATTACK_RANGE, _("Attack Range"));
+ statusWindow->addAttribute(PlayerInfo::ATTACK_SPEED, _("Damage per sec."));
+}
+
+void GeneralHandler::gameEnded() const
+{
+ if (socialWindow)
+ {
+ socialWindow->removeTab(Ea::taGuild);
+ socialWindow->removeTab(Ea::taParty);
}
+
+ delete Ea::guildTab;
+ Ea::guildTab = nullptr;
+
+ delete Ea::partyTab;
+ Ea::partyTab = nullptr;
}
} // namespace TmwAthena
diff --git a/src/net/tmwa/generalhandler.h b/src/net/tmwa/generalhandler.h
index e1254e18f..c25b7e7a3 100644
--- a/src/net/tmwa/generalhandler.h
+++ b/src/net/tmwa/generalhandler.h
@@ -33,8 +33,8 @@
namespace TmwAthena
{
-class GeneralHandler final : public MessageHandler, public Net::GeneralHandler,
- public Listener
+class GeneralHandler final : public MessageHandler,
+ public Net::GeneralHandler
{
public:
GeneralHandler();
@@ -43,22 +43,23 @@ class GeneralHandler final : public MessageHandler, public Net::GeneralHandler,
~GeneralHandler();
- void handleMessage(Net::MessageIn &msg);
+ void handleMessage(Net::MessageIn &msg) override;
- void load();
+ void load() override;
- void reload();
+ void reload() override;
- void unload();
+ void unload() override;
- void flushNetwork();
+ void flushNetwork() override;
- void clearHandlers();
+ void clearHandlers() override;
- void processEvent(Channels channel,
- const DepricatedEvent &event) override;
+ void reloadPartially() override;
- void reloadPartially();
+ void gameStarted() const override;
+
+ void gameEnded() const override;
protected:
MessageHandlerPtr mAdminHandler;