summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/game.cpp2
-rw-r--r--src/gui/inventory.cpp21
-rw-r--r--src/gui/inventory.h14
3 files changed, 22 insertions, 15 deletions
diff --git a/src/game.cpp b/src/game.cpp
index c6e8d855..2cda6426 100644
--- a/src/game.cpp
+++ b/src/game.cpp
@@ -682,7 +682,7 @@ void do_parse() {
else
chatlog.chat_log("Unable to sell", BY_SERVER, gui_font);
break;
- // Add item to inventory
+ // Add item to inventory after you bought it
case 0x00a0:
inventory.add_item(RFIFOW(2), RFIFOW(6), RFIFOW(4));
break;
diff --git a/src/gui/inventory.cpp b/src/gui/inventory.cpp
index 26f289d2..864adf06 100644
--- a/src/gui/inventory.cpp
+++ b/src/gui/inventory.cpp
@@ -52,7 +52,16 @@ void TmwInventory::create(int tempxpos, int tempypos) {
void TmwInventory::draw(BITMAP * buffer) {
if(show_inventory) {
dialog_message(inventory_dialog,MSG_DRAW,0,0);
- update_dialog(inventory_player);
+ 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<=510)
+ masked_blit((BITMAP *)itemset[items[i].id-500].dat, gui_bitmap, 0, 0, inventory_dialog[0].x-90+24*i, inventory_dialog[0].y+26, 22, 22);
+ else
+ masked_blit((BITMAP *)itemset[0].dat, gui_bitmap, 0, 0, inventory_dialog[0].x-90+24*i, inventory_dialog[0].y+26, 22, 22);
+ alfont_textprintf_aa(gui_bitmap, gui_font, inventory_dialog[0].x-90+24*i, inventory_dialog[0].y+44, makecol(0,0,0), "%i", items[i].quantity);
+ }
+ }
}
}
@@ -64,7 +73,7 @@ void TmwInventory::show(bool val) {
/** Add an item the inventory */
int TmwInventory::add_item(int index, int id, int quantity) {
items[index].id = id;
- items[index].quantity = quantity;
+ items[index].quantity += quantity;
return 0;
}
@@ -84,6 +93,12 @@ int TmwInventory::change_quantity(int index, int quantity) {
return 0;
}
+/** Increase quantity of an item */
+int TmwInventory::increase_quantity(int index, int quantity) {
+ items[index].quantity += quantity;
+ return 0;
+}
+
int TmwInventory::useItem(int idnum) {
printf("Use item %i\n",idnum);
WFIFOW(0) = net_w_value(0x00a7);
@@ -92,4 +107,4 @@ int TmwInventory::useItem(int idnum) {
while((out_size>0))flush();
return 0;
-}*/
+}
diff --git a/src/gui/inventory.h b/src/gui/inventory.h
index 61ec9e7b..21a958ab 100644
--- a/src/gui/inventory.h
+++ b/src/gui/inventory.h
@@ -53,26 +53,18 @@ class 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(areDisplaying){show(0);}else{show(1);} }
+ 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 changeNum(int idnum, int antal); // change number of 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 useItem(int idnum);
//END API
private:
itemHolder items[INVENTORY_SIZE]; // this is the holder of items
DATAFILE *itemset;
bool show_inventory;
- int ghostX, ghostY, ghostID, ghostOldIDX,ghostOldIDY; //info needed when moving item
- int dragingItem, lastSelectedX,lastSelectedY; //info needed when moving item
- int areDisplaying, dragingWindow;
- int bigwindow;
- int xpos, ypos; // Where am I ?
- int itemMeny;
- int itemMeny_x, itemMeny_y;
- int itemIdn;
-
};
#endif