diff options
Diffstat (limited to 'src/field_effect.c')
-rw-r--r-- | src/field_effect.c | 1066 |
1 files changed, 438 insertions, 628 deletions
diff --git a/src/field_effect.c b/src/field_effect.c index e7ecca183..935501130 100644 --- a/src/field_effect.c +++ b/src/field_effect.c @@ -1,10 +1,10 @@ #include "global.h" -#include "field_effect.h" -#include "trainer_pokemon_sprites.h" #include "decompress.h" +#include "event_object_movement.h" #include "field_camera.h" +#include "field_control_avatar.h" +#include "field_effect.h" #include "field_effect_helpers.h" -#include "event_object_movement.h" #include "field_player_avatar.h" #include "field_screen.h" #include "field_weather.h" @@ -22,24 +22,229 @@ #include "sound.h" #include "sprite.h" #include "task.h" +#include "trainer_pokemon_sprites.h" #include "trig.h" #include "util.h" +#include "constants/field_effects.h" +#include "constants/event_object_movement_constants.h" #include "constants/rgb.h" #include "constants/songs.h" #define subsprite_table(ptr) {.subsprites = ptr, .subspriteCount = (sizeof ptr) / (sizeof(struct Subsprite))} +extern struct CompressedSpritePalette gMonPaletteTable[]; // GF made a mistake and did not extern it as const. + EWRAM_DATA s32 gFieldEffectArguments[8] = {0}; // Static type declarations +static void Task_PokecenterHeal(u8 taskId); +static void PokecenterHealEffect_0(struct Task *); +static void PokecenterHealEffect_1(struct Task *); +static void PokecenterHealEffect_2(struct Task *); +static void PokecenterHealEffect_3(struct Task *); + +static void Task_HallOfFameRecord(u8 taskId); +static void HallOfFameRecordEffect_0(struct Task *); +static void HallOfFameRecordEffect_1(struct Task *); +static void HallOfFameRecordEffect_2(struct Task *); +static void HallOfFameRecordEffect_3(struct Task *); + +static u8 CreatePokeballGlowSprite(s16, s16, s16, u16); +static void SpriteCB_PokeballGlowEffect(struct Sprite *); +static void PokeballGlowEffect_0(struct Sprite *); +static void PokeballGlowEffect_1(struct Sprite *); +static void PokeballGlowEffect_2(struct Sprite *); +static void PokeballGlowEffect_3(struct Sprite *); +static void PokeballGlowEffect_4(struct Sprite *); +static void PokeballGlowEffect_5(struct Sprite *); +static void PokeballGlowEffect_6(struct Sprite *); +static void PokeballGlowEffect_7(struct Sprite *); + +static u8 PokecenterHealEffectHelper(s16, s16); +static void HallOfFameRecordEffectHelper(s16, s16, s16, u8); + +static void mapldr_080842E8(void); +static void task00_8084310(u8); +static void mapldr_08084390(void); +static void c3_080843F8(u8); + +static void sub_80B6B94(u8); +static bool8 sub_80B6BCC(struct Task *); +static bool8 sub_80B6C74(struct Task *); +static bool8 sub_80B6C90(struct Task *); +static bool8 sub_80B6D04(struct Task *); +static bool8 sub_80B6DBC(struct Task *); +static bool8 sub_80B6DD8(struct Task *); +static bool8 sub_80B6E18(struct Task *); + +static void sub_80B6E88(u8); +static bool8 sub_80B6EC0(struct Task *); +static bool8 sub_80B6EE0(struct Task *); +static bool8 sub_80B6F50(struct Task *); +static bool8 sub_80B6F74(struct Task *); +static bool8 sub_80B6F84(struct Task *); +static bool8 sub_80B6FA8(struct Task *); + +static void sub_80B6FB8(struct Task *); +static void sub_80B7004(struct Task *); +static void sub_80B7050(void); +static void sub_80B7060(void); +static void sub_80B70B4(void); +static void sub_80B70DC(u8); + +static bool8 sub_80B7114(struct Task *); +static bool8 sub_80B7190(struct Task *); +static bool8 sub_80B71D0(struct Task *); +static bool8 sub_80B7230(struct Task *); +static bool8 sub_80B7270(struct Task *); +static bool8 sub_80B72D0(struct Task *); +static bool8 sub_80B72F4(struct Task *); + +static void sub_80B7384(u8); +static bool8 sub_80B73D0(struct Task *, struct EventObject *); +static bool8 waterfall_1_do_anim_probably(struct Task *, struct EventObject *); +static bool8 waterfall_2_wait_anim_finish_probably(struct Task *, struct EventObject *); +static bool8 sub_80B7450(struct Task *, struct EventObject *); +static bool8 sub_80B7478(struct Task *, struct EventObject *); + +static void Task_Dive(u8); +static bool8 dive_1_lock(struct Task *); +static bool8 dive_2_unknown(struct Task *); +static bool8 dive_3_unknown(struct Task *); + +static void sub_80B75F0(u8); +static bool8 sub_80B764C(struct Task *, struct EventObject *, struct Sprite *); +static bool8 sub_80B7684(struct Task *, struct EventObject *, struct Sprite *); +static bool8 sub_80B76B8(struct Task *, struct EventObject *, struct Sprite *); +static bool8 sub_80B7704(struct Task *, struct EventObject *, struct Sprite *); +static bool8 sub_80B77F8(struct Task *, struct EventObject *, struct Sprite *); +static bool8 sub_80B7814(struct Task *, struct EventObject *, struct Sprite *); + +static void mapldr_080851BC(void); +static void sub_80B7890(u8); + +static bool8 sub_80B78EC(struct Task *, struct EventObject *, struct Sprite *); +static bool8 sub_80B791C(struct Task *, struct EventObject *, struct Sprite *); +static bool8 sub_80B7968(struct Task *, struct EventObject *, struct Sprite *); +static bool8 sub_80B79BC(struct Task *, struct EventObject *, struct Sprite *); + +static void sub_80B7A8C(u8); + +static bool8 sub_80B7AE8(struct Task *, struct EventObject *, struct Sprite *); +static bool8 sub_80B7B18(struct Task *, struct EventObject *, struct Sprite *); +static bool8 sub_80B7B94(struct Task *, struct EventObject *, struct Sprite *); +static bool8 sub_80B7BCC(struct Task *, struct EventObject *, struct Sprite *); +static bool8 sub_80B7BF4(struct Task *, struct EventObject *, struct Sprite *); + +static void DoEscapeRopeFieldEffect(u8); +static void EscapeRopeFieldEffect_Step0(struct Task *); +static void EscapeRopeFieldEffect_Step1(struct Task *); + +static void mapldr_080859D4(void); +static void sub_80B7E94(u8); + +static void sub_80B7EC4(struct Task *); +static void sub_80B7EE8(struct Task *); + +static void ExecuteTeleportFieldEffectTask(u8); +static void TeleportFieldEffectTask1(struct Task*); +static void TeleportFieldEffectTask2(struct Task*); +static void TeleportFieldEffectTask3(struct Task*); +static void TeleportFieldEffectTask4(struct Task*); + +static void mapldr_08085D88(void); +static void sub_80B8250(u8); + +static void sub_80B8280(struct Task *); +static void sub_80B830C(struct Task *); +static void sub_80B8410(struct Task *); + +static void sub_80B8554(u8); +static void sub_80B8584(struct Task *); +static void sub_80B85F8(struct Task *); +static void sub_80B8660(struct Task *); +static void sub_80B86EC(struct Task *); +static void sub_80B871C(struct Task *); +static void sub_80B8770(struct Task *); +static void overworld_bg_setup_2(struct Task *); + +static void sub_80B880C(void); +static void sub_80B8874(u16); + +static void sub_80B88B4(u8); +static void sub_80B88E4(struct Task *); +static void sub_80B8920(struct Task *); +static void sub_80B898C(struct Task *); +static void sub_80B89DC(struct Task *); +static void sub_80B8A0C(struct Task *); +static void sub_80B8A44(struct Task *); +static void sub_80B8A64(struct Task *); + +static void sub_80B8AE0(void); +static void sub_80B8B28(struct Task *); +static bool8 sub_80B8B38(struct Task *); +static bool8 sub_80B8BF0(struct Task *); + +static u8 sub_80B8C60(u32, u32, u32); +static void sub_80B8CC0(struct Sprite *); +static void sub_80B8D04(struct Sprite *); +static void sub_80B8D20(struct Sprite *); + +static void sub_80B8D84(u8); +static void sub_80B8DB4(struct Task *); +static void sub_80B8E14(struct Task *); +static void sub_80B8E60(struct Task *); +static void sub_80B8EA8(struct Task *); +static void sub_80B8F24(struct Task *); + +static void sub_80B9128(struct Sprite *); + +static void sub_80B91D4(u8); +static void sub_80B9204(struct Task *); +static void sub_80B925C(struct Task *); +static void sub_80B92A0(struct Task *); +static void sub_80B92F8(struct Task *); +static void sub_80B933C(struct Task *); +static void sub_80B9390(struct Task *); +static void sub_80B9418(struct Task *); +static void sub_80B9474(struct Task *); +static void sub_80B9494(struct Task *); + +static u8 sub_80B94C4(void); +static u8 sub_80B9508(u8); +static void sub_80B9524(u8); +static void sub_80B9560(u8, u8); +static void sub_80B957C(struct Sprite *); +static void sub_80B963C(struct Sprite *); + +static void sub_80B97D4(u8); +static void sub_80B9804(struct Task *); +static void sub_80B98B8(struct Task *); +static void sub_80B9924(struct Task *); +static void sub_80B9978(struct Task *); +static void sub_80B99F0(struct Task *); +static void sub_80B9A28(struct Task *); +static void sub_80B9A60(struct Task *); + +static void sub_80B9BE8(u8 taskId); +static void sub_80B9DB8(struct Sprite* sprite); +static void sub_80B9EDC(u8 taskId); + // Static RAM declarations static IWRAM_DATA u8 sActiveList[32]; -// Static ROM declarations +// External declarations extern u8 *gFieldEffectScriptPointers[]; +extern const struct SpriteTemplate *const gFieldEffectObjectTemplatePointers[]; +extern void sub_81555D8(u8, u8); +extern void pal_fill_for_maplights(void); +extern void sub_80E1558(u8); +extern void sub_80E1570(void); +extern bool8 sub_80E1584(void); +extern void sub_80AF0B4(void); // .rodata const u32 gNewGameBirchPic[] = INCBIN_U32("graphics/birch_speech/birch.4bpp"); @@ -322,9 +527,9 @@ bool8 (*const gUnknown_0855C460[])(struct Task *, struct EventObject *, struct S sub_80B7BF4, }; -void (*const gUnknown_0855C474[])(struct Task *) = { - sub_80B7D14, - sub_80B7D34, +void (*const gEscapeRopeFieldEffectFuncs[])(struct Task *) = { + EscapeRopeFieldEffect_Step0, + EscapeRopeFieldEffect_Step1, }; // .text @@ -552,67 +757,15 @@ u8 AddNewGameBirchObject(s16 x, s16 y, u8 subpriority) return CreateSprite(&gNewGameBirchObjectTemplate, x, y, subpriority); } -#ifdef NONMATCHING -u8 CreateMonSprite_PicBox(u16 species, s16 x, s16 y) +u8 CreateMonSprite_PicBox(u16 species, s16 x, s16 y, u8 subpriority) { - u16 spriteId = CreateMonPicSprite_HandleDeoxys(species, 0, 0x8000, 1, x, y, 0, gMonPaletteTable[species].tag); + s32 spriteId = CreateMonPicSprite_HandleDeoxys(species, 0, 0x8000, 1, x, y, 0, gMonPaletteTable[species].tag); PreservePaletteInWeather(IndexOfSpritePaletteTag(gMonPaletteTable[species].tag) + 0x10); if (spriteId == 0xFFFF) - return 0x40; - - return spriteId; + return MAX_SPRITES; + else + return spriteId; } -#else -NAKED -u8 CreateMonSprite_PicBox(u16 species, s16 x, s16 y) -{ - asm_unified("push {r4,r5,lr}\n\ - sub sp, 0x10\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - movs r3, 0x80\n\ - lsls r3, 8\n\ - lsls r1, 16\n\ - asrs r1, 16\n\ - str r1, [sp]\n\ - lsls r2, 16\n\ - asrs r2, 16\n\ - str r2, [sp, 0x4]\n\ - movs r1, 0\n\ - str r1, [sp, 0x8]\n\ - ldr r1, =gMonPaletteTable\n\ - lsls r4, r0, 3\n\ - adds r4, r1\n\ - ldrh r1, [r4, 0x4]\n\ - str r1, [sp, 0xC]\n\ - movs r1, 0\n\ - adds r2, r3, 0\n\ - movs r3, 0x1\n\ - bl CreateMonPicSprite_HandleDeoxys\n\ - lsls r0, 16\n\ - lsrs r5, r0, 16\n\ - ldrh r0, [r4, 0x4]\n\ - bl IndexOfSpritePaletteTag\n\ - adds r0, 0x10\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - bl PreservePaletteInWeather\n\ - ldr r0, =0x0000ffff\n\ - cmp r5, r0\n\ - beq _080B5FDC\n\ - lsls r0, r5, 24\n\ - lsrs r0, 24\n\ - b _080B5FDE\n\ - .pool\n\ -_080B5FDC:\n\ - movs r0, 0x40\n\ -_080B5FDE:\n\ - add sp, 0x10\n\ - pop {r4,r5}\n\ - pop {r1}\n\ - bx r1"); -} -#endif //NONMATCHING u8 CreateMonSprite_FieldMove(u16 species, u32 d, u32 g, s16 x, s16 y, u8 subpriority) { @@ -620,9 +773,9 @@ u8 CreateMonSprite_FieldMove(u16 species, u32 d, u32 g, s16 x, s16 y, u8 subprio u16 spriteId = CreateMonPicSprite_HandleDeoxys(species, d, g, 1, x, y, 0, spritePalette->tag); PreservePaletteInWeather(IndexOfSpritePaletteTag(spritePalette->tag) + 0x10); if (spriteId == 0xFFFF) - return 0x40; - - return spriteId; + return MAX_SPRITES; + else + return spriteId; } void FreeResourcesAndDestroySprite(struct Sprite *sprite, u8 spriteId) @@ -807,10 +960,6 @@ void MultiplyPaletteRGBComponents(u16 i, u8 r, u8 g, u8 b) } #endif -void Task_PokecenterHeal(u8 taskId); -u8 CreatePokeballGlowSprite(s16, s16, s16, u16); -u8 PokecenterHealEffectHelper(s16, s16); - bool8 FldEff_PokecenterHeal(void) { u8 nPokemon; @@ -826,21 +975,21 @@ bool8 FldEff_PokecenterHeal(void) return FALSE; } -void Task_PokecenterHeal(u8 taskId) +static void Task_PokecenterHeal(u8 taskId) { struct Task *task; task = &gTasks[taskId]; gUnknown_0855C364[task->data[0]](task); } -void PokecenterHealEffect_0(struct Task *task) +static void PokecenterHealEffect_0(struct Task *task) { task->data[0]++; task->data[6] = CreatePokeballGlowSprite(task->data[1], task->data[2], task->data[3], 1); task->data[7] = PokecenterHealEffectHelper(task->data[4], task->data[5]); } -void PokecenterHealEffect_1(struct Task *task) +static void PokecenterHealEffect_1(struct Task *task) { if (gSprites[task->data[6]].data[0] > 1) { @@ -849,7 +998,7 @@ void PokecenterHealEffect_1(struct Task *task) } } -void PokecenterHealEffect_2(struct Task *task) +static void PokecenterHealEffect_2(struct Task *task) { if (gSprites[task->data[6]].data[0] > 4) { @@ -857,7 +1006,7 @@ void PokecenterHealEffect_2(struct Task *task) } } -void PokecenterHealEffect_3(struct Task *task) +static void PokecenterHealEffect_3(struct Task *task) { if (gSprites[task->data[6]].data[0] > 6) { @@ -867,9 +1016,6 @@ void PokecenterHealEffect_3(struct Task *task) } } -void Task_HallOfFameRecord(u8 taskId); -void HallOfFameRecordEffectHelper(s16, s16, s16, u8); - bool8 FldEff_HallOfFameRecord(void) { u8 nPokemon; @@ -883,14 +1029,14 @@ bool8 FldEff_HallOfFameRecord(void) return FALSE; } -void Task_HallOfFameRecord(u8 taskId) +static void Task_HallOfFameRecord(u8 taskId) { struct Task *task; task = &gTasks[taskId]; gUnknown_0855C374[task->data[0]](task); } -void HallOfFameRecordEffect_0(struct Task *task) +static void HallOfFameRecordEffect_0(struct Task *task) { u8 taskId; task->data[0]++; @@ -903,7 +1049,7 @@ void HallOfFameRecordEffect_0(struct Task *task) HallOfFameRecordEffectHelper(taskId, 0xc8, 0x08, 1); } -void HallOfFameRecordEffect_1(struct Task *task) +static void HallOfFameRecordEffect_1(struct Task *task) { if (gSprites[task->data[6]].data[0] > 1) { @@ -912,7 +1058,7 @@ void HallOfFameRecordEffect_1(struct Task *task) } } -void HallOfFameRecordEffect_2(struct Task *task) +static void HallOfFameRecordEffect_2(struct Task *task) { if (gSprites[task->data[6]].data[0] > 4) { @@ -920,7 +1066,7 @@ void HallOfFameRecordEffect_2(struct Task *task) } } -void HallOfFameRecordEffect_3(struct Task *task) +static void HallOfFameRecordEffect_3(struct Task *task) { if (gSprites[task->data[6]].data[0] > 6) { @@ -930,9 +1076,8 @@ void HallOfFameRecordEffect_3(struct Task *task) } } -void SpriteCB_PokeballGlowEffect(struct Sprite *); -u8 CreatePokeballGlowSprite(s16 data6, s16 x, s16 y, u16 data5) +static u8 CreatePokeballGlowSprite(s16 data6, s16 x, s16 y, u16 data5) { u8 spriteId; struct Sprite *sprite; @@ -946,12 +1091,12 @@ u8 CreatePokeballGlowSprite(s16 data6, s16 x, s16 y, u16 data5) return spriteId; } -void SpriteCB_PokeballGlowEffect(struct Sprite *sprite) +static void SpriteCB_PokeballGlowEffect(struct Sprite *sprite) { gUnknown_0855C384[sprite->data[0]](sprite); } -void PokeballGlowEffect_0(struct Sprite *sprite) +static void PokeballGlowEffect_0(struct Sprite *sprite) { u8 endSpriteId; if (sprite->data[1] == 0 || (--sprite->data[1]) == 0) @@ -971,7 +1116,7 @@ void PokeballGlowEffect_0(struct Sprite *sprite) } } -void PokeballGlowEffect_1(struct Sprite *sprite) +static void PokeballGlowEffect_1(struct Sprite *sprite) { if ((--sprite->data[1]) == 0) { @@ -986,7 +1131,7 @@ void PokeballGlowEffect_1(struct Sprite *sprite) } } -void PokeballGlowEffect_2(struct Sprite *sprite) +static void PokeballGlowEffect_2(struct Sprite *sprite) { u8 phase; if ((--sprite->data[1]) == 0) @@ -1016,7 +1161,7 @@ void PokeballGlowEffect_2(struct Sprite *sprite) } } -void PokeballGlowEffect_3(struct Sprite *sprite) +static void PokeballGlowEffect_3(struct Sprite *sprite) { u8 phase; if ((--sprite->data[1]) == 0) @@ -1038,7 +1183,7 @@ void PokeballGlowEffect_3(struct Sprite *sprite) MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(0x1007) << 4) + 0x103, gUnknown_0855C3BC[phase], gUnknown_0855C3C0[phase], gUnknown_0855C3C4[phase]); } -void PokeballGlowEffect_4(struct Sprite *sprite) +static void PokeballGlowEffect_4(struct Sprite *sprite) { if ((--sprite->data[1]) == 0) { @@ -1046,12 +1191,12 @@ void PokeballGlowEffect_4(struct Sprite *sprite) } } -void PokeballGlowEffect_5(struct Sprite *sprite) +static void PokeballGlowEffect_5(struct Sprite *sprite) { sprite->data[0]++; } -void PokeballGlowEffect_6(struct Sprite *sprite) +static void PokeballGlowEffect_6(struct Sprite *sprite) { if (sprite->data[5] == 0 || IsFanfareTaskInactive()) { @@ -1059,7 +1204,7 @@ void PokeballGlowEffect_6(struct Sprite *sprite) } } -void PokeballGlowEffect_7(struct Sprite *sprite) +static void PokeballGlowEffect_7(struct Sprite *sprite) { } @@ -1071,7 +1216,7 @@ void SpriteCB_PokeballGlow(struct Sprite *sprite) } } -u8 PokecenterHealEffectHelper(s16 x, s16 y) +static u8 PokecenterHealEffectHelper(s16 x, s16 y) { u8 spriteIdAtEnd; struct Sprite *sprite; @@ -1097,7 +1242,7 @@ void SpriteCB_PokecenterMonitor(struct Sprite *sprite) } } -void HallOfFameRecordEffectHelper(s16 a0, s16 a1, s16 a2, u8 a3) +static void HallOfFameRecordEffectHelper(s16 a0, s16 a1, s16 a2, u8 a3) { u8 spriteIdAtEnd; if (!a3) @@ -1129,10 +1274,6 @@ void SpriteCB_HallOfFameMonitor(struct Sprite *sprite) } } -void mapldr_080842E8(void); -void mapldr_08084390(void); -void task00_8084310(u8); -void c3_080843F8(u8); void sub_80B69DC(void) { @@ -1140,7 +1281,7 @@ void sub_80B69DC(void) gFieldCallback = mapldr_080842E8; } -void mapldr_080842E8(void) +static void mapldr_080842E8(void) { pal_fill_black(); CreateTask(task00_8084310, 0); @@ -1149,7 +1290,7 @@ void mapldr_080842E8(void) gFieldCallback = NULL; } -void task00_8084310(u8 taskId) +static void task00_8084310(u8 taskId) { struct Task *task; task = &gTasks[taskId]; @@ -1177,7 +1318,7 @@ void task00_8084310(u8 taskId) } } -void mapldr_08084390(void) +static void mapldr_08084390(void) { Overworld_PlaySpecialMapMusic(); pal_fill_black(); @@ -1192,7 +1333,7 @@ void mapldr_08084390(void) gFieldCallback = NULL; } -void c3_080843F8(u8 taskId) +static void c3_080843F8(u8 taskId) { struct Task *task; task = &gTasks[taskId]; @@ -1213,11 +1354,6 @@ void c3_080843F8(u8 taskId) } } -extern void pal_fill_for_maplights(void); -void sub_80B6B94(u8); -extern void CameraObjectReset2(void); -extern void CameraObjectReset1(void); - void sub_80B6B68(void) { Overworld_PlaySpecialMapMusic(); @@ -1228,14 +1364,14 @@ void sub_80B6B68(void) gFieldCallback = NULL; } -void sub_80B6B94(u8 taskId) +static void sub_80B6B94(u8 taskId) { struct Task *task; task = &gTasks[taskId]; while (gUnknown_0855C3C8[task->data[0]](task)); // return code signifies whether to continue blocking here } -bool8 sub_80B6BCC(struct Task *task) // gUnknown_0855C3C8[0] +static bool8 sub_80B6BCC(struct Task *task) // gUnknown_0855C3C8[0] { struct EventObject *playerObject; struct Sprite *playerSprite; @@ -1253,7 +1389,7 @@ bool8 sub_80B6BCC(struct Task *task) // gUnknown_0855C3C8[0] return TRUE; } -bool8 sub_80B6C74(struct Task *task) // gUnknown_0855C3C8[1] +static bool8 sub_80B6C74(struct Task *task) // gUnknown_0855C3C8[1] { if (IsWeatherNotFadingIn()) { @@ -1262,7 +1398,7 @@ bool8 sub_80B6C74(struct Task *task) // gUnknown_0855C3C8[1] return FALSE; } -bool8 sub_80B6C90(struct Task *task) // gUnknown_0855C3C8[2] +static bool8 sub_80B6C90(struct Task *task) // gUnknown_0855C3C8[2] { struct Sprite *sprite; s16 centerToCornerVecY; @@ -1277,7 +1413,7 @@ bool8 sub_80B6C90(struct Task *task) // gUnknown_0855C3C8[2] return FALSE; } -bool8 sub_80B6D04(struct Task *task) +static bool8 sub_80B6D04(struct Task *task) { struct EventObject *eventObject; struct Sprite *sprite; @@ -1311,7 +1447,7 @@ bool8 sub_80B6D04(struct Task *task) return FALSE; } -bool8 sub_80B6DBC(struct Task *task) +static bool8 sub_80B6DBC(struct Task *task) { task->data[0]++; task->data[1] = 4; @@ -1320,7 +1456,7 @@ bool8 sub_80B6DBC(struct Task *task) return TRUE; } -bool8 sub_80B6DD8(struct Task *task) +static bool8 sub_80B6DD8(struct Task *task) { SetCameraPanning(0, task->data[1]); task->data[1] = -task->data[1]; @@ -1336,7 +1472,7 @@ bool8 sub_80B6DD8(struct Task *task) return FALSE; } -bool8 sub_80B6E18(struct Task *task) +static bool8 sub_80B6E18(struct Task *task) { gPlayerAvatar.preventStep = FALSE; ScriptContext2_Disable(); @@ -1347,19 +1483,6 @@ bool8 sub_80B6E18(struct Task *task) return FALSE; } -void sub_80B6E88(u8); -extern void sub_80E1558(u8); -extern void sub_80AF0B4(void); - -void sub_80B6FB8(struct Task *); -void sub_80B7004(struct Task *); -void sub_80B7050(void); -void sub_80B7060(void); -bool8 BGMusicStopped(void); -void sub_80B70B4(void); -void sub_80E1570(void); -void sub_80B70DC(u8); - void sub_80B6E4C(u8 a0, u8 priority) { u8 taskId; @@ -1371,14 +1494,14 @@ void sub_80B6E4C(u8 a0, u8 priority) } } -void sub_80B6E88(u8 taskId) +static void sub_80B6E88(u8 taskId) { struct Task *task; task = &gTasks[taskId]; while (gUnknown_0855C3E4[task->data[0]](task)); } -bool8 sub_80B6EC0(struct Task *task) +static bool8 sub_80B6EC0(struct Task *task) { FreezeEventObjects(); CameraObjectReset2(); @@ -1387,7 +1510,7 @@ bool8 sub_80B6EC0(struct Task *task) return FALSE; } -bool8 sub_80B6EE0(struct Task *task) +static bool8 sub_80B6EE0(struct Task *task) { struct EventObject *eventObject; eventObject = &gEventObjects[gPlayerAvatar.eventObjectId]; @@ -1406,7 +1529,7 @@ bool8 sub_80B6EE0(struct Task *task) return FALSE; } -bool8 sub_80B6F50(struct Task *task) +static bool8 sub_80B6F50(struct Task *task) { sub_80B6FB8(task); if (task->data[2] > 3) @@ -1417,14 +1540,14 @@ bool8 sub_80B6F50(struct Task *task) return FALSE; } -bool8 sub_80B6F74(struct Task *task) +static bool8 sub_80B6F74(struct Task *task) { sub_80B6FB8(task); sub_80B7060(); return FALSE; } -bool8 sub_80B6F84(struct Task *task) +static bool8 sub_80B6F84(struct Task *task) { sub_80B7004(task); if (task->data[2] > 3) @@ -1435,14 +1558,14 @@ bool8 sub_80B6F84(struct Task *task) return FALSE; } -bool8 sub_80B6FA8(struct Task *task) +static bool8 sub_80B6FA8(struct Task *task) { sub_80B7004(task); sub_80B7060(); return FALSE; } -void sub_80B6FB8(struct Task *task) +static void sub_80B6FB8(struct Task *task) { struct Sprite *sprite; sprite = &gSprites[gPlayerAvatar.spriteId]; @@ -1455,7 +1578,7 @@ void sub_80B6FB8(struct Task *task) } } -void sub_80B7004(struct Task *task) +static void sub_80B7004(struct Task *task) { struct Sprite *sprite; sprite = &gSprites[gPlayerAvatar.spriteId]; @@ -1468,13 +1591,13 @@ void sub_80B7004(struct Task *task) } } -void sub_80B7050(void) +static void sub_80B7050(void) { music_something(); sub_80AF0B4(); } -void sub_80B7060(void) +static void sub_80B7060(void) { if (!gPaletteFade.active && BGMusicStopped() == TRUE) { @@ -1486,7 +1609,7 @@ void sub_80B7060(void) } } -void sub_80B70B4(void) +static void sub_80B70B4(void) { Overworld_PlaySpecialMapMusic(); pal_fill_for_maplights(); @@ -1495,14 +1618,14 @@ void sub_80B70B4(void) gFieldCallback = NULL; } -void sub_80B70DC(u8 taskId) +static void sub_80B70DC(u8 taskId) { struct Task *task; task = &gTasks[taskId]; while (gUnknown_0855C3FC[task->data[0]](task)); } -bool8 sub_80B7114(struct Task *task) +static bool8 sub_80B7114(struct Task *task) { struct EventObject *eventObject; s16 x; @@ -1527,7 +1650,7 @@ bool8 sub_80B7114(struct Task *task) return TRUE; } -bool8 sub_80B7190(struct Task *task) +static bool8 sub_80B7190(struct Task *task) { struct Sprite *sprite; sprite = &gSprites[gPlayerAvatar.spriteId]; @@ -1537,7 +1660,7 @@ bool8 sub_80B7190(struct Task *task) return FALSE; } -bool8 sub_80B71D0(struct Task *task) +static bool8 sub_80B71D0(struct Task *task) { struct Sprite *sprite; sprite = &gSprites[gPlayerAvatar.spriteId]; @@ -1557,7 +1680,7 @@ bool8 sub_80B71D0(struct Task *task) return FALSE; } -bool8 sub_80B7230(struct Task *task) +static bool8 sub_80B7230(struct Task *task) { struct Sprite *sprite; sprite = &gSprites[gPlayerAvatar.spriteId]; @@ -1567,7 +1690,7 @@ bool8 sub_80B7230(struct Task *task) return FALSE; } -bool8 sub_80B7270(struct Task *task) +static bool8 sub_80B7270(struct Task *task) { struct Sprite *sprite; sprite = &gSprites[gPlayerAvatar.spriteId]; @@ -1587,9 +1710,7 @@ bool8 sub_80B7270(struct Task *task) return FALSE; } -extern bool8 sub_80E1584(void); - -bool8 sub_80B72D0(struct Task *task) +static bool8 sub_80B72D0(struct Task *task) { if (sub_80E1584()) { @@ -1600,7 +1721,7 @@ bool8 sub_80B72D0(struct Task *task) return TRUE; } -bool8 sub_80B72F4(struct Task *task) +static bool8 sub_80B72F4(struct Task *task) { struct EventObject *eventObject; eventObject = &gEventObjects[gPlayerAvatar.eventObjectId]; @@ -1614,8 +1735,6 @@ bool8 sub_80B72F4(struct Task *task) return FALSE; } -void sub_80B7384(u8); - bool8 FldEff_UseWaterfall(void) { u8 taskId; @@ -1625,12 +1744,12 @@ bool8 FldEff_UseWaterfall(void) return FALSE; } -void sub_80B7384(u8 taskId) +static void sub_80B7384(u8 taskId) { while (gUnknown_0855C418[gTasks[taskId].data[0]](&gTasks[taskId], &gEventObjects[gPlayerAvatar.eventObjectId])); } -bool8 sub_80B73D0(struct Task *task, struct EventObject *eventObject) +static bool8 sub_80B73D0(struct Task *task, struct EventObject *eventObject) { ScriptContext2_Enable(); gPlayerAvatar.preventStep = TRUE; @@ -1638,7 +1757,7 @@ bool8 sub_80B73D0(struct Task *task, struct EventObject *eventObject) return FALSE; } -bool8 waterfall_1_do_anim_probably(struct Task *task, struct EventObject *eventObject) +static bool8 waterfall_1_do_anim_probably(struct Task *task, struct EventObject *eventObject) { ScriptContext2_Enable(); if (!EventObjectIsMovementOverridden(eventObject)) @@ -1651,7 +1770,7 @@ bool8 waterfall_1_do_anim_probably(struct Task *task, struct EventObject *eventO return FALSE; } -bool8 waterfall_2_wait_anim_finish_probably(struct Task *task, struct EventObject *eventObject) +static bool8 waterfall_2_wait_anim_finish_probably(struct Task *task, struct EventObject *eventObject) { if (FieldEffectActiveListContains(FLDEFF_FIELD_MOVE_SHOW_MON)) { @@ -1661,14 +1780,14 @@ bool8 waterfall_2_wait_anim_finish_probably(struct Task *task, struct EventObjec return TRUE; } -bool8 sub_80B7450(struct Task *task, struct EventObject *eventObject) +static bool8 sub_80B7450(struct Task *task, struct EventObject *eventObject) { EventObjectSetHeldMovement(eventObject, GetWalkSlowMovementAction(DIR_NORTH)); task->data[0]++; return FALSE; } -bool8 sub_80B7478(struct Task *task, struct EventObject *eventObject) +static bool8 sub_80B7478(struct Task *task, struct EventObject *eventObject) { if (!EventObjectClearHeldMovementIfFinished(eventObject)) { @@ -1686,9 +1805,6 @@ bool8 sub_80B7478(struct Task *task, struct EventObject *eventObject) return FALSE; } -void Task_Dive(u8); -extern int dive_warp(struct MapPosition *, u16); - bool8 FldEff_UseDive(void) { u8 taskId; @@ -1704,14 +1820,14 @@ void Task_Dive(u8 taskId) while (gUnknown_0855C42C[gTasks[taskId].data[0]](&gTasks[taskId])); } -bool8 dive_1_lock(struct Task *task) +static bool8 dive_1_lock(struct Task *task) { gPlayerAvatar.preventStep = TRUE; task->data[0]++; return FALSE; } -bool8 dive_2_unknown(struct Task *task) +static bool8 dive_2_unknown(struct Task *task) { ScriptContext2_Enable(); gFieldEffectArguments[0] = task->data[15]; @@ -1720,7 +1836,7 @@ bool8 dive_2_unknown(struct Task *task) return FALSE; } -bool8 dive_3_unknown(struct Task *task) +static bool8 dive_3_unknown(struct Task *task) { struct MapPosition mapPosition; PlayerGetDestCoords(&mapPosition.x, &mapPosition.y); @@ -1733,20 +1849,17 @@ bool8 dive_3_unknown(struct Task *task) return FALSE; } -void sub_80B75F0(u8); -void mapldr_080851BC(void); - void sub_80B75D8(u8 priority) { CreateTask(sub_80B75F0, priority); } -void sub_80B75F0(u8 taskId) +static void sub_80B75F0(u8 taskId) { while (gUnknown_0855C438[gTasks[taskId].data[0]](&gTasks[taskId], &gEventObjects[gPlayerAvatar.eventObjectId], &gSprites[gPlayerAvatar.spriteId])); } -bool8 sub_80B764C(struct Task *task, struct EventObject *eventObject, struct Sprite *sprite) +static bool8 sub_80B764C(struct Task *task, struct EventObject *eventObject, struct Sprite *sprite) { FreezeEventObjects(); CameraObjectReset2(); @@ -1758,7 +1871,7 @@ bool8 sub_80B764C(struct Task *task, struct EventObject *eventObject, struct Spr return TRUE; } -bool8 sub_80B7684(struct Task *task, struct EventObject *eventObject, struct Sprite *sprite) +static bool8 sub_80B7684(struct Task *task, struct EventObject *eventObject, struct Sprite *sprite) { SetCameraPanning(0, task->data[1]); task->data[1] = -task->data[1]; @@ -1771,7 +1884,7 @@ bool8 sub_80B7684(struct Task *task, struct EventObject *eventObject, struct Spr return FALSE; } -bool8 sub_80B76B8(struct Task *task, struct EventObject *eventObject, struct Sprite *sprite) +static bool8 sub_80B76B8(struct Task *task, struct EventObject *eventObject, struct Sprite *sprite) { sprite->pos2.y = 0; task->data[3] = 1; @@ -1785,7 +1898,7 @@ bool8 sub_80B76B8(struct Task *task, struct EventObject *eventObject, struct Spr return TRUE; } -bool8 sub_80B7704(struct Task *task, struct EventObject *eventObject, struct Sprite *sprite) +static bool8 sub_80B7704(struct Task *task, struct EventObject *eventObject, struct Sprite *sprite) { s16 centerToCornerVecY; SetCameraPanning(0, task->data[1]); @@ -1828,7 +1941,7 @@ bool8 sub_80B7704(struct Task *task, struct EventObject *eventObject, struct Spr return FALSE; } -bool8 sub_80B77F8(struct Task *task, struct EventObject *eventObject, struct Sprite *sprite) +static bool8 sub_80B77F8(struct Task *task, struct EventObject *eventObject, struct Sprite *sprite) { music_something(); sub_80AF0B4(); @@ -1836,7 +1949,7 @@ bool8 sub_80B77F8(struct Task *task, struct EventObject *eventObject, struct Spr return FALSE; } -bool8 sub_80B7814(struct Task *task, struct EventObject *eventObject, struct Sprite *sprite) +static bool8 sub_80B7814(struct Task *task, struct EventObject *eventObject, struct Sprite *sprite) { if (!gPaletteFade.active && BGMusicStopped() == TRUE) { @@ -1848,9 +1961,7 @@ bool8 sub_80B7814(struct Task *task, struct EventObject *eventObject, struct Spr return FALSE; } -void sub_80B7890(u8); - -void mapldr_080851BC(void) +static void mapldr_080851BC(void) { Overworld_PlaySpecialMapMusic(); pal_fill_for_maplights(); @@ -1859,12 +1970,12 @@ void mapldr_080851BC(void) CreateTask(sub_80B7890, 0); } -void sub_80B7890(u8 taskId) +static void sub_80B7890(u8 taskId) { while (gUnknown_0855C450[gTasks[taskId].data[0]](&gTasks[taskId], &gEventObjects[gPlayerAvatar.eventObjectId], &gSprites[gPlayerAvatar.spriteId])); } -bool8 sub_80B78EC(struct Task *task, struct EventObject *eventObject, struct Sprite *sprite) +static bool8 sub_80B78EC(struct Task *task, struct EventObject *eventObject, struct Sprite *sprite) { CameraObjectReset2(); FreezeEventObjects(); @@ -1874,7 +1985,7 @@ bool8 sub_80B78EC(struct Task *task, struct EventObject *eventObject, struct Spr return FALSE; } -bool8 sub_80B791C(struct Task *task, struct EventObject *eventObject, struct Sprite *sprite) +static bool8 sub_80B791C(struct Task *task, struct EventObject *eventObject, struct Sprite *sprite) { if (IsWeatherNotFadingIn()) { @@ -1888,7 +1999,7 @@ bool8 sub_80B791C(struct Task *task, struct EventObject *eventObject, struct Spr return FALSE; } -bool8 sub_80B7968(struct Task *task, struct EventObject *eventObject, struct Sprite *sprite) +static bool8 sub_80B7968(struct Task *task, struct EventObject *eventObject, struct Sprite *sprite) { sprite = &gSprites[task->data[1]]; if (sprite->animCmdIndex > 1) @@ -1902,7 +2013,7 @@ bool8 sub_80B7968(struct Task *task, struct EventObject *eventObject, struct Spr return FALSE; } -bool8 sub_80B79BC(struct Task *task, struct EventObject *eventObject, struct Sprite *sprite) +static bool8 sub_80B79BC(struct Task *task, struct EventObject *eventObject, struct Sprite *sprite) { if (EventObjectClearHeldMovementIfFinished(eventObject)) { @@ -1914,8 +2025,6 @@ bool8 sub_80B79BC(struct Task *task, struct EventObject *eventObject, struct Spr return FALSE; } -extern const struct SpriteTemplate *const gFieldEffectObjectTemplatePointers[36]; - u8 FldEff_LavaridgeGymWarp(void) { u8 spriteId; @@ -1934,19 +2043,17 @@ void sub_80B7A58(struct Sprite *sprite) } } -void sub_80B7A8C(u8); - void sub_80B7A74(u8 priority) { CreateTask(sub_80B7A8C, priority); } -void sub_80B7A8C(u8 taskId) +static void sub_80B7A8C(u8 taskId) { while(gUnknown_0855C460[gTasks[taskId].data[0]](&gTasks[taskId], &gEventObjects[gPlayerAvatar.eventObjectId], &gSprites[gPlayerAvatar.spriteId])); } -bool8 sub_80B7AE8(struct Task *task, struct EventObject *eventObject, struct Sprite *sprite) +static bool8 sub_80B7AE8(struct Task *task, struct EventObject *eventObject, struct Sprite *sprite) { FreezeEventObjects(); CameraObjectReset2(); @@ -1956,7 +2063,7 @@ bool8 sub_80B7AE8(struct Task *task, struct EventObject *eventObject, struct Spr return FALSE; } -bool8 sub_80B7B18(struct Task *task, struct EventObject *eventObject, struct Sprite *sprite) +static bool8 sub_80B7B18(struct Task *task, struct EventObject *eventObject, struct Sprite *sprite) { if (EventObjectClearHeldMovementIfFinished(eventObject)) { @@ -1978,7 +2085,7 @@ bool8 sub_80B7B18(struct Task *task, struct EventObject *eventObject, struct Spr return FALSE; } -bool8 sub_80B7B94(struct Task *task, struct EventObject *eventObject, struct Sprite *sprite) +static bool8 sub_80B7B94(struct Task *task, struct EventObject *eventObject, struct Sprite *sprite) { if (gSprites[task->data[1]].animCmdIndex == 2) { @@ -1988,7 +2095,7 @@ bool8 sub_80B7B94(struct Task *task, struct EventObject *eventObject, struct Spr return FALSE; } -bool8 sub_80B7BCC(struct Task *task, struct EventObject *eventObject, struct Sprite *sprite) +static bool8 sub_80B7BCC(struct Task *task, struct EventObject *eventObject, struct Sprite *sprite) { if (!FieldEffectActiveListContains(FLDEFF_POP_OUT_OF_ASH)) { @@ -1999,10 +2106,7 @@ bool8 sub_80B7BCC(struct Task *task, struct EventObject *eventObject, struct Spr return FALSE; } -void sub_80B7CE4(u8); -void mapldr_080859D4(void); - -bool8 sub_80B7BF4(struct Task *task, struct EventObject *eventObject, struct Sprite *sprite) +static bool8 sub_80B7BF4(struct Task *task, struct EventObject *eventObject, struct Sprite *sprite) { if (!gPaletteFade.active && BGMusicStopped() == TRUE) { @@ -2032,29 +2136,29 @@ void sub_80B7CAC(struct Sprite *sprite) } } -void sub_80B7CC8(void) +void StartEscapeRopeFieldEffect(void) { ScriptContext2_Enable(); FreezeEventObjects(); - CreateTask(sub_80B7CE4, 0x50); + CreateTask(DoEscapeRopeFieldEffect, 0x50); } -void sub_80B7CE4(u8 taskId) +static void DoEscapeRopeFieldEffect(u8 taskId) { - gUnknown_0855C474[gTasks[taskId].data[0]](&gTasks[taskId]); + gEscapeRopeFieldEffectFuncs[gTasks[taskId].data[0]](&gTasks[taskId]); } -void sub_80B7D14(struct Task *task) +static void EscapeRopeFieldEffect_Step0(struct Task *task) { task->data[0]++; task->data[14] = 64; task->data[15] = GetPlayerFacingDirection(); } -void sub_80B7D34(struct Task *task) +static void EscapeRopeFieldEffect_Step1(struct Task *task) { struct EventObject *eventObject; - u8 spinDirections[5] = {1, 3, 4, 2, 1}; + u8 spinDirections[5] = {DIR_SOUTH, DIR_WEST, DIR_EAST, DIR_NORTH, DIR_SOUTH}; if (task->data[14] != 0 && (--task->data[14]) == 0) { music_something(); @@ -2070,7 +2174,7 @@ void sub_80B7D34(struct Task *task) WarpIntoMap(); gFieldCallback = mapldr_080859D4; SetMainCallback2(CB2_LoadMap); - DestroyTask(FindTaskIdByFunc(sub_80B7CE4)); + DestroyTask(FindTaskIdByFunc(DoEscapeRopeFieldEffect)); } else if (task->data[1] == 0 || (--task->data[1]) == 0) { EventObjectSetHeldMovement(eventObject, GetFaceDirectionMovementAction(spinDirections[eventObject->facingDirection])); @@ -2088,9 +2192,7 @@ void (*const gUnknown_0855C484[])(struct Task *) = { sub_80B7EE8 }; -void sub_80B7E94(u8); - -void mapldr_080859D4(void) +static void mapldr_080859D4(void) { Overworld_PlaySpecialMapMusic(); pal_fill_for_maplights(); @@ -2101,12 +2203,12 @@ void mapldr_080859D4(void) CreateTask(sub_80B7E94, 0); } -void sub_80B7E94(u8 taskId) +static void sub_80B7E94(u8 taskId) { gUnknown_0855C484[gTasks[taskId].data[0]](&gTasks[taskId]); } -void sub_80B7EC4(struct Task *task) +static void sub_80B7EC4(struct Task *task) { if (IsWeatherNotFadingIn()) { @@ -2115,7 +2217,7 @@ void sub_80B7EC4(struct Task *task) } } -void sub_80B7EE8(struct Task *task) +static void sub_80B7EE8(struct Task *task) { u8 spinDirections[5] = {1, 3, 4, 2, 1}; struct EventObject *eventObject = &gEventObjects[gPlayerAvatar.eventObjectId]; @@ -2143,13 +2245,6 @@ void sub_80B7EE8(struct Task *task) eventObject->invisible ^= 1; } -static void ExecuteTeleportFieldEffectTask(u8); -static void TeleportFieldEffectTask1(struct Task*); -static void TeleportFieldEffectTask2(struct Task*); -static void TeleportFieldEffectTask3(struct Task*); -static void TeleportFieldEffectTask4(struct Task*); -static void mapldr_08085D88(void); - void CreateTeleportFieldEffectTask(void) { CreateTask(ExecuteTeleportFieldEffectTask, 0); @@ -2245,8 +2340,6 @@ static void TeleportFieldEffectTask4(struct Task *task) } } -void sub_80B8250(u8); - static void mapldr_08085D88(void) { Overworld_PlaySpecialMapMusic(); @@ -2265,12 +2358,12 @@ void (*const gUnknown_0855C49C[])(struct Task *) = { sub_80B8410 }; -void sub_80B8250(u8 taskId) +static void sub_80B8250(u8 taskId) { gUnknown_0855C49C[gTasks[taskId].data[0]](&gTasks[taskId]); } -void sub_80B8280(struct Task *task) +static void sub_80B8280(struct Task *task) { struct Sprite *sprite; s16 centerToCornerVecY; @@ -2289,7 +2382,7 @@ void sub_80B8280(struct Task *task) } } -void sub_80B830C(struct Task *task) +static void sub_80B830C(struct Task *task) { u8 spinDirections[5] = {1, 3, 4, 2, 1}; struct EventObject *eventObject = &gEventObjects[gPlayerAvatar.eventObjectId]; @@ -2328,7 +2421,7 @@ void sub_80B830C(struct Task *task) } } -void sub_80B8410(struct Task *task) +static void sub_80B8410(struct Task *task) { u8 spinDirections[5] = {1, 3, 4, 2, 1}; struct EventObject *eventObject = &gEventObjects[gPlayerAvatar.eventObjectId]; @@ -2346,13 +2439,6 @@ void sub_80B8410(struct Task *task) } } -void sub_80B8554(u8); -void sub_80B88B4(u8); -u8 sub_80B8C60(u32, u32, u32); -void sub_80B880C(void); -void sub_80B8874(u16); -void sub_80B8CC0(struct Sprite *); - bool8 FldEff_FieldMoveShowMon(void) { u8 taskId; @@ -2391,12 +2477,12 @@ void (*const gUnknown_0855C4A8[])(struct Task *) = { overworld_bg_setup_2, }; -void sub_80B8554(u8 taskId) +static void sub_80B8554(u8 taskId) { gUnknown_0855C4A8[gTasks[taskId].data[0]](&gTasks[taskId]); } -void sub_80B8584(struct Task *task) +static void sub_80B8584(struct Task *task) { task->data[11] = REG_WININ; task->data[12] = REG_WINOUT; @@ -2413,12 +2499,10 @@ void sub_80B8584(struct Task *task) task->data[0]++; } -void sub_80B85F8(struct Task *task) +static void sub_80B85F8(struct Task *task) { - u16 offset; - u16 delta; - offset = ((REG_BG0CNT >> 2) << 14); - delta = ((REG_BG0CNT >> 8) << 11); + u16 offset = ((REG_BG0CNT >> 2) << 14); + u16 delta = ((REG_BG0CNT >> 8) << 11); CpuCopy16(gFieldMoveStreaksTiles, (void *)(VRAM + offset), 0x200); CpuFill32(0, (void *)(VRAM + delta), 0x800); LoadPalette(gFieldMoveStreaksPalette, 0xf0, 0x20); @@ -2426,7 +2510,7 @@ void sub_80B85F8(struct Task *task) task->data[0]++; } -void sub_80B8660(struct Task *task) +static void sub_80B8660(struct Task *task) { s16 v0; s16 v2; @@ -2459,7 +2543,7 @@ void sub_80B8660(struct Task *task) } } -void sub_80B86EC(struct Task *task) +static void sub_80B86EC(struct Task *task) { task->data[5] -= 16; if (gSprites[task->data[15]].data[7]) @@ -2468,7 +2552,7 @@ void sub_80B86EC(struct Task *task) } } -void sub_80B871C(struct Task *task) +static void sub_80B871C(struct Task *task) { s16 v2; s16 v3; @@ -2492,10 +2576,9 @@ void sub_80B871C(struct Task *task) } } -void sub_80B8770(struct Task *task) +static void sub_80B8770(struct Task *task) { - u16 bg0cnt; - bg0cnt = (REG_BG0CNT >> 8) << 11; + u16 bg0cnt = (REG_BG0CNT >> 8) << 11; CpuFill32(0, (void *)VRAM + bg0cnt, 0x800); task->data[1] = 0xf1; task->data[2] = 0xa1; @@ -2504,7 +2587,7 @@ void sub_80B8770(struct Task *task) task->data[0]++; } -void overworld_bg_setup_2(struct Task *task) +static void overworld_bg_setup_2(struct Task *task) { IntrCallback callback; LoadWordFromTwoHalfwords((u16 *)&task->data[13], (u32 *)&callback); @@ -2515,11 +2598,10 @@ void overworld_bg_setup_2(struct Task *task) DestroyTask(FindTaskIdByFunc(sub_80B8554)); } -void sub_80B880C(void) +static void sub_80B880C(void) { - struct Task *task; IntrCallback callback; - task = &gTasks[FindTaskIdByFunc(sub_80B8554)]; + struct Task *task = &gTasks[FindTaskIdByFunc(sub_80B8554)]; LoadWordFromTwoHalfwords((u16 *)&task->data[13], (u32 *)&callback); callback(); SetGpuReg(REG_OFFSET_WIN0H, task->data[1]); @@ -2530,7 +2612,7 @@ void sub_80B880C(void) SetGpuReg(REG_OFFSET_BG0VOFS, task->data[6]); } -void sub_80B8874(u16 offs) +static void sub_80B8874(u16 offs) { u16 i; u16 *dest; @@ -2541,11 +2623,6 @@ void sub_80B8874(u16 offs) } } -void sub_80B8AE0(void); -bool8 sub_80B8B38(struct Task *); -void sub_80B8B28(struct Task *); -bool8 sub_80B8BF0(struct Task *); - void (*const gUnknown_0855C4C4[])(struct Task *) = { sub_80B88E4, sub_80B8920, @@ -2556,12 +2633,12 @@ void (*const gUnknown_0855C4C4[])(struct Task *) = { sub_80B8A64, }; -void sub_80B88B4(u8 taskId) +static void sub_80B88B4(u8 taskId) { gUnknown_0855C4C4[gTasks[taskId].data[0]](&gTasks[taskId]); } -void sub_80B88E4(struct Task *task) +static void sub_80B88E4(struct Task *task) { SetGpuReg(REG_OFFSET_BG0HOFS, task->data[1]); SetGpuReg(REG_OFFSET_BG0VOFS, task->data[2]); @@ -2570,7 +2647,7 @@ void sub_80B88E4(struct Task *task) task->data[0]++; } -void sub_80B8920(struct Task *task) +static void sub_80B8920(struct Task *task) { u16 offset; u16 delta; @@ -2583,7 +2660,7 @@ void sub_80B8920(struct Task *task) task->data[0]++; } -void sub_80B898C(struct Task *task) +static void sub_80B898C(struct Task *task) { if (sub_80B8B38(task)) { @@ -2595,7 +2672,7 @@ void sub_80B898C(struct Task *task) sub_80B8B28(task); } -void sub_80B89DC(struct Task *task) +static void sub_80B89DC(struct Task *task) { sub_80B8B28(task); if (gSprites[task->data[15]].data[7]) @@ -2604,7 +2681,7 @@ void sub_80B89DC(struct Task *task) } } -void sub_80B8A0C(struct Task *task) +static void sub_80B8A0C(struct Task *task) { sub_80B8B28(task); task->data[3] = task->data[1] & 7; @@ -2614,7 +2691,7 @@ void sub_80B8A0C(struct Task *task) task->data[0]++; } -void sub_80B8A44(struct Task *task) +static void sub_80B8A44(struct Task *task) { sub_80B8B28(task); if (sub_80B8BF0(task)) @@ -2623,7 +2700,7 @@ void sub_80B8A44(struct Task *task) } } -void sub_80B8A64(struct Task *task) +static void sub_80B8A64(struct Task *task) { IntrCallback intrCallback; u16 bg0cnt; @@ -2637,7 +2714,7 @@ void sub_80B8A64(struct Task *task) DestroyTask(FindTaskIdByFunc(sub_80B88B4)); } -void sub_80B8AE0(void) +static void sub_80B8AE0(void) { IntrCallback intrCallback; struct Task *task; @@ -2648,14 +2725,13 @@ void sub_80B8AE0(void) SetGpuReg(REG_OFFSET_BG0VOFS, task->data[2]); } -void sub_80B8B28(struct Task *task) +static void sub_80B8B28(struct Task *task) { task->data[1] -= 16; task->data[3] += 16; } -#ifdef NONMATCHING -bool8 sub_80B8B38(struct Task *task) +static bool8 sub_80B8B38(struct Task *task) { u16 i; u16 srcOffs; @@ -2671,118 +2747,20 @@ bool8 sub_80B8B38(struct Task *task) dstOffs = (32 - dstOffs) & 0x1f; srcOffs = (32 - task->data[4]) & 0x1f; dest = (u16 *)(VRAM + 0x140 + (u16)task->data[12]); - for (i=0; i<10; i++) + for (i = 0; i < 10; i++) { - dest[dstOffs + i * 32] = gDarknessFieldMoveStreaksTilemap[srcOffs + i * 32] | 0xf000; + dest[dstOffs + i * 32] = gDarknessFieldMoveStreaksTilemap[srcOffs + i * 32]; + dest[dstOffs + i * 32] |= 0xf000; + dest[((dstOffs + 1) & 0x1f) + i * 32] = gDarknessFieldMoveStreaksTilemap[((srcOffs + 1) & 0x1f) + i * 32] | 0xf000; + dest[((dstOffs + 1) & 0x1f) + i * 32] |= 0xf000; } task->data[4] += 2; } return FALSE; } -#else -NAKED -bool8 sub_80B8B38(struct Task *task) -{ - asm_unified("\tpush {r4-r7,lr}\n" - "\tmov r7, r10\n" - "\tmov r6, r9\n" - "\tmov r5, r8\n" - "\tpush {r5-r7}\n" - "\tsub sp, 0x4\n" - "\tadds r5, r0, 0\n" - "\tldrh r2, [r5, 0x10]\n" - "\tmovs r1, 0x10\n" - "\tldrsh r0, [r5, r1]\n" - "\tcmp r0, 0x1F\n" - "\tble _08088724\n" - "\tmovs r0, 0x1\n" - "\tb _080887A8\n" - "_08088724:\n" - "\tldrh r0, [r5, 0xE]\n" - "\tlsls r0, 16\n" - "\tasrs r3, r0, 19\n" - "\tmovs r1, 0x1F\n" - "\tands r3, r1\n" - "\tmovs r4, 0x10\n" - "\tldrsh r0, [r5, r4]\n" - "\tcmp r3, r0\n" - "\tblt _080887A6\n" - "\tmovs r0, 0x20\n" - "\tsubs r3, r0, r3\n" - "\tands r3, r1\n" - "\tsubs r0, r2\n" - "\tmov r12, r0\n" - "\tmov r7, r12\n" - "\tands r7, r1\n" - "\tmov r12, r7\n" - "\tldrh r0, [r5, 0x20]\n" - "\tldr r1, _080887B8 @ =0x06000140\n" - "\tadds r1, r0\n" - "\tmov r8, r1\n" - "\tmovs r4, 0\n" - "\tldr r7, _080887BC @ =gDarknessFieldMoveStreaksTilemap\n" - "\tmov r10, r7\n" - "\tmovs r0, 0xF0\n" - "\tlsls r0, 8\n" - "\tmov r9, r0\n" - "\tadds r1, r3, 0x1\n" - "\tmovs r0, 0x1F\n" - "\tands r1, r0\n" - "\tstr r1, [sp]\n" - "\tmov r6, r12\n" - "\tadds r6, 0x1\n" - "\tands r6, r0\n" - "_08088768:\n" - "\tlsls r1, r4, 5\n" - "\tadds r2, r1, r3\n" - "\tlsls r2, 1\n" - "\tadd r2, r8\n" - "\tmov r7, r12\n" - "\tadds r0, r7, r1\n" - "\tlsls r0, 1\n" - "\tadd r0, r10\n" - "\tldrh r0, [r0]\n" - "\tmov r7, r9\n" - "\torrs r0, r7\n" - "\tstrh r0, [r2]\n" - "\tldr r0, [sp]\n" - "\tadds r2, r1, r0\n" - "\tlsls r2, 1\n" - "\tadd r2, r8\n" - "\tadds r1, r6, r1\n" - "\tlsls r1, 1\n" - "\tadd r1, r10\n" - "\tldrh r0, [r1]\n" - "\tmov r1, r9\n" - "\torrs r0, r1\n" - "\tstrh r0, [r2]\n" - "\tadds r0, r4, 0x1\n" - "\tlsls r0, 16\n" - "\tlsrs r4, r0, 16\n" - "\tcmp r4, 0x9\n" - "\tbls _08088768\n" - "\tldrh r0, [r5, 0x10]\n" - "\tadds r0, 0x2\n" - "\tstrh r0, [r5, 0x10]\n" - "_080887A6:\n" - "\tmovs r0, 0\n" - "_080887A8:\n" - "\tadd sp, 0x4\n" - "\tpop {r3-r5}\n" - "\tmov r8, r3\n" - "\tmov r9, r4\n" - "\tmov r10, r5\n" - "\tpop {r4-r7}\n" - "\tpop {r1}\n" - "\tbx r1\n" - "\t.align 2, 0\n" - "_080887B8: .4byte 0x06000140\n" - "_080887BC: .4byte gDarknessFieldMoveStreaksTilemap"); -} -#endif -bool8 sub_80B8BF0(struct Task *task) +static bool8 sub_80B8BF0(struct Task *task) { u16 i; u16 dstOffs; @@ -2796,7 +2774,7 @@ bool8 sub_80B8BF0(struct Task *task) { dstOffs = (task->data[1] >> 3) & 0x1f; dest = (u16 *)(VRAM + 0x140 + (u16)task->data[12]); - for (i=0; i<10; i++) + for (i = 0; i < 10; i++) { dest[dstOffs + i * 32] = 0xf000; dest[((dstOffs + 1) & 0x1f) + i * 32] = 0xf000; @@ -2806,7 +2784,7 @@ bool8 sub_80B8BF0(struct Task *task) return FALSE; } -u8 sub_80B8C60(u32 a0, u32 a1, u32 a2) +static u8 sub_80B8C60(u32 a0, u32 a1, u32 a2) { u16 v0; u8 monSprite; @@ -2822,9 +2800,7 @@ u8 sub_80B8C60(u32 a0, u32 a1, u32 a2) return monSprite; } -void sub_80B8D04(struct Sprite *); - -void sub_80B8CC0(struct Sprite *sprite) +static void sub_80B8CC0(struct Sprite *sprite) { if ((sprite->pos1.x -= 20) <= 0x78) { @@ -2834,16 +2810,15 @@ void sub_80B8CC0(struct Sprite *sprite) if (sprite->data[6]) { PlayCry2(sprite->data[0], 0, 0x7d, 0xa); - } else + } + else { PlayCry1(sprite->data[0], 0); } } } -void sub_80B8D20(struct Sprite *); - -void sub_80B8D04(struct Sprite *sprite) +static void sub_80B8D04(struct Sprite *sprite) { if ((--sprite->data[1]) == 0) { @@ -2851,23 +2826,21 @@ void sub_80B8D04(struct Sprite *sprite) } } -void sub_80B8D20(struct Sprite *sprite) +static void sub_80B8D20(struct Sprite *sprite) { if (sprite->pos1.x < -0x40) { sprite->data[7] = 1; - } else + } + else { sprite->pos1.x -= 20; } } -void sub_80B8D84(u8); - u8 FldEff_UseSurf(void) { - u8 taskId; - taskId = CreateTask(sub_80B8D84, 0xff); + u8 taskId = CreateTask(sub_80B8D84, 0xff); gTasks[taskId].data[15] = gFieldEffectArguments[0]; Overworld_ClearSavedMusic(); Overworld_ChangeMusicTo(MUS_NAMINORI); @@ -2882,12 +2855,12 @@ void (*const gUnknown_0855C4E0[])(struct Task *) = { sub_80B8F24, }; -void sub_80B8D84(u8 taskId) +static void sub_80B8D84(u8 taskId) { gUnknown_0855C4E0[gTasks[taskId].data[0]](&gTasks[taskId]); } -void sub_80B8DB4(struct Task *task) +static void sub_80B8DB4(struct Task *task) { ScriptContext2_Enable(); FreezeEventObjects(); @@ -2898,19 +2871,19 @@ void sub_80B8DB4(struct Task *task) task->data[0]++; } -void sub_80B8E14(struct Task *task) +static void sub_80B8E14(struct Task *task) { struct EventObject *eventObject; eventObject = &gEventObjects[gPlayerAvatar.eventObjectId]; if (!EventObjectIsMovementOverridden(eventObject) || EventObjectClearHeldMovementIfFinished(eventObject)) { sub_808C114(); - EventObjectSetHeldMovement(eventObject, 0x39); + EventObjectSetHeldMovement(eventObject, MOVEMENT_ACTION_START_ANIM_IN_DIRECTION); task->data[0]++; } } -void sub_80B8E60(struct Task *task) +static void sub_80B8E60(struct Task *task) { struct EventObject *eventObject; eventObject = &gEventObjects[gPlayerAvatar.eventObjectId]; @@ -2922,7 +2895,7 @@ void sub_80B8E60(struct Task *task) } } -void sub_80B8EA8(struct Task *task) +static void sub_80B8EA8(struct Task *task) { struct EventObject *eventObject; if (!FieldEffectActiveListContains(FLDEFF_FIELD_MOVE_SHOW_MON)) @@ -2939,7 +2912,7 @@ void sub_80B8EA8(struct Task *task) } } -void sub_80B8F24(struct Task *task) +static void sub_80B8F24(struct Task *task) { struct EventObject *eventObject; eventObject = &gEventObjects[gPlayerAvatar.eventObjectId]; @@ -2956,13 +2929,12 @@ void sub_80B8F24(struct Task *task) } } -#ifdef NONMATCHING u8 sub_80B8F98(void) { - u8 spriteId, i, j, k, l; - struct Sprite *sprite; - spriteId = CreateSprite(gFieldEffectObjectTemplatePointers[36], 0x78, -0x18, 1); - sprite = &gSprites[spriteId]; + u8 i, j, k; + u8 spriteId = CreateSprite(gFieldEffectObjectTemplatePointers[36], 0x78, -0x18, 1); + struct Sprite *sprite = &gSprites[spriteId]; + sprite->oam.priority = 1; sprite->oam.paletteNum = 4; sprite->data[0] = 0; @@ -2973,7 +2945,7 @@ u8 sub_80B8F98(void) sprite->data[5] = 0; SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG0 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_BG2 | BLDCNT_TGT2_BG3 | BLDCNT_TGT2_OBJ | BLDCNT_TGT2_BD); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(14, 14)); - SetGpuReg(REG_OFFSET_WININ, 0x3F3F); + SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG_ALL | WININ_WIN1_OBJ | WININ_WIN1_CLR); LoadPalette(gUnknown_0855B610, 0xC0, sizeof(gUnknown_0855B610)); SetGpuReg(REG_OFFSET_BG0VOFS, 120); for (i = 3; i < 15; i++) @@ -2985,158 +2957,20 @@ u8 sub_80B8F98(void) } for (k = 0; k < 90; k++) { - for (l = 0; l < 8; l++) + for (i = 0; i < 8; i++) { - *(u16*)(VRAM + 0x8000 + (k + 1) * 32 + l * 4) = (gUnknown_0855B630[k * 32 + l * 4 + 1] << 8) + gUnknown_0855B630[k * 32 + l * 4]; - *(u16*)(VRAM + 0x8000 + (k + 1) * 32 + l * 4 + 2) = (gUnknown_0855B630[k * 32 + l * 4 + 3] << 8) + gUnknown_0855B630[k * 32 + l * 4 + 2]; + *(u16*)(VRAM + 0x8000 + (k + 1) * 32 + i * 4) = (gUnknown_0855B630[k * 32 + i * 4 + 1] << 8) + gUnknown_0855B630[k * 32 + i * 4]; + *(u16*)(VRAM + 0x8000 + (k + 1) * 32 + i * 4 + 2) = (gUnknown_0855B630[k * 32 + i * 4 + 3] << 8) + gUnknown_0855B630[k * 32 + i * 4 + 2]; } } return spriteId; } -#else -NAKED -u8 sub_80B8F98(void) -{ - asm_unified("push {r4-r7,lr}\n\ - mov r7, r8\n\ - push {r7}\n\ - ldr r0, =gFieldEffectObjectTemplatePointers\n\ - adds r0, 0x90\n\ - ldr r0, [r0]\n\ - movs r2, 0x18\n\ - negs r2, r2\n\ - movs r1, 0x78\n\ - movs r3, 0x1\n\ - bl CreateSprite\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - mov r8, r0\n\ - lsls r1, r0, 4\n\ - add r1, r8\n\ - lsls r1, 2\n\ - ldr r0, =gSprites\n\ - adds r1, r0\n\ - ldrb r2, [r1, 0x5]\n\ - movs r0, 0xD\n\ - negs r0, r0\n\ - ands r0, r2\n\ - movs r2, 0x4\n\ - orrs r0, r2\n\ - movs r2, 0xF\n\ - ands r0, r2\n\ - movs r2, 0x40\n\ - orrs r0, r2\n\ - strb r0, [r1, 0x5]\n\ - movs r2, 0\n\ - strh r2, [r1, 0x2E]\n\ - strh r2, [r1, 0x30]\n\ - strh r2, [r1, 0x32]\n\ - ldr r0, =0x0000ffff\n\ - strh r0, [r1, 0x34]\n\ - ldrh r0, [r1, 0x22]\n\ - strh r0, [r1, 0x36]\n\ - strh r2, [r1, 0x38]\n\ - ldr r1, =0x00003e41\n\ - movs r0, 0x50\n\ - bl SetGpuReg\n\ - ldr r1, =0x00000e0e\n\ - movs r0, 0x52\n\ - bl SetGpuReg\n\ - ldr r1, =0x00003f3f\n\ - movs r0, 0x48\n\ - bl SetGpuReg\n\ - ldr r0, =gUnknown_0855B610\n\ - movs r1, 0xC0\n\ - movs r2, 0x20\n\ - bl LoadPalette\n\ - movs r0, 0x12\n\ - movs r1, 0x78\n\ - bl SetGpuReg\n\ - movs r4, 0x3\n\ - ldr r7, =0x0600f800\n\ - ldr r0, =0x0000bff4\n\ - adds r6, r0, 0\n\ -_080B901A:\n\ - movs r2, 0xC\n\ - lsls r0, r4, 1\n\ - lsls r5, r4, 5\n\ - adds r0, r4\n\ - lsls r3, r0, 1\n\ -_080B9024:\n\ - adds r0, r5, r2\n\ - lsls r0, 1\n\ - adds r0, r7\n\ - adds r1, r2, r6\n\ - adds r1, r3, r1\n\ - adds r1, 0x1\n\ - strh r1, [r0]\n\ - adds r0, r2, 0x1\n\ - lsls r0, 24\n\ - lsrs r2, r0, 24\n\ - cmp r2, 0x11\n\ - bls _080B9024\n\ - adds r0, r4, 0x1\n\ - lsls r0, 24\n\ - lsrs r4, r0, 24\n\ - cmp r4, 0xE\n\ - bls _080B901A\n\ - movs r0, 0\n\ - ldr r5, =gUnknown_0855B630\n\ -_080B904A:\n\ - movs r4, 0\n\ - adds r7, r0, 0x1\n\ - lsls r6, r0, 5\n\ -_080B9050:\n\ - lsls r1, r4, 2\n\ - adds r1, r6, r1\n\ - ldr r0, =0x06008020\n\ - adds r3, r1, r0\n\ - adds r0, r1, 0x1\n\ - adds r0, r5\n\ - ldrb r2, [r0]\n\ - lsls r2, 8\n\ - adds r0, r1, r5\n\ - ldrb r0, [r0]\n\ - adds r0, r2\n\ - strh r0, [r3]\n\ - ldr r0, =0x06008022\n\ - adds r3, r1, r0\n\ - adds r0, r1, 0x3\n\ - adds r0, r5\n\ - ldrb r2, [r0]\n\ - lsls r2, 8\n\ - adds r1, 0x2\n\ - adds r1, r5\n\ - ldrb r0, [r1]\n\ - adds r0, r2\n\ - strh r0, [r3]\n\ - adds r0, r4, 0x1\n\ - lsls r0, 24\n\ - lsrs r4, r0, 24\n\ - cmp r4, 0x7\n\ - bls _080B9050\n\ - lsls r0, r7, 24\n\ - lsrs r0, 24\n\ - cmp r0, 0x59\n\ - bls _080B904A\n\ - mov r0, r8\n\ - pop {r3}\n\ - mov r8, r3\n\ - pop {r4-r7}\n\ - pop {r1}\n\ - bx r1\n\ - .pool"); -} -#endif // NONMATCHING - -void sub_80B9128(struct Sprite *); u8 FldEff_NPCFlyOut(void) { - u8 spriteId; - struct Sprite *sprite; - spriteId = CreateSprite(gFieldEffectObjectTemplatePointers[26], 0x78, 0, 1); - sprite = &gSprites[spriteId]; + u8 spriteId = CreateSprite(gFieldEffectObjectTemplatePointers[26], 0x78, 0, 1); + struct Sprite *sprite = &gSprites[spriteId]; + sprite->oam.paletteNum = 0; sprite->oam.priority = 1; sprite->callback = sub_80B9128; @@ -3145,9 +2979,10 @@ u8 FldEff_NPCFlyOut(void) return spriteId; } -void sub_80B9128(struct Sprite *sprite) +static void sub_80B9128(struct Sprite *sprite) { struct Sprite *npcSprite; + sprite->pos2.x = Cos(sprite->data[2], 0x8c); sprite->pos2.y = Sin(sprite->data[2], 0x48); sprite->data[2] = (sprite->data[2] + 4) & 0xff; @@ -3166,19 +3001,9 @@ void sub_80B9128(struct Sprite *sprite) } } -void sub_80B91D4(u8); -extern void sub_81555D8(u8, u8); -u8 sub_80B94C4(void); -bool8 sub_80B9508(u8); -void sub_80B9524(u8); -void sub_80B9560(u8, u8); -void sub_80B957C(struct Sprite *); -void sub_80B963C(struct Sprite *); - u8 FldEff_UseFly(void) { - u8 taskId; - taskId = CreateTask(sub_80B91D4, 0xfe); + u8 taskId = CreateTask(sub_80B91D4, 0xfe); gTasks[taskId].data[1] = gFieldEffectArguments[0]; return 0; } @@ -3195,30 +3020,28 @@ void (*const gUnknown_0855C4F4[])(struct Task *) = { sub_80B9494, }; -void sub_80B91D4(u8 taskId) +static void sub_80B91D4(u8 taskId) { gUnknown_0855C4F4[gTasks[taskId].data[0]](&gTasks[taskId]); } -void sub_80B9204(struct Task *task) +static void sub_80B9204(struct Task *task) { - struct EventObject *eventObject; - eventObject = &gEventObjects[gPlayerAvatar.eventObjectId]; + struct EventObject *eventObject = &gEventObjects[gPlayerAvatar.eventObjectId]; if (!EventObjectIsMovementOverridden(eventObject) || EventObjectClearHeldMovementIfFinished(eventObject)) { task->data[15] = gPlayerAvatar.flags; gPlayerAvatar.preventStep = TRUE; SetPlayerAvatarStateMask(1); sub_808C114(); - EventObjectSetHeldMovement(eventObject, 0x39); + EventObjectSetHeldMovement(eventObject, MOVEMENT_ACTION_START_ANIM_IN_DIRECTION); task->data[0]++; } } -void sub_80B925C(struct Task *task) +static void sub_80B925C(struct Task *task) { - struct EventObject *eventObject; - eventObject = &gEventObjects[gPlayerAvatar.eventObjectId]; + struct EventObject *eventObject = &gEventObjects[gPlayerAvatar.eventObjectId]; if (EventObjectClearHeldMovementIfFinished(eventObject)) { task->data[0]++; @@ -3227,12 +3050,11 @@ void sub_80B925C(struct Task *task) } } -void sub_80B92A0(struct Task *task) +static void sub_80B92A0(struct Task *task) { - struct EventObject *eventObject; if (!FieldEffectActiveListContains(FLDEFF_FIELD_MOVE_SHOW_MON)) { - eventObject = &gEventObjects[gPlayerAvatar.eventObjectId]; + struct EventObject *eventObject = &gEventObjects[gPlayerAvatar.eventObjectId]; if (task->data[15] & 0x08) { sub_81555AC(eventObject->fieldEffectSpriteId, 2); @@ -3243,21 +3065,20 @@ void sub_80B92A0(struct Task *task) } } -void sub_80B92F8(struct Task *task) +static void sub_80B92F8(struct Task *task) { if (sub_80B9508(task->data[1])) { task->data[0]++; task->data[2] = 16; SetPlayerAvatarTransitionFlags(PLAYER_AVATAR_FLAG_ON_FOOT); - EventObjectSetHeldMovement(&gEventObjects[gPlayerAvatar.eventObjectId], 0x02); + EventObjectSetHeldMovement(&gEventObjects[gPlayerAvatar.eventObjectId], MOVEMENT_ACTION_FACE_LEFT); } } -void sub_80B933C(struct Task *task) +static void sub_80B933C(struct Task *task) { - struct EventObject *eventObject; - eventObject = &gEventObjects[gPlayerAvatar.eventObjectId]; + struct EventObject *eventObject = &gEventObjects[gPlayerAvatar.eventObjectId]; if ((task->data[2] == 0 || (--task->data[2]) == 0) && EventObjectClearHeldMovementIfFinished(eventObject)) { task->data[0]++; @@ -3266,16 +3087,15 @@ void sub_80B933C(struct Task *task) } } -void sub_80B9390(struct Task *task) +static void sub_80B9390(struct Task *task) { - struct EventObject *eventObject; if ((++task->data[2]) >= 8) { - eventObject = &gEventObjects[gPlayerAvatar.eventObjectId]; + struct EventObject *eventObject = &gEventObjects[gPlayerAvatar.eventObjectId]; EventObjectSetGraphicsId(eventObject, GetPlayerAvatarGraphicsIdByStateId(0x03)); StartSpriteAnim(&gSprites[eventObject->spriteId], 0x16); eventObject->inanimate = 1; - EventObjectSetHeldMovement(eventObject, 0x48); + EventObjectSetHeldMovement(eventObject, MOVEMENT_ACTION_JUMP_IN_PLACE_LEFT); if (task->data[15] & 0x08) { DestroySprite(&gSprites[eventObject->fieldEffectSpriteId]); @@ -3285,12 +3105,11 @@ void sub_80B9390(struct Task *task) } } -void sub_80B9418(struct Task *task) +static void sub_80B9418(struct Task *task) { - struct EventObject *eventObject; if ((++task->data[2]) >= 10) { - eventObject = &gEventObjects[gPlayerAvatar.eventObjectId]; + struct EventObject *eventObject = &gEventObjects[gPlayerAvatar.eventObjectId]; EventObjectClearHeldMovementIfActive(eventObject); eventObject->inanimate = 0; eventObject->hasShadow = 0; @@ -3300,7 +3119,7 @@ void sub_80B9418(struct Task *task) } } -void sub_80B9474(struct Task *task) +static void sub_80B9474(struct Task *task) { if (sub_80B9508(task->data[1])) { @@ -3309,7 +3128,7 @@ void sub_80B9474(struct Task *task) } } -void sub_80B9494(struct Task *task) +static void sub_80B9494(struct Task *task) { if (!gPaletteFade.active) { @@ -3318,7 +3137,7 @@ void sub_80B9494(struct Task *task) } } -u8 sub_80B94C4(void) +static u8 sub_80B94C4(void) { u8 spriteId; struct Sprite *sprite; @@ -3330,12 +3149,12 @@ u8 sub_80B94C4(void) return spriteId; } -u8 sub_80B9508(u8 spriteId) +static u8 sub_80B9508(u8 spriteId) { return gSprites[spriteId].data[7]; } -void sub_80B9524(u8 spriteId) +static void sub_80B9524(u8 spriteId) { struct Sprite *sprite; sprite = &gSprites[spriteId]; @@ -3348,7 +3167,7 @@ void sub_80B9524(u8 spriteId) sprite->data[6] = 0x40; } -void sub_80B9560(u8 a0, u8 a1) +static void sub_80B9560(u8 a0, u8 a1) { gSprites[a0].data[6] = a1; } @@ -3370,7 +3189,7 @@ const union AffineAnimCmd *const gSpriteAffineAnimTable_0855C548[] = { SpriteAffineAnim_855C530 }; -void sub_80B957C(struct Sprite *sprite) +static void sub_80B957C(struct Sprite *sprite) { if (sprite->data[7] == 0) { @@ -3403,15 +3222,14 @@ void sub_80B957C(struct Sprite *sprite) } } -void sub_80B963C(struct Sprite *sprite) +static void sub_80B963C(struct Sprite *sprite) { - struct Sprite *sprite1; sprite->pos2.x = Cos(sprite->data[2], 0x8c); sprite->pos2.y = Sin(sprite->data[2], 0x48); sprite->data[2] = (sprite->data[2] + 4) & 0xff; - if (sprite->data[6] != 0x40) + if (sprite->data[6] != MAX_SPRITES) { - sprite1 = &gSprites[sprite->data[6]]; + struct Sprite *sprite1 = &gSprites[sprite->data[6]]; sprite1->coordOffsetEnabled = 0; sprite1->pos1.x = sprite->pos1.x + sprite->pos2.x; sprite1->pos1.y = sprite->pos1.y + sprite->pos2.y - 8; @@ -3474,8 +3292,6 @@ void sub_80B9794(u8 spriteId) gSprites[spriteId].callback = sub_80B96B0; } -void sub_80B97D4(u8); - u8 FldEff_FlyIn(void) { CreateTask(sub_80B97D4, 0xfe); @@ -3492,12 +3308,12 @@ void (*const gUnknown_0855C550[])(struct Task *) = { sub_80B9A60, }; -void sub_80B97D4(u8 taskId) +static void sub_80B97D4(u8 taskId) { gUnknown_0855C550[gTasks[taskId].data[0]](&gTasks[taskId]); } -void sub_80B9804(struct Task *task) +static void sub_80B9804(struct Task *task) { struct EventObject *eventObject; eventObject = &gEventObjects[gPlayerAvatar.eventObjectId]; @@ -3523,7 +3339,7 @@ void sub_80B9804(struct Task *task) } } -void sub_80B98B8(struct Task *task) +static void sub_80B98B8(struct Task *task) { struct EventObject *eventObject; struct Sprite *sprite; @@ -3541,7 +3357,7 @@ void sub_80B98B8(struct Task *task) } } -void sub_80B9924(struct Task *task) +static void sub_80B9924(struct Task *task) { s16 unknown_0855C56C[18] = { -2, @@ -3571,7 +3387,7 @@ void sub_80B9924(struct Task *task) } } -void sub_80B9978(struct Task *task) +static void sub_80B9978(struct Task *task) { struct EventObject *eventObject; struct Sprite *sprite; @@ -3585,12 +3401,12 @@ void sub_80B9978(struct Task *task) sprite->pos2.y = 0; sprite->coordOffsetEnabled = 1; sub_808C114(); - EventObjectSetHeldMovement(eventObject, 0x39); + EventObjectSetHeldMovement(eventObject, MOVEMENT_ACTION_START_ANIM_IN_DIRECTION); task->data[0]++; } } -void sub_80B99F0(struct Task *task) +static void sub_80B99F0(struct Task *task) { if (EventObjectClearHeldMovementIfFinished(&gEventObjects[gPlayerAvatar.eventObjectId])) { @@ -3599,7 +3415,7 @@ void sub_80B99F0(struct Task *task) } } -void sub_80B9A28(struct Task *task) +static void sub_80B9A28(struct Task *task) { if (sub_80B9508(task->data[1])) { @@ -3609,7 +3425,7 @@ void sub_80B9A28(struct Task *task) } } -void sub_80B9A60(struct Task *task) +static void sub_80B9A60(struct Task *task) { u8 state; struct EventObject *eventObject; @@ -3631,8 +3447,6 @@ void sub_80B9A60(struct Task *task) } } -void sub_80B9BE8(u8 taskId); - bool8 sub_80B9ADC(void) { u8 taskId; @@ -3697,7 +3511,7 @@ void (*const gUnknown_0855C590[])(s16*, u8) = { sub_80B9CDC, }; -void sub_80B9BE8(u8 taskId) +static void sub_80B9BE8(u8 taskId) { s16 *data = gTasks[taskId].data; InstallCameraPanAheadCallback(); @@ -3742,8 +3556,6 @@ void sub_80B9CDC(s16* a0, u8 taskId) } } -void sub_80B9DB8(struct Sprite* sprite); - const struct SpriteFrameImage gSpriteImageTable_855C59C[] = { obj_frame_tiles(gUnknown_0855C170), obj_frame_tiles(gUnknown_0855C190), @@ -3791,13 +3603,13 @@ const struct SpriteTemplate gUnknown_0855C5EC = { void sub_80B9D24(struct Sprite* sprite) { int i; - int xPos = (s16)gUnknown_03005DEC + sprite->pos1.x + sprite->pos2.x; - int yPos = (s16)gUnknown_03005DE8 + sprite->pos1.y + sprite->pos2.y - 4; + int xPos = (s16)gTotalCameraPixelOffsetX + sprite->pos1.x + sprite->pos2.x; + int yPos = (s16)gTotalCameraPixelOffsetY + sprite->pos1.y + sprite->pos2.y - 4; for (i = 0; i < 4; i++) { u8 spriteId = CreateSprite(&gUnknown_0855C5EC, xPos, yPos, 0); - if (spriteId != 0x40) + if (spriteId != MAX_SPRITES) { StartSpriteAnim(&gSprites[spriteId], i); gSprites[spriteId].data[0] = i; @@ -3806,33 +3618,31 @@ void sub_80B9D24(struct Sprite* sprite) } } -void sub_80B9DB8(struct Sprite* sprite) +static void sub_80B9DB8(struct Sprite* sprite) { switch (sprite->data[0]) { - case 0: - sprite->pos1.x -= 16; - sprite->pos1.y -= 12; - break; - case 1: - sprite->pos1.x += 16; - sprite->pos1.y -= 12; - break; - case 2: - sprite->pos1.x -= 16; - sprite->pos1.y += 12; - break; - case 3: - sprite->pos1.x += 16; - sprite->pos1.y += 12; - break; + case 0: + sprite->pos1.x -= 16; + sprite->pos1.y -= 12; + break; + case 1: + sprite->pos1.x += 16; + sprite->pos1.y -= 12; + break; + case 2: + sprite->pos1.x -= 16; + sprite->pos1.y += 12; + break; + case 3: + sprite->pos1.x += 16; + sprite->pos1.y += 12; + break; } if ((u16)(sprite->pos1.x + 4) > 0xF8 || sprite->pos1.y < -4 || sprite->pos1.y > 0xA4) DestroySprite(sprite); } -void sub_80B9EDC(u8 taskId); - bool8 sub_80B9E28(struct Sprite* sprite) { u8 eventObjectIdBuffer; @@ -3857,7 +3667,7 @@ bool8 sub_80B9E28(struct Sprite* sprite) return FALSE; } -void sub_80B9EDC(u8 taskId) +static void sub_80B9EDC(u8 taskId) { // BUG: Possible divide by zero s16 *data = gTasks[taskId].data; |