summaryrefslogtreecommitdiff
path: root/src/net/tmwserv/tradehandler.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/net/tmwserv/tradehandler.cpp')
-rw-r--r--src/net/tmwserv/tradehandler.cpp21
1 files changed, 17 insertions, 4 deletions
diff --git a/src/net/tmwserv/tradehandler.cpp b/src/net/tmwserv/tradehandler.cpp
index 17a45a19..4528988b 100644
--- a/src/net/tmwserv/tradehandler.cpp
+++ b/src/net/tmwserv/tradehandler.cpp
@@ -21,10 +21,15 @@
#include "net/tmwserv/tradehandler.h"
+#include "net/tmwserv/gameserver/internal.h"
#include "net/tmwserv/gameserver/player.h"
+
+#include "net/tmwserv/connection.h"
#include "net/tmwserv/protocol.h"
#include "net/messagein.h"
+#include "net/messageout.h"
+#include "net/net.h"
#include "beingmanager.h"
#include "item.h"
@@ -49,7 +54,7 @@ namespace {
if (event.getId() == "yes")
Net::GameServer::Player::requestTrade(tradePartnerID);
else
- Net::GameServer::Player::acceptTrade(false);
+ Net::getTradeHandler()->cancel();
}
} listener;
}
@@ -146,7 +151,10 @@ void TradeHandler::request(Being *being)
{
tradePartnerName = being->getName();
tradePartnerID = being->getId();
- Net::GameServer::Player::requestTrade(tradePartnerID);
+
+ MessageOut msg(PGMSG_TRADE_REQUEST);
+ msg.writeInt16(tradePartnerID);
+ Net::GameServer::connection->send(msg);
}
void TradeHandler::respond(bool accept)
@@ -156,7 +164,11 @@ void TradeHandler::respond(bool accept)
void TradeHandler::addItem(Item *item, int amount)
{
- Net::GameServer::Player::tradeItem(item->getInvIndex(), amount);
+ MessageOut msg(PGMSG_TRADE_ADD_ITEM);
+ msg.writeInt8(item->getInvIndex());
+ msg.writeInt8(amount);
+ Net::GameServer::connection->send(msg);
+
tradeWindow->addItem(item->getId(), true, amount);
item->increaseQuantity(-amount);
}
@@ -183,7 +195,8 @@ void TradeHandler::finish()
void TradeHandler::cancel()
{
- Net::GameServer::Player::acceptTrade(false);
+ MessageOut msg(PGMSG_TRADE_CANCEL);
+ Net::GameServer::connection->send(msg);
}
} // namespace TmwServ