[Scummvm-git-logs] scummvm master -> 80884b86e61110569ef6f0f40f6971b12e42a484

Strangerke noreply at scummvm.org
Sat Nov 2 21:49:18 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:
80884b86e6 M4: RIDDLE: Partial implementation of room 205 (daemon up to trigger 1050)


Commit: 80884b86e61110569ef6f0f40f6971b12e42a484
    https://github.com/scummvm/scummvm/commit/80884b86e61110569ef6f0f40f6971b12e42a484
Author: Strangerke (arnaud.boutonne at gmail.com)
Date: 2024-11-02T22:48:52+01:00

Commit Message:
M4: RIDDLE: Partial implementation of room 205 (daemon up to trigger 1050)

Changed paths:
    engines/m4/riddle/rooms/section2/room205.cpp
    engines/m4/riddle/rooms/section2/room205.h


diff --git a/engines/m4/riddle/rooms/section2/room205.cpp b/engines/m4/riddle/rooms/section2/room205.cpp
index fd3dd6fa0f2..1e6278a80ce 100644
--- a/engines/m4/riddle/rooms/section2/room205.cpp
+++ b/engines/m4/riddle/rooms/section2/room205.cpp
@@ -1295,6 +1295,430 @@ void Room205::daemon() {
 
 		break;
 
+	case 1017:
+		terminateMachine(_205all0Mach);
+		series_play("205FITE3", 3845, 0, 1018, 5, 0, 100, 0, 0, 0, 13);
+
+		break;
+
+	case 1018:
+		switch (imath_ranged_rand(1, 2)) {
+		case 1:
+			digi_play("205_s09", 2, 255, -1, -1);
+			break;
+
+		case 2:
+			digi_play("205_s10", 2, 255, -1, -1);
+			break;
+
+		default:
+			break;
+		}
+
+		series_play("205FITE3", 3845, 0, 1019, 5, 0, 100, 0, 0, 14, 26);
+
+		break;
+
+	case 1019:
+		digi_play("205_s14", 2, 255, -1);
+		series_play("205FITE3", 3845, 0, 1020, 5, 0, 100, 0, 0, 27, 36);
+
+		break;
+
+	case 1020:
+		switch (imath_ranged_rand(1, 8)) {
+		case 1:
+			digi_play("205_s15", 2, 255, -1, -1);
+			break;
+
+		case 2:
+			digi_play("205_s16", 2, 255, -1, -1);
+			break;
+
+		case 3:
+			digi_play("205_s17", 2, 255, -1, -1);
+			break;
+
+		case 4:
+			digi_play("205_s18", 2, 255, -1, -1);
+			break;
+
+		case 5:
+			digi_play("205_s19", 2, 255, -1, -1);
+			break;
+
+		case 6:
+			digi_play("205_s20", 2, 255, -1, -1);
+			break;
+
+		case 7:
+			digi_play("205_s21", 2, 255, -1, -1);
+			break;
+
+		case 8:
+			digi_play("205_s11", 2, 255, -1, -1);
+			break;
+
+		default:
+			break;
+		}
+
+		series_play("205FITE3", 3845, 0, 1021, 5, 0, 100, 0, 0, 37, 45);
+		break;
+
+	case 1021:
+		switch (imath_ranged_rand(1, 8)) {
+		case 1:
+			digi_play("205_s15", 2, 255, -1, -1);
+			break;
+
+		case 2:
+			digi_play("205_s16", 2, 255, -1, -1);
+			break;
+
+		case 3:
+			digi_play("205_s17", 2, 255, -1, -1);
+			break;
+
+		case 4:
+			digi_play("205_s18", 2, 255, -1, -1);
+			break;
+
+		case 5:
+			digi_play("205_s19", 2, 255, -1, -1);
+			break;
+
+		case 6:
+			digi_play("205_s20", 2, 255, -1, -1);
+			break;
+
+		case 7:
+			digi_play("205_s21", 2, 255, -1, -1);
+			break;
+
+		case 8:
+			digi_play("205_s11", 2, 255, -1, -1);
+			break;
+
+		default:
+			break;
+		}
+
+		_205all0Mach = series_play("205FITE3", 3845, 16, 1021, 5, 0, 100, 0, 0, 46, -1);
+		break;
+
+	case 1022:
+		if (!_field198) {
+			kernel_timing_trigger(10, 1027, nullptr);
+		} else if (_fieldDC) {
+			player_set_commands_allowed(false);
+			_fieldE0 = 1;
+			kernel_timing_trigger(60, 1022);
+		} else {
+			player_set_commands_allowed(false);
+			intr_cancel_sentence();
+			series_unload(_205Fite4Series);
+
+			_fieldDC = 1;
+			_fieldE0 = 1;
+			series_unload(_205Fite3Series);
+			terminateMachine(_205all0Mach);
+			series_play("205KILLM", 3845, 0, 1023, 7, 0, 100, 0, 0, 0, -1);
+		}
+
+		break;
+
+	case 1023:
+		midi_stop();
+		digi_play("205m02", 1, 255, -1, -1);
+		ws_walk(_G(my_walker), 339, 285, nullptr, 1024, 1, true);
+
+		break;
+
+	case 1024:
+		series_play("205KILLR", 3845, 16, -1, 7, 0, 100, 0, 0, 0, -1);
+		setGlobals1(_ripGetsShotSeries, 1, 13, 13, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+		sendWSMessage_110000(_G(my_walker), 1026);
+
+		break;
+
+	case 1026:
+		disable_player_commands_and_fade_init(669);
+		break;
+
+	case 1027:
+		terminateMachine(_205all0Mach);
+		series_play("205FITE4", 3845, 0, 1028, 7, 0, 100, 0, 0, 0, 27);
+
+		break;
+
+	case 1028:
+		switch (imath_ranged_rand(1, 2)) {
+		case 1:
+			digi_play("205_s09", 2, 255, -1, -1);
+			break;
+
+		case 2:
+			digi_play("205_s10", 2, 255, -1, -1);
+			break;
+
+		default:
+			break;
+		}
+
+		series_play("205FITE4", 3845, 0, 1029, 5, 0, 100, 0, 0, 28, 35);
+
+		break;
+
+	case 1029:
+		switch (imath_ranged_rand(1, 2)) {
+		case 1:
+			digi_play("205_s09", 2, 255, -1, -1);
+			break;
+
+		case 2:
+			digi_play("205_s10", 2, 255, -1, -1);
+			break;
+
+		default:
+			break;
+		}
+
+		series_play("205FITE4", 3845, 0, 1030, 5, 0, 100, 0, 0, 36, 47);
+
+		break;
+
+	case 1030:
+		switch (imath_ranged_rand(1, 2)) {
+		case 1:
+			digi_play("205_s09", 2, 255, -1, -1);
+			break;
+
+		case 2:
+			digi_play("205_s10", 2, 255, -1, -1);
+			break;
+
+		default:
+			break;
+		}
+
+		series_play("205FITE4", 3845, 0, 1031, 5, 0, 100, 0, 0, 48, 62);
+
+		break;
+
+	case 1031:
+		digi_play("205_s14", 2, 255, -1, -1);
+		series_play("205FITE4", 3845, 0, 1032, 5, 0, 100, 0, 0, 63, 70);
+
+		break;
+
+	case 1032:
+		digi_play("205_s14", 2, 255, -1, -1);
+		series_play("205FITE4", 3845, 0, 1033, 5, 0, 100, 0, 0, 71, 82);
+
+		break;
+
+	case 1033:
+		switch (imath_ranged_rand(1, 8)) {
+		case 1:
+			digi_play("205_s15", 2, 255, -1, -1);
+			break;
+
+		case 2:
+			digi_play("205_s16", 2, 255, -1, -1);
+			break;
+
+		case 3:
+			digi_play("205_s17", 2, 255, -1, -1);
+			break;
+
+		case 4:
+			digi_play("205_s18", 2, 255, -1, -1);
+			break;
+
+		case 5:
+			digi_play("205_s19", 2, 255, -1, -1);
+			break;
+
+		case 6:
+			digi_play("205_s20", 2, 255, -1, -1);
+			break;
+
+		case 7:
+			digi_play("205_s21", 2, 255, -1, -1);
+			break;
+
+		case 8:
+			digi_play("205_s11", 2, 255, -1, -1);
+			break;
+
+		default:
+			break;
+		}
+
+		series_play("205FITE4", 3845, 0, 1034, 5, 0, 100, 0, 0, 83, 86);
+
+		break;
+
+	case 1034:
+		switch (imath_ranged_rand(1, 8)) {
+		case 1:
+			digi_play("205_s15", 2, 255, -1, -1);
+			break;
+
+		case 2:
+			digi_play("205_s16", 2, 255, -1, -1);
+			break;
+
+		case 3:
+			digi_play("205_s17", 2, 255, -1, -1);
+			break;
+
+		case 4:
+			digi_play("205_s18", 2, 255, -1, -1);
+			break;
+
+		case 5:
+			digi_play("205_s19", 2, 255, -1, -1);
+			break;
+
+		case 6:
+			digi_play("205_s20", 2, 255, -1, -1);
+			break;
+
+		case 7:
+			digi_play("205_s21", 2, 255, -1, -1);
+			break;
+
+		case 8:
+			digi_play("205_s11", 2, 255, -1, -1);
+			break;
+
+		default:
+			break;
+		}
+
+		series_play("205FITE4", 3845, 0, 1035, 5, 0, 100, 0, 0, 87, 106);
+
+		break;
+
+	case 1035:
+		digi_play("205_s14", 2, 255, -1, -1);
+		series_play("205FITE4", 3845, 0, 1036, 5, 0, 100, 0, 0, 107, -1);
+
+		break;
+
+	case 1036:
+		_205all0Mach = series_show("205FITE3", 3845, 16, -1, -1, 0, 100, 0, 0);
+		kernel_timing_trigger(10, 1015, nullptr);
+
+		break;
+
+	case 1037:
+		_fieldDC = 1;
+		terminateMachine(_205TabletsMach);
+		series_unload(_205TabletsSeries);
+		series_unload(_205all7Series);
+		digi_preload("205_s31", -1);
+		digi_preload("205_s31a", -1);
+		_205rp1Mach = series_stream("205 TABLETS FALL", 7, 0, 1040);
+		series_stream_break_on_frame(_205rp1Mach, 20, 1038);
+
+		break;
+
+	case 1038:
+		digi_play("205_S31", 1, 255, -1, -1);
+		series_stream_break_on_frame(_205rp1Mach, 55, 1039);
+
+		break;
+
+	case 1039:
+		midi_stop();
+		digi_play("205_S31a", 1, 255, -1, -1);
+
+		break;
+
+	case 1040:
+		terminateMachine(_205rp1Mach);
+		ws_unhide_walker(_G(my_walker));
+		ws_demand_facing(_G(my_walker), 1);
+		ws_demand_location(_G(my_walker), 494, 351);
+		_205MeiStanderMach = series_show("205 MEI STANDER" ,3584, 16, -1, -1, 0, 100, 0, 0);
+		_candlemanShadow3Mach = series_show("CANDLEMAN SHADOW5", 3840, 16, -1, -1, 0, 50, 314, 248);
+		series_show("205 TABLETS DOWN", 3840, 16, -1, -1, 0, 100, 0, 0);
+		series_show("205GLASS", 3840, 16, -1, -1, 0, 100, 0, 0);
+		kernel_timing_trigger(180, 1041, nullptr);
+
+		break;
+
+	case 1041:
+		ws_walk(_G(my_walker), 324, 252, nullptr, 1042, 11, true);
+		_G(flags[V028]) = 1;
+
+		break;
+
+	case 1042:
+		ws_hide_walker(_G(my_walker));
+		terminateMachine(_205MeiStanderMach);
+		_safariShadow1Mach = series_show("SAFARI SHADOW 2", 3840, 16, -1, -1, 0, 51, 324, 252);
+		series_play("205ALL8", 256, 0, 1043, 7, 0, 100, 0, 0, 0, -1);
+		digi_play("205M03", 1, 255, 1044, -1);
+
+		break;
+
+	case 1043:
+		_205all0Mach = series_show("205ALL8", 256, 16, -1, -1, 24, 100, 0, 0);
+
+		break;
+
+	case 1044:
+		digi_play("205R44", 1, 255, 1045, -1);
+
+		break;
+
+	case 1045:
+		terminateMachine(_205all0Mach);
+		terminateMachine(_safariShadow1Mach);
+		_205all9Mach = series_play("205ALL9", 256, 16, 1046, 7, 0, 100, 0, 0, 0, 24);
+
+		break;
+
+	case 1046:
+		kernel_timing_trigger(90, 1047);
+
+		break;
+
+	case 1047:
+		terminateMachine(_205all9Mach);
+		series_play("205ALL9", 256, 0, 1048, 7, 0, 10, 0, 0, 25, -1);
+
+		break;
+
+	case 1048:
+		_safariShadow1Mach = series_show("SAFARI SHADOW 3", 3840, 16, -1, -1, 0, 53, 304, 257);
+		_205MeiStanderMach = series_play("205MTLK2", 1792, 16, -1, 7, 0, 100, 0, 0, 0, -1);
+		digi_play("205M04", 1, 255, 1049, -1);
+
+		break;
+
+	case 1049:
+		terminateMachine(_205MeiStanderMach);
+		_205rp1Mach = series_play("205RTLK6", 256, 16, -1, 7, 0, 100, 0, 0, 0, -1);
+		digi_play("205R45", 1, 255, 1050, -1);
+
+		break;
+
+	case 1050:
+		terminateMachine(_205rp1Mach);
+		_205MeiStanderMach = series_show("205 MEI STANDER", 3845, 16, -1, -1, 0, 100, 0, 0);
+		terminateMachine(_safariShadow1Mach);
+		ws_unhide_walker(_G(my_walker));
+		ws_demand_location(_G(my_walker), 302, 257);
+		ws_demand_facing(_G(my_walker), 3);
+		ws_walk(_G(my_walker), 382, 265, nullptr, 1051, 2, true);
+
+		break;
+
 	default:
 
 		break;
diff --git a/engines/m4/riddle/rooms/section2/room205.h b/engines/m4/riddle/rooms/section2/room205.h
index 86dcdddfdaf..40a65cf1cce 100644
--- a/engines/m4/riddle/rooms/section2/room205.h
+++ b/engines/m4/riddle/rooms/section2/room205.h
@@ -89,6 +89,7 @@ private:
 	int32 _unkInventoryId = 0;
 
 	machine *_205all0Mach = nullptr;
+	machine *_205all9Mach = nullptr;
 	machine *_205CharcoalSpriteMach = nullptr;
 	machine *_205FireInBrazierMach = nullptr;
 	machine *_205GunInBrazierMach = nullptr;




More information about the Scummvm-git-logs mailing list