diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2017-12-27 23:14:42 -0500 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2017-12-27 23:14:42 -0500 |
commit | e3acf564701fe6bc77c92fc5268083e4adc10ed7 (patch) | |
tree | 595865bc1a76499aa95cef410b045826add06db0 | |
parent | 57af95611d0a3cb0fda3ccebae725221ca5eac3e (diff) |
through sub_8103520
-rw-r--r-- | asm/slot_machine.s | 117 | ||||
-rw-r--r-- | src/field/slot_machine.c | 47 |
2 files changed, 47 insertions, 117 deletions
diff --git a/asm/slot_machine.s b/asm/slot_machine.s index ba64c3c70..9e90a08bd 100644 --- a/asm/slot_machine.s +++ b/asm/slot_machine.s @@ -5,123 +5,6 @@ .text - thumb_func_start sub_810347C -sub_810347C: @ 810347C - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, _081034A0 @ =gSharedMem - movs r2, 0x34 - ldrsh r1, [r0, r2] - movs r2, 0x36 - ldrsh r0, [r0, r2] - cmp r1, r0 - bne _081034B4 - adds r0, r6, 0 - bl sub_810341C - lsls r0, 24 - lsrs r0, 24 - b _081034EA - .align 2, 0 -_081034A0: .4byte gSharedMem -_081034A4: - ldr r0, _081034B0 @ =gSharedMem - strh r5, [r0, 0x32] - mov r1, r8 - strh r1, [r0, 0x38] - movs r0, 0x1 - b _081034EA - .align 2, 0 -_081034B0: .4byte gSharedMem -_081034B4: - movs r2, 0x1 - mov r8, r2 - cmp r1, 0x1 - bne _081034C0 - movs r0, 0x3 - mov r8, r0 -_081034C0: - movs r5, 0 - mov r7, r8 -_081034C4: - lsls r0, r5, 16 - asrs r4, r0, 16 - subs r1, r7, r4 - lsls r1, 16 - asrs r1, 16 - movs r0, 0x2 - bl sub_8102BF8 - lsls r0, 24 - lsrs r0, 24 - cmp r0, r6 - beq _081034A4 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - asrs r0, 16 - cmp r0, 0x4 - ble _081034C4 - movs r0, 0 -_081034EA: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_810347C - - thumb_func_start sub_81034F4 -sub_81034F4: @ 81034F4 - push {r4,r5,lr} - movs r5, 0 - b _08103500 -_081034FA: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 -_08103500: - lsls r0, r5, 16 - asrs r4, r0, 16 - adds r0, r4, 0 - bl sub_81030E0 - lsls r0, 24 - cmp r0, 0 - bne _081034FA - ldr r0, _0810351C @ =gSharedMem - strh r5, [r0, 0x2E] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810351C: .4byte gSharedMem - thumb_func_end sub_81034F4 - - thumb_func_start sub_8103520 -sub_8103520: @ 8103520 - push {lr} - adds r1, r0, 0 - ldrb r0, [r1] - cmp r0, 0 - bne _0810352E - movs r0, 0x1 - b _08103538 -_0810352E: - cmp r0, 0x1 - beq _08103536 - movs r0, 0 - b _0810353C -_08103536: - movs r0, 0 -_08103538: - strb r0, [r1] - movs r0, 0x1 -_0810353C: - pop {r1} - bx r1 - thumb_func_end sub_8103520 - thumb_func_start sub_8103540 sub_8103540: @ 8103540 push {lr} diff --git a/src/field/slot_machine.c b/src/field/slot_machine.c index df6a6bd0b..612dcd49f 100644 --- a/src/field/slot_machine.c +++ b/src/field/slot_machine.c @@ -1596,6 +1596,53 @@ bool8 sub_810341C(u8 a0) return FALSE; } +bool8 sub_810347C(u8 a0) +{ + s16 i; + s16 r8; + if (eSlotMachine->unk34[0] == eSlotMachine->unk34[1]) + { + return sub_810341C(a0); + } + r8 = 1; + if (eSlotMachine->unk34[0] == 1) + { + r8 = 3; + } + for (i = 0; i < 5; i++) + { + if (sub_8102BF8(2, r8 - i) == a0) + { + eSlotMachine->unk2E[2] = i; + eSlotMachine->unk34[2] = r8; + return TRUE; + } + } + return FALSE; +} + +void sub_81034F4(void) +{ + s16 i; + for (i = 0; sub_81030E0(i); i++); + eSlotMachine->unk2E[0] = i; +} + +bool8 sub_8103520(u8 *a0) +{ + if (*a0 == 0) + { + *a0 = 1; + return TRUE; + } + if (*a0 == 1) + { + *a0 = 0; + return TRUE; + } + return FALSE; +} + asm(".section .text_a"); static void LoadSlotMachineWheelOverlay(void); |