[Scummvm-git-logs] scummvm master -> 96b17ff6f56a6b7ba6335ea647b86399e9e46d2b

Strangerke noreply at scummvm.org
Sat Jan 4 07:05:17 UTC 2025


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:
96b17ff6f5 M4: RIDDLE: Room 807: Finish the implementation of opcodes 3 and 5 in parser


Commit: 96b17ff6f56a6b7ba6335ea647b86399e9e46d2b
    https://github.com/scummvm/scummvm/commit/96b17ff6f56a6b7ba6335ea647b86399e9e46d2b
Author: Strangerke (arnaud.boutonne at gmail.com)
Date: 2025-01-04T08:04:53+01:00

Commit Message:
M4: RIDDLE: Room 807: Finish the implementation of opcodes 3 and 5 in parser

Changed paths:
    engines/m4/riddle/rooms/section8/room807.cpp


diff --git a/engines/m4/riddle/rooms/section8/room807.cpp b/engines/m4/riddle/rooms/section8/room807.cpp
index c5b58c7dffb..a7c8b07edb4 100644
--- a/engines/m4/riddle/rooms/section8/room807.cpp
+++ b/engines/m4/riddle/rooms/section8/room807.cpp
@@ -540,8 +540,166 @@ void Room807::parser() {
 		break;
 
 	case 3:
+		if (_G(flags[V274]) == 0 && !inv_object_in_scene("wooden post", 807) && !inv_object_in_scene("wooden beam", 807)) {
+			_field34 = 1;
+			conv_load("conv807a", 10, 10, 747);
+			conv_play(conv_get_handle());
+		} else {
+			switch (_G(kernel).trigger) {
+			case -1:
+				player_set_commands_allowed(false);
+				setGlobals1(_ripTalkerPos5Series, 1, 4, 1, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+				sendWSMessage_110000(_G(my_walker), -1);
+
+				switch (imath_ranged_rand(1, 4)) {
+				case 1:
+					digi_play("com034", 1, 255, 10, 997);
+					break;
+
+				case 2:
+					digi_play("com035", 1, 255, 10, 997);
+					break;
+
+				case 3:
+					digi_play("com036", 1, 255, 10, 997);
+					break;
+
+				case 4:
+				default:
+					digi_play("com037", 1, 255, 10, 997);
+					break;
+				}
+
+				break;
+
+			case 10:
+				player_set_commands_allowed(true);
+				sendWSMessage_150000(_G(my_walker), -1);
+				switch (imath_ranged_rand(1, 4)) {
+				case 1:
+					digi_play("com038", 1, 255, -1, 997);
+					break;
+
+				case 2:
+					digi_play("com039", 1, 255, -1, 997);
+					break;
+
+				case 3:
+					digi_play("com040", 1, 255, -1, 997);
+					break;
+
+				case 4:
+				default:
+					digi_play("com041", 1, 255, -1, 997);
+					break;
+
+				}
+
+				break;
+
+			default:
+				break;
+			}
+		}
+
+		break;
 	case 4:
+		// No implementation
+		break;
+
 	case 5:
+		if (player_said("north")) {
+			switch (_G(kernel).trigger) {
+			case -1:
+				ws_walk(_G(my_walker), 325, 275, nullptr, 10, 2, false);
+				break;
+
+			case 10:
+				player_set_commands_allowed(false);
+				ws_walk(_G(my_walker), 305, 190, nullptr, -1, 2, true);
+				if (_G(flags[V276]) == 0) {
+					ws_walk(_mcTrekMach, 305, 190, nullptr, -1, -1, true);
+				}
+
+				disable_player_commands_and_fade_init(20);
+
+				break;
+
+			case 20:
+				_G(game).new_room = 808;
+				adv_kill_digi_between_rooms(false);
+				digi_preload("950_s29", -1);
+				digi_play_loop("950_s29", 3, 255, -1, -1);
+
+				break;
+
+			default:
+				break;
+			}
+		} else {
+			switch (_G(kernel).trigger) {
+			case -1: {
+				player_update_info(_G(my_walker), &_G(player_info));
+				const int32 destX = CLIP(_G(player_info).x, 247, 400);
+				const int32 destY = MAX(_G(player_info).y, 342);
+
+				if (_G(flags[V276]) == 0 && _G(flags[V275]) == 0) {
+					_G(flags[V275]) = 1;
+					ws_walk(_G(my_walker), destX, destY, nullptr, 10, -1, true);
+				} else {
+					ws_walk(_G(my_walker), destX, destY, nullptr, 35, -1, false);
+				}
+
+				}
+				break;
+
+			case 10:
+				player_set_commands_allowed(false);
+				digi_play("807m10", 1, 255, 20, -1);
+				ws_turn_to_face(_G(my_walker), 5, -1);
+
+				break;
+
+			case 20:
+				digi_play_loop("807r25", 1, 255, 30, -1);
+				setGlobals1(_ripTalkerPos5Series, 1, 4, 1, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+				sendWSMessage_110000(_G(my_walker), -1);
+
+				break;
+
+			case 30:
+				sendWSMessage_150000(_G(my_walker), -1);
+				ws_walk(_mcTrekMach, 320, 560, nullptr, -1, -1, true);
+				ws_walk(_G(my_walker), 320, 560, nullptr, -1, -1, true);
+				disable_player_commands_and_fade_init(40);
+
+				break;
+
+			case 35:
+				if (_G(flags[V276]) == 0) {
+					ws_walk(_mcTrekMach, 320, 560, nullptr, -1, -1, true);
+				}
+
+				ws_walk(_G(my_walker), 320, 560, nullptr, -1, -1, true);
+				disable_player_commands_and_fade_init(40);
+
+				break;
+
+			case 40:
+				_G(game).new_room = 806;
+				adv_kill_digi_between_rooms(false);
+				digi_preload("950_s29", -1);
+				digi_play_loop("950_s29", 2, 255, -1, -1);
+
+				break;
+
+			default:
+				break;
+			}
+		}
+
+		break;
+
 	case 6:
 	case 7:
 	case 8:




More information about the Scummvm-git-logs mailing list