Repository navigation
Conversation
…onPeople#118) With a rod out, Max walks inside the fishing sub game, and MenuOpening skipped every sub game, so the main menu opened on the retail backdrop instead of over the paused world. The fishing game lets the main menu open like any walk, so it is framed too; other sub games keep retail's. The rod, float, lure, hook and bait are the fishing game's own models, not the player's, and stayed in the playerless picture where Max had stood. fishing_config_bridge.inc hands them out as PortFishingGear, and their keys join the player's. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: c68f201af4
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| for (const CCharacter2 *gear : PortFishingGear()) { | ||
| CollectCharaKeys(gear, keys); |
There was a problem hiding this comment.
Remove the fishing line from the clean pause frame
When the town or dungeon Item menu is opened in fishing control mode, this loop removes only mesh records keyed to the six character models. The captured field frame also always calls DrawFishingLine() (ps2/src/fishing.cpp:1875), which submits untagged mgCDrawPrim 2-D entries, while BuildPlayerlessReplay retains every 2-D draw except kPlayerEffectKey. Consequently the rod, float, and player dissolve away but the fishing line remains suspended at their old positions; tag or filter that primitive with the rest of the fishing gear.
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
Confirmed and fixed in de20ae7, thanks. In a replay with the rod out, the line was still faintly visible in the playerless backdrop where the rod had stood.
DrawFishingLine now wraps the retail routine (preserved through RETAIL_BRIDGES as PortRetailDrawFishingLine, override in port/src/fishingobj.cpp) in menuworld::HeldGearScope. That scope tags its 2D draws with kPlayerEffectKey only on the frame the main menu pauses on, so BuildPlayerlessReplay drops them with the rest of the gear:
- dungeon: the existing
PausingDungeonFramecheck; - town: new
PausingTownFrame, the tick whereEditLoopsetsEditDrawFlagbit 0 to ask for a menu (exposed asEditLoop_DrawFlag). That tick's frame is the oneMenuMainInitcaptures.
Checks: the same replay now shows no line. Against the previous commit, the only changed pixels are the line's column, and the field after closing the menu is pixel-identical. MenuWorld.HeldGearScopeTagsTheTownAndDungeonPauseFrames covers both pause frames and the frames around them. The dungeon side is covered by that test only; I did not replay dungeon fishing.
Review follow-up. DrawFishingLine draws the line as untagged 2D lines, and the playerless replay keeps every 2D draw but the player's effects, so the line stayed hanging where the rod had been. DrawFishingLine now wraps the retail routine (PortRetailDrawFishingLine) in HeldGearScope, which tags its draws as the player's on the frame the main menu pauses on: the dungeon's, as PlayerEffectScope already finds it, or the town's, the tick EditLoop raises EditDrawFlag bit 0 to ask for a menu (exposed as EditLoop_DrawFlag). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Ported from TheMoonPeople/ChronicleTwo#160: * Port: frame the Item page while walking with a fishing rod out (#118) With a rod out, Max walks inside the fishing sub game, and MenuOpening skipped every sub game, so the main menu opened on the retail backdrop instead of over the paused world. The fishing game lets the main menu open like any walk, so it is framed too; other sub games keep retail's. The rod, float, lure, hook and bait are the fishing game's own models, not the player's, and stayed in the playerless picture where Max had stood. fishing_config_bridge.inc hands them out as PortFishingGear, and their keys join the player's. * Port: leave the fishing line out of the paused menu picture Review follow-up. DrawFishingLine draws the line as untagged 2D lines, and the playerless replay keeps every 2D draw but the player's effects, so the line stayed hanging where the rod had been. DrawFishingLine now wraps the retail routine (PortRetailDrawFishingLine) in HeldGearScope, which tags its draws as the player's on the frame the main menu pauses on: the dungeon's, as PlayerEffectScope already finds it, or the town's, the tick EditLoop raises EditDrawFlag bit 0 to ask for a menu (exposed as EditLoop_DrawFlag).
Before: with a fishing rod out, the main menu's Item page opens on the retail backdrop instead of over the paused world (the third report in #118).
After: it opens framed, as it does without a rod. The rod, float, lure, hook and bait are left out of the paused picture along with Max.
Why: walking with a rod out runs the fishing sub game, and
menuworld::MenuOpeningskipped every sub game. The fishing game lets the main menu open like any walk (sgMenuOpenEnable), so it is framed too; the other sub games keep retail's menu.Once framed, the fishing gear stayed in the playerless picture where Max had stood, because it is the fishing game's own models, not the player's.
port/src/fishing_config_bridge.inc(appended to the fishing unit's copy, as the other config bridges are) hands them out asPortFishingGear, andCollectPlayerKeysadds their keys while fishing runs.ps2/is unchanged.Tests:
MenuWorld.FishingWalkFramesTheMenuButOtherSubGamesDoNot: fishing frames the Item page; the buggy sub game does not.Native|Unit|Bridge|MenuWorld|Fishing: 162/162 pass (3 data-dependent cases skipped).--jump town:10 --give 302, headless 1280x720): equip the Fishing Rod, close the menu, reopen Items. Before: retail backdrop. After: framed, with no rod or float left in the backdrop. The field shows Max holding the rod normally after the menu closes.🤖 Generated with Claude Code