Opened 8 years ago

Closed 8 years ago

Last modified 8 years ago

#5895 closed defect (fixed)

SCUMM: MM - F4 Restart after blowing up house does not work

Reported by: SF/tetsuo55 Owned by: Kirben
Priority: normal Component: Engine: SCUMM
Keywords: Cc:
Game: Maniac Mansion

Description

Expected behaviour: The screen says "Press F4 to play again", Pressing F4 should let me play again What happens instead: The game does not respond to the F4 button press How to reproduce: Go into the house, walk up the stairs, use the keypad next to the door, press the top left button 4 times, after about a minute the house will blow up and you will get the screen telling you to press F4

This was tested on Ubuntu 10.04 using: ScummVM 1.4.0pre35-g9bc0f70 (Nov 1 2011 04:35:13) Features compiled in: Vorbis FLAC MP3 RGB zLib

Ticket imported from: #3433879. Ticket imported from: bugs/5895.

Attachments (1)

scummvmbug.png (36.0 KB ) - added by SF/tetsuo55 8 years ago.
screenshot of the screen

Download all attachments as: .zip

Change History (8)

by SF/tetsuo55, 8 years ago

Attachment: scummvmbug.png added

screenshot of the screen

comment:1 by digitall, 8 years ago

Summary: Pressing F4 after blowing up house does not workSCUMM: MM - F4 Restart after blowing up house does not work

comment:2 by digitall, 8 years ago

Confirmed with ScummVM 1.5.0git338-g6c23f78-dirty (Nov 5 2011 21:24:34).

F4 does not work for this... though ESC does. Not sure if this was hardcoded in the original interpreter?

comment:3 by digitall, 8 years ago

If this wasn't hardcoded, then there may be a missing case in the function "void ScummEngine_v0::processInput()" found in engines/scumm/input.cpp ...

comment:4 by digitall, 8 years ago

Owner: set to Kirben

comment:5 by digitall, 8 years ago

With significant help from Kirben, have traced this down to void ScummEngine::processKeyboard(Common::KeyState lastKeyHit) in engines/scumm/input.cpp. Specifically this was due to the hard coding of ESC for Cutscene skip button, rather than using the value of VAR_CUTSCENEEXIT_KEY (at line 535 of input.cpp).

This minor regression was introduced by: commit 4297ccc96481872e9b47428c5ed36d6db0a450de Author: Max Horn <max@quendi.de> Date: Sat Jun 23 16:02:50 2007 +0000

Revised SCUMM's input code. We now fix the keys F5, '.', space, escape for mainmenu, talkstop, pause, cutsceneExit; this simplifies and clarifies the code, and ensures consistent game behavior

svn-id: r27672

Kirben will look at fixing this "by spliting code to specific versions again where required, so we don't go against script changes to specific keys."

comment:6 by Kirben, 8 years ago

This problem effected several game ports, which used different keys for skipping cutscenes: The Commodore 64 port of Zak McKracken uses RETURN The Commodore 64 port of Maniac Mansion uses F7 The NES ports of Maniac Mansion uses B Other ports of Maniac Mansion use F4

The exact keys used are displayed by the scripts, when dying or complete these games.

I fixed the problem in ScummVM by adding directly support for the exact keys used in each game port mentioned. Since the function keys were mapped differently (as 1 - 8) in the scripts of these games, compared to the expected values in ScummVM.

comment:7 by Kirben, 8 years ago

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.