summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2021-09-08 13:04:56 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2021-09-08 13:04:56 -0400
commita9ce5e44987cea38aaa0a2336d8582fc7a1edec4 (patch)
tree06fbda842bafed3e216a70d5f3ab123757f7b68c
parent438c14c5686c45c661c4fd09137fb8f4fae559ca (diff)
unk_02029FB0.c, 2
-rw-r--r--arm9/arm9.lsf1
-rw-r--r--arm9/asm/unk_02029FB0_s.s171
-rw-r--r--arm9/src/scrcmd_berry_trees.c2
-rw-r--r--arm9/src/unk_02029FB0.c87
-rw-r--r--arm9/src/unk_0205FA2C.c1
-rw-r--r--include/unk_02029FB0.h15
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