diff options
author | Cameron Hall <camthesaxman@users.noreply.github.com> | 2017-11-28 00:43:59 -0600 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-11-28 00:43:59 -0600 |
commit | 17f587ba309d842f8819d25e22272c1a1a450220 (patch) | |
tree | 01702a07e243cee51a2a8a6c547b71d3a75f0a8a | |
parent | c8a56cb014dcff8997144b6bd5b50fb2eaeaf6fb (diff) | |
parent | 121cb02ff64bd8b8bd637d415e30d8782abb1717 (diff) |
Merge pull request #483 from camthesaxman/mail_data
convert mail data to C
-rw-r--r-- | data/mail.s | 178 | ||||
-rw-r--r-- | include/graphics.h | 38 | ||||
-rw-r--r-- | ld_script.txt | 2 | ||||
-rw-r--r-- | src/pokemon/mail.c | 182 |
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); |