Merge pull request #935 from GriffinRichards/doc-warp
Document some warp/field screen effect
This commit is contained in:
@@ -326,7 +326,7 @@ const u32 gFieldEffectObjectPic_SandDisguisePlaceholder[] = INCBIN_U32("graphics
|
||||
const u32 gFieldEffectObjectPic_HotSpringsWater[] = INCBIN_U32("graphics/event_objects/pics/effects/hot_springs_water.4bpp");
|
||||
const u16 gFieldEffectObjectPalette2[] = INCBIN_U16("graphics/event_objects/palettes/field_effect_object_palette_02.gbapal");
|
||||
const u32 gFieldEffectObjectPic_JumpOutOfAsh[] = INCBIN_U32("graphics/event_objects/pics/effects/jump_out_of_ash.4bpp");
|
||||
const u32 gFieldEffectObjectPic_Unknown33[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_33.4bpp");
|
||||
const u32 gFieldEffectObjectPic_LavaridgeGymWarp[] = INCBIN_U32("graphics/event_objects/pics/effects/lavaridge_gym_warp.4bpp");
|
||||
const u32 gFieldEffectObjectPic_Bubbles[] = INCBIN_U32("graphics/event_objects/pics/effects/bubbles.4bpp");
|
||||
const u32 gFieldEffectObjectPic_Unknown35[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_35.4bpp");
|
||||
const u16 gFieldEffectObjectPalette3[] = INCBIN_U16("graphics/event_objects/palettes/field_effect_object_palette_03.gbapal");
|
||||
|
||||
@@ -31,7 +31,7 @@ const struct SpriteTemplate gFieldEffectObjectTemplate_Unknown29;
|
||||
const struct SpriteTemplate gFieldEffectObjectTemplate_ShortGrass;
|
||||
const struct SpriteTemplate gFieldEffectObjectTemplate_HotSpringsWater;
|
||||
const struct SpriteTemplate gFieldEffectObjectTemplate_JumpOutOfAsh;
|
||||
const struct SpriteTemplate gFieldEffectObjectTemplate_Unknown33;
|
||||
const struct SpriteTemplate gFieldEffectObjectTemplate_LavaridgeGymWarp;
|
||||
const struct SpriteTemplate gFieldEffectObjectTemplate_Bubbles;
|
||||
const struct SpriteTemplate gFieldEffectObjectTemplate_Unknown35;
|
||||
const struct SpriteTemplate gFieldEffectObjectTemplate_Rayquaza;
|
||||
@@ -70,7 +70,7 @@ const struct SpriteTemplate *const gFieldEffectObjectTemplatePointers[] = {
|
||||
&gFieldEffectObjectTemplate_ShortGrass,
|
||||
&gFieldEffectObjectTemplate_HotSpringsWater,
|
||||
&gFieldEffectObjectTemplate_JumpOutOfAsh,
|
||||
&gFieldEffectObjectTemplate_Unknown33,
|
||||
&gFieldEffectObjectTemplate_LavaridgeGymWarp,
|
||||
&gFieldEffectObjectTemplate_Bubbles,
|
||||
&gFieldEffectObjectTemplate_Unknown35,
|
||||
&gFieldEffectObjectTemplate_Rayquaza,
|
||||
|
||||
@@ -892,19 +892,28 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_JumpOutOfAsh[] =
|
||||
gFieldEffectObjectImageAnim_850D54C,
|
||||
};
|
||||
|
||||
const struct SpriteTemplate gFieldEffectObjectTemplate_JumpOutOfAsh = {0xFFFF, 0x100D, &gEventObjectBaseOam_16x16, gFieldEffectObjectImageAnimTable_JumpOutOfAsh, gFieldEffectObjectPicTable_JumpOutOfAsh, gDummySpriteAffineAnimTable, sub_80B7CAC};
|
||||
const struct SpriteTemplate gFieldEffectObjectTemplate_JumpOutOfAsh =
|
||||
{
|
||||
.tileTag = 0xFFFF,
|
||||
.paletteTag = 0x100D,
|
||||
.oam = &gEventObjectBaseOam_16x16,
|
||||
.anims = gFieldEffectObjectImageAnimTable_JumpOutOfAsh,
|
||||
.images = gFieldEffectObjectPicTable_JumpOutOfAsh,
|
||||
.affineAnims = gDummySpriteAffineAnimTable,
|
||||
.callback = SpriteCB_PopOutOfAsh
|
||||
};
|
||||
|
||||
const struct SpritePalette gFieldEffectObjectPaletteInfo2 = {gFieldEffectObjectPalette2, 0x100D};
|
||||
|
||||
const struct SpriteFrameImage gFieldEffectObjectPicTable_Unknown33[] = {
|
||||
overworld_frame(gFieldEffectObjectPic_Unknown33, 2, 2, 0),
|
||||
overworld_frame(gFieldEffectObjectPic_Unknown33, 2, 2, 1),
|
||||
overworld_frame(gFieldEffectObjectPic_Unknown33, 2, 2, 2),
|
||||
overworld_frame(gFieldEffectObjectPic_Unknown33, 2, 2, 3),
|
||||
overworld_frame(gFieldEffectObjectPic_Unknown33, 2, 2, 4),
|
||||
const struct SpriteFrameImage gFieldEffectObjectPicTable_LavaridgeGymWarp[] = {
|
||||
overworld_frame(gFieldEffectObjectPic_LavaridgeGymWarp, 2, 2, 0),
|
||||
overworld_frame(gFieldEffectObjectPic_LavaridgeGymWarp, 2, 2, 1),
|
||||
overworld_frame(gFieldEffectObjectPic_LavaridgeGymWarp, 2, 2, 2),
|
||||
overworld_frame(gFieldEffectObjectPic_LavaridgeGymWarp, 2, 2, 3),
|
||||
overworld_frame(gFieldEffectObjectPic_LavaridgeGymWarp, 2, 2, 4),
|
||||
};
|
||||
|
||||
const union AnimCmd gFieldEffectObjectImageAnim_850D5B0[] =
|
||||
const union AnimCmd gFieldEffectObjectImageAnim_LavaridgeGymWarp[] =
|
||||
{
|
||||
ANIMCMD_FRAME(0, 6),
|
||||
ANIMCMD_FRAME(1, 6),
|
||||
@@ -914,12 +923,21 @@ const union AnimCmd gFieldEffectObjectImageAnim_850D5B0[] =
|
||||
ANIMCMD_END,
|
||||
};
|
||||
|
||||
const union AnimCmd *const gFieldEffectObjectImageAnimTable_Unknown33[] =
|
||||
const union AnimCmd *const gFieldEffectObjectImageAnimTable_LavaridgeGymWarp[] =
|
||||
{
|
||||
gFieldEffectObjectImageAnim_850D5B0,
|
||||
gFieldEffectObjectImageAnim_LavaridgeGymWarp,
|
||||
};
|
||||
|
||||
const struct SpriteTemplate gFieldEffectObjectTemplate_Unknown33 = {0xFFFF, 0x100D, &gEventObjectBaseOam_16x16, gFieldEffectObjectImageAnimTable_Unknown33, gFieldEffectObjectPicTable_Unknown33, gDummySpriteAffineAnimTable, sub_80B7A58};
|
||||
const struct SpriteTemplate gFieldEffectObjectTemplate_LavaridgeGymWarp =
|
||||
{
|
||||
.tileTag = 0xFFFF,
|
||||
.paletteTag = 0x100D,
|
||||
.oam = &gEventObjectBaseOam_16x16,
|
||||
.anims = gFieldEffectObjectImageAnimTable_LavaridgeGymWarp,
|
||||
.images = gFieldEffectObjectPicTable_LavaridgeGymWarp,
|
||||
.affineAnims = gDummySpriteAffineAnimTable,
|
||||
.callback = SpriteCB_LavaridgeGymWarp
|
||||
};
|
||||
|
||||
const struct SpriteFrameImage gFieldEffectObjectPicTable_Bubbles[] = {
|
||||
overworld_frame(gFieldEffectObjectPic_Bubbles, 2, 4, 0),
|
||||
|
||||
@@ -1332,7 +1332,7 @@ void sub_8128060(u8 taskId)
|
||||
ConfigureCameraObjectForPlacingDecoration(&sPlaceDecorationGraphicsDataBuffer, gCurDecorationItems[gCurDecorationIndex]);
|
||||
sub_812826C(taskId);
|
||||
SetUpPlacingDecorationPlayerAvatar(taskId, &sPlaceDecorationGraphicsDataBuffer);
|
||||
pal_fill_black();
|
||||
FadeInFromBlack();
|
||||
gPaletteFade.bufferTransferDisabled = FALSE;
|
||||
gTasks[taskId].data[2] = 2;
|
||||
break;
|
||||
@@ -1738,7 +1738,7 @@ void sub_8128CD4(void)
|
||||
u8 taskId;
|
||||
|
||||
ScriptContext2_Enable();
|
||||
pal_fill_black();
|
||||
FadeInFromBlack();
|
||||
taskId = CreateTask(sub_8128C64, 8);
|
||||
sub_8127580(taskId);
|
||||
gTasks[taskId].data[2] = 0;
|
||||
@@ -2215,7 +2215,7 @@ void sub_81298EC(u8 taskId)
|
||||
case 2:
|
||||
ScriptContext2_Enable();
|
||||
IdentifyOwnedDecorationsCurrentlyInUseInternal(taskId);
|
||||
pal_fill_black();
|
||||
FadeInFromBlack();
|
||||
gTasks[taskId].data[2] = 3;
|
||||
break;
|
||||
case 3:
|
||||
@@ -2278,7 +2278,7 @@ void sub_8129ABC(u8 taskId)
|
||||
break;
|
||||
case 1:
|
||||
SetUpPuttingAwayDecorationPlayerAvatar();
|
||||
pal_fill_black();
|
||||
FadeInFromBlack();
|
||||
data[2] = 2;
|
||||
break;
|
||||
case 2:
|
||||
@@ -2623,7 +2623,7 @@ void sub_812A334(void)
|
||||
{
|
||||
u8 taskId;
|
||||
|
||||
pal_fill_black();
|
||||
FadeInFromBlack();
|
||||
DrawDialogueFrame(0, 1);
|
||||
InitDecorationActionsWindow();
|
||||
taskId = CreateTask(sub_812A2C4, 8);
|
||||
|
||||
@@ -470,7 +470,7 @@ static void Task_EggHatch(u8 taskID)
|
||||
{
|
||||
CleanupOverworldWindowsAndTilemaps();
|
||||
SetMainCallback2(CB2_EggHatch_0);
|
||||
gFieldCallback = FieldCallback_ReturnToEventScript2;
|
||||
gFieldCallback = FieldCB_ContinueScriptHandleMusic;
|
||||
DestroyTask(taskID);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
#include "trainer_see.h"
|
||||
#include "constants/event_objects.h"
|
||||
|
||||
bool8 walkrun_is_standing_still(void)
|
||||
bool8 IsPlayerStandingStill(void)
|
||||
{
|
||||
if (gPlayerAvatar.tileTransitionState == T_TILE_TRANSITION)
|
||||
return FALSE;
|
||||
@@ -18,7 +18,7 @@ bool8 walkrun_is_standing_still(void)
|
||||
|
||||
static void sub_80983A4(u8 taskId)
|
||||
{
|
||||
if (walkrun_is_standing_still())
|
||||
if (IsPlayerStandingStill())
|
||||
{
|
||||
sub_808B864();
|
||||
DestroyTask(taskId);
|
||||
@@ -49,7 +49,7 @@ static void sub_8098400(u8 taskId)
|
||||
{
|
||||
struct Task *task = &gTasks[taskId];
|
||||
|
||||
if (!task->data[0] && walkrun_is_standing_still() == TRUE)
|
||||
if (!task->data[0] && IsPlayerStandingStill() == TRUE)
|
||||
{
|
||||
sub_808B864();
|
||||
task->data[0] = 1;
|
||||
@@ -123,7 +123,7 @@ static void sub_80985BC(u8 taskId)
|
||||
struct Task *task = &gTasks[taskId];
|
||||
u8 eventObjectId = task->data[2];
|
||||
|
||||
if (!task->data[0] && walkrun_is_standing_still() == TRUE)
|
||||
if (!task->data[0] && IsPlayerStandingStill() == TRUE)
|
||||
{
|
||||
sub_808B864();
|
||||
task->data[0] = 1;
|
||||
|
||||
@@ -710,22 +710,22 @@ static bool8 TryStartWarpEventScript(struct MapPosition *position, u16 metatileB
|
||||
SetupWarp(&gMapHeader, warpEventId, position);
|
||||
if (MetatileBehavior_IsEscalator(metatileBehavior) == TRUE)
|
||||
{
|
||||
sub_80AF80C(metatileBehavior);
|
||||
DoEscalatorWarp(metatileBehavior);
|
||||
return TRUE;
|
||||
}
|
||||
if (MetatileBehavior_IsLavaridgeB1FWarp(metatileBehavior) == TRUE)
|
||||
{
|
||||
sub_80AF828();
|
||||
DoLavaridgeGymB1FWarp();
|
||||
return TRUE;
|
||||
}
|
||||
if (MetatileBehavior_IsLavaridge1FWarp(metatileBehavior) == TRUE)
|
||||
{
|
||||
sub_80AF838();
|
||||
DoLavaridgeGym1FWarp();
|
||||
return TRUE;
|
||||
}
|
||||
if (MetatileBehavior_IsAquaHideoutWarp(metatileBehavior) == TRUE)
|
||||
{
|
||||
sub_80AF848();
|
||||
DoTeleportWarp();
|
||||
return TRUE;
|
||||
}
|
||||
if (MetatileBehavior_IsWarpOrBridge(metatileBehavior) == TRUE)
|
||||
|
||||
@@ -28,6 +28,7 @@
|
||||
#include "util.h"
|
||||
#include "constants/field_effects.h"
|
||||
#include "constants/event_object_movement_constants.h"
|
||||
#include "constants/metatile_behaviors.h"
|
||||
#include "constants/rgb.h"
|
||||
#include "constants/songs.h"
|
||||
|
||||
@@ -68,22 +69,22 @@ static void task00_8084310(u8);
|
||||
static void mapldr_08084390(void);
|
||||
static void c3_080843F8(u8);
|
||||
|
||||
static void sub_80B6B94(u8);
|
||||
static bool8 sub_80B6BCC(struct Task *);
|
||||
static bool8 sub_80B6C74(struct Task *);
|
||||
static bool8 sub_80B6C90(struct Task *);
|
||||
static bool8 sub_80B6D04(struct Task *);
|
||||
static bool8 sub_80B6DBC(struct Task *);
|
||||
static bool8 sub_80B6DD8(struct Task *);
|
||||
static bool8 sub_80B6E18(struct Task *);
|
||||
static void Task_FallWarpFieldEffect(u8);
|
||||
static bool8 FallWarpEffect_1(struct Task *);
|
||||
static bool8 FallWarpEffect_2(struct Task *);
|
||||
static bool8 FallWarpEffect_3(struct Task *);
|
||||
static bool8 FallWarpEffect_4(struct Task *);
|
||||
static bool8 FallWarpEffect_5(struct Task *);
|
||||
static bool8 FallWarpEffect_6(struct Task *);
|
||||
static bool8 FallWarpEffect_7(struct Task *);
|
||||
|
||||
static void sub_80B6E88(u8);
|
||||
static bool8 sub_80B6EC0(struct Task *);
|
||||
static bool8 sub_80B6EE0(struct Task *);
|
||||
static bool8 sub_80B6F50(struct Task *);
|
||||
static bool8 sub_80B6F74(struct Task *);
|
||||
static bool8 sub_80B6F84(struct Task *);
|
||||
static bool8 sub_80B6FA8(struct Task *);
|
||||
static void Task_EscalatorWarpFieldEffect(u8);
|
||||
static bool8 EscalatorWarpEffect_1(struct Task *);
|
||||
static bool8 EscalatorWarpEffect_2(struct Task *);
|
||||
static bool8 EscalatorWarpEffect_3(struct Task *);
|
||||
static bool8 EscalatorWarpEffect_4(struct Task *);
|
||||
static bool8 EscalatorWarpEffect_5(struct Task *);
|
||||
static bool8 EscalatorWarpEffect_6(struct Task *);
|
||||
|
||||
static void sub_80B6FB8(struct Task *);
|
||||
static void sub_80B7004(struct Task *);
|
||||
@@ -112,29 +113,27 @@ static bool8 dive_1_lock(struct Task *);
|
||||
static bool8 dive_2_unknown(struct Task *);
|
||||
static bool8 dive_3_unknown(struct Task *);
|
||||
|
||||
static void sub_80B75F0(u8);
|
||||
static bool8 sub_80B764C(struct Task *, struct EventObject *, struct Sprite *);
|
||||
static bool8 sub_80B7684(struct Task *, struct EventObject *, struct Sprite *);
|
||||
static bool8 sub_80B76B8(struct Task *, struct EventObject *, struct Sprite *);
|
||||
static bool8 sub_80B7704(struct Task *, struct EventObject *, struct Sprite *);
|
||||
static bool8 sub_80B77F8(struct Task *, struct EventObject *, struct Sprite *);
|
||||
static bool8 sub_80B7814(struct Task *, struct EventObject *, struct Sprite *);
|
||||
static void Task_LavaridgeGymB1FWarp(u8);
|
||||
static bool8 LavaridgeGymB1FWarpEffect_1(struct Task *, struct EventObject *, struct Sprite *);
|
||||
static bool8 LavaridgeGymB1FWarpEffect_2(struct Task *, struct EventObject *, struct Sprite *);
|
||||
static bool8 LavaridgeGymB1FWarpEffect_3(struct Task *, struct EventObject *, struct Sprite *);
|
||||
static bool8 LavaridgeGymB1FWarpEffect_4(struct Task *, struct EventObject *, struct Sprite *);
|
||||
static bool8 LavaridgeGymB1FWarpEffect_5(struct Task *, struct EventObject *, struct Sprite *);
|
||||
static bool8 LavaridgeGymB1FWarpEffect_6(struct Task *, struct EventObject *, struct Sprite *);
|
||||
|
||||
static void mapldr_080851BC(void);
|
||||
static void sub_80B7890(u8);
|
||||
static void FieldCB_LavaridgeGymB1FWarpExit(void);
|
||||
static void Task_LavaridgeGymB1FWarpExit(u8);
|
||||
static bool8 LavaridgeGymB1FWarpExitEffect_1(struct Task *, struct EventObject *, struct Sprite *);
|
||||
static bool8 LavaridgeGymB1FWarpExitEffect_2(struct Task *, struct EventObject *, struct Sprite *);
|
||||
static bool8 LavaridgeGymB1FWarpExitEffect_3(struct Task *, struct EventObject *, struct Sprite *);
|
||||
static bool8 LavaridgeGymB1FWarpExitEffect_4(struct Task *, struct EventObject *, struct Sprite *);
|
||||
|
||||
static bool8 sub_80B78EC(struct Task *, struct EventObject *, struct Sprite *);
|
||||
static bool8 sub_80B791C(struct Task *, struct EventObject *, struct Sprite *);
|
||||
static bool8 sub_80B7968(struct Task *, struct EventObject *, struct Sprite *);
|
||||
static bool8 sub_80B79BC(struct Task *, struct EventObject *, struct Sprite *);
|
||||
|
||||
static void sub_80B7A8C(u8);
|
||||
|
||||
static bool8 sub_80B7AE8(struct Task *, struct EventObject *, struct Sprite *);
|
||||
static bool8 sub_80B7B18(struct Task *, struct EventObject *, struct Sprite *);
|
||||
static bool8 sub_80B7B94(struct Task *, struct EventObject *, struct Sprite *);
|
||||
static bool8 sub_80B7BCC(struct Task *, struct EventObject *, struct Sprite *);
|
||||
static bool8 sub_80B7BF4(struct Task *, struct EventObject *, struct Sprite *);
|
||||
static void Task_LavaridgeGym1FWarp(u8);
|
||||
static bool8 LavaridgeGym1FWarpEffect_1(struct Task *, struct EventObject *, struct Sprite *);
|
||||
static bool8 LavaridgeGym1FWarpEffect_2(struct Task *, struct EventObject *, struct Sprite *);
|
||||
static bool8 LavaridgeGym1FWarpEffect_3(struct Task *, struct EventObject *, struct Sprite *);
|
||||
static bool8 LavaridgeGym1FWarpEffect_4(struct Task *, struct EventObject *, struct Sprite *);
|
||||
static bool8 LavaridgeGym1FWarpEffect_5(struct Task *, struct EventObject *, struct Sprite *);
|
||||
|
||||
static void DoEscapeRopeFieldEffect(u8);
|
||||
static void EscapeRopeFieldEffect_Step0(struct Task *);
|
||||
@@ -596,25 +595,25 @@ const u8 gUnknown_0855C3BC[] = {16, 12, 8, 0};
|
||||
const u8 gUnknown_0855C3C0[] = {16, 12, 8, 0};
|
||||
const u8 gUnknown_0855C3C4[] = { 0, 0, 0, 0};
|
||||
|
||||
bool8 (*const gUnknown_0855C3C8[])(struct Task *) =
|
||||
bool8 (*const sFallWarpFieldEffectFuncs[])(struct Task *) =
|
||||
{
|
||||
sub_80B6BCC,
|
||||
sub_80B6C74,
|
||||
sub_80B6C90,
|
||||
sub_80B6D04,
|
||||
sub_80B6DBC,
|
||||
sub_80B6DD8,
|
||||
sub_80B6E18,
|
||||
FallWarpEffect_1,
|
||||
FallWarpEffect_2,
|
||||
FallWarpEffect_3,
|
||||
FallWarpEffect_4,
|
||||
FallWarpEffect_5,
|
||||
FallWarpEffect_6,
|
||||
FallWarpEffect_7,
|
||||
};
|
||||
|
||||
bool8 (*const gUnknown_0855C3E4[])(struct Task *) =
|
||||
bool8 (*const sEscalatorWarpFieldEffectFuncs[])(struct Task *) =
|
||||
{
|
||||
sub_80B6EC0,
|
||||
sub_80B6EE0,
|
||||
sub_80B6F50,
|
||||
sub_80B6F74,
|
||||
sub_80B6F84,
|
||||
sub_80B6FA8,
|
||||
EscalatorWarpEffect_1,
|
||||
EscalatorWarpEffect_2,
|
||||
EscalatorWarpEffect_3,
|
||||
EscalatorWarpEffect_4,
|
||||
EscalatorWarpEffect_5,
|
||||
EscalatorWarpEffect_6,
|
||||
};
|
||||
|
||||
bool8 (*const gUnknown_0855C3FC[])(struct Task *) =
|
||||
@@ -644,31 +643,31 @@ bool8 (*const gUnknown_0855C42C[])(struct Task *) =
|
||||
dive_3_unknown,
|
||||
};
|
||||
|
||||
bool8 (*const gUnknown_0855C438[])(struct Task *, struct EventObject *, struct Sprite *) =
|
||||
bool8 (*const sLavaridgeGymB1FWarpEffectFuncs[])(struct Task *, struct EventObject *, struct Sprite *) =
|
||||
{
|
||||
sub_80B764C,
|
||||
sub_80B7684,
|
||||
sub_80B76B8,
|
||||
sub_80B7704,
|
||||
sub_80B77F8,
|
||||
sub_80B7814,
|
||||
LavaridgeGymB1FWarpEffect_1,
|
||||
LavaridgeGymB1FWarpEffect_2,
|
||||
LavaridgeGymB1FWarpEffect_3,
|
||||
LavaridgeGymB1FWarpEffect_4,
|
||||
LavaridgeGymB1FWarpEffect_5,
|
||||
LavaridgeGymB1FWarpEffect_6,
|
||||
};
|
||||
|
||||
bool8 (*const gUnknown_0855C450[])(struct Task *, struct EventObject *, struct Sprite *) =
|
||||
bool8 (*const sLavaridgeGymB1FWarpExitEffectFuncs[])(struct Task *, struct EventObject *, struct Sprite *) =
|
||||
{
|
||||
sub_80B78EC,
|
||||
sub_80B791C,
|
||||
sub_80B7968,
|
||||
sub_80B79BC,
|
||||
LavaridgeGymB1FWarpExitEffect_1,
|
||||
LavaridgeGymB1FWarpExitEffect_2,
|
||||
LavaridgeGymB1FWarpExitEffect_3,
|
||||
LavaridgeGymB1FWarpExitEffect_4,
|
||||
};
|
||||
|
||||
bool8 (*const gUnknown_0855C460[])(struct Task *, struct EventObject *, struct Sprite *) =
|
||||
bool8 (*const sLavaridgeGym1FWarpEffectFuncs[])(struct Task *, struct EventObject *, struct Sprite *) =
|
||||
{
|
||||
sub_80B7AE8,
|
||||
sub_80B7B18,
|
||||
sub_80B7B94,
|
||||
sub_80B7BCC,
|
||||
sub_80B7BF4,
|
||||
LavaridgeGym1FWarpEffect_1,
|
||||
LavaridgeGym1FWarpEffect_2,
|
||||
LavaridgeGym1FWarpEffect_3,
|
||||
LavaridgeGym1FWarpEffect_4,
|
||||
LavaridgeGym1FWarpEffect_5,
|
||||
};
|
||||
|
||||
void (*const gEscapeRopeFieldEffectFuncs[])(struct Task *) =
|
||||
@@ -1428,7 +1427,7 @@ void ReturnToFieldFromFlyMapSelect(void)
|
||||
|
||||
static void FieldCallback_Fly(void)
|
||||
{
|
||||
pal_fill_black();
|
||||
FadeInFromBlack();
|
||||
CreateTask(task00_8084310, 0);
|
||||
ScriptContext2_Enable();
|
||||
FreezeEventObjects();
|
||||
@@ -1466,7 +1465,7 @@ static void task00_8084310(u8 taskId)
|
||||
static void mapldr_08084390(void)
|
||||
{
|
||||
Overworld_PlaySpecialMapMusic();
|
||||
pal_fill_black();
|
||||
FadeInFromBlack();
|
||||
CreateTask(c3_080843F8, 0);
|
||||
gEventObjects[gPlayerAvatar.eventObjectId].invisible = TRUE;
|
||||
if (gPlayerAvatar.flags & 0x08)
|
||||
@@ -1499,24 +1498,24 @@ static void c3_080843F8(u8 taskId)
|
||||
}
|
||||
}
|
||||
|
||||
void sub_80B6B68(void)
|
||||
void FieldCB_FallWarpExit(void)
|
||||
{
|
||||
Overworld_PlaySpecialMapMusic();
|
||||
pal_fill_for_maplights();
|
||||
WarpFadeInScreen();
|
||||
ScriptContext2_Enable();
|
||||
FreezeEventObjects();
|
||||
CreateTask(sub_80B6B94, 0);
|
||||
CreateTask(Task_FallWarpFieldEffect, 0);
|
||||
gFieldCallback = NULL;
|
||||
}
|
||||
|
||||
static void sub_80B6B94(u8 taskId)
|
||||
static void Task_FallWarpFieldEffect(u8 taskId)
|
||||
{
|
||||
struct Task *task;
|
||||
task = &gTasks[taskId];
|
||||
while (gUnknown_0855C3C8[task->data[0]](task)); // return code signifies whether to continue blocking here
|
||||
while (sFallWarpFieldEffectFuncs[task->data[0]](task)); // return code signifies whether to continue blocking here
|
||||
}
|
||||
|
||||
static bool8 sub_80B6BCC(struct Task *task) // gUnknown_0855C3C8[0]
|
||||
static bool8 FallWarpEffect_1(struct Task *task)
|
||||
{
|
||||
struct EventObject *playerObject;
|
||||
struct Sprite *playerSprite;
|
||||
@@ -1534,7 +1533,7 @@ static bool8 sub_80B6BCC(struct Task *task) // gUnknown_0855C3C8[0]
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static bool8 sub_80B6C74(struct Task *task) // gUnknown_0855C3C8[1]
|
||||
static bool8 FallWarpEffect_2(struct Task *task)
|
||||
{
|
||||
if (IsWeatherNotFadingIn())
|
||||
{
|
||||
@@ -1543,7 +1542,7 @@ static bool8 sub_80B6C74(struct Task *task) // gUnknown_0855C3C8[1]
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static bool8 sub_80B6C90(struct Task *task) // gUnknown_0855C3C8[2]
|
||||
static bool8 FallWarpEffect_3(struct Task *task)
|
||||
{
|
||||
struct Sprite *sprite;
|
||||
s16 centerToCornerVecY;
|
||||
@@ -1558,7 +1557,7 @@ static bool8 sub_80B6C90(struct Task *task) // gUnknown_0855C3C8[2]
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static bool8 sub_80B6D04(struct Task *task)
|
||||
static bool8 FallWarpEffect_4(struct Task *task)
|
||||
{
|
||||
struct EventObject *eventObject;
|
||||
struct Sprite *sprite;
|
||||
@@ -1592,7 +1591,7 @@ static bool8 sub_80B6D04(struct Task *task)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static bool8 sub_80B6DBC(struct Task *task)
|
||||
static bool8 FallWarpEffect_5(struct Task *task)
|
||||
{
|
||||
task->data[0]++;
|
||||
task->data[1] = 4;
|
||||
@@ -1601,7 +1600,7 @@ static bool8 sub_80B6DBC(struct Task *task)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static bool8 sub_80B6DD8(struct Task *task)
|
||||
static bool8 FallWarpEffect_6(struct Task *task)
|
||||
{
|
||||
SetCameraPanning(0, task->data[1]);
|
||||
task->data[1] = -task->data[1];
|
||||
@@ -1617,36 +1616,36 @@ static bool8 sub_80B6DD8(struct Task *task)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static bool8 sub_80B6E18(struct Task *task)
|
||||
static bool8 FallWarpEffect_7(struct Task *task)
|
||||
{
|
||||
gPlayerAvatar.preventStep = FALSE;
|
||||
ScriptContext2_Disable();
|
||||
CameraObjectReset1();
|
||||
UnfreezeEventObjects();
|
||||
InstallCameraPanAheadCallback();
|
||||
DestroyTask(FindTaskIdByFunc(sub_80B6B94));
|
||||
DestroyTask(FindTaskIdByFunc(Task_FallWarpFieldEffect));
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void sub_80B6E4C(u8 a0, u8 priority)
|
||||
void StartEscalatorWarp(u8 metatileBehavior, u8 priority)
|
||||
{
|
||||
u8 taskId;
|
||||
taskId = CreateTask(sub_80B6E88, priority);
|
||||
taskId = CreateTask(Task_EscalatorWarpFieldEffect, priority);
|
||||
gTasks[taskId].data[1] = 0;
|
||||
if (a0 == 0x6a)
|
||||
if (metatileBehavior == MB_UP_ESCALATOR)
|
||||
{
|
||||
gTasks[taskId].data[1] = 1;
|
||||
}
|
||||
}
|
||||
|
||||
static void sub_80B6E88(u8 taskId)
|
||||
static void Task_EscalatorWarpFieldEffect(u8 taskId)
|
||||
{
|
||||
struct Task *task;
|
||||
task = &gTasks[taskId];
|
||||
while (gUnknown_0855C3E4[task->data[0]](task));
|
||||
while (sEscalatorWarpFieldEffectFuncs[task->data[0]](task));
|
||||
}
|
||||
|
||||
static bool8 sub_80B6EC0(struct Task *task)
|
||||
static bool8 EscalatorWarpEffect_1(struct Task *task)
|
||||
{
|
||||
FreezeEventObjects();
|
||||
CameraObjectReset2();
|
||||
@@ -1655,7 +1654,7 @@ static bool8 sub_80B6EC0(struct Task *task)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static bool8 sub_80B6EE0(struct Task *task)
|
||||
static bool8 EscalatorWarpEffect_2(struct Task *task)
|
||||
{
|
||||
struct EventObject *eventObject;
|
||||
eventObject = &gEventObjects[gPlayerAvatar.eventObjectId];
|
||||
@@ -1674,7 +1673,7 @@ static bool8 sub_80B6EE0(struct Task *task)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static bool8 sub_80B6F50(struct Task *task)
|
||||
static bool8 EscalatorWarpEffect_3(struct Task *task)
|
||||
{
|
||||
sub_80B6FB8(task);
|
||||
if (task->data[2] > 3)
|
||||
@@ -1685,14 +1684,14 @@ static bool8 sub_80B6F50(struct Task *task)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static bool8 sub_80B6F74(struct Task *task)
|
||||
static bool8 EscalatorWarpEffect_4(struct Task *task)
|
||||
{
|
||||
sub_80B6FB8(task);
|
||||
sub_80B7060();
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static bool8 sub_80B6F84(struct Task *task)
|
||||
static bool8 EscalatorWarpEffect_5(struct Task *task)
|
||||
{
|
||||
sub_80B7004(task);
|
||||
if (task->data[2] > 3)
|
||||
@@ -1703,7 +1702,7 @@ static bool8 sub_80B6F84(struct Task *task)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static bool8 sub_80B6FA8(struct Task *task)
|
||||
static bool8 EscalatorWarpEffect_6(struct Task *task)
|
||||
{
|
||||
sub_80B7004(task);
|
||||
sub_80B7060();
|
||||
@@ -1739,7 +1738,7 @@ static void sub_80B7004(struct Task *task)
|
||||
static void sub_80B7050(void)
|
||||
{
|
||||
TryFadeOutOldMapMusic();
|
||||
WarpFadeScreen();
|
||||
WarpFadeOutScreen();
|
||||
}
|
||||
|
||||
static void sub_80B7060(void)
|
||||
@@ -1750,14 +1749,14 @@ static void sub_80B7060(void)
|
||||
WarpIntoMap();
|
||||
gFieldCallback = sub_80B70B4;
|
||||
SetMainCallback2(CB2_LoadMap);
|
||||
DestroyTask(FindTaskIdByFunc(sub_80B6E88));
|
||||
DestroyTask(FindTaskIdByFunc(Task_EscalatorWarpFieldEffect));
|
||||
}
|
||||
}
|
||||
|
||||
static void sub_80B70B4(void)
|
||||
{
|
||||
Overworld_PlaySpecialMapMusic();
|
||||
pal_fill_for_maplights();
|
||||
WarpFadeInScreen();
|
||||
ScriptContext2_Enable();
|
||||
CreateTask(sub_80B70DC, 0);
|
||||
gFieldCallback = NULL;
|
||||
@@ -1994,17 +1993,17 @@ static bool8 dive_3_unknown(struct Task *task)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void sub_80B75D8(u8 priority)
|
||||
void StartLavaridgeGymB1FWarp(u8 priority)
|
||||
{
|
||||
CreateTask(sub_80B75F0, priority);
|
||||
CreateTask(Task_LavaridgeGymB1FWarp, priority);
|
||||
}
|
||||
|
||||
static void sub_80B75F0(u8 taskId)
|
||||
static void Task_LavaridgeGymB1FWarp(u8 taskId)
|
||||
{
|
||||
while (gUnknown_0855C438[gTasks[taskId].data[0]](&gTasks[taskId], &gEventObjects[gPlayerAvatar.eventObjectId], &gSprites[gPlayerAvatar.spriteId]));
|
||||
while (sLavaridgeGymB1FWarpEffectFuncs[gTasks[taskId].data[0]](&gTasks[taskId], &gEventObjects[gPlayerAvatar.eventObjectId], &gSprites[gPlayerAvatar.spriteId]));
|
||||
}
|
||||
|
||||
static bool8 sub_80B764C(struct Task *task, struct EventObject *eventObject, struct Sprite *sprite)
|
||||
static bool8 LavaridgeGymB1FWarpEffect_1(struct Task *task, struct EventObject *eventObject, struct Sprite *sprite)
|
||||
{
|
||||
FreezeEventObjects();
|
||||
CameraObjectReset2();
|
||||
@@ -2016,7 +2015,7 @@ static bool8 sub_80B764C(struct Task *task, struct EventObject *eventObject, str
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static bool8 sub_80B7684(struct Task *task, struct EventObject *eventObject, struct Sprite *sprite)
|
||||
static bool8 LavaridgeGymB1FWarpEffect_2(struct Task *task, struct EventObject *eventObject, struct Sprite *sprite)
|
||||
{
|
||||
SetCameraPanning(0, task->data[1]);
|
||||
task->data[1] = -task->data[1];
|
||||
@@ -2029,7 +2028,7 @@ static bool8 sub_80B7684(struct Task *task, struct EventObject *eventObject, str
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static bool8 sub_80B76B8(struct Task *task, struct EventObject *eventObject, struct Sprite *sprite)
|
||||
static bool8 LavaridgeGymB1FWarpEffect_3(struct Task *task, struct EventObject *eventObject, struct Sprite *sprite)
|
||||
{
|
||||
sprite->pos2.y = 0;
|
||||
task->data[3] = 1;
|
||||
@@ -2043,7 +2042,7 @@ static bool8 sub_80B76B8(struct Task *task, struct EventObject *eventObject, str
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static bool8 sub_80B7704(struct Task *task, struct EventObject *eventObject, struct Sprite *sprite)
|
||||
static bool8 LavaridgeGymB1FWarpEffect_4(struct Task *task, struct EventObject *eventObject, struct Sprite *sprite)
|
||||
{
|
||||
s16 centerToCornerVecY;
|
||||
SetCameraPanning(0, task->data[1]);
|
||||
@@ -2086,41 +2085,41 @@ static bool8 sub_80B7704(struct Task *task, struct EventObject *eventObject, str
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static bool8 sub_80B77F8(struct Task *task, struct EventObject *eventObject, struct Sprite *sprite)
|
||||
static bool8 LavaridgeGymB1FWarpEffect_5(struct Task *task, struct EventObject *eventObject, struct Sprite *sprite)
|
||||
{
|
||||
TryFadeOutOldMapMusic();
|
||||
WarpFadeScreen();
|
||||
WarpFadeOutScreen();
|
||||
task->data[0]++;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static bool8 sub_80B7814(struct Task *task, struct EventObject *eventObject, struct Sprite *sprite)
|
||||
static bool8 LavaridgeGymB1FWarpEffect_6(struct Task *task, struct EventObject *eventObject, struct Sprite *sprite)
|
||||
{
|
||||
if (!gPaletteFade.active && BGMusicStopped() == TRUE)
|
||||
{
|
||||
WarpIntoMap();
|
||||
gFieldCallback = mapldr_080851BC;
|
||||
gFieldCallback = FieldCB_LavaridgeGymB1FWarpExit;
|
||||
SetMainCallback2(CB2_LoadMap);
|
||||
DestroyTask(FindTaskIdByFunc(sub_80B75F0));
|
||||
DestroyTask(FindTaskIdByFunc(Task_LavaridgeGymB1FWarp));
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static void mapldr_080851BC(void)
|
||||
static void FieldCB_LavaridgeGymB1FWarpExit(void)
|
||||
{
|
||||
Overworld_PlaySpecialMapMusic();
|
||||
pal_fill_for_maplights();
|
||||
WarpFadeInScreen();
|
||||
ScriptContext2_Enable();
|
||||
gFieldCallback = NULL;
|
||||
CreateTask(sub_80B7890, 0);
|
||||
CreateTask(Task_LavaridgeGymB1FWarpExit, 0);
|
||||
}
|
||||
|
||||
static void sub_80B7890(u8 taskId)
|
||||
static void Task_LavaridgeGymB1FWarpExit(u8 taskId)
|
||||
{
|
||||
while (gUnknown_0855C450[gTasks[taskId].data[0]](&gTasks[taskId], &gEventObjects[gPlayerAvatar.eventObjectId], &gSprites[gPlayerAvatar.spriteId]));
|
||||
while (sLavaridgeGymB1FWarpExitEffectFuncs[gTasks[taskId].data[0]](&gTasks[taskId], &gEventObjects[gPlayerAvatar.eventObjectId], &gSprites[gPlayerAvatar.spriteId]));
|
||||
}
|
||||
|
||||
static bool8 sub_80B78EC(struct Task *task, struct EventObject *eventObject, struct Sprite *sprite)
|
||||
static bool8 LavaridgeGymB1FWarpExitEffect_1(struct Task *task, struct EventObject *eventObject, struct Sprite *sprite)
|
||||
{
|
||||
CameraObjectReset2();
|
||||
FreezeEventObjects();
|
||||
@@ -2130,7 +2129,7 @@ static bool8 sub_80B78EC(struct Task *task, struct EventObject *eventObject, str
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static bool8 sub_80B791C(struct Task *task, struct EventObject *eventObject, struct Sprite *sprite)
|
||||
static bool8 LavaridgeGymB1FWarpExitEffect_2(struct Task *task, struct EventObject *eventObject, struct Sprite *sprite)
|
||||
{
|
||||
if (IsWeatherNotFadingIn())
|
||||
{
|
||||
@@ -2144,7 +2143,7 @@ static bool8 sub_80B791C(struct Task *task, struct EventObject *eventObject, str
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static bool8 sub_80B7968(struct Task *task, struct EventObject *eventObject, struct Sprite *sprite)
|
||||
static bool8 LavaridgeGymB1FWarpExitEffect_3(struct Task *task, struct EventObject *eventObject, struct Sprite *sprite)
|
||||
{
|
||||
sprite = &gSprites[task->data[1]];
|
||||
if (sprite->animCmdIndex > 1)
|
||||
@@ -2158,18 +2157,19 @@ static bool8 sub_80B7968(struct Task *task, struct EventObject *eventObject, str
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static bool8 sub_80B79BC(struct Task *task, struct EventObject *eventObject, struct Sprite *sprite)
|
||||
static bool8 LavaridgeGymB1FWarpExitEffect_4(struct Task *task, struct EventObject *eventObject, struct Sprite *sprite)
|
||||
{
|
||||
if (EventObjectClearHeldMovementIfFinished(eventObject))
|
||||
{
|
||||
gPlayerAvatar.preventStep = FALSE;
|
||||
ScriptContext2_Disable();
|
||||
UnfreezeEventObjects();
|
||||
DestroyTask(FindTaskIdByFunc(sub_80B7890));
|
||||
DestroyTask(FindTaskIdByFunc(Task_LavaridgeGymB1FWarpExit));
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
// For the ash puff effect when warping off the B1F ash tiles
|
||||
u8 FldEff_LavaridgeGymWarp(void)
|
||||
{
|
||||
u8 spriteId;
|
||||
@@ -2180,7 +2180,7 @@ u8 FldEff_LavaridgeGymWarp(void)
|
||||
return spriteId;
|
||||
}
|
||||
|
||||
void sub_80B7A58(struct Sprite *sprite)
|
||||
void SpriteCB_LavaridgeGymWarp(struct Sprite *sprite)
|
||||
{
|
||||
if (sprite->animEnded)
|
||||
{
|
||||
@@ -2188,17 +2188,17 @@ void sub_80B7A58(struct Sprite *sprite)
|
||||
}
|
||||
}
|
||||
|
||||
void sub_80B7A74(u8 priority)
|
||||
void StartLavaridgeGym1FWarp(u8 priority)
|
||||
{
|
||||
CreateTask(sub_80B7A8C, priority);
|
||||
CreateTask(Task_LavaridgeGym1FWarp, priority);
|
||||
}
|
||||
|
||||
static void sub_80B7A8C(u8 taskId)
|
||||
static void Task_LavaridgeGym1FWarp(u8 taskId)
|
||||
{
|
||||
while(gUnknown_0855C460[gTasks[taskId].data[0]](&gTasks[taskId], &gEventObjects[gPlayerAvatar.eventObjectId], &gSprites[gPlayerAvatar.spriteId]));
|
||||
while(sLavaridgeGym1FWarpEffectFuncs[gTasks[taskId].data[0]](&gTasks[taskId], &gEventObjects[gPlayerAvatar.eventObjectId], &gSprites[gPlayerAvatar.spriteId]));
|
||||
}
|
||||
|
||||
static bool8 sub_80B7AE8(struct Task *task, struct EventObject *eventObject, struct Sprite *sprite)
|
||||
static bool8 LavaridgeGym1FWarpEffect_1(struct Task *task, struct EventObject *eventObject, struct Sprite *sprite)
|
||||
{
|
||||
FreezeEventObjects();
|
||||
CameraObjectReset2();
|
||||
@@ -2208,7 +2208,7 @@ static bool8 sub_80B7AE8(struct Task *task, struct EventObject *eventObject, str
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static bool8 sub_80B7B18(struct Task *task, struct EventObject *eventObject, struct Sprite *sprite)
|
||||
static bool8 LavaridgeGym1FWarpEffect_2(struct Task *task, struct EventObject *eventObject, struct Sprite *sprite)
|
||||
{
|
||||
if (EventObjectClearHeldMovementIfFinished(eventObject))
|
||||
{
|
||||
@@ -2230,7 +2230,7 @@ static bool8 sub_80B7B18(struct Task *task, struct EventObject *eventObject, str
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static bool8 sub_80B7B94(struct Task *task, struct EventObject *eventObject, struct Sprite *sprite)
|
||||
static bool8 LavaridgeGym1FWarpEffect_3(struct Task *task, struct EventObject *eventObject, struct Sprite *sprite)
|
||||
{
|
||||
if (gSprites[task->data[1]].animCmdIndex == 2)
|
||||
{
|
||||
@@ -2240,25 +2240,25 @@ static bool8 sub_80B7B94(struct Task *task, struct EventObject *eventObject, str
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static bool8 sub_80B7BCC(struct Task *task, struct EventObject *eventObject, struct Sprite *sprite)
|
||||
static bool8 LavaridgeGym1FWarpEffect_4(struct Task *task, struct EventObject *eventObject, struct Sprite *sprite)
|
||||
{
|
||||
if (!FieldEffectActiveListContains(FLDEFF_POP_OUT_OF_ASH))
|
||||
{
|
||||
TryFadeOutOldMapMusic();
|
||||
WarpFadeScreen();
|
||||
WarpFadeOutScreen();
|
||||
task->data[0]++;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static bool8 sub_80B7BF4(struct Task *task, struct EventObject *eventObject, struct Sprite *sprite)
|
||||
static bool8 LavaridgeGym1FWarpEffect_5(struct Task *task, struct EventObject *eventObject, struct Sprite *sprite)
|
||||
{
|
||||
if (!gPaletteFade.active && BGMusicStopped() == TRUE)
|
||||
{
|
||||
WarpIntoMap();
|
||||
gFieldCallback = sub_80B6B68;
|
||||
gFieldCallback = FieldCB_FallWarpExit;
|
||||
SetMainCallback2(CB2_LoadMap);
|
||||
DestroyTask(FindTaskIdByFunc(sub_80B7A8C));
|
||||
DestroyTask(FindTaskIdByFunc(Task_LavaridgeGym1FWarp));
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
@@ -2273,7 +2273,7 @@ u8 FldEff_PopOutOfAsh(void)
|
||||
return spriteId;
|
||||
}
|
||||
|
||||
void sub_80B7CAC(struct Sprite *sprite)
|
||||
void SpriteCB_PopOutOfAsh(struct Sprite *sprite)
|
||||
{
|
||||
if (sprite->animEnded)
|
||||
{
|
||||
@@ -2307,7 +2307,7 @@ static void EscapeRopeFieldEffect_Step1(struct Task *task)
|
||||
if (task->data[14] != 0 && (--task->data[14]) == 0)
|
||||
{
|
||||
TryFadeOutOldMapMusic();
|
||||
WarpFadeScreen();
|
||||
WarpFadeOutScreen();
|
||||
}
|
||||
eventObject = &gEventObjects[gPlayerAvatar.eventObjectId];
|
||||
if (!EventObjectIsMovementOverridden(eventObject) || EventObjectClearHeldMovementIfFinished(eventObject))
|
||||
@@ -2340,7 +2340,7 @@ void (*const gUnknown_0855C484[])(struct Task *) = {
|
||||
static void mapldr_080859D4(void)
|
||||
{
|
||||
Overworld_PlaySpecialMapMusic();
|
||||
pal_fill_for_maplights();
|
||||
WarpFadeInScreen();
|
||||
ScriptContext2_Enable();
|
||||
FreezeEventObjects();
|
||||
gFieldCallback = NULL;
|
||||
@@ -2460,7 +2460,7 @@ static void TeleportFieldEffectTask3(struct Task *task)
|
||||
{
|
||||
task->data[0]++;
|
||||
TryFadeOutOldMapMusic();
|
||||
WarpFadeScreen();
|
||||
WarpFadeOutScreen();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2488,7 +2488,7 @@ static void TeleportFieldEffectTask4(struct Task *task)
|
||||
static void mapldr_08085D88(void)
|
||||
{
|
||||
Overworld_PlaySpecialMapMusic();
|
||||
pal_fill_for_maplights();
|
||||
WarpFadeInScreen();
|
||||
ScriptContext2_Enable();
|
||||
FreezeEventObjects();
|
||||
gFieldCallback = NULL;
|
||||
@@ -3268,7 +3268,7 @@ static void sub_80B9474(struct Task *task)
|
||||
{
|
||||
if (sub_80B9508(task->data[1]))
|
||||
{
|
||||
WarpFadeScreen();
|
||||
WarpFadeOutScreen();
|
||||
task->data[0]++;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1396,11 +1396,11 @@ void InitPlayerAvatar(s16 x, s16 y, u8 direction, u8 gender)
|
||||
SetPlayerAvatarStateMask(PLAYER_AVATAR_FLAG_5 | PLAYER_AVATAR_FLAG_ON_FOOT);
|
||||
}
|
||||
|
||||
void sub_808C0A8(u8 a)
|
||||
void SetPlayerInvisibility(bool8 invisible)
|
||||
{
|
||||
gEventObjects[gPlayerAvatar.eventObjectId].invisible = a;
|
||||
gEventObjects[gPlayerAvatar.eventObjectId].invisible = invisible;
|
||||
if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_SURFING))
|
||||
gSprites[gEventObjects[gPlayerAvatar.eventObjectId].fieldEffectSpriteId].invisible = a;
|
||||
gSprites[gEventObjects[gPlayerAvatar.eventObjectId].fieldEffectSpriteId].invisible = invisible;
|
||||
}
|
||||
|
||||
void sub_808C114(void)
|
||||
|
||||
@@ -28,6 +28,7 @@
|
||||
#include "task.h"
|
||||
#include "text.h"
|
||||
#include "constants/event_object_movement_constants.h"
|
||||
#include "constants/event_objects.h"
|
||||
#include "constants/songs.h"
|
||||
#include "constants/rgb.h"
|
||||
#include "trainer_hill.h"
|
||||
@@ -38,21 +39,21 @@ extern const u16 gOrbEffectBackgroundLayerFlags[];
|
||||
|
||||
// This file's functions.
|
||||
static void sub_8080B9C(u8);
|
||||
static void task_map_chg_seq_0807E20C(u8);
|
||||
static void task_map_chg_seq_0807E2CC(u8);
|
||||
static void Task_ExitNonAnimDoor(u8);
|
||||
static void Task_ExitNonDoor(u8);
|
||||
static void task0A_fade_n_map_maybe(u8);
|
||||
static void sub_808115C(u8);
|
||||
static void palette_bg_faded_fill_white(void);
|
||||
static void sub_80AF438(u8);
|
||||
static void FillPalBufferWhite(void);
|
||||
static void Task_ExitDoor(u8);
|
||||
static bool32 WaitForWeatherFadeIn(void);
|
||||
static void task0A_mpl_807E31C(u8 taskId);
|
||||
static void sub_80AFA0C(u8 taskId);
|
||||
static void sub_80AFA88(u8 taskId);
|
||||
static void Task_WarpAndLoadMap(u8 taskId);
|
||||
static void Task_DoDoorWarp(u8 taskId);
|
||||
static void Task_EnableScriptAfterMusicFade(u8 taskId);
|
||||
|
||||
// const
|
||||
const u16 sFlashLevelPixelRadii[] = { 200, 72, 64, 56, 48, 40, 32, 24, 0 };
|
||||
const s32 gMaxFlashLevel = 8;
|
||||
static const u16 sFlashLevelPixelRadii[] = { 200, 72, 64, 56, 48, 40, 32, 24, 0 };
|
||||
const s32 gMaxFlashLevel = ARRAY_COUNT(sFlashLevelPixelRadii) - 1;
|
||||
|
||||
const struct ScanlineEffectParams sFlashEffectParams =
|
||||
{
|
||||
@@ -62,44 +63,44 @@ const struct ScanlineEffectParams sFlashEffectParams =
|
||||
};
|
||||
|
||||
// code
|
||||
static void palette_bg_faded_fill_white(void)
|
||||
static void FillPalBufferWhite(void)
|
||||
{
|
||||
CpuFastFill16(RGB_WHITE, gPlttBufferFaded, PLTT_SIZE);
|
||||
}
|
||||
|
||||
static void palette_bg_faded_fill_black(void)
|
||||
static void FillPalBufferBlack(void)
|
||||
{
|
||||
CpuFastFill16(RGB_BLACK, gPlttBufferFaded, PLTT_SIZE);
|
||||
}
|
||||
|
||||
void pal_fill_for_maplights(void)
|
||||
void WarpFadeInScreen(void)
|
||||
{
|
||||
u8 previousMapType = GetLastUsedWarpMapType();
|
||||
switch (GetMapPairFadeFromType(previousMapType, GetCurrentMapType()))
|
||||
{
|
||||
case 0:
|
||||
palette_bg_faded_fill_black();
|
||||
FillPalBufferBlack();
|
||||
FadeScreen(FADE_FROM_BLACK, 0);
|
||||
break;
|
||||
case 1:
|
||||
palette_bg_faded_fill_white();
|
||||
FillPalBufferWhite();
|
||||
FadeScreen(FADE_FROM_WHITE, 0);
|
||||
}
|
||||
}
|
||||
|
||||
static void sub_80AF08C(void)
|
||||
void FadeInFromWhite(void)
|
||||
{
|
||||
palette_bg_faded_fill_white();
|
||||
FillPalBufferWhite();
|
||||
FadeScreen(FADE_FROM_WHITE, 8);
|
||||
}
|
||||
|
||||
void pal_fill_black(void)
|
||||
void FadeInFromBlack(void)
|
||||
{
|
||||
palette_bg_faded_fill_black();
|
||||
FillPalBufferBlack();
|
||||
FadeScreen(FADE_FROM_BLACK, 0);
|
||||
}
|
||||
|
||||
void WarpFadeScreen(void)
|
||||
void WarpFadeOutScreen(void)
|
||||
{
|
||||
u8 currentMapType = GetCurrentMapType();
|
||||
switch (GetMapPairFadeToType(currentMapType, GetDestinationWarpMapHeader()->mapType))
|
||||
@@ -112,26 +113,26 @@ void WarpFadeScreen(void)
|
||||
}
|
||||
}
|
||||
|
||||
static void sub_80AF0F4(u8 arg)
|
||||
static void SetPlayerVisibility(bool8 visible)
|
||||
{
|
||||
sub_808C0A8(!arg);
|
||||
SetPlayerInvisibility(!visible);
|
||||
}
|
||||
|
||||
static void task0A_nop_for_a_while(u8 taskId)
|
||||
static void Task_WaitForUnionRoomFade(u8 taskId)
|
||||
{
|
||||
if (WaitForWeatherFadeIn() == TRUE)
|
||||
DestroyTask(taskId);
|
||||
}
|
||||
|
||||
void sub_80AF128(void)
|
||||
void FieldCB_ContinueScriptUnionRoom(void)
|
||||
{
|
||||
ScriptContext2_Enable();
|
||||
Overworld_PlaySpecialMapMusic();
|
||||
pal_fill_black();
|
||||
CreateTask(task0A_nop_for_a_while, 10);
|
||||
FadeInFromBlack();
|
||||
CreateTask(Task_WaitForUnionRoomFade, 10);
|
||||
}
|
||||
|
||||
static void task0A_asap_script_env_2_enable_and_set_ctx_running(u8 taskID)
|
||||
static void Task_WaitForFadeAndEnableScriptCtx(u8 taskID)
|
||||
{
|
||||
if (WaitForWeatherFadeIn() == TRUE)
|
||||
{
|
||||
@@ -140,22 +141,22 @@ 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();
|
||||
pal_fill_black();
|
||||
CreateTask(task0A_asap_script_env_2_enable_and_set_ctx_running, 10);
|
||||
FadeInFromBlack();
|
||||
CreateTask(Task_WaitForFadeAndEnableScriptCtx, 10);
|
||||
}
|
||||
|
||||
void sub_80AF188(void)
|
||||
void FieldCB_ContinueScript(void)
|
||||
{
|
||||
ScriptContext2_Enable();
|
||||
pal_fill_black();
|
||||
CreateTask(task0A_asap_script_env_2_enable_and_set_ctx_running, 10);
|
||||
FadeInFromBlack();
|
||||
CreateTask(Task_WaitForFadeAndEnableScriptCtx, 10);
|
||||
}
|
||||
|
||||
static void task_mpl_807DD60(u8 taskId)
|
||||
static void Task_ReturnToFieldCableLink(u8 taskId)
|
||||
{
|
||||
struct Task *task = &gTasks[taskId];
|
||||
|
||||
@@ -168,7 +169,7 @@ static void task_mpl_807DD60(u8 taskId)
|
||||
case 1:
|
||||
if (gTasks[task->data[1]].isActive != TRUE)
|
||||
{
|
||||
pal_fill_for_maplights();
|
||||
WarpFadeInScreen();
|
||||
task->data[0]++;
|
||||
}
|
||||
break;
|
||||
@@ -182,15 +183,15 @@ static void task_mpl_807DD60(u8 taskId)
|
||||
}
|
||||
}
|
||||
|
||||
void sub_80AF214(void)
|
||||
void FieldCB_ReturnToFieldCableLink(void)
|
||||
{
|
||||
ScriptContext2_Enable();
|
||||
Overworld_PlaySpecialMapMusic();
|
||||
palette_bg_faded_fill_black();
|
||||
CreateTask(task_mpl_807DD60, 10);
|
||||
FillPalBufferBlack();
|
||||
CreateTask(Task_ReturnToFieldCableLink, 10);
|
||||
}
|
||||
|
||||
static void sub_80AF234(u8 taskId)
|
||||
static void Task_ReturnToFieldWirelessLink(u8 taskId)
|
||||
{
|
||||
struct Task *task = &gTasks[taskId];
|
||||
|
||||
@@ -208,7 +209,7 @@ static void sub_80AF234(u8 taskId)
|
||||
}
|
||||
else
|
||||
{
|
||||
pal_fill_for_maplights();
|
||||
WarpFadeInScreen();
|
||||
task->data[0]++;
|
||||
}
|
||||
break;
|
||||
@@ -223,7 +224,7 @@ static void sub_80AF234(u8 taskId)
|
||||
}
|
||||
}
|
||||
|
||||
void sub_80AF2B4(u8 taskId)
|
||||
void Task_ReturnToFieldRecordMixing(u8 taskId)
|
||||
{
|
||||
struct Task *task = &gTasks[taskId];
|
||||
|
||||
@@ -248,15 +249,15 @@ void sub_80AF2B4(u8 taskId)
|
||||
}
|
||||
}
|
||||
|
||||
void sub_80AF314(void)
|
||||
void FieldCB_ReturnToFieldWirelessLink(void)
|
||||
{
|
||||
ScriptContext2_Enable();
|
||||
Overworld_PlaySpecialMapMusic();
|
||||
palette_bg_faded_fill_black();
|
||||
CreateTask(sub_80AF234, 10);
|
||||
FillPalBufferBlack();
|
||||
CreateTask(Task_ReturnToFieldWirelessLink, 10);
|
||||
}
|
||||
|
||||
static void sub_80AF334(void)
|
||||
static void SetUpWarpExitTask(void)
|
||||
{
|
||||
s16 x, y;
|
||||
u8 behavior;
|
||||
@@ -265,59 +266,59 @@ static void sub_80AF334(void)
|
||||
PlayerGetDestCoords(&x, &y);
|
||||
behavior = MapGridGetMetatileBehaviorAt(x, y);
|
||||
if (MetatileBehavior_IsDoor(behavior) == TRUE)
|
||||
func = sub_80AF438;
|
||||
func = Task_ExitDoor;
|
||||
else if (MetatileBehavior_IsNonAnimDoor(behavior) == TRUE)
|
||||
func = task_map_chg_seq_0807E20C;
|
||||
func = Task_ExitNonAnimDoor;
|
||||
else
|
||||
func = task_map_chg_seq_0807E2CC;
|
||||
func = Task_ExitNonDoor;
|
||||
CreateTask(func, 10);
|
||||
}
|
||||
|
||||
void mapldr_default(void)
|
||||
void FieldCB_DefaultWarpExit(void)
|
||||
{
|
||||
Overworld_PlaySpecialMapMusic();
|
||||
pal_fill_for_maplights();
|
||||
sub_80AF334();
|
||||
WarpFadeInScreen();
|
||||
SetUpWarpExitTask();
|
||||
ScriptContext2_Enable();
|
||||
}
|
||||
|
||||
void sub_80AF3B0(void)
|
||||
void FieldCB_WarpExitFadeFromWhite(void)
|
||||
{
|
||||
Overworld_PlaySpecialMapMusic();
|
||||
sub_80AF08C();
|
||||
sub_80AF334();
|
||||
FadeInFromWhite();
|
||||
SetUpWarpExitTask();
|
||||
ScriptContext2_Enable();
|
||||
}
|
||||
|
||||
void sub_80AF3C8(void)
|
||||
void FieldCB_WarpExitFadeFromBlack(void)
|
||||
{
|
||||
if (!sub_81D6534())
|
||||
if (!sub_81D6534()) // sub_81D6534 always returns false
|
||||
Overworld_PlaySpecialMapMusic();
|
||||
pal_fill_black();
|
||||
sub_80AF334();
|
||||
FadeInFromBlack();
|
||||
SetUpWarpExitTask();
|
||||
ScriptContext2_Enable();
|
||||
}
|
||||
|
||||
void sub_80AF3E8(void)
|
||||
static void FieldCB_TeleportWarpExit(void)
|
||||
{
|
||||
Overworld_PlaySpecialMapMusic();
|
||||
pal_fill_for_maplights();
|
||||
WarpFadeInScreen();
|
||||
PlaySE(SE_TK_WARPOUT);
|
||||
CreateTask(task0A_mpl_807E31C, 10);
|
||||
ScriptContext2_Enable();
|
||||
}
|
||||
|
||||
void sub_80AF40C(void)
|
||||
static void FieldCB_MossdeepGymWarpExit(void)
|
||||
{
|
||||
Overworld_PlaySpecialMapMusic();
|
||||
pal_fill_for_maplights();
|
||||
WarpFadeInScreen();
|
||||
PlaySE(SE_TK_WARPOUT);
|
||||
CreateTask(task_map_chg_seq_0807E2CC, 10);
|
||||
CreateTask(Task_ExitNonDoor, 10);
|
||||
ScriptContext2_Enable();
|
||||
sub_8085540(0xE);
|
||||
}
|
||||
|
||||
static void sub_80AF438(u8 taskId)
|
||||
static void Task_ExitDoor(u8 taskId)
|
||||
{
|
||||
struct Task *task = &gTasks[taskId];
|
||||
s16 *x = &task->data[2];
|
||||
@@ -326,7 +327,7 @@ static void sub_80AF438(u8 taskId)
|
||||
switch (task->data[0])
|
||||
{
|
||||
case 0:
|
||||
sub_80AF0F4(0);
|
||||
SetPlayerVisibility(FALSE);
|
||||
FreezeEventObjects();
|
||||
PlayerGetDestCoords(x, y);
|
||||
FieldSetDoorOpened(*x, *y);
|
||||
@@ -336,18 +337,18 @@ static void sub_80AF438(u8 taskId)
|
||||
if (WaitForWeatherFadeIn())
|
||||
{
|
||||
u8 eventObjId;
|
||||
sub_80AF0F4(1);
|
||||
eventObjId = GetEventObjectIdByLocalIdAndMap(0xFF, 0, 0);
|
||||
SetPlayerVisibility(TRUE);
|
||||
eventObjId = GetEventObjectIdByLocalIdAndMap(EVENT_OBJ_ID_PLAYER, 0, 0);
|
||||
EventObjectSetHeldMovement(&gEventObjects[eventObjId], MOVEMENT_ACTION_WALK_NORMAL_DOWN);
|
||||
task->data[0] = 2;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if (walkrun_is_standing_still())
|
||||
if (IsPlayerStandingStill())
|
||||
{
|
||||
u8 eventObjId;
|
||||
task->data[1] = FieldAnimateDoorClose(*x, *y);
|
||||
eventObjId = GetEventObjectIdByLocalIdAndMap(0xFF, 0, 0);
|
||||
eventObjId = GetEventObjectIdByLocalIdAndMap(EVENT_OBJ_ID_PLAYER, 0, 0);
|
||||
EventObjectClearHeldMovementIfFinished(&gEventObjects[eventObjId]);
|
||||
task->data[0] = 3;
|
||||
}
|
||||
@@ -366,7 +367,7 @@ static void sub_80AF438(u8 taskId)
|
||||
}
|
||||
}
|
||||
|
||||
static void task_map_chg_seq_0807E20C(u8 taskId)
|
||||
static void Task_ExitNonAnimDoor(u8 taskId)
|
||||
{
|
||||
struct Task *task = &gTasks[taskId];
|
||||
s16 *x = &task->data[2];
|
||||
@@ -375,7 +376,7 @@ static void task_map_chg_seq_0807E20C(u8 taskId)
|
||||
switch (task->data[0])
|
||||
{
|
||||
case 0:
|
||||
sub_80AF0F4(0);
|
||||
SetPlayerVisibility(FALSE);
|
||||
FreezeEventObjects();
|
||||
PlayerGetDestCoords(x, y);
|
||||
task->data[0] = 1;
|
||||
@@ -384,14 +385,14 @@ static void task_map_chg_seq_0807E20C(u8 taskId)
|
||||
if (WaitForWeatherFadeIn())
|
||||
{
|
||||
u8 eventObjId;
|
||||
sub_80AF0F4(1);
|
||||
eventObjId = GetEventObjectIdByLocalIdAndMap(0xFF, 0, 0);
|
||||
SetPlayerVisibility(TRUE);
|
||||
eventObjId = GetEventObjectIdByLocalIdAndMap(EVENT_OBJ_ID_PLAYER, 0, 0);
|
||||
EventObjectSetHeldMovement(&gEventObjects[eventObjId], GetWalkNormalMovementAction(GetPlayerFacingDirection()));
|
||||
task->data[0] = 2;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if (walkrun_is_standing_still())
|
||||
if (IsPlayerStandingStill())
|
||||
{
|
||||
UnfreezeEventObjects();
|
||||
task->data[0] = 3;
|
||||
@@ -404,7 +405,7 @@ static void task_map_chg_seq_0807E20C(u8 taskId)
|
||||
}
|
||||
}
|
||||
|
||||
static void task_map_chg_seq_0807E2CC(u8 taskId)
|
||||
static void Task_ExitNonDoor(u8 taskId)
|
||||
{
|
||||
switch (gTasks[taskId].data[0])
|
||||
{
|
||||
@@ -424,7 +425,7 @@ static void task_map_chg_seq_0807E2CC(u8 taskId)
|
||||
}
|
||||
}
|
||||
|
||||
static void sub_80AF660(u8 taskId)
|
||||
static void Task_WaitForFadeShowStartMenu(u8 taskId)
|
||||
{
|
||||
if (WaitForWeatherFadeIn() == TRUE)
|
||||
{
|
||||
@@ -433,16 +434,16 @@ static void sub_80AF660(u8 taskId)
|
||||
}
|
||||
}
|
||||
|
||||
void sub_80AF688(void)
|
||||
void ReturnToFieldOpenStartMenu(void)
|
||||
{
|
||||
pal_fill_black();
|
||||
CreateTask(sub_80AF660, 0x50);
|
||||
FadeInFromBlack();
|
||||
CreateTask(Task_WaitForFadeShowStartMenu, 0x50);
|
||||
ScriptContext2_Enable();
|
||||
}
|
||||
|
||||
bool8 sub_80AF6A4(void)
|
||||
bool8 FieldCB_ReturnToFieldOpenStartMenu(void)
|
||||
{
|
||||
sub_809FA18();
|
||||
ShowReturnToFieldStartMenu();
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
@@ -459,7 +460,7 @@ static void task_mpl_807E3C8(u8 taskId)
|
||||
void sub_80AF6D4(void)
|
||||
{
|
||||
ScriptContext2_Enable();
|
||||
pal_fill_black();
|
||||
FadeInFromBlack();
|
||||
CreateTask(task_mpl_807E3C8, 10);
|
||||
}
|
||||
|
||||
@@ -467,7 +468,7 @@ void sub_80AF6F0(void)
|
||||
{
|
||||
ScriptContext2_Enable();
|
||||
Overworld_PlaySpecialMapMusic();
|
||||
pal_fill_black();
|
||||
FadeInFromBlack();
|
||||
CreateTask(task_mpl_807E3C8, 10);
|
||||
}
|
||||
|
||||
@@ -488,72 +489,72 @@ void DoWarp(void)
|
||||
{
|
||||
ScriptContext2_Enable();
|
||||
TryFadeOutOldMapMusic();
|
||||
WarpFadeScreen();
|
||||
WarpFadeOutScreen();
|
||||
PlayRainStoppingSoundEffect();
|
||||
PlaySE(SE_KAIDAN);
|
||||
gFieldCallback = mapldr_default;
|
||||
CreateTask(sub_80AFA0C, 10);
|
||||
gFieldCallback = FieldCB_DefaultWarpExit;
|
||||
CreateTask(Task_WarpAndLoadMap, 10);
|
||||
}
|
||||
|
||||
void DoDiveWarp(void)
|
||||
{
|
||||
ScriptContext2_Enable();
|
||||
TryFadeOutOldMapMusic();
|
||||
WarpFadeScreen();
|
||||
WarpFadeOutScreen();
|
||||
PlayRainStoppingSoundEffect();
|
||||
gFieldCallback = mapldr_default;
|
||||
CreateTask(sub_80AFA0C, 10);
|
||||
gFieldCallback = FieldCB_DefaultWarpExit;
|
||||
CreateTask(Task_WarpAndLoadMap, 10);
|
||||
}
|
||||
|
||||
void sub_80AF79C(void)
|
||||
void DoSootopolisLegendWarp(void)
|
||||
{
|
||||
ScriptContext2_Enable();
|
||||
TryFadeOutOldMapMusic();
|
||||
FadeScreen(FADE_TO_WHITE, 8);
|
||||
PlayRainStoppingSoundEffect();
|
||||
gFieldCallback = sub_80AF3B0;
|
||||
CreateTask(sub_80AFA0C, 10);
|
||||
gFieldCallback = FieldCB_WarpExitFadeFromWhite;
|
||||
CreateTask(Task_WarpAndLoadMap, 10);
|
||||
}
|
||||
|
||||
void DoDoorWarp(void)
|
||||
{
|
||||
ScriptContext2_Enable();
|
||||
gFieldCallback = mapldr_default;
|
||||
CreateTask(sub_80AFA88, 10);
|
||||
gFieldCallback = FieldCB_DefaultWarpExit;
|
||||
CreateTask(Task_DoDoorWarp, 10);
|
||||
}
|
||||
|
||||
void DoFallWarp(void)
|
||||
{
|
||||
DoDiveWarp();
|
||||
gFieldCallback = sub_80B6B68;
|
||||
gFieldCallback = FieldCB_FallWarpExit;
|
||||
}
|
||||
|
||||
void sub_80AF80C(u8 metatileBehavior)
|
||||
void DoEscalatorWarp(u8 metatileBehavior)
|
||||
{
|
||||
ScriptContext2_Enable();
|
||||
sub_80B6E4C(metatileBehavior, 10);
|
||||
StartEscalatorWarp(metatileBehavior, 10);
|
||||
}
|
||||
|
||||
void sub_80AF828(void)
|
||||
void DoLavaridgeGymB1FWarp(void)
|
||||
{
|
||||
ScriptContext2_Enable();
|
||||
sub_80B75D8(10);
|
||||
StartLavaridgeGymB1FWarp(10);
|
||||
}
|
||||
|
||||
void sub_80AF838(void)
|
||||
void DoLavaridgeGym1FWarp(void)
|
||||
{
|
||||
ScriptContext2_Enable();
|
||||
sub_80B7A74(10);
|
||||
StartLavaridgeGym1FWarp(10);
|
||||
}
|
||||
|
||||
void sub_80AF848(void)
|
||||
void DoTeleportWarp(void)
|
||||
{
|
||||
ScriptContext2_Enable();
|
||||
TryFadeOutOldMapMusic();
|
||||
WarpFadeScreen();
|
||||
WarpFadeOutScreen();
|
||||
PlaySE(SE_TK_WARPIN);
|
||||
CreateTask(sub_80AFA0C, 10);
|
||||
gFieldCallback = sub_80AF3E8;
|
||||
CreateTask(Task_WarpAndLoadMap, 10);
|
||||
gFieldCallback = FieldCB_TeleportWarpExit;
|
||||
}
|
||||
|
||||
void DoMossdeepGymWarp(void)
|
||||
@@ -562,18 +563,18 @@ void DoMossdeepGymWarp(void)
|
||||
ScriptContext2_Enable();
|
||||
SaveEventObjects();
|
||||
TryFadeOutOldMapMusic();
|
||||
WarpFadeScreen();
|
||||
WarpFadeOutScreen();
|
||||
PlaySE(SE_TK_WARPIN);
|
||||
CreateTask(sub_80AFA0C, 10);
|
||||
gFieldCallback = sub_80AF40C;
|
||||
CreateTask(Task_WarpAndLoadMap, 10);
|
||||
gFieldCallback = FieldCB_MossdeepGymWarpExit;
|
||||
}
|
||||
|
||||
void sub_80AF8B8(void)
|
||||
void DoPortholeWarp(void)
|
||||
{
|
||||
ScriptContext2_Enable();
|
||||
WarpFadeScreen();
|
||||
CreateTask(sub_80AFA0C, 10);
|
||||
gFieldCallback = sub_80FB768;
|
||||
WarpFadeOutScreen();
|
||||
CreateTask(Task_WarpAndLoadMap, 10);
|
||||
gFieldCallback = FieldCB_ShowPortholeView;
|
||||
}
|
||||
|
||||
static void sub_80AF8E0(u8 taskId)
|
||||
@@ -592,17 +593,17 @@ static void sub_80AF8E0(u8 taskId)
|
||||
break;
|
||||
case 2:
|
||||
WarpIntoMap();
|
||||
SetMainCallback2(sub_8086074);
|
||||
SetMainCallback2(CB2_ReturnToFieldCableClub);
|
||||
DestroyTask(taskId);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_80AF948(void)
|
||||
void DoCableClubWarp(void)
|
||||
{
|
||||
ScriptContext2_Enable();
|
||||
TryFadeOutOldMapMusic();
|
||||
WarpFadeScreen();
|
||||
WarpFadeOutScreen();
|
||||
PlaySE(SE_KAIDAN);
|
||||
CreateTask(sub_80AF8E0, 10);
|
||||
}
|
||||
@@ -643,7 +644,7 @@ void ReturnFromLinkRoom(void)
|
||||
CreateTask(Task_ReturnToWorldFromLinkRoom, 10);
|
||||
}
|
||||
|
||||
static void sub_80AFA0C(u8 taskId)
|
||||
static void Task_WarpAndLoadMap(u8 taskId)
|
||||
{
|
||||
struct Task *task = &gTasks[taskId];
|
||||
|
||||
@@ -674,7 +675,7 @@ static void sub_80AFA0C(u8 taskId)
|
||||
}
|
||||
}
|
||||
|
||||
static void sub_80AFA88(u8 taskId)
|
||||
static void Task_DoDoorWarp(u8 taskId)
|
||||
{
|
||||
struct Task *task = &gTasks[taskId];
|
||||
s16 *x = &task->data[2];
|
||||
@@ -693,21 +694,21 @@ static void sub_80AFA88(u8 taskId)
|
||||
if (task->data[1] < 0 || gTasks[task->data[1]].isActive != TRUE)
|
||||
{
|
||||
u8 eventObjId;
|
||||
eventObjId = GetEventObjectIdByLocalIdAndMap(0xFF, 0, 0);
|
||||
eventObjId = GetEventObjectIdByLocalIdAndMap(EVENT_OBJ_ID_PLAYER, 0, 0);
|
||||
EventObjectClearHeldMovementIfActive(&gEventObjects[eventObjId]);
|
||||
eventObjId = GetEventObjectIdByLocalIdAndMap(0xFF, 0, 0);
|
||||
eventObjId = GetEventObjectIdByLocalIdAndMap(EVENT_OBJ_ID_PLAYER, 0, 0);
|
||||
EventObjectSetHeldMovement(&gEventObjects[eventObjId], MOVEMENT_ACTION_WALK_NORMAL_UP);
|
||||
task->data[0] = 2;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if (walkrun_is_standing_still())
|
||||
if (IsPlayerStandingStill())
|
||||
{
|
||||
u8 eventObjId;
|
||||
task->data[1] = FieldAnimateDoorClose(*x, *y - 1);
|
||||
eventObjId = GetEventObjectIdByLocalIdAndMap(0xFF, 0, 0);
|
||||
eventObjId = GetEventObjectIdByLocalIdAndMap(EVENT_OBJ_ID_PLAYER, 0, 0);
|
||||
EventObjectClearHeldMovementIfFinished(&gEventObjects[eventObjId]);
|
||||
sub_80AF0F4(0);
|
||||
SetPlayerVisibility(FALSE);
|
||||
task->data[0] = 3;
|
||||
}
|
||||
break;
|
||||
@@ -719,10 +720,10 @@ static void sub_80AFA88(u8 taskId)
|
||||
break;
|
||||
case 4:
|
||||
TryFadeOutOldMapMusic();
|
||||
WarpFadeScreen();
|
||||
WarpFadeOutScreen();
|
||||
PlayRainStoppingSoundEffect();
|
||||
task->data[0] = 0;
|
||||
task->func = sub_80AFA0C;
|
||||
task->func = Task_WarpAndLoadMap;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -756,10 +757,10 @@ void DoContestHallWarp(void)
|
||||
{
|
||||
ScriptContext2_Enable();
|
||||
TryFadeOutOldMapMusic();
|
||||
WarpFadeScreen();
|
||||
WarpFadeOutScreen();
|
||||
PlayRainStoppingSoundEffect();
|
||||
PlaySE(SE_KAIDAN);
|
||||
gFieldCallback = sub_80AF3C8;
|
||||
gFieldCallback = FieldCB_WarpExitFadeFromBlack;
|
||||
CreateTask(task0A_fade_n_map_maybe, 10);
|
||||
}
|
||||
|
||||
@@ -1033,7 +1034,7 @@ static void sub_80B01BC(u8 taskId)
|
||||
case 1:
|
||||
if (!sub_808D1E8())
|
||||
{
|
||||
WarpFadeScreen();
|
||||
WarpFadeOutScreen();
|
||||
task->data[0]++;
|
||||
}
|
||||
break;
|
||||
@@ -1052,14 +1053,14 @@ static void sub_80B01BC(u8 taskId)
|
||||
void sub_80B0244(void)
|
||||
{
|
||||
ScriptContext2_Enable();
|
||||
CreateTask(sub_80AFA0C, 10);
|
||||
gFieldCallback = sub_80AF3E8;
|
||||
CreateTask(Task_WarpAndLoadMap, 10);
|
||||
gFieldCallback = FieldCB_TeleportWarpExit;
|
||||
}
|
||||
|
||||
void sub_80B0268(void)
|
||||
{
|
||||
ScriptContext2_Enable();
|
||||
gFieldCallback = mapldr_default;
|
||||
gFieldCallback = FieldCB_DefaultWarpExit;
|
||||
CreateTask(sub_80B01BC, 10);
|
||||
}
|
||||
|
||||
|
||||
@@ -179,7 +179,7 @@ void Task_HandleTruckSequence(u8 taskId)
|
||||
data[1]++;
|
||||
if (data[1] == SECONDS(2.5))
|
||||
{
|
||||
pal_fill_black();
|
||||
FadeInFromBlack();
|
||||
data[1] = 0;
|
||||
data[0] = 2;
|
||||
}
|
||||
@@ -249,12 +249,12 @@ void EndTruckSequence(u8 taskId)
|
||||
}
|
||||
}
|
||||
|
||||
bool8 sub_80FB59C(void)
|
||||
bool8 TrySetPortholeWarpDestination(void)
|
||||
{
|
||||
s8 mapGroup, mapNum;
|
||||
s16 x, y;
|
||||
|
||||
if (GetSSTidalLocation(&mapGroup, &mapNum, &x, &y))
|
||||
if (GetSSTidalLocation(&mapGroup, &mapNum, &x, &y) != SS_TIDAL_LOCATION_CURRENTS)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
@@ -336,11 +336,11 @@ static void ShowSSTidalWhileSailing(void)
|
||||
StartSpriteAnim(&gSprites[spriteId], GetFaceDirectionAnimNum(DIR_WEST));
|
||||
}
|
||||
|
||||
void sub_80FB768(void)
|
||||
void FieldCB_ShowPortholeView(void)
|
||||
{
|
||||
ShowSSTidalWhileSailing();
|
||||
gEventObjects[gPlayerAvatar.eventObjectId].invisible = TRUE;
|
||||
pal_fill_black();
|
||||
FadeInFromBlack();
|
||||
CreateTask(Task_HandlePorthole, 80);
|
||||
ScriptContext2_Enable();
|
||||
}
|
||||
@@ -351,6 +351,6 @@ void LookThroughPorthole(void)
|
||||
FlagSet(FLAG_DONT_TRANSITION_MUSIC);
|
||||
FlagSet(FLAG_HIDE_MAP_NAME_POPUP);
|
||||
SetDynamicWarp(0, gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1);
|
||||
sub_80FB59C();
|
||||
sub_80AF8B8();
|
||||
TrySetPortholeWarpDestination();
|
||||
DoPortholeWarp();
|
||||
}
|
||||
|
||||
@@ -366,7 +366,7 @@ u8 GetSSTidalLocation(s8 *mapGroup, s8 *mapNum, s16 *x, s16 *y)
|
||||
}
|
||||
*mapGroup = MAP_GROUP(ROUTE132);
|
||||
*y = 20;
|
||||
return SS_TIDAL_LOCATION_OTHER;
|
||||
return SS_TIDAL_LOCATION_CURRENTS;
|
||||
}
|
||||
|
||||
bool32 ShouldDoWallyCall(void)
|
||||
|
||||
@@ -138,7 +138,7 @@ void SetUpItemUseOnFieldCallback(u8 taskId)
|
||||
|
||||
void MapPostLoadHook_UseItem(void)
|
||||
{
|
||||
pal_fill_black();
|
||||
FadeInFromBlack();
|
||||
CreateTask(Task_CallItemUseOnFieldCallback, 8);
|
||||
}
|
||||
|
||||
|
||||
@@ -376,7 +376,7 @@ static void Task_WaitForFadeOut(u8 taskId)
|
||||
if (!gPaletteFade.active)
|
||||
{
|
||||
SetMainCallback2(CB2_InitLearnMove);
|
||||
gFieldCallback = FieldCallback_ReturnToEventScript2;
|
||||
gFieldCallback = FieldCB_ContinueScriptHandleMusic;
|
||||
DestroyTask(taskId);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1526,7 +1526,7 @@ static bool8 map_post_load_hook_exec(void)
|
||||
if (gFieldCallback)
|
||||
gFieldCallback();
|
||||
else
|
||||
mapldr_default();
|
||||
FieldCB_DefaultWarpExit();
|
||||
|
||||
gFieldCallback = NULL;
|
||||
}
|
||||
@@ -1565,7 +1565,7 @@ void CB2_WhiteOut(void)
|
||||
ResetInitialPlayerAvatarState();
|
||||
ScriptContext1_Init();
|
||||
ScriptContext2_Disable();
|
||||
gFieldCallback = sub_80AF3C8;
|
||||
gFieldCallback = FieldCB_WarpExitFadeFromBlack;
|
||||
val = 0;
|
||||
do_load_map_stuff_loop(&val);
|
||||
SetFieldVBlankCallback();
|
||||
@@ -1609,10 +1609,10 @@ void sub_8086024(void)
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8086074(void)
|
||||
void CB2_ReturnToFieldCableClub(void)
|
||||
{
|
||||
FieldClearVBlankHBlankCallbacks();
|
||||
gFieldCallback = sub_80AF314;
|
||||
gFieldCallback = FieldCB_ReturnToFieldWirelessLink;
|
||||
SetMainCallback2(c2_80567AC);
|
||||
}
|
||||
|
||||
@@ -1663,9 +1663,9 @@ void CB2_ReturnToFieldFromMultiplayer(void)
|
||||
ResetAllMultiplayerState();
|
||||
|
||||
if (gWirelessCommType != 0)
|
||||
gFieldCallback = sub_80AF314;
|
||||
gFieldCallback = FieldCB_ReturnToFieldWirelessLink;
|
||||
else
|
||||
gFieldCallback = sub_80AF214;
|
||||
gFieldCallback = FieldCB_ReturnToFieldCableLink;
|
||||
|
||||
ScriptContext1_Init();
|
||||
ScriptContext2_Disable();
|
||||
@@ -1675,28 +1675,28 @@ void CB2_ReturnToFieldFromMultiplayer(void)
|
||||
void CB2_ReturnToFieldWithOpenMenu(void)
|
||||
{
|
||||
FieldClearVBlankHBlankCallbacks();
|
||||
gFieldCallback2 = sub_80AF6A4;
|
||||
gFieldCallback2 = FieldCB_ReturnToFieldOpenStartMenu;
|
||||
CB2_ReturnToField();
|
||||
}
|
||||
|
||||
void CB2_ReturnToFieldContinueScript(void)
|
||||
{
|
||||
FieldClearVBlankHBlankCallbacks();
|
||||
gFieldCallback = sub_80AF188;
|
||||
gFieldCallback = FieldCB_ContinueScript;
|
||||
CB2_ReturnToField();
|
||||
}
|
||||
|
||||
void CB2_ReturnToFieldContinueScriptPlayMapMusic(void)
|
||||
{
|
||||
FieldClearVBlankHBlankCallbacks();
|
||||
gFieldCallback = FieldCallback_ReturnToEventScript2;
|
||||
gFieldCallback = FieldCB_ContinueScriptHandleMusic;
|
||||
CB2_ReturnToField();
|
||||
}
|
||||
|
||||
void sub_80861E8(void)
|
||||
{
|
||||
FieldClearVBlankHBlankCallbacks();
|
||||
gFieldCallback = sub_80AF3C8;
|
||||
gFieldCallback = FieldCB_WarpExitFadeFromBlack;
|
||||
CB2_ReturnToField();
|
||||
}
|
||||
|
||||
@@ -1704,7 +1704,7 @@ static void sub_8086204(void)
|
||||
{
|
||||
if ((gMapHeader.flags & 0xF8) == 8 && SecretBaseMapPopupEnabled() == TRUE)
|
||||
ShowMapNamePopup();
|
||||
sub_80AF3C8();
|
||||
FieldCB_WarpExitFadeFromBlack();
|
||||
}
|
||||
|
||||
void CB2_ContinueSavedGame(void)
|
||||
|
||||
@@ -3745,7 +3745,7 @@ static void Task_HandleFieldMoveExitAreaYesNoInput(u8 taskId)
|
||||
|
||||
bool8 FieldCallback_PrepareFadeInFromMenu(void)
|
||||
{
|
||||
pal_fill_black();
|
||||
FadeInFromBlack();
|
||||
CreateTask(Task_FieldMoveWaitForFade, 8);
|
||||
return TRUE;
|
||||
}
|
||||
@@ -6143,7 +6143,7 @@ static void BufferMonSelection(void)
|
||||
|
||||
bool8 CB2_FadeFromPartyMenu(void)
|
||||
{
|
||||
pal_fill_black();
|
||||
FadeInFromBlack();
|
||||
CreateTask(Task_PartyMenuWaitForFade, 10);
|
||||
return TRUE;
|
||||
}
|
||||
@@ -6268,7 +6268,7 @@ static void Task_BattlePyramidChooseMonHeldItems(u8 taskId)
|
||||
void MoveDeleterChooseMoveToForget(void)
|
||||
{
|
||||
ShowPokemonSummaryScreen(PSS_MODE_SELECT_MOVE, gPlayerParty, gSpecialVar_0x8004, gPlayerPartyCount - 1, CB2_ReturnToField);
|
||||
gFieldCallback = FieldCallback_ReturnToEventScript2;
|
||||
gFieldCallback = FieldCB_ContinueScriptHandleMusic;
|
||||
}
|
||||
|
||||
void GetNumMovesSelectedMonHas(void)
|
||||
|
||||
@@ -508,7 +508,7 @@ void Mailbox_DoRedrawMailboxMenuAfterReturn(void)
|
||||
sub_81973A4();
|
||||
DrawDialogueFrame(0, 1);
|
||||
InitItemStorageMenu(CreateTask(ItemStorage_HandleReturnToProcessInput, 0), 1);
|
||||
pal_fill_black();
|
||||
FadeInFromBlack();
|
||||
}
|
||||
|
||||
static void ItemStorage_HandleReturnToProcessInput(u8 taskId)
|
||||
@@ -745,7 +745,7 @@ static void pal_fill_for_maplights_or_black(void)
|
||||
Mailbox_DrawMailboxMenu(taskId);
|
||||
else
|
||||
DestroyTask(taskId);
|
||||
pal_fill_black();
|
||||
FadeInFromBlack();
|
||||
}
|
||||
|
||||
static void Mailbox_HandleReturnToProcessInput(u8 taskId)
|
||||
@@ -852,7 +852,7 @@ static void Mailbox_UpdateMailListAfterDeposit(void)
|
||||
Mailbox_DrawMailboxMenu(taskId);
|
||||
else
|
||||
DestroyTask(taskId);
|
||||
pal_fill_black();
|
||||
FadeInFromBlack();
|
||||
}
|
||||
|
||||
static void Mailbox_NoPokemonForMail(u8 taskId)
|
||||
|
||||
@@ -960,7 +960,7 @@ static void Task_FreeDataAndExitPokeblockCase(u8 taskId)
|
||||
if (!gPaletteFade.active)
|
||||
{
|
||||
if (sPokeblockMenu->caseId == PBLOCK_CASE_FEEDER || sPokeblockMenu->caseId == PBLOCK_CASE_GIVE)
|
||||
gFieldCallback = FieldCallback_ReturnToEventScript2;
|
||||
gFieldCallback = FieldCB_ContinueScriptHandleMusic;
|
||||
|
||||
DestroyListMenuTask(data[0], &sSavedPokeblockData.lastItemPage, &sSavedPokeblockData.lastItemPos);
|
||||
sub_8136418();
|
||||
|
||||
@@ -1855,7 +1855,7 @@ static void FieldCb_ReturnToPcMenu(void)
|
||||
gTasks[taskId].data[1] = sPreviousBoxOption;
|
||||
Task_PokemonStorageSystemPC(taskId);
|
||||
SetVBlankCallback(vblankCb);
|
||||
pal_fill_black();
|
||||
FadeInFromBlack();
|
||||
}
|
||||
|
||||
static void CreatePCMenu(u8 whichMenu, s16 *windowIdPtr)
|
||||
|
||||
@@ -369,7 +369,7 @@ static void Task_RecordMixing_Main(u8 taskId)
|
||||
sub_808729C();
|
||||
if (gWirelessCommType != 0)
|
||||
{
|
||||
CreateTask(sub_80AF2B4, 10);
|
||||
CreateTask(Task_ReturnToFieldRecordMixing, 10);
|
||||
}
|
||||
ClearDialogWindowAndFrame(0, 1);
|
||||
DestroyTask(taskId);
|
||||
|
||||
@@ -1158,7 +1158,7 @@ static void RegionMap_InitializeStateBasedOnSSTidalLocation(void)
|
||||
gRegionMap->mapSecId = MAPSEC_ROUTE_131;
|
||||
break;
|
||||
default:
|
||||
case SS_TIDAL_LOCATION_OTHER:
|
||||
case SS_TIDAL_LOCATION_CURRENTS:
|
||||
mapHeader = Overworld_GetMapHeaderByGroupAndId(mapGroup, mapNum);
|
||||
|
||||
gRegionMap->mapSecId = mapHeader->regionMapSectionId;
|
||||
|
||||
@@ -1727,7 +1727,7 @@ static void sub_8141E7C(u8 taskId) // end roulette ?
|
||||
ResetPaletteFade();
|
||||
ResetSpriteData();
|
||||
sub_8140418();
|
||||
gFieldCallback = FieldCallback_ReturnToEventScript2;
|
||||
gFieldCallback = FieldCB_ContinueScriptHandleMusic;
|
||||
SetMainCallback2(CB2_ReturnToField);
|
||||
DestroyTask(taskId);
|
||||
}
|
||||
|
||||
@@ -810,7 +810,7 @@ bool8 ScrCmd_warpteleport(struct ScriptContext *ctx)
|
||||
u16 y = VarGet(ScriptReadHalfword(ctx));
|
||||
|
||||
SetWarpDestination(mapGroup, mapNum, warpId, x, y);
|
||||
sub_80AF848();
|
||||
DoTeleportWarp();
|
||||
ResetInitialPlayerAvatarState();
|
||||
return TRUE;
|
||||
}
|
||||
@@ -2286,7 +2286,7 @@ void SetMovingNpcId(u16 npcId)
|
||||
sMovingNpcId = npcId;
|
||||
}
|
||||
|
||||
bool8 ScrCmd_warpE0(struct ScriptContext *ctx)
|
||||
bool8 ScrCmd_warpsootopolislegend(struct ScriptContext *ctx)
|
||||
{
|
||||
u8 mapGroup = ScriptReadByte(ctx);
|
||||
u8 mapNum = ScriptReadByte(ctx);
|
||||
@@ -2295,7 +2295,7 @@ bool8 ScrCmd_warpE0(struct ScriptContext *ctx)
|
||||
u16 y = VarGet(ScriptReadHalfword(ctx));
|
||||
|
||||
SetWarpDestination(mapGroup, mapNum, warpId, x, y);
|
||||
sub_80AF79C();
|
||||
DoSootopolisLegendWarp();
|
||||
ResetInitialPlayerAvatarState();
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@@ -413,7 +413,7 @@ static void Task_EnterSecretBase(u8 taskId)
|
||||
|
||||
SetSecretBaseWarpDestination();
|
||||
WarpIntoMap();
|
||||
gFieldCallback = FieldCallback_ReturnToEventScript2;
|
||||
gFieldCallback = FieldCB_ContinueScriptHandleMusic;
|
||||
SetMainCallback2(CB2_LoadMap);
|
||||
DestroyTask(taskId);
|
||||
break;
|
||||
@@ -456,7 +456,7 @@ static void EnterNewlyCreatedSecretBase_StartFadeIn(void)
|
||||
y += 7;
|
||||
MapGridSetMetatileIdAt(x, y, 0x220 | METATILE_COLLISION_MASK);
|
||||
CurrentMapDrawMetatileAt(x, y);
|
||||
pal_fill_black();
|
||||
FadeInFromBlack();
|
||||
CreateTask(EnterNewlyCreatedSecretBase_WaitFadeIn, 0);
|
||||
}
|
||||
|
||||
@@ -678,7 +678,7 @@ static void Task_WarpOutOfSecretBase(u8 taskId)
|
||||
case 2:
|
||||
SetWarpDestinationToDynamicWarp(0x7e);
|
||||
WarpIntoMap();
|
||||
gFieldCallback = mapldr_default;
|
||||
gFieldCallback = FieldCB_DefaultWarpExit;
|
||||
SetMainCallback2(CB2_LoadMap);
|
||||
ScriptContext2_Disable();
|
||||
DestroyTask(taskId);
|
||||
|
||||
@@ -390,7 +390,7 @@ static void Task_GoToBuyOrSellMenu(u8 taskId)
|
||||
|
||||
static void MapPostLoadHook_ReturnToShopMenu(void)
|
||||
{
|
||||
pal_fill_black();
|
||||
FadeInFromBlack();
|
||||
CreateTask(Task_ReturnToShopMenu, 8);
|
||||
}
|
||||
|
||||
|
||||
@@ -83,7 +83,7 @@ EWRAM_DATA static u8 sBattlePyramidFloorWindowId = 0;
|
||||
EWRAM_DATA static u8 sStartMenuCursorPos = 0;
|
||||
EWRAM_DATA static u8 sNumStartMenuActions = 0;
|
||||
EWRAM_DATA static u8 sCurrentStartMenuActions[9] = {0};
|
||||
EWRAM_DATA static u8 sUnknown_02037619[2] = {0};
|
||||
EWRAM_DATA static u8 sInitStartMenuData[2] = {0};
|
||||
|
||||
EWRAM_DATA static u8 (*sSaveDialogCallback)(void) = NULL;
|
||||
EWRAM_DATA static u8 sSaveDialogTimer = 0;
|
||||
@@ -135,9 +135,7 @@ static void StartMenuTask(u8 taskId);
|
||||
static void SaveGameTask(u8 taskId);
|
||||
static void sub_80A0550(u8 taskId);
|
||||
static void sub_80A08A4(u8 taskId);
|
||||
|
||||
// Some other callback
|
||||
static bool8 sub_809FA00(void);
|
||||
static bool8 FieldCB_ReturnToFieldStartMenu(void);
|
||||
|
||||
static const struct WindowTemplate sSafariBallsWindowTemplate = {0, 1, 1, 9, 4, 0xF, 8};
|
||||
|
||||
@@ -440,33 +438,33 @@ static bool32 PrintStartMenuActions(s8 *pIndex, u32 count)
|
||||
|
||||
static bool32 InitStartMenuStep(void)
|
||||
{
|
||||
s8 value = sUnknown_02037619[0];
|
||||
s8 state = sInitStartMenuData[0];
|
||||
|
||||
switch (value)
|
||||
switch (state)
|
||||
{
|
||||
case 0:
|
||||
sUnknown_02037619[0]++;
|
||||
sInitStartMenuData[0]++;
|
||||
break;
|
||||
case 1:
|
||||
BuildStartMenuActions();
|
||||
sUnknown_02037619[0]++;
|
||||
sInitStartMenuData[0]++;
|
||||
break;
|
||||
case 2:
|
||||
sub_81973A4();
|
||||
DrawStdWindowFrame(sub_81979C4(sNumStartMenuActions), FALSE);
|
||||
sUnknown_02037619[1] = 0;
|
||||
sUnknown_02037619[0]++;
|
||||
sInitStartMenuData[1] = 0;
|
||||
sInitStartMenuData[0]++;
|
||||
break;
|
||||
case 3:
|
||||
if (GetSafariZoneFlag())
|
||||
ShowSafariBallsWindow();
|
||||
if (InBattlePyramid())
|
||||
ShowPyramidFloorWindow();
|
||||
sUnknown_02037619[0]++;
|
||||
sInitStartMenuData[0]++;
|
||||
break;
|
||||
case 4:
|
||||
if (PrintStartMenuActions(&sUnknown_02037619[1], 2))
|
||||
sUnknown_02037619[0]++;
|
||||
if (PrintStartMenuActions(&sInitStartMenuData[1], 2))
|
||||
sInitStartMenuData[0]++;
|
||||
break;
|
||||
case 5:
|
||||
sStartMenuCursorPos = sub_81983AC(GetStartMenuWindowId(), 1, 0, 9, 16, sNumStartMenuActions, sStartMenuCursorPos);
|
||||
@@ -479,8 +477,8 @@ static bool32 InitStartMenuStep(void)
|
||||
|
||||
static void InitStartMenu(void)
|
||||
{
|
||||
sUnknown_02037619[0] = 0;
|
||||
sUnknown_02037619[1] = 0;
|
||||
sInitStartMenuData[0] = 0;
|
||||
sInitStartMenuData[1] = 0;
|
||||
while (!InitStartMenuStep())
|
||||
;
|
||||
}
|
||||
@@ -495,28 +493,28 @@ static void CreateStartMenuTask(TaskFunc followupFunc)
|
||||
{
|
||||
u8 taskId;
|
||||
|
||||
sUnknown_02037619[0] = 0;
|
||||
sUnknown_02037619[1] = 0;
|
||||
sInitStartMenuData[0] = 0;
|
||||
sInitStartMenuData[1] = 0;
|
||||
taskId = CreateTask(StartMenuTask, 0x50);
|
||||
SetTaskFuncWithFollowupFunc(taskId, StartMenuTask, followupFunc);
|
||||
}
|
||||
|
||||
static bool8 sub_809FA00(void)
|
||||
static bool8 FieldCB_ReturnToFieldStartMenu(void)
|
||||
{
|
||||
if (InitStartMenuStep() == FALSE)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
sub_80AF688();
|
||||
ReturnToFieldOpenStartMenu();
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void sub_809FA18(void)
|
||||
void ShowReturnToFieldStartMenu(void)
|
||||
{
|
||||
sUnknown_02037619[0] = 0;
|
||||
sUnknown_02037619[1] = 0;
|
||||
gFieldCallback2 = sub_809FA00;
|
||||
sInitStartMenuData[0] = 0;
|
||||
sInitStartMenuData[1] = 0;
|
||||
gFieldCallback2 = FieldCB_ReturnToFieldStartMenu;
|
||||
}
|
||||
|
||||
void Task_ShowStartMenu(u8 taskId)
|
||||
|
||||
@@ -4750,7 +4750,7 @@ static void Task_InGameTrade(u8 taskId)
|
||||
if (!gPaletteFade.active)
|
||||
{
|
||||
SetMainCallback2(CB2_InGameTrade);
|
||||
gFieldCallback = FieldCallback_ReturnToEventScript2;
|
||||
gFieldCallback = FieldCB_ContinueScriptHandleMusic;
|
||||
DestroyTask(taskId);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1424,7 +1424,7 @@ void sub_8014384(void)
|
||||
break;
|
||||
case 1:
|
||||
if (!FuncIsActiveTask(sub_80140E0))
|
||||
SetMainCallback2(sub_8086074);
|
||||
SetMainCallback2(CB2_ReturnToFieldCableClub);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -2880,7 +2880,7 @@ void sub_80156E0(u8 taskId)
|
||||
if (!gPaletteFade.active)
|
||||
{
|
||||
sUnionRoomTrade.field_0 = 1;
|
||||
gFieldCallback = sub_80AF128;
|
||||
gFieldCallback = FieldCB_ContinueScriptUnionRoom;
|
||||
ChooseMonForTradingBoard(PARTY_MENU_TYPE_UNION_ROOM_REGISTER, CB2_ReturnToField);
|
||||
}
|
||||
break;
|
||||
@@ -2992,7 +2992,7 @@ void sub_80156E0(u8 taskId)
|
||||
memcpy(&gUnknown_02022C38, &data->field_0->arr[taskData[1]].unk.field_0.unk_00, sizeof(gUnknown_02022C38));
|
||||
gUnionRoomRequestedMonType = data->field_0->arr[taskData[1]].unk.field_0.type;
|
||||
gUnionRoomOfferedSpecies = data->field_0->arr[taskData[1]].unk.field_0.species;
|
||||
gFieldCallback = sub_80AF128;
|
||||
gFieldCallback = FieldCB_ContinueScriptUnionRoom;
|
||||
ChooseMonForTradingBoard(PARTY_MENU_TYPE_UNION_ROOM_TRADE, CB2_ReturnToField);
|
||||
sub_80156B0(data);
|
||||
sUnionRoomTrade.field_8 = taskData[1];
|
||||
|
||||
@@ -70,7 +70,7 @@ static void CB2_HandleGivenWaldaPhrase(void)
|
||||
}
|
||||
|
||||
StringCopy(gStringVar1, GetWaldaPhrasePtr());
|
||||
gFieldCallback = FieldCallback_ReturnToEventScript2;
|
||||
gFieldCallback = FieldCB_ContinueScriptHandleMusic;
|
||||
SetMainCallback2(CB2_ReturnToField);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user