[Scummvm-git-logs] scummvm master -> f75ea71b707ecad6072d71f9bccdf4203d827c31

dreammaster noreply at scummvm.org
Sun Oct 6 21:36:02 UTC 2024


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

Summary:
f49e3ac4e4 M4: RIDDLE: Rename burger/riddle gui_cheapo.cpp to inventory.cpp
f75ea71b70 M4: RIDDLE: Move inventory scroll buttons into Inventory class


Commit: f49e3ac4e487ef4564119b08421ebcf95c3ac9e5
    https://github.com/scummvm/scummvm/commit/f49e3ac4e487ef4564119b08421ebcf95c3ac9e5
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2024-10-06T14:20:37-07:00

Commit Message:
M4: RIDDLE: Rename burger/riddle gui_cheapo.cpp to inventory.cpp

All the basic gui_cheapo classes are held in common for both
games, leaving only the Inventory class different between
the two. So better to call the files inventory.cpp/.h

Changed paths:
  A engines/m4/burger/gui/inventory.cpp
  A engines/m4/burger/gui/inventory.h
  A engines/m4/riddle/gui/inventory.cpp
  A engines/m4/riddle/gui/inventory.h
  R engines/m4/burger/gui/gui_cheapo.cpp
  R engines/m4/burger/gui/gui_cheapo.h
  R engines/m4/riddle/gui/gui_cheapo.cpp
  R engines/m4/riddle/gui/gui_cheapo.h
    engines/m4/burger/gui/gui_gizmo.h
    engines/m4/burger/gui/interface.h
    engines/m4/burger/rooms/section5/room510.h
    engines/m4/module.mk
    engines/m4/riddle/gui/interface.cpp
    engines/m4/riddle/gui/interface.h


diff --git a/engines/m4/burger/gui/gui_gizmo.h b/engines/m4/burger/gui/gui_gizmo.h
index bd724ffa116..e1c21418d49 100644
--- a/engines/m4/burger/gui/gui_gizmo.h
+++ b/engines/m4/burger/gui/gui_gizmo.h
@@ -27,7 +27,7 @@
 #include "m4/m4_types.h"
 #include "m4/gui/gui_vmng_core.h"
 #include "m4/graphics/gr_buff.h"
