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

dreammaster noreply at scummvm.org
Thu Oct 24 05:22:25 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:
a1514bc281 M4: RIDDLE: Room 301 cleanups and fixes


Commit: a1514bc2812b61f1063085bf68a60c06ccce66c0
    https://github.com/scummvm/scummvm/commit/a1514bc2812b61f1063085bf68a60c06ccce66c0
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2024-10-23T22:22:13-07:00

Commit Message:
M4: RIDDLE: Room 301 cleanups and fixes

Changed paths:
    engines/m4/riddle/rooms/section3/room301.cpp
    engines/m4/riddle/rooms/section3/room301.h


diff --git a/engines/m4/riddle/rooms/section3/room301.cpp b/engines/m4/riddle/rooms/section3/room301.cpp
index ce121a4ea7c..5a9af509e06 100644
--- a/engines/m4/riddle/rooms/section3/room301.cpp
+++ b/engines/m4/riddle/rooms/section3/room301.cpp
@@ -38,17 +38,17 @@ void Room301::init() {
 	digi_preload("950_s01");
 
 	if (_G(game).previous_room != KERNEL_RESTORING_GAME) {
-		_val1 = 0;
+		_travelDest = 0;
 		_val2 = 0;
 		_soundName = nullptr;
 		_nextSound = nullptr;
-		_val5 = -1;
+		_trigger1 = -1;
 		_val6 = KT_DAEMON;
 		_val7 = KT_DAEMON;
 		_val8 = 0;
-		_val9 = 0;
-		_val10 = 0;
-		_val11 = 0;
+		_showWalkerFlag = false;
+		_msgRipleyFlag = false;
+		_convResumeFlag = false;
 		_val12 = 0;
 	}
 
@@ -65,10 +65,10 @@ void Room301::init() {
 	_agentTakesTelegram = series_load("agent takes telegram from slot");
 	_agentTalk = series_load("agent animated talk disp");
 	_agentSalutes = series_load("agent salutes rip");
-	_deskGuy = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0x400, 0,
+	_george = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0x400, 0,
 		triggerMachineByHashCallback, "guy behind desk");
 
-	sendWSMessage(1, _deskGuy, _agentStander, 1, 1, 10, _agentStander, 1, 1, 0);
+	sendWSMessage(1, _george, _agentStander, 1, 1, 10, _agentStander, 1, 1, 0);
 
 	if (_G(game).previous_room != KERNEL_RESTORING_GAME) {
 		if (inv_object_in_scene("ROMANOV EMERALD", 305)) {
@@ -103,30 +103,32 @@ void Room301::daemon() {
 		break;
 
 	case 9:
-		_deskGuy = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0x400, 0,
+		_george = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0x400, 0,
 			triggerMachineByHashCallback, "guy behind desk");
 		_georgeShould = _georgeMode = 0;
-		sendWSMessage_10000(1, _deskGuy, _agentStander, 1,
+		sendWSMessage_10000(1, _george, _agentStander, 1,
 			1, 10, _agentStander, 1, 1, 0);
 		break;
 
 	case 10:
-		if (!_georgeShould && _georgeMode && _val5 != -1) {
-			kernel_trigger_dispatchx(_val5);
-			_val5 = -1;
+		if (_georgeShould == 0 && _georgeMode == 0 && _trigger1 != -1) {
+			kernel_trigger_dispatchx(_trigger1);
+			_trigger1 = -1;
 
-			if (_val9) {
+			if (_showWalkerFlag) {
 				ws_unhide_walker();
-				_val9 = 0;
+				_showWalkerFlag = false;
 			}
-			if (_val11) {
+			if (_convResumeFlag) {
 				conv_resume();
-				_val11 = 0;
+				_convResumeFlag = false;
 			}
-			if (_val10) {
+			if (_msgRipleyFlag) {
 				sendWSMessage_80000(_ripley);
-				sendWSMessage_10000(11, _ripley, _ripTrekTravel, 10,
+				sendWSMessage_10000(1, _ripley, _ripTrekTravel, 10,
 					10, 20, _ripTrekTravel, 10, 10, 0);
+
+				_msgRipleyFlag = false;
 			}
 		}
 
@@ -147,16 +149,16 @@ void Room301::daemon() {
 
 				switch (val) {
 				case 1:
-					sendWSMessage_10000(1, _deskGuy, _agentStander, 1, 1, 10,
+					sendWSMessage_10000(1, _george, _agentStander, 1, 1, 10,
 						_agentStander, 1, 1, 0);
 					break;
 				case 2:
-					sendWSMessage_10000(1, _deskGuy, _agentStander, 1, 7, 10,
+					sendWSMessage_10000(1, _george, _agentStander, 1, 7, 10,
 						_agentStander, 7, 7, 0);
 					_georgeShould = _georgeMode = 3;
 					break;
 				case 3:
-					sendWSMessage_10000(1, _deskGuy, _agentTalk, 1, 6, 10,
+					sendWSMessage_10000(1, _george, _agentTalk, 1, 6, 10,
 						_agentTalk, 6, 6, 0);
 					_georgeShould = _georgeMode = 7;
 					_val8 = 0;
@@ -171,7 +173,7 @@ void Room301::daemon() {
 
 			case 1:
 			case 2:
-				sendWSMessage_10000(1, _deskGuy, _agentCheckingList,
+				sendWSMessage_10000(1, _george, _agentCheckingList,
 					1, 26, 10, _agentCheckingList, 27, 27, 0);
 				break;
 
@@ -179,7 +181,7 @@ void Room301::daemon() {
 			case 4:
 			case 5:
 			case 6:
-				sendWSMessage_10000(1, _deskGuy, _agentStander, 1, 7, 10,
+				sendWSMessage_10000(1, _george, _agentStander, 1, 7, 10,
 					_agentStander, 7, 7, 0);
 				_georgeShould = 3;
 				_val8 = 0;
@@ -188,23 +190,24 @@ void Room301::daemon() {
 			case 7:
 			case 8:
 			case 9:
-				sendWSMessage_10000(1, _deskGuy, _agentTalk, 1, 6, 10,
+				sendWSMessage_10000(1, _george, _agentTalk, 1, 6, 10,
 					_agentTalk, 6, 6, 0);
 				_georgeShould = 7;
 				_val8 = 0;
 				break;
 
 			case 10:
-				sendWSMessage_10000(1, _deskGuy, _agentSalutes, 1, 28, 10,
+				sendWSMessage_10000(1, _george, _agentSalutes, 1, 28, 10,
 					_agentStander, 1, 1, 0);
 				_georgeShould = _georgeMode = 0;
 				_val8 = 0;
 				break;
 
 			case 12:
+				// George takes payment from Ripley
 				terminateMachineAndNull(_ripley);
-				_val11 = 1;
-				sendWSMessage_10000(1, _deskGuy, _agentTakesMoney, 1, 52, 13,
+				_convResumeFlag = true;
+				sendWSMessage_10000(1, _george, _agentTakesMoney, 1, 52, 13,
 					_agentStander, 1, 1, 0);
 				_georgeShould = _georgeMode = 0;
 				_val8 = 0;
@@ -213,13 +216,13 @@ void Room301::daemon() {
 
 			case 13:
 				terminateMachineAndNull(_ripley);
-				sendWSMessage_10000(1, _deskGuy, _agentSlidesPaper, 1, 49, 14,
+				sendWSMessage_10000(1, _george, _agentSlidesPaper, 1, 49, 14,
 					_agentStander, 1, 1, 0);
 				break;
 
 			case 15:
 				terminateMachineAndNull(_ripley);
-				sendWSMessage_10000(1, _deskGuy, _agentSlidesPaper, 1, 49, 25,
+				sendWSMessage_10000(1, _george, _agentSlidesPaper, 1, 49, 25,
 					_agentStander, 1, 1, 0);
 				break;
 
@@ -231,7 +234,7 @@ void Room301::daemon() {
 		case 1:
 			switch (_georgeMode) {
 			case 1:
-				sendWSMessage_10000(1, _deskGuy, _agentCheckingList, 27, 27, 10,
+				sendWSMessage_10000(1, _george, _agentCheckingList, 27, 27, 10,
 					_agentCheckingList, 27, 27, 0);
 				break;
 
@@ -244,12 +247,12 @@ void Room301::daemon() {
 				}
 
 				frame = imath_ranged_rand(27, 31);
-				sendWSMessage_10000(1, _deskGuy, _agentCheckingList, frame, frame, 10,
+				sendWSMessage_10000(1, _george, _agentCheckingList, frame, frame, 10,
 					_agentCheckingList, frame, frame, 0);
 				break;
 
 			default:
-				sendWSMessage_10000(1, _deskGuy, _agentCheckingList, 27, 22, 100,
+				sendWSMessage_10000(1, _george, _agentCheckingList, 27, 22, 100,
 					_agentCheckingList, 21, 21, 0);
 				_val8 = 0;
 				break;
@@ -268,10 +271,10 @@ void Room301::daemon() {
 					val = 1;
 
 				if (val == 1) {
-					sendWSMessage_10000(1, _deskGuy, _agentStander, 7, 7, 10,
+					sendWSMessage_10000(1, _george, _agentStander, 7, 7, 10,
 						_agentStander, 7, 7, 0);
 				} else {
-					sendWSMessage_10000(1, _deskGuy, _agentStander, 7, 1, 10,
+					sendWSMessage_10000(1, _george, _agentStander, 7, 1, 10,
 						_agentStander, 1, 1, 0);
 					_georgeShould = _georgeMode = 0;
 					_val8 = 0;
@@ -281,12 +284,12 @@ void Room301::daemon() {
 			case 4:
 			case 5:
 			case 6:
-				sendWSMessage_10000(1, _deskGuy, _agentStander, 8, 12, 10,
+				sendWSMessage_10000(1, _george, _agentStander, 8, 12, 10,
 					_agentStander, 12, 12, 0);
 				_georgeShould = 4;
 				break;
 			default:
-				sendWSMessage_10000(1, _deskGuy, _agentStander, 7, 1, 10,
+				sendWSMessage_10000(1, _george, _agentStander, 7, 1, 10,
 					_agentStander, 1, 1, 0);
 				_georgeShould = 0;
 				_val8 = 0;
@@ -297,7 +300,7 @@ void Room301::daemon() {
 		case 4:
 			switch (_georgeMode) {
 			case 4:
-				sendWSMessage_10000(1, _deskGuy, _agentStander, 12,
+				sendWSMessage_10000(1, _george, _agentStander, 12,
 					12, 10, _agentStander, 12, 12, 0);
 				break;
 			case 5:
@@ -311,10 +314,10 @@ void Room301::daemon() {
 
 				_G(kernel).trigger_mode = _val6;
 				frame = imath_ranged_rand(12, 17);
-				sendWSMessage_10000(1, _deskGuy, _agentStander, frame, frame,
+				sendWSMessage_10000(1, _george, _agentStander, frame, frame,
 					10, _agentStander, frame, frame, 1);
-				sendWSMessage_190000(_deskGuy, 13);
-				sendWSMessage_1a0000(_deskGuy, 13);
+				sendWSMessage_190000(_george, 13);
+				sendWSMessage_1a0000(_george, 13);
 				_G(kernel).trigger_mode = KT_DAEMON;
 				_val6 = KT_DAEMON;
 				break;
@@ -327,13 +330,13 @@ void Room301::daemon() {
 				}
 
 				frame = imath_ranged_rand(18, 21);
-				sendWSMessage_10000(1, _deskGuy, _agentStander, frame, frame,
+				sendWSMessage_10000(1, _george, _agentStander, frame, frame,
 					10, _agentStander, frame, frame, 1);
-				sendWSMessage_190000(_deskGuy, 13);
-				sendWSMessage_1a0000(_deskGuy, 13);
+				sendWSMessage_190000(_george, 13);
+				sendWSMessage_1a0000(_george, 13);
 				break;
 			default:
-				sendWSMessage(1, _deskGuy, _agentStander, 12,
+				sendWSMessage(1, _george, _agentStander, 12,
 					8, 10, _agentStander, 7, 7, 0);
 				_georgeShould = 3;
 				_val8 = 0;
@@ -351,10 +354,10 @@ void Room301::daemon() {
 					val = 1;
 
 				if (val == 1) {
-					sendWSMessage_10000(1, _deskGuy, _agentTalk, 6, 6, 10,
+					sendWSMessage_10000(1, _george, _agentTalk, 6, 6, 10,
 						_agentTalk, 6, 6, 0);
 				} else if (val == 2) {
-					sendWSMessage_10000(1, _deskGuy, _agentTalk, 6, 1, 10,
+					sendWSMessage_10000(1, _george, _agentTalk, 6, 1, 10,
 						_agentStander, 1, 1, 0);
 					_georgeShould = _georgeMode = 0;
 					_val8 = 0;
@@ -366,12 +369,12 @@ void Room301::daemon() {
 
 			case 8:
 			case 9:
-				sendWSMessage_10000(1, _deskGuy, _agentTalk, 6, 15, 10,
+				sendWSMessage_10000(1, _george, _agentTalk, 6, 15, 10,
 					_agentTalk, 15, 15, 0);
 				break;
 
 			default:
-				sendWSMessage_10000(1, _deskGuy, _agentTalk, 6, 1, 10,
+				sendWSMessage_10000(1, _george, _agentTalk, 6, 1, 10,
 					_agentStander, 1, 1, 0);
 				_georgeShould = 0;
 				break;
@@ -381,7 +384,7 @@ void Room301::daemon() {
 		case 8:
 			switch (_georgeMode) {
 			case 8:
-				sendWSMessage_10000(1, _deskGuy, _agentTalk, 15, 15, 10,
+				sendWSMessage_10000(1, _george, _agentTalk, 15, 15, 10,
 					_agentTalk, 15, 15, 0);
 				break;
 			case 9:
@@ -390,11 +393,11 @@ void Room301::daemon() {
 					_soundName = nullptr;
 				}
 
-				sendWSMessage_10000(1, _deskGuy, _agentTalk, 16, 32, 10,
+				sendWSMessage_10000(1, _george, _agentTalk, 16, 32, 10,
 					_agentTalk, 15, 15, 0);
 				break;
 			default:
-				sendWSMessage_10000(1, _deskGuy, _agentTalk, 15, 6, 10,
+				sendWSMessage_10000(1, _george, _agentTalk, 15, 6, 10,
 					_agentTalk, 6, 6, 0);
 				_georgeShould = 7;
 				break;
@@ -410,16 +413,16 @@ void Room301::daemon() {
 					_G(kernel).trigger_mode = KT_DAEMON;
 				}
 
-				sendWSMessage(1, _deskGuy, _agentSlidesPaper, 54, 54, 10,
+				sendWSMessage(1, _george, _agentSlidesPaper, 54, 54, 10,
 					_agentSlidesPaper, 54, 55, 1);
 
 			} else {
-				sendWSMessage_10000(1, _deskGuy, _agentSlidesPaper, 57, 76, 10,
+				sendWSMessage_10000(1, _george, _agentSlidesPaper, 57, 76, 10,
 					_agentSlidesPaper, 76, 76, 0);
 				_georgeShould = _georgeMode = 0;
 				_val8 = 0;
-				_val10 = 1;
-				_val11 = 1;
+				_msgRipleyFlag = true;
+				_convResumeFlag = true;
 			}
 			break;
 		}
@@ -446,29 +449,29 @@ void Room301::daemon() {
 		break;
 
 	case 14:
-		sendWSMessage_10000(1, _deskGuy, _agentSlidesPaper, 50, 63, 15,
+		sendWSMessage_10000(1, _george, _agentSlidesPaper, 50, 63, 15,
 			_agentStander, 1, 1, 0);
 		digi_play("950_s35", 2);
 		break;
 
 	case 15:
 		_G(flags)[GLB_TEMP_2] = 1;
-		sendWSMessage_10000(1, _deskGuy, _agentSlidesPaper, 49, 1, 12,
+		sendWSMessage_10000(1, _george, _agentSlidesPaper, 49, 1, 12,
 			_agentStander, 1, 1, 0);
 		break;
 
 	case 20:
-		if (!_val19 && !_ripleyShould && _val5 != -1) {
-			kernel_trigger_dispatchx(_val5);
-			_val5 = -1;
+		if (!_val19 && _ripleyShould == 0 && _trigger1 != -1) {
+			kernel_trigger_dispatchx(_trigger1);
+			_trigger1 = -1;
 
-			if (_val9) {
+			if (_showWalkerFlag) {
 				ws_unhide_walker();
-				_val9 = 0;
+				_showWalkerFlag = false;
 			}
-			if (_val10) {
+			if (_msgRipleyFlag) {
 				sendWSMessage_80000(_ripley);
-				_val10 = 0;
+				_msgRipleyFlag = false;
 			}
 		}
 
@@ -509,12 +512,12 @@ void Room301::daemon() {
 			case 5:
 				_G(kernel).trigger_mode = KT_PARSE;
 				conv_load("conv301a", 10, 10, 747, player_commands_allowed());
-				_val1 = 0;
+				_travelDest = 0;
 
 				conv_export_value(conv_get_handle(), _G(flags)[V088] >= 3 ? 1 : 0, 0);
 				conv_export_value(conv_get_handle(), _G(flags)[V056], 1);
 				conv_export_value(conv_get_handle(), _G(flags)[V110], 2);
-				conv_export_pointer(conv_get_handle(), &_val1, 5);
+				conv_export_pointer(conv_get_handle(), &_travelDest, 5);
 
 				if (player_been_here(201))
 					conv_export_value(conv_get_handle(), 2, 6);
@@ -539,18 +542,18 @@ void Room301::daemon() {
 		break;
 
 	case 25:
-		sendWSMessage_10000(1, _deskGuy, _agentSlidesPaper, 50, 64, 26,
+		sendWSMessage_10000(1, _george, _agentSlidesPaper, 50, 64, 26,
 			_agentSlidesPaper, 64, 64, 0);
 		digi_play("950_s35", 2);
 		break;
 
 	case 26:
-		sendWSMessage_10000(1, _deskGuy, _agentSlidesPaper, 49, 1, 27,
+		sendWSMessage_10000(1, _george, _agentSlidesPaper, 49, 1, 27,
 			_agentStander, 1, 1, 0);
 		break;
 
 	case 27:
-		sendWSMessage_10000(1, _deskGuy, _agentTakesMoney, 52, 9, 28,
+		sendWSMessage_10000(1, _george, _agentTakesMoney, 52, 9, 28,
 			_agentTakesMoney, 9, 9, 0);
 		_georgeMode = 4;
 		_georgeShould = 4;
@@ -653,16 +656,16 @@ void Room301::daemon() {
 		break;
 
 	case 100:
-		sendWSMessage_10000(1, _deskGuy, _agentCheckingList, 8,
+		sendWSMessage_10000(1, _george, _agentCheckingList, 8,
 			1, 10, _agentStander, 1, 1, 0);
 		break;
 
 	case 200:
-		if (_val18 || _val17 || _val5 == -1) {
+		if (_val18 || _val17 || _trigger1 == -1) {
 			kernel_timing_trigger(1, 201);
 		} else {
-			kernel_trigger_dispatchx(_val5);
-			_val5 = -1;
+			kernel_trigger_dispatchx(_trigger1);
+			_trigger1 = -1;
 		}
 		break;
 
@@ -733,7 +736,7 @@ void Room301::daemon() {
 		break;
 
 	case 300:
-		terminateMachineAndNull(_deskGuy);
+		terminateMachineAndNull(_george);
 		_ripley = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0x400, 0,
 			triggerMachineByHashCallback, "rip");
 		sendWSMessage_10000(1, _ripley, _agentStander, 7,
@@ -759,11 +762,11 @@ void Room301::daemon() {
 	case 322:
 		sendWSMessage_10000(1, _ripley, _ripTrekTravel,
 			10, 1, 324, _ripTrekTravel, 1, 1, 0);
-		_deskGuy = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0x400, 0,
+		_george = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0x400, 0,
 			triggerMachineByHashCallback, "guy behind desk");
 		_georgeShould = 0;
 		_georgeMode = 0;
-		sendWSMessage_10000(1, _deskGuy, _agentStander, 1,
+		sendWSMessage_10000(1, _george, _agentStander, 1,
 			1, 10, _agentStander, 1, 1, 0);
 		break;
 
@@ -947,7 +950,7 @@ void Room301::parser() {
 				break;
 			case 4:
 				_georgeMode = 0;
-				_val5 = kernel_trigger_create(5);
+				_trigger1 = kernel_trigger_create(5);
 				_G(kernel).trigger_mode = KT_DAEMON;
 				kernel_timing_trigger(1, 11);
 				_G(kernel).trigger_mode = oldMode;
@@ -970,8 +973,8 @@ void Room301::parser() {
 		_georgeMode = 0;
 		_ripleyShould = 4;
 
-		if (_val1) {
-			switch (_val1) {
+		if (_travelDest) {
+			switch (_travelDest) {
 			case 1:
 				_G(flags)[V129] = 0;
 				break;
@@ -1034,8 +1037,8 @@ void Room301::conv301a() {
 	const char *sound = conv_sound_to_play();
 	int who = conv_whos_talking();
 	int node = conv_current_node();
-
-	if (_G(kernel).trigger == 1 || !sound) {
+	warning("TRIGGER %d, WHO %d NODE %d", _G(kernel).trigger, who, node);
+	if (_G(kernel).trigger == 1) {
 		if (who <= 0) {
 			if (node != 3) {
 				_georgeMode = 4;
@@ -1043,6 +1046,7 @@ void Room301::conv301a() {
 			}
 		} else if (who == 1) {
 			if (node == 11) {
+				// Take payment
 				_georgeMode = 12;
 			} else if (node != 13) {
 				_ripleyShould = 0;
@@ -1053,7 +1057,7 @@ void Room301::conv301a() {
 		} else {
 			conv_resume();
 		}
-	} else {
+	} else if (sound) {
 		if (who <= 0) {
 			if (node == 3) {
 				_georgeMode = 15;
@@ -1073,6 +1077,9 @@ void Room301::conv301a() {
 		}
 
 		digi_play(sound, 1, 255, 1);
+
+	} else {
+		conv_resume();
 	}
 }
 
diff --git a/engines/m4/riddle/rooms/section3/room301.h b/engines/m4/riddle/rooms/section3/room301.h
index 6870b15ea22..a4873e05d02 100644
--- a/engines/m4/riddle/rooms/section3/room301.h
+++ b/engines/m4/riddle/rooms/section3/room301.h
@@ -30,17 +30,17 @@ namespace Rooms {
 
 class Room301 : public Room {
 private:
-	int32 _val1 = 0;
+	int32 _travelDest = 0;
 	int _val2 = 0;
 	const char *_soundName = nullptr;
 	const char *_nextSound = nullptr;
-	int _val5 = -1;
+	int _trigger1 = -1;
 	KernelTriggerType _val6 = KT_DAEMON;
 	KernelTriggerType _val7 = KT_DAEMON;
 	int _val8 = 0;
-	int _val9 = 0;
-	int _val10 = 0;
-	int _val11 = 0;
+	bool _showWalkerFlag = false;	// Value never seems to be set to true
+	bool _msgRipleyFlag = false;
+	bool _convResumeFlag = false;
 	int _val12 = 0;
 	int _georgeShould = 0;
 	int _georgeMode = 0;
@@ -61,7 +61,7 @@ private:
 	int _agentSalutes = 0;
 	int _ripTrekArms = 0;
 	int _marshalMatt = 0;
-	machine *_deskGuy = nullptr;
+	machine *_george = nullptr;
 	machine *_machine2 = nullptr;
 	machine *_machine3 = nullptr;
 	machine *_ripley = nullptr;




More information about the Scummvm-git-logs mailing list