summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/net/cashshophandler.h6
-rw-r--r--src/net/eathena/cashshophandler.cpp14
-rw-r--r--src/net/eathena/cashshophandler.h5
-rw-r--r--src/net/eathena/protocol.h1
-rw-r--r--src/net/tmwa/cashshophandler.cpp7
-rw-r--r--src/net/tmwa/cashshophandler.h5
6 files changed, 38 insertions, 0 deletions
diff --git a/src/net/cashshophandler.h b/src/net/cashshophandler.h
index 18af3f7ea..5ca5fd8af 100644
--- a/src/net/cashshophandler.h
+++ b/src/net/cashshophandler.h
@@ -33,6 +33,12 @@ class CashShopHandler notfinal
public:
virtual ~CashShopHandler()
{ }
+
+ virtual void buy(const int points,
+ const int itemId,
+ const unsigned char color,
+ const int amount) const = 0;
+
};
} // namespace Net
diff --git a/src/net/eathena/cashshophandler.cpp b/src/net/eathena/cashshophandler.cpp
index 39db23b04..56e7bac25 100644
--- a/src/net/eathena/cashshophandler.cpp
+++ b/src/net/eathena/cashshophandler.cpp
@@ -20,6 +20,7 @@
#include "net/eathena/cashshophandler.h"
+#include "net/eathena/messageout.h"
#include "net/eathena/protocol.h"
#include "debug.h"
@@ -68,4 +69,17 @@ void CashShopHandler::processCashShopOpen(Net::MessageIn &msg)
}
}
+void CashShopHandler::buy(const int points,
+ const int itemId,
+ const unsigned char color A_UNUSED,
+ const int amount) const
+{
+ createOutPacket(CMSG_NPC_CASH_SHOP_BUY);
+ outMsg.writeInt16(10 + 4, "len");
+ outMsg.writeInt32(points, "points");
+ outMsg.writeInt16(1, "count");
+ outMsg.writeInt16(amount, "amount");
+ outMsg.writeInt16(itemId, "item id");
+}
+
} // namespace EAthena
diff --git a/src/net/eathena/cashshophandler.h b/src/net/eathena/cashshophandler.h
index d0e42cc63..fa781f74a 100644
--- a/src/net/eathena/cashshophandler.h
+++ b/src/net/eathena/cashshophandler.h
@@ -37,6 +37,11 @@ class CashShopHandler final : public MessageHandler,
void handleMessage(Net::MessageIn &msg) override final;
+ void buy(const int points,
+ const int itemId,
+ const unsigned char color,
+ const int amount) const override final;
+
protected:
static void processCashShopOpen(Net::MessageIn &msg);
};
diff --git a/src/net/eathena/protocol.h b/src/net/eathena/protocol.h
index 45c8e4d6e..53214e876 100644
--- a/src/net/eathena/protocol.h
+++ b/src/net/eathena/protocol.h
@@ -386,6 +386,7 @@
#define CMSG_NPC_SELL_REQUEST 0x00c9
#define CMSG_NPC_MARKET_CLOSE 0x09d8
#define CMSG_NPC_MARKET_BUY 0x09d6
+#define CMSG_NPC_CASH_SHOP_BUY 0x0288
#define CMSG_TRADE_REQUEST 0x00e4
#define CMSG_TRADE_RESPONSE 0x00e6
diff --git a/src/net/tmwa/cashshophandler.cpp b/src/net/tmwa/cashshophandler.cpp
index 99acd6653..7eab823df 100644
--- a/src/net/tmwa/cashshophandler.cpp
+++ b/src/net/tmwa/cashshophandler.cpp
@@ -42,4 +42,11 @@ void CashShopHandler::handleMessage(Net::MessageIn &msg A_UNUSED)
{
}
+void CashShopHandler::buy(const int points A_UNUSED,
+ const int itemId A_UNUSED,
+ const unsigned char color A_UNUSED,
+ const int amount A_UNUSED) const
+{
+}
+
} // namespace TmwAthena
diff --git a/src/net/tmwa/cashshophandler.h b/src/net/tmwa/cashshophandler.h
index 9b7cf86e6..cbd558d9d 100644
--- a/src/net/tmwa/cashshophandler.h
+++ b/src/net/tmwa/cashshophandler.h
@@ -37,6 +37,11 @@ class CashShopHandler final : public MessageHandler,
A_DELETE_COPY(CashShopHandler)
void handleMessage(Net::MessageIn &msg) override final;
+
+ void buy(const int points,
+ const int itemId,
+ const unsigned char color,
+ const int amount) const override final;
};
} // namespace TmwAthena