diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2021-09-08 13:04:56 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2021-09-08 13:04:56 -0400 |
commit | a9ce5e44987cea38aaa0a2336d8582fc7a1edec4 (patch) | |
tree | 06fbda842bafed3e216a70d5f3ab123757f7b68c | |
parent | 438c14c5686c45c661c4fd09137fb8f4fae559ca (diff) |
unk_02029FB0.c, 2
-rw-r--r-- | arm9/arm9.lsf | 1 | ||||
-rw-r--r-- | arm9/asm/unk_02029FB0_s.s | 171 | ||||
-rw-r--r-- | arm9/src/scrcmd_berry_trees.c | 2 | ||||
-rw-r--r-- | arm9/src/unk_02029FB0.c | 87 | ||||
-rw-r--r-- | arm9/src/unk_0205FA2C.c | 1 | ||||
-rw-r--r-- | include/unk_02029FB0.h | 15 |
6 files changed, 101 insertions, 176 deletions
diff --git a/arm9/arm9.lsf b/arm9/arm9.lsf index 5d18d462..002ad8c9 100644 --- a/arm9/arm9.lsf +++ b/arm9/arm9.lsf @@ -114,7 +114,6 @@ Static arm9 Object igt.o Object sav_chatot.o Object unk_02029FB0.o - Object unk_02029FB0_s.o Object unk_0202A1E0.o Object unk_0202A8F4.o Object unk_0202A924.o diff --git a/arm9/asm/unk_02029FB0_s.s b/arm9/asm/unk_02029FB0_s.s deleted file mode 100644 index 36bff703..00000000 --- a/arm9/asm/unk_02029FB0_s.s +++ /dev/null @@ -1,171 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .extern FUN_02029FD4 - .extern FUN_02029FF8 - .extern FUN_0202A028 - .extern FUN_0202A070 - - .text - - thumb_func_start FUN_0202A0A8 -FUN_0202A0A8: ; 0x0202A0A8 - push {r3-r7, lr} - add r6, r1, #0x0 - add r7, r0, #0x0 - add r0, r6, #0x0 - add r5, r2, #0x0 - bl FUN_0202A028 - add r4, r0, #0x0 - add r0, r7, #0x0 - add r1, r6, #0x0 - bl FUN_02029FD4 - cmp r5, r4 - bls _0202A0C6 - add r5, r4, #0x0 -_0202A0C6: - cmp r0, r5 - bhs _0202A0D6 - add r0, r7, #0x0 - add r1, r6, #0x0 - add r2, r5, #0x0 - bl FUN_02029FF8 - pop {r3-r7, pc} -_0202A0D6: - cmp r0, r4 - bls _0202A0E4 - add r0, r7, #0x0 - add r1, r6, #0x0 - add r2, r4, #0x0 - bl FUN_02029FF8 -_0202A0E4: - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_0202A0E8 -FUN_0202A0E8: ; 0x0202A0E8 - push {r4-r6, lr} - add r6, r1, #0x0 - add r5, r0, #0x0 - add r0, r6, #0x0 - bl FUN_0202A028 - add r4, r0, #0x0 - add r0, r5, #0x0 - add r1, r6, #0x0 - bl FUN_02029FD4 - add r2, r0, #0x1 - cmp r2, r4 - bhs _0202A10E - add r0, r5, #0x0 - add r1, r6, #0x0 - bl FUN_02029FF8 - pop {r4-r6, pc} -_0202A10E: - add r0, r5, #0x0 - add r1, r6, #0x0 - add r2, r4, #0x0 - bl FUN_02029FF8 - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_0202A11C -FUN_0202A11C: ; 0x0202A11C - push {r3-r7, lr} - add r4, r1, #0x0 - add r5, r0, #0x0 - add r0, r4, #0x0 - add r7, r2, #0x0 - bl FUN_0202A028 - add r6, r0, #0x0 - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_02029FD4 - add r2, r0, r7 - cmp r2, r6 - bhs _0202A144 - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_02029FF8 - pop {r3-r7, pc} -_0202A144: - add r0, r5, #0x0 - add r1, r4, #0x0 - add r2, r6, #0x0 - bl FUN_02029FF8 - pop {r3-r7, pc} - - thumb_func_start FUN_0202A150 -FUN_0202A150: ; 0x0202A150 - push {r4-r6, lr} - add r6, r1, #0x0 - add r5, r0, #0x0 - add r0, r6, #0x0 - bl FUN_0202A028 - add r4, r0, #0x0 - add r0, r5, #0x0 - add r1, r6, #0x0 - bl FUN_02029FD4 - cmp r0, r4 - bhi _0202A16C - add r4, r0, #0x0 -_0202A16C: - add r0, r4, #0x0 - pop {r4-r6, pc} - - thumb_func_start FUN_0202A170 -FUN_0202A170: ; 0x0202A170 - push {r4-r6, lr} - add r4, r1, #0x0 - add r5, r0, #0x0 - cmp r4, #0x26 - blt _0202A17E - bl GF_AssertFail -_0202A17E: - add r0, r5, #0x0 - mov r1, #0x0 - bl FUN_0202A150 - add r6, r0, #0x0 - add r0, r4, #0x0 - bl FUN_0202A070 - ldr r2, _0202A1B4 ; =0x05F5E0FF - add r0, r6, r0 - cmp r0, r2 - bls _0202A1A0 - add r0, r5, #0x0 - mov r1, #0x0 - bl FUN_0202A07C - pop {r4-r6, pc} -_0202A1A0: - add r0, r4, #0x0 - bl FUN_0202A070 - add r2, r0, #0x0 - add r0, r5, #0x0 - mov r1, #0x0 - bl FUN_0202A11C - pop {r4-r6, pc} - nop -_0202A1B4: .word 0x05F5E0FF - - thumb_func_start FUN_0202A1B8 -FUN_0202A1B8: ; 0x0202A1B8 - ldr r3, _0202A1C0 ; =FUN_0202A150 - mov r1, #0x0 - bx r3 - nop -_0202A1C0: .word FUN_0202A150 - - thumb_func_start FUN_0202A1C4 -FUN_0202A1C4: ; 0x0202A1C4 - push {r4, lr} - add r4, r0, #0x0 - add r0, r1, #0x0 - add r1, r2, #0x0 - bl Pokedex_CheckMonCaughtFlag - cmp r0, #0x0 - bne _0202A1DC - add r0, r4, #0x0 - mov r1, #0x16 - bl FUN_0202A170 -_0202A1DC: - pop {r4, pc} - .balign 4 diff --git a/arm9/src/scrcmd_berry_trees.c b/arm9/src/scrcmd_berry_trees.c index 53715ca1..7fce0387 100644 --- a/arm9/src/scrcmd_berry_trees.c +++ b/arm9/src/scrcmd_berry_trees.c @@ -3,8 +3,6 @@ extern void* FUN_02039438(struct UnkSavStruct80*, int idx); -extern void FUN_0202A0E8(struct UnkStruct_02029FB0*, int); -extern void FUN_0202A170(struct UnkStruct_02029FB0*, int); extern u8 FUN_0204B5FC(struct UnkSavStruct80*, void*); extern void FUN_0204B57C(struct UnkSavStruct80*, void*, int); extern u16 FUN_0204B63C(struct UnkSavStruct80*, void*); diff --git a/arm9/src/unk_02029FB0.c b/arm9/src/unk_02029FB0.c index 3ed3a8c4..53b0a9d8 100644 --- a/arm9/src/unk_02029FB0.c +++ b/arm9/src/unk_02029FB0.c @@ -267,3 +267,90 @@ THUMB_FUNC u32 FUN_0202A07C(struct UnkStruct_02029FB0 * ptr, s32 a1, u32 a2) return FUN_02029FF8(ptr, a1, r2);
}
}
+
+THUMB_FUNC u32 FUN_0202A0A8(struct UnkStruct_02029FB0 * ptr, s32 a1, u32 a2)
+{
+ u32 r4 = FUN_0202A028(a1);
+ u32 r0 = FUN_02029FD4(ptr, a1);
+ if (a2 > r4)
+ {
+ a2 = r4;
+ }
+ if (r0 < a2)
+ {
+ return FUN_02029FF8(ptr, a1, a2);
+ }
+ else if (r0 > r4)
+ {
+ return FUN_02029FF8(ptr, a1, r4);
+ }
+ else
+ {
+ return r0;
+ }
+}
+
+THUMB_FUNC u32 FUN_0202A0E8(struct UnkStruct_02029FB0 * ptr, s32 a1)
+{
+ u32 r4 = FUN_0202A028(a1);
+ u32 r2 = FUN_02029FD4(ptr, a1) + 1;
+ if (r2 < r4)
+ {
+ return FUN_02029FF8(ptr, a1, r2);
+ }
+ else
+ {
+ return FUN_02029FF8(ptr, a1, r4);
+ }
+}
+
+THUMB_FUNC u32 FUN_0202A11C(struct UnkStruct_02029FB0 * ptr, s32 a1, u32 a2)
+{
+ u32 r6 = FUN_0202A028(a1);
+ u32 r2 = FUN_02029FD4(ptr, a1);
+ r2 += a2;
+ if (r2 < r6)
+ {
+ return FUN_02029FF8(ptr, a1, r2);
+ }
+ else
+ {
+ return FUN_02029FF8(ptr, a1, r6);
+ }
+}
+
+THUMB_FUNC u32 FUN_0202A150(struct UnkStruct_02029FB0 * ptr, s32 a1)
+{
+ u32 r4 = FUN_0202A028(a1);
+ u32 r0 = FUN_02029FD4(ptr, a1);
+ if (r0 <= r4)
+ r4 = r0;
+ return r4;
+}
+
+THUMB_FUNC u32 FUN_0202A170(struct UnkStruct_02029FB0 * ptr, s32 a1)
+{
+ GF_ASSERT(a1 < 38);
+ u32 r0 = FUN_0202A150(ptr, 0) + FUN_0202A070(a1);
+ if (r0 > 99999999)
+ {
+ return FUN_0202A07C(ptr, 0, 99999999);
+ }
+ else
+ {
+ return FUN_0202A11C(ptr, 0, FUN_0202A070(a1));
+ }
+}
+
+THUMB_FUNC u32 FUN_0202A1B8(struct UnkStruct_02029FB0 * ptr)
+{
+ return FUN_0202A150(ptr, 0);
+}
+
+THUMB_FUNC void FUN_0202A1C4(struct UnkStruct_02029FB0 * ptr, struct Pokedex * pokedex, u16 species)
+{
+ if (!Pokedex_CheckMonCaughtFlag(pokedex, species))
+ {
+ FUN_0202A170(ptr, 22);
+ }
+}
diff --git a/arm9/src/unk_0205FA2C.c b/arm9/src/unk_0205FA2C.c index a023ad83..d8c4ecb2 100644 --- a/arm9/src/unk_0205FA2C.c +++ b/arm9/src/unk_0205FA2C.c @@ -12,7 +12,6 @@ extern u16 *GetVarPointer(struct UnkSavStruct80 *arg, u16); extern u16 MOD06_02244660(struct UnkSavStruct80 *param0, u8 *param1); extern u16 MOD06_022446BC(struct UnkSavStruct80 *param0, u8 *param1); extern u16 MOD06_022446E0(struct UnkSavStruct80 *param0, u8 *param1); -extern u32 FUN_0202A150(struct UnkStruct_02029FB0 *param0, u32 param1); extern u32 FUN_02026CC4(struct SaveBlock2 *sav2); extern u32 FUN_02025D94(u32 param0, u32 param1); diff --git a/include/unk_02029FB0.h b/include/unk_02029FB0.h index a05abecc..9908d86d 100644 --- a/include/unk_02029FB0.h +++ b/include/unk_02029FB0.h @@ -9,7 +9,20 @@ struct UnkStruct_02029FB0 u16 unk_B0[0x4D]; }; +u32 FUN_02029FB0(void); +void FUN_02029FB8(struct UnkStruct_02029FB0 * ptr); struct UnkStruct_02029FB0 * FUN_02029FC8(struct SaveBlock2 * sav2); -void FUN_0202A1C4(struct UnkStruct_02029FB0 * unk, struct Pokedex * pokedex, u16 species); +u32 FUN_02029FD4(struct UnkStruct_02029FB0 * ptr, s32 a1); +u32 FUN_02029FF8(struct UnkStruct_02029FB0 * ptr, s32 a1, u32 a2); +u32 FUN_0202A028(s32 a0); +u16 FUN_0202A070(s32 a0); +u32 FUN_0202A07C(struct UnkStruct_02029FB0 * ptr, s32 a1, u32 a2); +u32 FUN_0202A0A8(struct UnkStruct_02029FB0 * ptr, s32 a1, u32 a2); +u32 FUN_0202A0E8(struct UnkStruct_02029FB0 * ptr, s32 a1); +u32 FUN_0202A11C(struct UnkStruct_02029FB0 * ptr, s32 a1, u32 a2); +u32 FUN_0202A150(struct UnkStruct_02029FB0 * ptr, s32 a1); +u32 FUN_0202A170(struct UnkStruct_02029FB0 * ptr, s32 a1); +u32 FUN_0202A1B8(struct UnkStruct_02029FB0 * ptr); +void FUN_0202A1C4(struct UnkStruct_02029FB0 * ptr, struct Pokedex * pokedex, u16 species); #endif //POKEDIAMOND_UNK_02029FB0_H |