Clean up sSpriteRanges

This commit is contained in:
Hedara
2026-05-31 21:23:36 +02:00
parent e060ab955b
commit 4d2220e623
+7 -11
View File
@@ -10,8 +10,8 @@
#define SET_SPRITE_TILE_RANGE(index, start, count) \ #define SET_SPRITE_TILE_RANGE(index, start, count) \
{ \ { \
sSpriteTileRanges[index * 2] = start; \ sSpriteTileRanges[index][0] = start; \
(sSpriteTileRanges + 1)[index * 2] = count; \ sSpriteTileRanges[index][1] = count; \
} }
#define ALLOC_SPRITE_TILE(n) \ #define ALLOC_SPRITE_TILE(n) \
@@ -266,7 +266,7 @@ static const struct OamDimensions sOamDimensions[3][4] =
}; };
static u16 sSpriteTileRangeTags[MAX_SPRITES]; static u16 sSpriteTileRangeTags[MAX_SPRITES];
static u16 sSpriteTileRanges[MAX_SPRITES * 2]; static u16 sSpriteTileRanges[MAX_SPRITES][2];
static struct AffineAnimState sAffineAnimStates[OAM_MATRIX_COUNT]; static struct AffineAnimState sAffineAnimStates[OAM_MATRIX_COUNT];
static u16 sSpritePaletteTags[16]; static u16 sSpritePaletteTags[16];
@@ -1502,14 +1502,10 @@ void FreeSpriteTilesByTag(u16 tag)
if (index != 0xFF) if (index != 0xFF)
{ {
u16 i; u16 i;
u16 *rangeStarts;
u16 *rangeCounts;
u16 start; u16 start;
u16 count; u16 count;
rangeStarts = sSpriteTileRanges; start = sSpriteTileRanges[index][0];
start = rangeStarts[index * 2]; count = sSpriteTileRanges[index][1];
rangeCounts = sSpriteTileRanges + 1;
count = rangeCounts[index * 2];
for (i = start; i < start + count; i++) for (i = start; i < start + count; i++)
FREE_SPRITE_TILE(i); FREE_SPRITE_TILE(i);
@@ -1534,7 +1530,7 @@ u16 GetSpriteTileStartByTag(u16 tag)
u8 index = IndexOfSpriteTileTag(tag); u8 index = IndexOfSpriteTileTag(tag);
if (index == 0xFF) if (index == 0xFF)
return TAG_NONE; return TAG_NONE;
return sSpriteTileRanges[index * 2]; return sSpriteTileRanges[index][0];
} }
u8 IndexOfSpriteTileTag(u16 tag) u8 IndexOfSpriteTileTag(u16 tag)
@@ -1554,7 +1550,7 @@ u16 GetSpriteTileTagByTileStart(u16 start)
for (i = 0; i < MAX_SPRITES; i++) for (i = 0; i < MAX_SPRITES; i++)
{ {
if (sSpriteTileRangeTags[i] != TAG_NONE && sSpriteTileRanges[i * 2] == start) if (sSpriteTileRangeTags[i] != TAG_NONE && sSpriteTileRanges[i][0] == start)
return sSpriteTileRangeTags[i]; return sSpriteTileRangeTags[i];
} }