[Scummvm-git-logs] scummvm master -> 82f0abb640fed8a9168445d8dd74def137513c41

dreammaster noreply at scummvm.org
Mon Oct 7 01:08:04 UTC 2024


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
82f0abb640 M4: RIDDLE: Implement inventory list


Commit: 82f0abb640fed8a9168445d8dd74def137513c41
    https://github.com/scummvm/scummvm/commit/82f0abb640fed8a9168445d8dd74def137513c41
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2024-10-06T18:07:59-07:00

Commit Message:
M4: RIDDLE: Implement inventory list

Changed paths:
    engines/m4/riddle/gui/inventory.cpp
    engines/m4/riddle/inventory.cpp


diff --git a/engines/m4/riddle/gui/inventory.cpp b/engines/m4/riddle/gui/inventory.cpp
index f1aedc11f98..92f3c21774b 100644
--- a/engines/m4/riddle/gui/inventory.cpp
+++ b/engines/m4/riddle/gui/inventory.cpp
@@ -229,7 +229,7 @@ void Inventory::draw(GrBuff *myBuffer) {
 					gr_line(left, top, left + _cell_w - 2, top, __LTGRAY, myBuff);
 					gr_line(left, top + _cell_h - 2, left + _cell_w - 2, top + _cell_h - 2, __LTGRAY, myBuff);
 					gr_line(left, top, left, top + _cell_w - 2, __LTGRAY, myBuff);
-					gr_line(left + _cell_w - 2, top, left + _cell_w - 2, top + 35, __LTGRAY, myBuff);
+					gr_line(left + _cell_w - 2, top, left + _cell_w - 2, top + _cell_h - 2, __LTGRAY, myBuff);
 				}
 			}
 		}
