Repository navigation
Fishing Bait Array Fix - #212
Merged
Merged
Conversation
PAL retail's bait-changing event (program 134 in gedit/e01, e02, e04 and s09) only attaches eight of the thirteen baits the picker offers. Carrot, Potato Cake, Minon, Battan and Petite Fish were taken from the bag and never attached. When the picker closes on one of them, the port now puts it on the script's own list, so the script attaches it with retail's code.
SirFancyBacon
force-pushed
the
fishing-bait-fix
branch
from
October 23, 2026 21:39
e3d0ac4 to
cf6de33
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Choosing Carrot, Potato Cake, Minon, Battan or Petite Fish as fishing bait used the bait up but left the hook empty. The other eight baits worked. All thirteen now attach. fixes #209
Cause
The bug is in PAL retail's data, not in the port.
gedit/e01,e02,e04ands09). It opens the bait picker (_GOTO_CHANGE_ESA, ext 25), then compares the choice with its own list of eight baits. Only on a match does it load and attach the bait (_LOAD_ITEM_FILE,_LOAD_ITEM,_SET_FISHING_ESA); otherwise it goes straight to fishing with an empty hook.editloop3.cpp) offers all thirteen baits and takes the chosen one from the bag, so the five the list lacks are lost.Fix
PortEdEventMenuMode,port/src/editloop3.cpp),ListBaitForScript(port/src/fishing.cpp) writes the chosen bait into the first slot of the script's list. The script then attaches it through retail's own path, so nothing else changes.p_use_item, static ineditloop3.cpp) is reached through the unit's stubs header (EditLoop3_p_use_item). Nothing inps2/srcchanges.docs/PC.mdnotes the export under editloop3's per-unit adjustments.Testing
FishingBait.*: a bait the list lacks is put on it; a listed bait, a cancelled pick and a differently laid-out script are left alone.GfxValidationones, which need a Vulkan validation layer the SDK lacks;scripts/port/truncations.py --checkpasses.