[Scummvm-git-logs] scummvm master -> bcecd8a7e3f379c148c55d9afc4f72a64e36cdc4

dreammaster noreply at scummvm.org
Sun May 10 04:45:44 UTC 2026


This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://api.github.com/repos/scummvm/scummvm .

Summary:
411be8b359 MADS: DRAGONSPHERE: Added room 106
bcecd8a7e3 MADS: DRAGONSPHERE: Update remaining room skeleton files


Commit: 411be8b359597994aca07d0488794650ba555366
    https://github.com/scummvm/scummvm/commit/411be8b359597994aca07d0488794650ba555366
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2026-05-10T14:37:31+10:00

Commit Message:
MADS: DRAGONSPHERE: Added room 106

Changed paths:
    engines/mads/madsv2/dragonsphere/mads/conv.h
    engines/mads/madsv2/dragonsphere/mads/inventory.h
    engines/mads/madsv2/dragonsphere/mads/words.h
    engines/mads/madsv2/dragonsphere/rooms/room105.cpp
    engines/mads/madsv2/dragonsphere/rooms/room106.cpp
    engines/mads/madsv2/dragonsphere/rooms/room106.h


diff --git a/engines/mads/madsv2/dragonsphere/mads/conv.h b/engines/mads/madsv2/dragonsphere/mads/conv.h
index 3c833d73d73..8a0dadad7c6 100644
--- a/engines/mads/madsv2/dragonsphere/mads/conv.h
+++ b/engines/mads/madsv2/dragonsphere/mads/conv.h
@@ -37,6 +37,23 @@ enum {
 	conv002_flirt_rand = 2
 };
 
+enum {
+	conv003_replies_b_b = 2,
+	conv003_exit_b_b = 8,
+	conv003_replies_defeat = 5
+};
+
+enum {
+	conv034_five_b_b = 4,
+	conv034_seven_only = 7,
+	conv034_eight_b_b = 9,
+	conv034_eight_only = 10,
+	conv034_nine_only = 11,
+	conv034_final_only = 15,
+	conv034_exit_a_a = 16,
+	conv034_exit_b_b = 17
+};
+
 } // namespace Dragonsphere
 } // namespace MADSV2
 } // namespace MADS
diff --git a/engines/mads/madsv2/dragonsphere/mads/inventory.h b/engines/mads/madsv2/dragonsphere/mads/inventory.h
index 582c01b86d0..1ad6da59151 100644
--- a/engines/mads/madsv2/dragonsphere/mads/inventory.h
+++ b/engines/mads/madsv2/dragonsphere/mads/inventory.h
@@ -31,7 +31,13 @@ namespace Dragonsphere {
 enum {
 	dummy  = 0,
 	goblet = 5,
-	bone   = 6
+	bone   = 6,
+	rare_coin = 38,
+	crystal_flower = 39,
+	ruby_ring = 41,
+	gold_nugget = 42,
+	magic_music_box = 43,
+	emerald = 44
 };
 
 } // namespace Dragonsphere
diff --git a/engines/mads/madsv2/dragonsphere/mads/words.h b/engines/mads/madsv2/dragonsphere/mads/words.h
index 0632a5c8777..2fde0fd32eb 100644
--- a/engines/mads/madsv2/dragonsphere/mads/words.h
+++ b/engines/mads/madsv2/dragonsphere/mads/words.h
@@ -41,24 +41,37 @@ enum {
 
 // Vocabulary word IDs (verified against release disassembly)
 enum {
-	words_floor              =  16,
-	words_wall               =  20,
-	words_window             =  24,
-	words_tapestry           =  26,
-	words_look_at            =  30,
-	words_walk_through       =  37,
-	words_goblet             =  59,
-	words_bone               =  62,
-	words_brazier            = 175,
-	words_door_to_throne_room = 176,
-	words_door_to_hallway    = 197,
-	words_ceiling            = 196,
-	words_chair              = 202,
-	words_dividing_wall      = 208,
-	words_bucket             = 225,
-	words_sconce             = 329,
-	words_dining_table       = 178,
-	words_scullery_maid      = 266
+	words_floor                =  16,
+	words_carpet               =  19,
+	words_wall                 =  20,
+	words_window               =  24,
+	words_tapestry             =  26,
+	words_look_at              =  30,
+	words_walk_through         =  37,
+	words_wall_plaque          =  40,
+	words_goblet               =  59,
+	words_bone                 =  62,
+	words_brazier              = 175,
+	words_door_to_throne_room  = 176,
+	words_door_to_council_room = 190,
+	words_ceiling              = 196,
+	words_door_to_hallway      = 197,
+	words_table                = 198,
+	words_chair                = 202,
+	words_dividing_wall        = 208,
+	words_bucket               = 225,
+	words_platform             = 255,
+	words_step                 = 256,
+	words_queen_s_throne       = 260,
+	words_sconce               = 329,
+	words_dining_table         = 178,
+	words_door_to_meeting_room = 249,
+	words_door_to_ballroom     = 250,
+	words_door_to_courtyard    = 254,
+	words_king_s_throne        = 258,
+	words_scullery_maid        = 266,
+	words_sit_on               = 363,
+	words_Dragonsphere         = 571
 };
 
 } // namespace Dragonsphere
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room105.cpp b/engines/mads/madsv2/dragonsphere/rooms/room105.cpp
index fa5bd447be2..711eb723ec2 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room105.cpp
+++ b/engines/mads/madsv2/dragonsphere/rooms/room105.cpp
@@ -79,7 +79,7 @@ struct Scratch {
 	int16 goblet_id;        // 0x5A
 };
 
-#define local ((Scratch *)(&game.scratch[0]))
+#define local (&scratch)
 #define ss    local->sprite
 #define seq   local->sequence
 #define aa    local->animation
