[Scummvm-git-logs] scummvm master -> 616403edea7bda5bb1802e50b26c21c8867f604c

dreammaster noreply at scummvm.org
Sat Jul 4 07:56:42 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:
418247344b MADS: FOREST: Cleanup of some room 101 switches
616403edea MADS: FOREST: Implementing original cheat mode


Commit: 418247344b0e4e40e3459499187ca20e8ed4f3a1
    https://github.com/scummvm/scummvm/commit/418247344b0e4e40e3459499187ca20e8ed4f3a1
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2026-07-04T17:56:33+10:00

Commit Message:
MADS: FOREST: Cleanup of some room 101 switches

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


diff --git a/engines/mads/madsv2/forest/rooms/room101.cpp b/engines/mads/madsv2/forest/rooms/room101.cpp
index 733e6408e9a..29fc9b29601 100644
--- a/engines/mads/madsv2/forest/rooms/room101.cpp
+++ b/engines/mads/madsv2/forest/rooms/room101.cpp
@@ -293,82 +293,85 @@ static void room_101_anim1() {
 			aainfo[6]._val3 = 10;
 			digi_play_build(101, 'b', 1, 1);
 			scratch._aa = 1;
-			return;
+			break;
 		}
 		if (frame == 6) {
-			if (aainfo[6]._val3 != 10) return;
+			if (aainfo[6]._val3 != 10) break;
 			aainfo[6]._frame = 2;
 			kernel_reset_animation(aa[6], 2);
-			return;
+			break;
 		}
 		if (frame == 10) {
-			if (aainfo[6]._val3 != 9) return;
+			if (aainfo[6]._val3 != 9) break;
 			aainfo[6]._frame = 6;
 			kernel_reset_animation(aa[6], 6);
-			return;
+			break;
 		}
 		if (frame == 14) {
-			if (aainfo[6]._val3 != 12) return;
+			if (aainfo[6]._val3 != 12) break;
 			aainfo[6]._frame = 13;
 			kernel_reset_animation(aa[6], 13);
 		}
-		return;
+		break;
 
 	case 4:
 		if (frame == 10) {
 			aainfo[6]._val3 = 9;
 			digi_play_build(101, 'r', 2, 1);
 			scratch._aa = 10;
-			return;
+			break;
 		}
 		if (frame == 15) {
-			if (aainfo[6]._val3 != 9) return;
+			if (aainfo[6]._val3 != 9) break;
 			aainfo[6]._frame = 11;
 			kernel_reset_animation(aa[6], 11);
 		}
-		return;
+		break;
 
 	case 6:
 		if (frame == 7) {
 			aainfo[6]._val3 = 11;
 			digi_play_build(101, 'e', 1, 1);
 			scratch._aa = 20;
-			return;
+			break;
 		}
 		if (frame == 12) {
-			if (aainfo[6]._val3 != 11) return;
+			if (aainfo[6]._val3 != 11) break;
 			aainfo[6]._frame = 8;
 			kernel_reset_animation(aa[6], 8);
 		}
-		return;
+		break;
 
 	case 9:
 		if (frame == 28) {
 			aainfo[6]._val3 = 10;
 			digi_play_build(101, 'b', 3, 1);
 			scratch._aa = 30;
-			return;
+			break;
 		}
 		if (frame == 30) {
-			if (aainfo[6]._val3 != 10) return;
+			if (aainfo[6]._val3 != 10) break;
 			aainfo[6]._frame = 29;
 			kernel_reset_animation(aa[6], 29);
 		}
-		return;
+		break;
 
 	case 10:
 		if (frame == 88) {
 			aainfo[6]._val3 = 10;
 			digi_play_build(101, 'b', 4, 1);
 			scratch._aa = 40;
-			return;
+			break;
 		}
 		if (frame == 94) {
-			if (aainfo[6]._val3 != 10) return;
+			if (aainfo[6]._val3 != 10) break;
 			aainfo[6]._frame = 90;
 			kernel_reset_animation(aa[6], 90);
 		}
