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

dreammaster noreply at scummvm.org
Tue Aug 6 03:59:46 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:
b8dd9b5202 M4: RIDDLE: Added room 305 daemon


Commit: b8dd9b52025d916afc95edfa4be790cc0588efbd
    https://github.com/scummvm/scummvm/commit/b8dd9b52025d916afc95edfa4be790cc0588efbd
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2024-08-05T20:59:41-07:00

Commit Message:
M4: RIDDLE: Added room 305 daemon

Changed paths:
    engines/m4/riddle/rooms/section3/room305.cpp


diff --git a/engines/m4/riddle/rooms/section3/room305.cpp b/engines/m4/riddle/rooms/section3/room305.cpp
index 91b4d3806d5..22909c78d86 100644
--- a/engines/m4/riddle/rooms/section3/room305.cpp
+++ b/engines/m4/riddle/rooms/section3/room305.cpp
@@ -245,6 +245,330 @@ void Room305::init() {
 }
 
 void Room305::daemon() {
+	int frame;
+
+	switch (_G(kernel).trigger) {
+	case 2:
+		series_play(_G(flags)[V000] == 1 ? "395 jelly beans" : "jelly beans",
+			0, 0, 3, 7, 0, 100, 0, 0, 49, 61);
+		digi_play("305_s01", 3, 140);
+		break;
+
+	case 3:
+		series_play(_G(flags)[V000] == 1 ? "395 jelly beans" : "jelly beans",
+			0, 0, 2, 7, 0, 100, 0, 0, 0, 48);
+		break;
+
+	case 10:
+		ws_walk(1220, 296, 0, 50, 9);
+		break;
+
+	case 40:
+		sendWSMessage_10000(_stander, 1199, 296, 9, 41, 0);
+		break;
+
+	case 41:
+		sendWSMessage_10000(_stander, 494, 278, 8, 42, 1);
+		break;
+
+	case 42:
+		sendWSMessage_60000(_stander);
+		_stander = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 494, 278, 73, 0xf00, 1,
+			triggerMachineByHashCallbackNegative, "fl stander");
+		_G(kernel).trigger_mode = KT_DAEMON;
+		sendWSMessage_10000(1, _stander, _feng3, 1, 1, 400, _feng3, 1, 6, 1);
+		_val6 = _val7 = 1;
+		setShadow5(true);
+		_G(player).disable_hyperwalk = false;
+		break;
+
+	case 50:
+		player_set_commands_allowed(true);
+		break;
+
+	case 200:
+		if (!_val8 && !_conv1 && _val1 != -1) {
+			kernel_trigger_dispatchx(_val1);
+			_val1 = -1;
+
+			if (_val2) {
+				ws_unhide_walker();
+				_val2 = 0;
+			}
+		}
+
+		kernel_trigger_dispatchx(kernel_trigger_create(201));
+		break;
+
+	case 201:
+		switch (_val8) {
+		case 0:
+			switch (_conv1) {
+			case 0:
+				sendWSMessage_10000(1, _rip6, 1, 1, 1, 200, 1, 1, 1, 0);
+				break;
+
+			case 1:
+				sendWSMessage_10000(1, _rip6, _rip3, 1, 6, 200, _rip3, 6, 6, 0);
+				_val8 = 1;
+				break;
+
+			case 3:
+				sendWSMessage_10000(1, _rip6, _rip2, 1, 16, 200, _rip2, 16, 16, 0);
+				_val8 = 3;
+				break;
+
+			case 5:
+				sendWSMessage_10000(1, _rip6, _rip1, 1, 12, 200, _rip1, 12, 12, 0);
+				_val8 = 5;
+				break;
+
+			case 7:
+				terminateMachineAndNull(_rip6);
+				terminateMachineAndNull(_rip5);
+				ws_unhide_walker();
+				player_set_commands_allowed(true);
+				break;
+
+			default:
+				break;
+			}
+
+		case 1:
+			if (_conv1 == 1) {
+				sendWSMessage_10000(1, _rip6, _rip3, 6, 6, 200, _rip3, 6, 6, 0);
+			} else {
+				sendWSMessage_10000(1, _rip6, _rip3, 6, 1, 200, 1, 1, 1, 0);
+				_val8 = 5;
+			}
+			break;
+
+		case 3:
+			if (_conv1 == 3) {
+				sendWSMessage_10000(1, _rip6, _rip2, 16, 16, 200, _rip2, 16, 16, 0);
+			} else {
+				sendWSMessage_10000(1, _rip6, _rip2, 16, 1, 200, 1, 1, 1, 0);
+				_val8 = 0;
+			}
+			break;
+
+		case 5:
+			if (_conv1 == 5) {
+				sendWSMessage_10000(1, _rip6, _rip1, 12, 12, 200, _rip1, 12, 12, 0);
+			} else {
+				sendWSMessage_10000(1, _rip6, _rip1, 12, 1, 200, 1, 1, 1, 0);
+				_val8 = 0;
+			}
+			break;
+
+		default:
+			break;
+		}
+		break;
+
+	case 300:
+		if (!_val8 && !_conv1 && _val1 != -1) {
+			kernel_trigger_dispatchx(_val1);
+			_val1 = -1;
+
+			if (_val2) {
+				ws_unhide_walker();
+				_val2 = 0;
+			}
+		}
+
+		kernel_trigger_dispatchx(kernel_trigger_create(301));
+		break;
+
+	case 301:
+		switch (_val8) {
+		case 0:
+			switch (_conv1) {
+			case 0:
+				sendWSMessage_10000(1, _rip6, 1, 1, 1, 300, 1, 1, 1, 0);
+				break;
+
+			case 1:
+				sendWSMessage_10000(1, _rip6, _suit2, 1, 10, 300, _suit2, 10, 10, 0);
+				_val8 = 1;
+				break;
+
+			case 3:
+				sendWSMessage_10000(1, _rip6, _suit1, 1, 17, 300, _suit1, 17, 17, 0);
+				_val8 = 3;
+				break;
+
+			case 5:
+			case 6:
+				sendWSMessage_10000(1, _rip6, _suit3, 1, 14, 300, _suit3, 14, 14, 0);
+				_val8 = 5;
+				break;
+
+			case 7:
+				terminateMachineAndNull(_rip6);
+				terminateMachineAndNull(_rip5);
+				ws_unhide_walker();
+				player_set_commands_allowed(true);
+				break;
+
+			default:
+				break;
+			}
+			break;
+
+		case 1:
+			if (_conv1 == 1) {
+				sendWSMessage_10000(1, _rip6, _suit2, 10, 10, 300, _suit2, 10, 10, 0);
+			} else {
+				sendWSMessage_10000(1, _rip6, _suit2, 11, 18, 300, 1, 1, 1, 0);
+				_val8 = 0;
+			}
+			break;
+
+		case 3:
+			if (_conv1 == 3) {
+				sendWSMessage_10000(1, _rip6, _suit1, 17, 17, 300, _suit1, 17, 17, 0);
+			} else {
+				sendWSMessage_10000(1, _rip6, _suit1, 17, 1, 300, 1, 1, 1, 0);
+				_val8 = 0;
+			}
+			break;
+
+		case 5:
+			switch (_conv1) {
+			case 5:
+				sendWSMessage_10000(1, _rip6, _suit3, 14, 14, 300, _suit3, 14, 14, 0);
+				break;
+
+			case 6:
+				sendWSMessage_10000(1, _rip6, _suit3, 15, 25, 300, _suit3, 25, 25, 0);
+				_val8 = 6;
+				break;
+
+			default:
+				sendWSMessage_10000(1, _rip6, _suit3, 14, 1, 300, 1, 1, 1, 0);
+				_val8 = 0;
+				break;
+			}
+			break;
+
+		case 6:
+			if (_conv1 == 6) {
+				sendWSMessage_10000(1, _rip6, _suit3, 25, 25, 300, _suit3, 25, 25, 0);
+			} else {
+				sendWSMessage_10000(1, _rip6, _suit3, 25, 15, 300, _suit3, 14, 14, 0);
+				_val8 = 5;
+			}
+			break;
+
+		default:
+			break;
+		}
+		break;
+
+	case 400:
+		if (!_val6 && !_val7 && _val1 != -1) {
+			kernel_trigger_dispatchx(_val1);
+			_val1 = -1;
+
+			if (_val2) {
+				ws_unhide_walker();
+				_val2 = 0;
+			}
+		}
+
+		kernel_trigger_dispatchx(kernel_trigger_create(401));
+		break;
+
+	case 401:
+		switch (_val6) {
+		case 0:
+			switch (_val7) {
+			case 0:
+				sendWSMessage_10000(1, _stander, _jellyBeans, 1, 1, 400, _jellyBeans, 1, 1, 0);
+				break;
+
+			case 1:
+			case 2:
+			case 4:
+				sendWSMessage_10000(1, _stander, _feng1, 16, 1, 400, _feng3, 1, 6, 1);
+				_val6 = 1;
+				break;
+
+			case 3:
+				sendWSMessage_10000(1, _stander, _jellyBeans, 1, 13, 400, _jellyBeans, 14, 19, 1);
+				_val6 = 3;
+				break;
+
+			default:
+				break;
+			}
+			break;
+
+		case 1:
+			switch (_val7) {
+			case 0:
+				sendWSMessage_10000(1, _stander, _feng1, 16, 1, 400, _jellyBeans, 1, 1, 0);
+				_val6 = 0;
+				break;
+
+			case 1:
+				frame = imath_ranged_rand(1, 6);
+				sendWSMessage_10000(1, _stander, _feng3, frame, frame, 400, _feng3, frame, frame, 0);
+				break;
+
+			case 2:
+				sendWSMessage_10000(1, _stander, _feng2, 1, 18, 400, _feng2, 19, 21, 1);
+				_val6 = 2;
+				break;
+
+			case 3:
+				sendWSMessage_10000(1, _stander, _feng1, 16, 1, 400, _jellyBeans, 1, 1, 0);
+				_val6 = 0;
+				break;
+
+			case 4:
+				frame = imath_ranged_rand(1, 6);
+				sendWSMessage_10000(1, _stander, _feng3, frame, frame, 400, _feng3, frame, frame, 0);
+				_val7 = 1;
+				break;
+
+			default:
+				sendWSMessage_10000(1, _stander, _feng2, 1, 18, 400, _feng2, 19, 21, 1);
+				_val6 = 2;
+				break;
+			}
+			break;
+
+		case 2:
+			if (_val7 == 2) {
+				frame = imath_ranged_rand(19, 21);
+				sendWSMessage_10000(1, _stander, _feng2, frame, frame, 400, _feng2, frame, frame, 0);
+			} else {
+				sendWSMessage_10000(1, _stander, _feng2, 18, 1, 400, _feng3, 1, 6, 0);
+				_val6 = 1;
+				break;
+			}
+			break;
+
+		case 3:
+			if (_val7 == 3) {
+				frame = imath_ranged_rand(14, 19);
+				sendWSMessage_10000(1, _stander, _jellyBeans, frame, frame, 400, _jellyBeans, frame, frame, 0);
+			} else {
+				sendWSMessage_10000(1, _stander, _jellyBeans, 20, 31, 400, _jellyBeans, 1, 1, 0);
+				_val6 = 0;
+			}
+			break;
+
+		default:
+			break;
+		}
+		break;
+
+	default:
+		break;
+	}
 }
 
 void Room305::pre_parser() {
@@ -380,8 +704,8 @@ void Room305::parser() {
 			_val4 = 0;
 			break;
 
-
-
+		default:
+			break;
 		}
 	} else if (useFlag && player_said("drawer")) {
 		switch (_G(kernel).trigger) {
@@ -974,6 +1298,7 @@ next4:
 	} else {
 		return;
 	}
+#undef LOOK
 
 exit:
 	_G(player).command_ready = false;




More information about the Scummvm-git-logs mailing list