through sub_8056918

This commit is contained in:
PikalaxALT
2020-03-28 14:03:51 -04:00
parent 9bcc82856d
commit f0fe4904d0
25 changed files with 354 additions and 599 deletions
+1 -1
View File
@@ -750,7 +750,7 @@ void CB2_ReturnFromCableClubBattle(void)
}
else
{
gMain.savedCallback = c2_8056854;
gMain.savedCallback = CB2_ReturnToFieldFromMultiplayer;
}
SetMainCallback2(CB2_SetUpSaveAfterLinkBattle);
}
+1 -1
View File
@@ -1766,7 +1766,7 @@ static void Task_EggHatch(u8 taskID)
{
CleanupOverworldWindowsAndTilemaps();
SetMainCallback2(CB2_EggHatch_0);
gFieldCallback = FieldCallback_ReturnToEventScript2;
gFieldCallback = FieldCB_ContinueScriptHandleMusic;
DestroyTask(taskID);
}
}
+1 -1
View File
@@ -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)
+1 -1
View File
@@ -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[] = {
+11 -11
View File
@@ -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);
+6 -6
View File
@@ -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;
}
+1 -1
View File
@@ -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);
}
}
+1 -1
View File
@@ -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))
+1 -1
View File
@@ -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];
+287 -4
View File
@@ -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();
}
+1 -1
View File
@@ -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)
+4 -4
View File
@@ -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){};
+1 -1
View File
@@ -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();
+2 -2
View File
@@ -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");
+2 -2
View File
@@ -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);
}
}
}
+1 -1
View File
@@ -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);
}
}