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

dreammaster noreply at scummvm.org
Tue Aug 18 07:28:55 UTC 2026


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

Summary:
b28d8bf0d5 MADS: Change memcmp image calls to use equals(). PVS-Studio V512
85d717fd52 MADS: PHANTOM: Fix warnings. PVS-Studio V1048, V547
4c06c37afe MADS: DRAGONSPHERE: Simplify init restoring game checks. PVS-Studio V590
a530d637bc MADS: DRAGONSPHERE: Collapsing duplicate cases. PVS-Studio V1037
a87198a312 MADS: DRAGONSPHERE: Menus cleanup. PVS-Studio V547, V1048
feeece2c38 MADS: DRAGONSPHERE: Remove redundant assignments. PVS-Studio V1048
f586bb1941 MADS: DRAGONSPHERE: Removing always true if clauses. PVS-Studio V560
22f64669be MADS: DRAGONSPHERE: Removing duplicate assignments. PVS-Studio V519
70b9c87abc MADS: DRAGONSPHERE: Removing redundant flag checks. PVS-Studio V547
9fb974cc2c MADS: DRAGONSPHERE: Merged duplicate if. PVS-Studio V581
64b081a7d8 MADS: DRAGONSPHERE: Clean up missing else in room 201. PVS-Studio V646


Commit: b28d8bf0d596749d063424cc906515ed25bf81f5
    https://github.com/scummvm/scummvm/commit/b28d8bf0d596749d063424cc906515ed25bf81f5
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2026-08-18T16:34:48+10:00

Commit Message:
MADS: Change memcmp image calls to use equals(). PVS-Studio V512

Changed paths:
    engines/mads/core/player.cpp
    engines/mads/phantom/main_menu.cpp


