diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2017-12-30 13:58:29 -0500 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2017-12-30 13:58:29 -0500 |
commit | ee7ecf3d11732236bc43ae15757056f03e356a05 (patch) | |
tree | d5db7fc74cbfffff9d2cf6ef72d56be3bd85be3f | |
parent | 13b2657c49b60dcf5d851a63346801232f9ee832 (diff) |
through sub_81045CC
-rw-r--r-- | asm/slot_machine.s | 131 | ||||
-rw-r--r-- | src/field/slot_machine.c | 49 |
2 files changed, 49 insertions, 131 deletions
diff --git a/asm/slot_machine.s b/asm/slot_machine.s index e3adefac1..6f5aa38a7 100644 --- a/asm/slot_machine.s +++ b/asm/slot_machine.s @@ -5,137 +5,6 @@ .text - thumb_func_start sub_8104548 -sub_8104548: @ 8104548 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x10] - lsls r0, 16 - asrs r0, 24 - bl sub_8102D28 - ldrh r0, [r4, 0x12] - adds r0, 0x1 - strh r0, [r4, 0x12] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4F - ble _0810458A - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - movs r0, 0 - strh r0, [r4, 0x12] - movs r0, 0x2 - bl sub_81057E8 - ldr r0, _08104590 @ =gSharedMem - adds r0, 0x3F - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _08104594 @ =gSprites - adds r0, r1 - movs r1, 0x3 - bl StartSpriteAnimIfDifferent -_0810458A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08104590: .4byte gSharedMem -_08104594: .4byte gSprites - thumb_func_end sub_8104548 - - thumb_func_start sub_8104598 -sub_8104598: @ 8104598 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x10] - lsls r0, 16 - asrs r0, 24 - bl sub_8102D28 - ldrb r0, [r4, 0x10] - adds r0, 0x80 - strh r0, [r4, 0x10] - ldrh r0, [r4, 0x12] - adds r0, 0x1 - strh r0, [r4, 0x12] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4F - ble _081045C4 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - movs r0, 0 - strh r0, [r4, 0x12] -_081045C4: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8104598 - - thumb_func_start sub_81045CC -sub_81045CC: @ 81045CC - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x10] - lsls r0, 16 - asrs r0, 24 - bl sub_8102D28 - ldrb r0, [r4, 0x10] - adds r0, 0x40 - strh r0, [r4, 0x10] - ldrh r0, [r4, 0x12] - adds r0, 0x1 - strh r0, [r4, 0x12] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x27 - ble _08104634 - movs r0, 0 - strh r0, [r4, 0x12] - ldr r1, _0810460C @ =gSharedMem - ldrb r0, [r1, 0x5] - cmp r0, 0 - beq _08104610 - ldrb r1, [r1, 0xA] - movs r2, 0x14 - ldrsh r0, [r4, r2] - cmp r1, r0 - bgt _0810462E - ldrh r0, [r4, 0x8] - adds r0, 0x1 - b _0810462C - .align 2, 0 -_0810460C: .4byte gSharedMem -_08104610: - movs r1, 0x14 - ldrsh r0, [r4, r1] - cmp r0, 0x3 - ble _0810461E - ldrh r0, [r4, 0x8] - adds r0, 0x1 - b _0810462C -_0810461E: - ldrh r0, [r4, 0x14] - bl sub_81026DC - lsls r0, 24 - cmp r0, 0 - beq _0810462E - movs r0, 0xE -_0810462C: - strh r0, [r4, 0x8] -_0810462E: - ldrh r0, [r4, 0x14] - adds r0, 0x1 - strh r0, [r4, 0x14] -_08104634: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81045CC - thumb_func_start sub_810463C sub_810463C: @ 810463C push {r4-r6,lr} diff --git a/src/field/slot_machine.c b/src/field/slot_machine.c index 8bfb30bfa..50a6fbd6e 100644 --- a/src/field/slot_machine.c +++ b/src/field/slot_machine.c @@ -2618,6 +2618,55 @@ void sub_8104498(struct Task *task) } } +void sub_8104548(struct Task *task) +{ + sub_8102D28(task->data[4] >> 8); + if (++task->data[5] >= 80) + { + task->data[0]++; + task->data[5] = 0; + sub_81057E8(2); + StartSpriteAnimIfDifferent(gSprites + eSlotMachine->unk3F, 3); + } +} + +void sub_8104598(struct Task *task) +{ + sub_8102D28(task->data[4] >> 8); + task->data[4] = (u8)task->data[4] + 0x80; + if (++task->data[5] >= 80) + { + task->data[0]++; + task->data[5] = 0; + } +} + +void sub_81045CC(struct Task *task) +{ + sub_8102D28(task->data[4] >> 8); + task->data[4] = (u8)task->data[4] + 0x40; + if (++task->data[5] >= 40) + { + task->data[5] = 0; + if (eSlotMachine->unk05) + { + if (eSlotMachine->unk0A <= task->data[6]) + { + task->data[0]++; + } + } + else if (task->data[6] > 3) + { + task->data[0]++; + } + else if (sub_81026DC(task->data[6])) + { + task->data[0] = 14; + } + task->data[6]++; + } +} + asm(".section .text_a"); static void LoadSlotMachineWheelOverlay(void); |