From 717e8babd1124a4c6c685a6386a84f58148d4931 Mon Sep 17 00:00:00 2001 From: Ira Rice Date: Thu, 13 Nov 2008 22:13:02 +0000 Subject: Added a slot display so that players can track how much space they've used. --- src/gui/inventorywindow.cpp | 22 ++++++++++++++++++++-- src/gui/inventorywindow.h | 2 ++ 2 files changed, 22 insertions(+), 2 deletions(-) (limited to 'src/gui') diff --git a/src/gui/inventorywindow.cpp b/src/gui/inventorywindow.cpp index 936416d1..1b2e5c63 100644 --- a/src/gui/inventorywindow.cpp +++ b/src/gui/inventorywindow.cpp @@ -34,6 +34,7 @@ #include "scrollarea.h" #include "viewport.h" +#include "../inventory.h" #include "../item.h" #include "../localplayer.h" @@ -73,6 +74,11 @@ InventoryWindow::InventoryWindow(): "Maximum Weight: " + mMaxWeight + " g"; mWeightLabel = new TextBox(); mWeightLabel->setPosition(8, 8); + mSlots = "Slots: " + + toString(player_node->getInventory()->getNumberOfSlotsUsed()) + + "/" + toString(player_node->getInventory()->getSize()); + mSlotsLabel = new TextBox(); + mItemEffectLabel = new TextBox(); draw(); @@ -83,6 +89,7 @@ InventoryWindow::InventoryWindow(): add(mItemDescriptionLabel); add(mItemEffectLabel); add(mWeightLabel); + add(mSlotsLabel); mUseButton->setSize(60, mUseButton->getHeight()); @@ -107,6 +114,10 @@ void InventoryWindow::logic() mWeight = "Total Weight: " + mTotalWeight + " g - " + "Maximum Weight: " + mMaxWeight + " g"; + mSlots = "Slots: " + + toString(player_node->getInventory()->getNumberOfSlotsUsed()) + + "/" + toString(player_node->getInventory()->getSize()); + draw(); } } @@ -222,12 +233,19 @@ void InventoryWindow::draw() mItemEffectLabel->getY() - 5 - (mItemDescriptionLabel->getNumberOfRows()*15), width - 16, (mItemDescriptionLabel->getNumberOfRows()*15))); + mSlotsLabel->setMinWidth(width - 16); + mSlotsLabel->setTextWrapped(mSlots); + mSlotsLabel->setDimension(gcn::Rectangle(8, + mItemDescriptionLabel->getY() - 5 - (mSlotsLabel->getNumberOfRows()*15), + width - 16, + (mSlotsLabel->getNumberOfRows()*15))); mInvenScroll->setSize(width - 16, - mItemDescriptionLabel->getY() - (mWeightLabel->getNumberOfRows()*15) - 18); + mSlotsLabel->getY() - (mWeightLabel->getNumberOfRows()*15) - 18); mInvenScroll->setPosition(8, (mWeightLabel->getNumberOfRows()*15) + 10); - setMinHeight(130 + (mWeightLabel->getNumberOfRows()*15) + + setMinHeight(130 + (mSlotsLabel->getNumberOfRows()*15) + + (mWeightLabel->getNumberOfRows()*15) + (mItemDescriptionLabel->getNumberOfRows()*15) + (mItemEffectLabel->getNumberOfRows()*15) + (mItemNameLabel->getNumberOfRows()*15)); diff --git a/src/gui/inventorywindow.h b/src/gui/inventorywindow.h index e6170dac..055bfad9 100644 --- a/src/gui/inventorywindow.h +++ b/src/gui/inventorywindow.h @@ -92,12 +92,14 @@ class InventoryWindow : public Window, gcn::ActionListener, std::string mWeight; std::string mTotalWeight; std::string mMaxWeight; + std::string mSlots; gcn::Button *mUseButton, *mDropButton; gcn::ScrollArea *mInvenScroll; TextBox *mItemNameLabel; TextBox *mItemDescriptionLabel; TextBox *mItemEffectLabel; TextBox *mWeightLabel; + TextBox *mSlotsLabel; }; extern InventoryWindow *inventoryWindow; -- cgit v1.2.3-70-g09d2