diff options
author | jiangzhengwenjz <jiangzhengwenjzw@qq.com> | 2019-07-02 11:28:48 +0800 |
---|---|---|
committer | jiangzhengwenjz <jiangzhengwenjzw@qq.com> | 2019-07-07 01:46:05 +0800 |
commit | 40a808351a5b76b0a536c5fac6c9479284468af8 (patch) | |
tree | 859372f605e07b09299a58fe327634408d826715 /src | |
parent | 7980c4aa071685983f84861cc7dc69d6daf30a90 (diff) |
finished safari_zone
Diffstat (limited to 'src')
-rw-r--r-- | src/quest_log.c | 2 | ||||
-rw-r--r-- | src/safari_zone.c | 80 | ||||
-rw-r--r-- | src/scrcmd.c | 2 | ||||
-rw-r--r-- | src/seagallop.c | 4 | ||||
-rw-r--r-- | src/trainer_tower.c | 2 | ||||
-rw-r--r-- | src/wireless_communication_status_screen.c | 2 |
6 files changed, 86 insertions, 6 deletions
diff --git a/src/quest_log.c b/src/quest_log.c index fe83f67e9..359470548 100644 --- a/src/quest_log.c +++ b/src/quest_log.c @@ -996,7 +996,7 @@ void sub_8111368(void) else { sub_8111274(gUnknown_203ADF8, 1); - warp_in(); + WarpIntoMap(); gFieldCallback2 = sub_8111000; SetMainCallback2(sub_805726C); } diff --git a/src/safari_zone.c b/src/safari_zone.c new file mode 100644 index 000000000..cb0a58586 --- /dev/null +++ b/src/safari_zone.c @@ -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); + } +} diff --git a/src/scrcmd.c b/src/scrcmd.c index d317a78b5..cef1a1eb7 100644 --- a/src/scrcmd.c +++ b/src/scrcmd.c @@ -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; } diff --git a/src/seagallop.c b/src/seagallop.c index ae880b2a3..e3333ef32 100644 --- a/src/seagallop.c +++ b/src/seagallop.c @@ -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); diff --git a/src/trainer_tower.c b/src/trainer_tower.c index ef2a12ce0..65d825dfe 100644 --- a/src/trainer_tower.c +++ b/src/trainer_tower.c @@ -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) diff --git a/src/wireless_communication_status_screen.c b/src/wireless_communication_status_screen.c index 1eb29be1b..846e86779 100644 --- a/src/wireless_communication_status_screen.c +++ b/src/wireless_communication_status_screen.c @@ -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) |