2 Disable Catching Pokemon
ghoulslash edited this page 2020-12-07 08:56:28 -07:00

Disable Catching Pokemon

Credit to ghoulslash

This feature adds a flag that, when set, disables using any poke ball type in battle:

Add a new Flag:

In include/constants/flags.h, replace an unused flag with FLAG_DISABLE_CATCHING, eg.

#define FLAG_DISABLE_CATCHING 0x494

Make the flag functional

Open src/item_use.c. Navigate to the function, void ItemUseInBattle_PokeBall(u8 taskId). Add the following code to the start of the function:

    if (FlagGet(FLAG_DISABLE_CATCHING))
    {
        static const u8 sText_BallsCannotBeUsed[] = _("Poké Balls cannot be used\nright now!\p");
        DisplayItemMessage(taskId, 1, sText_BallsCannotBeUsed, BagMenu_InitListsMenu);
    }
    else if (IsPlayerPartyAndPokemonStorageFull() == FALSE) // have room for mon
    { 
         //etc...

When FLAG_DISABLE_CATCHING is set, the player will no longer be able to use a poke ball in battle.

Reset after Whiteout

Open src/overworld.c and find the function Overworld_ResetStateAfterWhiteOut. Add the following alongside the other FlagClear functions:

FlagClear(FLAG_DISABLE_CATCHING);