Opened 12 years ago

Closed 12 years ago

Last modified 12 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 12 years ago.
Saved game at the appropriate location

Download all attachments as: .zip

Change History (6)

by SF/fermion, 12 years ago

Attachment: sword2.010 added

Saved game at the appropriate location

comment:1 by SF/fermion, 12 years ago

Summary: Game freezesSWORD2: Game freezes

comment:2 by eriktorbjorn, 12 years ago

Owner: set to eriktorbjorn

comment:3 by eriktorbjorn, 12 years ago

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 by eriktorbjorn, 12 years ago

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 by eriktorbjorn, 12 years ago

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