Opened 17 years ago

Closed 16 years ago

Last modified 16 years ago

#610 closed defect (fixed)

MI1&Mi2: unable to win the game (cheat)

Reported by: SF/sir_kill_a_lot Owned by: eriktorbjorn
Priority: low Component: Engine: SCUMM
Keywords: Cc:
Game: Monkey Island 1

Description

In MI1 and MI2 there are cheats to "win" the game, but
they don't work with ScummVM. (cheat for MI1 is
CTRL+W and for MI2 CTRL+ALT+W, then a yes/no
question is asked if you like to win the game)

Playing MI1VGA German with ScummVM displays the
question when pressing CTRL+SHIFT+W, but there is
no y/n (german: j/n) query implemented. MI2 don't
display it at all.

Ticket imported from: #647860. Ticket imported from: bugs/610.

Change History (8)

comment:1 Changed 17 years ago by SF/sir_kill_a_lot

Priority: normallow

comment:2 Changed 17 years ago by fingolfin

Owner: set to SF/ender

comment:3 Changed 17 years ago by fingolfin

I don't think it should be our goal to make those work. IMHO
this should be closed as WONTFIX.

comment:4 Changed 17 years ago by SF/sir_kill_a_lot

Ohhh, but only completing the game is boring in the long run,
I want to WIN the game and get the high score! :)

I just thougt it wouldn't be that hard to implement this.

comment:5 Changed 17 years ago by eriktorbjorn

I looked a bit at these, and part of the bug is in the way
ScummVM handles keypresses. ScummVM intercepts *all*
Ctrl-<key> keypresses, and sends the wrong key code for
Ctrl-Alt-<key>. That part, at least, probably should be fixed.

The second part of the bug is that our InfoDialog doesn't
pass the keypress used to dismiss it back to the game. I
guess we may need this functionality later anyway.

For reference, here are the scripts that handle the "win" key:

Monkey1:

[025A] (48) } else if (Local[1] == 23) {
[0261] (14) print(252,[Color(12),Text("Are you sure you
want to win? (Y/N)")]);
[028A] (48) if (Var[0] == 121) {
[0291] (0A) startScript(130,[1])
[0297] (62) stopScript(0)
[0299] (**) }
[0299] (48) if (Var[0] == 89) {
[02A0] (0A) startScript(130,[1])
[02A6] (62) stopScript(0)
[02A8] (**) }

Monkey2:

[038D] (48) } else if (Local[1] == 273) {
[0394] (14) print(252,[Color(12),Text("Are you sure you
want to win? (Y/N)")]);
[03BD] (48) if (Var[0] == 121) {
[03C4] (0A) startScript(165,[1])
[03CA] (62) stopScript(0)
[03CC] (**) }
[03CC] (48) if (Var[0] == 89) {
[03D3] (0A) startScript(165,[1])
[03D9] (62) stopScript(0)
[03DB] (**) }

I can understand where key code 23 (Ctrl-W) comes from, but
273 (Ctrl-Alt-W)...? How does that work?

comment:6 Changed 17 years ago by SF/sir_kill_a_lot

It seems I was wrong, the cheat code for MI2 is ALT-W.

comment:7 Changed 16 years ago by fingolfin

Works with latest CVS.

comment:8 Changed 16 years ago by fingolfin

Owner: changed from SF/ender to eriktorbjorn
Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.