Skip to content

Commit

Permalink
Implemented Capture Combos
Browse files Browse the repository at this point in the history
Inspired by Diego Mertens' idea.
https://whackahack.com/foro/threads/combos-de-captura-batalla-v-1-1.64591/

Notes:
-A chain starts when the Player catches a Pokémon.
-The chain keeps going as long as the Player keeps catching more of the same species.
-If the Player finds a different species than the one currently chained, the chain gets reset.
-To compensate, there's an 85% chance the next species you'll find is the same one that is currently chained.
-If the Player moves to another map, the chain breaks.
-It also breaks if the Player reloads their savefile.
-When a streak of 60 captures is achieved, there's a 10% chance the next chained species the Player catches will have 6x31 IVs.
-Every streak of 10 captures gives you an extra shiny re-roll (6 max.) which stacks with fishing streaks and the Shiny Charm.
  • Loading branch information
LOuroboros committed Jul 13, 2021
1 parent e32ab23 commit 43e123d
Show file tree
Hide file tree
Showing 7 changed files with 142 additions and 72 deletions.
19 changes: 19 additions & 0 deletions data/scripts/misc_scripts.inc
Expand Up @@ -442,3 +442,22 @@ PokemonDataInfoBox::

EventScript_PokemonDataInfoBox_Text_ChosenMonStats:
.string "Stats of {STR_VAR_1}$"

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

Script_CatchingStreak::
compare VAR_WILD_POKEMON_CHAIN_COUNT, 0
goto_if_eq Script_NoStreak
buffernumberstring 4, VAR_WILD_POKEMON_CHAIN_COUNT
msgbox Script_CatchingStreak_Text_Status, MSGBOX_NPC
end

Script_NoStreak:
msgbox Script_Text_NoStreak, MSGBOX_NPC
end

Script_Text_NoStreak:
.string "Current chain: EMPTY.$"

Script_CatchingStreak_Text_Status:
.string "Current chain: {STR_VAR_5} {STR_VAR_4}.$"
4 changes: 2 additions & 2 deletions include/constants/vars.h
Expand Up @@ -263,8 +263,8 @@
#define VAR_ROXANNE_CALL_STEP_COUNTER 0x40F4
#define VAR_SCOTT_BF_CALL_STEP_COUNTER 0x40F5
#define VAR_RIVAL_RAYQUAZA_CALL_STEP_COUNTER 0x40F6
#define VAR_UNUSED_0x40F7 0x40F7 // Unused Var
#define VAR_UNUSED_0x40F8 0x40F8 // Unused Var
#define VAR_WILD_POKEMON_CHAIN_COUNT 0x40F7
#define VAR_CURRENTLY_CHAINED_SPECIES 0x40F8
#define VAR_UNUSED_0x40F9 0x40F9 // Unused Var
#define VAR_UNUSED_0x40FA 0x40FA // Unused Var
#define VAR_UNUSED_0x40FB 0x40FB // Unused Var
Expand Down
18 changes: 17 additions & 1 deletion src/battle_setup.c
Expand Up @@ -614,15 +614,31 @@ void StartRegiBattle(void)

