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

Strangerke noreply at scummvm.org
Sat Oct 5 21:23:39 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:
d3249dd450 M4: RIDDLE: Fix escapePressed in room 906 and 907
a3a036a4ee M4: RIDDLE: Implement room 908


Commit: d3249dd4509aef138e7a1745a8614bed777653d9
    https://github.com/scummvm/scummvm/commit/d3249dd4509aef138e7a1745a8614bed777653d9
Author: Strangerke (arnaud.boutonne at gmail.com)
Date: 2024-10-05T23:22:31+02:00

Commit Message:
M4: RIDDLE: Fix escapePressed in room 906 and 907

Changed paths:
    engines/m4/riddle/rooms/section9/room906.cpp
    engines/m4/riddle/rooms/section9/room907.cpp


diff --git a/engines/m4/riddle/rooms/section9/room906.cpp b/engines/m4/riddle/rooms/section9/room906.cpp
index 35ff971f5b7..bcea7dcf903 100644
--- a/engines/m4/riddle/rooms/section9/room906.cpp
+++ b/engines/m4/riddle/rooms/section9/room906.cpp
@@ -101,6 +101,7 @@ void Room906::daemon() {
 }
 
 void Room906::escapePressed(void *, void *) {
+	_G(kernel).trigger_mode = KT_DAEMON;
 	disable_player_commands_and_fade_init(56);
 }
 
diff --git a/engines/m4/riddle/rooms/section9/room907.cpp b/engines/m4/riddle/rooms/section9/room907.cpp
index cc317883fb5..6aff4a0f24a 100644
--- a/engines/m4/riddle/rooms/section9/room907.cpp
+++ b/engines/m4/riddle/rooms/section9/room907.cpp
@@ -107,6 +107,7 @@ void Room907::daemon() {
 }
 
 void Room907::escapePressed(void *, void *) {
+	_G(kernel).trigger_mode = KT_DAEMON;
 	disable_player_commands_and_fade_init(56);
 }
 


Commit: a3a036a4ee4bf634d5a6d9510e4d86d506a2715f
    https://github.com/scummvm/scummvm/commit/a3a036a4ee4bf634d5a6d9510e4d86d506a2715f
Author: Strangerke (arnaud.boutonne at gmail.com)
Date: 2024-10-05T23:23:32+02:00

Commit Message:
M4: RIDDLE: Implement room 908

Changed paths:
    engines/m4/riddle/rooms/section9/room908.cpp
    engines/m4/riddle/rooms/section9/room908.h


diff --git a/engines/m4/riddle/rooms/section9/room908.cpp b/engines/m4/riddle/rooms/section9/room908.cpp
index d0702902634..dbdb3b220bf 100644
--- a/engines/m4/riddle/rooms/section9/room908.cpp
+++ b/engines/m4/riddle/rooms/section9/room908.cpp
@@ -21,6 +21,8 @@
 
 #include "m4/riddle/rooms/section9/room908.h"
 #include "m4/graphics/gr_series.h"
