[Scummvm-git-logs] scummvm master -> 67d077d12fb6cf630101f53fd94e8023896ac8d3

Strangerke noreply at scummvm.org
Tue Feb 4 22:01:44 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:
67d077d12f M4: RIDDLE: Finish the implementation of Room809::daemon


Commit: 67d077d12fb6cf630101f53fd94e8023896ac8d3
    https://github.com/scummvm/scummvm/commit/67d077d12fb6cf630101f53fd94e8023896ac8d3
Author: Strangerke (arnaud.boutonne at gmail.com)
Date: 2025-02-04T23:01:10+01:00

Commit Message:
M4: RIDDLE: Finish the implementation of Room809::daemon

Changed paths:
    engines/m4/riddle/rooms/section8/room809.cpp
    engines/m4/riddle/rooms/section8/room809.h


diff --git a/engines/m4/riddle/rooms/section8/room809.cpp b/engines/m4/riddle/rooms/section8/room809.cpp
index c04a290c0fe..78d4234f294 100644
--- a/engines/m4/riddle/rooms/section8/room809.cpp
+++ b/engines/m4/riddle/rooms/section8/room809.cpp
@@ -156,6 +156,49 @@ void Room809::pre_parser() {
 }
 
 void Room809::parser() {
+	_G(player).command_ready = false;
+	if (inv_player_has(_G(player).noun)) {
+		_G(player).command_ready = true;
+		return;
+	}
+
+	switch (_G(kernel).trigger) {
+	case -1:
+	case 1:
+	case 39:
+	case 40:
+	case 41:
+	case 42:
+	case 43:
+	case 44:
+	case 45:
+	case 46:
+	case 47:
+	case 48:
+	case 49:
+	case 50:
+	case 51:
+	case 52:
+	case 53:
+	case 54:
+	case 55:
+	case 56:
+	case 57:
+	case 58:
+	case 59:
+	case 60:
+	case 61:
+	case 62:
+	case 63:
+	case 64:
+	case 65:
+	case 66:
+	case 67:
+	default:
+		break;
+	}
+
+	
 	// TODO Not implemented yet
 }
 
@@ -402,7 +445,29 @@ void Room809::daemon() {
 		break;
 
 	case 36:
-		// TODO Not implemented yet
+		player_update_info(_mcTrekMach, &_G(player_info));
+		if (-_G(game_buff_ptr)->x1 < _G(player_info).x) {
+			if (639 - _G(game_buff_ptr)->x1 <= _G(player_info).x) {
+				_dword1A1980_x = room809_sub1(_G(player_info).x, 1);
+				if (669 - _G(game_buff_ptr)->x1 < _G(player_info).x) {
+					ws_demand_facing(_mcTrekMach, 11);
+					ws_demand_location(669 - _G(game_buff_ptr)->x1, 323);
+				}
+
+				ws_walk(_mcTrekMach, _dword1A1980_x, 323, nullptr, 37, 11, true);
+			}
+		} else {
+			_dword1A1980_x = room809_sub1(_G(player_info).x, 0);
+			if (-30 - _G(game_buff_ptr)->x1 > _G(player_info).x) {
+				ws_demand_facing(_mcTrekMach, 1);
+				ws_demand_location(-30 - _G(game_buff_ptr)->x1, 323);
+			}
+
+			ws_walk(_mcTrekMach, _dword1A1980_x, 323, nullptr, 37, 1, true);
+		}
+
+		kernel_timing_trigger(60, 36, "verify mc's position");
+
 		break;
 
 	case 37:
@@ -420,6 +485,12 @@ void Room809::daemon() {
 	}
 }
 
+int32 Room809::room809_sub1(int32 val1, int32 val2) {
+	//TODO Not implemented yet
+
+	return 0;
+}
+
 } // namespace Rooms
 } // namespace Riddle
 } // namespace M4
diff --git a/engines/m4/riddle/rooms/section8/room809.h b/engines/m4/riddle/rooms/section8/room809.h
index f2872313f10..761a9bcd8e0 100644
--- a/engines/m4/riddle/rooms/section8/room809.h
+++ b/engines/m4/riddle/rooms/section8/room809.h
@@ -40,18 +40,22 @@ public:
 	void daemon() override;
 
 private:
+	int32 room809_sub1(int32 val1, int32 val2);
+
 	int32 _field20 = 0;
 	int32 _field24 = 0;
 	int32 _field28 = 0;
 	int32 _field2C = 0;
 	
 	const char *_enableHotspotName = nullptr;
+
 	byte _byte1A1990[12]; // random size for the moment, enough for facings
-	int32 _809MusicFadingVol = 0;
 	int32 _dword1A1998 = 0;
+	int32 _dword1A1980_x = 0;
 
 
 	int32 _809hallSeries = 0;
+	int32 _809MusicFadingVol = 0;
 	int32 _mcHandsBehindBackSeries = 0;
 	int32 _ripTalkerPos5Series = 0;
 	int32 _ripTrekHeadTurnPos5Series = 0;
@@ -59,7 +63,7 @@ private:
 	machine *_809rp01Mach = nullptr;
 	machine *_809hallMach = nullptr;
 	machine *_mcTrekMach = nullptr;
-	
+
 };
 
 } // namespace Rooms




More information about the Scummvm-git-logs mailing list