diff options
Diffstat (limited to 'src/region_map.c')
-rw-r--r-- | src/region_map.c | 88 |
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(); |