From 403d2aee7e13cb431b1c29b4c4ee39e670222609 Mon Sep 17 00:00:00 2001 From: xCrystal Date: Mon, 29 Jan 2024 20:02:50 +0100 Subject: [PATCH] Level selection menu: fix trophy palettes not being faded out when spawning to level (#12) --- constants/cgb_pal_constants.asm | 2 +- engine/gfx/rgb_fade.asm | 11 +++++++---- engine/menus/level_selection_menu.asm | 2 +- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/constants/cgb_pal_constants.asm b/constants/cgb_pal_constants.asm index 238a024fa..1f1ec939a 100644 --- a/constants/cgb_pal_constants.asm +++ b/constants/cgb_pal_constants.asm @@ -129,7 +129,7 @@ DEF NUM_PREDEF_PALS EQU const_value const_def const RGBFADE_TO_BLACK_6BGP const RGBFADE_TO_LIGHTER_6BGP - const RGBFADE_TO_WHITE_6BGP_3OBP + const RGBFADE_TO_WHITE_6BGP_7OBP const RGBFADE_TO_WHITE_8BGP_8OBP const RGBFADE_TO_BLACK_6BGP_1OBP2 const RGBFADE_TO_LIGHTER_6BGP_1OBP2 diff --git a/engine/gfx/rgb_fade.asm b/engine/gfx/rgb_fade.asm index 1eb375796..58664e84b 100755 --- a/engine/gfx/rgb_fade.asm +++ b/engine/gfx/rgb_fade.asm @@ -277,12 +277,16 @@ RGBFadeEffectJumptable: table_width 2, RGBFadeEffectJumptable dw _RGBFadeToBlack_6BGP ; RGBFADE_TO_BLACK_6BGP dw _RGBFadeToLighter_6BGP ; RGBFADE_TO_LIGHTER_6BGP - dw _RGBFadeToWhite_6BGP_3OBP ; RGBFADE_TO_WHITE_6BGP_3OBP + dw _RGBFadeToWhite_6BGP_7OBP ; RGBFADE_TO_WHITE_6BGP_7OBP dw _RGBFadeToWhite_8BGP_8OBP ; RGBFADE_TO_WHITE_8BGP_8OBP dw _RGBFadeToBlack_6BGP_1OBP2 ; RGBFADE_TO_BLACK_6BGP_1OBP2 dw _RGBFadeToLighter_6BGP_1OBP2 ; RGBFADE_TO_LIGHTER_6BGP_1OBP2 assert_table_length NUM_RGB_FADE_EFFECTS +; in RGBFadeEffectJumptable functions, use DelayFrame calls appropriately +; inside the loop to adjust loop duration, accounting for whether a loop +; takes up less or more than one frame. + _RGBFadeToBlack_6BGP: ld c, 32 / 2 .loop @@ -376,7 +380,7 @@ _RGBFadeToLighter_6BGP_1OBP2: jr nz, .loop ret -_RGBFadeToWhite_6BGP_3OBP: +_RGBFadeToWhite_6BGP_7OBP: ld c, 32 / 2 .loop push bc @@ -388,13 +392,12 @@ _RGBFadeToWhite_6BGP_3OBP: ; fade OBP to white ld de, wOBPals2 - ld c, 3 * NUM_PAL_COLORS + ld c, 7 * NUM_PAL_COLORS call FadeStepColorsToWhite ; commit pals ld a, TRUE ldh [hCGBPalUpdate], a - call DelayFrame pop bc dec c diff --git a/engine/menus/level_selection_menu.asm b/engine/menus/level_selection_menu.asm index 4a1443d3a..9402d82b5 100755 --- a/engine/menus/level_selection_menu.asm +++ b/engine/menus/level_selection_menu.asm @@ -195,7 +195,7 @@ LevelSelectionMenu:: ret .EnterLevelFadeOut: - ld b, RGBFADE_TO_WHITE_6BGP_3OBP + ld b, RGBFADE_TO_WHITE_6BGP_7OBP jp DoRGBFadeEffect .exit