summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGriffinR <griffin.richards@comcast.net>2019-09-30 01:42:52 -0400
committerGriffinR <griffin.richards@comcast.net>2019-09-30 01:42:52 -0400
commit9aed405851ce210973fc7b887ec306ebfa931fc9 (patch)
treef536f4f50837079d566f13c5984a0fa88171e481 /src
parent3d9bad5558c6ef8828be7a50e3e553d55ca877e0 (diff)
Document a few field specials
Diffstat (limited to 'src')
-rw-r--r--src/field_specials.c90
1 files changed, 54 insertions, 36 deletions
diff --git a/src/field_specials.c b/src/field_specials.c
index 0c4cc34e3..a0b7111c9 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();