Decompiled sub_81C76C4

This commit is contained in:
Phlosioneer 2019-02-12 22:35:07 -05:00
parent b038556851
commit 5beb2baa97
2 changed files with 26 additions and 35 deletions

View File

@ -5,32 +5,6 @@
.text .text
thumb_func_start sub_81C76C4
sub_81C76C4: @ 81C76C4
push {r4,lr}
ldr r1, =0x0000082c
movs r0, 0
bl sub_81C761C
adds r4, r0, 0
cmp r4, 0
beq _081C76F4
bl ResetSpriteData
bl FreeAllSpritePalettes
ldr r0, =sub_81C7764
movs r1, 0x1
bl sub_81C7078
str r0, [r4, 0xC]
movs r0, 0x1
b _081C76F6
.pool
_081C76F4:
movs r0, 0
_081C76F6:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_81C76C4
thumb_func_start sub_81C76FC thumb_func_start sub_81C76FC
sub_81C76FC: @ 81C76FC sub_81C76FC: @ 81C76FC
push {lr} push {lr}

View File

@ -15,28 +15,33 @@ struct UnknownStruct_0203CF40 {
u16 field8; u16 field8;
u16 fieldA; u16 fieldA;
u32 fieldC; u32 fieldC;
u32* field10[19]; void* field10[19];
//u32* field14[18];
}; };
struct UnknownStruct_0861F3EC { struct UnknownStruct_0861F3EC {
u32 (*data[7])(void); u32 (*data[7])(void);
}; };
struct UnknownStruct_sub_81C76C4 {
u32 data[523];
};
extern struct UnknownStruct_0203CF40 *gUnknown_0203CF40; extern struct UnknownStruct_0203CF40 *gUnknown_0203CF40;
extern u8 gUnknown_0203CF3C; extern u8 gUnknown_0203CF3C;
extern struct UnknownStruct_0861F3EC gUnknown_0861F3EC[7]; // Unknown size; at least 7. extern struct UnknownStruct_0861F3EC gUnknown_0861F3EC[7]; // Unknown size; at least 7.
extern void sub_81C7834(u32 (*a0)(void), u32(*a1)(void)); extern void sub_81C7834(u32 (*a0)(void), u32(*a1)(void));
extern void sub_81C7850(u32 a0); extern void sub_81C7850(u32 a0);
extern void sub_81C76C4(void);
extern void sub_81C7710(void); extern void sub_81C7710(void);
extern void sub_81C9430(void); extern void sub_81C9430(void);
extern u32 sub_81C7764(u32 a0);
extern u32 sub_81C76FC(void); extern u32 sub_81C76FC(void);
extern u32 sub_81C786C(void); extern u32 sub_81C786C(void);
extern u32 sub_81C7738(void); extern u32 sub_81C7738(void);
bool32 sub_81C756C(u32 a0); bool32 sub_81C756C(u32 a0);
bool32 sub_81C76C4(void);
u32 AnyMonHasRibbon(void); u32 AnyMonHasRibbon(void);
u32 sub_81C75E0(void); u32 sub_81C75E0(void);
u32 sub_81C75D4(void); u32 sub_81C75D4(void);
@ -212,8 +217,8 @@ void sub_81C7334() {
// Clears UnknownStruct_0203CF40 // Clears UnknownStruct_0203CF40
void sub_81C7360(struct UnknownStruct_0203CF40 *a0) { void sub_81C7360(struct UnknownStruct_0203CF40 *a0) {
s32 i; s32 i;
u32 **arrayPtr; void **arrayPtr;
s32 *fill; void *fill;
fill = NULL; fill = NULL;
i = 18; i = 18;
@ -368,12 +373,12 @@ void sub_81C760C(void) {
SetVBlankCallback(sub_81C7418); SetVBlankCallback(sub_81C7418);
} }
u32* sub_81C761C(u32 a0, u32 a1) { void* sub_81C761C(u32 index, u32 size) {
return gUnknown_0203CF40->field10[a0] = (u32*)Alloc(a1); return gUnknown_0203CF40->field10[index] = (void*)Alloc(size);
} }
u32* sub_81C763C(u32 a0) { void* sub_81C763C(u32 index) {
return gUnknown_0203CF40->field10[a0]; return gUnknown_0203CF40->field10[index];
} }
void sub_81C7650(u32 index) { void sub_81C7650(u32 index) {
@ -408,4 +413,16 @@ u32 sub_81C76B8(void) {
return gUnknown_0203CF40->fieldC; return gUnknown_0203CF40->fieldC;
} }
bool32 sub_81C76C4(void) {
struct UnknownStruct_sub_81C76C4 *v1;
v1 = (struct UnknownStruct_sub_81C76C4*)sub_81C761C(0, sizeof(struct UnknownStruct_sub_81C76C4));
if (v1 == NULL) {
return FALSE;
} else {
ResetSpriteData();
FreeAllSpritePalettes();
v1->data[3] = sub_81C7078(sub_81C7764, 1);
return TRUE;
}
}