-#include "m4/burger/gui/gui_cheapo.h"
+#include "m4/burger/gui/inventory.h"
 
 namespace M4 {
 namespace Burger {
diff --git a/engines/m4/burger/gui/interface.h b/engines/m4/burger/gui/interface.h
index dea986d70b3..3b3d86012ff 100644
--- a/engines/m4/burger/gui/interface.h
+++ b/engines/m4/burger/gui/interface.h
@@ -27,7 +27,7 @@
 #include "m4/adv_r/adv_hotspot.h"
 #include "m4/graphics/graphics.h"
 #include "m4/graphics/gr_buff.h"
-#include "m4/burger/gui/gui_cheapo.h"
+#include "m4/burger/gui/inventory.h"
 
 namespace M4 {
 namespace Burger {
diff --git a/engines/m4/burger/gui/gui_cheapo.cpp b/engines/m4/burger/gui/inventory.cpp
similarity index 99%
rename from engines/m4/burger/gui/gui_cheapo.cpp
rename to engines/m4/burger/gui/inventory.cpp
index 00cba239613..6e64b45ebf9 100644
--- a/engines/m4/burger/gui/gui_cheapo.cpp
+++ b/engines/m4/burger/gui/inventory.cpp
@@ -19,7 +19,7 @@
  *
  */
 
-#include "m4/burger/gui/gui_cheapo.h"
+#include "m4/burger/gui/inventory.h"
 #include "m4/burger/vars.h"
 #include "m4/core/errors.h"
 #include "m4/graphics/gr_line.h"
diff --git a/engines/m4/burger/gui/gui_cheapo.h b/engines/m4/burger/gui/inventory.h
similarity index 97%
rename from engines/m4/burger/gui/gui_cheapo.h
rename to engines/m4/burger/gui/inventory.h
index 4a44a09e233..e4846030dbf 100644
--- a/engines/m4/burger/gui/gui_cheapo.h
+++ b/engines/m4/burger/gui/inventory.h
@@ -20,8 +20,8 @@
  *
  */
 
-#ifndef M4_BURGER_GUI_CHEAPO_H
-#define M4_BURGER_GUI_CHEAPO_H
+#ifndef M4_BURGER_GUI_INVENTORY_H
+#define M4_BURGER_GUI_INVENTORY_H
 
 #include "m4/gui/gui_cheapo.h"
 
diff --git a/engines/m4/burger/rooms/section5/room510.h b/engines/m4/burger/rooms/section5/room510.h
index 45b0332aa7b..bc832e94585 100644
--- a/engines/m4/burger/rooms/section5/room510.h
+++ b/engines/m4/burger/rooms/section5/room510.h
@@ -23,7 +23,7 @@
 #define M4_BURGER_ROOMS_SECTION5_ROOM510_H
 
 #include "m4/burger/rooms/section5/section5_room.h"
-#include "m4/burger/gui/gui_cheapo.h"
+#include "m4/burger/gui/inventory.h"
 
 namespace M4 {
 namespace Burger {
diff --git a/engines/m4/module.mk b/engines/m4/module.mk
index 06b8e7b6529..0368ff8efd1 100644
--- a/engines/m4/module.mk
+++ b/engines/m4/module.mk
@@ -80,7 +80,7 @@ MODULE_OBJS = \
 	burger/core/release_trigger.o \
 	burger/core/stream_break.o \
 	burger/gui/game_menu.o \
-	burger/gui/gui_cheapo.o \
+	burger/gui/inventory.o \
 	burger/gui/gui_gizmo.o \
 	burger/gui/interface.o \
 	burger/rooms/room.o \
@@ -182,7 +182,7 @@ MODULE_OBJS = \
 	burger/vars.o \
 	burger/walker.o \
 	riddle/gui/game_menu.o \
-	riddle/gui/gui_cheapo.o \
+	riddle/gui/inventory.o \
 	riddle/gui/interface.o \
 	riddle/rooms/room.o \
 	riddle/rooms/section.o \
diff --git a/engines/m4/riddle/gui/interface.cpp b/engines/m4/riddle/gui/interface.cpp
index 5f9b0ede3d2..57215c1641f 100644
--- a/engines/m4/riddle/gui/interface.cpp
+++ b/engines/m4/riddle/gui/interface.cpp
@@ -21,7 +21,7 @@
 
 #include "m4/riddle/gui/interface.h"
 #include "m4/riddle/gui/game_menu.h"
-#include "m4/riddle/gui/gui_cheapo.h"
+#include "m4/riddle/gui/inventory.h"
 #include "m4/riddle/riddle.h"
 #include "m4/riddle/vars.h"
 #include "m4/adv_r/other.h"
diff --git a/engines/m4/riddle/gui/interface.h b/engines/m4/riddle/gui/interface.h
index 695585e82ba..ac3eb263680 100644
--- a/engines/m4/riddle/gui/interface.h
+++ b/engines/m4/riddle/gui/interface.h
@@ -23,7 +23,7 @@
 #ifndef M4_RIDDLE_INTERFACE_H
 #define M4_RIDDLE_INTERFACE_H
 
-#include "m4/riddle/gui/gui_cheapo.h"
+#include "m4/riddle/gui/inventory.h"
 #include "m4/adv_r/adv_interface.h"
 #include "m4/adv_r/adv_hotspot.h"
 #include "m4/graphics/graphics.h"
@@ -36,6 +36,17 @@ namespace GUI {
 using M4::GUI::ControlStatus;
 
 struct Interface : public M4::Interface {
+	class BackpackClass : public ButtonClass {
+	private:
+		int _field32 = 0;
+
+	public:
+		BackpackClass(const RectClass &r, const Common::String &btnName, int16 tag,
+			int16 relaxed, int16 over, int16 picked, int sprite) :
+			ButtonClass(r, btnName, tag, relaxed, over, picked, sprite) {}
+		~BackpackClass() override {}
+	};
+
 private:
 	void setup();
 
@@ -51,7 +62,7 @@ public:
 	GUI::ButtonClass *_btnTake = nullptr;
 	GUI::ButtonClass *_btnManipulate = nullptr;
 	GUI::ButtonClass *_btnHandle = nullptr;
-	GUI::BackpackClass *_btnBackpack = nullptr;
+	BackpackClass *_btnBackpack = nullptr;
 	GUI::ButtonClass *_btnBinky = nullptr;
 	GUI::ButtonClass *_btnScrollLeft = nullptr;
 	GUI::ButtonClass *_btnScrollRight = nullptr;
diff --git a/engines/m4/riddle/gui/gui_cheapo.cpp b/engines/m4/riddle/gui/inventory.cpp
similarity index 98%
rename from engines/m4/riddle/gui/gui_cheapo.cpp
rename to engines/m4/riddle/gui/inventory.cpp
index aa1de7ea49c..eac0c6d7b47 100644
--- a/engines/m4/riddle/gui/gui_cheapo.cpp
+++ b/engines/m4/riddle/gui/inventory.cpp
@@ -19,8 +19,8 @@
  *
  */
 
-#include "m4/riddle/gui/gui_cheapo.h"
-#include "m4/riddle/gui/gui_cheapo.h"
+#include "m4/riddle/gui/inventory.h"
+#include "m4/riddle/gui/inventory.h"
 #include "m4/riddle/vars.h"
 #include "m4/core/errors.h"
 #include "m4/graphics/gr_line.h"
diff --git a/engines/m4/riddle/gui/gui_cheapo.h b/engines/m4/riddle/gui/inventory.h
similarity index 88%
rename from engines/m4/riddle/gui/gui_cheapo.h
rename to engines/m4/riddle/gui/inventory.h
index 4fcc9c62425..627835c6805 100644
--- a/engines/m4/riddle/gui/gui_cheapo.h
+++ b/engines/m4/riddle/gui/inventory.h
@@ -20,8 +20,8 @@
  *
  */
 
-#ifndef M4_RIDDLE_GUI_CHEAPO_H
-#define M4_RIDDLE_GUI_CHEAPO_H
+#ifndef M4_RIDDLE_GUI_INVENTORY_H
+#define M4_RIDDLE_GUI_INVENTORY_H
 
 #include "m4/gui/gui_cheapo.h"
 
@@ -47,17 +47,6 @@ constexpr int16 RIGHT_ARROW_TAG_DOWN = 136;
 constexpr int16 LEFT_ARROW_TAG_NONFUNC = 133;
 constexpr int16 RIGHT_ARROW_TAG_NONFUNC = 137;
 
-class BackpackClass : public ButtonClass {
-private:
-	int _field32 = 0;
-
-public:
-	BackpackClass(const RectClass &r, const Common::String &btnName, int16 tag,
-		int16 relaxed, int16 over, int16 picked, int sprite) :
-		ButtonClass(r, btnName, tag, relaxed, over, picked, sprite) {}
-	~BackpackClass() override {}
-};
-
 class Inventory : public RectClass {
 	struct Entry {
 		Common::String _name;


Commit: f75ea71b707ecad6072d71f9bccdf4203d827c31
    https://github.com/scummvm/scummvm/commit/f75ea71b707ecad6072d71f9bccdf4203d827c31
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2024-10-06T14:34:44-07:00

Commit Message:
M4: RIDDLE: Move inventory scroll buttons into Inventory class

This makes the inventory drawing code in particular cleaner
than the code was in the Orion Burger implementation,
which was bugging me as I was reimplementing the new Riddle code

Changed paths:
    engines/m4/adv_r/adv_interface.h
    engines/m4/burger/gui/interface.cpp
    engines/m4/riddle/gui/interface.cpp
    engines/m4/riddle/gui/interface.h
    engines/m4/riddle/gui/inventory.cpp
    engines/m4/riddle/gui/inventory.h


diff --git a/engines/m4/adv_r/adv_interface.h b/engines/m4/adv_r/adv_interface.h
index 1241ef23c15..628697d5ec1 100644
--- a/engines/m4/adv_r/adv_interface.h
+++ b/engines/m4/adv_r/adv_interface.h
@@ -27,6 +27,8 @@
 
 namespace M4 {
 
+#define INTERFACE_SPRITES 22
+
 class Interface {
 public:
 	bool _shown = false;
diff --git a/engines/m4/burger/gui/interface.cpp b/engines/m4/burger/gui/interface.cpp
index 4a00de1681e..dc192cc19c6 100644
--- a/engines/m4/burger/gui/interface.cpp
+++ b/engines/m4/burger/gui/interface.cpp
@@ -33,8 +33,6 @@ namespace M4 {
 namespace Burger {
 namespace GUI {
 
-#define INTERFACE_SPRITES 22
-
 Interface::Interface() : M4::Interface() {
 	_x1 = 0;
 	_y1 = 374;
diff --git a/engines/m4/riddle/gui/interface.cpp b/engines/m4/riddle/gui/interface.cpp
index 57215c1641f..09965edc0bd 100644
--- a/engines/m4/riddle/gui/interface.cpp
+++ b/engines/m4/riddle/gui/interface.cpp
@@ -35,8 +35,6 @@ namespace M4 {
 namespace Riddle {
 namespace GUI {
 
-#define INTERFACE_SPRITES 22
-
 Interface::Interface() : M4::Interface() {
 	_x1 = 0;
 	_y1 = 374;
@@ -73,8 +71,6 @@ Interface::~Interface() {
 	delete _btnHandle;
 	delete _btnBackpack;
 	delete _btnBinky;
-	delete _btnScrollLeft;
-	delete _btnScrollRight;
 }
 
 void Interface::show() {
@@ -89,6 +85,7 @@ void Interface::setup() {
 	_interfaceBox = new InterfaceBox(RectClass(10, 10, SCREEN_WIDTH - 11, 101));
 	_inventory = new GUI::Inventory(RectClass(207, 2, 557, 74),
 		_sprite, 4, 2, 35, 35, 3);
+	_inventory->addToInterfaceBox(_interfaceBox);
 	_textField = new TextField(13, 2, 189, 20);
 
 	_btnTake = new ButtonClass(RectClass(2, 10, 40, 50), "take", 4,3, 5, 4, INTERFACE_SPRITES);
@@ -102,11 +99,6 @@ void Interface::setup() {
 	_btnBinky = new ButtonClass(RectClass(582, 10, 629, 50), "binky", 8, 11, 13, 12, INTERFACE_SPRITES);
 	_interfaceBox->add(_btnBackpack);
 	_interfaceBox->add(_btnBinky);
-
-	_btnScrollLeft = new ButtonClass(RectClass(178, -8, 198, 101), "scroll left", 9, 129, 130, 131, INTERFACE_SPRITES);
-	_btnScrollRight = new ButtonClass(RectClass(551, -8, 571, 10), "scroll right", 9, 133, 134, 135, INTERFACE_SPRITES);
-	_interfaceBox->add(_btnScrollLeft);
-	_interfaceBox->add(_btnScrollRight);
 }
 
 void Interface::cancel_sentence() {
@@ -236,44 +228,6 @@ bool Interface::eventHandler(void *bufferPtr, int32 eventType, int32 event, int3
 	return true;
 }
 
-void Interface::refresh_right_arrow() {
-	if (_inventory->need_right() || _inventory->need_left()) {
-		_btnScrollRight->unhide();
-
-		if (_inventory->need_right()) {
-			_btnScrollRight->set_sprite_relaxed(133);
-			_btnScrollRight->set_sprite_picked(135);
-			_btnScrollRight->set_sprite_over(134);
-		} else {
-			_btnScrollRight->set_sprite_relaxed(136);
-			_btnScrollRight->set_sprite_picked(136);
-			_btnScrollRight->set_sprite_over(136);
-		}
-	} else {
-		_btnScrollRight->hide();
-		_btnScrollLeft->hide();
-	}
-}
-
-void Interface::refresh_left_arrow() {
-	if (_inventory->need_right() || _inventory->need_left()) {
-		_btnScrollLeft->unhide();
-
-		if (_inventory->need_left()) {
-			_btnScrollLeft->set_sprite_relaxed(129);
-			_btnScrollLeft->set_sprite_picked(131);
-			_btnScrollLeft->set_sprite_over(130);
-		} else {
-			_btnScrollLeft->set_sprite_relaxed(132);
-			_btnScrollLeft->set_sprite_picked(132);
-			_btnScrollLeft->set_sprite_over(132);
-		}
-	} else {
-		_btnScrollRight->hide();
-		_btnScrollLeft->hide();
-	}
-}
-
 void Interface::trackIcons() {
 	switch (_interfaceBox->_highlight_index) {
 	case 4:
@@ -288,16 +242,7 @@ void Interface::trackIcons() {
 		mouse_set_sprite(_arrow);
 		_iconSelected = false;
 		_inventory->toggleFlag();
-
-		if (_btnScrollRight->is_hidden())
-			refresh_right_arrow();
-		else
-			_btnScrollRight->hide();
-
-		if (_btnScrollLeft->is_hidden())
-			refresh_left_arrow();
-		else
-			_btnScrollLeft->hide();
+		_inventory->refresh_scrollbars();
 		break;
 
 	case 7:
@@ -310,27 +255,11 @@ void Interface::trackIcons() {
 		break;
 
 	case 9:
-		if (!_btnScrollLeft->is_hidden()) {
-			if (_inventory->need_left()) {
-				_inventory->_scroll = (_inventory->_scroll <= 0) ? 0 :
-					_inventory->_scroll - _inventory->_cells_v;
-			}
-
-			refresh_right_arrow();
-			refresh_left_arrow();
-			_inventory->_must_redraw_all = true;
-		}
+		_inventory->check_left();
 		break;
 
 	case 10:
-		if (!_btnScrollRight->is_hidden()) {
-			if (_inventory->need_right())
-				_inventory->_scroll += _inventory->_cells_v;
-
-			refresh_right_arrow();
-			refresh_left_arrow();
-			_inventory->_must_redraw_all = true;
-		}
+		_inventory->check_right();
 		break;
 
 	default:
diff --git a/engines/m4/riddle/gui/interface.h b/engines/m4/riddle/gui/interface.h
index ac3eb263680..6df4f7571d5 100644
--- a/engines/m4/riddle/gui/interface.h
+++ b/engines/m4/riddle/gui/interface.h
@@ -64,8 +64,6 @@ public:
 	GUI::ButtonClass *_btnHandle = nullptr;
 	BackpackClass *_btnBackpack = nullptr;
 	GUI::ButtonClass *_btnBinky = nullptr;
-	GUI::ButtonClass *_btnScrollLeft = nullptr;
-	GUI::ButtonClass *_btnScrollRight = nullptr;
 
 	int _sprite = 22; // main_interface_sprite;
 	bool _shown = false;
@@ -94,9 +92,6 @@ public:
 
 	void show() override;
 
-	void refresh_right_arrow();
-	void refresh_left_arrow();
-
 	void l_cb();
 	void u_cb();
 	void t_cb();
diff --git a/engines/m4/riddle/gui/inventory.cpp b/engines/m4/riddle/gui/inventory.cpp
index eac0c6d7b47..dee0f62c20a 100644
--- a/engines/m4/riddle/gui/inventory.cpp
+++ b/engines/m4/riddle/gui/inventory.cpp
@@ -59,9 +59,19 @@ Inventory::Inventory(const RectClass &r, int32 sprite, int16 cells_h, int16 cell
 	_must_redraw2 = -1;
 	_scroll = 0;
 	_right_arrow_visible = false;
+
+	_btnScrollLeft = new ButtonClass(RectClass(178, -8, 198, 101), "scroll left", 9, 129, 130, 131, INTERFACE_SPRITES);
+	_btnScrollRight = new ButtonClass(RectClass(551, -8, 571, 10), "scroll right", 9, 133, 134, 135, INTERFACE_SPRITES);
 }
 
 Inventory::~Inventory() {
+	delete _btnScrollLeft;
+	delete _btnScrollRight;
+}
+
+void Inventory::addToInterfaceBox(InterfaceBox *box) {
+	box->add(_btnScrollLeft);
+	box->add(_btnScrollRight);
 }
 
 bool Inventory::add(const Common::String &name, const Common::String &verb, int32 invSprite, int32 cursor) {
@@ -200,9 +210,9 @@ void Inventory::draw(GrBuff *myBuffer) {
 		int16 topOffset = top + _cell_h;
 
 		if (_must_redraw1 == cell_iter || _must_redraw2 == cell_iter || _must_redraw_all) {
-			// This does the button update....
-			_G(interface).refresh_right_arrow();
-			_G(interface).refresh_left_arrow();
+			// This does the scroll buttons update....
+			refresh_right_arrow();
+			refresh_left_arrow();
 
 			// Draw icon here
 			gr_color_set(__BLACK);
@@ -290,6 +300,80 @@ ControlStatus Inventory::track(int32 eventType, int16 x, int16 y) {
 	return result;
 }
 
+
+void Inventory::refresh_right_arrow() {
+	if (need_right() || need_left()) {
+		_btnScrollRight->unhide();
+
+		if (need_right()) {
+			_btnScrollRight->set_sprite_relaxed(133);
+			_btnScrollRight->set_sprite_picked(135);
+			_btnScrollRight->set_sprite_over(134);
+		} else {
+			_btnScrollRight->set_sprite_relaxed(136);
+			_btnScrollRight->set_sprite_picked(136);
+			_btnScrollRight->set_sprite_over(136);
+		}
+	} else {
+		_btnScrollRight->hide();
+		_btnScrollLeft->hide();
+	}
+}
+
+void Inventory::refresh_left_arrow() {
+	if (need_right() || need_left()) {
+		_btnScrollLeft->unhide();
+
+		if (need_left()) {
+			_btnScrollLeft->set_sprite_relaxed(129);
+			_btnScrollLeft->set_sprite_picked(131);
+			_btnScrollLeft->set_sprite_over(130);
+		} else {
+			_btnScrollLeft->set_sprite_relaxed(132);
+			_btnScrollLeft->set_sprite_picked(132);
+			_btnScrollLeft->set_sprite_over(132);
+		}
+	} else {
+		_btnScrollRight->hide();
+		_btnScrollLeft->hide();
+	}
+}
+
+void Inventory::refresh_scrollbars() {
+	if (_btnScrollRight->is_hidden())
+		refresh_right_arrow();
+	else
+		_btnScrollRight->hide();
+
+	if (_btnScrollLeft->is_hidden())
+		refresh_left_arrow();
+	else
+		_btnScrollLeft->hide();
+}
+
+void Inventory::check_left() {
+	if (!_btnScrollLeft->is_hidden()) {
+		if (need_left()) {
+			_scroll = (_scroll <= 0) ? 0 : _scroll - _cells_v;
+		}
+
+		refresh_right_arrow();
+		refresh_left_arrow();
+		_must_redraw_all = true;
+	}
+}
+
+void Inventory::check_right() {
+	if (!_btnScrollRight->is_hidden()) {
+		if (need_right())
+			_scroll += _cells_v;
+
+		refresh_right_arrow();
+		refresh_left_arrow();
+		_must_redraw_all = true;
+	}
+}
+
 } // namespace GUI
 } // namespace Riddle
 } // namespace M4
diff --git a/engines/m4/riddle/gui/inventory.h b/engines/m4/riddle/gui/inventory.h
index 627835c6805..93810a5e012 100644
--- a/engines/m4/riddle/gui/inventory.h
+++ b/engines/m4/riddle/gui/inventory.h
@@ -55,6 +55,9 @@ class Inventory : public RectClass {
 		int16 _cursor = -1;
 	};
 private:
+	GUI::ButtonClass *_btnScrollLeft = nullptr;
+	GUI::ButtonClass *_btnScrollRight = nullptr;
+
 	int32 _sprite = 0;
 	int16 _tag = 0;
 	int16 _num_cells = 0;
@@ -78,6 +81,7 @@ public:
 public:
 	Inventory(const RectClass &r, int32 sprite, int16 cells_h, int16 cells_v, int16 cell_w, int16 cell_h, int16 tag);
 	~Inventory();
+	void addToInterfaceBox(InterfaceBox *box);
 
 	void draw(GrBuff *interface_buffer);
 
@@ -90,6 +94,12 @@ public:
 
 	bool need_left() const;
 	bool need_right() const;
+	void refresh_right_arrow();
+	void refresh_left_arrow();
+	void refresh_scrollbars();
+	void check_left();
+	void check_right();
+
 	void set_scroll(int32 new_scroll);
 	void toggleFlag();
 };




More information about the Scummvm-git-logs mailing list