@@ -166,6 +166,8 @@ struct Scratch {
 #define ROOM_105_TAKE_BONE2       84
 #define ROOM_105_TAKE_BONE3       85
 
+static Scratch scratch;
+
 
 void room_105_init() {
 	ss[fx_fire_left]  = kernel_load_series(kernel_name('x', 0), false);
@@ -767,10 +769,21 @@ done:
 	;
 }
 
-void room_105_error() {
-}
-
 void room_105_synchronize(Common::Serializer &s) {
+	for (int16 &v : scratch.sprite)    s.syncAsSint16LE(v);
+	for (int16 &v : scratch.sequence)  s.syncAsSint16LE(v);
+	for (int16 &v : scratch.animation) s.syncAsSint16LE(v);
+	s.syncAsSint16LE(scratch.temp);
+	s.syncAsSint16LE(scratch.maid_frame);
+	s.syncAsSint16LE(scratch.new_action);
+	s.syncAsSint16LE(scratch.last_action);
+	s.syncAsSint16LE(scratch.maid_talking);
+	s.syncAsSint16LE(scratch.situp);
+	s.syncAsSint16LE(scratch.good_number);
+	for (int16 &v : scratch.maid_id)   s.syncAsSint16LE(v);
+	s.syncAsSint16LE(scratch.bucket_id);
+	s.syncAsSint16LE(scratch.bone_id);
+	s.syncAsSint16LE(scratch.goblet_id);
 }
 
 void room_105_preload() {
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room106.cpp b/engines/mads/madsv2/dragonsphere/rooms/room106.cpp
index 968bbddbd1b..6a91c854a50 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room106.cpp
+++ b/engines/mads/madsv2/dragonsphere/rooms/room106.cpp
@@ -22,9 +22,15 @@
 #include "mads/madsv2/core/conv.h"
 #include "mads/madsv2/core/game.h"
 #include "mads/madsv2/core/imath.h"
+#include "mads/madsv2/core/inter.h"
 #include "mads/madsv2/core/kernel.h"
+#include "mads/madsv2/core/matte.h"
 #include "mads/madsv2/core/sound.h"
 #include "mads/madsv2/core/text.h"
+#include "mads/madsv2/dragonsphere/mads/conv.h"
+#include "mads/madsv2/dragonsphere/mads/inventory.h"
+#include "mads/madsv2/dragonsphere/mads/sounds.h"
+#include "mads/madsv2/dragonsphere/mads/words.h"
 #include "mads/madsv2/dragonsphere/global.h"
 #include "mads/madsv2/dragonsphere/rooms/section1.h"
 #include "mads/madsv2/dragonsphere/rooms/room106.h"
@@ -34,26 +40,1455 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
-//static Scratch scratch;
+#define local (&scratch)
+#define ss    local->sprite
+#define seq   local->sequence
+#define aa    local->animation
+
+/**
+ * Room local variables
+ */
+struct Scratch {
+	int16 sprite[15];       /* Sprite series handles */
+	int16 sequence[15];     /* Sequence handles      */
+	int16 animation[5];     /* Animation handles     */
+
+	int16 prevent;
+
+	int16 mac_frame;       /* animation frame being held for Macmorn stuff */
+	int16 mac_action;      /* Type of action to run for Macmorn animation */
+	int16 mac_talk_count;  /* counter for Macmorn talking */
+	int16 anim_0_running;
+
+	int16 sit_frame;       /* animation frame being held for sitting stuff */
+	int16 sit_action;      /* Type of action to run for sitting animation */
+	int16 sit_count;       /* delay for looking in a certain direction */
+	int16 anim_1_running;
+
+
+	/* abduction anims */
+	int16 a_mac_frame;       /* animation frame being held for Macmorn stuff */
+	int16 a_mac_action;      /* Type of action to run for Macmorn animation */
+	int16 a_mac_talk_count;  /* counter for Macmorn talking */
+	int16 anim_2_running;
+
+	int16 a_q_frame;       /* animation frame being held for queen stuff */
+	int16 a_q_action;      /* Type of action to run for queen animation */
+	int16 a_q_talk_count;  /* counter for queen talking */
+	int16 anim_3_running;
+
+	int16 a_qm_frame;       /* animation frame being held for QMother stuff */
+	int16 a_qm_action;      /* Type of action to run for QMother animation */
+	int16 a_qm_talk_count;  /* counter for QMother talking */
+	int16 anim_4_running;
+
+};
+
+static Scratch scratch;
+
+
+/* ========================= Sprites ========================= */
+
+#define fx_fire_sconce       1   /* rm106y */
+#define fx_door_104          2   /* rm103x0 */
+#define fx_door_105          3   /* rm103x1 */
+#define fx_open_door         4   /* kgrd_8  */  
+
+
+/* ======================== Triggers ========================= */
+
+#define ROOM_106_DOOR_CLOSES  70 
+#define ROOM_106_DONE_ANIM    80
+#define ROOM_106_POINT        85
+#define ROOM_106_YOU_TALK     90
+#define ROOM_106_DONE_SITTING 98
+#define ROOM_106_RUN_CONV     110
+#define ROOM_106_ME_TALK      115
+#define ROOM_106_NEW_ROOM     120
+#define ROOM_106_END_GAME_1   140
+#define ROOM_106_END_GAME_2   142
+#define ROOM_106_END_GAME_3   144
+
+
+/* walk points */
+#define START_X_ROOM_104     87
+#define START_Y_ROOM_104     95
+#define START_X_ROOM_105     230
+#define START_Y_ROOM_105     95
+#define START_X_ROOM_107     178
+#define START_Y_ROOM_107     152
+#define START_X_ROOM_118     325
+#define START_Y_ROOM_118     135
+#define START_X_ROOM_111     149
+#define START_Y_ROOM_111     129
+
+#define WALK_TO_X_FROM_104   79
+#define WALK_TO_Y_FROM_104   106
+#define WALK_TO_X_FROM_105   238
+#define WALK_TO_Y_FROM_105   106
+
+/* cursor points */
+#define LEFT_TAPESTRY_X      39
+
+#define MAC_CONV_X           144
+#define MAC_CONV_Y           142
+
+#define CONV_3_MACMORN       3
+
+#define MAC_SHUT_UP          0
+#define MAC_TALK             1
+#define MAC_LEAVE            2
+#define MAC_POINT            3
+#define MAC_INVISIBLE        4
+
+#define QUEEN_SHUT_UP          0
+#define QUEEN_TALK             1
+#define QUEEN_FIST             2
+#define QUEEN_GET_UP           3
+#define QUEEN_LEAVE            4
+
+/* actions when King sits down in throne */
+#define LOOK                 0
+#define LEAVE                1
+
+#define SIT_X                112
+#define SIT_Y                130
+
+#define CONV_34_CUT_SCENE    34
+
 
 void room_106_init() {
+	int count;
+
+	if (global[end_of_game]) {
+
+		local->prevent = true;
+		local->anim_0_running = false;
+		local->anim_2_running = false;
+		local->anim_3_running = false;
+		local->anim_4_running = false;
+		local->anim_1_running = false;
+
+		viewing_at_y = ((video_y - display_y) >> 1);
+		kernel_init_dialog();  /* clear interface */
+		kernel_set_interface_mode(INTER_LIMITED_SENTENCES);
+
+		player.commands_allowed = false;
+		player.walker_visible = false;
+		ss[fx_fire_sconce] = kernel_load_series(kernel_name('y', -1), false);
+		ss[fx_door_104] = kernel_load_series(kernel_name('x', 0), false);
+		ss[fx_door_105] = kernel_load_series(kernel_name('x', 1), false);
+
+		seq[fx_fire_sconce] = kernel_seq_forward(ss[fx_fire_sconce], false, 7, 0, 0, 0);
+
+		seq[fx_door_104] = kernel_seq_stamp(ss[fx_door_104], false, KERNEL_FIRST);
+		kernel_seq_depth(seq[fx_door_104], 8);
+		seq[fx_door_105] = kernel_seq_stamp(ss[fx_door_105], false, KERNEL_FIRST);
+		kernel_seq_depth(seq[fx_door_105], 8);
+
+		if (global[llanie_status] == IS_SAVED) {
+			if (player_has(rare_coin) && player_has(crystal_flower) && player_has(ruby_ring) &&
+				player_has(gold_nugget) && player_has(magic_music_box) && player_has(emerald)) {
+				aa[0] = kernel_run_animation(kernel_name('e', 3), ROOM_106_END_GAME_1);
+
+			} else {
+				aa[0] = kernel_run_animation(kernel_name('e', 2), ROOM_106_END_GAME_1);
+			}
+
+		} else {
+			aa[0] = kernel_run_animation(kernel_name('e', 1), ROOM_106_END_GAME_1);
+		}
+
+	} else {
+
+		conv_get(CONV_3_MACMORN);
+
+		/* Load sprite series */
+
+		ss[fx_fire_sconce] = kernel_load_series(kernel_name('y', -1), false);
+		ss[fx_door_104] = kernel_load_series(kernel_name('x', 0), false);
+		ss[fx_door_105] = kernel_load_series(kernel_name('x', 1), false);
+
+		if (previous_room != 614) {
+			ss[fx_open_door] = kernel_load_series("*KGRD_8", false);
+		}
+
+		if (previous_room != KERNEL_RESTORING_GAME) {
+			local->prevent = false;
+			local->anim_0_running = false;
+			local->anim_2_running = false;
+			local->anim_3_running = false;
+			local->anim_4_running = false;
+			if (previous_room != 111) {
+				local->anim_1_running = false;
+			}
+		}
+
+		local->mac_talk_count = 0;
+		local->a_q_talk_count = 0;
+		local->a_qm_talk_count = 0;
+		local->a_mac_talk_count = 0;
+
+		/* Start continuous sequences */
+
+		seq[fx_fire_sconce] = kernel_seq_forward(ss[fx_fire_sconce], false, 7, 0, 0, 0);
+
+		if (previous_room == 107 || previous_room == 118 ||
+			previous_room == 111) {
+			seq[fx_door_104] = kernel_seq_stamp(ss[fx_door_104], false, KERNEL_FIRST);
+			kernel_seq_depth(seq[fx_door_104], 8);
+			seq[fx_door_105] = kernel_seq_stamp(ss[fx_door_105], false, KERNEL_FIRST);
+			kernel_seq_depth(seq[fx_door_105], 8);
+
+		} else if (previous_room == 614) {
+			seq[fx_door_104] = kernel_seq_stamp(ss[fx_door_104], false, KERNEL_FIRST);
+			kernel_seq_depth(seq[fx_door_104], 8);
+		}
+
+		if (previous_room == 105) {      /* Player comes from Ballroom  */
+			seq[fx_door_104] = kernel_seq_stamp(ss[fx_door_104], false, KERNEL_FIRST);
+			kernel_seq_depth(seq[fx_door_104], 8);
+			seq[fx_door_105] = kernel_seq_stamp(ss[fx_door_105], false, KERNEL_LAST);
+			kernel_seq_depth(seq[fx_door_105], 8);
+
+			player.x = START_X_ROOM_105;
+			player.y = START_Y_ROOM_105;
+			player.facing = FACING_SOUTH;
+
+			if (player.been_here_before) {
+				player_walk(WALK_TO_X_FROM_105, WALK_TO_Y_FROM_105, FACING_SOUTH);
+				player_walk_trigger(ROOM_106_DOOR_CLOSES + 2);
+			} else {
+				aa[0] = kernel_run_animation(kernel_name('m', 1), ROOM_106_DONE_ANIM);
+				local->anim_0_running = true;
+				local->mac_action = MAC_TALK;
+				player.commands_allowed = false;
+				player_walk(MAC_CONV_X, MAC_CONV_Y, FACING_NORTHWEST);
+			}
+
+		} else if (previous_room == 118) {      /* Player comes from Courtyard */
+
+			local->prevent = true;
+
+			if (player.been_here_before) {
+				player_first_walk(START_X_ROOM_118, START_Y_ROOM_118, FACING_WEST,
+					START_X_ROOM_118 - 30, START_Y_ROOM_118, FACING_WEST, true);
+			} else {
+				aa[0] = kernel_run_animation(kernel_name('m', 1), ROOM_106_DONE_ANIM);
+				local->anim_0_running = true;
+				local->mac_action = MAC_TALK;
+				player.commands_allowed = false;
+				player_first_walk(START_X_ROOM_118, START_Y_ROOM_118, FACING_WEST,
+					MAC_CONV_X, MAC_CONV_Y, FACING_NORTHWEST, true);
+			}
+
+		} else if (previous_room == 107) {      /* Player comes from Council Chamber */
+			player.x = START_X_ROOM_107;
+			player.y = START_Y_ROOM_107;
+			player.facing = FACING_NORTHWEST;
+
+		} else if (previous_room == 614) {      /* Cut scene */
+
+			conv_get(CONV_34_CUT_SCENE);
+
+			kernel_init_dialog();  /* clear interface */
+			kernel_set_interface_mode(INTER_LIMITED_SENTENCES);
+
+			player.commands_allowed = false;
+			player.walker_visible = false;
+			local->prevent = true;
+
+			aa[2] = kernel_run_animation(kernel_name('m', 2), 0);
+			local->anim_2_running = true;
+			local->a_mac_action = MAC_INVISIBLE;
+			kernel_reset_animation(aa[2], 116);
+
+			aa[4] = kernel_run_animation(kernel_name('q', 2), 0);
+			local->anim_4_running = true;
+			local->a_qm_action = QUEEN_SHUT_UP;
+			kernel_reset_animation(aa[4], 8);
+
+			aa[3] = kernel_run_animation(kernel_name('q', 1), 0);
+			local->anim_3_running = true;
+			local->a_q_action = QUEEN_SHUT_UP;
+
+			kernel_timing_trigger(ONE_SECOND, ROOM_106_RUN_CONV);
+
+		} else if (previous_room == 111) {
+			/* Came from looking at Dragonsphere */
+			if (local->anim_1_running) {
+
+				for (count = 0; count < room_num_spots; count++) {
+					if (room_spots[count].vocab == words_king_s_throne) {
+						room_spots[count].verb = words_look_at;
+						room_spots[count].cursor_number = 1;
+					}
+				}
+
+				aa[1] = kernel_run_animation(kernel_name('s', 1), 0);
+				player.walker_visible = false;
+				local->sit_action = LOOK;
+				local->sit_count = 0;
+				player.x = SIT_X;
+				player.y = SIT_Y;
+				kernel_reset_animation(aa[1], 33);
+
+			} else {
+				player.x = START_X_ROOM_111;
+				player.y = START_Y_ROOM_111;
+				player.facing = FACING_NORTHEAST;
+			}
+
+		} else if (previous_room != KERNEL_RESTORING_GAME) { /* Player comes from Meeting Chamber rm104 */
+			seq[fx_door_105] = kernel_seq_stamp(ss[fx_door_105], false, KERNEL_FIRST);
+			kernel_seq_depth(seq[fx_door_105], 8);
+			player_walk(WALK_TO_X_FROM_104, WALK_TO_Y_FROM_104, FACING_SOUTH);
+			seq[fx_door_104] = kernel_seq_stamp(ss[fx_door_104], false, KERNEL_LAST);
+			kernel_seq_depth(seq[fx_door_104], 8);
+
+			player.x = START_X_ROOM_104;
+			player.y = START_Y_ROOM_104;
+			player.facing = FACING_SOUTH;
+
+			if (player.been_here_before) {
+				player_walk(WALK_TO_X_FROM_104, WALK_TO_Y_FROM_104, FACING_SOUTH);
+				player_walk_trigger(ROOM_106_DOOR_CLOSES);
+			} else {
+				aa[0] = kernel_run_animation(kernel_name('m', 1), ROOM_106_DONE_ANIM);
+				local->anim_0_running = true;
+				local->mac_action = MAC_TALK;
+				player.commands_allowed = false;
+				kernel_reset_animation(aa[0], 151);
+				player_walk(MAC_CONV_X, MAC_CONV_Y, FACING_NORTHWEST);
+			}
+
+		} else if (previous_room == KERNEL_RESTORING_GAME) {
+
+			if (local->anim_1_running) {
+
+				for (count = 0; count < room_num_spots; count++) {
+					if (room_spots[count].vocab == words_king_s_throne) {
+						room_spots[count].verb = words_look_at;
+						room_spots[count].cursor_number = 1;
+					}
+				}
+
+				aa[1] = kernel_run_animation(kernel_name('s', 1), 0);
+				player.walker_visible = false;
+				local->sit_action = LOOK;
+				local->sit_count = 0;
+				kernel_reset_animation(aa[1], 33);
+			}
+
+			if (conv_restore_running == CONV_3_MACMORN) {
+				aa[0] = kernel_run_animation(kernel_name('m', 1), ROOM_106_DONE_ANIM);
+				local->anim_0_running = true;
+				local->mac_action = MAC_SHUT_UP;
+				player.commands_allowed = false;
+				if (local->mac_frame < 20) {
+					kernel_reset_animation(aa[0], 11);
+				} else {
+					kernel_reset_animation(aa[0], 46);
+				}
+				conv_run(CONV_3_MACMORN);
+			}
+
+			seq[fx_door_104] = kernel_seq_stamp
+			(ss[fx_door_104], false, KERNEL_FIRST);
+			kernel_seq_depth(seq[fx_door_104], 8);
+			seq[fx_door_105] = kernel_seq_stamp
+			(ss[fx_door_105], false, KERNEL_FIRST);
+			kernel_seq_depth(seq[fx_door_105], 8);
+		}
+	}
+
+	section_1_music();
+}
+
+
+static void handle_animation_mac() {
+	int mac_reset_frame;
+
+	if (kernel_anim[aa[0]].frame != local->mac_frame) {
+		local->mac_frame = kernel_anim[aa[0]].frame;
+		mac_reset_frame = -1;
+
+		switch (local->mac_frame) {
+
+		case 1:
+		case 151:
+			if (player.y < 110) {
+				if (local->mac_frame == 1) {
+					mac_reset_frame = 0;
+				} else {
+					mac_reset_frame = 150;
+				}
+			}
+			break;
+
+		case 8:    /* stand - king from right */
+		case 157:  /* stand - king from left */
+			player.commands_allowed = false;
+			conv_run(CONV_3_MACMORN);
+			break;
+
+		case 9:
+		case 158:
+			conv_update(true);
+			break;  /* I want conv to start while player is walking into room.  Parser
+					   code won't be called.  But that's ok for this anim. */
+
+		case 11:   /* end of standing and talk */
+		case 12:   /* end of talk */
+		case 13:   /* end of talk */
+		case 159:  /* end of standing */
+
+			if (local->mac_action == MAC_TALK) {
+
+				mac_reset_frame = imath_random(10, 12);
+				++local->mac_talk_count;
+				if (local->mac_talk_count > 15) {
+					local->mac_action = MAC_SHUT_UP;
+					local->mac_talk_count = 0;
+					mac_reset_frame = 13; /* step off of platform (new node) */
+				}
+
+			} else {
+				mac_reset_frame = 13; /* step off of platform (new node) */
+			}
+			break;
+
+		case 46:   /* end of coming off of platform */
+		case 76:   /* end of point                  */
+		case 160:  /* end of talk                   */
+		case 161:  /* end of talk                   */
+		case 162:  /* end of talk                   */
+
+			switch (local->mac_action) {
+
+			case MAC_TALK:
+				mac_reset_frame = imath_random(159, 161);
+				++local->mac_talk_count;
+				if (local->mac_talk_count > 15) {
+					local->mac_action = MAC_SHUT_UP;
+					local->mac_talk_count = 0;
+					mac_reset_frame = 45; /* step off of platform (new node) */
+				}
+				break;
+
+			case MAC_POINT:
+				mac_reset_frame = 46;  /* talk */
+				local->mac_action = MAC_SHUT_UP;
+				break;
+
+			case MAC_LEAVE:
+				mac_reset_frame = 76;  /* leave */
+				break;
+
+			case MAC_SHUT_UP:
+				mac_reset_frame = 45;  /* shut up */
+				break;
+			}
+			break;
+
+		case 51:
+			mac_reset_frame = 62;
+			/* skip over long delay of holding up arm (Ginny stuck all these frames in) */
+			break;
+
+		case 148:
+			kernel_abort_animation(aa[0]);
+			player.commands_allowed = true;
+			local->anim_0_running = false;
+			mac_reset_frame = -1;
+			break;
+
+		case 115:
+			kernel_seq_delete(seq[fx_door_104]);
+			sound_play(N_DoorOpens);
+			seq[fx_door_104] = kernel_seq_forward(ss[fx_door_104],
+				false, 7, 0, 0, 1);
+			kernel_seq_depth(seq[fx_door_104], 8);
+			kernel_seq_trigger(seq[fx_door_104],
+				KERNEL_TRIGGER_EXPIRE, 0, ROOM_106_DOOR_CLOSES + 4);
+			break;
+
+		case 136:
+			kernel_seq_delete(seq[fx_door_104]);
+			sound_play(N_DoorCloses);
+			seq[fx_door_104] = kernel_seq_backward(ss[fx_door_104],
+				false, 7, 0, 0, 1);
+			kernel_seq_depth(seq[fx_door_104], 8);
+			kernel_seq_trigger(seq[fx_door_104],
+				KERNEL_TRIGGER_EXPIRE, 0, ROOM_106_DOOR_CLOSES + 5);
+			break;
+		}
+
+		if (mac_reset_frame >= 0) {
+			kernel_reset_animation(aa[0], mac_reset_frame);
+			local->mac_frame = mac_reset_frame;
+		}
+	}
+}
+
+
+static void handle_animation_sit() {
+	int sit_reset_frame;
+
+	if (kernel_anim[aa[1]].frame != local->sit_frame) {
+		local->sit_frame = kernel_anim[aa[1]].frame;
+		sit_reset_frame = -1;
+
+		switch (local->sit_frame) {
+
+		case 31:
+			player.commands_allowed = true;
+			break;
+
+		case 32:  /* end of look around 1 and end of sitting down */
+		case 33:  /* end of look around 2      */
+		case 34:  /* end of look around 3      */
+		case 35:  /* end of look around 4      */
+
+			if (local->sit_action == LOOK) {
+				if (local->sit_count >= imath_random(10, 20)) {
+					local->sit_count = 0;
+					switch (local->sit_frame) {
+					case 31:
+					case 32: sit_reset_frame = 32; break;
+					case 33: sit_reset_frame = imath_random(31, 33); break;
+					case 34: sit_reset_frame = imath_random(32, 34); break;
+					case 35: sit_reset_frame = 33; break;
+					}
+				} else {
+					sit_reset_frame = local->sit_frame - 1;
+					++local->sit_count;
+				}
+
+			} else switch (local->sit_frame) {
+			case 31:
+			case 32:
+			case 33: sit_reset_frame = 35; player.commands_allowed = false; break;
+			case 34: sit_reset_frame = 32; break;
+			case 35: sit_reset_frame = 33; break;
+			}
+			break;
+
+		case 62:
+			player.walker_visible = true;
+			player.commands_allowed = true;
+			local->anim_1_running = false;
+			player_demand_facing(FACING_SOUTH);
+			kernel_synch(KERNEL_PLAYER, 0, KERNEL_ANIM, aa[1]);
+			player.ready_to_walk = true;
+			break;
+		}
+
+		if (sit_reset_frame >= 0) {
+			kernel_reset_animation(aa[1], sit_reset_frame);
+			local->sit_frame = sit_reset_frame;
+		}
+	}
+}
+
+
+static void handle_animation_a_macmorn() {
+	int a_mac_reset_frame;
+	int random;
+
+	if (kernel_anim[aa[2]].frame != local->a_mac_frame) {
+		local->a_mac_frame = kernel_anim[aa[2]].frame;
+		a_mac_reset_frame = -1;
+
+		switch (local->a_mac_frame) {
+
+		case 114: /* just when macmorn and queen leave bottom of screen */
+
+			/* Test for existance of PDD_6.SS.  If not here, */
+			/* then this is demo version else continue game. */
+			/* if (!env_exist (filename)) {
+			  text_show (10625);
+			  game.going = false;
+			  win_status = 1;
+			}  */
+
+			new_room = 614;
+			break;
+
+
+		case 116: /* end of invisible */
+			if (local->a_mac_action == MAC_INVISIBLE) {
+				a_mac_reset_frame = 115;
+
+			} else {
+				a_mac_reset_frame = 0;
+				sound_play(N_QueenMother);
+			}
+			break;
+
+		case 15:  /* somewhere into macmorn coming into room */
+		case 89:  /* right when macmorn grabs the queen      */
+			conv_release();
+			break;
+
+		case 37:  /* end of walking into room */
+		case 38:  /* end of freeze */
+		case 39:  /* end of talk 1 */
+		case 40:  /* end of talk 2 */
+		case 41:  /* end of talk 3 */
+		case 50:  /* end of come from talk */
+
+			switch (local->a_mac_action) {
+
+			case MAC_TALK:
+				if (local->a_mac_talk_count == 0) {
+					random = imath_random(1, 2);
+					if (random == 1) {
+						a_mac_reset_frame = 40;
+					} else {
+						a_mac_reset_frame = imath_random(37, 39);
+						++local->a_mac_talk_count;
+					}
+
+				} else {
+					a_mac_reset_frame = imath_random(37, 39);
+					++local->a_mac_talk_count;
+					if (local->a_mac_talk_count > 15) {
+						local->a_mac_action = MAC_SHUT_UP;
+						local->a_mac_talk_count = 0;
+						a_mac_reset_frame = 37; /* make mac shut up */
+					}
+				}
+				break;
+
+			case MAC_SHUT_UP:
+				a_mac_reset_frame = 37; /* make mac shut up */
+				break;
+
+			case MAC_LEAVE:
+				a_mac_reset_frame = 50; /* make leave */
+				break;
+			}
+			break;
+
+		case 44:  /* end of talk 1 */
+		case 45:  /* end of talk 2 */
+		case 46:  /* end of talk 3 */
+
+			switch (local->a_mac_action) {
+
+			case MAC_TALK:
+				a_mac_reset_frame = imath_random(43, 45);
+				++local->a_mac_talk_count;
+				if (local->a_mac_talk_count > 15) {
+					local->a_mac_action = MAC_SHUT_UP;
+					local->a_mac_talk_count = 0;
+					a_mac_reset_frame = 46; /* make mac shut up */
+				}
+				break;
+
+			default:
+				a_mac_reset_frame = 46; /* make mac shut up */
+				break;
+			}
+			break;
 
+		case 61:
+			kernel_reset_animation(aa[3], 129);
+			kernel_synch(KERNEL_ANIM, aa[2], KERNEL_NOW, 0);
+			kernel_synch(KERNEL_ANIM, aa[3], KERNEL_NOW, 0);
+			break;
+		}
+
+		if (a_mac_reset_frame >= 0) {
+			kernel_reset_animation(aa[2], a_mac_reset_frame);
+			local->a_mac_frame = a_mac_reset_frame;
+		}
+	}
+}
+
+
+
+static void handle_animation_a_queen() {
+	int a_q_reset_frame;
+	int random;
+
+	if (kernel_anim[aa[3]].frame != local->a_q_frame) {
+		local->a_q_frame = kernel_anim[aa[3]].frame;
+		a_q_reset_frame = -1;
+
+		switch (local->a_q_frame) {
+
+		case 1:  /* on throne          */
+		case 2:  /* on throne          */
+		case 3:  /* on throne          */
+		case 16: /* end talk           */
+		case 37: /* end talk with fist */
+
+			switch (local->a_q_action) {
+
+			case QUEEN_TALK:
+				a_q_reset_frame = 3;
+				local->a_q_action = QUEEN_SHUT_UP;
+				/* local->a_q_talk_count = 100; */
+				break;
+
+			case QUEEN_FIST:
+				a_q_reset_frame = 20;
+				local->a_q_action = QUEEN_SHUT_UP;
+				/* local->a_q_talk_count = 100; */
+				break;
+
+			case QUEEN_SHUT_UP:
+				++local->a_q_talk_count;
+				if (local->a_q_talk_count > imath_random(15, 25)) {
+					local->a_q_talk_count = 0;
+					random = imath_random(1, 3);
+					switch (random) {
+					case 1: a_q_reset_frame = imath_random(0, 1); break;
+					case 2: a_q_reset_frame = imath_random(0, 2); break;
+					case 3: a_q_reset_frame = imath_random(1, 2); break;
+					}
+
+				} else {
+					a_q_reset_frame = local->a_q_frame - 1;
+				}
+				break;
+
+			case QUEEN_GET_UP:
+				a_q_reset_frame = 37;
+				local->a_q_action = QUEEN_SHUT_UP;
+				/* local->a_q_talk_count = 100; */
+				break;
+			}
+			break;
+
+		case 42: /* almost end of getting up */
+			conv_release();
+			break;
+
+		case 81:  /* end of get up from throne and freeze standing */
+		case 93:  /* end of talk                                   */
+
+			switch (local->a_q_action) {
+
+			case QUEEN_TALK:
+				a_q_reset_frame = 81;
+				local->a_q_action = QUEEN_SHUT_UP;
+				break;
+
+			default:
+				a_q_reset_frame = 80; /* stay standing */
+				break;
+			}
+			break;
+
+		case 98: /* when queen turns to walk south, send her to 131 to make her invisible */
+			a_q_reset_frame = 130;
+			break;
+
+		case 131:  /* keep queen invisible when she turns to walk south */
+			a_q_reset_frame = 130;
+			break;
+		}
+
+		if (a_q_reset_frame >= 0) {
+			kernel_reset_animation(aa[3], a_q_reset_frame);
+			local->a_q_frame = a_q_reset_frame;
+		}
+	}
 }
 
+
+static void handle_animation_a_qmother() {
+	int a_qm_reset_frame;
+	int random;
+
+	if (kernel_anim[aa[4]].frame != local->a_qm_frame) {
+		local->a_qm_frame = kernel_anim[aa[4]].frame;
+		a_qm_reset_frame = -1;
+
+		switch (local->a_qm_frame) {
+
+		case 9:   /* end of freeze */
+		case 10:  /* end of freeze */
+		case 23:  /* end of freeze */
+
+			switch (local->a_qm_action) {
+
+			case QUEEN_TALK:
+				a_qm_reset_frame = 23;
+				break;
+
+			case QUEEN_FIST:
+				a_qm_reset_frame = 1;
+				local->a_qm_action = QUEEN_SHUT_UP;
+				break;
+
+			case QUEEN_SHUT_UP:
+				++local->a_qm_talk_count;
+				if (local->a_qm_talk_count > imath_random(15, 25)) {
+					local->a_qm_talk_count = 0;
+					random = imath_random(1, 4);
+					switch (random) {
+					case 1: a_qm_reset_frame = 8;  break;
+					case 2: a_qm_reset_frame = 9;  break;
+					case 3: a_qm_reset_frame = 12; break;
+					case 4: a_qm_reset_frame = 23; break;
+					}
+
+				} else {
+					a_qm_reset_frame = local->a_qm_frame - 1;
+				}
+				break;
+			}
+			break;
+
+		case 18:  /* end of freeze */
+
+			switch (local->a_qm_action) {
+
+			case QUEEN_TALK:
+			case QUEEN_FIST:
+				a_qm_reset_frame = 18;
+				break;
+
+			case QUEEN_SHUT_UP:
+				++local->a_qm_talk_count;
+				if (local->a_qm_talk_count > imath_random(20, 30)) {
+					local->a_qm_talk_count = 0;
+					a_qm_reset_frame = imath_random(17, 18);
+
+				} else {
+					a_qm_reset_frame = 17;
+				}
+				break;
+			}
+			break;
+
+		case 24:  /* end of freeze */
+		case 25:  /* end of freeze */
+		case 32:  /* end of talk   */
+		case 44:  /* end of talk   */
+		case 54:  /* end of talk   */
+
+			switch (local->a_qm_action) {
+
+			case QUEEN_TALK:
+				random = imath_random(1, 3);
+				switch (random) {
+				case 1: a_qm_reset_frame = 25;  break;
+				case 2: a_qm_reset_frame = 32;  break;
+				case 3: a_qm_reset_frame = 44;  break;
+				}
+				local->a_qm_action = QUEEN_SHUT_UP;
+				break;
+
+			case QUEEN_FIST:
+				a_qm_reset_frame = 9;
+				break;
+
+			case QUEEN_SHUT_UP:
+				++local->a_qm_talk_count;
+				if (local->a_qm_talk_count > imath_random(15, 25)) {
+					local->a_qm_talk_count = 0;
+					random = imath_random(1, 3);
+					switch (random) {
+					case 1: a_qm_reset_frame = 23;  break;
+					case 2: a_qm_reset_frame = 24;  break;
+					case 3: a_qm_reset_frame = 9;   break;
+					}
+
+				} else {
+					a_qm_reset_frame = local->a_qm_frame - 1;
+				}
+				break;
+			}
+			break;
+		}
+
+		if (a_qm_reset_frame >= 0) {
+			kernel_reset_animation(aa[4], a_qm_reset_frame);
+			local->a_qm_frame = a_qm_reset_frame;
+		}
+	}
+}
+
+
 void room_106_daemon() {
+	int temp;
+
+	if (local->anim_0_running) {
+		handle_animation_mac();
+	}
+
+	if (local->anim_1_running) {
+		handle_animation_sit();
+	}
+
+	if (local->anim_2_running) {
+		handle_animation_a_macmorn();
+	}
+
+	if (local->anim_3_running) {
+		handle_animation_a_queen();
+	}
+
+	if (local->anim_4_running) {
+		handle_animation_a_qmother();
+	}
+
+	if (player.y > 108 && !local->prevent && player.x > 160 && !player.been_here_before) {
+		local->prevent = true;
+		kernel_timing_trigger(1, ROOM_106_DOOR_CLOSES + 2);
+	}  /* close door upon entering from RIGHT side when going to converse with Macmorn */
+
+	if (player.y > 108 && !local->prevent && player.x < 160 && !player.been_here_before) {
+		local->prevent = true;
+		kernel_timing_trigger(1, ROOM_106_DOOR_CLOSES);
+	}  /* close door upon entering from LEFT side when going to converse with Macmorn */
+
+	/* Close either door 104 or 105 when player enters */
+
+	switch (kernel.trigger) {
+
+	case ROOM_106_DOOR_CLOSES: /* left door closes */
+		kernel_seq_delete(seq[fx_door_104]);
+		sound_play(N_DoorCloses);
+		seq[fx_door_104] = kernel_seq_backward(ss[fx_door_104], false,
+			6, 0, 0, 1);
+		kernel_seq_depth(seq[fx_door_104], 5);
+		kernel_seq_range(seq[fx_door_104], 1, 3);
+		kernel_seq_trigger(seq[fx_door_104],
+			KERNEL_TRIGGER_EXPIRE, 0, ROOM_106_DOOR_CLOSES + 1);
+		break;
+
+	case ROOM_106_DOOR_CLOSES + 1:
+		temp = seq[fx_door_104];
+		seq[fx_door_104] = kernel_seq_stamp(ss[fx_door_104], false, KERNEL_FIRST);
+		kernel_seq_depth(seq[fx_door_104], 5);
+		kernel_synch(KERNEL_SERIES, seq[fx_door_104], KERNEL_SERIES, temp);
+		if (player.been_here_before) {
+			player.commands_allowed = true;
+		}
+		break;
+
+	case ROOM_106_DOOR_CLOSES + 2:  /* right door closes */
+		kernel_seq_delete(seq[fx_door_105]);
+		sound_play(N_DoorCloses);
+		seq[fx_door_105] = kernel_seq_backward(ss[fx_door_105], false,
+			6, 0, 0, 1);
+		kernel_seq_depth(seq[fx_door_105], 5);
+		kernel_seq_range(seq[fx_door_105], 1, 3);
+		kernel_seq_trigger(seq[fx_door_105],
+			KERNEL_TRIGGER_EXPIRE, 0, ROOM_106_DOOR_CLOSES + 3);
+		break;
+
+	case ROOM_106_DOOR_CLOSES + 3:
+		temp = seq[fx_door_105];
+		seq[fx_door_105] = kernel_seq_stamp(ss[fx_door_105], false, KERNEL_FIRST);
+		kernel_seq_depth(seq[fx_door_105], 5);
+		kernel_synch(KERNEL_SERIES, seq[fx_door_105], KERNEL_SERIES, temp);
+		if (player.been_here_before) {
+			player.commands_allowed = true;
+		}
+		break;
+	}
+
+	switch (kernel.trigger) {
+	case ROOM_106_DOOR_CLOSES + 4:
+		temp = seq[fx_door_104];
+		seq[fx_door_104] = kernel_seq_stamp(ss[fx_door_104], false, KERNEL_LAST);
+		kernel_seq_depth(seq[fx_door_104], 8);
+		kernel_synch(KERNEL_SERIES, seq[fx_door_104], KERNEL_SERIES, temp);
+		break;
+
+	case ROOM_106_DOOR_CLOSES + 5:
+		player.commands_allowed = true;
+		temp = seq[fx_door_104];
+		seq[fx_door_104] = kernel_seq_stamp(ss[fx_door_104], false, KERNEL_FIRST);
+		kernel_seq_depth(seq[fx_door_104], 5);
+		kernel_synch(KERNEL_SERIES, seq[fx_door_104], KERNEL_SERIES, temp);
+		break;
+	}
+
+	if (kernel.trigger == ROOM_106_RUN_CONV) {
+		conv_run(CONV_34_CUT_SCENE);
+	}
+
+	if (kernel.trigger == ROOM_106_END_GAME_1) {
+		if (global[llanie_status] == IS_SAVED) {
+			new_room = 909;
+		} else {
+			new_room = 206;
+		}
+	}
+}
+
+static void process_conversation_mac() {
+	int you_trig_flag = false;
+
+	if (player_verb == conv003_replies_b_b) {
+		local->mac_action = MAC_SHUT_UP;
+		you_trig_flag = true;
+	}
+
+	if (player_verb == conv003_exit_b_b) {
+		local->mac_action = MAC_LEAVE;
+		you_trig_flag = true;
+	}
 
+	if (player_verb == conv003_replies_defeat) {
+		if (!kernel.trigger) {
+			conv_you_trigger(ROOM_106_POINT);
+			you_trig_flag = true;
+		}
+	}
+
+	switch (kernel.trigger) {
+	case ROOM_106_POINT:
+		local->mac_action = MAC_POINT;
+		you_trig_flag = true;
+		break;
+
+	case ROOM_106_YOU_TALK:
+		local->mac_action = MAC_TALK;
+		break;
+	}
+
+	if (!you_trig_flag) {
+		conv_you_trigger(ROOM_106_YOU_TALK);
+	} /* if you_trig_flag == true, then a you trigger is called from above, not here. */
+
+	local->mac_talk_count = 0;
+}
+
+static void process_conv_abduction() {
+	int you_trig_flag = false;
+	int me_trig_flag = false;
+
+	switch (player_verb) {
+	case conv034_exit_b_b:
+		you_trig_flag = true;
+		me_trig_flag = true;
+		local->a_mac_action = MAC_LEAVE;
+		break;
+
+	case conv034_exit_a_a:
+		you_trig_flag = true;
+		me_trig_flag = true;
+		break;
+
+	case conv034_five_b_b:
+		conv_hold();
+		you_trig_flag = true;
+		me_trig_flag = true;
+		local->a_q_action = QUEEN_GET_UP;
+		break;
+
+	case conv034_eight_b_b:
+		conv_hold();
+		you_trig_flag = true;
+		me_trig_flag = true;
+		local->a_mac_action = MAC_SHUT_UP;
+		break;
+	}
+
+	if (kernel.trigger == ROOM_106_YOU_TALK) {
+		if (player_verb == conv034_eight_only ||
+			player_verb == conv034_final_only ||
+			player_verb == conv034_nine_only) {
+			local->a_mac_action = MAC_TALK;
+			local->a_qm_action = QUEEN_SHUT_UP;
+
+		} else {
+			local->a_q_action = QUEEN_TALK;
+			local->a_qm_action = QUEEN_SHUT_UP;
+		}
+	}
+
+	if (kernel.trigger == ROOM_106_ME_TALK) {
+		local->a_q_action = QUEEN_SHUT_UP;
+		if (player_verb == conv034_seven_only) {
+			local->a_qm_action = QUEEN_FIST;
+		} else if (player_verb != conv034_exit_b_b) {
+			local->a_qm_action = QUEEN_TALK;
+		}
+	}
+
+	if (!you_trig_flag) {
+		conv_you_trigger(ROOM_106_YOU_TALK);
+	} /* if you_trig_flag == true, then a you trigger is called from above, not here. */
+
+	if (!me_trig_flag) {
+		conv_me_trigger(ROOM_106_ME_TALK);
+	} /* if me_trig_flag == true, then a me trigger is called from above, not here. */
+
+	local->a_mac_talk_count = 0;
+	local->a_q_talk_count = 0;
+	local->a_qm_talk_count = 0;
 }
 
 void room_106_pre_parser() {
+	int count;
+
+	if (player_said_2(walk_through, door_to_courtyard) || player_said_2(open, door_to_courtyard) ||
+		player_said_2(pull, door_to_courtyard)) {
+		player.walk_off_edge_to_room = 118;
+	}
 
+	if ((player_said_1(look_at) || player_said_1(look)) &&
+		player_said_1(Dragonsphere)) {
+
+		if (!(global[player_score_flags] & SCORE_LOOK_SPHERE_106)) {
+			global[player_score_flags] = global[player_score_flags] | SCORE_LOOK_SPHERE_106;
+			global[player_score] += 1;
+		}
+
+		player.need_to_walk = true;
+		/* player_walk(START_X_ROOM_111, START_Y_ROOM_111, FACING_NORTHEAST); */
+	}
+
+	if (local->anim_1_running) {
+
+		if ((player_said_1(look_at) || player_said_1(look)) &&
+			player_said_1(king_s_throne)) {
+			player.need_to_walk = false;
+
+		} else if ((player_said_1(look_at) || player_said_1(look)) &&
+			player_said_1(Dragonsphere)) {
+			player.need_to_walk = false;
+
+		} else if (player.need_to_walk) {
+			player.ready_to_walk = false;
+			local->sit_action = LEAVE;
+			for (count = 0; count < room_num_spots; count++) {
+				if (room_spots[count].vocab == words_king_s_throne) {
+					room_spots[count].verb = words_sit_on;
+					room_spots[count].cursor_number = 3;
+				}
+			}
+		}
+	}
 }
 
 void room_106_parser() {
+	int temp;
+	int count;
+
+	if (conv_control.running == CONV_3_MACMORN) {
+		process_conversation_mac();
+		goto handled;
+	}
+
+	if (conv_control.running == CONV_34_CUT_SCENE) {
+		process_conv_abduction();
+		goto handled;
+	}
+
+	if (player.look_around) {
+		text_show(10601);
+		goto handled;
+	}
+
+	if (player_said_2(sit_on, king_s_throne)) {
+
+		for (count = 0; count < room_num_spots; count++) {
+			if (room_spots[count].vocab == words_king_s_throne) {
+				room_spots[count].verb = words_look_at;
+				room_spots[count].cursor_number = 1;
+			}
+		}
+
+		aa[1] = kernel_run_animation(kernel_name('s', 1), 0);
+		player.commands_allowed = false;
+		player.walker_visible = false;
+		local->anim_1_running = true;
+		local->sit_action = LOOK;
+		local->sit_count = 0;
+		kernel_synch(KERNEL_ANIM, aa[1], KERNEL_PLAYER, 0);
+		goto handled;
+	}
+
+	if (player_said_2(walk_through, door_to_meeting_room) || player_said_2(open, door_to_meeting_room) ||
+		player_said_2(pull, door_to_meeting_room)) {
+		switch (kernel.trigger) {
+		case 0:
+			player.commands_allowed = false;
+			player.walker_visible = false;
+			seq[fx_open_door] = kernel_seq_pingpong(ss[fx_open_door], false, 7, 0, 0, 2);
+			kernel_seq_player(seq[fx_open_door], true);
+			kernel_seq_trigger(seq[fx_open_door],
+				KERNEL_TRIGGER_SPRITE, 2, 1);
+			kernel_seq_trigger(seq[fx_open_door],
+				KERNEL_TRIGGER_EXPIRE, 0, 3);
+			break;
+
+		case 1:
+			kernel_seq_delete(seq[fx_door_104]);
+			sound_play(N_DoorOpens);
+			seq[fx_door_104] = kernel_seq_forward(ss[fx_door_104],
+				false, 7, 0, 0, 1);
+			kernel_seq_depth(seq[fx_door_104], 8);
+			kernel_seq_trigger(seq[fx_door_104],
+				KERNEL_TRIGGER_EXPIRE, 0, 2);
+			break;
+
+		case 2:
+			temp = seq[fx_door_104];
+			seq[fx_door_104] = kernel_seq_stamp(ss[fx_door_104], false, KERNEL_LAST);
+			kernel_seq_depth(seq[fx_door_104], 8);
+			kernel_synch(KERNEL_SERIES, seq[fx_door_104], KERNEL_SERIES, temp);
+			break;
+
+		case 3:
+			player.walker_visible = true;
+			kernel_synch(KERNEL_PLAYER, 0, KERNEL_SERIES, seq[fx_open_door]);
+			kernel_timing_trigger(1, 4);
+			break;
+
+		case 4:
+			player_walk(START_X_ROOM_104, START_Y_ROOM_104, FACING_NORTH);
+			player_walk_trigger(5);
+			break;
+
+		case 5:
+			kernel_seq_delete(seq[fx_door_104]);
+			sound_play(N_DoorCloses);
+			seq[fx_door_104] = kernel_seq_backward(ss[fx_door_104], false, 7, 0, 0, 1);
+			kernel_seq_depth(seq[fx_door_104], 1);
+			kernel_seq_trigger(seq[fx_door_104], KERNEL_TRIGGER_EXPIRE, 0, 6);
+			break;
+
+		case 6:
+			temp = seq[fx_door_104];
+			seq[fx_door_104] = kernel_seq_stamp(ss[fx_door_104], false, KERNEL_FIRST);
+			kernel_seq_depth(seq[fx_door_104], 1);
+			kernel_synch(KERNEL_SERIES, seq[fx_door_104], KERNEL_SERIES, temp);
+			kernel_timing_trigger(6, 7);
+			break;
+
+		case 7:
+			new_room = 104;
+			break;
+		}
+		goto handled;
+	}
+
+	if (player_said_2(walk_through, door_to_ballroom) || player_said_2(open, door_to_ballroom) ||
+		player_said_2(pull, door_to_ballroom)) {
+		switch (kernel.trigger) {
+		case 0:
+			player.commands_allowed = false;
+			player.walker_visible = false;
+			seq[fx_open_door] = kernel_seq_pingpong(ss[fx_open_door], true, 7, 0, 0, 2);
+			kernel_seq_player(seq[fx_open_door], true);
+			kernel_seq_trigger(seq[fx_open_door],
+				KERNEL_TRIGGER_SPRITE, 2, 1);
+			kernel_seq_trigger(seq[fx_open_door],
+				KERNEL_TRIGGER_EXPIRE, 0, 3);
+			break;
+
+		case 1:
+			kernel_seq_delete(seq[fx_door_105]);
+			sound_play(N_DoorOpens);
+			seq[fx_door_105] = kernel_seq_forward(ss[fx_door_105],
+				false, 7, 0, 0, 1);
+			kernel_seq_depth(seq[fx_door_105], 8);
+			kernel_seq_trigger(seq[fx_door_105],
+				KERNEL_TRIGGER_EXPIRE, 0, 2);
+			break;
+
+		case 2:
+			temp = seq[fx_door_105];
+			seq[fx_door_105] = kernel_seq_stamp(ss[fx_door_105], false, KERNEL_LAST);
+			kernel_seq_depth(seq[fx_door_105], 8);
+			kernel_synch(KERNEL_SERIES, seq[fx_door_105], KERNEL_SERIES, temp);
+			break;
+
+		case 3:
+			player.walker_visible = true;
+			kernel_synch(KERNEL_PLAYER, 0, KERNEL_SERIES, seq[fx_open_door]);
+			kernel_timing_trigger(1, 4);
+			break;
+
+		case 4:
+			player_walk(START_X_ROOM_105 - 7, START_Y_ROOM_105 - 2, FACING_NORTH);
+			player_walk_trigger(5);
+			break;
+
+		case 5:
+			kernel_seq_delete(seq[fx_door_105]);
+			sound_play(N_DoorCloses);
+			seq[fx_door_105] = kernel_seq_backward(ss[fx_door_105], false, 7, 0, 0, 1);
+			kernel_seq_depth(seq[fx_door_105], 1);
+			kernel_seq_trigger(seq[fx_door_105], KERNEL_TRIGGER_EXPIRE, 0, 6);
+			break;
+
+		case 6:
+			temp = seq[fx_door_105];
+			seq[fx_door_105] = kernel_seq_stamp(ss[fx_door_105], false, KERNEL_FIRST);
+			kernel_seq_depth(seq[fx_door_105], 1);
+			kernel_synch(KERNEL_SERIES, seq[fx_door_105], KERNEL_SERIES, temp);
+			kernel_timing_trigger(6, 7);
+			break;
+
+		case 7:
+			new_room = 105;
+			break;
+		}
+		goto handled;
+	}
+
+	if (player_said_2(walk_through, door_to_council_room) || player_said_2(open, door_to_council_room) ||
+		player_said_2(pull, door_to_council_room)) {
+		new_room = 107;
+		goto handled;
+	}
+
+	if (player_said_1(look) || player_said_1(look_at)) {
+		if (player_said_1(Dragonsphere)) {
+			new_room = 111;
+			goto handled;
+		}
+
+		if (player_said_1(chair)) {
+			text_show(10602);
+			goto handled;
+		}
+
+		if (player_said_1(queen_s_throne)) {
+			text_show(10603);
+			goto handled;
+		}
+
+		if (player_said_1(king_s_throne)) {
+			if (local->anim_1_running) {
+				text_show(10624);
+			} else {
+				text_show(10605);
+			}
+			goto handled;
+		}
+
+		if (player_said_1(door_to_meeting_room)) {
+			text_show(10606);
+			goto handled;
+		}
+
+		if (player_said_1(door_to_courtyard)) {
+			text_show(10607);
+			goto handled;
+		}
+
+		if (player_said_1(door_to_ballroom)) {
+			text_show(10608);
+			goto handled;
+		}
+
+		if (player_said_1(table)) {
+			if (inter_point_x < 120) {
+				text_show(10609);
+			} else {
+				text_show(10623);
+			}
+			goto handled;
+		}
+
+		if (player_said_1(carpet)) {
+			text_show(10610);
+			goto handled;
+		}
+
+		if (player_said_1(tapestry)) {
+			if (inter_point_x <= LEFT_TAPESTRY_X) {
+				text_show(10612);
+			} else {
+				text_show(10613);
+			}
+			goto handled;
+		}
+
+		if (player_said_1(platform)) {
+			text_show(10616);
+			goto handled;
+		}
+
+		if (player_said_1(step)) {
+			text_show(10617);
+			goto handled;
+		}
+
+		if (player_said_1(door_to_council_room)) {
+			text_show(10618);
+			goto handled;
+		}
+
+		if (player_said_1(wall_plaque)) {
+			text_show(10619);
+			goto handled;
+		}
+
+		if (player_said_1(floor)) {
+			text_show(10621);
+			goto handled;
+		}
+	}
+
+	if (player_said_2(sit_on, queen_s_throne)) {
+		text_show(10604);
+		goto handled;
+	}
+
+	if (player_said_2(pull, tapestry)) {
+		text_show(10614);
+		goto handled;
+	}
+
+	if (player_said_2(take, Dragonsphere)) {
+		text_show(10615);
+		goto handled;
+	}
+
+	if (player_said_2(pull, carpet)) {
+		text_show(10611);
+		goto handled;
+	}
+
+	goto done;
+
+handled:
+	player.command_ready = false;
 
+done:
+	;
 }
 
 void room_106_synchronize(Common::Serializer &s) {
-	
+	for (int16 &v : scratch.sprite)    s.syncAsSint16LE(v);
+	for (int16 &v : scratch.sequence)  s.syncAsSint16LE(v);
+	for (int16 &v : scratch.animation) s.syncAsSint16LE(v);
+	s.syncAsSint16LE(scratch.prevent);
+	s.syncAsSint16LE(scratch.mac_frame);
+	s.syncAsSint16LE(scratch.mac_action);
+	s.syncAsSint16LE(scratch.mac_talk_count);
+	s.syncAsSint16LE(scratch.anim_0_running);
+	s.syncAsSint16LE(scratch.sit_frame);
+	s.syncAsSint16LE(scratch.sit_action);
+	s.syncAsSint16LE(scratch.sit_count);
+	s.syncAsSint16LE(scratch.anim_1_running);
+	s.syncAsSint16LE(scratch.a_mac_frame);
+	s.syncAsSint16LE(scratch.a_mac_action);
+	s.syncAsSint16LE(scratch.a_mac_talk_count);
+	s.syncAsSint16LE(scratch.anim_2_running);
+	s.syncAsSint16LE(scratch.a_q_frame);
+	s.syncAsSint16LE(scratch.a_q_action);
+	s.syncAsSint16LE(scratch.a_q_talk_count);
+	s.syncAsSint16LE(scratch.anim_3_running);
+	s.syncAsSint16LE(scratch.a_qm_frame);
+	s.syncAsSint16LE(scratch.a_qm_action);
+	s.syncAsSint16LE(scratch.a_qm_talk_count);
+	s.syncAsSint16LE(scratch.anim_4_running);
 }
 
 void room_106_preload() {
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room106.h b/engines/mads/madsv2/dragonsphere/rooms/room106.h
index f41989dcb05..cd887cc126f 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room106.h
+++ b/engines/mads/madsv2/dragonsphere/rooms/room106.h
@@ -30,17 +30,8 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
-#define local (&scratch)
-#define ss    local->sprite
-#define seq   local->sequence
-#define aa    local->animation
-
-/**
- * Room local variables
- */
-struct Scratch {
-
-};
+extern void room_106_preload();
+extern void room_106_synchronize(Common::Serializer &s);
 
 } // namespace Rooms
 } // namespace Dragonsphere


Commit: bcecd8a7e3f379c148c55d9afc4f72a64e36cdc4
    https://github.com/scummvm/scummvm/commit/bcecd8a7e3f379c148c55d9afc4f72a64e36cdc4
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2026-05-10T14:45:34+10:00

Commit Message:
MADS: DRAGONSPHERE: Update remaining room skeleton files

Changed paths:
    engines/mads/madsv2/dragonsphere/rooms/room107.cpp
    engines/mads/madsv2/dragonsphere/rooms/room107.h
    engines/mads/madsv2/dragonsphere/rooms/room108.cpp
    engines/mads/madsv2/dragonsphere/rooms/room108.h
    engines/mads/madsv2/dragonsphere/rooms/room109.cpp
    engines/mads/madsv2/dragonsphere/rooms/room109.h
    engines/mads/madsv2/dragonsphere/rooms/room110.cpp
    engines/mads/madsv2/dragonsphere/rooms/room110.h
    engines/mads/madsv2/dragonsphere/rooms/room111.cpp
    engines/mads/madsv2/dragonsphere/rooms/room111.h
    engines/mads/madsv2/dragonsphere/rooms/room112.cpp
    engines/mads/madsv2/dragonsphere/rooms/room112.h
    engines/mads/madsv2/dragonsphere/rooms/room113.cpp
    engines/mads/madsv2/dragonsphere/rooms/room113.h
    engines/mads/madsv2/dragonsphere/rooms/room114.cpp
    engines/mads/madsv2/dragonsphere/rooms/room114.h
    engines/mads/madsv2/dragonsphere/rooms/room115.cpp
    engines/mads/madsv2/dragonsphere/rooms/room115.h
    engines/mads/madsv2/dragonsphere/rooms/room116.cpp
    engines/mads/madsv2/dragonsphere/rooms/room116.h
    engines/mads/madsv2/dragonsphere/rooms/room117.cpp
    engines/mads/madsv2/dragonsphere/rooms/room117.h
    engines/mads/madsv2/dragonsphere/rooms/room118.cpp
    engines/mads/madsv2/dragonsphere/rooms/room118.h
    engines/mads/madsv2/dragonsphere/rooms/room119.cpp
    engines/mads/madsv2/dragonsphere/rooms/room119.h
    engines/mads/madsv2/dragonsphere/rooms/room201.cpp
    engines/mads/madsv2/dragonsphere/rooms/room201.h
    engines/mads/madsv2/dragonsphere/rooms/room203.cpp
    engines/mads/madsv2/dragonsphere/rooms/room203.h
    engines/mads/madsv2/dragonsphere/rooms/room204.cpp
    engines/mads/madsv2/dragonsphere/rooms/room204.h
    engines/mads/madsv2/dragonsphere/rooms/room205.cpp
    engines/mads/madsv2/dragonsphere/rooms/room205.h
    engines/mads/madsv2/dragonsphere/rooms/room206.cpp
    engines/mads/madsv2/dragonsphere/rooms/room206.h
    engines/mads/madsv2/dragonsphere/rooms/room301.cpp
    engines/mads/madsv2/dragonsphere/rooms/room301.h
    engines/mads/madsv2/dragonsphere/rooms/room302.cpp
    engines/mads/madsv2/dragonsphere/rooms/room302.h
    engines/mads/madsv2/dragonsphere/rooms/room303.cpp
    engines/mads/madsv2/dragonsphere/rooms/room303.h
    engines/mads/madsv2/dragonsphere/rooms/room401.cpp
    engines/mads/madsv2/dragonsphere/rooms/room401.h
    engines/mads/madsv2/dragonsphere/rooms/room402.cpp
    engines/mads/madsv2/dragonsphere/rooms/room402.h
    engines/mads/madsv2/dragonsphere/rooms/room403.cpp
    engines/mads/madsv2/dragonsphere/rooms/room403.h
    engines/mads/madsv2/dragonsphere/rooms/room404.cpp
    engines/mads/madsv2/dragonsphere/rooms/room404.h
    engines/mads/madsv2/dragonsphere/rooms/room405.cpp
    engines/mads/madsv2/dragonsphere/rooms/room405.h
    engines/mads/madsv2/dragonsphere/rooms/room406.cpp
    engines/mads/madsv2/dragonsphere/rooms/room406.h
    engines/mads/madsv2/dragonsphere/rooms/room407.cpp
    engines/mads/madsv2/dragonsphere/rooms/room407.h
    engines/mads/madsv2/dragonsphere/rooms/room408.cpp
    engines/mads/madsv2/dragonsphere/rooms/room408.h
    engines/mads/madsv2/dragonsphere/rooms/room409.cpp
    engines/mads/madsv2/dragonsphere/rooms/room409.h
    engines/mads/madsv2/dragonsphere/rooms/room410.cpp
    engines/mads/madsv2/dragonsphere/rooms/room410.h
    engines/mads/madsv2/dragonsphere/rooms/room411.cpp
    engines/mads/madsv2/dragonsphere/rooms/room411.h
    engines/mads/madsv2/dragonsphere/rooms/room412.cpp
    engines/mads/madsv2/dragonsphere/rooms/room412.h
    engines/mads/madsv2/dragonsphere/rooms/room454.cpp
    engines/mads/madsv2/dragonsphere/rooms/room454.h
    engines/mads/madsv2/dragonsphere/rooms/room501.cpp
    engines/mads/madsv2/dragonsphere/rooms/room501.h
    engines/mads/madsv2/dragonsphere/rooms/room502.cpp
    engines/mads/madsv2/dragonsphere/rooms/room502.h
    engines/mads/madsv2/dragonsphere/rooms/room503.cpp
    engines/mads/madsv2/dragonsphere/rooms/room503.h
    engines/mads/madsv2/dragonsphere/rooms/room504.cpp
    engines/mads/madsv2/dragonsphere/rooms/room504.h
    engines/mads/madsv2/dragonsphere/rooms/room505.cpp
    engines/mads/madsv2/dragonsphere/rooms/room505.h
    engines/mads/madsv2/dragonsphere/rooms/room506.cpp
    engines/mads/madsv2/dragonsphere/rooms/room506.h
    engines/mads/madsv2/dragonsphere/rooms/room507.cpp
    engines/mads/madsv2/dragonsphere/rooms/room507.h
    engines/mads/madsv2/dragonsphere/rooms/room508.cpp
    engines/mads/madsv2/dragonsphere/rooms/room508.h
    engines/mads/madsv2/dragonsphere/rooms/room509.cpp
    engines/mads/madsv2/dragonsphere/rooms/room509.h
    engines/mads/madsv2/dragonsphere/rooms/room510.cpp
    engines/mads/madsv2/dragonsphere/rooms/room510.h
    engines/mads/madsv2/dragonsphere/rooms/room511.cpp
    engines/mads/madsv2/dragonsphere/rooms/room511.h
    engines/mads/madsv2/dragonsphere/rooms/room512.cpp
    engines/mads/madsv2/dragonsphere/rooms/room512.h
    engines/mads/madsv2/dragonsphere/rooms/room557.cpp
    engines/mads/madsv2/dragonsphere/rooms/room557.h
    engines/mads/madsv2/dragonsphere/rooms/room601.cpp
    engines/mads/madsv2/dragonsphere/rooms/room601.h
    engines/mads/madsv2/dragonsphere/rooms/room603.cpp
    engines/mads/madsv2/dragonsphere/rooms/room603.h
    engines/mads/madsv2/dragonsphere/rooms/room604.cpp
    engines/mads/madsv2/dragonsphere/rooms/room604.h
    engines/mads/madsv2/dragonsphere/rooms/room605.cpp
    engines/mads/madsv2/dragonsphere/rooms/room605.h
    engines/mads/madsv2/dragonsphere/rooms/room606.cpp
    engines/mads/madsv2/dragonsphere/rooms/room606.h
    engines/mads/madsv2/dragonsphere/rooms/room607.cpp
    engines/mads/madsv2/dragonsphere/rooms/room607.h
    engines/mads/madsv2/dragonsphere/rooms/room609.cpp
    engines/mads/madsv2/dragonsphere/rooms/room609.h
    engines/mads/madsv2/dragonsphere/rooms/room612.cpp
    engines/mads/madsv2/dragonsphere/rooms/room612.h
    engines/mads/madsv2/dragonsphere/rooms/room613.cpp
    engines/mads/madsv2/dragonsphere/rooms/room613.h
    engines/mads/madsv2/dragonsphere/rooms/room614.cpp
    engines/mads/madsv2/dragonsphere/rooms/room614.h


diff --git a/engines/mads/madsv2/dragonsphere/rooms/room107.cpp b/engines/mads/madsv2/dragonsphere/rooms/room107.cpp
index 8262f2ded3d..e172713a8e6 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room107.cpp
+++ b/engines/mads/madsv2/dragonsphere/rooms/room107.cpp
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -34,6 +34,14 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
+struct Scratch {
+};
+
+#define local (&scratch)
+#define ss    local->sprite
+#define seq   local->sequence
+#define aa    local->animation
+
 //static Scratch scratch;
 
 void room_107_init() {
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room107.h b/engines/mads/madsv2/dragonsphere/rooms/room107.h
index 032ffd8b2bc..4f4ce250075 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room107.h
+++ b/engines/mads/madsv2/dragonsphere/rooms/room107.h
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -30,21 +30,12 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
-#define local (&scratch)
-#define ss    local->sprite
-#define seq   local->sequence
-#define aa    local->animation
-
-/**
- * Room local variables
- */
-struct Scratch {
-
-};
+extern void room_107_preload();
+extern void room_107_synchronize(Common::Serializer &s);
 
 } // namespace Rooms
 } // namespace Dragonsphere
 } // namespace MADSV2
 } // namespace MADS
 
