[Scummvm-git-logs] scummvm master -> d32a7b82fac4cd9bd9de9b5a6f57824fc4ecb2cd
dreammaster
noreply at scummvm.org
Mon Jun 29 04:44:48 UTC 2026
This automated email contains information about 3 new commits which have been
pushed to the 'scummvm' repo located at https://api.github.com/repos/scummvm/scummvm .
Summary:
2b0ef0e438 MADS: FOREST: Add missing aainfo macro usage
6e5e50d5e8 MADS: FOREST: Fix Scratch array sizes in room 503
d32a7b82fa MADS: FOresT: Fix Scratch structure for room 308
Commit: 2b0ef0e4382f1f2f9043fa631a395bacb34fc464
https://github.com/scummvm/scummvm/commit/2b0ef0e4382f1f2f9043fa631a395bacb34fc464
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2026-06-29T14:44:32+10:00
Commit Message:
MADS: FOREST: Add missing aainfo macro usage
Changed paths:
engines/mads/madsv2/forest/rooms/room302.cpp
engines/mads/madsv2/forest/rooms/room303.cpp
engines/mads/madsv2/forest/rooms/room404.cpp
engines/mads/madsv2/forest/rooms/room405.cpp
engines/mads/madsv2/forest/rooms/room420.cpp
diff --git a/engines/mads/madsv2/forest/rooms/room302.cpp b/engines/mads/madsv2/forest/rooms/room302.cpp
index b7bfd164bdf..d8ba985c7e2 100644
--- a/engines/mads/madsv2/forest/rooms/room302.cpp
+++ b/engines/mads/madsv2/forest/rooms/room302.cpp
@@ -71,7 +71,7 @@ static Scratch scratch;
#define ss local->sprite
#define seq local->sequence
#define aa local->animation
-#define aainfo scratch.animation_info
+#define aainfo local->animation_info
static void room_302_init1() {
@@ -92,25 +92,25 @@ static void room_302_init1() {
if (previous_room == 210) {
aa[0] = kernel_run_animation(kernel_name('y', 1), 100);
- scratch.animation_info[0]._active = -1;
+ aainfo[0]._active = -1;
scratch._92 = 66;
return;
}
if (previous_room == 301) {
aa[0] = kernel_run_animation(kernel_name('y', 2), 100);
- scratch.animation_info[0]._active = -1;
+ aainfo[0]._active = -1;
scratch._92 = 67;
return;
}
if (previous_room == 303 || previous_room == 321) {
aa[0] = kernel_run_animation(kernel_name('y', 3), 100);
- scratch.animation_info[0]._active = -1;
+ aainfo[0]._active = -1;
scratch._92 = 90;
return;
}
if (previous_room == 304) {
aa[0] = kernel_run_animation(kernel_name('y', 4), 100);
- scratch.animation_info[0]._active = -1;
+ aainfo[0]._active = -1;
scratch._92 = 53;
return;
}
@@ -214,10 +214,10 @@ static void room_302_init() {
}
for (int i = 0; i < 10; i++) {
- scratch.animation_info[i]._active = 0;
- scratch.animation_info[i]._frame = 0;
- scratch.animation_info[i]._val3 = 0;
- scratch.animation_info[i]._val4 = 0;
+ aainfo[i]._active = 0;
+ aainfo[i]._frame = 0;
+ aainfo[i]._val3 = 0;
+ aainfo[i]._val4 = 0;
}
if (previous_room != 199) {
@@ -230,11 +230,11 @@ static void room_302_init() {
}
static void room_302_anim1() {
- if (kernel_anim[aa[0]].frame != scratch.animation_info[0]._frame)
- scratch.animation_info[0]._frame = kernel_anim[aa[0]].frame;
+ if (kernel_anim[aa[0]].frame != aainfo[0]._frame)
+ aainfo[0]._frame = kernel_anim[aa[0]].frame;
if (global[player_hyperwalked] == -1) {
- scratch.animation_info[0]._frame = scratch._92 - 1;
- kernel_reset_animation(aa[0], scratch.animation_info[0]._frame);
+ aainfo[0]._frame = scratch._92 - 1;
+ kernel_reset_animation(aa[0], aainfo[0]._frame);
}
}
@@ -269,7 +269,7 @@ static void room_302_anim2() {
player.commands_allowed = true;
player.walker_visible = true;
global[g017] = -1;
- scratch.animation_info[1]._active = 0;
+ aainfo[1]._active = 0;
kernel_synch(KERNEL_PLAYER, 0, KERNEL_NOW, 0);
global[g131] = -1;
kernel_reset_animation(scratch._9a, 1);
@@ -280,77 +280,77 @@ static void room_302_anim2() {
static void room_302_anim3() {
int16 frame = (int16)kernel_anim[aa[2]].frame;
- if (frame != scratch.animation_info[2]._frame)
- scratch.animation_info[2]._frame = frame;
+ if (frame != aainfo[2]._frame)
+ aainfo[2]._frame = frame;
if (global[player_hyperwalked] == -1 && frame <= 20) {
- scratch.animation_info[2]._frame = 20;
+ aainfo[2]._frame = 20;
kernel_reset_animation(aa[2], 20);
kernel_synch(KERNEL_ANIM, aa[2], KERNEL_NOW, 0);
return;
}
if (global[player_hyperwalked] == -1 || frame == 40) {
- scratch.animation_info[2]._frame = 39;
+ aainfo[2]._frame = 39;
kernel_reset_animation(aa[2], 39);
kernel_synch(KERNEL_ANIM, aa[2], KERNEL_NOW, 0);
}
}
static void room_302_anim4() {
- if (kernel_anim[aa[3]].frame != scratch.animation_info[3]._frame)
- scratch.animation_info[3]._frame = kernel_anim[aa[3]].frame;
+ if (kernel_anim[aa[3]].frame != aainfo[3]._frame)
+ aainfo[3]._frame = kernel_anim[aa[3]].frame;
}
static void room_302_anim5() {
int16 frame = (int16)kernel_anim[aa[4]].frame;
- if (frame != scratch.animation_info[4]._frame) {
- scratch.animation_info[4]._frame = frame;
+ if (frame != aainfo[4]._frame) {
+ aainfo[4]._frame = frame;
if (scratch._a8 == 1) {
if (frame == 13) {
- if (scratch.animation_info[4]._val3 == 23) {
- scratch.animation_info[4]._frame = 11;
+ if (aainfo[4]._val3 == 23) {
+ aainfo[4]._frame = 11;
kernel_reset_animation(aa[4], 11);
}
} else if (frame <= 13) {
if (frame == 5) {
- scratch.animation_info[4]._val3 = 21;
+ aainfo[4]._val3 = 21;
digi_play_build_ii('e', 8, 1);
scratch._a4 = 5;
} else if (frame == 10) {
- if (scratch.animation_info[4]._val3 == 21) {
- scratch.animation_info[4]._frame = 5;
+ if (aainfo[4]._val3 == 21) {
+ aainfo[4]._frame = 5;
kernel_reset_animation(aa[4], 5);
}
}
}
} else if (scratch._a8 == 2) {
if (frame == 61) {
- if (scratch.animation_info[4]._val3 == 23) {
- scratch.animation_info[4]._frame = 58;
+ if (aainfo[4]._val3 == 23) {
+ aainfo[4]._frame = 58;
kernel_reset_animation(aa[4], 58);
}
} else if (frame <= 61) {
if (frame == 53) {
- scratch.animation_info[4]._val3 = 21;
+ aainfo[4]._val3 = 21;
digi_play_build_ii('e', 9, 1);
scratch._a4 = 500;
} else if (frame == 57) {
- if (scratch.animation_info[4]._val3 == 21) {
- scratch.animation_info[4]._frame = 53;
+ if (aainfo[4]._val3 == 21) {
+ aainfo[4]._frame = 53;
kernel_reset_animation(aa[4], 53);
}
}
}
} else if (scratch._a8 == 3) {
if (frame == 5) {
- scratch.animation_info[4]._val3 = 21;
+ aainfo[4]._val3 = 21;
digi_play_build(302, 'e', 2, 1);
scratch._a4 = 50;
} else if (frame == 12) {
- if (scratch.animation_info[4]._val3 == 21) {
- scratch.animation_info[4]._frame = 5;
+ if (aainfo[4]._val3 == 21) {
+ aainfo[4]._frame = 5;
kernel_reset_animation(aa[4], 5);
}
}
@@ -362,41 +362,41 @@ static void room_302_anim5() {
int16 a4 = scratch._a4;
if (a4 == 50) {
- scratch.animation_info[4]._val3 = 19;
- scratch.animation_info[4]._frame = 11;
+ aainfo[4]._val3 = 19;
+ aainfo[4]._frame = 11;
kernel_reset_animation(aa[4], 11);
scratch._a4 = -1;
} else if (a4 < 50) {
if (a4 == 5) {
kernel_timing_trigger(30, 28);
- scratch.animation_info[4]._val3 = 23;
+ aainfo[4]._val3 = 23;
scratch._a4 = 6;
} else if (a4 == 6) {
- scratch.animation_info[4]._val3 = 21;
- scratch.animation_info[4]._frame = 5;
+ aainfo[4]._val3 = 21;
+ aainfo[4]._frame = 5;
kernel_reset_animation(aa[4], 5);
digi_play_build_ii('e', 10, 1);
scratch._a4 = 7;
} else if (a4 == 7) {
- scratch.animation_info[4]._val3 = 19;
- scratch.animation_info[4]._frame = 11;
+ aainfo[4]._val3 = 19;
+ aainfo[4]._frame = 11;
kernel_reset_animation(aa[4], 11);
scratch._a4 = -1;
}
} else {
if (a4 == 500) {
kernel_timing_trigger(30, 28);
- scratch.animation_info[4]._val3 = 23;
+ aainfo[4]._val3 = 23;
scratch._a4 = 501;
} else if (a4 == 501) {
- scratch.animation_info[4]._val3 = 21;
- scratch.animation_info[4]._frame = 53;
+ aainfo[4]._val3 = 21;
+ aainfo[4]._frame = 53;
kernel_reset_animation(aa[4], 53);
digi_play_build_ii('e', 10, 1);
scratch._a4 = 502;
} else if (a4 == 502) {
- scratch.animation_info[4]._val3 = 19;
- scratch.animation_info[4]._frame = 58;
+ aainfo[4]._val3 = 19;
+ aainfo[4]._frame = 58;
kernel_reset_animation(aa[4], 58);
scratch._a4 = -1;
}
@@ -406,23 +406,23 @@ static void room_302_anim5() {
static void room_302_anim6() {
int16 frame = (int16)kernel_anim[aa[5]].frame;
- if (frame != scratch.animation_info[5]._frame) {
- scratch.animation_info[5]._frame = frame;
+ if (frame != aainfo[5]._frame) {
+ aainfo[5]._frame = frame;
if (scratch._a8 == 1) {
if (frame == 58) {
- if (scratch.animation_info[5]._val3 == 23) {
+ if (aainfo[5]._val3 == 23) {
digi_play_build(101, '_', 1, 2);
scratch._a4 = 58;
}
} else if (frame < 58) {
if (frame == 5) {
- scratch.animation_info[5]._val3 = 21;
+ aainfo[5]._val3 = 21;
digi_play_build(302, 'e', 3, 1);
scratch._a4 = 5;
} else if (frame == 10) {
- if (scratch.animation_info[5]._val3 == 21) {
- scratch.animation_info[5]._frame = 5;
+ if (aainfo[5]._val3 == 21) {
+ aainfo[5]._frame = 5;
kernel_reset_animation(aa[5], 5);
}
}
@@ -432,8 +432,8 @@ static void room_302_anim6() {
if (kernel.trigger == 7 || kernel.trigger == 28) {
if (scratch._a4 == 5) {
- scratch.animation_info[5]._val3 = 23;
- scratch.animation_info[5]._frame = 11;
+ aainfo[5]._val3 = 23;
+ aainfo[5]._frame = 11;
kernel_reset_animation(aa[5], 11);
scratch._a4 = -1;
kernel_seq_delete(seq[0]);
@@ -451,41 +451,41 @@ static void room_302_anim7() {
int16 result = -1;
int16 frame = (int16)kernel_anim[aa[6]].frame;
- if (frame != scratch.animation_info[6]._frame) {
- scratch.animation_info[6]._frame = frame;
+ if (frame != aainfo[6]._frame) {
+ aainfo[6]._frame = frame;
if (scratch._98 == 104 && scratch._a8 == 1) {
if (frame == 72) {
- if (scratch.animation_info[6]._val3 == 23) {
- scratch.animation_info[6]._frame = 70;
+ if (aainfo[6]._val3 == 23) {
+ aainfo[6]._frame = 70;
kernel_reset_animation(aa[6], 70);
}
} else if (frame < 72) {
if (frame == 14) {
- if (scratch.animation_info[6]._val3 == 23) {
- scratch.animation_info[6]._frame = 12;
+ if (aainfo[6]._val3 == 23) {
+ aainfo[6]._frame = 12;
kernel_reset_animation(aa[6], 12);
}
} else if (frame < 14) {
if (frame == 6) {
- scratch.animation_info[6]._val3 = 22;
+ aainfo[6]._val3 = 22;
digi_play_build(302, 'r', 1, 1);
scratch._a4 = 6;
scratch._a8 = 1;
} else if (frame == 11) {
- if (scratch.animation_info[6]._val3 == 22) {
- scratch.animation_info[6]._frame = 6;
+ if (aainfo[6]._val3 == 22) {
+ aainfo[6]._frame = 6;
kernel_reset_animation(aa[6], 6);
}
}
} else {
if (frame == 66) {
- scratch.animation_info[6]._val3 = 22;
+ aainfo[6]._val3 = 22;
digi_play_build(302, 'r', 2, 1);
scratch._a4 = 66;
} else if (frame == 70) {
- if (scratch.animation_info[6]._val3 == 22) {
- scratch.animation_info[6]._frame = 66;
+ if (aainfo[6]._val3 == 22) {
+ aainfo[6]._frame = 66;
kernel_reset_animation(aa[6], 66);
}
}
@@ -495,7 +495,7 @@ static void room_302_anim7() {
}
if (result >= 0) {
- scratch.animation_info[6]._frame = result;
+ aainfo[6]._frame = result;
kernel_reset_animation(aa[6], result);
}
@@ -504,31 +504,31 @@ static void room_302_anim7() {
int16 a4 = scratch._a4;
if (a4 == 67) {
- scratch.animation_info[6]._val3 = 19;
- scratch.animation_info[6]._frame = 71;
+ aainfo[6]._val3 = 19;
+ aainfo[6]._frame = 71;
kernel_reset_animation(aa[6], 71);
scratch._a4 = -1;
} else if (a4 > 67) {
return;
} else if (a4 == 6) {
kernel_timing_trigger(45, 28);
- scratch.animation_info[6]._val3 = 23;
+ aainfo[6]._val3 = 23;
scratch._a4 = 7;
} else if (a4 == 7) {
- scratch.animation_info[6]._val3 = 19;
- scratch.animation_info[6]._frame = 12;
+ aainfo[6]._val3 = 19;
+ aainfo[6]._frame = 12;
kernel_reset_animation(aa[6], 12);
scratch._a4 = -1;
} else if (a4 == 66) {
kernel_timing_trigger(45, 28);
- scratch.animation_info[6]._val3 = 23;
+ aainfo[6]._val3 = 23;
scratch._a4 = 67;
}
}
static void room_302_anim8() {
- if (kernel_anim[aa[7]].frame != scratch.animation_info[7]._frame)
- scratch.animation_info[7]._frame = kernel_anim[aa[7]].frame;
+ if (kernel_anim[aa[7]].frame != aainfo[7]._frame)
+ aainfo[7]._frame = kernel_anim[aa[7]].frame;
}
static void room_302_daemon() {
@@ -564,7 +564,7 @@ static void room_302_daemon() {
case 24:
if (scratch._8c == 3) {
aa[2] = kernel_run_animation(kernel_name('E', 1), 102);
- scratch.animation_info[2]._active = -1;
+ aainfo[2]._active = -1;
scratch._96 = 2;
kernel_reset_animation(scratch._9a, 0);
kernel_synch(KERNEL_ANIM, aa[2], KERNEL_ANIM, scratch._9a);
@@ -572,14 +572,14 @@ static void room_302_daemon() {
} else if (scratch._8c == 5) {
if (scratch._a8 == 1) {
aa[4] = kernel_run_animation(kernel_name('F', 1), 102);
- scratch.animation_info[4]._active = -1;
+ aainfo[4]._active = -1;
scratch._96 = 4;
kernel_reset_animation(scratch._9a, 0);
kernel_synch(KERNEL_ANIM, aa[4], KERNEL_ANIM, scratch._9a);
global[g133] = 1;
} else if (scratch._a8 == 2) {
aa[4] = kernel_run_animation(kernel_name('F', 2), 102);
- scratch.animation_info[4]._active = -1;
+ aainfo[4]._active = -1;
scratch._96 = 4;
kernel_reset_animation(scratch._9a, 0);
kernel_synch(KERNEL_ANIM, aa[4], KERNEL_ANIM, scratch._9a);
@@ -588,8 +588,8 @@ static void room_302_daemon() {
} else if (scratch._8c == 7) {
global[player_score] = 0;
aa[7] = kernel_run_animation(kernel_name('Z', 2), 106);
- scratch.animation_info[7]._active = -1;
- scratch.animation_info[7]._frame = 0;
+ aainfo[7]._active = -1;
+ aainfo[7]._frame = 0;
scratch._96 = 7;
player.walker_visible = true;
player.commands_allowed = false;
@@ -599,7 +599,7 @@ static void room_302_daemon() {
global[g133] = 1;
} else if (scratch._8c == 8) {
aa[4] = kernel_run_animation(kernel_name('E', 1), 102);
- scratch.animation_info[4]._active = -1;
+ aainfo[4]._active = -1;
scratch._96 = 4;
scratch._a8 = 3;
kernel_reset_animation(scratch._9a, 0);
@@ -611,7 +611,7 @@ static void room_302_daemon() {
case 25:
if (scratch._8e == 2) {
aa[3] = kernel_run_animation(kernel_name('R', 1), 101);
- scratch.animation_info[3]._active = -1;
+ aainfo[3]._active = -1;
scratch._94 = 3;
kernel_reset_animation(scratch._9c, 0);
kernel_synch(KERNEL_ANIM, aa[3], KERNEL_ANIM, scratch._9c);
@@ -636,8 +636,8 @@ static void room_302_daemon() {
player.commands_allowed = false;
global[player_score] = 0;
aa[6] = kernel_run_animation(kernel_name('R', 1), 105);
- scratch.animation_info[6]._active = -1;
- scratch.animation_info[6]._frame = 0;
+ aainfo[6]._active = -1;
+ aainfo[6]._frame = 0;
kernel_synch(KERNEL_ANIM, aa[6], KERNEL_NOW, 0);
scratch._98 = 104;
kernel_seq_delete(seq[1]);
@@ -654,7 +654,7 @@ static void room_302_daemon() {
} else if (a90 == 6) {
if (scratch._a8 == 1) {
aa[5] = kernel_run_animation(kernel_name('P', 1), 103);
- scratch.animation_info[5]._active = -1;
+ aainfo[5]._active = -1;
scratch._98 = 5;
kernel_reset_animation(scratch._9a, 0);
kernel_reset_animation(scratch._9c, 0);
@@ -682,14 +682,14 @@ static void room_302_daemon() {
case 100:
kernel_abort_animation(aa[0]);
- scratch.animation_info[0]._active = 0;
+ aainfo[0]._active = 0;
if (flags[16] == 1) {
kernel_synch(KERNEL_PLAYER, 0, KERNEL_NOW, 0);
scratch._a4 = 1;
global[g017] = 0;
player.walker_visible = false;
global[g154] = 0;
- scratch.animation_info[1]._active = -1;
+ aainfo[1]._active = -1;
global[g131] = -1;
global[g141] = -1;
kernel_reset_animation(scratch._9a, 1);
@@ -725,7 +725,7 @@ static void room_302_daemon() {
case 101:
kernel_abort_animation(aa[scratch._94]);
- scratch.animation_info[scratch._94]._active = 0;
+ aainfo[scratch._94]._active = 0;
kernel_reset_animation(scratch._9c, 1);
kernel_synch(KERNEL_ANIM, scratch._9c, KERNEL_NOW, 0);
global[g143] = 0;
@@ -734,7 +734,7 @@ static void room_302_daemon() {
case 102:
kernel_abort_animation(aa[scratch._96]);
- scratch.animation_info[scratch._96]._active = 0;
+ aainfo[scratch._96]._active = 0;
kernel_reset_animation(scratch._9a, 1);
kernel_synch(KERNEL_ANIM, scratch._9a, KERNEL_NOW, 0);
global[g133] = 0;
@@ -745,7 +745,7 @@ static void room_302_daemon() {
case 103:
if (scratch._a8 == 1) {
kernel_abort_animation(aa[5]);
- scratch.animation_info[5]._active = 0;
+ aainfo[5]._active = 0;
kernel_reset_animation(scratch._9c, 1);
kernel_synch(KERNEL_ANIM, scratch._9c, KERNEL_NOW, 0);
global[g143] = 0;
@@ -768,7 +768,7 @@ static void room_302_daemon() {
kernel_synch(KERNEL_ANIM, aa[6], KERNEL_NOW, 0);
} else if (scratch._a8 == 2) {
kernel_abort_animation(aa[6]);
- scratch.animation_info[6]._active = 0;
+ aainfo[6]._active = 0;
global[g131] = -1;
global[g141] = -1;
kernel_reset_animation(scratch._9a, 1);
@@ -795,8 +795,8 @@ static void room_302_daemon() {
case 106:
kernel_abort_animation(aa[7]);
- scratch.animation_info[7]._active = 0;
- scratch.animation_info[7]._frame = 0;
+ aainfo[7]._active = 0;
+ aainfo[7]._frame = 0;
kernel_reset_animation(scratch._9c, 1);
kernel_synch(KERNEL_ANIM, scratch._9c, KERNEL_NOW, 0);
global[g143] = 0;
@@ -814,14 +814,14 @@ static void room_302_daemon() {
global_anim1(1, scratch._9a, global[g131], &global[g132]);
global_anim2(3, scratch._9c, global[g141], &global[g142]);
- if (scratch.animation_info[0]._active) room_302_anim1();
- if (scratch.animation_info[3]._active) room_302_anim4();
- if (scratch.animation_info[2]._active) room_302_anim3();
- if (scratch.animation_info[4]._active) room_302_anim5();
- if (scratch.animation_info[5]._active) room_302_anim6();
- if (scratch.animation_info[6]._active) room_302_anim7();
- if (scratch.animation_info[7]._active) room_302_anim8();
- if (scratch.animation_info[1]._active) room_302_anim2();
+ if (aainfo[0]._active) room_302_anim1();
+ if (aainfo[3]._active) room_302_anim4();
+ if (aainfo[2]._active) room_302_anim3();
+ if (aainfo[4]._active) room_302_anim5();
+ if (aainfo[5]._active) room_302_anim6();
+ if (aainfo[6]._active) room_302_anim7();
+ if (aainfo[7]._active) room_302_anim8();
+ if (aainfo[1]._active) room_302_anim2();
if (global[walker_converse_now])
global_anim3(scratch._a6, &global[g008]);
@@ -933,7 +933,7 @@ void room_302_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 (auto &ai : scratch.animation_info) ai.synchronize(s);
+ for (auto &ai : aainfo) ai.synchronize(s);
s.syncAsSint16LE(scratch._8c);
s.syncAsSint16LE(scratch._8e);
s.syncAsSint16LE(scratch._90);
diff --git a/engines/mads/madsv2/forest/rooms/room303.cpp b/engines/mads/madsv2/forest/rooms/room303.cpp
index e47599c33eb..d100e787a22 100644
--- a/engines/mads/madsv2/forest/rooms/room303.cpp
+++ b/engines/mads/madsv2/forest/rooms/room303.cpp
@@ -58,41 +58,41 @@ static Scratch scratch;
#define ss local->sprite
#define seq local->sequence
#define aa local->animation
-#define aainfo scratch.animation_info
+#define aainfo local->animation_info
static void room_303_init1();
static void room_303_init2();
static void room_303_anim1() {
- if (kernel_anim[aa[0]].frame != scratch.animation_info[0]._frame)
- scratch.animation_info[0]._frame = kernel_anim[aa[0]].frame;
+ if (kernel_anim[aa[0]].frame != aainfo[0]._frame)
+ aainfo[0]._frame = kernel_anim[aa[0]].frame;
if (global[player_hyperwalked] == -1) {
- scratch.animation_info[0]._frame = scratch._92 - 1;
- kernel_reset_animation(aa[0], scratch.animation_info[0]._frame);
+ aainfo[0]._frame = scratch._92 - 1;
+ kernel_reset_animation(aa[0], aainfo[0]._frame);
}
}
static void room_303_anim2() {
- int16 ax = scratch.animation_info[1]._frame;
+ int16 ax = aainfo[1]._frame;
if (kernel_anim[aa[1]].frame != ax) {
ax = kernel_anim[aa[1]].frame;
- scratch.animation_info[1]._frame = ax;
+ aainfo[1]._frame = ax;
}
if (global[player_hyperwalked] == -1) {
if (ax <= 23) {
- scratch.animation_info[1]._frame = 23;
+ aainfo[1]._frame = 23;
kernel_reset_animation(aa[1], 23);
kernel_synch(KERNEL_ANIM, aa[1], KERNEL_NOW, 0);
return;
}
- scratch.animation_info[1]._frame = 44;
+ aainfo[1]._frame = 44;
kernel_reset_animation(aa[1], 44);
kernel_synch(KERNEL_ANIM, aa[1], KERNEL_NOW, 0);
} else {
if (ax == 45) {
- scratch.animation_info[1]._frame = 44;
+ aainfo[1]._frame = 44;
kernel_reset_animation(aa[1], 44);
kernel_synch(KERNEL_ANIM, aa[1], KERNEL_NOW, 0);
}
@@ -100,25 +100,25 @@ static void room_303_anim2() {
}
static void room_303_anim3() {
- int16 ax = scratch.animation_info[2]._frame;
+ int16 ax = aainfo[2]._frame;
if (kernel_anim[aa[2]].frame != ax) {
ax = kernel_anim[aa[2]].frame;
- scratch.animation_info[2]._frame = ax;
+ aainfo[2]._frame = ax;
}
if (global[player_hyperwalked] == -1) {
if (ax <= 23) {
- scratch.animation_info[2]._frame = 23;
+ aainfo[2]._frame = 23;
kernel_reset_animation(aa[2], 23);
kernel_synch(KERNEL_ANIM, aa[2], KERNEL_NOW, 0);
return;
}
- scratch.animation_info[2]._frame = 44;
+ aainfo[2]._frame = 44;
kernel_reset_animation(aa[2], 44);
kernel_synch(KERNEL_ANIM, aa[2], KERNEL_NOW, 0);
} else {
if (ax == 45) {
- scratch.animation_info[2]._frame = 44;
+ aainfo[2]._frame = 44;
kernel_reset_animation(aa[2], 44);
kernel_synch(KERNEL_ANIM, aa[2], KERNEL_NOW, 0);
}
@@ -132,79 +132,79 @@ static void room_303_anim4_trigger() {
int16 a8 = scratch._a8;
if (a8 == 7) {
kernel_timing_trigger(30, 28);
- scratch.animation_info[3]._val3 = 13;
+ aainfo[3]._val3 = 13;
scratch._a8 = 8;
} else if (a8 == 8) {
- scratch.animation_info[3]._val3 = 11;
- scratch.animation_info[3]._frame = 7;
+ aainfo[3]._val3 = 11;
+ aainfo[3]._frame = 7;
kernel_reset_animation(aa[3], 7);
digi_play_build_ii('e', 10, 1);
scratch._a8 = 9;
} else if (a8 == 9) {
- scratch.animation_info[3]._val3 = 14;
- scratch.animation_info[3]._frame = 13;
+ aainfo[3]._val3 = 14;
+ aainfo[3]._frame = 13;
kernel_reset_animation(aa[3], 13);
scratch._a8 = -1;
} else if (a8 == 43) {
kernel_timing_trigger(30, 28);
- scratch.animation_info[3]._val3 = 13;
+ aainfo[3]._val3 = 13;
scratch._a8 = 44;
} else if (a8 == 44) {
- scratch.animation_info[3]._val3 = 11;
- scratch.animation_info[3]._frame = 43;
+ aainfo[3]._val3 = 11;
+ aainfo[3]._frame = 43;
kernel_reset_animation(aa[3], 43);
digi_play_build_ii('e', 10, 1);
scratch._a8 = 45;
} else if (a8 == 45) {
- scratch.animation_info[3]._val3 = 14;
- scratch.animation_info[3]._frame = 49;
+ aainfo[3]._val3 = 14;
+ aainfo[3]._frame = 49;
kernel_reset_animation(aa[3], 49);
scratch._a8 = -1;
}
}
static void room_303_anim4() {
- int16 ax = scratch.animation_info[3]._frame;
+ int16 ax = aainfo[3]._frame;
if (kernel_anim[aa[3]].frame == ax) {
room_303_anim4_trigger();
return;
}
ax = kernel_anim[aa[3]].frame;
- scratch.animation_info[3]._frame = ax;
+ aainfo[3]._frame = ax;
if (scratch._a6 == 1) {
if (ax == 15) {
- if (scratch.animation_info[3]._val3 == 13) {
- scratch.animation_info[3]._frame = 13;
+ if (aainfo[3]._val3 == 13) {
+ aainfo[3]._frame = 13;
kernel_reset_animation(aa[3], 13);
}
} else if (ax < 15) {
if (ax == 7) {
- scratch.animation_info[3]._val3 = 11;
+ aainfo[3]._val3 = 11;
digi_play_build_ii('e', 2, 1);
scratch._a8 = 7;
} else if (ax == 12) {
- if (scratch.animation_info[3]._val3 == 11) {
- scratch.animation_info[3]._frame = 7;
+ if (aainfo[3]._val3 == 11) {
+ aainfo[3]._frame = 7;
kernel_reset_animation(aa[3], 7);
}
}
}
} else if (scratch._a6 == 2) {
if (ax == 51) {
- if (scratch.animation_info[3]._val3 == 13) {
- scratch.animation_info[3]._frame = 49;
+ if (aainfo[3]._val3 == 13) {
+ aainfo[3]._frame = 49;
kernel_reset_animation(aa[3], 49);
}
} else if (ax < 51) {
if (ax == 43) {
- scratch.animation_info[3]._val3 = 11;
+ aainfo[3]._val3 = 11;
digi_play_build_ii('e', 4, 1);
scratch._a8 = 43;
} else if (ax == 48) {
- if (scratch.animation_info[3]._val3 == 11) {
- scratch.animation_info[3]._frame = 43;
+ if (aainfo[3]._val3 == 11) {
+ aainfo[3]._frame = 43;
kernel_reset_animation(aa[3], 43);
}
}
@@ -218,13 +218,13 @@ static void room_303_anim6_trigger() {
if (kernel.trigger == 7 || kernel.trigger == 28) {
int16 a8 = scratch._a8;
if (a8 == 9) {
- scratch.animation_info[5]._val3 = 13;
- scratch.animation_info[5]._frame = 16;
+ aainfo[5]._val3 = 13;
+ aainfo[5]._frame = 16;
kernel_reset_animation(aa[5], 16);
scratch._a8 = -1;
} else if (a8 == 40) {
- scratch.animation_info[5]._val3 = 13;
- scratch.animation_info[5]._frame = 10;
+ aainfo[5]._val3 = 13;
+ aainfo[5]._frame = 10;
kernel_reset_animation(aa[5], 10);
scratch._a8 = -1;
}
@@ -238,33 +238,33 @@ static void room_303_anim6_trigger() {
}
static void room_303_anim6() {
- int16 ax = scratch.animation_info[5]._frame;
+ int16 ax = aainfo[5]._frame;
if (kernel_anim[aa[5]].frame == ax) {
room_303_anim6_trigger();
return;
}
ax = kernel_anim[aa[5]].frame;
- scratch.animation_info[5]._frame = ax;
+ aainfo[5]._frame = ax;
if (scratch._a6 == 1) {
if (ax == 48) {
- if (scratch.animation_info[5]._val3 == 13) {
+ if (aainfo[5]._val3 == 13) {
digi_play_build(101, '_', 1, 2);
scratch._a8 = 48;
}
} else if (ax < 48) {
if (ax == 9) {
- scratch.animation_info[5]._val3 = 11;
+ aainfo[5]._val3 = 11;
digi_play_build(303, 'e', 2, 1);
scratch._a8 = 9;
} else if (ax == 15) {
- if (scratch.animation_info[5]._val3 == 11) {
- scratch.animation_info[5]._frame = 9;
+ if (aainfo[5]._val3 == 11) {
+ aainfo[5]._frame = 9;
kernel_reset_animation(aa[5], 9);
}
} else if (ax == 35) {
- if (scratch.animation_info[5]._val3 == 13) {
+ if (aainfo[5]._val3 == 13) {
digi_play_build(303, '_', 1, 2);
scratch._a8 = 35;
}
@@ -278,12 +278,12 @@ static void room_303_anim6() {
if (ax == 2) {
kernel_seq_delete(seq[0]);
} else if (ax == 4) {
- scratch.animation_info[5]._val3 = 11;
+ aainfo[5]._val3 = 11;
digi_play_build(303, 'e', 700, 1);
scratch._a8 = 40;
} else if (ax == 9) {
- if (scratch.animation_info[5]._val3 == 11) {
- scratch.animation_info[5]._frame = 4;
+ if (aainfo[5]._val3 == 11) {
+ aainfo[5]._frame = 4;
kernel_reset_animation(aa[5], 4);
}
}
@@ -296,16 +296,16 @@ static void room_303_anim6() {
static void room_303_anim7() {
int16 result = -1;
- if (kernel_anim[aa[6]].frame != scratch.animation_info[6]._frame) {
+ if (kernel_anim[aa[6]].frame != aainfo[6]._frame) {
int16 frame = kernel_anim[aa[6]].frame;
- scratch.animation_info[6]._frame = frame;
+ aainfo[6]._frame = frame;
bool check_val3 = (frame == 1) ||
(frame >= 5 && frame <= 10) ||
(frame >= 12 && frame <= 16);
if (check_val3) {
- int16 v = scratch.animation_info[6]._val3;
+ int16 v = aainfo[6]._val3;
if (v == 0)
result = 0;
else if (v == 1)
@@ -316,7 +316,7 @@ static void room_303_anim7() {
if (result >= 0) {
kernel_reset_animation(aa[6], result);
- scratch.animation_info[6]._frame = result;
+ aainfo[6]._frame = result;
}
}
@@ -329,54 +329,54 @@ static void room_303_anim7() {
switch (idx) {
case 0:
- scratch.animation_info[7]._val3 = 0;
+ aainfo[7]._val3 = 0;
kernel_timing_trigger(30, 28);
scratch._a8++;
break;
case 1:
- scratch.animation_info[6]._val3 = 1;
+ aainfo[6]._val3 = 1;
digi_play_build(303, 'r', 1, 1);
scratch._a8++;
break;
case 2:
- scratch.animation_info[6]._val3 = 0;
+ aainfo[6]._val3 = 0;
kernel_timing_trigger(30, 28);
scratch._a8++;
break;
case 3:
- scratch.animation_info[7]._val3 = 3;
+ aainfo[7]._val3 = 3;
digi_play_build(303, 'f', 2, 1);
scratch._a8++;
break;
case 4:
- scratch.animation_info[7]._val3 = 0;
+ aainfo[7]._val3 = 0;
kernel_timing_trigger(30, 28);
scratch._a8++;
break;
case 5:
- scratch.animation_info[6]._val3 = 2;
+ aainfo[6]._val3 = 2;
digi_play_build(303, 'e', 1, 1);
scratch._a8++;
break;
case 6:
- scratch.animation_info[6]._val3 = 0;
+ aainfo[6]._val3 = 0;
kernel_timing_trigger(30, 28);
scratch._a8++;
break;
case 7:
- scratch.animation_info[7]._val3 = 3;
+ aainfo[7]._val3 = 3;
digi_play_build(303, 'f', 3, 1);
scratch._a8++;
break;
case 8:
- scratch.animation_info[7]._val3 = 0;
+ aainfo[7]._val3 = 0;
kernel_timing_trigger(30, 28);
scratch._a8++;
break;
case 9:
dont_frag_the_palette();
kernel_abort_animation(aa[7]);
- scratch.animation_info[7]._active = 0;
+ aainfo[7]._active = 0;
aa[7] = kernel_run_animation(kernel_name('t', 6), 105);
break;
}
@@ -385,16 +385,16 @@ static void room_303_anim7() {
static void room_303_anim8() {
int16 var_2 = -1;
- if (kernel_anim[aa[7]].frame == scratch.animation_info[7]._frame)
+ if (kernel_anim[aa[7]].frame == aainfo[7]._frame)
return;
int16 frame = kernel_anim[aa[7]].frame;
- scratch.animation_info[7]._frame = frame;
+ aainfo[7]._frame = frame;
bool check_val3 = (frame == 1) || (frame >= 4 && frame <= 10);
if (check_val3) {
- int16 v = scratch.animation_info[7]._val3;
+ int16 v = aainfo[7]._val3;
if (v == 0)
var_2 = 0;
else if (v == 3)
@@ -403,7 +403,7 @@ static void room_303_anim8() {
if (var_2 >= 0) {
kernel_reset_animation(aa[7], var_2);
- scratch.animation_info[7]._frame = var_2;
+ aainfo[7]._frame = var_2;
}
}
@@ -440,10 +440,10 @@ static void room_303_init() {
}
for (int i = 0; i < 10; i++) {
- scratch.animation_info[i]._active = 0;
- scratch.animation_info[i]._frame = 1;
- scratch.animation_info[i]._val3 = 0;
- scratch.animation_info[i]._val4 = 0;
+ aainfo[i]._active = 0;
+ aainfo[i]._frame = 1;
+ aainfo[i]._val3 = 0;
+ aainfo[i]._val4 = 0;
}
if (previous_room != 199 && flags[34] != 3)
@@ -488,7 +488,7 @@ static void room_303_init1() {
if (previous_room == 302) {
aa[0] = kernel_run_animation(kernel_name('y', 1), 100);
- scratch.animation_info[0]._active = -1;
+ aainfo[0]._active = -1;
scratch._92 = 51;
return;
}
@@ -544,7 +544,7 @@ static void room_303_init2() {
if (previous_room == 302) {
aa[0] = kernel_run_animation(kernel_name('y', 1), 100);
- scratch.animation_info[0]._active = -1;
+ aainfo[0]._active = -1;
scratch._92 = 51;
return;
}
@@ -577,7 +577,7 @@ static void room_303_daemon() {
case 100:
dont_frag_the_palette();
kernel_abort_animation(aa[0]);
- scratch.animation_info[0]._active = 0;
+ aainfo[0]._active = 0;
if (global[g065]) {
global[g131] = -1;
global[g141] = -1;
@@ -593,8 +593,8 @@ static void room_303_daemon() {
} else {
global[g065] = -1;
aa[6] = kernel_run_animation(kernel_name('t', 5), 0);
- scratch.animation_info[6]._active = -1;
- scratch.animation_info[6]._val3 = 0;
+ aainfo[6]._active = -1;
+ aainfo[6]._val3 = 0;
aa[7] = kernel_run_animation(kernel_name('t', 1), 104);
}
break;
@@ -602,7 +602,7 @@ static void room_303_daemon() {
case 101:
dont_frag_the_palette();
kernel_abort_animation(aa[scratch._94]);
- scratch.animation_info[scratch._94]._active = 0;
+ aainfo[scratch._94]._active = 0;
kernel_reset_animation(scratch._9c, 1);
kernel_synch(KERNEL_ANIM, scratch._9c, KERNEL_NOW, 0);
global[g143] = 0;
@@ -612,7 +612,7 @@ static void room_303_daemon() {
case 102:
dont_frag_the_palette();
kernel_abort_animation(aa[scratch._96]);
- scratch.animation_info[scratch._96]._active = 0;
+ aainfo[scratch._96]._active = 0;
kernel_reset_animation(scratch._9a, 1);
kernel_synch(KERNEL_ANIM, scratch._9a, KERNEL_NOW, 0);
global[g133] = 0;
@@ -623,7 +623,7 @@ static void room_303_daemon() {
if (scratch._a6 == 1) {
dont_frag_the_palette();
kernel_abort_animation(aa[5]);
- scratch.animation_info[5]._active = 0;
+ aainfo[5]._active = 0;
kernel_reset_animation(scratch._9c, 1);
kernel_synch(KERNEL_ANIM, scratch._9c, KERNEL_NOW, 0);
global[g143] = 0;
@@ -636,7 +636,7 @@ static void room_303_daemon() {
} else if (scratch._a6 == 2) {
dont_frag_the_palette();
kernel_abort_animation(aa[5]);
- scratch.animation_info[5]._active = 0;
+ aainfo[5]._active = 0;
kernel_reset_animation(scratch._9c, 1);
kernel_synch(KERNEL_ANIM, scratch._9c, KERNEL_NOW, 0);
global[g143] = 0;
@@ -662,7 +662,7 @@ static void room_303_daemon() {
kernel_abort_animation(aa[7]);
dont_frag_the_palette();
kernel_abort_animation(aa[6]);
- scratch.animation_info[6]._active = 0;
+ aainfo[6]._active = 0;
global[g141] = -1;
kernel_reset_animation(scratch._9c, 1);
kernel_synch(KERNEL_ANIM, scratch._9c, KERNEL_NOW, 0);
@@ -681,8 +681,8 @@ static void room_303_daemon() {
dont_frag_the_palette();
kernel_abort_animation(aa[7]);
aa[7] = kernel_run_animation(kernel_name('t', 2), 0);
- scratch.animation_info[7]._active = -1;
- scratch.animation_info[7]._val3 = 0;
+ aainfo[7]._active = -1;
+ aainfo[7]._val3 = 0;
kernel_timing_trigger(10, 107);
break;
@@ -725,7 +725,7 @@ static void room_303_daemon() {
case 24:
if (scratch._8c == 3) {
aa[1] = kernel_run_animation(kernel_name('E', 1), 102);
- scratch.animation_info[1]._active = -1;
+ aainfo[1]._active = -1;
scratch._96 = 1;
kernel_reset_animation(scratch._9a, 0);
kernel_synch(KERNEL_ANIM, aa[1], KERNEL_ANIM, scratch._9a);
@@ -738,7 +738,7 @@ static void room_303_daemon() {
} else {
break;
}
- scratch.animation_info[3]._active = -1;
+ aainfo[3]._active = -1;
scratch._96 = 3;
kernel_reset_animation(scratch._9a, 0);
kernel_synch(KERNEL_ANIM, aa[3], KERNEL_ANIM, scratch._9a);
@@ -749,7 +749,7 @@ static void room_303_daemon() {
case 25:
if (scratch._8e == 2) {
aa[2] = kernel_run_animation(kernel_name('R', 1), 101);
- scratch.animation_info[2]._active = -1;
+ aainfo[2]._active = -1;
scratch._94 = 2;
kernel_reset_animation(scratch._9c, 0);
kernel_synch(KERNEL_ANIM, aa[2], KERNEL_ANIM, scratch._9c);
@@ -766,7 +766,7 @@ static void room_303_daemon() {
} else if (scratch._90 == 6) {
if (scratch._a6 == 1) {
aa[5] = kernel_run_animation(kernel_name('P', 1), 103);
- scratch.animation_info[5]._active = -1;
+ aainfo[5]._active = -1;
scratch._98 = 5;
kernel_reset_animation(scratch._9a, 0);
kernel_reset_animation(scratch._9c, 0);
@@ -775,7 +775,7 @@ static void room_303_daemon() {
global[g143] = 1;
} else if (scratch._a6 == 2) {
aa[5] = kernel_run_animation(kernel_name('P', 2), 103);
- scratch.animation_info[5]._active = -1;
+ aainfo[5]._active = -1;
scratch._98 = 5;
kernel_reset_animation(scratch._9a, 0);
kernel_reset_animation(scratch._9c, 0);
@@ -800,7 +800,7 @@ static void room_303_daemon() {
case 107:
digi_play_build(303, 'f', 1, 1);
scratch._a8 = 100;
- scratch.animation_info[7]._val3 = 3;
+ aainfo[7]._val3 = 3;
break;
default:
@@ -816,13 +816,13 @@ static void room_303_daemon() {
if (scratch._aa >= 0)
global_anim3(scratch._aa, &global[g008]);
- if (scratch.animation_info[0]._active) room_303_anim1();
- if (scratch.animation_info[2]._active) room_303_anim3();
- if (scratch.animation_info[1]._active) room_303_anim2();
- if (scratch.animation_info[3]._active) room_303_anim4();
- if (scratch.animation_info[5]._active) room_303_anim6();
- if (scratch.animation_info[6]._active) room_303_anim7();
- if (scratch.animation_info[7]._active) room_303_anim8();
+ if (aainfo[0]._active) room_303_anim1();
+ if (aainfo[2]._active) room_303_anim3();
+ if (aainfo[1]._active) room_303_anim2();
+ if (aainfo[3]._active) room_303_anim4();
+ if (aainfo[5]._active) room_303_anim6();
+ if (aainfo[6]._active) room_303_anim7();
+ if (aainfo[7]._active) room_303_anim8();
}
static void room_303_pre_parser() {
@@ -921,7 +921,7 @@ void room_303_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 (auto &ai : scratch.animation_info) ai.synchronize(s);
+ for (auto &ai : aainfo) ai.synchronize(s);
s.syncAsSint16LE(scratch._8c);
s.syncAsSint16LE(scratch._8e);
s.syncAsSint16LE(scratch._90);
diff --git a/engines/mads/madsv2/forest/rooms/room404.cpp b/engines/mads/madsv2/forest/rooms/room404.cpp
index 1282dea6a17..ad4f418b476 100644
--- a/engines/mads/madsv2/forest/rooms/room404.cpp
+++ b/engines/mads/madsv2/forest/rooms/room404.cpp
@@ -70,6 +70,7 @@ static Scratch scratch;
#define ss local->sprite
#define seq local->sequence
#define aa local->animation
+#define aainfo local->animation_info
static void room_404_init1() {
@@ -120,12 +121,12 @@ static void room_404_init1() {
player.walker_visible = true;
} else if (previous_room == 401) {
aa[0] = kernel_run_animation(kernel_name('y', 1), 100);
- scratch.animation_info[0]._active = -1;
+ aainfo[0]._active = -1;
scratch._92 = 74;
global[g082] = 0;
} else if (previous_room == 405) {
aa[0] = kernel_run_animation(kernel_name('y', 2), 100);
- scratch.animation_info[0]._active = -1;
+ aainfo[0]._active = -1;
scratch._92 = 97;
global[g081] = -1;
global[g082] = 0;
@@ -147,10 +148,10 @@ static void room_404_init1() {
static void room_404_init() {
for (int16 count = 0; count < 10; count++) {
- scratch.animation_info[count]._active = 0;
- scratch.animation_info[count]._frame = 0;
- scratch.animation_info[count]._val3 = 0;
- scratch.animation_info[count]._val4 = 0;
+ aainfo[count]._active = 0;
+ aainfo[count]._frame = 0;
+ aainfo[count]._val3 = 0;
+ aainfo[count]._val4 = 0;
}
scratch._aa = 0;
@@ -158,12 +159,12 @@ static void room_404_init() {
ss[1] = kernel_load_series(kernel_name('p', 3), 0);
aa[7] = kernel_run_animation(kernel_name('N', 1), 105);
- scratch.animation_info[7]._active = -1;
+ aainfo[7]._active = -1;
aa[8] = kernel_run_animation(kernel_name('N', 2), 105);
- scratch.animation_info[8]._active = -1;
+ aainfo[8]._active = -1;
- if (scratch.animation_info[7]._active == -1) {
+ if (aainfo[7]._active == -1) {
kernel.trigger_setup_mode = 1;
kernel_timing_trigger(1, 110);
}
@@ -195,10 +196,10 @@ static void room_404_init() {
}
for (int16 count = 0; count < 10; count++) {
- scratch.animation_info[count]._active = 0;
- scratch.animation_info[count]._frame = 1;
- scratch.animation_info[count]._val3 = 0;
- scratch.animation_info[count]._val4 = 0;
+ aainfo[count]._active = 0;
+ aainfo[count]._frame = 1;
+ aainfo[count]._val3 = 0;
+ aainfo[count]._val4 = 0;
}
if (previous_room != 199 && flags[29] != 3) {
@@ -211,52 +212,52 @@ static void room_404_init() {
static void room_404_anim1() {
int16 cur = kernel_anim[scratch.animation[0]].frame;
- if (cur != scratch.animation_info[0]._frame)
- scratch.animation_info[0]._frame = cur;
+ if (cur != aainfo[0]._frame)
+ aainfo[0]._frame = cur;
if (global[player_hyperwalked] != -1)
return;
int16 f = scratch._92 - 1;
- scratch.animation_info[0]._frame = f;
+ aainfo[0]._frame = f;
kernel_reset_animation(scratch.animation[0], f);
}
static void room_404_anim2() {
int16 cur = kernel_anim[scratch.animation[9]].frame;
- if (cur != scratch.animation_info[9]._frame) {
- scratch.animation_info[9]._frame = cur;
+ if (cur != aainfo[9]._frame) {
+ aainfo[9]._frame = cur;
if (flags[29] == 1) {
if (cur == 4) {
- scratch.animation_info[9]._val3 = 11;
+ aainfo[9]._val3 = 11;
digi_play_build(404, 'e', 1, 1);
scratch._a6 = 1;
} else if (cur == 7) {
- if (scratch.animation_info[9]._val3 == 11) {
- scratch.animation_info[9]._frame = 5;
+ if (aainfo[9]._val3 == 11) {
+ aainfo[9]._frame = 5;
kernel_reset_animation(scratch.animation[9], 5);
}
}
} else {
if (cur == 18) {
- if (scratch.animation_info[9]._val3 == 10) {
- scratch.animation_info[9]._frame = 15;
+ if (aainfo[9]._val3 == 10) {
+ aainfo[9]._frame = 15;
kernel_reset_animation(scratch.animation[9], 15);
}
} else if (cur < 18) {
if (cur == 2) {
- scratch.animation_info[9]._frame = 13;
+ aainfo[9]._frame = 13;
kernel_reset_animation(scratch.animation[9], 13);
} else if (cur == 4) {
- if (scratch.animation_info[9]._val3 == 13) {
- scratch.animation_info[9]._frame = 3;
+ if (aainfo[9]._val3 == 13) {
+ aainfo[9]._frame = 3;
kernel_reset_animation(scratch.animation[9], 3);
}
} else if (cur == 7) {
- if (scratch.animation_info[9]._val3 == 11) {
- scratch.animation_info[9]._frame = 5;
+ if (aainfo[9]._val3 == 11) {
+ aainfo[9]._frame = 5;
kernel_reset_animation(scratch.animation[9], 5);
}
} else if (cur == 14) {
- scratch.animation_info[9]._val3 = 10;
+ aainfo[9]._val3 = 10;
digi_play_build(404, 'b', 5, 1);
scratch._a6 = 1;
}
@@ -268,8 +269,8 @@ static void room_404_anim2() {
return;
if (flags[29] == 1) {
- scratch.animation_info[9]._val3 = 13;
- scratch.animation_info[9]._frame = 18;
+ aainfo[9]._val3 = 13;
+ aainfo[9]._frame = 18;
kernel_reset_animation(scratch.animation[9], 18);
scratch._a6 = -1;
return;
@@ -278,19 +279,19 @@ static void room_404_anim2() {
if (scratch._a6 == 1) {
global[g154] = 0;
kernel_timing_trigger(30, 28);
- scratch.animation_info[9]._val3 = 13;
- scratch.animation_info[9]._frame = 3;
+ aainfo[9]._val3 = 13;
+ aainfo[9]._frame = 3;
kernel_reset_animation(scratch.animation[9], 3);
scratch._a6 = 2;
} else if (scratch._a6 == 2) {
- scratch.animation_info[9]._val3 = 11;
- scratch.animation_info[9]._frame = 5;
+ aainfo[9]._val3 = 11;
+ aainfo[9]._frame = 5;
kernel_reset_animation(scratch.animation[9], 5);
scratch._a6 = 3;
digi_play_build(404, 'e', 5, 1);
} else if (scratch._a6 == 3) {
- scratch.animation_info[9]._val3 = 13;
- scratch.animation_info[9]._frame = 18;
+ aainfo[9]._val3 = 13;
+ aainfo[9]._frame = 18;
kernel_reset_animation(scratch.animation[9], 18);
scratch._a6 = -1;
}
@@ -298,27 +299,27 @@ static void room_404_anim2() {
static void room_404_anim3() {
int16 cur = kernel_anim[scratch.animation[2]].frame;
- if (cur != scratch.animation_info[2]._frame)
- scratch.animation_info[2]._frame = cur;
+ if (cur != aainfo[2]._frame)
+ aainfo[2]._frame = cur;
}
static void room_404_anim4() {
int16 cur = kernel_anim[scratch.animation[1]].frame;
- if (cur != scratch.animation_info[1]._frame)
- scratch.animation_info[1]._frame = cur;
+ if (cur != aainfo[1]._frame)
+ aainfo[1]._frame = cur;
}
static void room_404_anim5() {
int16 cur = kernel_anim[scratch.animation[3]].frame;
- if (cur != scratch.animation_info[3]._frame) {
- scratch.animation_info[3]._frame = cur;
+ if (cur != aainfo[3]._frame) {
+ aainfo[3]._frame = cur;
if (cur == 5) {
- scratch.animation_info[3]._val3 = 11;
+ aainfo[3]._val3 = 11;
digi_play_build(404, 'e', 3, 1);
scratch._a6 = 5;
} else if (cur == 9) {
- if (scratch.animation_info[3]._val3 == 11) {
- scratch.animation_info[3]._frame = 5;
+ if (aainfo[3]._val3 == 11) {
+ aainfo[3]._frame = 5;
kernel_reset_animation(scratch.animation[3], 5);
}
}
@@ -328,8 +329,8 @@ static void room_404_anim5() {
return;
if (scratch._a6 == 5) {
- scratch.animation_info[3]._val3 = 14;
- scratch.animation_info[3]._frame = 9;
+ aainfo[3]._val3 = 14;
+ aainfo[3]._frame = 9;
kernel_reset_animation(scratch.animation[3], 9);
scratch._a6 = -1;
}
@@ -337,25 +338,25 @@ static void room_404_anim5() {
static void room_404_anim6() {
int16 cur = kernel_anim[scratch.animation[5]].frame;
- if (cur != scratch.animation_info[5]._frame) {
- scratch.animation_info[5]._frame = cur;
+ if (cur != aainfo[5]._frame) {
+ aainfo[5]._frame = cur;
if (cur == 72) {
- if (scratch.animation_info[5]._val3 == 11) {
- scratch.animation_info[5]._frame = 67;
+ if (aainfo[5]._val3 == 11) {
+ aainfo[5]._frame = 67;
kernel_reset_animation(scratch.animation[5], 67);
}
} else if (cur < 72) {
if (cur == 5) {
- scratch.animation_info[5]._val3 = 10;
+ aainfo[5]._val3 = 10;
digi_play_build(404, 'b', 2, 1);
scratch._a6 = 5;
} else if (cur == 10) {
- if (scratch.animation_info[5]._val3 == 10) {
- scratch.animation_info[5]._frame = 5;
+ if (aainfo[5]._val3 == 10) {
+ aainfo[5]._frame = 5;
kernel_reset_animation(scratch.animation[5], 5);
}
} else if (cur == 67) {
- scratch.animation_info[5]._val3 = 11;
+ aainfo[5]._val3 = 11;
digi_play_build(404, 'e', 2, 1);
scratch._a6 = 67;
}
@@ -366,13 +367,13 @@ static void room_404_anim6() {
return;
if (scratch._a6 == 5) {
- scratch.animation_info[5]._val3 = 13;
- scratch.animation_info[5]._frame = 11;
+ aainfo[5]._val3 = 13;
+ aainfo[5]._frame = 11;
kernel_reset_animation(scratch.animation[5], 11);
scratch._a6 = -1;
} else if (scratch._a6 == 67) {
- scratch.animation_info[5]._val3 = 13;
- scratch.animation_info[5]._frame = 73;
+ aainfo[5]._val3 = 13;
+ aainfo[5]._frame = 73;
kernel_reset_animation(scratch.animation[5], 73);
scratch._a6 = -1;
}
@@ -380,24 +381,24 @@ static void room_404_anim6() {
static void room_404_anim7() {
int16 cur = kernel_anim[scratch.animation[6]].frame;
- if (cur != scratch.animation_info[6]._frame) {
- scratch.animation_info[6]._frame = cur;
+ if (cur != aainfo[6]._frame) {
+ aainfo[6]._frame = cur;
if (cur == 57) {
- if (scratch.animation_info[6]._val3 == 10) {
- scratch.animation_info[6]._frame = 52;
+ if (aainfo[6]._val3 == 10) {
+ aainfo[6]._frame = 52;
kernel_reset_animation(scratch.animation[6], 52);
}
} else if (cur > 57) {
// no action
} else if (cur < 40) {
if (cur == 6) {
- scratch.animation_info[6]._val3 = 11;
+ aainfo[6]._val3 = 11;
digi_play_build(404, 'e', 4, 1);
scratch._a6 = 6;
kernel_seq_delete(scratch.sequence[0]);
} else if (cur == 11) {
- if (scratch.animation_info[6]._val3 == 11) {
- scratch.animation_info[6]._frame = 6;
+ if (aainfo[6]._val3 == 11) {
+ aainfo[6]._frame = 6;
kernel_reset_animation(scratch.animation[6], 6);
}
} else if (cur == 39) {
@@ -412,7 +413,7 @@ static void room_404_anim7() {
digi_play_build(404, '_', 2, 2);
scratch._a6 = 39;
}
- scratch.animation_info[6]._frame = 39;
+ aainfo[6]._frame = 39;
kernel_reset_animation(scratch.animation[6], 39);
scratch._aa++;
}
@@ -421,7 +422,7 @@ static void room_404_anim7() {
digi_play_build(404, '_', 3, 2);
scratch._a6 = -1;
} else if (cur == 52) {
- scratch.animation_info[6]._val3 = 10;
+ aainfo[6]._val3 = 10;
digi_play_build(404, 'b', 3, 1);
scratch._a6 = 52;
scratch.sequence[1] = kernel_seq_stamp(scratch.sprite[1], 0, -1);
@@ -434,13 +435,13 @@ static void room_404_anim7() {
if (kernel.trigger == 7 || kernel.trigger == 28) {
if (scratch._a6 == 6) {
- scratch.animation_info[6]._val3 = 13;
- scratch.animation_info[6]._frame = 11;
+ aainfo[6]._val3 = 13;
+ aainfo[6]._frame = 11;
kernel_reset_animation(scratch.animation[6], 11);
scratch._a6 = -1;
} else if (scratch._a6 == 52) {
- scratch.animation_info[6]._val3 = 13;
- scratch.animation_info[6]._frame = 57;
+ aainfo[6]._val3 = 13;
+ aainfo[6]._frame = 57;
kernel_reset_animation(scratch.animation[6], 57);
scratch._a6 = -1;
}
@@ -452,10 +453,10 @@ static void room_404_anim7() {
static void room_404_anim8() {
int16 cur = kernel_anim[scratch.animation[7]].frame;
- if (cur != scratch.animation_info[7]._frame) {
- scratch.animation_info[7]._frame = cur;
+ if (cur != aainfo[7]._frame) {
+ aainfo[7]._frame = cur;
if (cur == 99) {
- scratch.animation_info[7]._frame = 1;
+ aainfo[7]._frame = 1;
kernel_reset_animation(scratch.animation[7], 1);
} else if (cur < 99) {
int threshold = -1;
@@ -466,8 +467,8 @@ static void room_404_anim8() {
else if (cur == 1 || cur == 28 || cur == 31 || cur == 94)
threshold = 80;
if (threshold >= 0 && imath_random(0, 100) > threshold) {
- scratch.animation_info[7]._frame--;
- kernel_reset_animation(scratch.animation[7], scratch.animation_info[7]._frame);
+ aainfo[7]._frame--;
+ kernel_reset_animation(scratch.animation[7], aainfo[7]._frame);
}
}
}
@@ -478,33 +479,33 @@ static void room_404_anim8() {
static void room_404_anim9() {
int16 cur = kernel_anim[scratch.animation[8]].frame;
- if (cur == scratch.animation_info[8]._frame)
+ if (cur == aainfo[8]._frame)
return;
- scratch.animation_info[8]._frame = cur;
+ aainfo[8]._frame = cur;
if (cur == 49) {
if (imath_random(0, 100) > 50) {
- scratch.animation_info[8]._frame--;
- kernel_reset_animation(scratch.animation[8], scratch.animation_info[8]._frame);
+ aainfo[8]._frame--;
+ kernel_reset_animation(scratch.animation[8], aainfo[8]._frame);
} else {
- scratch.animation_info[8]._frame = 21;
+ aainfo[8]._frame = 21;
kernel_reset_animation(scratch.animation[8], 21);
}
} else if (cur < 49) {
if (cur == 19 || cur == 30 || cur == 40) {
if (imath_random(0, 100) > 20) {
- scratch.animation_info[8]._frame--;
- kernel_reset_animation(scratch.animation[8], scratch.animation_info[8]._frame);
+ aainfo[8]._frame--;
+ kernel_reset_animation(scratch.animation[8], aainfo[8]._frame);
}
} else if (cur == 34 || cur == 46) {
if (imath_random(0, 100) > 40) {
- scratch.animation_info[8]._frame--;
- kernel_reset_animation(scratch.animation[8], scratch.animation_info[8]._frame);
+ aainfo[8]._frame--;
+ kernel_reset_animation(scratch.animation[8], aainfo[8]._frame);
}
} else if (cur == 20 || cur == 48) {
if (imath_random(0, 100) > 60) {
- scratch.animation_info[8]._frame -= 2;
- kernel_reset_animation(scratch.animation[8], scratch.animation_info[8]._frame);
+ aainfo[8]._frame -= 2;
+ kernel_reset_animation(scratch.animation[8], aainfo[8]._frame);
}
}
}
@@ -534,7 +535,7 @@ static void room_404_daemon() {
case 24:
if (scratch._8c == 3) {
aa[1] = kernel_run_animation(kernel_name('E', 1), 102);
- scratch.animation_info[1]._active = -1;
+ aainfo[1]._active = -1;
scratch._96 = 1;
kernel_reset_animation(scratch._9a, 0);
kernel_synch(KERNEL_ANIM, aa[1], KERNEL_ANIM, scratch._9a);
@@ -542,7 +543,7 @@ static void room_404_daemon() {
kernel_timing_trigger(1, 110);
} else if (scratch._8c == 7) {
aa[3] = kernel_run_animation(kernel_name('L', 2), 102);
- scratch.animation_info[3]._active = -1;
+ aainfo[3]._active = -1;
scratch._96 = 3;
kernel_reset_animation(scratch._9a, 0);
kernel_synch(KERNEL_ANIM, aa[3], KERNEL_ANIM, scratch._9a);
@@ -554,7 +555,7 @@ static void room_404_daemon() {
case 25:
if (scratch._8e == 2) {
aa[2] = kernel_run_animation(kernel_name('R', 1), 101);
- scratch.animation_info[2]._active = -1;
+ aainfo[2]._active = -1;
scratch._94 = 2;
kernel_reset_animation(scratch._9c, 0);
kernel_synch(KERNEL_ANIM, aa[2], KERNEL_ANIM, scratch._9c);
@@ -571,7 +572,7 @@ static void room_404_daemon() {
// TODO: loc_6B318
} else if (scratch._90 == 6) {
aa[5] = kernel_run_animation(kernel_name('L', 1), 103);
- scratch.animation_info[5]._active = -1;
+ aainfo[5]._active = -1;
scratch._98 = 5;
kernel_reset_animation(scratch._9a, 0);
kernel_reset_animation(scratch._9c, 0);
@@ -600,13 +601,13 @@ static void room_404_daemon() {
case 100:
kernel_abort_animation(aa[0]);
- scratch.animation_info[0]._active = 0;
+ aainfo[0]._active = 0;
if (previous_room == 401) {
global[g084] = 15;
if (flags[29] == 1 || global[g081]) {
aa[9] = kernel_run_animation(kernel_name('t', 1), 107);
kernel_synch(KERNEL_ANIM, aa[9], KERNEL_ANIM, aa[0]);
- scratch.animation_info[9]._active = -1;
+ aainfo[9]._active = -1;
player.commands_allowed = false;
kernel_timing_trigger(1, 110);
} else {
@@ -643,7 +644,7 @@ static void room_404_daemon() {
case 101:
kernel_abort_animation(aa[scratch._94]);
- scratch.animation_info[scratch._94]._active = 0;
+ aainfo[scratch._94]._active = 0;
kernel_reset_animation(scratch._9c, 1);
kernel_synch(KERNEL_ANIM, scratch._9c, KERNEL_NOW, 0);
global[g143] = 0;
@@ -654,7 +655,7 @@ static void room_404_daemon() {
case 102:
kernel_abort_animation(aa[scratch._96]);
- scratch.animation_info[scratch._96]._active = 0;
+ aainfo[scratch._96]._active = 0;
kernel_reset_animation(scratch._9a, 1);
kernel_synch(KERNEL_ANIM, scratch._9a, KERNEL_NOW, 0);
global[g133] = 0;
@@ -666,7 +667,7 @@ static void room_404_daemon() {
case 103:
if (scratch._a4 == 1) {
kernel_abort_animation(aa[5]);
- scratch.animation_info[5]._active = 0;
+ aainfo[5]._active = 0;
kernel_abort_animation(scratch._9a);
kernel_abort_animation(scratch._9c);
global[g084] = 16;
@@ -692,13 +693,13 @@ static void room_404_daemon() {
kernel_timing_trigger(1, 110);
} else if (scratch._a4 == 2) {
kernel_abort_animation(aa[6]);
- scratch.animation_info[6]._active = 0;
+ aainfo[6]._active = 0;
aa[6] = kernel_run_animation(kernel_name('L', 4), 103);
scratch._a4 = 3;
kernel_timing_trigger(1, 110);
} else if (scratch._a4 == 3) {
kernel_abort_animation(aa[6]);
- scratch.animation_info[6]._active = 0;
+ aainfo[6]._active = 0;
kernel_reset_animation(scratch._9c, 1);
kernel_synch(KERNEL_ANIM, scratch._9c, KERNEL_NOW, 0);
global[g143] = 0;
@@ -732,7 +733,7 @@ static void room_404_daemon() {
case 107:
kernel_abort_animation(aa[9]);
- scratch.animation_info[9]._active = 0;
+ aainfo[9]._active = 0;
if (flags[29] == 1) {
global[g141] = -1;
kernel_reset_animation(scratch._9c, 1);
@@ -792,13 +793,13 @@ static void room_404_daemon() {
if (scratch._a2)
kernel_random_frame(scratch._9e, &global[g151], global[g154]);
- if (scratch.animation_info[0]._active) room_404_anim1();
- if (scratch.animation_info[9]._active) room_404_anim2();
- if (scratch.animation_info[2]._active) room_404_anim3();
- if (scratch.animation_info[1]._active) room_404_anim4();
- if (scratch.animation_info[3]._active) room_404_anim5();
- if (scratch.animation_info[5]._active) room_404_anim6();
- if (scratch.animation_info[6]._active) room_404_anim7();
+ if (aainfo[0]._active) room_404_anim1();
+ if (aainfo[9]._active) room_404_anim2();
+ if (aainfo[2]._active) room_404_anim3();
+ if (aainfo[1]._active) room_404_anim4();
+ if (aainfo[3]._active) room_404_anim5();
+ if (aainfo[5]._active) room_404_anim6();
+ if (aainfo[6]._active) room_404_anim7();
if (global[walker_converse_now])
global_anim3(scratch._a0, &global[g008]);
@@ -927,7 +928,7 @@ void room_404_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);
+ for (AnimationInfo &ai : aainfo) ai.synchronize(s);
s.syncAsSint16LE(scratch._8c);
s.syncAsSint16LE(scratch._8e);
s.syncAsSint16LE(scratch._90);
diff --git a/engines/mads/madsv2/forest/rooms/room405.cpp b/engines/mads/madsv2/forest/rooms/room405.cpp
index 877132af830..eb752b0a11a 100644
--- a/engines/mads/madsv2/forest/rooms/room405.cpp
+++ b/engines/mads/madsv2/forest/rooms/room405.cpp
@@ -65,7 +65,7 @@ static Scratch scratch;
#define ss local->sprite
#define seq local->sequence
#define aa local->animation
-#define aainfo scratch.animation_info
+#define aainfo local->animation_info
static void room_405_init1() {
@@ -103,12 +103,12 @@ static void room_405_init1() {
} else if (previous_room == 404) {
global[g009] = -1;
aa[0] = kernel_run_animation(kernel_name('y', 1), 100);
- scratch.animation_info[0]._active = -1;
+ aainfo[0]._active = -1;
scratch._92 = 106;
} else if (previous_room == 501) {
global[g009] = -1;
aa[0] = kernel_run_animation(kernel_name('y', 2), 100);
- scratch.animation_info[0]._active = -1;
+ aainfo[0]._active = -1;
scratch._92 = 44;
} else {
global[g131] = -1;
@@ -127,7 +127,7 @@ static void room_405_init() {
global[g009] = -1;
aa[7] = kernel_run_animation(kernel_name('N', 1), 105);
- scratch.animation_info[7]._active = -1;
+ aainfo[7]._active = -1;
kernel.trigger_setup_mode = 1;
kernel_timing_trigger(1, 106);
@@ -140,10 +140,10 @@ static void room_405_init() {
}
for (int16 count = 0; count < 10; count++) {
- scratch.animation_info[count]._active = 0;
- scratch.animation_info[count]._frame = 1;
- scratch.animation_info[count]._val3 = 0;
- scratch.animation_info[count]._val4 = 0;
+ aainfo[count]._active = 0;
+ aainfo[count]._frame = 1;
+ aainfo[count]._val3 = 0;
+ aainfo[count]._val4 = 0;
}
if (previous_room != 199 && flags[30] != 3) {
@@ -156,26 +156,26 @@ static void room_405_init() {
static void room_405_anim1() {
int16 cur = kernel_anim[aa[0]].frame;
- if (cur != scratch.animation_info[0]._frame)
- scratch.animation_info[0]._frame = cur;
+ if (cur != aainfo[0]._frame)
+ aainfo[0]._frame = cur;
if (global[player_hyperwalked] != -1)
return;
int16 f = scratch._92 - 1;
- scratch.animation_info[0]._frame = f;
+ aainfo[0]._frame = f;
kernel_reset_animation(aa[0], f);
}
static void room_405_anim2() {
int16 cur = kernel_anim[aa[6]].frame;
- if (cur != scratch.animation_info[6]._frame) {
- scratch.animation_info[6]._frame = cur;
+ if (cur != aainfo[6]._frame) {
+ aainfo[6]._frame = cur;
if (cur == 5) {
- scratch.animation_info[6]._val3 = 12;
+ aainfo[6]._val3 = 12;
digi_play_build(404, 'r', 1, 1);
scratch._a2 = 5;
} else if (cur == 10) {
- if (scratch.animation_info[6]._val3 == 12) {
- scratch.animation_info[6]._frame = 5;
+ if (aainfo[6]._val3 == 12) {
+ aainfo[6]._frame = 5;
kernel_reset_animation(aa[6], 5);
}
}
@@ -185,8 +185,8 @@ static void room_405_anim2() {
return;
if (scratch._a2 == 5) {
- scratch.animation_info[6]._val3 = 13;
- scratch.animation_info[6]._frame = 10;
+ aainfo[6]._val3 = 13;
+ aainfo[6]._frame = 10;
kernel_reset_animation(aa[6], 10);
scratch._a2 = -1;
}
@@ -194,37 +194,37 @@ static void room_405_anim2() {
static void room_405_anim3() {
int16 cur = kernel_anim[aa[2]].frame;
- if (cur != scratch.animation_info[2]._frame)
- scratch.animation_info[2]._frame = cur;
+ if (cur != aainfo[2]._frame)
+ aainfo[2]._frame = cur;
}
static void room_405_anim4() {
int16 cur = kernel_anim[aa[1]].frame;
- if (cur != scratch.animation_info[1]._frame)
- scratch.animation_info[1]._frame = cur;
+ if (cur != aainfo[1]._frame)
+ aainfo[1]._frame = cur;
}
static void room_405_anim5() {
int16 cur = kernel_anim[aa[5]].frame;
- if (cur != scratch.animation_info[5]._frame) {
- scratch.animation_info[5]._frame = cur;
+ if (cur != aainfo[5]._frame) {
+ aainfo[5]._frame = cur;
if (cur == 21) {
- if (scratch.animation_info[5]._val3 == 11) {
- scratch.animation_info[5]._frame = 16;
+ if (aainfo[5]._val3 == 11) {
+ aainfo[5]._frame = 16;
kernel_reset_animation(aa[5], 16);
}
} else if (cur < 21) {
if (cur == 6) {
- scratch.animation_info[5]._val3 = 10;
+ aainfo[5]._val3 = 10;
digi_play_build(404, 'b', 4, 1);
scratch._a2 = 6;
} else if (cur == 11) {
- if (scratch.animation_info[5]._val3 == 10) {
- scratch.animation_info[5]._frame = 6;
+ if (aainfo[5]._val3 == 10) {
+ aainfo[5]._frame = 6;
kernel_reset_animation(aa[5], 6);
}
} else if (cur == 16) {
- scratch.animation_info[5]._val3 = 11;
+ aainfo[5]._val3 = 11;
digi_play_build(404, 'e', 5, 1);
scratch._a2 = 16;
}
@@ -235,13 +235,13 @@ static void room_405_anim5() {
return;
if (scratch._a2 == 6) {
- scratch.animation_info[5]._val3 = 13;
- scratch.animation_info[5]._frame = 11;
+ aainfo[5]._val3 = 13;
+ aainfo[5]._frame = 11;
kernel_reset_animation(aa[5], 11);
scratch._a2 = -1;
} else if (scratch._a2 == 16) {
- scratch.animation_info[5]._val3 = 13;
- scratch.animation_info[5]._frame = 21;
+ aainfo[5]._val3 = 13;
+ aainfo[5]._frame = 21;
kernel_reset_animation(aa[5], 21);
scratch._a2 = -1;
}
@@ -249,10 +249,10 @@ static void room_405_anim5() {
static void room_405_anim6() {
int16 cur = kernel_anim[aa[7]].frame;
- if (cur != scratch.animation_info[7]._frame) {
- scratch.animation_info[7]._frame = cur;
+ if (cur != aainfo[7]._frame) {
+ aainfo[7]._frame = cur;
if (cur == 99) {
- scratch.animation_info[7]._frame = 1;
+ aainfo[7]._frame = 1;
kernel_reset_animation(aa[7], 1);
} else if (cur < 99) {
int threshold = -1;
@@ -263,8 +263,8 @@ static void room_405_anim6() {
else if (cur == 1 || cur == 28 || cur == 31 || cur == 94)
threshold = 80;
if (threshold >= 0 && imath_random(0, 100) > threshold) {
- scratch.animation_info[7]._frame--;
- kernel_reset_animation(aa[7], scratch.animation_info[7]._frame);
+ aainfo[7]._frame--;
+ kernel_reset_animation(aa[7], aainfo[7]._frame);
}
}
}
@@ -288,7 +288,7 @@ static void room_405_daemon() {
case 24:
if (scratch._8c == 3) {
aa[1] = kernel_run_animation(kernel_name('E', 1), 102);
- scratch.animation_info[1]._active = -1;
+ aainfo[1]._active = -1;
scratch._96 = 1;
kernel_reset_animation(scratch._9a, 0);
kernel_synch(KERNEL_ANIM, aa[1], KERNEL_ANIM, scratch._9a);
@@ -300,7 +300,7 @@ static void room_405_daemon() {
case 25:
if (scratch._8e == 2) {
aa[2] = kernel_run_animation(kernel_name('R', 1), 101);
- scratch.animation_info[2]._active = -1;
+ aainfo[2]._active = -1;
scratch._94 = 2;
kernel_reset_animation(scratch._9c, 0);
kernel_synch(KERNEL_ANIM, aa[2], KERNEL_ANIM, scratch._9c);
@@ -317,7 +317,7 @@ static void room_405_daemon() {
global[g143] = 1;
} else if (scratch._90 == 6) {
aa[5] = kernel_run_animation(kernel_name('L', 1), 103);
- scratch.animation_info[5]._active = -1;
+ aainfo[5]._active = -1;
scratch._98 = 5;
kernel_reset_animation(scratch._9a, 0);
kernel_reset_animation(scratch._9c, 0);
@@ -346,11 +346,11 @@ static void room_405_daemon() {
case 100:
kernel_abort_animation(aa[0]);
- scratch.animation_info[0]._active = 0;
+ aainfo[0]._active = 0;
if (flags[30] == 1) {
aa[6] = kernel_run_animation(kernel_name('t', 1), 104);
kernel_synch(KERNEL_ANIM, aa[6], KERNEL_ANIM, aa[0]);
- scratch.animation_info[6]._active = -1;
+ aainfo[6]._active = -1;
player.commands_allowed = false;
kernel_timing_trigger(1, 106);
} else {
@@ -372,7 +372,7 @@ static void room_405_daemon() {
case 101:
kernel_abort_animation(aa[scratch._94]);
- scratch.animation_info[scratch._94]._active = 0;
+ aainfo[scratch._94]._active = 0;
kernel_reset_animation(scratch._9c, 1);
kernel_synch(KERNEL_ANIM, scratch._9c, KERNEL_NOW, 0);
global[g143] = 0;
@@ -383,7 +383,7 @@ static void room_405_daemon() {
case 102:
kernel_abort_animation(aa[scratch._96]);
- scratch.animation_info[scratch._96]._active = 0;
+ aainfo[scratch._96]._active = 0;
kernel_reset_animation(scratch._9a, 1);
kernel_synch(KERNEL_ANIM, scratch._9a, KERNEL_NOW, 0);
global[g133] = 0;
@@ -395,7 +395,7 @@ static void room_405_daemon() {
case 103:
if (scratch._a0 == 1) {
kernel_abort_animation(aa[5]);
- scratch.animation_info[5]._active = 0;
+ aainfo[5]._active = 0;
kernel_reset_animation(scratch._9c, 1);
kernel_synch(KERNEL_ANIM, scratch._9c, KERNEL_NOW, 0);
global[g143] = 0;
@@ -413,7 +413,7 @@ static void room_405_daemon() {
case 104:
kernel_abort_animation(aa[6]);
- scratch.animation_info[6]._active = 0;
+ aainfo[6]._active = 0;
global[g141] = -1;
kernel_reset_animation(scratch._9c, 1);
kernel_synch(KERNEL_ANIM, scratch._9c, KERNEL_NOW, 0);
@@ -440,11 +440,11 @@ static void room_405_daemon() {
global_anim1(7, scratch._9a, global[g131], &global[g132]);
global_anim2(7, scratch._9c, global[g141], &global[g142]);
- if (scratch.animation_info[0]._active) room_405_anim1();
- if (scratch.animation_info[6]._active) room_405_anim2();
- if (scratch.animation_info[2]._active) room_405_anim3();
- if (scratch.animation_info[1]._active) room_405_anim4();
- if (scratch.animation_info[5]._active) room_405_anim5();
+ if (aainfo[0]._active) room_405_anim1();
+ if (aainfo[6]._active) room_405_anim2();
+ if (aainfo[2]._active) room_405_anim3();
+ if (aainfo[1]._active) room_405_anim4();
+ if (aainfo[5]._active) room_405_anim5();
if (global[walker_converse_now])
global_anim3(scratch._9e, &global[g008]);
@@ -505,7 +505,7 @@ void room_405_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);
+ for (AnimationInfo &ai : aainfo) ai.synchronize(s);
s.syncAsSint16LE(scratch._8c);
s.syncAsSint16LE(scratch._8e);
s.syncAsSint16LE(scratch._90);
diff --git a/engines/mads/madsv2/forest/rooms/room420.cpp b/engines/mads/madsv2/forest/rooms/room420.cpp
index 546d73524eb..d095de2b409 100644
--- a/engines/mads/madsv2/forest/rooms/room420.cpp
+++ b/engines/mads/madsv2/forest/rooms/room420.cpp
@@ -46,37 +46,37 @@ static Scratch scratch;
#define ss local->sprite
#define seq local->sequence
#define aa local->animation
-#define aainfo scratch.animation_info
+#define aainfo local->animation_info
static void room_420_anim1() {
int16 cur = kernel_anim[aa[0]].frame;
- if (cur == scratch.animation_info[0]._frame)
+ if (cur == aainfo[0]._frame)
return;
- scratch.animation_info[0]._frame = cur;
+ aainfo[0]._frame = cur;
if (cur != 100)
return;
kernel_abort_animation(aa[0]);
- scratch.animation_info[0]._active = 0;
+ aainfo[0]._active = 0;
aa[1] = kernel_run_animation(kernel_name('T', 2), 0);
- scratch.animation_info[1]._active = -1;
+ aainfo[1]._active = -1;
kernel_synch(KERNEL_ANIM, aa[1], KERNEL_ANIM, aa[0]);
}
static void room_420_anim2() {
int16 cur = kernel_anim[aa[1]].frame;
- if (cur != scratch.animation_info[1]._frame) {
- scratch.animation_info[1]._frame = cur;
+ if (cur != aainfo[1]._frame) {
+ aainfo[1]._frame = cur;
if (cur == 50) {
kernel_abort_animation(aa[1]);
- scratch.animation_info[1]._active = 0;
+ aainfo[1]._active = 0;
aa[2] = kernel_run_animation(kernel_name('N', 1), 0);
- scratch.animation_info[2]._active = -1;
+ aainfo[2]._active = -1;
kernel_synch(KERNEL_ANIM, aa[2], KERNEL_ANIM, aa[1]);
} else if (cur < 50) {
if (cur == 24) {
scratch._8e = 24;
- scratch.animation_info[1]._val3 = 11;
+ aainfo[1]._val3 = 11;
if (global[g066] == 2 || global[g066] == 3)
digi_play_build(420, 'e', 1, 1);
else
@@ -84,38 +84,38 @@ static void room_420_anim2() {
} else if (cur < 24) {
if (cur == 5) {
scratch._8e = 5;
- scratch.animation_info[1]._val3 = 9;
+ aainfo[1]._val3 = 9;
digi_play_build(420, 'r', 1, 1);
} else if (cur == 19) {
- if (scratch.animation_info[1]._val3 == 9) {
- scratch.animation_info[1]._frame = 5;
+ if (aainfo[1]._val3 == 9) {
+ aainfo[1]._frame = 5;
kernel_reset_animation(aa[1], 5);
}
} else if (cur == 23) {
- if (scratch.animation_info[1]._val3 == 12) {
- scratch.animation_info[1]._frame = 22;
+ if (aainfo[1]._val3 == 12) {
+ aainfo[1]._frame = 22;
kernel_reset_animation(aa[1], 22);
}
}
} else {
if (cur == 29) {
- if (scratch.animation_info[1]._val3 == 11) {
- scratch.animation_info[1]._frame = 24;
+ if (aainfo[1]._val3 == 11) {
+ aainfo[1]._frame = 24;
kernel_reset_animation(aa[1], 24);
}
} else if (cur == 33) {
- if (scratch.animation_info[1]._val3 == 12) {
- scratch.animation_info[1]._frame = 32;
+ if (aainfo[1]._val3 == 12) {
+ aainfo[1]._frame = 32;
kernel_reset_animation(aa[1], 32);
}
} else if (cur == 34) {
scratch._8e = 34;
- scratch.animation_info[1]._val3 = 10;
+ aainfo[1]._val3 = 10;
digi_play_build(420, 'b', 1, 1);
global_midi_play(3);
} else if (cur == 39) {
- if (scratch.animation_info[1]._val3 == 10) {
- scratch.animation_info[1]._frame = 34;
+ if (aainfo[1]._val3 == 10) {
+ aainfo[1]._frame = 34;
kernel_reset_animation(aa[1], 34);
}
}
@@ -128,28 +128,28 @@ static void room_420_anim2() {
int16 val = scratch._8e;
if (val == 34) {
- scratch.animation_info[1]._val3 = 13;
- scratch.animation_info[1]._frame = 39;
+ aainfo[1]._val3 = 13;
+ aainfo[1]._frame = 39;
kernel_reset_animation(aa[1], 39);
scratch._8e = -1;
} else if ((uint16)val > 34) {
return;
} else if (val == 5) {
- scratch.animation_info[1]._val3 = 12;
+ aainfo[1]._val3 = 12;
kernel_timing_trigger(30, 28);
scratch._8e = 6;
} else if (val == 6) {
- scratch.animation_info[1]._val3 = 13;
- scratch.animation_info[1]._frame = 19;
+ aainfo[1]._val3 = 13;
+ aainfo[1]._frame = 19;
kernel_reset_animation(aa[1], 19);
scratch._8e = -1;
} else if (val == 24) {
- scratch.animation_info[1]._val3 = 12;
+ aainfo[1]._val3 = 12;
kernel_timing_trigger(30, 28);
scratch._8e = 25;
} else if (val == 25) {
- scratch.animation_info[1]._val3 = 13;
- scratch.animation_info[1]._frame = 29;
+ aainfo[1]._val3 = 13;
+ aainfo[1]._frame = 29;
kernel_reset_animation(aa[1], 29);
scratch._8e = -1;
}
@@ -157,35 +157,35 @@ static void room_420_anim2() {
static void room_420_anim3() {
int16 cur = kernel_anim[aa[2]].frame;
- if (cur == scratch.animation_info[2]._frame)
+ if (cur == aainfo[2]._frame)
return;
- scratch.animation_info[2]._frame = cur;
+ aainfo[2]._frame = cur;
if (cur != 82)
return;
kernel_abort_animation(aa[2]);
- scratch.animation_info[2]._active = 0;
+ aainfo[2]._active = 0;
aa[3] = kernel_run_animation(kernel_name('N', 2), 0);
- scratch.animation_info[3]._active = -1;
+ aainfo[3]._active = -1;
kernel_synch(KERNEL_ANIM, aa[3], KERNEL_ANIM, aa[2]);
}
static void room_420_anim4() {
int16 cur = kernel_anim[aa[3]].frame;
- if (cur == scratch.animation_info[3]._frame)
+ if (cur == aainfo[3]._frame)
return;
- scratch.animation_info[3]._frame = cur;
+ aainfo[3]._frame = cur;
if (cur == 10) {
- scratch.animation_info[3]._active = 0;
+ aainfo[3]._active = 0;
new_room = 401;
} else if ((uint16)cur > 10) {
return;
} else if (cur == 2) {
- scratch.animation_info[3]._val4 = 0;
+ aainfo[3]._val4 = 0;
} else if (cur == 8) {
- if (scratch.animation_info[3]._val4 < 20) {
- scratch.animation_info[3]._frame = 7;
+ if (aainfo[3]._val4 < 20) {
+ aainfo[3]._frame = 7;
kernel_reset_animation(aa[3], 7);
- scratch.animation_info[3]._val4++;
+ aainfo[3]._val4++;
}
}
}
@@ -199,26 +199,26 @@ static void room_420_init() {
player.commands_allowed = false;
for (int16 count = 0; count < 10; count++) {
- scratch.animation_info[count]._active = 0;
- scratch.animation_info[count]._frame = -1;
+ aainfo[count]._active = 0;
+ aainfo[count]._frame = -1;
}
aa[0] = kernel_run_animation(kernel_name('T', 1), 0);
- scratch.animation_info[0]._active = -1;
+ aainfo[0]._active = -1;
}
static void room_420_daemon() {
- if (scratch.animation_info[0]._active) room_420_anim1();
- if (scratch.animation_info[1]._active) room_420_anim2();
- if (scratch.animation_info[2]._active) room_420_anim3();
- if (scratch.animation_info[3]._active) room_420_anim4();
+ if (aainfo[0]._active) room_420_anim1();
+ if (aainfo[1]._active) room_420_anim2();
+ if (aainfo[2]._active) room_420_anim3();
+ if (aainfo[3]._active) room_420_anim4();
}
void room_420_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);
+ for (AnimationInfo &ai : aainfo) ai.synchronize(s);
s.syncAsSint16LE(scratch._8e);
}
Commit: 6e5e50d5e8f542831de9a0d7a4692d2ab8ee2871
https://github.com/scummvm/scummvm/commit/6e5e50d5e8f542831de9a0d7a4692d2ab8ee2871
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2026-06-29T14:44:32+10:00
Commit Message:
MADS: FOREST: Fix Scratch array sizes in room 503
Changed paths:
engines/mads/madsv2/forest/rooms/room503.cpp
diff --git a/engines/mads/madsv2/forest/rooms/room503.cpp b/engines/mads/madsv2/forest/rooms/room503.cpp
index 97676ea7115..8d9ce9de656 100644
--- a/engines/mads/madsv2/forest/rooms/room503.cpp
+++ b/engines/mads/madsv2/forest/rooms/room503.cpp
@@ -44,24 +44,22 @@ namespace Forest {
namespace Rooms {
struct Scratch {
- int16 sprite[10]; /* Sprite series handles */
- int16 sequence[10]; /* Sequence handles */
- int16 animation[10]; /* Animation handles */
- AnimationInfo animation_info[13]; /* 13 entries: _val3/_val4 initialised for [0..11],
- _active/_frame for [1..12]; [10]._val3 = _90 flag,
- [11]._val3 = _98 flag */
+ int16 sprite[10]; /* 0x00 â sprite series handles */
+ int16 sequence[10]; /* 0x14 â sequence handles */
+ int16 animation[12]; /* 0x28 â animation handles; [10]=N2 anim, [11]=Z1 anim */
+ AnimationInfo animation_info[12]; /* 0x40 â 12 entries, one per animation slot */
+ int16 _pad_a0; /* 0xA0 unused */
+ int16 _a2; /* 0xA2 visit-count / playback-stage select */
int16 _pad_a4; /* 0xA4 unused */
- int16 _a6; /* visit-count / playback-stage select */
+ int16 _pad_a6; /* 0xA6 unused */
int16 _pad_a8; /* 0xA8 unused */
- int16 _pad_aa; /* 0xAA unused */
+ int16 _aa; /* 0xAA converse-anim handle (kernel_reset_animation / kernel_synch) */
int16 _pad_ac; /* 0xAC unused */
- int16 _ae; /* converse-anim handle (kernel_reset_animation / kernel_synch) */
- int16 _pad_b0; /* 0xB0 unused */
- int16 _b2; /* converse-anim handle (kernel_abort_animation / global_anim3) */
- int16 _b4; /* ambient audio num arg / uninitialised flag */
- int16 _b6; /* ambient audio playing flag */
- int16 _b8; /* ambient loop active flag */
- int16 _ba; /* playback variant (1 / 2 / -1) */
+ int16 _ae; /* 0xAE converse-anim handle (kernel_abort_animation / global_anim3) */
+ int16 _b0; /* 0xB0 ambient audio num arg / uninitialised flag */
+ int16 _b2; /* 0xB2 ambient audio playing flag */
+ int16 _b4; /* 0xB4 ambient loop active flag */
+ int16 _b6; /* 0xB6 playback variant (1 / 2 / -1) */
};
static Scratch scratch;
@@ -90,9 +88,9 @@ static void room_503_anim10();
static void room_503_anim11();
static void room_503_init() {
- scratch._b8 = -1;
scratch._b4 = -1;
- scratch._ba = 1;
+ scratch._b0 = -1;
+ scratch._b6 = 1;
global[g009] = -1;
if (previous_room != KERNEL_RESTORING_GAME) {
@@ -100,10 +98,10 @@ static void room_503_init() {
player.commands_allowed = false;
for (int count = 0; count < 12; count++) {
- aainfo[count]._val3 = 0;
- aainfo[count]._val4 = -1;
- aainfo[count + 1]._active = 0;
- aainfo[count + 1]._frame = 0;
+ aainfo[count]._active = 0;
+ aainfo[count]._frame = -1;
+ aainfo[count]._val3 = 0;
+ aainfo[count]._val4 = 0;
}
if (previous_room != 199) {
@@ -146,46 +144,46 @@ static void room_503_init1() {
if (global[g100] != 0) {
global_midi_play(14);
viewing_at_y = 22;
- scratch._ba = 2;
- aainfo[0]._active = kernel_run_animation(kernel_name('N', 2), 106);
- aainfo[10]._val3 = -1;
+ scratch._b6 = 2;
+ aa[10] = kernel_run_animation(kernel_name('N', 2), 106);
+ aainfo[10]._active = -1;
aa[8] = kernel_run_animation(kernel_name('F', 1), 0);
- aainfo[8]._val3 = -1;
- scratch._a6 = 104;
+ aainfo[8]._active = -1;
+ scratch._a2 = 104;
flags[33] = 4;
} else {
aa[9] = kernel_run_animation(kernel_name('N', 1), 106);
- aainfo[9]._val3 = -1;
- aainfo[0]._active = kernel_run_animation(kernel_name('N', 2), 106);
- aainfo[10]._val3 = -1;
+ aainfo[9]._active = -1;
+ aa[10] = kernel_run_animation(kernel_name('N', 2), 106);
+ aainfo[10]._active = -1;
- if (aainfo[9]._val3 == -1) {
+ if (aainfo[9]._active == -1) {
kernel.trigger_setup_mode = 1;
digi_initial_volume(30);
digi_play_build(503, '_', 1, 2);
- scratch._b8 = 1;
+ scratch._b4 = 1;
}
- aainfo[0]._frame = kernel_run_animation(kernel_name('Z', 1), 0);
- aainfo[11]._val3 = -1;
+ aa[11] = kernel_run_animation(kernel_name('Z', 1), 0);
+ aainfo[11]._active = -1;
}
} else {
aa[9] = kernel_run_animation(kernel_name('N', 1), 106);
- aainfo[9]._val3 = -1;
- aainfo[0]._active = kernel_run_animation(kernel_name('N', 2), 106);
- aainfo[10]._val3 = -1;
+ aainfo[9]._active = -1;
+ aa[10] = kernel_run_animation(kernel_name('N', 2), 106);
+ aainfo[10]._active = -1;
- if (aainfo[9]._val3 == -1) {
+ if (aainfo[9]._active == -1) {
kernel.trigger_setup_mode = 1;
digi_initial_volume(30);
digi_play_build(503, '_', 1, 2);
- scratch._b8 = 1;
+ scratch._b4 = 1;
}
global_midi_play(6);
aa[0] = kernel_run_animation(kernel_name('y', 2), 100);
- aainfo[0]._val3 = -1;
- scratch._a6 = 52;
+ aainfo[0]._active = -1;
+ scratch._a2 = 52;
}
}
@@ -195,9 +193,9 @@ static void room_503_init2() {
player.walker_visible = false;
player.commands_allowed = false;
mouse_hide();
- scratch._ba = -1;
+ scratch._b6 = -1;
aa[6] = kernel_run_animation(kernel_name('F', 2), 0);
- aainfo[6]._val3 = -1;
+ aainfo[6]._active = -1;
}
static void room_503_init3() {
@@ -209,80 +207,80 @@ static void room_503_init3() {
if (global[g100] != 0) {
global_midi_play(14);
viewing_at_y = 22;
- scratch._ba = 2;
- aainfo[0]._active = kernel_run_animation(kernel_name('N', 2), 106);
- aainfo[10]._val3 = -1;
+ scratch._b6 = 2;
+ aa[10] = kernel_run_animation(kernel_name('N', 2), 106);
+ aainfo[10]._active = -1;
aa[8] = kernel_run_animation(kernel_name('F', 1), 0);
- aainfo[8]._val3 = -1;
- scratch._a6 = 104;
+ aainfo[8]._active = -1;
+ scratch._a2 = 104;
flags[33] = 4;
} else {
aa[9] = kernel_run_animation(kernel_name('N', 1), 106);
- aainfo[9]._val3 = -1;
- aainfo[0]._active = kernel_run_animation(kernel_name('N', 2), 106);
- aainfo[10]._val3 = -1;
+ aainfo[9]._active = -1;
+ aa[10] = kernel_run_animation(kernel_name('N', 2), 106);
+ aainfo[10]._active = -1;
- if (aainfo[9]._val3 == -1) {
+ if (aainfo[9]._active == -1) {
kernel.trigger_setup_mode = 1;
digi_initial_volume(30);
digi_play_build(503, '_', 1, 2);
- scratch._b8 = 1;
+ scratch._b4 = 1;
}
- aainfo[0]._frame = kernel_run_animation(kernel_name('Z', 1), 0);
- aainfo[11]._val3 = -1;
+ aa[11] = kernel_run_animation(kernel_name('Z', 1), 0);
+ aainfo[11]._active = -1;
}
} else {
aa[9] = kernel_run_animation(kernel_name('N', 1), 106);
- aainfo[9]._val3 = -1;
- aainfo[0]._active = kernel_run_animation(kernel_name('N', 2), 106);
- aainfo[10]._val3 = -1;
+ aainfo[9]._active = -1;
+ aa[10] = kernel_run_animation(kernel_name('N', 2), 106);
+ aainfo[10]._active = -1;
- if (aainfo[9]._val3 == -1) {
+ if (aainfo[9]._active == -1) {
kernel.trigger_setup_mode = 1;
digi_initial_volume(30);
digi_play_build(503, '_', 1, 2);
- scratch._b8 = 1;
+ scratch._b4 = 1;
}
aa[0] = kernel_run_animation(kernel_name('y', 1), 107);
- aainfo[0]._val3 = -1;
- scratch._a6 = 50;
+ aainfo[0]._active = -1;
+ scratch._a2 = 50;
}
}
static void room_503_anim1() {
- if (kernel_anim[aa[0]].frame != aainfo[0]._val4)
- aainfo[0]._val4 = kernel_anim[aa[0]].frame;
+ if (kernel_anim[aa[0]].frame != aainfo[0]._frame)
+ aainfo[0]._frame = kernel_anim[aa[0]].frame;
if (global[player_hyperwalked] == -1) {
- aainfo[0]._val4 = scratch._a6 - 1;
- kernel_reset_animation(aa[0], aainfo[0]._val4);
+ aainfo[0]._frame = scratch._a2 - 1;
+ kernel_reset_animation(aa[0], aainfo[0]._frame);
}
}
static void room_503_anim2() {
- if (kernel_anim[aainfo[0]._frame].frame == aainfo[11]._val4)
+ if (kernel_anim[aa[11]].frame == aainfo[11]._frame)
return;
- aainfo[11]._val4 = kernel_anim[aainfo[0]._frame].frame;
- if (aainfo[11]._val4 == 69)
+ aainfo[11]._frame = kernel_anim[aa[11]].frame;
+ if (aainfo[11]._frame == 69)
new_room = 501;
}
static void room_503_anim3() {
- if (kernel_anim[aa[6]].frame != aainfo[6]._val4) {
- aainfo[6]._val4 = kernel_anim[aa[6]].frame;
- int frame = aainfo[6]._val4;
+ if (kernel_anim[aa[6]].frame != aainfo[6]._frame) {
+ aainfo[6]._frame = kernel_anim[aa[6]].frame;
+ int frame = aainfo[6]._frame;
if (frame == 50) {
kernel_abort_animation(aa[6]);
- aainfo[6]._val3 = 0;
+ aainfo[6]._active = 0;
aa[7] = kernel_run_animation(kernel_name('F', 3), 0);
- aainfo[7]._val3 = -1;
+ aainfo[7]._active = -1;
kernel_synch(KERNEL_ANIM, aa[7], KERNEL_ANIM, aa[6]);
digi_initial_volume(50);
digi_play_build(503, '_', 2, 3);
digi_val2 = -1;
- scratch._b6 = 1;
+ scratch._b2 = 1;
} else if (frame < 50) {
if (frame == 1) {
kernel_seq_delete(seq[0]);
@@ -293,26 +291,26 @@ static void room_503_anim3() {
digi_initial_volume(50);
digi_play_build(503, '_', 2, 3);
digi_val2 = -1;
- scratch._b6 = 1;
+ scratch._b2 = 1;
} else if (frame == 10) {
digi_play_build(503, 'r', 7, 1);
- scratch._b4 = 10;
+ scratch._b0 = 10;
}
}
}
if (kernel.trigger == 7 || kernel.trigger == 28) {
- if (scratch._b4 == 10)
- scratch._b4 = -1;
+ if (scratch._b0 == 10)
+ scratch._b0 = -1;
}
if (kernel.trigger == 8) {
- if (scratch._b6 == 1) {
+ if (scratch._b2 == 1) {
digi_initial_volume(80);
- scratch._b6++;
+ scratch._b2++;
digi_play_build(503, '_', 2, 3);
digi_val2 = -1;
- } else if (scratch._b6 == 2) {
+ } else if (scratch._b2 == 2) {
digi_initial_volume(100);
- scratch._b6 = 2;
+ scratch._b2 = 2;
digi_play_build(503, '_', 2, 3);
digi_val2 = -1;
}
@@ -320,31 +318,31 @@ static void room_503_anim3() {
}
static void room_503_anim4() {
- if (kernel_anim[aa[7]].frame != aainfo[7]._val4) {
- aainfo[7]._val4 = kernel_anim[aa[7]].frame;
- int frame = aainfo[7]._val4;
+ if (kernel_anim[aa[7]].frame != aainfo[7]._frame) {
+ aainfo[7]._frame = kernel_anim[aa[7]].frame;
+ int frame = aainfo[7]._frame;
if (frame == 59) {
new_room = 510;
} else if (frame < 59) {
if (frame == 1) {
digi_initial_volume(30);
digi_play_build(503, '_', 3, 3);
- scratch._b6 = 1;
+ scratch._b2 = 1;
digi_val2 = -1;
} else if (frame == 30) {
digi_play_build(503, 'e', 5, 1);
- scratch._b4 = 30;
+ scratch._b0 = 30;
}
}
}
if (kernel.trigger == 7 || kernel.trigger == 28) {
- if (scratch._b4 == 30)
- scratch._b4 = -1;
+ if (scratch._b0 == 30)
+ scratch._b0 = -1;
}
if (kernel.trigger == 8) {
- if (scratch._b6 == 1) {
+ if (scratch._b2 == 1) {
digi_initial_volume(30);
- scratch._b6 = 1;
+ scratch._b2 = 1;
digi_play_build(503, '_', 3, 3);
digi_val2 = -1;
}
@@ -352,9 +350,9 @@ static void room_503_anim4() {
}
static void room_503_anim5() {
- if (kernel_anim[aa[8]].frame != aainfo[8]._val4) {
- aainfo[8]._val4 = kernel_anim[aa[8]].frame;
- int frame = aainfo[8]._val4;
+ if (kernel_anim[aa[8]].frame != aainfo[8]._frame) {
+ aainfo[8]._frame = kernel_anim[aa[8]].frame;
+ int frame = aainfo[8]._frame;
if (frame == 104) {
new_room = 509;
} else if (frame < 104) {
@@ -362,192 +360,193 @@ static void room_503_anim5() {
digi_initial_volume(50);
digi_play_build(503, '_', 2, 3);
digi_val2 = -1;
- scratch._b6 = 1;
+ scratch._b2 = 1;
} else if (frame == 3) {
digi_play_build(503, 'r', 6, 1);
- scratch._b4 = 3;
+ scratch._b0 = 3;
}
}
}
if (kernel.trigger == 7 || kernel.trigger == 28) {
- if (scratch._b4 == 3)
- scratch._b4 = -1;
+ if (scratch._b0 == 3)
+ scratch._b0 = -1;
}
if (kernel.trigger == 8) {
- if (scratch._b6 == 1) {
+ if (scratch._b2 == 1) {
digi_initial_volume(30);
- scratch._b6 = 1;
+ scratch._b2 = 1;
digi_play_build(503, '_', 2, 3);
digi_val2 = -1;
}
}
}
+
static void room_503_anim6() {
- if (kernel_anim[aa[1]].frame != aainfo[1]._val4) {
- aainfo[1]._val4 = kernel_anim[aa[1]].frame;
- switch (aainfo[1]._val4) {
+ if (kernel_anim[aa[1]].frame != aainfo[1]._frame) {
+ aainfo[1]._frame = kernel_anim[aa[1]].frame;
+ switch (aainfo[1]._frame) {
case 5:
- aainfo[2]._active = 11;
+ aainfo[1]._val3 = 11;
digi_play_build(503, 'e', 1, 1);
- scratch._b4 = 5;
+ scratch._b0 = 5;
break;
case 10:
- if (aainfo[2]._active == 11) {
- aainfo[1]._val4 = 5;
+ if (aainfo[1]._val3 == 11) {
+ aainfo[1]._frame = 5;
kernel_reset_animation(aa[1], 5);
}
break;
case 14:
- if (aainfo[2]._active == 13) {
- aainfo[1]._val4 = 13;
+ if (aainfo[1]._val3 == 13) {
+ aainfo[1]._frame = 13;
kernel_reset_animation(aa[1], 13);
}
break;
case 15:
- aainfo[2]._active = 15;
+ aainfo[1]._val3 = 15;
digi_play_build(503, 'g', 1, 1);
- scratch._b4 = 15;
+ scratch._b0 = 15;
break;
case 20:
- if (aainfo[2]._active == 15) {
- aainfo[1]._val4 = 15;
+ if (aainfo[1]._val3 == 15) {
+ aainfo[1]._frame = 15;
kernel_reset_animation(aa[1], 15);
}
break;
case 24:
- if (aainfo[2]._active == 13) {
- aainfo[1]._val4 = 23;
+ if (aainfo[1]._val3 == 13) {
+ aainfo[1]._frame = 23;
kernel_reset_animation(aa[1], 23);
}
break;
case 25:
- aainfo[2]._active = 12;
+ aainfo[1]._val3 = 12;
digi_play_build(503, 'r', 1, 1);
- scratch._b4 = 25;
+ scratch._b0 = 25;
break;
case 30:
- if (aainfo[2]._active == 12) {
- aainfo[1]._val4 = 25;
+ if (aainfo[1]._val3 == 12) {
+ aainfo[1]._frame = 25;
kernel_reset_animation(aa[1], 25);
}
break;
case 34:
- if (aainfo[2]._active == 13) {
- aainfo[1]._val4 = 33;
+ if (aainfo[1]._val3 == 13) {
+ aainfo[1]._frame = 33;
kernel_reset_animation(aa[1], 33);
}
break;
case 35:
- aainfo[2]._active = 15;
+ aainfo[1]._val3 = 15;
digi_play_build(503, 'g', 2, 1);
- scratch._b4 = 35;
+ scratch._b0 = 35;
break;
case 40:
- if (aainfo[2]._active == 15) {
- aainfo[1]._val4 = 35;
+ if (aainfo[1]._val3 == 15) {
+ aainfo[1]._frame = 35;
kernel_reset_animation(aa[1], 35);
}
break;
case 44:
- if (aainfo[2]._active == 13) {
- aainfo[1]._val4 = 43;
+ if (aainfo[1]._val3 == 13) {
+ aainfo[1]._frame = 43;
kernel_reset_animation(aa[1], 43);
}
break;
case 45:
- aainfo[2]._active = 12;
+ aainfo[1]._val3 = 12;
digi_play_build(503, 'r', 2, 1);
- scratch._b4 = 45;
+ scratch._b0 = 45;
break;
case 50:
- if (aainfo[2]._active == 12) {
- aainfo[1]._val4 = 45;
+ if (aainfo[1]._val3 == 12) {
+ aainfo[1]._frame = 45;
kernel_reset_animation(aa[1], 45);
}
break;
case 54:
- if (aainfo[2]._active == 13) {
- aainfo[1]._val4 = 53;
+ if (aainfo[1]._val3 == 13) {
+ aainfo[1]._frame = 53;
kernel_reset_animation(aa[1], 53);
}
break;
case 55:
- aainfo[2]._active = 15;
+ aainfo[1]._val3 = 15;
digi_play_build(503, 'g', 3, 1);
- scratch._b4 = 55;
+ scratch._b0 = 55;
break;
case 60:
- if (aainfo[2]._active == 15) {
- aainfo[1]._val4 = 55;
+ if (aainfo[1]._val3 == 15) {
+ aainfo[1]._frame = 55;
kernel_reset_animation(aa[1], 55);
}
break;
case 64:
- if (aainfo[2]._active == 13) {
- aainfo[1]._val4 = 63;
+ if (aainfo[1]._val3 == 13) {
+ aainfo[1]._frame = 63;
kernel_reset_animation(aa[1], 63);
}
break;
case 65:
- aainfo[2]._active = 12;
+ aainfo[1]._val3 = 12;
digi_play_build(503, 'r', 3, 1);
- scratch._b4 = 65;
+ scratch._b0 = 65;
break;
case 70:
- if (aainfo[2]._active == 12) {
- aainfo[1]._val4 = 65;
+ if (aainfo[1]._val3 == 12) {
+ aainfo[1]._frame = 65;
kernel_reset_animation(aa[1], 65);
}
break;
case 74:
- if (aainfo[2]._active == 13) {
- aainfo[1]._val4 = 73;
+ if (aainfo[1]._val3 == 13) {
+ aainfo[1]._frame = 73;
kernel_reset_animation(aa[1], 73);
}
break;
case 75:
- aainfo[2]._active = 11;
+ aainfo[1]._val3 = 11;
digi_play_build(503, 'e', 2, 1);
- scratch._b4 = 75;
+ scratch._b0 = 75;
break;
case 80:
- if (aainfo[2]._active == 11) {
- aainfo[1]._val4 = 75;
+ if (aainfo[1]._val3 == 11) {
+ aainfo[1]._frame = 75;
kernel_reset_animation(aa[1], 75);
}
break;
case 84:
- if (aainfo[2]._active == 13) {
- aainfo[1]._val4 = 83;
+ if (aainfo[1]._val3 == 13) {
+ aainfo[1]._frame = 83;
kernel_reset_animation(aa[1], 83);
}
break;
case 85:
- aainfo[2]._active = 12;
+ aainfo[1]._val3 = 12;
digi_play_build(503, 'r', 4, 1);
- scratch._b4 = 85;
+ scratch._b0 = 85;
break;
case 90:
- if (aainfo[2]._active == 12) {
- aainfo[1]._val4 = 85;
+ if (aainfo[1]._val3 == 12) {
+ aainfo[1]._frame = 85;
kernel_reset_animation(aa[1], 85);
}
break;
case 94:
- if (aainfo[2]._active == 13) {
- aainfo[1]._val4 = 93;
+ if (aainfo[1]._val3 == 13) {
+ aainfo[1]._frame = 93;
kernel_reset_animation(aa[1], 93);
}
break;
case 95:
dont_frag_the_palette();
kernel_abort_animation(aa[1]);
- aainfo[1]._val3 = 0;
+ aainfo[1]._active = 0;
aa[2] = kernel_run_animation("*RM503T21", 0);
- aainfo[2]._val3 = -1;
+ aainfo[2]._active = -1;
kernel_synch(KERNEL_ANIM, aa[2], KERNEL_ANIM, aa[1]);
digi_initial_volume(20);
- scratch._b4 = 1;
+ scratch._b0 = 1;
digi_play_build(503, '_', 1, 3);
digi_val2 = -1;
break;
@@ -555,311 +554,313 @@ static void room_503_anim6() {
}
if (kernel.trigger == 7 || kernel.trigger == 28) {
- switch (scratch._b4) {
+ switch (scratch._b0) {
case 5:
kernel_timing_trigger(30, 28);
- aainfo[2]._active = 13;
- scratch._b4 = 6;
+ aainfo[1]._val3 = 13;
+ scratch._b0 = 6;
break;
case 6:
- aainfo[2]._active = 14;
- aainfo[1]._val4 = 10;
+ aainfo[1]._val3 = 14;
+ aainfo[1]._frame = 10;
kernel_reset_animation(aa[1], 10);
- scratch._b4 = -1;
+ scratch._b0 = -1;
break;
case 15:
kernel_timing_trigger(30, 28);
- aainfo[2]._active = 13;
- scratch._b4 = 16;
+ aainfo[1]._val3 = 13;
+ scratch._b0 = 16;
break;
case 16:
- aainfo[2]._active = 14;
- aainfo[1]._val4 = 20;
+ aainfo[1]._val3 = 14;
+ aainfo[1]._frame = 20;
kernel_reset_animation(aa[1], 20);
- scratch._b4 = -1;
+ scratch._b0 = -1;
break;
case 25:
kernel_timing_trigger(30, 28);
- aainfo[2]._active = 13;
- scratch._b4 = 26;
+ aainfo[1]._val3 = 13;
+ scratch._b0 = 26;
break;
case 26:
- aainfo[2]._active = 14;
- aainfo[1]._val4 = 30;
+ aainfo[1]._val3 = 14;
+ aainfo[1]._frame = 30;
kernel_reset_animation(aa[1], 30);
- scratch._b4 = -1;
+ scratch._b0 = -1;
break;
case 35:
kernel_timing_trigger(30, 28);
- aainfo[2]._active = 13;
- scratch._b4 = 36;
+ aainfo[1]._val3 = 13;
+ scratch._b0 = 36;
break;
case 36:
- aainfo[2]._active = 14;
- aainfo[1]._val4 = 41;
+ aainfo[1]._val3 = 14;
+ aainfo[1]._frame = 41;
kernel_reset_animation(aa[1], 41);
- scratch._b4 = -1;
+ scratch._b0 = -1;
break;
case 45:
kernel_timing_trigger(30, 28);
- aainfo[2]._active = 13;
- scratch._b4 = 46;
+ aainfo[1]._val3 = 13;
+ scratch._b0 = 46;
break;
case 46:
- aainfo[2]._active = 14;
- aainfo[1]._val4 = 50;
+ aainfo[1]._val3 = 14;
+ aainfo[1]._frame = 50;
kernel_reset_animation(aa[1], 50);
- scratch._b4 = -1;
+ scratch._b0 = -1;
break;
case 55:
kernel_timing_trigger(30, 28);
- aainfo[2]._active = 13;
- scratch._b4 = 56;
+ aainfo[1]._val3 = 13;
+ scratch._b0 = 56;
break;
case 56:
- aainfo[2]._active = 14;
- aainfo[1]._val4 = 60;
+ aainfo[1]._val3 = 14;
+ aainfo[1]._frame = 60;
kernel_reset_animation(aa[1], 60);
- scratch._b4 = -1;
+ scratch._b0 = -1;
break;
case 65:
kernel_timing_trigger(30, 28);
- aainfo[2]._active = 13;
- scratch._b4 = 66;
+ aainfo[1]._val3 = 13;
+ scratch._b0 = 66;
break;
case 66:
- aainfo[2]._active = 14;
- aainfo[1]._val4 = 70;
+ aainfo[1]._val3 = 14;
+ aainfo[1]._frame = 70;
kernel_reset_animation(aa[1], 70);
- scratch._b4 = -1;
+ scratch._b0 = -1;
break;
case 75:
kernel_timing_trigger(30, 28);
- aainfo[2]._active = 13;
- scratch._b4 = 76;
+ aainfo[1]._val3 = 13;
+ scratch._b0 = 76;
break;
case 76:
- aainfo[2]._active = 14;
- aainfo[1]._val4 = 80;
+ aainfo[1]._val3 = 14;
+ aainfo[1]._frame = 80;
kernel_reset_animation(aa[1], 80);
- scratch._b4 = -1;
+ scratch._b0 = -1;
break;
case 85:
kernel_timing_trigger(30, 28);
- aainfo[2]._active = 13;
- scratch._b4 = 86;
+ aainfo[1]._val3 = 13;
+ scratch._b0 = 86;
break;
case 86:
- aainfo[2]._active = 14;
- aainfo[1]._val4 = 91;
+ aainfo[1]._val3 = 14;
+ aainfo[1]._frame = 91;
kernel_reset_animation(aa[1], 91);
- scratch._b4 = -1;
+ scratch._b0 = -1;
break;
}
}
if (kernel.trigger == 8) {
- if (scratch._b4 == 1) {
+ if (scratch._b0 == 1) {
digi_initial_volume(20);
- scratch._b4 = 1;
+ scratch._b0 = 1;
digi_play_build(503, '_', 1, 3);
digi_val2 = -1;
}
}
}
+
static void room_503_anim7() {
- if (kernel_anim[aa[2]].frame == aainfo[2]._val4)
+ if (kernel_anim[aa[2]].frame == aainfo[2]._frame)
return;
- aainfo[2]._val4 = kernel_anim[aa[2]].frame;
- if (aainfo[2]._val4 == 31) {
+ aainfo[2]._frame = kernel_anim[aa[2]].frame;
+ if (aainfo[2]._frame == 31) {
dont_frag_the_palette();
kernel_abort_animation(aa[2]);
- aainfo[2]._val3 = 0;
+ aainfo[2]._active = 0;
aa[3] = kernel_run_animation("*RM503T22", 0);
- aainfo[3]._val3 = -1;
+ aainfo[3]._active = -1;
kernel_synch(KERNEL_ANIM, aa[3], KERNEL_ANIM, aa[2]);
digi_initial_volume(20);
- scratch._b4 = 1;
+ scratch._b0 = 1;
digi_play_build(503, '_', 1, 3);
digi_val2 = -1;
}
}
static void room_503_anim8() {
- if (kernel_anim[aa[3]].frame == aainfo[3]._val4)
+ if (kernel_anim[aa[3]].frame == aainfo[3]._frame)
goto check_trigger;
- aainfo[3]._val4 = kernel_anim[aa[3]].frame;
+ aainfo[3]._frame = kernel_anim[aa[3]].frame;
- if (aainfo[3]._val4 == 5) {
- aainfo[4]._active = 15;
+ if (aainfo[3]._frame == 5) {
+ aainfo[3]._val3 = 15;
digi_play_build(503, 'g', 4, 1);
- scratch._b4 = 5;
- } else if (aainfo[3]._val4 == 10) {
- if (aainfo[4]._active == 15) {
- aainfo[3]._val4 = 5;
+ scratch._b0 = 5;
+ } else if (aainfo[3]._frame == 10) {
+ if (aainfo[3]._val3 == 15) {
+ aainfo[3]._frame = 5;
kernel_reset_animation(aa[3], 5);
}
- } else if (aainfo[3]._val4 == 14) {
- if (aainfo[4]._active == 13) {
- aainfo[3]._val4 = 13;
+ } else if (aainfo[3]._frame == 14) {
+ if (aainfo[3]._val3 == 13) {
+ aainfo[3]._frame = 13;
kernel_reset_animation(aa[3], 13);
}
- } else if (aainfo[3]._val4 == 42) {
+ } else if (aainfo[3]._frame == 42) {
dont_frag_the_palette();
kernel_abort_animation(aa[3]);
- aainfo[3]._val3 = 0;
+ aainfo[3]._active = 0;
aa[4] = kernel_run_animation(kernel_name('T', 3), 0);
- aainfo[4]._val3 = -1;
+ aainfo[4]._active = -1;
kernel_synch(KERNEL_ANIM, aa[3], KERNEL_ANIM, aa[4]);
digi_initial_volume(20);
- scratch._b4 = 1;
+ scratch._b0 = 1;
digi_play_build(503, '_', 1, 3);
digi_val2 = -1;
}
check_trigger:
if (kernel.trigger == 7 || kernel.trigger == 28) {
- if (scratch._b4 == 5) {
+ if (scratch._b0 == 5) {
kernel_timing_trigger(30, 28);
- aainfo[4]._active = 13;
- scratch._b4 = 6;
- } else if (scratch._b4 == 6) {
- aainfo[4]._active = 14;
- aainfo[3]._val4 = 10;
+ aainfo[3]._val3 = 13;
+ scratch._b0 = 6;
+ } else if (scratch._b0 == 6) {
+ aainfo[3]._val3 = 14;
+ aainfo[3]._frame = 10;
kernel_reset_animation(aa[3], 10);
- scratch._b4 = -1;
+ scratch._b0 = -1;
}
}
}
+
static void room_503_anim9() {
- if (kernel_anim[aa[4]].frame != aainfo[4]._val4) {
- aainfo[4]._val4 = kernel_anim[aa[4]].frame;
- switch (aainfo[4]._val4) {
+ if (kernel_anim[aa[4]].frame != aainfo[4]._frame) {
+ aainfo[4]._frame = kernel_anim[aa[4]].frame;
+ switch (aainfo[4]._frame) {
case 5:
- aainfo[5]._active = 11;
+ aainfo[4]._val3 = 11;
digi_play_build(503, 'e', 3, 1);
- scratch._b4 = 5;
+ scratch._b0 = 5;
break;
case 9:
- if (aainfo[5]._active == 11) {
- aainfo[4]._val4 = 5;
+ if (aainfo[4]._val3 == 11) {
+ aainfo[4]._frame = 5;
kernel_reset_animation(aa[4], 5);
}
break;
case 18:
- if (aainfo[5]._active == 13) {
- aainfo[4]._val4 = 17;
+ if (aainfo[4]._val3 == 13) {
+ aainfo[4]._frame = 17;
kernel_reset_animation(aa[4], 17);
}
break;
case 19:
- aainfo[5]._active = 15;
+ aainfo[4]._val3 = 15;
digi_play_build(503, 'g', 5, 1);
- scratch._b4 = 19;
+ scratch._b0 = 19;
break;
case 22:
- if (aainfo[5]._active == 15) {
- aainfo[4]._val4 = 19;
+ if (aainfo[4]._val3 == 15) {
+ aainfo[4]._frame = 19;
kernel_reset_animation(aa[4], 19);
}
break;
case 25:
- if (aainfo[5]._active == 13) {
- aainfo[4]._val4 = 24;
+ if (aainfo[4]._val3 == 13) {
+ aainfo[4]._frame = 24;
kernel_reset_animation(aa[4], 24);
}
break;
case 26:
- aainfo[5]._active = 11;
+ aainfo[4]._val3 = 11;
digi_play_build(503, 'e', 4, 1);
- scratch._b4 = 26;
+ scratch._b0 = 26;
break;
case 30:
- if (aainfo[5]._active == 11) {
- aainfo[4]._val4 = 26;
+ if (aainfo[4]._val3 == 11) {
+ aainfo[4]._frame = 26;
kernel_reset_animation(aa[4], 26);
}
break;
case 36:
- if (aainfo[5]._active == 13) {
- aainfo[4]._val4 = 35;
+ if (aainfo[4]._val3 == 13) {
+ aainfo[4]._frame = 35;
kernel_reset_animation(aa[4], 35);
}
break;
case 37:
- aainfo[5]._active = 16;
+ aainfo[4]._val3 = 16;
digi_play_build(503, 'b', 1, 1);
- scratch._b4 = 37;
+ scratch._b0 = 37;
break;
case 45:
- if (aainfo[5]._active == 16) {
- aainfo[4]._val4 = 37;
+ if (aainfo[4]._val3 == 16) {
+ aainfo[4]._frame = 37;
kernel_reset_animation(aa[4], 37);
}
break;
case 50:
- if (aainfo[5]._active == 13) {
- aainfo[4]._val4 = 49;
+ if (aainfo[4]._val3 == 13) {
+ aainfo[4]._frame = 49;
kernel_reset_animation(aa[4], 49);
}
break;
case 51:
- aainfo[5]._active = 12;
+ aainfo[4]._val3 = 12;
digi_play_build(503, 'r', 5, 1);
- scratch._b4 = 51;
+ scratch._b0 = 51;
break;
case 55:
- if (aainfo[5]._active == 12) {
- aainfo[4]._val4 = 51;
+ if (aainfo[4]._val3 == 12) {
+ aainfo[4]._frame = 51;
kernel_reset_animation(aa[4], 51);
}
break;
case 60:
- if (aainfo[5]._active == 13) {
- aainfo[4]._val4 = 59;
+ if (aainfo[4]._val3 == 13) {
+ aainfo[4]._frame = 59;
kernel_reset_animation(aa[4], 59);
}
break;
case 61:
- aainfo[5]._active = 15;
+ aainfo[4]._val3 = 15;
digi_play_build(503, 'g', 6, 1);
- scratch._b4 = 61;
+ scratch._b0 = 61;
break;
case 66:
- if (aainfo[5]._active == 15) {
- aainfo[4]._val4 = 61;
+ if (aainfo[4]._val3 == 15) {
+ aainfo[4]._frame = 61;
kernel_reset_animation(aa[4], 61);
}
break;
case 69:
- if (aainfo[5]._active == 13) {
- aainfo[4]._val4 = 68;
+ if (aainfo[4]._val3 == 13) {
+ aainfo[4]._frame = 68;
kernel_reset_animation(aa[4], 68);
}
break;
case 70:
- aainfo[5]._active = 10;
+ aainfo[4]._val3 = 10;
digi_play_build(503, 'b', 2, 1);
- scratch._b4 = 70;
+ scratch._b0 = 70;
break;
case 73:
- if (aainfo[5]._active == 10) {
- aainfo[4]._val4 = 70;
+ if (aainfo[4]._val3 == 10) {
+ aainfo[4]._frame = 70;
kernel_reset_animation(aa[4], 70);
}
break;
case 74:
- if (aainfo[5]._active == 13) {
- aainfo[4]._val4 = 73;
+ if (aainfo[4]._val3 == 13) {
+ aainfo[4]._frame = 73;
kernel_reset_animation(aa[4], 73);
} else {
dont_frag_the_palette();
kernel_abort_animation(aa[4]);
- aainfo[4]._val3 = 0;
+ aainfo[4]._active = 0;
aa[5] = kernel_run_animation(kernel_name('T', 4), 0);
- aainfo[5]._val3 = -1;
+ aainfo[5]._active = -1;
kernel_synch(KERNEL_ANIM, aa[5], KERNEL_ANIM, aa[4]);
digi_initial_volume(20);
- scratch._b4 = 1;
+ scratch._b0 = 1;
digi_play_build(503, '_', 1, 3);
digi_val2 = -1;
}
@@ -868,160 +869,160 @@ static void room_503_anim9() {
}
if (kernel.trigger == 7 || kernel.trigger == 28) {
- switch (scratch._b4) {
+ switch (scratch._b0) {
case 5:
kernel_timing_trigger(30, 28);
- aainfo[5]._active = 13;
- scratch._b4 = 6;
+ aainfo[4]._val3 = 13;
+ scratch._b0 = 6;
break;
case 6:
- aainfo[5]._active = 14;
- aainfo[4]._val4 = 9;
+ aainfo[4]._val3 = 14;
+ aainfo[4]._frame = 9;
kernel_reset_animation(aa[4], 9);
- scratch._b4 = -1;
+ scratch._b0 = -1;
break;
case 19:
kernel_timing_trigger(30, 28);
- aainfo[5]._active = 13;
- scratch._b4 = 20;
+ aainfo[4]._val3 = 13;
+ scratch._b0 = 20;
break;
case 20:
- aainfo[5]._active = 14;
- aainfo[4]._val4 = 22;
+ aainfo[4]._val3 = 14;
+ aainfo[4]._frame = 22;
kernel_reset_animation(aa[4], 22);
- scratch._b4 = -1;
+ scratch._b0 = -1;
break;
case 26:
kernel_timing_trigger(30, 28);
- aainfo[5]._active = 13;
- scratch._b4 = 27;
+ aainfo[4]._val3 = 13;
+ scratch._b0 = 27;
break;
case 27:
- aainfo[5]._active = 14;
- aainfo[4]._val4 = 30;
+ aainfo[4]._val3 = 14;
+ aainfo[4]._frame = 30;
kernel_reset_animation(aa[4], 30);
- scratch._b4 = -1;
+ scratch._b0 = -1;
break;
case 37:
kernel_timing_trigger(30, 28);
- aainfo[5]._active = 13;
- scratch._b4 = 38;
+ aainfo[4]._val3 = 13;
+ scratch._b0 = 38;
break;
case 38:
- aainfo[5]._active = 14;
- aainfo[4]._val4 = 45;
+ aainfo[4]._val3 = 14;
+ aainfo[4]._frame = 45;
kernel_reset_animation(aa[4], 45);
- scratch._b4 = -1;
+ scratch._b0 = -1;
break;
case 51:
kernel_timing_trigger(30, 28);
- aainfo[5]._active = 13;
- scratch._b4 = 52;
+ aainfo[4]._val3 = 13;
+ scratch._b0 = 52;
break;
case 52:
- aainfo[5]._active = 14;
- aainfo[4]._val4 = 55;
+ aainfo[4]._val3 = 14;
+ aainfo[4]._frame = 55;
kernel_reset_animation(aa[4], 55);
- scratch._b4 = -1;
+ scratch._b0 = -1;
break;
case 61:
kernel_timing_trigger(30, 28);
- aainfo[5]._active = 13;
- scratch._b4 = 62;
+ aainfo[4]._val3 = 13;
+ scratch._b0 = 62;
break;
case 62:
- aainfo[5]._active = 14;
- aainfo[4]._val4 = 65;
+ aainfo[4]._val3 = 14;
+ aainfo[4]._frame = 65;
kernel_reset_animation(aa[4], 65);
- scratch._b4 = -1;
+ scratch._b0 = -1;
break;
case 70:
kernel_timing_trigger(30, 28);
- aainfo[5]._active = 13;
- scratch._b4 = 71;
+ aainfo[4]._val3 = 13;
+ scratch._b0 = 71;
break;
case 71:
- aainfo[5]._active = 14;
- aainfo[4]._val4 = 70;
+ aainfo[4]._val3 = 14;
+ aainfo[4]._frame = 70;
kernel_reset_animation(aa[4], 70);
- scratch._b4 = -1;
+ scratch._b0 = -1;
break;
}
}
}
static void room_503_anim10() {
- if (kernel_anim[aa[5]].frame != aainfo[5]._val4) {
- aainfo[5]._val4 = kernel_anim[aa[5]].frame;
- int frame = aainfo[5]._val4;
+ if (kernel_anim[aa[5]].frame != aainfo[5]._frame) {
+ aainfo[5]._frame = kernel_anim[aa[5]].frame;
+ int frame = aainfo[5]._frame;
if (frame == 40) {
midi_stop();
global[g100] = -1;
display_journal();
} else if (frame < 40) {
if (frame == 5) {
- aainfo[6]._active = 16;
+ aainfo[5]._val3 = 16;
digi_play_build(503, 'i', 1, 1);
- scratch._b4 = 5;
+ scratch._b0 = 5;
} else if (frame == 10) {
- if (aainfo[6]._active == 16) {
- aainfo[5]._val4 = 5;
+ if (aainfo[5]._val3 == 16) {
+ aainfo[5]._frame = 5;
kernel_reset_animation(aa[5], 5);
}
} else if (frame == 14) {
- if (aainfo[6]._active == 13) {
- aainfo[5]._val4 = 13;
+ if (aainfo[5]._val3 == 13) {
+ aainfo[5]._frame = 13;
kernel_reset_animation(aa[5], 13);
}
} else if (frame == 31) {
- aainfo[6]._active = 16;
+ aainfo[5]._val3 = 16;
digi_play_build(503, 'b', 3, 1);
- scratch._b4 = 31;
+ scratch._b0 = 31;
} else if (frame == 36) {
- if (aainfo[6]._active == 16) {
- aainfo[5]._val4 = 31;
+ if (aainfo[5]._val3 == 16) {
+ aainfo[5]._frame = 31;
kernel_reset_animation(aa[5], 31);
}
} else if (frame == 39) {
- if (aainfo[6]._active == 13) {
- aainfo[5]._val4 = 38;
+ if (aainfo[5]._val3 == 13) {
+ aainfo[5]._frame = 38;
kernel_reset_animation(aa[5], 38);
}
}
}
}
if (kernel.trigger == 7 || kernel.trigger == 28) {
- if (scratch._b4 == 5) {
+ if (scratch._b0 == 5) {
kernel_timing_trigger(30, 28);
- aainfo[6]._active = 13;
- scratch._b4 = 6;
- } else if (scratch._b4 == 6) {
- aainfo[6]._active = 14;
- aainfo[5]._val4 = 9;
+ aainfo[5]._val3 = 13;
+ scratch._b0 = 6;
+ } else if (scratch._b0 == 6) {
+ aainfo[5]._val3 = 14;
+ aainfo[5]._frame = 9;
kernel_reset_animation(aa[5], 9);
- scratch._b4 = -1;
- } else if (scratch._b4 == 31) {
+ scratch._b0 = -1;
+ } else if (scratch._b0 == 31) {
kernel_timing_trigger(30, 28);
- aainfo[6]._active = 13;
- scratch._b4 = 32;
- } else if (scratch._b4 == 32) {
- aainfo[6]._active = 14;
- aainfo[5]._val4 = 36;
+ aainfo[5]._val3 = 13;
+ scratch._b0 = 32;
+ } else if (scratch._b0 == 32) {
+ aainfo[5]._val3 = 14;
+ aainfo[5]._frame = 36;
kernel_reset_animation(aa[5], 36);
- scratch._b4 = -1;
+ scratch._b0 = -1;
}
}
}
static void room_503_anim11() {
- if (kernel_anim[aainfo[0]._active].frame == aainfo[10]._val4)
+ if (kernel_anim[aa[10]].frame == aainfo[10]._frame)
return;
- aainfo[10]._val4 = kernel_anim[aainfo[0]._active].frame;
+ aainfo[10]._frame = kernel_anim[aa[10]].frame;
- int frame = aainfo[10]._val4;
+ int frame = aainfo[10]._frame;
if (frame == 49) {
- aainfo[10]._val4 = 1;
- kernel_reset_animation(aainfo[0]._active, 1);
+ aainfo[10]._frame = 1;
+ kernel_reset_animation(aa[10], 1);
return;
}
if (frame > 49)
@@ -1029,28 +1030,28 @@ static void room_503_anim11() {
if (frame == 19 || frame == 30 || frame == 40) {
if (imath_random(0, 100) > 20) {
- aainfo[10]._val4--;
- kernel_reset_animation(aainfo[0]._active, aainfo[10]._val4);
+ aainfo[10]._frame--;
+ kernel_reset_animation(aa[10], aainfo[10]._frame);
}
} else if (frame == 34 || frame == 46) {
if (imath_random(0, 100) > 40) {
- aainfo[10]._val4--;
- kernel_reset_animation(aainfo[0]._active, aainfo[10]._val4);
+ aainfo[10]._frame--;
+ kernel_reset_animation(aa[10], aainfo[10]._frame);
}
} else if (frame == 20) {
if (imath_random(0, 100) > 60) {
- aainfo[10]._val4 -= 2;
- kernel_reset_animation(aainfo[0]._active, aainfo[10]._val4);
+ aainfo[10]._frame -= 2;
+ kernel_reset_animation(aa[10], aainfo[10]._frame);
}
}
}
static void room_503_anim12() {
- if (kernel_anim[aa[9]].frame == aainfo[9]._val4)
+ if (kernel_anim[aa[9]].frame == aainfo[9]._frame)
return;
- aainfo[9]._val4 = kernel_anim[aa[9]].frame;
- if (aainfo[9]._val4 == 49) {
- aainfo[9]._val4 = 1;
+ aainfo[9]._frame = kernel_anim[aa[9]].frame;
+ if (aainfo[9]._frame == 49) {
+ aainfo[9]._frame = 1;
kernel_reset_animation(aa[9], 1);
}
}
@@ -1063,32 +1064,32 @@ static void room_503_daemon() {
switch (kernel.trigger) {
case 8:
- if (scratch._b8 == 1) {
+ if (scratch._b4 == 1) {
digi_initial_volume(30);
digi_play_build(503, '_', 1, 3);
digi_val2 = -1;
- scratch._b8 = 1;
+ scratch._b4 = 1;
}
break;
case 27:
global[walker_converse_now] = 0;
- kernel_abort_animation(scratch._b2);
- kernel_reset_animation(scratch._ae, 1);
- kernel_synch(KERNEL_ANIM, scratch._ae, KERNEL_NOW, 0);
+ kernel_abort_animation(scratch._ae);
+ kernel_reset_animation(scratch._aa, 1);
+ kernel_synch(KERNEL_ANIM, scratch._aa, KERNEL_NOW, 0);
global[g133] = 0;
player.commands_allowed = true;
break;
case 100:
kernel_abort_animation(aa[0]);
- aainfo[0]._val3 = 0;
+ aainfo[0]._active = 0;
aa[1] = kernel_run_animation(kernel_name('t', 1), 1);
kernel_synch(KERNEL_ANIM, aa[1], KERNEL_NOW, 0);
- aainfo[1]._val3 = -1;
+ aainfo[1]._active = -1;
player.commands_allowed = false;
digi_initial_volume(20);
- scratch._b4 = 1;
+ scratch._b0 = 1;
digi_play_build(503, '_', 1, 3);
digi_val2 = -1;
break;
@@ -1096,29 +1097,29 @@ static void room_503_daemon() {
case 104:
if (flags[33] == 6) {
aa[8] = kernel_run_animation(kernel_name('F', 1), 0);
- aainfo[8]._val3 = -1;
- scratch._a6 = 104;
+ aainfo[8]._active = -1;
+ scratch._a2 = 104;
digi_initial_volume(50);
digi_play_build(503, '_', 2, 3);
digi_val2 = -1;
- scratch._b6 = 1;
+ scratch._b2 = 1;
}
break;
case 105:
if (flags[33] == 7) {
aa[6] = kernel_run_animation(kernel_name('F', 2), 0);
- aainfo[6]._val3 = -1;
+ aainfo[6]._active = -1;
digi_initial_volume(50);
digi_play_build(503, '_', 2, 3);
digi_val2 = -1;
- scratch._b6 = 1;
+ scratch._b2 = 1;
}
break;
case 107:
kernel_abort_animation(aa[0]);
- aainfo[0]._val3 = 0;
+ aainfo[0]._active = 0;
midi_stop();
global[g100] = -1;
display_journal();
@@ -1128,26 +1129,26 @@ static void room_503_daemon() {
break;
}
- if (aainfo[0]._val3 != 0) room_503_anim1();
- if (aainfo[11]._val3 != 0) room_503_anim2();
- if (aainfo[6]._val3 != 0) room_503_anim3();
- if (aainfo[7]._val3 != 0) room_503_anim4();
- if (aainfo[8]._val3 != 0) room_503_anim5();
- if (aainfo[1]._val3 != 0) room_503_anim6();
- if (aainfo[2]._val3 != 0) room_503_anim7();
- if (aainfo[3]._val3 != 0) room_503_anim8();
- if (aainfo[4]._val3 != 0) room_503_anim9();
- if (aainfo[5]._val3 != 0) room_503_anim10();
+ if (aainfo[0]._active != 0) room_503_anim1();
+ if (aainfo[11]._active != 0) room_503_anim2();
+ if (aainfo[6]._active != 0) room_503_anim3();
+ if (aainfo[7]._active != 0) room_503_anim4();
+ if (aainfo[8]._active != 0) room_503_anim5();
+ if (aainfo[1]._active != 0) room_503_anim6();
+ if (aainfo[2]._active != 0) room_503_anim7();
+ if (aainfo[3]._active != 0) room_503_anim8();
+ if (aainfo[4]._active != 0) room_503_anim9();
+ if (aainfo[5]._active != 0) room_503_anim10();
- if (scratch._ba == 1) {
+ if (scratch._b6 == 1) {
room_503_anim12();
room_503_anim11();
- } else if (scratch._ba == 2) {
+ } else if (scratch._b6 == 2) {
room_503_anim11();
}
if (global[walker_converse_now] != 0)
- global_anim3(scratch._b2, &global[g008]);
+ global_anim3(scratch._ae, &global[g008]);
}
void room_503_synchronize(Common::Serializer &s) {
@@ -1155,18 +1156,18 @@ void room_503_synchronize(Common::Serializer &s) {
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._pad_a0);
+ s.syncAsSint16LE(scratch._a2);
s.syncAsSint16LE(scratch._pad_a4);
- s.syncAsSint16LE(scratch._a6);
+ s.syncAsSint16LE(scratch._pad_a6);
s.syncAsSint16LE(scratch._pad_a8);
- s.syncAsSint16LE(scratch._pad_aa);
+ s.syncAsSint16LE(scratch._aa);
s.syncAsSint16LE(scratch._pad_ac);
s.syncAsSint16LE(scratch._ae);
- s.syncAsSint16LE(scratch._pad_b0);
+ s.syncAsSint16LE(scratch._b0);
s.syncAsSint16LE(scratch._b2);
s.syncAsSint16LE(scratch._b4);
s.syncAsSint16LE(scratch._b6);
- s.syncAsSint16LE(scratch._b8);
- s.syncAsSint16LE(scratch._ba);
}
void room_503_preload() {
Commit: d32a7b82fac4cd9bd9de9b5a6f57824fc4ecb2cd
https://github.com/scummvm/scummvm/commit/d32a7b82fac4cd9bd9de9b5a6f57824fc4ecb2cd
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2026-06-29T14:44:32+10:00
Commit Message:
MADS: FOresT: Fix Scratch structure for room 308
Changed paths:
engines/mads/madsv2/forest/rooms/room308.cpp
diff --git a/engines/mads/madsv2/forest/rooms/room308.cpp b/engines/mads/madsv2/forest/rooms/room308.cpp
index aaba2d2b23b..a0d26669191 100644
--- a/engines/mads/madsv2/forest/rooms/room308.cpp
+++ b/engines/mads/madsv2/forest/rooms/room308.cpp
@@ -41,42 +41,22 @@ namespace Forest {
namespace Rooms {
struct Scratch {
- int16 sprite[10]; // 0x00â0x13
- int16 sequence[10]; // 0x14â0x27
- int16 animation[10]; // 0x28â0x3B
- AnimationInfo animation_info[10]; // 0x3Câ0x8B
- int16 _8c; // 0x8C
- int16 _8e; // 0x8E
- int16 _90; // 0x90
- int16 _92; // 0x92
- int16 _94; // 0x94
- int16 _96; // 0x96
- int16 _98; // 0x98
- int16 _9a; // 0x9A
- int16 _9c; // 0x9C
- int16 _9e; // 0x9E
- int16 _a0; // 0xA0
- int16 _a2; // 0xA2
- int16 _a4; // 0xA4
- int16 _a6; // 0xA6
- int16 _a8; // 0xA8
- int16 _aa; // 0xAA
- int16 _ac; // 0xAC
- int16 _ae; // 0xAE
- int16 _b0; // 0xB0
- int16 _b2; // 0xB2
- int16 _b4; // 0xB4
- int16 _b6; // 0xB6
- int16 _b8; // 0xB8
- int16 _ba; // 0xBA
- int16 _bc; // 0xBC
- int16 _be; // 0xBE
- int16 _c0; // 0xC0
- byte _c2; // 0xC2
- byte _c2hi; // 0xC3
- byte _c4; // 0xC4
- byte _c5; // 0xC5
- byte _c6; // 0xC6
+ int16 sprite[10];
+ int16 sequence[10];
+ int16 animation[24];
+ int16 _unused;
+ AnimationInfo animation_info[24];
+ int16 _b2;
+ int16 _b4;
+ int16 _b6;
+ int16 _b8;
+ int16 _ba;
+ int16 _bc;
+ int16 _be;
+ int16 _c0;
+ byte _c2;
+ byte _c3;
+ byte _c4;
};
static Scratch scratch;
@@ -89,10 +69,10 @@ static Scratch scratch;
static void room_308_anim1() {
- int16 cur = kernel_anim[ss[4]].frame;
- if (cur == aainfo[0]._active)
+ int16 cur = kernel_anim[aa[0]].frame;
+ if (cur == aainfo[0]._frame)
return;
- aainfo[0]._active = cur;
+ aainfo[0]._frame = cur;
switch (cur) {
case 40:
@@ -135,10 +115,10 @@ static void room_308_anim1() {
}
static void room_308_anim2() {
- int16 cur = kernel_anim[ss[5]].frame;
- if (cur == aainfo[0]._val3)
+ int16 cur = kernel_anim[aa[1]].frame;
+ if (cur == aainfo[1]._frame)
return;
- aainfo[0]._val3 = cur;
+ aainfo[1]._frame = cur;
if (cur == 6) {
digi_play_build(308, 't', 1, 1);
scratch._b4 = -1;
@@ -146,10 +126,10 @@ static void room_308_anim2() {
}
static void room_308_anim3() {
- int16 cur = kernel_anim[ss[6]].frame;
- if (cur == aainfo[1]._active)
+ int16 cur = kernel_anim[aa[2]].frame;
+ if (cur == aainfo[2]._frame)
return;
- aainfo[1]._active = cur;
+ aainfo[2]._frame = cur;
switch (cur) {
case 2:
digi_play_build(308, 'r', 1, 1);
@@ -167,10 +147,10 @@ static void room_308_anim3() {
}
static void room_308_anim4() {
- int16 cur = kernel_anim[ss[7]].frame;
- if (cur == aainfo[1]._val3)
+ int16 cur = kernel_anim[aa[3]].frame;
+ if (cur == aainfo[3]._frame)
return;
- aainfo[1]._val3 = cur;
+ aainfo[3]._frame = cur;
if (cur == 13) {
digi_play_build(308, 't', 2, 1);
@@ -187,10 +167,10 @@ static void room_308_anim4() {
}
static void room_308_anim5() {
- int16 cur = kernel_anim[ss[8]].frame;
- if (cur == aainfo[2]._active)
+ int16 cur = kernel_anim[aa[4]].frame;
+ if (cur == aainfo[4]._frame)
return;
- aainfo[2]._active = cur;
+ aainfo[4]._frame = cur;
if (cur == 30 || cur == 104) {
digi_initial_volume(60);
@@ -209,10 +189,10 @@ static void room_308_anim5() {
}
static void room_308_anim7() {
- int16 cur = kernel_anim[ss[9]].frame;
- if (cur == aainfo[2]._val3)
+ int16 cur = kernel_anim[aa[5]].frame;
+ if (cur == aainfo[5]._frame)
return;
- aainfo[2]._val3 = cur;
+ aainfo[5]._frame = cur;
if (cur == 1 || cur == 5) {
digi_initial_volume(60);
digi_play_build(308, '_', 1, 2);
@@ -220,36 +200,36 @@ static void room_308_anim7() {
}
static void room_308_anim8() {
- int16 cur = kernel_anim[seq[5]].frame;
- if (cur == aainfo[6]._val4)
+ int16 cur = kernel_anim[aa[11]].frame;
+ if (cur == aainfo[11]._frame)
return;
- aainfo[6]._val4 = cur;
+ aainfo[11]._frame = cur;
if (cur == 57) {
player.commands_allowed = true;
dont_frag_the_palette();
- kernel_abort_animation(seq[5]);
- aainfo[2]._frame = 0;
+ kernel_abort_animation(aa[11]);
+ aainfo[5]._active = 0;
- seq[0] = kernel_run_animation(kernel_name('t', 11), 0);
- aainfo[2]._val4 = -1;
- aainfo[3]._frame = 0;
- kernel_synch(KERNEL_ANIM, seq[0], KERNEL_NOW, 0);
+ aa[6] = kernel_run_animation(kernel_name('t', 11), 0);
+ aainfo[6]._active = -1;
+ aainfo[6]._val3 = 0;
+ kernel_synch(KERNEL_ANIM, aa[6], KERNEL_NOW, 0);
- seq[1] = kernel_run_animation(kernel_name('t', 19), 0);
- aainfo[3]._val3 = -1;
- aainfo[4]._active = 0;
- kernel_synch(KERNEL_ANIM, seq[1], KERNEL_NOW, 0);
+ aa[7] = kernel_run_animation(kernel_name('t', 19), 0);
+ aainfo[7]._active = -1;
+ aainfo[7]._val3 = 0;
+ kernel_synch(KERNEL_ANIM, aa[7], KERNEL_NOW, 0);
- seq[2] = kernel_run_animation(kernel_name('t', 13), 0);
- aainfo[4]._frame = -1;
- aainfo[4]._val4 = 0;
- kernel_synch(KERNEL_ANIM, seq[2], KERNEL_NOW, 0);
+ aa[8] = kernel_run_animation(kernel_name('t', 13), 0);
+ aainfo[8]._active = -1;
+ aainfo[8]._val3 = 0;
+ kernel_synch(KERNEL_ANIM, aa[8], KERNEL_NOW, 0);
- seq[3] = kernel_run_animation(kernel_name('t', 18), 0);
- aainfo[5]._active = -1;
- aainfo[5]._val3 = 0;
- kernel_synch(KERNEL_ANIM, seq[3], KERNEL_NOW, 0);
+ aa[9] = kernel_run_animation(kernel_name('t', 18), 0);
+ aainfo[9]._active = -1;
+ aainfo[9]._val3 = 0;
+ kernel_synch(KERNEL_ANIM, aa[9], KERNEL_NOW, 0);
global[player_score] = -1;
return;
@@ -268,19 +248,19 @@ static void room_308_anim8() {
}
static void room_308_anim9() {
- int16 cur = kernel_anim[seq[0]].frame;
- if (cur == aainfo[3]._active)
+ int16 cur = kernel_anim[aa[6]].frame;
+ if (cur == aainfo[6]._frame)
return;
- aainfo[3]._active = cur;
+ aainfo[6]._frame = cur;
int16 result = -1;
if (cur == 11) {
result = 10;
} else if (cur < 11) {
if (cur == 1) {
- if (aainfo[5]._val3 == 1) {
+ if (aainfo[9]._val3 == 1) {
result = 1;
- aainfo[5]._val3 = 0;
+ aainfo[9]._val3 = 0;
} else {
result = 0;
}
@@ -290,23 +270,23 @@ static void room_308_anim9() {
}
if (result >= 0) {
- kernel_reset_animation(seq[0], result);
- aainfo[3]._active = result;
+ kernel_reset_animation(aa[6], result);
+ aainfo[6]._frame = result;
}
}
static void room_308_anim10() {
- int16 cur = kernel_anim[seq[1]].frame;
- if (cur == aainfo[3]._val4)
+ int16 cur = kernel_anim[aa[7]].frame;
+ if (cur == aainfo[7]._frame)
return;
- aainfo[3]._val4 = cur;
+ aainfo[7]._frame = cur;
int16 result = -1;
if (cur == 17) {
scratch._be++;
if (scratch._be == 4) {
kernel_timing_trigger(20, 108);
- aainfo[4]._active = 0;
+ aainfo[7]._val3 = 0;
scratch._c2 = 4;
scratch._be++;
result = 0;
@@ -320,7 +300,7 @@ static void room_308_anim10() {
if (cur == 1) {
if (scratch._c2 == 8)
scratch._c2 = 0;
- int16 active = aainfo[4]._active;
+ int16 active = aainfo[7]._val3;
if (active == 0) {
if (scratch._be == 0) {
result = 0;
@@ -336,42 +316,42 @@ static void room_308_anim10() {
} else if (cur == 6) {
result = 5;
} else if (cur == 9) {
- aainfo[5]._val3 = 4;
+ aainfo[9]._val3 = 4;
}
}
if (result >= 0) {
- kernel_reset_animation(seq[1], result);
- aainfo[3]._val4 = result;
+ kernel_reset_animation(aa[7], result);
+ aainfo[7]._frame = result;
}
}
static void room_308_anim11() {
- int16 cur = kernel_anim[seq[2]].frame;
- if (cur == aainfo[4]._val3)
+ int16 cur = kernel_anim[aa[8]].frame;
+ if (cur == aainfo[8]._frame)
return;
- aainfo[4]._val3 = cur;
+ aainfo[8]._frame = cur;
int16 result = -1;
if (cur == 6) {
result = 5;
} else if (cur == 1 || (cur >= 8 && cur <= 10)) {
- int16 v = aainfo[4]._val4;
+ int16 v = aainfo[8]._val3;
if (v == 0) {
result = 0;
} else if (v == 3) {
result = imath_random(7, 9);
} else if (v == 6) {
if (scratch._c2 == 0 || scratch._c2 == 7) {
- aainfo[4]._val4 = 0;
- kernel_reset_animation(seq[0], 10);
- kernel_synch(KERNEL_ANIM, seq[0], KERNEL_ANIM, seq[2]);
- kernel_reset_animation(seq[3], 14);
- kernel_synch(KERNEL_ANIM, seq[3], KERNEL_ANIM, seq[2]);
+ aainfo[8]._val3 = 0;
+ kernel_reset_animation(aa[6], 10);
+ kernel_synch(KERNEL_ANIM, aa[6], KERNEL_ANIM, aa[8]);
+ kernel_reset_animation(aa[9], 14);
+ kernel_synch(KERNEL_ANIM, aa[9], KERNEL_ANIM, aa[8]);
result = 5;
- seq[6] = kernel_run_animation(kernel_name('t', 10), 0);
- aainfo[7]._active = -1;
- kernel_synch(KERNEL_ANIM, seq[6], KERNEL_ANIM, seq[2]);
+ aa[12] = kernel_run_animation(kernel_name('t', 10), 0);
+ aainfo[12]._active = -1;
+ kernel_synch(KERNEL_ANIM, aa[12], KERNEL_ANIM, aa[8]);
} else {
result = cur - 1;
}
@@ -379,22 +359,22 @@ static void room_308_anim11() {
if (scratch._c2 == 0) {
result = cur - 1;
} else {
- aainfo[4]._val4 = 0;
+ aainfo[8]._val3 = 0;
if (scratch._b8 == 0) {
- kernel_reset_animation(seq[0], 10);
- kernel_synch(KERNEL_ANIM, seq[0], KERNEL_ANIM, seq[2]);
- kernel_reset_animation(seq[3], 14);
- kernel_synch(KERNEL_ANIM, seq[3], KERNEL_ANIM, seq[2]);
+ kernel_reset_animation(aa[6], 10);
+ kernel_synch(KERNEL_ANIM, aa[6], KERNEL_ANIM, aa[8]);
+ kernel_reset_animation(aa[9], 14);
+ kernel_synch(KERNEL_ANIM, aa[9], KERNEL_ANIM, aa[8]);
result = 5;
- seq[6] = kernel_run_animation(kernel_name('t', 10), 0);
- aainfo[7]._active = -1;
- kernel_synch(KERNEL_ANIM, seq[6], KERNEL_ANIM, seq[2]);
+ aa[12] = kernel_run_animation(kernel_name('t', 10), 0);
+ aainfo[12]._active = -1;
+ kernel_synch(KERNEL_ANIM, aa[12], KERNEL_ANIM, aa[8]);
} else {
result = 5;
- seq[7] = kernel_run_animation(kernel_name('t', 14), 0);
- aainfo[7]._val4 = -1;
- aainfo[8]._frame = 13;
- kernel_synch(KERNEL_ANIM, seq[7], KERNEL_ANIM, seq[2]);
+ aa[13] = kernel_run_animation(kernel_name('t', 14), 0);
+ aainfo[13]._active = -1;
+ aainfo[13]._val3 = 13;
+ kernel_synch(KERNEL_ANIM, aa[13], KERNEL_ANIM, aa[8]);
digi_play_build(101, '_', 1, 2);
}
}
@@ -402,22 +382,22 @@ static void room_308_anim11() {
}
if (result >= 0) {
- kernel_reset_animation(seq[2], result);
- aainfo[4]._val3 = result;
+ kernel_reset_animation(aa[8], result);
+ aainfo[8]._frame = result;
}
}
static void room_308_anim12() {
- int16 cur = kernel_anim[seq[3]].frame;
- if (cur == aainfo[5]._frame)
+ int16 cur = kernel_anim[aa[9]].frame;
+ if (cur == aainfo[9]._frame)
return;
- aainfo[5]._frame = cur;
+ aainfo[9]._frame = cur;
int16 result = -1;
bool do_e0 = false;
if (cur == 2) {
- aainfo[5]._val3 = 1;
+ aainfo[9]._val3 = 1;
} else if (cur == 7 || cur == 13) {
result = 0;
} else if (cur == 14) {
@@ -430,32 +410,32 @@ static void room_308_anim12() {
} else {
scratch._ba = 0;
if (global[walker_converse_state] == 0) {
- aainfo[5]._val3 = (scratch._c0 != 0) ? 11 : 10;
+ aainfo[9]._val3 = (scratch._c0 != 0) ? 11 : 10;
do_e0 = true;
} else if (scratch._b8 == 0) {
- aainfo[4]._val4 = 0;
+ aainfo[8]._val3 = 0;
scratch._b6 = 1;
- aainfo[4]._val4 = 7;
- kernel_reset_animation(seq[0], 10);
- kernel_synch(KERNEL_ANIM, seq[0], KERNEL_ANIM, seq[2]);
- kernel_reset_animation(seq[3], 13);
- kernel_synch(KERNEL_ANIM, seq[3], KERNEL_ANIM, seq[2]);
- aainfo[5]._frame = 13;
- kernel_reset_animation(seq[2], 5);
- seq[6] = kernel_run_animation(kernel_name('t', 10), 0);
- aainfo[7]._active = -1;
- kernel_synch(KERNEL_ANIM, seq[6], KERNEL_ANIM, seq[2]);
+ aainfo[8]._val3 = 7;
+ kernel_reset_animation(aa[6], 10);
+ kernel_synch(KERNEL_ANIM, aa[6], KERNEL_ANIM, aa[8]);
+ kernel_reset_animation(aa[9], 13);
+ kernel_synch(KERNEL_ANIM, aa[9], KERNEL_ANIM, aa[8]);
+ aainfo[9]._frame = 13;
+ kernel_reset_animation(aa[8], 5);
+ aa[12] = kernel_run_animation(kernel_name('t', 10), 0);
+ aainfo[12]._active = -1;
+ kernel_synch(KERNEL_ANIM, aa[12], KERNEL_ANIM, aa[8]);
return;
} else if (scratch._c0 == 0) {
- kernel_reset_animation(seq[2], 5);
- seq[7] = kernel_run_animation(kernel_name('t', 14), 0);
- aainfo[7]._val4 = -1;
- aainfo[8]._frame = 13;
- kernel_synch(KERNEL_ANIM, seq[7], KERNEL_ANIM, seq[2]);
- aainfo[5]._val3 = 8;
+ kernel_reset_animation(aa[8], 5);
+ aa[13] = kernel_run_animation(kernel_name('t', 14), 0);
+ aainfo[13]._active = -1;
+ aainfo[13]._val3 = 13;
+ kernel_synch(KERNEL_ANIM, aa[13], KERNEL_ANIM, aa[8]);
+ aainfo[9]._val3 = 8;
do_e0 = true;
} else {
- aainfo[5]._val3 = 11;
+ aainfo[9]._val3 = 11;
do_e0 = true;
}
}
@@ -463,10 +443,10 @@ static void room_308_anim12() {
if (do_e0) {
if (scratch._bc != 0) {
- aainfo[5]._val3 = 12;
+ aainfo[9]._val3 = 12;
scratch._bc = 0;
}
- switch (aainfo[5]._val3) {
+ switch (aainfo[9]._val3) {
case 0:
if (scratch._c2 == 0) {
if (imath_random(1, 15) == 1) {
@@ -477,7 +457,7 @@ static void room_308_anim12() {
scratch._c2 = 0;
}
} else {
- result = aainfo[5]._frame - 1;
+ result = aainfo[9]._frame - 1;
}
break;
case 3:
@@ -486,7 +466,7 @@ static void room_308_anim12() {
break;
case 4:
result = 7;
- aainfo[5]._val3 = 0;
+ aainfo[9]._val3 = 0;
scratch._c2 = 5;
break;
case 8:
@@ -494,39 +474,39 @@ static void room_308_anim12() {
scratch._c2 = 3;
break;
case 10:
- seq[8] = kernel_run_animation(kernel_name('t', 21), 0);
- aainfo[8]._val3 = -1;
- kernel_synch(KERNEL_ANIM, seq[8], KERNEL_NOW, 0);
- kernel_reset_animation(seq[1], 5);
- kernel_synch(KERNEL_ANIM, seq[1], KERNEL_NOW, 0);
- kernel_reset_animation(seq[3], 13);
- kernel_synch(KERNEL_ANIM, seq[3], KERNEL_NOW, 0);
+ aa[14] = kernel_run_animation(kernel_name('t', 21), 0);
+ aainfo[14]._active = -1;
+ kernel_synch(KERNEL_ANIM, aa[14], KERNEL_NOW, 0);
+ kernel_reset_animation(aa[7], 5);
+ kernel_synch(KERNEL_ANIM, aa[7], KERNEL_NOW, 0);
+ kernel_reset_animation(aa[9], 13);
+ kernel_synch(KERNEL_ANIM, aa[9], KERNEL_NOW, 0);
scratch._c2 = 2;
break;
case 11:
if (scratch._c0 != 0) {
dont_frag_the_palette();
- kernel_abort_animation(seq[7]);
- aainfo[7]._val4 = 0;
+ kernel_abort_animation(aa[13]);
+ aainfo[13]._active = 0;
}
dont_frag_the_palette();
- kernel_abort_animation(seq[3]);
- aainfo[5]._active = 0;
- seq[9] = kernel_run_animation(kernel_name('t', 20), 0);
- aainfo[9]._active = -1;
- kernel_synch(KERNEL_ANIM, seq[9], KERNEL_NOW, 0);
- kernel_reset_animation(seq[1], 5);
- kernel_synch(KERNEL_ANIM, seq[1], KERNEL_NOW, 0);
+ kernel_abort_animation(aa[9]);
+ aainfo[9]._active = 0;
+ aa[15] = kernel_run_animation(kernel_name('t', 20), 0);
+ aainfo[15]._active = -1;
+ kernel_synch(KERNEL_ANIM, aa[15], KERNEL_NOW, 0);
+ kernel_reset_animation(aa[7], 5);
+ kernel_synch(KERNEL_ANIM, aa[7], KERNEL_NOW, 0);
scratch._c2 = 9;
break;
case 12:
- aa[0] = kernel_run_animation(kernel_name('t', 15), 0);
- kernel_reset_animation(aa[0], 6);
- aainfo[9]._val3 = -1;
- kernel_synch(KERNEL_ANIM, aa[0], KERNEL_NOW, 0);
- kernel_reset_animation(seq[0], 10);
- kernel_synch(KERNEL_ANIM, seq[0], KERNEL_NOW, 0);
- aainfo[5]._val3 = 0;
+ aa[16] = kernel_run_animation(kernel_name('t', 15), 0);
+ kernel_reset_animation(aa[16], 6);
+ aainfo[16]._active = -1;
+ kernel_synch(KERNEL_ANIM, aa[16], KERNEL_NOW, 0);
+ kernel_reset_animation(aa[6], 10);
+ kernel_synch(KERNEL_ANIM, aa[6], KERNEL_NOW, 0);
+ aainfo[9]._val3 = 0;
scratch._c2 = 1;
break;
default:
@@ -535,16 +515,16 @@ static void room_308_anim12() {
}
if (result >= 0) {
- kernel_reset_animation(seq[3], result);
- aainfo[5]._frame = result;
+ kernel_reset_animation(aa[9], result);
+ aainfo[9]._frame = result;
}
}
static void room_308_anim13() {
- int16 cur = kernel_anim[seq[4]].frame;
- if (cur == aainfo[6]._active)
+ int16 cur = kernel_anim[aa[10]].frame;
+ if (cur == aainfo[10]._frame)
return;
- aainfo[6]._active = cur;
+ aainfo[10]._frame = cur;
int16 result = -1;
if (cur == 8) {
@@ -554,88 +534,88 @@ static void room_308_anim13() {
digi_stop(2);
digi_play_build(203, '_', 1, 2);
} else if (cur == 11) {
- scratch._c2hi++;
- if (scratch._c2hi == 3) {
+ scratch._c3++;
+ if (scratch._c3 == 3) {
dont_frag_the_palette();
- kernel_abort_animation(seq[4]);
- aainfo[5]._val4 = 0;
- aa[1] = kernel_run_animation(kernel_name('t', 23), 0);
- kernel_reset_animation(aa[1], 2);
- scratch._8c = -1;
- kernel_synch(KERNEL_ANIM, aa[1], KERNEL_NOW, 0);
+ kernel_abort_animation(aa[10]);
+ aainfo[10]._active = 0;
+ aa[17] = kernel_run_animation(kernel_name('t', 23), 0);
+ kernel_reset_animation(aa[17], 2);
+ aainfo[17]._active = -1;
+ kernel_synch(KERNEL_ANIM, aa[17], KERNEL_NOW, 0);
} else {
result = 7;
}
}
if (result >= 0) {
- kernel_reset_animation(seq[4], result);
- aainfo[6]._active = result;
+ kernel_reset_animation(aa[10], result);
+ aainfo[10]._frame = result;
}
}
static void room_308_anim14() {
- int16 cur = kernel_anim[seq[6]].frame;
- if (cur == aainfo[7]._frame)
+ int16 cur = kernel_anim[aa[12]].frame;
+ if (cur == aainfo[12]._frame)
return;
- aainfo[7]._frame = cur;
+ aainfo[12]._frame = cur;
if (cur == 6) {
digi_play_build(101, '_', 1, 2);
} else if (cur == 9) {
- ss[2] = kernel_seq_stamp(ss[0], 0, -1);
- kernel_seq_depth(ss[2], 4);
- kernel_seq_loc(ss[2], 99, 125);
- kernel_synch(KERNEL_SERIES, ss[2], KERNEL_ANIM, seq[6]);
+ seq[0] = kernel_seq_stamp(ss[0], 0, -1);
+ kernel_seq_depth(seq[0], 4);
+ kernel_seq_loc(seq[0], 99, 125);
+ kernel_synch(KERNEL_SERIES, seq[0], KERNEL_ANIM, aa[12]);
scratch._b8 = -1;
global[g072] = -1;
} else if (cur == 10) {
dont_frag_the_palette();
- kernel_abort_animation(seq[6]);
- aainfo[7]._active = 0;
+ kernel_abort_animation(aa[12]);
+ aainfo[12]._active = 0;
if (scratch._b6 == 0) {
- kernel_reset_animation(seq[1], 7);
- kernel_synch(KERNEL_ANIM, seq[1], KERNEL_ANIM, seq[2]);
- kernel_reset_animation(seq[2], 0);
- kernel_synch(KERNEL_ANIM, seq[2], KERNEL_NOW, 0);
- kernel_reset_animation(seq[0], 0);
- kernel_synch(KERNEL_ANIM, seq[0], KERNEL_NOW, 0);
- kernel_reset_animation(seq[3], 0);
- kernel_synch(KERNEL_ANIM, seq[3], KERNEL_ANIM, seq[7]);
+ kernel_reset_animation(aa[7], 7);
+ kernel_synch(KERNEL_ANIM, aa[7], KERNEL_ANIM, aa[8]);
+ kernel_reset_animation(aa[8], 0);
+ kernel_synch(KERNEL_ANIM, aa[8], KERNEL_NOW, 0);
+ kernel_reset_animation(aa[6], 0);
+ kernel_synch(KERNEL_ANIM, aa[6], KERNEL_NOW, 0);
+ kernel_reset_animation(aa[9], 0);
+ kernel_synch(KERNEL_ANIM, aa[9], KERNEL_ANIM, aa[13]);
} else if (scratch._b6 == 1) {
- seq[7] = kernel_run_animation(kernel_name('t', 14), 0);
- aainfo[7]._val4 = -1;
- aainfo[8]._frame = 13;
- kernel_synch(KERNEL_ANIM, seq[7], KERNEL_NOW, 0);
- kernel_reset_animation(seq[0], 0);
- kernel_synch(KERNEL_ANIM, seq[0], KERNEL_NOW, 0);
- kernel_reset_animation(seq[3], 0);
- kernel_synch(KERNEL_ANIM, seq[3], KERNEL_ANIM, seq[7]);
+ aa[13] = kernel_run_animation(kernel_name('t', 14), 0);
+ aainfo[13]._active = -1;
+ aainfo[13]._val3 = 13;
+ kernel_synch(KERNEL_ANIM, aa[13], KERNEL_NOW, 0);
+ kernel_reset_animation(aa[6], 0);
+ kernel_synch(KERNEL_ANIM, aa[6], KERNEL_NOW, 0);
+ kernel_reset_animation(aa[9], 0);
+ kernel_synch(KERNEL_ANIM, aa[9], KERNEL_ANIM, aa[13]);
}
}
}
static void room_308_anim15() {
- int16 cur = kernel_anim[seq[7]].frame;
- if (cur == aainfo[8]._active)
+ int16 cur = kernel_anim[aa[13]].frame;
+ if (cur == aainfo[13]._frame)
return;
- aainfo[8]._active = cur;
+ aainfo[13]._frame = cur;
int16 result = -1;
if (cur == 7) {
if (global[walker_converse_state] != 0) {
dont_frag_the_palette();
- kernel_abort_animation(seq[7]);
- aainfo[7]._val4 = 0;
+ kernel_abort_animation(aa[13]);
+ aainfo[13]._active = 0;
scratch._c0 = 100;
dont_frag_the_palette();
- kernel_abort_animation(seq[3]);
- aainfo[5]._active = 0;
- seq[9] = kernel_run_animation(kernel_name('t', 20), 0);
- aainfo[9]._active = -1;
- kernel_synch(KERNEL_ANIM, seq[9], KERNEL_NOW, 0);
- kernel_reset_animation(seq[1], 5);
- kernel_synch(KERNEL_ANIM, seq[1], KERNEL_NOW, 0);
+ kernel_abort_animation(aa[9]);
+ aainfo[9]._active = 0;
+ aa[15] = kernel_run_animation(kernel_name('t', 20), 0);
+ aainfo[15]._active = -1;
+ kernel_synch(KERNEL_ANIM, aa[15], KERNEL_NOW, 0);
+ kernel_reset_animation(aa[7], 5);
+ kernel_synch(KERNEL_ANIM, aa[7], KERNEL_NOW, 0);
return;
}
if (scratch._c2 == 6)
@@ -643,7 +623,7 @@ static void room_308_anim15() {
if (scratch._c0 <= 3) {
scratch._c2 = 6;
} else {
- if (aainfo[8]._frame != 0 || scratch._c0 == 0 || scratch._c2 != 0 || imath_random(1, 15) != 1) {
+ if (aainfo[13]._val3 != 0 || scratch._c0 == 0 || scratch._c2 != 0 || imath_random(1, 15) != 1) {
result = 6;
} else {
result = 7;
@@ -651,7 +631,7 @@ static void room_308_anim15() {
}
}
} else if (cur == 10) {
- aainfo[5]._val3 = 4;
+ aainfo[9]._val3 = 4;
} else if (cur == 12) {
digi_play_build(308, '_', 4, 2);
} else if (cur == 13) {
@@ -659,7 +639,7 @@ static void room_308_anim15() {
scratch._c0++;
if (scratch._c0 == 3) {
kernel_timing_trigger(20, 109);
- aainfo[8]._frame = 0;
+ aainfo[13]._val3 = 0;
scratch._c2 = 4;
scratch._c0++;
}
@@ -667,72 +647,73 @@ static void room_308_anim15() {
}
if (result >= 0) {
- kernel_reset_animation(seq[7], result);
- aainfo[8]._active = result;
+ kernel_reset_animation(aa[13], result);
+ aainfo[13]._frame = result;
}
}
static void room_308_anim16() {
- int16 cur = kernel_anim[seq[8]].frame;
- if (cur == aainfo[8]._val4)
+ int16 cur = kernel_anim[aa[14]].frame;
+ if (cur == aainfo[14]._frame)
return;
- aainfo[8]._val4 = cur;
+ aainfo[14]._frame = cur;
if (cur == 1) {
digi_initial_volume(60);
digi_play_build(308, '_', 3, 2);
} else if (cur == 8) {
dont_frag_the_palette();
- kernel_abort_animation(seq[8]);
- aainfo[8]._val3 = 0;
- kernel_reset_animation(seq[1], 0);
- aainfo[4]._active = 0;
- kernel_synch(KERNEL_ANIM, seq[1], KERNEL_NOW, 0);
- kernel_reset_animation(seq[3], 0);
- aainfo[5]._val3 = 0;
- kernel_synch(KERNEL_ANIM, seq[3], KERNEL_NOW, 0);
+ kernel_abort_animation(aa[14]);
+ aainfo[14]._active = 0;
+ kernel_reset_animation(aa[7], 0);
+ aainfo[7]._val3 = 0;
+ kernel_synch(KERNEL_ANIM, aa[7], KERNEL_NOW, 0);
+ kernel_reset_animation(aa[9], 0);
+ aainfo[9]._val3 = 0;
+ kernel_synch(KERNEL_ANIM, aa[9], KERNEL_NOW, 0);
player.commands_allowed = true;
}
}
static void room_308_anim17() {
- int16 cur = kernel_anim[seq[9]].frame;
- if (cur == aainfo[9]._frame)
+ int16 cur = kernel_anim[aa[15]].frame;
+ if (cur == aainfo[15]._frame)
return;
- aainfo[9]._frame = cur;
+ aainfo[15]._frame = cur;
int16 result = -1;
if (cur == 1) {
+ digi_initial_volume(60);
digi_play_build(308, '_', 3, 2);
} else if (cur == 13) {
- kernel_reset_animation(seq[0], 10);
- kernel_synch(KERNEL_ANIM, seq[0], KERNEL_NOW, 0);
- seq[4] = kernel_run_animation(kernel_name('t', 22), 0);
- aainfo[5]._val4 = -1;
- kernel_synch(KERNEL_ANIM, seq[4], KERNEL_ANIM, seq[9]);
+ kernel_reset_animation(aa[6], 10);
+ kernel_synch(KERNEL_ANIM, aa[6], KERNEL_NOW, 0);
+ aa[10] = kernel_run_animation(kernel_name('t', 22), 0);
+ aainfo[10]._active = -1;
+ kernel_synch(KERNEL_ANIM, aa[10], KERNEL_ANIM, aa[15]);
} else if (cur == 14) {
result = 13;
} else if (cur == 23) {
dont_frag_the_palette();
- kernel_abort_animation(seq[9]);
- aainfo[9]._active = 0;
- aa[2] = kernel_run_animation(kernel_name('t', 24), 0);
- kernel_reset_animation(aa[2], 4);
- scratch._90 = -1;
- kernel_synch(KERNEL_ANIM, aa[2], KERNEL_NOW, 0);
+ kernel_abort_animation(aa[15]);
+ aainfo[15]._active = 0;
+ aa[18] = kernel_run_animation(kernel_name('t', 24), 0);
+ kernel_reset_animation(aa[18], 4);
+ aainfo[18]._active = -1;
+ kernel_synch(KERNEL_ANIM, aa[18], KERNEL_NOW, 0);
}
if (result >= 0) {
- kernel_reset_animation(seq[9], result);
- aainfo[9]._frame = result;
+ kernel_reset_animation(aa[15], result);
+ aainfo[15]._frame = result;
}
}
static void room_308_anim18() {
- int16 cur = kernel_anim[aa[0]].frame;
- if (cur == aainfo[9]._val4)
+ int16 cur = kernel_anim[aa[16]].frame;
+ if (cur == aainfo[16]._frame)
return;
- aainfo[9]._val4 = cur;
+ aainfo[16]._frame = cur;
if (cur == 6) {
digi_play_build(203, '_', 4, 2);
@@ -741,20 +722,20 @@ static void room_308_anim18() {
digi_play_build(308, '_', 4, 2);
} else if (cur == 15) {
dont_frag_the_palette();
- kernel_abort_animation(aa[0]);
- aainfo[9]._val3 = 0;
- kernel_reset_animation(seq[0], 0);
- aainfo[3]._frame = 0;
- kernel_synch(KERNEL_ANIM, seq[0], KERNEL_NOW, 0);
+ kernel_abort_animation(aa[16]);
+ aainfo[16]._active = 0;
+ kernel_reset_animation(aa[6], 0);
+ aainfo[6]._val3 = 0;
+ kernel_synch(KERNEL_ANIM, aa[6], KERNEL_NOW, 0);
player.commands_allowed = true;
}
}
static void room_308_anim19() {
- int16 cur = kernel_anim[aa[1]].frame;
- if (cur == scratch._8e)
+ int16 cur = kernel_anim[aa[17]].frame;
+ if (cur == aainfo[17]._frame)
return;
- scratch._8e = cur;
+ aainfo[17]._frame = cur;
int16 result = -1;
if (cur == 2) {
@@ -767,43 +748,43 @@ static void room_308_anim19() {
scratch._c4++;
if (scratch._c4 == 2) {
dont_frag_the_palette();
- kernel_abort_animation(aa[1]);
- scratch._8c = 0;
+ kernel_abort_animation(aa[17]);
+ aainfo[17]._active = 0;
dont_frag_the_palette();
- kernel_abort_animation(seq[9]);
- aainfo[9]._active = 0;
- aa[2] = kernel_run_animation(kernel_name('t', 24), 0);
- scratch._90 = -1;
- kernel_synch(KERNEL_ANIM, aa[2], KERNEL_NOW, 0);
+ kernel_abort_animation(aa[15]);
+ aainfo[15]._active = 0;
+ aa[18] = kernel_run_animation(kernel_name('t', 24), 0);
+ aainfo[18]._active = -1;
+ kernel_synch(KERNEL_ANIM, aa[18], KERNEL_NOW, 0);
} else {
result = 8;
}
}
if (result >= 0) {
- kernel_reset_animation(aa[1], result);
- scratch._8e = result;
+ kernel_reset_animation(aa[17], result);
+ aainfo[17]._frame = result;
}
}
static void room_308_anim20() {
- int16 cur = kernel_anim[aa[2]].frame;
- if (cur == scratch._92)
+ int16 cur = kernel_anim[aa[18]].frame;
+ if (cur == aainfo[18]._frame)
return;
- scratch._92 = cur;
+ aainfo[18]._frame = cur;
int16 result = -1;
if (cur == 6) {
global[g009] = 0;
global_midi_play(5);
digi_play_build(308, 't', 5, 1);
- scratch._94 = 3;
+ aainfo[18]._val3 = 3;
scratch._b4 = 3;
} else if (cur == 7 || cur == 8 || cur == 9) {
- if (scratch._94 == 3)
+ if (aainfo[18]._val3 == 3)
result = imath_random(6, 8);
} else if (cur == 11) {
- kernel_seq_delete(ss[2]);
+ kernel_seq_delete(seq[0]);
} else if (cur == 17) {
digi_play_build(203, '_', 1, 2);
} else if (cur == 20) {
@@ -811,54 +792,54 @@ static void room_308_anim20() {
digi_play_build(322, '_', 1, 2);
} else if (cur == 27) {
dont_frag_the_palette();
- kernel_abort_animation(aa[2]);
- scratch._90 = 0;
- aa[3] = kernel_run_animation(kernel_name('t', 30), 0);
- scratch._96 = -1;
- kernel_synch(KERNEL_ANIM, aa[3], KERNEL_NOW, 0);
+ kernel_abort_animation(aa[18]);
+ aainfo[18]._active = 0;
+ aa[19] = kernel_run_animation(kernel_name('t', 30), 0);
+ aainfo[19]._active = -1;
+ kernel_synch(KERNEL_ANIM, aa[19], KERNEL_NOW, 0);
}
if (result >= 0) {
- kernel_reset_animation(aa[2], result);
- scratch._92 = result;
+ kernel_reset_animation(aa[18], result);
+ aainfo[18]._frame = result;
}
}
static void room_308_anim21() {
- int16 cur = kernel_anim[aa[3]].frame;
- if (cur == scratch._98)
+ int16 cur = kernel_anim[aa[19]].frame;
+ if (cur == aainfo[19]._frame)
return;
- scratch._98 = cur;
+ aainfo[19]._frame = cur;
int16 result = -1;
if (cur == 3) {
digi_play_build(308, 'r', 4, 1);
scratch._b4 = 4;
- scratch._9a = 3;
+ aainfo[19]._val3 = 3;
} else if (cur >= 4 && cur <= 9) {
- if (scratch._9a == 3)
+ if (aainfo[19]._val3 == 3)
result = imath_random(7, 9);
} else if (cur == 15) {
- kernel_abort_animation(aa[3]);
- scratch._96 = 0;
- aa[4] = kernel_run_animation(kernel_name('t', 26), 0);
- scratch._9c = -1;
- kernel_synch(KERNEL_ANIM, aa[4], KERNEL_NOW, 0);
+ kernel_abort_animation(aa[19]);
+ aainfo[19]._active = 0;
+ aa[20] = kernel_run_animation(kernel_name('t', 26), 0);
+ aainfo[20]._active = -1;
+ kernel_synch(KERNEL_ANIM, aa[20], KERNEL_NOW, 0);
digi_play_build(308, 'b', 4, 1);
scratch._b4 = -1;
}
if (result >= 0) {
- kernel_reset_animation(aa[3], result);
- scratch._98 = result;
+ kernel_reset_animation(aa[19], result);
+ aainfo[19]._frame = result;
}
}
static void room_308_anim22() {
- int16 cur = kernel_anim[aa[4]].frame;
- if (cur == scratch._9e)
+ int16 cur = kernel_anim[aa[20]].frame;
+ if (cur == aainfo[20]._frame)
return;
- scratch._9e = cur;
+ aainfo[20]._frame = cur;
if (cur == 70) {
if (global[walker_converse_state] != 0) {
@@ -878,16 +859,16 @@ static void room_308_anim22() {
}
static void room_308_anim23() {
- int16 cur = kernel_anim[aa[5]].frame;
- if (cur == scratch._a4)
+ int16 cur = kernel_anim[aa[21]].frame;
+ if (cur == aainfo[21]._frame)
return;
- scratch._a4 = cur;
+ aainfo[21]._frame = cur;
if (cur == 47) {
- aa[6] = kernel_run_animation(kernel_name('t', 25), 110);
- scratch._a8 = -1;
- scratch._ac = 3;
- kernel_synch(KERNEL_ANIM, aa[6], KERNEL_NOW, 0);
+ aa[22] = kernel_run_animation(kernel_name('t', 25), 110);
+ aainfo[22]._active = -1;
+ aainfo[22]._val3 = 3;
+ kernel_synch(KERNEL_ANIM, aa[22], KERNEL_NOW, 0);
} else if (cur == 48 || cur == 64 || cur == 88 || cur == 108 || cur == 140) {
digi_initial_volume(60);
digi_play_build(308, '_', 1, 2);
@@ -906,44 +887,44 @@ static void room_308_anim23() {
}
static void room_308_anim24() {
- int16 cur = kernel_anim[aa[6]].frame;
- if (cur == scratch._aa)
+ int16 cur = kernel_anim[aa[22]].frame;
+ if (cur == aainfo[22]._frame)
return;
- scratch._aa = cur;
+ aainfo[22]._frame = cur;
int16 result = -1;
- if (cur == 1 || cur == 28) {
+ if (cur == 1 || cur == 27) {
digi_initial_volume(60);
digi_play_build(308, '_', 3, 1);
scratch._b4 = -1;
- } else if (cur == 20) {
+ } else if (cur == 19) {
digi_play_build(308, 't', 7, 1);
scratch._b4 = 5;
- } else if (cur >= 21 && cur <= 26) {
- if (scratch._ac == 3)
+ } else if (cur >= 20 && cur <= 25) {
+ if (aainfo[22]._val3 == 3)
result = imath_random(20, 25);
- } else if (cur == 29) {
+ } else if (cur == 28) {
global[g009] = 0;
global_midi_play(5);
}
if (result >= 0) {
- kernel_reset_animation(aa[6], result);
- scratch._aa = result;
+ kernel_reset_animation(aa[22], result);
+ aainfo[22]._frame = result;
}
}
static void room_308_anim25() {
- int16 cur = kernel_anim[aa[7]].frame;
- if (cur == scratch._b0)
+ int16 cur = kernel_anim[aa[23]].frame;
+ if (cur == aainfo[23]._frame)
return;
- scratch._b0 = cur;
+ aainfo[23]._frame = cur;
if (cur == 64) {
- aa[6] = kernel_run_animation(kernel_name('t', 25), 110);
- scratch._a8 = -1;
- scratch._ac = 3;
- kernel_synch(KERNEL_ANIM, aa[6], KERNEL_NOW, 0);
+ aa[22] = kernel_run_animation(kernel_name('t', 25), 110);
+ aainfo[22]._active = -1;
+ aainfo[22]._val3 = 3;
+ kernel_synch(KERNEL_ANIM, aa[22], KERNEL_NOW, 0);
} else if (cur == 67 || cur == 92 || cur == 116) {
digi_initial_volume(60);
digi_play_build(308, '_', 1, 2);
@@ -982,43 +963,21 @@ static void room_308_init() {
player.walker_visible = false;
if (previous_room != KERNEL_RESTORING_GAME) {
- aa[9] = 0;
- aainfo[0]._frame = 0;
- aainfo[0]._val4 = 0;
- aainfo[1]._frame = 0;
- aainfo[1]._val4 = 0;
- aainfo[2]._frame = 0;
- aainfo[6]._val3 = 0;
- aainfo[2]._val4 = 0;
- aainfo[3]._val3 = 0;
- aainfo[4]._frame = 0;
- aainfo[5]._active = 0;
- aainfo[5]._val4 = 0;
- aainfo[7]._active = 0;
- aainfo[7]._val4 = 0;
- aainfo[8]._val3 = 0;
- aainfo[9]._active = 0;
- aainfo[9]._val3 = 0;
- scratch._8c = 0;
- scratch._90 = 0;
- scratch._96 = 0;
- scratch._9c = 0;
- scratch._a2 = 0;
- scratch._a8 = 0;
- scratch._ae = 0;
- scratch._ba = 0;
- scratch._c2 = 0;
+ for (int i = 0; i < 24; i++)
+ aainfo[i]._active = 0;
+ scratch._b8 = 0;
scratch._c0 = 0;
+ scratch._be = 0;
}
- scratch._c6 = 0;
+ scratch._c4 = 0;
scratch._b4 = -1;
- scratch._b8 = -1;
+ scratch._b6 = -1;
scratch._b2 = 0;
+ scratch._ba = 0;
scratch._bc = 0;
- scratch._be = 0;
- scratch._c4 = 0;
- scratch._c5 = 0;
+ scratch._c2 = 0;
+ scratch._c3 = 0;
stop_speech_on_run_animation = true;
kernel_flip_hotspot(words_room_307, false);
@@ -1027,62 +986,62 @@ static void room_308_init() {
if (!player_has_been_in_room(401)) {
ss[0] = kernel_load_series(kernel_name('p', 3), 0);
if (global[g072] != 0) {
- ss[2] = kernel_seq_stamp(ss[0], false, -1);
- kernel_seq_depth(ss[2], 4);
- kernel_seq_loc(ss[2], 99, 125);
- kernel_synch(KERNEL_SERIES, ss[2], KERNEL_ANIM, seq[6]);
- scratch._c0 = 100;
- scratch._ba = -1;
+ seq[0] = kernel_seq_stamp(ss[0], false, -1);
+ kernel_seq_depth(seq[0], 4);
+ kernel_seq_loc(seq[0], 99, 125);
+ kernel_synch(KERNEL_SERIES, seq[0], KERNEL_ANIM, aa[12]);
+ scratch._be = 100;
+ scratch._b8 = -1;
}
}
if (previous_room == 401) {
player.commands_allowed = false;
- aa[5] = kernel_run_animation(kernel_name('t', 27), 0);
- scratch._a2 = -1;
+ aa[21] = kernel_run_animation(kernel_name('t', 27), 0);
+ aainfo[21]._active = -1;
return;
}
if (previous_room == 307 || previous_room == 322) {
player.commands_allowed = false;
if (player_has_been_in_room(401)) {
- aa[7] = kernel_run_animation(kernel_name('t', 40), 0);
- kernel_reset_animation(aa[7], 13);
- scratch._ae = -1;
+ aa[23] = kernel_run_animation(kernel_name('t', 40), 0);
+ kernel_reset_animation(aa[23], 13);
+ aainfo[23]._active = -1;
return;
}
if (player.been_here_before && player_has(5) && player_has(1) && player_has(15)) {
- ss[7] = kernel_run_animation(kernel_name('t', 8), 103);
- aainfo[1]._frame = -1;
- kernel_synch(KERNEL_ANIM, ss[7], KERNEL_NOW, 0);
+ aa[3] = kernel_run_animation(kernel_name('t', 8), 103);
+ aainfo[3]._active = -1;
+ kernel_synch(KERNEL_ANIM, aa[3], KERNEL_NOW, 0);
global[g009] = -1;
global_midi_play(15);
player.commands_allowed = false;
return;
}
if (!player.been_here_before) {
- ss[4] = kernel_run_animation(kernel_name('t', 1), 100);
- kernel_reset_animation(ss[4], 13);
- aa[9] = -1;
+ aa[0] = kernel_run_animation(kernel_name('t', 1), 100);
+ kernel_reset_animation(aa[0], 13);
+ aainfo[0]._active = -1;
return;
}
if (!player_has(5) || !player_has(1)) {
- ss[8] = kernel_run_animation(kernel_name('t', 6), 104);
- aainfo[1]._val4 = -1;
- kernel_synch(KERNEL_ANIM, ss[8], KERNEL_NOW, 0);
+ aa[4] = kernel_run_animation(kernel_name('t', 6), 104);
+ aainfo[4]._active = -1;
+ kernel_synch(KERNEL_ANIM, aa[4], KERNEL_NOW, 0);
global[g009] = -1;
global_midi_play(15);
return;
}
if (player_has(15)) {
- ss[4] = kernel_run_animation(kernel_name('t', 1), 100);
- kernel_reset_animation(ss[4], 13);
- aa[9] = -1;
+ aa[0] = kernel_run_animation(kernel_name('t', 1), 100);
+ kernel_reset_animation(aa[0], 13);
+ aainfo[0]._active = -1;
return;
}
- ss[8] = kernel_run_animation(kernel_name('t', 6), 104);
- aainfo[1]._val4 = -1;
- kernel_synch(KERNEL_ANIM, ss[8], KERNEL_NOW, 0);
+ aa[4] = kernel_run_animation(kernel_name('t', 6), 104);
+ aainfo[4]._active = -1;
+ kernel_synch(KERNEL_ANIM, aa[4], KERNEL_NOW, 0);
global[g009] = -1;
global_midi_play(15);
return;
@@ -1093,25 +1052,25 @@ static void room_308_init() {
previous_room != 199)
return;
- seq[0] = kernel_run_animation(kernel_name('t', 11), 0);
- aainfo[2]._val4 = -1;
- aainfo[3]._frame = 0;
- kernel_synch(KERNEL_ANIM, seq[0], KERNEL_NOW, 0);
+ aa[6] = kernel_run_animation(kernel_name('t', 11), 0);
+ aainfo[6]._active = -1;
+ aainfo[6]._val3 = 0;
+ kernel_synch(KERNEL_ANIM, aa[6], KERNEL_NOW, 0);
- seq[1] = kernel_run_animation(kernel_name('t', 19), 0);
- aainfo[3]._val3 = -1;
- aainfo[4]._active = 0;
- kernel_synch(KERNEL_ANIM, seq[1], KERNEL_NOW, 0);
+ aa[7] = kernel_run_animation(kernel_name('t', 19), 0);
+ aainfo[7]._active = -1;
+ aainfo[7]._val3 = 0;
+ kernel_synch(KERNEL_ANIM, aa[7], KERNEL_NOW, 0);
- seq[2] = kernel_run_animation(kernel_name('t', 13), 0);
- aainfo[4]._frame = -1;
- aainfo[4]._val4 = 0;
- kernel_synch(KERNEL_ANIM, seq[2], KERNEL_NOW, 0);
+ aa[8] = kernel_run_animation(kernel_name('t', 13), 0);
+ aainfo[8]._active = -1;
+ aainfo[8]._val3 = 0;
+ kernel_synch(KERNEL_ANIM, aa[8], KERNEL_NOW, 0);
- seq[3] = kernel_run_animation(kernel_name('t', 18), 0);
- aainfo[5]._active = -1;
- aainfo[5]._val3 = 0;
- kernel_synch(KERNEL_ANIM, seq[3], KERNEL_NOW, 0);
+ aa[9] = kernel_run_animation(kernel_name('t', 18), 0);
+ aainfo[9]._active = -1;
+ aainfo[9]._val3 = 0;
+ kernel_synch(KERNEL_ANIM, aa[9], KERNEL_NOW, 0);
if (global[g073] == 0) {
global[g009] = -1;
@@ -1119,12 +1078,12 @@ static void room_308_init() {
return;
}
- kernel_reset_animation(seq[2], 6);
- seq[7] = kernel_run_animation(kernel_name('t', 14), 0);
- kernel_reset_animation(seq[7], 7);
- aainfo[7]._val4 = -1;
- aainfo[8]._frame = 0;
- scratch._c2 = 100;
+ kernel_reset_animation(aa[8], 6);
+ aa[13] = kernel_run_animation(kernel_name('t', 14), 0);
+ kernel_reset_animation(aa[13], 7);
+ aainfo[13]._active = -1;
+ aainfo[13]._val3 = 0;
+ scratch._c0 = 100;
global[g009] = -1;
global_midi_play(15);
}
@@ -1135,75 +1094,75 @@ static void room_308_daemon() {
switch (scratch._b4) {
case 1:
clear_selected_item();
- aainfo[5]._val3 = 0;
+ aainfo[9]._val3 = 0;
scratch._b4 = -1;
player.commands_allowed = true;
scratch._c2 = 0;
break;
case 2:
clear_selected_item();
- aainfo[5]._val3 = 0;
- aainfo[8]._frame = 0;
+ aainfo[9]._val3 = 0;
+ aainfo[13]._val3 = 0;
scratch._b4 = -1;
player.commands_allowed = true;
scratch._c2 = 0;
break;
case 3:
- scratch._94 = 0;
+ aainfo[18]._val3 = 0;
break;
case 4:
- scratch._9a = 0;
+ aainfo[19]._val3 = 0;
break;
case 5:
- scratch._ac = 0;
+ aainfo[22]._val3 = 0;
break;
}
break;
case 100:
dont_frag_the_palette();
- kernel_abort_animation(ss[4]);
- aa[9] = 0;
- ss[5] = kernel_run_animation(kernel_name('t', 3), 101);
- aainfo[0]._frame = -1;
- kernel_synch(KERNEL_ANIM, ss[5], KERNEL_NOW, 0);
+ kernel_abort_animation(aa[0]);
+ aainfo[0]._active = 0;
+ aa[1] = kernel_run_animation(kernel_name('t', 3), 101);
+ aainfo[1]._active = -1;
+ kernel_synch(KERNEL_ANIM, aa[1], KERNEL_NOW, 0);
break;
case 101:
dont_frag_the_palette();
- kernel_abort_animation(ss[5]);
- aainfo[0]._frame = 0;
- ss[6] = kernel_run_animation(kernel_name('t', 5), 102);
- aainfo[0]._val4 = -1;
- kernel_synch(KERNEL_ANIM, ss[6], KERNEL_NOW, 0);
+ kernel_abort_animation(aa[1]);
+ aainfo[1]._active = 0;
+ aa[2] = kernel_run_animation(kernel_name('t', 5), 102);
+ aainfo[2]._active = -1;
+ kernel_synch(KERNEL_ANIM, aa[2], KERNEL_NOW, 0);
global[g009] = -1;
global_midi_play(15);
break;
case 102:
dont_frag_the_palette();
- kernel_abort_animation(ss[6]);
- aainfo[0]._val4 = 0;
+ kernel_abort_animation(aa[2]);
+ aainfo[2]._active = 0;
if (player_has(5) && player_has(1) && player_has(15)) {
- ss[7] = kernel_run_animation(kernel_name('t', 8), 103);
- aainfo[1]._frame = -1;
- kernel_synch(KERNEL_ANIM, ss[7], KERNEL_NOW, 0);
+ aa[3] = kernel_run_animation(kernel_name('t', 8), 103);
+ aainfo[3]._active = -1;
+ kernel_synch(KERNEL_ANIM, aa[3], KERNEL_NOW, 0);
} else {
global[player_score] = -1;
- ss[8] = kernel_run_animation(kernel_name('t', 6), 104);
- aainfo[1]._val4 = -1;
- kernel_synch(KERNEL_ANIM, ss[8], KERNEL_NOW, 0);
+ aa[4] = kernel_run_animation(kernel_name('t', 6), 104);
+ aainfo[4]._active = -1;
+ kernel_synch(KERNEL_ANIM, aa[4], KERNEL_NOW, 0);
}
break;
case 103:
dont_frag_the_palette();
- kernel_abort_animation(ss[7]);
- aainfo[1]._frame = 0;
- ss[9] = kernel_run_animation(kernel_name('t', 7), 105);
- kernel_reset_animation(ss[9], 6);
- aainfo[2]._frame = -1;
- kernel_synch(KERNEL_ANIM, ss[9], KERNEL_NOW, 0);
+ kernel_abort_animation(aa[3]);
+ aainfo[3]._active = 0;
+ aa[5] = kernel_run_animation(kernel_name('t', 7), 105);
+ kernel_reset_animation(aa[5], 6);
+ aainfo[5]._active = -1;
+ kernel_synch(KERNEL_ANIM, aa[5], KERNEL_NOW, 0);
break;
case 104:
@@ -1221,29 +1180,29 @@ static void room_308_daemon() {
case 105:
dont_frag_the_palette();
- kernel_abort_animation(ss[9]);
- aainfo[2]._frame = 0;
- seq[5] = kernel_run_animation(kernel_name('t', 9), 0);
- kernel_reset_animation(seq[5], 6);
- aainfo[6]._val3 = -1;
- kernel_synch(KERNEL_ANIM, seq[5], KERNEL_NOW, 0);
+ kernel_abort_animation(aa[5]);
+ aainfo[5]._active = 0;
+ aa[11] = kernel_run_animation(kernel_name('t', 9), 0);
+ kernel_reset_animation(aa[11], 6);
+ aainfo[11]._active = -1;
+ kernel_synch(KERNEL_ANIM, aa[11], KERNEL_NOW, 0);
break;
case 108:
digi_play_build(308, 't', 3, 1);
- aainfo[5]._val3 = 3;
+ aainfo[9]._val3 = 3;
scratch._b4 = 1;
break;
case 109:
digi_play_build(308, 't', 4, 1);
- aainfo[5]._val3 = 3;
+ aainfo[9]._val3 = 3;
scratch._b4 = 2;
break;
case 110:
- kernel_abort_animation(aa[6]);
- scratch._a8 = 0;
+ kernel_abort_animation(aa[22]);
+ aainfo[22]._active = 0;
break;
case 111:
@@ -1261,30 +1220,30 @@ static void room_308_daemon() {
break;
}
- if (aa[9] != 0) room_308_anim1();
- if (aainfo[0]._frame != 0) room_308_anim2();
- if (aainfo[0]._val4 != 0) room_308_anim3();
- if (aainfo[1]._frame != 0) room_308_anim4();
- if (aainfo[1]._val4 != 0) room_308_anim5();
- if (aainfo[2]._frame != 0) room_308_anim7();
- if (aainfo[6]._val3 != 0) room_308_anim8();
- if (aainfo[2]._val4 != 0) room_308_anim9();
- if (aainfo[3]._val3 != 0) room_308_anim10();
- if (aainfo[4]._frame != 0) room_308_anim11();
- if (aainfo[5]._active != 0) room_308_anim12();
- if (aainfo[5]._val4 != 0) room_308_anim13();
- if (aainfo[7]._active != 0) room_308_anim14();
- if (aainfo[7]._val4 != 0) room_308_anim15();
- if (aainfo[8]._val3 != 0) room_308_anim16();
- if (aainfo[9]._active != 0) room_308_anim17();
- if (aainfo[9]._val3 != 0) room_308_anim18();
- if (scratch._8c != 0) room_308_anim19();
- if (scratch._90 != 0) room_308_anim20();
- if (scratch._96 != 0) room_308_anim21();
- if (scratch._9c != 0) room_308_anim22();
- if (scratch._a2 != 0) room_308_anim23();
- if (scratch._a8 != 0) room_308_anim24();
- if (scratch._ae != 0) room_308_anim25();
+ if (aainfo[0]._active != 0) room_308_anim1();
+ if (aainfo[1]._active != 0) room_308_anim2();
+ if (aainfo[2]._active != 0) room_308_anim3();
+ if (aainfo[3]._active != 0) room_308_anim4();
+ if (aainfo[4]._active != 0) room_308_anim5();
+ if (aainfo[5]._active != 0) room_308_anim7();
+ if (aainfo[11]._active != 0) room_308_anim8();
+ if (aainfo[6]._active != 0) room_308_anim9();
+ if (aainfo[7]._active != 0) room_308_anim10();
+ if (aainfo[8]._active != 0) room_308_anim11();
+ if (aainfo[9]._active != 0) room_308_anim12();
+ if (aainfo[10]._active != 0) room_308_anim13();
+ if (aainfo[12]._active != 0) room_308_anim14();
+ if (aainfo[13]._active != 0) room_308_anim15();
+ if (aainfo[14]._active != 0) room_308_anim16();
+ if (aainfo[15]._active != 0) room_308_anim17();
+ if (aainfo[16]._active != 0) room_308_anim18();
+ if (aainfo[17]._active != 0) room_308_anim19();
+ if (aainfo[18]._active != 0) room_308_anim20();
+ if (aainfo[19]._active != 0) room_308_anim21();
+ if (aainfo[20]._active != 0) room_308_anim22();
+ if (aainfo[21]._active != 0) room_308_anim23();
+ if (aainfo[22]._active != 0) room_308_anim24();
+ if (aainfo[23]._active != 0) room_308_anim25();
}
static void room_308_pre_parser() {
@@ -1303,20 +1262,20 @@ static void room_308_parser() {
int sel;
if (global[walker_converse_state] != 0) {
- scratch._bc = -1;
+ scratch._ba = -1;
player.commands_allowed = false;
- aainfo[5]._val3 = 8;
+ aainfo[9]._val3 = 8;
goto handled;
}
if (player_parse(words_tail, 0)) {
- scratch._bc = -1;
+ scratch._ba = -1;
player.commands_allowed = false;
goto handled;
}
if (player_parse(words_russel, 0)) {
- scratch._be = -1;
+ scratch._bc = -1;
player.commands_allowed = false;
goto handled;
}
@@ -1327,25 +1286,25 @@ static void room_308_parser() {
if (sel == 15 || sel == 1) {
inv_enable_command = false;
- object_set_quality(rubber_band, 0, -1);
- object_set_quality(forked_stick, 0, -1);
- object_set_quality(pebbles, 0, -1);
- scratch._b8 = 1;
- aainfo[4]._val4 = 7;
- aainfo[5]._val3 = 8;
+ object_set_quality(rubber_band, -1, -1);
+ object_set_quality(forked_stick, -1, -1);
+ object_set_quality(pebbles, -1, -1);
+ scratch._b6 = 1;
+ aainfo[8]._val3 = 7;
+ aainfo[9]._val3 = 8;
goto handled;
}
if (sel == 5) {
inv_enable_command = false;
- object_set_quality(pebbles, 0, -1);
- scratch._b8 = 0;
- aainfo[4]._val4 = 6;
- aainfo[5]._val3 = 8;
+ object_set_quality(pebbles, -1, -1);
+ scratch._b6 = 0;
+ aainfo[8]._val3 = 6;
+ aainfo[9]._val3 = 8;
goto handled;
}
- goto done;
+ goto handled;
handled:
player.command_ready = false;
done:
@@ -1356,26 +1315,45 @@ void room_308_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 (auto &ai : scratch.animation_info) ai.synchronize(s);
- s.syncAsSint16LE(scratch._8c);
- s.syncAsSint16LE(scratch._90);
- s.syncAsSint16LE(scratch._96);
- s.syncAsSint16LE(scratch._9c);
- s.syncAsSint16LE(scratch._a2);
- s.syncAsSint16LE(scratch._a8);
- s.syncAsSint16LE(scratch._ae);
+
+ s.syncAsSint16LE(scratch._unused);
+
+ // Sync aainfo entries individually, with val3 only where present
+ // Indices with val3: 6,7,8,9,10,12,13,18,19,20,21,22
+ for (int i = 0; i < 24; i++) {
+ s.syncAsSint16LE(aainfo[i]._active);
+ s.syncAsSint16LE(aainfo[i]._frame);
+ switch (i) {
+ case 6:
+ case 7:
+ case 8:
+ case 9:
+ case 10:
+ case 12:
+ case 13:
+ case 18:
+ case 19:
+ case 20:
+ case 21:
+ case 22:
+ s.syncAsSint16LE(aainfo[i]._val3);
+ break;
+ default:
+ break;
+ }
+ }
+
s.syncAsSint16LE(scratch._b2);
s.syncAsSint16LE(scratch._b4);
+ s.syncAsSint16LE(scratch._b6);
s.syncAsSint16LE(scratch._b8);
s.syncAsSint16LE(scratch._ba);
s.syncAsSint16LE(scratch._bc);
s.syncAsSint16LE(scratch._be);
s.syncAsSint16LE(scratch._c0);
s.syncAsByte(scratch._c2);
- s.syncAsByte(scratch._c2hi);
+ s.syncAsByte(scratch._c3);
s.syncAsByte(scratch._c4);
- s.syncAsByte(scratch._c5);
- s.syncAsByte(scratch._c6);
}
void room_308_preload() {
More information about the Scummvm-git-logs
mailing list