Opened 4 years ago

Closed 4 months ago

#13804 closed defect (fixed)

SCI: LSL6: Larry can walk out of bounds in locker room

Reported by: RayKoopa Owned by: sluicebox
Priority: normal Component: Engine: SCI
Version: Keywords: pathfinding
Cc: Game: Leisure Suit Larry 6

Description (last modified by RayKoopa)

ScummVM 2.7.0git2368-g37379daf724 (Aug 27 2022 16:01:24)
Game language: English
Game version: Hi-Res 1.000.000
Windows 11 22H2 10.0.22622.586

Larry can escape the confinements of the Locker room right after undressing. Happens in both HiRes and LoRes.

Steps to reproduce:

  • Start a new game.
  • Go to the Health Spa, grab a towel.
  • Go to the Locker Room and undress with the towel.
  • Click to the left of Larry and he will walk through / behind the lockers, out of bounds.

It's not too exploitable as he still cannot escape the room; at about half height he enters the Men's Shower, at the bottom the game reset him into valid bounds as he cannot leave undressed. Also, you cannot enter the Women's Locker Room with this - just in case you asked.

This does not happen in DOSBox. Feels like in ScummVM, he isn't placed properly after undressing?

Note: The save also has a muted music bug which is unrelated, as commented by me in #13546.

Attachments (2)

lsl6hires.003 (45.2 KB ) - added by RayKoopa 4 years ago.
image-20220827-193420.png (182.0 KB ) - added by RayKoopa 4 years ago.

Download all attachments as: .zip

Change History (9)

by RayKoopa, 4 years ago

Attachment: lsl6hires.003 added

by RayKoopa, 4 years ago

Attachment: image-20220827-193420.png added

comment:1 by RayKoopa, 4 years ago

Description: modified (diff)
Summary: LSL6HIRES: Larry can walk out of bounds in locker roomLSL6: Larry can walk out of bounds in locker room

comment:2 by sluicebox, 4 years ago

Keywords: pathfinding added; map removed

ScummVM has a different pathfinding algorithm than Sierra's due to a software patent. Occasionally there are edge cases, this might be one of them. We're under the impression that the patent has since expired and that it's okay to implement it but... that is very hard so don't hold your breath. Better programmers than me have tried!

I reproduced this out of bounds walk, I can take a look later and see if this is an easy one where a coordinate patch fixes it but really the hope is that we someday implement the real algorithm and wipe all of these edge cases out.

comment:3 by RayKoopa, 4 years ago

Thanks for letting me know, didn't know there's another algorithm in use.

comment:4 by sluicebox, 4 years ago

It's amazing how few pathfinding edge-cases come up; the ScummVM algorithm is really good at almost always achieving results that are indiscernible from the original. There are papers written about the effort and programs that went into it; it's jaw dropping. It's one of those things that really makes me feel like I missed the party by... a decade or two.

I took a closer look and this script does put larry one coordinate further left than any other script, or anywhere he should be able to walk to, so it looks like an easy workaround would be to script patch those coordinates one to the right. Have to test that on lo-res and see if it's needed there too.

Please keep reporting any other out-of-bounds stuff like this. If they're easy to patch with workarounds we can, and either way they will make good test cases if/when we implement sierra's algorithm.

comment:5 by tag2015, 3 years ago

Summary: LSL6: Larry can walk out of bounds in locker roomSCI: LSL6: Larry can walk out of bounds in locker room

comment:6 by sluicebox <22204938+sluicebox@…>, 4 months ago

In 66f00128:

SCI32: Fix LSL6HIRES locker room pathfinding

Fixes bug #13804

comment:7 by sluicebox, 4 months ago

Owner: set to sluicebox
Resolution: fixed
Status: newclosed

Fixed in 66f00128f05f3bdc948080cdb2c5302b4d4a4093

I didn't add a workaround for this at the time because I was optimistic that I might get Sierra pathfinding implemented in a year or so. Nope! Instead I've kept myself busy with much better things, and I don't know when that will change, so let's just bump Larry over a pixel for now and move on.

I did get far enough along to know that workaround script patches like this are not in any way an obstacle to implementing the new algorithm in ScummVM. They're easy to disable, and if we ever get Sierra pathfinding, they will be easy to delete.

Note: See TracTickets for help on using tickets.