Opened 7 years ago

Closed 7 years ago

Last modified 7 years ago

#9836 closed defect (fixed)

SCI: TORIN: Game becomes stuck when using worm-Boogle in cave

Reported by: bgK Owned by: csnover
Priority: high Component: Engine: SCI
Version: Keywords: sci32
Cc: Game: Torin's Passage

Description (last modified by bgK)

Game: Torin's passage Windows / English from GOG.com
ScummVM: b5ac7cc3ed3e9b993f84ecd5619771ac92ffba79

In Escarpa, when first getting the tile from the girls bathing, and then using Boogle's worm form on the left end of the dragon cave in this specific order, the game gets stuck in a waiting state.

To reproduce, load the attached save and:

  1. Use Boogle's yoyo form on the ladder. As Boogle, pick up the tile, go through the doorway.
  2. As Torin, climb up outside, jump the gorge, go left, up the left stairs, and inside the dragon's cave.
  3. As Torin, use Boogle's worm form on the left end of the screen. The game gets stuck in a waiting state.

Looks like a script bug, because if instead of doing step 3, you go out of the cave, Torin asks Boogle to go back inside its bag. As if the script responsible for getting out of the bath cave forgot to put Boogle back in Torin's bag.

Attachments (2)

Capture d'écran de 2017-06-11 12-38-37.png (126.1 KB ) - added by bgK 7 years ago.
torin-cd-win.009 (59.0 KB ) - added by bgK 7 years ago.
Save

Download all attachments as: .zip

Change History (10)

by bgK, 7 years ago

Attachment: torin-cd-win.009 added

Save

comment:1 by bgK, 7 years ago

Description: modified (diff)

comment:2 by bgK, 7 years ago

Description: modified (diff)

comment:3 by csnover, 7 years ago

Priority: normalhigh

comment:4 by csnover, 7 years ago

Owner: set to csnover
Resolution: fixed
Status: newclosed

Thanks for your report!

The script in the dragon’s cave for this cutscene was designed explicitly to anticipate that Boogle may not be in the bag. Unfortunately, it failed to implement that case correctly. With these reproduction steps, Boogle ended up on the wrong side of the wall obstacle and could not move to the requested cuepoint during the cutscene. (For future reference, the same thing happens in the original interpreter.)

A script patch for this bug has been added in commit c4ca32453357a6e75567fc75522a8c1c4756dd68 and will be available in builds 1.10.0git-3526 and later.

comment:5 by bgK, 7 years ago

Thanks for the fix.

I noticed there are two very minor issues left in this case:

  • When in the cave with Boogle out of the bag but not visible, clicking on the doorway makes the game transition to the outside area. Torin then asks Boogle to go back inside the bag. It seems incorrect because Boogle was not visible in the cave.
  • When making Boogle worm to the left side of the cave, and worm back to the right side, Boogle stays out of the bag. Making him worm back to the left side causes him to teleport to the entrance of the cave, and then walk to the left side.

Not sure if this is worth fixing.

comment:6 by csnover, 7 years ago

Resolution: fixed
Status: closednew

Uch. So, after running into more problems with my first patch, I went back and rechecked what is going on. In the seraglio, soBoogleBackUp::ff fails to set the Boogle-in-bag flag, whereas allowing the whole exit cutscene to play without fast forwarding will put Boogle back in the bag and set the flag. So I am now trying to find some bytes to reclaim in that script to make fast-forward set the flag as well.

comment:7 by csnover, 7 years ago

Resolution: fixed
Status: newclosed

OK, script bug fix round two, which targets soBoogleBackUp::ff instead.

A patch for this issue has been added in commit 1ca905e860035c4bfa5e0dd54a2a9788bf3e7f37 and will be available in builds 1.10.0git-3531 and higher.

comment:8 by bgK, 7 years ago

It's working perfectly now. Thanks again.

Note: See TracTickets for help on using tickets.