[Scummvm-git-logs] scummvm master -> 6d702ef4ca9734bf7dd946dee776a7ad7e94e23d

dreammaster noreply at scummvm.org
Wed Nov 27 04:36:26 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:
13913e56d3 M4: RIDDLE: Fixes for tt note and shed
6d702ef4ca M4: RIDDLE: Partial fix for rotating statue in lava room


Commit: 13913e56d3d6ce63ea6bd697bbd04b7d63b8cd1a
    https://github.com/scummvm/scummvm/commit/13913e56d3d6ce63ea6bd697bbd04b7d63b8cd1a
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2024-11-26T20:36:17-08:00

Commit Message:
M4: RIDDLE: Fixes for tt note and shed

Changed paths:
    engines/m4/riddle/rooms/section6/room603.cpp
    engines/m4/riddle/rooms/section6/room603.h
    engines/m4/riddle/rooms/section6/room604.cpp
    engines/m4/riddle/rooms/section6/room604.h


diff --git a/engines/m4/riddle/rooms/section6/room603.cpp b/engines/m4/riddle/rooms/section6/room603.cpp
index 25a02cf021e..e9fef909c5b 100644
--- a/engines/m4/riddle/rooms/section6/room603.cpp
+++ b/engines/m4/riddle/rooms/section6/room603.cpp
@@ -69,7 +69,7 @@ void Room603::init() {
 		_val5 = 0;
 	}
 
