summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2017-12-23 20:21:03 -0500
committerPikalaxALT <pikalaxalt@gmail.com>2017-12-23 20:21:03 -0500
commit9041e039a728f4d2cb7c4938eb5585441965952f (patch)
tree580acabc8044a798452c4933a38c807e29f826bd
parentaf86226a5b15ccf1d7d1fea2dc96ff6bba0dc5fc (diff)
through sub_8102680
-rw-r--r--asm/slot_machine.s78
-rw-r--r--src/field/slot_machine.c35
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) {