summaryrefslogtreecommitdiff
path: root/Disable-Catching-Pokemon.md
blob: 1cd163fe455c754e35240ad6bdb68f2ac6c8377c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
## Disable Catching Pokemon

Credit to ghoulslash

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

<a href="https://imgur.com/fm2Q6Ds"><img src="https://i.imgur.com/fm2Q6Ds.png" title="source: imgur.com" /></a>

### Add a new Flag:
In [include/constants/flags.h](../blob/master/include/constants/flags.h), replace an unused flag with `FLAG_DISABLE_CATCHING`, eg.
```c
#define FLAG_DISABLE_CATCHING 0x494
```

### Make the flag functional
Open [src/item_use.c](../blob/master/src/item_use.c). Navigate to the function, `void ItemUseInBattle_PokeBall(u8 taskId)`. Add the following code to the start of the function:
```c
    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](../blob/master/src/overworld.c) and find the function `Overworld_ResetStateAfterWhiteOut`. Add the following alongside the other `FlagClear` functions:
```
FlagClear(FLAG_DISABLE_CATCHING);
```