summaryrefslogtreecommitdiff
path: root/src/gui/trade.h
diff options
context:
space:
mode:
authorBjørn Lindeijer <bjorn@lindeijer.nl>2009-03-22 19:45:03 +0100
committerBjørn Lindeijer <bjorn@lindeijer.nl>2009-03-22 19:45:56 +0100
commit0c43d04b438d41c277ae80402d4b4888db1a0b64 (patch)
tree3aaeb75ecd1bcbe85decedab5f1fa426fe0411e3 /src/gui/trade.h
parenta7f5eaeb7f643658d356533a608f0f18d85b6d32 (diff)
parent401802c1d7a1b3d659bdc53a45d9a6292fc1121e (diff)
downloadmana-0c43d04b438d41c277ae80402d4b4888db1a0b64.tar.gz
mana-0c43d04b438d41c277ae80402d4b4888db1a0b64.tar.bz2
mana-0c43d04b438d41c277ae80402d4b4888db1a0b64.tar.xz
mana-0c43d04b438d41c277ae80402d4b4888db1a0b64.zip
Merged the tmwserv client with the eAthena client
This merge involved major changes on both sides, and as such took several weeks. Lots of things are expected to be broken now, however, we now have a single code base to improve and extend, which can be compiled to support either eAthena or tmwserv. In the coming months, the plan is to work towards a client that supports both eAthena and tmwserv, without needing to be recompiled. Conflicts: Everywhere!
Diffstat (limited to 'src/gui/trade.h')
-rw-r--r--src/gui/trade.h61
1 files changed, 44 insertions, 17 deletions
diff --git a/src/gui/trade.h b/src/gui/trade.h
index df724038..bde0481c 100644
--- a/src/gui/trade.h
+++ b/src/gui/trade.h
@@ -34,7 +34,9 @@
class Inventory;
class Item;
class ItemContainer;
+#ifdef EATHENA_SUPPORT
class Network;
+#endif
class ScrollArea;
/**
@@ -48,7 +50,11 @@ class TradeWindow : public Window, gcn::ActionListener, gcn::SelectionListener
/**
* Constructor.
*/
+#ifdef TMWSERV_SUPPORT
+ TradeWindow();
+#else
TradeWindow(Network *network);
+#endif
/**
* Destructor.
@@ -56,31 +62,25 @@ class TradeWindow : public Window, gcn::ActionListener, gcn::SelectionListener
~TradeWindow();
/**
- * Called when resizing the window.
- *
- * @param event The calling event
- */
- void widgetResized(const gcn::Event &event);
-
- /**
- * Add money to the trade window.
+ * Displays expected money in the trade window.
*/
- void addMoney(int quantity);
+ void setMoney(int quantity);
/**
* Add an item to the trade window.
*/
- void addItem(int id, bool own, int quantity, bool equipment);
+ void addItem(int id, bool own, int quantity);
/**
- * Remove a item from the trade window.
+ * Reset both item containers
*/
- void removeItem(int id, bool own);
+ void reset();
+#ifdef EATHENA_SUPPORT
/**
- * Reset both item containers
+ * Add an item to the trade window.
*/
- void reset();
+ void addItem(int id, bool own, int quantity, bool equipment);
/**
* Change quantity of an item.
@@ -96,11 +96,16 @@ class TradeWindow : public Window, gcn::ActionListener, gcn::SelectionListener
* Set trade Button disabled
*/
void setTradeButton(bool enabled);
+#endif
/**
* Player received ok message from server
*/
+#ifdef TMWSERV_SUPPORT
+ void receivedOk();
+#else
void receivedOk(bool own);
+#endif
/**
* Send trade packet.
@@ -119,7 +124,23 @@ class TradeWindow : public Window, gcn::ActionListener, gcn::SelectionListener
void action(const gcn::ActionEvent &event);
private:
+#ifdef TMWSERV_SUPPORT
+ enum Status
+ {
+ PREPARING, /**< Players are adding items. */
+ PROPOSING, /**< Local player is proposing a trade. */
+ ACCEPTING /**< Distant player is proposing a trade. */
+ };
+
+ /**
+ * Sets the current status of the trade.
+ */
+ void setStatus(Status);
+#endif
+
+#ifdef EATHENA_SUPPORT
Network *mNetwork;
+#endif
typedef const std::auto_ptr<Inventory> InventoryPtr;
InventoryPtr mMyInventory;
@@ -129,11 +150,17 @@ class TradeWindow : public Window, gcn::ActionListener, gcn::SelectionListener
ItemContainer *mPartnerItemContainer;
gcn::Label *mMoneyLabel;
- gcn::Label *mMoneyLabel2;
- gcn::Button *mAddButton, *mOkButton, *mCancelButton, *mTradeButton;
- ScrollArea *mMyScroll, *mPartnerScroll;
+ gcn::Button *mTradeButton;
+#ifdef EATHENA_SUPPORT
+ gcn::Button *mOkButton;
+#endif
gcn::TextField *mMoneyField;
+
+#ifdef TMWSERV_SUPPORT
+ Status mStatus;
+#else
bool mOkOther, mOkMe;
+#endif
};
extern TradeWindow *tradeWindow;