summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSeth Barberee <seth.barberee@gmail.com>2022-01-28 11:15:42 -0600
committerSeth Barberee <seth.barberee@gmail.com>2022-02-17 18:59:56 -0600
commit617e992dac782e3647977b6dfe7a325e4c14db15 (patch)
tree02abc11d8c6d39c855c9285698429307eaf9d29a
parent601cdeb52f49f0eae835ba1ee418181770e33039 (diff)
decomp a few more funcs
-rw-r--r--asm/code_809447C.s111
-rw-r--r--src/number_util.c67
2 files changed, 67 insertions, 111 deletions
diff --git a/asm/code_809447C.s b/asm/code_809447C.s
index b10d337..281962b 100644
--- a/asm/code_809447C.s
+++ b/asm/code_809447C.s
@@ -4,117 +4,6 @@
.syntax unified
.text
-
- thumb_func_start sub_809447C
-sub_809447C:
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- movs r2, 0x10
- bl RestoreIntegerBits
- adds r4, 0x2
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0x10
- bl RestoreIntegerBits
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_809447C
-
- thumb_func_start sub_809449C
-sub_809449C:
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- movs r2, 0x10
- bl SaveIntegerBits
- adds r4, 0x2
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0x10
- bl SaveIntegerBits
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_809449C
-
- thumb_func_start sub_80944BC
-sub_80944BC:
- push {r4,lr}
- sub sp, 0x8
- adds r4, r1, 0
- lsls r0, 16
- asrs r1, r0, 16
- ldr r0, _080944F4
- cmp r1, r0
- bgt _08094500
- lsls r1, 16
- lsrs r1, 16
- mov r0, sp
- bl sub_8092AA8
- ldr r0, _080944F8
- mov r1, sp
- movs r2, 0
- bl sub_80928C0
- ldr r0, _080944FC
- ldr r0, [r0]
- adds r2, r4, 0
- adds r2, 0xC8
- adds r1, r4, 0
- movs r3, 0
- bl xxx_format_string
- b _08094516
- .align 2, 0
-_080944F4: .4byte 0x000001f3
-_080944F8: .4byte gUnknown_202DE58
-_080944FC: .4byte gUnknown_811383C
-_08094500:
- ldr r0, _08094520
- ldr r2, _08094524
- adds r1, r2
- lsls r1, 3
- adds r0, 0x4
- adds r1, r0
- ldr r1, [r1]
- adds r0, r4, 0
- movs r2, 0xC8
- bl strncpy
-_08094516:
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08094520: .4byte gUnknown_8113080
-_08094524: .4byte 0xfffffe0c
- thumb_func_end sub_80944BC
-
- thumb_func_start sub_8094528
-sub_8094528:
- push {lr}
- lsls r0, 16
- asrs r1, r0, 16
- ldr r0, _08094544
- cmp r1, r0
- ble _08094550
- ldr r0, _08094548
- ldr r2, _0809454C
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldrb r0, [r1]
- b _08094552
- .align 2, 0
-_08094544: .4byte 0x000001f3
-_08094548: .4byte gUnknown_8113080
-_0809454C: .4byte 0xfffffe0c
-_08094550:
- movs r0, 0x1
-_08094552:
- pop {r1}
- bx r1
- thumb_func_end sub_8094528
thumb_func_start sub_8094558
sub_8094558:
diff --git a/src/number_util.c b/src/number_util.c
index 97005cd..dc981af 100644
--- a/src/number_util.c
+++ b/src/number_util.c
@@ -1,5 +1,31 @@
#include "global.h"
+#include "item.h"
#include "number_util.h"
+#include "code_8092334.h"
+#include "moves.h"
+
+struct unkStruct_8113080
+{
+ u8 unk0;
+ u8 *unk4; // some string
+};
+
+extern u8 gUnknown_202DE58[];
+extern u8 gAvailablePokemonNames[];
+extern u8 *gUnknown_811383C[];
+extern struct unkStruct_8113080 gUnknown_8113080[];
+
+struct unkStruct_80928C0
+{
+ u32 unk0;
+ s32 unk4;
+ u8 unk8;
+ u8 unk9;
+};
+
+void sub_80928C0(u8 *buffer, struct PokemonMove *move, struct unkStruct_80928C0 *param_3);
+extern void xxx_format_string(const char *, u8 *, void *, u32);
+
s32 RoundUpFixedPoint(s32 fixedPointNumber)
{
@@ -20,3 +46,44 @@ s32 RoundUpFixedPoint(s32 fixedPointNumber)
return (s16) fixedPointNumber;
}
}
+
+void sub_809447C(struct unkStruct_8094924 *r0, u8 *r1)
+{
+ RestoreIntegerBits(r0, r1, 0x10);
+ RestoreIntegerBits(r0, r1 + 2, 0x10);
+}
+
+void sub_809449C(struct unkStruct_8094924 *r0, u8 *r1)
+{
+ SaveIntegerBits(r0, r1, 0x10);
+ SaveIntegerBits(r0, r1 + 2, 0x10);
+}
+
+void sub_80944BC(s16 moveID, u8 *arg2)
+{
+ u16 moveID_u16;
+ s32 moveID_s32 = moveID;
+ struct PokemonMove stack;
+
+ if (moveID_s32 <= 0x1F3) {
+ // Needed this cast/variable to match
+ moveID_u16 = moveID_s32;
+ sub_8092AA8(&stack, moveID_u16);
+ sub_80928C0(gUnknown_202DE58, &stack, NULL);
+ xxx_format_string(*gUnknown_811383C, arg2, arg2 + 200, 0);
+ } else {
+ strncpy(arg2, gUnknown_8113080[moveID + 0xfffffe0C].unk4, 200);
+ }
+}
+
+u8 sub_8094528(s16 moveID)
+{
+ if(moveID <= 0x1F3)
+ {
+ return 1;
+ }
+ else
+ {
+ return gUnknown_8113080[moveID + 0xfffffe0C].unk0;
+ }
+}