Disable Bag Use In Battle - pret/pokeemerald GitHub Wiki
Disable Bag Use In Battle
Credit to ghoulslash.
Using a flag, we can prevent the player from using items in battle.
Define the flag.
In include/constants/flags.h, replace an unused flag with FLAG_DISABLE_BAG
, eg.
#define FLAG_DISABLE_BAG 0x493
Toggle Bag Usage
Open src/battle_main.c. Search for the line, case B_ACTION_USE_ITEM: in the function static void HandleTurnActionSelectionState(void)
. Change the code directly underneath to:
if (FlagGet(FLAG_DISABLE_BAG) || gBattleTypeFlags & (BATTLE_TYPE_LINK
| BATTLE_TYPE_FRONTIER_NO_PYRAMID
| BATTLE_TYPE_EREADER_TRAINER
| BATTLE_TYPE_RECORDED_LINK))
{
// etc.
If FLAG_DISABLE_BAG
is set, selecting BAG
in battle will display the message Items can't be used now.
Reset after Whiteout
Open src/overworld.c and find the function Overworld_ResetStateAfterWhiteOut
. Add the following alongside the other FlagClear
functions:
FlagClear(FLAG_DISABLE_BAG);