-#endif
+#endif
\ No newline at end of file
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room108.cpp b/engines/mads/madsv2/dragonsphere/rooms/room108.cpp
index d36e90bbff4..d4a94d36c39 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room108.cpp
+++ b/engines/mads/madsv2/dragonsphere/rooms/room108.cpp
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -34,6 +34,14 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
+struct Scratch {
+};
+
+#define local (&scratch)
+#define ss    local->sprite
+#define seq   local->sequence
+#define aa    local->animation
+
 //static Scratch scratch;
 
 void room_108_init() {
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room108.h b/engines/mads/madsv2/dragonsphere/rooms/room108.h
index e654721db0e..2617cc580a4 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room108.h
+++ b/engines/mads/madsv2/dragonsphere/rooms/room108.h
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -30,21 +30,12 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
-#define local (&scratch)
-#define ss    local->sprite
-#define seq   local->sequence
-#define aa    local->animation
-
-/**
- * Room local variables
- */
-struct Scratch {
-
-};
+extern void room_108_preload();
+extern void room_108_synchronize(Common::Serializer &s);
 
 } // namespace Rooms
 } // namespace Dragonsphere
 } // namespace MADSV2
 } // namespace MADS
 
-#endif
+#endif
\ No newline at end of file
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room109.cpp b/engines/mads/madsv2/dragonsphere/rooms/room109.cpp
index 1002a868335..2ff4a30960d 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room109.cpp
+++ b/engines/mads/madsv2/dragonsphere/rooms/room109.cpp
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -34,6 +34,14 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
+struct Scratch {
+};
+
+#define local (&scratch)
+#define ss    local->sprite
+#define seq   local->sequence
+#define aa    local->animation
+
 //static Scratch scratch;
 
 void room_109_init() {
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room109.h b/engines/mads/madsv2/dragonsphere/rooms/room109.h
index e3a30d241dc..73a8b5cae65 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room109.h
+++ b/engines/mads/madsv2/dragonsphere/rooms/room109.h
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -30,21 +30,12 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
-#define local (&scratch)
-#define ss    local->sprite
-#define seq   local->sequence
-#define aa    local->animation
-
-/**
- * Room local variables
- */
-struct Scratch {
-
-};
+extern void room_109_preload();
+extern void room_109_synchronize(Common::Serializer &s);
 
 } // namespace Rooms
 } // namespace Dragonsphere
 } // namespace MADSV2
 } // namespace MADS
 
