summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCameron Hall <camthesaxman@users.noreply.github.com>2017-11-28 00:43:59 -0600
committerGitHub <noreply@github.com>2017-11-28 00:43:59 -0600
commit17f587ba309d842f8819d25e22272c1a1a450220 (patch)
tree01702a07e243cee51a2a8a6c547b71d3a75f0a8a
parentc8a56cb014dcff8997144b6bd5b50fb2eaeaf6fb (diff)
parent121cb02ff64bd8b8bd637d415e30d8782abb1717 (diff)
Merge pull request #483 from camthesaxman/mail_data
convert mail data to C
-rw-r--r--data/mail.s178
-rw-r--r--include/graphics.h38
-rw-r--r--ld_script.txt2
-rw-r--r--src/pokemon/mail.c182
4 files changed, 212 insertions, 188 deletions
diff --git a/data/mail.s b/data/mail.s
deleted file mode 100644
index e82212a42..000000000
--- a/data/mail.s
+++ /dev/null
@@ -1,178 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
- .align 1
-gUnknown_083E562C:: @ 83E562C
- .2byte 0x6ACD, 0x51A5
- .2byte 0x45FC, 0x38D4
-
- .align 2
-gMailGraphicsTable:: @ 83E5634
- .4byte gMailPalette_Orange
- .4byte gMailTiles_Orange
- .4byte gMailTilemap_Orange
- .2byte 0x2C0
- .2byte 0
- .2byte 0x294A
- .2byte 0x6739
-
- .4byte gMailPalette_Harbor
- .4byte gMailTiles_Harbor
- .4byte gMailTilemap_Harbor
- .2byte 0x2E0
- .2byte 0
- .2byte 0x7FFF
- .2byte 0x4631
-
- .4byte gMailPalette_Glitter
- .4byte gMailTiles_Glitter
- .4byte gMailTilemap_Glitter
- .2byte 0x400
- .2byte 0
- .2byte 0x294A
- .2byte 0x6739
-
- .4byte gMailPalette_Mech
- .4byte gMailTiles_Mech
- .4byte gMailTilemap_Mech
- .2byte 0x1E0
- .2byte 0
- .2byte 0x7FFF
- .2byte 0x4631
-
- .4byte gMailPalette_Wood
- .4byte gMailTiles_Wood
- .4byte gMailTilemap_Wood
- .2byte 0x2E0
- .2byte 0
- .2byte 0x7FFF
- .2byte 0x4631
-
- .4byte gMailPalette_Wave
- .4byte gMailTiles_Wave
- .4byte gMailTilemap_Wave
- .2byte 0x300
- .2byte 0
- .2byte 0x294A
- .2byte 0x6739
-
- .4byte gMailPalette_Bead
- .4byte gMailTiles_Bead
- .4byte gMailTilemap_Bead
- .2byte 0x140
- .2byte 0
- .2byte 0x7FFF
- .2byte 0x4631
-
- .4byte gMailPalette_Shadow
- .4byte gMailTiles_Shadow
- .4byte gMailTilemap_Shadow
- .2byte 0x300
- .2byte 0
- .2byte 0x7FFF
- .2byte 0x4631
-
- .4byte gMailPalette_Tropic
- .4byte gMailTiles_Tropic
- .4byte gMailTilemap_Tropic
- .2byte 0x220
- .2byte 0
- .2byte 0x294A
- .2byte 0x6739
-
- .4byte gMailPalette_Dream
- .4byte gMailTiles_Dream
- .4byte gMailTilemap_Dream
- .2byte 0x340
- .2byte 0
- .2byte 0x294A
- .2byte 0x6739
-
- .4byte gMailPalette_Fab
- .4byte gMailTiles_Fab
- .4byte gMailTilemap_Fab
- .2byte 0x2A0
- .2byte 0
- .2byte 0x294A
- .2byte 0x6739
-
- .4byte gMailPalette_Retro
- .4byte gMailTiles_Retro
- .4byte gMailTilemap_Retro
- .2byte 0x520
- .2byte 0
- .2byte 0x294A
- .2byte 0x6739
-
- .align 2
-Unknown_3E5724: @ 83E5724
- .4byte 0xC
- .4byte 0xC
- .4byte 0xC
-
-gUnknown_083E5730:: @ 83E5730
- .byte 3, 15, 27, 52
- .4byte Unknown_3E5724
- .byte 3, 15, 27, 52
- .4byte Unknown_3E5724
- .byte 3, 15, 27, 52
- .4byte Unknown_3E5724
- .byte 3, 15, 27, 52
- .4byte Unknown_3E5724
- .byte 3, 15, 27, 52
- .4byte Unknown_3E5724
- .byte 3, 15, 27, 52
- .4byte Unknown_3E5724
- .byte 3, 15, 27, 52
- .4byte Unknown_3E5724
- .byte 3, 15, 27, 52
- .4byte Unknown_3E5724
- .byte 3, 15, 27, 52
- .4byte Unknown_3E5724
- .byte 3, 15, 27, 52
- .4byte Unknown_3E5724
- .byte 3, 16, 27, 52
- .4byte Unknown_3E5724
- .byte 3, 15, 27, 52
- .4byte Unknown_3E5724
-
- .align 2
-Unknown_3E5790: @ 83E5790
- .4byte 0x8
- .4byte 0x8
- .4byte 0x8
- .4byte 0x8
- .4byte 0x4
-
- .align 2
-gUnknown_083E57A4:: @ 83E57A4
- .byte 5, 15, 15, 52
- .4byte Unknown_3E5790
- .byte 5, 15, 15, 52
- .4byte Unknown_3E5790
- .byte 5, 15, 16, 52
- .4byte Unknown_3E5790
- .byte 5, 15, 15, 52
- .4byte Unknown_3E5790
- .byte 5, 15, 15, 52
- .4byte Unknown_3E5790
- .byte 5, 15, 16, 52
- .4byte Unknown_3E5790
- .byte 5, 15, 16, 52
- .4byte Unknown_3E5790
- .byte 5, 15, 15, 52
- .4byte Unknown_3E5790
- .byte 5, 15, 15, 52
- .4byte Unknown_3E5790
- .byte 5, 15, 15, 52
- .4byte Unknown_3E5790
- .byte 5, 16, 15, 52
- .4byte Unknown_3E5790
- .byte 5, 15, 15, 52
- .4byte Unknown_3E5790
-
-@ XXX: what is this?
- .align 2
- .4byte gSharedMem
diff --git a/include/graphics.h b/include/graphics.h
index f3a722b40..7c23e90ab 100644
--- a/include/graphics.h
+++ b/include/graphics.h
@@ -2551,6 +2551,44 @@ extern const u8 gBerryPalette_Lansat[];
extern const u8 gBerryPalette_Starf[];
extern const u8 gBerryPalette_Enigma[];
+// data/graphics.s
+extern const u16 gMailPalette_Orange[];
+extern const u16 gMailPalette_Harbor[];
+extern const u16 gMailPalette_Glitter[];
+extern const u16 gMailPalette_Mech[];
+extern const u16 gMailPalette_Wood[];
+extern const u16 gMailPalette_Wave[];
+extern const u16 gMailPalette_Bead[];
+extern const u16 gMailPalette_Shadow[];
+extern const u16 gMailPalette_Tropic[];
+extern const u16 gMailPalette_Dream[];
+extern const u16 gMailPalette_Fab[];
+extern const u16 gMailPalette_Retro[];
+extern const u8 gMailTiles_Orange[];
+extern const u8 gMailTiles_Harbor[];
+extern const u8 gMailTiles_Glitter[];
+extern const u8 gMailTiles_Mech[];
+extern const u8 gMailTiles_Wood[];
+extern const u8 gMailTiles_Wave[];
+extern const u8 gMailTiles_Bead[];
+extern const u8 gMailTiles_Shadow[];
+extern const u8 gMailTiles_Tropic[];
+extern const u8 gMailTiles_Dream[];
+extern const u8 gMailTiles_Fab[];
+extern const u8 gMailTiles_Retro[];
+extern const u8 gMailTilemap_Orange[];
+extern const u8 gMailTilemap_Harbor[];
+extern const u8 gMailTilemap_Glitter[];
+extern const u8 gMailTilemap_Mech[];
+extern const u8 gMailTilemap_Wood[];
+extern const u8 gMailTilemap_Wave[];
+extern const u8 gMailTilemap_Bead[];
+extern const u8 gMailTilemap_Shadow[];
+extern const u8 gMailTilemap_Tropic[];
+extern const u8 gMailTilemap_Dream[];
+extern const u8 gMailTilemap_Fab[];
+extern const u8 gMailTilemap_Retro[];
+
extern const u8 gUnknown_08E96EC8[];
extern const u8 gMenuTrainerCard_Gfx[];
diff --git a/ld_script.txt b/ld_script.txt
index fecd5a2e2..635dac99e 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -547,7 +547,7 @@ SECTIONS {
data/pokenav.o(.rodata);
data/mon_markings.o(.rodata);
src/field/mauville_man.o(.rodata);
- data/mail.o(.rodata);
+ src/pokemon/mail.o(.rodata);
src/field/menu_helpers.o(.rodata);
src/field/heal_location.o(.rodata);
src/field/region_map.o(.rodata);
diff --git a/src/pokemon/mail.c b/src/pokemon/mail.c
index b876c887d..2ab05ca2b 100644
--- a/src/pokemon/mail.c
+++ b/src/pokemon/mail.c
@@ -2,6 +2,7 @@
#include "mail.h"
#include "easy_chat.h"
#include "constants/items.h"
+#include "graphics.h"
#include "mail_data.h"
#include "menu.h"
#include "menu_helpers.h"
@@ -31,7 +32,7 @@ struct MailLayout
u8 var2;
u8 var3_0:4;
u8 var3_4:4;
- struct UnkMailStruct *var4;
+ const struct UnkMailStruct *var4;
};
struct Unk2000000
@@ -53,25 +54,188 @@ struct Unk2000000
u8 pad101[3];
/*0x104*/ MainCallback var104;
/*0x108*/ MainCallback var108;
- /*0x10C*/ struct MailLayout *var10C;
+ /*0x10C*/ const struct MailLayout *var10C;
};
struct MailGraphics
{
- u16 (*palette)[];
- u8 (*tiles)[];
- u8 (*tileMap)[];
+ const u16 *palette;
+ const u8 *tiles;
+ const u8 *tileMap;
u16 var0C;
u16 var0E;
u16 color10;
u16 color12;
};
-extern struct MailGraphics gMailGraphicsTable[];
-extern u16 gUnknown_083E562C[][2];
+const u16 gUnknown_083E562C[][2] =
+{
+ {0x6ACD, 0x51A5},
+ {0x45FC, 0x38D4},
+};
+
+const struct MailGraphics gMailGraphicsTable[] =
+{
+ {
+ .palette = gMailPalette_Orange,
+ .tiles = gMailTiles_Orange,
+ .tileMap = gMailTilemap_Orange,
+ .var0C = 0x2C0,
+ .var0E = 0,
+ .color10 = 0x294A,
+ .color12 = 0x6739,
+ },
+ {
+ .palette = gMailPalette_Harbor,
+ .tiles = gMailTiles_Harbor,
+ .tileMap = gMailTilemap_Harbor,
+ .var0C = 0x2E0,
+ .var0E = 0,
+ .color10 = 0x7FFF,
+ .color12 = 0x4631,
+ },
+ {
+ .palette = gMailPalette_Glitter,
+ .tiles = gMailTiles_Glitter,
+ .tileMap = gMailTilemap_Glitter,
+ .var0C = 0x400,
+ .var0E = 0,
+ .color10 = 0x294A,
+ .color12 = 0x6739,
+ },
+ {
+ .palette = gMailPalette_Mech,
+ .tiles = gMailTiles_Mech,
+ .tileMap = gMailTilemap_Mech,
+ .var0C = 0x1E0,
+ .var0E = 0,
+ .color10 = 0x7FFF,
+ .color12 = 0x4631,
+ },
+ {
+ .palette = gMailPalette_Wood,
+ .tiles = gMailTiles_Wood,
+ .tileMap = gMailTilemap_Wood,
+ .var0C = 0x2E0,
+ .var0E = 0,
+ .color10 = 0x7FFF,
+ .color12 = 0x4631,
+ },
+ {
+ .palette = gMailPalette_Wave,
+ .tiles = gMailTiles_Wave,
+ .tileMap = gMailTilemap_Wave,
+ .var0C = 0x300,
+ .var0E = 0,
+ .color10 = 0x294A,
+ .color12 = 0x6739,
+ },
+ {
+ .palette = gMailPalette_Bead,
+ .tiles = gMailTiles_Bead,
+ .tileMap = gMailTilemap_Bead,
+ .var0C = 0x140,
+ .var0E = 0,
+ .color10 = 0x7FFF,
+ .color12 = 0x4631,
+ },
+ {
+ .palette = gMailPalette_Shadow,
+ .tiles = gMailTiles_Shadow,
+ .tileMap = gMailTilemap_Shadow,
+ .var0C = 0x300,
+ .var0E = 0,
+ .color10 = 0x7FFF,
+ .color12 = 0x4631,
+ },
+ {
+ .palette = gMailPalette_Tropic,
+ .tiles = gMailTiles_Tropic,
+ .tileMap = gMailTilemap_Tropic,
+ .var0C = 0x220,
+ .var0E = 0,
+ .color10 = 0x294A,
+ .color12 = 0x6739,
+ },
+ {
+ .palette = gMailPalette_Dream,
+ .tiles = gMailTiles_Dream,
+ .tileMap = gMailTilemap_Dream,
+ .var0C = 0x340,
+ .var0E = 0,
+ .color10 = 0x294A,
+ .color12 = 0x6739,
+ },
+ {
+ .palette = gMailPalette_Fab,
+ .tiles = gMailTiles_Fab,
+ .tileMap = gMailTilemap_Fab,
+ .var0C = 0x2A0,
+ .var0E = 0,
+ .color10 = 0x294A,
+ .color12 = 0x6739,
+ },
+ {
+ .palette = gMailPalette_Retro,
+ .tiles = gMailTiles_Retro,
+ .tileMap = gMailTilemap_Retro,
+ .var0C = 0x520,
+ .var0E = 0,
+ .color10 = 0x294A,
+ .color12 = 0x6739,
+ },
+};
+
+const struct UnkMailStruct Unknown_3E5724[] =
+{
+ {0, 3, 0},
+ {0, 3, 0},
+ {0, 3, 0},
+};
+
+const struct MailLayout gUnknown_083E5730[] =
+{
+ {3, 15, 27, 4, 3, Unknown_3E5724},
+ {3, 15, 27, 4, 3, Unknown_3E5724},
+ {3, 15, 27, 4, 3, Unknown_3E5724},
+ {3, 15, 27, 4, 3, Unknown_3E5724},
+ {3, 15, 27, 4, 3, Unknown_3E5724},
+ {3, 15, 27, 4, 3, Unknown_3E5724},
+ {3, 15, 27, 4, 3, Unknown_3E5724},
+ {3, 15, 27, 4, 3, Unknown_3E5724},
+ {3, 15, 27, 4, 3, Unknown_3E5724},
+ {3, 15, 27, 4, 3, Unknown_3E5724},
+ {3, 16, 27, 4, 3, Unknown_3E5724},
+ {3, 15, 27, 4, 3, Unknown_3E5724},
+};
+
+const struct UnkMailStruct Unknown_3E5790[] =
+{
+ {0, 2, 0},
+ {0, 2, 0},
+ {0, 2, 0},
+ {0, 2, 0},
+ {0, 1, 0},
+};
+
+const struct MailLayout gUnknown_083E57A4[] =
+{
+ {5, 15, 15, 4, 3, Unknown_3E5790},
+ {5, 15, 15, 4, 3, Unknown_3E5790},
+ {5, 15, 16, 4, 3, Unknown_3E5790},
+ {5, 15, 15, 4, 3, Unknown_3E5790},
+ {5, 15, 15, 4, 3, Unknown_3E5790},
+ {5, 15, 16, 4, 3, Unknown_3E5790},
+ {5, 15, 16, 4, 3, Unknown_3E5790},
+ {5, 15, 15, 4, 3, Unknown_3E5790},
+ {5, 15, 15, 4, 3, Unknown_3E5790},
+ {5, 15, 15, 4, 3, Unknown_3E5790},
+ {5, 16, 15, 4, 3, Unknown_3E5790},
+ {5, 15, 15, 4, 3, Unknown_3E5790},
+};
-extern struct MailLayout gUnknown_083E5730[];
-extern struct MailLayout gUnknown_083E57A4[];
+// XXX: what is this?
+static u8 *const sSharedMemPtr = gSharedMem;
static u8 sub_80F8A28(void);
static void sub_80F8D50(void);