summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnonymousRandomPerson <chenghanngan.us@gmail.com>2022-01-06 23:11:38 -0600
committerAnonymousRandomPerson <chenghanngan.us@gmail.com>2022-01-06 23:11:38 -0600
commit05768ae71decc1539bd7f6e2c6d371b8c619cb24 (patch)
tree8465b31895a323520b549cba629d397868135abb
parent393e6e9eb0d558af0f7ed610c8874fd7c071878b (diff)
Decomped RoundUpFixedPoint()
-rw-r--r--asm/code_803D110.s2
-rw-r--r--asm/code_8048480.s2
-rw-r--r--asm/code_80521D0.s2
-rw-r--r--asm/code_8057824.s24
-rw-r--r--asm/code_806CD90.s2
-rw-r--r--asm/code_8073CF0.s16
-rw-r--r--asm/code_8075BA4.s30
-rw-r--r--asm/code_8094148.s469
-rw-r--r--asm/code_809447C.s446
-rw-r--r--include/number_util.h7
-rwxr-xr-xld_script.txt2
-rw-r--r--src/dungeon_ai_item_weight.c8
-rw-r--r--src/number_util.c22
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;
+ }
+}