summaryrefslogtreecommitdiff
path: root/src/region_map.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/region_map.c')
-rw-r--r--src/region_map.c88
1 files changed, 48 insertions, 40 deletions
diff --git a/src/region_map.c b/src/region_map.c
index bec51ebf0..4e547b5fb 100644
--- a/src/region_map.c
+++ b/src/region_map.c
@@ -48,6 +48,12 @@
#define FLYDESTICON_RED_OUTLINE 6
+enum {
+ TAG_CURSOR,
+ TAG_PLAYER_ICON,
+ TAG_FLY_ICON,
+};
+
// Static type declarations
struct MultiNameFlyDest
@@ -71,7 +77,7 @@ static EWRAM_DATA struct {
bool8 choseFlyLocation;
} *sFlyMap = NULL;
-static bool32 gUnknown_03001180;
+static bool32 sDrawFlyDestTextWindow;
// Static ROM declarations
@@ -237,13 +243,13 @@ static const union AnimCmd *const sRegionMapCursorAnimTable[] =
static const struct SpritePalette sRegionMapCursorSpritePalette =
{
.data = sRegionMapCursorPal,
- .tag = 0
+ .tag = TAG_CURSOR
};
static const struct SpriteTemplate sRegionMapCursorSpriteTemplate =
{
- .tileTag = 0,
- .paletteTag = 0,
+ .tileTag = TAG_CURSOR,
+ .paletteTag = TAG_CURSOR,
.oam = &sRegionMapCursorOam,
.anims = sRegionMapCursorAnimTable,
.images = NULL,
@@ -419,7 +425,7 @@ static const struct WindowTemplate sFlyMapWindowTemplates[] =
static const struct SpritePalette sFlyTargetIconsSpritePalette =
{
.data = sFlyTargetIcons_Pal,
- .tag = 2
+ .tag = TAG_FLY_ICON
};
static const u16 sRedOutlineFlyDestinations[][2] =
@@ -497,8 +503,8 @@ static const union AnimCmd *const sFlyDestIcon_Anims[] =
static const struct SpriteTemplate sFlyDestIconSpriteTemplate =
{
- .tileTag = 2,
- .paletteTag = 2,
+ .tileTag = TAG_FLY_ICON,
+ .paletteTag = TAG_FLY_ICON,
.oam = &sFlyDestIcon_OamData,
.anims = sFlyDestIcon_Anims,
.images = NULL,
@@ -621,7 +627,7 @@ bool8 LoadRegionMapGfx(void)
return TRUE;
}
-void sub_8123030(u16 color, u32 coeff)
+void BlendRegionMap(u16 color, u32 coeff)
{
BlendPalettes(0x380, coeff, color);
CpuCopy16(gPlttBufferFaded + 0x70, gPlttBufferUnfaded + 0x70, 0x60);
@@ -952,8 +958,8 @@ void PokedexAreaScreen_UpdateRegionMapVariablesAndVideoRegs(s16 x, s16 y)
UpdateRegionMapVideoRegs();
if (gRegionMap->playerIconSprite != NULL)
{
- gRegionMap->playerIconSprite->pos2.x = -x;
- gRegionMap->playerIconSprite->pos2.y = -y;
+ gRegionMap->playerIconSprite->x2 = -x;
+ gRegionMap->playerIconSprite->y2 = -y;
}
}
@@ -1007,7 +1013,7 @@ static void InitMapBasedOnPlayerLocation(void)
break;
case MAP_TYPE_UNDERGROUND:
case MAP_TYPE_UNKNOWN:
- if (gMapHeader.flags & MAP_ALLOW_ESCAPING)
+ if (gMapHeader.allowEscaping)
{
mapHeader = Overworld_GetMapHeaderByGroupAndId(gSaveBlock1Ptr->escapeWarp.mapGroup, gSaveBlock1Ptr->escapeWarp.mapNum);
gRegionMap->mapSecId = mapHeader->regionMapSectionId;
@@ -1364,8 +1370,8 @@ static void SpriteCB_CursorMapFull(struct Sprite *sprite)
{
if (gRegionMap->cursorMovementFrameCounter != 0)
{
- sprite->pos1.x += 2 * gRegionMap->cursorDeltaX;
- sprite->pos1.y += 2 * gRegionMap->cursorDeltaY;
+ sprite->x += 2 * gRegionMap->cursorDeltaX;
+ sprite->y += 2 * gRegionMap->cursorDeltaY;
gRegionMap->cursorMovementFrameCounter--;
}
}
@@ -1411,15 +1417,15 @@ void CreateRegionMapCursor(u16 tileTag, u16 paletteTag)
if (gRegionMap->zoomed == TRUE)
{
gRegionMap->cursorSprite->oam.size = SPRITE_SIZE(32x32);
- gRegionMap->cursorSprite->pos1.x -= 8;
- gRegionMap->cursorSprite->pos1.y -= 8;
+ gRegionMap->cursorSprite->x -= 8;
+ gRegionMap->cursorSprite->y -= 8;
StartSpriteAnim(gRegionMap->cursorSprite, 1);
}
else
{
gRegionMap->cursorSprite->oam.size = SPRITE_SIZE(16x16);
- gRegionMap->cursorSprite->pos1.x = 8 * gRegionMap->cursorPosX + 4;
- gRegionMap->cursorSprite->pos1.y = 8 * gRegionMap->cursorPosY + 4;
+ gRegionMap->cursorSprite->x = 8 * gRegionMap->cursorPosX + 4;
+ gRegionMap->cursorSprite->y = 8 * gRegionMap->cursorPosY + 4;
}
gRegionMap->cursorSprite->data[1] = 2;
gRegionMap->cursorSprite->data[2] = (IndexOfSpritePaletteTag(paletteTag) << 4) + 0x101;
@@ -1472,14 +1478,14 @@ void CreateRegionMapPlayerIcon(u16 tileTag, u16 paletteTag)
gRegionMap->playerIconSprite = &gSprites[spriteId];
if (!gRegionMap->zoomed)
{
- gRegionMap->playerIconSprite->pos1.x = gRegionMap->playerIconSpritePosX * 8 + 4;
- gRegionMap->playerIconSprite->pos1.y = gRegionMap->playerIconSpritePosY * 8 + 4;
+ gRegionMap->playerIconSprite->x = gRegionMap->playerIconSpritePosX * 8 + 4;
+ gRegionMap->playerIconSprite->y = gRegionMap->playerIconSpritePosY * 8 + 4;
gRegionMap->playerIconSprite->callback = SpriteCB_PlayerIconMapFull;
}
else
{
- gRegionMap->playerIconSprite->pos1.x = gRegionMap->playerIconSpritePosX * 16 - 0x30;
- gRegionMap->playerIconSprite->pos1.y = gRegionMap->playerIconSpritePosY * 16 - 0x42;
+ gRegionMap->playerIconSprite->x = gRegionMap->playerIconSpritePosX * 16 - 0x30;
+ gRegionMap->playerIconSprite->y = gRegionMap->playerIconSpritePosY * 16 - 0x42;
gRegionMap->playerIconSprite->callback = SpriteCB_PlayerIconMapZoomed;
}
}
@@ -1499,17 +1505,17 @@ static void UnhideRegionMapPlayerIcon(void)
{
if (gRegionMap->zoomed == TRUE)
{
- gRegionMap->playerIconSprite->pos1.x = gRegionMap->playerIconSpritePosX * 16 - 0x30;
- gRegionMap->playerIconSprite->pos1.y = gRegionMap->playerIconSpritePosY * 16 - 0x42;
+ gRegionMap->playerIconSprite->x = gRegionMap->playerIconSpritePosX * 16 - 0x30;
+ gRegionMap->playerIconSprite->y = gRegionMap->playerIconSpritePosY * 16 - 0x42;
gRegionMap->playerIconSprite->callback = SpriteCB_PlayerIconMapZoomed;
gRegionMap->playerIconSprite->invisible = FALSE;
}
else
{
- gRegionMap->playerIconSprite->pos1.x = gRegionMap->playerIconSpritePosX * 8 + 4;
- gRegionMap->playerIconSprite->pos1.y = gRegionMap->playerIconSpritePosY * 8 + 4;
- gRegionMap->playerIconSprite->pos2.x = 0;
- gRegionMap->playerIconSprite->pos2.y = 0;
+ gRegionMap->playerIconSprite->x = gRegionMap->playerIconSpritePosX * 8 + 4;
+ gRegionMap->playerIconSprite->y = gRegionMap->playerIconSpritePosY * 8 + 4;
+ gRegionMap->playerIconSprite->x2 = 0;
+ gRegionMap->playerIconSprite->y2 = 0;
gRegionMap->playerIconSprite->callback = SpriteCB_PlayerIconMapFull;
gRegionMap->playerIconSprite->invisible = FALSE;
}
@@ -1518,10 +1524,10 @@ static void UnhideRegionMapPlayerIcon(void)
static void SpriteCB_PlayerIconMapZoomed(struct Sprite *sprite)
{
- sprite->pos2.x = -2 * gRegionMap->scrollX;
- sprite->pos2.y = -2 * gRegionMap->scrollY;
- sprite->data[0] = sprite->pos1.y + sprite->pos2.y + sprite->centerToCornerVecY;
- sprite->data[1] = sprite->pos1.x + sprite->pos2.x + sprite->centerToCornerVecX;
+ sprite->x2 = -2 * gRegionMap->scrollX;
+ sprite->y2 = -2 * gRegionMap->scrollY;
+ sprite->data[0] = sprite->y + sprite->y2 + sprite->centerToCornerVecY;
+ sprite->data[1] = sprite->x + sprite->x2 + sprite->centerToCornerVecX;
if (sprite->data[0] < -8 || sprite->data[0] > 0xa8 || sprite->data[1] < -8 || sprite->data[1] > 0xf8)
{
sprite->data[2] = FALSE;
@@ -1692,11 +1698,11 @@ void CB2_OpenFlyMap(void)
break;
case 4:
InitRegionMap(&sFlyMap->regionMap, FALSE);
- CreateRegionMapCursor(0, 0);
- CreateRegionMapPlayerIcon(1, 1);
+ CreateRegionMapCursor(TAG_CURSOR, TAG_CURSOR);
+ CreateRegionMapPlayerIcon(TAG_PLAYER_ICON, TAG_PLAYER_ICON);
sFlyMap->mapSecId = sFlyMap->regionMap.mapSecId;
StringFill(sFlyMap->nameBuffer, CHAR_SPACE, MAP_NAME_LENGTH);
- gUnknown_03001180 = TRUE;
+ sDrawFlyDestTextWindow = TRUE;
DrawFlyDestTextWindow();
gMain.state++;
break;
@@ -1782,30 +1788,32 @@ static void DrawFlyDestTextWindow(void)
name = sMultiNameFlyDestinations[i].name[sFlyMap->regionMap.posWithinMapSec];
AddTextPrinterParameterized(1, 1, name, GetStringRightAlignXOffset(1, name, 96), 17, 0, NULL);
ScheduleBgCopyTilemapToVram(0);
- gUnknown_03001180 = TRUE;
+ sDrawFlyDestTextWindow = TRUE;
}
break;
}
}
if (!namePrinted)
{
- if (gUnknown_03001180 == TRUE)
+ if (sDrawFlyDestTextWindow == TRUE)
{
ClearStdWindowAndFrameToTransparent(1, FALSE);
DrawStdFrameWithCustomTileAndPalette(0, FALSE, 101, 13);
}
else
{
+ // Window is already drawn, just empty it
FillWindowPixelBuffer(0, PIXEL_FILL(1));
}
AddTextPrinterParameterized(0, 1, sFlyMap->regionMap.mapSecName, 0, 1, 0, NULL);
ScheduleBgCopyTilemapToVram(0);
- gUnknown_03001180 = FALSE;
+ sDrawFlyDestTextWindow = FALSE;
}
}
else
{
- if (gUnknown_03001180 == TRUE)
+ // Selection is on MAPSECTYPE_NONE, draw empty fly destination text window
+ if (sDrawFlyDestTextWindow == TRUE)
{
ClearStdWindowAndFrameToTransparent(1, FALSE);
DrawStdFrameWithCustomTileAndPalette(0, FALSE, 101, 13);
@@ -1813,7 +1821,7 @@ static void DrawFlyDestTextWindow(void)
FillWindowPixelBuffer(0, PIXEL_FILL(1));
CopyWindowToVram(0, 2);
ScheduleBgCopyTilemapToVram(0);
- gUnknown_03001180 = FALSE;
+ sDrawFlyDestTextWindow = FALSE;
}
}
@@ -1825,7 +1833,7 @@ static void LoadFlyDestIcons(void)
LZ77UnCompWram(sFlyTargetIcons_Gfx, sFlyMap->tileBuffer);
sheet.data = sFlyMap->tileBuffer;
sheet.size = sizeof(sFlyMap->tileBuffer);
- sheet.tag = 2;
+ sheet.tag = TAG_FLY_ICON;
LoadSpriteSheet(&sheet);
LoadSpritePalette(&sFlyTargetIconsSpritePalette);
CreateFlyDestIcons();