summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--data/roulette.s44
-rw-r--r--include/roulette_util.h2
-rw-r--r--src/roulette.c168
-rw-r--r--src/roulette_util.c2
4 files changed, 165 insertions, 51 deletions
diff --git a/data/roulette.s b/data/roulette.s
index 425af8b5e..fb3772227 100644
--- a/data/roulette.s
+++ b/data/roulette.s
@@ -3,50 +3,6 @@
.section .rodata
- .align 2
-gUnknown_083F8E34:: @ 83F8E34
- .byte 0x00,0x80,0x05,0x00,0x01,0x01,0xFF,0x48
- .byte 0x00,0x80,0x0A,0x00,0x01,0x01,0xFF,0x48
- .byte 0x00,0x80,0x15,0x00,0x01,0x01,0xFF,0x48
- .byte 0x00,0x80,0x55,0x00,0x01,0x01,0xFF,0x48
- .byte 0x00,0x80,0x5A,0x00,0x01,0x01,0xFF,0x48
- .byte 0x00,0x80,0x65,0x00,0x01,0x01,0xFF,0x48
- .byte 0x00,0x80,0x75,0x00,0x01,0x01,0xFF,0x48
- .byte 0x00,0x80,0x7A,0x00,0x01,0x01,0xFF,0x48
- .byte 0x00,0x80,0x85,0x00,0x01,0x01,0xFF,0x48
- .byte 0x00,0x80,0x95,0x00,0x01,0x01,0xFF,0x48
- .byte 0x00,0x80,0x9A,0x00,0x01,0x01,0xFF,0x48
- .byte 0x00,0x80,0xA5,0x00,0x01,0x01,0xFF,0x48
- .byte 0xD6,0x77,0x28,0x00,0x02,0x0A,0xFF,0x4E
-
- .align 1
-gUnknown_083F8E9C:: @ 83F8E9C
-// {0x53ff, 0x0101, 0x05, 0x1e, 0xff, 0x0e, 0x02, 0x00}
-// {0x7ffb, 0x0106, 0x05, 0x1e, 0xff, 0x0e, 0x02, 0x00}
-// {0x7f7f, 0x010b, 0x05, 0x1e, 0xff, 0x0e, 0x02, 0x00}
- .2byte 0x53FF
- .2byte 0x0101
- .2byte 0x1E05
- .2byte 0x4EFF
- .2byte 0x7FFB
- .2byte 0x0106
- .2byte 0x1E05
- .2byte 0x4EFF
- .2byte 0x7F7F
- .2byte 0x010B
- .2byte 0x1E05
- .2byte 0x4EFF
-
- .align 2
-gUnknown_083F8EB4:: @ 83F8EB4
- .4byte sub_811755C
- .4byte sub_81175C0
-
- .align 2
-gUnknown_083F8EBC:: @ 83F8EBC
- .4byte sub_811577C
- .4byte sub_81157AC
-
// These objects are initialied in the functions in which they are used.
.align 1
diff --git a/include/roulette_util.h b/include/roulette_util.h
index daeaeeeef..1b731bc61 100644
--- a/include/roulette_util.h
+++ b/include/roulette_util.h
@@ -4,7 +4,7 @@
#include "roulette.h"
void sub_8124918(struct UnkStruct0 *);
-u8 sub_812492C(struct UnkStruct0 *, u8, struct UnkStruct1 *);
+u8 sub_812492C(struct UnkStruct0 *, u8, const struct UnkStruct1 *);
void task_tutorial_controls_fadein(struct UnkStruct0 *);
void sub_8124CE8(struct UnkStruct0 *, u16);
void sub_8124D3C(struct UnkStruct0 *, u16);
diff --git a/src/roulette.c b/src/roulette.c
index 7f69f41bb..1c8ea78b2 100644
--- a/src/roulette.c
+++ b/src/roulette.c
@@ -319,10 +319,171 @@ const struct StructgUnknown_083F8DF4 gUnknown_083F8DF4[] = {
}
};
+const struct UnkStruct1 gUnknown_083F8E34[] = {
+ {
+ .var00 = 0x8000,
+ .var02 = 0x0005,
+ .var04 = 0x01,
+ .var05 = 0x01,
+ .var06 = 0xFF,
+ .var07_0 = 8,
+ .var07_5 = 2,
+ .var07_7 = FALSE
+ }, {
+ .var00 = 0x8000,
+ .var02 = 0x000A,
+ .var04 = 0x01,
+ .var05 = 0x01,
+ .var06 = 0xFF,
+ .var07_0 = 8,
+ .var07_5 = 2,
+ .var07_7 = FALSE
+ }, {
+ .var00 = 0x8000,
+ .var02 = 0x0015,
+ .var04 = 0x01,
+ .var05 = 0x01,
+ .var06 = 0xFF,
+ .var07_0 = 8,
+ .var07_5 = 2,
+ .var07_7 = FALSE
+ }, {
+ .var00 = 0x8000,
+ .var02 = 0x0055,
+ .var04 = 0x01,
+ .var05 = 0x01,
+ .var06 = 0xFF,
+ .var07_0 = 8,
+ .var07_5 = 2,
+ .var07_7 = FALSE
+ }, {
+ .var00 = 0x8000,
+ .var02 = 0x005A,
+ .var04 = 0x01,
+ .var05 = 0x01,
+ .var06 = 0xFF,
+ .var07_0 = 8,
+ .var07_5 = 2,
+ .var07_7 = FALSE
+ }, {
+ .var00 = 0x8000,
+ .var02 = 0x0065,
+ .var04 = 0x01,
+ .var05 = 0x01,
+ .var06 = 0xFF,
+ .var07_0 = 8,
+ .var07_5 = 2,
+ .var07_7 = FALSE
+ }, {
+ .var00 = 0x8000,
+ .var02 = 0x0075,
+ .var04 = 0x01,
+ .var05 = 0x01,
+ .var06 = 0xFF,
+ .var07_0 = 8,
+ .var07_5 = 2,
+ .var07_7 = FALSE
+ }, {
+ .var00 = 0x8000,
+ .var02 = 0x007A,
+ .var04 = 0x01,
+ .var05 = 0x01,
+ .var06 = 0xFF,
+ .var07_0 = 8,
+ .var07_5 = 2,
+ .var07_7 = FALSE
+ }, {
+ .var00 = 0x8000,
+ .var02 = 0x0085,
+ .var04 = 0x01,
+ .var05 = 0x01,
+ .var06 = 0xFF,
+ .var07_0 = 8,
+ .var07_5 = 2,
+ .var07_7 = FALSE
+ }, {
+ .var00 = 0x8000,
+ .var02 = 0x0095,
+ .var04 = 0x01,
+ .var05 = 0x01,
+ .var06 = 0xFF,
+ .var07_0 = 8,
+ .var07_5 = 2,
+ .var07_7 = FALSE
+ }, {
+ .var00 = 0x8000,
+ .var02 = 0x009A,
+ .var04 = 0x01,
+ .var05 = 0x01,
+ .var06 = 0xFF,
+ .var07_0 = 8,
+ .var07_5 = 2,
+ .var07_7 = FALSE
+ }, {
+ .var00 = 0x8000,
+ .var02 = 0x00A5,
+ .var04 = 0x01,
+ .var05 = 0x01,
+ .var06 = 0xFF,
+ .var07_0 = 8,
+ .var07_5 = 2,
+ .var07_7 = FALSE
+ }, {
+ .var00 = 0x77D6,
+ .var02 = 0x0028,
+ .var04 = 0x02,
+ .var05 = 0x0A,
+ .var06 = 0xFF,
+ .var07_0 = 14,
+ .var07_5 = 2,
+ .var07_7 = FALSE
+ }
+};
+
+const struct UnkStruct1 gUnknown_083F8E9C[] = {
+ {
+ .var00 = 0x53ff,
+ .var02 = 0x0101,
+ .var04 = 0x05,
+ .var05 = 0x1e,
+ .var06 = 0xff,
+ .var07_0 = 14,
+ .var07_5 = 2,
+ .var07_7 = FALSE
+ }, {
+ .var00 = 0x7ffb,
+ .var02 = 0x0106,
+ .var04 = 0x05,
+ .var05 = 0x1e,
+ .var06 = 0xff,
+ .var07_0 = 14,
+ .var07_5 = 2,
+ .var07_7 = FALSE
+ }, {
+ .var00 = 0x7f7f,
+ .var02 = 0x010b,
+ .var04 = 0x05,
+ .var05 = 0x1e,
+ .var06 = 0xff,
+ .var07_0 = 14,
+ .var07_5 = 2,
+ .var07_7 = FALSE
+ }
+};
+
+const struct YesNoFuncTable gUnknown_083F8EB4 = {
+ sub_811755C,
+ sub_81175C0
+};
+
+const struct YesNoFuncTable gUnknown_083F8EBC = {
+ sub_811577C,
+ sub_81157AC
+};
+
extern u8 gUnknown_02019000[];
extern u16 gSpecialVar_0x8004;
extern u8 gUnknown_083F8EC4;
-extern u8 gUnknown_083F8E34[];
extern const u8 gUnknown_08E8096C[];
extern const u8 gRouletteWheelTiles[];
extern const u8 gRouletteCenter_Gfx[];
@@ -333,7 +494,6 @@ extern const u8 gRouletteMultiplierTiles[];
extern u16 gPlttBufferFaded[];
extern u16 gPlttBufferUnfaded[];
extern const u8 gUnknown_081C4157[];
-extern const struct YesNoFuncTable gUnknown_083F8EBC;
extern const u8 gUnknown_081C41E3;
extern const u16 gUnknown_083F8ECE;
const extern u8 gUnknown_083F8ECA[];
@@ -346,9 +506,7 @@ const extern u8 gUnknown_081C4231;
const extern u8 gUnknown_081C41D2;
extern const u32 gUnknown_083F8ED8[];
extern const u32 gUnknown_083F8EE8[];
-extern const struct UnkStruct1 gUnknown_083F8E9C[];
extern const u8 gUnknown_083F8EF4[];
-extern const struct YesNoFuncTable gUnknown_083F8EB4;
extern const u8 gUnknown_081C40DF;
extern const u8 gUnknown_081C4139;
extern const u8 gUnknown_081C411C;
@@ -461,7 +619,7 @@ void sub_8115238(void)
gPlttBufferUnfaded[0] = gPlttBufferUnfaded[0x51] = gPlttBufferFaded[0] = gPlttBufferFaded[0x51] = arr[1];
sub_8124918((&eRoulette->varB8));
for (i = 0; i < 0xD; i++)
- sub_812492C((&eRoulette->varB8), i, (struct UnkStruct1 *)&gUnknown_083F8E34[i * 8]);
+ sub_812492C((&eRoulette->varB8), i, &gUnknown_083F8E34[i]);
for (i = 0; i < 0x6; i++)
{
switch (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2))
diff --git a/src/roulette_util.c b/src/roulette_util.c
index f3eae5518..262b2e2e5 100644
--- a/src/roulette_util.c
+++ b/src/roulette_util.c
@@ -16,7 +16,7 @@ void sub_8124918(struct UnkStruct0 *r0)
memset(&r0->var04, 0, sizeof(r0->var04));
}
-u8 sub_812492C(struct UnkStruct0 *r0, u8 r1, struct UnkStruct1 *r2)
+u8 sub_812492C(struct UnkStruct0 *r0, u8 r1, const struct UnkStruct1 *r2)
{
if (!(r1 < 16) || (r0->var04[r1].var00_7))
return 0xFF;