[Scummvm-git-logs] scummvm master -> 046fafc1f10cd111c7e33460384ae8a0346f4aac
dreammaster
noreply at scummvm.org
Thu Jun 25 10:19:36 UTC 2026
This automated email contains information about 7 new commits which have been
pushed to the 'scummvm' repo located at https://api.github.com/repos/scummvm/scummvm .
Summary:
3d5841388d MADS: FOREST: Identified inventory items in room 101
50a9796e0e MADS: FOREST: Identifying characters in room 101
ce0a3a333b MADS: FOREST: Add complete words list, remap player_parse calls to use it
3f14bd5851 MADS: FOREST: Inventory cleanup
158be46f4b MADS: FOREST: Clarify param 2 of inter_move_object calls
5f6d5e8475 MADS: FOREST: Add pebble to inventory list
046fafc1f1 MADS: FOREST: Add support for second distinct digi format
Commit: 3d5841388d08f976314032ee729f9ef58cde31a5
https://github.com/scummvm/scummvm/commit/3d5841388d08f976314032ee729f9ef58cde31a5
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2026-06-25T20:19:21+10:00
Commit Message:
MADS: FOREST: Identified inventory items in room 101
Changed paths:
engines/mads/madsv2/forest/mads/inventory.h
engines/mads/madsv2/forest/rooms/room101.cpp
diff --git a/engines/mads/madsv2/forest/mads/inventory.h b/engines/mads/madsv2/forest/mads/inventory.h
index daf83353cf1..4e442c7c034 100644
--- a/engines/mads/madsv2/forest/mads/inventory.h
+++ b/engines/mads/madsv2/forest/mads/inventory.h
@@ -28,7 +28,11 @@ namespace MADS {
namespace MADSV2 {
namespace Forest {
-//enum {};
+enum {
+ cogs = 0,
+ twine = 8,
+ planks = 11
+};
} // namespace Forest
} // namespace MADSV2
diff --git a/engines/mads/madsv2/forest/rooms/room101.cpp b/engines/mads/madsv2/forest/rooms/room101.cpp
index 08e11d5a938..3d067d78ae6 100644
--- a/engines/mads/madsv2/forest/rooms/room101.cpp
+++ b/engines/mads/madsv2/forest/rooms/room101.cpp
@@ -232,7 +232,7 @@ static void room_101_init() {
++flags[0];
}
- if (object_is_here(11)) {
+ if (object_is_here(planks)) {
ss[0] = kernel_load_series("*rm101p11", 0);
seq[0] = kernel_seq_stamp(ss[0], 0, -1);
kernel_seq_depth(seq[0], 13);
@@ -242,7 +242,7 @@ static void room_101_init() {
kernel_flip_hotspot(164, false);
}
- if (object_is_here(0)) {
+ if (object_is_here(cogs)) {
ss[2] = kernel_load_series("*rm101p10", 0);
seq[2] = kernel_seq_stamp(ss[2], 0, -1);
kernel_seq_depth(seq[2], 8);
@@ -252,7 +252,7 @@ static void room_101_init() {
kernel_flip_hotspot(105, false);
}
- if (object_is_here(8)) {
+ if (object_is_here(twine)) {
ss[1] = kernel_load_series(kernel_name('p', 8), 0);
seq[1] = kernel_seq_stamp(ss[1], 0, -1);
kernel_seq_depth(seq[1], 1);
@@ -372,13 +372,13 @@ static void room_101_anim1() {
static void room_101_anim2() {
int16 frame = kernel_anim[aa[7]].frame;
- if (frame == aainfo[7]._frame)
- return;
- aainfo[7]._frame = frame;
- if (frame != 18) return;
- if (aainfo[7]._val3 != 7) return;
- aainfo[7]._frame = 6;
- kernel_reset_animation(aa[7], 6);
+ if (frame != aainfo[7]._frame) {
+ aainfo[7]._frame = frame;
+ if (frame == 18 && aainfo[7]._val3 == 7) {
+ aainfo[7]._frame = 6;
+ kernel_reset_animation(aa[7], 6);
+ }
+ }
}
static void room_101_anim3() {
@@ -657,7 +657,7 @@ static void room_101_daemon() {
kernel_reset_animation(scratch._a6, 0);
global[g133] = 1;
global[g143] = 1;
- inter_move_object(0, 2);
+ inter_move_object(cogs, PLAYER);
kernel_seq_delete(seq[2]);
kernel_flip_hotspot(105, 0);
aa[4] = kernel_run_animation(kernel_name('R', 5), 103);
@@ -682,7 +682,7 @@ static void room_101_daemon() {
kernel_reset_animation(scratch._a6, 0);
global[g133] = 1;
global[g143] = 1;
- inter_move_object(11, 2);
+ inter_move_object(planks, PLAYER);
kernel_seq_delete(seq[0]);
kernel_flip_hotspot(164, 0);
aa[4] = kernel_run_animation(kernel_name('R', 6), 103);
@@ -908,7 +908,7 @@ static void room_101_daemon() {
kernel_reset_animation(scratch._a6, 0);
global[g133] = 1;
global[g143] = 1;
- inter_move_object(8, 2);
+ inter_move_object(twine, PLAYER);
kernel_seq_delete(seq[1]);
kernel_flip_hotspot(154, 0);
aa[4] = kernel_run_animation(kernel_name('R', 4), 103);
Commit: 50a9796e0e2e0fe8df22f021b1be8d50b5b8663c
https://github.com/scummvm/scummvm/commit/50a9796e0e2e0fe8df22f021b1be8d50b5b8663c
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2026-06-25T20:19:21+10:00
Commit Message:
MADS: FOREST: Identifying characters in room 101
Changed paths:
engines/mads/madsv2/forest/rooms/room101.cpp
diff --git a/engines/mads/madsv2/forest/rooms/room101.cpp b/engines/mads/madsv2/forest/rooms/room101.cpp
index 3d067d78ae6..cfdeb4be396 100644
--- a/engines/mads/madsv2/forest/rooms/room101.cpp
+++ b/engines/mads/madsv2/forest/rooms/room101.cpp
@@ -56,8 +56,8 @@ struct Scratch {
int16 _9e; // Offset 9eh
int16 _a0; // Offset a0h
int16 _a2; // Offset a2h
- int16 _a4;
- int16 _a6;
+ int16 _edgar;
+ int16 _russell;
int16 _a8;
int16 _aa;
int16 _startCutsceneCtr;
@@ -109,10 +109,10 @@ static void room_101_init2() {
global[g131] = 0;
global[g141] = 0;
- scratch._a6 = kernel_run_animation_disp('r', 3, 0);
- kernel_position_anim(scratch._a6, 123, 14, 69, 7);
- scratch._a4 = kernel_run_animation_disp('e', 1, 0);
- kernel_position_anim(scratch._a4, 194, 145, 75, 4);
+ scratch._russell = kernel_run_animation_disp('r', 3, 0);
+ kernel_position_anim(scratch._russell, 123, 14, 69, 7);
+ scratch._edgar = kernel_run_animation_disp('e', 1, 0);
+ kernel_position_anim(scratch._edgar, 194, 145, 75, 4);
global[g009] = -1;
global_midi_play(8);
@@ -137,10 +137,10 @@ static void room_101_init3() {
global[g131] = 0;
global[g141] = 0;
- scratch._a6 = kernel_run_animation_disp('r', 3, 0);
- kernel_position_anim(scratch._a6, 123, 134, 69, 7);
- scratch._a4 = kernel_run_animation_disp('e', 1, 0);
- kernel_position_anim(scratch._a4, 194, 145, 75, 4);
+ scratch._russell = kernel_run_animation_disp('r', 3, 0);
+ kernel_position_anim(scratch._russell, 123, 134, 69, 7);
+ scratch._edgar = kernel_run_animation_disp('e', 1, 0);
+ kernel_position_anim(scratch._edgar, 194, 145, 75, 4);
if (previous_room != KERNEL_RESTORING_GAME) {
player.x = 96;
@@ -151,8 +151,8 @@ static void room_101_init3() {
if (previous_room == KERNEL_RESTORING_GAME) {
global[g131] = -1;
global[g141] = -1;
- kernel_reset_animation(scratch._a4, 2);
- kernel_reset_animation(scratch._a6, 2);
+ kernel_reset_animation(scratch._edgar, 2);
+ kernel_reset_animation(scratch._russell, 2);
global[g133] = 0;
global[g143] = 0;
player.commands_allowed = -1;
@@ -176,8 +176,8 @@ static void room_101_init3() {
if (previous_room == 199) {
global[g131] = -1;
global[g141] = -1;
- kernel_reset_animation(scratch._a4, 2);
- kernel_reset_animation(scratch._a6, 2);
+ kernel_reset_animation(scratch._edgar, 2);
+ kernel_reset_animation(scratch._russell, 2);
global[g133] = 0;
global[g143] = 0;
restore_player();
@@ -189,8 +189,8 @@ static void room_101_init3() {
if (previous_room == 205) {
global[g131] = -1;
global[g141] = -1;
- kernel_reset_animation(scratch._a4, 2);
- kernel_reset_animation(scratch._a6, 2);
+ kernel_reset_animation(scratch._edgar, 2);
+ kernel_reset_animation(scratch._russell, 2);
global[g133] = 0;
global[g143] = 0;
player.commands_allowed = 0;
@@ -204,8 +204,8 @@ static void room_101_init3() {
global[g131] = -1;
global[g141] = -1;
- kernel_reset_animation(scratch._a4, 2);
- kernel_reset_animation(scratch._a6, 2);
+ kernel_reset_animation(scratch._edgar, 2);
+ kernel_reset_animation(scratch._russell, 2);
global[g133] = 0;
global[g143] = 0;
player.commands_allowed = -1;
@@ -264,6 +264,7 @@ static void room_101_init() {
switch (flags[0]) {
case -3:
+ // Intro
room_101_init1();
break;
case -2:
@@ -271,9 +272,11 @@ static void room_101_init() {
room_101_init2();
break;
case 1:
+ // Start of game
room_101_init2();
break;
default:
+ // Restoring savegame
room_101_init3();
break;
}
@@ -653,8 +656,8 @@ static void room_101_daemon() {
case 49:
kernel_abort_animation(scratch._a8);
scratch._b2 = 0;
- kernel_reset_animation(scratch._a4, 0);
- kernel_reset_animation(scratch._a6, 0);
+ kernel_reset_animation(scratch._edgar, 0);
+ kernel_reset_animation(scratch._russell, 0);
global[g133] = 1;
global[g143] = 1;
inter_move_object(cogs, PLAYER);
@@ -664,7 +667,7 @@ static void room_101_daemon() {
aainfo[4]._active = -1;
aainfo[4]._val3 = 14;
scratch._a2 = 4;
- kernel_synch(KERNEL_ANIM, scratch._a4, KERNEL_ANIM, aa[4]);
+ kernel_synch(KERNEL_ANIM, scratch._edgar, KERNEL_ANIM, aa[4]);
break;
case 50:
aainfo[4]._frame = 8;
@@ -678,8 +681,8 @@ static void room_101_daemon() {
case 59:
kernel_abort_animation(scratch._a8);
scratch._b2 = 0;
- kernel_reset_animation(scratch._a4, 0);
- kernel_reset_animation(scratch._a6, 0);
+ kernel_reset_animation(scratch._edgar, 0);
+ kernel_reset_animation(scratch._russell, 0);
global[g133] = 1;
global[g143] = 1;
inter_move_object(planks, PLAYER);
@@ -689,7 +692,7 @@ static void room_101_daemon() {
aainfo[4]._active = -1;
aainfo[4]._val3 = 15;
scratch._a2 = 4;
- kernel_synch(KERNEL_ANIM, scratch._a4, KERNEL_ANIM, aa[4]);
+ kernel_synch(KERNEL_ANIM, scratch._edgar, KERNEL_ANIM, aa[4]);
break;
case 69:
global[g154] = 0;
@@ -751,8 +754,8 @@ static void room_101_daemon() {
aa[1] = kernel_run_animation(kernel_name('E', 1), 102);
aainfo[1]._active = -1;
scratch._a0 = 1;
- kernel_reset_animation(scratch._a4, 0);
- kernel_synch(KERNEL_ANIM, aa[1], KERNEL_ANIM, scratch._a4);
+ kernel_reset_animation(scratch._edgar, 0);
+ kernel_synch(KERNEL_ANIM, aa[1], KERNEL_ANIM, scratch._edgar);
global[g133] = 1;
}
break;
@@ -762,8 +765,8 @@ static void room_101_daemon() {
aa[2] = kernel_run_animation(kernel_name('R', 1), 101);
aainfo[2]._active = -1;
scratch._9e = 2;
- kernel_reset_animation(scratch._a6, 0);
- kernel_synch(KERNEL_ANIM, aa[2], KERNEL_ANIM, scratch._a6);
+ kernel_reset_animation(scratch._russell, 0);
+ kernel_synch(KERNEL_ANIM, aa[2], KERNEL_ANIM, scratch._russell);
global[g143] = 1;
}
break;
@@ -815,8 +818,8 @@ static void room_101_daemon() {
case 6:
kernel_abort_animation(aa[6]);
global[g131] = -1;
- kernel_reset_animation(scratch._a4, 1);
- kernel_synch(KERNEL_ANIM, scratch._a4, KERNEL_NOW, 0);
+ kernel_reset_animation(scratch._edgar, 1);
+ kernel_synch(KERNEL_ANIM, scratch._edgar, KERNEL_NOW, 0);
global[g133] = 0;
aa[6] = kernel_run_animation(kernel_name('b', 4), 104);
aainfo[6]._active = -1;
@@ -863,10 +866,10 @@ static void room_101_daemon() {
aainfo[4]._active = 0;
global[g131] = -1;
global[g141] = -1;
- kernel_reset_animation(scratch._a4, 1);
- kernel_synch(KERNEL_ANIM, scratch._a4, KERNEL_NOW, 0);
- kernel_reset_animation(scratch._a6, 1);
- kernel_synch(KERNEL_ANIM, scratch._a6, KERNEL_NOW, 0);
+ kernel_reset_animation(scratch._edgar, 1);
+ kernel_synch(KERNEL_ANIM, scratch._edgar, KERNEL_NOW, 0);
+ kernel_reset_animation(scratch._russell, 1);
+ kernel_synch(KERNEL_ANIM, scratch._russell, KERNEL_NOW, 0);
player.walker_visible = true;
global[g133] = 0;
global[g143] = 0;
@@ -904,8 +907,8 @@ static void room_101_daemon() {
break;
case 109:
- kernel_reset_animation(scratch._a4, 0);
- kernel_reset_animation(scratch._a6, 0);
+ kernel_reset_animation(scratch._edgar, 0);
+ kernel_reset_animation(scratch._russell, 0);
global[g133] = 1;
global[g143] = 1;
inter_move_object(twine, PLAYER);
@@ -915,7 +918,7 @@ static void room_101_daemon() {
aainfo[4]._active = -1;
aainfo[4]._val3 = 13;
scratch._a2 = 4;
- kernel_synch(KERNEL_ANIM, scratch._a4, KERNEL_ANIM, aa[4]);
+ kernel_synch(KERNEL_ANIM, scratch._edgar, KERNEL_ANIM, aa[4]);
digi_play_build(101, 'e', 3, 1);
scratch._aa = 0;
break;
@@ -932,8 +935,8 @@ static void room_101_daemon() {
if (aainfo[7]._val3 == 0) {
aainfo[7]._active = 0;
global[g141] = -1;
- kernel_reset_animation(scratch._a6, 1);
- kernel_synch(KERNEL_ANIM, scratch._a6, KERNEL_NOW, 0);
+ kernel_reset_animation(scratch._russell, 1);
+ kernel_synch(KERNEL_ANIM, scratch._russell, KERNEL_NOW, 0);
global[g143] = 0;
global[g009] = 0;
player.commands_allowed = -1;
@@ -951,10 +954,10 @@ static void room_101_daemon() {
aainfo[0]._active = 0;
global[g131] = -1;
global[g141] = -1;
- kernel_reset_animation(scratch._a4, 1);
- kernel_synch(KERNEL_ANIM, scratch._a4, KERNEL_NOW, 0);
- kernel_reset_animation(scratch._a6, 1);
- kernel_synch(KERNEL_ANIM, scratch._a6, KERNEL_NOW, 0);
+ kernel_reset_animation(scratch._edgar, 1);
+ kernel_synch(KERNEL_ANIM, scratch._edgar, KERNEL_NOW, 0);
+ kernel_reset_animation(scratch._russell, 1);
+ kernel_synch(KERNEL_ANIM, scratch._russell, KERNEL_NOW, 0);
player.walker_visible = true;
global[g133] = 0;
global[g143] = 0;
@@ -965,8 +968,8 @@ static void room_101_daemon() {
case 101:
kernel_abort_animation(aa[scratch._9e]);
aainfo[scratch._9e]._active = 0;
- kernel_reset_animation(scratch._a6, 1);
- kernel_synch(KERNEL_ANIM, scratch._a6, KERNEL_NOW, 0);
+ kernel_reset_animation(scratch._russell, 1);
+ kernel_synch(KERNEL_ANIM, scratch._russell, KERNEL_NOW, 0);
global[g143] = 0;
player.commands_allowed = -1;
break;
@@ -974,8 +977,8 @@ static void room_101_daemon() {
case 102:
kernel_abort_animation(aa[scratch._a0]);
aainfo[scratch._a0]._active = 0;
- kernel_reset_animation(scratch._a4, 1);
- kernel_synch(KERNEL_ANIM, scratch._a4, KERNEL_NOW, 0);
+ kernel_reset_animation(scratch._edgar, 1);
+ kernel_synch(KERNEL_ANIM, scratch._edgar, KERNEL_NOW, 0);
global[g133] = 0;
player.commands_allowed = -1;
break;
@@ -1000,8 +1003,8 @@ static void room_101_daemon() {
}
if (flags[0] != -3) {
- global_anim1(1, scratch._a4, global[g131], &global[g132]);
- global_anim2(3, scratch._a6, global[g141], &global[g142]);
+ global_anim1(1, scratch._edgar, global[g131], &global[g132]);
+ global_anim2(3, scratch._russell, global[g141], &global[g142]);
if (mouse_hidden != 0)
mouse_show();
}
@@ -1098,8 +1101,8 @@ void room_101_synchronize(Common::Serializer &s) {
s.syncAsSint16LE(scratch._9e);
s.syncAsSint16LE(scratch._a0);
s.syncAsSint16LE(scratch._a2);
- s.syncAsSint16LE(scratch._a4);
- s.syncAsSint16LE(scratch._a6);
+ s.syncAsSint16LE(scratch._edgar);
+ s.syncAsSint16LE(scratch._russell);
s.syncAsSint16LE(scratch._a8);
s.syncAsSint16LE(scratch._aa);
s.syncAsSint16LE(scratch._startCutsceneCtr);
Commit: ce0a3a333bd27b82b6fc9627bdb6e2131eaa752a
https://github.com/scummvm/scummvm/commit/ce0a3a333bd27b82b6fc9627bdb6e2131eaa752a
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2026-06-25T20:19:21+10:00
Commit Message:
MADS: FOREST: Add complete words list, remap player_parse calls to use it
Changed paths:
engines/mads/madsv2/forest/global.cpp
engines/mads/madsv2/forest/mads/words.h
engines/mads/madsv2/forest/rooms/room101.cpp
engines/mads/madsv2/forest/rooms/room103.cpp
engines/mads/madsv2/forest/rooms/room104.cpp
engines/mads/madsv2/forest/rooms/room106.cpp
engines/mads/madsv2/forest/rooms/room199.cpp
engines/mads/madsv2/forest/rooms/room201.cpp
engines/mads/madsv2/forest/rooms/room203.cpp
engines/mads/madsv2/forest/rooms/room204.cpp
engines/mads/madsv2/forest/rooms/room205.cpp
engines/mads/madsv2/forest/rooms/room210.cpp
engines/mads/madsv2/forest/rooms/room211.cpp
engines/mads/madsv2/forest/rooms/room220.cpp
engines/mads/madsv2/forest/rooms/room301.cpp
engines/mads/madsv2/forest/rooms/room302.cpp
engines/mads/madsv2/forest/rooms/room303.cpp
engines/mads/madsv2/forest/rooms/room304.cpp
engines/mads/madsv2/forest/rooms/room305.cpp
engines/mads/madsv2/forest/rooms/room306.cpp
engines/mads/madsv2/forest/rooms/room307.cpp
engines/mads/madsv2/forest/rooms/room308.cpp
engines/mads/madsv2/forest/rooms/room321.cpp
engines/mads/madsv2/forest/rooms/room322.cpp
engines/mads/madsv2/forest/rooms/room401.cpp
engines/mads/madsv2/forest/rooms/room402.cpp
engines/mads/madsv2/forest/rooms/room403.cpp
engines/mads/madsv2/forest/rooms/room404.cpp
engines/mads/madsv2/forest/rooms/room405.cpp
engines/mads/madsv2/forest/rooms/room501.cpp
diff --git a/engines/mads/madsv2/forest/global.cpp b/engines/mads/madsv2/forest/global.cpp
index 9c4c62e91c5..21b0c87a507 100644
--- a/engines/mads/madsv2/forest/global.cpp
+++ b/engines/mads/madsv2/forest/global.cpp
@@ -30,6 +30,7 @@
#include "mads/madsv2/core/kernel.h"
#include "mads/madsv2/forest/midi.h"
#include "mads/madsv2/core/pal.h"
+#include "mads/madsv2/forest/mads/words.h"
#include "mads/madsv2/forest/global.h"
#include "mads/madsv2/forest/extra.h"
@@ -928,7 +929,7 @@ void global_error_code() {
int16 randVal = imath_random(1, 1000);
int16 text_id = 0;
- if (player_parse(4, 0)) {
+ if (player_parse(words_take, 0)) {
if (player_has(object_named(player_main_noun)) && player.main_object_source != 4) {
text_id = 25;
} else {
@@ -936,19 +937,19 @@ void global_error_code() {
else if (randVal <= 666) text_id = 2;
else text_id = 3;
}
- } else if (player_parse(5, 0)) {
+ } else if (player_parse(words_push, 0)) {
text_id = (randVal < 750) ? 4 : 5;
- } else if (player_parse(10, 0)) {
+ } else if (player_parse(words_pull, 0)) {
text_id = (randVal < 750) ? 6 : 7;
- } else if (player_parse(6, 0)) {
+ } else if (player_parse(words_open, 0)) {
if (randVal <= 500) text_id = 8;
else if (randVal <= 750) text_id = 9;
else text_id = 10;
- } else if (player_parse(11, 0)) {
+ } else if (player_parse(words_close, 0)) {
if (randVal <= 500) text_id = 11;
else if (randVal <= 750) text_id = 12;
else text_id = 13;
- } else if (player_parse(7, 0)) {
+ } else if (player_parse(words_put, 0)) {
if (player_has(object_named(player_main_noun))) {
text_id = 26;
} else if (player.main_object_source == 4 && player.second_object_source == 4) {
@@ -956,9 +957,9 @@ void global_error_code() {
} else {
text_id = (randVal < 500) ? 14 : 15;
}
- } else if (player_parse(8, 0)) {
+ } else if (player_parse(words_talk_to, 0)) {
text_id = (randVal <= 500) ? 16 : 17;
- } else if (player_parse(9, 0)) {
+ } else if (player_parse(words_give, 0)) {
if (player_has(object_named(player_main_noun))) {
text_id = 27;
} else if (player.main_object_source == 4 && player.second_object_source == 4) {
@@ -966,18 +967,18 @@ void global_error_code() {
} else {
text_id = 18;
}
- } else if (player_parse(12, 0)) {
+ } else if (player_parse(words_throw, 0)) {
if (player_has(object_named(player_main_noun))) {
text_id = 19;
} else {
text_id = 28;
}
- } else if (player_parse(3, 0)) {
+ } else if (player_parse(words_look, 0)) {
object_named(player_main_noun);
if (randVal <= 333) text_id = 20;
else if (randVal <= 666) text_id = 21;
else text_id = 22;
- } else if (!player_parse(13, 0) && !player_parse(160, 0)) {
+ } else if (!player_parse(words_walk_to, 0) && !player_parse(words_walk_down, 0)) {
text_id = (randVal < 500) ? 23 : 24;
}
diff --git a/engines/mads/madsv2/forest/mads/words.h b/engines/mads/madsv2/forest/mads/words.h
index 199d01ec063..5de407c1596 100644
--- a/engines/mads/madsv2/forest/mads/words.h
+++ b/engines/mads/madsv2/forest/mads/words.h
@@ -29,7 +29,194 @@ namespace MADSV2 {
namespace Forest {
enum {
- dummy = 0
+ words_game = 1,
+ words_qsave = 2,
+ words_look = 3,
+ words_take = 4,
+ words_push = 5,
+ words_open = 6,
+ words_put = 7,
+ words_talk_to = 8,
+ words_give = 9,
+ words_pull = 10,
+ words_close = 11,
+ words_throw = 12,
+ words_walk_to = 13,
+ words_room_101 = 15,
+ words_room_104 = 16,
+ words_room_106 = 17,
+ words_room_107 = 18,
+ words_room_110 = 19,
+ words_room_150 = 20,
+ words_room_201 = 21,
+ words_room_202 = 22,
+ words_room_203 = 23,
+ words_room_204 = 24,
+ words_room_205 = 25,
+ words_room_209 = 26,
+ words_room_210 = 27,
+ words_room_210h = 28,
+ words_room_211 = 29,
+ words_room_220 = 30,
+ words_room_221 = 31,
+ words_room_250 = 32,
+ words_room_251 = 33,
+ words_room_301 = 34,
+ words_room_302 = 35,
+ words_room_303 = 36,
+ words_room_304 = 37,
+ words_room_305 = 38,
+ words_room_306 = 39,
+ words_room_307 = 40,
+ words_room_308 = 41,
+ words_room_320 = 42,
+ words_room_321 = 43,
+ words_room_322 = 44,
+ words_room_350 = 45,
+ words_room_401 = 46,
+ words_room_402 = 47,
+ words_room_403 = 48,
+ words_room_404 = 49,
+ words_room_405 = 50,
+ words_room_406 = 51,
+ words_room_410 = 52,
+ words_room_420 = 53,
+ words_room_450 = 54,
+ words_room_501 = 55,
+ words_room_502 = 56,
+ words_room_503 = 57,
+ words_room_509 = 58,
+ words_room_510 = 59,
+ words_room_511 = 60,
+ words_room_520 = 61,
+ words_room_521 = 62,
+ words_room_550 = 63,
+ words_owl_tree = 64,
+ words_abi_bubble = 65,
+ words_all_bubble = 66,
+ words_attack = 67,
+ words_bedroom = 68,
+ words_bird_figurine = 69,
+ words_birdcall = 70,
+ words_book = 71,
+ words_bookcase = 72,
+ words_books = 73,
+ words_bookshelf = 74,
+ words_bush = 75,
+ words_carve_up = 76,
+ words_chicory = 77,
+ words_click_on = 78,
+ words_cliff = 79,
+ words_climb_down = 80,
+ words_climb_up = 81,
+ words_comfrey = 82,
+ words_dandelion = 83,
+ words_door = 84,
+ words_door_1 = 85,
+ words_door_2 = 86,
+ words_door_3 = 87,
+ words_door_4 = 88,
+ words_door_5 = 89,
+ words_down_page = 90,
+ words_eat = 91,
+ words_edge_of_cliff = 92,
+ words_elm_leaves = 93,
+ words_exit_journal = 94,
+ words_eyebright = 95,
+ words_feather = 96,
+ words_five = 97,
+ words_floor = 98,
+ words_flowers = 99,
+ words_forest = 100,
+ words_forked_stick = 101,
+ words_four = 102,
+ words_foxglove = 103,
+ words_frog = 104,
+ words_gears = 105,
+ words_ground = 106,
+ words_hole = 107,
+ words_invoke = 108,
+ words_ivy_leaf = 109,
+ words_journal = 110,
+ words_laboratory = 111,
+ words_leaves = 112,
+ words_lily_pad = 113,
+ words_look_at = 114,
+ words_make_noise = 115,
+ words_map = 116,
+ words_marsh = 117,
+ words_mint = 118,
+ words_moss = 119,
+ words_mushroom = 120,
+ words_needle = 121,
+ words_nothing = 122,
+ words_one = 123,
+ words_overhanging_grass = 124,
+ words_pebbles = 125,
+ words_pick_up = 126,
+ words_plant = 127,
+ words_polish = 128,
+ words_pond = 129,
+ words_poster = 130,
+ words_primrose = 131,
+ words_reeds = 132,
+ words_river = 133,
+ words_rocks = 134,
+ words_rope = 135,
+ words_rub = 136,
+ words_rubber_band = 137,
+ words_sanctuary_woods = 138,
+ words_shieldstone = 139,
+ words_signet_ring = 140,
+ words_six = 141,
+ words_snapdragon = 142,
+ words_spider_silk = 143,
+ words_stairs = 144,
+ words_sticks = 145,
+ words_sunflower = 146,
+ words_sword = 147,
+ words_table = 148,
+ words_telescope = 149,
+ words_thistle = 150,
+ words_three = 151,
+ words_thrust = 152,
+ words_tie = 153,
+ words_twine = 154,
+ words_two = 155,
+ words_up_page = 156,
+ words_use = 157,
+ words_vine_weed = 158,
+ words_walk = 159,
+ words_walk_down = 160,
+ words_wear = 161,
+ words_weasel = 162,
+ words_web = 163,
+ words_wood = 164,
+ words_woods = 165,
+ words_wrench = 166,
+ words_y_stick = 167,
+ words_abigail = 168,
+ words_edgar = 169,
+ words_russel = 170,
+ words_snapdragon2 = 171,
+ words_lungwort = 172,
+ words_grass = 173,
+ words_fwt = 174,
+ words_dragon1 = 175,
+ words_dragon2 = 176,
+ words_nest = 177,
+ words_paint_can = 178,
+ words_dam = 179,
+ words_brown = 180,
+ words_turtle = 181,
+ words_dragonfly = 182,
+ words_fenwick = 183,
+ words_blue_bird = 184,
+ words_black_bird = 185,
+ words_lever = 186,
+ words_rock = 187,
+ words_used_it = 188,
+ words_tail = 189
};
} // namespace Forest
diff --git a/engines/mads/madsv2/forest/rooms/room101.cpp b/engines/mads/madsv2/forest/rooms/room101.cpp
index cfdeb4be396..cbd9aaf646a 100644
--- a/engines/mads/madsv2/forest/rooms/room101.cpp
+++ b/engines/mads/madsv2/forest/rooms/room101.cpp
@@ -1025,10 +1025,10 @@ static void room_101_daemon() {
}
static void room_101_pre_parser() {
- if (player_parse(13, 16, 0))
+ if (player_parse(words_walk_to, words_room_104, 0))
player.walk_off_edge_to_room = 104;
- if (player_parse(13, 17, 0))
+ if (player_parse(words_walk_to, words_room_106, 0))
player.walk_off_edge_to_room = 106;
}
@@ -1044,35 +1044,35 @@ static void room_101_parser() {
goto handled;
}
- if (player_parse(114, 116, 0)) {
+ if (player_parse(words_look_at, words_map, 0)) {
player.commands_allowed = 0;
global[g145] = -1;
scratch._98 = 2;
goto handled;
}
- if (player_parse(126, 154, 0)) {
+ if (player_parse(words_pick_up, words_twine, 0)) {
player.commands_allowed = 0;
global[g150] = -1;
scratch._9a = 13;
goto handled;
}
- if (player_parse(126, 105, 0)) {
+ if (player_parse(words_pick_up, words_gears, 0)) {
player.commands_allowed = 0;
global[g150] = -1;
scratch._9a = 14;
goto handled;
}
- if (player_parse(126, 164, 0)) {
+ if (player_parse(words_pick_up, words_wood, 0)) {
player.commands_allowed = 0;
global[g150] = -1;
scratch._9a = 15;
goto handled;
}
- if (player_parse(13, 149, 0)) {
+ if (player_parse(words_walk_to, words_telescope, 0)) {
player.commands_allowed = 0;
player.walker_visible = false;
kernel.trigger_setup_mode = 1;
diff --git a/engines/mads/madsv2/forest/rooms/room103.cpp b/engines/mads/madsv2/forest/rooms/room103.cpp
index 99c8fbebc78..4cacbcc96eb 100644
--- a/engines/mads/madsv2/forest/rooms/room103.cpp
+++ b/engines/mads/madsv2/forest/rooms/room103.cpp
@@ -395,7 +395,7 @@ static void room_103_daemon() {
}
static void room_103_pre_parser() {
- if (player_parse(13, 15, 0))
+ if (player_parse(words_walk_to, words_room_101, 0))
player.walk_off_edge_to_room = 101;
}
diff --git a/engines/mads/madsv2/forest/rooms/room104.cpp b/engines/mads/madsv2/forest/rooms/room104.cpp
index bd92745d46b..f5c776099c8 100644
--- a/engines/mads/madsv2/forest/rooms/room104.cpp
+++ b/engines/mads/madsv2/forest/rooms/room104.cpp
@@ -899,7 +899,7 @@ static void room_104_daemon() {
}
static void room_104_pre_parser() {
- if (player_parse(13, 15, 0)) {
+ if (player_parse(words_walk_to, words_room_101, 0)) {
global[g009] = 0;
midi_stop();
player.walk_off_edge_to_room = 101;
@@ -917,21 +917,21 @@ static void room_104_parser() {
goto handled;
}
- if (player_parse(114, 116, 0)) {
+ if (player_parse(words_look_at, words_map, 0)) {
player.commands_allowed = 0;
global[g145] = -1;
scratch._8e = 2;
goto handled;
}
- if (player_parse(126, 99, 0)) {
+ if (player_parse(words_pick_up, words_flowers, 0)) {
player.commands_allowed = 0;
global[g135] = -1;
scratch._8c = 3;
goto handled;
}
- if (player_parse(78, 119, 0)) {
+ if (player_parse(words_click_on, words_moss, 0)) {
player.commands_allowed = 0;
global[g135] = -1;
scratch._8c = 3;
diff --git a/engines/mads/madsv2/forest/rooms/room106.cpp b/engines/mads/madsv2/forest/rooms/room106.cpp
index 406817c2d25..c7b8475ea3a 100644
--- a/engines/mads/madsv2/forest/rooms/room106.cpp
+++ b/engines/mads/madsv2/forest/rooms/room106.cpp
@@ -696,7 +696,7 @@ static void room_106_daemon() {
}
static void room_106_pre_parser() {
- if (player_parse(13, 21, 0))
+ if (player_parse(words_walk_to, words_room_201, 0))
player.walk_off_edge_to_room = 201;
}
@@ -708,19 +708,19 @@ static void room_106_parser() {
return;
}
- if (player_parse(118, 0)) {
+ if (player_parse(words_mint, 0)) {
global[g135] = -1;
scratch._a2 = 2;
player.commands_allowed = 0;
}
- if (player_parse(131, 0)) {
+ if (player_parse(words_primrose, 0)) {
global[g135] = -1;
scratch._a2 = 1;
player.commands_allowed = 0;
}
- if (player_parse(125, 0)) {
+ if (player_parse(words_pebbles, 0)) {
global[g154] = 2;
player.commands_allowed = 0;
player.walker_visible = false;
@@ -734,13 +734,13 @@ static void room_106_parser() {
return;
}
- if (player_parse(13, 15, 0)) {
+ if (player_parse(words_walk_to, words_room_101, 0)) {
new_room = 101;
player.command_ready = 0;
return;
}
- if (player_parse(27, 84, 0) && global[g022] == 0) {
+ if (player_parse(words_room_210, words_door, 0) && global[g022] == 0) {
global[g154] = 2;
player.commands_allowed = 0;
player.walker_visible = false;
@@ -756,7 +756,7 @@ static void room_106_parser() {
return;
}
- if (player_parse(13, 27, 0)) {
+ if (player_parse(words_walk_to, words_room_210, 0)) {
global[g150] = -1;
scratch._90 = 6;
player.commands_allowed = 0;
@@ -769,7 +769,7 @@ static void room_106_parser() {
return;
}
- if (player_parse(114, 116, 0)) {
+ if (player_parse(words_look_at, words_map, 0)) {
player.commands_allowed = 0;
global[g145] = -1;
scratch._8e = 2;
@@ -777,7 +777,7 @@ static void room_106_parser() {
return;
}
- if (player_parse(126, 99, 0) || player_parse(78, 119, 0)) {
+ if (player_parse(words_pick_up, words_flowers, 0) || player_parse(words_click_on, words_moss, 0)) {
player.commands_allowed = 0;
global[g135] = -1;
scratch._8c = 3;
diff --git a/engines/mads/madsv2/forest/rooms/room199.cpp b/engines/mads/madsv2/forest/rooms/room199.cpp
index 9398644b830..e9ead4d331b 100644
--- a/engines/mads/madsv2/forest/rooms/room199.cpp
+++ b/engines/mads/madsv2/forest/rooms/room199.cpp
@@ -20,6 +20,7 @@
*/
#include "mads/madsv2/forest/rooms/section1.h"
+#include "mads/madsv2/forest/mads/words.h"
#include "mads/madsv2/forest/digi.h"
#include "mads/madsv2/forest/global.h"
#include "mads/madsv2/forest/journal.h"
@@ -497,36 +498,36 @@ static void room_199_parser1() {
}
static void room_199_parser() {
- if (player_parse(174, 121, 0)) { digi_play_build(521, 'e', 6, 2); goto handled; }
- if (player_parse(174, 164, 0)) { digi_play_build(521, 'e', 10, 2); goto handled; }
- if (player_parse(174, 112, 0)) { digi_play_build(521, 'e', 3, 2); goto handled; }
- if (player_parse(174, 163, 0)) { digi_play_build(521, 'e', 8, 2); goto handled; }
- if (player_parse(174, 158, 0)) { digi_play_build(521, 'e', 9, 2); goto handled; }
- if (player_parse(174, 154, 0)) { digi_play_build(521, 'e', 20, 2); goto handled; }
- if (player_parse(174, 96, 0)) { digi_play_build(521, 'e', 5, 2); goto handled; }
- if (player_parse(174, 132, 0)) { digi_play_build(521, 'e', 2, 2); goto handled; }
- if (player_parse(174, 113, 0)) { digi_play_build(521, 'e', 7, 2); goto handled; }
- if (player_parse(174, 105, 0)) { digi_play_build(521, 'e', 4, 2); goto handled; }
- if (player_parse(174, 145, 0)) { digi_play_build(521, 'e', 21, 2); goto handled; }
-
- if (player_parse(99, 82, 0)) { digi_play_build_ii('e', 9, 2); goto handled; }
- if (player_parse(99, 131, 0)) { digi_play_build_ii('e', 5, 2); goto handled; }
- if (player_parse(99, 142, 0)) { digi_play_build_ii('e', 3, 2); goto handled; }
- if (player_parse(99, 146, 0)) { digi_play_build_ii('e', 6, 2); goto handled; }
- if (player_parse(99, 150, 0)) { digi_play_build_ii('e', 8, 2); goto handled; }
- if (player_parse(99, 95, 0)) { digi_play_build_ii('e', 11, 2); goto handled; }
- if (player_parse(99, 118, 0)) { digi_play_build_ii('e', 1, 2); goto handled; }
- if (player_parse(99, 103, 0)) { digi_play_build_ii('e', 4, 2); goto handled; }
- if (player_parse(99, 83, 0)) { digi_play_build_ii('e', 7, 2); goto handled; }
- if (player_parse(99, 172, 0)) { digi_play_build_ii('e', 12, 2); goto handled; }
- if (player_parse(99, 77, 0)) { digi_play_build_ii('e', 2, 2); goto handled; }
-
- if (player_parse(94, 0)) {
+ if (player_parse(words_fwt, words_needle, 0)) { digi_play_build(521, 'e', 6, 2); goto handled; }
+ if (player_parse(words_fwt, words_wood, 0)) { digi_play_build(521, 'e', 10, 2); goto handled; }
+ if (player_parse(words_fwt, words_leaves, 0)) { digi_play_build(521, 'e', 3, 2); goto handled; }
+ if (player_parse(words_fwt, words_web, 0)) { digi_play_build(521, 'e', 8, 2); goto handled; }
+ if (player_parse(words_fwt, words_vine_weed, 0)) { digi_play_build(521, 'e', 9, 2); goto handled; }
+ if (player_parse(words_fwt, words_twine, 0)) { digi_play_build(521, 'e', 20, 2); goto handled; }
+ if (player_parse(words_fwt, words_feather, 0)) { digi_play_build(521, 'e', 5, 2); goto handled; }
+ if (player_parse(words_fwt, words_reeds, 0)) { digi_play_build(521, 'e', 2, 2); goto handled; }
+ if (player_parse(words_fwt, words_lily_pad, 0)) { digi_play_build(521, 'e', 7, 2); goto handled; }
+ if (player_parse(words_fwt, words_gears, 0)) { digi_play_build(521, 'e', 4, 2); goto handled; }
+ if (player_parse(words_fwt, words_sticks, 0)) { digi_play_build(521, 'e', 21, 2); goto handled; }
+
+ if (player_parse(words_flowers, words_comfrey, 0)) { digi_play_build_ii('e', 9, 2); goto handled; }
+ if (player_parse(words_flowers, words_primrose, 0)) { digi_play_build_ii('e', 5, 2); goto handled; }
+ if (player_parse(words_flowers, words_snapdragon, 0)) { digi_play_build_ii('e', 3, 2); goto handled; }
+ if (player_parse(words_flowers, words_sunflower, 0)) { digi_play_build_ii('e', 6, 2); goto handled; }
+ if (player_parse(words_flowers, words_thistle, 0)) { digi_play_build_ii('e', 8, 2); goto handled; }
+ if (player_parse(words_flowers, words_eyebright, 0)) { digi_play_build_ii('e', 11, 2); goto handled; }
+ if (player_parse(words_flowers, words_mint, 0)) { digi_play_build_ii('e', 1, 2); goto handled; }
+ if (player_parse(words_flowers, words_foxglove, 0)) { digi_play_build_ii('e', 4, 2); goto handled; }
+ if (player_parse(words_flowers, words_dandelion, 0)) { digi_play_build_ii('e', 7, 2); goto handled; }
+ if (player_parse(words_flowers, words_lungwort, 0)) { digi_play_build_ii('e', 12, 2); goto handled; }
+ if (player_parse(words_flowers, words_chicory, 0)) { digi_play_build_ii('e', 2, 2); goto handled; }
+
+ if (player_parse(words_exit_journal, 0)) {
leave_journal();
goto handled;
}
- if (player_parse(156, 0)) {
+ if (player_parse(words_up_page, 0)) {
if (aainfo[2]._active != 3) {
aainfo[2]._active = aainfo[2]._frame;
aainfo[2]._frame++;
@@ -536,7 +537,7 @@ static void room_199_parser() {
goto handled;
}
- if (player_parse(90, 0)) {
+ if (player_parse(words_down_page, 0)) {
if (aainfo[2]._active != 0) {
aainfo[2]._active = aainfo[2]._frame;
aainfo[2]._frame--;
diff --git a/engines/mads/madsv2/forest/rooms/room201.cpp b/engines/mads/madsv2/forest/rooms/room201.cpp
index a9178a34523..c8f757ec789 100644
--- a/engines/mads/madsv2/forest/rooms/room201.cpp
+++ b/engines/mads/madsv2/forest/rooms/room201.cpp
@@ -20,6 +20,7 @@
*/
#include "mads/madsv2/forest/rooms/section2.h"
+#include "mads/madsv2/forest/mads/words.h"
#include "mads/madsv2/forest/digi.h"
#include "mads/madsv2/forest/global.h"
#include "mads/madsv2/forest/journal.h"
@@ -568,9 +569,9 @@ static void room_201_daemon() {
}
static void room_201_pre_parser() {
- if (player_parse(13, 17, 0))
+ if (player_parse(words_walk_to, words_room_106, 0))
player.walk_off_edge_to_room = 106;
- if (player_parse(13, 23, 0))
+ if (player_parse(words_walk_to, words_room_203, 0))
player.walk_off_edge_to_room = 203;
}
@@ -581,7 +582,7 @@ static void room_201_parser() {
goto handled;
}
- if (player_parse(93, 0)) {
+ if (player_parse(words_elm_leaves, 0)) {
global[g154] = 2;
player.commands_allowed = 0;
player.walker_visible = false;
@@ -594,7 +595,7 @@ static void room_201_parser() {
goto handled;
}
- if (player_parse(145, 0)) {
+ if (player_parse(words_sticks, 0)) {
global[g154] = 2;
player.commands_allowed = 0;
player.walker_visible = false;
@@ -607,7 +608,7 @@ static void room_201_parser() {
goto handled;
}
- if (player_parse(114, 77, 0)) {
+ if (player_parse(words_look_at, words_chicory, 0)) {
player.commands_allowed = 0;
global[g135] = -1;
scratch._8c = 5;
@@ -615,7 +616,7 @@ static void room_201_parser() {
goto handled;
}
- if (player_parse(114, 103, 0)) {
+ if (player_parse(words_look_at, words_foxglove, 0)) {
player.commands_allowed = 0;
global[g135] = -1;
scratch._8c = 5;
@@ -628,21 +629,21 @@ static void room_201_parser() {
goto handled;
}
- if (player_parse(114, 116, 0)) {
+ if (player_parse(words_look_at, words_map, 0)) {
player.commands_allowed = 0;
global[g145] = -1;
scratch._8e = 2;
goto handled;
}
- if (player_parse(99, 0)) {
+ if (player_parse(words_flowers, 0)) {
player.commands_allowed = 0;
global[g135] = -1;
scratch._8c = 3;
goto handled;
}
- if (player_parse(78, 119, 0)) {
+ if (player_parse(words_click_on, words_moss, 0)) {
player.commands_allowed = 0;
global[g135] = -1;
scratch._8c = 3;
diff --git a/engines/mads/madsv2/forest/rooms/room203.cpp b/engines/mads/madsv2/forest/rooms/room203.cpp
index 7ce6fec9f6b..a2eb74caf8f 100644
--- a/engines/mads/madsv2/forest/rooms/room203.cpp
+++ b/engines/mads/madsv2/forest/rooms/room203.cpp
@@ -20,6 +20,7 @@
*/
#include "mads/madsv2/forest/rooms/section2.h"
+#include "mads/madsv2/forest/mads/words.h"
#include "mads/madsv2/forest/digi.h"
#include "mads/madsv2/forest/extra.h"
#include "mads/madsv2/forest/global.h"
@@ -1629,14 +1630,14 @@ static void room_203_pre_parser() {
player.need_to_walk = 0;
return;
}
- if (player_parse(13, 21, 0))
+ if (player_parse(words_walk_to, words_room_201, 0))
player.walk_off_edge_to_room = 201;
- if (player_parse(13, 24, 0))
+ if (player_parse(words_walk_to, words_room_204, 0))
player.walk_off_edge_to_room = 204;
}
static void room_203_parser() {
- if (player_parse(13, 27, 0)) {
+ if (player_parse(words_walk_to, words_room_210, 0)) {
if (global[g046] != 0) {
global[g135] = -1;
scratch._8c = 50;
@@ -1648,7 +1649,7 @@ static void room_203_parser() {
goto handled;
}
- if (player_parse(13, 21, 0)) {
+ if (player_parse(words_walk_to, words_room_201, 0)) {
if (global[g046] == 0) {
player.commands_allowed = 0;
global[g150] = -1;
@@ -1657,7 +1658,7 @@ static void room_203_parser() {
goto handled;
}
- if (player_parse(13, 24, 0) && global[g046] == 0) {
+ if (player_parse(words_walk_to, words_room_204, 0) && global[g046] == 0) {
player.commands_allowed = 0;
global[g150] = -1;
scratch._90 = 15;
@@ -1731,7 +1732,7 @@ static void room_203_parser() {
goto handled;
}
- if (player_parse(78, 119, 0)) {
+ if (player_parse(words_click_on, words_moss, 0)) {
player.commands_allowed = 0;
if (global[g046] == 0) {
global[g150] = -1;
@@ -1749,7 +1750,7 @@ static void room_203_parser() {
goto handled;
}
- if (player_parse(78, 168, 0)) {
+ if (player_parse(words_click_on, words_abigail, 0)) {
if (player_has(5) && player_has(8)) {
kernel.trigger_setup_mode = KERNEL_TRIGGER_DAEMON;
aa[3] = kernel_run_animation(kernel_name('a', 1), 104);
@@ -1777,21 +1778,21 @@ static void room_203_parser() {
goto handled;
}
- if (player_parse(78, 169, 0)) {
+ if (player_parse(words_click_on, words_edgar, 0)) {
player.commands_allowed = 0;
global[g135] = -1;
scratch._8c = 51;
goto handled;
}
- if (player_parse(78, 170, 0)) {
+ if (player_parse(words_click_on, words_russel, 0)) {
player.commands_allowed = 0;
global[g145] = -1;
scratch._8e = 43;
goto handled;
}
- if (player_parse(78, 65, 0)) {
+ if (player_parse(words_click_on, words_abi_bubble, 0)) {
player.commands_allowed = 0;
aainfo[3]._frame = 28;
kernel_reset_animation(aa[3], 28);
@@ -1799,7 +1800,7 @@ static void room_203_parser() {
goto handled;
}
- if (player_parse(78, 66, 0)) {
+ if (player_parse(words_click_on, words_all_bubble, 0)) {
player.commands_allowed = 0;
aainfo[3]._frame = 33;
kernel_reset_animation(aa[3], 33);
@@ -1810,7 +1811,7 @@ static void room_203_parser() {
if (global[g049] == 0)
return;
- if (player_parse(13, 106, 0)) {
+ if (player_parse(words_walk_to, words_ground, 0)) {
player.commands_allowed = 0;
aainfo[3]._frame = 41;
kernel_reset_animation(aa[3], 41);
diff --git a/engines/mads/madsv2/forest/rooms/room204.cpp b/engines/mads/madsv2/forest/rooms/room204.cpp
index 29884b3de12..5fc56ad56f2 100644
--- a/engines/mads/madsv2/forest/rooms/room204.cpp
+++ b/engines/mads/madsv2/forest/rooms/room204.cpp
@@ -20,6 +20,7 @@
*/
#include "mads/madsv2/forest/rooms/section2.h"
+#include "mads/madsv2/forest/mads/words.h"
#include "mads/madsv2/forest/digi.h"
#include "mads/madsv2/forest/global.h"
#include "mads/madsv2/forest/journal.h"
@@ -539,10 +540,10 @@ bottom:
}
static void room_204_pre_parser() {
- if (player_parse(13, 23, 0))
+ if (player_parse(words_walk_to, words_room_203, 0))
player.walk_off_edge_to_room = 203;
- if (player_parse(13, 25, 0))
+ if (player_parse(words_walk_to, words_room_205, 0))
player.walk_off_edge_to_room = flags[13] ? 205 : 220;
}
@@ -557,7 +558,7 @@ static void room_204_parser() {
goto handled;
}
- if (player_parse(114, 103, 0)) {
+ if (player_parse(words_look_at, words_foxglove, 0)) {
player.commands_allowed = false;
global[g135] = -1;
local->_8c = 5;
@@ -565,7 +566,7 @@ static void room_204_parser() {
goto handled;
}
- if (player_parse(114, 82, 0)) {
+ if (player_parse(words_look_at, words_comfrey, 0)) {
player.commands_allowed = false;
global[g135] = -1;
local->_8c = 5;
@@ -573,7 +574,7 @@ static void room_204_parser() {
goto handled;
}
- if (player_parse(126, 158, 0)) {
+ if (player_parse(words_pick_up, words_vine_weed, 0)) {
global[g154] = 2;
player.commands_allowed = false;
kernel_run_animation_talk('b', 9, 0);
@@ -581,7 +582,7 @@ static void room_204_parser() {
goto handled;
}
- if (player_parse(78, 119, 0)) {
+ if (player_parse(words_click_on, words_moss, 0)) {
player.commands_allowed = false;
global[g135] = -1;
local->_8c = 3;
diff --git a/engines/mads/madsv2/forest/rooms/room205.cpp b/engines/mads/madsv2/forest/rooms/room205.cpp
index 2f449cf91ed..7be2c1a5a9e 100644
--- a/engines/mads/madsv2/forest/rooms/room205.cpp
+++ b/engines/mads/madsv2/forest/rooms/room205.cpp
@@ -20,6 +20,7 @@
*/
#include "mads/madsv2/forest/rooms/section2.h"
+#include "mads/madsv2/forest/mads/words.h"
#include "mads/madsv2/forest/digi.h"
#include "mads/madsv2/forest/global.h"
#include "mads/madsv2/forest/journal.h"
@@ -417,10 +418,10 @@ static void room_205_daemon() {
}
static void room_205_pre_parser() {
- if (player_parse(13, 24, 0))
+ if (player_parse(words_walk_to, words_room_204, 0))
player.walk_off_edge_to_room = 204;
- if (player_parse(13, 34, 0))
+ if (player_parse(words_walk_to, words_room_301, 0))
player.walk_off_edge_to_room = 301;
}
@@ -433,7 +434,7 @@ static void room_205_parser() {
return;
}
- if (player_parse(78, 107, 0)) {
+ if (player_parse(words_click_on, words_hole, 0)) {
player.commands_allowed = 0;
scratch._a4 = 121;
digi_play_build(221, '_', 1, 1);
@@ -446,7 +447,7 @@ static void room_205_parser() {
return;
}
- if (player_parse(114, 116, 0)) {
+ if (player_parse(words_look_at, words_map, 0)) {
player.commands_allowed = 0;
global[g145] = -1;
scratch._8e = 2;
@@ -454,7 +455,7 @@ static void room_205_parser() {
return;
}
- if (player_parse(126, 99, 0) || player_parse(78, 119, 0)) {
+ if (player_parse(words_pick_up, words_flowers, 0) || player_parse(words_click_on, words_moss, 0)) {
player.commands_allowed = 0;
global[g135] = -1;
scratch._8c = 3;
diff --git a/engines/mads/madsv2/forest/rooms/room210.cpp b/engines/mads/madsv2/forest/rooms/room210.cpp
index 809ed2ada5f..d96e914aa01 100644
--- a/engines/mads/madsv2/forest/rooms/room210.cpp
+++ b/engines/mads/madsv2/forest/rooms/room210.cpp
@@ -604,7 +604,7 @@ static void room_210_parser() {
return;
}
- if (player_parse(78, 85, 0)) {
+ if (player_parse(words_click_on, words_door_1, 0)) {
player.commands_allowed = 0;
player.walker_visible = false;
global[g150] = -1;
@@ -613,7 +613,7 @@ static void room_210_parser() {
return;
}
- if (player_parse(78, 86, 0)) {
+ if (player_parse(words_click_on, words_door_2, 0)) {
player.commands_allowed = 0;
player.walker_visible = false;
global[g150] = -1;
@@ -622,7 +622,7 @@ static void room_210_parser() {
return;
}
- if (player_parse(78, 87, 0)) {
+ if (player_parse(words_click_on, words_door_3, 0)) {
player.commands_allowed = 0;
player.walker_visible = false;
global[g150] = -1;
@@ -631,7 +631,7 @@ static void room_210_parser() {
return;
}
- if (player_parse(78, 88, 0)) {
+ if (player_parse(words_click_on, words_door_4, 0)) {
player.commands_allowed = 0;
player.walker_visible = false;
global[g150] = -1;
@@ -640,7 +640,7 @@ static void room_210_parser() {
return;
}
- if (player_parse(78, 89, 0)) {
+ if (player_parse(words_click_on, words_door_5, 0)) {
player.commands_allowed = 0;
player.walker_visible = false;
global[g150] = -1;
diff --git a/engines/mads/madsv2/forest/rooms/room211.cpp b/engines/mads/madsv2/forest/rooms/room211.cpp
index be5867f711c..64dcedda3dd 100644
--- a/engines/mads/madsv2/forest/rooms/room211.cpp
+++ b/engines/mads/madsv2/forest/rooms/room211.cpp
@@ -20,6 +20,7 @@
*/
#include "mads/madsv2/forest/rooms/section1.h"
+#include "mads/madsv2/forest/mads/words.h"
#include "mads/madsv2/forest/digi.h"
#include "mads/madsv2/forest/global.h"
#include "mads/madsv2/forest/midi.h"
diff --git a/engines/mads/madsv2/forest/rooms/room220.cpp b/engines/mads/madsv2/forest/rooms/room220.cpp
index c96cf0692bf..d1f0efe3785 100644
--- a/engines/mads/madsv2/forest/rooms/room220.cpp
+++ b/engines/mads/madsv2/forest/rooms/room220.cpp
@@ -20,6 +20,7 @@
*/
#include "mads/madsv2/forest/rooms/section1.h"
+#include "mads/madsv2/forest/mads/words.h"
#include "mads/madsv2/forest/digi.h"
#include "mads/madsv2/forest/global.h"
#include "mads/madsv2/forest/midi.h"
diff --git a/engines/mads/madsv2/forest/rooms/room301.cpp b/engines/mads/madsv2/forest/rooms/room301.cpp
index 600eb83fcc3..318bb8db0a6 100644
--- a/engines/mads/madsv2/forest/rooms/room301.cpp
+++ b/engines/mads/madsv2/forest/rooms/room301.cpp
@@ -23,6 +23,7 @@
#include "mads/madsv2/forest/global.h"
#include "mads/madsv2/forest/journal.h"
#include "mads/madsv2/forest/midi.h"
+#include "mads/madsv2/forest/mads/words.h"
#include "mads/madsv2/core/game.h"
#include "mads/madsv2/core/inter.h"
#include "mads/madsv2/core/kernel.h"
@@ -751,20 +752,20 @@ static void room_301_daemon() {
}
static void room_301_pre_parser() {
- if (player_parse(13, 25, 0))
+ if (player_parse(words_walk_to, words_room_205, 0))
player.walk_off_edge_to_room = 205;
- if (player_parse(13, 38, 0))
+ if (player_parse(words_walk_to, words_room_305, 0))
player.walk_off_edge_to_room = 305;
- if (player_parse(13, 40, 0)) {
+ if (player_parse(words_walk_to, words_room_307, 0)) {
if (global[g064] != 0)
player.walk_off_edge_to_room = 322;
else
player.walk_off_edge_to_room = 307;
}
- if (player_parse(13, 44, 0))
+ if (player_parse(words_walk_to, words_room_322, 0))
player.walk_off_edge_to_room = 322;
}
@@ -776,7 +777,7 @@ static void room_301_parser() {
return;
}
- if (player_parse(114, 83, 0)) {
+ if (player_parse(words_look_at, words_dandelion, 0)) {
player.commands_allowed = 0;
global[g135] = -1;
scratch._8c = 5;
@@ -785,7 +786,7 @@ static void room_301_parser() {
return;
}
- if (player_parse(114, 146, 0)) {
+ if (player_parse(words_look_at, words_sunflower, 0)) {
player.commands_allowed = 0;
global[g135] = -1;
scratch._8c = 5;
@@ -794,7 +795,7 @@ static void room_301_parser() {
return;
}
- if (player_parse(13, 35, 0)) {
+ if (player_parse(words_walk_to, words_room_302, 0)) {
new_room = 302;
player.command_ready = 0;
return;
@@ -805,7 +806,7 @@ static void room_301_parser() {
return;
}
- if (player_parse(126, 163, 0)) {
+ if (player_parse(words_pick_up, words_web, 0)) {
global[g154] = 2;
player.commands_allowed = 0;
player.walker_visible = false;
@@ -819,7 +820,7 @@ static void room_301_parser() {
return;
}
- if (player_parse(126, 101, 0)) {
+ if (player_parse(words_pick_up, words_forked_stick, 0)) {
global[g154] = 2;
player.commands_allowed = 0;
player.walker_visible = false;
diff --git a/engines/mads/madsv2/forest/rooms/room302.cpp b/engines/mads/madsv2/forest/rooms/room302.cpp
index 7bc318ae7a3..357ddd86965 100644
--- a/engines/mads/madsv2/forest/rooms/room302.cpp
+++ b/engines/mads/madsv2/forest/rooms/room302.cpp
@@ -831,10 +831,10 @@ static void room_302_daemon() {
}
static void room_302_pre_parser() {
- if (player_parse(13, 34, 0))
+ if (player_parse(words_walk_to, words_room_301, 0))
player.walk_off_edge_to_room = 301;
- if (player_parse(13, 36, 0)) {
+ if (player_parse(words_walk_to, words_room_303, 0)) {
if (global[g064])
player.walk_off_edge_to_room = 321;
else
@@ -850,13 +850,13 @@ static void room_302_parser() {
return;
}
- if (player_parse(13, 37, 0)) {
+ if (player_parse(words_walk_to, words_room_304, 0)) {
new_room = 304;
player.command_ready = 0;
return;
}
- if (player_parse(13, 27, 0)) {
+ if (player_parse(words_walk_to, words_room_210, 0)) {
global[g135] = -1;
scratch._8c = 7;
player.command_ready = 0;
@@ -868,7 +868,7 @@ static void room_302_parser() {
return;
}
- if (player_parse(114, 150, 0)) {
+ if (player_parse(words_look_at, words_thistle, 0)) {
global[player_score] = 0;
digi_stop(3);
player.commands_allowed = 0;
@@ -879,7 +879,7 @@ static void room_302_parser() {
return;
}
- if (player_parse(114, 82, 0)) {
+ if (player_parse(words_look_at, words_comfrey, 0)) {
global[player_score] = 0;
digi_stop(3);
player.commands_allowed = 0;
@@ -890,7 +890,7 @@ static void room_302_parser() {
return;
}
- if (player_parse(126, 137, 0)) {
+ if (player_parse(words_pick_up, words_rubber_band, 0)) {
global[g154] = 2;
global[player_score] = 0;
player.commands_allowed = 0;
@@ -905,7 +905,7 @@ static void room_302_parser() {
return;
}
- if (player_parse(78, 173, 0)) {
+ if (player_parse(words_click_on, words_grass, 0)) {
global[g154] = 2;
global[player_score] = 0;
player.commands_allowed = 0;
@@ -920,7 +920,7 @@ static void room_302_parser() {
return;
}
- if (player_parse(78, 75, 0)) {
+ if (player_parse(words_click_on, words_bush, 0)) {
global[player_score] = 0;
player.commands_allowed = 0;
global[g135] = -1;
diff --git a/engines/mads/madsv2/forest/rooms/room303.cpp b/engines/mads/madsv2/forest/rooms/room303.cpp
index d9cb17e1000..4a3fb29764e 100644
--- a/engines/mads/madsv2/forest/rooms/room303.cpp
+++ b/engines/mads/madsv2/forest/rooms/room303.cpp
@@ -826,7 +826,7 @@ static void room_303_daemon() {
}
static void room_303_pre_parser() {
- if (player_parse(13, 35, 0))
+ if (player_parse(words_walk_to, words_room_302, 0))
player.walk_off_edge_to_room = 302;
}
@@ -838,7 +838,7 @@ static void room_303_parser() {
return;
}
- if (player_parse(177, 0)) {
+ if (player_parse(words_nest, 0)) {
global[g154] = 2;
player.walker_visible = false;
player.commands_allowed = 0;
@@ -857,7 +857,7 @@ static void room_303_parser() {
return;
}
- if (player_parse(114, 77, 0)) {
+ if (player_parse(words_look_at, words_chicory, 0)) {
global[player_score] = 0;
digi_stop(3);
player.commands_allowed = 0;
@@ -868,7 +868,7 @@ static void room_303_parser() {
return;
}
- if (player_parse(114, 103, 0)) {
+ if (player_parse(words_look_at, words_foxglove, 0)) {
global[player_score] = 0;
digi_stop(3);
player.commands_allowed = 0;
@@ -879,7 +879,7 @@ static void room_303_parser() {
return;
}
- if (player_parse(126, 132, 0)) {
+ if (player_parse(words_pick_up, words_reeds, 0)) {
global[g154] = 2;
global[player_score] = 0;
player.commands_allowed = 0;
@@ -894,7 +894,7 @@ static void room_303_parser() {
return;
}
- if (player_parse(126, 125, 0)) {
+ if (player_parse(words_pick_up, words_pebbles, 0)) {
global[g154] = 2;
global[player_score] = 0;
player.commands_allowed = 0;
@@ -909,7 +909,7 @@ static void room_303_parser() {
return;
}
- if (player_parse(78, 119, 0)) {
+ if (player_parse(words_click_on, words_moss, 0)) {
player.commands_allowed = 0;
global[g135] = -1;
scratch._8c = 3;
diff --git a/engines/mads/madsv2/forest/rooms/room304.cpp b/engines/mads/madsv2/forest/rooms/room304.cpp
index 85e6f4b94ab..25283da976b 100644
--- a/engines/mads/madsv2/forest/rooms/room304.cpp
+++ b/engines/mads/madsv2/forest/rooms/room304.cpp
@@ -539,7 +539,7 @@ static void room_304_daemon() {
}
static void room_304_pre_parser() {
- if (player_parse(13, 35, 0))
+ if (player_parse(words_walk_to, words_room_302, 0))
player.walk_off_edge_to_room = 302;
}
@@ -563,7 +563,7 @@ static void room_304_parser() {
return;
}
- if (player_parse(78, 178, 0)) {
+ if (player_parse(words_click_on, words_paint_can, 0)) {
player.commands_allowed = 0;
global[g150] = -1;
scratch._90 = 3;
@@ -571,7 +571,7 @@ static void room_304_parser() {
return;
}
- if (player_parse(78, 179, 0)) {
+ if (player_parse(words_click_on, words_dam, 0)) {
player.commands_allowed = 0;
global[g135] = -1;
scratch._8c = 2;
diff --git a/engines/mads/madsv2/forest/rooms/room305.cpp b/engines/mads/madsv2/forest/rooms/room305.cpp
index 62ddb684b67..7ca77fb3bc8 100644
--- a/engines/mads/madsv2/forest/rooms/room305.cpp
+++ b/engines/mads/madsv2/forest/rooms/room305.cpp
@@ -1045,10 +1045,10 @@ static void room_305_daemon() {
}
static void room_305_pre_parser() {
- if (player_parse(13, 34, 0))
+ if (player_parse(words_walk_to, words_room_301, 0))
player.walk_off_edge_to_room = 301;
- if (player_parse(13, 39, 0))
+ if (player_parse(words_walk_to, words_room_306, 0))
player.walk_off_edge_to_room = 306;
}
@@ -1059,7 +1059,7 @@ static void room_305_parser() {
goto handled;
}
- if (player_parse(28, 0)) {
+ if (player_parse(words_room_210h, 0)) {
global[g154] = 2;
player.walker_visible = false;
player.commands_allowed = 0;
@@ -1074,7 +1074,7 @@ static void room_305_parser() {
goto handled;
}
- if (player_parse(27, 0)) {
+ if (player_parse(words_room_210, 0)) {
scratch._8c = 3;
global[g135] = -1;
player.commands_allowed = 0;
@@ -1085,7 +1085,7 @@ static void room_305_parser() {
goto handled;
}
- if (player_parse(114, 118, 0)) {
+ if (player_parse(words_look_at, words_mint, 0)) {
global[player_score] = 0;
digi_stop(3);
player.commands_allowed = 0;
@@ -1095,7 +1095,7 @@ static void room_305_parser() {
goto handled;
}
- if (player_parse(114, 142, 0)) {
+ if (player_parse(words_look_at, words_snapdragon, 0)) {
global[player_score] = 0;
digi_stop(3);
player.commands_allowed = 0;
@@ -1105,7 +1105,7 @@ static void room_305_parser() {
goto handled;
}
- if (player_parse(126, 145, 0)) {
+ if (player_parse(words_pick_up, words_sticks, 0)) {
global[player_score] = 0;
digi_stop(3);
global[g154] = 2;
@@ -1122,7 +1122,7 @@ static void room_305_parser() {
goto handled;
}
- if (player_parse(78, 119, 0)) {
+ if (player_parse(words_click_on, words_moss, 0)) {
player.commands_allowed = 0;
global[g135] = -1;
scratch._8c = 3;
diff --git a/engines/mads/madsv2/forest/rooms/room306.cpp b/engines/mads/madsv2/forest/rooms/room306.cpp
index f972be09496..a758de83bf6 100644
--- a/engines/mads/madsv2/forest/rooms/room306.cpp
+++ b/engines/mads/madsv2/forest/rooms/room306.cpp
@@ -952,7 +952,7 @@ static void room_306_daemon() {
}
static void room_306_pre_parser() {
- if (player_parse(13, 38, 0))
+ if (player_parse(words_walk_to, words_room_305, 0))
player.walk_off_edge_to_room = 305;
}
@@ -963,7 +963,7 @@ static void room_306_parser() {
goto handled;
}
- if (player_parse(180, 0)) {
+ if (player_parse(words_brown, 0)) {
aainfo[2]._val3 = 15;
player.commands_allowed = 0;
player.walker_visible = false;
@@ -981,7 +981,7 @@ static void room_306_parser() {
goto handled;
}
- if (player_parse(133, 0)) {
+ if (player_parse(words_river, 0)) {
player.commands_allowed = 0;
global[g135] = -1;
goto handled;
diff --git a/engines/mads/madsv2/forest/rooms/room307.cpp b/engines/mads/madsv2/forest/rooms/room307.cpp
index 6b20f83d331..01a5918f0fc 100644
--- a/engines/mads/madsv2/forest/rooms/room307.cpp
+++ b/engines/mads/madsv2/forest/rooms/room307.cpp
@@ -849,10 +849,10 @@ static void room_307_daemon() {
}
static void room_307_pre_parser() {
- if (player_parse(13, 34, 0))
+ if (player_parse(words_walk_to, words_room_301, 0))
player.walk_off_edge_to_room = 301;
- if (player_parse(104, 0)) {
+ if (player_parse(words_frog, 0)) {
switch (kernel.trigger) {
case 0:
scratch._b0 = -1;
@@ -866,7 +866,7 @@ static void room_307_pre_parser() {
}
}
- if (player_parse(41, 0)) {
+ if (player_parse(words_room_308, 0)) {
player_walk(96, 120, 3);
global[g017] = 0;
}
@@ -879,7 +879,7 @@ static void room_307_parser() {
goto handled;
}
- if (player_parse(113, 0)) {
+ if (player_parse(words_lily_pad, 0)) {
global[g154] = 2;
player.walker_visible = false;
player.commands_allowed = 0;
@@ -892,7 +892,7 @@ static void room_307_parser() {
goto handled;
}
- if (player_parse(28, 0)) {
+ if (player_parse(words_room_210h, 0)) {
global[g154] = 2;
player.walker_visible = false;
player.commands_allowed = 0;
@@ -908,13 +908,13 @@ static void room_307_parser() {
goto handled;
}
- if (player_parse(27, 0)) {
+ if (player_parse(words_room_210, 0)) {
global[g150] = -1;
scratch._a2 = 1;
goto handled;
}
- if (player_parse(41, 0)) {
+ if (player_parse(words_room_308, 0)) {
global[g150] = -1;
player.commands_allowed = 0;
scratch._a2 = 2;
diff --git a/engines/mads/madsv2/forest/rooms/room308.cpp b/engines/mads/madsv2/forest/rooms/room308.cpp
index d39e91e2435..1f10d3001c0 100644
--- a/engines/mads/madsv2/forest/rooms/room308.cpp
+++ b/engines/mads/madsv2/forest/rooms/room308.cpp
@@ -20,6 +20,7 @@
*/
#include "mads/madsv2/forest/rooms/section3.h"
+#include "mads/madsv2/forest/mads/words.h"
#include "mads/madsv2/forest/digi.h"
#include "mads/madsv2/forest/extra.h"
#include "mads/madsv2/forest/global.h"
@@ -1286,14 +1287,14 @@ static void room_308_daemon() {
}
static void room_308_pre_parser() {
- if (player_parse(13, 40, 0)) {
+ if (player_parse(words_walk_to, words_room_307, 0)) {
if (global[g064] != 0)
player.walk_off_edge_to_room = 322;
else
player.walk_off_edge_to_room = 307;
}
- if (player_parse(13, 46, 0))
+ if (player_parse(words_walk_to, words_room_401, 0))
player.walk_off_edge_to_room = 401;
}
@@ -1307,13 +1308,13 @@ static void room_308_parser() {
goto handled;
}
- if (player_parse(189, 0)) {
+ if (player_parse(words_tail, 0)) {
scratch._bc = -1;
player.commands_allowed = 0;
goto handled;
}
- if (player_parse(170, 0)) {
+ if (player_parse(words_russel, 0)) {
scratch._be = -1;
player.commands_allowed = 0;
goto handled;
diff --git a/engines/mads/madsv2/forest/rooms/room321.cpp b/engines/mads/madsv2/forest/rooms/room321.cpp
index d015400d3c6..1f3f0234b56 100644
--- a/engines/mads/madsv2/forest/rooms/room321.cpp
+++ b/engines/mads/madsv2/forest/rooms/room321.cpp
@@ -762,7 +762,7 @@ static void room_321_daemon() {
}
static void room_321_pre_parser() {
- if (player_parse(13, 35, 0))
+ if (player_parse(words_walk_to, words_room_302, 0))
player.walk_off_edge_to_room = 302;
}
@@ -778,7 +778,7 @@ static void room_321_parser() {
goto handled;
}
- if (player_parse(114, 77, 0)) {
+ if (player_parse(words_look_at, words_chicory, 0)) {
global[player_score] = 0;
digi_stop(3);
player.commands_allowed = 0;
@@ -788,7 +788,7 @@ static void room_321_parser() {
goto handled;
}
- if (player_parse(114, 103, 0)) {
+ if (player_parse(words_look_at, words_foxglove, 0)) {
global[player_score] = 0;
digi_stop(3);
player.commands_allowed = 0;
@@ -798,7 +798,7 @@ static void room_321_parser() {
goto handled;
}
- if (player_parse(126, 132, 0)) {
+ if (player_parse(words_pick_up, words_reeds, 0)) {
global[g154] = 2;
global[player_score] = 0;
player.commands_allowed = 0;
@@ -812,7 +812,7 @@ static void room_321_parser() {
goto handled;
}
- if (player_parse(126, 125, 0)) {
+ if (player_parse(words_pick_up, words_pebbles, 0)) {
global[g154] = 2;
global[player_score] = 0;
player.commands_allowed = 0;
@@ -826,33 +826,33 @@ static void room_321_parser() {
goto handled;
}
- if (player_parse(78, 181, 0)) {
+ if (player_parse(words_click_on, words_turtle, 0)) {
aainfo[8]._frame = 1;
kernel_reset_animation(aa[8], 1);
player.commands_allowed = 0;
goto handled;
}
- if (player_parse(78, 182, 0)) {
+ if (player_parse(words_click_on, words_dragonfly, 0)) {
aainfo[7]._frame = 5;
kernel_reset_animation(aa[7], 5);
goto handled;
}
- if (player_parse(78, 177, 0)) {
+ if (player_parse(words_click_on, words_nest, 0)) {
aainfo[5]._frame = 1;
kernel_reset_animation(aa[5], 1);
player.commands_allowed = 0;
goto handled;
}
- if (player_parse(78, 185, 0)) {
+ if (player_parse(words_click_on, words_black_bird, 0)) {
aainfo[4]._frame = 5;
kernel_reset_animation(aa[4], 5);
goto handled;
}
- if (player_parse(78, 184, 0)) {
+ if (player_parse(words_click_on, words_blue_bird, 0)) {
aainfo[4]._frame = 12;
kernel_reset_animation(aa[4], 12);
goto handled;
diff --git a/engines/mads/madsv2/forest/rooms/room322.cpp b/engines/mads/madsv2/forest/rooms/room322.cpp
index b69eaa0fb0b..a569b91580e 100644
--- a/engines/mads/madsv2/forest/rooms/room322.cpp
+++ b/engines/mads/madsv2/forest/rooms/room322.cpp
@@ -706,10 +706,10 @@ static void room_322_daemon() {
}
static void room_322_pre_parser() {
- if (player_parse(34, 0))
+ if (player_parse(words_room_301, 0))
player_walk(21, 101, 4);
- if (player_parse(41, 0)) {
+ if (player_parse(words_room_308, 0)) {
player_walk(96, 120, 3);
global[g017] = 0;
}
@@ -723,7 +723,7 @@ static void room_322_parser() {
return;
}
- if (player_parse(34, 0)) {
+ if (player_parse(words_room_301, 0)) {
global[g150] = -1;
scratch._ac = 3;
player.commands_allowed = 0;
@@ -731,7 +731,7 @@ static void room_322_parser() {
return;
}
- if (player_parse(113, 0)) {
+ if (player_parse(words_lily_pad, 0)) {
global[g154] = 2;
player.walker_visible = false;
player.commands_allowed = 0;
@@ -745,7 +745,7 @@ static void room_322_parser() {
return;
}
- if (player_parse(28, 0)) {
+ if (player_parse(words_room_210h, 0)) {
global[g154] = 2;
player.walker_visible = false;
player.commands_allowed = 0;
@@ -762,7 +762,7 @@ static void room_322_parser() {
return;
}
- if (player_parse(27, 0)) {
+ if (player_parse(words_room_210, 0)) {
global[g150] = -1;
scratch._ac = 1;
player.commands_allowed = 0;
@@ -770,7 +770,7 @@ static void room_322_parser() {
return;
}
- if (player_parse(41, 0)) {
+ if (player_parse(words_room_308, 0)) {
global[g150] = -1;
player.commands_allowed = 0;
scratch._ac = 2;
diff --git a/engines/mads/madsv2/forest/rooms/room401.cpp b/engines/mads/madsv2/forest/rooms/room401.cpp
index 83dbfcaae74..f736ed99f74 100644
--- a/engines/mads/madsv2/forest/rooms/room401.cpp
+++ b/engines/mads/madsv2/forest/rooms/room401.cpp
@@ -601,10 +601,10 @@ static void room_401_daemon() {
}
static void room_401_pre_parser() {
- if (player_parse(13, 47, 0))
+ if (player_parse(words_walk_to, words_room_402, 0))
player.walk_off_edge_to_room = 402;
- if (player_parse(13, 49, 0))
+ if (player_parse(words_walk_to, words_room_404, 0))
player.walk_off_edge_to_room = 404;
}
@@ -617,7 +617,7 @@ static void room_401_parser() {
return;
}
- if (player_parse(13, 41, 0)) {
+ if (player_parse(words_walk_to, words_room_308, 0)) {
global[g150] = -1;
scratch._90 = 16;
player.commands_allowed = 0;
@@ -630,7 +630,7 @@ static void room_401_parser() {
return;
}
- if (player_parse(114, 150, 0)) {
+ if (player_parse(words_look_at, words_thistle, 0)) {
player.commands_allowed = 0;
global[g135] = -1;
scratch._8c = 20;
diff --git a/engines/mads/madsv2/forest/rooms/room402.cpp b/engines/mads/madsv2/forest/rooms/room402.cpp
index 6c76b58cf1d..376c1c97a8d 100644
--- a/engines/mads/madsv2/forest/rooms/room402.cpp
+++ b/engines/mads/madsv2/forest/rooms/room402.cpp
@@ -762,7 +762,7 @@ static void room_402_daemon() {
static void room_402_pre_parser() {
if (global[g083] == 0) {
- if (player_parse(13, 186, 0)) {
+ if (player_parse(words_walk_to, words_lever, 0)) {
player.need_to_walk = 0;
return;
}
@@ -776,14 +776,14 @@ static void room_402_pre_parser() {
return;
}
- if (player_parse(13, 46, 0)) {
+ if (player_parse(words_walk_to, words_room_401, 0)) {
if (global[g080] == 0 || flags[31] != 0)
player.walk_off_edge_to_room = 401;
else
player.walk_off_edge_to_room = 420;
}
- if (player_parse(13, 48, 0))
+ if (player_parse(words_walk_to, words_room_403, 0))
player.walk_off_edge_to_room = 403;
}
@@ -811,7 +811,7 @@ static void room_402_parser() {
}
if (global[g083] == 0) {
- if (player_parse(13, 186, 0)) {
+ if (player_parse(words_walk_to, words_lever, 0)) {
player.commands_allowed = 0;
aainfo[1]._frame = 4;
kernel_reset_animation(aa[1], 4);
@@ -824,7 +824,7 @@ static void room_402_parser() {
}
if (global[g083] == 2) {
- if (player_parse(78, 187, 0)) {
+ if (player_parse(words_click_on, words_rock, 0)) {
player.commands_allowed = 0;
scratch._90 = 17;
}
diff --git a/engines/mads/madsv2/forest/rooms/room403.cpp b/engines/mads/madsv2/forest/rooms/room403.cpp
index 39783f01b3e..aa090828af5 100644
--- a/engines/mads/madsv2/forest/rooms/room403.cpp
+++ b/engines/mads/madsv2/forest/rooms/room403.cpp
@@ -696,7 +696,7 @@ static void room_403_daemon() {
}
static void room_403_pre_parser() {
- if (player_parse(13, 47, 0))
+ if (player_parse(words_walk_to, words_room_402, 0))
player.walk_off_edge_to_room = 402;
}
@@ -713,7 +713,7 @@ static void room_403_parser() {
return;
}
- if (player_parse(114, 142, 0)) {
+ if (player_parse(words_look_at, words_snapdragon, 0)) {
player.commands_allowed = 0;
global[g135] = -1;
scratch._8c = 5;
@@ -722,7 +722,7 @@ static void room_403_parser() {
return;
}
- if (player_parse(114, 83, 0)) {
+ if (player_parse(words_look_at, words_dandelion, 0)) {
player.commands_allowed = 0;
global[g135] = -1;
scratch._8c = 5;
@@ -731,7 +731,7 @@ static void room_403_parser() {
return;
}
- if (player_parse(114, 131, 0)) {
+ if (player_parse(words_look_at, words_primrose, 0)) {
player.commands_allowed = 0;
global[g135] = -1;
scratch._8c = 5;
@@ -740,7 +740,7 @@ static void room_403_parser() {
return;
}
- if (player_parse(114, 146, 0)) {
+ if (player_parse(words_look_at, words_sunflower, 0)) {
player.commands_allowed = 0;
global[g135] = -1;
scratch._8c = 5;
@@ -749,7 +749,7 @@ static void room_403_parser() {
return;
}
- if (player_parse(114, 116, 0)) {
+ if (player_parse(words_look_at, words_map, 0)) {
player.commands_allowed = 0;
global[g145] = -1;
scratch._8e = 2;
@@ -757,7 +757,7 @@ static void room_403_parser() {
return;
}
- if (player_parse(126, 166, 0)) {
+ if (player_parse(words_pick_up, words_wrench, 0)) {
global[g154] = 2;
player.walker_visible = false;
player.commands_allowed = 0;
@@ -773,7 +773,7 @@ static void room_403_parser() {
return;
}
- if (player_parse(126, 95, 0)) {
+ if (player_parse(words_pick_up, words_eyebright, 0)) {
global[g154] = 2;
player.walker_visible = false;
player.commands_allowed = 0;
@@ -789,7 +789,7 @@ static void room_403_parser() {
return;
}
- if (player_parse(126, 99, 0) || player_parse(78, 119, 0)) {
+ if (player_parse(words_pick_up, words_flowers, 0) || player_parse(words_click_on, words_moss, 0)) {
player.commands_allowed = 0;
global[g135] = -1;
scratch._8c = 3;
diff --git a/engines/mads/madsv2/forest/rooms/room404.cpp b/engines/mads/madsv2/forest/rooms/room404.cpp
index 04a182bd965..471ef1fcdd5 100644
--- a/engines/mads/madsv2/forest/rooms/room404.cpp
+++ b/engines/mads/madsv2/forest/rooms/room404.cpp
@@ -808,7 +808,7 @@ static void room_404_daemon() {
}
static void room_404_pre_parser() {
- if (player_parse(13, 46, 0)) {
+ if (player_parse(words_walk_to, words_room_401, 0)) {
global[g084] = 15;
player.walk_off_edge_to_room = 401;
}
@@ -836,7 +836,7 @@ static void room_404_parser() {
return;
}
- if (player_parse(13, 50, 0)) {
+ if (player_parse(words_walk_to, words_room_405, 0)) {
global[g084] = 15;
new_room = 405;
player.command_ready = false;
@@ -860,7 +860,7 @@ static void room_404_parser() {
return;
}
- if (player_parse(114, 116, 0)) {
+ if (player_parse(words_look_at, words_map, 0)) {
player.commands_allowed = 0;
global[g145] = -1;
scratch._8e = 2;
@@ -868,7 +868,7 @@ static void room_404_parser() {
return;
}
- if (player_parse(126, 99, 0)) {
+ if (player_parse(words_pick_up, words_flowers, 0)) {
player.commands_allowed = 0;
global[g135] = -1;
scratch._8c = 3;
@@ -876,7 +876,7 @@ static void room_404_parser() {
return;
}
- if (player_parse(78, 107, 0)) {
+ if (player_parse(words_click_on, words_hole, 0)) {
if (!global[g082]) {
player.commands_allowed = 0;
global[g150] = -1;
@@ -890,7 +890,7 @@ static void room_404_parser() {
return;
}
- if (player_parse(78, 175, 0)) {
+ if (player_parse(words_click_on, words_dragon1, 0)) {
global[g154] = 2;
player.commands_allowed = 0;
player.walker_visible = false;
@@ -906,7 +906,7 @@ static void room_404_parser() {
return;
}
- if (player_parse(78, 176, 0)) {
+ if (player_parse(words_click_on, words_dragon2, 0)) {
global[g154] = 2;
player.commands_allowed = 0;
player.walker_visible = false;
diff --git a/engines/mads/madsv2/forest/rooms/room405.cpp b/engines/mads/madsv2/forest/rooms/room405.cpp
index fbeca6cf153..72bfc0409cb 100644
--- a/engines/mads/madsv2/forest/rooms/room405.cpp
+++ b/engines/mads/madsv2/forest/rooms/room405.cpp
@@ -453,7 +453,7 @@ static void room_405_daemon() {
}
static void room_405_pre_parser() {
- if (player_parse(13, 55, 0))
+ if (player_parse(words_walk_to, words_room_501, 0))
player.walk_off_edge_to_room = 501;
}
@@ -465,7 +465,7 @@ static void room_405_parser() {
return;
}
- if (player_parse(13, 49, 0)) {
+ if (player_parse(words_walk_to, words_room_404, 0)) {
new_room = 404;
player.command_ready = false;
return;
@@ -476,7 +476,7 @@ static void room_405_parser() {
return;
}
- if (player_parse(114, 116, 0)) {
+ if (player_parse(words_look_at, words_map, 0)) {
player.commands_allowed = 0;
global[g145] = -1;
scratch._8e = 2;
@@ -484,7 +484,7 @@ static void room_405_parser() {
return;
}
- if (player_parse(126, 99, 0)) {
+ if (player_parse(words_pick_up, words_flowers, 0)) {
player.commands_allowed = 0;
global[g135] = -1;
scratch._8c = 3;
@@ -492,7 +492,7 @@ static void room_405_parser() {
return;
}
- if (player_parse(78, 175, 0)) {
+ if (player_parse(words_click_on, words_dragon1, 0)) {
player.commands_allowed = 0;
global[g150] = -1;
scratch._90 = 6;
diff --git a/engines/mads/madsv2/forest/rooms/room501.cpp b/engines/mads/madsv2/forest/rooms/room501.cpp
index de66e58e370..6236d219d07 100644
--- a/engines/mads/madsv2/forest/rooms/room501.cpp
+++ b/engines/mads/madsv2/forest/rooms/room501.cpp
@@ -539,7 +539,7 @@ static void room_501_daemon() {
}
static void room_501_pre_parser() {
- if (player_parse(13, 50, 0))
+ if (player_parse(words_walk_to, words_room_405, 0))
player.walk_off_edge_to_room = 405;
}
@@ -550,7 +550,7 @@ static void room_501_parser() {
goto handled;
}
- if (player_parse(13, 57, 0)) {
+ if (player_parse(words_walk_to, words_room_503, 0)) {
new_room = 503;
goto handled;
}
@@ -559,7 +559,7 @@ static void room_501_parser() {
goto handled;
}
- if (player_parse(114, 142, 0)) {
+ if (player_parse(words_look_at, words_snapdragon, 0)) {
global[player_score] = 0;
digi_stop(3);
player.commands_allowed = 0;
@@ -569,7 +569,7 @@ static void room_501_parser() {
goto handled;
}
- if (player_parse(114, 171, 0)) {
+ if (player_parse(words_look_at, words_snapdragon2, 0)) {
global[player_score] = 0;
digi_stop(3);
player.commands_allowed = 0;
@@ -579,7 +579,7 @@ static void room_501_parser() {
goto handled;
}
- if (player_parse(114, 131, 0)) {
+ if (player_parse(words_look_at, words_primrose, 0)) {
global[player_score] = 0;
digi_stop(3);
player.commands_allowed = 0;
@@ -589,7 +589,7 @@ static void room_501_parser() {
goto handled;
}
- if (player_parse(126, 99, 0) || player_parse(78, 119, 0)) {
+ if (player_parse(words_pick_up, words_flowers, 0) || player_parse(words_click_on, words_moss, 0)) {
player.commands_allowed = 0;
global[g135] = -1;
scratch._8c = 3;
Commit: 3f14bd5851344dc0c68dbe9cc8a7b82942f9e2eb
https://github.com/scummvm/scummvm/commit/3f14bd5851344dc0c68dbe9cc8a7b82942f9e2eb
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2026-06-25T20:19:21+10:00
Commit Message:
MADS: FOREST: Inventory cleanup
Changed paths:
engines/mads/madsv2/forest/inventory.cpp
diff --git a/engines/mads/madsv2/forest/inventory.cpp b/engines/mads/madsv2/forest/inventory.cpp
index ade074dd552..82b0b5bce50 100644
--- a/engines/mads/madsv2/forest/inventory.cpp
+++ b/engines/mads/madsv2/forest/inventory.cpp
@@ -141,7 +141,7 @@ static void inven_set_interface_mode(int mode) {
void display_inventory() {
int var_10 = 17;
int var_12 = 72;
- int var_2 = -1;
+ int object_id = -1;
int var_22 = -1;
int var_6 = 0;
int var_E = 0;
@@ -240,7 +240,7 @@ void display_inventory() {
if (object[object_num].location == 2) {
var_E++;
if (var_E == var_4) {
- var_2 = object_num;
+ object_id = object_num;
break;
}
}
@@ -255,8 +255,8 @@ void display_inventory() {
kernel_force_refresh();
// Determine usability based on object number and room
- if (var_2 <= 15) {
- switch (var_2) {
+ if (object_id <= 15) {
+ switch (object_id) {
case 0:
var_22 = (room_id == 521) ? 0 : -1;
break;
@@ -284,13 +284,13 @@ void display_inventory() {
}
}
- if (object_check_quality(var_2, 0))
+ if (object_check_quality(object_id, 0))
var_22 = -1;
// Room 203: special quality-gated overrides
if (room_id == 203 && !global[g046]) {
- if (var_2 == 8 || var_2 == 5) {
- if (object_check_quality(var_2, 0))
+ if (object_id == 8 || object_id == 5) {
+ if (object_check_quality(object_id, 0))
var_22 = -1;
else
var_22 = 0;
@@ -309,8 +309,8 @@ void display_inventory() {
// Room 308
if (room_id == 308) {
- if (var_2 == 1 || var_2 == 15 || var_2 == 5) {
- if (object_check_quality(var_2, 0))
+ if (object_id == 1 || object_id == 15 || object_id == 5) {
+ if (object_check_quality(object_id, 0))
var_22 = -1;
else
var_22 = 0;
@@ -319,7 +319,7 @@ void display_inventory() {
}
}
- if (var_2 == -1 || var_4 == -1 || var_22 != 0) {
+ if (object_id == -1 || var_4 == -1 || var_22 != 0) {
var_E = 0;
var_4 = 0;
continue;
@@ -332,13 +332,13 @@ void display_inventory() {
var_22 = -1;
break;
case 203:
- if (var_2 != 5 && var_2 != 8) {
+ if (object_id != 5 && object_id != 8) {
digi_play_build(203, 'R', 5, 2);
var_22 = -1;
}
break;
case 308:
- if (var_2 == 1 || var_2 == 15) {
+ if (object_id == 1 || object_id == 15) {
var_8 = 90;
digi_play_build(308, 'e', 4, 1);
var_1C_1A = timer_read();
@@ -346,7 +346,7 @@ void display_inventory() {
player.commands_allowed = 0;
mouse_cursor_sprite(cursor, 2);
continue;
- } else if (var_2 == 5) {
+ } else if (object_id == 5) {
var_8 = 180;
digi_play_build(308, 'r', 2, 1);
var_1C_1A = timer_read();
@@ -381,9 +381,9 @@ exit_inventory:
var_6 = var_20;
close_journal(2);
knuthole_flag = true;
- inter_spin_object(var_2);
- inter_move_object(var_2, 2);
- global[player_selected_object] = var_2;
+ inter_spin_object(object_id);
+ inter_move_object(object_id, 2);
+ global[player_selected_object] = object_id;
player_verb = -1;
player_main_noun = -1;
Commit: 158be46f4be46176a37dcddac98427da384756ae
https://github.com/scummvm/scummvm/commit/158be46f4be46176a37dcddac98427da384756ae
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2026-06-25T20:19:22+10:00
Commit Message:
MADS: FOREST: Clarify param 2 of inter_move_object calls
Changed paths:
engines/mads/madsv2/forest/inventory.cpp
engines/mads/madsv2/forest/rooms/room106.cpp
engines/mads/madsv2/forest/rooms/room201.cpp
engines/mads/madsv2/forest/rooms/room204.cpp
engines/mads/madsv2/forest/rooms/room301.cpp
engines/mads/madsv2/forest/rooms/room302.cpp
engines/mads/madsv2/forest/rooms/room303.cpp
engines/mads/madsv2/forest/rooms/room305.cpp
engines/mads/madsv2/forest/rooms/room307.cpp
engines/mads/madsv2/forest/rooms/room308.cpp
engines/mads/madsv2/forest/rooms/room321.cpp
engines/mads/madsv2/forest/rooms/room322.cpp
engines/mads/madsv2/forest/rooms/room403.cpp
engines/mads/madsv2/forest/rooms/room404.cpp
diff --git a/engines/mads/madsv2/forest/inventory.cpp b/engines/mads/madsv2/forest/inventory.cpp
index 82b0b5bce50..0103ff30d8a 100644
--- a/engines/mads/madsv2/forest/inventory.cpp
+++ b/engines/mads/madsv2/forest/inventory.cpp
@@ -382,7 +382,7 @@ exit_inventory:
close_journal(2);
knuthole_flag = true;
inter_spin_object(object_id);
- inter_move_object(object_id, 2);
+ inter_move_object(object_id, PLAYER);
global[player_selected_object] = object_id;
player_verb = -1;
diff --git a/engines/mads/madsv2/forest/rooms/room106.cpp b/engines/mads/madsv2/forest/rooms/room106.cpp
index c7b8475ea3a..78866975842 100644
--- a/engines/mads/madsv2/forest/rooms/room106.cpp
+++ b/engines/mads/madsv2/forest/rooms/room106.cpp
@@ -634,7 +634,7 @@ static void room_106_daemon() {
kernel_synch(KERNEL_ANIM, scratch._9a, KERNEL_NOW, 0);
global[g133] = 0;
kernel_flip_hotspot(125, 0);
- inter_move_object(5, 2);
+ inter_move_object(5, PLAYER);
player.commands_allowed = -1;
break;
case 108:
diff --git a/engines/mads/madsv2/forest/rooms/room201.cpp b/engines/mads/madsv2/forest/rooms/room201.cpp
index c8f757ec789..9c12c600606 100644
--- a/engines/mads/madsv2/forest/rooms/room201.cpp
+++ b/engines/mads/madsv2/forest/rooms/room201.cpp
@@ -381,7 +381,7 @@ static void room_201_daemon() {
kernel_synch(KERNEL_ANIM, scratch._9a, KERNEL_NOW, 0);
global[g133] = 0;
kernel_flip_hotspot(145, false);
- inter_move_object(7, 2);
+ inter_move_object(7, PLAYER);
player.commands_allowed = -1;
} else if (trigger == 26) {
if (scratch._a8 == 1) {
@@ -469,7 +469,7 @@ static void room_201_daemon() {
kernel_synch(KERNEL_ANIM, scratch._9a, KERNEL_NOW, 0);
global[g133] = 0;
kernel_flip_hotspot(93, false);
- inter_move_object(12, 2);
+ inter_move_object(12, PLAYER);
player.commands_allowed = -1;
}
} else if (trigger == 7) {
diff --git a/engines/mads/madsv2/forest/rooms/room204.cpp b/engines/mads/madsv2/forest/rooms/room204.cpp
index 5fc56ad56f2..fab3c8d086a 100644
--- a/engines/mads/madsv2/forest/rooms/room204.cpp
+++ b/engines/mads/madsv2/forest/rooms/room204.cpp
@@ -520,7 +520,7 @@ trigger_103:
kernel_synch(3, scratch._9a, 4, 0);
global[g133] = 0;
kernel_flip_hotspot(158, -1);
- inter_move_object(9, 2);
+ inter_move_object(9, PLAYER);
global[player_score] = -1;
player.commands_allowed = -1;
diff --git a/engines/mads/madsv2/forest/rooms/room301.cpp b/engines/mads/madsv2/forest/rooms/room301.cpp
index 318bb8db0a6..2237046a9f3 100644
--- a/engines/mads/madsv2/forest/rooms/room301.cpp
+++ b/engines/mads/madsv2/forest/rooms/room301.cpp
@@ -620,7 +620,7 @@ static void room_301_daemon() {
kernel_synch(KERNEL_ANIM, scratch._9a, KERNEL_NOW, 0);
global[g133] = 0;
kernel_flip_hotspot(101, 0);
- inter_move_object(15, 2);
+ inter_move_object(15, PLAYER);
global[player_score] = -1;
player.commands_allowed = -1;
} else if (scratch._a8 == 2) {
@@ -638,7 +638,7 @@ static void room_301_daemon() {
kernel_synch(KERNEL_ANIM, scratch._9a, KERNEL_NOW, 0);
global[g133] = 0;
kernel_flip_hotspot(163, 0);
- inter_move_object(10, 2);
+ inter_move_object(10, PLAYER);
global[player_score] = -1;
player.commands_allowed = -1;
}
diff --git a/engines/mads/madsv2/forest/rooms/room302.cpp b/engines/mads/madsv2/forest/rooms/room302.cpp
index 357ddd86965..47fa3c7adb0 100644
--- a/engines/mads/madsv2/forest/rooms/room302.cpp
+++ b/engines/mads/madsv2/forest/rooms/room302.cpp
@@ -753,7 +753,7 @@ static void room_302_daemon() {
kernel_synch(KERNEL_ANIM, scratch._9a, KERNEL_NOW, 0);
global[g133] = 0;
kernel_flip_hotspot(137, 0);
- inter_move_object(1, 2);
+ inter_move_object(1, PLAYER);
global[player_score] = -1;
player.commands_allowed = -1;
}
diff --git a/engines/mads/madsv2/forest/rooms/room303.cpp b/engines/mads/madsv2/forest/rooms/room303.cpp
index 4a3fb29764e..18cc993f1c7 100644
--- a/engines/mads/madsv2/forest/rooms/room303.cpp
+++ b/engines/mads/madsv2/forest/rooms/room303.cpp
@@ -631,7 +631,7 @@ static void room_303_daemon() {
kernel_synch(KERNEL_ANIM, scratch._9a, KERNEL_NOW, 0);
global[g133] = 0;
kernel_flip_hotspot(132, 0);
- inter_move_object(6, 2);
+ inter_move_object(6, PLAYER);
player.commands_allowed = -1;
} else if (scratch._a6 == 2) {
dont_frag_the_palette();
@@ -645,7 +645,7 @@ static void room_303_daemon() {
global[g133] = 0;
kernel_flip_hotspot(125, 0);
if (!player_has(5))
- inter_move_object(5, 2);
+ inter_move_object(5, PLAYER);
global[g068] = -1;
player.commands_allowed = -1;
}
diff --git a/engines/mads/madsv2/forest/rooms/room305.cpp b/engines/mads/madsv2/forest/rooms/room305.cpp
index 7ca77fb3bc8..1b9a28dd887 100644
--- a/engines/mads/madsv2/forest/rooms/room305.cpp
+++ b/engines/mads/madsv2/forest/rooms/room305.cpp
@@ -934,7 +934,7 @@ static void room_305_daemon() {
global[g133] = 0;
kernel_flip_hotspot(145, false);
if (!player_has(7))
- inter_move_object(7, 2);
+ inter_move_object(7, PLAYER);
global[g069] = -1;
global[player_score] = -1;
player.commands_allowed = -1;
diff --git a/engines/mads/madsv2/forest/rooms/room307.cpp b/engines/mads/madsv2/forest/rooms/room307.cpp
index 01a5918f0fc..d6087fe13cf 100644
--- a/engines/mads/madsv2/forest/rooms/room307.cpp
+++ b/engines/mads/madsv2/forest/rooms/room307.cpp
@@ -197,13 +197,13 @@ static void room_307_anim3() {
int16 old = seq[1];
kernel_seq_delete(seq[1]);
kernel_synch(KERNEL_SERIES, old, KERNEL_ANIM, aa[2]);
- inter_move_object(14, 2);
+ inter_move_object(14, PLAYER);
break;
}
case 22: {
int16 old = seq[0];
kernel_seq_delete(seq[0]);
- inter_move_object(4, 2);
+ inter_move_object(4, PLAYER);
kernel_synch(KERNEL_SERIES, old, KERNEL_ANIM, aa[2]);
kernel_flip_hotspot(113, 0);
break;
@@ -783,8 +783,8 @@ static void room_307_daemon() {
kernel_synch(KERNEL_ANIM, aa[8], KERNEL_PLAYER, 0);
} else {
kernel_synch(KERNEL_ANIM, aa[9], KERNEL_NOW, 0);
- inter_move_object(14, 2);
- inter_move_object(4, 2);
+ inter_move_object(14, PLAYER);
+ inter_move_object(4, PLAYER);
}
break;
}
diff --git a/engines/mads/madsv2/forest/rooms/room308.cpp b/engines/mads/madsv2/forest/rooms/room308.cpp
index 1f10d3001c0..f34a61db327 100644
--- a/engines/mads/madsv2/forest/rooms/room308.cpp
+++ b/engines/mads/madsv2/forest/rooms/room308.cpp
@@ -867,10 +867,10 @@ static void room_308_anim22() {
object_set_quality(5, -1, -1);
object_set_quality(1, -1, -1);
object_set_quality(15, -1, -1);
- inter_move_object(1, 1);
- inter_move_object(15, 1);
- inter_move_object(4, 2);
- inter_move_object(14, 2);
+ inter_move_object(1, NOWHERE);
+ inter_move_object(15, NOWHERE);
+ inter_move_object(4, PLAYER);
+ inter_move_object(14, PLAYER);
global[player_score] = -1;
new_room = 401;
}
@@ -894,8 +894,8 @@ static void room_308_anim23() {
object_set_quality(5, -1, -1);
object_set_quality(1, -1, -1);
object_set_quality(15, -1, -1);
- inter_move_object(4, 2);
- inter_move_object(14, 2);
+ inter_move_object(4, PLAYER);
+ inter_move_object(14, PLAYER);
global[player_score] = -1;
if (global[g064] != 0)
new_room = 322;
@@ -950,15 +950,15 @@ static void room_308_anim25() {
object_set_quality(5, -1, -1);
object_set_quality(1, -1, -1);
object_set_quality(15, -1, -1);
- inter_move_object(1, 1);
- inter_move_object(15, 1);
+ inter_move_object(1, NOWHERE);
+ inter_move_object(15, NOWHERE);
kernel_timing_trigger(140, 112);
}
}
static void room_308_init() {
- inter_move_object(4, 1);
- inter_move_object(14, 1);
+ inter_move_object(4, NOWHERE);
+ inter_move_object(14, NOWHERE);
if (!player_has_been_in_room(401)) {
if (previous_room == 307 || previous_room == 322) {
@@ -1209,8 +1209,8 @@ static void room_308_daemon() {
object_set_quality(5, -1, -1);
object_set_quality(1, -1, -1);
object_set_quality(15, -1, -1);
- inter_move_object(4, 2);
- inter_move_object(14, 2);
+ inter_move_object(4, PLAYER);
+ inter_move_object(14, PLAYER);
global[player_score] = -1;
if (global[g064] != 0)
new_room = 322;
@@ -1250,8 +1250,8 @@ static void room_308_daemon() {
break;
case 112:
- inter_move_object(4, 2);
- inter_move_object(14, 2);
+ inter_move_object(4, PLAYER);
+ inter_move_object(14, PLAYER);
global[player_score] = -1;
new_room = 401;
break;
diff --git a/engines/mads/madsv2/forest/rooms/room321.cpp b/engines/mads/madsv2/forest/rooms/room321.cpp
index 1f3f0234b56..243274a5fd8 100644
--- a/engines/mads/madsv2/forest/rooms/room321.cpp
+++ b/engines/mads/madsv2/forest/rooms/room321.cpp
@@ -710,7 +710,7 @@ static void room_321_daemon() {
global[g133] = 0;
room_321_anim2();
kernel_flip_hotspot(132, 0);
- inter_move_object(6, 2);
+ inter_move_object(6, PLAYER);
global[player_score] = -1;
player.commands_allowed = -1;
} else if (scratch._a6 == 2) {
@@ -726,7 +726,7 @@ static void room_321_daemon() {
room_321_anim2();
kernel_flip_hotspot(125, 0);
if (!player_has(5))
- inter_move_object(5, 2);
+ inter_move_object(5, PLAYER);
global[g068] = -1;
global[player_score] = -1;
player.commands_allowed = -1;
diff --git a/engines/mads/madsv2/forest/rooms/room322.cpp b/engines/mads/madsv2/forest/rooms/room322.cpp
index a569b91580e..3d6e8997863 100644
--- a/engines/mads/madsv2/forest/rooms/room322.cpp
+++ b/engines/mads/madsv2/forest/rooms/room322.cpp
@@ -188,11 +188,11 @@ static void room_322_anim2() {
seq_handle = seq[1];
kernel_seq_delete(seq_handle);
kernel_synch(KERNEL_SERIES, seq_handle, KERNEL_ANIM, aa[2]);
- inter_move_object(14, 2);
+ inter_move_object(14, PLAYER);
} else if (cur == 22) {
seq_handle = seq[0];
kernel_seq_delete(seq_handle);
- inter_move_object(4, 2);
+ inter_move_object(4, PLAYER);
kernel_synch(KERNEL_SERIES, seq_handle, KERNEL_ANIM, aa[2]);
kernel_flip_hotspot(113, 0);
} else if (cur == 28) {
@@ -576,8 +576,8 @@ static void room_322_daemon() {
kernel_synch(KERNEL_ANIM, aa[8], KERNEL_NOW, 0);
} else {
kernel_synch(KERNEL_ANIM, aa[9], KERNEL_NOW, 0);
- inter_move_object(14, 2);
- inter_move_object(4, 2);
+ inter_move_object(14, PLAYER);
+ inter_move_object(4, PLAYER);
}
break;
}
diff --git a/engines/mads/madsv2/forest/rooms/room403.cpp b/engines/mads/madsv2/forest/rooms/room403.cpp
index aa090828af5..b0e840361bf 100644
--- a/engines/mads/madsv2/forest/rooms/room403.cpp
+++ b/engines/mads/madsv2/forest/rooms/room403.cpp
@@ -621,7 +621,7 @@ static void room_403_daemon() {
kernel_synch(KERNEL_ANIM, scratch._9a, KERNEL_NOW, 0);
global[g133] = 0;
kernel_flip_hotspot(166, 0);
- inter_move_object(13, 2);
+ inter_move_object(13, PLAYER);
display_interface();
player.commands_allowed = -1;
if (config_file.forest1 != 0)
diff --git a/engines/mads/madsv2/forest/rooms/room404.cpp b/engines/mads/madsv2/forest/rooms/room404.cpp
index 471ef1fcdd5..f867583e041 100644
--- a/engines/mads/madsv2/forest/rooms/room404.cpp
+++ b/engines/mads/madsv2/forest/rooms/room404.cpp
@@ -710,7 +710,7 @@ static void room_404_daemon() {
global[g081] = -1;
kernel_flip_hotspot(107, 0);
object_set_quality(13, 0, 0L);
- inter_move_object(13, 1);
+ inter_move_object(13, NOWHERE);
display_interface();
if (global[walker_converse_state]) {
global[walker_converse_state] = 0;
Commit: 5f6d5e8475eba05bac4e7b17cf66ad97846a640b
https://github.com/scummvm/scummvm/commit/5f6d5e8475eba05bac4e7b17cf66ad97846a640b
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2026-06-25T20:19:22+10:00
Commit Message:
MADS: FOREST: Add pebble to inventory list
Changed paths:
engines/mads/madsv2/forest/mads/inventory.h
engines/mads/madsv2/forest/rooms/room303.cpp
engines/mads/madsv2/forest/rooms/room321.cpp
diff --git a/engines/mads/madsv2/forest/mads/inventory.h b/engines/mads/madsv2/forest/mads/inventory.h
index 4e442c7c034..be15aa5b04b 100644
--- a/engines/mads/madsv2/forest/mads/inventory.h
+++ b/engines/mads/madsv2/forest/mads/inventory.h
@@ -30,6 +30,7 @@ namespace Forest {
enum {
cogs = 0,
+ pebbles = 5,
twine = 8,
planks = 11
};
diff --git a/engines/mads/madsv2/forest/rooms/room303.cpp b/engines/mads/madsv2/forest/rooms/room303.cpp
index 18cc993f1c7..58e66c04967 100644
--- a/engines/mads/madsv2/forest/rooms/room303.cpp
+++ b/engines/mads/madsv2/forest/rooms/room303.cpp
@@ -644,8 +644,8 @@ static void room_303_daemon() {
kernel_synch(KERNEL_ANIM, scratch._9a, KERNEL_NOW, 0);
global[g133] = 0;
kernel_flip_hotspot(125, 0);
- if (!player_has(5))
- inter_move_object(5, PLAYER);
+ if (!player_has(pebbles))
+ inter_move_object(pebbles, PLAYER);
global[g068] = -1;
player.commands_allowed = -1;
}
diff --git a/engines/mads/madsv2/forest/rooms/room321.cpp b/engines/mads/madsv2/forest/rooms/room321.cpp
index 243274a5fd8..99823d318f2 100644
--- a/engines/mads/madsv2/forest/rooms/room321.cpp
+++ b/engines/mads/madsv2/forest/rooms/room321.cpp
@@ -726,7 +726,7 @@ static void room_321_daemon() {
room_321_anim2();
kernel_flip_hotspot(125, 0);
if (!player_has(5))
- inter_move_object(5, PLAYER);
+ inter_move_object(pebbles, PLAYER);
global[g068] = -1;
global[player_score] = -1;
player.commands_allowed = -1;
Commit: 046fafc1f10cd111c7e33460384ae8a0346f4aac
https://github.com/scummvm/scummvm/commit/046fafc1f10cd111c7e33460384ae8a0346f4aac
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2026-06-25T20:19:22+10:00
Commit Message:
MADS: FOREST: Add support for second distinct digi format
Changed paths:
engines/mads/madsv2/forest/digi.cpp
diff --git a/engines/mads/madsv2/forest/digi.cpp b/engines/mads/madsv2/forest/digi.cpp
index 16c5f20e0fe..900a1632df1 100644
--- a/engines/mads/madsv2/forest/digi.cpp
+++ b/engines/mads/madsv2/forest/digi.cpp
@@ -20,6 +20,7 @@
*/
#include "audio/decoders/adpcm.h"
+#include "audio/decoders/raw.h"
#include "mads/madsv2/forest/digi.h"
#include "mads/madsv2/forest/forest.h"
#include "mads/madsv2/core/env.h"
@@ -46,22 +47,28 @@ DigiPlayer::DigiPlayer(Audio::Mixer *mixer) : _mixer(mixer) {
void DigiPlayer::play(const char *name, int slot) {
stop(slot);
DigiChannel &c = _channels[slot - 1];
-
+ Audio::AudioStream *audioStream;
Common::SeekableReadStream *src;
+
src = env_open(Common::String::format("*%s.rac", name).c_str());
- if (!src)
- src = env_open(Common::String::format("*%s.raw", name).c_str());
+ if (src) {
+ // Skip past the HMI header
+ src->seek(0x20);
- if (!src) {
- warning("Could not open digi sound - %s", name);
- return;
- }
+ audioStream = Audio::makeADPCMStream(src, DisposeAfterUse::YES,
+ src->size() - 0x20, Audio::kADPCMApple, 11025, 1);
- // Skip past the HMI header
- src->seek(0x20);
+ } else {
+ src = env_open(Common::String::format("*%s.raw", name).c_str());
+ if (src) {
+ // Raw audio
+ audioStream = Audio::makeRawStream(src, 11025, Audio::FLAG_UNSIGNED);
+ } else {
+ warning("Could not open digi sound - %s", name);
+ return;
+ }
+ }
- Audio::AudioStream *audioStream = Audio::makeADPCMStream(src, DisposeAfterUse::YES,
- src->size() - 0x20, Audio::kADPCMApple, 11025, 1);
_mixer->playStream(Audio::Mixer::kSpeechSoundType, &c._soundHandle, audioStream);
c._isPlaying = true;
}
More information about the Scummvm-git-logs
mailing list