[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