mirror of
https://github.com/pret/pokefirered.git
synced 2026-05-09 04:23:14 -05:00
81 lines
1.7 KiB
C
81 lines
1.7 KiB
C
#include "global.h"
|
|
#include "battle.h"
|
|
#include "event_scripts.h"
|
|
#include "overworld.h"
|
|
#include "battle.h"
|
|
#include "script.h"
|
|
#include "event_data.h"
|
|
#include "field_screen_effect.h"
|
|
|
|
EWRAM_DATA u8 gNumSafariBalls = 0;
|
|
EWRAM_DATA u16 gSafariZoneStepCounter = 0;
|
|
|
|
bool32 GetSafariZoneFlag(void)
|
|
{
|
|
return FlagGet(FLAG_SYS_SAFARI_MODE);
|
|
}
|
|
|
|
void SetSafariZoneFlag(void)
|
|
{
|
|
FlagSet(FLAG_SYS_SAFARI_MODE);
|
|
}
|
|
|
|
void ResetSafariZoneFlag(void)
|
|
{
|
|
FlagClear(FLAG_SYS_SAFARI_MODE);
|
|
}
|
|
|
|
void EnterSafariMode(void)
|
|
{
|
|
IncrementGameStat(GAME_STAT_ENTERED_SAFARI_ZONE);
|
|
SetSafariZoneFlag();
|
|
gNumSafariBalls = 30;
|
|
gSafariZoneStepCounter = 600;
|
|
}
|
|
|
|
void ExitSafariMode(void)
|
|
{
|
|
ResetSafariZoneFlag();
|
|
gNumSafariBalls = 0;
|
|
gSafariZoneStepCounter = 0;
|
|
}
|
|
|
|
bool8 SafariZoneTakeStep(void)
|
|
{
|
|
if (GetSafariZoneFlag() == FALSE)
|
|
return FALSE;
|
|
gSafariZoneStepCounter--;
|
|
if (gSafariZoneStepCounter == 0)
|
|
{
|
|
ScriptContext1_SetupScript(EventScript_SafariTimesUp);
|
|
return TRUE;
|
|
}
|
|
return FALSE;
|
|
}
|
|
|
|
void SafariZoneRetirePrompt(void)
|
|
{
|
|
ScriptContext1_SetupScript(EventScript_SafariRetire);
|
|
}
|
|
|
|
void CB2_EndSafariBattle(void)
|
|
{
|
|
if (gNumSafariBalls != 0)
|
|
{
|
|
SetMainCallback2(CB2_ReturnToField);
|
|
}
|
|
else if (gBattleOutcome == B_OUTCOME_NO_SAFARI_BALLS)
|
|
{
|
|
ScriptContext2_RunNewScript(EventScript_SafariWarpOut);
|
|
WarpIntoMap();
|
|
gFieldCallback = sub_807E3EC;
|
|
SetMainCallback2(CB2_LoadMap);
|
|
}
|
|
else if (gBattleOutcome == B_OUTCOME_CAUGHT)
|
|
{
|
|
ScriptContext1_SetupScript(EventScript_SafariOutOfBalls);
|
|
ScriptContext1_Stop();
|
|
SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic);
|
|
}
|
|
}
|