[Scummvm-git-logs] scummvm master -> 1db23e2d9741ae3c20326d2ced9d0fb4ce88b675
dreammaster
noreply at scummvm.org
Sun Jun 7 04:16:06 UTC 2026
This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://api.github.com/repos/scummvm/scummvm .
Summary:
f3af6e23b9 MADS: FOREST: Implemented missing bits of room 203, AnimationInfo fields rename
1db23e2d97 MADS: FOREST: Implemented room 204, other rooms preload functions
Commit: f3af6e23b941da28fc7529796088bf19634119e3
https://github.com/scummvm/scummvm/commit/f3af6e23b941da28fc7529796088bf19634119e3
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2026-06-07T13:32:52+10:00
Commit Message:
MADS: FOREST: Implemented missing bits of room 203, AnimationInfo fields rename
Changed paths:
engines/mads/madsv2/forest/global.h
engines/mads/madsv2/forest/rooms/room101.cpp
engines/mads/madsv2/forest/rooms/room103.cpp
engines/mads/madsv2/forest/rooms/room104.cpp
engines/mads/madsv2/forest/rooms/room106.cpp
engines/mads/madsv2/forest/rooms/room107.cpp
engines/mads/madsv2/forest/rooms/room199.cpp
engines/mads/madsv2/forest/rooms/room201.cpp
engines/mads/madsv2/forest/rooms/room203.cpp
engines/mads/madsv2/forest/rooms/room204.cpp
diff --git a/engines/mads/madsv2/forest/global.h b/engines/mads/madsv2/forest/global.h
index b602faf2352..75b09e04960 100644
--- a/engines/mads/madsv2/forest/global.h
+++ b/engines/mads/madsv2/forest/global.h
@@ -244,13 +244,13 @@ enum {
};
struct AnimationInfo {
- int16 _val1;
- int16 _val2;
+ int16 _active;
+ int16 _frame;
int16 _val3;
int16 _val4;
void synchronize(Common::Serializer &s) {
- s.syncMultipleLE(_val1, _val2, _val3, _val4);
+ s.syncMultipleLE(_active, _frame, _val3, _val4);
}
};
diff --git a/engines/mads/madsv2/forest/rooms/room101.cpp b/engines/mads/madsv2/forest/rooms/room101.cpp
index e37b7788ccc..101cc01d88d 100644
--- a/engines/mads/madsv2/forest/rooms/room101.cpp
+++ b/engines/mads/madsv2/forest/rooms/room101.cpp
@@ -87,14 +87,14 @@ static void room_101_init1() {
mouse_hide();
for (auto &v : aainfo) {
- v._val1 = 0;
- v._val2 = -1;
+ v._active = 0;
+ v._frame = -1;
}
stop_speech_on_run_animation = false;
aa[8] = kernel_run_animation(kernel_name('I', 1), 0);
- aainfo[8]._val1 = -1;
- aainfo[8]._val2 = 8;
+ aainfo[8]._active = -1;
+ aainfo[8]._frame = 8;
kernel_reset_animation(aa[8], 8);
}
@@ -126,7 +126,7 @@ static void room_101_init2() {
}
aa[6] = kernel_run_animation(kernel_name('b', 1), 104);
- aainfo[6]._val1 = -1;
+ aainfo[6]._active = -1;
scratch._9c = 1;
scratch._ac = 1;
}
@@ -163,14 +163,14 @@ static void room_101_init3() {
if (previous_room == 104) {
aa[0] = kernel_run_animation(kernel_name('y', 1), 100);
- aainfo[0]._val1 = -1;
+ aainfo[0]._active = -1;
scratch._9c = 57;
return;
}
if (previous_room == 106) {
aa[0] = kernel_run_animation(kernel_name('y', 2), 100);
- aainfo[0]._val1 = -1;
+ aainfo[0]._active = -1;
scratch._9c = 77;
return;
}
@@ -198,7 +198,7 @@ static void room_101_init3() {
player.commands_allowed = 0;
player.walker_visible = 0;
global[g009] = 0;
- aainfo[5]._val1 = -1;
+ aainfo[5]._active = -1;
aa[5] = kernel_run_animation(kernel_name('b', 8), 111);
scratch._ae = 4;
return;
@@ -225,8 +225,8 @@ static void room_101_init() {
}
for (auto &s : aainfo) {
- s._val1 = 0;
- s._val2 = 1;
+ s._active = 0;
+ s._frame = 1;
s._val3 = s._val4 = 0;
}
@@ -283,9 +283,9 @@ static void room_101_init() {
static void room_101_anim1() {
int16 frame = kernel_anim[aa[6]].frame;
- if (frame == aainfo[6]._val2)
+ if (frame == aainfo[6]._frame)
return;
- aainfo[6]._val2 = frame;
+ aainfo[6]._frame = frame;
switch (scratch._ac) {
case 2:
@@ -297,19 +297,19 @@ static void room_101_anim1() {
}
if (frame == 6) {
if (aainfo[6]._val3 != 10) return;
- aainfo[6]._val2 = 2;
+ aainfo[6]._frame = 2;
kernel_reset_animation(aa[6], 2);
return;
}
if (frame == 10) {
if (aainfo[6]._val3 != 9) return;
- aainfo[6]._val2 = 6;
+ aainfo[6]._frame = 6;
kernel_reset_animation(aa[6], 6);
return;
}
if (frame == 14) {
if (aainfo[6]._val3 != 12) return;
- aainfo[6]._val2 = 13;
+ aainfo[6]._frame = 13;
kernel_reset_animation(aa[6], 13);
}
return;
@@ -323,7 +323,7 @@ static void room_101_anim1() {
}
if (frame == 15) {
if (aainfo[6]._val3 != 9) return;
- aainfo[6]._val2 = 11;
+ aainfo[6]._frame = 11;
kernel_reset_animation(aa[6], 11);
}
return;
@@ -337,7 +337,7 @@ static void room_101_anim1() {
}
if (frame == 12) {
if (aainfo[6]._val3 != 11) return;
- aainfo[6]._val2 = 8;
+ aainfo[6]._frame = 8;
kernel_reset_animation(aa[6], 8);
}
return;
@@ -351,7 +351,7 @@ static void room_101_anim1() {
}
if (frame == 30) {
if (aainfo[6]._val3 != 10) return;
- aainfo[6]._val2 = 29;
+ aainfo[6]._frame = 29;
kernel_reset_animation(aa[6], 29);
}
return;
@@ -365,7 +365,7 @@ static void room_101_anim1() {
}
if (frame == 94) {
if (aainfo[6]._val3 != 10) return;
- aainfo[6]._val2 = 90;
+ aainfo[6]._frame = 90;
kernel_reset_animation(aa[6], 90);
}
return;
@@ -374,30 +374,30 @@ static void room_101_anim1() {
static void room_101_anim2() {
int16 frame = kernel_anim[aa[7]].frame;
- if (frame == aainfo[7]._val2)
+ if (frame == aainfo[7]._frame)
return;
- aainfo[7]._val2 = frame;
+ aainfo[7]._frame = frame;
if (frame != 18) return;
if (aainfo[7]._val3 != 7) return;
- aainfo[7]._val2 = 6;
+ aainfo[7]._frame = 6;
kernel_reset_animation(aa[7], 6);
}
static void room_101_anim3() {
int16 frame = kernel_anim[aa[0]].frame;
- if (frame != aainfo[0]._val2)
- aainfo[0]._val2 = frame;
+ if (frame != aainfo[0]._frame)
+ aainfo[0]._frame = frame;
if (global[player_hyperwalked] != -1) return;
int16 resetFrame = scratch._9c - 1;
- aainfo[0]._val2 = resetFrame;
+ aainfo[0]._frame = resetFrame;
kernel_reset_animation(aa[0], resetFrame);
}
static void room_101_anim4() {
int16 frame = kernel_anim[aa[4]].frame;
- if (frame == aainfo[4]._val2)
+ if (frame == aainfo[4]._frame)
return;
- aainfo[4]._val2 = frame;
+ aainfo[4]._frame = frame;
switch (aainfo[4]._val3) {
case 13:
@@ -418,19 +418,19 @@ static void room_101_anim4() {
}
if (frame == 7) {
if (scratch._aa != 50) return;
- aainfo[4]._val2 = 3;
+ aainfo[4]._frame = 3;
kernel_reset_animation(aa[4], 3);
return;
}
if (frame == 9) {
if (scratch._aa != 50) return;
- aainfo[4]._val2 = 8;
+ aainfo[4]._frame = 8;
kernel_reset_animation(aa[4], 8);
return;
}
if (frame == 18) {
if (scratch._aa != 51) return;
- aainfo[4]._val2 = 14;
+ aainfo[4]._frame = 14;
kernel_reset_animation(aa[4], 14);
}
return;
@@ -449,21 +449,21 @@ static void room_101_anim4() {
static void room_101_anim5() {
int16 frame = kernel_anim[aa[2]].frame;
- if (frame != aainfo[2]._val2)
- aainfo[2]._val2 = frame;
+ if (frame != aainfo[2]._frame)
+ aainfo[2]._frame = frame;
}
static void room_101_anim6() {
int16 frame = kernel_anim[aa[1]].frame;
- if (frame != aainfo[1]._val2)
- aainfo[1]._val2 = frame;
+ if (frame != aainfo[1]._frame)
+ aainfo[1]._frame = frame;
}
static void room_101_anim7() {
int16 frame = kernel_anim[aa[5]].frame;
- if (frame == aainfo[5]._val2)
+ if (frame == aainfo[5]._frame)
return;
- aainfo[5]._val2 = frame;
+ aainfo[5]._frame = frame;
if (frame == 2) {
if (scratch._ae != 4) return;
digi_initial_volume(100);
@@ -474,7 +474,7 @@ static void room_101_anim7() {
if (frame == 78) {
if (scratch._ae != 5) return;
kernel_abort_animation(aa[5]);
- aainfo[5]._val1 = 0;
+ aainfo[5]._active = 0;
player.x = 96;
player.y = 140;
player.facing = 3;
@@ -487,17 +487,17 @@ static void room_101_anim7() {
static void room_101_anim8() {
int16 frame = kernel_anim[aa[8]].frame;
- if (frame == aainfo[8]._val2)
+ if (frame == aainfo[8]._frame)
return;
- aainfo[8]._val2 = frame;
+ aainfo[8]._frame = frame;
if (frame != 9) {
if (frame != 81) return;
dont_frag_the_palette();
kernel_abort_animation(aa[8]);
- aainfo[8]._val1 = 0;
+ aainfo[8]._active = 0;
stop_speech_on_run_animation = false;
aa[9] = kernel_run_animation(kernel_name('I', 2), 0);
- aainfo[9]._val1 = -1;
+ aainfo[9]._active = -1;
kernel_synch(KERNEL_ANIM, aa[9], KERNEL_ANIM, aa[8]);
}
kernel_timing_trigger(1, 113);
@@ -505,8 +505,8 @@ static void room_101_anim8() {
static void room_101_anim9() {
int16 frame = kernel_anim[aa[9]].frame;
- if (frame != aainfo[9]._val2) {
- aainfo[9]._val2 = frame;
+ if (frame != aainfo[9]._frame) {
+ aainfo[9]._frame = frame;
if (frame == 99) {
digi_play_build(101, 'r', 3, 1);
scratch._b4 = 99;
@@ -528,10 +528,10 @@ static void room_101_anim9() {
} else if (frame == 205) {
dont_frag_the_palette();
kernel_abort_animation(aa[9]);
- aainfo[9]._val1 = 0;
+ aainfo[9]._active = 0;
stop_speech_on_run_animation = false;
aa[10] = kernel_run_animation(kernel_name('I', 3), 0);
- aainfo[10]._val1 = -1;
+ aainfo[10]._active = -1;
kernel_synch(KERNEL_ANIM, aa[10], KERNEL_ANIM, aa[9]);
kernel_timing_trigger(1, 113);
}
@@ -546,12 +546,12 @@ static void room_101_anim9() {
static void room_101_anim10() {
int16 frame = kernel_anim[aa[10]].frame;
- if (frame != aainfo[10]._val2) {
- aainfo[10]._val2 = frame;
+ if (frame != aainfo[10]._frame) {
+ aainfo[10]._frame = frame;
if (frame == 90) {
stop_speech_on_run_animation = true;
kernel_abort_animation(aa[10]);
- aainfo[10]._val1 = 0;
+ aainfo[10]._active = 0;
new_room = 106;
} else if (frame < 90) {
if (frame == 35) {
@@ -598,39 +598,39 @@ static void room_101_daemon() {
case 7:
switch (scratch._aa) {
case 1:
- aainfo[6]._val2 = 13;
+ aainfo[6]._frame = 13;
kernel_reset_animation(aa[6], 13);
aainfo[6]._val3 = 12;
kernel_timing_trigger(25, 7);
scratch._aa++;
break;
case 2:
- aainfo[6]._val2 = 6;
+ aainfo[6]._frame = 6;
kernel_reset_animation(aa[6], 6);
aainfo[6]._val3 = 9;
digi_play_build(101, 'r', 1, 1);
scratch._aa++;
break;
case 3:
- aainfo[6]._val2 = 13;
+ aainfo[6]._frame = 13;
kernel_reset_animation(aa[6], 13);
aainfo[6]._val3 = 12;
kernel_timing_trigger(30, 106);
break;
case 4:
- aainfo[6]._val2 = 12;
+ aainfo[6]._frame = 12;
kernel_reset_animation(aa[6], 12);
aainfo[6]._val3 = 0;
scratch._aa++;
break;
case 10:
- aainfo[6]._val2 = 15;
+ aainfo[6]._frame = 15;
kernel_reset_animation(aa[6], 15);
aainfo[6]._val3 = 0;
scratch._aa++;
break;
case 20:
- aainfo[6]._val2 = 13;
+ aainfo[6]._frame = 13;
kernel_reset_animation(aa[6], 13);
aainfo[6]._val3 = 0;
scratch._aa++;
@@ -641,13 +641,13 @@ static void room_101_daemon() {
player.commands_allowed = true;
break;
case 30:
- aainfo[6]._val2 = 31;
+ aainfo[6]._frame = 31;
kernel_reset_animation(aa[6], 31);
aainfo[6]._val3 = 0;
scratch._aa++;
break;
case 40:
- aainfo[6]._val2 = 95;
+ aainfo[6]._frame = 95;
kernel_reset_animation(aa[6], 95);
aainfo[6]._val3 = 0;
scratch._aa++;
@@ -663,18 +663,18 @@ static void room_101_daemon() {
kernel_seq_delete(seq[2]);
kernel_flip_hotspot(105, 0);
aa[4] = kernel_run_animation(kernel_name('R', 5), 103);
- aainfo[4]._val1 = -1;
+ aainfo[4]._active = -1;
aainfo[4]._val3 = 14;
scratch._a2 = 4;
kernel_synch(KERNEL_ANIM, scratch._a4, KERNEL_ANIM, aa[4]);
break;
case 50:
- aainfo[4]._val2 = 8;
+ aainfo[4]._frame = 8;
kernel_reset_animation(aa[4], 8);
kernel_timing_trigger(45, 107);
break;
case 51:
- aainfo[4]._val2 = 19;
+ aainfo[4]._frame = 19;
kernel_reset_animation(aa[4], 19);
break;
case 59:
@@ -688,7 +688,7 @@ static void room_101_daemon() {
kernel_seq_delete(seq[0]);
kernel_flip_hotspot(164, 0);
aa[4] = kernel_run_animation(kernel_name('R', 6), 103);
- aainfo[4]._val1 = -1;
+ aainfo[4]._active = -1;
aainfo[4]._val3 = 15;
scratch._a2 = 4;
kernel_synch(KERNEL_ANIM, scratch._a4, KERNEL_ANIM, aa[4]);
@@ -751,7 +751,7 @@ static void room_101_daemon() {
case 24:
if (scratch._96 == 3) {
aa[1] = kernel_run_animation(kernel_name('E', 1), 102);
- aainfo[1]._val1 = -1;
+ aainfo[1]._active = -1;
scratch._a0 = 1;
kernel_reset_animation(scratch._a4, 0);
kernel_synch(KERNEL_ANIM, aa[1], KERNEL_ANIM, scratch._a4);
@@ -762,7 +762,7 @@ static void room_101_daemon() {
case 25:
if (scratch._98 == 2) {
aa[2] = kernel_run_animation(kernel_name('R', 1), 101);
- aainfo[2]._val1 = -1;
+ aainfo[2]._active = -1;
scratch._9e = 2;
kernel_reset_animation(scratch._a6, 0);
kernel_synch(KERNEL_ANIM, aa[2], KERNEL_ANIM, scratch._a6);
@@ -775,32 +775,32 @@ static void room_101_daemon() {
case 1:
kernel_abort_animation(aa[6]);
aa[6] = kernel_run_animation(kernel_name('b', 2), 104);
- aainfo[6]._val1 = -1;
+ aainfo[6]._active = -1;
scratch._9c = 1;
scratch._ac++;
break;
case 2:
kernel_abort_animation(aa[6]);
aa[6] = kernel_run_animation(kernel_name('b', 3), 104);
- aainfo[6]._val1 = -1;
+ aainfo[6]._active = -1;
scratch._9c = 1;
scratch._ac++;
break;
case 3:
kernel_abort_animation(aa[6]);
aa[6] = kernel_run_animation(kernel_name('r', 1), 104);
- aainfo[6]._val1 = -1;
+ aainfo[6]._active = -1;
scratch._9c = 1;
scratch._ac++;
break;
case 4:
kernel_abort_animation(aa[6]);
aa[7] = kernel_run_animation(kernel_name('r', 2), 105);
- aainfo[7]._val1 = -1;
+ aainfo[7]._active = -1;
aainfo[7]._val3 = 7;
scratch._9c = 1;
aa[6] = kernel_run_animation(kernel_name('e', 1), 104);
- aainfo[6]._val1 = -1;
+ aainfo[6]._active = -1;
scratch._9c = 1;
scratch._ac++;
break;
@@ -809,7 +809,7 @@ static void room_101_daemon() {
kernel_flip_hotspot(110, 0);
kernel_abort_animation(aa[6]);
aa[6] = kernel_run_animation(kernel_name('e', 2), 104);
- aainfo[6]._val1 = -1;
+ aainfo[6]._active = -1;
scratch._9c = 1;
scratch._ac++;
break;
@@ -820,28 +820,28 @@ static void room_101_daemon() {
kernel_synch(KERNEL_ANIM, scratch._a4, KERNEL_NOW, 0);
global[g133] = 0;
aa[6] = kernel_run_animation(kernel_name('b', 4), 104);
- aainfo[6]._val1 = -1;
+ aainfo[6]._active = -1;
scratch._9c = 1;
scratch._ac++;
break;
case 7:
kernel_abort_animation(aa[6]);
aa[6] = kernel_run_animation(kernel_name('b', 5), 104);
- aainfo[6]._val1 = -1;
+ aainfo[6]._active = -1;
scratch._9c = 1;
scratch._ac++;
break;
case 8:
kernel_abort_animation(aa[6]);
aa[6] = kernel_run_animation(kernel_name('b', 6), 104);
- aainfo[6]._val1 = -1;
+ aainfo[6]._active = -1;
scratch._9c = 1;
scratch._ac++;
break;
case 9:
kernel_abort_animation(aa[6]);
aa[6] = kernel_run_animation(kernel_name('b', 9), 104);
- aainfo[6]._val1 = -1;
+ aainfo[6]._active = -1;
scratch._9c = 1;
scratch._ac++;
break;
@@ -861,7 +861,7 @@ static void room_101_daemon() {
case 103:
kernel_abort_animation(aa[4]);
- aainfo[4]._val1 = 0;
+ aainfo[4]._active = 0;
global[g131] = -1;
global[g141] = -1;
kernel_reset_animation(scratch._a4, 1);
@@ -876,7 +876,7 @@ static void room_101_daemon() {
break;
case 107:
- aainfo[4]._val2 = 13;
+ aainfo[4]._frame = 13;
kernel_reset_animation(aa[4], 13);
digi_play_build(101, 'B', 5, 1);
scratch._aa++;
@@ -891,7 +891,7 @@ static void room_101_daemon() {
break;
case 2:
kernel_abort_animation(aa[5]);
- aainfo[5]._val1 = 0;
+ aainfo[5]._active = 0;
new_room = 205;
break;
case 4:
@@ -913,7 +913,7 @@ static void room_101_daemon() {
kernel_seq_delete(seq[1]);
kernel_flip_hotspot(154, 0);
aa[4] = kernel_run_animation(kernel_name('R', 4), 103);
- aainfo[4]._val1 = -1;
+ aainfo[4]._active = -1;
aainfo[4]._val3 = 13;
scratch._a2 = 4;
kernel_synch(KERNEL_ANIM, scratch._a4, KERNEL_ANIM, aa[4]);
@@ -922,7 +922,7 @@ static void room_101_daemon() {
break;
case 106:
- aainfo[6]._val2 = 3;
+ aainfo[6]._frame = 3;
kernel_reset_animation(aa[6], 3);
aainfo[6]._val3 = 10;
digi_play_build(101, 'b', 2, 1);
@@ -931,7 +931,7 @@ static void room_101_daemon() {
case 105:
if (aainfo[7]._val3 == 0) {
- aainfo[7]._val1 = 0;
+ aainfo[7]._active = 0;
global[g141] = -1;
kernel_reset_animation(scratch._a6, 1);
kernel_synch(KERNEL_ANIM, scratch._a6, KERNEL_NOW, 0);
@@ -941,7 +941,7 @@ static void room_101_daemon() {
} else if (aainfo[7]._val3 == 8) {
kernel_abort_animation(aa[7]);
aa[7] = kernel_run_animation(kernel_name('r', 3), 105);
- aainfo[7]._val1 = -1;
+ aainfo[7]._active = -1;
scratch._9c = 1;
aainfo[7]._val3 = 0;
}
@@ -949,7 +949,7 @@ static void room_101_daemon() {
case 100:
kernel_abort_animation(aa[0]);
- aainfo[0]._val1 = 0;
+ aainfo[0]._active = 0;
global[g131] = -1;
global[g141] = -1;
kernel_reset_animation(scratch._a4, 1);
@@ -965,7 +965,7 @@ static void room_101_daemon() {
case 101:
kernel_abort_animation(aa[scratch._9e]);
- aainfo[scratch._9e]._val1 = 0;
+ aainfo[scratch._9e]._active = 0;
kernel_reset_animation(scratch._a6, 1);
kernel_synch(KERNEL_ANIM, scratch._a6, KERNEL_NOW, 0);
global[g143] = 0;
@@ -974,7 +974,7 @@ static void room_101_daemon() {
case 102:
kernel_abort_animation(aa[scratch._a0]);
- aainfo[scratch._a0]._val1 = 0;
+ aainfo[scratch._a0]._active = 0;
kernel_reset_animation(scratch._a4, 1);
kernel_synch(KERNEL_ANIM, scratch._a4, KERNEL_NOW, 0);
global[g133] = 0;
@@ -1007,16 +1007,16 @@ static void room_101_daemon() {
mouse_show();
}
- if (aainfo[6]._val1) room_101_anim1();
- if (aainfo[7]._val1) room_101_anim2();
- if (aainfo[0]._val1) room_101_anim3();
- if (aainfo[4]._val1) room_101_anim4();
- if (aainfo[2]._val1) room_101_anim5();
- if (aainfo[1]._val1) room_101_anim6();
- if (aainfo[5]._val1) room_101_anim7();
- if (aainfo[8]._val1) room_101_anim8();
- if (aainfo[9]._val1) room_101_anim9();
- if (aainfo[10]._val1) room_101_anim10();
+ if (aainfo[6]._active) room_101_anim1();
+ if (aainfo[7]._active) room_101_anim2();
+ if (aainfo[0]._active) room_101_anim3();
+ if (aainfo[4]._active) room_101_anim4();
+ if (aainfo[2]._active) room_101_anim5();
+ if (aainfo[1]._active) room_101_anim6();
+ if (aainfo[5]._active) room_101_anim7();
+ if (aainfo[8]._active) room_101_anim8();
+ if (aainfo[9]._active) room_101_anim9();
+ if (aainfo[10]._active) room_101_anim10();
if (scratch._b2)
kernel_random_frame(scratch._a8, &global[g151], global[g154]);
@@ -1074,7 +1074,7 @@ static void room_101_parser() {
player.commands_allowed = 0;
player.walker_visible = 0;
kernel.trigger_setup_mode = 1;
- aainfo[5]._val1 = -1;
+ aainfo[5]._active = -1;
aa[5] = kernel_run_animation(kernel_name('b', 5), 111);
scratch._ae = 1;
goto handled;
diff --git a/engines/mads/madsv2/forest/rooms/room103.cpp b/engines/mads/madsv2/forest/rooms/room103.cpp
index 7ec53fc9625..d12e5461d0f 100644
--- a/engines/mads/madsv2/forest/rooms/room103.cpp
+++ b/engines/mads/madsv2/forest/rooms/room103.cpp
@@ -67,8 +67,8 @@ static void room_103_init() {
scratch._92 = -1;
for (int count = 0; count < 10; count++) {
- aainfo[count]._val1 = 0;
- aainfo[count]._val2 = 1;
+ aainfo[count]._active = 0;
+ aainfo[count]._frame = 1;
aainfo[count]._val3 = 0;
aainfo[count]._val4 = 0;
}
@@ -80,18 +80,18 @@ static void room_103_init() {
player.commands_allowed = 0;
for (int count = 0; count < 10; count++) {
- aainfo[count]._val1 = 0;
- aainfo[count]._val2 = -1;
+ aainfo[count]._active = 0;
+ aainfo[count]._frame = -1;
}
aa[0] = kernel_run_animation(kernel_name('F', 1), 0);
- aainfo[0]._val1 = -1;
+ aainfo[0]._active = -1;
}
static void room_103_anim1() {
- if (kernel_anim[aa[0]].frame != aainfo[0]._val2) {
+ if (kernel_anim[aa[0]].frame != aainfo[0]._frame) {
int16 frame = kernel_anim[aa[0]].frame;
- aainfo[0]._val2 = frame;
+ aainfo[0]._frame = frame;
if (frame == 1) {
digi_initial_volume(20);
@@ -100,10 +100,10 @@ static void room_103_anim1() {
digi_flag1 = true;
} else if (frame == 273) {
kernel_abort_animation(aa[0]);
- aainfo[0]._val1 = 0;
+ aainfo[0]._active = 0;
stop_speech_on_run_animation = false;
aa[1] = kernel_run_animation(kernel_name('F', 2), 0);
- aainfo[1]._val1 = -1;
+ aainfo[1]._active = -1;
kernel_synch(KERNEL_ANIM, aa[1], KERNEL_ANIM, aa[0]);
}
}
@@ -119,9 +119,9 @@ static void room_103_anim1() {
}
static void room_103_anim2() {
- if (kernel_anim[aa[1]].frame != aainfo[1]._val2) {
+ if (kernel_anim[aa[1]].frame != aainfo[1]._frame) {
int16 frame = kernel_anim[aa[1]].frame;
- aainfo[1]._val2 = frame;
+ aainfo[1]._frame = frame;
if (frame == 165) {
digi_flag1 = false;
@@ -132,16 +132,16 @@ static void room_103_anim2() {
scratch._90 = 186;
} else if (frame == 195) {
if (aainfo[1]._val3 == 11) {
- aainfo[1]._val2 = 186;
+ aainfo[1]._frame = 186;
kernel_reset_animation(aa[1], 186);
}
} else if (frame == 196) {
dont_frag_the_palette();
kernel_abort_animation(aa[1]);
- aainfo[1]._val1 = 0;
+ aainfo[1]._active = 0;
stop_speech_on_run_animation = false;
aa[2] = kernel_run_animation(kernel_name('F', 3), 0);
- aainfo[2]._val1 = -1;
+ aainfo[2]._active = -1;
kernel_reset_animation(aa[2], 3);
kernel_synch(KERNEL_ANIM, aa[2], KERNEL_ANIM, aa[1]);
}
@@ -166,7 +166,7 @@ static void room_103_anim2() {
} else if (scratch._90 == 186) {
scratch._90 = -1;
aainfo[1]._val3 = 13;
- aainfo[1]._val2 = 195;
+ aainfo[1]._frame = 195;
kernel_reset_animation(aa[1], 195);
}
}
@@ -182,9 +182,9 @@ static void room_103_anim2() {
}
static void room_103_anim3() {
- if (kernel_anim[aa[2]].frame != aainfo[2]._val2) {
+ if (kernel_anim[aa[2]].frame != aainfo[2]._frame) {
int16 frame = kernel_anim[aa[2]].frame;
- aainfo[2]._val2 = frame;
+ aainfo[2]._frame = frame;
switch (frame) {
case 29:
@@ -194,7 +194,7 @@ static void room_103_anim3() {
break;
case 38:
if (aainfo[2]._val3 == 12) {
- aainfo[2]._val2 = 29;
+ aainfo[2]._frame = 29;
kernel_reset_animation(aa[2], 29);
}
break;
@@ -205,7 +205,7 @@ static void room_103_anim3() {
break;
case 50:
if (aainfo[2]._val3 == 10) {
- aainfo[2]._val2 = 44;
+ aainfo[2]._frame = 44;
kernel_reset_animation(aa[2], 44);
}
break;
@@ -216,7 +216,7 @@ static void room_103_anim3() {
break;
case 60:
if (aainfo[2]._val3 == 12) {
- aainfo[2]._val2 = 54;
+ aainfo[2]._frame = 54;
kernel_reset_animation(aa[2], 54);
}
break;
@@ -227,7 +227,7 @@ static void room_103_anim3() {
break;
case 81:
if (aainfo[2]._val3 == 14) {
- aainfo[2]._val2 = 72;
+ aainfo[2]._frame = 72;
kernel_reset_animation(aa[2], 72);
}
break;
@@ -238,7 +238,7 @@ static void room_103_anim3() {
break;
case 91:
if (aainfo[2]._val3 == 14) {
- aainfo[2]._val2 = 85;
+ aainfo[2]._frame = 85;
kernel_reset_animation(aa[2], 85);
}
break;
@@ -249,7 +249,7 @@ static void room_103_anim3() {
break;
case 113:
if (aainfo[2]._val3 == 14) {
- aainfo[2]._val2 = 109;
+ aainfo[2]._frame = 109;
kernel_reset_animation(aa[2], 109);
}
break;
@@ -264,10 +264,10 @@ static void room_103_anim3() {
case 166:
dont_frag_the_palette();
kernel_abort_animation(aa[2]);
- aainfo[2]._val1 = 0;
+ aainfo[2]._active = 0;
stop_speech_on_run_animation = false;
aa[3] = kernel_run_animation(kernel_name('F', 4), 0);
- aainfo[3]._val1 = -1;
+ aainfo[3]._active = -1;
kernel_synch(KERNEL_ANIM, aa[3], KERNEL_ANIM, aa[2]);
break;
}
@@ -278,25 +278,25 @@ static void room_103_anim3() {
case 29:
scratch._90 = -1;
aainfo[2]._val3 = 13;
- aainfo[2]._val2 = 40;
+ aainfo[2]._frame = 40;
kernel_reset_animation(aa[2], 40);
break;
case 44:
scratch._90 = -1;
aainfo[2]._val3 = 13;
- aainfo[2]._val2 = 50;
+ aainfo[2]._frame = 50;
kernel_reset_animation(aa[2], 50);
break;
case 54:
scratch._90 = -1;
aainfo[2]._val3 = 13;
- aainfo[2]._val2 = 60;
+ aainfo[2]._frame = 60;
kernel_reset_animation(aa[2], 60);
break;
case 72:
scratch._90 = -1;
aainfo[2]._val3 = 13;
- aainfo[2]._val2 = 81;
+ aainfo[2]._frame = 81;
kernel_reset_animation(aa[2], 81);
break;
case 85:
@@ -304,13 +304,13 @@ static void room_103_anim3() {
global[player_score] = 0;
midi_stop();
aainfo[2]._val3 = 13;
- aainfo[2]._val2 = 92;
+ aainfo[2]._frame = 92;
kernel_reset_animation(aa[2], 92);
break;
case 109:
scratch._90 = -1;
aainfo[2]._val3 = 13;
- aainfo[2]._val2 = 113;
+ aainfo[2]._frame = 113;
kernel_reset_animation(aa[2], 113);
break;
}
@@ -322,14 +322,14 @@ static void room_103_anim3() {
}
static void room_103_anim4() {
- if (kernel_anim[aa[3]].frame != aainfo[3]._val2) {
+ if (kernel_anim[aa[3]].frame != aainfo[3]._frame) {
int16 frame = kernel_anim[aa[3]].frame;
- aainfo[3]._val2 = frame;
+ aainfo[3]._frame = frame;
if (frame == 50) {
stop_speech_on_run_animation = true;
kernel_abort_animation(aa[3]);
- aainfo[3]._val1 = 0;
+ aainfo[3]._active = 0;
new_room = 104;
} else if (frame < 50) {
switch (frame) {
@@ -341,7 +341,7 @@ static void room_103_anim4() {
break;
case 21:
if (aainfo[3]._val3 == 15) {
- aainfo[3]._val2 = 16;
+ aainfo[3]._frame = 16;
kernel_reset_animation(aa[3], 16);
}
break;
@@ -352,7 +352,7 @@ static void room_103_anim4() {
break;
case 40:
if (aainfo[3]._val3 == 15) {
- aainfo[3]._val2 = 37;
+ aainfo[3]._frame = 37;
kernel_reset_animation(aa[3], 37);
}
break;
@@ -364,12 +364,12 @@ static void room_103_anim4() {
if (scratch._90 == 16) {
scratch._90 = -1;
aainfo[3]._val3 = 13;
- aainfo[3]._val2 = 21;
+ aainfo[3]._frame = 21;
kernel_reset_animation(aa[3], 21);
} else if (scratch._90 == 37) {
scratch._90 = -1;
aainfo[3]._val3 = 13;
- aainfo[3]._val2 = 40;
+ aainfo[3]._frame = 40;
kernel_reset_animation(aa[3], 40);
} else {
scratch._90 = -1;
@@ -390,10 +390,10 @@ static void room_103_daemon() {
new_room = 904;
}
- if (aainfo[0]._val1 != 0) room_103_anim1();
- if (aainfo[1]._val1 != 0) room_103_anim2();
- if (aainfo[2]._val1 != 0) room_103_anim3();
- if (aainfo[3]._val1 != 0) room_103_anim4();
+ if (aainfo[0]._active != 0) room_103_anim1();
+ if (aainfo[1]._active != 0) room_103_anim2();
+ if (aainfo[2]._active != 0) room_103_anim3();
+ if (aainfo[3]._active != 0) room_103_anim4();
}
static void room_103_pre_parser() {
diff --git a/engines/mads/madsv2/forest/rooms/room104.cpp b/engines/mads/madsv2/forest/rooms/room104.cpp
index d435bb44d8f..5c8a7d216ab 100644
--- a/engines/mads/madsv2/forest/rooms/room104.cpp
+++ b/engines/mads/madsv2/forest/rooms/room104.cpp
@@ -90,8 +90,8 @@ static void room_104_init() {
global[player_score] = 0;
for (int count = 0; count < 10; count++) {
- aainfo[count]._val1 = 0;
- aainfo[count]._val2 = 1;
+ aainfo[count]._active = 0;
+ aainfo[count]._frame = 1;
aainfo[count]._val3 = 0;
aainfo[count]._val4 = 0;
}
@@ -159,12 +159,12 @@ static void room_104_init1() {
mouse_hide();
for (int count = 0; count < 10; count++) {
- aainfo[count]._val1 = 0;
- aainfo[count]._val2 = -1;
+ aainfo[count]._active = 0;
+ aainfo[count]._frame = -1;
}
aa[6] = kernel_run_animation(kernel_name('s', 1), 0);
- aainfo[6]._val1 = -1;
+ aainfo[6]._active = -1;
}
static void room_104_init2() {
@@ -177,12 +177,12 @@ static void room_104_init2() {
mouse_hide();
for (int count = 0; count < 10; count++) {
- aainfo[count]._val1 = 0;
- aainfo[count]._val2 = -1;
+ aainfo[count]._active = 0;
+ aainfo[count]._frame = -1;
}
aa[7] = kernel_run_animation(kernel_name('T', 1), 0);
- aainfo[7]._val1 = -1;
+ aainfo[7]._active = -1;
}
static void room_104_init3() {
@@ -197,9 +197,9 @@ static void room_104_init3() {
kernel_position_anim(scratch._9a, 248, 137, 94, 3);
aa[4] = kernel_run_animation(kernel_name('C', 1), 0);
- aainfo[4]._val1 = -1;
+ aainfo[4]._active = -1;
aa[5] = kernel_run_animation(kernel_name('M', 1), 0);
- aainfo[5]._val1 = -1;
+ aainfo[5]._active = -1;
if (previous_room != -2) {
player.x = 214;
@@ -219,7 +219,7 @@ static void room_104_init3() {
} else if (previous_room == 101) {
scratch._a0 = 0;
aa[0] = kernel_run_animation(kernel_name('y', 1), 100);
- aainfo[0]._val1 = -1;
+ aainfo[0]._active = -1;
scratch._92 = 31;
return;
} else if (previous_room == 199) {
@@ -246,9 +246,9 @@ static void room_104_init3() {
}
static void room_104_anim1() {
- if (kernel_anim[aa[6]].frame != aainfo[6]._val2) {
+ if (kernel_anim[aa[6]].frame != aainfo[6]._frame) {
int16 frame = kernel_anim[aa[6]].frame;
- aainfo[6]._val2 = frame;
+ aainfo[6]._frame = frame;
scratch._a0 = 0;
switch (frame) {
@@ -264,10 +264,10 @@ static void room_104_anim1() {
break;
case 32:
if (aainfo[6]._val3 == 7) {
- aainfo[6]._val2 = 13;
+ aainfo[6]._frame = 13;
kernel_reset_animation(aa[6], 13);
} else if (aainfo[6]._val3 == 9) {
- aainfo[6]._val2 = 31;
+ aainfo[6]._frame = 31;
kernel_reset_animation(aa[6], 31);
}
break;
@@ -278,7 +278,7 @@ static void room_104_anim1() {
break;
case 42:
if (aainfo[6]._val3 == 8) {
- aainfo[6]._val2 = 33;
+ aainfo[6]._frame = 33;
kernel_reset_animation(aa[6], 33);
}
break;
@@ -289,7 +289,7 @@ static void room_104_anim1() {
break;
case 45:
if (aainfo[6]._val3 == 9) {
- aainfo[6]._val2 = 44;
+ aainfo[6]._frame = 44;
kernel_reset_animation(aa[6], 44);
}
break;
@@ -300,13 +300,13 @@ static void room_104_anim1() {
break;
case 69:
if (aainfo[6]._val3 == 7) {
- aainfo[6]._val2 = 46;
+ aainfo[6]._frame = 46;
kernel_reset_animation(aa[6], 46);
}
break;
case 71:
if (aainfo[6]._val3 == 9) {
- aainfo[6]._val2 = 70;
+ aainfo[6]._frame = 70;
kernel_reset_animation(aa[6], 70);
}
break;
@@ -339,7 +339,7 @@ static void room_104_anim1() {
break;
case 2:
aainfo[6]._val3 = 10;
- aainfo[6]._val2 = 31;
+ aainfo[6]._frame = 31;
kernel_reset_animation(aa[6], 31);
scratch._a2 = -1;
break;
@@ -350,7 +350,7 @@ static void room_104_anim1() {
break;
case 33:
aainfo[6]._val3 = 10;
- aainfo[6]._val2 = 42;
+ aainfo[6]._frame = 42;
kernel_reset_animation(aa[6], 42);
scratch._a2 = -1;
break;
@@ -361,9 +361,9 @@ static void room_104_anim1() {
break;
case 47:
aainfo[6]._val3 = 7;
- aainfo[6]._val2 = 13;
+ aainfo[6]._frame = 13;
digi_play_build(104, 'c', 3, 1);
- kernel_reset_animation(aa[6], aainfo[6]._val2);
+ kernel_reset_animation(aa[6], aainfo[6]._frame);
scratch._a2 = 48;
break;
case 48:
@@ -373,7 +373,7 @@ static void room_104_anim1() {
break;
case 49:
aainfo[6]._val3 = 10;
- aainfo[6]._val2 = 69;
+ aainfo[6]._frame = 69;
kernel_reset_animation(aa[6], 69);
scratch._a2 = -1;
break;
@@ -387,9 +387,9 @@ static void room_104_anim1() {
}
static void room_104_anim2() {
- if (kernel_anim[aa[7]].frame != aainfo[7]._val2) {
+ if (kernel_anim[aa[7]].frame != aainfo[7]._frame) {
int16 frame = kernel_anim[aa[7]].frame;
- aainfo[7]._val2 = frame;
+ aainfo[7]._frame = frame;
scratch._a0 = 0;
switch (frame) {
@@ -410,16 +410,16 @@ static void room_104_anim2() {
break;
case 31: case 32: case 33: case 34: case 35:
if (aainfo[7]._val3 == 8) {
- aainfo[7]._val2 = imath_random(30, 34);
- kernel_reset_animation(aa[7], aainfo[7]._val2);
+ aainfo[7]._frame = imath_random(30, 34);
+ kernel_reset_animation(aa[7], aainfo[7]._frame);
} else {
- aainfo[7]._val2 = 38;
+ aainfo[7]._frame = 38;
kernel_reset_animation(aa[7], 38);
}
break;
case 39:
if (aainfo[7]._val3 == 9) {
- aainfo[7]._val2 = 38;
+ aainfo[7]._frame = 38;
kernel_reset_animation(aa[7], 38);
}
break;
@@ -430,16 +430,16 @@ static void room_104_anim2() {
break;
case 41: case 42: case 43: case 44: case 45:
if (aainfo[7]._val3 == 11) {
- aainfo[7]._val2 = imath_random(40, 44);
- kernel_reset_animation(aa[7], aainfo[7]._val2);
+ aainfo[7]._frame = imath_random(40, 44);
+ kernel_reset_animation(aa[7], aainfo[7]._frame);
} else {
- aainfo[7]._val2 = 45;
+ aainfo[7]._frame = 45;
kernel_reset_animation(aa[7], 45);
}
break;
case 49:
if (aainfo[7]._val3 == 9) {
- aainfo[7]._val2 = 48;
+ aainfo[7]._frame = 48;
kernel_reset_animation(aa[7], 48);
}
break;
@@ -450,26 +450,26 @@ static void room_104_anim2() {
break;
case 51: case 52: case 53: case 54: case 55:
if (aainfo[7]._val3 == 7) {
- aainfo[7]._val2 = imath_random(50, 54);
- kernel_reset_animation(aa[7], aainfo[7]._val2);
+ aainfo[7]._frame = imath_random(50, 54);
+ kernel_reset_animation(aa[7], aainfo[7]._frame);
} else {
- aainfo[7]._val2 = 55;
+ aainfo[7]._frame = 55;
kernel_reset_animation(aa[7], 55);
}
break;
case 59:
if (aainfo[7]._val3 == 9) {
- aainfo[7]._val2 = 58;
+ aainfo[7]._frame = 58;
kernel_reset_animation(aa[7], 58);
}
break;
case 64:
dont_frag_the_palette();
kernel_abort_animation(aa[7]);
- aainfo[7]._val1 = 0;
+ aainfo[7]._active = 0;
stop_speech_on_run_animation = false;
aa[8] = kernel_run_animation(kernel_name('T', 2), 0);
- aainfo[8]._val1 = -1;
+ aainfo[8]._active = -1;
kernel_synch(KERNEL_ANIM, aa[7], KERNEL_ANIM, aa[8]);
break;
}
@@ -488,7 +488,7 @@ static void room_104_anim2() {
break;
case 31:
aainfo[7]._val3 = 10;
- aainfo[7]._val2 = 38;
+ aainfo[7]._frame = 38;
kernel_reset_animation(aa[7], 38);
scratch._a2 = -1;
break;
@@ -499,7 +499,7 @@ static void room_104_anim2() {
break;
case 41:
aainfo[7]._val3 = 10;
- aainfo[7]._val2 = 45;
+ aainfo[7]._frame = 45;
kernel_reset_animation(aa[7], 45);
scratch._a2 = -1;
break;
@@ -510,7 +510,7 @@ static void room_104_anim2() {
break;
case 51:
aainfo[7]._val3 = 10;
- aainfo[7]._val2 = 55;
+ aainfo[7]._frame = 55;
kernel_reset_animation(aa[7], 55);
scratch._a2 = -1;
break;
@@ -524,9 +524,9 @@ static void room_104_anim2() {
}
static void room_104_anim3() {
- if (kernel_anim[aa[8]].frame != aainfo[8]._val2) {
+ if (kernel_anim[aa[8]].frame != aainfo[8]._frame) {
int16 frame = kernel_anim[aa[8]].frame;
- aainfo[8]._val2 = frame;
+ aainfo[8]._frame = frame;
scratch._a0 = 0;
switch (frame) {
@@ -542,13 +542,13 @@ static void room_104_anim3() {
break;
case 45:
if (aainfo[8]._val3 == 7) {
- aainfo[8]._val2 = 41;
+ aainfo[8]._frame = 41;
kernel_reset_animation(aa[8], 41);
}
break;
case 47:
if (aainfo[8]._val3 == 9) {
- aainfo[8]._val2 = 46;
+ aainfo[8]._frame = 46;
kernel_reset_animation(aa[8], 46);
}
break;
@@ -563,13 +563,13 @@ static void room_104_anim3() {
break;
case 69:
if (aainfo[8]._val3 == 12) {
- aainfo[8]._val2 = 60;
+ aainfo[8]._frame = 60;
kernel_reset_animation(aa[8], 60);
}
break;
case 74:
if (aainfo[8]._val3 == 9) {
- aainfo[8]._val2 = 73;
+ aainfo[8]._frame = 73;
kernel_reset_animation(aa[8], 73);
}
break;
@@ -580,13 +580,13 @@ static void room_104_anim3() {
break;
case 79:
if (aainfo[8]._val3 == 11) {
- aainfo[8]._val2 = 75;
+ aainfo[8]._frame = 75;
kernel_reset_animation(aa[8], 75);
}
break;
case 83:
if (aainfo[8]._val3 == 9) {
- aainfo[8]._val2 = 82;
+ aainfo[8]._frame = 82;
kernel_reset_animation(aa[8], 82);
}
break;
@@ -598,7 +598,7 @@ static void room_104_anim3() {
break;
case 89:
if (aainfo[8]._val3 == 8) {
- aainfo[8]._val2 = 84;
+ aainfo[8]._frame = 84;
kernel_reset_animation(aa[8], 84);
}
break;
@@ -617,7 +617,7 @@ static void room_104_anim3() {
break;
case 42:
aainfo[8]._val3 = 10;
- aainfo[8]._val2 = 45;
+ aainfo[8]._frame = 45;
kernel_reset_animation(aa[8], 45);
scratch._a2 = -1;
break;
@@ -628,7 +628,7 @@ static void room_104_anim3() {
break;
case 60:
aainfo[8]._val3 = 10;
- aainfo[8]._val2 = 70;
+ aainfo[8]._frame = 70;
kernel_reset_animation(aa[8], 70);
scratch._a2 = -1;
break;
@@ -639,7 +639,7 @@ static void room_104_anim3() {
break;
case 76:
aainfo[8]._val3 = 10;
- aainfo[8]._val2 = 79;
+ aainfo[8]._frame = 79;
kernel_reset_animation(aa[8], 79);
scratch._a2 = -1;
break;
@@ -650,7 +650,7 @@ static void room_104_anim3() {
break;
case 85:
aainfo[8]._val3 = 10;
- aainfo[8]._val2 = 89;
+ aainfo[8]._frame = 89;
kernel_reset_animation(aa[8], 89);
scratch._a2 = -1;
break;
@@ -666,9 +666,9 @@ static void room_104_anim3() {
static void room_104_anim4() {
int16 var_2 = -1;
- if (kernel_anim[aa[4]].frame != aainfo[4]._val2) {
+ if (kernel_anim[aa[4]].frame != aainfo[4]._frame) {
int16 frame = kernel_anim[aa[4]].frame;
- aainfo[4]._val2 = frame;
+ aainfo[4]._frame = frame;
aainfo[4]._val4++;
if (frame == 7) {
@@ -698,7 +698,7 @@ static void room_104_anim4() {
}
if (var_2 >= 0) {
- aainfo[4]._val2 = var_2;
+ aainfo[4]._frame = var_2;
kernel_reset_animation(aa[4], var_2);
}
}
@@ -706,9 +706,9 @@ static void room_104_anim4() {
static void room_104_anim5() {
int16 var_2 = -1;
- if (kernel_anim[aa[5]].frame != aainfo[5]._val2) {
+ if (kernel_anim[aa[5]].frame != aainfo[5]._frame) {
int16 frame = kernel_anim[aa[5]].frame;
- aainfo[5]._val2 = frame;
+ aainfo[5]._frame = frame;
aainfo[5]._val4++;
if (frame == 12 || frame == 5) {
@@ -735,60 +735,60 @@ static void room_104_anim5() {
}
if (var_2 >= 0) {
- aainfo[5]._val2 = var_2;
+ aainfo[5]._frame = var_2;
kernel_reset_animation(aa[5], var_2);
}
}
static void room_104_anim6() {
- if (kernel_anim[aa[0]].frame != aainfo[0]._val2)
- aainfo[0]._val2 = 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]._val2 = scratch._92 - 1;
- kernel_reset_animation(aa[0], aainfo[0]._val2);
+ aainfo[0]._frame = scratch._92 - 1;
+ kernel_reset_animation(aa[0], aainfo[0]._frame);
}
}
static void room_104_anim7() {
- if (kernel_anim[aa[2]].frame != aainfo[2]._val2)
- aainfo[2]._val2 = kernel_anim[aa[2]].frame;
- int16 frame = aainfo[2]._val2;
+ if (kernel_anim[aa[2]].frame != aainfo[2]._frame)
+ aainfo[2]._frame = kernel_anim[aa[2]].frame;
+ int16 frame = aainfo[2]._frame;
if (global[player_hyperwalked] == -1) {
if (frame <= 23) {
- aainfo[2]._val2 = 23;
+ aainfo[2]._frame = 23;
kernel_reset_animation(aa[2], 23);
kernel_synch(KERNEL_ANIM, aa[2], KERNEL_NOW, 0);
} else {
- aainfo[2]._val2 = 44;
+ aainfo[2]._frame = 44;
kernel_reset_animation(aa[2], 44);
kernel_synch(KERNEL_ANIM, aa[2], KERNEL_NOW, 0);
}
} else if (frame == 45) {
- aainfo[2]._val2 = 44;
+ aainfo[2]._frame = 44;
kernel_reset_animation(aa[2], 44);
kernel_synch(KERNEL_ANIM, aa[2], KERNEL_NOW, 0);
}
}
static void room_104_anim8() {
- if (kernel_anim[aa[1]].frame != aainfo[1]._val2)
- aainfo[1]._val2 = kernel_anim[aa[1]].frame;
- int16 frame = aainfo[1]._val2;
+ if (kernel_anim[aa[1]].frame != aainfo[1]._frame)
+ aainfo[1]._frame = kernel_anim[aa[1]].frame;
+ int16 frame = aainfo[1]._frame;
if (global[player_hyperwalked] == -1) {
if (frame <= 23) {
- aainfo[1]._val2 = 23;
+ aainfo[1]._frame = 23;
kernel_reset_animation(aa[1], 23);
kernel_synch(KERNEL_ANIM, aa[1], KERNEL_NOW, 0);
} else {
- aainfo[1]._val2 = 44;
+ aainfo[1]._frame = 44;
kernel_reset_animation(aa[1], 44);
kernel_synch(KERNEL_ANIM, aa[1], KERNEL_NOW, 0);
}
} else if (frame == 45) {
- aainfo[1]._val2 = 44;
+ aainfo[1]._frame = 44;
kernel_reset_animation(aa[1], 44);
kernel_synch(KERNEL_ANIM, aa[1], KERNEL_NOW, 0);
}
@@ -821,7 +821,7 @@ static void room_104_daemon() {
case 24:
if (scratch._8c == 3) {
aa[1] = kernel_run_animation(kernel_name('e', 1), 102);
- aainfo[1]._val1 = -1;
+ aainfo[1]._active = -1;
scratch._96 = 1;
kernel_reset_animation(scratch._9a, 0);
kernel_synch(KERNEL_ANIM, aa[1], KERNEL_ANIM, scratch._9a);
@@ -834,7 +834,7 @@ static void room_104_daemon() {
case 25:
if (scratch._8e == 2) {
aa[2] = kernel_run_animation(kernel_name('R', 1), 101);
- aainfo[2]._val1 = -1;
+ aainfo[2]._active = -1;
scratch._94 = 2;
kernel_reset_animation(scratch._9c, 0);
kernel_synch(KERNEL_ANIM, aa[2], KERNEL_ANIM, scratch._9c);
@@ -868,7 +868,7 @@ static void room_104_daemon() {
case 101:
kernel_abort_animation(aa[scratch._94]);
- aainfo[scratch._94]._val1 = 0;
+ aainfo[scratch._94]._active = 0;
kernel_reset_animation(scratch._9c, 1);
kernel_synch(KERNEL_ANIM, scratch._9c, KERNEL_NOW, 0);
global[g143] = 0;
@@ -877,7 +877,7 @@ static void room_104_daemon() {
case 102:
kernel_abort_animation(aa[scratch._96]);
- aainfo[scratch._96]._val1 = 0;
+ aainfo[scratch._96]._active = 0;
kernel_reset_animation(scratch._9a, 1);
kernel_synch(KERNEL_ANIM, scratch._9a, KERNEL_NOW, 0);
global[g133] = 0;
@@ -890,14 +890,14 @@ static void room_104_daemon() {
global_anim2(4, scratch._9c, global[g141], &global[g142]);
}
- if (aainfo[0]._val1 != 0) room_104_anim6();
- if (aainfo[2]._val1 != 0) room_104_anim7();
- if (aainfo[1]._val1 != 0) room_104_anim8();
- if (aainfo[4]._val1 != 0) room_104_anim4();
- if (aainfo[5]._val1 != 0) room_104_anim5();
- if (aainfo[6]._val1 != 0) room_104_anim1();
- if (aainfo[7]._val1 != 0) room_104_anim2();
- if (aainfo[8]._val1 != 0) room_104_anim3();
+ if (aainfo[0]._active != 0) room_104_anim6();
+ if (aainfo[2]._active != 0) room_104_anim7();
+ if (aainfo[1]._active != 0) room_104_anim8();
+ if (aainfo[4]._active != 0) room_104_anim4();
+ if (aainfo[5]._active != 0) room_104_anim5();
+ if (aainfo[6]._active != 0) room_104_anim1();
+ if (aainfo[7]._active != 0) room_104_anim2();
+ if (aainfo[8]._active != 0) room_104_anim3();
}
static void room_104_pre_parser() {
diff --git a/engines/mads/madsv2/forest/rooms/room106.cpp b/engines/mads/madsv2/forest/rooms/room106.cpp
index 27b9ff43c0c..19698662150 100644
--- a/engines/mads/madsv2/forest/rooms/room106.cpp
+++ b/engines/mads/madsv2/forest/rooms/room106.cpp
@@ -114,8 +114,8 @@ static void room_106_init() {
}
for (int16 i = 0; i < 10; i++) {
- aainfo[i]._val1 = 0;
- aainfo[i]._val2 = 1;
+ aainfo[i]._active = 0;
+ aainfo[i]._frame = 1;
aainfo[i]._val3 = 0;
aainfo[i]._val4 = 0;
}
@@ -146,12 +146,12 @@ static void room_106_init1() {
player.commands_allowed = 0;
for (int16 i = 0; i < 10; i++) {
- aainfo[i]._val1 = 0;
- aainfo[i]._val2 = -1;
+ aainfo[i]._active = 0;
+ aainfo[i]._frame = -1;
}
aa[9] = kernel_run_animation(kernel_name('I', 1), 0);
- aainfo[9]._val1 = -1;
+ aainfo[9]._active = -1;
}
static void room_106_init2() {
@@ -182,7 +182,7 @@ static void room_106_init2() {
return;
case 101:
aa[0] = kernel_run_animation(kernel_name('y', 1), 100);
- aainfo[0]._val1 = -1;
+ aainfo[0]._active = -1;
scratch._92 = 95;
return;
case 199:
@@ -198,12 +198,12 @@ static void room_106_init2() {
return;
case 201:
aa[0] = kernel_run_animation(kernel_name('y', 2), 100);
- aainfo[0]._val1 = -1;
+ aainfo[0]._active = -1;
scratch._92 = 44;
return;
case 210:
aa[1] = kernel_run_animation("*RM106Y31", 0);
- aainfo[1]._val1 = -1;
+ aainfo[1]._active = -1;
scratch._92 = 54;
return;
default:
@@ -221,8 +221,8 @@ static void room_106_init2() {
static void room_106_anim1() {
int16 frame = kernel_anim[aa[9]].frame;
- if (frame != aainfo[9]._val2) {
- aainfo[9]._val2 = frame;
+ if (frame != aainfo[9]._frame) {
+ aainfo[9]._frame = frame;
if (frame == 121) {
new_room = 103;
} else if (frame < 121) {
@@ -265,9 +265,9 @@ static void room_106_anim1() {
static void room_106_anim2() {
int16 frame = kernel_anim[aa[6]].frame;
- if (frame == aainfo[6]._val2)
+ if (frame == aainfo[6]._frame)
return;
- aainfo[6]._val2 = frame;
+ aainfo[6]._frame = frame;
if (scratch._a2 == 1) {
if (frame == 81) {
digi_play_build_ii('e', 5, 1);
@@ -283,27 +283,27 @@ static void room_106_anim2() {
static void room_106_anim3() {
int16 frame = kernel_anim[aa[0]].frame;
- if (frame != aainfo[0]._val2)
- aainfo[0]._val2 = frame;
+ if (frame != aainfo[0]._frame)
+ aainfo[0]._frame = frame;
if (global[player_hyperwalked] == -1) {
- aainfo[0]._val2 = scratch._92 - 1;
- kernel_reset_animation(aa[0], aainfo[0]._val2);
+ aainfo[0]._frame = scratch._92 - 1;
+ kernel_reset_animation(aa[0], aainfo[0]._frame);
}
}
static void room_106_anim4() {
int16 frame = kernel_anim[aa[7]].frame;
- if (frame != aainfo[7]._val2) {
- aainfo[7]._val2 = frame;
+ if (frame != aainfo[7]._frame) {
+ aainfo[7]._frame = frame;
if (frame == 53) {
if (aainfo[7]._val3 == 10) {
- aainfo[7]._val2 = 48;
+ aainfo[7]._frame = 48;
kernel_reset_animation(aa[7], 48);
}
} else if (frame < 53) {
if (frame == 7) {
if (aainfo[7]._val3 == 13) {
- aainfo[7]._val2 = 5;
+ aainfo[7]._frame = 5;
kernel_reset_animation(aa[7], 5);
}
} else if (frame < 7) {
@@ -313,14 +313,14 @@ static void room_106_anim4() {
scratch._ae = 101;
} else if (frame == 4) {
if (aainfo[7]._val3 == 10) {
- aainfo[7]._val2 = 2;
+ aainfo[7]._frame = 2;
kernel_reset_animation(aa[7], 2);
}
}
} else { // 8..52
if (frame == 12) {
if (aainfo[7]._val3 == 11) {
- aainfo[7]._val2 = 8;
+ aainfo[7]._frame = 8;
kernel_reset_animation(aa[7], 8);
}
} else if (frame == 19) {
@@ -328,7 +328,7 @@ static void room_106_anim4() {
global[g154] = 2;
digi_play_build(106, 'b', 2, 1);
scratch._ae = 105;
- aainfo[7]._val2 = 2;
+ aainfo[7]._frame = 2;
kernel_reset_animation(aa[7], 2);
}
}
@@ -343,14 +343,14 @@ static void room_106_anim4() {
global[g154] = 0;
kernel_timing_trigger(30, 28);
aainfo[7]._val3 = 13;
- aainfo[7]._val2 = 5;
+ aainfo[7]._frame = 5;
kernel_reset_animation(aa[7], 5);
scratch._ae = 102;
return;
case 102:
global[g156] = 2;
aainfo[7]._val3 = 11;
- aainfo[7]._val2 = 8;
+ aainfo[7]._frame = 8;
kernel_reset_animation(aa[7], 8);
digi_play_build(106, 'e', 1, 1);
scratch._ae = 103;
@@ -358,7 +358,7 @@ static void room_106_anim4() {
case 103:
global[g156] = 0;
aainfo[7]._val3 = 13;
- aainfo[7]._val2 = 13;
+ aainfo[7]._frame = 13;
kernel_reset_animation(aa[7], 13);
return;
case 105:
@@ -366,7 +366,7 @@ static void room_106_anim4() {
global_digi_play(4);
global[g154] = 0;
aainfo[7]._val3 = 13;
- aainfo[7]._val2 = 20;
+ aainfo[7]._frame = 20;
kernel_reset_animation(aa[7], 20);
return;
}
@@ -374,8 +374,8 @@ static void room_106_anim4() {
static void room_106_anim5() {
int16 frame = kernel_anim[aa[8]].frame;
- if (frame != aainfo[8]._val2) {
- aainfo[8]._val2 = frame;
+ if (frame != aainfo[8]._frame) {
+ aainfo[8]._frame = frame;
if (scratch._ac == 2) {
if (frame == 44) {
aainfo[8]._val3 = 11;
@@ -383,7 +383,7 @@ static void room_106_anim5() {
scratch._ae = 501;
} else if (frame == 49) {
if (aainfo[8]._val3 == 11) {
- aainfo[8]._val2 = 47;
+ aainfo[8]._frame = 47;
kernel_reset_animation(aa[8], 47);
}
}
@@ -394,70 +394,70 @@ static void room_106_anim5() {
if (scratch._ae == 501) {
global[g156] = 0;
aainfo[8]._val3 = 13;
- aainfo[8]._val2 = 51;
+ aainfo[8]._frame = 51;
kernel_reset_animation(aa[8], 51);
}
}
static void room_106_anim6() {
int16 frame = kernel_anim[aa[1]].frame;
- if (frame != aainfo[1]._val2)
- aainfo[1]._val2 = frame;
+ if (frame != aainfo[1]._frame)
+ aainfo[1]._frame = frame;
- if (global[player_hyperwalked] != -1 && aainfo[1]._val2 != scratch._92)
+ if (global[player_hyperwalked] != -1 && aainfo[1]._frame != scratch._92)
return;
kernel_abort_animation(aa[1]);
- aainfo[1]._val1 = 0;
+ aainfo[1]._active = 0;
aa[2] = kernel_run_animation("*RM106Y32", 100);
- aainfo[2]._val1 = -1;
+ aainfo[2]._active = -1;
scratch._92 = 134;
- aainfo[2]._val2 = (global[player_hyperwalked] == -1) ? 133 : 54;
- kernel_reset_animation(aa[2], aainfo[2]._val2);
+ aainfo[2]._frame = (global[player_hyperwalked] == -1) ? 133 : 54;
+ kernel_reset_animation(aa[2], aainfo[2]._frame);
}
static void room_106_anim7() {
int16 frame = kernel_anim[aa[2]].frame;
- if (frame != aainfo[2]._val2)
- aainfo[2]._val2 = frame;
+ if (frame != aainfo[2]._frame)
+ aainfo[2]._frame = frame;
if (global[player_hyperwalked] == -1) {
- aainfo[2]._val2 = scratch._92 - 1;
- kernel_reset_animation(aa[2], aainfo[2]._val2);
+ aainfo[2]._frame = scratch._92 - 1;
+ kernel_reset_animation(aa[2], aainfo[2]._frame);
}
}
static void room_106_anim8() {
int16 frame = kernel_anim[aa[3]].frame;
- if (frame != aainfo[3]._val2)
- aainfo[3]._val2 = frame;
+ if (frame != aainfo[3]._frame)
+ aainfo[3]._frame = frame;
if (global[player_hyperwalked] == -1) {
- aainfo[3]._val2 = scratch._92 - 1;
- kernel_reset_animation(aa[3], aainfo[3]._val2);
+ aainfo[3]._frame = scratch._92 - 1;
+ kernel_reset_animation(aa[3], aainfo[3]._frame);
}
}
static void room_106_anim9() {
int16 frame = kernel_anim[aa[5]].frame;
- if (frame == aainfo[5]._val2)
+ if (frame == aainfo[5]._frame)
return;
- aainfo[5]._val2 = frame;
+ aainfo[5]._frame = frame;
if (frame == 13)
digi_play_build(101, '_', 1, 2);
}
static void room_106_anim10() {
int16 frame = kernel_anim[aa[4]].frame;
- if (frame != aainfo[4]._val2)
- aainfo[4]._val2 = frame;
+ if (frame != aainfo[4]._frame)
+ aainfo[4]._frame = frame;
if (global[player_hyperwalked] == -1 && frame <= 23) {
- aainfo[4]._val2 = 23;
+ aainfo[4]._frame = 23;
kernel_reset_animation(aa[4], 23);
kernel_synch(KERNEL_ANIM, aa[4], KERNEL_NOW, 0);
return;
}
if (global[player_hyperwalked] == -1 || frame == 45) {
- aainfo[4]._val2 = 44;
+ aainfo[4]._frame = 44;
kernel_reset_animation(aa[4], 44);
kernel_synch(KERNEL_ANIM, aa[4], KERNEL_NOW, 0);
}
@@ -503,7 +503,7 @@ static void room_106_daemon() {
global[g143] = 1;
kernel_synch(KERNEL_ANIM, scratch._9c, KERNEL_NOW, 0);
aa[5] = kernel_run_animation(kernel_name('R', 1), 107);
- aainfo[5]._val1 = -1;
+ aainfo[5]._active = -1;
kernel_synch(KERNEL_ANIM, aa[5], KERNEL_NOW, 0);
}
break;
@@ -514,7 +514,7 @@ static void room_106_daemon() {
aa[6] = kernel_run_animation(kernel_name('M', 1), 102);
else
break;
- aainfo[6]._val1 = -1;
+ aainfo[6]._active = -1;
kernel_reset_animation(scratch._9a, 0);
kernel_synch(KERNEL_ANIM, aa[6], KERNEL_ANIM, scratch._9a);
global[g133] = 1;
@@ -522,7 +522,7 @@ static void room_106_daemon() {
case 25:
if (scratch._8e == 2) {
aa[5] = kernel_run_animation(kernel_name('R', 1), 101);
- aainfo[5]._val1 = -1;
+ aainfo[5]._active = -1;
scratch._94 = 5;
kernel_reset_animation(scratch._9c, 0);
kernel_synch(KERNEL_ANIM, aa[5], KERNEL_ANIM, scratch._9c);
@@ -536,7 +536,7 @@ static void room_106_daemon() {
global[g133] = 1;
global[g143] = 1;
aa[3] = kernel_run_animation(kernel_name('Z', 3), 103);
- aainfo[3]._val1 = -1;
+ aainfo[3]._active = -1;
scratch._98 = 3;
scratch._92 = 101;
kernel_synch(KERNEL_ANIM, scratch._9a, KERNEL_ANIM, aa[3]);
@@ -556,17 +556,17 @@ static void room_106_daemon() {
global[g133] = 1;
global[g143] = 1;
aa[8] = kernel_run_animation(kernel_name('x', 1), 108);
- aainfo[8]._val1 = -1;
+ aainfo[8]._active = -1;
scratch._ac = 1;
kernel_synch(KERNEL_ANIM, scratch._9a, KERNEL_ANIM, aa[8]);
}
break;
case 100:
kernel_abort_animation(aa[0]);
- aainfo[0]._val1 = 0;
+ aainfo[0]._active = 0;
if (flags[3] == 1) {
aa[7] = kernel_run_animation(kernel_name('t', 1), 104);
- aainfo[7]._val1 = -1;
+ aainfo[7]._active = -1;
} else {
global[g131] = -1;
global[g141] = -1;
@@ -583,7 +583,7 @@ static void room_106_daemon() {
break;
case 101:
kernel_abort_animation(aa[scratch._94]);
- aainfo[scratch._94]._val1 = 0;
+ aainfo[scratch._94]._active = 0;
kernel_reset_animation(scratch._9c, 1);
kernel_synch(KERNEL_ANIM, scratch._9c, KERNEL_NOW, 0);
global[g143] = 0;
@@ -591,7 +591,7 @@ static void room_106_daemon() {
break;
case 102:
kernel_abort_animation(aa[6]);
- aainfo[6]._val1 = 0;
+ aainfo[6]._active = 0;
kernel_reset_animation(scratch._9a, 1);
kernel_synch(KERNEL_ANIM, scratch._9a, KERNEL_NOW, 0);
global[g133] = 0;
@@ -605,7 +605,7 @@ static void room_106_daemon() {
break;
case 104:
kernel_abort_animation(aa[7]);
- aainfo[7]._val1 = 0;
+ aainfo[7]._active = 0;
global[g131] = -1;
global[g141] = -1;
kernel_reset_animation(scratch._9a, 1);
@@ -625,7 +625,7 @@ static void room_106_daemon() {
break;
case 107:
kernel_abort_animation(aa[5]);
- aainfo[5]._val1 = 0;
+ aainfo[5]._active = 0;
kernel_reset_animation(scratch._9c, 1);
kernel_synch(KERNEL_ANIM, scratch._9c, KERNEL_NOW, 0);
global[g143] = 0;
@@ -651,7 +651,7 @@ static void room_106_daemon() {
scratch._ac = 3;
} else if (scratch._ac == 3) {
kernel_abort_animation(aa[8]);
- aainfo[8]._val1 = 0;
+ aainfo[8]._active = 0;
global[g131] = -1;
global[g141] = -1;
kernel_reset_animation(scratch._9a, 1);
@@ -676,16 +676,16 @@ static void room_106_daemon() {
global_anim1(2, scratch._9a, global[g131], &global[g132]);
global_anim2(1, scratch._9c, global[g141], &global[g142]);
}
- if (aainfo[0]._val1 != 0) room_106_anim3();
- if (aainfo[1]._val1 != 0) room_106_anim6();
- if (aainfo[2]._val1 != 0) room_106_anim7();
- if (aainfo[3]._val1 != 0) room_106_anim8();
- if (aainfo[5]._val1 != 0) room_106_anim9();
- if (aainfo[4]._val1 != 0) room_106_anim10();
- if (aainfo[6]._val1 != 0) room_106_anim2();
- if (aainfo[9]._val1 != 0) room_106_anim1();
- if (aainfo[7]._val1 != 0) room_106_anim4();
- if (aainfo[8]._val1 != 0) room_106_anim5();
+ if (aainfo[0]._active != 0) room_106_anim3();
+ if (aainfo[1]._active != 0) room_106_anim6();
+ if (aainfo[2]._active != 0) room_106_anim7();
+ if (aainfo[3]._active != 0) room_106_anim8();
+ if (aainfo[5]._active != 0) room_106_anim9();
+ if (aainfo[4]._active != 0) room_106_anim10();
+ if (aainfo[6]._active != 0) room_106_anim2();
+ if (aainfo[9]._active != 0) room_106_anim1();
+ if (aainfo[7]._active != 0) room_106_anim4();
+ if (aainfo[8]._active != 0) room_106_anim5();
if (scratch._aa != 0) {
kernel_random_frame(scratch._a6, &global[g151], global[g154]);
diff --git a/engines/mads/madsv2/forest/rooms/room107.cpp b/engines/mads/madsv2/forest/rooms/room107.cpp
index a8c4aa9a173..16f210f3e4a 100644
--- a/engines/mads/madsv2/forest/rooms/room107.cpp
+++ b/engines/mads/madsv2/forest/rooms/room107.cpp
@@ -82,19 +82,19 @@ static void room_107_init() {
mouse_hide();
for (int16 i = 0; i < 10; i++) {
- aainfo[i]._val1 = 0;
- aainfo[i]._val2 = -1;
+ aainfo[i]._active = 0;
+ aainfo[i]._frame = -1;
}
kernel_timing_trigger(5, 100);
}
static void room_107_anim1() {
- int16 prev_frame = aainfo[0]._val2;
+ int16 prev_frame = aainfo[0]._frame;
int16 frame = kernel_anim[aa[0]].frame;
if (frame != prev_frame) {
- aainfo[0]._val2 = frame;
+ aainfo[0]._frame = frame;
if (frame == 30) {
new_room = 104;
@@ -109,7 +109,7 @@ static void room_107_anim1() {
scratch._8e = 21;
} else if (frame == 26) {
if (aainfo[0]._val3 == 1) {
- aainfo[0]._val2 = 21;
+ aainfo[0]._frame = 21;
kernel_reset_animation(aa[0], 21);
}
}
@@ -121,7 +121,7 @@ static void room_107_anim1() {
aainfo[0]._val3 = 2;
scratch._8e = -1;
global_digi_play(4);
- aainfo[0]._val2 = 26;
+ aainfo[0]._frame = 26;
kernel_reset_animation(aa[0], 26);
}
}
@@ -136,11 +136,11 @@ static void room_107_daemon() {
if (kernel.trigger == 100) {
aa[0] = kernel_run_animation(kernel_name('T', 1), 0);
- aainfo[0]._val1 = -1;
+ aainfo[0]._active = -1;
scratch._8c = 30;
}
- if (aainfo[0]._val1 != 0)
+ if (aainfo[0]._active != 0)
room_107_anim1();
}
diff --git a/engines/mads/madsv2/forest/rooms/room199.cpp b/engines/mads/madsv2/forest/rooms/room199.cpp
index beffb90cfe8..35abb9125ac 100644
--- a/engines/mads/madsv2/forest/rooms/room199.cpp
+++ b/engines/mads/madsv2/forest/rooms/room199.cpp
@@ -92,10 +92,10 @@ static void room_199_init1() {
seq[3] = kernel_load_series("*rm199n14", 0); aa[9] = kernel_seq_stamp(seq[3], false, 1); kernel_seq_depth(aa[9], 5);
}
if (flags[32] >= 1) {
- seq[4] = kernel_load_series("*rm199n15", 0); aainfo[0]._val1 = kernel_seq_stamp(seq[4], false, 1); kernel_seq_depth(aainfo[0]._val1, 5);
+ seq[4] = kernel_load_series("*rm199n15", 0); aainfo[0]._active = kernel_seq_stamp(seq[4], false, 1); kernel_seq_depth(aainfo[0]._active, 5);
}
if (flags[33] >= 1) {
- seq[5] = kernel_load_series("*rm199n16", 0); aainfo[0]._val2 = kernel_seq_stamp(seq[5], false, 1); kernel_seq_depth(aainfo[0]._val2, 5);
+ seq[5] = kernel_load_series("*rm199n16", 0); aainfo[0]._frame = kernel_seq_stamp(seq[5], false, 1); kernel_seq_depth(aainfo[0]._frame, 5);
}
}
@@ -106,50 +106,50 @@ static void room_199_init() {
aainfo[2]._val3 = -1;
aainfo[2]._val4 = 0;
- aainfo[3]._val1 = 0;
- aainfo[3]._val2 = -1;
+ aainfo[3]._active = 0;
+ aainfo[3]._frame = -1;
if (previous_room == 304 || previous_room == 402) {
if (global[g070] != 0) {
- aainfo[2]._val2 = 1;
+ aainfo[2]._frame = 1;
ss[1] = kernel_load_series("*rm199z1", 0);
kernel_flip_hotspot(99, false);
kernel_flip_hotspot(174, false);
- int16 slot = aainfo[2]._val2;
+ int16 slot = aainfo[2]._frame;
seq[6 + slot] = kernel_seq_stamp(ss[slot], false, 1);
kernel_seq_depth(seq[6 + slot], 1);
- aainfo[2]._val1 = slot;
+ aainfo[2]._active = slot;
player.commands_allowed = 0;
kernel_timing_trigger(300, 111);
return;
}
room_199_init1();
- aainfo[2]._val2 = 0;
+ aainfo[2]._frame = 0;
ss[0] = kernel_load_series("*rm199n1", 0);
} else if (previous_room == 503) {
- aainfo[2]._val2 = 3;
+ aainfo[2]._frame = 3;
ss[3] = kernel_load_series("*rm199v1", 0);
kernel_flip_hotspot(99, false);
kernel_flip_hotspot(174, false);
- int16 slot = aainfo[2]._val2;
+ int16 slot = aainfo[2]._frame;
seq[6 + slot] = kernel_seq_stamp(ss[slot], false, 1);
kernel_seq_depth(seq[6 + slot], 5);
- aainfo[2]._val1 = slot;
+ aainfo[2]._active = slot;
player.commands_allowed = 0;
kernel_timing_trigger(2, 112);
return;
} else {
room_199_init1();
- aainfo[2]._val2 = 0;
+ aainfo[2]._frame = 0;
ss[0] = kernel_load_series("*rm199n1", 0);
}
kernel_flip_hotspot(99, false);
kernel_flip_hotspot(174, false);
- int16 slot = aainfo[2]._val2;
+ int16 slot = aainfo[2]._frame;
seq[6 + slot] = kernel_seq_stamp(ss[slot], false, 1);
kernel_seq_depth(seq[6 + slot], 1);
- aainfo[2]._val1 = slot;
+ aainfo[2]._active = slot;
}
static int room_199_anim1() {
@@ -224,7 +224,7 @@ static void room_199_anim2() {
case 14:
aainfo[2]._val4 = 0;
aainfo[2]._val3 = -1;
- aainfo[3]._val1 = 0;
+ aainfo[3]._active = 0;
kernel_timing_trigger(2, 113);
return;
default:
@@ -350,10 +350,10 @@ static void room_199_anim4() {
case 11:
if (player_has(7)) {
seq[4] = kernel_load_series("*ob007i", 0);
- aainfo[0]._val1 = kernel_seq_stamp(seq[4], false, 1);
- kernel_seq_depth(aainfo[0]._val1, 1);
- kernel_seq_loc(aainfo[0]._val1, 270, 144);
- kernel_seq_scale(aainfo[0]._val1, 85);
+ aainfo[0]._active = kernel_seq_stamp(seq[4], false, 1);
+ kernel_seq_depth(aainfo[0]._active, 1);
+ kernel_seq_loc(aainfo[0]._active, 270, 144);
+ kernel_seq_scale(aainfo[0]._active, 85);
}
kernel_timing_trigger(15, 115); return;
case 12:
@@ -370,8 +370,8 @@ static void room_199_daemon() {
int16 trig = kernel.trigger;
if (trig == 7) {
- if (aainfo[3]._val2 == 11) {
- aainfo[3]._val2 = -1;
+ if (aainfo[3]._frame == 11) {
+ aainfo[3]._frame = -1;
kernel_timing_trigger(30, 113);
}
} else if (trig == 111) {
@@ -390,10 +390,10 @@ static void room_199_daemon() {
global[g100] = result;
if (result) {
digi_play_build(521, 'e', 11, 1);
- aainfo[3]._val2 = 11;
+ aainfo[3]._frame = 11;
} else {
aainfo[2]._val3 = 1;
- aainfo[3]._val1 = -1;
+ aainfo[3]._active = -1;
digi_play_build(521, 'e', 12, 1);
room_199_anim2();
}
@@ -403,7 +403,7 @@ static void room_199_daemon() {
if (aainfo[2]._val4 != 0)
room_199_anim4();
- if (aainfo[3]._val1 != 0)
+ if (aainfo[3]._active != 0)
room_199_anim2();
}
@@ -413,10 +413,10 @@ static void room_199_pre_parser() {
static void room_199_parser2() {
if (flags[33] >= 1) {
- kernel_seq_delete(aainfo[0]._val2); matte_deallocate_series(seq[5], -1);
+ kernel_seq_delete(aainfo[0]._frame); matte_deallocate_series(seq[5], -1);
}
if (flags[32] >= 1) {
- kernel_seq_delete(aainfo[0]._val1); matte_deallocate_series(seq[4], -1);
+ kernel_seq_delete(aainfo[0]._active); matte_deallocate_series(seq[4], -1);
}
if (flags[30] >= 1) {
kernel_seq_delete(aa[9]); matte_deallocate_series(seq[3], -1);
@@ -460,19 +460,19 @@ static void room_199_parser2() {
}
static void room_199_parser1() {
- if (aainfo[2]._val1 == 2)
+ if (aainfo[2]._active == 2)
kernel_flip_hotspot(99, 0);
- if (aainfo[2]._val1 == 3)
+ if (aainfo[2]._active == 3)
kernel_flip_hotspot(174, 0);
- int16 old_slot = aainfo[2]._val1;
+ int16 old_slot = aainfo[2]._active;
kernel_seq_delete(seq[6 + old_slot]);
matte_deallocate_series(ss[old_slot], -1);
- if (aainfo[2]._val1 == 0)
+ if (aainfo[2]._active == 0)
room_199_parser2();
- int16 new_slot = aainfo[2]._val2;
+ int16 new_slot = aainfo[2]._frame;
switch (new_slot) {
case 0:
room_199_init1();
@@ -493,7 +493,7 @@ static void room_199_parser1() {
seq[6 + new_slot] = kernel_seq_stamp(ss[new_slot], false, 1);
kernel_seq_depth(seq[6 + new_slot], 1);
- aainfo[2]._val1 = aainfo[2]._val2;
+ aainfo[2]._active = aainfo[2]._frame;
digi_play_build_ii('_', 1, 2);
}
@@ -528,21 +528,21 @@ static void room_199_parser() {
}
if (player_parse(156, 0)) {
- if (aainfo[2]._val1 != 3) {
- aainfo[2]._val1 = aainfo[2]._val2;
- aainfo[2]._val2++;
+ if (aainfo[2]._active != 3) {
+ aainfo[2]._active = aainfo[2]._frame;
+ aainfo[2]._frame++;
}
- if (aainfo[2]._val2 != aainfo[2]._val1)
+ if (aainfo[2]._frame != aainfo[2]._active)
room_199_parser1();
goto handled;
}
if (player_parse(90, 0)) {
- if (aainfo[2]._val1 != 0) {
- aainfo[2]._val1 = aainfo[2]._val2;
- aainfo[2]._val2--;
+ if (aainfo[2]._active != 0) {
+ aainfo[2]._active = aainfo[2]._frame;
+ aainfo[2]._frame--;
}
- if (aainfo[2]._val2 != aainfo[2]._val1)
+ if (aainfo[2]._frame != aainfo[2]._active)
room_199_parser1();
goto handled;
}
diff --git a/engines/mads/madsv2/forest/rooms/room201.cpp b/engines/mads/madsv2/forest/rooms/room201.cpp
index c34633d1139..d4344262ba8 100644
--- a/engines/mads/madsv2/forest/rooms/room201.cpp
+++ b/engines/mads/madsv2/forest/rooms/room201.cpp
@@ -119,12 +119,12 @@ static void room_201_init1() {
return;
case 106:
aa[0] = kernel_run_animation(kernel_name('y', 1), 100);
- aainfo[0]._val1 = -1;
+ aainfo[0]._active = -1;
scratch._92 = 65;
return;
case 203:
aa[0] = kernel_run_animation(kernel_name('y', 2), 100);
- aainfo[0]._val1 = -1;
+ aainfo[0]._active = -1;
scratch._92 = 75;
return;
case 199:
@@ -152,19 +152,19 @@ static void room_201_init1() {
}
static void room_201_anim1() {
- if (kernel_anim[aa[0]].frame != aainfo[0]._val2)
- aainfo[0]._val2 = 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)
return;
- aainfo[0]._val2 = scratch._92 - 1;
+ aainfo[0]._frame = scratch._92 - 1;
kernel_reset_animation(aa[0], scratch._92 - 1);
}
static void room_201_anim2() {
- if (kernel_anim[aa[0]].frame != aainfo[0]._val2)
- aainfo[0]._val2 = kernel_anim[aa[0]].frame;
+ if (kernel_anim[aa[0]].frame != aainfo[0]._frame)
+ aainfo[0]._frame = kernel_anim[aa[0]].frame;
if (scratch._a4 != 0)
kernel_random_frame(scratch._a2, &global[g153], global[g156]);
@@ -186,7 +186,7 @@ static void room_201_anim2() {
scratch._a4 = -1;
player.commands_allowed = -1;
player.walker_visible = -1;
- aainfo[1]._val1 = 0;
+ aainfo[1]._active = 0;
kernel_synch(KERNEL_PLAYER, 0, KERNEL_NOW, 0);
global[g131] = -1;
kernel_reset_animation(scratch._9a, 1);
@@ -201,32 +201,32 @@ static void room_201_anim2() {
}
static void room_201_anim3() {
- if (kernel_anim[aa[3]].frame != aainfo[3]._val2)
- aainfo[3]._val2 = kernel_anim[aa[3]].frame;
+ if (kernel_anim[aa[3]].frame != aainfo[3]._frame)
+ aainfo[3]._frame = kernel_anim[aa[3]].frame;
- if (global[player_hyperwalked] == -1 && aainfo[3]._val2 <= 23) {
- aainfo[3]._val2 = 23;
+ if (global[player_hyperwalked] == -1 && aainfo[3]._frame <= 23) {
+ aainfo[3]._frame = 23;
kernel_reset_animation(aa[3], 23);
kernel_synch(KERNEL_ANIM, aa[3], KERNEL_NOW, 0);
return;
}
- if (global[player_hyperwalked] == -1 || aainfo[3]._val2 == 45) {
- aainfo[3]._val2 = 44;
+ if (global[player_hyperwalked] == -1 || aainfo[3]._frame == 45) {
+ aainfo[3]._frame = 44;
kernel_reset_animation(aa[3], 44);
kernel_synch(KERNEL_ANIM, aa[3], KERNEL_NOW, 0);
}
}
static void room_201_anim4() {
- if (kernel_anim[aa[4]].frame != aainfo[4]._val2) {
- aainfo[4]._val2 = kernel_anim[aa[4]].frame;
- int16 frame = aainfo[4]._val2;
+ if (kernel_anim[aa[4]].frame != aainfo[4]._frame) {
+ aainfo[4]._frame = kernel_anim[aa[4]].frame;
+ int16 frame = aainfo[4]._frame;
if (scratch._a8 == 1) {
if (frame == 10) {
if (aainfo[4]._val3 == 10) {
- aainfo[4]._val2 = 9;
+ aainfo[4]._frame = 9;
kernel_reset_animation(aa[4], 9);
}
} else if (frame <= 10) {
@@ -236,7 +236,7 @@ static void room_201_anim4() {
scratch._a4 = 28;
} else if (frame == 8) {
if (aainfo[4]._val3 == 9) {
- aainfo[4]._val2 = 4;
+ aainfo[4]._frame = 4;
kernel_reset_animation(aa[4], 4);
}
}
@@ -244,7 +244,7 @@ static void room_201_anim4() {
} else if (scratch._a8 == 2) {
if (frame == 13) {
if (aainfo[4]._val3 == 10) {
- aainfo[4]._val2 = 11;
+ aainfo[4]._frame = 11;
kernel_reset_animation(aa[4], 11);
}
} else if (frame <= 13) {
@@ -254,7 +254,7 @@ static void room_201_anim4() {
scratch._a4 = 450;
} else if (frame == 10) {
if (aainfo[4]._val3 == 9) {
- aainfo[4]._val2 = 5;
+ aainfo[4]._frame = 5;
kernel_reset_animation(aa[4], 5);
}
}
@@ -273,14 +273,14 @@ static void room_201_anim4() {
return;
case 29:
aainfo[4]._val3 = 9;
- aainfo[4]._val2 = 4;
+ aainfo[4]._frame = 4;
kernel_reset_animation(aa[4], 4);
digi_play_build_ii('e', 10, 1);
scratch._a4 = 30;
return;
case 30:
aainfo[4]._val3 = 11;
- aainfo[4]._val2 = 9;
+ aainfo[4]._frame = 9;
kernel_reset_animation(aa[4], 9);
scratch._a4 = -1;
return;
@@ -291,14 +291,14 @@ static void room_201_anim4() {
return;
case 451:
aainfo[4]._val3 = 9;
- aainfo[4]._val2 = 5;
+ aainfo[4]._frame = 5;
kernel_reset_animation(aa[4], 5);
digi_play_build_ii('e', 10, 1);
scratch._a4 = 452;
return;
case 452:
aainfo[4]._val3 = 11;
- aainfo[4]._val2 = 10;
+ aainfo[4]._frame = 10;
kernel_reset_animation(aa[4], 10);
scratch._a4 = -1;
return;
@@ -351,8 +351,8 @@ static void room_201_init() {
scratch._ac = 0;
scratch._b0 = 0;
for (int i = 0; i < 10; i++) {
- aainfo[i]._val1 = 0;
- aainfo[i]._val2 = 1;
+ aainfo[i]._active = 0;
+ aainfo[i]._frame = 1;
aainfo[i]._val3 = 0;
aainfo[i]._val4 = 0;
}
@@ -408,7 +408,7 @@ static void room_201_daemon() {
} else if (trigger > 26) {
if (trigger == 100) {
kernel_abort_animation(aa[0]);
- aainfo[0]._val1 = 0;
+ aainfo[0]._active = 0;
if (flags[7] == 1) {
kernel_synch(KERNEL_PLAYER, 0, KERNEL_NOW, 0);
global[g141] = -1;
@@ -421,7 +421,7 @@ static void room_201_daemon() {
global[g156] = 2;
global[g131] = -1;
player.walker_visible = -1;
- aainfo[1]._val1 = -1;
+ aainfo[1]._active = -1;
global[g133] = 1;
scratch._a2 = kernel_run_animation_talk('e', 1, 0);
kernel_position_anim(scratch._a2, 186, 115, 76, 7);
@@ -444,14 +444,14 @@ static void room_201_daemon() {
}
} else if (trigger == 101) {
kernel_abort_animation(aa[scratch._94]);
- aainfo[scratch._94]._val1 = 0;
+ aainfo[scratch._94]._active = 0;
kernel_reset_animation(scratch._9c, 1);
kernel_synch(KERNEL_ANIM, scratch._9c, KERNEL_NOW, 0);
global[g143] = 0;
player.commands_allowed = -1;
} else if (trigger == 102) {
kernel_abort_animation(aa[scratch._96]);
- aainfo[scratch._96]._val1 = 0;
+ aainfo[scratch._96]._active = 0;
kernel_reset_animation(scratch._9a, 1);
kernel_synch(KERNEL_ANIM, scratch._9a, KERNEL_NOW, 0);
global[g133] = 0;
@@ -525,14 +525,14 @@ static void room_201_daemon() {
if (scratch._8c == 5) {
if (scratch._a8 == 1) {
aa[4] = kernel_run_animation(kernel_name('F', 1), 102);
- aainfo[4]._val1 = -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);
- aainfo[4]._val1 = -1;
+ aainfo[4]._active = -1;
scratch._96 = 4;
kernel_reset_animation(scratch._9a, 0);
kernel_synch(KERNEL_ANIM, aa[4], KERNEL_ANIM, scratch._9a);
@@ -542,7 +542,7 @@ static void room_201_daemon() {
} else if (trigger == 25) {
if (scratch._8e == 2) {
aa[3] = kernel_run_animation(kernel_name('R', 1), 101);
- aainfo[3]._val1 = -1;
+ aainfo[3]._active = -1;
scratch._94 = 3;
kernel_reset_animation(scratch._9c, 0);
kernel_synch(KERNEL_ANIM, aa[3], KERNEL_ANIM, scratch._9c);
@@ -560,10 +560,10 @@ static void room_201_daemon() {
global_anim1(1, scratch._9a, global[g131], &global[g132]);
global_anim2(1, scratch._9c, global[g141], &global[g142]);
- if (aainfo[0]._val1 != 0) room_201_anim1();
- if (aainfo[3]._val1 != 0) room_201_anim3();
- if (aainfo[4]._val1 != 0) room_201_anim4();
- if (aainfo[1]._val1 != 0) room_201_anim2();
+ if (aainfo[0]._active != 0) room_201_anim1();
+ if (aainfo[3]._active != 0) room_201_anim3();
+ if (aainfo[4]._active != 0) room_201_anim4();
+ if (aainfo[1]._active != 0) room_201_anim2();
if (scratch._ac != 0) room_201_anim5();
if (scratch._b0 != 0) room_201_anim6();
}
@@ -579,8 +579,7 @@ static void room_201_parser() {
if (global[walker_converse_state] != 0) {
player.commands_allowed = 0;
digi_play_build_ii('c', 1, 1);
- player.command_ready = false;
- return;
+ goto handled;
}
if (player_parse(93, 0)) {
@@ -593,8 +592,7 @@ static void room_201_parser() {
digi_play_build_ii('b', 3, 1);
scratch._a4 = 40;
scratch._a6 = -1;
- player.command_ready = false;
- return;
+ goto handled;
}
if (player_parse(145, 0)) {
@@ -607,8 +605,7 @@ static void room_201_parser() {
digi_play_build_ii('b', 3, 1);
scratch._a4 = 41;
scratch._a6 = -1;
- player.command_ready = false;
- return;
+ goto handled;
}
if (player_parse(114, 77, 0)) {
@@ -616,8 +613,7 @@ static void room_201_parser() {
global[g135] = -1;
scratch._8c = 5;
scratch._a8 = 1;
- player.command_ready = false;
- return;
+ goto handled;
}
if (player_parse(114, 103, 0)) {
@@ -630,33 +626,35 @@ static void room_201_parser() {
}
if (global[player_selected_object] >= 0) {
- player.command_ready = false;
- return;
+ goto handled;
}
if (player_parse(114, 116, 0)) {
player.commands_allowed = 0;
global[g145] = -1;
scratch._8e = 2;
- player.command_ready = false;
- return;
+ goto handled;
}
if (player_parse(99, 0)) {
player.commands_allowed = 0;
global[g135] = -1;
scratch._8c = 3;
- player.command_ready = false;
- return;
+ goto handled;
}
if (player_parse(78, 119, 0)) {
player.commands_allowed = 0;
global[g135] = -1;
scratch._8c = 3;
- player.command_ready = false;
- return;
+ goto handled;
}
+
+ goto done;
+handled:
+ player.command_ready = false;
+done:
+ ;
}
void room_201_synchronize(Common::Serializer &s) {
diff --git a/engines/mads/madsv2/forest/rooms/room203.cpp b/engines/mads/madsv2/forest/rooms/room203.cpp
index e9a0d88dedf..ae9209a5a7e 100644
--- a/engines/mads/madsv2/forest/rooms/room203.cpp
+++ b/engines/mads/madsv2/forest/rooms/room203.cpp
@@ -21,8 +21,10 @@
#include "mads/madsv2/core/digi.h"
#include "mads/madsv2/core/game.h"
+#include "mads/madsv2/core/imath.h"
#include "mads/madsv2/core/inter.h"
#include "mads/madsv2/core/kernel.h"
+#include "mads/madsv2/core/midi.h"
#include "mads/madsv2/core/object.h"
#include "mads/madsv2/core/player.h"
#include "mads/madsv2/forest/extra.h"
@@ -56,7 +58,7 @@ struct Scratch {
int16 _a4; /* 0xA4 */
int16 _a6; /* 0xA6 */
int16 _a8; /* 0xA8 */
- int16 _paa; /* 0xAA */
+ int16 _aa; /* 0xAA */
int16 _ac; /* 0xAC */
int16 _ae; /* 0xAE */
int16 _b0; /* 0xB0 */
@@ -102,25 +104,25 @@ static void room_203_init1() {
if (previous_room == 201) {
aa[0] = kernel_run_animation(kernel_name('y', 1), 101);
- aainfo[0]._val1 = -1;
+ aainfo[0]._active = -1;
scratch._9a = 11;
scratch._92 = 60;
if (flags[8] == 1) {
aa[4] = kernel_run_animation(kernel_name('w', 1), 105);
- aainfo[4]._val1 = -1;
- aainfo[4]._val2 = 0;
+ aainfo[4]._active = -1;
+ aainfo[4]._frame = 0;
scratch._9c = 60;
}
return;
} else if (previous_room == 204) {
aa[0] = kernel_run_animation(kernel_name('y', 2), 101);
- aainfo[0]._val1 = -1;
+ aainfo[0]._active = -1;
scratch._9a = 11;
scratch._92 = 99;
return;
} else if (previous_room == 210) {
aa[0] = kernel_run_animation(kernel_name('y', 3), 101);
- aainfo[0]._val1 = -1;
+ aainfo[0]._active = -1;
scratch._9a = 11;
scratch._92 = 74;
global_digi_play(11);
@@ -144,8 +146,8 @@ static void room_203_init1() {
global_digi_play(15);
scratch._a6 = 2;
aa[4] = kernel_run_animation(kernel_name('w', 4), 105);
- aainfo[4]._val1 = -1;
- aainfo[4]._val2 = 0;
+ aainfo[4]._active = -1;
+ aainfo[4]._frame = 0;
scratch._9c = 63;
player.walker_visible = -1;
kernel_synch(KERNEL_PLAYER, 0, KERNEL_NOW, 0);
@@ -157,8 +159,8 @@ static void room_203_init1() {
if (global[g049] != 0) {
aa[3] = kernel_run_animation(kernel_name('a', 1), 104);
scratch._98 = 30;
- aainfo[3]._val1 = -1;
- aainfo[3]._val2 = 25;
+ aainfo[3]._active = -1;
+ aainfo[3]._frame = 25;
kernel_reset_animation(aa[3], 25);
global[g049] = -1;
player.walker_visible = 0;
@@ -218,8 +220,8 @@ static void room_203_init() {
}
for (int i = 0; i < 10; i++) {
- aainfo[i]._val1 = 0;
- aainfo[i]._val2 = 1;
+ aainfo[i]._active = 0;
+ aainfo[i]._frame = 1;
aainfo[i]._val3 = 0;
aainfo[i]._val4 = 0;
}
@@ -231,81 +233,844 @@ static void room_203_init() {
room_203_init1();
}
+static void room_203_anim5();
+
+static void room_203_anim1() {
+ int result = -1;
+ int frame;
+
+ if (global[player_hyperwalked])
+ local->_b0 = true;
+
+ if (kernel_anim[aa[0]].frame == aainfo[0]._frame)
+ return;
+ aainfo[0]._frame = kernel_anim[aa[0]].frame;
+
+ switch (local->_9a) {
+ case 11:
+ if (local->_9c == 60) {
+ frame = aainfo[0]._frame;
+ if (frame == 50) {
+ aainfo[4]._frame = 22;
+ kernel_reset_animation(aa[4], 22);
+ } else if (frame < 50) {
+ if (frame == 22) {
+ if (local->_a6 != 1) {
+ global_digi_play(10);
+ local->_a6 = 1;
+ }
+ aainfo[4]._frame = 3;
+ kernel_reset_animation(aa[4], 3);
+ } else if (frame == 33) {
+ aainfo[4]._frame = 8;
+ kernel_reset_animation(aa[4], 8);
+ }
+ }
+ }
+
+ if (aainfo[0]._frame == 1) {
+ if (global[g046] == 0 && flags[8] > 1 && local->_a6 != 1) {
+ global_digi_play(10);
+ local->_a6 = 1;
+ }
+ }
+
+ if (local->_b0) {
+ result = local->_92 - 1;
+ if (local->_9c == 60) {
+ aainfo[4]._frame = 22;
+ kernel_abort_animation(aa[4]);
+ aainfo[4]._active = 0;
+ }
+ local->_b0 = 0;
+ }
+ break;
+
+ case 12:
+ switch (aainfo[0]._frame) {
+ case 4:
+ digi_play_build(203, 'E', 1, 1);
+ local->_a4 = 11;
+ break;
+ case 8:
+ result = 4;
+ break;
+ case 11:
+ result = 9;
+ break;
+ case 12:
+ digi_play_build(203, 'R', 1, 1);
+ local->_a4 = 21;
+ break;
+ case 16:
+ result = 12;
+ break;
+ case 19:
+ result = 17;
+ break;
+ case 20:
+ digi_play_build(203, 'B', 1, 1);
+ local->_a4 = 31;
+ break;
+ case 24:
+ result = 20;
+ break;
+ case 27:
+ result = 25;
+ break;
+ case 28:
+ digi_play_build(203, 'E', 2, 1);
+ local->_a4 = 12;
+ break;
+ case 32:
+ result = 28;
+ break;
+ case 35:
+ result = 33;
+ break;
+ case 36:
+ digi_play_build(203, 'R', 2, 1);
+ local->_a4 = 22;
+ aainfo[4]._frame = 13;
+ kernel_reset_animation(aa[4], 13);
+ break;
+ case 40:
+ result = 36;
+ break;
+ case 42:
+ if (aainfo[4]._frame > 20)
+ result = 44;
+ break;
+ case 43:
+ result = 41;
+ break;
+ case 50:
+ if (aainfo[4]._frame < 27) {
+ result = 49;
+ } else {
+ dont_frag_the_palette();
+ kernel_abort_animation(aa[4]);
+ aainfo[4]._active = 0;
+ dont_frag_the_palette();
+ kernel_abort_animation(aa[0]);
+ aainfo[0]._active = 0;
+ aa[0] = kernel_run_animation(kernel_name('x', 3), 101);
+ aainfo[0]._active = -1;
+ aainfo[0]._frame = 0;
+ local->_9a = 13;
+ aa[4] = kernel_run_animation(kernel_name('w', 4), 105);
+ aainfo[4]._active = -1;
+ aainfo[4]._frame = 0;
+ local->_9c = 63;
+ }
+ break;
+ default:
+ break;
+ }
+ break;
+
+ case 13: {
+ frame = aainfo[0]._frame;
+ if (frame == 29) {
+ dont_frag_the_palette();
+ kernel_abort_animation(aa[4]);
+ aainfo[4]._active = 0;
+ dont_frag_the_palette();
+ kernel_abort_animation(aa[0]);
+ aainfo[0]._active = 0;
+ room_203_anim5();
+ } else if (frame < 29) {
+ if (frame == 22) {
+ result = 20;
+ } else if (frame < 22) {
+ if (frame == 1) {
+ digi_play_build(203, 'B', 2, 1);
+ local->_a4 = 32;
+ } else if (frame == 5) {
+ result = 1;
+ } else if (frame == 20) {
+ local->_a4 = 23;
+ if (flags[8] == 1) {
+ digi_play_build(203, 'R', 3, 1);
+ } else {
+ digi_play("NULL", 1);
+ result = 23;
+ }
+ }
+ } else {
+ if (frame == 24) {
+ result = 23;
+ } else if (frame == 25) {
+ local->_a4 = 13;
+ if (flags[8] == 1) {
+ digi_play_build(203, 'E', 3, 1);
+ } else {
+ digi_play("NULL", 1);
+ result = 23;
+ }
+ } else if (frame == 27) {
+ result = 25;
+ }
+ }
+ }
+ break;
+
+ case 15:
+ if (aainfo[0]._frame == 1) {
+ digi_play_build(203, '_', 500, 2);
+ }
+ break;
+
+ case 16:
+ switch (aainfo[0]._frame) {
+ case 6:
+ digi_play_build(203, 'E', 6, 1);
+ local->_a4 = 16;
+ break;
+ case 11:
+ result = 6;
+ break;
+ case 51:
+ digi_play_build(203, 'E', 7, 1);
+ local->_a4 = 17;
+ break;
+ case 56:
+ result = 51;
+ break;
+ default:
+ break;
+ }
+ break;
+ }
+
+ default:
+ break;
+ }
+
+ if (result >= 0 && aainfo[0]._active) {
+ aainfo[0]._frame = result;
+ kernel_reset_animation(aa[0], result);
+ }
+}
+
+static void room_203_anim2() {
+ int result = -1;
+
+ if (kernel_anim[aa[1]].frame != aainfo[1]._frame) {
+ aainfo[1]._frame = kernel_anim[aa[1]].frame;
+
+ switch (local->_96) {
+ case 52:
+ case 57:
+ if (aainfo[1]._frame == 4) {
+ if (local->_96 == 52) {
+ digi_play_build(203, 'e', 4, 1);
+ local->_a4 = 14;
+ } else {
+ digi_play_build(203, 'e', 5, 1);
+ local->_a4 = 15;
+ }
+ } else if (aainfo[1]._frame == 10) {
+ result = 4;
+ }
+ break;
+
+ case 53:
+ if (aainfo[1]._frame == 5)
+ digi_play_build(203, '_', 2, 2);
+ break;
+
+ case 54:
+ case 55:
+ switch (aainfo[1]._frame) {
+ case 1:
+ aainfo[1]._val4++;
+ if (aainfo[1]._val4 > 8)
+ aainfo[1]._val4 = 0;
+ else
+ result = 0;
+ break;
+ case 2:
+ case 9:
+ case 20:
+ case 29:
+ digi_play_build(203, '_', 2, 2);
+ break;
+ case 6:
+ case 24:
+ digi_play_build(203, '_', 3, 2);
+ break;
+ case 8:
+ case 26:
+ digi_play_build(203, '_', 800, 1);
+ local->_a4 = 54;
+ break;
+ case 16:
+ if (local->_ac)
+ result = 35;
+ break;
+ case 18:
+ aainfo[1]._val4++;
+ if (aainfo[1]._val4 > 4)
+ aainfo[1]._val4 = 0;
+ else
+ result = 17;
+ break;
+ case 33:
+ aainfo[1]._val4++;
+ if (aainfo[1]._val4 > 4)
+ aainfo[1]._val4 = 0;
+ else
+ result = 32;
+ break;
+ case 34:
+ local->_a8++;
+ if (local->_a8 <= 2) {
+ result = 1;
+ } else {
+ dont_frag_the_palette();
+ kernel_abort_animation(aa[1]);
+ aainfo[1]._active = 0;
+ dont_frag_the_palette();
+ kernel_abort_animation(aa[4]);
+ aainfo[4]._active = 0;
+ aa[5] = kernel_run_animation(kernel_name('h', 1), 0);
+ aainfo[5]._active = -1;
+ aainfo[5]._frame = 0;
+ aa[4] = kernel_run_animation(kernel_name('w', 5), 105);
+ aainfo[4]._active = -1;
+ aainfo[4]._frame = 0;
+ local->_9c = 64;
+ }
+ break;
+ case 39:
+ dont_frag_the_palette();
+ kernel_abort_animation(aa[1]);
+ aainfo[1]._active = 0;
+ aainfo[5]._frame = 1;
+ kernel_reset_animation(aa[5], 1);
+ kernel_synch(KERNEL_ANIM, aa[5], KERNEL_NOW, 0);
+ aainfo[4]._frame = 1;
+ kernel_reset_animation(aa[4], 1);
+ kernel_synch(KERNEL_ANIM, aa[4], KERNEL_NOW, 0);
+ aa[2] = kernel_run_animation(kernel_name('R', 3), 102);
+ aainfo[2]._active = -1;
+ aainfo[2]._frame = 0;
+ local->_94 = 41;
+ local->_a8 = 0;
+ kernel_reset_animation(local->_a0, 0);
+ kernel_synch(KERNEL_ANIM, aa[2], KERNEL_ANIM, local->_a0);
+ global[g143] = 1;
+ break;
+ default:
+ break;
+ }
+ break;
+
+ case 56:
+ if (aainfo[1]._frame == 10 && local->_ac) {
+ aainfo[3]._frame = 1;
+ kernel_reset_animation(aa[3], 1);
+ }
+ break;
+
+ default:
+ break;
+ }
+
+ if (result >= 0 && aainfo[1]._active) {
+ aainfo[1]._frame = result;
+ kernel_reset_animation(aa[1], result);
+ }
+ }
+
+ if (global[player_hyperwalked] && local->_96 == 50) {
+ aainfo[1]._frame = 59;
+ kernel_reset_animation(aa[1], 59);
+ kernel_synch(KERNEL_ANIM, aa[1], KERNEL_NOW, 0);
+ }
+}
+
+static void room_203_anim3() {
+ int result = -1;
+ int16 frame;
+
+ if (kernel_anim[aa[2]].frame == aainfo[2]._frame)
+ return;
+ aainfo[2]._frame = kernel_anim[aa[2]].frame;
+
+ switch (local->_94) {
+ case 41:
+ frame = aainfo[2]._frame;
+ if (frame == 8) {
+ aainfo[4]._frame = 11;
+ kernel_reset_animation(aa[4], 11);
+ digi_play_build(203, '_', 1, 2);
+ local->_a8++;
+ } else if (frame == 12) {
+ if (local->_ac) {
+ dont_frag_the_palette();
+ kernel_abort_animation(aa[2]);
+ aainfo[2]._active = 0;
+ kernel_reset_animation(local->_a0, 1);
+ kernel_synch(KERNEL_ANIM, local->_a0, KERNEL_NOW, 0);
+ global[g143] = 0;
+ aainfo[3]._frame = 18;
+ kernel_reset_animation(aa[3], 18);
+ } else if (local->_a8 < 5) {
+ if (imath_random(1, 100) > 80)
+ result = 1;
+ else
+ result = 11;
+ }
+ }
+ break;
+
+ case 42:
+ frame = aainfo[2]._frame;
+ if (frame == 4) {
+ digi_play_build(203, 'R', 6, 1);
+ local->_a4 = 26;
+ } else if (frame == 9) {
+ result = 4;
+ }
+ break;
+
+ case 43:
+ frame = aainfo[2]._frame;
+ if (frame == 20) {
+ result = 13;
+ } else if (frame < 20) {
+ if (frame == 1) {
+ digi_play_build(203, 'R', 4, 1);
+ local->_a4 = 24;
+ } else if (frame == 4) {
+ result = 1;
+ } else if (frame == 10) {
+ result = 6;
+ } else if (frame == 13) {
+ digi_play_build(203, 'R', 5, 1);
+ local->_a4 = 25;
+ }
+ }
+ break;
+
+ default:
+ break;
+ }
+
+ if (result >= 0 && aainfo[2]._active) {
+ aainfo[2]._frame = result;
+ kernel_reset_animation(aa[2], result);
+ }
+}
+
+static void room_203_flip_hotspots1() {
+ kernel_flip_hotspot(65, true);
+ kernel_flip_hotspot(66, true);
+ kernel_flip_hotspot(168, false);
+ kernel_flip_hotspot(170, false);
+ kernel_flip_hotspot(169, false);
+ kernel_flip_hotspot(119, false);
+ kernel_flip_hotspot(27, false);
+ kernel_flip_hotspot(21, false);
+ kernel_flip_hotspot(24, false);
+}
+
+static void room_203_flip_hotspots2() {
+ kernel_flip_hotspot(65, 0);
+ kernel_flip_hotspot(66, 0);
+ kernel_flip_hotspot(119, global[g047] < 1 ? 1 : 0);
+ kernel_flip_hotspot(27, global[g047]);
+ kernel_flip_hotspot(21, -1);
+ kernel_flip_hotspot(24, -1);
+}
+
+static void room_203_anim4() {
+ int result = -1;
+ int frame;
+
+ if (kernel_anim[aa[3]].frame == aainfo[3]._frame)
+ return;
+ aainfo[3]._frame = kernel_anim[aa[3]].frame;
+
+ switch (local->_98) {
+ case 30:
+ frame = aainfo[3]._frame;
+ if (frame == 42) {
+ dont_frag_the_palette();
+ kernel_abort_animation(aa[3]);
+ aainfo[3]._active = 0;
+ room_203_flip_hotspots2();
+ kernel_flip_hotspot(168, -1);
+ kernel_flip_hotspot(170, -1);
+ kernel_flip_hotspot(169, -1);
+ player.walker_visible = -1;
+ kernel_synch(KERNEL_PLAYER, 0, KERNEL_NOW, 0);
+ player.commands_allowed = -1;
+ if (local->_ae) {
+ global[g145] = -1;
+ local->_8e = 41;
+ player.commands_allowed = 0;
+ local->_a8 = 0;
+ local->_ae = 0;
+ }
+ } else if (frame < 42) {
+ if (frame == 29) {
+ digi_play_build(203, 'b', 4, 1);
+ local->_a4 = 34;
+ local->_ac = 0;
+ } else if (frame < 29) {
+ if (frame == 1) {
+ digi_play_build(203, 'b', 3, 1);
+ local->_a4 = 33;
+ } else if (frame == 3) {
+ result = 1;
+ } else if (frame == 26) {
+ room_203_flip_hotspots1();
+ player.commands_allowed = -1;
+ } else if (frame == 28) {
+ result = 27;
+ }
+ } else {
+ if (frame == 33) {
+ result = 29;
+ } else if (frame == 34) {
+ digi_play_build(203, 'b', 5, 1);
+ local->_a4 = 35;
+ local->_ac = -1;
+ } else if (frame == 38) {
+ result = 34;
+ } else if (frame == 40) {
+ dont_frag_the_palette();
+ kernel_abort_animation(aa[3]);
+ aainfo[3]._active = 0;
+ if (local->_ac) {
+ aa[5] = kernel_run_animation(kernel_name('h', 1), 0);
+ aainfo[5]._active = -1;
+ aainfo[5]._frame = 4;
+ kernel_reset_animation(aa[5], 4);
+ }
+ aa[3] = kernel_run_animation(kernel_name('a', 2), 104);
+ aainfo[3]._active = -1;
+ aainfo[3]._frame = 0;
+ local->_98 = 31;
+ player.commands_allowed = 0;
+ room_203_flip_hotspots2();
+ }
+ }
+ }
+ break;
+
+ case 31:
+ frame = aainfo[3]._frame;
+ if (frame == 19) {
+ dont_frag_the_palette();
+ kernel_abort_animation(aa[3]);
+ aainfo[3]._active = 0;
+ aa[3] = kernel_run_animation(kernel_name('a', 3), 104);
+ local->_98 = 32;
+ aainfo[3]._active = -1;
+ aainfo[3]._frame = 0;
+ local->_a8 = 0;
+ } else if (frame < 19) {
+ if (frame == 8) {
+ digi_play_build(101, '_', 1, 2);
+ } else if (frame == 16) {
+ if (local->_ac) {
+ global[g150] = -1;
+ local->_90 = 55;
+ }
+ } else if (frame == 17) {
+ if (local->_ac)
+ result = 16;
+ }
+ }
+ break;
+
+ case 32:
+ frame = aainfo[3]._frame;
+ if (frame == 40) {
+ dont_frag_the_palette();
+ kernel_abort_animation(aa[3]);
+ aainfo[3]._active = 0;
+ if (local->_ac) {
+ dont_frag_the_palette();
+ kernel_abort_animation(aa[5]);
+ aainfo[5]._active = 0;
+ }
+ dont_frag_the_palette();
+ kernel_abort_animation(aa[4]);
+ aainfo[4]._active = 0;
+ aa[3] = kernel_run_animation(kernel_name('a', 4), 104);
+ local->_98 = 33;
+ aainfo[3]._active = -1;
+ aainfo[3]._frame = 0;
+ if (local->_ac) {
+ aa[5] = kernel_run_animation(kernel_name('h', 1), 0);
+ aainfo[5]._active = -1;
+ aainfo[5]._frame = 1;
+ kernel_reset_animation(aa[5], 1);
+ }
+ aa[4] = kernel_run_animation(kernel_name('w', 5), 105);
+ local->_9c = 64;
+ aainfo[4]._active = -1;
+ aainfo[4]._frame = 0;
+ } else if (frame < 40) {
+ if (frame == 13 || frame == 21 || frame == 29) {
+ aainfo[4]._frame = 1;
+ kernel_reset_animation(aa[4], 1);
+ kernel_synch(KERNEL_ANIM, aa[4], KERNEL_ANIM, aa[3]);
+ } else if (frame < 13) {
+ if (frame == 5) {
+ digi_play_build(203, '_', 4, 2);
+ } else if (frame == 11) {
+ aainfo[4]._frame = 17;
+ kernel_reset_animation(aa[4], 17);
+ kernel_synch(KERNEL_ANIM, aa[4], KERNEL_ANIM, aa[3]);
+ if (imath_random(0, 100) > 65)
+ local->_aa = 0;
+ else
+ local->_aa = -1;
+ } else if (frame == 12) {
+ local->_a8++;
+ digi_play_build(203, '_', 5, 2);
+ }
+ } else {
+ if (frame == 18) {
+ if (local->_a8 > 3 || local->_ac)
+ result = 34;
+ } else if (frame == 34) {
+ result = 9;
+ }
+ }
+ }
+ break;
+
+ case 33:
+ frame = aainfo[3]._frame;
+ if (frame == 63) {
+ result = 60;
+ } else if (frame < 63) {
+ if (frame == 34) {
+ digi_play_build(101, '_', 1, 2);
+ display_interface();
+ } else if (frame < 34) {
+ if (frame == 1) {
+ result = 0;
+ } else if (frame == 4) {
+ digi_play_build(203, '_', 4, 2);
+ }
+ } else {
+ if (frame == 57) {
+ if (local->_ac) {
+ digi_play_build(203, 'b', 9, 1);
+ local->_a4 = 39;
+ } else {
+ digi_play_build(203, 'b', 6, 1);
+ local->_a4 = 36;
+ }
+ } else if (frame == 59) {
+ result = 57;
+ }
+ }
+ }
+ break;
+
+ default:
+ break;
+ }
+
+ if (result >= 0 && aainfo[3]._active) {
+ aainfo[3]._frame = result;
+ kernel_reset_animation(aa[3], result);
+ }
+}
+
+static void room_203_anim5() {
+ int result = -1;
+
+ if (kernel_anim[aa[4]].frame == aainfo[4]._frame)
+ return;
+ aainfo[4]._frame = kernel_anim[aa[4]].frame;
+
+ switch (local->_9c) {
+ case 60: {
+ int16 frame = aainfo[4]._frame;
+ if (frame == 22) {
+ result = 18;
+ } else if (frame < 22) {
+ if (frame == 2)
+ result = 1;
+ else if (frame == 7)
+ result = 5;
+ }
+ break;
+ }
+ case 61:
+ if (aainfo[4]._frame == 13)
+ result = 11;
+ break;
+ case 62: {
+ int16 frame = aainfo[4]._frame;
+ if (frame == 29) {
+ result = 27;
+ } else if (frame < 29) {
+ if (frame == 1) {
+ global_digi_play(12);
+ local->_a6 = 4;
+ } else if (frame == 19) {
+ digi_play_build(103, '_', 3, 2);
+ if (local->_a6 != 2) {
+ global_digi_play(15);
+ local->_a6 = 2;
+ }
+ } else if (frame == 22) {
+ digi_play_build(203, '_', 500, 2);
+ }
+ }
+ break;
+ }
+ case 63: {
+ int16 frame = aainfo[4]._frame;
+ if (frame == 19) {
+ result = 17;
+ } else if (frame < 19) {
+ if (frame == 2) {
+ if (local->_aa) {
+ if (local->_a8 > 1)
+ digi_play_build(203, '_', 500, 2);
+ local->_aa = 0;
+ }
+ } else if (frame == 9) {
+ result = 7;
+ } else if (frame == 13) {
+ result = 1;
+ }
+ }
+ break;
+ }
+ case 64: {
+ int16 frame = aainfo[4]._frame;
+ if (frame == 25) {
+ midi_stop();
+ local->_a6 = 0;
+ } else if (frame < 25) {
+ if (frame == 1) {
+ global_digi_play(5);
+ local->_a6 = 3;
+ } else if (frame == 18) {
+ if (!local->_ac && local->_98 == 33) {
+ aainfo[3]._frame = 1;
+ kernel_reset_animation(aa[3], 1);
+ }
+ }
+ }
+ break;
+ }
+ default:
+ break;
+ }
+
+ if (result >= 0 && aainfo[4]._active) {
+ aainfo[4]._frame = result;
+ kernel_reset_animation(aa[4], result);
+ }
+}
+
+static void room_203_anim6() {
+ int result = -1;
+
+ if (kernel_anim[aa[5]].frame == aainfo[5]._frame)
+ return;
+ aainfo[5]._frame = kernel_anim[aa[5]].frame;
+
+ if (aainfo[5]._frame == 2)
+ result = 1;
+ else if (aainfo[5]._frame == 5)
+ result = 4;
+
+ if (result >= 0) {
+ aainfo[5]._frame = result;
+ kernel_reset_animation(aa[5], result);
+ }
+}
+
static void room_203_daemon() {
switch (kernel.trigger) {
case 7:
switch (local->_a4) {
case 11:
kernel_timing_trigger(40, 106);
- aainfo[0]._val2 = 9;
+ aainfo[0]._frame = 9;
kernel_reset_animation(aa[0], 9);
break;
case 12:
kernel_timing_trigger(40, 106);
- aainfo[0]._val2 = 33;
+ aainfo[0]._frame = 33;
kernel_reset_animation(aa[0], 33);
break;
case 13:
- aainfo[0]._val2 = 28;
+ aainfo[0]._frame = 28;
kernel_reset_animation(aa[0], 28);
break;
case 14:
case 15:
- aainfo[1]._val2 = 11;
+ aainfo[1]._frame = 11;
kernel_reset_animation(aa[1], 11);
break;
case 16:
- aainfo[0]._val2 = 12;
+ aainfo[0]._frame = 12;
kernel_reset_animation(aa[0], 12);
break;
case 17:
- aainfo[0]._val2 = 57;
+ aainfo[0]._frame = 57;
kernel_reset_animation(aa[0], 57);
break;
case 21:
kernel_timing_trigger(40, 106);
- aainfo[0]._val2 = 17;
+ aainfo[0]._frame = 17;
kernel_reset_animation(aa[0], 17);
break;
case 22:
dont_frag_the_palette();
kernel_abort_animation(aa[4]);
- aainfo[4]._val1 = 0;
+ aainfo[4]._active = 0;
aa[4] = kernel_run_animation(kernel_name('w', 3), 105);
- aainfo[4]._val1 = -1;
- aainfo[4]._val2 = 0;
+ aainfo[4]._active = -1;
+ aainfo[4]._frame = 0;
local->_9c = 62;
- aainfo[0]._val2 = 41;
+ aainfo[0]._frame = 41;
kernel_reset_animation(aa[0], 41);
break;
case 23:
kernel_timing_trigger(40, 106);
- aainfo[0]._val2 = 23;
+ aainfo[0]._frame = 23;
kernel_reset_animation(aa[0], 23);
break;
case 24:
kernel_timing_trigger(40, 106);
- aainfo[2]._val2 = 6;
+ aainfo[2]._frame = 6;
kernel_reset_animation(aa[2], 6);
break;
case 25:
- aainfo[2]._val2 = 20;
+ aainfo[2]._frame = 20;
kernel_reset_animation(aa[2], 20);
break;
case 26:
- aainfo[2]._val2 = 10;
+ aainfo[2]._frame = 10;
kernel_reset_animation(aa[2], 10);
break;
@@ -321,41 +1086,41 @@ static void room_203_daemon() {
case 31:
kernel_timing_trigger(40, 106);
- aainfo[0]._val2 = 25;
+ aainfo[0]._frame = 25;
kernel_reset_animation(aa[0], 25);
break;
case 32:
- aainfo[0]._val2 = 5;
+ aainfo[0]._frame = 5;
kernel_reset_animation(aa[0], 5);
break;
case 33:
- aainfo[3]._val2 = 3;
+ aainfo[3]._frame = 3;
kernel_reset_animation(aa[3], 3);
break;
case 34:
case 35:
- aainfo[3]._val2 = 39;
+ aainfo[3]._frame = 39;
kernel_reset_animation(aa[3], 39);
break;
case 36:
kernel_timing_trigger(40, 106);
- aainfo[3]._val2 = 60;
+ aainfo[3]._frame = 60;
kernel_reset_animation(aa[3], 60);
break;
case 38:
case 39:
- aainfo[3]._val2 = 63;
+ aainfo[3]._frame = 63;
kernel_reset_animation(aa[3], 63);
break;
case 51:
kernel_timing_trigger(40, 106);
- aainfo[0]._val2 = 24;
+ aainfo[0]._frame = 24;
kernel_reset_animation(aa[0], 24);
break;
@@ -375,8 +1140,8 @@ static void room_203_daemon() {
switch (local->_8c) {
case 50:
aa[1] = kernel_run_animation(kernel_name('Z', 1), 103);
- aainfo[1]._val1 = -1;
- aainfo[1]._val2 = 0;
+ aainfo[1]._active = -1;
+ aainfo[1]._frame = 0;
local->_96 = 50;
player.commands_allowed = false;
player.walker_visible = false;
@@ -390,8 +1155,8 @@ static void room_203_daemon() {
case 51:
aa[1] = kernel_run_animation(kernel_name('e', 4), 103);
- aainfo[1]._val1 = -1;
- aainfo[1]._val2 = 0;
+ aainfo[1]._active = -1;
+ aainfo[1]._frame = 0;
local->_96 = 52;
player.commands_allowed = false;
player.walker_visible = false;
@@ -412,8 +1177,8 @@ static void room_203_daemon() {
switch (local->_8e) {
case 41:
aa[2] = kernel_run_animation(kernel_name('R', 3), 102);
- aainfo[2]._val1 = -1;
- aainfo[2]._val2 = 0;
+ aainfo[2]._active = -1;
+ aainfo[2]._frame = 0;
local->_94 = 41;
local->_a8 = 0;
kernel_reset_animation(local->_a0, 0);
@@ -423,8 +1188,8 @@ static void room_203_daemon() {
case 42:
aa[2] = kernel_run_animation(kernel_name('R', 1), 102);
- aainfo[2]._val1 = -1;
- aainfo[2]._val2 = 0;
+ aainfo[2]._active = -1;
+ aainfo[2]._frame = 0;
local->_94 = 42;
kernel_reset_animation(local->_a0, 0);
kernel_synch(KERNEL_ANIM, aa[2], KERNEL_ANIM, local->_a0);
@@ -433,8 +1198,8 @@ static void room_203_daemon() {
case 43:
aa[2] = kernel_run_animation(kernel_name('R', 2), 102);
- aainfo[2]._val1 = -1;
- aainfo[2]._val2 = 0;
+ aainfo[2]._active = -1;
+ aainfo[2]._frame = 0;
local->_94 = 43;
kernel_reset_animation(local->_a0, 0);
kernel_synch(KERNEL_ANIM, aa[2], KERNEL_ANIM, local->_a0);
@@ -466,8 +1231,8 @@ static void room_203_daemon() {
switch (local->_90) {
case 14:
aa[0] = kernel_run_animation(kernel_name('x', 4), 101);
- aainfo[0]._val1 = -1;
- aainfo[0]._val2 = 0;
+ aainfo[0]._active = -1;
+ aainfo[0]._frame = 0;
kernel_synch(KERNEL_ANIM, aa[0], KERNEL_NOW, 0);
local->_9a = 14;
break;
@@ -475,10 +1240,10 @@ static void room_203_daemon() {
case 15:
dont_frag_the_palette();
kernel_abort_animation(aa[4]);
- aainfo[4]._val1 = 0;
+ aainfo[4]._active = 0;
aa[0] = kernel_run_animation(kernel_name('z', 2), 101);
- aainfo[0]._val1 = -1;
- aainfo[0]._val2 = 0;
+ aainfo[0]._active = -1;
+ aainfo[0]._frame = 0;
kernel_synch(KERNEL_ANIM, aa[0], KERNEL_NOW, 0);
local->_9a = 15;
break;
@@ -487,8 +1252,8 @@ static void room_203_daemon() {
player.walker_visible = true;
kernel_synch(KERNEL_PLAYER, 0, KERNEL_NOW, 0);
aa[0] = kernel_run_animation(kernel_name('m', 1), 101);
- aainfo[0]._val1 = -1;
- aainfo[0]._val2 = 0;
+ aainfo[0]._active = -1;
+ aainfo[0]._frame = 0;
kernel_synch(KERNEL_ANIM, aa[0], KERNEL_NOW, 0);
local->_9a = 16;
kernel_seq_delete(seq[0]);
@@ -500,8 +1265,8 @@ static void room_203_daemon() {
kernel_synch(KERNEL_ANIM, aa[local->_a0], KERNEL_NOW, 0);
aa[1] = kernel_run_animation(kernel_name('e', 1), 103);
kernel_synch(KERNEL_ANIM, aa[1], KERNEL_NOW, 0);
- aainfo[1]._val1 = -1;
- aainfo[1]._val2 = 0;
+ aainfo[1]._active = -1;
+ aainfo[1]._frame = 0;
local->_a8 = 0;
break;
@@ -513,7 +1278,7 @@ static void room_203_daemon() {
case 101:
dont_frag_the_palette();
kernel_abort_animation(aa[0]);
- aainfo[0]._val1 = 0;
+ aainfo[0]._active = 0;
switch (local->_9a) {
case 11:
@@ -536,21 +1301,21 @@ static void room_203_daemon() {
}
aa[0] = kernel_run_animation(kernel_name('x', 2), 101);
- aainfo[0]._val1 = -1;
- aainfo[0]._val2 = 0;
+ aainfo[0]._active = -1;
+ aainfo[0]._frame = 0;
local->_9a = 12;
if (flags[8] == 1) {
aa[4] = kernel_run_animation(kernel_name('w', 2), 105);
- aainfo[4]._val1 = -1;
- aainfo[4]._val2 = 0;
+ aainfo[4]._active = -1;
+ aainfo[4]._frame = 0;
local->_9c = 61;
} else {
aa[4] = kernel_run_animation(kernel_name('w', 3), 105);
- aainfo[4]._val1 = -1;
- aainfo[4]._val2 = 0;
+ aainfo[4]._active = -1;
+ aainfo[4]._frame = 0;
local->_9c = 62;
- aainfo[0]._val2 = 41;
+ aainfo[0]._frame = 41;
kernel_reset_animation(aa[0], 41);
}
}
@@ -624,17 +1389,17 @@ static void room_203_daemon() {
case 102:
dont_frag_the_palette();
kernel_abort_animation(aa[2]);
- aainfo[2]._val1 = 0;
- aainfo[2]._val2 = 0;
+ aainfo[2]._active = 0;
+ aainfo[2]._frame = 0;
switch (local->_8e) {
case 41:
dont_frag_the_palette();
kernel_abort_animation(aa[4]);
- aainfo[4]._val1 = 0;
+ aainfo[4]._active = 0;
aa[4] = kernel_run_animation(kernel_name('w', 5), 105);
- aainfo[4]._val1 = -1;
- aainfo[4]._val2 = 0;
+ aainfo[4]._active = -1;
+ aainfo[4]._frame = 0;
local->_9c = 64;
kernel_synch(KERNEL_ANIM, aa[4], KERNEL_NOW, 0);
kernel_reset_animation(local->_a0, 1);
@@ -668,8 +1433,8 @@ static void room_203_daemon() {
case 103:
dont_frag_the_palette();
kernel_abort_animation(aa[1]);
- aainfo[1]._val1 = 0;
- aainfo[1]._val2 = 0;
+ aainfo[1]._active = 0;
+ aainfo[1]._frame = 0;
switch (local->_96) {
case 50:
@@ -680,18 +1445,18 @@ static void room_203_daemon() {
case 52:
aa[1] = kernel_run_animation(kernel_name('e', 1), 103);
kernel_synch(KERNEL_ANIM, aa[1], KERNEL_NOW, 0);
- aainfo[1]._val1 = -1;
- aainfo[1]._val2 = 0;
+ aainfo[1]._active = -1;
+ aainfo[1]._frame = 0;
local->_96 = 53;
local->_a8 = 0;
break;
case 53:
aa[1] = kernel_run_animation(kernel_name('e', 2), 103);
- aainfo[1]._val1 = -1;
- aainfo[1]._val2 = 0;
+ aainfo[1]._active = -1;
+ aainfo[1]._frame = 0;
aainfo[1]._val4 = 0;
- aainfo[4]._val2 = 17;
+ aainfo[4]._frame = 17;
kernel_reset_animation(aa[4], 0);
kernel_synch(KERNEL_ANIM, aa[4], KERNEL_NOW, 0);
local->_96 = local->_ac ? 55 : 54;
@@ -706,8 +1471,8 @@ static void room_203_daemon() {
} else {
aa[1] = kernel_run_animation(kernel_name('e', 4), 103);
kernel_synch(KERNEL_ANIM, aa[1], KERNEL_NOW, 0);
- aainfo[1]._val1 = -1;
- aainfo[1]._val2 = 0;
+ aainfo[1]._active = -1;
+ aainfo[1]._frame = 0;
local->_96 = 57;
}
break;
@@ -730,7 +1495,7 @@ static void room_203_daemon() {
case 104:
dont_frag_the_palette();
kernel_abort_animation(aa[3]);
- aainfo[3]._val1 = 0;
+ aainfo[3]._active = 0;
if (local->_98 == 33) {
player.walker_visible = true;
@@ -746,7 +1511,7 @@ static void room_203_daemon() {
case 105:
dont_frag_the_palette();
kernel_abort_animation(aa[4]);
- aainfo[4]._val1 = 0;
+ aainfo[4]._active = 0;
if (local->_9c == 64) {
if (local->_94 == 41 && local->_ac == 0) {
@@ -757,10 +1522,10 @@ static void room_203_daemon() {
if (local->_96 == 54) {
dont_frag_the_palette();
kernel_abort_animation(aa[5]);
- aainfo[5]._val1 = 0;
+ aainfo[5]._active = 0;
aa[1] = kernel_run_animation(kernel_name('e', 3), 103);
- aainfo[1]._val1 = -1;
- aainfo[1]._val2 = 0;
+ aainfo[1]._active = -1;
+ aainfo[1]._frame = 0;
local->_96 = 56;
}
@@ -770,10 +1535,10 @@ static void room_203_daemon() {
if (local->_ac) {
dont_frag_the_palette();
kernel_abort_animation(aa[5]);
- aainfo[5]._val1 = 0;
+ aainfo[5]._active = 0;
aa[1] = kernel_run_animation(kernel_name('e', 3), 103);
- aainfo[1]._val1 = -1;
- aainfo[1]._val2 = 0;
+ aainfo[1]._active = -1;
+ aainfo[1]._frame = 0;
local->_96 = 56;
}
break;
@@ -785,39 +1550,39 @@ static void room_203_daemon() {
case 23:
digi_play_build(203, 'W', 1, 1);
local->_a4 = 51;
- aainfo[4]._val2 = 1;
+ aainfo[4]._frame = 1;
kernel_reset_animation(aa[4], 1);
break;
case 24:
- aainfo[2]._val2 = 10;
+ aainfo[2]._frame = 10;
kernel_reset_animation(aa[2], 10);
break;
case 31:
- aainfo[0]._val2 = 27;
+ aainfo[0]._frame = 27;
kernel_reset_animation(aa[0], 27);
break;
case 36:
- aainfo[3]._val2 = 57;
+ aainfo[3]._frame = 57;
kernel_reset_animation(aa[3], 57);
digi_play_build(203, 'b', 8, 1);
local->_a4 = 38;
break;
case 34:
- aainfo[0]._val2 = 11;
+ aainfo[0]._frame = 11;
kernel_reset_animation(aa[0], 11);
break;
case 35:
- aainfo[0]._val2 = 35;
+ aainfo[0]._frame = 35;
kernel_reset_animation(aa[0], 35);
break;
case 44:
- aainfo[0]._val2 = 19;
+ aainfo[0]._frame = 19;
kernel_reset_animation(aa[0], 19);
break;
@@ -833,6 +1598,30 @@ static void room_203_daemon() {
default:
break;
}
+
+ if (global[g046]) {
+ global_anim1(3, local->_9e, global[g131], &global[g132]);
+ global_anim2(3, local->_a0, global[g141], &global[g142]);
+ } else {
+ global_anim1(9, local->_9e, global[g131], &global[g132]);
+ global_anim2(9, local->_a0, global[g141], &global[g142]);
+ }
+
+ global[g030] = local->_a2;
+ if (local->_b2)
+ kernel_random_frame(local->_a2, &global[g151], global[g154]);
+ if (aainfo[0]._active)
+ room_203_anim1();
+ if (aainfo[2]._active)
+ room_203_anim3();
+ if (aainfo[1]._active)
+ room_203_anim2();
+ if (aainfo[3]._active)
+ room_203_anim4();
+ if (aainfo[4]._active)
+ room_203_anim5();
+ if (aainfo[5]._active)
+ room_203_anim6();
}
static void room_203_pre_parser() {
@@ -856,8 +1645,7 @@ static void room_203_parser() {
global[g150] = -1;
scratch._90 = 15;
}
- player.command_ready = false;
- return;
+ goto handled;
}
if (player_parse(13, 21, 0)) {
@@ -866,8 +1654,7 @@ static void room_203_parser() {
global[g150] = -1;
scratch._90 = 15;
}
- player.command_ready = false;
- return;
+ goto handled;
}
if (player_parse(13, 24, 0) && global[g046] == 0) {
@@ -884,7 +1671,7 @@ static void room_203_parser() {
scratch._a8 = 0;
if (global[g049] != 0) {
inter_spin_object(8);
- aainfo[3]._val2 = 28;
+ aainfo[3]._frame = 28;
kernel_reset_animation(aa[3], 28);
global[g049] = 0;
} else {
@@ -896,8 +1683,7 @@ static void room_203_parser() {
digi_play_build_ii('c', 1, 1);
scratch._a4 = 52;
}
- player.command_ready = false;
- return;
+ goto handled;
}
if (global[player_selected_object] >= 0) {
@@ -909,7 +1695,7 @@ static void room_203_parser() {
kernel.trigger_setup_mode = KERNEL_TRIGGER_DAEMON;
kernel_timing_trigger(1, 107);
if (global[g049] != 0) {
- aainfo[3]._val2 = 41;
+ aainfo[3]._frame = 41;
kernel_reset_animation(aa[3], 41);
global[g049] = 0;
scratch._ae = -1;
@@ -928,22 +1714,21 @@ static void room_203_parser() {
kernel_timing_trigger(1, 107);
if (global[g049] != 0) {
scratch._ac = 0;
- aainfo[3]._val2 = 28;
+ aainfo[3]._frame = 28;
kernel_reset_animation(aa[3], 28);
global[g049] = 0;
} else {
kernel.trigger_setup_mode = KERNEL_TRIGGER_DAEMON;
aa[3] = kernel_run_animation(kernel_name('a', 2), 104);
- aainfo[3]._val1 = -1;
- aainfo[3]._val2 = 0;
+ aainfo[3]._active = -1;
+ aainfo[3]._frame = 0;
scratch._98 = 31;
player.walker_visible = 0;
kernel_synch(KERNEL_PLAYER, 0, KERNEL_NOW, 0);
}
}
}
- player.command_ready = false;
- return;
+ goto handled;
}
if (player_parse(78, 119, 0)) {
@@ -961,8 +1746,7 @@ static void room_203_parser() {
digi_play_build_ii('b', 1, 1);
scratch._a4 = 30;
}
- player.command_ready = false;
- return;
+ goto handled;
}
if (player_parse(78, 168, 0)) {
@@ -970,17 +1754,17 @@ static void room_203_parser() {
kernel.trigger_setup_mode = KERNEL_TRIGGER_DAEMON;
aa[3] = kernel_run_animation(kernel_name('a', 1), 104);
scratch._98 = 30;
- aainfo[3]._val1 = -1;
+ aainfo[3]._active = -1;
global[g049] = -1;
- aainfo[3]._val2 = 0;
+ aainfo[3]._frame = 0;
player.walker_visible = 0;
player.commands_allowed = 0;
kernel_synch(KERNEL_ANIM, aa[3], KERNEL_NOW, 0);
} else if (player_has(8)) {
kernel.trigger_setup_mode = KERNEL_TRIGGER_DAEMON;
aa[3] = kernel_run_animation(kernel_name('a', 2), 104);
- aainfo[3]._val1 = -1;
- aainfo[3]._val2 = 0;
+ aainfo[3]._active = -1;
+ aainfo[3]._frame = 0;
scratch._98 = 31;
player.walker_visible = 0;
kernel_synch(KERNEL_PLAYER, 0, KERNEL_NOW, 0);
@@ -990,42 +1774,37 @@ static void room_203_parser() {
global[g150] = -1;
scratch._90 = 15;
}
- player.command_ready = false;
- return;
+ goto handled;
}
if (player_parse(78, 169, 0)) {
player.commands_allowed = 0;
global[g135] = -1;
scratch._8c = 51;
- player.command_ready = false;
- return;
+ goto handled;
}
if (player_parse(78, 170, 0)) {
player.commands_allowed = 0;
global[g145] = -1;
scratch._8e = 43;
- player.command_ready = false;
- return;
+ goto handled;
}
if (player_parse(78, 65, 0)) {
player.commands_allowed = 0;
- aainfo[3]._val2 = 28;
+ aainfo[3]._frame = 28;
kernel_reset_animation(aa[3], 28);
global[g049] = 0;
- player.command_ready = false;
- return;
+ goto handled;
}
if (player_parse(78, 66, 0)) {
player.commands_allowed = 0;
- aainfo[3]._val2 = 33;
+ aainfo[3]._frame = 33;
kernel_reset_animation(aa[3], 33);
global[g049] = 0;
- player.command_ready = false;
- return;
+ goto handled;
}
if (global[g049] == 0)
@@ -1033,11 +1812,17 @@ static void room_203_parser() {
if (player_parse(13, 106, 0)) {
player.commands_allowed = 0;
- aainfo[3]._val2 = 41;
+ aainfo[3]._frame = 41;
kernel_reset_animation(aa[3], 41);
global[g049] = 0;
- player.command_ready = false;
+ goto handled;
}
+
+ goto done;
+handled:
+ player.command_ready = false;
+done:
+ ;
}
void room_203_synchronize(Common::Serializer &s) {
@@ -1060,7 +1845,7 @@ void room_203_synchronize(Common::Serializer &s) {
s.syncAsSint16LE(scratch._a4);
s.syncAsSint16LE(scratch._a6);
s.syncAsSint16LE(scratch._a8);
- s.syncAsSint16LE(scratch._paa);
+ s.syncAsSint16LE(scratch._aa);
s.syncAsSint16LE(scratch._ac);
s.syncAsSint16LE(scratch._ae);
s.syncAsSint16LE(scratch._b0);
diff --git a/engines/mads/madsv2/forest/rooms/room204.cpp b/engines/mads/madsv2/forest/rooms/room204.cpp
index 8ab1e7fbcd2..e7787fb2b75 100644
--- a/engines/mads/madsv2/forest/rooms/room204.cpp
+++ b/engines/mads/madsv2/forest/rooms/room204.cpp
@@ -19,18 +19,15 @@
*
*/
-#include "mads/madsv2/core/conv.h"
+#include "mads/madsv2/core/digi.h"
#include "mads/madsv2/core/game.h"
-#include "mads/madsv2/core/imath.h"
-#include "mads/madsv2/core/inter.h"
+#include "mads/madsv2/core/global.h"
#include "mads/madsv2/core/kernel.h"
-#include "mads/madsv2/core/sound.h"
-#include "mads/madsv2/core/text.h"
-#include "mads/madsv2/forest/mads/inventory.h"
-#include "mads/madsv2/forest/mads/sounds.h"
-#include "mads/madsv2/forest/mads/words.h"
+#include "mads/madsv2/core/midi.h"
+#include "mads/madsv2/core/object.h"
+#include "mads/madsv2/core/player.h"
#include "mads/madsv2/forest/global.h"
-#include "mads/madsv2/forest/rooms/section1.h"
+#include "mads/madsv2/forest/rooms/section2.h"
#include "mads/madsv2/forest/rooms/room204.h"
namespace MADS {
@@ -39,37 +36,209 @@ 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[10];
+ int16 sprite[10]; /* Sprite series handles 0x00 */
+ int16 sequence[10]; /* Sequence handles 0x14 */
+ int16 animation[10]; /* Animation handles 0x28 */
+ AnimationInfo animation_info[10];/* Animation info 0x3C */
+ int16 _8c;
+ int16 _8e;
+ int16 _90;
+ int16 _92; /* 0x92 */
+ int16 _pad94[3]; /* 0x94 */
+ int16 _9a; /* 0x9A */
+ int16 _9c; /* 0x9C */
+ int16 _9e;
+ int16 _a0;
+ int16 _a2;
+ int16 _a4;
+ int16 _a6; /* 0xA6 */
+ int16 _a8; /* 0xA8 */
};
static Scratch scratch;
-#define local (&scratch)
-#define ss local->sprite
-#define seq local->sequence
-#define aa local->animation
+#define local (&scratch)
+#define ss local->sprite
+#define seq local->sequence
+#define aa local->animation
#define aainfo scratch.animation_info
+static void room_204_init1();
static void room_204_init() {
+ global[player_score] = -1;
+ midi_stop();
+ scratch._a8 = 0;
+ scratch._a6 = -1;
+
+ if (object_is_here(9)) {
+ ss[0] = kernel_load_series(kernel_name('p', 1), 0);
+ seq[0] = kernel_seq_stamp(ss[0], false, KERNEL_FIRST);
+ kernel_seq_depth(seq[0], 7);
+ kernel_seq_loc(seq[0], 293, 87);
+ kernel_seq_scale(seq[0], 54);
+ } else {
+ kernel_flip_hotspot(158, -1);
+ }
+
+ if (previous_room != KERNEL_RESTORING_GAME) {
+ if (previous_room != 199) {
+ player.walker_visible = 0;
+ player.commands_allowed = 0;
+ }
+
+ for (int count = 0; count < 10; count++) {
+ aainfo[count]._active = 0;
+ aainfo[count]._frame = 1;
+ aainfo[count]._val3 = 0;
+ aainfo[count]._val4 = 0;
+ }
+
+ if (previous_room != 199 && flags[18] != 3)
+ flags[18]++;
+ }
+
+ room_204_init1();
+ if (flags[18] == -3)
+ flags[18] = 1;
+}
+
+static void room_204_init1() {
+ global[g131] = 0;
+ global[g141] = 0;
+ scratch._9c = kernel_run_animation_disp('r', 2, 0);
+ kernel_position_anim(scratch._9c, 171, 116, 73, 8);
+ scratch._9a = kernel_run_animation_disp('e', 3, 0);
+ kernel_position_anim(scratch._9a, 148, 120, 76, 7);
+
+ if (previous_room != KERNEL_RESTORING_GAME) {
+ player.x = 194;
+ player.y = 121;
+ player.facing = 1;
+ }
+
+ if (previous_room == KERNEL_RESTORING_GAME) {
+ global[g131] = -1;
+ global[g141] = -1;
+ kernel_reset_animation(scratch._9a, 2);
+ kernel_reset_animation(scratch._9c, 2);
+ global[g133] = 0;
+ global[g143] = 0;
+ return;
+ } else if (previous_room == 203) {
+ aa[0] = kernel_run_animation(kernel_name('y', 1), 100);
+ aainfo[0]._active = -1;
+ scratch._92 = 74;
+ return;
+ } else if (previous_room == 205) {
+ aa[0] = kernel_run_animation(kernel_name('y', 2), 100);
+ aainfo[0]._active = -1;
+ scratch._92 = 78;
+ return;
+ } else if (previous_room == 220) {
+ aa[0] = kernel_run_animation(kernel_name('y', 3), 100);
+ aainfo[0]._active = -1;
+ scratch._92 = 66;
+ return;
+ } else if (previous_room == 199) {
+ global[g131] = -1;
+ global[g141] = -1;
+ kernel_reset_animation(scratch._9a, 2);
+ kernel_reset_animation(scratch._9c, 2);
+ global[g133] = 0;
+ global[g143] = 0;
+ restore_player();
+ } else {
+ global[g131] = -1;
+ global[g141] = -1;
+ kernel_reset_animation(scratch._9a, 2);
+ kernel_reset_animation(scratch._9c, 2);
+ global[g133] = 0;
+ global[g143] = 0;
+ }
+
+ player.commands_allowed = -1;
+ player.walker_visible = -1;
}
static void room_204_daemon() {
}
static void room_204_pre_parser() {
+ if (player_parse(13, 23, 0))
+ player.walk_off_edge_to_room = 203;
+
+ if (player_parse(13, 25, 0))
+ player.walk_off_edge_to_room = flags[13] ? 205 : 220;
}
static void room_204_parser() {
+ if (global[walker_converse_state]) {
+ player.commands_allowed = false;
+ digi_play_build_ii('c', 1, 1);
+ goto handled;
+ }
+
+ if (global[player_selected_object] >= 0) {
+ goto handled;
+ }
+
+ if (player_parse(114, 103, 0)) {
+ player.commands_allowed = false;
+ global[g135] = -1;
+ local->_8c = 5;
+ local->_a6 = 1;
+ goto handled;
+ }
+
+ if (player_parse(114, 82, 0)) {
+ player.commands_allowed = false;
+ global[g135] = -1;
+ local->_8c = 5;
+ local->_a6 = 2;
+ goto handled;
+ }
+
+ if (player_parse(126, 158, 0)) {
+ global[g154] = 2;
+ player.commands_allowed = false;
+ kernel_run_animation_talk('b', 9, 0);
+ kernel_position_anim(local->_9e, player.x, player.y, player.scale, player.depth);
+ goto handled;
+ }
+
+ if (player_parse(78, 119, 0)) {
+ player.commands_allowed = false;
+ global[g135] = -1;
+ local->_8c = 3;
+ goto handled;
+ }
+
+ goto done;
+handled:
+ player.command_ready = false;
+done:
+ ;
}
void room_204_synchronize(Common::Serializer &s) {
for (int16 &v : scratch.sprite) s.syncAsSint16LE(v);
for (int16 &v : scratch.sequence) s.syncAsSint16LE(v);
for (int16 &v : scratch.animation) s.syncAsSint16LE(v);
+ for (AnimationInfo &ai : scratch.animation_info) ai.synchronize(s);
+ s.syncAsSint16LE(scratch._8c);
+ s.syncAsSint16LE(scratch._8e);
+ s.syncAsSint16LE(scratch._90);
+ s.syncAsSint16LE(scratch._92);
+ for (int16 &v : scratch._pad94) s.syncAsSint16LE(v);
+ s.syncAsSint16LE(scratch._9a);
+ s.syncAsSint16LE(scratch._9c);
+ s.syncAsSint16LE(scratch._9e);
+ s.syncAsSint16LE(scratch._a0);
+ s.syncAsSint16LE(scratch._a2);
+ s.syncAsSint16LE(scratch._a4);
+ s.syncAsSint16LE(scratch._a6);
+ s.syncAsSint16LE(scratch._a8);
}
void room_204_preload() {
@@ -78,8 +247,8 @@ void room_204_preload() {
room_parser_code_pointer = room_204_parser;
room_daemon_code_pointer = room_204_daemon;
- section_1_walker();
- section_1_interface();
+ section_2_walker();
+ section_2_interface();
}
} // namespace Rooms
Commit: 1db23e2d9741ae3c20326d2ced9d0fb4ce88b675
https://github.com/scummvm/scummvm/commit/1db23e2d9741ae3c20326d2ced9d0fb4ce88b675
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2026-06-07T14:15:13+10:00
Commit Message:
MADS: FOREST: Implemented room 204, other rooms preload functions
Changed paths:
engines/mads/madsv2/forest/global.cpp
engines/mads/madsv2/forest/global.h
engines/mads/madsv2/forest/rooms/room101.cpp
engines/mads/madsv2/forest/rooms/room103.cpp
engines/mads/madsv2/forest/rooms/room104.cpp
engines/mads/madsv2/forest/rooms/room106.cpp
engines/mads/madsv2/forest/rooms/room107.cpp
engines/mads/madsv2/forest/rooms/room199.cpp
engines/mads/madsv2/forest/rooms/room201.cpp
engines/mads/madsv2/forest/rooms/room203.cpp
engines/mads/madsv2/forest/rooms/room204.cpp
engines/mads/madsv2/forest/rooms/room205.cpp
engines/mads/madsv2/forest/rooms/room210.cpp
engines/mads/madsv2/forest/rooms/room211.cpp
engines/mads/madsv2/forest/rooms/room220.cpp
engines/mads/madsv2/forest/rooms/room221.cpp
engines/mads/madsv2/forest/rooms/room301.cpp
engines/mads/madsv2/forest/rooms/room302.cpp
engines/mads/madsv2/forest/rooms/room303.cpp
engines/mads/madsv2/forest/rooms/room304.cpp
engines/mads/madsv2/forest/rooms/room305.cpp
engines/mads/madsv2/forest/rooms/room306.cpp
engines/mads/madsv2/forest/rooms/room307.cpp
engines/mads/madsv2/forest/rooms/room308.cpp
engines/mads/madsv2/forest/rooms/room321.cpp
engines/mads/madsv2/forest/rooms/room322.cpp
engines/mads/madsv2/forest/rooms/room401.cpp
engines/mads/madsv2/forest/rooms/room402.cpp
engines/mads/madsv2/forest/rooms/room403.cpp
engines/mads/madsv2/forest/rooms/room404.cpp
engines/mads/madsv2/forest/rooms/room405.cpp
engines/mads/madsv2/forest/rooms/room420.cpp
engines/mads/madsv2/forest/rooms/room501.cpp
engines/mads/madsv2/forest/rooms/room503.cpp
engines/mads/madsv2/forest/rooms/room509.cpp
engines/mads/madsv2/forest/rooms/room510.cpp
engines/mads/madsv2/forest/rooms/room520.cpp
engines/mads/madsv2/forest/rooms/section1.cpp
engines/mads/madsv2/forest/rooms/section1.h
engines/mads/madsv2/forest/rooms/section2.cpp
engines/mads/madsv2/forest/rooms/section2.h
engines/mads/madsv2/forest/rooms/section3.cpp
engines/mads/madsv2/forest/rooms/section3.h
engines/mads/madsv2/forest/rooms/section4.cpp
engines/mads/madsv2/forest/rooms/section4.h
engines/mads/madsv2/forest/rooms/section5.cpp
engines/mads/madsv2/forest/rooms/section5.h
diff --git a/engines/mads/madsv2/forest/global.cpp b/engines/mads/madsv2/forest/global.cpp
index 22f546ca4f5..f086e6dc87c 100644
--- a/engines/mads/madsv2/forest/global.cpp
+++ b/engines/mads/madsv2/forest/global.cpp
@@ -26,6 +26,7 @@
#include "mads/madsv2/core/imath.h"
#include "mads/madsv2/core/kernel.h"
#include "mads/madsv2/core/midi.h"
+#include "mads/madsv2/core/pal.h"
#include "mads/madsv2/forest/global.h"
#include "mads/madsv2/forest/extra.h"
@@ -169,6 +170,30 @@ void sync_room(Common::Serializer &s) {
}
}
+void global_section_walker() {
+ char buf[80];
+
+ Common::strcpy_s(buf, player.series_name);
+ global[g017] = -1;
+
+ if (global[g016]) {
+ *player.series_name = '\0';
+ } else if (!player.force_series) {
+ Common::strcpy_s(player.series_name, "B");
+ }
+
+ if (strcmp(player.series_name, buf))
+ player.walker_must_reload = true;
+
+ player.scaling_velocity = true;
+}
+
+void global_section_interface() {
+ Common::strcpy_s(kernel.interface, kernel_interface_name(0));
+ pal_change_color(254, 56, 47, 32);
+}
+
+
static void global_anim1_1(int arg_0, int arg_2, int16 *arg_4) {
if (kernel_anim[arg_0].frame == *arg_4)
return;
diff --git a/engines/mads/madsv2/forest/global.h b/engines/mads/madsv2/forest/global.h
index 75b09e04960..c34c61328c3 100644
--- a/engines/mads/madsv2/forest/global.h
+++ b/engines/mads/madsv2/forest/global.h
@@ -259,6 +259,8 @@ extern bool room_203_flag;
extern void global_section_constructor();
extern void sync_room(Common::Serializer &s);
+extern void global_section_walker();
+extern void global_section_interface();
extern void global_anim1(int arg_0, int arg_2, int arg_4, int16 *arg_6);
extern void global_anim2(int arg_0, int arg_2, int arg_4, int16 *arg_6);
diff --git a/engines/mads/madsv2/forest/rooms/room101.cpp b/engines/mads/madsv2/forest/rooms/room101.cpp
index 101cc01d88d..08ff07b5afc 100644
--- a/engines/mads/madsv2/forest/rooms/room101.cpp
+++ b/engines/mads/madsv2/forest/rooms/room101.cpp
@@ -1120,8 +1120,8 @@ void room_101_preload() {
if (flags[0] == -4)
global[g016] = -1;
- section_1_walker();
- section_1_interface();
+ global_section_walker();
+ global_section_interface();
player.walker_must_reload = true;
}
diff --git a/engines/mads/madsv2/forest/rooms/room103.cpp b/engines/mads/madsv2/forest/rooms/room103.cpp
index d12e5461d0f..740ce94eb2a 100644
--- a/engines/mads/madsv2/forest/rooms/room103.cpp
+++ b/engines/mads/madsv2/forest/rooms/room103.cpp
@@ -426,8 +426,8 @@ void room_103_preload() {
if (flags[1] == -4)
global[g016] = -1;
if (previous_room != 199) {
- section_1_walker();
- section_1_interface();
+ global_section_walker();
+ global_section_interface();
}
player.walker_must_reload = true;
diff --git a/engines/mads/madsv2/forest/rooms/room104.cpp b/engines/mads/madsv2/forest/rooms/room104.cpp
index 5c8a7d216ab..4fec105fb1f 100644
--- a/engines/mads/madsv2/forest/rooms/room104.cpp
+++ b/engines/mads/madsv2/forest/rooms/room104.cpp
@@ -974,8 +974,8 @@ void room_104_preload() {
room_daemon_code_pointer = room_104_daemon;
global[g016] = (global[g101] || room_id == 103) ? -1 : 0;
- section_1_walker();
- section_1_interface();
+ global_section_walker();
+ global_section_interface();
player.walker_must_reload = true;
}
diff --git a/engines/mads/madsv2/forest/rooms/room106.cpp b/engines/mads/madsv2/forest/rooms/room106.cpp
index 19698662150..ae2f2a7019e 100644
--- a/engines/mads/madsv2/forest/rooms/room106.cpp
+++ b/engines/mads/madsv2/forest/rooms/room106.cpp
@@ -821,8 +821,8 @@ void room_106_preload() {
if (flags[3] == -4)
global[g016] = -1;
- section_1_walker();
- section_1_interface();
+ global_section_walker();
+ global_section_interface();
player.walker_must_reload = true;
}
diff --git a/engines/mads/madsv2/forest/rooms/room107.cpp b/engines/mads/madsv2/forest/rooms/room107.cpp
index 16f210f3e4a..ebf9365e9e6 100644
--- a/engines/mads/madsv2/forest/rooms/room107.cpp
+++ b/engines/mads/madsv2/forest/rooms/room107.cpp
@@ -164,8 +164,8 @@ void room_107_preload() {
room_parser_code_pointer = room_107_parser;
room_daemon_code_pointer = room_107_daemon;
- section_1_walker();
- section_1_interface();
+ global_section_walker();
+ global_section_interface();
player.walker_must_reload = true;
}
diff --git a/engines/mads/madsv2/forest/rooms/room199.cpp b/engines/mads/madsv2/forest/rooms/room199.cpp
index 35abb9125ac..e84be3e44d7 100644
--- a/engines/mads/madsv2/forest/rooms/room199.cpp
+++ b/engines/mads/madsv2/forest/rooms/room199.cpp
@@ -569,8 +569,8 @@ void room_199_preload() {
global[g016] = -1;
player.walker_visible = false;
- section_1_walker();
- section_1_interface();
+ global_section_walker();
+ global_section_interface();
}
} // namespace Rooms
diff --git a/engines/mads/madsv2/forest/rooms/room201.cpp b/engines/mads/madsv2/forest/rooms/room201.cpp
index d4344262ba8..fd9efce246f 100644
--- a/engines/mads/madsv2/forest/rooms/room201.cpp
+++ b/engines/mads/madsv2/forest/rooms/room201.cpp
@@ -688,8 +688,9 @@ void room_201_preload() {
room_pre_parser_code_pointer = room_201_pre_parser;
room_parser_code_pointer = room_201_parser;
room_daemon_code_pointer = room_201_daemon;
- section_2_walker();
- section_2_interface();
+
+ global_section_walker();
+ global_section_interface();
player.walker_must_reload = true;
}
diff --git a/engines/mads/madsv2/forest/rooms/room203.cpp b/engines/mads/madsv2/forest/rooms/room203.cpp
index ae9209a5a7e..a64b2fa3af5 100644
--- a/engines/mads/madsv2/forest/rooms/room203.cpp
+++ b/engines/mads/madsv2/forest/rooms/room203.cpp
@@ -1858,8 +1858,9 @@ void room_203_preload() {
room_pre_parser_code_pointer = room_203_pre_parser;
room_parser_code_pointer = room_203_parser;
room_daemon_code_pointer = room_203_daemon;
- section_2_walker();
- section_2_interface();
+
+ global_section_walker();
+ global_section_interface();
player.walker_must_reload = true;
}
diff --git a/engines/mads/madsv2/forest/rooms/room204.cpp b/engines/mads/madsv2/forest/rooms/room204.cpp
index e7787fb2b75..c1a28a8c961 100644
--- a/engines/mads/madsv2/forest/rooms/room204.cpp
+++ b/engines/mads/madsv2/forest/rooms/room204.cpp
@@ -22,11 +22,13 @@
#include "mads/madsv2/core/digi.h"
#include "mads/madsv2/core/game.h"
#include "mads/madsv2/core/global.h"
+#include "mads/madsv2/core/inter.h"
#include "mads/madsv2/core/kernel.h"
#include "mads/madsv2/core/midi.h"
#include "mads/madsv2/core/object.h"
#include "mads/madsv2/core/player.h"
#include "mads/madsv2/forest/global.h"
+#include "mads/madsv2/forest/journal.h"
#include "mads/madsv2/forest/rooms/section2.h"
#include "mads/madsv2/forest/rooms/room204.h"
@@ -44,7 +46,9 @@ struct Scratch {
int16 _8e;
int16 _90;
int16 _92; /* 0x92 */
- int16 _pad94[3]; /* 0x94 */
+ int16 _94; /* 0x94 */
+ int16 _96; /* 0x96 */
+ int16 _98; /* 0x98 */
int16 _9a; /* 0x9A */
int16 _9c; /* 0x9C */
int16 _9e;
@@ -64,6 +68,12 @@ static Scratch scratch;
#define aainfo scratch.animation_info
static void room_204_init1();
+static void room_204_anim1();
+static void room_204_anim2();
+static void room_204_anim3();
+static void room_204_anim4();
+static void room_204_anim5();
+static void room_204_anim6();
static void room_204_init() {
global[player_score] = -1;
@@ -162,6 +172,377 @@ static void room_204_init1() {
}
static void room_204_daemon() {
+ int trigger = kernel.trigger;
+
+ if (trigger == 103) {
+ goto trigger_103;
+ } else if (trigger > 103) {
+ goto bottom;
+ } else if (trigger == 25) {
+ goto trigger_25;
+ } else if (trigger > 25) {
+ // triggers 26-102
+ if (trigger == 26) {
+ goto trigger_26;
+ } else if (trigger == 100) {
+ goto trigger_100;
+ } else if (trigger == 101) {
+ // abort _94 slot anim, re-enable
+ kernel_abort_animation(aa[scratch._94]);
+ aainfo[scratch._94]._active = 0;
+ kernel_reset_animation(scratch._9c, 1);
+ kernel_synch(3, scratch._9c, 4, 0);
+ global[g143] = 0;
+ player.commands_allowed = -1;
+ goto bottom;
+ } else if (trigger == 102) {
+ // abort _96 slot anim, re-enable
+ kernel_abort_animation(aa[scratch._96]);
+ aainfo[scratch._96]._active = 0;
+ kernel_reset_animation(scratch._9a, 1);
+ kernel_synch(3, scratch._9a, 4, 0);
+ global[g133] = 0;
+ player.commands_allowed = -1;
+ goto bottom;
+ } else {
+ goto bottom;
+ }
+ } else if (trigger == 0) {
+ goto bottom;
+ } else if (trigger == 7) {
+ goto trigger_7;
+ } else if (trigger == 24) {
+ goto trigger_24;
+ } else {
+ goto bottom;
+ }
+
+trigger_7:
+ if (global[walker_converse_state] != 0) {
+ global[walker_converse_state] = 0;
+ close_journal(3);
+ player.commands_allowed = -1;
+ goto bottom;
+ }
+ if (scratch._a4 != 400)
+ goto bottom;
+ kernel_abort_animation(scratch._9e);
+ scratch._a4 = -1;
+ scratch._a8 = 0;
+ kernel_synch(2, 0, 4, 0);
+ scratch._a6 = 3;
+ player.walker_visible = -1;
+ global[g150] = -1;
+ scratch._90 = 6;
+ goto bottom;
+
+trigger_24:
+ if (scratch._8c == 3) {
+ aa[2] = kernel_run_animation(kernel_name('E', 1), 102);
+ aainfo[2]._active = -1;
+ scratch._96 = 2;
+ kernel_reset_animation(scratch._9a, 0);
+ kernel_synch(3, aa[2], 3, scratch._9a);
+ global[g133] = 1;
+ } else if (scratch._8c == 5) {
+ if (scratch._a6 == 1) {
+ aa[4] = kernel_run_animation(kernel_name('F', 1), 102);
+ } else if (scratch._a6 == 2) {
+ aa[4] = kernel_run_animation(kernel_name('F', 2), 102);
+ } else {
+ goto bottom;
+ }
+ aainfo[4]._active = -1;
+ scratch._96 = 4;
+ kernel_reset_animation(scratch._9a, 0);
+ kernel_synch(3, aa[4], 3, scratch._9a);
+ global[g133] = 1;
+ }
+ goto bottom;
+
+trigger_25:
+ if (scratch._8e == 2) {
+ aa[3] = kernel_run_animation(kernel_name('R', 1), 101);
+ aainfo[3]._active = -1;
+ scratch._94 = 3;
+ kernel_reset_animation(scratch._9c, 0);
+ kernel_synch(3, aa[3], 3, scratch._9c);
+ global[g143] = 1;
+ }
+ goto bottom;
+
+trigger_26:
+ if (scratch._90 == 1) {
+ kernel_reset_animation(scratch._9a, 0);
+ kernel_reset_animation(scratch._9c, 0);
+ global[g133] = 1;
+ global[g143] = 1;
+ } else if (scratch._90 == 6) {
+ if (scratch._a6 != 3)
+ goto bottom;
+ aa[5] = kernel_run_animation(kernel_name('P', 1), 103);
+ aainfo[5]._active = -1;
+ scratch._98 = 5;
+ kernel_reset_animation(scratch._9a, 0);
+ kernel_reset_animation(scratch._9c, 0);
+ kernel_synch(3, aa[5], 4, 0);
+ global[g133] = 1;
+ global[g143] = 1;
+ }
+ goto bottom;
+
+trigger_100:
+ kernel_abort_animation(aa[0]);
+ aainfo[0]._active = 0;
+ if (flags[18] == 1) {
+ kernel_synch(2, 0, 4, 0);
+ global[g017] = 0;
+ global[g154] = 0;
+ kernel_synch(3, scratch._9a, 4, 0);
+ global[g131] = -1;
+ global[g133] = 1;
+ global[g156] = 0;
+ kernel_synch(3, scratch._9c, 4, 0);
+ global[g143] = 1;
+ scratch._a4 = 1;
+ global[g141] = -1;
+ player.walker_visible = -1;
+ aainfo[1]._active = -1;
+ global[g155] = 2;
+ scratch._a0 = kernel_run_animation_talk('r', 2, 0);
+ kernel_position_anim(scratch._a0, 171, 116, 73, 8);
+ scratch._a2 = kernel_run_animation_talk('e', 3, 0);
+ kernel_position_anim(scratch._a2, 148, 120, 76, 7);
+ kernel_synch(3, scratch._a2, 3, scratch._9a);
+ kernel_synch(3, scratch._a0, 3, scratch._9c);
+ kernel_synch(3, scratch._9e, 2, 0);
+ digi_play_build(204, 114, 1, 1);
+ } else {
+ global[g131] = -1;
+ global[g141] = -1;
+ kernel_reset_animation(scratch._9a, 1);
+ kernel_reset_animation(scratch._9c, 1);
+ global[g133] = 0;
+ global[g143] = 0;
+ kernel_synch(3, scratch._9a, 4, 0);
+ kernel_synch(3, scratch._9c, 4, 0);
+ player.walker_visible = -1;
+ kernel_synch(2, 0, 4, 0);
+ player.commands_allowed = -1;
+ }
+ goto bottom;
+
+trigger_103:
+ if (scratch._a6 != 3)
+ goto bottom;
+ kernel_abort_animation(aa[5]);
+ aainfo[5]._active = 0;
+ kernel_reset_animation(scratch._9c, 1);
+ kernel_synch(3, scratch._9c, 4, 0);
+ global[g143] = 0;
+ kernel_reset_animation(scratch._9a, 1);
+ kernel_synch(3, scratch._9a, 4, 0);
+ global[g133] = 0;
+ kernel_flip_hotspot(158, -1);
+ inter_move_object(9, 2);
+ global[player_score] = -1;
+ player.commands_allowed = -1;
+
+bottom:
+ global_anim1(3, scratch._9a, global[g131], &global[g132]);
+ global_anim2(2, scratch._9c, global[g141], &global[g142]);
+
+ if (scratch._a8 != 0)
+ kernel_random_frame(scratch._9e, &global[g151], global[g154]);
+
+ if (aainfo[0]._active != 0) room_204_anim1();
+ if (aainfo[1]._active != 0) room_204_anim2();
+ if (aainfo[3]._active != 0) room_204_anim3();
+ if (aainfo[2]._active != 0) room_204_anim4();
+ if (aainfo[4]._active != 0) room_204_anim5();
+ if (aainfo[5]._active != 0) room_204_anim6();
+}
+
+static void room_204_anim1() {
+ if (kernel_anim[aa[0]].frame != aainfo[0]._frame)
+ aainfo[0]._frame = kernel_anim[aa[0]].frame;
+
+ if (global[player_hyperwalked] == -1) {
+ aainfo[0]._frame = scratch._92 - 1;
+ kernel_reset_animation(aa[0], aainfo[0]._frame);
+ }
+}
+
+static void room_204_anim2() {
+ if (kernel_anim[aa[1]].frame != aainfo[1]._frame)
+ aainfo[1]._frame = kernel_anim[aa[1]].frame;
+
+ if (scratch._a4 == 0)
+ return;
+
+ kernel_random_frame(scratch._a2, &global[g153], global[g156]);
+ kernel_random_frame(scratch._a0, &global[g152], global[g155]);
+
+ if (kernel.trigger != 7 && kernel.trigger != 28)
+ return;
+
+ if (scratch._a4 == 1) {
+ global[g155] = 0;
+ kernel_timing_trigger(10, 28);
+ scratch._a4 = 2;
+ } else if (scratch._a4 == 2) {
+ global[g156] = 2;
+ scratch._a4 = 3;
+ digi_play_build(204, 'e', 1, 1);
+ } else if (scratch._a4 == 3) {
+ scratch._a4 = 4;
+ kernel_abort_animation(scratch._a2);
+ kernel_abort_animation(scratch._a0);
+ player.commands_allowed = -1;
+ player.walker_visible = -1;
+ global[g017] = -1;
+ aainfo[1]._active = 0;
+ kernel_synch(2, 0, 4, 0);
+ global[g131] = -1;
+ global[g141] = -1;
+ kernel_reset_animation(scratch._9a, 1);
+ kernel_reset_animation(scratch._9c, 1);
+ kernel_synch(3, scratch._9a, 4, 0);
+ kernel_synch(3, scratch._9c, 4, 0);
+ global[g133] = 0;
+ global[g143] = 0;
+ }
+}
+
+static void room_204_anim3() {
+ if (kernel_anim[aa[3]].frame != aainfo[3]._frame)
+ aainfo[3]._frame = kernel_anim[aa[3]].frame;
+}
+
+static void room_204_anim4() {
+ if (kernel_anim[aa[2]].frame != aainfo[2]._frame)
+ aainfo[2]._frame = kernel_anim[aa[2]].frame;
+}
+
+static void room_204_anim5() {
+ if (kernel_anim[aa[4]].frame != aainfo[4]._frame) {
+ aainfo[4]._frame = kernel_anim[aa[4]].frame;
+ int16 ax = aainfo[4]._frame;
+
+ if (scratch._a6 == 1) {
+ if (ax == 51) {
+ if (aainfo[4]._val3 == 13) {
+ aainfo[4]._frame = 49;
+ kernel_reset_animation(aa[4], 49);
+ }
+ } else if (ax < 51) {
+ if (ax == 43) {
+ aainfo[4]._val3 = 11;
+ digi_play_build_ii('e', 4, 1);
+ scratch._a4 = 43;
+ } else if (ax == 48) {
+ if (aainfo[4]._val3 == 11) {
+ aainfo[4]._frame = 43;
+ kernel_reset_animation(aa[4], 43);
+ }
+ }
+ }
+ } else if (scratch._a6 == 2) {
+ if (ax == 13) {
+ if (aainfo[4]._val3 == 13) {
+ aainfo[4]._frame = 11;
+ kernel_reset_animation(aa[4], 11);
+ }
+ } else if (ax < 13) {
+ if (ax == 5) {
+ aainfo[4]._val3 = 11;
+ digi_play_build_ii('e', 9, 1);
+ scratch._a4 = 500;
+ } else if (ax == 10) {
+ if (aainfo[4]._val3 == 11) {
+ aainfo[4]._frame = 5;
+ kernel_reset_animation(aa[4], 5);
+ }
+ }
+ }
+ }
+ }
+
+ if (kernel.trigger != 7 && kernel.trigger != 28)
+ return;
+
+ if (scratch._a4 == 43) {
+ kernel_timing_trigger(30, 28);
+ aainfo[4]._val3 = 13;
+ scratch._a4 = 44;
+ } else if (scratch._a4 == 44) {
+ aainfo[4]._val3 = 11;
+ aainfo[4]._frame = 43;
+ kernel_reset_animation(aa[4], 43);
+ digi_play_build_ii('e', 10, 1);
+ scratch._a4 = 45;
+ } else if (scratch._a4 == 45) {
+ aainfo[4]._val3 = 14;
+ aainfo[4]._frame = 50;
+ kernel_reset_animation(aa[4], 50);
+ scratch._a4 = -1;
+ } else if (scratch._a4 == 500) {
+ kernel_timing_trigger(30, 28);
+ aainfo[4]._val3 = 13;
+ scratch._a4 = 501;
+ } else if (scratch._a4 == 501) {
+ aainfo[4]._val3 = 11;
+ aainfo[4]._frame = 5;
+ kernel_reset_animation(aa[4], 5);
+ digi_play_build_ii('e', 10, 1);
+ scratch._a4 = 502;
+ } else if (scratch._a4 == 502) {
+ aainfo[4]._val3 = 14;
+ aainfo[4]._frame = 11;
+ kernel_reset_animation(aa[4], 11);
+ scratch._a4 = -1;
+ }
+}
+static void room_204_anim6() {
+ if (kernel_anim[aa[5]].frame != aainfo[5]._frame) {
+ aainfo[5]._frame = kernel_anim[aa[5]].frame;
+ int16 ax = aainfo[5]._frame;
+
+ if (scratch._a6 == 3) {
+ if (ax == 64) {
+ if (aainfo[5]._val3 == 13) {
+ digi_play_build(101, '_', 1, 2);
+ scratch._a4 = 64;
+ }
+ } else if (ax < 64) {
+ if (ax == 5) {
+ aainfo[5]._val3 = 11;
+ digi_play_build(204, 'e', 2, 1);
+ scratch._a4 = 5;
+ } else if (ax == 10) {
+ if (aainfo[5]._val3 == 11) {
+ aainfo[5]._frame = 5;
+ kernel_reset_animation(aa[5], 5);
+ }
+ }
+ }
+ }
+ }
+
+ if (kernel.trigger == 7 || kernel.trigger == 28) {
+ if (scratch._a4 == 5) {
+ aainfo[5]._val3 = 13;
+ aainfo[5]._frame = 11;
+ kernel_reset_animation(aa[5], 11);
+ scratch._a4 = -1;
+ kernel_seq_delete(seq[0]);
+ }
+ }
+
+ if (kernel.trigger == 8 || kernel.trigger == 28) {
+ if (scratch._a4 == 64)
+ scratch._a4 = -1;
+ }
}
static void room_204_pre_parser() {
@@ -230,7 +611,9 @@ void room_204_synchronize(Common::Serializer &s) {
s.syncAsSint16LE(scratch._8e);
s.syncAsSint16LE(scratch._90);
s.syncAsSint16LE(scratch._92);
- for (int16 &v : scratch._pad94) s.syncAsSint16LE(v);
+ s.syncAsSint16LE(scratch._94);
+ s.syncAsSint16LE(scratch._96);
+ s.syncAsSint16LE(scratch._98);
s.syncAsSint16LE(scratch._9a);
s.syncAsSint16LE(scratch._9c);
s.syncAsSint16LE(scratch._9e);
@@ -247,8 +630,9 @@ void room_204_preload() {
room_parser_code_pointer = room_204_parser;
room_daemon_code_pointer = room_204_daemon;
- section_2_walker();
- section_2_interface();
+ global_section_walker();
+ global_section_interface();
+ player.walker_must_reload = true;
}
} // namespace Rooms
diff --git a/engines/mads/madsv2/forest/rooms/room205.cpp b/engines/mads/madsv2/forest/rooms/room205.cpp
index 0da27750430..1b1bd136598 100644
--- a/engines/mads/madsv2/forest/rooms/room205.cpp
+++ b/engines/mads/madsv2/forest/rooms/room205.cpp
@@ -78,8 +78,9 @@ void room_205_preload() {
room_parser_code_pointer = room_205_parser;
room_daemon_code_pointer = room_205_daemon;
- section_1_walker();
- section_1_interface();
+ global_section_walker();
+ global_section_interface();
+ player.walker_must_reload = true;
}
} // namespace Rooms
diff --git a/engines/mads/madsv2/forest/rooms/room210.cpp b/engines/mads/madsv2/forest/rooms/room210.cpp
index 235c69f63df..95bc2a25e6a 100644
--- a/engines/mads/madsv2/forest/rooms/room210.cpp
+++ b/engines/mads/madsv2/forest/rooms/room210.cpp
@@ -78,8 +78,9 @@ void room_210_preload() {
room_parser_code_pointer = room_210_parser;
room_daemon_code_pointer = room_210_daemon;
- section_1_walker();
- section_1_interface();
+ global_section_walker();
+ global_section_interface();
+ player.walker_must_reload = true;
}
} // namespace Rooms
diff --git a/engines/mads/madsv2/forest/rooms/room211.cpp b/engines/mads/madsv2/forest/rooms/room211.cpp
index 69b91185a8d..cf22e3282b7 100644
--- a/engines/mads/madsv2/forest/rooms/room211.cpp
+++ b/engines/mads/madsv2/forest/rooms/room211.cpp
@@ -78,8 +78,9 @@ void room_211_preload() {
room_parser_code_pointer = room_211_parser;
room_daemon_code_pointer = room_211_daemon;
- section_1_walker();
- section_1_interface();
+ global_section_walker();
+ global_section_interface();
+ player.walker_must_reload = true;
}
} // namespace Rooms
diff --git a/engines/mads/madsv2/forest/rooms/room220.cpp b/engines/mads/madsv2/forest/rooms/room220.cpp
index 643c4b96747..09982c1aa9a 100644
--- a/engines/mads/madsv2/forest/rooms/room220.cpp
+++ b/engines/mads/madsv2/forest/rooms/room220.cpp
@@ -78,8 +78,11 @@ void room_220_preload() {
room_parser_code_pointer = room_220_parser;
room_daemon_code_pointer = room_220_daemon;
- section_1_walker();
- section_1_interface();
+ flags[13] = 7;
+ global[g016] = -1;
+ global_section_walker();
+ global_section_interface();
+ player.walker_must_reload = true;
}
} // namespace Rooms
diff --git a/engines/mads/madsv2/forest/rooms/room221.cpp b/engines/mads/madsv2/forest/rooms/room221.cpp
index 74145af6669..062d5ff6244 100644
--- a/engines/mads/madsv2/forest/rooms/room221.cpp
+++ b/engines/mads/madsv2/forest/rooms/room221.cpp
@@ -78,8 +78,9 @@ void room_221_preload() {
room_parser_code_pointer = room_221_parser;
room_daemon_code_pointer = room_221_daemon;
- section_1_walker();
- section_1_interface();
+ global_section_walker();
+ global_section_interface();
+ player.walker_must_reload = true;
}
} // namespace Rooms
diff --git a/engines/mads/madsv2/forest/rooms/room301.cpp b/engines/mads/madsv2/forest/rooms/room301.cpp
index 85f0c82eade..db009299b16 100644
--- a/engines/mads/madsv2/forest/rooms/room301.cpp
+++ b/engines/mads/madsv2/forest/rooms/room301.cpp
@@ -78,8 +78,9 @@ void room_301_preload() {
room_parser_code_pointer = room_301_parser;
room_daemon_code_pointer = room_301_daemon;
- section_1_walker();
- section_1_interface();
+ global_section_walker();
+ global_section_interface();
+ player.walker_must_reload = true;
}
} // namespace Rooms
diff --git a/engines/mads/madsv2/forest/rooms/room302.cpp b/engines/mads/madsv2/forest/rooms/room302.cpp
index 82a6e09a042..155a4e5dfe4 100644
--- a/engines/mads/madsv2/forest/rooms/room302.cpp
+++ b/engines/mads/madsv2/forest/rooms/room302.cpp
@@ -78,8 +78,9 @@ void room_302_preload() {
room_parser_code_pointer = room_302_parser;
room_daemon_code_pointer = room_302_daemon;
- section_1_walker();
- section_1_interface();
+ global_section_walker();
+ global_section_interface();
+ player.walker_must_reload = true;
}
} // namespace Rooms
diff --git a/engines/mads/madsv2/forest/rooms/room303.cpp b/engines/mads/madsv2/forest/rooms/room303.cpp
index abb32340a3c..ded667515aa 100644
--- a/engines/mads/madsv2/forest/rooms/room303.cpp
+++ b/engines/mads/madsv2/forest/rooms/room303.cpp
@@ -78,8 +78,9 @@ void room_303_preload() {
room_parser_code_pointer = room_303_parser;
room_daemon_code_pointer = room_303_daemon;
- section_1_walker();
- section_1_interface();
+ global_section_walker();
+ global_section_interface();
+ player.walker_must_reload = true;
}
} // namespace Rooms
diff --git a/engines/mads/madsv2/forest/rooms/room304.cpp b/engines/mads/madsv2/forest/rooms/room304.cpp
index 0cbdeae59d8..e41c65ca889 100644
--- a/engines/mads/madsv2/forest/rooms/room304.cpp
+++ b/engines/mads/madsv2/forest/rooms/room304.cpp
@@ -78,8 +78,9 @@ void room_304_preload() {
room_parser_code_pointer = room_304_parser;
room_daemon_code_pointer = room_304_daemon;
- section_1_walker();
- section_1_interface();
+ global_section_walker();
+ global_section_interface();
+ player.walker_must_reload = true;
}
} // namespace Rooms
diff --git a/engines/mads/madsv2/forest/rooms/room305.cpp b/engines/mads/madsv2/forest/rooms/room305.cpp
index a3369107f8d..89c14ccbe20 100644
--- a/engines/mads/madsv2/forest/rooms/room305.cpp
+++ b/engines/mads/madsv2/forest/rooms/room305.cpp
@@ -78,8 +78,9 @@ void room_305_preload() {
room_parser_code_pointer = room_305_parser;
room_daemon_code_pointer = room_305_daemon;
- section_1_walker();
- section_1_interface();
+ global_section_walker();
+ global_section_interface();
+ player.walker_must_reload = true;
}
} // namespace Rooms
diff --git a/engines/mads/madsv2/forest/rooms/room306.cpp b/engines/mads/madsv2/forest/rooms/room306.cpp
index 44c11f19ac9..da270f67e99 100644
--- a/engines/mads/madsv2/forest/rooms/room306.cpp
+++ b/engines/mads/madsv2/forest/rooms/room306.cpp
@@ -78,8 +78,9 @@ void room_306_preload() {
room_parser_code_pointer = room_306_parser;
room_daemon_code_pointer = room_306_daemon;
- section_1_walker();
- section_1_interface();
+ global_section_walker();
+ global_section_interface();
+ player.walker_must_reload = true;
}
} // namespace Rooms
diff --git a/engines/mads/madsv2/forest/rooms/room307.cpp b/engines/mads/madsv2/forest/rooms/room307.cpp
index 04f7f2dd846..bbe1745f3b4 100644
--- a/engines/mads/madsv2/forest/rooms/room307.cpp
+++ b/engines/mads/madsv2/forest/rooms/room307.cpp
@@ -78,8 +78,9 @@ void room_307_preload() {
room_parser_code_pointer = room_307_parser;
room_daemon_code_pointer = room_307_daemon;
- section_1_walker();
- section_1_interface();
+ global_section_walker();
+ global_section_interface();
+ player.walker_must_reload = true;
}
} // namespace Rooms
diff --git a/engines/mads/madsv2/forest/rooms/room308.cpp b/engines/mads/madsv2/forest/rooms/room308.cpp
index 6be0433fca1..247e246d499 100644
--- a/engines/mads/madsv2/forest/rooms/room308.cpp
+++ b/engines/mads/madsv2/forest/rooms/room308.cpp
@@ -78,8 +78,9 @@ void room_308_preload() {
room_parser_code_pointer = room_308_parser;
room_daemon_code_pointer = room_308_daemon;
- section_1_walker();
- section_1_interface();
+ global_section_walker();
+ global_section_interface();
+ player.walker_must_reload = true;
}
} // namespace Rooms
diff --git a/engines/mads/madsv2/forest/rooms/room321.cpp b/engines/mads/madsv2/forest/rooms/room321.cpp
index ff3ef4df085..e4a6aeee089 100644
--- a/engines/mads/madsv2/forest/rooms/room321.cpp
+++ b/engines/mads/madsv2/forest/rooms/room321.cpp
@@ -78,8 +78,9 @@ void room_321_preload() {
room_parser_code_pointer = room_321_parser;
room_daemon_code_pointer = room_321_daemon;
- section_1_walker();
- section_1_interface();
+ global_section_walker();
+ global_section_interface();
+ player.walker_must_reload = true;
}
} // namespace Rooms
diff --git a/engines/mads/madsv2/forest/rooms/room322.cpp b/engines/mads/madsv2/forest/rooms/room322.cpp
index 8f1777d3c83..a5ca31e41d6 100644
--- a/engines/mads/madsv2/forest/rooms/room322.cpp
+++ b/engines/mads/madsv2/forest/rooms/room322.cpp
@@ -78,8 +78,9 @@ void room_322_preload() {
room_parser_code_pointer = room_322_parser;
room_daemon_code_pointer = room_322_daemon;
- section_1_walker();
- section_1_interface();
+ global_section_walker();
+ global_section_interface();
+ player.walker_must_reload = true;
}
} // namespace Rooms
diff --git a/engines/mads/madsv2/forest/rooms/room401.cpp b/engines/mads/madsv2/forest/rooms/room401.cpp
index 4ea88c25dec..63aa362b881 100644
--- a/engines/mads/madsv2/forest/rooms/room401.cpp
+++ b/engines/mads/madsv2/forest/rooms/room401.cpp
@@ -78,8 +78,9 @@ void room_401_preload() {
room_parser_code_pointer = room_401_parser;
room_daemon_code_pointer = room_401_daemon;
- section_1_walker();
- section_1_interface();
+ global_section_walker();
+ global_section_interface();
+ player.walker_must_reload = true;
}
} // namespace Rooms
diff --git a/engines/mads/madsv2/forest/rooms/room402.cpp b/engines/mads/madsv2/forest/rooms/room402.cpp
index 99e263ca4e3..4956ac04328 100644
--- a/engines/mads/madsv2/forest/rooms/room402.cpp
+++ b/engines/mads/madsv2/forest/rooms/room402.cpp
@@ -78,8 +78,9 @@ void room_402_preload() {
room_parser_code_pointer = room_402_parser;
room_daemon_code_pointer = room_402_daemon;
- section_1_walker();
- section_1_interface();
+ global_section_walker();
+ global_section_interface();
+ player.walker_must_reload = true;
}
} // namespace Rooms
diff --git a/engines/mads/madsv2/forest/rooms/room403.cpp b/engines/mads/madsv2/forest/rooms/room403.cpp
index c9e44095b24..e0ddcbd5450 100644
--- a/engines/mads/madsv2/forest/rooms/room403.cpp
+++ b/engines/mads/madsv2/forest/rooms/room403.cpp
@@ -78,8 +78,9 @@ void room_403_preload() {
room_parser_code_pointer = room_403_parser;
room_daemon_code_pointer = room_403_daemon;
- section_1_walker();
- section_1_interface();
+ global_section_walker();
+ global_section_interface();
+ player.walker_must_reload = true;
}
} // namespace Rooms
diff --git a/engines/mads/madsv2/forest/rooms/room404.cpp b/engines/mads/madsv2/forest/rooms/room404.cpp
index 24d2b042ea2..39c6517e3cb 100644
--- a/engines/mads/madsv2/forest/rooms/room404.cpp
+++ b/engines/mads/madsv2/forest/rooms/room404.cpp
@@ -78,8 +78,9 @@ void room_404_preload() {
room_parser_code_pointer = room_404_parser;
room_daemon_code_pointer = room_404_daemon;
- section_1_walker();
- section_1_interface();
+ global_section_walker();
+ global_section_interface();
+ player.walker_must_reload = true;
}
} // namespace Rooms
diff --git a/engines/mads/madsv2/forest/rooms/room405.cpp b/engines/mads/madsv2/forest/rooms/room405.cpp
index 282231b5cf3..8a4fb1797b3 100644
--- a/engines/mads/madsv2/forest/rooms/room405.cpp
+++ b/engines/mads/madsv2/forest/rooms/room405.cpp
@@ -78,8 +78,9 @@ void room_405_preload() {
room_parser_code_pointer = room_405_parser;
room_daemon_code_pointer = room_405_daemon;
- section_1_walker();
- section_1_interface();
+ global_section_walker();
+ global_section_interface();
+ player.walker_must_reload = true;
}
} // namespace Rooms
diff --git a/engines/mads/madsv2/forest/rooms/room420.cpp b/engines/mads/madsv2/forest/rooms/room420.cpp
index 9cda90a1583..6fa3c35a826 100644
--- a/engines/mads/madsv2/forest/rooms/room420.cpp
+++ b/engines/mads/madsv2/forest/rooms/room420.cpp
@@ -78,8 +78,12 @@ void room_420_preload() {
room_parser_code_pointer = room_420_parser;
room_daemon_code_pointer = room_420_daemon;
- section_1_walker();
- section_1_interface();
+ if (flags[31] == -4)
+ global[g016] = -1;
+
+ global_section_walker();
+ global_section_interface();
+ player.walker_must_reload = true;
}
} // namespace Rooms
diff --git a/engines/mads/madsv2/forest/rooms/room501.cpp b/engines/mads/madsv2/forest/rooms/room501.cpp
index 0856cadf4e6..a0f7801ec0f 100644
--- a/engines/mads/madsv2/forest/rooms/room501.cpp
+++ b/engines/mads/madsv2/forest/rooms/room501.cpp
@@ -78,8 +78,9 @@ void room_501_preload() {
room_parser_code_pointer = room_501_parser;
room_daemon_code_pointer = room_501_daemon;
- section_1_walker();
- section_1_interface();
+ global_section_walker();
+ global_section_interface();
+ player.walker_must_reload = true;
}
} // namespace Rooms
diff --git a/engines/mads/madsv2/forest/rooms/room503.cpp b/engines/mads/madsv2/forest/rooms/room503.cpp
index 5ecd14289d0..89187a9c0cf 100644
--- a/engines/mads/madsv2/forest/rooms/room503.cpp
+++ b/engines/mads/madsv2/forest/rooms/room503.cpp
@@ -78,8 +78,9 @@ void room_503_preload() {
room_parser_code_pointer = room_503_parser;
room_daemon_code_pointer = room_503_daemon;
- section_1_walker();
- section_1_interface();
+ global_section_walker();
+ global_section_interface();
+ player.walker_must_reload = true;
}
} // namespace Rooms
diff --git a/engines/mads/madsv2/forest/rooms/room509.cpp b/engines/mads/madsv2/forest/rooms/room509.cpp
index b91d93105db..4bef95018d3 100644
--- a/engines/mads/madsv2/forest/rooms/room509.cpp
+++ b/engines/mads/madsv2/forest/rooms/room509.cpp
@@ -78,8 +78,9 @@ void room_509_preload() {
room_parser_code_pointer = room_509_parser;
room_daemon_code_pointer = room_509_daemon;
- section_1_walker();
- section_1_interface();
+ global[g016] = -1;
+ global_section_walker();
+ global_section_interface();
}
} // namespace Rooms
diff --git a/engines/mads/madsv2/forest/rooms/room510.cpp b/engines/mads/madsv2/forest/rooms/room510.cpp
index ec39479b552..546e036c21f 100644
--- a/engines/mads/madsv2/forest/rooms/room510.cpp
+++ b/engines/mads/madsv2/forest/rooms/room510.cpp
@@ -78,8 +78,9 @@ void room_510_preload() {
room_parser_code_pointer = room_510_parser;
room_daemon_code_pointer = room_510_daemon;
- section_1_walker();
- section_1_interface();
+ global_section_walker();
+ global_section_interface();
+ player.walker_must_reload = true;
}
} // namespace Rooms
diff --git a/engines/mads/madsv2/forest/rooms/room520.cpp b/engines/mads/madsv2/forest/rooms/room520.cpp
index 3413c1f4a33..dd529a92c73 100644
--- a/engines/mads/madsv2/forest/rooms/room520.cpp
+++ b/engines/mads/madsv2/forest/rooms/room520.cpp
@@ -78,8 +78,9 @@ void room_520_preload() {
room_parser_code_pointer = room_520_parser;
room_daemon_code_pointer = room_520_daemon;
- section_1_walker();
- section_1_interface();
+ global_section_walker();
+ global_section_interface();
+ player.walker_must_reload = true;
}
} // namespace Rooms
diff --git a/engines/mads/madsv2/forest/rooms/section1.cpp b/engines/mads/madsv2/forest/rooms/section1.cpp
index 5f3c90d3fc8..77a32937c40 100644
--- a/engines/mads/madsv2/forest/rooms/section1.cpp
+++ b/engines/mads/madsv2/forest/rooms/section1.cpp
@@ -46,12 +46,6 @@ extern void room_199_preload();
void section_1_init() {
}
-void section_1_walker() {
-}
-
-void section_1_interface() {
-}
-
void section_1_music() {
}
diff --git a/engines/mads/madsv2/forest/rooms/section1.h b/engines/mads/madsv2/forest/rooms/section1.h
index a7155c7ab18..52264344270 100644
--- a/engines/mads/madsv2/forest/rooms/section1.h
+++ b/engines/mads/madsv2/forest/rooms/section1.h
@@ -30,8 +30,6 @@ namespace MADSV2 {
namespace Forest {
namespace Rooms {
-extern void section_1_walker();
-extern void section_1_interface();
extern void section_1_music();
} // namespace Rooms
diff --git a/engines/mads/madsv2/forest/rooms/section2.cpp b/engines/mads/madsv2/forest/rooms/section2.cpp
index 6612dd7ceb6..3e443ae6d49 100644
--- a/engines/mads/madsv2/forest/rooms/section2.cpp
+++ b/engines/mads/madsv2/forest/rooms/section2.cpp
@@ -49,12 +49,6 @@ extern void room_221_preload();
void section_2_init() {
}
-void section_2_walker() {
-}
-
-void section_2_interface() {
-}
-
void section_2_music() {
}
diff --git a/engines/mads/madsv2/forest/rooms/section2.h b/engines/mads/madsv2/forest/rooms/section2.h
index 74f6ad42cab..b40b8bc0b96 100644
--- a/engines/mads/madsv2/forest/rooms/section2.h
+++ b/engines/mads/madsv2/forest/rooms/section2.h
@@ -29,8 +29,6 @@ namespace MADSV2 {
namespace Forest {
namespace Rooms {
-extern void section_2_walker();
-extern void section_2_interface();
extern void section_2_music();
} // namespace Rooms
diff --git a/engines/mads/madsv2/forest/rooms/section3.cpp b/engines/mads/madsv2/forest/rooms/section3.cpp
index 001137f0332..0a27ddaa3c8 100644
--- a/engines/mads/madsv2/forest/rooms/section3.cpp
+++ b/engines/mads/madsv2/forest/rooms/section3.cpp
@@ -50,12 +50,6 @@ extern void room_322_preload();
void section_3_init() {
}
-void section_3_walker() {
-}
-
-void section_3_interface() {
-}
-
void section_3_music() {
}
diff --git a/engines/mads/madsv2/forest/rooms/section3.h b/engines/mads/madsv2/forest/rooms/section3.h
index c336dae2b96..492bd3dd024 100644
--- a/engines/mads/madsv2/forest/rooms/section3.h
+++ b/engines/mads/madsv2/forest/rooms/section3.h
@@ -29,8 +29,6 @@ namespace MADSV2 {
namespace Forest {
namespace Rooms {
-extern void section_3_walker();
-extern void section_3_interface();
extern void section_3_music();
} // namespace Rooms
diff --git a/engines/mads/madsv2/forest/rooms/section4.cpp b/engines/mads/madsv2/forest/rooms/section4.cpp
index 7c43a725519..0bb6771dfdf 100644
--- a/engines/mads/madsv2/forest/rooms/section4.cpp
+++ b/engines/mads/madsv2/forest/rooms/section4.cpp
@@ -46,12 +46,6 @@ extern void room_420_preload();
void section_4_init() {
}
-void section_4_walker() {
-}
-
-void section_4_interface() {
-}
-
void section_4_music() {
}
diff --git a/engines/mads/madsv2/forest/rooms/section4.h b/engines/mads/madsv2/forest/rooms/section4.h
index 0cb39c29ddf..4072cc1eebe 100644
--- a/engines/mads/madsv2/forest/rooms/section4.h
+++ b/engines/mads/madsv2/forest/rooms/section4.h
@@ -29,8 +29,6 @@ namespace MADSV2 {
namespace Forest {
namespace Rooms {
-extern void section_4_walker();
-extern void section_4_interface();
extern void section_4_music();
} // namespace Rooms
diff --git a/engines/mads/madsv2/forest/rooms/section5.cpp b/engines/mads/madsv2/forest/rooms/section5.cpp
index c9ef2163620..1e37f9c1d8e 100644
--- a/engines/mads/madsv2/forest/rooms/section5.cpp
+++ b/engines/mads/madsv2/forest/rooms/section5.cpp
@@ -46,12 +46,6 @@ void section_5_init() {
player.scaling_velocity = true;
}
-void section_5_walker() {
-}
-
-void section_5_interface() {
-}
-
void section_5_music() {
}
diff --git a/engines/mads/madsv2/forest/rooms/section5.h b/engines/mads/madsv2/forest/rooms/section5.h
index 01aacfde8c5..640903ebbbb 100644
--- a/engines/mads/madsv2/forest/rooms/section5.h
+++ b/engines/mads/madsv2/forest/rooms/section5.h
@@ -29,8 +29,6 @@ namespace MADSV2 {
namespace Forest {
namespace Rooms {
-extern void section_5_walker();
-extern void section_5_interface();
extern void section_5_music();
} // namespace Rooms
More information about the Scummvm-git-logs
mailing list