mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2024-11-16 11:37:40 +01:00
a bit more of contest painting effect
This commit is contained in:
parent
34243bbe1d
commit
55e44b0951
@ -6,465 +6,8 @@
|
||||
.text
|
||||
|
||||
|
||||
thumb_func_start sub_8125CF4
|
||||
sub_8125CF4: @ 8125CF4
|
||||
push {r4-r7,lr}
|
||||
sub sp, 0x14
|
||||
adds r7, r1, 0
|
||||
ldrh r4, [r0]
|
||||
ldrh r5, [r7]
|
||||
lsls r6, r4, 16
|
||||
lsls r0, r5, 16
|
||||
mov r12, r0
|
||||
cmp r4, r5
|
||||
beq _08125D66
|
||||
mov r2, sp
|
||||
movs r3, 0x1F
|
||||
movs r1, 0x1F
|
||||
adds r0, r1, 0
|
||||
ands r0, r4
|
||||
strh r0, [r2]
|
||||
lsrs r0, r6, 21
|
||||
ands r0, r3
|
||||
strh r0, [r2, 0x2]
|
||||
lsrs r0, r6, 26
|
||||
ands r0, r3
|
||||
strh r0, [r2, 0x4]
|
||||
mov r0, sp
|
||||
ands r1, r5
|
||||
strh r1, [r0, 0x6]
|
||||
mov r1, sp
|
||||
mov r2, r12
|
||||
lsrs r0, r2, 21
|
||||
ands r0, r3
|
||||
strh r0, [r1, 0x8]
|
||||
lsrs r0, r2, 26
|
||||
ands r0, r3
|
||||
strh r0, [r1, 0xA]
|
||||
mov r0, sp
|
||||
ldrh r0, [r0]
|
||||
cmp r0, 0x19
|
||||
bls _08125D4E
|
||||
mov r0, sp
|
||||
ldrh r0, [r0, 0x2]
|
||||
cmp r0, 0x19
|
||||
bls _08125D4E
|
||||
mov r0, sp
|
||||
ldrh r0, [r0, 0x4]
|
||||
cmp r0, 0x19
|
||||
bhi _08125D66
|
||||
_08125D4E:
|
||||
mov r0, sp
|
||||
ldrh r0, [r0, 0x6]
|
||||
cmp r0, 0x19
|
||||
bls _08125D6A
|
||||
mov r0, sp
|
||||
ldrh r0, [r0, 0x8]
|
||||
cmp r0, 0x19
|
||||
bls _08125D6A
|
||||
mov r0, sp
|
||||
ldrh r0, [r0, 0xA]
|
||||
cmp r0, 0x19
|
||||
bls _08125D6A
|
||||
_08125D66:
|
||||
ldrh r0, [r7]
|
||||
b _08125E10
|
||||
_08125D6A:
|
||||
movs r4, 0
|
||||
add r6, sp, 0xC
|
||||
mov r7, sp
|
||||
adds r7, 0x6
|
||||
adds r5, r6, 0
|
||||
_08125D74:
|
||||
lsls r2, r4, 1
|
||||
mov r1, sp
|
||||
adds r0, r1, r2
|
||||
adds r1, r7, r2
|
||||
ldrh r3, [r0]
|
||||
ldrh r0, [r1]
|
||||
cmp r3, r0
|
||||
bls _08125D8A
|
||||
adds r1, r5, r2
|
||||
subs r0, r3, r0
|
||||
b _08125D8E
|
||||
_08125D8A:
|
||||
adds r1, r5, r2
|
||||
subs r0, r3
|
||||
_08125D8E:
|
||||
strh r0, [r1]
|
||||
adds r0, r4, 0x1
|
||||
lsls r0, 24
|
||||
lsrs r4, r0, 24
|
||||
cmp r4, 0x2
|
||||
bls _08125D74
|
||||
adds r1, r6, 0
|
||||
ldrh r0, [r1, 0x2]
|
||||
ldrh r3, [r1]
|
||||
cmp r3, r0
|
||||
bcc _08125DB4
|
||||
ldrh r2, [r1, 0x4]
|
||||
cmp r3, r2
|
||||
bcc _08125DAE
|
||||
adds r2, r3, 0
|
||||
b _08125DC8
|
||||
_08125DAE:
|
||||
cmp r0, r2
|
||||
bcs _08125DBA
|
||||
b _08125DC2
|
||||
_08125DB4:
|
||||
ldrh r2, [r1, 0x4]
|
||||
cmp r0, r2
|
||||
bcc _08125DBE
|
||||
_08125DBA:
|
||||
ldrh r2, [r1, 0x2]
|
||||
b _08125DC8
|
||||
_08125DBE:
|
||||
cmp r2, r3
|
||||
bcc _08125DC6
|
||||
_08125DC2:
|
||||
ldrh r2, [r1, 0x4]
|
||||
b _08125DC8
|
||||
_08125DC6:
|
||||
ldrh r2, [r6]
|
||||
_08125DC8:
|
||||
mov r0, sp
|
||||
ldrh r1, [r0, 0x6]
|
||||
lsrs r0, r2, 1
|
||||
movs r6, 0x1F
|
||||
subs r6, r0
|
||||
adds r0, r1, 0
|
||||
muls r0, r6
|
||||
movs r1, 0x1F
|
||||
bl __divsi3
|
||||
adds r5, r0, 0
|
||||
lsls r5, 16
|
||||
lsrs r5, 16
|
||||
mov r0, sp
|
||||
ldrh r0, [r0, 0x8]
|
||||
muls r0, r6
|
||||
movs r1, 0x1F
|
||||
bl __divsi3
|
||||
adds r4, r0, 0
|
||||
lsls r4, 16
|
||||
lsrs r4, 16
|
||||
mov r0, sp
|
||||
ldrh r0, [r0, 0xA]
|
||||
muls r0, r6
|
||||
movs r1, 0x1F
|
||||
bl __divsi3
|
||||
lsls r0, 16
|
||||
lsrs r0, 6
|
||||
lsls r4, 5
|
||||
orrs r0, r4
|
||||
orrs r5, r0
|
||||
lsls r5, 16
|
||||
lsrs r5, 16
|
||||
adds r0, r5, 0
|
||||
_08125E10:
|
||||
add sp, 0x14
|
||||
pop {r4-r7}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_8125CF4
|
||||
|
||||
thumb_func_start sub_8125E18
|
||||
sub_8125E18: @ 8125E18
|
||||
push {r4-r7,lr}
|
||||
mov r7, r10
|
||||
mov r6, r9
|
||||
mov r5, r8
|
||||
push {r5-r7}
|
||||
sub sp, 0x8
|
||||
adds r3, r0, 0
|
||||
mov r10, r1
|
||||
str r2, [sp]
|
||||
ldrh r1, [r3]
|
||||
mov r0, r10
|
||||
ldrh r0, [r0]
|
||||
cmp r1, r0
|
||||
bne _08125E40
|
||||
ldrh r0, [r2]
|
||||
cmp r0, r1
|
||||
bne _08125E40
|
||||
mov r1, r10
|
||||
ldrh r0, [r1]
|
||||
b _08125F28
|
||||
_08125E40:
|
||||
mov r2, r10
|
||||
ldrh r0, [r2]
|
||||
movs r1, 0x1F
|
||||
mov r9, r1
|
||||
movs r4, 0x1F
|
||||
adds r5, r4, 0
|
||||
ands r5, r0
|
||||
lsls r0, 16
|
||||
lsrs r2, r0, 21
|
||||
mov r1, r9
|
||||
ands r1, r2
|
||||
mov r8, r1
|
||||
lsrs r0, 26
|
||||
mov r2, r9
|
||||
ands r2, r0
|
||||
str r2, [sp, 0x4]
|
||||
ldrh r2, [r3]
|
||||
adds r0, r4, 0
|
||||
ands r0, r2
|
||||
lsls r2, 16
|
||||
lsrs r1, r2, 21
|
||||
mov r3, r9
|
||||
ands r1, r3
|
||||
adds r0, r1
|
||||
lsrs r2, 26
|
||||
ands r2, r3
|
||||
adds r0, r2
|
||||
movs r1, 0x3
|
||||
bl __divsi3
|
||||
lsls r0, 16
|
||||
lsrs r7, r0, 16
|
||||
mov r1, r8
|
||||
adds r0, r5, r1
|
||||
ldr r2, [sp, 0x4]
|
||||
adds r0, r2
|
||||
movs r1, 0x3
|
||||
bl __divsi3
|
||||
lsls r0, 16
|
||||
lsrs r6, r0, 16
|
||||
ldr r3, [sp]
|
||||
ldrh r1, [r3]
|
||||
ands r4, r1
|
||||
lsls r1, 16
|
||||
lsrs r0, r1, 21
|
||||
mov r2, r9
|
||||
ands r0, r2
|
||||
adds r4, r0
|
||||
lsrs r1, 26
|
||||
ands r1, r2
|
||||
adds r4, r1
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x3
|
||||
bl __divsi3
|
||||
lsls r0, 16
|
||||
lsrs r1, r0, 16
|
||||
cmp r7, r6
|
||||
bne _08125EC2
|
||||
cmp r1, r6
|
||||
bne _08125EC2
|
||||
mov r3, r10
|
||||
ldrh r0, [r3]
|
||||
b _08125F28
|
||||
_08125EC2:
|
||||
cmp r7, r6
|
||||
bls _08125ECA
|
||||
subs r0, r7, r6
|
||||
b _08125ECC
|
||||
_08125ECA:
|
||||
subs r0, r6, r7
|
||||
_08125ECC:
|
||||
lsls r0, 16
|
||||
lsrs r2, r0, 16
|
||||
cmp r1, r6
|
||||
bls _08125ED8
|
||||
subs r0, r1, r6
|
||||
b _08125EDA
|
||||
_08125ED8:
|
||||
subs r0, r6, r1
|
||||
_08125EDA:
|
||||
lsls r0, 16
|
||||
lsrs r0, 16
|
||||
cmp r2, r0
|
||||
bcc _08125EE4
|
||||
adds r0, r2, 0
|
||||
_08125EE4:
|
||||
lsrs r0, 1
|
||||
movs r4, 0x1F
|
||||
subs r4, r0
|
||||
lsls r4, 16
|
||||
lsrs r4, 16
|
||||
adds r0, r5, 0
|
||||
muls r0, r4
|
||||
movs r1, 0x1F
|
||||
bl __divsi3
|
||||
lsls r0, 16
|
||||
lsrs r5, r0, 16
|
||||
mov r0, r8
|
||||
muls r0, r4
|
||||
movs r1, 0x1F
|
||||
bl __divsi3
|
||||
lsls r0, 16
|
||||
lsrs r0, 16
|
||||
mov r8, r0
|
||||
ldr r1, [sp, 0x4]
|
||||
adds r0, r1, 0
|
||||
muls r0, r4
|
||||
movs r1, 0x1F
|
||||
bl __divsi3
|
||||
lsls r0, 16
|
||||
lsrs r0, 6
|
||||
mov r2, r8
|
||||
lsls r1, r2, 5
|
||||
orrs r0, r1
|
||||
orrs r5, r0
|
||||
lsls r0, r5, 16
|
||||
lsrs r0, 16
|
||||
_08125F28:
|
||||
add sp, 0x8
|
||||
pop {r3-r5}
|
||||
mov r8, r3
|
||||
mov r9, r4
|
||||
mov r10, r5
|
||||
pop {r4-r7}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_8125E18
|
||||
|
||||
thumb_func_start sub_8125F38
|
||||
sub_8125F38: @ 8125F38
|
||||
push {r4-r7,lr}
|
||||
mov r7, r10
|
||||
mov r6, r9
|
||||
mov r5, r8
|
||||
push {r5-r7}
|
||||
sub sp, 0x8
|
||||
adds r3, r0, 0
|
||||
mov r10, r1
|
||||
str r2, [sp]
|
||||
ldrh r1, [r3]
|
||||
mov r0, r10
|
||||
ldrh r0, [r0]
|
||||
cmp r1, r0
|
||||
bne _08125F60
|
||||
ldrh r0, [r2]
|
||||
cmp r0, r1
|
||||
bne _08125F60
|
||||
mov r1, r10
|
||||
ldrh r0, [r1]
|
||||
b _08126046
|
||||
_08125F60:
|
||||
mov r2, r10
|
||||
ldrh r0, [r2]
|
||||
movs r1, 0x1F
|
||||
mov r9, r1
|
||||
movs r4, 0x1F
|
||||
adds r5, r4, 0
|
||||
ands r5, r0
|
||||
lsls r0, 16
|
||||
lsrs r2, r0, 21
|
||||
mov r1, r9
|
||||
ands r1, r2
|
||||
mov r8, r1
|
||||
lsrs r0, 26
|
||||
mov r2, r9
|
||||
ands r2, r0
|
||||
str r2, [sp, 0x4]
|
||||
ldrh r2, [r3]
|
||||
adds r0, r4, 0
|
||||
ands r0, r2
|
||||
lsls r2, 16
|
||||
lsrs r1, r2, 21
|
||||
mov r3, r9
|
||||
ands r1, r3
|
||||
adds r0, r1
|
||||
lsrs r2, 26
|
||||
ands r2, r3
|
||||
adds r0, r2
|
||||
movs r1, 0x3
|
||||
bl __divsi3
|
||||
lsls r0, 16
|
||||
lsrs r7, r0, 16
|
||||
mov r1, r8
|
||||
adds r0, r5, r1
|
||||
ldr r2, [sp, 0x4]
|
||||
adds r0, r2
|
||||
movs r1, 0x3
|
||||
bl __divsi3
|
||||
lsls r0, 16
|
||||
lsrs r6, r0, 16
|
||||
ldr r3, [sp]
|
||||
ldrh r1, [r3]
|
||||
ands r4, r1
|
||||
lsls r1, 16
|
||||
lsrs r0, r1, 21
|
||||
mov r2, r9
|
||||
ands r0, r2
|
||||
adds r4, r0
|
||||
lsrs r1, 26
|
||||
ands r1, r2
|
||||
adds r4, r1
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x3
|
||||
bl __divsi3
|
||||
lsls r0, 16
|
||||
lsrs r1, r0, 16
|
||||
cmp r7, r6
|
||||
bne _08125FE2
|
||||
cmp r1, r6
|
||||
bne _08125FE2
|
||||
mov r3, r10
|
||||
ldrh r0, [r3]
|
||||
b _08126046
|
||||
_08125FE2:
|
||||
cmp r7, r6
|
||||
bls _08125FEA
|
||||
subs r0, r7, r6
|
||||
b _08125FEC
|
||||
_08125FEA:
|
||||
subs r0, r6, r7
|
||||
_08125FEC:
|
||||
lsls r0, 16
|
||||
lsrs r2, r0, 16
|
||||
cmp r1, r6
|
||||
bls _08125FF8
|
||||
subs r0, r1, r6
|
||||
b _08125FFA
|
||||
_08125FF8:
|
||||
subs r0, r6, r1
|
||||
_08125FFA:
|
||||
lsls r0, 16
|
||||
lsrs r0, 16
|
||||
cmp r2, r0
|
||||
bcc _08126004
|
||||
adds r0, r2, 0
|
||||
_08126004:
|
||||
movs r4, 0x1F
|
||||
subs r4, r0
|
||||
lsls r4, 16
|
||||
lsrs r4, 16
|
||||
adds r0, r5, 0
|
||||
muls r0, r4
|
||||
movs r1, 0x1F
|
||||
bl __divsi3
|
||||
lsls r0, 16
|
||||
lsrs r5, r0, 16
|
||||
mov r0, r8
|
||||
muls r0, r4
|
||||
movs r1, 0x1F
|
||||
bl __divsi3
|
||||
lsls r0, 16
|
||||
lsrs r0, 16
|
||||
mov r8, r0
|
||||
ldr r1, [sp, 0x4]
|
||||
adds r0, r1, 0
|
||||
muls r0, r4
|
||||
movs r1, 0x1F
|
||||
bl __divsi3
|
||||
lsls r0, 16
|
||||
lsrs r0, 6
|
||||
mov r2, r8
|
||||
lsls r1, r2, 5
|
||||
orrs r0, r1
|
||||
orrs r5, r0
|
||||
lsls r0, r5, 16
|
||||
lsrs r0, 16
|
||||
_08126046:
|
||||
add sp, 0x8
|
||||
pop {r3-r5}
|
||||
mov r8, r3
|
||||
mov r9, r4
|
||||
mov r10, r5
|
||||
pop {r4-r7}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_8125F38
|
||||
|
||||
thumb_func_start sub_8126058
|
||||
sub_8126058: @ 8126058
|
||||
|
@ -2,6 +2,7 @@
|
||||
#define GUARD_RGB_H
|
||||
|
||||
#define RGB(r, g, b) ((r) | ((g) << 5) | ((b) << 10))
|
||||
#define RGB2(r, g, b) (((b) << 10) | ((g) << 5) | (r))
|
||||
#define _RGB(r, g, b) ((((b) & 0x1F) << 10) + (((g) & 0x1F) << 5) + ((r) & 0x1F))
|
||||
|
||||
#define RGB_BLACK RGB(0, 0, 0)
|
||||
@ -12,6 +13,6 @@
|
||||
#define RGB_YELLOW RGB(31, 31, 0)
|
||||
#define RGB_MAGENTA RGB(31, 0, 31)
|
||||
#define RGB_CYAN RGB(0, 31, 31)
|
||||
#define RGB_WHITEALPHA RGB_WHITE | 0x8000
|
||||
#define RGB_WHITEALPHA (RGB_WHITE | 0x8000)
|
||||
|
||||
#endif // GUARD_RGB_H
|
||||
|
@ -1,7 +1,7 @@
|
||||
#ifndef GUARD_CONTEST_PAINTING_EFFECTS_H
|
||||
#define GUARD_CONTEST_PAINTING_EFFECTS_H
|
||||
|
||||
struct Unk030061A0
|
||||
struct Unk03005E20
|
||||
{
|
||||
u8 var_0;
|
||||
u8 pad1[3];
|
||||
@ -21,8 +21,8 @@ struct Unk030061A0
|
||||
u8 var_1F;
|
||||
};
|
||||
|
||||
void sub_8124F2C(struct Unk030061A0 *);
|
||||
void sub_81261A4(struct Unk030061A0 *);
|
||||
void sub_8126058(struct Unk030061A0 *);
|
||||
void sub_8124F2C(struct Unk03005E20 *);
|
||||
void sub_81261A4(struct Unk03005E20 *);
|
||||
void sub_8126058(struct Unk03005E20 *);
|
||||
|
||||
#endif
|
||||
|
@ -185,6 +185,7 @@ SECTIONS {
|
||||
src/dewford_trend.o(.text);
|
||||
src/heal_location.o(.text);
|
||||
src/region_map.o(.text);
|
||||
src/contest_painting_effects.o(.text);
|
||||
asm/contest_painting_effects.o(.text);
|
||||
src/decoration.o(.text);
|
||||
src/slot_machine.o(.text);
|
||||
|
@ -600,3 +600,172 @@ u16 InvertColor(u16 *color)
|
||||
|
||||
return RGB2(red, green, blue);
|
||||
}
|
||||
|
||||
u16 sub_8125CF4(u16 *a0, u16 *a1)
|
||||
{
|
||||
u16 sp0[2][3];
|
||||
u16 spC[3];
|
||||
u8 r4;
|
||||
u16 r2;
|
||||
u16 r, g, b;
|
||||
|
||||
if (*a0 == *a1)
|
||||
return *a1;
|
||||
|
||||
sp0[0][0] = (*a0 >> 0) & 0x1F;
|
||||
sp0[0][1] = (*a0 >> 5) & 0x1F;
|
||||
sp0[0][2] = (*a0 >> 10) & 0x1F;
|
||||
sp0[1][0] = (*a1 >> 0) & 0x1F;
|
||||
sp0[1][1] = (*a1 >> 5) & 0x1F;
|
||||
sp0[1][2] = (*a1 >> 10) & 0x1F;
|
||||
|
||||
if (sp0[0][0] > 25 && sp0[0][1] > 25 && sp0[0][2] > 25)
|
||||
return *a1;
|
||||
if (sp0[1][0] > 25 && sp0[1][1] > 25 && sp0[1][2] > 25)
|
||||
return *a1;
|
||||
|
||||
for (r4 = 0; r4 < 3; r4++)
|
||||
{
|
||||
if (sp0[0][r4] > sp0[1][r4])
|
||||
spC[r4] = sp0[0][r4] - sp0[1][r4];
|
||||
else
|
||||
spC[r4] = sp0[1][r4] - sp0[0][r4];
|
||||
}
|
||||
|
||||
if (spC[0] >= spC[1])
|
||||
{
|
||||
if (spC[0] >= spC[2])
|
||||
r2 = spC[0];
|
||||
else if (spC[1] >= spC[2])
|
||||
r2 = spC[1];
|
||||
else
|
||||
r2 = spC[2];
|
||||
}
|
||||
else
|
||||
{
|
||||
if (spC[1] >= spC[2])
|
||||
r2 = spC[1];
|
||||
else if (spC[2] >= spC[0])
|
||||
r2 = spC[2];
|
||||
else
|
||||
r2 = spC[0];
|
||||
}
|
||||
|
||||
r = (sp0[1][0] * (31 - r2 / 2)) / 31;
|
||||
g = (sp0[1][1] * (31 - r2 / 2)) / 31;
|
||||
b = (sp0[1][2] * (31 - r2 / 2)) / 31;
|
||||
return RGB2(r, g, b);
|
||||
}
|
||||
|
||||
u16 sub_8125E18(u16 * a0, u16 * a1, u16 * a2)
|
||||
{
|
||||
u16 red, green, blue;
|
||||
u16 avg0, avg1, avg2;
|
||||
u16 diff1, diff2;
|
||||
u32 minimum;
|
||||
u16 factor;
|
||||
|
||||
if (*a0 == *a1 && *a2 == *a1)
|
||||
return *a1;
|
||||
|
||||
red = (*a1 >> 0) & 0x1F;
|
||||
green = (*a1 >> 5) & 0x1F;
|
||||
blue = (*a1 >> 10) & 0x1F;
|
||||
|
||||
avg0 = (((*a0 >> 0) & 0x1F) + ((*a0 >> 5) & 0x1F) + ((*a0 >> 10) & 0x1F)) / 3;
|
||||
avg1 = (((*a1 >> 0) & 0x1F) + ((*a1 >> 5) & 0x1F) + ((*a1 >> 10) & 0x1F)) / 3;
|
||||
avg2 = (((*a2 >> 0) & 0x1F) + ((*a2 >> 5) & 0x1F) + ((*a2 >> 10) & 0x1F)) / 3;
|
||||
|
||||
if (avg0 == avg1 && avg2 == avg1)
|
||||
return *a1;
|
||||
|
||||
if (avg0 > avg1)
|
||||
diff1 = avg0 - avg1;
|
||||
else
|
||||
diff1 = avg1 - avg0;
|
||||
|
||||
if (avg2 > avg1)
|
||||
diff2 = avg2 - avg1;
|
||||
else
|
||||
diff2 = avg1 - avg2;
|
||||
|
||||
if (diff1 >= diff2)
|
||||
minimum = diff1;
|
||||
else
|
||||
minimum = diff2;
|
||||
|
||||
factor = 31 - minimum / 2;
|
||||
red = red * factor / 31;
|
||||
green = green * factor / 31;
|
||||
blue = blue * factor / 31;
|
||||
return RGB2(red, green, blue);
|
||||
}
|
||||
|
||||
u16 sub_8125F38(u16 *a0, u16 *a1, u16 *a2)
|
||||
{
|
||||
u16 red, green, blue;
|
||||
u16 avg0, avg1, avg2;
|
||||
u16 diff1, diff2;
|
||||
u32 minimum;
|
||||
u16 factor;
|
||||
|
||||
if (*a0 == *a1 && *a2 == *a1)
|
||||
return *a1;
|
||||
|
||||
red = (*a1 >> 0) & 0x1F;
|
||||
green = (*a1 >> 5) & 0x1F;
|
||||
blue = (*a1 >> 10) & 0x1F;
|
||||
|
||||
avg0 = (((*a0 >> 0) & 0x1F) + ((*a0 >> 5) & 0x1F) + ((*a0 >> 10) & 0x1F)) / 3;
|
||||
avg1 = (((*a1 >> 0) & 0x1F) + ((*a1 >> 5) & 0x1F) + ((*a1 >> 10) & 0x1F)) / 3;
|
||||
avg2 = (((*a2 >> 0) & 0x1F) + ((*a2 >> 5) & 0x1F) + ((*a2 >> 10) & 0x1F)) / 3;
|
||||
|
||||
if (avg0 == avg1 && avg2 == avg1)
|
||||
return *a1;
|
||||
|
||||
if (avg0 > avg1)
|
||||
diff1 = avg0 - avg1;
|
||||
else
|
||||
diff1 = avg1 - avg0;
|
||||
|
||||
if (avg2 > avg1)
|
||||
diff2 = avg2 - avg1;
|
||||
else
|
||||
diff2 = avg1 - avg2;
|
||||
|
||||
if (diff1 >= diff2)
|
||||
minimum = diff1;
|
||||
else
|
||||
minimum = diff2;
|
||||
|
||||
factor = 31 - minimum;
|
||||
red = red * factor / 31;
|
||||
green = green * factor / 31;
|
||||
blue = blue * factor / 31;
|
||||
return RGB2(red, green, blue);
|
||||
}
|
||||
|
||||
/*
|
||||
void sub_8126058(struct Unk03005E20 *arg0)
|
||||
{
|
||||
u16 i, j, k;
|
||||
u8 r5 = arg0->var_1D >> 3;
|
||||
u8 var_24 = arg0->var_1E >> 3;
|
||||
u16 (*var_2C)[][32] = arg0->var_4;
|
||||
u32 var_28 = arg0->var_10;
|
||||
|
||||
if (arg0->var_16 == 2)
|
||||
{
|
||||
for (i = 0; i < var_24; i++)
|
||||
{
|
||||
for (j = 0; j < r5; j++)
|
||||
{
|
||||
for (k = 0; k < 8; k++)
|
||||
{
|
||||
(*var_2C)[][];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
Loading…
Reference in New Issue
Block a user