diff options
Diffstat (limited to 'src/net/tmwa')
-rw-r--r-- | src/net/tmwa/questhandler.cpp | 37 | ||||
-rw-r--r-- | src/net/tmwa/questhandler.h | 4 | ||||
-rw-r--r-- | src/net/tmwa/questrecv.cpp | 67 | ||||
-rw-r--r-- | src/net/tmwa/questrecv.h | 37 |
4 files changed, 107 insertions, 38 deletions
diff --git a/src/net/tmwa/questhandler.cpp b/src/net/tmwa/questhandler.cpp index d308d33f6..d40603b7f 100644 --- a/src/net/tmwa/questhandler.cpp +++ b/src/net/tmwa/questhandler.cpp @@ -24,6 +24,7 @@ #include "gui/windows/questswindow.h" #include "net/tmwa/protocol.h" +#include "net/tmwa/questrecv.h" #include "resources/skillconsts.h" @@ -52,11 +53,11 @@ void QuestHandler::handleMessage(Net::MessageIn &msg) switch (msg.getId()) { case SMSG_QUEST_SET_VAR: - processSetQuestVar(msg); + QuestRecv::processSetQuestVar(msg); break; case SMSG_QUEST_PLAYER_VARS: - processPlayerQuests(msg); + QuestRecv::processPlayerQuests(msg); break; default: @@ -65,38 +66,6 @@ void QuestHandler::handleMessage(Net::MessageIn &msg) BLOCK_END("QuestHandler::handleMessage") } -void QuestHandler::processSetQuestVar(Net::MessageIn &msg) -{ - const int var = msg.readInt16("variable"); - const int val = msg.readInt32("value"); - if (questsWindow) - { - questsWindow->updateQuest(var, val); - questsWindow->rebuild(true); - } - if (skillDialog) - { - skillDialog->updateQuest(var, val); - skillDialog->playUpdateEffect(var + SKILL_VAR_MIN_ID); - } -} - -void QuestHandler::processPlayerQuests(Net::MessageIn &msg) -{ - const int count = (msg.readInt16("len") - 4) / 6; - for (int f = 0; f < count; f ++) - { - const int var = msg.readInt16("variable"); - const int val = msg.readInt32("value"); - if (questsWindow) - questsWindow->updateQuest(var, val); - if (skillDialog) - skillDialog->updateQuest(var, val); - } - if (questsWindow) - questsWindow->rebuild(false); -} - void QuestHandler::setQeustActiveState(const int questId A_UNUSED, const bool active A_UNUSED) const { diff --git a/src/net/tmwa/questhandler.h b/src/net/tmwa/questhandler.h index c63fa56b0..920df82fb 100644 --- a/src/net/tmwa/questhandler.h +++ b/src/net/tmwa/questhandler.h @@ -40,10 +40,6 @@ class QuestHandler final : public MessageHandler, void setQeustActiveState(const int questId, const bool active) const override final; - protected: - static void processSetQuestVar(Net::MessageIn &msg); - - static void processPlayerQuests(Net::MessageIn &msg); }; } // namespace TmwAthena diff --git a/src/net/tmwa/questrecv.cpp b/src/net/tmwa/questrecv.cpp new file mode 100644 index 000000000..51971f1f9 --- /dev/null +++ b/src/net/tmwa/questrecv.cpp @@ -0,0 +1,67 @@ +/* + * The ManaPlus Client + * Copyright (C) 2012-2015 The ManaPlus Developers + * + * This file is part of The ManaPlus Client. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#include "net/tmwa/questrecv.h" + +#include "gui/windows/skilldialog.h" +#include "gui/windows/questswindow.h" + +#include "net/tmwa/protocol.h" + +#include "resources/skillconsts.h" + +#include "debug.h" + +namespace TmwAthena +{ + +void QuestRecv::processSetQuestVar(Net::MessageIn &msg) +{ + const int var = msg.readInt16("variable"); + const int val = msg.readInt32("value"); + if (questsWindow) + { + questsWindow->updateQuest(var, val); + questsWindow->rebuild(true); + } + if (skillDialog) + { + skillDialog->updateQuest(var, val); + skillDialog->playUpdateEffect(var + SKILL_VAR_MIN_ID); + } +} + +void QuestRecv::processPlayerQuests(Net::MessageIn &msg) +{ + const int count = (msg.readInt16("len") - 4) / 6; + for (int f = 0; f < count; f ++) + { + const int var = msg.readInt16("variable"); + const int val = msg.readInt32("value"); + if (questsWindow) + questsWindow->updateQuest(var, val); + if (skillDialog) + skillDialog->updateQuest(var, val); + } + if (questsWindow) + questsWindow->rebuild(false); +} + +} // namespace TmwAthena diff --git a/src/net/tmwa/questrecv.h b/src/net/tmwa/questrecv.h new file mode 100644 index 000000000..41d6be3da --- /dev/null +++ b/src/net/tmwa/questrecv.h @@ -0,0 +1,37 @@ +/* + * The ManaPlus Client + * Copyright (C) 2012-2015 The ManaPlus Developers + * + * This file is part of The ManaPlus Client. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#ifndef NET_TMWA_QUESTRECV_H +#define NET_TMWA_QUESTRECV_H + +#include "net/tmwa/messagehandler.h" + +#include "net/questhandler.h" + +namespace TmwAthena +{ + namespace QuestRecv + { + void processSetQuestVar(Net::MessageIn &msg); + void processPlayerQuests(Net::MessageIn &msg); + } // namespace QuestRecv +} // namespace TmwAthena + +#endif // NET_TMWA_QUESTRECV_H |