summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--data/match_call.s129
-rw-r--r--ld_script.txt1
-rw-r--r--src/match_call.c87
3 files changed, 88 insertions, 129 deletions
diff --git a/data/match_call.s b/data/match_call.s
index 15f28bc7a..61355b17c 100644
--- a/data/match_call.s
+++ b/data/match_call.s
@@ -3,135 +3,6 @@
.section .rodata
-gUnknown_08624D1C:: @ 8624D1C
- .4byte gText_MrStone_Pokenav_2B60C0
- .2byte 0xFFFF
- .byte 0x58
- .byte 1
- .4byte gText_MrStone_Pokenav_2B61E6
- .byte 0x58
- .byte 1
- .2byte 0xFFFF
- .4byte gText_MrStone_Pokenav_2B6302
- .byte 0xBD
- .byte 0
- .2byte 0xFFFF
- .4byte gText_MrStone_Pokenav_2B63A0
- .byte 16
- .byte 1
- .2byte 0xFFFF
- .4byte gText_MrStone_Pokenav_2B64A2
- .byte 0x6A
- .byte 0
- .2byte 0xFFFF
- .4byte gText_MrStone_Pokenav_2B6526
- .byte 0xF4
- .byte 4
- .2byte 0xFFFF
- .4byte gText_MrStone_Pokenav_2B65BB
- .byte 0x97
- .byte 0
- .2byte 0xFFFF
- .4byte gText_MrStone_Pokenav_2B6664
- .byte 0x6f
- .byte 0
- .2byte 0xFFFF
- .4byte gText_MrStone_Pokenav_2B66B1
- .byte 0x70
- .byte 0
- .2byte 0xFFFF
- .4byte gText_MrStone_Pokenav_2B6703
- .byte 0xf7
- .byte 4
- .2byte 0xFFFF
- .4byte gText_MrStone_Pokenav_2B67ED
- .byte 0x64
- .byte 8
- .2byte 0xFFFF
- .4byte NULL
- .4byte 0xFFFFFFFF
-
-gUnknown_08624D7C:: @ 8624D7C
- .byte 0
- .byte 10
- .2byte 0xFFFF
- .4byte gUnknown_085EFAEF
- .4byte gUnknown_085EFAFA
- .4byte gUnknown_08624D1C
-
-gUnknown_08624D8C:: @ 8624D8C
- .4byte gText_Norman_Pokenav_2B5719
- .byte 0x32
- .byte 1
- .2byte 0xFFFF
- .4byte gText_Norman_Pokenav_2B5795
- .byte 0xF1
- .byte 4
- .2byte 0xFFFF
- .4byte gText_Norman_Pokenav_2B584D
- .byte 0xF3
- .byte 4
- .2byte 0xFFFF
- .4byte gText_Norman_Pokenav_2B58E3
- .byte 0xF4
- .byte 4
- .2byte 0xFFFF
- .4byte gText_Norman_Pokenav_2B5979
- .byte 0xD4
- .byte 0
- .2byte 0xFFFF
- .4byte gText_Norman_Pokenav_2B5A07
- .byte 0xFE
- .byte 0xFF
- .2byte 0xFFFF
- .4byte gText_Norman_Pokenav_2B5A69
- .byte 0x64
- .byte 8
- .2byte 0xFFFF
- .4byte gText_Norman_Pokenav_2B5ACF
- .byte 0x64
- .byte 8
- .2byte 0xFFFF
- .4byte gText_Norman_Pokenav_2B5B5E
- .byte 0x64
- .byte 8
- .2byte 0xFFFF
- .4byte NULL
- .4byte 0xFFFFFFFF
-
-gUnknown_08624DDC:: @ 8624DDC
- .byte 5, 7, 0x32, 1, 0x45, 0, 0, 0
- .4byte gUnknown_085EFB25
- .4byte gUnknown_085EFB47
- .4byte gUnknown_08624D8C
-
-gUnknown_08624DF0:: @ 8624DF0
- .byte 3, 0, 0x19, 1
- .4byte gUnknown_085EFBC9
- .4byte gUnknown_085E8270
-
-gUnknown_08624DFC:: @ 8624DFC
- .4byte gText_Mom_Pokenav_2B227B
- .byte 0xFF
- .byte 0xFF
- .2byte 0xFFFF
- .4byte gText_Mom_Pokenav_2B2310
- .byte 0xF4
- .byte 0x4
- .2byte 0xFFFF
- .4byte gText_Mom_Pokenav_2B23F3
- .byte 0x64
- .byte 8
- .2byte 0xFFFF
- .4byte NULL
- .4byte 0xFFFFFFFF
-
-gUnknown_08624E1C:: @ 8624E1C
- .byte 0, 0, 0xD8, 0
- .4byte gUnknown_085EFB32
- .4byte gUnknown_085EFB4B
- .4byte gUnknown_08624DFC
-
gUnknown_08624E2C:: @ 8624E2C
.4byte gText_Steven_Pokenav_2B5B95
.byte 0xFF
diff --git a/ld_script.txt b/ld_script.txt
index 07960bcf1..5bd3c6b03 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -537,6 +537,7 @@ SECTIONS {
src/berry_fix_program.o(.rodata);
data/pokemon_summary_screen.o(.rodata);
data/pokenav.o(.rodata);
+ src/match_call.o(.rodata);
data/match_call.o(.rodata);
data/pokenav.o(.rodata.after.match.call);
src/rayquaza_scene.o(.rodata);
diff --git a/src/match_call.c b/src/match_call.c
index 431379017..b13e7e949 100644
--- a/src/match_call.c
+++ b/src/match_call.c
@@ -86,6 +86,12 @@ struct MatchCallStruct5 {
const match_call_sub0_t *v10;
};
+#define MATCHCALLDEF(name, type_, ...) \
+const struct MatchCallStruct##type_ name = { \
+ .type = type_, \
+ __VA_ARGS__ \
+};
+
typedef union {
struct MatchCallStructCommon *common;
struct MatchCallStruct0 *type0;
@@ -112,8 +118,89 @@ void sub_81D199C(const match_call_sub0_t *, u16, u8 *);
void sub_8197080(u8 *);
void sub_81D1B0C(u32, const u8 **, const u8 **);
+extern const u8 gText_MrStone_Pokenav_2B60C0[];
+extern const u8 gText_MrStone_Pokenav_2B61E6[];
+extern const u8 gText_MrStone_Pokenav_2B6302[];
+extern const u8 gText_MrStone_Pokenav_2B63A0[];
+extern const u8 gText_MrStone_Pokenav_2B64A2[];
+extern const u8 gText_MrStone_Pokenav_2B6526[];
+extern const u8 gText_MrStone_Pokenav_2B65BB[];
+extern const u8 gText_MrStone_Pokenav_2B6664[];
+extern const u8 gText_MrStone_Pokenav_2B66B1[];
+extern const u8 gText_MrStone_Pokenav_2B6703[];
+extern const u8 gText_MrStone_Pokenav_2B67ED[];
+
+extern const u8 gUnknown_085EFAEF[];
+extern const u8 gUnknown_085EFAFA[];
+
+extern const u8 gText_Norman_Pokenav_2B5719[];
+extern const u8 gText_Norman_Pokenav_2B5795[];
+extern const u8 gText_Norman_Pokenav_2B584D[];
+extern const u8 gText_Norman_Pokenav_2B58E3[];
+extern const u8 gText_Norman_Pokenav_2B5979[];
+extern const u8 gText_Norman_Pokenav_2B5A07[];
+extern const u8 gText_Norman_Pokenav_2B5A69[];
+extern const u8 gText_Norman_Pokenav_2B5ACF[];
+extern const u8 gText_Norman_Pokenav_2B5B5E[];
+
+extern const u8 gUnknown_085EFB25[];
+extern const u8 gUnknown_085EFB47[];
+
+extern const u8 gUnknown_085EFBC9[];
+extern const u8 gUnknown_085E8270[];
+
+extern const u8 gText_Mom_Pokenav_2B227B[];
+extern const u8 gText_Mom_Pokenav_2B2310[];
+extern const u8 gText_Mom_Pokenav_2B23F3[];
+
+extern const u8 gUnknown_085EFB32[];
+extern const u8 gUnknown_085EFB4B[];
+
// .rodata
+const match_call_sub0_t gUnknown_08624D1C[] = {
+ { gText_MrStone_Pokenav_2B60C0, 0xFFFF, FLAG_0x158 },
+ { gText_MrStone_Pokenav_2B61E6, FLAG_0x158, 0xFFFF },
+ { gText_MrStone_Pokenav_2B6302, FLAG_0x0BD, 0xFFFF },
+ { gText_MrStone_Pokenav_2B63A0, FLAG_0x110, 0xFFFF },
+ { gText_MrStone_Pokenav_2B64A2, FLAG_0x06A, 0xFFFF },
+ { gText_MrStone_Pokenav_2B6526, FLAG_0x4F4, 0xFFFF },
+ { gText_MrStone_Pokenav_2B65BB, FLAG_0x097, 0xFFFF },
+ { gText_MrStone_Pokenav_2B6664, FLAG_0x06F, 0xFFFF },
+ { gText_MrStone_Pokenav_2B66B1, FLAG_0x070, 0xFFFF },
+ { gText_MrStone_Pokenav_2B6703, FLAG_0x4F7, 0xFFFF },
+ { gText_MrStone_Pokenav_2B67ED, FLAG_SYS_GAME_CLEAR, 0xFFFF },
+ { NULL, 0xFFFF, 0xFFFF }
+};
+
+MATCHCALLDEF(gUnknown_08624D7C, 0, 10, 0xffff, gUnknown_085EFAEF, gUnknown_085EFAFA, gUnknown_08624D1C);
+
+const match_call_sub0_t gUnknown_08624D8C[] = {
+ { gText_Norman_Pokenav_2B5719, FLAG_0x132, 0xFFFF },
+ { gText_Norman_Pokenav_2B5795, FLAG_0x4F1, 0xFFFF },
+ { gText_Norman_Pokenav_2B584D, FLAG_0x4F3, 0xFFFF },
+ { gText_Norman_Pokenav_2B58E3, FLAG_0x4F4, 0xFFFF },
+ { gText_Norman_Pokenav_2B5979, FLAG_0x0D4, 0xFFFF },
+ { gText_Norman_Pokenav_2B5A07, 0xFFFE, 0xFFFF },
+ { gText_Norman_Pokenav_2B5A69, FLAG_SYS_GAME_CLEAR, 0xFFFF },
+ { gText_Norman_Pokenav_2B5ACF, FLAG_SYS_GAME_CLEAR, 0xFFFF },
+ { gText_Norman_Pokenav_2B5B5E, FLAG_SYS_GAME_CLEAR, 0xFFFF },
+ { NULL, 0xFFFF, 0xFFFF }
+};
+
+MATCHCALLDEF(gUnknown_08624DDC, 5, 7, FLAG_0x132, 0x45, gUnknown_085EFB25, gUnknown_085EFB47, gUnknown_08624D8C);
+
+MATCHCALLDEF(gUnknown_08624DF0, 3, 0, FLAG_0x119, gUnknown_085EFBC9, gUnknown_085E8270)
+
+const match_call_sub0_t gUnknown_08624DFC[] = {
+ { gText_Mom_Pokenav_2B227B, 0xffff, 0xffff },
+ { gText_Mom_Pokenav_2B2310, FLAG_0x4F4, 0xffff },
+ { gText_Mom_Pokenav_2B23F3, FLAG_SYS_GAME_CLEAR, 0xffff },
+ { NULL, 0xffff, 0xffff }
+};
+
+MATCHCALLDEF(gUnknown_08624E1C, 0, 0, FLAG_0x0D8, gUnknown_085EFB32, gUnknown_085EFB4B, gUnknown_08624DFC);
+
extern const match_call_t gUnknown_086252A8[];
extern bool32 (*const gUnknown_086252FC[])(const match_call_t);
extern u8 (*const gUnknown_08625310[])(const match_call_t);