[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