-#endif
+#endif
\ No newline at end of file
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room110.cpp b/engines/mads/madsv2/dragonsphere/rooms/room110.cpp
index a1063e2d084..9d02097be0a 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room110.cpp
+++ b/engines/mads/madsv2/dragonsphere/rooms/room110.cpp
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -34,6 +34,14 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
+struct Scratch {
+};
+
+#define local (&scratch)
+#define ss    local->sprite
+#define seq   local->sequence
+#define aa    local->animation
+
 //static Scratch scratch;
 
 void room_110_init() {
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room110.h b/engines/mads/madsv2/dragonsphere/rooms/room110.h
index 167b410e4cc..c490d69b46c 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room110.h
+++ b/engines/mads/madsv2/dragonsphere/rooms/room110.h
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -30,21 +30,12 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
-#define local (&scratch)
-#define ss    local->sprite
-#define seq   local->sequence
-#define aa    local->animation
-
-/**
- * Room local variables
- */
-struct Scratch {
-
-};
+extern void room_110_preload();
+extern void room_110_synchronize(Common::Serializer &s);
 
 } // namespace Rooms
 } // namespace Dragonsphere
 } // namespace MADSV2
 } // namespace MADS
 
-#endif
+#endif
\ No newline at end of file
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room111.cpp b/engines/mads/madsv2/dragonsphere/rooms/room111.cpp
index 00221423d7a..a0f1f584d80 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room111.cpp
+++ b/engines/mads/madsv2/dragonsphere/rooms/room111.cpp
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -34,6 +34,14 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
+struct Scratch {
+};
+
+#define local (&scratch)
+#define ss    local->sprite
+#define seq   local->sequence
+#define aa    local->animation
+
 //static Scratch scratch;
 
 void room_111_init() {
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room111.h b/engines/mads/madsv2/dragonsphere/rooms/room111.h
index ce234156b7c..8d105ba6c56 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room111.h
+++ b/engines/mads/madsv2/dragonsphere/rooms/room111.h
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -30,21 +30,12 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
-#define local (&scratch)
-#define ss    local->sprite
-#define seq   local->sequence
-#define aa    local->animation
-
-/**
- * Room local variables
- */
-struct Scratch {
-
-};
+extern void room_111_preload();
+extern void room_111_synchronize(Common::Serializer &s);
 
 } // namespace Rooms
 } // namespace Dragonsphere
 } // namespace MADSV2
 } // namespace MADS
 