-		return;
+		break;
+
+	default:
+		break;
 	}
 }
 
@@ -507,34 +510,45 @@ static void room_101_anim9() {
 	int16 frame = kernel_anim[aa[9]].frame;
 	if (frame != aainfo[9]._frame) {
 		aainfo[9]._frame = frame;
-		if (frame == 99) {
-			digi_play_build(101, 'r', 3, 1);
+
+		switch (frame) {
+		case 1:
+			digi_play_build(101, 'c', 1, 1);
+			scratch._b4 = 1;
+			break;
+
+		case 67:
+			digi_play_build(101, 'e', 5, 1);
+			scratch._b4 = 67;
+			break;
+
+		case 99:
 			scratch._b4 = 99;
-		} else if (frame < 99) {
-			if (frame == 1) {
-				digi_play_build(101, 'c', 1, 1);
-				scratch._b4 = 1;
-			} else if (frame == 67) {
-				digi_play_build(101, 'e', 5, 1);
-				scratch._b4 = 67;
-			}
-		} else {
-			if (frame == 135) {
-				digi_play_build(101, 'm', 1, 1);
-				scratch._b4 = 135;
-			} else if (frame == 163) {
-				digi_play_build(101, 'b', 6, 1);
-				scratch._b4 = 163;
-			} else if (frame == 205) {
-				dont_frag_the_palette();
-				kernel_abort_animation(aa[9]);
-				aainfo[9]._active = 0;
-				stop_speech_on_run_animation = false;
-				aa[10] = kernel_run_animation(kernel_name('I', 3), 0);
-				aainfo[10]._active = -1;
-				kernel_synch(KERNEL_ANIM, aa[10], KERNEL_ANIM, aa[9]);
-				kernel_timing_trigger(1, 113);
-			}
+			break;
+
+		case 135:
+			digi_play_build(101, 'm', 1, 1);
+			scratch._b4 = 135;
+			break;
+
+		case 163:
+			digi_play_build(101, 'b', 6, 1);
+			scratch._b4 = 163;
+			break;
+
+		case 205:
+			dont_frag_the_palette();
+			kernel_abort_animation(aa[9]);
+			aainfo[9]._active = 0;
+			stop_speech_on_run_animation = false;
+			aa[10] = kernel_run_animation(kernel_name('I', 3), 0);
+			aainfo[10]._active = -1;
+			kernel_synch(KERNEL_ANIM, aa[10], KERNEL_ANIM, aa[9]);
+			kernel_timing_trigger(1, 113);
+			break;
+
+		default:
+			break;
 		}
 	}
 


Commit: 616403edea7bda5bb1802e50b26c21c8867f604c
    https://github.com/scummvm/scummvm/commit/616403edea7bda5bb1802e50b26c21c8867f604c
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2026-07-04T17:56:33+10:00

Commit Message:
MADS: FOREST: Implementing original cheat mode

As part of this, I've started changing some int fields to
bool in the player structure to fix warnings

Changed paths:
    engines/mads/madsv2/core/conv.cpp
    engines/mads/madsv2/core/game.cpp
    engines/mads/madsv2/core/game.h
    engines/mads/madsv2/core/global.h
    engines/mads/madsv2/core/keys.cpp
    engines/mads/madsv2/core/player.h
    engines/mads/madsv2/engine.cpp
    engines/mads/madsv2/forest/rooms/room203.cpp
    engines/mads/madsv2/forest/rooms/room221.cpp
    engines/mads/madsv2/forest/rooms/room304.cpp


diff --git a/engines/mads/madsv2/core/conv.cpp b/engines/mads/madsv2/core/conv.cpp
index 8340b2ff668..dfea6eee739 100644
--- a/engines/mads/madsv2/core/conv.cpp
+++ b/engines/mads/madsv2/core/conv.cpp
@@ -913,7 +913,7 @@ static int conv_generate_menu(ConvData *convData, Conv *convIn) {
 	}
 
 	kernel_set_interface_mode(INTER_CONVERSATION);
-	player.commands_allowed = -1;
+	player.commands_allowed = true;
 	return 2;
 }
 
diff --git a/engines/mads/madsv2/core/game.cpp b/engines/mads/madsv2/core/game.cpp
index b1aec27fb3a..a8905501b97 100644
--- a/engines/mads/madsv2/core/game.cpp
+++ b/engines/mads/madsv2/core/game.cpp
@@ -103,10 +103,10 @@ void (*game_emergency_save)() = NULL;
 
 int debugger = false;
 int debugger_state = DEBUGGER_MAIN;
-int debugger_matte_before = false;
+bool debugger_matte_before = false;
 int debugger_memory_skip = 0;        /* For paging up/down      */
-int debugger_memory_all = false;    /* Not showing ALL memory  */
-int debugger_memory_keywait = false;    /* Not waiting for memory  */
+bool debugger_memory_all = false;    /* Not showing ALL memory  */
+bool debugger_memory_keywait = false;    /* Not waiting for memory  */
 void (*debugger_reset)() = NULL;     /* Debugger reset routine  */
 void (*debugger_update)() = NULL;     /* Debugger update routine */
 int selected_intro = false;
@@ -506,7 +506,6 @@ int game_parse_keystroke(int mykey) {
 	char temp_buf[80], temp_buf_2[80];
 
 	if (kernel.cheating == (byte)kernel_cheating_allowed) {
-
 		mykey = main_cheating_key(mykey);
 
 		switch (mykey) {
@@ -519,10 +518,10 @@ int game_parse_keystroke(int mykey) {
 			break;
 
 		case ctrl_d_key:
-			// temp = game.difficulty;
-			// if (!popup_get_number (&temp, "CHANGE DIFFICULTY FACTOR", "New Factor:", 3)) {
-			  // game.difficulty = (byte)temp;
-			// }
+			temp = game.difficulty;
+			if (!popup_get_number (&temp, "CHANGE DIFFICULTY FACTOR", "New Factor:", 3)) {
+				game.difficulty = (byte)temp;
+			}
 			break;
 
 		case ctrl_e_key:
@@ -578,7 +577,6 @@ int game_parse_keystroke(int mykey) {
 					move_target = object[move_object].location;
 					popup_get_number(&move_target, "MOVE OBJ TO", "Loc:", 3);
 					inter_move_object(move_object, move_target);
-					// kernel.force_restart = true;
 				}
 			}
 			break;
@@ -590,26 +588,25 @@ int game_parse_keystroke(int mykey) {
 		case ctrl_r_key:
 			kernel_panning_speed = (kernel_panning_speed + 1) % 3;
 			game_set_camera_speed();
+
 			switch (kernel_panning_speed) {
 			case PANNING_INSTANT:
-				// popup_alert (22, "Pan INS", NULL);
+				popup_alert(22, "Panning = INSTANT.", NULL);
 				break;
 
 			case PANNING_MEDIUM:
-				// popup_alert (22, "Pan MEDIUM.", NULL);
+				popup_alert(22, "Panning = MEDIUM.", NULL);
 				break;
 
 			case PANNING_SMOOTH:
 			default:
-				// popup_alert (22, "Panning = SMOOTH.", NULL);
+				popup_alert(22, "Panning = SMOOTH.", NULL);
 				break;
 			}
 			break;
 
-			// case ctrl_r_key:
-			// box_param.font_spacing = 1 - box_param.font_spacing;
-			// break;
 		case ctrl_t_key:
+		case alt_t_key:
 			popup_get_number(&new_room, "TELEPORT", "New Room:", 3);
 			kernel.teleported_in = (byte)(mykey == ctrl_t_key);
 			break;
@@ -629,10 +626,11 @@ int game_parse_keystroke(int mykey) {
 			break;
 
 		case ctrl_w_key:
-			// popup_get_string (player.series_name, "WALKER SERIES", "Series:", 8);
-			// player.force_series = (byte)strlen(player.series_name);
-			// if (!scumm_stricmp(player.series_name, "NULL")) player.series_name[0] = 0;
-			// kernel.force_restart = true;
+			popup_get_string (player.series_name, "WALKER SERIES", "Series:", 8);
+			player.force_series = (byte)strlen(player.series_name);
+			if (!scumm_stricmp(player.series_name, "NULL"))
+				player.series_name[0] = 0;
+			kernel.force_restart = true;
 			break;
 
 		case ctrl_z_key:
@@ -640,9 +638,8 @@ int game_parse_keystroke(int mykey) {
 			break;
 
 		case alt_b_key:
-			// if (!popup_get_string (box_param.name, "POPUP BOX SERIES", "Series:", 16)) {
-			  // kernel.force_restart = true;
-			// }
+			if (!popup_get_string (box_param.name, "POPUP BOX SERIES", "Series:", 16))
+				kernel.force_restart = true;
 			break;
 
 		case ctrl_y_key:
@@ -680,13 +677,6 @@ int game_parse_keystroke(int mykey) {
 			pal_manager_update = debugger_update;
 			break;
 
-		case alt_t_key:
-			debugger = true;
-			debugger_state = DEBUGGER_STATE;
-			mem_manager_update = NULL;
-			pal_manager_update = debugger_update;
-			break;
-
 		case alt_l_key:
 			debugger = true;
 			debugger_state = DEBUGGER_SCRATCH;
@@ -732,23 +722,24 @@ int game_parse_keystroke(int mykey) {
 			break;
 
 		case alt_a_key:
-			//       if (debugger_watch < DEBUGGER_MAX_WATCH) {
-			// temp = -1;
-			// if (debugger_watch > 0) temp = debugger_watch_index[debugger_watch - 1];
-			// if (!popup_get_number (&temp, "ADD GLOBAL WATCH", "Variable #:", 3)) {
-			// if ((temp >= 0) && (temp < 500)) {
-			// for (count = 0; count < debugger_watch; count++) {
-			// if (debugger_watch_index[count] == temp) {
-			// temp = -1;
-			// }
-			// }
-			//
-			// if (temp > 0) {
-			// debugger_watch_index[debugger_watch++] = temp;
-			// }
-			// }
-			// }
-			// }
+			if (debugger_watch < DEBUGGER_MAX_WATCH) {
+				temp = -1;
+				if (debugger_watch > 0)
+					temp = debugger_watch_index[debugger_watch - 1];
+				if (!popup_get_number(&temp, "ADD GLOBAL WATCH", "Variable #:", 3)) {
+					if ((temp >= 0) && (temp < 500)) {
+						for (count = 0; count < debugger_watch; count++) {
+							if (debugger_watch_index[count] == temp) {
+								temp = -1;
+							}
+						}
+
+						if (temp > 0) {
+							debugger_watch_index[debugger_watch++] = temp;
+						}
+					}
+				}
+			}
 			break;
 
 		case alt_e_key:
@@ -803,13 +794,14 @@ int game_parse_keystroke(int mykey) {
 			break;
 
 		case alt_w_key:
-			// player.walk_freedom  = !player.walk_freedom;
-			// player.walk_anywhere = player.walk_freedom;
-			// if (player.walk_freedom) {
-			  // popup_alert (26, "Player walks anywhere.", NULL);
-			// } else {
-			  // popup_alert (26, "Player walk restricted.", NULL);
-			// }
+			player.walk_freedom  = !player.walk_freedom;
+			player.walk_anywhere = player.walk_freedom;
+
+			if (player.walk_freedom) {
+				popup_alert(26, "Player walks anywhere.", NULL);
+			} else {
+				popup_alert(26, "Player walk restricted.", NULL);
+			}
 			break;
 
 		case alt_v_key:
@@ -842,8 +834,11 @@ int game_parse_keystroke(int mykey) {
 		case ctrl_c_key:
 			kernel.mouse_cursor_point = (byte)(!kernel.mouse_cursor_point);
 			break;
-#if 0
+
 		case ctrl_s_key:
+			if (g_engine->getGameID() != GType_Forest)
+				break;
+
 			Common::strcpy_s(temp_buf, "d322u001");
 
 			if (!popup_get_string(temp_buf, "Speech Play", "File:", 14)) {
@@ -853,8 +848,7 @@ int game_parse_keystroke(int mykey) {
 
 				// if exist RAC file
 				if (env_exist(temp_buf_2)) {
-					digi_play(temp_buf, 1);
-					digi_trigger_dialog = false;
+					Forest::digi_play(temp_buf, 1);
 
 				} else {
 					Common::strcpy_s(temp_buf_2, "*");
@@ -863,8 +857,7 @@ int game_parse_keystroke(int mykey) {
 
 					// if exist RAW
 					if (env_exist(temp_buf_2)) {
-						digi_play(temp_buf, 1);
-						digi_trigger_dialog = false;
+						Forest::digi_play(temp_buf, 1);
 
 					} else {
 						popup_alert(22, temp_buf, "does not exist!", NULL);
@@ -872,7 +865,7 @@ int game_parse_keystroke(int mykey) {
 				}
 			}
 			break;
-#endif
+
 		case alt_f1_key:
 			if (room->front_y > room->back_y) room->front_y--;
 			kernel_room_bound_dif = room->front_y - room->back_y;
@@ -888,7 +881,8 @@ int game_parse_keystroke(int mykey) {
 			kernel_room_scale_dif = room->front_scale - room->back_scale;
 			break;
 
-		case alt_f4_key:
+		// Was Alt+F4 in original, but obviously can't use that in Windows builds
+		case ctrl_f4_key:
 			room->front_scale++;
 			kernel_room_scale_dif = room->front_scale - room->back_scale;
 			break;
@@ -977,7 +971,11 @@ int game_parse_keystroke(int mykey) {
 	}
 
 	if (kernel.cheating < (byte)kernel_cheating_allowed) {
-		if (mykey == (kernel_cheating_password[kernel.cheating] - '@')) {
+		// Check for entering cheat sequence. The original did it using Control+key sequence,
+		// but in ScummVM I'm allowing it to be done with or without ctrl key being pressed.
+		// Since Ctrl+M, for example, is intercepted for mouse lock, so the Once Upon a Forest
+		// 'LLAMA' cheat sequence couldn't otherwise be entered
+		if (toupper(mykey & 0xffff) == kernel_cheating_password[kernel.cheating]) {
 			kernel.cheating++;
 			mykey = 0;
 			if (kernel.cheating >= (byte)kernel_cheating_allowed) {
@@ -992,7 +990,7 @@ int game_parse_keystroke(int mykey) {
 
 	switch (mykey) {
 	case space_key:
-		global[3] = true;  // player_hyperwalked
+		global[player_hyperwalked] = true;
 		if (!kernel.paused) {
 			if (player.walking && (new_room == room_id) && (player.walk_off_edge == 0)) {
 				if (!kernel.disable_fastwalk || (kernel.cheating == (byte)kernel_cheating_allowed)) {
@@ -1098,18 +1096,6 @@ int game_parse_keystroke(int mykey) {
 			NULL);
 		break;
 
-		// case I_key:
-		// case B_key:
-		// case i_key:
-		// case b_key:
-		  // if (room_id != 199 && section_id != 9 &&
-			  // player.commands_allowed &&
-			  // !kernel.trigger &&
-			  // inter_input_mode == INTER_LIMITED_SENTENCES &&
-	//          !global[2]) {*/  /* inventory_is_displayed
-			// display_inventory();
-		  // }
-		  // break;
 	case 0:
 		break;
 
diff --git a/engines/mads/madsv2/core/game.h b/engines/mads/madsv2/core/game.h
index 27f4df0bca2..4717aff2fd5 100644
--- a/engines/mads/madsv2/core/game.h
+++ b/engines/mads/madsv2/core/game.h
@@ -190,10 +190,10 @@ extern void (*game_emergency_save)();
 
 extern int debugger;
 extern int debugger_state;
-extern int debugger_matte_before;
+extern bool debugger_matte_before;
 extern int debugger_memory_skip;
-extern int debugger_memory_all;
-extern int debugger_memory_keywait;
+extern bool debugger_memory_all;
+extern bool debugger_memory_keywait;
 extern void (*debugger_reset)();      /* Debugger reset routine  */
 extern void (*debugger_update)();     /* Debugger update routine */
 
diff --git a/engines/mads/madsv2/core/global.h b/engines/mads/madsv2/core/global.h
index 1829cf7072c..73b53abf894 100644
--- a/engines/mads/madsv2/core/global.h
+++ b/engines/mads/madsv2/core/global.h
@@ -65,7 +65,7 @@ constexpr int NO  = 0;
 
 constexpr int walker_timing                   = 0;   /* Stop walker timing (long) */
 constexpr int walker_timing_2                 = 1;
-
+constexpr int player_hyperwalked              = 3;
 
 extern char global_release_name[];
 extern char global_release_version[];
diff --git a/engines/mads/madsv2/core/keys.cpp b/engines/mads/madsv2/core/keys.cpp
index 651994536cf..8bfc40fa42f 100644
--- a/engines/mads/madsv2/core/keys.cpp
+++ b/engines/mads/madsv2/core/keys.cpp
@@ -38,15 +38,16 @@ void keys_remove() {
 }
 
 int keys_check_install() {
-	error("TODO: keys_check_install");
+	// No implementation in ScummVM
+	return true;
 }
 
 void keys_enable() {
-	error("TODO: keys_enable");
+	// No implementation in ScummVM
 }
 
 void keys_disable() {
-	error("TODO: keys_disable");
+	// No implementation in ScummVM
 }
 
 int keys_any() {
diff --git a/engines/mads/madsv2/core/player.h b/engines/mads/madsv2/core/player.h
index b0d87a237ae..4d61070219d 100644
--- a/engines/mads/madsv2/core/player.h
+++ b/engines/mads/madsv2/core/player.h
@@ -55,7 +55,7 @@ struct Player {
 	int frame_delay;              /* Tick delay between player frames        */
 	int center_of_gravity;        /* Center of gravity displacement          */
 
-	int walk_freedom;             /* Player can always walk anywhere         */
+	bool walk_freedom;            /* Player can always walk anywhere         */
 
 	int walk_anywhere;            /* Player can walk anywhere                */
 
@@ -69,9 +69,9 @@ struct Player {
 	int prepare_walk_x;           /* Destination preparing to walk to        */
 	int prepare_walk_y;
 
-	int commands_allowed;         /* Flag if accepting player input          */
-	int walker_visible;           /* Flag if player's sprite is visible      */
-	int walker_previously_visible;/* Flag if player's sprite was visible     */
+	bool commands_allowed;        /* Flag if accepting player input          */
+	bool walker_visible;          /* Flag if player's sprite is visible      */
+	bool walker_previously_visible;/* Flag if player's sprite was visible     */
 	int series_base;              /* Lowest series list handle for walker    */
 	int16 available[8];           /* Flag if series are available or mirrored*/
 	int facing;                   /* Player's current directional facing     */
@@ -131,7 +131,7 @@ struct Player {
 	byte walker_is_loaded;        /* Flag if walker is loaded                */
 	byte walker_must_reload;      /* Flag if walker must reload              */
 
-	int walker_been_visible;      /* Flag if has been visible this room      */
+	bool walker_been_visible;     /* Flag if has been visible this room      */
 
 	byte force_series;            /* Flag to force player series             */
 
@@ -139,7 +139,7 @@ struct Player {
 	byte walk_trigger_dest;       /* Type of code to activate for trigger    */
 	int walk_trigger_words[3];    /* Vocabulary words for reactivating parser*/
 
-	int enable_at_target;         /* Enable commands at walk target          */
+	bool enable_at_target;        /* Enable commands at walk target          */
 
 	void synchronize(Common::Serializer &s);
 };
diff --git a/engines/mads/madsv2/engine.cpp b/engines/mads/madsv2/engine.cpp
index bccdec2eac3..50eab1c48c5 100644
--- a/engines/mads/madsv2/engine.cpp
+++ b/engines/mads/madsv2/engine.cpp
@@ -348,7 +348,7 @@ int MADSV2Engine::getKey() {
 
 	if (!_keyEvents.empty()) {
 		Common::KeyState ks = _keyEvents.pop();
-		return ks.ascii ? ks.ascii : (ks.flags << 16) | ks.keycode;
+		return ks.ascii && (ks.flags == 0) ? ks.ascii : (ks.flags << 16) | ks.keycode;
 	}
 
 	return 0;
diff --git a/engines/mads/madsv2/forest/rooms/room203.cpp b/engines/mads/madsv2/forest/rooms/room203.cpp
index 334a8a773a8..f0f5e1ad622 100644
--- a/engines/mads/madsv2/forest/rooms/room203.cpp
+++ b/engines/mads/madsv2/forest/rooms/room203.cpp
@@ -1014,7 +1014,7 @@ static void room_203_anim7() {
 	local->_aa = -1;
 	player.walker_visible = true;
 	kernel_synch(KERNEL_PLAYER, 0, KERNEL_NOW, 0);
-	player.commands_allowed = -1;
+	player.commands_allowed = true;
 	kernel_flip_hotspot(words_abigail, true);
 	kernel_flip_hotspot(words_russel, true);
 	kernel_flip_hotspot(words_edgar, true);
diff --git a/engines/mads/madsv2/forest/rooms/room221.cpp b/engines/mads/madsv2/forest/rooms/room221.cpp
index 15c6ef4e92c..dbf3848404b 100644
--- a/engines/mads/madsv2/forest/rooms/room221.cpp
+++ b/engines/mads/madsv2/forest/rooms/room221.cpp
@@ -129,7 +129,7 @@ static void room_221_init1() {
 		global[g133] = 0;
 		global[g143] = 0;
 		restore_player();
-		player.commands_allowed = -1;
+		player.commands_allowed = true;
 		return;
 	case 211:
 		aa[1] = kernel_run_animation(kernel_name('b', 1), 101);
@@ -149,7 +149,7 @@ static void room_221_init1() {
 		kernel_reset_animation(scratch._9c, 2);
 		global[g133] = 0;
 		global[g143] = 0;
-		player.commands_allowed = -1;
+		player.commands_allowed = true;
 		return;
 	}
 }
@@ -500,7 +500,7 @@ static void room_221_daemon() {
 			kernel_synch(KERNEL_ANIM, scratch._9c, KERNEL_NOW, 0);
 			global[g133] = 0;
 			global[g143] = 0;
-			player.commands_allowed = -1;
+			player.commands_allowed = true;
 		}
 		break;
 
@@ -597,7 +597,7 @@ static void room_221_daemon() {
 		kernel_synch(KERNEL_ANIM, scratch._9c, KERNEL_NOW, 0);
 		global[g133] = 0;
 		global[g143] = 0;
-		player.commands_allowed = -1;
+		player.commands_allowed = true;
 		break;
 
 	default:
diff --git a/engines/mads/madsv2/forest/rooms/room304.cpp b/engines/mads/madsv2/forest/rooms/room304.cpp
index 26a12881587..fe3d9986664 100644
--- a/engines/mads/madsv2/forest/rooms/room304.cpp
+++ b/engines/mads/madsv2/forest/rooms/room304.cpp
@@ -382,7 +382,7 @@ static void room_304_daemon() {
 		case 9:
 			global[walker_converse_state] = 0;
 			close_interface(CANDLE_FLY);
-			player.commands_allowed = -1;
+			player.commands_allowed = true;
 			if (config_file.forest1)
 				kernel_timing_trigger(1, 107);
 			break;




More information about the Scummvm-git-logs mailing list