diff options
Diffstat (limited to 'src/sprite.c')
-rw-r--r-- | src/sprite.c | 39 |
1 files changed, 16 insertions, 23 deletions
diff --git a/src/sprite.c b/src/sprite.c index 12c62145e..df101b61f 100644 --- a/src/sprite.c +++ b/src/sprite.c @@ -1,6 +1,8 @@ #include "global.h" -#include "main.h" #include "sprite.h" +#include "main.h" +#include "palette.h" +#include "menu_cursor.h" #define MAX_SPRITE_COPY_REQUESTS 64 @@ -8,12 +10,8 @@ #define SET_SPRITE_TILE_RANGE(index, start, count) \ { \ - u16 *rangeStarts; \ - u16 *rangeCounts; \ - rangeStarts = sSpriteTileRanges; \ - rangeStarts[index * 2] = start; \ - rangeCounts = sSpriteTileRanges + 1; \ - rangeCounts[index * 2] = count; \ + sSpriteTileRanges[index * 2] = start; \ + (sSpriteTileRanges + 1)[index * 2] = count; \ } #define ALLOC_SPRITE_TILE(n) \ @@ -49,23 +47,18 @@ struct OamDimensions s8 height; }; -void LoadPalette(u16 *, u16, u32); -void sub_814A590(void); - static void UpdateOamCoords(void); static void BuildSpritePriorities(void); static void SortSprites(void); static void CopyMatricesToOamBuffer(void); static void AddSpritesToOamBuffer(void); -static u8 CreateSpriteAt(u8 index, struct SpriteTemplate *template, s16 x, s16 y, u8 subpriority); +static u8 CreateSpriteAt(u8 index, const struct SpriteTemplate *template, s16 x, s16 y, u8 subpriority); static void ClearSpriteCopyRequests(void); static void ResetOamMatrices(void); static void ResetSprite(struct Sprite *sprite); static s16 AllocSpriteTiles(u16 tileCount); -static u8 SpriteTileAllocBitmapOp(u16 bit, u8 op); +u8 SpriteTileAllocBitmapOp(u16 bit, u8 op); static void RequestSpriteFrameImageCopy(u16 index, u16 tileNum, struct SpriteFrameImage *images); -static void CopyFromSprites(u8 *dest); -static void CopyToSprites(u8 *src); static void ResetAllSprites(void); static void BeginAnim(struct Sprite *sprite); static void ContinueAnim(struct Sprite *sprite); @@ -530,7 +523,7 @@ static void AddSpritesToOamBuffer(void) } } -u8 CreateSprite(struct SpriteTemplate *template, s16 x, s16 y, u8 subpriority) +u8 CreateSprite(const struct SpriteTemplate *template, s16 x, s16 y, u8 subpriority) { u8 i; @@ -541,7 +534,7 @@ u8 CreateSprite(struct SpriteTemplate *template, s16 x, s16 y, u8 subpriority) return MAX_SPRITES; } -u8 CreateSpriteAtEnd(struct SpriteTemplate *template, u16 x, u16 y, u8 subpriority) +u8 CreateSpriteAtEnd(const struct SpriteTemplate *template, u16 x, u16 y, u8 subpriority) { s16 i; @@ -554,7 +547,7 @@ u8 CreateSpriteAtEnd(struct SpriteTemplate *template, u16 x, u16 y, u8 subpriori u8 CreateInvisibleSprite(void (*callback)(struct Sprite *)) { - u8 index = CreateSprite((struct SpriteTemplate *)&gDummySpriteTemplate, 0, 0, 31); + u8 index = CreateSprite(&gDummySpriteTemplate, 0, 0, 31); if (index == MAX_SPRITES) { @@ -568,7 +561,7 @@ u8 CreateInvisibleSprite(void (*callback)(struct Sprite *)) } } -static u8 CreateSpriteAt(u8 index, struct SpriteTemplate *template, s16 x, s16 y, u8 subpriority) +static u8 CreateSpriteAt(u8 index, const struct SpriteTemplate *template, s16 x, s16 y, u8 subpriority) { struct Sprite *sprite = &gSprites[index]; @@ -787,7 +780,7 @@ static s16 AllocSpriteTiles(u16 tileCount) return start; } -static u8 SpriteTileAllocBitmapOp(u16 bit, u8 op) +u8 SpriteTileAllocBitmapOp(u16 bit, u8 op) { u8 index = bit / 8; u8 shift = bit % 8; @@ -856,7 +849,7 @@ void RequestSpriteCopy(u8 *src, u8 *dest, u16 size) } } -static void CopyFromSprites(u8 *dest) +void CopyFromSprites(u8 *dest) { u32 i; u8 *src = (u8 *)gSprites; @@ -868,7 +861,7 @@ static void CopyFromSprites(u8 *dest) } } -static void CopyToSprites(u8 *src) +void CopyToSprites(u8 *src) { u32 i; u8 *dest = (u8 *)gSprites; @@ -1635,7 +1628,7 @@ void FreeAllSpritePalettes(void) sSpritePaletteTags[i] = 0xFFFF; } -u8 LoadSpritePalette(struct SpritePalette *palette) +u8 LoadSpritePalette(const struct SpritePalette *palette) { u8 index = IndexOfSpritePaletteTag(palette->tag); @@ -1656,7 +1649,7 @@ u8 LoadSpritePalette(struct SpritePalette *palette) } } -void LoadSpritePalettes(struct SpritePalette *palettes) +void LoadSpritePalettes(const struct SpritePalette *palettes) { u8 i; for (i = 0; palettes[i].data != NULL; i++) |