summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2017-12-21 16:32:23 -0500
committerPikalaxALT <pikalaxalt@gmail.com>2017-12-21 16:32:23 -0500
commit2fe7a0e1542fa24731d233ed3b9e97ce4efa9c31 (patch)
tree9e2cb2bb2c752e92970f8f4c2c614f4437d40672 /src
parent994bf583aa4d50b95f7b43179206639a81aa68ea (diff)
through sub_8102090
Diffstat (limited to 'src')
-rw-r--r--src/field/slot_machine.c173
1 files changed, 138 insertions, 35 deletions
diff --git a/src/field/slot_machine.c b/src/field/slot_machine.c
index 4cf93d5d6..94dd5b08f 100644
--- a/src/field/slot_machine.c
+++ b/src/field/slot_machine.c
@@ -34,30 +34,39 @@ extern const u16 gUnknown_08E95A18[];
extern u16 gUnknown_08E95AB8[];
extern u16 gUnknown_08E95FB8[];
-void sub_81018B8(void);
-void sub_8101954(void);
-void sub_81019B0(u8 arg0, void *ptr);
-void nullsub_67(u8 taskId);
-void sub_8101A28(void);
-void sub_8101A44(void);
-void sub_8101A8C(void);
-void sub_8101AE0(void);
-void sub_8101B04(void);
-void sub_8101BA4(void);
-void sub_8101C84(void);
-void sub_8101CA0(void);
-void sub_8101CC0(void);
-void sub_8101CD4(void);
-void sub_8101CEC(void);
-void sub_8101D04(void);
-void sub_8101D24(u8 taskId);
-
+static void sub_81018B8(void);
+static void sub_8101954(void);
+static void sub_81019B0(u8 arg0, void *ptr);
+static void nullsub_67(u8 taskId);
+static void sub_8101A28(void);
+static void sub_8101A44(void);
+static void sub_8101A8C(void);
+static void sub_8101AE0(void);
+static void sub_8101B04(void);
+static void sub_8101BA4(void);
+static void sub_8101C84(void);
+static void sub_8101CA0(void);
+static void sub_8101CC0(void);
+static void sub_8101CD4(void);
+static void sub_8101CEC(void);
+static void sub_8101D04(void);
+static void sub_8101D24(u8 taskId);
+
+void sub_8102484(void);
+void sub_81024F0(void);
void sub_8102DA8(void);
+void sub_8102DEC(u8 a0);
+void sub_8102E1C(u8 a0);
+bool8 sub_8102E40(u8 a0);
+void sub_8103C14(u8 a0);
void sub_8103D50(u8 a0);
void sub_8103DC8(void);
void sub_8104048(void);
void sub_810423C(u8 a0);
+void sub_810430C(void);
+bool8 sub_810432C(void);
void sub_8104AB8(u8 a0);
+bool8 sub_8104AEC(void);
void sub_8104C5C(void);
void sub_8104CAC(u8 arg0);
bool8 sub_8104E18(void);
@@ -67,6 +76,7 @@ void sub_81050C4(void);
void sub_81063C0(void);
void sub_8106448(void);
void sub_81064B8(void);
+u16 dp15_jump_random_unknown(void);
void PlaySlotMachine(u8 arg0, void *ptr)
{
@@ -74,7 +84,7 @@ void PlaySlotMachine(u8 arg0, void *ptr)
SetMainCallback2(sub_81018B8);
}
-void sub_81018B8(void)
+static void sub_81018B8(void)
{
switch (gMain.state)
{
@@ -113,7 +123,7 @@ void sub_81018B8(void)
}
}
-void sub_8101954(void)
+static void sub_8101954(void)
{
RunTasks();
AnimateSprites();
@@ -132,7 +142,7 @@ void sub_810196C(void)
REG_WINOUT = eSlotMachine->winOut;
}
-void sub_81019B0(u8 arg0, void *ptr)
+static void sub_81019B0(u8 arg0, void *ptr)
{
struct Task *task = &gTasks[CreateTask(nullsub_67, 0xFF)];
task->data[0] = arg0;
@@ -146,18 +156,18 @@ void sub_81019EC(void)
LoadWordFromTwoHalfwords((u16 *)(task->data + 1), (u32 *)&eSlotMachine->unk64);
}
-void nullsub_67(u8 taskId)
+static void nullsub_67(u8 taskId)
{
}
-void sub_8101A28(void)
+static void sub_8101A28(void)
{
SetVBlankCallback(NULL);
SetHBlankCallback(NULL);
REG_DISPCNT = 0;
}
-void sub_8101A44(void)
+static void sub_8101A44(void)
{
u16 imeBak;
SetVBlankCallback(sub_810196C);
@@ -169,17 +179,17 @@ void sub_8101A44(void)
REG_DISPCNT = DISPCNT_OBJ_1D_MAP | DISPCNT_BG_ALL_ON | DISPCNT_OBJ_ON | DISPCNT_WIN0_ON;
}
-void sub_8101A8C(void)
+static void sub_8101A8C(void)
{
DmaClearLarge16(3, (u16 *)(BG_VRAM), BG_VRAM_SIZE, 0x1000);
}
-void sub_8101AE0(void)
+static void sub_8101AE0(void)
{
DmaClear16(3, (u16 *)OAM, OAM_SIZE);
}
-void sub_8101B04(void)
+static void sub_8101B04(void)
{
REG_BG0CNT = 0;
REG_BG1CNT = 0;
@@ -205,7 +215,7 @@ void sub_8101B04(void)
extern const s16 gUnknown_083ECCF8[3][2];
-void sub_8101BA4(void)
+static void sub_8101BA4(void)
{
u8 i;
@@ -237,13 +247,13 @@ void sub_8101BA4(void)
}
}
-void sub_8101C84(void)
+static void sub_8101C84(void)
{
SetUpWindowConfig(&gWindowConfig_81E7128);
InitMenuWindow(&gWindowConfig_81E7128);
}
-void sub_8101CA0(void)
+static void sub_8101CA0(void)
{
ResetPaletteFade();
ResetSpriteData();
@@ -252,14 +262,14 @@ void sub_8101CA0(void)
ResetTasks();
}
-void sub_8101CC0(void)
+static void sub_8101CC0(void)
{
sub_8106448();
sub_81064B8();
sub_81063C0();
}
-void sub_8101CD4(void)
+static void sub_8101CD4(void)
{
sub_8104EA8();
sub_8104F8C();
@@ -267,7 +277,7 @@ void sub_8101CD4(void)
sub_81050C4();
}
-void sub_8101CEC(void)
+static void sub_8101CEC(void)
{
sub_8104048();
sub_8102DA8();
@@ -277,12 +287,12 @@ void sub_8101CEC(void)
extern bool8 (*const gUnknown_083ECAAC[])(struct Task *task);
-void sub_8101D04(void)
+static void sub_8101D04(void)
{
sub_8101D24(CreateTask(sub_8101D24, 0));
}
-void sub_8101D24(u8 taskId)
+static void sub_8101D24(u8 taskId)
{
while (gUnknown_083ECAAC[eSlotMachine->state](gTasks + taskId));
}
@@ -404,6 +414,99 @@ bool8 sub_8101F44(struct Task *task)
return FALSE;
}
+bool8 sub_8101F60(struct Task *task)
+{
+ if (gMain.newKeys & (A_BUTTON | B_BUTTON))
+ {
+ MenuZeroFillScreen();
+ eSlotMachine->state = 5;
+ }
+ return FALSE;
+}
+
+bool8 sub_8101F88(struct Task *task)
+{
+ if (sub_8104AEC())
+ {
+ eSlotMachine->state = 5;
+ }
+ return FALSE;
+}
+
+bool8 sub_8101FA4(struct Task *task)
+{
+ sub_8102484();
+ sub_8104DA4();
+ sub_8102DEC(0);
+ sub_8102DEC(1);
+ sub_8102DEC(2);
+ task->data[0] = 0;
+ if (eSlotMachine->unk04 & 0x20)
+ {
+ sub_810430C();
+ eSlotMachine->state = 10;
+ }
+ else
+ {
+ sub_8104CAC(1);
+ eSlotMachine->state = 11;
+ }
+ eSlotMachine->unk1A = 8;
+ if (eSlotMachine->unk0A)
+ {
+ eSlotMachine->unk1A = dp15_jump_random_unknown();
+ }
+ return FALSE;
+}
+
+bool8 sub_8102008(struct Task *task)
+{
+ if (sub_810432C())
+ {
+ sub_8104CAC(1);
+ eSlotMachine->unk04 &= 0xDF;
+ eSlotMachine->state = 11;
+ }
+ return FALSE;
+}
+
+bool8 sub_8102034(struct Task *task)
+{
+ if (++task->data[0] >= 30)
+ {
+ sub_81024F0();
+ eSlotMachine->state = 12;
+ }
+ return FALSE;
+}
+
+bool8 sub_8102058(struct Task *task)
+{
+ if (gMain.newKeys & A_BUTTON)
+ {
+ PlaySE(SE_JYUNI);
+ sub_8102E1C(eSlotMachine->unk18);
+ sub_8103C14(eSlotMachine->unk18);
+ eSlotMachine->state = 13;
+ }
+ return FALSE;
+}
+
+bool8 sub_8102090(struct Task *task)
+{
+ if (!sub_8102E40(eSlotMachine->unk18))
+ {
+ eSlotMachine->unk18++;
+ eSlotMachine->state = 12;
+ if (eSlotMachine->unk18 > 2)
+ {
+ eSlotMachine->state = 14;
+ }
+ return TRUE;
+ }
+ return FALSE;
+}
+
asm(".section .text_a");
static void LoadSlotMachineWheelOverlay(void);