Upgradable Fishing Rod

Last branch update: 24th October 2024 Files changed: 4

What It Does

Upgradable Fishing Rod in Action

Replaces the three-rod system with a single ITEM_VARIABLE_ROD key item. When used, it opens a dynamic menu showing whichever “techniques” the player has unlocked; Old, Good, and Super. The latter two are gated by flags:

The last selected technique is written into OW_VAR_VARIABLE_ROD_USE_TECHNIQUE. ItemUseOnFieldCB_VariableRod() reads that VAR and triggers the old, good or super rod fishing logic accordingly. When the rod is used as a registered item, the same VAR applies, so the last used technique is remembered between uses without the player having to reselect it.

How It’s Implemented

Four files were changed, including include/config/overworld.h containing three new defines for the VAR and two FLAGS and src/item_menu.c containing the three menu actions and handler functions that each write the chosen technique to the VAR before fishing begins.

How to Use It

By default the item is ITEM_VARIABLE_ROD. To attach the behaviour to an existing rod item instead, swap the itemId and assign ItemUseOutOfBattle_VariableRod as its field use function. Repurposing FLAG_RECEIVED_OLD_ROD, FLAG_RECEIVED_GOOD_ROD, and FLAG_RECEIVED_SUPER_ROD for the technique flags is the straightforward route if those flags aren’t needed for anything else.

Installation

The diff for this feature can be used to add these changes.

Why It’s In Ikigai

Giving the player three separate fishing rod key items feels a bit odd to me. With modern generations not even including a fishing rod, having one item that improves as the story progresses fits Pokémon Ikigai’s progression design a lot better.