Opened 3 years ago

Closed 3 years ago

#12189 closed defect (fixed)

EOB2 short sword "Sting" regression in v2.2.0

Reported by: mprobinson Owned by: athrxx
Priority: normal Component: Engine: Kyra
Version: Keywords:
Cc: Game: Eye of the Beholder 2

Description

Language: English
Version: DOS (GOG.com version)
OS: Debian Unstable x86_64

In version v2.2.0, if you attempt to pick up the item 'Short Sword "Sting"', it vanishes and the message "YOU MAY ONLY EAT FOOD!" appears. In previous versions it could be picked up normally. The short sword is found in Catacomb Level 2, location 15 on the Clue Book map (the big room to the north with a lot of Skeleton Warriors). The sword is not necessary to complete the game, but it is the second-best offhand weapon in the game, so it is disappointing to have it vanish. I attached a save file with the sword ready to pick up.

I bisected the bug to commit fcad95af09e61dbd401e2a3c0729d7def99d3e24, "KYRA: (EOB/SegaCD) - add level map function".

I believe the bug is in scummvm/engines/kyra/gui/gui_eob.cpp, line 946 in current HEAD, line 933 in the first bad commit, starting:

if (_items[d].nameUnid == 97) {

This code appears to handle EOB/SegaCD maps, but it does not check which game is currently running, so the EOB2 short sword is mistaken for an EOB/SegaCD map item.

Attachments (1)

eob2.000 (18.6 KB ) - added by mprobinson 3 years ago.

Download all attachments as: .zip

Change History (2)

by mprobinson, 3 years ago

Attachment: eob2.000 added

comment:1 by athrxx, 3 years ago

Owner: set to athrxx
Resolution: fixed
Status: newclosed

Thanks for your report (and for actually doing all the work here ;-) )

I've made a fix based on your correct diagnosis. The item id 97 is indeed used for the map pieces in EOB I SegaCD. For other versions of EOB I the ids end at 96 (but apparently not for EOB II). The SegaCD map pieces are supposed to disappear when you click them (just like that sword does for you). You just get a message (not the food message though, SegaCD will have a different string in that array slot) and a sound and then the map gets activated.


Note: See TracTickets for help on using tickets.