From 4525bedabcf5796da0d7923a014bbdc18fee429e Mon Sep 17 00:00:00 2001 From: Bjørn Lindeijer Date: Sat, 28 May 2005 00:18:59 +0000 Subject: Applied inventory weight information patch by Javila. --- src/game.cpp | 6 ++++++ src/gui/inventory.cpp | 17 +++++++++++++++-- src/gui/inventory.h | 4 +++- src/main.h | 3 ++- 4 files changed, 26 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/game.cpp b/src/game.cpp index 9193e821..f84775b7 100644 --- a/src/game.cpp +++ b/src/game.cpp @@ -1041,6 +1041,12 @@ void do_parse() char_info->skill_point = RFIFOW(4); skillDialog->setPoints(char_info->skill_point); break; + case 0x0018: + char_info->totalWeight = RFIFOW(4); + break; + case 0x0019: + char_info->maxWeight = RFIFOW(4); + break; case 0x0037: char_info->job_lv = RFIFOW(4); break; diff --git a/src/gui/inventory.cpp b/src/gui/inventory.cpp index 95cc4bd3..66ccff58 100644 --- a/src/gui/inventory.cpp +++ b/src/gui/inventory.cpp @@ -36,7 +36,7 @@ InventoryWindow::InventoryWindow(): Window("Inventory") { - setContentSize(322, 150); + setContentSize(322, 160); useButton = new Button("Use"); dropButton = new Button("Drop"); @@ -51,12 +51,17 @@ InventoryWindow::InventoryWindow(): itemNameLabel = new gcn::Label("Name:"); itemDescriptionLabel = new gcn::Label("Description:"); + weightLabel = new gcn::Label("Total Weight: - Maximum Weight: "); + weightLabel->setPosition(8, 8); + invenScroll->setPosition(8, + weightLabel->getY() + weightLabel->getHeight() + 5); add(useButton); add(dropButton); add(invenScroll); add(itemNameLabel); add(itemDescriptionLabel); + add(weightLabel); setResizeable(true); setMinWidth(240); @@ -74,6 +79,7 @@ InventoryWindow::~InventoryWindow() delete items; delete itemNameLabel; delete itemDescriptionLabel; + delete weightLabel; } void InventoryWindow::logic() @@ -83,6 +89,13 @@ void InventoryWindow::logic() // It would be nicer if this update could be event based, needs some // redesign of InventoryWindow and ItemContainer probably. updateButtons(); + + // Update weight information + char tempstr[128]; + sprintf(tempstr, "Total Weight: %2i - Maximum Weight: %2i", + char_info->totalWeight, char_info->maxWeight); + weightLabel->setCaption(tempstr); + weightLabel->adjustSize(); } int InventoryWindow::addItem(int index, int id, int quantity, bool equipment) @@ -207,7 +220,7 @@ void InventoryWindow::updateWidgets() dropButton->setPosition(48 + 16, getHeight() - 24); items->setSize(getWidth() - 24 - 12 - 1, (INVENTORY_SIZE * 24) / (getWidth() / 24) - 1); - invenScroll->setSize(getWidth() - 16, getHeight() - 72); + invenScroll->setSize(getWidth() - 16, getHeight() - 90); itemNameLabel->setPosition(8, invenScroll->getY() + invenScroll->getHeight() + 4); itemDescriptionLabel->setPosition(8, diff --git a/src/gui/inventory.h b/src/gui/inventory.h index 37edff7f..969424fb 100644 --- a/src/gui/inventory.h +++ b/src/gui/inventory.h @@ -51,7 +51,7 @@ class InventoryWindow : public Window, gcn::ActionListener ~InventoryWindow(); /** - * Logic (updates buttons) + * Logic (updates buttons and weight information) */ void logic(); @@ -93,6 +93,7 @@ class InventoryWindow : public Window, gcn::ActionListener int dropItem(int index, int quantity); void mouseClick(int x, int y, int button, int count); + void mouseMotion(int mx, int my); ItemContainer *items; @@ -107,6 +108,7 @@ class InventoryWindow : public Window, gcn::ActionListener gcn::Label *itemNameLabel; gcn::Label *itemDescriptionLabel; + gcn::Label *weightLabel; }; #endif diff --git a/src/main.h b/src/main.h index 59dd1792..bac5ce43 100644 --- a/src/main.h +++ b/src/main.h @@ -82,7 +82,8 @@ typedef struct { short statp, skill_point, hair_color, hair_style; char STR, AGI, VIT, INT, DEX, LUK; char STRUp, AGIUp, VITUp, INTUp, DEXUp, LUKUp; - short weapon; + int totalWeight, maxWeight; + short weapon; // skill list declaration std::vector m_Skill; // array of N_SKILLS skills // gets the requested skills level from char_info -- cgit v1.2.3-70-g09d2