[Scummvm-git-logs] scummvm master -> 51c95293b9269cf6191d875c271f89985ac375cb

dreammaster noreply at scummvm.org
Sun Jun 28 12:05:51 UTC 2026


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

Summary:
51c95293b9 MADS: FOREST: Fix room 199 Scratch structure


Commit: 51c95293b9269cf6191d875c271f89985ac375cb
    https://github.com/scummvm/scummvm/commit/51c95293b9269cf6191d875c271f89985ac375cb
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2026-06-28T22:05:41+10:00

Commit Message:
MADS: FOREST: Fix room 199 Scratch structure

Changed paths:
    engines/mads/madsv2/forest/rooms/room199.cpp


diff --git a/engines/mads/madsv2/forest/rooms/room199.cpp b/engines/mads/madsv2/forest/rooms/room199.cpp
index d9f59a2d271..b4f751b92f9 100644
--- a/engines/mads/madsv2/forest/rooms/room199.cpp
+++ b/engines/mads/madsv2/forest/rooms/room199.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
@@ -36,10 +36,14 @@ namespace Forest {
 namespace Rooms {
 
 struct Scratch {
-	int16 sprite[10];            /* 0x00 — sprite series handles  */
-	int16 sequence[10];          /* 0x14 — sequence handles       */
-	int16 animation[10];         /* 0x28 — animation handles      */
-	AnimationInfo animation_info[10]; /* 0x3C */
+	int16 sprite[16];
+	int16 sequence[16];
+	int16 val3;
+	int16 val4;
+	int16 bg_active;
+	int16 bg_frame;
+	int16 anim_flag;
+	int16 anim_frame;
 };
 
 static Scratch scratch;
@@ -47,55 +51,53 @@ static Scratch scratch;
 #define local (&scratch)
 #define ss    local->sprite
 #define seq   local->sequence
-#define aa    local->animation
-#define aainfo scratch.animation_info
 
 
 static void room_199_init1() {
 	if (flags[15] >= 1) {
-		ss[1] = kernel_load_series("*rm199n2", 0); seq[7] = kernel_seq_stamp(ss[1], false, 1); kernel_seq_depth(seq[7], 5);
+		ss[1]  = kernel_load_series("*rm199n2",  0); seq[1]  = kernel_seq_stamp(ss[1],  false, 1); kernel_seq_depth(seq[1],  5);
 	}
 	if (flags[16] >= 1) {
-		ss[2] = kernel_load_series("*rm199n3", 0); seq[8] = kernel_seq_stamp(ss[2], false, 1); kernel_seq_depth(seq[8], 5);
+		ss[2]  = kernel_load_series("*rm199n3",  0); seq[2]  = kernel_seq_stamp(ss[2],  false, 1); kernel_seq_depth(seq[2],  5);
 	}
 	if (flags[17] >= 1 || flags[24] >= 1) {
-		ss[3] = kernel_load_series("*rm199n5", 0); seq[9] = kernel_seq_stamp(ss[3], false, 1); kernel_seq_depth(seq[9], 5);
+		ss[3]  = kernel_load_series("*rm199n5",  0); seq[3]  = kernel_seq_stamp(ss[3],  false, 1); kernel_seq_depth(seq[3],  5);
 	}
 	if (flags[18] >= 1) {
-		ss[4] = kernel_load_series("*rm199n4", 0); aa[0] = kernel_seq_stamp(ss[4], false, 1); kernel_seq_depth(aa[0], 5);
+		ss[4]  = kernel_load_series("*rm199n4",  0); seq[4]  = kernel_seq_stamp(ss[4],  false, 1); kernel_seq_depth(seq[4],  5);
 	}
 	if (flags[19] >= 1) {
-		ss[5] = kernel_load_series("*rm199n7", 0); aa[1] = kernel_seq_stamp(ss[5], false, 1); kernel_seq_depth(aa[1], 5);
+		ss[5]  = kernel_load_series("*rm199n7",  0); seq[5]  = kernel_seq_stamp(ss[5],  false, 1); kernel_seq_depth(seq[5],  5);
 	}
 	if (flags[20] >= 1) {
-		ss[6] = kernel_load_series("*rm199n8", 0); aa[2] = kernel_seq_stamp(ss[6], false, 1); kernel_seq_depth(aa[2], 5);
+		ss[6]  = kernel_load_series("*rm199n8",  0); seq[6]  = kernel_seq_stamp(ss[6],  false, 1); kernel_seq_depth(seq[6],  5);
 	}
 	if (flags[21] >= 1 || flags[25] >= 1) {
-		ss[7] = kernel_load_series("*rm199n6", 0); aa[3] = kernel_seq_stamp(ss[7], false, 1); kernel_seq_depth(aa[3], 5);
+		ss[7]  = kernel_load_series("*rm199n6",  0); seq[7]  = kernel_seq_stamp(ss[7],  false, 1); kernel_seq_depth(seq[7],  5);
 	}
 	if (flags[22] >= 1) {
-		ss[8] = kernel_load_series("*rm199n9", 0); aa[4] = kernel_seq_stamp(ss[8], false, 1); kernel_seq_depth(aa[4], 5);
+		ss[8]  = kernel_load_series("*rm199n9",  0); seq[8]  = kernel_seq_stamp(ss[8],  false, 1); kernel_seq_depth(seq[8],  5);
 	}
 	if (flags[26] >= 1 || flags[31] >= 1) {
-		ss[9] = kernel_load_series("*rm199n10", 0); aa[5] = kernel_seq_stamp(ss[9], false, 1); kernel_seq_depth(aa[5], 5);
+		ss[9]  = kernel_load_series("*rm199n10", 0); seq[9]  = kernel_seq_stamp(ss[9],  false, 1); kernel_seq_depth(seq[9],  5);
 	}
 	if (flags[27] >= 1) {
-		seq[0] = kernel_load_series("*rm199n11", 0); aa[6] = kernel_seq_stamp(seq[0], false, 1); kernel_seq_depth(aa[6], 5);
+		ss[10] = kernel_load_series("*rm199n11", 0); seq[10] = kernel_seq_stamp(ss[10], false, 1); kernel_seq_depth(seq[10], 5);
 	}
 	if (flags[28] >= 1) {
-		seq[1] = kernel_load_series("*rm199n12", 0); aa[7] = kernel_seq_stamp(seq[1], false, 1); kernel_seq_depth(aa[7], 5);
+		ss[11] = kernel_load_series("*rm199n12", 0); seq[11] = kernel_seq_stamp(ss[11], false, 1); kernel_seq_depth(seq[11], 5);
 	}
 	if (flags[29] >= 1) {
-		seq[2] = kernel_load_series("*rm199n13", 0); aa[8] = kernel_seq_stamp(seq[2], false, 1); kernel_seq_depth(aa[8], 5);
+		ss[12] = kernel_load_series("*rm199n13", 0); seq[12] = kernel_seq_stamp(ss[12], false, 1); kernel_seq_depth(seq[12], 5);
 	}
 	if (flags[30] >= 1) {
-		seq[3] = kernel_load_series("*rm199n14", 0); aa[9] = kernel_seq_stamp(seq[3], false, 1); kernel_seq_depth(aa[9], 5);
+		ss[13] = kernel_load_series("*rm199n14", 0); seq[13] = kernel_seq_stamp(ss[13], false, 1); kernel_seq_depth(seq[13], 5);
 	}
 	if (flags[32] >= 1) {
-		seq[4] = kernel_load_series("*rm199n15", 0); aainfo[0]._active = kernel_seq_stamp(seq[4], false, 1); kernel_seq_depth(aainfo[0]._active, 5);
+		ss[14] = kernel_load_series("*rm199n15", 0); seq[14] = kernel_seq_stamp(ss[14], false, 1); kernel_seq_depth(seq[14], 5);
 	}
 	if (flags[33] >= 1) {
-		seq[5] = kernel_load_series("*rm199n16", 0); aainfo[0]._frame = kernel_seq_stamp(seq[5], false, 1); kernel_seq_depth(aainfo[0]._frame, 5);
+		ss[15] = kernel_load_series("*rm199n16", 0); seq[15] = kernel_seq_stamp(ss[15], false, 1); kernel_seq_depth(seq[15], 5);
 	}
 }
 
@@ -104,52 +106,52 @@ static void room_199_init() {
 	global[g009] = -1;
 	global_midi_play(7);
 
-	aainfo[2]._val3 = -1;
-	aainfo[2]._val4 = 0;
-	aainfo[3]._active = 0;
-	aainfo[3]._frame = -1;
+	local->val3      = -1;
+	local->val4      = 0;
+	local->anim_flag  = 0;
+	local->anim_frame = -1;
 
 	if (previous_room == 304 || previous_room == 402) {
 		if (global[g070] != 0) {
-			aainfo[2]._frame = 1;
+			local->bg_frame = 1;
 			ss[1] = kernel_load_series("*rm199z1", 0);
 			kernel_flip_hotspot(words_flowers, false);
 			kernel_flip_hotspot(words_fwt, false);
-			int16 slot = aainfo[2]._frame;
-			seq[6 + slot] = kernel_seq_stamp(ss[slot], false, 1);
-			kernel_seq_depth(seq[6 + slot], 1);
-			aainfo[2]._active = slot;
+			int16 slot = local->bg_frame;
+			seq[slot] = kernel_seq_stamp(ss[slot], false, 1);
+			kernel_seq_depth(seq[slot], 1);
+			local->bg_active = slot;
 			player.commands_allowed = false;
 			kernel_timing_trigger(300, 111);
 			return;
 		}
 		room_199_init1();
-		aainfo[2]._frame = 0;
+		local->bg_frame = 0;
 		ss[0] = kernel_load_series("*rm199n1", 0);
 	} else if (previous_room == 503) {
-		aainfo[2]._frame = 3;
+		local->bg_frame = 3;
 		ss[3] = kernel_load_series("*rm199v1", 0);
 		kernel_flip_hotspot(words_flowers, false);
 		kernel_flip_hotspot(words_fwt, false);
-		int16 slot = aainfo[2]._frame;
-		seq[6 + slot] = kernel_seq_stamp(ss[slot], false, 1);
-		kernel_seq_depth(seq[6 + slot], 5);
-		aainfo[2]._active = slot;
+		int16 slot = local->bg_frame;
+		seq[slot] = kernel_seq_stamp(ss[slot], false, 1);
+		kernel_seq_depth(seq[slot], 5);
+		local->bg_active = slot;
 		player.commands_allowed = false;
 		kernel_timing_trigger(2, 112);
 		return;
 	} else {
 		room_199_init1();
-		aainfo[2]._frame = 0;
+		local->bg_frame = 0;
 		ss[0] = kernel_load_series("*rm199n1", 0);
 	}
 
 	kernel_flip_hotspot(words_flowers, false);
 	kernel_flip_hotspot(words_fwt, false);
-	int16 slot = aainfo[2]._frame;
-	seq[6 + slot] = kernel_seq_stamp(ss[slot], false, 1);
-	kernel_seq_depth(seq[6 + slot], 1);
-	aainfo[2]._active = slot;
+	int16 slot = local->bg_frame;
+	seq[slot] = kernel_seq_stamp(ss[slot], false, 1);
+	kernel_seq_depth(seq[slot], 1);
+	local->bg_active = slot;
 }
 
 static int room_199_anim1() {
@@ -173,58 +175,58 @@ static void room_199_anim2() {
 	if (kernel.trigger != 28)
 		return;
 
-	switch (aainfo[2]._val3) {
+	switch (local->val3) {
 	case 1:
 		if (!player_has(14)) digi_play_build(521, 'e', 6, 1);
 		else kernel_timing_trigger(2, 28);
-		aainfo[2]._val3 = 2; return;
+		local->val3 = 2; return;
 	case 2:
 		if (!player_has(11)) digi_play_build(521, 'e', 10, 1);
 		else kernel_timing_trigger(2, 28);
-		aainfo[2]._val3 = 3; return;
+		local->val3 = 3; return;
 	case 3:
 		if (!player_has(12)) digi_play_build(521, 'e', 3, 1);
 		else kernel_timing_trigger(2, 28);
-		aainfo[2]._val3 = 4; return;
+		local->val3 = 4; return;
 	case 4:
 		if (!player_has(10)) digi_play_build(521, 'e', 8, 1);
 		else kernel_timing_trigger(2, 28);
-		aainfo[2]._val3 = 5; return;
+		local->val3 = 5; return;
 	case 5:
 		if (!player_has(9)) digi_play_build(521, 'e', 9, 1);
 		else kernel_timing_trigger(2, 28);
-		aainfo[2]._val3 = 6; return;
+		local->val3 = 6; return;
 	case 6:
 		if (!player_has(8)) digi_play_build(521, 'e', 20, 1);
 		else kernel_timing_trigger(2, 28);
-		aainfo[2]._val3 = 7; return;
+		local->val3 = 7; return;
 	case 7:
 		if (!player_has(2)) digi_play_build(521, 'e', 5, 1);
 		else kernel_timing_trigger(2, 28);
-		aainfo[2]._val3 = 8; return;
+		local->val3 = 8; return;
 	case 8:
 		if (!player_has(6)) digi_play_build(521, 'e', 2, 1);
 		else kernel_timing_trigger(2, 28);
-		aainfo[2]._val3 = 9; return;
+		local->val3 = 9; return;
 	case 9:
 		if (!player_has(4)) digi_play_build(521, 'e', 7, 1);
 		else kernel_timing_trigger(2, 28);
-		aainfo[2]._val3 = 10; return;
+		local->val3 = 10; return;
 	case 10:
 		if (!player_has(0)) digi_play_build(521, 'e', 4, 1);
 		else kernel_timing_trigger(2, 28);
-		aainfo[2]._val3 = 11; return;
+		local->val3 = 11; return;
 	case 11:
 		if (!player_has(7)) digi_play_build(521, 'e', 21, 1);
 		else kernel_timing_trigger(2, 28);
-		aainfo[2]._val3 = 12; return;
+		local->val3 = 12; return;
 	case 12:
 		digi_play_build(521, 'b', 1, 1);
-		aainfo[2]._val3 = 20; return;
+		local->val3 = 20; return;
 	case 14:
-		aainfo[2]._val4 = 0;
-		aainfo[2]._val3 = -1;
-		aainfo[3]._active = 0;
+		local->val4      = 0;
+		local->val3      = -1;
+		local->anim_flag  = 0;
 		kernel_timing_trigger(2, 113);
 		return;
 	default:
@@ -233,7 +235,7 @@ static void room_199_anim2() {
 }
 
 static void room_199_anim3() {
-	switch (aainfo[2]._val3) {
+	switch (local->val3) {
 	case 1:  digi_play_build(521, 'e', 6, 1);  break;
 	case 2:  digi_play_build(521, 'e', 10, 1); break;
 	case 3:  digi_play_build(521, 'e', 3, 1);  break;
@@ -252,113 +254,113 @@ static void room_199_anim3() {
 static void room_199_anim4() {
 	if (kernel.trigger == 7) {
 		kernel_timing_trigger(15, 28);
-		aainfo[2]._val3++;
+		local->val3++;
 	}
 	if (kernel.trigger != 28)
 		return;
 
-	switch (aainfo[2]._val3) {
+	switch (local->val3) {
 	case 1:
 		if (player_has(14)) {
 			ss[8] = kernel_load_series("*ob014i", 0);
-			aa[4] = kernel_seq_stamp(ss[8], false, 1);
-			kernel_seq_depth(aa[4], 1);
-			kernel_seq_loc(aa[4], 213, 42);
-			kernel_seq_scale(aa[4], 88);
+			seq[8] = kernel_seq_stamp(ss[8], false, 1);
+			kernel_seq_depth(seq[8], 1);
+			kernel_seq_loc(seq[8], 213, 42);
+			kernel_seq_scale(seq[8], 88);
 		}
 		kernel_timing_trigger(15, 115); return;
 	case 2:
 		if (player_has(11)) {
-			seq[3] = kernel_load_series("*ob011i", 0);
-			aa[9] = kernel_seq_stamp(seq[3], false, 1);
-			kernel_seq_depth(aa[9], 1);
-			kernel_seq_loc(aa[9], 250, 41);
+			ss[13] = kernel_load_series("*ob011i", 0);
+			seq[13] = kernel_seq_stamp(ss[13], false, 1);
+			kernel_seq_depth(seq[13], 1);
+			kernel_seq_loc(seq[13], 250, 41);
 		}
 		kernel_timing_trigger(15, 115); return;
 	case 3:
 		if (player_has(12)) {
 			ss[5] = kernel_load_series("*ob012i", 0);
-			aa[1] = kernel_seq_stamp(ss[5], false, 1);
-			kernel_seq_depth(aa[1], 1);
-			kernel_seq_loc(aa[1], 287, 39);
-			kernel_seq_scale(aa[1], 82);
+			seq[5] = kernel_seq_stamp(ss[5], false, 1);
+			kernel_seq_depth(seq[5], 1);
+			kernel_seq_loc(seq[5], 287, 39);
+			kernel_seq_scale(seq[5], 82);
 		}
 		kernel_timing_trigger(15, 115); return;
 	case 4:
 		if (player_has(10)) {
-			seq[1] = kernel_load_series("*ob010i", 0);
-			aa[7] = kernel_seq_stamp(seq[1], false, 1);
-			kernel_seq_depth(aa[7], 1);
-			kernel_seq_loc(aa[7], 213, 73);
-			kernel_seq_scale(aa[7], 79);
+			ss[11] = kernel_load_series("*ob010i", 0);
+			seq[11] = kernel_seq_stamp(ss[11], false, 1);
+			kernel_seq_depth(seq[11], 1);
+			kernel_seq_loc(seq[11], 213, 73);
+			kernel_seq_scale(seq[11], 79);
 		}
 		kernel_timing_trigger(15, 115); return;
 	case 5:
 		if (player_has(9)) {
-			seq[2] = kernel_load_series("*ob009i", 0);
-			aa[8] = kernel_seq_stamp(seq[2], false, 1);
-			kernel_seq_depth(aa[8], 1);
-			kernel_seq_loc(aa[8], 248, 73);
-			kernel_seq_scale(aa[8], 82);
+			ss[12] = kernel_load_series("*ob009i", 0);
+			seq[12] = kernel_seq_stamp(ss[12], false, 1);
+			kernel_seq_depth(seq[12], 1);
+			kernel_seq_loc(seq[12], 248, 73);
+			kernel_seq_scale(seq[12], 82);
 		}
 		kernel_timing_trigger(15, 115); return;
 	case 6:
 		if (player_has(8)) {
-			seq[0] = kernel_load_series("*ob008i", 0);
-			aa[6] = kernel_seq_stamp(seq[0], false, 1);
-			kernel_seq_depth(aa[6], 1);
-			kernel_seq_loc(aa[6], 287, 72);
-			kernel_seq_scale(aa[6], 82);
+			ss[10] = kernel_load_series("*ob008i", 0);
+			seq[10] = kernel_seq_stamp(ss[10], false, 1);
+			kernel_seq_depth(seq[10], 1);
+			kernel_seq_loc(seq[10], 287, 72);
+			kernel_seq_scale(seq[10], 82);
 		}
 		kernel_timing_trigger(15, 115); return;
 	case 7:
 		if (player_has(2)) {
 			ss[7] = kernel_load_series("*ob002i", 0);
-			aa[3] = kernel_seq_stamp(ss[7], false, 1);
-			kernel_seq_depth(aa[3], 1);
-			kernel_seq_loc(aa[3], 212, 108);
-			kernel_seq_scale(aa[3], 82);
+			seq[7] = kernel_seq_stamp(ss[7], false, 1);
+			kernel_seq_depth(seq[7], 1);
+			kernel_seq_loc(seq[7], 212, 108);
+			kernel_seq_scale(seq[7], 82);
 		}
 		kernel_timing_trigger(15, 115); return;
 	case 8:
 		if (player_has(6)) {
 			ss[4] = kernel_load_series("*ob006i", 0);
-			aa[0] = kernel_seq_stamp(ss[4], false, 1);
-			kernel_seq_depth(aa[0], 1);
-			kernel_seq_loc(aa[0], 249, 105);
-			kernel_seq_scale(aa[0], 82);
+			seq[4] = kernel_seq_stamp(ss[4], false, 1);
+			kernel_seq_depth(seq[4], 1);
+			kernel_seq_loc(seq[4], 249, 105);
+			kernel_seq_scale(seq[4], 82);
 		}
 		kernel_timing_trigger(15, 115); return;
 	case 9:
 		if (player_has(4)) {
 			ss[9] = kernel_load_series("*ob004i", 0);
-			aa[5] = kernel_seq_stamp(ss[9], false, 1);
-			kernel_seq_depth(aa[5], 1);
-			kernel_seq_loc(aa[5], 285, 108);
-			kernel_seq_scale(aa[5], 82);
+			seq[9] = kernel_seq_stamp(ss[9], false, 1);
+			kernel_seq_depth(seq[9], 1);
+			kernel_seq_loc(seq[9], 285, 108);
+			kernel_seq_scale(seq[9], 82);
 		}
 		kernel_timing_trigger(15, 115); return;
 	case 10:
 		if (player_has(0)) {
 			ss[6] = kernel_load_series("*ob000i", 0);
-			aa[2] = kernel_seq_stamp(ss[6], false, 1);
-			kernel_seq_depth(aa[2], 1);
-			kernel_seq_loc(aa[2], 230, 142);
-			kernel_seq_scale(aa[2], 82);
+			seq[6] = kernel_seq_stamp(ss[6], false, 1);
+			kernel_seq_depth(seq[6], 1);
+			kernel_seq_loc(seq[6], 230, 142);
+			kernel_seq_scale(seq[6], 82);
 		}
 		kernel_timing_trigger(15, 115); return;
 	case 11:
 		if (player_has(7)) {
-			seq[4] = kernel_load_series("*ob007i", 0);
-			aainfo[0]._active = kernel_seq_stamp(seq[4], false, 1);
-			kernel_seq_depth(aainfo[0]._active, 1);
-			kernel_seq_loc(aainfo[0]._active, 270, 144);
-			kernel_seq_scale(aainfo[0]._active, 85);
+			ss[14] = kernel_load_series("*ob007i", 0);
+			seq[14] = kernel_seq_stamp(ss[14], false, 1);
+			kernel_seq_depth(seq[14], 1);
+			kernel_seq_loc(seq[14], 270, 144);
+			kernel_seq_scale(seq[14], 85);
 		}
 		kernel_timing_trigger(15, 115); return;
 	case 12:
-		aainfo[2]._val4 = 0;
-		aainfo[2]._val3 = -1;
+		local->val4 = 0;
+		local->val3 = -1;
 		kernel_timing_trigger(30, 114);
 		return;
 	default:
@@ -370,8 +372,8 @@ static void room_199_daemon() {
 	int16 trig = kernel.trigger;
 
 	if (trig == 7) {
-		if (aainfo[3]._frame == 11) {
-			aainfo[3]._frame = -1;
+		if (local->anim_frame == 11) {
+			local->anim_frame = -1;
 			kernel_timing_trigger(30, 113);
 		}
 	} else if (trig == 111) {
@@ -379,8 +381,8 @@ static void room_199_daemon() {
 		leave_journal();
 		player.commands_allowed = true;
 	} else if (trig == 112) {
-		aainfo[2]._val3 = 0;
-		aainfo[2]._val4 = -1;
+		local->val3 = 0;
+		local->val4 = -1;
 		digi_play_build(521, 'e', 1, 1);
 	} else if (trig == 113) {
 		leave_journal();
@@ -390,10 +392,10 @@ static void room_199_daemon() {
 		global[g100] = result;
 		if (result) {
 			digi_play_build(521, 'e', 11, 1);
-			aainfo[3]._frame = 11;
+			local->anim_frame = 11;
 		} else {
-			aainfo[2]._val3 = 1;
-			aainfo[3]._active = -1;
+			local->val3      = 1;
+			local->anim_flag  = -1;
 			digi_play_build(521, 'e', 12, 1);
 			room_199_anim2();
 		}
@@ -401,9 +403,9 @@ static void room_199_daemon() {
 		room_199_anim3();
 	}
 
-	if (aainfo[2]._val4 != 0)
+	if (local->val4 != 0)
 		room_199_anim4();
-	if (aainfo[3]._active != 0)
+	if (local->anim_flag != 0)
 		room_199_anim2();
 }
 
@@ -413,66 +415,66 @@ static void room_199_pre_parser() {
 
 static void room_199_parser2() {
 	if (flags[33] >= 1) {
-		kernel_seq_delete(aainfo[0]._frame); matte_deallocate_series(seq[5], -1);
+		kernel_seq_delete(seq[15]); matte_deallocate_series(ss[15], -1);
 	}
 	if (flags[32] >= 1) {
-		kernel_seq_delete(aainfo[0]._active); matte_deallocate_series(seq[4], -1);
+		kernel_seq_delete(seq[14]); matte_deallocate_series(ss[14], -1);
 	}
 	if (flags[30] >= 1) {
-		kernel_seq_delete(aa[9]);            matte_deallocate_series(seq[3], -1);
+		kernel_seq_delete(seq[13]); matte_deallocate_series(ss[13], -1);
 	}
 	if (flags[29] >= 1) {
-		kernel_seq_delete(aa[8]);            matte_deallocate_series(seq[2], -1);
+		kernel_seq_delete(seq[12]); matte_deallocate_series(ss[12], -1);
 	}
 	if (flags[28] >= 1) {
-		kernel_seq_delete(aa[7]);            matte_deallocate_series(seq[1], -1);
+		kernel_seq_delete(seq[11]); matte_deallocate_series(ss[11], -1);
 	}
 	if (flags[27] >= 1) {
-		kernel_seq_delete(aa[6]);            matte_deallocate_series(seq[0], -1);
+		kernel_seq_delete(seq[10]); matte_deallocate_series(ss[10], -1);
 	}
 	if (flags[26] >= 1 || flags[31] >= 1) {
-		kernel_seq_delete(aa[5]); matte_deallocate_series(ss[9], -1);
+		kernel_seq_delete(seq[9]);  matte_deallocate_series(ss[9],  -1);
 	}
 	if (flags[22] >= 1) {
-		kernel_seq_delete(aa[4]);            matte_deallocate_series(ss[8], -1);
+		kernel_seq_delete(seq[8]);  matte_deallocate_series(ss[8],  -1);
 	}
 	if (flags[21] >= 1 || flags[25] >= 1) {
-		kernel_seq_delete(aa[3]); matte_deallocate_series(ss[7], -1);
+		kernel_seq_delete(seq[7]);  matte_deallocate_series(ss[7],  -1);
 	}
 	if (flags[20] >= 1) {
-		kernel_seq_delete(aa[2]);            matte_deallocate_series(ss[6], -1);
+		kernel_seq_delete(seq[6]);  matte_deallocate_series(ss[6],  -1);
 	}
 	if (flags[19] >= 1) {
-		kernel_seq_delete(aa[1]);            matte_deallocate_series(ss[5], -1);
+		kernel_seq_delete(seq[5]);  matte_deallocate_series(ss[5],  -1);
 	}
 	if (flags[18] >= 1) {
-		kernel_seq_delete(aa[0]);            matte_deallocate_series(ss[4], -1);
+		kernel_seq_delete(seq[4]);  matte_deallocate_series(ss[4],  -1);
 	}
 	if (flags[17] >= 1 || flags[24] >= 1) {
-		kernel_seq_delete(seq[9]); matte_deallocate_series(ss[3], -1);
+		kernel_seq_delete(seq[3]);  matte_deallocate_series(ss[3],  -1);
 	}
 	if (flags[16] >= 1) {
-		kernel_seq_delete(seq[8]);           matte_deallocate_series(ss[2], -1);
+		kernel_seq_delete(seq[2]);  matte_deallocate_series(ss[2],  -1);
 	}
 	if (flags[15] >= 1) {
-		kernel_seq_delete(seq[7]);           matte_deallocate_series(ss[1], -1);
+		kernel_seq_delete(seq[1]);  matte_deallocate_series(ss[1],  -1);
 	}
 }
 
 static void room_199_parser1() {
-	if (aainfo[2]._active == 2)
+	if (local->bg_active == 2)
 		kernel_flip_hotspot(words_flowers, false);
-	if (aainfo[2]._active == 3)
+	if (local->bg_active == 3)
 		kernel_flip_hotspot(words_fwt, false);
 
-	int16 old_slot = aainfo[2]._active;
-	kernel_seq_delete(seq[6 + old_slot]);
+	int16 old_slot = local->bg_active;
+	kernel_seq_delete(seq[old_slot]);
 	matte_deallocate_series(ss[old_slot], -1);
 
-	if (aainfo[2]._active == 0)
+	if (local->bg_active == 0)
 		room_199_parser2();
 
-	int16 new_slot = aainfo[2]._frame;
+	int16 new_slot = local->bg_frame;
 	switch (new_slot) {
 	case 0:
 		room_199_init1();
@@ -491,9 +493,9 @@ static void room_199_parser1() {
 		break;
 	}
 
-	seq[6 + new_slot] = kernel_seq_stamp(ss[new_slot], false, 1);
-	kernel_seq_depth(seq[6 + new_slot], 1);
-	aainfo[2]._active = aainfo[2]._frame;
+	seq[new_slot] = kernel_seq_stamp(ss[new_slot], false, 1);
+	kernel_seq_depth(seq[new_slot], 1);
+	local->bg_active = local->bg_frame;
 	digi_play_build_ii('_', 1, 2);
 }
 
@@ -528,21 +530,21 @@ static void room_199_parser() {
 	}
 
 	if (player_parse(words_up_page, 0)) {
-		if (aainfo[2]._active != 3) {
-			aainfo[2]._active = aainfo[2]._frame;
-			aainfo[2]._frame++;
+		if (local->bg_active != 3) {
+			local->bg_active = local->bg_frame;
+			local->bg_frame++;
 		}
-		if (aainfo[2]._frame != aainfo[2]._active)
+		if (local->bg_frame != local->bg_active)
 			room_199_parser1();
 		goto handled;
 	}
 
 	if (player_parse(words_down_page, 0)) {
-		if (aainfo[2]._active != 0) {
-			aainfo[2]._active = aainfo[2]._frame;
-			aainfo[2]._frame--;
+		if (local->bg_active != 0) {
+			local->bg_active = local->bg_frame;
+			local->bg_frame--;
 		}
-		if (aainfo[2]._frame != aainfo[2]._active)
+		if (local->bg_frame != local->bg_active)
 			room_199_parser1();
 		goto handled;
 	}
@@ -557,8 +559,12 @@ done:
 void room_199_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);
-	for (AnimationInfo &ai : scratch.animation_info) ai.synchronize(s);
+	s.syncAsSint16LE(scratch.val3);
+	s.syncAsSint16LE(scratch.val4);
+	s.syncAsSint16LE(scratch.bg_active);
+	s.syncAsSint16LE(scratch.bg_frame);
+	s.syncAsSint16LE(scratch.anim_flag);
+	s.syncAsSint16LE(scratch.anim_frame);
 }
 
 void room_199_preload() {




More information about the Scummvm-git-logs mailing list