summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/gui/inventory.cpp78
-rw-r--r--src/gui/inventory.h70
2 files changed, 88 insertions, 60 deletions
diff --git a/src/gui/inventory.cpp b/src/gui/inventory.cpp
index 1626a86c..23e74f02 100644
--- a/src/gui/inventory.cpp
+++ b/src/gui/inventory.cpp
@@ -17,8 +17,6 @@
* You should have received a copy of the GNU General Public License
* along with The Mana World; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- * By SimEdw
*/
#include "inventory.h"
@@ -40,7 +38,6 @@ TmwInventory::~TmwInventory()
{
}
-/** Initialize inventory */
void TmwInventory::create(int tempxpos, int tempypos) {
itemset = load_datafile("./data/graphic/items.dat");
@@ -55,7 +52,6 @@ void TmwInventory::create(int tempxpos, int tempypos) {
show_inventory = false;
}
-/** Draw inventory window */
void TmwInventory::draw(BITMAP *buffer) {
if (!show_inventory) return;
@@ -63,8 +59,12 @@ void TmwInventory::draw(BITMAP *buffer) {
update_dialog(inventory_player);
for (int i = 0; i < INVENTORY_SIZE; i++) {
if (items[i].quantity > 0) {
- if (items[i].id >= 501 && items[i].id <= 511)
- draw_rle_sprite(gui_bitmap, (RLE_SPRITE *)itemset[items[i].id-501].dat, inventory_dialog[0].x+24*i, inventory_dialog[0].y+26);
+ if (items[i].id >= 501 && items[i].id <= 511) {
+ draw_rle_sprite(gui_bitmap,
+ (RLE_SPRITE *)itemset[items[i].id - 501].dat,
+ inventory_dialog[0].x + 24 * i,
+ inventory_dialog[0].y + 26);
+ }
//else
//masked_blit((BITMAP *)itemset[0].dat, gui_bitmap, 0, 0, inventory_dialog[0].x+24*i, inventory_dialog[0].y+26, 22, 22);
@@ -124,56 +124,56 @@ void TmwInventory::draw(BITMAP *buffer) {
}
-/** Set if inventory is visible */
-void TmwInventory::show(bool val) {
- show_inventory = val;
+void TmwInventory::setVisible(bool visible) {
+ show_inventory = visible;
+}
+
+bool TmwInventory::isVisible() {
+ return show_inventory;
}
-/** Add an item the inventory */
int TmwInventory::add_item(int index, int id, int quantity) {
- items[index].id = id;
- items[index].quantity += quantity;
- return 0;
+ items[index].id = id;
+ items[index].quantity += quantity;
+ return 0;
}
-/** Remove a item from the inventory */
int TmwInventory::remove_item(int id) {
- for(int i=0;i<INVENTORY_SIZE;i++)
- if(items[i].id==id) {
- items[i].id = -1;
- items[i].quantity = 0;
- }
- return 0;
+ for (int i = 0; i < INVENTORY_SIZE; i++) {
+ if (items[i].id == id) {
+ items[i].id = -1;
+ items[i].quantity = 0;
+ }
+ }
+ return 0;
}
-/** Change quantity of an item */
int TmwInventory::change_quantity(int index, int quantity) {
- items[index].quantity = quantity;
- return 0;
+ items[index].quantity = quantity;
+ return 0;
}
-/** Increase quantity of an item */
int TmwInventory::increase_quantity(int index, int quantity) {
- items[index].quantity += quantity;
- return 0;
+ items[index].quantity += quantity;
+ return 0;
}
int TmwInventory::use_item(int index, int id) {
- WFIFOW(0) = net_w_value(0x00a7);
- WFIFOW(2) = net_w_value(index);
- WFIFOL(4) = net_l_value(id);
- // Note: id is dest of item, usually player_node->account_ID
- WFIFOSET(8);
- while((out_size>0))flush();
- return 0;
+ WFIFOW(0) = net_w_value(0x00a7);
+ WFIFOW(2) = net_w_value(index);
+ WFIFOL(4) = net_l_value(id);
+ // Note: id is dest of item, usually player_node->account_ID
+ WFIFOSET(8);
+ while ((out_size > 0)) flush();
+ return 0;
}
int TmwInventory::drop_item(int index, int amunt) {
- WFIFOW(0) = net_w_value(0x00a7);
- WFIFOW(2) = net_w_value(index);
- WFIFOL(4) = net_l_value(amunt);
- WFIFOSET(8);
- while((out_size>0))flush();
- return 0;
+ WFIFOW(0) = net_w_value(0x00a7);
+ WFIFOW(2) = net_w_value(index);
+ WFIFOL(4) = net_l_value(amunt);
+ WFIFOSET(8);
+ while ((out_size > 0)) flush();
+ return 0;
}
diff --git a/src/gui/inventory.h b/src/gui/inventory.h
index 19b183d2..29c61c72 100644
--- a/src/gui/inventory.h
+++ b/src/gui/inventory.h
@@ -17,8 +17,6 @@
* You should have received a copy of the GNU General Public License
* along with The Mana World; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- * By SimEdw
*/
#ifdef WIN32
@@ -48,25 +46,55 @@ class TmwInventory {
TmwInventory();
~TmwInventory();
- void create(int x, int y); // create the window
- void draw(BITMAP *); // draw the window (if areDisplaying != 0 )
- void show(bool val); // choose between showing and not showing the window
- void toggle() {if(show_inventory){show(0);}else{show(1);}}
- //API
- int add_item(int index, int id, int quantity); // add a item
- int remove_item(int id); // remove a item
- int change_quantity(int index, int quantity); // change number of a item
- int increase_quantity(int index, int quantity); // increase quantity of a item
- int use_item(int index, int id);
- int quantityForIndex(int index) { return items[index].quantity; }
- int drop_item(int index, int amunt);
- //END API
-
- itemHolder items[INVENTORY_SIZE]; // this is the holder of items
- private:
- DATAFILE *itemset;
- bool show_inventory;
- int itemMeny, itemMeny_x, itemMeny_y, itemMeny_i;
+ /**
+ * Initialize inventory and create the window.
+ */
+ void create(int x, int y);
+
+ /**
+ * Draw inventory window.
+ */
+ void draw(BITMAP *);
+
+ /**
+ * Sets if inventory is visible.
+ */
+ void setVisible(bool visible);
+
+ /**
+ * Returns visibility of inventory.
+ */
+ bool isVisible();
+
+ /**
+ * Add an item the inventory.
+ */
+ int add_item(int index, int id, int quantity);
+
+ /**
+ * Remove a item from the inventory.
+ */
+ int remove_item(int id);
+
+ /**
+ * Change quantity of an item.
+ */
+ int change_quantity(int index, int quantity);
+
+ /**
+ * Increase quantity of an item
+ */
+ int increase_quantity(int index, int quantity);
+
+ int use_item(int index, int id);
+ int quantityForIndex(int index) { return items[index].quantity; }
+ int drop_item(int index, int amunt);
+
+ itemHolder items[INVENTORY_SIZE]; /**< this is the holder of items */
+ private:
+ DATAFILE *itemset;
+ bool show_inventory;
+ int itemMeny, itemMeny_x, itemMeny_y, itemMeny_i;
};
#endif