[Scummvm-git-logs] scummvm master -> 722d56e6712c9ea80b802f4f1385d707b42cb6cf

dreammaster noreply at scummvm.org
Tue Feb 13 03:11:14 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:
722d56e671 M4: Temporarily add X as a hotkey for testing mine entrances


Commit: 722d56e6712c9ea80b802f4f1385d707b42cb6cf
    https://github.com/scummvm/scummvm/commit/722d56e6712c9ea80b802f4f1385d707b42cb6cf
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2024-02-12T19:11:04-08:00

Commit Message:
M4: Temporarily add X as a hotkey for testing mine entrances

There was a bug report about Wilbur getting stuck changing
rooms that couldn't be replicated, so I'm temporarily
adding some test code so that all entrances can be tested
sequentially.

Changed paths:
    engines/m4/burger/hotkeys.cpp
    engines/m4/burger/hotkeys.h
    engines/m4/burger/rooms/section3/mine.cpp
    engines/m4/burger/rooms/section3/mine.h
    engines/m4/burger/vars.h


diff --git a/engines/m4/burger/hotkeys.cpp b/engines/m4/burger/hotkeys.cpp
index fb44a3f65fe..bacf8a0e7f4 100644
--- a/engines/m4/burger/hotkeys.cpp
+++ b/engines/m4/burger/hotkeys.cpp
@@ -25,6 +25,8 @@
 #include "m4/gui/gui_sys.h"
 #include "m4/adv_r/other.h"
 #include "m4/platform/keys.h"
+#include "m4/burger/rooms/section3/mine.h"
+#include "m4/burger/burger.h"
 
 namespace M4 {
 namespace Burger {
@@ -57,6 +59,8 @@ void Hotkeys::add_hot_keys() {
 
 	AddSystemHotkey('F', a_cb);
 	AddSystemHotkey('f', a_cb);
+
+	AddSystemHotkey('x', testMine);
 }
 
 void Hotkeys::toggle_through_cursors(CursorChange cursChange) {
@@ -165,6 +169,14 @@ void Hotkeys::a_cb(void *, void *) {
 	g_vars->_interface.a_cb();
 }
 
+void Hotkeys::testMine(void *, void *) {
+	Rooms::Mine *mine = dynamic_cast<Rooms::Mine *>(g_engine->_activeRoom);
+
+	if (mine) {
+		mine->testMine();
+	}
+}
+
 void Hotkeys::show_version(void *a, void *b) {
 	if (!_versionDialog) {
 		gr_font_set(_G(font_tiny));
diff --git a/engines/m4/burger/hotkeys.h b/engines/m4/burger/hotkeys.h
index 24fc39b8898..1319574f5ff 100644
--- a/engines/m4/burger/hotkeys.h
+++ b/engines/m4/burger/hotkeys.h
@@ -39,6 +39,7 @@ private:
 	static void u_cb(void *, void *);
 	static void l_cb(void *, void *);
 	static void a_cb(void *, void *);
+	static void testMine(void *, void *);
 
 	/**
 	 * Show version dialog
diff --git a/engines/m4/burger/rooms/section3/mine.cpp b/engines/m4/burger/rooms/section3/mine.cpp
index f90e72292e5..cf351030bfd 100644
--- a/engines/m4/burger/rooms/section3/mine.cpp
+++ b/engines/m4/burger/rooms/section3/mine.cpp
@@ -489,6 +489,21 @@ void Mine::set_fade_down_rect(MineDoors exit_door) {
 	_fade_down_rect.y2 = FADE_DOWN_INFO[_presentSceneID][exit_door].y2;
 }
 
+void Mine::testMine() {
+	auto &mineCtr = _G(mineTestCtr);
+
+	// Find the next door to test
+	do {
+		if (mineCtr >= 0 && MINE_INFO[mineCtr / 4].scene_id == NO_SCENE)
+			return;
+
+		++mineCtr;
+
+	} while (MINE_INFO[mineCtr / 4].door[mineCtr % 4] == NONE);
+
+	_G(flags)[kMineRoomIndex] = mineCtr / 4;
+	mine_travel_link(mineCtr % 4);
+}
 
 } // namespace Rooms
 } // namespace Burger
diff --git a/engines/m4/burger/rooms/section3/mine.h b/engines/m4/burger/rooms/section3/mine.h
index 2832f4bc745..254969c2d79 100644
--- a/engines/m4/burger/rooms/section3/mine.h
+++ b/engines/m4/burger/rooms/section3/mine.h
@@ -125,6 +125,8 @@ public:
 	void daemon() override;
 	void pre_parser() override;
 	void parser() override;
+
+	void testMine();
 };
 
 } // namespace Rooms
diff --git a/engines/m4/burger/vars.h b/engines/m4/burger/vars.h
index 637d5a8880b..1fb287a20af 100644
--- a/engines/m4/burger/vars.h
+++ b/engines/m4/burger/vars.h
@@ -118,6 +118,8 @@ public:
 	int _player_dest_x = 0, _player_dest_y = 0;
 	int _player_trigger = 0;
 
+	int _mineTestCtr = -1;
+
 public:
 	Vars();
 	virtual ~Vars();




More information about the Scummvm-git-logs mailing list