diff options
author | Rémi Calixte <remicalixte.rmc@gmail.com> | 2021-04-03 15:11:23 +0200 |
---|---|---|
committer | Rémi Calixte <remicalixte.rmc@gmail.com> | 2021-04-03 15:11:23 +0200 |
commit | b20e00af7417022971bdf37870b66ccb8d3c52a0 (patch) | |
tree | 5b104cd1ef8fe8998cc15c7cb4a90749179eba76 /arm9/src | |
parent | 8958487e95618eaea84f4aaa02f68d3ef467a874 (diff) |
better structs and signatures
Diffstat (limited to 'arm9/src')
-rw-r--r-- | arm9/src/unk_0205FA2C.c | 245 | ||||
-rw-r--r-- | arm9/src/unk_0206BB28.c | 6 |
2 files changed, 94 insertions, 157 deletions
diff --git a/arm9/src/unk_0205FA2C.c b/arm9/src/unk_0205FA2C.c index e5c717b8..dde83a06 100644 --- a/arm9/src/unk_0205FA2C.c +++ b/arm9/src/unk_0205FA2C.c @@ -3,11 +3,11 @@ extern void *UNK_020F96DC; extern void *UNK_020FA6E8; extern u32 FUN_02079C70(struct SaveBlock2 *sav2); -extern void FUN_0207B000(void *ptr, u8 param1[12]); -extern void FUN_0207C2A4(void *ptr, struct PlayerData *player_data); -extern u32 FUN_0203384C(u32 param0); -extern u32 FUN_02038790(u32 *param0, u16 param1, u16 param2); -extern u16 *GetVarPointer(void *arg, u16); +extern void FUN_0207B000(struct UnkPlayerStruct2_0205FA2C *ptr, const u8 param1[12]); +extern void FUN_0207C2A4(struct UnkPlayerStruct2_0205FA2C *ptr, struct PlayerData *player_data); +extern u32 FUN_0203384C(u32 *param0); +extern u32 *FUN_02038790(struct UnkStruct_0204639C *param0, u16 param1, u16 param2); +extern u16 *GetVarPointer(struct UnkSavStruct80 *arg, u16); extern u32 FUN_02031190(); extern u32 FUN_020316E0(u32 param0); extern u16 MOD06_02244660(struct UnkStruct_0204639C *param0, u32 param1); @@ -25,32 +25,15 @@ extern void FUN_0202A2C4(u32 param0, u32 param1, u32 *param2); extern u32 FUN_0202A240(u32 param0, u32 param1, u32 param2); extern int FUN_0202A538(u32 param0, u16 param1, u32 param2); -struct UnkStruct3 -{ - /* 0x00 */ struct PlayerParty *player_party; - /* 0x04 */ struct Bag *bag; - u32 unk08; - /* 0x0c */ struct Options *options; - u32 unk10[4]; - u8 unk20; - u8 unk21; - u8 unk22; - u8 unk23; - u32 unk24[2]; - u8 unk2c[6]; - u8 unk32:4; - u8 unk322:4; - u8 unk33; - u32 unk34[3]; -}; - -THUMB_FUNC u32 FUN_0205FA2C(u8 *param0, struct UnkStruct_0204639C *param1, u32 heap_id) + + +THUMB_FUNC u32 FUN_0205FA2C(struct UnkCallbackStruct1_0205FA2C *param0, struct UnkStruct_0204639C *param1, u32 heap_id) { - struct UnkStruct3 *ptr = - (struct UnkStruct3 *)AllocFromHeapAtEnd(heap_id, sizeof(struct UnkStruct3)); + struct UnkPlayerStruct1_0205FA2C *ptr = + (struct UnkPlayerStruct1_0205FA2C *)AllocFromHeapAtEnd(heap_id, sizeof(struct UnkPlayerStruct1_0205FA2C)); struct SaveBlock2 *sav2 = (struct SaveBlock2 *)(param1->unkC); - MI_CpuFill8(ptr, 0, sizeof(struct UnkStruct3)); + MI_CpuFill8(ptr, 0, sizeof(struct UnkPlayerStruct1_0205FA2C)); ptr->options = Sav2_PlayerData_GetOptionsAddr(sav2); @@ -59,101 +42,83 @@ THUMB_FUNC u32 FUN_0205FA2C(u8 *param0, struct UnkStruct_0204639C *param1, u32 h ptr->bag = Sav2_Bag_get(sav2); ptr->unk21 = 0; - ptr->unk20 = param0[8]; - ptr->unk32 = param0[10]; - ptr->unk322 = param0[11]; - ptr->unk33 = param0[0xc]; - ptr->unk22 = param0[0xd]; + ptr->unk20 = param0->unk08; + ptr->unk32 = param0->unk0a; + ptr->unk322 = param0->unk0b; + ptr->unk33 = param0->unk0c; + ptr->unk22 = param0->unk0d; for (u8 i = 0; i < 6; i++) { - ptr->unk2c[i] = param0[i + 0xe]; + ptr->unk2c[i] = param0->unk0e[i]; } - FUN_020373D4(param1, &UNK_020F96DC, ptr); + FUN_020373D4(param1, (u32)&UNK_020F96DC, (u32)ptr); - *((u32 **)param0)[5] = ptr; + *param0->unk14 = ptr; return 1; } -THUMB_FUNC u32 FUN_0205FAD8(u8 *param0, void *param1) +THUMB_FUNC u32 FUN_0205FAD8(struct UnkCallbackStruct1_0205FA2C *param0, struct UnkStruct_0204639C *param1) { if (FUN_0204647C(param1)) { return 1; } - void *ptr = *((u32 **)param0)[5]; + struct UnkPlayerStruct1_0205FA2C *ptr = (struct UnkPlayerStruct1_0205FA2C *)*param0->unk14; - u8 r1 = *(u8 *)(ptr + 0x22); + u8 r1 = ptr->unk22; if (r1 != 6) { if (r1 == 7) { - ((u32 *)param0)[0] = 0; + param0->unk00 = 0; return 4; } } else { - ((u32 *)param0)[0] = 1; + param0->unk00 = 1; return 4; } - MI_CpuCopy8(ptr + 0x2c, param0 + 0xe, 6); + MI_CpuCopy8(ptr->unk2c, param0->unk0e, 6); - param0[0xd] = *(u8 *)(ptr + 0x22); + param0->unk0d = ptr->unk22; FreeToHeap(ptr); - *((u32 **)param0)[5] = 0; + *param0->unk14 = NULL; return 2; } -struct UnkStruct4 { - /* 0x00 */ struct PlayerData *player_data; - /* 0x04 */ struct Options *options; - u32 unk08; - u32 unk0c; - u8 unk10; - u8 unk11; - u8 unk12; - u8 unk13; - u8 unk14; - u8 unk15[3]; - u16 unk18; - u16 unk1a; - u32 unk1c; - u32 unk20; - u32 unk24; - u32 unk28; - u32 unk2c; - -}; - -THUMB_FUNC u32 FUN_0205FB34(u8 *param0, struct UnkStruct_0204639C *param1, u32 heap_id) + + + +THUMB_FUNC u32 FUN_0205FB34(struct UnkCallbackStruct1_0205FA2C *param0, struct UnkStruct_0204639C *param1, u32 heap_id) { struct SaveBlock2 *sav2 = (struct SaveBlock2 *)(param1->unkC); - struct UnkStruct4 *ptr = (struct UnkStruct4 *)AllocFromHeapAtEnd(heap_id, sizeof(struct UnkStruct4)); - MI_CpuFill8(ptr, 0, sizeof(struct UnkStruct4)); + struct UnkPlayerStruct2_0205FA2C *ptr = (struct UnkPlayerStruct2_0205FA2C *)AllocFromHeapAtEnd(heap_id, sizeof(struct UnkPlayerStruct2_0205FA2C)); + MI_CpuFill8(ptr, 0, sizeof(struct UnkPlayerStruct2_0205FA2C)); ptr->options = Sav2_PlayerData_GetOptionsAddr(sav2); - ptr->player_data = SavArray_PlayerParty_get(sav2); - ptr->unk1c = FUN_0206BB28(sav2); + ptr->player_party = SavArray_PlayerParty_get(sav2); + ptr->IsNatDex = SavArray_IsNatDexEnabled(sav2); ptr->unk2c = FUN_02079C70(sav2); ptr->unk11 = 1; - ptr->unk14 = param0[0xd]; + ptr->unk14 = param0->unk0d; - ptr->unk13 = GetPartyCount(*(u32 *)ptr); + ptr->party_count = (u8)GetPartyCount(ptr->player_party); ptr->unk18 = 0; - ptr->unk12 = param0[9]; + ptr->unk12 = param0->unk09; ptr->unk20 = FUN_0202A918(sav2); @@ -161,25 +126,25 @@ THUMB_FUNC u32 FUN_0205FB34(u8 *param0, struct UnkStruct_0204639C *param1, u32 h FUN_0207C2A4(ptr, Sav2_PlayerData_GetProfileAddr(sav2)); - FUN_020373D4(param1, &UNK_020FA6E8, ptr); + FUN_020373D4(param1, (u32)&UNK_020FA6E8, (u32)ptr); - *((u32 **)param0)[5] = ptr; + *param0->unk14 = ptr; return 3; } -THUMB_FUNC u32 FUN_0205FBC0(u8 ***param0, void *param1) +THUMB_FUNC u32 FUN_0205FBC0(struct UnkCallbackStruct1_0205FA2C *param0, struct UnkStruct_0204639C *param1) { if (FUN_0204647C(param1)) { return 3; } - u8 *r0 = param0[5][0]; - ((u8 *)param0)[0xd] = r0[20]; - FreeToHeap(r0); + struct UnkPlayerStruct2_0205FA2C *ptr = (struct UnkPlayerStruct2_0205FA2C *)*param0->unk14; + param0->unk0d = ptr->unk14; + FreeToHeap(ptr); - param0[5][0] = 0; + *param0->unk14 = NULL; return 0; } @@ -187,46 +152,32 @@ THUMB_FUNC u32 FUN_0205FBC0(u8 ***param0, void *param1) THUMB_FUNC int FUN_0205FBE8(struct UnkStruct_0204639C *param0) { struct UnkStruct_0204639C *res = FUN_02046528(param0); - struct SaveBlock2 *sav2 = (struct SaveBlock2 *)FUN_0204652C(param0); - switch (sav2->unk_00004) + struct UnkCallbackStruct1_0205FA2C *res2 = (struct UnkCallbackStruct1_0205FA2C *)FUN_0204652C(param0); + switch (res2->unk04) { case 0: - sav2->unk_00004 = FUN_0205FA2C((u8 *)sav2, res, 0xb); + res2->unk04 = FUN_0205FA2C(res2, res, 0xb); break; case 1: - sav2->unk_00004 = FUN_0205FAD8((u8 *)sav2, res); + res2->unk04 = FUN_0205FAD8(res2, res); break; case 2: - sav2->unk_00004 = FUN_0205FB34((u8 *)sav2, res, 0xb); + res2->unk04 = FUN_0205FB34(res2, res, 0xb); break; case 3: - sav2->unk_00004 = FUN_0205FBC0((u8 ***)sav2, res); + res2->unk04 = FUN_0205FBC0(res2, res); break; case 4: - FreeToHeap(sav2); + FreeToHeap(res2); return 1; } return 0; } -struct UnkStruct1 -{ - u32 unk00; - u32 unk04; - u8 unk08; - u8 unk09; - u8 unk0a; - u8 unk0b; - u8 unk0c; - u8 unk0d; - u16 unk0e; - u32 unk10; - u32 unk14; -}; THUMB_FUNC void FUN_0205FC50(struct UnkStruct_0204639C *param0, - u32 param1, + void **param1, u8 param2, u8 param3, u8 param4, @@ -236,11 +187,11 @@ THUMB_FUNC void FUN_0205FC50(struct UnkStruct_0204639C *param0, { struct UnkStruct_0204639C *res = FUN_02046528(param0); - struct UnkStruct1 *ptr = (struct UnkStruct1 *)AllocFromHeap(0xb, sizeof(struct UnkStruct1)); - MI_CpuFill8(ptr, 0, sizeof(struct UnkStruct1)); + struct UnkCallbackStruct1_0205FA2C *ptr = (struct UnkCallbackStruct1_0205FA2C *)AllocFromHeap(0xb, sizeof(struct UnkCallbackStruct1_0205FA2C)); + MI_CpuFill8(ptr, 0, sizeof(struct UnkCallbackStruct1_0205FA2C)); + ptr->unk08 = param2; ptr->unk09 = param3; - ptr->unk0a = param4; ptr->unk0b = param5; ptr->unk0c = param6; @@ -250,28 +201,29 @@ THUMB_FUNC void FUN_0205FC50(struct UnkStruct_0204639C *param0, FUN_0204640C(res->unk10, &FUN_0205FBE8, (u32 *)ptr); } -THUMB_FUNC u32 FUN_0205FC9C(u16 *param0, u32 *param1) + +THUMB_FUNC u32 FUN_0205FC9C(struct UnkCallbackStruct2_0205FA2C *param0, struct UnkStruct_0204639C *param1) { - if (FUN_0203384C(param1[3])) + if (FUN_0203384C(param1->unkC)) { - ((u32 *)param0)[2] = FUN_02038790(param1, param0[9], param0[10]); + param0->unk08 = FUN_02038790(param1, param0->unk12, param0->unk14); return 1; } - ((u32 *)param0)[0] = 1; + param0->unk00 = 1; return 2; } -THUMB_FUNC u32 FUN_0205FCC4(u32 **param0, void *param1) +THUMB_FUNC u32 FUN_0205FCC4(struct UnkCallbackStruct2_0205FA2C *param0, struct UnkStruct_0204639C *param1) { if (FUN_0204647C(param1)) { return 1; } - param0[0] = param0[2][8]; - FreeToHeap(param0[2]); + param0->unk00 = param0->unk08[8]; + FreeToHeap(param0->unk08); return 2; } @@ -279,20 +231,20 @@ THUMB_FUNC u32 FUN_0205FCC4(u32 **param0, void *param1) THUMB_FUNC int FUN_0205FCE8(struct UnkStruct_0204639C *param0) { struct UnkStruct_0204639C *res = FUN_02046528(param0); - struct SaveBlock2 *sav2 = (struct SaveBlock2 *)FUN_0204652C(param0); + struct UnkCallbackStruct2_0205FA2C *res2 = (struct UnkCallbackStruct2_0205FA2C *)FUN_0204652C(param0); - switch (sav2->unk_00004) + switch (res2->unk04) { case 0: - sav2->unk_00004 = FUN_0205FC9C((u16 *)sav2, (u32 *)res); + res2->unk04 = FUN_0205FC9C(res2, res); break; case 1: - sav2->unk_00004 = FUN_0205FCC4((u32 **)sav2, (void *)res); + res2->unk04 = FUN_0205FCC4(res2, res); break; case 2: - u16 *var = GetVarPointer(res, ((u16 *)sav2)[8]); - *var = sav2->flashOkay; - FreeToHeap(sav2); + u16 *var = GetVarPointer((struct UnkSavStruct80 *)res, res2->unk10); + *var = (u16)res2->unk00; + FreeToHeap(res2); return 1; } @@ -300,28 +252,13 @@ THUMB_FUNC int FUN_0205FCE8(struct UnkStruct_0204639C *param0) return 0; } -struct UnkStruct2 -{ - u32 unk00; - u32 unk04; - u8 unk08; - u8 unk09; - u8 unk0a; - u8 unk0b; - u8 unk0c; - u8 unk0d; - u16 unk0e; - u16 unk10; - u16 unk12; - u16 unk14; - u16 unk16; -}; + THUMB_FUNC void FUN_0205FD38(struct UnkStruct_0204639C *param0, u16 param1, u16 param2, u16 param3) { struct UnkStruct_0204639C *res = FUN_02046528(param0); - struct UnkStruct2 *ptr = (struct UnkStruct2 *)AllocFromHeap(0xb, sizeof(struct UnkStruct2)); - MI_CpuFill8(ptr, 0, sizeof(struct UnkStruct2)); + struct UnkCallbackStruct2_0205FA2C *ptr = (struct UnkCallbackStruct2_0205FA2C *)AllocFromHeap(0xb, sizeof(struct UnkCallbackStruct2_0205FA2C)); + MI_CpuFill8(ptr, 0, sizeof(struct UnkCallbackStruct2_0205FA2C)); ptr->unk12 = param1; ptr->unk14 = param3; @@ -340,7 +277,7 @@ THUMB_FUNC int FUN_0205FD70(struct UnkStruct_0204639C *param0) return 0; } - u16 *var = GetVarPointer(res, res2[1]); + u16 *var = GetVarPointer((struct UnkSavStruct80 *)res, res2[1]); switch (res2[0]) { case 0: @@ -371,13 +308,13 @@ THUMB_FUNC void FUN_0205FDDC(struct UnkStruct_0204639C *param0, u16 param1, u16 ptr[0] = param1; ptr[1] = param2; - FUN_0204640C(res->unk10, &FUN_0205FD70, ptr); + FUN_0204640C(res->unk10, &FUN_0205FD70, (u32 *)ptr); } THUMB_FUNC u32 FUN_0205FE10(struct SaveBlock2 *sav2) { - u16 res = FUN_0202A150(FUN_02029FC8(sav2), 0x35); + u16 res = (u16)FUN_0202A150(FUN_02029FC8(sav2), 0x35); if (res < 20) { return 0; @@ -385,13 +322,13 @@ THUMB_FUNC u32 FUN_0205FE10(struct SaveBlock2 *sav2) u32 res2 = FUN_0202A8D8(sav2); - u8 res3 = FUN_0202A578(res2, 0xd, 0); - u8 res4 = FUN_0202A578(res2, 0, 0); - u8 res5 = FUN_0202A578(res2, 1, 0); + u8 res3 = (u8)FUN_0202A578(res2, 0xd, 0); + u8 res4 = (u8)FUN_0202A578(res2, 0, 0); + u8 res5 = (u8)FUN_0202A578(res2, 1, 0); - u8 res6 = FUN_0202A578(res2, 0xe, 0); - u8 res7 = FUN_0202A578(res2, 2, 0); - u8 res8 = FUN_0202A578(res2, 3, 0); + u8 res6 = (u8)FUN_0202A578(res2, 0xe, 0); + u8 res7 = (u8)FUN_0202A578(res2, 2, 0); + u8 res8 = (u8)FUN_0202A578(res2, 3, 0); if (res3 != 0 && res4 != 0 && res5 != 0) { @@ -457,7 +394,7 @@ THUMB_FUNC u32 FUN_0205FE10(struct SaveBlock2 *sav2) THUMB_FUNC u32 FUN_0205FF5C(struct SaveBlock2 *sav2) { - u16 res = FUN_0202A150(FUN_02029FC8(sav2), 0x35); + u16 res = (u16)FUN_0202A150(FUN_02029FC8(sav2), 0x35); if (res < 20) { return 0; @@ -465,13 +402,13 @@ THUMB_FUNC u32 FUN_0205FF5C(struct SaveBlock2 *sav2) u32 res2 = FUN_0202A8D8(sav2); - u8 res3 = FUN_0202A578(res2, 0xd, 0); - u8 res4 = FUN_0202A578(res2, 0, 0); - u8 res5 = FUN_0202A578(res2, 1, 0); + u8 res3 = (u8)FUN_0202A578(res2, 0xd, 0); + u8 res4 = (u8)FUN_0202A578(res2, 0, 0); + u8 res5 = (u8)FUN_0202A578(res2, 1, 0); - u8 res6 = FUN_0202A578(res2, 0xe, 0); - u8 res7 = FUN_0202A578(res2, 2, 0); - u8 res8 = FUN_0202A578(res2, 3, 0); + u8 res6 = (u8)FUN_0202A578(res2, 0xe, 0); + u8 res7 = (u8)FUN_0202A578(res2, 2, 0); + u8 res8 = (u8)FUN_0202A578(res2, 3, 0); if (res3 != 0 && res4 != 0 && res5 != 0) { @@ -572,7 +509,7 @@ THUMB_FUNC u32 FUN_020600DC(struct SaveBlock2 *sav2) u32 res3 = FUN_02060064(FUN_0202A5D0(res)); int i = 0; - int res4 = FUN_0202A538(res, FUN_0202A240(res2, 0, 0), 0) * 0x18; + int res4 = FUN_0202A538(res, (u16)FUN_0202A240(res2, 0, 0), 0) * 0x18; for (i = 0; i < res4; i++) { diff --git a/arm9/src/unk_0206BB28.c b/arm9/src/unk_0206BB28.c index baaecc6a..e7c12793 100644 --- a/arm9/src/unk_0206BB28.c +++ b/arm9/src/unk_0206BB28.c @@ -6,12 +6,12 @@ #pragma thumb on -BOOL FUN_0206BB28(struct SaveBlock2 * sav2) +BOOL SavArray_IsNatDexEnabled(struct SaveBlock2 * sav2) { - return FUN_0206BB34(Sav2_Pokedex_get(sav2)); + return Pokedex_IsNatDexEnabled(Sav2_Pokedex_get(sav2)); } -BOOL FUN_0206BB34(struct Pokedex * pokedex) +BOOL Pokedex_IsNatDexEnabled(struct Pokedex * pokedex) { return Pokedex_GetNatDexFlag(pokedex) == TRUE; } |