diff options
author | PikalaxALT <PikalaxALT@users.noreply.github.com> | 2019-10-02 09:22:09 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-10-02 09:22:09 -0400 |
commit | 0d13a85855fff1c28cb4aaf6b9ce775c4ca61195 (patch) | |
tree | b38f93a5e5303ef82d5002619e37c618773e8e20 /src | |
parent | 9317d114a94f978548eb3d664e1bb325724d5ed8 (diff) | |
parent | 9aed405851ce210973fc7b887ec306ebfa931fc9 (diff) |
Merge pull request #822 from GriffinRichards/document-fieldspecials
Document a few field specials
Diffstat (limited to 'src')
-rw-r--r-- | src/field_specials.c | 90 |
1 files changed, 54 insertions, 36 deletions
diff --git a/src/field_specials.c b/src/field_specials.c index d0e6ec013..7a43eca67 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -103,8 +103,8 @@ static void PCTurnOnEffect_1(s16, s8, s8); static void PCTurnOffEffect(void); static void Task_LotteryCornerComputerEffect(u8); static void LotteryCornerComputerEffect(struct Task *); -static void sub_81395BC(u8 taskId); -static void sub_8139620(u8 taskId); +static void Task_ShakeCamera(u8 taskId); +static void StopCameraShake(u8 taskId); static void Task_MoveElevator(u8 taskId); static void MoveElevatorWindowLights(u16 floorDelta, bool8 descending); static void Task_MoveElevatorWindowLights(u8 taskId); @@ -126,8 +126,8 @@ static void Task_DeoxysRockInteraction(u8 taskId); static void ChangeDeoxysRockLevel(u8 a0); static void WaitForDeoxysRockMovement(u8 taskId); static void sub_813B57C(u8 taskId); -static void sub_813B824(u8 taskId); -static void _fwalk(u8 taskId); +static void Task_LoopWingFlapSE(u8 taskId); +static void Task_CloseBattlePikeCurtain(u8 taskId); static u8 sub_813BF44(void); static void sub_813BD84(void); static u16 sub_813BB74(void); @@ -1493,44 +1493,56 @@ bool8 IsPokerusInParty(void) return TRUE; } -void sub_8139560(void) +#define horizontalPan data[0] +#define delayCounter data[1] +#define numShakes data[2] +#define delay data[3] +#define verticalPan data[4] + +void ShakeCamera(void) { - u8 taskId = CreateTask(sub_81395BC, 9); - gTasks[taskId].data[0] = gSpecialVar_0x8005; - gTasks[taskId].data[1] = 0; - gTasks[taskId].data[2] = gSpecialVar_0x8006; - gTasks[taskId].data[3] = gSpecialVar_0x8007; - gTasks[taskId].data[4] = gSpecialVar_0x8004; + u8 taskId = CreateTask(Task_ShakeCamera, 9); + gTasks[taskId].horizontalPan = gSpecialVar_0x8005; + gTasks[taskId].delayCounter = 0; + gTasks[taskId].numShakes = gSpecialVar_0x8006; + gTasks[taskId].delay = gSpecialVar_0x8007; + gTasks[taskId].verticalPan = gSpecialVar_0x8004; SetCameraPanningCallback(NULL); PlaySE(SE_W070); } -static void sub_81395BC(u8 taskId) +static void Task_ShakeCamera(u8 taskId) { s16 *data = gTasks[taskId].data; - data[1]++; - if (data[1] % data[3] == 0) + delayCounter++; + if (delayCounter % delay == 0) { - data[1] = 0; - data[2]--; - data[0] = -data[0]; - data[4] = -data[4]; - SetCameraPanning(data[0], data[4]); - if (data[2] == 0) + delayCounter = 0; + numShakes--; + horizontalPan = -horizontalPan; + verticalPan = -verticalPan; + SetCameraPanning(horizontalPan, verticalPan); + if (numShakes == 0) { - sub_8139620(taskId); + StopCameraShake(taskId); InstallCameraPanAheadCallback(); } } } -static void sub_8139620(u8 taskId) +static void StopCameraShake(u8 taskId) { DestroyTask(taskId); EnableBothScriptContexts(); } +#undef horizontalPan +#undef delayCounter +#undef numShakes +#undef delay +#undef verticalPan + bool8 FoundBlackGlasses(void) { return FlagGet(FLAG_HIDDEN_ITEM_ROUTE_116_BLACK_GLASSES); @@ -1699,7 +1711,7 @@ bool8 InMultiBattleRoom(void) return FALSE; } -void sub_8139980(void) +void OffsetCameraForBattle(void) { SetCameraPanningCallback(NULL); SetCameraPanning(8, 0); @@ -3713,7 +3725,7 @@ u32 GetMartEmployeeObjectEventId(void) return 1; } -bool32 sub_813B4E0(void) +bool32 IsTrainerRegistered(void) { int index = GetRematchIdxByTrainerIdx(gSpecialVar_0x8004); if (index >= 0) @@ -3889,40 +3901,46 @@ void Script_DoRayquazaScene(void) } } -void sub_813B80C(void) +#define playCount data[0] +#define delay data[1] + +void LoopWingFlapSE(void) { - CreateTask(sub_813B824, 8); + CreateTask(Task_LoopWingFlapSE, 8); PlaySE(SE_W017); } -static void sub_813B824(u8 taskId) +static void Task_LoopWingFlapSE(u8 taskId) { s16 *data = gTasks[taskId].data; - data[1]++; - if (data[1] == gSpecialVar_0x8005) + delay++; + if (delay == gSpecialVar_0x8005) { - data[0]++; - data[1] = 0; + playCount++; + delay = 0; PlaySE(SE_W017); } - if (data[0] == gSpecialVar_0x8004 - 1) + if (playCount == gSpecialVar_0x8004 - 1) { DestroyTask(taskId); } } -void sub_813B880(void) +#undef playCount +#undef delay + +void CloseBattlePikeCurtain(void) { - u8 taskId = CreateTask(_fwalk, 8); + 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; } -static void _fwalk(u8 taskId) +static void Task_CloseBattlePikeCurtain(u8 taskId) { u8 x, y; s16 *data = gTasks[taskId].data; @@ -3934,7 +3952,7 @@ static void _fwalk(u8 taskId) { for (x = 0; x < 3; x++) { - MapGridSetMetatileIdAt(gSaveBlock1Ptr->pos.x + x + 6, gSaveBlock1Ptr->pos.y + y + 4, x + 0x201 + y * 8 + data[3] * 32); + MapGridSetMetatileIdAt(gSaveBlock1Ptr->pos.x + x + 6, gSaveBlock1Ptr->pos.y + y + 4, x + 513 + y * 8 + data[3] * 32); } } DrawWholeMapView(); |