From 4ec14b3d431f61309e33ca58c7702678bd25ae7a Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sat, 8 Dec 2018 22:05:11 +0100 Subject: Finish field screen --- include/field_fadetransition.h | 12 - include/field_screen.h | 18 - include/field_screen_effect.h | 38 +- ld_script.txt | 4 +- src/decoration.c | 2 +- src/egg_hatch.c | 2 +- src/field_control_avatar.c | 3 +- src/field_effect.c | 2 +- src/field_fadetransition.c | 1258 --------------------------------------- src/field_screen_effect.c | 1261 ++++++++++++++++++++++++++++++++++++++++ src/field_specials.c | 2 +- src/item_use.c | 2 +- src/learn_move.c | 34 +- src/overworld.c | 7 +- src/player_pc.c | 3 +- src/pokemon_storage_system.c | 2 +- src/record_mixing.c | 2 +- src/rom_8011DC0.c | 2 +- src/scrcmd.c | 1 - src/secret_base.c | 4 +- src/shop.c | 2 +- 21 files changed, 1332 insertions(+), 1329 deletions(-) delete mode 100644 include/field_fadetransition.h delete mode 100644 include/field_screen.h delete mode 100644 src/field_fadetransition.c create mode 100644 src/field_screen_effect.c diff --git a/include/field_fadetransition.h b/include/field_fadetransition.h deleted file mode 100644 index 7c2d16a24..000000000 --- a/include/field_fadetransition.h +++ /dev/null @@ -1,12 +0,0 @@ -#ifndef GUARD_FIELD_FADETRANSITION_H -#define GUARD_FIELD_FADETRANSITION_H - -void sub_80AF734(void); -void sp13E_warp_to_last_warp(void); -void sub_80AF7D0(void); -void sp13F_fall_to_last_warp(void); - -void sub_80AF848(void); -void sub_80AF87C(void); - -#endif // GUARD_FIELD_FADETRANSITION_H diff --git a/include/field_screen.h b/include/field_screen.h deleted file mode 100644 index f8598bea6..000000000 --- a/include/field_screen.h +++ /dev/null @@ -1,18 +0,0 @@ -#ifndef GUARD_FIELD_SCREEN_H -#define GUARD_FIELD_SCREEN_H - -// Exported type declarations - -// Exported RAM declarations - -// Exported ROM declarations -void pal_fill_black(void); -void sub_80AF168(void); -void sub_80AF2B4(u8 taskId); -void sub_80AF128(void); -void sub_80AF80C(u8); -void sub_80AF828(void); -void sub_80AF838(void); -void sub_80B0268(void); - -#endif //GUARD_FIELD_SCREEN_H diff --git a/include/field_screen_effect.h b/include/field_screen_effect.h index ef81c2f9e..f3ac2e866 100644 --- a/include/field_screen_effect.h +++ b/include/field_screen_effect.h @@ -1,8 +1,44 @@ #ifndef GUARD_FIELD_SCREEN_EFFECT_H #define GUARD_FIELD_SCREEN_EFFECT_H +void pal_fill_for_maplights(void); +void pal_fill_black(void); +void WarpFadeScreen(void); +void sub_80AF128(void); +void sub_80AF168(void); +void sub_80AF188(void); +void sub_80AF214(void); +void sub_80AF2B4(u8 taskId); +void sub_80AF314(void); +void mapldr_default(void); +void sub_80AF3B0(void); +void sub_80AF3C8(void); +void sub_80AF3E8(void); +void sub_80AF40C(void); +void sub_80AF688(void); +bool8 sub_80AF6A4(void); +void sub_80AF6D4(void); +void sub_80AF6F0(void); +void sub_80AF734(void); +void sp13E_warp_to_last_warp(void); void sub_80AF79C(void); -void sub_80B009C(u8); +void sub_80AF7D0(void); +void sp13F_fall_to_last_warp(void); +void sub_80AF80C(u8 metatileBehavior); +void sub_80AF828(void); +void sub_80AF838(void); +void sub_80AF848(void); +void sub_80AF87C(void); +void sub_80AF8B8(void); +void sub_80AF948(void); +void sub_80AF9F8(void); +void sub_80AFC60(void); +void sub_80B009C(u8 flashLevel); +void door_upload_tiles(void); void sub_80B0244(void); +void sub_80B0268(void); +void sub_80B0534(void); +void sub_80B058C(void); +void sub_80B05B4(void); #endif // GUARD_FIELD_SCREEN_EFFECT_H diff --git a/ld_script.txt b/ld_script.txt index b97a7fb04..ef41a20fc 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -115,7 +115,7 @@ SECTIONS { src/title_screen.o(.text); src/field_weather.o(.text); src/field_weather_effect.o(.text); - src/field_fadetransition.o(.text); + src/field_screen_effect.o(.text); asm/field_screen.o(.text); src/battle_setup.o(.text); src/cable_club.o(.text); @@ -450,7 +450,7 @@ SECTIONS { data/field_weather.o(.rodata); src/field_weather.o(.rodata); src/field_weather_effect.o(.rodata); - src/field_fadetransition.o(.rodata); + src/field_screen_effect.o(.rodata); src/battle_setup.o(.rodata); src/cable_club.o(.rodata); src/trainer_see.o(.rodata); diff --git a/src/decoration.c b/src/decoration.c index eb85b4f5c..4e3e0a2d3 100644 --- a/src/decoration.c +++ b/src/decoration.c @@ -16,7 +16,7 @@ #include "field_weather.h" #include "field_player_avatar.h" #include "field_camera.h" -#include "field_screen.h" +#include "field_screen_effect.h" #include "event_object_movement.h" #include "list_menu.h" #include "menu_helpers.h" diff --git a/src/egg_hatch.c b/src/egg_hatch.c index 28386528a..a8238253e 100644 --- a/src/egg_hatch.c +++ b/src/egg_hatch.c @@ -30,7 +30,7 @@ #include "field_weather.h" #include "international_string_util.h" #include "naming_screen.h" -#include "field_screen.h" +#include "field_screen_effect.h" #include "battle.h" // to get rid of later struct EggHatchData diff --git a/src/field_control_avatar.c b/src/field_control_avatar.c index c52f5190f..829d72c34 100644 --- a/src/field_control_avatar.c +++ b/src/field_control_avatar.c @@ -8,10 +8,9 @@ #include "event_scripts.h" #include "fieldmap.h" #include "field_control_avatar.h" -#include "field_fadetransition.h" #include "field_player_avatar.h" #include "field_poison.h" -#include "field_screen.h" +#include "field_screen_effect.h" #include "field_specials.h" #include "fldeff_80F9BCC.h" #include "item_menu.h" diff --git a/src/field_effect.c b/src/field_effect.c index 6bfa4facf..58f4f03df 100644 --- a/src/field_effect.c +++ b/src/field_effect.c @@ -6,7 +6,7 @@ #include "field_effect.h" #include "field_effect_helpers.h" #include "field_player_avatar.h" -#include "field_screen.h" +#include "field_screen_effect.h" #include "field_weather.h" #include "fieldmap.h" #include "fldeff_groundshake.h" diff --git a/src/field_fadetransition.c b/src/field_fadetransition.c deleted file mode 100644 index 2d8a6c303..000000000 --- a/src/field_fadetransition.c +++ /dev/null @@ -1,1258 +0,0 @@ -#include "global.h" -#include "cable_club.h" -#include "event_data.h" -#include "fieldmap.h" -#include "field_camera.h" -#include "field_door.h" -#include "field_effect.h" -#include "field_fadetransition.h" -#include "event_object_movement.h" -#include "field_player_avatar.h" -#include "field_special_scene.h" -#include "field_weather.h" -// #include "fldeff_flash.h" -#include "gpu_regs.h" -#include "link.h" -#include "link_rfu.h" -#include "load_save.h" -#include "main.h" -#include "menu.h" -#include "event_obj_lock.h" -#include "metatile_behavior.h" -#include "palette.h" -#include "overworld.h" -#include "scanline_effect.h" -#include "script.h" -#include "sound.h" -#include "start_menu.h" -#include "task.h" -#include "text.h" -#include "constants/event_object_movement_constants.h" -#include "constants/songs.h" -#include "constants/rgb.h" - -extern bool32 sub_81D6534(void); -extern bool8 walkrun_is_standing_still(void); -extern void ScriptUnfreezeEventObjects(void); -extern void sub_81BE72C(void); -extern void sub_80FB768(void); -extern void sub_808D194(void); -extern void sub_808D1C8(void); -extern bool32 sub_808D1B4(void); -extern bool32 sub_808D1E8(void); - -extern const u16 gUnknown_82EC7CC[]; - -void sub_8080B9C(u8); -void task_map_chg_seq_0807E20C(u8); -void task_map_chg_seq_0807E2CC(u8); -void task0A_fade_n_map_maybe(u8); -void sub_808115C(u8); -void palette_bg_faded_fill_white(void); -u8 GetMapPairFadeToType(u8, u8); -u8 GetMapPairFadeFromType(u8, u8); -void sub_808C0A8(u8); -void sub_80AF438(u8); -bool32 sub_80AF71C(void); -void task0A_mpl_807E31C(u8 taskId); -void sub_80AFA0C(u8 taskId); -void sub_80AFA88(u8 taskId); -void sub_80B6B68(void); -void sub_80B6E4C(u8, u8); -void sub_80B75D8(u8); -void sub_80B7A74(u8); -/*static*/ void task50_0807F0C8(u8); - -const u16 sFlashLevelPixelRadii[] = { 200, 72, 64, 56, 48, 40, 32, 24, 0 }; -const s32 gMaxFlashLevel = 8; - -const struct ScanlineEffectParams sFlashEffectParams = -{ - (void *)REG_ADDR_WIN0H, - ((DMA_ENABLE | DMA_START_HBLANK | DMA_REPEAT | DMA_DEST_RELOAD) << 16) | 1, - 1 -}; - -void palette_bg_faded_fill_white(void) -{ - CpuFastFill16(RGB_WHITE, gPlttBufferFaded, PLTT_SIZE); -} - -void palette_bg_faded_fill_black(void) -{ - CpuFastFill16(RGB_BLACK, gPlttBufferFaded, PLTT_SIZE); -} - -void pal_fill_for_maplights(void) -{ - u8 previousMapType = GetLastUsedWarpMapType(); - switch (GetMapPairFadeFromType(previousMapType, Overworld_GetMapTypeOfSaveblockLocation())) - { - case 0: - palette_bg_faded_fill_black(); - FadeScreen(FADE_FROM_BLACK, 0); - break; - case 1: - palette_bg_faded_fill_white(); - FadeScreen(FADE_FROM_WHITE, 0); - } -} - -void sub_80AF08C(void) -{ - palette_bg_faded_fill_white(); - FadeScreen(FADE_FROM_WHITE, 8); -} - -void pal_fill_black(void) -{ - palette_bg_faded_fill_black(); - FadeScreen(FADE_FROM_BLACK, 0); -} - -void WarpFadeScreen(void) -{ - u8 currentMapType = Overworld_GetMapTypeOfSaveblockLocation(); - switch (GetMapPairFadeToType(currentMapType, GetDestinationWarpMapHeader()->mapType)) - { - case 0: - FadeScreen(FADE_TO_BLACK, 0); - break; - case 1: - FadeScreen(FADE_TO_WHITE, 0); - } -} - -void sub_80AF0F4(u8 arg) -{ - sub_808C0A8(!arg); -} - -void task0A_nop_for_a_while(u8 taskId) -{ - if (sub_80AF71C() == TRUE) - DestroyTask(taskId); -} - -void sub_80AF128(void) -{ - ScriptContext2_Enable(); - Overworld_PlaySpecialMapMusic(); - pal_fill_black(); - CreateTask(task0A_nop_for_a_while, 10); -} - -void task0A_asap_script_env_2_enable_and_set_ctx_running(u8 taskID) -{ - if (sub_80AF71C() == TRUE) - { - DestroyTask(taskID); - EnableBothScriptContexts(); - } -} - -void sub_80AF168(void) -{ - ScriptContext2_Enable(); - Overworld_PlaySpecialMapMusic(); - pal_fill_black(); - CreateTask(task0A_asap_script_env_2_enable_and_set_ctx_running, 10); -} - -void sub_80AF188(void) -{ - ScriptContext2_Enable(); - pal_fill_black(); - CreateTask(task0A_asap_script_env_2_enable_and_set_ctx_running, 10); -} - -void task_mpl_807DD60(u8 taskId) -{ - struct Task *task = &gTasks[taskId]; - - switch (task->data[0]) - { - case 0: - task->data[1] = sub_80B3050(); - task->data[0]++; - break; - case 1: - if (gTasks[task->data[1]].isActive != TRUE) - { - pal_fill_for_maplights(); - task->data[0]++; - } - break; - case 2: - if (sub_80AF71C() == TRUE) - { - ScriptContext2_Disable(); - DestroyTask(taskId); - } - break; - } -} - -void sub_80AF214(void) -{ - ScriptContext2_Enable(); - Overworld_PlaySpecialMapMusic(); - palette_bg_faded_fill_black(); - CreateTask(task_mpl_807DD60, 10); -} - -void sub_80AF234(u8 taskId) -{ - struct Task *task = &gTasks[taskId]; - - switch (task->data[0]) - { - case 0: - sub_800ADF8(); - task->data[0]++; - break; - case 1: - if (!sub_800A520()) - { - if (++task->data[1] > 1800) - sub_8011170(0x6000); - } - else - { - pal_fill_for_maplights(); - task->data[0]++; - } - break; - case 2: - if (sub_80AF71C() == TRUE) - { - sub_8009F18(); - ScriptContext2_Disable(); - DestroyTask(taskId); - } - break; - } -} - -void sub_80AF2B4(u8 taskId) -{ - struct Task *task = &gTasks[taskId]; - - switch (task->data[0]) - { - case 0: - sub_800ADF8(); - task->data[0]++; - break; - case 1: - if (sub_800A520()) - { - task->data[0]++; - } - break; - case 2: - sub_8009F18(); - sub_8086C2C(); - ScriptContext2_Disable(); - DestroyTask(taskId); - break; - } -} - -void sub_80AF314(void) -{ - ScriptContext2_Enable(); - Overworld_PlaySpecialMapMusic(); - palette_bg_faded_fill_black(); - CreateTask(sub_80AF234, 10); -} - -void sub_80AF334(void) -{ - s16 x, y; - u8 behavior; - TaskFunc func; - - PlayerGetDestCoords(&x, &y); - behavior = MapGridGetMetatileBehaviorAt(x, y); - if (MetatileBehavior_IsDoor(behavior) == TRUE) - func = sub_80AF438; - else if (MetatileBehavior_IsNonAnimDoor(behavior) == TRUE) - func = task_map_chg_seq_0807E20C; - else - func = task_map_chg_seq_0807E2CC; - CreateTask(func, 10); -} - -void mapldr_default(void) -{ - Overworld_PlaySpecialMapMusic(); - pal_fill_for_maplights(); - sub_80AF334(); - ScriptContext2_Enable(); -} - -void sub_80AF3B0(void) -{ - Overworld_PlaySpecialMapMusic(); - sub_80AF08C(); - sub_80AF334(); - ScriptContext2_Enable(); -} - -void sub_80AF3C8(void) -{ - if (!sub_81D6534()) - Overworld_PlaySpecialMapMusic(); - pal_fill_black(); - sub_80AF334(); - ScriptContext2_Enable(); -} - -void sub_80AF3E8(void) -{ - Overworld_PlaySpecialMapMusic(); - pal_fill_for_maplights(); - PlaySE(SE_TK_WARPOUT); - CreateTask(task0A_mpl_807E31C, 10); - ScriptContext2_Enable(); -} - -void sub_80AF40C(void) -{ - Overworld_PlaySpecialMapMusic(); - pal_fill_for_maplights(); - PlaySE(SE_TK_WARPOUT); - CreateTask(task_map_chg_seq_0807E2CC, 10); - ScriptContext2_Enable(); - sub_8085540(0xE); -} - -void sub_80AF438(u8 taskId) -{ - struct Task *task = &gTasks[taskId]; - s16 *x = &task->data[2]; - s16 *y = &task->data[3]; - - switch (task->data[0]) - { - case 0: - sub_80AF0F4(0); - FreezeEventObjects(); - PlayerGetDestCoords(x, y); - FieldSetDoorOpened(*x, *y); - task->data[0] = 1; - break; - case 1: - if (sub_80AF71C()) - { - u8 eventObjId; - sub_80AF0F4(1); - eventObjId = GetEventObjectIdByLocalIdAndMap(0xFF, 0, 0); - EventObjectSetHeldMovement(&gEventObjects[eventObjId], MOVEMENT_ACTION_WALK_NORMAL_DOWN); - task->data[0] = 2; - } - break; - case 2: - if (walkrun_is_standing_still()) - { - u8 eventObjId; - task->data[1] = FieldAnimateDoorClose(*x, *y); - eventObjId = GetEventObjectIdByLocalIdAndMap(0xFF, 0, 0); - EventObjectClearHeldMovementIfFinished(&gEventObjects[eventObjId]); - task->data[0] = 3; - } - break; - case 3: - if (task->data[1] < 0 || gTasks[task->data[1]].isActive != TRUE) - { - UnfreezeEventObjects(); - task->data[0] = 4; - } - break; - case 4: - ScriptContext2_Disable(); - DestroyTask(taskId); - break; - } -} - -void task_map_chg_seq_0807E20C(u8 taskId) -{ - struct Task *task = &gTasks[taskId]; - s16 *x = &task->data[2]; - s16 *y = &task->data[3]; - - switch (task->data[0]) - { - case 0: - sub_80AF0F4(0); - FreezeEventObjects(); - PlayerGetDestCoords(x, y); - task->data[0] = 1; - break; - case 1: - if (sub_80AF71C()) - { - u8 eventObjId; - sub_80AF0F4(1); - eventObjId = GetEventObjectIdByLocalIdAndMap(0xFF, 0, 0); - EventObjectSetHeldMovement(&gEventObjects[eventObjId], GetWalkNormalMovementAction(GetPlayerFacingDirection())); - task->data[0] = 2; - } - break; - case 2: - if (walkrun_is_standing_still()) - { - UnfreezeEventObjects(); - task->data[0] = 3; - } - break; - case 3: - ScriptContext2_Disable(); - DestroyTask(taskId); - break; - } -} - -void task_map_chg_seq_0807E2CC(u8 taskId) -{ - switch (gTasks[taskId].data[0]) - { - case 0: - FreezeEventObjects(); - ScriptContext2_Enable(); - gTasks[taskId].data[0]++; - break; - case 1: - if (sub_80AF71C()) - { - UnfreezeEventObjects(); - ScriptContext2_Disable(); - DestroyTask(taskId); - } - break; - } -} - -void sub_80AF660(u8 taskId) -{ - if (sub_80AF71C() == TRUE) - { - DestroyTask(taskId); - CreateTask(sub_809FA34, 80); - } -} - -void sub_80AF688(void) -{ - pal_fill_black(); - CreateTask(sub_80AF660, 0x50); - ScriptContext2_Enable(); -} - -bool32 sub_80AF6A4(void) -{ - sub_809FA18(); - return FALSE; -} - -void task_mpl_807E3C8(u8 taskId) -{ - if (sub_80AF71C() == 1) - { - ScriptContext2_Disable(); - DestroyTask(taskId); - ScriptUnfreezeEventObjects(); - } -} - -void sub_80AF6D4(void) -{ - ScriptContext2_Enable(); - pal_fill_black(); - CreateTask(task_mpl_807E3C8, 10); -} - -void sub_80AF6F0(void) -{ - ScriptContext2_Enable(); - Overworld_PlaySpecialMapMusic(); - pal_fill_black(); - CreateTask(task_mpl_807E3C8, 10); -} - -bool32 PaletteFadeActive(void) -{ - return gPaletteFade.active; -} - -bool32 sub_80AF71C(void) -{ - if (IsWeatherNotFadingIn() == TRUE) - return TRUE; - else - return FALSE; -} - -void sub_80AF734(void) -{ - ScriptContext2_Enable(); - TryFadeOutOldMapMusic(); - WarpFadeScreen(); - PlayRainSoundEffect(); - PlaySE(SE_KAIDAN); - gFieldCallback = mapldr_default; - CreateTask(sub_80AFA0C, 10); -} - -void sp13E_warp_to_last_warp(void) -{ - ScriptContext2_Enable(); - TryFadeOutOldMapMusic(); - WarpFadeScreen(); - PlayRainSoundEffect(); - gFieldCallback = mapldr_default; - CreateTask(sub_80AFA0C, 10); -} - -void sub_80AF79C(void) -{ - ScriptContext2_Enable(); - TryFadeOutOldMapMusic(); - FadeScreen(FADE_TO_WHITE, 8); - PlayRainSoundEffect(); - gFieldCallback = sub_80AF3B0; - CreateTask(sub_80AFA0C, 10); -} - -void sub_80AF7D0(void) -{ - ScriptContext2_Enable(); - gFieldCallback = mapldr_default; - CreateTask(sub_80AFA88, 10); -} - -void sp13F_fall_to_last_warp(void) -{ - sp13E_warp_to_last_warp(); - gFieldCallback = sub_80B6B68; -} - -void sub_80AF80C(u8 metatileBehavior) -{ - ScriptContext2_Enable(); - sub_80B6E4C(metatileBehavior, 10); -} - -void sub_80AF828(void) -{ - ScriptContext2_Enable(); - sub_80B75D8(10); -} - -void sub_80AF838(void) -{ - ScriptContext2_Enable(); - sub_80B7A74(10); -} - -void sub_80AF848(void) -{ - ScriptContext2_Enable(); - TryFadeOutOldMapMusic(); - WarpFadeScreen(); - PlaySE(SE_TK_WARPIN); - CreateTask(sub_80AFA0C, 10); - gFieldCallback = sub_80AF3E8; -} - -void sub_80AF87C(void) -{ - sub_8085540(1); - ScriptContext2_Enable(); - SaveEventObjects(); - TryFadeOutOldMapMusic(); - WarpFadeScreen(); - PlaySE(SE_TK_WARPIN); - CreateTask(sub_80AFA0C, 10); - gFieldCallback = sub_80AF40C; -} - -void sub_80AF8B8(void) -{ - ScriptContext2_Enable(); - WarpFadeScreen(); - CreateTask(sub_80AFA0C, 10); - gFieldCallback = sub_80FB768; -} - -void sub_80AF8E0(u8 taskId) -{ - struct Task *task = &gTasks[taskId]; - - switch (task->data[0]) - { - case 0: - ScriptContext2_Enable(); - task->data[0]++; - break; - case 1: - if (!PaletteFadeActive() && BGMusicStopped()) - task->data[0]++; - break; - case 2: - WarpIntoMap(); - SetMainCallback2(sub_8086074); - DestroyTask(taskId); - break; - } -} - -void sub_80AF948(void) -{ - ScriptContext2_Enable(); - TryFadeOutOldMapMusic(); - WarpFadeScreen(); - PlaySE(SE_KAIDAN); - CreateTask(sub_80AF8E0, 10); -} - -void sub_80AF96C(u8 taskId) -{ - s16 *data = gTasks[taskId].data; - - switch (data[0]) - { - case 0: - ClearLinkCallback_2(); - FadeScreen(FADE_TO_BLACK, 0); - TryFadeOutOldMapMusic(); - PlaySE(SE_KAIDAN); - data[0]++; - break; - case 1: - if (!PaletteFadeActive() && BGMusicStopped()) - { - sub_800AC34(); - data[0]++; - } - break; - case 2: - if (!gReceivedRemoteLinkPlayers) - { - WarpIntoMap(); - SetMainCallback2(CB2_LoadMap); - DestroyTask(taskId); - } - break; - } -} - -void sub_80AF9F8(void) -{ - CreateTask(sub_80AF96C, 10); -} - -void sub_80AFA0C(u8 taskId) -{ - struct Task *task = &gTasks[taskId]; - - switch (task->data[0]) - { - case 0: - FreezeEventObjects(); - ScriptContext2_Enable(); - task->data[0]++; - break; - case 1: - if (!PaletteFadeActive()) - { - if (task->data[1] == 0) - { - sub_81BE72C(); - task->data[1] = 1; - } - if (BGMusicStopped()) - task->data[0]++; - } - break; - case 2: - WarpIntoMap(); - SetMainCallback2(CB2_LoadMap); - DestroyTask(taskId); - break; - } -} - -void sub_80AFA88(u8 taskId) -{ - struct Task *task = &gTasks[taskId]; - s16 *x = &task->data[2]; - s16 *y = &task->data[3]; - - switch (task->data[0]) - { - case 0: - FreezeEventObjects(); - PlayerGetDestCoords(x, y); - PlaySE(GetDoorSoundEffect(*x, *y - 1)); - task->data[1] = FieldAnimateDoorOpen(*x, *y - 1); - task->data[0] = 1; - break; - case 1: - if (task->data[1] < 0 || gTasks[task->data[1]].isActive != TRUE) - { - u8 eventObjId; - eventObjId = GetEventObjectIdByLocalIdAndMap(0xFF, 0, 0); - EventObjectClearHeldMovementIfActive(&gEventObjects[eventObjId]); - eventObjId = GetEventObjectIdByLocalIdAndMap(0xFF, 0, 0); - EventObjectSetHeldMovement(&gEventObjects[eventObjId], MOVEMENT_ACTION_WALK_NORMAL_UP); - task->data[0] = 2; - } - break; - case 2: - if (walkrun_is_standing_still()) - { - u8 eventObjId; - task->data[1] = FieldAnimateDoorClose(*x, *y - 1); - eventObjId = GetEventObjectIdByLocalIdAndMap(0xFF, 0, 0); - EventObjectClearHeldMovementIfFinished(&gEventObjects[eventObjId]); - sub_80AF0F4(0); - task->data[0] = 3; - } - break; - case 3: - if (task->data[1] < 0 || gTasks[task->data[1]].isActive != TRUE) - { - task->data[0] = 4; - } - break; - case 4: - TryFadeOutOldMapMusic(); - WarpFadeScreen(); - PlayRainSoundEffect(); - task->data[0] = 0; - task->func = sub_80AFA0C; - break; - } -} - -void task0A_fade_n_map_maybe(u8 taskId) -{ - struct Task *task = &gTasks[taskId]; - - switch (task->data[0]) - { - case 0: - FreezeEventObjects(); - ScriptContext2_Enable(); - task->data[0]++; - break; - case 1: - if (!PaletteFadeActive() && BGMusicStopped()) - { - task->data[0]++; - } - break; - case 2: - WarpIntoMap(); - SetMainCallback2(sub_8086024); - DestroyTask(taskId); - break; - } -} - -void sub_80AFC60(void) -{ - ScriptContext2_Enable(); - TryFadeOutOldMapMusic(); - WarpFadeScreen(); - PlayRainSoundEffect(); - PlaySE(SE_KAIDAN); - gFieldCallback = sub_80AF3C8; - CreateTask(task0A_fade_n_map_maybe, 10); -} - -/*static*/ void SetFlashScanlineEffectWindowBoundary(u16 *dest, u32 y, s32 left, s32 right) -{ - if (y <= 160) - { - if (left < 0) - left = 0; - if (left > 255) - left = 255; - if (right < 0) - right = 0; - if (right > 255) - right = 255; - dest[y] = (left << 8) | right; - } -} - -/*static*/ void SetFlashScanlineEffectWindowBoundaries(u16 *dest, s32 centerX, s32 centerY, s32 radius) -{ - s32 r = radius; - s32 v2 = radius; - s32 v3 = 0; - while (r >= v3) - { - SetFlashScanlineEffectWindowBoundary(dest, centerY - v3, centerX - r, centerX + r); - SetFlashScanlineEffectWindowBoundary(dest, centerY + v3, centerX - r, centerX + r); - SetFlashScanlineEffectWindowBoundary(dest, centerY - r, centerX - v3, centerX + v3); - SetFlashScanlineEffectWindowBoundary(dest, centerY + r, centerX - v3, centerX + v3); - v2 -= (v3 * 2) - 1; - v3++; - if (v2 < 0) - { - v2 += 2 * (r - 1); - r--; - } - } -} - -/*static*/ void SetFlash2ScanlineEffectWindowBoundary(u16 *dest, u32 y, s32 left, s32 right) -{ - if (y <= 160) - { - if (left < 0) - left = 0; - if (left > 240) - left = 240; - if (right < 0) - right = 0; - if (right > 240) - right = 240; - dest[y] = (left << 8) | right; - } -} - -/*static*/ void SetFlash2ScanlineEffectWindowBoundaries(u16 *dest, s32 centerX, s32 centerY, s32 radius) -{ - s32 r = radius; - s32 v2 = radius; - s32 v3 = 0; - while (r >= v3) - { - SetFlash2ScanlineEffectWindowBoundary(dest, centerY - v3, centerX - r, centerX + r); - SetFlash2ScanlineEffectWindowBoundary(dest, centerY + v3, centerX - r, centerX + r); - SetFlash2ScanlineEffectWindowBoundary(dest, centerY - r, centerX - v3, centerX + v3); - SetFlash2ScanlineEffectWindowBoundary(dest, centerY + r, centerX - v3, centerX + v3); - v2 -= (v3 * 2) - 1; - v3++; - if (v2 < 0) - { - v2 += 2 * (r - 1); - r--; - } - } -} - -#define tFlashCenterX data[1] -#define tFlashCenterY data[2] -#define tCurFlashRadius data[3] -#define tDestFlashRadius data[4] -#define tFlashRadiusDelta data[5] -#define tClearScanlineEffect data[6] - -/*static*/ void UpdateFlashLevelEffect(u8 taskId) -{ - s16 *data = gTasks[taskId].data; - - switch (data[0]) - { - case 0: - SetFlashScanlineEffectWindowBoundaries(gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer], tFlashCenterX, tFlashCenterY, tCurFlashRadius); - data[0] = 1; - break; - case 1: - SetFlashScanlineEffectWindowBoundaries(gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer], tFlashCenterX, tFlashCenterY, tCurFlashRadius); - data[0] = 0; - tCurFlashRadius += tFlashRadiusDelta; - if (tCurFlashRadius > tDestFlashRadius) - { - if (tClearScanlineEffect == 1) - { - ScanlineEffect_Stop(); - data[0] = 2; - } - else - { - DestroyTask(taskId); - } - } - break; - case 2: - ScanlineEffect_Clear(); - DestroyTask(taskId); - break; - } -} - -/*static*/ void UpdateFlash2LevelEffect(u8 taskId) -{ - s16 *data = gTasks[taskId].data; - - switch (data[0]) - { - case 0: - SetFlash2ScanlineEffectWindowBoundaries(gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer], tFlashCenterX, tFlashCenterY, tCurFlashRadius); - data[0] = 1; - break; - case 1: - SetFlash2ScanlineEffectWindowBoundaries(gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer], tFlashCenterX, tFlashCenterY, tCurFlashRadius); - data[0] = 0; - tCurFlashRadius += tFlashRadiusDelta; - if (tCurFlashRadius > tDestFlashRadius) - { - if (tClearScanlineEffect == 1) - { - ScanlineEffect_Stop(); - data[0] = 2; - } - else - { - DestroyTask(taskId); - } - } - break; - case 2: - ScanlineEffect_Clear(); - DestroyTask(taskId); - break; - } -} - -/*static*/ void sub_80AFF90(u8 taskId) -{ - if (!FuncIsActiveTask(UpdateFlashLevelEffect)) - { - EnableBothScriptContexts(); - DestroyTask(taskId); - } -} - -/*static*/ void sub_80AFFB8(void) -{ - if (!FuncIsActiveTask(sub_80AFF90)) - CreateTask(sub_80AFF90, 80); -} - -/*static*/ u8 sub_80AFFDC(s32 centerX, s32 centerY, s32 initialFlashRadius, s32 destFlashRadius, s32 clearScanlineEffect, u8 delta) -{ - u8 taskId = CreateTask(UpdateFlashLevelEffect, 80); - s16 *data = gTasks[taskId].data; - - tCurFlashRadius = initialFlashRadius; - tDestFlashRadius = destFlashRadius; - tFlashCenterX = centerX; - tFlashCenterY = centerY; - tClearScanlineEffect = clearScanlineEffect; - - if (initialFlashRadius < destFlashRadius) - tFlashRadiusDelta = delta; - else - tFlashRadiusDelta = -delta; - - return taskId; -} - -/*static*/ u8 sub_80B003C(s32 centerX, s32 centerY, s32 initialFlashRadius, s32 destFlashRadius, s32 clearScanlineEffect, u8 delta) -{ - u8 taskId = CreateTask(UpdateFlash2LevelEffect, 80); - s16 *data = gTasks[taskId].data; - - tCurFlashRadius = initialFlashRadius; - tDestFlashRadius = destFlashRadius; - tFlashCenterX = centerX; - tFlashCenterY = centerY; - tClearScanlineEffect = clearScanlineEffect; - - if (initialFlashRadius < destFlashRadius) - tFlashRadiusDelta = delta; - else - tFlashRadiusDelta = -delta; - - return taskId; -} - -#undef tCurFlashRadius -#undef tDestFlashRadius -#undef tFlashRadiusDelta -#undef tClearScanlineEffect - -void sub_80B009C(u8 flashLevel) -{ - u8 curFlashLevel = Overworld_GetFlashLevel(); - u8 value = 0; - if (!flashLevel) - value = 1; - sub_80AFFDC(120, 80, sFlashLevelPixelRadii[curFlashLevel], sFlashLevelPixelRadii[flashLevel], value, 1); - sub_80AFFB8(); - ScriptContext2_Enable(); -} - -void WriteFlashScanlineEffectBuffer(u8 flashLevel) -{ - if (flashLevel) - { - SetFlashScanlineEffectWindowBoundaries(&gScanlineEffectRegBuffers[0][0], 120, 80, sFlashLevelPixelRadii[flashLevel]); - CpuFastSet(&gScanlineEffectRegBuffers[0], &gScanlineEffectRegBuffers[1], 480); - } -} - -void door_upload_tiles(void) -{ - SetFlashScanlineEffectWindowBoundaries(&gScanlineEffectRegBuffers[0][0], 120, 80, gSaveBlock2Ptr->frontier.field_E68); - CpuFastSet(&gScanlineEffectRegBuffers[0], &gScanlineEffectRegBuffers[1], 480); -} - -void task0A_mpl_807E31C(u8 taskId) -{ - switch (gTasks[taskId].data[0]) - { - case 0: - FreezeEventObjects(); - ScriptContext2_Enable(); - sub_808D194(); - gTasks[taskId].data[0]++; - break; - case 1: - if (sub_80AF71C() && sub_808D1B4() != TRUE) - { - UnfreezeEventObjects(); - ScriptContext2_Disable(); - DestroyTask(taskId); - } - break; - } -} - -void sub_80B01BC(u8 taskId) -{ - struct Task *task = &gTasks[taskId]; - - switch (task->data[0]) - { - case 0: - FreezeEventObjects(); - ScriptContext2_Enable(); - PlaySE(SE_TK_WARPIN); - sub_808D1C8(); - task->data[0]++; - break; - case 1: - if (!sub_808D1E8()) - { - WarpFadeScreen(); - task->data[0]++; - } - break; - case 2: - if (!PaletteFadeActive() && BGMusicStopped()) - task->data[0]++; - break; - case 3: - WarpIntoMap(); - SetMainCallback2(CB2_LoadMap); - DestroyTask(taskId); - break; - } -} - -void sub_80B0244(void) -{ - ScriptContext2_Enable(); - CreateTask(sub_80AFA0C, 10); - gFieldCallback = sub_80AF3E8; -} - -void sub_80B0268(void) -{ - ScriptContext2_Enable(); - gFieldCallback = mapldr_default; - CreateTask(sub_80B01BC, 10); -} - -/*static*/ void sub_80B028C(u8 a1) -{ - int i; - u16 color[1]; - - if (!a1) - color[0] = 0x1F; - else - color[0] = 0x7C00; - - for (i = 0; i < 16; i++) - { - LoadPalette(color, 0xF0 + i, 2); - } -} - -/*static*/ bool8 sub_80B02C8(u16 a1) -{ - u8 lo = REG_BLDALPHA & 0xFF; - u8 hi = REG_BLDALPHA >> 8; - - if (a1) - { - if (lo) - { - lo--; - } - } - else - { - if (hi < 0x10) - { - hi++; - } - } - - SetGpuReg(REG_OFFSET_BLDALPHA, (hi << 8) | lo); - - if (lo == 0 && hi == 0x10) - return TRUE; - else - return FALSE; -} - -/*static*/ void sub_80B0318(u8 taskId) -{ - s16 *data = gTasks[taskId].data; - - switch (data[0]) - { - case 0: - data[6] = REG_DISPCNT; - data[7] = REG_BLDCNT; - data[8] = REG_BLDALPHA; - data[9] = REG_WININ; - data[10] = REG_WINOUT; - ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN1_ON); - SetGpuRegBits(REG_OFFSET_BLDCNT, gUnknown_82EC7CC[0]); - SetGpuReg(REG_OFFSET_BLDALPHA, 1804); - SetGpuReg(REG_OFFSET_WININ, 63); - SetGpuReg(REG_OFFSET_WINOUT, 30); - sub_8199C30(0, 0, 0, 0x1E, 0x14, 0xF); - schedule_bg_copy_tilemap_to_vram(0); - SetFlash2ScanlineEffectWindowBoundaries(&gScanlineEffectRegBuffers[0][0], data[2], data[3], 1); - CpuFastSet(&gScanlineEffectRegBuffers[0], &gScanlineEffectRegBuffers[1], 480); - ScanlineEffect_SetParams(sFlashEffectParams); - data[0] = 1; - break; - case 1: - sub_8199DF0(0, 17, 0, 1); - sub_80B028C(data[1]); - sub_80B003C(data[2], data[3], 1, 160, 1, 2); - data[0] = 2; - break; - case 2: - if (!FuncIsActiveTask(UpdateFlash2LevelEffect)) - { - EnableBothScriptContexts(); - data[0] = 3; - } - break; - case 3: - InstallCameraPanAheadCallback(); - SetCameraPanningCallback(NULL); - data[5] = 0; - data[4] = 4; - data[0] = 4; - break; - case 4: - data[4]--; - if (!data[4]) - { - s32 panning; - data[4] = 4; - data[5] ^= 1; - if (data[5]) - panning = 4; - else - panning = -4; - SetCameraPanning(0, panning); - } - break; - case 6: - InstallCameraPanAheadCallback(); - data[4] = 8; - data[0] = 7; - break; - case 7: - data[4]--; - if (!data[4]) - { - data[4] = 8; - data[5] ^= 1; - if (sub_80B02C8(data[5]) == TRUE) - { - data[0] = 5; - sub_8199DF0(0, 0, 0, 1); - } - } - break; - case 5: - SetGpuReg(REG_OFFSET_WIN0H, 255); - SetGpuReg(REG_OFFSET_DISPCNT, data[6]); - SetGpuReg(REG_OFFSET_BLDCNT, data[7]); - SetGpuReg(REG_OFFSET_BLDALPHA, data[8]); - SetGpuReg(REG_OFFSET_WININ, data[9]); - SetGpuReg(REG_OFFSET_WINOUT, data[10]); - EnableBothScriptContexts(); - DestroyTask(taskId); - break; - } -} - -void sub_80B0534(void) -{ - u8 taskId = CreateTask(sub_80B0318, 80); - s16 *data = gTasks[taskId].data; - - if (gSpecialVar_Result == 0) - { - data[1] = 0; - data[2] = 104; - } - else if (gSpecialVar_Result == 1) - { - data[1] = 1; - data[2] = 136; - } - else if (gSpecialVar_Result == 2) - { - data[1] = 0; - data[2] = 120; - } - else - { - data[1] = 1; - data[2] = 120; - } - - data[3] = 80; -} - -void sub_80B058C(void) -{ - u8 taskId = FindTaskIdByFunc(sub_80B0318); - gTasks[taskId].data[0] = 6; -} - -void sub_80B05B4(void) -{ - Overworld_FadeOutMapMusic(); - CreateTask(task50_0807F0C8, 80); -} - -/*static*/ void task50_0807F0C8(u8 taskId) -{ - if (BGMusicStopped() == TRUE) - { - DestroyTask(taskId); - EnableBothScriptContexts(); - } -} diff --git a/src/field_screen_effect.c b/src/field_screen_effect.c new file mode 100644 index 000000000..0de86d4f4 --- /dev/null +++ b/src/field_screen_effect.c @@ -0,0 +1,1261 @@ +#include "global.h" +#include "cable_club.h" +#include "event_data.h" +#include "fieldmap.h" +#include "field_camera.h" +#include "field_door.h" +#include "field_effect.h" +#include "event_object_movement.h" +#include "field_player_avatar.h" +#include "field_screen_effect.h" +#include "field_special_scene.h" +#include "field_weather.h" +// #include "fldeff_flash.h" +#include "gpu_regs.h" +#include "link.h" +#include "link_rfu.h" +#include "load_save.h" +#include "main.h" +#include "menu.h" +#include "event_obj_lock.h" +#include "metatile_behavior.h" +#include "palette.h" +#include "overworld.h" +#include "scanline_effect.h" +#include "script.h" +#include "sound.h" +#include "start_menu.h" +#include "task.h" +#include "text.h" +#include "constants/event_object_movement_constants.h" +#include "constants/songs.h" +#include "constants/rgb.h" + +extern bool32 sub_81D6534(void); +extern bool8 walkrun_is_standing_still(void); +extern void ScriptUnfreezeEventObjects(void); +extern void sub_81BE72C(void); +extern void sub_80FB768(void); +extern void sub_808D194(void); +extern void sub_808D1C8(void); +extern bool32 sub_808D1B4(void); +extern bool32 sub_808D1E8(void); +extern void sub_80B6B68(void); +extern void sub_80B6E4C(u8, u8); +extern void sub_80B75D8(u8); +extern void sub_80B7A74(u8); +extern void sub_808C0A8(u8); +extern u8 GetMapPairFadeToType(u8, u8); +extern u8 GetMapPairFadeFromType(u8, u8); + +extern const u16 gUnknown_82EC7CC[]; + +// 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 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 bool32 sub_80AF71C(void); +static void task0A_mpl_807E31C(u8 taskId); +static void sub_80AFA0C(u8 taskId); +static void sub_80AFA88(u8 taskId); +static void task50_0807F0C8(u8); + +// const +const u16 sFlashLevelPixelRadii[] = { 200, 72, 64, 56, 48, 40, 32, 24, 0 }; +const s32 gMaxFlashLevel = 8; + +const struct ScanlineEffectParams sFlashEffectParams = +{ + (void *)REG_ADDR_WIN0H, + ((DMA_ENABLE | DMA_START_HBLANK | DMA_REPEAT | DMA_DEST_RELOAD) << 16) | 1, + 1 +}; + +// code +static void palette_bg_faded_fill_white(void) +{ + CpuFastFill16(RGB_WHITE, gPlttBufferFaded, PLTT_SIZE); +} + +static void palette_bg_faded_fill_black(void) +{ + CpuFastFill16(RGB_BLACK, gPlttBufferFaded, PLTT_SIZE); +} + +void pal_fill_for_maplights(void) +{ + u8 previousMapType = GetLastUsedWarpMapType(); + switch (GetMapPairFadeFromType(previousMapType, Overworld_GetMapTypeOfSaveblockLocation())) + { + case 0: + palette_bg_faded_fill_black(); + FadeScreen(FADE_FROM_BLACK, 0); + break; + case 1: + palette_bg_faded_fill_white(); + FadeScreen(FADE_FROM_WHITE, 0); + } +} + +static void sub_80AF08C(void) +{ + palette_bg_faded_fill_white(); + FadeScreen(FADE_FROM_WHITE, 8); +} + +void pal_fill_black(void) +{ + palette_bg_faded_fill_black(); + FadeScreen(FADE_FROM_BLACK, 0); +} + +void WarpFadeScreen(void) +{ + u8 currentMapType = Overworld_GetMapTypeOfSaveblockLocation(); + switch (GetMapPairFadeToType(currentMapType, GetDestinationWarpMapHeader()->mapType)) + { + case 0: + FadeScreen(FADE_TO_BLACK, 0); + break; + case 1: + FadeScreen(FADE_TO_WHITE, 0); + } +} + +static void sub_80AF0F4(u8 arg) +{ + sub_808C0A8(!arg); +} + +static void task0A_nop_for_a_while(u8 taskId) +{ + if (sub_80AF71C() == TRUE) + DestroyTask(taskId); +} + +void sub_80AF128(void) +{ + ScriptContext2_Enable(); + Overworld_PlaySpecialMapMusic(); + pal_fill_black(); + CreateTask(task0A_nop_for_a_while, 10); +} + +static void task0A_asap_script_env_2_enable_and_set_ctx_running(u8 taskID) +{ + if (sub_80AF71C() == TRUE) + { + DestroyTask(taskID); + EnableBothScriptContexts(); + } +} + +void sub_80AF168(void) +{ + ScriptContext2_Enable(); + Overworld_PlaySpecialMapMusic(); + pal_fill_black(); + CreateTask(task0A_asap_script_env_2_enable_and_set_ctx_running, 10); +} + +void sub_80AF188(void) +{ + ScriptContext2_Enable(); + pal_fill_black(); + CreateTask(task0A_asap_script_env_2_enable_and_set_ctx_running, 10); +} + +static void task_mpl_807DD60(u8 taskId) +{ + struct Task *task = &gTasks[taskId]; + + switch (task->data[0]) + { + case 0: + task->data[1] = sub_80B3050(); + task->data[0]++; + break; + case 1: + if (gTasks[task->data[1]].isActive != TRUE) + { + pal_fill_for_maplights(); + task->data[0]++; + } + break; + case 2: + if (sub_80AF71C() == TRUE) + { + ScriptContext2_Disable(); + DestroyTask(taskId); + } + break; + } +} + +void sub_80AF214(void) +{ + ScriptContext2_Enable(); + Overworld_PlaySpecialMapMusic(); + palette_bg_faded_fill_black(); + CreateTask(task_mpl_807DD60, 10); +} + +static void sub_80AF234(u8 taskId) +{ + struct Task *task = &gTasks[taskId]; + + switch (task->data[0]) + { + case 0: + sub_800ADF8(); + task->data[0]++; + break; + case 1: + if (!sub_800A520()) + { + if (++task->data[1] > 1800) + sub_8011170(0x6000); + } + else + { + pal_fill_for_maplights(); + task->data[0]++; + } + break; + case 2: + if (sub_80AF71C() == TRUE) + { + sub_8009F18(); + ScriptContext2_Disable(); + DestroyTask(taskId); + } + break; + } +} + +void sub_80AF2B4(u8 taskId) +{ + struct Task *task = &gTasks[taskId]; + + switch (task->data[0]) + { + case 0: + sub_800ADF8(); + task->data[0]++; + break; + case 1: + if (sub_800A520()) + { + task->data[0]++; + } + break; + case 2: + sub_8009F18(); + sub_8086C2C(); + ScriptContext2_Disable(); + DestroyTask(taskId); + break; + } +} + +void sub_80AF314(void) +{ + ScriptContext2_Enable(); + Overworld_PlaySpecialMapMusic(); + palette_bg_faded_fill_black(); + CreateTask(sub_80AF234, 10); +} + +static void sub_80AF334(void) +{ + s16 x, y; + u8 behavior; + TaskFunc func; + + PlayerGetDestCoords(&x, &y); + behavior = MapGridGetMetatileBehaviorAt(x, y); + if (MetatileBehavior_IsDoor(behavior) == TRUE) + func = sub_80AF438; + else if (MetatileBehavior_IsNonAnimDoor(behavior) == TRUE) + func = task_map_chg_seq_0807E20C; + else + func = task_map_chg_seq_0807E2CC; + CreateTask(func, 10); +} + +void mapldr_default(void) +{ + Overworld_PlaySpecialMapMusic(); + pal_fill_for_maplights(); + sub_80AF334(); + ScriptContext2_Enable(); +} + +void sub_80AF3B0(void) +{ + Overworld_PlaySpecialMapMusic(); + sub_80AF08C(); + sub_80AF334(); + ScriptContext2_Enable(); +} + +void sub_80AF3C8(void) +{ + if (!sub_81D6534()) + Overworld_PlaySpecialMapMusic(); + pal_fill_black(); + sub_80AF334(); + ScriptContext2_Enable(); +} + +void sub_80AF3E8(void) +{ + Overworld_PlaySpecialMapMusic(); + pal_fill_for_maplights(); + PlaySE(SE_TK_WARPOUT); + CreateTask(task0A_mpl_807E31C, 10); + ScriptContext2_Enable(); +} + +void sub_80AF40C(void) +{ + Overworld_PlaySpecialMapMusic(); + pal_fill_for_maplights(); + PlaySE(SE_TK_WARPOUT); + CreateTask(task_map_chg_seq_0807E2CC, 10); + ScriptContext2_Enable(); + sub_8085540(0xE); +} + +static void sub_80AF438(u8 taskId) +{ + struct Task *task = &gTasks[taskId]; + s16 *x = &task->data[2]; + s16 *y = &task->data[3]; + + switch (task->data[0]) + { + case 0: + sub_80AF0F4(0); + FreezeEventObjects(); + PlayerGetDestCoords(x, y); + FieldSetDoorOpened(*x, *y); + task->data[0] = 1; + break; + case 1: + if (sub_80AF71C()) + { + u8 eventObjId; + sub_80AF0F4(1); + eventObjId = GetEventObjectIdByLocalIdAndMap(0xFF, 0, 0); + EventObjectSetHeldMovement(&gEventObjects[eventObjId], MOVEMENT_ACTION_WALK_NORMAL_DOWN); + task->data[0] = 2; + } + break; + case 2: + if (walkrun_is_standing_still()) + { + u8 eventObjId; + task->data[1] = FieldAnimateDoorClose(*x, *y); + eventObjId = GetEventObjectIdByLocalIdAndMap(0xFF, 0, 0); + EventObjectClearHeldMovementIfFinished(&gEventObjects[eventObjId]); + task->data[0] = 3; + } + break; + case 3: + if (task->data[1] < 0 || gTasks[task->data[1]].isActive != TRUE) + { + UnfreezeEventObjects(); + task->data[0] = 4; + } + break; + case 4: + ScriptContext2_Disable(); + DestroyTask(taskId); + break; + } +} + +static void task_map_chg_seq_0807E20C(u8 taskId) +{ + struct Task *task = &gTasks[taskId]; + s16 *x = &task->data[2]; + s16 *y = &task->data[3]; + + switch (task->data[0]) + { + case 0: + sub_80AF0F4(0); + FreezeEventObjects(); + PlayerGetDestCoords(x, y); + task->data[0] = 1; + break; + case 1: + if (sub_80AF71C()) + { + u8 eventObjId; + sub_80AF0F4(1); + eventObjId = GetEventObjectIdByLocalIdAndMap(0xFF, 0, 0); + EventObjectSetHeldMovement(&gEventObjects[eventObjId], GetWalkNormalMovementAction(GetPlayerFacingDirection())); + task->data[0] = 2; + } + break; + case 2: + if (walkrun_is_standing_still()) + { + UnfreezeEventObjects(); + task->data[0] = 3; + } + break; + case 3: + ScriptContext2_Disable(); + DestroyTask(taskId); + break; + } +} + +static void task_map_chg_seq_0807E2CC(u8 taskId) +{ + switch (gTasks[taskId].data[0]) + { + case 0: + FreezeEventObjects(); + ScriptContext2_Enable(); + gTasks[taskId].data[0]++; + break; + case 1: + if (sub_80AF71C()) + { + UnfreezeEventObjects(); + ScriptContext2_Disable(); + DestroyTask(taskId); + } + break; + } +} + +static void sub_80AF660(u8 taskId) +{ + if (sub_80AF71C() == TRUE) + { + DestroyTask(taskId); + CreateTask(sub_809FA34, 80); + } +} + +void sub_80AF688(void) +{ + pal_fill_black(); + CreateTask(sub_80AF660, 0x50); + ScriptContext2_Enable(); +} + +bool8 sub_80AF6A4(void) +{ + sub_809FA18(); + return FALSE; +} + +static void task_mpl_807E3C8(u8 taskId) +{ + if (sub_80AF71C() == 1) + { + ScriptContext2_Disable(); + DestroyTask(taskId); + ScriptUnfreezeEventObjects(); + } +} + +void sub_80AF6D4(void) +{ + ScriptContext2_Enable(); + pal_fill_black(); + CreateTask(task_mpl_807E3C8, 10); +} + +void sub_80AF6F0(void) +{ + ScriptContext2_Enable(); + Overworld_PlaySpecialMapMusic(); + pal_fill_black(); + CreateTask(task_mpl_807E3C8, 10); +} + +static bool32 PaletteFadeActive(void) +{ + return gPaletteFade.active; +} + +static bool32 sub_80AF71C(void) +{ + if (IsWeatherNotFadingIn() == TRUE) + return TRUE; + else + return FALSE; +} + +void sub_80AF734(void) +{ + ScriptContext2_Enable(); + TryFadeOutOldMapMusic(); + WarpFadeScreen(); + PlayRainSoundEffect(); + PlaySE(SE_KAIDAN); + gFieldCallback = mapldr_default; + CreateTask(sub_80AFA0C, 10); +} + +void sp13E_warp_to_last_warp(void) +{ + ScriptContext2_Enable(); + TryFadeOutOldMapMusic(); + WarpFadeScreen(); + PlayRainSoundEffect(); + gFieldCallback = mapldr_default; + CreateTask(sub_80AFA0C, 10); +} + +void sub_80AF79C(void) +{ + ScriptContext2_Enable(); + TryFadeOutOldMapMusic(); + FadeScreen(FADE_TO_WHITE, 8); + PlayRainSoundEffect(); + gFieldCallback = sub_80AF3B0; + CreateTask(sub_80AFA0C, 10); +} + +void sub_80AF7D0(void) +{ + ScriptContext2_Enable(); + gFieldCallback = mapldr_default; + CreateTask(sub_80AFA88, 10); +} + +void sp13F_fall_to_last_warp(void) +{ + sp13E_warp_to_last_warp(); + gFieldCallback = sub_80B6B68; +} + +void sub_80AF80C(u8 metatileBehavior) +{ + ScriptContext2_Enable(); + sub_80B6E4C(metatileBehavior, 10); +} + +void sub_80AF828(void) +{ + ScriptContext2_Enable(); + sub_80B75D8(10); +} + +void sub_80AF838(void) +{ + ScriptContext2_Enable(); + sub_80B7A74(10); +} + +void sub_80AF848(void) +{ + ScriptContext2_Enable(); + TryFadeOutOldMapMusic(); + WarpFadeScreen(); + PlaySE(SE_TK_WARPIN); + CreateTask(sub_80AFA0C, 10); + gFieldCallback = sub_80AF3E8; +} + +void sub_80AF87C(void) +{ + sub_8085540(1); + ScriptContext2_Enable(); + SaveEventObjects(); + TryFadeOutOldMapMusic(); + WarpFadeScreen(); + PlaySE(SE_TK_WARPIN); + CreateTask(sub_80AFA0C, 10); + gFieldCallback = sub_80AF40C; +} + +void sub_80AF8B8(void) +{ + ScriptContext2_Enable(); + WarpFadeScreen(); + CreateTask(sub_80AFA0C, 10); + gFieldCallback = sub_80FB768; +} + +static void sub_80AF8E0(u8 taskId) +{ + struct Task *task = &gTasks[taskId]; + + switch (task->data[0]) + { + case 0: + ScriptContext2_Enable(); + task->data[0]++; + break; + case 1: + if (!PaletteFadeActive() && BGMusicStopped()) + task->data[0]++; + break; + case 2: + WarpIntoMap(); + SetMainCallback2(sub_8086074); + DestroyTask(taskId); + break; + } +} + +void sub_80AF948(void) +{ + ScriptContext2_Enable(); + TryFadeOutOldMapMusic(); + WarpFadeScreen(); + PlaySE(SE_KAIDAN); + CreateTask(sub_80AF8E0, 10); +} + +static void sub_80AF96C(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + + switch (data[0]) + { + case 0: + ClearLinkCallback_2(); + FadeScreen(FADE_TO_BLACK, 0); + TryFadeOutOldMapMusic(); + PlaySE(SE_KAIDAN); + data[0]++; + break; + case 1: + if (!PaletteFadeActive() && BGMusicStopped()) + { + sub_800AC34(); + data[0]++; + } + break; + case 2: + if (!gReceivedRemoteLinkPlayers) + { + WarpIntoMap(); + SetMainCallback2(CB2_LoadMap); + DestroyTask(taskId); + } + break; + } +} + +void sub_80AF9F8(void) +{ + CreateTask(sub_80AF96C, 10); +} + +static void sub_80AFA0C(u8 taskId) +{ + struct Task *task = &gTasks[taskId]; + + switch (task->data[0]) + { + case 0: + FreezeEventObjects(); + ScriptContext2_Enable(); + task->data[0]++; + break; + case 1: + if (!PaletteFadeActive()) + { + if (task->data[1] == 0) + { + sub_81BE72C(); + task->data[1] = 1; + } + if (BGMusicStopped()) + task->data[0]++; + } + break; + case 2: + WarpIntoMap(); + SetMainCallback2(CB2_LoadMap); + DestroyTask(taskId); + break; + } +} + +static void sub_80AFA88(u8 taskId) +{ + struct Task *task = &gTasks[taskId]; + s16 *x = &task->data[2]; + s16 *y = &task->data[3]; + + switch (task->data[0]) + { + case 0: + FreezeEventObjects(); + PlayerGetDestCoords(x, y); + PlaySE(GetDoorSoundEffect(*x, *y - 1)); + task->data[1] = FieldAnimateDoorOpen(*x, *y - 1); + task->data[0] = 1; + break; + case 1: + if (task->data[1] < 0 || gTasks[task->data[1]].isActive != TRUE) + { + u8 eventObjId; + eventObjId = GetEventObjectIdByLocalIdAndMap(0xFF, 0, 0); + EventObjectClearHeldMovementIfActive(&gEventObjects[eventObjId]); + eventObjId = GetEventObjectIdByLocalIdAndMap(0xFF, 0, 0); + EventObjectSetHeldMovement(&gEventObjects[eventObjId], MOVEMENT_ACTION_WALK_NORMAL_UP); + task->data[0] = 2; + } + break; + case 2: + if (walkrun_is_standing_still()) + { + u8 eventObjId; + task->data[1] = FieldAnimateDoorClose(*x, *y - 1); + eventObjId = GetEventObjectIdByLocalIdAndMap(0xFF, 0, 0); + EventObjectClearHeldMovementIfFinished(&gEventObjects[eventObjId]); + sub_80AF0F4(0); + task->data[0] = 3; + } + break; + case 3: + if (task->data[1] < 0 || gTasks[task->data[1]].isActive != TRUE) + { + task->data[0] = 4; + } + break; + case 4: + TryFadeOutOldMapMusic(); + WarpFadeScreen(); + PlayRainSoundEffect(); + task->data[0] = 0; + task->func = sub_80AFA0C; + break; + } +} + +static void task0A_fade_n_map_maybe(u8 taskId) +{ + struct Task *task = &gTasks[taskId]; + + switch (task->data[0]) + { + case 0: + FreezeEventObjects(); + ScriptContext2_Enable(); + task->data[0]++; + break; + case 1: + if (!PaletteFadeActive() && BGMusicStopped()) + { + task->data[0]++; + } + break; + case 2: + WarpIntoMap(); + SetMainCallback2(sub_8086024); + DestroyTask(taskId); + break; + } +} + +void sub_80AFC60(void) +{ + ScriptContext2_Enable(); + TryFadeOutOldMapMusic(); + WarpFadeScreen(); + PlayRainSoundEffect(); + PlaySE(SE_KAIDAN); + gFieldCallback = sub_80AF3C8; + CreateTask(task0A_fade_n_map_maybe, 10); +} + +static void SetFlashScanlineEffectWindowBoundary(u16 *dest, u32 y, s32 left, s32 right) +{ + if (y <= 160) + { + if (left < 0) + left = 0; + if (left > 255) + left = 255; + if (right < 0) + right = 0; + if (right > 255) + right = 255; + dest[y] = (left << 8) | right; + } +} + +static void SetFlashScanlineEffectWindowBoundaries(u16 *dest, s32 centerX, s32 centerY, s32 radius) +{ + s32 r = radius; + s32 v2 = radius; + s32 v3 = 0; + while (r >= v3) + { + SetFlashScanlineEffectWindowBoundary(dest, centerY - v3, centerX - r, centerX + r); + SetFlashScanlineEffectWindowBoundary(dest, centerY + v3, centerX - r, centerX + r); + SetFlashScanlineEffectWindowBoundary(dest, centerY - r, centerX - v3, centerX + v3); + SetFlashScanlineEffectWindowBoundary(dest, centerY + r, centerX - v3, centerX + v3); + v2 -= (v3 * 2) - 1; + v3++; + if (v2 < 0) + { + v2 += 2 * (r - 1); + r--; + } + } +} + +static void SetFlash2ScanlineEffectWindowBoundary(u16 *dest, u32 y, s32 left, s32 right) +{ + if (y <= 160) + { + if (left < 0) + left = 0; + if (left > 240) + left = 240; + if (right < 0) + right = 0; + if (right > 240) + right = 240; + dest[y] = (left << 8) | right; + } +} + +static void SetFlash2ScanlineEffectWindowBoundaries(u16 *dest, s32 centerX, s32 centerY, s32 radius) +{ + s32 r = radius; + s32 v2 = radius; + s32 v3 = 0; + while (r >= v3) + { + SetFlash2ScanlineEffectWindowBoundary(dest, centerY - v3, centerX - r, centerX + r); + SetFlash2ScanlineEffectWindowBoundary(dest, centerY + v3, centerX - r, centerX + r); + SetFlash2ScanlineEffectWindowBoundary(dest, centerY - r, centerX - v3, centerX + v3); + SetFlash2ScanlineEffectWindowBoundary(dest, centerY + r, centerX - v3, centerX + v3); + v2 -= (v3 * 2) - 1; + v3++; + if (v2 < 0) + { + v2 += 2 * (r - 1); + r--; + } + } +} + +#define tFlashCenterX data[1] +#define tFlashCenterY data[2] +#define tCurFlashRadius data[3] +#define tDestFlashRadius data[4] +#define tFlashRadiusDelta data[5] +#define tClearScanlineEffect data[6] + +static void UpdateFlashLevelEffect(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + + switch (data[0]) + { + case 0: + SetFlashScanlineEffectWindowBoundaries(gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer], tFlashCenterX, tFlashCenterY, tCurFlashRadius); + data[0] = 1; + break; + case 1: + SetFlashScanlineEffectWindowBoundaries(gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer], tFlashCenterX, tFlashCenterY, tCurFlashRadius); + data[0] = 0; + tCurFlashRadius += tFlashRadiusDelta; + if (tCurFlashRadius > tDestFlashRadius) + { + if (tClearScanlineEffect == 1) + { + ScanlineEffect_Stop(); + data[0] = 2; + } + else + { + DestroyTask(taskId); + } + } + break; + case 2: + ScanlineEffect_Clear(); + DestroyTask(taskId); + break; + } +} + +static void UpdateFlash2LevelEffect(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + + switch (data[0]) + { + case 0: + SetFlash2ScanlineEffectWindowBoundaries(gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer], tFlashCenterX, tFlashCenterY, tCurFlashRadius); + data[0] = 1; + break; + case 1: + SetFlash2ScanlineEffectWindowBoundaries(gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer], tFlashCenterX, tFlashCenterY, tCurFlashRadius); + data[0] = 0; + tCurFlashRadius += tFlashRadiusDelta; + if (tCurFlashRadius > tDestFlashRadius) + { + if (tClearScanlineEffect == 1) + { + ScanlineEffect_Stop(); + data[0] = 2; + } + else + { + DestroyTask(taskId); + } + } + break; + case 2: + ScanlineEffect_Clear(); + DestroyTask(taskId); + break; + } +} + +static void sub_80AFF90(u8 taskId) +{ + if (!FuncIsActiveTask(UpdateFlashLevelEffect)) + { + EnableBothScriptContexts(); + DestroyTask(taskId); + } +} + +static void sub_80AFFB8(void) +{ + if (!FuncIsActiveTask(sub_80AFF90)) + CreateTask(sub_80AFF90, 80); +} + +static u8 sub_80AFFDC(s32 centerX, s32 centerY, s32 initialFlashRadius, s32 destFlashRadius, s32 clearScanlineEffect, u8 delta) +{ + u8 taskId = CreateTask(UpdateFlashLevelEffect, 80); + s16 *data = gTasks[taskId].data; + + tCurFlashRadius = initialFlashRadius; + tDestFlashRadius = destFlashRadius; + tFlashCenterX = centerX; + tFlashCenterY = centerY; + tClearScanlineEffect = clearScanlineEffect; + + if (initialFlashRadius < destFlashRadius) + tFlashRadiusDelta = delta; + else + tFlashRadiusDelta = -delta; + + return taskId; +} + +static u8 sub_80B003C(s32 centerX, s32 centerY, s32 initialFlashRadius, s32 destFlashRadius, s32 clearScanlineEffect, u8 delta) +{ + u8 taskId = CreateTask(UpdateFlash2LevelEffect, 80); + s16 *data = gTasks[taskId].data; + + tCurFlashRadius = initialFlashRadius; + tDestFlashRadius = destFlashRadius; + tFlashCenterX = centerX; + tFlashCenterY = centerY; + tClearScanlineEffect = clearScanlineEffect; + + if (initialFlashRadius < destFlashRadius) + tFlashRadiusDelta = delta; + else + tFlashRadiusDelta = -delta; + + return taskId; +} + +#undef tCurFlashRadius +#undef tDestFlashRadius +#undef tFlashRadiusDelta +#undef tClearScanlineEffect + +void sub_80B009C(u8 flashLevel) +{ + u8 curFlashLevel = Overworld_GetFlashLevel(); + u8 value = 0; + if (!flashLevel) + value = 1; + sub_80AFFDC(120, 80, sFlashLevelPixelRadii[curFlashLevel], sFlashLevelPixelRadii[flashLevel], value, 1); + sub_80AFFB8(); + ScriptContext2_Enable(); +} + +void WriteFlashScanlineEffectBuffer(u8 flashLevel) +{ + if (flashLevel) + { + SetFlashScanlineEffectWindowBoundaries(&gScanlineEffectRegBuffers[0][0], 120, 80, sFlashLevelPixelRadii[flashLevel]); + CpuFastSet(&gScanlineEffectRegBuffers[0], &gScanlineEffectRegBuffers[1], 480); + } +} + +void door_upload_tiles(void) +{ + SetFlashScanlineEffectWindowBoundaries(&gScanlineEffectRegBuffers[0][0], 120, 80, gSaveBlock2Ptr->frontier.field_E68); + CpuFastSet(&gScanlineEffectRegBuffers[0], &gScanlineEffectRegBuffers[1], 480); +} + +static void task0A_mpl_807E31C(u8 taskId) +{ + switch (gTasks[taskId].data[0]) + { + case 0: + FreezeEventObjects(); + ScriptContext2_Enable(); + sub_808D194(); + gTasks[taskId].data[0]++; + break; + case 1: + if (sub_80AF71C() && sub_808D1B4() != TRUE) + { + UnfreezeEventObjects(); + ScriptContext2_Disable(); + DestroyTask(taskId); + } + break; + } +} + +static void sub_80B01BC(u8 taskId) +{ + struct Task *task = &gTasks[taskId]; + + switch (task->data[0]) + { + case 0: + FreezeEventObjects(); + ScriptContext2_Enable(); + PlaySE(SE_TK_WARPIN); + sub_808D1C8(); + task->data[0]++; + break; + case 1: + if (!sub_808D1E8()) + { + WarpFadeScreen(); + task->data[0]++; + } + break; + case 2: + if (!PaletteFadeActive() && BGMusicStopped()) + task->data[0]++; + break; + case 3: + WarpIntoMap(); + SetMainCallback2(CB2_LoadMap); + DestroyTask(taskId); + break; + } +} + +void sub_80B0244(void) +{ + ScriptContext2_Enable(); + CreateTask(sub_80AFA0C, 10); + gFieldCallback = sub_80AF3E8; +} + +void sub_80B0268(void) +{ + ScriptContext2_Enable(); + gFieldCallback = mapldr_default; + CreateTask(sub_80B01BC, 10); +} + +static void sub_80B028C(u8 a1) +{ + int i; + u16 color[1]; + + if (!a1) + color[0] = 0x1F; + else + color[0] = 0x7C00; + + for (i = 0; i < 16; i++) + { + LoadPalette(color, 0xF0 + i, 2); + } +} + +static bool8 sub_80B02C8(u16 a1) +{ + u8 lo = REG_BLDALPHA & 0xFF; + u8 hi = REG_BLDALPHA >> 8; + + if (a1) + { + if (lo) + { + lo--; + } + } + else + { + if (hi < 0x10) + { + hi++; + } + } + + SetGpuReg(REG_OFFSET_BLDALPHA, (hi << 8) | lo); + + if (lo == 0 && hi == 0x10) + return TRUE; + else + return FALSE; +} + +static void sub_80B0318(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + + switch (data[0]) + { + case 0: + data[6] = REG_DISPCNT; + data[7] = REG_BLDCNT; + data[8] = REG_BLDALPHA; + data[9] = REG_WININ; + data[10] = REG_WINOUT; + ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN1_ON); + SetGpuRegBits(REG_OFFSET_BLDCNT, gUnknown_82EC7CC[0]); + SetGpuReg(REG_OFFSET_BLDALPHA, 1804); + SetGpuReg(REG_OFFSET_WININ, 63); + SetGpuReg(REG_OFFSET_WINOUT, 30); + sub_8199C30(0, 0, 0, 0x1E, 0x14, 0xF); + schedule_bg_copy_tilemap_to_vram(0); + SetFlash2ScanlineEffectWindowBoundaries(&gScanlineEffectRegBuffers[0][0], data[2], data[3], 1); + CpuFastSet(&gScanlineEffectRegBuffers[0], &gScanlineEffectRegBuffers[1], 480); + ScanlineEffect_SetParams(sFlashEffectParams); + data[0] = 1; + break; + case 1: + sub_8199DF0(0, 17, 0, 1); + sub_80B028C(data[1]); + sub_80B003C(data[2], data[3], 1, 160, 1, 2); + data[0] = 2; + break; + case 2: + if (!FuncIsActiveTask(UpdateFlash2LevelEffect)) + { + EnableBothScriptContexts(); + data[0] = 3; + } + break; + case 3: + InstallCameraPanAheadCallback(); + SetCameraPanningCallback(NULL); + data[5] = 0; + data[4] = 4; + data[0] = 4; + break; + case 4: + data[4]--; + if (!data[4]) + { + s32 panning; + data[4] = 4; + data[5] ^= 1; + if (data[5]) + panning = 4; + else + panning = -4; + SetCameraPanning(0, panning); + } + break; + case 6: + InstallCameraPanAheadCallback(); + data[4] = 8; + data[0] = 7; + break; + case 7: + data[4]--; + if (!data[4]) + { + data[4] = 8; + data[5] ^= 1; + if (sub_80B02C8(data[5]) == TRUE) + { + data[0] = 5; + sub_8199DF0(0, 0, 0, 1); + } + } + break; + case 5: + SetGpuReg(REG_OFFSET_WIN0H, 255); + SetGpuReg(REG_OFFSET_DISPCNT, data[6]); + SetGpuReg(REG_OFFSET_BLDCNT, data[7]); + SetGpuReg(REG_OFFSET_BLDALPHA, data[8]); + SetGpuReg(REG_OFFSET_WININ, data[9]); + SetGpuReg(REG_OFFSET_WINOUT, data[10]); + EnableBothScriptContexts(); + DestroyTask(taskId); + break; + } +} + +void sub_80B0534(void) +{ + u8 taskId = CreateTask(sub_80B0318, 80); + s16 *data = gTasks[taskId].data; + + if (gSpecialVar_Result == 0) + { + data[1] = 0; + data[2] = 104; + } + else if (gSpecialVar_Result == 1) + { + data[1] = 1; + data[2] = 136; + } + else if (gSpecialVar_Result == 2) + { + data[1] = 0; + data[2] = 120; + } + else + { + data[1] = 1; + data[2] = 120; + } + + data[3] = 80; +} + +void sub_80B058C(void) +{ + u8 taskId = FindTaskIdByFunc(sub_80B0318); + gTasks[taskId].data[0] = 6; +} + +void sub_80B05B4(void) +{ + Overworld_FadeOutMapMusic(); + CreateTask(task50_0807F0C8, 80); +} + +static void task50_0807F0C8(u8 taskId) +{ + if (BGMusicStopped() == TRUE) + { + DestroyTask(taskId); + EnableBothScriptContexts(); + } +} diff --git a/src/field_specials.c b/src/field_specials.c index 4da751b27..0842555b9 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -12,7 +12,7 @@ #include "field_effect.h" #include "field_message_box.h" #include "field_player_avatar.h" -#include "field_screen.h" +#include "field_screen_effect.h" #include "field_specials.h" #include "field_weather.h" #include "international_string_util.h" diff --git a/src/item_use.c b/src/item_use.c index 4ab9f6e23..8399a1861 100755 --- a/src/item_use.c +++ b/src/item_use.c @@ -10,7 +10,7 @@ #include "fieldmap.h" #include "event_object_movement.h" #include "field_player_avatar.h" -#include "field_screen.h" +#include "field_screen_effect.h" #include "field_weather.h" #include "item.h" #include "item_menu.h" diff --git a/src/learn_move.c b/src/learn_move.c index 7717a5193..38e081a38 100644 --- a/src/learn_move.c +++ b/src/learn_move.c @@ -5,7 +5,7 @@ #include "contest_effect.h" #include "data2.h" #include "event_data.h" -#include "field_screen.h" +#include "field_screen_effect.h" #include "gpu_regs.h" #include "learn_move.h" #include "list_menu.h" @@ -52,7 +52,7 @@ static EWRAM_DATA struct { const u16 gUnknown_085CE9F8[] = INCBIN_U16("graphics/interface/ui_learn_move.gbapal"); const u8 gUnknown_085CEA18[] = INCBIN_U8("graphics/interface/ui_learn_move.4bpp"); -const struct OamData gUnknown_085CEB98 = +const struct OamData gUnknown_085CEB98 = { .y = 0, .affineMode = 0, @@ -69,7 +69,7 @@ const struct OamData gUnknown_085CEB98 = .affineParam = 0, }; -const struct OamData gUnknown_085CEBA0 = +const struct OamData gUnknown_085CEBA0 = { .y = 0, .affineMode = 0, @@ -86,7 +86,7 @@ const struct OamData gUnknown_085CEBA0 = .affineParam = 0, }; -const struct OamData gUnknown_085CEBA8 = +const struct OamData gUnknown_085CEBA8 = { .y = 0, .affineMode = 0, @@ -103,20 +103,20 @@ const struct OamData gUnknown_085CEBA8 = .affineParam = 0, }; -const struct SpriteSheet gUnknown_085CEBB0 = +const struct SpriteSheet gUnknown_085CEBB0 = { .data = gUnknown_085CEA18, .size = 0x180, .tag = 5525 }; -const struct SpritePalette gUnknown_085CEBB8 = +const struct SpritePalette gUnknown_085CEBB8 = { .data = gUnknown_085CE9F8, .tag = 5526 }; -const struct ScrollArrowsTemplate gUnknown_085CEBC0 = +const struct ScrollArrowsTemplate gUnknown_085CEBC0 = { .firstArrowType = 0, .firstX = 27, @@ -131,7 +131,7 @@ const struct ScrollArrowsTemplate gUnknown_085CEBC0 = .palNum = 0, }; -const struct ScrollArrowsTemplate gUnknown_085CEBD0 = +const struct ScrollArrowsTemplate gUnknown_085CEBD0 = { .firstArrowType = 2, .firstX = 192, @@ -146,31 +146,31 @@ const struct ScrollArrowsTemplate gUnknown_085CEBD0 = .palNum = 0, }; -const union AnimCmd gUnknown_085CEBE0[] = +const union AnimCmd gUnknown_085CEBE0[] = { ANIMCMD_FRAME(8, 5, FALSE, FALSE), ANIMCMD_END }; -const union AnimCmd gUnknown_085CEBE8[] = +const union AnimCmd gUnknown_085CEBE8[] = { ANIMCMD_FRAME(9, 5, FALSE, FALSE), ANIMCMD_END }; -const union AnimCmd gUnknown_085CEBF0[] = +const union AnimCmd gUnknown_085CEBF0[] = { ANIMCMD_FRAME(10, 5, FALSE, FALSE), ANIMCMD_END }; -const union AnimCmd gUnknown_085CEBF8[] = +const union AnimCmd gUnknown_085CEBF8[] = { ANIMCMD_FRAME(11, 5, FALSE, FALSE), ANIMCMD_END }; -const union AnimCmd *const gUnknown_085CEC00[] = +const union AnimCmd *const gUnknown_085CEC00[] = { gUnknown_085CEBE0, gUnknown_085CEBE8, @@ -178,7 +178,7 @@ const union AnimCmd *const gUnknown_085CEC00[] = gUnknown_085CEBF8, }; -const struct SpriteTemplate gUnknown_085CEC10 = +const struct SpriteTemplate gUnknown_085CEC10 = { .tileTag = 5525, .paletteTag = 5526, @@ -707,7 +707,7 @@ static void CreateHearts(void) sLearnMoveStruct->scrollArrowTaskId2 = -1; sLearnMoveStruct->scrollArrowTaskId1 = -1; AddScrollArrows(); - + for (i = 0; i < 8; i++) { sLearnMoveStruct->spriteIds[i] = CreateSprite(&gUnknown_085CEC10, (i - (i / 4) * 4) * 8 + 104, (i / 4) * 8 + 36, 0); @@ -791,7 +791,7 @@ void ShowHideHearts(s32 item) else { numHearts = (u8)(gContestEffects[gContestMoves[item].effect].appeal / 10); - + if (numHearts == 0xFF) { numHearts = 0; @@ -811,7 +811,7 @@ void ShowHideHearts(s32 item) } numHearts = (u8)(gContestEffects[gContestMoves[item].effect].jam / 10); - + if (numHearts == 0xFF) { numHearts = 0; diff --git a/src/overworld.c b/src/overworld.c index a60ac9a54..8d8675487 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -4,18 +4,17 @@ #include "battle_setup.h" #include "berry.h" #include "bg.h" -// #include "cable_club.h" +#include "cable_club.h" #include "clock.h" #include "event_data.h" #include "field_camera.h" #include "field_control_avatar.h" #include "field_effect.h" -#include "field_fadetransition.h" #include "event_object_movement.h" #include "field_message_box.h" #include "field_player_avatar.h" #include "field_screen_effect.h" -// #include "field_special_scene.h" +#include "field_special_scene.h" #include "field_specials.h" #include "field_tasks.h" #include "field_weather.h" @@ -38,7 +37,7 @@ #include "play_time.h" #include "random.h" #include "roamer.h" -// #include "rotating_gate.h" +#include "rotating_gate.h" #include "safari_zone.h" #include "save.h" #include "save_location.h" diff --git a/src/player_pc.c b/src/player_pc.c index 59ba36350..864c13acd 100644 --- a/src/player_pc.c +++ b/src/player_pc.c @@ -3,9 +3,8 @@ #include "bg.h" #include "decoration.h" #include "event_scripts.h" -#include "field_fadetransition.h" #include "event_object_movement.h" -#include "field_screen.h" +#include "field_screen_effect.h" #include "field_weather.h" #include "international_string_util.h" #include "item.h" diff --git a/src/pokemon_storage_system.c b/src/pokemon_storage_system.c index 465b97da2..ad56b1678 100644 --- a/src/pokemon_storage_system.c +++ b/src/pokemon_storage_system.c @@ -1,7 +1,7 @@ #include "global.h" #include "bg.h" #include "event_data.h" -#include "field_screen.h" +#include "field_screen_effect.h" #include "field_weather.h" #include "gpu_regs.h" #include "international_string_util.h" diff --git a/src/record_mixing.c b/src/record_mixing.c index df4a1a720..a497f9cd8 100644 --- a/src/record_mixing.c +++ b/src/record_mixing.c @@ -22,7 +22,7 @@ #include "constants/songs.h" #include "menu.h" #include "overworld.h" -#include "field_screen.h" +#include "field_screen_effect.h" #include "fldeff_80F9BCC.h" #include "script.h" #include "event_data.h" diff --git a/src/rom_8011DC0.c b/src/rom_8011DC0.c index a197598de..af4e031dc 100644 --- a/src/rom_8011DC0.c +++ b/src/rom_8011DC0.c @@ -32,7 +32,7 @@ #include "decompress.h" #include "start_menu.h" #include "data2.h" -#include "field_screen.h" +#include "field_screen_effect.h" extern void HealPlayerParty(void); diff --git a/src/scrcmd.c b/src/scrcmd.c index 310387337..579f804e2 100644 --- a/src/scrcmd.c +++ b/src/scrcmd.c @@ -13,7 +13,6 @@ #include "event_data.h" #include "field_door.h" #include "field_effect.h" -#include "field_fadetransition.h" #include "event_object_movement.h" #include "field_message_box.h" #include "field_player_avatar.h" diff --git a/src/secret_base.c b/src/secret_base.c index 8436d8520..84d70061e 100644 --- a/src/secret_base.c +++ b/src/secret_base.c @@ -1,5 +1,3 @@ - -// Includes #include "global.h" #include "constants/bg_event_constants.h" #include "constants/decorations.h" @@ -19,7 +17,7 @@ #include "fieldmap.h" #include "field_camera.h" #include "field_player_avatar.h" -#include "field_screen.h" +#include "field_screen_effect.h" #include "field_weather.h" #include "event_object_movement.h" #include "field_effect.h" diff --git a/src/shop.c b/src/shop.c index a0eddee01..9b78878bd 100755 --- a/src/shop.c +++ b/src/shop.c @@ -6,7 +6,7 @@ #include "decoration_inventory.h" #include "event_object_movement.h" #include "field_player_avatar.h" -#include "field_screen.h" +#include "field_screen_effect.h" #include "field_weather.h" #include "fieldmap.h" #include "gpu_regs.h" -- cgit v1.2.3