[Scummvm-git-logs] scummvm master -> f96c3b92517f976315ecfc8398a31a462cf21b5a
dreammaster
noreply at scummvm.org
Sun May 24 10:17:23 UTC 2026
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://api.github.com/repos/scummvm/scummvm .
Summary:
f96c3b9251 MADS: DRAGONSPHERE: Cleanup for room 102 Queen's Bedroom
Commit: f96c3b92517f976315ecfc8398a31a462cf21b5a
https://github.com/scummvm/scummvm/commit/f96c3b92517f976315ecfc8398a31a462cf21b5a
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2026-05-24T20:17:15+10:00
Commit Message:
MADS: DRAGONSPHERE: Cleanup for room 102 Queen's Bedroom
Changed paths:
engines/mads/madsv2/dragonsphere/mads/words.h
engines/mads/madsv2/dragonsphere/rooms/room102.cpp
diff --git a/engines/mads/madsv2/dragonsphere/mads/words.h b/engines/mads/madsv2/dragonsphere/mads/words.h
index 73a04c3d073..e2e80e319d8 100644
--- a/engines/mads/madsv2/dragonsphere/mads/words.h
+++ b/engines/mads/madsv2/dragonsphere/mads/words.h
@@ -40,7 +40,6 @@ enum {
words_close = 11,
words_throw = 12,
words_walk_to = 13,
- words_walk_into = 39,
words_floor = 16,
words_walk_across = 17,
words_rug = 18,
@@ -65,6 +64,7 @@ enum {
words_exit = 36,
words_walk_through = 37,
words_hall_doorway = 38,
+ words_walk_into = 39,
words_wall_plaque = 40,
words_decoration = 41,
words_swords = 42,
@@ -191,6 +191,7 @@ enum {
words_table = 198,
words_bookshelf = 199,
words_chair = 202,
+ words_basket = 204,
words_guard_stool = 206,
words_rocks = 207,
words_dividing_wall = 208,
@@ -218,9 +219,12 @@ enum {
words_candlestick = 237,
words_desk = 238,
words_turn = 239,
+ words_door_to_king_s_room = 245,
words_door_to_meeting_room = 249,
words_door_to_ballroom = 250,
words_flowers = 251,
+ words_shutters = 252,
+ words_bookcase = 253,
words_door_to_courtyard = 254,
words_platform = 255,
words_step = 256,
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room102.cpp b/engines/mads/madsv2/dragonsphere/rooms/room102.cpp
index 698b34e6211..17ac6af5a28 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room102.cpp
+++ b/engines/mads/madsv2/dragonsphere/rooms/room102.cpp
@@ -40,19 +40,6 @@ namespace MADSV2 {
namespace Dragonsphere {
namespace Rooms {
-// ---------------------------------------------------------------------------
-// Scratch layout (matches ROOM102.MAC)
-//
-// game.scratch offsets:
-// sprite[0..14] = 0x00..0x1C (int16 each)
-// sequence[0..14] = 0x1E..0x3A
-// animation[0..3] = 0x3C..0x42
-// diary1_id = 0x44
-// diary2_id = 0x46
-// diary_frame = 0x48
-// animation_running = 0x4A
-// temp = 0x4C
-// ---------------------------------------------------------------------------
struct Scratch {
int16 sprite[15]; // ss[] â series handles
int16 sequence[15]; // seq[] â sequence handles
@@ -100,20 +87,9 @@ static Scratch scratch;
#define DIARY1 1
#define DIARY2 2
-// Vocabulary word IDs (from VOCAB.DB; formula: 1-based-line + 13)
-// Hardcoded verbs (VOCABH.DB):
-// look=3, take=4, push=5, open=6, pull=10, close=11, walk_to=13
-// VOCAB.DB-derived nouns (verified against disassembly where noted):
-// walk_through=37 (â), look_at=30 (â)
-// floor=16, rug=18, wall=20, bed=21, chest=23, window=24, nightstand=25
-// tapestry=26 (â), fireplace=34, fireplace_screen=35
-// decoration=41 (â), ceiling=196, door_to_hallway=197
-// wood_basket=204, door_to_king_s_room=245 (â)
-// flowers=251, shutters=252, bookcase=253, diaries=264, sconce=329
-
// ---------------------------------------------------------------------------
-void room_102_init() {
+static void room_102_init() {
// Load sprite series (fx_reach_diaries / kgrh_9 is intentionally skipped)
ss[fx_diary1] = kernel_load_series(kernel_name('p', 0), false);
ss[fx_diary2] = kernel_load_series(kernel_name('p', 1), false);
@@ -167,10 +143,10 @@ void room_102_init() {
section_1_music();
}
-void room_102_pre_parser() {
+static void room_102_pre_parser() {
}
-void room_102_daemon() {
+static void room_102_daemon() {
int16 reset_frame;
// --- Diary 1 reading sequence ---
@@ -249,15 +225,16 @@ void room_102_daemon() {
}
}
-void room_102_parser() {
+static void room_102_parser() {
if (player.look_around) {
text_show(10201);
player.command_ready = false;
return;
}
- // --- Walk through / open / pull: door to King's room (room 101) ---
- if (player_parse(37, 245, 0) || player_parse(6, 245, 0) || player_parse(10, 245, 0)) {
+ if (player_said_2(walk_through, door_to_king_s_room) ||
+ player_said_2(open, door_to_king_s_room) ||
+ player_said_2(pull, door_to_king_s_room)) {
switch (kernel.trigger) {
case 0:
player.commands_allowed = false;
@@ -291,15 +268,15 @@ void room_102_parser() {
return;
}
- // --- Walk through / open / pull: door to hallway (room 103) ---
- if (player_parse(37, 197, 0) || player_parse(6, 197, 0) || player_parse(10, 197, 0)) {
+ if (player_said_2(walk_through, door_to_hallway) ||
+ player_said_2(open, door_to_hallway) ||
+ player_said_2(pull, door_to_hallway)) {
new_room = 103;
player.command_ready = false;
return;
}
- // --- Take / open: diaries ---
- if (player_parse(4, 264, 0) || player_parse(6, 264, 0)) {
+ if (player_said_2(take, diaries) || player_said_2(open, diaries)) {
switch (kernel.trigger) {
case 0:
player.commands_allowed = false;
@@ -345,148 +322,142 @@ void room_102_parser() {
return;
}
- // --- Look / look at ---
- if (player_parse(3, 0) || player_parse(30, 0)) {
- if (player_parse(34, 0)) {
+ if (player_said_1(look_at) || player_said_1(look_at)) {
+ if (player_said_1(fireplace)) {
text_show(10202);
player.command_ready = false;
return;
}
- if (player_parse(21, 0)) {
+ if (player_said_1(bed)) {
text_show(10203);
player.command_ready = false;
return;
}
- if (player_parse(252, 0)) {
+ if (player_said_1(shutters)) {
text_show(10204);
player.command_ready = false;
return;
}
- if (player_parse(18, 0)) {
+ if (player_said_1(rug)) {
text_show(10206);
player.command_ready = false;
return;
}
- if (player_parse(253, 0)) {
+ if (player_said_1(bookcase)) {
text_show(10208);
player.command_ready = false;
return;
}
- if (player_parse(264, 0)) {
+ if (player_said_1(diaries)) {
text_show(10209);
player.command_ready = false;
return;
}
- if (player_parse(245, 0)) {
+ if (player_said_1(door_to_king_s_room)) {
text_show(10215);
player.command_ready = false;
return;
}
- if (player_parse(251, 0)) {
+ if (player_said_1(flowers)) {
text_show(10216);
player.command_ready = false;
return;
}
- if (player_parse(24, 0)) {
+ if (player_said_1(window)) {
text_show(10217);
player.command_ready = false;
return;
}
- if (player_parse(204, 0)) {
+ if (player_said_1(basket)) {
text_show(10219);
player.command_ready = false;
return;
}
- if (player_parse(35, 0)) {
+ if (player_said_1(fireplace_screen)) {
text_show(10220);
player.command_ready = false;
return;
}
- if (player_parse(25, 0)) {
+ if (player_said_1(nightstand)) {
text_show(10222);
player.command_ready = false;
return;
}
- if (player_parse(197, 0)) {
+ if (player_said_1(door_to_hallway)) {
text_show(10223);
player.command_ready = false;
return;
}
- if (player_parse(23, 0)) {
+ if (player_said_1(chest)) {
text_show(10224);
player.command_ready = false;
return;
}
- if (player_parse(26, 0)) {
+ if (player_said_1(tapestry)) {
text_show(10226);
player.command_ready = false;
return;
}
- if (player_parse(329, 0)) {
+ if (player_said_1(sconce)) {
text_show(10227);
player.command_ready = false;
return;
}
- if (player_parse(16, 0)) {
+ if (player_said_1(floor)) {
text_show(10228);
player.command_ready = false;
return;
}
- if (player_parse(20, 0)) {
+ if (player_said_1(wall)) {
text_show(10229);
player.command_ready = false;
return;
}
- if (player_parse(41, 0)) {
+ if (player_said_1(decoration)) {
text_show(10230);
player.command_ready = false;
return;
}
- if (player_parse(196, 0)) {
+ if (player_said_1(ceiling)) {
text_show(10231);
player.command_ready = false;
return;
}
- return; // no noun matched inside look â do not clear command_ready
+ // no noun matched inside look â do not clear command_ready
+ return;
}
- // --- Open chest ---
- if (player_parse(6, 23, 0)) {
+ if (player_said_2(open, chest)) {
text_show(10224);
player.command_ready = false;
return;
}
- // --- Take flowers ---
- if (player_parse(4, 251, 0)) {
+ if (player_said_2(take, flowers)) {
text_show(10225);
player.command_ready = false;
return;
}
- // --- Open window ---
- if (player_parse(6, 24, 0)) {
+ if (player_said_2(open, window)) {
text_show(10218);
player.command_ready = false;
return;
}
- // --- Push / pull fireplace screen ---
- if ((player_parse(5, 0) || player_parse(10, 0)) && player_parse(35, 0)) {
+ if ((player_said_1(push) || player_said_1(pull)) && player_said_1(fireplace_screen)) {
text_show(10221);
player.command_ready = false;
return;
}
- // --- Close shutters ---
- if (player_parse(11, 252, 0)) {
+ if (player_said_2(close, shutters)) {
text_show(10205);
player.command_ready = false;
return;
}
- // --- Pull rug ---
- if (player_parse(10, 18, 0)) {
+ if (player_said_2(pull, rug)) {
text_show(10207);
player.command_ready = false;
return;
@@ -504,9 +475,6 @@ void room_102_synchronize(Common::Serializer &s) {
s.syncAsSint16LE(local->temp);
}
-void room_102_error() {
-}
-
void room_102_preload() {
room_init_code_pointer = room_102_init;
room_pre_parser_code_pointer = room_102_pre_parser;
More information about the Scummvm-git-logs
mailing list