From 291f73098e52742bed3f4c4271524e347ee317e1 Mon Sep 17 00:00:00 2001
From: Andrei Karas <akaras@inbox.ru>
Date: Wed, 7 Jan 2015 00:53:46 +0300
Subject: Add empty vending handler.

---
 src/net/eathena/generalhandler.cpp |  5 +++-
 src/net/eathena/generalhandler.h   |  1 +
 src/net/eathena/vendinghandler.cpp | 52 ++++++++++++++++++++++++++++++++++++++
 src/net/eathena/vendinghandler.h   | 43 +++++++++++++++++++++++++++++++
 src/net/net.cpp                    |  2 ++
 src/net/tmwa/generalhandler.cpp    |  5 +++-
 src/net/tmwa/generalhandler.h      |  1 +
 src/net/tmwa/vendinghandler.cpp    | 45 +++++++++++++++++++++++++++++++++
 src/net/tmwa/vendinghandler.h      | 44 ++++++++++++++++++++++++++++++++
 src/net/vendinghandler.h           | 42 ++++++++++++++++++++++++++++++
 10 files changed, 238 insertions(+), 2 deletions(-)
 create mode 100644 src/net/eathena/vendinghandler.cpp
 create mode 100644 src/net/eathena/vendinghandler.h
 create mode 100644 src/net/tmwa/vendinghandler.cpp
 create mode 100644 src/net/tmwa/vendinghandler.h
 create mode 100644 src/net/vendinghandler.h

(limited to 'src/net')

diff --git a/src/net/eathena/generalhandler.cpp b/src/net/eathena/generalhandler.cpp
index 30697388e..570d79136 100644
--- a/src/net/eathena/generalhandler.cpp
+++ b/src/net/eathena/generalhandler.cpp
@@ -69,6 +69,7 @@
 #include "net/eathena/tradehandler.h"
 #include "net/eathena/skillhandler.h"
 #include "net/eathena/questhandler.h"
+#include "net/eathena/vendinghandler.h"
 
 #include "resources/db/itemdbstat.h"
 
@@ -115,7 +116,8 @@ GeneralHandler::GeneralHandler() :
     mHomunculusHandler(new HomunculusHandler),
     mFriendsHandler(new FriendsHandler),
     mElementalHandler(new ElementalHandler),
-    mMarketHandler(new MarketHandler)
+    mMarketHandler(new MarketHandler),
+    mVendingHandler(new VendingHandler)
 {
     static const uint16_t _messages[] =
     {
@@ -304,6 +306,7 @@ void GeneralHandler::load()
     mNetwork->registerHandler(mFriendsHandler);
     mNetwork->registerHandler(mElementalHandler);
     mNetwork->registerHandler(mMarketHandler);
+    mNetwork->registerHandler(mVendingHandler);
 }
 
 void GeneralHandler::reload()
diff --git a/src/net/eathena/generalhandler.h b/src/net/eathena/generalhandler.h
index b19a3aeaa..fcd22265e 100644
--- a/src/net/eathena/generalhandler.h
+++ b/src/net/eathena/generalhandler.h
@@ -94,6 +94,7 @@ class GeneralHandler final : public MessageHandler,
         MessageHandlerPtr mFriendsHandler;
         MessageHandlerPtr mElementalHandler;
         MessageHandlerPtr mMarketHandler;
+        MessageHandlerPtr mVendingHandler;
 };
 
 }  // namespace EAthena
