Opened 9 years ago

Closed 9 years ago

Last modified 9 years ago

#5311 closed defect (fixed)

SQ1 AGI: keyboard special keys are not functioning properly

Reported by: OmerMor Owned by: eriktorbjorn
Priority: high Component: Engine: AGI
Keywords: Cc:
Game: Space Quest 1

Description

Game version: AGI/DOS/English/1.0X & 1.1A
Scummvm version: 1.2.0svn52375
Platform: Windows7 32bit

CTRL-C clears the command line, but does not moves the caret back to the start of the line. The text entered after a CTRL-C is ignored.
ESC does not pause the game. In the actual game it displays the message: "Game paused. Press ENTER to continue."

Ticket imported from: #3054184. Ticket imported from: bugs/5311.

Change History (11)

comment:1 by OmerMor, 9 years ago

I noticed the ESC brings up the menu if the platform is set to DOS (instead of pausing the game). Using the menu it is possible to pause the game.

comment:2 by bluegr, 9 years ago

Summary: keyboard special keys are not functioning properlySQ1 AGI: keyboard special keys are not functioning properly

comment:3 by sev-, 9 years ago

Priority: normalhigh

comment:4 by sev-, 9 years ago

This bug is nice to get fixed before the release. Raising priority for keeping the track.

comment:5 by eriktorbjorn, 9 years ago

The Ctrl-C bug could simply be a problem in cmd_cancel_line(). It sets _game.inputBuffer[0] to 0, but shouldn't it also set _game.cursorPos to 0?

comment:6 by eriktorbjorn, 9 years ago

I've committed my proposed fix. Ctrl-C seems to work fine now. I'm not sure I understand what's wrong with how ESC works, though. When I play the games in DOSBox, ESC activates the menu bar just like in ScummVM.

comment:7 by OmerMor, 9 years ago

I have 3 versions of SQ1-EGA: 1.0X, 1.1A & 2.2.
In 1.0X & 1.1A when you press ESC it will say: "Game paused. Press ENTER to continue."
In 2.2 it will activate the menu bar.
I don't know if this behavior is script-based or interpreter-based.

comment:8 by eriktorbjorn, 9 years ago

Ah. Well, it looks like the behaviour of ESC is hard-coded. There are numerous comments in detection_tables.h stating that "The original game did not have menus, they are enabled under ScummVM" or, in a few cases, "Does not have menus, crashes if menus are enforced."

So the policy seems to be to enable menus whenever it's possible.

comment:9 by OmerMor, 9 years ago

As long as it is a conscious and explicit decision I'm fine with it.

comment:10 by eriktorbjorn, 9 years ago

I'll close this then, since the part that's definitely a bug should be fixed now.

comment:11 by eriktorbjorn, 9 years ago

Owner: set to eriktorbjorn
Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.