diff --git a/engines/m4/riddle/inventory.cpp b/engines/m4/riddle/inventory.cpp
index caf4a4854fc..bc138a0288f 100644
--- a/engines/m4/riddle/inventory.cpp
+++ b/engines/m4/riddle/inventory.cpp
@@ -26,181 +26,159 @@
 namespace M4 {
 namespace Riddle {
 
-
 #define INVENTORY_COUNT 123
 
-const char *const INVENTORY_NAMES[123] = {
-	"SOLDIER'S HELMET",
-	"BUCKET",
-	"RIPLEY PHOTO",
-	"LEAD PIPE",
-	"SEVEN SPOKES",
-	"MALLET",
-	"GONG",
-	"WHEELED TOY",
-	"CHARCOAL",
-	"POST MARKED ENVELOPE",
-	"TURTLE",
-	"TURTLE TREATS",
-	"PLANK",
-	"PASS",
-	"KEY",
-	"ACE OF SPADES CARD",
-	"STEP LADDER",
-	"BILLIARD BALL",
-	"CIGAR",
-	"GLASS JAR",
-	"ROMANOV EMERALD",
-	"CORK",
-	"LEVER KEY",
-	"EDGER",
-	"SURGICAL TUBE",
-	"PUMP ROD",
-	"FAUCET PIPE",
-	"FAUCET HANDLE",
-	"RUBBER PLUG",
-	"GARDEN HOSE",
-	"MENENDEZ'S LETTER",
-	"KEYS",
-	"BROKEN WHEEL",
-	"PUMP GRIPS",
-	"CLOCK FACING",
-	"SHOVEL",
-	"WOODEN LADDER",
-	"ROPE",
-	"GREEN VINE",
-	"CRYSTAL SKULL",
-	"BROWN VINE",
-	"PULL CORD",
-	"SPARK PLUG TOOL",
-	"RONGORONGO TABLET",
-	"SLEEVE",
-	"LIGHTER",
-	"STICK AND SHELL MAP",
-	"DRIFTWOOD STUMP",
-	"OBSIDIAN DISK",
-	"SOLDIER'S SHIELD",
-	"TWELVETREES' NOTE",
-	"TWO SOLDIERS' SHIELDS",
-	"WOODEN POST",
-	"CRANK",
-	"WOODEN BEAM",
-	"EMPEROR'S SEAL",
-	"POLE",
-	"REBUS AMULET",
-	"DRIFTWOOD PUFFIN",
-	"SHRUNKEN HEAD",
-	"METAL RIM",
-	"CHINESE YUAN",
-	"JOURNAL",
-	"SILVER BUTTERFLY",
-	"POSTAGE STAMP",
-	"GERMAN BANKNOTE",
-	"WHALE BONE HORN",
-	"CHISEL",
-	"INCENSE BURNER",
-	"POMERANIAN MARKS",
-	"PERUVIAN INTI",
-	"SIKKIMESE RUPEE",
-	"SERENITY WHEEL",
-	"PEACE WHEEL",
-	"INSIGHT WHEEL",
-	"TRUTH WHEEL",
-	"WISDOM WHEEL",
-	"CIGAR WITHOUT BAND",
-	"CIGAR BAND",
-	"FARMER'S SHOVEL",
-	"MATCH",
-	"LIT LIGHTER",
-	"VON SELTSAM'S NOTE",
-	"PRAYER WHEEL BROCHURE",
-	"ENVELOPE",
-	"VON SELTSAM'S LETTER",
-	"HORN/PULL CORD",
-	"FAUCET PIPE/HOSE",
-	"FAUCET PIPE/HOSE/TUBE",
-	"JAR/CORK",
-	"JAR/RUBBER PLUG",
-	"JAR/GRIPS",
-	"JAR/PLUG/GRIPS",
-	"JAR/PLUG/CORK/GRIPS",
-	"JAR/CORK/PLUG",
-	"JAR/CORK/GRIPS",
-	"VINES",
-	"TUBE/HOSE",
-	"US DOLLARS",
-	"JAR/FAUCET PIPE",
-	"EMERALD/CORK",
-	"TWELVETREES' MAP",
-	"PERIODIC TABLE",
-	"LEVER KEY/PUMP ROD",
-	"JAR/LEVER KEY",
-	"PUMP ROD/GRIPS",
-	"JAR/PERIODIC TABLE",
-	"ROPE/GREEN VINE",
-	"ROPE/VINES",
-	"HORN/PULL CORD/WATER",
-	"LADDER/ROPE",
-	"LADDER/GREEN VINE",
-	"LADDER/VINES",
-	"WITHERED GREEN VINE",
-	"WITHERED VINES",
-	"VINE DUST",
-	"JAR/PIPE/HOSE",
-	"LADDER/BROWN VINE",
-	"ROPE/BROWN VINE",
-	"MESSAGE LOG",
-	"WITHERED BROWN VINE",
-	"TOMB MESSAGE",
-	"FAUCET PIPE/TUBE"
+struct InvObject {
+	const char *_name;
+	int16 _scene, _cel, _cursor;
 };
 
-static const uint16 INVENTORY_SCENES[123] = {
-	203, 203, 998, 207, 207, 204, 204, 504,
-	205, 304, 999, 305, 408, 204, 409, 406,
-	403, 406, 456, 407, 407, 407, 407, 408,
-	407, 407, 407, 407, 407, 407, 407, 406,
-	207, 407, 501, 504, 504, 504, 504, 510,
-	504, 604, 604, 607, 603, 608, 608, 600,
-	605, 805, 603, 805, 805, 806, 844, 810,
-	603, 207, 608, 504, 207, 999, 998, 204,
-	999, 405, 608, 709, 709, 401, 501, 701,
-	703, 704, 705, 705, 706, 406, 406, 801,
-	801, 999, 999, 999, 406, 999, 999, 999,
-	999, 999, 999, 999, 999, 999, 999, 999,
-	999, 407, 998, 407, 407, 603, 407, 407,
-	407, 407, 407, 999, 999, 999, 999, 999,
-	999, 999, 999, 999, 999, 999, 999, 999,
-	999, 409, 999
+static const InvObject INVENTORY_ITEMS[123] = {
+	{ "SOLDIER'S HELMET",       203,  14,  10 },
+	{ "BUCKET",					203,  15,  11 },
+	{ "RIPLEY PHOTO",			998,  16,  12 },
+	{ "LEAD PIPE",				207,  17,  13 },
+	{ "SEVEN SPOKES",			207,  18,  14 },
+	{ "MALLET",					204,  55,  21 },
+	{ "GONG",					204,  56,  22 },
+	{ "WHEELED TOY",			504,  57,  53 },
+	{ "CHARCOAL",				205,  58,  54 },
+	{ "POST MARKED ENVELOPE",	304,  25,  34 },
+	{ "TURTLE",					999,  59,  55 },
+	{ "TURTLE TREATS",			305,  60,  56 },
+	{ "PLANK",					408,  26,  23 },
+	{ "PASS",					204,  61,  57 },
+	{ "KEY",					409,  27,  35 },
+	{ "ACE OF SPADES CARD",		406,  28,  24 },
+	{ "STEP LADDER",			403,  62,  58 },
+	{ "BILLIARD BALL",			406,  29,  25 },
+	{ "CIGAR",					456,  30,  26 },
+	{ "GLASS JAR",				407,  31,  27 },
+	{ "ROMANOV EMERALD",		407,  32,  28 },
+	{ "CORK",					407,  33,  29 },
+	{ "LEVER KEY",				407,  34,  30 },
+	{ "EDGER",					408,  88,  84 },
+	{ "SURGICAL TUBE",			407,  45,  43 },
+	{ "PUMP ROD",				407,  35,  31 },
+	{ "FAUCET PIPE",			407,  46,  44 },
+	{ "FAUCET HANDLE",			407,  36,  32 },
+	{ "RUBBER PLUG",			407,  37,  33 },
+	{ "GARDEN HOSE",			407,  38,  36 },
+	{ "MENENDEZ'S LETTER",		407,  39,  37 },
+	{ "KEYS",					406,  40,  38 },
+	{ "BROKEN WHEEL",			207,  63,  59 },
+	{ "PUMP GRIPS",				407,  41,  39 },
+	{ "CLOCK FACING",			501,  47,  45 },
+	{ "SHOVEL",					504,  64,  60 },
+	{ "WOODEN LADDER",			504,  65,  61 },
+	{ "ROPE",					504,  66,  62 },
+	{ "GREEN VINE",				504,  67,  63 },
+	{ "CRYSTAL SKULL",			510,  42,  40 },
+	{ "BROWN VINE",				504,  68,  64 },
+	{ "PULL CORD",				604,  69,  65 },
+	{ "SPARK PLUG TOOL",		604,  70,  66 },
+	{ "RONGORONGO TABLET",		607,  71,  67 },
+	{ "SLEEVE",					603,  72,  68 },
+	{ "LIGHTER",				608,  73,  69 },
+	{ "STICK AND SHELL MAP",	608,  74,  70 },
+	{ "DRIFTWOOD STUMP",		600,  75,  71 },
+	{ "OBSIDIAN DISK",			605,  76,  72 },
+	{ "SOLDIER'S SHIELD",		805,  77,  73 },
+	{ "TWELVETREES' NOTE",		603,  89,  85 },
+	{ "TWO SOLDIERS' SHIELDS",	805,  78,  74 },
+	{ "WOODEN POST",			805,  79,  75 },
+	{ "CRANK",					806,  80,  76 },
+	{ "WOODEN BEAM",			844,  81,  77 },
+	{ "EMPEROR'S SEAL",			810,  82,  78 },
+	{ "POLE",					603,  90,  86 },
+	{ "REBUS AMULET",			207,  19,  15 },
+	{ "DRIFTWOOD PUFFIN",		608,  20,  16 },
+	{ "SHRUNKEN HEAD",			504,  43,  41 },
+	{ "METAL RIM",				207,  23,  19 },
+	{ "CHINESE YUAN",			999,  22,  18 },
+	{ "JOURNAL",				998,  24,  20 },
+	{ "SILVER BUTTERFLY",		204,  44,  42 },
+	{ "POSTAGE STAMP",			999,  83,  79 },
+	{ "GERMAN BANKNOTE",		405,  84,  80 },
+	{ "WHALE BONE HORN",		608,  85,  81 },
+	{ "CHISEL",					709,  86,  82 },
+	{ "INCENSE BURNER",			709,  87,  83 },
+	{ "POMERANIAN MARKS",		401,  22,  18 },
+	{ "PERUVIAN INTI",			501,  22,  18 },
+	{ "SIKKIMESE RUPEE",		701,  22,  18 },
+	{ "SERENITY WHEEL",			703,  48,  46 },
+	{ "PEACE WHEEL",			704,  49,  47 },
+	{ "INSIGHT WHEEL",			705,  50,  48 },
+	{ "TRUTH WHEEL",			705,  51,  49 },
+	{ "WISDOM WHEEL",			706,  52,  50 },
+	{ "CIGAR WITHOUT BAND",		406,  53,  51 },
+	{ "CIGAR BAND",				406,  54,  52 },
+	{ "FARMER'S SHOVEL",		801,  91,  87 },
+	{ "MATCH",					801,  92,  88 },
+	{ "LIT LIGHTER",			999,  96,  92 },
+	{ "VON SELTSAM'S NOTE",		999,  97,  93 },
+	{ "PRAYER WHEEL BROCHURE",	999,  98,  94 },
+	{ "ENVELOPE",				406,  99,  95 },
+	{ "VON SELTSAM'S LETTER",	999, 100,  96 },
+	{ "HORN/PULL CORD",			999, 101,  97 },
+	{ "FAUCET PIPE/HOSE",		999, 102,  98 },
+	{ "FAUCET PIPE/HOSE/TUBE",	999, 103,  99 },
+	{ "JAR/CORK",				999, 104, 100 },
+	{ "JAR/RUBBER PLUG",		999, 105, 101 },
+	{ "JAR/GRIPS",				999, 106, 102 },
+	{ "JAR/PLUG/GRIPS",			999, 107, 103 },
+	{ "JAR/PLUG/CORK/GRIPS",	999, 108, 104 },
+	{ "JAR/CORK/PLUG",			999, 109, 105 },
+	{ "JAR/CORK/GRIPS",			999, 110, 106 },
+	{ "VINES",					999, 111, 107 },
+	{ "TUBE/HOSE",				407, 112, 108 },
+	{ "US DOLLARS",				998,  21,  17 },
+	{ "JAR/FAUCET PIPE",		407, 113, 109 },
+	{ "EMERALD/CORK",			407, 114, 110 },
+	{ "TWELVETREES' MAP",		603,  95,  91 },
+	{ "PERIODIC TABLE",			407,  93,  89 },
+	{ "LEVER KEY/PUMP ROD",		407, 115, 111 },
+	{ "JAR/LEVER KEY",			407, 116, 112 },
+	{ "PUMP ROD/GRIPS",			407, 117, 113 },
+	{ "JAR/PERIODIC TABLE",		407, 118, 114 },
+	{ "ROPE/GREEN VINE",		999, 119, 115 },
+	{ "ROPE/VINES",				999, 120, 116 },
+	{ "HORN/PULL CORD/WATER",	999, 101,  97 },
+	{ "LADDER/ROPE",			999, 121, 117 },
+	{ "LADDER/GREEN VINE",		999, 122, 118 },
+	{ "LADDER/VINES",			999, 123, 119 },
+	{ "WITHERED GREEN VINE",	999,  67,  63 },
+	{ "WITHERED VINES",			999, 111, 107 },
+	{ "VINE DUST",				999, 124, 120 },
+	{ "JAR/PIPE/HOSE",			999, 125, 121 },
+	{ "LADDER/BROWN VINE",		999, 126, 122 },
+	{ "ROPE/BROWN VINE",		999, 127, 123 },
+	{ "MESSAGE LOG",			999,  94,  90 },
+	{ "WITHERED BROWN VINE",	999,  68,  64 },
+	{ "TOMB MESSAGE",			409, 128, 124 },
+	{ "FAUCET PIPE/TUBE",		999, 137, 125 }
 };
 
 void Inventory::init() {
-	for (int i = 0; i < INVENTORY_COUNT; ++i) {
-		_G(inv_suppress_click_sound) = true;
-		inv_move_object(INVENTORY_NAMES[i], INVENTORY_SCENES[i]);
-	}
+	for (const InvObject *item = INVENTORY_ITEMS; item->_name; ++item) {
+		inv_register_thing(item->_name, nullptr, item->_scene, item->_cel, item->_cursor);
 
-	_G(inv_suppress_click_sound) = false;
+		_items.push_back(InventoryItem(item->_name, item->_scene));
+	}
 }
 
 void Inventory::add(const Common::String &name, const Common::String &verb, int32 sprite, int32 cursor) {
-#ifdef TODO
 	_GI(inventory)->add(name, verb, sprite, cursor);
 	_GI(inventory)->_must_redraw_all = true;
-#endif
 }
 
 void Inventory::set_scroll(int32 scroll) {
-#ifdef TODO
 	_GI(inventory)->set_scroll(scroll);
-#endif
 }
 
 void Inventory::remove(const Common::String &name) {
-#ifdef TODO
 	_GI(inventory)->remove(name);
 	_GI(inventory)->_must_redraw_all = true;
-#endif
 }
 
 } // namespace Riddle




More information about the Scummvm-git-logs mailing list