[Scummvm-cvs-logs] CVS: scummvm/queen logic.cpp,1.67,1.68 logic.h,1.51,1.52 xref.txt,1.27,1.28
Joost Peters
joostp at users.sourceforge.net
Sun Nov 2 06:51:10 CET 2003
- Previous message: [Scummvm-cvs-logs] CVS: scummvm/gui launcher.cpp,1.62,1.63
- Next message: [Scummvm-cvs-logs] CVS: scummvm/gui object.h,NONE,1.1 EditTextWidget.cpp,1.16,1.17 EditTextWidget.h,1.9,1.10 ListWidget.cpp,1.26,1.27 ListWidget.h,1.15,1.16 PopUpWidget.cpp,1.19,1.20 PopUpWidget.h,1.3,1.4 ScrollBarWidget.cpp,1.10,1.11 ScrollBarWidget.h,1.3,1.4 about.cpp,1.6,1.7 dialog.cpp,1.32,1.33 dialog.h,1.22,1.23 message.cpp,1.14,1.15 options.h,1.7,1.8 widget.cpp,1.19,1.20 widget.h,1.22,1.23
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Update of /cvsroot/scummvm/scummvm/queen
In directory sc8-pr-cvs1:/tmp/cvs-serv16147/queen
Modified Files:
logic.cpp logic.h xref.txt
Log Message:
add missing inventory functions
Index: logic.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/queen/logic.cpp,v
retrieving revision 1.67
retrieving revision 1.68
diff -u -d -r1.67 -r1.68
--- logic.cpp 31 Oct 2003 13:47:27 -0000 1.67
+++ logic.cpp 2 Nov 2003 14:49:50 -0000 1.68
@@ -2040,19 +2040,89 @@
update();
}
+int16 Logic::previousInventoryItem(int16 start) const {
+ int i;
+ for (i = start - 1; i >= 1; i--)
+ if (_itemData[i].name > 0)
+ return i;
+ for (i = _numItems; i > start; i--)
+ if (_itemData[i].name > 0)
+ return i;
+
+ return 0; //nothing found
+}
+
+int16 Logic::nextInventoryItem(int16 start) const {
+ int i;
+ for (i = start + 1; i < _numItems; i++)
+ if (_itemData[i].name > 0)
+ return i;
+ for (i = 1; i < start; i++)
+ if (_itemData[i].name > 0)
+ return i;
+
+ return 0; //nothing found
+}
+
+void Logic::removeDuplicateItems() {
+ for (int i = 0; i < 4; i++)
+ for (int j = i + 1; j < 4; j++)
+ if (_inventoryItem[i] == _inventoryItem[j])
+ _inventoryItem[j] = 0;
+}
+
+uint16 Logic::numItemsInventory() const {
+ uint16 count = 0;
+ for (int i = 1; i < _numItems; i++)
+ if (_itemData[i].name > 0)
+ count++;
+
+ return count;
+}
void Logic::inventoryInsertItem(uint16 itemNum, bool refresh) {
- warning("Logic::inventoryInsertItem() unimplemented");
+ int16 item = _inventoryItem[0] = (int16)itemNum;
+ _itemData[itemNum].name = abs(_itemData[itemNum].name); //set visible
+ for (int i = 1; i < 4; i++) {
+ item = nextInventoryItem(item);
+ _inventoryItem[i] = item;
+ removeDuplicateItems();
+ }
+
+ if (refresh)
+ inventoryRefresh();
}
void Logic::inventoryDeleteItem(uint16 itemNum, bool refresh) {
- warning("Logic::inventoryDeleteItem() unimplemented");
+ int16 item = (int16)itemNum;
+ _itemData[itemNum].name = -abs(_itemData[itemNum].name); //set invisible
+ for (int i = 0; i < 4; i++) {
+ item = nextInventoryItem(item);
+ _inventoryItem[i] = item;
+ removeDuplicateItems();
+ }
+
+ if (refresh)
+ inventoryRefresh();
}
void Logic::inventoryScroll(uint16 count, bool up) {
- warning("Logic::inventoryScroll() unimplemented");
+ if (!(numItemsInventory() > 4))
+ return;
+
+ if (up) {
+ for (int i = 0; i < 3; i++)
+ _inventoryItem[i] = _inventoryItem[i + 1];
+ _inventoryItem[3] = nextInventoryItem(_inventoryItem[3]);
+ } else {
+ for (int i = 3; i > 0; i--)
+ _inventoryItem[i] = _inventoryItem[i - 1];
+ _inventoryItem[0] = previousInventoryItem(_inventoryItem[0]);
+ }
+
+ inventoryRefresh();
}
Index: logic.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/queen/logic.h,v
retrieving revision 1.51
retrieving revision 1.52
diff -u -d -r1.51 -r1.52
--- logic.h 1 Nov 2003 20:45:45 -0000 1.51
+++ logic.h 2 Nov 2003 14:49:50 -0000 1.52
@@ -256,6 +256,10 @@
void inventorySetup();
uint16 findInventoryItem(int invSlot) const;
void inventoryRefresh();
+ int16 previousInventoryItem(int16 start) const;
+ int16 nextInventoryItem(int16 start) const;
+ void removeDuplicateItems();
+ uint16 numItemsInventory() const;
void inventoryInsertItem(uint16 itemNum, bool refresh = true);
void inventoryDeleteItem(uint16 itemNum, bool refresh = true);
void inventoryScroll(uint16 count, bool up);
Index: xref.txt
===================================================================
RCS file: /cvsroot/scummvm/scummvm/queen/xref.txt,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -d -r1.27 -r1.28
--- xref.txt 1 Nov 2003 20:45:45 -0000 1.27
+++ xref.txt 2 Nov 2003 14:49:51 -0000 1.28
@@ -167,11 +167,11 @@
INVENTORY
=========
-DEL_ITEM_NUM() Logic::inventoryDeleteItem // TODO
-INS_ITEM_NUM() Logic::inventoryInsertItem // TODO
-INVDWN() Logic::inventoryScroll // TODO
+DEL_ITEM_NUM() Logic::inventoryDeleteItem
+INS_ITEM_NUM() Logic::inventoryInsertItem
+INVDWN() Logic::inventoryScroll
INVENTORY() Logic::inventoryRefresh
-INVUP() Logic::inventoryScroll // TODO
+INVUP() Logic::inventoryScroll
SETUP_ITEMS() Logic::inventorySetup
-
INV1,INV2,INV3,INV4 Logic::_inventoryItem
- Previous message: [Scummvm-cvs-logs] CVS: scummvm/gui launcher.cpp,1.62,1.63
- Next message: [Scummvm-cvs-logs] CVS: scummvm/gui object.h,NONE,1.1 EditTextWidget.cpp,1.16,1.17 EditTextWidget.h,1.9,1.10 ListWidget.cpp,1.26,1.27 ListWidget.h,1.15,1.16 PopUpWidget.cpp,1.19,1.20 PopUpWidget.h,1.3,1.4 ScrollBarWidget.cpp,1.10,1.11 ScrollBarWidget.h,1.3,1.4 about.cpp,1.6,1.7 dialog.cpp,1.32,1.33 dialog.h,1.22,1.23 message.cpp,1.14,1.15 options.h,1.7,1.8 widget.cpp,1.19,1.20 widget.h,1.22,1.23
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the Scummvm-git-logs
mailing list