Merge pull request #1526 from sphericalice/doc-curtain-special

Document the CloseBattlePikeCurtain special
This commit is contained in:
GriffinR
2021-10-25 16:10:45 -04:00
committed by GitHub
4 changed files with 34 additions and 16 deletions
+23 -11
View File
@@ -3910,13 +3910,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)
@@ -3924,19 +3929,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 * METATILE_ROW_WIDTH) + (tCurrentFrame * CURTAIN_HEIGHT * METATILE_ROW_WIDTH));
}
}
DrawWholeMapView();
data[3]++;
if (data[3] == 3)
tCurrentFrame++;
if (tCurrentFrame == 3)
{
DestroyTask(taskId);
EnableBothScriptContexts();
@@ -3944,6 +3951,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;