[Scummvm-git-logs] scummvm master -> 64d6a0c6a8e02f826a30ab926c37f7ba77287aa3

dreammaster noreply at scummvm.org
Sat Oct 3 21:33:08 UTC 2026


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

Summary:
45b418dcc2 MADS: FOREST: Fix incorrect flag indices
79a3f75343 MADS: FOREST: Use full dialog heap for popups
c56a8fd458 MADS: FOREST: Replace values with constants, nonfunctional
0722d4eb58 MADS: FOREST: Fix how displayed inventory object state is reset
64d6a0c6a8 MADS: FOREST: Correct animation handles in room 302, nonfunctional


Commit: 45b418dcc23cb39152c1e66195ab8abb34a7e422
    https://github.com/scummvm/scummvm/commit/45b418dcc23cb39152c1e66195ab8abb34a7e422
Author: fusefib (fibofuse at gmail.com)
Date: 2026-10-03T11:33:01-10:00

Commit Message:
MADS: FOREST: Fix incorrect flag indices

Changed paths:
    engines/mads/forest/rooms/room107.cpp
    engines/mads/forest/rooms/room204.cpp
    engines/mads/forest/rooms/room301.cpp
    engines/mads/forest/rooms/room303.cpp


diff --git a/engines/mads/forest/rooms/room107.cpp b/engines/mads/forest/rooms/room107.cpp
index b3fdfddb7bb..eba545ea157 100644
--- a/engines/mads/forest/rooms/room107.cpp
+++ b/engines/mads/forest/rooms/room107.cpp
@@ -53,7 +53,7 @@ static Scratch scratch;
 static void room_107_anim1();
 
 static void room_107_init() {
-	flags[8] = 5;
+	flags[4] = 5;
 
 	ss[0] = kernel_load_series(kernel_name('b', 1), 0);
 	seq[0] = kernel_seq_stamp(ss[0], false, KERNEL_FIRST);
diff --git a/engines/mads/forest/rooms/room204.cpp b/engines/mads/forest/rooms/room204.cpp
index d1db9970ce6..c43f717d66f 100644
--- a/engines/mads/forest/rooms/room204.cpp
+++ b/engines/mads/forest/rooms/room204.cpp
@@ -155,13 +155,13 @@ static void room_204_init() {
 			aainfo[count]._val4 = 0;
 		}
 
-		if (previous_room != 199 && flags[18] != 3)
-			flags[18]++;
+		if (previous_room != 199 && flags[9] != 3)
+			flags[9]++;
 	}
 
 	room_204_init1();
