through sub_80C4BB8
This commit is contained in:
@@ -5,420 +5,6 @@
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_80C48BC
|
||||
sub_80C48BC: @ 80C48BC
|
||||
push {r4-r7,lr}
|
||||
lsls r0, 24
|
||||
lsrs r4, r0, 24
|
||||
lsls r1, 24
|
||||
lsrs r1, 24
|
||||
lsls r2, 24
|
||||
lsrs r5, r2, 24
|
||||
cmp r1, 0x19
|
||||
bne _080C4920
|
||||
movs r3, 0
|
||||
ldr r0, _080C491C @ =gUnknown_20399EC
|
||||
mov r12, r0
|
||||
movs r1, 0x1
|
||||
adds r0, r5, 0
|
||||
ands r0, r1
|
||||
lsls r5, r0, 2
|
||||
movs r6, 0x5
|
||||
negs r6, r6
|
||||
_080C48E0:
|
||||
mov r7, r12
|
||||
ldr r1, [r7]
|
||||
lsls r2, r3, 4
|
||||
adds r0, r1, r2
|
||||
movs r7, 0xB5
|
||||
lsls r7, 2
|
||||
adds r0, r7
|
||||
ldrb r0, [r0]
|
||||
cmp r0, r4
|
||||
beq _080C48F8
|
||||
cmp r4, 0xFF
|
||||
bne _080C490E
|
||||
_080C48F8:
|
||||
movs r7, 0xB6
|
||||
lsls r7, 2
|
||||
adds r0, r1, r7
|
||||
adds r0, r2
|
||||
ldr r1, [r0]
|
||||
adds r1, 0x3E
|
||||
ldrb r2, [r1]
|
||||
adds r0, r6, 0
|
||||
ands r0, r2
|
||||
orrs r0, r5
|
||||
strb r0, [r1]
|
||||
_080C490E:
|
||||
adds r0, r3, 0x1
|
||||
lsls r0, 24
|
||||
lsrs r3, r0, 24
|
||||
cmp r3, 0x18
|
||||
bls _080C48E0
|
||||
b _080C4954
|
||||
.align 2, 0
|
||||
_080C491C: .4byte gUnknown_20399EC
|
||||
_080C4920:
|
||||
ldr r0, _080C495C @ =gUnknown_20399EC
|
||||
ldr r2, [r0]
|
||||
lsls r1, 4
|
||||
adds r0, r2, r1
|
||||
movs r3, 0xB5
|
||||
lsls r3, 2
|
||||
adds r0, r3
|
||||
ldrb r0, [r0]
|
||||
cmp r0, r4
|
||||
bne _080C4954
|
||||
movs r7, 0xB6
|
||||
lsls r7, 2
|
||||
adds r0, r2, r7
|
||||
adds r0, r1
|
||||
ldr r2, [r0]
|
||||
adds r2, 0x3E
|
||||
movs r0, 0x1
|
||||
adds r1, r5, 0
|
||||
ands r1, r0
|
||||
lsls r1, 2
|
||||
ldrb r3, [r2]
|
||||
movs r0, 0x5
|
||||
negs r0, r0
|
||||
ands r0, r3
|
||||
orrs r0, r1
|
||||
strb r0, [r2]
|
||||
_080C4954:
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080C495C: .4byte gUnknown_20399EC
|
||||
thumb_func_end sub_80C48BC
|
||||
|
||||
thumb_func_start sub_80C4960
|
||||
sub_80C4960: @ 80C4960
|
||||
push {r4-r7,lr}
|
||||
lsls r0, 24
|
||||
lsrs r4, r0, 24
|
||||
lsls r1, 24
|
||||
lsrs r1, 24
|
||||
lsls r2, 24
|
||||
lsrs r5, r2, 24
|
||||
cmp r1, 0x19
|
||||
bne _080C49C4
|
||||
movs r3, 0
|
||||
ldr r0, _080C49C0 @ =gUnknown_20399EC
|
||||
mov r12, r0
|
||||
movs r1, 0x1
|
||||
adds r0, r5, 0
|
||||
ands r0, r1
|
||||
lsls r5, r0, 2
|
||||
movs r6, 0x5
|
||||
negs r6, r6
|
||||
_080C4984:
|
||||
mov r7, r12
|
||||
ldr r1, [r7]
|
||||
lsls r2, r3, 4
|
||||
adds r0, r1, r2
|
||||
movs r7, 0xA2
|
||||
lsls r7, 1
|
||||
adds r0, r7
|
||||
ldrb r0, [r0]
|
||||
cmp r0, r4
|
||||
beq _080C499C
|
||||
cmp r4, 0xFF
|
||||
bne _080C49B2
|
||||
_080C499C:
|
||||
movs r7, 0xA4
|
||||
lsls r7, 1
|
||||
adds r0, r1, r7
|
||||
adds r0, r2
|
||||
ldr r1, [r0]
|
||||
adds r1, 0x3E
|
||||
ldrb r2, [r1]
|
||||
adds r0, r6, 0
|
||||
ands r0, r2
|
||||
orrs r0, r5
|
||||
strb r0, [r1]
|
||||
_080C49B2:
|
||||
adds r0, r3, 0x1
|
||||
lsls r0, 24
|
||||
lsrs r3, r0, 24
|
||||
cmp r3, 0x18
|
||||
bls _080C4984
|
||||
b _080C49F8
|
||||
.align 2, 0
|
||||
_080C49C0: .4byte gUnknown_20399EC
|
||||
_080C49C4:
|
||||
ldr r0, _080C4A00 @ =gUnknown_20399EC
|
||||
ldr r2, [r0]
|
||||
lsls r1, 4
|
||||
adds r0, r2, r1
|
||||
movs r3, 0xA2
|
||||
lsls r3, 1
|
||||
adds r0, r3
|
||||
ldrb r0, [r0]
|
||||
cmp r0, r4
|
||||
beq _080C49F8
|
||||
movs r7, 0xA4
|
||||
lsls r7, 1
|
||||
adds r0, r2, r7
|
||||
adds r0, r1
|
||||
ldr r2, [r0]
|
||||
adds r2, 0x3E
|
||||
movs r0, 0x1
|
||||
adds r1, r5, 0
|
||||
ands r1, r0
|
||||
lsls r1, 2
|
||||
ldrb r3, [r2]
|
||||
movs r0, 0x5
|
||||
negs r0, r0
|
||||
ands r0, r3
|
||||
orrs r0, r1
|
||||
strb r0, [r2]
|
||||
_080C49F8:
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080C4A00: .4byte gUnknown_20399EC
|
||||
thumb_func_end sub_80C4960
|
||||
|
||||
thumb_func_start sub_80C4A04
|
||||
sub_80C4A04: @ 80C4A04
|
||||
push {r4-r6,lr}
|
||||
movs r5, 0
|
||||
ldr r6, _080C4AA4 @ =gUnknown_20399EC
|
||||
_080C4A0A:
|
||||
ldr r0, [r6]
|
||||
lsls r4, r5, 4
|
||||
movs r1, 0xB6
|
||||
lsls r1, 2
|
||||
adds r0, r1
|
||||
adds r0, r4
|
||||
ldr r0, [r0]
|
||||
cmp r0, 0
|
||||
beq _080C4A3E
|
||||
bl DestroySprite
|
||||
ldr r0, [r6]
|
||||
adds r0, r4
|
||||
movs r1, 0xB7
|
||||
lsls r1, 2
|
||||
adds r0, r1
|
||||
ldrh r0, [r0]
|
||||
bl FreeSpriteTilesByTag
|
||||
ldr r0, [r6]
|
||||
adds r0, r4
|
||||
ldr r1, _080C4AA8 @ =0x000002de
|
||||
adds r0, r1
|
||||
ldrh r0, [r0]
|
||||
bl FreeSpritePaletteByTag
|
||||
_080C4A3E:
|
||||
adds r0, r5, 0x1
|
||||
lsls r0, 24
|
||||
lsrs r5, r0, 24
|
||||
cmp r5, 0x18
|
||||
bls _080C4A0A
|
||||
movs r5, 0
|
||||
ldr r6, _080C4AA4 @ =gUnknown_20399EC
|
||||
_080C4A4C:
|
||||
ldr r0, [r6]
|
||||
lsls r4, r5, 4
|
||||
movs r1, 0xA4
|
||||
lsls r1, 1
|
||||
adds r0, r1
|
||||
adds r0, r4
|
||||
ldr r0, [r0]
|
||||
cmp r0, 0
|
||||
beq _080C4A82
|
||||
bl DestroySprite
|
||||
ldr r0, [r6]
|
||||
adds r0, r4
|
||||
movs r1, 0xA6
|
||||
lsls r1, 1
|
||||
adds r0, r1
|
||||
ldrh r0, [r0]
|
||||
bl FreeSpriteTilesByTag
|
||||
ldr r0, [r6]
|
||||
adds r0, r4
|
||||
movs r1, 0xA7
|
||||
lsls r1, 1
|
||||
adds r0, r1
|
||||
ldrh r0, [r0]
|
||||
bl FreeSpritePaletteByTag
|
||||
_080C4A82:
|
||||
adds r0, r5, 0x1
|
||||
lsls r0, 24
|
||||
lsrs r5, r0, 24
|
||||
cmp r5, 0x18
|
||||
bls _080C4A4C
|
||||
ldr r4, _080C4AA4 @ =gUnknown_20399EC
|
||||
ldr r0, [r4]
|
||||
cmp r0, 0
|
||||
beq _080C4A9C
|
||||
bl Free
|
||||
movs r0, 0
|
||||
str r0, [r4]
|
||||
_080C4A9C:
|
||||
pop {r4-r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080C4AA4: .4byte gUnknown_20399EC
|
||||
_080C4AA8: .4byte 0x000002de
|
||||
thumb_func_end sub_80C4A04
|
||||
|
||||
thumb_func_start sub_80C4AAC
|
||||
sub_80C4AAC: @ 80C4AAC
|
||||
push {r4,lr}
|
||||
lsls r0, 24
|
||||
ldr r1, _080C4B24 @ =gUnknown_20399F0
|
||||
lsrs r0, 22
|
||||
adds r4, r0, r1
|
||||
ldr r0, [r4]
|
||||
cmp r0, 0
|
||||
bne _080C4B28
|
||||
movs r0, 0x14
|
||||
bl AllocZeroed
|
||||
str r0, [r4]
|
||||
movs r0, 0x50
|
||||
bl GetGpuReg
|
||||
ldr r1, [r4]
|
||||
strh r0, [r1]
|
||||
movs r0, 0x54
|
||||
bl GetGpuReg
|
||||
ldr r1, [r4]
|
||||
strh r0, [r1, 0x2]
|
||||
movs r0, 0x52
|
||||
bl GetGpuReg
|
||||
ldr r1, [r4]
|
||||
strh r0, [r1, 0x4]
|
||||
movs r0, 0x48
|
||||
bl GetGpuReg
|
||||
ldr r1, [r4]
|
||||
strh r0, [r1, 0x6]
|
||||
movs r0, 0x4A
|
||||
bl GetGpuReg
|
||||
ldr r1, [r4]
|
||||
strh r0, [r1, 0x8]
|
||||
movs r0, 0x40
|
||||
bl GetGpuReg
|
||||
ldr r1, [r4]
|
||||
strh r0, [r1, 0xA]
|
||||
movs r0, 0x42
|
||||
bl GetGpuReg
|
||||
ldr r1, [r4]
|
||||
strh r0, [r1, 0xC]
|
||||
movs r0, 0x44
|
||||
bl GetGpuReg
|
||||
ldr r1, [r4]
|
||||
strh r0, [r1, 0xE]
|
||||
movs r0, 0x46
|
||||
bl GetGpuReg
|
||||
ldr r1, [r4]
|
||||
strh r0, [r1, 0x10]
|
||||
movs r0, 0x1
|
||||
b _080C4B2A
|
||||
.align 2, 0
|
||||
_080C4B24: .4byte gUnknown_20399F0
|
||||
_080C4B28:
|
||||
movs r0, 0
|
||||
_080C4B2A:
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_80C4AAC
|
||||
|
||||
thumb_func_start sub_80C4B30
|
||||
sub_80C4B30: @ 80C4B30
|
||||
push {r4,lr}
|
||||
lsls r0, 24
|
||||
ldr r1, _080C4B44 @ =gUnknown_20399F0
|
||||
lsrs r0, 22
|
||||
adds r4, r0, r1
|
||||
ldr r0, [r4]
|
||||
cmp r0, 0
|
||||
bne _080C4B48
|
||||
movs r0, 0
|
||||
b _080C4BB0
|
||||
.align 2, 0
|
||||
_080C4B44: .4byte gUnknown_20399F0
|
||||
_080C4B48:
|
||||
ldrh r1, [r0]
|
||||
movs r0, 0x50
|
||||
bl SetGpuReg
|
||||
ldr r0, [r4]
|
||||
ldrh r1, [r0, 0x2]
|
||||
movs r0, 0x54
|
||||
bl SetGpuReg
|
||||
ldr r0, [r4]
|
||||
ldrh r1, [r0, 0x4]
|
||||
movs r0, 0x52
|
||||
bl SetGpuReg
|
||||
ldr r0, [r4]
|
||||
ldrh r1, [r0, 0x6]
|
||||
movs r0, 0x48
|
||||
bl SetGpuReg
|
||||
ldr r0, [r4]
|
||||
ldrh r1, [r0, 0x8]
|
||||
movs r0, 0x4A
|
||||
bl SetGpuReg
|
||||
ldr r0, [r4]
|
||||
ldrh r1, [r0, 0xA]
|
||||
movs r0, 0x40
|
||||
bl SetGpuReg
|
||||
ldr r0, [r4]
|
||||
ldrh r1, [r0, 0xC]
|
||||
movs r0, 0x42
|
||||
bl SetGpuReg
|
||||
ldr r0, [r4]
|
||||
ldrh r1, [r0, 0xE]
|
||||
movs r0, 0x44
|
||||
bl SetGpuReg
|
||||
ldr r0, [r4]
|
||||
ldrh r1, [r0, 0x10]
|
||||
movs r0, 0x46
|
||||
bl SetGpuReg
|
||||
ldr r0, [r4]
|
||||
cmp r0, 0
|
||||
beq _080C4BAE
|
||||
bl Free
|
||||
movs r0, 0
|
||||
str r0, [r4]
|
||||
_080C4BAE:
|
||||
movs r0, 0x1
|
||||
_080C4BB0:
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_80C4B30
|
||||
|
||||
thumb_func_start sub_80C4BB8
|
||||
sub_80C4BB8: @ 80C4BB8
|
||||
push {r4-r6,lr}
|
||||
movs r5, 0
|
||||
ldr r6, _080C4BE0 @ =gUnknown_20399F0
|
||||
_080C4BBE:
|
||||
lsls r0, r5, 2
|
||||
adds r4, r0, r6
|
||||
ldr r0, [r4]
|
||||
cmp r0, 0
|
||||
beq _080C4BD0
|
||||
bl Free
|
||||
movs r0, 0
|
||||
str r0, [r4]
|
||||
_080C4BD0:
|
||||
adds r0, r5, 0x1
|
||||
lsls r0, 24
|
||||
lsrs r5, r0, 24
|
||||
cmp r5, 0x2
|
||||
bls _080C4BBE
|
||||
pop {r4-r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080C4BE0: .4byte gUnknown_20399F0
|
||||
thumb_func_end sub_80C4BB8
|
||||
|
||||
thumb_func_start sub_80C4BE4
|
||||
sub_80C4BE4: @ 80C4BE4
|
||||
push {lr}
|
||||
|
||||
+148
-32
@@ -173,21 +173,21 @@ struct UnkStruct_20399E8
|
||||
u16 field_0C[0x40];
|
||||
}; // size = 0x8C
|
||||
|
||||
struct UnkStruct_20399EC_2D4
|
||||
struct UnkStruct_20399EC_140
|
||||
{
|
||||
u8 field_0;
|
||||
struct Sprite * field_4;
|
||||
u8 filler_8[8];
|
||||
u8 filler_0[4];
|
||||
u8 field_4;
|
||||
struct Sprite * field_8;
|
||||
u16 field_C;
|
||||
u16 field_E;
|
||||
};
|
||||
|
||||
struct UnkStruct_20399EC
|
||||
{
|
||||
u8 field_000[0x40];
|
||||
u8 field_040[0x100];
|
||||
u8 field_140[4];
|
||||
struct UnkStruct_20399EC_2D4 field_144[25];
|
||||
struct UnkStruct_20399EC_2D4 field_2D4[24];
|
||||
u8 field_454[0xC];
|
||||
struct UnkStruct_20399EC_140 field_140[25];
|
||||
struct UnkStruct_20399EC_140 field_2D0[25];
|
||||
u8 field_460;
|
||||
u8 filler_461[2];
|
||||
u8 field_463;
|
||||
@@ -195,6 +195,19 @@ struct UnkStruct_20399EC
|
||||
TaskFunc field_468;
|
||||
}; // size = 0x46C
|
||||
|
||||
struct UnkStruct_20399F0
|
||||
{
|
||||
u16 bldcnt;
|
||||
u16 bldy;
|
||||
u16 bldalpha;
|
||||
u16 winin;
|
||||
u16 winout;
|
||||
u16 win0h;
|
||||
u16 win1h;
|
||||
u16 win0v;
|
||||
u16 win1v;
|
||||
};
|
||||
|
||||
EWRAM_DATA struct UnkStruct_20399D4 * gUnknown_20399D4 = NULL;
|
||||
EWRAM_DATA struct UnkStruct_20399D8 * gUnknown_20399D8 = NULL;
|
||||
EWRAM_DATA struct UnkStruct_20399DC * gUnknown_20399DC = NULL;
|
||||
@@ -202,7 +215,7 @@ EWRAM_DATA struct UnkStruct_20399E0 * gUnknown_20399E0 = NULL;
|
||||
EWRAM_DATA struct UnkStruct_20399E4 * gUnknown_20399E4 = NULL;
|
||||
EWRAM_DATA struct UnkStruct_20399E8 * gUnknown_20399E8 = NULL;
|
||||
EWRAM_DATA struct UnkStruct_20399EC * gUnknown_20399EC = NULL;
|
||||
EWRAM_DATA void * gUnknown_20399F0[3] = {};
|
||||
EWRAM_DATA struct UnkStruct_20399F0 * gUnknown_20399F0[3] = {};
|
||||
EWRAM_DATA void * gUnknown_20399FC = NULL;
|
||||
|
||||
static void sub_80BFFD0(void);
|
||||
@@ -284,11 +297,11 @@ void sub_80C440C(u8 taskId);
|
||||
void sub_80C44E4(u8 taskId);
|
||||
void sub_80C4750(void);
|
||||
void sub_80C47F0(void);
|
||||
void sub_80C48BC(u8 a0, u8 a1, u8 a2);
|
||||
void sub_80C4960(u8 a0, u8 a1, u8 a2);
|
||||
void sub_80C48BC(u8 a0, u8 a1, bool8 a2);
|
||||
void sub_80C4960(u8 a0, u8 a1, bool8 a2);
|
||||
void sub_80C4A04(void);
|
||||
void sub_80C4B30(u8 a0);
|
||||
void sub_80C4AAC(u8 a0);
|
||||
bool8 sub_80C4AAC(u8 a0);
|
||||
bool8 sub_80C4B30(u8 a0);
|
||||
void sub_80C4BE4(void);
|
||||
void sub_80C4C2C(u8 a0, u16 a1, u16 a2);
|
||||
void sub_80C4C48(u16 a0);
|
||||
@@ -636,8 +649,8 @@ void sub_80C04E4(u8 taskId)
|
||||
sub_80C4ED0(FALSE);
|
||||
sub_80C4324(FALSE);
|
||||
sub_80C3154(FALSE);
|
||||
sub_80C48BC(sub_80C0E20(), 25, 0);
|
||||
sub_80C4960(sub_80C0E20(), 25, 0);
|
||||
sub_80C48BC(sub_80C0E20(), 25, FALSE);
|
||||
sub_80C4960(sub_80C0E20(), 25, FALSE);
|
||||
}
|
||||
gUnknown_20399D4->field_47A0++;
|
||||
break;
|
||||
@@ -1109,8 +1122,8 @@ void sub_80C1098(u8 taskId)
|
||||
if (sub_80C0E34() == gUnknown_20399D8->field_1CCA)
|
||||
{
|
||||
sub_80C4324(FALSE);
|
||||
sub_80C48BC(gUnknown_20399D8->field_1CCA, 25, 0);
|
||||
sub_80C4960(gUnknown_20399D8->field_1CCA, 25, 0);
|
||||
sub_80C48BC(gUnknown_20399D8->field_1CCA, 25, FALSE);
|
||||
sub_80C4960(gUnknown_20399D8->field_1CCA, 25, FALSE);
|
||||
}
|
||||
gUnknown_20399D8->field_1CC8++;
|
||||
}
|
||||
@@ -1243,8 +1256,8 @@ bool8 sub_80C1478(void)
|
||||
gUnknown_20399D8->field_1CCA = gUnknown_20399D8->field_1CCB;
|
||||
sub_80C0CC8(0, gUnknown_20399D4->field_0026[gUnknown_20399D8->field_1CCA]);
|
||||
CopyBgTilemapBufferToVram(0);
|
||||
sub_80C48BC(255, 25, 1);
|
||||
sub_80C4960(255, 25, 1);
|
||||
sub_80C48BC(255, 25, TRUE);
|
||||
sub_80C4960(255, 25, TRUE);
|
||||
return TRUE;
|
||||
}
|
||||
if (r6)
|
||||
@@ -1253,10 +1266,10 @@ bool8 sub_80C1478(void)
|
||||
sub_80C4E74(gUnknown_8418EB0);
|
||||
CopyBgTilemapBufferToVram(0);
|
||||
CopyBgTilemapBufferToVram(3);
|
||||
sub_80C48BC(255, 25, 1);
|
||||
sub_80C4960(255, 25, 1);
|
||||
sub_80C48BC(gUnknown_20399D8->field_1CCA, 25, 0);
|
||||
sub_80C4960(gUnknown_20399D8->field_1CCA, 25, 0);
|
||||
sub_80C48BC(255, 25, TRUE);
|
||||
sub_80C4960(255, 25, TRUE);
|
||||
sub_80C48BC(gUnknown_20399D8->field_1CCA, 25, FALSE);
|
||||
sub_80C4960(gUnknown_20399D8->field_1CCA, 25, FALSE);
|
||||
}
|
||||
if (gUnknown_20399D8->field_1CCA != sub_80C0E34())
|
||||
sub_80C4324(TRUE);
|
||||
@@ -1828,8 +1841,8 @@ void sub_80C267C(u8 taskId)
|
||||
gUnknown_20399E0->field_CD0 = 15;
|
||||
sub_80C253C();
|
||||
sub_80C0A88(0);
|
||||
sub_80C48BC(sub_80C0E20(), 25, 0);
|
||||
sub_80C4960(sub_80C0E20(), 25, 0);
|
||||
sub_80C48BC(sub_80C0E20(), 25, FALSE);
|
||||
sub_80C4960(sub_80C0E20(), 25, FALSE);
|
||||
gUnknown_20399E0->field_CCC++;
|
||||
break;
|
||||
case 9:
|
||||
@@ -2002,8 +2015,8 @@ void sub_80C2C7C(u8 taskId)
|
||||
sub_80C22C4(6, FALSE);
|
||||
sub_80C4324(TRUE);
|
||||
sub_80C3154(TRUE);
|
||||
sub_80C4960(255, 25, 1);
|
||||
sub_80C48BC(255, 25, 1);
|
||||
sub_80C4960(255, 25, TRUE);
|
||||
sub_80C48BC(255, 25, TRUE);
|
||||
gUnknown_20399E0->field_CCE = 0;
|
||||
gUnknown_20399E0->field_CD0 = 0;
|
||||
gUnknown_20399E0->field_CCF++;
|
||||
@@ -2935,9 +2948,9 @@ void sub_80C450C(u8 a0, u8 a1, u16 a2, u16 a3, u8 a4, u8 a5)
|
||||
LoadSpriteSheet(&spriteSheet);
|
||||
LoadSpritePalette(&spritePalette);
|
||||
spriteId = CreateSprite(&template, 8 * a2 + 36, 8 * a3 + 36, 1);
|
||||
gUnknown_20399EC->field_2D4[a1].field_4 = &gSprites[spriteId];
|
||||
gUnknown_20399EC->field_2D0[a1].field_8 = &gSprites[spriteId];
|
||||
gSprites[spriteId].invisible = TRUE;
|
||||
gUnknown_20399EC->field_2D4[a1].field_0 = a0;
|
||||
gUnknown_20399EC->field_2D0[a1].field_4 = a0;
|
||||
}
|
||||
|
||||
void sub_80C4614(u8 a0, u8 a1, u16 a2, u16 a3, u8 a4, u8 a5)
|
||||
@@ -2970,9 +2983,9 @@ void sub_80C4614(u8 a0, u8 a1, u16 a2, u16 a3, u8 a4, u8 a5)
|
||||
if ((sub_80C35DC(r4) == 2 || sub_80C35DC(r4) == 3) && r4 != MAPSEC_ROUTE_10_FLYDUP)
|
||||
r7 = 2;
|
||||
spriteId = CreateSprite(&template, 8 * a2 + 36 + r7, 8 * a3 + 36 + r7, 3);
|
||||
gUnknown_20399EC->field_144[a1].field_4 = &gSprites[spriteId];
|
||||
gUnknown_20399EC->field_140[a1].field_8 = &gSprites[spriteId];
|
||||
gSprites[spriteId].invisible = TRUE;
|
||||
gUnknown_20399EC->field_144[a1].field_0 = a0;
|
||||
gUnknown_20399EC->field_140[a1].field_4 = a0;
|
||||
}
|
||||
|
||||
void sub_80C4750(void)
|
||||
@@ -3017,10 +3030,113 @@ void sub_80C47F0(void)
|
||||
sub_80C4614(i, r6, k, j, r6 + 35, 10);
|
||||
if (sub_80C3878(mapsec) != 2)
|
||||
{
|
||||
StartSpriteAnim(gUnknown_20399EC->field_144[r6].field_4, 1);
|
||||
StartSpriteAnim(gUnknown_20399EC->field_140[r6].field_8, 1);
|
||||
}
|
||||
r6++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void sub_80C48BC(u8 a0, u8 a1, bool8 a2)
|
||||
{
|
||||
u8 i;
|
||||
if (a1 == 25)
|
||||
{
|
||||
for (i = 0; i < 25; i++)
|
||||
{
|
||||
if (gUnknown_20399EC->field_2D0[i].field_4 == a0 || a0 == 0xFF)
|
||||
gUnknown_20399EC->field_2D0[i].field_8->invisible = a2;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (gUnknown_20399EC->field_2D0[a1].field_4 == a0)
|
||||
gUnknown_20399EC->field_2D0[a1].field_8->invisible = a2;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_80C4960(u8 a0, u8 a1, bool8 a2)
|
||||
{
|
||||
u8 i;
|
||||
if (a1 == 25)
|
||||
{
|
||||
for (i = 0; i < 25; i++)
|
||||
{
|
||||
if (gUnknown_20399EC->field_140[i].field_4 == a0 || a0 == 0xFF)
|
||||
gUnknown_20399EC->field_140[i].field_8->invisible = a2;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (gUnknown_20399EC->field_140[a1].field_4 != a0)
|
||||
gUnknown_20399EC->field_140[a1].field_8->invisible = a2;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_80C4A04(void)
|
||||
{
|
||||
u8 i;
|
||||
for (i = 0; i < 25; i++)
|
||||
{
|
||||
if (gUnknown_20399EC->field_2D0[i].field_8 != NULL)
|
||||
{
|
||||
DestroySprite(gUnknown_20399EC->field_2D0[i].field_8);
|
||||
FreeSpriteTilesByTag(gUnknown_20399EC->field_2D0[i].field_C);
|
||||
FreeSpritePaletteByTag(gUnknown_20399EC->field_2D0[i].field_E);
|
||||
}
|
||||
}
|
||||
for (i = 0; i < 25; i++)
|
||||
{
|
||||
if (gUnknown_20399EC->field_140[i].field_8 != NULL)
|
||||
{
|
||||
DestroySprite(gUnknown_20399EC->field_140[i].field_8);
|
||||
FreeSpriteTilesByTag(gUnknown_20399EC->field_140[i].field_C);
|
||||
FreeSpritePaletteByTag(gUnknown_20399EC->field_140[i].field_E);
|
||||
}
|
||||
}
|
||||
FREE_IF_NOT_NULL(gUnknown_20399EC);
|
||||
}
|
||||
|
||||
bool8 sub_80C4AAC(u8 a0)
|
||||
{
|
||||
if (gUnknown_20399F0[a0] != NULL)
|
||||
return FALSE;
|
||||
gUnknown_20399F0[a0] = AllocZeroed(sizeof(struct UnkStruct_20399F0));
|
||||
gUnknown_20399F0[a0]->bldcnt = GetGpuReg(REG_OFFSET_BLDCNT);
|
||||
gUnknown_20399F0[a0]->bldy = GetGpuReg(REG_OFFSET_BLDY);
|
||||
gUnknown_20399F0[a0]->bldalpha = GetGpuReg(REG_OFFSET_BLDALPHA);
|
||||
gUnknown_20399F0[a0]->winin = GetGpuReg(REG_OFFSET_WININ);
|
||||
gUnknown_20399F0[a0]->winout = GetGpuReg(REG_OFFSET_WINOUT);
|
||||
gUnknown_20399F0[a0]->win0h = GetGpuReg(REG_OFFSET_WIN0H);
|
||||
gUnknown_20399F0[a0]->win1h = GetGpuReg(REG_OFFSET_WIN1H);
|
||||
gUnknown_20399F0[a0]->win0v = GetGpuReg(REG_OFFSET_WIN0V);
|
||||
gUnknown_20399F0[a0]->win1v = GetGpuReg(REG_OFFSET_WIN1V);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 sub_80C4B30(u8 a0)
|
||||
{
|
||||
if (gUnknown_20399F0[a0] == NULL)
|
||||
return FALSE;
|
||||
SetGpuReg(REG_OFFSET_BLDCNT, gUnknown_20399F0[a0]->bldcnt);
|
||||
SetGpuReg(REG_OFFSET_BLDY, gUnknown_20399F0[a0]->bldy);
|
||||
SetGpuReg(REG_OFFSET_BLDALPHA, gUnknown_20399F0[a0]->bldalpha);
|
||||
SetGpuReg(REG_OFFSET_WININ, gUnknown_20399F0[a0]->winin);
|
||||
SetGpuReg(REG_OFFSET_WINOUT, gUnknown_20399F0[a0]->winout);
|
||||
SetGpuReg(REG_OFFSET_WIN0H, gUnknown_20399F0[a0]->win0h);
|
||||
SetGpuReg(REG_OFFSET_WIN1H, gUnknown_20399F0[a0]->win1h);
|
||||
SetGpuReg(REG_OFFSET_WIN0V, gUnknown_20399F0[a0]->win0v);
|
||||
SetGpuReg(REG_OFFSET_WIN1V, gUnknown_20399F0[a0]->win1v);
|
||||
FREE_IF_NOT_NULL(gUnknown_20399F0[a0]);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void sub_80C4BB8(void)
|
||||
{
|
||||
u8 i;
|
||||
for (i = 0; i < 3; i++)
|
||||
{
|
||||
FREE_IF_NOT_NULL(gUnknown_20399F0[i]);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user