From 8fd3100fb491c22bb90d1a86f2f1b0fd3b090ac4 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 20 Dec 2017 17:31:27 -0500 Subject: Through sub_8101A28 --- src/field/slot_machine.c | 125 +++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 122 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/field/slot_machine.c b/src/field/slot_machine.c index 89ec68b0a..3bff71f4f 100644 --- a/src/field/slot_machine.c +++ b/src/field/slot_machine.c @@ -1,13 +1,24 @@ #include "global.h" +#include "main.h" #include "slot_machine.h" #include "decompress.h" #include "palette.h" #include "task.h" +#include "util.h" #include "ewram.h" -struct UnkStruct2000000 { - /*0x00*/ u8 filler00[61]; +struct SlotMachineEwramStruct { + /*0x00*/ u8 unk00; + /*0x01*/ u8 unk01; + /*0x02*/ u8 filler02[59]; /*0x3D*/ u8 unk3D; + /*0x3E*/ u8 filler3E[26]; + /*0x58*/ u16 win0h; + /*0x5a*/ u16 win0v; + /*0x5c*/ u16 winIn; + /*0x5e*/ u16 winOut; + /*0x60*/ u8 filler_60[4]; + /*0x64*/ void *unk64; }; struct UnkStruct1 { @@ -31,6 +42,114 @@ 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_8101BA4(void); +void sub_8101A8C(void); +void sub_8101AE0(void); +void sub_8101B04(void); +void sub_8101C84(void); +void sub_8101CA0(void); +void sub_8101CC0(void); +void sub_8101CD4(void); +void sub_8101CEC(void); +void sub_8101A44(void); + + +void PlaySlotMachine(u8 arg0, void *ptr) +{ + sub_81019B0(arg0, ptr); + SetMainCallback2(sub_81018B8); +} + +void sub_81018B8(void) +{ + switch (gMain.state) + { + case 0: + sub_8101A28(); + sub_8101BA4(); + gMain.state++; + break; + case 1: + sub_8101A8C(); + gMain.state++; + break; + case 2: + sub_8101AE0(); + sub_8101B04(); + gMain.state++; + break; + case 3: + sub_8101C84(); + gMain.state++; + break; + case 4: + sub_8101CA0(); + gMain.state++; + break; + case 5: + sub_8101CC0(); + gMain.state++; + break; + case 6: + sub_8101CD4(); + sub_8101CEC(); + sub_8101A44(); + SetMainCallback2(sub_8101954); + break; + } +} + +void sub_8101954(void) +{ + RunTasks(); + AnimateSprites(); + BuildOamBuffer(); + UpdatePaletteFade(); +} + +void sub_810196C(void) +{ + LoadOam(); + ProcessSpriteCopyRequests(); + TransferPlttBuffer(); + REG_WIN0H = eSlotMachine->win0h; + REG_WIN0V = eSlotMachine->win0v; + REG_WININ = eSlotMachine->winIn; + REG_WINOUT = eSlotMachine->winOut; +} + +void sub_81019B0(u8 arg0, void *ptr) +{ + struct Task *task = &gTasks[CreateTask(nullsub_67, 0xFF)]; + task->data[0] = arg0; + StoreWordInTwoHalfwords(task->data + 1, (intptr_t)ptr); +} + +void sub_81019EC(void) +{ + struct Task *task = &gTasks[FindTaskIdByFunc(nullsub_67)]; + eSlotMachine->unk01 = task->data[0]; + LoadWordFromTwoHalfwords((u16 *)(task->data + 1), (u32 *)&eSlotMachine->unk64); +} + +void nullsub_67(u8 taskId) +{ +} + +void sub_8101A28(void) +{ + SetVBlankCallback(NULL); + SetHBlankCallback(NULL); + REG_DISPCNT = 0; +} + +asm(".section .text_a"); + static void LoadSlotMachineWheelOverlay(void); void sub_8104CAC(u8 arg0) { @@ -39,7 +158,7 @@ void sub_8104CAC(u8 arg0) { sub_8104DA4(); - task = &gTasks[ewram0_8->unk3D]; + task = &gTasks[eSlotMachine->unk3D]; task->data[1] = arg0; i = 0; -- cgit v1.2.3 From f0957176bc96aef3bac673ac520ba55832957ba8 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 20 Dec 2017 17:51:17 -0500 Subject: through sub_8101AE0 --- src/field/slot_machine.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'src') diff --git a/src/field/slot_machine.c b/src/field/slot_machine.c index 3bff71f4f..60f8a58ff 100644 --- a/src/field/slot_machine.c +++ b/src/field/slot_machine.c @@ -148,6 +148,28 @@ void sub_8101A28(void) REG_DISPCNT = 0; } +void sub_8101A44(void) +{ + u16 imeBak; + SetVBlankCallback(sub_810196C); + imeBak = REG_IME; + REG_IME = 0; + REG_IE |= INTR_FLAG_VBLANK; + REG_IME = imeBak; + REG_DISPSTAT |= DISPSTAT_VBLANK_INTR; + REG_DISPCNT = DISPCNT_OBJ_1D_MAP | DISPCNT_BG_ALL_ON | DISPCNT_OBJ_ON | DISPCNT_WIN0_ON; +} + +void sub_8101A8C(void) +{ + DmaClearLarge16(3, (u16 *)(BG_VRAM), BG_VRAM_SIZE, 0x1000); +} + +void sub_8101AE0(void) +{ + DmaClear16(3, (u16 *)OAM, OAM_SIZE); +} + asm(".section .text_a"); static void LoadSlotMachineWheelOverlay(void); -- cgit v1.2.3 From 9c9c31b1e15014d7cfeb3856717d9b29715d46a5 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 20 Dec 2017 20:09:48 -0500 Subject: through sub_8101D8C --- src/field/slot_machine.c | 162 ++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 145 insertions(+), 17 deletions(-) (limited to 'src') diff --git a/src/field/slot_machine.c b/src/field/slot_machine.c index 60f8a58ff..cb1326151 100644 --- a/src/field/slot_machine.c +++ b/src/field/slot_machine.c @@ -1,26 +1,16 @@ #include "global.h" +#include "random.h" +#include "sound.h" #include "main.h" #include "slot_machine.h" #include "decompress.h" #include "palette.h" #include "task.h" #include "util.h" +#include "text.h" +#include "menu.h" #include "ewram.h" -struct SlotMachineEwramStruct { - /*0x00*/ u8 unk00; - /*0x01*/ u8 unk01; - /*0x02*/ u8 filler02[59]; - /*0x3D*/ u8 unk3D; - /*0x3E*/ u8 filler3E[26]; - /*0x58*/ u16 win0h; - /*0x5a*/ u16 win0v; - /*0x5c*/ u16 winIn; - /*0x5e*/ u16 winOut; - /*0x60*/ u8 filler_60[4]; - /*0x64*/ void *unk64; -}; - struct UnkStruct1 { /*0x00*/ u8 unk00; /*0x01*/ u8 unk01; @@ -47,17 +37,30 @@ void sub_8101954(void); void sub_81019B0(u8 arg0, void *ptr); void nullsub_67(u8 taskId); void sub_8101A28(void); -void sub_8101BA4(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_8101A44(void); - +void sub_8101D04(void); +void sub_8101D24(u8 taskId); + +void sub_8102DA8(void); +void sub_8103DC8(void); +void sub_8104048(void); +void sub_810423C(u8 a0); +void sub_8104C5C(void); +void sub_8104EA8(void); +void sub_8104F8C(void); +void sub_81050C4(void); +void sub_8106448(void); +void sub_81064B8(void); +void sub_81063C0(void); void PlaySlotMachine(u8 arg0, void *ptr) { @@ -170,6 +173,131 @@ void sub_8101AE0(void) DmaClear16(3, (u16 *)OAM, OAM_SIZE); } +void sub_8101B04(void) +{ + REG_BG0CNT = 0; + REG_BG1CNT = 0; + REG_BG2CNT = 0; + REG_BG3CNT = 0; + REG_BG0HOFS = 0; + REG_BG0VOFS = 0; + REG_BG1HOFS = 0; + REG_BG1VOFS = 0; + REG_BG2HOFS = 0; + REG_BG2VOFS = 0; + REG_BG3HOFS = 0; + REG_BG3VOFS = 0; + REG_BG0CNT = BGCNT_PRIORITY(0) | BGCNT_SCREENBASE(31) | BGCNT_CHARBASE(2); + REG_BG1CNT = BGCNT_PRIORITY(1) | BGCNT_SCREENBASE(28); + REG_BG2CNT = BGCNT_PRIORITY(2) | BGCNT_SCREENBASE(29); + REG_BG3CNT = BGCNT_PRIORITY(2) | BGCNT_SCREENBASE(30); + REG_WININ = 0x3f; + REG_WINOUT = 0x3f; + REG_BLDCNT = BLDCNT_TGT1_BG3 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_OBJ; + REG_BLDALPHA = 0x809; +} + +extern const s16 gUnknown_083ECCF8[3][2]; + +void sub_8101BA4(void) +{ + u8 i; + + sub_81019EC(); + eSlotMachine->unk00 = 0; + eSlotMachine->unk02 = 0; + eSlotMachine->unk03 = Random() & 1; + eSlotMachine->unk04 = 0; + eSlotMachine->unk08 = 0; + eSlotMachine->unk0A = 0; + eSlotMachine->unk0B = 0; + eSlotMachine->coins = gSaveBlock1.coins; + eSlotMachine->unk0E = 0; + eSlotMachine->unk10 = 0; + eSlotMachine->unk12 = 0; + eSlotMachine->unk18 = 0; + eSlotMachine->unk1A = 8; + eSlotMachine->win0h = 0xf0; + eSlotMachine->win0v = 0xa0; + eSlotMachine->winIn = 0x3f; + eSlotMachine->winOut = 0x3f; + eSlotMachine->backupMapMusic = GetCurrentMapMusic(); + for (i = 0; i < 3; i++) + { + eSlotMachine->unk22[i] = 0; + eSlotMachine->unk28[i] = gUnknown_083ECCF8[i][eSlotMachine->unk03] % 21; + eSlotMachine->unk1C[i] = 0x1f8 - eSlotMachine->unk28[i] * 24; + eSlotMachine->unk1C[i] %= 0x1f8; + } +} + +void sub_8101C84(void) +{ + SetUpWindowConfig(&gWindowConfig_81E7128); + InitMenuWindow(&gWindowConfig_81E7128); +} + +void sub_8101CA0(void) +{ + ResetPaletteFade(); + ResetSpriteData(); + gOamLimit = 128; + FreeAllSpritePalettes(); + ResetTasks(); +} + +void sub_8101CC0(void) +{ + sub_8106448(); + sub_81064B8(); + sub_81063C0(); +} + +void sub_8101CD4(void) +{ + sub_8104EA8(); + sub_8104F8C(); + sub_8103DC8(); + sub_81050C4(); +} + +void sub_8101CEC(void) +{ + sub_8104048(); + sub_8102DA8(); + sub_8104C5C(); + sub_8101D04(); +} + +extern bool8 (*const gUnknown_083ECAAC[])(struct Task *task); + +void sub_8101D04(void) +{ + sub_8101D24(CreateTask(sub_8101D24, 0)); +} + +void sub_8101D24(u8 taskId) +{ + while (gUnknown_083ECAAC[eSlotMachine->unk00](gTasks + taskId)); +} + +bool8 sub_8101D5C(struct Task *task) +{ + BeginNormalPaletteFade(-1, 0, 16, 0, 0); + sub_810423C(eSlotMachine->unk02); + eSlotMachine->unk00++; + return FALSE; +} + +bool8 sub_8101D8C(struct Task *task) +{ + if (!gPaletteFade.active) + { + eSlotMachine->unk00++; + } + return FALSE; +} + asm(".section .text_a"); static void LoadSlotMachineWheelOverlay(void); -- cgit v1.2.3 From 3f6124709ae7843bcc82183c387ce03290c28c36 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 21 Dec 2017 08:42:29 -0500 Subject: through sub_8101E3C --- src/field/slot_machine.c | 104 ++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 98 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/field/slot_machine.c b/src/field/slot_machine.c index cb1326151..16cfea7b5 100644 --- a/src/field/slot_machine.c +++ b/src/field/slot_machine.c @@ -1,4 +1,5 @@ #include "global.h" +#include "constants/songs.h" #include "random.h" #include "sound.h" #include "main.h" @@ -51,16 +52,20 @@ void sub_8101D04(void); void sub_8101D24(u8 taskId); void sub_8102DA8(void); +void sub_8103D50(u8 a0); void sub_8103DC8(void); void sub_8104048(void); void sub_810423C(u8 a0); +void sub_8104AB8(u8 a0); void sub_8104C5C(void); +void sub_8104CAC(u8 arg0); +bool8 sub_8104E18(void); void sub_8104EA8(void); void sub_8104F8C(void); void sub_81050C4(void); +void sub_81063C0(void); void sub_8106448(void); void sub_81064B8(void); -void sub_81063C0(void); void PlaySlotMachine(u8 arg0, void *ptr) { @@ -204,7 +209,7 @@ void sub_8101BA4(void) u8 i; sub_81019EC(); - eSlotMachine->unk00 = 0; + eSlotMachine->state = 0; eSlotMachine->unk02 = 0; eSlotMachine->unk03 = Random() & 1; eSlotMachine->unk04 = 0; @@ -214,7 +219,7 @@ void sub_8101BA4(void) eSlotMachine->coins = gSaveBlock1.coins; eSlotMachine->unk0E = 0; eSlotMachine->unk10 = 0; - eSlotMachine->unk12 = 0; + eSlotMachine->bet = 0; eSlotMachine->unk18 = 0; eSlotMachine->unk1A = 8; eSlotMachine->win0h = 0xf0; @@ -278,14 +283,14 @@ void sub_8101D04(void) void sub_8101D24(u8 taskId) { - while (gUnknown_083ECAAC[eSlotMachine->unk00](gTasks + taskId)); + while (gUnknown_083ECAAC[eSlotMachine->state](gTasks + taskId)); } bool8 sub_8101D5C(struct Task *task) { BeginNormalPaletteFade(-1, 0, 16, 0, 0); sub_810423C(eSlotMachine->unk02); - eSlotMachine->unk00++; + eSlotMachine->state++; return FALSE; } @@ -293,7 +298,94 @@ bool8 sub_8101D8C(struct Task *task) { if (!gPaletteFade.active) { - eSlotMachine->unk00++; + eSlotMachine->state++; + } + return FALSE; +} + +bool8 sub_8101DB0(struct Task *task) +{ + eSlotMachine->unk0E = 0; + eSlotMachine->bet = 0; + eSlotMachine->unk18 = 0; + eSlotMachine->unk04 &= 0xc0; + eSlotMachine->state = 4; + if (eSlotMachine->coins <= 0) + { + eSlotMachine->state = 25; + } + else if (eSlotMachine->unk0A) + { + eSlotMachine->state = 3; + sub_8104CAC(4); + } + return TRUE; +} + +bool8 sub_8101DF4(struct Task *task) +{ + if (sub_8104E18()) + { + eSlotMachine->state = 4; + } + return FALSE; +} + +bool8 sub_8101E10(struct Task *task) +{ + sub_8104CAC(0); + eSlotMachine->state = 5; + if (eSlotMachine->coins >= 9999) + { + eSlotMachine->state = 23; + } + return TRUE; +} + +bool8 sub_8101E3C(struct Task *task) +{ + s16 i; + + if (gMain.newKeys & SELECT_BUTTON) + { + sub_8104AB8(0); + eSlotMachine->state = 8; + } + else if (gMain.newKeys & R_BUTTON) + { + if (eSlotMachine->coins - (3 - eSlotMachine->bet) >= 0) + { + for (i = eSlotMachine->bet; i < 3; i++) + { + sub_8103D50(i); + } + eSlotMachine->coins -= (3 - eSlotMachine->bet); + eSlotMachine->bet = 3; + eSlotMachine->state = 9; + PlaySE(SE_REGI); + } + else + { + eSlotMachine->state = 6; + } + } + else + { + if (gMain.newKeys & DPAD_DOWN && eSlotMachine->coins != 0) + { + PlaySE(SE_REGI); + sub_8103D50(eSlotMachine->bet); + eSlotMachine->coins--; + eSlotMachine->bet++; + } + if (eSlotMachine->bet >= 3 || (eSlotMachine->bet != 0 && gMain.newKeys & A_BUTTON)) + { + eSlotMachine->state = 9; + } + if (gMain.newKeys & B_BUTTON) + { + eSlotMachine->state = 21; + } } return FALSE; } -- cgit v1.2.3 From 994bf583aa4d50b95f7b43179206639a81aa68ea Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 21 Dec 2017 08:46:32 -0500 Subject: sub_8101F44 --- src/field/slot_machine.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'src') diff --git a/src/field/slot_machine.c b/src/field/slot_machine.c index 16cfea7b5..4cf93d5d6 100644 --- a/src/field/slot_machine.c +++ b/src/field/slot_machine.c @@ -1,5 +1,6 @@ #include "global.h" #include "constants/songs.h" +#include "strings2.h" #include "random.h" #include "sound.h" #include "main.h" @@ -390,6 +391,19 @@ bool8 sub_8101E3C(struct Task *task) return FALSE; } +void sub_8101F2C(const u8 *str) +{ + MenuDisplayMessageBox(); + MenuPrint(str, 2, 15); +} + +bool8 sub_8101F44(struct Task *task) +{ + sub_8101F2C(gOtherText_DontHaveThreeCoins); + eSlotMachine->state = 7; + return FALSE; +} + asm(".section .text_a"); static void LoadSlotMachineWheelOverlay(void); -- cgit v1.2.3 From 2fe7a0e1542fa24731d233ed3b9e97ce4efa9c31 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 21 Dec 2017 16:32:23 -0500 Subject: through sub_8102090 --- src/field/slot_machine.c | 173 +++++++++++++++++++++++++++++++++++++---------- 1 file changed, 138 insertions(+), 35 deletions(-) (limited to 'src') 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); -- cgit v1.2.3 From 6369dca42b4a0cab379b5ecfdc5b8235e64f79cc Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 21 Dec 2017 18:34:43 -0500 Subject: sub_81020C8 --- src/field/slot_machine.c | 69 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) (limited to 'src') diff --git a/src/field/slot_machine.c b/src/field/slot_machine.c index 94dd5b08f..65d7e21ba 100644 --- a/src/field/slot_machine.c +++ b/src/field/slot_machine.c @@ -54,6 +54,8 @@ static void sub_8101D24(u8 taskId); void sub_8102484(void); void sub_81024F0(void); +void sub_81027A0(void); +void sub_8102A24(void); void sub_8102DA8(void); void sub_8102DEC(u8 a0); void sub_8102E1C(u8 a0); @@ -61,7 +63,9 @@ bool8 sub_8102E40(u8 a0); void sub_8103C14(u8 a0); void sub_8103D50(u8 a0); void sub_8103DC8(void); +void sub_8103F70(void); void sub_8104048(void); +void sub_8104064(u8 a0); void sub_810423C(u8 a0); void sub_810430C(void); bool8 sub_810432C(void); @@ -507,6 +511,71 @@ bool8 sub_8102090(struct Task *task) return FALSE; } +bool8 sub_81020C8(struct Task *task) +{ + eSlotMachine->unk04 &= 0xc0; + sub_81027A0(); + if (eSlotMachine->unk0A) + { + eSlotMachine->unk0A--; + eSlotMachine->unk0B++; + } + if (eSlotMachine->unk08) + { + eSlotMachine->state = 15; + sub_8102A24(); + sub_8103F70(); + if ((eSlotMachine->unk10 -= eSlotMachine->unk0E) < 0) + { + eSlotMachine->unk10 = 0; + } + if (eSlotMachine->unk08 & 0x180) + { + PlayFanfare(BGM_ME_B_BIG); + sub_8104CAC(6); + } + else if (eSlotMachine->unk08 & 0x40) + { + PlayFanfare(BGM_ME_B_BIG); + sub_8104CAC(5); + } + else + { + PlayFanfare(BGM_ME_B_SMALL); + sub_8104CAC(2); + } + if (eSlotMachine->unk08 & 0x1c0) + { + eSlotMachine->unk04 &= 0x3f; + if (eSlotMachine->unk08 & 0x180) + { + eSlotMachine->unk0A = 0; + eSlotMachine->unk0B = 0; + eSlotMachine->unk03 = 0; + if (eSlotMachine->unk08 & 0x100) + { + eSlotMachine->unk03 = 1; + } + } + } + if (eSlotMachine->unk08 & 0x20 && eSlotMachine->unk02 < 16) + { + eSlotMachine->unk02++; + sub_8104064(eSlotMachine->unk02); + } + } + else + { + sub_8104CAC(3); + eSlotMachine->state = 20; + if ((eSlotMachine->unk10 += eSlotMachine->bet) > 9999) + { + eSlotMachine->unk10 = 9999; + } + } + return FALSE; +} + asm(".section .text_a"); static void LoadSlotMachineWheelOverlay(void); -- cgit v1.2.3 From e432ffd18d6a1cd5bf1147a42979df3541ea0807 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 21 Dec 2017 19:08:24 -0500 Subject: through sub_8102460 --- src/field/slot_machine.c | 174 ++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 173 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/field/slot_machine.c b/src/field/slot_machine.c index 65d7e21ba..37fbbbb51 100644 --- a/src/field/slot_machine.c +++ b/src/field/slot_machine.c @@ -1,6 +1,8 @@ #include "global.h" #include "constants/songs.h" #include "strings2.h" +#include "overworld.h" +#include "menu_cursor.h" #include "random.h" #include "sound.h" #include "main.h" @@ -56,16 +58,20 @@ void sub_8102484(void); void sub_81024F0(void); void sub_81027A0(void); void sub_8102A24(void); +bool8 sub_8102A44(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_8103D8C(u8 a0); void sub_8103DC8(void); void sub_8103F70(void); +bool8 sub_8103FA0(void); void sub_8104048(void); void sub_8104064(u8 a0); +bool8 sub_81040C8(void); void sub_810423C(u8 a0); void sub_810430C(void); bool8 sub_810432C(void); @@ -157,7 +163,7 @@ void sub_81019EC(void) { struct Task *task = &gTasks[FindTaskIdByFunc(nullsub_67)]; eSlotMachine->unk01 = task->data[0]; - LoadWordFromTwoHalfwords((u16 *)(task->data + 1), (u32 *)&eSlotMachine->unk64); + LoadWordFromTwoHalfwords((u16 *)(task->data + 1), (u32 *)&eSlotMachine->prevMainCb); } static void nullsub_67(u8 taskId) @@ -576,6 +582,172 @@ bool8 sub_81020C8(struct Task *task) return FALSE; } +bool8 sub_81021E0(struct Task *task) +{ + if (sub_8102A44()) + { + eSlotMachine->state = 16; + } + return FALSE; +} + +bool8 sub_81021FC(struct Task *tas) +{ + if (sub_8103FA0()) + { + eSlotMachine->state = 19; + if (eSlotMachine->unk08 & 0x180) + { + IncrementGameStat(GAME_STAT_SLOT_JACKPOTS); + } + if (eSlotMachine->unk08 & 0x04) + { + eSlotMachine->unk18 = 0; + eSlotMachine->state = 9; + } + if (eSlotMachine->unk08 & 0x20) + { + eSlotMachine->state = 17; + } + if (eSlotMachine->unk0A && eSlotMachine->unk08 & 0x04) + { + sub_8104CAC(4); + eSlotMachine->state = 18; + } + } + return FALSE; +} + +bool8 sub_8102264(struct Task *task) +{ + if (!sub_81040C8()) + { + eSlotMachine->state = 19; + if (eSlotMachine->unk08 & 0x04) + { + eSlotMachine->state = 9; + if (eSlotMachine->unk0A) + { + sub_8104CAC(4); + eSlotMachine->state = 18; + } + } + } + return FALSE; +} + +bool8 sub_81022A0(struct Task *task) +{ + if (sub_8104E18()) + { + eSlotMachine->state = 19; + if (eSlotMachine->unk08 & 0x04) + { + eSlotMachine->state = 9; + } + } + return FALSE; +} + +bool8 sub_81022CC(struct Task *task) +{ + sub_8103D8C(0); + sub_8103D8C(1); + sub_8103D8C(2); + eSlotMachine->state = 2; + return FALSE; +} + +bool8 sub_81022F0(struct Task *task) +{ + if (++task->data[1] > 64) + { + task->data[1] = 0; + eSlotMachine->state = 19; + } + return FALSE; +} + +bool8 sub_8102318(struct Task *task) +{ + sub_8101F2C(gOtherText_QuitGamePrompt); + DisplayYesNoMenu(21, 7, 1); + sub_814AB84(); + eSlotMachine->state = 22; + return FALSE; +} + +bool8 sub_8102344(struct Task *task) +{ + s8 input = ProcessMenuInputNoWrap_(); + if (input == 0) + { + MenuZeroFillScreen(); + sub_8103D8C(0); + sub_8103D8C(1); + sub_8103D8C(2); + eSlotMachine->coins += eSlotMachine->bet; + eSlotMachine->state = 27; + } + else if (input == 1 || input == -1) + { + MenuZeroFillScreen(); + eSlotMachine->state = 5; + } + return FALSE; +} + +bool8 sub_810239C(struct Task *task) +{ + sub_8101F2C(gOtherText_MaxCoins); + eSlotMachine->state = 24; + return FALSE; +} + +bool8 sub_81023B8(struct Task *task) +{ + if (gMain.newKeys & (A_BUTTON | B_BUTTON)) + { + MenuZeroFillScreen(); + eSlotMachine->state = 5; + } + return FALSE; +} + +bool8 sub_81023E0(struct Task *task) +{ + sub_8101F2C(gOtherText_OutOfCoins); + eSlotMachine->state = 26; + return FALSE; +} + +bool8 sub_81023FC(struct Task *task) +{ + if (gMain.newKeys & (A_BUTTON | B_BUTTON)) + { + MenuZeroFillScreen(); + eSlotMachine->state = 27; + } + return FALSE; +} + +bool8 sub_8102424(struct Task *task) +{ + gSaveBlock1.coins = eSlotMachine->coins; + BeginNormalPaletteFade(-1, 0, 0, 16, 0); + eSlotMachine->state++; + return FALSE; +} + +bool8 sub_8102460(struct Task *task) +{ + if (!gPaletteFade.active) + { + SetMainCallback2(eSlotMachine->prevMainCb); + } + return FALSE; +} + asm(".section .text_a"); static void LoadSlotMachineWheelOverlay(void); -- cgit v1.2.3 From 683862fbd5fdcd9b1c60f926553db0cbe2847422 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 21 Dec 2017 19:12:42 -0500 Subject: through sub_8102460; decompile associated pointer table --- src/field/slot_machine.c | 121 +++++++++++++++++++++++++++++++++++------------ 1 file changed, 90 insertions(+), 31 deletions(-) (limited to 'src') diff --git a/src/field/slot_machine.c b/src/field/slot_machine.c index 37fbbbb51..2bf8e9c97 100644 --- a/src/field/slot_machine.c +++ b/src/field/slot_machine.c @@ -53,6 +53,35 @@ static void sub_8101CD4(void); static void sub_8101CEC(void); static void sub_8101D04(void); static void sub_8101D24(u8 taskId); +static bool8 sub_8101D5C(struct Task *task); +static bool8 sub_8101D8C(struct Task *task); +static bool8 sub_8101DB0(struct Task *task); +static bool8 sub_8101DF4(struct Task *task); +static bool8 sub_8101E10(struct Task *task); +static bool8 sub_8101E3C(struct Task *task); +static bool8 sub_8101F44(struct Task *task); +static bool8 sub_8101F60(struct Task *task); +static bool8 sub_8101F88(struct Task *task); +static bool8 sub_8101FA4(struct Task *task); +static bool8 sub_8102008(struct Task *task); +static bool8 sub_8102034(struct Task *task); +static bool8 sub_8102058(struct Task *task); +static bool8 sub_8102090(struct Task *task); +static bool8 sub_81020C8(struct Task *task); +static bool8 sub_81021E0(struct Task *task); +static bool8 sub_81021FC(struct Task *task); +static bool8 sub_8102264(struct Task *task); +static bool8 sub_81022A0(struct Task *task); +static bool8 sub_81022CC(struct Task *task); +static bool8 sub_81022F0(struct Task *task); +static bool8 sub_8102318(struct Task *task); +static bool8 sub_8102344(struct Task *task); +static bool8 sub_810239C(struct Task *task); +static bool8 sub_81023B8(struct Task *task); +static bool8 sub_81023E0(struct Task *task); +static bool8 sub_81023FC(struct Task *task); +static bool8 sub_8102424(struct Task *task); +static bool8 sub_8102460(struct Task *task); void sub_8102484(void); void sub_81024F0(void); @@ -88,6 +117,38 @@ void sub_8106448(void); void sub_81064B8(void); u16 dp15_jump_random_unknown(void); +static bool8 (*const gUnknown_083ECAAC[])(struct Task *task) = { + sub_8101D5C, + sub_8101D8C, + sub_8101DB0, + sub_8101DF4, + sub_8101E10, + sub_8101E3C, + sub_8101F44, + sub_8101F60, + sub_8101F88, + sub_8101FA4, + sub_8102008, + sub_8102034, + sub_8102058, + sub_8102090, + sub_81020C8, + sub_81021E0, + sub_81021FC, + sub_8102264, + sub_81022A0, + sub_81022CC, + sub_81022F0, + sub_8102318, + sub_8102344, + sub_810239C, + sub_81023B8, + sub_81023E0, + sub_81023FC, + sub_8102424, + sub_8102460 +}; + void PlaySlotMachine(u8 arg0, void *ptr) { sub_81019B0(arg0, ptr); @@ -295,8 +356,6 @@ static void sub_8101CEC(void) sub_8101D04(); } -extern bool8 (*const gUnknown_083ECAAC[])(struct Task *task); - static void sub_8101D04(void) { sub_8101D24(CreateTask(sub_8101D24, 0)); @@ -307,7 +366,7 @@ static void sub_8101D24(u8 taskId) while (gUnknown_083ECAAC[eSlotMachine->state](gTasks + taskId)); } -bool8 sub_8101D5C(struct Task *task) +static bool8 sub_8101D5C(struct Task *task) { BeginNormalPaletteFade(-1, 0, 16, 0, 0); sub_810423C(eSlotMachine->unk02); @@ -315,7 +374,7 @@ bool8 sub_8101D5C(struct Task *task) return FALSE; } -bool8 sub_8101D8C(struct Task *task) +static bool8 sub_8101D8C(struct Task *task) { if (!gPaletteFade.active) { @@ -324,7 +383,7 @@ bool8 sub_8101D8C(struct Task *task) return FALSE; } -bool8 sub_8101DB0(struct Task *task) +static bool8 sub_8101DB0(struct Task *task) { eSlotMachine->unk0E = 0; eSlotMachine->bet = 0; @@ -343,7 +402,7 @@ bool8 sub_8101DB0(struct Task *task) return TRUE; } -bool8 sub_8101DF4(struct Task *task) +static bool8 sub_8101DF4(struct Task *task) { if (sub_8104E18()) { @@ -352,7 +411,7 @@ bool8 sub_8101DF4(struct Task *task) return FALSE; } -bool8 sub_8101E10(struct Task *task) +static bool8 sub_8101E10(struct Task *task) { sub_8104CAC(0); eSlotMachine->state = 5; @@ -363,7 +422,7 @@ bool8 sub_8101E10(struct Task *task) return TRUE; } -bool8 sub_8101E3C(struct Task *task) +static bool8 sub_8101E3C(struct Task *task) { s16 i; @@ -417,14 +476,14 @@ void sub_8101F2C(const u8 *str) MenuPrint(str, 2, 15); } -bool8 sub_8101F44(struct Task *task) +static bool8 sub_8101F44(struct Task *task) { sub_8101F2C(gOtherText_DontHaveThreeCoins); eSlotMachine->state = 7; return FALSE; } -bool8 sub_8101F60(struct Task *task) +static bool8 sub_8101F60(struct Task *task) { if (gMain.newKeys & (A_BUTTON | B_BUTTON)) { @@ -434,7 +493,7 @@ bool8 sub_8101F60(struct Task *task) return FALSE; } -bool8 sub_8101F88(struct Task *task) +static bool8 sub_8101F88(struct Task *task) { if (sub_8104AEC()) { @@ -443,7 +502,7 @@ bool8 sub_8101F88(struct Task *task) return FALSE; } -bool8 sub_8101FA4(struct Task *task) +static bool8 sub_8101FA4(struct Task *task) { sub_8102484(); sub_8104DA4(); @@ -469,7 +528,7 @@ bool8 sub_8101FA4(struct Task *task) return FALSE; } -bool8 sub_8102008(struct Task *task) +static bool8 sub_8102008(struct Task *task) { if (sub_810432C()) { @@ -480,7 +539,7 @@ bool8 sub_8102008(struct Task *task) return FALSE; } -bool8 sub_8102034(struct Task *task) +static bool8 sub_8102034(struct Task *task) { if (++task->data[0] >= 30) { @@ -490,7 +549,7 @@ bool8 sub_8102034(struct Task *task) return FALSE; } -bool8 sub_8102058(struct Task *task) +static bool8 sub_8102058(struct Task *task) { if (gMain.newKeys & A_BUTTON) { @@ -502,7 +561,7 @@ bool8 sub_8102058(struct Task *task) return FALSE; } -bool8 sub_8102090(struct Task *task) +static bool8 sub_8102090(struct Task *task) { if (!sub_8102E40(eSlotMachine->unk18)) { @@ -517,7 +576,7 @@ bool8 sub_8102090(struct Task *task) return FALSE; } -bool8 sub_81020C8(struct Task *task) +static bool8 sub_81020C8(struct Task *task) { eSlotMachine->unk04 &= 0xc0; sub_81027A0(); @@ -582,7 +641,7 @@ bool8 sub_81020C8(struct Task *task) return FALSE; } -bool8 sub_81021E0(struct Task *task) +static bool8 sub_81021E0(struct Task *task) { if (sub_8102A44()) { @@ -591,7 +650,7 @@ bool8 sub_81021E0(struct Task *task) return FALSE; } -bool8 sub_81021FC(struct Task *tas) +static bool8 sub_81021FC(struct Task *task) { if (sub_8103FA0()) { @@ -618,7 +677,7 @@ bool8 sub_81021FC(struct Task *tas) return FALSE; } -bool8 sub_8102264(struct Task *task) +static bool8 sub_8102264(struct Task *task) { if (!sub_81040C8()) { @@ -636,7 +695,7 @@ bool8 sub_8102264(struct Task *task) return FALSE; } -bool8 sub_81022A0(struct Task *task) +static bool8 sub_81022A0(struct Task *task) { if (sub_8104E18()) { @@ -649,7 +708,7 @@ bool8 sub_81022A0(struct Task *task) return FALSE; } -bool8 sub_81022CC(struct Task *task) +static bool8 sub_81022CC(struct Task *task) { sub_8103D8C(0); sub_8103D8C(1); @@ -658,7 +717,7 @@ bool8 sub_81022CC(struct Task *task) return FALSE; } -bool8 sub_81022F0(struct Task *task) +static bool8 sub_81022F0(struct Task *task) { if (++task->data[1] > 64) { @@ -668,7 +727,7 @@ bool8 sub_81022F0(struct Task *task) return FALSE; } -bool8 sub_8102318(struct Task *task) +static bool8 sub_8102318(struct Task *task) { sub_8101F2C(gOtherText_QuitGamePrompt); DisplayYesNoMenu(21, 7, 1); @@ -677,7 +736,7 @@ bool8 sub_8102318(struct Task *task) return FALSE; } -bool8 sub_8102344(struct Task *task) +static bool8 sub_8102344(struct Task *task) { s8 input = ProcessMenuInputNoWrap_(); if (input == 0) @@ -697,14 +756,14 @@ bool8 sub_8102344(struct Task *task) return FALSE; } -bool8 sub_810239C(struct Task *task) +static bool8 sub_810239C(struct Task *task) { sub_8101F2C(gOtherText_MaxCoins); eSlotMachine->state = 24; return FALSE; } -bool8 sub_81023B8(struct Task *task) +static bool8 sub_81023B8(struct Task *task) { if (gMain.newKeys & (A_BUTTON | B_BUTTON)) { @@ -714,14 +773,14 @@ bool8 sub_81023B8(struct Task *task) return FALSE; } -bool8 sub_81023E0(struct Task *task) +static bool8 sub_81023E0(struct Task *task) { sub_8101F2C(gOtherText_OutOfCoins); eSlotMachine->state = 26; return FALSE; } -bool8 sub_81023FC(struct Task *task) +static bool8 sub_81023FC(struct Task *task) { if (gMain.newKeys & (A_BUTTON | B_BUTTON)) { @@ -731,7 +790,7 @@ bool8 sub_81023FC(struct Task *task) return FALSE; } -bool8 sub_8102424(struct Task *task) +static bool8 sub_8102424(struct Task *task) { gSaveBlock1.coins = eSlotMachine->coins; BeginNormalPaletteFade(-1, 0, 0, 16, 0); @@ -739,7 +798,7 @@ bool8 sub_8102424(struct Task *task) return FALSE; } -bool8 sub_8102460(struct Task *task) +static bool8 sub_8102460(struct Task *task) { if (!gPaletteFade.active) { -- cgit v1.2.3 From 388a4cc729c84e334819db165eb5aab99233ee9c Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 21 Dec 2017 22:35:46 -0500 Subject: sub_8102540 --- src/field/slot_machine.c | 98 +++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 89 insertions(+), 9 deletions(-) (limited to 'src') diff --git a/src/field/slot_machine.c b/src/field/slot_machine.c index 2bf8e9c97..b72c749d0 100644 --- a/src/field/slot_machine.c +++ b/src/field/slot_machine.c @@ -82,9 +82,11 @@ static bool8 sub_81023E0(struct Task *task); static bool8 sub_81023FC(struct Task *task); static bool8 sub_8102424(struct Task *task); static bool8 sub_8102460(struct Task *task); - -void sub_8102484(void); -void sub_81024F0(void); +static void sub_8102484(void); +static void sub_81024F0(void); +bool8 sub_8102540(void); +u8 sub_8102578(void); +u8 sub_81025BC(void); void sub_81027A0(void); void sub_8102A24(void); bool8 sub_8102A44(void); @@ -113,7 +115,7 @@ void sub_8104EA8(void); void sub_8104F8C(void); void sub_81050C4(void); void sub_81063C0(void); -void sub_8106448(void); +static void sub_8106448(void); void sub_81064B8(void); u16 dp15_jump_random_unknown(void); @@ -149,6 +151,11 @@ static bool8 (*const gUnknown_083ECAAC[])(struct Task *task) = { sub_8102460 }; +extern const u8 gUnknown_083ECD04[][3]; +extern const u8 gUnknown_083ECE3A[]; +extern const u16 gUnknown_083ECE42[]; +extern const u16 gUnknown_083ECE48[]; + void PlaySlotMachine(u8 arg0, void *ptr) { sub_81019B0(arg0, ptr); @@ -807,6 +814,82 @@ static bool8 sub_8102460(struct Task *task) return FALSE; } +static void sub_8102484(void) +{ + u8 r3; + + if (eSlotMachine->unk0A == 0 && !(eSlotMachine->unk04 & 0xc0)) + { + if (sub_8102540()) + { + r3 = sub_8102578(); + if (r3 != 3) + { + eSlotMachine->unk04 |= gUnknown_083ECE42[r3]; + if (r3 != 1) + { + return; + } + } + } + r3 = sub_81025BC(); + if (r3 != 5) + { + eSlotMachine->unk04 |= gUnknown_083ECE48[r3]; + } + } +} + +static void sub_81024F0(void) +{ + eSlotMachine->unk06 = 0; + if (eSlotMachine->unk04) + { + eSlotMachine->unk06 = 1; + } +} + +u8 sub_810250C(u8 a0) +{ + u8 i; + + for (i = 0; i < 8; i++) + { + if (a0 & 1) + { + return gUnknown_083ECE3A[i]; + } + a0 >>= 1; + } + return 0; +} + +bool8 sub_8102540(void) +{ + u8 rval = Random(); + if (gUnknown_083ECD04[eSlotMachine->unk01][eSlotMachine->bet - 1] > rval) + { + return TRUE; + } + return FALSE; +} + +//extern const u8 gUnknown_083ECD16[][3]; +// +//u8 sub_8102578(void) +//{ +// s16 i; +// +// for (i = 0; i < 3; i++) +// { +// if ((Random() & 0xff) <= (int)gUnknown_083ECD16[i][eSlotMachine->unk01]) +// { +// break; +// } +// } +// return i; +//} + asm(".section .text_a"); static void LoadSlotMachineWheelOverlay(void); @@ -820,8 +903,7 @@ void sub_8104CAC(u8 arg0) { task = &gTasks[eSlotMachine->unk3D]; task->data[1] = arg0; - i = 0; - while (gUnknown_083ED048[arg0][i].unk00 != 0xFF) + for (i = 0; gUnknown_083ED048[arg0][i].unk00 != 0xFF; i++) { u8 spriteId; spriteId = sub_8105BB4( @@ -837,14 +919,12 @@ void sub_8104CAC(u8 arg0) { gSprites[spriteId].invisible = TRUE; } #endif - - i += 1; } } asm(".section .text_b"); -void sub_8106448(void) { +static void sub_8106448(void) { u32 offsetRead, offsetWrite; u32 size; -- cgit v1.2.3 From 56bf99fd9106b3cc8fac45cc051cbeeec40e34aa Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 22 Dec 2017 08:37:19 -0500 Subject: Nonmatching sub_8102578 --- src/field/slot_machine.c | 75 ++++++++++++++++++++++++++++++++++++------------ 1 file changed, 57 insertions(+), 18 deletions(-) (limited to 'src') diff --git a/src/field/slot_machine.c b/src/field/slot_machine.c index b72c749d0..f6d58e592 100644 --- a/src/field/slot_machine.c +++ b/src/field/slot_machine.c @@ -84,8 +84,8 @@ static bool8 sub_8102424(struct Task *task); static bool8 sub_8102460(struct Task *task); static void sub_8102484(void); static void sub_81024F0(void); -bool8 sub_8102540(void); -u8 sub_8102578(void); +static bool8 sub_8102540(void); +static u8 sub_8102578(void); u8 sub_81025BC(void); void sub_81027A0(void); void sub_8102A24(void); @@ -864,7 +864,7 @@ u8 sub_810250C(u8 a0) return 0; } -bool8 sub_8102540(void) +static bool8 sub_8102540(void) { u8 rval = Random(); if (gUnknown_083ECD04[eSlotMachine->unk01][eSlotMachine->bet - 1] > rval) @@ -874,21 +874,60 @@ bool8 sub_8102540(void) return FALSE; } -//extern const u8 gUnknown_083ECD16[][3]; -// -//u8 sub_8102578(void) -//{ -// s16 i; -// -// for (i = 0; i < 3; i++) -// { -// if ((Random() & 0xff) <= (int)gUnknown_083ECD16[i][eSlotMachine->unk01]) -// { -// break; -// } -// } -// return i; -//} +extern const u8 gUnknown_083ECD16[][3]; + +#ifdef NONMATCHING +static u8 sub_8102578(void) +{ + s16 i; + + for (i = 0; i < 3; i++) + { + if ((Random() & 0xff) <= gUnknown_083ECD16[i][eSlotMachine->unk01]) + { + break; + } + } + return i; +} +#else +static __attribute__((naked)) u8 sub_8102578(void) +{ + asm_unified("\tpush {r4-r6,lr}\n" + "\tmovs r5, 0\n" + "\tldr r6, =gUnknown_083ECD16\n" + "_0810257E:\n" + "\tbl Random\n" + "\tmovs r2, 0xFF\n" + "\tldr r3, =gSharedMem\n" + "\tlsls r1, r5, 16\n" + "\tasrs r4, r1, 16\n" + "\tlsls r1, r4, 1\n" + "\tadds r1, r4\n" + "\tlsls r1, 1\n" + "\tldrb r3, [r3, 0x1]\n" + "\tadds r1, r3\n" + "\tadds r1, r6\n" + "\tldrb r1, [r1]\n" + "\tands r2, r0\n" + "\tcmp r1, r2\n" + "\tbgt _081025AA\n" + "\tadds r0, r4, 0x1\n" + "\tlsls r0, 16\n" + "\tlsrs r5, r0, 16\n" + "\tasrs r0, 16\n" + "\tcmp r0, 0x2\n" + "\tble _0810257E\n" + "_081025AA:\n" + "\tlsls r0, r5, 24\n" + "\tlsrs r0, 24\n" + "\tpop {r4-r6}\n" + "\tpop {r1}\n" + "\tbx r1\n" + "\t.align 2, 0\n" + "\t.pool"); +} +#endif asm(".section .text_a"); -- cgit v1.2.3 From af86226a5b15ccf1d7d1fea2dc96ff6bba0dc5fc Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 23 Dec 2017 19:51:07 -0500 Subject: sub_81025BC and matching sub_8102578 --- src/field/slot_machine.c | 75 +++++++++++++++++++++++------------------------- 1 file changed, 36 insertions(+), 39 deletions(-) (limited to 'src') diff --git a/src/field/slot_machine.c b/src/field/slot_machine.c index f6d58e592..08506a59f 100644 --- a/src/field/slot_machine.c +++ b/src/field/slot_machine.c @@ -874,60 +874,57 @@ static bool8 sub_8102540(void) return FALSE; } -extern const u8 gUnknown_083ECD16[][3]; +extern const u8 gUnknown_083ECD16[][6]; -#ifdef NONMATCHING static u8 sub_8102578(void) { s16 i; for (i = 0; i < 3; i++) { - if ((Random() & 0xff) <= gUnknown_083ECD16[i][eSlotMachine->unk01]) + s16 rval = Random() & 0xff; + s16 value = gUnknown_083ECD16[i][eSlotMachine->unk01]; + if (value > rval) { break; } } return i; } -#else -static __attribute__((naked)) u8 sub_8102578(void) + +extern const u8 gUnknown_083ECD28[][6]; + +u8 sub_81025BC(void) { - asm_unified("\tpush {r4-r6,lr}\n" - "\tmovs r5, 0\n" - "\tldr r6, =gUnknown_083ECD16\n" - "_0810257E:\n" - "\tbl Random\n" - "\tmovs r2, 0xFF\n" - "\tldr r3, =gSharedMem\n" - "\tlsls r1, r5, 16\n" - "\tasrs r4, r1, 16\n" - "\tlsls r1, r4, 1\n" - "\tadds r1, r4\n" - "\tlsls r1, 1\n" - "\tldrb r3, [r3, 0x1]\n" - "\tadds r1, r3\n" - "\tadds r1, r6\n" - "\tldrb r1, [r1]\n" - "\tands r2, r0\n" - "\tcmp r1, r2\n" - "\tbgt _081025AA\n" - "\tadds r0, r4, 0x1\n" - "\tlsls r0, 16\n" - "\tlsrs r5, r0, 16\n" - "\tasrs r0, 16\n" - "\tcmp r0, 0x2\n" - "\tble _0810257E\n" - "_081025AA:\n" - "\tlsls r0, r5, 24\n" - "\tlsrs r0, 24\n" - "\tpop {r4-r6}\n" - "\tpop {r1}\n" - "\tbx r1\n" - "\t.align 2, 0\n" - "\t.pool"); + s16 i; + + for (i = 0; i < 5; i++) + { + s16 rval = Random() & 0xff; + s16 r3 = gUnknown_083ECD28[i][eSlotMachine->unk01]; + if (i == 0 && eSlotMachine->unk03 == 1) + { + r3 += 10; + if (r3 > 0x100) + { + r3 = 0x100; + } + } + else if (i == 4 && eSlotMachine->unk03 == 1) + { + r3 -= 10; + if (r3 < 0) + { + r3 = 0; + } + } + if (r3 > rval) + { + break; + } + } + return i; } -#endif asm(".section .text_a"); -- cgit v1.2.3 From 9041e039a728f4d2cb7c4938eb5585441965952f Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 23 Dec 2017 20:21:03 -0500 Subject: through sub_8102680 --- src/field/slot_machine.c | 35 ++++++++++++++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) (limited to 'src') 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) { -- cgit v1.2.3 From b66b2e49bea686c71b62f0f31470aef09b50a15d Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 23 Dec 2017 21:12:07 -0500 Subject: through dp15_jump_random_unknown --- src/field/slot_machine.c | 51 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) (limited to 'src') diff --git a/src/field/slot_machine.c b/src/field/slot_machine.c index cc8c28654..be6c8746b 100644 --- a/src/field/slot_machine.c +++ b/src/field/slot_machine.c @@ -960,6 +960,57 @@ void sub_8102680(void) eSlotMachine->unk05 = i; } +extern const u16 gUnknown_083ECE12[]; + +bool8 sub_81026DC(u16 a0) +{ + u16 rval = Random() & 0xff; + if (rval < gUnknown_083ECE12[a0]) + { + return TRUE; + } + return FALSE; +} + +extern const u16 gUnknown_083ECE1C[][2]; +extern const u16 gUnknown_083ECE30[]; + +u16 dp15_jump_random_unknown(void) +{ + u8 r4 = 0; + u8 rval; + u8 value; + if (eSlotMachine->unk10 >= 300) + { + r4 = 4; + } + else if (eSlotMachine->unk10 >= 250) + { + r4 = 3; + } + else if (eSlotMachine->unk10 >= 200) + { + r4 = 2; + } + else if (eSlotMachine->unk10 >= 150) + { + r4 = 1; + } + rval = Random() % 100; + value = gUnknown_083ECE1C[r4][0]; + if (rval < value) + { + return 4; + } + rval = Random() % 100; + value = gUnknown_083ECE1C[r4][1] + gUnknown_083ECE30[eSlotMachine->unk0B]; + if (rval < value) + { + return 2; + } + return 8; +} + asm(".section .text_a"); static void LoadSlotMachineWheelOverlay(void); -- cgit v1.2.3 From 482db3566086318c27d1accbe89a96e2f695de5b Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 23 Dec 2017 21:33:46 -0500 Subject: sub_81027D0 --- src/field/slot_machine.c | 42 ++++++++++++++++++++++++++++++++++++++---- 1 file changed, 38 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/field/slot_machine.c b/src/field/slot_machine.c index be6c8746b..2e47317a5 100644 --- a/src/field/slot_machine.c +++ b/src/field/slot_machine.c @@ -86,10 +86,16 @@ static void sub_8102484(void); static void sub_81024F0(void); static bool8 sub_8102540(void); static u8 sub_8102578(void); -u8 sub_81025BC(void); -void sub_81027A0(void); +u16 dp15_jump_random_unknown(void); +static u8 sub_81025BC(void); +static void sub_81027A0(void); +void sub_81027D0(void); +void sub_8102840(void); +void sub_810290C(void); +u8 sub_81029D4(u8 a0, u8 a1, u8 a2); void sub_8102A24(void); bool8 sub_8102A44(void); +u8 sub_8102BA4(u8 a0, u8 a1); void sub_8102DA8(void); void sub_8102DEC(u8 a0); void sub_8102E1C(u8 a0); @@ -98,6 +104,7 @@ void sub_8103C14(u8 a0); void sub_8103D50(u8 a0); void sub_8103D8C(u8 a0); void sub_8103DC8(void); +void sub_8103E04(u8 a0); void sub_8103F70(void); bool8 sub_8103FA0(void); void sub_8104048(void); @@ -117,7 +124,6 @@ void sub_81050C4(void); void sub_81063C0(void); static void sub_8106448(void); void sub_81064B8(void); -u16 dp15_jump_random_unknown(void); static bool8 (*const gUnknown_083ECAAC[])(struct Task *task) = { sub_8101D5C, @@ -894,7 +900,7 @@ static u8 sub_8102578(void) extern const u8 gUnknown_083ECD28[][6]; -u8 sub_81025BC(void) +static u8 sub_81025BC(void) { s16 i; @@ -1011,6 +1017,34 @@ u16 dp15_jump_random_unknown(void) return 8; } +static void sub_81027A0(void) +{ + eSlotMachine->unk08 = 0; + sub_81027D0(); + if (eSlotMachine->bet > 1) + { + sub_8102840(); + } + if (eSlotMachine->bet > 2) + { + sub_810290C(); + } +} + +extern const u16 gUnknown_083ECE6C[]; +extern const u16 gUnknown_083ECE5A[]; + +void sub_81027D0(void) +{ + u8 payout = sub_81029D4(sub_8102BA4(0, 2), sub_8102BA4(1, 2), sub_8102BA4(2, 2)); + if (payout != 9) + { + eSlotMachine->unk0E += gUnknown_083ECE6C[payout]; + eSlotMachine->unk08 |= gUnknown_083ECE5A[payout]; + sub_8103E04(0); + } +} + asm(".section .text_a"); static void LoadSlotMachineWheelOverlay(void); -- cgit v1.2.3 From 64c3afb438eb712cca11a374d0025bf3492ccb82 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 24 Dec 2017 20:48:44 -0500 Subject: through sub_810290C --- src/field/slot_machine.c | 73 +++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 72 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/field/slot_machine.c b/src/field/slot_machine.c index 2e47317a5..0a1ab8bb1 100644 --- a/src/field/slot_machine.c +++ b/src/field/slot_machine.c @@ -1036,7 +1036,12 @@ extern const u16 gUnknown_083ECE5A[]; void sub_81027D0(void) { - u8 payout = sub_81029D4(sub_8102BA4(0, 2), sub_8102BA4(1, 2), sub_8102BA4(2, 2)); + u8 c1, c2, c3, payout; + + c1 = sub_8102BA4(0, 2); + c2 = sub_8102BA4(1, 2); + c3 = sub_8102BA4(2, 2); + payout = sub_81029D4(c1, c2, c3); if (payout != 9) { eSlotMachine->unk0E += gUnknown_083ECE6C[payout]; @@ -1045,6 +1050,72 @@ void sub_81027D0(void) } } +void sub_8102840(void) +{ + u8 c1, c2, c3, payout; + + c1 = sub_8102BA4(0, 1); + c2 = sub_8102BA4(1, 1); + c3 = sub_8102BA4(2, 1); + payout = sub_81029D4(c1, c2, c3); + if (payout != 9) + { + if (payout == 0) + { + payout = 1; + } + eSlotMachine->unk0E += gUnknown_083ECE6C[payout]; + eSlotMachine->unk08 |= gUnknown_083ECE5A[payout]; + sub_8103E04(1); + } + c1 = sub_8102BA4(0, 3); + c2 = sub_8102BA4(1, 3); + c3 = sub_8102BA4(2, 3); + payout = sub_81029D4(c1, c2, c3); + if (payout != 9) + { + if (payout == 0) + { + payout = 1; + } + eSlotMachine->unk0E += gUnknown_083ECE6C[payout]; + eSlotMachine->unk08 |= gUnknown_083ECE5A[payout]; + sub_8103E04(2); + } +} + +void sub_810290C(void) +{ + u8 c1, c2, c3, payout; + + c1 = sub_8102BA4(0, 1); + c2 = sub_8102BA4(1, 2); + c3 = sub_8102BA4(2, 3); + payout = sub_81029D4(c1, c2, c3); + if (payout != 9) + { + if (payout != 0) + { + eSlotMachine->unk0E += gUnknown_083ECE6C[payout]; + eSlotMachine->unk08 |= gUnknown_083ECE5A[payout]; + } + sub_8103E04(3); + } + c1 = sub_8102BA4(0, 3); + c2 = sub_8102BA4(1, 2); + c3 = sub_8102BA4(2, 1); + payout = sub_81029D4(c1, c2, c3); + if (payout != 9) + { + if (payout != 0) + { + eSlotMachine->unk0E += gUnknown_083ECE6C[payout]; + eSlotMachine->unk08 |= gUnknown_083ECE5A[payout]; + } + sub_8103E04(4); + } +} + asm(".section .text_a"); static void LoadSlotMachineWheelOverlay(void); -- cgit v1.2.3 From 7d311d0f747dc5c7c194f436d1b90181bee3cc66 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 24 Dec 2017 21:42:08 -0500 Subject: through sub_8102BA4 --- src/field/slot_machine.c | 121 ++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 120 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/field/slot_machine.c b/src/field/slot_machine.c index 0a1ab8bb1..bd259129d 100644 --- a/src/field/slot_machine.c +++ b/src/field/slot_machine.c @@ -95,7 +95,7 @@ void sub_810290C(void); u8 sub_81029D4(u8 a0, u8 a1, u8 a2); void sub_8102A24(void); bool8 sub_8102A44(void); -u8 sub_8102BA4(u8 a0, u8 a1); +u8 sub_8102BA4(u8 a0, s16 a1); void sub_8102DA8(void); void sub_8102DEC(u8 a0); void sub_8102E1C(u8 a0); @@ -105,6 +105,8 @@ void sub_8103D50(u8 a0); void sub_8103D8C(u8 a0); void sub_8103DC8(void); void sub_8103E04(u8 a0); +bool8 sub_8103E38(void); +bool8 sub_8103E7C(void); void sub_8103F70(void); bool8 sub_8103FA0(void); void sub_8104048(void); @@ -1116,6 +1118,123 @@ void sub_810290C(void) } } +extern const u8 gUnknown_083ECE52[]; + +u8 sub_81029D4(u8 c1, u8 c2, u8 c3) +{ + if (c1 == c2 && c1 == c3) + { + return gUnknown_083ECE52[c1]; + } + if (c1 == 0 && c2 == 0 && c3 == 1) + { + return 6; + } + if (c1 == 1 && c2 == 1 && c3 == 0) + { + return 6; + } + if (c1 == 4) + { + return 0; + } + return 9; +} + +void sub_8102A64(u8 taskId); + +void sub_8102A24(void) +{ + sub_8102A64(CreateTask(sub_8102A64, 4)); +} + +bool8 sub_8102A44(void) +{ + if (FindTaskIdByFunc(sub_8102A64) == 0xff) + { + return TRUE; + } + return FALSE; +} + +extern bool8 (*const gUnknown_083ECB20[])(struct Task *task); + +void sub_8102A64(u8 taskId) +{ + while (gUnknown_083ECB20[gTasks[taskId].data[0]](gTasks + taskId)); +} + +bool8 sub_8102A9C(struct Task *task) +{ + if (sub_8103E38()) + { + task->data[0]++; + if (eSlotMachine->unk0E == 0) + { + task->data[0] = 2; + return TRUE; + } + } + return FALSE; +} + +bool8 sub_8102AD0(struct Task *task) +{ + if (!task->data[1]--) + { + if (IsFanfareTaskInactive()) + { + PlaySE(SE_PIN); + } + eSlotMachine->unk0E--; + if (eSlotMachine->coins < 9999) + { + eSlotMachine->coins++; + } + task->data[1] = 8; + if (gMain.heldKeys & A_BUTTON) + { + task->data[1] = 4; + } + } + if (IsFanfareTaskInactive() && gMain.newKeys & START_BUTTON) + { + PlaySE(SE_PIN); + eSlotMachine->coins += eSlotMachine->unk0E; + if (eSlotMachine->coins > 9999) + { + eSlotMachine->coins = 9999; + } + eSlotMachine->unk0E = 0; + } + if (eSlotMachine->unk0E == 0) + { + task->data[0]++; + } + return FALSE; +} + +bool8 sub_8102B80(struct Task *task) +{ + if (sub_8103E7C()) + { + DestroyTask(FindTaskIdByFunc(sub_8102A64)); + } + return FALSE; +} + +extern const u8 gUnknown_083ECCB2[][21]; + +u8 sub_8102BA4(u8 x, s16 y) +{ + s16 offset = (eSlotMachine->unk28[x] + y) % 21; + if (offset < 0) + { + offset += 21; + } + return gUnknown_083ECCB2[x][offset]; +} + asm(".section .text_a"); static void LoadSlotMachineWheelOverlay(void); -- cgit v1.2.3 From 22d0b82ee547a46c4673cf8c9039c68b2a6d7f0b Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 26 Dec 2017 19:35:16 -0500 Subject: sub_8102BF8 --- src/field/slot_machine.c | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'src') diff --git a/src/field/slot_machine.c b/src/field/slot_machine.c index bd259129d..9e3d70727 100644 --- a/src/field/slot_machine.c +++ b/src/field/slot_machine.c @@ -1235,6 +1235,14 @@ u8 sub_8102BA4(u8 x, s16 y) return gUnknown_083ECCB2[x][offset]; } +u8 sub_8102BF8(u8 x, s16 y) +{ + s16 r6 = 0; + if ((eSlotMachine->unk1C[x]) % 24) + r6 = -1; + return sub_8102BA4(x, y + r6); +} + asm(".section .text_a"); static void LoadSlotMachineWheelOverlay(void); -- cgit v1.2.3 From a3b25543b3d85a5f88284752367abd6ed713f82b Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 26 Dec 2017 20:37:55 -0500 Subject: through sub_8102DEC --- src/field/slot_machine.c | 100 +++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 84 insertions(+), 16 deletions(-) (limited to 'src') diff --git a/src/field/slot_machine.c b/src/field/slot_machine.c index 9e3d70727..6f1e7610a 100644 --- a/src/field/slot_machine.c +++ b/src/field/slot_machine.c @@ -89,17 +89,19 @@ static u8 sub_8102578(void); u16 dp15_jump_random_unknown(void); static u8 sub_81025BC(void); static void sub_81027A0(void); -void sub_81027D0(void); -void sub_8102840(void); -void sub_810290C(void); -u8 sub_81029D4(u8 a0, u8 a1, u8 a2); -void sub_8102A24(void); +static void sub_81027D0(void); +static void sub_8102840(void); +static void sub_810290C(void); +static u8 sub_81029D4(u8 c1, u8 c2, u8 c3); +static void sub_8102A24(void); +static void sub_8102A64(u8 taskId); bool8 sub_8102A44(void); -u8 sub_8102BA4(u8 a0, s16 a1); -void sub_8102DA8(void); -void sub_8102DEC(u8 a0); +u8 sub_8102BA4(u8 x, s16 y); +static void sub_8102DA8(void); +static void sub_8102DEC(u8 a0); void sub_8102E1C(u8 a0); bool8 sub_8102E40(u8 a0); +void sub_8102E68(u8 taskId); void sub_8103C14(u8 a0); void sub_8103D50(u8 a0); void sub_8103D8C(u8 a0); @@ -1036,7 +1038,7 @@ static void sub_81027A0(void) extern const u16 gUnknown_083ECE6C[]; extern const u16 gUnknown_083ECE5A[]; -void sub_81027D0(void) +static void sub_81027D0(void) { u8 c1, c2, c3, payout; @@ -1052,7 +1054,7 @@ void sub_81027D0(void) } } -void sub_8102840(void) +static void sub_8102840(void) { u8 c1, c2, c3, payout; @@ -1086,7 +1088,7 @@ void sub_8102840(void) } } -void sub_810290C(void) +static void sub_810290C(void) { u8 c1, c2, c3, payout; @@ -1120,7 +1122,7 @@ void sub_810290C(void) extern const u8 gUnknown_083ECE52[]; -u8 sub_81029D4(u8 c1, u8 c2, u8 c3) +static u8 sub_81029D4(u8 c1, u8 c2, u8 c3) { if (c1 == c2 && c1 == c3) { @@ -1141,9 +1143,7 @@ u8 sub_81029D4(u8 c1, u8 c2, u8 c3) return 9; } -void sub_8102A64(u8 taskId); - -void sub_8102A24(void) +static void sub_8102A24(void) { sub_8102A64(CreateTask(sub_8102A64, 4)); } @@ -1159,7 +1159,7 @@ bool8 sub_8102A44(void) extern bool8 (*const gUnknown_083ECB20[])(struct Task *task); -void sub_8102A64(u8 taskId) +static void sub_8102A64(u8 taskId) { while (gUnknown_083ECB20[gTasks[taskId].data[0]](gTasks + taskId)); } @@ -1243,6 +1243,74 @@ u8 sub_8102BF8(u8 x, s16 y) return sub_8102BA4(x, y + r6); } +extern const u8 gUnknown_083ECCF1[]; + +u8 sub_8102C48(s16 a0) +{ + s16 r1 = (eSlotMachine->unk16 + a0) % 6; + if (r1 < 0) + r1 += 6; + return gUnknown_083ECCF1[r1]; +} + +void sub_8102C84(u8 a0, s16 a1) +{ + eSlotMachine->unk1C[a0] += a1; + eSlotMachine->unk1C[a0] %= 504; + eSlotMachine->unk28[a0] = 21 - eSlotMachine->unk1C[a0] / 24; +} + +s16 sub_8102CCC(u8 a0, s16 a1) +{ + s16 r1 = eSlotMachine->unk1C[a0] % 24; + if (r1 != 0) + { + if (r1 < a1) + a1 = r1; + sub_8102C84(a0, a1); + r1 = eSlotMachine->unk1C[a0] % 24; + } + return r1; +} + +void sub_8102D28(s16 a0) +{ + eSlotMachine->unk14 += a0; + eSlotMachine->unk14 %= 120; + eSlotMachine->unk16 = 6 - eSlotMachine->unk14 / 20; +} + +s16 sub_8102D5C(s16 a0) +{ + s16 r1 = eSlotMachine->unk14 % 20; + if (r1 != 0) + { + if (r1 < a0) + a0 = r1; + sub_8102D28(a0); + r1 = eSlotMachine->unk14 % 20; + } + return r1; +} + +static void sub_8102DA8(void) +{ + u8 i; + for (i = 0; i < 3; i++) + { + u8 taskId = CreateTask(sub_8102E68, 2); + gTasks[taskId].data[15] = i; + eSlotMachine->unk3A[i] = taskId; + sub_8102E68(taskId); + } +} + +static void sub_8102DEC(u8 a0) +{ + gTasks[eSlotMachine->unk3A[a0]].data[0] = 1; + gTasks[eSlotMachine->unk3A[a0]].data[14] = 1; +} + asm(".section .text_a"); static void LoadSlotMachineWheelOverlay(void); -- cgit v1.2.3 From 3a51ad2c81b0c479c2621e81ae13d28f3f90fc48 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 26 Dec 2017 20:48:28 -0500 Subject: through sub_8102EA4 --- src/field/slot_machine.c | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/field/slot_machine.c b/src/field/slot_machine.c index 6f1e7610a..55bbaef3a 100644 --- a/src/field/slot_machine.c +++ b/src/field/slot_machine.c @@ -99,7 +99,7 @@ bool8 sub_8102A44(void); u8 sub_8102BA4(u8 x, s16 y); static void sub_8102DA8(void); static void sub_8102DEC(u8 a0); -void sub_8102E1C(u8 a0); +static void sub_8102E1C(u8 a0); bool8 sub_8102E40(u8 a0); void sub_8102E68(u8 taskId); void sub_8103C14(u8 a0); @@ -1311,6 +1311,34 @@ static void sub_8102DEC(u8 a0) gTasks[eSlotMachine->unk3A[a0]].data[14] = 1; } +static void sub_8102E1C(u8 a0) +{ + gTasks[eSlotMachine->unk3A[a0]].data[0] = 2; +} + +bool8 sub_8102E40(u8 a0) +{ + return gTasks[eSlotMachine->unk3A[a0]].data[14]; +} + +extern bool8 (*const gUnknown_083ECB2C[])(struct Task *task); + +void sub_8102E68(u8 taskId) +{ + while (gUnknown_083ECB2C[gTasks[taskId].data[0]](gTasks + taskId)); +} + +bool8 sub_8102EA0(struct Task *task) +{ + return FALSE; +} + +bool8 sub_8102EA4(struct Task *task) +{ + sub_8102C84(task->data[15], eSlotMachine->unk1A); + return FALSE; +} + asm(".section .text_a"); static void LoadSlotMachineWheelOverlay(void); -- cgit v1.2.3 From da62907ec54f400646416f38ef02bd7f03d5dbc4 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 26 Dec 2017 21:25:47 -0500 Subject: through sub_8103008 --- src/field/slot_machine.c | 63 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) (limited to 'src') diff --git a/src/field/slot_machine.c b/src/field/slot_machine.c index 55bbaef3a..96fa2e18b 100644 --- a/src/field/slot_machine.c +++ b/src/field/slot_machine.c @@ -1339,6 +1339,69 @@ bool8 sub_8102EA4(struct Task *task) return FALSE; } +extern bool8 (*const gUnknown_083ECB40[])(void); +extern void (*const gUnknown_083ECB4C[])(void); + +bool8 sub_8102EC0(struct Task *task) +{ + task->data[0]++; + eSlotMachine->unk34[task->data[15]] = 0; + eSlotMachine->unk2E[task->data[15]] = 0; + if (eSlotMachine->unk0A == 0 && (eSlotMachine->unk04 == 0 || eSlotMachine->unk06 == 0 || !gUnknown_083ECB40[task->data[15]]())) + { + eSlotMachine->unk06 = 0; + gUnknown_083ECB4C[task->data[15]](); + } + task->data[1] = eSlotMachine->unk2E[task->data[15]]; + return TRUE; +} + +extern const u16 gUnknown_083ECB58[5]; // don't move this + +bool8 sub_8102F4C(struct Task *task) +{ + s16 r2; + u16 sp[5]; + memcpy(sp, gUnknown_083ECB58, sizeof gUnknown_083ECB58); + // u16 sp[] = {2, 4, 4, 4, 8}; + r2 = eSlotMachine->unk1C[task->data[15]] % 24; + if (r2 != 0) + { + r2 = sub_8102CCC(task->data[15], eSlotMachine->unk1A); + } + else if (eSlotMachine->unk2E[task->data[15]]) + { + eSlotMachine->unk2E[task->data[15]]--; + sub_8102C84(task->data[15], eSlotMachine->unk1A); + r2 = eSlotMachine->unk1C[task->data[15]] % 24; + } + if (r2 == 0 && eSlotMachine->unk2E[task->data[15]] == 0) + { + task->data[0]++; + task->data[1] = sp[task->data[1]]; + task->data[2] = 0; + } + return FALSE; +} + +bool8 sub_8103008(struct Task *task) +{ + eSlotMachine->unk22[task->data[15]] = task->data[1]; + task->data[1] = -task->data[1]; + task->data[2]++; + if ((task->data[2] & 0x3) == 0) + { + task->data[1] >>= 1; + } + if (task->data[1] == 0) + { + task->data[0] = 0; + task->data[14] = 0; + eSlotMachine->unk22[task->data[15]] = 0; + } + return FALSE; +} + asm(".section .text_a"); static void LoadSlotMachineWheelOverlay(void); -- cgit v1.2.3 From a161d7e816ecf99cae3bf8c690d665f04d2a9ecd Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 26 Dec 2017 21:50:35 -0500 Subject: through sub_8103134 --- src/field/slot_machine.c | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) (limited to 'src') diff --git a/src/field/slot_machine.c b/src/field/slot_machine.c index 96fa2e18b..7fab44c30 100644 --- a/src/field/slot_machine.c +++ b/src/field/slot_machine.c @@ -1402,6 +1402,49 @@ bool8 sub_8103008(struct Task *task) return FALSE; } +extern bool8 (*const gUnknown_083ECB64[])(u8 a0, u8 a1); + +bool8 sub_810305C(void) +{ + u8 r3 = sub_810250C(eSlotMachine->unk04); + u8 r5 = r3; + if (eSlotMachine->unk04 & 0xc0) + { + r5 = 0; + r3 = 1; + } + return gUnknown_083ECB64[eSlotMachine->bet - 1](r5, r3); +} + +bool8 sub_81030A4(s16 a0, u8 a1, u8 a2) +{ + u8 r1 = sub_8102BF8(0, a0); + if (r1 == a1 || r1 == a2) + { + eSlotMachine->unk07 = r1; + return TRUE; + } + return FALSE; +} + +bool8 sub_81030E0(s16 a0) +{ + if (sub_8102BF8(0, 1 - a0) == 4 || sub_8102BF8(0, 2 - a0) == 4 || sub_8102BF8(0, 3 - a0) == 4) + { + return TRUE; + } + return FALSE; +} + +bool8 sub_8103134(void) +{ + if (eSlotMachine->unk04 & 0xc2) + { + return TRUE; + } + return FALSE; +} + asm(".section .text_a"); static void LoadSlotMachineWheelOverlay(void); -- cgit v1.2.3 From 4bd55a4f027410a7caf50933d9b7e1da14ce73da Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 27 Dec 2017 22:01:52 -0500 Subject: through sub_81032E8 --- src/field/slot_machine.c | 84 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) (limited to 'src') diff --git a/src/field/slot_machine.c b/src/field/slot_machine.c index 7fab44c30..469753726 100644 --- a/src/field/slot_machine.c +++ b/src/field/slot_machine.c @@ -1445,6 +1445,90 @@ bool8 sub_8103134(void) return FALSE; } +bool8 sub_8103154(u8 a0, u8 a1) +{ + s16 i; + + for (i = 0; i < 5; i++) + { + if (sub_81030A4(2 - i, a0, a1)) + { + eSlotMachine->unk34[0] = 2; + eSlotMachine->unk2E[0] = i; + return TRUE; + } + } + return FALSE; +} + +bool8 sub_81031B4(u8 a0, u8 a1) +{ + s16 i; + bool8 r6 = sub_8103134(); + if (r6 || !sub_81030E0(0)) + { + for (i = 1; i < 4; i++) + { + if (sub_81030A4(i, a0, a1)) + { + eSlotMachine->unk34[0] = i; + eSlotMachine->unk2E[0] = 0; + return TRUE; + } + } + } + for (i = 1; i < 5; i++) + { + bool8 r7 = r6; + if (r7 || !sub_81030E0(i)) + { + if (sub_81030A4(1 - i, a0, a1)) + { + if (i == 1 && (r7 || !sub_81030E0(3))) + { + eSlotMachine->unk34[0] = 3; + eSlotMachine->unk2E[0] = 3; + return TRUE; + } + if (i < 4 && (r7 || !sub_81030E0(i + 1))) + { + eSlotMachine->unk34[0] = 2; + eSlotMachine->unk2E[0] = i + 1; + return TRUE; + } + eSlotMachine->unk34[0] = 1; + eSlotMachine->unk2E[0] = i; + return TRUE; + } + } + } + return FALSE; +} + +extern bool8 (*const gUnknown_083ECB70[])(void); + +bool8 sub_81032C0(void) +{ + return gUnknown_083ECB70[eSlotMachine->bet - 1](); +} + +bool8 sub_81032E8(void) +{ + s16 i; + s16 unk34_0 = eSlotMachine->unk34[0]; + + for (i = 0; i < 5; i++) + { + if (sub_8102BF8(1, unk34_0 - i) == eSlotMachine->unk07) + { + eSlotMachine->unk34[1] = unk34_0; + eSlotMachine->unk2E[1] = i; + return TRUE; + } + } + return FALSE; +} + asm(".section .text_a"); static void LoadSlotMachineWheelOverlay(void); -- cgit v1.2.3 From 57af95611d0a3cb0fda3ccebae725221ca5eac3e Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 27 Dec 2017 22:14:54 -0500 Subject: through sub_810341C --- src/field/slot_machine.c | 67 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) (limited to 'src') diff --git a/src/field/slot_machine.c b/src/field/slot_machine.c index 469753726..df6a6bd0b 100644 --- a/src/field/slot_machine.c +++ b/src/field/slot_machine.c @@ -1529,6 +1529,73 @@ bool8 sub_81032E8(void) return FALSE; } +bool8 sub_810333C(void) +{ + s16 i; + if (sub_81032E8()) + { + if (eSlotMachine->unk34[0] != 2 && eSlotMachine->unk2E[1] > 1 && eSlotMachine->unk2E[1] != 4) + { + for (i = 0; i < 5; i++) + { + if (sub_8102BF8(1, 2 - i) == eSlotMachine->unk07) + { + eSlotMachine->unk34[1] = 2; + eSlotMachine->unk2E[1] = i; + break; + } + } + } + return TRUE; + } + if (eSlotMachine->unk34[0] != 2) + { + for (i = 0; i < 5; i++) + { + if (sub_8102BF8(1, 2 - i) == eSlotMachine->unk07) + { + eSlotMachine->unk34[1] = 2; + eSlotMachine->unk2E[1] = i; + return TRUE; + } + } + } + return FALSE; +} + +extern bool8 (*const gUnknown_083ECB7C[])(u8 a0); + +bool8 sub_81033DC(void) +{ + u8 r3 = eSlotMachine->unk07; + if (eSlotMachine->unk04 & 0x40) + { + r3 = 0; + if (eSlotMachine->unk07 == 0) + { + r3 = 1; + } + } + return gUnknown_083ECB7C[eSlotMachine->bet - 1](r3); +} + +bool8 sub_810341C(u8 a0) +{ + s16 i; + s16 unk34_1 = eSlotMachine->unk34[1]; + + for (i = 0; i < 5; i++) + { + if (sub_8102BF8(2, unk34_1 - i) == a0) + { + eSlotMachine->unk34[2] = unk34_1; + eSlotMachine->unk2E[2] = i; + return TRUE; + } + } + return FALSE; +} + asm(".section .text_a"); static void LoadSlotMachineWheelOverlay(void); -- cgit v1.2.3 From e3acf564701fe6bc77c92fc5268083e4adc10ed7 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 27 Dec 2017 23:14:42 -0500 Subject: through sub_8103520 --- src/field/slot_machine.c | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) (limited to 'src') 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); -- cgit v1.2.3 From ae42fdd5f4de2a68ef8d3ec8dd8147a189089a1b Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 28 Dec 2017 20:43:51 -0500 Subject: through sub_8103668 (nonmatching) --- src/field/slot_machine.c | 250 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 250 insertions(+) (limited to 'src') diff --git a/src/field/slot_machine.c b/src/field/slot_machine.c index 612dcd49f..9e5980446 100644 --- a/src/field/slot_machine.c +++ b/src/field/slot_machine.c @@ -1643,6 +1643,256 @@ bool8 sub_8103520(u8 *a0) return FALSE; } +extern void (*gUnknown_083ECB88[])(void); + +void sub_8103540(void) +{ + gUnknown_083ECB88[eSlotMachine->bet - 1](); +} + +void sub_8103564(void) +{ + if (eSlotMachine->unk34[0] != 0 && eSlotMachine->unk04 & 0x80) + { + u8 sp0 = sub_8102BF8(0, 2 - eSlotMachine->unk2E[0]); + if (sub_8103520(&sp0)) + { + s16 i; + for (i = 0; i < 5; i++) + { + if (sp0 == sub_8102BF8(1, 2 - i)) + { + eSlotMachine->unk34[1] = 2; + eSlotMachine->unk2E[1] = i; + break; + } + } + } + } +} + +void j5_08111E84(void) +{ + if (eSlotMachine->unk34[0] != 0 && eSlotMachine->unk04 & 0x80) + { + u8 sp0 = sub_8102BF8(0, eSlotMachine->unk34[0] - eSlotMachine->unk2E[0]); + if (sub_8103520(&sp0)) + { + s16 i; + for (i = 0; i < 5; i++) + { + if (sp0 == sub_8102BF8(1, eSlotMachine->unk34[0] - i)) + { + eSlotMachine->unk34[1] = eSlotMachine->unk34[0]; + eSlotMachine->unk2E[1] = i; + break; + } + } + } + } +} + +#ifdef NONMATCHING // variable r6 is mistakenly plopped into r5, + // and variable i is mistakenly plopped into r6 +void sub_8103668(void) +{ + if (eSlotMachine->unk34[0] != 0 && eSlotMachine->unk04 & 0x80) + { + if (eSlotMachine->unk34[0] == 2) + { + j5_08111E84(); + } + else + { + u8 sp0 = sub_8102BF8(0, eSlotMachine->unk34[0] - eSlotMachine->unk2E[0]); + if (sub_8103520(&sp0)) + { + s16 i; + s16 r6 = 2; + if (eSlotMachine->unk34[0] == 3) + r6 = 3; + for (i = 0; i < 2; i++, r6--) + { + if (sp0 == sub_8102BF8(1, r6)) + { + eSlotMachine->unk34[1] = r6; + eSlotMachine->unk2E[1] = 0; + return; + } + } + for (i = 1; i < 5; i++) + { + if (sp0 == sub_8102BF8(1, eSlotMachine->unk34[0] - i)) + { + if (eSlotMachine->unk34[0] == 1) + { + if (i < 3) + { + eSlotMachine->unk34[1] = 2; + eSlotMachine->unk2E[1] = i + 1; + } + else + { + eSlotMachine->unk34[1] = 1; + eSlotMachine->unk2E[1] = i; + } + } + else + { + if (i < 3) + { + eSlotMachine->unk34[1] = 3; + eSlotMachine->unk2E[1] = i; + } + else + { + eSlotMachine->unk34[1] = 2; + eSlotMachine->unk2E[1] = i - 1; + } + } + return; + } + } + } + } + } +} +#else +__attribute__((naked)) void sub_8103668(void) +{ + asm_unified("\tpush {r4-r7,lr}\n" + "\tsub sp, 0x4\n" + "\tldr r4, _0810368C @ =gSharedMem\n" + "\tldrh r3, [r4, 0x34]\n" + "\tmovs r0, 0x34\n" + "\tldrsh r2, [r4, r0]\n" + "\tcmp r2, 0\n" + "\tbeq _0810375A\n" + "\tldrb r1, [r4, 0x4]\n" + "\tmovs r0, 0x80\n" + "\tands r0, r1\n" + "\tcmp r0, 0\n" + "\tbeq _0810375A\n" + "\tcmp r2, 0x2\n" + "\tbne _081036AE\n" + "\tbl j5_08111E84\n" + "\tb _0810375A\n" + "\t.align 2, 0\n" + "_0810368C: .4byte gSharedMem\n" + "_08103690:\n" + "\tldr r0, _0810369C @ =gSharedMem\n" + "\tmovs r1, 0\n" + "\tstrh r6, [r0, 0x36]\n" + "\tstrh r1, [r0, 0x30]\n" + "\tb _0810375A\n" + "\t.align 2, 0\n" + "_0810369C: .4byte gSharedMem\n" + "_081036A0:\n" + "\tmovs r0, 0x2\n" + "\tstrh r0, [r5, 0x36]\n" + "\tadds r0, r4, 0x1\n" + "\tstrh r0, [r5, 0x30]\n" + "\tb _0810375A\n" + "_081036AA:\n" + "\tmovs r0, 0x3\n" + "\tb _08103736\n" + "_081036AE:\n" + "\tldrh r1, [r4, 0x2E]\n" + "\tsubs r1, r3, r1\n" + "\tlsls r1, 16\n" + "\tasrs r1, 16\n" + "\tmovs r0, 0\n" + "\tbl sub_8102BF8\n" + "\tmov r1, sp\n" + "\tstrb r0, [r1]\n" + "\tmov r0, sp\n" + "\tbl sub_8103520\n" + "\tlsls r0, 24\n" + "\tcmp r0, 0\n" + "\tbeq _0810375A\n" + "\tmovs r6, 0x2\n" + "\tmovs r1, 0x34\n" + "\tldrsh r0, [r4, r1]\n" + "\tcmp r0, 0x3\n" + "\tbne _081036D8\n" + "\tmovs r6, 0x3\n" + "_081036D8:\n" + "\tmovs r5, 0\n" + "\tmov r7, sp\n" + "_081036DC:\n" + "\tlsls r0, r6, 16\n" + "\tasrs r4, r0, 16\n" + "\tmovs r0, 0x1\n" + "\tadds r1, r4, 0\n" + "\tbl sub_8102BF8\n" + "\tldrb r1, [r7]\n" + "\tlsls r0, 24\n" + "\tlsrs r0, 24\n" + "\tcmp r1, r0\n" + "\tbeq _08103690\n" + "\tlsls r1, r5, 16\n" + "\tmovs r0, 0x80\n" + "\tlsls r0, 9\n" + "\tadds r1, r0\n" + "\tsubs r0, r4, 0x1\n" + "\tlsls r0, 16\n" + "\tlsrs r6, r0, 16\n" + "\tlsrs r5, r1, 16\n" + "\tasrs r1, 16\n" + "\tcmp r1, 0x1\n" + "\tble _081036DC\n" + "\tmovs r6, 0x1\n" + "\tmov r7, sp\n" + "\tldr r5, _0810373C @ =gSharedMem\n" + "_0810370E:\n" + "\tldrh r1, [r5, 0x34]\n" + "\tlsls r0, r6, 16\n" + "\tasrs r4, r0, 16\n" + "\tsubs r1, r4\n" + "\tlsls r1, 16\n" + "\tasrs r1, 16\n" + "\tmovs r0, 0x1\n" + "\tbl sub_8102BF8\n" + "\tldrb r1, [r7]\n" + "\tlsls r0, 24\n" + "\tlsrs r0, 24\n" + "\tcmp r1, r0\n" + "\tbne _0810374E\n" + "\tmovs r1, 0x34\n" + "\tldrsh r0, [r5, r1]\n" + "\tcmp r0, 0x1\n" + "\tbne _08103740\n" + "\tcmp r4, 0x2\n" + "\tble _081036A0\n" + "_08103736:\n" + "\tstrh r0, [r5, 0x36]\n" + "\tstrh r6, [r5, 0x30]\n" + "\tb _0810375A\n" + "\t.align 2, 0\n" + "_0810373C: .4byte gSharedMem\n" + "_08103740:\n" + "\tcmp r4, 0x2\n" + "\tble _081036AA\n" + "\tmovs r0, 0x2\n" + "\tstrh r0, [r5, 0x36]\n" + "\tsubs r0, r4, 0x1\n" + "\tstrh r0, [r5, 0x30]\n" + "\tb _0810375A\n" + "_0810374E:\n" + "\tadds r0, r4, 0x1\n" + "\tlsls r0, 16\n" + "\tlsrs r6, r0, 16\n" + "\tasrs r0, 16\n" + "\tcmp r0, 0x4\n" + "\tble _0810370E\n" + "_0810375A:\n" + "\tadd sp, 0x4\n" + "\tpop {r4-r7}\n" + "\tpop {r0}\n" + "\tbx r0"); +} +#endif // NONMATCHING + asm(".section .text_a"); static void LoadSlotMachineWheelOverlay(void); -- cgit v1.2.3 From c42efaf17328594dc30e4fc6f31b8eef0f629278 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 28 Dec 2017 21:17:15 -0500 Subject: through sub_810380C --- src/field/slot_machine.c | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) (limited to 'src') diff --git a/src/field/slot_machine.c b/src/field/slot_machine.c index 9e5980446..a4b3175d2 100644 --- a/src/field/slot_machine.c +++ b/src/field/slot_machine.c @@ -1893,6 +1893,44 @@ __attribute__((naked)) void sub_8103668(void) } #endif // NONMATCHING +bool8 sub_8103764(u8 a0, u8 a1) +{ + if ((a0 == 0 && a1 == 1) || (a0 == 1 && a1 == 0)) + { + return TRUE; + } + return FALSE; +} + +bool8 sub_810378C(u8 a0, u8 a1, u8 a2) +{ + if ((a0 == 0 && a1 == 1 && a2 == 0) || (a0 == 1 && a1 == 0 && a2 == 1)) + { + return TRUE; + } + return FALSE; +} + +bool8 sub_81037BC(u8 a0, u8 a1, u8 a2) +{ + if ((a0 == 0 && a1 == 1 && a2 == 0) || + (a0 == 1 && a1 == 0 && a2 == 1) || + (a0 == 0 && a1 == 0 && a2 == 1) || + (a0 == 1 && a1 == 1 && a2 == 0) || + (a0 == a1 && a0 == a2)) + { + return FALSE; + } + return TRUE; +} + +extern void (*const gUnknown_083ECB94[])(void); + +void sub_810380C(void) +{ + gUnknown_083ECB94[eSlotMachine->bet - 1](); +} + asm(".section .text_a"); static void LoadSlotMachineWheelOverlay(void); -- cgit v1.2.3 From 857b166086756ccc92e58981493513a7f00920ff Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 28 Dec 2017 21:49:13 -0500 Subject: sub_8103830 --- src/field/slot_machine.c | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) (limited to 'src') diff --git a/src/field/slot_machine.c b/src/field/slot_machine.c index a4b3175d2..fbc89133a 100644 --- a/src/field/slot_machine.c +++ b/src/field/slot_machine.c @@ -1931,6 +1931,49 @@ void sub_810380C(void) gUnknown_083ECB94[eSlotMachine->bet - 1](); } +void sub_8103830(void) +{ + s16 i = 0; + u8 r5 = sub_8102BF8(0, 2 - eSlotMachine->unk2E[0]); + u8 r1 = sub_8102BF8(1, 2 - eSlotMachine->unk2E[1]); + if (r5 == r1) + { + while (1) + { + u8 r0; + if (!(r5 == (r0 = sub_8102BF8(2, 2 - i)) || (r5 == 0 && r0 == 1) || (r5 == 1 && r0 == 0))) + { + break; + } + i++; + } + } + else if (sub_8103764(r5, r1)) + { + if (eSlotMachine->unk04 & 0x80) + { + for (i = 0; i < 5; i++) + { + if (r5 == sub_8102BF8(2, 2 - i)) + { + eSlotMachine->unk2E[2] = i; + return; + } + } + } + i = 0; + while (1) + { + if (r5 != sub_8102BF8(2, 2 - i)) + { + break; + } + i++; + } + } + eSlotMachine->unk2E[2] = i; +} + asm(".section .text_a"); static void LoadSlotMachineWheelOverlay(void); -- cgit v1.2.3 From 31660ed578795464ed46f663bfaacd1ecb2006a6 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 29 Dec 2017 17:01:25 -0500 Subject: sub_8103910 --- src/field/slot_machine.c | 53 ++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 51 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/field/slot_machine.c b/src/field/slot_machine.c index fbc89133a..bea32d9fb 100644 --- a/src/field/slot_machine.c +++ b/src/field/slot_machine.c @@ -1696,6 +1696,8 @@ void j5_08111E84(void) // and variable i is mistakenly plopped into r6 void sub_8103668(void) { + s16 i; + s16 r6; if (eSlotMachine->unk34[0] != 0 && eSlotMachine->unk04 & 0x80) { if (eSlotMachine->unk34[0] == 2) @@ -1707,8 +1709,7 @@ void sub_8103668(void) u8 sp0 = sub_8102BF8(0, eSlotMachine->unk34[0] - eSlotMachine->unk2E[0]); if (sub_8103520(&sp0)) { - s16 i; - s16 r6 = 2; + r6 = 2; if (eSlotMachine->unk34[0] == 3) r6 = 3; for (i = 0; i < 2; i++, r6--) @@ -1974,6 +1975,54 @@ void sub_8103830(void) eSlotMachine->unk2E[2] = i; } +void sub_8103910(void) +{ + s16 sp0 = 0; + s16 i; + u8 r7; + u8 r6; + u8 r4; + + if (eSlotMachine->unk34[1] != 0 && eSlotMachine->unk34[0] == eSlotMachine->unk34[1] && eSlotMachine->unk04 & 0x80) + { + r7 = sub_8102BF8(0, eSlotMachine->unk34[0] - eSlotMachine->unk2E[0]); + r6 = sub_8102BF8(1, eSlotMachine->unk34[1] - eSlotMachine->unk2E[1]); + if (sub_8103764(r7, r6)) + { + for (i = 0; i < 5; i++) + { + r4 = sub_8102BF8(2, eSlotMachine->unk34[1] - i); + if (r7 == r4) + { + sp0 = i; + break; + } + } + } + } + while (1) + { + s16 r8; + for (i = 1, r8 = 0; i < 4; i++) + { + r7 = sub_8102BF8(0, i - eSlotMachine->unk2E[0]); + r6 = sub_8102BF8(1, i - eSlotMachine->unk2E[1]); + r4 = sub_8102BF8(2, i - sp0); + if (!sub_81037BC(r7, r6, r4) && (!sub_810378C(r7, r6, r4) || !(eSlotMachine->unk04 & 0x80))) + { + r8++; + break; + } + } + if (r8 == 0) + { + break; + } + sp0++; + } + eSlotMachine->unk2E[2] = sp0; +} + asm(".section .text_a"); static void LoadSlotMachineWheelOverlay(void); -- cgit v1.2.3 From b7f9313a2183203a92d1eac744c52b13119202b7 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 29 Dec 2017 18:04:53 -0500 Subject: sub_8103A78 --- src/field/slot_machine.c | 49 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) (limited to 'src') diff --git a/src/field/slot_machine.c b/src/field/slot_machine.c index bea32d9fb..04cd699d3 100644 --- a/src/field/slot_machine.c +++ b/src/field/slot_machine.c @@ -2023,6 +2023,55 @@ void sub_8103910(void) eSlotMachine->unk2E[2] = sp0; } +void sub_8103A78(void) +{ + u8 r6; + u8 r5; + u8 r4; + s16 r8; + s16 i; + + sub_8103910(); + if (eSlotMachine->unk34[1] != 0 && eSlotMachine->unk34[0] != eSlotMachine->unk34[1] && eSlotMachine->unk04 & 0x80) + { + r6 = sub_8102BF8(0, eSlotMachine->unk34[0] - eSlotMachine->unk2E[0]); + r5 = sub_8102BF8(1, eSlotMachine->unk34[1] - eSlotMachine->unk2E[1]); + if (sub_8103764(r6, r5)) + { + r8 = 1; + if (eSlotMachine->unk34[0] == 1) + r8 = 3; + for (i = 0; i < 5; i++) + { + r4 = sub_8102BF8(2, r8 - (eSlotMachine->unk2E[2] + i)); + if (r6 == r4) + { + eSlotMachine->unk2E[2] += i; + break; + } + } + } + } + while (1) + { + r6 = sub_8102BF8(0, 1 - eSlotMachine->unk2E[0]); + r5 = sub_8102BF8(1, 2 - eSlotMachine->unk2E[1]); + r4 = sub_8102BF8(2, 3 - eSlotMachine->unk2E[2]); + if (sub_81037BC(r6, r5, r4) || (sub_810378C(r6, r5, r4) && eSlotMachine->unk04 & 0x80)) + break; + eSlotMachine->unk2E[2]++; + } + while (1) + { + r6 = sub_8102BF8(0, 3 - eSlotMachine->unk2E[0]); + r5 = sub_8102BF8(1, 2 - eSlotMachine->unk2E[1]); + r4 = sub_8102BF8(2, 1 - eSlotMachine->unk2E[2]); + if (sub_81037BC(r6, r5, r4) || (sub_810378C(r6, r5, r4) && eSlotMachine->unk04 & 0x80)) + break; + eSlotMachine->unk2E[2]++; + } +} + asm(".section .text_a"); static void LoadSlotMachineWheelOverlay(void); -- cgit v1.2.3 From 8e79fd9e13e42961cfb1de4c44714960ae3ac668 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 29 Dec 2017 18:18:15 -0500 Subject: through sub_8103CC8 --- src/field/slot_machine.c | 50 +++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 43 insertions(+), 7 deletions(-) (limited to 'src') diff --git a/src/field/slot_machine.c b/src/field/slot_machine.c index 04cd699d3..922ab0c4d 100644 --- a/src/field/slot_machine.c +++ b/src/field/slot_machine.c @@ -95,14 +95,15 @@ static void sub_810290C(void); static u8 sub_81029D4(u8 c1, u8 c2, u8 c3); static void sub_8102A24(void); static void sub_8102A64(u8 taskId); -bool8 sub_8102A44(void); +static bool8 sub_8102A44(void); u8 sub_8102BA4(u8 x, s16 y); static void sub_8102DA8(void); static void sub_8102DEC(u8 a0); static void sub_8102E1C(u8 a0); -bool8 sub_8102E40(u8 a0); -void sub_8102E68(u8 taskId); -void sub_8103C14(u8 a0); +static bool8 sub_8102E40(u8 a0); +static void sub_8102E68(u8 taskId); +static void sub_8103C14(u8 a0); +void sub_8103C48(u8 taskId); void sub_8103D50(u8 a0); void sub_8103D8C(u8 a0); void sub_8103DC8(void); @@ -128,6 +129,7 @@ void sub_81050C4(void); void sub_81063C0(void); static void sub_8106448(void); void sub_81064B8(void); +void sub_81065A8(s16 arg0, u16 arg1, u16 arg2, u16 arg3, u16 arg4); static bool8 (*const gUnknown_083ECAAC[])(struct Task *task) = { sub_8101D5C, @@ -1148,7 +1150,7 @@ static void sub_8102A24(void) sub_8102A64(CreateTask(sub_8102A64, 4)); } -bool8 sub_8102A44(void) +static bool8 sub_8102A44(void) { if (FindTaskIdByFunc(sub_8102A64) == 0xff) { @@ -1316,14 +1318,14 @@ static void sub_8102E1C(u8 a0) gTasks[eSlotMachine->unk3A[a0]].data[0] = 2; } -bool8 sub_8102E40(u8 a0) +static bool8 sub_8102E40(u8 a0) { return gTasks[eSlotMachine->unk3A[a0]].data[14]; } extern bool8 (*const gUnknown_083ECB2C[])(struct Task *task); -void sub_8102E68(u8 taskId) +static void sub_8102E68(u8 taskId) { while (gUnknown_083ECB2C[gTasks[taskId].data[0]](gTasks + taskId)); } @@ -2072,6 +2074,40 @@ void sub_8103A78(void) } } +static void sub_8103C14(u8 a0) +{ + u8 taskId = CreateTask(sub_8103C48, 5); + gTasks[taskId].data[15] = a0; + sub_8103C48(taskId); +} + +extern void (*const gUnknown_083ECBA0[])(struct Task *task, u8 taskId); + +void sub_8103C48(u8 taskId) +{ + gUnknown_083ECBA0[gTasks[taskId].data[0]](gTasks + taskId, taskId); +} + +extern const s16 gUnknown_083ECBAC[]; + +void sub_8103C78(struct Task *task, u8 taskId) +{ + sub_81065A8(gUnknown_083ECBAC[task->data[15]], 0x62, 0x63, 0x72, 0x73); + task->data[0]++; +} + +void sub_8103CAC(struct Task *task, u8 taskId) +{ + if (++task->data[1] > 11) + task->data[0]++; +} + +void sub_8103CC8(struct Task *task, u8 taskId) +{ + sub_81065A8(gUnknown_083ECBAC[task->data[15]], 0x42, 0x43, 0x52, 0x53); + DestroyTask(taskId); +} + asm(".section .text_a"); static void LoadSlotMachineWheelOverlay(void); -- cgit v1.2.3 From d05e72b6b269defef8d9b1bbce42adaf48f4ed8f Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 29 Dec 2017 19:35:05 -0500 Subject: through sub_8103E7C --- src/field/slot_machine.c | 98 ++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 90 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/field/slot_machine.c b/src/field/slot_machine.c index 922ab0c4d..82ac4e9e7 100644 --- a/src/field/slot_machine.c +++ b/src/field/slot_machine.c @@ -103,13 +103,15 @@ static void sub_8102E1C(u8 a0); static bool8 sub_8102E40(u8 a0); static void sub_8102E68(u8 taskId); static void sub_8103C14(u8 a0); -void sub_8103C48(u8 taskId); -void sub_8103D50(u8 a0); -void sub_8103D8C(u8 a0); -void sub_8103DC8(void); -void sub_8103E04(u8 a0); -bool8 sub_8103E38(void); -bool8 sub_8103E7C(void); +static void sub_8103C48(u8 taskId); +static void sub_8103D50(u8 a0); +static void sub_8103D8C(u8 a0); +static void sub_8103DC8(void); +static void sub_8103E04(u8 a0); +static bool8 sub_8103E38(void); +static bool8 sub_8103E7C(void); +bool8 sub_8103EAC(u8 a0); +void sub_8103EE4(struct Sprite *sprite); void sub_8103F70(void); bool8 sub_8103FA0(void); void sub_8104048(void); @@ -2083,7 +2085,7 @@ static void sub_8103C14(u8 a0) extern void (*const gUnknown_083ECBA0[])(struct Task *task, u8 taskId); -void sub_8103C48(u8 taskId) +static void sub_8103C48(u8 taskId) { gUnknown_083ECBA0[gTasks[taskId].data[0]](gTasks + taskId, taskId); } @@ -2108,6 +2110,86 @@ void sub_8103CC8(struct Task *task, u8 taskId) DestroyTask(taskId); } +extern const u16 *const gUnknown_083EDD08[]; +extern const u16 *const gUnknown_083EDD1C[]; +extern const u8 gUnknown_083EDD30[]; + +static void sub_8103D00(u8 a0) +{ + LoadPalette(gUnknown_083EDD08[a0], gUnknown_083EDD30[a0], 2); +} + +static void sub_8103D28(u8 a0) +{ + LoadPalette(gUnknown_083EDD1C[a0], gUnknown_083EDD30[a0], 2); +} + +extern const u8 gUnknown_083EDD3B[]; +extern const u8 gUnknown_083EDD35[][2]; + +static void sub_8103D50(u8 a0) +{ + u8 i; + for (i = 0; i < gUnknown_083EDD3B[a0]; i++) + { + sub_8103D00(gUnknown_083EDD35[a0][i]); + } +} + +static void sub_8103D8C(u8 a0) +{ + u8 i; + for (i = 0; i < gUnknown_083EDD3B[a0]; i++) + { + sub_8103D28(gUnknown_083EDD35[a0][i]); + } +} + +static void sub_8103DC8(void) +{ + u8 i; + for (i = 0; i < 5; i++) + { + u8 spriteId = CreateInvisibleSprite(sub_8103EE4); + gSprites[spriteId].data[0] = i; + eSlotMachine->unk44[i] = spriteId; + } +} + +static void sub_8103E04(u8 a0) +{ + struct Sprite *sprite = gSprites + eSlotMachine->unk44[a0]; + sprite->data[1] = 1; + sprite->data[2] = 4; + sprite->data[3] = 0; + sprite->data[4] = 0; + sprite->data[5] = 2; + sprite->data[7] = 0; +} + +static bool8 sub_8103E38(void) +{ + u8 i; + for (i = 0; i < 5; i++) + { + struct Sprite *sprite = gSprites + eSlotMachine->unk44[i]; + if (sprite->data[1] && sprite->data[2]) + return FALSE; + } + return TRUE; +} + +static bool8 sub_8103E7C(void) +{ + u8 i; + for (i = 0; i < 5; i++) + { + if (!sub_8103EAC(eSlotMachine->unk44[i])) + return FALSE; + } + return TRUE; +} + asm(".section .text_a"); static void LoadSlotMachineWheelOverlay(void); -- cgit v1.2.3 From 17745475ccc35c99ac9b586a03bc39de0936bb2e Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 29 Dec 2017 20:03:05 -0500 Subject: through sub_8103FA0 --- src/field/slot_machine.c | 70 +++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 66 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/field/slot_machine.c b/src/field/slot_machine.c index 82ac4e9e7..659688d81 100644 --- a/src/field/slot_machine.c +++ b/src/field/slot_machine.c @@ -3,6 +3,7 @@ #include "strings2.h" #include "overworld.h" #include "menu_cursor.h" +#include "field_effect.h" #include "random.h" #include "sound.h" #include "main.h" @@ -110,10 +111,11 @@ static void sub_8103DC8(void); static void sub_8103E04(u8 a0); static bool8 sub_8103E38(void); static bool8 sub_8103E7C(void); -bool8 sub_8103EAC(u8 a0); -void sub_8103EE4(struct Sprite *sprite); -void sub_8103F70(void); -bool8 sub_8103FA0(void); +static bool8 sub_8103EAC(u8 spriteId); +static void sub_8103EE4(struct Sprite *sprite); +static void sub_8103F70(void); +void sub_8103FE8(u8 taskId); +static bool8 sub_8103FA0(void); void sub_8104048(void); void sub_8104064(u8 a0); bool8 sub_81040C8(void); @@ -2190,6 +2192,66 @@ static bool8 sub_8103E7C(void) return TRUE; } +static bool8 sub_8103EAC(u8 spriteId) +{ + struct Sprite *sprite = gSprites + spriteId; + if (!sprite->data[1]) + return TRUE; + if (sprite->data[7]) + sprite->data[1] = 0; + return sprite->data[7]; +} + +static void sub_8103EE4(struct Sprite *sprite) +{ + s16 r4; + if (sprite->data[1]) + { + if (!sprite->data[3]--) + { + sprite->data[7] = 0; + sprite->data[3] = 1; + sprite->data[4] += sprite->data[5]; + r4 = 4; + if (sprite->data[2]) + r4 = 8; + if (sprite->data[4] <= 0) + { + sprite->data[7] = 1; + sprite->data[5] = -sprite->data[5]; + if (sprite->data[2]) + sprite->data[2]--; + } + else if (sprite->data[4] >= r4) + sprite->data[5] = -sprite->data[5]; + if (sprite->data[2]) + sprite->data[3] <<= 1; + } + MultiplyPaletteRGBComponents(gUnknown_083EDD30[sprite->data[0]], sprite->data[4], sprite->data[4], sprite->data[4]); + } +} + +static void sub_8103F70(void) +{ + u8 taskId = CreateTask(sub_8103FE8, 6); + gTasks[taskId].data[3] = 1; + sub_8103FE8(taskId); +} + +extern const u16 *const gUnknown_083EDDAC; + +static bool8 sub_8103FA0(void) +{ + u8 taskId = FindTaskIdByFunc(sub_8103FE8); + if (!gTasks[taskId].data[2]) + { + DestroyTask(taskId); + LoadPalette(gUnknown_083EDDAC, 0x10, 0x20); + return TRUE; + } + return FALSE; +} + asm(".section .text_a"); static void LoadSlotMachineWheelOverlay(void); -- cgit v1.2.3 From 8eb7f3db6ee630fd801391ac3a3b574abfa7a08d Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 29 Dec 2017 21:14:09 -0500 Subject: through sub_8104144 --- src/field/slot_machine.c | 91 ++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 88 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/field/slot_machine.c b/src/field/slot_machine.c index 659688d81..9efaccd39 100644 --- a/src/field/slot_machine.c +++ b/src/field/slot_machine.c @@ -114,11 +114,13 @@ static bool8 sub_8103E7C(void); static bool8 sub_8103EAC(u8 spriteId); static void sub_8103EE4(struct Sprite *sprite); static void sub_8103F70(void); -void sub_8103FE8(u8 taskId); static bool8 sub_8103FA0(void); -void sub_8104048(void); -void sub_8104064(u8 a0); +static void sub_8103FE8(u8 taskId); +static void sub_8104048(void); +static void sub_8104064(u8 unused); bool8 sub_81040C8(void); +void sub_81040E8(u8 taskId); +void sub_810421C(struct Task *task); void sub_810423C(u8 a0); void sub_810430C(void); bool8 sub_810432C(void); @@ -130,6 +132,8 @@ bool8 sub_8104E18(void); void sub_8104EA8(void); void sub_8104F8C(void); void sub_81050C4(void); +u8 sub_8105B1C(s16 a0, s16 a1); +void sub_8105B88(u8 a0); void sub_81063C0(void); static void sub_8106448(void); void sub_81064B8(void); @@ -2238,6 +2242,7 @@ static void sub_8103F70(void) sub_8103FE8(taskId); } +extern const u16 *const gUnknown_083EDDA0[]; extern const u16 *const gUnknown_083EDDAC; static bool8 sub_8103FA0(void) @@ -2252,6 +2257,86 @@ static bool8 sub_8103FA0(void) return FALSE; } +static void sub_8103FE8(u8 taskId) +{ + struct Task *task = gTasks + taskId; + if (!task->data[1]--) + { + task->data[1] = 4; + task->data[2] += task->data[3]; + if (task->data[2] == 0 || task->data[2] == 2) + { + task->data[3] = -task->data[3]; + } + } + LoadPalette(gUnknown_083EDDA0[task->data[2]], 0x10, 0x20); +} + +static void sub_8104048(void) +{ + eSlotMachine->unk3E = CreateTask(sub_81040E8, 8); +} + +static void sub_8104064(u8 unused) +{ + struct Task *task = gTasks + eSlotMachine->unk3E; + sub_810421C(task); + task->data[0] = 1; + task->data[1]++; + task->data[15] = 1; +} + +void sub_8104098(void) +{ + struct Task *task = gTasks + eSlotMachine->unk3E; + sub_810421C(task); + task->data[0] = 3; + task->data[15] = 1; +} + +bool8 sub_81040C8(void) +{ + return gTasks[eSlotMachine->unk3E].data[15]; +} + +extern void (*const gUnknown_083ECBB4[])(struct Task *task); + +void sub_81040E8(u8 taskId) +{ + gUnknown_083ECBB4[gTasks[taskId].data[0]](gTasks + taskId); +} + +void nullsub_68(struct Task *task) +{ + +} + +void sub_810411C(struct Task *task) +{ + task->data[2] = sub_8105B1C((task->data[1] << 3) + 20, 20); + task->data[0]++; +} + +extern const u16 gUnknown_083ECBC4[][2]; + +void sub_8104144(struct Task *task) +{ + u16 *vaddr = (u16 *)BG_SCREEN_ADDR(29); + if (gSprites[task->data[2]].data[7]) + { + s16 r2 = task->data[1] + 2; + u8 r0 = 0; + if (task->data[1] == 1) + r0 = 1; + else if (task->data[1] == 16) + r0 = 2; + vaddr[r2 + 0x40] = gUnknown_083ECBC4[r0][0]; + sub_8105B88(task->data[2]); + task->data[0] = 0; + task->data[15] = 0; + } +} + asm(".section .text_a"); static void LoadSlotMachineWheelOverlay(void); -- cgit v1.2.3 From 1d1c88a850e0967051599b37873328e63ae63643 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 30 Dec 2017 10:30:24 -0500 Subject: through sub_810437C --- src/field/slot_machine.c | 119 +++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 114 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/field/slot_machine.c b/src/field/slot_machine.c index 9efaccd39..f7679588c 100644 --- a/src/field/slot_machine.c +++ b/src/field/slot_machine.c @@ -119,11 +119,13 @@ static void sub_8103FE8(u8 taskId); static void sub_8104048(void); static void sub_8104064(u8 unused); bool8 sub_81040C8(void); -void sub_81040E8(u8 taskId); -void sub_810421C(struct Task *task); +static void sub_81040E8(u8 taskId); +static void sub_810421C(struct Task *task); void sub_810423C(u8 a0); -void sub_810430C(void); -bool8 sub_810432C(void); +static void sub_810430C(void); +static bool8 sub_810432C(void); +void sub_810434C(u8 taskId); +void sub_8104A40(s16 a0, s16 a1); void sub_8104AB8(u8 a0); bool8 sub_8104AEC(void); void sub_8104C5C(void); @@ -132,6 +134,11 @@ bool8 sub_8104E18(void); void sub_8104EA8(void); void sub_8104F8C(void); void sub_81050C4(void); +void sub_8105100(void); +void sub_81051C0(void); +void sub_81052EC(void); +void sub_81053A0(void); +void sub_810545C(void); u8 sub_8105B1C(s16 a0, s16 a1); void sub_8105B88(u8 a0); void sub_81063C0(void); @@ -2301,7 +2308,7 @@ bool8 sub_81040C8(void) extern void (*const gUnknown_083ECBB4[])(struct Task *task); -void sub_81040E8(u8 taskId) +static void sub_81040E8(u8 taskId) { gUnknown_083ECBB4[gTasks[taskId].data[0]](gTasks + taskId); } @@ -2337,6 +2344,108 @@ void sub_8104144(struct Task *task) } } +void sub_81041AC(struct Task *task) +{ + u16 *vaddr = (u16 *)BG_SCREEN_ADDR(29); + s16 r4 = task->data[1] + 2; + u8 r2 = 0; + if (task->data[1] == 1) + r2 = 1; + else if (task->data[1] == 16) + r2 = 2; + if (task->data[2] == 0) + { + vaddr[r4 + 0x40] = gUnknown_083ECBC4[r2][1]; + task->data[1]--; + } + if (++task->data[2] >= 20) + task->data[2] = 0; + if (task->data[1] == 0) + { + task->data[0] = 0; + task->data[15] = 0; + } +} + +static void sub_810421C(struct Task *task) +{ + u8 i; + + for (i = 2; i < 16; i++) + task->data[i] = 0; +} + +void sub_810423C(u8 a0) +{ + s16 i; + u8 r3; + s16 r2 = 3; + u16 *vaddr = (u16 *)BG_SCREEN_ADDR(29); + for (i = 0; i < a0; i++, r2++) + { + r3 = 0; + if (i == 0) + r3 = 1; + else if (i == 15) + r3 = 2; + vaddr[r2 + 0x40] = gUnknown_083ECBC4[r3][0]; + } + for (; i < 16; i++, r2++) + { + r3 = 0; + if (i == 0) + r3 = 1; + else if (i == 15) + r3 = 2; + vaddr[r2 + 0x40] = gUnknown_083ECBC4[r3][1]; + } + gTasks[eSlotMachine->unk3E].data[1] = a0; +} + +static void sub_810430C(void) +{ + u8 taskId = CreateTask(sub_810434C, 7); + sub_810434C(taskId); +} + +static bool8 sub_810432C(void) +{ + if (FindTaskIdByFunc(sub_810434C) == 0xFF) + return TRUE; + return FALSE; +} + +extern void (*const gUnknown_083ECBD0[])(struct Task *task); + +void sub_810434C(u8 taskId) +{ + gUnknown_083ECBD0[gTasks[taskId].data[0]](gTasks + taskId); +} + +void sub_810437C(struct Task *task) +{ + eSlotMachine->unk0A = 0; + eSlotMachine->unk14 = 0; + eSlotMachine->unk16 = 0; + task->data[0]++; + task->data[1] = 0; + task->data[2] = 30; + task->data[4] = 1280; + gSpriteCoordOffsetX = 0; + gSpriteCoordOffsetY = 0; + REG_BG1HOFS = 0; + REG_BG1VOFS = 0; + sub_8104A40(30, 0); + sub_81051C0(); + sub_8105100(); + sub_81052EC(); + sub_81053A0(); + sub_810545C(); + sub_8102680(); + StopMapMusic(); + PlayNewMapMusic(BGM_BD_TIME); +} + asm(".section .text_a"); static void LoadSlotMachineWheelOverlay(void); -- cgit v1.2.3 From 13b2657c49b60dcf5d851a63346801232f9ee832 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 30 Dec 2017 13:31:22 -0500 Subject: through sub_8104498; decompile some data --- src/field/slot_machine.c | 294 +++++++++++++++++++++++++++++++++++++---------- 1 file changed, 233 insertions(+), 61 deletions(-) (limited to 'src') diff --git a/src/field/slot_machine.c b/src/field/slot_machine.c index f7679588c..8bfb30bfa 100644 --- a/src/field/slot_machine.c +++ b/src/field/slot_machine.c @@ -22,20 +22,12 @@ struct UnkStruct1 { /*0x02*/ s16 unk02; }; -extern struct UnkStruct1 *gUnknown_083ED048[]; -extern const u16 gPalette_83EDE24[]; - -extern const u8 gSlotMachine_Gfx[]; #if ENGLISH #define SLOTMACHINE_GFX_TILES 233 #elif GERMAN #define SLOTMACHINE_GFX_TILES 236 #endif -extern const u16 gUnknown_08E95A18[]; - -extern u16 gUnknown_08E95AB8[]; -extern u16 gUnknown_08E95FB8[]; static void sub_81018B8(void); static void sub_8101954(void); @@ -97,15 +89,44 @@ static u8 sub_81029D4(u8 c1, u8 c2, u8 c3); static void sub_8102A24(void); static void sub_8102A64(u8 taskId); static bool8 sub_8102A44(void); +bool8 sub_8102A9C(struct Task *task); +bool8 sub_8102AD0(struct Task *task); +bool8 sub_8102B80(struct Task *task); u8 sub_8102BA4(u8 x, s16 y); static void sub_8102DA8(void); static void sub_8102DEC(u8 a0); static void sub_8102E1C(u8 a0); static bool8 sub_8102E40(u8 a0); static void sub_8102E68(u8 taskId); +bool8 sub_8102EA0(struct Task *task); +bool8 sub_8102EA4(struct Task *task); +bool8 sub_8102EC0(struct Task *task); +bool8 sub_8102F4C(struct Task *task); +bool8 sub_8103008(struct Task *task); +bool8 sub_810305C(void); +bool8 sub_8103154(u8 a0, u8 a1); +bool8 sub_81031B4(u8 a0, u8 a1); +bool8 sub_81032C0(void); +bool8 sub_81032E8(void); +bool8 sub_810333C(void); +bool8 sub_81033DC(void); +bool8 sub_810341C(u8 a0); +bool8 sub_810347C(u8 a0); +void sub_81034F4(void); +void sub_8103540(void); +void sub_8103564(void); +void j5_08111E84(void); +void sub_8103668(void); +void sub_810380C(void); +void sub_8103830(void); +void sub_8103910(void); +void sub_8103A78(void); static void sub_8103C14(u8 a0); static void sub_8103C48(u8 taskId); static void sub_8103D50(u8 a0); +void sub_8103C78(struct Task *task, u8 taskId); +void sub_8103CAC(struct Task *task, u8 taskId); +void sub_8103CC8(struct Task *task, u8 taskId); static void sub_8103D8C(u8 a0); static void sub_8103DC8(void); static void sub_8103E04(u8 a0); @@ -120,11 +141,33 @@ static void sub_8104048(void); static void sub_8104064(u8 unused); bool8 sub_81040C8(void); static void sub_81040E8(u8 taskId); +void nullsub_68(struct Task *task); +void sub_810411C(struct Task *task); +void sub_8104144(struct Task *task); +void sub_81041AC(struct Task *task); static void sub_810421C(struct Task *task); void sub_810423C(u8 a0); static void sub_810430C(void); static bool8 sub_810432C(void); void sub_810434C(u8 taskId); +void sub_810437C(struct Task *task); +void sub_81043EC(struct Task *task); +void sub_8104468(struct Task *task); +void sub_8104498(struct Task *task); +void sub_8104548(struct Task *task); +void sub_8104598(struct Task *task); +void sub_81045CC(struct Task *task); +void sub_810463C(struct Task *task); +void sub_81046C0(struct Task *task); +void sub_8104764(struct Task *task); +void sub_8104794(struct Task *task); +void sub_81047EC(struct Task *task); +void sub_8104860(struct Task *task); +void sub_81048A8(struct Task *task); +void sub_81048CC(struct Task *task); +void sub_8104940(struct Task *task); +void sub_81049C8(struct Task *task); +void sub_81049F8(struct Task *task); void sub_8104A40(s16 a0, s16 a1); void sub_8104AB8(u8 a0); bool8 sub_8104AEC(void); @@ -139,6 +182,10 @@ void sub_81051C0(void); void sub_81052EC(void); void sub_81053A0(void); void sub_810545C(void); +void sub_8105578(void); +void sub_8105688(s16 a0); +void sub_81056F0(void); +void sub_81057E8(s16 a0); u8 sub_8105B1C(s16 a0, s16 a1); void sub_8105B88(u8 a0); void sub_81063C0(void); @@ -146,38 +193,12 @@ static void sub_8106448(void); void sub_81064B8(void); void sub_81065A8(s16 arg0, u16 arg1, u16 arg2, u16 arg3, u16 arg4); -static bool8 (*const gUnknown_083ECAAC[])(struct Task *task) = { - sub_8101D5C, - sub_8101D8C, - sub_8101DB0, - sub_8101DF4, - sub_8101E10, - sub_8101E3C, - sub_8101F44, - sub_8101F60, - sub_8101F88, - sub_8101FA4, - sub_8102008, - sub_8102034, - sub_8102058, - sub_8102090, - sub_81020C8, - sub_81021E0, - sub_81021FC, - sub_8102264, - sub_81022A0, - sub_81022CC, - sub_81022F0, - sub_8102318, - sub_8102344, - sub_810239C, - sub_81023B8, - sub_81023E0, - sub_81023FC, - sub_8102424, - sub_8102460 -}; - +extern struct UnkStruct1 *gUnknown_083ED048[]; +extern const u16 gPalette_83EDE24[]; +extern const u8 gSlotMachine_Gfx[]; +extern const u16 gUnknown_08E95A18[]; +extern u16 gUnknown_08E95AB8[]; +extern u16 gUnknown_08E95FB8[]; extern const u8 gUnknown_083ECD04[][3]; extern const u8 gUnknown_083ECE3A[]; extern const u16 gUnknown_083ECE42[]; @@ -395,6 +416,38 @@ static void sub_8101D04(void) sub_8101D24(CreateTask(sub_8101D24, 0)); } +static bool8 (*const gUnknown_083ECAAC[])(struct Task *task) = { + sub_8101D5C, + sub_8101D8C, + sub_8101DB0, + sub_8101DF4, + sub_8101E10, + sub_8101E3C, + sub_8101F44, + sub_8101F60, + sub_8101F88, + sub_8101FA4, + sub_8102008, + sub_8102034, + sub_8102058, + sub_8102090, + sub_81020C8, + sub_81021E0, + sub_81021FC, + sub_8102264, + sub_81022A0, + sub_81022CC, + sub_81022F0, + sub_8102318, + sub_8102344, + sub_810239C, + sub_81023B8, + sub_81023E0, + sub_81023FC, + sub_8102424, + sub_8102460 +}; + static void sub_8101D24(u8 taskId) { while (gUnknown_083ECAAC[eSlotMachine->state](gTasks + taskId)); @@ -1174,7 +1227,11 @@ static bool8 sub_8102A44(void) return FALSE; } -extern bool8 (*const gUnknown_083ECB20[])(struct Task *task); +bool8 (*const gUnknown_083ECB20[])(struct Task *task) = { + sub_8102A9C, + sub_8102AD0, + sub_8102B80 +}; static void sub_8102A64(u8 taskId) { @@ -1338,7 +1395,13 @@ static bool8 sub_8102E40(u8 a0) return gTasks[eSlotMachine->unk3A[a0]].data[14]; } -extern bool8 (*const gUnknown_083ECB2C[])(struct Task *task); +bool8 (*const gUnknown_083ECB2C[])(struct Task *task) = { + sub_8102EA0, + sub_8102EA4, + sub_8102EC0, + sub_8102F4C, + sub_8103008 +}; static void sub_8102E68(u8 taskId) { @@ -1356,8 +1419,16 @@ bool8 sub_8102EA4(struct Task *task) return FALSE; } -extern bool8 (*const gUnknown_083ECB40[])(void); -extern void (*const gUnknown_083ECB4C[])(void); +bool8 (*const gUnknown_083ECB40[])(void) = { + sub_810305C, + sub_81032C0, + sub_81033DC +}; +void (*const gUnknown_083ECB4C[])(void) = { + sub_81034F4, + sub_8103540, + sub_810380C +}; bool8 sub_8102EC0(struct Task *task) { @@ -1373,15 +1444,10 @@ bool8 sub_8102EC0(struct Task *task) return TRUE; } -extern const u16 gUnknown_083ECB58[5]; // don't move this - bool8 sub_8102F4C(struct Task *task) { - s16 r2; - u16 sp[5]; - memcpy(sp, gUnknown_083ECB58, sizeof gUnknown_083ECB58); - // u16 sp[] = {2, 4, 4, 4, 8}; - r2 = eSlotMachine->unk1C[task->data[15]] % 24; + u16 sp[] = {2, 4, 4, 4, 8}; + s16 r2 = eSlotMachine->unk1C[task->data[15]] % 24; if (r2 != 0) { r2 = sub_8102CCC(task->data[15], eSlotMachine->unk1A); @@ -1419,7 +1485,11 @@ bool8 sub_8103008(struct Task *task) return FALSE; } -extern bool8 (*const gUnknown_083ECB64[])(u8 a0, u8 a1); +bool8 (*const gUnknown_083ECB64[])(u8 a0, u8 a1) = { + sub_8103154, + sub_81031B4, + sub_81031B4 +}; bool8 sub_810305C(void) { @@ -1522,7 +1592,11 @@ bool8 sub_81031B4(u8 a0, u8 a1) return FALSE; } -extern bool8 (*const gUnknown_083ECB70[])(void); +bool8 (*const gUnknown_083ECB70[])(void) = { + sub_81032E8, + sub_81032E8, + sub_810333C +}; bool8 sub_81032C0(void) { @@ -1580,7 +1654,11 @@ bool8 sub_810333C(void) return FALSE; } -extern bool8 (*const gUnknown_083ECB7C[])(u8 a0); +bool8 (*const gUnknown_083ECB7C[])(u8 a0) = { + sub_810341C, + sub_810341C, + sub_810347C +}; bool8 sub_81033DC(void) { @@ -1660,7 +1738,11 @@ bool8 sub_8103520(u8 *a0) return FALSE; } -extern void (*gUnknown_083ECB88[])(void); +void (*const gUnknown_083ECB88[])(void) = { + sub_8103564, + j5_08111E84, + sub_8103668 +}; void sub_8103540(void) { @@ -1942,7 +2024,11 @@ bool8 sub_81037BC(u8 a0, u8 a1, u8 a2) return TRUE; } -extern void (*const gUnknown_083ECB94[])(void); +void (*const gUnknown_083ECB94[])(void) = { + sub_8103830, + sub_8103910, + sub_8103A78 +}; void sub_810380C(void) { @@ -2096,14 +2182,18 @@ static void sub_8103C14(u8 a0) sub_8103C48(taskId); } -extern void (*const gUnknown_083ECBA0[])(struct Task *task, u8 taskId); +void (*const gUnknown_083ECBA0[])(struct Task *task, u8 taskId) = { + sub_8103C78, + sub_8103CAC, + sub_8103CC8 +}; static void sub_8103C48(u8 taskId) { gUnknown_083ECBA0[gTasks[taskId].data[0]](gTasks + taskId, taskId); } -extern const s16 gUnknown_083ECBAC[]; +const s16 gUnknown_083ECBAC[] = {5, 10, 15}; void sub_8103C78(struct Task *task, u8 taskId) { @@ -2306,7 +2396,12 @@ bool8 sub_81040C8(void) return gTasks[eSlotMachine->unk3E].data[15]; } -extern void (*const gUnknown_083ECBB4[])(struct Task *task); +void (*const gUnknown_083ECBB4[])(struct Task *task) = { + nullsub_68, + sub_810411C, + sub_8104144, + sub_81041AC +}; static void sub_81040E8(u8 taskId) { @@ -2324,7 +2419,11 @@ void sub_810411C(struct Task *task) task->data[0]++; } -extern const u16 gUnknown_083ECBC4[][2]; +const u16 gUnknown_083ECBC4[][2] = { + {0x9e, 0x6e}, + {0x9f, 0x6f}, + {0xaf, 0x7f} +}; void sub_8104144(struct Task *task) { @@ -2415,7 +2514,27 @@ static bool8 sub_810432C(void) return FALSE; } -extern void (*const gUnknown_083ECBD0[])(struct Task *task); +void (*const gUnknown_083ECBD0[])(struct Task *task) = { + sub_810437C, + sub_81043EC, + sub_8104468, + sub_8104498, + sub_8104548, + sub_8104598, + sub_81045CC, + sub_810463C, + sub_81046C0, + sub_8104764, + sub_8104794, + sub_81047EC, + sub_8104860, + sub_81048A8, + sub_81048CC, + sub_8104940, + sub_81049C8, + sub_8104794, + sub_81049F8 +}; void sub_810434C(u8 taskId) { @@ -2446,6 +2565,59 @@ void sub_810437C(struct Task *task) PlayNewMapMusic(BGM_BD_TIME); } +void sub_81043EC(struct Task *task) +{ + s16 r3; + gSpriteCoordOffsetX -= 8; + task->data[1] += 8; + r3 = ((task->data[1] + 240) & 0xff) >> 3; + REG_BG1HOFS = task->data[1] & 0x1ff; + if (r3 != task->data[2] && task->data[3] <= 18) + { + task->data[2] = r3; + task->data[3] = task->data[1] >> 3; + sub_8104A40(r3, task->data[3]); + } + if (task->data[1] >= 200) + { + task->data[0]++; + task->data[3] = 0; + } + sub_8102D28(task->data[4] >> 8); +} + +void sub_8104468(struct Task *task) +{ + sub_8102D28(task->data[4] >> 8); + if (++task->data[5] >= 60) + { + task->data[0]++; + sub_8105578(); + sub_81056F0(); + } +} + +void sub_8104498(struct Task *task) +{ + int r5; + u8 sp0[] = {1, 1, 2, 2}; + s16 sp4[] = {0x40, 0x30, 0x18, 0x08}; + s16 spC[] = {10, 8, 6, 4}; + + sub_8102D28(task->data[4] >> 8); + task->data[4] -= 4; + r5 = 4 - (task->data[4] >> 8); + sub_8105688(sp4[r5]); + sub_81057E8(spC[r5]); + StartSpriteAnimIfDifferent(gSprites + eSlotMachine->unk3F, sp0[r5]); + if (task->data[4] <= 0x100) + { + task->data[0]++; + task->data[4] = 0x100; + task->data[5] = 0; + } +} + asm(".section .text_a"); static void LoadSlotMachineWheelOverlay(void); -- cgit v1.2.3 From ee7ecf3d11732236bc43ae15757056f03e356a05 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 30 Dec 2017 13:58:29 -0500 Subject: through sub_81045CC --- src/field/slot_machine.c | 49 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) (limited to 'src') 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); -- cgit v1.2.3 From b628d68bae049d3798142acbf4182b121e51a232 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 30 Dec 2017 16:09:07 -0500 Subject: through sub_81049F8 --- src/field/slot_machine.c | 195 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 195 insertions(+) (limited to 'src') diff --git a/src/field/slot_machine.c b/src/field/slot_machine.c index 50a6fbd6e..b57f0cfaf 100644 --- a/src/field/slot_machine.c +++ b/src/field/slot_machine.c @@ -169,6 +169,7 @@ void sub_8104940(struct Task *task); void sub_81049C8(struct Task *task); void sub_81049F8(struct Task *task); void sub_8104A40(s16 a0, s16 a1); +void sub_8104A88(s16 a0); void sub_8104AB8(u8 a0); bool8 sub_8104AEC(void); void sub_8104C5C(void); @@ -178,14 +179,28 @@ void sub_8104EA8(void); void sub_8104F8C(void); void sub_81050C4(void); void sub_8105100(void); +void sub_810514C(void); void sub_81051C0(void); +void sub_8105284(void); void sub_81052EC(void); void sub_81053A0(void); void sub_810545C(void); +void sub_81054B8(void); +void sub_8105524(void); +void sub_8105554(void); void sub_8105578(void); void sub_8105688(s16 a0); +void sub_81056C0(void); void sub_81056F0(void); void sub_81057E8(s16 a0); +void sub_8105804(void); +void sub_8105854(void); +void sub_81058A0(void); +void sub_81058C4(void); +void sub_81059B8(void); +void sub_81059E8(void); +bool8 sub_8105ACC(void); +void sub_8105AEC(void); u8 sub_8105B1C(s16 a0, s16 a1); void sub_8105B88(u8 a0); void sub_81063C0(void); @@ -2667,6 +2682,186 @@ void sub_81045CC(struct Task *task) } } +void sub_810463C(struct Task *task) +{ + s16 r5 = eSlotMachine->unk14 % 20; + if (r5) + { + r5 = sub_8102D5C(task->data[4] >> 8); + task->data[4] = (u8)task->data[4] + 0x40; + } + else if (sub_8102C48(1) != eSlotMachine->unk05) + { + sub_8102D28(task->data[4] >> 8); + r5 = eSlotMachine->unk14 % 20; + task->data[4] = (u8)task->data[4] + 0x40; + } + if (r5 == 0 && sub_8102C48(1) == eSlotMachine->unk05) + { + task->data[4] = 0; + task->data[0]++; + } +} + +void sub_81046C0(struct Task *task) +{ + if (++task->data[4] >= 60) + { + StopMapMusic(); + sub_81056C0(); + sub_8105804(); + task->data[0]++; + if(eSlotMachine->unk05 == 0) + { + task->data[4] = 0xa0; + StartSpriteAnimIfDifferent(gSprites + eSlotMachine->unk3F, 5); + PlayFanfare(BGM_ME_ZANNEN); + } + else + { + task->data[4] = 0xc0; + StartSpriteAnimIfDifferent(gSprites + eSlotMachine->unk3F, 4); + gSprites[eSlotMachine->unk3F].animCmdIndex = 0; + if (eSlotMachine->unk02) + { + sub_8104098(); + eSlotMachine->unk02 = 0; + } + PlayFanfare(BGM_ME_B_SMALL); + } + } +} + +void sub_8104764(struct Task *task) +{ + if ((task->data[4] == 0 || --task->data[4] == 0) && !sub_81040C8()) + { + task->data[0]++; + } +} + +void sub_8104794(struct Task *task) +{ + s16 r4; + gSpriteCoordOffsetX -= 8; + task->data[1] += 8; + task->data[3] += 8; + r4 = ((task->data[1] - 8) & 0xff) >> 3; + REG_BG1HOFS = task->data[1] & 0x1ff; + if (task->data[3] >> 3 <= 25) + { + sub_8104A88(r4); + } + else + { + task->data[0]++; + } +} + +void sub_81047EC(struct Task *task) +{ + eSlotMachine->unk0B = 0; + eSlotMachine->unk0A = eSlotMachine->unk05; + gSpriteCoordOffsetX = 0; + REG_BG1HOFS = 0; + eSlotMachine->unk1A = 8; + sub_810514C(); + sub_81054B8(); + sub_8105524(); + PlayNewMapMusic(eSlotMachine->backupMapMusic); + if (eSlotMachine->unk0A == 0) + { + DestroyTask(FindTaskIdByFunc(sub_810434C)); + } + else + { + sub_8104CAC(4); + task->data[1] = dp15_jump_random_unknown(); + task->data[2] = 0; + task->data[3] = 0; + task->data[0]++; + } +} + +void sub_8104860(struct Task *task) +{ + if (eSlotMachine->unk1A == task->data[1]) + { + task->data[0]++; + } + else if (eSlotMachine->unk1C[0] % 24 == 0 && (++task->data[2]& 0x07) == 0) + { + eSlotMachine->unk1A >>= 1; + } +} + +void sub_81048A8(struct Task *task) +{ + if (sub_8104E18()) + { + DestroyTask(FindTaskIdByFunc(sub_810434C)); + } +} + +void sub_81048CC(struct Task *task) +{ + sub_81054B8(); + sub_81056C0(); + sub_8105804(); + sub_8105854(); + gSprites[eSlotMachine->unk4E].invisible = TRUE; + StartSpriteAnimIfDifferent(gSprites + eSlotMachine->unk3F, 5); + task->data[0]++; + task->data[4] = 4; + task->data[5] = 0; + StopMapMusic(); + PlayFanfare(BGM_ME_ZANNEN); + PlaySE(SE_W153); +} + +void sub_8104940(struct Task *task) +{ + gSpriteCoordOffsetY = task->data[4]; + REG_BG1VOFS = task->data[4]; + if (task->data[5] & 0x01) + task->data[4] = -task->data[4]; + if ((++task->data[5] & 0x1f) == 0) + task->data[4] >>= 1; + if (task->data[4] == 0) + { + sub_81058A0(); + sub_81058C4(); + sub_8105284(); + sub_81059E8(); + gSprites[eSlotMachine->unk4E].invisible = FALSE; + task->data[0]++; + task->data[5] = 0; + } +} + +void sub_81049C8(struct Task *task) +{ + gSpriteCoordOffsetY = 0; + REG_BG1VOFS = 0; + if (sub_8105ACC()) + { + task->data[0]++; + sub_8105AEC(); + } +} + +void sub_81049F8(struct Task *task) +{ + gSpriteCoordOffsetX = 0; + REG_BG1HOFS = 0; + PlayNewMapMusic(eSlotMachine->backupMapMusic); + sub_810514C(); + sub_8105554(); + sub_8105524(); + sub_81059B8(); + DestroyTask(FindTaskIdByFunc(sub_810434C)); +} + asm(".section .text_a"); static void LoadSlotMachineWheelOverlay(void); -- cgit v1.2.3 From 1989ffb9a856ebebde994b5af53860436c6606a0 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 30 Dec 2017 17:11:00 -0500 Subject: through sub_8104C5C --- src/field/slot_machine.c | 126 ++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 125 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/field/slot_machine.c b/src/field/slot_machine.c index b57f0cfaf..4076d7770 100644 --- a/src/field/slot_machine.c +++ b/src/field/slot_machine.c @@ -172,9 +172,17 @@ void sub_8104A40(s16 a0, s16 a1); void sub_8104A88(s16 a0); void sub_8104AB8(u8 a0); bool8 sub_8104AEC(void); +void sub_8104B0C(u8 taskId); +void sub_8104B3C(struct Task *task); +void sub_8104B60(struct Task *task); +void sub_8104B80(struct Task *task); +void sub_8104BC8(struct Task *task); +void sub_8104BFC(struct Task *task); +void sub_8104C44(struct Task *task); void sub_8104C5C(void); void sub_8104CAC(u8 arg0); bool8 sub_8104E18(void); +void sub_8104E74(u8 taskId); void sub_8104EA8(void); void sub_8104F8C(void); void sub_81050C4(void); @@ -207,6 +215,7 @@ void sub_81063C0(void); static void sub_8106448(void); void sub_81064B8(void); void sub_81065A8(s16 arg0, u16 arg1, u16 arg2, u16 arg3, u16 arg4); +void sub_81065DC(void); extern struct UnkStruct1 *gUnknown_083ED048[]; extern const u16 gPalette_83EDE24[]; @@ -2862,7 +2871,122 @@ void sub_81049F8(struct Task *task) DestroyTask(FindTaskIdByFunc(sub_810434C)); } -asm(".section .text_a"); +extern const u16 gReelTimeWindowTilemap[]; + +void sub_8104A40(s16 a0, s16 a1) +{ + s16 i; + + for (i = 4; i < 15; i++) + { + u16 tile = gReelTimeWindowTilemap[a1 + (i - 4) * 20]; + ((u16 *)BG_SCREEN_ADDR(28))[32 * i + a0] = tile; + } +} + +void sub_8104A88(s16 a0) +{ + s16 i; + + for (i = 4; i < 15; i++) + { + ((u16 *)BG_SCREEN_ADDR(28))[32 * i + a0] = 0; + } +} + +void sub_8104AB8(u8 a0) +{ + u8 taskId = CreateTask(sub_8104B0C, 1); + gTasks[taskId].data[1] = a0; + sub_8104B0C(taskId); +} + +bool8 sub_8104AEC(void) +{ + if (FindTaskIdByFunc(sub_8104B0C) == 0xFF) + return TRUE; + return FALSE; +} + +void (*const gUnknown_083ECC30[])(struct Task *task) = { + sub_8104B3C, + sub_8104B60, + sub_8104B80, + sub_8104B60, + sub_8104BC8, + sub_8104B60, + sub_8104BFC, + sub_8104B60, + sub_8104C44 +}; + +void sub_8104B0C(u8 taskId) +{ + gUnknown_083ECC30[gTasks[taskId].data[0]](gTasks + taskId); +} + +void sub_8104B3C(struct Task *task) +{ + BeginNormalPaletteFade(-1, 0, 0, 16, 0); + task->data[0]++; +} + +void sub_8104B60(struct Task *task) +{ + if (!gPaletteFade.active) + { + task->data[0]++; + } +} + +void sub_8104B80(struct Task *task) +{ + sub_8104DA4(); + sub_81065DC(); + BasicInitMenuWindow(&gWindowConfig_81E7144); + MenuPrint_PixelCoords(gOtherText_ReelTime, 10, 32, 1); + BeginNormalPaletteFade(-1, 0, 16, 0, 0); + task->data[0]++; +} + +void sub_8104BC8(struct Task *task) +{ + if (gMain.newKeys & (B_BUTTON | SELECT_BUTTON)) + { + BeginNormalPaletteFade(-1, 0, 0, 16, 0); + task->data[0]++; + } +} + +void sub_8104BFC(struct Task *task) +{ + MenuZeroFillScreen(); + BasicInitMenuWindow(&gWindowConfig_81E7128); + sub_81064B8(); + sub_8104CAC(task->data[1]); + sub_810423C(eSlotMachine->unk02); + BeginNormalPaletteFade(-1, 0, 16, 0, 0); + task->data[0]++; +} + +void sub_8104C44(struct Task *task) +{ + DestroyTask(FindTaskIdByFunc(sub_8104B0C)); +} + +void sub_8104C5C(void) +{ + u8 i; + struct Task *task; + i = CreateTask(sub_8104E74, 3); + eSlotMachine->unk3D = i; + task = gTasks + i; + task->data[1] = -1; + for (i = 4; i < 16; i++) + { + task->data[i] = 0x40; + } +} static void LoadSlotMachineWheelOverlay(void); -- cgit v1.2.3 From 7f6d7c107b2986a4631218b482db216cfca91733 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 30 Dec 2017 20:18:52 -0500 Subject: through sub_8104F8C --- src/field/slot_machine.c | 110 ++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 109 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/field/slot_machine.c b/src/field/slot_machine.c index 4076d7770..d6e078139 100644 --- a/src/field/slot_machine.c +++ b/src/field/slot_machine.c @@ -182,9 +182,11 @@ void sub_8104C44(struct Task *task); void sub_8104C5C(void); void sub_8104CAC(u8 arg0); bool8 sub_8104E18(void); +void nullsub_69(struct Task *task); void sub_8104E74(u8 taskId); void sub_8104EA8(void); void sub_8104F8C(void); +void sub_8104FF4(s16 a0, s16 a1, u8 a2, s16 a3); void sub_81050C4(void); void sub_8105100(void); void sub_810514C(void); @@ -211,6 +213,7 @@ bool8 sub_8105ACC(void); void sub_8105AEC(void); u8 sub_8105B1C(s16 a0, s16 a1); void sub_8105B88(u8 a0); +u8 sub_8105BF8(u8, u32, s16, s16, s16); void sub_81063C0(void); static void sub_8106448(void); void sub_81064B8(void); @@ -2984,7 +2987,7 @@ void sub_8104C5C(void) task->data[1] = -1; for (i = 4; i < 16; i++) { - task->data[i] = 0x40; + task->data[i] = MAX_SPRITES; } } @@ -3017,6 +3020,111 @@ void sub_8104CAC(u8 arg0) { #endif } } + +void sub_8104D30(u8 a0, u32 a1, s16 a2, s16 a3, s16 a4) +{ + u8 i; + struct Task *task = gTasks + eSlotMachine->unk3D; + for (i = 4; i < 16; i++) + { + if (task->data[i] == MAX_SPRITES) + { + task->data[i] = sub_8105BF8(a0, a1, a2, a3, a4); + break; + } + } +} + +extern void (*const gUnknown_083ED064[])(void); + +void sub_8104DA4(void) +{ + u8 i; + struct Task *task = gTasks + eSlotMachine->unk3D; + if ((u16)task->data[1] != 0xFFFF) + gUnknown_083ED064[task->data[1]](); + for (i = 4; i < 16; i++) + { + if (task->data[i] != MAX_SPRITES) + { + DestroySprite(gSprites + task->data[i]); + task->data[i] = MAX_SPRITES; + } + } +} + +bool8 sub_8104E18(void) +{ + u8 i; + struct Task *task = gTasks + eSlotMachine->unk3D; + for (i = 4; i < 16; i++) + { + if (task->data[i] != MAX_SPRITES) + { + if (gSprites[task->data[i]].data[7]) + return FALSE; + } + } + return TRUE; +} + +void (*const gUnknown_083ECC54[])(struct Task *task) = { + nullsub_69 +}; + +void sub_8104E74(u8 taskId) +{ + gUnknown_083ECC54[gTasks[taskId].data[0]](gTasks + taskId); +} + +void nullsub_69(struct Task *task) +{ + +} + +const struct SpriteTemplate gSpriteTemplate_83ED414; + +void sub_8104EA8(void) +{ + s16 i; + s16 j; + s16 x; + for (i = 0, x = 0x30; i < 3; i++, x += 0x28) + { + for (j = 0; j < 120; j += 24) + { + struct Sprite *sprite = gSprites + CreateSprite(&gSpriteTemplate_83ED414, x, 0, 14); + sprite->oam.priority = 3; + sprite->data[0] = i; + sprite->data[1] = j; + sprite->data[3] = -1; + } + } +} + +void sub_8104F18(struct Sprite *sprite) +{ + sprite->data[2] = eSlotMachine->unk1C[sprite->data[0]] + sprite->data[1]; + sprite->data[2] %= 120; + sprite->pos1.y = eSlotMachine->unk22[sprite->data[0]] + 28 + sprite->data[2]; + sprite->sheetTileStart = GetSpriteTileStartByTag(sub_8102BA4(sprite->data[0], sprite->data[2] / 24)); + SetSpriteSheetFrameTileNum(sprite); +} + +void sub_8104F8C(void) +{ + s16 i; + s16 r4; + for (r4 = 203, i = 1; i < 10000; i *= 10, r4 -= 7) + { + sub_8104FF4(r4, 23, 0, i); + } + for (r4 = 235, i = 1; i < 10000; i *= 10, r4 -= 7) + { + sub_8104FF4(r4, 23, 1, i); + } +} + asm(".section .text_b"); static void sub_8106448(void) { -- cgit v1.2.3 From 4137641bfecb300694d0045d3b694d4c6dca2aef Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 30 Dec 2017 21:08:10 -0500 Subject: through sub_8105170 --- src/field/slot_machine.c | 78 ++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 72 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/field/slot_machine.c b/src/field/slot_machine.c index d6e078139..9246e9428 100644 --- a/src/field/slot_machine.c +++ b/src/field/slot_machine.c @@ -186,7 +186,7 @@ void nullsub_69(struct Task *task); void sub_8104E74(u8 taskId); void sub_8104EA8(void); void sub_8104F8C(void); -void sub_8104FF4(s16 a0, s16 a1, u8 a2, s16 a3); +void sub_8104FF4(s16 x, s16 y, u8 a2, s16 a3); void sub_81050C4(void); void sub_8105100(void); void sub_810514C(void); @@ -3114,14 +3114,80 @@ void sub_8104F18(struct Sprite *sprite) void sub_8104F8C(void) { s16 i; - s16 r4; - for (r4 = 203, i = 1; i < 10000; i *= 10, r4 -= 7) + s16 x; + for (x = 203, i = 1; i < 10000; i *= 10, x -= 7) { - sub_8104FF4(r4, 23, 0, i); + sub_8104FF4(x, 23, 0, i); } - for (r4 = 235, i = 1; i < 10000; i *= 10, r4 -= 7) + for (x = 235, i = 1; i < 10000; i *= 10, x -= 7) { - sub_8104FF4(r4, 23, 1, i); + sub_8104FF4(x, 23, 1, i); + } +} + +extern const struct SpriteTemplate gSpriteTemplate_83ED42C; + +void sub_8104FF4(s16 x, s16 y, u8 a2, s16 a3) +{ + struct Sprite *sprite = gSprites + CreateSprite(&gSpriteTemplate_83ED42C, x, y, 13); + sprite->oam.priority = 2; + sprite->data[0] = a2; + sprite->data[1] = a3; + sprite->data[2] = a3 * 10; + sprite->data[3] = -1; +} + +void sub_810506C(struct Sprite *sprite) +{ + u16 tag = eSlotMachine->coins; + if (sprite->data[0]) + tag = eSlotMachine->unk0E; + if (sprite->data[3] != tag) + { + sprite->data[3] = tag; + tag %= (u16)sprite->data[2]; + tag /= (u16)sprite->data[1]; + tag += 7; + sprite->sheetTileStart = GetSpriteTileStartByTag(tag); + SetSpriteSheetFrameTileNum(sprite); + } +} + +extern const struct SpriteTemplate gSpriteTemplate_83ED444; +extern const struct SubspriteTable gSubspriteTables_83ED704[]; + +void sub_81050C4(void) +{ + u8 spriteId = CreateSprite(&gSpriteTemplate_83ED444, 0x58, 0x48, 15); + gSprites[spriteId].oam.priority = 3; + SetSubspriteTables(gSprites + spriteId, gSubspriteTables_83ED704); +} + +extern const struct SpriteTemplate gSpriteTemplate_83ED45C; + +void sub_8105100(void) +{ + u8 spriteId = CreateSprite(&gSpriteTemplate_83ED45C, 0x118, 0x50, 1); + gSprites[spriteId].oam.priority = 1; + gSprites[spriteId].coordOffsetEnabled = TRUE; + eSlotMachine->unk3F = spriteId; +} + +void sub_810514C(void) +{ + DestroySprite(gSprites + eSlotMachine->unk3F); +} + +void sub_8105170(struct Sprite *sprite) +{ + sprite->pos2.y = sprite->pos2.x = 0; + if (sprite->animNum == 4) + { + sprite->pos2.y = sprite->pos2.x = 8; + if ((sprite->animCmdIndex != 0 && sprite->animDelayCounter != 0) || (sprite->animCmdIndex == 0 && sprite->animDelayCounter == 0)) + { + sprite->pos2.y = -8; + } } } -- cgit v1.2.3 From 26d22691dc88b3c9e61fa3612c46d3b24167d0eb Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 30 Dec 2017 23:20:35 -0500 Subject: through sub_810535C --- src/field/slot_machine.c | 62 +++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 61 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/field/slot_machine.c b/src/field/slot_machine.c index 9246e9428..3aaad9a8b 100644 --- a/src/field/slot_machine.c +++ b/src/field/slot_machine.c @@ -3082,7 +3082,7 @@ void nullsub_69(struct Task *task) } -const struct SpriteTemplate gSpriteTemplate_83ED414; +extern const struct SpriteTemplate gSpriteTemplate_83ED414; void sub_8104EA8(void) { @@ -3191,6 +3191,66 @@ void sub_8105170(struct Sprite *sprite) } } +extern const struct SpriteTemplate gSpriteTemplate_83ED474; +extern const struct SpriteTemplate gSpriteTemplate_83ED48C; +extern const struct SubspriteTable gSubspriteTables_83ED73C[]; +extern const struct SubspriteTable gSubspriteTables_83ED75C[]; + +void sub_81051C0(void) +{ + u8 spriteId = CreateSprite(&gSpriteTemplate_83ED474, 0x170, 0x34, 7); + struct Sprite *sprite = gSprites + spriteId; + sprite->oam.priority = 1; + sprite->coordOffsetEnabled = TRUE; + SetSubspriteTables(sprite, gSubspriteTables_83ED73C); + eSlotMachine->unk49 = spriteId; + + spriteId = CreateSprite(&gSpriteTemplate_83ED48C, 0x170, 0x54, 7); + sprite = gSprites + spriteId; + sprite->oam.priority = 1; + sprite->coordOffsetEnabled = TRUE; + SetSubspriteTables(sprite, gSubspriteTables_83ED75C); + eSlotMachine->unk4A = spriteId; +} + +extern const struct SpriteTemplate gSpriteTemplate_83ED4A4; +extern const struct SubspriteTable gSubspriteTables_83ED78C[]; + +void sub_8105284(void) +{ + u8 spriteId = CreateSprite(&gSpriteTemplate_83ED4A4, 0xa8 - gSpriteCoordOffsetX, 0x50, 7); + struct Sprite *sprite = gSprites + spriteId; + sprite->oam.priority = 1; + sprite->coordOffsetEnabled = TRUE; + SetSubspriteTables(sprite, gSubspriteTables_83ED78C); + eSlotMachine->unk42 = spriteId; +} + +extern const struct SpriteTemplate gSpriteTemplate_83ED4BC; + +void sub_81052EC(void) +{ + u8 i; + s16 r5; + for (i = 0, r5 = 0; i < 3; i++, r5 += 20) + { + u8 spriteId = CreateSprite(&gSpriteTemplate_83ED4BC, 0x170, 0x00, 10); + struct Sprite *sprite = gSprites + spriteId; + sprite->oam.priority = 1; + sprite->coordOffsetEnabled = TRUE; + sprite->data[7] = r5; + eSlotMachine->unk4B[i] = spriteId; + } +} + +void sub_810535C(struct Sprite *sprite) +{ + s16 r0 = (u16)(eSlotMachine->unk14 + sprite->data[7]); + r0 %= 40; + sprite->pos1.y = r0 + 59; + StartSpriteAnimIfDifferent(sprite, sub_8102C48(r0 / 20)); +} + asm(".section .text_b"); static void sub_8106448(void) { -- cgit v1.2.3 From a357c07d83a3b90adf0353501cbc0f84f6eeeddc Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 31 Dec 2017 19:58:37 -0500 Subject: through sub_8105554 --- src/field/slot_machine.c | 70 +++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 66 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/field/slot_machine.c b/src/field/slot_machine.c index 3aaad9a8b..4b580839c 100644 --- a/src/field/slot_machine.c +++ b/src/field/slot_machine.c @@ -2821,7 +2821,7 @@ void sub_81048CC(struct Task *task) sub_81056C0(); sub_8105804(); sub_8105854(); - gSprites[eSlotMachine->unk4E].invisible = TRUE; + gSprites[eSlotMachine->unk4E[0]].invisible = TRUE; StartSpriteAnimIfDifferent(gSprites + eSlotMachine->unk3F, 5); task->data[0]++; task->data[4] = 4; @@ -2845,7 +2845,7 @@ void sub_8104940(struct Task *task) sub_81058C4(); sub_8105284(); sub_81059E8(); - gSprites[eSlotMachine->unk4E].invisible = FALSE; + gSprites[eSlotMachine->unk4E[0]].invisible = FALSE; task->data[0]++; task->data[5] = 0; } @@ -3203,14 +3203,14 @@ void sub_81051C0(void) sprite->oam.priority = 1; sprite->coordOffsetEnabled = TRUE; SetSubspriteTables(sprite, gSubspriteTables_83ED73C); - eSlotMachine->unk49 = spriteId; + eSlotMachine->unk49[0] = spriteId; spriteId = CreateSprite(&gSpriteTemplate_83ED48C, 0x170, 0x54, 7); sprite = gSprites + spriteId; sprite->oam.priority = 1; sprite->coordOffsetEnabled = TRUE; SetSubspriteTables(sprite, gSubspriteTables_83ED75C); - eSlotMachine->unk4A = spriteId; + eSlotMachine->unk49[1] = spriteId; } extern const struct SpriteTemplate gSpriteTemplate_83ED4A4; @@ -3251,6 +3251,68 @@ void sub_810535C(struct Sprite *sprite) StartSpriteAnimIfDifferent(sprite, sub_8102C48(r0 / 20)); } +extern const struct SpriteTemplate gSpriteTemplate_83ED4D4; +extern const struct SubspriteTable gSubspriteTables_83ED7B4[]; + +void sub_81053A0(void) +{ + u8 spriteId = CreateSprite(&gSpriteTemplate_83ED4D4, 0x170, 0x64, 9); + struct Sprite *sprite = gSprites + spriteId; + sprite->coordOffsetEnabled = TRUE; + sprite->oam.priority = 1; + SetSubspriteTables(sprite, gSubspriteTables_83ED7B4); + eSlotMachine->unk4E[0] = spriteId; + + spriteId = CreateSprite(&gSpriteTemplate_83ED4D4, 0x120, 0x68, 4); + sprite = gSprites + spriteId; + sprite->coordOffsetEnabled = TRUE; + sprite->oam.priority = 1; + SetSubspriteTables(sprite, gSubspriteTables_83ED7B4); + eSlotMachine->unk4E[1] = spriteId; +} + +extern const struct SpriteTemplate gSpriteTemplate_83ED4EC; +extern const struct SubspriteTable gSubspriteTables_83ED7D4[]; + +void sub_810545C(void) +{ + u8 spriteId = CreateSprite(&gSpriteTemplate_83ED4EC, 0x170, 0x4c, 11); + struct Sprite *sprite = gSprites + spriteId; + sprite->coordOffsetEnabled = TRUE; + sprite->oam.priority = 1; + SetSubspriteTables(sprite, gSubspriteTables_83ED7D4); + eSlotMachine->unk40 = spriteId; +} + +void sub_81054B8(void) +{ + u8 i; + + DestroySprite(gSprites + eSlotMachine->unk40); + for (i = 0; i < 2; i++) + { + DestroySprite(gSprites + eSlotMachine->unk49[i]); + } + for (i = 0; i < 3; i++) + { + DestroySprite(gSprites + eSlotMachine->unk4B[i]); + } +} + +void sub_8105524(void) +{ + u8 i; + for (i = 0; i < 2; i++) + { + DestroySprite(gSprites + eSlotMachine->unk4E[i]); + } +} + +void sub_8105554(void) +{ + DestroySprite(gSprites + eSlotMachine->unk42); +} + asm(".section .text_b"); static void sub_8106448(void) { -- cgit v1.2.3 From 39d2d1f37c62ffc458c82943fbfceb86959ef1a3 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 31 Dec 2017 20:18:22 -0500 Subject: through sub_81056C0 --- src/field/slot_machine.c | 61 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) (limited to 'src') diff --git a/src/field/slot_machine.c b/src/field/slot_machine.c index 4b580839c..8ca873e84 100644 --- a/src/field/slot_machine.c +++ b/src/field/slot_machine.c @@ -3313,6 +3313,67 @@ void sub_8105554(void) DestroySprite(gSprites + eSlotMachine->unk42); } +extern const struct SpriteTemplate gSpriteTemplate_83ED504; + +void sub_8105578(void) +{ + u8 spriteId = CreateSprite(&gSpriteTemplate_83ED504, 0x98, 0x20, 5); + struct Sprite *sprite = gSprites + spriteId; + sprite->oam.priority = 1; + sprite->hFlip = TRUE; + eSlotMachine->unk50[0] = spriteId; + sprite->data[0] = 8; + sprite->data[1] = -1; + sprite->data[2] = -1; + sprite->data[7] = 0x20; + + spriteId = CreateSprite(&gSpriteTemplate_83ED504, 0xb8, 0x20, 5); + sprite = gSprites + spriteId; + sprite->oam.priority = 1; + eSlotMachine->unk50[1] = spriteId; + sprite->data[1] = 1; + sprite->data[2] = -1; + sprite->data[7] = 0x20; +} + +void sub_810562C(struct Sprite *sprite) +{ + if (sprite->data[0] != 0) + { + sprite->data[0]--; + sprite->pos2.x = 0; + sprite->pos2.y = 0; + sprite->invisible = TRUE; + } + else + { + sprite->invisible = FALSE; + sprite->pos2.x += sprite->data[1]; + sprite->pos2.y += sprite->data[2]; + if (++sprite->data[3] >= 8) + { + sprite->data[0] = sprite->data[7]; + sprite->data[3] = 0; + } + } +} + +void sub_8105688(s16 a0) +{ + gSprites[eSlotMachine->unk50[0]].data[7] = a0; + gSprites[eSlotMachine->unk50[1]].data[7] = a0; +} + +void sub_81056C0(void) +{ + u8 i; + + for (i = 0; i < 2; i++) + { + DestroySprite(gSprites + eSlotMachine->unk50[i]); + } +} + asm(".section .text_b"); static void sub_8106448(void) { -- cgit v1.2.3 From 99c897b71582e942e47765837c936b5fd79bf569 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 31 Dec 2017 21:11:48 -0500 Subject: through sub_81059B8 --- src/field/slot_machine.c | 116 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 116 insertions(+) (limited to 'src') diff --git a/src/field/slot_machine.c b/src/field/slot_machine.c index 8ca873e84..9a098d4cf 100644 --- a/src/field/slot_machine.c +++ b/src/field/slot_machine.c @@ -9,6 +9,7 @@ #include "main.h" #include "slot_machine.h" #include "decompress.h" +#include "trig.h" #include "palette.h" #include "task.h" #include "util.h" @@ -3374,6 +3375,121 @@ void sub_81056C0(void) } } +extern const struct SpriteTemplate gSpriteTemplate_83ED51C; + +void sub_81056F0(void) +{ + u8 spriteId = CreateSprite(&gSpriteTemplate_83ED51C, 0x48, 0x50, 3); + gSprites[spriteId].oam.priority = 1; + gSprites[spriteId].data[0] = 1; + gSprites[spriteId].data[5] = 0; + gSprites[spriteId].data[6] = 16; + gSprites[spriteId].data[7] = 8; + eSlotMachine->unk52[0] = spriteId; + + spriteId = CreateSprite(&gSpriteTemplate_83ED51C, 0x68, 0x50, 3); + gSprites[spriteId].oam.priority = 1; + gSprites[spriteId].hFlip = TRUE; + eSlotMachine->unk52[1] = spriteId; +} + +extern const u8 gUnknown_083ECC58[2]; // don't remove this until decompiled through gUnknown_083ECCF8 + +void sub_8105784(struct Sprite *sprite) +{ + // u8 sp[] = {16, 0}; + u8 sp[ARRAY_COUNT(gUnknown_083ECC58)]; + memcpy(sp, gUnknown_083ECC58, sizeof gUnknown_083ECC58); + if (sprite->data[0] && --sprite->data[6] <= 0) + { + MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(7) << 4) + 0x103, sp[sprite->data[5]], sp[sprite->data[5]], sp[sprite->data[5]]); + ++sprite->data[5]; + sprite->data[5] &= 1; + sprite->data[6] = sprite->data[7]; + } +} + +void sub_81057E8(s16 a0) +{ + gSprites[eSlotMachine->unk52[0]].data[7] = a0; +} + +void sub_8105804(void) +{ + u8 i; + MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(7) << 4) + 0x103, 0, 0, 0); + for (i = 0; i < 2; i++) + { + DestroySprite(gSprites + eSlotMachine->unk52[i]); + } +} + +extern const struct SpriteTemplate gSpriteTemplate_83ED534; + +void sub_8105854(void) +{ + u8 spriteId = CreateSprite(&gSpriteTemplate_83ED534, 0xa8, 0x50, 6); + gSprites[spriteId].oam.priority = 1; + eSlotMachine->unk41 = spriteId; +} + +void sub_8105894(struct Sprite *sprite) +{ + sprite->pos2.y = gSpriteCoordOffsetY; +} + +void sub_81058A0(void) +{ + DestroySprite(gSprites + eSlotMachine->unk41); +} + +extern const struct SpriteTemplate gSpriteTemplate_83ED54C; +extern const u16 gUnknown_083ECC5A[4]; // don't remove this until decompiled through gUnknown_083ECCF8 + +void sub_81058C4(void) +{ + u8 i; + // u16 sp[] = {0x0, 0x40, 0x80, 0xC0}; + u16 sp[ARRAY_COUNT(gUnknown_083ECC5A)]; + memcpy(sp, gUnknown_083ECC5A, sizeof gUnknown_083ECC5A); + for (i = 0; i < 4; i++) + { + u8 spriteId = CreateSprite(&gSpriteTemplate_83ED54C, 0x50 - gSpriteCoordOffsetX, 0x44, 0); + struct Sprite *sprite = gSprites + spriteId; + sprite->oam.priority = 1; + sprite->coordOffsetEnabled = TRUE; + sprite->data[0] = sp[i]; + eSlotMachine->unk54[i] = spriteId; + } +} + +void sub_810594C(struct Sprite *sprite) +{ + sprite->data[0] -= 2; + sprite->data[0] &= 0xff; + sprite->pos2.x = Cos(sprite->data[0], 20); + sprite->pos2.y = Sin(sprite->data[0], 6); + sprite->subpriority = 0; + if (sprite->data[0] >= 0x80) + { + sprite->subpriority = 2; + } + if (++sprite->data[1] >= 16) + { + sprite->hFlip ^= 1; + sprite->data[1] = 0; + } +} + +void sub_81059B8(void) +{ + u8 i; + for (i = 0; i < 4; i++) + { + DestroySprite(gSprites + eSlotMachine->unk54[i]); + } +} + asm(".section .text_b"); static void sub_8106448(void) { -- cgit v1.2.3 From f35549349e3c51003c124c74a8917b84a3f8e704 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 31 Dec 2017 21:45:59 -0500 Subject: through sub_8105BF8 --- src/field/slot_machine.c | 108 +++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 104 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/field/slot_machine.c b/src/field/slot_machine.c index 9a098d4cf..f10ed4352 100644 --- a/src/field/slot_machine.c +++ b/src/field/slot_machine.c @@ -212,9 +212,9 @@ void sub_81059B8(void); void sub_81059E8(void); bool8 sub_8105ACC(void); void sub_8105AEC(void); -u8 sub_8105B1C(s16 a0, s16 a1); -void sub_8105B88(u8 a0); -u8 sub_8105BF8(u8, u32, s16, s16, s16); +u8 sub_8105B1C(s16 x, s16 y); +void sub_8105B88(u8 spriteId); +u8 sub_8105BF8(u8 templateIdx, SpriteCallback callback, s16 x, s16 y, s16 a4); void sub_81063C0(void); static void sub_8106448(void); void sub_81064B8(void); @@ -3022,7 +3022,7 @@ void sub_8104CAC(u8 arg0) { } } -void sub_8104D30(u8 a0, u32 a1, s16 a2, s16 a3, s16 a4) +void sub_8104D30(u8 a0, SpriteCallback a1, s16 a2, s16 a3, s16 a4) { u8 i; struct Task *task = gTasks + eSlotMachine->unk3D; @@ -3490,6 +3490,106 @@ void sub_81059B8(void) } } +extern const struct SpriteTemplate gSpriteTemplate_83ED564; + +void sub_81059E8(void) +{ + u8 spriteId = CreateSprite(&gSpriteTemplate_83ED564, 0xa8, 0x3c, 8); + struct Sprite *sprite = gSprites + spriteId; + sprite->oam.priority = 1; + sprite->oam.affineMode = ST_OAM_AFFINE_DOUBLE; + InitSpriteAffineAnim(sprite); + eSlotMachine->unk43 = spriteId; +} + +void sub_8105A38(struct Sprite *sprite) +{ + if (sprite->data[0] == 0) + { + if (sprite->affineAnimEnded) + sprite->data[0]++; + } + else if (sprite->data[0] == 1) + { + sprite->invisible ^= 1; + if (++sprite->data[2] >= 24) + { + sprite->data[0]++; + sprite->data[2] = 0; + } + } + else + { + sprite->invisible = TRUE; + if (++sprite->data[2] >= 16) + sprite->data[7] = 1; + } + sprite->data[1] &= 0xff; + sprite->data[1] += 16; + sprite->pos2.y -= (sprite->data[1] >> 8); +} + +u8 sub_8105ACC(void) +{ + return gSprites[eSlotMachine->unk43].data[7]; +} + +void sub_8105AEC(void) +{ + struct Sprite *sprite = gSprites + eSlotMachine->unk43; + FreeOamMatrix(sprite->oam.matrixNum); + DestroySprite(sprite); +} + +extern const struct SpriteTemplate gSpriteTemplate_83ED6CC; + +u8 sub_8105B1C(s16 x, s16 y) +{ + u8 spriteId = CreateSprite(&gSpriteTemplate_83ED6CC, x, y, 12); + struct Sprite *sprite = gSprites + spriteId; + sprite->oam.priority = 2; + sprite->oam.affineMode = ST_OAM_AFFINE_DOUBLE; + InitSpriteAffineAnim(sprite); + return spriteId; +} + +void sub_8105B70(struct Sprite *sprite) +{ + if (sprite->affineAnimEnded) + sprite->data[7] = 1; +} + +void sub_8105B88(u8 spriteId) +{ + struct Sprite *sprite = gSprites + spriteId; + FreeOamMatrix(sprite->oam.matrixNum); + DestroySprite(sprite); +} + +extern const SpriteCallback gUnknown_083ECF0C[]; +extern const s16 gUnknown_083ECE7E[][2]; + +u8 sub_8105BB4(u8 a0, u8 a1, s16 a2) +{ + return sub_8105BF8(a0, gUnknown_083ECF0C[a1], gUnknown_083ECE7E[a1][0], gUnknown_083ECE7E[a1][1], a2); +} + +extern const struct SpriteTemplate *gUnknown_083EDB5C[]; +extern const struct SubspriteTable *gUnknown_083EDBC4[]; + +u8 sub_8105BF8(u8 templateIdx, SpriteCallback callback, s16 x, s16 y, s16 a4) +{ + u8 spriteId = CreateSprite(gUnknown_083EDB5C[templateIdx], x, y, 16); + struct Sprite *sprite = gSprites + spriteId; + sprite->oam.priority = 3; + sprite->callback = callback; + sprite->data[6] = a4; + sprite->data[7] = 1; + if (gUnknown_083EDBC4[templateIdx]) + SetSubspriteTables(sprite, gUnknown_083EDBC4[templateIdx]); + return spriteId; +} + asm(".section .text_b"); static void sub_8106448(void) { -- cgit v1.2.3 From de03aa5bcb74f63d53b9603acf4e512a14b31663 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 31 Dec 2017 22:42:40 -0500 Subject: through sub_8105D3C --- src/field/slot_machine.c | 82 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) (limited to 'src') diff --git a/src/field/slot_machine.c b/src/field/slot_machine.c index f10ed4352..91cd12db6 100644 --- a/src/field/slot_machine.c +++ b/src/field/slot_machine.c @@ -3590,6 +3590,88 @@ u8 sub_8105BF8(u8 templateIdx, SpriteCallback callback, s16 x, s16 y, s16 a4) return spriteId; } +void sub_8105C64(struct Sprite *sprite) +{ + sprite->data[7] = 0; +} + +extern const s16 gUnknown_083ECC62[4]; // do not delete yet +extern const s16 gUnknown_083ECC6A[4]; // do not delete yet + +void sub_8105C6C(struct Sprite *sprite) +{ + // s16 sp0[] = {4, -4, 4, -4}; + // s16 sp8[] = {4, 4, -4, -4}; + + s16 sp0[ARRAY_COUNT(gUnknown_083ECC62)]; + s16 sp8[ARRAY_COUNT(gUnknown_083ECC6A)]; + memcpy(sp0, gUnknown_083ECC62, sizeof gUnknown_083ECC62); + memcpy(sp8, gUnknown_083ECC6A, sizeof gUnknown_083ECC6A); + + if (sprite->data[1]++ >= 16) + { + sprite->subspriteTableNum ^= 1; + sprite->data[1] = 0; + } + sprite->pos2.x = 0; + sprite->pos2.y = 0; + if (sprite->subspriteTableNum != 0) + { + sprite->pos2.x = sp0[sprite->data[6]]; + sprite->pos2.y = sp8[sprite->data[6]]; + } +} + +void sub_8105CF0(struct Sprite *sprite) +{ + sprite->hFlip = TRUE; + sub_8105C6C(sprite); +} + +void sub_8105D08(struct Sprite *sprite) +{ + sprite->vFlip = TRUE; + sub_8105C6C(sprite); +} + +void sub_8105D20(struct Sprite *sprite) +{ + sprite->hFlip = TRUE; + sprite->vFlip = TRUE; + sub_8105C6C(sprite); +} + +void sub_8105D3C(struct Sprite *sprite) +{ + switch (sprite->data[0]) + { + case 0: + sprite->pos1.x += 4; + if (sprite->pos1.x >= 0xd0) + { + sprite->pos1.x = 0xd0; + sprite->data[0]++; + } + break; + case 1: + if (++sprite->data[1] > 90) + { + sprite->data[0]++; + } + break; + case 2: + sprite->pos1.x += 4; + if (sprite->pos1.x >= 0x110) + { + sprite->data[0]++; + } + break; + case 3: + sprite->data[7] = 0; + break; + } +} + asm(".section .text_b"); static void sub_8106448(void) { -- cgit v1.2.3 From c96d7a085f00911275f95c51f4cea5be03dcbd3a Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 1 Jan 2018 19:45:25 -0500 Subject: through sub_8105F9C --- src/field/slot_machine.c | 171 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 171 insertions(+) (limited to 'src') diff --git a/src/field/slot_machine.c b/src/field/slot_machine.c index 91cd12db6..dbc3da45a 100644 --- a/src/field/slot_machine.c +++ b/src/field/slot_machine.c @@ -3672,6 +3672,177 @@ void sub_8105D3C(struct Sprite *sprite) } } +void sub_8105DA4(struct Sprite *sprite) +{ + switch (sprite->data[0]) + { + case 0: + sprite->pos1.x -= 4; + if (sprite->pos1.x <= 0xd0) + { + sprite->pos1.x = 0xd0; + sprite->data[0]++; + } + break; + case 1: + if (++sprite->data[1] > 90) + { + sprite->data[0]++; + } + break; + case 2: + sprite->pos1.x -= 4; + if (sprite->pos1.x <= 0x90) + { + sprite->data[0]++; + } + break; + case 3: + sprite->data[7] = 0; + break; + } +} + +void sub_8105E08(struct Sprite *sprite) +{ + switch (sprite->data[0]) + { + case 0: + StartSpriteAnim(sprite, eSlotMachine->unk0A - 1); + sprite->data[0]++; + // fallthrough + case 1: + if (++sprite->data[1] >= 4) + { + sprite->data[0]++; + sprite->data[1] = 0; + } + break; + case 2: + sprite->pos1.x += 4; + if (sprite->pos1.x >= 0xd0) + { + sprite->pos1.x = 0xd0; + sprite->data[0]++; + } + break; + case 3: + if (++sprite->data[1] > 90) + { + sprite->data[0]++; + } + break; + case 4: + sprite->pos1.x += 4; + if (sprite->pos1.x >= 0xf8) + { + sprite->data[0]++; + } + break; + case 5: + sprite->data[7] = 0; + break; + } +} + +void sub_8105EB4(struct Sprite *sprite) +{ + switch (sprite->data[0]) + { + case 0: + sprite->animPaused = TRUE; + sprite->data[0]++; + // fallthrough + case 1: + sprite->pos1.y += 8; + if (sprite->pos1.y >= 0x70) + { + sprite->pos1.y = 0x70; + sprite->data[1] = 16; + sprite->data[0]++; + } + break; + case 2: + if (sprite->data[2] == 0) + { + sprite->pos1.y -= sprite->data[1]; + sprite->data[1] = -sprite->data[1]; + if (++sprite->data[3] >= 2) + { + sprite->data[1] >>= 2; + sprite->data[3] = 0; + if (sprite->data[1] == 0) + { + sprite->data[0]++; + sprite->data[7] = 0; + sprite->animPaused = FALSE; + } + } + } + sprite->data[2]++; + sprite->data[2] &= 0x07; + break; + } +} + +void sub_8105F54(struct Sprite *sprite) +{ + switch (sprite->data[0]) + { + case 0: + if (++sprite->data[1] > 8) + { + sprite->data[0]++; + } + break; + case 1: + sprite->pos1.y += 2; + if (sprite->pos1.y >= 0x30) + { + sprite->pos1.y = 0x30; + sprite->data[0]++; + sprite->data[7] = 0; + } + break; + } +} + +void sub_8105F9C(struct Sprite *sprite) +{ + switch (sprite->data[0]) + { + case 0: + sprite->invisible = TRUE; + if (++sprite->data[1] > 0x20) + { + sprite->data[0]++; + sprite->data[1] = 5; + sprite->oam.mosaic = TRUE; + sprite->invisible = FALSE; + StartSpriteAnim(sprite, 1); + REG_MOSAIC = ((sprite->data[1] << 4) | sprite->data[1]) << 8; + } + break; + case 1: + sprite->data[1] -= (sprite->data[2] >> 8); + if (sprite->data[1] < 0) + { + sprite->data[1] = 0; + } + REG_MOSAIC = ((sprite->data[1] << 4) | sprite->data[1]) << 8; + sprite->data[2] &= 0xff; + sprite->data[2] += 0x80; + if (sprite->data[1] == 0) + { + sprite->data[0]++; + sprite->data[7] = 0; + sprite->oam.mosaic = FALSE; + StartSpriteAnim(sprite, 0); + } + break; + } +} + asm(".section .text_b"); static void sub_8106448(void) { -- cgit v1.2.3 From 25a4ce0c32704beacba2addde906f56c7cb8c592 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 1 Jan 2018 21:03:00 -0500 Subject: Remaining functions in slot_machine --- src/field/slot_machine.c | 228 ++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 227 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/field/slot_machine.c b/src/field/slot_machine.c index dbc3da45a..d33e46099 100644 --- a/src/field/slot_machine.c +++ b/src/field/slot_machine.c @@ -216,6 +216,7 @@ u8 sub_8105B1C(s16 x, s16 y); void sub_8105B88(u8 spriteId); u8 sub_8105BF8(u8 templateIdx, SpriteCallback callback, s16 x, s16 y, s16 a4); void sub_81063C0(void); +void sub_8106404(void); static void sub_8106448(void); void sub_81064B8(void); void sub_81065A8(s16 arg0, u16 arg1, u16 arg2, u16 arg3, u16 arg4); @@ -3843,7 +3844,232 @@ void sub_8105F9C(struct Sprite *sprite) } } -asm(".section .text_b"); +extern const u16 *const gUnknown_083EDE10[]; + +void sub_8106058(struct Sprite *sprite) +{ + if (sprite->data[1] < 3) + { + LoadPalette(gUnknown_083EDE10[sprite->data[1]], (IndexOfSpritePaletteTag(6) << 4) + 0x100, 0x20); + if (++sprite->data[2] >= 4) + { + sprite->data[1]++; + sprite->data[2] = 0; + } + } + else + { + LoadPalette(gUnknown_083EDE10[sprite->data[1]], (IndexOfSpritePaletteTag(6) << 4) + 0x100, 0x20); + if (++sprite->data[2] >= 25) + { + sprite->data[1] = 0; + sprite->data[2] = 0; + } + } + StartSpriteAnimIfDifferent(sprite, 1); + sprite->data[7] = 0; +} + +extern const s16 gUnknown_083ECC72[8]; // do not remove these yet +extern const s16 gUnknown_083ECC82[8]; // do not remove these yet +extern const s16 gUnknown_083ECC92[8]; // do not remove these yet + +void sub_81060FC(struct Sprite *sprite) +{ + // s16 sp00[] = {0, -40, 0, 0, 48, 0, 24, 0}; + // s16 sp10[] = {-32, 0, -32, -48, 0, -48, 0, -48}; + // s16 sp20[] = {16, 12, 16, 0, 0, 4, 8, 8}; + + s16 sp00[ARRAY_COUNT(gUnknown_083ECC72)]; + s16 sp10[ARRAY_COUNT(gUnknown_083ECC82)]; + s16 sp20[ARRAY_COUNT(gUnknown_083ECC92)]; + + memcpy(sp00, gUnknown_083ECC72, sizeof gUnknown_083ECC72); + memcpy(sp10, gUnknown_083ECC82, sizeof gUnknown_083ECC82); + memcpy(sp20, gUnknown_083ECC92, sizeof gUnknown_083ECC92); + + switch (sprite->data[0]) + { + case 0: + sprite->pos2.x = sp00[sprite->data[6]]; + sprite->pos2.y = sp10[sprite->data[6]]; + sprite->data[1] = sp20[sprite->data[6]]; + sprite->data[0]++; + // fallthrough + case 1: + if (sprite->data[1]-- == 0) + { + sprite->data[0]++; + } + break; + case 2: + if (sprite->pos2.x > 0) + { + sprite->pos2.x -= 4; + } + else if (sprite->pos2.x < 0) + { + sprite->pos2.x += 4; + } + if (sprite->pos2.y > 0) + { + sprite->pos2.y -= 4; + } + else if (sprite->pos2.y < 0) + { + sprite->pos2.y += 4; + } + if (sprite->pos2.x == 0 && sprite->pos2.y == 0) + { + sprite->data[0]++; + } + break; + } +} + +extern const s16 gUnknown_083ECCA2[8]; // do not remove this yet + +void sub_81061C8(struct Sprite *sprite) +{ + s16 sp0[ARRAY_COUNT(gUnknown_083ECCA2)]; + + memcpy(sp0, gUnknown_083ECCA2, sizeof gUnknown_083ECCA2); + + if (sprite->data[0] == 0) + { + sprite->data[0]++; + sprite->data[1] = 12; + } + sprite->pos2.x = Cos(sp0[sprite->data[6]], sprite->data[1]); + sprite->pos2.y = Sin(sp0[sprite->data[6]], sprite->data[1]); + if (sprite->data[1]) + { + sprite->data[1]--; + } +} + +void sub_8106230(struct Sprite *sprite) +{ + switch (sprite->data[0]) + { + case 0: + eSlotMachine->winIn = 0x2f; + eSlotMachine->winOut = 0x3f; + eSlotMachine->win0v = 0x2088; + sprite->invisible = TRUE; + sprite->data[0]++; + // fallthrough + case 1: + sprite->data[1] += 2; + sprite->data[2] = sprite->data[1] + 0xb0; + sprite->data[3] = 0xf0 - sprite->data[1]; + if (sprite->data[2] > 0xd0) + { + sprite->data[2] = 0xd0; + } + if (sprite->data[3] < 0xd0) + { + sprite->data[3] = 0xd0; + } + eSlotMachine->win0h = (sprite->data[2] << 8) | sprite->data[3]; + if (sprite->data[1] > 0x33) + { + sprite->data[0]++; + eSlotMachine->winIn = 0x3f; + } + break; + case 2: + if (eSlotMachine->bet == 0) + { + break; + } + sub_8104D30(5, SpriteCallbackDummy, 0xd0, 0x74, 0); + eSlotMachine->win0h = 0xc0e0; + eSlotMachine->win0v = 0x6880; + eSlotMachine->winIn = 0x2f; + sprite->data[0]++; + sprite->data[1] = 0; + // fallthrough + case 3: + sprite->data[1] += 2; + sprite->data[2] = sprite->data[1] + 0xc0; + sprite->data[3] = 0xe0 - sprite->data[1]; + if (sprite->data[2] > 0xd0) + { + sprite->data[2] = 0xd0; + } + if (sprite->data[3] < 0xd0) + { + sprite->data[3] = 0xd0; + } + eSlotMachine->win0h = (sprite->data[2] << 8) | sprite->data[3]; + if (sprite->data[1] > 0x0f) + { + sprite->data[0]++; + eSlotMachine->winIn = 0x3f; + } + break; + } +} + +void nullsub_70(void) +{ + +} + +void sub_8106364(void) +{ + REG_MOSAIC = 0; +} + +extern const u16 *const gUnknown_083EDE20; + +void sub_8106370(void) +{ + LoadPalette(gUnknown_083EDE20, (IndexOfSpritePaletteTag(6) << 4) + 0x100, 0x20); +} + +void sub_810639C(void) +{ + eSlotMachine->win0h = 0xf0; + eSlotMachine->win0v = 0xa0; + eSlotMachine->winIn = 0x3f; + eSlotMachine->winOut = 0x3f; +} + +extern const u8 gSlotMachineReelTimeLights_Gfx[]; +extern const u8 gUnknown_083EDE8C[]; +extern const struct SpriteSheet gUnknown_083EDC2C[]; +extern const struct SpritePalette gSlotMachineSpritePalettes[]; + +void sub_81063C0(void) +{ + sub_8106404(); + LZDecompressWram(gSlotMachineReelTimeLights_Gfx, ewram10000); + LZDecompressWram(gUnknown_083EDE8C, ewram10000 + 0x3200); + LoadSpriteSheets(gUnknown_083EDC2C); + LoadSpritePalettes(gSlotMachineSpritePalettes); +} + +extern const u8 *gUnknown_083EDCE4; +extern const struct SpriteSheet gUnknown_083EDCDC; + +void sub_8106404(void) +{ + u8 *dest = ewram10000; + u8 i = 0; + const struct SpriteSheet *sheet = &gUnknown_083EDCDC; + const u8 *src = gUnknown_083EDCE4; + for (i = 0; i < 0x40; i++) + { + u8 j; + for (j = 0; j < 0x20; j++, dest++) + { + *dest = src[j]; + } + } + LoadSpriteSheet(sheet); +} static void sub_8106448(void) { u32 offsetRead, offsetWrite; -- cgit v1.2.3 From d84dfb66de48aca1146f86b2b790a2c73f964b51 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 1 Jan 2018 21:11:54 -0500 Subject: Decompile enough data to nuke the explicit calls to memcpy --- src/field/slot_machine.c | 59 ++++++++++++++++-------------------------------- 1 file changed, 20 insertions(+), 39 deletions(-) (limited to 'src') diff --git a/src/field/slot_machine.c b/src/field/slot_machine.c index d33e46099..594d743f1 100644 --- a/src/field/slot_machine.c +++ b/src/field/slot_machine.c @@ -1326,7 +1326,7 @@ bool8 sub_8102B80(struct Task *task) return FALSE; } -extern const u8 gUnknown_083ECCB2[][21]; +const u8 gUnknown_083ECCB2[][21]; u8 sub_8102BA4(u8 x, s16 y) { @@ -1346,7 +1346,7 @@ u8 sub_8102BF8(u8 x, s16 y) return sub_8102BA4(x, y + r6); } -extern const u8 gUnknown_083ECCF1[]; +const u8 gUnknown_083ECCF1[]; u8 sub_8102C48(s16 a0) { @@ -3398,9 +3398,7 @@ extern const u8 gUnknown_083ECC58[2]; // don't remove this until decompiled thro void sub_8105784(struct Sprite *sprite) { - // u8 sp[] = {16, 0}; - u8 sp[ARRAY_COUNT(gUnknown_083ECC58)]; - memcpy(sp, gUnknown_083ECC58, sizeof gUnknown_083ECC58); + u8 sp[] = {16, 0}; if (sprite->data[0] && --sprite->data[6] <= 0) { MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(7) << 4) + 0x103, sp[sprite->data[5]], sp[sprite->data[5]], sp[sprite->data[5]]); @@ -3445,14 +3443,11 @@ void sub_81058A0(void) } extern const struct SpriteTemplate gSpriteTemplate_83ED54C; -extern const u16 gUnknown_083ECC5A[4]; // don't remove this until decompiled through gUnknown_083ECCF8 void sub_81058C4(void) { u8 i; - // u16 sp[] = {0x0, 0x40, 0x80, 0xC0}; - u16 sp[ARRAY_COUNT(gUnknown_083ECC5A)]; - memcpy(sp, gUnknown_083ECC5A, sizeof gUnknown_083ECC5A); + u16 sp[] = {0x0, 0x40, 0x80, 0xC0}; for (i = 0; i < 4; i++) { u8 spriteId = CreateSprite(&gSpriteTemplate_83ED54C, 0x50 - gSpriteCoordOffsetX, 0x44, 0); @@ -3596,18 +3591,10 @@ void sub_8105C64(struct Sprite *sprite) sprite->data[7] = 0; } -extern const s16 gUnknown_083ECC62[4]; // do not delete yet -extern const s16 gUnknown_083ECC6A[4]; // do not delete yet - void sub_8105C6C(struct Sprite *sprite) { - // s16 sp0[] = {4, -4, 4, -4}; - // s16 sp8[] = {4, 4, -4, -4}; - - s16 sp0[ARRAY_COUNT(gUnknown_083ECC62)]; - s16 sp8[ARRAY_COUNT(gUnknown_083ECC6A)]; - memcpy(sp0, gUnknown_083ECC62, sizeof gUnknown_083ECC62); - memcpy(sp8, gUnknown_083ECC6A, sizeof gUnknown_083ECC6A); + s16 sp0[] = {4, -4, 4, -4}; + s16 sp8[] = {4, 4, -4, -4}; if (sprite->data[1]++ >= 16) { @@ -3870,23 +3857,11 @@ void sub_8106058(struct Sprite *sprite) sprite->data[7] = 0; } -extern const s16 gUnknown_083ECC72[8]; // do not remove these yet -extern const s16 gUnknown_083ECC82[8]; // do not remove these yet -extern const s16 gUnknown_083ECC92[8]; // do not remove these yet - void sub_81060FC(struct Sprite *sprite) { - // s16 sp00[] = {0, -40, 0, 0, 48, 0, 24, 0}; - // s16 sp10[] = {-32, 0, -32, -48, 0, -48, 0, -48}; - // s16 sp20[] = {16, 12, 16, 0, 0, 4, 8, 8}; - - s16 sp00[ARRAY_COUNT(gUnknown_083ECC72)]; - s16 sp10[ARRAY_COUNT(gUnknown_083ECC82)]; - s16 sp20[ARRAY_COUNT(gUnknown_083ECC92)]; - - memcpy(sp00, gUnknown_083ECC72, sizeof gUnknown_083ECC72); - memcpy(sp10, gUnknown_083ECC82, sizeof gUnknown_083ECC82); - memcpy(sp20, gUnknown_083ECC92, sizeof gUnknown_083ECC92); + s16 sp00[] = {0, -40, 0, 0, 48, 0, 24, 0}; + s16 sp10[] = {-32, 0, -32, -48, 0, -48, 0, -48}; + s16 sp20[] = {16, 12, 16, 0, 0, 4, 8, 8}; switch (sprite->data[0]) { @@ -3927,13 +3902,9 @@ void sub_81060FC(struct Sprite *sprite) } } -extern const s16 gUnknown_083ECCA2[8]; // do not remove this yet - void sub_81061C8(struct Sprite *sprite) { - s16 sp0[ARRAY_COUNT(gUnknown_083ECCA2)]; - - memcpy(sp0, gUnknown_083ECCA2, sizeof gUnknown_083ECCA2); + s16 sp0[] = {160, 192, 224, 104, 80, 64, 48, 24}; if (sprite->data[0] == 0) { @@ -4152,3 +4123,13 @@ void sub_81065DC(void) { } } } + +const u8 gUnknown_083ECCB2[][21] = { + {0, 4, 2, 6, 5, 3, 1, 3, 4, 5, 6, 2, 0, 5, 3, 6, 2, 1, 5, 3, 6}, + {0, 4, 6, 3, 2, 4, 6, 5, 5, 3, 1, 3, 6, 4, 2, 3, 6, 4, 3, 6, 4}, + {0, 5, 1, 6, 3, 2, 6, 3, 5, 2, 6, 3, 2, 5, 6, 3, 2, 5, 6, 3, 4} +}; + +const u8 gUnknown_083ECCF1[] = { + 1, 0, 5, 4, 3, 2 +}; -- cgit v1.2.3 From 865dcd79aab063eb90aef470e6ed54ba40a8c812 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 2 Jan 2018 10:54:50 -0500 Subject: data through gUnknown_083ECE12 --- src/field/slot_machine.c | 71 +++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 61 insertions(+), 10 deletions(-) (limited to 'src') diff --git a/src/field/slot_machine.c b/src/field/slot_machine.c index 594d743f1..3d68b187e 100644 --- a/src/field/slot_machine.c +++ b/src/field/slot_machine.c @@ -222,13 +222,13 @@ void sub_81064B8(void); void sub_81065A8(s16 arg0, u16 arg1, u16 arg2, u16 arg3, u16 arg4); void sub_81065DC(void); -extern struct UnkStruct1 *gUnknown_083ED048[]; +extern const struct UnkStruct1 *gUnknown_083ED048[]; extern const u16 gPalette_83EDE24[]; extern const u8 gSlotMachine_Gfx[]; extern const u16 gUnknown_08E95A18[]; -extern u16 gUnknown_08E95AB8[]; -extern u16 gUnknown_08E95FB8[]; -extern const u8 gUnknown_083ECD04[][3]; +extern const u16 gUnknown_08E95AB8[]; +extern const u16 gUnknown_08E95FB8[]; +const u8 gUnknown_083ECD04[][3]; extern const u8 gUnknown_083ECE3A[]; extern const u16 gUnknown_083ECE42[]; extern const u16 gUnknown_083ECE48[]; @@ -368,7 +368,7 @@ static void sub_8101B04(void) REG_BLDALPHA = 0x809; } -extern const s16 gUnknown_083ECCF8[3][2]; +const s16 gUnknown_083ECCF8[][2]; static void sub_8101BA4(void) { @@ -983,7 +983,7 @@ static bool8 sub_8102540(void) return FALSE; } -extern const u8 gUnknown_083ECD16[][6]; +const u8 gUnknown_083ECD16[][6]; static u8 sub_8102578(void) { @@ -1001,7 +1001,7 @@ static u8 sub_8102578(void) return i; } -extern const u8 gUnknown_083ECD28[][6]; +const u8 gUnknown_083ECD28[][6]; static u8 sub_81025BC(void) { @@ -1035,8 +1035,8 @@ static u8 sub_81025BC(void) return i; } -extern const u8 gUnknown_083ECDAC[][17]; -extern const u8 gUnknown_083ECD46[][17]; +const u8 gUnknown_083ECD46[][17]; +const u8 gUnknown_083ECDAC[][17]; u8 sub_810264C(u8 a0) { @@ -1069,7 +1069,7 @@ void sub_8102680(void) eSlotMachine->unk05 = i; } -extern const u16 gUnknown_083ECE12[]; +const u16 gUnknown_083ECE12[]; bool8 sub_81026DC(u16 a0) { @@ -4133,3 +4133,54 @@ const u8 gUnknown_083ECCB2[][21] = { const u8 gUnknown_083ECCF1[] = { 1, 0, 5, 4, 3, 2 }; + +const s16 gUnknown_083ECCF8[][2] = { + {0, 6}, + {0, 10}, + {0, 2} +}; + +const u8 gUnknown_083ECD04[][3] = { + {1, 1, 12}, + {1, 1, 14}, + {2, 2, 14}, + {2, 2, 14}, + {2, 3, 16}, + {3, 3, 16} +}; + +const u8 gUnknown_083ECD16[][6] = { + {25, 25, 30, 40, 40, 50}, + {25, 25, 30, 30, 35, 35}, + {25, 25, 30, 25, 25, 30} +}; + +const u8 gUnknown_083ECD28[][6] = { + {20, 25, 25, 20, 25, 25}, + {12, 15, 15, 18, 19, 22}, + {25, 25, 25, 30, 30, 40}, + {25, 25, 20, 20, 15, 15}, + {40, 40, 35, 35, 40, 40} +}; + +const u8 gUnknown_083ECD46[][17] = { + {243, 243, 243, 80, 80, 80, 80, 40, 40, 40, 40, 40, 40, 5, 5, 5, 5}, + { 5, 5, 5, 150, 150, 150, 150, 130, 130, 130, 130, 130, 130, 100, 100, 100, 5}, + { 4, 4, 4, 20, 20, 20, 20, 80, 80, 80, 80, 80, 80, 100, 100, 100, 40}, + { 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 45, 45, 45, 100}, + { 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 5, 5, 100}, + { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6} +}; + +const u8 gUnknown_083ECDAC[][17] = { + { 243, 243, 243, 200, 200, 200, 200, 160, 160, 160, 160, 160, 160, 70, 70, 70, 5}, + { 5, 5, 5, 25, 25, 25, 25, 5, 5, 5, 5, 5, 5, 2, 2, 2, 6}, + { 4, 4, 4, 25, 25, 25, 25, 30, 30, 30, 30, 30, 30, 40, 40, 40, 35}, + { 2, 2, 2, 3, 3, 3, 3, 30, 30, 30, 30, 30, 30, 100, 100, 100, 50}, + { 1, 1, 1, 2, 2, 2, 2, 30, 30, 30, 30, 30, 30, 40, 40, 40, 100}, + { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 4, 4, 60} +}; + +const u16 gUnknown_083ECE12[] = { + 0x80, 0xaf, 0xc8, 0xe1, 0x100 +}; -- cgit v1.2.3 From 8f0ea5f965251a6fc8097302b2dae3c8635ae569 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 2 Jan 2018 11:52:15 -0500 Subject: data through gOamData_83ED0B8 --- src/field/slot_machine.c | 349 +++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 338 insertions(+), 11 deletions(-) (limited to 'src') diff --git a/src/field/slot_machine.c b/src/field/slot_machine.c index 3d68b187e..1e440cba8 100644 --- a/src/field/slot_machine.c +++ b/src/field/slot_machine.c @@ -222,16 +222,16 @@ void sub_81064B8(void); void sub_81065A8(s16 arg0, u16 arg1, u16 arg2, u16 arg3, u16 arg4); void sub_81065DC(void); -extern const struct UnkStruct1 *gUnknown_083ED048[]; +const struct UnkStruct1 *const gUnknown_083ED048[]; extern const u16 gPalette_83EDE24[]; extern const u8 gSlotMachine_Gfx[]; extern const u16 gUnknown_08E95A18[]; extern const u16 gUnknown_08E95AB8[]; extern const u16 gUnknown_08E95FB8[]; const u8 gUnknown_083ECD04[][3]; -extern const u8 gUnknown_083ECE3A[]; -extern const u16 gUnknown_083ECE42[]; -extern const u16 gUnknown_083ECE48[]; +const u8 gUnknown_083ECE3A[]; +const u16 gUnknown_083ECE42[]; +const u16 gUnknown_083ECE48[]; void PlaySlotMachine(u8 arg0, void *ptr) { @@ -1081,8 +1081,8 @@ bool8 sub_81026DC(u16 a0) return FALSE; } -extern const u16 gUnknown_083ECE1C[][2]; -extern const u16 gUnknown_083ECE30[]; +const u16 gUnknown_083ECE1C[][2]; +const u16 gUnknown_083ECE30[]; u16 dp15_jump_random_unknown(void) { @@ -1134,8 +1134,8 @@ static void sub_81027A0(void) } } -extern const u16 gUnknown_083ECE6C[]; extern const u16 gUnknown_083ECE5A[]; +extern const u16 gUnknown_083ECE6C[]; static void sub_81027D0(void) { @@ -1219,7 +1219,7 @@ static void sub_810290C(void) } } -extern const u8 gUnknown_083ECE52[]; +const u8 gUnknown_083ECE52[]; static u8 sub_81029D4(u8 c1, u8 c2, u8 c3) { @@ -3037,7 +3037,7 @@ void sub_8104D30(u8 a0, SpriteCallback a1, s16 a2, s16 a3, s16 a4) } } -extern void (*const gUnknown_083ED064[])(void); +void (*const gUnknown_083ED064[])(void); void sub_8104DA4(void) { @@ -3562,8 +3562,8 @@ void sub_8105B88(u8 spriteId) DestroySprite(sprite); } -extern const SpriteCallback gUnknown_083ECF0C[]; -extern const s16 gUnknown_083ECE7E[][2]; +const s16 gUnknown_083ECE7E[][2]; +const SpriteCallback gUnknown_083ECF0C[]; u8 sub_8105BB4(u8 a0, u8 a1, s16 a2) { @@ -4184,3 +4184,330 @@ const u8 gUnknown_083ECDAC[][17] = { const u16 gUnknown_083ECE12[] = { 0x80, 0xaf, 0xc8, 0xe1, 0x100 }; + +const u16 gUnknown_083ECE1C[][2] = { + {10, 5}, + {10, 10}, + {10, 15}, + {10, 25}, + {10, 35} +}; + +const u16 gUnknown_083ECE30[] = { + 0, 5, 10, 15, 20 +}; + + +const u8 gUnknown_083ECE3A[] = { + 6, 4, 3, 2, 5, 0, 0, 0 +}; + +const u16 gUnknown_083ECE42[] = { + 0x80, 0x20, 0x40 +}; + +const u16 gUnknown_083ECE48[] = { + 0x10, 0x08, 0x04, 0x02, 0x01 +}; + +const u8 gUnknown_083ECE52[] = { + 7, 8, 4, 3, 0, 5, 2 +}; + +const u16 gUnknown_083ECE5A[] = { + 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x100 +}; + +const u16 gUnknown_083ECE6C[] = { + 2, 4, 0, 6, 12, 3, 90, 300, 300 +}; + +const s16 gUnknown_083ECE7E[][2] = { + { 0xd0, 0x38}, + { 0xb8, 0x00}, + { 0xc8, 0x08}, + { 0xd8, 0x10}, + { 0xe8, 0x18}, + { 0xd0, 0x48}, + { 0xd0, 0x08}, + { 0xd0, 0x40}, + { 0xd0, 0x38}, + { 0xc0, 0x58}, + { 0xe0, 0x58}, + { 0xc0, 0x78}, + { 0xe0, 0x78}, + { 0x90, 0x38}, + {0x110, 0x58}, + { 0xa8, 0x70}, + { 0xd0, 0x54}, + { 0xd0, 0x70}, + { 0xbc, 0x34}, + { 0xd0, 0x34}, + { 0xe4, 0x34}, + { 0xb8, 0x48}, + { 0xc4, 0x48}, + { 0xd0, 0x48}, + { 0xdc, 0x48}, + { 0xe8, 0x48}, + { 0xbc, 0x34}, + { 0xd0, 0x34}, + { 0xe4, 0x34}, + { 0xb8, 0x48}, + { 0xc4, 0x48}, + { 0xd0, 0x48}, + { 0xdc, 0x48}, + { 0xe8, 0x48}, + { 0x00, 0x00} +}; + +const SpriteCallback gUnknown_083ECF0C[] = { + sub_8105C64, + sub_8105F54, + sub_8105F54, + sub_8105F54, + sub_8105F54, + sub_8105F9C, + sub_8105EB4, + sub_8105C64, + sub_8105C64, + sub_8105C6C, + sub_8105CF0, + sub_8105D08, + sub_8105D20, + sub_8105D3C, + sub_8105DA4, + sub_8105E08, + sub_8105C64, + sub_8106058, + sub_81060FC, + sub_81060FC, + sub_81060FC, + sub_81060FC, + sub_81060FC, + sub_81060FC, + sub_81060FC, + sub_81060FC, + sub_81061C8, + sub_81061C8, + sub_81061C8, + sub_81061C8, + sub_81061C8, + sub_81061C8, + sub_81061C8, + sub_81061C8, + sub_8106230 +}; + +static const struct UnkStruct1 Unknown_83ECF98[] = { + {25, 34, 0}, + {2, 0, 0}, + {9, 16, 0}, + {255, 0, 0} +}; + +static const struct UnkStruct1 Unknown_83ECFA8[] = { + {10, 1, 0}, + {11, 2, 0}, + {12, 3, 0}, + {13, 4, 0}, + {5, 5, 0}, + {8, 6, 0}, + {255, 0, 0} +}; + +static const struct UnkStruct1 Unknown_83ECFC4[] = { + {3, 7, 0}, + {8, 17, 0}, + {255, 0, 0} +}; + +static const struct UnkStruct1 Unknown_83ECFD0[] = { + {4, 8, 0}, + {6, 9, 0}, + {6, 10, 1}, + {6, 11, 2}, + {6, 12, 3}, + {255, 0, 0} +}; + +static const struct UnkStruct1 Unknown_83ECFE8[] = { + {0, 13, 0}, + {1, 14, 0}, + {7, 15, 0}, + {255, 0, 0} +}; + +static const struct UnkStruct1 Unknown_83ECFF8[] = { + {19, 26, 0}, + {20, 27, 1}, + {21, 28, 2}, + {14, 29, 3}, + {15, 30, 4}, + {16, 31, 5}, + {17, 32, 6}, + {18, 33, 7}, + {8, 17, 0}, + {255, 0, 0} +}; + +static const struct UnkStruct1 Unknown_83ED020[] = { + {22, 18, 0}, + {23, 19, 1}, + {24, 20, 2}, + {14, 21, 3}, + {15, 22, 4}, + {16, 23, 5}, + {17, 24, 6}, + {18, 25, 7}, + {8, 17, 0}, + {255, 0, 0} +}; + +const struct UnkStruct1 *const gUnknown_083ED048[] = { + Unknown_83ECF98, + Unknown_83ECFA8, + Unknown_83ECFC4, + Unknown_83ECFD0, + Unknown_83ECFE8, + Unknown_83ED020, + Unknown_83ECFF8 +}; + +void (*const gUnknown_083ED064[])(void) = { + sub_810639C, + sub_8106364, + sub_8106370, + nullsub_70, + nullsub_70, + sub_8106370, + sub_8106370 +}; + + +const struct OamData gOamData_83ED080 = { + .y = 0x0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_NORMAL, + .mosaic = FALSE, + .bpp = ST_OAM_4BPP, + .shape = ST_OAM_SQUARE, + .x = 0x0, + .matrixNum = 0, + .size = 0, + .tileNum = 0x0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0 +}; + +const struct OamData gOamData_83ED088 = { + .y = 0x0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_NORMAL, + .mosaic = FALSE, + .bpp = ST_OAM_4BPP, + .shape = ST_OAM_V_RECTANGLE, + .x = 0x0, + .matrixNum = 0, + .size = 0, + .tileNum = 0x0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0 +}; + +const struct OamData gOamData_83ED090 = { + .y = 0x0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_NORMAL, + .mosaic = FALSE, + .bpp = ST_OAM_4BPP, + .shape = ST_OAM_SQUARE, + .x = 0x0, + .matrixNum = 0, + .size = 1, + .tileNum = 0x0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0 +}; + +const struct OamData gOamData_83ED098 = { + .y = 0x0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_NORMAL, + .mosaic = FALSE, + .bpp = ST_OAM_4BPP, + .shape = ST_OAM_V_RECTANGLE, + .x = 0x0, + .matrixNum = 0, + .size = 2, + .tileNum = 0x0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0 +}; + +const struct OamData gOamData_83ED0A0 = { + .y = 0x0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_NORMAL, + .mosaic = FALSE, + .bpp = ST_OAM_4BPP, + .shape = ST_OAM_SQUARE, + .x = 0x0, + .matrixNum = 0, + .size = 2, + .tileNum = 0x0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0 +}; + +const struct OamData gOamData_83ED0A8 = { + .y = 0x0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_NORMAL, + .mosaic = FALSE, + .bpp = ST_OAM_4BPP, + .shape = ST_OAM_V_RECTANGLE, + .x = 0x0, + .matrixNum = 0, + .size = 3, + .tileNum = 0x0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0 +}; + +const struct OamData gOamData_83ED0B0 = { + .y = 0x0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_NORMAL, + .mosaic = FALSE, + .bpp = ST_OAM_4BPP, + .shape = ST_OAM_H_RECTANGLE, + .x = 0x0, + .matrixNum = 0, + .size = 3, + .tileNum = 0x0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0 +}; + +const struct OamData gOamData_83ED0B8 = { + .y = 0x0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_NORMAL, + .mosaic = FALSE, + .bpp = ST_OAM_4BPP, + .shape = ST_OAM_SQUARE, + .x = 0x0, + .matrixNum = 0, + .size = 3, + .tileNum = 0x0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0 +}; -- cgit v1.2.3 From fb99fe5aa6d8f7a257ba5613b32f285bba7afabd Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 2 Jan 2018 12:05:43 -0500 Subject: data through gSpriteImageTable_83ED228 --- src/field/slot_machine.c | 130 ++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 129 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/field/slot_machine.c b/src/field/slot_machine.c index 1e440cba8..43eb6e53a 100644 --- a/src/field/slot_machine.c +++ b/src/field/slot_machine.c @@ -10,6 +10,7 @@ #include "slot_machine.h" #include "decompress.h" #include "trig.h" +#include "graphics.h" #include "palette.h" #include "task.h" #include "util.h" @@ -4017,7 +4018,7 @@ void sub_81063C0(void) { sub_8106404(); LZDecompressWram(gSlotMachineReelTimeLights_Gfx, ewram10000); - LZDecompressWram(gUnknown_083EDE8C, ewram10000 + 0x3200); + LZDecompressWram(gUnknown_083EDE8C, ewram13200); LoadSpriteSheets(gUnknown_083EDC2C); LoadSpritePalettes(gSlotMachineSpritePalettes); } @@ -4511,3 +4512,130 @@ const struct OamData gOamData_83ED0B8 = { .paletteNum = 0, .affineParam = 0 }; + +const struct SpriteFrameImage gSpriteImageTable_83ED0C0[] = { + {ewram13200 + 0x0000, 0x800}, + {ewram13200 + 0x0800, 0x800}, + {ewram13200 + 0x1000, 0x800}, + {ewram13200 + 0x1800, 0x800}, + {ewram13200 + 0x2000, 0x800} +}; + +const struct SpriteFrameImage gSpriteImageTable_83ED0E8[] = { + {ewram13200 + 0x2800, 0x300} +}; + +const struct SpriteFrameImage gSpriteImageTable_83ED0F0[] = { + {ewram13200 + 0x2B00, 0x500} +}; + +const struct SpriteFrameImage gSpriteImageTable_83ED0F8[] = { + {ewram13200 + 0x3000, 0x600} +}; + +const struct SpriteFrameImage gSpriteImageTable_83ED100[] = { + {gSpriteImage_8E988E8, 0x80}, + {gSpriteImage_8E98968, 0x80}, + {gSpriteImage_8E989E8, 0x80}, + {gSpriteImage_8E98A68, 0x80}, + {gSpriteImage_8E98AE8, 0x80}, + {gSpriteImage_8E98B68, 0x80} +}; + +const struct SpriteFrameImage gSpriteImageTable_83ED130[] = { + {gSpriteImage_8E991E8, 0x200} +}; + +const struct SpriteFrameImage gSpriteImageTable_83ED138[] = { + {gSpriteImage_8E99808, 0x40} +}; + +const struct SpriteFrameImage gSpriteImageTable_83ED140[] = { + {gSpriteImage_8E98BE8, 0x100}, + {gSpriteImage_8E98CE8, 0x100} +}; + +const struct SpriteFrameImage gSpriteImageTable_83ED150[] = { + {gSpriteImage_8E993E8, 0x400} +}; + +const struct SpriteFrameImage gSpriteImageTable_83ED158[] = { + {gSpriteImage_8E98DE8, 0x200}, + {gSpriteImage_8E98FE8, 0x200} +}; + +const struct SpriteFrameImage gSpriteImageTable_83ED168[] = { + {gSpriteImage_8E98848, 0x20} +}; + +const struct SpriteFrameImage gSpriteImageTable_83ED170[] = { + {gSpriteImage_8E98868, 0x80} +}; + +const struct SpriteFrameImage gSpriteImageTable_83ED178[] = { + {ewram10000 + 0x0000, 0x600} +}; + +const struct SpriteFrameImage gSpriteImageTable_83ED180[] = { + {ewram10000 + 0x0600, 0x200} +}; + +const struct SpriteFrameImage gSpriteImageTable_83ED188[] = { + {ewram10000 + 0x0800, 0x200} +}; + +const struct SpriteFrameImage gSpriteImageTable_83ED190[] = { + {ewram10000 + 0x0A00, 0x200} +}; + +const struct SpriteFrameImage gSpriteImageTable_83ED198[] = { + {ewram10000 + 0x0C00, 0x300} +}; + +const struct SpriteFrameImage gSpriteImageTable_83ED1A0[] = { + {ewram10000 + 0x1000, 0x400} +}; + +const struct SpriteFrameImage gSpriteImageTable_83ED1A8[] = { + {ewram10000 + 0x1400, 0x200} +}; + +const struct SpriteFrameImage gSpriteImageTable_83ED1B0[] = { + {ewram10000 + 0x1600, 0x300} +}; + +const struct SpriteFrameImage gSpriteImageTable_83ED1B8[] = { + {ewram10000 + 0x1900, 0x300} +}; + +const struct SpriteFrameImage gSpriteImageTable_83ED1C0[] = { + {ewram10000 + 0x1C00, 0x200}, + {ewram10000 + 0x1E00, 0x200}, + {ewram10000 + 0x1E00, 0x200} // is this a typo? +}; + +const struct SpriteFrameImage gSpriteImageTable_83ED1D8[] = { + {ewram10000 + 0x2000, 0x280} +}; + +const struct SpriteFrameImage gSpriteImageTable_83ED1E0[] = { + {ewram10000 + 0x2280, 0x80}, + {ewram10000 + 0x2300, 0x80}, + {ewram10000 + 0x2380, 0x80}, + {ewram10000 + 0x2400, 0x80}, + {ewram10000 + 0x2480, 0x80} +}; + +const struct SpriteFrameImage gSpriteImageTable_83ED208[] = { + {ewram10000 + 0x2600, 0x480}, + {ewram10000 + 0x2A80, 0x480} +}; + +const struct SpriteFrameImage gSpriteImageTable_83ED218[] = { + {ewram10000 + 0x2F00, 0x180}, + {ewram10000 + 0x3080, 0x180} +}; + +const struct SpriteFrameImage gSpriteImageTable_83ED228[] = { + {gSpriteImage_8E98828, 0x20} +}; -- cgit v1.2.3 From e6f56f2936bfe98da65514291bf9ee6412190b31 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 2 Jan 2018 12:17:54 -0500 Subject: data through gSpriteTemplate_83ED6CC --- src/field/slot_machine.c | 347 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 347 insertions(+) (limited to 'src') diff --git a/src/field/slot_machine.c b/src/field/slot_machine.c index 43eb6e53a..493db1fa1 100644 --- a/src/field/slot_machine.c +++ b/src/field/slot_machine.c @@ -4639,3 +4639,350 @@ const struct SpriteFrameImage gSpriteImageTable_83ED218[] = { const struct SpriteFrameImage gSpriteImageTable_83ED228[] = { {gSpriteImage_8E98828, 0x20} }; + +const union AnimCmd gSpriteAnim_83ED230[] = { + ANIMCMD_FRAME(0, 1), + ANIMCMD_END +}; + +const union AnimCmd gSpriteAnim_83ED238[] = { + ANIMCMD_FRAME(0, 1), + ANIMCMD_JUMP(0) +}; + +const union AnimCmd gSpriteAnim_83ED240[] = { + ANIMCMD_FRAME(0, 16), + ANIMCMD_END +}; + +const union AnimCmd gSpriteAnim_83ED248[] = { + ANIMCMD_FRAME(1, 16), + ANIMCMD_FRAME(0, 16), + ANIMCMD_JUMP(0) +}; + +const union AnimCmd gSpriteAnim_83ED254[] = { + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_JUMP(0) +}; + +const union AnimCmd gSpriteAnim_83ED260[] = { + ANIMCMD_FRAME(1, 4), + ANIMCMD_FRAME(0, 4), + ANIMCMD_JUMP(0) +}; + +const union AnimCmd gSpriteAnim_83ED26C[] = { + ANIMCMD_FRAME(2, 32), + ANIMCMD_FRAME(3, 32), + ANIMCMD_JUMP(0) +}; + +const union AnimCmd gSpriteAnim_83ED278[] = { + ANIMCMD_FRAME(4, 1), + ANIMCMD_END +}; + +const union AnimCmd gSpriteAnim_83ED280[] = { + ANIMCMD_FRAME(0, 1), + ANIMCMD_END +}; + +const union AnimCmd gSpriteAnim_83ED288[] = { + ANIMCMD_FRAME(1, 1), + ANIMCMD_END +}; + +const union AnimCmd gSpriteAnim_83ED290[] = { + ANIMCMD_FRAME(2, 1), + ANIMCMD_END +}; + +const union AnimCmd gSpriteAnim_83ED298[] = { + ANIMCMD_FRAME(3, 1), + ANIMCMD_END +}; + +const union AnimCmd gSpriteAnim_83ED2A0[] = { + ANIMCMD_FRAME(4, 1), + ANIMCMD_END +}; + +const union AnimCmd gSpriteAnim_83ED2A8[] = { + ANIMCMD_FRAME(5, 1), + ANIMCMD_END +}; + +const union AnimCmd gSpriteAnim_83ED2B0[] = { + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(1, 4), + ANIMCMD_JUMP(0) +}; + +const union AnimCmd gSpriteAnim_83ED2BC[] = { + ANIMCMD_FRAME(0, 16), + ANIMCMD_FRAME(1, 16), + ANIMCMD_JUMP(0) +}; + +const union AnimCmd gSpriteAnim_83ED2C8[] = { + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 30), + ANIMCMD_JUMP(0) +}; + +const union AnimCmd gSpriteAnim_83ED2D4[] = { + ANIMCMD_FRAME(1, 1), + ANIMCMD_END +}; + +const union AnimCmd gSpriteAnim_83ED2DC[] = { + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 30), + ANIMCMD_JUMP(0) +}; + +const union AnimCmd gSpriteAnim_83ED2E8[] = { + ANIMCMD_FRAME(0, 16), + ANIMCMD_FRAME(1, 16), + ANIMCMD_FRAME(0, 16), + ANIMCMD_FRAME(1, 16, .hFlip = TRUE), + ANIMCMD_JUMP(0) +}; + +const union AnimCmd gSpriteAnim_83ED2FC[] = { + ANIMCMD_FRAME(0, 1), + ANIMCMD_END +}; + +const union AnimCmd gSpriteAnim_83ED304[] = { + ANIMCMD_FRAME(0, 1), + ANIMCMD_END +}; + +const union AnimCmd gSpriteAnim_83ED30C[] = { + ANIMCMD_FRAME(1, 1), + ANIMCMD_END +}; + +const union AnimCmd gSpriteAnim_83ED314[] = { + ANIMCMD_FRAME(2, 1), + ANIMCMD_END +}; + +const union AnimCmd gSpriteAnim_83ED31C[] = { + ANIMCMD_FRAME(3, 1), + ANIMCMD_END +}; + +const union AnimCmd gSpriteAnim_83ED324[] = { + ANIMCMD_FRAME(4, 1), + ANIMCMD_END +}; + +const union AnimCmd *const gSpriteAnimTable_83ED32C[] = { + gSpriteAnim_83ED230 +}; + +const union AnimCmd *const gSpriteAnimTable_83ED330[] = { + gSpriteAnim_83ED238 +}; + +const union AnimCmd *const gSpriteAnimTable_83ED334[] = { + gSpriteAnim_83ED240, + gSpriteAnim_83ED248, + gSpriteAnim_83ED254, + gSpriteAnim_83ED260, + gSpriteAnim_83ED26C, + gSpriteAnim_83ED278 +}; + +const union AnimCmd *const gSpriteAnimTable_83ED34C[] = { + gSpriteAnim_83ED280, + gSpriteAnim_83ED288, + gSpriteAnim_83ED290, + gSpriteAnim_83ED298, + gSpriteAnim_83ED2A0, + gSpriteAnim_83ED2A8 +}; + +const union AnimCmd *const gSpriteAnimTable_83ED364[] = { + gSpriteAnim_83ED2B0 +}; + +const union AnimCmd *const gSpriteAnimTable_83ED368[] = { + gSpriteAnim_83ED2BC +}; + +const union AnimCmd *const gSpriteAnimTable_83ED36C[] = { + gSpriteAnim_83ED2C8, + gSpriteAnim_83ED2D4 +}; + +const union AnimCmd *const gSpriteAnimTable_83ED374[] = { + gSpriteAnim_83ED2DC +}; + +const union AnimCmd *const gSpriteAnimTable_83ED378[] = { + gSpriteAnim_83ED2E8, + gSpriteAnim_83ED2FC +}; + +const union AnimCmd *const gSpriteAnimTable_83ED380[] = { + gSpriteAnim_83ED304, + gSpriteAnim_83ED30C, + gSpriteAnim_83ED314, + gSpriteAnim_83ED31C, + gSpriteAnim_83ED324 +}; + +const union AffineAnimCmd gSpriteAffineAnim_83ED394[] = { + AFFINEANIMCMD_FRAME(0x10, 0x10, 0, 0), + AFFINEANIMCMD_LOOP(0), + AFFINEANIMCMD_FRAME(0x1, 0x1, 0, 1), + AFFINEANIMCMD_LOOP(255), + AFFINEANIMCMD_END +}; + +const union AffineAnimCmd *const gSpriteAffineAnimTable_83ED3BC[] = { + gSpriteAffineAnim_83ED394 +}; + +const union AffineAnimCmd gSpriteAffineAnim_83ED3C0[] = { + AFFINEANIMCMD_FRAME(0x0, 0x0, 8, 32), + AFFINEANIMCMD_FRAME(0x0, 0x0, 6, 32), + AFFINEANIMCMD_FRAME(0x0, 0x0, 4, 16), + AFFINEANIMCMD_FRAME(0x0, 0x0, 12, 2), + AFFINEANIMCMD_FRAME(0x0, 0x0, -12, 4), + AFFINEANIMCMD_FRAME(0x0, 0x0, 12, 2), + AFFINEANIMCMD_FRAME(0x0, 0x0, 12, 2), + AFFINEANIMCMD_FRAME(0x0, 0x0, -12, 4), + AFFINEANIMCMD_FRAME(0x0, 0x0, 12, 2), + AFFINEANIMCMD_END +}; + +const union AffineAnimCmd *const gSpriteAffineAnimTable_83ED410[] = { + gSpriteAffineAnim_83ED3C0 +}; + +const struct SpriteTemplate gSpriteTemplate_83ED414 = { + 0, 0, &gOamData_83ED0A0, gSpriteAnimTable_83ED32C, NULL, gDummySpriteAffineAnimTable, sub_8104F18 +}; + +const struct SpriteTemplate gSpriteTemplate_83ED42C = { + 7, 4, &gOamData_83ED088, gSpriteAnimTable_83ED32C, NULL, gDummySpriteAffineAnimTable, sub_810506C +}; + +const struct SpriteTemplate gSpriteTemplate_83ED444 = { + 17, 0, &gOamData_83ED0B8, gSpriteAnimTable_83ED32C, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy +}; + +const struct SpriteTemplate gSpriteTemplate_83ED45C = { + 0xFFFF, 1, &gOamData_83ED0B8, gSpriteAnimTable_83ED334, gSpriteImageTable_83ED0C0, gDummySpriteAffineAnimTable, sub_8105170 +}; + +const struct SpriteTemplate gSpriteTemplate_83ED474 = { + 0xFFFF, 2, &gOamData_83ED088, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED0E8, gDummySpriteAffineAnimTable, SpriteCallbackDummy +}; + +const struct SpriteTemplate gSpriteTemplate_83ED48C = { + 0xFFFF, 3, &gOamData_83ED088, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED0F0, gDummySpriteAffineAnimTable, SpriteCallbackDummy +}; + +const struct SpriteTemplate gSpriteTemplate_83ED4A4 = { + 0xFFFF, 3, &gOamData_83ED088, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED0F8, gDummySpriteAffineAnimTable, SpriteCallbackDummy +}; + +const struct SpriteTemplate gSpriteTemplate_83ED4BC = { + 0xFFFF, 4, &gOamData_83ED090, gSpriteAnimTable_83ED34C, gSpriteImageTable_83ED100, gDummySpriteAffineAnimTable, sub_810535C +}; + +const struct SpriteTemplate gSpriteTemplate_83ED4D4 = { + 0xFFFF, 4, &gOamData_83ED090, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED130, gDummySpriteAffineAnimTable, SpriteCallbackDummy +}; + +const struct SpriteTemplate gSpriteTemplate_83ED4EC = { + 0xFFFF, 4, &gOamData_83ED090, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED138, gDummySpriteAffineAnimTable, SpriteCallbackDummy +}; + +const struct SpriteTemplate gSpriteTemplate_83ED504 = { + 0xFFFF, 4, &gOamData_83ED098, gSpriteAnimTable_83ED364, gSpriteImageTable_83ED140, gDummySpriteAffineAnimTable, sub_810562C +}; + +const struct SpriteTemplate gSpriteTemplate_83ED51C = { + 0xFFFF, 7, &gOamData_83ED0A8, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED150, gDummySpriteAffineAnimTable, sub_8105784 +}; + +const struct SpriteTemplate gSpriteTemplate_83ED534 = { + 0xFFFF, 5, &gOamData_83ED0A0, gSpriteAnimTable_83ED368, gSpriteImageTable_83ED158, gDummySpriteAffineAnimTable, sub_8105894 +}; + +const struct SpriteTemplate gSpriteTemplate_83ED54C = { + 0xFFFF, 4, &gOamData_83ED080, gSpriteAnimTable_83ED330, gSpriteImageTable_83ED168, gDummySpriteAffineAnimTable, sub_810594C +}; + +const struct SpriteTemplate gSpriteTemplate_83ED564 = { + 0xFFFF, 4, &gOamData_83ED090, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED170, gSpriteAffineAnimTable_83ED3BC, sub_8105A38 +}; + +const struct SpriteTemplate gSpriteTemplate_83ED57C = { + 0xFFFF, 6, &gOamData_83ED080, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED178, gDummySpriteAffineAnimTable, SpriteCallbackDummy +}; + +const struct SpriteTemplate gSpriteTemplate_83ED594 = { + 0xFFFF, 6, &gOamData_83ED080, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED180, gDummySpriteAffineAnimTable, SpriteCallbackDummy +}; + +const struct SpriteTemplate gSpriteTemplate_83ED5AC = { + 0xFFFF, 6, &gOamData_83ED080, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED188, gDummySpriteAffineAnimTable, SpriteCallbackDummy +}; + +const struct SpriteTemplate gSpriteTemplate_83ED5C4 = { + 18, 6, &gOamData_83ED080, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED190, gDummySpriteAffineAnimTable, SpriteCallbackDummy +}; + +const struct SpriteTemplate gSpriteTemplate_83ED5DC = { + 0xFFFF, 6, &gOamData_83ED0B0, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED198, gDummySpriteAffineAnimTable, SpriteCallbackDummy +}; + +const struct SpriteTemplate gSpriteTemplate_83ED5F4 = { + 0xFFFF, 6, &gOamData_83ED0B0, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED1A0, gDummySpriteAffineAnimTable, SpriteCallbackDummy +}; + +const struct SpriteTemplate gSpriteTemplate_83ED60C = { + 19, 6, &gOamData_83ED080, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED1A8, gDummySpriteAffineAnimTable, SpriteCallbackDummy +}; + +const struct SpriteTemplate gSpriteTemplate_83ED624 = { + 20, 6, &gOamData_83ED080, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED1B0, gDummySpriteAffineAnimTable, SpriteCallbackDummy +}; + +const struct SpriteTemplate gSpriteTemplate_83ED63C = { + 21, 6, &gOamData_83ED080, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED1B8, gDummySpriteAffineAnimTable, SpriteCallbackDummy +}; + +const struct SpriteTemplate gSpriteTemplate_83ED654 = { + 0xFFFF, 6, &gOamData_83ED0A0, gSpriteAnimTable_83ED36C, gSpriteImageTable_83ED1C0, gDummySpriteAffineAnimTable, SpriteCallbackDummy +}; + +const struct SpriteTemplate gSpriteTemplate_83ED66C = { + 0xFFFF, 6, &gOamData_83ED080, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED1D8, gDummySpriteAffineAnimTable, SpriteCallbackDummy +}; + +const struct SpriteTemplate gSpriteTemplate_83ED684 = { + 0xFFFF, 6, &gOamData_83ED090, gSpriteAnimTable_83ED380, gSpriteImageTable_83ED1E0, gDummySpriteAffineAnimTable, SpriteCallbackDummy +}; + +const struct SpriteTemplate gSpriteTemplate_83ED69C = { + 0xFFFF, 6, &gOamData_83ED080, gSpriteAnimTable_83ED378, gSpriteImageTable_83ED208, gDummySpriteAffineAnimTable, SpriteCallbackDummy +}; + +const struct SpriteTemplate gSpriteTemplate_83ED6B4 = { + 0xFFFF, 6, &gOamData_83ED080, gSpriteAnimTable_83ED374, gSpriteImageTable_83ED218, gDummySpriteAffineAnimTable, SpriteCallbackDummy +}; + +const struct SpriteTemplate gSpriteTemplate_83ED6CC = { + 0xFFFF, 4, &gOamData_83ED080, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED228, gSpriteAffineAnimTable_83ED410, sub_8105B70 +}; + -- cgit v1.2.3 From d1b6882fb2ddad468a1dfd19493b0bada58d6103 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 2 Jan 2018 12:36:14 -0500 Subject: data through gSubspriteTables_83EDB54 --- src/field/slot_machine.c | 321 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 321 insertions(+) (limited to 'src') diff --git a/src/field/slot_machine.c b/src/field/slot_machine.c index 493db1fa1..bff4e6a96 100644 --- a/src/field/slot_machine.c +++ b/src/field/slot_machine.c @@ -4986,3 +4986,324 @@ const struct SpriteTemplate gSpriteTemplate_83ED6CC = { 0xFFFF, 4, &gOamData_83ED080, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED228, gSpriteAffineAnimTable_83ED410, sub_8105B70 }; +const struct Subsprite gSubspriteTable_83ED6E4[] = { + {-64, -64, ST_OAM_SQUARE, 3, 0x0, 3}, + {0, -64, ST_OAM_SQUARE, 3, 0x0, 3}, + {-64, 0, ST_OAM_SQUARE, 3, 0x0, 3}, + {0, 0, ST_OAM_SQUARE, 3, 0x0, 3} +}; + +const struct SubspriteTable gSubspriteTables_83ED704[] = { + {4, gSubspriteTable_83ED6E4} +}; + +const struct Subsprite gSubspriteTable_83ED70C[] = { + {-32, -12, ST_OAM_H_RECTANGLE, 1, 0x0, 1}, + {0, -12, ST_OAM_H_RECTANGLE, 1, 0x4, 1}, + {-32, -4, ST_OAM_H_RECTANGLE, 1, 0x8, 1}, + {0, -4, ST_OAM_H_RECTANGLE, 1, 0xc, 1}, + {-32, 4, ST_OAM_H_RECTANGLE, 1, 0x10, 1}, + {0, 4, ST_OAM_H_RECTANGLE, 1, 0x14, 1} +}; + +const struct SubspriteTable gSubspriteTables_83ED73C[] = { + {6, gSubspriteTable_83ED70C} +}; + +const struct Subsprite gSubspriteTable_83ED744[] = { + {-32, -20, ST_OAM_H_RECTANGLE, 3, 0x0, 1}, + {-32, 12, ST_OAM_H_RECTANGLE, 1, 0x20, 1}, + {0, 12, ST_OAM_H_RECTANGLE, 1, 0x24, 1} +}; + +const struct SubspriteTable gSubspriteTables_83ED75C[] = { + {3, gSubspriteTable_83ED744} +}; + +const struct Subsprite gSubspriteTable_83ED764[] = { + {-32, -24, ST_OAM_H_RECTANGLE, 3, 0x0, 1}, + {-32, 8, ST_OAM_H_RECTANGLE, 1, 0x20, 1}, + {0, 8, ST_OAM_H_RECTANGLE, 1, 0x24, 1}, + {-32, 16, ST_OAM_H_RECTANGLE, 1, 0x28, 1}, + {0, 16, ST_OAM_H_RECTANGLE, 1, 0x2c, 1} +}; + +const struct SubspriteTable gSubspriteTables_83ED78C[] = { + {5, gSubspriteTable_83ED764} +}; + +const struct Subsprite gSubspriteTable_83ED794[] = { + {-32, -8, ST_OAM_H_RECTANGLE, 1, 0x0, 1}, + {0, -8, ST_OAM_H_RECTANGLE, 1, 0x4, 1}, + {-32, 0, ST_OAM_H_RECTANGLE, 1, 0x8, 1}, + {0, 0, ST_OAM_H_RECTANGLE, 1, 0xc, 1} +}; + +const struct SubspriteTable gSubspriteTables_83ED7B4[] = { + {4, gSubspriteTable_83ED794} +}; + +const struct Subsprite gSubspriteTable_83ED7BC[] = { + {-8, -12, ST_OAM_H_RECTANGLE, 0, 0x0, 1}, + {-8, -4, ST_OAM_H_RECTANGLE, 0, 0x0, 1}, + {-8, 4, ST_OAM_H_RECTANGLE, 0, 0x0, 1} +}; + +const struct SubspriteTable gSubspriteTables_83ED7D4[] = { + {3, gSubspriteTable_83ED7BC} +}; + +const struct Subsprite gSubspriteTable_83ED7DC[] = { + {-32, -24, ST_OAM_H_RECTANGLE, 3, 0x0, 3}, + {-32, 8, ST_OAM_H_RECTANGLE, 1, 0x20, 3}, + {0, 8, ST_OAM_H_RECTANGLE, 1, 0x24, 3}, + {-32, 16, ST_OAM_H_RECTANGLE, 1, 0x28, 3}, + {0, 16, ST_OAM_H_RECTANGLE, 1, 0x2c, 3} +}; + +const struct SubspriteTable gSubspriteTables_83ED804[] = { + {5, gSubspriteTable_83ED7DC} +}; + +const struct Subsprite gSubspriteTable_83ED80C[] = { + {-32, -8, ST_OAM_H_RECTANGLE, 1, 0x0, 3}, + {0, -8, ST_OAM_H_RECTANGLE, 1, 0x4, 3}, + {-32, 0, ST_OAM_H_RECTANGLE, 1, 0x8, 3}, + {0, 0, ST_OAM_H_RECTANGLE, 1, 0xc, 3} +}; + +const struct SubspriteTable gSubspriteTables_83ED82C[] = { + {4, gSubspriteTable_83ED80C} +}; + +const struct Subsprite gSubspriteTable_83ED834[] = { + {-32, -8, ST_OAM_H_RECTANGLE, 1, 0x0, 3}, + {0, -8, ST_OAM_H_RECTANGLE, 1, 0x4, 3}, + {-32, 0, ST_OAM_H_RECTANGLE, 1, 0x8, 3}, + {0, 0, ST_OAM_H_RECTANGLE, 1, 0xc, 3} +}; + +const struct SubspriteTable gSubspriteTables_83ED854[] = { + {4, gSubspriteTable_83ED834} +}; + +const struct Subsprite gSubspriteTable_83ED85C[] = { + {-32, -8, ST_OAM_H_RECTANGLE, 1, 0x0, 3}, + {0, -8, ST_OAM_H_RECTANGLE, 1, 0x4, 3}, + {-32, 0, ST_OAM_H_RECTANGLE, 1, 0x8, 3}, + {0, 0, ST_OAM_H_RECTANGLE, 1, 0xc, 3} +}; + +const struct SubspriteTable gSubspriteTables_83ED87C[] = { + {4, gSubspriteTable_83ED85C} +}; + +const struct Subsprite gSubspriteTable_83ED884[] = { + {-32, -12, ST_OAM_H_RECTANGLE, 1, 0x0, 3}, + {0, -12, ST_OAM_H_RECTANGLE, 1, 0x4, 3}, + {-32, -4, ST_OAM_H_RECTANGLE, 1, 0x8, 3}, + {0, -4, ST_OAM_H_RECTANGLE, 1, 0xc, 3}, + {-32, 4, ST_OAM_H_RECTANGLE, 1, 0x10, 3}, + {0, 4, ST_OAM_H_RECTANGLE, 1, 0x14, 3} +}; + +const struct SubspriteTable gSubspriteTables_83ED8B4[] = { + {6, gSubspriteTable_83ED884} +}; + +const struct Subsprite gSubspriteTable_83ED8BC[] = { + {-16, -16, ST_OAM_SQUARE, 2, 0x0, 3} +}; + +const struct Subsprite gSubspriteTable_83ED8C4[] = { + {-8, -8, ST_OAM_SQUARE, 1, 0x10, 3} +}; + +const struct SubspriteTable gSubspriteTables_83ED8CC[] = { + {1, gSubspriteTable_83ED8BC}, + {1, gSubspriteTable_83ED8C4} +}; + +const struct Subsprite gSubspriteTable_83ED8DC[] = { + {-24, -24, ST_OAM_H_RECTANGLE, 1, 0x0, 3}, + {8, -24, ST_OAM_H_RECTANGLE, 0, 0x4, 3}, + {-24, -16, ST_OAM_H_RECTANGLE, 1, 0x6, 3}, + {8, -16, ST_OAM_H_RECTANGLE, 0, 0xa, 3}, + {-24, -8, ST_OAM_H_RECTANGLE, 1, 0xc, 3}, + {8, -8, ST_OAM_H_RECTANGLE, 0, 0x10, 3}, + {-24, 0, ST_OAM_H_RECTANGLE, 1, 0x12, 3}, + {8, 0, ST_OAM_H_RECTANGLE, 0, 0x16, 3}, + {-24, 8, ST_OAM_H_RECTANGLE, 1, 0x18, 3}, + {8, 8, ST_OAM_H_RECTANGLE, 0, 0x1c, 3}, + {-24, 16, ST_OAM_H_RECTANGLE, 1, 0x1e, 3}, + {8, 16, ST_OAM_H_RECTANGLE, 0, 0x22, 3} +}; + +const struct SubspriteTable gSubspriteTables_83ED93C[] = { + 12, gSubspriteTable_83ED8DC +}; + +const struct Subsprite gSubspriteTable_83ED944[] = { + {-16, -12, ST_OAM_H_RECTANGLE, 2, 0x0, 3}, + {-16, 4, ST_OAM_H_RECTANGLE, 0, 0x8, 3}, + {0, 4, ST_OAM_H_RECTANGLE, 0, 0xa, 3} +}; + +const struct SubspriteTable gSubspriteTables_83ED95C[] = { + {3, gSubspriteTable_83ED944} +}; + +const struct Subsprite gSubspriteTable_83ED964[] = { + {-8, -8, ST_OAM_H_RECTANGLE, 0, 0x0, 3}, + {-8, 0, ST_OAM_H_RECTANGLE, 0, 0x8, 3} +}; + +const struct SubspriteTable gSubspriteTables_83ED974[] = { + {2, gSubspriteTable_83ED964} +}; + +const struct Subsprite gSubspriteTable_83ED97C[] = { + {-8, -8, ST_OAM_H_RECTANGLE, 0, 0x2, 3}, + {-8, 0, ST_OAM_H_RECTANGLE, 0, 0xa, 3} +}; + +const struct SubspriteTable gSubspriteTables_83ED98C[] = { + {2, gSubspriteTable_83ED97C} +}; + +const struct Subsprite gSubspriteTable_83ED994[] = { + {-8, -8, ST_OAM_H_RECTANGLE, 0, 0x4, 3}, + {-8, 0, ST_OAM_H_RECTANGLE, 0, 0xc, 3} +}; + +const struct SubspriteTable gSubspriteTables_83ED9A4[] = { + {2, gSubspriteTable_83ED994} +}; + +const struct Subsprite gSubspriteTable_83ED9AC[] = { + {-8, -8, ST_OAM_H_RECTANGLE, 0, 0x6, 3}, + {-8, 0, ST_OAM_H_RECTANGLE, 0, 0xe, 3} +}; + +const struct SubspriteTable gSubspriteTables_83ED9BC[] = { + {2, gSubspriteTable_83ED9AC} +}; + +const struct Subsprite gSubspriteTable_83ED9C4[] = { + {-8, -8, ST_OAM_H_RECTANGLE, 0, 0x0, 3}, + {-8, 0, ST_OAM_H_RECTANGLE, 0, 0x8, 3} +}; + +const struct SubspriteTable gSubspriteTables_83ED9D4[] = { + {2, gSubspriteTable_83ED9C4} +}; + +const struct Subsprite gSubspriteTable_83ED9DC[] = { + {-4, -8, ST_OAM_SQUARE, 0, 0x2, 3}, + {-4, 0, ST_OAM_SQUARE, 0, 0xa, 3} +}; + +const struct SubspriteTable gSubspriteTables_83ED9EC[] = { + {2, gSubspriteTable_83ED9DC} +}; + +const struct Subsprite gSubspriteTable_83ED9F4[] = { + {-8, -8, ST_OAM_H_RECTANGLE, 0, 0x3, 3}, + {-8, 0, ST_OAM_H_RECTANGLE, 0, 0xb, 3} +}; + +const struct SubspriteTable gSubspriteTables_83EDA04[] = { + {2, gSubspriteTable_83ED9F4} +}; + +const struct Subsprite gSubspriteTable_83EDA0C[] = { + {-4, -8, ST_OAM_SQUARE, 0, 0x5, 3}, + {-4, 0, ST_OAM_SQUARE, 0, 0xd, 3} +}; + +const struct SubspriteTable gSubspriteTables_83EDA1C[] = { + {2, gSubspriteTable_83EDA0C} +}; + +const struct Subsprite gSubspriteTable_83EDA24[] = { + {-8, -8, ST_OAM_H_RECTANGLE, 0, 0x6, 3}, + {-8, 0, ST_OAM_H_RECTANGLE, 0, 0xe, 3} +}; + +const struct SubspriteTable gSubspriteTables_83EDA34[] = { + {2, gSubspriteTable_83EDA24} +}; + +const struct Subsprite gSubspriteTable_83EDA3C[] = { + {-12, -12, ST_OAM_H_RECTANGLE, 0, 0x0, 3}, + {4, -12, ST_OAM_SQUARE, 0, 0x2, 3}, + {-12, -4, ST_OAM_H_RECTANGLE, 0, 0x8, 3}, + {4, -4, ST_OAM_SQUARE, 0, 0xa, 3}, + {-12, 4, ST_OAM_H_RECTANGLE, 0, 0x10, 3}, + {4, 4, ST_OAM_SQUARE, 0, 0x12, 3} +}; + +const struct SubspriteTable gSubspriteTables_83EDA6C[] = { + {6, gSubspriteTable_83EDA3C} +}; + +const struct Subsprite gSubspriteTable_83EDA74[] = { + {-8, -12, ST_OAM_H_RECTANGLE, 0, 0x3, 3}, + {-8, -4, ST_OAM_H_RECTANGLE, 0, 0xb, 3}, + {-8, 4, ST_OAM_H_RECTANGLE, 0, 0x13, 3} +}; + +const struct SubspriteTable gSubspriteTables_83EDA8C[] = { + {3, gSubspriteTable_83EDA74} +}; + +const struct Subsprite gSubspriteTable_83EDA94[] = { + {-12, -12, ST_OAM_H_RECTANGLE, 0, 0x5, 3}, + {4, -12, ST_OAM_SQUARE, 0, 0x7, 3}, + {-12, -4, ST_OAM_H_RECTANGLE, 0, 0xd, 3}, + {4, -4, ST_OAM_SQUARE, 0, 0xf, 3}, + {-12, 4, ST_OAM_H_RECTANGLE, 0, 0x15, 3}, + {4, 4, ST_OAM_SQUARE, 0, 0x17, 3} +}; + +const struct SubspriteTable gSubspriteTables_83EDAC4[] = { + {6, gSubspriteTable_83EDA94} +}; + +const struct Subsprite gSubspriteTable_83EDACC[] = { + {-12, -12, ST_OAM_H_RECTANGLE, 0, 0x0, 3}, + {4, -12, ST_OAM_SQUARE, 0, 0x2, 3}, + {-12, -4, ST_OAM_H_RECTANGLE, 0, 0x8, 3}, + {4, -4, ST_OAM_SQUARE, 0, 0xa, 3}, + {-12, 4, ST_OAM_H_RECTANGLE, 0, 0x10, 3}, + {4, 4, ST_OAM_SQUARE, 0, 0x12, 3} +}; + +const struct SubspriteTable gSubspriteTables_83EDAFC[] = { + {6, gSubspriteTable_83EDACC} +}; + +const struct Subsprite gSubspriteTable_83EDB04[] = { + {-8, -12, ST_OAM_H_RECTANGLE, 0, 0x3, 3}, + {-8, -4, ST_OAM_H_RECTANGLE, 0, 0xb, 3}, + {-8, 4, ST_OAM_H_RECTANGLE, 0, 0x13, 3} +}; + +const struct SubspriteTable gSubspriteTables_83EDB1C[] = { + {3, gSubspriteTable_83EDB04} +}; + +const struct Subsprite gSubspriteTable_83EDB24[] = { + {-12, -12, ST_OAM_H_RECTANGLE, 0, 0x5, 3}, + {4, -12, ST_OAM_SQUARE, 0, 0x7, 3}, + {-12, -4, ST_OAM_H_RECTANGLE, 0, 0xd, 3}, + {4, -4, ST_OAM_SQUARE, 0, 0xf, 3}, + {-12, 4, ST_OAM_H_RECTANGLE, 0, 0x15, 3}, + {4, 4, ST_OAM_SQUARE, 0, 0x17, 3} +}; + +const struct SubspriteTable gSubspriteTables_83EDB54[] = { + {6, gSubspriteTable_83EDB24} +}; + + -- cgit v1.2.3 From aee62a5b2487845921a1e6c3c3f08475cc7ae2ea Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 2 Jan 2018 15:08:57 -0500 Subject: data through gUnknown_083EDD08 --- src/field/slot_machine.c | 112 ++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 107 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/field/slot_machine.c b/src/field/slot_machine.c index bff4e6a96..4aa6af742 100644 --- a/src/field/slot_machine.c +++ b/src/field/slot_machine.c @@ -3571,8 +3571,8 @@ u8 sub_8105BB4(u8 a0, u8 a1, s16 a2) return sub_8105BF8(a0, gUnknown_083ECF0C[a1], gUnknown_083ECE7E[a1][0], gUnknown_083ECE7E[a1][1], a2); } -extern const struct SpriteTemplate *gUnknown_083EDB5C[]; -extern const struct SubspriteTable *gUnknown_083EDBC4[]; +const struct SpriteTemplate *const gUnknown_083EDB5C[]; +const struct SubspriteTable *const gUnknown_083EDBC4[]; u8 sub_8105BF8(u8 templateIdx, SpriteCallback callback, s16 x, s16 y, s16 a4) { @@ -4011,7 +4011,7 @@ void sub_810639C(void) extern const u8 gSlotMachineReelTimeLights_Gfx[]; extern const u8 gUnknown_083EDE8C[]; -extern const struct SpriteSheet gUnknown_083EDC2C[]; +const struct SpriteSheet gUnknown_083EDC2C[]; extern const struct SpritePalette gSlotMachineSpritePalettes[]; void sub_81063C0(void) @@ -4023,8 +4023,8 @@ void sub_81063C0(void) LoadSpritePalettes(gSlotMachineSpritePalettes); } -extern const u8 *gUnknown_083EDCE4; -extern const struct SpriteSheet gUnknown_083EDCDC; +const u8 *const gUnknown_083EDCE4; +const struct SpriteSheet gUnknown_083EDCDC; void sub_8106404(void) { @@ -5306,4 +5306,106 @@ const struct SubspriteTable gSubspriteTables_83EDB54[] = { {6, gSubspriteTable_83EDB24} }; +const struct SpriteTemplate *const gUnknown_083EDB5C[] = { + &gSpriteTemplate_83ED57C, + &gSpriteTemplate_83ED594, + &gSpriteTemplate_83ED5AC, + &gSpriteTemplate_83ED5DC, + &gSpriteTemplate_83ED5F4, + &gSpriteTemplate_83ED654, + &gSpriteTemplate_83ED66C, + &gSpriteTemplate_83ED684, + &gSpriteTemplate_83ED69C, + &gSpriteTemplate_83ED6B4, + &gSpriteTemplate_83ED5C4, + &gSpriteTemplate_83ED5C4, + &gSpriteTemplate_83ED5C4, + &gSpriteTemplate_83ED5C4, + &gSpriteTemplate_83ED60C, + &gSpriteTemplate_83ED60C, + &gSpriteTemplate_83ED60C, + &gSpriteTemplate_83ED60C, + &gSpriteTemplate_83ED60C, + &gSpriteTemplate_83ED624, + &gSpriteTemplate_83ED624, + &gSpriteTemplate_83ED624, + &gSpriteTemplate_83ED63C, + &gSpriteTemplate_83ED63C, + &gSpriteTemplate_83ED63C, + &gDummySpriteTemplate +}; + +const struct SubspriteTable *const gUnknown_083EDBC4[] = { + gSubspriteTables_83ED804, + gSubspriteTables_83ED82C, + gSubspriteTables_83ED854, + gSubspriteTables_83ED8B4, + NULL, + NULL, + gSubspriteTables_83ED8CC, + NULL, + gSubspriteTables_83ED93C, + gSubspriteTables_83ED95C, + gSubspriteTables_83ED974, + gSubspriteTables_83ED98C, + gSubspriteTables_83ED9A4, + gSubspriteTables_83ED9BC, + gSubspriteTables_83ED9D4, + gSubspriteTables_83ED9EC, + gSubspriteTables_83EDA04, + gSubspriteTables_83EDA1C, + gSubspriteTables_83EDA34, + gSubspriteTables_83EDA6C, + gSubspriteTables_83EDA8C, + gSubspriteTables_83EDAC4, + gSubspriteTables_83EDAFC, + gSubspriteTables_83EDB1C, + gSubspriteTables_83EDB54, + NULL +}; + +const struct SpriteSheet gUnknown_083EDC2C[] = { + {gSlotMachineReelSymbol1Tiles, 0x200, 0}, + {gSlotMachineReelSymbol2Tiles, 0x200, 1}, + {gSlotMachineReelSymbol3Tiles, 0x200, 2}, + {gSlotMachineReelSymbol4Tiles, 0x200, 3}, + {gSlotMachineReelSymbol5Tiles, 0x200, 4}, + {gSlotMachineReelSymbol6Tiles, 0x200, 5}, + {gSlotMachineReelSymbol7Tiles, 0x200, 6}, + {gSlotMachineNumber0Tiles, 0x40, 7}, + {gSlotMachineNumber1Tiles, 0x40, 8}, + {gSlotMachineNumber2Tiles, 0x40, 9}, + {gSlotMachineNumber3Tiles, 0x40, 10}, + {gSlotMachineNumber4Tiles, 0x40, 11}, + {gSlotMachineNumber5Tiles, 0x40, 12}, + {gSlotMachineNumber6Tiles, 0x40, 13}, + {gSlotMachineNumber7Tiles, 0x40, 14}, + {gSlotMachineNumber8Tiles, 0x40, 15}, + {gSlotMachineNumber9Tiles, 0x40, 16}, + {ewram10000 + 0x0A00, 0x200, 18}, + {ewram10000 + 0x1400, 0x200, 19}, + {ewram10000 + 0x1600, 0x300, 20}, + {ewram10000 + 0x1900, 0x300, 21}, + {} +}; + +const struct SpriteSheet gUnknown_083EDCDC = { + ewram10000 + 0x0000, 0x800, 17 +}; + +const u8 *const gUnknown_083EDCE4 = gUnknownPalette_08E997E8; + +#ifdef SAPPHIRE +const u16 UnknownPalette_83EDCE8[] = INCBIN_U16("graphics/unknown/sapphire_83EDD40.gbapal"); +#elif defined(RUBY) +const u16 UnknownPalette_83EDCE8[] = INCBIN_U16("graphics/unknown/ruby_83EDCE8.gbapal"); +#endif // RS + +const u16 *const gUnknown_083EDD08[] = { + UnknownPalette_83EDCE8 + 10, + UnknownPalette_83EDCE8 + 11, + UnknownPalette_83EDCE8 + 12, + UnknownPalette_83EDCE8 + 13, + UnknownPalette_83EDCE8 + 14 +}; -- cgit v1.2.3 From 9b2ebe671fe77298d0b1adcb5d87cbb2bd01cd3e Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 2 Jan 2018 21:35:41 -0500 Subject: Remaining slot machine data --- src/field/slot_machine.c | 79 ++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 73 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/field/slot_machine.c b/src/field/slot_machine.c index 4aa6af742..e1687b3d1 100644 --- a/src/field/slot_machine.c +++ b/src/field/slot_machine.c @@ -2244,8 +2244,8 @@ void sub_8103CC8(struct Task *task, u8 taskId) } extern const u16 *const gUnknown_083EDD08[]; -extern const u16 *const gUnknown_083EDD1C[]; -extern const u8 gUnknown_083EDD30[]; +const u16 *const gUnknown_083EDD1C[]; +const u8 gUnknown_083EDD30[]; static void sub_8103D00(u8 a0) { @@ -2257,8 +2257,8 @@ static void sub_8103D28(u8 a0) LoadPalette(gUnknown_083EDD1C[a0], gUnknown_083EDD30[a0], 2); } -extern const u8 gUnknown_083EDD3B[]; -extern const u8 gUnknown_083EDD35[][2]; +const u8 gUnknown_083EDD35[][2]; +const u8 gUnknown_083EDD3B[]; static void sub_8103D50(u8 a0) { @@ -2369,8 +2369,8 @@ static void sub_8103F70(void) sub_8103FE8(taskId); } -extern const u16 *const gUnknown_083EDDA0[]; -extern const u16 *const gUnknown_083EDDAC; +const u16 *const gUnknown_083EDDA0[]; +const u16 *const gUnknown_083EDDAC; static bool8 sub_8103FA0(void) { @@ -5409,3 +5409,70 @@ const u16 *const gUnknown_083EDD08[] = { UnknownPalette_83EDCE8 + 14 }; +const u16 *const gUnknown_083EDD1C[] = { + gUnknown_08E95A18 + 74, + gUnknown_08E95A18 + 75, + gUnknown_08E95A18 + 76, + gUnknown_08E95A18 + 77, + gUnknown_08E95A18 + 78 +}; + +const u8 gUnknown_083EDD30[] = { + 0x4a, 0x4b, 0x4c, 0x4e, 0x4d +}; + +const u8 gUnknown_083EDD35[][2] = { + {0, 0}, + {1, 2}, + {3, 4} +}; +const u8 gUnknown_083EDD3B[] = {1, 2, 2}; + +#ifdef SAPPHIRE +const u16 Unknown_83EDD3E[] = INCBIN_U16("graphics/unknown/sapphire_83EDD96.gbapal"); +const u16 Unknown_83EDD5E[] = INCBIN_U16("graphics/unknown/sapphire_83EDDB6.gbapal"); +const u16 Unknown_83EDD7E[] = INCBIN_U16("graphics/unknown/sapphire_83EDDD6.gbapal"); +#elif defined (RUBY) +const u16 Unknown_83EDD3E[] = INCBIN_U16("graphics/unknown/ruby_83EDD3E.gbapal"); +const u16 Unknown_83EDD5E[] = INCBIN_U16("graphics/unknown/ruby_83EDD5E.gbapal"); +const u16 Unknown_83EDD7E[] = INCBIN_U16("graphics/unknown/ruby_83EDD7E.gbapal"); +#endif // RS + +const u16 *const gUnknown_083EDDA0[] = { + Unknown_83EDD3E, + Unknown_83EDD5E, + Unknown_83EDD7E +}; + +const u16 *const gUnknown_083EDDAC = gUnknown_08E95A18 + 16; + +const u16 Palette_83EDDB0[] = INCBIN_U16("graphics/slot_machine/83EDDB0.gbapal"); +const u16 Palette_83EDDD0[] = INCBIN_U16("graphics/slot_machine/83EDDD0.gbapal"); +const u16 Palette_83EDDF0[] = INCBIN_U16("graphics/slot_machine/83EDDF0.gbapal"); + +const u16 *const gUnknown_083EDE10[] = { + Palette_83EDDB0, + Palette_83EDDD0, + Palette_83EDDF0, + gSlotMachineSpritePalette6 +}; + +const u16 *const gUnknown_083EDE20 = gSlotMachineSpritePalette6; + +const u16 gPalette_83EDE24[] = INCBIN_U16("graphics/slot_machine/83EDE24_pal.bin"); + +const struct SpritePalette gSlotMachineSpritePalettes[] = { + {gSlotMachineSpritePalette0, 0}, + {gSlotMachineSpritePalette1, 1}, + {gSlotMachineSpritePalette2, 2}, + {gSlotMachineSpritePalette3, 3}, + {gSlotMachineSpritePalette4, 4}, + {gSlotMachineSpritePalette5, 5}, + {gSlotMachineSpritePalette6, 6}, + {gSlotMachineSpritePalette4, 7}, + {} +}; + +const u8 gUnknown_083EDE8C[] = INCBIN_U8("graphics/slot_machine/reel_time.4bpp.lz"); + +const u16 gReelTimeWindowTilemap[] = INCBIN_U16("graphics/slot_machine/reel_time_window_map.bin"); -- cgit v1.2.3 From 3c709ef2ede275d6eeaa319a603c199a3906226b Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 3 Jan 2018 23:55:30 -0500 Subject: A little tidying --- src/field/slot_machine.c | 1 - 1 file changed, 1 deletion(-) (limited to 'src') diff --git a/src/field/slot_machine.c b/src/field/slot_machine.c index e1687b3d1..0e907674b 100644 --- a/src/field/slot_machine.c +++ b/src/field/slot_machine.c @@ -12,7 +12,6 @@ #include "trig.h" #include "graphics.h" #include "palette.h" -#include "task.h" #include "util.h" #include "text.h" #include "menu.h" -- cgit v1.2.3 From 86e1d1098e2554f21c42784115e9f69fb81b2925 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 4 Jan 2018 00:09:07 -0500 Subject: Declare as static what can be so declared --- src/field/slot_machine.c | 1119 +++++++++++++++++++++++----------------------- 1 file changed, 557 insertions(+), 562 deletions(-) (limited to 'src') diff --git a/src/field/slot_machine.c b/src/field/slot_machine.c index 0e907674b..b21d8a082 100644 --- a/src/field/slot_machine.c +++ b/src/field/slot_machine.c @@ -80,7 +80,7 @@ static void sub_8102484(void); static void sub_81024F0(void); static bool8 sub_8102540(void); static u8 sub_8102578(void); -u16 dp15_jump_random_unknown(void); +static u16 dp15_jump_random_unknown(void); static u8 sub_81025BC(void); static void sub_81027A0(void); static void sub_81027D0(void); @@ -90,44 +90,44 @@ static u8 sub_81029D4(u8 c1, u8 c2, u8 c3); static void sub_8102A24(void); static void sub_8102A64(u8 taskId); static bool8 sub_8102A44(void); -bool8 sub_8102A9C(struct Task *task); -bool8 sub_8102AD0(struct Task *task); -bool8 sub_8102B80(struct Task *task); -u8 sub_8102BA4(u8 x, s16 y); +static bool8 sub_8102A9C(struct Task *task); +static bool8 sub_8102AD0(struct Task *task); +static bool8 sub_8102B80(struct Task *task); +static u8 sub_8102BA4(u8 x, s16 y); static void sub_8102DA8(void); static void sub_8102DEC(u8 a0); static void sub_8102E1C(u8 a0); static bool8 sub_8102E40(u8 a0); static void sub_8102E68(u8 taskId); -bool8 sub_8102EA0(struct Task *task); -bool8 sub_8102EA4(struct Task *task); -bool8 sub_8102EC0(struct Task *task); -bool8 sub_8102F4C(struct Task *task); -bool8 sub_8103008(struct Task *task); -bool8 sub_810305C(void); -bool8 sub_8103154(u8 a0, u8 a1); -bool8 sub_81031B4(u8 a0, u8 a1); -bool8 sub_81032C0(void); -bool8 sub_81032E8(void); -bool8 sub_810333C(void); -bool8 sub_81033DC(void); -bool8 sub_810341C(u8 a0); -bool8 sub_810347C(u8 a0); -void sub_81034F4(void); -void sub_8103540(void); -void sub_8103564(void); -void j5_08111E84(void); -void sub_8103668(void); -void sub_810380C(void); -void sub_8103830(void); -void sub_8103910(void); -void sub_8103A78(void); +static bool8 sub_8102EA0(struct Task *task); +static bool8 sub_8102EA4(struct Task *task); +static bool8 sub_8102EC0(struct Task *task); +static bool8 sub_8102F4C(struct Task *task); +static bool8 sub_8103008(struct Task *task); +static bool8 sub_810305C(void); +static bool8 sub_8103154(u8 a0, u8 a1); +static bool8 sub_81031B4(u8 a0, u8 a1); +static bool8 sub_81032C0(void); +static bool8 sub_81032E8(void); +static bool8 sub_810333C(void); +static bool8 sub_81033DC(void); +static bool8 sub_810341C(u8 a0); +static bool8 sub_810347C(u8 a0); +static void sub_81034F4(void); +static void sub_8103540(void); +static void sub_8103564(void); +static void j5_08111E84(void); +static void sub_8103668(void); +static void sub_810380C(void); +static void sub_8103830(void); +static void sub_8103910(void); +static void sub_8103A78(void); static void sub_8103C14(u8 a0); static void sub_8103C48(u8 taskId); static void sub_8103D50(u8 a0); -void sub_8103C78(struct Task *task, u8 taskId); -void sub_8103CAC(struct Task *task, u8 taskId); -void sub_8103CC8(struct Task *task, u8 taskId); +static void sub_8103C78(struct Task *task, u8 taskId); +static void sub_8103CAC(struct Task *task, u8 taskId); +static void sub_8103CC8(struct Task *task, u8 taskId); static void sub_8103D8C(u8 a0); static void sub_8103DC8(void); static void sub_8103E04(u8 a0); @@ -140,98 +140,94 @@ static bool8 sub_8103FA0(void); static void sub_8103FE8(u8 taskId); static void sub_8104048(void); static void sub_8104064(u8 unused); -bool8 sub_81040C8(void); +static bool8 sub_81040C8(void); static void sub_81040E8(u8 taskId); -void nullsub_68(struct Task *task); -void sub_810411C(struct Task *task); -void sub_8104144(struct Task *task); -void sub_81041AC(struct Task *task); +static void nullsub_68(struct Task *task); +static void sub_810411C(struct Task *task); +static void sub_8104144(struct Task *task); +static void sub_81041AC(struct Task *task); static void sub_810421C(struct Task *task); -void sub_810423C(u8 a0); +static void sub_810423C(u8 a0); static void sub_810430C(void); static bool8 sub_810432C(void); -void sub_810434C(u8 taskId); -void sub_810437C(struct Task *task); -void sub_81043EC(struct Task *task); -void sub_8104468(struct Task *task); -void sub_8104498(struct Task *task); -void sub_8104548(struct Task *task); -void sub_8104598(struct Task *task); -void sub_81045CC(struct Task *task); -void sub_810463C(struct Task *task); -void sub_81046C0(struct Task *task); -void sub_8104764(struct Task *task); -void sub_8104794(struct Task *task); -void sub_81047EC(struct Task *task); -void sub_8104860(struct Task *task); -void sub_81048A8(struct Task *task); -void sub_81048CC(struct Task *task); -void sub_8104940(struct Task *task); -void sub_81049C8(struct Task *task); -void sub_81049F8(struct Task *task); -void sub_8104A40(s16 a0, s16 a1); -void sub_8104A88(s16 a0); -void sub_8104AB8(u8 a0); -bool8 sub_8104AEC(void); -void sub_8104B0C(u8 taskId); -void sub_8104B3C(struct Task *task); -void sub_8104B60(struct Task *task); -void sub_8104B80(struct Task *task); -void sub_8104BC8(struct Task *task); -void sub_8104BFC(struct Task *task); -void sub_8104C44(struct Task *task); -void sub_8104C5C(void); -void sub_8104CAC(u8 arg0); -bool8 sub_8104E18(void); -void nullsub_69(struct Task *task); -void sub_8104E74(u8 taskId); -void sub_8104EA8(void); -void sub_8104F8C(void); -void sub_8104FF4(s16 x, s16 y, u8 a2, s16 a3); -void sub_81050C4(void); -void sub_8105100(void); -void sub_810514C(void); -void sub_81051C0(void); -void sub_8105284(void); -void sub_81052EC(void); -void sub_81053A0(void); -void sub_810545C(void); -void sub_81054B8(void); -void sub_8105524(void); -void sub_8105554(void); -void sub_8105578(void); -void sub_8105688(s16 a0); -void sub_81056C0(void); -void sub_81056F0(void); -void sub_81057E8(s16 a0); -void sub_8105804(void); -void sub_8105854(void); -void sub_81058A0(void); -void sub_81058C4(void); -void sub_81059B8(void); -void sub_81059E8(void); -bool8 sub_8105ACC(void); -void sub_8105AEC(void); -u8 sub_8105B1C(s16 x, s16 y); -void sub_8105B88(u8 spriteId); -u8 sub_8105BF8(u8 templateIdx, SpriteCallback callback, s16 x, s16 y, s16 a4); -void sub_81063C0(void); -void sub_8106404(void); +static void sub_810434C(u8 taskId); +static void sub_810437C(struct Task *task); +static void sub_81043EC(struct Task *task); +static void sub_8104468(struct Task *task); +static void sub_8104498(struct Task *task); +static void sub_8104548(struct Task *task); +static void sub_8104598(struct Task *task); +static void sub_81045CC(struct Task *task); +static void sub_810463C(struct Task *task); +static void sub_81046C0(struct Task *task); +static void sub_8104764(struct Task *task); +static void sub_8104794(struct Task *task); +static void sub_81047EC(struct Task *task); +static void sub_8104860(struct Task *task); +static void sub_81048A8(struct Task *task); +static void sub_81048CC(struct Task *task); +static void sub_8104940(struct Task *task); +static void sub_81049C8(struct Task *task); +static void sub_81049F8(struct Task *task); +static void sub_8104A40(s16 a0, s16 a1); +static void sub_8104A88(s16 a0); +static void sub_8104AB8(u8 a0); +static bool8 sub_8104AEC(void); +static void sub_8104B0C(u8 taskId); +static void sub_8104B3C(struct Task *task); +static void sub_8104B60(struct Task *task); +static void sub_8104B80(struct Task *task); +static void sub_8104BC8(struct Task *task); +static void sub_8104BFC(struct Task *task); +static void sub_8104C44(struct Task *task); +static void sub_8104C5C(void); +static void sub_8104CAC(u8 arg0); +static bool8 sub_8104E18(void); +static void nullsub_69(struct Task *task); +static void sub_8104E74(u8 taskId); +static void sub_8104EA8(void); +static void sub_8104F8C(void); +static void sub_8104FF4(s16 x, s16 y, u8 a2, s16 a3); +static void sub_81050C4(void); +static void sub_8105100(void); +static void sub_810514C(void); +static void sub_81051C0(void); +static void sub_8105284(void); +static void sub_81052EC(void); +static void sub_81053A0(void); +static void sub_810545C(void); +static void sub_81054B8(void); +static void sub_8105524(void); +static void sub_8105554(void); +static void sub_8105578(void); +static void sub_8105688(s16 a0); +static void sub_81056C0(void); +static void sub_81056F0(void); +static void sub_81057E8(s16 a0); +static void sub_8105804(void); +static void sub_8105854(void); +static void sub_81058A0(void); +static void sub_81058C4(void); +static void sub_81059B8(void); +static void sub_81059E8(void); +static bool8 sub_8105ACC(void); +static void sub_8105AEC(void); +static u8 sub_8105B1C(s16 x, s16 y); +static void sub_8105B88(u8 spriteId); +static u8 sub_8105BF8(u8 templateIdx, SpriteCallback callback, s16 x, s16 y, s16 a4); +static void sub_81063C0(void); +static void sub_8106404(void); static void sub_8106448(void); -void sub_81064B8(void); -void sub_81065A8(s16 arg0, u16 arg1, u16 arg2, u16 arg3, u16 arg4); -void sub_81065DC(void); - -const struct UnkStruct1 *const gUnknown_083ED048[]; -extern const u16 gPalette_83EDE24[]; -extern const u8 gSlotMachine_Gfx[]; -extern const u16 gUnknown_08E95A18[]; -extern const u16 gUnknown_08E95AB8[]; -extern const u16 gUnknown_08E95FB8[]; -const u8 gUnknown_083ECD04[][3]; -const u8 gUnknown_083ECE3A[]; -const u16 gUnknown_083ECE42[]; -const u16 gUnknown_083ECE48[]; +static void sub_81064B8(void); +static void sub_81065A8(s16 arg0, u16 arg1, u16 arg2, u16 arg3, u16 arg4); +static void sub_81065DC(void); + +static const struct UnkStruct1 *const gUnknown_083ED048[]; +static const u16 gPalette_83EDE24[]; +static const u8 gUnknown_083ECD04[][3]; +static const u8 gUnknown_083ECE3A[]; +static const u16 gUnknown_083ECE42[]; +static const u16 gUnknown_083ECE48[]; void PlaySlotMachine(u8 arg0, void *ptr) { @@ -286,7 +282,7 @@ static void sub_8101954(void) UpdatePaletteFade(); } -void sub_810196C(void) +static void sub_810196C(void) { LoadOam(); ProcessSpriteCopyRequests(); @@ -304,7 +300,7 @@ static void sub_81019B0(u8 arg0, void *ptr) StoreWordInTwoHalfwords(task->data + 1, (intptr_t)ptr); } -void sub_81019EC(void) +static void sub_81019EC(void) { struct Task *task = &gTasks[FindTaskIdByFunc(nullsub_67)]; eSlotMachine->unk01 = task->data[0]; @@ -368,7 +364,7 @@ static void sub_8101B04(void) REG_BLDALPHA = 0x809; } -const s16 gUnknown_083ECCF8[][2]; +static const s16 gUnknown_083ECCF8[][2]; static void sub_8101BA4(void) { @@ -586,7 +582,7 @@ static bool8 sub_8101E3C(struct Task *task) return FALSE; } -void sub_8101F2C(const u8 *str) +static void sub_8101F2C(const u8 *str) { MenuDisplayMessageBox(); MenuPrint(str, 2, 15); @@ -958,7 +954,7 @@ static void sub_81024F0(void) } } -u8 sub_810250C(u8 a0) +static u8 sub_810250C(u8 a0) { u8 i; @@ -983,7 +979,7 @@ static bool8 sub_8102540(void) return FALSE; } -const u8 gUnknown_083ECD16[][6]; +static const u8 gUnknown_083ECD16[][6]; static u8 sub_8102578(void) { @@ -1001,7 +997,7 @@ static u8 sub_8102578(void) return i; } -const u8 gUnknown_083ECD28[][6]; +static const u8 gUnknown_083ECD28[][6]; static u8 sub_81025BC(void) { @@ -1035,10 +1031,10 @@ static u8 sub_81025BC(void) return i; } -const u8 gUnknown_083ECD46[][17]; -const u8 gUnknown_083ECDAC[][17]; +static const u8 gUnknown_083ECD46[][17]; +static const u8 gUnknown_083ECDAC[][17]; -u8 sub_810264C(u8 a0) +static u8 sub_810264C(u8 a0) { if (eSlotMachine->unk03 == 0) { @@ -1047,7 +1043,7 @@ u8 sub_810264C(u8 a0) return gUnknown_083ECDAC[a0][eSlotMachine->unk02]; } -void sub_8102680(void) +static void sub_8102680(void) { u8 rval; s16 i; @@ -1069,9 +1065,9 @@ void sub_8102680(void) eSlotMachine->unk05 = i; } -const u16 gUnknown_083ECE12[]; +static const u16 gUnknown_083ECE12[]; -bool8 sub_81026DC(u16 a0) +static bool8 sub_81026DC(u16 a0) { u16 rval = Random() & 0xff; if (rval < gUnknown_083ECE12[a0]) @@ -1081,10 +1077,10 @@ bool8 sub_81026DC(u16 a0) return FALSE; } -const u16 gUnknown_083ECE1C[][2]; -const u16 gUnknown_083ECE30[]; +static const u16 gUnknown_083ECE1C[][2]; +static const u16 gUnknown_083ECE30[]; -u16 dp15_jump_random_unknown(void) +static u16 dp15_jump_random_unknown(void) { u8 r4 = 0; u8 rval; @@ -1134,8 +1130,8 @@ static void sub_81027A0(void) } } -extern const u16 gUnknown_083ECE5A[]; -extern const u16 gUnknown_083ECE6C[]; +static const u16 gUnknown_083ECE5A[]; +static const u16 gUnknown_083ECE6C[]; static void sub_81027D0(void) { @@ -1219,7 +1215,7 @@ static void sub_810290C(void) } } -const u8 gUnknown_083ECE52[]; +static const u8 gUnknown_083ECE52[]; static u8 sub_81029D4(u8 c1, u8 c2, u8 c3) { @@ -1256,7 +1252,7 @@ static bool8 sub_8102A44(void) return FALSE; } -bool8 (*const gUnknown_083ECB20[])(struct Task *task) = { +static bool8 (*const gUnknown_083ECB20[])(struct Task *task) = { sub_8102A9C, sub_8102AD0, sub_8102B80 @@ -1267,7 +1263,7 @@ static void sub_8102A64(u8 taskId) while (gUnknown_083ECB20[gTasks[taskId].data[0]](gTasks + taskId)); } -bool8 sub_8102A9C(struct Task *task) +static bool8 sub_8102A9C(struct Task *task) { if (sub_8103E38()) { @@ -1281,7 +1277,7 @@ bool8 sub_8102A9C(struct Task *task) return FALSE; } -bool8 sub_8102AD0(struct Task *task) +static bool8 sub_8102AD0(struct Task *task) { if (!task->data[1]--) { @@ -1317,7 +1313,7 @@ bool8 sub_8102AD0(struct Task *task) return FALSE; } -bool8 sub_8102B80(struct Task *task) +static bool8 sub_8102B80(struct Task *task) { if (sub_8103E7C()) { @@ -1326,9 +1322,9 @@ bool8 sub_8102B80(struct Task *task) return FALSE; } -const u8 gUnknown_083ECCB2[][21]; +static const u8 gUnknown_083ECCB2[][21]; -u8 sub_8102BA4(u8 x, s16 y) +static u8 sub_8102BA4(u8 x, s16 y) { s16 offset = (eSlotMachine->unk28[x] + y) % 21; if (offset < 0) @@ -1338,7 +1334,7 @@ u8 sub_8102BA4(u8 x, s16 y) return gUnknown_083ECCB2[x][offset]; } -u8 sub_8102BF8(u8 x, s16 y) +static u8 sub_8102BF8(u8 x, s16 y) { s16 r6 = 0; if ((eSlotMachine->unk1C[x]) % 24) @@ -1346,9 +1342,9 @@ u8 sub_8102BF8(u8 x, s16 y) return sub_8102BA4(x, y + r6); } -const u8 gUnknown_083ECCF1[]; +static const u8 gUnknown_083ECCF1[]; -u8 sub_8102C48(s16 a0) +static u8 sub_8102C48(s16 a0) { s16 r1 = (eSlotMachine->unk16 + a0) % 6; if (r1 < 0) @@ -1356,14 +1352,14 @@ u8 sub_8102C48(s16 a0) return gUnknown_083ECCF1[r1]; } -void sub_8102C84(u8 a0, s16 a1) +static void sub_8102C84(u8 a0, s16 a1) { eSlotMachine->unk1C[a0] += a1; eSlotMachine->unk1C[a0] %= 504; eSlotMachine->unk28[a0] = 21 - eSlotMachine->unk1C[a0] / 24; } -s16 sub_8102CCC(u8 a0, s16 a1) +static s16 sub_8102CCC(u8 a0, s16 a1) { s16 r1 = eSlotMachine->unk1C[a0] % 24; if (r1 != 0) @@ -1376,14 +1372,14 @@ s16 sub_8102CCC(u8 a0, s16 a1) return r1; } -void sub_8102D28(s16 a0) +static void sub_8102D28(s16 a0) { eSlotMachine->unk14 += a0; eSlotMachine->unk14 %= 120; eSlotMachine->unk16 = 6 - eSlotMachine->unk14 / 20; } -s16 sub_8102D5C(s16 a0) +static s16 sub_8102D5C(s16 a0) { s16 r1 = eSlotMachine->unk14 % 20; if (r1 != 0) @@ -1424,7 +1420,7 @@ static bool8 sub_8102E40(u8 a0) return gTasks[eSlotMachine->unk3A[a0]].data[14]; } -bool8 (*const gUnknown_083ECB2C[])(struct Task *task) = { +static bool8 (*const gUnknown_083ECB2C[])(struct Task *task) = { sub_8102EA0, sub_8102EA4, sub_8102EC0, @@ -1437,29 +1433,29 @@ static void sub_8102E68(u8 taskId) while (gUnknown_083ECB2C[gTasks[taskId].data[0]](gTasks + taskId)); } -bool8 sub_8102EA0(struct Task *task) +static bool8 sub_8102EA0(struct Task *task) { return FALSE; } -bool8 sub_8102EA4(struct Task *task) +static bool8 sub_8102EA4(struct Task *task) { sub_8102C84(task->data[15], eSlotMachine->unk1A); return FALSE; } -bool8 (*const gUnknown_083ECB40[])(void) = { +static bool8 (*const gUnknown_083ECB40[])(void) = { sub_810305C, sub_81032C0, sub_81033DC }; -void (*const gUnknown_083ECB4C[])(void) = { +static void (*const gUnknown_083ECB4C[])(void) = { sub_81034F4, sub_8103540, sub_810380C }; -bool8 sub_8102EC0(struct Task *task) +static bool8 sub_8102EC0(struct Task *task) { task->data[0]++; eSlotMachine->unk34[task->data[15]] = 0; @@ -1473,7 +1469,7 @@ bool8 sub_8102EC0(struct Task *task) return TRUE; } -bool8 sub_8102F4C(struct Task *task) +static bool8 sub_8102F4C(struct Task *task) { u16 sp[] = {2, 4, 4, 4, 8}; s16 r2 = eSlotMachine->unk1C[task->data[15]] % 24; @@ -1496,7 +1492,7 @@ bool8 sub_8102F4C(struct Task *task) return FALSE; } -bool8 sub_8103008(struct Task *task) +static bool8 sub_8103008(struct Task *task) { eSlotMachine->unk22[task->data[15]] = task->data[1]; task->data[1] = -task->data[1]; @@ -1514,13 +1510,13 @@ bool8 sub_8103008(struct Task *task) return FALSE; } -bool8 (*const gUnknown_083ECB64[])(u8 a0, u8 a1) = { +static bool8 (*const gUnknown_083ECB64[])(u8 a0, u8 a1) = { sub_8103154, sub_81031B4, sub_81031B4 }; -bool8 sub_810305C(void) +static bool8 sub_810305C(void) { u8 r3 = sub_810250C(eSlotMachine->unk04); u8 r5 = r3; @@ -1532,7 +1528,7 @@ bool8 sub_810305C(void) return gUnknown_083ECB64[eSlotMachine->bet - 1](r5, r3); } -bool8 sub_81030A4(s16 a0, u8 a1, u8 a2) +static bool8 sub_81030A4(s16 a0, u8 a1, u8 a2) { u8 r1 = sub_8102BF8(0, a0); if (r1 == a1 || r1 == a2) @@ -1543,7 +1539,7 @@ bool8 sub_81030A4(s16 a0, u8 a1, u8 a2) return FALSE; } -bool8 sub_81030E0(s16 a0) +static bool8 sub_81030E0(s16 a0) { if (sub_8102BF8(0, 1 - a0) == 4 || sub_8102BF8(0, 2 - a0) == 4 || sub_8102BF8(0, 3 - a0) == 4) { @@ -1552,7 +1548,7 @@ bool8 sub_81030E0(s16 a0) return FALSE; } -bool8 sub_8103134(void) +static bool8 sub_8103134(void) { if (eSlotMachine->unk04 & 0xc2) { @@ -1561,7 +1557,7 @@ bool8 sub_8103134(void) return FALSE; } -bool8 sub_8103154(u8 a0, u8 a1) +static bool8 sub_8103154(u8 a0, u8 a1) { s16 i; @@ -1577,7 +1573,7 @@ bool8 sub_8103154(u8 a0, u8 a1) return FALSE; } -bool8 sub_81031B4(u8 a0, u8 a1) +static bool8 sub_81031B4(u8 a0, u8 a1) { s16 i; bool8 r6 = sub_8103134(); @@ -1621,18 +1617,18 @@ bool8 sub_81031B4(u8 a0, u8 a1) return FALSE; } -bool8 (*const gUnknown_083ECB70[])(void) = { +static bool8 (*const gUnknown_083ECB70[])(void) = { sub_81032E8, sub_81032E8, sub_810333C }; -bool8 sub_81032C0(void) +static bool8 sub_81032C0(void) { return gUnknown_083ECB70[eSlotMachine->bet - 1](); } -bool8 sub_81032E8(void) +static bool8 sub_81032E8(void) { s16 i; s16 unk34_0 = eSlotMachine->unk34[0]; @@ -1649,7 +1645,7 @@ bool8 sub_81032E8(void) return FALSE; } -bool8 sub_810333C(void) +static bool8 sub_810333C(void) { s16 i; if (sub_81032E8()) @@ -1683,13 +1679,13 @@ bool8 sub_810333C(void) return FALSE; } -bool8 (*const gUnknown_083ECB7C[])(u8 a0) = { +static bool8 (*const gUnknown_083ECB7C[])(u8 a0) = { sub_810341C, sub_810341C, sub_810347C }; -bool8 sub_81033DC(void) +static bool8 sub_81033DC(void) { u8 r3 = eSlotMachine->unk07; if (eSlotMachine->unk04 & 0x40) @@ -1703,7 +1699,7 @@ bool8 sub_81033DC(void) return gUnknown_083ECB7C[eSlotMachine->bet - 1](r3); } -bool8 sub_810341C(u8 a0) +static bool8 sub_810341C(u8 a0) { s16 i; s16 unk34_1 = eSlotMachine->unk34[1]; @@ -1720,7 +1716,7 @@ bool8 sub_810341C(u8 a0) return FALSE; } -bool8 sub_810347C(u8 a0) +static bool8 sub_810347C(u8 a0) { s16 i; s16 r8; @@ -1745,14 +1741,14 @@ bool8 sub_810347C(u8 a0) return FALSE; } -void sub_81034F4(void) +static void sub_81034F4(void) { s16 i; for (i = 0; sub_81030E0(i); i++); eSlotMachine->unk2E[0] = i; } -bool8 sub_8103520(u8 *a0) +static bool8 sub_8103520(u8 *a0) { if (*a0 == 0) { @@ -1767,18 +1763,18 @@ bool8 sub_8103520(u8 *a0) return FALSE; } -void (*const gUnknown_083ECB88[])(void) = { +static void (*const gUnknown_083ECB88[])(void) = { sub_8103564, j5_08111E84, sub_8103668 }; -void sub_8103540(void) +static void sub_8103540(void) { gUnknown_083ECB88[eSlotMachine->bet - 1](); } -void sub_8103564(void) +static void sub_8103564(void) { if (eSlotMachine->unk34[0] != 0 && eSlotMachine->unk04 & 0x80) { @@ -1799,7 +1795,7 @@ void sub_8103564(void) } } -void j5_08111E84(void) +static void j5_08111E84(void) { if (eSlotMachine->unk34[0] != 0 && eSlotMachine->unk04 & 0x80) { @@ -1822,7 +1818,7 @@ void j5_08111E84(void) #ifdef NONMATCHING // variable r6 is mistakenly plopped into r5, // and variable i is mistakenly plopped into r6 -void sub_8103668(void) +static void sub_8103668(void) { s16 i; s16 r6; @@ -2022,7 +2018,7 @@ __attribute__((naked)) void sub_8103668(void) } #endif // NONMATCHING -bool8 sub_8103764(u8 a0, u8 a1) +static bool8 sub_8103764(u8 a0, u8 a1) { if ((a0 == 0 && a1 == 1) || (a0 == 1 && a1 == 0)) { @@ -2031,7 +2027,7 @@ bool8 sub_8103764(u8 a0, u8 a1) return FALSE; } -bool8 sub_810378C(u8 a0, u8 a1, u8 a2) +static bool8 sub_810378C(u8 a0, u8 a1, u8 a2) { if ((a0 == 0 && a1 == 1 && a2 == 0) || (a0 == 1 && a1 == 0 && a2 == 1)) { @@ -2040,7 +2036,7 @@ bool8 sub_810378C(u8 a0, u8 a1, u8 a2) return FALSE; } -bool8 sub_81037BC(u8 a0, u8 a1, u8 a2) +static bool8 sub_81037BC(u8 a0, u8 a1, u8 a2) { if ((a0 == 0 && a1 == 1 && a2 == 0) || (a0 == 1 && a1 == 0 && a2 == 1) || @@ -2053,18 +2049,18 @@ bool8 sub_81037BC(u8 a0, u8 a1, u8 a2) return TRUE; } -void (*const gUnknown_083ECB94[])(void) = { +static void (*const gUnknown_083ECB94[])(void) = { sub_8103830, sub_8103910, sub_8103A78 }; -void sub_810380C(void) +static void sub_810380C(void) { gUnknown_083ECB94[eSlotMachine->bet - 1](); } -void sub_8103830(void) +static void sub_8103830(void) { s16 i = 0; u8 r5 = sub_8102BF8(0, 2 - eSlotMachine->unk2E[0]); @@ -2107,7 +2103,7 @@ void sub_8103830(void) eSlotMachine->unk2E[2] = i; } -void sub_8103910(void) +static void sub_8103910(void) { s16 sp0 = 0; s16 i; @@ -2155,7 +2151,7 @@ void sub_8103910(void) eSlotMachine->unk2E[2] = sp0; } -void sub_8103A78(void) +static void sub_8103A78(void) { u8 r6; u8 r5; @@ -2211,7 +2207,7 @@ static void sub_8103C14(u8 a0) sub_8103C48(taskId); } -void (*const gUnknown_083ECBA0[])(struct Task *task, u8 taskId) = { +static void (*const gUnknown_083ECBA0[])(struct Task *task, u8 taskId) = { sub_8103C78, sub_8103CAC, sub_8103CC8 @@ -2222,29 +2218,29 @@ static void sub_8103C48(u8 taskId) gUnknown_083ECBA0[gTasks[taskId].data[0]](gTasks + taskId, taskId); } -const s16 gUnknown_083ECBAC[] = {5, 10, 15}; +static const s16 gUnknown_083ECBAC[] = {5, 10, 15}; -void sub_8103C78(struct Task *task, u8 taskId) +static void sub_8103C78(struct Task *task, u8 taskId) { sub_81065A8(gUnknown_083ECBAC[task->data[15]], 0x62, 0x63, 0x72, 0x73); task->data[0]++; } -void sub_8103CAC(struct Task *task, u8 taskId) +static void sub_8103CAC(struct Task *task, u8 taskId) { if (++task->data[1] > 11) task->data[0]++; } -void sub_8103CC8(struct Task *task, u8 taskId) +static void sub_8103CC8(struct Task *task, u8 taskId) { sub_81065A8(gUnknown_083ECBAC[task->data[15]], 0x42, 0x43, 0x52, 0x53); DestroyTask(taskId); } -extern const u16 *const gUnknown_083EDD08[]; -const u16 *const gUnknown_083EDD1C[]; -const u8 gUnknown_083EDD30[]; +static const u16 *const gUnknown_083EDD08[]; +static const u16 *const gUnknown_083EDD1C[]; +static const u8 gUnknown_083EDD30[]; static void sub_8103D00(u8 a0) { @@ -2256,8 +2252,8 @@ static void sub_8103D28(u8 a0) LoadPalette(gUnknown_083EDD1C[a0], gUnknown_083EDD30[a0], 2); } -const u8 gUnknown_083EDD35[][2]; -const u8 gUnknown_083EDD3B[]; +static const u8 gUnknown_083EDD35[][2]; +static const u8 gUnknown_083EDD3B[]; static void sub_8103D50(u8 a0) { @@ -2368,8 +2364,8 @@ static void sub_8103F70(void) sub_8103FE8(taskId); } -const u16 *const gUnknown_083EDDA0[]; -const u16 *const gUnknown_083EDDAC; +static const u16 *const gUnknown_083EDDA0[]; +static const u16 *const gUnknown_083EDDAC; static bool8 sub_8103FA0(void) { @@ -2412,7 +2408,7 @@ static void sub_8104064(u8 unused) task->data[15] = 1; } -void sub_8104098(void) +static void sub_8104098(void) { struct Task *task = gTasks + eSlotMachine->unk3E; sub_810421C(task); @@ -2420,12 +2416,12 @@ void sub_8104098(void) task->data[15] = 1; } -bool8 sub_81040C8(void) +static bool8 sub_81040C8(void) { return gTasks[eSlotMachine->unk3E].data[15]; } -void (*const gUnknown_083ECBB4[])(struct Task *task) = { +static void (*const gUnknown_083ECBB4[])(struct Task *task) = { nullsub_68, sub_810411C, sub_8104144, @@ -2437,24 +2433,24 @@ static void sub_81040E8(u8 taskId) gUnknown_083ECBB4[gTasks[taskId].data[0]](gTasks + taskId); } -void nullsub_68(struct Task *task) +static void nullsub_68(struct Task *task) { } -void sub_810411C(struct Task *task) +static void sub_810411C(struct Task *task) { task->data[2] = sub_8105B1C((task->data[1] << 3) + 20, 20); task->data[0]++; } -const u16 gUnknown_083ECBC4[][2] = { +static const u16 gUnknown_083ECBC4[][2] = { {0x9e, 0x6e}, {0x9f, 0x6f}, {0xaf, 0x7f} }; -void sub_8104144(struct Task *task) +static void sub_8104144(struct Task *task) { u16 *vaddr = (u16 *)BG_SCREEN_ADDR(29); if (gSprites[task->data[2]].data[7]) @@ -2472,7 +2468,7 @@ void sub_8104144(struct Task *task) } } -void sub_81041AC(struct Task *task) +static void sub_81041AC(struct Task *task) { u16 *vaddr = (u16 *)BG_SCREEN_ADDR(29); s16 r4 = task->data[1] + 2; @@ -2503,7 +2499,7 @@ static void sub_810421C(struct Task *task) task->data[i] = 0; } -void sub_810423C(u8 a0) +static void sub_810423C(u8 a0) { s16 i; u8 r3; @@ -2543,7 +2539,7 @@ static bool8 sub_810432C(void) return FALSE; } -void (*const gUnknown_083ECBD0[])(struct Task *task) = { +static void (*const gUnknown_083ECBD0[])(struct Task *task) = { sub_810437C, sub_81043EC, sub_8104468, @@ -2565,12 +2561,12 @@ void (*const gUnknown_083ECBD0[])(struct Task *task) = { sub_81049F8 }; -void sub_810434C(u8 taskId) +static void sub_810434C(u8 taskId) { gUnknown_083ECBD0[gTasks[taskId].data[0]](gTasks + taskId); } -void sub_810437C(struct Task *task) +static void sub_810437C(struct Task *task) { eSlotMachine->unk0A = 0; eSlotMachine->unk14 = 0; @@ -2594,7 +2590,7 @@ void sub_810437C(struct Task *task) PlayNewMapMusic(BGM_BD_TIME); } -void sub_81043EC(struct Task *task) +static void sub_81043EC(struct Task *task) { s16 r3; gSpriteCoordOffsetX -= 8; @@ -2615,7 +2611,7 @@ void sub_81043EC(struct Task *task) sub_8102D28(task->data[4] >> 8); } -void sub_8104468(struct Task *task) +static void sub_8104468(struct Task *task) { sub_8102D28(task->data[4] >> 8); if (++task->data[5] >= 60) @@ -2626,7 +2622,7 @@ void sub_8104468(struct Task *task) } } -void sub_8104498(struct Task *task) +static void sub_8104498(struct Task *task) { int r5; u8 sp0[] = {1, 1, 2, 2}; @@ -2647,7 +2643,7 @@ void sub_8104498(struct Task *task) } } -void sub_8104548(struct Task *task) +static void sub_8104548(struct Task *task) { sub_8102D28(task->data[4] >> 8); if (++task->data[5] >= 80) @@ -2659,7 +2655,7 @@ void sub_8104548(struct Task *task) } } -void sub_8104598(struct Task *task) +static void sub_8104598(struct Task *task) { sub_8102D28(task->data[4] >> 8); task->data[4] = (u8)task->data[4] + 0x80; @@ -2670,7 +2666,7 @@ void sub_8104598(struct Task *task) } } -void sub_81045CC(struct Task *task) +static void sub_81045CC(struct Task *task) { sub_8102D28(task->data[4] >> 8); task->data[4] = (u8)task->data[4] + 0x40; @@ -2696,7 +2692,7 @@ void sub_81045CC(struct Task *task) } } -void sub_810463C(struct Task *task) +static void sub_810463C(struct Task *task) { s16 r5 = eSlotMachine->unk14 % 20; if (r5) @@ -2717,7 +2713,7 @@ void sub_810463C(struct Task *task) } } -void sub_81046C0(struct Task *task) +static void sub_81046C0(struct Task *task) { if (++task->data[4] >= 60) { @@ -2746,7 +2742,7 @@ void sub_81046C0(struct Task *task) } } -void sub_8104764(struct Task *task) +static void sub_8104764(struct Task *task) { if ((task->data[4] == 0 || --task->data[4] == 0) && !sub_81040C8()) { @@ -2754,7 +2750,7 @@ void sub_8104764(struct Task *task) } } -void sub_8104794(struct Task *task) +static void sub_8104794(struct Task *task) { s16 r4; gSpriteCoordOffsetX -= 8; @@ -2772,7 +2768,7 @@ void sub_8104794(struct Task *task) } } -void sub_81047EC(struct Task *task) +static void sub_81047EC(struct Task *task) { eSlotMachine->unk0B = 0; eSlotMachine->unk0A = eSlotMachine->unk05; @@ -2797,7 +2793,7 @@ void sub_81047EC(struct Task *task) } } -void sub_8104860(struct Task *task) +static void sub_8104860(struct Task *task) { if (eSlotMachine->unk1A == task->data[1]) { @@ -2809,7 +2805,7 @@ void sub_8104860(struct Task *task) } } -void sub_81048A8(struct Task *task) +static void sub_81048A8(struct Task *task) { if (sub_8104E18()) { @@ -2817,7 +2813,7 @@ void sub_81048A8(struct Task *task) } } -void sub_81048CC(struct Task *task) +static void sub_81048CC(struct Task *task) { sub_81054B8(); sub_81056C0(); @@ -2833,7 +2829,7 @@ void sub_81048CC(struct Task *task) PlaySE(SE_W153); } -void sub_8104940(struct Task *task) +static void sub_8104940(struct Task *task) { gSpriteCoordOffsetY = task->data[4]; REG_BG1VOFS = task->data[4]; @@ -2853,7 +2849,7 @@ void sub_8104940(struct Task *task) } } -void sub_81049C8(struct Task *task) +static void sub_81049C8(struct Task *task) { gSpriteCoordOffsetY = 0; REG_BG1VOFS = 0; @@ -2864,7 +2860,7 @@ void sub_81049C8(struct Task *task) } } -void sub_81049F8(struct Task *task) +static void sub_81049F8(struct Task *task) { gSpriteCoordOffsetX = 0; REG_BG1HOFS = 0; @@ -2876,9 +2872,9 @@ void sub_81049F8(struct Task *task) DestroyTask(FindTaskIdByFunc(sub_810434C)); } -extern const u16 gReelTimeWindowTilemap[]; +static const u16 gReelTimeWindowTilemap[]; -void sub_8104A40(s16 a0, s16 a1) +static void sub_8104A40(s16 a0, s16 a1) { s16 i; @@ -2889,7 +2885,7 @@ void sub_8104A40(s16 a0, s16 a1) } } -void sub_8104A88(s16 a0) +static void sub_8104A88(s16 a0) { s16 i; @@ -2899,21 +2895,21 @@ void sub_8104A88(s16 a0) } } -void sub_8104AB8(u8 a0) +static void sub_8104AB8(u8 a0) { u8 taskId = CreateTask(sub_8104B0C, 1); gTasks[taskId].data[1] = a0; sub_8104B0C(taskId); } -bool8 sub_8104AEC(void) +static bool8 sub_8104AEC(void) { if (FindTaskIdByFunc(sub_8104B0C) == 0xFF) return TRUE; return FALSE; } -void (*const gUnknown_083ECC30[])(struct Task *task) = { +static void (*const gUnknown_083ECC30[])(struct Task *task) = { sub_8104B3C, sub_8104B60, sub_8104B80, @@ -2925,18 +2921,18 @@ void (*const gUnknown_083ECC30[])(struct Task *task) = { sub_8104C44 }; -void sub_8104B0C(u8 taskId) +static void sub_8104B0C(u8 taskId) { gUnknown_083ECC30[gTasks[taskId].data[0]](gTasks + taskId); } -void sub_8104B3C(struct Task *task) +static void sub_8104B3C(struct Task *task) { BeginNormalPaletteFade(-1, 0, 0, 16, 0); task->data[0]++; } -void sub_8104B60(struct Task *task) +static void sub_8104B60(struct Task *task) { if (!gPaletteFade.active) { @@ -2944,7 +2940,7 @@ void sub_8104B60(struct Task *task) } } -void sub_8104B80(struct Task *task) +static void sub_8104B80(struct Task *task) { sub_8104DA4(); sub_81065DC(); @@ -2954,7 +2950,7 @@ void sub_8104B80(struct Task *task) task->data[0]++; } -void sub_8104BC8(struct Task *task) +static void sub_8104BC8(struct Task *task) { if (gMain.newKeys & (B_BUTTON | SELECT_BUTTON)) { @@ -2963,7 +2959,7 @@ void sub_8104BC8(struct Task *task) } } -void sub_8104BFC(struct Task *task) +static void sub_8104BFC(struct Task *task) { MenuZeroFillScreen(); BasicInitMenuWindow(&gWindowConfig_81E7128); @@ -2974,12 +2970,12 @@ void sub_8104BFC(struct Task *task) task->data[0]++; } -void sub_8104C44(struct Task *task) +static void sub_8104C44(struct Task *task) { DestroyTask(FindTaskIdByFunc(sub_8104B0C)); } -void sub_8104C5C(void) +static void sub_8104C5C(void) { u8 i; struct Task *task; @@ -2995,7 +2991,7 @@ void sub_8104C5C(void) static void LoadSlotMachineWheelOverlay(void); -void sub_8104CAC(u8 arg0) { +static void sub_8104CAC(u8 arg0) { u8 i; struct Task *task; @@ -3023,7 +3019,7 @@ void sub_8104CAC(u8 arg0) { } } -void sub_8104D30(u8 a0, SpriteCallback a1, s16 a2, s16 a3, s16 a4) +static void sub_8104D30(u8 a0, SpriteCallback a1, s16 a2, s16 a3, s16 a4) { u8 i; struct Task *task = gTasks + eSlotMachine->unk3D; @@ -3037,7 +3033,7 @@ void sub_8104D30(u8 a0, SpriteCallback a1, s16 a2, s16 a3, s16 a4) } } -void (*const gUnknown_083ED064[])(void); +static void (*const gUnknown_083ED064[])(void); void sub_8104DA4(void) { @@ -3055,7 +3051,7 @@ void sub_8104DA4(void) } } -bool8 sub_8104E18(void) +static bool8 sub_8104E18(void) { u8 i; struct Task *task = gTasks + eSlotMachine->unk3D; @@ -3070,23 +3066,23 @@ bool8 sub_8104E18(void) return TRUE; } -void (*const gUnknown_083ECC54[])(struct Task *task) = { +static void (*const gUnknown_083ECC54[])(struct Task *task) = { nullsub_69 }; -void sub_8104E74(u8 taskId) +static void sub_8104E74(u8 taskId) { gUnknown_083ECC54[gTasks[taskId].data[0]](gTasks + taskId); } -void nullsub_69(struct Task *task) +static void nullsub_69(struct Task *task) { } -extern const struct SpriteTemplate gSpriteTemplate_83ED414; +static const struct SpriteTemplate gSpriteTemplate_83ED414; -void sub_8104EA8(void) +static void sub_8104EA8(void) { s16 i; s16 j; @@ -3104,7 +3100,7 @@ void sub_8104EA8(void) } } -void sub_8104F18(struct Sprite *sprite) +static void sub_8104F18(struct Sprite *sprite) { sprite->data[2] = eSlotMachine->unk1C[sprite->data[0]] + sprite->data[1]; sprite->data[2] %= 120; @@ -3113,7 +3109,7 @@ void sub_8104F18(struct Sprite *sprite) SetSpriteSheetFrameTileNum(sprite); } -void sub_8104F8C(void) +static void sub_8104F8C(void) { s16 i; s16 x; @@ -3127,9 +3123,9 @@ void sub_8104F8C(void) } } -extern const struct SpriteTemplate gSpriteTemplate_83ED42C; +static const struct SpriteTemplate gSpriteTemplate_83ED42C; -void sub_8104FF4(s16 x, s16 y, u8 a2, s16 a3) +static void sub_8104FF4(s16 x, s16 y, u8 a2, s16 a3) { struct Sprite *sprite = gSprites + CreateSprite(&gSpriteTemplate_83ED42C, x, y, 13); sprite->oam.priority = 2; @@ -3139,7 +3135,7 @@ void sub_8104FF4(s16 x, s16 y, u8 a2, s16 a3) sprite->data[3] = -1; } -void sub_810506C(struct Sprite *sprite) +static void sub_810506C(struct Sprite *sprite) { u16 tag = eSlotMachine->coins; if (sprite->data[0]) @@ -3155,19 +3151,19 @@ void sub_810506C(struct Sprite *sprite) } } -extern const struct SpriteTemplate gSpriteTemplate_83ED444; -extern const struct SubspriteTable gSubspriteTables_83ED704[]; +static const struct SpriteTemplate gSpriteTemplate_83ED444; +static const struct SubspriteTable gSubspriteTables_83ED704[]; -void sub_81050C4(void) +static void sub_81050C4(void) { u8 spriteId = CreateSprite(&gSpriteTemplate_83ED444, 0x58, 0x48, 15); gSprites[spriteId].oam.priority = 3; SetSubspriteTables(gSprites + spriteId, gSubspriteTables_83ED704); } -extern const struct SpriteTemplate gSpriteTemplate_83ED45C; +static const struct SpriteTemplate gSpriteTemplate_83ED45C; -void sub_8105100(void) +static void sub_8105100(void) { u8 spriteId = CreateSprite(&gSpriteTemplate_83ED45C, 0x118, 0x50, 1); gSprites[spriteId].oam.priority = 1; @@ -3175,12 +3171,12 @@ void sub_8105100(void) eSlotMachine->unk3F = spriteId; } -void sub_810514C(void) +static void sub_810514C(void) { DestroySprite(gSprites + eSlotMachine->unk3F); } -void sub_8105170(struct Sprite *sprite) +static void sub_8105170(struct Sprite *sprite) { sprite->pos2.y = sprite->pos2.x = 0; if (sprite->animNum == 4) @@ -3193,12 +3189,12 @@ void sub_8105170(struct Sprite *sprite) } } -extern const struct SpriteTemplate gSpriteTemplate_83ED474; -extern const struct SpriteTemplate gSpriteTemplate_83ED48C; -extern const struct SubspriteTable gSubspriteTables_83ED73C[]; -extern const struct SubspriteTable gSubspriteTables_83ED75C[]; +static const struct SpriteTemplate gSpriteTemplate_83ED474; +static const struct SpriteTemplate gSpriteTemplate_83ED48C; +static const struct SubspriteTable gSubspriteTables_83ED73C[]; +static const struct SubspriteTable gSubspriteTables_83ED75C[]; -void sub_81051C0(void) +static void sub_81051C0(void) { u8 spriteId = CreateSprite(&gSpriteTemplate_83ED474, 0x170, 0x34, 7); struct Sprite *sprite = gSprites + spriteId; @@ -3215,10 +3211,10 @@ void sub_81051C0(void) eSlotMachine->unk49[1] = spriteId; } -extern const struct SpriteTemplate gSpriteTemplate_83ED4A4; -extern const struct SubspriteTable gSubspriteTables_83ED78C[]; +static const struct SpriteTemplate gSpriteTemplate_83ED4A4; +static const struct SubspriteTable gSubspriteTables_83ED78C[]; -void sub_8105284(void) +static void sub_8105284(void) { u8 spriteId = CreateSprite(&gSpriteTemplate_83ED4A4, 0xa8 - gSpriteCoordOffsetX, 0x50, 7); struct Sprite *sprite = gSprites + spriteId; @@ -3228,9 +3224,9 @@ void sub_8105284(void) eSlotMachine->unk42 = spriteId; } -extern const struct SpriteTemplate gSpriteTemplate_83ED4BC; +static const struct SpriteTemplate gSpriteTemplate_83ED4BC; -void sub_81052EC(void) +static void sub_81052EC(void) { u8 i; s16 r5; @@ -3245,7 +3241,7 @@ void sub_81052EC(void) } } -void sub_810535C(struct Sprite *sprite) +static void sub_810535C(struct Sprite *sprite) { s16 r0 = (u16)(eSlotMachine->unk14 + sprite->data[7]); r0 %= 40; @@ -3253,10 +3249,10 @@ void sub_810535C(struct Sprite *sprite) StartSpriteAnimIfDifferent(sprite, sub_8102C48(r0 / 20)); } -extern const struct SpriteTemplate gSpriteTemplate_83ED4D4; -extern const struct SubspriteTable gSubspriteTables_83ED7B4[]; +static const struct SpriteTemplate gSpriteTemplate_83ED4D4; +static const struct SubspriteTable gSubspriteTables_83ED7B4[]; -void sub_81053A0(void) +static void sub_81053A0(void) { u8 spriteId = CreateSprite(&gSpriteTemplate_83ED4D4, 0x170, 0x64, 9); struct Sprite *sprite = gSprites + spriteId; @@ -3273,10 +3269,10 @@ void sub_81053A0(void) eSlotMachine->unk4E[1] = spriteId; } -extern const struct SpriteTemplate gSpriteTemplate_83ED4EC; -extern const struct SubspriteTable gSubspriteTables_83ED7D4[]; +static const struct SpriteTemplate gSpriteTemplate_83ED4EC; +static const struct SubspriteTable gSubspriteTables_83ED7D4[]; -void sub_810545C(void) +static void sub_810545C(void) { u8 spriteId = CreateSprite(&gSpriteTemplate_83ED4EC, 0x170, 0x4c, 11); struct Sprite *sprite = gSprites + spriteId; @@ -3286,7 +3282,7 @@ void sub_810545C(void) eSlotMachine->unk40 = spriteId; } -void sub_81054B8(void) +static void sub_81054B8(void) { u8 i; @@ -3301,7 +3297,7 @@ void sub_81054B8(void) } } -void sub_8105524(void) +static void sub_8105524(void) { u8 i; for (i = 0; i < 2; i++) @@ -3310,14 +3306,14 @@ void sub_8105524(void) } } -void sub_8105554(void) +static void sub_8105554(void) { DestroySprite(gSprites + eSlotMachine->unk42); } -extern const struct SpriteTemplate gSpriteTemplate_83ED504; +static const struct SpriteTemplate gSpriteTemplate_83ED504; -void sub_8105578(void) +static void sub_8105578(void) { u8 spriteId = CreateSprite(&gSpriteTemplate_83ED504, 0x98, 0x20, 5); struct Sprite *sprite = gSprites + spriteId; @@ -3338,7 +3334,7 @@ void sub_8105578(void) sprite->data[7] = 0x20; } -void sub_810562C(struct Sprite *sprite) +static void sub_810562C(struct Sprite *sprite) { if (sprite->data[0] != 0) { @@ -3360,13 +3356,13 @@ void sub_810562C(struct Sprite *sprite) } } -void sub_8105688(s16 a0) +static void sub_8105688(s16 a0) { gSprites[eSlotMachine->unk50[0]].data[7] = a0; gSprites[eSlotMachine->unk50[1]].data[7] = a0; } -void sub_81056C0(void) +static void sub_81056C0(void) { u8 i; @@ -3376,9 +3372,9 @@ void sub_81056C0(void) } } -extern const struct SpriteTemplate gSpriteTemplate_83ED51C; +static const struct SpriteTemplate gSpriteTemplate_83ED51C; -void sub_81056F0(void) +static void sub_81056F0(void) { u8 spriteId = CreateSprite(&gSpriteTemplate_83ED51C, 0x48, 0x50, 3); gSprites[spriteId].oam.priority = 1; @@ -3394,9 +3390,9 @@ void sub_81056F0(void) eSlotMachine->unk52[1] = spriteId; } -extern const u8 gUnknown_083ECC58[2]; // don't remove this until decompiled through gUnknown_083ECCF8 +static const u8 gUnknown_083ECC58[2]; // don't remove this until decompiled through gUnknown_083ECCF8 -void sub_8105784(struct Sprite *sprite) +static void sub_8105784(struct Sprite *sprite) { u8 sp[] = {16, 0}; if (sprite->data[0] && --sprite->data[6] <= 0) @@ -3408,12 +3404,12 @@ void sub_8105784(struct Sprite *sprite) } } -void sub_81057E8(s16 a0) +static void sub_81057E8(s16 a0) { gSprites[eSlotMachine->unk52[0]].data[7] = a0; } -void sub_8105804(void) +static void sub_8105804(void) { u8 i; MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(7) << 4) + 0x103, 0, 0, 0); @@ -3423,28 +3419,28 @@ void sub_8105804(void) } } -extern const struct SpriteTemplate gSpriteTemplate_83ED534; +static const struct SpriteTemplate gSpriteTemplate_83ED534; -void sub_8105854(void) +static void sub_8105854(void) { u8 spriteId = CreateSprite(&gSpriteTemplate_83ED534, 0xa8, 0x50, 6); gSprites[spriteId].oam.priority = 1; eSlotMachine->unk41 = spriteId; } -void sub_8105894(struct Sprite *sprite) +static void sub_8105894(struct Sprite *sprite) { sprite->pos2.y = gSpriteCoordOffsetY; } -void sub_81058A0(void) +static void sub_81058A0(void) { DestroySprite(gSprites + eSlotMachine->unk41); } -extern const struct SpriteTemplate gSpriteTemplate_83ED54C; +static const struct SpriteTemplate gSpriteTemplate_83ED54C; -void sub_81058C4(void) +static void sub_81058C4(void) { u8 i; u16 sp[] = {0x0, 0x40, 0x80, 0xC0}; @@ -3459,7 +3455,7 @@ void sub_81058C4(void) } } -void sub_810594C(struct Sprite *sprite) +static void sub_810594C(struct Sprite *sprite) { sprite->data[0] -= 2; sprite->data[0] &= 0xff; @@ -3477,7 +3473,7 @@ void sub_810594C(struct Sprite *sprite) } } -void sub_81059B8(void) +static void sub_81059B8(void) { u8 i; for (i = 0; i < 4; i++) @@ -3486,9 +3482,9 @@ void sub_81059B8(void) } } -extern const struct SpriteTemplate gSpriteTemplate_83ED564; +static const struct SpriteTemplate gSpriteTemplate_83ED564; -void sub_81059E8(void) +static void sub_81059E8(void) { u8 spriteId = CreateSprite(&gSpriteTemplate_83ED564, 0xa8, 0x3c, 8); struct Sprite *sprite = gSprites + spriteId; @@ -3498,7 +3494,7 @@ void sub_81059E8(void) eSlotMachine->unk43 = spriteId; } -void sub_8105A38(struct Sprite *sprite) +static void sub_8105A38(struct Sprite *sprite) { if (sprite->data[0] == 0) { @@ -3530,16 +3526,16 @@ u8 sub_8105ACC(void) return gSprites[eSlotMachine->unk43].data[7]; } -void sub_8105AEC(void) +static void sub_8105AEC(void) { struct Sprite *sprite = gSprites + eSlotMachine->unk43; FreeOamMatrix(sprite->oam.matrixNum); DestroySprite(sprite); } -extern const struct SpriteTemplate gSpriteTemplate_83ED6CC; +static const struct SpriteTemplate gSpriteTemplate_83ED6CC; -u8 sub_8105B1C(s16 x, s16 y) +static u8 sub_8105B1C(s16 x, s16 y) { u8 spriteId = CreateSprite(&gSpriteTemplate_83ED6CC, x, y, 12); struct Sprite *sprite = gSprites + spriteId; @@ -3549,31 +3545,31 @@ u8 sub_8105B1C(s16 x, s16 y) return spriteId; } -void sub_8105B70(struct Sprite *sprite) +static void sub_8105B70(struct Sprite *sprite) { if (sprite->affineAnimEnded) sprite->data[7] = 1; } -void sub_8105B88(u8 spriteId) +static void sub_8105B88(u8 spriteId) { struct Sprite *sprite = gSprites + spriteId; FreeOamMatrix(sprite->oam.matrixNum); DestroySprite(sprite); } -const s16 gUnknown_083ECE7E[][2]; -const SpriteCallback gUnknown_083ECF0C[]; +static const s16 gUnknown_083ECE7E[][2]; +static const SpriteCallback gUnknown_083ECF0C[]; u8 sub_8105BB4(u8 a0, u8 a1, s16 a2) { return sub_8105BF8(a0, gUnknown_083ECF0C[a1], gUnknown_083ECE7E[a1][0], gUnknown_083ECE7E[a1][1], a2); } -const struct SpriteTemplate *const gUnknown_083EDB5C[]; -const struct SubspriteTable *const gUnknown_083EDBC4[]; +static const struct SpriteTemplate *const gUnknown_083EDB5C[]; +static const struct SubspriteTable *const gUnknown_083EDBC4[]; -u8 sub_8105BF8(u8 templateIdx, SpriteCallback callback, s16 x, s16 y, s16 a4) +static u8 sub_8105BF8(u8 templateIdx, SpriteCallback callback, s16 x, s16 y, s16 a4) { u8 spriteId = CreateSprite(gUnknown_083EDB5C[templateIdx], x, y, 16); struct Sprite *sprite = gSprites + spriteId; @@ -3586,12 +3582,12 @@ u8 sub_8105BF8(u8 templateIdx, SpriteCallback callback, s16 x, s16 y, s16 a4) return spriteId; } -void sub_8105C64(struct Sprite *sprite) +static void sub_8105C64(struct Sprite *sprite) { sprite->data[7] = 0; } -void sub_8105C6C(struct Sprite *sprite) +static void sub_8105C6C(struct Sprite *sprite) { s16 sp0[] = {4, -4, 4, -4}; s16 sp8[] = {4, 4, -4, -4}; @@ -3610,26 +3606,26 @@ void sub_8105C6C(struct Sprite *sprite) } } -void sub_8105CF0(struct Sprite *sprite) +static void sub_8105CF0(struct Sprite *sprite) { sprite->hFlip = TRUE; sub_8105C6C(sprite); } -void sub_8105D08(struct Sprite *sprite) +static void sub_8105D08(struct Sprite *sprite) { sprite->vFlip = TRUE; sub_8105C6C(sprite); } -void sub_8105D20(struct Sprite *sprite) +static void sub_8105D20(struct Sprite *sprite) { sprite->hFlip = TRUE; sprite->vFlip = TRUE; sub_8105C6C(sprite); } -void sub_8105D3C(struct Sprite *sprite) +static void sub_8105D3C(struct Sprite *sprite) { switch (sprite->data[0]) { @@ -3660,7 +3656,7 @@ void sub_8105D3C(struct Sprite *sprite) } } -void sub_8105DA4(struct Sprite *sprite) +static void sub_8105DA4(struct Sprite *sprite) { switch (sprite->data[0]) { @@ -3691,7 +3687,7 @@ void sub_8105DA4(struct Sprite *sprite) } } -void sub_8105E08(struct Sprite *sprite) +static void sub_8105E08(struct Sprite *sprite) { switch (sprite->data[0]) { @@ -3733,7 +3729,7 @@ void sub_8105E08(struct Sprite *sprite) } } -void sub_8105EB4(struct Sprite *sprite) +static void sub_8105EB4(struct Sprite *sprite) { switch (sprite->data[0]) { @@ -3773,7 +3769,7 @@ void sub_8105EB4(struct Sprite *sprite) } } -void sub_8105F54(struct Sprite *sprite) +static void sub_8105F54(struct Sprite *sprite) { switch (sprite->data[0]) { @@ -3795,7 +3791,7 @@ void sub_8105F54(struct Sprite *sprite) } } -void sub_8105F9C(struct Sprite *sprite) +static void sub_8105F9C(struct Sprite *sprite) { switch (sprite->data[0]) { @@ -3831,9 +3827,9 @@ void sub_8105F9C(struct Sprite *sprite) } } -extern const u16 *const gUnknown_083EDE10[]; +static const u16 *const gUnknown_083EDE10[]; -void sub_8106058(struct Sprite *sprite) +static void sub_8106058(struct Sprite *sprite) { if (sprite->data[1] < 3) { @@ -3857,7 +3853,7 @@ void sub_8106058(struct Sprite *sprite) sprite->data[7] = 0; } -void sub_81060FC(struct Sprite *sprite) +static void sub_81060FC(struct Sprite *sprite) { s16 sp00[] = {0, -40, 0, 0, 48, 0, 24, 0}; s16 sp10[] = {-32, 0, -32, -48, 0, -48, 0, -48}; @@ -3902,7 +3898,7 @@ void sub_81060FC(struct Sprite *sprite) } } -void sub_81061C8(struct Sprite *sprite) +static void sub_81061C8(struct Sprite *sprite) { s16 sp0[] = {160, 192, 224, 104, 80, 64, 48, 24}; @@ -3919,7 +3915,7 @@ void sub_81061C8(struct Sprite *sprite) } } -void sub_8106230(struct Sprite *sprite) +static void sub_8106230(struct Sprite *sprite) { switch (sprite->data[0]) { @@ -3983,24 +3979,24 @@ void sub_8106230(struct Sprite *sprite) } } -void nullsub_70(void) +static void nullsub_70(void) { } -void sub_8106364(void) +static void sub_8106364(void) { REG_MOSAIC = 0; } -extern const u16 *const gUnknown_083EDE20; +static const u16 *const gUnknown_083EDE20; -void sub_8106370(void) +static void sub_8106370(void) { LoadPalette(gUnknown_083EDE20, (IndexOfSpritePaletteTag(6) << 4) + 0x100, 0x20); } -void sub_810639C(void) +static void sub_810639C(void) { eSlotMachine->win0h = 0xf0; eSlotMachine->win0v = 0xa0; @@ -4008,12 +4004,11 @@ void sub_810639C(void) eSlotMachine->winOut = 0x3f; } -extern const u8 gSlotMachineReelTimeLights_Gfx[]; -extern const u8 gUnknown_083EDE8C[]; -const struct SpriteSheet gUnknown_083EDC2C[]; -extern const struct SpritePalette gSlotMachineSpritePalettes[]; +static const u8 gUnknown_083EDE8C[]; +static const struct SpriteSheet gUnknown_083EDC2C[]; +static const struct SpritePalette gSlotMachineSpritePalettes[]; -void sub_81063C0(void) +static void sub_81063C0(void) { sub_8106404(); LZDecompressWram(gSlotMachineReelTimeLights_Gfx, ewram10000); @@ -4022,10 +4017,10 @@ void sub_81063C0(void) LoadSpritePalettes(gSlotMachineSpritePalettes); } -const u8 *const gUnknown_083EDCE4; -const struct SpriteSheet gUnknown_083EDCDC; +static const u8 *const gUnknown_083EDCE4; +static const struct SpriteSheet gUnknown_083EDCDC; -void sub_8106404(void) +static void sub_8106404(void) { u8 *dest = ewram10000; u8 i = 0; @@ -4068,7 +4063,7 @@ static void sub_8106448(void) { LoadPalette(gPalette_83EDE24, 208, 32); } -void sub_81064B8(void) { +static void sub_81064B8(void) { CpuCopy16(gUnknown_08E95AB8, BG_SCREEN_ADDR(29), 20 * 32 * 2); LoadSlotMachineWheelOverlay(); } @@ -4099,7 +4094,7 @@ static void LoadSlotMachineWheelOverlay(void) { } } -void sub_81065A8(s16 arg0, u16 arg1, u16 arg2, u16 arg3, u16 arg4) { +static void sub_81065A8(s16 arg0, u16 arg1, u16 arg2, u16 arg3, u16 arg4) { u16 *vram = BG_SCREEN_ADDR(29); vram[15 * 32 + arg0] = arg1; @@ -4108,7 +4103,7 @@ void sub_81065A8(s16 arg0, u16 arg1, u16 arg2, u16 arg3, u16 arg4) { vram[16 * 32 + 1 + arg0] = arg4; } -void sub_81065DC(void) { +static void sub_81065DC(void) { s16 y, x; u16 *screen; @@ -4124,23 +4119,23 @@ void sub_81065DC(void) { } } -const u8 gUnknown_083ECCB2[][21] = { +static const u8 gUnknown_083ECCB2[][21] = { {0, 4, 2, 6, 5, 3, 1, 3, 4, 5, 6, 2, 0, 5, 3, 6, 2, 1, 5, 3, 6}, {0, 4, 6, 3, 2, 4, 6, 5, 5, 3, 1, 3, 6, 4, 2, 3, 6, 4, 3, 6, 4}, {0, 5, 1, 6, 3, 2, 6, 3, 5, 2, 6, 3, 2, 5, 6, 3, 2, 5, 6, 3, 4} }; -const u8 gUnknown_083ECCF1[] = { +static const u8 gUnknown_083ECCF1[] = { 1, 0, 5, 4, 3, 2 }; -const s16 gUnknown_083ECCF8[][2] = { +static const s16 gUnknown_083ECCF8[][2] = { {0, 6}, {0, 10}, {0, 2} }; -const u8 gUnknown_083ECD04[][3] = { +static const u8 gUnknown_083ECD04[][3] = { {1, 1, 12}, {1, 1, 14}, {2, 2, 14}, @@ -4149,13 +4144,13 @@ const u8 gUnknown_083ECD04[][3] = { {3, 3, 16} }; -const u8 gUnknown_083ECD16[][6] = { +static const u8 gUnknown_083ECD16[][6] = { {25, 25, 30, 40, 40, 50}, {25, 25, 30, 30, 35, 35}, {25, 25, 30, 25, 25, 30} }; -const u8 gUnknown_083ECD28[][6] = { +static const u8 gUnknown_083ECD28[][6] = { {20, 25, 25, 20, 25, 25}, {12, 15, 15, 18, 19, 22}, {25, 25, 25, 30, 30, 40}, @@ -4163,7 +4158,7 @@ const u8 gUnknown_083ECD28[][6] = { {40, 40, 35, 35, 40, 40} }; -const u8 gUnknown_083ECD46[][17] = { +static const u8 gUnknown_083ECD46[][17] = { {243, 243, 243, 80, 80, 80, 80, 40, 40, 40, 40, 40, 40, 5, 5, 5, 5}, { 5, 5, 5, 150, 150, 150, 150, 130, 130, 130, 130, 130, 130, 100, 100, 100, 5}, { 4, 4, 4, 20, 20, 20, 20, 80, 80, 80, 80, 80, 80, 100, 100, 100, 40}, @@ -4172,7 +4167,7 @@ const u8 gUnknown_083ECD46[][17] = { { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6} }; -const u8 gUnknown_083ECDAC[][17] = { +static const u8 gUnknown_083ECDAC[][17] = { { 243, 243, 243, 200, 200, 200, 200, 160, 160, 160, 160, 160, 160, 70, 70, 70, 5}, { 5, 5, 5, 25, 25, 25, 25, 5, 5, 5, 5, 5, 5, 2, 2, 2, 6}, { 4, 4, 4, 25, 25, 25, 25, 30, 30, 30, 30, 30, 30, 40, 40, 40, 35}, @@ -4181,11 +4176,11 @@ const u8 gUnknown_083ECDAC[][17] = { { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 4, 4, 60} }; -const u16 gUnknown_083ECE12[] = { +static const u16 gUnknown_083ECE12[] = { 0x80, 0xaf, 0xc8, 0xe1, 0x100 }; -const u16 gUnknown_083ECE1C[][2] = { +static const u16 gUnknown_083ECE1C[][2] = { {10, 5}, {10, 10}, {10, 15}, @@ -4193,36 +4188,36 @@ const u16 gUnknown_083ECE1C[][2] = { {10, 35} }; -const u16 gUnknown_083ECE30[] = { +static const u16 gUnknown_083ECE30[] = { 0, 5, 10, 15, 20 }; -const u8 gUnknown_083ECE3A[] = { +static const u8 gUnknown_083ECE3A[] = { 6, 4, 3, 2, 5, 0, 0, 0 }; -const u16 gUnknown_083ECE42[] = { +static const u16 gUnknown_083ECE42[] = { 0x80, 0x20, 0x40 }; -const u16 gUnknown_083ECE48[] = { +static const u16 gUnknown_083ECE48[] = { 0x10, 0x08, 0x04, 0x02, 0x01 }; -const u8 gUnknown_083ECE52[] = { +static const u8 gUnknown_083ECE52[] = { 7, 8, 4, 3, 0, 5, 2 }; -const u16 gUnknown_083ECE5A[] = { +static const u16 gUnknown_083ECE5A[] = { 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x100 }; -const u16 gUnknown_083ECE6C[] = { +static const u16 gUnknown_083ECE6C[] = { 2, 4, 0, 6, 12, 3, 90, 300, 300 }; -const s16 gUnknown_083ECE7E[][2] = { +static const s16 gUnknown_083ECE7E[][2] = { { 0xd0, 0x38}, { 0xb8, 0x00}, { 0xc8, 0x08}, @@ -4260,7 +4255,7 @@ const s16 gUnknown_083ECE7E[][2] = { { 0x00, 0x00} }; -const SpriteCallback gUnknown_083ECF0C[] = { +static const SpriteCallback gUnknown_083ECF0C[] = { sub_8105C64, sub_8105F54, sub_8105F54, @@ -4363,7 +4358,7 @@ static const struct UnkStruct1 Unknown_83ED020[] = { {255, 0, 0} }; -const struct UnkStruct1 *const gUnknown_083ED048[] = { +static const struct UnkStruct1 *const gUnknown_083ED048[] = { Unknown_83ECF98, Unknown_83ECFA8, Unknown_83ECFC4, @@ -4373,7 +4368,7 @@ const struct UnkStruct1 *const gUnknown_083ED048[] = { Unknown_83ECFF8 }; -void (*const gUnknown_083ED064[])(void) = { +static void (*const gUnknown_083ED064[])(void) = { sub_810639C, sub_8106364, sub_8106370, @@ -4384,7 +4379,7 @@ void (*const gUnknown_083ED064[])(void) = { }; -const struct OamData gOamData_83ED080 = { +static const struct OamData gOamData_83ED080 = { .y = 0x0, .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, @@ -4400,7 +4395,7 @@ const struct OamData gOamData_83ED080 = { .affineParam = 0 }; -const struct OamData gOamData_83ED088 = { +static const struct OamData gOamData_83ED088 = { .y = 0x0, .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, @@ -4416,7 +4411,7 @@ const struct OamData gOamData_83ED088 = { .affineParam = 0 }; -const struct OamData gOamData_83ED090 = { +static const struct OamData gOamData_83ED090 = { .y = 0x0, .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, @@ -4432,7 +4427,7 @@ const struct OamData gOamData_83ED090 = { .affineParam = 0 }; -const struct OamData gOamData_83ED098 = { +static const struct OamData gOamData_83ED098 = { .y = 0x0, .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, @@ -4448,7 +4443,7 @@ const struct OamData gOamData_83ED098 = { .affineParam = 0 }; -const struct OamData gOamData_83ED0A0 = { +static const struct OamData gOamData_83ED0A0 = { .y = 0x0, .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, @@ -4464,7 +4459,7 @@ const struct OamData gOamData_83ED0A0 = { .affineParam = 0 }; -const struct OamData gOamData_83ED0A8 = { +static const struct OamData gOamData_83ED0A8 = { .y = 0x0, .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, @@ -4480,7 +4475,7 @@ const struct OamData gOamData_83ED0A8 = { .affineParam = 0 }; -const struct OamData gOamData_83ED0B0 = { +static const struct OamData gOamData_83ED0B0 = { .y = 0x0, .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, @@ -4496,7 +4491,7 @@ const struct OamData gOamData_83ED0B0 = { .affineParam = 0 }; -const struct OamData gOamData_83ED0B8 = { +static const struct OamData gOamData_83ED0B8 = { .y = 0x0, .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, @@ -4512,7 +4507,7 @@ const struct OamData gOamData_83ED0B8 = { .affineParam = 0 }; -const struct SpriteFrameImage gSpriteImageTable_83ED0C0[] = { +static const struct SpriteFrameImage gSpriteImageTable_83ED0C0[] = { {ewram13200 + 0x0000, 0x800}, {ewram13200 + 0x0800, 0x800}, {ewram13200 + 0x1000, 0x800}, @@ -4520,19 +4515,19 @@ const struct SpriteFrameImage gSpriteImageTable_83ED0C0[] = { {ewram13200 + 0x2000, 0x800} }; -const struct SpriteFrameImage gSpriteImageTable_83ED0E8[] = { +static const struct SpriteFrameImage gSpriteImageTable_83ED0E8[] = { {ewram13200 + 0x2800, 0x300} }; -const struct SpriteFrameImage gSpriteImageTable_83ED0F0[] = { +static const struct SpriteFrameImage gSpriteImageTable_83ED0F0[] = { {ewram13200 + 0x2B00, 0x500} }; -const struct SpriteFrameImage gSpriteImageTable_83ED0F8[] = { +static const struct SpriteFrameImage gSpriteImageTable_83ED0F8[] = { {ewram13200 + 0x3000, 0x600} }; -const struct SpriteFrameImage gSpriteImageTable_83ED100[] = { +static const struct SpriteFrameImage gSpriteImageTable_83ED100[] = { {gSpriteImage_8E988E8, 0x80}, {gSpriteImage_8E98968, 0x80}, {gSpriteImage_8E989E8, 0x80}, @@ -4541,83 +4536,83 @@ const struct SpriteFrameImage gSpriteImageTable_83ED100[] = { {gSpriteImage_8E98B68, 0x80} }; -const struct SpriteFrameImage gSpriteImageTable_83ED130[] = { +static const struct SpriteFrameImage gSpriteImageTable_83ED130[] = { {gSpriteImage_8E991E8, 0x200} }; -const struct SpriteFrameImage gSpriteImageTable_83ED138[] = { +static const struct SpriteFrameImage gSpriteImageTable_83ED138[] = { {gSpriteImage_8E99808, 0x40} }; -const struct SpriteFrameImage gSpriteImageTable_83ED140[] = { +static const struct SpriteFrameImage gSpriteImageTable_83ED140[] = { {gSpriteImage_8E98BE8, 0x100}, {gSpriteImage_8E98CE8, 0x100} }; -const struct SpriteFrameImage gSpriteImageTable_83ED150[] = { +static const struct SpriteFrameImage gSpriteImageTable_83ED150[] = { {gSpriteImage_8E993E8, 0x400} }; -const struct SpriteFrameImage gSpriteImageTable_83ED158[] = { +static const struct SpriteFrameImage gSpriteImageTable_83ED158[] = { {gSpriteImage_8E98DE8, 0x200}, {gSpriteImage_8E98FE8, 0x200} }; -const struct SpriteFrameImage gSpriteImageTable_83ED168[] = { +static const struct SpriteFrameImage gSpriteImageTable_83ED168[] = { {gSpriteImage_8E98848, 0x20} }; -const struct SpriteFrameImage gSpriteImageTable_83ED170[] = { +static const struct SpriteFrameImage gSpriteImageTable_83ED170[] = { {gSpriteImage_8E98868, 0x80} }; -const struct SpriteFrameImage gSpriteImageTable_83ED178[] = { +static const struct SpriteFrameImage gSpriteImageTable_83ED178[] = { {ewram10000 + 0x0000, 0x600} }; -const struct SpriteFrameImage gSpriteImageTable_83ED180[] = { +static const struct SpriteFrameImage gSpriteImageTable_83ED180[] = { {ewram10000 + 0x0600, 0x200} }; -const struct SpriteFrameImage gSpriteImageTable_83ED188[] = { +static const struct SpriteFrameImage gSpriteImageTable_83ED188[] = { {ewram10000 + 0x0800, 0x200} }; -const struct SpriteFrameImage gSpriteImageTable_83ED190[] = { +static const struct SpriteFrameImage gSpriteImageTable_83ED190[] = { {ewram10000 + 0x0A00, 0x200} }; -const struct SpriteFrameImage gSpriteImageTable_83ED198[] = { +static const struct SpriteFrameImage gSpriteImageTable_83ED198[] = { {ewram10000 + 0x0C00, 0x300} }; -const struct SpriteFrameImage gSpriteImageTable_83ED1A0[] = { +static const struct SpriteFrameImage gSpriteImageTable_83ED1A0[] = { {ewram10000 + 0x1000, 0x400} }; -const struct SpriteFrameImage gSpriteImageTable_83ED1A8[] = { +static const struct SpriteFrameImage gSpriteImageTable_83ED1A8[] = { {ewram10000 + 0x1400, 0x200} }; -const struct SpriteFrameImage gSpriteImageTable_83ED1B0[] = { +static const struct SpriteFrameImage gSpriteImageTable_83ED1B0[] = { {ewram10000 + 0x1600, 0x300} }; -const struct SpriteFrameImage gSpriteImageTable_83ED1B8[] = { +static const struct SpriteFrameImage gSpriteImageTable_83ED1B8[] = { {ewram10000 + 0x1900, 0x300} }; -const struct SpriteFrameImage gSpriteImageTable_83ED1C0[] = { +static const struct SpriteFrameImage gSpriteImageTable_83ED1C0[] = { {ewram10000 + 0x1C00, 0x200}, {ewram10000 + 0x1E00, 0x200}, {ewram10000 + 0x1E00, 0x200} // is this a typo? }; -const struct SpriteFrameImage gSpriteImageTable_83ED1D8[] = { +static const struct SpriteFrameImage gSpriteImageTable_83ED1D8[] = { {ewram10000 + 0x2000, 0x280} }; -const struct SpriteFrameImage gSpriteImageTable_83ED1E0[] = { +static const struct SpriteFrameImage gSpriteImageTable_83ED1E0[] = { {ewram10000 + 0x2280, 0x80}, {ewram10000 + 0x2300, 0x80}, {ewram10000 + 0x2380, 0x80}, @@ -4625,124 +4620,124 @@ const struct SpriteFrameImage gSpriteImageTable_83ED1E0[] = { {ewram10000 + 0x2480, 0x80} }; -const struct SpriteFrameImage gSpriteImageTable_83ED208[] = { +static const struct SpriteFrameImage gSpriteImageTable_83ED208[] = { {ewram10000 + 0x2600, 0x480}, {ewram10000 + 0x2A80, 0x480} }; -const struct SpriteFrameImage gSpriteImageTable_83ED218[] = { +static const struct SpriteFrameImage gSpriteImageTable_83ED218[] = { {ewram10000 + 0x2F00, 0x180}, {ewram10000 + 0x3080, 0x180} }; -const struct SpriteFrameImage gSpriteImageTable_83ED228[] = { +static const struct SpriteFrameImage gSpriteImageTable_83ED228[] = { {gSpriteImage_8E98828, 0x20} }; -const union AnimCmd gSpriteAnim_83ED230[] = { +static const union AnimCmd gSpriteAnim_83ED230[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END }; -const union AnimCmd gSpriteAnim_83ED238[] = { +static const union AnimCmd gSpriteAnim_83ED238[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_JUMP(0) }; -const union AnimCmd gSpriteAnim_83ED240[] = { +static const union AnimCmd gSpriteAnim_83ED240[] = { ANIMCMD_FRAME(0, 16), ANIMCMD_END }; -const union AnimCmd gSpriteAnim_83ED248[] = { +static const union AnimCmd gSpriteAnim_83ED248[] = { ANIMCMD_FRAME(1, 16), ANIMCMD_FRAME(0, 16), ANIMCMD_JUMP(0) }; -const union AnimCmd gSpriteAnim_83ED254[] = { +static const union AnimCmd gSpriteAnim_83ED254[] = { ANIMCMD_FRAME(1, 8), ANIMCMD_FRAME(0, 8), ANIMCMD_JUMP(0) }; -const union AnimCmd gSpriteAnim_83ED260[] = { +static const union AnimCmd gSpriteAnim_83ED260[] = { ANIMCMD_FRAME(1, 4), ANIMCMD_FRAME(0, 4), ANIMCMD_JUMP(0) }; -const union AnimCmd gSpriteAnim_83ED26C[] = { +static const union AnimCmd gSpriteAnim_83ED26C[] = { ANIMCMD_FRAME(2, 32), ANIMCMD_FRAME(3, 32), ANIMCMD_JUMP(0) }; -const union AnimCmd gSpriteAnim_83ED278[] = { +static const union AnimCmd gSpriteAnim_83ED278[] = { ANIMCMD_FRAME(4, 1), ANIMCMD_END }; -const union AnimCmd gSpriteAnim_83ED280[] = { +static const union AnimCmd gSpriteAnim_83ED280[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END }; -const union AnimCmd gSpriteAnim_83ED288[] = { +static const union AnimCmd gSpriteAnim_83ED288[] = { ANIMCMD_FRAME(1, 1), ANIMCMD_END }; -const union AnimCmd gSpriteAnim_83ED290[] = { +static const union AnimCmd gSpriteAnim_83ED290[] = { ANIMCMD_FRAME(2, 1), ANIMCMD_END }; -const union AnimCmd gSpriteAnim_83ED298[] = { +static const union AnimCmd gSpriteAnim_83ED298[] = { ANIMCMD_FRAME(3, 1), ANIMCMD_END }; -const union AnimCmd gSpriteAnim_83ED2A0[] = { +static const union AnimCmd gSpriteAnim_83ED2A0[] = { ANIMCMD_FRAME(4, 1), ANIMCMD_END }; -const union AnimCmd gSpriteAnim_83ED2A8[] = { +static const union AnimCmd gSpriteAnim_83ED2A8[] = { ANIMCMD_FRAME(5, 1), ANIMCMD_END }; -const union AnimCmd gSpriteAnim_83ED2B0[] = { +static const union AnimCmd gSpriteAnim_83ED2B0[] = { ANIMCMD_FRAME(0, 4), ANIMCMD_FRAME(1, 4), ANIMCMD_JUMP(0) }; -const union AnimCmd gSpriteAnim_83ED2BC[] = { +static const union AnimCmd gSpriteAnim_83ED2BC[] = { ANIMCMD_FRAME(0, 16), ANIMCMD_FRAME(1, 16), ANIMCMD_JUMP(0) }; -const union AnimCmd gSpriteAnim_83ED2C8[] = { +static const union AnimCmd gSpriteAnim_83ED2C8[] = { ANIMCMD_FRAME(0, 30), ANIMCMD_FRAME(1, 30), ANIMCMD_JUMP(0) }; -const union AnimCmd gSpriteAnim_83ED2D4[] = { +static const union AnimCmd gSpriteAnim_83ED2D4[] = { ANIMCMD_FRAME(1, 1), ANIMCMD_END }; -const union AnimCmd gSpriteAnim_83ED2DC[] = { +static const union AnimCmd gSpriteAnim_83ED2DC[] = { ANIMCMD_FRAME(0, 30), ANIMCMD_FRAME(1, 30), ANIMCMD_JUMP(0) }; -const union AnimCmd gSpriteAnim_83ED2E8[] = { +static const union AnimCmd gSpriteAnim_83ED2E8[] = { ANIMCMD_FRAME(0, 16), ANIMCMD_FRAME(1, 16), ANIMCMD_FRAME(0, 16), @@ -4750,45 +4745,45 @@ const union AnimCmd gSpriteAnim_83ED2E8[] = { ANIMCMD_JUMP(0) }; -const union AnimCmd gSpriteAnim_83ED2FC[] = { +static const union AnimCmd gSpriteAnim_83ED2FC[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END }; -const union AnimCmd gSpriteAnim_83ED304[] = { +static const union AnimCmd gSpriteAnim_83ED304[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END }; -const union AnimCmd gSpriteAnim_83ED30C[] = { +static const union AnimCmd gSpriteAnim_83ED30C[] = { ANIMCMD_FRAME(1, 1), ANIMCMD_END }; -const union AnimCmd gSpriteAnim_83ED314[] = { +static const union AnimCmd gSpriteAnim_83ED314[] = { ANIMCMD_FRAME(2, 1), ANIMCMD_END }; -const union AnimCmd gSpriteAnim_83ED31C[] = { +static const union AnimCmd gSpriteAnim_83ED31C[] = { ANIMCMD_FRAME(3, 1), ANIMCMD_END }; -const union AnimCmd gSpriteAnim_83ED324[] = { +static const union AnimCmd gSpriteAnim_83ED324[] = { ANIMCMD_FRAME(4, 1), ANIMCMD_END }; -const union AnimCmd *const gSpriteAnimTable_83ED32C[] = { +static const union AnimCmd *const gSpriteAnimTable_83ED32C[] = { gSpriteAnim_83ED230 }; -const union AnimCmd *const gSpriteAnimTable_83ED330[] = { +static const union AnimCmd *const gSpriteAnimTable_83ED330[] = { gSpriteAnim_83ED238 }; -const union AnimCmd *const gSpriteAnimTable_83ED334[] = { +static const union AnimCmd *const gSpriteAnimTable_83ED334[] = { gSpriteAnim_83ED240, gSpriteAnim_83ED248, gSpriteAnim_83ED254, @@ -4797,7 +4792,7 @@ const union AnimCmd *const gSpriteAnimTable_83ED334[] = { gSpriteAnim_83ED278 }; -const union AnimCmd *const gSpriteAnimTable_83ED34C[] = { +static const union AnimCmd *const gSpriteAnimTable_83ED34C[] = { gSpriteAnim_83ED280, gSpriteAnim_83ED288, gSpriteAnim_83ED290, @@ -4806,29 +4801,29 @@ const union AnimCmd *const gSpriteAnimTable_83ED34C[] = { gSpriteAnim_83ED2A8 }; -const union AnimCmd *const gSpriteAnimTable_83ED364[] = { +static const union AnimCmd *const gSpriteAnimTable_83ED364[] = { gSpriteAnim_83ED2B0 }; -const union AnimCmd *const gSpriteAnimTable_83ED368[] = { +static const union AnimCmd *const gSpriteAnimTable_83ED368[] = { gSpriteAnim_83ED2BC }; -const union AnimCmd *const gSpriteAnimTable_83ED36C[] = { +static const union AnimCmd *const gSpriteAnimTable_83ED36C[] = { gSpriteAnim_83ED2C8, gSpriteAnim_83ED2D4 }; -const union AnimCmd *const gSpriteAnimTable_83ED374[] = { +static const union AnimCmd *const gSpriteAnimTable_83ED374[] = { gSpriteAnim_83ED2DC }; -const union AnimCmd *const gSpriteAnimTable_83ED378[] = { +static const union AnimCmd *const gSpriteAnimTable_83ED378[] = { gSpriteAnim_83ED2E8, gSpriteAnim_83ED2FC }; -const union AnimCmd *const gSpriteAnimTable_83ED380[] = { +static const union AnimCmd *const gSpriteAnimTable_83ED380[] = { gSpriteAnim_83ED304, gSpriteAnim_83ED30C, gSpriteAnim_83ED314, @@ -4836,7 +4831,7 @@ const union AnimCmd *const gSpriteAnimTable_83ED380[] = { gSpriteAnim_83ED324 }; -const union AffineAnimCmd gSpriteAffineAnim_83ED394[] = { +static const union AffineAnimCmd gSpriteAffineAnim_83ED394[] = { AFFINEANIMCMD_FRAME(0x10, 0x10, 0, 0), AFFINEANIMCMD_LOOP(0), AFFINEANIMCMD_FRAME(0x1, 0x1, 0, 1), @@ -4844,11 +4839,11 @@ const union AffineAnimCmd gSpriteAffineAnim_83ED394[] = { AFFINEANIMCMD_END }; -const union AffineAnimCmd *const gSpriteAffineAnimTable_83ED3BC[] = { +static const union AffineAnimCmd *const gSpriteAffineAnimTable_83ED3BC[] = { gSpriteAffineAnim_83ED394 }; -const union AffineAnimCmd gSpriteAffineAnim_83ED3C0[] = { +static const union AffineAnimCmd gSpriteAffineAnim_83ED3C0[] = { AFFINEANIMCMD_FRAME(0x0, 0x0, 8, 32), AFFINEANIMCMD_FRAME(0x0, 0x0, 6, 32), AFFINEANIMCMD_FRAME(0x0, 0x0, 4, 16), @@ -4861,142 +4856,142 @@ const union AffineAnimCmd gSpriteAffineAnim_83ED3C0[] = { AFFINEANIMCMD_END }; -const union AffineAnimCmd *const gSpriteAffineAnimTable_83ED410[] = { +static const union AffineAnimCmd *const gSpriteAffineAnimTable_83ED410[] = { gSpriteAffineAnim_83ED3C0 }; -const struct SpriteTemplate gSpriteTemplate_83ED414 = { +static const struct SpriteTemplate gSpriteTemplate_83ED414 = { 0, 0, &gOamData_83ED0A0, gSpriteAnimTable_83ED32C, NULL, gDummySpriteAffineAnimTable, sub_8104F18 }; -const struct SpriteTemplate gSpriteTemplate_83ED42C = { +static const struct SpriteTemplate gSpriteTemplate_83ED42C = { 7, 4, &gOamData_83ED088, gSpriteAnimTable_83ED32C, NULL, gDummySpriteAffineAnimTable, sub_810506C }; -const struct SpriteTemplate gSpriteTemplate_83ED444 = { +static const struct SpriteTemplate gSpriteTemplate_83ED444 = { 17, 0, &gOamData_83ED0B8, gSpriteAnimTable_83ED32C, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy }; -const struct SpriteTemplate gSpriteTemplate_83ED45C = { +static const struct SpriteTemplate gSpriteTemplate_83ED45C = { 0xFFFF, 1, &gOamData_83ED0B8, gSpriteAnimTable_83ED334, gSpriteImageTable_83ED0C0, gDummySpriteAffineAnimTable, sub_8105170 }; -const struct SpriteTemplate gSpriteTemplate_83ED474 = { +static const struct SpriteTemplate gSpriteTemplate_83ED474 = { 0xFFFF, 2, &gOamData_83ED088, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED0E8, gDummySpriteAffineAnimTable, SpriteCallbackDummy }; -const struct SpriteTemplate gSpriteTemplate_83ED48C = { +static const struct SpriteTemplate gSpriteTemplate_83ED48C = { 0xFFFF, 3, &gOamData_83ED088, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED0F0, gDummySpriteAffineAnimTable, SpriteCallbackDummy }; -const struct SpriteTemplate gSpriteTemplate_83ED4A4 = { +static const struct SpriteTemplate gSpriteTemplate_83ED4A4 = { 0xFFFF, 3, &gOamData_83ED088, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED0F8, gDummySpriteAffineAnimTable, SpriteCallbackDummy }; -const struct SpriteTemplate gSpriteTemplate_83ED4BC = { +static const struct SpriteTemplate gSpriteTemplate_83ED4BC = { 0xFFFF, 4, &gOamData_83ED090, gSpriteAnimTable_83ED34C, gSpriteImageTable_83ED100, gDummySpriteAffineAnimTable, sub_810535C }; -const struct SpriteTemplate gSpriteTemplate_83ED4D4 = { +static const struct SpriteTemplate gSpriteTemplate_83ED4D4 = { 0xFFFF, 4, &gOamData_83ED090, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED130, gDummySpriteAffineAnimTable, SpriteCallbackDummy }; -const struct SpriteTemplate gSpriteTemplate_83ED4EC = { +static const struct SpriteTemplate gSpriteTemplate_83ED4EC = { 0xFFFF, 4, &gOamData_83ED090, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED138, gDummySpriteAffineAnimTable, SpriteCallbackDummy }; -const struct SpriteTemplate gSpriteTemplate_83ED504 = { +static const struct SpriteTemplate gSpriteTemplate_83ED504 = { 0xFFFF, 4, &gOamData_83ED098, gSpriteAnimTable_83ED364, gSpriteImageTable_83ED140, gDummySpriteAffineAnimTable, sub_810562C }; -const struct SpriteTemplate gSpriteTemplate_83ED51C = { +static const struct SpriteTemplate gSpriteTemplate_83ED51C = { 0xFFFF, 7, &gOamData_83ED0A8, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED150, gDummySpriteAffineAnimTable, sub_8105784 }; -const struct SpriteTemplate gSpriteTemplate_83ED534 = { +static const struct SpriteTemplate gSpriteTemplate_83ED534 = { 0xFFFF, 5, &gOamData_83ED0A0, gSpriteAnimTable_83ED368, gSpriteImageTable_83ED158, gDummySpriteAffineAnimTable, sub_8105894 }; -const struct SpriteTemplate gSpriteTemplate_83ED54C = { +static const struct SpriteTemplate gSpriteTemplate_83ED54C = { 0xFFFF, 4, &gOamData_83ED080, gSpriteAnimTable_83ED330, gSpriteImageTable_83ED168, gDummySpriteAffineAnimTable, sub_810594C }; -const struct SpriteTemplate gSpriteTemplate_83ED564 = { +static const struct SpriteTemplate gSpriteTemplate_83ED564 = { 0xFFFF, 4, &gOamData_83ED090, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED170, gSpriteAffineAnimTable_83ED3BC, sub_8105A38 }; -const struct SpriteTemplate gSpriteTemplate_83ED57C = { +static const struct SpriteTemplate gSpriteTemplate_83ED57C = { 0xFFFF, 6, &gOamData_83ED080, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED178, gDummySpriteAffineAnimTable, SpriteCallbackDummy }; -const struct SpriteTemplate gSpriteTemplate_83ED594 = { +static const struct SpriteTemplate gSpriteTemplate_83ED594 = { 0xFFFF, 6, &gOamData_83ED080, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED180, gDummySpriteAffineAnimTable, SpriteCallbackDummy }; -const struct SpriteTemplate gSpriteTemplate_83ED5AC = { +static const struct SpriteTemplate gSpriteTemplate_83ED5AC = { 0xFFFF, 6, &gOamData_83ED080, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED188, gDummySpriteAffineAnimTable, SpriteCallbackDummy }; -const struct SpriteTemplate gSpriteTemplate_83ED5C4 = { +static const struct SpriteTemplate gSpriteTemplate_83ED5C4 = { 18, 6, &gOamData_83ED080, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED190, gDummySpriteAffineAnimTable, SpriteCallbackDummy }; -const struct SpriteTemplate gSpriteTemplate_83ED5DC = { +static const struct SpriteTemplate gSpriteTemplate_83ED5DC = { 0xFFFF, 6, &gOamData_83ED0B0, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED198, gDummySpriteAffineAnimTable, SpriteCallbackDummy }; -const struct SpriteTemplate gSpriteTemplate_83ED5F4 = { +static const struct SpriteTemplate gSpriteTemplate_83ED5F4 = { 0xFFFF, 6, &gOamData_83ED0B0, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED1A0, gDummySpriteAffineAnimTable, SpriteCallbackDummy }; -const struct SpriteTemplate gSpriteTemplate_83ED60C = { +static const struct SpriteTemplate gSpriteTemplate_83ED60C = { 19, 6, &gOamData_83ED080, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED1A8, gDummySpriteAffineAnimTable, SpriteCallbackDummy }; -const struct SpriteTemplate gSpriteTemplate_83ED624 = { +static const struct SpriteTemplate gSpriteTemplate_83ED624 = { 20, 6, &gOamData_83ED080, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED1B0, gDummySpriteAffineAnimTable, SpriteCallbackDummy }; -const struct SpriteTemplate gSpriteTemplate_83ED63C = { +static const struct SpriteTemplate gSpriteTemplate_83ED63C = { 21, 6, &gOamData_83ED080, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED1B8, gDummySpriteAffineAnimTable, SpriteCallbackDummy }; -const struct SpriteTemplate gSpriteTemplate_83ED654 = { +static const struct SpriteTemplate gSpriteTemplate_83ED654 = { 0xFFFF, 6, &gOamData_83ED0A0, gSpriteAnimTable_83ED36C, gSpriteImageTable_83ED1C0, gDummySpriteAffineAnimTable, SpriteCallbackDummy }; -const struct SpriteTemplate gSpriteTemplate_83ED66C = { +static const struct SpriteTemplate gSpriteTemplate_83ED66C = { 0xFFFF, 6, &gOamData_83ED080, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED1D8, gDummySpriteAffineAnimTable, SpriteCallbackDummy }; -const struct SpriteTemplate gSpriteTemplate_83ED684 = { +static const struct SpriteTemplate gSpriteTemplate_83ED684 = { 0xFFFF, 6, &gOamData_83ED090, gSpriteAnimTable_83ED380, gSpriteImageTable_83ED1E0, gDummySpriteAffineAnimTable, SpriteCallbackDummy }; -const struct SpriteTemplate gSpriteTemplate_83ED69C = { +static const struct SpriteTemplate gSpriteTemplate_83ED69C = { 0xFFFF, 6, &gOamData_83ED080, gSpriteAnimTable_83ED378, gSpriteImageTable_83ED208, gDummySpriteAffineAnimTable, SpriteCallbackDummy }; -const struct SpriteTemplate gSpriteTemplate_83ED6B4 = { +static const struct SpriteTemplate gSpriteTemplate_83ED6B4 = { 0xFFFF, 6, &gOamData_83ED080, gSpriteAnimTable_83ED374, gSpriteImageTable_83ED218, gDummySpriteAffineAnimTable, SpriteCallbackDummy }; -const struct SpriteTemplate gSpriteTemplate_83ED6CC = { +static const struct SpriteTemplate gSpriteTemplate_83ED6CC = { 0xFFFF, 4, &gOamData_83ED080, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED228, gSpriteAffineAnimTable_83ED410, sub_8105B70 }; -const struct Subsprite gSubspriteTable_83ED6E4[] = { +static const struct Subsprite gSubspriteTable_83ED6E4[] = { {-64, -64, ST_OAM_SQUARE, 3, 0x0, 3}, {0, -64, ST_OAM_SQUARE, 3, 0x0, 3}, {-64, 0, ST_OAM_SQUARE, 3, 0x0, 3}, {0, 0, ST_OAM_SQUARE, 3, 0x0, 3} }; -const struct SubspriteTable gSubspriteTables_83ED704[] = { +static const struct SubspriteTable gSubspriteTables_83ED704[] = { {4, gSubspriteTable_83ED6E4} }; -const struct Subsprite gSubspriteTable_83ED70C[] = { +static const struct Subsprite gSubspriteTable_83ED70C[] = { {-32, -12, ST_OAM_H_RECTANGLE, 1, 0x0, 1}, {0, -12, ST_OAM_H_RECTANGLE, 1, 0x4, 1}, {-32, -4, ST_OAM_H_RECTANGLE, 1, 0x8, 1}, @@ -5005,21 +5000,21 @@ const struct Subsprite gSubspriteTable_83ED70C[] = { {0, 4, ST_OAM_H_RECTANGLE, 1, 0x14, 1} }; -const struct SubspriteTable gSubspriteTables_83ED73C[] = { +static const struct SubspriteTable gSubspriteTables_83ED73C[] = { {6, gSubspriteTable_83ED70C} }; -const struct Subsprite gSubspriteTable_83ED744[] = { +static const struct Subsprite gSubspriteTable_83ED744[] = { {-32, -20, ST_OAM_H_RECTANGLE, 3, 0x0, 1}, {-32, 12, ST_OAM_H_RECTANGLE, 1, 0x20, 1}, {0, 12, ST_OAM_H_RECTANGLE, 1, 0x24, 1} }; -const struct SubspriteTable gSubspriteTables_83ED75C[] = { +static const struct SubspriteTable gSubspriteTables_83ED75C[] = { {3, gSubspriteTable_83ED744} }; -const struct Subsprite gSubspriteTable_83ED764[] = { +static const struct Subsprite gSubspriteTable_83ED764[] = { {-32, -24, ST_OAM_H_RECTANGLE, 3, 0x0, 1}, {-32, 8, ST_OAM_H_RECTANGLE, 1, 0x20, 1}, {0, 8, ST_OAM_H_RECTANGLE, 1, 0x24, 1}, @@ -5027,32 +5022,32 @@ const struct Subsprite gSubspriteTable_83ED764[] = { {0, 16, ST_OAM_H_RECTANGLE, 1, 0x2c, 1} }; -const struct SubspriteTable gSubspriteTables_83ED78C[] = { +static const struct SubspriteTable gSubspriteTables_83ED78C[] = { {5, gSubspriteTable_83ED764} }; -const struct Subsprite gSubspriteTable_83ED794[] = { +static const struct Subsprite gSubspriteTable_83ED794[] = { {-32, -8, ST_OAM_H_RECTANGLE, 1, 0x0, 1}, {0, -8, ST_OAM_H_RECTANGLE, 1, 0x4, 1}, {-32, 0, ST_OAM_H_RECTANGLE, 1, 0x8, 1}, {0, 0, ST_OAM_H_RECTANGLE, 1, 0xc, 1} }; -const struct SubspriteTable gSubspriteTables_83ED7B4[] = { +static const struct SubspriteTable gSubspriteTables_83ED7B4[] = { {4, gSubspriteTable_83ED794} }; -const struct Subsprite gSubspriteTable_83ED7BC[] = { +static const struct Subsprite gSubspriteTable_83ED7BC[] = { {-8, -12, ST_OAM_H_RECTANGLE, 0, 0x0, 1}, {-8, -4, ST_OAM_H_RECTANGLE, 0, 0x0, 1}, {-8, 4, ST_OAM_H_RECTANGLE, 0, 0x0, 1} }; -const struct SubspriteTable gSubspriteTables_83ED7D4[] = { +static const struct SubspriteTable gSubspriteTables_83ED7D4[] = { {3, gSubspriteTable_83ED7BC} }; -const struct Subsprite gSubspriteTable_83ED7DC[] = { +static const struct Subsprite gSubspriteTable_83ED7DC[] = { {-32, -24, ST_OAM_H_RECTANGLE, 3, 0x0, 3}, {-32, 8, ST_OAM_H_RECTANGLE, 1, 0x20, 3}, {0, 8, ST_OAM_H_RECTANGLE, 1, 0x24, 3}, @@ -5060,44 +5055,44 @@ const struct Subsprite gSubspriteTable_83ED7DC[] = { {0, 16, ST_OAM_H_RECTANGLE, 1, 0x2c, 3} }; -const struct SubspriteTable gSubspriteTables_83ED804[] = { +static const struct SubspriteTable gSubspriteTables_83ED804[] = { {5, gSubspriteTable_83ED7DC} }; -const struct Subsprite gSubspriteTable_83ED80C[] = { +static const struct Subsprite gSubspriteTable_83ED80C[] = { {-32, -8, ST_OAM_H_RECTANGLE, 1, 0x0, 3}, {0, -8, ST_OAM_H_RECTANGLE, 1, 0x4, 3}, {-32, 0, ST_OAM_H_RECTANGLE, 1, 0x8, 3}, {0, 0, ST_OAM_H_RECTANGLE, 1, 0xc, 3} }; -const struct SubspriteTable gSubspriteTables_83ED82C[] = { +static const struct SubspriteTable gSubspriteTables_83ED82C[] = { {4, gSubspriteTable_83ED80C} }; -const struct Subsprite gSubspriteTable_83ED834[] = { +static const struct Subsprite gSubspriteTable_83ED834[] = { {-32, -8, ST_OAM_H_RECTANGLE, 1, 0x0, 3}, {0, -8, ST_OAM_H_RECTANGLE, 1, 0x4, 3}, {-32, 0, ST_OAM_H_RECTANGLE, 1, 0x8, 3}, {0, 0, ST_OAM_H_RECTANGLE, 1, 0xc, 3} }; -const struct SubspriteTable gSubspriteTables_83ED854[] = { +static const struct SubspriteTable gSubspriteTables_83ED854[] = { {4, gSubspriteTable_83ED834} }; -const struct Subsprite gSubspriteTable_83ED85C[] = { +static const struct Subsprite gSubspriteTable_83ED85C[] = { {-32, -8, ST_OAM_H_RECTANGLE, 1, 0x0, 3}, {0, -8, ST_OAM_H_RECTANGLE, 1, 0x4, 3}, {-32, 0, ST_OAM_H_RECTANGLE, 1, 0x8, 3}, {0, 0, ST_OAM_H_RECTANGLE, 1, 0xc, 3} }; -const struct SubspriteTable gSubspriteTables_83ED87C[] = { +static const struct SubspriteTable gSubspriteTables_83ED87C[] = { {4, gSubspriteTable_83ED85C} }; -const struct Subsprite gSubspriteTable_83ED884[] = { +static const struct Subsprite gSubspriteTable_83ED884[] = { {-32, -12, ST_OAM_H_RECTANGLE, 1, 0x0, 3}, {0, -12, ST_OAM_H_RECTANGLE, 1, 0x4, 3}, {-32, -4, ST_OAM_H_RECTANGLE, 1, 0x8, 3}, @@ -5106,24 +5101,24 @@ const struct Subsprite gSubspriteTable_83ED884[] = { {0, 4, ST_OAM_H_RECTANGLE, 1, 0x14, 3} }; -const struct SubspriteTable gSubspriteTables_83ED8B4[] = { +static const struct SubspriteTable gSubspriteTables_83ED8B4[] = { {6, gSubspriteTable_83ED884} }; -const struct Subsprite gSubspriteTable_83ED8BC[] = { +static const struct Subsprite gSubspriteTable_83ED8BC[] = { {-16, -16, ST_OAM_SQUARE, 2, 0x0, 3} }; -const struct Subsprite gSubspriteTable_83ED8C4[] = { +static const struct Subsprite gSubspriteTable_83ED8C4[] = { {-8, -8, ST_OAM_SQUARE, 1, 0x10, 3} }; -const struct SubspriteTable gSubspriteTables_83ED8CC[] = { +static const struct SubspriteTable gSubspriteTables_83ED8CC[] = { {1, gSubspriteTable_83ED8BC}, {1, gSubspriteTable_83ED8C4} }; -const struct Subsprite gSubspriteTable_83ED8DC[] = { +static const struct Subsprite gSubspriteTable_83ED8DC[] = { {-24, -24, ST_OAM_H_RECTANGLE, 1, 0x0, 3}, {8, -24, ST_OAM_H_RECTANGLE, 0, 0x4, 3}, {-24, -16, ST_OAM_H_RECTANGLE, 1, 0x6, 3}, @@ -5138,102 +5133,102 @@ const struct Subsprite gSubspriteTable_83ED8DC[] = { {8, 16, ST_OAM_H_RECTANGLE, 0, 0x22, 3} }; -const struct SubspriteTable gSubspriteTables_83ED93C[] = { +static const struct SubspriteTable gSubspriteTables_83ED93C[] = { 12, gSubspriteTable_83ED8DC }; -const struct Subsprite gSubspriteTable_83ED944[] = { +static const struct Subsprite gSubspriteTable_83ED944[] = { {-16, -12, ST_OAM_H_RECTANGLE, 2, 0x0, 3}, {-16, 4, ST_OAM_H_RECTANGLE, 0, 0x8, 3}, {0, 4, ST_OAM_H_RECTANGLE, 0, 0xa, 3} }; -const struct SubspriteTable gSubspriteTables_83ED95C[] = { +static const struct SubspriteTable gSubspriteTables_83ED95C[] = { {3, gSubspriteTable_83ED944} }; -const struct Subsprite gSubspriteTable_83ED964[] = { +static const struct Subsprite gSubspriteTable_83ED964[] = { {-8, -8, ST_OAM_H_RECTANGLE, 0, 0x0, 3}, {-8, 0, ST_OAM_H_RECTANGLE, 0, 0x8, 3} }; -const struct SubspriteTable gSubspriteTables_83ED974[] = { +static const struct SubspriteTable gSubspriteTables_83ED974[] = { {2, gSubspriteTable_83ED964} }; -const struct Subsprite gSubspriteTable_83ED97C[] = { +static const struct Subsprite gSubspriteTable_83ED97C[] = { {-8, -8, ST_OAM_H_RECTANGLE, 0, 0x2, 3}, {-8, 0, ST_OAM_H_RECTANGLE, 0, 0xa, 3} }; -const struct SubspriteTable gSubspriteTables_83ED98C[] = { +static const struct SubspriteTable gSubspriteTables_83ED98C[] = { {2, gSubspriteTable_83ED97C} }; -const struct Subsprite gSubspriteTable_83ED994[] = { +static const struct Subsprite gSubspriteTable_83ED994[] = { {-8, -8, ST_OAM_H_RECTANGLE, 0, 0x4, 3}, {-8, 0, ST_OAM_H_RECTANGLE, 0, 0xc, 3} }; -const struct SubspriteTable gSubspriteTables_83ED9A4[] = { +static const struct SubspriteTable gSubspriteTables_83ED9A4[] = { {2, gSubspriteTable_83ED994} }; -const struct Subsprite gSubspriteTable_83ED9AC[] = { +static const struct Subsprite gSubspriteTable_83ED9AC[] = { {-8, -8, ST_OAM_H_RECTANGLE, 0, 0x6, 3}, {-8, 0, ST_OAM_H_RECTANGLE, 0, 0xe, 3} }; -const struct SubspriteTable gSubspriteTables_83ED9BC[] = { +static const struct SubspriteTable gSubspriteTables_83ED9BC[] = { {2, gSubspriteTable_83ED9AC} }; -const struct Subsprite gSubspriteTable_83ED9C4[] = { +static const struct Subsprite gSubspriteTable_83ED9C4[] = { {-8, -8, ST_OAM_H_RECTANGLE, 0, 0x0, 3}, {-8, 0, ST_OAM_H_RECTANGLE, 0, 0x8, 3} }; -const struct SubspriteTable gSubspriteTables_83ED9D4[] = { +static const struct SubspriteTable gSubspriteTables_83ED9D4[] = { {2, gSubspriteTable_83ED9C4} }; -const struct Subsprite gSubspriteTable_83ED9DC[] = { +static const struct Subsprite gSubspriteTable_83ED9DC[] = { {-4, -8, ST_OAM_SQUARE, 0, 0x2, 3}, {-4, 0, ST_OAM_SQUARE, 0, 0xa, 3} }; -const struct SubspriteTable gSubspriteTables_83ED9EC[] = { +static const struct SubspriteTable gSubspriteTables_83ED9EC[] = { {2, gSubspriteTable_83ED9DC} }; -const struct Subsprite gSubspriteTable_83ED9F4[] = { +static const struct Subsprite gSubspriteTable_83ED9F4[] = { {-8, -8, ST_OAM_H_RECTANGLE, 0, 0x3, 3}, {-8, 0, ST_OAM_H_RECTANGLE, 0, 0xb, 3} }; -const struct SubspriteTable gSubspriteTables_83EDA04[] = { +static const struct SubspriteTable gSubspriteTables_83EDA04[] = { {2, gSubspriteTable_83ED9F4} }; -const struct Subsprite gSubspriteTable_83EDA0C[] = { +static const struct Subsprite gSubspriteTable_83EDA0C[] = { {-4, -8, ST_OAM_SQUARE, 0, 0x5, 3}, {-4, 0, ST_OAM_SQUARE, 0, 0xd, 3} }; -const struct SubspriteTable gSubspriteTables_83EDA1C[] = { +static const struct SubspriteTable gSubspriteTables_83EDA1C[] = { {2, gSubspriteTable_83EDA0C} }; -const struct Subsprite gSubspriteTable_83EDA24[] = { +static const struct Subsprite gSubspriteTable_83EDA24[] = { {-8, -8, ST_OAM_H_RECTANGLE, 0, 0x6, 3}, {-8, 0, ST_OAM_H_RECTANGLE, 0, 0xe, 3} }; -const struct SubspriteTable gSubspriteTables_83EDA34[] = { +static const struct SubspriteTable gSubspriteTables_83EDA34[] = { {2, gSubspriteTable_83EDA24} }; -const struct Subsprite gSubspriteTable_83EDA3C[] = { +static const struct Subsprite gSubspriteTable_83EDA3C[] = { {-12, -12, ST_OAM_H_RECTANGLE, 0, 0x0, 3}, {4, -12, ST_OAM_SQUARE, 0, 0x2, 3}, {-12, -4, ST_OAM_H_RECTANGLE, 0, 0x8, 3}, @@ -5242,21 +5237,21 @@ const struct Subsprite gSubspriteTable_83EDA3C[] = { {4, 4, ST_OAM_SQUARE, 0, 0x12, 3} }; -const struct SubspriteTable gSubspriteTables_83EDA6C[] = { +static const struct SubspriteTable gSubspriteTables_83EDA6C[] = { {6, gSubspriteTable_83EDA3C} }; -const struct Subsprite gSubspriteTable_83EDA74[] = { +static const struct Subsprite gSubspriteTable_83EDA74[] = { {-8, -12, ST_OAM_H_RECTANGLE, 0, 0x3, 3}, {-8, -4, ST_OAM_H_RECTANGLE, 0, 0xb, 3}, {-8, 4, ST_OAM_H_RECTANGLE, 0, 0x13, 3} }; -const struct SubspriteTable gSubspriteTables_83EDA8C[] = { +static const struct SubspriteTable gSubspriteTables_83EDA8C[] = { {3, gSubspriteTable_83EDA74} }; -const struct Subsprite gSubspriteTable_83EDA94[] = { +static const struct Subsprite gSubspriteTable_83EDA94[] = { {-12, -12, ST_OAM_H_RECTANGLE, 0, 0x5, 3}, {4, -12, ST_OAM_SQUARE, 0, 0x7, 3}, {-12, -4, ST_OAM_H_RECTANGLE, 0, 0xd, 3}, @@ -5265,11 +5260,11 @@ const struct Subsprite gSubspriteTable_83EDA94[] = { {4, 4, ST_OAM_SQUARE, 0, 0x17, 3} }; -const struct SubspriteTable gSubspriteTables_83EDAC4[] = { +static const struct SubspriteTable gSubspriteTables_83EDAC4[] = { {6, gSubspriteTable_83EDA94} }; -const struct Subsprite gSubspriteTable_83EDACC[] = { +static const struct Subsprite gSubspriteTable_83EDACC[] = { {-12, -12, ST_OAM_H_RECTANGLE, 0, 0x0, 3}, {4, -12, ST_OAM_SQUARE, 0, 0x2, 3}, {-12, -4, ST_OAM_H_RECTANGLE, 0, 0x8, 3}, @@ -5278,21 +5273,21 @@ const struct Subsprite gSubspriteTable_83EDACC[] = { {4, 4, ST_OAM_SQUARE, 0, 0x12, 3} }; -const struct SubspriteTable gSubspriteTables_83EDAFC[] = { +static const struct SubspriteTable gSubspriteTables_83EDAFC[] = { {6, gSubspriteTable_83EDACC} }; -const struct Subsprite gSubspriteTable_83EDB04[] = { +static const struct Subsprite gSubspriteTable_83EDB04[] = { {-8, -12, ST_OAM_H_RECTANGLE, 0, 0x3, 3}, {-8, -4, ST_OAM_H_RECTANGLE, 0, 0xb, 3}, {-8, 4, ST_OAM_H_RECTANGLE, 0, 0x13, 3} }; -const struct SubspriteTable gSubspriteTables_83EDB1C[] = { +static const struct SubspriteTable gSubspriteTables_83EDB1C[] = { {3, gSubspriteTable_83EDB04} }; -const struct Subsprite gSubspriteTable_83EDB24[] = { +static const struct Subsprite gSubspriteTable_83EDB24[] = { {-12, -12, ST_OAM_H_RECTANGLE, 0, 0x5, 3}, {4, -12, ST_OAM_SQUARE, 0, 0x7, 3}, {-12, -4, ST_OAM_H_RECTANGLE, 0, 0xd, 3}, @@ -5301,11 +5296,11 @@ const struct Subsprite gSubspriteTable_83EDB24[] = { {4, 4, ST_OAM_SQUARE, 0, 0x17, 3} }; -const struct SubspriteTable gSubspriteTables_83EDB54[] = { +static const struct SubspriteTable gSubspriteTables_83EDB54[] = { {6, gSubspriteTable_83EDB24} }; -const struct SpriteTemplate *const gUnknown_083EDB5C[] = { +static const struct SpriteTemplate *const gUnknown_083EDB5C[] = { &gSpriteTemplate_83ED57C, &gSpriteTemplate_83ED594, &gSpriteTemplate_83ED5AC, @@ -5334,7 +5329,7 @@ const struct SpriteTemplate *const gUnknown_083EDB5C[] = { &gDummySpriteTemplate }; -const struct SubspriteTable *const gUnknown_083EDBC4[] = { +static const struct SubspriteTable *const gUnknown_083EDBC4[] = { gSubspriteTables_83ED804, gSubspriteTables_83ED82C, gSubspriteTables_83ED854, @@ -5363,7 +5358,7 @@ const struct SubspriteTable *const gUnknown_083EDBC4[] = { NULL }; -const struct SpriteSheet gUnknown_083EDC2C[] = { +static const struct SpriteSheet gUnknown_083EDC2C[] = { {gSlotMachineReelSymbol1Tiles, 0x200, 0}, {gSlotMachineReelSymbol2Tiles, 0x200, 1}, {gSlotMachineReelSymbol3Tiles, 0x200, 2}, @@ -5388,19 +5383,19 @@ const struct SpriteSheet gUnknown_083EDC2C[] = { {} }; -const struct SpriteSheet gUnknown_083EDCDC = { +static const struct SpriteSheet gUnknown_083EDCDC = { ewram10000 + 0x0000, 0x800, 17 }; -const u8 *const gUnknown_083EDCE4 = gUnknownPalette_08E997E8; +static const u8 *const gUnknown_083EDCE4 = gUnknownPalette_08E997E8; #ifdef SAPPHIRE -const u16 UnknownPalette_83EDCE8[] = INCBIN_U16("graphics/unknown/sapphire_83EDD40.gbapal"); +static const u16 UnknownPalette_83EDCE8[] = INCBIN_U16("graphics/unknown/sapphire_83EDD40.gbapal"); #elif defined(RUBY) -const u16 UnknownPalette_83EDCE8[] = INCBIN_U16("graphics/unknown/ruby_83EDCE8.gbapal"); +static const u16 UnknownPalette_83EDCE8[] = INCBIN_U16("graphics/unknown/ruby_83EDCE8.gbapal"); #endif // RS -const u16 *const gUnknown_083EDD08[] = { +static const u16 *const gUnknown_083EDD08[] = { UnknownPalette_83EDCE8 + 10, UnknownPalette_83EDCE8 + 11, UnknownPalette_83EDCE8 + 12, @@ -5408,7 +5403,7 @@ const u16 *const gUnknown_083EDD08[] = { UnknownPalette_83EDCE8 + 14 }; -const u16 *const gUnknown_083EDD1C[] = { +static const u16 *const gUnknown_083EDD1C[] = { gUnknown_08E95A18 + 74, gUnknown_08E95A18 + 75, gUnknown_08E95A18 + 76, @@ -5416,51 +5411,51 @@ const u16 *const gUnknown_083EDD1C[] = { gUnknown_08E95A18 + 78 }; -const u8 gUnknown_083EDD30[] = { +static const u8 gUnknown_083EDD30[] = { 0x4a, 0x4b, 0x4c, 0x4e, 0x4d }; -const u8 gUnknown_083EDD35[][2] = { +static const u8 gUnknown_083EDD35[][2] = { {0, 0}, {1, 2}, {3, 4} }; -const u8 gUnknown_083EDD3B[] = {1, 2, 2}; +static const u8 gUnknown_083EDD3B[] = {1, 2, 2}; #ifdef SAPPHIRE -const u16 Unknown_83EDD3E[] = INCBIN_U16("graphics/unknown/sapphire_83EDD96.gbapal"); -const u16 Unknown_83EDD5E[] = INCBIN_U16("graphics/unknown/sapphire_83EDDB6.gbapal"); -const u16 Unknown_83EDD7E[] = INCBIN_U16("graphics/unknown/sapphire_83EDDD6.gbapal"); +static const u16 Unknown_83EDD3E[] = INCBIN_U16("graphics/unknown/sapphire_83EDD96.gbapal"); +static const u16 Unknown_83EDD5E[] = INCBIN_U16("graphics/unknown/sapphire_83EDDB6.gbapal"); +static const u16 Unknown_83EDD7E[] = INCBIN_U16("graphics/unknown/sapphire_83EDDD6.gbapal"); #elif defined (RUBY) -const u16 Unknown_83EDD3E[] = INCBIN_U16("graphics/unknown/ruby_83EDD3E.gbapal"); -const u16 Unknown_83EDD5E[] = INCBIN_U16("graphics/unknown/ruby_83EDD5E.gbapal"); -const u16 Unknown_83EDD7E[] = INCBIN_U16("graphics/unknown/ruby_83EDD7E.gbapal"); +static const u16 Unknown_83EDD3E[] = INCBIN_U16("graphics/unknown/ruby_83EDD3E.gbapal"); +static const u16 Unknown_83EDD5E[] = INCBIN_U16("graphics/unknown/ruby_83EDD5E.gbapal"); +static const u16 Unknown_83EDD7E[] = INCBIN_U16("graphics/unknown/ruby_83EDD7E.gbapal"); #endif // RS -const u16 *const gUnknown_083EDDA0[] = { +static const u16 *const gUnknown_083EDDA0[] = { Unknown_83EDD3E, Unknown_83EDD5E, Unknown_83EDD7E }; -const u16 *const gUnknown_083EDDAC = gUnknown_08E95A18 + 16; +static const u16 *const gUnknown_083EDDAC = gUnknown_08E95A18 + 16; -const u16 Palette_83EDDB0[] = INCBIN_U16("graphics/slot_machine/83EDDB0.gbapal"); -const u16 Palette_83EDDD0[] = INCBIN_U16("graphics/slot_machine/83EDDD0.gbapal"); -const u16 Palette_83EDDF0[] = INCBIN_U16("graphics/slot_machine/83EDDF0.gbapal"); +static const u16 Palette_83EDDB0[] = INCBIN_U16("graphics/slot_machine/83EDDB0.gbapal"); +static const u16 Palette_83EDDD0[] = INCBIN_U16("graphics/slot_machine/83EDDD0.gbapal"); +static const u16 Palette_83EDDF0[] = INCBIN_U16("graphics/slot_machine/83EDDF0.gbapal"); -const u16 *const gUnknown_083EDE10[] = { +static const u16 *const gUnknown_083EDE10[] = { Palette_83EDDB0, Palette_83EDDD0, Palette_83EDDF0, gSlotMachineSpritePalette6 }; -const u16 *const gUnknown_083EDE20 = gSlotMachineSpritePalette6; +static const u16 *const gUnknown_083EDE20 = gSlotMachineSpritePalette6; -const u16 gPalette_83EDE24[] = INCBIN_U16("graphics/slot_machine/83EDE24_pal.bin"); +static const u16 gPalette_83EDE24[] = INCBIN_U16("graphics/slot_machine/83EDE24_pal.bin"); -const struct SpritePalette gSlotMachineSpritePalettes[] = { +static const struct SpritePalette gSlotMachineSpritePalettes[] = { {gSlotMachineSpritePalette0, 0}, {gSlotMachineSpritePalette1, 1}, {gSlotMachineSpritePalette2, 2}, @@ -5472,6 +5467,6 @@ const struct SpritePalette gSlotMachineSpritePalettes[] = { {} }; -const u8 gUnknown_083EDE8C[] = INCBIN_U8("graphics/slot_machine/reel_time.4bpp.lz"); +static const u8 gUnknown_083EDE8C[] = INCBIN_U8("graphics/slot_machine/reel_time.4bpp.lz"); -const u16 gReelTimeWindowTilemap[] = INCBIN_U16("graphics/slot_machine/reel_time_window_map.bin"); +static const u16 gReelTimeWindowTilemap[] = INCBIN_U16("graphics/slot_machine/reel_time_window_map.bin"); -- cgit v1.2.3 From 0a70c2c6938c260bd8d1d036660891beb26c5820 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 4 Jan 2018 17:17:42 -0500 Subject: Get sub_8103668 matching --- src/field/slot_machine.c | 535 ++++++++++++++++++----------------------------- 1 file changed, 202 insertions(+), 333 deletions(-) (limited to 'src') diff --git a/src/field/slot_machine.c b/src/field/slot_machine.c index b21d8a082..7691f4fa9 100644 --- a/src/field/slot_machine.c +++ b/src/field/slot_machine.c @@ -30,21 +30,21 @@ struct UnkStruct1 { #endif -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 CB2_SlotMachineSetup(void); +static void CB2_SlotMachineLoop(void); +static void PlaySlotMachine_Internal(u8 arg0, MainCallback cb); +static void SlotMachineDummyTask(u8 taskId); +static void SlotMachineSetup_0_0(void); +static void SlotMachineSetup_6_2(void); +static void SlotMachineSetup_1_0(void); +static void SlotMachineSetup_2_0(void); +static void SlotMachineSetup_2_1(void); +static void SlotMachineSetup_0_1(void); +static void SlotMachineSetup_3_0(void); +static void SlotMachineSetup_4_0(void); +static void SlotMachineSetup_5_0(void); +static void SlotMachineSetup_6_0(void); +static void SlotMachineSetup_6_1(void); static void sub_8101D04(void); static void sub_8101D24(u8 taskId); static bool8 sub_8101D5C(struct Task *task); @@ -82,11 +82,11 @@ static bool8 sub_8102540(void); static u8 sub_8102578(void); static u16 dp15_jump_random_unknown(void); static u8 sub_81025BC(void); -static void sub_81027A0(void); -static void sub_81027D0(void); -static void sub_8102840(void); -static void sub_810290C(void); -static u8 sub_81029D4(u8 c1, u8 c2, u8 c3); +static void CheckMatch(void); +static void CheckMatch_CenterRow(void); +static void CheckMatch_TopAndBottom(void); +static void CheckMatch_Diagonals(void); +static u8 GetMatchFromSymbolsInRow(u8 c1, u8 c2, u8 c3); static void sub_8102A24(void); static void sub_8102A64(u8 taskId); static bool8 sub_8102A44(void); @@ -229,52 +229,52 @@ static const u8 gUnknown_083ECE3A[]; static const u16 gUnknown_083ECE42[]; static const u16 gUnknown_083ECE48[]; -void PlaySlotMachine(u8 arg0, void *ptr) +void PlaySlotMachine(u8 arg0, MainCallback cb) { - sub_81019B0(arg0, ptr); - SetMainCallback2(sub_81018B8); + PlaySlotMachine_Internal(arg0, cb); + SetMainCallback2(CB2_SlotMachineSetup); } -static void sub_81018B8(void) +static void CB2_SlotMachineSetup(void) { switch (gMain.state) { case 0: - sub_8101A28(); - sub_8101BA4(); + SlotMachineSetup_0_0(); + SlotMachineSetup_0_1(); gMain.state++; break; case 1: - sub_8101A8C(); + SlotMachineSetup_1_0(); gMain.state++; break; case 2: - sub_8101AE0(); - sub_8101B04(); + SlotMachineSetup_2_0(); + SlotMachineSetup_2_1(); gMain.state++; break; case 3: - sub_8101C84(); + SlotMachineSetup_3_0(); gMain.state++; break; case 4: - sub_8101CA0(); + SlotMachineSetup_4_0(); gMain.state++; break; case 5: - sub_8101CC0(); + SlotMachineSetup_5_0(); gMain.state++; break; case 6: - sub_8101CD4(); - sub_8101CEC(); - sub_8101A44(); - SetMainCallback2(sub_8101954); + SlotMachineSetup_6_0(); + SlotMachineSetup_6_1(); + SlotMachineSetup_6_2(); + SetMainCallback2(CB2_SlotMachineLoop); break; } } -static void sub_8101954(void) +static void CB2_SlotMachineLoop(void) { RunTasks(); AnimateSprites(); @@ -282,7 +282,7 @@ static void sub_8101954(void) UpdatePaletteFade(); } -static void sub_810196C(void) +static void SlotMachine_VBlankCallback(void) { LoadOam(); ProcessSpriteCopyRequests(); @@ -293,35 +293,35 @@ static void sub_810196C(void) REG_WINOUT = eSlotMachine->winOut; } -static void sub_81019B0(u8 arg0, void *ptr) +static void PlaySlotMachine_Internal(u8 arg0, MainCallback cb) { - struct Task *task = &gTasks[CreateTask(nullsub_67, 0xFF)]; + struct Task *task = gTasks + CreateTask(SlotMachineDummyTask, 0xFF); task->data[0] = arg0; - StoreWordInTwoHalfwords(task->data + 1, (intptr_t)ptr); + StoreWordInTwoHalfwords(task->data + 1, (intptr_t)cb); } static void sub_81019EC(void) { - struct Task *task = &gTasks[FindTaskIdByFunc(nullsub_67)]; + struct Task *task = gTasks + FindTaskIdByFunc(SlotMachineDummyTask); eSlotMachine->unk01 = task->data[0]; LoadWordFromTwoHalfwords((u16 *)(task->data + 1), (u32 *)&eSlotMachine->prevMainCb); } -static void nullsub_67(u8 taskId) +static void SlotMachineDummyTask(u8 taskId) { } -static void sub_8101A28(void) +static void SlotMachineSetup_0_0(void) { SetVBlankCallback(NULL); SetHBlankCallback(NULL); REG_DISPCNT = 0; } -static void sub_8101A44(void) +static void SlotMachineSetup_6_2(void) { u16 imeBak; - SetVBlankCallback(sub_810196C); + SetVBlankCallback(SlotMachine_VBlankCallback); imeBak = REG_IME; REG_IME = 0; REG_IE |= INTR_FLAG_VBLANK; @@ -330,17 +330,17 @@ static void sub_8101A44(void) REG_DISPCNT = DISPCNT_OBJ_1D_MAP | DISPCNT_BG_ALL_ON | DISPCNT_OBJ_ON | DISPCNT_WIN0_ON; } -static void sub_8101A8C(void) +static void SlotMachineSetup_1_0(void) { DmaClearLarge16(3, (u16 *)(BG_VRAM), BG_VRAM_SIZE, 0x1000); } -static void sub_8101AE0(void) +static void SlotMachineSetup_2_0(void) { DmaClear16(3, (u16 *)OAM, OAM_SIZE); } -static void sub_8101B04(void) +static void SlotMachineSetup_2_1(void) { REG_BG0CNT = 0; REG_BG1CNT = 0; @@ -366,7 +366,7 @@ static void sub_8101B04(void) static const s16 gUnknown_083ECCF8[][2]; -static void sub_8101BA4(void) +static void SlotMachineSetup_0_1(void) { u8 i; @@ -375,11 +375,11 @@ static void sub_8101BA4(void) eSlotMachine->unk02 = 0; eSlotMachine->unk03 = Random() & 1; eSlotMachine->unk04 = 0; - eSlotMachine->unk08 = 0; + eSlotMachine->matchedSymbols = 0; eSlotMachine->unk0A = 0; eSlotMachine->unk0B = 0; eSlotMachine->coins = gSaveBlock1.coins; - eSlotMachine->unk0E = 0; + eSlotMachine->payout = 0; eSlotMachine->unk10 = 0; eSlotMachine->bet = 0; eSlotMachine->unk18 = 0; @@ -398,13 +398,13 @@ static void sub_8101BA4(void) } } -static void sub_8101C84(void) +static void SlotMachineSetup_3_0(void) { SetUpWindowConfig(&gWindowConfig_81E7128); InitMenuWindow(&gWindowConfig_81E7128); } -static void sub_8101CA0(void) +static void SlotMachineSetup_4_0(void) { ResetPaletteFade(); ResetSpriteData(); @@ -413,14 +413,14 @@ static void sub_8101CA0(void) ResetTasks(); } -static void sub_8101CC0(void) +static void SlotMachineSetup_5_0(void) { sub_8106448(); sub_81064B8(); sub_81063C0(); } -static void sub_8101CD4(void) +static void SlotMachineSetup_6_0(void) { sub_8104EA8(); sub_8104F8C(); @@ -428,7 +428,7 @@ static void sub_8101CD4(void) sub_81050C4(); } -static void sub_8101CEC(void) +static void SlotMachineSetup_6_1(void) { sub_8104048(); sub_8102DA8(); @@ -497,7 +497,7 @@ static bool8 sub_8101D8C(struct Task *task) static bool8 sub_8101DB0(struct Task *task) { - eSlotMachine->unk0E = 0; + eSlotMachine->payout = 0; eSlotMachine->bet = 0; eSlotMachine->unk18 = 0; eSlotMachine->unk04 &= 0xc0; @@ -691,27 +691,27 @@ static bool8 sub_8102090(struct Task *task) static bool8 sub_81020C8(struct Task *task) { eSlotMachine->unk04 &= 0xc0; - sub_81027A0(); + CheckMatch(); if (eSlotMachine->unk0A) { eSlotMachine->unk0A--; eSlotMachine->unk0B++; } - if (eSlotMachine->unk08) + if (eSlotMachine->matchedSymbols) { eSlotMachine->state = 15; sub_8102A24(); sub_8103F70(); - if ((eSlotMachine->unk10 -= eSlotMachine->unk0E) < 0) + if ((eSlotMachine->unk10 -= eSlotMachine->payout) < 0) { eSlotMachine->unk10 = 0; } - if (eSlotMachine->unk08 & 0x180) + if (eSlotMachine->matchedSymbols & 0x180) { PlayFanfare(BGM_ME_B_BIG); sub_8104CAC(6); } - else if (eSlotMachine->unk08 & 0x40) + else if (eSlotMachine->matchedSymbols & 0x40) { PlayFanfare(BGM_ME_B_BIG); sub_8104CAC(5); @@ -721,21 +721,21 @@ static bool8 sub_81020C8(struct Task *task) PlayFanfare(BGM_ME_B_SMALL); sub_8104CAC(2); } - if (eSlotMachine->unk08 & 0x1c0) + if (eSlotMachine->matchedSymbols & 0x1c0) { eSlotMachine->unk04 &= 0x3f; - if (eSlotMachine->unk08 & 0x180) + if (eSlotMachine->matchedSymbols & 0x180) { eSlotMachine->unk0A = 0; eSlotMachine->unk0B = 0; eSlotMachine->unk03 = 0; - if (eSlotMachine->unk08 & 0x100) + if (eSlotMachine->matchedSymbols & 0x100) { eSlotMachine->unk03 = 1; } } } - if (eSlotMachine->unk08 & 0x20 && eSlotMachine->unk02 < 16) + if (eSlotMachine->matchedSymbols & 0x20 && eSlotMachine->unk02 < 16) { eSlotMachine->unk02++; sub_8104064(eSlotMachine->unk02); @@ -767,20 +767,20 @@ static bool8 sub_81021FC(struct Task *task) if (sub_8103FA0()) { eSlotMachine->state = 19; - if (eSlotMachine->unk08 & 0x180) + if (eSlotMachine->matchedSymbols & 0x180) { IncrementGameStat(GAME_STAT_SLOT_JACKPOTS); } - if (eSlotMachine->unk08 & 0x04) + if (eSlotMachine->matchedSymbols & 0x04) { eSlotMachine->unk18 = 0; eSlotMachine->state = 9; } - if (eSlotMachine->unk08 & 0x20) + if (eSlotMachine->matchedSymbols & 0x20) { eSlotMachine->state = 17; } - if (eSlotMachine->unk0A && eSlotMachine->unk08 & 0x04) + if (eSlotMachine->unk0A && eSlotMachine->matchedSymbols & 0x04) { sub_8104CAC(4); eSlotMachine->state = 18; @@ -794,7 +794,7 @@ static bool8 sub_8102264(struct Task *task) if (!sub_81040C8()) { eSlotMachine->state = 19; - if (eSlotMachine->unk08 & 0x04) + if (eSlotMachine->matchedSymbols & 0x04) { eSlotMachine->state = 9; if (eSlotMachine->unk0A) @@ -812,7 +812,7 @@ static bool8 sub_81022A0(struct Task *task) if (sub_8104E18()) { eSlotMachine->state = 19; - if (eSlotMachine->unk08 & 0x04) + if (eSlotMachine->matchedSymbols & 0x04) { eSlotMachine->state = 9; } @@ -1116,126 +1116,126 @@ static u16 dp15_jump_random_unknown(void) return 8; } -static void sub_81027A0(void) +static void CheckMatch(void) { - eSlotMachine->unk08 = 0; - sub_81027D0(); + eSlotMachine->matchedSymbols = 0; + CheckMatch_CenterRow(); if (eSlotMachine->bet > 1) { - sub_8102840(); + CheckMatch_TopAndBottom(); } if (eSlotMachine->bet > 2) { - sub_810290C(); + CheckMatch_Diagonals(); } } -static const u16 gUnknown_083ECE5A[]; -static const u16 gUnknown_083ECE6C[]; +static const u16 sSlotMatchFlags[]; +static const u16 sSlotPayouts[]; -static void sub_81027D0(void) +static void CheckMatch_CenterRow(void) { - u8 c1, c2, c3, payout; + u8 c1, c2, c3, match; c1 = sub_8102BA4(0, 2); c2 = sub_8102BA4(1, 2); c3 = sub_8102BA4(2, 2); - payout = sub_81029D4(c1, c2, c3); - if (payout != 9) + match = GetMatchFromSymbolsInRow(c1, c2, c3); + if (match != SLOT_MACHINE_MATCHED_NONE) { - eSlotMachine->unk0E += gUnknown_083ECE6C[payout]; - eSlotMachine->unk08 |= gUnknown_083ECE5A[payout]; + eSlotMachine->payout += sSlotPayouts[match]; + eSlotMachine->matchedSymbols |= sSlotMatchFlags[match]; sub_8103E04(0); } } -static void sub_8102840(void) +static void CheckMatch_TopAndBottom(void) { - u8 c1, c2, c3, payout; + u8 c1, c2, c3, match; c1 = sub_8102BA4(0, 1); c2 = sub_8102BA4(1, 1); c3 = sub_8102BA4(2, 1); - payout = sub_81029D4(c1, c2, c3); - if (payout != 9) + match = GetMatchFromSymbolsInRow(c1, c2, c3); + if (match != SLOT_MACHINE_MATCHED_NONE) { - if (payout == 0) + if (match == SLOT_MACHINE_MATCHED_1CHERRY) { - payout = 1; + match = SLOT_MACHINE_MATCHED_2CHERRY; } - eSlotMachine->unk0E += gUnknown_083ECE6C[payout]; - eSlotMachine->unk08 |= gUnknown_083ECE5A[payout]; + eSlotMachine->payout += sSlotPayouts[match]; + eSlotMachine->matchedSymbols |= sSlotMatchFlags[match]; sub_8103E04(1); } c1 = sub_8102BA4(0, 3); c2 = sub_8102BA4(1, 3); c3 = sub_8102BA4(2, 3); - payout = sub_81029D4(c1, c2, c3); - if (payout != 9) + match = GetMatchFromSymbolsInRow(c1, c2, c3); + if (match != SLOT_MACHINE_MATCHED_NONE) { - if (payout == 0) + if (match == SLOT_MACHINE_MATCHED_1CHERRY) { - payout = 1; + match = SLOT_MACHINE_MATCHED_2CHERRY; } - eSlotMachine->unk0E += gUnknown_083ECE6C[payout]; - eSlotMachine->unk08 |= gUnknown_083ECE5A[payout]; + eSlotMachine->payout += sSlotPayouts[match]; + eSlotMachine->matchedSymbols |= sSlotMatchFlags[match]; sub_8103E04(2); } } -static void sub_810290C(void) +static void CheckMatch_Diagonals(void) { - u8 c1, c2, c3, payout; + u8 c1, c2, c3, match; c1 = sub_8102BA4(0, 1); c2 = sub_8102BA4(1, 2); c3 = sub_8102BA4(2, 3); - payout = sub_81029D4(c1, c2, c3); - if (payout != 9) + match = GetMatchFromSymbolsInRow(c1, c2, c3); + if (match != SLOT_MACHINE_MATCHED_NONE) { - if (payout != 0) + if (match != SLOT_MACHINE_MATCHED_1CHERRY) { - eSlotMachine->unk0E += gUnknown_083ECE6C[payout]; - eSlotMachine->unk08 |= gUnknown_083ECE5A[payout]; + eSlotMachine->payout += sSlotPayouts[match]; + eSlotMachine->matchedSymbols |= sSlotMatchFlags[match]; } sub_8103E04(3); } c1 = sub_8102BA4(0, 3); c2 = sub_8102BA4(1, 2); c3 = sub_8102BA4(2, 1); - payout = sub_81029D4(c1, c2, c3); - if (payout != 9) + match = GetMatchFromSymbolsInRow(c1, c2, c3); + if (match != SLOT_MACHINE_MATCHED_NONE) { - if (payout != 0) + if (match != SLOT_MACHINE_MATCHED_1CHERRY) { - eSlotMachine->unk0E += gUnknown_083ECE6C[payout]; - eSlotMachine->unk08 |= gUnknown_083ECE5A[payout]; + eSlotMachine->payout += sSlotPayouts[match]; + eSlotMachine->matchedSymbols |= sSlotMatchFlags[match]; } sub_8103E04(4); } } -static const u8 gUnknown_083ECE52[]; +static const u8 sSym2Match[]; -static u8 sub_81029D4(u8 c1, u8 c2, u8 c3) +static u8 GetMatchFromSymbolsInRow(u8 c1, u8 c2, u8 c3) { if (c1 == c2 && c1 == c3) { - return gUnknown_083ECE52[c1]; + return sSym2Match[c1]; } - if (c1 == 0 && c2 == 0 && c3 == 1) + if (c1 == SLOT_MACHINE_SYM_7_RED && c2 == SLOT_MACHINE_SYM_7_RED && c3 == SLOT_MACHINE_SYM_7_BLUE) { - return 6; + return SLOT_MACHINE_MATCHED_777_MIXED; } - if (c1 == 1 && c2 == 1 && c3 == 0) + if (c1 == SLOT_MACHINE_SYM_7_BLUE && c2 == SLOT_MACHINE_SYM_7_BLUE && c3 == SLOT_MACHINE_SYM_7_RED) { - return 6; + return SLOT_MACHINE_MATCHED_777_MIXED; } - if (c1 == 4) + if (c1 == SLOT_MACHINE_SYM_CHERRY) { - return 0; + return SLOT_MACHINE_MATCHED_1CHERRY; } - return 9; + return SLOT_MACHINE_MATCHED_NONE; } static void sub_8102A24(void) @@ -1268,7 +1268,7 @@ static bool8 sub_8102A9C(struct Task *task) if (sub_8103E38()) { task->data[0]++; - if (eSlotMachine->unk0E == 0) + if (eSlotMachine->payout == 0) { task->data[0] = 2; return TRUE; @@ -1285,7 +1285,7 @@ static bool8 sub_8102AD0(struct Task *task) { PlaySE(SE_PIN); } - eSlotMachine->unk0E--; + eSlotMachine->payout--; if (eSlotMachine->coins < 9999) { eSlotMachine->coins++; @@ -1299,14 +1299,14 @@ static bool8 sub_8102AD0(struct Task *task) if (IsFanfareTaskInactive() && gMain.newKeys & START_BUTTON) { PlaySE(SE_PIN); - eSlotMachine->coins += eSlotMachine->unk0E; + eSlotMachine->coins += eSlotMachine->payout; if (eSlotMachine->coins > 9999) { eSlotMachine->coins = 9999; } - eSlotMachine->unk0E = 0; + eSlotMachine->payout = 0; } - if (eSlotMachine->unk0E == 0) + if (eSlotMachine->payout == 0) { task->data[0]++; } @@ -1399,25 +1399,25 @@ static void sub_8102DA8(void) { u8 taskId = CreateTask(sub_8102E68, 2); gTasks[taskId].data[15] = i; - eSlotMachine->unk3A[i] = taskId; + eSlotMachine->reelTasks[i] = taskId; sub_8102E68(taskId); } } static void sub_8102DEC(u8 a0) { - gTasks[eSlotMachine->unk3A[a0]].data[0] = 1; - gTasks[eSlotMachine->unk3A[a0]].data[14] = 1; + gTasks[eSlotMachine->reelTasks[a0]].data[0] = 1; + gTasks[eSlotMachine->reelTasks[a0]].data[14] = 1; } static void sub_8102E1C(u8 a0) { - gTasks[eSlotMachine->unk3A[a0]].data[0] = 2; + gTasks[eSlotMachine->reelTasks[a0]].data[0] = 2; } static bool8 sub_8102E40(u8 a0) { - return gTasks[eSlotMachine->unk3A[a0]].data[14]; + return gTasks[eSlotMachine->reelTasks[a0]].data[14]; } static bool8 (*const gUnknown_083ECB2C[])(struct Task *task) = { @@ -1816,8 +1816,6 @@ static void j5_08111E84(void) } } -#ifdef NONMATCHING // variable r6 is mistakenly plopped into r5, - // and variable i is mistakenly plopped into r6 static void sub_8103668(void) { s16 i; @@ -1845,34 +1843,34 @@ static void sub_8103668(void) return; } } - for (i = 1; i < 5; i++) + for (r6 = 1; r6 < 5; r6++) { - if (sp0 == sub_8102BF8(1, eSlotMachine->unk34[0] - i)) + if (sp0 == sub_8102BF8(1, eSlotMachine->unk34[0] - r6)) { if (eSlotMachine->unk34[0] == 1) { - if (i < 3) + if (r6 < 3) { eSlotMachine->unk34[1] = 2; - eSlotMachine->unk2E[1] = i + 1; + eSlotMachine->unk2E[1] = r6 + 1; } else { eSlotMachine->unk34[1] = 1; - eSlotMachine->unk2E[1] = i; + eSlotMachine->unk2E[1] = r6; } } else { - if (i < 3) + if (r6 < 3) { eSlotMachine->unk34[1] = 3; - eSlotMachine->unk2E[1] = i; + eSlotMachine->unk2E[1] = r6; } else { eSlotMachine->unk34[1] = 2; - eSlotMachine->unk2E[1] = i - 1; + eSlotMachine->unk2E[1] = r6 - 1; } } return; @@ -1882,141 +1880,6 @@ static void sub_8103668(void) } } } -#else -__attribute__((naked)) void sub_8103668(void) -{ - asm_unified("\tpush {r4-r7,lr}\n" - "\tsub sp, 0x4\n" - "\tldr r4, _0810368C @ =gSharedMem\n" - "\tldrh r3, [r4, 0x34]\n" - "\tmovs r0, 0x34\n" - "\tldrsh r2, [r4, r0]\n" - "\tcmp r2, 0\n" - "\tbeq _0810375A\n" - "\tldrb r1, [r4, 0x4]\n" - "\tmovs r0, 0x80\n" - "\tands r0, r1\n" - "\tcmp r0, 0\n" - "\tbeq _0810375A\n" - "\tcmp r2, 0x2\n" - "\tbne _081036AE\n" - "\tbl j5_08111E84\n" - "\tb _0810375A\n" - "\t.align 2, 0\n" - "_0810368C: .4byte gSharedMem\n" - "_08103690:\n" - "\tldr r0, _0810369C @ =gSharedMem\n" - "\tmovs r1, 0\n" - "\tstrh r6, [r0, 0x36]\n" - "\tstrh r1, [r0, 0x30]\n" - "\tb _0810375A\n" - "\t.align 2, 0\n" - "_0810369C: .4byte gSharedMem\n" - "_081036A0:\n" - "\tmovs r0, 0x2\n" - "\tstrh r0, [r5, 0x36]\n" - "\tadds r0, r4, 0x1\n" - "\tstrh r0, [r5, 0x30]\n" - "\tb _0810375A\n" - "_081036AA:\n" - "\tmovs r0, 0x3\n" - "\tb _08103736\n" - "_081036AE:\n" - "\tldrh r1, [r4, 0x2E]\n" - "\tsubs r1, r3, r1\n" - "\tlsls r1, 16\n" - "\tasrs r1, 16\n" - "\tmovs r0, 0\n" - "\tbl sub_8102BF8\n" - "\tmov r1, sp\n" - "\tstrb r0, [r1]\n" - "\tmov r0, sp\n" - "\tbl sub_8103520\n" - "\tlsls r0, 24\n" - "\tcmp r0, 0\n" - "\tbeq _0810375A\n" - "\tmovs r6, 0x2\n" - "\tmovs r1, 0x34\n" - "\tldrsh r0, [r4, r1]\n" - "\tcmp r0, 0x3\n" - "\tbne _081036D8\n" - "\tmovs r6, 0x3\n" - "_081036D8:\n" - "\tmovs r5, 0\n" - "\tmov r7, sp\n" - "_081036DC:\n" - "\tlsls r0, r6, 16\n" - "\tasrs r4, r0, 16\n" - "\tmovs r0, 0x1\n" - "\tadds r1, r4, 0\n" - "\tbl sub_8102BF8\n" - "\tldrb r1, [r7]\n" - "\tlsls r0, 24\n" - "\tlsrs r0, 24\n" - "\tcmp r1, r0\n" - "\tbeq _08103690\n" - "\tlsls r1, r5, 16\n" - "\tmovs r0, 0x80\n" - "\tlsls r0, 9\n" - "\tadds r1, r0\n" - "\tsubs r0, r4, 0x1\n" - "\tlsls r0, 16\n" - "\tlsrs r6, r0, 16\n" - "\tlsrs r5, r1, 16\n" - "\tasrs r1, 16\n" - "\tcmp r1, 0x1\n" - "\tble _081036DC\n" - "\tmovs r6, 0x1\n" - "\tmov r7, sp\n" - "\tldr r5, _0810373C @ =gSharedMem\n" - "_0810370E:\n" - "\tldrh r1, [r5, 0x34]\n" - "\tlsls r0, r6, 16\n" - "\tasrs r4, r0, 16\n" - "\tsubs r1, r4\n" - "\tlsls r1, 16\n" - "\tasrs r1, 16\n" - "\tmovs r0, 0x1\n" - "\tbl sub_8102BF8\n" - "\tldrb r1, [r7]\n" - "\tlsls r0, 24\n" - "\tlsrs r0, 24\n" - "\tcmp r1, r0\n" - "\tbne _0810374E\n" - "\tmovs r1, 0x34\n" - "\tldrsh r0, [r5, r1]\n" - "\tcmp r0, 0x1\n" - "\tbne _08103740\n" - "\tcmp r4, 0x2\n" - "\tble _081036A0\n" - "_08103736:\n" - "\tstrh r0, [r5, 0x36]\n" - "\tstrh r6, [r5, 0x30]\n" - "\tb _0810375A\n" - "\t.align 2, 0\n" - "_0810373C: .4byte gSharedMem\n" - "_08103740:\n" - "\tcmp r4, 0x2\n" - "\tble _081036AA\n" - "\tmovs r0, 0x2\n" - "\tstrh r0, [r5, 0x36]\n" - "\tsubs r0, r4, 0x1\n" - "\tstrh r0, [r5, 0x30]\n" - "\tb _0810375A\n" - "_0810374E:\n" - "\tadds r0, r4, 0x1\n" - "\tlsls r0, 16\n" - "\tlsrs r6, r0, 16\n" - "\tasrs r0, 16\n" - "\tcmp r0, 0x4\n" - "\tble _0810370E\n" - "_0810375A:\n" - "\tadd sp, 0x4\n" - "\tpop {r4-r7}\n" - "\tpop {r0}\n" - "\tbx r0"); -} -#endif // NONMATCHING static bool8 sub_8103764(u8 a0, u8 a1) { @@ -2872,7 +2735,7 @@ static void sub_81049F8(struct Task *task) DestroyTask(FindTaskIdByFunc(sub_810434C)); } -static const u16 gReelTimeWindowTilemap[]; +static const u16 sReelTimeWindowTilemap[]; static void sub_8104A40(s16 a0, s16 a1) { @@ -2880,7 +2743,7 @@ static void sub_8104A40(s16 a0, s16 a1) for (i = 4; i < 15; i++) { - u16 tile = gReelTimeWindowTilemap[a1 + (i - 4) * 20]; + u16 tile = sReelTimeWindowTilemap[a1 + (i - 4) * 20]; ((u16 *)BG_SCREEN_ADDR(28))[32 * i + a0] = tile; } } @@ -2997,7 +2860,7 @@ static void sub_8104CAC(u8 arg0) { sub_8104DA4(); - task = &gTasks[eSlotMachine->unk3D]; + task = gTasks + eSlotMachine->unk3D; task->data[1] = arg0; for (i = 0; gUnknown_083ED048[arg0][i].unk00 != 0xFF; i++) @@ -3139,7 +3002,7 @@ static void sub_810506C(struct Sprite *sprite) { u16 tag = eSlotMachine->coins; if (sprite->data[0]) - tag = eSlotMachine->unk0E; + tag = eSlotMachine->payout; if (sprite->data[3] != tag) { sprite->data[3] = tag; @@ -3561,9 +3424,9 @@ static void sub_8105B88(u8 spriteId) static const s16 gUnknown_083ECE7E[][2]; static const SpriteCallback gUnknown_083ECF0C[]; -u8 sub_8105BB4(u8 a0, u8 a1, s16 a2) +u8 sub_8105BB4(u8 templateIdx, u8 cbAndCoordsIdx, s16 a2) { - return sub_8105BF8(a0, gUnknown_083ECF0C[a1], gUnknown_083ECE7E[a1][0], gUnknown_083ECE7E[a1][1], a2); + return sub_8105BF8(templateIdx, gUnknown_083ECF0C[cbAndCoordsIdx], gUnknown_083ECE7E[cbAndCoordsIdx][0], gUnknown_083ECE7E[cbAndCoordsIdx][1], a2); } static const struct SpriteTemplate *const gUnknown_083EDB5C[]; @@ -4004,16 +3867,16 @@ static void sub_810639C(void) eSlotMachine->winOut = 0x3f; } -static const u8 gUnknown_083EDE8C[]; -static const struct SpriteSheet gUnknown_083EDC2C[]; +static const u8 sReelTimeGfx[]; +static const struct SpriteSheet sSlotMachineSpriteSheets[]; static const struct SpritePalette gSlotMachineSpritePalettes[]; static void sub_81063C0(void) { sub_8106404(); - LZDecompressWram(gSlotMachineReelTimeLights_Gfx, ewram10000); - LZDecompressWram(gUnknown_083EDE8C, ewram13200); - LoadSpriteSheets(gUnknown_083EDC2C); + LZDecompressWram(gSlotMachineReelTimeLights_Gfx, eSlotMachineGfxBuffer); + LZDecompressWram(sReelTimeGfx, eSlotMachineReelTimeGfxBuffer); + LoadSpriteSheets(sSlotMachineSpriteSheets); LoadSpritePalettes(gSlotMachineSpritePalettes); } @@ -4022,7 +3885,7 @@ static const struct SpriteSheet gUnknown_083EDCDC; static void sub_8106404(void) { - u8 *dest = ewram10000; + u8 *dest = eSlotMachineGfxBuffer; u8 i = 0; const struct SpriteSheet *sheet = &gUnknown_083EDCDC; const u8 *src = gUnknown_083EDCE4; @@ -4041,9 +3904,9 @@ static void sub_8106448(void) { u32 offsetRead, offsetWrite; u32 size; - LZDecompressWram(gSlotMachine_Gfx, ewram10000_2); + LZDecompressWram(gSlotMachine_Gfx, eSlotMachineGfxBuffer); - offsetRead = (u32)ewram10000_2; + offsetRead = (u32)eSlotMachineGfxBuffer; offsetWrite = BG_VRAM; size = SLOTMACHINE_GFX_TILES * 32; while (TRUE) @@ -4205,15 +4068,21 @@ static const u16 gUnknown_083ECE48[] = { 0x10, 0x08, 0x04, 0x02, 0x01 }; -static const u8 gUnknown_083ECE52[] = { - 7, 8, 4, 3, 0, 5, 2 +static const u8 sSym2Match[] = { + SLOT_MACHINE_MATCHED_777_RED, + SLOT_MACHINE_MATCHED_777_BLUE, + SLOT_MACHINE_MATCHED_AZURILL, + SLOT_MACHINE_MATCHED_LOTAD, + SLOT_MACHINE_MATCHED_1CHERRY, + SLOT_MACHINE_MATCHED_POWER, + SLOT_MACHINE_MATCHED_REPLAY }; -static const u16 gUnknown_083ECE5A[] = { +static const u16 sSlotMatchFlags[] = { 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x100 }; -static const u16 gUnknown_083ECE6C[] = { +static const u16 sSlotPayouts[] = { 2, 4, 0, 6, 12, 3, 90, 300, 300 }; @@ -4508,23 +4377,23 @@ static const struct OamData gOamData_83ED0B8 = { }; static const struct SpriteFrameImage gSpriteImageTable_83ED0C0[] = { - {ewram13200 + 0x0000, 0x800}, - {ewram13200 + 0x0800, 0x800}, - {ewram13200 + 0x1000, 0x800}, - {ewram13200 + 0x1800, 0x800}, - {ewram13200 + 0x2000, 0x800} + {eSlotMachineReelTimeGfxBuffer + 0x0000, 0x800}, + {eSlotMachineReelTimeGfxBuffer + 0x0800, 0x800}, + {eSlotMachineReelTimeGfxBuffer + 0x1000, 0x800}, + {eSlotMachineReelTimeGfxBuffer + 0x1800, 0x800}, + {eSlotMachineReelTimeGfxBuffer + 0x2000, 0x800} }; static const struct SpriteFrameImage gSpriteImageTable_83ED0E8[] = { - {ewram13200 + 0x2800, 0x300} + {eSlotMachineReelTimeGfxBuffer + 0x2800, 0x300} }; static const struct SpriteFrameImage gSpriteImageTable_83ED0F0[] = { - {ewram13200 + 0x2B00, 0x500} + {eSlotMachineReelTimeGfxBuffer + 0x2B00, 0x500} }; static const struct SpriteFrameImage gSpriteImageTable_83ED0F8[] = { - {ewram13200 + 0x3000, 0x600} + {eSlotMachineReelTimeGfxBuffer + 0x3000, 0x600} }; static const struct SpriteFrameImage gSpriteImageTable_83ED100[] = { @@ -4567,67 +4436,67 @@ static const struct SpriteFrameImage gSpriteImageTable_83ED170[] = { }; static const struct SpriteFrameImage gSpriteImageTable_83ED178[] = { - {ewram10000 + 0x0000, 0x600} + {eSlotMachineGfxBuffer + 0x0000, 0x600} }; static const struct SpriteFrameImage gSpriteImageTable_83ED180[] = { - {ewram10000 + 0x0600, 0x200} + {eSlotMachineGfxBuffer + 0x0600, 0x200} }; static const struct SpriteFrameImage gSpriteImageTable_83ED188[] = { - {ewram10000 + 0x0800, 0x200} + {eSlotMachineGfxBuffer + 0x0800, 0x200} }; static const struct SpriteFrameImage gSpriteImageTable_83ED190[] = { - {ewram10000 + 0x0A00, 0x200} + {eSlotMachineGfxBuffer + 0x0A00, 0x200} }; static const struct SpriteFrameImage gSpriteImageTable_83ED198[] = { - {ewram10000 + 0x0C00, 0x300} + {eSlotMachineGfxBuffer + 0x0C00, 0x300} }; static const struct SpriteFrameImage gSpriteImageTable_83ED1A0[] = { - {ewram10000 + 0x1000, 0x400} + {eSlotMachineGfxBuffer + 0x1000, 0x400} }; static const struct SpriteFrameImage gSpriteImageTable_83ED1A8[] = { - {ewram10000 + 0x1400, 0x200} + {eSlotMachineGfxBuffer + 0x1400, 0x200} }; static const struct SpriteFrameImage gSpriteImageTable_83ED1B0[] = { - {ewram10000 + 0x1600, 0x300} + {eSlotMachineGfxBuffer + 0x1600, 0x300} }; static const struct SpriteFrameImage gSpriteImageTable_83ED1B8[] = { - {ewram10000 + 0x1900, 0x300} + {eSlotMachineGfxBuffer + 0x1900, 0x300} }; static const struct SpriteFrameImage gSpriteImageTable_83ED1C0[] = { - {ewram10000 + 0x1C00, 0x200}, - {ewram10000 + 0x1E00, 0x200}, - {ewram10000 + 0x1E00, 0x200} // is this a typo? + {eSlotMachineGfxBuffer + 0x1C00, 0x200}, + {eSlotMachineGfxBuffer + 0x1E00, 0x200}, + {eSlotMachineGfxBuffer + 0x1E00, 0x200} // is this a typo? }; static const struct SpriteFrameImage gSpriteImageTable_83ED1D8[] = { - {ewram10000 + 0x2000, 0x280} + {eSlotMachineGfxBuffer + 0x2000, 0x280} }; static const struct SpriteFrameImage gSpriteImageTable_83ED1E0[] = { - {ewram10000 + 0x2280, 0x80}, - {ewram10000 + 0x2300, 0x80}, - {ewram10000 + 0x2380, 0x80}, - {ewram10000 + 0x2400, 0x80}, - {ewram10000 + 0x2480, 0x80} + {eSlotMachineGfxBuffer + 0x2280, 0x80}, + {eSlotMachineGfxBuffer + 0x2300, 0x80}, + {eSlotMachineGfxBuffer + 0x2380, 0x80}, + {eSlotMachineGfxBuffer + 0x2400, 0x80}, + {eSlotMachineGfxBuffer + 0x2480, 0x80} }; static const struct SpriteFrameImage gSpriteImageTable_83ED208[] = { - {ewram10000 + 0x2600, 0x480}, - {ewram10000 + 0x2A80, 0x480} + {eSlotMachineGfxBuffer + 0x2600, 0x480}, + {eSlotMachineGfxBuffer + 0x2A80, 0x480} }; static const struct SpriteFrameImage gSpriteImageTable_83ED218[] = { - {ewram10000 + 0x2F00, 0x180}, - {ewram10000 + 0x3080, 0x180} + {eSlotMachineGfxBuffer + 0x2F00, 0x180}, + {eSlotMachineGfxBuffer + 0x3080, 0x180} }; static const struct SpriteFrameImage gSpriteImageTable_83ED228[] = { @@ -5358,7 +5227,7 @@ static const struct SubspriteTable *const gUnknown_083EDBC4[] = { NULL }; -static const struct SpriteSheet gUnknown_083EDC2C[] = { +static const struct SpriteSheet sSlotMachineSpriteSheets[] = { {gSlotMachineReelSymbol1Tiles, 0x200, 0}, {gSlotMachineReelSymbol2Tiles, 0x200, 1}, {gSlotMachineReelSymbol3Tiles, 0x200, 2}, @@ -5376,15 +5245,15 @@ static const struct SpriteSheet gUnknown_083EDC2C[] = { {gSlotMachineNumber7Tiles, 0x40, 14}, {gSlotMachineNumber8Tiles, 0x40, 15}, {gSlotMachineNumber9Tiles, 0x40, 16}, - {ewram10000 + 0x0A00, 0x200, 18}, - {ewram10000 + 0x1400, 0x200, 19}, - {ewram10000 + 0x1600, 0x300, 20}, - {ewram10000 + 0x1900, 0x300, 21}, + {eSlotMachineGfxBuffer + 0x0A00, 0x200, 18}, + {eSlotMachineGfxBuffer + 0x1400, 0x200, 19}, + {eSlotMachineGfxBuffer + 0x1600, 0x300, 20}, + {eSlotMachineGfxBuffer + 0x1900, 0x300, 21}, {} }; static const struct SpriteSheet gUnknown_083EDCDC = { - ewram10000 + 0x0000, 0x800, 17 + eSlotMachineGfxBuffer + 0x0000, 0x800, 17 }; static const u8 *const gUnknown_083EDCE4 = gUnknownPalette_08E997E8; @@ -5467,6 +5336,6 @@ static const struct SpritePalette gSlotMachineSpritePalettes[] = { {} }; -static const u8 gUnknown_083EDE8C[] = INCBIN_U8("graphics/slot_machine/reel_time.4bpp.lz"); +static const u8 sReelTimeGfx[] = INCBIN_U8("graphics/slot_machine/reel_time.4bpp.lz"); -static const u16 gReelTimeWindowTilemap[] = INCBIN_U16("graphics/slot_machine/reel_time_window_map.bin"); +static const u16 sReelTimeWindowTilemap[] = INCBIN_U16("graphics/slot_machine/reel_time_window_map.bin"); -- cgit v1.2.3 From 59c99b2d65af9ea1d53d457c71dc7f0915d815c5 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 4 Jan 2018 17:35:13 -0500 Subject: some renaming --- src/field/slot_machine.c | 236 ++++++++++++++++++++++++++++++----------------- 1 file changed, 150 insertions(+), 86 deletions(-) (limited to 'src') diff --git a/src/field/slot_machine.c b/src/field/slot_machine.c index 7691f4fa9..b1273ce7c 100644 --- a/src/field/slot_machine.c +++ b/src/field/slot_machine.c @@ -93,7 +93,7 @@ static bool8 sub_8102A44(void); static bool8 sub_8102A9C(struct Task *task); static bool8 sub_8102AD0(struct Task *task); static bool8 sub_8102B80(struct Task *task); -static u8 sub_8102BA4(u8 x, s16 y); +static u8 GetTagOfReelSymbolOnScreenAtPos(u8 x, s16 y); static void sub_8102DA8(void); static void sub_8102DEC(u8 a0); static void sub_8102E1C(u8 a0); @@ -392,8 +392,8 @@ static void SlotMachineSetup_0_1(void) for (i = 0; i < 3; i++) { eSlotMachine->unk22[i] = 0; - eSlotMachine->unk28[i] = gUnknown_083ECCF8[i][eSlotMachine->unk03] % 21; - eSlotMachine->unk1C[i] = 0x1f8 - eSlotMachine->unk28[i] * 24; + eSlotMachine->reelPositions[i] = gUnknown_083ECCF8[i][eSlotMachine->unk03] % 21; + eSlotMachine->unk1C[i] = 0x1f8 - eSlotMachine->reelPositions[i] * 24; eSlotMachine->unk1C[i] %= 0x1f8; } } @@ -1137,9 +1137,9 @@ static void CheckMatch_CenterRow(void) { u8 c1, c2, c3, match; - c1 = sub_8102BA4(0, 2); - c2 = sub_8102BA4(1, 2); - c3 = sub_8102BA4(2, 2); + c1 = GetTagOfReelSymbolOnScreenAtPos(0, 2); + c2 = GetTagOfReelSymbolOnScreenAtPos(1, 2); + c3 = GetTagOfReelSymbolOnScreenAtPos(2, 2); match = GetMatchFromSymbolsInRow(c1, c2, c3); if (match != SLOT_MACHINE_MATCHED_NONE) { @@ -1153,9 +1153,9 @@ static void CheckMatch_TopAndBottom(void) { u8 c1, c2, c3, match; - c1 = sub_8102BA4(0, 1); - c2 = sub_8102BA4(1, 1); - c3 = sub_8102BA4(2, 1); + c1 = GetTagOfReelSymbolOnScreenAtPos(0, 1); + c2 = GetTagOfReelSymbolOnScreenAtPos(1, 1); + c3 = GetTagOfReelSymbolOnScreenAtPos(2, 1); match = GetMatchFromSymbolsInRow(c1, c2, c3); if (match != SLOT_MACHINE_MATCHED_NONE) { @@ -1167,9 +1167,9 @@ static void CheckMatch_TopAndBottom(void) eSlotMachine->matchedSymbols |= sSlotMatchFlags[match]; sub_8103E04(1); } - c1 = sub_8102BA4(0, 3); - c2 = sub_8102BA4(1, 3); - c3 = sub_8102BA4(2, 3); + c1 = GetTagOfReelSymbolOnScreenAtPos(0, 3); + c2 = GetTagOfReelSymbolOnScreenAtPos(1, 3); + c3 = GetTagOfReelSymbolOnScreenAtPos(2, 3); match = GetMatchFromSymbolsInRow(c1, c2, c3); if (match != SLOT_MACHINE_MATCHED_NONE) { @@ -1187,9 +1187,9 @@ static void CheckMatch_Diagonals(void) { u8 c1, c2, c3, match; - c1 = sub_8102BA4(0, 1); - c2 = sub_8102BA4(1, 2); - c3 = sub_8102BA4(2, 3); + c1 = GetTagOfReelSymbolOnScreenAtPos(0, 1); + c2 = GetTagOfReelSymbolOnScreenAtPos(1, 2); + c3 = GetTagOfReelSymbolOnScreenAtPos(2, 3); match = GetMatchFromSymbolsInRow(c1, c2, c3); if (match != SLOT_MACHINE_MATCHED_NONE) { @@ -1200,9 +1200,9 @@ static void CheckMatch_Diagonals(void) } sub_8103E04(3); } - c1 = sub_8102BA4(0, 3); - c2 = sub_8102BA4(1, 2); - c3 = sub_8102BA4(2, 1); + c1 = GetTagOfReelSymbolOnScreenAtPos(0, 3); + c2 = GetTagOfReelSymbolOnScreenAtPos(1, 2); + c3 = GetTagOfReelSymbolOnScreenAtPos(2, 1); match = GetMatchFromSymbolsInRow(c1, c2, c3); if (match != SLOT_MACHINE_MATCHED_NONE) { @@ -1223,15 +1223,15 @@ static u8 GetMatchFromSymbolsInRow(u8 c1, u8 c2, u8 c3) { return sSym2Match[c1]; } - if (c1 == SLOT_MACHINE_SYM_7_RED && c2 == SLOT_MACHINE_SYM_7_RED && c3 == SLOT_MACHINE_SYM_7_BLUE) + if (c1 == SLOT_MACHINE_TAG_7_RED && c2 == SLOT_MACHINE_TAG_7_RED && c3 == SLOT_MACHINE_TAG_7_BLUE) { return SLOT_MACHINE_MATCHED_777_MIXED; } - if (c1 == SLOT_MACHINE_SYM_7_BLUE && c2 == SLOT_MACHINE_SYM_7_BLUE && c3 == SLOT_MACHINE_SYM_7_RED) + if (c1 == SLOT_MACHINE_TAG_7_BLUE && c2 == SLOT_MACHINE_TAG_7_BLUE && c3 == SLOT_MACHINE_TAG_7_RED) { return SLOT_MACHINE_MATCHED_777_MIXED; } - if (c1 == SLOT_MACHINE_SYM_CHERRY) + if (c1 == SLOT_MACHINE_TAG_CHERRY) { return SLOT_MACHINE_MATCHED_1CHERRY; } @@ -1322,24 +1322,24 @@ static bool8 sub_8102B80(struct Task *task) return FALSE; } -static const u8 gUnknown_083ECCB2[][21]; +static const u8 sReelSymbols[][21]; -static u8 sub_8102BA4(u8 x, s16 y) +static u8 GetTagOfReelSymbolOnScreenAtPos(u8 x, s16 y) { - s16 offset = (eSlotMachine->unk28[x] + y) % 21; + s16 offset = (eSlotMachine->reelPositions[x] + y) % 21; if (offset < 0) { offset += 21; } - return gUnknown_083ECCB2[x][offset]; + return sReelSymbols[x][offset]; } -static u8 sub_8102BF8(u8 x, s16 y) +static u8 GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(u8 x, s16 y) { s16 r6 = 0; if ((eSlotMachine->unk1C[x]) % 24) r6 = -1; - return sub_8102BA4(x, y + r6); + return GetTagOfReelSymbolOnScreenAtPos(x, y + r6); } static const u8 gUnknown_083ECCF1[]; @@ -1356,7 +1356,7 @@ static void sub_8102C84(u8 a0, s16 a1) { eSlotMachine->unk1C[a0] += a1; eSlotMachine->unk1C[a0] %= 504; - eSlotMachine->unk28[a0] = 21 - eSlotMachine->unk1C[a0] / 24; + eSlotMachine->reelPositions[a0] = 21 - eSlotMachine->unk1C[a0] / 24; } static s16 sub_8102CCC(u8 a0, s16 a1) @@ -1528,20 +1528,20 @@ static bool8 sub_810305C(void) return gUnknown_083ECB64[eSlotMachine->bet - 1](r5, r3); } -static bool8 sub_81030A4(s16 a0, u8 a1, u8 a2) +static bool8 sub_81030A4(s16 y, u8 tag1, u8 tag2) { - u8 r1 = sub_8102BF8(0, a0); - if (r1 == a1 || r1 == a2) + u8 tag = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, y); + if (tag == tag1 || tag == tag2) { - eSlotMachine->unk07 = r1; + eSlotMachine->unk07 = tag; return TRUE; } return FALSE; } -static bool8 sub_81030E0(s16 a0) +static bool8 sub_81030E0(s16 y) { - if (sub_8102BF8(0, 1 - a0) == 4 || sub_8102BF8(0, 2 - a0) == 4 || sub_8102BF8(0, 3 - a0) == 4) + if (GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, 1 - y) == 4 || GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, 2 - y) == 4 || GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, 3 - y) == 4) { return TRUE; } @@ -1573,7 +1573,7 @@ static bool8 sub_8103154(u8 a0, u8 a1) return FALSE; } -static bool8 sub_81031B4(u8 a0, u8 a1) +static bool8 sub_81031B4(u8 tag1, u8 tag2) { s16 i; bool8 r6 = sub_8103134(); @@ -1581,7 +1581,7 @@ static bool8 sub_81031B4(u8 a0, u8 a1) { for (i = 1; i < 4; i++) { - if (sub_81030A4(i, a0, a1)) + if (sub_81030A4(i, tag1, tag2)) { eSlotMachine->unk34[0] = i; eSlotMachine->unk2E[0] = 0; @@ -1594,7 +1594,7 @@ static bool8 sub_81031B4(u8 a0, u8 a1) bool8 r7 = r6; if (r7 || !sub_81030E0(i)) { - if (sub_81030A4(1 - i, a0, a1)) + if (sub_81030A4(1 - i, tag1, tag2)) { if (i == 1 && (r7 || !sub_81030E0(3))) { @@ -1635,7 +1635,7 @@ static bool8 sub_81032E8(void) for (i = 0; i < 5; i++) { - if (sub_8102BF8(1, unk34_0 - i) == eSlotMachine->unk07) + if (GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(1, unk34_0 - i) == eSlotMachine->unk07) { eSlotMachine->unk34[1] = unk34_0; eSlotMachine->unk2E[1] = i; @@ -1654,7 +1654,7 @@ static bool8 sub_810333C(void) { for (i = 0; i < 5; i++) { - if (sub_8102BF8(1, 2 - i) == eSlotMachine->unk07) + if (GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(1, 2 - i) == eSlotMachine->unk07) { eSlotMachine->unk34[1] = 2; eSlotMachine->unk2E[1] = i; @@ -1668,7 +1668,7 @@ static bool8 sub_810333C(void) { for (i = 0; i < 5; i++) { - if (sub_8102BF8(1, 2 - i) == eSlotMachine->unk07) + if (GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(1, 2 - i) == eSlotMachine->unk07) { eSlotMachine->unk34[1] = 2; eSlotMachine->unk2E[1] = i; @@ -1706,7 +1706,7 @@ static bool8 sub_810341C(u8 a0) for (i = 0; i < 5; i++) { - if (sub_8102BF8(2, unk34_1 - i) == a0) + if (GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(2, unk34_1 - i) == a0) { eSlotMachine->unk34[2] = unk34_1; eSlotMachine->unk2E[2] = i; @@ -1731,7 +1731,7 @@ static bool8 sub_810347C(u8 a0) } for (i = 0; i < 5; i++) { - if (sub_8102BF8(2, r8 - i) == a0) + if (GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(2, r8 - i) == a0) { eSlotMachine->unk2E[2] = i; eSlotMachine->unk34[2] = r8; @@ -1778,13 +1778,13 @@ static void sub_8103564(void) { if (eSlotMachine->unk34[0] != 0 && eSlotMachine->unk04 & 0x80) { - u8 sp0 = sub_8102BF8(0, 2 - eSlotMachine->unk2E[0]); + u8 sp0 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, 2 - eSlotMachine->unk2E[0]); if (sub_8103520(&sp0)) { s16 i; for (i = 0; i < 5; i++) { - if (sp0 == sub_8102BF8(1, 2 - i)) + if (sp0 == GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(1, 2 - i)) { eSlotMachine->unk34[1] = 2; eSlotMachine->unk2E[1] = i; @@ -1799,13 +1799,13 @@ static void j5_08111E84(void) { if (eSlotMachine->unk34[0] != 0 && eSlotMachine->unk04 & 0x80) { - u8 sp0 = sub_8102BF8(0, eSlotMachine->unk34[0] - eSlotMachine->unk2E[0]); + u8 sp0 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, eSlotMachine->unk34[0] - eSlotMachine->unk2E[0]); if (sub_8103520(&sp0)) { s16 i; for (i = 0; i < 5; i++) { - if (sp0 == sub_8102BF8(1, eSlotMachine->unk34[0] - i)) + if (sp0 == GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(1, eSlotMachine->unk34[0] - i)) { eSlotMachine->unk34[1] = eSlotMachine->unk34[0]; eSlotMachine->unk2E[1] = i; @@ -1819,7 +1819,7 @@ static void j5_08111E84(void) static void sub_8103668(void) { s16 i; - s16 r6; + s16 j; if (eSlotMachine->unk34[0] != 0 && eSlotMachine->unk04 & 0x80) { if (eSlotMachine->unk34[0] == 2) @@ -1828,49 +1828,49 @@ static void sub_8103668(void) } else { - u8 sp0 = sub_8102BF8(0, eSlotMachine->unk34[0] - eSlotMachine->unk2E[0]); + u8 sp0 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, eSlotMachine->unk34[0] - eSlotMachine->unk2E[0]); if (sub_8103520(&sp0)) { - r6 = 2; + j = 2; if (eSlotMachine->unk34[0] == 3) - r6 = 3; - for (i = 0; i < 2; i++, r6--) + j = 3; + for (i = 0; i < 2; i++, j--) { - if (sp0 == sub_8102BF8(1, r6)) + if (sp0 == GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(1, j)) { - eSlotMachine->unk34[1] = r6; + eSlotMachine->unk34[1] = j; eSlotMachine->unk2E[1] = 0; return; } } - for (r6 = 1; r6 < 5; r6++) + for (j = 1; j < 5; j++) { - if (sp0 == sub_8102BF8(1, eSlotMachine->unk34[0] - r6)) + if (sp0 == GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(1, eSlotMachine->unk34[0] - j)) { if (eSlotMachine->unk34[0] == 1) { - if (r6 < 3) + if (j < 3) { eSlotMachine->unk34[1] = 2; - eSlotMachine->unk2E[1] = r6 + 1; + eSlotMachine->unk2E[1] = j + 1; } else { eSlotMachine->unk34[1] = 1; - eSlotMachine->unk2E[1] = r6; + eSlotMachine->unk2E[1] = j; } } else { - if (r6 < 3) + if (j < 3) { eSlotMachine->unk34[1] = 3; - eSlotMachine->unk2E[1] = r6; + eSlotMachine->unk2E[1] = j; } else { eSlotMachine->unk34[1] = 2; - eSlotMachine->unk2E[1] = r6 - 1; + eSlotMachine->unk2E[1] = j - 1; } } return; @@ -1926,14 +1926,14 @@ static void sub_810380C(void) static void sub_8103830(void) { s16 i = 0; - u8 r5 = sub_8102BF8(0, 2 - eSlotMachine->unk2E[0]); - u8 r1 = sub_8102BF8(1, 2 - eSlotMachine->unk2E[1]); + u8 r5 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, 2 - eSlotMachine->unk2E[0]); + u8 r1 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(1, 2 - eSlotMachine->unk2E[1]); if (r5 == r1) { while (1) { u8 r0; - if (!(r5 == (r0 = sub_8102BF8(2, 2 - i)) || (r5 == 0 && r0 == 1) || (r5 == 1 && r0 == 0))) + if (!(r5 == (r0 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(2, 2 - i)) || (r5 == 0 && r0 == 1) || (r5 == 1 && r0 == 0))) { break; } @@ -1946,7 +1946,7 @@ static void sub_8103830(void) { for (i = 0; i < 5; i++) { - if (r5 == sub_8102BF8(2, 2 - i)) + if (r5 == GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(2, 2 - i)) { eSlotMachine->unk2E[2] = i; return; @@ -1956,7 +1956,7 @@ static void sub_8103830(void) i = 0; while (1) { - if (r5 != sub_8102BF8(2, 2 - i)) + if (r5 != GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(2, 2 - i)) { break; } @@ -1976,13 +1976,13 @@ static void sub_8103910(void) if (eSlotMachine->unk34[1] != 0 && eSlotMachine->unk34[0] == eSlotMachine->unk34[1] && eSlotMachine->unk04 & 0x80) { - r7 = sub_8102BF8(0, eSlotMachine->unk34[0] - eSlotMachine->unk2E[0]); - r6 = sub_8102BF8(1, eSlotMachine->unk34[1] - eSlotMachine->unk2E[1]); + r7 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, eSlotMachine->unk34[0] - eSlotMachine->unk2E[0]); + r6 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(1, eSlotMachine->unk34[1] - eSlotMachine->unk2E[1]); if (sub_8103764(r7, r6)) { for (i = 0; i < 5; i++) { - r4 = sub_8102BF8(2, eSlotMachine->unk34[1] - i); + r4 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(2, eSlotMachine->unk34[1] - i); if (r7 == r4) { sp0 = i; @@ -1996,9 +1996,9 @@ static void sub_8103910(void) s16 r8; for (i = 1, r8 = 0; i < 4; i++) { - r7 = sub_8102BF8(0, i - eSlotMachine->unk2E[0]); - r6 = sub_8102BF8(1, i - eSlotMachine->unk2E[1]); - r4 = sub_8102BF8(2, i - sp0); + r7 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, i - eSlotMachine->unk2E[0]); + r6 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(1, i - eSlotMachine->unk2E[1]); + r4 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(2, i - sp0); if (!sub_81037BC(r7, r6, r4) && (!sub_810378C(r7, r6, r4) || !(eSlotMachine->unk04 & 0x80))) { r8++; @@ -2025,8 +2025,8 @@ static void sub_8103A78(void) sub_8103910(); if (eSlotMachine->unk34[1] != 0 && eSlotMachine->unk34[0] != eSlotMachine->unk34[1] && eSlotMachine->unk04 & 0x80) { - r6 = sub_8102BF8(0, eSlotMachine->unk34[0] - eSlotMachine->unk2E[0]); - r5 = sub_8102BF8(1, eSlotMachine->unk34[1] - eSlotMachine->unk2E[1]); + r6 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, eSlotMachine->unk34[0] - eSlotMachine->unk2E[0]); + r5 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(1, eSlotMachine->unk34[1] - eSlotMachine->unk2E[1]); if (sub_8103764(r6, r5)) { r8 = 1; @@ -2034,7 +2034,7 @@ static void sub_8103A78(void) r8 = 3; for (i = 0; i < 5; i++) { - r4 = sub_8102BF8(2, r8 - (eSlotMachine->unk2E[2] + i)); + r4 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(2, r8 - (eSlotMachine->unk2E[2] + i)); if (r6 == r4) { eSlotMachine->unk2E[2] += i; @@ -2045,18 +2045,18 @@ static void sub_8103A78(void) } while (1) { - r6 = sub_8102BF8(0, 1 - eSlotMachine->unk2E[0]); - r5 = sub_8102BF8(1, 2 - eSlotMachine->unk2E[1]); - r4 = sub_8102BF8(2, 3 - eSlotMachine->unk2E[2]); + r6 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, 1 - eSlotMachine->unk2E[0]); + r5 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(1, 2 - eSlotMachine->unk2E[1]); + r4 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(2, 3 - eSlotMachine->unk2E[2]); if (sub_81037BC(r6, r5, r4) || (sub_810378C(r6, r5, r4) && eSlotMachine->unk04 & 0x80)) break; eSlotMachine->unk2E[2]++; } while (1) { - r6 = sub_8102BF8(0, 3 - eSlotMachine->unk2E[0]); - r5 = sub_8102BF8(1, 2 - eSlotMachine->unk2E[1]); - r4 = sub_8102BF8(2, 1 - eSlotMachine->unk2E[2]); + r6 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, 3 - eSlotMachine->unk2E[0]); + r5 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(1, 2 - eSlotMachine->unk2E[1]); + r4 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(2, 1 - eSlotMachine->unk2E[2]); if (sub_81037BC(r6, r5, r4) || (sub_810378C(r6, r5, r4) && eSlotMachine->unk04 & 0x80)) break; eSlotMachine->unk2E[2]++; @@ -2968,7 +2968,7 @@ static void sub_8104F18(struct Sprite *sprite) sprite->data[2] = eSlotMachine->unk1C[sprite->data[0]] + sprite->data[1]; sprite->data[2] %= 120; sprite->pos1.y = eSlotMachine->unk22[sprite->data[0]] + 28 + sprite->data[2]; - sprite->sheetTileStart = GetSpriteTileStartByTag(sub_8102BA4(sprite->data[0], sprite->data[2] / 24)); + sprite->sheetTileStart = GetSpriteTileStartByTag(GetTagOfReelSymbolOnScreenAtPos(sprite->data[0], sprite->data[2] / 24)); SetSpriteSheetFrameTileNum(sprite); } @@ -3982,10 +3982,74 @@ static void sub_81065DC(void) { } } -static const u8 gUnknown_083ECCB2[][21] = { - {0, 4, 2, 6, 5, 3, 1, 3, 4, 5, 6, 2, 0, 5, 3, 6, 2, 1, 5, 3, 6}, - {0, 4, 6, 3, 2, 4, 6, 5, 5, 3, 1, 3, 6, 4, 2, 3, 6, 4, 3, 6, 4}, - {0, 5, 1, 6, 3, 2, 6, 3, 5, 2, 6, 3, 2, 5, 6, 3, 2, 5, 6, 3, 4} +static const u8 sReelSymbols[][21] = { + { + SLOT_MACHINE_TAG_7_RED, + SLOT_MACHINE_TAG_CHERRY, + SLOT_MACHINE_TAG_AZURILL, + SLOT_MACHINE_TAG_REPLAY, + SLOT_MACHINE_TAG_POWER, + SLOT_MACHINE_TAG_LOTAD, + SLOT_MACHINE_TAG_7_BLUE, + SLOT_MACHINE_TAG_LOTAD, + SLOT_MACHINE_TAG_CHERRY, + SLOT_MACHINE_TAG_POWER, + SLOT_MACHINE_TAG_REPLAY, + SLOT_MACHINE_TAG_AZURILL, + SLOT_MACHINE_TAG_7_RED, + SLOT_MACHINE_TAG_POWER, + SLOT_MACHINE_TAG_LOTAD, + SLOT_MACHINE_TAG_REPLAY, + SLOT_MACHINE_TAG_AZURILL, + SLOT_MACHINE_TAG_7_BLUE, + SLOT_MACHINE_TAG_POWER, + SLOT_MACHINE_TAG_LOTAD, + SLOT_MACHINE_TAG_REPLAY + }, { + SLOT_MACHINE_TAG_7_RED, + SLOT_MACHINE_TAG_CHERRY, + SLOT_MACHINE_TAG_REPLAY, + SLOT_MACHINE_TAG_LOTAD, + SLOT_MACHINE_TAG_AZURILL, + SLOT_MACHINE_TAG_CHERRY, + SLOT_MACHINE_TAG_REPLAY, + SLOT_MACHINE_TAG_POWER, + SLOT_MACHINE_TAG_POWER, + SLOT_MACHINE_TAG_LOTAD, + SLOT_MACHINE_TAG_7_BLUE, + SLOT_MACHINE_TAG_LOTAD, + SLOT_MACHINE_TAG_REPLAY, + SLOT_MACHINE_TAG_CHERRY, + SLOT_MACHINE_TAG_AZURILL, + SLOT_MACHINE_TAG_LOTAD, + SLOT_MACHINE_TAG_REPLAY, + SLOT_MACHINE_TAG_CHERRY, + SLOT_MACHINE_TAG_LOTAD, + SLOT_MACHINE_TAG_REPLAY, + SLOT_MACHINE_TAG_CHERRY + }, { + SLOT_MACHINE_TAG_7_RED, + SLOT_MACHINE_TAG_POWER, + SLOT_MACHINE_TAG_7_BLUE, + SLOT_MACHINE_TAG_REPLAY, + SLOT_MACHINE_TAG_LOTAD, + SLOT_MACHINE_TAG_AZURILL, + SLOT_MACHINE_TAG_REPLAY, + SLOT_MACHINE_TAG_LOTAD, + SLOT_MACHINE_TAG_POWER, + SLOT_MACHINE_TAG_AZURILL, + SLOT_MACHINE_TAG_REPLAY, + SLOT_MACHINE_TAG_LOTAD, + SLOT_MACHINE_TAG_AZURILL, + SLOT_MACHINE_TAG_POWER, + SLOT_MACHINE_TAG_REPLAY, + SLOT_MACHINE_TAG_LOTAD, + SLOT_MACHINE_TAG_AZURILL, + SLOT_MACHINE_TAG_POWER, + SLOT_MACHINE_TAG_REPLAY, + SLOT_MACHINE_TAG_LOTAD, + SLOT_MACHINE_TAG_CHERRY + } }; static const u8 gUnknown_083ECCF1[] = { -- cgit v1.2.3 From 25bf57596507492210c36cffb1dfb6b9bf626df7 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 4 Jan 2018 18:03:10 -0500 Subject: propagate SLOT_MACHINE_MATCHED enums --- src/field/slot_machine.c | 56 +++++++++++++++++++++++++++--------------------- 1 file changed, 32 insertions(+), 24 deletions(-) (limited to 'src') diff --git a/src/field/slot_machine.c b/src/field/slot_machine.c index b1273ce7c..bfad257d4 100644 --- a/src/field/slot_machine.c +++ b/src/field/slot_machine.c @@ -20,7 +20,7 @@ struct UnkStruct1 { /*0x00*/ u8 unk00; /*0x01*/ u8 unk01; - /*0x02*/ s16 unk02; + /*0x02*/ s16 pikaPower; }; #if ENGLISH @@ -372,7 +372,7 @@ static void SlotMachineSetup_0_1(void) sub_81019EC(); eSlotMachine->state = 0; - eSlotMachine->unk02 = 0; + eSlotMachine->pikaPower = 0; eSlotMachine->unk03 = Random() & 1; eSlotMachine->unk04 = 0; eSlotMachine->matchedSymbols = 0; @@ -481,7 +481,7 @@ static void sub_8101D24(u8 taskId) static bool8 sub_8101D5C(struct Task *task) { BeginNormalPaletteFade(-1, 0, 16, 0, 0); - sub_810423C(eSlotMachine->unk02); + sub_810423C(eSlotMachine->pikaPower); eSlotMachine->state++; return FALSE; } @@ -706,12 +706,12 @@ static bool8 sub_81020C8(struct Task *task) { eSlotMachine->unk10 = 0; } - if (eSlotMachine->matchedSymbols & 0x180) + if (eSlotMachine->matchedSymbols & ((1 << SLOT_MACHINE_MATCHED_777_BLUE) | (1 << SLOT_MACHINE_MATCHED_777_RED))) { PlayFanfare(BGM_ME_B_BIG); sub_8104CAC(6); } - else if (eSlotMachine->matchedSymbols & 0x40) + else if (eSlotMachine->matchedSymbols & (1 << SLOT_MACHINE_MATCHED_777_MIXED)) { PlayFanfare(BGM_ME_B_BIG); sub_8104CAC(5); @@ -721,24 +721,24 @@ static bool8 sub_81020C8(struct Task *task) PlayFanfare(BGM_ME_B_SMALL); sub_8104CAC(2); } - if (eSlotMachine->matchedSymbols & 0x1c0) + if (eSlotMachine->matchedSymbols & ((1 << SLOT_MACHINE_MATCHED_777_MIXED) | (1 << SLOT_MACHINE_MATCHED_777_BLUE) | (1 << SLOT_MACHINE_MATCHED_777_RED))) { eSlotMachine->unk04 &= 0x3f; - if (eSlotMachine->matchedSymbols & 0x180) + if (eSlotMachine->matchedSymbols & ((1 << SLOT_MACHINE_MATCHED_777_BLUE) | (1 << SLOT_MACHINE_MATCHED_777_RED))) { eSlotMachine->unk0A = 0; eSlotMachine->unk0B = 0; eSlotMachine->unk03 = 0; - if (eSlotMachine->matchedSymbols & 0x100) + if (eSlotMachine->matchedSymbols & (1 << SLOT_MACHINE_MATCHED_777_BLUE)) { eSlotMachine->unk03 = 1; } } } - if (eSlotMachine->matchedSymbols & 0x20 && eSlotMachine->unk02 < 16) + if (eSlotMachine->matchedSymbols & (1 << SLOT_MACHINE_MATCHED_POWER) && eSlotMachine->pikaPower < 16) { - eSlotMachine->unk02++; - sub_8104064(eSlotMachine->unk02); + eSlotMachine->pikaPower++; + sub_8104064(eSlotMachine->pikaPower); } } else @@ -767,20 +767,20 @@ static bool8 sub_81021FC(struct Task *task) if (sub_8103FA0()) { eSlotMachine->state = 19; - if (eSlotMachine->matchedSymbols & 0x180) + if (eSlotMachine->matchedSymbols & ((1 << SLOT_MACHINE_MATCHED_777_RED) | (1 << SLOT_MACHINE_MATCHED_777_BLUE))) { IncrementGameStat(GAME_STAT_SLOT_JACKPOTS); } - if (eSlotMachine->matchedSymbols & 0x04) + if (eSlotMachine->matchedSymbols & (1 << SLOT_MACHINE_MATCHED_REPLAY)) { eSlotMachine->unk18 = 0; eSlotMachine->state = 9; } - if (eSlotMachine->matchedSymbols & 0x20) + if (eSlotMachine->matchedSymbols & (1 << SLOT_MACHINE_MATCHED_POWER)) { eSlotMachine->state = 17; } - if (eSlotMachine->unk0A && eSlotMachine->matchedSymbols & 0x04) + if (eSlotMachine->unk0A && eSlotMachine->matchedSymbols & (1 << SLOT_MACHINE_MATCHED_REPLAY)) { sub_8104CAC(4); eSlotMachine->state = 18; @@ -794,7 +794,7 @@ static bool8 sub_8102264(struct Task *task) if (!sub_81040C8()) { eSlotMachine->state = 19; - if (eSlotMachine->matchedSymbols & 0x04) + if (eSlotMachine->matchedSymbols & (1 << SLOT_MACHINE_MATCHED_REPLAY)) { eSlotMachine->state = 9; if (eSlotMachine->unk0A) @@ -812,7 +812,7 @@ static bool8 sub_81022A0(struct Task *task) if (sub_8104E18()) { eSlotMachine->state = 19; - if (eSlotMachine->matchedSymbols & 0x04) + if (eSlotMachine->matchedSymbols & (1 << SLOT_MACHINE_MATCHED_REPLAY)) { eSlotMachine->state = 9; } @@ -1038,9 +1038,9 @@ static u8 sub_810264C(u8 a0) { if (eSlotMachine->unk03 == 0) { - return gUnknown_083ECD46[a0][eSlotMachine->unk02]; + return gUnknown_083ECD46[a0][eSlotMachine->pikaPower]; } - return gUnknown_083ECDAC[a0][eSlotMachine->unk02]; + return gUnknown_083ECDAC[a0][eSlotMachine->pikaPower]; } static void sub_8102680(void) @@ -2595,10 +2595,10 @@ static void sub_81046C0(struct Task *task) task->data[4] = 0xc0; StartSpriteAnimIfDifferent(gSprites + eSlotMachine->unk3F, 4); gSprites[eSlotMachine->unk3F].animCmdIndex = 0; - if (eSlotMachine->unk02) + if (eSlotMachine->pikaPower) { sub_8104098(); - eSlotMachine->unk02 = 0; + eSlotMachine->pikaPower = 0; } PlayFanfare(BGM_ME_B_SMALL); } @@ -2828,7 +2828,7 @@ static void sub_8104BFC(struct Task *task) BasicInitMenuWindow(&gWindowConfig_81E7128); sub_81064B8(); sub_8104CAC(task->data[1]); - sub_810423C(eSlotMachine->unk02); + sub_810423C(eSlotMachine->pikaPower); BeginNormalPaletteFade(-1, 0, 16, 0, 0); task->data[0]++; } @@ -2869,7 +2869,7 @@ static void sub_8104CAC(u8 arg0) { spriteId = sub_8105BB4( gUnknown_083ED048[arg0][i].unk00, gUnknown_083ED048[arg0][i].unk01, - gUnknown_083ED048[arg0][i].unk02 + gUnknown_083ED048[arg0][i].pikaPower ); task->data[4 + i] = spriteId; @@ -4143,7 +4143,15 @@ static const u8 sSym2Match[] = { }; static const u16 sSlotMatchFlags[] = { - 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x100 + 1 << SLOT_MACHINE_MATCHED_1CHERRY, + 1 << SLOT_MACHINE_MATCHED_2CHERRY, + 1 << SLOT_MACHINE_MATCHED_REPLAY, + 1 << SLOT_MACHINE_MATCHED_LOTAD, + 1 << SLOT_MACHINE_MATCHED_AZURILL, + 1 << SLOT_MACHINE_MATCHED_POWER, + 1 << SLOT_MACHINE_MATCHED_777_MIXED, + 1 << SLOT_MACHINE_MATCHED_777_RED, + 1 << SLOT_MACHINE_MATCHED_777_BLUE }; static const u16 sSlotPayouts[] = { -- cgit v1.2.3 From ed5f6107c4051c0a8056824ce0437862909b579d Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 4 Jan 2018 18:08:40 -0500 Subject: piKAPOWer --- src/field/slot_machine.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/field/slot_machine.c b/src/field/slot_machine.c index bfad257d4..a524790b4 100644 --- a/src/field/slot_machine.c +++ b/src/field/slot_machine.c @@ -20,7 +20,7 @@ struct UnkStruct1 { /*0x00*/ u8 unk00; /*0x01*/ u8 unk01; - /*0x02*/ s16 pikaPower; + /*0x02*/ s16 unk02; }; #if ENGLISH @@ -139,7 +139,7 @@ static void sub_8103F70(void); static bool8 sub_8103FA0(void); static void sub_8103FE8(u8 taskId); static void sub_8104048(void); -static void sub_8104064(u8 unused); +static void sub_8104064(u8 pikaPower); static bool8 sub_81040C8(void); static void sub_81040E8(u8 taskId); static void nullsub_68(struct Task *task); @@ -147,7 +147,7 @@ static void sub_810411C(struct Task *task); static void sub_8104144(struct Task *task); static void sub_81041AC(struct Task *task); static void sub_810421C(struct Task *task); -static void sub_810423C(u8 a0); +static void sub_810423C(u8 pikaPower); static void sub_810430C(void); static bool8 sub_810432C(void); static void sub_810434C(u8 taskId); @@ -2262,7 +2262,7 @@ static void sub_8104048(void) eSlotMachine->unk3E = CreateTask(sub_81040E8, 8); } -static void sub_8104064(u8 unused) +static void sub_8104064(u8 pikaPower) { struct Task *task = gTasks + eSlotMachine->unk3E; sub_810421C(task); @@ -2362,13 +2362,13 @@ static void sub_810421C(struct Task *task) task->data[i] = 0; } -static void sub_810423C(u8 a0) +static void sub_810423C(u8 pikaPower) { s16 i; u8 r3; s16 r2 = 3; u16 *vaddr = (u16 *)BG_SCREEN_ADDR(29); - for (i = 0; i < a0; i++, r2++) + for (i = 0; i < pikaPower; i++, r2++) { r3 = 0; if (i == 0) @@ -2386,7 +2386,7 @@ static void sub_810423C(u8 a0) r3 = 2; vaddr[r2 + 0x40] = gUnknown_083ECBC4[r3][1]; } - gTasks[eSlotMachine->unk3E].data[1] = a0; + gTasks[eSlotMachine->unk3E].data[1] = pikaPower; } static void sub_810430C(void) @@ -2869,7 +2869,7 @@ static void sub_8104CAC(u8 arg0) { spriteId = sub_8105BB4( gUnknown_083ED048[arg0][i].unk00, gUnknown_083ED048[arg0][i].unk01, - gUnknown_083ED048[arg0][i].pikaPower + gUnknown_083ED048[arg0][i].unk02 ); task->data[4 + i] = spriteId; -- cgit v1.2.3