summaryrefslogtreecommitdiff
path: root/src/wallclock.c
diff options
context:
space:
mode:
authorGriffinR <griffin.g.richards@gmail.com>2022-01-19 22:17:37 -0500
committerGitHub <noreply@github.com>2022-01-19 22:17:37 -0500
commita7e6045d71d2d21c4fa5a494d112c6b38226eaec (patch)
tree2f0bd67223e68cbbee52749245aff70ebb90accb /src/wallclock.c
parent69759b2d128ea27f3bc9ebdb7e58ea3698d0a491 (diff)
parentf899a02ac642e66ab9b6baa28903921863529171 (diff)
Merge pull request #1597 from GriffinRichards/misc-cleanup
Miscellaneous fixes
Diffstat (limited to 'src/wallclock.c')
-rw-r--r--src/wallclock.c84
1 files changed, 36 insertions, 48 deletions
diff --git a/src/wallclock.c b/src/wallclock.c
index 759b1d11f..5e0fae3a1 100644
--- a/src/wallclock.c
+++ b/src/wallclock.c
@@ -41,6 +41,8 @@ static void SpriteCB_HourHand(struct Sprite *sprite);
static void SpriteCB_PMIndicator(struct Sprite *sprite);
static void SpriteCB_AMIndicator(struct Sprite *sprite);
+#define sTaskId data[0]
+
#define tMinuteHandAngle data[0]
#define tHourHandAngle data[1]
#define tHours data[2]
@@ -696,21 +698,21 @@ void CB2_StartWallClock(void)
gTasks[taskId].tHourHandAngle = 300;
spriteId = CreateSprite(&sSpriteTemplate_MinuteHand, 120, 80, 1);
- gSprites[spriteId].data[0] = taskId;
+ gSprites[spriteId].sTaskId = taskId;
gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL;
gSprites[spriteId].oam.matrixNum = 0;
spriteId = CreateSprite(&sSpriteTemplate_HourHand, 120, 80, 0);
- gSprites[spriteId].data[0] = taskId;
+ gSprites[spriteId].sTaskId = taskId;
gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL;
gSprites[spriteId].oam.matrixNum = 1;
spriteId = CreateSprite(&sSpriteTemplate_PM, 120, 80, 2);
- gSprites[spriteId].data[0] = taskId;
+ gSprites[spriteId].sTaskId = taskId;
gSprites[spriteId].data[1] = 45;
spriteId = CreateSprite(&sSpriteTemplate_AM, 120, 80, 2);
- gSprites[spriteId].data[0] = taskId;
+ gSprites[spriteId].sTaskId = taskId;
gSprites[spriteId].data[1] = 90;
WallClockInit();
@@ -744,21 +746,21 @@ void CB2_ViewWallClock(void)
}
spriteId = CreateSprite(&sSpriteTemplate_MinuteHand, 120, 80, 1);
- gSprites[spriteId].data[0] = taskId;
+ gSprites[spriteId].sTaskId = taskId;
gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL;
gSprites[spriteId].oam.matrixNum = 0;
spriteId = CreateSprite(&sSpriteTemplate_HourHand, 120, 80, 0);
- gSprites[spriteId].data[0] = taskId;
+ gSprites[spriteId].sTaskId = taskId;
gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL;
gSprites[spriteId].oam.matrixNum = 1;
spriteId = CreateSprite(&sSpriteTemplate_PM, 120, 80, 2);
- gSprites[spriteId].data[0] = taskId;
+ gSprites[spriteId].sTaskId = taskId;
gSprites[spriteId].data[1] = angle1;
spriteId = CreateSprite(&sSpriteTemplate_AM, 120, 80, 2);
- gSprites[spriteId].data[0] = taskId;
+ gSprites[spriteId].sTaskId = taskId;
gSprites[spriteId].data[1] = angle2;
WallClockInit();
@@ -1015,7 +1017,7 @@ static void InitClockWithRtc(u8 taskId)
static void SpriteCB_MinuteHand(struct Sprite *sprite)
{
- u16 angle = gTasks[sprite->data[0]].tMinuteHandAngle;
+ u16 angle = gTasks[sprite->sTaskId].tMinuteHandAngle;
s16 sin = Sin2(angle) / 16;
s16 cos = Cos2(angle) / 16;
u16 x, y;
@@ -1035,7 +1037,7 @@ static void SpriteCB_MinuteHand(struct Sprite *sprite)
static void SpriteCB_HourHand(struct Sprite *sprite)
{
- u16 angle = gTasks[sprite->data[0]].tHourHandAngle;
+ u16 angle = gTasks[sprite->sTaskId].tHourHandAngle;
s16 sin = Sin2(angle) / 16;
s16 cos = Cos2(angle) / 16;
u16 x, y;
@@ -1053,58 +1055,44 @@ static void SpriteCB_HourHand(struct Sprite *sprite)
sprite->y2 = y;
}
+#define sAngle data[1]
+
static void SpriteCB_PMIndicator(struct Sprite *sprite)
{
- if (gTasks[sprite->data[0]].tPeriod != PERIOD_AM)
+ if (gTasks[sprite->sTaskId].tPeriod != PERIOD_AM)
{
- if (sprite->data[1] >= 60 && sprite->data[1] < 90)
- {
- sprite->data[1] += 5;
- }
- if (sprite->data[1] < 60)
- {
- sprite->data[1]++;
- }
+ if (sprite->sAngle >= 60 && sprite->sAngle < 90)
+ sprite->sAngle += 5;
+ if (sprite->sAngle < 60)
+ sprite->sAngle++;
}
else
{
- if (sprite->data[1] >= 46 && sprite->data[1] < 76)
- {
- sprite->data[1] -= 5;
- }
- if (sprite->data[1] > 75)
- {
- sprite->data[1]--;
- }
+ if (sprite->sAngle >= 46 && sprite->sAngle < 76)
+ sprite->sAngle -= 5;
+ if (sprite->sAngle > 75)
+ sprite->sAngle--;
}
- sprite->x2 = Cos2(sprite->data[1]) * 30 / 0x1000;
- sprite->y2 = Sin2(sprite->data[1]) * 30 / 0x1000;
+ sprite->x2 = Cos2(sprite->sAngle) * 30 / 0x1000;
+ sprite->y2 = Sin2(sprite->sAngle) * 30 / 0x1000;
}
static void SpriteCB_AMIndicator(struct Sprite *sprite)
{
- if (gTasks[sprite->data[0]].tPeriod != PERIOD_AM)
+ if (gTasks[sprite->sTaskId].tPeriod != PERIOD_AM)
{
- if (sprite->data[1] >= 105 && sprite->data[1] < 135)
- {
- sprite->data[1] += 5;
- }
- if (sprite->data[1] < 105)
- {
- sprite->data[1]++;
- }
+ if (sprite->sAngle >= 105 && sprite->sAngle < 135)
+ sprite->sAngle += 5;
+ if (sprite->sAngle < 105)
+ sprite->sAngle++;
}
else
{
- if (sprite->data[1] >= 91 && sprite->data[1] < 121)
- {
- sprite->data[1] -= 5;
- }
- if (sprite->data[1] > 120)
- {
- sprite->data[1]--;
- }
+ if (sprite->sAngle >= 91 && sprite->sAngle < 121)
+ sprite->sAngle -= 5;
+ if (sprite->sAngle > 120)
+ sprite->sAngle--;
}
- sprite->x2 = Cos2(sprite->data[1]) * 30 / 0x1000;
- sprite->y2 = Sin2(sprite->data[1]) * 30 / 0x1000;
+ sprite->x2 = Cos2(sprite->sAngle) * 30 / 0x1000;
+ sprite->y2 = Sin2(sprite->sAngle) * 30 / 0x1000;
}