-#endif
+#endif
\ No newline at end of file
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room112.cpp b/engines/mads/madsv2/dragonsphere/rooms/room112.cpp
index 9861f8ce466..de9b027f0ee 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room112.cpp
+++ b/engines/mads/madsv2/dragonsphere/rooms/room112.cpp
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -34,6 +34,14 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
+struct Scratch {
+};
+
+#define local (&scratch)
+#define ss    local->sprite
+#define seq   local->sequence
+#define aa    local->animation
+
 //static Scratch scratch;
 
 void room_112_init() {
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room112.h b/engines/mads/madsv2/dragonsphere/rooms/room112.h
index 0d8227defb3..b01620b0992 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room112.h
+++ b/engines/mads/madsv2/dragonsphere/rooms/room112.h
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -30,21 +30,12 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
-#define local (&scratch)
-#define ss    local->sprite
-#define seq   local->sequence
-#define aa    local->animation
-
-/**
- * Room local variables
- */
-struct Scratch {
-
-};
+extern void room_112_preload();
+extern void room_112_synchronize(Common::Serializer &s);
 
 } // namespace Rooms
 } // namespace Dragonsphere
 } // namespace MADSV2
 } // namespace MADS
 
-#endif
+#endif
\ No newline at end of file
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room113.cpp b/engines/mads/madsv2/dragonsphere/rooms/room113.cpp
index 1710e0e8ab6..e264acebaee 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room113.cpp
+++ b/engines/mads/madsv2/dragonsphere/rooms/room113.cpp
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -34,6 +34,14 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
+struct Scratch {
+};
+
+#define local (&scratch)
+#define ss    local->sprite
+#define seq   local->sequence
+#define aa    local->animation
+
 //static Scratch scratch;
 
 void room_113_init() {
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room113.h b/engines/mads/madsv2/dragonsphere/rooms/room113.h
index f6c3cd9f6c8..9d2336d6cf8 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room113.h
+++ b/engines/mads/madsv2/dragonsphere/rooms/room113.h
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -30,21 +30,12 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
-#define local (&scratch)
-#define ss    local->sprite
-#define seq   local->sequence
-#define aa    local->animation
-
-/**
- * Room local variables
- */
-struct Scratch {
-
-};
+extern void room_113_preload();
+extern void room_113_synchronize(Common::Serializer &s);
 
 } // namespace Rooms
 } // namespace Dragonsphere
 } // namespace MADSV2
 } // namespace MADS
 
-#endif
+#endif
\ No newline at end of file
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room114.cpp b/engines/mads/madsv2/dragonsphere/rooms/room114.cpp
index fd26def7153..0c9a6c6d35c 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room114.cpp
+++ b/engines/mads/madsv2/dragonsphere/rooms/room114.cpp
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -34,6 +34,14 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
+struct Scratch {
+};
+
+#define local (&scratch)
+#define ss    local->sprite
+#define seq   local->sequence
+#define aa    local->animation
+
 //static Scratch scratch;
 
 void room_114_init() {
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room114.h b/engines/mads/madsv2/dragonsphere/rooms/room114.h
index 39373c2254f..d0f58897a01 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room114.h
+++ b/engines/mads/madsv2/dragonsphere/rooms/room114.h
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -30,21 +30,12 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
-#define local (&scratch)
-#define ss    local->sprite
-#define seq   local->sequence
-#define aa    local->animation
-
-/**
- * Room local variables
- */
-struct Scratch {
-
-};
+extern void room_114_preload();
+extern void room_114_synchronize(Common::Serializer &s);
 
 } // namespace Rooms
 } // namespace Dragonsphere
 } // namespace MADSV2
 } // namespace MADS
 
-#endif
+#endif
\ No newline at end of file
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room115.cpp b/engines/mads/madsv2/dragonsphere/rooms/room115.cpp
index 4f95b76b695..ef58c680f6d 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room115.cpp
+++ b/engines/mads/madsv2/dragonsphere/rooms/room115.cpp
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -34,6 +34,14 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
+struct Scratch {
+};
+
+#define local (&scratch)
+#define ss    local->sprite
+#define seq   local->sequence
+#define aa    local->animation
+
 //static Scratch scratch;
 
 void room_115_init() {
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room115.h b/engines/mads/madsv2/dragonsphere/rooms/room115.h
index 695536f20d2..33ecf16f5c9 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room115.h
+++ b/engines/mads/madsv2/dragonsphere/rooms/room115.h
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -30,21 +30,12 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
-#define local (&scratch)
-#define ss    local->sprite
-#define seq   local->sequence
-#define aa    local->animation
-
-/**
- * Room local variables
- */
-struct Scratch {
-
-};
+extern void room_115_preload();
+extern void room_115_synchronize(Common::Serializer &s);
 
 } // namespace Rooms
 } // namespace Dragonsphere
 } // namespace MADSV2
 } // namespace MADS
 
-#endif
+#endif
\ No newline at end of file
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room116.cpp b/engines/mads/madsv2/dragonsphere/rooms/room116.cpp
index f6aab0d98e5..0189c5ea853 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room116.cpp
+++ b/engines/mads/madsv2/dragonsphere/rooms/room116.cpp
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -34,6 +34,14 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
+struct Scratch {
+};
+
+#define local (&scratch)
+#define ss    local->sprite
+#define seq   local->sequence
+#define aa    local->animation
+
 //static Scratch scratch;
 
 void room_116_init() {
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room116.h b/engines/mads/madsv2/dragonsphere/rooms/room116.h
index eba56e68755..d9985d0725e 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room116.h
+++ b/engines/mads/madsv2/dragonsphere/rooms/room116.h
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -30,21 +30,12 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
-#define local (&scratch)
-#define ss    local->sprite
-#define seq   local->sequence
-#define aa    local->animation
-
-/**
- * Room local variables
- */
-struct Scratch {
-
-};
+extern void room_116_preload();
+extern void room_116_synchronize(Common::Serializer &s);
 
 } // namespace Rooms
 } // namespace Dragonsphere
 } // namespace MADSV2
 } // namespace MADS
 
-#endif
+#endif
\ No newline at end of file
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room117.cpp b/engines/mads/madsv2/dragonsphere/rooms/room117.cpp
index 8bacdb0e8ab..c54e37f5a80 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room117.cpp
+++ b/engines/mads/madsv2/dragonsphere/rooms/room117.cpp
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -34,6 +34,14 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
+struct Scratch {
+};
+
+#define local (&scratch)
+#define ss    local->sprite
+#define seq   local->sequence
+#define aa    local->animation
+
 //static Scratch scratch;
 
 void room_117_init() {
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room117.h b/engines/mads/madsv2/dragonsphere/rooms/room117.h
index e46692fa0bf..436b163b707 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room117.h
+++ b/engines/mads/madsv2/dragonsphere/rooms/room117.h
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -30,21 +30,12 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
-#define local (&scratch)
-#define ss    local->sprite
-#define seq   local->sequence
-#define aa    local->animation
-
-/**
- * Room local variables
- */
-struct Scratch {
-
-};
+extern void room_117_preload();
+extern void room_117_synchronize(Common::Serializer &s);
 
 } // namespace Rooms
 } // namespace Dragonsphere
 } // namespace MADSV2
 } // namespace MADS
 
-#endif
+#endif
\ No newline at end of file
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room118.cpp b/engines/mads/madsv2/dragonsphere/rooms/room118.cpp
index bc77b26088b..f64d72604d3 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room118.cpp
+++ b/engines/mads/madsv2/dragonsphere/rooms/room118.cpp
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -34,6 +34,14 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
+struct Scratch {
+};
+
+#define local (&scratch)
+#define ss    local->sprite
+#define seq   local->sequence
+#define aa    local->animation
+
 //static Scratch scratch;
 
 void room_118_init() {
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room118.h b/engines/mads/madsv2/dragonsphere/rooms/room118.h
index 3ad5afa1c8b..5bcf363bbd0 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room118.h
+++ b/engines/mads/madsv2/dragonsphere/rooms/room118.h
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -30,21 +30,12 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
-#define local (&scratch)
-#define ss    local->sprite
-#define seq   local->sequence
-#define aa    local->animation
-
-/**
- * Room local variables
- */
-struct Scratch {
-
-};
+extern void room_118_preload();
+extern void room_118_synchronize(Common::Serializer &s);
 
 } // namespace Rooms
 } // namespace Dragonsphere
 } // namespace MADSV2
 } // namespace MADS
 
-#endif
+#endif
\ No newline at end of file
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room119.cpp b/engines/mads/madsv2/dragonsphere/rooms/room119.cpp
index 13c30241b8f..a8ec2a556e3 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room119.cpp
+++ b/engines/mads/madsv2/dragonsphere/rooms/room119.cpp
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -34,6 +34,14 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
+struct Scratch {
+};
+
+#define local (&scratch)
+#define ss    local->sprite
+#define seq   local->sequence
+#define aa    local->animation
+
 //static Scratch scratch;
 
 void room_119_init() {
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room119.h b/engines/mads/madsv2/dragonsphere/rooms/room119.h
index bde617aaa8d..c9dc7088002 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room119.h
+++ b/engines/mads/madsv2/dragonsphere/rooms/room119.h
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -30,21 +30,12 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
-#define local (&scratch)
-#define ss    local->sprite
-#define seq   local->sequence
-#define aa    local->animation
-
-/**
- * Room local variables
- */
-struct Scratch {
-	
-};
+extern void room_119_preload();
+extern void room_119_synchronize(Common::Serializer &s);
 
 } // namespace Rooms
 } // namespace Dragonsphere
 } // namespace MADSV2
 } // namespace MADS
 
-#endif
+#endif
\ No newline at end of file
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room201.cpp b/engines/mads/madsv2/dragonsphere/rooms/room201.cpp
index 331772fc4d4..978d531fb65 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room201.cpp
+++ b/engines/mads/madsv2/dragonsphere/rooms/room201.cpp
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -34,6 +34,14 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
+struct Scratch {
+};
+
+#define local (&scratch)
+#define ss    local->sprite
+#define seq   local->sequence
+#define aa    local->animation
+
 //static Scratch scratch;
 
 void room_201_init() {
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room201.h b/engines/mads/madsv2/dragonsphere/rooms/room201.h
index 0560063ff6c..6bfb101effb 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room201.h
+++ b/engines/mads/madsv2/dragonsphere/rooms/room201.h
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -30,21 +30,12 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
-#define local (&scratch)
-#define ss    local->sprite
-#define seq   local->sequence
-#define aa    local->animation
-
-/**
- * Room local variables
- */
-struct Scratch {
-
-};
+extern void room_201_preload();
+extern void room_201_synchronize(Common::Serializer &s);
 
 } // namespace Rooms
 } // namespace Dragonsphere
 } // namespace MADSV2
 } // namespace MADS
 
