From 30d68db0dceaaef385e2a00a749ea365b5cb658a Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 1 Nov 2017 22:26:54 -0400 Subject: [PATCH] sRegionMapCursorSpriteTemplate --- data/region_map.s | 9 --------- src/region_map.c | 42 ++++++++++++++++++++++++++++++++++++++---- 2 files changed, 38 insertions(+), 13 deletions(-) diff --git a/data/region_map.s b/data/region_map.s index 57bc15b08..7e032c7db 100644 --- a/data/region_map.s +++ b/data/region_map.s @@ -4,15 +4,6 @@ .section .rodata .align 2, 0 -gUnknown_085A1BD0:: @ 85A1BCC - .incbin "baserom.gba", 0x5a1bd0, 0x30 - -gUnknown_085A1C00:: @ 85A1C00 - .incbin "baserom.gba", 0x5a1c00, 0x8 - -gUnknown_085A1C08:: @ 85A1C08 - .incbin "baserom.gba", 0x5a1c08, 0x18 - gUnknown_085A1C20:: @ 85A1C20 .incbin "baserom.gba", 0x5a1c20, 0x10 diff --git a/src/region_map.c b/src/region_map.c index 195694988..a8bf2dcfb 100644 --- a/src/region_map.c +++ b/src/region_map.c @@ -75,6 +75,7 @@ static void RegionMap_GetMarineCaveCoords(u16 *x, u16 *y); static bool32 RegionMap_IsPlayerInCave(u8 mapSecId); static void RegionMap_GetPositionOfCursorWithinMapSection(void); static bool8 RegionMap_IsMapSecIdInNextRow(u16 y); +static void SpriteCallback_CursorFull(struct Sprite *sprite); static void FreeRegionMapCursorSprite(void); static void HideRegionMapPlayerIcon(void); static void UnhideRegionMapPlayerIcon(void); @@ -193,8 +194,41 @@ static const u8 sRegionMap_MapSecAquaHideoutOld[] = { MAPSEC_AQUA_HIDEOUT_OLD }; -extern const struct SpritePalette gUnknown_085A1C00; -extern const struct SpriteTemplate gUnknown_085A1C08; +static const struct OamData sRegionMapCursorOam = { + .size = 1, .priority = 1 +}; + +static const union AnimCmd sRegionMapCursorAnim1[] = { + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(4, 20), + ANIMCMD_JUMP(0) +}; + +static const union AnimCmd sRegionMapCursorAnim2[] = { + ANIMCMD_FRAME( 0, 10), + ANIMCMD_FRAME(16, 10), + ANIMCMD_FRAME(32, 10), + ANIMCMD_FRAME(16, 10), + ANIMCMD_JUMP(0) +}; + +static const union AnimCmd *const sRegionMapCursorAnimTable[] = { + sRegionMapCursorAnim1, + sRegionMapCursorAnim2 +}; + +static const struct SpritePalette sRegionMapCursorSpritePalette = { sRegionMapCursorPal, 0 }; + +static const struct SpriteTemplate sRegionMapCursorSpriteTemplate = { + 0, + 0, + &sRegionMapCursorOam, + sRegionMapCursorAnimTable, + NULL, + gDummySpriteAffineAnimTable, + SpriteCallback_CursorFull +}; + extern const struct OamData gUnknown_085A1C20; extern const union AnimCmd *const gUnknown_085A1C30[]; extern const u8 gUnknown_085A1C34[]; @@ -1117,8 +1151,8 @@ void CreateRegionMapCursor(u16 tileTag, u16 paletteTag) struct SpritePalette palette; struct SpriteSheet sheet; - palette = gUnknown_085A1C00; - template = gUnknown_085A1C08; + palette = sRegionMapCursorSpritePalette; + template = sRegionMapCursorSpriteTemplate; sheet.tag = tileTag; template.tileTag = tileTag; gRegionMap->cursorTileTag = tileTag;