diff options
author | AnonymousRandomPerson <chenghanngan.us@gmail.com> | 2022-01-06 23:11:38 -0600 |
---|---|---|
committer | AnonymousRandomPerson <chenghanngan.us@gmail.com> | 2022-01-06 23:11:38 -0600 |
commit | 05768ae71decc1539bd7f6e2c6d371b8c619cb24 (patch) | |
tree | 8465b31895a323520b549cba629d397868135abb | |
parent | 393e6e9eb0d558af0f7ed610c8874fd7c071878b (diff) |
Decomped RoundUpFixedPoint()
-rw-r--r-- | asm/code_803D110.s | 2 | ||||
-rw-r--r-- | asm/code_8048480.s | 2 | ||||
-rw-r--r-- | asm/code_80521D0.s | 2 | ||||
-rw-r--r-- | asm/code_8057824.s | 24 | ||||
-rw-r--r-- | asm/code_806CD90.s | 2 | ||||
-rw-r--r-- | asm/code_8073CF0.s | 16 | ||||
-rw-r--r-- | asm/code_8075BA4.s | 30 | ||||
-rw-r--r-- | asm/code_8094148.s | 469 | ||||
-rw-r--r-- | asm/code_809447C.s | 446 | ||||
-rw-r--r-- | include/number_util.h | 7 | ||||
-rwxr-xr-x | ld_script.txt | 2 | ||||
-rw-r--r-- | src/dungeon_ai_item_weight.c | 8 | ||||
-rw-r--r-- | src/number_util.c | 22 |
13 files changed, 521 insertions, 511 deletions
diff --git a/asm/code_803D110.s b/asm/code_803D110.s index 8ee110e..0411a71 100644 --- a/asm/code_803D110.s +++ b/asm/code_803D110.s @@ -5469,7 +5469,7 @@ _0803FBBA: lsls r3, 1 adds r0, r3 ldr r0, [r0] - bl GetBellyRoundedUp + bl RoundUpFixedPoint cmp r0, 0 bne _0803FBD2 movs r0, 0x1 diff --git a/asm/code_8048480.s b/asm/code_8048480.s index 5f533e2..0fe1f8b 100644 --- a/asm/code_8048480.s +++ b/asm/code_8048480.s @@ -42,7 +42,7 @@ _08048568: lsls r0, 1 adds r5, r0 ldr r0, [r5] - bl GetBellyRoundedUp + bl RoundUpFixedPoint cmp r0, 0 beq _08048598 mov r0, sp diff --git a/asm/code_80521D0.s b/asm/code_80521D0.s index 417d5da..648cdec 100644 --- a/asm/code_80521D0.s +++ b/asm/code_80521D0.s @@ -2611,7 +2611,7 @@ _08053888: lsls r2, 1 adds r0, r1, r2 ldr r0, [r0] - bl GetBellyRoundedUp + bl RoundUpFixedPoint ldr r1, _080538C4 movs r3, 0 ldrsh r1, [r1, r3] diff --git a/asm/code_8057824.s b/asm/code_8057824.s index 3943de2..a456d99 100644 --- a/asm/code_8057824.s +++ b/asm/code_8057824.s @@ -6523,7 +6523,7 @@ sub_805AAE0: lsls r1, 1 adds r5, r0, r1 ldr r0, [r5] - bl GetBellyRoundedUp + bl RoundUpFixedPoint cmp r0, 0x1 ble _0805AB20 ldr r0, _0805AB1C @@ -10426,7 +10426,7 @@ _0805CB24: lsls r1, 1 adds r0, r2, r1 ldr r0, [r0] - bl GetBellyRoundedUp + bl RoundUpFixedPoint cmp r0, 0 ble _0805CB3E b _0805CEA8 @@ -12282,7 +12282,7 @@ _0805DB7A: lsls r0, 1 add r0, r8 ldr r0, [r0] - bl GetBellyRoundedUp + bl RoundUpFixedPoint cmp r0, 0 beq _0805DBAA b _0805D9EC @@ -12307,7 +12307,7 @@ _0805DBBE: lsls r0, 1 add r0, r8 ldr r0, [r0] - bl GetBellyRoundedUp + bl RoundUpFixedPoint cmp r0, 0 bne _0805DBDA b _0805DD02 @@ -13016,7 +13016,7 @@ _0805E14C: lsls r0, 1 add r0, r8 ldr r0, [r0] - bl GetBellyRoundedUp + bl RoundUpFixedPoint cmp r0, 0 beq _0805E188 mov r1, r10 @@ -16138,14 +16138,14 @@ _0805FA62: lsls r1, 1 adds r0, r7, r1 ldr r0, [r0] - bl GetBellyRoundedUp + bl RoundUpFixedPoint ldr r4, _0805FBC0 str r0, [r4] movs r2, 0xA0 lsls r2, 1 adds r0, r7, r2 ldr r0, [r0] - bl GetBellyRoundedUp + bl RoundUpFixedPoint str r0, [r4, 0x4] ldr r0, _0805FBC4 ldr r2, [r0] @@ -35982,7 +35982,7 @@ _08069A02: lsls r1, 1 adds r0, r5, r1 ldr r0, [r0] - bl GetBellyRoundedUp + bl RoundUpFixedPoint cmp r0, 0 bne _08069A38 ldrb r0, [r5, 0x7] @@ -37646,11 +37646,11 @@ _0806A664: movs r1, 0 mov r8, r1 adds r0, r5, 0 - bl GetBellyRoundedUp + bl RoundUpFixedPoint cmp r0, 0x13 ble _0806A6A4 ldr r0, [r4] - bl GetBellyRoundedUp + bl RoundUpFixedPoint cmp r0, 0x13 bgt _0806A6A4 ldr r0, _0806A6E0 @@ -37658,14 +37658,14 @@ _0806A664: mov r8, r0 _0806A6A4: adds r0, r5, 0 - bl GetBellyRoundedUp + bl RoundUpFixedPoint cmp r0, 0x9 ble _0806A6C4 movs r2, 0x9E lsls r2, 1 adds r0, r7, r2 ldr r0, [r0] - bl GetBellyRoundedUp + bl RoundUpFixedPoint cmp r0, 0x9 bgt _0806A6C4 ldr r0, _0806A6E4 diff --git a/asm/code_806CD90.s b/asm/code_806CD90.s index 535fa42..d4383f7 100644 --- a/asm/code_806CD90.s +++ b/asm/code_806CD90.s @@ -3616,7 +3616,7 @@ _0806EB3A: lsls r0, 1 add r0, r10 ldr r0, [r0] - bl GetBellyRoundedUp + bl RoundUpFixedPoint adds r1, r0, 0 cmp r1, 0 bne _0806EB72 diff --git a/asm/code_8073CF0.s b/asm/code_8073CF0.s index f9a004b..7cadcc3 100644 --- a/asm/code_8073CF0.s +++ b/asm/code_8073CF0.s @@ -685,11 +685,11 @@ _0807421E: str r0, [r4] movs r6, 0x1 adds r0, r7, 0 - bl GetBellyRoundedUp + bl RoundUpFixedPoint cmp r0, 0x13 ble _0807425C ldr r0, [r4] - bl GetBellyRoundedUp + bl RoundUpFixedPoint cmp r0, 0x13 bgt _0807425C ldr r0, _08074368 @@ -697,14 +697,14 @@ _0807421E: mov r9, r0 _0807425C: adds r0, r7, 0 - bl GetBellyRoundedUp + bl RoundUpFixedPoint cmp r0, 0x9 ble _0807427C movs r0, 0x9E lsls r0, 1 add r0, r8 ldr r0, [r0] - bl GetBellyRoundedUp + bl RoundUpFixedPoint cmp r0, 0x9 bgt _0807427C ldr r0, _0807436C @@ -715,7 +715,7 @@ _0807427C: lsls r4, 1 add r4, r8 ldr r0, [r4] - bl GetBellyRoundedUp + bl RoundUpFixedPoint cmp r0, 0 bne _08074298 add r0, sp, 0x20 @@ -725,7 +725,7 @@ _0807427C: str r0, [r4] _08074298: ldr r0, [r4] - bl GetBellyRoundedUp + bl RoundUpFixedPoint cmp r0, 0 bge _080742AE add r0, sp, 0x24 @@ -735,7 +735,7 @@ _08074298: str r0, [r4] _080742AE: ldr r0, [r4] - bl GetBellyRoundedUp + bl RoundUpFixedPoint cmp r0, 0 bne _08074384 bl sub_805E804 @@ -803,7 +803,7 @@ _08074320: movs r0, 0x1 strb r0, [r1] ldr r0, [r4] - bl GetBellyRoundedUp + bl RoundUpFixedPoint cmp r0, 0 beq _08074390 b _080743B0 diff --git a/asm/code_8075BA4.s b/asm/code_8075BA4.s index 58a0642..9d92ce6 100644 --- a/asm/code_8075BA4.s +++ b/asm/code_8075BA4.s @@ -5786,10 +5786,10 @@ sub_8078A58: movs r2, 0 bl SetMessageArgument adds r0, r7, 0 - bl GetBellyRoundedUp + bl RoundUpFixedPoint adds r4, r0, 0 ldr r0, [r5] - bl GetBellyRoundedUp + bl RoundUpFixedPoint cmp r4, r0 beq _08078AD8 adds r0, r6, 0 @@ -5823,10 +5823,10 @@ _08078AE0: movs r2, 0 bl SetMessageArgument adds r0, r7, 0 - bl GetBellyRoundedUp + bl RoundUpFixedPoint adds r5, r0, 0 ldr r0, [r4] - bl GetBellyRoundedUp + bl RoundUpFixedPoint cmp r5, r0 beq _08078B38 adds r0, r6, 0 @@ -5916,13 +5916,13 @@ _08078BB8: lsls r1, 1 adds r0, r7, r1 ldr r0, [r0] - bl GetBellyRoundedUp + bl RoundUpFixedPoint adds r4, r0, 0 movs r1, 0xA0 lsls r1, 1 adds r0, r7, r1 ldr r0, [r0] - bl GetBellyRoundedUp + bl RoundUpFixedPoint cmp r4, r0 blt _08078BE0 movs r5, 0x1 @@ -5943,10 +5943,10 @@ _08078BE8: adds r0, r7 mov r10, r0 ldr r0, [r0] - bl GetBellyRoundedUp + bl RoundUpFixedPoint adds r4, r0, 0 ldr r0, [r5] - bl GetBellyRoundedUp + bl RoundUpFixedPoint movs r1, 0 str r1, [sp, 0x24] cmp r4, r0 @@ -5987,13 +5987,13 @@ _08078C16: bl sub_80522F4 _08078C5E: ldr r0, [sp, 0x20] - bl GetBellyRoundedUp + bl RoundUpFixedPoint adds r4, r0, 0 movs r1, 0xA0 lsls r1, 1 adds r0, r7, r1 ldr r0, [r0] - bl GetBellyRoundedUp + bl RoundUpFixedPoint cmp r4, r0 bne _08078C9C ldr r0, _08078C94 @@ -6060,10 +6060,10 @@ _08078CFA: movs r2, 0 bl SetMessageArgument adds r0, r4, 0 - bl GetBellyRoundedUp + bl RoundUpFixedPoint adds r4, r0, 0 ldr r0, [r5] - bl GetBellyRoundedUp + bl RoundUpFixedPoint cmp r4, r0 bne _08078D34 mov r1, r8 @@ -6077,10 +6077,10 @@ _08078D2C: .4byte gAvailablePokemonNames _08078D30: .4byte gUnknown_80FBE14 _08078D34: ldr r0, [r5] - bl GetBellyRoundedUp + bl RoundUpFixedPoint adds r4, r0, 0 ldr r0, [r7] - bl GetBellyRoundedUp + bl RoundUpFixedPoint cmp r4, r0 blt _08078D60 mov r0, r8 @@ -10207,7 +10207,7 @@ _0807AE12: lsls r1, 1 adds r0, r4, r1 ldr r0, [r0] - bl GetBellyRoundedUp + bl RoundUpFixedPoint adds r1, r0, 0 cmp r1, 0 bne _0807AE32 diff --git a/asm/code_8094148.s b/asm/code_8094148.s index d894e66..9d47580 100644 --- a/asm/code_8094148.s +++ b/asm/code_8094148.s @@ -279,471 +279,4 @@ _08094448: .4byte 0xffff0000 _0809444C: .4byte 0x0000ffff thumb_func_end sub_80943DC - thumb_func_start GetBellyRoundedUp -GetBellyRoundedUp: - push {lr} - adds r1, r0, 0 - lsls r0, r1, 16 - asrs r2, r0, 16 - cmp r2, 0 - bne _0809446A - asrs r0, r1, 16 - cmp r0, 0 - bne _08094466 - movs r0, 0 - b _08094476 -_08094466: - movs r0, 0x1 - b _08094476 -_0809446A: - asrs r0, r1, 16 - cmp r0, 0 - bne _08094474 - adds r0, r2, 0 - b _08094476 -_08094474: - adds r0, r2, 0x1 -_08094476: - pop {r1} - bx r1 - thumb_func_end GetBellyRoundedUp - - 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: - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0xCC - adds r7, r0, 0 - adds r4, r1, 0 - adds r6, r2, 0 - bl sub_80073B8 - movs r5, 0 - str r5, [sp] - movs r0, 0x10 - movs r1, 0 - adds r2, r4, 0 - adds r3, r7, 0 - bl xxx_format_and_draw - ldr r4, _080945D0 - adds r1, r6, 0 - adds r1, 0x18 - adds r0, r4, 0 - bl sub_8090208 - ldr r0, _080945D4 - ldr r2, [r0] - str r5, [sp] - movs r0, 0x4 - movs r1, 0x10 - adds r3, r7, 0 - bl xxx_format_and_draw - movs r5, 0x1A - adds r0, r4, 0 - adds r1, r6, 0 - movs r2, 0xA - bl sub_80922B4 - adds r4, 0x50 - adds r1, r6, 0 - adds r1, 0xA - adds r0, r4, 0 - movs r2, 0xA - bl sub_80922B4 - movs r1, 0x14 - ldrsh r0, [r6, r1] - bl sub_8094528 - lsls r0, 24 - cmp r0, 0 - beq _080945DC - ldr r0, _080945D8 - ldr r0, [r0] - add r2, sp, 0xCC - add r1, sp, 0x4 - movs r3, 0 - bl xxx_format_string - b _080945EA - .align 2, 0 -_080945D0: .4byte gAvailablePokemonNames -_080945D4: .4byte gUnknown_8113850 -_080945D8: .4byte gUnknown_8113868 -_080945DC: - ldr r0, _0809465C - ldr r0, [r0] - add r2, sp, 0xCC - add r1, sp, 0x4 - movs r3, 0 - bl xxx_format_string -_080945EA: - add r0, sp, 0x4 - bl sub_8008ED0 - movs r4, 0xB0 - subs r0, r4, r0 - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - movs r1, 0 - mov r8, r1 - str r1, [sp] - adds r1, r5, 0 - add r2, sp, 0x4 - adds r3, r7, 0 - bl xxx_format_and_draw - adds r5, 0xA - movs r1, 0x14 - ldrsh r0, [r6, r1] - add r1, sp, 0x4 - bl sub_80944BC - add r0, sp, 0x4 - bl sub_8008ED0 - subs r4, r0 - lsrs r0, r4, 31 - adds r4, r0 - asrs r0, r4, 1 - mov r1, r8 - str r1, [sp] - adds r1, r5, 0 - add r2, sp, 0x4 - adds r3, r7, 0 - bl xxx_format_and_draw - adds r5, 0x10 - ldr r1, _08094660 - ldr r0, [r6, 0x20] - str r0, [r1] - adds r0, r6, 0 - adds r0, 0x2A - ldrb r0, [r0] - str r0, [r1, 0x4] - cmp r0, 0x63 - ble _08094668 - ldr r0, _08094664 - ldr r2, [r0] - mov r0, r8 - str r0, [sp] - movs r0, 0x4 - adds r1, r5, 0 - adds r3, r7, 0 - bl xxx_format_and_draw - b _0809467A - .align 2, 0 -_0809465C: .4byte gUnknown_8113870 -_08094660: .4byte gUnknown_202DE30 -_08094664: .4byte gUnknown_81138C0 -_08094668: - ldr r0, _080946CC - ldr r2, [r0] - mov r1, r8 - str r1, [sp] - movs r0, 0x4 - adds r1, r5, 0 - adds r3, r7, 0 - bl xxx_format_and_draw -_0809467A: - adds r5, 0xA - ldr r4, _080946D0 - movs r1, 0x24 - ldrsh r0, [r6, r1] - str r0, [r4] - ldr r0, _080946D4 - ldr r2, [r0] - movs r0, 0 - mov r8, r0 - str r0, [sp] - movs r0, 0x4 - adds r1, r5, 0 - adds r3, r7, 0 - bl xxx_format_and_draw - adds r5, 0xA - adds r0, r6, 0 - adds r0, 0x26 - ldrb r2, [r0] - str r2, [r4] - adds r0, 0x2 - ldrb r0, [r0] - str r0, [r4, 0x4] - adds r0, r6, 0 - adds r0, 0x2B - ldrb r1, [r0] - cmp r1, 0 - beq _080946DC - adds r0, r1, 0 - adds r0, r2, r0 - str r0, [r4] - ldr r0, _080946D8 - ldr r2, [r0] - mov r1, r8 - str r1, [sp] - movs r0, 0x4 - adds r1, r5, 0 - adds r3, r7, 0 - bl xxx_format_and_draw - b _080946EC - .align 2, 0 -_080946CC: .4byte gUnknown_8113898 -_080946D0: .4byte gUnknown_202DE30 -_080946D4: .4byte gUnknown_81138D0 -_080946D8: .4byte gUnknown_8113950 -_080946DC: - ldr r0, _08094714 - ldr r2, [r0] - str r1, [sp] - movs r0, 0x4 - adds r1, r5, 0 - adds r3, r7, 0 - bl xxx_format_and_draw -_080946EC: - adds r0, r6, 0 - adds r0, 0x2D - ldrb r1, [r0] - cmp r1, 0 - beq _08094720 - ldr r2, _08094718 - ldr r0, [r2, 0x4] - adds r0, r1 - str r0, [r2, 0x4] - ldr r0, _0809471C - ldr r2, [r0] - movs r0, 0 - str r0, [sp] - movs r0, 0x4 - adds r1, r5, 0 - adds r3, r7, 0 - bl xxx_format_and_draw - b _08094730 - .align 2, 0 -_08094714: .4byte gUnknown_81138E4 -_08094718: .4byte gUnknown_202DE30 -_0809471C: .4byte gUnknown_8113974 -_08094720: - ldr r0, _08094768 - ldr r2, [r0] - str r1, [sp] - movs r0, 0x4 - adds r1, r5, 0 - adds r3, r7, 0 - bl xxx_format_and_draw -_08094730: - adds r5, 0xA - ldr r2, _0809476C - adds r0, r6, 0 - adds r0, 0x27 - ldrb r3, [r0] - str r3, [r2] - adds r0, 0x2 - ldrb r0, [r0] - str r0, [r2, 0x4] - adds r0, r6, 0 - adds r0, 0x2C - ldrb r1, [r0] - cmp r1, 0 - beq _08094774 - adds r0, r1, 0 - adds r0, r3, r0 - str r0, [r2] - ldr r0, _08094770 - ldr r2, [r0] - movs r0, 0 - str r0, [sp] - movs r0, 0x4 - adds r1, r5, 0 - adds r3, r7, 0 - bl xxx_format_and_draw - b _08094784 - .align 2, 0 -_08094768: .4byte gUnknown_8113900 -_0809476C: .4byte gUnknown_202DE30 -_08094770: .4byte gUnknown_8113990 -_08094774: - ldr r0, _080947AC - ldr r2, [r0] - str r1, [sp] - movs r0, 0x4 - adds r1, r5, 0 - adds r3, r7, 0 - bl xxx_format_and_draw -_08094784: - adds r0, r6, 0 - adds r0, 0x2E - ldrb r1, [r0] - cmp r1, 0 - beq _080947B8 - ldr r2, _080947B0 - ldr r0, [r2, 0x4] - adds r0, r1 - str r0, [r2, 0x4] - ldr r0, _080947B4 - ldr r2, [r0] - movs r0, 0 - str r0, [sp] - movs r0, 0x4 - adds r1, r5, 0 - adds r3, r7, 0 - bl xxx_format_and_draw - b _080947C8 - .align 2, 0 -_080947AC: .4byte gUnknown_8113918 -_080947B0: .4byte gUnknown_202DE30 -_080947B4: .4byte gUnknown_81139B4 -_080947B8: - ldr r0, _080947E4 - ldr r2, [r0] - str r1, [sp] - movs r0, 0x4 - adds r1, r5, 0 - adds r3, r7, 0 - bl xxx_format_and_draw -_080947C8: - adds r5, 0x10 - adds r2, r6, 0 - adds r2, 0x1C - ldrb r1, [r6, 0x1C] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080947EC - ldr r0, _080947E8 - adds r1, r2, 0 - movs r2, 0 - bl sub_8090E14 - b _080947F6 - .align 2, 0 -_080947E4: .4byte gUnknown_8113934 -_080947E8: .4byte gUnknown_202DE58 -_080947EC: - ldr r0, _0809481C - ldr r1, _08094820 - ldr r1, [r1] - bl strcpy -_080947F6: - ldr r0, _08094824 - ldr r2, [r0] - movs r0, 0 - str r0, [sp] - movs r0, 0x4 - adds r1, r5, 0 - adds r3, r7, 0 - bl xxx_format_and_draw - adds r0, r7, 0 - bl sub_80073E0 - add sp, 0xCC - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0809481C: .4byte gUnknown_202DE58 -_08094820: .4byte gUnknown_81139B8 -_08094824: .4byte gUnknown_81139CC - thumb_func_end sub_8094558 - - .align 2,0 + .align 2, 0
\ No newline at end of file diff --git a/asm/code_809447C.s b/asm/code_809447C.s new file mode 100644 index 0000000..b10d337 --- /dev/null +++ b/asm/code_809447C.s @@ -0,0 +1,446 @@ + #include "asm/constants/gba_constants.inc" + #include "asm/macros.inc" + + .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: + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0xCC + adds r7, r0, 0 + adds r4, r1, 0 + adds r6, r2, 0 + bl sub_80073B8 + movs r5, 0 + str r5, [sp] + movs r0, 0x10 + movs r1, 0 + adds r2, r4, 0 + adds r3, r7, 0 + bl xxx_format_and_draw + ldr r4, _080945D0 + adds r1, r6, 0 + adds r1, 0x18 + adds r0, r4, 0 + bl sub_8090208 + ldr r0, _080945D4 + ldr r2, [r0] + str r5, [sp] + movs r0, 0x4 + movs r1, 0x10 + adds r3, r7, 0 + bl xxx_format_and_draw + movs r5, 0x1A + adds r0, r4, 0 + adds r1, r6, 0 + movs r2, 0xA + bl sub_80922B4 + adds r4, 0x50 + adds r1, r6, 0 + adds r1, 0xA + adds r0, r4, 0 + movs r2, 0xA + bl sub_80922B4 + movs r1, 0x14 + ldrsh r0, [r6, r1] + bl sub_8094528 + lsls r0, 24 + cmp r0, 0 + beq _080945DC + ldr r0, _080945D8 + ldr r0, [r0] + add r2, sp, 0xCC + add r1, sp, 0x4 + movs r3, 0 + bl xxx_format_string + b _080945EA + .align 2, 0 +_080945D0: .4byte gAvailablePokemonNames +_080945D4: .4byte gUnknown_8113850 +_080945D8: .4byte gUnknown_8113868 +_080945DC: + ldr r0, _0809465C + ldr r0, [r0] + add r2, sp, 0xCC + add r1, sp, 0x4 + movs r3, 0 + bl xxx_format_string +_080945EA: + add r0, sp, 0x4 + bl sub_8008ED0 + movs r4, 0xB0 + subs r0, r4, r0 + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + movs r1, 0 + mov r8, r1 + str r1, [sp] + adds r1, r5, 0 + add r2, sp, 0x4 + adds r3, r7, 0 + bl xxx_format_and_draw + adds r5, 0xA + movs r1, 0x14 + ldrsh r0, [r6, r1] + add r1, sp, 0x4 + bl sub_80944BC + add r0, sp, 0x4 + bl sub_8008ED0 + subs r4, r0 + lsrs r0, r4, 31 + adds r4, r0 + asrs r0, r4, 1 + mov r1, r8 + str r1, [sp] + adds r1, r5, 0 + add r2, sp, 0x4 + adds r3, r7, 0 + bl xxx_format_and_draw + adds r5, 0x10 + ldr r1, _08094660 + ldr r0, [r6, 0x20] + str r0, [r1] + adds r0, r6, 0 + adds r0, 0x2A + ldrb r0, [r0] + str r0, [r1, 0x4] + cmp r0, 0x63 + ble _08094668 + ldr r0, _08094664 + ldr r2, [r0] + mov r0, r8 + str r0, [sp] + movs r0, 0x4 + adds r1, r5, 0 + adds r3, r7, 0 + bl xxx_format_and_draw + b _0809467A + .align 2, 0 +_0809465C: .4byte gUnknown_8113870 +_08094660: .4byte gUnknown_202DE30 +_08094664: .4byte gUnknown_81138C0 +_08094668: + ldr r0, _080946CC + ldr r2, [r0] + mov r1, r8 + str r1, [sp] + movs r0, 0x4 + adds r1, r5, 0 + adds r3, r7, 0 + bl xxx_format_and_draw +_0809467A: + adds r5, 0xA + ldr r4, _080946D0 + movs r1, 0x24 + ldrsh r0, [r6, r1] + str r0, [r4] + ldr r0, _080946D4 + ldr r2, [r0] + movs r0, 0 + mov r8, r0 + str r0, [sp] + movs r0, 0x4 + adds r1, r5, 0 + adds r3, r7, 0 + bl xxx_format_and_draw + adds r5, 0xA + adds r0, r6, 0 + adds r0, 0x26 + ldrb r2, [r0] + str r2, [r4] + adds r0, 0x2 + ldrb r0, [r0] + str r0, [r4, 0x4] + adds r0, r6, 0 + adds r0, 0x2B + ldrb r1, [r0] + cmp r1, 0 + beq _080946DC + adds r0, r1, 0 + adds r0, r2, r0 + str r0, [r4] + ldr r0, _080946D8 + ldr r2, [r0] + mov r1, r8 + str r1, [sp] + movs r0, 0x4 + adds r1, r5, 0 + adds r3, r7, 0 + bl xxx_format_and_draw + b _080946EC + .align 2, 0 +_080946CC: .4byte gUnknown_8113898 +_080946D0: .4byte gUnknown_202DE30 +_080946D4: .4byte gUnknown_81138D0 +_080946D8: .4byte gUnknown_8113950 +_080946DC: + ldr r0, _08094714 + ldr r2, [r0] + str r1, [sp] + movs r0, 0x4 + adds r1, r5, 0 + adds r3, r7, 0 + bl xxx_format_and_draw +_080946EC: + adds r0, r6, 0 + adds r0, 0x2D + ldrb r1, [r0] + cmp r1, 0 + beq _08094720 + ldr r2, _08094718 + ldr r0, [r2, 0x4] + adds r0, r1 + str r0, [r2, 0x4] + ldr r0, _0809471C + ldr r2, [r0] + movs r0, 0 + str r0, [sp] + movs r0, 0x4 + adds r1, r5, 0 + adds r3, r7, 0 + bl xxx_format_and_draw + b _08094730 + .align 2, 0 +_08094714: .4byte gUnknown_81138E4 +_08094718: .4byte gUnknown_202DE30 +_0809471C: .4byte gUnknown_8113974 +_08094720: + ldr r0, _08094768 + ldr r2, [r0] + str r1, [sp] + movs r0, 0x4 + adds r1, r5, 0 + adds r3, r7, 0 + bl xxx_format_and_draw +_08094730: + adds r5, 0xA + ldr r2, _0809476C + adds r0, r6, 0 + adds r0, 0x27 + ldrb r3, [r0] + str r3, [r2] + adds r0, 0x2 + ldrb r0, [r0] + str r0, [r2, 0x4] + adds r0, r6, 0 + adds r0, 0x2C + ldrb r1, [r0] + cmp r1, 0 + beq _08094774 + adds r0, r1, 0 + adds r0, r3, r0 + str r0, [r2] + ldr r0, _08094770 + ldr r2, [r0] + movs r0, 0 + str r0, [sp] + movs r0, 0x4 + adds r1, r5, 0 + adds r3, r7, 0 + bl xxx_format_and_draw + b _08094784 + .align 2, 0 +_08094768: .4byte gUnknown_8113900 +_0809476C: .4byte gUnknown_202DE30 +_08094770: .4byte gUnknown_8113990 +_08094774: + ldr r0, _080947AC + ldr r2, [r0] + str r1, [sp] + movs r0, 0x4 + adds r1, r5, 0 + adds r3, r7, 0 + bl xxx_format_and_draw +_08094784: + adds r0, r6, 0 + adds r0, 0x2E + ldrb r1, [r0] + cmp r1, 0 + beq _080947B8 + ldr r2, _080947B0 + ldr r0, [r2, 0x4] + adds r0, r1 + str r0, [r2, 0x4] + ldr r0, _080947B4 + ldr r2, [r0] + movs r0, 0 + str r0, [sp] + movs r0, 0x4 + adds r1, r5, 0 + adds r3, r7, 0 + bl xxx_format_and_draw + b _080947C8 + .align 2, 0 +_080947AC: .4byte gUnknown_8113918 +_080947B0: .4byte gUnknown_202DE30 +_080947B4: .4byte gUnknown_81139B4 +_080947B8: + ldr r0, _080947E4 + ldr r2, [r0] + str r1, [sp] + movs r0, 0x4 + adds r1, r5, 0 + adds r3, r7, 0 + bl xxx_format_and_draw +_080947C8: + adds r5, 0x10 + adds r2, r6, 0 + adds r2, 0x1C + ldrb r1, [r6, 0x1C] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080947EC + ldr r0, _080947E8 + adds r1, r2, 0 + movs r2, 0 + bl sub_8090E14 + b _080947F6 + .align 2, 0 +_080947E4: .4byte gUnknown_8113934 +_080947E8: .4byte gUnknown_202DE58 +_080947EC: + ldr r0, _0809481C + ldr r1, _08094820 + ldr r1, [r1] + bl strcpy +_080947F6: + ldr r0, _08094824 + ldr r2, [r0] + movs r0, 0 + str r0, [sp] + movs r0, 0x4 + adds r1, r5, 0 + adds r3, r7, 0 + bl xxx_format_and_draw + adds r0, r7, 0 + bl sub_80073E0 + add sp, 0xCC + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0809481C: .4byte gUnknown_202DE58 +_08094820: .4byte gUnknown_81139B8 +_08094824: .4byte gUnknown_81139CC + thumb_func_end sub_8094558 + + .align 2,0 diff --git a/include/number_util.h b/include/number_util.h new file mode 100644 index 0000000..c42ef1c --- /dev/null +++ b/include/number_util.h @@ -0,0 +1,7 @@ +#ifndef GUARD_NUMBER_UTIL_H +#define GUARD_NUMBER_UTIL_H + +// 0x94450 +s32 RoundUpFixedPoint(s32 fixedPointNumber); + +#endif diff --git a/ld_script.txt b/ld_script.txt index eb15086..c3dd6af 100755 --- a/ld_script.txt +++ b/ld_script.txt @@ -264,6 +264,8 @@ SECTIONS { asm/moves_1.o(.text); src/moves_1.o(.text); asm/code_8094148.o(.text); + src/number_util.o(.text); + asm/code_809447C.o(.text); src/code_8092334.o(.text); src/game_options.o(.text); asm/code_8094D28.o(.text); diff --git a/src/dungeon_ai_item_weight.c b/src/dungeon_ai_item_weight.c index 438c064..175b0c2 100644 --- a/src/dungeon_ai_item_weight.c +++ b/src/dungeon_ai_item_weight.c @@ -4,8 +4,8 @@ #include "constants/status.h" #include "dungeon_pokemon_attributes_1.h" #include "moves.h" +#include "number_util.h" -extern s32 GetBellyRoundedUp(u32); extern bool8 CanTargetAdjacentPokemon(struct DungeonEntity*); extern bool8 HasNegativeStatus(struct DungeonEntity*); @@ -34,7 +34,7 @@ u32 EvaluateItem(struct DungeonEntity *targetPokemon, struct ItemSlot *item, u32 } break; case ITEM_ID_DIET_RIBBON: - if (targetOther && GetBellyRoundedUp(pokemonData->belly) > 0) + if (targetOther && RoundUpFixedPoint(pokemonData->belly) > 0) { return 50; } @@ -366,7 +366,7 @@ u32 EvaluateItem(struct DungeonEntity *targetPokemon, struct ItemSlot *item, u32 } break; case ITEM_ID_HUNGER_SEED: - if (GetBellyRoundedUp(pokemonData->belly) > 0) + if (RoundUpFixedPoint(pokemonData->belly) > 0) { return 50; } @@ -412,7 +412,7 @@ u32 EvaluateItem(struct DungeonEntity *targetPokemon, struct ItemSlot *item, u32 case ITEM_ID_APPLE: case ITEM_ID_BIG_APPLE: case ITEM_ID_HUGE_APPLE: - if (GetBellyRoundedUp(pokemonData->belly) < 10) + if (RoundUpFixedPoint(pokemonData->belly) < 10) { return 100; } diff --git a/src/number_util.c b/src/number_util.c new file mode 100644 index 0000000..97005cd --- /dev/null +++ b/src/number_util.c @@ -0,0 +1,22 @@ +#include "global.h" +#include "number_util.h" + +s32 RoundUpFixedPoint(s32 fixedPointNumber) +{ + if ((s16) fixedPointNumber == 0) + { + if (fixedPointNumber >> 16 == 0) + { + return 0; + } + return 1; + } + else if (fixedPointNumber >> 16 != 0) + { + return (s16) fixedPointNumber + 1; + } + else + { + return (s16) fixedPointNumber; + } +} |