diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2019-04-07 21:39:38 -0400 |
---|---|---|
committer | huderlem <huderlem@gmail.com> | 2019-04-08 17:33:35 -0500 |
commit | 0a0e88cde4e51ddfe480a3fbe4ec1f5a48c134db (patch) | |
tree | da6da8edd064085c1b217095e42db6c005747947 | |
parent | d4f6f903025d980ce7d6ab99de1495d85f650dc6 (diff) |
sub_80C3990
-rw-r--r-- | asm/contest_link_80C2020.s | 47 | ||||
-rw-r--r-- | src/battle/contest_link_80C2020.c | 21 |
2 files changed, 21 insertions, 47 deletions
diff --git a/asm/contest_link_80C2020.s b/asm/contest_link_80C2020.s index 5d8a008cf..9921b55b4 100644 --- a/asm/contest_link_80C2020.s +++ b/asm/contest_link_80C2020.s @@ -5,53 +5,6 @@ .text - thumb_func_start sub_80C3990 -sub_80C3990: @ 80C3990 - push {r4,r5,lr} - lsls r0, 24 - lsls r1, 24 - lsrs r5, r1, 24 - ldr r1, _080C39DC @ =gUnknown_02038670 - lsrs r0, 23 - adds r0, r1 - movs r1, 0 - ldrsh r0, [r0, r1] - lsls r4, r0, 16 - adds r0, r4, 0 - movs r1, 0x3F - bl __udivsi3 - adds r1, r0, 0 - ldr r0, _080C39E0 @ =0x0000ffff - ands r0, r1 - cmp r0, 0 - beq _080C39BC - movs r0, 0x80 - lsls r0, 9 - adds r1, r0 -_080C39BC: - lsrs r1, 16 - cmp r1, 0 - bne _080C39C8 - cmp r4, 0 - beq _080C39C8 - movs r1, 0x1 -_080C39C8: - cmp r5, 0 - beq _080C39D2 - cmp r1, 0xA - bls _080C39D2 - movs r1, 0xA -_080C39D2: - lsls r0, r1, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_080C39DC: .4byte gUnknown_02038670 -_080C39E0: .4byte 0x0000ffff - thumb_func_end sub_80C3990 - thumb_func_start sub_80C39E4 sub_80C39E4: @ 80C39E4 push {r4-r7,lr} diff --git a/src/battle/contest_link_80C2020.c b/src/battle/contest_link_80C2020.c index 43f6b970e..bdb773f44 100644 --- a/src/battle/contest_link_80C2020.c +++ b/src/battle/contest_link_80C2020.c @@ -1759,3 +1759,24 @@ void sub_80C37E4(void) } } #endif + +// fakematching? +u8 sub_80C3990(u8 monIndex, u8 arg1) +{ + u32 var0; + u32 var1; + + var0 = gUnknown_02038670[monIndex] << 16; + var1 = var0 / 0x3F; + if (var1 & 0xFFFF) + var1 += 0x10000; + + var1 >>= 16; + if (var1 == 0 && var0) + var1 = 1; + + if (arg1 && var1 > 10) + var1 = 10; + + return var1; +} |