summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <PikalaxALT@gmail.com>2020-03-28 14:03:51 -0400
committerPikalaxALT <PikalaxALT@gmail.com>2020-03-28 14:03:51 -0400
commitf0fe4904d0fa8b4e964b64b896c10d4599eb15d3 (patch)
tree740143a91293bc1f480f0fdf934ffe0cbbd71f13
parent9bcc82856db7e6417bb56265bbcc04dae290cbf3 (diff)
through sub_8056918
-rw-r--r--asm/overworld.s545
-rw-r--r--include/field_camera.h1
-rw-r--r--include/field_fadetransition.h12
-rw-r--r--include/field_screen_effect.h2
-rw-r--r--include/global.fieldmap.h6
-rw-r--r--include/map_name_popup.h2
-rw-r--r--include/overworld.h14
-rw-r--r--include/quest_log.h6
-rw-r--r--include/strings.h4
-rw-r--r--src/cable_club.c2
-rw-r--r--src/daycare.c2
-rw-r--r--src/diploma.c2
-rw-r--r--src/easy_chat_2.c2
-rw-r--r--src/field_fadetransition.c22
-rw-r--r--src/field_screen_effect.c12
-rw-r--r--src/learn_move.c2
-rw-r--r--src/map_name_popup.c2
-rw-r--r--src/option_menu.c2
-rw-r--r--src/overworld.c291
-rw-r--r--src/party_menu_specials.c2
-rw-r--r--src/quest_log.c8
-rw-r--r--src/seagallop.c2
-rw-r--r--src/strings.c4
-rw-r--r--src/trade.c4
-rw-r--r--src/trade_scene.c2
25 files changed, 354 insertions, 599 deletions
diff --git a/asm/overworld.s b/asm/overworld.s
index f17e829e7..0e201e8ea 100644
--- a/asm/overworld.s
+++ b/asm/overworld.s
@@ -5,539 +5,6 @@
.text
- thumb_func_start sub_80564C8
-sub_80564C8: @ 80564C8
- push {lr}
- sub sp, 0x4
- bl sub_8112B3C
- bl sub_805BEB8
- bl sub_8111C68
- mov r0, sp
- bl FieldClearPlayerInput
- ldr r0, _08056508 @ =gUnknown_3005E90
- ldr r0, [r0]
- str r0, [sp]
- mov r0, sp
- bl FieldInput_HandleCancelSignpost
- bl ScriptContext2_IsEnabled
- lsls r0, 24
- cmp r0, 0
- bne _08056512
- mov r0, sp
- bl ProcessPlayerFieldInput
- cmp r0, 0x1
- bne _0805650C
- bl ScriptContext2_Enable
- bl DismissMapNamePopup
- b _08056522
- .align 2, 0
-_08056508: .4byte gUnknown_3005E90
-_0805650C:
- bl RunQuestLogCB
- b _08056522
-_08056512:
- bl sub_8111CD0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08056522
- bl RunQuestLogCB
-_08056522:
- ldr r0, _08056530 @ =gUnknown_3005E90
- bl FieldClearPlayerInput
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_08056530: .4byte gUnknown_3005E90
- thumb_func_end sub_80564C8
-
- thumb_func_start CB1_Overworld
-CB1_Overworld: @ 8056534
- push {r4,lr}
- ldr r4, _0805655C @ =gMain
- ldr r1, [r4, 0x4]
- ldr r0, _08056560 @ =sub_80565B4
- cmp r1, r0
- bne _08056570
- bl sub_8112CAC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08056554
- ldr r0, _08056564 @ =gQuestLogState
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _08056568
-_08056554:
- bl sub_80564C8
- b _08056570
- .align 2, 0
-_0805655C: .4byte gMain
-_08056560: .4byte sub_80565B4
-_08056564: .4byte gQuestLogState
-_08056568:
- ldrh r0, [r4, 0x2E]
- ldrh r1, [r4, 0x2C]
- bl sub_805644C
-_08056570:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end CB1_Overworld
-
- thumb_func_start sub_8056578
-sub_8056578: @ 8056578
- push {lr}
- bl ScriptContext2_RunScript
- bl RunTasks
- bl AnimateSprites
- bl CameraUpdate
- bl sub_8115798
- bl UpdateCameraPanning
- bl BuildOamBuffer
- bl UpdatePaletteFade
- bl UpdateTilesetAnimations
- bl DoScheduledBgTilemapCopiesToVram
- pop {r0}
- bx r0
- thumb_func_end sub_8056578
-
- thumb_func_start CB2_OverworldBasic
-CB2_OverworldBasic: @ 80565A8
- push {lr}
- bl sub_8056578
- pop {r0}
- bx r0
- thumb_func_end CB2_OverworldBasic
-
- thumb_func_start sub_80565B4
-sub_80565B4: @ 80565B4
- push {r4,lr}
- ldr r0, _080565DC @ =gPaletteFade
- ldrb r0, [r0, 0x7]
- lsrs r0, 7
- adds r4, r0, 0
- cmp r4, 0
- beq _080565C8
- movs r0, 0
- bl SetVBlankCallback
-_080565C8:
- bl sub_8056578
- cmp r4, 0
- beq _080565D4
- bl SetFieldVBlankCallback
-_080565D4:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080565DC: .4byte gPaletteFade
- thumb_func_end sub_80565B4
-
- thumb_func_start SetMainCallback1
-SetMainCallback1: @ 80565E0
- ldr r1, _080565E8 @ =gMain
- str r0, [r1]
- bx lr
- .align 2, 0
-_080565E8: .4byte gMain
- thumb_func_end SetMainCallback1
-
- thumb_func_start map_post_load_hook_exec
-map_post_load_hook_exec: @ 80565EC
- push {r4,lr}
- ldr r4, _08056604 @ =gFieldCallback2
- ldr r0, [r4]
- cmp r0, 0
- beq _08056618
- bl _call_via_r0
- lsls r0, 24
- cmp r0, 0
- bne _08056608
- movs r0, 0
- b _08056638
- .align 2, 0
-_08056604: .4byte gFieldCallback2
-_08056608:
- movs r1, 0
- str r1, [r4]
- ldr r0, _08056614 @ =gFieldCallback
- str r1, [r0]
- b _08056636
- .align 2, 0
-_08056614: .4byte gFieldCallback
-_08056618:
- ldr r0, _08056628 @ =gFieldCallback
- ldr r0, [r0]
- cmp r0, 0
- beq _0805662C
- bl _call_via_r0
- b _08056630
- .align 2, 0
-_08056628: .4byte gFieldCallback
-_0805662C:
- bl FieldCB_UnionRoomWarp
-_08056630:
- ldr r1, _08056640 @ =gFieldCallback
- movs r0, 0
- str r0, [r1]
-_08056636:
- movs r0, 0x1
-_08056638:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08056640: .4byte gFieldCallback
- thumb_func_end map_post_load_hook_exec
-
- thumb_func_start CB2_NewGame
-CB2_NewGame: @ 8056644
- push {lr}
- bl FieldClearVBlankHBlankCallbacks
- bl StopMapMusic
- bl ResetSafariZoneFlag_
- bl NewGameInitData
- bl ResetInitialPlayerAvatarState
- bl PlayTimeCounter_Start
- bl ScriptContext1_Init
- bl ScriptContext2_Disable
- ldr r1, _0805668C @ =gFieldCallback
- ldr r0, _08056690 @ =sub_807DF7C
- str r0, [r1]
- ldr r1, _08056694 @ =gFieldCallback2
- movs r0, 0
- str r0, [r1]
- ldr r0, _08056698 @ =gMain + 0x438
- bl do_load_map_stuff_loop
- bl SetFieldVBlankCallback
- ldr r0, _0805669C @ =CB1_Overworld
- bl SetMainCallback1
- ldr r0, _080566A0 @ =sub_80565B4
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_0805668C: .4byte gFieldCallback
-_08056690: .4byte sub_807DF7C
-_08056694: .4byte gFieldCallback2
-_08056698: .4byte gMain + 0x438
-_0805669C: .4byte CB1_Overworld
-_080566A0: .4byte sub_80565B4
- thumb_func_end CB2_NewGame
-
- thumb_func_start CB2_WhiteOut
-CB2_WhiteOut: @ 80566A4
- push {lr}
- sub sp, 0x4
- ldr r1, _08056708 @ =gMain
- movs r0, 0x87
- lsls r0, 3
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x77
- bls _08056702
- bl FieldClearVBlankHBlankCallbacks
- bl StopMapMusic
- bl ResetSafariZoneFlag_
- bl sub_8054BC8
- movs r0, 0x2
- bl sub_80559F8
- bl ScriptContext1_Init
- bl ScriptContext2_Disable
- ldr r1, _0805670C @ =gFieldCallback
- ldr r0, _08056710 @ =sub_807F5F0
- str r0, [r1]
- mov r1, sp
- movs r0, 0
- strb r0, [r1]
- mov r0, sp
- bl do_load_map_stuff_loop
- bl sub_8112364
- bl SetFieldVBlankCallback
- ldr r0, _08056714 @ =CB1_Overworld
- bl SetMainCallback1
- ldr r0, _08056718 @ =sub_80565B4
- bl SetMainCallback2
-_08056702:
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_08056708: .4byte gMain
-_0805670C: .4byte gFieldCallback
-_08056710: .4byte sub_807F5F0
-_08056714: .4byte CB1_Overworld
-_08056718: .4byte sub_80565B4
- thumb_func_end CB2_WhiteOut
-
- thumb_func_start CB2_LoadMap
-CB2_LoadMap: @ 805671C
- push {lr}
- bl FieldClearVBlankHBlankCallbacks
- bl ScriptContext1_Init
- bl ScriptContext2_Disable
- movs r0, 0
- bl SetMainCallback1
- ldr r0, _08056740 @ =CB2_DoChangeMap
- bl SetMainCallback2
- ldr r1, _08056744 @ =gMain
- ldr r0, _08056748 @ =sub_805674C
- str r0, [r1, 0x8]
- pop {r0}
- bx r0
- .align 2, 0
-_08056740: .4byte CB2_DoChangeMap
-_08056744: .4byte gMain
-_08056748: .4byte sub_805674C
- thumb_func_end CB2_LoadMap
-
- thumb_func_start sub_805674C
-sub_805674C: @ 805674C
- push {lr}
- ldr r0, _08056768 @ =gMain + 0x438
- bl do_load_map_stuff_loop
- bl sub_8113748
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0805676C
- bl sub_81119C8
- b _0805677C
- .align 2, 0
-_08056768: .4byte gMain + 0x438
-_0805676C:
- bl SetFieldVBlankCallback
- ldr r0, _08056780 @ =CB1_Overworld
- bl SetMainCallback1
- ldr r0, _08056784 @ =sub_80565B4
- bl SetMainCallback2
-_0805677C:
- pop {r0}
- bx r0
- .align 2, 0
-_08056780: .4byte CB1_Overworld
-_08056784: .4byte sub_80565B4
- thumb_func_end sub_805674C
-
- thumb_func_start CB2_ReturnToFieldCableClub
-CB2_ReturnToFieldCableClub: @ 8056788
- push {lr}
- bl FieldClearVBlankHBlankCallbacks
- ldr r0, _080567A0 @ =gFieldCallback
- ldr r1, _080567A4 @ =FieldCB_ReturnToFieldWirelessLink
- str r1, [r0]
- ldr r0, _080567A8 @ =c2_80567AC
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_080567A0: .4byte gFieldCallback
-_080567A4: .4byte FieldCB_ReturnToFieldWirelessLink
-_080567A8: .4byte c2_80567AC
- thumb_func_end CB2_ReturnToFieldCableClub
-
- thumb_func_start c2_80567AC
-c2_80567AC: @ 80567AC
- push {lr}
- ldr r0, _080567D0 @ =gMain + 0x438
- bl map_loading_iteration_3
- cmp r0, 0
- beq _080567CC
- bl SetFieldVBlankCallback
- ldr r0, _080567D4 @ =CB1_UpdateLinkState
- bl SetMainCallback1
- bl sub_80578D8
- ldr r0, _080567D8 @ =sub_80565B4
- bl SetMainCallback2
-_080567CC:
- pop {r0}
- bx r0
- .align 2, 0
-_080567D0: .4byte gMain + 0x438
-_080567D4: .4byte CB1_UpdateLinkState
-_080567D8: .4byte sub_80565B4
- thumb_func_end c2_80567AC
-
- thumb_func_start CB2_ReturnToField
-CB2_ReturnToField: @ 80567DC
- push {lr}
- bl IsUpdateLinkStateCBActive
- cmp r0, 0x1
- bne _080567F4
- ldr r0, _080567F0 @ =c2_exit_to_overworld_2_link
- bl SetMainCallback2
- b _080567FE
- .align 2, 0
-_080567F0: .4byte c2_exit_to_overworld_2_link
-_080567F4:
- bl FieldClearVBlankHBlankCallbacks
- ldr r0, _08056804 @ =c2_exit_to_overworld_2_local
- bl SetMainCallback2
-_080567FE:
- pop {r0}
- bx r0
- .align 2, 0
-_08056804: .4byte c2_exit_to_overworld_2_local
- thumb_func_end CB2_ReturnToField
-
- thumb_func_start c2_exit_to_overworld_2_local
-c2_exit_to_overworld_2_local: @ 8056808
- push {lr}
- ldr r0, _08056824 @ =gMain + 0x438
- bl sub_8056CD8
- cmp r0, 0
- beq _0805681E
- bl SetFieldVBlankCallback
- ldr r0, _08056828 @ =sub_80565B4
- bl SetMainCallback2
-_0805681E:
- pop {r0}
- bx r0
- .align 2, 0
-_08056824: .4byte gMain + 0x438
-_08056828: .4byte sub_80565B4
- thumb_func_end c2_exit_to_overworld_2_local
-
- thumb_func_start c2_exit_to_overworld_2_link
-c2_exit_to_overworld_2_link: @ 805682C
- push {lr}
- bl sub_8058244
- cmp r0, 0
- bne _08056846
- ldr r0, _0805684C @ =gMain + 0x438
- bl map_loading_iteration_2_link
- cmp r0, 0
- beq _08056846
- ldr r0, _08056850 @ =sub_80565B4
- bl SetMainCallback2
-_08056846:
- pop {r0}
- bx r0
- .align 2, 0
-_0805684C: .4byte gMain + 0x438
-_08056850: .4byte sub_80565B4
- thumb_func_end c2_exit_to_overworld_2_link
-
- thumb_func_start c2_8056854
-c2_8056854: @ 8056854
- push {lr}
- bl FieldClearVBlankHBlankCallbacks
- bl StopMapMusic
- ldr r0, _08056878 @ =CB1_UpdateLinkState
- bl SetMainCallback1
- bl sub_80578D8
- ldr r0, _0805687C @ =gWirelessCommType
- ldrb r0, [r0]
- cmp r0, 0
- beq _08056888
- ldr r1, _08056880 @ =gFieldCallback
- ldr r0, _08056884 @ =FieldCB_ReturnToFieldWirelessLink
- b _0805688C
- .align 2, 0
-_08056878: .4byte CB1_UpdateLinkState
-_0805687C: .4byte gWirelessCommType
-_08056880: .4byte gFieldCallback
-_08056884: .4byte FieldCB_ReturnToFieldWirelessLink
-_08056888:
- ldr r1, _080568A0 @ =gFieldCallback
- ldr r0, _080568A4 @ =FieldCB_ReturnToFieldWiredLink
-_0805688C:
- str r0, [r1]
- bl ScriptContext1_Init
- bl ScriptContext2_Disable
- bl CB2_ReturnToField
- pop {r0}
- bx r0
- .align 2, 0
-_080568A0: .4byte gFieldCallback
-_080568A4: .4byte FieldCB_ReturnToFieldWiredLink
- thumb_func_end c2_8056854
-
- thumb_func_start CB2_ReturnToFieldWithOpenMenu
-CB2_ReturnToFieldWithOpenMenu: @ 80568A8
- push {lr}
- bl FieldClearVBlankHBlankCallbacks
- ldr r1, _080568BC @ =gFieldCallback2
- ldr r0, _080568C0 @ =FieldCB2_ReturnToStartMenuInit
- str r0, [r1]
- bl CB2_ReturnToField
- pop {r0}
- bx r0
- .align 2, 0
-_080568BC: .4byte gFieldCallback2
-_080568C0: .4byte FieldCB2_ReturnToStartMenuInit
- thumb_func_end CB2_ReturnToFieldWithOpenMenu
-
- thumb_func_start sub_80568C4
-sub_80568C4: @ 80568C4
- push {lr}
- bl FieldClearVBlankHBlankCallbacks
- ldr r1, _080568D8 @ =gFieldCallback
- ldr r0, _080568DC @ =sub_807DD44
- str r0, [r1]
- bl CB2_ReturnToField
- pop {r0}
- bx r0
- .align 2, 0
-_080568D8: .4byte gFieldCallback
-_080568DC: .4byte sub_807DD44
- thumb_func_end sub_80568C4
-
- thumb_func_start CB2_ReturnToFieldContinueScriptPlayMapMusic
-CB2_ReturnToFieldContinueScriptPlayMapMusic: @ 80568E0
- push {lr}
- bl FieldClearVBlankHBlankCallbacks
- ldr r1, _080568F4 @ =gFieldCallback
- ldr r0, _080568F8 @ =FieldCallback_ReturnToEventScript2
- str r0, [r1]
- bl CB2_ReturnToField
- pop {r0}
- bx r0
- .align 2, 0
-_080568F4: .4byte gFieldCallback
-_080568F8: .4byte FieldCallback_ReturnToEventScript2
- thumb_func_end CB2_ReturnToFieldContinueScriptPlayMapMusic
-
- thumb_func_start CB2_Overworld
-CB2_Overworld: @ 80568FC
- push {lr}
- bl FieldClearVBlankHBlankCallbacks
- ldr r1, _08056910 @ =gFieldCallback
- ldr r0, _08056914 @ =sub_807DF7C
- str r0, [r1]
- bl CB2_ReturnToField
- pop {r0}
- bx r0
- .align 2, 0
-_08056910: .4byte gFieldCallback
-_08056914: .4byte sub_807DF7C
- thumb_func_end CB2_Overworld
-
- thumb_func_start sub_8056918
-sub_8056918: @ 8056918
- push {lr}
- ldr r0, _08056934 @ =gMapHeader
- ldrb r1, [r0, 0x19]
- movs r0, 0xFC
- ands r0, r1
- cmp r0, 0x4
- bne _0805692C
- movs r0, 0
- bl CreateMapNamePopupIfNotAlreadyRunning
-_0805692C:
- bl sub_807DF7C
- pop {r0}
- bx r0
- .align 2, 0
-_08056934: .4byte gMapHeader
- thumb_func_end sub_8056918
-
thumb_func_start CB2_ContinueSavedGame
CB2_ContinueSavedGame: @ 8056938
push {lr}
@@ -928,7 +395,7 @@ _08056CA8:
cmp r0, 0x4
bne _08056CCA
movs r0, 0
- bl CreateMapNamePopupIfNotAlreadyRunning
+ bl ShowMapNamePopup
b _08056CCA
.align 2, 0
_08056CBC: .4byte gMapHeader
@@ -1670,14 +1137,14 @@ sub_80572D8: @ 80572D8
bl SetFieldVBlankCallback
ldr r0, _080572F8 @ =CB1_Overworld
bl SetMainCallback1
- ldr r0, _080572FC @ =sub_80565B4
+ ldr r0, _080572FC @ =CB2_Overworld
bl SetMainCallback2
pop {r0}
bx r0
.align 2, 0
_080572F4: .4byte gMain + 0x438
_080572F8: .4byte CB1_Overworld
-_080572FC: .4byte sub_80565B4
+_080572FC: .4byte CB2_Overworld
thumb_func_end sub_80572D8
thumb_func_start sub_8057300
@@ -2376,8 +1843,8 @@ _080578D0: .4byte gLinkPartnersHeldKeys
_080578D4: .4byte gUnknown_3000E84
thumb_func_end CB1_UpdateLinkState
- thumb_func_start sub_80578D8
-sub_80578D8: @ 80578D8
+ thumb_func_start ResetAllMultiplayerState
+ResetAllMultiplayerState: @ 80578D8
push {lr}
bl sub_805793C
ldr r0, _080578E8 @ =sub_8057D5C
@@ -2386,7 +1853,7 @@ sub_80578D8: @ 80578D8
bx r0
.align 2, 0
_080578E8: .4byte sub_8057D5C
- thumb_func_end sub_80578D8
+ thumb_func_end ResetAllMultiplayerState
thumb_func_start sub_80578EC
sub_80578EC: @ 80578EC
diff --git a/include/field_camera.h b/include/field_camera.h
index 9c23bb774..fa9ac0d72 100644
--- a/include/field_camera.h
+++ b/include/field_camera.h
@@ -32,5 +32,6 @@ void UpdateCameraPanning(void);
void InstallCameraPanAheadCallback(void);
void DrawDoorMetatileAt(int x, int y, const u16 *data);
void move_tilemap_camera_to_upper_left_corner(void);
+void CameraUpdate(void);
#endif //GUARD_FIELD_CAMERA_H
diff --git a/include/field_fadetransition.h b/include/field_fadetransition.h
index 240353f5e..b57ef14b0 100644
--- a/include/field_fadetransition.h
+++ b/include/field_fadetransition.h
@@ -3,7 +3,7 @@
#include "global.h"
-void sub_807DF7C(void);
+void FieldCB_RushInjuredPokemonToCenter(void);
void DoWarp(void);
void DoDiveWarp(void);
void DoDoorWarp(void);
@@ -11,9 +11,9 @@ void DoDoorWarp(void);
void DoFallWarp(void);
void DoTeleportWarp(void);
void sub_807E500(void);
-void FieldCB_UnionRoomWarp(void);
+void FieldCB_DefaultWarpExit(void);
void WarpFadeOutScreen(void);
-void FieldCallback_ReturnToEventScript2(void);
+void FieldCB_ContinueScriptHandleMusic(void);
void FadeInFromBlack(void);
void FadeTransition_FadeInOnReturnToStartMenu(void);
void WarpFadeInScreen(void);
@@ -28,5 +28,11 @@ void DoLavaridgeGymB1FWarp(void);
void DoLavaridgeGym1FWarp(void);
void DoTeleportWarp(void);
void DoUnionRoomWarp(void);
+void FieldCB_ReturnToFieldWirelessLink(void);
+void FieldCB_ReturnToFieldCableLink(void);
+bool8 FieldCB_ReturnToFieldOpenStartMenu(void);
+void FieldCB_ContinueScript(void);
+void FieldCB_ContinueScriptHandleMusic(void);
+void FieldCB_WarpExitFadeFromBlack(void);
#endif // GUARD_FIELD_FADETRANSITION_H
diff --git a/include/field_screen_effect.h b/include/field_screen_effect.h
index a15d99120..ca9242945 100644
--- a/include/field_screen_effect.h
+++ b/include/field_screen_effect.h
@@ -9,7 +9,7 @@ void sub_80B0244(void);
void sub_807E3EC(void);
void DoOutwardBarnDoorWipe(void);
void Task_BarnDoorWipe(u8 taskId);
-void sub_807F5F0(void);
+void FieldCB_RushInjuredPokemonToCenter(void);
extern const s32 gMaxFlashLevel;
diff --git a/include/global.fieldmap.h b/include/global.fieldmap.h
index 0d45a6d68..33f562d40 100644
--- a/include/global.fieldmap.h
+++ b/include/global.fieldmap.h
@@ -205,10 +205,10 @@ struct MapHeader
#define MAP_ALLOW_BIKE (1 << 0)
#define MAP_ALLOW_ESCAPE_ROPE (1 << 1)
#define MAP_ALLOW_RUN (1 << 2)
-#define MAP_SHOW_MAP_NAME (1 << 3)
-#define UNUSED_MAP_FLAGS (1 << 4 | 1 << 5 | 1 << 6 | 1 << 7)
+#define MAP_SHOW_MAP_NAME (1 << 2)
+#define UNUSED_MAP_FLAGS (1 << 3 | 1 << 4 | 1 << 5 | 1 << 6 | 1 << 7)
-#define SHOW_MAP_NAME_ENABLED ((gMapHeader.flags & (MAP_SHOW_MAP_NAME | UNUSED_MAP_FLAGS)) == MAP_SHOW_MAP_NAME)
+#define SHOW_MAP_NAME_ENABLED ((gMapHeader.escapeRope & (MAP_SHOW_MAP_NAME | UNUSED_MAP_FLAGS)) == MAP_SHOW_MAP_NAME)
struct ObjectEvent
{
diff --git a/include/map_name_popup.h b/include/map_name_popup.h
index a7c1234c6..3058489f7 100644
--- a/include/map_name_popup.h
+++ b/include/map_name_popup.h
@@ -3,7 +3,7 @@
#include "global.h"
-void CreateMapNamePopupIfNotAlreadyRunning(bool32 palIntoFadedBuffer);
+void ShowMapNamePopup(bool32 palIntoFadedBuffer);
void DismissMapNamePopup(void);
#endif //GUARD_MAP_NAME_POPUP_H
diff --git a/include/overworld.h b/include/overworld.h
index b0311c51c..d8f72de27 100644
--- a/include/overworld.h
+++ b/include/overworld.h
@@ -78,10 +78,6 @@ void SetFixedDiveWarp(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y);
void SetFixedHoleWarp(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y);
void SetEscapeWarp(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y);
void Overworld_SetHealLocationWarp(u8);
-void sub_8084DD4(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y);
-void sub_8084E2C(s8, s8, s8, s8, s8);
-void sub_8084E80(s8, s8, s8, s8, s8);
-void sub_8084EBC(s16, s16);
void SetWarpDestinationToEscapeWarp(void);
void SetWarpDestinationToLastHealLocation(void);
u8 IsMapTypeOutdoors(u8 mapType);
@@ -102,14 +98,10 @@ bool32 IsUpdateLinkStateCBActive(void);
void ClearLinkPlayerObjectEvents(void);
const struct MapHeader *const Overworld_GetMapHeaderByGroupAndId(u16, u16);
void ObjectEventMoveDestCoords(struct ObjectEvent *, u32, s16 *, s16 *);
-void sub_8086230(void);
void CB2_ReturnToField(void);
-bool32 sub_8087598(void);
void CB2_ReturnToFieldContinueScriptPlayMapMusic(void);
void WarpIntoMap(void);
u8 GetMapTypeByGroupAndId(s8 mapGroup, s8 mapNum);
-void sub_8086194(void);
-void sub_8084CCC(u8 spawn);
void SetWarpDestinationToMapWarp(s8 mapGroup, s8 mapNum, s8 warpNum);
void c2_load_new_map(void);
void SetWarpDestinationToDynamicWarp(u8 unused);
@@ -142,7 +134,7 @@ extern bool8 (* gFieldCallback2)(void);
void SetLastHealLocationWarp(u8 healLocaionId);
void LoadMapFromCameraTransition(u8 mapGroup, u8 mapNum);
-void CB2_Overworld(void);
+void sub_80568FC(void);
void CB2_OverworldBasic(void);
void CB2_NewGame(void);
bool8 IsMapTypeOutdoors(u8 mapType);
@@ -171,7 +163,7 @@ bool32 sub_8058318(void);
void CB2_ReturnToFieldWithOpenMenu(void);
void CB2_WhiteOut(void);
-void c2_8056854(void);
+void CB2_ReturnToFieldFromMultiplayer(void);
void ApplyNewEncryptionKeyToGameStats(u32 newKey);
void SetContinueGameWarpToDynamicWarp(int);
@@ -192,7 +184,7 @@ void sub_8057F70(void);
void sub_8057F48(void);
void SetMainCallback1(MainCallback cb);
void CB1_Overworld(void);
-void sub_80568C4(void);
+void CB2_ReturnToFieldContinueScript(void);
u8 GetLastUsedWarpMapSectionId(void);
void StoreInitialPlayerAvatarState(void);
void UpdateEscapeWarp(s16 x, s16 y);
diff --git a/include/quest_log.h b/include/quest_log.h
index a353cf709..3a751e51d 100644
--- a/include/quest_log.h
+++ b/include/quest_log.h
@@ -9,6 +9,7 @@
extern u8 gQuestLogState;
extern u8 gUnknown_3005E88;
extern const u16 gUnknown_84566A8[];
+extern struct FieldInput gUnknown_3005E90;
void sub_8112720(u8);
void SetQuestLogEvent(u16, const u16 *);
@@ -51,5 +52,10 @@ void sub_8111708(void);
void sub_81127F8(struct FieldInput * a0);
void sub_8112B3C(void);
void RunQuestLogCB(void);
+void sub_8111C68(void);
+bool8 sub_8111CD0(void);
+void sub_8115798(void);
+bool8 sub_8113748(void);
+void sub_81119C8(void);
#endif //GUARD_QUEST_LOG_H
diff --git a/include/strings.h b/include/strings.h
index 37d856a86..eb6a47ce7 100644
--- a/include/strings.h
+++ b/include/strings.h
@@ -1037,8 +1037,8 @@ extern const u8 gText_RegionMap_AreaDesc_PatternBush[];
extern const u8 gText_RegionMap_AreaDesc_DottedHole[];
// field_screen_effect
-extern const u8 gUnknown_841B554[];
-extern const u8 gUnknown_841B5B6[];
+extern const u8 gText_PlayerScurriedToCenter[];
+extern const u8 gText_PlayerScurriedBackHome[];
// save_failed_screen
extern const u8 gText_SaveFailedScreen_CheckingBackupMemory[];
diff --git a/src/cable_club.c b/src/cable_club.c
index 93e333bef..e1cab2d02 100644
--- a/src/cable_club.c
+++ b/src/cable_club.c
@@ -750,7 +750,7 @@ void CB2_ReturnFromCableClubBattle(void)
}
else
{
- gMain.savedCallback = c2_8056854;
+ gMain.savedCallback = CB2_ReturnToFieldFromMultiplayer;
}
SetMainCallback2(CB2_SetUpSaveAfterLinkBattle);
}
diff --git a/src/daycare.c b/src/daycare.c
index e07c2a234..1e50a7c09 100644
--- a/src/daycare.c
+++ b/src/daycare.c
@@ -1766,7 +1766,7 @@ static void Task_EggHatch(u8 taskID)
{
CleanupOverworldWindowsAndTilemaps();
SetMainCallback2(CB2_EggHatch_0);
- gFieldCallback = FieldCallback_ReturnToEventScript2;
+ gFieldCallback = FieldCB_ContinueScriptHandleMusic;
DestroyTask(taskID);
}
}
diff --git a/src/diploma.c b/src/diploma.c
index f702eebd5..5c653d071 100644
--- a/src/diploma.c
+++ b/src/diploma.c
@@ -193,7 +193,7 @@ static void Task_DiplomaReturnToOverworld(u8 taskId)
DestroyTask(taskId);
FreeAllWindowBuffers();
FREE_AND_SET_NULL(gDiploma);
- SetMainCallback2(CB2_Overworld);
+ SetMainCallback2(sub_80568FC);
}
static void DiplomaBgInit(void)
diff --git a/src/easy_chat_2.c b/src/easy_chat_2.c
index 4b3c70b67..948b7c39f 100644
--- a/src/easy_chat_2.c
+++ b/src/easy_chat_2.c
@@ -279,7 +279,7 @@ void ShowEasyChatScreen(void)
default:
return;
}
- DoEasyChatScreen(gSpecialVar_0x8004, words, sub_80568C4);
+ DoEasyChatScreen(gSpecialVar_0x8004, words, CB2_ReturnToFieldContinueScript);
}
static const u16 sECPhrase_MysteryEventIsExciting[] = {
diff --git a/src/field_fadetransition.c b/src/field_fadetransition.c
index 7ebf9cc30..bf5ab0ab3 100644
--- a/src/field_fadetransition.c
+++ b/src/field_fadetransition.c
@@ -152,7 +152,7 @@ static void task0A_asap_script_env_2_enable_and_set_ctx_running(u8 taskId)
}
}
-void FieldCallback_ReturnToEventScript2(void)
+void FieldCB_ContinueScriptHandleMusic(void)
{
ScriptContext2_Enable();
Overworld_PlaySpecialMapMusic();
@@ -160,7 +160,7 @@ void FieldCallback_ReturnToEventScript2(void)
CreateTask(task0A_asap_script_env_2_enable_and_set_ctx_running, 10);
}
-void sub_807DD44(void)
+void FieldCB_ContinueScript(void)
{
ScriptContext2_Enable();
FadeInFromBlack();
@@ -193,7 +193,7 @@ static void task_mpl_807DD60(u8 taskId)
}
}
-void FieldCB_ReturnToFieldWiredLink(void)
+void FieldCB_ReturnToFieldCableLink(void)
{
ScriptContext2_Enable();
Overworld_PlaySpecialMapMusic();
@@ -284,7 +284,7 @@ static void sub_807DF4C(bool8 a0)
FadeInFromBlack();
}
-void FieldCB_UnionRoomWarp(void)
+void FieldCB_DefaultWarpExit(void)
{
Overworld_PlaySpecialMapMusic();
sub_8111CF0();
@@ -292,7 +292,7 @@ void FieldCB_UnionRoomWarp(void)
ScriptContext2_Enable();
}
-void sub_807DF7C(void)
+void FieldCB_WarpExitFadeFromBlack(void)
{
Overworld_PlaySpecialMapMusic();
sub_8111CF0();
@@ -491,7 +491,7 @@ void FadeTransition_FadeInOnReturnToStartMenu(void)
ScriptContext2_Enable();
}
-bool8 FieldCB2_ReturnToStartMenuInit(void)
+bool8 FieldCB_ReturnToFieldOpenStartMenu(void)
{
SetUpReturnToStartMenu();
return FALSE;
@@ -535,7 +535,7 @@ void DoWarp(void)
WarpFadeOutScreen();
PlayRainStoppingSoundEffect();
PlaySE(SE_KAIDAN);
- gFieldCallback = FieldCB_UnionRoomWarp;
+ gFieldCallback = FieldCB_DefaultWarpExit;
CreateTask(sub_807E718, 10);
}
@@ -545,7 +545,7 @@ void DoDiveWarp(void)
TryFadeOutOldMapMusic();
WarpFadeOutScreen();
PlayRainStoppingSoundEffect();
- gFieldCallback = FieldCB_UnionRoomWarp;
+ gFieldCallback = FieldCB_DefaultWarpExit;
CreateTask(sub_807E718, 10);
}
@@ -560,7 +560,7 @@ void sub_807E4A0(u16 metatileBehavior, u16 delay)
void DoDoorWarp(void)
{
ScriptContext2_Enable();
- gFieldCallback = FieldCB_UnionRoomWarp;
+ gFieldCallback = FieldCB_DefaultWarpExit;
CreateTask(sub_807E80C, 10);
}
@@ -574,7 +574,7 @@ void sub_807E500(void)
void DoUnionRoomWarp(void)
{
ScriptContext2_Enable();
- gFieldCallback = FieldCB_UnionRoomWarp;
+ gFieldCallback = FieldCB_DefaultWarpExit;
CreateTask(Task_TeleportWarp, 10);
}
@@ -833,7 +833,7 @@ static void sub_807E980(u8 taskId)
data[0]++;
break;
default:
- gFieldCallback = FieldCB_UnionRoomWarp;
+ gFieldCallback = FieldCB_DefaultWarpExit;
WarpIntoMap();
SetMainCallback2(CB2_LoadMap);
DestroyTask(taskId);
diff --git a/src/field_screen_effect.c b/src/field_screen_effect.c
index c376e1bad..22043ed2d 100644
--- a/src/field_screen_effect.c
+++ b/src/field_screen_effect.c
@@ -360,7 +360,7 @@ static void Task_BarnDoorWipeChild(u8 taskId)
#undef DIR_WIPE_OUT
#undef tChildOffset
-static bool8 sub_807F3A4(u8 taskId, const u8 *text, u8 x, u8 y)
+static bool8 PrintWhiteOutRecoveryMessage(u8 taskId, const u8 *text, u8 x, u8 y)
{
u8 windowId = gTasks[taskId].data[1];
@@ -385,7 +385,7 @@ static bool8 sub_807F3A4(u8 taskId, const u8 *text, u8 x, u8 y)
return FALSE;
}
-static void sub_807F45C(u8 taskId)
+static void Task_RushInjuredPokemonToCenter(u8 taskId)
{
u8 windowId;
const struct HealLocation *loc;
@@ -410,14 +410,14 @@ static void sub_807F45C(u8 taskId)
gTasks[taskId].data[0] = 1;
break;
case 1:
- if (sub_807F3A4(taskId, gUnknown_841B554, 2, 8))
+ if (PrintWhiteOutRecoveryMessage(taskId, gText_PlayerScurriedToCenter, 2, 8))
{
ObjectEventTurn(&gObjectEvents[gPlayerAvatar.objectEventId], 2);
++gTasks[taskId].data[0];
}
break;
case 4:
- if (sub_807F3A4(taskId, gUnknown_841B5B6, 2, 8))
+ if (PrintWhiteOutRecoveryMessage(taskId, gText_PlayerScurriedBackHome, 2, 8))
{
ObjectEventTurn(&gObjectEvents[gPlayerAvatar.objectEventId], 2);
++gTasks[taskId].data[0];
@@ -450,12 +450,12 @@ static void sub_807F45C(u8 taskId)
}
}
-void sub_807F5F0(void)
+void FieldCB_RushInjuredPokemonToCenter(void)
{
u8 taskId;
ScriptContext2_Enable();
palette_bg_faded_fill_black();
- taskId = CreateTask(sub_807F45C, 10);
+ taskId = CreateTask(Task_RushInjuredPokemonToCenter, 10);
gTasks[taskId].data[0] = 0;
}
diff --git a/src/learn_move.c b/src/learn_move.c
index 8a2f5781b..8cf10cffa 100644
--- a/src/learn_move.c
+++ b/src/learn_move.c
@@ -286,7 +286,7 @@ static void Task_InitMoveRelearnerMenu(u8 taskId)
if (!gPaletteFade.active)
{
SetMainCallback2(CB2_MoveRelearner_Init);
- gFieldCallback = FieldCallback_ReturnToEventScript2;
+ gFieldCallback = FieldCB_ContinueScriptHandleMusic;
DestroyTask(taskId);
}
}
diff --git a/src/map_name_popup.c b/src/map_name_popup.c
index 10e549cbd..df2f9f88f 100644
--- a/src/map_name_popup.c
+++ b/src/map_name_popup.c
@@ -18,7 +18,7 @@ static u16 MapNamePopupCreateWindow(bool32 palIntoFadedBuffer);
static void MapNamePopupPrintMapNameOnWindow(u16 windowId);
static u8 *MapNamePopupAppendFloorNum(u8 *dest, s8 flags);
-void CreateMapNamePopupIfNotAlreadyRunning(bool32 palIntoFadedBuffer)
+void ShowMapNamePopup(bool32 palIntoFadedBuffer)
{
u8 taskId;
if (FlagGet(FLAG_SPECIAL_FLAG_0x4000) != TRUE && !(gQuestLogState == 2 || gQuestLogState == 3))
diff --git a/src/option_menu.c b/src/option_menu.c
index 62e90c33b..87306c98f 100644
--- a/src/option_menu.c
+++ b/src/option_menu.c
@@ -509,7 +509,7 @@ static void BufferOptionMenuString(u8 selection)
static void CloseAndSaveOptionMenu(u8 taskId)
{
- gFieldCallback = FieldCB_UnionRoomWarp;
+ gFieldCallback = FieldCB_DefaultWarpExit;
SetMainCallback2(gMain.savedCallback);
FreeAllWindowBuffers();
gSaveBlock2Ptr->optionsTextSpeed = sOptionMenuPtr->option[MENUITEM_TEXTSPEED];
diff --git a/src/overworld.c b/src/overworld.c
index d4299d044..a5e61e844 100644
--- a/src/overworld.c
+++ b/src/overworld.c
@@ -4,6 +4,7 @@
#include "event_scripts.h"
#include "field_camera.h"
#include "field_control_avatar.h"
+#include "field_fadetransition.h"
#include "field_message_box.h"
#include "field_player_avatar.h"
#include "field_screen_effect.h"
@@ -11,13 +12,16 @@
#include "field_weather.h"
#include "fieldmap.h"
#include "heal_location.h"
+#include "link.h"
#include "load_save.h"
#include "m4a.h"
#include "map_name_popup.h"
#include "metatile_behavior.h"
#include "money.h"
+#include "new_game.h"
#include "new_menu_helpers.h"
#include "overworld.h"
+#include "play_time.h"
#include "quest_log.h"
#include "random.h"
#include "renewable_hidden_items.h"
@@ -84,9 +88,22 @@ void SetDefaultFlashLevel(void);
void Overworld_TryMapConnectionMusicTransition(void);
void ChooseAmbientCrySpecies(void);
+void CB2_Overworld(void);
+void CB2_DoChangeMap(void);
+void CB2_LoadMap2(void);
+void c2_80567AC(void);
+void CB2_ReturnToFieldLocal(void);
+void CB2_ReturnToFieldLink(void);
void MoveSaveBlocks_ResetHeap_(void);
void sub_8056E80(void);
void CB1_UpdateLinkState(void);
+void SetFieldVBlankCallback(void);
+void FieldClearVBlankHBlankCallbacks(void);
+void ResetAllMultiplayerState(void);
+void do_load_map_stuff_loop(u8 *state);
+bool32 sub_8056CD8(u8 *state);
+bool32 map_loading_iteration_3(u8 *state);
+bool32 map_loading_iteration_2_link(u8 *state);
extern const struct MapLayout * gMapLayouts[];
extern const struct MapHeader *const *gMapGroups[];
@@ -116,7 +133,7 @@ const u16 sWhiteOutMoneyLossBadgeFlagIDs[] = {
FLAG_BADGE08_GET
};
-void sub_8054BC8(void)
+void DoWhiteOut(void)
{
ScriptContext2_RunNewScript(EventScript_ResetEliteFourEnd);
RemoveMoney(&gSaveBlock1Ptr->money, ComputeWhiteOutMoneyLoss());
@@ -654,7 +671,7 @@ void LoadMapFromCameraTransition(u8 mapGroup, u8 mapNum)
ResetFieldTasksArgs();
mapheader_run_script_with_tag_x5();
if (GetLastUsedWarpMapSectionId() != gMapHeader.regionMapSectionId)
- CreateMapNamePopupIfNotAlreadyRunning(TRUE);
+ ShowMapNamePopup(TRUE);
}
void mli0_load_map(bool32 a1)
@@ -710,7 +727,7 @@ void ResetInitialPlayerAvatarState(void)
gInitialPlayerAvatarState.unk2 = FALSE;
}
-void sub_80559F8(u8 dirn)
+void SetInitialPlayerAvatarStateWithDirection(u8 dirn)
{
gInitialPlayerAvatarState.direction = dirn;
gInitialPlayerAvatarState.transitionFlags = PLAYER_AVATAR_FLAG_ON_FOOT;
@@ -1264,7 +1281,7 @@ bool32 IsUpdateLinkStateCBActive(void)
return FALSE;
}
-void sub_805644C(u16 newKeys, u16 heldKeys)
+void DoCB1_Overworld(u16 newKeys, u16 heldKeys)
{
struct FieldInput fieldInput;
@@ -1289,3 +1306,269 @@ void sub_805644C(u16 newKeys, u16 heldKeys)
}
RunQuestLogCB();
}
+
+void DoCB1_Overworld_QuestLogPlayback(void)
+{
+ struct FieldInput fieldInput;
+
+ sub_8112B3C();
+ sub_805BEB8();
+ sub_8111C68();
+ FieldClearPlayerInput(&fieldInput);
+ fieldInput = gUnknown_3005E90;
+ FieldInput_HandleCancelSignpost(&fieldInput);
+ if (!ScriptContext2_IsEnabled())
+ {
+ if (ProcessPlayerFieldInput(&fieldInput) == TRUE)
+ {
+ ScriptContext2_Enable();
+ DismissMapNamePopup();
+ }
+ else
+ {
+ RunQuestLogCB();
+ }
+ }
+ else if (sub_8111CD0() == TRUE)
+ {
+ RunQuestLogCB();
+ }
+ FieldClearPlayerInput(&gUnknown_3005E90);
+}
+
+void CB1_Overworld(void)
+{
+ if (gMain.callback2 == CB2_Overworld)
+ {
+ if (sub_8112CAC() == TRUE || gQuestLogState == QL_STATE_2)
+ DoCB1_Overworld_QuestLogPlayback();
+ else
+ DoCB1_Overworld(gMain.newKeys, gMain.heldKeys);
+ }
+}
+
+void OverworldBasic(void)
+{
+ ScriptContext2_RunScript();
+ RunTasks();
+ AnimateSprites();
+ CameraUpdate();
+ sub_8115798();
+ UpdateCameraPanning();
+ BuildOamBuffer();
+ UpdatePaletteFade();
+ UpdateTilesetAnimations();
+ DoScheduledBgTilemapCopiesToVram();
+}
+
+// This CB2 is used when starting
+void CB2_OverworldBasic(void)
+{
+ OverworldBasic();
+}
+
+void CB2_Overworld(void)
+{
+ bool32 fading = !!gPaletteFade.active;
+ if (fading)
+ SetVBlankCallback(NULL);
+ OverworldBasic();
+ if (fading)
+ SetFieldVBlankCallback();
+}
+
+void SetMainCallback1(MainCallback cb)
+{
+ gMain.callback1 = cb;
+}
+
+bool8 map_post_load_hook_exec(void)
+{
+ if (gFieldCallback2)
+ {
+ if (!gFieldCallback2())
+ {
+ return FALSE;
+ }
+ else
+ {
+ gFieldCallback2 = NULL;
+ gFieldCallback = NULL;
+ }
+ }
+ else
+ {
+ if (gFieldCallback)
+ gFieldCallback();
+ else
+ FieldCB_DefaultWarpExit();
+
+ gFieldCallback = NULL;
+ }
+
+ return TRUE;
+}
+
+void CB2_NewGame(void)
+{
+ FieldClearVBlankHBlankCallbacks();
+ StopMapMusic();
+ ResetSafariZoneFlag_();
+ NewGameInitData();
+ ResetInitialPlayerAvatarState();
+ PlayTimeCounter_Start();
+ ScriptContext1_Init();
+ ScriptContext2_Disable();
+ gFieldCallback = FieldCB_WarpExitFadeFromBlack;
+ gFieldCallback2 = NULL;
+ do_load_map_stuff_loop(&gMain.state);
+ SetFieldVBlankCallback();
+ SetMainCallback1(CB1_Overworld);
+ SetMainCallback2(CB2_Overworld);
+}
+
+void CB2_WhiteOut(void)
+{
+ u8 val;
+
+ if (++gMain.state >= 120)
+ {
+ FieldClearVBlankHBlankCallbacks();
+ StopMapMusic();
+ ResetSafariZoneFlag_();
+ DoWhiteOut();
+ SetInitialPlayerAvatarStateWithDirection(DIR_NORTH);
+ ScriptContext1_Init();
+ ScriptContext2_Disable();
+ gFieldCallback = FieldCB_RushInjuredPokemonToCenter;
+ val = 0;
+ do_load_map_stuff_loop(&val);
+ sub_8112364();
+ SetFieldVBlankCallback();
+ SetMainCallback1(CB1_Overworld);
+ SetMainCallback2(CB2_Overworld);
+ }
+}
+
+void CB2_LoadMap(void)
+{
+ FieldClearVBlankHBlankCallbacks();
+ ScriptContext1_Init();
+ ScriptContext2_Disable();
+ SetMainCallback1(NULL);
+ SetMainCallback2(CB2_DoChangeMap);
+ gMain.savedCallback = CB2_LoadMap2;
+}
+
+void CB2_LoadMap2(void)
+{
+ do_load_map_stuff_loop(&gMain.state);
+ if (sub_8113748() == TRUE)
+ {
+ sub_81119C8();
+ }
+ else
+ {
+ SetFieldVBlankCallback();
+ SetMainCallback1(CB1_Overworld);
+ SetMainCallback2(CB2_Overworld);
+ }
+}
+
+void CB2_ReturnToFieldCableClub(void)
+{
+ FieldClearVBlankHBlankCallbacks();
+ gFieldCallback = FieldCB_ReturnToFieldWirelessLink;
+ SetMainCallback2(c2_80567AC);
+}
+
+void c2_80567AC(void)
+{
+ if (map_loading_iteration_3(&gMain.state))
+ {
+ SetFieldVBlankCallback();
+ SetMainCallback1(CB1_UpdateLinkState);
+ ResetAllMultiplayerState();
+ SetMainCallback2(CB2_Overworld);
+ }
+}
+
+void CB2_ReturnToField(void)
+{
+ if (IsUpdateLinkStateCBActive() == TRUE)
+ {
+ SetMainCallback2(CB2_ReturnToFieldLink);
+ }
+ else
+ {
+ FieldClearVBlankHBlankCallbacks();
+ SetMainCallback2(CB2_ReturnToFieldLocal);
+ }
+}
+
+void CB2_ReturnToFieldLocal(void)
+{
+ if (sub_8056CD8(&gMain.state))
+ {
+ SetFieldVBlankCallback();
+ SetMainCallback2(CB2_Overworld);
+ }
+}
+
+void CB2_ReturnToFieldLink(void)
+{
+ if (!sub_8058244() && map_loading_iteration_2_link(&gMain.state))
+ SetMainCallback2(CB2_Overworld);
+}
+
+void CB2_ReturnToFieldFromMultiplayer(void)
+{
+ FieldClearVBlankHBlankCallbacks();
+ StopMapMusic();
+ SetMainCallback1(CB1_UpdateLinkState);
+ ResetAllMultiplayerState();
+
+ if (gWirelessCommType != 0)
+ gFieldCallback = FieldCB_ReturnToFieldWirelessLink;
+ else
+ gFieldCallback = FieldCB_ReturnToFieldCableLink;
+
+ ScriptContext1_Init();
+ ScriptContext2_Disable();
+ CB2_ReturnToField();
+}
+
+void CB2_ReturnToFieldWithOpenMenu(void)
+{
+ FieldClearVBlankHBlankCallbacks();
+ gFieldCallback2 = FieldCB_ReturnToFieldOpenStartMenu;
+ CB2_ReturnToField();
+}
+
+void CB2_ReturnToFieldContinueScript(void)
+{
+ FieldClearVBlankHBlankCallbacks();
+ gFieldCallback = FieldCB_ContinueScript;
+ CB2_ReturnToField();
+}
+
+void CB2_ReturnToFieldContinueScriptPlayMapMusic(void)
+{
+ FieldClearVBlankHBlankCallbacks();
+ gFieldCallback = FieldCB_ContinueScriptHandleMusic;
+ CB2_ReturnToField();
+}
+
+void sub_80568FC(void)
+{
+ FieldClearVBlankHBlankCallbacks();
+ gFieldCallback = FieldCB_WarpExitFadeFromBlack;
+ CB2_ReturnToField();
+}
+
+void sub_8056918(void)
+{
+ if (SHOW_MAP_NAME_ENABLED)
+ ShowMapNamePopup(FALSE);
+ FieldCB_WarpExitFadeFromBlack();
+}
diff --git a/src/party_menu_specials.c b/src/party_menu_specials.c
index aba11a534..48406da9a 100644
--- a/src/party_menu_specials.c
+++ b/src/party_menu_specials.c
@@ -47,7 +47,7 @@ void SelectMoveDeleterMove(void)
{
ShowSelectMovePokemonSummaryScreen(gPlayerParty, gSpecialVar_0x8004, gPlayerPartyCount - 1, CB2_ReturnToField, 0);
sub_8138B38(3);
- gFieldCallback = FieldCallback_ReturnToEventScript2;
+ gFieldCallback = FieldCB_ContinueScriptHandleMusic;
}
void GetNumMovesSelectedMonHas(void)
diff --git a/src/quest_log.c b/src/quest_log.c
index f705335da..3c6b88d3d 100644
--- a/src/quest_log.c
+++ b/src/quest_log.c
@@ -600,7 +600,7 @@ bool8 sub_8111000(void)
{
LoadPalette(stdpal_get(4), 0xF0, 0x20);
SetQuestLogState(QL_STATE_2);
- FieldCB_UnionRoomWarp();
+ FieldCB_DefaultWarpExit();
gUnknown_203AE94 = (struct UnkStruct_203AE94){};
gUnknown_203AE94.unk_0_0 = 2;
return 1;
@@ -610,7 +610,7 @@ bool8 sub_8111038(void)
{
LoadPalette(stdpal_get(4), 0xF0, 0x20);
SetQuestLogState(QL_STATE_2);
- sub_807DF7C();
+ FieldCB_WarpExitFadeFromBlack();
gUnknown_203AE94 = (struct UnkStruct_203AE94){};
gUnknown_203AE94.unk_0_0 = 2;
return 1;
@@ -1217,7 +1217,7 @@ static bool8 sub_8111F60(void)
{
LoadPalette(stdpal_get(4), 0xF0, 0x20);
DrawPreviouslyOnQuestHeader(0);
- sub_807DF7C();
+ FieldCB_WarpExitFadeFromBlack();
CreateTask(sub_8111F8C, 0xFF);
return TRUE;
}
@@ -1313,7 +1313,7 @@ static void Task_EndQuestLog(u8 taskId)
break;
default:
if (gUnknown_203AE94.unk_0_6 == 1)
- CreateMapNamePopupIfNotAlreadyRunning(1);
+ ShowMapNamePopup(1);
CpuCopy16(gUnknown_203AE90, gPlttBufferUnfaded, 0x400);
Free(gUnknown_203AE90);
gUnknown_203AE94 = (struct UnkStruct_203AE94){};
diff --git a/src/seagallop.c b/src/seagallop.c
index fb55e6bd2..f7405296f 100644
--- a/src/seagallop.c
+++ b/src/seagallop.c
@@ -322,7 +322,7 @@ static void Task_Seagallop_3(void)
SetWarpDestination(warpInfo[0], warpInfo[1], -1, warpInfo[2], warpInfo[3]);
PlayRainStoppingSoundEffect();
PlaySE(SE_KAIDAN);
- gFieldCallback = FieldCB_UnionRoomWarp;
+ gFieldCallback = FieldCB_DefaultWarpExit;
WarpIntoMap();
SetMainCallback2(CB2_LoadMap);
ResetInitialPlayerAvatarState();
diff --git a/src/strings.c b/src/strings.c
index 547a36138..fbe51254c 100644
--- a/src/strings.c
+++ b/src/strings.c
@@ -958,8 +958,8 @@ const u8 gText_Sorry[] = _("SORRY");
const u8 gText_YaySmileEmoji[] = _("YAY{EXTRA 0xF9}");
const u8 gText_ThankYou[] = _("THANK YOU");
const u8 gText_ByeBye[] = _("BYE-BYE!");
-const u8 gUnknown_841B554[] = _("{PLAYER} scurried to a POKéMON CENTER,\nprotecting the exhausted and fainted\nPOKéMON from further harm‥\p");
-const u8 gUnknown_841B5B6[] = _("{PLAYER} scurried back home, protecting\nthe exhausted and fainted POKéMON from\nfurther harm‥\p");
+const u8 gText_PlayerScurriedToCenter[] = _("{PLAYER} scurried to a POKéMON CENTER,\nprotecting the exhausted and fainted\nPOKéMON from further harm‥\p");
+const u8 gText_PlayerScurriedBackHome[] = _("{PLAYER} scurried back home, protecting\nthe exhausted and fainted POKéMON from\nfurther harm‥\p");
const u8 gUnknown_841B60E[] = _("PLAYER: {DYNAMIC 0x00}");
const u8 gUnknown_841B619[] = _("This document is issued in\nrecognition of your magnificent\nachievement - the completion of\nthe {DYNAMIC 0x01} POKéDEX.");
const u8 gUnknown_841B684[] = _("GAME FREAK");
diff --git a/src/trade.c b/src/trade.c
index bd6860e85..bb2634613 100644
--- a/src/trade.c
+++ b/src/trade.c
@@ -2022,7 +2022,7 @@ static void sub_804E944(void)
Free(sTradeMenuResourcesPtr);
FreeAllWindowBuffers();
DestroyWirelessStatusIndicatorSprite();
- SetMainCallback2(c2_8056854);
+ SetMainCallback2(CB2_ReturnToFieldFromMultiplayer);
}
}
else
@@ -2032,7 +2032,7 @@ static void sub_804E944(void)
Free(sSpriteTextTileBuffer);
Free(sTradeMenuResourcesPtr);
FreeAllWindowBuffers();
- SetMainCallback2(c2_8056854);
+ SetMainCallback2(CB2_ReturnToFieldFromMultiplayer);
}
}
}
diff --git a/src/trade_scene.c b/src/trade_scene.c
index d609a9b53..308cd6e5b 100644
--- a/src/trade_scene.c
+++ b/src/trade_scene.c
@@ -2747,7 +2747,7 @@ static void Task_WaitFadeAndStartInGameTradeAnim(u8 taskId)
if (!gPaletteFade.active)
{
SetMainCallback2(CB2_InitTradeAnim_InGameTrade);
- gFieldCallback = FieldCallback_ReturnToEventScript2;
+ gFieldCallback = FieldCB_ContinueScriptHandleMusic;
DestroyTask(taskId);
}
}