-	if (flags[18] == -3)
-		flags[18] = 1;
+	if (flags[9] == -3)
+		flags[9] = 1;
 }
 
 static void room_204_anim1() {
@@ -470,7 +470,7 @@ trigger_26:
 trigger_100:
 	kernel_abort_animation(aa[0]);
 	aainfo[0]._active = 0;
-	if (flags[18] == 1) {
+	if (flags[9] == 1) {
 		kernel_synch(2, 0, 4, 0);
 		global[g017] = 0;
 		global[g154] = 0;
diff --git a/engines/mads/forest/rooms/room301.cpp b/engines/mads/forest/rooms/room301.cpp
index 128f17c2f65..7104dba99dd 100644
--- a/engines/mads/forest/rooms/room301.cpp
+++ b/engines/mads/forest/rooms/room301.cpp
@@ -245,11 +245,11 @@ static void room_301_init() {
 			aainfo[count]._val4 = 0;
 		}
 
-		if (previous_room != 199 && flags[30] != 3)
-			flags[30]++;
+		if (previous_room != 199 && flags[15] != 3)
+			flags[15]++;
 	}
 
-	if (flags[30] == 1)
+	if (flags[15] == 1)
 		room_301_init1();
 	else
 		room_301_init2();
@@ -260,7 +260,7 @@ static void room_301_anim1() {
 		aainfo[0]._frame = kernel_anim[aa[0]].frame;
 		int16 f = aainfo[0]._frame;
 
-		if (flags[30] == 1) {
+		if (flags[15] == 1) {
 			if (f == 2) {
 				digi_play_build(301, '_', 2, 1);
 			} else if (f == 11) {
@@ -270,12 +270,12 @@ static void room_301_anim1() {
 		}
 	}
 
-	if (flags[30] == 1 && kernel.trigger == 7) {
+	if (flags[15] == 1 && kernel.trigger == 7) {
 		aainfo[0]._frame = 12;
 		kernel_reset_animation(aa[0], 12);
 	}
 
-	if (global[player_hyperwalked] == -1 && flags[30] != 1) {
+	if (global[player_hyperwalked] == -1 && flags[15] != 1) {
 		int16 reset_frame = scratch._92 - 1;
 		aainfo[0]._frame = reset_frame;
 		kernel_reset_animation(aa[0], reset_frame);
@@ -612,7 +612,7 @@ static void room_301_daemon() {
 	case 100:
 		kernel_abort_animation(aa[0]);
 		aainfo[0]._active = 0;
-		if (flags[30] == 1) {
+		if (flags[15] == 1) {
 			kernel_synch(KERNEL_PLAYER, 0, KERNEL_NOW, 0);
 			aainfo[1]._active = -1;
 			global[g017] = 0;
diff --git a/engines/mads/forest/rooms/room303.cpp b/engines/mads/forest/rooms/room303.cpp
index 79e7f60d313..fd489e21a7d 100644
--- a/engines/mads/forest/rooms/room303.cpp
+++ b/engines/mads/forest/rooms/room303.cpp
@@ -430,11 +430,11 @@ static void room_303_init() {
 			aainfo[i]._val4 = 0;
 		}
 
-		if (previous_room != 199 && flags[34] != 3)
-			flags[34]++;
+		if (previous_room != 199 && flags[17] != 3)
+			flags[17]++;
 	}
 
-	int16 f = flags[34];
+	int16 f = flags[17];
 	if (f == 1) {
 		room_303_init1();
 	} else if (f == 2 || f == 3) {


Commit: 79a3f753435250ea1b3abcca53820a3370485447
    https://github.com/scummvm/scummvm/commit/79a3f753435250ea1b3abcca53820a3370485447
Author: fusefib (fibofuse at gmail.com)
Date: 2026-10-03T11:33:01-10:00

Commit Message:
MADS: FOREST: Use full dialog heap for popups

Fixes bugs #17255/#17256.

Changed paths:
    engines/mads/forest/menus.cpp


diff --git a/engines/mads/forest/menus.cpp b/engines/mads/forest/menus.cpp
index aded4adcedf..ee31d766ac0 100644
--- a/engines/mads/forest/menus.cpp
+++ b/engines/mads/forest/menus.cpp
@@ -109,7 +109,7 @@ static void global_alert(int status) {
 	default: return;
 	}
 
-	popup_dialog_create(game_menu_popup, 0x1000, 20);
+	popup_dialog_create(game_menu_popup, GAME_DIALOG_HEAP, 20);
 	popup_message(menu_quote(quote_id), 0x8000, -1);
 
 	if (status == SAVE_SUCCESSFUL) {
@@ -129,7 +129,7 @@ static void global_menu_save_restore(int save) {
 	PopupItem *cancel_button;
 	PopupItem *result;
 
-	popup_dialog_create(game_menu_popup, 0x1000, 20);
+	popup_dialog_create(game_menu_popup, GAME_DIALOG_HEAP, 20);
 
 	popup_message(menu_quote(save ? quote_save_title : quote_restore_title), 0x8000, -1);
 	popup_blank(4);
@@ -194,7 +194,7 @@ static void global_menu_options() {
 	box_param.menu_text_y_offset = 3;
 	box_param.menu_text_x_bonus = 0;
 
-	popup_dialog_create(game_menu_popup, 0x1000, 20);
+	popup_dialog_create(game_menu_popup, GAME_DIALOG_HEAP, 20);
 
 	popup_blank(1);
 	popup_blank(2);
@@ -258,7 +258,7 @@ static void global_menu_main() {
 	box_param.menu_text_y_offset = 3;
 	box_param.menu_text_x_bonus = 0;
 
-	popup_dialog_create(game_menu_popup, 0x1000, 20);
+	popup_dialog_create(game_menu_popup, GAME_DIALOG_HEAP, 20);
 
 	popup_blank(1);
 	popup_blank(2);


Commit: c56a8fd458f8405d649473707fcdb7c138fb6ac4
    https://github.com/scummvm/scummvm/commit/c56a8fd458f8405d649473707fcdb7c138fb6ac4
Author: fusefib (fibofuse at gmail.com)
Date: 2026-10-03T11:33:01-10:00

Commit Message:
MADS: FOREST: Replace values with constants, nonfunctional

Changed paths:
    engines/mads/forest/menus.cpp


diff --git a/engines/mads/forest/menus.cpp b/engines/mads/forest/menus.cpp
index ee31d766ac0..3569364463a 100644
--- a/engines/mads/forest/menus.cpp
+++ b/engines/mads/forest/menus.cpp
@@ -110,14 +110,14 @@ static void global_alert(int status) {
 	}
 
 	popup_dialog_create(game_menu_popup, GAME_DIALOG_HEAP, 20);
-	popup_message(menu_quote(quote_id), 0x8000, -1);
+	popup_message(menu_quote(quote_id), POPUP_CENTER, POPUP_FILL);
 
 	if (status == SAVE_SUCCESSFUL) {
 		mads_strlwr(save_game_buf);
-		popup_message(save_game_buf, 0x8000, -1);
+		popup_message(save_game_buf, POPUP_CENTER, POPUP_FILL);
 	}
 
-	popup_button(menu_quote(quote_menu_ok), 0x8000);
+	popup_button(menu_quote(quote_menu_ok), POPUP_CENTER);
 	popup_execute();
 	popup_dialog_destroy();
 }
@@ -131,17 +131,17 @@ static void global_menu_save_restore(int save) {
 
 	popup_dialog_create(game_menu_popup, GAME_DIALOG_HEAP, 20);
 
-	popup_message(menu_quote(save ? quote_save_title : quote_restore_title), 0x8000, -1);
+	popup_message(menu_quote(save ? quote_save_title : quote_restore_title), POPUP_CENTER, POPUP_FILL);
 	popup_blank(4);
 
 	save_list = popup_savelist(game_save_directory, menu_quote(quote_menu_empty),
 		99, 64, 63, 200, 10, save, game.last_save);
 
 	if (save) {
-		go_button = popup_button(menu_quote(quote_menu_save), 0x400);
-		game_menu_popup->clear_item = popup_button(menu_quote(quote_menu_clear), 0x8000);
+		go_button = popup_button(menu_quote(quote_menu_save), POPUP_BUTTON_LEFT);
+		game_menu_popup->clear_item = popup_button(menu_quote(quote_menu_clear), POPUP_CENTER);
 	} else {
-		go_button = popup_button(menu_quote(quote_menu_restore), 0x400);
+		go_button = popup_button(menu_quote(quote_menu_restore), POPUP_BUTTON_LEFT);
 	}
 	cancel_button = popup_cancel_button(menu_quote(quote_menu_cancel));
 
@@ -202,18 +202,18 @@ static void global_menu_options() {
 	int initial_music = config_file.music_flag ? 0 : 1;
 	int former_screen_fade = config_file.screen_fade;
 
-	music_item = popup_menu(menu_quote(quote_options_music), 0x8000, -1, 160, 10, 2, 40, initial_music);
+	music_item = popup_menu(menu_quote(quote_options_music), POPUP_CENTER, POPUP_FILL, 160, 10, 2, 40, initial_music);
 	popup_menu_option(music_item, menu_quote(quote_options_music_on));
 	popup_menu_option(music_item, menu_quote(quote_options_music_off));
 
 	popup_blank(1);
 
-	fade_item = popup_menu(menu_quote(quote_options_fade), 0x8000, -1, 160, 10, 3, 40, former_screen_fade);
+	fade_item = popup_menu(menu_quote(quote_options_fade), POPUP_CENTER, POPUP_FILL, 160, 10, 3, 40, former_screen_fade);
 	popup_menu_option(fade_item, menu_quote(quote_options_fade_1));
 	popup_menu_option(fade_item, menu_quote(quote_options_fade_2));
 	popup_menu_option(fade_item, menu_quote(quote_options_fade_3));
 
-	done_button   = popup_button(menu_quote(quote_menu_done), 5);
+	done_button   = popup_button(menu_quote(quote_menu_done), POPUP_LEFT);
 	cancel_button = popup_cancel_button(menu_quote(quote_menu_cancel));
 
 	popup_width_force(170);
@@ -263,13 +263,13 @@ static void global_menu_main() {
 	popup_blank(1);
 	popup_blank(2);
 
-	save_item    = popup_menu(menu_quote(quote_main_save),    0x8000, -1, 140, 0, 0, 0, 0);
+	save_item    = popup_menu(menu_quote(quote_main_save),    POPUP_CENTER, POPUP_FILL, 140, 0, 0, 0, 0);
 	popup_blank(1);
-	restore_item = popup_menu(menu_quote(quote_main_restore), 0x8000, -1, 140, 0, 0, 0, 0);
+	restore_item = popup_menu(menu_quote(quote_main_restore), POPUP_CENTER, POPUP_FILL, 140, 0, 0, 0, 0);
 	popup_blank(1);
-	resume_item  = popup_menu(menu_quote(quote_main_resume),  0x8000, -1, 140, 0, 0, 0, 0);
+	resume_item  = popup_menu(menu_quote(quote_main_resume),  POPUP_CENTER, POPUP_FILL, 140, 0, 0, 0, 0);
 	popup_blank(1);
-	exit_item    = popup_menu(menu_quote(quote_main_exit),    0x8000, -1, 140, 0, 0, 0, 0);
+	exit_item    = popup_menu(menu_quote(quote_main_exit),    POPUP_CENTER, POPUP_FILL, 140, 0, 0, 0, 0);
 
 	popup_width_force(160);
 	game_menu_popup->cancel_item = resume_item;


Commit: 0722d4eb5801233f45ada8fa3c2c1347884ef557
    https://github.com/scummvm/scummvm/commit/0722d4eb5801233f45ada8fa3c2c1347884ef557
Author: fusefib (fibofuse at gmail.com)
Date: 2026-10-03T11:33:01-10:00

Commit Message:
MADS: FOREST: Fix how displayed inventory object state is reset

Fix clearing paul_object_showing to true, which aliases object 1 and
prevents the rubber band from being added to inventory. #17259.

Changed paths:
    engines/mads/core/inter.cpp


diff --git a/engines/mads/core/inter.cpp b/engines/mads/core/inter.cpp
index ef76d0a5399..9894ed965f0 100644
--- a/engines/mads/core/inter.cpp
+++ b/engines/mads/core/inter.cpp
@@ -1929,7 +1929,7 @@ void inter_turn_off_object() {
 
 
 	if (new_room == room_id) {
-		Forest::paul_object_showing = true;
+		Forest::paul_object_showing = -1;
 	}
 
 	// will wipe out other 4 sprites


Commit: 64d6a0c6a8e02f826a30ab926c37f7ba77287aa3
    https://github.com/scummvm/scummvm/commit/64d6a0c6a8e02f826a30ab926c37f7ba77287aa3
Author: fusefib (fibofuse at gmail.com)
Date: 2026-10-03T11:33:01-10:00

Commit Message:
MADS: FOREST: Correct animation handles in room 302, nonfunctional

Changed paths:
    engines/mads/forest/rooms/room302.cpp


diff --git a/engines/mads/forest/rooms/room302.cpp b/engines/mads/forest/rooms/room302.cpp
index 4f73fb492b8..fde5630e7ab 100644
--- a/engines/mads/forest/rooms/room302.cpp
+++ b/engines/mads/forest/rooms/room302.cpp
@@ -618,8 +618,8 @@ static void room_302_daemon() {
 			if (scratch._a8 == 1) {
 				kernel_reset_animation(scratch._9a, 0);
 				kernel_reset_animation(scratch._9c, 0);
-				kernel_synch(KERNEL_ANIM, aa[scratch._9a], KERNEL_NOW, 0);
-				kernel_synch(KERNEL_ANIM, aa[scratch._9c], KERNEL_NOW, 0);
+				kernel_synch(KERNEL_ANIM, scratch._9a, KERNEL_NOW, 0);
+				kernel_synch(KERNEL_ANIM, scratch._9c, KERNEL_NOW, 0);
 				global[g133] = 1;
 				global[g143] = 1;
 				global[g131] = 0;




More information about the Scummvm-git-logs mailing list