diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2019-05-05 12:24:15 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2019-05-05 12:24:15 -0400 |
commit | 7f07bd6607df54aa26590d62c561f15daaaf9671 (patch) | |
tree | 3ed086083289987bc978b328d1e0492cdbeb0e86 /src | |
parent | 2555f72246e68d3e85e22b33f5b440a3fd8559ba (diff) |
blend_palette
Diffstat (limited to 'src')
-rw-r--r-- | src/blend_palette.c | 46 | ||||
-rw-r--r-- | src/seagallop.c | 2 |
2 files changed, 47 insertions, 1 deletions
diff --git a/src/blend_palette.c b/src/blend_palette.c new file mode 100644 index 000000000..8cd65ae4b --- /dev/null +++ b/src/blend_palette.c @@ -0,0 +1,46 @@ +#include "global.h" +#include "blend_palette.h" +#include "palette.h" + +void BlendPalette(u16 palOffset, u16 numEntries, u8 coeff, u16 blendColor) +{ + u16 i; + for (i = 0; i < numEntries; i++) + { + u16 index = i + palOffset; + struct PlttData *data1 = (struct PlttData *)&gPlttBufferUnfaded[index]; + s8 r = data1->r; + s8 g = data1->g; + s8 b = data1->b; + struct PlttData *data2 = (struct PlttData *)&blendColor; + gPlttBufferFaded[index] = ((r + (((data2->r - r) * coeff) >> 4)) << 0) + | ((g + (((data2->g - g) * coeff) >> 4)) << 5) + | ((b + (((data2->b - b) * coeff) >> 4)) << 10); + } +} + +void sub_8045314(u16 * palbuff, u16 blend_pal, u32 coefficient, s32 size) +{ + if (coefficient == 16) + { + while (--size != -1) + { + *palbuff++ = blend_pal; + } + } + else + { + u16 r = (blend_pal >> 0) & 0x1F; + u16 g = (blend_pal >> 5) & 0x1F; + u16 b = (blend_pal >> 10) & 0x1F; + while (--size != -1) + { + u16 r2 = (*palbuff >> 0) & 0x1F; + u16 g2 = (*palbuff >> 5) & 0x1F; + u16 b2 = (*palbuff >> 10) & 0x1F; + *palbuff++ = ((r2 + (((r - r2) * coefficient) >> 4)) << 0) + | ((g2 + (((g - g2) * coefficient) >> 4)) << 5) + | ((b2 + (((b - b2) * coefficient) >> 4)) << 10); + } + } +} diff --git a/src/seagallop.c b/src/seagallop.c index 72813f525..45b0ff3a1 100644 --- a/src/seagallop.c +++ b/src/seagallop.c @@ -320,7 +320,7 @@ static void Task_SeaGallop_3(void) warpInfo = sSeaGallopSpawnTable[gSpecialVar_0x8006]; Overworld_SetWarpDestination(warpInfo[0], warpInfo[1], -1, warpInfo[2], warpInfo[3]); - play_some_sound(); + PlayRainStoppingSoundEffect(); PlaySE(SE_KAIDAN); gUnknown_3005020 = sub_807DF64; warp_in(); |