[Scummvm-git-logs] scummvm master -> 05f3556f74d31eeb02c558c7e628da26590c079b

dreammaster noreply at scummvm.org
Mon Jun 29 07:46:24 UTC 2026


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

Summary:
c732305c27 MADS: FOREST: Fix getting sturdy stick in room 403
f07cdc84cc MADS: FOREST: Clarify sturdy stick usage in room 404
bfca69b8a4 MADS: FOREST: Fix journal and backpack icons shrinking when being opened
05f3556f74 MADS: FOREST; Room 404 anim cleanups


Commit: c732305c27b0aa300cd08613a85accc8083d02ff
    https://github.com/scummvm/scummvm/commit/c732305c27b0aa300cd08613a85accc8083d02ff
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2026-06-29T17:45:31+10:00

Commit Message:
MADS: FOREST: Fix getting sturdy stick in room 403

Changed paths:
    engines/mads/madsv2/forest/mads/inventory.h
    engines/mads/madsv2/forest/rooms/room403.cpp


diff --git a/engines/mads/madsv2/forest/mads/inventory.h b/engines/mads/madsv2/forest/mads/inventory.h
index 179eda3b588..46eac214777 100644
--- a/engines/mads/madsv2/forest/mads/inventory.h
+++ b/engines/mads/madsv2/forest/mads/inventory.h
@@ -41,6 +41,7 @@ enum {
 	web            = 10,
 	planks         = 11,
 	elm_leaves     = 12,
+	sturdy_stick   = 13,
 	stick          = 14,
 	forked_stick   = 15
 };
diff --git a/engines/mads/madsv2/forest/rooms/room403.cpp b/engines/mads/madsv2/forest/rooms/room403.cpp
index d3c8378c15c..7eb0d09517d 100644
--- a/engines/mads/madsv2/forest/rooms/room403.cpp
+++ b/engines/mads/madsv2/forest/rooms/room403.cpp
@@ -183,14 +183,15 @@ static void room_403_init() {
 }
 
 static void room_403_anim1() {
-	if (kernel_anim[aa[0]].frame == aainfo[0]._frame)
-		return;
-	aainfo[0]._frame = kernel_anim[aa[0]].frame;
-	if (global[player_hyperwalked] != -1)
-		return;
-	int16 ax = scratch._92 - 1;
-	aainfo[0]._frame = ax;
-	kernel_reset_animation(aa[0], ax);
+	if (kernel_anim[aa[0]].frame != aainfo[0]._frame) {
+		aainfo[0]._frame = kernel_anim[aa[0]].frame;
+	}
+
+	if (global[player_hyperwalked] == -1) {
+		int16 newFrame = scratch._92 - 1;
+		aainfo[0]._frame = newFrame;
+		kernel_reset_animation(aa[0], newFrame);
+	}
 }
 
 static void room_403_anim2() {
@@ -215,19 +216,18 @@ static void room_403_anim2() {
 		}
 	}
 
-	if (global[player_hyperwalked] != -1)
-		return;
-	int16 ax = scratch._92 - 1;
-	if (ax <= aainfo[6]._frame)
-		return;
-	aainfo[6]._frame = ax;
-	kernel_reset_animation(aa[6], ax);
+	if (global[player_hyperwalked] == -1) {
+		int16 newFrame = scratch._92 - 1;
+		if (newFrame > aainfo[6]._frame) {
+			aainfo[6]._frame = newFrame;
+			kernel_reset_animation(aa[6], newFrame);
+		}
+	}
 }
 
 static void room_403_anim3() {
-	if (kernel_anim[aa[1]].frame == aainfo[1]._frame)
-		return;
-	aainfo[1]._frame = kernel_anim[aa[1]].frame;
+	if (kernel_anim[aa[1]].frame != aainfo[1]._frame)
+		aainfo[1]._frame = kernel_anim[aa[1]].frame;
 }
 
 static void room_403_anim4() {
@@ -302,77 +302,75 @@ static void room_403_anim4() {
 		}
 	}
 
