diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2017-12-23 20:21:03 -0500 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2017-12-23 20:21:03 -0500 |
commit | 9041e039a728f4d2cb7c4938eb5585441965952f (patch) | |
tree | 580acabc8044a798452c4933a38c807e29f826bd | |
parent | af86226a5b15ccf1d7d1fea2dc96ff6bba0dc5fc (diff) |
through sub_8102680
-rw-r--r-- | asm/slot_machine.s | 78 | ||||
-rw-r--r-- | src/field/slot_machine.c | 35 |
2 files changed, 34 insertions, 79 deletions
diff --git a/asm/slot_machine.s b/asm/slot_machine.s index 423735f9f..4d492fa2a 100644 --- a/asm/slot_machine.s +++ b/asm/slot_machine.s @@ -5,84 +5,6 @@ .text - thumb_func_start sub_810264C -sub_810264C: @ 810264C - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r3, _08102660 @ =gSharedMem - ldrb r0, [r3, 0x3] - cmp r0, 0 - beq _08102668 - ldr r0, _08102664 @ =gUnknown_083ECDAC - b _0810266A - .align 2, 0 -_08102660: .4byte gSharedMem -_08102664: .4byte gUnknown_083ECDAC -_08102668: - ldr r0, _0810267C @ =gUnknown_083ECD46 -_0810266A: - lsls r1, r2, 4 - adds r1, r2 - ldrb r3, [r3, 0x2] - adds r1, r3 - adds r1, r0 - ldrb r0, [r1] - pop {r1} - bx r1 - .align 2, 0 -_0810267C: .4byte gUnknown_083ECD46 - thumb_func_end sub_810264C - - thumb_func_start sub_8102680 -sub_8102680: @ 8102680 - push {r4-r6,lr} - ldr r1, _081026A4 @ =gSharedMem - movs r0, 0 - strb r0, [r1, 0x5] - bl Random - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0 - bl sub_810264C - lsls r0, 24 - lsrs r0, 24 - cmp r4, r0 - bcc _081026D2 - movs r6, 0x5 - b _081026AE - .align 2, 0 -_081026A4: .4byte gSharedMem -_081026A8: - subs r0, r5, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 -_081026AE: - lsls r0, r6, 16 - asrs r5, r0, 16 - cmp r5, 0 - ble _081026CE - bl Random - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r6, 24 - lsrs r0, 24 - bl sub_810264C - lsls r0, 24 - lsrs r0, 24 - cmp r4, r0 - bcs _081026A8 -_081026CE: - ldr r0, _081026D8 @ =gSharedMem - strb r6, [r0, 0x5] -_081026D2: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_081026D8: .4byte gSharedMem - thumb_func_end sub_8102680 - thumb_func_start sub_81026DC sub_81026DC: @ 81026DC push {r4,lr} diff --git a/src/field/slot_machine.c b/src/field/slot_machine.c index 08506a59f..cc8c28654 100644 --- a/src/field/slot_machine.c +++ b/src/field/slot_machine.c @@ -926,6 +926,40 @@ u8 sub_81025BC(void) return i; } +extern const u8 gUnknown_083ECDAC[][17]; +extern const u8 gUnknown_083ECD46[][17]; + +u8 sub_810264C(u8 a0) +{ + if (eSlotMachine->unk03 == 0) + { + return gUnknown_083ECD46[a0][eSlotMachine->unk02]; + } + return gUnknown_083ECDAC[a0][eSlotMachine->unk02]; +} + +void sub_8102680(void) +{ + u8 rval; + s16 i; + + eSlotMachine->unk05 = 0; + rval = Random(); + if (rval < sub_810264C(0)) + { + return; + } + for (i = 5; i > 0; i--) + { + rval = Random(); + if (rval < sub_810264C(i)) + { + break; + } + } + eSlotMachine->unk05 = i; +} + asm(".section .text_a"); static void LoadSlotMachineWheelOverlay(void); @@ -957,7 +991,6 @@ void sub_8104CAC(u8 arg0) { #endif } } - asm(".section .text_b"); static void sub_8106448(void) { |