diff --git a/engines/mads/core/player.cpp b/engines/mads/core/player.cpp
index 138401cbaa5..190ec2b9a3c 100644
--- a/engines/mads/core/player.cpp
+++ b/engines/mads/core/player.cpp
@@ -531,8 +531,7 @@ void player_set_image() {
 		new_image.depth = depth;
 		new_image.scale = (byte)scale;
 
-		if ((old_image_number >= 0) && memcmp(&new_image.segment_id, &image_list[old_image_number].segment_id,
-			sizeof(Image) - sizeof(int)) == 0) {
+		if ((old_image_number >= 0) && new_image.equals(image_list[old_image_number])) {
 			image_list[old_image_number].flags = 0;
 		} else {
 			image_list[image_marker] = new_image;
diff --git a/engines/mads/phantom/main_menu.cpp b/engines/mads/phantom/main_menu.cpp
index e39a7358931..e33b94ff55a 100644
--- a/engines/mads/phantom/main_menu.cpp
+++ b/engines/mads/phantom/main_menu.cpp
@@ -280,8 +280,7 @@ static void process_sprites() {
 
 			for (look = 0; !match && (look < (int)image_marker); look++) {
 				if (image_list[look].segment_id == image.segment_id) {
-					if (memcmp(&image_list[look].series_id,
-						&image.series_id, 9) == 0) {
+					if (image_list[look].equals(image)) {
 						image_list[look].flags = IMAGE_STATIC;
 						match = true;
 					}


Commit: 85d717fd52224bcbc848bc79e292424b7f7c8a15
    https://github.com/scummvm/scummvm/commit/85d717fd52224bcbc848bc79e292424b7f7c8a15
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2026-08-18T16:34:48+10:00

Commit Message:
MADS: PHANTOM: Fix warnings. PVS-Studio V1048, V547

Changed paths:
    engines/mads/phantom/menus.cpp
    engines/mads/phantom/rooms/room410.cpp


diff --git a/engines/mads/phantom/menus.cpp b/engines/mads/phantom/menus.cpp
index 8b48108315b..75c4ea5e71a 100644
--- a/engines/mads/phantom/menus.cpp
+++ b/engines/mads/phantom/menus.cpp
@@ -451,6 +451,7 @@ static void global_menu_options() {
 
 		case f1_key:
 		case f5_key:
+		default:
 			kernel.activate_menu = GAME_MAIN_MENU;
 			break;
 
@@ -465,10 +466,6 @@ static void global_menu_options() {
 		case f4_key:
 			kernel.activate_menu = GAME_SCORE_MENU;
 			break;
-
-		default:
-			kernel.activate_menu = GAME_MAIN_MENU;
-			break;
 		}
 	}
 
diff --git a/engines/mads/phantom/rooms/room410.cpp b/engines/mads/phantom/rooms/room410.cpp
index 62cde3d9dc7..b2782f55c2b 100644
--- a/engines/mads/phantom/rooms/room410.cpp
+++ b/engines/mads/phantom/rooms/room410.cpp
@@ -321,9 +321,7 @@ void room_410_parser() {
 
 				if ((global[flicked_1] == 5) && (global[flicked_2] == 18) &&
 					(global[flicked_3] == 9) && (global[flicked_4] == 11)) {
-					if (!global[door_in_409_is_open]) {
-						sound_play(N_DoorGong);
-					}
+					sound_play(N_DoorGong);
 				} /* a 'gong' sound if player was successfull */
 
 				if (global[flicked_1] && global[flicked_2] &&


Commit: 4c06c37afeca8e176bc5b99bbf3cccb043998137
    https://github.com/scummvm/scummvm/commit/4c06c37afeca8e176bc5b99bbf3cccb043998137
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2026-08-18T16:34:48+10:00

Commit Message:
MADS: DRAGONSPHERE: Simplify init restoring game checks. PVS-Studio V590

Changed paths:
    engines/mads/dragonsphere/rooms/room103.cpp
    engines/mads/dragonsphere/rooms/room201.cpp
    engines/mads/dragonsphere/rooms/room205.cpp
    engines/mads/dragonsphere/rooms/room206.cpp
    engines/mads/dragonsphere/rooms/room404.cpp
    engines/mads/dragonsphere/rooms/room408.cpp
    engines/mads/dragonsphere/rooms/room409.cpp
    engines/mads/dragonsphere/rooms/room410.cpp
    engines/mads/dragonsphere/rooms/room411.cpp
    engines/mads/dragonsphere/rooms/room510.cpp
    engines/mads/dragonsphere/rooms/room601.cpp
    engines/mads/dragonsphere/rooms/room603.cpp
    engines/mads/dragonsphere/rooms/room604.cpp
    engines/mads/dragonsphere/rooms/room605.cpp
    engines/mads/dragonsphere/rooms/room607.cpp
    engines/mads/dragonsphere/rooms/room609.cpp


diff --git a/engines/mads/dragonsphere/rooms/room103.cpp b/engines/mads/dragonsphere/rooms/room103.cpp
index e16465da96c..f9113b70c7d 100644
--- a/engines/mads/dragonsphere/rooms/room103.cpp
+++ b/engines/mads/dragonsphere/rooms/room103.cpp
@@ -142,7 +142,7 @@ static void room_103_init() {
 		player.y      = START_Y_ROOM_105;
 		player.facing = FACING_NORTHWEST;
 		camera_jump_to(RIGHT_HALLWAY, 0);
-	} else if (previous_room == 101 || previous_room != KERNEL_RESTORING_GAME) {
+	} else if (previous_room != KERNEL_RESTORING_GAME) {
 		seq[fx_door_102] = kernel_seq_stamp(ss[fx_door_102], false, KERNEL_FIRST);
 		kernel_seq_depth(seq[fx_door_102], 6);
 		seq[fx_door_101] = kernel_seq_stamp(ss[fx_door_101], false, KERNEL_LAST);
diff --git a/engines/mads/dragonsphere/rooms/room201.cpp b/engines/mads/dragonsphere/rooms/room201.cpp
index e90195a5080..3aac1532673 100644
--- a/engines/mads/dragonsphere/rooms/room201.cpp
+++ b/engines/mads/dragonsphere/rooms/room201.cpp
@@ -549,7 +549,7 @@ static void room_201_init() {
 		local->crossed_line = false;
 	}
 
-	if (previous_room == 120 || previous_room == 201 || previous_room != KERNEL_RESTORING_GAME) {
+	if (previous_room != KERNEL_RESTORING_GAME) {
 		local->prevent = false;
 	} else {
 		local->prevent = true;
@@ -757,7 +757,7 @@ static void room_201_init() {
 			WALK_TO_X_FROM_203, WALK_TO_Y_FROM_203, FACING_SOUTHWEST, true);
 		camera_jump_to(480, 0);  /* jump to right half */
 
-	} else if ((previous_room == 120 || previous_room == 201 || previous_room != KERNEL_RESTORING_GAME)) {
+	} else if (previous_room != KERNEL_RESTORING_GAME) {
 
 		if (global[player_persona] == PLAYER_IS_KING) {
 			if (global[king_got_stabbed] == 1) {
diff --git a/engines/mads/dragonsphere/rooms/room205.cpp b/engines/mads/dragonsphere/rooms/room205.cpp
index e776174721e..e95fe790b9c 100644
--- a/engines/mads/dragonsphere/rooms/room205.cpp
+++ b/engines/mads/dragonsphere/rooms/room205.cpp
@@ -321,7 +321,7 @@ static void room_205_init() {
 		player_walk(WALK_2_X, WALK_2_Y, 5);
 		player_walk_trigger(ROOM_205_WALK);
 
-	} else if (previous_room == 203 || previous_room != KERNEL_RESTORING_GAME) {
+	} else if (previous_room != KERNEL_RESTORING_GAME) {
 		player.x      = PLAYER_X_FROM_203;
 		player.y      = PLAYER_Y_FROM_203;
 		player.facing = FACING_NORTHEAST;
diff --git a/engines/mads/dragonsphere/rooms/room206.cpp b/engines/mads/dragonsphere/rooms/room206.cpp
index 38f54a55902..0e9fde54712 100644
--- a/engines/mads/dragonsphere/rooms/room206.cpp
+++ b/engines/mads/dragonsphere/rooms/room206.cpp
@@ -478,7 +478,7 @@ static void room_206_init() {
 		local->lady_action    = FREEZE;
 		local->anim_2_running = true;
 
-		if (previous_room == 205 || previous_room != KERNEL_RESTORING_GAME) {
+		if (previous_room != KERNEL_RESTORING_GAME) {
 			player.x      = PLAYER_X_FROM_205;
 			player.y      = PLAYER_Y_FROM_205;
 			player.facing = FACING_NORTHEAST;
diff --git a/engines/mads/dragonsphere/rooms/room404.cpp b/engines/mads/dragonsphere/rooms/room404.cpp
index eeae55644a5..1417b09156b 100644
--- a/engines/mads/dragonsphere/rooms/room404.cpp
+++ b/engines/mads/dragonsphere/rooms/room404.cpp
@@ -303,7 +303,7 @@ static void room_404_init() {
 		// WORKAROUND: Invalid line from the original commented out
 		//kernel_reset_animation(aa[25], 30);
 
-	} else if (previous_room == 120 || previous_room != KERNEL_RESTORING_GAME) {
+	} else if (previous_room != KERNEL_RESTORING_GAME) {
 		ss[fx_dune_1] = kernel_load_series(kernel_name('x', 0), false);
 		ss[fx_dune_2] = kernel_load_series(kernel_name('x', 3), false);
 		ss[fx_lean_to] = kernel_load_series(kernel_name('x', 1), false);
diff --git a/engines/mads/dragonsphere/rooms/room408.cpp b/engines/mads/dragonsphere/rooms/room408.cpp
index 72df4191252..81a4d06b218 100644
--- a/engines/mads/dragonsphere/rooms/room408.cpp
+++ b/engines/mads/dragonsphere/rooms/room408.cpp
@@ -160,7 +160,7 @@ static void room_408_init() {
 
 		global[perform_displacements] = false;
 
-	} else if (previous_room == 409 || previous_room != KERNEL_RESTORING_GAME) {
+	} else if (previous_room != KERNEL_RESTORING_GAME) {
 
 		kernel_reset_animation(aa[0], 41);
 		kernel_reset_animation(aa[1], 8);
diff --git a/engines/mads/dragonsphere/rooms/room409.cpp b/engines/mads/dragonsphere/rooms/room409.cpp
index 5062dfca195..7f5df06eb6c 100644
--- a/engines/mads/dragonsphere/rooms/room409.cpp
+++ b/engines/mads/dragonsphere/rooms/room409.cpp
@@ -478,7 +478,7 @@ static void room_409_init() {
 		local->new_x = ENTER_410_X_BOTTOM;
 		local->new_y = ENTER_410_Y_BOTTOM;
 
-	} else if (previous_room == 408 || previous_room != KERNEL_RESTORING_GAME) {
+	} else if (previous_room != KERNEL_RESTORING_GAME) {
 		aa[0] = kernel_run_animation(kernel_name('l', -1), 0);
 		kernel_reset_animation(aa[0], 36);
 		player.commands_allowed = false;
diff --git a/engines/mads/dragonsphere/rooms/room410.cpp b/engines/mads/dragonsphere/rooms/room410.cpp
index 7ce8c41e0d0..156cba04c83 100644
--- a/engines/mads/dragonsphere/rooms/room410.cpp
+++ b/engines/mads/dragonsphere/rooms/room410.cpp
@@ -154,7 +154,7 @@ static void room_410_init() {
 	global[perform_displacements] = true;
 	global[move_direction_409] = false;
 
-	if (previous_room == 409 || previous_room != KERNEL_RESTORING_GAME) {
+	if (previous_room != KERNEL_RESTORING_GAME) {
 		player.x = PLAYER_X_FROM_409;
 		player.y = PLAYER_Y_FROM_409;
 		player.facing = FACING_NORTHEAST;
diff --git a/engines/mads/dragonsphere/rooms/room411.cpp b/engines/mads/dragonsphere/rooms/room411.cpp
index b9ba7e983a8..4f26fea1468 100644
--- a/engines/mads/dragonsphere/rooms/room411.cpp
+++ b/engines/mads/dragonsphere/rooms/room411.cpp
@@ -370,7 +370,7 @@ static void room_411_init() {
 		kernel_reset_animation(aa[0], 21);
 	}
 
-	if (previous_room == 410 || previous_room != KERNEL_RESTORING_GAME) {
+	if (previous_room != KERNEL_RESTORING_GAME) {
 		player_first_walk(PLAYER_X_FROM_410, PLAYER_Y_FROM_410, FACING_EAST,
 		                  WALK_TO_X_FROM_410, WALK_TO_Y_FROM_410, FACING_EAST, true);
 	}
diff --git a/engines/mads/dragonsphere/rooms/room510.cpp b/engines/mads/dragonsphere/rooms/room510.cpp
index 0b85d3fd3da..71af7e4a337 100644
--- a/engines/mads/dragonsphere/rooms/room510.cpp
+++ b/engines/mads/dragonsphere/rooms/room510.cpp
@@ -306,7 +306,7 @@ static void room_510_init() {
 		kernel_timing_trigger(1, ROOM_510_JUMP);
 		player.commands_allowed = false;
 
-	} else if (previous_room == 509 || previous_room != KERNEL_RESTORING_GAME) {
+	} else if (previous_room != KERNEL_RESTORING_GAME) {
 		aa[0] = kernel_run_animation(kernel_name('p', 1), 0);
 		player.commands_allowed = false;
 		local->anim_0_running   = true;
diff --git a/engines/mads/dragonsphere/rooms/room601.cpp b/engines/mads/dragonsphere/rooms/room601.cpp
index 0d0ae61c70f..1e7bedab32c 100644
--- a/engines/mads/dragonsphere/rooms/room601.cpp
+++ b/engines/mads/dragonsphere/rooms/room601.cpp
@@ -852,7 +852,7 @@ static void room_601_init() {
 		player_walk(WALK_TO_X_FROM_603, WALK_TO_Y_FROM_603, FACING_SOUTH);
 		player_walk_trigger(ROOM_601_DOOR_CLOSES);
 
-	} else if (previous_room == 508 || previous_room != KERNEL_RESTORING_GAME) {
+	} else if (previous_room != KERNEL_RESTORING_GAME) {
 		player_first_walk(PLAYER_X_FROM_508, PLAYER_Y_FROM_508, FACING_EAST,
 		                  WALK_TO_X_FROM_508, WALK_TO_Y_FROM_508, FACING_EAST, true);
 	}
diff --git a/engines/mads/dragonsphere/rooms/room603.cpp b/engines/mads/dragonsphere/rooms/room603.cpp
index 6d14a8f62c1..a32afbfcb16 100644
--- a/engines/mads/dragonsphere/rooms/room603.cpp
+++ b/engines/mads/dragonsphere/rooms/room603.cpp
@@ -354,7 +354,7 @@ static void room_603_init() {
 		player_first_walk(PLAYER_X_FROM_604, PLAYER_Y_FROM_604, FACING_WEST,
 		                  WALK_TO_X_FROM_604, WALK_TO_Y_FROM_604, FACING_WEST, true);
 
-	} else if (previous_room == 601 || previous_room != KERNEL_RESTORING_GAME) {
+	} else if (previous_room != KERNEL_RESTORING_GAME) {
 		player.x      = PLAYER_X_FROM_601;
 		player.y      = PLAYER_Y_FROM_601;
 		player.facing = FACING_NORTH;
diff --git a/engines/mads/dragonsphere/rooms/room604.cpp b/engines/mads/dragonsphere/rooms/room604.cpp
index a42d54db294..ee61046505b 100644
--- a/engines/mads/dragonsphere/rooms/room604.cpp
+++ b/engines/mads/dragonsphere/rooms/room604.cpp
@@ -104,7 +104,7 @@ static void room_604_init() {
 		player_first_walk(PLAYER_X_FROM_603, PLAYER_Y_FROM_603, FACING_EAST,
 		                  WALK_TO_X_FROM_603, WALK_TO_Y_FROM_603, FACING_EAST, true);
 
-	} else if (previous_room == 605 || previous_room != KERNEL_RESTORING_GAME) {
+	} else if (previous_room != KERNEL_RESTORING_GAME) {
 		player_first_walk(PLAYER_X_FROM_605, PLAYER_Y_FROM_605, FACING_WEST,
 		                  WALK_TO_X_FROM_605, WALK_TO_Y_FROM_605, FACING_WEST, true);
 	}
diff --git a/engines/mads/dragonsphere/rooms/room605.cpp b/engines/mads/dragonsphere/rooms/room605.cpp
index f7257b711fa..a67676eaee5 100644
--- a/engines/mads/dragonsphere/rooms/room605.cpp
+++ b/engines/mads/dragonsphere/rooms/room605.cpp
@@ -478,7 +478,7 @@ static void room_605_init() {
 			player_walk_trigger(ROOM_605_RUN_ANIM);
 		}
 
-	} else if (previous_room == 604 || previous_room != KERNEL_RESTORING_GAME) {
+	} else if (previous_room != KERNEL_RESTORING_GAME) {
 		player_first_walk(PLAYER_X_FROM_604, PLAYER_Y_FROM_604, FACING_EAST,
 		                  WALK_TO_X_FROM_604, WALK_TO_Y_FROM_604, FACING_EAST, true);
 	}
diff --git a/engines/mads/dragonsphere/rooms/room607.cpp b/engines/mads/dragonsphere/rooms/room607.cpp
index f989ce39847..48ab8359fef 100644
--- a/engines/mads/dragonsphere/rooms/room607.cpp
+++ b/engines/mads/dragonsphere/rooms/room607.cpp
@@ -169,7 +169,7 @@ static void room_607_init() {
 		kernel_seq_range(seq[fx_down], KERNEL_FIRST, KERNEL_LAST);
 		kernel_seq_trigger(seq[fx_down], KERNEL_TRIGGER_EXPIRE, 0, ROOM_607_DONE_UP);
 
-	} else if (previous_room == 604 || previous_room != KERNEL_RESTORING_GAME) {
+	} else if (previous_room != KERNEL_RESTORING_GAME) {
 		player.x = PLAYER_X_FROM_606;
 		player.y = PLAYER_Y_FROM_606;
 		player.facing = FACING_NORTH;
diff --git a/engines/mads/dragonsphere/rooms/room609.cpp b/engines/mads/dragonsphere/rooms/room609.cpp
index 971c634576b..b4e3c9411ad 100644
--- a/engines/mads/dragonsphere/rooms/room609.cpp
+++ b/engines/mads/dragonsphere/rooms/room609.cpp
@@ -147,7 +147,7 @@ static void room_609_init() {
 		local->anim_1_running = true;
 		kernel_flip_hotspot(words_torch, false);
 
-	} else if (previous_room == 606 || previous_room != KERNEL_RESTORING_GAME) {
+	} else if (previous_room != KERNEL_RESTORING_GAME) {
 		if (global[torch_is_in_609]) {
 			player.x = PLAYER_X_FROM_606;
 			player.y = PLAYER_Y_FROM_606;


Commit: a530d637bcd69690acb273ee8a99973473083fcf
    https://github.com/scummvm/scummvm/commit/a530d637bcd69690acb273ee8a99973473083fcf
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2026-08-18T16:46:43+10:00

Commit Message:
MADS: DRAGONSPHERE: Collapsing duplicate cases. PVS-Studio V1037

Changed paths:
    engines/mads/dragonsphere/dragonsphere.cpp
    engines/mads/dragonsphere/menus.cpp
    engines/mads/dragonsphere/rooms/room105.cpp
    engines/mads/dragonsphere/rooms/room106.cpp
    engines/mads/dragonsphere/rooms/room205.cpp
    engines/mads/dragonsphere/rooms/room406.cpp
    engines/mads/dragonsphere/rooms/room601.cpp
    engines/mads/dragonsphere/rooms/room606.cpp
    engines/mads/dragonsphere/rooms/room613.cpp


diff --git a/engines/mads/dragonsphere/dragonsphere.cpp b/engines/mads/dragonsphere/dragonsphere.cpp
index 22a0d113363..ec8f2f6a29d 100644
--- a/engines/mads/dragonsphere/dragonsphere.cpp
+++ b/engines/mads/dragonsphere/dragonsphere.cpp
@@ -297,6 +297,7 @@ void DragonsphereEngine::global_daemon_code() {
 						switch (player.facing) {
 						case FACING_SOUTHEAST:
 						case FACING_SOUTHWEST:
+						case FACING_SOUTH:
 							how_many = imath_random(0, 3);
 							if (how_many <= 2) {
 								for (count = 0; count < imath_random(5, 7); count++) {
@@ -319,22 +320,6 @@ void DragonsphereEngine::global_daemon_code() {
 							}
 							break;
 
-						case FACING_SOUTH:
-							how_many = imath_random(0, 3);
-							if (how_many <= 2) {
-								for (count = 0; count < imath_random(5, 7); count++) {
-									player_add_stop_walker(how_many, 0);
-								}
-
-							} else {
-								player_add_stop_walker(-3, 0);
-								for (count = 0; count < imath_random(5, 7); count++) {
-									player_add_stop_walker(4, 0);
-								}
-								player_add_stop_walker(3, 0);
-							}
-							break;
-
 						case FACING_NORTH:
 							how_many = imath_random(0, 2);
 							for (count = 0; count < imath_random(5, 7); count++) {
@@ -383,6 +368,7 @@ void DragonsphereEngine::global_daemon_code() {
 
 						case FACING_NORTHEAST:
 						case FACING_NORTHWEST:
+						case FACING_NORTH:
 							how_many = imath_random(0, 2);
 							for (count = 0; count < imath_random(5, 7); count++) {
 								player_add_stop_walker(how_many, 0);
@@ -401,13 +387,6 @@ void DragonsphereEngine::global_daemon_code() {
 							}
 							break;
 
-						case FACING_NORTH:
-							how_many = imath_random(0, 2);
-							for (count = 0; count < imath_random(5, 7); count++) {
-								player_add_stop_walker(how_many, 0);
-							}
-							break;
-
 						case FACING_EAST:
 						case FACING_WEST:
 						default:
diff --git a/engines/mads/dragonsphere/menus.cpp b/engines/mads/dragonsphere/menus.cpp
index 290855ed469..9af0d793545 100644
--- a/engines/mads/dragonsphere/menus.cpp
+++ b/engines/mads/dragonsphere/menus.cpp
@@ -380,6 +380,7 @@ static void global_menu_options() {
 			break;
 
 		case f1_key:
+		case f5_key:
 			kernel.activate_menu = GAME_MAIN_MENU;
 			break;
 
@@ -395,10 +396,6 @@ static void global_menu_options() {
 			kernel.activate_menu = GAME_SCORE_MENU;
 			break;
 
-		case f5_key:
-			kernel.activate_menu = GAME_MAIN_MENU;
-			break;
-
 		default:
 			kernel.activate_menu = GAME_MAIN_MENU;
 			break;
@@ -542,6 +539,7 @@ static void global_menu_cdrom() {
 			break;
 
 		case f1_key:
+		case f5_key:
 			kernel.activate_menu = GAME_MAIN_MENU;
 			break;
 
@@ -557,10 +555,6 @@ static void global_menu_cdrom() {
 			kernel.activate_menu = GAME_SCORE_MENU;
 			break;
 
-		case f5_key:
-			kernel.activate_menu = GAME_MAIN_MENU;
-			break;
-
 		default:
 			kernel.activate_menu = GAME_MAIN_MENU;
 			break;
diff --git a/engines/mads/dragonsphere/rooms/room105.cpp b/engines/mads/dragonsphere/rooms/room105.cpp
index ee95dadd426..f985c346758 100644
--- a/engines/mads/dragonsphere/rooms/room105.cpp
+++ b/engines/mads/dragonsphere/rooms/room105.cpp
@@ -364,6 +364,7 @@ static void room_105_daemon() {
 				break;
 
 			case 57:
+			case 63:
 				if (local->new_action == SCRUB) {
 					reset_frame = 1;
 				}
@@ -378,12 +379,6 @@ static void room_105_daemon() {
 				}
 				break;
 
-			case 63:
-				if (local->new_action == SCRUB) {
-					reset_frame = 1;
-				}
-				break;
-
 			case 64:
 				/* wipebrow move - didn't check for action status so wouldn't fall */
 				/* through code. Will always go to frame 24.                       */
diff --git a/engines/mads/dragonsphere/rooms/room106.cpp b/engines/mads/dragonsphere/rooms/room106.cpp
index d7f7401cf20..b8f500e2711 100644
--- a/engines/mads/dragonsphere/rooms/room106.cpp
+++ b/engines/mads/dragonsphere/rooms/room106.cpp
@@ -750,9 +750,6 @@ static void handle_animation_a_queen() {
 			break;
 
 		case 98: /* when queen turns to walk south, send her to 131 to make her invisible */
-			a_q_reset_frame = 130;
-			break;
-
 		case 131:  /* keep queen invisible when she turns to walk south */
 			a_q_reset_frame = 130;
 			break;
diff --git a/engines/mads/dragonsphere/rooms/room205.cpp b/engines/mads/dragonsphere/rooms/room205.cpp
index e95fe790b9c..58aae06b2c1 100644
--- a/engines/mads/dragonsphere/rooms/room205.cpp
+++ b/engines/mads/dragonsphere/rooms/room205.cpp
@@ -150,9 +150,6 @@ static void handle_anim_top_slime() {
 				break;
 
 			case 17: /* end of heal */
-				top_slime_reset_frame = 26;
-				break;
-
 			case 27: /* end of invislbe */
 				top_slime_reset_frame = 26;
 				break;
diff --git a/engines/mads/dragonsphere/rooms/room406.cpp b/engines/mads/dragonsphere/rooms/room406.cpp
index 511f1ad4f3a..157d1310f39 100644
--- a/engines/mads/dragonsphere/rooms/room406.cpp
+++ b/engines/mads/dragonsphere/rooms/room406.cpp
@@ -514,6 +514,7 @@ static void handle_animation_pid() {
 
 		case 61:
 		case 78:
+		case 56:
 			conv_release();
 			break;
 
@@ -550,10 +551,6 @@ static void handle_animation_pid() {
 			global[prizes_owed_to_player] = 0;
 			break;
 
-		case 56:
-			conv_release();
-			break;
-
 		case 57:
 			if (local->pid_action == TAKE_DRINK) {
 				pid_reset_frame = 56;
diff --git a/engines/mads/dragonsphere/rooms/room601.cpp b/engines/mads/dragonsphere/rooms/room601.cpp
index 1e7bedab32c..49a4228da83 100644
--- a/engines/mads/dragonsphere/rooms/room601.cpp
+++ b/engines/mads/dragonsphere/rooms/room601.cpp
@@ -1248,6 +1248,7 @@ static void room_601_daemon() {
 		break;
 
 	case 23:
+	case 33:
 		conv_release();
 		break;
 
@@ -1348,10 +1349,6 @@ static void room_601_daemon() {
 		clear_all();
 		local->vine_4_action = TALK;
 		break;
-
-	case 33:
-		conv_release();
-		break;
 	}
 
 	if (kernel.trigger == ROOM_601_DOOR_OPENS) {
diff --git a/engines/mads/dragonsphere/rooms/room606.cpp b/engines/mads/dragonsphere/rooms/room606.cpp
index 249df7aae9e..b1eba9c455b 100644
--- a/engines/mads/dragonsphere/rooms/room606.cpp
+++ b/engines/mads/dragonsphere/rooms/room606.cpp
@@ -244,9 +244,6 @@ static void handle_anim_up() {
 
 		switch (local->up_frame) {
 		case 290:
-			camera_pan_to(&camera_y, picture_view_y - 155);
-			break;
-
 		case 81:
 			camera_pan_to(&camera_y, picture_view_y - 155);
 			break;
diff --git a/engines/mads/dragonsphere/rooms/room613.cpp b/engines/mads/dragonsphere/rooms/room613.cpp
index 9953c3a29b5..399879950bd 100644
--- a/engines/mads/dragonsphere/rooms/room613.cpp
+++ b/engines/mads/dragonsphere/rooms/room613.cpp
@@ -251,11 +251,6 @@ static void room_613_daemon() {
 
 	switch (kernel.trigger) {
 	case 1:
-		player.x = local->old_x;
-		player.y = local->old_y;
-		new_room = 606;
-		break;
-
 	case 10:
 		player.x = local->old_x;
 		player.y = local->old_y;


Commit: a87198a3124baa8e77e4eac4ab0da67c7cac9e68
    https://github.com/scummvm/scummvm/commit/a87198a3124baa8e77e4eac4ab0da67c7cac9e68
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2026-08-18T16:55:22+10:00

Commit Message:
MADS: DRAGONSPHERE: Menus cleanup. PVS-Studio V547, V1048

Changed paths:
    engines/mads/dragonsphere/main_menu.cpp
    engines/mads/dragonsphere/menus.cpp


diff --git a/engines/mads/dragonsphere/main_menu.cpp b/engines/mads/dragonsphere/main_menu.cpp
index 41ff16c21c2..d648fd0e230 100644
--- a/engines/mads/dragonsphere/main_menu.cpp
+++ b/engines/mads/dragonsphere/main_menu.cpp
@@ -166,7 +166,7 @@ static void start_series() {
 		if (handle < 0) goto done;
 
 		menu_item[count].handle = handle;
-		menu_item[count].active = count != 6;	// Quotes button was never implemented
+		menu_item[count].active = true;
 		menu_item[count].status = 0;
 	}
 
@@ -276,8 +276,7 @@ static void process_sprites() {
 			image.depth = 0;
 			image.scale = 100;
 
-			match = !(sprite <= MENU_HIGH_SPRITE);
-
+			match = false;
 			for (look = 0; !match && (look < (int)image_marker); look++) {
 				if (image_list[look].segment_id == image.segment_id) {
 					if (image_list[look].equals(image)) {
diff --git a/engines/mads/dragonsphere/menus.cpp b/engines/mads/dragonsphere/menus.cpp
index 9af0d793545..45128213695 100644
--- a/engines/mads/dragonsphere/menus.cpp
+++ b/engines/mads/dragonsphere/menus.cpp
@@ -257,9 +257,8 @@ static void global_menu_save_restore(int save) {
 			status = global_restore(selection);
 		}
 
-		if (status > 0)
-			// Dummy name to signal save/load went ok
-			Common::strcpy_s(save_game_buf, "OK");
+		// Dummy name to signal save/load went ok
+		Common::strcpy_s(save_game_buf, "OK");
 	}
 
 	if (status >= 0) {
@@ -381,6 +380,7 @@ static void global_menu_options() {
 
 		case f1_key:
 		case f5_key:
+		default:
 			kernel.activate_menu = GAME_MAIN_MENU;
 			break;
 
@@ -395,10 +395,6 @@ static void global_menu_options() {
 		case f4_key:
 			kernel.activate_menu = GAME_SCORE_MENU;
 			break;
-
-		default:
-			kernel.activate_menu = GAME_MAIN_MENU;
-			break;
 		}
 	}
 
@@ -540,6 +536,7 @@ static void global_menu_cdrom() {
 
 		case f1_key:
 		case f5_key:
+		default:
 			kernel.activate_menu = GAME_MAIN_MENU;
 			break;
 
@@ -554,10 +551,6 @@ static void global_menu_cdrom() {
 		case f4_key:
 			kernel.activate_menu = GAME_SCORE_MENU;
 			break;
-
-		default:
-			kernel.activate_menu = GAME_MAIN_MENU;
-			break;
 		}
 	}
 


Commit: feeece2c38d144928fc2ac49112bdffd1d543bb7
    https://github.com/scummvm/scummvm/commit/feeece2c38d144928fc2ac49112bdffd1d543bb7
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2026-08-18T17:04:46+10:00

Commit Message:
MADS: DRAGONSPHERE: Remove redundant assignments. PVS-Studio V1048

Changed paths:
    engines/mads/dragonsphere/rooms/room104.cpp
    engines/mads/dragonsphere/rooms/room106.cpp
    engines/mads/dragonsphere/rooms/room113.cpp
    engines/mads/dragonsphere/rooms/room114.cpp
    engines/mads/dragonsphere/rooms/room405.cpp
    engines/mads/dragonsphere/rooms/room409.cpp
    engines/mads/dragonsphere/rooms/room502.cpp
    engines/mads/dragonsphere/rooms/room504.cpp
    engines/mads/dragonsphere/rooms/room506.cpp
    engines/mads/dragonsphere/rooms/room508.cpp
    engines/mads/dragonsphere/rooms/room510.cpp
    engines/mads/dragonsphere/rooms/room601.cpp
    engines/mads/dragonsphere/rooms/room605.cpp
    engines/mads/dragonsphere/rooms/room612.cpp
    engines/mads/dragonsphere/rooms/room614.cpp


diff --git a/engines/mads/dragonsphere/rooms/room104.cpp b/engines/mads/dragonsphere/rooms/room104.cpp
index 3e72fca25dd..6196be56f81 100644
--- a/engines/mads/dragonsphere/rooms/room104.cpp
+++ b/engines/mads/dragonsphere/rooms/room104.cpp
@@ -909,7 +909,6 @@ static void handle_animation_mac_2() {
 			kernel_abort_animation(aa[1]);
 			matte_deallocate_series(ss[fx_e3], true);
 			local->anim_5_running = false;
-			mac_reset_frame = -1;
 
 			text_show(10426);
 			sound_play(N_QueenMother);
diff --git a/engines/mads/dragonsphere/rooms/room106.cpp b/engines/mads/dragonsphere/rooms/room106.cpp
index b8f500e2711..4b876b1877c 100644
--- a/engines/mads/dragonsphere/rooms/room106.cpp
+++ b/engines/mads/dragonsphere/rooms/room106.cpp
@@ -491,7 +491,6 @@ static void handle_animation_mac() {
 			kernel_abort_animation(aa[0]);
 			player.commands_allowed = true;
 			local->anim_0_running = false;
-			mac_reset_frame = -1;
 			break;
 
 		case 115:
diff --git a/engines/mads/dragonsphere/rooms/room113.cpp b/engines/mads/dragonsphere/rooms/room113.cpp
index 56bc501ea34..ba50fc79fba 100644
--- a/engines/mads/dragonsphere/rooms/room113.cpp
+++ b/engines/mads/dragonsphere/rooms/room113.cpp
@@ -338,7 +338,6 @@ static void handle_animation_seal() {
 			player.walker_visible = true;
 			kernel_abort_animation(aa[0]);
 			kernel_synch(KERNEL_PLAYER, 0, KERNEL_NOW, 0);
-			seal_reset_frame = -1;
 			local->side_of_room = LEFT_SIDE;
 			player.commands_allowed = true;
 			local->anim_0_running = false;
@@ -353,7 +352,6 @@ static void handle_animation_seal() {
 			sound_play(N_UnderGroundMus);
 			kernel_abort_animation(aa[0]);
 			kernel_synch(KERNEL_PLAYER, 0, KERNEL_NOW, 0);
-			seal_reset_frame = -1;
 			local->side_of_room = RIGHT_SIDE;
 			player.commands_allowed = true;
 			local->anim_0_running = false;
diff --git a/engines/mads/dragonsphere/rooms/room114.cpp b/engines/mads/dragonsphere/rooms/room114.cpp
index a8bd36cd62b..4901bcb9903 100644
--- a/engines/mads/dragonsphere/rooms/room114.cpp
+++ b/engines/mads/dragonsphere/rooms/room114.cpp
@@ -221,7 +221,6 @@ static void handle_animation_stairway() {
 				if (!global[statue_is_on_stairway_114]) {
 					kernel_abort_animation(aa[0]);
 					aa[1] = kernel_run_animation(kernel_name('d', 2), 0);
-					stairway_reset_frame = -1;
 					local->anim_0_running = false;
 					local->anim_1_running = true;
 					kernel_reset_animation(aa[1], 60);
diff --git a/engines/mads/dragonsphere/rooms/room405.cpp b/engines/mads/dragonsphere/rooms/room405.cpp
index f4a1fbe0e22..a9f7be39b21 100644
--- a/engines/mads/dragonsphere/rooms/room405.cpp
+++ b/engines/mads/dragonsphere/rooms/room405.cpp
@@ -232,7 +232,6 @@ static void handle_animation_king_tent() {
 
 			case LEAVE:
 				local->anim_1_running   = false;
-				king_tent_reset_frame   = -1;
 				player.walker_visible   = true;
 				player.commands_allowed = true;
 				king_tent_reset_frame   = 19;
@@ -274,7 +273,6 @@ static void handle_animation_pid_tent() {
 
 			case LEAVE:
 				local->anim_2_running   = false;
-				pid_tent_reset_frame    = -1;
 				player.walker_visible   = true;
 				player.commands_allowed = true;
 				pid_tent_reset_frame    = 19;
diff --git a/engines/mads/dragonsphere/rooms/room409.cpp b/engines/mads/dragonsphere/rooms/room409.cpp
index 7f5df06eb6c..5795f485257 100644
--- a/engines/mads/dragonsphere/rooms/room409.cpp
+++ b/engines/mads/dragonsphere/rooms/room409.cpp
@@ -179,9 +179,7 @@ static void which_pillar_409(int *it, int *new_x, int *new_y, int *adjoining) {
 		}
 
 	} else if (*adjoining == 1) {
-		if ((*it == 2) || (*it == 6)) {
-			*adjoining = true;
-		} else {
+		if (!((*it == 2) || (*it == 6))) {
 			*adjoining = false;
 		}
 
diff --git a/engines/mads/dragonsphere/rooms/room502.cpp b/engines/mads/dragonsphere/rooms/room502.cpp
index 6fa1483dc4c..8daee245fd8 100644
--- a/engines/mads/dragonsphere/rooms/room502.cpp
+++ b/engines/mads/dragonsphere/rooms/room502.cpp
@@ -290,7 +290,6 @@ static void handle_animation_lani_0() {
 
 			local->anim_0_running         = false;
 			local->anim_1_running         = true;
-			lani_reset_frame              = -1;
 			player.commands_allowed       = true;
 			local->lani_location          = AGAINST_ROCK;
 			global[done_talking_lani_502] = true;
@@ -356,8 +355,6 @@ static void handle_animation_lani_0() {
 				if (local->lani_talk_count > 17) {
 					lani_reset_frame       = imath_random(101, 102);
 					local->lani_talk_count = 0;
-				} else {
-					lani_reset_frame = 101;
 				}
 				break;
 
diff --git a/engines/mads/dragonsphere/rooms/room504.cpp b/engines/mads/dragonsphere/rooms/room504.cpp
index 96d2711e407..95b19a4b799 100644
--- a/engines/mads/dragonsphere/rooms/room504.cpp
+++ b/engines/mads/dragonsphere/rooms/room504.cpp
@@ -535,7 +535,6 @@ static void handle_animation_tom_poking() {
 				local->tom_talk_action = TOM_TALK;
 				local->anim_3_running  = true;
 				local->anim_1_running  = false;
-				poking_reset_frame     = -1;
 				break;
 
 			default:
@@ -586,7 +585,6 @@ static void handle_animation_tom_poking() {
 
 					kernel_abort_animation(aa[1]);
 					local->anim_1_running  = false;
-					poking_reset_frame     = -1;
 					local->ready_to_heal   = false;
 					player.walker_visible  = false;
 					local->lani_pid_action = PID_HEAL;
@@ -779,7 +777,6 @@ static void handle_animation_tom_talk() {
 				local->poking_action  = TOM_SHUT_UP;
 				local->anim_3_running = true;
 				local->anim_4_running = false;
-				tom_talk_reset_frame  = -1;
 				break;
 			}
 			break;
diff --git a/engines/mads/dragonsphere/rooms/room506.cpp b/engines/mads/dragonsphere/rooms/room506.cpp
index efb852189fd..7a6c8d37a62 100644
--- a/engines/mads/dragonsphere/rooms/room506.cpp
+++ b/engines/mads/dragonsphere/rooms/room506.cpp
@@ -343,7 +343,6 @@ static void handle_animation_king() {
 				kernel_reset_animation(aa[1], 106);
 				local->anim_3_running = false;
 				local->anim_1_running = true;
-				king_reset_frame      = -1;
 				break;
 
 			case KING_CLIMB_UP:
@@ -352,7 +351,6 @@ static void handle_animation_king() {
 				kernel_synch(KERNEL_ANIM, aa[2], KERNEL_NOW, 0);
 				local->anim_3_running = false;
 				local->anim_2_running = true;
-				king_reset_frame      = -1;
 				break;
 
 			case KING_TALK:
diff --git a/engines/mads/dragonsphere/rooms/room508.cpp b/engines/mads/dragonsphere/rooms/room508.cpp
index 44e79611be3..634715b6189 100644
--- a/engines/mads/dragonsphere/rooms/room508.cpp
+++ b/engines/mads/dragonsphere/rooms/room508.cpp
@@ -250,7 +250,6 @@ static void handle_animation_beast() {
 				}
 
 			} else {
-				beast_reset_frame     = -1;
 				local->anim_1_running = false;
 				local->activate_timer = false;
 				kernel_abort_animation(aa[1]);
diff --git a/engines/mads/dragonsphere/rooms/room510.cpp b/engines/mads/dragonsphere/rooms/room510.cpp
index 71af7e4a337..4655ed0cd54 100644
--- a/engines/mads/dragonsphere/rooms/room510.cpp
+++ b/engines/mads/dragonsphere/rooms/room510.cpp
@@ -443,9 +443,7 @@ static void which_pillar(int *it, int *new_x, int *new_y, int *adjoining) {
 		}
 
 	} else if (*adjoining == 1) {
-		if ((*it == 2) || (*it == 6)) {
-			*adjoining = true;
-		} else {
+		if (!((*it == 2) || (*it == 6))) {
 			*adjoining = false;
 		}
 
diff --git a/engines/mads/dragonsphere/rooms/room601.cpp b/engines/mads/dragonsphere/rooms/room601.cpp
index 49a4228da83..15dd01fe2d8 100644
--- a/engines/mads/dragonsphere/rooms/room601.cpp
+++ b/engines/mads/dragonsphere/rooms/room601.cpp
@@ -279,7 +279,6 @@ static void handle_animation_king_1() {
 				global[vine_will_grab] = false;
 				global[player_score]  += 3;
 				local->anim_6_running  = true;
-				king_1_reset_frame     = -1;
 				aa[6]                  = kernel_run_animation(kernel_name('v', 3), 0);
 				kernel_synch(KERNEL_ANIM, aa[6], KERNEL_NOW, 0);
 				kernel_reset_animation(aa[6], 18);
@@ -291,7 +290,6 @@ static void handle_animation_king_1() {
 				local->anim_1_running = false;
 				aa[6]                 = kernel_run_animation(kernel_name('v', 3), 0);
 				local->anim_6_running = true;
-				king_1_reset_frame    = -1;
 				kernel_synch(KERNEL_ANIM, aa[6], KERNEL_NOW, 0);
 				break;
 
diff --git a/engines/mads/dragonsphere/rooms/room605.cpp b/engines/mads/dragonsphere/rooms/room605.cpp
index a67676eaee5..8e612d3a005 100644
--- a/engines/mads/dragonsphere/rooms/room605.cpp
+++ b/engines/mads/dragonsphere/rooms/room605.cpp
@@ -276,7 +276,6 @@ static void handle_animation_pid() {
 		case 48:
 			kernel_abort_animation(aa[2]);
 			local->anim_2_running = false;
-			pid_reset_frame       = -1;
 
 			if (player_said_2(take_magic_from, rope)) {
 				player.walker_visible = true;
diff --git a/engines/mads/dragonsphere/rooms/room612.cpp b/engines/mads/dragonsphere/rooms/room612.cpp
index e3e04384ba5..db7133c2ce1 100644
--- a/engines/mads/dragonsphere/rooms/room612.cpp
+++ b/engines/mads/dragonsphere/rooms/room612.cpp
@@ -204,7 +204,6 @@ static void handle_animation_tele() {
 
 		case 86:  /* end of walking out of water */
 			kernel_abort_animation(aa[0]);
-			tele_reset_frame = -1;
 			kernel_synch(KERNEL_PLAYER, 0, KERNEL_NOW, 0);
 			player.walker_visible = true;
 			player.commands_allowed = true;
diff --git a/engines/mads/dragonsphere/rooms/room614.cpp b/engines/mads/dragonsphere/rooms/room614.cpp
index 3be585ae872..73d9c1910c7 100644
--- a/engines/mads/dragonsphere/rooms/room614.cpp
+++ b/engines/mads/dragonsphere/rooms/room614.cpp
@@ -490,7 +490,6 @@ static void handle_animation_pid_float() {
 				local->anim_2_running = false;
 				local->anim_3_running = false;
 				local->anim_7_running = true;
-				pid_float_reset_frame = -1;
 				break;
 
 			case DIE:


Commit: f586bb19413d508a8d92ed8dd727372de30e448c
    https://github.com/scummvm/scummvm/commit/f586bb19413d508a8d92ed8dd727372de30e448c
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2026-08-18T17:12:41+10:00

Commit Message:
MADS: DRAGONSPHERE: Removing always true if clauses. PVS-Studio V560

Changed paths:
    engines/mads/dragonsphere/rooms/room105.cpp
    engines/mads/dragonsphere/rooms/room110.cpp
    engines/mads/dragonsphere/rooms/room201.cpp
    engines/mads/dragonsphere/rooms/room206.cpp
    engines/mads/dragonsphere/rooms/room504.cpp
    engines/mads/dragonsphere/rooms/room605.cpp


diff --git a/engines/mads/dragonsphere/rooms/room105.cpp b/engines/mads/dragonsphere/rooms/room105.cpp
index f985c346758..b13df8d2ff2 100644
--- a/engines/mads/dragonsphere/rooms/room105.cpp
+++ b/engines/mads/dragonsphere/rooms/room105.cpp
@@ -222,8 +222,7 @@ static void room_105_get_random() {
 		local->new_action = SCRUB;
 		local->good_number = true;
 
-	} else if ((random > RANDOM_DIP_ALLOWED_LOW) &&
-		(random < RANDOM_DIP_ALLOWED_HIGH) && (local->last_action != DIP)) {
+	} else if ((random < RANDOM_DIP_ALLOWED_HIGH) && (local->last_action != DIP)) {
 		local->new_action = DIP;
 		local->good_number = true;
 
diff --git a/engines/mads/dragonsphere/rooms/room110.cpp b/engines/mads/dragonsphere/rooms/room110.cpp
index c66a46a29bd..80045f7ce36 100644
--- a/engines/mads/dragonsphere/rooms/room110.cpp
+++ b/engines/mads/dragonsphere/rooms/room110.cpp
@@ -837,7 +837,7 @@ static void room_110_get_random_slathan() {
 		local->new_action[1] = CONV14_SIT;
 		local->good_number[1] = true;
 	} else {
-		if (random > RANDOM_SLATHAN_SIT_ALLOWED && random <= RANDOM_SLATHAN_TOSS_ALLOWED) {
+		if (random <= RANDOM_SLATHAN_TOSS_ALLOWED) {
 			if (local->last_action[1] != CONV14_ROCK_TOSS && local->last_action[1] != CONV14_TOSS_AGAIN) {
 				local->new_action[1] = CONV14_ROCK_TOSS;
 			} else {
@@ -952,17 +952,17 @@ static void room_110_soptus_noone_talking() {
 		local->new_action[2] = CONV9_STAND_FACE_IN;
 		local->good_number[2] = true;
 	} else {
-		if (random > RANDOM_SOPTUS_STAND_FACE_IN && random <= RANDOM_SOPTUS_SHOW_FACE_HIGH) {
+		if (random <= RANDOM_SOPTUS_SHOW_FACE_HIGH) {
 			local->new_action[2] = CONV9_STAND_SHOW_FACE;
 			local->good_number[2] = true;
 		} else {
-			if (random > RANDOM_SOPTUS_SHOW_FACE_HIGH && random <= RANDOM_SOPTUS_REACH_HIGH) {
+			if (random <= RANDOM_SOPTUS_REACH_HIGH) {
 				if (local->last_action[2] != CONV9_REACH) {
 					local->new_action[2] = CONV9_REACH;
 					local->good_number[2] = true;
 				}
 			} else {
-				if (random > RANDOM_SOPTUS_REACH_HIGH && random <= RANDOM_SOPTUS_PEER_HIGH) {
+				if (random <= RANDOM_SOPTUS_PEER_HIGH) {
 					if (local->last_action[2] != CONV9_PEER) {
 						local->new_action[2] = CONV9_PEER;
 						local->good_number[2] = true;
@@ -1022,12 +1022,12 @@ static void room_110_merchant_random_moves() {
 	if (random <= RANDOM_MERCHANT_STAND) {
 		local->new_action[3] = CONV6_STAND;
 	} else {
-		if (random > RANDOM_MERCHANT_STAND && random <= RANDOM_MERCHANT_BEND_OVER) {
+		if (random <= RANDOM_MERCHANT_BEND_OVER) {
 			if (local->last_action[3] != CONV6_BEND_OVER) {
 				local->new_action[3] = CONV6_BEND_OVER;
 			}
 		} else {
-			if (random > RANDOM_MERCHANT_BEND_OVER && random <= RANDOM_MERCHANT_CLEAN_COUNTER_1) {
+			if (random <= RANDOM_MERCHANT_CLEAN_COUNTER_1) {
 				local->new_action[3] = CONV6_CLEAN_COUNTER_1;
 			} else {
 				if (random > RANDOM_MERCHANT_REACH && random <= RANDOM_MERCHANT_CLEAN_COUNTER_2) {
diff --git a/engines/mads/dragonsphere/rooms/room201.cpp b/engines/mads/dragonsphere/rooms/room201.cpp
index 3aac1532673..907fb58adc8 100644
--- a/engines/mads/dragonsphere/rooms/room201.cpp
+++ b/engines/mads/dragonsphere/rooms/room201.cpp
@@ -2012,7 +2012,7 @@ static void room_201_pre_parser() {
 				}
 
 			} else {
-				if (global[player_persona] == PLAYER_IS_KING && !local->activate_timer) {
+				if (!local->activate_timer) {
 					player_walk(WALK_TO_X_FROM_120, WALK_TO_Y_FROM_120, FACING_NORTHEAST);
 
 				} else {
diff --git a/engines/mads/dragonsphere/rooms/room206.cpp b/engines/mads/dragonsphere/rooms/room206.cpp
index 0e9fde54712..f010af30545 100644
--- a/engines/mads/dragonsphere/rooms/room206.cpp
+++ b/engines/mads/dragonsphere/rooms/room206.cpp
@@ -696,7 +696,7 @@ static void room_206_parser() {
 
 	if (player_said_1(shack)) {
 		if ((inter_point_x < 182) ||
-		   (inter_point_x > 166 && inter_point_y < 54)) {
+		   (inter_point_y < 54)) {
 			text_show(20618);
 			goto handled;
 		}
diff --git a/engines/mads/dragonsphere/rooms/room504.cpp b/engines/mads/dragonsphere/rooms/room504.cpp
index 95b19a4b799..2da7a7e593c 100644
--- a/engines/mads/dragonsphere/rooms/room504.cpp
+++ b/engines/mads/dragonsphere/rooms/room504.cpp
@@ -1884,8 +1884,7 @@ static void room_504_parser() {
 				player.command_ready = false;
 				return;
 
-			} else if (global[said_poem_in_504] && global[put_bundle_on_llanie_504] &&
-			           global[llanie_status] != IS_SAVED) {
+			} else if (global[llanie_status] != IS_SAVED) {
 				text_show(50437);
 				player.command_ready = false;
 				return;
diff --git a/engines/mads/dragonsphere/rooms/room605.cpp b/engines/mads/dragonsphere/rooms/room605.cpp
index 8e612d3a005..4cd297f8731 100644
--- a/engines/mads/dragonsphere/rooms/room605.cpp
+++ b/engines/mads/dragonsphere/rooms/room605.cpp
@@ -1174,8 +1174,7 @@ static void room_605_parser() {
 			    game.difficulty == HARD_MODE) {
 				text_show(60551);
 
-			} else if ((global[object_is_in_freezer_605] != NEVER_USED_FREEZER) &&
-			           (game.difficulty == EASY_MODE)) {
+			} else if (game.difficulty == EASY_MODE) {
 				text_show(60554);
 			}
 		}
@@ -1240,9 +1239,7 @@ static void room_605_parser() {
 			} else if (last_removed == dead_rat) {
 				text_show(60556);
 
-			} else if (last_removed != bone && last_removed != fruit && last_removed != bottle_of_flies &&
-			           last_removed != feathers && last_removed != dead_rat && last_removed != partly_built_bundle &&
-			           last_removed != dates && last_removed != tentacle_parts) {
+			} else {
 				text_show(60552);
 			}
 


Commit: 22f64669be1e4a8733fcd25317cfd13374302c97
    https://github.com/scummvm/scummvm/commit/22f64669be1e4a8733fcd25317cfd13374302c97
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2026-08-18T17:15:02+10:00

Commit Message:
MADS: DRAGONSPHERE: Removing duplicate assignments. PVS-Studio V519

Changed paths:
    engines/mads/dragonsphere/rooms/room407.cpp


diff --git a/engines/mads/dragonsphere/rooms/room407.cpp b/engines/mads/dragonsphere/rooms/room407.cpp
index 6b871d3cdd9..9466ee105c3 100644
--- a/engines/mads/dragonsphere/rooms/room407.cpp
+++ b/engines/mads/dragonsphere/rooms/room407.cpp
@@ -204,8 +204,6 @@ static void room_407_init() {
 		if (object[soptus_soporific].location == 406) local->stuff_to_give[4] = CAN_GIVE; else local->stuff_to_give[4] = NOT_THERE;
 
 		local->var_to_conv = 0;
-		local->his_score_int = 0;
-		local->my_score_int = 0;
 		local->number_of_spins = 0;
 		local->whos_turn = MY_TURN;
 		local->num_of_red = 12;


Commit: 70b9c87abcd843effd2d1d81ae35ed649bc589f5
    https://github.com/scummvm/scummvm/commit/70b9c87abcd843effd2d1d81ae35ed649bc589f5
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2026-08-18T17:21:57+10:00

Commit Message:
MADS: DRAGONSPHERE: Removing redundant flag checks. PVS-Studio V547

Changed paths:
    engines/mads/dragonsphere/rooms/room110.cpp
    engines/mads/dragonsphere/rooms/room408.cpp
    engines/mads/dragonsphere/rooms/room504.cpp
    engines/mads/dragonsphere/rooms/room508.cpp
    engines/mads/dragonsphere/rooms/room509.cpp
    engines/mads/dragonsphere/rooms/room614.cpp


diff --git a/engines/mads/dragonsphere/rooms/room110.cpp b/engines/mads/dragonsphere/rooms/room110.cpp
index 80045f7ce36..b6a17bdedce 100644
--- a/engines/mads/dragonsphere/rooms/room110.cpp
+++ b/engines/mads/dragonsphere/rooms/room110.cpp
@@ -1773,15 +1773,12 @@ static void room_110_daemon() {
 }
 
 static void handle_conv_guard_king() {
-	int you_trig_flag = false;
-
 	if (kernel.trigger == ROOM_110_YOU_TALK) {
 		local->guard_king_action = CONV7_TALK;
 	}
 
-	if (!you_trig_flag) {
-		conv_you_trigger(ROOM_110_YOU_TALK);
-	} /* if you_trig_flag == true, then a you trigger is called from above, not here. */
+	/* !you_trig_flag */
+	conv_you_trigger(ROOM_110_YOU_TALK);
 
 	local->guard_king_talk_count = 0;
 }
diff --git a/engines/mads/dragonsphere/rooms/room408.cpp b/engines/mads/dragonsphere/rooms/room408.cpp
index 81a4d06b218..3c5de3b45e8 100644
--- a/engines/mads/dragonsphere/rooms/room408.cpp
+++ b/engines/mads/dragonsphere/rooms/room408.cpp
@@ -405,9 +405,6 @@ static void room_408_daemon() {
 }
 
 static void process_conv_pid() {
-	int you_trig_flag = false;
-	int me_trig_flag = false;
-
 	if (player_verb == conv046_exit_b_b) {
 		*conv_my_next_start = conv046_advicelp;
 		conv_abort();
@@ -439,13 +436,11 @@ static void process_conv_pid() {
 		local->shaman_1_action = SHUT_UP;
 	}
 
-	if (!you_trig_flag) {
-		conv_you_trigger(ROOM_408_YOU_TALK);
-	} /* if you_trig_flag == true, then a you trigger is called from above, not here. */
+	/* !you_trig_flag */
+	conv_you_trigger(ROOM_408_YOU_TALK);
 
-	if (!me_trig_flag) {
-		conv_me_trigger(ROOM_408_ME_TALK);
-	} /* if me_trig_flag == true, then a me trigger is called from above, not here. */
+	/* !me_trig_flag */
+	conv_me_trigger(ROOM_408_ME_TALK);
 
 	local->shaman_1_talk_count = 0;
 }
diff --git a/engines/mads/dragonsphere/rooms/room504.cpp b/engines/mads/dragonsphere/rooms/room504.cpp
index 2da7a7e593c..43e2a5aa4b4 100644
--- a/engines/mads/dragonsphere/rooms/room504.cpp
+++ b/engines/mads/dragonsphere/rooms/room504.cpp
@@ -1472,9 +1472,6 @@ static void process_conv_lani_pid() {
 }
 
 static void process_conv_king() {
-	int you_trig_flag = false;
-	int me_trig_flag  = false;
-
 	if (player_verb == conv026_exit_b_b) {
 		if (local->pid_is_kneeling) {
 			local->lani_pid_action = BOTH_SHUT_UP;
@@ -1493,13 +1490,11 @@ static void process_conv_king() {
 		local->poking_action = TOM_SHUT_UP;
 	}
 
-	if (!you_trig_flag) {
-		conv_you_trigger(ROOM_504_YOU_TALK);
-	}
+	/* !you_trig_flag */
+	conv_you_trigger(ROOM_504_YOU_TALK);
 
-	if (!me_trig_flag) {
-		conv_me_trigger(ROOM_504_ME_TALK);
-	}
+	/* !me_trig_flag */
+	conv_me_trigger(ROOM_504_ME_TALK);
 
 	local->poking_talk_count = 0;
 }
diff --git a/engines/mads/dragonsphere/rooms/room508.cpp b/engines/mads/dragonsphere/rooms/room508.cpp
index 634715b6189..49fd6c3d4e6 100644
--- a/engines/mads/dragonsphere/rooms/room508.cpp
+++ b/engines/mads/dragonsphere/rooms/room508.cpp
@@ -638,8 +638,6 @@ static void room_508_daemon() {
 }
 
 static void process_conv_lani() {
-	int you_trig_flag = false;
-
 	if (player_verb == conv037_next_b_b) {
 		local->beast_action = BEAST_WAIT;
 		sound_play(N_Battle);
@@ -658,9 +656,8 @@ static void process_conv_lani() {
 		local->lani_action = LANI_TALK;
 	}
 
-	if (!you_trig_flag) {
-		conv_you_trigger(ROOM_508_YOU_TALK);
-	}
+	/* !you_trig_flag */
+	conv_you_trigger(ROOM_508_YOU_TALK);
 
 	local->lani_count = 0;
 }
diff --git a/engines/mads/dragonsphere/rooms/room509.cpp b/engines/mads/dragonsphere/rooms/room509.cpp
index 803a505a9d3..778b8434275 100644
--- a/engines/mads/dragonsphere/rooms/room509.cpp
+++ b/engines/mads/dragonsphere/rooms/room509.cpp
@@ -376,9 +376,6 @@ static void room_509_daemon() {
 }
 
 static void process_conv_shak_in_way() {
-	int you_trig_flag = false;
-	int me_trig_flag  = false;
-
 	if (kernel.trigger == ROOM_509_YOU_TALK) {
 		local->shak_action = SHAK_TALK;
 	}
@@ -387,21 +384,16 @@ static void process_conv_shak_in_way() {
 		local->shak_action = SHAK_SHUT_UP;
 	}
 
-	if (!you_trig_flag) {
-		conv_you_trigger(ROOM_509_YOU_TALK);
-	}
+	/* !you_trig_flag */
+	conv_you_trigger(ROOM_509_YOU_TALK);
 
-	if (!me_trig_flag) {
-		conv_me_trigger(ROOM_509_ME_TALK);
-	}
+	/* !me_trig_flag */
+	conv_me_trigger(ROOM_509_ME_TALK);
 
 	local->shak_talk_count = 0;
 }
 
 static void process_conv_shak_ledge() {
-	int you_trig_flag = false;
-	int me_trig_flag  = false;
-
 	if (kernel.trigger == ROOM_509_YOU_TALK) {
 		local->shak_action = SHAK_TALK;
 	}
@@ -410,13 +402,11 @@ static void process_conv_shak_ledge() {
 		local->shak_action = SHAK_SHUT_UP;
 	}
 
-	if (!you_trig_flag) {
-		conv_you_trigger(ROOM_509_YOU_TALK);
-	}
+	/* !you_trig_flag */
+	conv_you_trigger(ROOM_509_YOU_TALK);
 
-	if (!me_trig_flag) {
-		conv_me_trigger(ROOM_509_ME_TALK);
-	}
+	/* !me_trig_flag */
+	conv_me_trigger(ROOM_509_ME_TALK);
 
 	local->shak_talk_count = 0;
 }
diff --git a/engines/mads/dragonsphere/rooms/room614.cpp b/engines/mads/dragonsphere/rooms/room614.cpp
index 73d9c1910c7..48a6e60128b 100644
--- a/engines/mads/dragonsphere/rooms/room614.cpp
+++ b/engines/mads/dragonsphere/rooms/room614.cpp
@@ -1097,8 +1097,6 @@ static void process_conv_31() {
 }
 
 static void process_conv_32() {
-	int you_trig_flag = false;
-
 	switch (player_verb) {
 	case conv032_pid_dies_b_b:
 		conv_abort();
@@ -1171,9 +1169,8 @@ static void process_conv_32() {
 		local->wiz_float_action = TALK;
 	}
 
-	if (!you_trig_flag) {
-		conv_you_trigger(ROOM_614_YOU_TALK);
-	} /* if you_trig_flag == true, then a you trigger is called from above, not here. */
+	/* !you_trig_flag */
+	conv_you_trigger(ROOM_614_YOU_TALK);
 
 	local->king_enter_talk_count = 0;
 	local->wiz_float_talk_count = 0;


Commit: 9fb974cc2c4e619b6b70a8378ebafe3c9d84f505
    https://github.com/scummvm/scummvm/commit/9fb974cc2c4e619b6b70a8378ebafe3c9d84f505
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2026-08-18T17:24:03+10:00

Commit Message:
MADS: DRAGONSPHERE: Merged duplicate if. PVS-Studio V581

Changed paths:
    engines/mads/dragonsphere/rooms/room504.cpp


diff --git a/engines/mads/dragonsphere/rooms/room504.cpp b/engines/mads/dragonsphere/rooms/room504.cpp
index 43e2a5aa4b4..c32697430d4 100644
--- a/engines/mads/dragonsphere/rooms/room504.cpp
+++ b/engines/mads/dragonsphere/rooms/room504.cpp
@@ -889,8 +889,10 @@ static void handle_animation_heal() {
 static void room_504_init() {
 	int id;
 
-	if (!player.been_here_before) ++global[dragon_high_scene];
-	if (!player.been_here_before) ++global[player_score];
+	if (!player.been_here_before) {
+		++global[dragon_high_scene];
+		++global[player_score];
+	}
 
 	if (global[monster_is_dead]) {
 		global[found_lani_504] = true;


Commit: 64b081a7d84da9bac5664851b50a07e37c788a8d
    https://github.com/scummvm/scummvm/commit/64b081a7d84da9bac5664851b50a07e37c788a8d
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2026-08-18T17:28:18+10:00

Commit Message:
MADS: DRAGONSPHERE: Clean up missing else in room 201. PVS-Studio V646

Changed paths:
    engines/mads/dragonsphere/rooms/room201.cpp


diff --git a/engines/mads/dragonsphere/rooms/room201.cpp b/engines/mads/dragonsphere/rooms/room201.cpp
index 907fb58adc8..8b0ece1b44b 100644
--- a/engines/mads/dragonsphere/rooms/room201.cpp
+++ b/engines/mads/dragonsphere/rooms/room201.cpp
@@ -2189,12 +2189,11 @@ static void room_201_parser() {
 				conv_export_value(0);
 				conv_export_value(1);
 			}
-			goto handled;
-
-		} if (global[guards_are_asleep]) {
+		} else if (global[guards_are_asleep]) {
 			text_show(20152);
-			goto handled;
 		}
+
+		goto handled;
 	}
 
 	id = object_named(player_main_noun);




More information about the Scummvm-git-logs mailing list