-	if (kernel.trigger != 7 && kernel.trigger != 28)
-		return;
-
-	int16 a4 = scratch._a4;
-	if (a4 == 28) {
-		kernel_timing_trigger(30, 28);
-		aainfo[3]._val3 = 23;
-		scratch._a4 = 29;
-	} else if (a4 == 29) {
-		aainfo[3]._val3 = 21;
-		aainfo[3]._frame = 28;
-		kernel_reset_animation(aa[3], 28);
-		digi_play_build_ii('e', 10, 1);
-		scratch._a4 = 30;
-	} else if (a4 == 30) {
-		aainfo[3]._val3 = 19;
-		aainfo[3]._frame = 34;
-		kernel_reset_animation(aa[3], 34);
-		scratch._a4 = -1;
-	} else if (a4 == 45) {
-		kernel_timing_trigger(30, 28);
-		aainfo[3]._val3 = 23;
-		scratch._a4 = 46;
-	} else if (a4 == 46) {
-		aainfo[3]._val3 = 21;
-		aainfo[3]._frame = 45;
-		kernel_reset_animation(aa[3], 45);
-		digi_play_build_ii('e', 10, 1);
-		scratch._a4 = 47;
-	} else if (a4 == 47) {
-		aainfo[3]._val3 = 19;
-		aainfo[3]._frame = 51;
-		kernel_reset_animation(aa[3], 51);
-		scratch._a4 = -1;
-	} else if (a4 == 450) {
-		kernel_timing_trigger(30, 28);
-		aainfo[3]._val3 = 23;
-		scratch._a4 = 451;
-	} else if (a4 == 451) {
-		aainfo[3]._val3 = 21;
-		aainfo[3]._frame = 45;
-		kernel_reset_animation(aa[3], 45);
-		digi_play_build_ii('e', 10, 1);
-		scratch._a4 = 452;
-	} else if (a4 == 452) {
-		aainfo[3]._val3 = 19;
-		aainfo[3]._frame = 51;
-		kernel_reset_animation(aa[3], 51);
-		scratch._a4 = -1;
-	} else if (a4 == 4900) {
-		kernel_timing_trigger(30, 28);
-		aainfo[3]._val3 = 23;
-		scratch._a4 = 4901;
-	} else if (a4 == 4901) {
-		aainfo[3]._val3 = 21;
-		aainfo[3]._frame = 49;
-		kernel_reset_animation(aa[3], 49);
-		digi_play_build_ii('e', 10, 1);
-		scratch._a4 = 4902;
-	} else if (a4 == 4902) {
-		aainfo[3]._val3 = 19;
-		aainfo[3]._frame = 55;
-		kernel_reset_animation(aa[3], 55);
-		scratch._a4 = -1;
+	if (kernel.trigger == 7 || kernel.trigger == 28) {
+		int16 a4 = scratch._a4;
+		if (a4 == 28) {
+			kernel_timing_trigger(30, 28);
+			aainfo[3]._val3 = 23;
+			scratch._a4 = 29;
+		} else if (a4 == 29) {
+			aainfo[3]._val3 = 21;
+			aainfo[3]._frame = 28;
+			kernel_reset_animation(aa[3], 28);
+			digi_play_build_ii('e', 10, 1);
+			scratch._a4 = 30;
+		} else if (a4 == 30) {
+			aainfo[3]._val3 = 19;
+			aainfo[3]._frame = 34;
+			kernel_reset_animation(aa[3], 34);
+			scratch._a4 = -1;
+		} else if (a4 == 45) {
+			kernel_timing_trigger(30, 28);
+			aainfo[3]._val3 = 23;
+			scratch._a4 = 46;
+		} else if (a4 == 46) {
+			aainfo[3]._val3 = 21;
+			aainfo[3]._frame = 45;
+			kernel_reset_animation(aa[3], 45);
+			digi_play_build_ii('e', 10, 1);
+			scratch._a4 = 47;
+		} else if (a4 == 47) {
+			aainfo[3]._val3 = 19;
+			aainfo[3]._frame = 51;
+			kernel_reset_animation(aa[3], 51);
+			scratch._a4 = -1;
+		} else if (a4 == 450) {
+			kernel_timing_trigger(30, 28);
+			aainfo[3]._val3 = 23;
+			scratch._a4 = 451;
+		} else if (a4 == 451) {
+			aainfo[3]._val3 = 21;
+			aainfo[3]._frame = 45;
+			kernel_reset_animation(aa[3], 45);
+			digi_play_build_ii('e', 10, 1);
+			scratch._a4 = 452;
+		} else if (a4 == 452) {
+			aainfo[3]._val3 = 19;
+			aainfo[3]._frame = 51;
+			kernel_reset_animation(aa[3], 51);
+			scratch._a4 = -1;
+		} else if (a4 == 4900) {
+			kernel_timing_trigger(30, 28);
+			aainfo[3]._val3 = 23;
+			scratch._a4 = 4901;
+		} else if (a4 == 4901) {
+			aainfo[3]._val3 = 21;
+			aainfo[3]._frame = 49;
+			kernel_reset_animation(aa[3], 49);
+			digi_play_build_ii('e', 10, 1);
+			scratch._a4 = 4902;
+		} else if (a4 == 4902) {
+			aainfo[3]._val3 = 19;
+			aainfo[3]._frame = 55;
+			kernel_reset_animation(aa[3], 55);
+			scratch._a4 = -1;
+		}
 	}
 }
 
 static void room_403_anim5() {
-	if (kernel_anim[aa[2]].frame == aainfo[2]._frame)
-		return;
-	aainfo[2]._frame = kernel_anim[aa[2]].frame;
+	if (kernel_anim[aa[2]].frame != aainfo[2]._frame)
+		aainfo[2]._frame = kernel_anim[aa[2]].frame;
 }
 
 static void room_403_anim6() {
@@ -485,7 +483,7 @@ static void room_403_daemon() {
 		}
 		break;
 
-	case 17: {
+	case 24: {
 		if (scratch._8c == 3) {
 			aa[1] = kernel_run_animation(kernel_name('E', 1), 102);
 			aainfo[1]._active = -1;
@@ -512,7 +510,7 @@ static void room_403_daemon() {
 		break;
 	}
 
-	case 18:
+	case 25:
 		if (scratch._8e == 2) {
 			aa[2] = kernel_run_animation(kernel_name('R', 1), 101);
 			aainfo[2]._active = -1;
@@ -524,7 +522,7 @@ static void room_403_daemon() {
 		}
 		break;
 
-	case 19:
+	case 26:
 		if (scratch._90 == 1) {
 			kernel_reset_animation(scratch._9a, 0);
 			kernel_reset_animation(scratch._9c, 0);
@@ -621,7 +619,7 @@ static void room_403_daemon() {
 			kernel_synch(KERNEL_ANIM, scratch._9a, KERNEL_NOW, 0);
 			global[g133] = 0;
 			kernel_flip_hotspot(words_wrench, false);
-			inter_move_object(13, PLAYER);
+			inter_move_object(sturdy_stick, PLAYER);
 			clear_selected_item();
 			player.commands_allowed = true;
 			if (config_file.forest1 != 0)


Commit: f07cdc84ccea29f5a06e22d4e27285b7eaff6810
    https://github.com/scummvm/scummvm/commit/f07cdc84ccea29f5a06e22d4e27285b7eaff6810
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2026-06-29T17:45:31+10:00

Commit Message:
MADS: FOREST: Clarify sturdy stick usage in room 404

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


diff --git a/engines/mads/madsv2/forest/rooms/room404.cpp b/engines/mads/madsv2/forest/rooms/room404.cpp
index ad4f418b476..359dc03a869 100644
--- a/engines/mads/madsv2/forest/rooms/room404.cpp
+++ b/engines/mads/madsv2/forest/rooms/room404.cpp
@@ -78,7 +78,7 @@ static void room_404_init1() {
 	global[g141] = 0;
 
 	if (global[g084] == 16) {
-		object_set_quality(13, 0, 0L);
+		object_set_quality(sturdy_stick, 0, 0);
 		scratch._9c = kernel_run_animation_disp('r', 6, 0);
 		kernel_position_anim(scratch._9c, 123, 145, 92, 1);
 		scratch._9a = kernel_run_animation_disp('e', 6, 0);
@@ -100,7 +100,7 @@ static void room_404_init1() {
 		global[g131] = -1;
 		global[g141] = -1;
 		if (global[g084] == 16) {
-			object_set_quality(13, 0, 0L);
+			object_set_quality(sturdy_stick, 0, 0);
 			kernel_reset_animation(scratch._9c, 1);
 			kernel_reset_animation(scratch._9a, 1);
 		} else {
@@ -169,7 +169,7 @@ static void room_404_init() {
 		kernel_timing_trigger(1, 110);
 	}
 
-	object_set_quality(13, 0, -1L);
+	object_set_quality(sturdy_stick, 0, -1);
 
 	scratch._a2 = 0;
 	scratch._a4 = -1;
@@ -671,7 +671,7 @@ static void room_404_daemon() {
 			kernel_abort_animation(scratch._9a);
 			kernel_abort_animation(scratch._9c);
 			global[g084] = 16;
-			object_set_quality(13, 0, 0L);
+			object_set_quality(sturdy_stick, 0, 0);
 			scratch._9c = kernel_run_animation_disp('r', 6, 0);
 			kernel_position_anim(scratch._9c, 123, 145, 92, 1);
 			scratch._9a = kernel_run_animation_disp('e', 6, 0);
@@ -710,8 +710,8 @@ static void room_404_daemon() {
 			kernel_synch(KERNEL_PLAYER, 0, KERNEL_NOW, 0);
 			global[g081] = -1;
 			kernel_flip_hotspot(words_hole, false);
-			object_set_quality(13, 0, 0L);
-			inter_move_object(13, NOWHERE);
+			object_set_quality(sturdy_stick, 0, 0);
+			inter_move_object(sturdy_stick, NOWHERE);
 			clear_selected_item();
 			if (global[walker_converse_state]) {
 				global[walker_converse_state] = 0;
@@ -726,7 +726,7 @@ static void room_404_daemon() {
 	case 104:
 		player.commands_allowed = false;
 		if (global[walker_converse_state])
-			inter_spin_object(13);
+			inter_spin_object(sturdy_stick);
 		global[g150] = -1;
 		scratch._90 = 8;
 		break;
@@ -845,7 +845,7 @@ static void room_404_parser() {
 	}
 
 	if (global[player_selected_object] >= 0) {
-		if (global[player_selected_object] == 13) {
+		if (global[player_selected_object] == sturdy_stick) {
 			if (!global[g081] && global[g082]) {
 				kernel.trigger_setup_mode = 1;
 				kernel_timing_trigger(2, 109);


Commit: bfca69b8a4900adec119da7ff2ed70e47ff48245
    https://github.com/scummvm/scummvm/commit/bfca69b8a4900adec119da7ff2ed70e47ff48245
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2026-06-29T17:45:31+10:00

Commit Message:
MADS: FOREST: Fix journal and backpack icons shrinking when being opened

Changed paths:
    engines/mads/madsv2/core/sprite.cpp
    engines/mads/madsv2/core/sprite.h
    engines/mads/madsv2/forest/extra.cpp


diff --git a/engines/mads/madsv2/core/sprite.cpp b/engines/mads/madsv2/core/sprite.cpp
index 9c06e9f4655..2346a8e6160 100644
--- a/engines/mads/madsv2/core/sprite.cpp
+++ b/engines/mads/madsv2/core/sprite.cpp
@@ -65,11 +65,6 @@ void sprite_draw(SeriesPtr series, int id, Buffer *buf, int target_x, int target
 #undef translate
 #undef interface
 
-void sprite_draw_clipped(SeriesPtr series, int id, int clip_x, Buffer *buf, int target_x, int target_y) {
-	// TODO: implement clipped/partial draw; for now delegate to full draw
-	sprite_draw(series, id, buf, target_x, target_y);
-}
-
 //=== sprite_draw_scaled =====================================
 #define three_d         false           /* depth coding  OFF */
 #define bresenham       true            /* bresenham     ON  */
diff --git a/engines/mads/madsv2/core/sprite.h b/engines/mads/madsv2/core/sprite.h
index 006be642afa..5daebd7c955 100644
--- a/engines/mads/madsv2/core/sprite.h
+++ b/engines/mads/madsv2/core/sprite.h
@@ -300,7 +300,6 @@ extern int sprite_error;
 
 
 void sprite_draw(SeriesPtr series, int id, Buffer *buf, int target_x, int target_y);
-void sprite_draw_clipped(SeriesPtr series, int id, int clip_x, Buffer *buf, int target_x, int target_y);
 void sprite_draw_scaled(SeriesPtr series, int id, Buffer *buf,
 	int target_x, int target_y, int scale_factor);
 void sprite_draw_3d_scaled(SeriesPtr series, int id, Buffer *buf, Buffer *attr,
diff --git a/engines/mads/madsv2/forest/extra.cpp b/engines/mads/madsv2/forest/extra.cpp
index 540f436a56e..c7b10ac19c9 100644
--- a/engines/mads/madsv2/forest/extra.cpp
+++ b/engines/mads/madsv2/forest/extra.cpp
@@ -196,8 +196,8 @@ void open_interface(InterfaceButton button) {
 		if (button == JOURNAL_FLY) {
 			if (count != 23) {
 				int x = count * 2 + 46;
-				int clip_x = 100 - count * 9;
-				sprite_draw_clipped(series_list[0], 1, clip_x, &scr_inter, x, 30);
+				int scale = 100 - count * 9;
+				sprite_draw_scaled(series_list[0], 1, &scr_inter, 30, x, scale);
 			}
 		} else {
 			sprite_draw(series_list[0], 1, &scr_inter, JOURNAL_X, JOURNAL_Y);
@@ -206,8 +206,8 @@ void open_interface(InterfaceButton button) {
 		if (button == BP_FLY) {
 			if (count != 23) {
 				int x = count * 2 + 40;
-				int clip_x = 100 - count * 9;
-				sprite_draw_clipped(series_list[1], 1, clip_x, &scr_inter, x, 96);
+				int scale = 100 - count * 9;
+				sprite_draw_scaled(series_list[1], 1, &scr_inter, 96, x, scale);
 			}
 		} else {
 			sprite_draw(series_list[1], 1, &scr_inter, BP_X, BP_Y);
@@ -232,6 +232,7 @@ void open_interface(InterfaceButton button) {
 		}
 
 		buffer_rect_copy_2(scr_inter, scr_main, 168, 0, 168, 156, 152, 44);
+		buffer_rect_copy_2(scr_main, scr_live, 0, 156, 0, 156, 320, 44);
 
 		while (timer_read() - current_time < 2) {
 		}
@@ -258,8 +259,8 @@ void close_interface(InterfaceButton button) {
 		if (button == JOURNAL_FLY) {
 			if (count != 0) {
 				int x = count * 2 + 43;
-				int clip_x = 100 - count * 9;
-				sprite_draw_clipped(series_list[0], 1, clip_x, &scr_inter, x, 30);
+				int scale = 100 - count * 9;
+				sprite_draw_scaled(series_list[0], 1, &scr_inter, 30, x, scale);
 			} else {
 				sprite_draw(series_list[0], 1, &scr_inter, JOURNAL_X, JOURNAL_Y);
 			}
@@ -270,8 +271,8 @@ void close_interface(InterfaceButton button) {
 		if (button == BP_FLY) {
 			if (count != 0) {
 				int x = count * 2 + 37;
-				int clip_x = 100 - count * 9;
-				sprite_draw_clipped(series_list[1], 1, clip_x, &scr_inter, x, 96);
+				int scale = 100 - count * 9;
+				sprite_draw_scaled(series_list[1], 1, &scr_inter, 96, x, scale);
 			} else {
 				sprite_draw(series_list[1], 1, &scr_inter, BP_X, BP_Y);
 			}
@@ -293,6 +294,7 @@ void close_interface(InterfaceButton button) {
 		sprite_draw(series_list[3], 1, &scr_inter, DOOR_X, DOOR_Y);
 
 		buffer_rect_copy_2(scr_inter, scr_main, 168, 0, 168, 156, 152, 44);
+		buffer_rect_copy_2(scr_main, scr_live, 0, 156, 0, 156, 320, 44);
 
 		while (timer_read() - current_time < 2) {
 		}


Commit: 05f3556f74d31eeb02c558c7e628da26590c079b
    https://github.com/scummvm/scummvm/commit/05f3556f74d31eeb02c558c7e628da26590c079b
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2026-06-29T17:45:31+10:00

Commit Message:
MADS: FOREST; Room 404 anim cleanups

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


diff --git a/engines/mads/madsv2/forest/rooms/room404.cpp b/engines/mads/madsv2/forest/rooms/room404.cpp
index 359dc03a869..dc548bf2c95 100644
--- a/engines/mads/madsv2/forest/rooms/room404.cpp
+++ b/engines/mads/madsv2/forest/rooms/room404.cpp
@@ -214,15 +214,17 @@ static void room_404_anim1() {
 	int16 cur = kernel_anim[scratch.animation[0]].frame;
 	if (cur != aainfo[0]._frame)
 		aainfo[0]._frame = cur;
-	if (global[player_hyperwalked] != -1)
-		return;
-	int16 f = scratch._92 - 1;
-	aainfo[0]._frame = f;
-	kernel_reset_animation(scratch.animation[0], f);
+
+	if (global[player_hyperwalked] == -1) {
+		int16 f = scratch._92 - 1;
+		aainfo[0]._frame = f;
+		kernel_reset_animation(scratch.animation[0], f);
+	}
 }
 
 static void room_404_anim2() {
 	int16 cur = kernel_anim[scratch.animation[9]].frame;
+
 	if (cur != aainfo[9]._frame) {
 		aainfo[9]._frame = cur;
 		if (flags[29] == 1) {
@@ -265,35 +267,31 @@ static void room_404_anim2() {
 		}
 	}
 
-	if (kernel.trigger != 7 && kernel.trigger != 28)
-		return;
-
-	if (flags[29] == 1) {
-		aainfo[9]._val3 = 13;
-		aainfo[9]._frame = 18;
-		kernel_reset_animation(scratch.animation[9], 18);
-		scratch._a6 = -1;
-		return;
-	}
-
-	if (scratch._a6 == 1) {
-		global[g154] = 0;
-		kernel_timing_trigger(30, 28);
-		aainfo[9]._val3 = 13;
-		aainfo[9]._frame = 3;
-		kernel_reset_animation(scratch.animation[9], 3);
-		scratch._a6 = 2;
-	} else if (scratch._a6 == 2) {
-		aainfo[9]._val3 = 11;
-		aainfo[9]._frame = 5;
-		kernel_reset_animation(scratch.animation[9], 5);
-		scratch._a6 = 3;
-		digi_play_build(404, 'e', 5, 1);
-	} else if (scratch._a6 == 3) {
-		aainfo[9]._val3 = 13;
-		aainfo[9]._frame = 18;
-		kernel_reset_animation(scratch.animation[9], 18);
-		scratch._a6 = -1;
+	if (kernel.trigger == 7 || kernel.trigger == 28) {
+		if (flags[29] == 1) {
+			aainfo[9]._val3 = 13;
+			aainfo[9]._frame = 18;
+			kernel_reset_animation(scratch.animation[9], 18);
+			scratch._a6 = -1;
+		} else if (scratch._a6 == 1) {
+			global[g154] = 0;
+			kernel_timing_trigger(30, 28);
+			aainfo[9]._val3 = 13;
+			aainfo[9]._frame = 3;
+			kernel_reset_animation(scratch.animation[9], 3);
+			scratch._a6 = 2;
+		} else if (scratch._a6 == 2) {
+			aainfo[9]._val3 = 11;
+			aainfo[9]._frame = 5;
+			kernel_reset_animation(scratch.animation[9], 5);
+			scratch._a6 = 3;
+			digi_play_build(404, 'e', 5, 1);
+		} else if (scratch._a6 == 3) {
+			aainfo[9]._val3 = 13;
+			aainfo[9]._frame = 18;
+			kernel_reset_animation(scratch.animation[9], 18);
+			scratch._a6 = -1;
+		}
 	}
 }
 
@@ -325,14 +323,13 @@ static void room_404_anim5() {
 		}
 	}
 
-	if (kernel.trigger != 7 && kernel.trigger != 28)
-		return;
-
-	if (scratch._a6 == 5) {
-		aainfo[3]._val3 = 14;
-		aainfo[3]._frame = 9;
-		kernel_reset_animation(scratch.animation[3], 9);
-		scratch._a6 = -1;
+	if (kernel.trigger == 7 || kernel.trigger == 28) {
+		if (scratch._a6 == 5) {
+			aainfo[3]._val3 = 14;
+			aainfo[3]._frame = 9;
+			kernel_reset_animation(scratch.animation[3], 9);
+			scratch._a6 = -1;
+		}
 	}
 }
 
@@ -363,19 +360,18 @@ static void room_404_anim6() {
 		}
 	}
 
-	if (kernel.trigger != 7 && kernel.trigger != 28)
-		return;
-
-	if (scratch._a6 == 5) {
-		aainfo[5]._val3 = 13;
-		aainfo[5]._frame = 11;
-		kernel_reset_animation(scratch.animation[5], 11);
-		scratch._a6 = -1;
-	} else if (scratch._a6 == 67) {
-		aainfo[5]._val3 = 13;
-		aainfo[5]._frame = 73;
-		kernel_reset_animation(scratch.animation[5], 73);
-		scratch._a6 = -1;
+	if (kernel.trigger == 7 || kernel.trigger == 28) {
+		if (scratch._a6 == 5) {
+			aainfo[5]._val3 = 13;
+			aainfo[5]._frame = 11;
+			kernel_reset_animation(scratch.animation[5], 11);
+			scratch._a6 = -1;
+		} else if (scratch._a6 == 67) {
+			aainfo[5]._val3 = 13;
+			aainfo[5]._frame = 73;
+			kernel_reset_animation(scratch.animation[5], 73);
+			scratch._a6 = -1;
+		}
 	}
 }
 
@@ -479,33 +475,33 @@ static void room_404_anim8() {
 
 static void room_404_anim9() {
 	int16 cur = kernel_anim[scratch.animation[8]].frame;
-	if (cur == aainfo[8]._frame)
-		return;
-	aainfo[8]._frame = cur;
+	if (cur != aainfo[8]._frame) {
+		aainfo[8]._frame = cur;
 
-	if (cur == 49) {
-		if (imath_random(0, 100) > 50) {
-			aainfo[8]._frame--;
-			kernel_reset_animation(scratch.animation[8], aainfo[8]._frame);
-		} else {
-			aainfo[8]._frame = 21;
-			kernel_reset_animation(scratch.animation[8], 21);
-		}
-	} else if (cur < 49) {
-		if (cur == 19 || cur == 30 || cur == 40) {
-			if (imath_random(0, 100) > 20) {
-				aainfo[8]._frame--;
-				kernel_reset_animation(scratch.animation[8], aainfo[8]._frame);
-			}
-		} else if (cur == 34 || cur == 46) {
-			if (imath_random(0, 100) > 40) {
+		if (cur == 49) {
+			if (imath_random(0, 100) > 50) {
 				aainfo[8]._frame--;
 				kernel_reset_animation(scratch.animation[8], aainfo[8]._frame);
+			} else {
+				aainfo[8]._frame = 21;
+				kernel_reset_animation(scratch.animation[8], 21);
 			}
-		} else if (cur == 20 || cur == 48) {
-			if (imath_random(0, 100) > 60) {
-				aainfo[8]._frame -= 2;
-				kernel_reset_animation(scratch.animation[8], aainfo[8]._frame);
+		} else if (cur < 49) {
+			if (cur == 19 || cur == 30 || cur == 40) {
+				if (imath_random(0, 100) > 20) {
+					aainfo[8]._frame--;
+					kernel_reset_animation(scratch.animation[8], aainfo[8]._frame);
+				}
+			} else if (cur == 34 || cur == 46) {
+				if (imath_random(0, 100) > 40) {
+					aainfo[8]._frame--;
+					kernel_reset_animation(scratch.animation[8], aainfo[8]._frame);
+				}
+			} else if (cur == 20 || cur == 48) {
+				if (imath_random(0, 100) > 60) {
+					aainfo[8]._frame -= 2;
+					kernel_reset_animation(scratch.animation[8], aainfo[8]._frame);
+				}
 			}
 		}
 	}




More information about the Scummvm-git-logs mailing list