[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