From 68068981a4f16a183dd7b329b02777d0de865178 Mon Sep 17 00:00:00 2001 From: Ariel Antonitis Date: Wed, 17 Mar 2021 01:52:07 -0400 Subject: [PATCH] Fixed TOD & weather fadeout. --- src/field_weather.c | 8 ++++---- src/field_weather_effect.c | 13 +++++++++---- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/src/field_weather.c b/src/field_weather.c index bfd7f2afa2..0b8427c293 100644 --- a/src/field_weather.c +++ b/src/field_weather.c @@ -110,8 +110,8 @@ void (*const gWeatherPalStateFuncs[])(void) = { [WEATHER_PAL_STATE_CHANGING_WEATHER] = UpdateWeatherGammaShift, [WEATHER_PAL_STATE_SCREEN_FADING_IN] = FadeInScreenWithWeather, - [WEATHER_PAL_STATE_SCREEN_FADING_OUT] = DoNothing, - [WEATHER_PAL_STATE_IDLE] = DoNothing, + [WEATHER_PAL_STATE_SCREEN_FADING_OUT] = DoNothing, + [WEATHER_PAL_STATE_IDLE] = DoNothing, }; // This table specifies which of the gamma shift tables should be @@ -779,7 +779,7 @@ void FadeScreen(u8 mode, s8 delay) if (fadeOut) { - if (useWeatherPal) + if (TRUE || useWeatherPal) // TODO: Can copying Faded to Unfaded before fadeout cause problems ? CpuFastCopy(gPlttBufferFaded, gPlttBufferUnfaded, 0x400); BeginNormalPaletteFade(PALETTES_ALL, delay, 0, 16, fadeColor); @@ -789,7 +789,7 @@ void FadeScreen(u8 mode, s8 delay) { gWeatherPtr->fadeDestColor = fadeColor; if (useWeatherPal) - gWeatherPtr->fadeScreenCounter = 0; + gWeatherPtr->fadeScreenCounter = 0; else BeginNormalPaletteFade(PALETTES_ALL, delay, 16, 0, fadeColor); diff --git a/src/field_weather_effect.c b/src/field_weather_effect.c index db480772c6..d8eff78b7b 100644 --- a/src/field_weather_effect.c +++ b/src/field_weather_effect.c @@ -481,6 +481,7 @@ void Rain_InitVars(void) gWeatherPtr->gammaTargetIndex = gTimeOfDay == TIME_OF_DAY_DAY ? 3 : 0; gWeatherPtr->gammaStepDelay = 20; SetRainStrengthFromSoundEffect(SE_RAIN); + Weather_SetBlendCoeffs(8, 12); // preserve shadow darkness } void Rain_InitAll(void) @@ -774,6 +775,7 @@ void Snow_InitVars(void) gWeatherPtr->gammaStepDelay = 20; gWeatherPtr->targetSnowflakeSpriteCount = 16; gWeatherPtr->snowflakeVisibleCounter = 0; + Weather_SetBlendCoeffs(8, 12); // preserve shadow darkness } void Snow_InitAll(void) @@ -1049,6 +1051,7 @@ void Thunderstorm_InitVars(void) gWeatherPtr->weatherGfxLoaded = FALSE; // duplicate assignment gWeatherPtr->thunderTriggered = FALSE; SetRainStrengthFromSoundEffect(SE_THUNDERSTORM); + Weather_SetBlendCoeffs(8, 12); // preserve shadow darkness } void Thunderstorm_InitAll(void) @@ -1077,6 +1080,7 @@ void Downpour_InitVars(void) gWeatherPtr->gammaStepDelay = 20; gWeatherPtr->weatherGfxLoaded = FALSE; // duplicate assignment SetRainStrengthFromSoundEffect(SE_DOWNPOUR); + Weather_SetBlendCoeffs(8, 12); // preserve shadow darkness } void Downpour_InitAll(void) @@ -1525,8 +1529,8 @@ void Ash_InitVars(void) gWeatherPtr->ashUnused = 20; // Never read if (!gWeatherPtr->ashSpritesCreated) { - Weather_SetBlendCoeffs(0, 16); - SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(64, 63)); // These aren't valid blend coefficients! + Weather_SetBlendCoeffs(0, 12); + // SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(64, 63)); // These aren't valid blend coefficients! } } @@ -1553,7 +1557,7 @@ void Ash_Main(void) if (!gWeatherPtr->ashSpritesCreated) CreateAshSprites(); - Weather_SetTargetBlendCoeffs(16, 0, 1); + Weather_SetTargetBlendCoeffs(10, 12, 1); gWeatherPtr->initStep++; break; case 2: @@ -1574,7 +1578,7 @@ bool8 Ash_Finish(void) switch (gWeatherPtr->finishStep) { case 0: - Weather_SetTargetBlendCoeffs(0, 16, 1); + Weather_SetTargetBlendCoeffs(0, 12, 1); gWeatherPtr->finishStep++; break; case 1: @@ -2243,6 +2247,7 @@ void Shade_InitVars(void) gWeatherPtr->initStep = 0; gWeatherPtr->gammaTargetIndex = 3; gWeatherPtr->gammaStepDelay = 20; + Weather_SetBlendCoeffs(8, 12); // preserve shadow darkness } void Shade_InitAll(void)