From be3c1cf049d3df146d18acfb7cbead2ef3f660f1 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Thu, 28 Mar 2013 23:21:07 +0300 Subject: improve generalhandler class. --- src/net/tmwa/generalhandler.cpp | 118 ++++++++++++++++++---------------------- src/net/tmwa/generalhandler.h | 23 ++++---- 2 files changed, 65 insertions(+), 76 deletions(-) (limited to 'src/net/tmwa') 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(mLoginHandler.get())->clearWorlds(); - static_cast( - mCharServerHandler.get())->setCharCreateDialog(nullptr); - static_cast( - mCharServerHandler.get())->setCharSelectDialog(nullptr); - + CharServerHandler *charHandler = static_cast( + mCharServerHandler.get()); + charHandler->setCharCreateDialog(nullptr); + charHandler->setCharSelectDialog(nullptr); static_cast(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; -- cgit v1.2.3-70-g09d2