[Scummvm-git-logs] scummvm master -> b23ff116f56129d5145017521f02c93740713afd
Strangerke
noreply at scummvm.org
Fri Nov 29 06:28:54 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:
b23ff116f5 M4: RIDDLE: room 703 - Finish the parser, implement conv703a
Commit: b23ff116f56129d5145017521f02c93740713afd
https://github.com/scummvm/scummvm/commit/b23ff116f56129d5145017521f02c93740713afd
Author: Strangerke (arnaud.boutonne at gmail.com)
Date: 2024-11-29T07:24:54+01:00
Commit Message:
M4: RIDDLE: room 703 - Finish the parser, implement conv703a
Changed paths:
engines/m4/riddle/rooms/section7/room703.cpp
diff --git a/engines/m4/riddle/rooms/section7/room703.cpp b/engines/m4/riddle/rooms/section7/room703.cpp
index 6b57da74a6b..c05b23c4b58 100644
--- a/engines/m4/riddle/rooms/section7/room703.cpp
+++ b/engines/m4/riddle/rooms/section7/room703.cpp
@@ -644,9 +644,63 @@ void Room703::parser() {
default:
break;
}
- }
+ } else if (player_said("East Face")) {
+ switch (_G(kernel).trigger) {
+ case -1:
+ disable_player_commands_and_fade_init(4);
+ break;
+
+ case 4:
+ adv_kill_digi_between_rooms(false);
+ digi_play_loop("950_s39", 3, 255, -1, -1);
+ _G(game).new_room = 704;
+
+ break;
+
+ default:
+ break;
+ }
+ } else if (player_said("West Face")) {
+ switch (_G(kernel).trigger) {
+ case -1:
+ disable_player_commands_and_fade_init(4);
+ break;
+
+ case 4:
+ adv_kill_digi_between_rooms(false);
+ digi_play_loop("950_s39", 3, 255, -1, -1);
+ _G(game).new_room = 706;
- //TODO incomplete implementation
+ break;
+
+ default:
+ break;
+ }
+ } else if (player_said("rm702")) {
+ if (inv_player_has("WISDOM WHEEL") || inv_player_has("SERENITY WHEEL") || inv_player_has("PEACE WHEEL") || inv_player_has("INSIGHT WHEEL") || inv_player_has("TRUTH WHEEL")) {
+ player_update_info(_G(my_walker), &_G(player_info));
+ ws_walk(_G(my_walker), _G(player_info).x, _G(player_info).y, nullptr, -1, 5, true);
+ digi_play("703r13", 1, 255, -1, -1);
+ } else {
+ switch (_G(kernel).trigger) {
+ case -1:
+ ws_walk(_G(my_walker), 640, 450, nullptr, -1, 0, false);
+ disable_player_commands_and_fade_init(2);
+
+ break;
+
+ case 2:
+ adv_kill_digi_between_rooms(false);
+ digi_play_loop("950_s39", 3, 255, -1, -1);
+ _G(game).new_room = 702;
+
+ default:
+ break;
+ }
+ }
+ } else if (!gearFl && !takeFl && player_said_any("MONK #1", "MONK #2", "MONK #3", "MONK #4")) {
+ digi_play("com017", 1, 255, -1, -1);
+ }
}
void Room703::daemon() {
@@ -921,8 +975,18 @@ void Room703::callback(frac16 myMessage, machine *sender) {
}
void Room703::conv703a() {
- //TODO not implemented
- warning("STUB conv703a");
+ int32 who = conv_whos_talking();
+
+ if (conv_sound_to_play() == nullptr) {
+ conv_resume(conv_get_handle());
+ } else if (who <= 0) {
+ _field60_should = 121;
+ _G(kernel).trigger_mode = KT_DAEMON;
+ kernel_timing_trigger(10, 127, nullptr);
+ _G(kernel).trigger_mode = KT_PARSE;
+ } else if (who == 1) {
+ digi_play(conv_sound_to_play(), 1, 255, 90, -1);
+ }
}
void Room703::sub9EA78(const char *digiName, int32 trigger) {
More information about the Scummvm-git-logs
mailing list