[Scummvm-git-logs] scummvm master -> 6d702ef4ca9734bf7dd946dee776a7ad7e94e23d
dreammaster
noreply at scummvm.org
Wed Nov 27 04:36:26 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:
13913e56d3 M4: RIDDLE: Fixes for tt note and shed
6d702ef4ca M4: RIDDLE: Partial fix for rotating statue in lava room
Commit: 13913e56d3d6ce63ea6bd697bbd04b7d63b8cd1a
https://github.com/scummvm/scummvm/commit/13913e56d3d6ce63ea6bd697bbd04b7d63b8cd1a
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2024-11-26T20:36:17-08:00
Commit Message:
M4: RIDDLE: Fixes for tt note and shed
Changed paths:
engines/m4/riddle/rooms/section6/room603.cpp
engines/m4/riddle/rooms/section6/room603.h
engines/m4/riddle/rooms/section6/room604.cpp
engines/m4/riddle/rooms/section6/room604.h
diff --git a/engines/m4/riddle/rooms/section6/room603.cpp b/engines/m4/riddle/rooms/section6/room603.cpp
index 25a02cf021e..e9fef909c5b 100644
--- a/engines/m4/riddle/rooms/section6/room603.cpp
+++ b/engines/m4/riddle/rooms/section6/room603.cpp
@@ -69,7 +69,7 @@ void Room603::init() {
_val5 = 0;
}
- _val6 = 0;
+ _showingNoteCloseup = false;
if (_G(game).previous_room != 604 && _G(game).previous_room != KERNEL_RESTORING_GAME &&
inv_player_has("PULL CORD") && !inv_object_is_here("POLE") &&
@@ -780,7 +780,7 @@ void Room603::daemon() {
case 320:
terminateMachineAndNull(_ripley);
- _treesGoneHome = series_show("603rp02a", 0x100, 16);
+ _ttNote = series_show("603rp02a", 0x100, 16);
_tt = TriggerMachineByHash(1, 1, 0, 0, 0, 0, 0, 0, 100, 0x200, 0,
triggerMachineByHashCallback, "tt");
sendWSMessage_10000(1, _tt, _tt03, 1, 39, 322, _tt03, 39, 39, 0);
@@ -798,7 +798,7 @@ void Room603::daemon() {
case 325:
sendWSMessage_10000(1, _tt, _tt03, 83, 122, 326, _tt03, 122, 122, 0);
- terminateMachineAndNull(_treesGoneHome);
+ terminateMachineAndNull(_ttNote);
terminateMachineAndNull(_shadow);
ws_unhide_walker();
ws_demand_facing(4);
@@ -1247,7 +1247,7 @@ void Room603::pre_parser() {
if (_G(flags)[V202] && !player_said("talk to", "twelvetrees"))
_G(flags)[V204] = 1;
- if (_val6) {
+ if (_showingNoteCloseup) {
Common::strcpy_s(_G(player).noun, "remove note");
_G(player).resetWalk();
}
@@ -1477,25 +1477,25 @@ void Room603::parser() {
digi_play("603r02", 1);
}
} else if (lookFlag && player_said("note ")) {
- _val6 = 1;
+ _showingNoteCloseup = true;
hotspot_hide_all();
- _treesGoneHome = series_show("603 12TREES GONE HOME NOTE", 0, 16);
+ _ttNote = series_show("603 12TREES GONE HOME NOTE", 0, 16);
hotspot_add_dynamic("LOOK AT", " ", 0, 0, 640, 480, 0);
digi_play("603r44", 1);
interface_hide();
} else if (lookFlag && player_said("note") &&
inv_object_is_here("TWELVETREES' NOTE")) {
- _val6 = 1;
+ _showingNoteCloseup = true;
hotspot_hide_all();
- _treesGoneHome = series_show("603 tt map popup", 0, 16);
+ _ttNote = series_show("603 tt map popup", 0, 16);
hotspot_add_dynamic("LOOK AT", " ", 0, 0, 640, 480, 0);
_G(flags)[V046] = 1;
digi_play("603r28", 1);
interface_hide();
- } else if (player_said("remote note")) {
- _val6 = 0;
+ } else if (player_said("remove note")) {
+ _showingNoteCloseup = false;
hotspot_restore_all();
- terminateMachineAndNull(_treesGoneHome);
+ terminateMachineAndNull(_ttNote);
interface_show();
} else if (_G(kernel).trigger == 555) {
if (_G(flags)[V038])
@@ -2226,7 +2226,7 @@ void Room603::syncGame(Common::Serializer &s) {
s.syncAsSint32LE(_val3);
s.syncAsSint32LE(_val4);
s.syncAsSint32LE(_val5);
- s.syncAsSint32LE(_val6);
+ s.syncAsSint32LE(_showingNoteCloseup);
s.syncAsSint32LE(_val9);
s.syncAsSint32LE(_val10);
s.syncAsSint32LE(_ripleyMode);
diff --git a/engines/m4/riddle/rooms/section6/room603.h b/engines/m4/riddle/rooms/section6/room603.h
index 1e5d6474e05..1cb00d9d026 100644
--- a/engines/m4/riddle/rooms/section6/room603.h
+++ b/engines/m4/riddle/rooms/section6/room603.h
@@ -34,9 +34,9 @@ private:
int _val3 = 0;
int _val4 = 0;
int _val5 = 0;
- int _val6 = 0;
int _val9 = 0;
int _val10 = 0;
+ bool _showingNoteCloseup = false;
int _ripleyMode = 0;
int _ripleyShould = 0;
int _ttMode = 0;
@@ -55,7 +55,7 @@ private:
machine *_pu01 = nullptr;
machine *_ripley = nullptr;
machine *_shadow = nullptr;
- machine *_treesGoneHome = nullptr;
+ machine *_ttNote = nullptr;
machine *_explosion = nullptr;
int _rp01 = 0;
int _rp02 = 0;
diff --git a/engines/m4/riddle/rooms/section6/room604.cpp b/engines/m4/riddle/rooms/section6/room604.cpp
index 8ec2548fb67..cb4ff746d06 100644
--- a/engines/m4/riddle/rooms/section6/room604.cpp
+++ b/engines/m4/riddle/rooms/section6/room604.cpp
@@ -252,12 +252,12 @@ void Room604::parser() {
bool takeFlag = player_said("take");
bool useFlag = player_said_any("push", "pull", "gear", "open", "close");
- if (useFlag && player_said("WHALE BONE HORN") && useWhaleBoneHorn()) {
- // No implementation
+ if (useFlag && player_said("WHALE BONE HORN")) {
+ useWhaleBoneHorn();
} else if (player_said("kill rip")) {
killRipley();
- } else if (takeFlag && player_said("PULL CORD") && takePullCord()) {
- // No implementation
+ } else if (takeFlag && player_said("PULL CORD")) {
+ takePullCord();
} else if (player_said("PULL CORD", "generator set")) {
switch (_G(kernel).trigger) {
case -1:
@@ -284,8 +284,8 @@ void Room604::parser() {
digi_play("com118", 1, 255, -1, 997);
} else if (player_said("SPARK PLUG TOOL", "GAS TANK")) {
digi_play("com011", 1, 255, -1, 997);
- } else if (takeFlag && player_said("SPARK PLUG TOOL") && takeSparkPlugTool()) {
- // No implementation
+ } else if (takeFlag && player_said("SPARK PLUG TOOL")) {
+ takeSparkPlugTool();
} else if (useFlag && player_said("generator set") &&
!inv_object_is_here("PULL CORD")) {
digi_play("604r43", 1);
@@ -503,10 +503,10 @@ void Room604::parser() {
} else {
digi_play("com118", 1, 255, -1, 997);
}
- } else if (takeFlag && player_said("LIGHTER") && takeLighter()) {
- // No implementation
- } else if (player_said("pull cord", "plug") && pullCordPlug()) {
- // No implementation
+ } else if (takeFlag && player_said("LIGHTER")) {
+ takeLighter();
+ } else if (player_said("pull cord", "plug")) {
+ pullCordPlug();
} else if (player_said("plug", "pull cord ")) {
switch (_G(kernel).trigger) {
case -1:
@@ -689,6 +689,8 @@ void Room604::parser() {
digi_preload("950_s28");
digi_play_loop("950_s28", 3);
}
+
+ _G(game).setRoom(603);
break;
default:
break;
@@ -776,7 +778,7 @@ void Room604::parser() {
_G(player).command_ready = false;
}
-bool Room604::useWhaleBoneHorn() {
+void Room604::useWhaleBoneHorn() {
switch (_G(kernel).trigger) {
case 5:
_ripley = series_play("BAD GUYS LOOK TO SHED", 0, 0, 6, 6);
@@ -794,13 +796,11 @@ bool Room604::useWhaleBoneHorn() {
_G(kernel).trigger_mode = KT_DAEMON;
kernel_timing_trigger(60, 666);
player_set_commands_allowed(true);
- return true;
+ break;
default:
break;
}
-
- return false;
}
void Room604::killRipley() {
@@ -966,7 +966,7 @@ void Room604::killRipley() {
}
}
-bool Room604::takePullCord() {
+void Room604::takePullCord() {
switch (_G(kernel).trigger) {
case -1:
if (inv_object_is_here("PULL CORD") && !_G(flags)[V189]) {
@@ -980,7 +980,7 @@ bool Room604::takePullCord() {
terminateMachineAndNull(_pullCord1);
hotspot_set_active("PULL CORD", false);
inv_give_to_player("PULL CORD");
- kernel_examine_inventory_object("ping pull cord", 5, 1, 312, 350, 3);
+ kernel_examine_inventory_object("ping pull cord", 5, 1, 312, 250, 3);
break;
case 3:
@@ -994,18 +994,16 @@ bool Room604::takePullCord() {
default:
break;
}
-
- return false;
}
-bool Room604::takeSparkPlugTool() {
+void Room604::takeSparkPlugTool() {
switch (_G(kernel).trigger) {
case -1:
if (inv_object_is_here("SPARK PLUG TOOL")) {
player_set_commands_allowed(false);
setGlobals1(_ripLowReach1, 1, 10, 10, 10);
sendWSMessage_110000(2);
- return true;
+ break;
}
break;
@@ -1015,21 +1013,19 @@ bool Room604::takeSparkPlugTool() {
kernel_examine_inventory_object("ping spark plug tool",
5, 1, 282, 247, 3);
terminateMachineAndNull(_sparkPlugTool);
- return true;
+ break;
case 3:
sendWSMessage_140000(5);
- return true;
+ break;
case 5:
player_set_commands_allowed(true);
- return true;
+ break;
default:
break;
}
-
- return false;
}
void Room604::takeWire() {
@@ -1063,11 +1059,11 @@ void Room604::takeWire() {
}
}
-bool Room604::takeLighter() {
+void Room604::takeLighter() {
switch (_G(kernel).trigger) {
case -1:
if (!inv_object_is_here("LIGHTER"))
- return false;
+ return;
ws_walk(331, 323, nullptr, 1, 10);
break;
@@ -1090,18 +1086,16 @@ bool Room604::takeLighter() {
break;
default:
- return false;
+ break;
}
-
- return true;
}
-bool Room604::pullCordPlug() {
+void Room604::pullCordPlug() {
switch (_G(kernel).trigger) {
case -1:
if (_G(flags)[V190]) {
if (!inv_player_has("PULL CORD"))
- return false;
+ return;
ws_walk(289, 312, nullptr, 1, 11);
} else {
digi_play("604r12", 1);
@@ -1129,10 +1123,8 @@ bool Room604::pullCordPlug() {
break;
default:
- return false;
+ break;
}
-
- return true;
}
void Room604::daemon1() {
diff --git a/engines/m4/riddle/rooms/section6/room604.h b/engines/m4/riddle/rooms/section6/room604.h
index bfe8e24d2ed..bcf87e2e902 100644
--- a/engines/m4/riddle/rooms/section6/room604.h
+++ b/engines/m4/riddle/rooms/section6/room604.h
@@ -54,11 +54,11 @@ private:
machine *_shadow = nullptr;
void daemon1();
- bool useWhaleBoneHorn();
- bool takePullCord();
- bool takeSparkPlugTool();
- bool takeLighter();
- bool pullCordPlug();
+ void useWhaleBoneHorn();
+ void takePullCord();
+ void takeSparkPlugTool();
+ void takeLighter();
+ void pullCordPlug();
/**
* This Ripley is no more! It has ceased to be! It's expired
Commit: 6d702ef4ca9734bf7dd946dee776a7ad7e94e23d
https://github.com/scummvm/scummvm/commit/6d702ef4ca9734bf7dd946dee776a7ad7e94e23d
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2024-11-26T20:36:17-08:00
Commit Message:
M4: RIDDLE: Partial fix for rotating statue in lava room
Changed paths:
engines/m4/riddle/rooms/section6/room608.cpp
engines/m4/riddle/rooms/section6/room608.h
diff --git a/engines/m4/riddle/rooms/section6/room608.cpp b/engines/m4/riddle/rooms/section6/room608.cpp
index e9ea659a6c4..9406a1a7822 100644
--- a/engines/m4/riddle/rooms/section6/room608.cpp
+++ b/engines/m4/riddle/rooms/section6/room608.cpp
@@ -1581,94 +1581,7 @@ void Room608::parser() {
break;
}
} else if (useFlag && HERE("POLE")) {
- switch (_G(kernel).trigger) {
- case -1:
- ws_walk(453, 311, nullptr, 1, 1);
- break;
- case 1:
- player_set_commands_allowed(false);
- player_update_info();
- ws_hide_walker();
- kernel_load_variant("608lock1");
- digi_preload("950_s37");
- digi_preload("950_s37a");
-
- _ol2 = series_stream("608rp04", 5, 0x300, 16);
- series_stream_break_on_frame(_ol2, 25, 3);
- break;
- case 3:
- series_stream_break_on_frame(_ol2, 33, 30);
- digi_play("950_s37", 2);
- break;
- case 4:
- series_stream_break_on_frame(_ol2, 76, 5);
- digi_play("950_s37a", 2);
- break;
- case 5:
- series_stream_break_on_frame(_ol2, 77, 7);
- digi_play("950_s37", 2);
- break;
- case 7:
- terminateMachineAndNull(_end1);
- terminateMachineAndNull(_pole);
- terminateMachineAndNull(_stump);
- _oldShould = 8;
- digi_play("608_s01a", 1);
- break;
- case 10:
- digi_unload("950_s37");
- digi_unload("950_s37a");
- _G(flags)[V186] = 1;
- _end1 = series_show("608END", 0xf00, 16);
-
- hotspot_set_active("STATUE", false);
- hotspot_set_active("STATUE ", true);
- hotspot_set_active("DRIFTWOOD STUMP ", false);
- hotspot_set_active("DRIFTWOOD STUMP ", true);
- hotspot_set_active("POLE", false);
- hotspot_set_active("POLE ", true);
- hotspot_set_active("stone", false);
-
- ws_unhide_walker();
- player_update_info();
- ws_walk(_G(player_info).x + 1, _G(player_info).y,
- nullptr, 12, 4);
- break;
- case 12:
- _ripLHandTalk = series_load("RIP TREK L HAND TALK POS4");
- setGlobals1(_ripLHandTalk, 2, 6, 6, 7, 1, 6, 1, 1, 1);
- digi_play("608r15", 1, 255, 15);
- break;
- case 15:
- sendWSMessage_120000(2);
- _oldShould = 10;
- digi_play("608o01", 1, 255, 18);
- break;
- case 18:
- sendWSMessage_110000(2);
- digi_play("608r16", 1, 255, 20);
- break;
- case 20:
- sendWSMessage_140000(-1);
- _oldShould = 9;
- digi_play("608o02", 1, 255, 22);
- break;
- case 22:
- _oldShould = 1;
- kernel_timing_trigger(1, 200, KT_DAEMON, KT_PARSE);
- kernel_timing_trigger(100, 25);
- break;
- case 25:
- player_set_commands_allowed(true);
- digi_play("608r17", 1);
- break;
- case 30:
- series_stream_break_on_frame(_ol2, 44, 4);
- digi_play("608_s01", 1);
- break;
- default:
- break;
- }
+ usePole();
} else if (player_said_any("lung", "prostate")) {
switch (_G(kernel).trigger) {
case 1:
@@ -2158,6 +2071,111 @@ bool Room608::lookPuffin() {
return false;
}
+void Room608::usePole() {
+ switch (_G(kernel).trigger) {
+ case -1:
+ ws_walk(453, 311, nullptr, 1, 1);
+ break;
+
+ case 1:
+ player_set_commands_allowed(false);
+ player_update_info();
+ ws_hide_walker();
+ kernel_load_variant("608lock1");
+ digi_preload("950_s37");
+ digi_preload("950_s37a");
+
+ _ol2 = series_stream("608rp04", 5, 0x300, 10);
+ series_stream_break_on_frame(_ol2, 25, 3);
+ break;
+
+ case 3:
+ series_stream_break_on_frame(_ol2, 33, 30);
+ digi_play("950_s37", 2);
+ break;
+
+ case 4:
+ series_stream_break_on_frame(_ol2, 76, 5);
+ digi_play("950_s37a", 2);
+ break;
+
+ case 5:
+ series_stream_break_on_frame(_ol2, 77, 7);
+ digi_play("950_s37", 2);
+ break;
+
+ case 7:
+ terminateMachineAndNull(_end1);
+ terminateMachineAndNull(_pole);
+ terminateMachineAndNull(_stump);
+ _oldShould = 8;
+ digi_play("608_s01a", 1);
+ break;
+
+ case 10:
+ digi_unload("950_s37");
+ digi_unload("950_s37a");
+ _G(flags)[V186] = 1;
+ _end1 = series_show("608END", 0xf00, 16);
+
+ hotspot_set_active("STATUE", false);
+ hotspot_set_active("STATUE ", true);
+ hotspot_set_active("DRIFTWOOD STUMP ", false);
+ hotspot_set_active("DRIFTWOOD STUMP ", true);
+ hotspot_set_active("POLE", false);
+ hotspot_set_active("POLE ", true);
+ hotspot_set_active("stone", false);
+
+ ws_unhide_walker();
+ player_update_info();
+ ws_walk(_G(player_info).x + 1, _G(player_info).y,
+ nullptr, 12, 4);
+ break;
+
+ case 12:
+ _ripLHandTalk = series_load("RIP TREK L HAND TALK POS4");
+ setGlobals1(_ripLHandTalk, 1, 6, 6, 7, 1, 6, 1, 1, 1);
+ digi_play("608r15", 1, 255, 15);
+ break;
+
+ case 15:
+ sendWSMessage_120000(2);
+ _oldShould = 10;
+ digi_play("608o01", 1, 255, 18);
+ break;
+
+ case 18:
+ sendWSMessage_110000(2);
+ digi_play("608r16", 1, 255, 20);
+ break;
+
+ case 20:
+ sendWSMessage_140000(-1);
+ _oldShould = 9;
+ digi_play("608o02", 1, 255, 22);
+ break;
+
+ case 22:
+ _oldShould = 1;
+ kernel_timing_trigger(1, 200, KT_DAEMON, KT_PARSE);
+ kernel_timing_trigger(100, 25);
+ break;
+
+ case 25:
+ player_set_commands_allowed(true);
+ digi_play("608r17", 1);
+ break;
+
+ case 30:
+ series_stream_break_on_frame(_ol2, 44, 4);
+ digi_play("608_s01", 1);
+ break;
+
+ default:
+ break;
+ }
+}
+
void Room608::syncGame(Common::Serializer &s) {
s.syncAsUint32LE(_ripleyShould);
s.syncAsUint32LE(_ripleyMode);
diff --git a/engines/m4/riddle/rooms/section6/room608.h b/engines/m4/riddle/rooms/section6/room608.h
index df18ee7e683..0cdd547410b 100644
--- a/engines/m4/riddle/rooms/section6/room608.h
+++ b/engines/m4/riddle/rooms/section6/room608.h
@@ -83,6 +83,7 @@ private:
bool takeLighter();
bool hornCordWater();
bool lookPuffin();
+ void usePole();
public:
Room608() : Room() {}
More information about the Scummvm-git-logs
mailing list