#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 |
Version: | 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 by , 22 years ago
Priority: | normal → low |
---|
comment:2 by , 22 years ago
Owner: | set to |
---|
comment:3 by , 22 years ago
comment:4 by , 22 years ago
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 by , 22 years ago
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:8 by , 22 years ago
Owner: | changed from | to
---|---|
Resolution: | → fixed |
Status: | new → closed |
I don't think it should be our goal to make those work. IMHO this should be closed as WONTFIX.