summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/CMakeLists.txt2
-rw-r--r--src/Makefile.am2
-rw-r--r--src/net/eathena/bank.cpp61
-rw-r--r--src/net/eathena/bank.h41
-rw-r--r--src/net/eathena/bankhandler.cpp34
5 files changed, 110 insertions, 30 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 02acfca5e..3c493e5d5 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -1522,6 +1522,8 @@ SET(SRCS_EATHENA
net/eathena/auction.h
net/eathena/auctionhandler.cpp
net/eathena/auctionhandler.h
+ net/eathena/bank.cpp
+ net/eathena/bank.h
net/eathena/bankhandler.cpp
net/eathena/bankhandler.h
net/eathena/battlegroundhandler.cpp
diff --git a/src/Makefile.am b/src/Makefile.am
index aaaf43fa5..ec8fae76d 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -1368,6 +1368,8 @@ manaplus_SOURCES += gui/windows/bankwindow.cpp \
net/eathena/auction.h \
net/eathena/auctionhandler.cpp \
net/eathena/auctionhandler.h \
+ net/eathena/bank.cpp \
+ net/eathena/bank.h \
net/eathena/bankhandler.cpp \
net/eathena/bankhandler.h \
net/eathena/battlegroundhandler.cpp \
diff --git a/src/net/eathena/bank.cpp b/src/net/eathena/bank.cpp
new file mode 100644
index 000000000..4e1f74f9c
--- /dev/null
+++ b/src/net/eathena/bank.cpp
@@ -0,0 +1,61 @@
+/*
+ * The ManaPlus Client
+ * Copyright (C) 2011-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/eathena/bank.h"
+
+#include "notifymanager.h"
+
+#include "enums/resources/notifytypes.h"
+
+#include "listeners/banklistener.h"
+
+#include "debug.h"
+
+namespace EAthena
+{
+
+void Bank::processBankStatus(Net::MessageIn &msg)
+{
+ const int money = static_cast<int>(msg.readInt64("money"));
+ msg.readInt16("reason");
+ BankListener::distributeEvent(money);
+}
+
+void Bank::processBankDeposit(Net::MessageIn &msg)
+{
+ const int reason = msg.readInt16("reason");
+ const int money = static_cast<int>(msg.readInt64("money"));
+ msg.readInt32("balance");
+ BankListener::distributeEvent(money);
+ if (reason)
+ NotifyManager::notify(NotifyTypes::BANK_DEPOSIT_FAILED);
+}
+
+void Bank::processBankWithdraw(Net::MessageIn &msg)
+{
+ const int reason = msg.readInt16("reason");
+ const int money = static_cast<int>(msg.readInt64("money"));
+ msg.readInt32("balance");
+ BankListener::distributeEvent(money);
+ if (reason)
+ NotifyManager::notify(NotifyTypes::BANK_WITHDRAW_FAILED);
+}
+
+} // namespace EAthena
diff --git a/src/net/eathena/bank.h b/src/net/eathena/bank.h
new file mode 100644
index 000000000..ffc24a04d
--- /dev/null
+++ b/src/net/eathena/bank.h
@@ -0,0 +1,41 @@
+/*
+ * The ManaPlus Client
+ * Copyright (C) 2011-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_EATHENA_BANK_H
+#define NET_EATHENA_BANK_H
+
+#ifdef EATHENA_SUPPORT
+
+#include "net/bankhandler.h"
+
+#include "net/eathena/messagehandler.h"
+
+namespace EAthena
+{
+ namespace Bank
+ {
+ void processBankStatus(Net::MessageIn &msg);
+ void processBankDeposit(Net::MessageIn &msg);
+ void processBankWithdraw(Net::MessageIn &msg);
+ } // namespace Bank
+} // namespace EAthena
+
+#endif // EATHENA_SUPPORT
+#endif // NET_EATHENA_BANK_H
diff --git a/src/net/eathena/bankhandler.cpp b/src/net/eathena/bankhandler.cpp
index e4dff0710..1897b7a9a 100644
--- a/src/net/eathena/bankhandler.cpp
+++ b/src/net/eathena/bankhandler.cpp
@@ -26,6 +26,7 @@
#include "listeners/banklistener.h"
+#include "net/eathena/bank.h"
#include "net/eathena/messageout.h"
#include "net/eathena/protocol.h"
@@ -55,15 +56,15 @@ void BankHandler::handleMessage(Net::MessageIn &msg)
switch (msg.getId())
{
case SMSG_BANK_STATUS:
- processBankStatus(msg);
+ Bank::processBankStatus(msg);
break;
case SMSG_BANK_DEPOSIT:
- processBankDeposit(msg);
+ Bank::processBankDeposit(msg);
break;
case SMSG_BANK_WITHDRAW:
- processBankWithdraw(msg);
+ Bank::processBankWithdraw(msg);
break;
default:
@@ -91,33 +92,6 @@ void BankHandler::check() const
outMsg.writeInt32(0, "account id");
}
-void BankHandler::processBankStatus(Net::MessageIn &msg)
-{
- const int money = static_cast<int>(msg.readInt64("money"));
- msg.readInt16("reason");
- BankListener::distributeEvent(money);
-}
-
-void BankHandler::processBankDeposit(Net::MessageIn &msg)
-{
- const int reason = msg.readInt16("reason");
- const int money = static_cast<int>(msg.readInt64("money"));
- msg.readInt32("balance");
- BankListener::distributeEvent(money);
- if (reason)
- NotifyManager::notify(NotifyTypes::BANK_DEPOSIT_FAILED);
-}
-
-void BankHandler::processBankWithdraw(Net::MessageIn &msg)
-{
- const int reason = msg.readInt16("reason");
- const int money = static_cast<int>(msg.readInt64("money"));
- msg.readInt32("balance");
- BankListener::distributeEvent(money);
- if (reason)
- NotifyManager::notify(NotifyTypes::BANK_WITHDRAW_FAILED);
-}
-
void BankHandler::open() const
{
createOutPacket(CMSG_BANK_OPEN);