Opened 10 years ago

Closed 9 years ago

#4729 closed defect (fixed)

DW2: Minor Crash interacting with D'Blah in Act II

Reported by: SF/tim20 Owned by: dreammaster
Priority: normal Component: Engine: Tinsel
Keywords: Cc:
Game: Discworld II

Description

I've encountered a strange and minor crash that has cropped up about twice now. It's happened randomly when I either double click, right click or try and use an item on D'Blah in Act II. Doing so causes the game to stop responding and crash back to the desktop. The solution is pretty straightforward as all you need to do is ignore him or interact with someone else. But I thought I'd mention this in case there's s an error in the code or something. If you want to reproduce it, all you need to do is load up the save I have and keep left/right clicking on D'Blah. The quicker you click the higher the chance of it crashing.

I'm using:

- ScummVM 1.0.0 - Nov 8 2009 11:04:03
- English
- CD-ROM
- Windows Vista 32-bit, Service Pack 2

Ticket imported from: #2917661. Ticket imported from: bugs/4729.

Attachments (1)

dw2-gb.001 (2.7 KB ) - added by SF/tim20 10 years ago.

Download all attachments as: .zip

Change History (7)

by SF/tim20, 10 years ago

Attachment: dw2-gb.001 added

comment:1 by jvprat, 10 years ago

Owner: set to dreammaster

comment:2 by dreammaster, 10 years ago

Hmmm.. this is a tricky one. It's a slight different variation of the blocking problem from the previous DW2 script bug. In this case, global #306 is set when D'Blah is talking, and cleared when he finishes. It also already gets explicitly cleared when you enter the scene.

The intention is to briefly pause the interaction script (talk double-click or item interaction) if D'Blah is in the middle of speaking, and only then restart it when the talk finishes. The problem is that in this case, for some reason, the 'talk script' was aborted before it had a chance to finish, so the global #306 remains set to 1.

Since this global is only meant to remain set for a few seconds at most when D'Blah is speaking (but not to the player specifically), the player can keep double-clicking on D'Blah and causing the interaction scripts to start up and pause until the process space runs out.

Whilst I could put in a script fix to explicitly clear global #306 when you double-click on D'Blah or use an item on him, I think it may be worthwhile to experiment a bit to see if I can replicate the conditions under which the original 'talk script' gets aborted without clearing global #306. It may be a bug in the original game, but it may also be a deficiency in our engine code.

comment:3 by fingolfin, 10 years ago

Summary: DW2 - Minor CrashDW2: Minor Crash interacting with D'Blah in Act II

comment:4 by fingolfin, 9 years ago

What is the status of this item?

comment:5 by dreammaster, 9 years ago

This was a case where I could see the issue from the provided savegame, but couldn't replicate the problem to begin with. Which makes it difficult to know if any fix would work or not. I've really meant to get back to it for a while to see if I can replicate the problem.. if it's, for example, leaving the area at an exact time, then I could add a script fix to reset the value when the player re-enters the area.

I'll spend some further time on it this weekend, and see if I can't resolve the issue, one way or another.

comment:6 by dreammaster, 9 years ago

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