summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2018-04-24 00:47:22 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2018-04-24 00:47:22 -0400
commit3f34a0491d42c8e35a1d26bb34d59106d8a30660 (patch)
tree161db799a9b276cf930210f83397cb019d1f736e /src
parent0774f50bd4670527eee29347273fd63d69e74c25 (diff)
through DestroyAreaSprites
Diffstat (limited to 'src')
-rw-r--r--src/pokedex_area_screen.c85
-rw-r--r--src/region_map.c7
2 files changed, 82 insertions, 10 deletions
diff --git a/src/pokedex_area_screen.c b/src/pokedex_area_screen.c
index 6e16e4e5c..af5c5dd54 100644
--- a/src/pokedex_area_screen.c
+++ b/src/pokedex_area_screen.c
@@ -49,11 +49,12 @@ struct PokedexAreaScreenEwramStruct
u8 unk061F;
u16 unk0620[0x20];
struct Sprite * unk0660[0x20];
- u8 filler_06E0[4];
+ u16 unk06E0;
u8 * unk06E4;
struct RegionMap unk06E8;
u8 unk0F68[16];
- u8 filler_0F78[0x3C];
+ u8 filler_0F78[0x30];
+ struct Sprite * unk0FA8[3];
u8 unk0FB4[0x600];
};
@@ -1193,9 +1194,9 @@ void sub_8111360(void)
void Task_PokedexAreaScreen_0(u8 taskId);
void Task_PokedexAreaScreen_1(u8 taskId);
void CreateAreaMarkerSprites(void);
+void DestroyAreaSprites(void);
void LoadAreaUnknownGraphics(void);
void CreateAreaUnknownSprites(void);
-void DestroyAreaSprites(void);
void ShowPokedexAreaScreen(u16 species, u8 * a1)
{
@@ -1303,3 +1304,81 @@ void Task_PokedexAreaScreen_1(u8 taskId)
}
gTasks[taskId].data[0]++;
}
+
+const u16 AreaMarkerPalette[];
+const u8 AreaMarkerTiles[];
+
+const struct SpriteSheet gUnknown_083F858C = {
+ AreaMarkerTiles, 0x80, 2
+};
+
+const struct SpritePalette gUnknown_083F8594 = {
+ AreaMarkerPalette, 2
+};
+
+const struct OamData gOamData_83F859C = {
+ .size = 1,
+ .priority = 1
+};
+
+const struct SpriteTemplate gSpriteTemplate_83F85A4 = {
+ 2,
+ 2,
+ &gOamData_83F859C,
+ gDummySpriteAnimTable,
+ NULL,
+ gDummySpriteAffineAnimTable,
+ SpriteCallbackDummy
+};
+
+const u16 AreaMarkerPalette[] = INCBIN_U16("graphics/pokedex/area_marker.gbapal");
+const u8 AreaMarkerTiles[] = INCBIN_U8("graphics/pokedex/area_marker.4bpp");
+
+void CreateAreaMarkerSprites(void)
+{
+ s16 i;
+ u8 spriteId;
+ s16 x;
+ s16 y;
+ s16 cnt;
+ s16 mapSecId;
+
+ LoadSpriteSheet(&gUnknown_083F858C);
+ LoadSpritePalette(&gUnknown_083F8594);
+ cnt = 0;
+ for (i = 0; i < gPokedexAreaScreenPtr->unk0112; i++)
+ {
+ mapSecId = gPokedexAreaScreenPtr->unk0620[i];
+ x = 8 * (gRegionMapLocations[mapSecId].x + 1) + 4;
+ y = 8 * (gRegionMapLocations[mapSecId].y) + 28;
+ x += 4 * (gRegionMapLocations[mapSecId].width - 1);
+ y += 4 * (gRegionMapLocations[mapSecId].height - 1);
+ spriteId = CreateSprite(&gSpriteTemplate_83F85A4, x, y, 0);
+ if (spriteId != MAX_SPRITES)
+ {
+ gSprites[spriteId].invisible = TRUE;
+ gPokedexAreaScreenPtr->unk0660[cnt++] = gSprites + spriteId;
+ }
+ }
+ gPokedexAreaScreenPtr->unk06E0 = cnt;
+}
+
+void DestroyAreaSprites(void)
+{
+ u16 i;
+ FreeSpriteTilesByTag(2);
+ FreeSpritePaletteByTag(2);
+ for (i = 0; i < gPokedexAreaScreenPtr->unk06E0; i++)
+ {
+ DestroySprite(gPokedexAreaScreenPtr->unk0660[i]);
+ }
+ FreeSpriteTilesByTag(3);
+ FreeSpritePaletteByTag(3);
+ for (i = 0; i < 3; i++)
+ {
+ if (gPokedexAreaScreenPtr->unk0FA8[i] != NULL)
+ {
+ DestroySprite(gPokedexAreaScreenPtr->unk0FA8[i]);
+ }
+ }
+}
diff --git a/src/region_map.c b/src/region_map.c
index b4ed2c558..ab7c5c558 100644
--- a/src/region_map.c
+++ b/src/region_map.c
@@ -149,13 +149,6 @@ static const u8 sRegionMapBkgnd_TilemapLZ[] = INCBIN_U8("graphics/pokenav/region
#include "data/region_map_names_de.h"
#endif
-struct RegionMapLocation
-{
- u8 x, y;
- u8 width, height;
- const u8 *regionMapSectionId;
-};
-
const struct RegionMapLocation gRegionMapLocations[] =
{
{ 4, 11, 1, 1, gMapName_LittlerootTown},