#6171 closed defect (fixed)
SCI: Camelot - Cannot parry with the 'Shift' button
Reported by: | SF/captainjei | Owned by: | lskovlun |
---|---|---|---|
Priority: | normal | Component: | Engine: SCI |
Version: | Keywords: | ||
Cc: | Game: | Conquests of Camelot |
Description
When fighting the Mad Monk at Glastonbury Tor, one is supposed to be able to use the spacebar to swing their sword, and the Shift button to block with their shield. On my most recent playthrough, the Shift button no longer makes the player block. I believe it used to work around ScummVM version 1.3.0 or so.
I attached a save game mid-fight with sword drawn. The sword and be sheathed and drawn again by pressing F8.
Current ScummVM version: 1.6.0git2021-g228785e (Oct 23 2012 14:36:49) Language: English Version: floppy, v1.001 Platform: Win32 on Windows 7
Ticket imported from: #3580473. Ticket imported from: bugs/6171.
Attachments (2)
Change History (19)
by , 12 years ago
Attachment: | camelot.003 added |
---|
comment:1 by , 12 years ago
comment:2 by , 12 years ago
I tried this up to version 1.3.1, and it doesn't work there either - I don't think this functionality ever worked in ScummVM. This is the only game that uses the shift key as an action key, and not as part of a key combination.
Currently, we filter out all events that are only made of modifier keys, such as control, shift and alt. To my knowledge, no other game checks for these keys directly, and they are only processed as part of key combinations.
I'm not sure how the game checks for the keypress of the shift key - I tried passing just the modifier key state without any keypress, but that didn't work. If I'm not mistaken, the game hardcodes the shift key to return a specific key code. Further investigation is required.
comment:3 by , 12 years ago
Some more information: script 912 handles the Use Sword / Parry actions. Script 910 handles the Draw / Sheath Sword actions.
These are invoked from script 0, ARTHUR::doit and ARTHUR::handleEvent. The key events come from script 996, the User object. At a first glance, there seems to be a check for the modifier keys there, but I haven't looked thoroughly.
comment:5 by , 12 years ago
Summary: | SCI: Camelot - 'Shift' button no longer parries → SCI: Camelot - Cannot parry with the 'Shift' button |
---|
comment:6 by , 12 years ago
captainjei: It would be useful if you can confirm if this has ever worked for you in an earlier version of ScummVM. Also, if you could try playing this game using the original SCI executable in DOSBox and see if the Shift Parry key works there, that would also be helpful. If you could post your results of this here, and attach an original interpreter savegame to allow us to compare the game state, that could help pin down the cause. Thanks.
comment:7 by , 12 years ago
I'm no longer sure that if the Shift parry ever worked in ScummVM or not. I seem to remember it working, but that was years ago, so if you'd like me to, I can try older versions of ScummVM, though it looks like thebluegr has already done this for us.
It DEFINITELY works in DosBox. I can attach a savegame from a DosBox session, but it'll take a few days for me to have time to do so.
comment:8 by , 12 years ago
Captainjei: Well, thebluegr went back to v1.3.1, but the SCI engine was added in v1.2.0, so you could try v1.2.0 and v1.2.1 at least.. To do anything earlier would require compiling your own builds from source code i.e. if your memory of it working is from a nightly build.
A few days delay is not too much problem, but the DOSBox savegame for replication and comparison would be very useful. thebluegr has already determined that the issue seems to be within the script states and it would be very useful to compare the original interpreter state with no bug with the ScummVM interpreter state with bug to see what differences are present. This would be using the debugger present in the original interpreter, see: http://sierrahelp.com/Cheats/DebugModes.html
comment:9 by , 12 years ago
I'll get right on it. I know that I was using a stable build, because I didn't start installing daily snapshots until after 1.4.0 was released. I'll try 1.2.0 and 1.2.1 tonight, and I'll start a game in DosBox so I can get that save.
comment:10 by , 12 years ago
Okay, I've confirmed that the Shift-parry does not work on ScummVM 1.2.0
comment:11 by , 12 years ago
Okay, I saved a game at the monk battle while playing through DosBox. I didn't know if it would work to just attach the single save file, so I zipped all the saves I have for the game along with the *.dir file. When you load the game, load the one called 'parry!'
by , 12 years ago
Attachment: | conquest1saves.zip added |
---|
comment:12 by , 12 years ago
The DosBox saves are in the file called conquest1saves.zip, by the way.
comment:13 by , 12 years ago
captainjei: Thanks.. This should allow the SCI engine developers to compare the state between DOSBox and ScummVM fairly quickly without needing to replay to this point. Please be patient and standby...
comment:14 by , 12 years ago
Owner: | set to |
---|
comment:15 by , 12 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
comment:16 by , 12 years ago
Thanks for your report! This issue has been fixed by lskovlun in commit 8e733f03. The fix should be available in the next daily version.
comment:17 by , 12 years ago
Owner: | changed from | to
---|
captainjei: Thank you for the bug report. Can you please test this with previous versions of ScummVM i.e. v1.5.0, v1.4.1, v1.3.0 etc. and confirm when this problem was introduced? This wil greatly reduce the amount of work involved in bisecting for the cause of this bug.