Skip to content

Fix Slingshot scrub game softlock when hitting target before receiving item#2560

Open
djevangelia wants to merge 2 commits into
OoTRandomizer:Devfrom
djevangelia:slingshotfix
Open

Fix Slingshot scrub game softlock when hitting target before receiving item#2560
djevangelia wants to merge 2 commits into
OoTRandomizer:Devfrom
djevangelia:slingshotfix

Conversation

@djevangelia
Copy link
Copy Markdown

Make player unable to re-trigger the Slingshot game after scrub has given an item before player has received it. Fixes #1703.

When scrub has returned to its flower and burrowed, it re-enters the "wait for target hit" state (not in later versions). When player receives item, a flag is set and prevents player from activating scrub again.
If player mashes Slingshot and manages to win the game again, before receiving this item and flag, the scrub will perform a weird cutscene (cut short in randomizer) and this cutscene will never end, resulting in a softlock.

When the scrub gives an item, a variable within the scrub is set, spawnedItem. So, the softlock is easily prevented by adding an additional requirement for the scrub to activate:
if (!LINK_IS_ADULT && !GET_ITEMGETINF(ITEMGETINF_1D) && !this->spawnedItem)

Disassembly

NTSC 1.0 matching disassembly for modified function EnDntNomal_TargetWait here

Testing

Tested in Ares 1.47, Project64 3.0.1 and Mupen64plus 2.8.
Softlock and fix look like this: https://www.youtube.com/watch?v=s9u17DWz5f4

@fenhl fenhl added Type: Bug Something isn't working Component: ASM/C Changes some internals of the ASM/C libraries Status: Needs Review Someone should be looking at it labels Apr 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Component: ASM/C Changes some internals of the ASM/C libraries Status: Needs Review Someone should be looking at it Type: Bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

LW Target in Woods can softlock if Collection Delay is performed

2 participants