diff options
author | camthesaxman <cameronghall@cox.net> | 2019-07-29 20:44:18 -0500 |
---|---|---|
committer | camthesaxman <cameronghall@cox.net> | 2019-07-29 20:44:18 -0500 |
commit | db4af549fdf13cdaca6654f7bb9ef54ecef14359 (patch) | |
tree | c06f2d86efac079db46a3e9767faee1207f7f7e7 /src/sprite.c | |
parent | b8393b3a799f92e7064c266600607d98f6baf4d9 (diff) |
resolve some Emerald differences
Diffstat (limited to 'src/sprite.c')
-rw-r--r-- | src/sprite.c | 124 |
1 files changed, 62 insertions, 62 deletions
diff --git a/src/sprite.c b/src/sprite.c index 22b3a6d0f..b26fe2d12 100644 --- a/src/sprite.c +++ b/src/sprite.c @@ -18,15 +18,15 @@ #define ALLOC_SPRITE_TILE(n) \ { \ - gSpriteTileAllocBitmap[(n) / 8] |= (1 << ((n) % 8)); \ + sSpriteTileAllocBitmap[(n) / 8] |= (1 << ((n) % 8)); \ } #define FREE_SPRITE_TILE(n) \ { \ - gSpriteTileAllocBitmap[(n) / 8] &= ~(1 << ((n) % 8)); \ + sSpriteTileAllocBitmap[(n) / 8] &= ~(1 << ((n) % 8)); \ } -#define SPRITE_TILE_IS_ALLOCATED(n) ((gSpriteTileAllocBitmap[(n) / 8] >> ((n) % 8)) & 1) +#define SPRITE_TILE_IS_ALLOCATED(n) ((sSpriteTileAllocBitmap[(n) / 8] >> ((n) % 8)) & 1) struct SpriteCopyRequest { @@ -93,21 +93,21 @@ typedef void (*AnimFunc)(struct Sprite *); typedef void (*AnimCmdFunc)(struct Sprite *); typedef void (*AffineAnimCmdFunc)(u8 matrixNum, struct Sprite *); -#define DUMMY_OAM_DATA \ -{ \ - 160, /* Y (off-screen) */ \ - 0, \ - 0, \ - 0, \ - 0, \ - 0, \ - 304, /* X */ \ - 0, \ - 0, \ - 0, \ - 3, /* lowest priority */ \ - 0, \ - 0 \ +#define DUMMY_OAM_DATA \ +{ \ + .y = 160, \ + .affineMode = 0, \ + .objMode = 0, \ + .mosaic = 0, \ + .bpp = 0, \ + .shape = SPRITE_SHAPE(8x8), \ + .x = 304, \ + .matrixNum = 0, \ + .size = SPRITE_SIZE(8x8), \ + .tileNum = 0, \ + .priority = 3, /* lowest priority */ \ + .paletteNum = 0, \ + .affineParam = 0 \ } #define ANIM_END 0xFFFF @@ -180,10 +180,10 @@ static const struct Sprite sDummySprite = .animPaused = 0, .affineAnimPaused = 0, .animLoopCounter = 0, - .data = {0}, + .data = {0, 0, 0, 0, 0, 0, 0}, .inUse = 0, .coordOffsetEnabled = 0, - .invisible = 0, + .invisible = FALSE, .flags_3 = 0, .flags_4 = 0, .flags_5 = 0, @@ -287,22 +287,22 @@ static u16 sSpriteTileRanges[MAX_SPRITES * 2]; static struct AffineAnimState sAffineAnimStates[OAM_MATRIX_COUNT]; static u16 sSpritePaletteTags[16]; -u8 gSpriteOrder[MAX_SPRITES]; -bool8 gShouldProcessSpriteCopyRequests; +u32 gOamMatrixAllocBitmap; +u8 gReservedSpritePaletteCount; + +EWRAM_DATA struct Sprite gSprites[MAX_SPRITES + 1] = {0}; +EWRAM_DATA u16 sSpritePriorities[MAX_SPRITES] = {0}; +u8 sSpriteOrder[MAX_SPRITES]; +bool8 sShouldProcessSpriteCopyRequests; u8 gSpriteCopyRequestCount; -struct SpriteCopyRequest gSpriteCopyRequests[MAX_SPRITE_COPY_REQUESTS]; +struct SpriteCopyRequest sSpriteCopyRequests[MAX_SPRITE_COPY_REQUESTS]; u8 gOamLimit; u16 gReservedSpriteTileCount; -u8 gSpriteTileAllocBitmap[128]; +u8 sSpriteTileAllocBitmap[128]; s16 gSpriteCoordOffsetX; s16 gSpriteCoordOffsetY; -u32 gOamMatrixAllocBitmap; struct OamMatrix gOamMatrices[OAM_MATRIX_COUNT]; -u8 gReservedSpritePaletteCount; - -EWRAM_DATA struct Sprite gSprites[MAX_SPRITES + 1] = {0}; -EWRAM_DATA u16 gSpritePriorities[MAX_SPRITES] = {0}; -EWRAM_DATA u8 gAffineAnimsDisabled = {0}; +EWRAM_DATA bool8 gAffineAnimsDisabled = 0; void ResetSpriteData(void) { @@ -346,7 +346,7 @@ void BuildOamBuffer(void) AddSpritesToOamBuffer(); CopyMatricesToOamBuffer(); gMain.oamLoadDisabled = temp; - gShouldProcessSpriteCopyRequests = TRUE; + sShouldProcessSpriteCopyRequests = TRUE; } static void UpdateOamCoords(void) @@ -378,7 +378,7 @@ static void BuildSpritePriorities(void) { struct Sprite *sprite = &gSprites[i]; u16 priority = sprite->subpriority | (sprite->oam.priority << 8); - gSpritePriorities[i] = priority; + sSpritePriorities[i] = priority; } } @@ -388,10 +388,10 @@ static void SortSprites(void) for (i = 1; i < MAX_SPRITES; i++) { u8 j = i; - struct Sprite *sprite1 = &gSprites[gSpriteOrder[i - 1]]; - struct Sprite *sprite2 = &gSprites[gSpriteOrder[i]]; - u16 sprite1Priority = gSpritePriorities[gSpriteOrder[i - 1]]; - u16 sprite2Priority = gSpritePriorities[gSpriteOrder[i]]; + struct Sprite *sprite1 = &gSprites[sSpriteOrder[i - 1]]; + struct Sprite *sprite2 = &gSprites[sSpriteOrder[i]]; + u16 sprite1Priority = sSpritePriorities[sSpriteOrder[i - 1]]; + u16 sprite2Priority = sSpritePriorities[sSpriteOrder[i]]; s16 sprite1Y = sprite1->oam.y; s16 sprite2Y = sprite2->oam.y; @@ -427,20 +427,20 @@ static void SortSprites(void) && ((sprite1Priority > sprite2Priority) || (sprite1Priority == sprite2Priority && sprite1Y < sprite2Y))) { - u8 temp = gSpriteOrder[j]; - gSpriteOrder[j] = gSpriteOrder[j - 1]; - gSpriteOrder[j - 1] = temp; + u8 temp = sSpriteOrder[j]; + sSpriteOrder[j] = sSpriteOrder[j - 1]; + sSpriteOrder[j - 1] = temp; // UB: If j equals 1, then j-- makes j equal 0. - // Then, gSpriteOrder[-1] gets accessed below. + // Then, sSpriteOrder[-1] gets accessed below. // Although this doesn't result in a bug in the ROM, // the behavior is undefined. j--; - sprite1 = &gSprites[gSpriteOrder[j - 1]]; - sprite2 = &gSprites[gSpriteOrder[j]]; - sprite1Priority = gSpritePriorities[gSpriteOrder[j - 1]]; - sprite2Priority = gSpritePriorities[gSpriteOrder[j]]; + sprite1 = &gSprites[sSpriteOrder[j - 1]]; + sprite2 = &gSprites[sSpriteOrder[j]]; + sprite1Priority = sSpritePriorities[sSpriteOrder[j - 1]]; + sprite2Priority = sSpritePriorities[sSpriteOrder[j]]; sprite1Y = sprite1->oam.y; sprite2Y = sprite2->oam.y; @@ -495,7 +495,7 @@ static void AddSpritesToOamBuffer(void) while (i < MAX_SPRITES) { - struct Sprite *sprite = &gSprites[gSpriteOrder[i]]; + struct Sprite *sprite = &gSprites[sSpriteOrder[i]]; if (sprite->inUse && !sprite->invisible && AddSpriteToOamBuffer(sprite, &oamIndex)) break; i++; @@ -662,14 +662,14 @@ static void ClearSpriteCopyRequests(void) { u8 i; - gShouldProcessSpriteCopyRequests = FALSE; + sShouldProcessSpriteCopyRequests = FALSE; gSpriteCopyRequestCount = 0; for (i = 0; i < MAX_SPRITE_COPY_REQUESTS; i++) { - gSpriteCopyRequests[i].src = 0; - gSpriteCopyRequests[i].dest = 0; - gSpriteCopyRequests[i].size = 0; + sSpriteCopyRequests[i].src = 0; + sSpriteCopyRequests[i].dest = 0; + sSpriteCopyRequests[i].size = 0; } } @@ -777,17 +777,17 @@ u8 SpriteTileAllocBitmapOp(u16 bit, u8 op) if (op == 0) { val = ~(1 << val); - gSpriteTileAllocBitmap[index] &= val; + sSpriteTileAllocBitmap[index] &= val; } else if (op == 1) { val = (1 << val); - gSpriteTileAllocBitmap[index] |= val; + sSpriteTileAllocBitmap[index] |= val; } else { retVal = 1 << shift; - retVal &= gSpriteTileAllocBitmap[index]; + retVal &= sSpriteTileAllocBitmap[index]; } return retVal; @@ -799,18 +799,18 @@ void SpriteCallbackDummy(struct Sprite *sprite) void ProcessSpriteCopyRequests(void) { - if (gShouldProcessSpriteCopyRequests) + if (sShouldProcessSpriteCopyRequests) { u8 i = 0; while (gSpriteCopyRequestCount > 0) { - CpuCopy16(gSpriteCopyRequests[i].src, gSpriteCopyRequests[i].dest, gSpriteCopyRequests[i].size); + CpuCopy16(sSpriteCopyRequests[i].src, sSpriteCopyRequests[i].dest, sSpriteCopyRequests[i].size); gSpriteCopyRequestCount--; i++; } - gShouldProcessSpriteCopyRequests = FALSE; + sShouldProcessSpriteCopyRequests = FALSE; } } @@ -818,9 +818,9 @@ static void RequestSpriteFrameImageCopy(u16 index, u16 tileNum, const struct Spr { if (gSpriteCopyRequestCount < MAX_SPRITE_COPY_REQUESTS) { - gSpriteCopyRequests[gSpriteCopyRequestCount].src = images[index].data; - gSpriteCopyRequests[gSpriteCopyRequestCount].dest = OBJ_VRAM0 + TILE_SIZE_4BPP * tileNum; - gSpriteCopyRequests[gSpriteCopyRequestCount].size = images[index].size; + sSpriteCopyRequests[gSpriteCopyRequestCount].src = images[index].data; + sSpriteCopyRequests[gSpriteCopyRequestCount].dest = OBJ_VRAM0 + TILE_SIZE_4BPP * tileNum; + sSpriteCopyRequests[gSpriteCopyRequestCount].size = images[index].size; gSpriteCopyRequestCount++; } #if DEBUG @@ -835,9 +835,9 @@ void RequestSpriteCopy(const void *src, u8 *dest, u16 size) { if (gSpriteCopyRequestCount < MAX_SPRITE_COPY_REQUESTS) { - gSpriteCopyRequests[gSpriteCopyRequestCount].src = src; - gSpriteCopyRequests[gSpriteCopyRequestCount].dest = dest; - gSpriteCopyRequests[gSpriteCopyRequestCount].size = size; + sSpriteCopyRequests[gSpriteCopyRequestCount].src = src; + sSpriteCopyRequests[gSpriteCopyRequestCount].dest = dest; + sSpriteCopyRequests[gSpriteCopyRequestCount].size = size; gSpriteCopyRequestCount++; } #if DEBUG @@ -880,7 +880,7 @@ static void ResetAllSprites(void) for (i = 0; i < MAX_SPRITES; i++) { ResetSprite(&gSprites[i]); - gSpriteOrder[i] = i; + sSpriteOrder[i] = i; } ResetSprite(&gSprites[i]); |