finished safari_zone

This commit is contained in:
jiangzhengwenjz
2019-07-02 11:28:48 +08:00
parent 7980c4aa07
commit 40a808351a
33 changed files with 216 additions and 305 deletions
+1 -1
View File
@@ -996,7 +996,7 @@ void sub_8111368(void)
else
{
sub_8111274(gUnknown_203ADF8, 1);
warp_in();
WarpIntoMap();
gFieldCallback2 = sub_8111000;
SetMainCallback2(sub_805726C);
}
+80
View File
@@ -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);
}
}
+1 -1
View File
@@ -1984,7 +1984,7 @@ bool8 ScrCmd_playslotmachine(struct ScriptContext *ctx)
{
u8 slotMachineIndex = VarGet(ScriptReadHalfword(ctx));
PlaySlotMachine(slotMachineIndex, c2_exit_to_overworld_1_continue_scripts_restart_music);
PlaySlotMachine(slotMachineIndex, CB2_ReturnToFieldContinueScriptPlayMapMusic);
ScriptContext1_Stop();
return TRUE;
}
+2 -2
View File
@@ -323,8 +323,8 @@ static void Task_SeaGallop_3(void)
PlayRainStoppingSoundEffect();
PlaySE(SE_KAIDAN);
gFieldCallback = sub_807DF64;
warp_in();
SetMainCallback2(sub_805671C);
WarpIntoMap();
SetMainCallback2(CB2_LoadMap);
ResetInitialPlayerAvatarState();
FreeFerrySpriteResources();
Free(sBg3TilemapBuffer);
+1 -1
View File
@@ -1106,7 +1106,7 @@ void sub_815E068(u8 battleType, u8 facilityClass)
void sub_815E114(void)
{
SetMainCallback2(c2_exit_to_overworld_1_continue_scripts_restart_music);
SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic);
}
void sub_815E124(u8 taskId)
+1 -1
View File
@@ -229,7 +229,7 @@ void sub_814F32C(void)
Free(GetBgTilemapBuffer(i));
}
Free(gUnknown_3002040);
SetMainCallback2(c2_exit_to_overworld_1_continue_scripts_restart_music);
SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic);
}
void sub_814F364(s16 * unk0, s16 * unk1)