Opened 11 years ago

Closed 11 years ago

Last modified 11 years ago

#3492 closed defect (fixed)

SWORD2: Game freezes

Reported by: SF/fermion Owned by: eriktorbjorn
Priority: normal Component: Engine: Sword2
Keywords: Cc:
Game: Broken Sword 2

Description

ScummVM 0.11.0svn (Dec 7 2007 19:47:40)
Features compiled in: Vorbis FLAC MP3 zLib MPEG2
English language, SoldOut CD version
Latest snapshot for Mac OS X, using version 10.4.11 of the OS

Outside the police station in Quaramonte: left-clicking on Pearl (to talk to her) and then right-clicking her when George has started walking in her direction causes George to freeze in his position. The cursor continues to change as it's hovered over other items, but clicking them has no effect.

Right-clicking an inventory item, or using one inventory item on another (i.e. trying to initiate a voice response with the inventory) causes the cursor to disappear, leaving the game completely frozen, with the exception of the sound, which continues regardless.

I have found that the bug also exists in version 0.10.0.

Ticket imported from: #1847382. Ticket imported from: bugs/3492.

Attachments (1)

sword2.010 (546 bytes) - added by SF/fermion 11 years ago.
Saved game at the appropriate location

Download all attachments as: .zip

Change History (6)

Changed 11 years ago by SF/fermion

Attachment: sword2.010 added

Saved game at the appropriate location

comment:1 Changed 11 years ago by SF/fermion

Summary: Game freezesSWORD2: Game freezes

comment:2 Changed 11 years ago by eriktorbjorn

Owner: set to eriktorbjorn

comment:3 Changed 11 years ago by eriktorbjorn

I can reproduce this problem. I'm guessing it's a script bug, but I haven't had the time yet to figure out what's happening, or if it can be worked around.

comment:4 Changed 11 years ago by eriktorbjorn

As far as I can tell, something like this happens:

Each object has a "react to mouse clicks" script. If you try to talk or show an object to Pearl, the script first instructs George to walk to where she's standing. At this point, it also sets a global variable to 0 to indicate that the script is running. Once the script has finished, the variable is set back to 1.

When you interrupt George before he has reached that spot, the script is prematurely terminated. The global variable remains 0. The next time the script is started, it waits for the variable to go back to 0, but that never happens.

I've committed a workaround so that the variable is set to 0 when that particular script is terminated prematurely. Please let me know if the problem persists, or if you can find any unwanted side effects.

comment:5 Changed 11 years ago by eriktorbjorn

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.