finished safari_zone
This commit is contained in:
@@ -0,0 +1,80 @@
|
||||
#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);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user