[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