-	_val6 = 0;
+	_showingNoteCloseup = false;
 
 	if (_G(game).previous_room != 604 && _G(game).previous_room != KERNEL_RESTORING_GAME &&
 			inv_player_has("PULL CORD") && !inv_object_is_here("POLE") &&
@@ -780,7 +780,7 @@ void Room603::daemon() {
 
 	case 320:
 		terminateMachineAndNull(_ripley);
-		_treesGoneHome = series_show("603rp02a", 0x100, 16);
+		_ttNote = series_show("603rp02a", 0x100, 16);
 		_tt = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0x200, 0,
 			triggerMachineByHashCallback, "tt");
 		sendWSMessage_10000(1, _tt, _tt03, 1, 39, 322, _tt03, 39, 39, 0);
@@ -798,7 +798,7 @@ void Room603::daemon() {
 
 	case 325:
 		sendWSMessage_10000(1, _tt, _tt03, 83, 122, 326, _tt03, 122, 122, 0);
-		terminateMachineAndNull(_treesGoneHome);
+		terminateMachineAndNull(_ttNote);
 		terminateMachineAndNull(_shadow);
 		ws_unhide_walker();
 		ws_demand_facing(4);
@@ -1247,7 +1247,7 @@ void Room603::pre_parser() {
 	if (_G(flags)[V202] && !player_said("talk to", "twelvetrees"))
 		_G(flags)[V204] = 1;
 
-	if (_val6) {
+	if (_showingNoteCloseup) {
 		Common::strcpy_s(_G(player).noun, "remove note");
 		_G(player).resetWalk();
 	}
@@ -1477,25 +1477,25 @@ void Room603::parser() {
 			digi_play("603r02", 1);
 		}
 	} else if (lookFlag && player_said("note ")) {
-		_val6 = 1;
+		_showingNoteCloseup = true;
 		hotspot_hide_all();
-		_treesGoneHome = series_show("603 12TREES GONE HOME NOTE", 0, 16);
+		_ttNote = series_show("603 12TREES GONE HOME NOTE", 0, 16);
 		hotspot_add_dynamic("LOOK AT", " ", 0, 0, 640, 480, 0);
 		digi_play("603r44", 1);
 		interface_hide();
 	} else if (lookFlag && player_said("note") &&
 			inv_object_is_here("TWELVETREES' NOTE")) {
-		_val6 = 1;
+		_showingNoteCloseup = true;
 		hotspot_hide_all();
-		_treesGoneHome = series_show("603 tt map popup", 0, 16);
+		_ttNote = series_show("603 tt map popup", 0, 16);
 		hotspot_add_dynamic("LOOK AT", " ", 0, 0, 640, 480, 0);
 		_G(flags)[V046] = 1;
 		digi_play("603r28", 1);
 		interface_hide();
-	} else if (player_said("remote note")) {
-		_val6 = 0;
+	} else if (player_said("remove note")) {
+		_showingNoteCloseup = false;
 		hotspot_restore_all();
-		terminateMachineAndNull(_treesGoneHome);
+		terminateMachineAndNull(_ttNote);
 		interface_show();
 	} else if (_G(kernel).trigger == 555) {
 		if (_G(flags)[V038])
@@ -2226,7 +2226,7 @@ void Room603::syncGame(Common::Serializer &s) {
 	s.syncAsSint32LE(_val3);
 	s.syncAsSint32LE(_val4);
 	s.syncAsSint32LE(_val5);
-	s.syncAsSint32LE(_val6);
+	s.syncAsSint32LE(_showingNoteCloseup);
 	s.syncAsSint32LE(_val9);
 	s.syncAsSint32LE(_val10);
 	s.syncAsSint32LE(_ripleyMode);
diff --git a/engines/m4/riddle/rooms/section6/room603.h b/engines/m4/riddle/rooms/section6/room603.h
index 1e5d6474e05..1cb00d9d026 100644
--- a/engines/m4/riddle/rooms/section6/room603.h
+++ b/engines/m4/riddle/rooms/section6/room603.h
@@ -34,9 +34,9 @@ private:
 	int _val3 = 0;
 	int _val4 = 0;
 	int _val5 = 0;
-	int _val6 = 0;
 	int _val9 = 0;
 	int _val10 = 0;
+	bool _showingNoteCloseup = false;
 	int _ripleyMode = 0;
 	int _ripleyShould = 0;
 	int _ttMode = 0;
@@ -55,7 +55,7 @@ private:
 	machine *_pu01 = nullptr;
 	machine *_ripley = nullptr;
 	machine *_shadow = nullptr;
-	machine *_treesGoneHome = nullptr;
+	machine *_ttNote = nullptr;
 	machine *_explosion = nullptr;
 	int _rp01 = 0;
 	int _rp02 = 0;
diff --git a/engines/m4/riddle/rooms/section6/room604.cpp b/engines/m4/riddle/rooms/section6/room604.cpp
index 8ec2548fb67..cb4ff746d06 100644
--- a/engines/m4/riddle/rooms/section6/room604.cpp
+++ b/engines/m4/riddle/rooms/section6/room604.cpp
@@ -252,12 +252,12 @@ void Room604::parser() {
 	bool takeFlag = player_said("take");
 	bool useFlag = player_said_any("push", "pull", "gear", "open", "close");
 
-	if (useFlag && player_said("WHALE BONE HORN") && useWhaleBoneHorn()) {
-		// No implementation
+	if (useFlag && player_said("WHALE BONE HORN")) {
+		useWhaleBoneHorn();
 	} else if (player_said("kill rip")) {
 		killRipley();
-	} else if (takeFlag && player_said("PULL CORD") && takePullCord()) {
-		// No implementation
+	} else if (takeFlag && player_said("PULL CORD")) {
+		takePullCord();
 	} else if (player_said("PULL CORD", "generator set")) {
 		switch (_G(kernel).trigger) {
 		case -1:
@@ -284,8 +284,8 @@ void Room604::parser() {
 		digi_play("com118", 1, 255, -1, 997);
 	} else if (player_said("SPARK PLUG TOOL", "GAS TANK")) {
 		digi_play("com011", 1, 255, -1, 997);
-	} else if (takeFlag && player_said("SPARK PLUG TOOL") && takeSparkPlugTool()) {
-		// No implementation
+	} else if (takeFlag && player_said("SPARK PLUG TOOL")) {
+		takeSparkPlugTool();
 	} else if (useFlag && player_said("generator set") &&
 			!inv_object_is_here("PULL CORD")) {
 		digi_play("604r43", 1);
@@ -503,10 +503,10 @@ void Room604::parser() {
 		} else {
 			digi_play("com118", 1, 255, -1, 997);
 		}
-	} else if (takeFlag && player_said("LIGHTER") && takeLighter()) {
-		// No implementation
-	} else if (player_said("pull cord", "plug") && pullCordPlug()) {
-		// No implementation
+	} else if (takeFlag && player_said("LIGHTER")) {
+		takeLighter();
+	} else if (player_said("pull cord", "plug")) {
+		pullCordPlug();
 	} else if (player_said("plug", "pull cord  ")) {
 		switch (_G(kernel).trigger) {
 		case -1:
@@ -689,6 +689,8 @@ void Room604::parser() {
 					digi_preload("950_s28");
 					digi_play_loop("950_s28", 3);
 				}
+
+				_G(game).setRoom(603);
 				break;
 			default:
 				break;
@@ -776,7 +778,7 @@ void Room604::parser() {
 	_G(player).command_ready = false;
 }
 
-bool Room604::useWhaleBoneHorn() {
+void Room604::useWhaleBoneHorn() {
 	switch (_G(kernel).trigger) {
 	case 5:
 		_ripley = series_play("BAD GUYS LOOK TO SHED", 0, 0, 6, 6);
@@ -794,13 +796,11 @@ bool Room604::useWhaleBoneHorn() {
 		_G(kernel).trigger_mode = KT_DAEMON;
 		kernel_timing_trigger(60, 666);
 		player_set_commands_allowed(true);
-		return true;
+		break;
 
 	default:
 		break;
 	}
-
-	return false;
 }
 
 void Room604::killRipley() {
@@ -966,7 +966,7 @@ void Room604::killRipley() {
 	}
 }
 
-bool Room604::takePullCord() {
+void Room604::takePullCord() {
 	switch (_G(kernel).trigger) {
 	case -1:
 		if (inv_object_is_here("PULL CORD") && !_G(flags)[V189]) {
@@ -980,7 +980,7 @@ bool Room604::takePullCord() {
 		terminateMachineAndNull(_pullCord1);
 		hotspot_set_active("PULL CORD", false);
 		inv_give_to_player("PULL CORD");
-		kernel_examine_inventory_object("ping pull cord", 5, 1, 312, 350, 3);
+		kernel_examine_inventory_object("ping pull cord", 5, 1, 312, 250, 3);
 		break;
 
 	case 3:
@@ -994,18 +994,16 @@ bool Room604::takePullCord() {
 	default:
 		break;
 	}
-
-	return false;
 }
 
-bool Room604::takeSparkPlugTool() {
+void Room604::takeSparkPlugTool() {
 	switch (_G(kernel).trigger) {
 	case -1:
 		if (inv_object_is_here("SPARK PLUG TOOL")) {
 			player_set_commands_allowed(false);
 			setGlobals1(_ripLowReach1, 1, 10, 10, 10);
 			sendWSMessage_110000(2);
-			return true;
+			break;
 		}
 		break;
 
@@ -1015,21 +1013,19 @@ bool Room604::takeSparkPlugTool() {
 		kernel_examine_inventory_object("ping spark plug tool",
 			5, 1, 282, 247, 3);
 		terminateMachineAndNull(_sparkPlugTool);
-		return true;
+		break;
 
 	case 3:
 		sendWSMessage_140000(5);
-		return true;
+		break;
 
 	case 5:
 		player_set_commands_allowed(true);
-		return true;
+		break;
 
 	default:
 		break;
 	}
-
-	return false;
 }
 
 void Room604::takeWire() {
@@ -1063,11 +1059,11 @@ void Room604::takeWire() {
 	}
 }
 
-bool Room604::takeLighter() {
+void Room604::takeLighter() {
 	switch (_G(kernel).trigger) {
 	case -1:
 		if (!inv_object_is_here("LIGHTER"))
-			return false;
+			return;
 
 		ws_walk(331, 323, nullptr, 1, 10);
 		break;
@@ -1090,18 +1086,16 @@ bool Room604::takeLighter() {
 		break;
 
 	default:
-		return false;
+		break;
 	}
-
-	return true;
 }
 
-bool Room604::pullCordPlug() {
+void Room604::pullCordPlug() {
 	switch (_G(kernel).trigger) {
 	case -1:
 		if (_G(flags)[V190]) {
 			if (!inv_player_has("PULL CORD"))
-				return false;
+				return;
 			ws_walk(289, 312, nullptr, 1, 11);
 		} else {
 			digi_play("604r12", 1);
@@ -1129,10 +1123,8 @@ bool Room604::pullCordPlug() {
 		break;
 
 	default:
-		return false;
+		break;
 	}
-
-	return true;
 }
 
 void Room604::daemon1() {
diff --git a/engines/m4/riddle/rooms/section6/room604.h b/engines/m4/riddle/rooms/section6/room604.h
index bfe8e24d2ed..bcf87e2e902 100644
--- a/engines/m4/riddle/rooms/section6/room604.h
+++ b/engines/m4/riddle/rooms/section6/room604.h
@@ -54,11 +54,11 @@ private:
 	machine *_shadow = nullptr;
 
 	void daemon1();
-	bool useWhaleBoneHorn();
-	bool takePullCord();
-	bool takeSparkPlugTool();
-	bool takeLighter();
-	bool pullCordPlug();
+	void useWhaleBoneHorn();
+	void takePullCord();
+	void takeSparkPlugTool();
+	void takeLighter();
+	void pullCordPlug();
 
 	/**
 	 * This Ripley is no more! It has ceased to be! It's expired


Commit: 6d702ef4ca9734bf7dd946dee776a7ad7e94e23d
    https://github.com/scummvm/scummvm/commit/6d702ef4ca9734bf7dd946dee776a7ad7e94e23d
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2024-11-26T20:36:17-08:00

Commit Message:
M4: RIDDLE: Partial fix for rotating statue in lava room

Changed paths:
    engines/m4/riddle/rooms/section6/room608.cpp
    engines/m4/riddle/rooms/section6/room608.h


diff --git a/engines/m4/riddle/rooms/section6/room608.cpp b/engines/m4/riddle/rooms/section6/room608.cpp
index e9ea659a6c4..9406a1a7822 100644
--- a/engines/m4/riddle/rooms/section6/room608.cpp
+++ b/engines/m4/riddle/rooms/section6/room608.cpp
@@ -1581,94 +1581,7 @@ void Room608::parser() {
 			break;
 		}
 	} else if (useFlag && HERE("POLE")) {
-		switch (_G(kernel).trigger) {
-		case -1:
-			ws_walk(453, 311, nullptr, 1, 1);
-			break;
-		case 1:
-			player_set_commands_allowed(false);
-			player_update_info();
-			ws_hide_walker();
-			kernel_load_variant("608lock1");
-			digi_preload("950_s37");
-			digi_preload("950_s37a");
-
-			_ol2 = series_stream("608rp04", 5, 0x300, 16);
-			series_stream_break_on_frame(_ol2, 25, 3);
-			break;
-		case 3:
-			series_stream_break_on_frame(_ol2, 33, 30);
-			digi_play("950_s37", 2);
-			break;
-		case 4:
-			series_stream_break_on_frame(_ol2, 76, 5);
-			digi_play("950_s37a", 2);
-			break;
-		case 5:
-			series_stream_break_on_frame(_ol2, 77, 7);
-			digi_play("950_s37", 2);
-			break;
-		case 7:
-			terminateMachineAndNull(_end1);
-			terminateMachineAndNull(_pole);
-			terminateMachineAndNull(_stump);
-			_oldShould = 8;
-			digi_play("608_s01a", 1);
-			break;
-		case 10:
-			digi_unload("950_s37");
-			digi_unload("950_s37a");
-			_G(flags)[V186] = 1;
-			_end1 = series_show("608END", 0xf00, 16);
-
-			hotspot_set_active("STATUE", false);
-			hotspot_set_active("STATUE ", true);
-			hotspot_set_active("DRIFTWOOD STUMP ", false);
-			hotspot_set_active("DRIFTWOOD STUMP  ", true);
-			hotspot_set_active("POLE", false);
-			hotspot_set_active("POLE ", true);
-			hotspot_set_active("stone", false);
-
-			ws_unhide_walker();
-			player_update_info();
-			ws_walk(_G(player_info).x + 1, _G(player_info).y,
-				nullptr, 12, 4);
-			break;
-		case 12:
-			_ripLHandTalk = series_load("RIP TREK L HAND TALK POS4");
-			setGlobals1(_ripLHandTalk, 2, 6, 6, 7, 1, 6, 1, 1, 1);
-			digi_play("608r15", 1, 255, 15);
-			break;
-		case 15:
-			sendWSMessage_120000(2);
-			_oldShould = 10;
-			digi_play("608o01", 1, 255, 18);
-			break;
-		case 18:
-			sendWSMessage_110000(2);
-			digi_play("608r16", 1, 255, 20);
-			break;
-		case 20:
-			sendWSMessage_140000(-1);
-			_oldShould = 9;
-			digi_play("608o02", 1, 255, 22);
-			break;
-		case 22:
-			_oldShould = 1;
-			kernel_timing_trigger(1, 200, KT_DAEMON, KT_PARSE);
-			kernel_timing_trigger(100, 25);
-			break;
-		case 25:
-			player_set_commands_allowed(true);
-			digi_play("608r17", 1);
-			break;
-		case 30:
-			series_stream_break_on_frame(_ol2, 44, 4);
-			digi_play("608_s01", 1);
-			break;
-		default:
-			break;
-		}
+		usePole();
 	} else if (player_said_any("lung", "prostate")) {
 		switch (_G(kernel).trigger) {
 		case 1:
@@ -2158,6 +2071,111 @@ bool Room608::lookPuffin() {
 	return false;
 }
 
+void Room608::usePole() {
+	switch (_G(kernel).trigger) {
+	case -1:
+		ws_walk(453, 311, nullptr, 1, 1);
+		break;
+
+	case 1:
+		player_set_commands_allowed(false);
+		player_update_info();
+		ws_hide_walker();
+		kernel_load_variant("608lock1");
+		digi_preload("950_s37");
+		digi_preload("950_s37a");
+
+		_ol2 = series_stream("608rp04", 5, 0x300, 10);
+		series_stream_break_on_frame(_ol2, 25, 3);
+		break;
+
+	case 3:
+		series_stream_break_on_frame(_ol2, 33, 30);
+		digi_play("950_s37", 2);
+		break;
+
+	case 4:
+		series_stream_break_on_frame(_ol2, 76, 5);
+		digi_play("950_s37a", 2);
+		break;
+
+	case 5:
+		series_stream_break_on_frame(_ol2, 77, 7);
+		digi_play("950_s37", 2);
+		break;
+
+	case 7:
+		terminateMachineAndNull(_end1);
+		terminateMachineAndNull(_pole);
+		terminateMachineAndNull(_stump);
+		_oldShould = 8;
+		digi_play("608_s01a", 1);
+		break;
+
+	case 10:
+		digi_unload("950_s37");
+		digi_unload("950_s37a");
+		_G(flags)[V186] = 1;
+		_end1 = series_show("608END", 0xf00, 16);
+
+		hotspot_set_active("STATUE", false);
+		hotspot_set_active("STATUE ", true);
+		hotspot_set_active("DRIFTWOOD STUMP ", false);
+		hotspot_set_active("DRIFTWOOD STUMP  ", true);
+		hotspot_set_active("POLE", false);
+		hotspot_set_active("POLE ", true);
+		hotspot_set_active("stone", false);
+
+		ws_unhide_walker();
+		player_update_info();
+		ws_walk(_G(player_info).x + 1, _G(player_info).y,
+			nullptr, 12, 4);
+		break;
+
+	case 12:
+		_ripLHandTalk = series_load("RIP TREK L HAND TALK POS4");
+		setGlobals1(_ripLHandTalk, 1, 6, 6, 7, 1, 6, 1, 1, 1);
+		digi_play("608r15", 1, 255, 15);
+		break;
+
+	case 15:
+		sendWSMessage_120000(2);
+		_oldShould = 10;
+		digi_play("608o01", 1, 255, 18);
+		break;
+
+	case 18:
+		sendWSMessage_110000(2);
+		digi_play("608r16", 1, 255, 20);
+		break;
+
+	case 20:
+		sendWSMessage_140000(-1);
+		_oldShould = 9;
+		digi_play("608o02", 1, 255, 22);
+		break;
+
+	case 22:
+		_oldShould = 1;
+		kernel_timing_trigger(1, 200, KT_DAEMON, KT_PARSE);
+		kernel_timing_trigger(100, 25);
+		break;
+
+	case 25:
+		player_set_commands_allowed(true);
+		digi_play("608r17", 1);
+		break;
+
+	case 30:
+		series_stream_break_on_frame(_ol2, 44, 4);
+		digi_play("608_s01", 1);
+		break;
+
+	default:
+		break;
+	}
+}
+
 void Room608::syncGame(Common::Serializer &s) {
 	s.syncAsUint32LE(_ripleyShould);
 	s.syncAsUint32LE(_ripleyMode);
diff --git a/engines/m4/riddle/rooms/section6/room608.h b/engines/m4/riddle/rooms/section6/room608.h
index df18ee7e683..0cdd547410b 100644
--- a/engines/m4/riddle/rooms/section6/room608.h
+++ b/engines/m4/riddle/rooms/section6/room608.h
@@ -83,6 +83,7 @@ private:
 	bool takeLighter();
 	bool hornCordWater();
 	bool lookPuffin();
+	void usePole();
 
 public:
 	Room608() : Room() {}




More information about the Scummvm-git-logs mailing list