-#endif
+#endif
\ No newline at end of file
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room203.cpp b/engines/mads/madsv2/dragonsphere/rooms/room203.cpp
index 808ee507bef..642836b7ef5 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room203.cpp
+++ b/engines/mads/madsv2/dragonsphere/rooms/room203.cpp
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -34,6 +34,14 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
+struct Scratch {
+};
+
+#define local (&scratch)
+#define ss    local->sprite
+#define seq   local->sequence
+#define aa    local->animation
+
 //static Scratch scratch;
 
 void room_203_init() {
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room203.h b/engines/mads/madsv2/dragonsphere/rooms/room203.h
index 0560063ff6c..dfc907a8a26 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room203.h
+++ b/engines/mads/madsv2/dragonsphere/rooms/room203.h
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -19,8 +19,8 @@
  *
  */
 
-#ifndef MADS_DRAGONSPHERE_ROOMS_201_H
-#define MADS_DRAGONSPHERE_ROOMS_201_H
+#ifndef MADS_DRAGONSPHERE_ROOMS_203_H
+#define MADS_DRAGONSPHERE_ROOMS_203_H
 
 #include "common/serializer.h"
 #include "mads/madsv2/core/general.h"
@@ -30,21 +30,12 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
-#define local (&scratch)
-#define ss    local->sprite
-#define seq   local->sequence
-#define aa    local->animation
-
-/**
- * Room local variables
- */
-struct Scratch {
-
-};
+extern void room_203_preload();
+extern void room_203_synchronize(Common::Serializer &s);
 
 } // namespace Rooms
 } // namespace Dragonsphere
 } // namespace MADSV2
 } // namespace MADS
 
-#endif
+#endif
\ No newline at end of file
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room204.cpp b/engines/mads/madsv2/dragonsphere/rooms/room204.cpp
index 81bfc265ad8..a442b7ed601 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room204.cpp
+++ b/engines/mads/madsv2/dragonsphere/rooms/room204.cpp
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -34,6 +34,14 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
+struct Scratch {
+};
+
+#define local (&scratch)
+#define ss    local->sprite
+#define seq   local->sequence
+#define aa    local->animation
+
 //static Scratch scratch;
 
 void room_204_init() {
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room204.h b/engines/mads/madsv2/dragonsphere/rooms/room204.h
index 98c9288d168..75ac865661b 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room204.h
+++ b/engines/mads/madsv2/dragonsphere/rooms/room204.h
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -30,21 +30,12 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
-#define local (&scratch)
-#define ss    local->sprite
-#define seq   local->sequence
-#define aa    local->animation
-
-/**
- * Room local variables
- */
-struct Scratch {
-
-};
+extern void room_204_preload();
+extern void room_204_synchronize(Common::Serializer &s);
 
 } // namespace Rooms
 } // namespace Dragonsphere
 } // namespace MADSV2
 } // namespace MADS
 
-#endif
+#endif
\ No newline at end of file
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room205.cpp b/engines/mads/madsv2/dragonsphere/rooms/room205.cpp
index 6b1c888ee41..16effdfc459 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room205.cpp
+++ b/engines/mads/madsv2/dragonsphere/rooms/room205.cpp
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -34,6 +34,14 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
+struct Scratch {
+};
+
+#define local (&scratch)
+#define ss    local->sprite
+#define seq   local->sequence
+#define aa    local->animation
+
 //static Scratch scratch;
 
 void room_205_init() {
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room205.h b/engines/mads/madsv2/dragonsphere/rooms/room205.h
index 3ea2c4e051c..cc088e7dd08 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room205.h
+++ b/engines/mads/madsv2/dragonsphere/rooms/room205.h
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -30,21 +30,12 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
-#define local (&scratch)
-#define ss    local->sprite
-#define seq   local->sequence
-#define aa    local->animation
-
-/**
- * Room local variables
- */
-struct Scratch {
-
-};
+extern void room_205_preload();
+extern void room_205_synchronize(Common::Serializer &s);
 
 } // namespace Rooms
 } // namespace Dragonsphere
 } // namespace MADSV2
 } // namespace MADS
 
-#endif
+#endif
\ No newline at end of file
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room206.cpp b/engines/mads/madsv2/dragonsphere/rooms/room206.cpp
index 3dc78d2fdd9..2c0effb9f2b 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room206.cpp
+++ b/engines/mads/madsv2/dragonsphere/rooms/room206.cpp
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -34,6 +34,14 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
+struct Scratch {
+};
+
+#define local (&scratch)
+#define ss    local->sprite
+#define seq   local->sequence
+#define aa    local->animation
+
 //static Scratch scratch;
 
 void room_206_init() {
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room206.h b/engines/mads/madsv2/dragonsphere/rooms/room206.h
index 7581cb14338..ed75df7a035 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room206.h
+++ b/engines/mads/madsv2/dragonsphere/rooms/room206.h
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -30,21 +30,12 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
-#define local (&scratch)
-#define ss    local->sprite
-#define seq   local->sequence
-#define aa    local->animation
-
-/**
- * Room local variables
- */
-struct Scratch {
-
-};
+extern void room_206_preload();
+extern void room_206_synchronize(Common::Serializer &s);
 
 } // namespace Rooms
 } // namespace Dragonsphere
 } // namespace MADSV2
 } // namespace MADS
 
-#endif
+#endif
\ No newline at end of file
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room301.cpp b/engines/mads/madsv2/dragonsphere/rooms/room301.cpp
index b16fa84b918..ed0c0ed4729 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room301.cpp
+++ b/engines/mads/madsv2/dragonsphere/rooms/room301.cpp
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -34,6 +34,14 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
+struct Scratch {
+};
+
+#define local (&scratch)
+#define ss    local->sprite
+#define seq   local->sequence
+#define aa    local->animation
+
 //static Scratch scratch;
 
 void room_301_init() {
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room301.h b/engines/mads/madsv2/dragonsphere/rooms/room301.h
index 7496179e753..2d386ecfc7a 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room301.h
+++ b/engines/mads/madsv2/dragonsphere/rooms/room301.h
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -30,21 +30,12 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
-#define local (&scratch)
-#define ss    local->sprite
-#define seq   local->sequence
-#define aa    local->animation
-
-/**
- * Room local variables
- */
-struct Scratch {
-
-};
+extern void room_301_preload();
+extern void room_301_synchronize(Common::Serializer &s);
 
 } // namespace Rooms
 } // namespace Dragonsphere
 } // namespace MADSV2
 } // namespace MADS
 
-#endif
+#endif
\ No newline at end of file
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room302.cpp b/engines/mads/madsv2/dragonsphere/rooms/room302.cpp
index 4840935beb1..a3254e5f2a8 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room302.cpp
+++ b/engines/mads/madsv2/dragonsphere/rooms/room302.cpp
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -34,6 +34,14 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
+struct Scratch {
+};
+
+#define local (&scratch)
+#define ss    local->sprite
+#define seq   local->sequence
+#define aa    local->animation
+
 //static Scratch scratch;
 
 void room_302_init() {
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room302.h b/engines/mads/madsv2/dragonsphere/rooms/room302.h
index 6ed9a0f0a5b..6158b679be8 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room302.h
+++ b/engines/mads/madsv2/dragonsphere/rooms/room302.h
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -30,21 +30,12 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
-#define local (&scratch)
-#define ss    local->sprite
-#define seq   local->sequence
-#define aa    local->animation
-
-/**
- * Room local variables
- */
-struct Scratch {
-
-};
+extern void room_302_preload();
+extern void room_302_synchronize(Common::Serializer &s);
 
 } // namespace Rooms
 } // namespace Dragonsphere
 } // namespace MADSV2
 } // namespace MADS
 
-#endif
+#endif
\ No newline at end of file
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room303.cpp b/engines/mads/madsv2/dragonsphere/rooms/room303.cpp
index 57918a222e2..559a254b871 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room303.cpp
+++ b/engines/mads/madsv2/dragonsphere/rooms/room303.cpp
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -34,6 +34,14 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
+struct Scratch {
+};
+
+#define local (&scratch)
+#define ss    local->sprite
+#define seq   local->sequence
+#define aa    local->animation
+
 //static Scratch scratch;
 
 void room_303_init() {
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room303.h b/engines/mads/madsv2/dragonsphere/rooms/room303.h
index 7496179e753..cae65ad2e3e 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room303.h
+++ b/engines/mads/madsv2/dragonsphere/rooms/room303.h
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -19,8 +19,8 @@
  *
  */
 
-#ifndef MADS_DRAGONSPHERE_ROOMS_301_H
-#define MADS_DRAGONSPHERE_ROOMS_301_H
+#ifndef MADS_DRAGONSPHERE_ROOMS_303_H
+#define MADS_DRAGONSPHERE_ROOMS_303_H
 
 #include "common/serializer.h"
 #include "mads/madsv2/core/general.h"
@@ -30,21 +30,12 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
-#define local (&scratch)
-#define ss    local->sprite
-#define seq   local->sequence
-#define aa    local->animation
-
-/**
- * Room local variables
- */
-struct Scratch {
-
-};
+extern void room_303_preload();
+extern void room_303_synchronize(Common::Serializer &s);
 
 } // namespace Rooms
 } // namespace Dragonsphere
 } // namespace MADSV2
 } // namespace MADS
 
-#endif
+#endif
\ No newline at end of file
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room401.cpp b/engines/mads/madsv2/dragonsphere/rooms/room401.cpp
index 10790d87e0e..ff8a60fe18d 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room401.cpp
+++ b/engines/mads/madsv2/dragonsphere/rooms/room401.cpp
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -34,6 +34,14 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
+struct Scratch {
+};
+
+#define local (&scratch)
+#define ss    local->sprite
+#define seq   local->sequence
+#define aa    local->animation
+
 //static Scratch scratch;
 
 void room_401_init() {
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room401.h b/engines/mads/madsv2/dragonsphere/rooms/room401.h
index 8af58d13eb3..d518d14e250 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room401.h
+++ b/engines/mads/madsv2/dragonsphere/rooms/room401.h
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -30,21 +30,12 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
-#define local (&scratch)
-#define ss    local->sprite
-#define seq   local->sequence
-#define aa    local->animation
-
-/**
- * Room local variables
- */
-struct Scratch {
-
-};
+extern void room_401_preload();
+extern void room_401_synchronize(Common::Serializer &s);
 
 } // namespace Rooms
 } // namespace Dragonsphere
 } // namespace MADSV2
 } // namespace MADS
 
-#endif
+#endif
\ No newline at end of file
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room402.cpp b/engines/mads/madsv2/dragonsphere/rooms/room402.cpp
index a72c830959a..ddc440afe54 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room402.cpp
+++ b/engines/mads/madsv2/dragonsphere/rooms/room402.cpp
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -34,6 +34,14 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
+struct Scratch {
+};
+
+#define local (&scratch)
+#define ss    local->sprite
+#define seq   local->sequence
+#define aa    local->animation
+
 //static Scratch scratch;
 
 void room_402_init() {
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room402.h b/engines/mads/madsv2/dragonsphere/rooms/room402.h
index 34531036cda..d823e0629dd 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room402.h
+++ b/engines/mads/madsv2/dragonsphere/rooms/room402.h
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -30,21 +30,12 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
-#define local (&scratch)
-#define ss    local->sprite
-#define seq   local->sequence
-#define aa    local->animation
-
-/**
- * Room local variables
- */
-struct Scratch {
-
-};
+extern void room_402_preload();
+extern void room_402_synchronize(Common::Serializer &s);
 
 } // namespace Rooms
 } // namespace Dragonsphere
 } // namespace MADSV2
 } // namespace MADS
 
-#endif
+#endif
\ No newline at end of file
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room403.cpp b/engines/mads/madsv2/dragonsphere/rooms/room403.cpp
index 0ff3bcc1fdc..d372671850f 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room403.cpp
+++ b/engines/mads/madsv2/dragonsphere/rooms/room403.cpp
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -34,6 +34,14 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
+struct Scratch {
+};
+
+#define local (&scratch)
+#define ss    local->sprite
+#define seq   local->sequence
+#define aa    local->animation
+
 //static Scratch scratch;
 
 void room_403_init() {
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room403.h b/engines/mads/madsv2/dragonsphere/rooms/room403.h
index 56d5e5c176b..8c80b659c8f 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room403.h
+++ b/engines/mads/madsv2/dragonsphere/rooms/room403.h
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -30,21 +30,12 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
-#define local (&scratch)
-#define ss    local->sprite
-#define seq   local->sequence
-#define aa    local->animation
-
-/**
- * Room local variables
- */
-struct Scratch {
-
-};
+extern void room_403_preload();
+extern void room_403_synchronize(Common::Serializer &s);
 
 } // namespace Rooms
 } // namespace Dragonsphere
 } // namespace MADSV2
 } // namespace MADS
 
-#endif
+#endif
\ No newline at end of file
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room404.cpp b/engines/mads/madsv2/dragonsphere/rooms/room404.cpp
index 448fbe1c6f4..bd803a28188 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room404.cpp
+++ b/engines/mads/madsv2/dragonsphere/rooms/room404.cpp
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -34,6 +34,14 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
+struct Scratch {
+};
+
+#define local (&scratch)
+#define ss    local->sprite
+#define seq   local->sequence
+#define aa    local->animation
+
 //static Scratch scratch;
 
 void room_404_init() {
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room404.h b/engines/mads/madsv2/dragonsphere/rooms/room404.h
index fb6536458c6..2be03ea718d 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room404.h
+++ b/engines/mads/madsv2/dragonsphere/rooms/room404.h
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -30,21 +30,12 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
-#define local (&scratch)
-#define ss    local->sprite
-#define seq   local->sequence
-#define aa    local->animation
-
-/**
- * Room local variables
- */
-struct Scratch {
-
-};
+extern void room_404_preload();
+extern void room_404_synchronize(Common::Serializer &s);
 
 } // namespace Rooms
 } // namespace Dragonsphere
 } // namespace MADSV2
 } // namespace MADS
 
-#endif
+#endif
\ No newline at end of file
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room405.cpp b/engines/mads/madsv2/dragonsphere/rooms/room405.cpp
index ef8d0b623d6..67af5654263 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room405.cpp
+++ b/engines/mads/madsv2/dragonsphere/rooms/room405.cpp
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -34,6 +34,14 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
+struct Scratch {
+};
+
+#define local (&scratch)
+#define ss    local->sprite
+#define seq   local->sequence
+#define aa    local->animation
+
 //static Scratch scratch;
 
 void room_405_init() {
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room405.h b/engines/mads/madsv2/dragonsphere/rooms/room405.h
index 01b36c9bd2e..8f19d838589 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room405.h
+++ b/engines/mads/madsv2/dragonsphere/rooms/room405.h
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -30,21 +30,12 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
-#define local (&scratch)
-#define ss    local->sprite
-#define seq   local->sequence
-#define aa    local->animation
-
-/**
- * Room local variables
- */
-struct Scratch {
-
-};
+extern void room_405_preload();
+extern void room_405_synchronize(Common::Serializer &s);
 
 } // namespace Rooms
 } // namespace Dragonsphere
 } // namespace MADSV2
 } // namespace MADS
 
-#endif
+#endif
\ No newline at end of file
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room406.cpp b/engines/mads/madsv2/dragonsphere/rooms/room406.cpp
index abf4ee46b0c..016b04c1532 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room406.cpp
+++ b/engines/mads/madsv2/dragonsphere/rooms/room406.cpp
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -34,6 +34,14 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
+struct Scratch {
+};
+
+#define local (&scratch)
+#define ss    local->sprite
+#define seq   local->sequence
+#define aa    local->animation
+
 //static Scratch scratch;
 
 void room_406_init() {
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room406.h b/engines/mads/madsv2/dragonsphere/rooms/room406.h
index cc5f55a42df..8a303c413a6 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room406.h
+++ b/engines/mads/madsv2/dragonsphere/rooms/room406.h
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -30,21 +30,12 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
-#define local (&scratch)
-#define ss    local->sprite
-#define seq   local->sequence
-#define aa    local->animation
-
-/**
- * Room local variables
- */
-struct Scratch {
-
-};
+extern void room_406_preload();
+extern void room_406_synchronize(Common::Serializer &s);
 
 } // namespace Rooms
 } // namespace Dragonsphere
 } // namespace MADSV2
 } // namespace MADS
 
-#endif
+#endif
\ No newline at end of file
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room407.cpp b/engines/mads/madsv2/dragonsphere/rooms/room407.cpp
index dc59a85ffc5..ebf7b3fcd13 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room407.cpp
+++ b/engines/mads/madsv2/dragonsphere/rooms/room407.cpp
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -34,6 +34,14 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
+struct Scratch {
+};
+
+#define local (&scratch)
+#define ss    local->sprite
+#define seq   local->sequence
+#define aa    local->animation
+
 //static Scratch scratch;
 
 void room_407_init() {
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room407.h b/engines/mads/madsv2/dragonsphere/rooms/room407.h
index 2ddc015d73e..ddfb3a567b1 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room407.h
+++ b/engines/mads/madsv2/dragonsphere/rooms/room407.h
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -30,21 +30,12 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
-#define local (&scratch)
-#define ss    local->sprite
-#define seq   local->sequence
-#define aa    local->animation
-
-/**
- * Room local variables
- */
-struct Scratch {
-
-};
+extern void room_407_preload();
+extern void room_407_synchronize(Common::Serializer &s);
 
 } // namespace Rooms
 } // namespace Dragonsphere
 } // namespace MADSV2
 } // namespace MADS
 
