summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorsphericalice <sphericalice@outlook.com>2021-10-25 18:03:14 +0100
committersphericalice <sphericalice@outlook.com>2021-10-25 18:03:14 +0100
commit120e75d275988c5d723ac827e141d4ea5195e461 (patch)
tree28b44eeb474efe606d3c4b3eef741f4e748f08e0 /src
parent3834cc2957b27c771c59027935b0b3a86a19b273 (diff)
Document the CloseBattlePikeCurtain special
Diffstat (limited to 'src')
-rw-r--r--src/field_specials.c34
1 files changed, 23 insertions, 11 deletions
diff --git a/src/field_specials.c b/src/field_specials.c
index ab02f9938..17790532b 100644
--- a/src/field_specials.c
+++ b/src/field_specials.c
@@ -3931,13 +3931,18 @@ static void Task_LoopWingFlapSE(u8 taskId)
#undef playCount
#undef delay
+#define CURTAIN_HEIGHT 4
+#define CURTAIN_WIDTH 3
+#define tFrameTimer data
+#define tCurrentFrame data[3]
+
void CloseBattlePikeCurtain(void)
{
u8 taskId = CreateTask(Task_CloseBattlePikeCurtain, 8);
- gTasks[taskId].data[0] = 4;
- gTasks[taskId].data[1] = 4;
- gTasks[taskId].data[2] = 4;
- gTasks[taskId].data[3] = 0;
+ gTasks[taskId].tFrameTimer[0] = 4;
+ gTasks[taskId].tFrameTimer[1] = 4;
+ gTasks[taskId].tFrameTimer[2] = 4;
+ gTasks[taskId].tCurrentFrame = 0;
}
static void Task_CloseBattlePikeCurtain(u8 taskId)
@@ -3945,19 +3950,21 @@ static void Task_CloseBattlePikeCurtain(u8 taskId)
u8 x, y;
s16 *data = gTasks[taskId].data;
- data[data[3]]--;
- if (data[data[3]] == 0)
+ tFrameTimer[tCurrentFrame]--;
+ if (tFrameTimer[tCurrentFrame] == 0)
{
- for (y = 0; y < 4; y++)
+ for (y = 0; y < CURTAIN_HEIGHT; y++)
{
- for (x = 0; x < 3; x++)
+ for (x = 0; x < CURTAIN_WIDTH; x++)
{
- MapGridSetMetatileIdAt(gSaveBlock1Ptr->pos.x + x + 6, gSaveBlock1Ptr->pos.y + y + 4, x + 513 + y * 8 + data[3] * 32);
+ MapGridSetMetatileIdAt(gSaveBlock1Ptr->pos.x + x + MAP_OFFSET - 1,
+ gSaveBlock1Ptr->pos.y + y + MAP_OFFSET - 3,
+ (x + METATILE_BattlePike_CurtainFrames_Start) + (y * TILESET_WIDTH) + (tCurrentFrame * CURTAIN_HEIGHT * TILESET_WIDTH));
}
}
DrawWholeMapView();
- data[3]++;
- if (data[3] == 3)
+ tCurrentFrame++;
+ if (tCurrentFrame == 3)
{
DestroyTask(taskId);
EnableBothScriptContexts();
@@ -3965,6 +3972,11 @@ static void Task_CloseBattlePikeCurtain(u8 taskId)
}
}
+#undef CURTAIN_HEIGHT
+#undef CURTAIN_WIDTH
+#undef tFrameTimer
+#undef tCurrentFrame
+
void GetBattlePyramidHint(void)
{
gSpecialVar_Result = gSpecialVar_0x8004 / 7;