diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2017-10-31 23:39:09 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2017-10-31 23:39:09 -0400 |
commit | 9f5f134476f5c74339709b70adf47d2471aee6c0 (patch) | |
tree | 3a21dd0703310a89a7baa46bcc3d836664333057 /src | |
parent | 3d2571b0c5bb35d0fb21b555e139653e800ededa (diff) |
sub_8124AD4
Diffstat (limited to 'src')
-rw-r--r-- | src/region_map.c | 66 |
1 files changed, 58 insertions, 8 deletions
diff --git a/src/region_map.c b/src/region_map.c index 07ddd7477..484f60347 100644 --- a/src/region_map.c +++ b/src/region_map.c @@ -76,13 +76,14 @@ static void UnhideRegionMapPlayerIcon(void); static void RegionMapPlayerIconSpriteCallback_Zoomed(struct Sprite *sprite); static void RegionMapPlayerIconSpriteCallback_Full(struct Sprite *sprite); static void RegionMapPlayerIconSpriteCallback(struct Sprite *sprite); -void sub_81248C0(void); -void sub_81248D4(void); -void sub_81248F4(void func(void)); +static void sub_81248C0(void); +static void sub_81248D4(void); +void sub_81248F4(void callback(void)); void sub_8124904(void); -void sub_8124A70(void); -void sub_8124AD4(void); +static void sub_8124A70(void); +static void sub_8124AD4(void); void sub_8124BE4(void); +void sub_8124CBC(struct Sprite *sprite); void sub_8124D14(void); // .rodata @@ -120,6 +121,7 @@ extern const struct { u16 flag; } gUnknown_085A1EDC[]; extern const struct SpritePalette gUnknown_085A1F10; +extern const struct SpriteTemplate gUnknown_085A1F7C; // .text @@ -1385,14 +1387,14 @@ void MCB2_FlyMap(void) } } -void sub_81248C0(void) +static void sub_81248C0(void) { LoadOam(); ProcessSpriteCopyRequests(); TransferPlttBuffer(); } -void sub_81248D4(void) +static void sub_81248D4(void) { gUnknown_0203A148->unk_000(); AnimateSprites(); @@ -1465,7 +1467,7 @@ void sub_8124904(void) } -void sub_8124A70(void) +static void sub_8124A70(void) { struct SpriteSheet sheet; @@ -1478,3 +1480,51 @@ void sub_8124A70(void) sub_8124AD4(); sub_8124BE4(); } + +static void sub_8124AD4(void) +{ + u16 canFlyFlag; + u16 i; + u16 x; + u16 y; + u16 width; + u16 height; + u16 shape; + u8 spriteId; + + canFlyFlag = FLAG_VISITED_LITTLEROOT_TOWN; + for (i = 0; i < 16; i ++) + { + sub_8124630(i, &x, &y, &width, &height); + x = (x + 1) * 8 + 4; + y = (y + 2) * 8 + 4; + if (width == 2) + { + shape = ST_OAM_H_RECTANGLE; + } + else if (height == 2) + { + shape = ST_OAM_V_RECTANGLE; + } + else + { + shape = ST_OAM_SQUARE; + } + spriteId = CreateSprite(&gUnknown_085A1F7C, x, y, 10); + if (spriteId != MAX_SPRITES) + { + gSprites[spriteId].oam.shape = shape; + if (FlagGet(canFlyFlag)) + { + gSprites[spriteId].callback = sub_8124CBC; + } + else + { + shape += 3; + } + StartSpriteAnim(&gSprites[spriteId], shape); + gSprites[spriteId].data0 = i; + } + canFlyFlag ++; + } +} |