summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorcamthesaxman <cameronghall@cox.net>2017-01-07 21:50:08 -0600
committercamthesaxman <cameronghall@cox.net>2017-01-07 21:50:08 -0600
commit0d3842c62a3270da7c9002e005a2b011e27a63fd (patch)
tree9b9b8dbde3591cf875879dcebedecc86a142c59c /src
parentee4c47d8c74932e54a073e399c3b9897c4ce5b1b (diff)
fix some nonmatching functions and fix formatting
Diffstat (limited to 'src')
-rw-r--r--src/berry_tag_screen.c571
1 files changed, 148 insertions, 423 deletions
diff --git a/src/berry_tag_screen.c b/src/berry_tag_screen.c
index 1b432fe70..164e2cfc2 100644
--- a/src/berry_tag_screen.c
+++ b/src/berry_tag_screen.c
@@ -18,12 +18,14 @@
#define OFFSET_7B (123)
#define FIRST_BERRY ITEM_CHERI_BERRY
-struct Struct2000000 {
+struct Struct2000000
+{
/*0x00*/ u8 filler_0[0x1FFFF];
- /*0x1FFFF*/ bool8 var_1FFFF;
+ /*0x1FFFF*/ u8 var_1FFFF;
};
-struct BerryTagStatus {
+struct BerryTagStatus
+{
s16 circles[5];
};
@@ -59,19 +61,21 @@ static void sub_8146480(u8 taskid);
static void sub_81464E4(void);
static void sub_8146600(u8 berry);
// static void sub_81466A0(void);
-static void sub_81466E8(u8 taskId, s32 direction);
+static void sub_81466E8(u8 taskId, s8 direction);
// static void sub_8146798(u8 berry);
// static void sub_8146810(u8 berry);
// static void sub_81468BC(void);
-static void sub_8146014(void) {
+static void sub_8146014(void)
+{
AnimateSprites();
BuildOamBuffer();
RunTasks();
UpdatePaletteFade();
}
-static void sub_814602C(void) {
+static void sub_814602C(void)
+{
REG_BG0VOFS = gUnknown_030041B4;
REG_BG1VOFS = gUnknown_030041B4;
@@ -80,162 +84,146 @@ static void sub_814602C(void) {
TransferPlttBuffer();
}
-static bool8 sub_8146058(void) {
+static bool8 sub_8146058(void)
+{
u8 berry;
u16 backup;
- switch (gMain.state) {
- case 0:
- sub_80F9438();
- sub_80F9368();
- sub_8146288();
- REG_BLDCNT = 0;
- gMain.state += 1;
- break;
-
- case 1:
- ResetPaletteFade();
- gPaletteFade.bufferTransferDisabled = 1;
- gMain.state += 1;
- break;
-
- case 2:
- ResetSpriteData();
- gMain.state += 1;
- break;
-
- case 3:
- SetUpWindowConfig(&gWindowConfig_81E6E18);
- gMain.state += 1;
- break;
-
- case 4:
- MultistepInitMenuWindowBegin(&gWindowConfig_81E6E18);
- gMain.state += 1;
- break;
-
- case 5:
- if (!MultistepInitMenuWindowContinue()) {
- return FALSE;
- }
- unk_2000000.var_1FFFF = 0;
- gMain.state += 1;
- break;
-
- case 6:
- if (!sub_81462B8()) {
- break;
- }
-
- unk_2000000.var_1FFFF = 0;
- gMain.state += 1;
- break;
-
- case 7:
- sub_81464E4();
- gMain.state += 1;
- break;
-
- case 8:
- berry = gScriptItemId + OFFSET_7B;
- gUnknown_0203932C = sub_80A7D8C(berry, 56, 64);
- gMain.state += 1;
- break;
-
- case 9:
- sub_8146600(gScriptItemId + OFFSET_7B);
- gMain.state += 1;
+ switch (gMain.state)
+ {
+ case 0:
+ sub_80F9438();
+ sub_80F9368();
+ sub_8146288();
+ REG_BLDCNT = 0;
+ gMain.state += 1;
+ break;
+ case 1:
+ ResetPaletteFade();
+ gPaletteFade.bufferTransferDisabled = 1;
+ gMain.state += 1;
+ break;
+ case 2:
+ ResetSpriteData();
+ gMain.state += 1;
+ break;
+ case 3:
+ SetUpWindowConfig(&gWindowConfig_81E6E18);
+ gMain.state += 1;
+ break;
+ case 4:
+ MultistepInitMenuWindowBegin(&gWindowConfig_81E6E18);
+ gMain.state += 1;
+ break;
+ case 5:
+ if (!MultistepInitMenuWindowContinue())
break;
-
- case 10:
- backup = REG_IME;
- REG_IME = 0;
- REG_IE |= INTR_FLAG_VBLANK;
- REG_IME = backup;
-
- REG_DISPSTAT |= DISPSTAT_VBLANK_INTR;
- SetVBlankCallback(sub_814602C);
- REG_DISPCNT = DISPCNT_OBJ_ON | DISPCNT_BG_ALL_ON | DISPCNT_OBJ_1D_MAP;
- gMain.state += 1;
+ unk_2000000.var_1FFFF = 0;
+ gMain.state += 1;
+ break;
+ case 6:
+ if (!sub_81462B8())
break;
-
- case 11:
- if (sub_8055870() == TRUE) {
- break;
- }
- gMain.state += 1;
+ unk_2000000.var_1FFFF = 0;
+ gMain.state += 1;
+ break;
+ case 7:
+ sub_81464E4();
+ gMain.state += 1;
+ break;
+ case 8:
+ berry = gScriptItemId + OFFSET_7B;
+ gUnknown_0203932C = sub_80A7D8C(berry, 56, 64);
+ gMain.state += 1;
+ break;
+ case 9:
+ sub_8146600(gScriptItemId + OFFSET_7B);
+ gMain.state += 1;
+ break;
+ case 10:
+ backup = REG_IME;
+ REG_IME = 0;
+ REG_IE |= INTR_FLAG_VBLANK;
+ REG_IME = backup;
+ REG_DISPSTAT |= DISPSTAT_VBLANK_INTR;
+ SetVBlankCallback(sub_814602C);
+ REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_OBJ_ON | DISPCNT_BG_ALL_ON | DISPCNT_OBJ_1D_MAP;
+ gMain.state += 1;
+ break;
+ case 11:
+ if (sub_8055870() == TRUE)
break;
-
- case 12:
- BeginNormalPaletteFade(-1, 0, 0x10, 0, 0);
- gPaletteFade.bufferTransferDisabled = 0;
- SetMainCallback2(sub_8146014);
- return TRUE;
-
+ gMain.state += 1;
+ break;
+ case 12:
+ BeginNormalPaletteFade(-1, 0, 0x10, 0, 0);
+ gPaletteFade.bufferTransferDisabled = 0;
+ SetMainCallback2(sub_8146014);
+ return TRUE;
}
return FALSE;
}
-void BerryTagScreen_814625C(u8 taskId) {
- do {
- if (sub_8146058() == TRUE) {
+void BerryTagScreen_814625C(u8 taskId)
+{
+ do
+ {
+ if (sub_8146058() == TRUE)
+ {
CreateTask(sub_8146480, 0);
return;
}
-
} while (sub_80F9344() != TRUE);
}
-static void sub_8146288(void) {
+static void sub_8146288(void)
+{
REG_BG1CNT = 0x502;
REG_BG2CNT = 0x600;
REG_BG3CNT = 0x703;
gUnknown_030041B4 = 0;
}
-#ifdef NONMATCHING
-bool8 sub_81462B8(void) {
+bool8 sub_81462B8(void)
+{
u16 i;
+ void *addr;
- switch (unk_2000000.var_1FFFF) {
+ switch (unk_2000000.var_1FFFF)
+ {
case 0:
LZDecompressVram(gBerryCheck_Gfx, (void *) VRAM);
unk_2000000.var_1FFFF += 1;
break;
-
case 1:
LZDecompressVram(gUnknown_08E788E4, (void *) VRAM + 0x2800);
unk_2000000.var_1FFFF += 1;
break;
-
case 2:
LZDecompressVram(gUnknown_08E78A84, (void *) VRAM + 0x3000);
unk_2000000.var_1FFFF += 1;
break;
-
case 3:
- for (i = 0; i < 0x400; i++) {
- u16 (*buffer)[0x400] = &gBGTilemapBuffers[3];
- if (gSaveBlock2.playerGender == MALE) {
- (*buffer)[i] = 0x4042;
- } else {
- (*buffer)[i] = 0x5042;
- }
+ for (i = 0; i < 0x400; i++)
+ {
+ if (gSaveBlock2.playerGender == MALE)
+ gBGTilemapBuffers[2][i] = 0x4042;
+ else
+ gBGTilemapBuffers[2][i] = 0x5042;
}
+ addr = (void *)(VRAM + 0x3800);
+ DmaCopy16(3, gBGTilemapBuffers[2], addr, 0x800);
unk_2000000.var_1FFFF += 1;
break;
-
case 4:
LoadCompressedPalette(gBerryCheck_Pal, 0, 96 * 2);
unk_2000000.var_1FFFF += 1;
break;
-
case 5:
LoadCompressedObjectPic(&gUnknown_083C1F74);
unk_2000000.var_1FFFF += 1;
break;
-
case 6:
LoadCompressedObjectPalette(&gUnknown_083C1F7C);
unk_2000000.var_1FFFF = 0;
@@ -244,208 +232,40 @@ bool8 sub_81462B8(void) {
return FALSE;
}
-#else
-__attribute__((naked))
-static bool8 sub_81462B8(void) {
- asm(".syntax unified\n\
- push {r4-r7,lr}\n\
- ldr r1, _081462D4 @ =0x02000000\n\
- ldr r2, _081462D8 @ =0x0001ffff\n\
- adds r0, r1, r2\n\
- ldrb r0, [r0]\n\
- mov r12, r1\n\
- cmp r0, 0x6\n\
- bls _081462CA\n\
- b _08146404\n\
-_081462CA:\n\
- lsls r0, 2\n\
- ldr r1, _081462DC @ =_081462E0\n\
- adds r0, r1\n\
- ldr r0, [r0]\n\
- mov pc, r0\n\
- .align 2, 0\n\
-_081462D4: .4byte 0x02000000\n\
-_081462D8: .4byte 0x0001ffff\n\
-_081462DC: .4byte _081462E0\n\
- .align 2, 0\n\
-_081462E0:\n\
- .4byte _081462FC\n\
- .4byte _0814630C\n\
- .4byte _0814632C\n\
- .4byte _08146340\n\
- .4byte _081463A4\n\
- .4byte _081463C4\n\
- .4byte _081463E4\n\
-_081462FC:\n\
- ldr r0, _08146308 @ =gBerryCheck_Gfx\n\
- movs r1, 0xC0\n\
- lsls r1, 19\n\
- bl LZDecompressVram\n\
- b _081463CA\n\
- .align 2, 0\n\
-_08146308: .4byte gBerryCheck_Gfx\n\
-_0814630C:\n\
- ldr r0, _0814631C @ =gUnknown_08E788E4\n\
- ldr r1, _08146320 @ =0x06002800\n\
- bl LZDecompressVram\n\
- ldr r1, _08146324 @ =0x02000000\n\
- ldr r2, _08146328 @ =0x0001ffff\n\
- adds r1, r2\n\
- b _081463D0\n\
- .align 2, 0\n\
-_0814631C: .4byte gUnknown_08E788E4\n\
-_08146320: .4byte 0x06002800\n\
-_08146324: .4byte 0x02000000\n\
-_08146328: .4byte 0x0001ffff\n\
-_0814632C:\n\
- ldr r0, _08146338 @ =gUnknown_08E78A84\n\
- ldr r1, _0814633C @ =0x06003000\n\
- bl LZDecompressVram\n\
- b _081463CA\n\
- .align 2, 0\n\
-_08146338: .4byte gUnknown_08E78A84\n\
-_0814633C: .4byte 0x06003000\n\
-_08146340:\n\
- movs r1, 0\n\
- ldr r7, _0814635C @ =gBGTilemapBuffers + 0x1000\n\
- adds r2, r7, 0\n\
- ldr r6, _08146360 @ =0x00004042\n\
- ldr r5, _08146364 @ =gSaveBlock2\n\
- ldr r4, _08146368 @ =0x00005042\n\
- ldr r3, _0814636C @ =0x000003ff\n\
-_0814634E:\n\
- ldrb r0, [r5, 0x8]\n\
- cmp r0, 0\n\
- bne _08146370\n\
- lsls r0, r1, 1\n\
- adds r0, r2\n\
- strh r6, [r0]\n\
- b _08146376\n\
- .align 2, 0\n\
-_0814635C: .4byte gBGTilemapBuffers + 0x1000\n\
-_08146360: .4byte 0x00004042\n\
-_08146364: .4byte gSaveBlock2\n\
-_08146368: .4byte 0x00005042\n\
-_0814636C: .4byte 0x000003ff\n\
-_08146370:\n\
- lsls r0, r1, 1\n\
- adds r0, r2\n\
- strh r4, [r0]\n\
-_08146376:\n\
- adds r0, r1, 0x1\n\
- lsls r0, 16\n\
- lsrs r1, r0, 16\n\
- cmp r1, r3\n\
- bls _0814634E\n\
- ldr r1, _08146394 @ =0x06003800\n\
- ldr r0, _08146398 @ =0x040000d4\n\
- str r7, [r0]\n\
- str r1, [r0, 0x4]\n\
- ldr r1, _0814639C @ =0x80000400\n\
- str r1, [r0, 0x8]\n\
- ldr r0, [r0, 0x8]\n\
- ldr r1, _081463A0 @ =0x0001ffff\n\
- add r1, r12\n\
- b _081463D0\n\
- .align 2, 0\n\
-_08146394: .4byte 0x06003800\n\
-_08146398: .4byte 0x040000d4\n\
-_0814639C: .4byte 0x80000400\n\
-_081463A0: .4byte 0x0001ffff\n\
-_081463A4:\n\
- ldr r0, _081463B8 @ =gBerryCheck_Pal\n\
- movs r1, 0\n\
- movs r2, 0xC0\n\
- bl LoadCompressedPalette\n\
- ldr r1, _081463BC @ =0x02000000\n\
- ldr r2, _081463C0 @ =0x0001ffff\n\
- adds r1, r2\n\
- b _081463D0\n\
- .align 2, 0\n\
-_081463B8: .4byte gBerryCheck_Pal\n\
-_081463BC: .4byte 0x02000000\n\
-_081463C0: .4byte 0x0001ffff\n\
-_081463C4:\n\
- ldr r0, _081463D8 @ =gUnknown_083C1F74\n\
- bl LoadCompressedObjectPic\n\
-_081463CA:\n\
- ldr r1, _081463DC @ =0x02000000\n\
- ldr r0, _081463E0 @ =0x0001ffff\n\
- adds r1, r0\n\
-_081463D0:\n\
- ldrb r0, [r1]\n\
- adds r0, 0x1\n\
- strb r0, [r1]\n\
- b _08146404\n\
- .align 2, 0\n\
-_081463D8: .4byte gUnknown_083C1F74\n\
-_081463DC: .4byte 0x02000000\n\
-_081463E0: .4byte 0x0001ffff\n\
-_081463E4:\n\
- ldr r0, _081463F8 @ =gUnknown_083C1F7C\n\
- bl LoadCompressedObjectPalette\n\
- ldr r0, _081463FC @ =0x02000000\n\
- ldr r1, _08146400 @ =0x0001ffff\n\
- adds r0, r1\n\
- movs r1, 0\n\
- strb r1, [r0]\n\
- movs r0, 0x1\n\
- b _08146406\n\
- .align 2, 0\n\
-_081463F8: .4byte gUnknown_083C1F7C\n\
-_081463FC: .4byte 0x02000000\n\
-_08146400: .4byte 0x0001ffff\n\
-_08146404:\n\
- movs r0, 0\n\
-_08146406:\n\
- pop {r4-r7}\n\
- pop {r1}\n\
- bx r1\n\
- .syntax divided\n");
-}
-#endif
-static void sub_814640C(u8 taskId) {
- if (gPaletteFade.active) {
- return;
+static void sub_814640C(u8 taskId)
+{
+ if (!gPaletteFade.active)
+ {
+ SetMainCallback2(sub_80A5B40);
+ sub_80A7DD4();
+ gpu_pal_allocator_reset__manage_upper_four();
+ DestroyTask(taskId);
}
-
- SetMainCallback2(sub_80A5B40);
- sub_80A7DD4();
- gpu_pal_allocator_reset__manage_upper_four();
- DestroyTask(taskId);
}
-static void sub_8146440(u8 taskId) {
+static void sub_8146440(u8 taskId)
+{
PlaySE(SE_SELECT);
BeginNormalPaletteFade(-1, 0, 0, 0x10, 0);
-
gTasks[taskId].func = sub_814640C;
}
-static void sub_8146480(u8 taskid) {
- register u16 keys asm("r1");
-
- if (gPaletteFade.active) {
- return;
- }
-
- keys = gMain.newAndRepeatedKeys & (DPAD_RIGHT | DPAD_LEFT | DPAD_UP | DPAD_DOWN);
- if (keys == DPAD_UP) {
- sub_81466E8(taskid, -1);
- }
-
- keys = gMain.newAndRepeatedKeys & (DPAD_RIGHT | DPAD_LEFT | DPAD_UP | DPAD_DOWN);
- if (keys == DPAD_DOWN) {
- sub_81466E8(taskid, 1);
- }
-
- if (gMain.newKeys & A_BUTTON || gMain.newKeys & B_BUTTON) {
- sub_8146440(taskid);
+static void sub_8146480(u8 taskid)
+{
+ if (!gPaletteFade.active)
+ {
+ if ((gMain.newAndRepeatedKeys & (DPAD_RIGHT | DPAD_LEFT | DPAD_UP | DPAD_DOWN)) == DPAD_UP)
+ sub_81466E8(taskid, -1);
+ if ((gMain.newAndRepeatedKeys & (DPAD_RIGHT | DPAD_LEFT | DPAD_UP | DPAD_DOWN)) == DPAD_DOWN)
+ sub_81466E8(taskid, 1);
+ if (gMain.newKeys & A_BUTTON || gMain.newKeys & B_BUTTON)
+ sub_8146440(taskid);
}
}
-static void sub_81464E4(void) {
+static void sub_81464E4(void)
+{
struct Berry *berryInfo;
u32 size;
s32 sizeMajor;
@@ -461,163 +281,68 @@ static void sub_81464E4(void) {
MenuPrint(berryInfo->description2, 4, 16);
size = (berryInfo->size * 1000) / 254;
- if (size % 10 >= 5) {
+ if (size % 10 >= 5)
size += 10;
- }
sizeMinor = (size % 100) / 10;
sizeMajor = size / 100;
MenuPrint(gOtherText_Size, 11, 7);
- if (berryInfo->size != 0) {
+ if (berryInfo->size != 0)
+ {
ConvertIntToDecimalStringN(gStringVar1, sizeMajor, STR_CONV_MODE_LEFT_ALIGN, 2);
ConvertIntToDecimalStringN(gStringVar2, sizeMinor, STR_CONV_MODE_LEFT_ALIGN, 2);
MenuPrint(gContestStatsText_Unknown1, 16, 7);
- } else {
+ }
+ else
+ {
MenuPrint(gOtherText_ThreeQuestions2, 16, 7);
}
MenuPrint(gOtherText_Firm, 11, 9);
- if (berryInfo->firmness != 0) {
+ if (berryInfo->firmness != 0)
MenuPrint(gUnknown_0841192C[berryInfo->firmness - 1], 16, 9);
- } else {
+ else
MenuPrint(gOtherText_ThreeQuestions2, 16, 9);
- }
}
-#ifdef NONMATCHING
-static void sub_8146600(u8 berry) {
+static void sub_8146600(u8 berry)
+{
struct Berry *berryInfo;
u16 i;
berryInfo = GetBerryInfo(berry +1);
+ for (i = 0; i < 5; i++)
+ gUnknown_0203932E.circles[i] = (u16)gUnknown_0203932E.circles[i] | 0xFFFF;
- for (i = 0; i < 5; i++) {
- gUnknown_0203932E.circles[i] |= 0xFFFF;
- }
-
- if (berryInfo->spicy) {
- // argument is the center of the circle
+ // argument is the center of the circle
+ if (berryInfo->spicy)
gUnknown_0203932E.circles[0] = sub_80A7E5C(48);
- }
-
- if (berryInfo->dry) {
+ if (berryInfo->dry)
gUnknown_0203932E.circles[1] = sub_80A7E5C(88);
- }
-
- if (berryInfo->sweet) {
+ if (berryInfo->sweet)
gUnknown_0203932E.circles[2] = sub_80A7E5C(128);
- }
-
- if (berryInfo->bitter) {
+ if (berryInfo->bitter)
gUnknown_0203932E.circles[3] = sub_80A7E5C(168);
- }
-
- if (berryInfo->sour) {
+ if (berryInfo->sour)
gUnknown_0203932E.circles[4] = sub_80A7E5C(208);
- }
}
-#else
-__attribute__((naked))
-static void sub_8146600(u8 berry) {
- asm(".syntax unified\n\
- push {r4,r5,lr}\n\
- lsls r0, 24\n\
- movs r1, 0x80\n\
- lsls r1, 17\n\
- adds r0, r1\n\
- lsrs r0, 24\n\
- bl GetBerryInfo\n\
- adds r4, r0, 0\n\
- movs r2, 0\n\
- ldr r5, _08146698 @ =gUnknown_0203932E\n\
- ldr r0, _0814669C @ =0x0000ffff\n\
- adds r3, r0, 0\n\
-_0814661A:\n\
- lsls r0, r2, 1\n\
- adds r0, r5\n\
- ldrh r1, [r0]\n\
- orrs r1, r3\n\
- strh r1, [r0]\n\
- adds r0, r2, 0x1\n\
- lsls r0, 16\n\
- lsrs r2, r0, 16\n\
- cmp r2, 0x4\n\
- bls _0814661A\n\
- ldrb r0, [r4, 0x15]\n\
- cmp r0, 0\n\
- beq _08146642\n\
- movs r0, 0x30\n\
- bl sub_80A7E5C\n\
- ldr r1, _08146698 @ =gUnknown_0203932E\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- strh r0, [r1]\n\
-_08146642:\n\
- ldrb r0, [r4, 0x16]\n\
- cmp r0, 0\n\
- beq _08146656\n\
- movs r0, 0x58\n\
- bl sub_80A7E5C\n\
- ldr r1, _08146698 @ =gUnknown_0203932E\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- strh r0, [r1, 0x2]\n\
-_08146656:\n\
- ldrb r0, [r4, 0x17]\n\
- cmp r0, 0\n\
- beq _0814666A\n\
- movs r0, 0x80\n\
- bl sub_80A7E5C\n\
- ldr r1, _08146698 @ =gUnknown_0203932E\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- strh r0, [r1, 0x4]\n\
-_0814666A:\n\
- ldrb r0, [r4, 0x18]\n\
- cmp r0, 0\n\
- beq _0814667E\n\
- movs r0, 0xA8\n\
- bl sub_80A7E5C\n\
- ldr r1, _08146698 @ =gUnknown_0203932E\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- strh r0, [r1, 0x6]\n\
-_0814667E:\n\
- ldrb r0, [r4, 0x19]\n\
- cmp r0, 0\n\
- beq _08146692\n\
- movs r0, 0xD0\n\
- bl sub_80A7E5C\n\
- ldr r1, _08146698 @ =gUnknown_0203932E\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- strh r0, [r1, 0x8]\n\
-_08146692:\n\
- pop {r4,r5}\n\
- pop {r0}\n\
- bx r0\n\
- .align 2, 0\n\
-_08146698: .4byte gUnknown_0203932E\n\
-_0814669C: .4byte 0x0000ffff\n\
- .syntax divided\n");
-}
-#endif
-
-void sub_81466A0(void) {
+void sub_81466A0(void)
+{
u16 i;
- for (i = 0; i < 5; i++) {
- if (gUnknown_0203932E.circles[i] != -1) {
+ for (i = 0; i < 5; i++)
+ {
+ if (gUnknown_0203932E.circles[i] != -1)
+ {
DestroySprite(&gSprites[gUnknown_0203932E.circles[i]]);
gUnknown_0203932E.circles[i] = -1;
}
}
}
-
__attribute__((naked))
-static void sub_81466E8(u8 taskId, s32 direction) {
+static void sub_81466E8(u8 taskId, s8 direction) {
asm(".syntax unified\n\
push {r4-r7,lr}\n\
mov r7, r8\n\