+#include "m4/gui/gui_sys.h"
+#include "m4/platform/keys.h"
 #include "m4/riddle/vars.h"
 
 namespace M4 {
@@ -28,15 +30,225 @@ namespace Riddle {
 namespace Rooms {
 
 void Room908::preload() {
+	_G(player).walker_type = WALKER_ALT;
+	_G(player).shadow_type = SHADOW_ALT;
 	_G(player).walker_in_this_scene = false;
 }
 
 void Room908::init() {
+	player_set_commands_allowed(false);
+	digi_preload("950_s12", 950);
+	digi_preload("908m01", 908);
+	digi_preload("908m01a", 908);
+	digi_preload("908m01b", 908);
+	digi_preload("908r01", 908);
+	digi_preload("908r01a", 908);
+	digi_preload("908r01b", 908);
+	digi_preload("908m02", 908);
+	digi_preload("908r02", 908);
+	digi_preload("908m03", 908);
+	digi_preload("908m04", 908);
+	digi_preload("908r03", 908);
+	digi_preload("908r03a", 908);
+	digi_preload("908m05", 908);
+	digi_preload("908m05a", 908);
+	digi_preload("909m01", 909);
+	digi_preload("910m01", 910);
+	digi_preload("911s01", 911);
+	digi_preload("911k01", 911);
+	digi_preload("912k01", 912);
+	digi_preload("912s01", 912);
+	digi_preload("950_s13", 950);
+	_roomStates_field8 = series_load("Hold frame 908", -1, nullptr);
+	interface_hide();
+	AddSystemHotkey(KEY_ESCAPE, escapePressed);
+	_G(kernel).call_daemon_every_loop = true;
+	_roomStates_field4 = series_stream("conversation half frames", 8, 256, 10);
+	series_stream_break_on_frame(_roomStates_field4, 1, 71);
+	kernel_timing_trigger(60, 200, nullptr);
 }
 
 void Room908::daemon() {
+	switch (_G(kernel).trigger) {
+	case 10:
+		digi_stop(2);
+		digi_play_loop("950_s12", 1, 255, -1, 950);
+		break;
+
+	case 30:
+		disable_player_commands_and_fade_init(30);
+		break;
+
+	case 55:
+		digi_play("912s01", 2, 255, 96, 912);
+		break;
+
+	case 56:
+		series_stream_break_on_frame(_roomStates_field4, 339, -1);
+		series_stream_check_series(_roomStates_field4, 10);
+		digi_play("912k01", 2, 255, 95, 912);
+		break;
+
+	case 71:
+		series_stream_break_on_frame(_roomStates_field4, 318, 94);
+		digi_play("911k01", 2, 255, -1, 911);
+		break;
+
+	case 72:
+		series_stream_break_on_frame(_roomStates_field4, 295, 93);
+		digi_play("911s01", 2, 255, -1, 911);
+		break;
+
+	case 73:
+		series_stream_break_on_frame(_roomStates_field4, 278, 92);
+		digi_play("950_s13", 1, 255, -1, 950);
+		break;
+
+	case 74:
+		series_stream_check_series(_roomStates_field4, 8);
+		series_stream_break_on_frame(_roomStates_field4, 259, 91);
+		break;
+
+	case 75:
+		series_stream_check_series(_roomStates_field4, 85);
+		series_stream_break_on_frame(_roomStates_field4, 252, 89);
+		break;
+
+	case 76:
+		digi_play("910m01", 2, 255, -1, 910);
+		series_stream_break_on_frame(_roomStates_field4, 251, 88);
+		break;
+
+	case 77:
+		series_stream_break_on_frame(_roomStates_field4, 250, 87);
+		series_stream_check_series(_roomStates_field4, 8);
+		digi_play("909m01", 2, 255, -1, 909);
+		break;
+
+	case 78:
+		series_stream_break_on_frame(_roomStates_field4, 233, 86);
+		series_stream_check_series(_roomStates_field4, 9);
+		digi_play("908m05a", 2, 255, -1, 908);
+		break;
+
+	case 79:
+		series_stream_break_on_frame(_roomStates_field4, 200, 85);
+		series_stream_check_series(_roomStates_field4, 8);
+		digi_play("908m05", 2, 255, -1, 908);
+		break;
+
+	case 80:
+		series_stream_break_on_frame(_roomStates_field4, 192, 84);
+		series_stream_check_series(_roomStates_field4, 9);
+		digi_play("908r03a", 2, 255, -1, 908);
+		break;
+
+	case 82:
+		series_stream_break_on_frame(_roomStates_field4, 175, 83);
+		series_stream_check_series(_roomStates_field4, 10);
+		digi_play("908r03", 2, 255, -1, 908);
+		break;
+
+	case 83:
+		series_stream_break_on_frame(_roomStates_field4, 158, 82);
+		series_stream_check_series(_roomStates_field4, 9);
+		digi_play("908m04", 2, 255, -1, 908);
+		break;
+
+	case 84:
+		series_stream_break_on_frame(_roomStates_field4, 138, 80);
+		series_stream_check_series(_roomStates_field4, 8);
+		digi_play("908m03", 2, 255, -1, 908);
+		break;
+
+	case 85:
+		series_stream_break_on_frame(_roomStates_field4, 121, 79);
+		series_stream_check_series(_roomStates_field4, 9);
+		digi_play("908r02", 2, 255, -1, 908);
+		break;
+
+	case 86:
+		series_stream_break_on_frame(_roomStates_field4, 95, 78);
+		series_stream_check_series(_roomStates_field4, 8);
+		digi_play("908m02", 2, 255, -1, 908);
+		break;
+
+	case 87:
+		series_stream_break_on_frame(_roomStates_field4, 82, 77);
+		series_stream_check_series(_roomStates_field4, 10);
+		digi_play("908r01b", 2, 255, -1, 908);
+		break;
+
+	case 88:
+		series_stream_break_on_frame(_roomStates_field4, 66, 76);
+		series_stream_check_series(_roomStates_field4, 8);
+		digi_play("908r01a", 2, 255, -1, 908);
+		break;
+
+	case 89:
+		series_stream_break_on_frame(_roomStates_field4, 59, 75);
+		series_stream_check_series(_roomStates_field4, 9);
+		digi_play("908r01", 2, 255, -1, 908);
+		break;
+
+	case 91:
+		series_stream_break_on_frame(_roomStates_field4, 51, 74);
+		digi_play("908m01b", 2, 255, -1, 908);
+		break;
+
+	case 92:
+		series_stream_break_on_frame(_roomStates_field4, 40, 73);
+		digi_play("908m01a", 2, 255, -1, 908);
+		break;
+
+	case 93:
+		series_stream_break_on_frame(_roomStates_field4, 15, 72);
+		digi_play("908m01", 2, 255, -1, 908);
+		break;
+
+	case 94:
+		_G(game).new_room = 494;
+		_G(game).new_section = 4;
+		break;
+
+	case 95:
+		_G(game).new_room = 304;
+		_G(game).new_section = 3;
+		break;
+
+	case 96:
+		digi_stop(1);
+		digi_stop(2);
+		digi_stop(3);
+		_G(game).new_room = 352;
+		_G(game).new_section = 3;
+		break;
+
+	case 200:
+		_roomStates_field4 = series_place_sprite("Hold frame 908", 0, 0, 0, 100, 0);
+		break;
+
+	default:
+		break;
+	}
+
+	if (_G(MouseState).ButtonState)
+		_buttonDown = true;
+	else if (_buttonDown) {
+		_buttonDown = false;
+		disable_player_commands_and_fade_init(55);
+	}
+}
+
+void Room908::parser() {
+	if (player_said("TSA", nullptr, nullptr))
+		_G(player).command_ready = false;
 }
 
+void Room908::escapePressed(void *, void *) {
+	_G(kernel).trigger_mode = KT_DAEMON;
+	disable_player_commands_and_fade_init(56);
+}
 } // namespace Rooms
 } // namespace Riddle
 } // namespace M4
diff --git a/engines/m4/riddle/rooms/section9/room908.h b/engines/m4/riddle/rooms/section9/room908.h
index cfdeb0d82b3..a7a5e41a36e 100644
--- a/engines/m4/riddle/rooms/section9/room908.h
+++ b/engines/m4/riddle/rooms/section9/room908.h
@@ -23,6 +23,7 @@
 #define M4_RIDDLE_ROOMS_SECTION9_ROOM908_H
 
 #include "m4/core/rooms.h"
+#include "m4/wscript/ws_machine.h"
 
 namespace M4 {
 namespace Riddle {
@@ -36,6 +37,13 @@ public:
 	void preload() override;
 	void init() override;
 	void daemon() override;
+	void parser() override;
+
+private:
+	machine * _roomStates_field4 = nullptr;
+	int32 _roomStates_field8 = -1;
+	bool _buttonDown = false;
+	static void escapePressed(void *, void *);
 };
 
 } // namespace Rooms




More information about the Scummvm-git-logs mailing list