-#endif
+#endif
\ No newline at end of file
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room408.cpp b/engines/mads/madsv2/dragonsphere/rooms/room408.cpp
index a5a5eee3133..5aea2fc0133 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room408.cpp
+++ b/engines/mads/madsv2/dragonsphere/rooms/room408.cpp
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -34,6 +34,14 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
+struct Scratch {
+};
+
+#define local (&scratch)
+#define ss    local->sprite
+#define seq   local->sequence
+#define aa    local->animation
+
 //static Scratch scratch;
 
 void room_408_init() {
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room408.h b/engines/mads/madsv2/dragonsphere/rooms/room408.h
index a707633e9c5..26ee219fb26 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room408.h
+++ b/engines/mads/madsv2/dragonsphere/rooms/room408.h
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -30,21 +30,12 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
-#define local (&scratch)
-#define ss    local->sprite
-#define seq   local->sequence
-#define aa    local->animation
-
-/**
- * Room local variables
- */
-struct Scratch {
-
-};
+extern void room_408_preload();
+extern void room_408_synchronize(Common::Serializer &s);
 
 } // namespace Rooms
 } // namespace Dragonsphere
 } // namespace MADSV2
 } // namespace MADS
 
-#endif
+#endif
\ No newline at end of file
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room409.cpp b/engines/mads/madsv2/dragonsphere/rooms/room409.cpp
index d7b3317fd89..916be44ca3f 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room409.cpp
+++ b/engines/mads/madsv2/dragonsphere/rooms/room409.cpp
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -34,6 +34,14 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
+struct Scratch {
+};
+
+#define local (&scratch)
+#define ss    local->sprite
+#define seq   local->sequence
+#define aa    local->animation
+
 //static Scratch scratch;
 
 void room_409_init() {
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room409.h b/engines/mads/madsv2/dragonsphere/rooms/room409.h
index b8398984317..226cd62c625 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room409.h
+++ b/engines/mads/madsv2/dragonsphere/rooms/room409.h
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -30,21 +30,12 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
-#define local (&scratch)
-#define ss    local->sprite
-#define seq   local->sequence
-#define aa    local->animation
-
-/**
- * Room local variables
- */
-struct Scratch {
-
-};
+extern void room_409_preload();
+extern void room_409_synchronize(Common::Serializer &s);
 
 } // namespace Rooms
 } // namespace Dragonsphere
 } // namespace MADSV2
 } // namespace MADS
 
-#endif
+#endif
\ No newline at end of file
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room410.cpp b/engines/mads/madsv2/dragonsphere/rooms/room410.cpp
index f69697c8282..4b8c399750a 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room410.cpp
+++ b/engines/mads/madsv2/dragonsphere/rooms/room410.cpp
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -34,6 +34,14 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
+struct Scratch {
+};
+
+#define local (&scratch)
+#define ss    local->sprite
+#define seq   local->sequence
+#define aa    local->animation
+
 //static Scratch scratch;
 
 void room_410_init() {
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room410.h b/engines/mads/madsv2/dragonsphere/rooms/room410.h
index 79570f396bb..a861c3f8635 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room410.h
+++ b/engines/mads/madsv2/dragonsphere/rooms/room410.h
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -30,21 +30,12 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
-#define local (&scratch)
-#define ss    local->sprite
-#define seq   local->sequence
-#define aa    local->animation
-
-/**
- * Room local variables
- */
-struct Scratch {
-
-};
+extern void room_410_preload();
+extern void room_410_synchronize(Common::Serializer &s);
 
 } // namespace Rooms
 } // namespace Dragonsphere
 } // namespace MADSV2
 } // namespace MADS
 
-#endif
+#endif
\ No newline at end of file
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room411.cpp b/engines/mads/madsv2/dragonsphere/rooms/room411.cpp
index ecd824f958e..cf0113b0094 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room411.cpp
+++ b/engines/mads/madsv2/dragonsphere/rooms/room411.cpp
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -34,6 +34,14 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
+struct Scratch {
+};
+
+#define local (&scratch)
+#define ss    local->sprite
+#define seq   local->sequence
+#define aa    local->animation
+
 //static Scratch scratch;
 
 void room_411_init() {
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room411.h b/engines/mads/madsv2/dragonsphere/rooms/room411.h
index 7523304a888..92d757fd4d0 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room411.h
+++ b/engines/mads/madsv2/dragonsphere/rooms/room411.h
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -30,21 +30,12 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
-#define local (&scratch)
-#define ss    local->sprite
-#define seq   local->sequence
-#define aa    local->animation
-
-/**
- * Room local variables
- */
-struct Scratch {
-
-};
+extern void room_411_preload();
+extern void room_411_synchronize(Common::Serializer &s);
 
 } // namespace Rooms
 } // namespace Dragonsphere
 } // namespace MADSV2
 } // namespace MADS
 
-#endif
+#endif
\ No newline at end of file
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room412.cpp b/engines/mads/madsv2/dragonsphere/rooms/room412.cpp
index ea57fa7f9f0..11231833c6c 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room412.cpp
+++ b/engines/mads/madsv2/dragonsphere/rooms/room412.cpp
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -34,6 +34,14 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
+struct Scratch {
+};
+
+#define local (&scratch)
+#define ss    local->sprite
+#define seq   local->sequence
+#define aa    local->animation
+
 //static Scratch scratch;
 
 void room_412_init() {
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room412.h b/engines/mads/madsv2/dragonsphere/rooms/room412.h
index 8614ec58fb1..a0e453c8d44 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room412.h
+++ b/engines/mads/madsv2/dragonsphere/rooms/room412.h
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -30,21 +30,12 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
-#define local (&scratch)
-#define ss    local->sprite
-#define seq   local->sequence
-#define aa    local->animation
-
-/**
- * Room local variables
- */
-struct Scratch {
-
-};
+extern void room_412_preload();
+extern void room_412_synchronize(Common::Serializer &s);
 
 } // namespace Rooms
 } // namespace Dragonsphere
 } // namespace MADSV2
 } // namespace MADS
 
-#endif
+#endif
\ No newline at end of file
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room454.cpp b/engines/mads/madsv2/dragonsphere/rooms/room454.cpp
index a3d8f4384bb..179d7f76aef 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room454.cpp
+++ b/engines/mads/madsv2/dragonsphere/rooms/room454.cpp
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -34,6 +34,14 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
+struct Scratch {
+};
+
+#define local (&scratch)
+#define ss    local->sprite
+#define seq   local->sequence
+#define aa    local->animation
+
 //static Scratch scratch;
 
 void room_454_init() {
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room454.h b/engines/mads/madsv2/dragonsphere/rooms/room454.h
index 024a6134797..b47968e4308 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room454.h
+++ b/engines/mads/madsv2/dragonsphere/rooms/room454.h
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -30,21 +30,12 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
-#define local (&scratch)
-#define ss    local->sprite
-#define seq   local->sequence
-#define aa    local->animation
-
-/**
- * Room local variables
- */
-struct Scratch {
-
-};
+extern void room_454_preload();
+extern void room_454_synchronize(Common::Serializer &s);
 
 } // namespace Rooms
 } // namespace Dragonsphere
 } // namespace MADSV2
 } // namespace MADS
 
-#endif
+#endif
\ No newline at end of file
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room501.cpp b/engines/mads/madsv2/dragonsphere/rooms/room501.cpp
index e16ecdec82c..ed03e759a4a 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room501.cpp
+++ b/engines/mads/madsv2/dragonsphere/rooms/room501.cpp
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -34,6 +34,14 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
+struct Scratch {
+};
+
+#define local (&scratch)
+#define ss    local->sprite
+#define seq   local->sequence
+#define aa    local->animation
+
 //static Scratch scratch;
 
 void room_501_init() {
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room501.h b/engines/mads/madsv2/dragonsphere/rooms/room501.h
index 5ab4f30d802..90aeebe9235 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room501.h
+++ b/engines/mads/madsv2/dragonsphere/rooms/room501.h
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -30,21 +30,12 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
-#define local (&scratch)
-#define ss    local->sprite
-#define seq   local->sequence
-#define aa    local->animation
-
-/**
- * Room local variables
- */
-struct Scratch {
-
-};
+extern void room_501_preload();
+extern void room_501_synchronize(Common::Serializer &s);
 
 } // namespace Rooms
 } // namespace Dragonsphere
 } // namespace MADSV2
 } // namespace MADS
 
-#endif
+#endif
\ No newline at end of file
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room502.cpp b/engines/mads/madsv2/dragonsphere/rooms/room502.cpp
index 4865dfb4b2f..db3c035a286 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room502.cpp
+++ b/engines/mads/madsv2/dragonsphere/rooms/room502.cpp
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -34,6 +34,14 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
+struct Scratch {
+};
+
+#define local (&scratch)
+#define ss    local->sprite
+#define seq   local->sequence
+#define aa    local->animation
+
 //static Scratch scratch;
 
 void room_502_init() {
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room502.h b/engines/mads/madsv2/dragonsphere/rooms/room502.h
index dd4e5a079bf..93d5d5ff8df 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room502.h
+++ b/engines/mads/madsv2/dragonsphere/rooms/room502.h
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -30,21 +30,12 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
-#define local (&scratch)
-#define ss    local->sprite
-#define seq   local->sequence
-#define aa    local->animation
-
-/**
- * Room local variables
- */
-struct Scratch {
-
-};
+extern void room_502_preload();
+extern void room_502_synchronize(Common::Serializer &s);
 
 } // namespace Rooms
 } // namespace Dragonsphere
 } // namespace MADSV2
 } // namespace MADS
 
-#endif
+#endif
\ No newline at end of file
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room503.cpp b/engines/mads/madsv2/dragonsphere/rooms/room503.cpp
index 34c9c2d7f93..c8fee4447be 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room503.cpp
+++ b/engines/mads/madsv2/dragonsphere/rooms/room503.cpp
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -34,6 +34,14 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
+struct Scratch {
+};
+
+#define local (&scratch)
+#define ss    local->sprite
+#define seq   local->sequence
+#define aa    local->animation
+
 //static Scratch scratch;
 
 void room_503_init() {
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room503.h b/engines/mads/madsv2/dragonsphere/rooms/room503.h
index 4c6d39ef56a..a30c98bc4d1 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room503.h
+++ b/engines/mads/madsv2/dragonsphere/rooms/room503.h
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -30,21 +30,12 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
-#define local (&scratch)
-#define ss    local->sprite
-#define seq   local->sequence
-#define aa    local->animation
-
-/**
- * Room local variables
- */
-struct Scratch {
-
-};
+extern void room_503_preload();
+extern void room_503_synchronize(Common::Serializer &s);
 
 } // namespace Rooms
 } // namespace Dragonsphere
 } // namespace MADSV2
 } // namespace MADS
 
-#endif
+#endif
\ No newline at end of file
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room504.cpp b/engines/mads/madsv2/dragonsphere/rooms/room504.cpp
index f56ee7acab0..b9e99a984d3 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room504.cpp
+++ b/engines/mads/madsv2/dragonsphere/rooms/room504.cpp
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -34,6 +34,14 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
+struct Scratch {
+};
+
+#define local (&scratch)
+#define ss    local->sprite
+#define seq   local->sequence
+#define aa    local->animation
+
 //static Scratch scratch;
 
 void room_504_init() {
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room504.h b/engines/mads/madsv2/dragonsphere/rooms/room504.h
index 41df0e0f9f9..fb2effa36b1 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room504.h
+++ b/engines/mads/madsv2/dragonsphere/rooms/room504.h
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -30,21 +30,12 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
-#define local (&scratch)
-#define ss    local->sprite
-#define seq   local->sequence
-#define aa    local->animation
-
-/**
- * Room local variables
- */
-struct Scratch {
-
-};
+extern void room_504_preload();
+extern void room_504_synchronize(Common::Serializer &s);
 
 } // namespace Rooms
 } // namespace Dragonsphere
 } // namespace MADSV2
 } // namespace MADS
 
-#endif
+#endif
\ No newline at end of file
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room505.cpp b/engines/mads/madsv2/dragonsphere/rooms/room505.cpp
index 799ce8ddfe2..3080ea78eca 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room505.cpp
+++ b/engines/mads/madsv2/dragonsphere/rooms/room505.cpp
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -34,6 +34,14 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
+struct Scratch {
+};
+
+#define local (&scratch)
+#define ss    local->sprite
+#define seq   local->sequence
+#define aa    local->animation
+
 //static Scratch scratch;
 
 void room_505_init() {
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room505.h b/engines/mads/madsv2/dragonsphere/rooms/room505.h
index 2bd5c71e8db..278cc19aa3d 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room505.h
+++ b/engines/mads/madsv2/dragonsphere/rooms/room505.h
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -30,21 +30,12 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
-#define local (&scratch)
-#define ss    local->sprite
-#define seq   local->sequence
-#define aa    local->animation
-
-/**
- * Room local variables
- */
-struct Scratch {
-
-};
+extern void room_505_preload();
+extern void room_505_synchronize(Common::Serializer &s);
 
 } // namespace Rooms
 } // namespace Dragonsphere
 } // namespace MADSV2
 } // namespace MADS
 
-#endif
+#endif
\ No newline at end of file
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room506.cpp b/engines/mads/madsv2/dragonsphere/rooms/room506.cpp
index 27e7fb5c2eb..2db86b8920d 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room506.cpp
+++ b/engines/mads/madsv2/dragonsphere/rooms/room506.cpp
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -34,6 +34,14 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
+struct Scratch {
+};
+
+#define local (&scratch)
+#define ss    local->sprite
+#define seq   local->sequence
+#define aa    local->animation
+
 //static Scratch scratch;
 
 void room_506_init() {
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room506.h b/engines/mads/madsv2/dragonsphere/rooms/room506.h
index a0284821735..6c28987450d 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room506.h
+++ b/engines/mads/madsv2/dragonsphere/rooms/room506.h
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -30,21 +30,12 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
-#define local (&scratch)
-#define ss    local->sprite
-#define seq   local->sequence
-#define aa    local->animation
-
-/**
- * Room local variables
- */
-struct Scratch {
-
-};
+extern void room_506_preload();
+extern void room_506_synchronize(Common::Serializer &s);
 
 } // namespace Rooms
 } // namespace Dragonsphere
 } // namespace MADSV2
 } // namespace MADS
 
-#endif
+#endif
\ No newline at end of file
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room507.cpp b/engines/mads/madsv2/dragonsphere/rooms/room507.cpp
index eb168f4033a..87219618c09 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room507.cpp
+++ b/engines/mads/madsv2/dragonsphere/rooms/room507.cpp
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -34,6 +34,14 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
+struct Scratch {
+};
+
+#define local (&scratch)
+#define ss    local->sprite
+#define seq   local->sequence
+#define aa    local->animation
+
 //static Scratch scratch;
 
 void room_507_init() {
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room507.h b/engines/mads/madsv2/dragonsphere/rooms/room507.h
index 84ef08d8e38..ea46e45bdd8 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room507.h
+++ b/engines/mads/madsv2/dragonsphere/rooms/room507.h
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -30,21 +30,12 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
-#define local (&scratch)
-#define ss    local->sprite
-#define seq   local->sequence
-#define aa    local->animation
-
-/**
- * Room local variables
- */
-struct Scratch {
-
-};
+extern void room_507_preload();
+extern void room_507_synchronize(Common::Serializer &s);
 
 } // namespace Rooms
 } // namespace Dragonsphere
 } // namespace MADSV2
 } // namespace MADS
 
-#endif
+#endif
\ No newline at end of file
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room508.cpp b/engines/mads/madsv2/dragonsphere/rooms/room508.cpp
index d8e1dd1ac5a..0bbdf01f9da 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room508.cpp
+++ b/engines/mads/madsv2/dragonsphere/rooms/room508.cpp
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -34,6 +34,14 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
+struct Scratch {
+};
+
+#define local (&scratch)
+#define ss    local->sprite
+#define seq   local->sequence
+#define aa    local->animation
+
 //static Scratch scratch;
 
 void room_508_init() {
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room508.h b/engines/mads/madsv2/dragonsphere/rooms/room508.h
index aebc2a7b25d..9ef1448b55e 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room508.h
+++ b/engines/mads/madsv2/dragonsphere/rooms/room508.h
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -30,21 +30,12 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
-#define local (&scratch)
-#define ss    local->sprite
-#define seq   local->sequence
-#define aa    local->animation
-
-/**
- * Room local variables
- */
-struct Scratch {
-
-};
+extern void room_508_preload();
+extern void room_508_synchronize(Common::Serializer &s);
 
 } // namespace Rooms
 } // namespace Dragonsphere
 } // namespace MADSV2
 } // namespace MADS
 
-#endif
+#endif
\ No newline at end of file
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room509.cpp b/engines/mads/madsv2/dragonsphere/rooms/room509.cpp
index e54fb5d6e5a..1b5ed997d67 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room509.cpp
+++ b/engines/mads/madsv2/dragonsphere/rooms/room509.cpp
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -34,6 +34,14 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
+struct Scratch {
+};
+
+#define local (&scratch)
+#define ss    local->sprite
+#define seq   local->sequence
+#define aa    local->animation
+
 //static Scratch scratch;
 
 void room_509_init() {
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room509.h b/engines/mads/madsv2/dragonsphere/rooms/room509.h
index 9a9b130f6ee..9a00005c3cf 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room509.h
+++ b/engines/mads/madsv2/dragonsphere/rooms/room509.h
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -30,21 +30,12 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
-#define local (&scratch)
-#define ss    local->sprite
-#define seq   local->sequence
-#define aa    local->animation
-
-/**
- * Room local variables
- */
-struct Scratch {
-
-};
+extern void room_509_preload();
+extern void room_509_synchronize(Common::Serializer &s);
 
 } // namespace Rooms
 } // namespace Dragonsphere
 } // namespace MADSV2
 } // namespace MADS
 
