diff options
-rw-r--r-- | asm/region_map.s | 414 | ||||
-rw-r--r-- | src/region_map.c | 180 |
2 files changed, 148 insertions, 446 deletions
diff --git a/asm/region_map.s b/asm/region_map.s index 7572aec7b..0a8d5406b 100644 --- a/asm/region_map.s +++ b/asm/region_map.s @@ -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} diff --git a/src/region_map.c b/src/region_map.c index 90b25c36b..493533c93 100644 --- a/src/region_map.c +++ b/src/region_map.c @@ -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]); + } +} |