diff --git a/src/net/eathena/vendinghandler.cpp b/src/net/eathena/vendinghandler.cpp
new file mode 100644
index 000000000..ea9ddeda6
--- /dev/null
+++ b/src/net/eathena/vendinghandler.cpp
@@ -0,0 +1,52 @@
+/*
+ *  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/vendinghandler.h"
+
+#include "net/eathena/protocol.h"
+
+#include "debug.h"
+
+extern Net::VendingHandler *vendingHandler;
+
+namespace EAthena
+{
+
+VendingHandler::VendingHandler() :
+    MessageHandler()
+{
+    static const uint16_t _messages[] =
+    {
+        0
+    };
+    handledMessages = _messages;
+    vendingHandler = this;
+}
+
+void VendingHandler::handleMessage(Net::MessageIn &msg)
+{
+    switch (msg.getId())
+    {
+        default:
+            break;
+    }
+}
+
+}  // namespace EAthena
diff --git a/src/net/eathena/vendinghandler.h b/src/net/eathena/vendinghandler.h
new file mode 100644
index 000000000..46eac0ed9
--- /dev/null
+++ b/src/net/eathena/vendinghandler.h
@@ -0,0 +1,43 @@
+/*
+ *  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_VENDINGHANDLER_H
+#define NET_EATHENA_VENDINGHANDLER_H
+
+#include "net/vendinghandler.h"
+
+#include "net/eathena/messagehandler.h"
+
+namespace EAthena
+{
+class VendingHandler final : public MessageHandler,
+                             public Net::VendingHandler
+{
+    public:
+        VendingHandler();
+
+        A_DELETE_COPY(VendingHandler)
+
+        void handleMessage(Net::MessageIn &msg) override final;
+};
+
+}  // namespace EAthena
+
+#endif  // NET_EATHENA_VENDINGHANDLER_H
diff --git a/src/net/net.cpp b/src/net/net.cpp
index e744786cd..d9b32dc29 100644
--- a/src/net/net.cpp
+++ b/src/net/net.cpp
@@ -68,6 +68,7 @@ namespace Net
     class ServerFeatures;
     class SkillHandler;
     class TradeHandler;
+    class VendingHandler;
 }  // namespace Net
 
 Net::AdminHandler *adminHandler = nullptr;
@@ -99,6 +100,7 @@ Net::HomunculusHandler *homunculusHandler = nullptr;
 Net::FriendsHandler *friendsHandler = nullptr;
 Net::ElementalHandler *elementalHandler = nullptr;
 Net::MarketHandler *marketHandler = nullptr;
+Net::VendingHandler *vendingHandler = nullptr;
 
 namespace Net
 {
diff --git a/src/net/tmwa/generalhandler.cpp b/src/net/tmwa/generalhandler.cpp
index b42020ce0..a34da33dc 100644
--- a/src/net/tmwa/generalhandler.cpp
+++ b/src/net/tmwa/generalhandler.cpp
@@ -67,6 +67,7 @@
 #include "net/tmwa/tradehandler.h"
 #include "net/tmwa/skillhandler.h"
 #include "net/tmwa/questhandler.h"
+#include "net/tmwa/vendinghandler.h"
 
 #include "resources/db/itemdbstat.h"
 
@@ -113,7 +114,8 @@ GeneralHandler::GeneralHandler() :
     mHomunculusHandler(new HomunculusHandler),
     mFriendsHandler(new FriendsHandler),
     mElementalHandler(new ElementalHandler),
-    mMarketHandler(new MarketHandler)
+    mMarketHandler(new MarketHandler),
+    mVendingHandler(new VendingHandler)
 {
     static const uint16_t _messages[] =
     {
@@ -240,6 +242,7 @@ void GeneralHandler::load()
     mNetwork->registerHandler(mFriendsHandler);
     mNetwork->registerHandler(mElementalHandler);
     mNetwork->registerHandler(mMarketHandler);
+    mNetwork->registerHandler(mVendingHandler);
 }
 
 void GeneralHandler::reload()
diff --git a/src/net/tmwa/generalhandler.h b/src/net/tmwa/generalhandler.h
index 6da362e96..ed1bc983c 100644
--- a/src/net/tmwa/generalhandler.h
+++ b/src/net/tmwa/generalhandler.h
@@ -92,6 +92,7 @@ class GeneralHandler final : public MessageHandler,
         MessageHandlerPtr mFriendsHandler;
         MessageHandlerPtr mElementalHandler;
         MessageHandlerPtr mMarketHandler;
+        MessageHandlerPtr mVendingHandler;
 };
 
 }  // namespace TmwAthena
diff --git a/src/net/tmwa/vendinghandler.cpp b/src/net/tmwa/vendinghandler.cpp
new file mode 100644
index 000000000..2250f2f1e
--- /dev/null
+++ b/src/net/tmwa/vendinghandler.cpp
@@ -0,0 +1,45 @@
+/*
+ *  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/tmwa/vendinghandler.h"
+
+#include "debug.h"
+
+extern Net::VendingHandler *vendingHandler;
+
+namespace TmwAthena
+{
+
+VendingHandler::VendingHandler() :
+    MessageHandler()
+{
+    static const uint16_t _messages[] =
+    {
+        0
+    };
+    handledMessages = _messages;
+    vendingHandler = this;
+}
+
+void VendingHandler::handleMessage(Net::MessageIn &msg A_UNUSED)
+{
+}
+
+}  // namespace TmwAthena
diff --git a/src/net/tmwa/vendinghandler.h b/src/net/tmwa/vendinghandler.h
new file mode 100644
index 000000000..567494110
--- /dev/null
+++ b/src/net/tmwa/vendinghandler.h
@@ -0,0 +1,44 @@
+/*
+ *  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_TMWA_VENDINGHANDLER_H
+#define NET_TMWA_VENDINGHANDLER_H
+
+#include "net/vendinghandler.h"
+
+#include "net/tmwa/messagehandler.h"
+
+namespace TmwAthena
+{
+
+class VendingHandler final : public MessageHandler,
+                             public Net::VendingHandler
+{
+    public:
+        VendingHandler();
+
+        A_DELETE_COPY(VendingHandler)
+
+        void handleMessage(Net::MessageIn &msg) override final;
+};
+
+}  // namespace TmwAthena
+
+#endif  // NET_TMWA_VENDINGHANDLER_H
diff --git a/src/net/vendinghandler.h b/src/net/vendinghandler.h
new file mode 100644
index 000000000..d0bff9198
--- /dev/null
+++ b/src/net/vendinghandler.h
@@ -0,0 +1,42 @@
+/*
+ *  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_VENDINGHANDLER_H
+#define NET_VENDINGHANDLER_H
+
+#include <string>
+
+#include "localconsts.h"
+
+namespace Net
+{
+
+class VendingHandler notfinal
+{
+    public:
+        virtual ~VendingHandler()
+        { }
+};
+
+}  // namespace Net
+
+extern Net::VendingHandler *vendingHandler;
+
+#endif  // NET_VENDINGHANDLER_H
-- 
cgit v1.2.3-70-g09d2