-#endif
+#endif
\ No newline at end of file
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room510.cpp b/engines/mads/madsv2/dragonsphere/rooms/room510.cpp
index a2ca4824576..fa54d99d272 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room510.cpp
+++ b/engines/mads/madsv2/dragonsphere/rooms/room510.cpp
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -34,6 +34,14 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
+struct Scratch {
+};
+
+#define local (&scratch)
+#define ss    local->sprite
+#define seq   local->sequence
+#define aa    local->animation
+
 //static Scratch scratch;
 
 void room_510_init() {
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room510.h b/engines/mads/madsv2/dragonsphere/rooms/room510.h
index c59697684fe..b0602911288 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room510.h
+++ b/engines/mads/madsv2/dragonsphere/rooms/room510.h
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -30,21 +30,12 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
-#define local (&scratch)
-#define ss    local->sprite
-#define seq   local->sequence
-#define aa    local->animation
-
-/**
- * Room local variables
- */
-struct Scratch {
-
-};
+extern void room_510_preload();
+extern void room_510_synchronize(Common::Serializer &s);
 
 } // namespace Rooms
 } // namespace Dragonsphere
 } // namespace MADSV2
 } // namespace MADS
 
-#endif
+#endif
\ No newline at end of file
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room511.cpp b/engines/mads/madsv2/dragonsphere/rooms/room511.cpp
index 7b73e578495..0c6c3d0d9da 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room511.cpp
+++ b/engines/mads/madsv2/dragonsphere/rooms/room511.cpp
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -34,6 +34,14 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
+struct Scratch {
+};
+
+#define local (&scratch)
+#define ss    local->sprite
+#define seq   local->sequence
+#define aa    local->animation
+
 //static Scratch scratch;
 
 void room_511_init() {
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room511.h b/engines/mads/madsv2/dragonsphere/rooms/room511.h
index 7cde8d5d0e0..37a5873538d 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room511.h
+++ b/engines/mads/madsv2/dragonsphere/rooms/room511.h
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -30,21 +30,12 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
-#define local (&scratch)
-#define ss    local->sprite
-#define seq   local->sequence
-#define aa    local->animation
-
-/**
- * Room local variables
- */
-struct Scratch {
-
-};
+extern void room_511_preload();
+extern void room_511_synchronize(Common::Serializer &s);
 
 } // namespace Rooms
 } // namespace Dragonsphere
 } // namespace MADSV2
 } // namespace MADS
 
-#endif
+#endif
\ No newline at end of file
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room512.cpp b/engines/mads/madsv2/dragonsphere/rooms/room512.cpp
index 911ab71b5c8..ec52404298c 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room512.cpp
+++ b/engines/mads/madsv2/dragonsphere/rooms/room512.cpp
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -34,6 +34,14 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
+struct Scratch {
+};
+
+#define local (&scratch)
+#define ss    local->sprite
+#define seq   local->sequence
+#define aa    local->animation
+
 //static Scratch scratch;
 
 void room_512_init() {
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room512.h b/engines/mads/madsv2/dragonsphere/rooms/room512.h
index 4bb91514f9d..efa5edf0538 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room512.h
+++ b/engines/mads/madsv2/dragonsphere/rooms/room512.h
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -30,21 +30,12 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
-#define local (&scratch)
-#define ss    local->sprite
-#define seq   local->sequence
-#define aa    local->animation
-
-/**
- * Room local variables
- */
-struct Scratch {
-
-};
+extern void room_512_preload();
+extern void room_512_synchronize(Common::Serializer &s);
 
 } // namespace Rooms
 } // namespace Dragonsphere
 } // namespace MADSV2
 } // namespace MADS
 
-#endif
+#endif
\ No newline at end of file
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room557.cpp b/engines/mads/madsv2/dragonsphere/rooms/room557.cpp
index 2c957f69f95..bf1f9b56777 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room557.cpp
+++ b/engines/mads/madsv2/dragonsphere/rooms/room557.cpp
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -34,6 +34,14 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
+struct Scratch {
+};
+
+#define local (&scratch)
+#define ss    local->sprite
+#define seq   local->sequence
+#define aa    local->animation
+
 //static Scratch scratch;
 
 void room_557_init() {
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room557.h b/engines/mads/madsv2/dragonsphere/rooms/room557.h
index 1a952cb4a08..52fefb04622 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room557.h
+++ b/engines/mads/madsv2/dragonsphere/rooms/room557.h
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -30,21 +30,12 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
-#define local (&scratch)
-#define ss    local->sprite
-#define seq   local->sequence
-#define aa    local->animation
-
-/**
- * Room local variables
- */
-struct Scratch {
-
-};
+extern void room_557_preload();
+extern void room_557_synchronize(Common::Serializer &s);
 
 } // namespace Rooms
 } // namespace Dragonsphere
 } // namespace MADSV2
 } // namespace MADS
 
-#endif
+#endif
\ No newline at end of file
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room601.cpp b/engines/mads/madsv2/dragonsphere/rooms/room601.cpp
index b1917bc8a2c..8ecf78d5c60 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room601.cpp
+++ b/engines/mads/madsv2/dragonsphere/rooms/room601.cpp
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -34,6 +34,14 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
+struct Scratch {
+};
+
+#define local (&scratch)
+#define ss    local->sprite
+#define seq   local->sequence
+#define aa    local->animation
+
 //static Scratch scratch;
 
 void room_601_init() {
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room601.h b/engines/mads/madsv2/dragonsphere/rooms/room601.h
index 18e1211566d..63bff2521f3 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room601.h
+++ b/engines/mads/madsv2/dragonsphere/rooms/room601.h
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -30,21 +30,12 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
-#define local (&scratch)
-#define ss    local->sprite
-#define seq   local->sequence
-#define aa    local->animation
-
-/**
- * Room local variables
- */
-struct Scratch {
-
-};
+extern void room_601_preload();
+extern void room_601_synchronize(Common::Serializer &s);
 
 } // namespace Rooms
 } // namespace Dragonsphere
 } // namespace MADSV2
 } // namespace MADS
 
-#endif
+#endif
\ No newline at end of file
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room603.cpp b/engines/mads/madsv2/dragonsphere/rooms/room603.cpp
index aade6e73eea..51967fb683b 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room603.cpp
+++ b/engines/mads/madsv2/dragonsphere/rooms/room603.cpp
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -34,6 +34,14 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
+struct Scratch {
+};
+
+#define local (&scratch)
+#define ss    local->sprite
+#define seq   local->sequence
+#define aa    local->animation
+
 //static Scratch scratch;
 
 void room_603_init() {
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room603.h b/engines/mads/madsv2/dragonsphere/rooms/room603.h
index 7e1126e0572..12acf4ed7e9 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room603.h
+++ b/engines/mads/madsv2/dragonsphere/rooms/room603.h
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -30,21 +30,12 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
-#define local (&scratch)
-#define ss    local->sprite
-#define seq   local->sequence
-#define aa    local->animation
-
-/**
- * Room local variables
- */
-struct Scratch {
-
-};
+extern void room_603_preload();
+extern void room_603_synchronize(Common::Serializer &s);
 
 } // namespace Rooms
 } // namespace Dragonsphere
 } // namespace MADSV2
 } // namespace MADS
 
-#endif
+#endif
\ No newline at end of file
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room604.cpp b/engines/mads/madsv2/dragonsphere/rooms/room604.cpp
index 8d081577d1b..a0d557c8af4 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room604.cpp
+++ b/engines/mads/madsv2/dragonsphere/rooms/room604.cpp
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -34,6 +34,14 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
+struct Scratch {
+};
+
+#define local (&scratch)
+#define ss    local->sprite
+#define seq   local->sequence
+#define aa    local->animation
+
 //static Scratch scratch;
 
 void room_604_init() {
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room604.h b/engines/mads/madsv2/dragonsphere/rooms/room604.h
index 8601150da45..6e96cfae3ed 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room604.h
+++ b/engines/mads/madsv2/dragonsphere/rooms/room604.h
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -30,21 +30,12 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
-#define local (&scratch)
-#define ss    local->sprite
-#define seq   local->sequence
-#define aa    local->animation
-
-/**
- * Room local variables
- */
-struct Scratch {
-
-};
+extern void room_604_preload();
+extern void room_604_synchronize(Common::Serializer &s);
 
 } // namespace Rooms
 } // namespace Dragonsphere
 } // namespace MADSV2
 } // namespace MADS
 
-#endif
+#endif
\ No newline at end of file
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room605.cpp b/engines/mads/madsv2/dragonsphere/rooms/room605.cpp
index c429c7aba78..7a95acd01b2 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room605.cpp
+++ b/engines/mads/madsv2/dragonsphere/rooms/room605.cpp
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -34,6 +34,14 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
+struct Scratch {
+};
+
+#define local (&scratch)
+#define ss    local->sprite
+#define seq   local->sequence
+#define aa    local->animation
+
 //static Scratch scratch;
 
 void room_605_init() {
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room605.h b/engines/mads/madsv2/dragonsphere/rooms/room605.h
index e95cdd6c7ff..eb4d67c6fd4 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room605.h
+++ b/engines/mads/madsv2/dragonsphere/rooms/room605.h
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -30,21 +30,12 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
-#define local (&scratch)
-#define ss    local->sprite
-#define seq   local->sequence
-#define aa    local->animation
-
-/**
- * Room local variables
- */
-struct Scratch {
-
-};
+extern void room_605_preload();
+extern void room_605_synchronize(Common::Serializer &s);
 
 } // namespace Rooms
 } // namespace Dragonsphere
 } // namespace MADSV2
 } // namespace MADS
 
-#endif
+#endif
\ No newline at end of file
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room606.cpp b/engines/mads/madsv2/dragonsphere/rooms/room606.cpp
index e32b4739d22..c40fd07689e 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room606.cpp
+++ b/engines/mads/madsv2/dragonsphere/rooms/room606.cpp
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -34,6 +34,14 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
+struct Scratch {
+};
+
+#define local (&scratch)
+#define ss    local->sprite
+#define seq   local->sequence
+#define aa    local->animation
+
 //static Scratch scratch;
 
 void room_606_init() {
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room606.h b/engines/mads/madsv2/dragonsphere/rooms/room606.h
index 47ba5e9624b..aefc5c277ac 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room606.h
+++ b/engines/mads/madsv2/dragonsphere/rooms/room606.h
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -30,21 +30,12 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
-#define local (&scratch)
-#define ss    local->sprite
-#define seq   local->sequence
-#define aa    local->animation
-
-/**
- * Room local variables
- */
-struct Scratch {
-
-};
+extern void room_606_preload();
+extern void room_606_synchronize(Common::Serializer &s);
 
 } // namespace Rooms
 } // namespace Dragonsphere
 } // namespace MADSV2
 } // namespace MADS
 
-#endif
+#endif
\ No newline at end of file
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room607.cpp b/engines/mads/madsv2/dragonsphere/rooms/room607.cpp
index a31b1bce9d6..90d06394fa0 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room607.cpp
+++ b/engines/mads/madsv2/dragonsphere/rooms/room607.cpp
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -34,6 +34,14 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
+struct Scratch {
+};
+
+#define local (&scratch)
+#define ss    local->sprite
+#define seq   local->sequence
+#define aa    local->animation
+
 //static Scratch scratch;
 
 void room_607_init() {
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room607.h b/engines/mads/madsv2/dragonsphere/rooms/room607.h
index 913c955563d..4ddd952f324 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room607.h
+++ b/engines/mads/madsv2/dragonsphere/rooms/room607.h
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -30,21 +30,12 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
-#define local (&scratch)
-#define ss    local->sprite
-#define seq   local->sequence
-#define aa    local->animation
-
-/**
- * Room local variables
- */
-struct Scratch {
-
-};
+extern void room_607_preload();
+extern void room_607_synchronize(Common::Serializer &s);
 
 } // namespace Rooms
 } // namespace Dragonsphere
 } // namespace MADSV2
 } // namespace MADS
 
-#endif
+#endif
\ No newline at end of file
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room609.cpp b/engines/mads/madsv2/dragonsphere/rooms/room609.cpp
index 16f7aa5b2bb..36d541eb7dc 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room609.cpp
+++ b/engines/mads/madsv2/dragonsphere/rooms/room609.cpp
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -34,6 +34,14 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
+struct Scratch {
+};
+
+#define local (&scratch)
+#define ss    local->sprite
+#define seq   local->sequence
+#define aa    local->animation
+
 //static Scratch scratch;
 
 void room_609_init() {
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room609.h b/engines/mads/madsv2/dragonsphere/rooms/room609.h
index edf7af6beca..2979f885aec 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room609.h
+++ b/engines/mads/madsv2/dragonsphere/rooms/room609.h
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -30,21 +30,12 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
-#define local (&scratch)
-#define ss    local->sprite
-#define seq   local->sequence
-#define aa    local->animation
-
-/**
- * Room local variables
- */
-struct Scratch {
-
-};
+extern void room_609_preload();
+extern void room_609_synchronize(Common::Serializer &s);
 
 } // namespace Rooms
 } // namespace Dragonsphere
 } // namespace MADSV2
 } // namespace MADS
 
-#endif
+#endif
\ No newline at end of file
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room612.cpp b/engines/mads/madsv2/dragonsphere/rooms/room612.cpp
index 209e168f87a..b8f6b85872a 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room612.cpp
+++ b/engines/mads/madsv2/dragonsphere/rooms/room612.cpp
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -34,6 +34,14 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
+struct Scratch {
+};
+
+#define local (&scratch)
+#define ss    local->sprite
+#define seq   local->sequence
+#define aa    local->animation
+
 //static Scratch scratch;
 
 void room_612_init() {
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room612.h b/engines/mads/madsv2/dragonsphere/rooms/room612.h
index b6f8e0b0c64..539eecb0173 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room612.h
+++ b/engines/mads/madsv2/dragonsphere/rooms/room612.h
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -30,21 +30,12 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
-#define local (&scratch)
-#define ss    local->sprite
-#define seq   local->sequence
-#define aa    local->animation
-
-/**
- * Room local variables
- */
-struct Scratch {
-
-};
+extern void room_612_preload();
+extern void room_612_synchronize(Common::Serializer &s);
 
 } // namespace Rooms
 } // namespace Dragonsphere
 } // namespace MADSV2
 } // namespace MADS
 
-#endif
+#endif
\ No newline at end of file
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room613.cpp b/engines/mads/madsv2/dragonsphere/rooms/room613.cpp
index d1b3cfcc285..f114d3ca618 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room613.cpp
+++ b/engines/mads/madsv2/dragonsphere/rooms/room613.cpp
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -34,6 +34,14 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
+struct Scratch {
+};
+
+#define local (&scratch)
+#define ss    local->sprite
+#define seq   local->sequence
+#define aa    local->animation
+
 //static Scratch scratch;
 
 void room_613_init() {
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room613.h b/engines/mads/madsv2/dragonsphere/rooms/room613.h
index 0a49813f03f..3d16a29ce31 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room613.h
+++ b/engines/mads/madsv2/dragonsphere/rooms/room613.h
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -30,21 +30,12 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
-#define local (&scratch)
-#define ss    local->sprite
-#define seq   local->sequence
-#define aa    local->animation
-
-/**
- * Room local variables
- */
-struct Scratch {
-
-};
+extern void room_613_preload();
+extern void room_613_synchronize(Common::Serializer &s);
 
 } // namespace Rooms
 } // namespace Dragonsphere
 } // namespace MADSV2
 } // namespace MADS
 
-#endif
+#endif
\ No newline at end of file
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room614.cpp b/engines/mads/madsv2/dragonsphere/rooms/room614.cpp
index ec63f0a2221..5918a7fc320 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room614.cpp
+++ b/engines/mads/madsv2/dragonsphere/rooms/room614.cpp
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -34,6 +34,14 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
+struct Scratch {
+};
+
+#define local (&scratch)
+#define ss    local->sprite
+#define seq   local->sequence
+#define aa    local->animation
+
 //static Scratch scratch;
 
 void room_614_init() {
diff --git a/engines/mads/madsv2/dragonsphere/rooms/room614.h b/engines/mads/madsv2/dragonsphere/rooms/room614.h
index b9c0ab5d776..6b7af4f9074 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/room614.h
+++ b/engines/mads/madsv2/dragonsphere/rooms/room614.h
@@ -1,4 +1,4 @@
-/* ScummVM - Graphic Adventure Engine
+/* ScummVM - Graphic Adventure Engine
  *
  * ScummVM is the legal property of its developers, whose names
  * are too numerous to list here. Please refer to the COPYRIGHT
@@ -30,21 +30,12 @@ namespace MADSV2 {
 namespace Dragonsphere {
 namespace Rooms {
 
-#define local (&scratch)
-#define ss    local->sprite
-#define seq   local->sequence
-#define aa    local->animation
-
-/**
- * Room local variables
- */
-struct Scratch {
-
-};
+extern void room_614_preload();
+extern void room_614_synchronize(Common::Serializer &s);
 
 } // namespace Rooms
 } // namespace Dragonsphere
 } // namespace MADSV2
 } // namespace MADS
 
-#endif
+#endif
\ No newline at end of file




More information about the Scummvm-git-logs mailing list