Merge pull request #935 from GriffinRichards/doc-warp

Document some warp/field screen effect
This commit is contained in:
Diegoisawesome
2019-12-20 23:44:56 -08:00
committed by GitHub
43 changed files with 428 additions and 413 deletions
+1 -1
View File
@@ -1537,7 +1537,7 @@
.4byte \pointer .4byte \pointer
.endm .endm
.macro warp8 map:req, byte:req, word1:req, word2:req .macro warpsootopolislegend map:req, byte:req, word1:req, word2:req
.byte 0xe0 .byte 0xe0
map \map map \map
.byte \byte .byte \byte
+2 -2
View File
@@ -547,7 +547,7 @@ SootopolisCity_EventScript_RayquazaSceneFromPokeCenter:: @ 81E5C1E
fadenewbgm MUS_RUNECITY fadenewbgm MUS_RUNECITY
delay 120 delay 120
clearflag FLAG_HIDE_MAP_NAME_POPUP clearflag FLAG_HIDE_MAP_NAME_POPUP
warp8 MAP_SOOTOPOLIS_CITY, 255, 43, 32 warpsootopolislegend MAP_SOOTOPOLIS_CITY, 255, 43, 32
waitstate waitstate
end end
@@ -600,7 +600,7 @@ SootopolisCity_EventScript_RayquazaSceneFromDive:: @ 81E5CCE
fadenewbgm MUS_NAMINORI fadenewbgm MUS_NAMINORI
delay 120 delay 120
clearflag FLAG_HIDE_MAP_NAME_POPUP clearflag FLAG_HIDE_MAP_NAME_POPUP
warp8 MAP_SOOTOPOLIS_CITY, 255, 29, 53 warpsootopolislegend MAP_SOOTOPOLIS_CITY, 255, 29, 53
waitstate waitstate
end end
+1 -1
View File
@@ -224,7 +224,7 @@ gScriptCmdTable:: @ 81DB67C
.4byte ScrCmd_buffertrainerclassname .4byte ScrCmd_buffertrainerclassname
.4byte ScrCmd_buffertrainername .4byte ScrCmd_buffertrainername
.4byte ScrCmd_pokenavcall .4byte ScrCmd_pokenavcall
.4byte ScrCmd_warpE0 .4byte ScrCmd_warpsootopolislegend
.4byte ScrCmd_buffercontesttype .4byte ScrCmd_buffercontesttype
.4byte ScrCmd_bufferitemnameplural .4byte ScrCmd_bufferitemnameplural
+5 -5
View File
@@ -391,7 +391,7 @@ CableClub_EventScript_EnterColosseum:: @ 8276FBD
goto_if_eq CableClub_EventScript_WarpTo4PColosseum goto_if_eq CableClub_EventScript_WarpTo4PColosseum
special SetCableClubWarp special SetCableClubWarp
warp MAP_BATTLE_COLOSSEUM_2P, 255, 6, 8 warp MAP_BATTLE_COLOSSEUM_2P, 255, 6, 8
special sub_80AF948 special DoCableClubWarp
waitstate waitstate
end end
@@ -404,7 +404,7 @@ CableClub_EventScript_PlayerApproachLinkRoomRight:: @ 827702B
CableClub_EventScript_WarpTo4PColosseum:: @ 8277036 CableClub_EventScript_WarpTo4PColosseum:: @ 8277036
special SetCableClubWarp special SetCableClubWarp
warp MAP_BATTLE_COLOSSEUM_4P, 255, 5, 8 warp MAP_BATTLE_COLOSSEUM_4P, 255, 5, 8
special sub_80AF948 special DoCableClubWarp
waitstate waitstate
end end
@@ -494,7 +494,7 @@ CableClub_EventScript_EnterTradeCenter:: @ 827713A
release release
special SetCableClubWarp special SetCableClubWarp
setwarp MAP_TRADE_CENTER, 255, 5, 8 setwarp MAP_TRADE_CENTER, 255, 5, 8
special sub_80AF948 special DoCableClubWarp
waitstate waitstate
end end
@@ -569,7 +569,7 @@ CableClub_EventScript_EnterRecordCorner:: @ 827724C
release release
special SetCableClubWarp special SetCableClubWarp
setwarp MAP_RECORD_CORNER, 255, 8, 9 setwarp MAP_RECORD_CORNER, 255, 8, 9
special sub_80AF948 special DoCableClubWarp
waitstate waitstate
end end
@@ -618,7 +618,7 @@ MossdeepCity_GameCorner_1F_EventScript_AbortMinigame:: @ 82772F9
@ Unused @ Unused
CableClub_EventScript_CableClubWarp:: @ 8277306 CableClub_EventScript_CableClubWarp:: @ 8277306
special SetCableClubWarp special SetCableClubWarp
special sub_80AF948 special DoCableClubWarp
waitstate waitstate
end end
+1 -1
View File
@@ -10,7 +10,7 @@
gSpecials:: @ 81DBA64 gSpecials:: @ 81DBA64
def_special HealPlayerParty def_special HealPlayerParty
def_special SetCableClubWarp def_special SetCableClubWarp
def_special sub_80AF948 def_special DoCableClubWarp
def_special ReturnFromLinkRoom def_special ReturnFromLinkRoom
def_special CleanupLinkRoomState def_special CleanupLinkRoomState
def_special ExitLinkRoom def_special ExitLinkRoom

Before

Width:  |  Height:  |  Size: 406 B

After

Width:  |  Height:  |  Size: 406 B

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