Reverted 42d5fe07f
and fixed rain/thunder gamma.
This commit is contained in:
parent
74a90889ac
commit
7d8e63a44b
2 changed files with 17 additions and 15 deletions
|
@ -468,19 +468,23 @@ static void ApplyGammaShift(u8 startPalIndex, u8 numPalettes, s8 gammaIndex)
|
|||
{
|
||||
gammaIndex--;
|
||||
palOffset = startPalIndex * 16;
|
||||
CpuFastCopy(gPlttBufferUnfaded + palOffset, gPlttBufferFaded + palOffset, 32 * numPalettes);
|
||||
numPalettes += startPalIndex;
|
||||
// Thunder gamma-shift looks bad on night-blended palettes, so ignore time blending in some situations
|
||||
if (!(gammaIndex > 3 && gWeatherPtr->currWeather == WEATHER_RAIN_THUNDERSTORM)) {
|
||||
// Create the palette mask
|
||||
u32 palettes = PALETTES_ALL;
|
||||
palettes = (palettes >> startPalIndex) << startPalIndex;
|
||||
palettes = (palettes << (32-numPalettes)) >> (32-numPalettes);
|
||||
UpdatePalettesWithTime(palettes);
|
||||
}
|
||||
curPalIndex = startPalIndex;
|
||||
|
||||
// Loop through the speficied palette range and apply necessary gamma shifts to the colors.
|
||||
// TODO: Optimize this to work with time blending
|
||||
while (curPalIndex < numPalettes)
|
||||
{
|
||||
CpuFastCopy(gPlttBufferUnfaded + palOffset, gPlttBufferFaded + palOffset, 16 * sizeof(u16));
|
||||
UpdatePalettesWithTime(1 << (palOffset >> 4));
|
||||
if (sPaletteGammaTypes[curPalIndex] == GAMMA_NONE)
|
||||
{
|
||||
// No palette change.
|
||||
// CpuFastCopy(gPlttBufferUnfaded + palOffset, gPlttBufferFaded + palOffset, 16 * sizeof(u16));
|
||||
palOffset += 16;
|
||||
}
|
||||
else
|
||||
|
@ -537,11 +541,11 @@ static void ApplyGammaShift(u8 startPalIndex, u8 numPalettes, s8 gammaIndex)
|
|||
else
|
||||
{
|
||||
if (MapHasNaturalLight(gMapHeader.mapType)) { // Time-blend
|
||||
u32 palettes = 0;
|
||||
u32 mask = 1 << startPalIndex;
|
||||
u8 i;
|
||||
for (i = 0; i < numPalettes; i++, mask <<= 1)
|
||||
palettes |= mask;
|
||||
// Create the palette mask
|
||||
u32 palettes = PALETTES_ALL;
|
||||
numPalettes += startPalIndex;
|
||||
palettes = (palettes >> startPalIndex) << startPalIndex;
|
||||
palettes = (palettes << (32-numPalettes)) >> (32-numPalettes);
|
||||
UpdatePalettesWithTime(palettes);
|
||||
} else { // copy
|
||||
CpuFastCopy(gPlttBufferUnfaded + startPalIndex * 16, gPlttBufferFaded + startPalIndex * 16, numPalettes * 16 * sizeof(u16));
|
||||
|
|
|
@ -483,7 +483,7 @@ void Rain_InitVars(void)
|
|||
gWeatherPtr->rainSpriteVisibleDelay = 8;
|
||||
gWeatherPtr->isDownpour = FALSE;
|
||||
gWeatherPtr->targetRainSpriteCount = 10;
|
||||
gWeatherPtr->gammaTargetIndex = gTimeOfDay == TIME_OF_DAY_DAY ? 3 : 0;
|
||||
gWeatherPtr->gammaTargetIndex = 3;
|
||||
gWeatherPtr->gammaStepDelay = 20;
|
||||
SetRainStrengthFromSoundEffect(SE_RAIN);
|
||||
Weather_SetBlendCoeffs(8, 12); // preserve shadow darkness
|
||||
|
@ -1053,7 +1053,7 @@ void Thunderstorm_InitVars(void)
|
|||
gWeatherPtr->rainSpriteVisibleDelay = 4;
|
||||
gWeatherPtr->isDownpour = FALSE;
|
||||
gWeatherPtr->targetRainSpriteCount = 16;
|
||||
gWeatherPtr->gammaTargetIndex = gTimeOfDay == TIME_OF_DAY_DAY ? 3 : 0;
|
||||
gWeatherPtr->gammaTargetIndex = 3;
|
||||
gWeatherPtr->gammaStepDelay = 20;
|
||||
gWeatherPtr->weatherGfxLoaded = FALSE; // duplicate assignment
|
||||
gWeatherPtr->thunderTriggered = FALSE;
|
||||
|
@ -1154,8 +1154,6 @@ void Thunderstorm_Main(void)
|
|||
if (--gWeatherPtr->thunderDelay == 0)
|
||||
{
|
||||
ApplyWeatherGammaShiftIfIdle(3);
|
||||
if (gTimeOfDay != TIME_OF_DAY_DAY)
|
||||
UpdatePalettesWithTime(0xFFFFFFFF);
|
||||
gWeatherPtr->thunderAllowEnd = TRUE;
|
||||
if (--gWeatherPtr->thunderShortRetries != 0)
|
||||
{
|
||||
|
@ -1196,7 +1194,7 @@ void Thunderstorm_Main(void)
|
|||
case TSTORM_STATE_FADE_THUNDER_LONG:
|
||||
if (--gWeatherPtr->thunderDelay == 0)
|
||||
{
|
||||
gTimeOfDay == TIME_OF_DAY_DAY ? sub_80ABC7C(19, 3, 5) : UpdatePalettesWithTime(0xFFFFFFFF);
|
||||
sub_80ABC7C(19, 3, 5);
|
||||
gWeatherPtr->initStep++;
|
||||
}
|
||||
break;
|
||||
|
|
Loading…
Reference in a new issue