From 4f08a288ca02a48002eaa5615b20f62374e764e8 Mon Sep 17 00:00:00 2001
From: Eduardo Bart <edub4rt@gmail.com>
Date: Mon, 30 Apr 2012 23:59:17 -0300
Subject: [PATCH] fix compile error, rebind trade functions

---
 src/otclient/core/game.cpp             |  9 +++++++--
 src/otclient/core/game.h               |  3 ++-
 src/otclient/core/spritemanager.cpp    |  1 -
 src/otclient/core/spritemanager.h      |  1 -
 src/otclient/net/protocolgame.h        |  3 ++-
 src/otclient/net/protocolgameparse.cpp | 20 ++++++++++++++++----
 6 files changed, 27 insertions(+), 10 deletions(-)

diff --git a/src/otclient/core/game.cpp b/src/otclient/core/game.cpp
index 93e415ec..dd29eb7d 100644
--- a/src/otclient/core/game.cpp
+++ b/src/otclient/core/game.cpp
@@ -384,9 +384,14 @@ void Game::processCloseNpcTrade()
     g_lua.callGlobalField("g_game", "onCloseNpcTrade");
 }
 
-void Game::processOpenTrade(const std::string& name, const std::vector<ItemPtr>& items)
+void Game::processOwnTrade(const std::string& name, const std::vector<ItemPtr>& items)
 {
-    g_lua.callGlobalField("g_game", "onOpenTrade", name, items);
+    g_lua.callGlobalField("g_game", "onOwnTrade", name, items);
+}
+
+void Game::processCounterTrade(const std::string& name, const std::vector<ItemPtr>& items)
+{
+    g_lua.callGlobalField("g_game", "onCounterTrade", name, items);
 }
 
 void Game::processCloseTrade()
diff --git a/src/otclient/core/game.h b/src/otclient/core/game.h
index fc9e32c0..a2b93277 100644
--- a/src/otclient/core/game.h
+++ b/src/otclient/core/game.h
@@ -110,7 +110,8 @@ protected:
     void processCloseNpcTrade();
 
     // player trade
-    void processOpenTrade(const std::string& name, const std::vector<ItemPtr>& items);
+    void processOwnTrade(const std::string& name, const std::vector<ItemPtr>& items);
+    void processCounterTrade(const std::string& name, const std::vector<ItemPtr>& items);
     void processCloseTrade();
 
     // edit text/list
diff --git a/src/otclient/core/spritemanager.cpp b/src/otclient/core/spritemanager.cpp
index 5aca9b29..c0816cd6 100644
--- a/src/otclient/core/spritemanager.cpp
+++ b/src/otclient/core/spritemanager.cpp
@@ -26,7 +26,6 @@
 #include <framework/core/filestream.h>
 #include <framework/graphics/graphics.h>
 #include <framework/thirdparty/apngloader.h>
-#include <physfs.h>
 
 SpriteManager g_sprites;
 
diff --git a/src/otclient/core/spritemanager.h b/src/otclient/core/spritemanager.h
index e2780804..34fdc37f 100644
--- a/src/otclient/core/spritemanager.h
+++ b/src/otclient/core/spritemanager.h
@@ -25,7 +25,6 @@
 
 #include <framework/core/declarations.h>
 #include <framework/graphics/texture.h>
-#include <png.h>
 
 class SpriteManager
 {
diff --git a/src/otclient/net/protocolgame.h b/src/otclient/net/protocolgame.h
index 2aa89027..7a6867e4 100644
--- a/src/otclient/net/protocolgame.h
+++ b/src/otclient/net/protocolgame.h
@@ -168,7 +168,8 @@ private:
     void parseRuleViolationRemove(InputMessage& msg);
     void parseRuleViolationCancel(InputMessage& msg);
     void parseRuleViolationLock(InputMessage& msg);
-    void parseOpenTrade(InputMessage& msg);
+    void parseOwnTrade(InputMessage& msg);
+    void parseCounterTrade(InputMessage& msg);
     void parseCloseTrade(InputMessage&);
     void parseTextMessage(InputMessage& msg);
     void parseCancelWalk(InputMessage& msg);
diff --git a/src/otclient/net/protocolgameparse.cpp b/src/otclient/net/protocolgameparse.cpp
index 06336520..53e57e45 100644
--- a/src/otclient/net/protocolgameparse.cpp
+++ b/src/otclient/net/protocolgameparse.cpp
@@ -123,10 +123,10 @@ void ProtocolGame::parseMessage(InputMessage& msg)
                 parseCloseNpcTrade(msg);
                 break;
             case Proto::GameServerOwnTrade:
-                parseOpenTrade(msg);
+                parseOwnTrade(msg);
                 break;
             case Proto::GameServerCounterTrade:
-                parseOpenTrade(msg);
+                parseCounterTrade(msg);
                 break;
             case Proto::GameServerCloseTrade:
                 parseCloseTrade(msg);
@@ -545,7 +545,7 @@ void ProtocolGame::parseCloseNpcTrade(InputMessage&)
     g_game.processCloseNpcTrade();
 }
 
-void ProtocolGame::parseOpenTrade(InputMessage& msg)
+void ProtocolGame::parseOwnTrade(InputMessage& msg)
 {
     std::string name = msg.getString();
     int count = msg.getU8();
@@ -554,7 +554,19 @@ void ProtocolGame::parseOpenTrade(InputMessage& msg)
     for(int i = 0; i < count; i++)
         items[i] = internalGetItem(msg);
 
-    g_game.processOpenTrade(name, items);
+    g_game.processOwnTrade(name, items);
+}
+
+void ProtocolGame::parseCounterTrade(InputMessage& msg)
+{
+    std::string name = msg.getString();
+    int count = msg.getU8();
+
+    std::vector<ItemPtr> items(count);
+    for(int i = 0; i < count; i++)
+        items[i] = internalGetItem(msg);
+
+    g_game.processCounterTrade(name, items);
 }
 
 void ProtocolGame::parseCloseTrade(InputMessage&)