[Scummvm-git-logs] scummvm master -> fa03da6f76a40984242cd4355c3f4495b0638d0b
dreammaster
noreply at scummvm.org
Sat Aug 3 19:12:23 UTC 2024
This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
24b0d9659e M4: RIDDLE: Finished room 304 parser switch
fa03da6f76 M4: RIDDLE: Finished room 304 parser
Commit: 24b0d9659ea8caed2010e88ff048e5dcd8df9030
https://github.com/scummvm/scummvm/commit/24b0d9659ea8caed2010e88ff048e5dcd8df9030
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2024-08-03T12:11:47-07:00
Commit Message:
M4: RIDDLE: Finished room 304 parser switch
Changed paths:
engines/m4/riddle/rooms/room.cpp
engines/m4/riddle/rooms/room.h
engines/m4/riddle/rooms/section3/room304.cpp
diff --git a/engines/m4/riddle/rooms/room.cpp b/engines/m4/riddle/rooms/room.cpp
index 01dceb3a059..1a710e6dfbe 100644
--- a/engines/m4/riddle/rooms/room.cpp
+++ b/engines/m4/riddle/rooms/room.cpp
@@ -297,6 +297,10 @@ void Room::sendWSMessage_F0000(machine *mach, int trigger) {
sendWSMessage(0xf0000, 0, mach, 0, nullptr, 1);
}
+void Room::sendWSMessage_F0000(int trigger) {
+ sendWSMessage_F0000(_G(my_walker), trigger);
+}
+
void Room::sendWSMessage_110000(machine *mach, int trigger) {
if (!trigger)
trigger = -1;
diff --git a/engines/m4/riddle/rooms/room.h b/engines/m4/riddle/rooms/room.h
index 1467b0cd776..3ce83c8f316 100644
--- a/engines/m4/riddle/rooms/room.h
+++ b/engines/m4/riddle/rooms/room.h
@@ -80,6 +80,7 @@ protected:
void sendWSMessage_E0000(machine *mach);
void sendWSMessage_E0000();
void sendWSMessage_F0000(machine *mach, int trigger);
+ void sendWSMessage_F0000(int trigger);
void sendWSMessage_110000(machine *mach, int trigger);
void sendWSMessage_120000(int trigger);
void sendWSMessage_120000(machine *mach, int trigger);
diff --git a/engines/m4/riddle/rooms/section3/room304.cpp b/engines/m4/riddle/rooms/section3/room304.cpp
index 296e0885c37..89c7634e530 100644
--- a/engines/m4/riddle/rooms/section3/room304.cpp
+++ b/engines/m4/riddle/rooms/section3/room304.cpp
@@ -662,7 +662,158 @@ void Room304::parserSwitch() {
1, 0, 0, 17, 29, 295, 100, 0x100, 9);
digi_play("304m06", 1, 255, 55);
break;
- // TODO
+
+ case 53:
+ inv_give_to_player("POST MARKED ENVELOPE");
+ break;
+
+ case 54:
+ digi_play("304r52", 1, 255, 51);
+ break;
+
+ case 55:
+ if (_val1) {
+ kernel_timing_trigger(1, 56);
+ } else {
+ kernel_timing_trigger(60, 55);
+ }
+ break;
+
+ case 56:
+ _suit1 = series_load("rip suit stander talk pos4");
+ setGlobals1(_suit1, 1, 1, 1, 5, 1);
+ sendWSMessage_110000(58);
+ digi_play("304r53", 1, 255, 58);
+ break;
+
+ case 58:
+ if (_ctr1 >= 1) {
+ _ctr1 = 0;
+ sendWSMessage_140000(59);
+ } else {
+ ++_ctr1;
+ }
+ break;
+
+ case 59:
+ series_unload(_suit1);
+ terminateMachineAndNull(_field60);
+ series_unload(_suit3);
+
+ _suit3 = series_load("mc hand to chin nod pos3");
+ series_ranged_play_xy("mc hand to chin nod pos3", 2, 1,
+ 0, 7, 29, 295, 100, 0xa00, 7, 63);
+ digi_play("304m07", 1, 255, 60);
+ break;
+
+ case 60:
+ _suit1 = series_load("RIP LFT GEST RT PNT");
+ setGlobals3(_suit1, 1, 45);
+ sendWSMessage_F0000(75);
+ digi_play("304r54", 1, 255, 61);
+ break;
+
+ case 61:
+ _suit3 = series_load("mc hands out talk pos3");
+ kernel_timing_trigger(40, 65);
+ break;
+
+ case 63:
+ series_unload(_suit3);
+ _suit3 = series_load("mc hand to chin pos3");
+ _field60 = series_ranged_play_xy("mc hand to chin pos3",
+ 1, 2, 0, 17, 29, 295, 100, 0x100, 7, 64);
+ break;
+
+ case 64:
+ ws_unhide_walker(_machine1);
+ series_unload(_suit3);
+ break;
+
+ case 65:
+ setGlobals1(_suit3, 1, 10, 11, 16, 1, 17, 24, 1, 1, 1);
+ sendWSMessage_110000(_machine1, -1);
+ digi_play("304m08", 1, 255, 66);
+ kernel_timing_trigger(60, 69);
+ break;
+
+ case 66:
+ sendWSMessage_120000(_machine1, -1);
+ _G(game).setRoom(303);
+ break;
+
+ case 67:
+ digi_play("304r50", 1);
+ break;
+
+ case 69:
+ ws_walk(458, 263, 0, -1, 2);
+ kernel_timing_trigger(30, 678);
+ break;
+
+ case 71:
+ if (_ctr1 >= 1) {
+ _ctr1 = 0;
+ sendWSMessage_140000(72);
+ } else {
+ ++_ctr1;
+ }
+ break;
+
+ case 72:
+ series_unload(_suit3);
+ _suit1 = series_load("rip suit rt hand gest talk pos3");
+ setGlobals1(_suit1, 1, 11, 12, 15, 1);
+ sendWSMessage_110000(73);
+ digi_play(_val3 ? "304r24" : "304r23", 1, 255, 73);
+ sendWSMessage_10000(_machine1, 242, 274, 3, 18, 0);
+ break;
+
+ case 73:
+ if (_ctr1 >= 1) {
+ _ctr1 = 0;
+ sendWSMessage_140000(-1);
+ } else {
+ ++_ctr1;
+ }
+ break;
+
+ case 74:
+ _ctr1 = 0;
+ _suit3 = series_load("mei ny hands out talk pos4");
+ setGlobals1(_suit3, 1, 9, 10, 15, 1);
+ sendWSMessage_110000(71);
+ digi_play(_val3 ? "304m03" : "304m02", 1, 255, 71);
+ break;
+
+ case 75:
+ series_unload(_suit1);
+ break;
+
+ case 78:
+ digi_unload("304r51a");
+ kernel_timing_trigger(60, 47);
+ break;
+
+ case 79:
+ digi_unload("304r51");
+ digi_preload("304r51a");
+ digi_play("304r51a", 1, 255, 78);
+ break;
+
+ case 80:
+ _val1 = 1;
+ break;
+
+ case 222:
+ digi_play("304_s13", 2);
+ series_ranged_play("MC UNTIES LF", 1, 0, 22, 82, 100, 0xa05, 5, 22);
+ break;
+
+ case 678:
+ disable_player_commands_and_fade_init(-1);
+ break;
+
default:
break;
}
Commit: fa03da6f76a40984242cd4355c3f4495b0638d0b
https://github.com/scummvm/scummvm/commit/fa03da6f76a40984242cd4355c3f4495b0638d0b
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2024-08-03T12:11:47-07:00
Commit Message:
M4: RIDDLE: Finished room 304 parser
Changed paths:
engines/m4/riddle/rooms/section3/room304.cpp
engines/m4/riddle/rooms/section3/room304.h
diff --git a/engines/m4/riddle/rooms/section3/room304.cpp b/engines/m4/riddle/rooms/section3/room304.cpp
index 89c7634e530..aea8bcf1741 100644
--- a/engines/m4/riddle/rooms/section3/room304.cpp
+++ b/engines/m4/riddle/rooms/section3/room304.cpp
@@ -208,7 +208,8 @@ void Room304::parser() {
}
} else if (_G(kernel).trigger == 749) {
midi_stop();
- } else if (_G(flags)[V001] && _val4) {
+ } else if (_G(flags)[V001] && _val4
+ && _G(kernel).trigger >= 49 && _G(kernel).trigger <= 54) {
switch (_G(kernel).trigger) {
case 49:
ws_hide_walker();
@@ -243,10 +244,40 @@ void Room304::parser() {
default:
break;
}
- } else if (0) {
- parserSwitch();
+ } else if (_G(flags)[V001] && (takeFlag || useFlag) && player_said("samurai sword")) {
+ if (_G(flags)[V001]) {
+ switch (_G(kernel).trigger) {
+ case 11:
+ terminateMachineAndNull(_sword);
+ series_ranged_play("CUT SNAKE", 1, 0, 11, 22, 100, 0x200, 4, 12);
+ digi_play("304_s10", 1);
+ break;
+ case 12:
+ series_ranged_play("CUT SNAKE", 1, 0, 23, 55, 100, 0x200, 4, 13);
+ break;
+ case 13:
+ series_ranged_play("CUT SNAKE", 1, 0, 56, 69, 100, 0x200, 4, 14);
+ digi_play("304_s09", 2);
+ break;
+ case 14:
+ midi_fade_volume(0, 120);
+ kernel_timing_trigger(120, 749);
+ Common::strcpy_s(_G(player).noun, "HANDLING STICK");
+ series_ranged_play("CUT SNAKE", 1, 0, 70, 89, 100, 0x200, 4, 17);
+ digi_play("com125", 1);
+ break;
+ default:
+ break;
+ }
+ } else {
+ digi_play("304r64", 1);
+ }
+ } else if (_G(flags)[V001] && (takeFlag || useFlag) && player_said("handling stick")) {
+ // This is such an enormous switch in the original that
+ // it's been refactored to it's own method
+ handlingStick();
- } else if (lookFlag && player_said_any("native mask", "shield")) {
+ } if (lookFlag && player_said_any("native mask", "shield")) {
digi_play("304r05", 1);
} else if (lookFlag && player_said("mailbag")) {
digi_play("304r15", 1);
@@ -418,7 +449,7 @@ void Room304::intrMsg(frac16 myMessage, struct machine *sender) {
}
}
-void Room304::parserSwitch() {
+void Room304::handlingStick() {
switch (_G(kernel).trigger) {
case 13:
series_stream_break_on_frame(_field64, 29, 14);
diff --git a/engines/m4/riddle/rooms/section3/room304.h b/engines/m4/riddle/rooms/section3/room304.h
index 3e287a3c41d..3b23aacf59e 100644
--- a/engines/m4/riddle/rooms/section3/room304.h
+++ b/engines/m4/riddle/rooms/section3/room304.h
@@ -64,7 +64,7 @@ private:
int _ctr1 = 0;
static void intrMsg(frac16 myMessage, struct machine *sender);
- void parserSwitch();
+ void handlingStick();
public:
Room304() : Room() {}
More information about the Scummvm-git-logs
mailing list