static void CB2_EndWildBattle(void)
{
u16 species = GetMonData(&gEnemyParty[0], MON_DATA_SPECIES);

CpuFill16(0, (void*)(BG_PLTT), BG_PLTT_SIZE);
ResetOamRange(0, 128);

if (IsPlayerDefeated(gBattleOutcome) == TRUE && !InBattlePyramid() && !InBattlePike())
{
SetMainCallback2(CB2_WhiteOut);
}
else
{
if (gBattleOutcome == B_OUTCOME_CAUGHT)
{
if (VarGet(VAR_CURRENTLY_CHAINED_SPECIES) != species)
{
VarSet(VAR_CURRENTLY_CHAINED_SPECIES, species);
GetSpeciesName(gStringVar4, species);
VarSet(VAR_WILD_POKEMON_CHAIN_COUNT, 0);
}
VarSet(VAR_WILD_POKEMON_CHAIN_COUNT, VarGet(VAR_WILD_POKEMON_CHAIN_COUNT) + 1);
}
else
{
VarSet(VAR_WILD_POKEMON_CHAIN_COUNT, 0);
VarSet(VAR_CURRENTLY_CHAINED_SPECIES, 0);
}
SetMainCallback2(CB2_ReturnToField);
gFieldCallback = FieldCB_ReturnToFieldNoScriptCheckMusic;
}
Expand Down
134 changes: 73 additions & 61 deletions src/debug.c
Expand Up @@ -71,6 +71,7 @@ enum { // Util
DEBUG_UTIL_MENU_ITEM_OPEN_PC,
DEBUG_UTIL_MENU_ITEM_DO_WONDER_TRADE,
DEBUG_UTIL_MENU_ITEM_CHANGE_COSTUME,
DEBUG_UTIL_MENU_ITEM_CATCH_CHAIN_STATUS,
};
enum { // Flags
DEBUG_FLAG_MENU_ITEM_FLAGS,
Expand Down Expand Up @@ -106,7 +107,7 @@ enum { //Sound

// *******************************
// Constants
#define DEBUG_MAIN_MENU_WIDTH 13
#define DEBUG_MAIN_MENU_WIDTH 14
#define DEBUG_MAIN_MENU_HEIGHT 8

#define DEBUG_NUMBER_DISPLAY_WIDTH 10
Expand Down Expand Up @@ -190,6 +191,7 @@ static void DebugAction_Util_ForceEggHatch(u8);
static void DebugAction_Util_OpenPC(u8 taskId);
static void DebugAction_Util_DoWonderTrade(u8 taskId);
static void DebugAction_Util_ChangeCostume(u8 taskId);
static void DebugAction_Util_CatchChainStatus(u8 taskId);

static void DebugAction_Flags_Flags(u8 taskId);
static void DebugAction_Flags_FlagsSelect(u8 taskId);
Expand Down Expand Up @@ -247,6 +249,7 @@ extern u8 EventScript_CheckEVs[];
extern u8 EventScript_CheckIVs[];
extern u8 EventScript_ForceEggHatch[];
extern u8 EventScript_DoWonderTrade[];
extern u8 Script_CatchingStreak[];

#define ABILITY_NAME_LENGTH 12
extern const u8 gAbilityNames[][ABILITY_NAME_LENGTH + 1];
Expand Down Expand Up @@ -285,6 +288,7 @@ static const u8 gDebugText_Util_ForceEggHatch[] = _("Force Egg Hatch")
static const u8 gDebugText_Util_OpenPC[] = _("Open PC");
static const u8 gDebugText_Util_DoWonderTrade[] = _("Do a Wonder Trade");
static const u8 gDebugText_Util_ChangeCostume[] = _("Change Costume");
static const u8 gDebugText_Util_CatchChainStatus[] = _("Catch Chain Status");
// Flags Menu
static const u8 gDebugText_Flags_Flags[] = _("Edit Flags");
static const u8 gDebugText_Flags_SetPokedexFlags[] = _("All Pokédex Flags");
Expand Down Expand Up @@ -388,39 +392,40 @@ static const struct ListMenuItem sDebugMenu_Items_Main[] =

static const struct ListMenuItem sDebugMenu_Items_Utilities[] =
{
[DEBUG_UTIL_MENU_ITEM_HEAL_PARTY] = {gDebugText_Util_HealParty, DEBUG_UTIL_MENU_ITEM_HEAL_PARTY},
[DEBUG_UTIL_MENU_ITEM_FLY] = {gDebugText_Util_Fly, DEBUG_UTIL_MENU_ITEM_FLY},
[DEBUG_UTIL_MENU_ITEM_WARP] = {gDebugText_Util_WarpToMap, DEBUG_UTIL_MENU_ITEM_WARP},
[DEBUG_UTIL_MENU_ITEM_SAVEBLOCK] = {gDebugText_Util_SaveBlockSpace, DEBUG_UTIL_MENU_ITEM_SAVEBLOCK},
[DEBUG_UTIL_MENU_ITEM_CHECKWALLCLOCK] = {gDebugText_Util_CheckWallClock, DEBUG_UTIL_MENU_ITEM_CHECKWALLCLOCK},
[DEBUG_UTIL_MENU_ITEM_SETWALLCLOCK] = {gDebugText_Util_SetWallClock, DEBUG_UTIL_MENU_ITEM_SETWALLCLOCK},
[DEBUG_UTIL_MENU_ITEM_CHECKWEEKDAY] = {gDebugText_Util_CheckWeekDay, DEBUG_UTIL_MENU_ITEM_CHECKWEEKDAY},
[DEBUG_UTIL_MENU_ITEM_WATCHCREDITS] = {gDebugText_Util_WatchCredits, DEBUG_UTIL_MENU_ITEM_WATCHCREDITS},
[DEBUG_UTIL_MENU_ITEM_TRAINER_NAME] = {gDebugText_Util_Trainer_Name, DEBUG_UTIL_MENU_ITEM_TRAINER_NAME},
[DEBUG_UTIL_MENU_ITEM_TRAINER_GENDER] = {gDebugText_Util_Trainer_Gender, DEBUG_UTIL_MENU_ITEM_TRAINER_GENDER},
[DEBUG_UTIL_MENU_ITEM_TRAINER_ID] = {gDebugText_Util_Trainer_Id, DEBUG_UTIL_MENU_ITEM_TRAINER_ID},
[DEBUG_UTIL_MENU_ITEM_CHECKEVS] = {gDebugText_Util_CheckEVs, DEBUG_UTIL_MENU_ITEM_CHECKEVS},
[DEBUG_UTIL_MENU_ITEM_CHECKIVS] = {gDebugText_Util_CheckIVs, DEBUG_UTIL_MENU_ITEM_CHECKIVS},
[DEBUG_UTIL_MENU_ITEM_FORCEEGGHATCH] = {gDebugText_Util_ForceEggHatch, DEBUG_UTIL_MENU_ITEM_FORCEEGGHATCH},
[DEBUG_UTIL_MENU_ITEM_OPEN_PC] = {gDebugText_Util_OpenPC, DEBUG_UTIL_MENU_ITEM_OPEN_PC},
[DEBUG_UTIL_MENU_ITEM_DO_WONDER_TRADE] = {gDebugText_Util_DoWonderTrade, DEBUG_UTIL_MENU_ITEM_DO_WONDER_TRADE},
[DEBUG_UTIL_MENU_ITEM_CHANGE_COSTUME] = {gDebugText_Util_ChangeCostume, DEBUG_UTIL_MENU_ITEM_CHANGE_COSTUME},
[DEBUG_UTIL_MENU_ITEM_HEAL_PARTY] = {gDebugText_Util_HealParty, DEBUG_UTIL_MENU_ITEM_HEAL_PARTY},
[DEBUG_UTIL_MENU_ITEM_FLY] = {gDebugText_Util_Fly, DEBUG_UTIL_MENU_ITEM_FLY},
[DEBUG_UTIL_MENU_ITEM_WARP] = {gDebugText_Util_WarpToMap, DEBUG_UTIL_MENU_ITEM_WARP},
[DEBUG_UTIL_MENU_ITEM_SAVEBLOCK] = {gDebugText_Util_SaveBlockSpace, DEBUG_UTIL_MENU_ITEM_SAVEBLOCK},
[DEBUG_UTIL_MENU_ITEM_CHECKWALLCLOCK] = {gDebugText_Util_CheckWallClock, DEBUG_UTIL_MENU_ITEM_CHECKWALLCLOCK},
[DEBUG_UTIL_MENU_ITEM_SETWALLCLOCK] = {gDebugText_Util_SetWallClock, DEBUG_UTIL_MENU_ITEM_SETWALLCLOCK},
[DEBUG_UTIL_MENU_ITEM_CHECKWEEKDAY] = {gDebugText_Util_CheckWeekDay, DEBUG_UTIL_MENU_ITEM_CHECKWEEKDAY},
[DEBUG_UTIL_MENU_ITEM_WATCHCREDITS] = {gDebugText_Util_WatchCredits, DEBUG_UTIL_MENU_ITEM_WATCHCREDITS},
[DEBUG_UTIL_MENU_ITEM_TRAINER_NAME] = {gDebugText_Util_Trainer_Name, DEBUG_UTIL_MENU_ITEM_TRAINER_NAME},
[DEBUG_UTIL_MENU_ITEM_TRAINER_GENDER] = {gDebugText_Util_Trainer_Gender, DEBUG_UTIL_MENU_ITEM_TRAINER_GENDER},
[DEBUG_UTIL_MENU_ITEM_TRAINER_ID] = {gDebugText_Util_Trainer_Id, DEBUG_UTIL_MENU_ITEM_TRAINER_ID},
[DEBUG_UTIL_MENU_ITEM_CHECKEVS] = {gDebugText_Util_CheckEVs, DEBUG_UTIL_MENU_ITEM_CHECKEVS},
[DEBUG_UTIL_MENU_ITEM_CHECKIVS] = {gDebugText_Util_CheckIVs, DEBUG_UTIL_MENU_ITEM_CHECKIVS},
[DEBUG_UTIL_MENU_ITEM_FORCEEGGHATCH] = {gDebugText_Util_ForceEggHatch, DEBUG_UTIL_MENU_ITEM_FORCEEGGHATCH},
[DEBUG_UTIL_MENU_ITEM_OPEN_PC] = {gDebugText_Util_OpenPC, DEBUG_UTIL_MENU_ITEM_OPEN_PC},
[DEBUG_UTIL_MENU_ITEM_DO_WONDER_TRADE] = {gDebugText_Util_DoWonderTrade, DEBUG_UTIL_MENU_ITEM_DO_WONDER_TRADE},
[DEBUG_UTIL_MENU_ITEM_CHANGE_COSTUME] = {gDebugText_Util_ChangeCostume, DEBUG_UTIL_MENU_ITEM_CHANGE_COSTUME},
[DEBUG_UTIL_MENU_ITEM_CATCH_CHAIN_STATUS] = {gDebugText_Util_CatchChainStatus, DEBUG_UTIL_MENU_ITEM_CATCH_CHAIN_STATUS},
};
static const struct ListMenuItem sDebugMenu_Items_Flags[] =
{
[DEBUG_FLAG_MENU_ITEM_FLAGS] = {gDebugText_Flags_Flags, DEBUG_FLAG_MENU_ITEM_FLAGS},
[DEBUG_FLAG_MENU_ITEM_POKEDEXFLAGS] = {gDebugText_Flags_SetPokedexFlags, DEBUG_FLAG_MENU_ITEM_POKEDEXFLAGS},
[DEBUG_FLAG_MENU_ITEM_POKEDEXONOFF] = {gDebugText_Flags_SwitchDex, DEBUG_FLAG_MENU_ITEM_POKEDEXONOFF},
[DEBUG_FLAG_MENU_ITEM_NATDEXONOFF] = {gDebugText_Flags_SwitchNationalDex, DEBUG_FLAG_MENU_ITEM_NATDEXONOFF},
[DEBUG_FLAG_MENU_ITEM_POKENAVONOFF] = {gDebugText_Flags_SwitchPokeNav, DEBUG_FLAG_MENU_ITEM_POKENAVONOFF},
[DEBUG_FLAG_MENU_ITEM_FLYANYWHERE] = {gDebugText_Flags_ToggleFlyFlags, DEBUG_FLAG_MENU_ITEM_FLYANYWHERE},
[DEBUG_FLAG_MENU_ITEM_GETALLBADGES] = {gDebugText_Flags_ToggleAllBadges, DEBUG_FLAG_MENU_ITEM_GETALLBADGES},
[DEBUG_FLAG_MENU_ITEM_COLISSION_ONOFF] = {gDebugText_Flags_SwitchCollision, DEBUG_FLAG_MENU_ITEM_COLISSION_ONOFF},
[DEBUG_FLAG_MENU_ITEM_ENCOUNTER_ONOFF] = {gDebugText_Flags_SwitchEncounter, DEBUG_FLAG_MENU_ITEM_ENCOUNTER_ONOFF},
[DEBUG_FLAG_MENU_ITEM_TRAINER_SEE_ONOFF]= {gDebugText_Flags_SwitchTrainerSee, DEBUG_FLAG_MENU_ITEM_TRAINER_SEE_ONOFF},
[DEBUG_FLAG_MENU_ITEM_BAG_USE_ONOFF] = {gDebugText_Flags_SwitchBagUse, DEBUG_FLAG_MENU_ITEM_BAG_USE_ONOFF},
[DEBUG_FLAG_MENU_ITEM_CATCHING_ONOFF] = {gDebugText_Flags_SwitchCatching, DEBUG_FLAG_MENU_ITEM_CATCHING_ONOFF},
[DEBUG_FLAG_MENU_ITEM_SHINIES_ONOFF] = {gDebugText_Flags_SwitchShinies, DEBUG_FLAG_MENU_ITEM_SHINIES_ONOFF},
[DEBUG_FLAG_MENU_ITEM_FLAGS] = {gDebugText_Flags_Flags, DEBUG_FLAG_MENU_ITEM_FLAGS},
[DEBUG_FLAG_MENU_ITEM_POKEDEXFLAGS] = {gDebugText_Flags_SetPokedexFlags, DEBUG_FLAG_MENU_ITEM_POKEDEXFLAGS},
[DEBUG_FLAG_MENU_ITEM_POKEDEXONOFF] = {gDebugText_Flags_SwitchDex, DEBUG_FLAG_MENU_ITEM_POKEDEXONOFF},
[DEBUG_FLAG_MENU_ITEM_NATDEXONOFF] = {gDebugText_Flags_SwitchNationalDex, DEBUG_FLAG_MENU_ITEM_NATDEXONOFF},
[DEBUG_FLAG_MENU_ITEM_POKENAVONOFF] = {gDebugText_Flags_SwitchPokeNav, DEBUG_FLAG_MENU_ITEM_POKENAVONOFF},
[DEBUG_FLAG_MENU_ITEM_FLYANYWHERE] = {gDebugText_Flags_ToggleFlyFlags, DEBUG_FLAG_MENU_ITEM_FLYANYWHERE},
[DEBUG_FLAG_MENU_ITEM_GETALLBADGES] = {gDebugText_Flags_ToggleAllBadges, DEBUG_FLAG_MENU_ITEM_GETALLBADGES},
[DEBUG_FLAG_MENU_ITEM_COLISSION_ONOFF] = {gDebugText_Flags_SwitchCollision, DEBUG_FLAG_MENU_ITEM_COLISSION_ONOFF},
[DEBUG_FLAG_MENU_ITEM_ENCOUNTER_ONOFF] = {gDebugText_Flags_SwitchEncounter, DEBUG_FLAG_MENU_ITEM_ENCOUNTER_ONOFF},
[DEBUG_FLAG_MENU_ITEM_TRAINER_SEE_ONOFF] = {gDebugText_Flags_SwitchTrainerSee, DEBUG_FLAG_MENU_ITEM_TRAINER_SEE_ONOFF},
[DEBUG_FLAG_MENU_ITEM_BAG_USE_ONOFF] = {gDebugText_Flags_SwitchBagUse, DEBUG_FLAG_MENU_ITEM_BAG_USE_ONOFF},
[DEBUG_FLAG_MENU_ITEM_CATCHING_ONOFF] = {gDebugText_Flags_SwitchCatching, DEBUG_FLAG_MENU_ITEM_CATCHING_ONOFF},
[DEBUG_FLAG_MENU_ITEM_SHINIES_ONOFF] = {gDebugText_Flags_SwitchShinies, DEBUG_FLAG_MENU_ITEM_SHINIES_ONOFF},
};
static const struct ListMenuItem sDebugMenu_Items_Vars[] =
{
Expand Down Expand Up @@ -455,39 +460,40 @@ static void (*const sDebugMenu_Actions_Main[])(u8) =
};
static void (*const sDebugMenu_Actions_Utilities[])(u8) =
{
[DEBUG_UTIL_MENU_ITEM_HEAL_PARTY] = DebugAction_Util_HealParty,
[DEBUG_UTIL_MENU_ITEM_FLY] = DebugAction_Util_Fly,
[DEBUG_UTIL_MENU_ITEM_WARP] = DebugAction_Util_Warp_Warp,
[DEBUG_UTIL_MENU_ITEM_SAVEBLOCK] = DebugAction_Util_CheckSaveBlock,
[DEBUG_UTIL_MENU_ITEM_CHECKWALLCLOCK] = DebugAction_Util_CheckWallClock,
[DEBUG_UTIL_MENU_ITEM_SETWALLCLOCK] = DebugAction_Util_SetWallClock,
[DEBUG_UTIL_MENU_ITEM_CHECKWEEKDAY] = DebugAction_Util_CheckWeekDay,
[DEBUG_UTIL_MENU_ITEM_WATCHCREDITS] = DebugAction_Util_WatchCredits,
[DEBUG_UTIL_MENU_ITEM_TRAINER_NAME] = DebugAction_Util_Trainer_Name,
[DEBUG_UTIL_MENU_ITEM_TRAINER_GENDER] = DebugAction_Util_Trainer_Gender,
[DEBUG_UTIL_MENU_ITEM_TRAINER_ID] = DebugAction_Util_Trainer_Id,
[DEBUG_UTIL_MENU_ITEM_CHECKEVS] = DebugAction_Util_CheckEVs,
[DEBUG_UTIL_MENU_ITEM_CHECKIVS] = DebugAction_Util_CheckIVs,
[DEBUG_UTIL_MENU_ITEM_FORCEEGGHATCH] = DebugAction_Util_ForceEggHatch,
[DEBUG_UTIL_MENU_ITEM_OPEN_PC] = DebugAction_Util_OpenPC,
[DEBUG_UTIL_MENU_ITEM_DO_WONDER_TRADE] = DebugAction_Util_DoWonderTrade,
[DEBUG_UTIL_MENU_ITEM_CHANGE_COSTUME] = DebugAction_Util_ChangeCostume,
[DEBUG_UTIL_MENU_ITEM_HEAL_PARTY] = DebugAction_Util_HealParty,
[DEBUG_UTIL_MENU_ITEM_FLY] = DebugAction_Util_Fly,
[DEBUG_UTIL_MENU_ITEM_WARP] = DebugAction_Util_Warp_Warp,
[DEBUG_UTIL_MENU_ITEM_SAVEBLOCK] = DebugAction_Util_CheckSaveBlock,
[DEBUG_UTIL_MENU_ITEM_CHECKWALLCLOCK] = DebugAction_Util_CheckWallClock,
[DEBUG_UTIL_MENU_ITEM_SETWALLCLOCK] = DebugAction_Util_SetWallClock,
[DEBUG_UTIL_MENU_ITEM_CHECKWEEKDAY] = DebugAction_Util_CheckWeekDay,
[DEBUG_UTIL_MENU_ITEM_WATCHCREDITS] = DebugAction_Util_WatchCredits,
[DEBUG_UTIL_MENU_ITEM_TRAINER_NAME] = DebugAction_Util_Trainer_Name,
[DEBUG_UTIL_MENU_ITEM_TRAINER_GENDER] = DebugAction_Util_Trainer_Gender,
[DEBUG_UTIL_MENU_ITEM_TRAINER_ID] = DebugAction_Util_Trainer_Id,
[DEBUG_UTIL_MENU_ITEM_CHECKEVS] = DebugAction_Util_CheckEVs,
[DEBUG_UTIL_MENU_ITEM_CHECKIVS] = DebugAction_Util_CheckIVs,
[DEBUG_UTIL_MENU_ITEM_FORCEEGGHATCH] = DebugAction_Util_ForceEggHatch,
[DEBUG_UTIL_MENU_ITEM_OPEN_PC] = DebugAction_Util_OpenPC,
[DEBUG_UTIL_MENU_ITEM_DO_WONDER_TRADE] = DebugAction_Util_DoWonderTrade,
[DEBUG_UTIL_MENU_ITEM_CHANGE_COSTUME] = DebugAction_Util_ChangeCostume,
[DEBUG_UTIL_MENU_ITEM_CATCH_CHAIN_STATUS] = DebugAction_Util_CatchChainStatus,
};
static void (*const sDebugMenu_Actions_Flags[])(u8) =
{
[DEBUG_FLAG_MENU_ITEM_FLAGS] = DebugAction_Flags_Flags,
[DEBUG_FLAG_MENU_ITEM_POKEDEXFLAGS] = DebugAction_Flags_SetPokedexFlags,
[DEBUG_FLAG_MENU_ITEM_POKEDEXONOFF] = DebugAction_Flags_SwitchDex,
[DEBUG_FLAG_MENU_ITEM_NATDEXONOFF] = DebugAction_Flags_SwitchNatDex,
[DEBUG_FLAG_MENU_ITEM_POKENAVONOFF] = DebugAction_Flags_SwitchPokeNav,
[DEBUG_FLAG_MENU_ITEM_FLYANYWHERE] = DebugAction_Flags_ToggleFlyFlags,
[DEBUG_FLAG_MENU_ITEM_GETALLBADGES] = DebugAction_Flags_ToggleBadgeFlags,
[DEBUG_FLAG_MENU_ITEM_COLISSION_ONOFF] = DebugAction_Flags_CollisionOnOff,
[DEBUG_FLAG_MENU_ITEM_ENCOUNTER_ONOFF] = DebugAction_Flags_EncounterOnOff,
[DEBUG_FLAG_MENU_ITEM_TRAINER_SEE_ONOFF]= DebugAction_Flags_TrainerSeeOnOff,
[DEBUG_FLAG_MENU_ITEM_BAG_USE_ONOFF] = DebugAction_Flags_BagUseOnOff,
[DEBUG_FLAG_MENU_ITEM_CATCHING_ONOFF] = DebugAction_Flags_CatchingOnOff,
[DEBUG_FLAG_MENU_ITEM_SHINIES_ONOFF] = DebugAction_Flags_ShiniesOnOff,
[DEBUG_FLAG_MENU_ITEM_FLAGS] = DebugAction_Flags_Flags,
[DEBUG_FLAG_MENU_ITEM_POKEDEXFLAGS] = DebugAction_Flags_SetPokedexFlags,
[DEBUG_FLAG_MENU_ITEM_POKEDEXONOFF] = DebugAction_Flags_SwitchDex,
[DEBUG_FLAG_MENU_ITEM_NATDEXONOFF] = DebugAction_Flags_SwitchNatDex,
[DEBUG_FLAG_MENU_ITEM_POKENAVONOFF] = DebugAction_Flags_SwitchPokeNav,
[DEBUG_FLAG_MENU_ITEM_FLYANYWHERE] = DebugAction_Flags_ToggleFlyFlags,
[DEBUG_FLAG_MENU_ITEM_GETALLBADGES] = DebugAction_Flags_ToggleBadgeFlags,
[DEBUG_FLAG_MENU_ITEM_COLISSION_ONOFF] = DebugAction_Flags_CollisionOnOff,
[DEBUG_FLAG_MENU_ITEM_ENCOUNTER_ONOFF] = DebugAction_Flags_EncounterOnOff,
[DEBUG_FLAG_MENU_ITEM_TRAINER_SEE_ONOFF] = DebugAction_Flags_TrainerSeeOnOff,
[DEBUG_FLAG_MENU_ITEM_BAG_USE_ONOFF] = DebugAction_Flags_BagUseOnOff,
[DEBUG_FLAG_MENU_ITEM_CATCHING_ONOFF] = DebugAction_Flags_CatchingOnOff,
[DEBUG_FLAG_MENU_ITEM_SHINIES_ONOFF] = DebugAction_Flags_ShiniesOnOff,
};
static void (*const sDebugMenu_Actions_Vars[])(u8) =
{
Expand Down Expand Up @@ -1103,6 +1109,12 @@ static void DebugTask_ChangeCostume_End(u8 taskId)
EnableBothScriptContexts();
}
}
static void DebugAction_Util_CatchChainStatus(u8 taskId)
{
Debug_DestroyMenu(taskId);
ScriptContext2_Enable();
ScriptContext1_SetupScript(Script_CatchingStreak);
}

// *******************************
// Actions Flags
Expand Down
7 changes: 6 additions & 1 deletion src/fieldmap.c
Expand Up @@ -17,6 +17,7 @@
#include "wild_encounter.h"
#include "constants/rgb.h"
#include "constants/metatile_behaviors.h"
#include "event_data.h"

struct ConnectionFlags
{
Expand Down Expand Up @@ -71,14 +72,18 @@ struct MapHeader const *const GetMapHeaderFromConnection(struct MapConnection *c

void InitMap(void)
{
gChainFishingStreak = 0; //reset chain fishing on map transition
gChainFishingStreak = 0; // reset chain fishing on map transition
VarSet(VAR_CURRENTLY_CHAINED_SPECIES, 0); // reset capture chain on map transition
VarSet(VAR_WILD_POKEMON_CHAIN_COUNT, 0); // reset capture chain on map transition
InitMapLayoutData(&gMapHeader);
SetOccupiedSecretBaseEntranceMetatiles(gMapHeader.events);
RunOnLoadMapScript();
}

void InitMapFromSavedGame(void)
{
VarSet(VAR_CURRENTLY_CHAINED_SPECIES, 0); // reset capture chain when resuming a savefile
VarSet(VAR_WILD_POKEMON_CHAIN_COUNT, 0); // reset capture chain when resuming a savefile
InitMapLayoutData(&gMapHeader);
InitSecretBaseAppearance(FALSE);
SetOccupiedSecretBaseEntranceMetatiles(gMapHeader.events);
Expand Down

0 comments on commit 43e123d

Please sign in to comment.