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 )
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)
Change History (9)
by , 4 years ago
| Attachment: | lsl6hires.003 added |
|---|
by , 4 years ago
| Attachment: | image-20220827-193420.png added |
|---|
comment:1 by , 4 years ago
| Description: | modified (diff) |
|---|---|
| Summary: | LSL6HIRES: Larry can walk out of bounds in locker room → LSL6: Larry can walk out of bounds in locker room |
comment:2 by , 4 years ago
| Keywords: | pathfinding added; map removed |
|---|
comment:3 by , 4 years ago
Thanks for letting me know, didn't know there's another algorithm in use.
comment:4 by , 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 , 3 years ago
| Summary: | LSL6: Larry can walk out of bounds in locker room → SCI: LSL6: Larry can walk out of bounds in locker room |
|---|
comment:7 by , 4 months ago
| Owner: | set to |
|---|---|
| Resolution: | → fixed |
| Status: | new → closed |
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.

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.