summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorjiangzhengwenjz <jiangzhengwenjzw@qq.com>2019-07-02 11:28:48 +0800
committerjiangzhengwenjz <jiangzhengwenjzw@qq.com>2019-07-07 01:46:05 +0800
commit40a808351a5b76b0a536c5fac6c9479284468af8 (patch)
tree859372f605e07b09299a58fe327634408d826715 /src
parent7980c4aa071685983f84861cc7dc69d6daf30a90 (diff)
finished safari_zone
Diffstat (limited to 'src')
-rw-r--r--src/quest_log.c2
-rw-r--r--src/safari_zone.c80
-rw-r--r--src/scrcmd.c2
-rw-r--r--src/seagallop.c4
-rw-r--r--src/trainer_tower.c2
-rw-r--r--src/wireless_communication_status_screen.c2
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)