diff options
author | Seth Barberee <seth.barberee@gmail.com> | 2022-01-28 11:15:42 -0600 |
---|---|---|
committer | Seth Barberee <seth.barberee@gmail.com> | 2022-02-17 18:59:56 -0600 |
commit | 617e992dac782e3647977b6dfe7a325e4c14db15 (patch) | |
tree | 02abc11d8c6d39c855c9285698429307eaf9d29a | |
parent | 601cdeb52f49f0eae835ba1ee418181770e33039 (diff) |
decomp a few more funcs
-rw-r--r-- | asm/code_809447C.s | 111 | ||||
-rw-r--r-- | src/number_util.c | 67 |
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; + } +} |