summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/battle_anim_815A0D4.s12488
-rw-r--r--asm/battle_anim_effects_3.s1632
-rw-r--r--asm/macros/map.inc2
-rw-r--r--asm/water.s3607
-rw-r--r--data/battle_anim_815A0D4.s510
-rw-r--r--data/event_scripts.s27
-rw-r--r--data/maps/BattleFrontier_BattleArenaBattleRoom/scripts.inc2
-rw-r--r--data/maps/BattleFrontier_BattleArenaCorridor/scripts.inc4
-rw-r--r--data/maps/BattleFrontier_BattleArenaLobby/scripts.inc8
-rw-r--r--data/maps/BattleFrontier_BattleDomeBattleRoom/scripts.inc2
-rw-r--r--data/maps/BattleFrontier_BattleDomeCorridor/scripts.inc8
-rw-r--r--data/maps/BattleFrontier_BattleDomeLobby/scripts.inc4
-rw-r--r--data/maps/BattleFrontier_BattleDomePreBattleRoom/scripts.inc6
-rw-r--r--data/maps/BattleFrontier_BattleFactoryBattleRoom/scripts.inc4
-rw-r--r--data/maps/BattleFrontier_BattleFactoryLobby/scripts.inc2
-rw-r--r--data/maps/BattleFrontier_BattleFactoryPreBattleRoom/scripts.inc6
-rw-r--r--data/maps/BattleFrontier_BattlePalaceBattleRoom/scripts.inc2
-rw-r--r--data/maps/BattleFrontier_BattlePalaceCorridor/scripts.inc10
-rw-r--r--data/maps/BattleFrontier_BattlePalaceLobby/scripts.inc4
-rw-r--r--data/maps/BattleFrontier_BattlePikeCorridor/scripts.inc4
-rw-r--r--data/maps/BattleFrontier_BattlePikeLobby/scripts.inc2
-rw-r--r--data/maps/BattleFrontier_BattlePikeRandomRoom1/scripts.inc16
-rw-r--r--data/maps/BattleFrontier_BattlePyramidLobby/scripts.inc4
-rw-r--r--data/maps/BattleFrontier_BattlePyramidTop/scripts.inc10
-rw-r--r--data/maps/BattleFrontier_BattleTowerBattleRoom/scripts.inc10
-rw-r--r--data/maps/BattleFrontier_BattleTowerCorridor/scripts.inc4
-rw-r--r--data/maps/BattleFrontier_BattleTowerElevator/scripts.inc4
-rw-r--r--data/maps/BattleFrontier_BattleTowerLobby/scripts.inc4
-rw-r--r--data/maps/BattleFrontier_BattleTowerMultiBattleRoom/scripts.inc10
-rw-r--r--data/maps/BattleFrontier_ReceptionGate/scripts.inc8
-rw-r--r--data/maps/DewfordTown/scripts.inc12
-rw-r--r--data/maps/DewfordTown_Hall/scripts.inc8
-rw-r--r--data/maps/EverGrandeCity_ChampionsRoom/scripts.inc14
-rw-r--r--data/maps/EverGrandeCity_HallOfFame/scripts.inc10
-rw-r--r--data/maps/EverGrandeCity_PokemonLeague_1F/scripts.inc4
-rw-r--r--data/maps/FallarborTown_BattleTentCorridor/scripts.inc4
-rw-r--r--data/maps/FallarborTown_BattleTentLobby/scripts.inc4
-rw-r--r--data/maps/GraniteCave_StevensRoom/scripts.inc4
-rw-r--r--data/maps/LavaridgeTown/scripts.inc4
-rw-r--r--data/maps/LilycoveCity_ContestLobby/scripts.inc12
-rw-r--r--data/maps/LilycoveCity_CoveLilyMotel_1F/scripts.inc4
-rw-r--r--data/maps/LilycoveCity_Harbor/scripts.inc8
-rw-r--r--data/maps/LilycoveCity_LilycoveMuseum_1F/scripts.inc6
-rw-r--r--data/maps/LilycoveCity_LilycoveMuseum_2F/scripts.inc6
-rw-r--r--data/maps/LilycoveCity_PokemonTrainerFanClub/scripts.inc4
-rw-r--r--data/maps/LittlerootTown/scripts.inc30
-rw-r--r--data/maps/LittlerootTown_BrendansHouse_1F/scripts.inc12
-rw-r--r--data/maps/LittlerootTown_BrendansHouse_2F/scripts.inc14
-rw-r--r--data/maps/LittlerootTown_MaysHouse_1F/scripts.inc12
-rw-r--r--data/maps/LittlerootTown_MaysHouse_2F/scripts.inc14
-rw-r--r--data/maps/LittlerootTown_ProfessorBirchsLab/scripts.inc10
-rw-r--r--data/maps/MagmaHideout_4F/scripts.inc4
-rw-r--r--data/maps/MarineCave_End/scripts.inc2
-rw-r--r--data/maps/MauvilleCity/scripts.inc16
-rw-r--r--data/maps/MeteorFalls_1F_1R/scripts.inc6
-rw-r--r--data/maps/MossdeepCity/scripts.inc4
-rw-r--r--data/maps/MossdeepCity_Gym/scripts.inc16
-rw-r--r--data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc10
-rw-r--r--data/maps/MtChimney/scripts.inc2
-rw-r--r--data/maps/MtChimney_CableCarStation/scripts.inc4
-rw-r--r--data/maps/MtPyre_Summit/scripts.inc26
-rw-r--r--data/maps/NavelRock_Top/scripts.inc8
-rw-r--r--data/maps/NewMauville_Entrance/scripts.inc2
-rw-r--r--data/maps/OldaleTown/scripts.inc16
-rw-r--r--data/maps/PetalburgCity/scripts.inc32
-rw-r--r--data/maps/PetalburgCity_Gym/scripts.inc34
-rw-r--r--data/maps/PetalburgWoods/scripts.inc10
-rw-r--r--data/maps/Route101/scripts.inc10
-rw-r--r--data/maps/Route103/scripts.inc4
-rw-r--r--data/maps/Route104/scripts.inc20
-rw-r--r--data/maps/Route109/scripts.inc10
-rw-r--r--data/maps/Route110_SeasideCyclingRoadNorthEntrance/scripts.inc2
-rw-r--r--data/maps/Route110_SeasideCyclingRoadSouthEntrance/scripts.inc2
-rw-r--r--data/maps/Route110_TrickHouseEnd/scripts.inc4
-rw-r--r--data/maps/Route110_TrickHouseEntrance/scripts.inc8
-rw-r--r--data/maps/Route111/scripts.inc14
-rw-r--r--data/maps/Route112_CableCarStation/scripts.inc4
-rw-r--r--data/maps/Route114_FossilManiacsTunnel/scripts.inc2
-rw-r--r--data/maps/Route116/scripts.inc2
-rw-r--r--data/maps/Route118/scripts.inc12
-rw-r--r--data/maps/Route119/scripts.inc6
-rw-r--r--data/maps/Route119_WeatherInstitute_2F/scripts.inc4
-rw-r--r--data/maps/Route120/scripts.inc6
-rw-r--r--data/maps/Route121_SafariZoneEntrance/scripts.inc8
-rw-r--r--data/maps/Route128/scripts.inc8
-rw-r--r--data/maps/RustboroCity/scripts.inc38
-rw-r--r--data/maps/RustboroCity_DevonCorp_3F/scripts.inc4
-rw-r--r--data/maps/RusturfTunnel/scripts.inc16
-rw-r--r--data/maps/SSTidalCorridor/scripts.inc4
-rw-r--r--data/maps/SafariZone_South/scripts.inc6
-rw-r--r--data/maps/SeafloorCavern_Room9/scripts.inc10
-rw-r--r--data/maps/SkyPillar_Outside/scripts.inc4
-rw-r--r--data/maps/SkyPillar_Top/scripts.inc14
-rw-r--r--data/maps/SlateportCity/scripts.inc12
-rw-r--r--data/maps/SlateportCity_BattleTentCorridor/scripts.inc4
-rw-r--r--data/maps/SlateportCity_BattleTentLobby/scripts.inc4
-rw-r--r--data/maps/SlateportCity_Harbor/scripts.inc14
-rw-r--r--data/maps/SlateportCity_OceanicMuseum_1F/scripts.inc12
-rw-r--r--data/maps/SlateportCity_OceanicMuseum_2F/scripts.inc8
-rw-r--r--data/maps/SootopolisCity/scripts.inc56
-rw-r--r--data/maps/SootopolisCity_Gym_1F/scripts.inc2
-rw-r--r--data/maps/SootopolisCity_MysteryEventsHouse_1F/scripts.inc10
-rw-r--r--data/maps/SootopolisCity_MysteryEventsHouse_B1F/scripts.inc4
-rw-r--r--data/maps/SouthernIsland_Exterior/scripts.inc4
-rw-r--r--data/maps/SouthernIsland_Interior/scripts.inc8
-rw-r--r--data/maps/TerraCave_End/scripts.inc2
-rw-r--r--data/maps/TrainerHill_Elevator/scripts.inc8
-rw-r--r--data/maps/TrainerHill_Entrance/scripts.inc18
-rw-r--r--data/maps/VerdanturfTown_BattleTentBattleRoom/scripts.inc2
-rw-r--r--data/maps/VerdanturfTown_BattleTentCorridor/scripts.inc4
-rw-r--r--data/maps/VerdanturfTown_BattleTentLobby/scripts.inc4
-rw-r--r--data/maps/VictoryRoad_1F/scripts.inc2
-rw-r--r--data/scripts/cable_club.inc40
-rw-r--r--data/scripts/players_house.inc46
-rw-r--r--data/scripts/secret_base.inc2
-rw-r--r--data/specials.inc4
-rwxr-xr-xgraphics/unknown/unknown_85CE55C.pal19
-rw-r--r--include/battle_anim.h9
-rw-r--r--include/constants/event_objects.h3
-rw-r--r--include/graphics.h20
-rw-r--r--include/scanline_effect.h1
-rw-r--r--ld_script.txt7
-rw-r--r--src/battle_anim_80A5C6C.c2
-rwxr-xr-xsrc/battle_anim_effects_3.c4889
-rw-r--r--src/battle_factory.c8
-rw-r--r--src/battle_main.c4
-rw-r--r--src/battle_script_commands.c2
-rw-r--r--src/battle_tent.c7
-rw-r--r--src/data/pokemon_graphics/front_anims.h885
-rw-r--r--src/data/pokemon_graphics/still_front_pic_table.h884
-rw-r--r--src/event_object_movement.c2
-rw-r--r--src/field_specials.c8
-rw-r--r--src/graphics.c6
-rw-r--r--src/hall_of_fame.c2
-rw-r--r--src/pokemon.c8
-rw-r--r--src/tv.c2
-rw-r--r--src/water.c2185
137 files changed, 10194 insertions, 18043 deletions
diff --git a/asm/battle_anim_815A0D4.s b/asm/battle_anim_815A0D4.s
deleted file mode 100644
index 84f7a7883..000000000
--- a/asm/battle_anim_815A0D4.s
+++ /dev/null
@@ -1,12488 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_815A0D4
-sub_815A0D4: @ 815A0D4
- push {lr}
- adds r2, r0, 0
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1]
- ldrh r3, [r2, 0x20]
- adds r0, r3
- strh r0, [r2, 0x20]
- ldrh r0, [r1, 0x2]
- ldrh r3, [r2, 0x22]
- adds r0, r3
- strh r0, [r2, 0x22]
- movs r3, 0x6
- ldrsh r0, [r1, r3]
- cmp r0, 0
- bne _0815A0FC
- ldrh r0, [r1, 0x4]
- b _0815A100
- .pool
-_0815A0FC:
- ldrh r0, [r1, 0x4]
- negs r0, r0
-_0815A100:
- strh r0, [r2, 0x2E]
- ldrh r0, [r1, 0x8]
- strh r0, [r2, 0x30]
- ldr r0, =sub_815A114
- str r0, [r2, 0x1C]
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815A0D4
-
- thumb_func_start sub_815A114
-sub_815A114: @ 815A114
- push {lr}
- adds r3, r0, 0
- movs r1, 0x30
- ldrsh r0, [r3, r1]
- cmp r0, 0
- ble _0815A154
- ldrh r1, [r3, 0x32]
- lsls r0, r1, 16
- asrs r0, 24
- strh r0, [r3, 0x24]
- ldrh r0, [r3, 0x2E]
- adds r1, r0
- strh r1, [r3, 0x32]
- movs r0, 0x3E
- adds r0, r3
- mov r12, r0
- ldrb r2, [r0]
- lsls r0, r2, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- mov r1, r12
- strb r0, [r1]
- ldrh r0, [r3, 0x30]
- subs r0, 0x1
- strh r0, [r3, 0x30]
- b _0815A15A
-_0815A154:
- adds r0, r3, 0
- bl DestroyAnimSprite
-_0815A15A:
- pop {r0}
- bx r0
- thumb_func_end sub_815A114
-
- thumb_func_start sub_815A160
-sub_815A160: @ 815A160
- push {r4-r6,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r6, =gBattleAnimTarget
- ldrb r0, [r6]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 8
- movs r0, 0x80
- lsls r0, 12
- adds r4, r0
- asrs r4, 16
- ldrb r0, [r6]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 8
- movs r0, 0x80
- lsls r0, 12
- adds r1, r0
- asrs r1, 16
- adds r0, r4, 0
- movs r2, 0
- bl sub_807521C
- adds r0, r5, 0
- bl DestroyAnimVisualTask
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815A160
-
- thumb_func_start sub_815A1B0
-sub_815A1B0: @ 815A1B0
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x5A
- strh r0, [r4, 0x2E]
- ldr r0, =WaitAnimForDuration
- str r0, [r4, 0x1C]
- movs r0, 0x7
- strh r0, [r4, 0x30]
- ldr r1, =sub_815A1F4
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- movs r1, 0xFD
- lsls r1, 6
- movs r0, 0x50
- bl SetGpuReg
- ldrh r0, [r4, 0x30]
- movs r1, 0x10
- subs r1, r0
- lsls r1, 8
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815A1B0
-
- thumb_func_start sub_815A1F4
-sub_815A1F4: @ 815A1F4
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x30]
- movs r1, 0x10
- subs r1, r0
- lsls r1, 8
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- ldrh r0, [r4, 0x30]
- subs r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- cmp r0, 0
- bge _0815A228
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, =sub_815A234
- str r0, [r4, 0x1C]
-_0815A228:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815A1F4
-
- thumb_func_start sub_815A234
-sub_815A234: @ 815A234
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
- adds r0, r4, 0
- bl DestroyAnimSprite
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_815A234
-
- thumb_func_start sub_815A254
-sub_815A254: @ 815A254
- push {r4-r7,lr}
- sub sp, 0x4
- adds r5, r0, 0
- ldr r4, =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- adds r7, r0, 0
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0, 0
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_80A6980
- ldrh r0, [r5, 0x20]
- subs r0, r7
- lsls r0, 16
- asrs r0, 16
- ldrh r1, [r5, 0x22]
- subs r1, r6
- lsls r1, 16
- asrs r1, 16
- bl ArcTan2Neg
- lsls r0, 16
- movs r1, 0xC0
- lsls r1, 23
- adds r0, r1
- lsrs r4, r0, 16
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _0815A2B2
- movs r1, 0x80
- lsls r1, 7
- adds r0, r4, r1
- lsls r0, 16
- lsrs r4, r0, 16
-_0815A2B2:
- movs r3, 0x80
- lsls r3, 1
- str r4, [sp]
- adds r0, r5, 0
- movs r1, 0
- adds r2, r3, 0
- bl TrySetSpriteRotScale
- ldr r0, =gBattleAnimArgs
- ldrh r0, [r0, 0x4]
- strh r0, [r5, 0x2E]
- strh r7, [r5, 0x32]
- strh r6, [r5, 0x36]
- ldr r0, =StartAnimLinearTranslation
- str r0, [r5, 0x1C]
- ldr r1, =DestroyAnimSprite
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815A254
-
- thumb_func_start sub_815A2F0
-sub_815A2F0: @ 815A2F0
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0xFD
- lsls r1, 6
- movs r0, 0x50
- bl SetGpuReg
- movs r1, 0x80
- lsls r1, 5
- movs r0, 0x52
- bl SetGpuReg
- movs r0, 0x4
- strh r0, [r4, 0x2E]
- ldr r0, =sub_815A31C
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815A2F0
-
- thumb_func_start sub_815A31C
-sub_815A31C: @ 815A31C
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- movs r1, 0x10
- subs r1, r0
- lsls r1, 8
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0815A342
- ldrh r0, [r4, 0x2E]
- subs r0, 0x1
- b _0815A346
-_0815A342:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
-_0815A346:
- strh r0, [r4, 0x2E]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0xF
- beq _0815A354
- cmp r0, 0x4
- bne _0815A35C
-_0815A354:
- ldrh r0, [r4, 0x30]
- movs r1, 0x1
- eors r0, r1
- strh r0, [r4, 0x30]
-_0815A35C:
- ldrh r0, [r4, 0x32]
- adds r1, r0, 0x1
- strh r1, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x46
- ble _0815A3A0
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- movs r0, 0
- strh r0, [r4, 0x32]
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- subs r2, 0x12
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- ldr r0, =sub_815A3AC
- str r0, [r4, 0x1C]
-_0815A3A0:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815A31C
-
- thumb_func_start sub_815A3AC
-sub_815A3AC: @ 815A3AC
- push {lr}
- adds r3, r0, 0
- ldrh r0, [r3, 0x32]
- adds r1, r0, 0x1
- strh r1, [r3, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x9
- ble _0815A3E8
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- subs r2, 0x12
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- adds r0, r3, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0815A3E8
- ldr r0, =sub_815A3F0
- str r0, [r3, 0x1C]
-_0815A3E8:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815A3AC
-
- thumb_func_start sub_815A3F0
-sub_815A3F0: @ 815A3F0
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0x6
- bhi _0815A448
- lsls r0, 2
- ldr r1, =_0815A40C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_0815A40C:
- .4byte _0815A428
- .4byte _0815A428
- .4byte _0815A432
- .4byte _0815A432
- .4byte _0815A440
- .4byte _0815A440
- .4byte _0815A448
-_0815A428:
- movs r1, 0
- movs r0, 0x1
- strh r0, [r4, 0x24]
- strh r1, [r4, 0x26]
- b _0815A450
-_0815A432:
- ldr r0, =0x0000ffff
- strh r0, [r4, 0x24]
- movs r0, 0
- b _0815A44E
- .pool
-_0815A440:
- movs r0, 0
- strh r0, [r4, 0x24]
- movs r0, 0x1
- b _0815A44E
-_0815A448:
- movs r0, 0
- strh r0, [r4, 0x24]
- ldr r0, =0x0000ffff
-_0815A44E:
- strh r0, [r4, 0x26]
-_0815A450:
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- movs r2, 0
- strh r0, [r4, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- ble _0815A462
- strh r2, [r4, 0x34]
-_0815A462:
- ldrh r0, [r4, 0x36]
- adds r1, r0, 0x1
- strh r1, [r4, 0x36]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xF
- ble _0815A48C
- movs r0, 0x10
- strh r0, [r4, 0x2E]
- strh r2, [r4, 0x30]
- movs r1, 0xFD
- lsls r1, 6
- movs r0, 0x50
- bl SetGpuReg
- ldrh r1, [r4, 0x2E]
- movs r0, 0x52
- bl SetGpuReg
- ldr r0, =sub_815A49C
- str r0, [r4, 0x1C]
-_0815A48C:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815A3F0
-
- thumb_func_start sub_815A49C
-sub_815A49C: @ 815A49C
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- movs r1, 0x10
- subs r1, r0
- lsls r1, 8
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- ldrh r0, [r4, 0x30]
- adds r1, r0, 0x1
- strh r1, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _0815A4CC
- ldrh r0, [r4, 0x2E]
- subs r0, 0x1
- movs r1, 0
- strh r0, [r4, 0x2E]
- strh r1, [r4, 0x30]
-_0815A4CC:
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0815A4E0
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
-_0815A4E0:
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bge _0815A4FE
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
- adds r0, r4, 0
- bl DestroyAnimSprite
-_0815A4FE:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_815A49C
-
- thumb_func_start sub_815A504
-sub_815A504: @ 815A504
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r0, =sub_815A52C
- str r0, [r1]
- ldr r1, =gAnimVisualTaskCount
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- bx lr
- .pool
- thumb_func_end sub_815A504
-
- thumb_func_start sub_815A52C
-sub_815A52C: @ 815A52C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_80A6D94
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r7, =gTasks
- lsls r5, r4, 2
- adds r1, r5, r4
- lsls r1, 3
- adds r1, r7
- ldrh r0, [r1, 0x12]
- adds r0, 0x1
- strh r0, [r1, 0x12]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bne _0815A59C
- ldr r0, =gPlttBufferFaded
- lsls r2, r6, 4
- adds r1, r2, 0
- adds r1, 0xB
- lsls r1, 1
- adds r1, r0
- ldrh r3, [r1]
- mov r8, r3
- movs r3, 0xA
- mov r9, r7
- adds r7, r5, 0
- mov r12, r0
- adds r5, r2, 0
- lsls r0, r6, 5
- add r0, r12
- adds r2, r0, 0
- adds r2, 0x14
-_0815A57A:
- ldrh r0, [r2]
- strh r0, [r1]
- subs r2, 0x2
- subs r1, 0x2
- subs r3, 0x1
- cmp r3, 0
- bgt _0815A57A
- adds r0, r5, 0x1
- lsls r0, 1
- add r0, r12
- movs r1, 0
- mov r2, r8
- strh r2, [r0]
- adds r0, r7, r4
- lsls r0, 3
- add r0, r9
- strh r1, [r0, 0x12]
-_0815A59C:
- ldr r0, =gBattleAnimArgs
- ldrh r1, [r0, 0xE]
- ldr r0, =0x0000ffff
- cmp r1, r0
- bne _0815A5AC
- adds r0, r4, 0
- bl DestroyTask
-_0815A5AC:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815A52C
-
- thumb_func_start sub_815A5C8
-sub_815A5C8: @ 815A5C8
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r0, =sub_815A5F0
- str r0, [r1]
- ldr r1, =gAnimVisualTaskCount
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- bx lr
- .pool
- thumb_func_end sub_815A5C8
-
- thumb_func_start sub_815A5F0
-sub_815A5F0: @ 815A5F0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- bl sub_80A6D94
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r5, =gTasks
- mov r0, r8
- lsls r3, r0, 2
- adds r1, r3, r0
- lsls r1, 3
- adds r1, r5
- ldrh r0, [r1, 0x12]
- adds r0, 0x1
- strh r0, [r1, 0x12]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bne _0815A692
- ldr r0, =gPlttBufferFaded
- lsls r2, r7, 4
- adds r1, r2, 0
- adds r1, 0xB
- lsls r1, 1
- adds r1, r0
- ldrh r6, [r1]
- movs r4, 0xA
- mov r10, r3
- mov r9, r0
- adds r5, r2, 0
- ldr r2, =gPlttBufferUnfaded
- mov r12, r2
- lsls r0, r7, 5
- add r0, r9
- adds r3, r0, 0
- adds r3, 0x14
-_0815A644:
- ldrh r0, [r3]
- strh r0, [r1]
- subs r3, 0x2
- subs r1, 0x2
- subs r4, 0x1
- cmp r4, 0
- bgt _0815A644
- adds r0, r5, 0x1
- lsls r0, 1
- add r0, r9
- strh r6, [r0]
- adds r1, r5, 0
- adds r1, 0xB
- lsls r1, 1
- add r1, r12
- ldrh r6, [r1]
- movs r4, 0xA
- lsls r0, r7, 5
- add r0, r12
- adds r2, r0, 0
- adds r2, 0x14
-_0815A66E:
- ldrh r0, [r2]
- strh r0, [r1]
- subs r2, 0x2
- subs r1, 0x2
- subs r4, 0x1
- cmp r4, 0
- bgt _0815A66E
- adds r0, r5, 0x1
- lsls r0, 1
- add r0, r12
- movs r1, 0
- strh r6, [r0]
- mov r0, r10
- add r0, r8
- lsls r0, 3
- ldr r2, =gTasks
- adds r0, r2
- strh r1, [r0, 0x12]
-_0815A692:
- ldr r0, =gBattleAnimArgs
- ldrh r1, [r0, 0xE]
- ldr r0, =0x0000ffff
- cmp r1, r0
- bne _0815A6A2
- mov r0, r8
- bl DestroyTask
-_0815A6A2:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815A5F0
-
- thumb_func_start sub_815A6C4
-sub_815A6C4: @ 815A6C4
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- movs r1, 0x1
- bl InitAnimSpritePos
- ldr r0, =gBattleAnimTarget
- ldrb r0, [r0]
- mov r5, sp
- adds r5, 0x2
- movs r1, 0
- mov r2, sp
- adds r3, r5, 0
- bl SetAverageBattlerPositions
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _0815A6F8
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
-_0815A6F8:
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1, 0x8]
- strh r0, [r4, 0x2E]
- mov r2, sp
- ldrh r0, [r1, 0x4]
- ldrh r2, [r2]
- adds r0, r2
- strh r0, [r4, 0x32]
- ldrh r0, [r1, 0x6]
- ldrh r5, [r5]
- adds r0, r5
- strh r0, [r4, 0x36]
- ldr r0, =0x0000ffce
- strh r0, [r4, 0x38]
- adds r0, r4, 0
- bl InitAnimArcTranslation
- ldr r0, =sub_815A73C
- str r0, [r4, 0x1C]
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815A6C4
-
- thumb_func_start sub_815A73C
-sub_815A73C: @ 815A73C
- push {r4,lr}
- adds r4, r0, 0
- bl TranslateAnimArc
- lsls r0, 24
- cmp r0, 0
- beq _0815A75E
- movs r1, 0
- movs r0, 0x1E
- strh r0, [r4, 0x2E]
- strh r1, [r4, 0x30]
- ldr r0, =WaitAnimForDuration
- str r0, [r4, 0x1C]
- ldr r1, =sub_815A76C
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
-_0815A75E:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815A73C
-
- thumb_func_start sub_815A76C
-sub_815A76C: @ 815A76C
- push {lr}
- adds r3, r0, 0
- ldrh r1, [r3, 0x30]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0815A798
- movs r0, 0x3E
- adds r0, r3
- mov r12, r0
- ldrb r2, [r0]
- lsls r0, r2, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- mov r1, r12
- strb r0, [r1]
-_0815A798:
- ldrh r0, [r3, 0x30]
- adds r0, 0x1
- strh r0, [r3, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- bne _0815A7AC
- adds r0, r3, 0
- bl DestroyAnimSprite
-_0815A7AC:
- pop {r0}
- bx r0
- thumb_func_end sub_815A76C
-
- thumb_func_start sub_815A7B0
-sub_815A7B0: @ 815A7B0
- push {r4,r5,lr}
- adds r4, r0, 0
- bl SetSpriteCoordsToAnimAttackerCoords
- ldr r5, =gBattleAnimArgs
- movs r0, 0
- ldrsh r1, [r5, r0]
- adds r0, r4, 0
- bl sub_80A6864
- ldrh r0, [r5, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldr r0, =RunStoredCallbackWhenAnimEnds
- str r0, [r4, 0x1C]
- ldr r1, =DestroyAnimSprite
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815A7B0
-
- thumb_func_start sub_815A7EC
-sub_815A7EC: @ 815A7EC
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0815A84C
- adds r0, r4, 0
- bl SetSpriteCoordsToAnimAttackerCoords
- ldr r5, =gBattleAnimArgs
- movs r2, 0
- ldrsh r1, [r5, r2]
- adds r0, r4, 0
- bl sub_80A6864
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _0815A840
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _0815A830
- ldrh r0, [r5, 0x4]
- b _0815A846
- .pool
-_0815A830:
- movs r1, 0x4
- ldrsh r0, [r5, r1]
- negs r0, r0
- strh r0, [r4, 0x30]
- movs r2, 0x6
- ldrsh r0, [r5, r2]
- negs r0, r0
- b _0815A84A
-_0815A840:
- movs r1, 0x4
- ldrsh r0, [r5, r1]
- negs r0, r0
-_0815A846:
- strh r0, [r4, 0x30]
- ldrh r0, [r5, 0x6]
-_0815A84A:
- strh r0, [r4, 0x32]
-_0815A84C:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- movs r2, 0x2E
- ldrsh r1, [r4, r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- movs r3, 0xFF
- ldrh r1, [r4, 0x30]
- ldrh r2, [r4, 0x34]
- adds r1, r2
- strh r1, [r4, 0x34]
- ldrh r1, [r4, 0x32]
- ldrh r2, [r4, 0x36]
- adds r1, r2
- strh r1, [r4, 0x36]
- movs r2, 0x34
- ldrsh r1, [r4, r2]
- lsrs r2, r1, 31
- adds r1, r2
- asrs r1, 1
- strh r1, [r4, 0x24]
- ands r0, r3
- movs r1, 0x5
- bl Sin
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- lsrs r2, r1, 31
- adds r1, r2
- asrs r1, 1
- adds r0, r1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x24]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xF0
- bls _0815A8A4
- adds r0, r4, 0
- bl DestroyAnimSprite
-_0815A8A4:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_815A7EC
-
- thumb_func_start sub_815A8AC
-sub_815A8AC: @ 815A8AC
- push {lr}
- adds r2, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0815A8C2
- adds r0, r2, 0
- bl DestroyAnimSprite
-_0815A8C2:
- pop {r0}
- bx r0
- thumb_func_end sub_815A8AC
-
- thumb_func_start AnimTask_IsTargetPlayerSide
-AnimTask_IsTargetPlayerSide: @ 815A8C8
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, =gBattleAnimTarget
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0815A8EC
- ldr r1, =gBattleAnimArgs
- movs r0, 0
- b _0815A8F0
- .pool
-_0815A8EC:
- ldr r1, =gBattleAnimArgs
- movs r0, 0x1
-_0815A8F0:
- strh r0, [r1, 0xE]
- adds r0, r4, 0
- bl DestroyAnimVisualTask
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end AnimTask_IsTargetPlayerSide
-
- thumb_func_start AnimTask_IsHealingMove
-AnimTask_IsHealingMove: @ 815A904
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, =gAnimMoveDmg
- ldr r0, [r0]
- cmp r0, 0
- ble _0815A920
- ldr r1, =gBattleAnimArgs
- movs r0, 0
- b _0815A924
- .pool
-_0815A920:
- ldr r1, =gBattleAnimArgs
- movs r0, 0x1
-_0815A924:
- strh r0, [r1, 0xE]
- adds r0, r2, 0
- bl DestroyAnimVisualTask
- pop {r0}
- bx r0
- .pool
- thumb_func_end AnimTask_IsHealingMove
-
- thumb_func_start sub_815A934
-sub_815A934: @ 815A934
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r1, =0x00001f3f
- movs r0, 0x4A
- bl SetGpuReg
- movs r1, 0x80
- lsls r1, 8
- movs r0, 0
- bl SetGpuRegBits
- ldr r0, =gBattle_WIN0H
- movs r1, 0
- strh r1, [r0]
- ldr r4, =gBattle_WIN0V
- strh r1, [r4]
- movs r0, 0x40
- movs r1, 0
- bl SetGpuReg
- ldrh r1, [r4]
- movs r0, 0x44
- bl SetGpuReg
- adds r0, r5, 0
- movs r1, 0
- bl sub_80A6980
- ldrb r1, [r5, 0x1]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- movs r1, 0x8
- orrs r0, r1
- strb r0, [r5, 0x1]
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, =sub_815A9A0
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815A934
-
- thumb_func_start sub_815A9A0
-sub_815A9A0: @ 815A9A0
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x5
- bhi _0815AA60
- lsls r0, 2
- ldr r1, =_0815A9BC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_0815A9BC:
- .4byte _0815A9D4
- .4byte _0815A9F2
- .4byte _0815AA12
- .4byte _0815A9F2
- .4byte _0815AA32
- .4byte _0815AA42
-_0815A9D4:
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0815AA60
- b _0815AA3A
-_0815A9F2:
- ldrh r0, [r4, 0x30]
- adds r0, 0x75
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x15
- bne _0815AA60
- movs r0, 0
- strh r0, [r4, 0x32]
- b _0815AA3A
-_0815AA12:
- ldrh r0, [r4, 0x30]
- subs r0, 0x75
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x29
- bne _0815AA60
- movs r0, 0
- strh r0, [r4, 0x32]
- b _0815AA3A
-_0815AA32:
- adds r0, r4, 0
- movs r1, 0x1
- bl ChangeSpriteAffineAnim
-_0815AA3A:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _0815AA60
-_0815AA42:
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0815AA60
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, =sub_815AA6C
- str r0, [r4, 0x1C]
-_0815AA60:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815A9A0
-
- thumb_func_start sub_815AA6C
-sub_815AA6C: @ 815AA6C
- push {r4,lr}
- adds r4, r0, 0
- ldr r1, =0x00003f3f
- movs r0, 0x4A
- bl SetGpuReg
- movs r0, 0
- bl GetGpuReg
- adds r1, r0, 0
- movs r2, 0x80
- lsls r2, 8
- adds r0, r2, 0
- eors r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0
- bl SetGpuReg
- adds r0, r4, 0
- bl DestroyAnimSprite
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815AA6C
-
- thumb_func_start sub_815AAA4
-sub_815AAA4: @ 815AAA4
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r6, =gBattleAnimArgs
- movs r1, 0x6
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _0815AAD0
- ldr r4, =gBattleAnimAttacker
- ldrb r0, [r4]
- movs r1, 0
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x1
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
-_0815AAD0:
- ldrh r0, [r6]
- ldrh r2, [r5, 0x20]
- adds r0, r2
- movs r3, 0
- strh r0, [r5, 0x20]
- ldrh r0, [r6, 0x2]
- ldrh r4, [r5, 0x22]
- adds r0, r4
- strh r0, [r5, 0x22]
- ldrh r2, [r5, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- adds r1, 0x10
- ldr r4, =0x000003ff
- adds r0, r4, 0
- ands r1, r0
- ldr r0, =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r5, 0x4]
- movs r1, 0x4
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _0815AB2C
- ldrb r1, [r5, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r1
- movs r1, 0x10
- orrs r0, r1
- strb r0, [r5, 0x3]
- ldr r0, =0x0000fff4
- strh r0, [r5, 0x24]
- movs r0, 0x2
- b _0815AB32
- .pool
-_0815AB2C:
- movs r0, 0xC
- strh r0, [r5, 0x24]
- ldr r0, =0x0000fffe
-_0815AB32:
- strh r0, [r5, 0x30]
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1, 0x8]
- strh r0, [r5, 0x2E]
- movs r2, 0x34
- ldrsh r0, [r5, r2]
- cmp r0, 0xFF
- beq _0815AB46
- ldrh r0, [r1, 0x4]
- strh r0, [r5, 0x34]
-_0815AB46:
- ldr r0, =sub_815AB5C
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815AAA4
-
- thumb_func_start sub_815AB5C
-sub_815AB5C: @ 815AB5C
- push {r4,lr}
- adds r4, r0, 0
- ldrh r2, [r4, 0x32]
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0815AB9A
- ldrh r0, [r4, 0x30]
- ldrh r1, [r4, 0x24]
- adds r0, r1
- strh r0, [r4, 0x24]
- lsls r0, 16
- cmp r0, 0
- bne _0815ABBA
- adds r0, r2, 0x1
- strh r0, [r4, 0x32]
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0815ABBA
- movs r0, 0x40
- negs r0, r0
- bl BattleAnimAdjustPanning
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0xDE
- bl PlaySE1WithPanning
- b _0815ABBA
-_0815AB9A:
- ldrh r0, [r4, 0x24]
- ldrh r1, [r4, 0x30]
- subs r0, r1
- strh r0, [r4, 0x24]
- movs r1, 0x24
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bge _0815ABAC
- negs r0, r0
-_0815ABAC:
- cmp r0, 0xC
- bne _0815ABBA
- ldrh r0, [r4, 0x2E]
- subs r0, 0x1
- strh r0, [r4, 0x2E]
- subs r0, r2, 0x1
- strh r0, [r4, 0x32]
-_0815ABBA:
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0815ABC8
- adds r0, r4, 0
- bl DestroyAnimSprite
-_0815ABC8:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_815AB5C
-
- thumb_func_start sub_815ABD0
-sub_815ABD0: @ 815ABD0
- push {lr}
- ldrb r2, [r0, 0x1]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- movs r2, 0x8
- orrs r1, r2
- strb r1, [r0, 0x1]
- movs r1, 0xFF
- strh r1, [r0, 0x34]
- bl sub_815AAA4
- pop {r0}
- bx r0
- thumb_func_end sub_815ABD0
-
- thumb_func_start sub_815ABEC
-sub_815ABEC: @ 815ABEC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _0815AC40
- ldr r1, =0x00001f3f
- movs r0, 0x48
- bl SetGpuReg
- ldr r1, =gBattle_WIN1H
- ldr r2, =0x000098f0
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, =gBattle_WIN1V
- movs r0, 0xA0
- strh r0, [r1]
- ldr r0, =gBattle_WIN0H
- ldrh r1, [r0]
- movs r0, 0x42
- bl SetGpuReg
- ldr r0, =gBattle_WIN0V
- ldrh r1, [r0]
- movs r0, 0x46
- bl SetGpuReg
- b _0815AC70
- .pool
-_0815AC40:
- ldr r1, =0x00001f3f
- movs r0, 0x48
- bl SetGpuReg
- ldr r1, =gBattle_WIN1H
- movs r0, 0xF0
- strh r0, [r1]
- ldr r4, =gBattle_WIN1V
- ldr r1, =0x000078a0
- adds r0, r1, 0
- strh r0, [r4]
- movs r0, 0x42
- movs r1, 0xF0
- bl SetGpuReg
- ldrh r1, [r4]
- movs r0, 0x46
- bl SetGpuReg
- movs r1, 0x80
- lsls r1, 7
- movs r0, 0
- bl SetGpuRegBits
-_0815AC70:
- adds r0, r5, 0
- bl DestroyAnimVisualTask
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815ABEC
-
- thumb_func_start sub_815AC8C
-sub_815AC8C: @ 815AC8C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, =0x00003f3f
- movs r0, 0x48
- bl SetGpuReg
- ldr r0, =gBattle_WIN1H
- movs r1, 0
- strh r1, [r0]
- ldr r0, =gBattle_WIN1V
- strh r1, [r0]
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _0815ACB8
- movs r1, 0x80
- lsls r1, 7
- movs r0, 0
- bl ClearGpuRegBits
-_0815ACB8:
- adds r0, r4, 0
- bl DestroyAnimVisualTask
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815AC8C
-
- thumb_func_start sub_815ACD0
-sub_815ACD0: @ 815ACD0
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r6, =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _0815ACEC
- ldr r4, =gBattleAnimAttacker
- b _0815ACEE
- .pool
-_0815ACEC:
- ldr r4, =gBattleAnimTarget
-_0815ACEE:
- ldrb r0, [r4]
- movs r1, 0
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r6, [r6, 0x2]
- adds r0, r6
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x1
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r2, =gBattleAnimArgs
- ldrh r0, [r2, 0x4]
- strh r0, [r5, 0x26]
- movs r3, 0
- lsls r0, 16
- asrs r0, 16
- ldrh r4, [r2, 0x6]
- movs r6, 0x6
- ldrsh r1, [r2, r6]
- cmp r0, r1
- ble _0815AD26
- movs r3, 0x1
-_0815AD26:
- strh r3, [r5, 0x2E]
- movs r0, 0
- strh r0, [r5, 0x30]
- ldrh r0, [r2, 0x8]
- strh r0, [r5, 0x32]
- ldrh r0, [r2, 0xA]
- strh r0, [r5, 0x34]
- strh r4, [r5, 0x36]
- ldr r0, =sub_815AD4C
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815ACD0
-
- thumb_func_start sub_815AD4C
-sub_815AD4C: @ 815AD4C
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x32]
- ldrh r1, [r2, 0x30]
- adds r0, r1
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r2, 0x30]
- ldr r1, =gSineTable
- movs r3, 0x30
- ldrsh r0, [r2, r3]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- lsls r0, 16
- asrs r0, 20
- strh r0, [r2, 0x24]
- ldrh r0, [r2, 0x34]
- ldrh r3, [r2, 0x26]
- adds r1, r0, r3
- strh r1, [r2, 0x26]
- movs r3, 0x2E
- ldrsh r0, [r2, r3]
- cmp r0, 0
- beq _0815AD98
- lsls r0, r1, 16
- asrs r0, 16
- movs r3, 0x36
- ldrsh r1, [r2, r3]
- cmp r0, r1
- bge _0815ADAA
- adds r0, r2, 0
- bl DestroyAnimSprite
- b _0815ADAA
- .pool
-_0815AD98:
- lsls r0, r1, 16
- asrs r0, 16
- movs r3, 0x36
- ldrsh r1, [r2, r3]
- cmp r0, r1
- ble _0815ADAA
- adds r0, r2, 0
- bl DestroyAnimSprite
-_0815ADAA:
- pop {r0}
- bx r0
- thumb_func_end sub_815AD4C
-
- thumb_func_start sub_815ADB0
-sub_815ADB0: @ 815ADB0
- push {r4-r7,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks
- adds r5, r1, r0
- ldr r0, =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _0815ADDC
- ldr r4, =gBattleAnimAttacker
- b _0815ADDE
- .pool
-_0815ADDC:
- ldr r4, =gBattleAnimTarget
-_0815ADDE:
- ldrb r0, [r4]
- bl GetBattlerYCoordWithElevation
- lsls r0, 24
- lsrs r6, r0, 24
- ldrb r0, [r4]
- bl sub_80A8364
- lsls r0, 24
- lsrs r7, r0, 24
- adds r0, r6, 0
- adds r1, r0, 0
- adds r1, 0x24
- movs r2, 0
- strh r1, [r5, 0x8]
- strh r1, [r5, 0xA]
- subs r0, 0x21
- strh r0, [r5, 0xC]
- cmp r0, 0
- bge _0815AE08
- strh r2, [r5, 0xC]
-_0815AE08:
- ldrh r0, [r5, 0x8]
- strh r0, [r5, 0xE]
- movs r0, 0x8
- strh r0, [r5, 0x10]
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1, 0x2]
- strh r0, [r5, 0x12]
- strh r2, [r5, 0x14]
- strh r2, [r5, 0x16]
- cmp r7, 0x1
- bne _0815AE30
- ldr r0, =gBattle_BG1_X
- b _0815AE32
- .pool
-_0815AE30:
- ldr r0, =gBattle_BG2_X
-_0815AE32:
- ldrh r2, [r0]
- strh r2, [r5, 0x18]
- adds r3, r2, 0
- adds r3, 0xF0
- strh r3, [r5, 0x1A]
- ldrh r0, [r1, 0x4]
- strh r0, [r5, 0x1C]
- movs r4, 0x4
- ldrsh r0, [r1, r4]
- cmp r0, 0
- bne _0815AE54
- strh r3, [r5, 0x1E]
- ldrh r3, [r5, 0x18]
- b _0815AE58
- .pool
-_0815AE54:
- strh r2, [r5, 0x1E]
- ldrh r3, [r5, 0x1A]
-_0815AE58:
- movs r0, 0
- strh r0, [r5, 0x26]
- ldrh r1, [r5, 0xC]
- lsls r2, r1, 16
- asrs r1, r2, 16
- movs r6, 0xE
- ldrsh r0, [r5, r6]
- cmp r1, r0
- bgt _0815AE8E
- ldr r4, =gScanlineEffectRegBuffers
- movs r0, 0xF0
- lsls r0, 3
- adds r0, r4
- mov r12, r0
-_0815AE74:
- asrs r2, 16
- lsls r1, r2, 1
- adds r0, r1, r4
- strh r3, [r0]
- add r1, r12
- strh r3, [r1]
- adds r2, 0x1
- lsls r2, 16
- asrs r1, r2, 16
- movs r6, 0xE
- ldrsh r0, [r5, r6]
- cmp r1, r0
- ble _0815AE74
-_0815AE8E:
- cmp r7, 0x1
- bne _0815AEA0
- ldr r0, =0x04000014
- b _0815AEA2
- .pool
-_0815AEA0:
- ldr r0, =0x04000018
-_0815AEA2:
- str r0, [sp]
- ldr r0, =0xa2600001
- str r0, [sp, 0x4]
- mov r1, sp
- movs r2, 0
- movs r0, 0x1
- strb r0, [r1, 0x8]
- mov r0, sp
- strb r2, [r0, 0x9]
- ldr r0, [sp]
- ldr r1, [sp, 0x4]
- ldr r2, [sp, 0x8]
- bl ScanlineEffect_SetParams
- ldr r0, =sub_815AED8
- str r0, [r5]
- add sp, 0xC
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815ADB0
-
- thumb_func_start sub_815AED8
-sub_815AED8: @ 815AED8
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- ldr r1, =gTasks
- adds r4, r0, r1
- ldrh r0, [r4, 0x8]
- ldrh r1, [r4, 0x12]
- subs r0, r1
- strh r0, [r4, 0x8]
- lsls r0, 16
- asrs r0, 16
- ldrh r2, [r4, 0xC]
- movs r3, 0xC
- ldrsh r1, [r4, r3]
- cmp r0, r1
- bge _0815AF00
- strh r2, [r4, 0x8]
-_0815AF00:
- ldrh r1, [r4, 0x10]
- movs r2, 0x10
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _0815AF2C
- ldrh r0, [r4, 0xA]
- ldrh r1, [r4, 0x12]
- subs r0, r1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- ldrh r2, [r4, 0xC]
- movs r3, 0xC
- ldrsh r1, [r4, r3]
- cmp r0, r1
- bge _0815AF30
- strh r2, [r4, 0xA]
- movs r0, 0x1
- strh r0, [r4, 0x26]
- b _0815AF30
- .pool
-_0815AF2C:
- subs r0, r1, 0x1
- strh r0, [r4, 0x10]
-_0815AF30:
- ldrh r0, [r4, 0x14]
- adds r0, 0x1
- strh r0, [r4, 0x14]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _0815AF5C
- movs r0, 0
- strh r0, [r4, 0x14]
- movs r1, 0
- movs r2, 0x16
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _0815AF4E
- movs r1, 0x1
-_0815AF4E:
- strh r1, [r4, 0x16]
- cmp r1, 0
- beq _0815AF58
- ldrh r0, [r4, 0x18]
- b _0815AF5A
-_0815AF58:
- ldrh r0, [r4, 0x1A]
-_0815AF5A:
- strh r0, [r4, 0x20]
-_0815AF5C:
- ldrh r1, [r4, 0x8]
- lsls r3, r1, 16
- asrs r1, r3, 16
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bge _0815AF90
- ldr r5, =gScanlineEffectRegBuffers
- movs r0, 0xF0
- lsls r0, 3
- adds r6, r5, r0
-_0815AF72:
- asrs r3, 16
- lsls r1, r3, 1
- adds r2, r1, r5
- ldrh r0, [r4, 0x20]
- strh r0, [r2]
- adds r1, r6
- ldrh r0, [r4, 0x20]
- strh r0, [r1]
- adds r3, 0x1
- lsls r3, 16
- asrs r1, r3, 16
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- cmp r1, r0
- blt _0815AF72
-_0815AF90:
- ldrh r1, [r4, 0xA]
- lsls r3, r1, 16
- asrs r1, r3, 16
- movs r2, 0xE
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bgt _0815AFC4
- ldr r5, =gScanlineEffectRegBuffers
- movs r0, 0xF0
- lsls r0, 3
- adds r6, r5, r0
-_0815AFA6:
- asrs r3, 16
- lsls r1, r3, 1
- adds r2, r1, r5
- ldrh r0, [r4, 0x1E]
- strh r0, [r2]
- adds r1, r6
- ldrh r0, [r4, 0x1E]
- strh r0, [r1]
- adds r3, 0x1
- lsls r3, 16
- asrs r1, r3, 16
- movs r2, 0xE
- ldrsh r0, [r4, r2]
- cmp r1, r0
- ble _0815AFA6
-_0815AFC4:
- movs r3, 0x26
- ldrsh r0, [r4, r3]
- cmp r0, 0
- beq _0815AFE0
- movs r1, 0x1C
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0815AFDA
- ldr r1, =gScanlineEffect
- movs r0, 0x3
- strb r0, [r1, 0x15]
-_0815AFDA:
- adds r0, r7, 0
- bl DestroyAnimVisualTask
-_0815AFE0:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815AED8
-
- thumb_func_start sub_815AFF0
-sub_815AFF0: @ 815AFF0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, =gTasks
- adds r4, r0
- movs r5, 0
- strh r5, [r4, 0x8]
- strh r5, [r4, 0xA]
- ldr r6, =gBattleAnimAttacker
- ldrb r0, [r6]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0xC]
- ldrb r0, [r6]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0xE]
- movs r0, 0x20
- strh r0, [r4, 0x10]
- ldr r0, =0x0000ffec
- strh r0, [r4, 0x12]
- strh r5, [r4, 0x14]
- movs r0, 0
- bl GetAnimBattlerSpriteId
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x26]
- ldr r0, =sub_815B054
- str r0, [r4]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815AFF0
-
- thumb_func_start sub_815B054
-sub_815B054: @ 815B054
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, =gTasks
- adds r6, r0, r1
- movs r1, 0x8
- ldrsh r0, [r6, r1]
- cmp r0, 0x5
- bls _0815B074
- b _0815B22E
-_0815B074:
- lsls r0, 2
- ldr r1, =_0815B088
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_0815B088:
- .4byte _0815B0A0
- .4byte _0815B160
- .4byte _0815B18E
- .4byte _0815B1A2
- .4byte _0815B1B8
- .4byte _0815B220
-_0815B0A0:
- movs r0, 0xC
- ldrsh r2, [r6, r0]
- ldrh r1, [r6, 0xA]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0815B0B6
- movs r1, 0x10
- ldrsh r0, [r6, r1]
- subs r0, r2, r0
- b _0815B0BC
-_0815B0B6:
- movs r1, 0x10
- ldrsh r0, [r6, r1]
- adds r0, r2, r0
-_0815B0BC:
- lsls r0, 16
- lsrs r1, r0, 16
- ldrh r2, [r6, 0x12]
- ldrh r0, [r6, 0xE]
- adds r2, r0
- ldr r0, =gUnknown_08593114
- lsls r1, 16
- asrs r1, 16
- lsls r2, 16
- asrs r2, 16
- ldrb r4, [r6, 0xA]
- movs r3, 0x6
- subs r3, r4
- lsls r3, 24
- lsrs r3, 24
- bl CreateSprite
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x40
- negs r0, r0
- bl BattleAnimAdjustPanning
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0xBA
- bl PlaySE12WithPanning
- cmp r4, 0x40
- beq _0815B120
- ldr r5, =gSprites
- lsls r1, r4, 4
- adds r1, r4
- lsls r1, 2
- adds r3, r1, r5
- ldrh r0, [r6, 0xA]
- movs r2, 0x1
- ands r2, r0
- adds r3, 0x3F
- ldrb r4, [r3]
- movs r0, 0x2
- negs r0, r0
- ands r0, r4
- orrs r0, r2
- strb r0, [r3]
- adds r5, 0x1C
- adds r1, r5
- ldr r0, =SpriteCallbackDummy
- str r0, [r1]
-_0815B120:
- ldrh r1, [r6, 0xA]
- movs r4, 0x1
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- beq _0815B138
- ldrh r0, [r6, 0x10]
- subs r0, 0x6
- strh r0, [r6, 0x10]
- ldrh r0, [r6, 0x12]
- subs r0, 0x6
- strh r0, [r6, 0x12]
-_0815B138:
- ldrh r1, [r6, 0x26]
- lsls r1, 24
- lsrs r1, 24
- ldr r2, =gUnknown_085CE2A0
- adds r0, r6, 0
- bl PrepareAffineAnimInTaskData
- ldrh r0, [r6, 0xA]
- adds r0, 0x1
- strh r0, [r6, 0xA]
- strh r4, [r6, 0x8]
- b _0815B22E
- .pool
-_0815B160:
- adds r0, r6, 0
- bl RunAffineAnimFromTaskData
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _0815B22E
- movs r2, 0xA
- ldrsh r1, [r6, r2]
- cmp r1, 0x6
- bne _0815B180
- movs r0, 0x8
- strh r0, [r6, 0x14]
- movs r0, 0x3
- strh r0, [r6, 0x8]
- b _0815B22E
-_0815B180:
- cmp r1, 0x2
- bgt _0815B186
- movs r0, 0xA
-_0815B186:
- strh r0, [r6, 0x14]
- movs r0, 0x2
- strh r0, [r6, 0x8]
- b _0815B22E
-_0815B18E:
- ldrh r0, [r6, 0x14]
- movs r2, 0x14
- ldrsh r1, [r6, r2]
- cmp r1, 0
- beq _0815B19E
- subs r0, 0x1
- strh r0, [r6, 0x14]
- b _0815B22E
-_0815B19E:
- strh r1, [r6, 0x8]
- b _0815B22E
-_0815B1A2:
- ldrh r1, [r6, 0x14]
- movs r2, 0x14
- ldrsh r0, [r6, r2]
- cmp r0, 0
- beq _0815B1B2
- subs r0, r1, 0x1
- strh r0, [r6, 0x14]
- b _0815B22E
-_0815B1B2:
- movs r0, 0x4
- strh r0, [r6, 0x8]
- b _0815B22E
-_0815B1B8:
- movs r5, 0
- movs r7, 0
- ldr r3, =gSprites
- movs r0, 0x1C
- adds r0, r3
- mov r8, r0
-_0815B1C4:
- lsls r0, r5, 4
- adds r0, r5
- lsls r4, r0, 2
- adds r0, r3, 0
- adds r0, 0x14
- adds r0, r4, r0
- ldr r1, [r0]
- ldr r0, =gUnknown_08593114
- cmp r1, r0
- bne _0815B200
- adds r0, r4, r3
- strh r2, [r0, 0x2E]
- movs r1, 0x6
- strh r1, [r0, 0x30]
- movs r1, 0x2
- str r2, [sp]
- str r3, [sp, 0x4]
- bl StartSpriteAnim
- mov r0, r8
- adds r1, r4, r0
- ldr r0, =sub_815B23C
- str r0, [r1]
- adds r0, r7, 0x1
- lsls r0, 16
- lsrs r7, r0, 16
- ldr r2, [sp]
- ldr r3, [sp, 0x4]
- cmp r7, 0x6
- beq _0815B20A
-_0815B200:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x3F
- bls _0815B1C4
-_0815B20A:
- strh r7, [r6, 0x14]
- movs r0, 0x5
- strh r0, [r6, 0x8]
- b _0815B22E
- .pool
-_0815B220:
- movs r1, 0x14
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _0815B22E
- adds r0, r2, 0
- bl DestroyAnimVisualTask
-_0815B22E:
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_815B054
-
- thumb_func_start sub_815B23C
-sub_815B23C: @ 815B23C
- push {r4,lr}
- adds r4, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0815B270
- ldr r3, =gTasks
- movs r0, 0x30
- ldrsh r1, [r4, r0]
- lsls r1, 1
- movs r0, 0x2E
- ldrsh r2, [r4, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r3, 0x8
- adds r1, r3
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- adds r0, r4, 0
- bl DestroySprite
-_0815B270:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815B23C
-
- thumb_func_start sub_815B27C
-sub_815B27C: @ 815B27C
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _0815B290
- adds r0, r5, 0
- movs r1, 0
- bl InitAnimSpritePos
-_0815B290:
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x27
- bgt _0815B2C2
- ldrh r0, [r5, 0x2E]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0815B2B4
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- b _0815B2C0
-_0815B2B4:
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
-_0815B2C0:
- strb r0, [r2]
-_0815B2C2:
- movs r2, 0x2E
- ldrsh r0, [r5, r2]
- cmp r0, 0x1E
- ble _0815B2D8
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_0815B2D8:
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0x3D
- bne _0815B324
- ldr r1, =DestroyAnimSprite
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- ldrh r0, [r5, 0x24]
- ldrh r2, [r5, 0x20]
- adds r0, r2
- movs r1, 0
- strh r0, [r5, 0x20]
- ldrh r0, [r5, 0x26]
- ldrh r2, [r5, 0x22]
- adds r0, r2
- strh r0, [r5, 0x22]
- strh r1, [r5, 0x24]
- strh r1, [r5, 0x26]
- movs r0, 0x14
- strh r0, [r5, 0x2E]
- ldr r4, =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- ldr r0, =StartAnimLinearTranslation
- str r0, [r5, 0x1C]
-_0815B324:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815B27C
-
- thumb_func_start sub_815B338
-sub_815B338: @ 815B338
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0815B35C
- cmp r0, 0x1
- beq _0815B37C
- b _0815B38E
- .pool
-_0815B35C:
- movs r0, 0
- bl GetAnimBattlerSpriteId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r2, =gUnknown_085CE350
- adds r0, r4, 0
- bl PrepareAffineAnimInTaskData
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0815B38E
- .pool
-_0815B37C:
- adds r0, r4, 0
- bl RunAffineAnimFromTaskData
- lsls r0, 24
- cmp r0, 0
- bne _0815B38E
- adds r0, r5, 0
- bl DestroyAnimVisualTask
-_0815B38E:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_815B338
-
- thumb_func_start sub_815B394
-sub_815B394: @ 815B394
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r0, 0
- bl GetAnimBattlerSpriteId
- lsls r0, 24
- lsrs r6, r0, 24
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _0815B3F4
- cmp r0, 0x1
- bgt _0815B3B4
- cmp r0, 0
- beq _0815B3BE
- b _0815B496
-_0815B3B4:
- cmp r0, 0x2
- beq _0815B424
- cmp r0, 0x3
- beq _0815B478
- b _0815B496
-_0815B3BE:
- ldr r4, =gBattleAnimAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- adds r0, r6, 0
- movs r1, 0
- bl PrepareBattlerSpriteForRotScale
- movs r0, 0x80
- lsls r0, 1
- strh r0, [r5, 0x30]
- strh r0, [r5, 0x32]
- b _0815B46C
- .pool
-_0815B3F4:
- ldrh r0, [r5, 0x30]
- adds r0, 0x60
- strh r0, [r5, 0x30]
- ldrh r0, [r5, 0x32]
- subs r0, 0x1A
- strh r0, [r5, 0x32]
- movs r2, 0x30
- ldrsh r1, [r5, r2]
- movs r0, 0x32
- ldrsh r2, [r5, r0]
- adds r0, r6, 0
- movs r3, 0
- bl SetSpriteRotScale
- ldrh r0, [r5, 0x34]
- adds r0, 0x1
- strh r0, [r5, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- bne _0815B424
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
-_0815B424:
- ldrh r0, [r5, 0x30]
- adds r0, 0x60
- strh r0, [r5, 0x30]
- ldrh r0, [r5, 0x32]
- adds r0, 0x30
- strh r0, [r5, 0x32]
- movs r2, 0x30
- ldrsh r1, [r5, r2]
- movs r0, 0x32
- ldrsh r2, [r5, r0]
- adds r0, r6, 0
- movs r3, 0
- bl SetSpriteRotScale
- ldrh r0, [r5, 0x34]
- adds r0, 0x1
- strh r0, [r5, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x9
- bne _0815B496
- movs r0, 0
- strh r0, [r5, 0x34]
- ldr r1, =gSprites
- lsls r0, r6, 4
- adds r0, r6
- lsls r0, 2
- adds r0, r1
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- adds r0, r6, 0
- bl ResetSpriteRotScale
-_0815B46C:
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- b _0815B496
- .pool
-_0815B478:
- ldrh r0, [r5, 0x26]
- subs r0, 0x6
- strh r0, [r5, 0x26]
- movs r1, 0x22
- ldrsh r0, [r5, r1]
- movs r2, 0x26
- ldrsh r1, [r5, r2]
- adds r0, r1
- movs r1, 0x20
- negs r1, r1
- cmp r0, r1
- bge _0815B496
- adds r0, r5, 0
- bl DestroyAnimSprite
-_0815B496:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_815B394
-
- thumb_func_start sub_815B49C
-sub_815B49C: @ 815B49C
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _0815B4BC
- ldr r0, =0x0000fff0
- b _0815B4C0
- .pool
-_0815B4BC:
- movs r0, 0x80
- lsls r0, 1
-_0815B4C0:
- strh r0, [r4, 0x20]
- movs r0, 0
- strh r0, [r4, 0x22]
- ldr r0, =sub_815B4D4
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815B49C
-
- thumb_func_start sub_815B4D4
-sub_815B4D4: @ 815B4D4
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x48
- strh r0, [r4, 0x2E]
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _0815B4F8
- ldrh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 20
- b _0815B500
- .pool
-_0815B4F8:
- ldrh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 20
- negs r0, r0
-_0815B500:
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x30]
- adds r0, 0x10
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 24
- ldrh r1, [r4, 0x26]
- adds r5, r0, r1
- strh r5, [r4, 0x26]
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x3
- bl __modsi3
- lsls r0, 16
- cmp r0, 0
- bne _0815B54C
- ldr r0, =gUnknown_085CE3A0
- ldrh r1, [r4, 0x24]
- ldrh r2, [r4, 0x20]
- adds r1, r2
- lsls r1, 16
- asrs r1, 16
- ldrh r2, [r4, 0x22]
- adds r2, r5
- lsls r2, 16
- asrs r2, 16
- adds r3, r4, 0
- adds r3, 0x43
- ldrb r3, [r3]
- adds r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- bl CreateSpriteAndAnimate
-_0815B54C:
- movs r1, 0x20
- ldrsh r0, [r4, r1]
- movs r2, 0x24
- ldrsh r1, [r4, r2]
- adds r0, r1
- adds r0, 0x20
- movs r1, 0x98
- lsls r1, 1
- cmp r0, r1
- bls _0815B566
- adds r0, r4, 0
- bl DestroyAnimSprite
-_0815B566:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815B4D4
-
- thumb_func_start sub_815B570
-sub_815B570: @ 815B570
- push {r4,lr}
- adds r4, r0, 0
- bl Random2
- movs r1, 0x3
- ands r0, r1
- cmp r0, 0
- bne _0815B58A
- ldrh r2, [r4, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- adds r1, 0x4
- b _0815B592
-_0815B58A:
- ldrh r2, [r4, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- adds r1, 0x5
-_0815B592:
- ldr r3, =0x000003ff
- adds r0, r3, 0
- ands r1, r0
- ldr r0, =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r4, 0x4]
- bl Random2
- movs r1, 0x7
- ands r0, r1
- adds r1, r0, 0
- cmp r1, 0x3
- ble _0815B5B4
- negs r0, r1
- lsls r0, 24
- lsrs r0, 24
-_0815B5B4:
- lsls r0, 24
- asrs r0, 24
- strh r0, [r4, 0x26]
- ldr r0, =sub_815B5D0
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815B570
-
- thumb_func_start sub_815B5D0
-sub_815B5D0: @ 815B5D0
- push {lr}
- adds r3, r0, 0
- ldrh r0, [r3, 0x2E]
- adds r0, 0x1
- strh r0, [r3, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1D
- bgt _0815B612
- ldrh r0, [r3, 0x30]
- adds r0, 0x1
- strh r0, [r3, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- bne _0815B646
- movs r0, 0x3E
- adds r0, r3
- mov r12, r0
- ldrb r2, [r0]
- lsls r0, r2, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- mov r1, r12
- strb r0, [r1]
- movs r0, 0
- b _0815B644
-_0815B612:
- movs r1, 0x30
- ldrsh r0, [r3, r1]
- cmp r0, 0x2
- bne _0815B628
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_0815B628:
- movs r1, 0x30
- ldrsh r0, [r3, r1]
- cmp r0, 0x3
- bne _0815B640
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, =0x0000ffff
- strh r0, [r3, 0x30]
-_0815B640:
- ldrh r0, [r3, 0x30]
- adds r0, 0x1
-_0815B644:
- strh r0, [r3, 0x30]
-_0815B646:
- movs r1, 0x2E
- ldrsh r0, [r3, r1]
- cmp r0, 0x3C
- ble _0815B654
- adds r0, r3, 0
- bl DestroySprite
-_0815B654:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815B5D0
-
- thumb_func_start sub_815B65C
-sub_815B65C: @ 815B65C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0815B69C
- movs r0, 0
- bl GetAnimBattlerSpriteId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r2, =gUnknown_085CE3B8
- adds r0, r4, 0
- bl PrepareAffineAnimInTaskData
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0815B6AE
- .pool
-_0815B69C:
- adds r0, r4, 0
- bl RunAffineAnimFromTaskData
- lsls r0, 24
- cmp r0, 0
- bne _0815B6AE
- adds r0, r5, 0
- bl DestroyAnimVisualTask
-_0815B6AE:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_815B65C
-
- thumb_func_start sub_815B6B4
-sub_815B6B4: @ 815B6B4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0815B6F4
- movs r0, 0
- bl GetAnimBattlerSpriteId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r2, =gUnknown_085CE3E0
- adds r0, r4, 0
- bl PrepareAffineAnimInTaskData
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0815B706
- .pool
-_0815B6F4:
- adds r0, r4, 0
- bl RunAffineAnimFromTaskData
- lsls r0, 24
- cmp r0, 0
- bne _0815B706
- adds r0, r5, 0
- bl DestroyAnimVisualTask
-_0815B706:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_815B6B4
-
- thumb_func_start sub_815B70C
-sub_815B70C: @ 815B70C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0815B71E
- cmp r0, 0x1
- beq _0815B748
- b _0815B770
-_0815B71E:
- adds r0, r4, 0
- movs r1, 0
- bl InitAnimSpritePos
- movs r0, 0x90
- lsls r0, 4
- strh r0, [r4, 0x30]
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _0815B770
- .pool
-_0815B748:
- ldrh r2, [r4, 0x30]
- lsls r1, r2, 16
- asrs r1, 24
- ldrh r0, [r4, 0x26]
- subs r0, r1
- strh r0, [r4, 0x26]
- subs r2, 0x60
- strh r2, [r4, 0x30]
- movs r2, 0x22
- ldrsh r0, [r4, r2]
- movs r2, 0x26
- ldrsh r1, [r4, r2]
- adds r0, r1
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- cmp r0, r1
- ble _0815B770
- adds r0, r4, 0
- bl DestroyAnimSprite
-_0815B770:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_815B70C
-
- thumb_func_start sub_815B778
-sub_815B778: @ 815B778
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0815B7B8
- movs r0, 0
- bl GetAnimBattlerSpriteId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r2, =gUnknown_085CE430
- adds r0, r4, 0
- bl PrepareAffineAnimInTaskData
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0815B7CA
- .pool
-_0815B7B8:
- adds r0, r4, 0
- bl RunAffineAnimFromTaskData
- lsls r0, 24
- cmp r0, 0
- bne _0815B7CA
- adds r0, r5, 0
- bl DestroyAnimVisualTask
-_0815B7CA:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_815B778
-
- thumb_func_start sub_815B7D0
-sub_815B7D0: @ 815B7D0
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r1, =gTasks
- lsls r0, 2
- add r0, r8
- lsls r0, 3
- adds r0, r1
- movs r2, 0x8
- ldrsh r0, [r0, r2]
- adds r3, r1, 0
- cmp r0, 0x4
- bls _0815B7F6
- b _0815BAFC
-_0815B7F6:
- lsls r0, 2
- ldr r1, =_0815B808
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_0815B808:
- .4byte _0815B81C
- .4byte _0815B86C
- .4byte _0815B8A8
- .4byte _0815BA44
- .4byte _0815BA82
-_0815B81C:
- movs r0, 0x4C
- movs r1, 0
- bl SetGpuReg
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl sub_80A8364
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0815B844
- movs r0, 0x1
- movs r1, 0x2
- movs r2, 0x1
- bl SetAnimBgAttribute
- b _0815B84E
- .pool
-_0815B844:
- movs r0, 0x2
- movs r1, 0x2
- movs r2, 0x1
- bl SetAnimBgAttribute
-_0815B84E:
- ldr r0, =gTasks
- mov r6, r8
- lsls r1, r6, 2
- add r1, r8
- lsls r1, 3
- adds r1, r0
- ldr r0, =gBattleAnimArgs
- ldrh r0, [r0]
- strh r0, [r1, 0x1C]
- b _0815BA26
- .pool
-_0815B86C:
- mov r1, r8
- lsls r0, r1, 2
- add r0, r8
- lsls r0, 3
- adds r4, r0, r3
- ldrh r0, [r4, 0xC]
- adds r1, r0, 0x1
- strh r1, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bgt _0815B886
- b _0815BAFC
-_0815B886:
- movs r0, 0
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- ldrh r5, [r4, 0xA]
- lsls r1, r5, 4
- orrs r1, r5
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x4C
- bl SetGpuReg
- cmp r5, 0xF
- beq _0815B8A6
- b _0815BAFC
-_0815B8A6:
- b _0815BA7A
-_0815B8A8:
- ldr r5, =gBattleAnimAttacker
- ldrb r0, [r5]
- ldr r1, =gBattleAnimTarget
- ldrb r1, [r1]
- mov r2, r8
- lsls r4, r2, 2
- adds r2, r4, r2
- lsls r2, 3
- adds r2, r3
- ldrb r2, [r2, 0x1C]
- bl HandleSpeciesGfxDataChange
- ldrb r1, [r5]
- mov r0, sp
- bl sub_80A6BFC
- bl IsContest
- lsls r0, 24
- mov r9, r4
- cmp r0, 0
- beq _0815B8E0
- movs r1, 0
- b _0815B8EA
- .pool
-_0815B8E0:
- ldrb r0, [r5]
- bl GetBattlerPosition
- lsls r0, 24
- lsrs r1, r0, 24
-_0815B8EA:
- ldr r0, =gMonSpritesGfxPtr
- ldr r2, [r0]
- lsls r0, r1, 2
- adds r2, 0x4
- adds r2, r0
- ldr r1, =gBattleMonForms
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- lsls r1, 11
- ldr r0, [r2]
- adds r0, r1
- ldr r1, [sp]
- ldr r2, =0x04000200
- bl CpuSet
- ldr r1, [sp]
- movs r2, 0x80
- lsls r2, 4
- mov r0, sp
- ldrh r3, [r0, 0xA]
- movs r0, 0x1
- bl LoadBgTiles
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _0815BA1C
- ldr r5, =gContestResources
- ldr r0, [r5]
- ldr r0, [r0, 0x18]
- ldrh r0, [r0]
- bl IsSpeciesNotUnown
- adds r4, r0, 0
- ldr r0, [r5]
- ldr r0, [r0, 0x18]
- ldrh r0, [r0, 0x2]
- bl IsSpeciesNotUnown
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- beq _0815B99C
- ldr r6, [sp, 0x4]
- movs r5, 0
- movs r0, 0x7
- mov r12, r0
- movs r7, 0
-_0815B950:
- movs r4, 0
- adds r3, r7, r6
- mov r1, r12
- lsls r0, r1, 1
- adds r2, r0, r6
-_0815B95A:
- ldrh r1, [r3]
- ldrh r0, [r2]
- strh r0, [r3]
- strh r1, [r2]
- adds r3, 0x2
- subs r2, 0x2
- adds r4, 0x1
- cmp r4, 0x3
- ble _0815B95A
- movs r2, 0x20
- add r12, r2
- adds r7, 0x40
- adds r5, 0x1
- cmp r5, 0x7
- ble _0815B950
- movs r5, 0
- movs r0, 0x80
- lsls r0, 3
- adds r3, r0, 0
-_0815B980:
- adds r2, r5, 0x1
- lsls r0, r5, 6
- adds r1, r0, r6
- movs r4, 0x7
-_0815B988:
- ldrh r0, [r1]
- eors r0, r3
- strh r0, [r1]
- adds r1, 0x2
- subs r4, 0x1
- cmp r4, 0
- bge _0815B988
- adds r5, r2, 0
- cmp r5, 0x7
- ble _0815B980
-_0815B99C:
- ldr r0, =gContestResources
- ldr r0, [r0]
- ldr r0, [r0, 0x18]
- ldrh r0, [r0, 0x2]
- bl IsSpeciesNotUnown
- lsls r0, 24
- cmp r0, 0
- beq _0815B9EC
- ldr r3, =gSprites
- ldr r4, =gBattlerSpriteIds
- ldr r2, =gBattleAnimAttacker
- ldrb r0, [r2]
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r3, 0
- adds r1, 0x10
- adds r0, r1
- ldr r1, =gUnknown_082FF6C0
- b _0815BA06
- .pool
-_0815B9EC:
- ldr r3, =gSprites
- ldr r4, =gBattlerSpriteIds
- ldr r2, =gBattleAnimAttacker
- ldrb r0, [r2]
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r3, 0
- adds r1, 0x10
- adds r0, r1
- ldr r1, =gUnknown_082FF694
-_0815BA06:
- str r1, [r0]
- ldrb r0, [r2]
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r1, 0
- bl StartSpriteAffineAnim
-_0815BA1C:
- ldr r0, =gTasks
- mov r1, r9
- add r1, r8
- lsls r1, 3
- adds r1, r0
-_0815BA26:
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- b _0815BAFC
- .pool
-_0815BA44:
- mov r1, r8
- lsls r0, r1, 2
- add r0, r8
- lsls r0, 3
- adds r4, r0, r3
- ldrh r0, [r4, 0xC]
- adds r1, r0, 0x1
- strh r1, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _0815BAFC
- movs r0, 0
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0xA]
- subs r0, 0x1
- strh r0, [r4, 0xA]
- ldrh r5, [r4, 0xA]
- lsls r1, r5, 4
- orrs r1, r5
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x4C
- bl SetGpuReg
- cmp r5, 0
- bne _0815BAFC
-_0815BA7A:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0815BAFC
-_0815BA82:
- movs r0, 0x4C
- movs r1, 0
- bl SetGpuReg
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl sub_80A8364
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0815BAAC
- movs r0, 0x1
- movs r1, 0x2
- movs r2, 0
- bl SetAnimBgAttribute
- b _0815BAB6
- .pool
-_0815BAAC:
- movs r0, 0x2
- movs r1, 0x2
- movs r2, 0
- bl SetAnimBgAttribute
-_0815BAB6:
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _0815BAF6
- ldr r4, =gBattleAnimAttacker
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0815BAF6
- ldr r0, =gTasks
- mov r2, r8
- lsls r1, r2, 2
- add r1, r8
- lsls r1, 3
- adds r1, r0
- movs r6, 0x1C
- ldrsh r0, [r1, r6]
- cmp r0, 0
- bne _0815BAF6
- ldrb r0, [r4]
- ldr r1, =gBattleSpritesDataPtr
- ldr r1, [r1]
- ldr r2, [r1]
- lsls r1, r0, 2
- adds r1, r2
- ldrh r1, [r1, 0x2]
- bl SetBattlerShadowSpriteCallback
-_0815BAF6:
- mov r0, r8
- bl DestroyAnimVisualTask
-_0815BAFC:
- add sp, 0x10
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815B7D0
-
- thumb_func_start sub_815BB18
-sub_815BB18: @ 815BB18
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r4, =gBattleAnimArgs
- ldr r3, =gSprites
- ldr r2, =gBattlerSpriteIds
- ldr r1, =gBattleAnimAttacker
- ldrb r1, [r1]
- adds r1, r2
- ldrb r2, [r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r3
- adds r1, 0x3E
- ldrb r1, [r1]
- lsls r1, 29
- lsrs r1, 31
- strh r1, [r4, 0xE]
- bl DestroyAnimVisualTask
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815BB18
-
- thumb_func_start sub_815BB58
-sub_815BB58: @ 815BB58
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- ldr r1, =gBattleAnimTarget
- ldrb r1, [r1]
- movs r2, 0x1
- bl HandleSpeciesGfxDataChange
- adds r0, r4, 0
- bl DestroyAnimVisualTask
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815BB58
-
- thumb_func_start sub_815BB84
-sub_815BB84: @ 815BB84
- push {r4,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r2, 0x8
- ldrsh r0, [r0, r2]
- adds r2, r1, 0
- cmp r0, 0x4
- bls _0815BBA2
- b _0815BDF2
-_0815BBA2:
- lsls r0, 2
- ldr r1, =_0815BBB4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_0815BBB4:
- .4byte _0815BBC8
- .4byte _0815BCB8
- .4byte _0815BD08
- .4byte _0815BD72
- .4byte _0815BDA6
-_0815BBC8:
- ldr r1, =0x00003f42
- movs r0, 0x50
- bl SetGpuReg
- movs r1, 0x80
- lsls r1, 5
- movs r0, 0x52
- bl SetGpuReg
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- bl SetAnimBgAttribute
- movs r0, 0x1
- movs r1, 0x4
- movs r2, 0x1
- bl SetAnimBgAttribute
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _0815BC02
- movs r0, 0x1
- movs r1, 0x3
- movs r2, 0x1
- bl SetAnimBgAttribute
-_0815BC02:
- mov r0, sp
- bl sub_80A6B30
- ldr r1, =gUnknown_08C2A6EC
- mov r0, sp
- movs r2, 0
- bl sub_80A6D60
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _0815BC34
- ldr r1, =gBattle_BG1_X
- ldr r3, =0x0000ffc8
- b _0815BC5C
- .pool
-_0815BC34:
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _0815BC58
- ldr r1, =gBattle_BG1_X
- ldr r2, =0x0000ff79
- adds r0, r2, 0
- b _0815BC5E
- .pool
-_0815BC58:
- ldr r1, =gBattle_BG1_X
- ldr r3, =0x0000fff6
-_0815BC5C:
- adds r0, r3, 0
-_0815BC5E:
- strh r0, [r1]
- ldr r1, =gBattle_BG1_Y
- movs r0, 0
- strh r0, [r1]
- mov r0, sp
- ldrb r0, [r0, 0x9]
- ldr r1, =gUnknown_08C2A634
- mov r2, sp
- ldrh r2, [r2, 0xA]
- bl sub_80A6CC0
- ldr r0, =gUnknown_08C2A6D4
- mov r1, sp
- ldrb r1, [r1, 0x8]
- lsls r1, 4
- movs r2, 0x20
- bl LoadCompressedPalette
- ldr r0, =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, =gBattle_BG1_X
- ldrh r0, [r0]
- strh r0, [r1, 0x1C]
- ldr r0, =gBattle_BG1_Y
- ldrh r0, [r0]
- strh r0, [r1, 0x1E]
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- b _0815BD8E
- .pool
-_0815BCB8:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r4, r0, r2
- ldrh r0, [r4, 0x10]
- adds r1, r0, 0x1
- strh r1, [r4, 0x10]
- lsls r0, 16
- cmp r0, 0
- bgt _0815BCCE
- b _0815BDF2
-_0815BCCE:
- movs r0, 0
- strh r0, [r4, 0x10]
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xC
- ble _0815BCE4
- movs r0, 0xC
- strh r0, [r4, 0xA]
-_0815BCE4:
- ldrh r0, [r4, 0xA]
- movs r1, 0x10
- subs r1, r0
- lsls r1, 8
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0xC
- bne _0815BDF2
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0815BDF2
-_0815BD08:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r4, r0, r2
- ldrh r0, [r4, 0xA]
- subs r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- cmp r0, 0
- bge _0815BD20
- movs r0, 0
- strh r0, [r4, 0xA]
-_0815BD20:
- ldrh r0, [r4, 0xA]
- movs r1, 0x10
- subs r1, r0
- lsls r1, 8
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _0815BDF2
- ldr r2, =gBattle_BG1_X
- ldr r1, =gUnknown_085CE460
- movs r3, 0xC
- ldrsh r0, [r4, r3]
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- ldrh r1, [r4, 0x1C]
- adds r0, r1
- strh r0, [r2]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bne _0815BD6C
- strh r0, [r4, 0x8]
- b _0815BDF2
- .pool
-_0815BD6C:
- movs r0, 0x3
- strh r0, [r4, 0x8]
- b _0815BDF2
-_0815BD72:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r1, r0, r2
- ldrh r0, [r1, 0xE]
- adds r0, 0x1
- strh r0, [r1, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bne _0815BDF2
- movs r0, 0
- strh r0, [r1, 0xE]
- movs r0, 0x1
-_0815BD8E:
- strh r0, [r1, 0x8]
- movs r0, 0x40
- negs r0, r0
- bl BattleAnimAdjustPanning
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0xE4
- bl PlaySE12WithPanning
- b _0815BDF2
-_0815BDA6:
- mov r0, sp
- bl sub_80A6B30
- mov r0, sp
- ldrb r0, [r0, 0x9]
- bl sub_80A6C68
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _0815BDC8
- movs r0, 0x1
- movs r1, 0x3
- movs r2, 0
- bl SetAnimBgAttribute
-_0815BDC8:
- movs r0, 0x1
- movs r1, 0x4
- movs r2, 0x1
- bl SetAnimBgAttribute
- ldr r0, =gBattle_BG1_X
- movs r1, 0
- strh r1, [r0]
- ldr r0, =gBattle_BG1_Y
- strh r1, [r0]
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
- adds r0, r4, 0
- bl DestroyAnimVisualTask
-_0815BDF2:
- add sp, 0x10
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815BB84
-
- thumb_func_start sub_815BE04
-sub_815BE04: @ 815BE04
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- adds r7, r0, 0
- bl Random2
- lsls r0, 16
- movs r1, 0xFC
- lsls r1, 14
- ands r1, r0
- lsrs r5, r1, 16
- adds r1, r5, 0
- cmp r1, 0x1F
- ble _0815BE2E
- movs r0, 0x20
- subs r0, r1
- lsls r0, 16
- lsrs r5, r0, 16
-_0815BE2E:
- ldr r4, =gBattleAnimAttacker
- ldrb r0, [r4]
- movs r1, 0
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- adds r0, r5
- strh r0, [r7, 0x20]
- ldrb r0, [r4]
- movs r1, 0x1
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x20
- strh r0, [r7, 0x22]
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1]
- strh r0, [r7, 0x30]
- ldrh r0, [r1, 0x2]
- strh r0, [r7, 0x32]
- ldr r4, =gUnknown_085CE48C
- movs r0, 0x20
- ldrsh r1, [r7, r0]
- movs r0, 0x22
- ldrsh r2, [r7, r0]
- adds r5, r7, 0
- adds r5, 0x43
- ldrb r3, [r5]
- adds r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- bl CreateSprite
- mov r9, r0
- mov r1, r9
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- movs r0, 0x20
- ldrsh r1, [r7, r0]
- movs r0, 0x22
- ldrsh r2, [r7, r0]
- ldrb r3, [r5]
- adds r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- bl CreateSprite
- mov r8, r0
- mov r1, r8
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- mov r0, r9
- lsls r2, r0, 4
- add r2, r9
- lsls r2, 2
- ldr r1, =gSprites
- mov r10, r1
- adds r5, r2, r1
- adds r0, r5, 0
- movs r1, 0x1
- str r2, [sp]
- bl StartSpriteAnim
- mov r0, r8
- lsls r6, r0, 4
- add r6, r8
- lsls r6, 2
- mov r1, r10
- adds r4, r6, r1
- adds r0, r4, 0
- movs r1, 0x2
- bl StartSpriteAnim
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1]
- strh r0, [r5, 0x30]
- ldrh r0, [r1, 0x2]
- strh r0, [r5, 0x32]
- ldrh r0, [r1]
- strh r0, [r4, 0x30]
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0x32]
- ldr r0, =0x0000ffff
- strh r0, [r5, 0x3C]
- movs r0, 0x1
- negs r0, r0
- strh r0, [r4, 0x3C]
- adds r5, 0x3E
- ldrb r0, [r5]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r5]
- adds r4, 0x3E
- ldrb r0, [r4]
- orrs r0, r1
- strb r0, [r4]
- movs r0, 0x1C
- add r10, r0
- ldr r2, [sp]
- add r2, r10
- ldr r0, =sub_815C050
- str r0, [r2]
- add r6, r10
- str r0, [r6]
- mov r1, r9
- strh r1, [r7, 0x3A]
- mov r0, r8
- strh r0, [r7, 0x3C]
- ldr r0, =sub_815BF44
- str r0, [r7, 0x1C]
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815BE04
-
- thumb_func_start sub_815BF44
-sub_815BF44: @ 815BF44
- push {lr}
- adds r3, r0, 0
- ldrh r2, [r3, 0x32]
- ldrh r0, [r3, 0x34]
- adds r2, r0
- lsls r0, r2, 16
- asrs r0, 24
- ldrh r1, [r3, 0x26]
- subs r1, r0
- strh r1, [r3, 0x26]
- movs r0, 0xFF
- ands r2, r0
- strh r2, [r3, 0x34]
- movs r2, 0x36
- ldrsh r0, [r3, r2]
- cmp r0, 0
- bne _0815BF92
- lsls r0, r1, 16
- asrs r0, 16
- movs r1, 0x8
- negs r1, r1
- cmp r0, r1
- bge _0815BF92
- ldr r2, =gSprites
- movs r0, 0x3A
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- ldrh r0, [r3, 0x36]
- adds r0, 0x1
- strh r0, [r3, 0x36]
-_0815BF92:
- movs r1, 0x36
- ldrsh r0, [r3, r1]
- cmp r0, 0x1
- bne _0815BFC6
- movs r2, 0x26
- ldrsh r1, [r3, r2]
- movs r0, 0x10
- negs r0, r0
- cmp r1, r0
- bge _0815BFC6
- ldr r2, =gSprites
- movs r0, 0x3C
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- ldrh r0, [r3, 0x36]
- adds r0, 0x1
- strh r0, [r3, 0x36]
-_0815BFC6:
- ldrh r0, [r3, 0x30]
- subs r0, 0x1
- strh r0, [r3, 0x30]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _0815BFE8
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, =sub_815BFF4
- str r0, [r3, 0x1C]
-_0815BFE8:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815BF44
-
- thumb_func_start sub_815BFF4
-sub_815BFF4: @ 815BFF4
- push {r4-r6,lr}
- adds r4, r0, 0
- ldr r5, =gSprites
- movs r0, 0x3A
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r3, r0, 2
- adds r6, r5, 0
- adds r6, 0x1C
- adds r0, r3, r6
- ldr r2, [r0]
- ldr r0, =SpriteCallbackDummy
- cmp r2, r0
- bne _0815C040
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- ldr r0, [r1]
- cmp r0, r2
- bne _0815C040
- adds r0, r3, r5
- bl DestroySprite
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- bl DestroySprite
- adds r0, r4, 0
- bl DestroyAnimSprite
-_0815C040:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815BFF4
-
- thumb_func_start sub_815C050
-sub_815C050: @ 815C050
- push {lr}
- adds r3, r0, 0
- movs r0, 0x3E
- adds r0, r3
- mov r12, r0
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- bne _0815C09C
- ldrh r2, [r3, 0x32]
- ldrh r1, [r3, 0x34]
- adds r2, r1
- lsls r1, r2, 16
- asrs r1, 24
- ldrh r0, [r3, 0x26]
- subs r0, r1
- strh r0, [r3, 0x26]
- movs r0, 0xFF
- ands r2, r0
- strh r2, [r3, 0x34]
- ldrh r0, [r3, 0x30]
- subs r0, 0x1
- strh r0, [r3, 0x30]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _0815C09C
- mov r1, r12
- ldrb r0, [r1]
- movs r1, 0x4
- orrs r0, r1
- mov r1, r12
- strb r0, [r1]
- ldr r0, =SpriteCallbackDummy
- str r0, [r3, 0x1C]
-_0815C09C:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815C050
-
- thumb_func_start sub_815C0A4
-sub_815C0A4: @ 815C0A4
- push {r4-r6,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- movs r2, 0x8
- ldrsh r0, [r0, r2]
- adds r4, r1, 0
- cmp r0, 0x5
- bls _0815C0C2
- b _0815C396
-_0815C0C2:
- lsls r0, 2
- ldr r1, =_0815C0D4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_0815C0D4:
- .4byte _0815C0EC
- .4byte _0815C224
- .4byte _0815C2AC
- .4byte _0815C2E2
- .4byte _0815C310
- .4byte _0815C34A
-_0815C0EC:
- ldr r1, =0x00003f42
- movs r0, 0x50
- bl SetGpuReg
- ldr r1, =0x00000d03
- movs r0, 0x52
- bl SetGpuReg
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- bl SetAnimBgAttribute
- movs r0, 0x1
- movs r1, 0x4
- movs r2, 0x1
- bl SetAnimBgAttribute
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _0815C124
- movs r0, 0x1
- movs r1, 0x3
- movs r2, 0x1
- bl SetAnimBgAttribute
-_0815C124:
- mov r0, sp
- bl sub_80A6B30
- ldr r1, =gUnknown_08C2A6EC
- mov r0, sp
- movs r2, 0
- bl sub_80A6D60
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _0815C15C
- ldr r1, =gBattle_BG1_X
- ldr r3, =0x0000ffc8
- adds r0, r3, 0
- b _0815C1CA
- .pool
-_0815C15C:
- ldr r0, =gBattleAnimTarget
- ldrb r0, [r0]
- bl GetBattlerPosition
- lsls r0, 24
- lsrs r4, r0, 24
- bl IsDoubleBattle
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0815C1B4
- cmp r4, 0x1
- bne _0815C180
- ldr r1, =gBattle_BG1_X
- ldr r2, =0x0000ff65
- adds r0, r2, 0
- strh r0, [r1]
-_0815C180:
- cmp r4, 0x3
- bne _0815C18C
- ldr r1, =gBattle_BG1_X
- ldr r3, =0x0000ff8d
- adds r0, r3, 0
- strh r0, [r1]
-_0815C18C:
- cmp r4, 0
- bne _0815C196
- ldr r1, =gBattle_BG1_X
- movs r0, 0xE
- strh r0, [r1]
-_0815C196:
- cmp r4, 0x2
- bne _0815C1CC
- ldr r1, =gBattle_BG1_X
- ldr r2, =0x0000ffec
- b _0815C1C8
- .pool
-_0815C1B4:
- cmp r4, 0x1
- bne _0815C1C0
- ldr r1, =gBattle_BG1_X
- ldr r3, =0x0000ff79
- adds r0, r3, 0
- strh r0, [r1]
-_0815C1C0:
- cmp r4, 0
- bne _0815C1CC
- ldr r1, =gBattle_BG1_X
- ldr r2, =0x0000fff6
-_0815C1C8:
- adds r0, r2, 0
-_0815C1CA:
- strh r0, [r1]
-_0815C1CC:
- ldr r1, =gBattle_BG1_Y
- movs r0, 0
- strh r0, [r1]
- mov r0, sp
- ldrb r0, [r0, 0x9]
- ldr r1, =gUnknown_08C2A634
- mov r2, sp
- ldrh r2, [r2, 0xA]
- bl sub_80A6CC0
- ldr r0, =gUnknown_08C2A6D4
- mov r1, sp
- ldrb r1, [r1, 0x8]
- lsls r1, 4
- movs r2, 0x20
- bl LoadCompressedPalette
- ldr r0, =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- ldr r0, =gBattle_BG1_X
- ldrh r0, [r0]
- strh r0, [r1, 0x1C]
- ldr r0, =gBattle_BG1_Y
- ldrh r0, [r0]
- strh r0, [r1, 0x1E]
- b _0815C2A4
- .pool
-_0815C224:
- ldr r1, =gTasks
- lsls r4, r6, 2
- adds r0, r4, r6
- lsls r0, 3
- adds r5, r0, r1
- movs r0, 0
- strh r0, [r5, 0xE]
- ldr r0, =gBattleAnimTarget
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0815C268
- ldr r2, =gBattle_BG1_X
- ldr r1, =gUnknown_085CE4A4
- movs r3, 0xC
- ldrsh r0, [r5, r3]
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- ldrh r5, [r5, 0x1C]
- adds r0, r5
- b _0815C27A
- .pool
-_0815C268:
- ldr r2, =gBattle_BG1_X
- ldr r1, =gUnknown_085CE4A4
- movs r3, 0xC
- ldrsh r0, [r5, r3]
- adds r0, r1
- movs r1, 0
- ldrsb r1, [r0, r1]
- ldrh r0, [r5, 0x1C]
- subs r0, r1
-_0815C27A:
- strh r0, [r2]
- ldr r0, =gTasks
- adds r1, r4, r6
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0xC]
- adds r0, 0x1
- strh r0, [r1, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- bne _0815C2A4
- strh r0, [r1, 0x8]
- b _0815C396
- .pool
-_0815C2A4:
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- b _0815C396
-_0815C2AC:
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r4, r0, r4
- ldrh r0, [r4, 0xA]
- subs r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bgt _0815C2C6
- movs r0, 0x5
- strh r0, [r4, 0xA]
-_0815C2C6:
- ldrh r1, [r4, 0xA]
- lsls r1, 8
- movs r0, 0x3
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0x5
- bne _0815C396
- b _0815C302
-_0815C2E2:
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r4, r0, r4
- ldrh r1, [r4, 0xE]
- adds r1, 0x1
- strh r1, [r4, 0xE]
- lsls r1, 16
- asrs r1, 16
- ldr r2, =gUnknown_085CE4A8
- movs r3, 0xC
- ldrsh r0, [r4, r3]
- adds r0, r2
- ldrb r0, [r0]
- cmp r1, r0
- ble _0815C396
-_0815C302:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0815C396
- .pool
-_0815C310:
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r4, r0, r4
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xD
- ble _0815C32A
- movs r0, 0xD
- strh r0, [r4, 0xA]
-_0815C32A:
- ldrh r1, [r4, 0xA]
- lsls r1, 8
- movs r0, 0x3
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0xD
- bne _0815C396
- movs r0, 0x1
- strh r0, [r4, 0x8]
- b _0815C396
-_0815C34A:
- mov r0, sp
- bl sub_80A6B30
- mov r0, sp
- ldrb r0, [r0, 0x9]
- bl sub_80A6C68
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _0815C36C
- movs r0, 0x1
- movs r1, 0x3
- movs r2, 0
- bl SetAnimBgAttribute
-_0815C36C:
- movs r0, 0x1
- movs r1, 0x4
- movs r2, 0x1
- bl SetAnimBgAttribute
- ldr r0, =gBattle_BG1_X
- movs r1, 0
- strh r1, [r0]
- ldr r0, =gBattle_BG1_Y
- strh r1, [r0]
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
- adds r0, r6, 0
- bl DestroyAnimVisualTask
-_0815C396:
- add sp, 0x10
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815C0A4
-
- thumb_func_start sub_815C3A8
-sub_815C3A8: @ 815C3A8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0815C3E8
- movs r0, 0
- bl GetAnimBattlerSpriteId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r2, =gUnknown_085CE4B0
- adds r0, r4, 0
- bl PrepareAffineAnimInTaskData
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0815C3FA
- .pool
-_0815C3E8:
- adds r0, r4, 0
- bl RunAffineAnimFromTaskData
- lsls r0, 24
- cmp r0, 0
- bne _0815C3FA
- adds r0, r5, 0
- bl DestroyAnimVisualTask
-_0815C3FA:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_815C3A8
-
- thumb_func_start sub_815C400
-sub_815C400: @ 815C400
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- movs r2, 0x2E
- ldrsh r1, [r4, r2]
- cmp r1, 0
- bne _0815C41E
- adds r0, r4, 0
- movs r1, 0
- bl InitAnimSpritePos
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _0815C472
-_0815C41E:
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- cmp r1, 0x14
- ble _0815C472
- ldrh r0, [r4, 0x30]
- adds r0, 0xA0
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x32]
- adds r0, 0x80
- strh r0, [r4, 0x32]
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _0815C450
- ldrh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 24
- negs r0, r0
- b _0815C456
- .pool
-_0815C450:
- ldrh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 24
-_0815C456:
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 24
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x40
- ble _0815C472
- adds r0, r4, 0
- bl DestroyAnimSprite
-_0815C472:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_815C400
-
- thumb_func_start sub_815C478
-sub_815C478: @ 815C478
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, =gTasks
- adds r4, r0, r1
- ldr r5, =gBattleAnimArgs
- movs r1, 0x2
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _0815C4A4
- adds r0, r2, 0
- bl DestroyAnimVisualTask
- b _0815C538
- .pool
-_0815C4A4:
- movs r1, 0x4
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bge _0815C4B0
- movs r0, 0
- strh r0, [r5, 0x4]
-_0815C4B0:
- movs r1, 0x4
- ldrsh r0, [r5, r1]
- cmp r0, 0x2
- ble _0815C4BC
- movs r0, 0x2
- strh r0, [r5, 0x4]
-_0815C4BC:
- movs r0, 0
- strh r0, [r4, 0x8]
- strh r0, [r4, 0xA]
- strh r0, [r4, 0xC]
- movs r0, 0x4
- ldrsh r1, [r5, r0]
- lsls r1, 1
- movs r0, 0x8
- subs r0, r1
- strh r0, [r4, 0xE]
- movs r1, 0x4
- ldrsh r0, [r5, r1]
- lsls r0, 7
- movs r1, 0x80
- lsls r1, 1
- adds r0, r1
- strh r0, [r4, 0x10]
- ldrh r0, [r5, 0x4]
- adds r0, 0x2
- strh r0, [r4, 0x12]
- ldrh r0, [r5, 0x2]
- subs r0, 0x1
- strh r0, [r4, 0x14]
- ldrb r0, [r5]
- bl GetAnimBattlerSpriteId
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x26]
- movs r1, 0
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _0815C508
- ldr r0, =gBattleAnimAttacker
- b _0815C50A
- .pool
-_0815C508:
- ldr r0, =gBattleAnimTarget
-_0815C50A:
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0815C528
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- negs r0, r0
- strh r0, [r4, 0x10]
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- negs r0, r0
- strh r0, [r4, 0x12]
-_0815C528:
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl PrepareBattlerSpriteForRotScale
- ldr r0, =sub_815C548
- str r0, [r4]
-_0815C538:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815C478
-
- thumb_func_start sub_815C548
-sub_815C548: @ 815C548
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, =gTasks
- adds r4, r0, r1
- movs r0, 0x8
- ldrsh r6, [r4, r0]
- cmp r6, 0x1
- beq _0815C5D0
- cmp r6, 0x1
- bgt _0815C570
- cmp r6, 0
- beq _0815C57C
- b _0815C6A8
- .pool
-_0815C570:
- cmp r6, 0x2
- beq _0815C628
- cmp r6, 0x3
- bne _0815C57A
- b _0815C698
-_0815C57A:
- b _0815C6A8
-_0815C57C:
- ldr r2, =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r4, 0x12]
- ldrh r2, [r0, 0x24]
- adds r1, r2
- strh r1, [r0, 0x24]
- ldrh r0, [r4, 0xC]
- ldrh r1, [r4, 0x10]
- subs r0, r1
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0x80
- lsls r2, 1
- ldrh r3, [r4, 0xC]
- adds r1, r2, 0
- bl SetSpriteRotScale
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- bl SetBattlerSpriteYOffsetFromRotation
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0xE
- ldrsh r1, [r4, r2]
- cmp r0, r1
- blt _0815C6A8
- strh r6, [r4, 0xA]
- b _0815C690
- .pool
-_0815C5D0:
- ldr r2, =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x24]
- ldrh r2, [r4, 0x12]
- subs r1, r2
- strh r1, [r0, 0x24]
- ldrh r0, [r4, 0x10]
- ldrh r1, [r4, 0xC]
- adds r0, r1
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0x80
- lsls r2, 1
- ldrh r3, [r4, 0xC]
- adds r1, r2, 0
- bl SetSpriteRotScale
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- bl SetBattlerSpriteYOffsetFromRotation
- ldrh r1, [r4, 0xA]
- adds r1, 0x1
- strh r1, [r4, 0xA]
- lsls r1, 16
- asrs r1, 16
- movs r2, 0xE
- ldrsh r0, [r4, r2]
- lsls r0, 1
- cmp r1, r0
- blt _0815C6A8
- movs r0, 0
- strh r0, [r4, 0xA]
- b _0815C690
- .pool
-_0815C628:
- ldr r2, =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r4, 0x12]
- ldrh r2, [r0, 0x24]
- adds r1, r2
- movs r5, 0
- strh r1, [r0, 0x24]
- ldrh r0, [r4, 0xC]
- ldrh r1, [r4, 0x10]
- subs r0, r1
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0x80
- lsls r2, 1
- ldrh r3, [r4, 0xC]
- adds r1, r2, 0
- bl SetSpriteRotScale
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- bl SetBattlerSpriteYOffsetFromRotation
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0xE
- ldrsh r1, [r4, r2]
- cmp r0, r1
- blt _0815C6A8
- ldrh r1, [r4, 0x14]
- movs r2, 0x14
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _0815C690
- subs r0, r1, 0x1
- strh r0, [r4, 0x14]
- strh r5, [r4, 0xA]
- strh r5, [r4, 0x8]
- b _0815C6A8
- .pool
-_0815C690:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0815C6A8
-_0815C698:
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- bl ResetSpriteRotScale
- adds r0, r5, 0
- bl DestroyAnimVisualTask
-_0815C6A8:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_815C548
-
- thumb_func_start sub_815C6B0
-sub_815C6B0: @ 815C6B0
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _0815C6D4
- strh r0, [r4, 0x20]
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1]
- b _0815C6DE
- .pool
-_0815C6D4:
- movs r0, 0xF0
- strh r0, [r4, 0x20]
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1]
- subs r0, 0x1E
-_0815C6DE:
- strh r0, [r4, 0x22]
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x32]
- ldrb r1, [r1, 0x2]
- adds r0, r4, 0
- bl StartSpriteAnim
- ldr r0, =sub_815C700
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815C6B0
-
- thumb_func_start sub_815C700
-sub_815C700: @ 815C700
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x3
- strh r0, [r4, 0x2E]
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _0815C744
- ldrh r1, [r4, 0x20]
- adds r1, 0x5
- strh r1, [r4, 0x20]
- ldrh r0, [r4, 0x22]
- subs r0, 0x1
- strh r0, [r4, 0x22]
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0xF0
- ble _0815C732
- adds r0, r4, 0
- bl DestroyAnimSprite
-_0815C732:
- ldrh r1, [r4, 0x2E]
- movs r0, 0xFF
- ands r0, r1
- movs r1, 0x10
- bl Sin
- b _0815C768
- .pool
-_0815C744:
- ldrh r1, [r4, 0x20]
- subs r1, 0x5
- strh r1, [r4, 0x20]
- ldrh r0, [r4, 0x22]
- adds r0, 0x1
- strh r0, [r4, 0x22]
- lsls r1, 16
- cmp r1, 0
- bge _0815C75C
- adds r0, r4, 0
- bl DestroyAnimSprite
-_0815C75C:
- ldrh r1, [r4, 0x2E]
- movs r0, 0xFF
- ands r0, r1
- movs r1, 0x10
- bl Cos
-_0815C768:
- strh r0, [r4, 0x26]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_815C700
-
- thumb_func_start sub_815C770
-sub_815C770: @ 815C770
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, =gTasks
- adds r4, r0
- movs r0, 0
- strh r0, [r4, 0x8]
- strh r0, [r4, 0xA]
- strh r0, [r4, 0xC]
- strh r0, [r4, 0xE]
- movs r0, 0x20
- strh r0, [r4, 0x20]
- movs r0, 0x40
- strh r0, [r4, 0x22]
- movs r0, 0x80
- lsls r0, 4
- strh r0, [r4, 0x24]
- ldr r0, =gBattleAnimArgs
- ldrb r0, [r0]
- bl GetAnimBattlerSpriteId
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x26]
- movs r1, 0
- bl PrepareBattlerSpriteForRotScale
- ldr r0, =sub_815C7C4
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815C770
-
- thumb_func_start sub_815C7C4
-sub_815C7C4: @ 815C7C4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, =gTasks
- adds r7, r0, r1
- movs r1, 0x8
- ldrsh r0, [r7, r1]
- mov r8, r0
- cmp r0, 0x1
- beq _0815C860
- cmp r0, 0x1
- bgt _0815C7F4
- cmp r0, 0
- beq _0815C7FC
- b _0815C8DA
- .pool
-_0815C7F4:
- mov r2, r8
- cmp r2, 0x2
- beq _0815C8C8
- b _0815C8DA
-_0815C7FC:
- movs r3, 0x80
- lsls r3, 2
- adds r0, r3, 0
- ldrh r1, [r7, 0xC]
- adds r2, r0, r1
- strh r2, [r7, 0xC]
- lsls r0, r2, 16
- asrs r0, 16
- ldrh r3, [r7, 0x24]
- mov r8, r3
- movs r3, 0x24
- ldrsh r1, [r7, r3]
- cmp r0, r1
- blt _0815C8DA
- mov r0, r8
- subs r5, r0, r2
- lsls r5, 16
- asrs r5, 16
- adds r6, r1, 0
- lsls r6, 1
- adds r0, r5, 0
- adds r1, r6, 0
- bl __divsi3
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- adds r1, r6, 0
- bl __modsi3
- lsls r0, 16
- lsrs r0, 16
- lsls r4, 16
- asrs r4, 16
- movs r1, 0x1
- ands r4, r1
- cmp r4, 0
- bne _0815C854
- lsls r0, 16
- asrs r0, 16
- mov r2, r8
- subs r0, r2, r0
- b _0815C8B2
-_0815C854:
- lsls r0, 16
- asrs r0, 16
- mov r3, r8
- subs r0, r3
- strh r0, [r7, 0xC]
- b _0815C8DA
-_0815C860:
- ldr r1, =0xfffffe00
- adds r0, r1, 0
- ldrh r2, [r7, 0xC]
- adds r1, r0, r2
- strh r1, [r7, 0xC]
- movs r3, 0xC
- ldrsh r0, [r7, r3]
- movs r2, 0x24
- ldrsh r6, [r7, r2]
- cmn r0, r6
- bgt _0815C8DA
- ldrh r3, [r7, 0x24]
- mov r9, r3
- mov r0, r9
- subs r4, r0, r1
- lsls r4, 16
- asrs r4, 16
- lsls r6, 1
- adds r0, r4, 0
- adds r1, r6, 0
- bl __divsi3
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- adds r0, r4, 0
- adds r1, r6, 0
- bl __modsi3
- lsls r0, 16
- lsrs r2, r0, 16
- mov r1, r8
- ands r1, r5
- lsls r0, r1, 16
- asrs r1, r0, 16
- cmp r1, 0
- bne _0815C8BC
- lsls r0, r2, 16
- asrs r0, 16
- mov r2, r9
- subs r0, r2
-_0815C8B2:
- strh r0, [r7, 0xC]
- strh r1, [r7, 0x8]
- b _0815C8DA
- .pool
-_0815C8BC:
- lsls r0, r2, 16
- asrs r0, 16
- mov r3, r9
- subs r0, r3, r0
- strh r0, [r7, 0xC]
- b _0815C8DA
-_0815C8C8:
- ldrh r0, [r7, 0x26]
- lsls r0, 24
- lsrs r0, 24
- bl ResetSpriteRotScale
- adds r0, r4, 0
- bl DestroyAnimVisualTask
- b _0815C950
-_0815C8DA:
- ldrh r0, [r7, 0x26]
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0x80
- lsls r2, 1
- ldrh r3, [r7, 0xC]
- adds r1, r2, 0
- bl SetSpriteRotScale
- ldrh r0, [r7, 0x26]
- lsls r0, 24
- lsrs r0, 24
- bl SetBattlerSpriteYOffsetFromRotation
- ldr r2, =gSprites
- movs r0, 0x26
- ldrsh r1, [r7, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r2
- movs r2, 0xC
- ldrsh r0, [r7, r2]
- cmp r0, 0
- bge _0815C90E
- adds r0, 0x3F
-_0815C90E:
- asrs r0, 6
- negs r0, r0
- strh r0, [r1, 0x24]
- ldrh r0, [r7, 0xA]
- adds r0, 0x1
- strh r0, [r7, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- ble _0815C950
- ldrh r1, [r7, 0x20]
- movs r3, 0x20
- ldrsh r0, [r7, r3]
- cmp r0, 0
- beq _0815C94C
- subs r0, r1, 0x1
- strh r0, [r7, 0x20]
- ldrh r0, [r7, 0x24]
- ldrh r1, [r7, 0x22]
- subs r0, r1
- strh r0, [r7, 0x24]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xF
- bgt _0815C950
- movs r0, 0x10
- strh r0, [r7, 0x24]
- b _0815C950
- .pool
-_0815C94C:
- movs r0, 0x2
- strh r0, [r7, 0x8]
-_0815C950:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_815C7C4
-
- thumb_func_start sub_815C95C
-sub_815C95C: @ 815C95C
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _0815C9BC
- ldr r6, =gBattleAnimArgs
- movs r2, 0x4
- ldrsh r0, [r6, r2]
- cmp r0, 0
- bne _0815C990
- ldr r4, =gBattleAnimAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
-_0815C990:
- ldrh r0, [r6]
- ldrh r1, [r5, 0x20]
- adds r0, r1
- strh r0, [r5, 0x20]
- ldrh r1, [r6, 0x2]
- ldrh r2, [r5, 0x22]
- adds r0, r1, r2
- strh r0, [r5, 0x22]
- movs r0, 0x80
- strh r0, [r5, 0x30]
- movs r0, 0xC0
- lsls r0, 2
- strh r0, [r5, 0x32]
- strh r1, [r5, 0x34]
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- b _0815CA1A
- .pool
-_0815C9BC:
- ldrh r1, [r5, 0x30]
- lsls r0, r1, 16
- asrs r0, 24
- strh r0, [r5, 0x24]
- ldrh r0, [r5, 0x32]
- lsls r0, 16
- asrs r0, 24
- ldrh r2, [r5, 0x26]
- adds r0, r2
- strh r0, [r5, 0x26]
- movs r2, 0x36
- ldrsh r0, [r5, r2]
- adds r4, r1, 0
- cmp r0, 0
- bne _0815C9FA
- movs r0, 0x26
- ldrsh r1, [r5, r0]
- movs r2, 0x34
- ldrsh r0, [r5, r2]
- cmn r1, r0
- ble _0815C9FA
- movs r0, 0x1
- strh r0, [r5, 0x36]
- movs r1, 0x32
- ldrsh r0, [r5, r1]
- negs r0, r0
- movs r1, 0x3
- bl __divsi3
- lsls r0, 1
- strh r0, [r5, 0x32]
-_0815C9FA:
- adds r0, r4, 0
- adds r0, 0xC0
- strh r0, [r5, 0x30]
- ldrh r0, [r5, 0x32]
- adds r0, 0x80
- strh r0, [r5, 0x32]
- adds r0, r5, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0815CA1A
- adds r0, r5, 0
- bl DestroyAnimSprite
-_0815CA1A:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_815C95C
-
- thumb_func_start sub_815CA20
-sub_815CA20: @ 815CA20
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r0, 24
- adds r7, r0, 0
- ldr r1, =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r2, r0, r1
- movs r1, 0x8
- ldrsh r0, [r2, r1]
- cmp r0, 0
- bne _0815CB2C
- ldr r0, =gBattleAnimArgs
- movs r3, 0
- ldrsh r1, [r0, r3]
- mov r8, r0
- cmp r1, 0
- bne _0815CA5C
- ldr r0, =gBattleAnimAttacker
- b _0815CA5E
- .pool
-_0815CA5C:
- ldr r0, =gBattleAnimTarget
-_0815CA5E:
- ldrb r0, [r0]
- strh r0, [r2, 0x1E]
- mov r1, r8
- ldrb r0, [r1]
- bl GetAnimBattlerSpriteId
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, =gTasks
- lsls r4, r7, 2
- adds r0, r4, r7
- lsls r0, 3
- adds r6, r0, r1
- strh r5, [r6, 0x1C]
- adds r0, r5, 0
- movs r1, 0
- bl PrepareBattlerSpriteForRotScale
- mov r2, r8
- movs r3, 0x2
- ldrsh r0, [r2, r3]
- cmp r0, 0x1
- beq _0815CAC0
- cmp r0, 0x1
- bgt _0815CAA0
- cmp r0, 0
- beq _0815CAA8
- lsls r2, r5, 4
- b _0815CB08
- .pool
-_0815CAA0:
- cmp r0, 0x2
- beq _0815CACA
- lsls r2, r5, 4
- b _0815CB08
-_0815CAA8:
- movs r2, 0xA0
- lsls r2, 1
- adds r0, r5, 0
- movs r1, 0xE0
- movs r3, 0
- bl SetSpriteRotScale
- adds r0, r5, 0
- bl SetBattlerSpriteYOffsetFromYScale
- lsls r2, r5, 4
- b _0815CB08
-_0815CAC0:
- movs r2, 0x98
- lsls r2, 1
- movs r3, 0xF0
- lsls r3, 4
- b _0815CAD2
-_0815CACA:
- movs r2, 0x98
- lsls r2, 1
- movs r3, 0xF1
- lsls r3, 8
-_0815CAD2:
- adds r0, r5, 0
- movs r1, 0xD0
- bl SetSpriteRotScale
- adds r0, r5, 0
- bl SetBattlerSpriteYOffsetFromYScale
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _0815CAF8
- ldrb r0, [r6, 0x1E]
- bl GetBattlerSide
- lsls r0, 24
- lsls r2, r5, 4
- cmp r0, 0
- bne _0815CB08
-_0815CAF8:
- ldr r0, =gSprites
- lsls r2, r5, 4
- adds r1, r2, r5
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r1, 0x26]
- adds r0, 0x10
- strh r0, [r1, 0x26]
-_0815CB08:
- ldr r1, =gSprites
- adds r0, r2, r5
- lsls r0, 2
- adds r0, r1
- movs r1, 0x2
- strh r1, [r0, 0x24]
- ldr r0, =gTasks
- adds r1, r4, r7
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- b _0815CB78
- .pool
-_0815CB2C:
- ldrb r5, [r2, 0x1C]
- ldrh r0, [r2, 0xC]
- adds r0, 0x1
- movs r4, 0
- strh r0, [r2, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- bne _0815CB50
- strh r4, [r2, 0xC]
- ldr r0, =gSprites
- lsls r1, r5, 4
- adds r1, r5
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r1, 0x24]
- negs r0, r0
- strh r0, [r1, 0x24]
-_0815CB50:
- ldrh r0, [r2, 0xA]
- adds r0, 0x1
- strh r0, [r2, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xD
- bne _0815CB78
- adds r0, r5, 0
- bl ResetSpriteRotScale
- ldr r1, =gSprites
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- adds r0, r1
- strh r4, [r0, 0x24]
- strh r4, [r0, 0x26]
- adds r0, r7, 0
- bl DestroyAnimVisualTask
-_0815CB78:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815CA20
-
- thumb_func_start sub_815CB88
-sub_815CB88: @ 815CB88
- push {r4,r5,lr}
- adds r4, r0, 0
- bl Random2
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xC
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
- ldrh r2, [r4, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- adds r1, r0
- ldr r3, =0x000003ff
- adds r0, r3, 0
- ands r1, r0
- ldr r0, =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r4, 0x4]
- bl Random2
- ldr r5, =0x000001ff
- ands r5, r0
- bl Random2
- movs r1, 0xFF
- ands r1, r0
- movs r0, 0x1
- ands r0, r5
- cmp r0, 0
- beq _0815CBE0
- movs r2, 0xBC
- lsls r2, 3
- adds r0, r5, r2
- b _0815CBE8
- .pool
-_0815CBE0:
- movs r3, 0xBC
- lsls r3, 3
- adds r0, r3, 0
- subs r0, r5
-_0815CBE8:
- strh r0, [r4, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0815CBFA
- movs r2, 0x90
- lsls r2, 3
- adds r0, r1, r2
- b _0815CC02
-_0815CBFA:
- movs r3, 0x90
- lsls r3, 3
- adds r0, r3, 0
- subs r0, r1
-_0815CC02:
- strh r0, [r4, 0x30]
- ldr r0, =gBattleAnimArgs
- ldrh r0, [r0]
- strh r0, [r4, 0x32]
- lsls r0, 16
- cmp r0, 0
- bne _0815CC1C
- ldr r0, =0x0000fff8
- b _0815CC1E
- .pool
-_0815CC1C:
- movs r0, 0xF8
-_0815CC1E:
- strh r0, [r4, 0x20]
- movs r0, 0x68
- strh r0, [r4, 0x22]
- ldr r0, =sub_815CC34
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815CB88
-
- thumb_func_start sub_815CC34
-sub_815CC34: @ 815CC34
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0815CC4C
- ldrh r3, [r4, 0x2E]
- lsls r0, r3, 16
- asrs r0, 24
- ldrh r1, [r4, 0x24]
- adds r0, r1
- b _0815CC56
-_0815CC4C:
- ldrh r3, [r4, 0x2E]
- lsls r1, r3, 16
- asrs r1, 24
- ldrh r0, [r4, 0x24]
- subs r0, r1
-_0815CC56:
- strh r0, [r4, 0x24]
- ldrh r2, [r4, 0x30]
- lsls r1, r2, 16
- asrs r1, 24
- ldrh r0, [r4, 0x26]
- subs r0, r1
- strh r0, [r4, 0x26]
- adds r0, r3, 0
- subs r0, 0x16
- strh r0, [r4, 0x2E]
- adds r1, r2, 0
- subs r1, 0x30
- strh r1, [r4, 0x30]
- lsls r0, 16
- cmp r0, 0
- bge _0815CC7A
- movs r0, 0
- strh r0, [r4, 0x2E]
-_0815CC7A:
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- strh r0, [r4, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1F
- bne _0815CC8E
- adds r0, r4, 0
- bl DestroyAnimSprite
-_0815CC8E:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_815CC34
-
- thumb_func_start sub_815CC94
-sub_815CC94: @ 815CC94
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r1, =0x00001f3f
- movs r0, 0x4A
- bl SetGpuReg
- movs r1, 0x80
- lsls r1, 8
- movs r0, 0
- bl SetGpuRegBits
- ldr r0, =gBattle_WIN0H
- movs r1, 0
- strh r1, [r0]
- ldr r4, =gBattle_WIN0V
- strh r1, [r4]
- movs r0, 0x40
- movs r1, 0
- bl SetGpuReg
- ldrh r1, [r4]
- movs r0, 0x44
- bl SetGpuReg
- ldr r0, =gBattleAnimArgs
- ldrh r0, [r0, 0x4]
- strh r0, [r5, 0x2E]
- adds r0, r5, 0
- movs r1, 0
- bl sub_80A6980
- ldrb r1, [r5, 0x1]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- movs r1, 0x8
- orrs r0, r1
- strb r0, [r5, 0x1]
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, =sub_815CD0C
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815CC94
-
- thumb_func_start sub_815CD0C
-sub_815CD0C: @ 815CD0C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _0815CD4A
- cmp r0, 0x1
- bgt _0815CD22
- cmp r0, 0
- beq _0815CD2C
- b _0815CDAA
-_0815CD22:
- cmp r0, 0x2
- beq _0815CD60
- cmp r0, 0x3
- beq _0815CD82
- b _0815CDAA
-_0815CD2C:
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0815CDAA
- b _0815CD7A
-_0815CD4A:
- ldrh r0, [r4, 0x2E]
- subs r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- cmp r0, 0
- bne _0815CDAA
- adds r0, r4, 0
- movs r1, 0x1
- bl ChangeSpriteAffineAnim
- b _0815CD7A
-_0815CD60:
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0815CDAA
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
-_0815CD7A:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- b _0815CDAA
-_0815CD82:
- ldr r1, =0x00003f3f
- movs r0, 0x4A
- bl SetGpuReg
- movs r0, 0
- bl GetGpuReg
- adds r1, r0, 0
- movs r2, 0x80
- lsls r2, 8
- adds r0, r2, 0
- eors r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0
- bl SetGpuReg
- adds r0, r4, 0
- bl DestroyAnimSprite
-_0815CDAA:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815CD0C
-
- thumb_func_start sub_815CDB4
-sub_815CDB4: @ 815CDB4
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, =gBattleAnimAttacker
- ldrb r0, [r5]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x20]
- ldrb r0, [r5]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x22]
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1]
- strh r0, [r4, 0x2E]
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0x30]
- ldr r1, =sub_815CDFC
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815CDB4
-
- thumb_func_start sub_815CDFC
-sub_815CDFC: @ 815CDFC
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- ldrh r1, [r4, 0x32]
- lsls r1, 16
- asrs r1, 24
- bl Sin
- strh r0, [r4, 0x24]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- ldrh r1, [r4, 0x34]
- lsls r1, 16
- asrs r1, 24
- bl Cos
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x30]
- adds r0, 0x9
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x30]
- lsls r1, r0, 16
- cmp r0, 0x3F
- bls _0815CE36
- asrs r0, r1, 16
- cmp r0, 0xC3
- ble _0815CE48
-_0815CE36:
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSpriteSubpriority
- subs r0, 0x1
- b _0815CE52
- .pool
-_0815CE48:
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSpriteSubpriority
- adds r0, 0x1
-_0815CE52:
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- movs r3, 0x38
- ldrsh r2, [r4, r3]
- cmp r2, 0
- bne _0815CE98
- movs r1, 0x80
- lsls r1, 3
- adds r0, r1, 0
- ldrh r3, [r4, 0x32]
- adds r0, r3
- strh r0, [r4, 0x32]
- movs r1, 0x80
- lsls r1, 1
- adds r0, r1, 0
- ldrh r3, [r4, 0x34]
- adds r0, r3
- strh r0, [r4, 0x34]
- ldrh r0, [r4, 0x36]
- adds r0, 0x1
- strh r0, [r4, 0x36]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x2E
- ldrsh r1, [r4, r3]
- cmp r0, r1
- bne _0815CEC8
- strh r2, [r4, 0x36]
- movs r0, 0x1
- strh r0, [r4, 0x38]
- b _0815CEC8
- .pool
-_0815CE98:
- cmp r2, 0x1
- bne _0815CEC8
- ldr r1, =0xfffffc00
- adds r0, r1, 0
- ldrh r2, [r4, 0x32]
- adds r0, r2
- strh r0, [r4, 0x32]
- ldr r3, =0xffffff00
- adds r0, r3, 0
- ldrh r1, [r4, 0x34]
- adds r0, r1
- strh r0, [r4, 0x34]
- ldrh r0, [r4, 0x36]
- adds r0, 0x1
- strh r0, [r4, 0x36]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x2E
- ldrsh r1, [r4, r2]
- cmp r0, r1
- bne _0815CEC8
- adds r0, r4, 0
- bl DestroyAnimSprite
-_0815CEC8:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815CDFC
-
- thumb_func_start sub_815CED8
-sub_815CED8: @ 815CED8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x20
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x18]
- movs r0, 0
- bl GetAnimBattlerSpriteId
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _0815CF18
- movs r0, 0x1
- str r0, [sp, 0x1C]
- ldr r0, =gContestResources
- ldr r0, [r0]
- ldr r0, [r0, 0x18]
- ldr r1, [r0, 0x10]
- mov r9, r1
- ldr r2, [r0, 0xC]
- mov r8, r2
- ldrh r6, [r0, 0x2]
- movs r3, 0x14
- b _0815D058
- .pool
-_0815CF18:
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _0815CFC4
- movs r0, 0
- str r0, [sp, 0x1C]
- ldr r6, =gBattlerPartyIndexes
- ldr r4, =gBattleAnimTarget
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- movs r5, 0x64
- muls r0, r5
- ldr r7, =gPlayerParty
- adds r0, r7
- movs r1, 0
- bl GetMonData
- mov r9, r0
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- muls r0, r5
- adds r0, r7
- movs r1, 0x1
- bl GetMonData
- mov r8, r0
- ldr r0, =gBattleSpritesDataPtr
- ldr r0, [r0]
- ldrb r2, [r4]
- ldr r1, [r0]
- lsls r0, r2, 2
- adds r1, r0, r1
- ldrh r0, [r1, 0x2]
- cmp r0, 0
- bne _0815CFBC
- adds r0, r2, 0
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _0815CF9C
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- muls r0, r5
- adds r0, r7
- b _0815CFAA
- .pool
-_0815CF9C:
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
-_0815CFAA:
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r6, r0, 16
- b _0815CFBE
- .pool
-_0815CFBC:
- ldrh r6, [r1, 0x2]
-_0815CFBE:
- movs r1, 0x14
- mov r10, r1
- b _0815D05A
-_0815CFC4:
- movs r2, 0x1
- str r2, [sp, 0x1C]
- ldr r6, =gBattlerPartyIndexes
- ldr r4, =gBattleAnimTarget
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- movs r5, 0x64
- muls r0, r5
- ldr r7, =gEnemyParty
- adds r0, r7
- movs r1, 0
- bl GetMonData
- mov r9, r0
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- muls r0, r5
- adds r0, r7
- movs r1, 0x1
- bl GetMonData
- mov r8, r0
- ldr r0, =gBattleSpritesDataPtr
- ldr r0, [r0]
- ldrb r2, [r4]
- ldr r1, [r0]
- lsls r0, r2, 2
- adds r1, r0, r1
- ldrh r0, [r1, 0x2]
- cmp r0, 0
- bne _0815D054
- adds r0, r2, 0
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _0815D03C
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- b _0815D048
- .pool
-_0815D03C:
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- muls r0, r5
- adds r0, r7
-_0815D048:
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r6, r0, 16
- b _0815D056
-_0815D054:
- ldrh r6, [r1, 0x2]
-_0815D056:
- ldr r3, =0x0000ffec
-_0815D058:
- mov r10, r3
-_0815D05A:
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl sub_80A8328
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r5, =gBattleAnimAttacker
- ldrb r0, [r5]
- movs r1, 0
- bl GetBattlerSpriteCoord
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldrb r0, [r5]
- movs r1, 0x1
- bl GetBattlerSpriteCoord
- lsls r0, 24
- mov r2, r10
- lsls r1, r2, 16
- asrs r1, 16
- adds r4, r1
- lsls r4, 16
- asrs r4, 16
- lsrs r0, 24
- str r0, [sp]
- movs r0, 0x5
- str r0, [sp, 0x4]
- mov r3, r9
- str r3, [sp, 0x8]
- mov r0, r8
- str r0, [sp, 0xC]
- ldr r0, =gBattleAnimTarget
- ldrb r0, [r0]
- str r0, [sp, 0x10]
- movs r0, 0x1
- str r0, [sp, 0x14]
- adds r0, r6, 0
- ldr r1, [sp, 0x1C]
- movs r2, 0
- adds r3, r4, 0
- bl sub_80A8394
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- ldr r0, =gSprites
- lsls r5, r6, 4
- adds r5, r6
- lsls r5, 2
- adds r5, r0
- movs r0, 0x3
- ands r7, r0
- lsls r7, 2
- mov r8, r7
- ldrb r0, [r5, 0x5]
- movs r4, 0xD
- negs r4, r4
- adds r1, r4, 0
- ands r1, r0
- mov r2, r8
- orrs r1, r2
- strb r1, [r5, 0x5]
- ldrb r2, [r5, 0x1]
- adds r0, r4, 0
- ands r0, r2
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r5, 0x1]
- ldr r0, =0x00007fff
- lsrs r1, 4
- lsls r1, 4
- movs r3, 0x80
- lsls r3, 1
- adds r2, r3, 0
- orrs r1, r2
- movs r2, 0x20
- bl FillPalette
- ldrb r0, [r5, 0x5]
- ands r4, r0
- mov r0, r8
- orrs r4, r0
- strb r4, [r5, 0x5]
- movs r1, 0xFD
- lsls r1, 6
- movs r0, 0x50
- bl SetGpuReg
- ldr r0, =gTasks
- ldr r1, [sp, 0x18]
- lsls r4, r1, 2
- adds r4, r1
- lsls r4, 3
- adds r4, r0
- ldrh r0, [r4, 0xA]
- movs r1, 0x10
- subs r1, r0
- lsls r1, 8
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- strh r6, [r4, 0x8]
- ldr r0, =sub_815D160
- str r0, [r4]
- add sp, 0x20
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815CED8
-
- thumb_func_start sub_815D160
-sub_815D160: @ 815D160
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
- ldrh r0, [r4, 0x1C]
- adds r1, r0, 0x1
- strh r1, [r4, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _0815D1AE
- movs r0, 0
- strh r0, [r4, 0x1C]
- ldrh r1, [r4, 0xA]
- adds r1, 0x1
- strh r1, [r4, 0xA]
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0xA
- bne _0815D1AE
- movs r0, 0x80
- lsls r0, 1
- strh r0, [r4, 0x1C]
- strh r0, [r4, 0x1E]
- ldr r0, =sub_815D1BC
- str r0, [r4]
-_0815D1AE:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815D160
-
- thumb_func_start sub_815D1BC
-sub_815D1BC: @ 815D1BC
- push {r4-r6,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r5, r1, r2
- ldrb r2, [r5, 0x8]
- ldrh r0, [r5, 0x1C]
- subs r0, 0x10
- movs r4, 0
- strh r0, [r5, 0x1C]
- ldrh r0, [r5, 0x1E]
- adds r0, 0x80
- strh r0, [r5, 0x1E]
- ldr r1, =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r6, r0, r1
- ldrb r2, [r6, 0x1]
- lsls r1, r2, 30
- lsrs r1, 30
- movs r0, 0x2
- orrs r1, r0
- subs r0, 0x6
- ands r0, r2
- orrs r0, r1
- strb r0, [r6, 0x1]
- movs r0, 0x1C
- ldrsh r2, [r5, r0]
- movs r0, 0x1E
- ldrsh r3, [r5, r0]
- str r4, [sp]
- adds r0, r6, 0
- movs r1, 0x1
- bl TrySetSpriteRotScale
- ldrh r0, [r5, 0x20]
- adds r0, 0x1
- strh r0, [r5, 0x20]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x9
- bne _0815D22A
- adds r0, r6, 0
- bl sub_80A749C
- adds r0, r6, 0
- bl sub_80A8610
- ldr r0, =sub_80A6814
- str r0, [r5]
-_0815D22A:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815D1BC
-
- thumb_func_start sub_815D240
-sub_815D240: @ 815D240
- push {r4-r7,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks
- adds r4, r1, r0
- ldr r0, =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _0815D26C
- ldr r0, =gBattleAnimAttacker
- b _0815D26E
- .pool
-_0815D26C:
- ldr r0, =gBattleAnimTarget
-_0815D26E:
- ldrb r5, [r0]
- movs r6, 0
- strh r6, [r4, 0x8]
- strh r6, [r4, 0xA]
- strh r6, [r4, 0xC]
- movs r0, 0x10
- strh r0, [r4, 0xE]
- strh r6, [r4, 0x10]
- strh r5, [r4, 0x12]
- movs r0, 0x20
- strh r0, [r4, 0x14]
- strh r6, [r4, 0x16]
- movs r0, 0x18
- strh r0, [r4, 0x18]
- adds r0, r5, 0
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0815D2A0
- movs r1, 0x18
- ldrsh r0, [r4, r1]
- negs r0, r0
- strh r0, [r4, 0x18]
-_0815D2A0:
- adds r0, r5, 0
- bl GetBattlerYCoordWithElevation
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x22
- strh r0, [r4, 0x22]
- cmp r0, 0
- bge _0815D2B4
- strh r6, [r4, 0x22]
-_0815D2B4:
- ldrh r0, [r4, 0x22]
- adds r0, 0x42
- strh r0, [r4, 0x24]
- ldr r0, =gBattleAnimArgs
- ldrb r0, [r0]
- bl GetAnimBattlerSpriteId
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x26]
- adds r0, r5, 0
- bl sub_80A8364
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0815D304
- ldr r0, =0x04000014
- str r0, [sp]
- ldr r1, =0x00003f42
- movs r0, 0x50
- bl SetGpuReg
- ldr r0, =gBattle_BG1_X
- ldrh r5, [r0]
- ldr r0, =gBattle_BG1_Y
- b _0815D316
- .pool
-_0815D304:
- ldr r0, =0x04000018
- str r0, [sp]
- ldr r1, =0x00003f44
- movs r0, 0x50
- bl SetGpuReg
- ldr r0, =gBattle_BG2_X
- ldrh r5, [r0]
- ldr r0, =gBattle_BG2_Y
-_0815D316:
- ldrh r3, [r0]
- movs r7, 0
- movs r2, 0
- ldr r6, =gScanlineEffectRegBuffers
- movs r0, 0xF0
- lsls r0, 3
- adds r0, r6
- mov r12, r0
-_0815D326:
- lsls r2, 16
- asrs r2, 16
- lsls r1, r2, 1
- adds r0, r1, r6
- strh r5, [r0]
- add r1, r12
- strh r5, [r1]
- adds r0, r2, 0x1
- lsls r0, 1
- adds r1, r0, r6
- strh r3, [r1]
- add r0, r12
- strh r3, [r0]
- lsls r0, r7, 16
- movs r1, 0x80
- lsls r1, 9
- adds r0, r1
- adds r2, 0x2
- lsls r2, 16
- lsrs r2, 16
- lsrs r7, r0, 16
- asrs r0, 16
- cmp r0, 0x9F
- ble _0815D326
- ldr r0, =0xa6600001
- str r0, [sp, 0x4]
- mov r1, sp
- movs r2, 0
- movs r0, 0x1
- strb r0, [r1, 0x8]
- mov r0, sp
- strb r2, [r0, 0x9]
- ldr r0, [sp]
- ldr r1, [sp, 0x4]
- ldr r2, [sp, 0x8]
- bl ScanlineEffect_SetParams
- ldr r0, =sub_815D398
- str r0, [r4]
- add sp, 0xC
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815D240
-
- thumb_func_start sub_815D398
-sub_815D398: @ 815D398
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, =gTasks
- adds r6, r0, r1
- ldrb r0, [r6, 0x12]
- bl sub_80A8364
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0815D3D8
- ldr r0, =gBattle_BG1_X
- ldrh r0, [r0]
- str r0, [sp, 0x4]
- ldr r0, =gBattle_BG1_Y
- b _0815D3E0
- .pool
-_0815D3D8:
- ldr r0, =gBattle_BG2_X
- ldrh r0, [r0]
- str r0, [sp, 0x4]
- ldr r0, =gBattle_BG2_Y
-_0815D3E0:
- ldrh r0, [r0]
- str r0, [sp, 0x8]
- movs r1, 0x8
- ldrsh r0, [r6, r1]
- cmp r0, 0x1
- bne _0815D3EE
- b _0815D5CC
-_0815D3EE:
- cmp r0, 0x1
- bgt _0815D400
- cmp r0, 0
- beq _0815D40E
- b _0815D63C
- .pool
-_0815D400:
- cmp r0, 0x2
- bne _0815D406
- b _0815D5EC
-_0815D406:
- cmp r0, 0x3
- bne _0815D40C
- b _0815D636
-_0815D40C:
- b _0815D63C
-_0815D40E:
- movs r2, 0x24
- ldrsh r0, [r6, r2]
- lsls r0, 17
- lsrs r5, r0, 16
- movs r3, 0
- str r3, [sp]
- mov r9, r3
- movs r4, 0
- ldrh r0, [r6, 0xA]
- adds r0, 0x2
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r6, 0xA]
- ldrh r7, [r6, 0xA]
- mov r8, r7
- movs r0, 0x14
- ldrsh r1, [r6, r0]
- movs r0, 0xFC
- lsls r0, 3
- bl __divsi3
- strh r0, [r6, 0x1A]
- movs r1, 0x16
- ldrsh r0, [r6, r1]
- lsls r0, 1
- movs r2, 0x1A
- ldrsh r1, [r6, r2]
- bl __divsi3
- negs r0, r0
- strh r0, [r6, 0x1C]
- ldrh r0, [r6, 0x16]
- strh r0, [r6, 0x1E]
- lsls r0, 16
- asrs r0, 21
- lsls r0, 16
- lsrs r7, r0, 16
- strh r7, [r6, 0x20]
- ldrh r2, [r6, 0x24]
- lsls r3, r2, 16
- mov r12, r3
- asrs r1, r3, 16
- movs r3, 0x22
- ldrsh r0, [r6, r3]
- cmp r1, r0
- ble _0815D52E
- ldr r0, =gScanlineEffect
- mov r10, r0
- ldr r1, [sp, 0x4]
- lsls r0, r1, 16
- asrs r0, 16
- str r0, [sp, 0x10]
- ldr r2, [sp, 0x8]
- lsls r0, r2, 16
- asrs r0, 16
- str r0, [sp, 0xC]
-_0815D47E:
- lsls r5, 16
- asrs r5, 16
- adds r2, r5, 0x1
- lsls r2, 1
- mov r3, r10
- ldrb r1, [r3, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- ldr r0, =gScanlineEffectRegBuffers
- adds r2, r0
- lsls r4, 16
- asrs r4, 16
- mov r1, r9
- lsls r0, r1, 16
- asrs r0, 16
- subs r0, r4, r0
- ldr r3, [sp, 0xC]
- adds r0, r3, r0
- strh r0, [r2]
- lsls r3, r5, 1
- mov r0, r10
- ldrb r1, [r0, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r3, r0
- ldr r1, =gScanlineEffectRegBuffers
- adds r3, r1
- lsls r1, r7, 16
- asrs r1, 16
- ldr r2, [sp, 0x10]
- adds r1, r2, r1
- mov r7, r8
- lsls r2, r7, 16
- asrs r2, 16
- lsls r0, r2, 1
- ldr r7, =gSineTable
- adds r0, r7
- ldrh r0, [r0]
- lsls r0, 16
- asrs r0, 21
- adds r1, r0
- strh r1, [r3]
- adds r2, 0xA
- mov r8, r2
- movs r0, 0xFF
- mov r1, r8
- ands r1, r0
- mov r8, r1
- ldrh r0, [r6, 0x1C]
- ldrh r2, [r6, 0x1E]
- adds r0, r2
- strh r0, [r6, 0x1E]
- lsls r0, 16
- asrs r0, 21
- lsls r0, 16
- lsrs r7, r0, 16
- strh r7, [r6, 0x20]
- adds r4, 0x1
- lsls r4, 16
- lsrs r4, 16
- subs r5, 0x2
- lsls r5, 16
- lsrs r5, 16
- ldr r3, [sp]
- lsls r0, r3, 16
- asrs r0, 16
- ldrh r1, [r6, 0x14]
- adds r0, r1
- lsls r0, 16
- lsrs r2, r0, 16
- str r2, [sp]
- asrs r0, 21
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- ldr r0, =0xffff0000
- add r0, r12
- lsrs r2, r0, 16
- lsls r3, r2, 16
- mov r12, r3
- asrs r1, r3, 16
- movs r3, 0x22
- ldrsh r0, [r6, r3]
- cmp r1, r0
- bgt _0815D47E
-_0815D52E:
- lsls r1, r2, 17
- cmp r1, 0
- blt _0815D55A
- ldr r4, =gScanlineEffectRegBuffers
- ldr r7, [sp, 0x4]
- lsls r0, r7, 16
- asrs r0, 16
- adds r3, r0, 0
- adds r3, 0xF0
- movs r0, 0xF0
- lsls r0, 3
- adds r5, r4, r0
-_0815D546:
- asrs r2, r1, 16
- lsls r1, r2, 1
- adds r0, r1, r4
- strh r3, [r0]
- adds r1, r5
- strh r3, [r1]
- subs r2, 0x2
- lsls r1, r2, 16
- cmp r1, 0
- bge _0815D546
-_0815D55A:
- ldrh r0, [r6, 0x14]
- adds r0, 0x1
- strh r0, [r6, 0x14]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3F
- ble _0815D5C2
- movs r0, 0x40
- strh r0, [r6, 0x14]
- ldrh r0, [r6, 0xC]
- adds r0, 0x1
- strh r0, [r6, 0xC]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0815D594
- ldrh r0, [r6, 0xE]
- subs r0, 0x1
- strh r0, [r6, 0xE]
- b _0815D59A
- .pool
-_0815D594:
- ldrh r0, [r6, 0x10]
- adds r0, 0x1
- strh r0, [r6, 0x10]
-_0815D59A:
- ldrh r1, [r6, 0x10]
- lsls r1, 8
- ldrh r0, [r6, 0xE]
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r2, 0xE
- ldrsh r1, [r6, r2]
- cmp r1, 0
- bne _0815D63C
- movs r3, 0x10
- ldrsh r0, [r6, r3]
- cmp r0, 0x10
- bne _0815D63C
- strh r1, [r6, 0xC]
- strh r1, [r6, 0xE]
- b _0815D62E
-_0815D5C2:
- ldrh r0, [r6, 0x18]
- ldrh r7, [r6, 0x16]
- adds r0, r7
- strh r0, [r6, 0x16]
- b _0815D63C
-_0815D5CC:
- ldrh r0, [r6, 0xC]
- adds r0, 0x1
- strh r0, [r6, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xC
- ble _0815D63C
- ldr r1, =gScanlineEffect
- movs r0, 0x3
- strb r0, [r1, 0x15]
- movs r0, 0
- strh r0, [r6, 0xC]
- b _0815D62E
- .pool
-_0815D5EC:
- ldrh r0, [r6, 0xC]
- adds r0, 0x1
- strh r0, [r6, 0xC]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0815D602
- ldrh r0, [r6, 0xE]
- adds r0, 0x1
- strh r0, [r6, 0xE]
- b _0815D608
-_0815D602:
- ldrh r0, [r6, 0x10]
- subs r0, 0x1
- strh r0, [r6, 0x10]
-_0815D608:
- ldrh r1, [r6, 0x10]
- lsls r1, 8
- ldrh r0, [r6, 0xE]
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r1, 0xE
- ldrsh r0, [r6, r1]
- cmp r0, 0x10
- bne _0815D63C
- movs r2, 0x10
- ldrsh r0, [r6, r2]
- cmp r0, 0
- bne _0815D63C
- strh r0, [r6, 0xC]
- strh r0, [r6, 0xE]
-_0815D62E:
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- strh r0, [r6, 0x8]
- b _0815D63C
-_0815D636:
- adds r0, r4, 0
- bl DestroyAnimVisualTask
-_0815D63C:
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_815D398
-
- thumb_func_start sub_815D64C
-sub_815D64C: @ 815D64C
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, =gTasks
- adds r4, r0
- movs r0, 0
- strh r0, [r4, 0x8]
- ldr r0, =gBattleAnimArgs
- ldrb r0, [r0]
- bl GetAnimBattlerSpriteId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- strh r1, [r4, 0x26]
- ldr r2, =gUnknown_085CE5F0
- adds r0, r4, 0
- bl PrepareAffineAnimInTaskData
- ldr r0, =sub_815D694
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815D64C
-
- thumb_func_start sub_815D694
-sub_815D694: @ 815D694
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r2, =gTasks
- adds r3, r0, r2
- ldrh r0, [r3, 0x8]
- adds r1, r0, 0x1
- movs r5, 0
- strh r1, [r3, 0x8]
- subs r0, 0x14
- lsls r0, 16
- lsrs r0, 16
- adds r6, r2, 0
- cmp r0, 0x16
- bhi _0815D6F8
- ldrh r0, [r3, 0xA]
- adds r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _0815D708
- strh r5, [r3, 0xA]
- ldrh r0, [r3, 0xC]
- adds r0, 0x1
- strh r0, [r3, 0xC]
- movs r5, 0x1
- ands r0, r5
- cmp r0, 0
- bne _0815D6F8
- ldr r2, =gSprites
- movs r0, 0x26
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, =0x0000ffff
- strh r1, [r0, 0x24]
- b _0815D708
- .pool
-_0815D6F8:
- ldr r2, =gSprites
- movs r0, 0x26
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r5, [r0, 0x24]
-_0815D708:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r6
- bl RunAffineAnimFromTaskData
- lsls r0, 24
- cmp r0, 0
- bne _0815D720
- adds r0, r4, 0
- bl DestroyAnimVisualTask
-_0815D720:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815D694
-
- thumb_func_start sub_815D72C
-sub_815D72C: @ 815D72C
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- mov r8, r0
- adds r5, r2, 0
- adds r0, r3, 0
- ldr r4, [sp, 0x14]
- ldr r6, [sp, 0x18]
- lsls r1, 16
- lsrs r1, 16
- lsls r5, 16
- lsrs r5, 16
- lsls r4, 16
- lsrs r4, 16
- lsls r6, 16
- lsrs r6, 16
- mov r2, r8
- strh r1, [r2, 0x20]
- strh r5, [r2, 0x22]
- lsls r1, 16
- asrs r1, 16
- lsls r2, r1, 4
- mov r3, r8
- strh r2, [r3, 0x36]
- lsls r5, 16
- asrs r5, 16
- lsls r2, r5, 4
- strh r2, [r3, 0x38]
- lsls r0, 16
- asrs r0, 16
- subs r0, r1
- lsls r0, 4
- adds r1, r6, 0
- bl __divsi3
- mov r1, r8
- strh r0, [r1, 0x3A]
- lsls r4, 16
- asrs r4, 16
- subs r4, r5
- lsls r4, 4
- adds r0, r4, 0
- adds r1, r6, 0
- bl __divsi3
- mov r2, r8
- strh r0, [r2, 0x3C]
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_815D72C
-
- thumb_func_start sub_815D794
-sub_815D794: @ 815D794
- ldrh r1, [r0, 0x3A]
- ldrh r2, [r0, 0x36]
- adds r1, r2
- strh r1, [r0, 0x36]
- ldrh r2, [r0, 0x3C]
- ldrh r3, [r0, 0x38]
- adds r2, r3
- strh r2, [r0, 0x38]
- lsls r1, 16
- asrs r1, 20
- strh r1, [r0, 0x20]
- lsls r2, 16
- asrs r2, 20
- strh r2, [r0, 0x22]
- bx lr
- thumb_func_end sub_815D794
-
- thumb_func_start sub_815D7B4
-sub_815D7B4: @ 815D7B4
- push {r4-r6,lr}
- sub sp, 0x8
- adds r4, r0, 0
- ldrh r6, [r4, 0x20]
- ldrh r5, [r4, 0x22]
- bl SetSpriteCoordsToAnimAttackerCoords
- ldr r0, =gBattleAnimArgs
- ldrb r1, [r0]
- adds r0, r4, 0
- bl StartSpriteAffineAnim
- movs r0, 0x20
- ldrsh r1, [r4, r0]
- movs r0, 0x22
- ldrsh r2, [r4, r0]
- lsls r6, 16
- asrs r6, 16
- lsls r5, 16
- asrs r5, 16
- str r5, [sp]
- movs r0, 0x40
- str r0, [sp, 0x4]
- adds r0, r4, 0
- adds r3, r6, 0
- bl sub_815D72C
- movs r0, 0
- strh r0, [r4, 0x2E]
- ldr r0, =sub_815D804
- str r0, [r4, 0x1C]
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815D7B4
-
- thumb_func_start sub_815D804
-sub_815D804: @ 815D804
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- movs r0, 0x2E
- ldrsh r4, [r5, r0]
- lsls r4, 3
- movs r0, 0xFF
- ands r4, r0
- adds r0, r5, 0
- bl sub_815D794
- adds r0, r4, 0
- movs r1, 0x8
- bl Sin
- strh r0, [r5, 0x26]
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0x3A
- ble _0815D86A
- ldrh r0, [r5, 0x30]
- adds r0, 0x1
- strh r0, [r5, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _0815D86A
- movs r0, 0
- strh r0, [r5, 0x30]
- ldrh r1, [r5, 0x32]
- adds r1, 0x1
- strh r1, [r5, 0x32]
- movs r0, 0x1
- ands r1, r0
- adds r3, r5, 0
- adds r3, 0x3E
- lsls r1, 2
- ldrb r2, [r3]
- subs r0, 0x6
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- movs r1, 0x32
- ldrsh r0, [r5, r1]
- cmp r0, 0x3
- ble _0815D86A
- adds r0, r5, 0
- bl DestroySpriteAndMatrix
-_0815D86A:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_815D804
-
- thumb_func_start sub_815D870
-sub_815D870: @ 815D870
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r6, =gBattleAnimArgs
- ldrh r0, [r6, 0x6]
- strh r0, [r5, 0x2E]
- ldrb r1, [r6]
- adds r0, r5, 0
- bl StartSpriteAffineAnim
- ldr r0, =gBattleAnimTarget
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _0815D896
- ldrh r0, [r6, 0x2]
- negs r0, r0
- strh r0, [r6, 0x2]
-_0815D896:
- ldr r4, =gBattleAnimAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r6, 0x2]
- adds r0, r1
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r6, [r6, 0x4]
- adds r0, r6
- strh r0, [r5, 0x22]
- ldr r0, =sub_810E2C8
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815D870
-
- thumb_func_start sub_815D8D8
-sub_815D8D8: @ 815D8D8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r7, 0
- ldr r2, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r3, r0, r2
- ldrh r0, [r3, 0x8]
- subs r0, 0x1
- strh r0, [r3, 0x8]
- movs r1, 0x14
- ldrsh r0, [r3, r1]
- movs r1, 0x80
- lsls r1, 8
- ands r0, r1
- mov r8, r2
- cmp r0, 0
- beq _0815D95A
- ldrh r0, [r3, 0xA]
- subs r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _0815D95A
- movs r2, 0x1A
- ldrsh r0, [r3, r2]
- cmp r0, 0
- bne _0815D92C
- ldrh r0, [r3, 0x10]
- strh r0, [r3, 0x1A]
- negs r0, r0
- strh r0, [r3, 0x10]
- b _0815D92E
- .pool
-_0815D92C:
- strh r7, [r3, 0x1A]
-_0815D92E:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- mov r2, r8
- adds r1, r0, r2
- movs r2, 0x1C
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _0815D94A
- ldrh r0, [r1, 0x12]
- strh r0, [r1, 0x1C]
- negs r0, r0
- strh r0, [r1, 0x12]
- b _0815D94E
-_0815D94A:
- movs r0, 0
- strh r0, [r1, 0x1C]
-_0815D94E:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- add r0, r8
- ldrh r1, [r0, 0x22]
- strh r1, [r0, 0xA]
-_0815D95A:
- lsls r2, r5, 2
- adds r0, r2, r5
- lsls r0, 3
- mov r1, r8
- adds r4, r0, r1
- ldrh r6, [r4, 0x16]
- ldrh r7, [r4, 0x18]
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- movs r1, 0x80
- lsls r1, 8
- ands r0, r1
- mov r12, r2
- cmp r0, 0
- beq _0815D998
- ldr r3, =gSprites
- movs r2, 0x26
- ldrsh r0, [r4, r2]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- lsrs r2, r6, 8
- ldrh r0, [r4, 0x1A]
- subs r0, r2
- strh r0, [r1, 0x24]
- adds r2, r3, 0
- b _0815D9AE
- .pool
-_0815D998:
- ldr r2, =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- lsrs r1, r6, 8
- ldrh r4, [r4, 0x1A]
- adds r1, r4
- strh r1, [r0, 0x24]
-_0815D9AE:
- mov r1, r12
- adds r0, r1, r5
- lsls r0, 3
- mov r1, r8
- adds r4, r0, r1
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- movs r1, 0x80
- lsls r1, 8
- ands r0, r1
- cmp r0, 0
- beq _0815D9E0
- movs r1, 0x26
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- lsrs r2, r7, 8
- ldrh r0, [r4, 0x1C]
- subs r0, r2
- b _0815D9F2
- .pool
-_0815D9E0:
- movs r1, 0x26
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- lsrs r0, r7, 8
- ldrh r4, [r4, 0x1C]
- adds r0, r4
-_0815D9F2:
- strh r0, [r1, 0x26]
- mov r2, r12
- adds r0, r2, r5
- lsls r0, 3
- add r0, r8
- movs r1, 0x8
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bgt _0815DA12
- adds r0, r5, 0
- bl DestroyTask
- ldr r1, =gAnimVisualTaskCount
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
-_0815DA12:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815D8D8
-
- thumb_func_start sub_815DA20
-sub_815DA20: @ 815DA20
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r7, 0
- ldr r2, =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r3, r0, r2
- ldrh r0, [r3, 0x8]
- subs r0, 0x1
- strh r0, [r3, 0x8]
- movs r1, 0x14
- ldrsh r0, [r3, r1]
- movs r1, 0x80
- lsls r1, 8
- ands r0, r1
- mov r8, r2
- cmp r0, 0
- beq _0815DAA6
- ldrh r0, [r3, 0xA]
- subs r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _0815DAA6
- movs r2, 0x1A
- ldrsh r0, [r3, r2]
- cmp r0, 0
- bne _0815DA78
- ldrh r0, [r3, 0x10]
- strh r0, [r3, 0x1A]
- negs r0, r0
- strh r0, [r3, 0x10]
- b _0815DA7A
- .pool
-_0815DA78:
- strh r7, [r3, 0x1A]
-_0815DA7A:
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- mov r2, r8
- adds r1, r0, r2
- movs r2, 0x1C
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _0815DA96
- ldrh r0, [r1, 0x12]
- strh r0, [r1, 0x1C]
- negs r0, r0
- strh r0, [r1, 0x12]
- b _0815DA9A
-_0815DA96:
- movs r0, 0
- strh r0, [r1, 0x1C]
-_0815DA9A:
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- add r0, r8
- ldrh r1, [r0, 0x22]
- strh r1, [r0, 0xA]
-_0815DAA6:
- lsls r3, r6, 2
- adds r0, r3, r6
- lsls r0, 3
- mov r1, r8
- adds r4, r0, r1
- ldrh r2, [r4, 0xC]
- ldr r1, =0x00007fff
- adds r0, r1, 0
- ands r0, r2
- ldrh r2, [r4, 0x16]
- adds r0, r2
- lsls r5, r0, 16
- lsrs r0, r5, 16
- mov r9, r0
- ldrh r0, [r4, 0xE]
- ands r1, r0
- ldrh r2, [r4, 0x18]
- adds r1, r2
- lsls r1, 16
- lsrs r7, r1, 16
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- movs r1, 0x80
- lsls r1, 8
- ands r0, r1
- mov r12, r3
- cmp r0, 0
- beq _0815DB00
- ldr r3, =gSprites
- movs r2, 0x26
- ldrsh r0, [r4, r2]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- lsrs r2, r5, 24
- ldrh r0, [r4, 0x1A]
- subs r0, r2
- strh r0, [r1, 0x24]
- adds r2, r3, 0
- b _0815DB16
- .pool
-_0815DB00:
- ldr r2, =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- lsrs r1, r5, 24
- ldrh r4, [r4, 0x1A]
- adds r1, r4
- strh r1, [r0, 0x24]
-_0815DB16:
- mov r1, r12
- adds r0, r1, r6
- lsls r0, 3
- mov r1, r8
- adds r4, r0, r1
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- movs r1, 0x80
- lsls r1, 8
- ands r0, r1
- cmp r0, 0
- beq _0815DB48
- movs r1, 0x26
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- lsrs r2, r7, 8
- ldrh r0, [r4, 0x1C]
- subs r0, r2
- b _0815DB5A
- .pool
-_0815DB48:
- movs r1, 0x26
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- lsrs r0, r7, 8
- ldrh r4, [r4, 0x1C]
- adds r0, r4
-_0815DB5A:
- strh r0, [r1, 0x26]
- mov r2, r12
- adds r0, r2, r6
- lsls r0, 3
- mov r1, r8
- adds r2, r0, r1
- mov r0, r9
- strh r0, [r2, 0x16]
- strh r7, [r2, 0x18]
- movs r1, 0x8
- ldrsh r0, [r2, r1]
- cmp r0, 0
- bgt _0815DB80
- movs r0, 0x1E
- strh r0, [r2, 0x8]
- movs r0, 0
- strh r0, [r2, 0x22]
- ldr r0, =sub_815D8D8
- str r0, [r2]
-_0815DB80:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815DA20
-
- thumb_func_start sub_815DB90
-sub_815DB90: @ 815DB90
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, =gTasks
- mov r8, r0
- lsls r7, r6, 2
- adds r0, r7, r6
- lsls r0, 3
- mov r1, r8
- adds r4, r0, r1
- ldr r1, =gBattlerSpriteIds
- ldr r2, =gBattleAnimAttacker
- ldrb r0, [r2]
- adds r0, r1
- ldrb r0, [r0]
- strh r0, [r4, 0x26]
- ldr r5, =gBattleAnimArgs
- ldrh r0, [r5]
- strh r0, [r4, 0x24]
- ldrh r0, [r5]
- strh r0, [r4, 0x8]
- ldrh r0, [r5, 0xC]
- strh r0, [r4, 0x22]
- movs r3, 0x6
- ldrsh r0, [r5, r3]
- cmp r0, 0
- beq _0815DBD4
- ldrh r0, [r4, 0x14]
- ldr r3, =0xffff8000
- adds r1, r3, 0
- orrs r0, r1
- strh r0, [r4, 0x14]
-_0815DBD4:
- ldrb r0, [r2]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _0815DC04
- ldrh r0, [r5, 0x2]
- strh r0, [r4, 0xC]
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0xE]
- mov r3, r8
- adds r4, r7, 0
- b _0815DC74
- .pool
-_0815DC04:
- movs r7, 0x2
- ldrsh r0, [r5, r7]
- movs r1, 0x80
- lsls r1, 8
- ands r0, r1
- cmp r0, 0
- beq _0815DC20
- ldrh r1, [r5, 0x2]
- ldr r0, =0x00007fff
- ands r0, r1
- b _0815DC28
- .pool
-_0815DC20:
- ldrh r0, [r5, 0x2]
- ldr r2, =0xffff8000
- adds r1, r2, 0
- orrs r0, r1
-_0815DC28:
- strh r0, [r4, 0xC]
- ldr r0, =gBattleAnimArgs
- movs r3, 0x4
- ldrsh r1, [r0, r3]
- movs r2, 0x80
- lsls r2, 8
- ands r1, r2
- adds r5, r0, 0
- cmp r1, 0
- beq _0815DC60
- ldr r3, =gTasks
- lsls r4, r6, 2
- adds r1, r4, r6
- lsls r1, 3
- adds r1, r3
- ldrh r2, [r5, 0x4]
- ldr r0, =0x00007fff
- ands r0, r2
- b _0815DC72
- .pool
-_0815DC60:
- ldr r3, =gTasks
- lsls r4, r6, 2
- adds r1, r4, r6
- lsls r1, 3
- adds r1, r3
- ldrh r2, [r5, 0x4]
- ldr r7, =0xffff8000
- adds r0, r7, 0
- orrs r0, r2
-_0815DC72:
- strh r0, [r1, 0xE]
-_0815DC74:
- adds r0, r4, r6
- lsls r0, 3
- adds r0, r3
- movs r1, 0
- strh r1, [r0, 0x18]
- strh r1, [r0, 0x16]
- ldrh r1, [r5, 0x8]
- strh r1, [r0, 0x10]
- ldrh r1, [r5, 0xA]
- strh r1, [r0, 0x12]
- ldr r1, =sub_815DA20
- str r1, [r0]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815DB90
-
- thumb_func_start sub_815DCA4
-sub_815DCA4: @ 815DCA4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, =gTasks
- adds r5, r0, r1
- ldr r4, =gBattleAnimArgs
- movs r1, 0x2
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0815DCC4
- adds r0, r2, 0
- bl DestroyAnimVisualTask
-_0815DCC4:
- movs r0, 0
- strh r0, [r5, 0x8]
- strh r0, [r5, 0xA]
- strh r0, [r5, 0xC]
- ldrh r0, [r4, 0x2]
- strh r0, [r5, 0xE]
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0815DCE8
- ldr r0, =gBattleAnimAttacker
- b _0815DCEA
- .pool
-_0815DCE8:
- ldr r0, =gBattleAnimTarget
-_0815DCEA:
- ldrb r4, [r0]
- adds r0, r4, 0
- movs r1, 0
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x10]
- adds r0, r4, 0
- movs r1, 0x1
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x12]
- adds r0, r4, 0
- bl GetBattlerSpriteSubpriority
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x14]
- ldr r0, =gBattleAnimArgs
- ldrb r0, [r0]
- bl GetAnimBattlerSpriteId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- strh r1, [r5, 0x26]
- ldr r2, =gUnknown_085CE74C
- adds r0, r5, 0
- bl PrepareAffineAnimInTaskData
- ldr r0, =sub_815DD48
- str r0, [r5]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815DCA4
-
- thumb_func_start sub_815DD48
-sub_815DD48: @ 815DD48
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0815DD6C
- cmp r0, 0x1
- beq _0815DDCC
- b _0815DDDA
- .pool
-_0815DD6C:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x6
- bne _0815DD82
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_815DDE0
-_0815DD82:
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0x12
- bne _0815DD92
- adds r0, r5, 0
- movs r1, 0
- bl sub_815DDE0
-_0815DD92:
- adds r0, r4, 0
- bl RunAffineAnimFromTaskData
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _0815DDDA
- ldrh r0, [r4, 0xE]
- subs r0, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- cmp r0, 0
- bne _0815DDB4
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0815DDDA
-_0815DDB4:
- strh r1, [r4, 0xA]
- ldrh r1, [r4, 0x26]
- lsls r1, 24
- lsrs r1, 24
- ldr r2, =gUnknown_085CE74C
- adds r0, r4, 0
- bl PrepareAffineAnimInTaskData
- b _0815DDDA
- .pool
-_0815DDCC:
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0815DDDA
- adds r0, r5, 0
- bl DestroyAnimVisualTask
-_0815DDDA:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_815DD48
-
- thumb_func_start sub_815DDE0
-sub_815DDE0: @ 815DDE0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r2, =gTasks
- adds r4, r0, r2
- cmp r1, 0
- bne _0815DE08
- movs r1, 0x12
- movs r3, 0xEC
- b _0815DE0C
- .pool
-_0815DE08:
- movs r1, 0x1E
- movs r3, 0x14
-_0815DE0C:
- mov r2, sp
- ldrh r0, [r4, 0x10]
- subs r0, r1
- strh r0, [r2]
- ldrh r0, [r4, 0x10]
- subs r0, r1
- subs r0, 0x4
- strh r0, [r2, 0x2]
- ldrh r0, [r4, 0x10]
- adds r0, r1
- strh r0, [r2, 0x4]
- ldrh r0, [r4, 0x10]
- adds r0, r1
- adds r0, 0x4
- strh r0, [r2, 0x6]
- add r2, sp, 0x8
- lsls r1, r3, 24
- asrs r1, 24
- ldrh r0, [r4, 0x12]
- adds r0, r1
- strh r0, [r2]
- ldrh r0, [r4, 0x12]
- adds r0, r1
- adds r0, 0x6
- strh r0, [r2, 0x2]
- movs r5, 0
- mov r8, r2
- ldr r7, =gSprites
-_0815DE44:
- lsls r0, r5, 1
- add r0, sp
- movs r2, 0
- ldrsh r1, [r0, r2]
- movs r0, 0x1
- ands r0, r5
- lsls r0, 1
- add r0, r8
- movs r3, 0
- ldrsh r2, [r0, r3]
- ldrb r3, [r4, 0x14]
- subs r3, 0x5
- lsls r3, 24
- lsrs r3, 24
- ldr r0, =gUnknown_085CE76C
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _0815DE98
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r7
- movs r0, 0
- strh r0, [r1, 0x2E]
- movs r0, 0x2
- cmp r5, 0x1
- bhi _0815DE86
- movs r2, 0x2
- negs r2, r2
- adds r0, r2, 0
-_0815DE86:
- strh r0, [r1, 0x30]
- ldr r0, =0x0000ffff
- strh r0, [r1, 0x32]
- strh r6, [r1, 0x34]
- movs r0, 0x2
- strh r0, [r1, 0x36]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
-_0815DE98:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x3
- bls _0815DE44
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815DDE0
-
- thumb_func_start sub_815DEBC
-sub_815DEBC: @ 815DEBC
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x30]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x32]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x6
- ble _0815DF02
- ldr r3, =gTasks
- movs r0, 0x36
- ldrsh r1, [r4, r0]
- lsls r1, 1
- movs r0, 0x34
- ldrsh r2, [r4, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r3, 0x8
- adds r1, r3
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- adds r0, r4, 0
- bl DestroySprite
-_0815DF02:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815DEBC
-
- thumb_func_start sub_815DF0C
-sub_815DF0C: @ 815DF0C
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gTasks
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- movs r0, 0
- strh r0, [r4, 0x8]
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0xA]
- ldrb r0, [r1]
- bl GetAnimBattlerSpriteId
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r0, [r1, 0x5]
- lsrs r0, 4
- lsls r0, 4
- movs r2, 0x80
- lsls r2, 1
- adds r1, r2, 0
- adds r0, r1
- strh r0, [r4, 0xC]
- ldr r0, =sub_815DF64
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815DF0C
-
- thumb_func_start sub_815DF64
-sub_815DF64: @ 815DF64
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0815DFB4
- ldrh r0, [r4, 0xC]
- ldr r2, =gUnknown_085CE784
- movs r3, 0x8
- ldrsh r1, [r4, r3]
- lsls r1, 1
- adds r1, r2
- ldrh r3, [r1]
- movs r1, 0x10
- movs r2, 0x8
- bl BlendPalette
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x17
- ble _0815DFA4
- movs r0, 0
- strh r0, [r4, 0x8]
-_0815DFA4:
- ldrh r0, [r4, 0xA]
- subs r0, 0x1
- strh r0, [r4, 0xA]
- b _0815DFC6
- .pool
-_0815DFB4:
- ldrh r0, [r4, 0xC]
- movs r1, 0x10
- movs r2, 0
- movs r3, 0
- bl BlendPalette
- adds r0, r5, 0
- bl DestroyAnimVisualTask
-_0815DFC6:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_815DF64
-
- thumb_func_start sub_815DFCC
-sub_815DFCC: @ 815DFCC
- push {lr}
- sub sp, 0x1C
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0xD0
- lsls r2, 1
- ldr r1, =gBattleAnimAttacker
- ldrb r3, [r1]
- ldr r1, =gBattleAnimArgs
- ldrb r1, [r1]
- str r1, [sp]
- movs r1, 0xA
- str r1, [sp, 0x4]
- movs r1, 0x2
- str r1, [sp, 0x8]
- movs r1, 0x1E
- str r1, [sp, 0xC]
- ldr r1, =gUnknown_08C2DC68
- str r1, [sp, 0x10]
- ldr r1, =gUnknown_08C2DDC4
- str r1, [sp, 0x14]
- ldr r1, =gUnknown_08C2DDA4
- str r1, [sp, 0x18]
- movs r1, 0
- bl sub_8117854
- add sp, 0x1C
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815DFCC
-
- thumb_func_start sub_815E01C
-sub_815E01C: @ 815E01C
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r6, =gBattleAnimAttacker
- ldrb r0, [r6]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0815E038
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1]
- negs r0, r0
- strh r0, [r1]
-_0815E038:
- ldrb r0, [r6]
- movs r1, 0
- bl GetBattlerSpriteCoord
- lsls r0, 24
- ldr r4, =gBattleAnimArgs
- lsrs r0, 24
- ldrh r1, [r4]
- adds r0, r1
- strh r0, [r5, 0x20]
- ldrb r0, [r6]
- movs r1, 0x1
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x2]
- adds r0, r1
- strh r0, [r5, 0x22]
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0815E080
- movs r0, 0xA0
- lsls r0, 2
- strh r0, [r5, 0x2E]
- ldr r0, =0x0000fd80
- strh r0, [r5, 0x30]
- b _0815E0A8
- .pool
-_0815E080:
- cmp r0, 0x1
- bne _0815E09A
- adds r2, r5, 0
- adds r2, 0x3F
- ldrb r0, [r2]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0xA0
- lsls r0, 2
- strh r0, [r5, 0x2E]
- strh r0, [r5, 0x30]
- b _0815E0A8
-_0815E09A:
- adds r0, r5, 0
- movs r1, 0x1
- bl StartSpriteAnim
- movs r0, 0xA0
- lsls r0, 2
- strh r0, [r5, 0x2E]
-_0815E0A8:
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _0815E0C8
- ldrh r0, [r5, 0x2E]
- negs r0, r0
- strh r0, [r5, 0x2E]
- adds r2, r5, 0
- adds r2, 0x3F
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
-_0815E0C8:
- ldr r0, =sub_815E0DC
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815E01C
-
- thumb_func_start sub_815E0DC
-sub_815E0DC: @ 815E0DC
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x2E]
- ldrh r1, [r2, 0x3A]
- adds r0, r1
- strh r0, [r2, 0x3A]
- ldrh r1, [r2, 0x30]
- ldrh r3, [r2, 0x3C]
- adds r1, r3
- strh r1, [r2, 0x3C]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r2, 0x24]
- lsls r1, 16
- asrs r1, 24
- strh r1, [r2, 0x26]
- ldrh r0, [r2, 0x38]
- adds r0, 0x1
- strh r0, [r2, 0x38]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xE
- bne _0815E110
- adds r0, r2, 0
- bl DestroyAnimSprite
-_0815E110:
- pop {r0}
- bx r0
- thumb_func_end sub_815E0DC
-
- thumb_func_start sub_815E114
-sub_815E114: @ 815E114
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks
- adds r6, r1, r0
- bl IsContest
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- beq _0815E144
- movs r0, 0x8
- strh r0, [r6, 0x12]
- movs r0, 0x3
- strh r0, [r6, 0x14]
- movs r0, 0x1
- strh r0, [r6, 0x16]
- b _0815E14E
- .pool
-_0815E144:
- movs r0, 0xC
- strh r0, [r6, 0x12]
- movs r0, 0x3
- strh r0, [r6, 0x14]
- strh r1, [r6, 0x16]
-_0815E14E:
- ldr r5, =gBattleAnimAttacker
- ldrb r0, [r5]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _0815E188
- ldrb r0, [r5]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- adds r4, r0, 0
- ldrb r0, [r5]
- movs r1, 0
- bl sub_80A861C
- lsls r4, 24
- lsrs r4, 24
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _0815E17C
- adds r0, 0x3
-_0815E17C:
- asrs r0, 2
- adds r0, r4, r0
- b _0815E1AC
- .pool
-_0815E188:
- ldrb r0, [r5]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- adds r4, r0, 0
- ldrb r0, [r5]
- movs r1, 0
- bl sub_80A861C
- lsls r4, 24
- lsrs r4, 24
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _0815E1A8
- adds r0, 0x3
-_0815E1A8:
- asrs r0, 2
- subs r0, r4, r0
-_0815E1AC:
- strh r0, [r6, 0x1E]
- ldr r5, =gBattleAnimAttacker
- ldrb r0, [r5]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- adds r4, r0, 0
- ldrb r0, [r5]
- movs r1, 0
- bl sub_80A861C
- lsls r4, 24
- lsrs r4, 24
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _0815E1D0
- adds r0, 0x3
-_0815E1D0:
- asrs r0, 2
- subs r0, r4, r0
- strh r0, [r6, 0x20]
- ldr r4, =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x22]
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x24]
- ldr r0, =sub_815E20C
- str r0, [r6]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815E114
-
- thumb_func_start sub_815E20C
-sub_815E20C: @ 815E20C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x14
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- ldr r1, =gTasks
- adds r5, r0, r1
- movs r0, 0x8
- ldrsh r1, [r5, r0]
- cmp r1, 0
- beq _0815E238
- cmp r1, 0x1
- bne _0815E230
- b _0815E330
-_0815E230:
- b _0815E33E
- .pool
-_0815E238:
- ldrh r0, [r5, 0xA]
- adds r0, 0x1
- strh r0, [r5, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _0815E33E
- strh r1, [r5, 0xA]
- movs r1, 0x1E
- ldrsh r0, [r5, r1]
- movs r2, 0x20
- ldrsh r1, [r5, r2]
- movs r3, 0x22
- ldrsh r2, [r5, r3]
- movs r4, 0x24
- ldrsh r3, [r5, r4]
- ldrb r4, [r5, 0x12]
- str r4, [sp]
- ldrb r4, [r5, 0xC]
- str r4, [sp, 0x4]
- add r4, sp, 0x10
- str r4, [sp, 0x8]
- adds r4, 0x2
- str r4, [sp, 0xC]
- bl sub_815E34C
- movs r6, 0
- mov r8, r4
- ldr r4, =gSprites
-_0815E272:
- add r0, sp, 0x10
- movs r2, 0
- ldrsh r1, [r0, r2]
- mov r3, r8
- movs r0, 0
- ldrsh r2, [r3, r0]
- ldr r0, =gUnknown_085CE7EC
- movs r3, 0x23
- bl CreateSprite
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x40
- beq _0815E306
- movs r1, 0x16
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _0815E2C6
- cmp r6, 0
- bne _0815E2B4
- lsls r2, r3, 4
- adds r1, r2, r3
- lsls r1, 2
- adds r1, r4
- ldrh r0, [r5, 0x14]
- negs r0, r0
- strh r0, [r1, 0x26]
- strh r0, [r1, 0x24]
- b _0815E2EE
- .pool
-_0815E2B4:
- lsls r2, r3, 4
- adds r1, r2, r3
- lsls r1, 2
- adds r1, r4
- ldrh r0, [r5, 0x14]
- strh r0, [r1, 0x26]
- ldrh r0, [r5, 0x14]
- strh r0, [r1, 0x24]
- b _0815E2EE
-_0815E2C6:
- cmp r6, 0
- bne _0815E2DC
- lsls r2, r3, 4
- adds r1, r2, r3
- lsls r1, 2
- adds r1, r4
- ldrh r0, [r5, 0x14]
- negs r0, r0
- strh r0, [r1, 0x24]
- ldrh r0, [r5, 0x14]
- b _0815E2EC
-_0815E2DC:
- lsls r2, r3, 4
- adds r1, r2, r3
- lsls r1, 2
- adds r1, r4
- ldrh r0, [r5, 0x14]
- strh r0, [r1, 0x24]
- ldrh r0, [r5, 0x14]
- negs r0, r0
-_0815E2EC:
- strh r0, [r1, 0x26]
-_0815E2EE:
- ldr r1, =gSprites
- adds r0, r2, r3
- lsls r0, 2
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x2E]
- strh r7, [r0, 0x30]
- movs r1, 0xA
- strh r1, [r0, 0x32]
- ldrh r0, [r5, 0x1C]
- adds r0, 0x1
- strh r0, [r5, 0x1C]
-_0815E306:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x1
- bls _0815E272
- ldrh r2, [r5, 0xC]
- movs r3, 0xC
- ldrsh r1, [r5, r3]
- movs r4, 0x12
- ldrsh r0, [r5, r4]
- cmp r1, r0
- bne _0815E324
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
-_0815E324:
- adds r0, r2, 0x1
- strh r0, [r5, 0xC]
- b _0815E33E
- .pool
-_0815E330:
- movs r1, 0x1C
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _0815E33E
- adds r0, r7, 0
- bl DestroyAnimVisualTask
-_0815E33E:
- add sp, 0x14
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_815E20C
-
- thumb_func_start sub_815E34C
-sub_815E34C: @ 815E34C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- ldr r4, [sp, 0x28]
- ldr r5, [sp, 0x2C]
- ldr r6, [sp, 0x30]
- mov r9, r6
- ldr r6, [sp, 0x34]
- mov r10, r6
- lsls r0, 16
- lsrs r0, 16
- mov r12, r0
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp]
- lsls r2, 16
- lsrs r2, 16
- adds r7, r2, 0
- lsls r3, 16
- lsrs r3, 16
- str r3, [sp, 0x4]
- lsls r4, 24
- lsrs r6, r4, 24
- lsls r5, 24
- lsrs r5, 24
- mov r8, r5
- cmp r5, 0
- bne _0815E394
- mov r2, r9
- strh r0, [r2]
- mov r6, r10
- strh r1, [r6]
- b _0815E3F2
-_0815E394:
- cmp r5, r6
- bcc _0815E3A2
- mov r0, r9
- strh r2, [r0]
- mov r1, r10
- strh r3, [r1]
- b _0815E3F2
-_0815E3A2:
- subs r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- mov r2, r12
- lsls r1, r2, 16
- asrs r1, 16
- lsls r5, r1, 8
- lsls r0, r7, 16
- asrs r0, 16
- subs r0, r1
- lsls r0, 8
- adds r1, r6, 0
- bl __divsi3
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r5, r0
- ldr r2, [sp]
- lsls r1, r2, 16
- asrs r1, 16
- lsls r4, r1, 8
- ldr r2, [sp, 0x4]
- lsls r0, r2, 16
- asrs r0, 16
- subs r0, r1
- lsls r0, 8
- adds r1, r6, 0
- bl __divsi3
- mov r6, r8
- muls r6, r0
- adds r0, r6, 0
- adds r4, r0
- asrs r5, 8
- mov r0, r9
- strh r5, [r0]
- asrs r4, 8
- mov r1, r10
- strh r4, [r1]
-_0815E3F2:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_815E34C
-
- thumb_func_start sub_815E404
-sub_815E404: @ 815E404
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x24
- ble _0815E43A
- ldr r3, =gTasks
- movs r0, 0x32
- ldrsh r1, [r4, r0]
- lsls r1, 1
- movs r0, 0x30
- ldrsh r2, [r4, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r3, 0x8
- adds r1, r3
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- adds r0, r4, 0
- bl DestroySprite
-_0815E43A:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815E404
-
- thumb_func_start sub_815E444
-sub_815E444: @ 815E444
- push {r4,lr}
- adds r4, r0, 0
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1]
- strh r0, [r4, 0x20]
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0x22]
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x32]
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x36]
- ldrh r0, [r1, 0x8]
- strh r0, [r4, 0x2E]
- ldr r1, =DestroyAnimSprite
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r0, =sub_80A70C0
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815E444
-
- thumb_func_start sub_815E47C
-sub_815E47C: @ 815E47C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- lsls r0, 2
- add r0, r9
- lsls r0, 3
- ldr r1, =gTasks
- adds r7, r0, r1
- ldr r0, =gBattleAnimAttacker
- mov r10, r0
- ldrb r0, [r0]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r7, 0x1E]
- mov r1, r10
- ldrb r0, [r1]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r7, 0x20]
- ldr r0, =gBattleAnimTarget
- mov r8, r0
- ldrb r0, [r0]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r7, 0x22]
- mov r1, r8
- ldrb r0, [r1]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- adds r4, r0, 0
- mov r1, r8
- ldrb r0, [r1]
- movs r1, 0
- bl sub_80A861C
- lsls r4, 24
- lsrs r4, 24
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _0815E4EE
- adds r0, 0x3
-_0815E4EE:
- asrs r0, 2
- adds r0, r4, r0
- strh r0, [r7, 0x24]
- ldr r4, =gUnknown_085CE84C
- movs r0, 0x1E
- ldrsh r5, [r7, r0]
- movs r1, 0x20
- ldrsh r6, [r7, r1]
- mov r1, r8
- ldrb r0, [r1]
- bl GetBattlerSpriteSubpriority
- adds r3, r0, 0
- subs r3, 0x5
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r6, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r7, 0x26]
- cmp r0, 0x40
- beq _0815E5B8
- ldr r4, =gSprites
- movs r0, 0x26
- ldrsh r1, [r7, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x10
- strh r1, [r0, 0x2E]
- movs r0, 0x26
- ldrsh r1, [r7, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r7, 0x22]
- strh r1, [r0, 0x32]
- movs r0, 0x26
- ldrsh r1, [r7, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r7, 0x24]
- strh r1, [r0, 0x36]
- movs r0, 0x26
- ldrsh r1, [r7, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, =0x0000ffe0
- strh r1, [r0, 0x38]
- movs r0, 0x26
- ldrsh r1, [r7, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl InitAnimArcTranslation
- mov r1, r10
- ldrb r0, [r1]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0815E596
- movs r0, 0x26
- ldrsh r1, [r7, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x1
- bl StartSpriteAffineAnim
-_0815E596:
- ldr r0, =sub_815E5CC
- str r0, [r7]
- b _0815E5BE
- .pool
-_0815E5B8:
- mov r0, r9
- bl DestroyAnimVisualTask
-_0815E5BE:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_815E47C
-
- thumb_func_start sub_815E5CC
-sub_815E5CC: @ 815E5CC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, =gTasks
- adds r4, r0, r1
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- cmp r1, 0x1
- beq _0815E634
- cmp r1, 0x1
- bgt _0815E5F4
- cmp r1, 0
- beq _0815E5FE
- b _0815E6D2
- .pool
-_0815E5F4:
- cmp r1, 0x2
- beq _0815E658
- cmp r1, 0x3
- beq _0815E6CC
- b _0815E6D2
-_0815E5FE:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _0815E6D2
- strh r1, [r4, 0xA]
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r0, r1
- bl TranslateAnimArc
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- ble _0815E6D2
- b _0815E6BE
- .pool
-_0815E634:
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r0, r1
- bl TranslateAnimArc
- lsls r0, 24
- cmp r0, 0
- beq _0815E6D2
- movs r0, 0
- strh r0, [r4, 0xA]
- strh r0, [r4, 0xC]
- b _0815E6BE
- .pool
-_0815E658:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _0815E6D2
- movs r0, 0
- strh r0, [r4, 0xA]
- ldrh r2, [r4, 0xC]
- adds r2, 0x1
- strh r2, [r4, 0xC]
- ldr r5, =gSprites
- movs r1, 0x26
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- movs r0, 0x1
- ands r2, r0
- adds r1, 0x3E
- lsls r2, 2
- ldrb r3, [r1]
- subs r0, 0x6
- ands r0, r3
- orrs r0, r2
- strb r0, [r1]
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0x10
- bne _0815E6D2
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r0, [r0, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- bl DestroySprite
-_0815E6BE:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0815E6D2
- .pool
-_0815E6CC:
- adds r0, r2, 0
- bl DestroyAnimVisualTask
-_0815E6D2:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_815E5CC
-
- thumb_func_start sub_815E6D8
-sub_815E6D8: @ 815E6D8
- push {r4-r6,lr}
- adds r4, r0, 0
- ldr r0, =gBattleAnimArgs
- movs r2, 0
- ldrsh r1, [r0, r2]
- adds r6, r0, 0
- cmp r1, 0
- bne _0815E6F4
- ldr r0, =gBattleAnimAttacker
- b _0815E6F6
- .pool
-_0815E6F4:
- ldr r0, =gBattleAnimTarget
-_0815E6F6:
- ldrb r5, [r0]
- ldrh r2, [r4, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- adds r1, 0x10
- ldr r3, =0x000003ff
- adds r0, r3, 0
- ands r1, r0
- ldr r0, =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r4, 0x4]
- adds r1, r6, 0
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x3A]
- movs r2, 0x2
- ldrsh r0, [r1, r2]
- movs r1, 0x1
- cmp r0, 0
- bne _0815E724
- movs r3, 0x1
- negs r3, r3
- adds r1, r3, 0
-_0815E724:
- strh r1, [r4, 0x3C]
- adds r0, r5, 0
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x22]
- movs r1, 0x2
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _0815E768
- ldrb r2, [r4, 0x3]
- lsls r1, r2, 26
- lsrs r1, 27
- movs r0, 0x8
- orrs r1, r0
- lsls r1, 1
- subs r0, 0x47
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x3]
- adds r0, r5, 0
- movs r1, 0x4
- bl sub_80A861C
- subs r0, 0x8
- b _0815E772
- .pool
-_0815E768:
- adds r0, r5, 0
- movs r1, 0x5
- bl sub_80A861C
- adds r0, 0x8
-_0815E772:
- strh r0, [r4, 0x20]
- ldr r0, =sub_815E784
- str r0, [r4, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815E6D8
-
- thumb_func_start sub_815E784
-sub_815E784: @ 815E784
- push {lr}
- adds r2, r0, 0
- movs r0, 0x2E
- ldrsh r1, [r2, r0]
- cmp r1, 0x1
- beq _0815E7CC
- cmp r1, 0x1
- bgt _0815E79A
- cmp r1, 0
- beq _0815E7A4
- b _0815E83C
-_0815E79A:
- cmp r1, 0x2
- beq _0815E7DC
- cmp r1, 0x3
- beq _0815E802
- b _0815E83C
-_0815E7A4:
- ldrh r0, [r2, 0x30]
- adds r0, 0x1
- strh r0, [r2, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _0815E83C
- strh r1, [r2, 0x30]
- ldrh r0, [r2, 0x3C]
- ldrh r1, [r2, 0x24]
- adds r0, r1
- strh r0, [r2, 0x24]
- ldrh r0, [r2, 0x32]
- adds r0, 0x1
- strh r0, [r2, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xC
- bne _0815E83C
- b _0815E7FA
-_0815E7CC:
- ldrh r0, [r2, 0x30]
- adds r0, 0x1
- strh r0, [r2, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- bne _0815E83C
- b _0815E7F6
-_0815E7DC:
- movs r0, 0x3C
- ldrsh r1, [r2, r0]
- lsls r1, 2
- ldrh r0, [r2, 0x24]
- subs r0, r1
- strh r0, [r2, 0x24]
- ldrh r0, [r2, 0x30]
- adds r0, 0x1
- strh r0, [r2, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x6
- bne _0815E83C
-_0815E7F6:
- movs r0, 0
- strh r0, [r2, 0x30]
-_0815E7FA:
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
- b _0815E83C
-_0815E802:
- movs r0, 0x3C
- ldrsh r1, [r2, r0]
- lsls r0, r1, 1
- adds r0, r1
- ldrh r1, [r2, 0x24]
- adds r0, r1
- strh r0, [r2, 0x24]
- ldrh r0, [r2, 0x30]
- adds r0, 0x1
- strh r0, [r2, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- bne _0815E83C
- ldrh r0, [r2, 0x3A]
- subs r0, 0x1
- strh r0, [r2, 0x3A]
- lsls r0, 16
- cmp r0, 0
- beq _0815E836
- movs r0, 0
- strh r0, [r2, 0x30]
- ldrh r0, [r2, 0x2E]
- subs r0, 0x1
- strh r0, [r2, 0x2E]
- b _0815E83C
-_0815E836:
- adds r0, r2, 0
- bl DestroyAnimSprite
-_0815E83C:
- pop {r0}
- bx r0
- thumb_func_end sub_815E784
-
- thumb_func_start sub_815E840
-sub_815E840: @ 815E840
- push {r4,lr}
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r2, =gBattleAnimArgs
- movs r3, 0
- ldrsh r0, [r2, r3]
- cmp r0, 0
- bne _0815E85C
- adds r0, r1, 0
- bl DestroyAnimVisualTask
- b _0815E884
- .pool
-_0815E85C:
- ldr r0, =gTasks
- lsls r4, r1, 2
- adds r4, r1
- lsls r4, 3
- adds r4, r0
- ldrh r0, [r2, 0x2]
- strh r0, [r4, 0x8]
- ldrb r0, [r2]
- bl GetAnimBattlerSpriteId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- strh r1, [r4, 0x26]
- ldr r2, =gUnknown_085CE87C
- adds r0, r4, 0
- bl PrepareAffineAnimInTaskData
- ldr r0, =sub_815E898
- str r0, [r4]
-_0815E884:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815E840
-
- thumb_func_start sub_815E898
-sub_815E898: @ 815E898
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, =gTasks
- adds r4, r0, r1
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _0815E8F2
- movs r0, 0
- strh r0, [r4, 0xA]
- ldrh r1, [r4, 0xC]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0815E8E0
- ldr r2, =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x2
- b _0815E8F0
- .pool
-_0815E8E0:
- ldr r2, =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, =0x0000fffe
-_0815E8F0:
- strh r1, [r0, 0x24]
-_0815E8F2:
- adds r0, r4, 0
- bl RunAffineAnimFromTaskData
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _0815E94E
- ldr r2, =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r5, [r0, 0x24]
- ldrh r0, [r4, 0x8]
- subs r0, 0x1
- strh r0, [r4, 0x8]
- lsls r0, 16
- cmp r0, 0
- beq _0815E948
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, =gTasks
- adds r0, r1
- ldrh r1, [r0, 0x26]
- lsls r1, 24
- lsrs r1, 24
- ldr r2, =gUnknown_085CE87C
- bl PrepareAffineAnimInTaskData
- strh r5, [r4, 0xA]
- strh r5, [r4, 0xC]
- b _0815E94E
- .pool
-_0815E948:
- adds r0, r6, 0
- bl DestroyAnimVisualTask
-_0815E94E:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_815E898
-
- thumb_func_start sub_815E954
-sub_815E954: @ 815E954
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _0815E970
- ldr r4, =gBattleAnimAttacker
- b _0815E972
- .pool
-_0815E970:
- ldr r4, =gBattleAnimTarget
-_0815E972:
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_80A861C
- strh r0, [r5, 0x22]
- movs r1, 0x22
- ldrsh r0, [r5, r1]
- cmp r0, 0x7
- bgt _0815E996
- movs r0, 0x8
- strh r0, [r5, 0x22]
-_0815E996:
- movs r2, 0
- strh r2, [r5, 0x2E]
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1, 0x2]
- strh r0, [r5, 0x30]
- strh r2, [r5, 0x32]
- ldrh r0, [r1, 0x4]
- strh r0, [r5, 0x34]
- ldr r0, =sub_815E9BC
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815E954
-
- thumb_func_start sub_815E9BC
-sub_815E9BC: @ 815E9BC
- push {lr}
- adds r3, r0, 0
- ldrh r0, [r3, 0x2E]
- adds r0, 0x1
- strh r0, [r3, 0x2E]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x30
- ldrsh r1, [r3, r2]
- cmp r0, r1
- blt _0815EA10
- movs r0, 0
- strh r0, [r3, 0x2E]
- ldrh r1, [r3, 0x32]
- adds r1, 0x1
- movs r0, 0x1
- ands r1, r0
- strh r1, [r3, 0x32]
- movs r0, 0x3E
- adds r0, r3
- mov r12, r0
- lsls r1, 2
- ldrb r2, [r0]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- mov r1, r12
- strb r0, [r1]
- movs r2, 0x32
- ldrsh r0, [r3, r2]
- cmp r0, 0
- beq _0815EA10
- ldrh r0, [r3, 0x34]
- subs r0, 0x1
- strh r0, [r3, 0x34]
- lsls r0, 16
- cmp r0, 0
- bne _0815EA10
- adds r0, r3, 0
- bl DestroyAnimSprite
-_0815EA10:
- pop {r0}
- bx r0
- thumb_func_end sub_815E9BC
-
- thumb_func_start sub_815EA14
-sub_815EA14: @ 815EA14
- push {lr}
- adds r3, r0, 0
- ldr r0, =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _0815EA44
- ldrb r2, [r3, 0x3]
- lsls r1, r2, 26
- lsrs r1, 27
- movs r0, 0x8
- orrs r1, r0
- lsls r1, 1
- subs r0, 0x47
- ands r0, r2
- orrs r0, r1
- strb r0, [r3, 0x3]
- movs r0, 0x64
- strh r0, [r3, 0x20]
- movs r0, 0x1
- b _0815EA4A
- .pool
-_0815EA44:
- movs r0, 0x8C
- strh r0, [r3, 0x20]
- ldr r0, =0x0000ffff
-_0815EA4A:
- strh r0, [r3, 0x3C]
- movs r0, 0x38
- strh r0, [r3, 0x22]
- ldr r0, =sub_815EA60
- str r0, [r3, 0x1C]
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815EA14
-
- thumb_func_start sub_815EA60
-sub_815EA60: @ 815EA60
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x8
- bls _0815EA6E
- b _0815EC40
-_0815EA6E:
- lsls r0, 2
- ldr r1, =_0815EA7C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_0815EA7C:
- .4byte _0815EAA0
- .4byte _0815EAD2
- .4byte _0815EAE4
- .4byte _0815EB24
- .4byte _0815EB36
- .4byte _0815EB74
- .4byte _0815EBD8
- .4byte _0815EBF8
- .4byte _0815EC1E
-_0815EAA0:
- movs r3, 0x3C
- ldrsh r0, [r4, r3]
- lsls r0, 1
- ldrh r1, [r4, 0x22]
- subs r1, r0
- strh r1, [r4, 0x22]
- ldrh r2, [r4, 0x30]
- movs r0, 0x1
- ands r0, r2
- cmp r0, 0
- beq _0815EAC2
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- lsls r1, 1
- ldrh r0, [r4, 0x20]
- subs r0, r1
- strh r0, [r4, 0x20]
-_0815EAC2:
- adds r0, r2, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x9
- beq _0815EAD0
- b _0815EC40
-_0815EAD0:
- b _0815EC12
-_0815EAD2:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- beq _0815EAE2
- b _0815EC40
-_0815EAE2:
- b _0815EC12
-_0815EAE4:
- ldrh r2, [r4, 0x30]
- adds r2, 0x1
- strh r2, [r4, 0x30]
- movs r3, 0x3C
- ldrsh r1, [r4, r3]
- lsls r0, r1, 1
- adds r0, r1
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldr r3, =gSineTable
- movs r0, 0x30
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r0, [r0]
- lsls r0, 16
- asrs r0, 19
- ldrh r1, [r4, 0x3C]
- muls r0, r1
- strh r0, [r4, 0x24]
- lsls r2, 16
- asrs r2, 16
- cmp r2, 0xC
- beq _0815EB1C
- b _0815EC40
-_0815EB1C:
- b _0815EC12
- .pool
-_0815EB24:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- beq _0815EB34
- b _0815EC40
-_0815EB34:
- b _0815EC12
-_0815EB36:
- ldrh r2, [r4, 0x30]
- adds r2, 0x1
- strh r2, [r4, 0x30]
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- lsls r1, r0, 1
- adds r1, r0
- ldrh r0, [r4, 0x22]
- subs r0, r1
- strh r0, [r4, 0x22]
- ldr r3, =gSineTable
- movs r0, 0x30
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r0, [r0]
- lsls r0, 16
- asrs r0, 19
- ldrh r1, [r4, 0x3C]
- muls r0, r1
- strh r0, [r4, 0x24]
- lsls r2, 16
- asrs r2, 16
- cmp r2, 0xC
- bne _0815EC40
- b _0815EC16
- .pool
-_0815EB74:
- ldrh r2, [r4, 0x30]
- adds r2, 0x1
- strh r2, [r4, 0x30]
- movs r3, 0x3C
- ldrsh r1, [r4, r3]
- lsls r0, r1, 1
- adds r0, r1
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldr r3, =gSineTable
- movs r0, 0x30
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r0, [r0]
- lsls r0, 16
- asrs r0, 19
- ldrh r1, [r4, 0x3C]
- muls r0, r1
- strh r0, [r4, 0x24]
- lsls r2, 16
- asrs r2, 16
- cmp r2, 0xF
- bne _0815EBC0
- ldrh r2, [r4, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- adds r1, 0x10
- ldr r3, =0x000003ff
- adds r0, r3, 0
- ands r1, r0
- ldr r0, =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r4, 0x4]
-_0815EBC0:
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- cmp r0, 0x12
- bne _0815EC40
- b _0815EC12
- .pool
-_0815EBD8:
- movs r3, 0x3C
- ldrsh r0, [r4, r3]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 1
- ldrh r0, [r4, 0x20]
- adds r1, r0
- strh r1, [r4, 0x20]
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x9
- bne _0815EC40
- b _0815EC12
-_0815EBF8:
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- lsls r0, 1
- ldrh r3, [r4, 0x20]
- adds r0, r3
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bne _0815EC40
-_0815EC12:
- movs r0, 0
- strh r0, [r4, 0x30]
-_0815EC16:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _0815EC40
-_0815EC1E:
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- lsls r1, r0, 1
- adds r1, r0
- ldrh r0, [r4, 0x20]
- subs r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- bne _0815EC40
- adds r0, r4, 0
- bl DestroyAnimSprite
-_0815EC40:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_815EA60
-
- thumb_func_start sub_815EC48
-sub_815EC48: @ 815EC48
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks
- adds r6, r1, r0
- movs r0, 0
- bl GetAnimBattlerSpriteId
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x26]
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _0815ECD0
- bl IsDoubleBattle
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x1
- bne _0815ECB4
- ldr r5, =gBattleAnimAttacker
- ldrb r0, [r5]
- movs r1, 0
- bl GetBattlerSpriteCoord
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldrb r1, [r5]
- movs r0, 0x2
- eors r0, r1
- movs r1, 0
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- ble _0815ECAC
- strh r7, [r6, 0x24]
- b _0815ECD4
- .pool
-_0815ECAC:
- ldr r0, =0x0000ffff
- b _0815ECD2
- .pool
-_0815ECB4:
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _0815ECD0
- ldr r0, =0x0000ffff
- b _0815ECD2
- .pool
-_0815ECD0:
- movs r0, 0x1
-_0815ECD2:
- strh r0, [r6, 0x24]
-_0815ECD4:
- ldr r0, =sub_815ECE4
- str r0, [r6]
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815EC48
-
- thumb_func_start sub_815ECE4
-sub_815ECE4: @ 815ECE4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, =gTasks
- adds r3, r0, r1
- movs r1, 0x8
- ldrsh r0, [r3, r1]
- cmp r0, 0x8
- bls _0815ECFE
- b _0815EE78
-_0815ECFE:
- lsls r0, 2
- ldr r1, =_0815ED10
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_0815ED10:
- .4byte _0815ED34
- .4byte _0815ED46
- .4byte _0815ED78
- .4byte _0815EDA8
- .4byte _0815EDCE
- .4byte _0815EDF8
- .4byte _0815EE08
- .4byte _0815EE28
- .4byte _0815EE60
-_0815ED34:
- ldrh r0, [r3, 0xA]
- adds r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xD
- beq _0815ED44
- b _0815EE78
-_0815ED44:
- b _0815EE50
-_0815ED46:
- ldr r2, =gSprites
- movs r1, 0x26
- ldrsh r0, [r3, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r2, 0x24
- ldrsh r0, [r3, r2]
- lsls r2, r0, 1
- adds r2, r0
- ldrh r0, [r1, 0x24]
- subs r0, r2
- strh r0, [r1, 0x24]
- ldrh r0, [r3, 0xA]
- adds r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x6
- beq _0815ED72
- b _0815EE78
-_0815ED72:
- b _0815EE50
- .pool
-_0815ED78:
- ldr r2, =gSprites
- movs r1, 0x26
- ldrsh r0, [r3, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r0, 0x24
- ldrsh r2, [r3, r0]
- lsls r0, r2, 1
- adds r0, r2
- ldrh r2, [r1, 0x24]
- adds r0, r2
- strh r0, [r1, 0x24]
- ldrh r0, [r3, 0xA]
- adds r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x6
- bne _0815EE78
- b _0815EE50
- .pool
-_0815EDA8:
- ldrh r0, [r3, 0xA]
- adds r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- bne _0815EE78
- movs r0, 0
- strh r0, [r3, 0xA]
- ldrh r1, [r3, 0xC]
- movs r2, 0xC
- ldrsh r0, [r3, r2]
- cmp r0, 0
- bne _0815EE54
- adds r0, r1, 0x1
- strh r0, [r3, 0xC]
- movs r0, 0x1
- strh r0, [r3, 0x8]
- b _0815EE78
-_0815EDCE:
- ldr r2, =gSprites
- movs r0, 0x26
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r3, 0x24]
- ldrh r2, [r0, 0x24]
- adds r1, r2
- strh r1, [r0, 0x24]
- ldrh r0, [r3, 0xA]
- adds r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- bne _0815EE78
- b _0815EE50
- .pool
-_0815EDF8:
- ldrh r0, [r3, 0xA]
- adds r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x6
- bne _0815EE78
- b _0815EE50
-_0815EE08:
- ldr r2, =gSprites
- movs r1, 0x26
- ldrsh r0, [r3, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r0, 0x24
- ldrsh r2, [r3, r0]
- lsls r2, 2
- ldrh r0, [r1, 0x24]
- subs r0, r2
- b _0815EE40
- .pool
-_0815EE28:
- ldr r2, =gSprites
- movs r1, 0x26
- ldrsh r0, [r3, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r2, 0x24
- ldrsh r0, [r3, r2]
- lsls r0, 2
- ldrh r2, [r1, 0x24]
- adds r0, r2
-_0815EE40:
- strh r0, [r1, 0x24]
- ldrh r0, [r3, 0xA]
- adds r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- bne _0815EE78
-_0815EE50:
- movs r0, 0
- strh r0, [r3, 0xA]
-_0815EE54:
- ldrh r0, [r3, 0x8]
- adds r0, 0x1
- strh r0, [r3, 0x8]
- b _0815EE78
- .pool
-_0815EE60:
- ldr r2, =gSprites
- movs r0, 0x26
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0
- strh r1, [r0, 0x24]
- adds r0, r4, 0
- bl DestroyAnimVisualTask
-_0815EE78:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815ECE4
-
- thumb_func_start sub_815EE84
-sub_815EE84: @ 815EE84
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _0815EEA8
- adds r0, r4, 0
- movs r1, 0x1
- bl InitAnimSpritePos
- ldr r0, =gBattleAnimAttacker
- b _0815EEAA
- .pool
-_0815EEA8:
- ldr r0, =gBattleAnimTarget
-_0815EEAA:
- ldrb r0, [r0]
- strh r0, [r4, 0x3C]
- ldrh r0, [r4, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0815EECE
- ldrb r0, [r4, 0x3]
- movs r1, 0x3F
- negs r1, r1
- ands r1, r0
- movs r0, 0x10
- orrs r1, r0
- strb r1, [r4, 0x3]
-_0815EECE:
- ldrh r0, [r4, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- bl sub_80A8328
- movs r2, 0x3
- ands r2, r0
- lsls r2, 2
- ldrb r3, [r4, 0x5]
- movs r1, 0xD
- negs r1, r1
- adds r0, r1, 0
- ands r0, r3
- orrs r0, r2
- strb r0, [r4, 0x5]
- ldrb r0, [r4, 0x1]
- ands r1, r0
- movs r0, 0x4
- orrs r1, r0
- strb r1, [r4, 0x1]
- ldr r0, =sub_815EF08
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815EE84
-
- thumb_func_start sub_815EF08
-sub_815EF08: @ 815EF08
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bls _0815EF16
- b _0815F106
-_0815EF16:
- lsls r0, 2
- ldr r1, =_0815EF24
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_0815EF24:
- .4byte _0815EF38
- .4byte _0815F038
- .4byte _0815F0A0
- .4byte _0815F0B4
- .4byte _0815F100
-_0815EF38:
- movs r2, 0x3A
- ldrsh r0, [r4, r2]
- cmp r0, 0x5
- bhi _0815EF68
- lsls r0, 2
- ldr r1, =_0815EF50
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_0815EF50:
- .4byte _0815EF6C
- .4byte _0815EF88
- .4byte _0815EFAA
- .4byte _0815EFC6
- .4byte _0815EF6C
- .4byte _0815EFEC
-_0815EF68:
- movs r0, 0
- strh r0, [r4, 0x3A]
-_0815EF6C:
- ldrh r0, [r4, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x5
- bl sub_80A861C
- subs r0, 0x4
- lsls r0, 16
- lsrs r5, r0, 16
- ldrh r0, [r4, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x3
- b _0815EFE0
-_0815EF88:
- ldrh r0, [r4, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x5
- bl sub_80A861C
- subs r0, 0x4
- lsls r0, 16
- lsrs r5, r0, 16
- ldrh r0, [r4, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- bl sub_80A861C
- adds r0, 0x4
- b _0815EFE6
-_0815EFAA:
- ldrh r0, [r4, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x4
- bl sub_80A861C
- adds r0, 0x4
- lsls r0, 16
- lsrs r5, r0, 16
- ldrh r0, [r4, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x3
- b _0815EFE0
-_0815EFC6:
- ldrh r0, [r4, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x4
- bl sub_80A861C
- adds r0, 0x4
- lsls r0, 16
- lsrs r5, r0, 16
- ldrh r0, [r4, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
-_0815EFE0:
- bl sub_80A861C
- subs r0, 0x4
-_0815EFE6:
- lsls r0, 16
- lsrs r1, r0, 16
- b _0815F00C
-_0815EFEC:
- ldrh r0, [r4, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r5, r0, 24
- ldrh r0, [r4, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r1, r0, 24
-_0815F00C:
- movs r2, 0x3A
- ldrsh r0, [r4, r2]
- cmp r0, 0x4
- bne _0815F018
- movs r0, 0x18
- b _0815F022
-_0815F018:
- cmp r0, 0x5
- bne _0815F020
- movs r0, 0x6
- b _0815F022
-_0815F020:
- movs r0, 0xC
-_0815F022:
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x20]
- strh r0, [r4, 0x30]
- strh r5, [r4, 0x32]
- ldrh r0, [r4, 0x22]
- strh r0, [r4, 0x34]
- strh r1, [r4, 0x36]
- adds r0, r4, 0
- bl InitAnimLinearTranslation
- b _0815F0F8
-_0815F038:
- adds r0, r4, 0
- bl TranslateAnimLinear
- lsls r0, 24
- cmp r0, 0
- beq _0815F106
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- beq _0815F070
- cmp r0, 0x5
- beq _0815F090
- ldrh r0, [r4, 0x24]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- movs r1, 0
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x26]
- ldrh r2, [r4, 0x22]
- adds r0, r2
- strh r0, [r4, 0x22]
- strh r1, [r4, 0x26]
- strh r1, [r4, 0x24]
- strh r1, [r4, 0x2E]
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- strh r0, [r4, 0x38]
- b _0815F088
-_0815F070:
- ldrh r0, [r4, 0x24]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- movs r1, 0
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x26]
- ldrh r2, [r4, 0x22]
- adds r0, r2
- strh r0, [r4, 0x22]
- strh r1, [r4, 0x26]
- strh r1, [r4, 0x24]
- strh r1, [r4, 0x38]
-_0815F088:
- ldrh r0, [r4, 0x3A]
- adds r0, 0x1
- strh r0, [r4, 0x3A]
- b _0815F106
-_0815F090:
- movs r0, 0
- strh r0, [r4, 0x2E]
- movs r1, 0x10
- strh r1, [r4, 0x30]
- strh r0, [r4, 0x32]
- movs r0, 0x3
- strh r0, [r4, 0x38]
- b _0815F106
-_0815F0A0:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bne _0815F106
- movs r0, 0
- strh r0, [r4, 0x38]
- b _0815F106
-_0815F0B4:
- ldrh r1, [r4, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0815F0C6
- ldrh r0, [r4, 0x30]
- subs r0, 0x1
- strh r0, [r4, 0x30]
- b _0815F0CC
-_0815F0C6:
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
-_0815F0CC:
- ldrh r1, [r4, 0x32]
- lsls r1, 8
- ldrh r0, [r4, 0x30]
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x20
- bne _0815F106
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
-_0815F0F8:
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- strh r0, [r4, 0x38]
- b _0815F106
-_0815F100:
- adds r0, r4, 0
- bl DestroyAnimSprite
-_0815F106:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_815EF08
-
- thumb_func_start sub_815F10C
-sub_815F10C: @ 815F10C
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- movs r2, 0x2E
- ldrsh r1, [r4, r2]
- subs r0, r1
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- muls r0, r1
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- bl __divsi3
- adds r5, r0, 0
- strh r5, [r4, 0x24]
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- movs r2, 0x30
- ldrsh r1, [r4, r2]
- subs r0, r1
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- muls r0, r1
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- bl __divsi3
- adds r3, r0, 0
- strh r3, [r4, 0x26]
- ldrh r1, [r4, 0x38]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0815F16A
- ldr r0, =gUnknown_085CE3A0
- ldrh r1, [r4, 0x20]
- adds r1, r5
- lsls r1, 16
- asrs r1, 16
- ldrh r2, [r4, 0x22]
- adds r2, r3
- lsls r2, 16
- asrs r2, 16
- movs r3, 0x5
- bl CreateSprite
-_0815F16A:
- movs r0, 0x38
- ldrsh r1, [r4, r0]
- movs r2, 0x36
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _0815F17C
- adds r0, r4, 0
- bl DestroyAnimSprite
-_0815F17C:
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- strh r0, [r4, 0x38]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815F10C
-
- thumb_func_start sub_815F18C
-sub_815F18C: @ 815F18C
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _0815F1B8
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _0815F1D0
-_0815F1B8:
- ldr r2, =gBattleAnimArgs
- ldrh r1, [r5, 0x20]
- ldrh r0, [r2]
- subs r0, r1, r0
- strh r0, [r5, 0x2E]
- ldrh r0, [r2, 0x4]
- subs r1, r0
- b _0815F1DE
- .pool
-_0815F1D0:
- ldr r2, =gBattleAnimArgs
- ldrh r1, [r5, 0x20]
- ldrh r0, [r2]
- adds r0, r1, r0
- strh r0, [r5, 0x2E]
- ldrh r0, [r2, 0x4]
- adds r1, r0
-_0815F1DE:
- strh r1, [r5, 0x32]
- adds r3, r2, 0
- ldrh r1, [r5, 0x22]
- ldrh r2, [r3, 0x2]
- adds r2, r1, r2
- strh r2, [r5, 0x30]
- ldrh r0, [r3, 0x6]
- adds r1, r0
- strh r1, [r5, 0x34]
- ldrh r0, [r3, 0x8]
- strh r0, [r5, 0x36]
- ldrh r0, [r5, 0x2E]
- strh r0, [r5, 0x20]
- strh r2, [r5, 0x22]
- ldr r0, =sub_815F10C
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815F18C
-
- thumb_func_start AnimTask_MonToSubstitute
-AnimTask_MonToSubstitute: @ 815F20C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r0, 0
- bl GetAnimBattlerSpriteId
- lsls r0, 24
- lsrs r5, r0, 24
- adds r2, r5, 0
- ldr r0, =gTasks
- mov r9, r0
- lsls r7, r6, 2
- adds r0, r7, r6
- lsls r0, 3
- mov r8, r0
- mov r4, r8
- add r4, r9
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0815F254
- adds r0, r5, 0
- movs r1, 0
- bl PrepareBattlerSpriteForRotScale
- movs r0, 0x80
- lsls r0, 1
- strh r0, [r4, 0xA]
- strh r0, [r4, 0xC]
- b _0815F2A0
- .pool
-_0815F254:
- cmp r0, 0x1
- bne _0815F2AC
- ldrh r0, [r4, 0xA]
- adds r0, 0x60
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0xC]
- subs r0, 0xD
- strh r0, [r4, 0xC]
- movs r2, 0xA
- ldrsh r1, [r4, r2]
- movs r0, 0xC
- ldrsh r2, [r4, r0]
- adds r0, r5, 0
- movs r3, 0
- bl SetSpriteRotScale
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x9
- bne _0815F310
- movs r0, 0
- strh r0, [r4, 0xE]
- adds r0, r5, 0
- bl ResetSpriteRotScale
- ldr r1, =gSprites
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- adds r0, r1
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
-_0815F2A0:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0815F310
- .pool
-_0815F2AC:
- ldr r4, =gBattleAnimAttacker
- ldrb r0, [r4]
- movs r1, 0
- bl LoadBattleMonGfxAndAnimate
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _0815F2EE
- ldr r3, =gSprites
- ldr r2, =gBattlerSpriteIds
- ldrb r0, [r4]
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r3, 0
- adds r1, 0x10
- adds r0, r1
- ldr r1, =gUnknown_082FF6C0
- str r1, [r0]
- ldrb r0, [r4]
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r1, 0
- bl StartSpriteAffineAnim
-_0815F2EE:
- mov r4, r9
- adds r3, r7, 0
- ldr r5, =sub_815F330
- movs r1, 0xF
- mov r2, r8
- adds r0, r4, r2
- adds r0, 0x26
- movs r2, 0
-_0815F2FE:
- strh r2, [r0]
- subs r0, 0x2
- subs r1, 0x1
- cmp r1, 0
- bge _0815F2FE
- adds r0, r3, r6
- lsls r0, 3
- adds r0, r4
- str r5, [r0]
-_0815F310:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end AnimTask_MonToSubstitute
-
- thumb_func_start sub_815F330
-sub_815F330: @ 815F330
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r0, 0
- bl GetAnimBattlerSpriteId
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r1, =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r4, r0, r1
- movs r0, 0x8
- ldrsh r5, [r4, r0]
- cmp r5, 0x1
- beq _0815F394
- cmp r5, 0x1
- bgt _0815F360
- cmp r5, 0
- beq _0815F36A
- b _0815F482
- .pool
-_0815F360:
- cmp r5, 0x2
- beq _0815F400
- cmp r5, 0x3
- beq _0815F43C
- b _0815F482
-_0815F36A:
- ldr r0, =gSprites
- lsls r1, r3, 4
- adds r1, r3
- lsls r1, 2
- adds r1, r0
- ldr r0, =0x0000ff38
- strh r0, [r1, 0x26]
- movs r0, 0xC8
- strh r0, [r1, 0x24]
- adds r1, 0x3E
- ldrb r2, [r1]
- subs r0, 0xCD
- ands r0, r2
- strb r0, [r1]
- strh r5, [r4, 0x1C]
- b _0815F42E
- .pool
-_0815F394:
- ldrh r1, [r4, 0x1C]
- adds r1, 0x70
- movs r5, 0
- strh r1, [r4, 0x1C]
- ldr r2, =gSprites
- lsls r0, r3, 4
- adds r0, r3
- lsls r0, 2
- adds r2, r0, r2
- lsls r1, 16
- asrs r1, 24
- ldrh r3, [r2, 0x26]
- adds r1, r3
- strh r1, [r2, 0x26]
- movs r1, 0x22
- ldrsh r0, [r2, r1]
- movs r3, 0x26
- ldrsh r1, [r2, r3]
- adds r0, r1
- movs r1, 0x20
- negs r1, r1
- cmp r0, r1
- blt _0815F3C4
- strh r5, [r2, 0x24]
-_0815F3C4:
- movs r1, 0x26
- ldrsh r0, [r2, r1]
- cmp r0, 0
- ble _0815F3CE
- strh r5, [r2, 0x26]
-_0815F3CE:
- movs r3, 0x26
- ldrsh r0, [r2, r3]
- cmp r0, 0
- bne _0815F482
- movs r0, 0x40
- negs r0, r0
- bl BattleAnimAdjustPanning
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0x7D
- bl PlaySE12WithPanning
- ldr r1, =0xfffff800
- adds r0, r1, 0
- ldrh r2, [r4, 0x1C]
- adds r0, r2
- strh r0, [r4, 0x1C]
- b _0815F42E
- .pool
-_0815F400:
- ldrh r0, [r4, 0x1C]
- subs r0, 0x70
- strh r0, [r4, 0x1C]
- lsls r0, 16
- cmp r0, 0
- bge _0815F410
- movs r0, 0
- strh r0, [r4, 0x1C]
-_0815F410:
- ldr r0, =gSprites
- lsls r1, r3, 4
- adds r1, r3
- lsls r1, 2
- adds r1, r0
- ldrh r2, [r4, 0x1C]
- lsls r2, 16
- asrs r2, 24
- ldrh r0, [r1, 0x26]
- subs r0, r2
- strh r0, [r1, 0x26]
- movs r3, 0x1C
- ldrsh r0, [r4, r3]
- cmp r0, 0
- bne _0815F482
-_0815F42E:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0815F482
- .pool
-_0815F43C:
- ldrh r0, [r4, 0x1C]
- adds r0, 0x70
- strh r0, [r4, 0x1C]
- ldr r2, =gSprites
- lsls r1, r3, 4
- adds r1, r3
- lsls r1, 2
- adds r1, r2
- lsls r0, 16
- asrs r0, 24
- ldrh r2, [r1, 0x26]
- adds r0, r2
- strh r0, [r1, 0x26]
- lsls r0, 16
- cmp r0, 0
- ble _0815F460
- movs r0, 0
- strh r0, [r1, 0x26]
-_0815F460:
- movs r3, 0x26
- ldrsh r0, [r1, r3]
- cmp r0, 0
- bne _0815F482
- movs r0, 0x40
- negs r0, r0
- bl BattleAnimAdjustPanning
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0x7D
- bl PlaySE12WithPanning
- adds r0, r6, 0
- bl DestroyAnimVisualTask
-_0815F482:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815F330
-
- thumb_func_start sub_815F48C
-sub_815F48C: @ 815F48C
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, =gBattleAnimTarget
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _0815F4B8
- ldrb r0, [r4]
- bl GetBattlerSpriteSubpriority
- subs r0, 0x2
- adds r1, r5, 0
- adds r1, 0x43
- strb r0, [r1]
- ldr r4, =0x0000ff70
- b _0815F4C8
- .pool
-_0815F4B8:
- ldrb r0, [r4]
- bl GetBattlerSpriteSubpriority
- adds r0, 0x2
- adds r1, r5, 0
- adds r1, 0x43
- strb r0, [r1]
- ldr r4, =0x0000ffa0
-_0815F4C8:
- ldr r0, =gBattleAnimTarget
- ldrb r0, [r0]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- strh r4, [r5, 0x26]
- ldr r0, =sub_815F4F0
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815F48C
-
- thumb_func_start sub_815F4F0
-sub_815F4F0: @ 815F4F0
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bls _0815F4FE
- b _0815F61A
-_0815F4FE:
- lsls r0, 2
- ldr r1, =_0815F50C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_0815F50C:
- .4byte _0815F520
- .4byte _0815F544
- .4byte _0815F584
- .4byte _0815F5B4
- .4byte _0815F5E0
-_0815F520:
- ldrh r0, [r4, 0x26]
- adds r0, 0xA
- strh r0, [r4, 0x26]
- lsls r0, 16
- cmp r0, 0
- blt _0815F61A
- movs r0, 0x3F
- bl BattleAnimAdjustPanning
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0xCD
- bl PlaySE12WithPanning
- movs r0, 0
- strh r0, [r4, 0x26]
- b _0815F5D8
-_0815F544:
- ldrh r1, [r4, 0x30]
- adds r1, 0x4
- movs r5, 0
- strh r1, [r4, 0x30]
- ldr r2, =gSineTable
- movs r3, 0x30
- ldrsh r0, [r4, r3]
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- lsls r0, 16
- asrs r0, 19
- negs r0, r0
- strh r0, [r4, 0x26]
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0x7F
- ble _0815F61A
- movs r0, 0x3F
- bl BattleAnimAdjustPanning
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0xCD
- bl PlaySE12WithPanning
- strh r5, [r4, 0x30]
- strh r5, [r4, 0x26]
- b _0815F5D8
- .pool
-_0815F584:
- ldrh r1, [r4, 0x30]
- adds r1, 0x6
- movs r3, 0
- strh r1, [r4, 0x30]
- ldr r2, =gSineTable
- movs r5, 0x30
- ldrsh r0, [r4, r5]
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- lsls r0, 16
- asrs r0, 20
- negs r0, r0
- strh r0, [r4, 0x26]
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0x7F
- ble _0815F61A
- strh r3, [r4, 0x30]
- strh r3, [r4, 0x26]
- b _0815F5D8
- .pool
-_0815F5B4:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- ble _0815F61A
- movs r0, 0x3F
- bl BattleAnimAdjustPanning
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0xC0
- bl PlaySE12WithPanning
- movs r0, 0
- strh r0, [r4, 0x30]
-_0815F5D8:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _0815F61A
-_0815F5E0:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- ble _0815F61A
- movs r0, 0
- strh r0, [r4, 0x30]
- ldrh r1, [r4, 0x32]
- adds r1, 0x1
- strh r1, [r4, 0x32]
- movs r0, 0x1
- ands r1, r0
- adds r3, r4, 0
- adds r3, 0x3E
- lsls r1, 2
- ldrb r2, [r3]
- subs r0, 0x6
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0x7
- bne _0815F61A
- adds r0, r4, 0
- bl DestroyAnimSprite
-_0815F61A:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_815F4F0
-
- thumb_func_start sub_815F620
-sub_815F620: @ 815F620
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- bl IsContest
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0
- bne _0815F66E
- movs r0, 0x1
- bl CloneBattlerSpriteWithBlend
- lsls r0, 16
- lsrs r1, r0, 16
- mov r10, r1
- asrs r6, r0, 16
- cmp r6, 0
- blt _0815F66E
- movs r0, 0x1
- bl CloneBattlerSpriteWithBlend
- lsls r0, 16
- lsrs r1, r0, 16
- mov r9, r1
- asrs r1, r0, 16
- cmp r1, 0
- bge _0815F67C
- lsls r0, r6, 4
- adds r0, r6
- lsls r0, 2
- ldr r1, =gSprites
- adds r0, r1
- bl obj_delete_but_dont_free_vram
-_0815F66E:
- mov r0, r8
- bl DestroyAnimVisualTask
- b _0815F780
- .pool
-_0815F67C:
- ldr r4, =gSprites
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r5, r0, r4
- ldrh r0, [r5, 0x24]
- adds r0, 0x18
- strh r0, [r5, 0x24]
- lsls r0, r6, 4
- adds r0, r6
- lsls r0, 2
- adds r6, r0, r4
- ldrh r0, [r6, 0x24]
- subs r0, 0x18
- strh r0, [r6, 0x24]
- strh r7, [r5, 0x2E]
- strh r7, [r6, 0x2E]
- strh r7, [r5, 0x30]
- strh r7, [r6, 0x30]
- strh r7, [r5, 0x32]
- strh r7, [r6, 0x32]
- movs r0, 0x10
- strh r0, [r5, 0x34]
- ldr r0, =0x0000fff0
- strh r0, [r6, 0x34]
- strh r7, [r5, 0x36]
- movs r0, 0x80
- strh r0, [r6, 0x36]
- movs r0, 0x18
- strh r0, [r5, 0x38]
- strh r0, [r6, 0x38]
- mov r0, r8
- strh r0, [r5, 0x3A]
- strh r0, [r6, 0x3A]
- strh r7, [r5, 0x3C]
- strh r7, [r6, 0x3C]
- ldr r2, =gTasks
- mov r1, r8
- lsls r3, r1, 2
- adds r0, r3, r1
- lsls r0, 3
- adds r0, r2
- movs r1, 0x2
- strh r1, [r0, 0x8]
- ldr r0, =gBattleSpritesDataPtr
- ldr r1, [r0]
- ldr r0, =gBattleAnimTarget
- ldrb r0, [r0]
- ldr r1, [r1]
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- adds r7, r4, 0
- mov r12, r3
- cmp r0, 0
- bne _0815F720
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- adds r2, r6, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- b _0815F736
- .pool
-_0815F720:
- adds r1, r5, 0
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1]
- adds r1, r6, 0
- adds r1, 0x3E
- ldrb r0, [r1]
- orrs r0, r2
- strb r0, [r1]
-_0815F736:
- mov r1, r9
- lsls r0, r1, 16
- asrs r0, 16
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r4, r2, r7
- ldrb r1, [r4, 0x1]
- movs r3, 0xD
- negs r3, r3
- adds r0, r3, 0
- ands r0, r1
- strb r0, [r4, 0x1]
- mov r1, r10
- lsls r0, r1, 16
- asrs r0, 16
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r4, r1, r7
- ldrb r0, [r4, 0x1]
- ands r3, r0
- strb r3, [r4, 0x1]
- adds r3, r7, 0
- adds r3, 0x1C
- adds r2, r3
- ldr r0, =sub_815F7C4
- str r0, [r2]
- adds r1, r3
- str r0, [r1]
- mov r0, r12
- add r0, r8
- lsls r0, 3
- ldr r1, =gTasks
- adds r0, r1
- ldr r1, =sub_815F79C
- str r1, [r0]
-_0815F780:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815F620
-
- thumb_func_start sub_815F79C
-sub_815F79C: @ 815F79C
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- movs r1, 0x8
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _0815F7BA
- adds r0, r2, 0
- bl DestroyAnimVisualTask
-_0815F7BA:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815F79C
-
- thumb_func_start sub_815F7C4
-sub_815F7C4: @ 815F7C4
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _0815F80E
- movs r0, 0
- strh r0, [r4, 0x30]
- ldr r0, =gBattleSpritesDataPtr
- ldr r1, [r0]
- ldr r0, =gBattleAnimTarget
- ldrb r0, [r0]
- ldr r1, [r1]
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0815F80E
- adds r3, r4, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- lsls r1, r2, 29
- lsrs r1, 31
- movs r0, 0x1
- eors r1, r0
- ands r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
-_0815F80E:
- ldrh r0, [r4, 0x34]
- ldrh r1, [r4, 0x36]
- adds r0, r1
- movs r5, 0
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x36]
- movs r2, 0x36
- ldrsh r0, [r4, r2]
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- bl Cos
- strh r0, [r4, 0x24]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0815F840
- cmp r0, 0x1
- beq _0815F858
- b _0815F896
- .pool
-_0815F840:
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3C
- bne _0815F896
- strh r5, [r4, 0x32]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _0815F896
-_0815F858:
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- cmp r0, 0
- ble _0815F896
- strh r5, [r4, 0x32]
- ldrh r0, [r4, 0x38]
- subs r0, 0x2
- strh r0, [r4, 0x38]
- lsls r0, 16
- cmp r0, 0
- bge _0815F896
- ldr r3, =gTasks
- movs r2, 0x3C
- ldrsh r1, [r4, r2]
- lsls r1, 1
- movs r0, 0x3A
- ldrsh r2, [r4, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r3, 0x8
- adds r1, r3
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- adds r0, r4, 0
- bl obj_delete_but_dont_free_vram
-_0815F896:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815F7C4
-
- thumb_func_start AnimTask_GetReturnPowerLevel
-AnimTask_GetReturnPowerLevel: @ 815F8A0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r3, =gBattleAnimArgs
- movs r2, 0
- strh r2, [r3, 0xE]
- ldr r1, =gAnimFriendship
- ldrb r0, [r1]
- ldrb r1, [r1]
- adds r0, r1, 0
- subs r0, 0x3D
- lsls r0, 24
- lsrs r0, 24
- adds r2, r1, 0
- cmp r0, 0x1E
- bhi _0815F8C4
- movs r0, 0x1
- strh r0, [r3, 0xE]
-_0815F8C4:
- adds r0, r2, 0
- subs r0, 0x5C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x6C
- bhi _0815F8D4
- movs r0, 0x2
- strh r0, [r3, 0xE]
-_0815F8D4:
- lsls r0, r1, 24
- lsrs r0, 24
- cmp r0, 0xC8
- bls _0815F8E0
- movs r0, 0x3
- strh r0, [r3, 0xE]
-_0815F8E0:
- adds r0, r4, 0
- bl DestroyAnimVisualTask
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end AnimTask_GetReturnPowerLevel
-
- thumb_func_start sub_815F8F4
-sub_815F8F4: @ 815F8F4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x1C
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r1, =gTasks
- lsls r0, 2
- add r0, r8
- lsls r0, 3
- adds r0, r1
- movs r1, 0x8
- ldrsh r0, [r0, r1]
- cmp r0, 0x4
- bls _0815F91A
- b _0815FE68
-_0815F91A:
- lsls r0, 2
- ldr r1, =_0815F92C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_0815F92C:
- .4byte _0815F940
- .4byte _0815F9F4
- .4byte _0815FBE8
- .4byte _0815FD08
- .4byte _0815FD8C
-_0815F940:
- movs r0, 0
- bl GetAnimBattlerSpriteId
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r1, =gTasks
- mov r2, r8
- lsls r4, r2, 2
- adds r0, r4, r2
- lsls r0, 3
- adds r6, r0, r1
- movs r3, 0x80
- lsls r3, 4
- adds r0, r3, 0
- ldrh r1, [r6, 0xA]
- adds r0, r1
- strh r0, [r6, 0xA]
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- mov r9, r4
- cmp r0, 0
- bne _0815F998
- ldr r2, =gSprites
- lsls r3, r7, 4
- adds r1, r3, r7
- lsls r1, 2
- adds r1, r2
- ldrh r0, [r6, 0xA]
- lsls r0, 16
- asrs r0, 24
- ldrh r4, [r1, 0x24]
- adds r0, r4
- strh r0, [r1, 0x24]
- b _0815F9B2
- .pool
-_0815F998:
- ldr r3, =gSprites
- lsls r4, r7, 4
- adds r2, r4, r7
- lsls r2, 2
- adds r2, r3
- ldrh r1, [r6, 0xA]
- lsls r1, 16
- asrs r1, 24
- ldrh r0, [r2, 0x24]
- subs r0, r1
- strh r0, [r2, 0x24]
- adds r2, r3, 0
- adds r3, r4, 0
-_0815F9B2:
- ldr r1, =gTasks
- mov r0, r9
- add r0, r8
- lsls r0, 3
- adds r4, r0, r1
- ldrb r0, [r4, 0xA]
- strh r0, [r4, 0xA]
- adds r1, r3, r7
- lsls r1, 2
- adds r1, r2
- ldrh r0, [r1, 0x24]
- ldrh r1, [r1, 0x20]
- adds r0, r1
- lsls r0, 16
- movs r1, 0x80
- lsls r1, 14
- adds r0, r1
- movs r1, 0x98
- lsls r1, 17
- cmp r0, r1
- bhi _0815F9DE
- b _0815FE68
-_0815F9DE:
- movs r0, 0
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0815FE68
- .pool
-_0815F9F4:
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _0815FA28
- ldr r0, =gContestResources
- ldr r0, [r0]
- ldr r0, [r0, 0x18]
- ldr r2, [r0, 0x8]
- mov r10, r2
- ldr r3, [r0, 0xC]
- mov r9, r3
- ldrh r6, [r0]
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSpriteSubpriority
- lsls r0, 24
- lsrs r4, r0, 24
- movs r7, 0
- b _0815FB4E
- .pool
-_0815FA28:
- ldr r4, =gBattleAnimAttacker
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _0815FAC8
- ldr r7, =gBattlerPartyIndexes
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r7
- ldrh r0, [r0]
- movs r6, 0x64
- muls r0, r6
- ldr r5, =gPlayerParty
- adds r0, r5
- movs r1, 0
- bl GetMonData
- mov r10, r0
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r7
- ldrh r0, [r0]
- muls r0, r6
- adds r0, r5
- movs r1, 0x1
- bl GetMonData
- mov r9, r0
- ldr r0, =gBattleSpritesDataPtr
- ldr r0, [r0]
- ldrb r2, [r4]
- ldr r1, [r0]
- lsls r0, r2, 2
- adds r1, r0, r1
- ldrh r0, [r1, 0x2]
- cmp r0, 0
- bne _0815FA9C
- lsls r0, r2, 1
- adds r0, r7
- ldrh r0, [r0]
- muls r0, r6
- adds r0, r5
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r6, r0, 16
- b _0815FA9E
- .pool
-_0815FA9C:
- ldrh r6, [r1, 0x2]
-_0815FA9E:
- movs r0, 0x1
- bl GetAnimBattlerSpriteId
- ldr r2, =gSprites
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- adds r1, 0x43
- ldrb r0, [r1]
- adds r0, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- movs r7, 0
- movs r5, 0x88
- lsls r5, 1
- b _0815FB50
- .pool
-_0815FAC8:
- ldr r7, =gBattlerPartyIndexes
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r7
- ldrh r0, [r0]
- movs r6, 0x64
- muls r0, r6
- ldr r5, =gEnemyParty
- adds r0, r5
- movs r1, 0
- bl GetMonData
- mov r10, r0
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r7
- ldrh r0, [r0]
- muls r0, r6
- adds r0, r5
- movs r1, 0x1
- bl GetMonData
- mov r9, r0
- ldr r0, =gBattleSpritesDataPtr
- ldr r0, [r0]
- ldrb r2, [r4]
- ldr r1, [r0]
- lsls r0, r2, 2
- adds r1, r0, r1
- ldrh r0, [r1, 0x2]
- cmp r0, 0
- bne _0815FB2C
- lsls r0, r2, 1
- adds r0, r7
- ldrh r0, [r0]
- muls r0, r6
- adds r0, r5
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r6, r0, 16
- b _0815FB2E
- .pool
-_0815FB2C:
- ldrh r6, [r1, 0x2]
-_0815FB2E:
- movs r0, 0x1
- bl GetAnimBattlerSpriteId
- ldr r2, =gSprites
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- adds r1, 0x43
- ldrb r0, [r1]
- subs r0, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- movs r7, 0x1
-_0815FB4E:
- ldr r5, =0x0000ffe0
-_0815FB50:
- ldr r0, =gBattleAnimTarget
- ldrb r0, [r0]
- movs r1, 0x1
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- lsls r3, r5, 16
- asrs r3, 16
- str r0, [sp]
- str r4, [sp, 0x4]
- mov r4, r10
- str r4, [sp, 0x8]
- mov r0, r9
- str r0, [sp, 0xC]
- ldr r4, =gBattleAnimAttacker
- ldrb r0, [r4]
- str r0, [sp, 0x10]
- movs r0, 0
- str r0, [sp, 0x14]
- adds r0, r6, 0
- adds r1, r7, 0
- movs r2, 0
- bl sub_80A8394
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, =gBattleSpritesDataPtr
- ldr r1, [r0]
- ldrb r0, [r4]
- ldr r1, [r1]
- lsls r0, 2
- adds r0, r1
- ldrh r0, [r0, 0x2]
- cmp r0, 0
- beq _0815FBBA
- ldr r1, =gSprites
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x5]
- lsrs r0, 4
- lsls r0, 4
- movs r2, 0x80
- lsls r2, 1
- adds r1, r2, 0
- orrs r0, r1
- ldr r3, =0x00007fff
- movs r1, 0x10
- movs r2, 0x6
- bl BlendPalette
-_0815FBBA:
- ldr r0, =gTasks
- mov r3, r8
- lsls r1, r3, 2
- add r1, r8
- lsls r1, 3
- adds r1, r0
- strh r5, [r1, 0x26]
- b _0815FD7E
- .pool
-_0815FBE8:
- ldr r1, =gTasks
- mov r0, r8
- lsls r4, r0, 2
- adds r0, r4, r0
- lsls r0, 3
- adds r6, r0, r1
- ldrh r0, [r6, 0x26]
- lsls r0, 24
- lsrs r5, r0, 24
- movs r1, 0x80
- lsls r1, 4
- adds r0, r1, 0
- ldrh r2, [r6, 0xA]
- adds r0, r2
- strh r0, [r6, 0xA]
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- mov r9, r4
- cmp r0, 0
- bne _0815FC40
- ldr r3, =gSprites
- lsls r4, r5, 4
- adds r2, r4, r5
- lsls r2, 2
- adds r2, r3
- ldrh r1, [r6, 0xA]
- lsls r1, 16
- asrs r1, 24
- ldrh r0, [r2, 0x24]
- subs r0, r1
- strh r0, [r2, 0x24]
- adds r2, r3, 0
- adds r3, r4, 0
- b _0815FC56
- .pool
-_0815FC40:
- ldr r2, =gSprites
- lsls r3, r5, 4
- adds r1, r3, r5
- lsls r1, 2
- adds r1, r2
- ldrh r0, [r6, 0xA]
- lsls r0, 16
- asrs r0, 24
- ldrh r4, [r1, 0x24]
- adds r0, r4
- strh r0, [r1, 0x24]
-_0815FC56:
- ldr r1, =gTasks
- mov r0, r9
- add r0, r8
- lsls r0, 3
- adds r6, r0, r1
- ldrb r0, [r6, 0xA]
- strh r0, [r6, 0xA]
- adds r1, r3, r5
- lsls r1, 2
- adds r1, r2
- ldrh r0, [r1, 0x24]
- ldrh r1, [r1, 0x20]
- adds r0, r1
- lsls r0, 16
- lsrs r5, r0, 16
- movs r1, 0x24
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _0815FCD6
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _0815FCB4
- lsls r4, r5, 16
- asrs r4, 16
- ldr r0, =gBattleAnimTarget
- ldrb r0, [r0]
- movs r1, 0
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- bge _0815FCD6
- b _0815FCCA
- .pool
-_0815FCB4:
- lsls r4, r5, 16
- asrs r4, 16
- ldr r0, =gBattleAnimTarget
- ldrb r0, [r0]
- movs r1, 0
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- ble _0815FCD6
-_0815FCCA:
- ldrh r0, [r6, 0x24]
- adds r0, 0x1
- strh r0, [r6, 0x24]
- ldr r1, =gBattleAnimArgs
- ldr r0, =0x0000ffff
- strh r0, [r1, 0xE]
-_0815FCD6:
- lsls r0, r5, 16
- movs r2, 0x80
- lsls r2, 14
- adds r0, r2
- movs r1, 0x98
- lsls r1, 17
- cmp r0, r1
- bhi _0815FCE8
- b _0815FE68
-_0815FCE8:
- ldr r0, =gTasks
- mov r1, r9
- add r1, r8
- lsls r1, 3
- adds r1, r0
- movs r0, 0
- strh r0, [r1, 0xA]
- b _0815FD7E
- .pool
-_0815FD08:
- movs r0, 0
- bl GetAnimBattlerSpriteId
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r1, =gTasks
- mov r3, r8
- lsls r4, r3, 2
- adds r0, r4, r3
- lsls r0, 3
- adds r0, r1
- ldrh r0, [r0, 0x26]
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- ldr r5, =gSprites
- adds r0, r5
- bl sub_80A8610
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- mov r9, r4
- cmp r0, 0
- bne _0815FD60
- lsls r1, r7, 4
- adds r1, r7
- lsls r1, 2
- adds r1, r5
- ldrh r0, [r1, 0x20]
- negs r0, r0
- subs r0, 0x20
- strh r0, [r1, 0x24]
- b _0815FD74
- .pool
-_0815FD60:
- lsls r0, r7, 4
- adds r0, r7
- lsls r0, 2
- adds r0, r5
- ldrh r2, [r0, 0x20]
- movs r4, 0x88
- lsls r4, 1
- adds r1, r4, 0
- subs r1, r2
- strh r1, [r0, 0x24]
-_0815FD74:
- ldr r0, =gTasks
- mov r1, r9
- add r1, r8
- lsls r1, 3
- adds r1, r0
-_0815FD7E:
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- b _0815FE68
- .pool
-_0815FD8C:
- movs r0, 0
- bl GetAnimBattlerSpriteId
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r1, =gTasks
- mov r0, r8
- lsls r4, r0, 2
- adds r0, r4, r0
- lsls r0, 3
- adds r2, r0, r1
- movs r1, 0x80
- lsls r1, 4
- adds r0, r1, 0
- ldrh r3, [r2, 0xA]
- adds r0, r3
- strh r0, [r2, 0xA]
- ldr r0, =gBattleAnimAttacker
- mov r10, r0
- ldrb r0, [r0]
- str r2, [sp, 0x18]
- bl GetBattlerSide
- lsls r0, 24
- mov r9, r4
- ldr r2, [sp, 0x18]
- cmp r0, 0
- bne _0815FE0C
- ldr r1, =gSprites
- lsls r5, r7, 4
- adds r0, r5, r7
- lsls r0, 2
- adds r6, r0, r1
- ldrh r0, [r2, 0xA]
- lsls r0, 16
- asrs r0, 24
- ldrh r1, [r6, 0x24]
- adds r0, r1
- strh r0, [r6, 0x24]
- movs r2, 0x24
- ldrsh r4, [r6, r2]
- movs r3, 0x20
- ldrsh r0, [r6, r3]
- adds r4, r0
- mov r1, r10
- ldrb r0, [r1]
- movs r1, 0
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- adds r3, r5, 0
- cmp r4, r0
- blt _0815FE44
- movs r2, 0
- strh r2, [r6, 0x24]
- b _0815FE44
- .pool
-_0815FE0C:
- ldr r1, =gSprites
- lsls r5, r7, 4
- adds r0, r5, r7
- lsls r0, 2
- adds r6, r0, r1
- ldrh r1, [r2, 0xA]
- lsls r1, 16
- asrs r1, 24
- ldrh r0, [r6, 0x24]
- subs r0, r1
- strh r0, [r6, 0x24]
- movs r3, 0x24
- ldrsh r4, [r6, r3]
- movs r1, 0x20
- ldrsh r0, [r6, r1]
- adds r4, r0
- mov r2, r10
- ldrb r0, [r2]
- movs r1, 0
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- adds r3, r5, 0
- cmp r4, r0
- bgt _0815FE44
- movs r4, 0
- strh r4, [r6, 0x24]
-_0815FE44:
- ldr r1, =gTasks
- mov r0, r9
- add r0, r8
- lsls r0, 3
- adds r0, r1
- ldrb r1, [r0, 0xA]
- strh r1, [r0, 0xA]
- ldr r1, =gSprites
- adds r0, r3, r7
- lsls r0, 2
- adds r0, r1
- movs r1, 0x24
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _0815FE68
- mov r0, r8
- bl DestroyAnimVisualTask
-_0815FE68:
- add sp, 0x1C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815F8F4
-
- thumb_func_start sub_815FE80
-sub_815FE80: @ 815FE80
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0815FE92
- cmp r0, 0x1
- beq _0815FF3A
- b _0815FFBC
-_0815FE92:
- ldr r0, =gBattleAnimArgs
- movs r2, 0xE
- ldrsh r1, [r0, r2]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _0815FF2C
- movs r0, 0x3F
- bl BattleAnimAdjustPanning
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0x7A
- bl PlaySE12WithPanning
- ldr r0, =gBattleAnimTarget
- ldrb r0, [r0]
- movs r1, 0x1
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x10
- strh r0, [r4, 0x22]
- ldr r0, =0x0000ffe0
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x3C]
- adds r0, 0x1
- strh r0, [r4, 0x3C]
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0815FFBC
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _0815FFBC
- movs r0, 0x1
- bl GetAnimBattlerSpriteId
- ldr r2, =gSprites
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- adds r1, 0x43
- ldrb r0, [r1]
- subs r0, 0x1
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- b _0815FFBC
- .pool
-_0815FF2C:
- adds r0, r4, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- b _0815FFBC
-_0815FF3A:
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r2, 0x2E
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r2, [r4, 0x30]
- adds r0, r2, 0x5
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7F
- ble _0815FF6E
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- strh r0, [r4, 0x34]
- adds r0, r2, 0
- subs r0, 0x7A
- strh r0, [r4, 0x30]
-_0815FF6E:
- movs r2, 0x80
- lsls r2, 1
- adds r0, r2, 0
- ldrh r1, [r4, 0x32]
- adds r0, r1
- strh r0, [r4, 0x32]
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _0815FF9C
- ldrh r2, [r4, 0x32]
- lsls r1, r2, 16
- asrs r1, 24
- ldrh r0, [r4, 0x24]
- subs r0, r1
- strh r0, [r4, 0x24]
- adds r1, r2, 0
- b _0815FFA8
- .pool
-_0815FF9C:
- ldrh r1, [r4, 0x32]
- lsls r0, r1, 16
- asrs r0, 24
- ldrh r2, [r4, 0x24]
- adds r0, r2
- strh r0, [r4, 0x24]
-_0815FFA8:
- movs r0, 0xFF
- ands r0, r1
- strh r0, [r4, 0x32]
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0x2
- bne _0815FFBC
- adds r0, r4, 0
- bl DestroyAnimSprite
-_0815FFBC:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_815FE80
-
- thumb_func_start sub_815FFC4
-sub_815FFC4: @ 815FFC4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r2, 0x26
- ldrsh r0, [r0, r2]
- adds r3, r1, 0
- cmp r0, 0x4
- bls _0815FFE0
- b _08160132
-_0815FFE0:
- lsls r0, 2
- ldr r1, =_0815FFF4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_0815FFF4:
- .4byte _08160008
- .4byte _08160058
- .4byte _081600B4
- .4byte _081600CC
- .4byte _08160132
-_08160008:
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- movs r1, 0
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- ldr r0, =gBattleAnimTarget
- ldrb r0, [r0]
- movs r1, 0
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- adds r2, r0, 0
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r1, r0, r1
- movs r0, 0x6
- strh r0, [r1, 0x8]
- cmp r5, r2
- ble _0816003E
- negs r0, r0
- strh r0, [r1, 0x8]
-_0816003E:
- strh r5, [r1, 0xA]
- strh r2, [r1, 0xC]
- ldrh r0, [r1, 0x26]
- adds r0, 0x1
- strh r0, [r1, 0x26]
- b _08160150
- .pool
-_08160058:
- ldr r1, =gBattlerSpriteIds
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- adds r0, r1
- ldrb r2, [r0]
- ldr r1, =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r1, r0, r1
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r2, r0, r3
- ldrh r0, [r2, 0x8]
- ldrh r3, [r1, 0x24]
- adds r0, r3
- strh r0, [r1, 0x24]
- movs r3, 0x8
- ldrsh r0, [r2, r3]
- cmp r0, 0
- ble _081600A0
- movs r3, 0x20
- ldrsh r0, [r1, r3]
- movs r3, 0x24
- ldrsh r1, [r1, r3]
- adds r0, r1
- movs r3, 0xC
- ldrsh r1, [r2, r3]
- b _08160126
- .pool
-_081600A0:
- movs r3, 0x20
- ldrsh r0, [r1, r3]
- movs r3, 0x24
- ldrsh r1, [r1, r3]
- adds r0, r1
- movs r3, 0xC
- ldrsh r1, [r2, r3]
- cmp r0, r1
- bgt _08160150
- b _0816012A
-_081600B4:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r3
- movs r2, 0x8
- ldrsh r1, [r0, r2]
- negs r1, r1
- strh r1, [r0, 0x8]
- ldrh r1, [r0, 0x26]
- adds r1, 0x1
- strh r1, [r0, 0x26]
- b _08160150
-_081600CC:
- ldr r1, =gBattlerSpriteIds
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- adds r0, r1
- ldrb r2, [r0]
- ldr r1, =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r1, r0, r1
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r2, r0, r3
- ldrh r0, [r2, 0x8]
- ldrh r3, [r1, 0x24]
- adds r0, r3
- strh r0, [r1, 0x24]
- movs r3, 0x8
- ldrsh r0, [r2, r3]
- cmp r0, 0
- bge _08160118
- movs r3, 0x20
- ldrsh r0, [r1, r3]
- movs r3, 0x24
- ldrsh r1, [r1, r3]
- adds r0, r1
- movs r3, 0xA
- ldrsh r1, [r2, r3]
- cmp r0, r1
- bgt _08160150
- b _0816012A
- .pool
-_08160118:
- movs r3, 0x20
- ldrsh r0, [r1, r3]
- movs r3, 0x24
- ldrsh r1, [r1, r3]
- adds r0, r1
- movs r3, 0xA
- ldrsh r1, [r2, r3]
-_08160126:
- cmp r0, r1
- blt _08160150
-_0816012A:
- ldrh r0, [r2, 0x26]
- adds r0, 0x1
- strh r0, [r2, 0x26]
- b _08160150
-_08160132:
- ldr r1, =gBattlerSpriteIds
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- adds r0, r1
- ldrb r2, [r0]
- ldr r1, =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x24]
- adds r0, r4, 0
- bl DestroyAnimVisualTask
-_08160150:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_815FFC4
-
- thumb_func_start sub_8160164
-sub_8160164: @ 8160164
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks
- adds r4, r1, r0
- movs r0, 0
- bl GetAnimBattlerSpriteId
- lsls r0, 24
- lsrs r0, 24
- movs r5, 0
- strh r0, [r4, 0xE]
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- movs r2, 0x1
- negs r2, r2
- adds r1, r2, 0
- cmp r0, 0
- bne _08160198
- movs r1, 0x1
-_08160198:
- strh r1, [r4, 0x10]
- ldr r2, =gSprites
- movs r0, 0xE
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x22]
- strh r0, [r4, 0x14]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x20]
- strh r0, [r4, 0x12]
- strh r5, [r4, 0x1A]
- strh r5, [r4, 0x1E]
- movs r0, 0x1
- strh r0, [r4, 0x1C]
- strh r5, [r4, 0x20]
- ldr r0, =sub_81601DC
- str r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8160164
-
- thumb_func_start sub_81601DC
-sub_81601DC: @ 81601DC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _08160284
- cmp r0, 0x1
- bgt _08160204
- cmp r0, 0
- beq _0816020A
- b _081602DA
- .pool
-_08160204:
- cmp r0, 0x2
- beq _081602D4
- b _081602DA
-_0816020A:
- ldrh r0, [r4, 0x1E]
- adds r0, 0x8
- movs r2, 0xFF
- ands r0, r2
- strh r0, [r4, 0x1E]
- ldr r5, =gSprites
- movs r6, 0xE
- ldrsh r0, [r4, r6]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldr r3, =gSineTable
- movs r6, 0x1E
- ldrsh r0, [r4, r6]
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- lsls r0, 16
- asrs r0, 21
- strh r0, [r1, 0x24]
- ldrh r0, [r4, 0x1A]
- adds r0, 0x2
- ands r0, r2
- strh r0, [r4, 0x1A]
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r5
- movs r6, 0x1A
- ldrsh r0, [r4, r6]
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- lsls r0, 16
- asrs r0, 19
- ldrh r1, [r4, 0x10]
- muls r0, r1
- ldrh r1, [r4, 0x12]
- adds r0, r1
- strh r0, [r2, 0x20]
- movs r6, 0x1A
- ldrsh r0, [r4, r6]
- cmp r0, 0
- bne _081602DA
- movs r0, 0xE
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrh r1, [r4, 0x12]
- strh r1, [r0, 0x20]
- b _081602C4
- .pool
-_08160284:
- ldrh r0, [r4, 0x1E]
- adds r0, 0x8
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x1E]
- ldr r3, =gSprites
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldr r2, =gSineTable
- movs r5, 0x1E
- ldrsh r0, [r4, r5]
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- lsls r0, 16
- asrs r0, 21
- strh r0, [r1, 0x24]
- movs r6, 0x1E
- ldrsh r2, [r4, r6]
- cmp r2, 0
- bne _081602DA
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- strh r2, [r1, 0x24]
-_081602C4:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _081602DA
- .pool
-_081602D4:
- adds r0, r2, 0
- bl DestroyAnimVisualTask
-_081602DA:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_81601DC
-
- thumb_func_start sub_81602E0
-sub_81602E0: @ 81602E0
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, =gBattleAnimTarget
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- ldrh r0, [r4, 0x2E]
- ldrh r1, [r4, 0x30]
- adds r0, r1
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x30]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x14
- bl Cos
- strh r0, [r4, 0x24]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x14
- bl Sin
- strh r0, [r4, 0x26]
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08160326
- adds r0, r4, 0
- bl DestroyAnimSprite
-_08160326:
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81602E0
-
- thumb_func_start sub_8160338
-sub_8160338: @ 8160338
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, =gBattleAnimTarget
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _0816037C
- ldr r2, =gBattleAnimArgs
- ldrh r0, [r4, 0x20]
- ldrh r1, [r2]
- subs r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r2, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldr r0, =0x0000fff5
- strh r0, [r4, 0x2E]
- movs r0, 0xC0
- strh r0, [r4, 0x30]
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- b _08160396
- .pool
-_0816037C:
- movs r0, 0xB
- strh r0, [r4, 0x2E]
- movs r0, 0xC0
- strh r0, [r4, 0x30]
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x20]
- ldrh r0, [r1, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
-_08160396:
- ldr r0, =sub_81602E0
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8160338
-
- thumb_func_start sub_81603A8
-sub_81603A8: @ 81603A8
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, =gBattleAnimAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_80A861C
- strh r0, [r5, 0x22]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xF
- bgt _081603D2
- movs r0, 0x10
- strh r0, [r5, 0x22]
-_081603D2:
- movs r0, 0
- strh r0, [r5, 0x3A]
- movs r1, 0x10
- strh r1, [r5, 0x3C]
- ldr r0, =sub_81603F4
- str r0, [r5, 0x1C]
- lsls r1, 8
- movs r0, 0x52
- bl SetGpuReg
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81603A8
-
- thumb_func_start sub_81603F4
-sub_81603F4: @ 81603F4
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x32
- ldrsh r1, [r4, r0]
- cmp r1, 0x1
- beq _0816046C
- cmp r1, 0x1
- bgt _0816040A
- cmp r1, 0
- beq _08160414
- b _081604E8
-_0816040A:
- cmp r1, 0x2
- beq _08160482
- cmp r1, 0x3
- beq _081604E2
- b _081604E8
-_08160414:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _081604E8
- strh r1, [r4, 0x2E]
- ldrh r1, [r4, 0x30]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0816043E
- ldrh r2, [r4, 0x3A]
- movs r3, 0x3A
- ldrsh r0, [r4, r3]
- cmp r0, 0xF
- bgt _0816044C
- adds r0, r2, 0x1
- strh r0, [r4, 0x3A]
- b _0816044C
-_0816043E:
- ldrh r2, [r4, 0x3C]
- movs r3, 0x3C
- ldrsh r0, [r4, r3]
- cmp r0, 0
- beq _0816044C
- subs r0, r2, 0x1
- strh r0, [r4, 0x3C]
-_0816044C:
- adds r0, r1, 0x1
- strh r0, [r4, 0x30]
- ldrh r1, [r4, 0x3C]
- lsls r1, 8
- ldrh r0, [r4, 0x3A]
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _081604E8
- b _081604DA
-_0816046C:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xA
- bne _081604E8
- strh r1, [r4, 0x2E]
- strh r1, [r4, 0x30]
- b _081604DA
-_08160482:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _081604E8
- movs r0, 0
- strh r0, [r4, 0x2E]
- ldrh r1, [r4, 0x30]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _081604AE
- ldrh r2, [r4, 0x3A]
- movs r3, 0x3A
- ldrsh r0, [r4, r3]
- cmp r0, 0
- beq _081604BC
- subs r0, r2, 0x1
- strh r0, [r4, 0x3A]
- b _081604BC
-_081604AE:
- ldrh r2, [r4, 0x3C]
- movs r3, 0x3C
- ldrsh r0, [r4, r3]
- cmp r0, 0xF
- bgt _081604BC
- adds r0, r2, 0x1
- strh r0, [r4, 0x3C]
-_081604BC:
- adds r0, r1, 0x1
- strh r0, [r4, 0x30]
- ldrh r1, [r4, 0x3C]
- lsls r1, 8
- ldrh r0, [r4, 0x3A]
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- cmp r0, 0x10
- bne _081604E8
-_081604DA:
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- b _081604E8
-_081604E2:
- adds r0, r4, 0
- bl DestroySpriteAndMatrix
-_081604E8:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81603F4
-
- thumb_func_start AnimTask_GetWeather
-AnimTask_GetWeather: @ 81604F0
- push {lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r2, =gBattleAnimArgs
- movs r0, 0
- strh r0, [r2, 0xE]
- ldr r0, =gWeatherMoveAnim
- ldrh r1, [r0]
- movs r0, 0x60
- ands r0, r1
- cmp r0, 0
- beq _08160514
- movs r0, 0x1
- b _08160536
- .pool
-_08160514:
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- beq _08160520
- movs r0, 0x2
- b _08160536
-_08160520:
- movs r0, 0x18
- ands r0, r1
- cmp r0, 0
- beq _0816052C
- movs r0, 0x3
- b _08160536
-_0816052C:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08160538
- movs r0, 0x4
-_08160536:
- strh r0, [r2, 0xE]
-_08160538:
- adds r0, r3, 0
- bl DestroyAnimVisualTask
- pop {r0}
- bx r0
- thumb_func_end AnimTask_GetWeather
-
- thumb_func_start sub_8160544
-sub_8160544: @ 8160544
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, =gTasks
- adds r4, r0
- movs r0, 0
- strh r0, [r4, 0x8]
- ldr r0, =gBattleAnimArgs
- ldrb r0, [r0]
- bl GetAnimBattlerSpriteId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- strh r1, [r4, 0x26]
- ldr r2, =gUnknown_085CE9C8
- adds r0, r4, 0
- bl PrepareAffineAnimInTaskData
- ldr r0, =sub_816058C
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8160544
-
- thumb_func_start sub_816058C
-sub_816058C: @ 816058C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r2, =gTasks
- adds r3, r0, r2
- ldrh r0, [r3, 0x8]
- adds r1, r0, 0x1
- movs r5, 0
- strh r1, [r3, 0x8]
- subs r0, 0x10
- lsls r0, 16
- lsrs r0, 16
- adds r6, r2, 0
- cmp r0, 0x16
- bhi _081605F0
- ldrh r0, [r3, 0xA]
- adds r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _08160600
- strh r5, [r3, 0xA]
- ldrh r0, [r3, 0xC]
- adds r0, 0x1
- strh r0, [r3, 0xC]
- movs r5, 0x1
- ands r0, r5
- cmp r0, 0
- bne _081605F0
- ldr r2, =gSprites
- movs r0, 0x26
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, =0x0000ffff
- strh r1, [r0, 0x24]
- b _08160600
- .pool
-_081605F0:
- ldr r2, =gSprites
- movs r0, 0x26
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r5, [r0, 0x24]
-_08160600:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r6
- bl RunAffineAnimFromTaskData
- lsls r0, 24
- cmp r0, 0
- bne _08160618
- adds r0, r4, 0
- bl DestroyAnimVisualTask
-_08160618:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_816058C
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/battle_anim_effects_3.s b/asm/battle_anim_effects_3.s
new file mode 100644
index 000000000..4b9466786
--- /dev/null
+++ b/asm/battle_anim_effects_3.s
@@ -0,0 +1,1632 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start AnimTask_GetReturnPowerLevel
+AnimTask_GetReturnPowerLevel: @ 815F8A0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r3, =gBattleAnimArgs
+ movs r2, 0
+ strh r2, [r3, 0xE]
+ ldr r1, =gAnimFriendship
+ ldrb r0, [r1]
+ ldrb r1, [r1]
+ adds r0, r1, 0
+ subs r0, 0x3D
+ lsls r0, 24
+ lsrs r0, 24
+ adds r2, r1, 0
+ cmp r0, 0x1E
+ bhi _0815F8C4
+ movs r0, 0x1
+ strh r0, [r3, 0xE]
+_0815F8C4:
+ adds r0, r2, 0
+ subs r0, 0x5C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x6C
+ bhi _0815F8D4
+ movs r0, 0x2
+ strh r0, [r3, 0xE]
+_0815F8D4:
+ lsls r0, r1, 24
+ lsrs r0, 24
+ cmp r0, 0xC8
+ bls _0815F8E0
+ movs r0, 0x3
+ strh r0, [r3, 0xE]
+_0815F8E0:
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end AnimTask_GetReturnPowerLevel
+
+ thumb_func_start sub_815F8F4
+sub_815F8F4: @ 815F8F4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x1C
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r1, =gTasks
+ lsls r0, 2
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x4
+ bls _0815F91A
+ b _0815FE68
+_0815F91A:
+ lsls r0, 2
+ ldr r1, =_0815F92C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0815F92C:
+ .4byte _0815F940
+ .4byte _0815F9F4
+ .4byte _0815FBE8
+ .4byte _0815FD08
+ .4byte _0815FD8C
+_0815F940:
+ movs r0, 0
+ bl GetAnimBattlerSpriteId
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r1, =gTasks
+ mov r2, r8
+ lsls r4, r2, 2
+ adds r0, r4, r2
+ lsls r0, 3
+ adds r6, r0, r1
+ movs r3, 0x80
+ lsls r3, 4
+ adds r0, r3, 0
+ ldrh r1, [r6, 0xA]
+ adds r0, r1
+ strh r0, [r6, 0xA]
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ mov r9, r4
+ cmp r0, 0
+ bne _0815F998
+ ldr r2, =gSprites
+ lsls r3, r7, 4
+ adds r1, r3, r7
+ lsls r1, 2
+ adds r1, r2
+ ldrh r0, [r6, 0xA]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r4, [r1, 0x24]
+ adds r0, r4
+ strh r0, [r1, 0x24]
+ b _0815F9B2
+ .pool
+_0815F998:
+ ldr r3, =gSprites
+ lsls r4, r7, 4
+ adds r2, r4, r7
+ lsls r2, 2
+ adds r2, r3
+ ldrh r1, [r6, 0xA]
+ lsls r1, 16
+ asrs r1, 24
+ ldrh r0, [r2, 0x24]
+ subs r0, r1
+ strh r0, [r2, 0x24]
+ adds r2, r3, 0
+ adds r3, r4, 0
+_0815F9B2:
+ ldr r1, =gTasks
+ mov r0, r9
+ add r0, r8
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrb r0, [r4, 0xA]
+ strh r0, [r4, 0xA]
+ adds r1, r3, r7
+ lsls r1, 2
+ adds r1, r2
+ ldrh r0, [r1, 0x24]
+ ldrh r1, [r1, 0x20]
+ adds r0, r1
+ lsls r0, 16
+ movs r1, 0x80
+ lsls r1, 14
+ adds r0, r1
+ movs r1, 0x98
+ lsls r1, 17
+ cmp r0, r1
+ bhi _0815F9DE
+ b _0815FE68
+_0815F9DE:
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _0815FE68
+ .pool
+_0815F9F4:
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ beq _0815FA28
+ ldr r0, =gContestResources
+ ldr r0, [r0]
+ ldr r0, [r0, 0x18]
+ ldr r2, [r0, 0x8]
+ mov r10, r2
+ ldr r3, [r0, 0xC]
+ mov r9, r3
+ ldrh r6, [r0]
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSpriteSubpriority
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r7, 0
+ b _0815FB4E
+ .pool
+_0815FA28:
+ ldr r4, =gBattleAnimAttacker
+ ldrb r0, [r4]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _0815FAC8
+ ldr r7, =gBattlerPartyIndexes
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r7
+ ldrh r0, [r0]
+ movs r6, 0x64
+ muls r0, r6
+ ldr r5, =gPlayerParty
+ adds r0, r5
+ movs r1, 0
+ bl GetMonData
+ mov r10, r0
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r7
+ ldrh r0, [r0]
+ muls r0, r6
+ adds r0, r5
+ movs r1, 0x1
+ bl GetMonData
+ mov r9, r0
+ ldr r0, =gBattleSpritesDataPtr
+ ldr r0, [r0]
+ ldrb r2, [r4]
+ ldr r1, [r0]
+ lsls r0, r2, 2
+ adds r1, r0, r1
+ ldrh r0, [r1, 0x2]
+ cmp r0, 0
+ bne _0815FA9C
+ lsls r0, r2, 1
+ adds r0, r7
+ ldrh r0, [r0]
+ muls r0, r6
+ adds r0, r5
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r6, r0, 16
+ b _0815FA9E
+ .pool
+_0815FA9C:
+ ldrh r6, [r1, 0x2]
+_0815FA9E:
+ movs r0, 0x1
+ bl GetAnimBattlerSpriteId
+ ldr r2, =gSprites
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ adds r1, 0x43
+ ldrb r0, [r1]
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r7, 0
+ movs r5, 0x88
+ lsls r5, 1
+ b _0815FB50
+ .pool
+_0815FAC8:
+ ldr r7, =gBattlerPartyIndexes
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r7
+ ldrh r0, [r0]
+ movs r6, 0x64
+ muls r0, r6
+ ldr r5, =gEnemyParty
+ adds r0, r5
+ movs r1, 0
+ bl GetMonData
+ mov r10, r0
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r7
+ ldrh r0, [r0]
+ muls r0, r6
+ adds r0, r5
+ movs r1, 0x1
+ bl GetMonData
+ mov r9, r0
+ ldr r0, =gBattleSpritesDataPtr
+ ldr r0, [r0]
+ ldrb r2, [r4]
+ ldr r1, [r0]
+ lsls r0, r2, 2
+ adds r1, r0, r1
+ ldrh r0, [r1, 0x2]
+ cmp r0, 0
+ bne _0815FB2C
+ lsls r0, r2, 1
+ adds r0, r7
+ ldrh r0, [r0]
+ muls r0, r6
+ adds r0, r5
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r6, r0, 16
+ b _0815FB2E
+ .pool
+_0815FB2C:
+ ldrh r6, [r1, 0x2]
+_0815FB2E:
+ movs r0, 0x1
+ bl GetAnimBattlerSpriteId
+ ldr r2, =gSprites
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ adds r1, 0x43
+ ldrb r0, [r1]
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r7, 0x1
+_0815FB4E:
+ ldr r5, =0x0000ffe0
+_0815FB50:
+ ldr r0, =gBattleAnimTarget
+ ldrb r0, [r0]
+ movs r1, 0x1
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r3, r5, 16
+ asrs r3, 16
+ str r0, [sp]
+ str r4, [sp, 0x4]
+ mov r4, r10
+ str r4, [sp, 0x8]
+ mov r0, r9
+ str r0, [sp, 0xC]
+ ldr r4, =gBattleAnimAttacker
+ ldrb r0, [r4]
+ str r0, [sp, 0x10]
+ movs r0, 0
+ str r0, [sp, 0x14]
+ adds r0, r6, 0
+ adds r1, r7, 0
+ movs r2, 0
+ bl sub_80A8394
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, =gBattleSpritesDataPtr
+ ldr r1, [r0]
+ ldrb r0, [r4]
+ ldr r1, [r1]
+ lsls r0, 2
+ adds r0, r1
+ ldrh r0, [r0, 0x2]
+ cmp r0, 0
+ beq _0815FBBA
+ ldr r1, =gSprites
+ lsls r0, r5, 4
+ adds r0, r5
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0, 0x5]
+ lsrs r0, 4
+ lsls r0, 4
+ movs r2, 0x80
+ lsls r2, 1
+ adds r1, r2, 0
+ orrs r0, r1
+ ldr r3, =0x00007fff
+ movs r1, 0x10
+ movs r2, 0x6
+ bl BlendPalette
+_0815FBBA:
+ ldr r0, =gTasks
+ mov r3, r8
+ lsls r1, r3, 2
+ add r1, r8
+ lsls r1, 3
+ adds r1, r0
+ strh r5, [r1, 0x26]
+ b _0815FD7E
+ .pool
+_0815FBE8:
+ ldr r1, =gTasks
+ mov r0, r8
+ lsls r4, r0, 2
+ adds r0, r4, r0
+ lsls r0, 3
+ adds r6, r0, r1
+ ldrh r0, [r6, 0x26]
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r1, 0x80
+ lsls r1, 4
+ adds r0, r1, 0
+ ldrh r2, [r6, 0xA]
+ adds r0, r2
+ strh r0, [r6, 0xA]
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ mov r9, r4
+ cmp r0, 0
+ bne _0815FC40
+ ldr r3, =gSprites
+ lsls r4, r5, 4
+ adds r2, r4, r5
+ lsls r2, 2
+ adds r2, r3
+ ldrh r1, [r6, 0xA]
+ lsls r1, 16
+ asrs r1, 24
+ ldrh r0, [r2, 0x24]
+ subs r0, r1
+ strh r0, [r2, 0x24]
+ adds r2, r3, 0
+ adds r3, r4, 0
+ b _0815FC56
+ .pool
+_0815FC40:
+ ldr r2, =gSprites
+ lsls r3, r5, 4
+ adds r1, r3, r5
+ lsls r1, 2
+ adds r1, r2
+ ldrh r0, [r6, 0xA]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r4, [r1, 0x24]
+ adds r0, r4
+ strh r0, [r1, 0x24]
+_0815FC56:
+ ldr r1, =gTasks
+ mov r0, r9
+ add r0, r8
+ lsls r0, 3
+ adds r6, r0, r1
+ ldrb r0, [r6, 0xA]
+ strh r0, [r6, 0xA]
+ adds r1, r3, r5
+ lsls r1, 2
+ adds r1, r2
+ ldrh r0, [r1, 0x24]
+ ldrh r1, [r1, 0x20]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ movs r1, 0x24
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _0815FCD6
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _0815FCB4
+ lsls r4, r5, 16
+ asrs r4, 16
+ ldr r0, =gBattleAnimTarget
+ ldrb r0, [r0]
+ movs r1, 0
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ bge _0815FCD6
+ b _0815FCCA
+ .pool
+_0815FCB4:
+ lsls r4, r5, 16
+ asrs r4, 16
+ ldr r0, =gBattleAnimTarget
+ ldrb r0, [r0]
+ movs r1, 0
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ ble _0815FCD6
+_0815FCCA:
+ ldrh r0, [r6, 0x24]
+ adds r0, 0x1
+ strh r0, [r6, 0x24]
+ ldr r1, =gBattleAnimArgs
+ ldr r0, =0x0000ffff
+ strh r0, [r1, 0xE]
+_0815FCD6:
+ lsls r0, r5, 16
+ movs r2, 0x80
+ lsls r2, 14
+ adds r0, r2
+ movs r1, 0x98
+ lsls r1, 17
+ cmp r0, r1
+ bhi _0815FCE8
+ b _0815FE68
+_0815FCE8:
+ ldr r0, =gTasks
+ mov r1, r9
+ add r1, r8
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0
+ strh r0, [r1, 0xA]
+ b _0815FD7E
+ .pool
+_0815FD08:
+ movs r0, 0
+ bl GetAnimBattlerSpriteId
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r1, =gTasks
+ mov r3, r8
+ lsls r4, r3, 2
+ adds r0, r4, r3
+ lsls r0, 3
+ adds r0, r1
+ ldrh r0, [r0, 0x26]
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 4
+ adds r0, r5
+ lsls r0, 2
+ ldr r5, =gSprites
+ adds r0, r5
+ bl sub_80A8610
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ mov r9, r4
+ cmp r0, 0
+ bne _0815FD60
+ lsls r1, r7, 4
+ adds r1, r7
+ lsls r1, 2
+ adds r1, r5
+ ldrh r0, [r1, 0x20]
+ negs r0, r0
+ subs r0, 0x20
+ strh r0, [r1, 0x24]
+ b _0815FD74
+ .pool
+_0815FD60:
+ lsls r0, r7, 4
+ adds r0, r7
+ lsls r0, 2
+ adds r0, r5
+ ldrh r2, [r0, 0x20]
+ movs r4, 0x88
+ lsls r4, 1
+ adds r1, r4, 0
+ subs r1, r2
+ strh r1, [r0, 0x24]
+_0815FD74:
+ ldr r0, =gTasks
+ mov r1, r9
+ add r1, r8
+ lsls r1, 3
+ adds r1, r0
+_0815FD7E:
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ b _0815FE68
+ .pool
+_0815FD8C:
+ movs r0, 0
+ bl GetAnimBattlerSpriteId
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r1, =gTasks
+ mov r0, r8
+ lsls r4, r0, 2
+ adds r0, r4, r0
+ lsls r0, 3
+ adds r2, r0, r1
+ movs r1, 0x80
+ lsls r1, 4
+ adds r0, r1, 0
+ ldrh r3, [r2, 0xA]
+ adds r0, r3
+ strh r0, [r2, 0xA]
+ ldr r0, =gBattleAnimAttacker
+ mov r10, r0
+ ldrb r0, [r0]
+ str r2, [sp, 0x18]
+ bl GetBattlerSide
+ lsls r0, 24
+ mov r9, r4
+ ldr r2, [sp, 0x18]
+ cmp r0, 0
+ bne _0815FE0C
+ ldr r1, =gSprites
+ lsls r5, r7, 4
+ adds r0, r5, r7
+ lsls r0, 2
+ adds r6, r0, r1
+ ldrh r0, [r2, 0xA]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r1, [r6, 0x24]
+ adds r0, r1
+ strh r0, [r6, 0x24]
+ movs r2, 0x24
+ ldrsh r4, [r6, r2]
+ movs r3, 0x20
+ ldrsh r0, [r6, r3]
+ adds r4, r0
+ mov r1, r10
+ ldrb r0, [r1]
+ movs r1, 0
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ adds r3, r5, 0
+ cmp r4, r0
+ blt _0815FE44
+ movs r2, 0
+ strh r2, [r6, 0x24]
+ b _0815FE44
+ .pool
+_0815FE0C:
+ ldr r1, =gSprites
+ lsls r5, r7, 4
+ adds r0, r5, r7
+ lsls r0, 2
+ adds r6, r0, r1
+ ldrh r1, [r2, 0xA]
+ lsls r1, 16
+ asrs r1, 24
+ ldrh r0, [r6, 0x24]
+ subs r0, r1
+ strh r0, [r6, 0x24]
+ movs r3, 0x24
+ ldrsh r4, [r6, r3]
+ movs r1, 0x20
+ ldrsh r0, [r6, r1]
+ adds r4, r0
+ mov r2, r10
+ ldrb r0, [r2]
+ movs r1, 0
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ adds r3, r5, 0
+ cmp r4, r0
+ bgt _0815FE44
+ movs r4, 0
+ strh r4, [r6, 0x24]
+_0815FE44:
+ ldr r1, =gTasks
+ mov r0, r9
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ ldrb r1, [r0, 0xA]
+ strh r1, [r0, 0xA]
+ ldr r1, =gSprites
+ adds r0, r3, r7
+ lsls r0, 2
+ adds r0, r1
+ movs r1, 0x24
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _0815FE68
+ mov r0, r8
+ bl DestroyAnimVisualTask
+_0815FE68:
+ add sp, 0x1C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815F8F4
+
+ thumb_func_start sub_815FE80
+sub_815FE80: @ 815FE80
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _0815FE92
+ cmp r0, 0x1
+ beq _0815FF3A
+ b _0815FFBC
+_0815FE92:
+ ldr r0, =gBattleAnimArgs
+ movs r2, 0xE
+ ldrsh r1, [r0, r2]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _0815FF2C
+ movs r0, 0x3F
+ bl BattleAnimAdjustPanning
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0x7A
+ bl PlaySE12WithPanning
+ ldr r0, =gBattleAnimTarget
+ ldrb r0, [r0]
+ movs r1, 0x1
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x10
+ strh r0, [r4, 0x22]
+ ldr r0, =0x0000ffe0
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x3C]
+ adds r0, 0x1
+ strh r0, [r4, 0x3C]
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0815FFBC
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ bne _0815FFBC
+ movs r0, 0x1
+ bl GetAnimBattlerSpriteId
+ ldr r2, =gSprites
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ adds r1, 0x43
+ ldrb r0, [r1]
+ subs r0, 0x1
+ adds r1, r4, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ b _0815FFBC
+ .pool
+_0815FF2C:
+ adds r0, r4, 0
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ b _0815FFBC
+_0815FF3A:
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r2, 0x2E
+ ldrsh r1, [r4, r2]
+ bl Sin
+ strh r0, [r4, 0x26]
+ ldrh r2, [r4, 0x30]
+ adds r0, r2, 0x5
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7F
+ ble _0815FF6E
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x1
+ strh r0, [r4, 0x34]
+ adds r0, r2, 0
+ subs r0, 0x7A
+ strh r0, [r4, 0x30]
+_0815FF6E:
+ movs r2, 0x80
+ lsls r2, 1
+ adds r0, r2, 0
+ ldrh r1, [r4, 0x32]
+ adds r0, r1
+ strh r0, [r4, 0x32]
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _0815FF9C
+ ldrh r2, [r4, 0x32]
+ lsls r1, r2, 16
+ asrs r1, 24
+ ldrh r0, [r4, 0x24]
+ subs r0, r1
+ strh r0, [r4, 0x24]
+ adds r1, r2, 0
+ b _0815FFA8
+ .pool
+_0815FF9C:
+ ldrh r1, [r4, 0x32]
+ lsls r0, r1, 16
+ asrs r0, 24
+ ldrh r2, [r4, 0x24]
+ adds r0, r2
+ strh r0, [r4, 0x24]
+_0815FFA8:
+ movs r0, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x32]
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x2
+ bne _0815FFBC
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_0815FFBC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_815FE80
+
+ thumb_func_start sub_815FFC4
+sub_815FFC4: @ 815FFC4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0x26
+ ldrsh r0, [r0, r2]
+ adds r3, r1, 0
+ cmp r0, 0x4
+ bls _0815FFE0
+ b _08160132
+_0815FFE0:
+ lsls r0, 2
+ ldr r1, =_0815FFF4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0815FFF4:
+ .4byte _08160008
+ .4byte _08160058
+ .4byte _081600B4
+ .4byte _081600CC
+ .4byte _08160132
+_08160008:
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ movs r1, 0
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ ldr r0, =gBattleAnimTarget
+ ldrb r0, [r0]
+ movs r1, 0
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ adds r2, r0, 0
+ ldr r1, =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r1, r0, r1
+ movs r0, 0x6
+ strh r0, [r1, 0x8]
+ cmp r5, r2
+ ble _0816003E
+ negs r0, r0
+ strh r0, [r1, 0x8]
+_0816003E:
+ strh r5, [r1, 0xA]
+ strh r2, [r1, 0xC]
+ ldrh r0, [r1, 0x26]
+ adds r0, 0x1
+ strh r0, [r1, 0x26]
+ b _08160150
+ .pool
+_08160058:
+ ldr r1, =gBattlerSpriteIds
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r2, [r0]
+ ldr r1, =gSprites
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r1, r0, r1
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r2, r0, r3
+ ldrh r0, [r2, 0x8]
+ ldrh r3, [r1, 0x24]
+ adds r0, r3
+ strh r0, [r1, 0x24]
+ movs r3, 0x8
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ ble _081600A0
+ movs r3, 0x20
+ ldrsh r0, [r1, r3]
+ movs r3, 0x24
+ ldrsh r1, [r1, r3]
+ adds r0, r1
+ movs r3, 0xC
+ ldrsh r1, [r2, r3]
+ b _08160126
+ .pool
+_081600A0:
+ movs r3, 0x20
+ ldrsh r0, [r1, r3]
+ movs r3, 0x24
+ ldrsh r1, [r1, r3]
+ adds r0, r1
+ movs r3, 0xC
+ ldrsh r1, [r2, r3]
+ cmp r0, r1
+ bgt _08160150
+ b _0816012A
+_081600B4:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r3
+ movs r2, 0x8
+ ldrsh r1, [r0, r2]
+ negs r1, r1
+ strh r1, [r0, 0x8]
+ ldrh r1, [r0, 0x26]
+ adds r1, 0x1
+ strh r1, [r0, 0x26]
+ b _08160150
+_081600CC:
+ ldr r1, =gBattlerSpriteIds
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r2, [r0]
+ ldr r1, =gSprites
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r1, r0, r1
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r2, r0, r3
+ ldrh r0, [r2, 0x8]
+ ldrh r3, [r1, 0x24]
+ adds r0, r3
+ strh r0, [r1, 0x24]
+ movs r3, 0x8
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ bge _08160118
+ movs r3, 0x20
+ ldrsh r0, [r1, r3]
+ movs r3, 0x24
+ ldrsh r1, [r1, r3]
+ adds r0, r1
+ movs r3, 0xA
+ ldrsh r1, [r2, r3]
+ cmp r0, r1
+ bgt _08160150
+ b _0816012A
+ .pool
+_08160118:
+ movs r3, 0x20
+ ldrsh r0, [r1, r3]
+ movs r3, 0x24
+ ldrsh r1, [r1, r3]
+ adds r0, r1
+ movs r3, 0xA
+ ldrsh r1, [r2, r3]
+_08160126:
+ cmp r0, r1
+ blt _08160150
+_0816012A:
+ ldrh r0, [r2, 0x26]
+ adds r0, 0x1
+ strh r0, [r2, 0x26]
+ b _08160150
+_08160132:
+ ldr r1, =gBattlerSpriteIds
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r2, [r0]
+ ldr r1, =gSprites
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0x24]
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+_08160150:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_815FFC4
+
+ thumb_func_start sub_8160164
+sub_8160164: @ 8160164
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, =gTasks
+ adds r4, r1, r0
+ movs r0, 0
+ bl GetAnimBattlerSpriteId
+ lsls r0, 24
+ lsrs r0, 24
+ movs r5, 0
+ strh r0, [r4, 0xE]
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ movs r2, 0x1
+ negs r2, r2
+ adds r1, r2, 0
+ cmp r0, 0
+ bne _08160198
+ movs r1, 0x1
+_08160198:
+ strh r1, [r4, 0x10]
+ ldr r2, =gSprites
+ movs r0, 0xE
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0, 0x22]
+ strh r0, [r4, 0x14]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0, 0x20]
+ strh r0, [r4, 0x12]
+ strh r5, [r4, 0x1A]
+ strh r5, [r4, 0x1E]
+ movs r0, 0x1
+ strh r0, [r4, 0x1C]
+ strh r5, [r4, 0x20]
+ ldr r0, =sub_81601DC
+ str r0, [r4]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8160164
+
+ thumb_func_start sub_81601DC
+sub_81601DC: @ 81601DC
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, =gTasks
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _08160284
+ cmp r0, 0x1
+ bgt _08160204
+ cmp r0, 0
+ beq _0816020A
+ b _081602DA
+ .pool
+_08160204:
+ cmp r0, 0x2
+ beq _081602D4
+ b _081602DA
+_0816020A:
+ ldrh r0, [r4, 0x1E]
+ adds r0, 0x8
+ movs r2, 0xFF
+ ands r0, r2
+ strh r0, [r4, 0x1E]
+ ldr r5, =gSprites
+ movs r6, 0xE
+ ldrsh r0, [r4, r6]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ ldr r3, =gSineTable
+ movs r6, 0x1E
+ ldrsh r0, [r4, r6]
+ lsls r0, 1
+ adds r0, r3
+ ldrh r0, [r0]
+ lsls r0, 16
+ asrs r0, 21
+ strh r0, [r1, 0x24]
+ ldrh r0, [r4, 0x1A]
+ adds r0, 0x2
+ ands r0, r2
+ strh r0, [r4, 0x1A]
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r5
+ movs r6, 0x1A
+ ldrsh r0, [r4, r6]
+ lsls r0, 1
+ adds r0, r3
+ ldrh r0, [r0]
+ lsls r0, 16
+ asrs r0, 19
+ ldrh r1, [r4, 0x10]
+ muls r0, r1
+ ldrh r1, [r4, 0x12]
+ adds r0, r1
+ strh r0, [r2, 0x20]
+ movs r6, 0x1A
+ ldrsh r0, [r4, r6]
+ cmp r0, 0
+ bne _081602DA
+ movs r0, 0xE
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrh r1, [r4, 0x12]
+ strh r1, [r0, 0x20]
+ b _081602C4
+ .pool
+_08160284:
+ ldrh r0, [r4, 0x1E]
+ adds r0, 0x8
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x1E]
+ ldr r3, =gSprites
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ ldr r2, =gSineTable
+ movs r5, 0x1E
+ ldrsh r0, [r4, r5]
+ lsls r0, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ lsls r0, 16
+ asrs r0, 21
+ strh r0, [r1, 0x24]
+ movs r6, 0x1E
+ ldrsh r2, [r4, r6]
+ cmp r2, 0
+ bne _081602DA
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ strh r2, [r1, 0x24]
+_081602C4:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _081602DA
+ .pool
+_081602D4:
+ adds r0, r2, 0
+ bl DestroyAnimVisualTask
+_081602DA:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81601DC
+
+ thumb_func_start sub_81602E0
+sub_81602E0: @ 81602E0
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ ldrh r0, [r4, 0x2E]
+ ldrh r1, [r4, 0x30]
+ adds r0, r1
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x30]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r1, 0x14
+ bl Cos
+ strh r0, [r4, 0x24]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r1, 0x14
+ bl Sin
+ strh r0, [r4, 0x26]
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _08160326
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_08160326:
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81602E0
+
+ thumb_func_start sub_8160338
+sub_8160338: @ 8160338
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _0816037C
+ ldr r2, =gBattleAnimArgs
+ ldrh r0, [r4, 0x20]
+ ldrh r1, [r2]
+ subs r0, r1
+ strh r0, [r4, 0x20]
+ ldrh r0, [r2, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ ldr r0, =0x0000fff5
+ strh r0, [r4, 0x2E]
+ movs r0, 0xC0
+ strh r0, [r4, 0x30]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ b _08160396
+ .pool
+_0816037C:
+ movs r0, 0xB
+ strh r0, [r4, 0x2E]
+ movs r0, 0xC0
+ strh r0, [r4, 0x30]
+ ldr r1, =gBattleAnimArgs
+ ldrh r0, [r1]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x20]
+ ldrh r0, [r1, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+_08160396:
+ ldr r0, =sub_81602E0
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8160338
+
+ thumb_func_start sub_81603A8
+sub_81603A8: @ 81603A8
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_80A861C
+ strh r0, [r5, 0x22]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xF
+ bgt _081603D2
+ movs r0, 0x10
+ strh r0, [r5, 0x22]
+_081603D2:
+ movs r0, 0
+ strh r0, [r5, 0x3A]
+ movs r1, 0x10
+ strh r1, [r5, 0x3C]
+ ldr r0, =sub_81603F4
+ str r0, [r5, 0x1C]
+ lsls r1, 8
+ movs r0, 0x52
+ bl SetGpuReg
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81603A8
+
+ thumb_func_start sub_81603F4
+sub_81603F4: @ 81603F4
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x32
+ ldrsh r1, [r4, r0]
+ cmp r1, 0x1
+ beq _0816046C
+ cmp r1, 0x1
+ bgt _0816040A
+ cmp r1, 0
+ beq _08160414
+ b _081604E8
+_0816040A:
+ cmp r1, 0x2
+ beq _08160482
+ cmp r1, 0x3
+ beq _081604E2
+ b _081604E8
+_08160414:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _081604E8
+ strh r1, [r4, 0x2E]
+ ldrh r1, [r4, 0x30]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0816043E
+ ldrh r2, [r4, 0x3A]
+ movs r3, 0x3A
+ ldrsh r0, [r4, r3]
+ cmp r0, 0xF
+ bgt _0816044C
+ adds r0, r2, 0x1
+ strh r0, [r4, 0x3A]
+ b _0816044C
+_0816043E:
+ ldrh r2, [r4, 0x3C]
+ movs r3, 0x3C
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ beq _0816044C
+ subs r0, r2, 0x1
+ strh r0, [r4, 0x3C]
+_0816044C:
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x30]
+ ldrh r1, [r4, 0x3C]
+ lsls r1, 8
+ ldrh r0, [r4, 0x3A]
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _081604E8
+ b _081604DA
+_0816046C:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ movs r1, 0
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xA
+ bne _081604E8
+ strh r1, [r4, 0x2E]
+ strh r1, [r4, 0x30]
+ b _081604DA
+_08160482:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _081604E8
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+ ldrh r1, [r4, 0x30]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _081604AE
+ ldrh r2, [r4, 0x3A]
+ movs r3, 0x3A
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ beq _081604BC
+ subs r0, r2, 0x1
+ strh r0, [r4, 0x3A]
+ b _081604BC
+_081604AE:
+ ldrh r2, [r4, 0x3C]
+ movs r3, 0x3C
+ ldrsh r0, [r4, r3]
+ cmp r0, 0xF
+ bgt _081604BC
+ adds r0, r2, 0x1
+ strh r0, [r4, 0x3C]
+_081604BC:
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x30]
+ ldrh r1, [r4, 0x3C]
+ lsls r1, 8
+ ldrh r0, [r4, 0x3A]
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x10
+ bne _081604E8
+_081604DA:
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ b _081604E8
+_081604E2:
+ adds r0, r4, 0
+ bl DestroySpriteAndMatrix
+_081604E8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81603F4
+
+ thumb_func_start AnimTask_GetWeather
+AnimTask_GetWeather: @ 81604F0
+ push {lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r2, =gBattleAnimArgs
+ movs r0, 0
+ strh r0, [r2, 0xE]
+ ldr r0, =gWeatherMoveAnim
+ ldrh r1, [r0]
+ movs r0, 0x60
+ ands r0, r1
+ cmp r0, 0
+ beq _08160514
+ movs r0, 0x1
+ b _08160536
+ .pool
+_08160514:
+ movs r0, 0x7
+ ands r0, r1
+ cmp r0, 0
+ beq _08160520
+ movs r0, 0x2
+ b _08160536
+_08160520:
+ movs r0, 0x18
+ ands r0, r1
+ cmp r0, 0
+ beq _0816052C
+ movs r0, 0x3
+ b _08160536
+_0816052C:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08160538
+ movs r0, 0x4
+_08160536:
+ strh r0, [r2, 0xE]
+_08160538:
+ adds r0, r3, 0
+ bl DestroyAnimVisualTask
+ pop {r0}
+ bx r0
+ thumb_func_end AnimTask_GetWeather
+
+ thumb_func_start sub_8160544
+sub_8160544: @ 8160544
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, =gTasks
+ adds r4, r0
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ ldr r0, =gBattleAnimArgs
+ ldrb r0, [r0]
+ bl GetAnimBattlerSpriteId
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ strh r1, [r4, 0x26]
+ ldr r2, =gUnknown_085CE9C8
+ adds r0, r4, 0
+ bl PrepareAffineAnimInTaskData
+ ldr r0, =sub_816058C
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8160544
+
+ thumb_func_start sub_816058C
+sub_816058C: @ 816058C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r2, =gTasks
+ adds r3, r0, r2
+ ldrh r0, [r3, 0x8]
+ adds r1, r0, 0x1
+ movs r5, 0
+ strh r1, [r3, 0x8]
+ subs r0, 0x10
+ lsls r0, 16
+ lsrs r0, 16
+ adds r6, r2, 0
+ cmp r0, 0x16
+ bhi _081605F0
+ ldrh r0, [r3, 0xA]
+ adds r0, 0x1
+ strh r0, [r3, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ ble _08160600
+ strh r5, [r3, 0xA]
+ ldrh r0, [r3, 0xC]
+ adds r0, 0x1
+ strh r0, [r3, 0xC]
+ movs r5, 0x1
+ ands r0, r5
+ cmp r0, 0
+ bne _081605F0
+ ldr r2, =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r1, =0x0000ffff
+ strh r1, [r0, 0x24]
+ b _08160600
+ .pool
+_081605F0:
+ ldr r2, =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ strh r5, [r0, 0x24]
+_08160600:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r6
+ bl RunAffineAnimFromTaskData
+ lsls r0, 24
+ cmp r0, 0
+ bne _08160618
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+_08160618:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_816058C
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/macros/map.inc b/asm/macros/map.inc
index 9a028b2e5..94caeb697 100644
--- a/asm/macros/map.inc
+++ b/asm/macros/map.inc
@@ -14,7 +14,7 @@
.4byte \address
.endm
- .macro object_event index, gfx, replacement, x, y, elevation, movement_type, x_radius, y_radius, trainer_type, sight_radius_tree_etc, script, event_flag
+ .macro object_event index:req, gfx:req, replacement:req, x:req, y:req, elevation:req, movement_type:req, x_radius:req, y_radius:req, trainer_type:req, sight_radius_tree_etc:req, script:req, event_flag:req
.byte \index, \gfx, \replacement, 0
.2byte \x
.2byte \y
diff --git a/asm/water.s b/asm/water.s
deleted file mode 100644
index 693aceddd..000000000
--- a/asm/water.s
+++ /dev/null
@@ -1,3607 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start AnimTask_CreateRaindrops
-AnimTask_CreateRaindrops: @ 8107188
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0, 0
- ldr r1, =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r5, r0, r1
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _081071B0
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1]
- strh r0, [r5, 0xA]
- ldrh r0, [r1, 0x2]
- strh r0, [r5, 0xC]
- ldrh r0, [r1, 0x4]
- strh r0, [r5, 0xE]
-_081071B0:
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- movs r2, 0x8
- ldrsh r0, [r5, r2]
- movs r2, 0xC
- ldrsh r1, [r5, r2]
- bl __modsi3
- cmp r0, 0x1
- bne _081071F8
- bl Random2
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xF0
- bl __umodsi3
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl Random2
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x50
- bl __umodsi3
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- ldr r0, =gUnknown_08595020
- adds r1, r4, 0
- movs r3, 0x4
- bl CreateSprite
-_081071F8:
- movs r0, 0x8
- ldrsh r1, [r5, r0]
- movs r2, 0xE
- ldrsh r0, [r5, r2]
- cmp r1, r0
- bne _0810720A
- adds r0, r6, 0
- bl DestroyAnimVisualTask
-_0810720A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end AnimTask_CreateRaindrops
-
- thumb_func_start sub_810721C
-sub_810721C: @ 810721C
- ldr r1, =sub_8107228
- str r1, [r0, 0x1C]
- bx lr
- .pool
- thumb_func_end sub_810721C
-
- thumb_func_start sub_8107228
-sub_8107228: @ 8107228
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xD
- bgt _08107246
- ldrh r0, [r2, 0x24]
- adds r0, 0x1
- strh r0, [r2, 0x24]
- ldrh r0, [r2, 0x26]
- adds r0, 0x4
- strh r0, [r2, 0x26]
-_08107246:
- adds r0, r2, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0810725A
- adds r0, r2, 0
- bl DestroySprite
-_0810725A:
- pop {r0}
- bx r0
- thumb_func_end sub_8107228
-
- thumb_func_start sub_8107260
-sub_8107260: @ 8107260
- push {r4-r6,lr}
- adds r6, r0, 0
- ldr r5, =gBattleAnimAttacker
- ldrb r0, [r5]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _08107290
- ldrb r0, [r5]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldr r4, =gBattleAnimArgs
- ldrh r1, [r4]
- subs r0, r1
- b _081072A2
- .pool
-_08107290:
- ldrb r0, [r5]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- ldr r4, =gBattleAnimArgs
- lsrs r0, 24
- ldrh r1, [r4]
- adds r0, r1
-_081072A2:
- strh r0, [r6, 0x20]
- ldrb r0, [r5]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r4, [r4, 0x2]
- adds r0, r4
- strh r0, [r6, 0x22]
- adds r2, r6, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r2]
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _081072D8
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
-_081072D8:
- ldr r5, =gBattleAnimArgs
- ldrh r0, [r5, 0xC]
- strh r0, [r6, 0x2E]
- ldrh r0, [r6, 0x20]
- strh r0, [r6, 0x30]
- ldr r4, =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x32]
- ldrh r0, [r6, 0x22]
- strh r0, [r6, 0x34]
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x36]
- adds r0, r6, 0
- bl InitAnimLinearTranslation
- ldr r0, =SpriteCallbackDummy
- bl CreateInvisibleSpriteWithCallback
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- strh r4, [r6, 0x38]
- ldrb r0, [r5, 0x8]
- movs r2, 0x4
- ldrsh r1, [r5, r2]
- bl Sin
- ldrh r1, [r6, 0x20]
- subs r1, r0
- strh r1, [r6, 0x20]
- ldrb r0, [r5, 0x8]
- movs r2, 0x6
- ldrsh r1, [r5, r2]
- bl Cos
- ldrh r1, [r6, 0x22]
- subs r1, r0
- strh r1, [r6, 0x22]
- ldr r0, =gSprites
- lsls r1, r4, 4
- adds r1, r4
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r5, 0x4]
- strh r0, [r1, 0x2E]
- ldrh r0, [r5, 0x6]
- strh r0, [r1, 0x30]
- ldrh r0, [r5, 0xA]
- strh r0, [r1, 0x32]
- ldrb r0, [r5, 0x8]
- lsls r0, 8
- strh r0, [r1, 0x34]
- ldrh r0, [r5, 0xC]
- strh r0, [r1, 0x36]
- ldr r1, =sub_8107380
- str r1, [r6, 0x1C]
- adds r0, r6, 0
- bl _call_via_r1
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8107260
-
- thumb_func_start sub_8107380
-sub_8107380: @ 8107380
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r5, r0, 0
- ldrh r1, [r5, 0x38]
- lsls r1, 24
- lsrs r1, 24
- ldr r2, =gSprites
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r7, r0, r2
- ldrh r4, [r7, 0x36]
- lsls r4, 24
- lsrs r4, 24
- ldrh r0, [r7, 0x34]
- mov r8, r0
- movs r0, 0x1
- strh r0, [r5, 0x2E]
- adds r0, r5, 0
- bl TranslateAnimLinear
- mov r1, r8
- lsrs r6, r1, 8
- movs r0, 0x2E
- ldrsh r1, [r7, r0]
- adds r0, r6, 0
- bl Sin
- ldrh r1, [r5, 0x24]
- adds r0, r1
- strh r0, [r5, 0x24]
- movs r0, 0x30
- ldrsh r1, [r7, r0]
- adds r0, r6, 0
- bl Cos
- ldrh r1, [r5, 0x26]
- adds r0, r1
- strh r0, [r5, 0x26]
- ldrh r0, [r7, 0x32]
- mov r1, r8
- adds r1, r0
- strh r1, [r7, 0x34]
- subs r4, 0x1
- lsls r4, 24
- lsrs r4, 24
- cmp r4, 0
- beq _081073EC
- strh r4, [r7, 0x36]
- b _081073F6
- .pool
-_081073EC:
- ldr r0, =sub_8107408
- str r0, [r5, 0x1C]
- adds r0, r7, 0
- bl DestroySprite
-_081073F6:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8107380
-
- thumb_func_start sub_8107408
-sub_8107408: @ 8107408
- push {lr}
- adds r3, r0, 0
- adds r3, 0x2C
- ldrb r2, [r3]
- movs r1, 0x41
- negs r1, r1
- ands r1, r2
- strb r1, [r3]
- ldr r1, =RunStoredCallbackWhenAnimEnds
- str r1, [r0, 0x1C]
- ldr r1, =sub_8107430
- bl StoreSpriteCallbackInData6
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8107408
-
- thumb_func_start sub_8107430
-sub_8107430: @ 8107430
- push {lr}
- movs r1, 0xA
- strh r1, [r0, 0x2E]
- ldr r1, =WaitAnimForDuration
- str r1, [r0, 0x1C]
- ldr r1, =DestroySpriteAndMatrix
- bl StoreSpriteCallbackInData6
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8107430
-
- thumb_func_start sub_810744C
-sub_810744C: @ 810744C
- push {r4-r7,lr}
- adds r5, r0, 0
- movs r1, 0x1
- bl InitAnimSpritePos
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _0810747C
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1, 0x4]
- negs r0, r0
- lsls r0, 16
- lsrs r6, r0, 16
- adds r7, r1, 0
- b _08107482
- .pool
-_0810747C:
- ldr r0, =gBattleAnimArgs
- ldrh r6, [r0, 0x4]
- adds r7, r0, 0
-_08107482:
- ldrh r0, [r7, 0x8]
- strh r0, [r5, 0x2E]
- ldrh r0, [r5, 0x20]
- strh r0, [r5, 0x30]
- ldr r4, =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- adds r0, r6
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x22]
- strh r0, [r5, 0x34]
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r7, [r7, 0x6]
- adds r0, r7
- strh r0, [r5, 0x36]
- adds r0, r5, 0
- bl InitAnimLinearTranslation
- ldr r0, =sub_81074E4
- str r0, [r5, 0x1C]
- adds r2, r5, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- ldr r1, [r5, 0x1C]
- adds r0, r5, 0
- bl _call_via_r1
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810744C
-
- thumb_func_start sub_81074E4
-sub_81074E4: @ 81074E4
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, =gBattleAnimArgs
- ldrh r1, [r0, 0xE]
- ldr r0, =0x0000ffff
- cmp r1, r0
- bne _08107506
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAnim
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
-_08107506:
- adds r0, r4, 0
- bl TranslateAnimLinear
- lsls r0, 24
- cmp r0, 0
- beq _08107518
- adds r0, r4, 0
- bl DestroyAnimSprite
-_08107518:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81074E4
-
- thumb_func_start sub_8107528
-sub_8107528: @ 8107528
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gTasks
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- ldr r0, =gBattleAnimArgs
- ldrh r0, [r0]
- strh r0, [r4, 0x8]
- ldr r0, =0x0000279c
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 20
- movs r1, 0x80
- lsls r1, 1
- adds r0, r1
- strh r0, [r4, 0xC]
- ldr r0, =sub_810756C
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8107528
-
- thumb_func_start sub_810756C
-sub_810756C: @ 810756C
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r2, r0, r1
- ldrh r0, [r2, 0x1C]
- adds r0, 0x1
- strh r0, [r2, 0x1C]
- lsls r0, 16
- asrs r0, 16
- mov r12, r1
- cmp r0, 0x3
- bne _081075BE
- movs r0, 0
- strh r0, [r2, 0x1C]
- ldrh r0, [r2, 0xC]
- adds r0, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r1, =gPlttBufferFaded
- lsls r0, r5, 1
- adds r0, r1
- ldrh r6, [r0]
- adds r7, r1, 0
- adds r3, r0, 0x2
- movs r1, 0x6
- adds r2, r0, 0
-_081075A8:
- ldrh r0, [r3]
- strh r0, [r2]
- adds r3, 0x2
- adds r2, 0x2
- subs r1, 0x1
- cmp r1, 0
- bge _081075A8
- adds r0, r5, 0x7
- lsls r0, 1
- adds r0, r7
- strh r6, [r0]
-_081075BE:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- add r0, r12
- ldrh r1, [r0, 0x1E]
- adds r1, 0x1
- strh r1, [r0, 0x1E]
- lsls r1, 16
- asrs r1, 16
- movs r2, 0x8
- ldrsh r0, [r0, r2]
- cmp r1, r0
- bne _081075DE
- adds r0, r4, 0
- bl DestroyAnimVisualTask
-_081075DE:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810756C
-
- thumb_func_start sub_81075EC
-sub_81075EC: @ 81075EC
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x1
- bl InitAnimSpritePos
- movs r0, 0x1E
- strh r0, [r5, 0x2E]
- ldrh r0, [r5, 0x20]
- strh r0, [r5, 0x30]
- ldr r4, =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x22]
- strh r0, [r5, 0x34]
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- adds r0, r5, 0
- bl InitAnimLinearTranslation
- movs r0, 0x2E
- ldrsh r1, [r5, r0]
- movs r0, 0xD2
- lsls r0, 8
- bl __divsi3
- strh r0, [r5, 0x38]
- ldr r0, =gBattleAnimArgs
- ldrh r2, [r0, 0x6]
- strh r2, [r5, 0x3C]
- ldrh r1, [r0, 0xE]
- movs r3, 0xE
- ldrsh r0, [r0, r3]
- cmp r0, 0x7F
- ble _0810765C
- adds r0, r1, 0
- subs r0, 0x7F
- lsls r0, 8
- strh r0, [r5, 0x3A]
- negs r0, r2
- strh r0, [r5, 0x3C]
- b _08107660
- .pool
-_0810765C:
- lsls r0, r1, 8
- strh r0, [r5, 0x3A]
-_08107660:
- ldr r1, =sub_8107674
- str r1, [r5, 0x1C]
- adds r0, r5, 0
- bl _call_via_r1
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81075EC
-
- thumb_func_start sub_8107674
-sub_8107674: @ 8107674
- push {r4,lr}
- adds r4, r0, 0
- bl TranslateAnimLinear
- lsls r0, 24
- cmp r0, 0
- beq _08107688
- adds r0, r4, 0
- bl DestroyAnimSprite
-_08107688:
- ldrh r0, [r4, 0x3A]
- lsls r0, 16
- asrs r0, 24
- movs r2, 0x3C
- ldrsh r1, [r4, r2]
- bl Sin
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- movs r2, 0x3A
- ldrsh r0, [r4, r2]
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- adds r0, r1
- asrs r0, 8
- cmp r0, 0x7F
- ble _081076B8
- movs r0, 0
- strh r0, [r4, 0x3A]
- ldrh r0, [r4, 0x3C]
- negs r0, r0
- strh r0, [r4, 0x3C]
- b _081076C0
-_081076B8:
- ldrh r0, [r4, 0x38]
- ldrh r1, [r4, 0x3A]
- adds r0, r1
- strh r0, [r4, 0x3A]
-_081076C0:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8107674
-
- thumb_func_start sub_81076C8
-sub_81076C8: @ 81076C8
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r3, =gBattleAnimArgs
- ldrh r0, [r3]
- movs r2, 0
- strh r0, [r1, 0x8]
- strh r2, [r3, 0xE]
- ldr r0, =sub_81076F4
- str r0, [r1]
- bx lr
- .pool
- thumb_func_end sub_81076C8
-
- thumb_func_start sub_81076F4
-sub_81076F4: @ 81076F4
- push {lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r2, =gBattleAnimArgs
- ldrh r0, [r2, 0xE]
- adds r0, 0x3
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r2, 0xE]
- ldr r1, =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x8]
- subs r1, 0x1
- strh r1, [r0, 0x8]
- lsls r1, 16
- cmp r1, 0
- bne _08107722
- adds r0, r3, 0
- bl DestroyAnimVisualTask
-_08107722:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81076F4
-
- thumb_func_start sub_8107730
-sub_8107730: @ 8107730
- push {r4-r7,lr}
- adds r4, r0, 0
- ldr r7, =gBattleAnimAttacker
- ldrb r0, [r7]
- movs r1, 0
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x20]
- ldrb r0, [r7]
- movs r1, 0x1
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x22]
- ldr r6, =0x0000fff6
- strh r6, [r4, 0x26]
- ldrb r0, [r7]
- bl GetBattlerSpriteSubpriority
- lsls r0, 24
- lsrs r5, r0, 24
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _0810778A
- ldrb r0, [r7]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _08107784
- movs r0, 0xA
- strh r0, [r4, 0x24]
- b _0810778C
- .pool
-_08107784:
- strh r6, [r4, 0x24]
- subs r0, r5, 0x2
- b _0810778E
-_0810778A:
- strh r6, [r4, 0x24]
-_0810778C:
- adds r0, r5, 0x2
-_0810778E:
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- ldr r0, =sub_81077A4
- str r0, [r4, 0x1C]
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8107730
-
- thumb_func_start sub_81077A4
-sub_81077A4: @ 81077A4
- push {lr}
- adds r2, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _081077BA
- adds r0, r2, 0
- bl DestroyAnimSprite
-_081077BA:
- pop {r0}
- bx r0
- thumb_func_end sub_81077A4
-
- thumb_func_start sub_81077C0
-sub_81077C0: @ 81077C0
- push {r4-r7,lr}
- adds r6, r0, 0
- ldr r5, =gBattleAnimAttacker
- ldrb r0, [r5]
- bl GetBattlerSide
- adds r4, r0, 0
- ldr r0, =gBattleAnimTarget
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- bne _0810780A
- ldr r4, =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r4, r1]
- negs r0, r0
- strh r0, [r4]
- ldrb r0, [r5]
- bl GetBattlerPosition
- lsls r0, 24
- cmp r0, 0
- beq _08107802
- ldrb r0, [r5]
- bl GetBattlerPosition
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0810780A
-_08107802:
- movs r1, 0
- ldrsh r0, [r4, r1]
- negs r0, r0
- strh r0, [r4]
-_0810780A:
- ldr r5, =gBattleAnimArgs
- movs r1, 0xA
- ldrsh r0, [r5, r1]
- movs r1, 0xFF
- lsls r1, 8
- ands r0, r1
- movs r1, 0
- cmp r0, 0
- bne _0810781E
- movs r1, 0x1
-_0810781E:
- ldrb r0, [r5, 0xA]
- movs r7, 0x1
- cmp r0, 0
- bne _08107828
- movs r7, 0x3
-_08107828:
- adds r0, r6, 0
- bl InitAnimSpritePos
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _08107842
- ldrh r0, [r5, 0x4]
- negs r0, r0
- strh r0, [r5, 0x4]
-_08107842:
- ldrh r0, [r5, 0x8]
- strh r0, [r6, 0x2E]
- ldr r4, =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r5, 0x4]
- adds r0, r1
- strh r0, [r6, 0x32]
- ldrb r0, [r4]
- adds r1, r7, 0
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r5, [r5, 0x6]
- adds r0, r5
- strh r0, [r6, 0x36]
- ldr r0, =StartAnimLinearTranslation
- str r0, [r6, 0x1C]
- ldr r1, =DestroyAnimSprite
- adds r0, r6, 0
- bl StoreSpriteCallbackInData6
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81077C0
-
- thumb_func_start sub_8107894
-sub_8107894: @ 8107894
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_80A6980
- ldr r0, =gBattleAnimArgs
- ldrh r1, [r0, 0x8]
- strh r1, [r4, 0x2E]
- ldrh r0, [r0, 0x4]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x22]
- adds r1, r0
- strh r1, [r4, 0x36]
- ldr r0, =StartAnimLinearTranslation
- str r0, [r4, 0x1C]
- ldr r1, =DestroyAnimSprite
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8107894
-
- thumb_func_start sub_81078D0
-sub_81078D0: @ 81078D0
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, =gBattleAnimArgs
- movs r1, 0x6
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _081078EC
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_80A6980
- b _081078F4
- .pool
-_081078EC:
- adds r0, r4, 0
- movs r1, 0x1
- bl InitAnimSpritePos
-_081078F4:
- ldr r0, =gBattleAnimArgs
- ldrh r0, [r0, 0x4]
- strh r0, [r4, 0x3C]
- ldr r0, =sub_810790C
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81078D0
-
- thumb_func_start sub_810790C
-sub_810790C: @ 810790C
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0xB
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x2E]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r1, 0x4
- bl Sin
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x30]
- adds r0, 0x30
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 24
- negs r0, r0
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x3C]
- subs r0, 0x1
- strh r0, [r4, 0x3C]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _0810794C
- adds r0, r4, 0
- bl DestroyAnimSprite
-_0810794C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_810790C
-
- thumb_func_start AnimTask_CreateSurfWave
-AnimTask_CreateSurfWave: @ 8107954
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- ldr r1, =0x00003f42
- movs r0, 0x50
- bl SetGpuReg
- movs r1, 0x80
- lsls r1, 5
- movs r0, 0x52
- bl SetGpuReg
- movs r0, 0x1
- movs r1, 0x4
- movs r2, 0x1
- bl SetAnimBgAttribute
- movs r0, 0x1
- movs r1, 0
- movs r2, 0x1
- bl SetAnimBgAttribute
- mov r0, sp
- bl sub_80A6B30
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _081079E0
- movs r0, 0x1
- movs r1, 0x3
- movs r2, 0x1
- bl SetAnimBgAttribute
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081079D0
- mov r0, sp
- ldrb r0, [r0, 0x9]
- ldr r1, =gUnknown_08D95E00
- bl sub_80A6D48
- b _081079EA
- .pool
-_081079D0:
- mov r0, sp
- ldrb r0, [r0, 0x9]
- ldr r1, =gUnknown_08D960D0
- bl sub_80A6D48
- b _081079EA
- .pool
-_081079E0:
- ldr r1, =gUnknown_08D963A4
- mov r0, sp
- movs r2, 0x1
- bl sub_80A6D60
-_081079EA:
- mov r0, sp
- ldrb r0, [r0, 0x9]
- ldr r1, =gBattleAnimBackgroundImage_Surf
- mov r2, sp
- ldrh r2, [r2, 0xA]
- bl sub_80A6CC0
- ldr r0, =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _08107A24
- ldr r0, =gBattleAnimBackgroundPalette_Surf
- mov r1, sp
- ldrb r1, [r1, 0x8]
- lsls r1, 4
- movs r2, 0x20
- bl LoadCompressedPalette
- b _08107A32
- .pool
-_08107A24:
- ldr r0, =gBattleAnimBackgroundImageMuddyWater_Pal
- mov r1, sp
- ldrb r1, [r1, 0x8]
- lsls r1, 4
- movs r2, 0x20
- bl LoadCompressedPalette
-_08107A32:
- ldr r0, =sub_8107D58
- ldr r4, =gTasks
- mov r2, r10
- lsls r5, r2, 2
- adds r1, r5, r2
- lsls r1, 3
- adds r6, r1, r4
- ldrb r1, [r6, 0x7]
- adds r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r0, 0
- mov r9, r0
- mov r1, r8
- strh r1, [r6, 0x26]
- mov r2, r8
- lsls r0, r2, 2
- add r0, r8
- lsls r0, 3
- adds r7, r0, r4
- mov r0, r9
- strh r0, [r7, 0x8]
- movs r0, 0x80
- lsls r0, 5
- strh r0, [r7, 0xA]
- strh r0, [r7, 0xC]
- bl IsContest
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _08107AB4
- ldr r1, =0x0000ffb0
- adds r0, r1, 0
- ldr r2, =gBattle_BG1_X
- strh r0, [r2]
- adds r1, 0x20
- adds r0, r1, 0
- ldr r2, =gBattle_BG1_Y
- strh r0, [r2]
- movs r0, 0x2
- strh r0, [r6, 0x8]
- movs r0, 0x1
- strh r0, [r6, 0xA]
- mov r0, r9
- strh r0, [r7, 0xE]
- b _08107B0E
- .pool
-_08107AB4:
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x1
- bne _08107AF8
- ldr r2, =0x0000ff20
- adds r0, r2, 0
- ldr r2, =gBattle_BG1_X
- strh r0, [r2]
- movs r2, 0x80
- lsls r2, 1
- adds r0, r2, 0
- ldr r2, =gBattle_BG1_Y
- strh r0, [r2]
- movs r0, 0x2
- strh r0, [r6, 0x8]
- ldr r0, =0x0000ffff
- strh r0, [r6, 0xA]
- strh r1, [r7, 0xE]
- b _08107B0E
- .pool
-_08107AF8:
- ldr r0, =gBattle_BG1_X
- strh r4, [r0]
- ldr r1, =0x0000ffd0
- adds r0, r1, 0
- ldr r2, =gBattle_BG1_Y
- strh r0, [r2]
- ldr r0, =0x0000fffe
- strh r0, [r6, 0x8]
- movs r0, 0x1
- strh r0, [r6, 0xA]
- strh r4, [r7, 0xE]
-_08107B0E:
- ldr r0, =gBattle_BG1_X
- ldrh r1, [r0]
- movs r0, 0x14
- bl SetGpuReg
- ldr r2, =gBattle_BG1_Y
- ldrh r1, [r2]
- movs r0, 0x16
- bl SetGpuReg
- ldr r1, =gTasks
- mov r2, r8
- lsls r0, r2, 2
- add r0, r8
- lsls r0, 3
- adds r1, r0, r1
- movs r2, 0xE
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _08107B54
- movs r0, 0x30
- strh r0, [r1, 0x10]
- movs r0, 0x70
- b _08107B58
- .pool
-_08107B54:
- movs r0, 0
- strh r0, [r1, 0x10]
-_08107B58:
- strh r0, [r1, 0x12]
- ldr r1, =gTasks
- mov r2, r10
- adds r0, r5, r2
- lsls r0, 3
- adds r0, r1
- movs r1, 0x1
- strh r1, [r0, 0x14]
- ldr r1, =sub_8107B84
- str r1, [r0]
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end AnimTask_CreateSurfWave
-
- thumb_func_start sub_8107B84
-sub_8107B84: @ 8107B84
- push {r4-r7,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, =gBattle_BG1_X
- ldr r2, =gBattle_BG1_Y
- ldr r0, =gTasks
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r0
- ldrh r0, [r4, 0x8]
- ldrh r3, [r1]
- adds r0, r3
- strh r0, [r1]
- ldrh r0, [r4, 0xA]
- ldrh r1, [r2]
- adds r0, r1
- strh r0, [r2]
- mov r0, sp
- bl sub_80A6B30
- ldrh r0, [r4, 0xA]
- ldrh r3, [r4, 0xC]
- adds r0, r3
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x12]
- adds r0, 0x1
- strh r0, [r4, 0x12]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bne _08107C18
- ldr r1, =gPlttBufferFaded
- mov r0, sp
- ldrb r0, [r0, 0x8]
- lsls r0, 4
- adds r0, 0x7
- lsls r0, 1
- adds r0, r1
- ldrh r6, [r0]
- movs r2, 0x6
- adds r7, r1, 0
- adds r3, r7, 0
- mov r4, sp
-_08107BDE:
- ldrb r0, [r4, 0x8]
- lsls r0, 4
- adds r1, r2, 0x1
- adds r0, r1
- lsls r1, r0, 1
- adds r1, r3
- subs r0, 0x1
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- strh r0, [r1]
- subs r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- bne _08107BDE
- mov r0, sp
- ldrb r0, [r0, 0x8]
- lsls r0, 4
- adds r0, 0x1
- lsls r0, 1
- adds r0, r7
- strh r6, [r0]
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- strh r2, [r0, 0x12]
-_08107C18:
- ldr r1, =gTasks
- lsls r2, r5, 2
- adds r0, r2, r5
- lsls r0, 3
- adds r3, r0, r1
- ldrh r0, [r3, 0x14]
- adds r0, 0x1
- strh r0, [r3, 0x14]
- lsls r0, 16
- asrs r0, 16
- adds r4, r1, 0
- adds r6, r2, 0
- cmp r0, 0x1
- ble _08107C86
- movs r0, 0
- strh r0, [r3, 0x14]
- ldrh r0, [r3, 0xE]
- adds r2, r0, 0x1
- strh r2, [r3, 0xE]
- lsls r0, r2, 16
- asrs r0, 16
- cmp r0, 0xD
- bgt _08107C62
- movs r1, 0x26
- ldrsh r0, [r3, r1]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r4
- movs r0, 0x10
- subs r0, r2
- lsls r0, 8
- orrs r2, r0
- strh r2, [r1, 0xA]
- ldrh r0, [r3, 0x10]
- adds r0, 0x1
- strh r0, [r3, 0x10]
-_08107C62:
- movs r1, 0xE
- ldrsh r0, [r3, r1]
- cmp r0, 0x36
- ble _08107C86
- ldrh r2, [r3, 0x10]
- subs r2, 0x1
- strh r2, [r3, 0x10]
- movs r1, 0x26
- ldrsh r0, [r3, r1]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r4
- movs r0, 0x10
- subs r0, r2
- lsls r0, 8
- orrs r2, r0
- strh r2, [r1, 0xA]
-_08107C86:
- adds r0, r6, r5
- lsls r0, 3
- adds r2, r0, r4
- movs r3, 0x26
- ldrsh r1, [r2, r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r4
- ldrh r0, [r0, 0xA]
- movs r3, 0x1F
- ands r3, r0
- cmp r3, 0
- bne _08107CA8
- strh r3, [r2, 0x8]
- ldr r0, =sub_8107CC4
- str r0, [r2]
-_08107CA8:
- add sp, 0x10
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8107B84
-
- thumb_func_start sub_8107CC4
-sub_8107CC4: @ 8107CC4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- ldr r7, =gBattle_BG1_X
- ldr r0, =gBattle_BG1_Y
- mov r8, r0
- ldr r6, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r6
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _08107D08
- movs r0, 0x1
- bl sub_80A6C68
- movs r0, 0x2
- bl sub_80A6C68
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _08107D4A
- .pool
-_08107D08:
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _08107D1C
- movs r0, 0x1
- movs r1, 0x3
- movs r2, 0
- bl SetAnimBgAttribute
-_08107D1C:
- movs r0, 0
- strh r0, [r7]
- mov r1, r8
- strh r0, [r1]
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r6
- ldr r1, =0x0000ffff
- strh r1, [r0, 0x26]
- adds r0, r5, 0
- bl DestroyAnimVisualTask
-_08107D4A:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8107CC4
-
- thumb_func_start sub_8107D58
-sub_8107D58: @ 8107D58
- push {r4-r7,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- ldr r1, =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- bne _08107D74
- b _08107EAC
-_08107D74:
- cmp r0, 0x1
- bgt _08107D84
- cmp r0, 0
- beq _08107D8C
- b _08108022
- .pool
-_08107D84:
- cmp r0, 0x2
- bne _08107D8A
- b _08107F78
-_08107D8A:
- b _08108022
-_08107D8C:
- movs r3, 0
- movs r2, 0x10
- ldrsh r0, [r4, r2]
- ldr r1, =gScanlineEffectRegBuffers
- mov r12, r1
- cmp r3, r0
- bge _08107DCA
- mov r7, r12
- movs r5, 0xF0
- lsls r5, 3
- add r5, r12
- ldr r6, =0x0000ffff
-_08107DA4:
- lsls r2, r3, 16
- asrs r2, 16
- lsls r1, r2, 1
- adds r3, r1, r7
- adds r1, r5
- ldrh r0, [r4, 0xC]
- strh r0, [r1]
- ldrh r1, [r4, 0xC]
- adds r0, r6, 0
- ands r0, r1
- strh r0, [r3]
- adds r2, 0x1
- lsls r2, 16
- lsrs r3, r2, 16
- asrs r2, 16
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- cmp r2, r0
- blt _08107DA4
-_08107DCA:
- ldrh r3, [r4, 0x10]
- lsls r2, r3, 16
- asrs r1, r2, 16
- movs r3, 0x12
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bge _08107E04
- ldr r5, =gScanlineEffectRegBuffers
- movs r0, 0xF0
- lsls r0, 3
- adds r6, r5, r0
- ldr r7, =0x0000ffff
-_08107DE2:
- asrs r2, 16
- lsls r1, r2, 1
- adds r3, r1, r5
- adds r1, r6
- ldrh r0, [r4, 0xA]
- strh r0, [r1]
- ldrh r1, [r4, 0xA]
- adds r0, r7, 0
- ands r0, r1
- strh r0, [r3]
- adds r2, 0x1
- lsls r2, 16
- asrs r1, r2, 16
- movs r3, 0x12
- ldrsh r0, [r4, r3]
- cmp r1, r0
- blt _08107DE2
-_08107E04:
- ldrh r3, [r4, 0x12]
- lsls r2, r3, 16
- asrs r0, r2, 16
- cmp r0, 0x9F
- bgt _08107E3A
- ldr r5, =gScanlineEffectRegBuffers
- movs r0, 0xF0
- lsls r0, 3
- adds r6, r5, r0
- ldr r7, =0x0000ffff
-_08107E18:
- asrs r2, 16
- lsls r1, r2, 1
- adds r3, r1, r5
- adds r1, r6
- ldrh r0, [r4, 0xC]
- strh r0, [r1]
- ldrh r1, [r4, 0xC]
- adds r0, r7, 0
- ands r0, r1
- strh r0, [r3]
- adds r2, 0x1
- lsls r2, 16
- lsrs r3, r2, 16
- lsls r2, r3, 16
- asrs r0, r2, 16
- cmp r0, 0x9F
- ble _08107E18
-_08107E3A:
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _08107E64
- lsls r0, r3, 16
- asrs r0, 15
- mov r3, r12
- adds r2, r0, r3
- movs r1, 0xF0
- lsls r1, 3
- add r1, r12
- adds r0, r1
- ldrh r1, [r4, 0xA]
- strh r1, [r0]
- ldrh r0, [r4, 0xA]
- b _08107E7A
- .pool
-_08107E64:
- lsls r0, r3, 16
- asrs r0, 15
- mov r1, r12
- adds r2, r0, r1
- movs r1, 0xF0
- lsls r1, 3
- add r1, r12
- adds r0, r1
- ldrh r1, [r4, 0xC]
- strh r1, [r0]
- ldrh r0, [r4, 0xC]
-_08107E7A:
- strh r0, [r2]
- ldr r0, =0x04000052
- str r0, [sp]
- ldr r0, =0xa2600001
- str r0, [sp, 0x4]
- mov r1, sp
- movs r2, 0
- movs r0, 0x1
- strb r0, [r1, 0x8]
- mov r0, sp
- strb r2, [r0, 0x9]
- ldr r0, [sp]
- ldr r1, [sp, 0x4]
- ldr r2, [sp, 0x8]
- bl ScanlineEffect_SetParams
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _08108022
- .pool
-_08107EAC:
- movs r2, 0xE
- ldrsh r1, [r4, r2]
- cmp r1, 0
- bne _08107EC4
- ldrh r0, [r4, 0x10]
- subs r0, 0x1
- strh r0, [r4, 0x10]
- lsls r0, 16
- cmp r0, 0
- bgt _08107ED8
- strh r1, [r4, 0x10]
- b _08107ED2
-_08107EC4:
- ldrh r0, [r4, 0x12]
- adds r0, 0x1
- strh r0, [r4, 0x12]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x6F
- ble _08107ED8
-_08107ED2:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_08107ED8:
- movs r3, 0
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- cmp r3, r0
- bge _08107F0C
- ldr r6, =gScanlineEffectRegBuffers
- ldr r5, =gScanlineEffect
-_08107EE6:
- lsls r1, r3, 16
- asrs r1, 16
- lsls r3, r1, 1
- ldrb r2, [r5, 0x14]
- lsls r0, r2, 4
- subs r0, r2
- lsls r0, 7
- adds r3, r0
- adds r3, r6
- ldrh r0, [r4, 0xC]
- strh r0, [r3]
- adds r1, 0x1
- lsls r1, 16
- lsrs r3, r1, 16
- asrs r1, 16
- movs r2, 0x10
- ldrsh r0, [r4, r2]
- cmp r1, r0
- blt _08107EE6
-_08107F0C:
- ldrh r3, [r4, 0x10]
- lsls r2, r3, 16
- asrs r1, r2, 16
- movs r3, 0x12
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bge _08107F40
- ldr r6, =gScanlineEffectRegBuffers
- ldr r5, =gScanlineEffect
-_08107F1E:
- asrs r3, r2, 16
- lsls r2, r3, 1
- ldrb r1, [r5, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- adds r2, r6
- ldrh r0, [r4, 0xA]
- strh r0, [r2]
- adds r3, 0x1
- lsls r2, r3, 16
- asrs r1, r2, 16
- movs r3, 0x12
- ldrsh r0, [r4, r3]
- cmp r1, r0
- blt _08107F1E
-_08107F40:
- ldrh r3, [r4, 0x12]
- lsls r1, r3, 16
- asrs r0, r1, 16
- cmp r0, 0x9F
- bgt _08108022
- ldr r6, =gScanlineEffectRegBuffers
- ldr r5, =gScanlineEffect
-_08107F4E:
- asrs r3, r1, 16
- lsls r2, r3, 1
- ldrb r1, [r5, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- adds r2, r6
- ldrh r0, [r4, 0xC]
- strh r0, [r2]
- adds r3, 0x1
- lsls r1, r3, 16
- asrs r0, r1, 16
- cmp r0, 0x9F
- ble _08107F4E
- b _08108022
- .pool
-_08107F78:
- movs r3, 0
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- cmp r3, r0
- bge _08107FAC
- ldr r6, =gScanlineEffectRegBuffers
- ldr r5, =gScanlineEffect
-_08107F86:
- lsls r1, r3, 16
- asrs r1, 16
- lsls r3, r1, 1
- ldrb r2, [r5, 0x14]
- lsls r0, r2, 4
- subs r0, r2
- lsls r0, 7
- adds r3, r0
- adds r3, r6
- ldrh r0, [r4, 0xC]
- strh r0, [r3]
- adds r1, 0x1
- lsls r1, 16
- lsrs r3, r1, 16
- asrs r1, 16
- movs r2, 0x10
- ldrsh r0, [r4, r2]
- cmp r1, r0
- blt _08107F86
-_08107FAC:
- ldrh r3, [r4, 0x10]
- lsls r2, r3, 16
- asrs r1, r2, 16
- movs r3, 0x12
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bge _08107FE0
- ldr r6, =gScanlineEffectRegBuffers
- ldr r5, =gScanlineEffect
-_08107FBE:
- asrs r3, r2, 16
- lsls r2, r3, 1
- ldrb r1, [r5, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- adds r2, r6
- ldrh r0, [r4, 0xA]
- strh r0, [r2]
- adds r3, 0x1
- lsls r2, r3, 16
- asrs r1, r2, 16
- movs r3, 0x12
- ldrsh r0, [r4, r3]
- cmp r1, r0
- blt _08107FBE
-_08107FE0:
- ldrh r3, [r4, 0x12]
- lsls r1, r3, 16
- asrs r0, r1, 16
- cmp r0, 0x9F
- bgt _0810800C
- ldr r6, =gScanlineEffectRegBuffers
- ldr r5, =gScanlineEffect
-_08107FEE:
- asrs r3, r1, 16
- lsls r2, r3, 1
- ldrb r1, [r5, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- adds r2, r6
- ldrh r0, [r4, 0xC]
- strh r0, [r2]
- adds r3, 0x1
- lsls r1, r3, 16
- asrs r0, r1, 16
- cmp r0, 0x9F
- ble _08107FEE
-_0810800C:
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _08108022
- bl ScanlineEffect_Stop
- adds r0, r7, 0
- bl DestroyTask
-_08108022:
- add sp, 0xC
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8107D58
-
- thumb_func_start sub_8108034
-sub_8108034: @ 8108034
- push {r4-r6,lr}
- adds r4, r0, 0
- ldrh r2, [r4, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- adds r1, 0x8
- ldr r3, =0x000003ff
- adds r0, r3, 0
- ands r1, r0
- ldr r0, =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r4, 0x4]
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_80A6980
- bl Random2
- movs r5, 0xFF
- ands r5, r0
- movs r0, 0x80
- lsls r0, 1
- adds r6, r0, 0
- orrs r5, r6
- bl Random2
- ldr r1, =0x000001ff
- ands r1, r0
- adds r0, r1, 0
- cmp r0, 0xFF
- ble _0810807A
- subs r0, r6, r0
- lsls r0, 16
- lsrs r1, r0, 16
-_0810807A:
- strh r5, [r4, 0x30]
- strh r1, [r4, 0x32]
- ldr r0, =sub_8108098
- str r0, [r4, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8108034
-
- thumb_func_start sub_8108098
-sub_8108098: @ 8108098
- push {r4,lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x30]
- ldrh r1, [r2, 0x34]
- adds r3, r0, r1
- strh r3, [r2, 0x34]
- ldrh r1, [r2, 0x32]
- ldrh r4, [r2, 0x36]
- adds r1, r4
- strh r1, [r2, 0x36]
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- beq _081080BC
- lsls r0, r3, 16
- asrs r0, 24
- negs r0, r0
- b _081080C0
-_081080BC:
- lsls r0, r3, 16
- asrs r0, 24
-_081080C0:
- strh r0, [r2, 0x24]
- ldrh r0, [r2, 0x36]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r2, 0x26]
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x15
- bne _081080DE
- adds r0, r2, 0
- bl DestroyAnimSprite
-_081080DE:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8108098
-
- thumb_func_start sub_81080E4
-sub_81080E4: @ 81080E4
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, =gTasks
- adds r4, r0
- movs r0, 0
- bl GetAnimBattlerSpriteId
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x26]
- ldr r2, =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x22]
- strh r0, [r4, 0x12]
- bl sub_8108384
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl PrepareBattlerSpriteForRotScale
- ldr r0, =sub_8108140
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81080E4
-
- thumb_func_start sub_8108140
-sub_8108140: @ 8108140
- push {r4-r6,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x7
- bls _0810815C
- b _0810837A
-_0810815C:
- lsls r0, 2
- ldr r1, =_08108170
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_08108170:
- .4byte _08108190
- .4byte _081081B6
- .4byte _08108248
- .4byte _0810827E
- .4byte _08108292
- .4byte _081082A0
- .4byte _08108320
- .4byte _0810836C
-_08108190:
- ldrh r1, [r4, 0x26]
- lsls r1, 24
- lsrs r1, 24
- movs r3, 0x80
- lsls r3, 1
- movs r0, 0xE0
- str r0, [sp]
- movs r0, 0x80
- lsls r0, 2
- str r0, [sp, 0x4]
- movs r0, 0x20
- str r0, [sp, 0x8]
- adds r0, r4, 0
- adds r2, r3, 0
- bl sub_80A805C
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_081081B6:
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _08108212
- movs r0, 0
- strh r0, [r4, 0xE]
- ldrh r0, [r4, 0x10]
- adds r0, 0x1
- strh r0, [r4, 0x10]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08108200
- ldr r2, =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x3
- strh r1, [r0, 0x24]
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x22]
- adds r1, 0x1
- strh r1, [r0, 0x22]
- b _08108212
- .pool
-_08108200:
- ldr r2, =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, =0x0000fffd
- strh r1, [r0, 0x24]
-_08108212:
- adds r0, r4, 0
- bl sub_80A80C8
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- beq _08108222
- b _0810837A
-_08108222:
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- bl SetBattlerSpriteYOffsetFromYScale
- ldr r2, =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r5, [r0, 0x24]
- strh r5, [r4, 0xE]
- b _0810835C
- .pool
-_08108248:
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bgt _08108258
- b _0810837A
-_08108258:
- ldrh r1, [r4, 0x26]
- lsls r1, 24
- lsrs r1, 24
- movs r3, 0x80
- lsls r3, 2
- movs r0, 0xC0
- lsls r0, 1
- str r0, [sp]
- movs r0, 0xE0
- str r0, [sp, 0x4]
- movs r0, 0x8
- str r0, [sp, 0x8]
- adds r0, r4, 0
- movs r2, 0xE0
- bl sub_80A805C
- movs r0, 0
- strh r0, [r4, 0xE]
- b _0810835E
-_0810827E:
- adds r0, r4, 0
- bl sub_80A80C8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _0810837A
- strh r0, [r4, 0xE]
- strh r0, [r4, 0x10]
- b _0810835E
-_08108292:
- adds r0, r4, 0
- adds r1, r2, 0
- bl sub_8108408
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_081082A0:
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _0810837A
- movs r0, 0
- strh r0, [r4, 0xE]
- ldrh r0, [r4, 0x10]
- adds r0, 0x1
- strh r0, [r4, 0x10]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _081082D8
- ldr r2, =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x26]
- adds r1, 0x2
- b _081082EA
- .pool
-_081082D8:
- ldr r2, =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x26]
- subs r1, 0x2
-_081082EA:
- strh r1, [r0, 0x26]
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- cmp r0, 0xA
- bne _0810837A
- ldrh r1, [r4, 0x26]
- lsls r1, 24
- lsrs r1, 24
- movs r2, 0xC0
- lsls r2, 1
- movs r0, 0x80
- lsls r0, 1
- str r0, [sp]
- str r0, [sp, 0x4]
- movs r0, 0x8
- str r0, [sp, 0x8]
- adds r0, r4, 0
- movs r3, 0xE0
- bl sub_80A805C
- movs r0, 0
- strh r0, [r4, 0xE]
- strh r0, [r4, 0x10]
- b _0810835E
- .pool
-_08108320:
- ldr r6, =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrh r1, [r0, 0x22]
- subs r1, 0x1
- strh r1, [r0, 0x22]
- adds r0, r4, 0
- bl sub_80A80C8
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _0810837A
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- bl ResetSpriteRotScale
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrh r1, [r4, 0x12]
- strh r1, [r0, 0x22]
-_0810835C:
- strh r5, [r4, 0x10]
-_0810835E:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0810837A
- .pool
-_0810836C:
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0810837A
- adds r0, r2, 0
- bl DestroyAnimVisualTask
-_0810837A:
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8108140
-
- thumb_func_start sub_8108384
-sub_8108384: @ 8108384
- push {r4,r5,lr}
- ldr r4, =gBattleAnimAttacker
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _081083B8
- ldr r1, =gBattlerPartyIndexes
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, =gPlayerParty
- b _081083C8
- .pool
-_081083B4:
- adds r0, r2, 0
- b _081083FA
-_081083B8:
- ldr r1, =gBattlerPartyIndexes
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, =gEnemyParty
-_081083C8:
- adds r5, r1, r0
- adds r0, r5, 0
- movs r1, 0x3A
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- adds r0, r5, 0
- movs r1, 0x39
- bl GetMonData
- lsls r0, 16
- lsrs r3, r0, 16
- lsrs r4, 18
- movs r2, 0
-_081083E6:
- adds r1, r2, 0x1
- adds r0, r4, 0
- muls r0, r1
- cmp r3, r0
- blt _081083B4
- lsls r0, r1, 24
- lsrs r2, r0, 24
- cmp r2, 0x2
- bls _081083E6
- movs r0, 0x3
-_081083FA:
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8108384
-
- thumb_func_start sub_8108408
-sub_8108408: @ 8108408
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- adds r7, r0, 0
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp]
- ldr r4, =gBattleAnimAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r6, r0, 24
- movs r5, 0xAC
- ldrb r0, [r4]
- bl GetBattlerSpriteSubpriority
- subs r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x8]
- ldrh r1, [r7, 0xA]
- movs r0, 0x4
- subs r0, r1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r0, 0
- bgt _08108458
- movs r1, 0x1
-_08108458:
- movs r0, 0
- str r0, [sp, 0x4]
- lsls r0, r1, 16
- mov r10, r8
- mov r9, r6
- mov r1, r10
- lsls r1, 4
- str r1, [sp, 0xC]
- mov r1, r9
- lsls r1, 4
- str r1, [sp, 0x10]
- asrs r0, 16
- mov r8, r0
-_08108472:
- ldr r0, =gUnknown_08595268
- mov r1, r10
- mov r2, r9
- ldr r3, [sp, 0x8]
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r6, r5, 16
- cmp r2, 0x40
- beq _081084DA
- ldr r1, =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r5, r0, r1
- mov r0, sp
- ldrh r0, [r0, 0x4]
- strh r0, [r5, 0x30]
- mov r1, sp
- ldrh r1, [r1, 0xC]
- strh r1, [r5, 0x32]
- mov r0, sp
- ldrh r0, [r0, 0x10]
- strh r0, [r5, 0x34]
- asrs r4, r6, 16
- adds r0, r4, 0
- movs r1, 0x40
- bl Cos
- strh r0, [r5, 0x36]
- adds r0, r4, 0
- movs r1, 0x40
- bl Sin
- strh r0, [r5, 0x38]
- mov r1, sp
- ldrh r1, [r1]
- strh r1, [r5, 0x3A]
- movs r0, 0x2
- strh r0, [r5, 0x3C]
- ldrh r1, [r7, 0xC]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _081084D4
- adds r0, r5, 0
- bl sub_810851C
-_081084D4:
- ldrh r0, [r7, 0xC]
- adds r0, 0x1
- strh r0, [r7, 0xC]
-_081084DA:
- mov r1, r8
- lsls r0, r1, 1
- asrs r1, r6, 16
- adds r1, r0
- lsls r1, 16
- movs r0, 0xFF
- lsls r0, 16
- ands r0, r1
- lsrs r5, r0, 16
- ldr r1, [sp, 0x4]
- lsls r0, r1, 16
- asrs r0, 16
- add r0, r8
- lsls r0, 16
- lsrs r1, r0, 16
- str r1, [sp, 0x4]
- asrs r0, 16
- cmp r0, 0x13
- ble _08108472
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8108408
-
- thumb_func_start sub_810851C
-sub_810851C: @ 810851C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0810852E
- cmp r0, 0x1
- beq _08108564
- b _081085BE
-_0810852E:
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- movs r1, 0x6
- bl __modsi3
- lsls r0, 16
- asrs r0, 16
- lsls r1, r0, 1
- adds r1, r0
- ldrh r0, [r4, 0x36]
- adds r1, r0
- strh r1, [r4, 0x36]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x3
- bl __modsi3
- lsls r0, 16
- asrs r0, 16
- lsls r1, r0, 1
- adds r1, r0
- ldrh r2, [r4, 0x38]
- adds r1, r2
- strh r1, [r4, 0x38]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
-_08108564:
- ldrh r0, [r4, 0x36]
- ldrh r1, [r4, 0x32]
- adds r0, r1
- strh r0, [r4, 0x32]
- ldrh r1, [r4, 0x38]
- ldrh r2, [r4, 0x34]
- adds r1, r2
- strh r1, [r4, 0x34]
- lsls r0, 16
- asrs r0, 20
- strh r0, [r4, 0x20]
- lsls r1, 16
- asrs r2, r1, 20
- strh r2, [r4, 0x22]
- adds r0, 0x8
- lsls r0, 16
- movs r1, 0x80
- lsls r1, 17
- cmp r0, r1
- bhi _0810859A
- adds r1, r2, 0
- movs r0, 0x8
- negs r0, r0
- cmp r1, r0
- blt _0810859A
- cmp r1, 0x78
- ble _081085BE
-_0810859A:
- ldr r3, =gTasks
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- lsls r1, 1
- movs r0, 0x3A
- ldrsh r2, [r4, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r3, 0x8
- adds r1, r3
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- adds r0, r4, 0
- bl DestroySprite
-_081085BE:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810851C
-
- thumb_func_start sub_81085C8
-sub_81085C8: @ 81085C8
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks
- adds r4, r1, r0
- bl sub_8108384
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0xA]
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _08108600
- movs r0, 0x88
- strh r0, [r4, 0x10]
- movs r0, 0x28
- b _08108606
- .pool
-_08108600:
- movs r0, 0x10
- strh r0, [r4, 0x10]
- movs r0, 0x50
-_08108606:
- strh r0, [r4, 0x14]
- movs r0, 0x62
- strh r0, [r4, 0x12]
- ldrh r0, [r4, 0x10]
- adds r0, 0x31
- strh r0, [r4, 0x16]
- movs r0, 0xA
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- adds r0, 0x5
- strh r0, [r4, 0x20]
- ldr r0, =sub_810862C
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81085C8
-
- thumb_func_start sub_810862C
-sub_810862C: @ 810862C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r1, r0, 24
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- ldr r7, =gTasks
- adds r4, r0, r7
- movs r0, 0x8
- ldrsh r2, [r4, r0]
- cmp r2, 0
- beq _08108654
- cmp r2, 0x1
- beq _08108704
- b _08108712
- .pool
-_08108654:
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _0810866A
- strh r2, [r4, 0xC]
- adds r0, r4, 0
- bl sub_810871C
-_0810866A:
- movs r1, 0x1C
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _081086E4
- movs r2, 0x22
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _081086E4
- ldr r5, =gBattleAnimArgs
- movs r1, 0x1
- mov r8, r1
- mov r2, r8
- strh r2, [r5]
- strh r0, [r5, 0x2]
- movs r0, 0xC
- strh r0, [r5, 0x4]
- ldr r6, =sub_81152DC
- adds r0, r6, 0
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xFF
- beq _081086B4
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r7
- ldr r1, [r0]
- adds r0, r2, 0
- bl _call_via_r1
- ldr r1, =gAnimVisualTaskCount
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_081086B4:
- movs r0, 0x3
- strh r0, [r5]
- adds r0, r6, 0
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xFF
- beq _081086E0
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r7
- ldr r1, [r0]
- adds r0, r2, 0
- bl _call_via_r1
- ldr r1, =gAnimVisualTaskCount
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_081086E0:
- mov r0, r8
- strh r0, [r4, 0x22]
-_081086E4:
- movs r2, 0x1E
- ldrsh r1, [r4, r2]
- movs r2, 0x20
- ldrsh r0, [r4, r2]
- cmp r1, r0
- blt _08108712
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _08108712
- .pool
-_08108704:
- movs r2, 0x1A
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _08108712
- adds r0, r1, 0
- bl DestroyAnimVisualTask
-_08108712:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_810862C
-
- thumb_func_start sub_810871C
-sub_810871C: @ 810871C
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r1, 24
- lsrs r6, r1, 24
- ldr r1, =gSineTable
- movs r2, 0x18
- ldrsh r0, [r4, r2]
- lsls r0, 1
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- adds r0, 0x3
- asrs r0, 4
- ldrh r2, [r4, 0x14]
- adds r0, r2
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r0, =gUnknown_08595268
- movs r2, 0x16
- ldrsh r1, [r4, r2]
- movs r2, 0
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _08108776
- ldr r3, =gSprites
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r3, 0
- adds r1, 0x1C
- adds r1, r0, r1
- ldr r2, =sub_81087C0
- str r2, [r1]
- adds r0, r3
- strh r5, [r0, 0x38]
- strh r6, [r0, 0x3A]
- movs r1, 0x9
- strh r1, [r0, 0x3C]
- ldrh r0, [r4, 0x1A]
- adds r0, 0x1
- strh r0, [r4, 0x1A]
-_08108776:
- ldrh r0, [r4, 0x1E]
- adds r0, 0x1
- strh r0, [r4, 0x1E]
- ldrh r0, [r4, 0x18]
- adds r0, 0x27
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x18]
- movs r0, 0x16
- ldrsh r1, [r4, r0]
- ldr r0, =0x41c64e6d
- muls r0, r1
- ldr r1, =0x00003039
- adds r0, r1
- movs r2, 0x12
- ldrsh r1, [r4, r2]
- bl __modsi3
- ldrh r1, [r4, 0x10]
- adds r1, r0
- strh r1, [r4, 0x16]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810871C
-
- thumb_func_start sub_81087C0
-sub_81087C0: @ 81087C0
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _08108856
- ldrh r0, [r5, 0x22]
- adds r0, 0x8
- strh r0, [r5, 0x22]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x38
- ldrsh r1, [r5, r2]
- cmp r0, r1
- blt _08108856
- ldr r2, =gTasks
- movs r3, 0x3A
- ldrsh r1, [r5, r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r1, 0x1
- strh r1, [r0, 0x1C]
- ldr r0, =gUnknown_08597388
- movs r2, 0x20
- ldrsh r1, [r5, r2]
- movs r3, 0x22
- ldrsh r2, [r5, r3]
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x30]
- cmp r0, 0x40
- beq _08108850
- movs r0, 0x30
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, =gSprites
- adds r0, r4
- movs r1, 0x3
- bl StartSpriteAffineAnim
- movs r2, 0x30
- ldrsh r1, [r5, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r5, 0x3A]
- strh r1, [r0, 0x3A]
- movs r3, 0x30
- ldrsh r1, [r5, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r5, 0x3C]
- strh r1, [r0, 0x3C]
- movs r0, 0x30
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, 0x1C
- adds r0, r4
- ldr r1, =sub_810886C
- str r1, [r0]
-_08108850:
- adds r0, r5, 0
- bl DestroySprite
-_08108856:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81087C0
-
- thumb_func_start sub_810886C
-sub_810886C: @ 810886C
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _081088D8
- movs r0, 0
- strh r0, [r4, 0x30]
- adds r3, r4, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- lsls r0, r2, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xC
- bne _081088D8
- ldr r3, =gTasks
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- lsls r1, 1
- movs r0, 0x3A
- ldrsh r2, [r4, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r3, 0x8
- adds r1, r3
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- adds r0, r4, 0
- bl DestroySprite
-_081088D8:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810886C
-
- thumb_func_start sub_81088E4
-sub_81088E4: @ 81088E4
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks
- adds r5, r1, r0
- ldr r4, =gBattleAnimAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- movs r6, 0
- strh r0, [r5, 0xE]
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x10]
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- movs r2, 0x1
- negs r2, r2
- adds r1, r2, 0
- cmp r0, 0
- bne _08108928
- movs r1, 0x1
-_08108928:
- strh r1, [r5, 0x16]
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _0810893C
- movs r1, 0x16
- ldrsh r0, [r5, r1]
- negs r0, r0
- strh r0, [r5, 0x16]
-_0810893C:
- movs r2, 0x16
- ldrsh r0, [r5, r2]
- lsls r0, 3
- ldrh r1, [r5, 0xE]
- adds r0, r1
- strh r0, [r5, 0x12]
- movs r2, 0x16
- ldrsh r1, [r5, r2]
- lsls r1, 3
- ldrh r0, [r5, 0x10]
- subs r0, r1
- strh r0, [r5, 0x14]
- ldr r0, =0x0000ffe0
- strh r0, [r5, 0x1A]
- strh r6, [r5, 0xA]
- strh r6, [r5, 0x8]
- ldr r0, =sub_8108978
- str r0, [r5]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81088E4
-
- thumb_func_start sub_8108978
-sub_8108978: @ 8108978
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x6
- bls _08108992
- b _08108AB2
-_08108992:
- lsls r0, 2
- ldr r1, =_081089A4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081089A4:
- .4byte _081089C0
- .4byte _081089D0
- .4byte _081089EA
- .4byte _08108A2C
- .4byte _08108A4E
- .4byte _08108A7C
- .4byte _08108AA2
-_081089C0:
- adds r0, r4, 0
- bl sub_8108AC0
- movs r1, 0x1C
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _08108AB8
- b _08108AAA
-_081089D0:
- adds r0, r4, 0
- bl sub_8108AC0
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- ble _08108AB8
- movs r0, 0
- strh r0, [r4, 0xA]
- b _08108AAA
-_081089EA:
- adds r0, r4, 0
- bl sub_8108AC0
- movs r1, 0x16
- ldrsh r0, [r4, r1]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 1
- ldrh r0, [r4, 0x12]
- adds r1, r0
- movs r2, 0
- strh r1, [r4, 0x12]
- adds r1, 0x10
- lsls r1, 16
- movs r0, 0x88
- lsls r0, 17
- cmp r1, r0
- bls _08108AB8
- ldrh r0, [r4, 0x20]
- adds r0, 0x1
- strh r0, [r4, 0x20]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _08108A28
- movs r0, 0x1
- strh r0, [r4, 0x22]
- movs r0, 0x6
- strh r0, [r4, 0x8]
- strh r2, [r4, 0xA]
- b _08108AB8
-_08108A28:
- strh r2, [r4, 0xA]
- b _08108AAA
-_08108A2C:
- adds r0, r4, 0
- bl sub_8108AC0
- movs r0, 0x16
- ldrsh r1, [r4, r0]
- lsls r1, 1
- ldrh r0, [r4, 0x14]
- subs r0, r1
- strh r0, [r4, 0x14]
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- ble _08108AB8
- b _08108AAA
-_08108A4E:
- adds r0, r4, 0
- bl sub_8108AC0
- movs r1, 0x16
- ldrsh r0, [r4, r1]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 1
- ldrh r0, [r4, 0x12]
- subs r0, r1
- strh r0, [r4, 0x12]
- adds r0, 0x10
- lsls r0, 16
- movs r1, 0x88
- lsls r1, 17
- cmp r0, r1
- bls _08108AB8
- ldrh r0, [r4, 0x20]
- adds r0, 0x1
- strh r0, [r4, 0x20]
- movs r0, 0
- strh r0, [r4, 0xA]
- b _08108AAA
-_08108A7C:
- adds r0, r4, 0
- bl sub_8108AC0
- movs r0, 0x16
- ldrsh r1, [r4, r0]
- lsls r1, 1
- ldrh r0, [r4, 0x14]
- subs r0, r1
- strh r0, [r4, 0x14]
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- ble _08108AB8
- movs r0, 0x2
- strh r0, [r4, 0x8]
- b _08108AB8
-_08108AA2:
- movs r1, 0x18
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _08108AB8
-_08108AAA:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _08108AB8
-_08108AB2:
- adds r0, r2, 0
- bl DestroyAnimVisualTask
-_08108AB8:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8108978
-
- thumb_func_start sub_8108AC0
-sub_8108AC0: @ 8108AC0
- push {r4-r6,lr}
- adds r6, r0, 0
- ldrh r0, [r6, 0xC]
- adds r0, 0x1
- strh r0, [r6, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _08108B1A
- movs r0, 0
- strh r0, [r6, 0xC]
- ldr r0, =gUnknown_08595268
- movs r2, 0xE
- ldrsh r1, [r6, r2]
- movs r3, 0x10
- ldrsh r2, [r6, r3]
- movs r3, 0xA
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _08108B1A
- ldr r5, =gSprites
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- adds r0, r4, r5
- movs r1, 0x10
- strh r1, [r0, 0x2E]
- ldrh r1, [r6, 0x12]
- strh r1, [r0, 0x32]
- ldrh r1, [r6, 0x14]
- strh r1, [r0, 0x36]
- ldrh r1, [r6, 0x1A]
- strh r1, [r0, 0x38]
- bl InitAnimArcTranslation
- adds r5, 0x1C
- adds r4, r5
- ldr r0, =sub_8108B2C
- str r0, [r4]
- ldrh r0, [r6, 0x18]
- adds r0, 0x1
- strh r0, [r6, 0x18]
-_08108B1A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8108AC0
-
- thumb_func_start sub_8108B2C
-sub_8108B2C: @ 8108B2C
- push {r4-r6,lr}
- adds r6, r0, 0
- bl TranslateAnimArc
- lsls r0, 24
- cmp r0, 0
- beq _08108B86
- ldrh r0, [r6, 0x24]
- ldrh r1, [r6, 0x20]
- adds r0, r1
- strh r0, [r6, 0x20]
- ldrh r0, [r6, 0x26]
- ldrh r1, [r6, 0x22]
- adds r0, r1
- strh r0, [r6, 0x22]
- movs r0, 0x6
- strh r0, [r6, 0x2E]
- bl Random2
- movs r4, 0x1F
- adds r1, r4, 0
- ands r1, r0
- ldr r5, =0x0000fff0
- adds r1, r5
- ldrh r0, [r6, 0x20]
- adds r1, r0
- strh r1, [r6, 0x32]
- bl Random2
- ands r4, r0
- adds r4, r5
- ldrh r1, [r6, 0x22]
- adds r4, r1
- strh r4, [r6, 0x36]
- bl Random2
- movs r1, 0x7
- ands r1, r0
- mvns r1, r1
- strh r1, [r6, 0x38]
- adds r0, r6, 0
- bl InitAnimArcTranslation
- ldr r0, =sub_8108B94
- str r0, [r6, 0x1C]
-_08108B86:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8108B2C
-
- thumb_func_start sub_8108B94
-sub_8108B94: @ 8108B94
- push {r4-r6,lr}
- adds r5, r0, 0
- bl TranslateAnimArc
- lsls r0, 24
- cmp r0, 0
- beq _08108BD0
- movs r4, 0
- ldr r6, =gTasks
-_08108BA6:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r2, r0, r6
- ldr r1, [r2]
- ldr r0, =sub_8108978
- cmp r1, r0
- bne _08108BC6
- movs r0, 0x1
- strh r0, [r2, 0x1C]
- ldrh r0, [r2, 0x18]
- subs r0, 0x1
- strh r0, [r2, 0x18]
- adds r0, r5, 0
- bl DestroySprite
-_08108BC6:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0xF
- bls _08108BA6
-_08108BD0:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8108B94
-
- thumb_func_start sub_8108BE0
-sub_8108BE0: @ 8108BE0
- ldr r2, =gBattleAnimArgs
- ldrh r1, [r2]
- strh r1, [r0, 0x20]
- ldrh r1, [r2, 0x2]
- strh r1, [r0, 0x22]
- ldrh r1, [r2, 0x4]
- strh r1, [r0, 0x2E]
- ldrh r1, [r2, 0x6]
- strh r1, [r0, 0x30]
- ldrh r1, [r2, 0x8]
- strh r1, [r0, 0x32]
- ldrh r1, [r2, 0xA]
- strh r1, [r0, 0x34]
- ldr r1, =sub_8108C08
- str r1, [r0, 0x1C]
- bx lr
- .pool
- thumb_func_end sub_8108BE0
-
- thumb_func_start sub_8108C08
-sub_8108C08: @ 8108C08
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x36]
- ldrh r1, [r4, 0x2E]
- subs r0, r1
- strh r0, [r4, 0x36]
- movs r1, 0x36
- ldrsh r0, [r4, r1]
- movs r1, 0xA
- bl __divsi3
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x30]
- ldrh r2, [r4, 0x38]
- adds r0, r2
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x34]
- subs r0, 0x1
- strh r0, [r4, 0x34]
- lsls r0, 16
- cmp r0, 0
- bne _08108C4C
- adds r0, r4, 0
- bl DestroyAnimSprite
-_08108C4C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8108C08
-
- thumb_func_start sub_8108C54
-sub_8108C54: @ 8108C54
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x30]
- ldrh r1, [r4, 0x34]
- adds r0, r1
- strh r0, [r4, 0x34]
- ldrh r1, [r4, 0x32]
- ldrh r2, [r4, 0x36]
- adds r1, r2
- strh r1, [r4, 0x36]
- lsls r0, 16
- asrs r0, 23
- strh r0, [r4, 0x24]
- lsls r1, 16
- asrs r1, 23
- strh r1, [r4, 0x26]
- ldrh r0, [r4, 0x2E]
- subs r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- cmp r0, 0
- bne _08108C8C
- adds r0, r4, 0
- bl FreeSpriteOamMatrix
- adds r0, r4, 0
- bl DestroySprite
-_08108C8C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8108C54
-
- thumb_func_start sub_8108C94
-sub_8108C94: @ 8108C94
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl InitAnimSpritePos
- ldr r5, =gBattleAnimTarget
- ldrb r0, [r5]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x30]
- ldrb r0, [r5]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x34]
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x36]
- ldr r0, =sub_8108CDC
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8108C94
-
- thumb_func_start sub_8108CDC
-sub_8108CDC: @ 8108CDC
- push {r4-r6,lr}
- adds r4, r0, 0
- movs r0, 0x30
- ldrsh r1, [r4, r0]
- movs r2, 0x20
- ldrsh r0, [r4, r2]
- subs r6, r1, r0
- movs r0, 0x32
- ldrsh r1, [r4, r0]
- movs r2, 0x22
- ldrsh r0, [r4, r2]
- subs r5, r1, r0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- muls r0, r6
- movs r2, 0x34
- ldrsh r1, [r4, r2]
- bl __divsi3
- strh r0, [r4, 0x24]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- muls r0, r5
- movs r2, 0x34
- ldrsh r1, [r4, r2]
- bl __divsi3
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- strh r0, [r4, 0x38]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- cmp r0, r1
- bne _08108D34
- movs r0, 0
- strh r0, [r4, 0x38]
- adds r0, r4, 0
- adds r1, r6, 0
- adds r2, r5, 0
- bl sub_8108D54
-_08108D34:
- movs r0, 0x34
- ldrsh r1, [r4, r0]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _08108D46
- adds r0, r4, 0
- bl DestroyAnimSprite
-_08108D46:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8108CDC
-
- thumb_func_start sub_8108D54
-sub_8108D54: @ 8108D54
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x18
- adds r4, r1, 0
- adds r5, r2, 0
- movs r2, 0x2E
- ldrsh r1, [r0, r2]
- lsrs r2, r1, 31
- adds r1, r2
- lsls r1, 15
- lsrs r1, 16
- str r1, [sp]
- ldrh r1, [r0, 0x24]
- ldrh r3, [r0, 0x20]
- adds r1, r3
- lsls r1, 16
- lsrs r1, 16
- mov r8, r1
- ldrh r1, [r0, 0x26]
- ldrh r0, [r0, 0x22]
- adds r1, r0
- lsls r1, 16
- lsrs r1, 16
- mov r10, r1
- bl Random2
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xA
- bl __umodsi3
- adds r0, r5, r0
- subs r0, 0x5
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- bl Random2
- negs r4, r4
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xA
- bl __umodsi3
- adds r4, r0
- subs r4, 0x5
- lsls r4, 16
- lsrs r7, r4, 16
- movs r6, 0
- mov r0, r8
- lsls r0, 16
- mov r8, r0
- mov r1, r10
- lsls r1, 16
- str r1, [sp, 0xC]
- ldr r2, [sp]
- lsls r2, 16
- str r2, [sp, 0x10]
- asrs r1, 16
- lsls r0, r7, 16
- asrs r5, r0, 16
- str r0, [sp, 0x14]
- negs r3, r5
- str r3, [sp, 0x4]
- asrs r0, r2, 16
- adds r1, r0
- lsls r1, 16
- mov r10, r1
-_08108DE2:
- ldr r0, =gUnknown_08595310
- mov r2, r8
- asrs r1, r2, 16
- mov r3, r10
- asrs r2, r3, 16
- movs r3, 0x82
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r4, r0, r1
- movs r0, 0x14
- strh r0, [r4, 0x2E]
- mov r0, r9
- strh r0, [r4, 0x30]
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSpriteSubpriority
- subs r0, 0x1
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- cmp r5, 0
- bge _08108E30
- mov r1, sp
- ldrh r1, [r1, 0x4]
- strh r1, [r4, 0x32]
- b _08108E32
- .pool
-_08108E30:
- strh r7, [r4, 0x32]
-_08108E32:
- lsls r0, r6, 16
- movs r2, 0x80
- lsls r2, 9
- adds r0, r2
- lsrs r6, r0, 16
- cmp r0, 0
- ble _08108DE2
- movs r6, 0
- ldr r3, [sp, 0xC]
- asrs r1, r3, 16
- ldr r0, [sp, 0x14]
- asrs r5, r0, 16
- negs r2, r5
- str r2, [sp, 0x8]
- ldr r3, [sp, 0x10]
- asrs r0, r3, 16
- subs r1, r0
- lsls r1, 16
- mov r10, r1
-_08108E58:
- ldr r0, =gUnknown_08595310
- mov r2, r8
- asrs r1, r2, 16
- mov r3, r10
- asrs r2, r3, 16
- movs r3, 0x82
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r4, r0, r1
- movs r0, 0x14
- strh r0, [r4, 0x2E]
- mov r0, r9
- strh r0, [r4, 0x30]
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSpriteSubpriority
- subs r0, 0x1
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- cmp r5, 0
- ble _08108EA8
- mov r1, sp
- ldrh r1, [r1, 0x8]
- strh r1, [r4, 0x32]
- b _08108EAA
- .pool
-_08108EA8:
- strh r7, [r4, 0x32]
-_08108EAA:
- lsls r0, r6, 16
- movs r2, 0x80
- lsls r2, 9
- adds r0, r2
- lsrs r6, r0, 16
- cmp r0, 0
- ble _08108E58
- add sp, 0x18
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8108D54
-
- .align 2, 0
diff --git a/data/battle_anim_815A0D4.s b/data/battle_anim_815A0D4.s
deleted file mode 100644
index 208436f4c..000000000
--- a/data/battle_anim_815A0D4.s
+++ /dev/null
@@ -1,510 +0,0 @@
-#include "constants/battle_anim.h"
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
- .align 2
-gUnknown_085CE004:: @ 85CE004
- .2byte 0x0000, 0x0004, 0x0010, 0x0004
- .2byte 0x0020, 0x0004, 0x0030, 0x0004
- .2byte 0x0040, 0x0004, 0xffff, 0x0000
-
- .align 2
-gUnknown_085CE01C:: @ 85CE01C
- .4byte gUnknown_085CE004
-
- .align 2
-gUnknown_085CE020:: @ 85CE020
- spr_template ANIM_TAG_SCRATCH, ANIM_TAG_SCRATCH, gUnknown_08524A34, gUnknown_085CE01C, NULL, gDummySpriteAffineAnimTable, sub_80A77C8
-
- .align 2
-gUnknown_085CE038:: @ 85CE038
- spr_template ANIM_TAG_BLACK_SMOKE, ANIM_TAG_BLACK_SMOKE, gUnknown_08524934, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_815A0D4
-
- .align 2
-gUnknown_085CE050:: @ 85CE050
- spr_template ANIM_TAG_BLACK_BALL, ANIM_TAG_BLACK_BALL, gUnknown_08524904, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80A78AC
-
- .align 2
-gUnknown_085CE068:: @ 85CE068
- .2byte 0x0000, 0x0028, 0x0010, 0x0008
- .2byte 0x0020, 0x0028, 0xffff, 0x0000
-
- .align 2
-gUnknown_085CE078:: @ 85CE078
- .4byte gUnknown_085CE068
-
- .align 2
-gUnknown_085CE07C:: @ 85CE07C
- spr_template ANIM_TAG_OPENING_EYE, ANIM_TAG_OPENING_EYE, gUnknown_08524914, gUnknown_085CE078, NULL, gDummySpriteAffineAnimTable, sub_80A77C8
-
- .align 2
-gUnknown_085CE094::
- spr_template ANIM_TAG_ROUND_WHITE_HALO, ANIM_TAG_ROUND_WHITE_HALO, gUnknown_08524A3C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_815A1B0
-
- .align 2
-gUnknown_085CE0AC::
- spr_template ANIM_TAG_TEAL_ALERT, ANIM_TAG_TEAL_ALERT, gUnknown_08524974, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_815A254
-
- .align 2
-gUnknown_085CE0C4:: @ 85CE0C4
- .2byte 0x0180, 0x0180, 0x0000, 0x0000
- .2byte 0xffe0, 0x0018, 0x0500, 0x0000
- .2byte 0x0018, 0xffe0, 0x0500, 0x0000
- .2byte 0x7ffe, 0x0001, 0x0000, 0x0000
-
- .align 2
-gUnknown_085CE0E4:: @ 85CE0E4
- .2byte 0x0030, 0x0030, 0x0000, 0x0000
- .2byte 0x0020, 0x0020, 0x0600, 0x0000
- .2byte 0x7fff, 0x0000, 0x0000, 0x0000
-
- .align 2
-gUnknown_085CE0FC:: @ 85CE0FC
- .4byte gUnknown_085CE0C4
- .4byte gUnknown_085CE0E4
-
- .align 2
-gUnknown_085CE104:: @ 85CE104
- spr_template ANIM_TAG_EYE, ANIM_TAG_EYE, gUnknown_08524AFC, gDummySpriteAnimTable, NULL, gUnknown_085CE0FC, sub_815A2F0
-
- .align 2
-gUnknown_085CE11C:: @ 85CE11C
- spr_template ANIM_TAG_SPIKES, ANIM_TAG_SPIKES, gUnknown_0852490C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_815A6C4
-
- .align 2
-gUnknown_085CE134:: @ 85CE134
- .2byte 0x0000, 0x0003, 0x0010, 0x0003
- .2byte 0x0020, 0x0003, 0x0030, 0x0003
- .2byte 0x0040, 0x0003, 0xffff, 0x0000
-
- .align 2
-gUnknown_085CE14C:: @ 85CE14C
- .4byte gUnknown_085CE134
-
- .align 2
-gUnknown_085CE150:: @ 85CE150
- spr_template ANIM_TAG_LEER, ANIM_TAG_LEER, gUnknown_08524914, gUnknown_085CE14C, NULL, gDummySpriteAffineAnimTable, sub_815A7B0
-
- .align 2
-gUnknown_085CE168:: @ 85CE168
- .2byte 0x0000, 0x0003, 0xffff, 0x0000
-
- .align 2
-gUnknown_085CE170:: @ 85CE170
- .4byte gUnknown_085CE168
-
- .align 2
-gUnknown_085CE174:: @ 85CE174
- .2byte 0xfff9, 0xfff9, 0x10fd, 0x0000
- .2byte 0x0007, 0x0007, 0x1003, 0x0000
- .2byte 0x7ffe, 0x0000, 0x0000, 0x0000
-
- .align 2
-gUnknown_085CE18C:: @ 85CE18C
- .4byte gUnknown_085CE174
-
- .align 2
-gUnknown_085CE190:: @ 85CE190
- spr_template ANIM_TAG_LETTER_Z, ANIM_TAG_LETTER_Z, gUnknown_08524974, gUnknown_085CE170, NULL, gUnknown_085CE18C, sub_815A7EC
-
- .align 2
-gUnknown_085CE1A8:: @ 85CE1A8
- .2byte 0x0000, 0x0008, 0x0010, 0x0010, 0x0020, 0x0004, 0x0030, 0x0004, 0xffff, 0x0000
-
- .align 2
-gUnknown_085CE1BC:: @ 85CE1BC
- .4byte gUnknown_085CE1A8
-
- .align 2
-gUnknown_085CE1C0:: @ 85CE1C0
- .2byte 0x0200, 0x0200, 0x0000, 0x0000
- .2byte 0xffe0, 0xffe0, 0x0800, 0x0000
- .2byte 0x7fff, 0x0000, 0x0000, 0x0000
-
- .align 2
-gUnknown_085CE1D8:: @ 85CE1D8
- .4byte gUnknown_085CE1C0
-
- .align 2
-gUnknown_085CE1DC:: @ 85CE1DC
- spr_template ANIM_TAG_FANG_ATTACK, ANIM_TAG_FANG_ATTACK, gUnknown_085249D4, gUnknown_085CE1BC, NULL, gUnknown_085CE1D8, sub_815A8AC
-
- .align 2
-gUnknown_085CE1F4:: @ 85CE1F4
- .2byte 0x0000, 0x0180, 0x0000, 0x0000
- .2byte 0x0010, 0x0000, 0x1400, 0x0000
- .2byte 0x7fff, 0x0000, 0x0000, 0x0000
-
- .align 2
-gUnknown_085CE20C:: @ 85CE20C
- .2byte 0x0140, 0x0180, 0x0000, 0x0000
- .2byte 0xfff0, 0x0000, 0x1300, 0x0000
- .2byte 0x7fff, 0x0000, 0x0000, 0x0000
-
- .align 2
-gUnknown_085CE224:: @ 85CE224
- .4byte gUnknown_085CE1F4
- .4byte gUnknown_085CE20C
-
- .align 2
-gUnknown_085CE22C:: @ 85CE22C
- spr_template ANIM_TAG_SPOTLIGHT, ANIM_TAG_SPOTLIGHT, gUnknown_085249DC, gDummySpriteAnimTable, NULL, gUnknown_085CE224, sub_815A934
-
- .align 2
-gUnknown_085CE244::
- spr_template ANIM_TAG_TAG_HAND, ANIM_TAG_TAG_HAND, gUnknown_08524914, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_815AAA4
-
- .align 2
-gUnknown_085CE25C::
- spr_template ANIM_TAG_TAG_HAND, ANIM_TAG_TAG_HAND, gUnknown_08524914, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_815ABD0
-
- .align 2
-gUnknown_085CE274:: @ 85CE274
- .2byte 0x0000, 0x0002, 0x0008, 0x0002
- .2byte 0x0010, 0x0002, 0xfffe, 0x0000
-
- .align 2
-gUnknown_085CE284:: @ 85CE284
- .4byte gUnknown_085CE274
-
- .align 2
-gUnknown_085CE288:: @ 85CE288
- spr_template ANIM_TAG_RAPID_SPIN, ANIM_TAG_RAPID_SPIN, gUnknown_08524934, gUnknown_085CE284, NULL, gDummySpriteAffineAnimTable, sub_815ACD0
-
- .align 2
-gUnknown_085CE2A0:: @ 85CE2A0
- .2byte 0xfff4, 0x0008, 0x0400, 0x0000, 0x0014, 0xffec, 0x0400, 0x0000, 0xfff8, 0x000c, 0x0400, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000
-
- .align 2
-gUnknown_085CE2C0:: @ 85CE2C0
- .2byte 0x0000, 0x0008, 0xffff, 0x0000
-
- .align 2
-gUnknown_085CE2C8:: @ 85CE2C8
- .4byte gUnknown_085CE2C0
-
- .align 2
-gUnknown_085CE2CC:: @ 85CE2CC
- .2byte 0x0000, 0x0000, 0x2805, 0x0000, 0x0000, 0x0000, 0x0a0a, 0x0000, 0x0000, 0x0000, 0x0a0f, 0x0000, 0x0000, 0x0000, 0x2814, 0x0000
- .2byte 0x7ffe, 0x0000, 0x0000, 0x0000
-
- .align 2
-gUnknown_085CE2F4:: @ 85CE2F4
- .4byte gUnknown_085CE2CC
-
- .align 2
-gUnknown_085CE2F8:: @ 85CE2F8
- spr_template ANIM_TAG_TRI_FORCE_TRIANGLE, ANIM_TAG_TRI_FORCE_TRIANGLE, gUnknown_085249DC, gUnknown_085CE2C8, NULL, gUnknown_085CE2F4, sub_815B27C
-
- .align 2
-gUnknown_085CE310:: @ 85CE310
- .2byte 0x0000, 0x0003, 0x0010, 0x0003, 0x0020, 0x0003, 0x0030, 0x0003, 0x0020, 0x0043, 0x0010, 0x0043, 0x0000, 0x0043, 0xfffd, 0x0001
- .2byte 0xffff, 0x0000
-
- .align 2
-gUnknown_085CE334:: @ 85CE334
- .4byte gUnknown_085CE310
-
- .align 2
-gUnknown_085CE338:: @ 85CE338
- spr_template ANIM_TAG_ECLIPSING_ORB, ANIM_TAG_ECLIPSING_ORB, gUnknown_08524914, gUnknown_085CE334, NULL, gDummySpriteAffineAnimTable, sub_80A77C8
-
- .align 2
-gUnknown_085CE350:: @ 85CE350
- .2byte 0xfff4, 0x0014, 0x0800, 0x0000, 0x000c, 0xffec, 0x0800, 0x0000, 0x7ffd, 0x0002, 0x0000, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000
-
- .align 2
-gUnknown_085CE370:: @ 85CE370
- spr_template ANIM_TAG_POKEBALL, ANIM_TAG_POKEBALL, gUnknown_0852490C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_815B394
-
- .align 2
-gUnknown_085CE388:: @ 85CE388
- spr_template ANIM_TAG_GOLD_STARS, ANIM_TAG_GOLD_STARS, gUnknown_0852490C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_815B49C
-
- .align 2
-gUnknown_085CE3A0:: @ 85CE3A0
- spr_template ANIM_TAG_GOLD_STARS, ANIM_TAG_GOLD_STARS, gUnknown_08524904, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_815B570
-
- .align 2
-gUnknown_085CE3B8:: @ 85CE3B8
- .2byte 0x0008, 0xfff8, 0x0c00, 0x0000, 0xfff0, 0x0010, 0x0c00, 0x0000, 0x0008, 0xfff8, 0x0c00, 0x0000, 0x7ffd, 0x0001, 0x0000, 0x0000
- .2byte 0x7fff, 0x0000, 0x0000, 0x0000
-
- .align 2
-gUnknown_085CE3E0:: @ 85CE3E0
- .2byte 0x0000, 0x0006, 0x1400, 0x0000, 0x0000, 0x0000, 0x1400, 0x0000, 0x0000, 0xffee, 0x0600, 0x0000, 0xffee, 0xffee, 0x0300, 0x0000
- .2byte 0x0000, 0x0000, 0x0f00, 0x0000, 0x0004, 0x0004, 0x0d00, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000
-
- .align 2
-gUnknown_085CE418:: @ 85CE418
- spr_template ANIM_TAG_BLUE_ORB, ANIM_TAG_BLUE_ORB, gUnknown_08524904, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_815B70C
-
- .align 2
-gUnknown_085CE430:: @ 85CE430
- .2byte 0x0000, 0x0006, 0x1400, 0x0000, 0x0000, 0x0000, 0x1400, 0x0000, 0x0007, 0xffe2, 0x0600, 0x0000, 0x0000, 0x0000, 0x1400, 0x0000
- .2byte 0xfffe, 0x0003, 0x1400, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000
-
- .align 2
-gUnknown_085CE460:: @ 85CE460
- .byte 0xe8, 0x18, 0xfc, 0x00
-
- .align 2
-gUnknown_085CE464:: @ 85CE464
- .2byte 0x0000, 0x0006, 0x0004, 0x0006, 0xfffe, 0x0000
-
- .align 2
-gUnknown_085CE470:: @ 85CE470
- .2byte 0x0008, 0x0006, 0xffff, 0x0000
-
- .align 2
-gUnknown_085CE478:: @ 85CE478
- .2byte 0x000c, 0x0006, 0xffff, 0x0000
-
- .align 2
-gUnknown_085CE480:: @ 85CE480
- .4byte gUnknown_085CE464
- .4byte gUnknown_085CE470
- .4byte gUnknown_085CE478
-
- .align 2
-gUnknown_085CE48C:: @ 85CE48C
- spr_template ANIM_TAG_GREEN_STAR, ANIM_TAG_GREEN_STAR, gUnknown_0852490C, gUnknown_085CE480, NULL, gDummySpriteAffineAnimTable, sub_815BE04
-
- .align 2
-gUnknown_085CE4A4:: @ 85CE4A4
- .byte 0x78, 0x50, 0x28, 0x00
-
- .align 2
-gUnknown_085CE4A8:: @ 85CE4A8
- .2byte 0x0000, 0x0000, 0x0032, 0x0000
-
- .align 2
-gUnknown_085CE4B0:: @ 85CE4B0
- .2byte 0x0000, 0xfff1, 0x0700, 0x0000, 0x0000, 0x000f, 0x0700, 0x0000, 0x7ffd, 0x0002, 0x0000, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000
-
- .align 2
-gUnknown_085CE4D0:: @ 85CE4D0
- spr_template ANIM_TAG_ANGER, ANIM_TAG_ANGER, gUnknown_0852490C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_815C400
-
- .align 2
-gUnknown_085CE4E8:: @ 85CE4E8
- .2byte 0x0000, 0x0008, 0x0001, 0x0008, 0x0002, 0x0008, 0x0003, 0x0008, 0x0003, 0x0088, 0x0002, 0x0088, 0x0000, 0x0088, 0x0001, 0x0088
- .2byte 0xfffe, 0x0000
-
- .align 2
-gUnknown_085CE50C:: @ 85CE50C
- .2byte 0x0000, 0x0048, 0x0001, 0x0048, 0x0002, 0x0048, 0x0003, 0x0048, 0x0003, 0x00c8, 0x0002, 0x00c8, 0x0000, 0x00c8, 0x0001, 0x00c8
- .2byte 0xfffe, 0x0000
-
- .align 2
-gUnknown_085CE530:: @ 85CE530
- .2byte 0x0000, 0x0008, 0xffff, 0x0000
-
- .align 2
-gUnknown_085CE538:: @ 85CE538
- .4byte gUnknown_085CE4E8
- .4byte gUnknown_085CE50C
- .4byte gUnknown_085CE530
-
- .align 2
-gUnknown_085CE544:: @ 85CE544
- spr_template ANIM_TAG_PINK_PETAL, ANIM_TAG_PINK_PETAL, gUnknown_08524904, gUnknown_085CE538, NULL, gDummySpriteAffineAnimTable, sub_815C6B0
-
- .align 2
-gUnknown_085CE55C:: @ 85CE55C
- .byte 0x0c, 0x18, 0x10, 0x16, 0x13, 0x13, 0x15, 0x10, 0x17, 0x0c, 0x16, 0x07, 0x13, 0x04, 0x10, 0x01, 0x0b, 0x00, 0x06, 0x01, 0x04, 0x04, 0x01, 0x07, 0x00, 0x0c, 0x02, 0x11, 0x04, 0x13, 0x08, 0x16
-
- .align 2
-gUnknown_085CE57C:: @ 85CE57C
- .2byte 0x0000, 0x0005, 0x0004, 0x0009, 0x0008, 0x0005, 0xffff, 0x0000
-
- .align 2
-gUnknown_085CE58C:: @ 85CE58C
- .4byte gUnknown_085CE57C
-
- .align 2
-gUnknown_085CE590:: @ 85CE590
- spr_template ANIM_TAG_PAIN_SPLIT, ANIM_TAG_PAIN_SPLIT, gUnknown_0852490C, gUnknown_085CE58C, NULL, gDummySpriteAffineAnimTable, sub_815C95C
-gUnknown_085CE5A8::
- spr_template ANIM_TAG_CONFETTI, ANIM_TAG_CONFETTI, gUnknown_08524904, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_815CB88
-gUnknown_085CE5C0::
- spr_template ANIM_TAG_SPOTLIGHT, ANIM_TAG_SPOTLIGHT, gUnknown_085249DC, gDummySpriteAnimTable, NULL, gUnknown_085CE224, sub_815CC94
-gBattleAnimSpriteTemplate_85CE5D8::
- spr_template ANIM_TAG_BLUE_ORB, ANIM_TAG_BLUE_ORB, gUnknown_08524904, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_815CDB4
-
- .align 2
-gUnknown_085CE5F0:: @ 85CE5F0
- .2byte 0x0010, 0x0000, 0x0400, 0x0000, 0x0000, 0xfffd, 0x1000, 0x0000, 0x0004, 0x0000, 0x0400, 0x0000, 0x0000, 0x0000, 0x1800, 0x0000
- .2byte 0xfffb, 0x0003, 0x1000, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000
-
- .align 2
-gUnknown_085CE620:: @ 85CE620
- .2byte 0x0080, 0x0080, 0x0000, 0x0000, 0xfff8, 0xfff8, 0x0800, 0x0000, 0x0008, 0x0008, 0x0800, 0x0000, 0x7ffe, 0x0000, 0x0000, 0x0000
-
- .align 2
-gUnknown_085CE640:: @ 85CE640
- .2byte 0x00c0, 0x00c0, 0x0000, 0x0000, 0x0008, 0x0008, 0x0800, 0x0000, 0xfff8, 0xfff8, 0x0800, 0x0000, 0x7ffe, 0x0000, 0x0000, 0x0000
-
- .align 2
-gUnknown_085CE660:: @ 85CE660
- .2byte 0x0100, 0x0100, 0x0000, 0x0000, 0x0008, 0x0008, 0x0800, 0x0000, 0xfff8, 0xfff8, 0x0800, 0x0000, 0x7ffe, 0x0000, 0x0000, 0x0000
-
- .align 2
-gUnknown_085CE680:: @ 85CE680
- .4byte gUnknown_085CE620
- .4byte gUnknown_085CE640
- .4byte gUnknown_085CE660
-
- .align 2
-gUnknown_085CE68C:: @ 85CE68C
- spr_template ANIM_TAG_PINK_CLOUD, ANIM_TAG_PINK_CLOUD, gUnknown_08524974, gDummySpriteAnimTable, NULL, gUnknown_085CE680, sub_815D7B4
-
- .align 2
-gUnknown_085CE6A4:: @ 85CE6A4
- .2byte 0x0080, 0x0080, 0x0000, 0x0000, 0xfffc, 0xfffa, 0x1000, 0x0000, 0x0004, 0x0006, 0x1000, 0x0000, 0x7ffe, 0x0000, 0x0000, 0x0000
-
- .align 2
-gUnknown_085CE6C4:: @ 85CE6C4
- .2byte 0x00c0, 0x00c0, 0x0000, 0x0000, 0x0004, 0x0006, 0x1000, 0x0000, 0xfffc, 0xfffa, 0x1000, 0x0000, 0x7ffe, 0x0000, 0x0000, 0x0000
-
- .align 2
-gUnknown_085CE6E4:: @ 85CE6E4
- .2byte 0x0100, 0x0100, 0x0000, 0x0000, 0x0004, 0x0006, 0x1000, 0x0000, 0xfffc, 0xfffa, 0x1000, 0x0000, 0x7ffe, 0x0000, 0x0000, 0x0000
-
- .align 2
-gUnknown_085CE704:: @ 85CE704
- .2byte 0x0100, 0x0100, 0x0000, 0x0000, 0x0008, 0x000a, 0x1e00, 0x0000, 0xfff8, 0xfff6, 0x1000, 0x0000, 0x7ffe, 0x0000, 0x0000, 0x0000
-
- .align 2
-gUnknown_085CE724:: @ 85CE724
- .4byte gUnknown_085CE6A4
- .4byte gUnknown_085CE6C4
- .4byte gUnknown_085CE6E4
- .4byte gUnknown_085CE704
-
- .align 2
-gUnknown_085CE734:: @ 85CE734
- spr_template ANIM_TAG_PINK_CLOUD, ANIM_TAG_PINK_CLOUD, gUnknown_085249D4, gDummySpriteAnimTable, NULL, gUnknown_085CE724, sub_815D870
-
- .align 2
-gUnknown_085CE74C:: @ 85CE74C
- .2byte 0xfff0, 0x0010, 0x0600, 0x0000, 0x0010, 0xfff0, 0x0c00, 0x0000, 0xfff0, 0x0010, 0x0600, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000
-
- .align 2
-gUnknown_085CE76C:: @ 85CE76C
- spr_template ANIM_TAG_SWEAT_DROP, ANIM_TAG_SWEAT_DROP, gUnknown_08524904, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_815DEBC
-
- .align 2
-gUnknown_085CE784:: @ 85CE784
- .byte 0x3c, 0x07, 0xbc, 0x16, 0x5b, 0x22, 0xdb, 0x2d, 0x5a, 0x3d, 0xfa, 0x48, 0x79, 0x54, 0x19, 0x64, 0x19, 0x5c, 0x19, 0x50, 0x19, 0x40, 0x19, 0x34, 0x1a, 0x28, 0x1a, 0x18, 0x1a, 0x0c, 0x1b, 0x00
- .byte 0x3b, 0x00, 0xbb, 0x00, 0x3b, 0x01, 0x9b, 0x01, 0x1c, 0x02, 0x7c, 0x02, 0xfc, 0x02, 0x7d, 0x03
-
- .align 2
-gUnknown_085CE7B4:: @ 85CE7B4
- .2byte 0x0000, 0x0003, 0x0010, 0x0003, 0xfffe, 0x0000
-
- .align 2
-gUnknown_085CE7C0:: @ 85CE7C0
- .2byte 0x0020, 0x0003, 0x0030, 0x0003, 0xfffe, 0x0000
-
- .align 2
-gUnknown_085CE7CC:: @ 85CE7CC
- .4byte gUnknown_085CE7B4
- .4byte gUnknown_085CE7C0
-
- .align 2
-gUnknown_085CE7D4:: @ 85CE7D4
- spr_template ANIM_TAG_NOISE_LINE, ANIM_TAG_NOISE_LINE, gUnknown_08524914, gUnknown_085CE7CC, NULL, gDummySpriteAffineAnimTable, sub_815E01C
-
- .align 2
-gUnknown_085CE7EC:: @ 85CE7EC
- spr_template ANIM_TAG_SMALL_RED_EYE, ANIM_TAG_SMALL_RED_EYE, gUnknown_08524904, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_815E404
-gUnknown_085CE804::
- spr_template ANIM_TAG_PAW_PRINT, ANIM_TAG_PAW_PRINT, gUnknown_08524914, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_815E444
-
- .align 2
-gUnknown_085CE81C:: @ 85CE81C
- .2byte 0x0000, 0x0000, 0x18fc, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000
-
- .align 2
-gUnknown_085CE82C:: @ 85CE82C
- .2byte 0x0100, 0x0100, 0x00c0, 0x0000, 0x0000, 0x0000, 0x1804, 0x0000
- .2byte 0x7fff, 0x0000, 0x0000, 0x0000
-
- .align 2
-gUnknown_085CE844:: @ 85CE844
- .4byte gUnknown_085CE81C
- .4byte gUnknown_085CE82C
-
- .align 2
-gUnknown_085CE84C:: @ 85CE84C
- spr_template ANIM_TAG_RED_BALL, ANIM_TAG_RED_BALL, gUnknown_08524974, gDummySpriteAnimTable, NULL, gUnknown_085CE844, SpriteCallbackDummy
-
- .align 2
-gUnknown_085CE864::
- spr_template ANIM_TAG_TAG_HAND, ANIM_TAG_TAG_HAND, gUnknown_08524914, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_815E6D8
-
- .align 2
-gUnknown_085CE87C:: @ 85CE87C
- .2byte 0x0000, 0xfff0, 0x0600, 0x0000, 0x0000, 0x0010, 0x0600, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000
-
- .align 2
-gUnknown_085CE894:: @ 85CE894
- spr_template ANIM_TAG_SMELLINGSALT_EFFECT, ANIM_TAG_SMELLINGSALT_EFFECT, gUnknown_08524914, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_815E954
-gUnknown_085CE8AC::
- spr_template ANIM_TAG_TAG_HAND, ANIM_TAG_TAG_HAND, gUnknown_08524914, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_815EA14
-gUnknown_085CE8C4::
- spr_template ANIM_TAG_MAGNIFYING_GLASS, ANIM_TAG_MAGNIFYING_GLASS, gUnknown_08524A34, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_815EE84
-gUnknown_085CE8DC::
- spr_template ANIM_TAG_GOLD_STARS, ANIM_TAG_GOLD_STARS, gUnknown_0852490C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_815F18C
-gUnknown_085CE8F4::
- spr_template ANIM_TAG_GOLD_STARS, ANIM_TAG_GOLD_STARS, gUnknown_0852490C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_81061C4
-gUnknown_085CE90C::
- spr_template ANIM_TAG_X_SIGN, ANIM_TAG_X_SIGN, gUnknown_0852491C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_815F48C
-gUnknown_085CE924::
- spr_template ANIM_TAG_ITEM_BAG, ANIM_TAG_ITEM_BAG, gUnknown_08524914, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_815FE80
-
- .align 2
-gUnknown_085CE93C:: @ 85CE93C
- .2byte 0x0000, 0x0004, 0x0040, 0x0004, 0xffff, 0x0000
-
- .align 2
-gUnknown_085CE948:: @ 85CE948
- .4byte gUnknown_085CE93C
-
- .align 2
-gUnknown_085CE94C:: @ 85CE94C
- .2byte 0x0100, 0x0100, 0x0000, 0x0000, 0x0000, 0x0000, 0x08fc, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000
-
- .align 2
-gUnknown_085CE964:: @ 85CE964
- .2byte 0xff00, 0x0100, 0x0000, 0x0000, 0x0000, 0x0000, 0x0804, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000
-
- .align 2
-gUnknown_085CE97C:: @ 85CE97C
- .4byte gUnknown_085CE94C
- .4byte gUnknown_085CE964
-
- .align 2
-gUnknown_085CE984:: @ 85CE984
- spr_template ANIM_TAG_SLAM_HIT_2, ANIM_TAG_SLAM_HIT_2, gUnknown_0852497C, gUnknown_085CE948, NULL, gUnknown_085CE97C, sub_8160338
-
- .align 2
-gUnknown_085CE99C:: @ 85CE99C
- .2byte 0x0000, 0x0000, 0x40fc, 0x0000, 0x7ffe, 0x0000, 0x0000, 0x0000
-
- .align 2
-gUnknown_085CE9AC:: @ 85CE9AC
- .4byte gUnknown_085CE99C
-
- .align 2
-gUnknown_085CE9B0:: @ 85CE9B0
- spr_template ANIM_TAG_RECYCLE, ANIM_TAG_RECYCLE, gUnknown_08524A9C, gDummySpriteAnimTable, NULL, gUnknown_085CE9AC, sub_81603A8
-
- .align 2
-gUnknown_085CE9C8:: @ 85CE9C8
- .2byte 0x0000, 0x0010, 0x0400, 0x0000, 0xfffe, 0x0000, 0x0800, 0x0000, 0x0000, 0x0004, 0x0400, 0x0000, 0x0000, 0x0000, 0x1800, 0x0000
- .2byte 0x0001, 0xfffb, 0x1000, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000
-
diff --git a/data/event_scripts.s b/data/event_scripts.s
index 5bd8825ad..c38b69d8b 100644
--- a/data/event_scripts.s
+++ b/data/event_scripts.s
@@ -1,5 +1,6 @@
#include "constants/battle_frontier.h"
#include "constants/battle_setup.h"
+#include "constants/event_objects.h"
#include "constants/field_effects.h"
#include "constants/flags.h"
#include "constants/items.h"
@@ -847,9 +848,9 @@ VerdanturfTown_BattleTentLobby_EventScript_27134F:: @ 827134F
EventScript_271354:: @ 8271354
cmdD8
cmdD9
-
+
.include "data/scripts/trainer_battle.inc"
-
+
Std_MsgboxAutoclose:: @ 8271494
message 0x0
waitmessage
@@ -2234,11 +2235,11 @@ RusturfTunnel_EventScript_272216:: @ 8272216
EventScript_27222B:: @ 827222B
delay 30
- applymovement 255, PetalburgCity_Movement_2725A6
+ applymovement EVENT_OBJ_ID_PLAYER, PetalburgCity_Movement_2725A6
waitmovement 0
showobjectat 255, MAP_PETALBURG_CITY
delay 30
- applymovement 255, Movement_27224E
+ applymovement EVENT_OBJ_ID_PLAYER, Movement_27224E
waitmovement 0
delay 30
return
@@ -2454,7 +2455,7 @@ EverGrandeCity_DrakesRoom_EventScript_2723F8:: @ 82723F8
EverGrandeCity_GlaciasRoom_EventScript_2723F8:: @ 82723F8
EverGrandeCity_PhoebesRoom_EventScript_2723F8:: @ 82723F8
EverGrandeCity_SidneysRoom_EventScript_2723F8:: @ 82723F8
- applymovement 255, EverGrandeCity_SidneysRoom_Movement_2725C6
+ applymovement EVENT_OBJ_ID_PLAYER, EverGrandeCity_SidneysRoom_Movement_2725C6
waitmovement 0
playse SE_DOOR
setmetatile 6, 1, 836, 0
@@ -2476,7 +2477,7 @@ EverGrandeCity_DrakesRoom_EventScript_272475:: @ 8272475
EverGrandeCity_GlaciasRoom_EventScript_272475:: @ 8272475
EverGrandeCity_PhoebesRoom_EventScript_272475:: @ 8272475
EverGrandeCity_SidneysRoom_EventScript_272475:: @ 8272475
- applymovement 255, EverGrandeCity_SidneysRoom_Movement_2725BA
+ applymovement EVENT_OBJ_ID_PLAYER, EverGrandeCity_SidneysRoom_Movement_2725BA
waitmovement 0
playse SE_TRACK_DOOR
setmetatile 5, 12, 518, 1
@@ -4245,7 +4246,7 @@ gUnknown_0827EE07:: @ 27EE07
gUnknown_0827EE09:: @ 27EE09
.string "8$"
-
+
.include "data/scripts/tv.inc"
.include "data/text/tv.inc"
@@ -4778,7 +4779,7 @@ MtPyre_2F_MapScript1_2A8331: @ 82A8331
EventScript_FallDownHole:: @ 82A8337
lockall
delay 20
- applymovement 255, GraniteCave_B1F_Movement_2A8369
+ applymovement EVENT_OBJ_ID_PLAYER, GraniteCave_B1F_Movement_2A8369
waitmovement 0
playse SE_RU_HYUU
delay 60
@@ -4789,7 +4790,7 @@ EventScript_FallDownHole:: @ 82A8337
gUnknown_082A8350:: @ 82A8350
lockall
delay 20
- applymovement 255, GraniteCave_B1F_Movement_2A8369
+ applymovement EVENT_OBJ_ID_PLAYER, GraniteCave_B1F_Movement_2A8369
waitmovement 0
playse SE_RU_HYUU
delay 60
@@ -9079,7 +9080,7 @@ BattleFrontier_BattlePikeThreePathRoom_EventScript_2C3F6F:: @ 82C3F6F
end
BattleFrontier_BattlePikeThreePathRoom_EventScript_2C4030:: @ 82C4030
- applymovement 255, BattleFrontier_BattlePikeThreePathRoom_Movement_2C427A
+ applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattlePikeThreePathRoom_Movement_2C427A
waitmovement 0
call BattleFrontier_BattlePikeThreePathRoom_EventScript_25BB49
warpsilent MAP_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM1, 255, 4, 7
@@ -9087,7 +9088,7 @@ BattleFrontier_BattlePikeThreePathRoom_EventScript_2C4030:: @ 82C4030
end
BattleFrontier_BattlePikeThreePathRoom_EventScript_2C4049:: @ 82C4049
- applymovement 255, BattleFrontier_BattlePikeThreePathRoom_Movement_2C427A
+ applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattlePikeThreePathRoom_Movement_2C427A
waitmovement 0
call BattleFrontier_BattlePikeThreePathRoom_EventScript_25BB49
warpsilent MAP_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM3, 255, 4, 19
@@ -9168,7 +9169,7 @@ BattleFrontier_BattlePikeRandomRoom3_EventScript_2C4136:: @ 82C4136
BattleFrontier_BattlePikeRandomRoom1_EventScript_2C4144:: @ 82C4144
BattleFrontier_BattlePikeRandomRoom3_EventScript_2C4144:: @ 82C4144
- applymovement 255, BattleFrontier_BattlePikeRandomRoom1_Movement_2C427A
+ applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattlePikeRandomRoom1_Movement_2C427A
waitmovement 0
call BattleFrontier_BattlePikeRandomRoom1_EventScript_25BB49
warpsilent MAP_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM2, 255, 2, 7
@@ -9176,7 +9177,7 @@ BattleFrontier_BattlePikeRandomRoom3_EventScript_2C4144:: @ 82C4144
BattleFrontier_BattlePikeRandomRoom1_EventScript_2C415C:: @ 82C415C
BattleFrontier_BattlePikeRandomRoom3_EventScript_2C415C:: @ 82C415C
- applymovement 255, BattleFrontier_BattlePikeRandomRoom1_Movement_2C427A
+ applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattlePikeRandomRoom1_Movement_2C427A
waitmovement 0
call BattleFrontier_BattlePikeRandomRoom1_EventScript_25BB49
warpsilent MAP_BATTLE_FRONTIER_BATTLE_PIKE_THREE_PATH_ROOM, 255, 6, 10
diff --git a/data/maps/BattleFrontier_BattleArenaBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleArenaBattleRoom/scripts.inc
index 75ac9a4ec..660e13947 100644
--- a/data/maps/BattleFrontier_BattleArenaBattleRoom/scripts.inc
+++ b/data/maps/BattleFrontier_BattleArenaBattleRoom/scripts.inc
@@ -536,7 +536,7 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_257C16:: @ 8257C16
hideobjectat 8, MAP_BATTLE_FRONTIER_BATTLE_ARENA_BATTLE_ROOM
removeobject 7
call BattleFrontier_BattleArenaBattleRoom_EventScript_24BCDC
- applymovement 255, BattleFrontier_BattleArenaBattleRoom_Movement_24C773
+ applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleArenaBattleRoom_Movement_24C773
setvar VAR_TEMP_1, 1
end
diff --git a/data/maps/BattleFrontier_BattleArenaCorridor/scripts.inc b/data/maps/BattleFrontier_BattleArenaCorridor/scripts.inc
index 5ffb5de3d..f83f6f339 100644
--- a/data/maps/BattleFrontier_BattleArenaCorridor/scripts.inc
+++ b/data/maps/BattleFrontier_BattleArenaCorridor/scripts.inc
@@ -10,14 +10,14 @@ BattleFrontier_BattleArenaCorridor_EventScript_2573C9:: @ 82573C9
delay 16
setvar VAR_TEMP_0, 1
applymovement 1, BattleFrontier_BattleArenaCorridor_Movement_25742F
- applymovement 255, BattleFrontier_BattleArenaCorridor_Movement_257417
+ applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleArenaCorridor_Movement_257417
waitmovement 0
applymovement 1, BattleFrontier_BattleArenaCorridor_Movement_257444
waitmovement 0
msgbox BattleFrontier_BattleArenaCorridor_Text_257449, MSGBOX_SIGN
applymovement 1, BattleFrontier_BattleArenaCorridor_Movement_257446
waitmovement 0
- applymovement 255, BattleFrontier_BattleArenaCorridor_Movement_25742C
+ applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleArenaCorridor_Movement_25742C
waitmovement 0
setvar VAR_0x8006, 0
warp MAP_BATTLE_FRONTIER_BATTLE_ARENA_BATTLE_ROOM, 255, 7, 5
diff --git a/data/maps/BattleFrontier_BattleArenaLobby/scripts.inc b/data/maps/BattleFrontier_BattleArenaLobby/scripts.inc
index 36f864c14..79044d471 100644
--- a/data/maps/BattleFrontier_BattleArenaLobby/scripts.inc
+++ b/data/maps/BattleFrontier_BattleArenaLobby/scripts.inc
@@ -259,12 +259,12 @@ BattleFrontier_BattleArenaLobby_EventScript_256003:: @ 8256003
BattleFrontier_BattleArenaLobby_EventScript_256005:: @ 8256005
applymovement 1, BattleFrontier_BattleArenaLobby_Movement_256034
- applymovement 255, BattleFrontier_BattleArenaLobby_Movement_256041
+ applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleArenaLobby_Movement_256041
waitmovement 0
opendoor 2, 2
waitdooranim
applymovement 1, BattleFrontier_BattleArenaLobby_Movement_25603E
- applymovement 255, BattleFrontier_BattleArenaLobby_Movement_25604C
+ applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleArenaLobby_Movement_25604C
waitmovement 0
closedoor 2, 2
waitdooranim
@@ -308,12 +308,12 @@ BattleFrontier_BattleArenaLobby_Movement_25604C: @ 825604C
BattleFrontier_BattleArenaLobby_EventScript_256050:: @ 8256050
applymovement 1, BattleFrontier_BattleArenaLobby_Movement_25607F
- applymovement 255, BattleFrontier_BattleArenaLobby_Movement_256088
+ applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleArenaLobby_Movement_256088
waitmovement 0
opendoor 11, 2
waitdooranim
applymovement 1, BattleFrontier_BattleArenaLobby_Movement_25603E
- applymovement 255, BattleFrontier_BattleArenaLobby_Movement_25604C
+ applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleArenaLobby_Movement_25604C
waitmovement 0
closedoor 11, 2
waitdooranim
diff --git a/data/maps/BattleFrontier_BattleDomeBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleDomeBattleRoom/scripts.inc
index 2d147e426..9b4c045d8 100644
--- a/data/maps/BattleFrontier_BattleDomeBattleRoom/scripts.inc
+++ b/data/maps/BattleFrontier_BattleDomeBattleRoom/scripts.inc
@@ -551,7 +551,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24C48B:: @ 824C48B
call BattleFrontier_BattleDomeBattleRoom_EventScript_24C502
call BattleFrontier_BattleDomeBattleRoom_EventScript_24BCDC
setvar VAR_TEMP_1, 1
- applymovement 255, BattleFrontier_BattleDomeBattleRoom_Movement_24C773
+ applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleDomeBattleRoom_Movement_24C773
setvar VAR_0x8004, 1
setvar VAR_0x8005, 2
special CallFrontierUtilFunc
diff --git a/data/maps/BattleFrontier_BattleDomeCorridor/scripts.inc b/data/maps/BattleFrontier_BattleDomeCorridor/scripts.inc
index a4c0dafc4..f69e7b633 100644
--- a/data/maps/BattleFrontier_BattleDomeCorridor/scripts.inc
+++ b/data/maps/BattleFrontier_BattleDomeCorridor/scripts.inc
@@ -15,12 +15,12 @@ BattleFrontier_BattleDomeCorridor_EventScript_24B10E:: @ 824B10E
compare VAR_RESULT, 1
goto_eq BattleFrontier_BattleDomeCorridor_EventScript_24B161
applymovement 1, BattleFrontier_BattleDomeCorridor_Movement_24B1B2
- applymovement 255, BattleFrontier_BattleDomeCorridor_Movement_24B1A1
+ applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleDomeCorridor_Movement_24B1A1
waitmovement 0
opendoor 13, 3
waitdooranim
applymovement 1, BattleFrontier_BattleDomeCorridor_Movement_24B1BE
- applymovement 255, BattleFrontier_BattleDomeCorridor_Movement_24B1AE
+ applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleDomeCorridor_Movement_24B1AE
waitmovement 0
closedoor 13, 3
waitdooranim
@@ -28,12 +28,12 @@ BattleFrontier_BattleDomeCorridor_EventScript_24B10E:: @ 824B10E
BattleFrontier_BattleDomeCorridor_EventScript_24B161:: @ 824B161
applymovement 1, BattleFrontier_BattleDomeCorridor_Movement_24B1D6
- applymovement 255, BattleFrontier_BattleDomeCorridor_Movement_24B1C1
+ applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleDomeCorridor_Movement_24B1C1
waitmovement 0
opendoor 37, 3
waitdooranim
applymovement 1, BattleFrontier_BattleDomeCorridor_Movement_24B1E6
- applymovement 255, BattleFrontier_BattleDomeCorridor_Movement_24B1D2
+ applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleDomeCorridor_Movement_24B1D2
waitmovement 0
closedoor 37, 3
waitdooranim
diff --git a/data/maps/BattleFrontier_BattleDomeLobby/scripts.inc b/data/maps/BattleFrontier_BattleDomeLobby/scripts.inc
index a4a719090..9e906433a 100644
--- a/data/maps/BattleFrontier_BattleDomeLobby/scripts.inc
+++ b/data/maps/BattleFrontier_BattleDomeLobby/scripts.inc
@@ -313,7 +313,7 @@ BattleFrontier_BattleDomeLobby_EventScript_249C6E:: @ 8249C6E
call_if 1, BattleFrontier_BattleDomeLobby_EventScript_249CDD
compare VAR_FRONTIER_BATTLE_MODE, 1
call_if 1, BattleFrontier_BattleDomeLobby_EventScript_249CE5
- applymovement 255, BattleFrontier_BattleDomeLobby_Movement_249D45
+ applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleDomeLobby_Movement_249D45
waitmovement 0
compare VAR_FRONTIER_BATTLE_MODE, 0
call_if 1, BattleFrontier_BattleDomeLobby_EventScript_249D2D
@@ -324,7 +324,7 @@ BattleFrontier_BattleDomeLobby_EventScript_249C6E:: @ 8249C6E
call_if 1, BattleFrontier_BattleDomeLobby_EventScript_249CED
compare VAR_FRONTIER_BATTLE_MODE, 1
call_if 1, BattleFrontier_BattleDomeLobby_EventScript_249CF5
- applymovement 255, BattleFrontier_BattleDomeLobby_Movement_249D4E
+ applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleDomeLobby_Movement_249D4E
waitmovement 0
compare VAR_FRONTIER_BATTLE_MODE, 0
call_if 1, BattleFrontier_BattleDomeLobby_EventScript_249D39
diff --git a/data/maps/BattleFrontier_BattleDomePreBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleDomePreBattleRoom/scripts.inc
index 28d634162..8e4a8c944 100644
--- a/data/maps/BattleFrontier_BattleDomePreBattleRoom/scripts.inc
+++ b/data/maps/BattleFrontier_BattleDomePreBattleRoom/scripts.inc
@@ -24,7 +24,7 @@ BattleFrontier_BattleDomePreBattleRoom_EventScript_24B222:: @ 824B222
setvar VAR_0x8006, 1
special CallFrontierUtilFunc
setvar VAR_TEMP_0, 1
- applymovement 255, BattleFrontier_BattleDomePreBattleRoom_Movement_24B652
+ applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleDomePreBattleRoom_Movement_24B652
waitmovement 0
lockall
@@ -171,11 +171,11 @@ BattleFrontier_BattleDomePreBattleRoom_EventScript_24B46D:: @ 824B46D
closemessage
applymovement 1, BattleFrontier_BattleDomePreBattleRoom_Movement_24B64F
waitmovement 0
- applymovement 255, BattleFrontier_BattleDomePreBattleRoom_Movement_24B657
+ applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleDomePreBattleRoom_Movement_24B657
waitmovement 0
opendoor 5, 1
waitdooranim
- applymovement 255, BattleFrontier_BattleDomePreBattleRoom_Movement_24B659
+ applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleDomePreBattleRoom_Movement_24B659
waitmovement 0
closedoor 5, 1
waitdooranim
diff --git a/data/maps/BattleFrontier_BattleFactoryBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleFactoryBattleRoom/scripts.inc
index ab3ea4d7c..4298f7579 100644
--- a/data/maps/BattleFrontier_BattleFactoryBattleRoom/scripts.inc
+++ b/data/maps/BattleFrontier_BattleFactoryBattleRoom/scripts.inc
@@ -55,7 +55,7 @@ BattleFrontier_BattleFactoryBattleRoom_EventScript_25AE3B:: @ 825AE3B
closemessage
applymovement 2, BattleFrontier_BattleFactoryBattleRoom_Movement_25B18B
applymovement 8, BattleFrontier_BattleFactoryBattleRoom_Movement_25B17B
- applymovement 255, BattleFrontier_BattleFactoryBattleRoom_Movement_25B17B
+ applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleFactoryBattleRoom_Movement_25B17B
waitmovement 0
call BattleFrontier_BattleFactoryBattleRoom_EventScript_25B1B4
goto BattleFrontier_BattleFactoryBattleRoom_EventScript_25AEA7
@@ -65,7 +65,7 @@ BattleFrontier_BattleFactoryBattleRoom_EventScript_25AE67:: @ 825AE67
compare VAR_TEMP_F, 0
goto_if 5, BattleFrontier_BattleFactoryBattleRoom_EventScript_25AE3B
applymovement 8, BattleFrontier_BattleFactoryBattleRoom_Movement_25B17B
- applymovement 255, BattleFrontier_BattleFactoryBattleRoom_Movement_25B17B
+ applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleFactoryBattleRoom_Movement_25B17B
waitmovement 0
call BattleFrontier_BattleFactoryBattleRoom_EventScript_25B1B4
setvar VAR_0x8004, 11
diff --git a/data/maps/BattleFrontier_BattleFactoryLobby/scripts.inc b/data/maps/BattleFrontier_BattleFactoryLobby/scripts.inc
index b387fc048..ab6e3ee84 100644
--- a/data/maps/BattleFrontier_BattleFactoryLobby/scripts.inc
+++ b/data/maps/BattleFrontier_BattleFactoryLobby/scripts.inc
@@ -223,7 +223,7 @@ BattleFrontier_BattleFactoryLobby_EventScript_25871A:: @ 825871A
compare VAR_FRONTIER_BATTLE_MODE, 1
call_if 1, BattleFrontier_BattleFactoryLobby_EventScript_258762
applymovement VAR_LAST_TALKED, BattleFrontier_BattleFactoryLobby_Movement_2587A7
- applymovement 255, BattleFrontier_BattleFactoryLobby_Movement_2587AC
+ applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleFactoryLobby_Movement_2587AC
waitmovement 0
warp MAP_BATTLE_FRONTIER_BATTLE_FACTORY_PRE_BATTLE_ROOM, 255, 8, 13
setvar VAR_TEMP_0, 0
diff --git a/data/maps/BattleFrontier_BattleFactoryPreBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleFactoryPreBattleRoom/scripts.inc
index a212ce38f..683b633ff 100644
--- a/data/maps/BattleFrontier_BattleFactoryPreBattleRoom/scripts.inc
+++ b/data/maps/BattleFrontier_BattleFactoryPreBattleRoom/scripts.inc
@@ -27,7 +27,7 @@ BattleFrontier_BattleFactoryPreBattleRoom_EventScript_259AF9:: @ 8259AF9
goto_eq BattleFrontier_BattleFactoryPreBattleRoom_EventScript_259BA5
setvar VAR_TEMP_0, 1
applymovement 1, BattleFrontier_BattleFactoryPreBattleRoom_Movement_25A1AC
- applymovement 255, BattleFrontier_BattleFactoryPreBattleRoom_Movement_25A19A
+ applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleFactoryPreBattleRoom_Movement_25A19A
waitmovement 0
compare VAR_0x8006, 2
goto_eq BattleFrontier_BattleFactoryPreBattleRoom_EventScript_259E69
@@ -448,12 +448,12 @@ BattleFrontier_BattleFactoryPreBattleRoom_EventScript_25A146:: @ 825A146
BattleFrontier_BattleFactoryPreBattleRoom_EventScript_25A17C:: @ 825A17C
applymovement 1, BattleFrontier_BattleFactoryPreBattleRoom_Movement_25A1B3
- applymovement 255, BattleFrontier_BattleFactoryPreBattleRoom_Movement_25A1A0
+ applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleFactoryPreBattleRoom_Movement_25A1A0
return
BattleFrontier_BattleFactoryPreBattleRoom_EventScript_25A18B:: @ 825A18B
applymovement 1, BattleFrontier_BattleFactoryPreBattleRoom_Movement_25A1B9
- applymovement 255, BattleFrontier_BattleFactoryPreBattleRoom_Movement_25A1A6
+ applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleFactoryPreBattleRoom_Movement_25A1A6
return
BattleFrontier_BattleFactoryPreBattleRoom_Movement_25A19A: @ 825A19A
diff --git a/data/maps/BattleFrontier_BattlePalaceBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattlePalaceBattleRoom/scripts.inc
index ccada959e..c377d9580 100644
--- a/data/maps/BattleFrontier_BattlePalaceBattleRoom/scripts.inc
+++ b/data/maps/BattleFrontier_BattlePalaceBattleRoom/scripts.inc
@@ -357,7 +357,7 @@ BattleFrontier_BattlePalaceBattleRoom_EventScript_24FE3E:: @ 824FE3E
hideobjectat 1, MAP_BATTLE_FRONTIER_BATTLE_PALACE_BATTLE_ROOM
call BattleFrontier_BattlePalaceBattleRoom_EventScript_24F833
setvar VAR_TEMP_1, 1
- applymovement 255, BattleFrontier_BattlePalaceBattleRoom_Movement_24FE90
+ applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattlePalaceBattleRoom_Movement_24FE90
removeobject 2
applymovement 4, BattleFrontier_BattlePalaceBattleRoom_Movement_24FE90
applymovement 5, BattleFrontier_BattlePalaceBattleRoom_Movement_24FE90
diff --git a/data/maps/BattleFrontier_BattlePalaceCorridor/scripts.inc b/data/maps/BattleFrontier_BattlePalaceCorridor/scripts.inc
index 199a67fa6..98c6f8092 100644
--- a/data/maps/BattleFrontier_BattlePalaceCorridor/scripts.inc
+++ b/data/maps/BattleFrontier_BattlePalaceCorridor/scripts.inc
@@ -9,7 +9,7 @@ BattleFrontier_BattlePalaceCorridor_MapScript2_24F4A9: @ 824F4A9
BattleFrontier_BattlePalaceCorridor_EventScript_24F4B3:: @ 824F4B3
delay 16
applymovement 1, BattleFrontier_BattlePalaceCorridor_Movement_24F5B8
- applymovement 255, BattleFrontier_BattlePalaceCorridor_Movement_24F5B8
+ applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattlePalaceCorridor_Movement_24F5B8
waitmovement 0
lockall
setvar VAR_0x8004, 3
@@ -31,12 +31,12 @@ BattleFrontier_BattlePalaceCorridor_EventScript_24F4B3:: @ 824F4B3
compare VAR_RESULT, 1
goto_eq BattleFrontier_BattlePalaceCorridor_EventScript_24F553
applymovement 1, BattleFrontier_BattlePalaceCorridor_Movement_24F5BD
- applymovement 255, BattleFrontier_BattlePalaceCorridor_Movement_24F5C4
+ applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattlePalaceCorridor_Movement_24F5C4
waitmovement 0
opendoor 6, 3
waitdooranim
applymovement 1, BattleFrontier_BattlePalaceCorridor_Movement_24F5DA
- applymovement 255, BattleFrontier_BattlePalaceCorridor_Movement_24F5D9
+ applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattlePalaceCorridor_Movement_24F5D9
waitmovement 0
closedoor 6, 3
waitdooranim
@@ -44,12 +44,12 @@ BattleFrontier_BattlePalaceCorridor_EventScript_24F4B3:: @ 824F4B3
BattleFrontier_BattlePalaceCorridor_EventScript_24F553:: @ 824F553
applymovement 1, BattleFrontier_BattlePalaceCorridor_Movement_24F5CB
- applymovement 255, BattleFrontier_BattlePalaceCorridor_Movement_24F5D2
+ applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattlePalaceCorridor_Movement_24F5D2
waitmovement 0
opendoor 10, 3
waitdooranim
applymovement 1, BattleFrontier_BattlePalaceCorridor_Movement_24F5DA
- applymovement 255, BattleFrontier_BattlePalaceCorridor_Movement_24F5D9
+ applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattlePalaceCorridor_Movement_24F5D9
waitmovement 0
closedoor 10, 3
waitdooranim
diff --git a/data/maps/BattleFrontier_BattlePalaceLobby/scripts.inc b/data/maps/BattleFrontier_BattlePalaceLobby/scripts.inc
index c81331ddc..223dbc45a 100644
--- a/data/maps/BattleFrontier_BattlePalaceLobby/scripts.inc
+++ b/data/maps/BattleFrontier_BattlePalaceLobby/scripts.inc
@@ -303,7 +303,7 @@ BattleFrontier_BattlePalaceLobby_EventScript_24DBBC:: @ 824DBBC
compare VAR_FRONTIER_BATTLE_MODE, 1
call_if 1, BattleFrontier_BattlePalaceLobby_EventScript_24DC29
applymovement VAR_LAST_TALKED, BattleFrontier_BattlePalaceLobby_Movement_24DC47
- applymovement 255, BattleFrontier_BattlePalaceLobby_Movement_24DC47
+ applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattlePalaceLobby_Movement_24DC47
waitmovement 0
compare VAR_FRONTIER_BATTLE_MODE, 0
call_if 1, BattleFrontier_BattlePalaceLobby_EventScript_24DC2F
@@ -311,7 +311,7 @@ BattleFrontier_BattlePalaceLobby_EventScript_24DBBC:: @ 824DBBC
call_if 1, BattleFrontier_BattlePalaceLobby_EventScript_24DC35
waitdooranim
applymovement VAR_LAST_TALKED, BattleFrontier_BattlePalaceLobby_Movement_24DC49
- applymovement 255, BattleFrontier_BattlePalaceLobby_Movement_24DC4C
+ applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattlePalaceLobby_Movement_24DC4C
waitmovement 0
compare VAR_FRONTIER_BATTLE_MODE, 0
call_if 1, BattleFrontier_BattlePalaceLobby_EventScript_24DC3B
diff --git a/data/maps/BattleFrontier_BattlePikeCorridor/scripts.inc b/data/maps/BattleFrontier_BattlePikeCorridor/scripts.inc
index 0a0df3636..7793fcbc2 100644
--- a/data/maps/BattleFrontier_BattlePikeCorridor/scripts.inc
+++ b/data/maps/BattleFrontier_BattlePikeCorridor/scripts.inc
@@ -18,14 +18,14 @@ BattleFrontier_BattlePikeCorridor_EventScript_25C786:: @ 825C786
setvar VAR_0x8004, 24
setvar VAR_0x8005, 1
special CallBattlePikeFunction
- applymovement 255, BattleFrontier_BattlePikeCorridor_Movement_25C80B
+ applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattlePikeCorridor_Movement_25C80B
applymovement 1, BattleFrontier_BattlePikeCorridor_Movement_25C812
waitmovement 0
lockall
msgbox BattleFrontier_BattlePikeCorridor_Text_25C817, MSGBOX_DEFAULT
closemessage
releaseall
- applymovement 255, BattleFrontier_BattlePikeCorridor_Movement_25C80E
+ applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattlePikeCorridor_Movement_25C80E
waitmovement 0
setvar VAR_0x8004, 2
setvar VAR_0x8005, 0
diff --git a/data/maps/BattleFrontier_BattlePikeLobby/scripts.inc b/data/maps/BattleFrontier_BattlePikeLobby/scripts.inc
index e4f3e1a6e..82ff5b3ae 100644
--- a/data/maps/BattleFrontier_BattlePikeLobby/scripts.inc
+++ b/data/maps/BattleFrontier_BattlePikeLobby/scripts.inc
@@ -263,7 +263,7 @@ BattleFrontier_BattlePikeLobby_EventScript_25BA80:: @ 825BA80
BattleFrontier_BattlePikeLobby_EventScript_25BA94:: @ 825BA94
applymovement 1, BattleFrontier_BattlePikeLobby_Movement_25BAA7
- applymovement 255, BattleFrontier_BattlePikeLobby_Movement_25BAA6
+ applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattlePikeLobby_Movement_25BAA6
waitmovement 0
return
diff --git a/data/maps/BattleFrontier_BattlePikeRandomRoom1/scripts.inc b/data/maps/BattleFrontier_BattlePikeRandomRoom1/scripts.inc
index 79a10880a..eea909b9c 100644
--- a/data/maps/BattleFrontier_BattlePikeRandomRoom1/scripts.inc
+++ b/data/maps/BattleFrontier_BattlePikeRandomRoom1/scripts.inc
@@ -112,8 +112,8 @@ BattleFrontier_BattlePikeRandomRoom1_EventScript_25D2BF:: @ 825D2BF
BattleFrontier_BattlePikeRandomRoom1_EventScript_25D2FB:: @ 825D2FB
msgbox BattleFrontier_BattlePikeRandomRoom1_Text_25E311, MSGBOX_DEFAULT
closemessage
- special SpawnScriptEventObject
- applymovement 127, BattleFrontier_BattlePikeRandomRoom1_Movement_25D9B0
+ special SpawnCameraObject
+ applymovement EVENT_OBJ_ID_CAMERA, BattleFrontier_BattlePikeRandomRoom1_Movement_25D9B0
applymovement 2, BattleFrontier_BattlePikeRandomRoom1_Movement_25D7E2
waitmovement 0
playse 267
@@ -215,7 +215,7 @@ BattleFrontier_BattlePikeRandomRoom1_EventScript_25D460:: @ 825D460
BattleFrontier_BattlePikeRandomRoom1_EventScript_25D49D:: @ 825D49D
applymovement 1, BattleFrontier_BattlePikeRandomRoom1_Movement_25D7EA
waitmovement 0
- applymovement 255, BattleFrontier_BattlePikeRandomRoom1_Movement_25D7DC
+ applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattlePikeRandomRoom1_Movement_25D7DC
waitmovement 0
setvar VAR_0x8004, 1
setvar VAR_0x8005, 1
@@ -277,7 +277,7 @@ BattleFrontier_BattlePikeRandomRoom1_EventScript_25D53E:: @ 825D53E
applymovement 1, BattleFrontier_BattlePikeRandomRoom1_Movement_25D7C8
applymovement 2, BattleFrontier_BattlePikeRandomRoom1_Movement_25D7CA
waitmovement 0
- applymovement 255, BattleFrontier_BattlePikeRandomRoom1_Movement_25D7BB
+ applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattlePikeRandomRoom1_Movement_25D7BB
waitmovement 0
setvar VAR_0x8004, 21
setvar VAR_0x8005, 0
@@ -285,7 +285,7 @@ BattleFrontier_BattlePikeRandomRoom1_EventScript_25D53E:: @ 825D53E
msgbox gStringVar4, MSGBOX_DEFAULT
closemessage
delay 16
- applymovement 255, BattleFrontier_BattlePikeRandomRoom1_Movement_25D7BD
+ applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattlePikeRandomRoom1_Movement_25D7BD
waitmovement 0
setvar VAR_0x8004, 21
setvar VAR_0x8005, 1
@@ -302,13 +302,13 @@ BattleFrontier_BattlePikeRandomRoom1_EventScript_25D53E:: @ 825D53E
end
BattleFrontier_BattlePikeRandomRoom1_EventScript_25D5DC:: @ 825D5DC
- applymovement 255, BattleFrontier_BattlePikeRandomRoom1_Movement_25D7BD
+ applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattlePikeRandomRoom1_Movement_25D7BD
waitmovement 0
applymovement 1, BattleFrontier_BattlePikeRandomRoom1_Movement_25D7CC
waitmovement 0
applymovement 2, BattleFrontier_BattlePikeRandomRoom1_Movement_25D7D4
waitmovement 0
- applymovement 255, BattleFrontier_BattlePikeRandomRoom1_Movement_25D7BF
+ applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattlePikeRandomRoom1_Movement_25D7BF
waitmovement 0
end
@@ -431,7 +431,7 @@ BattleFrontier_BattlePikeRandomRoom1_EventScript_25D774:: @ 825D774
BattleFrontier_BattlePikeRandomRoom1_EventScript_25D77B:: @ 825D77B
closemessage
- applymovement 255, BattleFrontier_BattlePikeRandomRoom1_Movement_25D7DC
+ applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattlePikeRandomRoom1_Movement_25D7DC
waitmovement 0
setvar VAR_0x8004, SPECIAL_BATTLE_PIKE_SINGLE
setvar VAR_0x8005, 0
diff --git a/data/maps/BattleFrontier_BattlePyramidLobby/scripts.inc b/data/maps/BattleFrontier_BattlePyramidLobby/scripts.inc
index d890b2d06..c2c32e0b1 100644
--- a/data/maps/BattleFrontier_BattlePyramidLobby/scripts.inc
+++ b/data/maps/BattleFrontier_BattlePyramidLobby/scripts.inc
@@ -434,7 +434,7 @@ BattleFrontier_BattlePyramidLobby_EventScript_250D42:: @ 8250D42
BattleFrontier_BattlePyramidLobby_EventScript_250D56:: @ 8250D56
applymovement 1, BattleFrontier_BattlePyramidLobby_Movement_250DC4
- applymovement 255, BattleFrontier_BattlePyramidLobby_Movement_250DCD
+ applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattlePyramidLobby_Movement_250DCD
waitmovement 0
msgbox BattleFrontier_BattlePyramidLobby_Text_251569, MSGBOX_DEFAULT
setvar VAR_0x8004, 1
@@ -457,7 +457,7 @@ BattleFrontier_BattlePyramidLobby_EventScript_250D9C:: @ 8250D9C
closemessage
applymovement 1, BattleFrontier_BattlePyramidLobby_Movement_250DD5
waitmovement 0
- applymovement 255, BattleFrontier_BattlePyramidLobby_Movement_250DD8
+ applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattlePyramidLobby_Movement_250DD8
waitmovement 0
return
diff --git a/data/maps/BattleFrontier_BattlePyramidTop/scripts.inc b/data/maps/BattleFrontier_BattlePyramidTop/scripts.inc
index d7a1a3c3b..a3a004d6b 100644
--- a/data/maps/BattleFrontier_BattlePyramidTop/scripts.inc
+++ b/data/maps/BattleFrontier_BattlePyramidTop/scripts.inc
@@ -96,7 +96,7 @@ BattleFrontier_BattlePyramidTop_EventScript_2551D0:: @ 82551D0
closemessage
applymovement 1, BattleFrontier_BattlePyramidTop_Movement_2553FD
waitmovement 0
- applymovement 255, BattleFrontier_BattlePyramidTop_Movement_255403
+ applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattlePyramidTop_Movement_255403
waitmovement 0
applymovement 1, BattleFrontier_BattlePyramidTop_Movement_255400
waitmovement 0
@@ -138,8 +138,8 @@ BattleFrontier_BattlePyramidTop_EventScript_255256:: @ 8255256
special CallFrontierUtilFunc
compare VAR_RESULT, 0
goto_if 5, BattleFrontier_BattlePyramidTop_EventScript_2552D0
- special SpawnScriptEventObject
- applymovement 127, BattleFrontier_BattlePyramidTop_Movement_25540C
+ special SpawnCameraObject
+ applymovement EVENT_OBJ_ID_CAMERA, BattleFrontier_BattlePyramidTop_Movement_25540C
waitmovement 0
msgbox BattleFrontier_BattlePyramidTop_Text_255669, MSGBOX_DEFAULT
closemessage
@@ -185,8 +185,8 @@ BattleFrontier_BattlePyramidTop_EventScript_255335:: @ 8255335
special CallFrontierUtilFunc
compare VAR_RESULT, 0
goto_if 5, BattleFrontier_BattlePyramidTop_EventScript_255388
- special SpawnScriptEventObject
- applymovement 127, BattleFrontier_BattlePyramidTop_Movement_25540C
+ special SpawnCameraObject
+ applymovement EVENT_OBJ_ID_CAMERA, BattleFrontier_BattlePyramidTop_Movement_25540C
waitmovement 0
msgbox BattleFrontier_BattlePyramidTop_Text_255951, MSGBOX_DEFAULT
closemessage
diff --git a/data/maps/BattleFrontier_BattleTowerBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleTowerBattleRoom/scripts.inc
index 83b78d40e..d8e3d3ce6 100644
--- a/data/maps/BattleFrontier_BattleTowerBattleRoom/scripts.inc
+++ b/data/maps/BattleFrontier_BattleTowerBattleRoom/scripts.inc
@@ -18,7 +18,7 @@ BattleFrontier_BattleTowerBattleRoom_MapScript2_241B62: @ 8241B62
BattleFrontier_BattleTowerBattleRoom_EventScript_241B6C:: @ 8241B6C
setvar VAR_TEMP_0, 1
- applymovement 255, BattleFrontier_BattleTowerBattleRoom_Movement_242179
+ applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleTowerBattleRoom_Movement_242179
waitmovement 0
setvar VAR_0x8004, 1
setvar VAR_0x8005, 2
@@ -27,7 +27,7 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_241B6C:: @ 8241B6C
goto_eq BattleFrontier_BattleTowerBattleRoom_EventScript_241BC3
applymovement 2, BattleFrontier_BattleTowerBattleRoom_Movement_24218D
waitmovement 0
- applymovement 255, BattleFrontier_BattleTowerBattleRoom_Movement_24217E
+ applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleTowerBattleRoom_Movement_24217E
waitmovement 0
setvar VAR_TEMP_2, 1
setvar VAR_0x8004, 2
@@ -79,7 +79,7 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_241C2F:: @ 8241C2F
call_if 5, BattleFrontier_BattleTowerBattleRoom_EventScript_241EC3
applymovement 2, BattleFrontier_BattleTowerBattleRoom_Movement_24218D
waitmovement 0
- applymovement 255, BattleFrontier_BattleTowerBattleRoom_Movement_24217E
+ applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleTowerBattleRoom_Movement_24217E
waitmovement 0
msgbox BattleFrontier_BattleTowerBattleRoom_Text_242217, MSGBOX_DEFAULT
playfanfare MUS_ME_ASA
@@ -146,7 +146,7 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_241DAA:: @ 8241DAA
BattleFrontier_BattleTowerBattleRoom_EventScript_241DDC:: @ 8241DDC
closemessage
- applymovement 255, BattleFrontier_BattleTowerBattleRoom_Movement_242180
+ applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleTowerBattleRoom_Movement_242180
waitmovement 0
applymovement 2, BattleFrontier_BattleTowerBattleRoom_Movement_242192
waitmovement 0
@@ -275,7 +275,7 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_241F79:: @ 8241F79
BattleFrontier_BattleTowerBattleRoom_EventScript_241FAF:: @ 8241FAF
call BattleFrontier_BattleTowerBattleRoom_EventScript_242170
closemessage
- applymovement 255, BattleFrontier_BattleTowerBattleRoom_Movement_242180
+ applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleTowerBattleRoom_Movement_242180
waitmovement 0
applymovement 2, BattleFrontier_BattleTowerBattleRoom_Movement_242192
waitmovement 0
diff --git a/data/maps/BattleFrontier_BattleTowerCorridor/scripts.inc b/data/maps/BattleFrontier_BattleTowerCorridor/scripts.inc
index 9ff6bbc59..b0a9624f8 100644
--- a/data/maps/BattleFrontier_BattleTowerCorridor/scripts.inc
+++ b/data/maps/BattleFrontier_BattleTowerCorridor/scripts.inc
@@ -24,13 +24,13 @@ BattleFrontier_BattleTowerCorridor_EventScript_241AF0:: @ 8241AF0
compare VAR_0x8006, 1
goto_eq BattleFrontier_BattleTowerCorridor_EventScript_241B16
applymovement 1, BattleFrontier_BattleTowerCorridor_Movement_241B3A
- applymovement 255, BattleFrontier_BattleTowerCorridor_Movement_241B39
+ applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleTowerCorridor_Movement_241B39
waitmovement 0
goto BattleFrontier_BattleTowerCorridor_EventScript_241B27
BattleFrontier_BattleTowerCorridor_EventScript_241B16:: @ 8241B16
applymovement 1, BattleFrontier_BattleTowerCorridor_Movement_241B37
- applymovement 255, BattleFrontier_BattleTowerCorridor_Movement_241B36
+ applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleTowerCorridor_Movement_241B36
waitmovement 0
BattleFrontier_BattleTowerCorridor_EventScript_241B27:: @ 8241B27
diff --git a/data/maps/BattleFrontier_BattleTowerElevator/scripts.inc b/data/maps/BattleFrontier_BattleTowerElevator/scripts.inc
index 968d45772..aa0fa97ff 100644
--- a/data/maps/BattleFrontier_BattleTowerElevator/scripts.inc
+++ b/data/maps/BattleFrontier_BattleTowerElevator/scripts.inc
@@ -10,7 +10,7 @@ BattleFrontier_BattleTowerElevator_MapScript2_2419E6: @ 82419E6
BattleFrontier_BattleTowerElevator_EventScript_2419F0:: @ 82419F0
setvar VAR_TEMP_0, 1
applymovement 1, BattleFrontier_BattleTowerElevator_Movement_241A86
- applymovement 255, BattleFrontier_BattleTowerElevator_Movement_241A8A
+ applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleTowerElevator_Movement_241A8A
waitmovement 0
special sub_813A080
waitse
@@ -18,7 +18,7 @@ BattleFrontier_BattleTowerElevator_EventScript_2419F0:: @ 82419F0
waitstate
delay 48
applymovement 1, BattleFrontier_BattleTowerElevator_Movement_241A8E
- applymovement 255, BattleFrontier_BattleTowerElevator_Movement_241A92
+ applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleTowerElevator_Movement_241A92
waitmovement 0
call BattleFrontier_BattleTowerElevator_EventScript_241A28
end
diff --git a/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc b/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc
index 0911ea5f2..ec649dd9f 100644
--- a/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc
+++ b/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc
@@ -769,12 +769,12 @@ BattleFrontier_BattleTowerLobby_EventScript_23F15B:: @ 823F15B
call BattleFrontier_BattleTowerLobby_EventScript_23F1E8
call BattleFrontier_BattleTowerLobby_EventScript_23F22D
applymovement VAR_LAST_TALKED, BattleFrontier_BattleTowerLobby_Movement_23F195
- applymovement 255, BattleFrontier_BattleTowerLobby_Movement_23F195
+ applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleTowerLobby_Movement_23F195
waitmovement 0
opendoor VAR_0x8004, 1
waitdooranim
applymovement VAR_LAST_TALKED, BattleFrontier_BattleTowerLobby_Movement_23F199
- applymovement 255, BattleFrontier_BattleTowerLobby_Movement_23F19C
+ applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleTowerLobby_Movement_23F19C
waitmovement 0
closedoor VAR_0x8004, 1
waitdooranim
diff --git a/data/maps/BattleFrontier_BattleTowerMultiBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleTowerMultiBattleRoom/scripts.inc
index b0c35a7fc..03bb7be63 100644
--- a/data/maps/BattleFrontier_BattleTowerMultiBattleRoom/scripts.inc
+++ b/data/maps/BattleFrontier_BattleTowerMultiBattleRoom/scripts.inc
@@ -60,12 +60,12 @@ BattleFrontier_BattleTowerMultiBattleRoom_EventScript_243E35:: @ 8243E35
BattleFrontier_BattleTowerMultiBattleRoom_EventScript_243E41:: @ 8243E41
lockall
- applymovement 255, BattleFrontier_BattleTowerMultiBattleRoom_Movement_243E75
+ applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleTowerMultiBattleRoom_Movement_243E75
waitmovement 0
applymovement 1, BattleFrontier_BattleTowerMultiBattleRoom_Movement_243E77
waitmovement 0
moveobjectoffscreen 1
- applymovement 255, BattleFrontier_BattleTowerMultiBattleRoom_Movement_2725A6
+ applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleTowerMultiBattleRoom_Movement_2725A6
waitmovement 0
msgbox BattleFrontier_BattleTowerMultiBattleRoom_Text_244056, MSGBOX_DEFAULT
special HealPlayerParty
@@ -119,19 +119,19 @@ BattleFrontier_BattleTowerMultiBattleRoom_EventScript_243EB5:: @ 8243EB5
BattleFrontier_BattleTowerMultiBattleRoom_EventScript_243EE4:: @ 8243EE4
applymovement 1, BattleFrontier_BattleTowerMultiBattleRoom_Movement_243F26
- applymovement 255, BattleFrontier_BattleTowerMultiBattleRoom_Movement_243F1A
+ applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleTowerMultiBattleRoom_Movement_243F1A
waitmovement 0
return
BattleFrontier_BattleTowerMultiBattleRoom_EventScript_243EF6: @ 8243EF6
applymovement 1, BattleFrontier_BattleTowerMultiBattleRoom_Movement_243F26
- applymovement 255, BattleFrontier_BattleTowerMultiBattleRoom_Movement_243F1E
+ applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleTowerMultiBattleRoom_Movement_243F1E
waitmovement 0
return
BattleFrontier_BattleTowerMultiBattleRoom_EventScript_243F08: @ 8243F08
applymovement 1, BattleFrontier_BattleTowerMultiBattleRoom_Movement_243F26
- applymovement 255, BattleFrontier_BattleTowerMultiBattleRoom_Movement_243F22
+ applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleTowerMultiBattleRoom_Movement_243F22
waitmovement 0
return
diff --git a/data/maps/BattleFrontier_ReceptionGate/scripts.inc b/data/maps/BattleFrontier_ReceptionGate/scripts.inc
index 30f3a10d5..5ed97bd60 100644
--- a/data/maps/BattleFrontier_ReceptionGate/scripts.inc
+++ b/data/maps/BattleFrontier_ReceptionGate/scripts.inc
@@ -21,7 +21,7 @@ BattleFrontier_ReceptionGate_EventScript_2661F3:: @ 82661F3
waitmovement 0
msgbox BattleFrontier_ReceptionGate_Text_266580, MSGBOX_DEFAULT
closemessage
- applymovement 255, BattleFrontier_ReceptionGate_Movement_2662D2
+ applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_ReceptionGate_Movement_2662D2
waitmovement 0
goto BattleFrontier_ReceptionGate_EventScript_266229
end
@@ -40,18 +40,18 @@ BattleFrontier_ReceptionGate_EventScript_266229:: @ 8266229
closemessage
applymovement 1, BattleFrontier_ReceptionGate_Movement_2725A6
applymovement 2, BattleFrontier_ReceptionGate_Movement_2725A6
- applymovement 255, BattleFrontier_ReceptionGate_Movement_2725A6
+ applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_ReceptionGate_Movement_2725A6
waitmovement 0
playse SE_PIN
applymovement 1, BattleFrontier_ReceptionGate_Movement_272598
applymovement 2, BattleFrontier_ReceptionGate_Movement_272598
- applymovement 255, BattleFrontier_ReceptionGate_Movement_272598
+ applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_ReceptionGate_Movement_272598
waitmovement 0
msgbox BattleFrontier_ReceptionGate_Text_266733, MSGBOX_DEFAULT
closemessage
applymovement 1, BattleFrontier_ReceptionGate_Movement_2662F0
applymovement 2, BattleFrontier_ReceptionGate_Movement_2662F6
- applymovement 255, BattleFrontier_ReceptionGate_Movement_2662D7
+ applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_ReceptionGate_Movement_2662D7
applymovement 4, BattleFrontier_ReceptionGate_Movement_2662E0
waitmovement 0
msgbox BattleFrontier_ReceptionGate_Text_266764, MSGBOX_DEFAULT
diff --git a/data/maps/DewfordTown/scripts.inc b/data/maps/DewfordTown/scripts.inc
index 41abdcede..66e2bb9f9 100644
--- a/data/maps/DewfordTown/scripts.inc
+++ b/data/maps/DewfordTown/scripts.inc
@@ -123,16 +123,16 @@ DewfordTown_EventScript_1E9660:: @ 81E9660
applymovement 2, DewfordTown_Movement_1E991D
waitmovement 0
removeobject 2
- applymovement 255, DewfordTown_Movement_1E9911
+ applymovement EVENT_OBJ_ID_PLAYER, DewfordTown_Movement_1E9911
waitmovement 0
hideobjectat 255, MAP_DEWFORD_TOWN
call DewfordTown_EventScript_2720A0
applymovement 4, DewfordTown_Movement_1E97A2
- applymovement 255, DewfordTown_Movement_1E97A2
+ applymovement EVENT_OBJ_ID_PLAYER, DewfordTown_Movement_1E97A2
waitmovement 0
showobjectat 255, MAP_ROUTE104
call DewfordTown_EventScript_2720A8
- applymovement 255, DewfordTown_Movement_1E9914
+ applymovement EVENT_OBJ_ID_PLAYER, DewfordTown_Movement_1E9914
waitmovement 0
showobjectat 255, MAP_ROUTE104
clearflag FLAG_HIDE_BRINEYS_HOUSE_MR_BRINEY
@@ -155,16 +155,16 @@ DewfordTown_EventScript_1E96E7:: @ 81E96E7
applymovement 2, DewfordTown_Movement_1E991D
waitmovement 0
removeobject 2
- applymovement 255, DewfordTown_Movement_1E9911
+ applymovement EVENT_OBJ_ID_PLAYER, DewfordTown_Movement_1E9911
waitmovement 0
hideobjectat 255, MAP_DEWFORD_TOWN
call DewfordTown_EventScript_2720A0
applymovement 4, DewfordTown_Movement_1E9865
- applymovement 255, DewfordTown_Movement_1E9865
+ applymovement EVENT_OBJ_ID_PLAYER, DewfordTown_Movement_1E9865
waitmovement 0
call DewfordTown_EventScript_2720A8
showobjectat 255, MAP_ROUTE109
- applymovement 255, DewfordTown_Movement_1E9918
+ applymovement EVENT_OBJ_ID_PLAYER, DewfordTown_Movement_1E9918
waitmovement 0
setobjectxyperm 2, 21, 26
addobject 2
diff --git a/data/maps/DewfordTown_Hall/scripts.inc b/data/maps/DewfordTown_Hall/scripts.inc
index bec9826f3..3a75fca12 100644
--- a/data/maps/DewfordTown_Hall/scripts.inc
+++ b/data/maps/DewfordTown_Hall/scripts.inc
@@ -200,7 +200,7 @@ DewfordTown_Hall_EventScript_1FD73A:: @ 81FD73A
DewfordTown_Hall_EventScript_1FD75B:: @ 81FD75B
compare VAR_FACING, 4
goto_eq DewfordTown_Hall_EventScript_1FD739
- applymovement 255, DewfordTown_Hall_Movement_2725A8
+ applymovement EVENT_OBJ_ID_PLAYER, DewfordTown_Hall_Movement_2725A8
waitmovement 0
return
@@ -224,19 +224,19 @@ DewfordTown_Hall_EventScript_1FD793:: @ 81FD793
return
DewfordTown_Hall_EventScript_1FD7AA:: @ 81FD7AA
- applymovement 255, DewfordTown_Hall_Movement_2725A6
+ applymovement EVENT_OBJ_ID_PLAYER, DewfordTown_Hall_Movement_2725A6
waitmovement 0
return
DewfordTown_Hall_EventScript_1FD7B5:: @ 81FD7B5
- applymovement 255, DewfordTown_Hall_Movement_2725AA
+ applymovement EVENT_OBJ_ID_PLAYER, DewfordTown_Hall_Movement_2725AA
waitmovement 0
return
DewfordTown_Hall_EventScript_1FD7C0:: @ 81FD7C0
compare VAR_FACING, 3
goto_eq DewfordTown_Hall_EventScript_1FD739
- applymovement 255, DewfordTown_Hall_Movement_2725A4
+ applymovement EVENT_OBJ_ID_PLAYER, DewfordTown_Hall_Movement_2725A4
waitmovement 0
return
diff --git a/data/maps/EverGrandeCity_ChampionsRoom/scripts.inc b/data/maps/EverGrandeCity_ChampionsRoom/scripts.inc
index 250a3012b..4b51399eb 100644
--- a/data/maps/EverGrandeCity_ChampionsRoom/scripts.inc
+++ b/data/maps/EverGrandeCity_ChampionsRoom/scripts.inc
@@ -22,10 +22,10 @@ EverGrandeCity_ChampionsRoom_MapScript2_228A14: @ 8228A14
EverGrandeCity_ChampionsRoom_EventScript_228A1E:: @ 8228A1E
lockall
- applymovement 255, EverGrandeCity_ChampionsRoom_Movement_2725C1
+ applymovement EVENT_OBJ_ID_PLAYER, EverGrandeCity_ChampionsRoom_Movement_2725C1
waitmovement 0
delay 40
- applymovement 255, EverGrandeCity_ChampionsRoom_Movement_228A42
+ applymovement EVENT_OBJ_ID_PLAYER, EverGrandeCity_ChampionsRoom_Movement_228A42
waitmovement 0
setvar VAR_TEMP_1, 1
goto EverGrandeCity_ChampionsRoom_EventScript_228A45
@@ -105,7 +105,7 @@ EverGrandeCity_ChampionsRoom_EventScript_228B30:: @ 8228B30
addobject 3
applymovement 3, EverGrandeCity_ChampionsRoom_Movement_228C43
waitmovement 0
- applymovement 255, EverGrandeCity_ChampionsRoom_Movement_2725A8
+ applymovement EVENT_OBJ_ID_PLAYER, EverGrandeCity_ChampionsRoom_Movement_2725A8
waitmovement 0
msgbox EverGrandeCity_ChampionsRoom_Text_2291E6, MSGBOX_DEFAULT
call EverGrandeCity_ChampionsRoom_EventScript_272184
@@ -119,12 +119,12 @@ EverGrandeCity_ChampionsRoom_EventScript_228B30:: @ 8228B30
closemessage
delay 30
applymovement 1, EverGrandeCity_ChampionsRoom_Movement_228C3B
- applymovement 255, EverGrandeCity_ChampionsRoom_Movement_228C1D
+ applymovement EVENT_OBJ_ID_PLAYER, EverGrandeCity_ChampionsRoom_Movement_228C1D
applymovement 3, EverGrandeCity_ChampionsRoom_Movement_2725A6
applymovement 2, EverGrandeCity_ChampionsRoom_Movement_228C38
waitmovement 0
delay 20
- applymovement 255, EverGrandeCity_ChampionsRoom_Movement_2725AA
+ applymovement EVENT_OBJ_ID_PLAYER, EverGrandeCity_ChampionsRoom_Movement_2725AA
waitmovement 0
msgbox EverGrandeCity_ChampionsRoom_Text_2293EB, MSGBOX_DEFAULT
checkplayergender
@@ -134,7 +134,7 @@ EverGrandeCity_ChampionsRoom_EventScript_228B30:: @ 8228B30
call_if 1, EverGrandeCity_ChampionsRoom_EventScript_228BF4
closemessage
applymovement 1, EverGrandeCity_ChampionsRoom_Movement_228C3F
- applymovement 255, EverGrandeCity_ChampionsRoom_Movement_228C20
+ applymovement EVENT_OBJ_ID_PLAYER, EverGrandeCity_ChampionsRoom_Movement_228C20
waitmovement 0
setflag FLAG_HIDE_PETALBURG_GYM_GREETER
warp MAP_EVER_GRANDE_CITY_HALL_OF_FAME, 255, 7, 16
@@ -153,7 +153,7 @@ EverGrandeCity_ChampionsRoom_EventScript_228BF4:: @ 8228BF4
EverGrandeCity_ChampionsRoom_EventScript_228BFD:: @ 8228BFD
applymovement 2, EverGrandeCity_ChampionsRoom_Movement_228C26
waitmovement 0
- applymovement 255, EverGrandeCity_ChampionsRoom_Movement_2725A4
+ applymovement EVENT_OBJ_ID_PLAYER, EverGrandeCity_ChampionsRoom_Movement_2725A4
waitmovement 0
return
diff --git a/data/maps/EverGrandeCity_HallOfFame/scripts.inc b/data/maps/EverGrandeCity_HallOfFame/scripts.inc
index 2a871e18f..5fd0ff139 100644
--- a/data/maps/EverGrandeCity_HallOfFame/scripts.inc
+++ b/data/maps/EverGrandeCity_HallOfFame/scripts.inc
@@ -18,24 +18,24 @@ EverGrandeCity_HallOfFame_MapScript2_229846: @ 8229846
EverGrandeCity_HallOfFame_EventScript_229850:: @ 8229850
lockall
applymovement 1, EverGrandeCity_HallOfFame_Movement_229901
- applymovement 255, EverGrandeCity_HallOfFame_Movement_229901
+ applymovement EVENT_OBJ_ID_PLAYER, EverGrandeCity_HallOfFame_Movement_229901
waitmovement 0
applymovement 1, EverGrandeCity_HallOfFame_Movement_2725A8
- applymovement 255, EverGrandeCity_HallOfFame_Movement_2725A4
+ applymovement EVENT_OBJ_ID_PLAYER, EverGrandeCity_HallOfFame_Movement_2725A4
waitmovement 0
msgbox EverGrandeCity_HallOfFame_Text_22990E, MSGBOX_DEFAULT
closemessage
applymovement 1, EverGrandeCity_HallOfFame_Movement_229908
- applymovement 255, EverGrandeCity_HallOfFame_Movement_229908
+ applymovement EVENT_OBJ_ID_PLAYER, EverGrandeCity_HallOfFame_Movement_229908
waitmovement 0
delay 20
applymovement 1, EverGrandeCity_HallOfFame_Movement_2725A8
- applymovement 255, EverGrandeCity_HallOfFame_Movement_2725A4
+ applymovement EVENT_OBJ_ID_PLAYER, EverGrandeCity_HallOfFame_Movement_2725A4
waitmovement 0
msgbox EverGrandeCity_HallOfFame_Text_2299A3, MSGBOX_DEFAULT
closemessage
applymovement 1, EverGrandeCity_HallOfFame_Movement_2725A6
- applymovement 255, EverGrandeCity_HallOfFame_Movement_2725A6
+ applymovement EVENT_OBJ_ID_PLAYER, EverGrandeCity_HallOfFame_Movement_2725A6
waitmovement 0
delay 20
dofieldeffect 62
diff --git a/data/maps/EverGrandeCity_PokemonLeague_1F/scripts.inc b/data/maps/EverGrandeCity_PokemonLeague_1F/scripts.inc
index 0f3f6c33e..bc27878ab 100644
--- a/data/maps/EverGrandeCity_PokemonLeague_1F/scripts.inc
+++ b/data/maps/EverGrandeCity_PokemonLeague_1F/scripts.inc
@@ -77,12 +77,12 @@ EverGrandeCity_PokemonLeague_1F_EventScript_229636:: @ 8229636
end
EverGrandeCity_PokemonLeague_1F_EventScript_229698:: @ 8229698
- applymovement 255, EverGrandeCity_PokemonLeague_1F_Movement_2296DA
+ applymovement EVENT_OBJ_ID_PLAYER, EverGrandeCity_PokemonLeague_1F_Movement_2296DA
waitmovement 0
return
EverGrandeCity_PokemonLeague_1F_EventScript_2296A3:: @ 82296A3
- applymovement 255, EverGrandeCity_PokemonLeague_1F_Movement_2296DE
+ applymovement EVENT_OBJ_ID_PLAYER, EverGrandeCity_PokemonLeague_1F_Movement_2296DE
waitmovement 0
return
diff --git a/data/maps/FallarborTown_BattleTentCorridor/scripts.inc b/data/maps/FallarborTown_BattleTentCorridor/scripts.inc
index d21216208..f3d0a924e 100644
--- a/data/maps/FallarborTown_BattleTentCorridor/scripts.inc
+++ b/data/maps/FallarborTown_BattleTentCorridor/scripts.inc
@@ -10,12 +10,12 @@ FallarborTown_BattleTentCorridor_EventScript_2006B7:: @ 82006B7
lockall
setvar VAR_TEMP_0, 1
applymovement 1, FallarborTown_BattleTentCorridor_Movement_2006FB
- applymovement 255, FallarborTown_BattleTentCorridor_Movement_2006FB
+ applymovement EVENT_OBJ_ID_PLAYER, FallarborTown_BattleTentCorridor_Movement_2006FB
waitmovement 0
opendoor 2, 1
waitdooranim
applymovement 1, FallarborTown_BattleTentCorridor_Movement_200701
- applymovement 255, FallarborTown_BattleTentCorridor_Movement_200700
+ applymovement EVENT_OBJ_ID_PLAYER, FallarborTown_BattleTentCorridor_Movement_200700
waitmovement 0
closedoor 2, 1
waitdooranim
diff --git a/data/maps/FallarborTown_BattleTentLobby/scripts.inc b/data/maps/FallarborTown_BattleTentLobby/scripts.inc
index aed9aa93f..abe8a9202 100644
--- a/data/maps/FallarborTown_BattleTentLobby/scripts.inc
+++ b/data/maps/FallarborTown_BattleTentLobby/scripts.inc
@@ -245,12 +245,12 @@ FallarborTown_BattleTentLobby_EventScript_2001CD:: @ 82001CD
FallarborTown_BattleTentLobby_EventScript_2001CF:: @ 82001CF
applymovement 1, FallarborTown_BattleTentLobby_Movement_2001FE
- applymovement 255, FallarborTown_BattleTentLobby_Movement_200205
+ applymovement EVENT_OBJ_ID_PLAYER, FallarborTown_BattleTentLobby_Movement_200205
waitmovement 0
opendoor 6, 1
waitdooranim
applymovement 1, FallarborTown_BattleTentLobby_Movement_200202
- applymovement 255, FallarborTown_BattleTentLobby_Movement_200209
+ applymovement EVENT_OBJ_ID_PLAYER, FallarborTown_BattleTentLobby_Movement_200209
waitmovement 0
closedoor 6, 1
waitdooranim
diff --git a/data/maps/GraniteCave_StevensRoom/scripts.inc b/data/maps/GraniteCave_StevensRoom/scripts.inc
index da0668bac..ff594021a 100644
--- a/data/maps/GraniteCave_StevensRoom/scripts.inc
+++ b/data/maps/GraniteCave_StevensRoom/scripts.inc
@@ -42,13 +42,13 @@ GraniteCave_StevensRoom_EventScript_22DD0D:: @ 822DD0D
return
GraniteCave_StevensRoom_EventScript_22DD18:: @ 822DD18
- applymovement 255, GraniteCave_StevensRoom_Movement_22DD4C
+ applymovement EVENT_OBJ_ID_PLAYER, GraniteCave_StevensRoom_Movement_22DD4C
applymovement 1, GraniteCave_StevensRoom_Movement_22DD45
waitmovement 0
return
GraniteCave_StevensRoom_EventScript_22DD2A:: @ 822DD2A
- applymovement 255, GraniteCave_StevensRoom_Movement_22DD4C
+ applymovement EVENT_OBJ_ID_PLAYER, GraniteCave_StevensRoom_Movement_22DD4C
applymovement 1, GraniteCave_StevensRoom_Movement_22DD51
waitmovement 0
return
diff --git a/data/maps/LavaridgeTown/scripts.inc b/data/maps/LavaridgeTown/scripts.inc
index a42703900..9d2a8b6dc 100644
--- a/data/maps/LavaridgeTown/scripts.inc
+++ b/data/maps/LavaridgeTown/scripts.inc
@@ -136,7 +136,7 @@ LavaridgeTown_EventScript_1EA65C:: @ 81EA65C
waitmovement 0
applymovement 8, LavaridgeTown_Movement_27259A
waitmovement 0
- applymovement 255, LavaridgeTown_Movement_2725A8
+ applymovement EVENT_OBJ_ID_PLAYER, LavaridgeTown_Movement_2725A8
waitmovement 0
return
@@ -151,7 +151,7 @@ LavaridgeTown_EventScript_1EA6AC:: @ 81EA6AC
return
LavaridgeTown_EventScript_1EA6B7:: @ 81EA6B7
- applymovement 255, LavaridgeTown_Movement_1EA6DF
+ applymovement EVENT_OBJ_ID_PLAYER, LavaridgeTown_Movement_1EA6DF
applymovement 7, LavaridgeTown_Movement_1EA6E3
waitmovement 0
return
diff --git a/data/maps/LilycoveCity_ContestLobby/scripts.inc b/data/maps/LilycoveCity_ContestLobby/scripts.inc
index a849925bd..b172dfd7a 100644
--- a/data/maps/LilycoveCity_ContestLobby/scripts.inc
+++ b/data/maps/LilycoveCity_ContestLobby/scripts.inc
@@ -37,7 +37,7 @@ LilycoveCity_ContestLobby_EventScript_21A264:: @ 821A264
addobject 4
applymovement 4, LilycoveCity_ContestLobby_Movement_21A407
waitmovement 4
- applymovement 255, LilycoveCity_ContestLobby_Movement_21A418
+ applymovement EVENT_OBJ_ID_PLAYER, LilycoveCity_ContestLobby_Movement_21A418
waitmovement 0
msgbox LilycoveCity_ContestLobby_Text_21ADB9, MSGBOX_DEFAULT
lockall
@@ -212,7 +212,7 @@ LilycoveCity_ContestLobby_EventScript_21A436:: @ 821A436
addobject 11
applymovement 11, LilycoveCity_ContestLobby_Movement_21A533
waitmovement 11
- applymovement 255, LilycoveCity_ContestLobby_Movement_21A545
+ applymovement EVENT_OBJ_ID_PLAYER, LilycoveCity_ContestLobby_Movement_21A545
waitmovement 0
msgbox LilycoveCity_ContestLobby_Text_21ADB9, MSGBOX_DEFAULT
lockall
@@ -422,12 +422,12 @@ LilycoveCity_ContestLobby_EventScript_21A670:: @ 821A670
delay 20
applymovement 1, LilycoveCity_ContestLobby_Movement_21A706
waitmovement 0
- applymovement 255, LilycoveCity_ContestLobby_Movement_21A6F2
+ applymovement EVENT_OBJ_ID_PLAYER, LilycoveCity_ContestLobby_Movement_21A6F2
waitmovement 0
msgbox LilycoveCity_ContestLobby_Text_27B653, MSGBOX_DEFAULT
closemessage
applymovement 1, LilycoveCity_ContestLobby_Movement_21A6FD
- applymovement 255, LilycoveCity_ContestLobby_Movement_21A6E8
+ applymovement EVENT_OBJ_ID_PLAYER, LilycoveCity_ContestLobby_Movement_21A6E8
waitmovement 0
releaseall
return
@@ -945,7 +945,7 @@ LilycoveCity_ContestLobby_EventScript_21AC49:: @ 821AC49
delay 20
applymovement 2, LilycoveCity_ContestLobby_Movement_21ACEF
waitmovement 0
- applymovement 255, LilycoveCity_ContestLobby_Movement_21ACDB
+ applymovement EVENT_OBJ_ID_PLAYER, LilycoveCity_ContestLobby_Movement_21ACDB
waitmovement 0
messageautoscroll LilycoveCity_ContestLobby_Text_27B653
waitmessage
@@ -953,7 +953,7 @@ LilycoveCity_ContestLobby_EventScript_21AC49:: @ 821AC49
closemessage
call LilycoveCity_ContestLobby_EventScript_27AD92
applymovement 2, LilycoveCity_ContestLobby_Movement_21ACE5
- applymovement 255, LilycoveCity_ContestLobby_Movement_21ACD0
+ applymovement EVENT_OBJ_ID_PLAYER, LilycoveCity_ContestLobby_Movement_21ACD0
waitmovement 0
release
return
diff --git a/data/maps/LilycoveCity_CoveLilyMotel_1F/scripts.inc b/data/maps/LilycoveCity_CoveLilyMotel_1F/scripts.inc
index 18ef70cfd..35ab3aa8e 100644
--- a/data/maps/LilycoveCity_CoveLilyMotel_1F/scripts.inc
+++ b/data/maps/LilycoveCity_CoveLilyMotel_1F/scripts.inc
@@ -46,11 +46,11 @@ LilycoveCity_CoveLilyMotel_1F_EventScript_218211:: @ 8218211
waitmovement 0
applymovement 1, LilycoveCity_CoveLilyMotel_1F_Movement_27259A
waitmovement 0
- applymovement 255, LilycoveCity_CoveLilyMotel_1F_Movement_2725AA
+ applymovement EVENT_OBJ_ID_PLAYER, LilycoveCity_CoveLilyMotel_1F_Movement_2725AA
waitmovement 0
msgbox LilycoveCity_CoveLilyMotel_1F_Text_21839B, MSGBOX_DEFAULT
closemessage
- applymovement 255, LilycoveCity_CoveLilyMotel_1F_Movement_218259
+ applymovement EVENT_OBJ_ID_PLAYER, LilycoveCity_CoveLilyMotel_1F_Movement_218259
applymovement 1, LilycoveCity_CoveLilyMotel_1F_Movement_21825E
waitmovement 0
applymovement 1, LilycoveCity_CoveLilyMotel_1F_Movement_218260
diff --git a/data/maps/LilycoveCity_Harbor/scripts.inc b/data/maps/LilycoveCity_Harbor/scripts.inc
index 67ef01e09..7beb75988 100644
--- a/data/maps/LilycoveCity_Harbor/scripts.inc
+++ b/data/maps/LilycoveCity_Harbor/scripts.inc
@@ -439,12 +439,12 @@ LilycoveCity_Harbor_EventScript_21E5CC:: @ 821E5CC
return
LilycoveCity_Harbor_EventScript_21E610:: @ 821E610
- applymovement 255, LilycoveCity_Harbor_Movement_21E630
+ applymovement EVENT_OBJ_ID_PLAYER, LilycoveCity_Harbor_Movement_21E630
waitmovement 0
return
LilycoveCity_Harbor_EventScript_21E61B:: @ 821E61B
- applymovement 255, LilycoveCity_Harbor_Movement_21E633
+ applymovement EVENT_OBJ_ID_PLAYER, LilycoveCity_Harbor_Movement_21E633
waitmovement 0
return
@@ -525,14 +525,14 @@ LilycoveCity_Harbor_EventScript_21E696:: @ 821E696
LilycoveCity_Harbor_EventScript_21E6A1:: @ 821E6A1
applymovement 5, LilycoveCity_Harbor_Movement_21E6D3
- applymovement 255, LilycoveCity_Harbor_Movement_21E6D7
+ applymovement EVENT_OBJ_ID_PLAYER, LilycoveCity_Harbor_Movement_21E6D7
applymovement 4, LilycoveCity_Harbor_Movement_21E6DC
waitmovement 0
return
LilycoveCity_Harbor_EventScript_21E6BA:: @ 821E6BA
applymovement 5, LilycoveCity_Harbor_Movement_21E6D3
- applymovement 255, LilycoveCity_Harbor_Movement_21E6E4
+ applymovement EVENT_OBJ_ID_PLAYER, LilycoveCity_Harbor_Movement_21E6E4
applymovement 4, LilycoveCity_Harbor_Movement_21E6EA
waitmovement 0
return
diff --git a/data/maps/LilycoveCity_LilycoveMuseum_1F/scripts.inc b/data/maps/LilycoveCity_LilycoveMuseum_1F/scripts.inc
index f56102a99..54ba63fb0 100644
--- a/data/maps/LilycoveCity_LilycoveMuseum_1F/scripts.inc
+++ b/data/maps/LilycoveCity_LilycoveMuseum_1F/scripts.inc
@@ -47,7 +47,7 @@ LilycoveCity_LilycoveMuseum_1F_EventScript_218D1E:: @ 8218D1E
LilycoveCity_LilycoveMuseum_1F_EventScript_218D5A:: @ 8218D5A
lockall
- applymovement 255, LilycoveCity_LilycoveMuseum_1F_Movement_218DA1
+ applymovement EVENT_OBJ_ID_PLAYER, LilycoveCity_LilycoveMuseum_1F_Movement_218DA1
waitmovement 0
warp MAP_LILYCOVE_CITY_LILYCOVE_MUSEUM_2F, 255, 11, 8
waitstate
@@ -55,7 +55,7 @@ LilycoveCity_LilycoveMuseum_1F_EventScript_218D5A:: @ 8218D5A
LilycoveCity_LilycoveMuseum_1F_EventScript_218D6F:: @ 8218D6F
lockall
- applymovement 255, LilycoveCity_LilycoveMuseum_1F_Movement_218D9B
+ applymovement EVENT_OBJ_ID_PLAYER, LilycoveCity_LilycoveMuseum_1F_Movement_218D9B
waitmovement 0
warp MAP_LILYCOVE_CITY_LILYCOVE_MUSEUM_2F, 255, 11, 8
waitstate
@@ -63,7 +63,7 @@ LilycoveCity_LilycoveMuseum_1F_EventScript_218D6F:: @ 8218D6F
LilycoveCity_LilycoveMuseum_1F_EventScript_218D84:: @ 8218D84
lockall
- applymovement 255, LilycoveCity_LilycoveMuseum_1F_Movement_218D9E
+ applymovement EVENT_OBJ_ID_PLAYER, LilycoveCity_LilycoveMuseum_1F_Movement_218D9E
waitmovement 0
warp MAP_LILYCOVE_CITY_LILYCOVE_MUSEUM_2F, 255, 11, 8
waitstate
diff --git a/data/maps/LilycoveCity_LilycoveMuseum_2F/scripts.inc b/data/maps/LilycoveCity_LilycoveMuseum_2F/scripts.inc
index 5f2b64aec..e2bda1ab5 100644
--- a/data/maps/LilycoveCity_LilycoveMuseum_2F/scripts.inc
+++ b/data/maps/LilycoveCity_LilycoveMuseum_2F/scripts.inc
@@ -68,17 +68,17 @@ LilycoveCity_LilycoveMuseum_2F_MapScript2_2197FE: @ 82197FE
LilycoveCity_LilycoveMuseum_2F_EventScript_219808:: @ 8219808
lockall
applymovement 1, LilycoveCity_LilycoveMuseum_2F_Movement_27259E
- applymovement 255, LilycoveCity_LilycoveMuseum_2F_Movement_219861
+ applymovement EVENT_OBJ_ID_PLAYER, LilycoveCity_LilycoveMuseum_2F_Movement_219861
waitmovement 0
msgbox LilycoveCity_LilycoveMuseum_2F_Text_2199EB, MSGBOX_SIGN
applymovement 1, LilycoveCity_LilycoveMuseum_2F_Movement_219863
waitmovement 0
- applymovement 255, LilycoveCity_LilycoveMuseum_2F_Movement_219863
+ applymovement EVENT_OBJ_ID_PLAYER, LilycoveCity_LilycoveMuseum_2F_Movement_219863
waitmovement 0
msgbox LilycoveCity_LilycoveMuseum_2F_Text_219A0D, MSGBOX_SIGN
applymovement 1, LilycoveCity_LilycoveMuseum_2F_Movement_27259E
waitmovement 0
- applymovement 255, LilycoveCity_LilycoveMuseum_2F_Movement_219861
+ applymovement EVENT_OBJ_ID_PLAYER, LilycoveCity_LilycoveMuseum_2F_Movement_219861
waitmovement 0
msgbox LilycoveCity_LilycoveMuseum_2F_Text_219BC4, MSGBOX_SIGN
copyvar VAR_0x4094, 0x1
diff --git a/data/maps/LilycoveCity_PokemonTrainerFanClub/scripts.inc b/data/maps/LilycoveCity_PokemonTrainerFanClub/scripts.inc
index d4c0f4cea..54df8e81a 100644
--- a/data/maps/LilycoveCity_PokemonTrainerFanClub/scripts.inc
+++ b/data/maps/LilycoveCity_PokemonTrainerFanClub/scripts.inc
@@ -15,12 +15,12 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_21C79A:: @ 821C79A
applymovement 4, LilycoveCity_PokemonTrainerFanClub_Movement_21C7FD
applymovement 2, LilycoveCity_PokemonTrainerFanClub_Movement_21C7F5
waitmovement 0
- applymovement 255, LilycoveCity_PokemonTrainerFanClub_Movement_2725A8
+ applymovement EVENT_OBJ_ID_PLAYER, LilycoveCity_PokemonTrainerFanClub_Movement_2725A8
waitmovement 0
msgbox LilycoveCity_PokemonTrainerFanClub_Text_21CF12, MSGBOX_DEFAULT
applymovement 4, LilycoveCity_PokemonTrainerFanClub_Movement_21C804
waitmovement 0
- applymovement 255, LilycoveCity_PokemonTrainerFanClub_Movement_2725A4
+ applymovement EVENT_OBJ_ID_PLAYER, LilycoveCity_PokemonTrainerFanClub_Movement_2725A4
waitmovement 0
applymovement 4, LilycoveCity_PokemonTrainerFanClub_Movement_21C807
waitmovement 0
diff --git a/data/maps/LittlerootTown/scripts.inc b/data/maps/LittlerootTown/scripts.inc
index 660a3984d..8e70af98b 100644
--- a/data/maps/LittlerootTown/scripts.inc
+++ b/data/maps/LittlerootTown/scripts.inc
@@ -114,7 +114,7 @@ LittlerootTown_EventScript_1E7EF9:: @ 81E7EF9
LittlerootTown_EventScript_1E7F17:: @ 81E7F17
delay 15
playse SE_DANSA
- applymovement 255, LittlerootTown_Movement_1E7FAC
+ applymovement EVENT_OBJ_ID_PLAYER, LittlerootTown_Movement_1E7FAC
waitmovement 0
opendoor VAR_0x8004, VAR_0x8005
waitdooranim
@@ -129,12 +129,12 @@ LittlerootTown_EventScript_1E7F17:: @ 81E7F17
msgbox LittlerootTown_Text_1E86BC, MSGBOX_DEFAULT
closemessage
applymovement 4, LittlerootTown_Movement_1E7F9D
- applymovement 255, LittlerootTown_Movement_1E7FA4
+ applymovement EVENT_OBJ_ID_PLAYER, LittlerootTown_Movement_1E7FA4
waitmovement 0
opendoor VAR_0x8004, VAR_0x8005
waitdooranim
applymovement 4, LittlerootTown_Movement_1E7FA1
- applymovement 255, LittlerootTown_Movement_1E7FA9
+ applymovement EVENT_OBJ_ID_PLAYER, LittlerootTown_Movement_1E7FA9
waitmovement 0
setflag FLAG_HIDE_LITTLEROOT_TOWN_MOM_OUTSIDE
setvar VAR_0x4092, 3
@@ -280,7 +280,7 @@ LittlerootTown_EventScript_1E80AD:: @ 81E80AD
msgbox LittlerootTown_Text_1E8BB8, MSGBOX_DEFAULT
closemessage
applymovement 1, LittlerootTown_Movement_1E80DF
- applymovement 255, LittlerootTown_Movement_1E80EB
+ applymovement EVENT_OBJ_ID_PLAYER, LittlerootTown_Movement_1E80EB
waitmovement 0
msgbox LittlerootTown_Text_1E8C07, MSGBOX_DEFAULT
closemessage
@@ -362,7 +362,7 @@ LittlerootTown_EventScript_1E811F:: @ 81E811F
lockall
applymovement 1, LittlerootTown_Movement_2725A8
waitmovement 0
- applymovement 255, LittlerootTown_Movement_2725A4
+ applymovement EVENT_OBJ_ID_PLAYER, LittlerootTown_Movement_2725A4
waitmovement 0
special GetPlayerBigGuyGirlString
msgbox LittlerootTown_Text_1E8C3A, MSGBOX_DEFAULT
@@ -533,70 +533,70 @@ LittlerootTown_EventScript_1E82F0:: @ 81E82F0
return
LittlerootTown_EventScript_1E8333:: @ 81E8333
- applymovement 255, LittlerootTown_Movement_2725AA
+ applymovement EVENT_OBJ_ID_PLAYER, LittlerootTown_Movement_2725AA
waitmovement 0
applymovement 4, LittlerootTown_Movement_1E85D1
waitmovement 0
return
LittlerootTown_EventScript_1E8348:: @ 81E8348
- applymovement 255, LittlerootTown_Movement_2725AA
+ applymovement EVENT_OBJ_ID_PLAYER, LittlerootTown_Movement_2725AA
waitmovement 0
applymovement 4, LittlerootTown_Movement_1E85D8
waitmovement 0
return
LittlerootTown_EventScript_1E835D:: @ 81E835D
- applymovement 255, LittlerootTown_Movement_2725A4
+ applymovement EVENT_OBJ_ID_PLAYER, LittlerootTown_Movement_2725A4
waitmovement 0
applymovement 4, LittlerootTown_Movement_1E85DF
waitmovement 0
return
LittlerootTown_EventScript_1E8372:: @ 81E8372
- applymovement 255, LittlerootTown_Movement_2725A4
+ applymovement EVENT_OBJ_ID_PLAYER, LittlerootTown_Movement_2725A4
waitmovement 0
applymovement 4, LittlerootTown_Movement_1E85E4
waitmovement 0
return
LittlerootTown_EventScript_1E8387:: @ 81E8387
- applymovement 255, LittlerootTown_Movement_2725A4
+ applymovement EVENT_OBJ_ID_PLAYER, LittlerootTown_Movement_2725A4
waitmovement 0
applymovement 4, LittlerootTown_Movement_1E85EA
waitmovement 0
return
LittlerootTown_EventScript_1E839C:: @ 81E839C
- applymovement 255, LittlerootTown_Movement_2725A4
+ applymovement EVENT_OBJ_ID_PLAYER, LittlerootTown_Movement_2725A4
waitmovement 0
applymovement 4, LittlerootTown_Movement_1E85ED
waitmovement 0
return
LittlerootTown_EventScript_1E83B1:: @ 81E83B1
- applymovement 255, LittlerootTown_Movement_2725A8
+ applymovement EVENT_OBJ_ID_PLAYER, LittlerootTown_Movement_2725A8
waitmovement 0
applymovement 4, LittlerootTown_Movement_1E85F1
waitmovement 0
return
LittlerootTown_EventScript_1E83C6:: @ 81E83C6
- applymovement 255, LittlerootTown_Movement_2725A8
+ applymovement EVENT_OBJ_ID_PLAYER, LittlerootTown_Movement_2725A8
waitmovement 0
applymovement 4, LittlerootTown_Movement_1E85F5
waitmovement 0
return
LittlerootTown_EventScript_1E83DB:: @ 81E83DB
- applymovement 255, LittlerootTown_Movement_2725A8
+ applymovement EVENT_OBJ_ID_PLAYER, LittlerootTown_Movement_2725A8
waitmovement 0
applymovement 4, LittlerootTown_Movement_1E85F8
waitmovement 0
return
LittlerootTown_EventScript_1E83F0:: @ 81E83F0
- applymovement 255, LittlerootTown_Movement_2725A8
+ applymovement EVENT_OBJ_ID_PLAYER, LittlerootTown_Movement_2725A8
waitmovement 0
applymovement 4, LittlerootTown_Movement_1E85FE
waitmovement 0
diff --git a/data/maps/LittlerootTown_BrendansHouse_1F/scripts.inc b/data/maps/LittlerootTown_BrendansHouse_1F/scripts.inc
index 4413a80d5..363579e6e 100644
--- a/data/maps/LittlerootTown_BrendansHouse_1F/scripts.inc
+++ b/data/maps/LittlerootTown_BrendansHouse_1F/scripts.inc
@@ -62,7 +62,7 @@ LittlerootTown_BrendansHouse_1F_EventScript_1F7814:: @ 81F7814
lockall
msgbox LittlerootTown_BrendansHouse_1F_Text_1F7B67, MSGBOX_DEFAULT
closemessage
- applymovement 255, LittlerootTown_BrendansHouse_1F_Movement_1F783A
+ applymovement EVENT_OBJ_ID_PLAYER, LittlerootTown_BrendansHouse_1F_Movement_1F783A
applymovement 1, LittlerootTown_BrendansHouse_1F_Movement_1F783A
waitmovement 0
warp MAP_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F, 255, 7, 1
@@ -95,7 +95,7 @@ LittlerootTown_BrendansHouse_1F_EventScript_1F785E:: @ 81F785E
waitmovement 0
applymovement 4, LittlerootTown_BrendansHouse_1F_Movement_27259A
waitmovement 0
- applymovement 255, LittlerootTown_BrendansHouse_1F_Movement_2725A4
+ applymovement EVENT_OBJ_ID_PLAYER, LittlerootTown_BrendansHouse_1F_Movement_2725A4
applymovement 4, LittlerootTown_BrendansHouse_1F_Movement_1F789C
waitmovement 0
special GetRivalSonDaughterString
@@ -182,7 +182,7 @@ LittlerootTown_BrendansHouse_1F_EventScript_1F78E2:: @ 81F78E2
end
LittlerootTown_BrendansHouse_1F_EventScript_1F7981:: @ 81F7981
- applymovement 255, LittlerootTown_BrendansHouse_1F_Movement_2725AA
+ applymovement EVENT_OBJ_ID_PLAYER, LittlerootTown_BrendansHouse_1F_Movement_2725AA
waitmovement 0
return
@@ -228,19 +228,19 @@ LittlerootTown_BrendansHouse_1F_Movement_1F79B9: @ 81F79B9
step_end
LittlerootTown_BrendansHouse_1F_EventScript_1F79C1:: @ 81F79C1
- applymovement 255, LittlerootTown_BrendansHouse_1F_Movement_1F79F7
+ applymovement EVENT_OBJ_ID_PLAYER, LittlerootTown_BrendansHouse_1F_Movement_1F79F7
applymovement 7, LittlerootTown_BrendansHouse_1F_Movement_1F7A06
waitmovement 0
return
LittlerootTown_BrendansHouse_1F_EventScript_1F79D3:: @ 81F79D3
- applymovement 255, LittlerootTown_BrendansHouse_1F_Movement_1F79FB
+ applymovement EVENT_OBJ_ID_PLAYER, LittlerootTown_BrendansHouse_1F_Movement_1F79FB
applymovement 7, LittlerootTown_BrendansHouse_1F_Movement_1F7A0C
waitmovement 0
return
LittlerootTown_BrendansHouse_1F_EventScript_1F79E5:: @ 81F79E5
- applymovement 255, LittlerootTown_BrendansHouse_1F_Movement_1F7A02
+ applymovement EVENT_OBJ_ID_PLAYER, LittlerootTown_BrendansHouse_1F_Movement_1F7A02
applymovement 7, LittlerootTown_BrendansHouse_1F_Movement_1F7A16
waitmovement 0
return
diff --git a/data/maps/LittlerootTown_BrendansHouse_2F/scripts.inc b/data/maps/LittlerootTown_BrendansHouse_2F/scripts.inc
index 2ebc9b900..d0063a0e3 100644
--- a/data/maps/LittlerootTown_BrendansHouse_2F/scripts.inc
+++ b/data/maps/LittlerootTown_BrendansHouse_2F/scripts.inc
@@ -94,11 +94,11 @@ LittlerootTown_BrendansHouse_2F_EventScript_1F8497:: @ 81F8497
LittlerootTown_BrendansHouse_2F_EventScript_1F8507:: @ 81F8507
applymovement 1, LittlerootTown_BrendansHouse_2F_Movement_1F85C0
waitmovement 0
- applymovement 255, LittlerootTown_BrendansHouse_2F_Movement_2725A8
+ applymovement EVENT_OBJ_ID_PLAYER, LittlerootTown_BrendansHouse_2F_Movement_2725A8
waitmovement 0
msgbox LittlerootTown_BrendansHouse_2F_Text_1F97B4, MSGBOX_DEFAULT
closemessage
- applymovement 255, LittlerootTown_BrendansHouse_2F_Movement_1F85CF
+ applymovement EVENT_OBJ_ID_PLAYER, LittlerootTown_BrendansHouse_2F_Movement_1F85CF
applymovement 1, LittlerootTown_BrendansHouse_2F_Movement_1F85C6
waitmovement 0
return
@@ -106,11 +106,11 @@ LittlerootTown_BrendansHouse_2F_EventScript_1F8507:: @ 81F8507
LittlerootTown_BrendansHouse_2F_EventScript_1F8536:: @ 81F8536
applymovement 1, LittlerootTown_BrendansHouse_2F_Movement_1F85D7
waitmovement 0
- applymovement 255, LittlerootTown_BrendansHouse_2F_Movement_2725A8
+ applymovement EVENT_OBJ_ID_PLAYER, LittlerootTown_BrendansHouse_2F_Movement_2725A8
waitmovement 0
msgbox LittlerootTown_BrendansHouse_2F_Text_1F97B4, MSGBOX_DEFAULT
closemessage
- applymovement 255, LittlerootTown_BrendansHouse_2F_Movement_1F85E2
+ applymovement EVENT_OBJ_ID_PLAYER, LittlerootTown_BrendansHouse_2F_Movement_1F85E2
applymovement 1, LittlerootTown_BrendansHouse_2F_Movement_1F85DB
waitmovement 0
return
@@ -118,11 +118,11 @@ LittlerootTown_BrendansHouse_2F_EventScript_1F8536:: @ 81F8536
LittlerootTown_BrendansHouse_2F_EventScript_1F8565:: @ 81F8565
applymovement 1, LittlerootTown_BrendansHouse_2F_Movement_1F85E8
waitmovement 0
- applymovement 255, LittlerootTown_BrendansHouse_2F_Movement_2725A8
+ applymovement EVENT_OBJ_ID_PLAYER, LittlerootTown_BrendansHouse_2F_Movement_2725A8
waitmovement 0
msgbox LittlerootTown_BrendansHouse_2F_Text_1F97B4, MSGBOX_DEFAULT
closemessage
- applymovement 255, LittlerootTown_BrendansHouse_2F_Movement_1F85F6
+ applymovement EVENT_OBJ_ID_PLAYER, LittlerootTown_BrendansHouse_2F_Movement_1F85F6
applymovement 1, LittlerootTown_BrendansHouse_2F_Movement_1F85ED
waitmovement 0
return
@@ -130,7 +130,7 @@ LittlerootTown_BrendansHouse_2F_EventScript_1F8565:: @ 81F8565
LittlerootTown_BrendansHouse_2F_EventScript_1F8594:: @ 81F8594
applymovement 1, LittlerootTown_BrendansHouse_2F_Movement_1F85FD
waitmovement 0
- applymovement 255, LittlerootTown_BrendansHouse_2F_Movement_2725A6
+ applymovement EVENT_OBJ_ID_PLAYER, LittlerootTown_BrendansHouse_2F_Movement_2725A6
waitmovement 0
msgbox LittlerootTown_BrendansHouse_2F_Text_1F97B4, MSGBOX_DEFAULT
closemessage
diff --git a/data/maps/LittlerootTown_MaysHouse_1F/scripts.inc b/data/maps/LittlerootTown_MaysHouse_1F/scripts.inc
index 824c4d930..a974ce5cb 100644
--- a/data/maps/LittlerootTown_MaysHouse_1F/scripts.inc
+++ b/data/maps/LittlerootTown_MaysHouse_1F/scripts.inc
@@ -62,7 +62,7 @@ LittlerootTown_MaysHouse_1F_EventScript_1F8964:: @ 81F8964
lockall
msgbox LittlerootTown_MaysHouse_1F_Text_1F7B67, MSGBOX_DEFAULT
closemessage
- applymovement 255, LittlerootTown_MaysHouse_1F_Movement_1F898A
+ applymovement EVENT_OBJ_ID_PLAYER, LittlerootTown_MaysHouse_1F_Movement_1F898A
applymovement 1, LittlerootTown_MaysHouse_1F_Movement_1F898A
waitmovement 0
warp MAP_LITTLEROOT_TOWN_MAYS_HOUSE_2F, 255, 1, 1
@@ -95,7 +95,7 @@ LittlerootTown_MaysHouse_1F_EventScript_1F89AE:: @ 81F89AE
waitmovement 0
applymovement 4, LittlerootTown_MaysHouse_1F_Movement_27259A
waitmovement 0
- applymovement 255, LittlerootTown_MaysHouse_1F_Movement_2725A8
+ applymovement EVENT_OBJ_ID_PLAYER, LittlerootTown_MaysHouse_1F_Movement_2725A8
applymovement 4, LittlerootTown_MaysHouse_1F_Movement_1F89EC
waitmovement 0
special GetRivalSonDaughterString
@@ -221,7 +221,7 @@ LittlerootTown_MaysHouse_1F_EventScript_1F8A8B:: @ 81F8A8B
end
LittlerootTown_MaysHouse_1F_EventScript_1F8B2A:: @ 81F8B2A
- applymovement 255, LittlerootTown_MaysHouse_1F_Movement_2725AA
+ applymovement EVENT_OBJ_ID_PLAYER, LittlerootTown_MaysHouse_1F_Movement_2725AA
waitmovement 0
return
@@ -267,19 +267,19 @@ LittlerootTown_MaysHouse_1F_Movement_1F8B62: @ 81F8B62
step_end
LittlerootTown_MaysHouse_1F_EventScript_1F8B6A:: @ 81F8B6A
- applymovement 255, LittlerootTown_MaysHouse_1F_Movement_1F8BA0
+ applymovement EVENT_OBJ_ID_PLAYER, LittlerootTown_MaysHouse_1F_Movement_1F8BA0
applymovement 7, LittlerootTown_MaysHouse_1F_Movement_1F8BAF
waitmovement 0
return
LittlerootTown_MaysHouse_1F_EventScript_1F8B7C:: @ 81F8B7C
- applymovement 255, LittlerootTown_MaysHouse_1F_Movement_1F8BA4
+ applymovement EVENT_OBJ_ID_PLAYER, LittlerootTown_MaysHouse_1F_Movement_1F8BA4
applymovement 7, LittlerootTown_MaysHouse_1F_Movement_1F8BB5
waitmovement 0
return
LittlerootTown_MaysHouse_1F_EventScript_1F8B8E:: @ 81F8B8E
- applymovement 255, LittlerootTown_MaysHouse_1F_Movement_1F8BAB
+ applymovement EVENT_OBJ_ID_PLAYER, LittlerootTown_MaysHouse_1F_Movement_1F8BAB
applymovement 7, LittlerootTown_MaysHouse_1F_Movement_1F8BBF
waitmovement 0
return
diff --git a/data/maps/LittlerootTown_MaysHouse_2F/scripts.inc b/data/maps/LittlerootTown_MaysHouse_2F/scripts.inc
index 8a2ec10ac..ba3233853 100644
--- a/data/maps/LittlerootTown_MaysHouse_2F/scripts.inc
+++ b/data/maps/LittlerootTown_MaysHouse_2F/scripts.inc
@@ -95,11 +95,11 @@ LittlerootTown_MaysHouse_2F_EventScript_1F934A:: @ 81F934A
LittlerootTown_MaysHouse_2F_EventScript_1F93BA:: @ 81F93BA
applymovement 1, LittlerootTown_MaysHouse_2F_Movement_1F9473
waitmovement 0
- applymovement 255, LittlerootTown_MaysHouse_2F_Movement_2725A4
+ applymovement EVENT_OBJ_ID_PLAYER, LittlerootTown_MaysHouse_2F_Movement_2725A4
waitmovement 0
msgbox LittlerootTown_MaysHouse_2F_Text_1F959C, MSGBOX_DEFAULT
closemessage
- applymovement 255, LittlerootTown_MaysHouse_2F_Movement_1F9483
+ applymovement EVENT_OBJ_ID_PLAYER, LittlerootTown_MaysHouse_2F_Movement_1F9483
applymovement 1, LittlerootTown_MaysHouse_2F_Movement_1F9479
waitmovement 0
return
@@ -107,11 +107,11 @@ LittlerootTown_MaysHouse_2F_EventScript_1F93BA:: @ 81F93BA
LittlerootTown_MaysHouse_2F_EventScript_1F93E9:: @ 81F93E9
applymovement 1, LittlerootTown_MaysHouse_2F_Movement_1F948B
waitmovement 0
- applymovement 255, LittlerootTown_MaysHouse_2F_Movement_2725A4
+ applymovement EVENT_OBJ_ID_PLAYER, LittlerootTown_MaysHouse_2F_Movement_2725A4
waitmovement 0
msgbox LittlerootTown_MaysHouse_2F_Text_1F959C, MSGBOX_DEFAULT
closemessage
- applymovement 255, LittlerootTown_MaysHouse_2F_Movement_1F9497
+ applymovement EVENT_OBJ_ID_PLAYER, LittlerootTown_MaysHouse_2F_Movement_1F9497
applymovement 1, LittlerootTown_MaysHouse_2F_Movement_1F948F
waitmovement 0
return
@@ -119,7 +119,7 @@ LittlerootTown_MaysHouse_2F_EventScript_1F93E9:: @ 81F93E9
LittlerootTown_MaysHouse_2F_EventScript_1F9418:: @ 81F9418
applymovement 1, LittlerootTown_MaysHouse_2F_Movement_1F949D
waitmovement 0
- applymovement 255, LittlerootTown_MaysHouse_2F_Movement_2725A6
+ applymovement EVENT_OBJ_ID_PLAYER, LittlerootTown_MaysHouse_2F_Movement_2725A6
waitmovement 0
msgbox LittlerootTown_MaysHouse_2F_Text_1F959C, MSGBOX_DEFAULT
closemessage
@@ -130,11 +130,11 @@ LittlerootTown_MaysHouse_2F_EventScript_1F9418:: @ 81F9418
LittlerootTown_MaysHouse_2F_EventScript_1F9440:: @ 81F9440
applymovement 1, LittlerootTown_MaysHouse_2F_Movement_1F94AD
waitmovement 0
- applymovement 255, LittlerootTown_MaysHouse_2F_Movement_2725A4
+ applymovement EVENT_OBJ_ID_PLAYER, LittlerootTown_MaysHouse_2F_Movement_2725A4
waitmovement 0
msgbox LittlerootTown_MaysHouse_2F_Text_1F959C, MSGBOX_DEFAULT
closemessage
- applymovement 255, LittlerootTown_MaysHouse_2F_Movement_1F94BB
+ applymovement EVENT_OBJ_ID_PLAYER, LittlerootTown_MaysHouse_2F_Movement_1F94BB
applymovement 1, LittlerootTown_MaysHouse_2F_Movement_1F94B2
waitmovement 0
return
diff --git a/data/maps/LittlerootTown_ProfessorBirchsLab/scripts.inc b/data/maps/LittlerootTown_ProfessorBirchsLab/scripts.inc
index ec6cd9738..829062a73 100644
--- a/data/maps/LittlerootTown_ProfessorBirchsLab/scripts.inc
+++ b/data/maps/LittlerootTown_ProfessorBirchsLab/scripts.inc
@@ -136,7 +136,7 @@ LittlerootTown_ProfessorBirchsLab_EventScript_1F9E48:: @ 81F9E48
LittlerootTown_ProfessorBirchsLab_EventScript_1F9E67:: @ 81F9E67
lockall
- applymovement 255, LittlerootTown_ProfessorBirchsLab_Movement_1F9E78
+ applymovement EVENT_OBJ_ID_PLAYER, LittlerootTown_ProfessorBirchsLab_Movement_1F9E78
waitmovement 0
goto LittlerootTown_ProfessorBirchsLab_EventScript_1FA2F8
end
@@ -168,7 +168,7 @@ LittlerootTown_ProfessorBirchsLab_EventScript_1F9E80:: @ 81F9E80
playse SE_TK_KASYA
delay 20
applymovement 3, LittlerootTown_ProfessorBirchsLab_Movement_2725A8
- applymovement 255, LittlerootTown_ProfessorBirchsLab_Movement_2725A4
+ applymovement EVENT_OBJ_ID_PLAYER, LittlerootTown_ProfessorBirchsLab_Movement_2725A4
waitmovement 0
checkplayergender
compare VAR_RESULT, 0
@@ -181,7 +181,7 @@ LittlerootTown_ProfessorBirchsLab_EventScript_1F9E80:: @ 81F9E80
applymovement 2, LittlerootTown_ProfessorBirchsLab_Movement_1F9F58
waitmovement 0
applymovement 3, LittlerootTown_ProfessorBirchsLab_Movement_2725A6
- applymovement 255, LittlerootTown_ProfessorBirchsLab_Movement_2725A6
+ applymovement EVENT_OBJ_ID_PLAYER, LittlerootTown_ProfessorBirchsLab_Movement_2725A6
waitmovement 0
msgbox LittlerootTown_ProfessorBirchsLab_Text_1FB419, MSGBOX_DEFAULT
playfanfare MUS_FANFA4
@@ -244,7 +244,7 @@ LittlerootTown_ProfessorBirchsLab_Movement_1F9F58: @ 81F9F58
LittlerootTown_ProfessorBirchsLab_EventScript_1F9F62:: @ 81F9F62
lockall
- applymovement 255, LittlerootTown_ProfessorBirchsLab_Movement_1F9F7C
+ applymovement EVENT_OBJ_ID_PLAYER, LittlerootTown_ProfessorBirchsLab_Movement_1F9F7C
waitmovement 0
msgbox LittlerootTown_ProfessorBirchsLab_Text_1FB5F9, MSGBOX_DEFAULT
setvar VAR_0x40D3, 5
@@ -534,7 +534,7 @@ LittlerootTown_ProfessorBirchsLab_EventScript_1FA2F8:: @ 81FA2F8
closemessage
applymovement 3, LittlerootTown_ProfessorBirchsLab_Movement_1FA3E0
waitmovement 0
- applymovement 255, LittlerootTown_ProfessorBirchsLab_Movement_2725A8
+ applymovement EVENT_OBJ_ID_PLAYER, LittlerootTown_ProfessorBirchsLab_Movement_2725A8
waitmovement 0
checkplayergender
compare VAR_RESULT, 0
diff --git a/data/maps/MagmaHideout_4F/scripts.inc b/data/maps/MagmaHideout_4F/scripts.inc
index 714983999..818b11da7 100644
--- a/data/maps/MagmaHideout_4F/scripts.inc
+++ b/data/maps/MagmaHideout_4F/scripts.inc
@@ -18,7 +18,7 @@ MagmaHideout_4F_EventScript_23A560:: @ 823A560
playfanfare MUS_ME_TAMA
playse SE_TAMA
special sub_80B0534
- applymovement 255, MagmaHideout_4F_Movement_2725A6
+ applymovement EVENT_OBJ_ID_PLAYER, MagmaHideout_4F_Movement_2725A6
waitmovement 0
delay 150
removeobject 7
@@ -50,7 +50,7 @@ MagmaHideout_4F_EventScript_23A560:: @ 823A560
waitmovement 0
msgbox MagmaHideout_4F_Text_23AADA, MSGBOX_DEFAULT
closemessage
- applymovement 255, MagmaHideout_4F_Movement_2725A8
+ applymovement EVENT_OBJ_ID_PLAYER, MagmaHideout_4F_Movement_2725A8
waitmovement 0
delay 30
applymovement 6, MagmaHideout_4F_Movement_27259E
diff --git a/data/maps/MarineCave_End/scripts.inc b/data/maps/MarineCave_End/scripts.inc
index f61620c29..68e27fa58 100644
--- a/data/maps/MarineCave_End/scripts.inc
+++ b/data/maps/MarineCave_End/scripts.inc
@@ -27,7 +27,7 @@ MarineCave_End_EventScript_23B012:: @ 823B012
MarineCave_End_EventScript_23B01B:: @ 823B01B
lockall
- applymovement 255, MarineCave_End_Movement_2725B2
+ applymovement EVENT_OBJ_ID_PLAYER, MarineCave_End_Movement_2725B2
waitmovement 0
applymovement 1, MarineCave_End_Movement_23B09D
waitmovement 0
diff --git a/data/maps/MauvilleCity/scripts.inc b/data/maps/MauvilleCity/scripts.inc
index 17ace6e10..e0835a87d 100644
--- a/data/maps/MauvilleCity/scripts.inc
+++ b/data/maps/MauvilleCity/scripts.inc
@@ -118,19 +118,19 @@ MauvilleCity_EventScript_1DF4AD:: @ 81DF4AD
end
MauvilleCity_EventScript_1DF4E0:: @ 81DF4E0
- applymovement 255, MauvilleCity_Movement_1DF6DF
+ applymovement EVENT_OBJ_ID_PLAYER, MauvilleCity_Movement_1DF6DF
applymovement 6, MauvilleCity_Movement_1DF6A8
applymovement 7, MauvilleCity_Movement_1DF6E2
waitmovement 0
applymovement 6, MauvilleCity_Movement_2725A8
waitmovement 0
delay 30
- applymovement 255, MauvilleCity_Movement_1DF6EE
+ applymovement EVENT_OBJ_ID_PLAYER, MauvilleCity_Movement_1DF6EE
applymovement 7, MauvilleCity_Movement_1DF6F3
waitmovement 0
msgbox MauvilleCity_Text_1DFD34, MSGBOX_DEFAULT
closemessage
- applymovement 255, MauvilleCity_Movement_1DF6CC
+ applymovement EVENT_OBJ_ID_PLAYER, MauvilleCity_Movement_1DF6CC
applymovement 7, MauvilleCity_Movement_1DF6FA
applymovement 6, MauvilleCity_Movement_1DF6B4
waitmovement 0
@@ -138,7 +138,7 @@ MauvilleCity_EventScript_1DF4E0:: @ 81DF4E0
end
MauvilleCity_EventScript_1DF53D:: @ 81DF53D
- applymovement 255, MauvilleCity_Movement_1DF6DC
+ applymovement EVENT_OBJ_ID_PLAYER, MauvilleCity_Movement_1DF6DC
applymovement 6, MauvilleCity_Movement_1DF6AE
applymovement 7, MauvilleCity_Movement_1DF6E8
waitmovement 0
@@ -149,7 +149,7 @@ MauvilleCity_EventScript_1DF53D:: @ 81DF53D
waitmovement 0
msgbox MauvilleCity_Text_1DFD34, MSGBOX_DEFAULT
closemessage
- applymovement 255, MauvilleCity_Movement_1DF6D0
+ applymovement EVENT_OBJ_ID_PLAYER, MauvilleCity_Movement_1DF6D0
applymovement 7, MauvilleCity_Movement_1DF703
applymovement 6, MauvilleCity_Movement_1DF6C0
waitmovement 0
@@ -168,7 +168,7 @@ MauvilleCity_EventScript_1DF593:: @ 81DF593
call_if 1, MauvilleCity_EventScript_1DF5F3
compare VAR_FACING, 4
call_if 1, MauvilleCity_EventScript_1DF601
- applymovement 255, MauvilleCity_Movement_2725AA
+ applymovement EVENT_OBJ_ID_PLAYER, MauvilleCity_Movement_2725AA
waitmovement 0
msgbox MauvilleCity_Text_1DFED5, MSGBOX_DEFAULT
closemessage
@@ -195,13 +195,13 @@ MauvilleCity_EventScript_1DF601:: @ 81DF601
return
MauvilleCity_EventScript_1DF616:: @ 81DF616
- applymovement 255, MauvilleCity_Movement_1DF6D5
+ applymovement EVENT_OBJ_ID_PLAYER, MauvilleCity_Movement_1DF6D5
applymovement 11, MauvilleCity_Movement_1DF725
waitmovement 0
return
MauvilleCity_EventScript_1DF628:: @ 81DF628
- applymovement 255, MauvilleCity_Movement_1DF6D8
+ applymovement EVENT_OBJ_ID_PLAYER, MauvilleCity_Movement_1DF6D8
applymovement 11, MauvilleCity_Movement_1DF72F
waitmovement 0
return
diff --git a/data/maps/MeteorFalls_1F_1R/scripts.inc b/data/maps/MeteorFalls_1F_1R/scripts.inc
index 23afa4845..4867ad44f 100644
--- a/data/maps/MeteorFalls_1F_1R/scripts.inc
+++ b/data/maps/MeteorFalls_1F_1R/scripts.inc
@@ -17,7 +17,7 @@ MeteorFalls_1F_1R_EventScript_22BD3A:: @ 822BD3A
MeteorFalls_1F_1R_EventScript_22BD5F:: @ 822BD5F
lockall
playbgm MUS_MGM0, 0
- applymovement 255, MeteorFalls_1F_1R_Movement_2725B0
+ applymovement EVENT_OBJ_ID_PLAYER, MeteorFalls_1F_1R_Movement_2725B0
waitmovement 0
delay 30
applymovement 5, MeteorFalls_1F_1R_Movement_2725B4
@@ -38,7 +38,7 @@ MeteorFalls_1F_1R_EventScript_22BD5F:: @ 822BD5F
waitmovement 0
msgbox MeteorFalls_1F_1R_Text_22BFE4, MSGBOX_DEFAULT
closemessage
- applymovement 255, MeteorFalls_1F_1R_Movement_2725A4
+ applymovement EVENT_OBJ_ID_PLAYER, MeteorFalls_1F_1R_Movement_2725A4
applymovement 5, MeteorFalls_1F_1R_Movement_2725A4
applymovement 6, MeteorFalls_1F_1R_Movement_2725A4
waitmovement 0
@@ -55,7 +55,7 @@ MeteorFalls_1F_1R_EventScript_22BD5F:: @ 822BD5F
waitmovement 0
msgbox MeteorFalls_1F_1R_Text_22C04E, MSGBOX_DEFAULT
closemessage
- applymovement 255, MeteorFalls_1F_1R_Movement_22BF1D
+ applymovement EVENT_OBJ_ID_PLAYER, MeteorFalls_1F_1R_Movement_22BF1D
applymovement 5, MeteorFalls_1F_1R_Movement_22BEC4
applymovement 6, MeteorFalls_1F_1R_Movement_22BECE
waitmovement 0
diff --git a/data/maps/MossdeepCity/scripts.inc b/data/maps/MossdeepCity/scripts.inc
index fe037074f..a4a87e3e7 100644
--- a/data/maps/MossdeepCity/scripts.inc
+++ b/data/maps/MossdeepCity/scripts.inc
@@ -269,13 +269,13 @@ MossdeepCity_EventScript_1E4C85:: @ 81E4C85
end
MossdeepCity_EventScript_1E4CB0:: @ 81E4CB0
- applymovement 255, MossdeepCity_Movement_1E4CD4
+ applymovement EVENT_OBJ_ID_PLAYER, MossdeepCity_Movement_1E4CD4
applymovement 16, MossdeepCity_Movement_1E4CD8
waitmovement 0
return
MossdeepCity_EventScript_1E4CC2:: @ 81E4CC2
- applymovement 255, MossdeepCity_Movement_1E4CD4
+ applymovement EVENT_OBJ_ID_PLAYER, MossdeepCity_Movement_1E4CD4
applymovement 16, MossdeepCity_Movement_1E4CE2
waitmovement 0
return
diff --git a/data/maps/MossdeepCity_Gym/scripts.inc b/data/maps/MossdeepCity_Gym/scripts.inc
index f42b3f4e4..dd9ebf951 100644
--- a/data/maps/MossdeepCity_Gym/scripts.inc
+++ b/data/maps/MossdeepCity_Gym/scripts.inc
@@ -118,7 +118,7 @@ MossdeepCity_Gym_EventScript_220999:: @ 8220999
checkflag FLAG_0x064
goto_eq MossdeepCity_Gym_EventScript_2209D0
setflag FLAG_0x064
- applymovement 255, MossdeepCity_Gym_Movement_220C30
+ applymovement EVENT_OBJ_ID_PLAYER, MossdeepCity_Gym_Movement_220C30
waitmovement 0
setmetatile 5, 5, 516, 0
setmetatile 2, 7, 569, 1
@@ -133,7 +133,7 @@ MossdeepCity_Gym_EventScript_2209C8:: @ 82209C8
MossdeepCity_Gym_EventScript_2209D0:: @ 82209D0
clearflag FLAG_0x064
- applymovement 255, MossdeepCity_Gym_Movement_220C30
+ applymovement EVENT_OBJ_ID_PLAYER, MossdeepCity_Gym_Movement_220C30
waitmovement 0
setmetatile 5, 5, 524, 0
setmetatile 2, 7, 568, 1
@@ -145,7 +145,7 @@ MossdeepCity_Gym_EventScript_2209F5:: @ 82209F5
checkflag FLAG_0x065
goto_eq MossdeepCity_Gym_EventScript_220A24
setflag FLAG_0x065
- applymovement 255, MossdeepCity_Gym_Movement_220C30
+ applymovement EVENT_OBJ_ID_PLAYER, MossdeepCity_Gym_Movement_220C30
waitmovement 0
setmetatile 8, 14, 516, 0
setmetatile 8, 10, 569, 1
@@ -154,7 +154,7 @@ MossdeepCity_Gym_EventScript_2209F5:: @ 82209F5
MossdeepCity_Gym_EventScript_220A24:: @ 8220A24
clearflag FLAG_0x065
- applymovement 255, MossdeepCity_Gym_Movement_220C30
+ applymovement EVENT_OBJ_ID_PLAYER, MossdeepCity_Gym_Movement_220C30
waitmovement 0
setmetatile 8, 14, 517, 0
setmetatile 8, 10, 568, 1
@@ -166,7 +166,7 @@ MossdeepCity_Gym_EventScript_220A49:: @ 8220A49
checkflag FLAG_0x066
goto_eq MossdeepCity_Gym_EventScript_220A78
setflag FLAG_0x066
- applymovement 255, MossdeepCity_Gym_Movement_220C30
+ applymovement EVENT_OBJ_ID_PLAYER, MossdeepCity_Gym_Movement_220C30
waitmovement 0
setmetatile 15, 17, 524, 0
setmetatile 17, 15, 569, 1
@@ -175,7 +175,7 @@ MossdeepCity_Gym_EventScript_220A49:: @ 8220A49
MossdeepCity_Gym_EventScript_220A78:: @ 8220A78
clearflag FLAG_0x066
- applymovement 255, MossdeepCity_Gym_Movement_220C30
+ applymovement EVENT_OBJ_ID_PLAYER, MossdeepCity_Gym_Movement_220C30
waitmovement 0
setmetatile 15, 17, 516, 0
setmetatile 17, 15, 568, 1
@@ -187,7 +187,7 @@ MossdeepCity_Gym_EventScript_220A9D:: @ 8220A9D
checkflag FLAG_0x067
goto_eq MossdeepCity_Gym_EventScript_220ACC
setflag FLAG_0x067
- applymovement 255, MossdeepCity_Gym_Movement_220C30
+ applymovement EVENT_OBJ_ID_PLAYER, MossdeepCity_Gym_Movement_220C30
waitmovement 0
setmetatile 1, 23, 525, 0
setmetatile 5, 24, 569, 1
@@ -196,7 +196,7 @@ MossdeepCity_Gym_EventScript_220A9D:: @ 8220A9D
MossdeepCity_Gym_EventScript_220ACC:: @ 8220ACC
clearflag FLAG_0x067
- applymovement 255, MossdeepCity_Gym_Movement_220C30
+ applymovement EVENT_OBJ_ID_PLAYER, MossdeepCity_Gym_Movement_220C30
waitmovement 0
setmetatile 1, 23, 516, 0
setmetatile 5, 24, 568, 1
diff --git a/data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc b/data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc
index 3c31ec06c..96bc41e07 100644
--- a/data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc
+++ b/data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc
@@ -32,16 +32,16 @@ MossdeepCity_SpaceCenter_2F_MapScript2_223DB5: @ 8223DB5
MossdeepCity_SpaceCenter_2F_EventScript_223DBF:: @ 8223DBF
playse SE_PIN
- applymovement 255, MossdeepCity_SpaceCenter_2F_Movement_272598
+ applymovement EVENT_OBJ_ID_PLAYER, MossdeepCity_SpaceCenter_2F_Movement_272598
waitmovement 0
- applymovement 255, MossdeepCity_SpaceCenter_2F_Movement_27259A
+ applymovement EVENT_OBJ_ID_PLAYER, MossdeepCity_SpaceCenter_2F_Movement_27259A
waitmovement 0
msgbox MossdeepCity_SpaceCenter_2F_Text_2243A4, MSGBOX_YESNO
compare VAR_RESULT, 1
goto_eq MossdeepCity_SpaceCenter_2F_EventScript_223E09
msgbox MossdeepCity_SpaceCenter_2F_Text_2243FE, MSGBOX_DEFAULT
closemessage
- applymovement 255, MossdeepCity_SpaceCenter_2F_Movement_223E07
+ applymovement EVENT_OBJ_ID_PLAYER, MossdeepCity_SpaceCenter_2F_Movement_223E07
waitmovement 0
warp MAP_MOSSDEEP_CITY_SPACE_CENTER_1F, 255, 13, 1
waitstate
@@ -57,13 +57,13 @@ MossdeepCity_SpaceCenter_2F_EventScript_223E09:: @ 8223E09
trainerbattle_no_intro TRAINER_GRUNT_34, MossdeepCity_SpaceCenter_2F_Text_224461
applymovement 6, MossdeepCity_SpaceCenter_2F_Movement_223E85
waitmovement 0
- applymovement 255, MossdeepCity_SpaceCenter_2F_Movement_2725A4
+ applymovement EVENT_OBJ_ID_PLAYER, MossdeepCity_SpaceCenter_2F_Movement_2725A4
waitmovement 0
msgbox MossdeepCity_SpaceCenter_2F_Text_22446E, MSGBOX_DEFAULT
trainerbattle_no_intro TRAINER_GRUNT_35, MossdeepCity_SpaceCenter_2F_Text_224499
applymovement 5, MossdeepCity_SpaceCenter_2F_Movement_223E81
waitmovement 0
- applymovement 255, MossdeepCity_SpaceCenter_2F_Movement_2725A8
+ applymovement EVENT_OBJ_ID_PLAYER, MossdeepCity_SpaceCenter_2F_Movement_2725A8
waitmovement 0
msgbox MossdeepCity_SpaceCenter_2F_Text_2244AB, MSGBOX_DEFAULT
trainerbattle_no_intro TRAINER_GRUNT_36, MossdeepCity_SpaceCenter_2F_Text_2244F1
diff --git a/data/maps/MtChimney/scripts.inc b/data/maps/MtChimney/scripts.inc
index 88df5692e..ee89519bc 100644
--- a/data/maps/MtChimney/scripts.inc
+++ b/data/maps/MtChimney/scripts.inc
@@ -62,7 +62,7 @@ MtChimney_EventScript_22EE0B:: @ 822EE0B
call_if 1, MtChimney_EventScript_22EEC7
compare VAR_FACING, 2
call_if 1, MtChimney_EventScript_22EED2
- applymovement 255, MtChimney_Movement_2725A4
+ applymovement EVENT_OBJ_ID_PLAYER, MtChimney_Movement_2725A4
waitmovement 0
msgbox MtChimney_Text_22FC3D, MSGBOX_DEFAULT
closemessage
diff --git a/data/maps/MtChimney_CableCarStation/scripts.inc b/data/maps/MtChimney_CableCarStation/scripts.inc
index 89fc9fd38..664f75935 100644
--- a/data/maps/MtChimney_CableCarStation/scripts.inc
+++ b/data/maps/MtChimney_CableCarStation/scripts.inc
@@ -19,7 +19,7 @@ MtChimney_CableCarStation_MapScript2_22AC1D: @ 822AC1D
MtChimney_CableCarStation_EventScript_22AC27:: @ 822AC27
lockall
- applymovement 255, MtChimney_CableCarStation_Movement_22ACB4
+ applymovement EVENT_OBJ_ID_PLAYER, MtChimney_CableCarStation_Movement_22ACB4
applymovement 1, MtChimney_CableCarStation_Movement_22ACAA
waitmovement 0
setvar VAR_0x40A3, 0
@@ -42,7 +42,7 @@ MtChimney_CableCarStation_EventScript_22AC6C:: @ 822AC6C
msgbox MtChimney_CableCarStation_Text_22ACF8, MSGBOX_DEFAULT
closemessage
applymovement 1, MtChimney_CableCarStation_Movement_22ACA5
- applymovement 255, MtChimney_CableCarStation_Movement_22ACAF
+ applymovement EVENT_OBJ_ID_PLAYER, MtChimney_CableCarStation_Movement_22ACAF
waitmovement 0
setvar VAR_0x8004, 1
setvar VAR_0x40A3, 2
diff --git a/data/maps/MtPyre_Summit/scripts.inc b/data/maps/MtPyre_Summit/scripts.inc
index 13caaab1e..3e19bc95a 100644
--- a/data/maps/MtPyre_Summit/scripts.inc
+++ b/data/maps/MtPyre_Summit/scripts.inc
@@ -32,7 +32,7 @@ MtPyre_Summit_EventScript_232030:: @ 8232030
MtPyre_Summit_EventScript_23203C:: @ 823203C
playbgm MUS_AQA_0, 0
- applymovement 255, MtPyre_Summit_Movement_2725B2
+ applymovement EVENT_OBJ_ID_PLAYER, MtPyre_Summit_Movement_2725B2
waitmovement 0
applymovement 2, MtPyre_Summit_Movement_2725AA
waitmovement 0
@@ -86,7 +86,7 @@ MtPyre_Summit_EventScript_2320EC:: @ 82320EC
MtPyre_Summit_EventScript_2320F7:: @ 82320F7
applymovement 3, MtPyre_Summit_Movement_23212C
waitmovement 0
- applymovement 255, MtPyre_Summit_Movement_2725A8
+ applymovement EVENT_OBJ_ID_PLAYER, MtPyre_Summit_Movement_2725A8
waitmovement 0
return
@@ -98,7 +98,7 @@ MtPyre_Summit_EventScript_23210C:: @ 823210C
MtPyre_Summit_EventScript_232117:: @ 8232117
applymovement 3, MtPyre_Summit_Movement_232132
waitmovement 0
- applymovement 255, MtPyre_Summit_Movement_2725A4
+ applymovement EVENT_OBJ_ID_PLAYER, MtPyre_Summit_Movement_2725A4
waitmovement 0
return
@@ -210,7 +210,7 @@ MtPyre_Summit_EventScript_232204:: @ 8232204
end
MtPyre_Summit_EventScript_232210:: @ 8232210
- applymovement 255, MtPyre_Summit_Movement_2725A6
+ applymovement EVENT_OBJ_ID_PLAYER, MtPyre_Summit_Movement_2725A6
waitmovement 0
delay 60
compare VAR_0x8008, 0
@@ -250,49 +250,49 @@ MtPyre_Summit_EventScript_232210:: @ 8232210
end
MtPyre_Summit_EventScript_2322C4:: @ 82322C4
- applymovement 255, MtPyre_Summit_Movement_2323C4
+ applymovement EVENT_OBJ_ID_PLAYER, MtPyre_Summit_Movement_2323C4
applymovement 2, MtPyre_Summit_Movement_2323B6
applymovement 8, MtPyre_Summit_Movement_2323BD
waitmovement 0
return
MtPyre_Summit_EventScript_2322DD:: @ 82322DD
- applymovement 255, MtPyre_Summit_Movement_2323CB
+ applymovement EVENT_OBJ_ID_PLAYER, MtPyre_Summit_Movement_2323CB
applymovement 2, MtPyre_Summit_Movement_2323B6
applymovement 8, MtPyre_Summit_Movement_2323BD
waitmovement 0
return
MtPyre_Summit_EventScript_2322F6:: @ 82322F6
- applymovement 255, MtPyre_Summit_Movement_2323D2
+ applymovement EVENT_OBJ_ID_PLAYER, MtPyre_Summit_Movement_2323D2
applymovement 2, MtPyre_Summit_Movement_2323B6
applymovement 8, MtPyre_Summit_Movement_2323BD
waitmovement 0
return
MtPyre_Summit_EventScript_23230F:: @ 823230F
- applymovement 255, MtPyre_Summit_Movement_2323AE
+ applymovement EVENT_OBJ_ID_PLAYER, MtPyre_Summit_Movement_2323AE
applymovement 2, MtPyre_Summit_Movement_2323E7
applymovement 8, MtPyre_Summit_Movement_2323D8
waitmovement 0
return
MtPyre_Summit_EventScript_232328:: @ 8232328
- applymovement 255, MtPyre_Summit_Movement_2323B2
+ applymovement EVENT_OBJ_ID_PLAYER, MtPyre_Summit_Movement_2323B2
applymovement 2, MtPyre_Summit_Movement_2323E7
applymovement 8, MtPyre_Summit_Movement_2323DD
waitmovement 0
return
MtPyre_Summit_EventScript_232341:: @ 8232341
- applymovement 255, MtPyre_Summit_Movement_2323B2
+ applymovement EVENT_OBJ_ID_PLAYER, MtPyre_Summit_Movement_2323B2
applymovement 2, MtPyre_Summit_Movement_2323E7
applymovement 8, MtPyre_Summit_Movement_2323E2
waitmovement 0
return
MtPyre_Summit_EventScript_23235A:: @ 823235A
- applymovement 255, MtPyre_Summit_Movement_2323EA
+ applymovement EVENT_OBJ_ID_PLAYER, MtPyre_Summit_Movement_2323EA
applymovement 8, MtPyre_Summit_Movement_2323ED
waitmovement 0
applymovement 2, MtPyre_Summit_Movement_2725A8
@@ -300,7 +300,7 @@ MtPyre_Summit_EventScript_23235A:: @ 823235A
return
MtPyre_Summit_EventScript_232376:: @ 8232376
- applymovement 255, MtPyre_Summit_Movement_2323EA
+ applymovement EVENT_OBJ_ID_PLAYER, MtPyre_Summit_Movement_2323EA
applymovement 8, MtPyre_Summit_Movement_2323F3
waitmovement 0
applymovement 2, MtPyre_Summit_Movement_2725A8
@@ -308,7 +308,7 @@ MtPyre_Summit_EventScript_232376:: @ 8232376
return
MtPyre_Summit_EventScript_232392:: @ 8232392
- applymovement 255, MtPyre_Summit_Movement_2323EA
+ applymovement EVENT_OBJ_ID_PLAYER, MtPyre_Summit_Movement_2323EA
applymovement 8, MtPyre_Summit_Movement_2323F8
waitmovement 0
applymovement 2, MtPyre_Summit_Movement_2725A8
diff --git a/data/maps/NavelRock_Top/scripts.inc b/data/maps/NavelRock_Top/scripts.inc
index 8ae17cb37..f2b107947 100644
--- a/data/maps/NavelRock_Top/scripts.inc
+++ b/data/maps/NavelRock_Top/scripts.inc
@@ -38,12 +38,12 @@ NavelRock_Top_EventScript_26915B:: @ 826915B
NavelRock_Top_EventScript_26916F:: @ 826916F
lockall
setvar VAR_TEMP_1, 1
- special SpawnScriptEventObject
+ special SpawnCameraObject
setvar VAR_0x8004, 3
setvar VAR_0x8005, 35
special sub_813B80C
applymovement 1, NavelRock_Top_Movement_269243
- applymovement 127, NavelRock_Top_Movement_269230
+ applymovement EVENT_OBJ_ID_CAMERA, NavelRock_Top_Movement_269230
waitmovement 0
delay 50
setweather 0
@@ -56,10 +56,10 @@ NavelRock_Top_EventScript_26916F:: @ 826916F
setvar VAR_0x8004, 3
setvar VAR_0x8005, 35
special sub_813B80C
- applymovement 127, NavelRock_Top_Movement_269234
+ applymovement EVENT_OBJ_ID_CAMERA, NavelRock_Top_Movement_269234
applymovement 1, NavelRock_Top_Movement_26923A
waitmovement 0
- special RemoveScriptEventObject
+ special RemoveCameraObject
setvar VAR_0x8004, 250
setvar VAR_0x8005, 70
setvar VAR_0x8006, 0
diff --git a/data/maps/NewMauville_Entrance/scripts.inc b/data/maps/NewMauville_Entrance/scripts.inc
index 714a20b6b..9efc423db 100644
--- a/data/maps/NewMauville_Entrance/scripts.inc
+++ b/data/maps/NewMauville_Entrance/scripts.inc
@@ -23,7 +23,7 @@ NewMauville_Entrance_MapScript1_2372FB: @ 82372FB
NewMauville_Entrance_EventScript_2372FF:: @ 82372FF
lockall
- applymovement 255, NewMauville_Entrance_Movement_2725A6
+ applymovement EVENT_OBJ_ID_PLAYER, NewMauville_Entrance_Movement_2725A6
waitmovement 0
msgbox NewMauville_Entrance_Text_237382, MSGBOX_DEFAULT
checkitem ITEM_BASEMENT_KEY, 1
diff --git a/data/maps/OldaleTown/scripts.inc b/data/maps/OldaleTown/scripts.inc
index d2e808116..80867cca6 100644
--- a/data/maps/OldaleTown/scripts.inc
+++ b/data/maps/OldaleTown/scripts.inc
@@ -54,20 +54,20 @@ OldaleTown_EventScript_1E8EFC:: @ 81E8EFC
OldaleTown_EventScript_1E8F47:: @ 81E8F47
applymovement 2, OldaleTown_Movement_1E8FD7
- applymovement 255, OldaleTown_Movement_1E9001
+ applymovement EVENT_OBJ_ID_PLAYER, OldaleTown_Movement_1E9001
waitmovement 0
goto OldaleTown_EventScript_1E8F8C
end
OldaleTown_EventScript_1E8F5E:: @ 81E8F5E
applymovement 2, OldaleTown_Movement_1E8FE2
- applymovement 255, OldaleTown_Movement_1E900B
+ applymovement EVENT_OBJ_ID_PLAYER, OldaleTown_Movement_1E900B
waitmovement 0
goto OldaleTown_EventScript_1E8F8C
end
OldaleTown_EventScript_1E8F75:: @ 81E8F75
- applymovement 255, OldaleTown_Movement_1E8FF9
+ applymovement EVENT_OBJ_ID_PLAYER, OldaleTown_Movement_1E8FF9
applymovement 2, OldaleTown_Movement_1E8FCE
waitmovement 0
goto OldaleTown_EventScript_1E8F8C
@@ -206,7 +206,7 @@ OldaleTown_EventScript_1E901F:: @ 81E901F
OldaleTown_EventScript_1E903F:: @ 81E903F
lockall
- applymovement 255, OldaleTown_Movement_1E9182
+ applymovement EVENT_OBJ_ID_PLAYER, OldaleTown_Movement_1E9182
applymovement 3, OldaleTown_Movement_1E9185
waitmovement 0
msgbox OldaleTown_Text_1E9313, MSGBOX_DEFAULT
@@ -233,7 +233,7 @@ OldaleTown_EventScript_1E9086:: @ 81E9086
lockall
applymovement 4, OldaleTown_Movement_1E9170
waitmovement 0
- applymovement 255, OldaleTown_Movement_2725A8
+ applymovement EVENT_OBJ_ID_PLAYER, OldaleTown_Movement_2725A8
waitmovement 0
setvar VAR_0x8009, 1
goto OldaleTown_EventScript_1E90E6
@@ -243,7 +243,7 @@ OldaleTown_EventScript_1E90A6:: @ 81E90A6
lockall
applymovement 4, OldaleTown_Movement_1E9173
waitmovement 0
- applymovement 255, OldaleTown_Movement_2725A8
+ applymovement EVENT_OBJ_ID_PLAYER, OldaleTown_Movement_2725A8
waitmovement 0
setvar VAR_0x8009, 1
goto OldaleTown_EventScript_1E90E6
@@ -253,7 +253,7 @@ OldaleTown_EventScript_1E90C6:: @ 81E90C6
lockall
applymovement 4, OldaleTown_Movement_1E9175
waitmovement 0
- applymovement 255, OldaleTown_Movement_2725A8
+ applymovement EVENT_OBJ_ID_PLAYER, OldaleTown_Movement_2725A8
waitmovement 0
setvar VAR_0x8009, 1
goto OldaleTown_EventScript_1E90E6
@@ -299,7 +299,7 @@ OldaleTown_EventScript_1E9148:: @ 81E9148
return
OldaleTown_EventScript_1E915E:: @ 81E915E
- applymovement 255, OldaleTown_Movement_1E917E
+ applymovement EVENT_OBJ_ID_PLAYER, OldaleTown_Movement_1E917E
applymovement 4, OldaleTown_Movement_1E9177
waitmovement 0
return
diff --git a/data/maps/PetalburgCity/scripts.inc b/data/maps/PetalburgCity/scripts.inc
index bdffb6814..beee8d57e 100644
--- a/data/maps/PetalburgCity/scripts.inc
+++ b/data/maps/PetalburgCity/scripts.inc
@@ -33,7 +33,7 @@ PetalburgCity_EventScript_1DC32E:: @ 81DC32E
special SavePlayerParty
special PutZigzagoonInPlayerParty
applymovement 2, PetalburgCity_Movement_1DC451
- applymovement 255, PetalburgCity_Movement_1DC430
+ applymovement EVENT_OBJ_ID_PLAYER, PetalburgCity_Movement_1DC430
waitmovement 0
msgbox PetalburgCity_Text_1EC1F8, MSGBOX_DEFAULT
special StartWallyTutorialBattle
@@ -58,14 +58,14 @@ PetalburgCity_EventScript_1DC390:: @ 81DC390
lockall
setflag FLAG_SPECIAL_FLAG_0x4000
applymovement 5, PetalburgCity_Movement_1DC41B
- applymovement 255, PetalburgCity_Movement_1DC406
+ applymovement EVENT_OBJ_ID_PLAYER, PetalburgCity_Movement_1DC406
waitmovement 0
setvar VAR_0x8004, 7
setvar VAR_0x8005, 5
opendoor VAR_0x8004, VAR_0x8005
waitdooranim
applymovement 5, PetalburgCity_Movement_1DC42D
- applymovement 255, PetalburgCity_Movement_1DC418
+ applymovement EVENT_OBJ_ID_PLAYER, PetalburgCity_Movement_1DC418
waitmovement 0
setflag FLAG_HIDE_PETALBURG_CITY_WALLYS_UNCLE
hideobjectat 255, MAP_PETALBURG_CITY
@@ -286,7 +286,7 @@ PetalburgCity_EventScript_1DC4CA:: @ 81DC4CA
call_if 1, PetalburgCity_EventScript_1DC5FF
msgbox PetalburgCity_Text_1DC91B, MSGBOX_DEFAULT
applymovement 8, PetalburgCity_Movement_2725A8
- applymovement 255, PetalburgCity_Movement_2725A8
+ applymovement EVENT_OBJ_ID_PLAYER, PetalburgCity_Movement_2725A8
waitmovement 0
msgbox PetalburgCity_Text_1DC93E, MSGBOX_DEFAULT
closemessage
@@ -299,7 +299,7 @@ PetalburgCity_EventScript_1DC4CA:: @ 81DC4CA
PetalburgCity_EventScript_1DC57F:: @ 81DC57F
applymovement 8, PetalburgCity_Movement_1DC615
waitmovement 0
- applymovement 255, PetalburgCity_Movement_2725AA
+ applymovement EVENT_OBJ_ID_PLAYER, PetalburgCity_Movement_2725AA
waitmovement 0
return
@@ -311,38 +311,38 @@ PetalburgCity_EventScript_1DC594:: @ 81DC594
PetalburgCity_EventScript_1DC59F:: @ 81DC59F
applymovement 8, PetalburgCity_Movement_1DC61D
waitmovement 0
- applymovement 255, PetalburgCity_Movement_2725A6
+ applymovement EVENT_OBJ_ID_PLAYER, PetalburgCity_Movement_2725A6
waitmovement 0
return
PetalburgCity_EventScript_1DC5B4:: @ 81DC5B4
applymovement 8, PetalburgCity_Movement_1DC622
waitmovement 0
- applymovement 255, PetalburgCity_Movement_2725A6
+ applymovement EVENT_OBJ_ID_PLAYER, PetalburgCity_Movement_2725A6
waitmovement 0
return
PetalburgCity_EventScript_1DC5C9:: @ 81DC5C9
applymovement 8, PetalburgCity_Movement_1DC628
- applymovement 255, PetalburgCity_Movement_1DC665
+ applymovement EVENT_OBJ_ID_PLAYER, PetalburgCity_Movement_1DC665
waitmovement 0
return
PetalburgCity_EventScript_1DC5DB:: @ 81DC5DB
applymovement 8, PetalburgCity_Movement_1DC633
- applymovement 255, PetalburgCity_Movement_1DC66F
+ applymovement EVENT_OBJ_ID_PLAYER, PetalburgCity_Movement_1DC66F
waitmovement 0
return
PetalburgCity_EventScript_1DC5ED:: @ 81DC5ED
applymovement 8, PetalburgCity_Movement_1DC641
- applymovement 255, PetalburgCity_Movement_1DC67C
+ applymovement EVENT_OBJ_ID_PLAYER, PetalburgCity_Movement_1DC67C
waitmovement 0
return
PetalburgCity_EventScript_1DC5FF:: @ 81DC5FF
applymovement 8, PetalburgCity_Movement_1DC64C
- applymovement 255, PetalburgCity_Movement_1DC686
+ applymovement EVENT_OBJ_ID_PLAYER, PetalburgCity_Movement_1DC686
waitmovement 0
return
@@ -544,7 +544,7 @@ PetalburgCity_EventScript_1DC6E9:: @ 81DC6E9
waitmovement 0
applymovement 9, PetalburgCity_Movement_1DC7DB
waitmovement 0
- applymovement 255, PetalburgCity_Movement_2725A8
+ applymovement EVENT_OBJ_ID_PLAYER, PetalburgCity_Movement_2725A8
waitmovement 0
setvar VAR_0x40D1, 1
msgbox PetalburgCity_Text_1DCB31, MSGBOX_DEFAULT
@@ -573,25 +573,25 @@ PetalburgCity_EventScript_1DC6E9:: @ 81DC6E9
end
PetalburgCity_EventScript_1DC78E:: @ 81DC78E
- applymovement 255, PetalburgCity_Movement_1DC7EE
+ applymovement EVENT_OBJ_ID_PLAYER, PetalburgCity_Movement_1DC7EE
applymovement 9, PetalburgCity_Movement_1DC7E0
waitmovement 0
return
PetalburgCity_EventScript_1DC7A0:: @ 81DC7A0
- applymovement 255, PetalburgCity_Movement_1DC802
+ applymovement EVENT_OBJ_ID_PLAYER, PetalburgCity_Movement_1DC802
applymovement 9, PetalburgCity_Movement_1DC7F5
waitmovement 0
return
PetalburgCity_EventScript_1DC7B2:: @ 81DC7B2
- applymovement 255, PetalburgCity_Movement_1DC815
+ applymovement EVENT_OBJ_ID_PLAYER, PetalburgCity_Movement_1DC815
applymovement 9, PetalburgCity_Movement_1DC808
waitmovement 0
return
PetalburgCity_EventScript_1DC7C4:: @ 81DC7C4
- applymovement 255, PetalburgCity_Movement_1DC828
+ applymovement EVENT_OBJ_ID_PLAYER, PetalburgCity_Movement_1DC828
applymovement 9, PetalburgCity_Movement_1DC81B
waitmovement 0
return
diff --git a/data/maps/PetalburgCity_Gym/scripts.inc b/data/maps/PetalburgCity_Gym/scripts.inc
index 6a58c20f7..9b0f4bcb5 100644
--- a/data/maps/PetalburgCity_Gym/scripts.inc
+++ b/data/maps/PetalburgCity_Gym/scripts.inc
@@ -91,14 +91,14 @@ PetalburgCity_Gym_EventScript_2049A4:: @ 82049A4
msgbox PetalburgCity_Gym_Text_205B32, MSGBOX_DEFAULT
msgbox PetalburgCity_Gym_Text_205B4C, MSGBOX_DEFAULT
closemessage
- applymovement 255, PetalburgCity_Gym_Movement_2725AA
+ applymovement EVENT_OBJ_ID_PLAYER, PetalburgCity_Gym_Movement_2725AA
applymovement 10, PetalburgCity_Gym_Movement_2049EC
waitmovement 0
playse SE_KAIDAN
removeobject 10
setflag FLAG_HIDE_PETALBURG_CITY_WALLY
delay 30
- applymovement 255, PetalburgCity_Gym_Movement_2725A6
+ applymovement EVENT_OBJ_ID_PLAYER, PetalburgCity_Gym_Movement_2725A6
waitmovement 0
msgbox PetalburgCity_Gym_Text_205C40, MSGBOX_DEFAULT
setvar VAR_0x4085, 2
@@ -238,13 +238,13 @@ PetalburgCity_Gym_EventScript_204C43:: @ 8204C43
applymovement 10, PetalburgCity_Gym_Movement_2050E1
waitmovement 0
applymovement 1, PetalburgCity_Gym_Movement_2725A8
- applymovement 255, PetalburgCity_Gym_Movement_2725A8
+ applymovement EVENT_OBJ_ID_PLAYER, PetalburgCity_Gym_Movement_2725A8
waitmovement 0
return
PetalburgCity_Gym_EventScript_204C5F:: @ 8204C5F
applymovement 1, PetalburgCity_Gym_Movement_2725AA
- applymovement 255, PetalburgCity_Gym_Movement_2725AA
+ applymovement EVENT_OBJ_ID_PLAYER, PetalburgCity_Gym_Movement_2725AA
applymovement 10, PetalburgCity_Gym_Movement_2050EB
waitmovement 0
return
@@ -252,25 +252,25 @@ PetalburgCity_Gym_EventScript_204C5F:: @ 8204C5F
PetalburgCity_Gym_EventScript_204C78:: @ 8204C78
applymovement 1, PetalburgCity_Gym_Movement_2725AA
applymovement 10, PetalburgCity_Gym_Movement_205102
- applymovement 255, PetalburgCity_Gym_Movement_205111
+ applymovement EVENT_OBJ_ID_PLAYER, PetalburgCity_Gym_Movement_205111
waitmovement 0
return
PetalburgCity_Gym_EventScript_204C91:: @ 8204C91
applymovement 10, PetalburgCity_Gym_Movement_2050F2
- applymovement 255, PetalburgCity_Gym_Movement_205109
+ applymovement EVENT_OBJ_ID_PLAYER, PetalburgCity_Gym_Movement_205109
waitmovement 0
return
PetalburgCity_Gym_EventScript_204CA3:: @ 8204CA3
applymovement 10, PetalburgCity_Gym_Movement_205102
- applymovement 255, PetalburgCity_Gym_Movement_20511B
+ applymovement EVENT_OBJ_ID_PLAYER, PetalburgCity_Gym_Movement_20511B
waitmovement 0
return
PetalburgCity_Gym_EventScript_204CB5:: @ 8204CB5
applymovement 10, PetalburgCity_Gym_Movement_2050FA
- applymovement 255, PetalburgCity_Gym_Movement_205123
+ applymovement EVENT_OBJ_ID_PLAYER, PetalburgCity_Gym_Movement_205123
waitmovement 0
return
@@ -281,19 +281,19 @@ PetalburgCity_Gym_EventScript_204CC7:: @ 8204CC7
PetalburgCity_Gym_EventScript_204CD2:: @ 8204CD2
applymovement 1, PetalburgCity_Gym_Movement_2725AA
- applymovement 255, PetalburgCity_Gym_Movement_2725A6
+ applymovement EVENT_OBJ_ID_PLAYER, PetalburgCity_Gym_Movement_2725A6
waitmovement 0
return
PetalburgCity_Gym_EventScript_204CE4:: @ 8204CE4
applymovement 1, PetalburgCity_Gym_Movement_2725A8
- applymovement 255, PetalburgCity_Gym_Movement_2725A4
+ applymovement EVENT_OBJ_ID_PLAYER, PetalburgCity_Gym_Movement_2725A4
waitmovement 0
return
PetalburgCity_Gym_EventScript_204CF6:: @ 8204CF6
applymovement 1, PetalburgCity_Gym_Movement_2725A4
- applymovement 255, PetalburgCity_Gym_Movement_2725A8
+ applymovement EVENT_OBJ_ID_PLAYER, PetalburgCity_Gym_Movement_2725A8
waitmovement 0
return
@@ -524,7 +524,7 @@ PetalburgCity_Gym_EventScript_204FE2:: @ 8204FE2
PetalburgCity_Gym_EventScript_204FED:: @ 8204FED
applymovement 11, PetalburgCity_Gym_Movement_2050C3
waitmovement 0
- applymovement 255, PetalburgCity_Gym_Movement_2725A4
+ applymovement EVENT_OBJ_ID_PLAYER, PetalburgCity_Gym_Movement_2725A4
applymovement 1, PetalburgCity_Gym_Movement_2725A4
waitmovement 0
return
@@ -532,7 +532,7 @@ PetalburgCity_Gym_EventScript_204FED:: @ 8204FED
PetalburgCity_Gym_EventScript_205009:: @ 8205009
applymovement 11, PetalburgCity_Gym_Movement_2050CA
waitmovement 0
- applymovement 255, PetalburgCity_Gym_Movement_2725AA
+ applymovement EVENT_OBJ_ID_PLAYER, PetalburgCity_Gym_Movement_2725AA
applymovement 1, PetalburgCity_Gym_Movement_2725AA
waitmovement 0
return
@@ -540,7 +540,7 @@ PetalburgCity_Gym_EventScript_205009:: @ 8205009
PetalburgCity_Gym_EventScript_205025:: @ 8205025
applymovement 11, PetalburgCity_Gym_Movement_2050D0
waitmovement 0
- applymovement 255, PetalburgCity_Gym_Movement_2725AA
+ applymovement EVENT_OBJ_ID_PLAYER, PetalburgCity_Gym_Movement_2725AA
applymovement 1, PetalburgCity_Gym_Movement_2725AA
waitmovement 0
return
@@ -548,19 +548,19 @@ PetalburgCity_Gym_EventScript_205025:: @ 8205025
PetalburgCity_Gym_EventScript_205041:: @ 8205041
applymovement 11, PetalburgCity_Gym_Movement_20507E
applymovement 1, PetalburgCity_Gym_Movement_2725AA
- applymovement 255, PetalburgCity_Gym_Movement_2050A1
+ applymovement EVENT_OBJ_ID_PLAYER, PetalburgCity_Gym_Movement_2050A1
waitmovement 0
return
PetalburgCity_Gym_EventScript_20505A:: @ 820505A
applymovement 11, PetalburgCity_Gym_Movement_205089
- applymovement 255, PetalburgCity_Gym_Movement_2050A9
+ applymovement EVENT_OBJ_ID_PLAYER, PetalburgCity_Gym_Movement_2050A9
waitmovement 0
return
PetalburgCity_Gym_EventScript_20506C:: @ 820506C
applymovement 11, PetalburgCity_Gym_Movement_205094
- applymovement 255, PetalburgCity_Gym_Movement_2050B1
+ applymovement EVENT_OBJ_ID_PLAYER, PetalburgCity_Gym_Movement_2050B1
waitmovement 0
return
diff --git a/data/maps/PetalburgWoods/scripts.inc b/data/maps/PetalburgWoods/scripts.inc
index 387955f73..7dab2747b 100644
--- a/data/maps/PetalburgWoods/scripts.inc
+++ b/data/maps/PetalburgWoods/scripts.inc
@@ -30,7 +30,7 @@ PetalburgWoods_EventScript_22DFD7:: @ 822DFD7
applymovement 3, PetalburgWoods_Movement_22E1F9
waitmovement 0
call PetalburgWoods_EventScript_22E138
- applymovement 255, PetalburgWoods_Movement_22E1E0
+ applymovement EVENT_OBJ_ID_PLAYER, PetalburgWoods_Movement_22E1E0
applymovement 4, PetalburgWoods_Movement_22E1C2
waitmovement 0
goto PetalburgWoods_EventScript_22E1A7
@@ -41,7 +41,7 @@ PetalburgWoods_EventScript_22E079:: @ 822E079
call PetalburgWoods_EventScript_22E124
applymovement 4, PetalburgWoods_Movement_22E1D0
waitmovement 0
- applymovement 255, PetalburgWoods_Movement_2725A4
+ applymovement EVENT_OBJ_ID_PLAYER, PetalburgWoods_Movement_2725A4
waitmovement 0
msgbox PetalburgWoods_Text_22E34F, MSGBOX_DEFAULT
closemessage
@@ -59,14 +59,14 @@ PetalburgWoods_EventScript_22E079:: @ 822E079
applymovement 4, PetalburgWoods_Movement_22E1EA
waitmovement 0
msgbox PetalburgWoods_Text_22E457, MSGBOX_DEFAULT
- applymovement 255, PetalburgWoods_Movement_2725A6
+ applymovement EVENT_OBJ_ID_PLAYER, PetalburgWoods_Movement_2725A6
waitmovement 0
msgbox PetalburgWoods_Text_22E4A5, MSGBOX_DEFAULT
trainerbattle_no_intro TRAINER_GRUNT_8, PetalburgWoods_Text_22E542
applymovement 3, PetalburgWoods_Movement_22E1F9
waitmovement 0
call PetalburgWoods_EventScript_22E138
- applymovement 255, PetalburgWoods_Movement_22E1E0
+ applymovement EVENT_OBJ_ID_PLAYER, PetalburgWoods_Movement_22E1E0
applymovement 4, PetalburgWoods_Movement_22E1D7
waitmovement 0
goto PetalburgWoods_EventScript_22E1A7
@@ -85,7 +85,7 @@ PetalburgWoods_EventScript_22E138:: @ 822E138
applymovement 3, PetalburgWoods_Movement_22E1FD
waitmovement 0
removeobject 3
- applymovement 255, PetalburgWoods_Movement_2725AA
+ applymovement EVENT_OBJ_ID_PLAYER, PetalburgWoods_Movement_2725AA
waitmovement 0
msgbox PetalburgWoods_Text_22E63D, MSGBOX_DEFAULT
giveitem_std ITEM_GREAT_BALL
diff --git a/data/maps/Route101/scripts.inc b/data/maps/Route101/scripts.inc
index f724914ba..eaf9d7118 100644
--- a/data/maps/Route101/scripts.inc
+++ b/data/maps/Route101/scripts.inc
@@ -23,7 +23,7 @@ Route101_EventScript_1EBCDE:: @ 81EBCDE
closemessage
setobjectxy 2, 0, 15
setobjectxy 4, 0, 16
- applymovement 255, Route101_Movement_1EBDC2
+ applymovement EVENT_OBJ_ID_PLAYER, Route101_Movement_1EBDC2
applymovement 2, Route101_Movement_1EBDE7
applymovement 4, Route101_Movement_1EBDB5
waitmovement 0
@@ -45,7 +45,7 @@ Route101_EventScript_1EBD4E:: @ 81EBD4E
lockall
msgbox Route101_Text_1EBEDF, MSGBOX_DEFAULT
closemessage
- applymovement 255, Route101_Movement_1EBD90
+ applymovement EVENT_OBJ_ID_PLAYER, Route101_Movement_1EBD90
waitmovement 0
releaseall
end
@@ -54,7 +54,7 @@ Route101_EventScript_1EBD64:: @ 81EBD64
lockall
msgbox Route101_Text_1EBEDF, MSGBOX_DEFAULT
closemessage
- applymovement 255, Route101_Movement_1EBD92
+ applymovement EVENT_OBJ_ID_PLAYER, Route101_Movement_1EBD92
waitmovement 0
releaseall
end
@@ -63,7 +63,7 @@ Route101_EventScript_1EBD7A:: @ 81EBD7A
lockall
msgbox Route101_Text_1EBEDF, MSGBOX_DEFAULT
closemessage
- applymovement 255, Route101_Movement_1EBD94
+ applymovement EVENT_OBJ_ID_PLAYER, Route101_Movement_1EBD94
waitmovement 0
releaseall
end
@@ -223,7 +223,7 @@ Route101_EventScript_1EBE16:: @ 81EBE16
fadescreen 1
removeobject 4
setobjectxy 255, 6, 13
- applymovement 255, Route101_Movement_2725A4
+ applymovement EVENT_OBJ_ID_PLAYER, Route101_Movement_2725A4
waitmovement 0
special ChooseStarter
waitstate
diff --git a/data/maps/Route103/scripts.inc b/data/maps/Route103/scripts.inc
index e79ddd041..e2b60e800 100644
--- a/data/maps/Route103/scripts.inc
+++ b/data/maps/Route103/scripts.inc
@@ -111,7 +111,7 @@ Route103_EventScript_1EC50A:: @ 81EC50A
end
Route103_EventScript_1EC53D:: @ 81EC53D
- applymovement 255, Route103_Movement_1EC5C8
+ applymovement EVENT_OBJ_ID_PLAYER, Route103_Movement_1EC5C8
applymovement 2, Route103_Movement_1EC5BE
waitmovement 0
playse SE_DANSA
@@ -121,7 +121,7 @@ Route103_EventScript_1EC53D:: @ 81EC53D
end
Route103_EventScript_1EC561:: @ 81EC561
- applymovement 255, Route103_Movement_1EC5D6
+ applymovement EVENT_OBJ_ID_PLAYER, Route103_Movement_1EC5D6
applymovement 2, Route103_Movement_1EC5CE
waitmovement 0
playse SE_DANSA
diff --git a/data/maps/Route104/scripts.inc b/data/maps/Route104/scripts.inc
index 1d591793d..c6f019edb 100644
--- a/data/maps/Route104/scripts.inc
+++ b/data/maps/Route104/scripts.inc
@@ -55,12 +55,12 @@ Route104_EventScript_1ECCB3:: @ 81ECCB3
setflag FLAG_HIDE_RUSBORO_CITY_RIVAL
setvar VAR_0x405A, 8
setvar VAR_0x4063, 2
- applymovement 255, Route104_Movement_2725A6
+ applymovement EVENT_OBJ_ID_PLAYER, Route104_Movement_2725A6
waitmovement 0
delay 10
addobject 34
clearflag FLAG_HIDE_ROUTE_104_RIVAL
- applymovement 255, Route104_Movement_1ECF86
+ applymovement EVENT_OBJ_ID_PLAYER, Route104_Movement_1ECF86
waitmovement 0
applymovement 34, Route104_Movement_1ECF8A
waitmovement 0
@@ -113,7 +113,7 @@ Route104_EventScript_1ECD4B:: @ 81ECD4B
closemessage
delay 30
setflag FLAG_0x0FD
- applymovement 255, Route104_Movement_1ECDCD
+ applymovement EVENT_OBJ_ID_PLAYER, Route104_Movement_1ECDCD
applymovement 34, Route104_Movement_1ECDC8
msgbox Route104_Text_1EDCB1, MSGBOX_DEFAULT
closemessage
@@ -204,7 +204,7 @@ Route104_EventScript_1ECE6F:: @ 81ECE6F
closemessage
delay 30
setflag FLAG_0x0FD
- applymovement 255, Route104_Movement_1ECDCD
+ applymovement EVENT_OBJ_ID_PLAYER, Route104_Movement_1ECDCD
applymovement 34, Route104_Movement_1ECDC8
msgbox Route104_Text_1EDFC6, MSGBOX_DEFAULT
closemessage
@@ -372,7 +372,7 @@ Route104_EventScript_1ED099:: @ 81ED099
applymovement 8, Route104_Movement_1ED359
waitmovement 0
removeobject 8
- applymovement 255, Route104_Movement_1ED34F
+ applymovement EVENT_OBJ_ID_PLAYER, Route104_Movement_1ED34F
waitmovement 0
hideobjectat 255, MAP_ROUTE104
call Route104_EventScript_2720A0
@@ -384,13 +384,13 @@ Route104_EventScript_1ED099:: @ 81ED099
Route104_EventScript_1ED0D9:: @ 81ED0D9
applymovement 7, Route104_Movement_1ED28C
- applymovement 255, Route104_Movement_1ED28C
+ applymovement EVENT_OBJ_ID_PLAYER, Route104_Movement_1ED28C
waitmovement 0
goto Route104_EventScript_1ED139
Route104_EventScript_1ED0EF:: @ 81ED0EF
applymovement 7, Route104_Movement_1ED1C8
- applymovement 255, Route104_Movement_1ED1C8
+ applymovement EVENT_OBJ_ID_PLAYER, Route104_Movement_1ED1C8
waitmovement 0
pokenavcall Route104_Text_1EE336
waitmessage
@@ -401,7 +401,7 @@ Route104_EventScript_1ED0EF:: @ 81ED0EF
closemessage
delay 30
setflag FLAG_0x132
- applymovement 255, Route104_Movement_1ED22A
+ applymovement EVENT_OBJ_ID_PLAYER, Route104_Movement_1ED22A
applymovement 7, Route104_Movement_1ED22A, MAP_ROUTE104
waitmovement 7, MAP_ROUTE104
waitmovement 0
@@ -409,11 +409,11 @@ Route104_EventScript_1ED0EF:: @ 81ED0EF
Route104_EventScript_1ED139:: @ 81ED139
delay 50
- applymovement 255, Route104_Movement_1ED353
+ applymovement EVENT_OBJ_ID_PLAYER, Route104_Movement_1ED353
waitmovement 0
call Route104_EventScript_2720A8
showobjectat 255, MAP_DEWFORD_TOWN
- applymovement 255, Route104_Movement_1ED355
+ applymovement EVENT_OBJ_ID_PLAYER, Route104_Movement_1ED355
waitmovement 0
setobjectxyperm 2, 12, 8
addobject 2
diff --git a/data/maps/Route109/scripts.inc b/data/maps/Route109/scripts.inc
index 52f6437ae..51430fd91 100644
--- a/data/maps/Route109/scripts.inc
+++ b/data/maps/Route109/scripts.inc
@@ -15,19 +15,19 @@ Route109_EventScript_1EE760:: @ 81EE760
end
Route109_EventScript_1EE7A5:: @ 81EE7A5
- applymovement 255, Route109_Movement_1EE8FD
+ applymovement EVENT_OBJ_ID_PLAYER, Route109_Movement_1EE8FD
waitmovement 0
goto Route109_EventScript_1EE7D5
end
Route109_EventScript_1EE7B5:: @ 81EE7B5
- applymovement 255, Route109_Movement_1EE905
+ applymovement EVENT_OBJ_ID_PLAYER, Route109_Movement_1EE905
waitmovement 0
goto Route109_EventScript_1EE7D5
end
Route109_EventScript_1EE7C5:: @ 81EE7C5
- applymovement 255, Route109_Movement_1EE908
+ applymovement EVENT_OBJ_ID_PLAYER, Route109_Movement_1EE908
waitmovement 0
goto Route109_EventScript_1EE7D5
end
@@ -36,12 +36,12 @@ Route109_EventScript_1EE7D5:: @ 81EE7D5
hideobjectat 255, MAP_ROUTE109
call Route109_EventScript_2720A0
applymovement 1, Route109_Movement_1EE84F
- applymovement 255, Route109_Movement_1EE84F
+ applymovement EVENT_OBJ_ID_PLAYER, Route109_Movement_1EE84F
waitmovement 0
delay 50
call Route109_EventScript_2720A8
showobjectat 255, MAP_DEWFORD_TOWN
- applymovement 255, Route109_Movement_1EE900
+ applymovement EVENT_OBJ_ID_PLAYER, Route109_Movement_1EE900
waitmovement 0
addobject 4
clearflag FLAG_HIDE_MR_BRINEY_BOAT_DEWFORD_TOWN
diff --git a/data/maps/Route110_SeasideCyclingRoadNorthEntrance/scripts.inc b/data/maps/Route110_SeasideCyclingRoadNorthEntrance/scripts.inc
index ee859748f..a1c3383a4 100644
--- a/data/maps/Route110_SeasideCyclingRoadNorthEntrance/scripts.inc
+++ b/data/maps/Route110_SeasideCyclingRoadNorthEntrance/scripts.inc
@@ -21,7 +21,7 @@ Route110_SeasideCyclingRoadNorthEntrance_EventScript_26EA84:: @ 826EA84
Route110_SeasideCyclingRoadNorthEntrance_EventScript_26EA9F:: @ 826EA9F
msgbox Route110_SeasideCyclingRoadNorthEntrance_Text_26EB48, MSGBOX_DEFAULT
closemessage
- applymovement 255, Route110_SeasideCyclingRoadNorthEntrance_Movement_26EAB4
+ applymovement EVENT_OBJ_ID_PLAYER, Route110_SeasideCyclingRoadNorthEntrance_Movement_26EAB4
waitmovement 0
releaseall
end
diff --git a/data/maps/Route110_SeasideCyclingRoadSouthEntrance/scripts.inc b/data/maps/Route110_SeasideCyclingRoadSouthEntrance/scripts.inc
index 9bd6c845e..4e78df507 100644
--- a/data/maps/Route110_SeasideCyclingRoadSouthEntrance/scripts.inc
+++ b/data/maps/Route110_SeasideCyclingRoadSouthEntrance/scripts.inc
@@ -39,7 +39,7 @@ Route110_SeasideCyclingRoadSouthEntrance_EventScript_26EBF6:: @ 826EBF6
Route110_SeasideCyclingRoadSouthEntrance_EventScript_26EBFC:: @ 826EBFC
msgbox Route110_SeasideCyclingRoadSouthEntrance_Text_26ECAA, MSGBOX_DEFAULT
closemessage
- applymovement 255, Route110_SeasideCyclingRoadSouthEntrance_Movement_26EC11
+ applymovement EVENT_OBJ_ID_PLAYER, Route110_SeasideCyclingRoadSouthEntrance_Movement_26EC11
waitmovement 0
releaseall
end
diff --git a/data/maps/Route110_TrickHouseEnd/scripts.inc b/data/maps/Route110_TrickHouseEnd/scripts.inc
index 892d9e65f..6f1adef4f 100644
--- a/data/maps/Route110_TrickHouseEnd/scripts.inc
+++ b/data/maps/Route110_TrickHouseEnd/scripts.inc
@@ -241,11 +241,11 @@ Route110_TrickHouseEnd_EventScript_26B041:: @ 826B041
applymovement 1, Route110_TrickHouseEnd_Movement_26B08B
waitmovement 0
playse SE_W153
- applymovement 255, Route110_TrickHouseEnd_Movement_2725AA
+ applymovement EVENT_OBJ_ID_PLAYER, Route110_TrickHouseEnd_Movement_2725AA
waitmovement 0
msgbox Route110_TrickHouseEnd_Text_26B8BD, MSGBOX_DEFAULT
closemessage
- applymovement 255, Route110_TrickHouseEnd_Movement_26B089
+ applymovement EVENT_OBJ_ID_PLAYER, Route110_TrickHouseEnd_Movement_26B089
waitmovement 0
delay 4
turnobject 1, 4
diff --git a/data/maps/Route110_TrickHouseEntrance/scripts.inc b/data/maps/Route110_TrickHouseEntrance/scripts.inc
index 22750f536..c4f30dedb 100644
--- a/data/maps/Route110_TrickHouseEntrance/scripts.inc
+++ b/data/maps/Route110_TrickHouseEntrance/scripts.inc
@@ -243,9 +243,9 @@ Route110_TrickHouseEntrance_EventScript_269D3B:: @ 8269D3B
Route110_TrickHouseEntrance_EventScript_269D6E:: @ 8269D6E
playse SE_PIN
- applymovement 255, Route110_TrickHouseEntrance_Movement_272598
+ applymovement EVENT_OBJ_ID_PLAYER, Route110_TrickHouseEntrance_Movement_272598
waitmovement 0
- applymovement 255, Route110_TrickHouseEntrance_Movement_27259A
+ applymovement EVENT_OBJ_ID_PLAYER, Route110_TrickHouseEntrance_Movement_27259A
waitmovement 0
compare VAR_0x4044, 0
call_if 1, Route110_TrickHouseEntrance_EventScript_269DEE
@@ -513,9 +513,9 @@ Route110_TrickHouseEntrance_EventScript_26A126:: @ 826A126
setmetatile 5, 1, 537, 0
special DrawWholeMapView
delay 20
- applymovement 255, Route110_TrickHouseEntrance_Movement_2725C9
+ applymovement EVENT_OBJ_ID_PLAYER, Route110_TrickHouseEntrance_Movement_2725C9
waitmovement 0
- applymovement 255, Route110_TrickHouseEntrance_Movement_26A1A7
+ applymovement EVENT_OBJ_ID_PLAYER, Route110_TrickHouseEntrance_Movement_26A1A7
waitmovement 0
switch VAR_0x4044
case 0, Route110_TrickHouseEntrance_EventScript_26A1A9
diff --git a/data/maps/Route111/scripts.inc b/data/maps/Route111/scripts.inc
index 2be579ab6..8d5de281b 100644
--- a/data/maps/Route111/scripts.inc
+++ b/data/maps/Route111/scripts.inc
@@ -227,22 +227,22 @@ Route111_EventScript_1F0F45:: @ 81F0F45
end
Route111_EventScript_1F0F7C:: @ 81F0F7C
- applymovement 255, Route111_Movement_1F0FA8
+ applymovement EVENT_OBJ_ID_PLAYER, Route111_Movement_1F0FA8
waitmovement 0
return
Route111_EventScript_1F0F87:: @ 81F0F87
- applymovement 255, Route111_Movement_1F0FAA
+ applymovement EVENT_OBJ_ID_PLAYER, Route111_Movement_1F0FAA
waitmovement 0
return
Route111_EventScript_1F0F92:: @ 81F0F92
- applymovement 255, Route111_Movement_1F0FAC
+ applymovement EVENT_OBJ_ID_PLAYER, Route111_Movement_1F0FAC
waitmovement 0
return
Route111_EventScript_1F0F9D:: @ 81F0F9D
- applymovement 255, Route111_Movement_1F0FAE
+ applymovement EVENT_OBJ_ID_PLAYER, Route111_Movement_1F0FAE
waitmovement 0
return
@@ -298,7 +298,7 @@ Route111_EventScript_1F0FE7:: @ 81F0FE7
waitmovement 0
removeobject 1
call Route111_EventScript_1F1143
- applymovement 255, Route111_Movement_1F114F
+ applymovement EVENT_OBJ_ID_PLAYER, Route111_Movement_1F114F
waitmovement 0
call Route111_EventScript_1F113C
addobject 2
@@ -316,7 +316,7 @@ Route111_EventScript_1F0FE7:: @ 81F0FE7
waitmovement 0
removeobject 2
call Route111_EventScript_1F1143
- applymovement 255, Route111_Movement_1F114F
+ applymovement EVENT_OBJ_ID_PLAYER, Route111_Movement_1F114F
waitmovement 0
call Route111_EventScript_1F113C
addobject 3
@@ -334,7 +334,7 @@ Route111_EventScript_1F0FE7:: @ 81F0FE7
waitmovement 0
removeobject 3
call Route111_EventScript_1F1143
- applymovement 255, Route111_Movement_1F114F
+ applymovement EVENT_OBJ_ID_PLAYER, Route111_Movement_1F114F
waitmovement 0
call Route111_EventScript_1F113C
addobject 4
diff --git a/data/maps/Route112_CableCarStation/scripts.inc b/data/maps/Route112_CableCarStation/scripts.inc
index a7d3e8c7a..5873b2d53 100644
--- a/data/maps/Route112_CableCarStation/scripts.inc
+++ b/data/maps/Route112_CableCarStation/scripts.inc
@@ -20,7 +20,7 @@ Route112_CableCarStation_MapScript2_22AAE9: @ 822AAE9
Route112_CableCarStation_EventScript_22AAF3:: @ 822AAF3
lockall
- applymovement 255, Route112_CableCarStation_Movement_22AB80
+ applymovement EVENT_OBJ_ID_PLAYER, Route112_CableCarStation_Movement_22AB80
applymovement 1, Route112_CableCarStation_Movement_22AB76
waitmovement 0
setvar VAR_0x40A3, 0
@@ -43,7 +43,7 @@ Route112_CableCarStation_EventScript_22AB38:: @ 822AB38
msgbox Route112_CableCarStation_Text_22ABC2, MSGBOX_DEFAULT
closemessage
applymovement 1, Route112_CableCarStation_Movement_22AB71
- applymovement 255, Route112_CableCarStation_Movement_22AB7B
+ applymovement EVENT_OBJ_ID_PLAYER, Route112_CableCarStation_Movement_22AB7B
waitmovement 0
setvar VAR_0x8004, 0
setvar VAR_0x40A3, 1
diff --git a/data/maps/Route114_FossilManiacsTunnel/scripts.inc b/data/maps/Route114_FossilManiacsTunnel/scripts.inc
index 7b2a91810..1159128cc 100644
--- a/data/maps/Route114_FossilManiacsTunnel/scripts.inc
+++ b/data/maps/Route114_FossilManiacsTunnel/scripts.inc
@@ -26,7 +26,7 @@ Route114_FossilManiacsTunnel_EventScript_22AF53:: @ 822AF53
Route114_FossilManiacsTunnel_EventScript_22AF66:: @ 822AF66
lockall
applymovement 1, Route114_FossilManiacsTunnel_Movement_2725A6
- applymovement 255, Route114_FossilManiacsTunnel_Movement_2725AA
+ applymovement EVENT_OBJ_ID_PLAYER, Route114_FossilManiacsTunnel_Movement_2725AA
waitmovement 0
msgbox Route114_FossilManiacsTunnel_Text_22B1F7, MSGBOX_DEFAULT
setvar VAR_0x40CC, 2
diff --git a/data/maps/Route116/scripts.inc b/data/maps/Route116/scripts.inc
index 2ad7ea58b..ab8377b1c 100644
--- a/data/maps/Route116/scripts.inc
+++ b/data/maps/Route116/scripts.inc
@@ -156,7 +156,7 @@ Route116_EventScript_1F2D84:: @ 81F2D84
Route116_EventScript_1F2D95:: @ 81F2D95
lockall
applymovement 11, Route116_Movement_2725A8
- applymovement 255, Route116_Movement_2725A4
+ applymovement EVENT_OBJ_ID_PLAYER, Route116_Movement_2725A4
waitmovement 0
msgbox Route116_Text_1F309D, MSGBOX_DEFAULT
setvar VAR_0x406F, 2
diff --git a/data/maps/Route118/scripts.inc b/data/maps/Route118/scripts.inc
index 8d1cf48e4..e7aac8ac8 100644
--- a/data/maps/Route118/scripts.inc
+++ b/data/maps/Route118/scripts.inc
@@ -70,7 +70,7 @@ Route118_EventScript_1F3E85:: @ 81F3E85
Route118_EventScript_1F3E8E:: @ 81F3E8E
lockall
setvar VAR_0x8008, 0
- applymovement 255, Route118_Movement_2725B2
+ applymovement EVENT_OBJ_ID_PLAYER, Route118_Movement_2725B2
waitmovement 0
applymovement 19, Route118_Movement_1F3F61
waitmovement 0
@@ -80,7 +80,7 @@ Route118_EventScript_1F3E8E:: @ 81F3E8E
Route118_EventScript_1F3EAE:: @ 81F3EAE
lockall
setvar VAR_0x8008, 1
- applymovement 255, Route118_Movement_2725B2
+ applymovement EVENT_OBJ_ID_PLAYER, Route118_Movement_2725B2
waitmovement 0
goto Route118_EventScript_1F3EE4
end
@@ -88,7 +88,7 @@ Route118_EventScript_1F3EAE:: @ 81F3EAE
Route118_EventScript_1F3EC4:: @ 81F3EC4
lockall
setvar VAR_0x8008, 2
- applymovement 255, Route118_Movement_2725B2
+ applymovement EVENT_OBJ_ID_PLAYER, Route118_Movement_2725B2
waitmovement 0
applymovement 19, Route118_Movement_1F3F63
waitmovement 0
@@ -114,19 +114,19 @@ Route118_EventScript_1F3EE4:: @ 81F3EE4
end
Route118_EventScript_1F3F28:: @ 81F3F28
- applymovement 255, Route118_Movement_1F3F5E
+ applymovement EVENT_OBJ_ID_PLAYER, Route118_Movement_1F3F5E
applymovement 19, Route118_Movement_1F3F69
waitmovement 0
return
Route118_EventScript_1F3F3A:: @ 81F3F3A
- applymovement 255, Route118_Movement_1F3F5E
+ applymovement EVENT_OBJ_ID_PLAYER, Route118_Movement_1F3F5E
applymovement 19, Route118_Movement_1F3F74
waitmovement 0
return
Route118_EventScript_1F3F4C:: @ 81F3F4C
- applymovement 255, Route118_Movement_1F3F5E
+ applymovement EVENT_OBJ_ID_PLAYER, Route118_Movement_1F3F5E
applymovement 19, Route118_Movement_1F3F7E
waitmovement 0
return
diff --git a/data/maps/Route119/scripts.inc b/data/maps/Route119/scripts.inc
index fd1d127d1..544330f9a 100644
--- a/data/maps/Route119/scripts.inc
+++ b/data/maps/Route119/scripts.inc
@@ -52,7 +52,7 @@ Route119_EventScript_1F4488:: @ 81F4488
call_if 1, Route119_EventScript_1F46C6
compare VAR_TEMP_1, 2
call_if 1, Route119_EventScript_1F46D1
- applymovement 255, Route119_Movement_2725AA
+ applymovement EVENT_OBJ_ID_PLAYER, Route119_Movement_2725AA
waitmovement 0
delay 30
compare VAR_TEMP_1, 1
@@ -208,13 +208,13 @@ Route119_EventScript_1F46D1:: @ 81F46D1
return
Route119_EventScript_1F46DC:: @ 81F46DC
- applymovement 255, Route119_Movement_1F471E
+ applymovement EVENT_OBJ_ID_PLAYER, Route119_Movement_1F471E
applymovement 25, Route119_Movement_1F473D
waitmovement 0
return
Route119_EventScript_1F46EE:: @ 81F46EE
- applymovement 255, Route119_Movement_1F4723
+ applymovement EVENT_OBJ_ID_PLAYER, Route119_Movement_1F4723
applymovement 25, Route119_Movement_1F4747
waitmovement 0
return
diff --git a/data/maps/Route119_WeatherInstitute_2F/scripts.inc b/data/maps/Route119_WeatherInstitute_2F/scripts.inc
index 35dd538df..1feda2f60 100644
--- a/data/maps/Route119_WeatherInstitute_2F/scripts.inc
+++ b/data/maps/Route119_WeatherInstitute_2F/scripts.inc
@@ -51,7 +51,7 @@ Route119_WeatherInstitute_2F_EventScript_26FFC8:: @ 826FFC8
closemessage
addobject 7
applymovement 7, Route119_WeatherInstitute_2F_Movement_270170
- applymovement 255, Route119_WeatherInstitute_2F_Movement_27017C
+ applymovement EVENT_OBJ_ID_PLAYER, Route119_WeatherInstitute_2F_Movement_27017C
waitmovement 0
msgbox Route119_WeatherInstitute_2F_Text_270568, MSGBOX_DEFAULT
closemessage
@@ -73,7 +73,7 @@ Route119_WeatherInstitute_2F_EventScript_26FFC8:: @ 826FFC8
removeobject 3
removeobject 8
removeobject 7
- applymovement 255, Route119_WeatherInstitute_2F_Movement_270184
+ applymovement EVENT_OBJ_ID_PLAYER, Route119_WeatherInstitute_2F_Movement_270184
waitmovement 0
fadescreen 0
applymovement 5, Route119_WeatherInstitute_2F_Movement_270187
diff --git a/data/maps/Route120/scripts.inc b/data/maps/Route120/scripts.inc
index ba16b1a2f..1eed96ece 100644
--- a/data/maps/Route120/scripts.inc
+++ b/data/maps/Route120/scripts.inc
@@ -240,7 +240,7 @@ Route120_EventScript_1F571C:: @ 81F571C
Route120_EventScript_1F572C:: @ 81F572C
applymovement 31, Route120_Movement_2725AA
- applymovement 255, Route120_Movement_2725A6
+ applymovement EVENT_OBJ_ID_PLAYER, Route120_Movement_2725A6
waitmovement 0
msgbox Route120_Text_1F5BAF, MSGBOX_DEFAULT
giveitem_std ITEM_DEVON_SCOPE
@@ -264,12 +264,12 @@ Route120_EventScript_1F572C:: @ 81F572C
end
Route120_EventScript_1F57A3:: @ 81F57A3
- applymovement 255, Route120_Movement_2725A4
+ applymovement EVENT_OBJ_ID_PLAYER, Route120_Movement_2725A4
waitmovement 0
return
Route120_EventScript_1F57AE:: @ 81F57AE
- applymovement 255, Route120_Movement_1F57B9
+ applymovement EVENT_OBJ_ID_PLAYER, Route120_Movement_1F57B9
waitmovement 0
return
diff --git a/data/maps/Route121_SafariZoneEntrance/scripts.inc b/data/maps/Route121_SafariZoneEntrance/scripts.inc
index 12fa8112e..dcc427b0d 100644
--- a/data/maps/Route121_SafariZoneEntrance/scripts.inc
+++ b/data/maps/Route121_SafariZoneEntrance/scripts.inc
@@ -8,7 +8,7 @@ Route121_SafariZoneEntrance_MapScript2_22BBC1: @ 822BBC1
Route121_SafariZoneEntrance_EventScript_22BBCB:: @ 822BBCB
lockall
- applymovement 255, Route121_SafariZoneEntrance_Movement_22BBDD
+ applymovement EVENT_OBJ_ID_PLAYER, Route121_SafariZoneEntrance_Movement_22BBDD
waitmovement 0
setvar VAR_0x40A4, 0
releaseall
@@ -46,7 +46,7 @@ Route121_SafariZoneEntrance_EventScript_22BC0E:: @ 822BC0E
Route121_SafariZoneEntrance_EventScript_22BC18:: @ 822BC18
lockall
- applymovement 255, Route121_SafariZoneEntrance_Movement_2725A6
+ applymovement EVENT_OBJ_ID_PLAYER, Route121_SafariZoneEntrance_Movement_2725A6
waitmovement 0
showmoneybox 0, 0, 0
msgbox Route121_SafariZoneEntrance_Text_2A4F74, MSGBOX_YESNO
@@ -78,7 +78,7 @@ Route121_SafariZoneEntrance_EventScript_22BC48:: @ 822BC48
hidemoneybox
nop
nop
- applymovement 255, Route121_SafariZoneEntrance_Movement_22BD18
+ applymovement EVENT_OBJ_ID_PLAYER, Route121_SafariZoneEntrance_Movement_22BD18
waitmovement 0
special EnterSafariMode
setvar VAR_0x40A4, 2
@@ -116,7 +116,7 @@ Route121_SafariZoneEntrance_EventScript_22BD06:: @ 822BD06
hidemoneybox
nop
nop
- applymovement 255, Route121_SafariZoneEntrance_Movement_22BD16
+ applymovement EVENT_OBJ_ID_PLAYER, Route121_SafariZoneEntrance_Movement_22BD16
waitmovement 0
releaseall
end
diff --git a/data/maps/Route128/scripts.inc b/data/maps/Route128/scripts.inc
index 2443051f5..b593528ab 100644
--- a/data/maps/Route128/scripts.inc
+++ b/data/maps/Route128/scripts.inc
@@ -31,12 +31,12 @@ Route128_EventScript_1F6B57:: @ 81F6B57
closemessage
applymovement 5, Route128_Movement_1F6CBB
waitmovement 0
- applymovement 255, Route128_Movement_2725A6
+ applymovement EVENT_OBJ_ID_PLAYER, Route128_Movement_2725A6
waitmovement 0
msgbox Route128_Text_1F6F1E, MSGBOX_DEFAULT
closemessage
applymovement 4, Route128_Movement_1F6C96
- applymovement 255, Route128_Movement_2725A4
+ applymovement EVENT_OBJ_ID_PLAYER, Route128_Movement_2725A4
applymovement 5, Route128_Movement_1F6CA8
waitmovement 0
msgbox Route128_Text_1F704F, MSGBOX_DEFAULT
@@ -54,12 +54,12 @@ Route128_EventScript_1F6B57:: @ 81F6B57
addobject 3
applymovement 3, Route128_Movement_1F6C87
waitmovement 0
- applymovement 255, Route128_Movement_2725A8
+ applymovement EVENT_OBJ_ID_PLAYER, Route128_Movement_2725A8
waitmovement 0
msgbox Route128_Text_1F70C9, MSGBOX_DEFAULT
closemessage
applymovement 3, Route128_Movement_1F6C85
- applymovement 255, Route128_Movement_2725A6
+ applymovement EVENT_OBJ_ID_PLAYER, Route128_Movement_2725A6
waitmovement 0
msgbox Route128_Text_1F70EA, MSGBOX_DEFAULT
applymovement 3, Route128_Movement_2725AA
diff --git a/data/maps/RustboroCity/scripts.inc b/data/maps/RustboroCity/scripts.inc
index 147c51177..26b1357a5 100644
--- a/data/maps/RustboroCity/scripts.inc
+++ b/data/maps/RustboroCity/scripts.inc
@@ -34,7 +34,7 @@ RustboroCity_MapScript2_1E070B: @ 81E070B
RustboroCity_EventScript_1E0715:: @ 81E0715
lockall
setvar VAR_0x4063, 1
- applymovement 255, RustboroCity_Movement_1E0850
+ applymovement EVENT_OBJ_ID_PLAYER, RustboroCity_Movement_1E0850
waitmovement 0
playse SE_KAIDAN
delay 10
@@ -46,7 +46,7 @@ RustboroCity_EventScript_1E0715:: @ 81E0715
waitmovement 0
applymovement 15, RustboroCity_Movement_27259A
waitmovement 0
- applymovement 255, RustboroCity_Movement_2725A6
+ applymovement EVENT_OBJ_ID_PLAYER, RustboroCity_Movement_2725A6
waitmovement 0
applymovement 15, RustboroCity_Movement_1E084E
waitmovement 0
@@ -347,7 +347,7 @@ RustboroCity_EventScript_1E0A6E:: @ 81E0A6E
RustboroCity_EventScript_1E0A79:: @ 81E0A79
applymovement 9, RustboroCity_Movement_1E0AD5
waitmovement 0
- applymovement 255, RustboroCity_Movement_2725A6
+ applymovement EVENT_OBJ_ID_PLAYER, RustboroCity_Movement_2725A6
waitmovement 0
return
@@ -511,7 +511,7 @@ RustboroCity_EventScript_1E0B6F:: @ 81E0B6F
waitmovement 0
applymovement 9, RustboroCity_Movement_27259A
waitmovement 0
- applymovement 255, RustboroCity_Movement_2725AA
+ applymovement EVENT_OBJ_ID_PLAYER, RustboroCity_Movement_2725AA
waitmovement 0
return
@@ -523,7 +523,7 @@ RustboroCity_EventScript_1E0B9B:: @ 81E0B9B
waitmovement 0
applymovement 9, RustboroCity_Movement_27259A
waitmovement 0
- applymovement 255, RustboroCity_Movement_2725AC
+ applymovement EVENT_OBJ_ID_PLAYER, RustboroCity_Movement_2725AC
waitmovement 0
return
@@ -535,7 +535,7 @@ RustboroCity_EventScript_1E0BC7:: @ 81E0BC7
waitmovement 0
applymovement 9, RustboroCity_Movement_27259A
waitmovement 0
- applymovement 255, RustboroCity_Movement_2725A6
+ applymovement EVENT_OBJ_ID_PLAYER, RustboroCity_Movement_2725A6
waitmovement 0
return
@@ -549,7 +549,7 @@ RustboroCity_EventScript_1E0BF3:: @ 81E0BF3
waitmovement 0
applymovement 9, RustboroCity_Movement_1E0C29
waitmovement 0
- applymovement 255, RustboroCity_Movement_2725A6
+ applymovement EVENT_OBJ_ID_PLAYER, RustboroCity_Movement_2725A6
waitmovement 0
return
@@ -619,7 +619,7 @@ RustboroCity_EventScript_1E0CDC:: @ 81E0CDC
waitmovement 0
applymovement 9, RustboroCity_Movement_27259A
waitmovement 0
- applymovement 255, RustboroCity_Movement_2725AA
+ applymovement EVENT_OBJ_ID_PLAYER, RustboroCity_Movement_2725AA
waitmovement 0
return
@@ -631,7 +631,7 @@ RustboroCity_EventScript_1E0D08:: @ 81E0D08
waitmovement 0
applymovement 9, RustboroCity_Movement_27259A
waitmovement 0
- applymovement 255, RustboroCity_Movement_2725AE
+ applymovement EVENT_OBJ_ID_PLAYER, RustboroCity_Movement_2725AE
waitmovement 0
return
@@ -643,7 +643,7 @@ RustboroCity_EventScript_1E0D34:: @ 81E0D34
waitmovement 0
applymovement 9, RustboroCity_Movement_27259A
waitmovement 0
- applymovement 255, RustboroCity_Movement_2725A6
+ applymovement EVENT_OBJ_ID_PLAYER, RustboroCity_Movement_2725A6
waitmovement 0
return
@@ -657,7 +657,7 @@ RustboroCity_EventScript_1E0D60:: @ 81E0D60
waitmovement 0
applymovement 9, RustboroCity_Movement_1E0C29
waitmovement 0
- applymovement 255, RustboroCity_Movement_2725A6
+ applymovement EVENT_OBJ_ID_PLAYER, RustboroCity_Movement_2725A6
waitmovement 0
return
@@ -708,7 +708,7 @@ RustboroCity_EventScript_1E0DF3:: @ 81E0DF3
waitmovement 0
applymovement 14, RustboroCity_Movement_1E120E
waitmovement 0
- applymovement 255, RustboroCity_Movement_2725A6
+ applymovement EVENT_OBJ_ID_PLAYER, RustboroCity_Movement_2725A6
waitmovement 0
goto RustboroCity_EventScript_1E0FF3
@@ -724,7 +724,7 @@ RustboroCity_EventScript_1E0E33:: @ 81E0E33
waitmovement 0
applymovement 14, RustboroCity_Movement_1E1215
waitmovement 0
- applymovement 255, RustboroCity_Movement_2725A6
+ applymovement EVENT_OBJ_ID_PLAYER, RustboroCity_Movement_2725A6
waitmovement 0
goto RustboroCity_EventScript_1E0FF3
@@ -740,7 +740,7 @@ RustboroCity_EventScript_1E0E73:: @ 81E0E73
waitmovement 0
applymovement 14, RustboroCity_Movement_1E121B
waitmovement 0
- applymovement 255, RustboroCity_Movement_2725A6
+ applymovement EVENT_OBJ_ID_PLAYER, RustboroCity_Movement_2725A6
waitmovement 0
goto RustboroCity_EventScript_1E0FF3
@@ -756,7 +756,7 @@ RustboroCity_EventScript_1E0EB3:: @ 81E0EB3
waitmovement 0
applymovement 14, RustboroCity_Movement_1E1220
waitmovement 0
- applymovement 255, RustboroCity_Movement_2725A6
+ applymovement EVENT_OBJ_ID_PLAYER, RustboroCity_Movement_2725A6
waitmovement 0
goto RustboroCity_EventScript_1E0FF3
@@ -772,7 +772,7 @@ RustboroCity_EventScript_1E0EF3:: @ 81E0EF3
waitmovement 0
applymovement 14, RustboroCity_Movement_1E1224
waitmovement 0
- applymovement 255, RustboroCity_Movement_2725A6
+ applymovement EVENT_OBJ_ID_PLAYER, RustboroCity_Movement_2725A6
waitmovement 0
goto RustboroCity_EventScript_1E0FF3
@@ -788,7 +788,7 @@ RustboroCity_EventScript_1E0F33:: @ 81E0F33
waitmovement 0
applymovement 14, RustboroCity_Movement_1E1227
waitmovement 0
- applymovement 255, RustboroCity_Movement_2725A6
+ applymovement EVENT_OBJ_ID_PLAYER, RustboroCity_Movement_2725A6
waitmovement 0
goto RustboroCity_EventScript_1E0FF3
@@ -804,7 +804,7 @@ RustboroCity_EventScript_1E0F73:: @ 81E0F73
waitmovement 0
applymovement 14, RustboroCity_Movement_1E122B
waitmovement 0
- applymovement 255, RustboroCity_Movement_2725A6
+ applymovement EVENT_OBJ_ID_PLAYER, RustboroCity_Movement_2725A6
waitmovement 0
goto RustboroCity_EventScript_1E0FF3
@@ -820,7 +820,7 @@ RustboroCity_EventScript_1E0FB3:: @ 81E0FB3
waitmovement 0
applymovement 14, RustboroCity_Movement_1E1230
waitmovement 0
- applymovement 255, RustboroCity_Movement_2725A6
+ applymovement EVENT_OBJ_ID_PLAYER, RustboroCity_Movement_2725A6
waitmovement 0
goto RustboroCity_EventScript_1E0FF3
diff --git a/data/maps/RustboroCity_DevonCorp_3F/scripts.inc b/data/maps/RustboroCity_DevonCorp_3F/scripts.inc
index dc170677a..ce5a555ef 100644
--- a/data/maps/RustboroCity_DevonCorp_3F/scripts.inc
+++ b/data/maps/RustboroCity_DevonCorp_3F/scripts.inc
@@ -39,13 +39,13 @@ RustboroCity_DevonCorp_3F_EventScript_21246E:: @ 821246E
closemessage
playbgm MUS_TSURETEK, 0
applymovement 2, RustboroCity_DevonCorp_3F_Movement_212534
- applymovement 255, RustboroCity_DevonCorp_3F_Movement_212558
+ applymovement EVENT_OBJ_ID_PLAYER, RustboroCity_DevonCorp_3F_Movement_212558
waitmovement 0
msgbox RustboroCity_DevonCorp_3F_Text_212E2F, MSGBOX_DEFAULT
closemessage
fadedefaultbgm
applymovement 2, RustboroCity_DevonCorp_3F_Movement_212543
- applymovement 255, RustboroCity_DevonCorp_3F_Movement_212566
+ applymovement EVENT_OBJ_ID_PLAYER, RustboroCity_DevonCorp_3F_Movement_212566
waitmovement 0
msgbox RustboroCity_DevonCorp_3F_Text_212609, MSGBOX_DEFAULT
giveitem_std ITEM_LETTER
diff --git a/data/maps/RusturfTunnel/scripts.inc b/data/maps/RusturfTunnel/scripts.inc
index 1eaaba66c..48dcaffc9 100644
--- a/data/maps/RusturfTunnel/scripts.inc
+++ b/data/maps/RusturfTunnel/scripts.inc
@@ -86,13 +86,13 @@ RusturfTunnel_EventScript_22CEAE:: @ 822CEAE
end
RusturfTunnel_EventScript_22CF5D:: @ 822CF5D
- applymovement 255, RusturfTunnel_Movement_22D042
+ applymovement EVENT_OBJ_ID_PLAYER, RusturfTunnel_Movement_22D042
applymovement 1, RusturfTunnel_Movement_22D067
waitmovement 0
return
RusturfTunnel_EventScript_22CF6F:: @ 822CF6F
- applymovement 255, RusturfTunnel_Movement_22D045
+ applymovement EVENT_OBJ_ID_PLAYER, RusturfTunnel_Movement_22D045
applymovement 1, RusturfTunnel_Movement_22D06C
waitmovement 0
applymovement 10, RusturfTunnel_Movement_2725AA
@@ -100,7 +100,7 @@ RusturfTunnel_EventScript_22CF6F:: @ 822CF6F
return
RusturfTunnel_EventScript_22CF8B:: @ 822CF8B
- applymovement 255, RusturfTunnel_Movement_22D045
+ applymovement EVENT_OBJ_ID_PLAYER, RusturfTunnel_Movement_22D045
applymovement 1, RusturfTunnel_Movement_22D06C
waitmovement 0
applymovement 10, RusturfTunnel_Movement_2725AA
@@ -110,7 +110,7 @@ RusturfTunnel_EventScript_22CF8B:: @ 822CF8B
RusturfTunnel_EventScript_22CFA7:: @ 822CFA7
applymovement 1, RusturfTunnel_Movement_2725A6
waitmovement 0
- applymovement 255, RusturfTunnel_Movement_2725AA
+ applymovement EVENT_OBJ_ID_PLAYER, RusturfTunnel_Movement_2725AA
waitmovement 0
return
@@ -135,7 +135,7 @@ RusturfTunnel_EventScript_22CFD4:: @ 822CFD4
return
RusturfTunnel_EventScript_22CFE6:: @ 822CFE6
- applymovement 255, RusturfTunnel_Movement_22D02F
+ applymovement EVENT_OBJ_ID_PLAYER, RusturfTunnel_Movement_22D02F
applymovement 10, RusturfTunnel_Movement_22D023
applymovement 1, RusturfTunnel_Movement_22D058
waitmovement 0
@@ -317,7 +317,7 @@ RusturfTunnel_EventScript_22D0C2:: @ 822D0C2
msgbox RusturfTunnel_Text_22D2E1, MSGBOX_DEFAULT
giveitem_std ITEM_DEVON_GOODS
closemessage
- applymovement 255, RusturfTunnel_Movement_22D178
+ applymovement EVENT_OBJ_ID_PLAYER, RusturfTunnel_Movement_22D178
applymovement 6, RusturfTunnel_Movement_22D181
waitmovement 0
removeobject 6
@@ -325,7 +325,7 @@ RusturfTunnel_EventScript_22D0C2:: @ 822D0C2
addobject 5
applymovement 5, RusturfTunnel_Movement_22D18B
waitmovement 0
- applymovement 255, RusturfTunnel_Movement_22D17E
+ applymovement EVENT_OBJ_ID_PLAYER, RusturfTunnel_Movement_22D17E
applymovement 5, RusturfTunnel_Movement_22D1A4
waitmovement 0
msgbox RusturfTunnel_Text_22D395, MSGBOX_DEFAULT
@@ -338,7 +338,7 @@ RusturfTunnel_EventScript_22D0C2:: @ 822D0C2
waitbuttonpress
waitmoncry
closemessage
- applymovement 255, RusturfTunnel_Movement_22D19F
+ applymovement EVENT_OBJ_ID_PLAYER, RusturfTunnel_Movement_22D19F
applymovement 5, RusturfTunnel_Movement_22D193
applymovement 7, RusturfTunnel_Movement_22D1A7
waitmovement 0
diff --git a/data/maps/SSTidalCorridor/scripts.inc b/data/maps/SSTidalCorridor/scripts.inc
index 15b0ba8e1..f844986c6 100644
--- a/data/maps/SSTidalCorridor/scripts.inc
+++ b/data/maps/SSTidalCorridor/scripts.inc
@@ -204,11 +204,11 @@ SSTidalCorridor_EventScript_23C219:: @ 823C219
lockall
applymovement 5, SSTidalCorridor_Movement_23C26D
waitmovement 0
- applymovement 255, SSTidalCorridor_Movement_2725A8
+ applymovement EVENT_OBJ_ID_PLAYER, SSTidalCorridor_Movement_2725A8
waitmovement 0
msgbox SSTidalCorridor_Text_23C28F, MSGBOX_DEFAULT
closemessage
- applymovement 255, SSTidalCorridor_Movement_23C27D
+ applymovement EVENT_OBJ_ID_PLAYER, SSTidalCorridor_Movement_23C27D
applymovement 1, SSTidalCorridor_Movement_23C284
applymovement 5, SSTidalCorridor_Movement_23C275
waitmovement 0
diff --git a/data/maps/SafariZone_South/scripts.inc b/data/maps/SafariZone_South/scripts.inc
index 6579b6571..8e9a20ad6 100644
--- a/data/maps/SafariZone_South/scripts.inc
+++ b/data/maps/SafariZone_South/scripts.inc
@@ -9,7 +9,7 @@ SafariZone_South_MapScript2_23D284: @ 823D284
SafariZone_South_EventScript_23D28E:: @ 823D28E
lockall
- applymovement 255, SafariZone_South_Movement_23D2C5
+ applymovement EVENT_OBJ_ID_PLAYER, SafariZone_South_Movement_23D2C5
waitmovement 0
applymovement 1, SafariZone_South_Movement_23D2C7
waitmovement 0
@@ -77,7 +77,7 @@ SafariZone_South_EventScript_23D31A:: @ 823D31A
SafariZone_South_EventScript_23D33F:: @ 823D33F
applymovement 1, SafariZone_South_Movement_23D38A
waitmovement 0
- applymovement 255, SafariZone_South_Movement_23D385
+ applymovement EVENT_OBJ_ID_PLAYER, SafariZone_South_Movement_23D385
waitmovement 0
goto SafariZone_South_EventScript_23D373
end
@@ -85,7 +85,7 @@ SafariZone_South_EventScript_23D33F:: @ 823D33F
SafariZone_South_EventScript_23D359:: @ 823D359
applymovement 1, SafariZone_South_Movement_23D38D
waitmovement 0
- applymovement 255, SafariZone_South_Movement_23D387
+ applymovement EVENT_OBJ_ID_PLAYER, SafariZone_South_Movement_23D387
waitmovement 0
goto SafariZone_South_EventScript_23D373
end
diff --git a/data/maps/SeafloorCavern_Room9/scripts.inc b/data/maps/SeafloorCavern_Room9/scripts.inc
index 9406fcb6c..951f967a3 100644
--- a/data/maps/SeafloorCavern_Room9/scripts.inc
+++ b/data/maps/SeafloorCavern_Room9/scripts.inc
@@ -7,15 +7,15 @@ SeafloorCavern_Room9_EventScript_234DC9:: @ 8234DC9
setvar VAR_0x8005, 3
setvar VAR_0x8006, 4
setvar VAR_0x8007, 5
- applymovement 255, SeafloorCavern_Room9_Movement_2725A6
+ applymovement EVENT_OBJ_ID_PLAYER, SeafloorCavern_Room9_Movement_2725A6
waitmovement 0
- applymovement 255, SeafloorCavern_Room9_Movement_23505C
+ applymovement EVENT_OBJ_ID_PLAYER, SeafloorCavern_Room9_Movement_23505C
waitmovement 0
playbgm MUS_AQA_0, 0
msgbox SeafloorCavern_Room9_Text_23505F, MSGBOX_DEFAULT
closemessage
addobject VAR_0x8004
- applymovement 255, SeafloorCavern_Room9_Movement_2725A4
+ applymovement EVENT_OBJ_ID_PLAYER, SeafloorCavern_Room9_Movement_2725A4
waitmovement 0
applymovement VAR_0x8004, SeafloorCavern_Room9_Movement_23502A
waitmovement 0
@@ -48,7 +48,7 @@ SeafloorCavern_Room9_EventScript_234DC9:: @ 8234DC9
playse SE_TAMA
special sub_80B0534
applymovement VAR_0x8004, SeafloorCavern_Room9_Movement_2725A6
- applymovement 255, SeafloorCavern_Room9_Movement_2725A6
+ applymovement EVENT_OBJ_ID_PLAYER, SeafloorCavern_Room9_Movement_2725A6
waitmovement 0
delay 150
removeobject 7
@@ -82,7 +82,7 @@ SeafloorCavern_Room9_EventScript_234DC9:: @ 8234DC9
setvar VAR_0x8007, 5
msgbox SeafloorCavern_Room9_Text_2352A7, MSGBOX_DEFAULT
playse SE_PC_LOGIN
- applymovement 255, SeafloorCavern_Room9_Movement_2725A4
+ applymovement EVENT_OBJ_ID_PLAYER, SeafloorCavern_Room9_Movement_2725A4
waitmovement 0
msgbox SeafloorCavern_Room9_Text_2352F6, MSGBOX_DEFAULT
closemessage
diff --git a/data/maps/SkyPillar_Outside/scripts.inc b/data/maps/SkyPillar_Outside/scripts.inc
index 1b2a1e4c9..95f229bcf 100644
--- a/data/maps/SkyPillar_Outside/scripts.inc
+++ b/data/maps/SkyPillar_Outside/scripts.inc
@@ -38,7 +38,7 @@ SkyPillar_Outside_EventScript_239304:: @ 8239304
lockall
applymovement 1, SkyPillar_Outside_Movement_2393D3
waitmovement 0
- applymovement 255, SkyPillar_Outside_Movement_2725A4
+ applymovement EVENT_OBJ_ID_PLAYER, SkyPillar_Outside_Movement_2725A4
waitmovement 0
msgbox SkyPillar_Outside_Text_239416, MSGBOX_DEFAULT
closemessage
@@ -52,7 +52,7 @@ SkyPillar_Outside_EventScript_239304:: @ 8239304
delay 40
msgbox SkyPillar_Outside_Text_2394BC, MSGBOX_DEFAULT
closemessage
- applymovement 255, SkyPillar_Outside_Movement_2393EB
+ applymovement EVENT_OBJ_ID_PLAYER, SkyPillar_Outside_Movement_2393EB
applymovement 1, SkyPillar_Outside_Movement_2393DE
waitmovement 0
setvar VAR_0x8004, 1
diff --git a/data/maps/SkyPillar_Top/scripts.inc b/data/maps/SkyPillar_Top/scripts.inc
index ef0419cdb..2b734e5b0 100644
--- a/data/maps/SkyPillar_Top/scripts.inc
+++ b/data/maps/SkyPillar_Top/scripts.inc
@@ -96,12 +96,12 @@ SkyPillar_Top_EventScript_239785:: @ 8239785
SkyPillar_Top_EventScript_23979A:: @ 823979A
lockall
fadeoutbgm 1
- applymovement 255, SkyPillar_Top_Movement_2725B2
+ applymovement EVENT_OBJ_ID_PLAYER, SkyPillar_Top_Movement_2725B2
waitmovement 0
- special SpawnScriptEventObject
- applymovement 127, SkyPillar_Top_Movement_239858
+ special SpawnCameraObject
+ applymovement EVENT_OBJ_ID_CAMERA, SkyPillar_Top_Movement_239858
waitmovement 0
- special RemoveScriptEventObject
+ special RemoveCameraObject
applymovement 1, SkyPillar_Top_Movement_23983A
waitmovement 0
waitse
@@ -128,10 +128,10 @@ SkyPillar_Top_EventScript_23979A:: @ 823979A
closemessage
delay 20
fadeinbgm 1
- special SpawnScriptEventObject
- applymovement 127, SkyPillar_Top_Movement_23985C
+ special SpawnCameraObject
+ applymovement EVENT_OBJ_ID_CAMERA, SkyPillar_Top_Movement_23985C
waitmovement 0
- special RemoveScriptEventObject
+ special RemoveCameraObject
setvar VAR_0x405E, 5
setvar VAR_0x40CA, 1
setvar VAR_0x40D7, 1
diff --git a/data/maps/SlateportCity/scripts.inc b/data/maps/SlateportCity/scripts.inc
index dc3a81650..f8e1dc454 100644
--- a/data/maps/SlateportCity/scripts.inc
+++ b/data/maps/SlateportCity/scripts.inc
@@ -56,7 +56,7 @@ SlateportCity_MapScript2_1DCD12: @ 81DCD12
SlateportCity_EventScript_1DCD1C:: @ 81DCD1C
lockall
addobject 35
- applymovement 255, SlateportCity_Movement_1DCDA8
+ applymovement EVENT_OBJ_ID_PLAYER, SlateportCity_Movement_1DCDA8
applymovement 35, SlateportCity_Movement_1DCDAC
waitmovement 0
msgbox SlateportCity_Text_1DF032, MSGBOX_DEFAULT
@@ -576,7 +576,7 @@ SlateportCity_EventScript_1DD1F8:: @ 81DD1F8
waitmovement 0
delay 25
applymovement 11, SlateportCity_Movement_1DD33C
- applymovement 255, SlateportCity_Movement_1DD34A
+ applymovement EVENT_OBJ_ID_PLAYER, SlateportCity_Movement_1DD34A
applymovement 10, SlateportCity_Movement_1DD319
applymovement 9, SlateportCity_Movement_1DD326
waitmovement 0
@@ -608,7 +608,7 @@ SlateportCity_EventScript_1DD1F8:: @ 81DD1F8
msgbox SlateportCity_Text_1DE8A0, MSGBOX_DEFAULT
closemessage
applymovement 11, SlateportCity_Movement_1DD337
- applymovement 255, SlateportCity_Movement_1DD344
+ applymovement EVENT_OBJ_ID_PLAYER, SlateportCity_Movement_1DD344
waitmovement 0
removeobject 11
clearflag FLAG_HIDE_SLATEPORT_CITY_HARBOR_CAPTAIN_STERN
@@ -892,19 +892,19 @@ SlateportCity_EventScript_1DD5CE:: @ 81DD5CE
SlateportCity_EventScript_1DD5DC:: @ 81DD5DC
lockall
- applymovement 255, SlateportCity_Movement_2725B2
+ applymovement EVENT_OBJ_ID_PLAYER, SlateportCity_Movement_2725B2
waitmovement 0
opendoor 10, 12
waitdooranim
addobject 35
- applymovement 255, SlateportCity_Movement_1DD630
+ applymovement EVENT_OBJ_ID_PLAYER, SlateportCity_Movement_1DD630
applymovement 35, SlateportCity_Movement_1DD637
waitmovement 0
closedoor 10, 12
waitdooranim
msgbox SlateportCity_Text_1DF28C, MSGBOX_DEFAULT
closemessage
- applymovement 255, SlateportCity_Movement_1DD634
+ applymovement EVENT_OBJ_ID_PLAYER, SlateportCity_Movement_1DD634
applymovement 35, SlateportCity_Movement_1DD63A
waitmovement 0
removeobject 35
diff --git a/data/maps/SlateportCity_BattleTentCorridor/scripts.inc b/data/maps/SlateportCity_BattleTentCorridor/scripts.inc
index 7eb935bf1..49a7180cb 100644
--- a/data/maps/SlateportCity_BattleTentCorridor/scripts.inc
+++ b/data/maps/SlateportCity_BattleTentCorridor/scripts.inc
@@ -27,7 +27,7 @@ SlateportCity_BattleTentCorridor_EventScript_208E65:: @ 8208E65
goto_eq SlateportCity_BattleTentCorridor_EventScript_208EEE
setvar VAR_TEMP_0, 1
applymovement 1, SlateportCity_BattleTentCorridor_Movement_209062
- applymovement 255, SlateportCity_BattleTentCorridor_Movement_209059
+ applymovement EVENT_OBJ_ID_PLAYER, SlateportCity_BattleTentCorridor_Movement_209059
waitmovement 0
compare VAR_0x8006, 2
goto_eq SlateportCity_BattleTentCorridor_EventScript_209044
@@ -49,7 +49,7 @@ SlateportCity_BattleTentCorridor_EventScript_208EB4:: @ 8208EB4
opendoor 2, 1
waitdooranim
applymovement 1, SlateportCity_BattleTentCorridor_Movement_209068
- applymovement 255, SlateportCity_BattleTentCorridor_Movement_20905E
+ applymovement EVENT_OBJ_ID_PLAYER, SlateportCity_BattleTentCorridor_Movement_20905E
waitmovement 0
closedoor 2, 1
waitdooranim
diff --git a/data/maps/SlateportCity_BattleTentLobby/scripts.inc b/data/maps/SlateportCity_BattleTentLobby/scripts.inc
index 8e5c81e12..84349a97f 100644
--- a/data/maps/SlateportCity_BattleTentLobby/scripts.inc
+++ b/data/maps/SlateportCity_BattleTentLobby/scripts.inc
@@ -182,12 +182,12 @@ SlateportCity_BattleTentLobby_EventScript_2089AC:: @ 82089AC
SlateportCity_BattleTentLobby_EventScript_2089C9:: @ 82089C9
applymovement 1, SlateportCity_BattleTentLobby_Movement_2089F8
- applymovement 255, SlateportCity_BattleTentLobby_Movement_2089FF
+ applymovement EVENT_OBJ_ID_PLAYER, SlateportCity_BattleTentLobby_Movement_2089FF
waitmovement 0
opendoor 6, 1
waitdooranim
applymovement 1, SlateportCity_BattleTentLobby_Movement_2089FC
- applymovement 255, SlateportCity_BattleTentLobby_Movement_208A03
+ applymovement EVENT_OBJ_ID_PLAYER, SlateportCity_BattleTentLobby_Movement_208A03
waitmovement 0
closedoor 6, 1
waitdooranim
diff --git a/data/maps/SlateportCity_Harbor/scripts.inc b/data/maps/SlateportCity_Harbor/scripts.inc
index efc0ff565..60b78542a 100644
--- a/data/maps/SlateportCity_Harbor/scripts.inc
+++ b/data/maps/SlateportCity_Harbor/scripts.inc
@@ -43,7 +43,7 @@ SlateportCity_Harbor_EventScript_20C9D3:: @ 820C9D3
SlateportCity_Harbor_EventScript_20C9DF:: @ 820C9DF
lockall
setvar VAR_0x8008, 3
- applymovement 255, SlateportCity_Harbor_Movement_20CAEF
+ applymovement EVENT_OBJ_ID_PLAYER, SlateportCity_Harbor_Movement_20CAEF
waitmovement 0
goto SlateportCity_Harbor_EventScript_20C9F5
end
@@ -52,7 +52,7 @@ SlateportCity_Harbor_EventScript_20C9F5:: @ 820C9F5
applymovement 7, SlateportCity_Harbor_Movement_2725AA
waitmovement 0
applymovement 6, SlateportCity_Harbor_Movement_2725AA
- applymovement 255, SlateportCity_Harbor_Movement_2725A6
+ applymovement EVENT_OBJ_ID_PLAYER, SlateportCity_Harbor_Movement_2725A6
waitmovement 0
msgbox SlateportCity_Harbor_Text_20D291, MSGBOX_DEFAULT
closemessage
@@ -86,21 +86,21 @@ SlateportCity_Harbor_EventScript_20C9F5:: @ 820C9F5
SlateportCity_Harbor_EventScript_20CA89:: @ 820CA89
applymovement 4, SlateportCity_Harbor_Movement_20CAE0
waitmovement 0
- applymovement 255, SlateportCity_Harbor_Movement_2725AA
+ applymovement EVENT_OBJ_ID_PLAYER, SlateportCity_Harbor_Movement_2725AA
waitmovement 0
return
SlateportCity_Harbor_EventScript_20CA9E:: @ 820CA9E
applymovement 4, SlateportCity_Harbor_Movement_20CAE6
waitmovement 0
- applymovement 255, SlateportCity_Harbor_Movement_2725A8
+ applymovement EVENT_OBJ_ID_PLAYER, SlateportCity_Harbor_Movement_2725A8
waitmovement 0
return
SlateportCity_Harbor_EventScript_20CAB3:: @ 820CAB3
applymovement 4, SlateportCity_Harbor_Movement_20CAEB
waitmovement 0
- applymovement 255, SlateportCity_Harbor_Movement_2725A8
+ applymovement EVENT_OBJ_ID_PLAYER, SlateportCity_Harbor_Movement_2725A8
waitmovement 0
return
@@ -249,12 +249,12 @@ SlateportCity_Harbor_EventScript_20CC2D:: @ 820CC2D
end
SlateportCity_Harbor_EventScript_20CC37:: @ 820CC37
- applymovement 255, SlateportCity_Harbor_Movement_20CC4D
+ applymovement EVENT_OBJ_ID_PLAYER, SlateportCity_Harbor_Movement_20CC4D
waitmovement 0
return
SlateportCity_Harbor_EventScript_20CC42:: @ 820CC42
- applymovement 255, SlateportCity_Harbor_Movement_20CC50
+ applymovement EVENT_OBJ_ID_PLAYER, SlateportCity_Harbor_Movement_20CC50
waitmovement 0
return
diff --git a/data/maps/SlateportCity_OceanicMuseum_1F/scripts.inc b/data/maps/SlateportCity_OceanicMuseum_1F/scripts.inc
index 3c777b184..ceca80c47 100644
--- a/data/maps/SlateportCity_OceanicMuseum_1F/scripts.inc
+++ b/data/maps/SlateportCity_OceanicMuseum_1F/scripts.inc
@@ -7,14 +7,14 @@ SlateportCity_OceanicMuseum_1F_EventScript_20AD96:: @ 820AD96
SlateportCity_OceanicMuseum_1F_EventScript_20AD9F:: @ 820AD9F
lockall
- applymovement 255, SlateportCity_OceanicMuseum_1F_Movement_2725A4
+ applymovement EVENT_OBJ_ID_PLAYER, SlateportCity_OceanicMuseum_1F_Movement_2725A4
waitmovement 0
goto SlateportCity_OceanicMuseum_1F_EventScript_20ADC1
end
SlateportCity_OceanicMuseum_1F_EventScript_20ADB0:: @ 820ADB0
lockall
- applymovement 255, SlateportCity_OceanicMuseum_1F_Movement_2725A8
+ applymovement EVENT_OBJ_ID_PLAYER, SlateportCity_OceanicMuseum_1F_Movement_2725A8
waitmovement 0
goto SlateportCity_OceanicMuseum_1F_EventScript_20ADC1
end
@@ -28,7 +28,7 @@ SlateportCity_OceanicMuseum_1F_EventScript_20ADC1:: @ 820ADC1
hidemoneybox
nop
nop
- applymovement 255, SlateportCity_OceanicMuseum_1F_Movement_20AE4B
+ applymovement EVENT_OBJ_ID_PLAYER, SlateportCity_OceanicMuseum_1F_Movement_20AE4B
waitmovement 0
releaseall
end
@@ -57,7 +57,7 @@ SlateportCity_OceanicMuseum_1F_EventScript_20AE18:: @ 820AE18
hidemoneybox
nop
nop
- applymovement 255, SlateportCity_OceanicMuseum_1F_Movement_20AE4B
+ applymovement EVENT_OBJ_ID_PLAYER, SlateportCity_OceanicMuseum_1F_Movement_20AE4B
waitmovement 0
releaseall
end
@@ -178,7 +178,7 @@ SlateportCity_OceanicMuseum_1F_EventScript_20AEF8:: @ 820AEF8
end
SlateportCity_OceanicMuseum_1F_EventScript_20AF6C:: @ 820AF6C
- applymovement 255, SlateportCity_OceanicMuseum_1F_Movement_20AFBF
+ applymovement EVENT_OBJ_ID_PLAYER, SlateportCity_OceanicMuseum_1F_Movement_20AFBF
applymovement 13, SlateportCity_OceanicMuseum_1F_Movement_20AFCE
waitmovement 0
goto SlateportCity_OceanicMuseum_1F_EventScript_20AFAA
@@ -191,7 +191,7 @@ SlateportCity_OceanicMuseum_1F_EventScript_20AF83:: @ 820AF83
end
SlateportCity_OceanicMuseum_1F_EventScript_20AF93:: @ 820AF93
- applymovement 255, SlateportCity_OceanicMuseum_1F_Movement_20AFC4
+ applymovement EVENT_OBJ_ID_PLAYER, SlateportCity_OceanicMuseum_1F_Movement_20AFC4
applymovement 13, SlateportCity_OceanicMuseum_1F_Movement_20AFC7
waitmovement 0
goto SlateportCity_OceanicMuseum_1F_EventScript_20AFAA
diff --git a/data/maps/SlateportCity_OceanicMuseum_2F/scripts.inc b/data/maps/SlateportCity_OceanicMuseum_2F/scripts.inc
index 040a76396..016b21f14 100644
--- a/data/maps/SlateportCity_OceanicMuseum_2F/scripts.inc
+++ b/data/maps/SlateportCity_OceanicMuseum_2F/scripts.inc
@@ -68,7 +68,7 @@ SlateportCity_OceanicMuseum_2F_EventScript_20BB00:: @ 820BB00
fadescreen 0
delay 30
setflag FLAG_HIDE_SLATEPORT_CITY_OCEANIC_MUSEUM_AQUA_GRUNTS
- applymovement 255, SlateportCity_OceanicMuseum_2F_Movement_2725A8
+ applymovement EVENT_OBJ_ID_PLAYER, SlateportCity_OceanicMuseum_2F_Movement_2725A8
waitmovement 0
msgbox SlateportCity_OceanicMuseum_2F_Text_20C2BE, MSGBOX_DEFAULT
setvar VAR_0x8004, 269
@@ -96,7 +96,7 @@ SlateportCity_OceanicMuseum_2F_EventScript_20BC8C:: @ 820BC8C
return
SlateportCity_OceanicMuseum_2F_EventScript_20BC92:: @ 820BC92
- applymovement 255, SlateportCity_OceanicMuseum_2F_Movement_2725A4
+ applymovement EVENT_OBJ_ID_PLAYER, SlateportCity_OceanicMuseum_2F_Movement_2725A4
waitmovement 0
return
@@ -106,12 +106,12 @@ SlateportCity_OceanicMuseum_2F_EventScript_20BC9D:: @ 820BC9D
return
SlateportCity_OceanicMuseum_2F_EventScript_20BCA8:: @ 820BCA8
- applymovement 255, SlateportCity_OceanicMuseum_2F_Movement_20BCBE
+ applymovement EVENT_OBJ_ID_PLAYER, SlateportCity_OceanicMuseum_2F_Movement_20BCBE
waitmovement 0
return
SlateportCity_OceanicMuseum_2F_EventScript_20BCB3:: @ 820BCB3
- applymovement 255, SlateportCity_OceanicMuseum_2F_Movement_20BCC2
+ applymovement EVENT_OBJ_ID_PLAYER, SlateportCity_OceanicMuseum_2F_Movement_20BCC2
waitmovement 0
return
diff --git a/data/maps/SootopolisCity/scripts.inc b/data/maps/SootopolisCity/scripts.inc
index de6ca59db..1b16ba339 100644
--- a/data/maps/SootopolisCity/scripts.inc
+++ b/data/maps/SootopolisCity/scripts.inc
@@ -212,10 +212,10 @@ SootopolisCity_EventScript_1E5926:: @ 81E5926
SootopolisCity_EventScript_1E5946:: @ 81E5946
delay 60
- special SpawnScriptEventObject
- applymovement 127, SootopolisCity_Movement_1E5A68
+ special SpawnCameraObject
+ applymovement EVENT_OBJ_ID_CAMERA, SootopolisCity_Movement_1E5A68
waitmovement 0
- special RemoveScriptEventObject
+ special RemoveCameraObject
delay 60
fadescreenspeed 1, 8
setweather 15
@@ -269,12 +269,12 @@ SootopolisCity_EventScript_1E5946:: @ 81E5946
applymovement 10, SootopolisCity_Movement_1E5BCF
applymovement 9, SootopolisCity_Movement_1E5BF0
waitmovement 0
- special SpawnScriptEventObject
+ special SpawnCameraObject
applymovement 10, SootopolisCity_Movement_1E5BD6
applymovement 9, SootopolisCity_Movement_1E5BF7
- applymovement 127, SootopolisCity_Movement_1E5A75
+ applymovement EVENT_OBJ_ID_CAMERA, SootopolisCity_Movement_1E5A75
waitmovement 0
- special RemoveScriptEventObject
+ special RemoveCameraObject
setvar VAR_0x405E, 2
clearflag FLAG_SPECIAL_FLAG_0x4000
releaseall
@@ -312,10 +312,10 @@ SootopolisCity_Movement_1E5A75: @ 81E5A75
SootopolisCity_EventScript_1E5A82:: @ 81E5A82
delay 60
- special SpawnScriptEventObject
- applymovement 127, SootopolisCity_Movement_1E5BA4
+ special SpawnCameraObject
+ applymovement EVENT_OBJ_ID_CAMERA, SootopolisCity_Movement_1E5BA4
waitmovement 0
- special RemoveScriptEventObject
+ special RemoveCameraObject
delay 60
fadescreenspeed 1, 8
setweather 15
@@ -369,12 +369,12 @@ SootopolisCity_EventScript_1E5A82:: @ 81E5A82
applymovement 10, SootopolisCity_Movement_1E5BCF
applymovement 9, SootopolisCity_Movement_1E5BF0
waitmovement 0
- special SpawnScriptEventObject
+ special SpawnCameraObject
applymovement 10, SootopolisCity_Movement_1E5BD6
applymovement 9, SootopolisCity_Movement_1E5BF7
- applymovement 127, SootopolisCity_Movement_1E5BAE
+ applymovement EVENT_OBJ_ID_CAMERA, SootopolisCity_Movement_1E5BAE
waitmovement 0
- special RemoveScriptEventObject
+ special RemoveCameraObject
setvar VAR_0x405E, 2
clearflag FLAG_SPECIAL_FLAG_0x4000
releaseall
@@ -502,10 +502,10 @@ SootopolisCity_EventScript_1E5BFE:: @ 81E5BFE
SootopolisCity_EventScript_1E5C1E:: @ 81E5C1E
delay 60
- special SpawnScriptEventObject
- applymovement 127, SootopolisCity_Movement_1E5A68
+ special SpawnCameraObject
+ applymovement EVENT_OBJ_ID_CAMERA, SootopolisCity_Movement_1E5A68
waitmovement 0
- special RemoveScriptEventObject
+ special RemoveCameraObject
delay 60
fadescreenspeed 1, 8
call SootopolisCity_EventScript_1E5D82
@@ -516,8 +516,8 @@ SootopolisCity_EventScript_1E5C1E:: @ 81E5C1E
special sub_813B7D8
waitstate
playse SE_T_KAMI
- special SpawnScriptEventObject
- applymovement 127, SootopolisCity_Movement_1E5E63
+ special SpawnCameraObject
+ applymovement EVENT_OBJ_ID_CAMERA, SootopolisCity_Movement_1E5E63
waitmovement 0
waitse
playmoncry SPECIES_RAYQUAZA, 2
@@ -555,10 +555,10 @@ SootopolisCity_EventScript_1E5C1E:: @ 81E5C1E
SootopolisCity_EventScript_1E5CCE:: @ 81E5CCE
delay 60
- special SpawnScriptEventObject
- applymovement 127, SootopolisCity_Movement_1E5BA4
+ special SpawnCameraObject
+ applymovement EVENT_OBJ_ID_CAMERA, SootopolisCity_Movement_1E5BA4
waitmovement 0
- special RemoveScriptEventObject
+ special RemoveCameraObject
delay 60
fadescreenspeed 1, 8
call SootopolisCity_EventScript_1E5D82
@@ -568,9 +568,9 @@ SootopolisCity_EventScript_1E5CCE:: @ 81E5CCE
setvar VAR_0x8004, 1
special sub_813B7D8
waitstate
- special SpawnScriptEventObject
- applymovement 127, SootopolisCity_Movement_1E5E63
- applymovement 255, SootopolisCity_Movement_1E5E68
+ special SpawnCameraObject
+ applymovement EVENT_OBJ_ID_CAMERA, SootopolisCity_Movement_1E5E63
+ applymovement EVENT_OBJ_ID_PLAYER, SootopolisCity_Movement_1E5E68
waitmovement 0
waitse
playmoncry SPECIES_RAYQUAZA, 2
@@ -974,18 +974,18 @@ SootopolisCity_EventScript_1E61CC:: @ 81E61CC
msgbox SootopolisCity_Text_1E7737, MSGBOX_DEFAULT
closemessage
applymovement 7, SootopolisCity_Movement_1E62D4
- applymovement 255, SootopolisCity_Movement_1E630E
+ applymovement EVENT_OBJ_ID_PLAYER, SootopolisCity_Movement_1E630E
waitmovement 0
delay 120
applymovement 1, SootopolisCity_Movement_1E6341
waitmovement 0
applymovement 7, SootopolisCity_Movement_1E6344
- applymovement 255, SootopolisCity_Movement_1E634F
+ applymovement EVENT_OBJ_ID_PLAYER, SootopolisCity_Movement_1E634F
waitmovement 0
msgbox SootopolisCity_Text_1E77F0, MSGBOX_DEFAULT
closemessage
setflag FLAG_0x133
- applymovement 255, SootopolisCity_Movement_1E635A
+ applymovement EVENT_OBJ_ID_PLAYER, SootopolisCity_Movement_1E635A
waitmovement 0
warp MAP_CAVE_OF_ORIGIN_ENTRANCE, 255, 9, 20
waitstate
@@ -993,13 +993,13 @@ SootopolisCity_EventScript_1E61CC:: @ 81E61CC
SootopolisCity_EventScript_1E6243:: @ 81E6243
applymovement 7, SootopolisCity_Movement_1E6267
- applymovement 255, SootopolisCity_Movement_1E628C
+ applymovement EVENT_OBJ_ID_PLAYER, SootopolisCity_Movement_1E628C
waitmovement 0
return
SootopolisCity_EventScript_1E6255:: @ 81E6255
applymovement 7, SootopolisCity_Movement_1E6267
- applymovement 255, SootopolisCity_Movement_1E62B0
+ applymovement EVENT_OBJ_ID_PLAYER, SootopolisCity_Movement_1E62B0
waitmovement 0
return
diff --git a/data/maps/SootopolisCity_Gym_1F/scripts.inc b/data/maps/SootopolisCity_Gym_1F/scripts.inc
index 570f936b5..844b3c8b3 100644
--- a/data/maps/SootopolisCity_Gym_1F/scripts.inc
+++ b/data/maps/SootopolisCity_Gym_1F/scripts.inc
@@ -73,7 +73,7 @@ SootopolisCity_Gym_1F_EventScript_224F15:: @ 8224F15
SootopolisCity_Gym_1F_EventScript_224F29:: @ 8224F29
lockall
delay 20
- applymovement 255, SootopolisCity_Gym_1F_Movement_224F42
+ applymovement EVENT_OBJ_ID_PLAYER, SootopolisCity_Gym_1F_Movement_224F42
waitmovement 0
playse SE_RU_HYUU
delay 60
diff --git a/data/maps/SootopolisCity_MysteryEventsHouse_1F/scripts.inc b/data/maps/SootopolisCity_MysteryEventsHouse_1F/scripts.inc
index a2073d3f7..fafcaa05d 100644
--- a/data/maps/SootopolisCity_MysteryEventsHouse_1F/scripts.inc
+++ b/data/maps/SootopolisCity_MysteryEventsHouse_1F/scripts.inc
@@ -32,12 +32,12 @@ SootopolisCity_MysteryEventsHouse_1F_MapScript2_22799D: @ 822799D
SootopolisCity_MysteryEventsHouse_1F_EventScript_2279B7:: @ 82279B7
lockall
- applymovement 255, SootopolisCity_MysteryEventsHouse_1F_Movement_227A1F
+ applymovement EVENT_OBJ_ID_PLAYER, SootopolisCity_MysteryEventsHouse_1F_Movement_227A1F
waitmovement 0
applymovement 1, SootopolisCity_MysteryEventsHouse_1F_Movement_227A21
waitmovement 0
moveobjectoffscreen 1
- applymovement 255, SootopolisCity_MysteryEventsHouse_1F_Movement_2725A6
+ applymovement EVENT_OBJ_ID_PLAYER, SootopolisCity_MysteryEventsHouse_1F_Movement_2725A6
waitmovement 0
compare VAR_0x40C0, 1
call_if 1, SootopolisCity_MysteryEventsHouse_1F_EventScript_227A04
@@ -135,19 +135,19 @@ SootopolisCity_MysteryEventsHouse_1F_EventScript_227AEF:: @ 8227AEF
SootopolisCity_MysteryEventsHouse_1F_EventScript_227AFE:: @ 8227AFE
applymovement VAR_LAST_TALKED, SootopolisCity_MysteryEventsHouse_1F_Movement_227B40
- applymovement 255, SootopolisCity_MysteryEventsHouse_1F_Movement_227B34
+ applymovement EVENT_OBJ_ID_PLAYER, SootopolisCity_MysteryEventsHouse_1F_Movement_227B34
waitmovement 0
return
SootopolisCity_MysteryEventsHouse_1F_EventScript_227B10:: @ 8227B10
applymovement VAR_LAST_TALKED, SootopolisCity_MysteryEventsHouse_1F_Movement_227B43
- applymovement 255, SootopolisCity_MysteryEventsHouse_1F_Movement_227B38
+ applymovement EVENT_OBJ_ID_PLAYER, SootopolisCity_MysteryEventsHouse_1F_Movement_227B38
waitmovement 0
return
SootopolisCity_MysteryEventsHouse_1F_EventScript_227B22:: @ 8227B22
applymovement VAR_LAST_TALKED, SootopolisCity_MysteryEventsHouse_1F_Movement_227B40
- applymovement 255, SootopolisCity_MysteryEventsHouse_1F_Movement_227B3C
+ applymovement EVENT_OBJ_ID_PLAYER, SootopolisCity_MysteryEventsHouse_1F_Movement_227B3C
waitmovement 0
return
diff --git a/data/maps/SootopolisCity_MysteryEventsHouse_B1F/scripts.inc b/data/maps/SootopolisCity_MysteryEventsHouse_B1F/scripts.inc
index 9a6b4b1b3..452f2e15c 100644
--- a/data/maps/SootopolisCity_MysteryEventsHouse_B1F/scripts.inc
+++ b/data/maps/SootopolisCity_MysteryEventsHouse_B1F/scripts.inc
@@ -13,7 +13,7 @@ SootopolisCity_MysteryEventsHouse_B1F_MapScript2_227E5E: @ 8227E5E
SootopolisCity_MysteryEventsHouse_B1F_EventScript_227E68:: @ 8227E68
lockall
- applymovement 255, SootopolisCity_MysteryEventsHouse_B1F_Movement_227EF3
+ applymovement EVENT_OBJ_ID_PLAYER, SootopolisCity_MysteryEventsHouse_B1F_Movement_227EF3
waitmovement 0
special CopyEReaderTrainerGreeting
msgbox gStringVar4, MSGBOX_DEFAULT
@@ -30,7 +30,7 @@ SootopolisCity_MysteryEventsHouse_B1F_EventScript_227E68:: @ 8227E68
call_if 1, SootopolisCity_MysteryEventsHouse_B1F_EventScript_227EE8
closemessage
special HealPlayerParty
- applymovement 255, SootopolisCity_MysteryEventsHouse_B1F_Movement_227EF9
+ applymovement EVENT_OBJ_ID_PLAYER, SootopolisCity_MysteryEventsHouse_B1F_Movement_227EF9
waitmovement 0
special LoadPlayerParty
setvar VAR_TEMP_1, 1
diff --git a/data/maps/SouthernIsland_Exterior/scripts.inc b/data/maps/SouthernIsland_Exterior/scripts.inc
index 12d27a61f..d041c3ea3 100644
--- a/data/maps/SouthernIsland_Exterior/scripts.inc
+++ b/data/maps/SouthernIsland_Exterior/scripts.inc
@@ -31,12 +31,12 @@ SouthernIsland_Exterior_EventScript_242A17:: @ 8242A17
end
BattleFrontier_OutsideWest_EventScript_242A21:: @ 8242A21
- applymovement 255, BattleFrontier_OutsideWest_Movement_242A37
+ applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_OutsideWest_Movement_242A37
waitmovement 0
return
BattleFrontier_OutsideWest_EventScript_242A2C:: @ 8242A2C
- applymovement 255, BattleFrontier_OutsideWest_Movement_242A39
+ applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_OutsideWest_Movement_242A39
waitmovement 0
return
diff --git a/data/maps/SouthernIsland_Interior/scripts.inc b/data/maps/SouthernIsland_Interior/scripts.inc
index b21fdecab..ff1425196 100644
--- a/data/maps/SouthernIsland_Interior/scripts.inc
+++ b/data/maps/SouthernIsland_Interior/scripts.inc
@@ -66,8 +66,8 @@ SouthernIsland_Interior_EventScript_242AD0:: @ 8242AD0
goto_if 0, SouthernIsland_Interior_EventScript_242B9A
setflag FLAG_0x0CE
setflag FLAG_TEMP_2
- special SpawnScriptEventObject
- applymovement 127, SouthernIsland_Interior_Movement_242BCA
+ special SpawnCameraObject
+ applymovement EVENT_OBJ_ID_CAMERA, SouthernIsland_Interior_Movement_242BCA
waitmovement 0
delay 50
waitse
@@ -76,11 +76,11 @@ SouthernIsland_Interior_EventScript_242AD0:: @ 8242AD0
waitmoncry
addobject 2
delay 30
- applymovement 127, SouthernIsland_Interior_Movement_242BCE
+ applymovement EVENT_OBJ_ID_CAMERA, SouthernIsland_Interior_Movement_242BCE
applymovement 2, SouthernIsland_Interior_Movement_242BDA
waitmovement 0
delay 50
- special RemoveScriptEventObject
+ special RemoveCameraObject
setvar VAR_LAST_TALKED, 2
compare VAR_0x40D5, 0
call_if 1, SouthernIsland_Interior_EventScript_242BA4
diff --git a/data/maps/TerraCave_End/scripts.inc b/data/maps/TerraCave_End/scripts.inc
index b23cc23f1..4e5580719 100644
--- a/data/maps/TerraCave_End/scripts.inc
+++ b/data/maps/TerraCave_End/scripts.inc
@@ -27,7 +27,7 @@ TerraCave_End_EventScript_23B0E3:: @ 823B0E3
TerraCave_End_EventScript_23B0EC:: @ 823B0EC
lockall
- applymovement 255, TerraCave_End_Movement_2725B2
+ applymovement EVENT_OBJ_ID_PLAYER, TerraCave_End_Movement_2725B2
waitmovement 0
applymovement 1, TerraCave_End_Movement_23B16E
waitmovement 0
diff --git a/data/maps/TrainerHill_Elevator/scripts.inc b/data/maps/TrainerHill_Elevator/scripts.inc
index e9117efe2..c4e3afbdb 100644
--- a/data/maps/TrainerHill_Elevator/scripts.inc
+++ b/data/maps/TrainerHill_Elevator/scripts.inc
@@ -10,7 +10,7 @@ TrainerHill_Elevator_EventScript_26935F:: @ 826935F
end
TrainerHill_Elevator_EventScript_269360:: @ 8269360
- applymovement 255, TrainerHill_Elevator_Movement_2693EB
+ applymovement EVENT_OBJ_ID_PLAYER, TrainerHill_Elevator_Movement_2693EB
waitmovement 0
releaseall
warp MAP_TRAINER_HILL_ROOF, 255, 15, 5
@@ -18,7 +18,7 @@ TrainerHill_Elevator_EventScript_269360:: @ 8269360
end
TrainerHill_Elevator_EventScript_269375:: @ 8269375
- applymovement 255, TrainerHill_Elevator_Movement_2693E4
+ applymovement EVENT_OBJ_ID_PLAYER, TrainerHill_Elevator_Movement_2693E4
waitmovement 0
applymovement 1, TrainerHill_Elevator_Movement_2693EE
waitmovement 0
@@ -29,11 +29,11 @@ TrainerHill_Elevator_EventScript_269375:: @ 8269375
releaseall
applymovement 1, TrainerHill_Elevator_Movement_2693F0
waitmovement 0
- applymovement 255, TrainerHill_Elevator_Movement_2693DF
+ applymovement EVENT_OBJ_ID_PLAYER, TrainerHill_Elevator_Movement_2693DF
waitmovement 0
call TrainerHill_Elevator_EventScript_2693D9
delay 25
- applymovement 255, TrainerHill_Elevator_Movement_2693E7
+ applymovement EVENT_OBJ_ID_PLAYER, TrainerHill_Elevator_Movement_2693E7
waitmovement 0
warp MAP_TRAINER_HILL_ENTRANCE, 255, 17, 8
waitstate
diff --git a/data/maps/TrainerHill_Entrance/scripts.inc b/data/maps/TrainerHill_Entrance/scripts.inc
index c75c22be2..d86caad9c 100644
--- a/data/maps/TrainerHill_Entrance/scripts.inc
+++ b/data/maps/TrainerHill_Entrance/scripts.inc
@@ -23,7 +23,7 @@ TrainerHill_Entrance_MapScript1_2680D0: @ 82680D0
compare VAR_RESULT, 0
goto_eq TrainerHill_Entrance_EventScript_2680FF
setobjectxy 255, 9, 6
- applymovement 255, TrainerHill_Entrance_Movement_26837F
+ applymovement EVENT_OBJ_ID_PLAYER, TrainerHill_Entrance_Movement_26837F
end
TrainerHill_Entrance_EventScript_2680FF:: @ 82680FF
@@ -31,7 +31,7 @@ TrainerHill_Entrance_EventScript_2680FF:: @ 82680FF
special sp194_trainer_tower
compare VAR_RESULT, 1
goto_eq TrainerHill_Entrance_EventScript_26811A
- applymovement 255, TrainerHill_Entrance_Movement_26837F
+ applymovement EVENT_OBJ_ID_PLAYER, TrainerHill_Entrance_Movement_26837F
end
TrainerHill_Entrance_EventScript_26811A:: @ 826811A
@@ -62,7 +62,7 @@ TrainerHill_Entrance_MapScript2_26813E: @ 826813E
TrainerHill_Entrance_EventScript_268160:: @ 8268160
lockall
- applymovement 255, TrainerHill_Entrance_Movement_268385
+ applymovement EVENT_OBJ_ID_PLAYER, TrainerHill_Entrance_Movement_268385
waitmovement 0
setmetatile 17, 10, 820, 1
special DrawWholeMapView
@@ -83,18 +83,18 @@ TrainerHill_Entrance_EventScript_268182:: @ 8268182
TrainerHill_Entrance_EventScript_2681B5:: @ 82681B5
lockall
- applymovement 255, TrainerHill_Entrance_Movement_26837F
+ applymovement EVENT_OBJ_ID_PLAYER, TrainerHill_Entrance_Movement_26837F
msgbox TrainerHill_Entrance_Text_268689, MSGBOX_DEFAULT
goto TrainerHill_Entrance_EventScript_2681DA
TrainerHill_Entrance_EventScript_2681CA:: @ 82681CA
lockall
- applymovement 255, TrainerHill_Entrance_Movement_26837F
+ applymovement EVENT_OBJ_ID_PLAYER, TrainerHill_Entrance_Movement_26837F
msgbox TrainerHill_Entrance_Text_268712, MSGBOX_DEFAULT
TrainerHill_Entrance_EventScript_2681DA:: @ 82681DA
closemessage
- applymovement 255, TrainerHill_Entrance_Movement_268381
+ applymovement EVENT_OBJ_ID_PLAYER, TrainerHill_Entrance_Movement_268381
waitmovement 0
setvar VAR_0x40D6, 0
special HealPlayerParty
@@ -130,7 +130,7 @@ TrainerHill_Entrance_EventScript_268227:: @ 8268227
TrainerHill_Entrance_EventScript_268229:: @ 8268229
lockall
- applymovement 255, TrainerHill_Entrance_Movement_26837F
+ applymovement EVENT_OBJ_ID_PLAYER, TrainerHill_Entrance_Movement_26837F
checkflag FLAG_SYS_GAME_CLEAR
goto_if 0, TrainerHill_Entrance_EventScript_26836A
msgbox TrainerHill_Entrance_Text_2684C6, MSGBOX_DEFAULT
@@ -185,7 +185,7 @@ TrainerHill_Entrance_EventScript_268314:: @ 8268314
setvar VAR_TEMP_5, 0
msgbox TrainerHill_Entrance_Text_26866F, MSGBOX_DEFAULT
closemessage
- applymovement 255, TrainerHill_Entrance_Movement_268381
+ applymovement EVENT_OBJ_ID_PLAYER, TrainerHill_Entrance_Movement_268381
waitmovement 0
releaseall
end
@@ -211,7 +211,7 @@ TrainerHill_Entrance_EventScript_26835C:: @ 826835C
TrainerHill_Entrance_EventScript_26836A:: @ 826836A
msgbox TrainerHill_Entrance_Text_268430, MSGBOX_DEFAULT
closemessage
- applymovement 255, TrainerHill_Entrance_Movement_268381
+ applymovement EVENT_OBJ_ID_PLAYER, TrainerHill_Entrance_Movement_268381
waitmovement 0
releaseall
end
diff --git a/data/maps/VerdanturfTown_BattleTentBattleRoom/scripts.inc b/data/maps/VerdanturfTown_BattleTentBattleRoom/scripts.inc
index 93b7802be..5e07864e4 100644
--- a/data/maps/VerdanturfTown_BattleTentBattleRoom/scripts.inc
+++ b/data/maps/VerdanturfTown_BattleTentBattleRoom/scripts.inc
@@ -157,7 +157,7 @@ VerdanturfTown_BattleTentBattleRoom_EventScript_20254B:: @ 820254B
hideobjectat 1, MAP_VERDANTURF_TOWN_BATTLE_TENT_BATTLE_ROOM
call VerdanturfTown_BattleTentBattleRoom_EventScript_202310
setvar VAR_TEMP_1, 1
- applymovement 255, VerdanturfTown_BattleTentBattleRoom_Movement_202573
+ applymovement EVENT_OBJ_ID_PLAYER, VerdanturfTown_BattleTentBattleRoom_Movement_202573
removeobject 2
end
diff --git a/data/maps/VerdanturfTown_BattleTentCorridor/scripts.inc b/data/maps/VerdanturfTown_BattleTentCorridor/scripts.inc
index ef577c7f1..e5d7e45e9 100644
--- a/data/maps/VerdanturfTown_BattleTentCorridor/scripts.inc
+++ b/data/maps/VerdanturfTown_BattleTentCorridor/scripts.inc
@@ -10,12 +10,12 @@ VerdanturfTown_BattleTentCorridor_EventScript_20209A:: @ 820209A
lockall
setvar VAR_TEMP_0, 1
applymovement 1, VerdanturfTown_BattleTentCorridor_Movement_2020DE
- applymovement 255, VerdanturfTown_BattleTentCorridor_Movement_2020DE
+ applymovement EVENT_OBJ_ID_PLAYER, VerdanturfTown_BattleTentCorridor_Movement_2020DE
waitmovement 0
opendoor 2, 1
waitdooranim
applymovement 1, VerdanturfTown_BattleTentCorridor_Movement_2020E4
- applymovement 255, VerdanturfTown_BattleTentCorridor_Movement_2020E3
+ applymovement EVENT_OBJ_ID_PLAYER, VerdanturfTown_BattleTentCorridor_Movement_2020E3
waitmovement 0
closedoor 2, 1
waitdooranim
diff --git a/data/maps/VerdanturfTown_BattleTentLobby/scripts.inc b/data/maps/VerdanturfTown_BattleTentLobby/scripts.inc
index ec7ecfb1a..81726eda9 100644
--- a/data/maps/VerdanturfTown_BattleTentLobby/scripts.inc
+++ b/data/maps/VerdanturfTown_BattleTentLobby/scripts.inc
@@ -246,12 +246,12 @@ VerdanturfTown_BattleTentLobby_EventScript_201A3F:: @ 8201A3F
VerdanturfTown_BattleTentLobby_EventScript_201A41:: @ 8201A41
applymovement 1, VerdanturfTown_BattleTentLobby_Movement_201A70
- applymovement 255, VerdanturfTown_BattleTentLobby_Movement_201A70
+ applymovement EVENT_OBJ_ID_PLAYER, VerdanturfTown_BattleTentLobby_Movement_201A70
waitmovement 0
opendoor 6, 1
waitdooranim
applymovement 1, VerdanturfTown_BattleTentLobby_Movement_201A74
- applymovement 255, VerdanturfTown_BattleTentLobby_Movement_201A77
+ applymovement EVENT_OBJ_ID_PLAYER, VerdanturfTown_BattleTentLobby_Movement_201A77
waitmovement 0
closedoor 6, 1
waitdooranim
diff --git a/data/maps/VictoryRoad_1F/scripts.inc b/data/maps/VictoryRoad_1F/scripts.inc
index 5b3dabbc9..45f6d9d78 100644
--- a/data/maps/VictoryRoad_1F/scripts.inc
+++ b/data/maps/VictoryRoad_1F/scripts.inc
@@ -38,7 +38,7 @@ VictoryRoad_1F_EventScript_235DC8:: @ 8235DC8
end
VictoryRoad_1F_EventScript_235DE1:: @ 8235DE1
- applymovement 255, VictoryRoad_1F_Movement_2725AA
+ applymovement EVENT_OBJ_ID_PLAYER, VictoryRoad_1F_Movement_2725AA
waitmovement 0
msgbox VictoryRoad_1F_Text_235EE6, MSGBOX_DEFAULT
trainerbattle_no_intro TRAINER_WALLY_1, VictoryRoad_1F_Text_235FFC
diff --git a/data/scripts/cable_club.inc b/data/scripts/cable_club.inc
index f77017830..44116d088 100644
--- a/data/scripts/cable_club.inc
+++ b/data/scripts/cable_club.inc
@@ -237,7 +237,7 @@ OldaleTown_PokemonCenter_2F_EventScript_276CB5:: @ 8276CB5
goto_eq OldaleTown_PokemonCenter_2F_EventScript_276DD5
applymovement VAR_0x8007, OldaleTown_PokemonCenter_2F_Movement_27734D
waitmovement 0
- applymovement 255, OldaleTown_PokemonCenter_2F_Movement_27734F
+ applymovement EVENT_OBJ_ID_PLAYER, OldaleTown_PokemonCenter_2F_Movement_27734F
waitmovement 0
applymovement VAR_0x8007, OldaleTown_PokemonCenter_2F_Movement_277349
waitmovement 0
@@ -258,7 +258,7 @@ OldaleTown_PokemonCenter_2F_EventScript_276CFF:: @ 8276CFF
setvar VAR_0x4087, 0
compare VAR_0x8007, 0
goto_eq OldaleTown_PokemonCenter_2F_EventScript_276DD5
- applymovement 255, OldaleTown_PokemonCenter_2F_Movement_27735E
+ applymovement EVENT_OBJ_ID_PLAYER, OldaleTown_PokemonCenter_2F_Movement_27735E
waitmovement 0
applymovement VAR_0x8007, OldaleTown_PokemonCenter_2F_Movement_27734D
waitmovement 0
@@ -278,7 +278,7 @@ OldaleTown_PokemonCenter_2F_EventScript_276D2C:: @ 8276D2C
OldaleTown_PokemonCenter_2F_EventScript_276D44:: @ 8276D44
special CloseLink
setvar VAR_0x4087, 0
- applymovement 255, OldaleTown_PokemonCenter_2F_Movement_27734F
+ applymovement EVENT_OBJ_ID_PLAYER, OldaleTown_PokemonCenter_2F_Movement_27734F
waitmovement 0
compare VAR_0x8007, 0
goto_eq OldaleTown_PokemonCenter_2F_EventScript_276D6B
@@ -302,7 +302,7 @@ OldaleTown_PokemonCenter_2F_EventScript_276D84:: @ 8276D84
setvar VAR_0x4087, 0
compare VAR_0x8007, 0
goto_eq OldaleTown_PokemonCenter_2F_EventScript_276DD5
- applymovement 255, OldaleTown_PokemonCenter_2F_Movement_27735E
+ applymovement EVENT_OBJ_ID_PLAYER, OldaleTown_PokemonCenter_2F_Movement_27735E
waitmovement 0
applymovement VAR_0x8007, OldaleTown_PokemonCenter_2F_Movement_27734D
waitmovement 0
@@ -316,24 +316,24 @@ OldaleTown_PokemonCenter_2F_EventScript_276DAE:: @ 8276DAE
delay 60
message OldaleTown_PokemonCenter_2F_Text_27854C
waitmessage
- applymovement 255, OldaleTown_PokemonCenter_2F_Movement_27734F
+ applymovement EVENT_OBJ_ID_PLAYER, OldaleTown_PokemonCenter_2F_Movement_27734F
waitmovement 0
applymovement VAR_0x8007, OldaleTown_PokemonCenter_2F_Movement_277349
waitmovement 0
return
OldaleTown_PokemonCenter_2F_EventScript_276DD5:: @ 8276DD5
- applymovement 255, OldaleTown_PokemonCenter_2F_Movement_27734F
+ applymovement EVENT_OBJ_ID_PLAYER, OldaleTown_PokemonCenter_2F_Movement_27734F
waitmovement 0
return
OldaleTown_PokemonCenter_2F_EventScript_276DE0:: @ 8276DE0
lockall
- applymovement 255, OldaleTown_PokemonCenter_2F_Movement_2725A6
+ applymovement EVENT_OBJ_ID_PLAYER, OldaleTown_PokemonCenter_2F_Movement_2725A6
waitmovement 0
msgbox OldaleTown_PokemonCenter_2F_Text_27964A, MSGBOX_DEFAULT
closemessage
- applymovement 255, OldaleTown_PokemonCenter_2F_Movement_276E10
+ applymovement EVENT_OBJ_ID_PLAYER, OldaleTown_PokemonCenter_2F_Movement_276E10
waitmovement 0
delay 30
msgbox OldaleTown_PokemonCenter_2F_Text_279718, MSGBOX_DEFAULT
@@ -462,11 +462,11 @@ OldaleTown_PokemonCenter_2F_EventScript_276FBD:: @ 8276FBD
applymovement VAR_LAST_TALKED, OldaleTown_PokemonCenter_2F_Movement_27734D
waitmovement 0
closemessage
- applymovement 255, OldaleTown_PokemonCenter_2F_Movement_277356
+ applymovement EVENT_OBJ_ID_PLAYER, OldaleTown_PokemonCenter_2F_Movement_277356
waitmovement 0
opendoor 9, 1
waitdooranim
- applymovement 255, OldaleTown_PokemonCenter_2F_Movement_27735A
+ applymovement EVENT_OBJ_ID_PLAYER, OldaleTown_PokemonCenter_2F_Movement_27735A
waitmovement 0
hideobjectat 255, MAP_PETALBURG_CITY
closedoor 9, 1
@@ -481,7 +481,7 @@ OldaleTown_PokemonCenter_2F_EventScript_276FBD:: @ 8276FBD
end
OldaleTown_PokemonCenter_2F_EventScript_27702B:: @ 827702B
- applymovement 255, Movement_277352
+ applymovement EVENT_OBJ_ID_PLAYER, Movement_277352
waitmovement 0
return
@@ -566,11 +566,11 @@ OldaleTown_PokemonCenter_2F_EventScript_27713A:: @ 827713A
applymovement VAR_LAST_TALKED, OldaleTown_PokemonCenter_2F_Movement_27734D
waitmovement 0
closemessage
- applymovement 255, OldaleTown_PokemonCenter_2F_Movement_277356
+ applymovement EVENT_OBJ_ID_PLAYER, OldaleTown_PokemonCenter_2F_Movement_277356
waitmovement 0
opendoor 9, 1
waitdooranim
- applymovement 255, OldaleTown_PokemonCenter_2F_Movement_27735A
+ applymovement EVENT_OBJ_ID_PLAYER, OldaleTown_PokemonCenter_2F_Movement_27735A
waitmovement 0
hideobjectat 255, MAP_PETALBURG_CITY
closedoor 9, 1
@@ -641,11 +641,11 @@ OldaleTown_PokemonCenter_2F_EventScript_27724C:: @ 827724C
applymovement VAR_LAST_TALKED, OldaleTown_PokemonCenter_2F_Movement_27734D
waitmovement 0
closemessage
- applymovement 255, OldaleTown_PokemonCenter_2F_Movement_277356
+ applymovement EVENT_OBJ_ID_PLAYER, OldaleTown_PokemonCenter_2F_Movement_277356
waitmovement 0
opendoor 9, 1
waitdooranim
- applymovement 255, OldaleTown_PokemonCenter_2F_Movement_27735A
+ applymovement EVENT_OBJ_ID_PLAYER, OldaleTown_PokemonCenter_2F_Movement_27735A
waitmovement 0
hideobjectat 255, MAP_PETALBURG_CITY
closedoor 9, 1
@@ -1040,11 +1040,11 @@ OldaleTown_PokemonCenter_2F_EventScript_27759F:: @ 827759F
delay 60
applymovement VAR_LAST_TALKED, OldaleTown_PokemonCenter_2F_Movement_27734D
waitmovement 0
- applymovement 255, OldaleTown_PokemonCenter_2F_Movement_277356
+ applymovement EVENT_OBJ_ID_PLAYER, OldaleTown_PokemonCenter_2F_Movement_277356
waitmovement 0
opendoor 5, 1
waitdooranim
- applymovement 255, OldaleTown_PokemonCenter_2F_Movement_27735A
+ applymovement EVENT_OBJ_ID_PLAYER, OldaleTown_PokemonCenter_2F_Movement_27735A
waitmovement 0
hideobjectat 255, MAP_PETALBURG_CITY
closedoor 5, 1
@@ -1379,11 +1379,11 @@ OldaleTown_PokemonCenter_2F_EventScript_277B3A:: @ 8277B3A
applymovement VAR_LAST_TALKED, OldaleTown_PokemonCenter_2F_Movement_27734D
waitmovement 0
closemessage
- applymovement 255, OldaleTown_PokemonCenter_2F_Movement_277356
+ applymovement EVENT_OBJ_ID_PLAYER, OldaleTown_PokemonCenter_2F_Movement_277356
waitmovement 0
opendoor 9, 1
waitdooranim
- applymovement 255, OldaleTown_PokemonCenter_2F_Movement_27735A
+ applymovement EVENT_OBJ_ID_PLAYER, OldaleTown_PokemonCenter_2F_Movement_27735A
waitmovement 0
hideobjectat 255, MAP_PETALBURG_CITY
closedoor 9, 1
@@ -1593,7 +1593,7 @@ MossdeepCity_GameCorner_1F_EventScript_277E0E:: @ 8277E0E
applymovement VAR_LAST_TALKED, MossdeepCity_GameCorner_1F_Movement_27734D
waitmovement 0
closemessage
- applymovement 255, MossdeepCity_GameCorner_1F_Movement_277360
+ applymovement EVENT_OBJ_ID_PLAYER, MossdeepCity_GameCorner_1F_Movement_277360
waitmovement 0
hideobjectat 255, MAP_PETALBURG_CITY
release
diff --git a/data/scripts/players_house.inc b/data/scripts/players_house.inc
index 81ea87871..f22468500 100644
--- a/data/scripts/players_house.inc
+++ b/data/scripts/players_house.inc
@@ -15,19 +15,19 @@ LittlerootTown_MaysHouse_1F_EventScript_292704:: @ 8292704
msgbox LittlerootTown_BrendansHouse_1F_Text_1F7A46, MSGBOX_DEFAULT
closemessage
setvar VAR_0x4092, 4
- applymovement 255, LittlerootTown_BrendansHouse_1F_Movement_292763
+ applymovement EVENT_OBJ_ID_PLAYER, LittlerootTown_BrendansHouse_1F_Movement_292763
applymovement VAR_0x8004, LittlerootTown_BrendansHouse_1F_Movement_2725A6
waitmovement 0
releaseall
end
LittlerootTown_BrendansHouse_1F_EventScript_29274D:: @ 829274D
- applymovement 255, LittlerootTown_BrendansHouse_1F_Movement_2725A8
+ applymovement EVENT_OBJ_ID_PLAYER, LittlerootTown_BrendansHouse_1F_Movement_2725A8
waitmovement 0
return
LittlerootTown_BrendansHouse_1F_EventScript_292758:: @ 8292758
- applymovement 255, LittlerootTown_BrendansHouse_1F_Movement_2725A4
+ applymovement EVENT_OBJ_ID_PLAYER, LittlerootTown_BrendansHouse_1F_Movement_2725A4
waitmovement 0
return
@@ -40,7 +40,7 @@ LittlerootTown_MaysHouse_1F_EventScript_292765:: @ 8292765
msgbox LittlerootTown_BrendansHouse_1F_Text_1F7B24, MSGBOX_DEFAULT
closemessage
applymovement VAR_0x8004, LittlerootTown_BrendansHouse_1F_Movement_2725A6
- applymovement 255, LittlerootTown_BrendansHouse_1F_Movement_292AF0
+ applymovement EVENT_OBJ_ID_PLAYER, LittlerootTown_BrendansHouse_1F_Movement_292AF0
waitmovement 0
releaseall
end
@@ -83,7 +83,7 @@ LittlerootTown_BrendansHouse_2F_EventScript_2927DF:: @ 82927DF
addobject VAR_0x8008
applymovement VAR_0x8008, LittlerootTown_BrendansHouse_2F_Movement_292850
waitmovement 0
- applymovement 255, LittlerootTown_BrendansHouse_2F_Movement_2725A8
+ applymovement EVENT_OBJ_ID_PLAYER, LittlerootTown_BrendansHouse_2F_Movement_2725A8
waitmovement 0
msgbox LittlerootTown_BrendansHouse_2F_Text_1F869A, MSGBOX_DEFAULT
closemessage
@@ -96,7 +96,7 @@ LittlerootTown_BrendansHouse_2F_EventScript_29280F:: @ 829280F
addobject VAR_0x8008
applymovement VAR_0x8008, LittlerootTown_BrendansHouse_2F_Movement_29285B
waitmovement 0
- applymovement 255, LittlerootTown_BrendansHouse_2F_Movement_2725A4
+ applymovement EVENT_OBJ_ID_PLAYER, LittlerootTown_BrendansHouse_2F_Movement_2725A4
waitmovement 0
msgbox LittlerootTown_BrendansHouse_2F_Text_1F869A, MSGBOX_DEFAULT
closemessage
@@ -158,17 +158,17 @@ LittlerootTown_BrendansHouse_1F_EventScript_29286D:: @ 829286D
applymovement VAR_0x8005, LittlerootTown_BrendansHouse_1F_Movement_2725A8
waitmovement 0
call LittlerootTown_BrendansHouse_1F_EventScript_29294B
- applymovement 255, LittlerootTown_BrendansHouse_1F_Movement_292AE0
+ applymovement EVENT_OBJ_ID_PLAYER, LittlerootTown_BrendansHouse_1F_Movement_292AE0
waitmovement 0
playbgm MUS_INTER_V, 0
msgbox LittlerootTown_BrendansHouse_1F_Text_1F7BBC, MSGBOX_DEFAULT
closemessage
applymovement VAR_0x8005, LittlerootTown_BrendansHouse_1F_Movement_2929B7
waitmovement 0
- applymovement 255, LittlerootTown_BrendansHouse_1F_Movement_292AE6
+ applymovement EVENT_OBJ_ID_PLAYER, LittlerootTown_BrendansHouse_1F_Movement_292AE6
waitmovement 0
call LittlerootTown_BrendansHouse_1F_EventScript_29296C
- applymovement 255, LittlerootTown_BrendansHouse_1F_Movement_2725A4
+ applymovement EVENT_OBJ_ID_PLAYER, LittlerootTown_BrendansHouse_1F_Movement_2725A4
waitmovement 0
msgbox LittlerootTown_BrendansHouse_1F_Text_1F7BF1, MSGBOX_DEFAULT
msgbox LittlerootTown_BrendansHouse_1F_Text_1F7C35, MSGBOX_DEFAULT
@@ -183,17 +183,17 @@ LittlerootTown_MaysHouse_1F_EventScript_2928DC:: @ 82928DC
applymovement VAR_0x8005, LittlerootTown_MaysHouse_1F_Movement_2725A4
waitmovement 0
call LittlerootTown_MaysHouse_1F_EventScript_29294B
- applymovement 255, LittlerootTown_MaysHouse_1F_Movement_292AE8
+ applymovement EVENT_OBJ_ID_PLAYER, LittlerootTown_MaysHouse_1F_Movement_292AE8
waitmovement 0
playbgm MUS_INTER_V, 0
msgbox LittlerootTown_MaysHouse_1F_Text_1F7BBC, MSGBOX_DEFAULT
closemessage
applymovement VAR_0x8005, LittlerootTown_MaysHouse_1F_Movement_2929BA
waitmovement 0
- applymovement 255, LittlerootTown_MaysHouse_1F_Movement_292AEE
+ applymovement EVENT_OBJ_ID_PLAYER, LittlerootTown_MaysHouse_1F_Movement_292AEE
waitmovement 0
call LittlerootTown_MaysHouse_1F_EventScript_29296C
- applymovement 255, LittlerootTown_MaysHouse_1F_Movement_2725A8
+ applymovement EVENT_OBJ_ID_PLAYER, LittlerootTown_MaysHouse_1F_Movement_2725A8
waitmovement 0
msgbox LittlerootTown_MaysHouse_1F_Text_1F7BF1, MSGBOX_DEFAULT
msgbox LittlerootTown_MaysHouse_1F_Text_1F7C35, MSGBOX_DEFAULT
@@ -217,7 +217,7 @@ LittlerootTown_MaysHouse_1F_EventScript_29294B:: @ 829294B
LittlerootTown_BrendansHouse_1F_EventScript_29296C:: @ 829296C
LittlerootTown_MaysHouse_1F_EventScript_29296C:: @ 829296C
- applymovement 255, LittlerootTown_BrendansHouse_1F_Movement_2725A6
+ applymovement EVENT_OBJ_ID_PLAYER, LittlerootTown_BrendansHouse_1F_Movement_2725A6
waitmovement 0
msgbox LittlerootTown_BrendansHouse_1F_Text_1F7EC6, MSGBOX_DEFAULT
fadedefaultbgm
@@ -565,38 +565,38 @@ LittlerootTown_BrendansHouse_1F_EventScript_292CC1:: @ 8292CC1
return
LittlerootTown_BrendansHouse_1F_EventScript_292CD6:: @ 8292CD6
- applymovement 255, LittlerootTown_BrendansHouse_1F_Movement_292DCC
+ applymovement EVENT_OBJ_ID_PLAYER, LittlerootTown_BrendansHouse_1F_Movement_292DCC
applymovement VAR_0x800A, LittlerootTown_BrendansHouse_1F_Movement_292DCC
applymovement VAR_0x8009, LittlerootTown_BrendansHouse_1F_Movement_292DBC
waitmovement 0
return
LittlerootTown_BrendansHouse_1F_EventScript_292CEF:: @ 8292CEF
- applymovement 255, LittlerootTown_BrendansHouse_1F_Movement_292DCC
+ applymovement EVENT_OBJ_ID_PLAYER, LittlerootTown_BrendansHouse_1F_Movement_292DCC
applymovement VAR_0x800A, LittlerootTown_BrendansHouse_1F_Movement_292DCC
applymovement VAR_0x8009, LittlerootTown_BrendansHouse_1F_Movement_292DC1
waitmovement 0
return
LittlerootTown_BrendansHouse_1F_EventScript_292D08:: @ 8292D08
- applymovement 255, LittlerootTown_BrendansHouse_1F_Movement_292DC6
+ applymovement EVENT_OBJ_ID_PLAYER, LittlerootTown_BrendansHouse_1F_Movement_292DC6
waitmovement 0
return
LittlerootTown_BrendansHouse_1F_EventScript_292D13:: @ 8292D13
- applymovement 255, LittlerootTown_BrendansHouse_1F_Movement_292DD1
+ applymovement EVENT_OBJ_ID_PLAYER, LittlerootTown_BrendansHouse_1F_Movement_292DD1
waitmovement 0
return
LittlerootTown_BrendansHouse_1F_EventScript_292D1E:: @ 8292D1E
- applymovement 255, LittlerootTown_BrendansHouse_1F_Movement_292DD7
+ applymovement EVENT_OBJ_ID_PLAYER, LittlerootTown_BrendansHouse_1F_Movement_292DD7
waitmovement 0
applymovement VAR_0x800A, LittlerootTown_BrendansHouse_1F_Movement_2725A4
waitmovement 0
return
LittlerootTown_BrendansHouse_1F_EventScript_292D33:: @ 8292D33
- applymovement 255, LittlerootTown_BrendansHouse_1F_Movement_292DDE
+ applymovement EVENT_OBJ_ID_PLAYER, LittlerootTown_BrendansHouse_1F_Movement_292DDE
waitmovement 0
applymovement VAR_0x800A, LittlerootTown_BrendansHouse_1F_Movement_2725A8
waitmovement 0
@@ -605,14 +605,14 @@ LittlerootTown_BrendansHouse_1F_EventScript_292D33:: @ 8292D33
LittlerootTown_BrendansHouse_1F_EventScript_292D48:: @ 8292D48
applymovement VAR_0x800A, LittlerootTown_BrendansHouse_1F_Movement_292999
waitmovement 0
- applymovement 255, LittlerootTown_BrendansHouse_1F_Movement_2725A4
+ applymovement EVENT_OBJ_ID_PLAYER, LittlerootTown_BrendansHouse_1F_Movement_2725A4
waitmovement 0
return
LittlerootTown_BrendansHouse_1F_EventScript_292D5D:: @ 8292D5D
applymovement VAR_0x800A, LittlerootTown_BrendansHouse_1F_Movement_29299B
waitmovement 0
- applymovement 255, LittlerootTown_BrendansHouse_1F_Movement_2725A8
+ applymovement EVENT_OBJ_ID_PLAYER, LittlerootTown_BrendansHouse_1F_Movement_2725A8
waitmovement 0
return
@@ -629,14 +629,14 @@ LittlerootTown_BrendansHouse_1F_EventScript_292D7D:: @ 8292D7D
LittlerootTown_BrendansHouse_1F_EventScript_292D88:: @ 8292D88
applymovement VAR_0x800A, LittlerootTown_BrendansHouse_1F_Movement_2929AF
waitmovement 0
- applymovement 255, LittlerootTown_BrendansHouse_1F_Movement_2725A8
+ applymovement EVENT_OBJ_ID_PLAYER, LittlerootTown_BrendansHouse_1F_Movement_2725A8
waitmovement 0
return
LittlerootTown_BrendansHouse_1F_EventScript_292D9D:: @ 8292D9D
applymovement VAR_0x800A, LittlerootTown_BrendansHouse_1F_Movement_2929B3
waitmovement 0
- applymovement 255, LittlerootTown_BrendansHouse_1F_Movement_2725A4
+ applymovement EVENT_OBJ_ID_PLAYER, LittlerootTown_BrendansHouse_1F_Movement_2725A4
waitmovement 0
return
diff --git a/data/scripts/secret_base.inc b/data/scripts/secret_base.inc
index 35a2731a7..b3f567d0a 100644
--- a/data/scripts/secret_base.inc
+++ b/data/scripts/secret_base.inc
@@ -442,7 +442,7 @@ EventScript_275B5B:: @ 8275B5B
end
SecretBase_RedCave1_EventScript_275B81:: @ 8275B81
- applymovement 255, SecretBase_RedCave1_Movement_275BB4
+ applymovement EVENT_OBJ_ID_PLAYER, SecretBase_RedCave1_Movement_275BB4
waitmovement 0
setvar VAR_0x4097, 1
msgbox SecretBase_RedCave1_Text_23B759, MSGBOX_YESNO
diff --git a/data/specials.inc b/data/specials.inc
index 8ee70c306..495a5a980 100644
--- a/data/specials.inc
+++ b/data/specials.inc
@@ -286,8 +286,8 @@ gSpecials:: @ 81DBA64
def_special GameClear
def_special ShakeScreenInElevator
def_special nullsub_55
- def_special SpawnScriptEventObject
- def_special RemoveScriptEventObject
+ def_special SpawnCameraObject
+ def_special RemoveCameraObject
def_special GetPokeblockNameByMonNature
def_special GetSecretBaseNearbyMapName
def_special CheckRelicanthWailord
diff --git a/graphics/unknown/unknown_85CE55C.pal b/graphics/unknown/unknown_85CE55C.pal
new file mode 100755
index 000000000..1d83a2018
--- /dev/null
+++ b/graphics/unknown/unknown_85CE55C.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+98 0 49
+131 131 41
+156 197 32
+172 0 32
+189 0 24
+180 197 8
+156 0 8
+131 65 0
+90 0 0
+49 65 0
+32 0 8
+8 197 8
+0 0 24
+16 65 32
+32 197 32
+65 131 41
diff --git a/include/battle_anim.h b/include/battle_anim.h
index cdeb60e69..5b62e594b 100644
--- a/include/battle_anim.h
+++ b/include/battle_anim.h
@@ -144,6 +144,11 @@ void SetGreyscaleOrOriginalPalette(u16 a1, bool8 a2);
void PrepareAffineAnimInTaskData(struct Task *task, u8 spriteId, const union AffineAnimCmd *affineAnimCmds);
bool8 RunAffineAnimFromTaskData(struct Task *task);
void sub_80A78AC(struct Sprite *sprite);
+void sub_80A6BFC(struct UnknownAnimStruct2 *unk, u8 unused);
+u8 sub_80A8394(u16 species, bool8 isBackpic, u8 a3, s16 x, s16 y, u8 subpriority, u32 personality, u32 trainerId, u32 battlerId, u32 a10);
+void sub_80A749C(struct Sprite *sprite);
+void sub_80A6814(u8 taskId);
+void sub_80A8610(struct Sprite *sprite);
enum
{
@@ -178,6 +183,9 @@ u8 GetSubstituteSpriteDefault_Y(u8 battlerId);
#define STAT_ANIM_MULTIPLE_MINUS2 58
void LaunchStatusAnimation(u8 battlerId, u8 statusAnimId);
+// ground.c
+void sub_81152DC(u8 taskId);
+
// battle_anim_8170478.s
u8 ItemIdToBallId(u16 itemId);
u8 AnimateBallOpenParticles(u8 x, u8 y, u8 priority, u8 subpriority, u8 ballId);
@@ -185,6 +193,7 @@ u8 LaunchBallFadeMonTask(bool8 unFadeLater, u8 battlerId, u32 selectedPalettes,
// battle_anim_utility_funcs.s
void sub_8116EB4(u8);
+void sub_8117854(u8 taskId, int unused, u16 arg2, u8 battler1, u8 arg4, u8 arg5, u8 arg6, u8 arg7, const u8 *arg8, const u8 *arg9, const u16 *palette);
u32 UnpackSelectedBattleAnimPalettes(s16);
diff --git a/include/constants/event_objects.h b/include/constants/event_objects.h
index 4967c814d..7a97c4caf 100644
--- a/include/constants/event_objects.h
+++ b/include/constants/event_objects.h
@@ -260,4 +260,7 @@
#define TRACKS_FOOT 1
#define TRACKS_BIKE_TIRE 2
+#define EVENT_OBJ_ID_PLAYER 0xFF
+#define EVENT_OBJ_ID_CAMERA 0x7F
+
#endif // GUARD_CONSTANTS_EVENT_OBJECTS_H
diff --git a/include/graphics.h b/include/graphics.h
index 9150da83a..d7bdf096e 100644
--- a/include/graphics.h
+++ b/include/graphics.h
@@ -4159,6 +4159,8 @@ extern const u32 gBattleAnimSpriteSheet_050[];
extern const u32 gBattleAnimSpriteSheet_051[];
extern const u32 gBattleAnimSpriteSheet_052[];
extern const u32 gBattleAnimSpriteSheet_053[];
+extern const u32 gUnknown_08C2EA50[];
+extern const u32 gUnknown_08C2EA9C[];
extern const u32 gBattleAnimSpriteSheet_054[];
extern const u32 gBattleAnimSpriteSheet_055[];
extern const u32 gBattleAnimSpriteSheet_056[];
@@ -4624,6 +4626,9 @@ extern const u32 gBattleAnimSpritePalette_241[];
extern const u32 gBattleAnimSpritePalette_242[];
extern const u32 gBattleAnimSpritePalette_243[];
extern const u32 gBattleAnimSpritePalette_244[];
+extern const u8 gUnknown_08C2DC68[];
+extern const u16 gUnknown_08C2DDA4[];
+extern const u8 gUnknown_08C2DDC4[];
extern const u32 gBattleAnimSpritePalette_245[];
extern const u32 gBattleAnimSpritePalette_248[];
extern const u32 gBattleAnimSpritePalette_249[];
@@ -4702,6 +4707,9 @@ extern const u32 gBattleAnimBackgroundTilemap_07[];
extern const u32 gBattleAnimBackgroundTilemap_08[];
extern const u32 gBattleAnimBackgroundTilemap_09[];
extern const u32 gBattleAnimBackgroundTilemap_10[];
+extern const u32 gUnknown_08C2A634[];
+extern const u32 gUnknown_08C2A6D4[];
+extern const u32 gUnknown_08C2A6EC[];
extern const u32 gBattleAnimBackgroundTilemap_11[];
extern const u32 gBattleAnimBackgroundTilemap_12[];
extern const u32 gBattleAnimBackgroundTilemap_13[];
@@ -4733,6 +4741,13 @@ extern const u32 gUnknown_08C16FA8[];
extern const u32 gUnknown_08C16E90[];
extern const u32 gUnknown_08C17170[];
+extern const u32 gUnknown_08D95E00[];
+extern const u32 gUnknown_08D960D0[];
+extern const u32 gUnknown_08D963A4[];
+extern const u32 gBattleAnimBackgroundImage_Surf[];
+extern const u32 gBattleAnimBackgroundPalette_Surf[];
+extern const u32 gBattleAnimBackgroundImageMuddyWater_Pal[];
+
// Berry blender
extern const u32 gBerryBlenderArrowTiles[];
extern const u32 gBerryBlenderStartTiles[];
@@ -4762,9 +4777,4 @@ extern const u32 gCableCarDoor_Gfx[];
extern const u32 gCableCarCord_Gfx[];
extern const u16 gCableCar_Pal[];
-// Battle Anim
-extern const u32 gUnknown_08C2DDA4[];
-extern const u32 gUnknown_08C2EA50[];
-extern const u32 gUnknown_08C2EA9C[];
-
#endif //GUARD_GRAPHICS_H
diff --git a/include/scanline_effect.h b/include/scanline_effect.h
index eb837e7e2..5bd8b5546 100644
--- a/include/scanline_effect.h
+++ b/include/scanline_effect.h
@@ -3,6 +3,7 @@
// DMA control value to transfer a single 16-bit value at HBlank
#define SCANLINE_EFFECT_DMACNT_16BIT (((DMA_ENABLE | DMA_START_HBLANK | DMA_REPEAT | DMA_SRC_INC | DMA_DEST_INC | DMA_16BIT | DMA_DEST_RELOAD) << 16) | 1)
+#define SCANLINE_EFFECT_DMACNT_32BIT (((DMA_ENABLE | DMA_START_HBLANK | DMA_REPEAT | DMA_SRC_INC | DMA_DEST_INC | DMA_32BIT | DMA_DEST_RELOAD) << 16) | 1)
#define SCANLINE_EFFECT_REG_BG0HOFS (REG_ADDR_BG0HOFS - REG_ADDR_BG0HOFS)
#define SCANLINE_EFFECT_REG_BG0VOFS (REG_ADDR_BG0VOFS - REG_ADDR_BG0HOFS)
diff --git a/ld_script.txt b/ld_script.txt
index 27eed1699..453c68a65 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -159,7 +159,7 @@ SECTIONS {
src/item_use.o(.text);
src/battle_anim_effects_1.o(.text);
src/battle_anim_effects_2.o(.text);
- asm/water.o(.text);
+ src/water.o(.text);
src/fire.o(.text);
src/electric.o(.text);
asm/ice.o(.text);
@@ -224,7 +224,8 @@ SECTIONS {
src/battle_anim_sound_tasks.o(.text);
src/battle_controller_safari.o(.text);
src/fldeff_sweetscent.o(.text);
- asm/battle_anim_815A0D4.o(.text);
+ src/battle_anim_effects_3.o(.text);
+ asm/battle_anim_effects_3.o(.text);
src/learn_move.o(.text);
src/fldeff_softboiled.o(.text);
src/decoration_inventory.o(.text);
@@ -538,7 +539,7 @@ SECTIONS {
data/field_effect_helpers.o(.rodata);
src/contest_ai.o(.rodata);
src/battle_controller_safari.o(.rodata);
- data/battle_anim_815A0D4.o(.rodata);
+ src/battle_anim_effects_3.o(.rodata);
src/learn_move.o(.rodata);
src/roamer.o(.rodata);
src/battle_tower.o(.rodata);
diff --git a/src/battle_anim_80A5C6C.c b/src/battle_anim_80A5C6C.c
index 28196a345..15a4d2b63 100644
--- a/src/battle_anim_80A5C6C.c
+++ b/src/battle_anim_80A5C6C.c
@@ -906,7 +906,7 @@ void sub_80A6B90(struct UnknownAnimStruct2 *unk, u32 arg1)
}
}
-void sub_80A6BFC(struct UnknownAnimStruct2 *unk)
+void sub_80A6BFC(struct UnknownAnimStruct2 *unk, u8 unused)
{
unk->bgTiles = gUnknown_0202305C;
unk->unk4 = (u16 *)gUnknown_02023060;
diff --git a/src/battle_anim_effects_3.c b/src/battle_anim_effects_3.c
new file mode 100755
index 000000000..5f65cb31f
--- /dev/null
+++ b/src/battle_anim_effects_3.c
@@ -0,0 +1,4889 @@
+#include "global.h"
+#include "alloc.h"
+#include "battle.h"
+#include "battle_anim.h"
+#include "bg.h"
+#include "contest.h"
+#include "data2.h"
+#include "decompress.h"
+#include "dma3.h"
+#include "gpu_regs.h"
+#include "graphics.h"
+#include "palette.h"
+#include "pokemon_icon.h"
+#include "random.h"
+#include "scanline_effect.h"
+#include "sound.h"
+#include "sprite.h"
+#include "task.h"
+#include "trig.h"
+#include "util.h"
+#include "constants/battle_anim.h"
+#include "constants/rgb.h"
+#include "constants/songs.h"
+#include "constants/species.h"
+
+extern u8 sub_807521C(s16 x, s16 y, u8 a3);
+extern void sub_810E2C8(struct Sprite *);
+
+extern const struct SpriteTemplate gUnknown_08593114;
+extern const union AffineAnimCmd *const gUnknown_082FF6C0[];
+extern const union AffineAnimCmd *const gUnknown_082FF694[];
+
+void sub_815A0D4(struct Sprite *);
+void sub_815A1B0(struct Sprite *);
+void sub_815A254(struct Sprite *);
+void sub_815A2F0(struct Sprite *);
+void sub_815A6C4(struct Sprite *);
+void sub_815A7B0(struct Sprite *);
+void sub_815A7EC(struct Sprite *);
+void sub_815A8AC(struct Sprite *);
+void sub_815A934(struct Sprite *);
+void sub_815AAA4(struct Sprite *);
+void sub_815ABD0(struct Sprite *);
+void sub_815ACD0(struct Sprite *);
+void sub_815B27C(struct Sprite *);
+void sub_815B394(struct Sprite *);
+void sub_815B49C(struct Sprite *);
+void sub_815B570(struct Sprite *);
+void sub_815B70C(struct Sprite *);
+void sub_815BE04(struct Sprite *);
+void sub_815C400(struct Sprite *);
+void sub_815C6B0(struct Sprite *);
+void sub_815C95C(struct Sprite *);
+void sub_815CB88(struct Sprite *);
+void sub_815CC94(struct Sprite *);
+void sub_815CDB4(struct Sprite *);
+void sub_815D7B4(struct Sprite *);
+void sub_815D870(struct Sprite *);
+void sub_815DEBC(struct Sprite *);
+void sub_815E01C(struct Sprite *);
+void sub_815E404(struct Sprite *);
+void sub_815E444(struct Sprite *);
+void sub_815E6D8(struct Sprite *);
+void sub_815E954(struct Sprite *);
+void sub_815EA14(struct Sprite *);
+void sub_815EE84(struct Sprite *);
+void sub_815F18C(struct Sprite *);
+void sub_815F48C(struct Sprite *);
+void sub_815FE80(struct Sprite *);
+void sub_81061C4(struct Sprite *);
+void sub_8160338(struct Sprite *);
+void sub_81603A8(struct Sprite *);
+static void sub_815A114(struct Sprite *);
+static void sub_815A1F4(struct Sprite *);
+static void sub_815A234(struct Sprite *);
+static void sub_815A31C(struct Sprite *);
+static void sub_815A3AC(struct Sprite *);
+static void sub_815A3F0(struct Sprite *);
+static void sub_815A49C(struct Sprite *);
+static void sub_815A52C(u8);
+static void sub_815A5F0(u8);
+static void sub_815A73C(struct Sprite *);
+static void sub_815A76C(struct Sprite *);
+static void sub_815A9A0(struct Sprite *);
+static void sub_815AA6C(struct Sprite *);
+static void sub_815AB5C(struct Sprite *);
+static void sub_815AD4C(struct Sprite *);
+static void sub_815AED8(u8);
+static void sub_815B054(u8);
+static void sub_815B23C(struct Sprite *);
+static void sub_815B4D4(struct Sprite *);
+static void sub_815B5D0(struct Sprite *);
+static void sub_815BF44(struct Sprite *);
+static void sub_815BFF4(struct Sprite *);
+static void sub_815C050(struct Sprite *);
+static void sub_815C548(u8);
+static void sub_815C700(struct Sprite *);
+static void sub_815C7C4(u8);
+static void sub_815CC34(struct Sprite *);
+static void sub_815CD0C(struct Sprite *);
+static void sub_815CDFC(struct Sprite *);
+static void sub_815D1BC(u8);
+static void sub_815D398(u8);
+static void sub_815D694(u8);
+static void sub_815D804(struct Sprite *);
+static void sub_815DD48(u8);
+static void sub_815DDE0(u8, bool8);
+static void sub_815DF64(u8);
+static void sub_815E0DC(struct Sprite *);
+static void sub_815E20C(u8);
+static void sub_815E34C(s16, s16, s16, s16, u8, u8, s16 *, s16 *);
+static void sub_815E5CC(u8);
+static void sub_815E784(struct Sprite *);
+static void sub_815E898(u8);
+static void sub_815E9BC(struct Sprite *);
+static void sub_815EA60(struct Sprite *);
+static void sub_815ECE4(u8);
+static void sub_815EF08(struct Sprite *);
+static void sub_815F330(u8);
+static void sub_815F4F0(struct Sprite *);
+static void sub_815F79C(u8);
+static void sub_815F7C4(struct Sprite *);
+
+const union AnimCmd gUnknown_085CE004[] =
+{
+ ANIMCMD_FRAME(0, 4),
+ ANIMCMD_FRAME(16, 4),
+ ANIMCMD_FRAME(32, 4),
+ ANIMCMD_FRAME(48, 4),
+ ANIMCMD_FRAME(64, 4),
+ ANIMCMD_END,
+};
+
+const union AnimCmd *const gUnknown_085CE01C[] =
+{
+ gUnknown_085CE004,
+};
+
+const struct SpriteTemplate gUnknown_085CE020 =
+{
+ .tileTag = ANIM_TAG_SCRATCH,
+ .paletteTag = ANIM_TAG_SCRATCH,
+ .oam = &gUnknown_08524A34,
+ .anims = gUnknown_085CE01C,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_80A77C8,
+};
+
+const struct SpriteTemplate gUnknown_085CE038 =
+{
+ .tileTag = ANIM_TAG_BLACK_SMOKE,
+ .paletteTag = ANIM_TAG_BLACK_SMOKE,
+ .oam = &gUnknown_08524934,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_815A0D4,
+};
+
+const struct SpriteTemplate gUnknown_085CE050 =
+{
+ .tileTag = ANIM_TAG_BLACK_BALL,
+ .paletteTag = ANIM_TAG_BLACK_BALL,
+ .oam = &gUnknown_08524904,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_80A78AC,
+};
+
+const union AnimCmd gUnknown_085CE068[] =
+{
+ ANIMCMD_FRAME(0, 40),
+ ANIMCMD_FRAME(16, 8),
+ ANIMCMD_FRAME(32, 40),
+ ANIMCMD_END,
+};
+
+const union AnimCmd *const gUnknown_085CE078[] =
+{
+ gUnknown_085CE068,
+};
+
+const struct SpriteTemplate gUnknown_085CE07C =
+{
+ .tileTag = ANIM_TAG_OPENING_EYE,
+ .paletteTag = ANIM_TAG_OPENING_EYE,
+ .oam = &gUnknown_08524914,
+ .anims = gUnknown_085CE078,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_80A77C8,
+};
+
+const struct SpriteTemplate gUnknown_085CE094 =
+{
+ .tileTag = ANIM_TAG_ROUND_WHITE_HALO,
+ .paletteTag = ANIM_TAG_ROUND_WHITE_HALO,
+ .oam = &gUnknown_08524A3C,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_815A1B0,
+};
+
+const struct SpriteTemplate gUnknown_085CE0AC =
+{
+ .tileTag = ANIM_TAG_TEAL_ALERT,
+ .paletteTag = ANIM_TAG_TEAL_ALERT,
+ .oam = &gUnknown_08524974,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_815A254,
+};
+
+const union AffineAnimCmd gUnknown_085CE0C4[] =
+{
+ AFFINEANIMCMD_FRAME(0x180, 0x180, 0, 0),
+ AFFINEANIMCMD_FRAME(-0x20, 0x18, 0, 5),
+ AFFINEANIMCMD_FRAME(0x18, -0x20, 0, 5),
+ AFFINEANIMCMD_JUMP(1),
+};
+
+const union AffineAnimCmd gUnknown_085CE0E4[] =
+{
+ AFFINEANIMCMD_FRAME(0x30, 0x30, 0, 0),
+ AFFINEANIMCMD_FRAME(0x20, 0x20, 0, 6),
+ AFFINEANIMCMD_END,
+};
+
+const union AffineAnimCmd *const gUnknown_085CE0FC[] =
+{
+ gUnknown_085CE0C4,
+ gUnknown_085CE0E4,
+};
+
+const struct SpriteTemplate gUnknown_085CE104 =
+{
+ .tileTag = ANIM_TAG_EYE,
+ .paletteTag = ANIM_TAG_EYE,
+ .oam = &gUnknown_08524AFC,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gUnknown_085CE0FC,
+ .callback = sub_815A2F0,
+};
+
+const struct SpriteTemplate gUnknown_085CE11C =
+{
+ .tileTag = ANIM_TAG_SPIKES,
+ .paletteTag = ANIM_TAG_SPIKES,
+ .oam = &gUnknown_0852490C,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_815A6C4,
+};
+
+const union AnimCmd gUnknown_085CE134[] =
+{
+ ANIMCMD_FRAME(0, 3),
+ ANIMCMD_FRAME(16, 3),
+ ANIMCMD_FRAME(32, 3),
+ ANIMCMD_FRAME(48, 3),
+ ANIMCMD_FRAME(64, 3),
+ ANIMCMD_END,
+};
+
+const union AnimCmd *const gUnknown_085CE14C[] =
+{
+ gUnknown_085CE134,
+};
+
+const struct SpriteTemplate gUnknown_085CE150 =
+{
+ .tileTag = ANIM_TAG_LEER,
+ .paletteTag = ANIM_TAG_LEER,
+ .oam = &gUnknown_08524914,
+ .anims = gUnknown_085CE14C,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_815A7B0,
+};
+
+const union AnimCmd gUnknown_085CE168[] =
+{
+ ANIMCMD_FRAME(0, 3),
+ ANIMCMD_END,
+};
+
+const union AnimCmd *const gUnknown_085CE170[] =
+{
+ gUnknown_085CE168,
+};
+
+const union AffineAnimCmd gUnknown_085CE174[] =
+{
+ AFFINEANIMCMD_FRAME(-7, -7, -3, 16),
+ AFFINEANIMCMD_FRAME(7, 7, 3, 16),
+ AFFINEANIMCMD_JUMP(0),
+};
+
+const union AffineAnimCmd *const gUnknown_085CE18C[] =
+{
+ gUnknown_085CE174,
+};
+
+const struct SpriteTemplate gUnknown_085CE190 =
+{
+ .tileTag = ANIM_TAG_LETTER_Z,
+ .paletteTag = ANIM_TAG_LETTER_Z,
+ .oam = &gUnknown_08524974,
+ .anims = gUnknown_085CE170,
+ .images = NULL,
+ .affineAnims = gUnknown_085CE18C,
+ .callback = sub_815A7EC,
+};
+
+const union AnimCmd gUnknown_085CE1A8[] =
+{
+ ANIMCMD_FRAME(0, 8),
+ ANIMCMD_FRAME(16, 16),
+ ANIMCMD_FRAME(32, 4),
+ ANIMCMD_FRAME(48, 4),
+ ANIMCMD_END,
+};
+
+const union AnimCmd *const gUnknown_085CE1BC[] =
+{
+ gUnknown_085CE1A8,
+};
+
+const union AffineAnimCmd gUnknown_085CE1C0[] =
+{
+ AFFINEANIMCMD_FRAME(0x200, 0x200, 0, 0),
+ AFFINEANIMCMD_FRAME(-0x20, -0x20, 0, 8),
+ AFFINEANIMCMD_END,
+};
+
+const union AffineAnimCmd *const gUnknown_085CE1D8[] =
+{
+ gUnknown_085CE1C0,
+};
+
+const struct SpriteTemplate gUnknown_085CE1DC =
+{
+ .tileTag = ANIM_TAG_FANG_ATTACK,
+ .paletteTag = ANIM_TAG_FANG_ATTACK,
+ .oam = &gUnknown_085249D4,
+ .anims = gUnknown_085CE1BC,
+ .images = NULL,
+ .affineAnims = gUnknown_085CE1D8,
+ .callback = sub_815A8AC,
+};
+
+const union AffineAnimCmd gUnknown_085CE1F4[] =
+{
+ AFFINEANIMCMD_FRAME(0x0, 0x180, 0, 0),
+ AFFINEANIMCMD_FRAME(0x10, 0x0, 0, 20),
+ AFFINEANIMCMD_END,
+};
+
+const union AffineAnimCmd gUnknown_085CE20C[] =
+{
+ AFFINEANIMCMD_FRAME(0x140, 0x180, 0, 0),
+ AFFINEANIMCMD_FRAME(-0x10, 0x0, 0, 19),
+ AFFINEANIMCMD_END,
+};
+
+const union AffineAnimCmd *const gUnknown_085CE224[] =
+{
+ gUnknown_085CE1F4,
+ gUnknown_085CE20C,
+};
+
+const struct SpriteTemplate gUnknown_085CE22C =
+{
+ .tileTag = ANIM_TAG_SPOTLIGHT,
+ .paletteTag = ANIM_TAG_SPOTLIGHT,
+ .oam = &gUnknown_085249DC,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gUnknown_085CE224,
+ .callback = sub_815A934,
+};
+
+const struct SpriteTemplate gUnknown_085CE244 =
+{
+ .tileTag = ANIM_TAG_TAG_HAND,
+ .paletteTag = ANIM_TAG_TAG_HAND,
+ .oam = &gUnknown_08524914,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_815AAA4,
+};
+
+const struct SpriteTemplate gUnknown_085CE25C =
+{
+ .tileTag = ANIM_TAG_TAG_HAND,
+ .paletteTag = ANIM_TAG_TAG_HAND,
+ .oam = &gUnknown_08524914,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_815ABD0,
+};
+
+const union AnimCmd gUnknown_085CE274[] =
+{
+ ANIMCMD_FRAME(0, 2),
+ ANIMCMD_FRAME(8, 2),
+ ANIMCMD_FRAME(16, 2),
+ ANIMCMD_JUMP(0),
+};
+
+const union AnimCmd *const gUnknown_085CE284[] =
+{
+ gUnknown_085CE274,
+};
+
+const struct SpriteTemplate gUnknown_085CE288 =
+{
+ .tileTag = ANIM_TAG_RAPID_SPIN,
+ .paletteTag = ANIM_TAG_RAPID_SPIN,
+ .oam = &gUnknown_08524934,
+ .anims = gUnknown_085CE284,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_815ACD0,
+};
+
+const union AffineAnimCmd gUnknown_085CE2A0[] =
+{
+ AFFINEANIMCMD_FRAME(-12, 8, 0, 4),
+ AFFINEANIMCMD_FRAME(20, -20, 0, 4),
+ AFFINEANIMCMD_FRAME(-8, 12, 0, 4),
+ AFFINEANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_085CE2C0[] =
+{
+ ANIMCMD_FRAME(0, 8),
+ ANIMCMD_END,
+};
+
+const union AnimCmd *const gUnknown_085CE2C8[] =
+{
+ gUnknown_085CE2C0,
+};
+
+const union AffineAnimCmd gUnknown_085CE2CC[] =
+{
+ AFFINEANIMCMD_FRAME(0, 0, 5, 40),
+ AFFINEANIMCMD_FRAME(0, 0, 10, 10),
+ AFFINEANIMCMD_FRAME(0, 0, 15, 10),
+ AFFINEANIMCMD_FRAME(0, 0, 20, 40),
+ AFFINEANIMCMD_JUMP(0),
+};
+
+const union AffineAnimCmd *const gUnknown_085CE2F4[] =
+{
+ gUnknown_085CE2CC,
+};
+
+const struct SpriteTemplate gUnknown_085CE2F8 =
+{
+ .tileTag = ANIM_TAG_TRI_FORCE_TRIANGLE,
+ .paletteTag = ANIM_TAG_TRI_FORCE_TRIANGLE,
+ .oam = &gUnknown_085249DC,
+ .anims = gUnknown_085CE2C8,
+ .images = NULL,
+ .affineAnims = gUnknown_085CE2F4,
+ .callback = sub_815B27C,
+};
+
+const union AnimCmd gUnknown_085CE310[] =
+{
+ ANIMCMD_FRAME(0, 3),
+ ANIMCMD_FRAME(16, 3),
+ ANIMCMD_FRAME(32, 3),
+ ANIMCMD_FRAME(48, 3),
+ ANIMCMD_FRAME(32, 3, .hFlip = TRUE),
+ ANIMCMD_FRAME(16, 3, .hFlip = TRUE),
+ ANIMCMD_FRAME(0, 3, .hFlip = TRUE),
+ ANIMCMD_LOOP(1),
+ ANIMCMD_END,
+};
+
+const union AnimCmd *const gUnknown_085CE334[] =
+{
+ gUnknown_085CE310,
+};
+
+const struct SpriteTemplate gUnknown_085CE338 =
+{
+ .tileTag = ANIM_TAG_ECLIPSING_ORB,
+ .paletteTag = ANIM_TAG_ECLIPSING_ORB,
+ .oam = &gUnknown_08524914,
+ .anims = gUnknown_085CE334,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_80A77C8,
+};
+
+const union AffineAnimCmd gUnknown_085CE350[] =
+{
+ AFFINEANIMCMD_FRAME(-12, 20, 0, 8),
+ AFFINEANIMCMD_FRAME(12, -20, 0, 8),
+ AFFINEANIMCMD_LOOP(2),
+ AFFINEANIMCMD_END,
+};
+
+const struct SpriteTemplate gUnknown_085CE370 =
+{
+ .tileTag = ANIM_TAG_POKEBALL,
+ .paletteTag = ANIM_TAG_POKEBALL,
+ .oam = &gUnknown_0852490C,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_815B394,
+};
+
+const struct SpriteTemplate gUnknown_085CE388 =
+{
+ .tileTag = ANIM_TAG_GOLD_STARS,
+ .paletteTag = ANIM_TAG_GOLD_STARS,
+ .oam = &gUnknown_0852490C,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_815B49C,
+};
+
+const struct SpriteTemplate gUnknown_085CE3A0 =
+{
+ .tileTag = ANIM_TAG_GOLD_STARS,
+ .paletteTag = ANIM_TAG_GOLD_STARS,
+ .oam = &gUnknown_08524904,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_815B570,
+};
+
+const union AffineAnimCmd gUnknown_085CE3B8[] =
+{
+ AFFINEANIMCMD_FRAME(8, -8, 0, 12),
+ AFFINEANIMCMD_FRAME(-16, 16, 0, 12),
+ AFFINEANIMCMD_FRAME(8, -8, 0, 12),
+ AFFINEANIMCMD_LOOP(1),
+ AFFINEANIMCMD_END,
+};
+
+const union AffineAnimCmd gUnknown_085CE3E0[] =
+{
+ AFFINEANIMCMD_FRAME(0, 6, 0, 20),
+ AFFINEANIMCMD_FRAME(0, 0, 0, 20),
+ AFFINEANIMCMD_FRAME(0, -18, 0, 6),
+ AFFINEANIMCMD_FRAME(-18, -18, 0, 3),
+ AFFINEANIMCMD_FRAME(0, 0, 0, 15),
+ AFFINEANIMCMD_FRAME(4, 4, 0, 13),
+ AFFINEANIMCMD_END,
+};
+
+const struct SpriteTemplate gUnknown_085CE418 =
+{
+ .tileTag = ANIM_TAG_BLUE_ORB,
+ .paletteTag = ANIM_TAG_BLUE_ORB,
+ .oam = &gUnknown_08524904,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_815B70C,
+};
+
+const union AffineAnimCmd gUnknown_085CE430[] =
+{
+ AFFINEANIMCMD_FRAME(0, 6, 0, 20),
+ AFFINEANIMCMD_FRAME(0, 0, 0, 20),
+ AFFINEANIMCMD_FRAME(7, -30, 0, 6),
+ AFFINEANIMCMD_FRAME(0, 0, 0, 20),
+ AFFINEANIMCMD_FRAME(-2, 3, 0, 20),
+ AFFINEANIMCMD_END,
+};
+
+const s8 gUnknown_085CE460[] =
+{
+ 0xE8,
+ 0x18,
+ 0xFC,
+ 0x00,
+};
+
+const union AnimCmd gUnknown_085CE464[] =
+{
+ ANIMCMD_FRAME(0, 6),
+ ANIMCMD_FRAME(4, 6),
+ ANIMCMD_JUMP(0),
+};
+
+const union AnimCmd gUnknown_085CE470[] =
+{
+ ANIMCMD_FRAME(8, 6),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_085CE478[] =
+{
+ ANIMCMD_FRAME(12, 6),
+ ANIMCMD_END,
+};
+
+const union AnimCmd *const gUnknown_085CE480[] =
+{
+ gUnknown_085CE464,
+ gUnknown_085CE470,
+ gUnknown_085CE478,
+};
+
+const struct SpriteTemplate gUnknown_085CE48C =
+{
+ .tileTag = ANIM_TAG_GREEN_STAR,
+ .paletteTag = ANIM_TAG_GREEN_STAR,
+ .oam = &gUnknown_0852490C,
+ .anims = gUnknown_085CE480,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_815BE04,
+};
+
+const s8 gUnknown_085CE4A4[] =
+{
+ 0x78,
+ 0x50,
+ 0x28,
+ 0x00,
+};
+
+const u8 gUnknown_085CE4A8[] =
+{
+ 0,
+ 0,
+ 0,
+ 0,
+ 50,
+};
+
+const union AffineAnimCmd gUnknown_085CE4B0[] =
+{
+ AFFINEANIMCMD_FRAME(0, -15, 0, 7),
+ AFFINEANIMCMD_FRAME(0, 15, 0, 7),
+ AFFINEANIMCMD_LOOP(2),
+ AFFINEANIMCMD_END,
+};
+
+const struct SpriteTemplate gUnknown_085CE4D0 =
+{
+ .tileTag = ANIM_TAG_ANGER,
+ .paletteTag = ANIM_TAG_ANGER,
+ .oam = &gUnknown_0852490C,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_815C400,
+};
+
+const union AnimCmd gUnknown_085CE4E8[] =
+{
+ ANIMCMD_FRAME(0, 8),
+ ANIMCMD_FRAME(1, 8),
+ ANIMCMD_FRAME(2, 8),
+ ANIMCMD_FRAME(3, 8),
+ ANIMCMD_FRAME(3, 8, .vFlip = TRUE),
+ ANIMCMD_FRAME(2, 8, .vFlip = TRUE),
+ ANIMCMD_FRAME(0, 8, .vFlip = TRUE),
+ ANIMCMD_FRAME(1, 8, .vFlip = TRUE),
+ ANIMCMD_JUMP(0),
+};
+
+const union AnimCmd gUnknown_085CE50C[] =
+{
+ ANIMCMD_FRAME(0, 8, .hFlip = TRUE),
+ ANIMCMD_FRAME(1, 8, .hFlip = TRUE),
+ ANIMCMD_FRAME(2, 8, .hFlip = TRUE),
+ ANIMCMD_FRAME(3, 8, .hFlip = TRUE),
+ ANIMCMD_FRAME(3, 8, .vFlip = TRUE, .hFlip = TRUE),
+ ANIMCMD_FRAME(2, 8, .vFlip = TRUE, .hFlip = TRUE),
+ ANIMCMD_FRAME(0, 8, .vFlip = TRUE, .hFlip = TRUE),
+ ANIMCMD_FRAME(1, 8, .vFlip = TRUE, .hFlip = TRUE),
+ ANIMCMD_JUMP(0),
+};
+
+const union AnimCmd gUnknown_085CE530[] =
+{
+ ANIMCMD_FRAME(0, 8),
+ ANIMCMD_END,
+};
+
+const union AnimCmd *const gUnknown_085CE538[] =
+{
+ gUnknown_085CE4E8,
+ gUnknown_085CE50C,
+ gUnknown_085CE530,
+};
+
+const struct SpriteTemplate gUnknown_085CE544 =
+{
+ .tileTag = ANIM_TAG_PINK_PETAL,
+ .paletteTag = ANIM_TAG_PINK_PETAL,
+ .oam = &gUnknown_08524904,
+ .anims = gUnknown_085CE538,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_815C6B0,
+};
+
+const u16 gUnknown_085CE55C[] = INCBIN_U16("graphics/unknown/unknown_85CE55C.gbapal");
+
+const union AnimCmd gUnknown_085CE57C[] =
+{
+ ANIMCMD_FRAME(0, 5),
+ ANIMCMD_FRAME(4, 9),
+ ANIMCMD_FRAME(8, 5),
+ ANIMCMD_END,
+};
+
+const union AnimCmd *const gUnknown_085CE58C[] =
+{
+ gUnknown_085CE57C,
+};
+
+const struct SpriteTemplate gUnknown_085CE590 =
+{
+ .tileTag = ANIM_TAG_PAIN_SPLIT,
+ .paletteTag = ANIM_TAG_PAIN_SPLIT,
+ .oam = &gUnknown_0852490C,
+ .anims = gUnknown_085CE58C,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_815C95C,
+};
+
+const struct SpriteTemplate gUnknown_085CE5A8 =
+{
+ .tileTag = ANIM_TAG_CONFETTI,
+ .paletteTag = ANIM_TAG_CONFETTI,
+ .oam = &gUnknown_08524904,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_815CB88,
+};
+
+const struct SpriteTemplate gUnknown_085CE5C0 =
+{
+ .tileTag = ANIM_TAG_SPOTLIGHT,
+ .paletteTag = ANIM_TAG_SPOTLIGHT,
+ .oam = &gUnknown_085249DC,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gUnknown_085CE224,
+ .callback = sub_815CC94,
+};
+
+const struct SpriteTemplate gBattleAnimSpriteTemplate_85CE5D8 =
+{
+ .tileTag = ANIM_TAG_BLUE_ORB,
+ .paletteTag = ANIM_TAG_BLUE_ORB,
+ .oam = &gUnknown_08524904,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_815CDB4,
+};
+
+const union AffineAnimCmd gUnknown_085CE5F0[] =
+{
+ AFFINEANIMCMD_FRAME(16, 0, 0, 4),
+ AFFINEANIMCMD_FRAME(0, -3, 0, 16),
+ AFFINEANIMCMD_FRAME(4, 0, 0, 4),
+ AFFINEANIMCMD_FRAME(0, 0, 0, 24),
+ AFFINEANIMCMD_FRAME(-5, 3, 0, 16),
+ AFFINEANIMCMD_END,
+};
+
+const union AffineAnimCmd gUnknown_085CE620[] =
+{
+ AFFINEANIMCMD_FRAME(0x80, 0x80, 0, 0),
+ AFFINEANIMCMD_FRAME(-8, -8, 0, 8),
+ AFFINEANIMCMD_FRAME(8, 8, 0, 8),
+ AFFINEANIMCMD_JUMP(0),
+};
+
+const union AffineAnimCmd gUnknown_085CE640[] =
+{
+ AFFINEANIMCMD_FRAME(0xC0, 0xC0, 0, 0),
+ AFFINEANIMCMD_FRAME(8, 8, 0, 8),
+ AFFINEANIMCMD_FRAME(-8, -8, 0, 8),
+ AFFINEANIMCMD_JUMP(0),
+};
+
+const union AffineAnimCmd gUnknown_085CE660[] =
+{
+ AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0),
+ AFFINEANIMCMD_FRAME(8, 8, 0, 8),
+ AFFINEANIMCMD_FRAME(-8, -8, 0, 8),
+ AFFINEANIMCMD_JUMP(0),
+};
+
+const union AffineAnimCmd *const gUnknown_085CE680[] =
+{
+ gUnknown_085CE620,
+ gUnknown_085CE640,
+ gUnknown_085CE660,
+};
+
+const struct SpriteTemplate gUnknown_085CE68C =
+{
+ .tileTag = ANIM_TAG_PINK_CLOUD,
+ .paletteTag = ANIM_TAG_PINK_CLOUD,
+ .oam = &gUnknown_08524974,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gUnknown_085CE680,
+ .callback = sub_815D7B4,
+};
+
+const union AffineAnimCmd gUnknown_085CE6A4[] =
+{
+ AFFINEANIMCMD_FRAME(0x80, 0x80, 0, 0),
+ AFFINEANIMCMD_FRAME(-4, -6, 0, 16),
+ AFFINEANIMCMD_FRAME(4, 6, 0, 16),
+ AFFINEANIMCMD_JUMP(0),
+};
+
+const union AffineAnimCmd gUnknown_085CE6C4[] =
+{
+ AFFINEANIMCMD_FRAME(0xC0, 0xC0, 0, 0),
+ AFFINEANIMCMD_FRAME(4, 6, 0, 16),
+ AFFINEANIMCMD_FRAME(-4, -6, 0, 16),
+ AFFINEANIMCMD_JUMP(0),
+};
+
+const union AffineAnimCmd gUnknown_085CE6E4[] =
+{
+ AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0),
+ AFFINEANIMCMD_FRAME(4, 6, 0, 16),
+ AFFINEANIMCMD_FRAME(-4, -6, 0, 16),
+ AFFINEANIMCMD_JUMP(0),
+};
+
+const union AffineAnimCmd gUnknown_085CE704[] =
+{
+ AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0),
+ AFFINEANIMCMD_FRAME(8, 10, 0, 30),
+ AFFINEANIMCMD_FRAME(-8, -10, 0, 16),
+ AFFINEANIMCMD_JUMP(0),
+};
+
+const union AffineAnimCmd *const gUnknown_085CE724[] =
+{
+ gUnknown_085CE6A4,
+ gUnknown_085CE6C4,
+ gUnknown_085CE6E4,
+ gUnknown_085CE704,
+};
+
+const struct SpriteTemplate gUnknown_085CE734 =
+{
+ .tileTag = ANIM_TAG_PINK_CLOUD,
+ .paletteTag = ANIM_TAG_PINK_CLOUD,
+ .oam = &gUnknown_085249D4,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gUnknown_085CE724,
+ .callback = sub_815D870,
+};
+
+const union AffineAnimCmd gUnknown_085CE74C[] =
+{
+ AFFINEANIMCMD_FRAME(-16, 16, 0, 6),
+ AFFINEANIMCMD_FRAME(16, -16, 0, 12),
+ AFFINEANIMCMD_FRAME(-16, 16, 0, 6),
+ AFFINEANIMCMD_END,
+};
+
+const struct SpriteTemplate gUnknown_085CE76C =
+{
+ .tileTag = ANIM_TAG_SWEAT_DROP,
+ .paletteTag = ANIM_TAG_SWEAT_DROP,
+ .oam = &gUnknown_08524904,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_815DEBC,
+};
+
+const u16 gUnknown_085CE784[] = INCBIN_U16("graphics/battle_anims/sprites/effect.gbapal");
+
+const union AnimCmd gUnknown_085CE7B4[] =
+{
+ ANIMCMD_FRAME(0, 3),
+ ANIMCMD_FRAME(16, 3),
+ ANIMCMD_JUMP(0),
+};
+
+const union AnimCmd gUnknown_085CE7C0[] =
+{
+ ANIMCMD_FRAME(32, 3),
+ ANIMCMD_FRAME(48, 3),
+ ANIMCMD_JUMP(0),
+};
+
+const union AnimCmd *const gUnknown_085CE7CC[] =
+{
+ gUnknown_085CE7B4,
+ gUnknown_085CE7C0,
+};
+
+const struct SpriteTemplate gUnknown_085CE7D4 =
+{
+ .tileTag = ANIM_TAG_NOISE_LINE,
+ .paletteTag = ANIM_TAG_NOISE_LINE,
+ .oam = &gUnknown_08524914,
+ .anims = gUnknown_085CE7CC,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_815E01C,
+};
+
+const struct SpriteTemplate gUnknown_085CE7EC =
+{
+ .tileTag = ANIM_TAG_SMALL_RED_EYE,
+ .paletteTag = ANIM_TAG_SMALL_RED_EYE,
+ .oam = &gUnknown_08524904,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_815E404,
+};
+
+const struct SpriteTemplate gUnknown_085CE804 =
+{
+ .tileTag = ANIM_TAG_PAW_PRINT,
+ .paletteTag = ANIM_TAG_PAW_PRINT,
+ .oam = &gUnknown_08524914,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_815E444,
+};
+
+const union AffineAnimCmd gUnknown_085CE81C[] =
+{
+ AFFINEANIMCMD_FRAME(0, 0, -4, 24),
+ AFFINEANIMCMD_END,
+};
+
+const union AffineAnimCmd gUnknown_085CE82C[] =
+{
+ AFFINEANIMCMD_FRAME(0x100, 0x100, -64, 0),
+ AFFINEANIMCMD_FRAME(0, 0, 4, 24),
+ AFFINEANIMCMD_END,
+};
+
+const union AffineAnimCmd *const gUnknown_085CE844[] =
+{
+ gUnknown_085CE81C,
+ gUnknown_085CE82C,
+};
+
+const struct SpriteTemplate gUnknown_085CE84C =
+{
+ .tileTag = ANIM_TAG_RED_BALL,
+ .paletteTag = ANIM_TAG_RED_BALL,
+ .oam = &gUnknown_08524974,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gUnknown_085CE844,
+ .callback = SpriteCallbackDummy,
+};
+
+const struct SpriteTemplate gUnknown_085CE864 =
+{
+ .tileTag = ANIM_TAG_TAG_HAND,
+ .paletteTag = ANIM_TAG_TAG_HAND,
+ .oam = &gUnknown_08524914,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_815E6D8,
+};
+
+const union AffineAnimCmd gUnknown_085CE87C[] =
+{
+ AFFINEANIMCMD_FRAME(0, -16, 0, 6),
+ AFFINEANIMCMD_FRAME(0, 16, 0, 6),
+ AFFINEANIMCMD_END,
+};
+
+const struct SpriteTemplate gUnknown_085CE894 =
+{
+ .tileTag = ANIM_TAG_SMELLINGSALT_EFFECT,
+ .paletteTag = ANIM_TAG_SMELLINGSALT_EFFECT,
+ .oam = &gUnknown_08524914,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_815E954,
+};
+
+const struct SpriteTemplate gUnknown_085CE8AC =
+{
+ .tileTag = ANIM_TAG_TAG_HAND,
+ .paletteTag = ANIM_TAG_TAG_HAND,
+ .oam = &gUnknown_08524914,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_815EA14,
+};
+
+const struct SpriteTemplate gUnknown_085CE8C4 =
+{
+ .tileTag = ANIM_TAG_MAGNIFYING_GLASS,
+ .paletteTag = ANIM_TAG_MAGNIFYING_GLASS,
+ .oam = &gUnknown_08524A34,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_815EE84,
+};
+
+const struct SpriteTemplate gUnknown_085CE8DC =
+{
+ .tileTag = ANIM_TAG_GOLD_STARS,
+ .paletteTag = ANIM_TAG_GOLD_STARS,
+ .oam = &gUnknown_0852490C,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_815F18C,
+};
+
+const struct SpriteTemplate gUnknown_085CE8F4 =
+{
+ .tileTag = ANIM_TAG_GOLD_STARS,
+ .paletteTag = ANIM_TAG_GOLD_STARS,
+ .oam = &gUnknown_0852490C,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_81061C4,
+};
+
+const struct SpriteTemplate gUnknown_085CE90C =
+{
+ .tileTag = ANIM_TAG_X_SIGN,
+ .paletteTag = ANIM_TAG_X_SIGN,
+ .oam = &gUnknown_0852491C,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_815F48C,
+};
+
+const struct SpriteTemplate gUnknown_085CE924 =
+{
+ .tileTag = ANIM_TAG_ITEM_BAG,
+ .paletteTag = ANIM_TAG_ITEM_BAG,
+ .oam = &gUnknown_08524914,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_815FE80,
+};
+
+const union AnimCmd gUnknown_085CE93C[] =
+{
+ ANIMCMD_FRAME(0, 4),
+ ANIMCMD_FRAME(64, 4),
+ ANIMCMD_END,
+};
+
+const union AnimCmd *const gUnknown_085CE948[] =
+{
+ gUnknown_085CE93C,
+};
+
+const union AffineAnimCmd gUnknown_085CE94C[] =
+{
+ AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0),
+ AFFINEANIMCMD_FRAME(0, 0, -4, 8),
+ AFFINEANIMCMD_END,
+};
+
+const union AffineAnimCmd gUnknown_085CE964[] =
+{
+ AFFINEANIMCMD_FRAME(-0x100, 0x100, 0, 0),
+ AFFINEANIMCMD_FRAME(0, 0, 4, 8),
+ AFFINEANIMCMD_END,
+};
+
+const union AffineAnimCmd *const gUnknown_085CE97C[] =
+{
+ gUnknown_085CE94C,
+ gUnknown_085CE964,
+};
+
+const struct SpriteTemplate gUnknown_085CE984 =
+{
+ .tileTag = ANIM_TAG_SLAM_HIT_2,
+ .paletteTag = ANIM_TAG_SLAM_HIT_2,
+ .oam = &gUnknown_0852497C,
+ .anims = gUnknown_085CE948,
+ .images = NULL,
+ .affineAnims = gUnknown_085CE97C,
+ .callback = sub_8160338,
+};
+
+const union AffineAnimCmd gUnknown_085CE99C[] =
+{
+ AFFINEANIMCMD_FRAME(0, 0, -4, 64),
+ AFFINEANIMCMD_JUMP(0),
+};
+
+const union AffineAnimCmd *const gUnknown_085CE9AC[] =
+{
+ gUnknown_085CE99C,
+};
+
+const struct SpriteTemplate gUnknown_085CE9B0 =
+{
+ .tileTag = ANIM_TAG_RECYCLE,
+ .paletteTag = ANIM_TAG_RECYCLE,
+ .oam = &gUnknown_08524A9C,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gUnknown_085CE9AC,
+ .callback = sub_81603A8,
+};
+
+const union AffineAnimCmd gUnknown_085CE9C8[] =
+{
+ AFFINEANIMCMD_FRAME(0, 16, 0, 4),
+ AFFINEANIMCMD_FRAME(-2, 0, 0, 8),
+ AFFINEANIMCMD_FRAME(0, 4, 0, 4),
+ AFFINEANIMCMD_FRAME(0, 0, 0, 24),
+ AFFINEANIMCMD_FRAME(1, -5, 0, 16),
+ AFFINEANIMCMD_END,
+};
+
+void sub_815A0D4(struct Sprite *sprite)
+{
+ sprite->pos1.x += gBattleAnimArgs[0];
+ sprite->pos1.y += gBattleAnimArgs[1];
+
+ if (!gBattleAnimArgs[3])
+ sprite->data[0] = gBattleAnimArgs[2];
+ else
+ sprite->data[0] = -gBattleAnimArgs[2];
+
+ sprite->data[1] = gBattleAnimArgs[4];
+ sprite->callback = sub_815A114;
+}
+
+static void sub_815A114(struct Sprite *sprite)
+{
+ if (sprite->data[1] > 0)
+ {
+ sprite->pos2.x = sprite->data[2] >> 8;
+ sprite->data[2] += sprite->data[0];
+ sprite->invisible ^= 1;
+ sprite->data[1]--;
+ }
+ else
+ {
+ DestroyAnimSprite(sprite);
+ }
+}
+
+void sub_815A160(u8 taskId)
+{
+ sub_807521C(
+ GetBattlerSpriteCoord(gBattleAnimTarget, 2) + 8,
+ GetBattlerSpriteCoord(gBattleAnimTarget, 3) + 8,
+ 0);
+ DestroyAnimVisualTask(taskId);
+}
+
+void sub_815A1B0(struct Sprite *sprite)
+{
+ sprite->data[0] = 90;
+ sprite->callback = WaitAnimForDuration;
+ sprite->data[1] = 7;
+ StoreSpriteCallbackInData6(sprite, sub_815A1F4);
+ SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND);
+ SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(sprite->data[1], 16 - sprite->data[1]));
+}
+
+static void sub_815A1F4(struct Sprite *sprite)
+{
+ SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(sprite->data[1], 16 - sprite->data[1]));
+ if (--sprite->data[1] < 0)
+ {
+ sprite->invisible = 1;
+ sprite->callback = sub_815A234;
+ }
+}
+
+static void sub_815A234(struct Sprite *sprite)
+{
+ SetGpuReg(REG_OFFSET_BLDCNT, 0);
+ SetGpuReg(REG_OFFSET_BLDALPHA, 0);
+ DestroyAnimSprite(sprite);
+}
+
+void sub_815A254(struct Sprite *sprite)
+{
+ u16 rotation;
+ u8 x = GetBattlerSpriteCoord(gBattleAnimTarget, 2);
+ u8 y = GetBattlerSpriteCoord(gBattleAnimTarget, 3);
+
+ sub_80A6980(sprite, TRUE);
+
+ rotation = ArcTan2Neg(sprite->pos1.x - x, sprite->pos1.y - y);
+ rotation += 0x6000;
+ if (IsContest())
+ rotation += 0x4000;
+
+ TrySetSpriteRotScale(sprite, FALSE, 0x100, 0x100, rotation);
+
+ sprite->data[0] = gBattleAnimArgs[2];
+ sprite->data[2] = x;
+ sprite->data[4] = y;
+ sprite->callback = StartAnimLinearTranslation;
+ StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
+}
+
+void sub_815A2F0(struct Sprite *sprite)
+{
+ SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND);
+ SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0, 16));
+ sprite->data[0] = 4;
+ sprite->callback = sub_815A31C;
+}
+
+static void sub_815A31C(struct Sprite *sprite)
+{
+ SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(sprite->data[0], 16 - sprite->data[0]));
+
+ if (sprite->data[1])
+ sprite->data[0]--;
+ else
+ sprite->data[0]++;
+
+ if (sprite->data[0] == 15 || sprite->data[0] == 4)
+ sprite->data[1] ^= 1;
+
+ if (sprite->data[2]++ > 70)
+ {
+ SetGpuReg(REG_OFFSET_BLDCNT, 0);
+ SetGpuReg(REG_OFFSET_BLDALPHA, 0);
+ StartSpriteAffineAnim(sprite, 1);
+ sprite->data[2] = 0;
+ sprite->invisible = 1;
+ sprite->affineAnimPaused = 1;
+ sprite->callback = sub_815A3AC;
+ }
+}
+
+static void sub_815A3AC(struct Sprite *sprite)
+{
+ if (sprite->data[2]++ > 9)
+ {
+ sprite->invisible = 0;
+ sprite->affineAnimPaused = 0;
+ if (sprite->affineAnimEnded)
+ sprite->callback = sub_815A3F0;
+ }
+}
+
+static void sub_815A3F0(struct Sprite *sprite)
+{
+ switch (sprite->data[3])
+ {
+ case 0:
+ case 1:
+ sprite->pos2.x = 1;
+ sprite->pos2.y = 0;
+ break;
+ case 2:
+ case 3:
+ sprite->pos2.x = -1;
+ sprite->pos2.y = 0;
+ break;
+ case 4:
+ case 5:
+ sprite->pos2.x = 0;
+ sprite->pos2.y = 1;
+ break;
+ case 6:
+ default:
+ sprite->pos2.x = 0;
+ sprite->pos2.y = -1;
+ break;
+ }
+
+ if (++sprite->data[3] > 7)
+ sprite->data[3] = 0;
+
+ if (sprite->data[4]++ > 15)
+ {
+ sprite->data[0] = 16;
+ sprite->data[1] = 0;
+ SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND);
+ SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(sprite->data[0], 0));
+ sprite->callback = sub_815A49C;
+ }
+}
+
+static void sub_815A49C(struct Sprite *sprite)
+{
+ SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(sprite->data[0], 16 - sprite->data[0]));
+
+ if (sprite->data[1]++ > 1)
+ {
+ sprite->data[0]--;
+ sprite->data[1] = 0;
+ }
+
+ if (sprite->data[0] == 0)
+ sprite->invisible = 1;
+
+ if (sprite->data[0] < 0)
+ {
+ SetGpuReg(REG_OFFSET_BLDCNT, 0);
+ SetGpuReg(REG_OFFSET_BLDALPHA, 0);
+ DestroyAnimSprite(sprite);
+ }
+}
+
+void sub_815A504(u8 taskId)
+{
+ gTasks[taskId].func = sub_815A52C;
+ gAnimVisualTaskCount--;
+}
+
+static void sub_815A52C(u8 taskId)
+{
+ int i;
+ u16 lastColor;
+ u8 paletteIndex = sub_80A6D94();
+
+ if (++gTasks[taskId].data[5] == 4)
+ {
+ lastColor = gPlttBufferFaded[paletteIndex * 16 + 11];
+ for (i = 10; i > 0; i--)
+ gPlttBufferFaded[paletteIndex * 16 + i + 1] = gPlttBufferFaded[paletteIndex * 16 + i];
+
+ gPlttBufferFaded[paletteIndex * 16 + 1] = lastColor;
+ gTasks[taskId].data[5] = 0;
+ }
+
+ if ((u16)gBattleAnimArgs[7] == 0xFFFF)
+ DestroyTask(taskId);
+}
+
+void sub_815A5C8(u8 taskId)
+{
+ gTasks[taskId].func = sub_815A5F0;
+ gAnimVisualTaskCount--;
+}
+
+static void sub_815A5F0(u8 taskId)
+{
+ int i;
+ u16 lastColor;
+ u8 paletteIndex = sub_80A6D94();
+
+ if (++gTasks[taskId].data[5] == 4)
+ {
+ lastColor = gPlttBufferFaded[paletteIndex * 16 + 11];
+ for (i = 10; i > 0; i--)
+ gPlttBufferFaded[paletteIndex * 16 + i + 1] = gPlttBufferFaded[paletteIndex * 16 + i];
+ gPlttBufferFaded[paletteIndex * 16 + 1] = lastColor;
+
+ lastColor = gPlttBufferUnfaded[paletteIndex * 16 + 11];
+ for (i = 10; i > 0; i--)
+ gPlttBufferUnfaded[paletteIndex * 16 + i + 1] = gPlttBufferUnfaded[paletteIndex * 16 + i];
+ gPlttBufferUnfaded[paletteIndex * 16 + 1] = lastColor;
+
+ gTasks[taskId].data[5] = 0;
+ }
+
+ if ((u16)gBattleAnimArgs[7] == 0xFFFF)
+ DestroyTask(taskId);
+}
+
+void sub_815A6C4(struct Sprite *sprite)
+{
+ u16 x;
+ u16 y;
+
+ InitAnimSpritePos(sprite, TRUE);
+ SetAverageBattlerPositions(gBattleAnimTarget, FALSE, &x, &y);
+
+ if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
+ gBattleAnimArgs[2] = -gBattleAnimArgs[2];
+
+ sprite->data[0] = gBattleAnimArgs[4];
+ sprite->data[2] = x + gBattleAnimArgs[2];
+ sprite->data[4] = y + gBattleAnimArgs[3];
+ sprite->data[5] = -50;
+
+ InitAnimArcTranslation(sprite);
+ sprite->callback = sub_815A73C;
+}
+
+static void sub_815A73C(struct Sprite *sprite)
+{
+ if (TranslateAnimArc(sprite))
+ {
+ sprite->data[0] = 30;
+ sprite->data[1] = 0;
+ sprite->callback = WaitAnimForDuration;
+ StoreSpriteCallbackInData6(sprite, sub_815A76C);
+ }
+}
+
+static void sub_815A76C(struct Sprite *sprite)
+{
+ if (sprite->data[1] & 1)
+ sprite->invisible ^= 1;
+
+ if (++sprite->data[1] == 16)
+ DestroyAnimSprite(sprite);
+}
+
+void sub_815A7B0(struct Sprite *sprite)
+{
+ SetSpriteCoordsToAnimAttackerCoords(sprite);
+ sub_80A6864(sprite, gBattleAnimArgs[0]);
+ sprite->pos1.y += gBattleAnimArgs[1];
+ sprite->callback = RunStoredCallbackWhenAnimEnds;
+ StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
+}
+
+// This is likely fakematching due to some strange type casting behavior.
+void sub_815A7EC(struct Sprite *sprite)
+{
+ int var0;
+ int var1;
+ if (sprite->data[0] == 0)
+ {
+ SetSpriteCoordsToAnimAttackerCoords(sprite);
+ sub_80A6864(sprite, gBattleAnimArgs[0]);
+ if (!IsContest())
+ {
+ if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER)
+ {
+ sprite->data[1] = gBattleAnimArgs[2];
+ sprite->data[2] = gBattleAnimArgs[3];
+ }
+ else
+ {
+ var1 = -gBattleAnimArgs[2];
+ sprite->data[1] = var1;
+ var1 = -gBattleAnimArgs[3];
+ sprite->data[2] = var1;
+ }
+ }
+ else
+ {
+ var1 = -gBattleAnimArgs[2];
+ sprite->data[1] = var1;
+ sprite->data[2] = gBattleAnimArgs[3];
+ }
+ }
+
+ sprite->data[0]++;
+ var0 = (sprite->data[0] * 20) & 0xFF;
+ sprite->data[3] += sprite->data[1];
+ sprite->data[4] += sprite->data[2];
+ sprite->pos2.x = (sprite->data[3] + (s32)((u32)sprite->data[3] >> 31)) >> 1;
+ sprite->pos2.y = Sin(var0 & 0xFF, 5) + ((s32)(sprite->data[4] + ((u32)sprite->data[4] >> 31)) >> 1);
+
+ if ((u16)(sprite->pos1.x + sprite->pos2.x) > 240)
+ DestroyAnimSprite(sprite);
+}
+
+void sub_815A8AC(struct Sprite *sprite)
+{
+ if (sprite->animEnded)
+ DestroyAnimSprite(sprite);
+}
+
+void AnimTask_IsTargetPlayerSide(u8 taskId)
+{
+ if (GetBattlerSide(gBattleAnimTarget) == B_SIDE_OPPONENT)
+ gBattleAnimArgs[7] = 0;
+ else
+ gBattleAnimArgs[7] = 1;
+
+ DestroyAnimVisualTask(taskId);
+}
+
+void AnimTask_IsHealingMove(u8 taskId)
+{
+ if (gAnimMoveDmg > 0)
+ gBattleAnimArgs[7] = 0;
+ else
+ gBattleAnimArgs[7] = 1;
+
+ DestroyAnimVisualTask(taskId);
+}
+
+void sub_815A934(struct Sprite *sprite)
+{
+ SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG_ALL | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR | WINOUT_WINOBJ_BG_ALL | WINOUT_WINOBJ_OBJ);
+ SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_OBJWIN_ON);
+ gBattle_WIN0H = 0;
+ gBattle_WIN0V = 0;
+ SetGpuReg(REG_OFFSET_WIN0H, gBattle_WIN0H);
+ SetGpuReg(REG_OFFSET_WIN0V, gBattle_WIN0V);
+
+ sub_80A6980(sprite, FALSE);
+
+ sprite->oam.objMode = ST_OAM_OBJ_WINDOW;
+ sprite->invisible = 1;
+ sprite->callback = sub_815A9A0;
+}
+
+static void sub_815A9A0(struct Sprite *sprite)
+{
+ switch (sprite->data[0])
+ {
+ case 0:
+ sprite->invisible = 0;
+ if (sprite->affineAnimEnded)
+ sprite->data[0]++;
+ break;
+ case 1:
+ case 3:
+ sprite->data[1] += 117;
+ sprite->pos2.x = sprite->data[1] >> 8;
+ if (++sprite->data[2] == 21)
+ {
+ sprite->data[2] = 0;
+ sprite->data[0]++;
+ }
+ break;
+ case 2:
+ sprite->data[1] -= 117;
+ sprite->pos2.x = sprite->data[1] >> 8;
+ if (++sprite->data[2] == 41)
+ {
+ sprite->data[2] = 0;
+ sprite->data[0]++;
+ }
+ break;
+ case 4:
+ ChangeSpriteAffineAnim(sprite, 1);
+ sprite->data[0]++;
+ break;
+ case 5:
+ if (sprite->affineAnimEnded)
+ {
+ sprite->invisible = 1;
+ sprite->callback = sub_815AA6C;
+ }
+ break;
+ }
+}
+
+static void sub_815AA6C(struct Sprite *sprite)
+{
+ SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG_ALL | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR | WINOUT_WINOBJ_BG_ALL | WINOUT_WINOBJ_OBJ | WINOUT_WINOBJ_CLR);
+ SetGpuReg(REG_OFFSET_DISPCNT, GetGpuReg(REG_OFFSET_DISPCNT) ^ DISPCNT_OBJWIN_ON);
+ DestroyAnimSprite(sprite);
+}
+
+void sub_815AAA4(struct Sprite *sprite)
+{
+ if (gBattleAnimArgs[3] == 0)
+ {
+ sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 0);
+ sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1);
+ }
+
+ sprite->pos1.x += gBattleAnimArgs[0];
+ sprite->pos1.y += gBattleAnimArgs[1];
+ sprite->oam.tileNum += 16;
+
+ if (gBattleAnimArgs[2] == 0)
+ {
+ sprite->oam.matrixNum = 8;
+ sprite->pos2.x = -12;
+ sprite->data[1] = 2;
+ }
+ else
+ {
+ sprite->pos2.x = 12;
+ sprite->data[1] = -2;
+ }
+
+ sprite->data[0] = gBattleAnimArgs[4];
+
+ if (sprite->data[3] != 255)
+ sprite->data[3] = gBattleAnimArgs[2];
+
+ sprite->callback = sub_815AB5C;
+}
+
+static void sub_815AB5C(struct Sprite *sprite)
+{
+ if (sprite->data[2] == 0)
+ {
+ sprite->pos2.x += sprite->data[1];
+ if (sprite->pos2.x == 0)
+ {
+ sprite->data[2]++;
+ if (sprite->data[3] == 0)
+ {
+ PlaySE1WithPanning(SE_W227, BattleAnimAdjustPanning(-64));
+ }
+ }
+ }
+ else
+ {
+ sprite->pos2.x -= sprite->data[1];
+ if (abs(sprite->pos2.x) == 12)
+ {
+ sprite->data[0]--;
+ sprite->data[2]--;
+ }
+
+ }
+
+ if (sprite->data[0] == 0)
+ DestroyAnimSprite(sprite);
+}
+
+void sub_815ABD0(struct Sprite *sprite)
+{
+ sprite->oam.objMode = ST_OAM_OBJ_WINDOW;
+ sprite->data[3] = 255;
+ sub_815AAA4(sprite);
+}
+
+void sub_815ABEC(u8 taskId)
+{
+ if (IsContest())
+ {
+ SetGpuReg(REG_OFFSET_WININ, 0x1F3F);
+ gBattle_WIN1H = 0x98F0;
+ gBattle_WIN1V = 0x00A0;
+ SetGpuReg(REG_OFFSET_WIN1H, gBattle_WIN0H);
+ SetGpuReg(REG_OFFSET_WIN1V, gBattle_WIN0V);
+ }
+ else
+ {
+ SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG_ALL | WININ_WIN1_OBJ);
+ gBattle_WIN1H = 0x00F0;
+ gBattle_WIN1V = 0x78A0;
+ SetGpuReg(REG_OFFSET_WIN1H, 0x00F0);
+ SetGpuReg(REG_OFFSET_WIN1V, gBattle_WIN1V);
+ SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN1_ON);
+ }
+
+ DestroyAnimVisualTask(taskId);
+}
+
+void sub_815AC8C(u8 taskId)
+{
+ SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG_ALL | WININ_WIN1_OBJ | WININ_WIN1_CLR);
+ gBattle_WIN1H = 0;
+ gBattle_WIN1V = 0;
+ if (!IsContest())
+ ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN1_ON);
+
+ DestroyAnimVisualTask(taskId);
+}
+
+void sub_815ACD0(struct Sprite *sprite)
+{
+ int var0;
+ if (gBattleAnimArgs[0] == 0)
+ {
+ sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 0) + gBattleAnimArgs[1];
+ sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1);
+ }
+ else
+ {
+ sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, 0) + gBattleAnimArgs[1];
+ sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, 1);
+ }
+
+ sprite->pos2.y = gBattleAnimArgs[2];
+ var0 = 0;
+ if (sprite->pos2.y > gBattleAnimArgs[3])
+ var0 = 1;
+
+ sprite->data[0] = var0;
+ sprite->data[1] = 0;
+ sprite->data[2] = gBattleAnimArgs[4];
+ sprite->data[3] = gBattleAnimArgs[5];
+ sprite->data[4] = gBattleAnimArgs[3];
+ sprite->callback = sub_815AD4C;
+}
+
+static void sub_815AD4C(struct Sprite *sprite)
+{
+ sprite->data[1] = (sprite->data[1] + sprite->data[2]) & 0xFF;
+ sprite->pos2.x = gSineTable[sprite->data[1]] >> 4;
+ sprite->pos2.y += sprite->data[3];
+
+ if (sprite->data[0])
+ {
+ if (sprite->pos2.y < sprite->data[4])
+ DestroyAnimSprite(sprite);
+ }
+ else
+ {
+ if (sprite->pos2.y > sprite->data[4])
+ DestroyAnimSprite(sprite);
+ }
+}
+
+void sub_815ADB0(u8 taskId)
+{
+ s16 var0;
+ u8 toBG2;
+ s16 var2;
+ int var3;
+ int var4;
+ s16 i;
+ struct ScanlineEffectParams scanlineParams;
+ struct Task *task = &gTasks[taskId];
+
+ if (!gBattleAnimArgs[0])
+ {
+ var0 = GetBattlerYCoordWithElevation(gBattleAnimAttacker);
+ toBG2 = sub_80A8364(gBattleAnimAttacker);
+ }
+ else
+ {
+ var0 = GetBattlerYCoordWithElevation(gBattleAnimTarget);
+ toBG2 = sub_80A8364(gBattleAnimTarget);
+ }
+
+ task->data[0] = var0 + 36;
+ task->data[1] = task->data[0];
+ task->data[2] = var0 - 33;
+ if (task->data[2] < 0)
+ task->data[2] = 0;
+
+ task->data[3] = task->data[0];
+ task->data[4] = 8;
+ task->data[5] = gBattleAnimArgs[1];
+ task->data[6] = 0;
+ task->data[7] = 0;
+
+ if (toBG2 == 1)
+ {
+ var3 = gBattle_BG1_X;
+ task->data[8] = var3;
+ var4 = var3 + 240;
+ }
+ else
+ {
+ var3 = gBattle_BG2_X;
+ task->data[8] = var3;
+ var4 = var3 + 240;
+ }
+
+ task->data[9] = var4;
+ task->data[10] = gBattleAnimArgs[2];
+
+ if (!gBattleAnimArgs[2])
+ {
+ task->data[11] = var4;
+ var2 = task->data[8];
+ }
+ else
+ {
+ task->data[11] = var3;
+ var2 = task->data[9];
+ }
+
+ task->data[15] = 0;
+
+ i = task->data[2];
+ while (i <= task->data[3])
+ {
+ gScanlineEffectRegBuffers[0][i] = var2;
+ gScanlineEffectRegBuffers[1][i] = var2;
+ i++;
+ }
+
+ if (toBG2 == 1)
+ scanlineParams.dmaDest = &REG_BG1HOFS;
+ else
+ scanlineParams.dmaDest = &REG_BG2HOFS;
+
+ scanlineParams.dmaControl = SCANLINE_EFFECT_DMACNT_16BIT;
+ scanlineParams.initState = 1;
+ scanlineParams.unused9 = 0;
+ ScanlineEffect_SetParams(scanlineParams);
+
+ task->func = sub_815AED8;
+}
+
+static void sub_815AED8(u8 taskId)
+{
+ s16 i;
+ struct Task *task = &gTasks[taskId];
+
+ task->data[0] -= task->data[5];
+ if (task->data[0] < task->data[2])
+ task->data[0] = task->data[2];
+
+ if (task->data[4] == 0)
+ {
+ task->data[1] -= task->data[5];
+ if (task->data[1] < task->data[2])
+ {
+ task->data[1] = task->data[2];
+ task->data[15] = 1;
+ }
+ }
+ else
+ {
+ task->data[4]--;
+ }
+
+ if (++task->data[6] > 1)
+ {
+ task->data[6] = 0;
+ task->data[7] = task->data[7] == 0 ? 1 : 0;
+
+ if (task->data[7])
+ task->data[12] = task->data[8];
+ else
+ task->data[12] = task->data[9];
+ }
+
+ i = task->data[0];
+ while (i < task->data[1])
+ {
+ gScanlineEffectRegBuffers[0][i] = task->data[12];
+ gScanlineEffectRegBuffers[1][i] = task->data[12];
+ i++;
+ }
+
+ i = task->data[1];
+ while (i <= task->data[3])
+ {
+ gScanlineEffectRegBuffers[0][i] = task->data[11];
+ gScanlineEffectRegBuffers[1][i] = task->data[11];
+ i++;
+ }
+
+ if (task->data[15])
+ {
+ if (task->data[10])
+ gScanlineEffect.state = 3;
+
+ DestroyAnimVisualTask(taskId);
+ }
+}
+
+void sub_815AFF0(u8 taskId)
+{
+ struct Task *task = &gTasks[taskId];
+
+ task->data[0] = 0;
+ task->data[1] = 0;
+ task->data[2] = GetBattlerSpriteCoord(gBattleAnimAttacker, 2);
+ task->data[3] = GetBattlerSpriteCoord(gBattleAnimAttacker, 3);
+ task->data[4] = 32;
+ task->data[5] = -20;
+ task->data[6] = 0;
+ task->data[15] = GetAnimBattlerSpriteId(ANIM_ATTACKER);
+ task->func = sub_815B054;
+}
+
+static void sub_815B054(u8 taskId)
+{
+ int var0, var1;
+ s16 x, y;
+ u16 i, j;
+ u8 spriteId;
+ struct Task *task = &gTasks[taskId];
+
+ switch (task->data[0])
+ {
+ case 0:
+ var0 = task->data[2];
+ if (task->data[1] & 1)
+ {
+ var1 = task->data[4];
+ x = var0 - var1;
+ }
+ else
+ {
+ var1 = task->data[4];
+ x = var0 + var1;
+ }
+
+ y = task->data[3] + task->data[5];
+ spriteId = CreateSprite(&gUnknown_08593114, x, y, 6 - task->data[1]);
+ PlaySE12WithPanning(SE_W118, BattleAnimAdjustPanning(-64));
+
+ if (spriteId != MAX_SPRITES)
+ {
+ gSprites[spriteId].hFlip = task->data[1] & 1;
+ gSprites[spriteId].callback = SpriteCallbackDummy;
+ }
+
+ if (task->data[1] & 1)
+ {
+ task->data[4] -= 6;
+ task->data[5] -= 6;
+ }
+
+ PrepareAffineAnimInTaskData(task, task->data[15], gUnknown_085CE2A0);
+ task->data[1]++;
+ task->data[0] = 1;
+ break;
+ case 1:
+ if (!RunAffineAnimFromTaskData(task))
+ {
+ if (task->data[1] == 6)
+ {
+ task->data[6] = 8;
+ task->data[0] = 3;
+ }
+ else
+ {
+ if (task->data[1] <= 2)
+ task->data[6] = 10;
+ else
+ task->data[6] = 0;
+
+ task->data[0] = 2;
+ }
+ }
+ break;
+ case 2:
+ if (task->data[6] != 0)
+ task->data[6]--;
+ else
+ task->data[0] = 0;
+ break;
+ case 3:
+ if (task->data[6] != 0)
+ task->data[6]--;
+ else
+ task->data[0] = 4;
+ break;
+ case 4:
+ for (i = 0, j = 0; i < MAX_SPRITES; i++)
+ {
+ if (gSprites[i].template == &gUnknown_08593114)
+ {
+ gSprites[i].data[0] = taskId;
+ gSprites[i].data[1] = 6;
+ StartSpriteAnim(&gSprites[i], 2);
+ gSprites[i].callback = sub_815B23C;
+
+ if (++j == 6)
+ break;
+ }
+ }
+
+ task->data[6] = j;
+ task->data[0] = 5;
+ break;
+ case 5:
+ if (task->data[6] == 0)
+ DestroyAnimVisualTask(taskId);
+ break;
+ }
+}
+
+static void sub_815B23C(struct Sprite *sprite)
+{
+ if (sprite->animEnded)
+ {
+ gTasks[sprite->data[0]].data[sprite->data[1]]--;
+ DestroySprite(sprite);
+ }
+}
+
+void sub_815B27C(struct Sprite *sprite)
+{
+ if (sprite->data[0] == 0)
+ InitAnimSpritePos(sprite, FALSE);
+
+ if (++sprite->data[0] < 40)
+ {
+ u16 var = sprite->data[0];
+ if ((var & 1) == 0)
+ sprite->invisible = 1;
+ else
+ sprite->invisible = 0;
+ }
+
+ if (sprite->data[0] > 30)
+ sprite->invisible = 0;
+
+ if (sprite->data[0] == 61)
+ {
+ StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
+ sprite->pos1.x += sprite->pos2.x;
+ sprite->pos1.y += sprite->pos2.y;
+ sprite->pos2.x = 0;
+ sprite->pos2.y = 0;
+ sprite->data[0] = 20;
+ sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2);
+ sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3);
+ sprite->callback = StartAnimLinearTranslation;
+ }
+}
+
+void sub_815B338(u8 taskId)
+{
+ switch (gTasks[taskId].data[0])
+ {
+ case 0:
+ PrepareAffineAnimInTaskData(&gTasks[taskId], GetAnimBattlerSpriteId(ANIM_ATTACKER), gUnknown_085CE350);
+ gTasks[taskId].data[0]++;
+ break;
+ case 1:
+ if (!RunAffineAnimFromTaskData(&gTasks[taskId]))
+ DestroyAnimVisualTask(taskId);
+ break;
+ }
+}
+
+void sub_815B394(struct Sprite *sprite)
+{
+ u8 spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER);
+
+ switch (sprite->data[0])
+ {
+ case 0:
+ sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2);
+ sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3);
+ PrepareBattlerSpriteForRotScale(spriteId, ST_OAM_OBJ_NORMAL);
+ sprite->data[1] = 256;
+ sprite->data[2] = 256;
+ sprite->data[0]++;
+ break;
+ case 1:
+ sprite->data[1] += 96;
+ sprite->data[2] -= 26;
+ SetSpriteRotScale(spriteId, sprite->data[1], sprite->data[2], 0);
+
+ if (++sprite->data[3] == 5)
+ sprite->data[0]++;
+ // fall through
+ case 2:
+ sprite->data[1] += 96;
+ sprite->data[2] += 48;
+ SetSpriteRotScale(spriteId, sprite->data[1], sprite->data[2], 0);
+
+ if (++sprite->data[3] == 9)
+ {
+ sprite->data[3] = 0;
+ gSprites[spriteId].invisible = 1;
+ ResetSpriteRotScale(spriteId);
+ sprite->data[0]++;
+ }
+ break;
+ case 3:
+ sprite->pos2.y -= 6;
+ if (sprite->pos1.y + sprite->pos2.y < -32)
+ DestroyAnimSprite(sprite);
+ break;
+ }
+}
+
+void sub_815B49C(struct Sprite *sprite)
+{
+ if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
+ sprite->pos1.x = -16;
+ else
+ sprite->pos1.x = 256;
+
+ sprite->pos1.y = 0;
+ sprite->callback = sub_815B4D4;
+}
+
+static void sub_815B4D4(struct Sprite *sprite)
+{
+ u32 newX;
+
+ sprite->data[0] += 72;
+ if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
+ sprite->pos2.x = sprite->data[0] >> 4;
+ else
+ sprite->pos2.x = -(sprite->data[0] >> 4);
+
+ sprite->data[1] += 16;
+ sprite->pos2.y += sprite->data[1] >> 8;
+
+ if (++sprite->data[2] % 3 == 0)
+ {
+ CreateSpriteAndAnimate(
+ &gUnknown_085CE3A0,
+ sprite->pos1.x + sprite->pos2.x,
+ sprite->pos1.y + sprite->pos2.y,
+ sprite->subpriority + 1);
+ }
+
+ newX = sprite->pos1.x + sprite->pos2.x + 32;
+ if (newX > 304)
+ DestroyAnimSprite(sprite);
+}
+
+void sub_815B570(struct Sprite *sprite)
+{
+ u8 rand;
+ s8 y;
+
+ rand = Random2() & 3;
+ if (rand == 0)
+ sprite->oam.tileNum += 4;
+ else
+ sprite->oam.tileNum += 5;
+
+ y = Random2() & 7;
+ if (y > 3)
+ y = -y;
+
+ sprite->pos2.y = y;
+ sprite->callback = sub_815B5D0;
+}
+
+static void sub_815B5D0(struct Sprite *sprite)
+{
+ if (++sprite->data[0] < 30)
+ {
+ if (++sprite->data[1] == 2)
+ {
+ sprite->invisible ^= 1;
+ sprite->data[1] = 0;
+ }
+ }
+ else
+ {
+ if (sprite->data[1] == 2)
+ sprite->invisible = 0;
+
+ if (sprite->data[1] == 3)
+ {
+ sprite->invisible = 1;
+ sprite->data[1] = -1;
+ }
+
+ sprite->data[1]++;
+ }
+
+ if (sprite->data[0] > 60)
+ DestroySprite(sprite);
+}
+
+void sub_815B65C(u8 taskId)
+{
+ if (!gTasks[taskId].data[0])
+ {
+ PrepareAffineAnimInTaskData(&gTasks[taskId], GetAnimBattlerSpriteId(ANIM_ATTACKER), gUnknown_085CE3B8);
+ gTasks[taskId].data[0]++;
+ }
+ else
+ {
+ if (!RunAffineAnimFromTaskData(&gTasks[taskId]))
+ DestroyAnimVisualTask(taskId);
+ }
+}
+
+void sub_815B6B4(u8 taskId)
+{
+ if (!gTasks[taskId].data[0])
+ {
+ PrepareAffineAnimInTaskData(&gTasks[taskId], GetAnimBattlerSpriteId(ANIM_ATTACKER), gUnknown_085CE3E0);
+ gTasks[taskId].data[0]++;
+ }
+ else
+ {
+ if (!RunAffineAnimFromTaskData(&gTasks[taskId]))
+ DestroyAnimVisualTask(taskId);
+ }
+}
+
+void sub_815B70C(struct Sprite *sprite)
+{
+ switch (sprite->data[0])
+ {
+ case 0:
+ InitAnimSpritePos(sprite, FALSE);
+ sprite->data[1] = 0x900;
+ sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimAttacker, 3);
+ sprite->data[0]++;
+ break;
+ case 1:
+ sprite->pos2.y -= sprite->data[1] >> 8;
+ sprite->data[1] -= 96;
+ if (sprite->pos1.y + sprite->pos2.y > sprite->data[2])
+ DestroyAnimSprite(sprite);
+ break;
+ }
+}
+
+void sub_815B778(u8 taskId)
+{
+ if (!gTasks[taskId].data[0])
+ {
+ PrepareAffineAnimInTaskData(&gTasks[taskId], GetAnimBattlerSpriteId(ANIM_ATTACKER), gUnknown_085CE430);
+ gTasks[taskId].data[0]++;
+ }
+ else
+ {
+ if (!RunAffineAnimFromTaskData(&gTasks[taskId]))
+ DestroyAnimVisualTask(taskId);
+ }
+}
+
+void sub_815B7D0(u8 taskId)
+{
+ int i, j;
+ u8 position;
+ struct UnknownAnimStruct2 unknownStruct;
+ u8 *dest;
+ u8 *src;
+ u16 *unk4;
+ u16 stretch;
+
+ switch (gTasks[taskId].data[0])
+ {
+ case 0:
+ SetGpuReg(REG_OFFSET_MOSAIC, 0);
+ if (sub_80A8364(gBattleAnimAttacker) == 1)
+ SetAnimBgAttribute(1, BG_ANIM_MOSAIC, 1);
+ else
+ SetAnimBgAttribute(2, BG_ANIM_MOSAIC, 1);
+
+ gTasks[taskId].data[10] = gBattleAnimArgs[0];
+ gTasks[taskId].data[0]++;
+ break;
+ case 1:
+ if (gTasks[taskId].data[2]++ > 1)
+ {
+ gTasks[taskId].data[2] = 0;
+ gTasks[taskId].data[1]++;
+ stretch = gTasks[taskId].data[1];
+ SetGpuReg(REG_OFFSET_MOSAIC, (stretch << 4) | stretch);
+ if (stretch == 15)
+ gTasks[taskId].data[0]++;
+ }
+ break;
+ case 2:
+ HandleSpeciesGfxDataChange(gBattleAnimAttacker, gBattleAnimTarget, gTasks[taskId].data[10]);
+ sub_80A6BFC(&unknownStruct, gBattleAnimAttacker);
+
+ if (IsContest())
+ position = 0;
+ else
+ position = GetBattlerPosition(gBattleAnimAttacker);
+
+ src = gMonSpritesGfxPtr->sprites[position] + (gBattleMonForms[gBattleAnimAttacker] << 11);
+ dest = unknownStruct.bgTiles;
+ CpuCopy32(src, dest, 0x800);
+ LoadBgTiles(1, unknownStruct.bgTiles, 0x800, unknownStruct.tilesOffset);
+ if (IsContest())
+ {
+ if (IsSpeciesNotUnown(gContestResources->field_18->species) != IsSpeciesNotUnown(gContestResources->field_18->unk2))
+ {
+ unk4 = (u16 *)unknownStruct.unk4;
+ for (i = 0; i < 8; i++)
+ {
+ for (j = 0; j < 4; j++)
+ {
+ u16 temp = unk4[j + i * 0x20];
+ unk4[j + i * 0x20] = unk4[(7 - j) + i * 0x20];
+ unk4[(7 - j) + i * 0x20] = temp;
+ }
+ }
+
+ for (i = 0; i < 8; i++)
+ {
+ for (j = 0; j < 8; j++)
+ {
+ unk4[j + i * 0x20] ^= 0x400;
+ }
+ }
+ }
+
+ if (IsSpeciesNotUnown(gContestResources->field_18->unk2))
+ gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].affineAnims = gUnknown_082FF6C0;
+ else
+ gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].affineAnims = gUnknown_082FF694;
+
+ StartSpriteAffineAnim(&gSprites[gBattlerSpriteIds[gBattleAnimAttacker]], 0);
+ }
+
+ gTasks[taskId].data[0]++;
+ break;
+ case 3:
+ if (gTasks[taskId].data[2]++ > 1)
+ {
+ gTasks[taskId].data[2] = 0;
+ gTasks[taskId].data[1]--;
+ stretch = gTasks[taskId].data[1];
+ SetGpuReg(REG_OFFSET_MOSAIC, (stretch << 4) | stretch);
+
+ if (stretch == 0)
+ gTasks[taskId].data[0]++;
+ }
+ break;
+ case 4:
+ SetGpuReg(REG_OFFSET_MOSAIC, 0);
+ if (sub_80A8364(gBattleAnimAttacker) == 1)
+ SetAnimBgAttribute(1, BG_ANIM_MOSAIC, 0);
+ else
+ SetAnimBgAttribute(2, BG_ANIM_MOSAIC, 0);
+
+ if (!IsContest())
+ {
+ if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_OPPONENT)
+ {
+ if (gTasks[taskId].data[10] == 0)
+ SetBattlerShadowSpriteCallback(gBattleAnimAttacker, gBattleSpritesDataPtr->battlerData[gBattleAnimAttacker].transformSpecies);
+ }
+ }
+
+ DestroyAnimVisualTask(taskId);
+ break;
+ }
+}
+
+void sub_815BB18(u8 taskId)
+{
+ gBattleAnimArgs[7] = gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].invisible;
+ DestroyAnimVisualTask(taskId);
+}
+
+void sub_815BB58(u8 taskId)
+{
+ HandleSpeciesGfxDataChange(gBattleAnimAttacker, gBattleAnimTarget, TRUE);
+ DestroyAnimVisualTask(taskId);
+}
+
+void sub_815BB84(u8 taskId)
+{
+ struct UnknownAnimStruct2 unknownStruct;
+
+ switch (gTasks[taskId].data[0])
+ {
+ case 0:
+ SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND | BLDCNT_TGT1_BG1);
+ SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0, 16));
+ SetAnimBgAttribute(1, BG_ANIM_SCREEN_SIZE, 0);
+ SetAnimBgAttribute(1, BG_ANIM_PRIORITY, 1);
+ if (!IsContest())
+ SetAnimBgAttribute(1, BG_ANIM_CHAR_BASE_BLOCK, 1);
+
+ sub_80A6B30(&unknownStruct);
+ sub_80A6D60(&unknownStruct, &gUnknown_08C2A6EC, 0);
+ if (IsContest())
+ {
+ gBattle_BG1_X = -56;
+ gBattle_BG1_Y = 0;
+ }
+ else
+ {
+ if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
+ gBattle_BG1_X = -135;
+ else
+ gBattle_BG1_X = -10;
+
+ gBattle_BG1_Y = 0;
+ }
+
+ sub_80A6CC0(unknownStruct.bgId, &gUnknown_08C2A634, unknownStruct.tilesOffset);
+ LoadCompressedPalette(&gUnknown_08C2A6D4, unknownStruct.unk8 << 4, 32);
+
+ gTasks[taskId].data[10] = gBattle_BG1_X;
+ gTasks[taskId].data[11] = gBattle_BG1_Y;
+
+ gTasks[taskId].data[0]++;
+ PlaySE12WithPanning(SE_W234, BattleAnimAdjustPanning(-64));
+ break;
+ case 1:
+ if (gTasks[taskId].data[4]++ > 0)
+ {
+ gTasks[taskId].data[4] = 0;
+ if (++gTasks[taskId].data[1] > 12)
+ gTasks[taskId].data[1] = 12;
+
+ SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gTasks[taskId].data[1], 16 - gTasks[taskId].data[1]));
+
+ if (gTasks[taskId].data[1] == 12)
+ gTasks[taskId].data[0]++;
+ }
+ break;
+ case 2:
+ if (--gTasks[taskId].data[1] < 0)
+ gTasks[taskId].data[1] = 0;
+
+ SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gTasks[taskId].data[1], 16 - gTasks[taskId].data[1]));
+
+ if (!gTasks[taskId].data[1])
+ {
+ gBattle_BG1_X = gUnknown_085CE460[gTasks[taskId].data[2]] + gTasks[taskId].data[10];
+ if (++gTasks[taskId].data[2] == 4)
+ gTasks[taskId].data[0] = 4;
+ else
+ gTasks[taskId].data[0] = 3;
+ }
+ break;
+ case 3:
+ if (++gTasks[taskId].data[3] == 4)
+ {
+ gTasks[taskId].data[3] = 0;
+ gTasks[taskId].data[0] = 1;
+ PlaySE12WithPanning(SE_W234, BattleAnimAdjustPanning(-64));
+ }
+ break;
+ case 4:
+ sub_80A6B30(&unknownStruct);
+ sub_80A6C68(unknownStruct.bgId);
+ if (!IsContest())
+ SetAnimBgAttribute(1, BG_ANIM_CHAR_BASE_BLOCK, 0);
+
+ SetAnimBgAttribute(1, BG_ANIM_PRIORITY, 1);
+ gBattle_BG1_X = 0;
+ gBattle_BG1_Y = 0;
+ SetGpuReg(REG_OFFSET_BLDCNT, 0);
+ SetGpuReg(REG_OFFSET_BLDALPHA, 0);
+ DestroyAnimVisualTask(taskId);
+ break;
+ }
+}
+
+void sub_815BE04(struct Sprite *sprite)
+{
+ s16 xOffset;
+ u8 spriteId1;
+ u8 spriteId2;
+
+ xOffset = Random2();
+ xOffset &= 0x3F;
+ if (xOffset > 31)
+ xOffset = 32 - xOffset;
+
+ sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 0) + xOffset;
+ sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1) + 32;
+ sprite->data[1] = gBattleAnimArgs[0];
+ sprite->data[2] = gBattleAnimArgs[1];
+
+ spriteId1 = CreateSprite(&gUnknown_085CE48C, sprite->pos1.x, sprite->pos1.y, sprite->subpriority + 1);
+ spriteId2 = CreateSprite(&gUnknown_085CE48C, sprite->pos1.x, sprite->pos1.y, sprite->subpriority + 1);
+ StartSpriteAnim(&gSprites[spriteId1], 1);
+ StartSpriteAnim(&gSprites[spriteId2], 2);
+
+ gSprites[spriteId1].data[1] = gBattleAnimArgs[0];
+ gSprites[spriteId1].data[2] = gBattleAnimArgs[1];
+ gSprites[spriteId2].data[1] = gBattleAnimArgs[0];
+ gSprites[spriteId2].data[2] = gBattleAnimArgs[1];
+ gSprites[spriteId1].data[7] = -1;
+ gSprites[spriteId2].data[7] = -1;
+ gSprites[spriteId1].invisible = 1;
+ gSprites[spriteId2].invisible = 1;
+ gSprites[spriteId1].callback = sub_815C050;
+ gSprites[spriteId2].callback = sub_815C050;
+
+ sprite->data[6] = spriteId1;
+ sprite->data[7] = spriteId2;
+ sprite->callback = sub_815BF44;
+}
+
+static void sub_815BF44(struct Sprite *sprite)
+{
+ int var0;
+ s8 var1;
+
+ var0 = (u16)sprite->data[2] + (u16)sprite->data[3];
+ var1 = var0 >> 8;
+ sprite->pos2.y -= var1;
+ sprite->data[3] = var0 & 0xFF;
+ if (sprite->data[4] == 0 && sprite->pos2.y < -8)
+ {
+ gSprites[sprite->data[6]].invisible = 0;
+ sprite->data[4]++;
+ }
+
+ if (sprite->data[4] == 1 && sprite->pos2.y < -16)
+ {
+ gSprites[sprite->data[7]].invisible = 0;
+ sprite->data[4]++;
+ }
+
+ if (--sprite->data[1] == -1)
+ {
+ sprite->invisible = 1;
+ sprite->callback = sub_815BFF4;
+ }
+}
+
+static void sub_815BFF4(struct Sprite *sprite)
+{
+ if (gSprites[sprite->data[6]].callback == SpriteCallbackDummy
+ && gSprites[sprite->data[7]].callback == SpriteCallbackDummy)
+ {
+ DestroySprite(&gSprites[sprite->data[6]]);
+ DestroySprite(&gSprites[sprite->data[7]]);
+ DestroyAnimSprite(sprite);
+ }
+}
+
+static void sub_815C050(struct Sprite *sprite)
+{
+ u16 d2;
+ register u16 d3 asm("r1");
+ int var0;
+ s8 var1;
+
+ if (!sprite->invisible)
+ {
+ d2 = sprite->data[2];
+ d3 = sprite->data[3];
+ var0 = d2 + d3;
+ var1 = var0 >> 8;
+ sprite->pos2.y -= var1;
+ sprite->data[3] = var0 & 0xFF;
+ if (--sprite->data[1] == -1)
+ {
+ sprite->invisible = 1;
+ sprite->callback = SpriteCallbackDummy;
+ }
+ }
+}
+
+void sub_815C0A4(u8 taskId)
+{
+ struct UnknownAnimStruct2 unknownStruct;
+
+ switch (gTasks[taskId].data[0])
+ {
+ case 0:
+ SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND | BLDCNT_TGT1_BG1);
+ SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(3, 13));
+ SetAnimBgAttribute(1, BG_ANIM_SCREEN_SIZE, 0);
+ SetAnimBgAttribute(1, BG_ANIM_PRIORITY, 1);
+ if (!IsContest())
+ SetAnimBgAttribute(1, BG_ANIM_CHAR_BASE_BLOCK, 1);
+
+ sub_80A6B30(&unknownStruct);
+ sub_80A6D60(&unknownStruct, &gUnknown_08C2A6EC, 0);
+ if (IsContest())
+ {
+ gBattle_BG1_X = -56;
+ gBattle_BG1_Y = 0;
+ }
+ else
+ {
+ u8 position = GetBattlerPosition(gBattleAnimTarget);
+ if (IsDoubleBattle() == TRUE)
+ {
+ if (position == B_POSITION_OPPONENT_LEFT)
+ gBattle_BG1_X = -155;
+ if (position == B_POSITION_OPPONENT_RIGHT)
+ gBattle_BG1_X = -115;
+ if (position == B_POSITION_PLAYER_LEFT)
+ gBattle_BG1_X = 14;
+ if (position == B_POSITION_PLAYER_RIGHT)
+ gBattle_BG1_X = -20;
+ }
+ else
+ {
+ if (position == B_POSITION_OPPONENT_LEFT)
+ gBattle_BG1_X = -135;
+ if (position == B_POSITION_PLAYER_LEFT)
+ gBattle_BG1_X = -10;
+ }
+
+ gBattle_BG1_Y = 0;
+ }
+
+ sub_80A6CC0(unknownStruct.bgId, &gUnknown_08C2A634, unknownStruct.tilesOffset);
+ LoadCompressedPalette(&gUnknown_08C2A6D4, unknownStruct.unk8 << 4, 32);
+ gTasks[taskId].data[10] = gBattle_BG1_X;
+ gTasks[taskId].data[11] = gBattle_BG1_Y;
+ gTasks[taskId].data[0]++;
+ break;
+ case 1:
+ gTasks[taskId].data[3] = 0;
+ if (GetBattlerSide(gBattleAnimTarget) == B_SIDE_OPPONENT)
+ gBattle_BG1_X = gTasks[taskId].data[10] + gUnknown_085CE4A4[gTasks[taskId].data[2]];
+ else
+ gBattle_BG1_X = gTasks[taskId].data[10] - gUnknown_085CE4A4[gTasks[taskId].data[2]];
+
+ if (++gTasks[taskId].data[2] == 5)
+ gTasks[taskId].data[0] = 5;
+ else
+ gTasks[taskId].data[0]++;
+ break;
+ case 2:
+ if (--gTasks[taskId].data[1] <= 4)
+ gTasks[taskId].data[1] = 5;
+
+ SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(3, gTasks[taskId].data[1]));
+ if (gTasks[taskId].data[1] == 5)
+ gTasks[taskId].data[0]++;
+ break;
+ case 3:
+ if (++gTasks[taskId].data[3] > gUnknown_085CE4A8[gTasks[taskId].data[2]])
+ gTasks[taskId].data[0]++;
+ break;
+ case 4:
+ if (++gTasks[taskId].data[1] > 13)
+ gTasks[taskId].data[1] = 13;
+
+ SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(3, gTasks[taskId].data[1]));
+ if (gTasks[taskId].data[1] == 13)
+ gTasks[taskId].data[0] = 1;
+ break;
+ case 5:
+ sub_80A6B30(&unknownStruct);
+ sub_80A6C68(unknownStruct.bgId);
+ if (!IsContest())
+ SetAnimBgAttribute(1, BG_ANIM_CHAR_BASE_BLOCK, 0);
+
+ SetAnimBgAttribute(1, BG_ANIM_PRIORITY, 1);
+ gBattle_BG1_X = 0;
+ gBattle_BG1_Y = 0;
+ SetGpuReg(REG_OFFSET_BLDCNT, 0);
+ SetGpuReg(REG_OFFSET_BLDALPHA, 0);
+ DestroyAnimVisualTask(taskId);
+ break;
+ }
+}
+
+void sub_815C3A8(u8 taskId)
+{
+ if (gTasks[taskId].data[0] == 0)
+ {
+ PrepareAffineAnimInTaskData(&gTasks[taskId], GetAnimBattlerSpriteId(0), gUnknown_085CE4B0);
+ gTasks[taskId].data[0]++;
+ }
+ else
+ {
+ if (!RunAffineAnimFromTaskData(&gTasks[taskId]))
+ DestroyAnimVisualTask(taskId);
+ }
+}
+
+void sub_815C400(struct Sprite *sprite)
+{
+ if (sprite->data[0] == 0)
+ {
+ InitAnimSpritePos(sprite, 0);
+ sprite->data[0]++;
+ }
+ else if (sprite->data[0]++ > 20)
+ {
+ sprite->data[1] += 160;
+ sprite->data[2] += 128;
+
+ if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
+ sprite->pos2.x = -(sprite->data[1] >> 8);
+ else
+ sprite->pos2.x = sprite->data[1] >> 8;
+
+ sprite->pos2.y += sprite->data[2] >> 8;
+ if (sprite->pos2.y > 64)
+ DestroyAnimSprite(sprite);
+ }
+}
+
+void sub_815C478(u8 taskId)
+{
+ u8 side;
+ struct Task *task = &gTasks[taskId];
+
+ if (!gBattleAnimArgs[1])
+ {
+ DestroyAnimVisualTask(taskId);
+ return;
+ }
+
+ if (gBattleAnimArgs[2] < 0)
+ gBattleAnimArgs[2] = 0;
+ if (gBattleAnimArgs[2] > 2)
+ gBattleAnimArgs[2] = 2;
+
+ task->data[0] = 0;
+ task->data[1] = 0;
+ task->data[2] = 0;
+ task->data[3] = 8 - (2 * gBattleAnimArgs[2]);
+ task->data[4] = 0x100 + (gBattleAnimArgs[2] * 128);
+ task->data[5] = gBattleAnimArgs[2] + 2;
+ task->data[6] = gBattleAnimArgs[1] - 1;
+ task->data[15] = GetAnimBattlerSpriteId(gBattleAnimArgs[0]);
+
+ if (!gBattleAnimArgs[0])
+ side = GetBattlerSide(gBattleAnimAttacker);
+ else
+ side = GetBattlerSide(gBattleAnimTarget);
+
+ if (side == B_SIDE_OPPONENT)
+ {
+ task->data[4] *= -1;
+ task->data[5] *= -1;
+ }
+
+ PrepareBattlerSpriteForRotScale(task->data[15], ST_OAM_OBJ_NORMAL);
+ task->func = sub_815C548;
+}
+
+static void sub_815C548(u8 taskId)
+{
+ struct Task *task = &gTasks[taskId];
+
+ switch (task->data[0])
+ {
+ case 0:
+ gSprites[task->data[15]].pos2.x += task->data[5];
+ task->data[2] -= task->data[4];
+ SetSpriteRotScale(task->data[15], 0x100, 0x100, task->data[2]);
+ SetBattlerSpriteYOffsetFromRotation(task->data[15]);
+ if (++task->data[1] >= task->data[3])
+ {
+ task->data[1] = 0;
+ task->data[0]++;
+ }
+ break;
+ case 1:
+ gSprites[task->data[15]].pos2.x -= task->data[5];
+ task->data[2] += task->data[4];
+ SetSpriteRotScale(task->data[15], 0x100, 0x100, task->data[2]);
+ SetBattlerSpriteYOffsetFromRotation(task->data[15]);
+ if (++task->data[1] >= task->data[3] * 2)
+ {
+ task->data[1] = 0;
+ task->data[0]++;
+ }
+ break;
+ case 2:
+ gSprites[task->data[15]].pos2.x += task->data[5];
+ task->data[2] -= task->data[4];
+ SetSpriteRotScale(task->data[15], 0x100, 0x100, task->data[2]);
+ SetBattlerSpriteYOffsetFromRotation(task->data[15]);
+ if (++task->data[1] >= task->data[3])
+ {
+ if (task->data[6])
+ {
+ task->data[6]--;
+ task->data[1] = 0;
+ task->data[0] = 0;
+ }
+ else
+ {
+ task->data[0]++;
+ }
+ }
+ break;
+ case 3:
+ ResetSpriteRotScale(task->data[15]);
+ DestroyAnimVisualTask(taskId);
+ break;
+ }
+}
+
+void sub_815C6B0(struct Sprite *sprite)
+{
+ if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER)
+ {
+ sprite->pos1.x = 0;
+ sprite->pos1.y = gBattleAnimArgs[0];
+ }
+ else
+ {
+ sprite->pos1.x = 240;
+ sprite->pos1.y = gBattleAnimArgs[0] - 30;
+ }
+
+ sprite->data[2] = gBattleAnimArgs[2];
+ StartSpriteAnim(sprite, gBattleAnimArgs[1]);
+ sprite->callback = sub_815C700;
+}
+
+static void sub_815C700(struct Sprite *sprite)
+{
+ sprite->data[0] += 3;
+ if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER)
+ {
+ sprite->pos1.x += 5;
+ sprite->pos1.y -= 1;
+
+ if (sprite->pos1.x > 240)
+ DestroyAnimSprite(sprite);
+
+ sprite->pos2.y = Sin(sprite->data[0] & 0xFF, 16);
+ }
+ else
+ {
+ sprite->pos1.x -= 5;
+ sprite->pos1.y += 1;
+
+ if (sprite->pos1.x < 0)
+ DestroyAnimSprite(sprite);
+
+ sprite->pos2.y = Cos(sprite->data[0] & 0xFF, 16);
+ }
+}
+
+void sub_815C770(u8 taskId)
+{
+ struct Task *task = &gTasks[taskId];
+
+ task->data[0] = 0;
+ task->data[1] = 0;
+ task->data[2] = 0;
+ task->data[3] = 0;
+ task->data[12] = 0x20;
+ task->data[13] = 0x40;
+ task->data[14] = 0x800;
+ task->data[15] = GetAnimBattlerSpriteId(gBattleAnimArgs[0]);
+
+ PrepareBattlerSpriteForRotScale(task->data[15], ST_OAM_OBJ_NORMAL);
+ task->func = sub_815C7C4;
+}
+
+static void sub_815C7C4(u8 taskId)
+{
+ int temp;
+ struct Task *task = &gTasks[taskId];
+
+ switch (task->data[0])
+ {
+ case 0:
+ task->data[2] += 0x200;
+ if (task->data[2] >= task->data[14])
+ {
+ s16 diff = task->data[14] - task->data[2];
+ s16 div = diff / (task->data[14] * 2);
+ s16 mod = diff % (task->data[14] * 2);
+
+ if ((div & 1) == 0)
+ {
+ task->data[2] = task->data[14] - mod;
+ task->data[0] = 1;
+ }
+ else
+ {
+ task->data[2] = mod - task->data[14];
+ }
+ }
+ break;
+ case 1:
+ task->data[2] -= 0x200;
+ if (task->data[2] <= -task->data[14])
+ {
+ s16 diff = task->data[14] - task->data[2];
+ s16 div = diff / (task->data[14] * 2);
+ s16 mod = diff % (task->data[14] * 2);
+
+ if ((1 & div) == 0)
+ {
+ task->data[2] = mod - task->data[14];
+ task->data[0] = 0;
+ }
+ else
+ {
+ task->data[2] = task->data[14] - mod;
+ }
+ }
+ break;
+ case 2:
+ ResetSpriteRotScale(task->data[15]);
+ DestroyAnimVisualTask(taskId);
+ return;
+ }
+
+ SetSpriteRotScale(task->data[15], 0x100, 0x100, task->data[2]);
+ SetBattlerSpriteYOffsetFromRotation(task->data[15]);
+ gSprites[task->data[15]].pos2.x = -(((temp = task->data[2]) >= 0 ? task->data[2] : temp + 63) >> 6);
+
+ if (++task->data[1] > 8)
+ {
+ if (task->data[12])
+ {
+ task->data[12]--;
+ task->data[14] -= task->data[13];
+ if (task->data[14] < 16)
+ task->data[14] = 16;
+ }
+ else
+ {
+ task->data[0] = 2;
+ }
+ }
+}
+
+void sub_815C95C(struct Sprite *sprite)
+{
+ if (!sprite->data[0])
+ {
+ if (!gBattleAnimArgs[2])
+ {
+ sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2);
+ sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3);
+ }
+
+ sprite->pos1.x += gBattleAnimArgs[0];
+ sprite->pos1.y += gBattleAnimArgs[1];
+ sprite->data[1] = 0x80;
+ sprite->data[2] = 0x300;
+ sprite->data[3] = gBattleAnimArgs[1];
+ sprite->data[0]++;
+ }
+ else
+ {
+ sprite->pos2.x = sprite->data[1] >> 8;
+ sprite->pos2.y += sprite->data[2] >> 8;
+ if (sprite->data[4] == 0 && sprite->pos2.y > -sprite->data[3])
+ {
+ sprite->data[4] = 1;
+ sprite->data[2] = (-sprite->data[2] / 3) * 2;
+ }
+
+ sprite->data[1] += 192;
+ sprite->data[2] += 128;
+ if (sprite->animEnded)
+ DestroyAnimSprite(sprite);
+ }
+}
+
+void sub_815CA20(u8 taskId)
+{
+ u8 spriteId;
+
+ if (gTasks[taskId].data[0] == 0)
+ {
+ if (gBattleAnimArgs[0] == 0)
+ gTasks[taskId].data[11] = gBattleAnimAttacker;
+ else
+ gTasks[taskId].data[11] = gBattleAnimTarget;
+
+ spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[0]);
+ gTasks[taskId].data[10] = spriteId;
+ PrepareBattlerSpriteForRotScale(spriteId, ST_OAM_OBJ_NORMAL);
+
+ switch (gBattleAnimArgs[1])
+ {
+ case 0:
+ SetSpriteRotScale(spriteId, 0xE0, 0x140, 0);
+ SetBattlerSpriteYOffsetFromYScale(spriteId);
+ break;
+ case 1:
+ SetSpriteRotScale(spriteId, 0xD0, 0x130, 0xF00);
+ SetBattlerSpriteYOffsetFromYScale(spriteId);
+ if (IsContest() || GetBattlerSide(gTasks[taskId].data[11]) == B_SIDE_PLAYER)
+ gSprites[spriteId].pos2.y += 16;
+ break;
+ case 2:
+ SetSpriteRotScale(spriteId, 0xD0, 0x130, 0xF100);
+ SetBattlerSpriteYOffsetFromYScale(spriteId);
+ if (IsContest() || GetBattlerSide(gTasks[taskId].data[11]) == B_SIDE_PLAYER)
+ gSprites[spriteId].pos2.y += 16;
+ break;
+ }
+
+ gSprites[spriteId].pos2.x = 2;
+ gTasks[taskId].data[0]++;
+ }
+ else
+ {
+ spriteId = gTasks[taskId].data[10];
+ if (++gTasks[taskId].data[2] == 3)
+ {
+ gTasks[taskId].data[2] = 0;
+ gSprites[spriteId].pos2.x = -gSprites[spriteId].pos2.x;
+ }
+
+ if (++gTasks[taskId].data[1] == 13)
+ {
+ ResetSpriteRotScale(spriteId);
+ gSprites[spriteId].pos2.x = 0;
+ gSprites[spriteId].pos2.y = 0;
+ DestroyAnimVisualTask(taskId);
+ }
+ }
+}
+
+void sub_815CB88(struct Sprite *sprite)
+{
+ u8 tileOffset;
+ int rand1;
+ int rand2;
+
+ tileOffset = Random2() % 12;
+ sprite->oam.tileNum += tileOffset;
+ rand1 = Random2() & 0x1FF;
+ rand2 = Random2() & 0xFF;
+
+ if (rand1 & 1)
+ sprite->data[0] = 0x5E0 + rand1;
+ else
+ sprite->data[0] = 0x5E0 - rand1;
+
+ if (rand2 & 1)
+ sprite->data[1] = 0x480 + rand2;
+ else
+ sprite->data[1] = 0x480 - rand2;
+
+ sprite->data[2] = gBattleAnimArgs[0];
+ if (sprite->data[2] == 0)
+ sprite->pos1.x = -8;
+ else
+ sprite->pos1.x = 248;
+
+ sprite->pos1.y = 104;
+ sprite->callback = sub_815CC34;
+}
+
+static void sub_815CC34(struct Sprite *sprite)
+{
+ if (sprite->data[2] == 0)
+ {
+ sprite->pos2.x += sprite->data[0] >> 8;
+ sprite->pos2.y -= sprite->data[1] >> 8;
+ }
+ else
+ {
+ sprite->pos2.x -= sprite->data[0] >> 8;
+ sprite->pos2.y -= sprite->data[1] >> 8;
+ }
+
+ sprite->data[0] -= 22;
+ sprite->data[1] -= 48;
+ if (sprite->data[0] < 0)
+ sprite->data[0] = 0;
+
+ if (++sprite->data[3] == 31)
+ DestroyAnimSprite(sprite);
+}
+
+void sub_815CC94(struct Sprite *sprite)
+{
+ SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG_ALL | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR | WINOUT_WINOBJ_BG_ALL | WINOUT_WINOBJ_OBJ);
+ SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_OBJWIN_ON);
+ gBattle_WIN0H = 0;
+ gBattle_WIN0V = 0;
+ SetGpuReg(REG_OFFSET_WIN0H, gBattle_WIN0H);
+ SetGpuReg(REG_OFFSET_WIN0V, gBattle_WIN0V);
+
+ sprite->data[0] = gBattleAnimArgs[2];
+ sub_80A6980(sprite, FALSE);
+ sprite->oam.objMode = ST_OAM_OBJ_WINDOW;
+ sprite->invisible = 1;
+ sprite->callback = sub_815CD0C;
+}
+
+static void sub_815CD0C(struct Sprite *sprite)
+{
+ switch (sprite->data[1])
+ {
+ case 0:
+ sprite->invisible = 0;
+ if (sprite->affineAnimEnded)
+ sprite->data[1]++;
+ break;
+ case 1:
+ if (--sprite->data[0] == 0)
+ {
+ ChangeSpriteAffineAnim(sprite, 1);
+ sprite->data[1]++;
+ }
+ break;
+ case 2:
+ if (sprite->affineAnimEnded)
+ {
+ sprite->invisible = 1;
+ sprite->data[1]++;
+ }
+ break;
+ case 3:
+ SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG_ALL | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR | WINOUT_WINOBJ_BG_ALL | WINOUT_WINOBJ_OBJ | WINOUT_WINOBJ_CLR);
+ SetGpuReg(REG_OFFSET_DISPCNT, GetGpuReg(REG_OFFSET_DISPCNT) ^ DISPCNT_OBJWIN_ON);
+ DestroyAnimSprite(sprite);
+ break;
+ }
+}
+
+void sub_815CDB4(struct Sprite *sprite)
+{
+ sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2);
+ sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3);
+ sprite->data[0] = gBattleAnimArgs[0];
+ sprite->data[1] = gBattleAnimArgs[1];
+ sprite->callback = sub_815CDFC;
+ sprite->callback(sprite);
+}
+
+static void sub_815CDFC(struct Sprite *sprite)
+{
+ sprite->pos2.x = Sin(sprite->data[1], sprite->data[2] >> 8);
+ sprite->pos2.y = Cos(sprite->data[1], sprite->data[3] >> 8);
+ sprite->data[1] = (sprite->data[1] + 9) & 0xFF;
+
+ if ((u16)sprite->data[1] < 64 || sprite->data[1] > 195)
+ sprite->subpriority = GetBattlerSpriteSubpriority(gBattleAnimAttacker) - 1;
+ else
+ sprite->subpriority = GetBattlerSpriteSubpriority(gBattleAnimAttacker) + 1;
+
+ if (!sprite->data[5])
+ {
+ sprite->data[2] += 0x400;
+ sprite->data[3] += 0x100;
+ sprite->data[4]++;
+ if (sprite->data[4] == sprite->data[0])
+ {
+ sprite->data[4] = 0;
+ sprite->data[5] = 1;
+ }
+ }
+ else if (sprite->data[5] == 1)
+ {
+ sprite->data[2] -= 0x400;
+ sprite->data[3] -= 0x100;
+ sprite->data[4]++;
+ if (sprite->data[4] == sprite->data[0])
+ DestroyAnimSprite(sprite);
+ }
+}
+
+
+
+extern void sub_815D160(u8);
+
+void sub_815CED8(u8 taskId)
+{
+ u8 isBackPic;
+ u32 personality;
+ u32 otId;
+ u16 species;
+ s16 xOffset;
+ u32 priority;
+ u8 spriteId;
+ s16 coord1, coord2;
+
+ GetAnimBattlerSpriteId(ANIM_ATTACKER);
+ if (IsContest())
+ {
+ isBackPic = 1;
+ personality = gContestResources->field_18->unk10;
+ otId = gContestResources->field_18->unkC;
+ species = gContestResources->field_18->unk2;
+ xOffset = 20;
+ priority = sub_80A8328(gBattleAnimAttacker);
+ }
+ else
+ {
+ if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
+ {
+ isBackPic = 0;
+ personality = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimTarget]], MON_DATA_PERSONALITY);
+ otId = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimTarget]], MON_DATA_OT_ID);
+ if (gBattleSpritesDataPtr->battlerData[gBattleAnimTarget].transformSpecies == SPECIES_NONE)
+ {
+ if (GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER)
+ species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimTarget]], MON_DATA_SPECIES);
+ else
+ species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleAnimTarget]], MON_DATA_SPECIES);
+ }
+ else
+ {
+ species = gBattleSpritesDataPtr->battlerData[gBattleAnimTarget].transformSpecies;
+ }
+
+ xOffset = 20;
+ priority = sub_80A8328(gBattleAnimAttacker);
+ }
+ else
+ {
+ isBackPic = 1;
+ personality = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleAnimTarget]], MON_DATA_PERSONALITY);
+ otId = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleAnimTarget]], MON_DATA_OT_ID);
+ if (gBattleSpritesDataPtr->battlerData[gBattleAnimTarget].transformSpecies == SPECIES_NONE)
+ {
+ if (GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER)
+ species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimTarget]], MON_DATA_SPECIES);
+ else
+ species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleAnimTarget]], MON_DATA_SPECIES);
+ }
+ else
+ {
+ species = gBattleSpritesDataPtr->battlerData[gBattleAnimTarget].transformSpecies;
+ }
+
+ xOffset = -20;
+ priority = sub_80A8328(gBattleAnimAttacker);
+ }
+ }
+
+ coord1 = GetBattlerSpriteCoord(gBattleAnimAttacker, 0);
+ coord2 = GetBattlerSpriteCoord(gBattleAnimAttacker, 1);
+ spriteId = sub_80A8394(species, isBackPic, 0, coord1 + xOffset, coord2, 5, personality, otId, gBattleAnimTarget, 1);
+
+ gSprites[spriteId].oam.priority = priority;
+ gSprites[spriteId].oam.objMode = ST_OAM_OBJ_BLEND;
+ FillPalette(RGB(31, 31, 31), (gSprites[spriteId].oam.paletteNum << 4) + 0x100, 32);
+ gSprites[spriteId].oam.priority = priority;
+ SetGpuReg(REG_OFFSET_BLDCNT, 0x3F40);
+ SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gTasks[taskId].data[1], 16 - gTasks[taskId].data[1]));
+
+ gTasks[taskId].data[0] = spriteId;
+ gTasks[taskId].func = sub_815D160;
+}
+
+void sub_815D160(u8 taskId)
+{
+ if (gTasks[taskId].data[10]++ > 1)
+ {
+ gTasks[taskId].data[10] = 0;
+ gTasks[taskId].data[1]++;
+ SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gTasks[taskId].data[1], 16 - gTasks[taskId].data[1]));
+ if (gTasks[taskId].data[1] == 10)
+ {
+ gTasks[taskId].data[10] = 256;
+ gTasks[taskId].data[11] = 256;
+ gTasks[taskId].func = sub_815D1BC;
+ }
+ }
+}
+
+static void sub_815D1BC(u8 taskId)
+{
+ u8 spriteId = gTasks[taskId].data[0];
+ gTasks[taskId].data[10] -= 16;
+ gTasks[taskId].data[11] += 128;
+ gSprites[spriteId].oam.affineMode |= ST_OAM_AFFINE_DOUBLE_MASK;
+ TrySetSpriteRotScale(&gSprites[spriteId], TRUE, gTasks[taskId].data[10], gTasks[taskId].data[11], 0);
+ if (++gTasks[taskId].data[12] == 9)
+ {
+ sub_80A749C(&gSprites[spriteId]);
+ sub_80A8610(&gSprites[spriteId]);
+ gTasks[taskId].func = sub_80A6814;
+ }
+}
+
+void sub_815D240(u8 taskId)
+{
+ u8 battler;
+ u16 bgX, bgY;
+ s16 y, i;
+ struct ScanlineEffectParams scanlineParams;
+ struct Task *task = &gTasks[taskId];
+
+ if (gBattleAnimArgs[0] == 0)
+ battler = gBattleAnimAttacker;
+ else
+ battler = gBattleAnimTarget;
+
+ task->data[0] = 0;
+ task->data[1] = 0;
+ task->data[2] = 0;
+ task->data[3] = 16;
+ task->data[4] = 0;
+ task->data[5] = battler;
+ task->data[6] = 32;
+ task->data[7] = 0;
+ task->data[8] = 24;
+
+ if (GetBattlerSide(battler) == B_SIDE_OPPONENT)
+ task->data[8] *= -1;
+
+ task->data[13] = GetBattlerYCoordWithElevation(battler) - 34;
+ if (task->data[13] < 0)
+ task->data[13] = 0;
+
+ task->data[14] = task->data[13] + 66;
+ task->data[15] = GetAnimBattlerSpriteId(gBattleAnimArgs[0]);
+ if (sub_80A8364(battler) == 1)
+ {
+ scanlineParams.dmaDest = &REG_BG1HOFS;
+ SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND | BLDCNT_TGT1_BG1);
+ bgX = gBattle_BG1_X;
+ bgY = gBattle_BG1_Y;
+ }
+ else
+ {
+ scanlineParams.dmaDest = &REG_BG2HOFS;
+ SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND | BLDCNT_TGT1_BG2);
+ bgX = gBattle_BG2_X;
+ bgY = gBattle_BG2_Y;
+ }
+
+ for (y = 0, i = 0; y < 160; y++, i += 2)
+ {
+ gScanlineEffectRegBuffers[0][i] = bgX;
+ gScanlineEffectRegBuffers[1][i] = bgX;
+ gScanlineEffectRegBuffers[0][i + 1] = bgY;
+ gScanlineEffectRegBuffers[1][i + 1] = bgY;
+ }
+
+ scanlineParams.dmaControl = SCANLINE_EFFECT_DMACNT_32BIT;
+ scanlineParams.initState = 1;
+ scanlineParams.unused9 = 0;
+ ScanlineEffect_SetParams(scanlineParams);
+ task->func = sub_815D398;
+}
+
+static void sub_815D398(u8 taskId)
+{
+ struct Task *task;
+ s16 var1;
+ s16 var2;
+ s16 bgX, bgY;
+ s16 offset;
+ s16 var0;
+ s16 i;
+ s16 sineIndex;
+ s16 var3;
+
+ task = &gTasks[taskId];
+ if (sub_80A8364(task->data[5]) == 1)
+ {
+ bgX = gBattle_BG1_X;
+ bgY = gBattle_BG1_Y;
+ }
+ else
+ {
+ bgX = gBattle_BG2_X;
+ bgY = gBattle_BG2_Y;
+ }
+
+ switch (task->data[0])
+ {
+ case 0:
+ offset = task->data[14] * 2;
+ var1 = 0;
+ var2 = 0;
+ i = 0;
+ task->data[1] = (task->data[1] + 2) & 0xFF;
+ sineIndex = task->data[1];
+ task->data[9] = 0x7E0 / task->data[6];
+ task->data[10] = -((task->data[7] * 2) / task->data[9]);
+ task->data[11] = task->data[7];
+ var3 = task->data[11] >> 5;
+ task->data[12] = var3;
+ var0 = task->data[14];
+ while (var0 > task->data[13])
+ {
+ gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][offset + 1] = (i - var2) + bgY;
+ gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][offset] = bgX + var3 + (gSineTable[sineIndex] >> 5);
+ sineIndex = (sineIndex + 10) & 0xFF;
+ task->data[11] += task->data[10];
+ var3 = task->data[11] >> 5;
+ task->data[12] = var3;
+
+ i++;
+ offset -= 2;
+ var1 += task->data[6];
+ var2 = var1 >> 5;
+ var0--;
+ }
+
+ var0 *= 2;
+ while (var0 >= 0)
+ {
+ gScanlineEffectRegBuffers[0][var0] = bgX + 240;
+ gScanlineEffectRegBuffers[1][var0] = bgX + 240;
+ var0 -= 2;
+ }
+
+ if (++task->data[6] > 63)
+ {
+ task->data[6] = 64;
+ task->data[2]++;
+ if (task->data[2] & 1)
+ task->data[3]--;
+ else
+ task->data[4]++;
+
+ SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(task->data[3], task->data[4]));
+ if (task->data[3] == 0 && task->data[4] == 16)
+ {
+ task->data[2] = 0;
+ task->data[3] = 0;
+ task->data[0]++;
+ }
+ }
+ else
+ {
+ task->data[7] += task->data[8];
+ }
+ break;
+ case 1:
+ if (++task->data[2] > 12)
+ {
+ gScanlineEffect.state = 3;
+ task->data[2] = 0;
+ task->data[0]++;
+ }
+ break;
+ case 2:
+ task->data[2]++;
+ if (task->data[2] & 1)
+ task->data[3]++;
+ else
+ task->data[4]--;
+
+ SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(task->data[3], task->data[4]));
+ if (task->data[3] == 16 && task->data[4] == 0)
+ {
+ task->data[2] = 0;
+ task->data[3] = 0;
+ task->data[0]++;
+ }
+ break;
+ case 3:
+ DestroyAnimVisualTask(taskId);
+ break;
+ }
+}
+
+void sub_815D64C(u8 taskId)
+{
+ struct Task *task = &gTasks[taskId];
+ task->data[0] = 0;
+ task->data[15] = GetAnimBattlerSpriteId(gBattleAnimArgs[0]);
+ PrepareAffineAnimInTaskData(&gTasks[taskId], task->data[15], gUnknown_085CE5F0);
+ task->func = sub_815D694;
+}
+
+static void sub_815D694(u8 taskId)
+{
+ u16 var0;
+
+ struct Task *task = &gTasks[taskId];
+ var0 = task->data[0];
+ task->data[0]++;
+ var0 -= 20;
+ if (var0 < 23)
+ {
+ if (++task->data[1] > 1)
+ {
+ task->data[1] = 0;
+ task->data[2]++;
+ if (task->data[2] & 1)
+ gSprites[task->data[15]].pos2.x = 1;
+ else
+ gSprites[task->data[15]].pos2.x = -1;
+ }
+ }
+ else
+ {
+ gSprites[task->data[15]].pos2.x = 0;
+ }
+
+ if (!RunAffineAnimFromTaskData(&gTasks[taskId]))
+ DestroyAnimVisualTask(taskId);
+}
+
+void sub_815D72C(struct Sprite *sprite, s16 b, s16 c, s16 d, s16 e, u16 f)
+{
+ sprite->pos1.x = b;
+ sprite->pos1.y = c;
+ sprite->data[4] = b << 4;
+ sprite->data[5] = c << 4;
+ sprite->data[6] = ((d - b) << 4) / f;
+ sprite->data[7] = ((e - c) << 4) / f;
+}
+
+void sub_815D794(struct Sprite *sprite)
+{
+ sprite->data[4] += sprite->data[6];
+ sprite->data[5] += sprite->data[7];
+ sprite->pos1.x = sprite->data[4] >> 4;
+ sprite->pos1.y = sprite->data[5] >> 4;
+}
+
+void sub_815D7B4(struct Sprite *sprite)
+{
+ s16 x = sprite->pos1.x;
+ s16 y = sprite->pos1.y;
+
+ SetSpriteCoordsToAnimAttackerCoords(sprite);
+ StartSpriteAffineAnim(sprite, gBattleAnimArgs[0]);
+ sub_815D72C(sprite, sprite->pos1.x, sprite->pos1.y, x, y, 64);
+ sprite->data[0] = 0;
+ sprite->callback = sub_815D804;
+}
+
+static void sub_815D804(struct Sprite *sprite)
+{
+ int index;
+
+ sprite->data[0]++;
+ index = (sprite->data[0] * 8) & 0xFF;
+ sub_815D794(sprite);
+ sprite->pos2.y = Sin(index, 8);
+ if (sprite->data[0] > 58)
+ {
+ if (++sprite->data[1] > 1)
+ {
+ sprite->data[1] = 0;
+ sprite->data[2]++;
+ sprite->invisible = sprite->data[2] & 1;
+ if (sprite->data[2] > 3)
+ DestroySpriteAndMatrix(sprite);
+ }
+ }
+}
+
+void sub_815D870(struct Sprite *sprite)
+{
+ sprite->data[0] = gBattleAnimArgs[3];
+ StartSpriteAffineAnim(sprite, gBattleAnimArgs[0]);
+ if (GetBattlerSide(gBattleAnimTarget) != B_SIDE_PLAYER)
+ gBattleAnimArgs[1] = -gBattleAnimArgs[1];
+
+ sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2) + gBattleAnimArgs[1];
+ sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3) + gBattleAnimArgs[2];
+ sprite->callback = sub_810E2C8;
+}
+
+static void sub_815D8D8(u8 taskId)
+{
+ u16 var0 = 0;
+ u16 var1 = 0;
+
+ gTasks[taskId].data[0]--;
+ if ((gTasks[taskId].data[6] & 0x8000) && (--gTasks[taskId].data[1] == -1))
+ {
+ if (gTasks[taskId].data[9] == 0)
+ {
+ gTasks[taskId].data[9] = gTasks[taskId].data[4];
+ gTasks[taskId].data[4] = -gTasks[taskId].data[4];
+ }
+ else
+ {
+ gTasks[taskId].data[9] = 0;
+ }
+
+ if (gTasks[taskId].data[10] == 0)
+ {
+ gTasks[taskId].data[10] = gTasks[taskId].data[5];
+ gTasks[taskId].data[5] = -gTasks[taskId].data[5];
+ }
+ else
+ {
+ gTasks[taskId].data[10] = 0;
+ }
+
+ gTasks[taskId].data[1] = gTasks[taskId].data[13];
+ }
+
+ var0 = gTasks[taskId].data[7];
+ var1 = gTasks[taskId].data[8];
+ if (gTasks[taskId].data[2] & 0x8000)
+ gSprites[gTasks[taskId].data[15]].pos2.x = gTasks[taskId].data[9] - (var0 >> 8);
+ else
+ gSprites[gTasks[taskId].data[15]].pos2.x = gTasks[taskId].data[9] + (var0 >> 8);
+
+ if (gTasks[taskId].data[3] & 0x8000)
+ gSprites[gTasks[taskId].data[15]].pos2.y = gTasks[taskId].data[10] - (var1 >> 8);
+ else
+ gSprites[gTasks[taskId].data[15]].pos2.y = gTasks[taskId].data[10] + (var1 >> 8);
+
+ if (gTasks[taskId].data[0] < 1)
+ {
+ DestroyTask(taskId);
+ gAnimVisualTaskCount--;
+ }
+}
+
+static void sub_815DA20(u8 taskId)
+{
+ u16 var0 = 0;
+ u16 var1 = 0;
+
+ gTasks[taskId].data[0]--;
+ if ((gTasks[taskId].data[6] & 0x8000) && (--gTasks[taskId].data[1] == -1))
+ {
+ if (gTasks[taskId].data[9] == 0)
+ {
+ gTasks[taskId].data[9] = gTasks[taskId].data[4];
+ gTasks[taskId].data[4] = -gTasks[taskId].data[4];
+ }
+ else
+ {
+ gTasks[taskId].data[9] = var0;
+ }
+
+ if (gTasks[taskId].data[10] == 0)
+ {
+ gTasks[taskId].data[10] = gTasks[taskId].data[5];
+ gTasks[taskId].data[5] = -gTasks[taskId].data[5];
+ }
+ else
+ {
+ gTasks[taskId].data[10] = 0;
+ }
+
+ gTasks[taskId].data[1] = gTasks[taskId].data[13];
+ }
+
+ var0 = (gTasks[taskId].data[2] & 0x7FFF) + gTasks[taskId].data[7];
+ var1 = (gTasks[taskId].data[3] & 0x7FFF) + gTasks[taskId].data[8];
+ if (gTasks[taskId].data[2] & 0x8000)
+ gSprites[gTasks[taskId].data[15]].pos2.x = gTasks[taskId].data[9] - (var0 >> 8);
+ else
+ gSprites[gTasks[taskId].data[15]].pos2.x = gTasks[taskId].data[9] + (var0 >> 8);
+
+ if (gTasks[taskId].data[3] & 0x8000)
+ gSprites[gTasks[taskId].data[15]].pos2.y = gTasks[taskId].data[10] - (var1 >> 8);
+ else
+ gSprites[gTasks[taskId].data[15]].pos2.y = gTasks[taskId].data[10] + (var1 >> 8);
+
+ gTasks[taskId].data[7] = var0;
+ gTasks[taskId].data[8] = var1;
+ if (gTasks[taskId].data[0] < 1)
+ {
+ gTasks[taskId].data[0] = 30;
+ gTasks[taskId].data[13] = 0;
+ gTasks[taskId].func = sub_815D8D8;
+ }
+}
+
+void sub_815DB90(u8 taskId)
+{
+ gTasks[taskId].data[15] = gBattlerSpriteIds[gBattleAnimAttacker];
+ gTasks[taskId].data[14] = gBattleAnimArgs[0];
+ gTasks[taskId].data[0] = gBattleAnimArgs[0];
+ gTasks[taskId].data[13] = gBattleAnimArgs[6];
+ if (gBattleAnimArgs[3])
+ gTasks[taskId].data[6] = gTasks[taskId].data[6] | -0x8000;
+
+ if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
+ {
+ gTasks[taskId].data[2] = gBattleAnimArgs[1];
+ gTasks[taskId].data[3] = gBattleAnimArgs[2];
+ }
+ else
+ {
+ if (gBattleAnimArgs[1] & 0x8000)
+ gTasks[taskId].data[2] = gBattleAnimArgs[1] & 0x7FFF;
+ else
+ gTasks[taskId].data[2] = gBattleAnimArgs[1] | -0x8000;
+
+ if (gBattleAnimArgs[2] & 0x8000)
+ gTasks[taskId].data[3] = gBattleAnimArgs[2] & 0x7FFF;
+ else
+ gTasks[taskId].data[3] = gBattleAnimArgs[2] | -0x8000;
+ }
+
+ gTasks[taskId].data[8] = 0;
+ gTasks[taskId].data[7] = 0;
+ gTasks[taskId].data[4] = gBattleAnimArgs[4];
+ gTasks[taskId].data[5] = gBattleAnimArgs[5];
+ gTasks[taskId].func = sub_815DA20;
+}
+
+void sub_815DCA4(u8 taskId)
+{
+ u8 battler;
+ struct Task *task = &gTasks[taskId];
+
+ if (!gBattleAnimArgs[1])
+ DestroyAnimVisualTask(taskId);
+
+ task->data[0] = 0;
+ task->data[1] = 0;
+ task->data[2] = 0;
+ task->data[3] = gBattleAnimArgs[1];
+ if (gBattleAnimArgs[0] == 0)
+ battler = gBattleAnimAttacker;
+ else
+ battler = gBattleAnimTarget;
+
+ task->data[4] = GetBattlerSpriteCoord(battler, 0);
+ task->data[5] = GetBattlerSpriteCoord(battler, 1);
+ task->data[6] = GetBattlerSpriteSubpriority(battler);
+ task->data[15] = GetAnimBattlerSpriteId(gBattleAnimArgs[0]);
+ PrepareAffineAnimInTaskData(task, task->data[15], gUnknown_085CE74C);
+ task->func = sub_815DD48;
+}
+
+static void sub_815DD48(u8 taskId)
+{
+ struct Task *task = &gTasks[taskId];
+
+ switch (task->data[0])
+ {
+ case 0:
+ if (++task->data[1] == 6)
+ sub_815DDE0(taskId, TRUE);
+
+ if (task->data[1] == 18)
+ sub_815DDE0(taskId, FALSE);
+
+ if (!RunAffineAnimFromTaskData(task))
+ {
+ if (--task->data[3] == 0)
+ {
+ task->data[0]++;
+ }
+ else
+ {
+ task->data[1] = 0;
+ PrepareAffineAnimInTaskData(task, task->data[15], gUnknown_085CE74C);
+ }
+ }
+ break;
+ case 1:
+ if (task->data[2] == 0)
+ DestroyAnimVisualTask(taskId);
+ break;
+ }
+}
+
+static void sub_815DDE0(u8 taskId, bool8 arg1)
+{
+ u8 i;
+ s8 xOffset, yOffset;
+ struct Task *task;
+ s16 xCoords[4];
+ s16 yCoords[2];
+
+ task = &gTasks[taskId];
+ if (!arg1)
+ {
+ xOffset = 18;
+ yOffset = -20;
+ }
+ else
+ {
+ xOffset = 30;
+ yOffset = 20;
+ }
+
+ xCoords[0] = task->data[4] - xOffset;
+ xCoords[1] = task->data[4] - xOffset - 4;
+ xCoords[2] = task->data[4] + xOffset;
+ xCoords[3] = task->data[4] + xOffset + 4;
+ yCoords[0] = task->data[5] + yOffset;
+ yCoords[1] = task->data[5] + yOffset + 6;
+
+ for (i = 0; i < 4; i++)
+ {
+ u8 spriteId = CreateSprite(&gUnknown_085CE76C, xCoords[i], yCoords[i & 1], task->data[6] - 5);
+ if (spriteId != MAX_SPRITES)
+ {
+ gSprites[spriteId].data[0] = 0;
+ gSprites[spriteId].data[1] = i < 2 ? -2 : 2;
+ gSprites[spriteId].data[2] = -1;
+ gSprites[spriteId].data[3] = taskId;
+ gSprites[spriteId].data[4] = 2;
+ task->data[2]++;
+ }
+ }
+}
+
+void sub_815DEBC(struct Sprite *sprite)
+{
+ sprite->pos1.x += sprite->data[1];
+ sprite->pos1.y += sprite->data[2];
+ if (++sprite->data[0] > 6)
+ {
+ gTasks[sprite->data[3]].data[sprite->data[4]]--;
+ DestroySprite(sprite);
+ }
+}
+
+void sub_815DF0C(u8 taskId)
+{
+ u8 spriteId;
+
+ gTasks[taskId].data[0] = 0;
+ gTasks[taskId].data[1] = gBattleAnimArgs[1];
+ spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[0]);
+ gTasks[taskId].data[2] = 0x100 + gSprites[spriteId].oam.paletteNum * 16;
+ gTasks[taskId].func = sub_815DF64;
+}
+
+static void sub_815DF64(u8 taskId)
+{
+ if (gTasks[taskId].data[1])
+ {
+ BlendPalette(gTasks[taskId].data[2], 16, 8, gUnknown_085CE784[gTasks[taskId].data[0]]);
+ if (++gTasks[taskId].data[0] > 23)
+ gTasks[taskId].data[0] = 0;
+
+ gTasks[taskId].data[1]--;
+ }
+ else
+ {
+ BlendPalette(gTasks[taskId].data[2], 16, 0, RGB(0, 0, 0));
+ DestroyAnimVisualTask(taskId);
+ }
+}
+
+void sub_815DFCC(u8 taskId)
+{
+ sub_8117854(
+ taskId,
+ 0,
+ 0x1A0,
+ gBattleAnimAttacker,
+ gBattleAnimArgs[0],
+ 10,
+ 2,
+ 30,
+ gUnknown_08C2DC68,
+ gUnknown_08C2DDC4,
+ gUnknown_08C2DDA4);
+}
+
+void sub_815E01C(struct Sprite *sprite)
+{
+ if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_OPPONENT)
+ gBattleAnimArgs[0] = -gBattleAnimArgs[0];
+
+ sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 0) + gBattleAnimArgs[0];
+ sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1) + gBattleAnimArgs[1];
+ if (gBattleAnimArgs[2] == 0)
+ {
+ sprite->data[0] = 640;
+ sprite->data[1] = -640;
+ }
+ else if (gBattleAnimArgs[2] == 1)
+ {
+ sprite->vFlip = 1;
+ sprite->data[0] = 640;
+ sprite->data[1] = 640;
+ }
+ else
+ {
+ StartSpriteAnim(sprite, 1);
+ sprite->data[0] = 640;
+ }
+
+ if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
+ {
+ sprite->data[0] = -sprite->data[0];
+ sprite->hFlip = 1;
+ }
+
+ sprite->callback = sub_815E0DC;
+}
+
+static void sub_815E0DC(struct Sprite *sprite)
+{
+ sprite->data[6] += sprite->data[0];
+ sprite->data[7] += sprite->data[1];
+ sprite->pos2.x = sprite->data[6] >> 8;
+ sprite->pos2.y = sprite->data[7] >> 8;
+ if (++sprite->data[5] == 14)
+ DestroyAnimSprite(sprite);
+}
+
+void sub_815E114(u8 taskId)
+{
+ struct Task *task = &gTasks[taskId];
+
+ if (IsContest())
+ {
+ task->data[5] = 8;
+ task->data[6] = 3;
+ task->data[7] = 1;
+ }
+ else
+ {
+ task->data[5] = 12;
+ task->data[6] = 3;
+ task->data[7] = 0;
+ }
+
+ if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER)
+ task->data[11] = GetBattlerSpriteCoord(gBattleAnimAttacker, 2) + sub_80A861C(gBattleAnimAttacker, 0) / 4;
+ else
+ task->data[11] = GetBattlerSpriteCoord(gBattleAnimAttacker, 2) - sub_80A861C(gBattleAnimAttacker, 0) / 4;
+
+ task->data[12] = GetBattlerSpriteCoord(gBattleAnimAttacker, 3) - sub_80A861C(gBattleAnimAttacker, 0) / 4;
+ task->data[13] = GetBattlerSpriteCoord(gBattleAnimTarget, 2);
+ task->data[14] = GetBattlerSpriteCoord(gBattleAnimTarget, 3);
+ task->func = sub_815E20C;
+}
+
+static void sub_815E20C(u8 taskId)
+{
+ u8 i;
+ s16 x, y;
+ struct Task *task = &gTasks[taskId];
+
+ switch (task->data[0])
+ {
+ case 0:
+ if (++task->data[1] > 3)
+ {
+ task->data[1] = 0;
+ sub_815E34C(
+ task->data[11],
+ task->data[12],
+ task->data[13],
+ task->data[14],
+ task->data[5],
+ task->data[2],
+ &x,
+ &y);
+
+ for (i = 0; i < 2; i++)
+ {
+ u8 spriteId = CreateSprite(&gUnknown_085CE7EC, x, y, 35);
+ if (spriteId != MAX_SPRITES)
+ {
+ if (task->data[7] == 0)
+ {
+ if (i == 0)
+ gSprites[spriteId].pos2.x = gSprites[spriteId].pos2.y = -task->data[6];
+ else
+ gSprites[spriteId].pos2.x = gSprites[spriteId].pos2.y = task->data[6];
+ }
+ else
+ {
+ if (i == 0)
+ {
+ gSprites[spriteId].pos2.x = -task->data[6];
+ gSprites[spriteId].pos2.y = task->data[6];
+ }
+ else
+ {
+ gSprites[spriteId].pos2.x = task->data[6];
+ gSprites[spriteId].pos2.y = -task->data[6];
+ }
+ }
+
+ gSprites[spriteId].data[0] = 0;
+ gSprites[spriteId].data[1] = taskId;
+ gSprites[spriteId].data[2] = 10;
+ task->data[10]++;
+ }
+ }
+
+ if (task->data[2] == task->data[5])
+ task->data[0]++;
+
+ task->data[2]++;
+ }
+ break;
+ case 1:
+ if (task->data[10] == 0)
+ DestroyAnimVisualTask(taskId);
+ break;
+ }
+}
+
+static void sub_815E34C(s16 arg0, s16 arg1, s16 arg2, s16 arg3, u8 arg4, u8 arg5, s16 *x, s16 *y)
+{
+ int x2;
+ int y2;
+
+ if (arg5 == 0)
+ {
+ *x = arg0;
+ *y = arg1;
+ return;
+ }
+
+ if (arg5 >= arg4)
+ {
+ *x = arg2;
+ *y = arg3;
+ return;
+ }
+
+ arg4--;
+ x2 = (arg0 << 8) + arg5 * (((arg2 - arg0) << 8) / arg4);
+ y2 = (arg1 << 8) + arg5 * (((arg3 - arg1) << 8) / arg4);
+ *x = x2 >> 8;
+ *y = y2 >> 8;
+}
+
+void sub_815E404(struct Sprite *sprite)
+{
+ if (++sprite->data[0] > 36)
+ {
+ gTasks[sprite->data[1]].data[sprite->data[2]]--;
+ DestroySprite(sprite);
+ }
+}
+
+void sub_815E444(struct Sprite *sprite)
+{
+ sprite->pos1.x = gBattleAnimArgs[0];
+ sprite->pos1.y = gBattleAnimArgs[1];
+ sprite->data[2] = gBattleAnimArgs[2];
+ sprite->data[4] = gBattleAnimArgs[3];
+ sprite->data[0] = gBattleAnimArgs[4];
+ StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
+ sprite->callback = sub_80A70C0;
+}
+
+void sub_815E47C(u8 taskId)
+{
+ struct Task *task = &gTasks[taskId];
+
+ task->data[11] = GetBattlerSpriteCoord(gBattleAnimAttacker, 2);
+ task->data[12] = GetBattlerSpriteCoord(gBattleAnimAttacker, 3);
+ task->data[13] = GetBattlerSpriteCoord(gBattleAnimTarget, 2);
+ task->data[14] = GetBattlerSpriteCoord(gBattleAnimTarget, 3) + sub_80A861C(gBattleAnimTarget, 0) / 4;
+ task->data[15] = CreateSprite(&gUnknown_085CE84C, task->data[11], task->data[12], GetBattlerSpriteSubpriority(gBattleAnimTarget) - 5);
+ if (task->data[15] != MAX_SPRITES)
+ {
+ gSprites[task->data[15]].data[0] = 16;
+ gSprites[task->data[15]].data[2] = task->data[13];
+ gSprites[task->data[15]].data[4] = task->data[14];
+ gSprites[task->data[15]].data[5] = -32;
+ InitAnimArcTranslation(&gSprites[task->data[15]]);
+ if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_OPPONENT)
+ StartSpriteAffineAnim(&gSprites[task->data[15]], 1);
+
+ task->func = sub_815E5CC;
+ }
+ else
+ {
+ DestroyAnimVisualTask(taskId);
+ }
+}
+
+static void sub_815E5CC(u8 taskId)
+{
+ struct Task *task = &gTasks[taskId];
+
+ switch (task->data[0])
+ {
+ case 0:
+ if (++task->data[1] > 1)
+ {
+ task->data[1] = 0;
+ TranslateAnimArc(&gSprites[task->data[15]]);
+ if (++task->data[2] > 7)
+ task->data[0]++;
+ }
+ break;
+ case 1:
+ if (TranslateAnimArc(&gSprites[task->data[15]]))
+ {
+ task->data[1] = 0;
+ task->data[2] = 0;
+ task->data[0]++;
+ }
+ break;
+ case 2:
+ if (++task->data[1] > 1)
+ {
+ task->data[1] = 0;
+ task->data[2]++;
+ gSprites[task->data[15]].invisible = task->data[2] & 1;
+ if (task->data[2] == 16)
+ {
+ FreeOamMatrix(gSprites[task->data[15]].oam.matrixNum);
+ DestroySprite(&gSprites[task->data[15]]);
+ task->data[0]++;
+ }
+ }
+ break;
+ case 3:
+ DestroyAnimVisualTask(taskId);
+ break;
+ }
+}
+
+void sub_815E6D8(struct Sprite *sprite)
+{
+ u8 battler;
+
+ if (gBattleAnimArgs[0] == 0)
+ battler = gBattleAnimAttacker;
+ else
+ battler = gBattleAnimTarget;
+
+ sprite->oam.tileNum += 16;
+ sprite->data[6] = gBattleAnimArgs[2];
+ sprite->data[7] = gBattleAnimArgs[1] == 0 ? -1 : 1;
+ sprite->pos1.y = GetBattlerSpriteCoord(battler, 3);
+ if (gBattleAnimArgs[1] == 0)
+ {
+ sprite->oam.matrixNum |= 0x8;
+ sprite->pos1.x = sub_80A861C(battler, 4) - 8;
+ }
+ else
+ {
+ sprite->pos1.x = sub_80A861C(battler, 5) + 8;
+ }
+
+ sprite->callback = sub_815E784;
+}
+
+static void sub_815E784(struct Sprite *sprite)
+{
+ switch (sprite->data[0])
+ {
+ case 0:
+ if (++sprite->data[1] > 1)
+ {
+ sprite->data[1] = 0;
+ sprite->pos2.x += sprite->data[7];
+ if (++sprite->data[2] == 12)
+ sprite->data[0]++;
+ }
+ break;
+ case 1:
+ if (++sprite->data[1] == 8)
+ {
+ sprite->data[1] = 0;
+ sprite->data[0]++;
+ }
+ break;
+ case 2:
+ sprite->pos2.x -= sprite->data[7] * 4;
+ if (++sprite->data[1] == 6)
+ {
+ sprite->data[1] = 0;
+ sprite->data[0]++;
+ }
+ break;
+ case 3:
+ sprite->pos2.x += sprite->data[7] * 3;
+ if (++sprite->data[1] == 8)
+ {
+ if (--sprite->data[6])
+ {
+ sprite->data[1] = 0;
+ sprite->data[0]--;
+ }
+ else
+ {
+ DestroyAnimSprite(sprite);
+ }
+ }
+ break;
+ }
+}
+
+void sub_815E840(u8 taskId)
+{
+ if (gBattleAnimArgs[0] == 0)
+ {
+ DestroyAnimVisualTask(taskId);
+ }
+ else
+ {
+ gTasks[taskId].data[0] = gBattleAnimArgs[1];
+ gTasks[taskId].data[15] = GetAnimBattlerSpriteId(gBattleAnimArgs[0]);
+ PrepareAffineAnimInTaskData(&gTasks[taskId], gTasks[taskId].data[15], gUnknown_085CE87C);
+ gTasks[taskId].func = sub_815E898;
+ }
+}
+
+static void sub_815E898(u8 taskId)
+{
+ struct Task *task = &gTasks[taskId];
+
+ if (++task->data[1] > 1)
+ {
+ task->data[1] = 0;
+ if (!(task->data[2] & 1))
+ gSprites[task->data[15]].pos2.x = 2;
+ else
+ gSprites[task->data[15]].pos2.x = -2;
+ }
+
+ if (!RunAffineAnimFromTaskData(task))
+ {
+ gSprites[task->data[15]].pos2.x = 0;
+ if (--task->data[0])
+ {
+ PrepareAffineAnimInTaskData(&gTasks[taskId], gTasks[taskId].data[15], gUnknown_085CE87C);
+ task->data[1] = 0;
+ task->data[2] = 0;
+ }
+ else
+ {
+ DestroyAnimVisualTask(taskId);
+ }
+ }
+}
+
+void sub_815E954(struct Sprite *sprite)
+{
+ if (gBattleAnimArgs[0] == 0)
+ {
+ sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2);
+ sprite->pos1.y = sub_80A861C(gBattleAnimAttacker, 2);
+ }
+ else
+ {
+ sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, 2);
+ sprite->pos1.y = sub_80A861C(gBattleAnimTarget, 2);
+ }
+
+ if (sprite->pos1.y < 8)
+ sprite->pos1.y = 8;
+
+ sprite->data[0] = 0;
+ sprite->data[1] = gBattleAnimArgs[1];
+ sprite->data[2] = 0;
+ sprite->data[3] = gBattleAnimArgs[2];
+ sprite->callback = sub_815E9BC;
+}
+
+static void sub_815E9BC(struct Sprite *sprite)
+{
+ if (++sprite->data[0] >= sprite->data[1])
+ {
+ sprite->data[0] = 0;
+ sprite->data[2] = (sprite->data[2] + 1) & 1;
+ sprite->invisible = sprite->data[2];
+ if (sprite->data[2] && --sprite->data[3] == 0)
+ DestroyAnimSprite(sprite);
+ }
+}
+
+void sub_815EA14(struct Sprite *sprite)
+{
+ if (gBattleAnimArgs[0] == 0)
+ {
+ sprite->oam.matrixNum |= 0x8;
+ sprite->pos1.x = 100;
+ sprite->data[7] = 1;
+ }
+ else
+ {
+ sprite->pos1.x = 140;
+ sprite->data[7] = -1;
+ }
+
+ sprite->pos1.y = 56;
+ sprite->callback = sub_815EA60;
+}
+
+static void sub_815EA60(struct Sprite *sprite)
+{
+ switch (sprite->data[0])
+ {
+ case 0:
+ sprite->pos1.y -= sprite->data[7] * 2;
+ if (sprite->data[1] & 1)
+ sprite->pos1.x -= sprite->data[7] * 2;
+
+ if (++sprite->data[1] == 9)
+ {
+ sprite->data[1] = 0;
+ sprite->data[0]++;
+ }
+ break;
+ case 1:
+ if (++sprite->data[1] == 4)
+ {
+ sprite->data[1] = 0;
+ sprite->data[0]++;
+ }
+ break;
+ case 2:
+ sprite->data[1]++;
+ sprite->pos1.y += sprite->data[7] * 3;
+ sprite->pos2.x = sprite->data[7] * (gSineTable[sprite->data[1] * 10] >> 3);
+ if (sprite->data[1] == 12)
+ {
+ sprite->data[1] = 0;
+ sprite->data[0]++;
+ }
+ break;
+ case 3:
+ if (++sprite->data[1] == 2)
+ {
+ sprite->data[1] = 0;
+ sprite->data[0]++;
+ }
+ break;
+ case 4:
+ sprite->data[1]++;
+ sprite->pos1.y -= sprite->data[7] * 3;
+ sprite->pos2.x = sprite->data[7] * (gSineTable[sprite->data[1] * 10] >> 3);
+ if (sprite->data[1] == 12)
+ sprite->data[0]++;
+ break;
+ case 5:
+ sprite->data[1]++;
+ sprite->pos1.y += sprite->data[7] * 3;
+ sprite->pos2.x = sprite->data[7] * (gSineTable[sprite->data[1] * 10] >> 3);
+ if (sprite->data[1] == 15)
+ sprite->oam.tileNum += 16;
+
+ if (sprite->data[1] == 18)
+ {
+ sprite->data[1] = 0;
+ sprite->data[0]++;
+ }
+ break;
+ case 6:
+ sprite->pos1.x += sprite->data[7] * 6;
+ if (++sprite->data[1] == 9)
+ {
+ sprite->data[1] = 0;
+ sprite->data[0]++;
+ }
+ break;
+ case 7:
+ sprite->pos1.x += sprite->data[7] * 2;
+ if (++sprite->data[1] == 1)
+ {
+ sprite->data[1] = 0;
+ sprite->data[0]++;
+ }
+ break;
+ case 8:
+ sprite->pos1.x -= sprite->data[7] * 3;
+ if (++sprite->data[1] == 5)
+ DestroyAnimSprite(sprite);
+ break;
+ }
+}
+
+void sub_815EC48(u8 taskId)
+{
+ struct Task *task = &gTasks[taskId];
+
+ task->data[15] = GetAnimBattlerSpriteId(ANIM_ATTACKER);
+ if (!IsContest())
+ {
+ if (IsDoubleBattle() == TRUE)
+ {
+ int x = GetBattlerSpriteCoord(gBattleAnimAttacker, 0);
+ int y = GetBattlerSpriteCoord(BATTLE_PARTNER(gBattleAnimAttacker), 0);
+ if (x > y)
+ task->data[14] = 1;
+ else
+ task->data[14] = -1;
+ }
+ else
+ {
+ if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER)
+ task->data[14] = -1;
+ else
+ task->data[14] = 1;
+ }
+ }
+ else
+ {
+ task->data[14] = 1;
+ }
+
+ task->func = sub_815ECE4;
+}
+
+static void sub_815ECE4(u8 taskId)
+{
+ struct Task *task = &gTasks[taskId];
+
+ switch (task->data[0])
+ {
+ case 0:
+ if (++task->data[1] == 13)
+ {
+ task->data[1] = 0;
+ task->data[0]++;
+ }
+ break;
+ case 1:
+ gSprites[task->data[15]].pos2.x -= task->data[14] * 3;
+ if (++task->data[1] == 6)
+ {
+ task->data[1] = 0;
+ task->data[0]++;
+ }
+ break;
+ case 2:
+ gSprites[task->data[15]].pos2.x += task->data[14] * 3;
+ if (++task->data[1] == 6)
+ {
+ task->data[1] = 0;
+ task->data[0]++;
+ }
+ break;
+ case 3:
+ if (++task->data[1] == 2)
+ {
+ task->data[1] = 0;
+ if (task->data[2] == 0)
+ {
+ task->data[2]++;
+ task->data[0] = 1;
+ }
+ else
+ {
+ task->data[0]++;
+ }
+ }
+ break;
+ case 4:
+ gSprites[task->data[15]].pos2.x += task->data[14];
+ if (++task->data[1] == 3)
+ {
+ task->data[1] = 0;
+ task->data[0]++;
+ }
+ break;
+ case 5:
+ if (++task->data[1] == 6)
+ {
+ task->data[1] = 0;
+ task->data[0]++;
+ }
+ break;
+ case 6:
+ gSprites[task->data[15]].pos2.x -= task->data[14] * 4;
+ if (++task->data[1] == 5)
+ {
+ task->data[1] = 0;
+ task->data[0]++;
+ }
+ break;
+ case 7:
+ gSprites[task->data[15]].pos2.x += task->data[14] * 4;
+ if (++task->data[1] == 5)
+ {
+ task->data[1] = 0;
+ task->data[0]++;
+ }
+ break;
+ case 8:
+ gSprites[task->data[15]].pos2.x = 0;
+ DestroyAnimVisualTask(taskId);
+ break;
+ }
+}
+
+void sub_815EE84(struct Sprite *sprite)
+{
+ if (gBattleAnimArgs[0] == 0)
+ {
+ InitAnimSpritePos(sprite, TRUE);
+ sprite->data[7] = gBattleAnimAttacker;
+ }
+ else
+ {
+ sprite->data[7] = gBattleAnimTarget;
+ }
+
+ if (GetBattlerSide(sprite->data[7]) == B_SIDE_OPPONENT)
+ sprite->oam.matrixNum = 8;
+
+ sprite->oam.priority = sub_80A8328(sprite->data[7]);
+ sprite->oam.objMode = ST_OAM_OBJ_BLEND;
+ sprite->callback = sub_815EF08;
+}
+
+static void sub_815EF08(struct Sprite *sprite)
+{
+ u16 x, y;
+
+ switch (sprite->data[5])
+ {
+ case 0:
+ switch (sprite->data[6])
+ {
+ default:
+ sprite->data[6] = 0;
+ case 0:
+ case 4:
+ x = sub_80A861C(sprite->data[7], 5) - 4;
+ y = sub_80A861C(sprite->data[7], 3) - 4;
+ break;
+ case 1:
+ x = sub_80A861C(sprite->data[7], 5) - 4;
+ y = sub_80A861C(sprite->data[7], 2) + 4;
+ break;
+ case 2:
+ x = sub_80A861C(sprite->data[7], 4) + 4;
+ y = sub_80A861C(sprite->data[7], 3) - 4;
+ break;
+ case 3:
+ x = sub_80A861C(sprite->data[7], 4) + 4;
+ y = sub_80A861C(sprite->data[7], 2) - 4;
+ break;
+ case 5:
+ x = GetBattlerSpriteCoord(sprite->data[7], 2);
+ y = GetBattlerSpriteCoord(sprite->data[7], 3);
+ break;
+ }
+
+ if (sprite->data[6] == 4)
+ sprite->data[0] = 24;
+ else if (sprite->data[6] == 5)
+ sprite->data[0] = 6;
+ else
+ sprite->data[0] = 12;
+
+ sprite->data[1] = sprite->pos1.x;
+ sprite->data[2] = x;
+ sprite->data[3] = sprite->pos1.y;
+ sprite->data[4] = y;
+ InitAnimLinearTranslation(sprite);
+ sprite->data[5]++;
+ break;
+ case 1:
+ if (TranslateAnimLinear(sprite))
+ {
+ switch (sprite->data[6])
+ {
+ default:
+ sprite->pos1.x += sprite->pos2.x;
+ sprite->pos1.y += sprite->pos2.y;
+ sprite->pos2.y = 0;
+ sprite->pos2.x = 0;
+ sprite->data[0] = 0;
+ sprite->data[5]++;
+ sprite->data[6]++;
+ break;
+ case 4:
+ sprite->pos1.x += sprite->pos2.x;
+ sprite->pos1.y += sprite->pos2.y;
+ sprite->pos2.y = 0;
+ sprite->pos2.x = 0;
+ sprite->data[5] = 0;
+ sprite->data[6]++;
+ break;
+ case 5:
+ sprite->data[0] = 0;
+ sprite->data[1] = 16;
+ sprite->data[2] = 0;
+ sprite->data[5] = 3;
+ break;
+ }
+ }
+ break;
+ case 2:
+ if (++sprite->data[0] == 4)
+ sprite->data[5] = 0;
+ break;
+ case 3:
+ if (!(sprite->data[0] & 1))
+ sprite->data[1]--;
+ else
+ sprite->data[2]++;
+
+ SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(sprite->data[1], sprite->data[2]));
+ if (++sprite->data[0] == 32)
+ {
+ sprite->invisible = 1;
+ sprite->data[5]++;
+ }
+ break;
+ case 4:
+ DestroyAnimSprite(sprite);
+ break;
+ }
+}
+
+static void sub_815F10C(struct Sprite *sprite)
+{
+ sprite->pos2.x = ((sprite->data[2] - sprite->data[0]) * sprite->data[5]) / sprite->data[4];
+ sprite->pos2.y = ((sprite->data[3] - sprite->data[1]) * sprite->data[5]) / sprite->data[4];
+ if (!(sprite->data[5] & 1))
+ {
+ CreateSprite(
+ &gUnknown_085CE3A0,
+ sprite->pos1.x + sprite->pos2.x,
+ sprite->pos1.y + sprite->pos2.y, 5);
+ }
+
+ if (sprite->data[5] == sprite->data[4])
+ DestroyAnimSprite(sprite);
+
+ sprite->data[5]++;
+}
+
+void sub_815F18C(struct Sprite *sprite)
+{
+ GetBattlerSpriteCoord(gBattleAnimTarget, 2); // unused local variable
+ GetBattlerSpriteCoord(gBattleAnimTarget, 3); // unused local variable
+
+ if (GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER || IsContest())
+ {
+ sprite->data[0] = sprite->pos1.x - gBattleAnimArgs[0];
+ sprite->data[2] = sprite->pos1.x - gBattleAnimArgs[2];
+ }
+ else
+ {
+ sprite->data[0] = sprite->pos1.x + gBattleAnimArgs[0];
+ sprite->data[2] = sprite->pos1.x + gBattleAnimArgs[2];
+ }
+
+ sprite->data[1] = sprite->pos1.y + gBattleAnimArgs[1];
+ sprite->data[3] = sprite->pos1.y + gBattleAnimArgs[3];
+ sprite->data[4] = gBattleAnimArgs[4];
+ sprite->pos1.x = sprite->data[0];
+ sprite->pos1.y = sprite->data[1];
+ sprite->callback = sub_815F10C;
+}
+
+void AnimTask_MonToSubstitute(u8 taskId)
+{
+ int i;
+ u8 spriteId = GetAnimBattlerSpriteId(0);
+
+ if (gTasks[taskId].data[0] == 0)
+ {
+ PrepareBattlerSpriteForRotScale(spriteId, FALSE);
+ gTasks[taskId].data[1] = 0x100;
+ gTasks[taskId].data[2] = 0x100;
+ gTasks[taskId].data[0]++;
+ }
+ else if (gTasks[taskId].data[0] == 1)
+ {
+ gTasks[taskId].data[1] += 0x60;
+ gTasks[taskId].data[2] -= 0xD;
+ SetSpriteRotScale(spriteId, gTasks[taskId].data[1], gTasks[taskId].data[2], 0);
+ if (++gTasks[taskId].data[3] == 9)
+ {
+ gTasks[taskId].data[3] = 0;
+ ResetSpriteRotScale(spriteId);
+ gSprites[spriteId].invisible = 1;
+ gTasks[taskId].data[0]++;
+ }
+ }
+ else
+ {
+ LoadBattleMonGfxAndAnimate(gBattleAnimAttacker, 0, spriteId);
+ if (IsContest())
+ {
+ gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].affineAnims = gUnknown_082FF6C0;
+ StartSpriteAffineAnim(&gSprites[gBattlerSpriteIds[gBattleAnimAttacker]], 0);
+ }
+
+ for (i = 0; i < 16; i++)
+ gTasks[taskId].data[i] = 0;
+
+ gTasks[taskId].func = sub_815F330;
+ }
+}
+
+static void sub_815F330(u8 taskId)
+{
+ u8 spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER);
+
+ switch (gTasks[taskId].data[0])
+ {
+ case 0:
+ gSprites[spriteId].pos2.y = -200;
+ gSprites[spriteId].pos2.x = 200;
+ gSprites[spriteId].invisible = 0;
+ gTasks[taskId].data[10] = 0;
+ gTasks[taskId].data[0]++;
+ break;
+ case 1:
+ gTasks[taskId].data[10] += 112;
+ gSprites[spriteId].pos2.y += gTasks[taskId].data[10] >> 8;
+ if (gSprites[spriteId].pos1.y + gSprites[spriteId].pos2.y >= -32)
+ gSprites[spriteId].pos2.x = 0;
+
+ if (gSprites[spriteId].pos2.y > 0)
+ gSprites[spriteId].pos2.y = 0;
+
+ if (gSprites[spriteId].pos2.y == 0)
+ {
+ PlaySE12WithPanning(SE_W145B, BattleAnimAdjustPanning(-64));
+ gTasks[taskId].data[10] -= 0x800;
+ gTasks[taskId].data[0]++;
+ }
+ break;
+ case 2:
+ gTasks[taskId].data[10] -= 112;
+ if (gTasks[taskId].data[10] < 0)
+ gTasks[taskId].data[10] = 0;
+
+ gSprites[spriteId].pos2.y -= gTasks[taskId].data[10] >> 8;
+ if (gTasks[taskId].data[10] == 0)
+ gTasks[taskId].data[0]++;
+ break;
+ case 3:
+ gTasks[taskId].data[10] += 112;
+ gSprites[spriteId].pos2.y += gTasks[taskId].data[10] >> 8;
+ if (gSprites[spriteId].pos2.y > 0)
+ gSprites[spriteId].pos2.y = 0;
+
+ if (gSprites[spriteId].pos2.y == 0)
+ {
+ PlaySE12WithPanning(SE_W145B, BattleAnimAdjustPanning(-64));
+ DestroyAnimVisualTask(taskId);
+ }
+ break;
+ }
+}
+
+void sub_815F48C(struct Sprite *sprite)
+{
+ s16 y2;
+
+ if (GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER)
+ {
+ sprite->subpriority = GetBattlerSpriteSubpriority(gBattleAnimTarget) - 2;
+ y2 = -144;
+ }
+ else
+ {
+ sprite->subpriority = GetBattlerSpriteSubpriority(gBattleAnimTarget) + 2;
+ y2 = -96;
+ }
+
+ sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, 3);
+ sprite->pos2.y = y2;
+ sprite->callback = sub_815F4F0;
+}
+
+static void sub_815F4F0(struct Sprite *sprite)
+{
+ switch (sprite->data[0])
+ {
+ case 0:
+ sprite->pos2.y += 10;
+ if (sprite->pos2.y >= 0)
+ {
+ PlaySE12WithPanning(SE_W166, BattleAnimAdjustPanning(63));
+ sprite->pos2.y = 0;
+ sprite->data[0]++;
+ }
+ break;
+ case 1:
+ sprite->data[1] += 4;
+ sprite->pos2.y = -(gSineTable[sprite->data[1]] >> 3);
+ if (sprite->data[1] > 127)
+ {
+ PlaySE12WithPanning(SE_W166, BattleAnimAdjustPanning(63));
+ sprite->data[1] = 0;
+ sprite->pos2.y = 0;
+ sprite->data[0]++;
+ }
+ break;
+ case 2:
+ sprite->data[1] += 6;
+ sprite->pos2.y = -(gSineTable[sprite->data[1]] >> 4);
+ if (sprite->data[1] > 127)
+ {
+ sprite->data[1] = 0;
+ sprite->pos2.y = 0;
+ sprite->data[0]++;
+ }
+ break;
+ case 3:
+ if (++sprite->data[1] > 8)
+ {
+ PlaySE12WithPanning(SE_W043, BattleAnimAdjustPanning(63));
+ sprite->data[1] = 0;
+ sprite->data[0]++;
+ }
+ break;
+ case 4:
+ if (++sprite->data[1] > 8)
+ {
+ sprite->data[1] = 0;
+ sprite->data[2]++;
+ sprite->invisible = sprite->data[2] & 1;
+ if (sprite->data[2] == 7)
+ DestroyAnimSprite(sprite);
+ }
+ break;
+ }
+}
+
+void sub_815F620(u8 taskId)
+{
+ s16 spriteId1, spriteId2;
+
+ if (IsContest())
+ {
+ DestroyAnimVisualTask(taskId);
+ return;
+ }
+
+ spriteId1 = CloneBattlerSpriteWithBlend(ANIM_TARGET);
+ if (spriteId1 < 0)
+ {
+ DestroyAnimVisualTask(taskId);
+ return;
+ }
+
+ spriteId2 = CloneBattlerSpriteWithBlend(ANIM_TARGET);
+ if (spriteId2 < 0)
+ {
+ obj_delete_but_dont_free_vram(&gSprites[spriteId1]);
+ DestroyAnimVisualTask(taskId);
+ return;
+ }
+
+ gSprites[spriteId2].pos2.x += 24;
+ gSprites[spriteId1].pos2.x -= 24;
+ gSprites[spriteId2].data[0] = 0;
+ gSprites[spriteId1].data[0] = 0;
+ gSprites[spriteId2].data[1] = 0;
+ gSprites[spriteId1].data[1] = 0;
+ gSprites[spriteId2].data[2] = 0;
+ gSprites[spriteId1].data[2] = 0;
+ gSprites[spriteId2].data[3] = 16;
+ gSprites[spriteId1].data[3] = -16;
+ gSprites[spriteId2].data[4] = 0;
+ gSprites[spriteId1].data[4] = 128;
+ gSprites[spriteId2].data[5] = 24;
+ gSprites[spriteId1].data[5] = 24;
+ gSprites[spriteId2].data[6] = taskId;
+ gSprites[spriteId1].data[6] = taskId;
+ gSprites[spriteId2].data[7] = 0;
+ gSprites[spriteId1].data[7] = 0;
+ gTasks[taskId].data[0] = 2;
+
+ if (!gBattleSpritesDataPtr->battlerData[gBattleAnimTarget].invisible)
+ {
+ gSprites[spriteId2].invisible = 0;
+ gSprites[spriteId1].invisible = 1;
+ }
+ else
+ {
+ gSprites[spriteId2].invisible = 1;
+ gSprites[spriteId1].invisible = 1;
+ }
+
+
+ gSprites[spriteId2].oam.objMode = ST_OAM_OBJ_NORMAL;
+ gSprites[spriteId1].oam.objMode = ST_OAM_OBJ_NORMAL;
+ gSprites[spriteId2].callback = sub_815F7C4;
+ gSprites[spriteId1].callback = sub_815F7C4;
+ gTasks[taskId].func = sub_815F79C;
+}
+
+static void sub_815F79C(u8 taskId)
+{
+ if (gTasks[taskId].data[0] == 0)
+ DestroyAnimVisualTask(taskId);
+}
+
+static void sub_815F7C4(struct Sprite *sprite)
+{
+ int zero = 0;
+ if (++sprite->data[1] > 1)
+ {
+ sprite->data[1] = 0;
+ if (!gBattleSpritesDataPtr->battlerData[gBattleAnimTarget].invisible)
+ sprite->invisible ^= 1;
+ }
+
+ sprite->data[4] = sprite->data[4] + sprite->data[3];
+ sprite->data[4] &= 0xFF;
+ sprite->pos2.x = Cos(sprite->data[4], sprite->data[5]);
+ switch (sprite->data[0])
+ {
+ case 0:
+ if (++sprite->data[2] == 60)
+ {
+ sprite->data[2] = 0;
+ sprite->data[0]++;
+ }
+ break;
+ case 1:
+ if (++sprite->data[2] > 0)
+ {
+ sprite->data[2] = 0;
+ sprite->data[5] -= 2;
+ if (sprite->data[5] < 0)
+ {
+ gTasks[sprite->data[6]].data[sprite->data[7]]--;
+ obj_delete_but_dont_free_vram(sprite);
+ }
+ }
+ break;
+ }
+}
diff --git a/src/battle_factory.c b/src/battle_factory.c
index a693acfb6..801b33ba7 100644
--- a/src/battle_factory.c
+++ b/src/battle_factory.c
@@ -526,7 +526,7 @@ static void sub_81A67EC(void)
}
var_40 = sub_81A6F70(factoryBattleMode, factoryLvlMode);
- currSpecies = 0;
+ currSpecies = SPECIES_NONE;
i = 0;
while (i != PARTY_SIZE)
{
@@ -546,7 +546,7 @@ static void sub_81A67EC(void)
break;
if (species[j] == gFacilityTrainerMons[monSetId].species)
{
- if (currSpecies == 0)
+ if (currSpecies == SPECIES_NONE)
currSpecies = gFacilityTrainerMons[monSetId].species;
else
break;
@@ -561,7 +561,7 @@ static void sub_81A67EC(void)
if (heldItems[j] != 0 && heldItems[j] == gBattleFrontierHeldItems[gFacilityTrainerMons[monSetId].itemTableId])
{
if (gFacilityTrainerMons[monSetId].species == currSpecies)
- currSpecies = 0;
+ currSpecies = SPECIES_NONE;
break;
}
}
@@ -579,7 +579,7 @@ static void sub_81A67EC(void)
static void sub_81A6A08(void)
{
u8 i;
- u8 typesCount[18];
+ u8 typesCount[NUMBER_OF_MON_TYPES];
u8 usedType[2];
gFacilityTrainerMons = gBattleFrontierMons;
diff --git a/src/battle_main.c b/src/battle_main.c
index d3e532748..42f204508 100644
--- a/src/battle_main.c
+++ b/src/battle_main.c
@@ -2109,12 +2109,12 @@ static void sub_8038B94(u8 taskId)
if (species != SPECIES_EGG && hp != 0 && status == 0)
r7 |= 1 << i * 2;
- if (species == 0)
+ if (species == SPECIES_NONE)
continue;
if (hp != 0 && (species == SPECIES_EGG || status != 0))
r7 |= 2 << i * 2;
- if (species == 0)
+ if (species == SPECIES_NONE)
continue;
if (species != SPECIES_EGG && hp == 0)
r7 |= 3 << i * 2;
diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c
index 119607d0e..d399cddbb 100644
--- a/src/battle_script_commands.c
+++ b/src/battle_script_commands.c
@@ -8648,7 +8648,7 @@ static void atkAE_healpartystatus(void)
u16 species = GetMonData(&party[i], MON_DATA_SPECIES2);
u8 abilityBit = GetMonData(&party[i], MON_DATA_ALT_ABILITY);
- if (species != 0 && species != SPECIES_EGG)
+ if (species != SPECIES_NONE && species != SPECIES_EGG)
{
u8 ability;
diff --git a/src/battle_tent.c b/src/battle_tent.c
index d66c093e9..c358deaa5 100644
--- a/src/battle_tent.c
+++ b/src/battle_tent.c
@@ -13,6 +13,7 @@
#include "string_util.h"
#include "constants/items.h"
#include "constants/region_map_sections.h"
+#include "constants/species.h"
// This file's functions.
static void sub_81B99D4(void);
@@ -292,7 +293,7 @@ static void sub_81B9EC0(void)
heldItems[i] = 0;
}
gFacilityTrainerMons = gSlateportBattleTentMons;
- currSpecies = 0;
+ currSpecies = SPECIES_NONE;
i = 0;
while (i != PARTY_SIZE)
{
@@ -305,7 +306,7 @@ static void sub_81B9EC0(void)
break;
if (species[j] == gFacilityTrainerMons[monSetId].species)
{
- if (currSpecies == 0)
+ if (currSpecies == SPECIES_NONE)
currSpecies = gFacilityTrainerMons[monSetId].species;
else
break;
@@ -320,7 +321,7 @@ static void sub_81B9EC0(void)
if (heldItems[j] != 0 && heldItems[j] == gBattleFrontierHeldItems[gFacilityTrainerMons[monSetId].itemTableId])
{
if (gFacilityTrainerMons[monSetId].species == currSpecies)
- currSpecies = 0;
+ currSpecies = SPECIES_NONE;
break;
}
}
diff --git a/src/data/pokemon_graphics/front_anims.h b/src/data/pokemon_graphics/front_anims.h
index 0e7b75bde..8a42eb5c9 100644
--- a/src/data/pokemon_graphics/front_anims.h
+++ b/src/data/pokemon_graphics/front_anims.h
@@ -1,4 +1,4 @@
-
+
const union AnimCmd gAnimCmd_NONE_1[] =
{
ANIMCMD_FRAME(0, 30),
@@ -6946,446 +6946,449 @@ const union AnimCmd *const gAnims_UNOWN_QMARK[] ={
gAnimCmd_UNOWN_QMARK_1,
};
+#define ANIM_CMD(name) [SPECIES_##name] = gAnims_##name
+#define ANIM_CMD_FULL(name, anims) [SPECIES_##name] = anims
+
const union AnimCmd* const * const gMonAnimationsSpriteAnimsPtrTable[] =
{
- gAnims_NONE,
- gAnims_BULBASAUR,
- gAnims_IVYSAUR,
- gAnims_VENUSAUR,
- gAnims_CHARMANDER,
- gAnims_CHARMELEON,
- gAnims_CHARIZARD,
- gAnims_SQUIRTLE,
- gAnims_WARTORTLE,
- gAnims_BLASTOISE,
- gAnims_CATERPIE,
- gAnims_METAPOD,
- gAnims_BUTTERFREE,
- gAnims_WEEDLE,
- gAnims_KAKUNA,
- gAnims_BEEDRILL,
- gAnims_PIDGEY,
- gAnims_PIDGEOTTO,
- gAnims_PIDGEOT,
- gAnims_RATTATA,
- gAnims_RATICATE,
- gAnims_SPEAROW,
- gAnims_FEAROW,
- gAnims_EKANS,
- gAnims_ARBOK,
- gAnims_PIKACHU,
- gAnims_RAICHU,
- gAnims_SANDSHREW,
- gAnims_SANDSLASH,
- gAnims_NIDORAN_F,
- gAnims_NIDORINA,
- gAnims_NIDOQUEEN,
- gAnims_NIDORAN_M,
- gAnims_NIDORINO,
- gAnims_NIDOKING,
- gAnims_CLEFAIRY,
- gAnims_CLEFABLE,
- gAnims_VULPIX,
- gAnims_NINETALES,
- gAnims_JIGGLYPUFF,
- gAnims_WIGGLYTUFF,
- gAnims_ZUBAT,
- gAnims_GOLBAT,
- gAnims_ODDISH,
- gAnims_GLOOM,
- gAnims_VILEPLUME,
- gAnims_PARAS,
- gAnims_PARASECT,
- gAnims_VENONAT,
- gAnims_VENOMOTH,
- gAnims_DIGLETT,
- gAnims_DUGTRIO,
- gAnims_MEOWTH,
- gAnims_PERSIAN,
- gAnims_PSYDUCK,
- gAnims_GOLDUCK,
- gAnims_MANKEY,
- gAnims_PRIMEAPE,
- gAnims_GROWLITHE,
- gAnims_ARCANINE,
- gAnims_POLIWAG,
- gAnims_POLIWHIRL,
- gAnims_POLIWRATH,
- gAnims_ABRA,
- gAnims_KADABRA,
- gAnims_ALAKAZAM,
- gAnims_MACHOP,
- gAnims_MACHOKE,
- gAnims_MACHAMP,
- gAnims_BELLSPROUT,
- gAnims_WEEPINBELL,
- gAnims_VICTREEBEL,
- gAnims_TENTACOOL,
- gAnims_TENTACRUEL,
- gAnims_GEODUDE,
- gAnims_GRAVELER,
- gAnims_GOLEM,
- gAnims_PONYTA,
- gAnims_RAPIDASH,
- gAnims_SLOWPOKE,
- gAnims_SLOWBRO,
- gAnims_MAGNEMITE,
- gAnims_MAGNETON,
- gAnims_FARFETCHD,
- gAnims_DODUO,
- gAnims_DODRIO,
- gAnims_SEEL,
- gAnims_DEWGONG,
- gAnims_GRIMER,
- gAnims_MUK,
- gAnims_SHELLDER,
- gAnims_CLOYSTER,
- gAnims_GASTLY,
- gAnims_HAUNTER,
- gAnims_GENGAR,
- gAnims_ONIX,
- gAnims_DROWZEE,
- gAnims_HYPNO,
- gAnims_KRABBY,
- gAnims_KINGLER,
- gAnims_VOLTORB,
- gAnims_ELECTRODE,
- gAnims_EXEGGCUTE,
- gAnims_EXEGGUTOR,
- gAnims_CUBONE,
- gAnims_MAROWAK,
- gAnims_HITMONLEE,
- gAnims_HITMONCHAN,
- gAnims_LICKITUNG,
- gAnims_KOFFING,
- gAnims_WEEZING,
- gAnims_RHYHORN,
- gAnims_RHYDON,
- gAnims_CHANSEY,
- gAnims_TANGELA,
- gAnims_KANGASKHAN,
- gAnims_HORSEA,
- gAnims_SEADRA,
- gAnims_GOLDEEN,
- gAnims_SEAKING,
- gAnims_STARYU,
- gAnims_STARMIE,
- gAnims_MR_MIME,
- gAnims_SCYTHER,
- gAnims_JYNX,
- gAnims_ELECTABUZZ,
- gAnims_MAGMAR,
- gAnims_PINSIR,
- gAnims_TAUROS,
- gAnims_MAGIKARP,
- gAnims_GYARADOS,
- gAnims_LAPRAS,
- gAnims_DITTO,
- gAnims_EEVEE,
- gAnims_VAPOREON,
- gAnims_JOLTEON,
- gAnims_FLAREON,
- gAnims_PORYGON,
- gAnims_OMANYTE,
- gAnims_OMASTAR,
- gAnims_KABUTO,
- gAnims_KABUTOPS,
- gAnims_AERODACTYL,
- gAnims_SNORLAX,
- gAnims_ARTICUNO,
- gAnims_ZAPDOS,
- gAnims_MOLTRES,
- gAnims_DRATINI,
- gAnims_DRAGONAIR,
- gAnims_DRAGONITE,
- gAnims_MEWTWO,
- gAnims_MEW,
- gAnims_CHIKORITA,
- gAnims_BAYLEEF,
- gAnims_MEGANIUM,
- gAnims_CYNDAQUIL,
- gAnims_QUILAVA,
- gAnims_TYPHLOSION,
- gAnims_TOTODILE,
- gAnims_CROCONAW,
- gAnims_FERALIGATR,
- gAnims_SENTRET,
- gAnims_FURRET,
- gAnims_HOOTHOOT,
- gAnims_NOCTOWL,
- gAnims_LEDYBA,
- gAnims_LEDIAN,
- gAnims_SPINARAK,
- gAnims_ARIADOS,
- gAnims_CROBAT,
- gAnims_CHINCHOU,
- gAnims_LANTURN,
- gAnims_PICHU,
- gAnims_CLEFFA,
- gAnims_IGGLYBUFF,
- gAnims_TOGEPI,
- gAnims_TOGETIC,
- gAnims_NATU,
- gAnims_XATU,
- gAnims_MAREEP,
- gAnims_FLAAFFY,
- gAnims_AMPHAROS,
- gAnims_BELLOSSOM,
- gAnims_MARILL,
- gAnims_AZUMARILL,
- gAnims_SUDOWOODO,
- gAnims_POLITOED,
- gAnims_HOPPIP,
- gAnims_SKIPLOOM,
- gAnims_JUMPLUFF,
- gAnims_AIPOM,
- gAnims_SUNKERN,
- gAnims_SUNFLORA,
- gAnims_YANMA,
- gAnims_WOOPER,
- gAnims_QUAGSIRE,
- gAnims_ESPEON,
- gAnims_UMBREON,
- gAnims_MURKROW,
- gAnims_SLOWKING,
- gAnims_MISDREAVUS,
- gAnims_UNOWN,
- gAnims_WOBBUFFET,
- gAnims_GIRAFARIG,
- gAnims_PINECO,
- gAnims_FORRETRESS,
- gAnims_DUNSPARCE,
- gAnims_GLIGAR,
- gAnims_STEELIX,
- gAnims_SNUBBULL,
- gAnims_GRANBULL,
- gAnims_QWILFISH,
- gAnims_SCIZOR,
- gAnims_SHUCKLE,
- gAnims_HERACROSS,
- gAnims_SNEASEL,
- gAnims_TEDDIURSA,
- gAnims_URSARING,
- gAnims_SLUGMA,
- gAnims_MAGCARGO,
- gAnims_SWINUB,
- gAnims_PILOSWINE,
- gAnims_CORSOLA,
- gAnims_REMORAID,
- gAnims_OCTILLERY,
- gAnims_DELIBIRD,
- gAnims_MANTINE,
- gAnims_SKARMORY,
- gAnims_HOUNDOUR,
- gAnims_HOUNDOOM,
- gAnims_KINGDRA,
- gAnims_PHANPY,
- gAnims_DONPHAN,
- gAnims_PORYGON2,
- gAnims_STANTLER,
- gAnims_SMEARGLE,
- gAnims_TYROGUE,
- gAnims_HITMONTOP,
- gAnims_SMOOCHUM,
- gAnims_ELEKID,
- gAnims_MAGBY,
- gAnims_MILTANK,
- gAnims_BLISSEY,
- gAnims_RAIKOU,
- gAnims_ENTEI,
- gAnims_SUICUNE,
- gAnims_LARVITAR,
- gAnims_PUPITAR,
- gAnims_TYRANITAR,
- gAnims_LUGIA,
- gAnims_HO_OH,
- gAnims_CELEBI,
- gAnims_OLD_UNOWN_B,
- gAnims_OLD_UNOWN_B,
- gAnims_OLD_UNOWN_B,
- gAnims_OLD_UNOWN_B,
- gAnims_OLD_UNOWN_B,
- gAnims_OLD_UNOWN_B,
- gAnims_OLD_UNOWN_B,
- gAnims_OLD_UNOWN_B,
- gAnims_OLD_UNOWN_B,
- gAnims_OLD_UNOWN_B,
- gAnims_OLD_UNOWN_B,
- gAnims_OLD_UNOWN_B,
- gAnims_OLD_UNOWN_B,
- gAnims_OLD_UNOWN_B,
- gAnims_OLD_UNOWN_B,
- gAnims_OLD_UNOWN_B,
- gAnims_OLD_UNOWN_B,
- gAnims_OLD_UNOWN_B,
- gAnims_OLD_UNOWN_B,
- gAnims_OLD_UNOWN_B,
- gAnims_OLD_UNOWN_B,
- gAnims_OLD_UNOWN_B,
- gAnims_OLD_UNOWN_B,
- gAnims_OLD_UNOWN_B,
- gAnims_OLD_UNOWN_B,
- gAnims_TREECKO,
- gAnims_GROVYLE,
- gAnims_SCEPTILE,
- gAnims_TORCHIC,
- gAnims_COMBUSKEN,
- gAnims_BLAZIKEN,
- gAnims_MUDKIP,
- gAnims_MARSHTOMP,
- gAnims_SWAMPERT,
- gAnims_POOCHYENA,
- gAnims_MIGHTYENA,
- gAnims_ZIGZAGOON,
- gAnims_LINOONE,
- gAnims_WURMPLE,
- gAnims_SILCOON,
- gAnims_BEAUTIFLY,
- gAnims_CASCOON,
- gAnims_DUSTOX,
- gAnims_LOTAD,
- gAnims_LOMBRE,
- gAnims_LUDICOLO,
- gAnims_SEEDOT,
- gAnims_NUZLEAF,
- gAnims_SHIFTRY,
- gAnims_NINCADA,
- gAnims_NINJASK,
- gAnims_SHEDINJA,
- gAnims_TAILLOW,
- gAnims_SWELLOW,
- gAnims_SHROOMISH,
- gAnims_BRELOOM,
- gAnims_SPINDA,
- gAnims_WINGULL,
- gAnims_PELIPPER,
- gAnims_SURSKIT,
- gAnims_MASQUERAIN,
- gAnims_WAILMER,
- gAnims_WAILORD,
- gAnims_SKITTY,
- gAnims_DELCATTY,
- gAnims_KECLEON,
- gAnims_BALTOY,
- gAnims_CLAYDOL,
- gAnims_NOSEPASS,
- gAnims_TORKOAL,
- gAnims_SABLEYE,
- gAnims_BARBOACH,
- gAnims_WHISCASH,
- gAnims_LUVDISC,
- gAnims_CORPHISH,
- gAnims_CRAWDAUNT,
- gAnims_FEEBAS,
- gAnims_MILOTIC,
- gAnims_CARVANHA,
- gAnims_SHARPEDO,
- gAnims_TRAPINCH,
- gAnims_VIBRAVA,
- gAnims_FLYGON,
- gAnims_MAKUHITA,
- gAnims_HARIYAMA,
- gAnims_ELECTRIKE,
- gAnims_MANECTRIC,
- gAnims_NUMEL,
- gAnims_CAMERUPT,
- gAnims_SPHEAL,
- gAnims_SEALEO,
- gAnims_WALREIN,
- gAnims_CACNEA,
- gAnims_CACTURNE,
- gAnims_SNORUNT,
- gAnims_GLALIE,
- gAnims_LUNATONE,
- gAnims_SOLROCK,
- gAnims_AZURILL,
- gAnims_SPOINK,
- gAnims_GRUMPIG,
- gAnims_PLUSLE,
- gAnims_MINUN,
- gAnims_MAWILE,
- gAnims_MEDITITE,
- gAnims_MEDICHAM,
- gAnims_SWABLU,
- gAnims_ALTARIA,
- gAnims_WYNAUT,
- gAnims_DUSKULL,
- gAnims_DUSCLOPS,
- gAnims_ROSELIA,
- gAnims_SLAKOTH,
- gAnims_VIGOROTH,
- gAnims_SLAKING,
- gAnims_GULPIN,
- gAnims_SWALOT,
- gAnims_TROPIUS,
- gAnims_WHISMUR,
- gAnims_LOUDRED,
- gAnims_EXPLOUD,
- gAnims_CLAMPERL,
- gAnims_HUNTAIL,
- gAnims_GOREBYSS,
- gAnims_ABSOL,
- gAnims_SHUPPET,
- gAnims_BANETTE,
- gAnims_SEVIPER,
- gAnims_ZANGOOSE,
- gAnims_RELICANTH,
- gAnims_ARON,
- gAnims_LAIRON,
- gAnims_AGGRON,
- gAnims_CASTFORM,
- gAnims_VOLBEAT,
- gAnims_ILLUMISE,
- gAnims_LILEEP,
- gAnims_CRADILY,
- gAnims_ANORITH,
- gAnims_ARMALDO,
- gAnims_RALTS,
- gAnims_KIRLIA,
- gAnims_GARDEVOIR,
- gAnims_BAGON,
- gAnims_SHELGON,
- gAnims_SALAMENCE,
- gAnims_BELDUM,
- gAnims_METANG,
- gAnims_METAGROSS,
- gAnims_REGIROCK,
- gAnims_REGICE,
- gAnims_REGISTEEL,
- gAnims_KYOGRE,
- gAnims_GROUDON,
- gAnims_RAYQUAZA,
- gAnims_LATIAS,
- gAnims_LATIOS,
- gAnims_JIRACHI,
- gAnims_DEOXYS,
- gAnims_CHIMECHO,
- gAnims_EGG,
- gAnims_UNOWN_B,
- gAnims_UNOWN_C,
- gAnims_UNOWN_D,
- gAnims_UNOWN_E,
- gAnims_UNOWN_F,
- gAnims_UNOWN_G,
- gAnims_UNOWN_H,
- gAnims_UNOWN_I,
- gAnims_UNOWN_J,
- gAnims_UNOWN_K,
- gAnims_UNOWN_L,
- gAnims_UNOWN_M,
- gAnims_UNOWN_N,
- gAnims_UNOWN_O,
- gAnims_UNOWN_P,
- gAnims_UNOWN_Q,
- gAnims_UNOWN_R,
- gAnims_UNOWN_S,
- gAnims_UNOWN_T,
- gAnims_UNOWN_U,
- gAnims_UNOWN_V,
- gAnims_UNOWN_W,
- gAnims_UNOWN_X,
- gAnims_UNOWN_Y,
- gAnims_UNOWN_Z,
- gAnims_UNOWN_EMARK,
- gAnims_UNOWN_QMARK,
+ ANIM_CMD(NONE),
+ ANIM_CMD(BULBASAUR),
+ ANIM_CMD(IVYSAUR),
+ ANIM_CMD(VENUSAUR),
+ ANIM_CMD(CHARMANDER),
+ ANIM_CMD(CHARMELEON),
+ ANIM_CMD(CHARIZARD),
+ ANIM_CMD(SQUIRTLE),
+ ANIM_CMD(WARTORTLE),
+ ANIM_CMD(BLASTOISE),
+ ANIM_CMD(CATERPIE),
+ ANIM_CMD(METAPOD),
+ ANIM_CMD(BUTTERFREE),
+ ANIM_CMD(WEEDLE),
+ ANIM_CMD(KAKUNA),
+ ANIM_CMD(BEEDRILL),
+ ANIM_CMD(PIDGEY),
+ ANIM_CMD(PIDGEOTTO),
+ ANIM_CMD(PIDGEOT),
+ ANIM_CMD(RATTATA),
+ ANIM_CMD(RATICATE),
+ ANIM_CMD(SPEAROW),
+ ANIM_CMD(FEAROW),
+ ANIM_CMD(EKANS),
+ ANIM_CMD(ARBOK),
+ ANIM_CMD(PIKACHU),
+ ANIM_CMD(RAICHU),
+ ANIM_CMD(SANDSHREW),
+ ANIM_CMD(SANDSLASH),
+ ANIM_CMD(NIDORAN_F),
+ ANIM_CMD(NIDORINA),
+ ANIM_CMD(NIDOQUEEN),
+ ANIM_CMD(NIDORAN_M),
+ ANIM_CMD(NIDORINO),
+ ANIM_CMD(NIDOKING),
+ ANIM_CMD(CLEFAIRY),
+ ANIM_CMD(CLEFABLE),
+ ANIM_CMD(VULPIX),
+ ANIM_CMD(NINETALES),
+ ANIM_CMD(JIGGLYPUFF),
+ ANIM_CMD(WIGGLYTUFF),
+ ANIM_CMD(ZUBAT),
+ ANIM_CMD(GOLBAT),
+ ANIM_CMD(ODDISH),
+ ANIM_CMD(GLOOM),
+ ANIM_CMD(VILEPLUME),
+ ANIM_CMD(PARAS),
+ ANIM_CMD(PARASECT),
+ ANIM_CMD(VENONAT),
+ ANIM_CMD(VENOMOTH),
+ ANIM_CMD(DIGLETT),
+ ANIM_CMD(DUGTRIO),
+ ANIM_CMD(MEOWTH),
+ ANIM_CMD(PERSIAN),
+ ANIM_CMD(PSYDUCK),
+ ANIM_CMD(GOLDUCK),
+ ANIM_CMD(MANKEY),
+ ANIM_CMD(PRIMEAPE),
+ ANIM_CMD(GROWLITHE),
+ ANIM_CMD(ARCANINE),
+ ANIM_CMD(POLIWAG),
+ ANIM_CMD(POLIWHIRL),
+ ANIM_CMD(POLIWRATH),
+ ANIM_CMD(ABRA),
+ ANIM_CMD(KADABRA),
+ ANIM_CMD(ALAKAZAM),
+ ANIM_CMD(MACHOP),
+ ANIM_CMD(MACHOKE),
+ ANIM_CMD(MACHAMP),
+ ANIM_CMD(BELLSPROUT),
+ ANIM_CMD(WEEPINBELL),
+ ANIM_CMD(VICTREEBEL),
+ ANIM_CMD(TENTACOOL),
+ ANIM_CMD(TENTACRUEL),
+ ANIM_CMD(GEODUDE),
+ ANIM_CMD(GRAVELER),
+ ANIM_CMD(GOLEM),
+ ANIM_CMD(PONYTA),
+ ANIM_CMD(RAPIDASH),
+ ANIM_CMD(SLOWPOKE),
+ ANIM_CMD(SLOWBRO),
+ ANIM_CMD(MAGNEMITE),
+ ANIM_CMD(MAGNETON),
+ ANIM_CMD(FARFETCHD),
+ ANIM_CMD(DODUO),
+ ANIM_CMD(DODRIO),
+ ANIM_CMD(SEEL),
+ ANIM_CMD(DEWGONG),
+ ANIM_CMD(GRIMER),
+ ANIM_CMD(MUK),
+ ANIM_CMD(SHELLDER),
+ ANIM_CMD(CLOYSTER),
+ ANIM_CMD(GASTLY),
+ ANIM_CMD(HAUNTER),
+ ANIM_CMD(GENGAR),
+ ANIM_CMD(ONIX),
+ ANIM_CMD(DROWZEE),
+ ANIM_CMD(HYPNO),
+ ANIM_CMD(KRABBY),
+ ANIM_CMD(KINGLER),
+ ANIM_CMD(VOLTORB),
+ ANIM_CMD(ELECTRODE),
+ ANIM_CMD(EXEGGCUTE),
+ ANIM_CMD(EXEGGUTOR),
+ ANIM_CMD(CUBONE),
+ ANIM_CMD(MAROWAK),
+ ANIM_CMD(HITMONLEE),
+ ANIM_CMD(HITMONCHAN),
+ ANIM_CMD(LICKITUNG),
+ ANIM_CMD(KOFFING),
+ ANIM_CMD(WEEZING),
+ ANIM_CMD(RHYHORN),
+ ANIM_CMD(RHYDON),
+ ANIM_CMD(CHANSEY),
+ ANIM_CMD(TANGELA),
+ ANIM_CMD(KANGASKHAN),
+ ANIM_CMD(HORSEA),
+ ANIM_CMD(SEADRA),
+ ANIM_CMD(GOLDEEN),
+ ANIM_CMD(SEAKING),
+ ANIM_CMD(STARYU),
+ ANIM_CMD(STARMIE),
+ ANIM_CMD(MR_MIME),
+ ANIM_CMD(SCYTHER),
+ ANIM_CMD(JYNX),
+ ANIM_CMD(ELECTABUZZ),
+ ANIM_CMD(MAGMAR),
+ ANIM_CMD(PINSIR),
+ ANIM_CMD(TAUROS),
+ ANIM_CMD(MAGIKARP),
+ ANIM_CMD(GYARADOS),
+ ANIM_CMD(LAPRAS),
+ ANIM_CMD(DITTO),
+ ANIM_CMD(EEVEE),
+ ANIM_CMD(VAPOREON),
+ ANIM_CMD(JOLTEON),
+ ANIM_CMD(FLAREON),
+ ANIM_CMD(PORYGON),
+ ANIM_CMD(OMANYTE),
+ ANIM_CMD(OMASTAR),
+ ANIM_CMD(KABUTO),
+ ANIM_CMD(KABUTOPS),
+ ANIM_CMD(AERODACTYL),
+ ANIM_CMD(SNORLAX),
+ ANIM_CMD(ARTICUNO),
+ ANIM_CMD(ZAPDOS),
+ ANIM_CMD(MOLTRES),
+ ANIM_CMD(DRATINI),
+ ANIM_CMD(DRAGONAIR),
+ ANIM_CMD(DRAGONITE),
+ ANIM_CMD(MEWTWO),
+ ANIM_CMD(MEW),
+ ANIM_CMD(CHIKORITA),
+ ANIM_CMD(BAYLEEF),
+ ANIM_CMD(MEGANIUM),
+ ANIM_CMD(CYNDAQUIL),
+ ANIM_CMD(QUILAVA),
+ ANIM_CMD(TYPHLOSION),
+ ANIM_CMD(TOTODILE),
+ ANIM_CMD(CROCONAW),
+ ANIM_CMD(FERALIGATR),
+ ANIM_CMD(SENTRET),
+ ANIM_CMD(FURRET),
+ ANIM_CMD(HOOTHOOT),
+ ANIM_CMD(NOCTOWL),
+ ANIM_CMD(LEDYBA),
+ ANIM_CMD(LEDIAN),
+ ANIM_CMD(SPINARAK),
+ ANIM_CMD(ARIADOS),
+ ANIM_CMD(CROBAT),
+ ANIM_CMD(CHINCHOU),
+ ANIM_CMD(LANTURN),
+ ANIM_CMD(PICHU),
+ ANIM_CMD(CLEFFA),
+ ANIM_CMD(IGGLYBUFF),
+ ANIM_CMD(TOGEPI),
+ ANIM_CMD(TOGETIC),
+ ANIM_CMD(NATU),
+ ANIM_CMD(XATU),
+ ANIM_CMD(MAREEP),
+ ANIM_CMD(FLAAFFY),
+ ANIM_CMD(AMPHAROS),
+ ANIM_CMD(BELLOSSOM),
+ ANIM_CMD(MARILL),
+ ANIM_CMD(AZUMARILL),
+ ANIM_CMD(SUDOWOODO),
+ ANIM_CMD(POLITOED),
+ ANIM_CMD(HOPPIP),
+ ANIM_CMD(SKIPLOOM),
+ ANIM_CMD(JUMPLUFF),
+ ANIM_CMD(AIPOM),
+ ANIM_CMD(SUNKERN),
+ ANIM_CMD(SUNFLORA),
+ ANIM_CMD(YANMA),
+ ANIM_CMD(WOOPER),
+ ANIM_CMD(QUAGSIRE),
+ ANIM_CMD(ESPEON),
+ ANIM_CMD(UMBREON),
+ ANIM_CMD(MURKROW),
+ ANIM_CMD(SLOWKING),
+ ANIM_CMD(MISDREAVUS),
+ ANIM_CMD(UNOWN),
+ ANIM_CMD(WOBBUFFET),
+ ANIM_CMD(GIRAFARIG),
+ ANIM_CMD(PINECO),
+ ANIM_CMD(FORRETRESS),
+ ANIM_CMD(DUNSPARCE),
+ ANIM_CMD(GLIGAR),
+ ANIM_CMD(STEELIX),
+ ANIM_CMD(SNUBBULL),
+ ANIM_CMD(GRANBULL),
+ ANIM_CMD(QWILFISH),
+ ANIM_CMD(SCIZOR),
+ ANIM_CMD(SHUCKLE),
+ ANIM_CMD(HERACROSS),
+ ANIM_CMD(SNEASEL),
+ ANIM_CMD(TEDDIURSA),
+ ANIM_CMD(URSARING),
+ ANIM_CMD(SLUGMA),
+ ANIM_CMD(MAGCARGO),
+ ANIM_CMD(SWINUB),
+ ANIM_CMD(PILOSWINE),
+ ANIM_CMD(CORSOLA),
+ ANIM_CMD(REMORAID),
+ ANIM_CMD(OCTILLERY),
+ ANIM_CMD(DELIBIRD),
+ ANIM_CMD(MANTINE),
+ ANIM_CMD(SKARMORY),
+ ANIM_CMD(HOUNDOUR),
+ ANIM_CMD(HOUNDOOM),
+ ANIM_CMD(KINGDRA),
+ ANIM_CMD(PHANPY),
+ ANIM_CMD(DONPHAN),
+ ANIM_CMD(PORYGON2),
+ ANIM_CMD(STANTLER),
+ ANIM_CMD(SMEARGLE),
+ ANIM_CMD(TYROGUE),
+ ANIM_CMD(HITMONTOP),
+ ANIM_CMD(SMOOCHUM),
+ ANIM_CMD(ELEKID),
+ ANIM_CMD(MAGBY),
+ ANIM_CMD(MILTANK),
+ ANIM_CMD(BLISSEY),
+ ANIM_CMD(RAIKOU),
+ ANIM_CMD(ENTEI),
+ ANIM_CMD(SUICUNE),
+ ANIM_CMD(LARVITAR),
+ ANIM_CMD(PUPITAR),
+ ANIM_CMD(TYRANITAR),
+ ANIM_CMD(LUGIA),
+ ANIM_CMD(HO_OH),
+ ANIM_CMD(CELEBI),
+ ANIM_CMD(OLD_UNOWN_B),
+ ANIM_CMD_FULL(OLD_UNOWN_C, gAnims_OLD_UNOWN_B),
+ ANIM_CMD_FULL(OLD_UNOWN_D, gAnims_OLD_UNOWN_B),
+ ANIM_CMD_FULL(OLD_UNOWN_E, gAnims_OLD_UNOWN_B),
+ ANIM_CMD_FULL(OLD_UNOWN_F, gAnims_OLD_UNOWN_B),
+ ANIM_CMD_FULL(OLD_UNOWN_G, gAnims_OLD_UNOWN_B),
+ ANIM_CMD_FULL(OLD_UNOWN_H, gAnims_OLD_UNOWN_B),
+ ANIM_CMD_FULL(OLD_UNOWN_I, gAnims_OLD_UNOWN_B),
+ ANIM_CMD_FULL(OLD_UNOWN_J, gAnims_OLD_UNOWN_B),
+ ANIM_CMD_FULL(OLD_UNOWN_K, gAnims_OLD_UNOWN_B),
+ ANIM_CMD_FULL(OLD_UNOWN_L, gAnims_OLD_UNOWN_B),
+ ANIM_CMD_FULL(OLD_UNOWN_M, gAnims_OLD_UNOWN_B),
+ ANIM_CMD_FULL(OLD_UNOWN_N, gAnims_OLD_UNOWN_B),
+ ANIM_CMD_FULL(OLD_UNOWN_O, gAnims_OLD_UNOWN_B),
+ ANIM_CMD_FULL(OLD_UNOWN_P, gAnims_OLD_UNOWN_B),
+ ANIM_CMD_FULL(OLD_UNOWN_Q, gAnims_OLD_UNOWN_B),
+ ANIM_CMD_FULL(OLD_UNOWN_R, gAnims_OLD_UNOWN_B),
+ ANIM_CMD_FULL(OLD_UNOWN_S, gAnims_OLD_UNOWN_B),
+ ANIM_CMD_FULL(OLD_UNOWN_T, gAnims_OLD_UNOWN_B),
+ ANIM_CMD_FULL(OLD_UNOWN_U, gAnims_OLD_UNOWN_B),
+ ANIM_CMD_FULL(OLD_UNOWN_V, gAnims_OLD_UNOWN_B),
+ ANIM_CMD_FULL(OLD_UNOWN_W, gAnims_OLD_UNOWN_B),
+ ANIM_CMD_FULL(OLD_UNOWN_X, gAnims_OLD_UNOWN_B),
+ ANIM_CMD_FULL(OLD_UNOWN_Y, gAnims_OLD_UNOWN_B),
+ ANIM_CMD_FULL(OLD_UNOWN_Z, gAnims_OLD_UNOWN_B),
+ ANIM_CMD(TREECKO),
+ ANIM_CMD(GROVYLE),
+ ANIM_CMD(SCEPTILE),
+ ANIM_CMD(TORCHIC),
+ ANIM_CMD(COMBUSKEN),
+ ANIM_CMD(BLAZIKEN),
+ ANIM_CMD(MUDKIP),
+ ANIM_CMD(MARSHTOMP),
+ ANIM_CMD(SWAMPERT),
+ ANIM_CMD(POOCHYENA),
+ ANIM_CMD(MIGHTYENA),
+ ANIM_CMD(ZIGZAGOON),
+ ANIM_CMD(LINOONE),
+ ANIM_CMD(WURMPLE),
+ ANIM_CMD(SILCOON),
+ ANIM_CMD(BEAUTIFLY),
+ ANIM_CMD(CASCOON),
+ ANIM_CMD(DUSTOX),
+ ANIM_CMD(LOTAD),
+ ANIM_CMD(LOMBRE),
+ ANIM_CMD(LUDICOLO),
+ ANIM_CMD(SEEDOT),
+ ANIM_CMD(NUZLEAF),
+ ANIM_CMD(SHIFTRY),
+ ANIM_CMD(NINCADA),
+ ANIM_CMD(NINJASK),
+ ANIM_CMD(SHEDINJA),
+ ANIM_CMD(TAILLOW),
+ ANIM_CMD(SWELLOW),
+ ANIM_CMD(SHROOMISH),
+ ANIM_CMD(BRELOOM),
+ ANIM_CMD(SPINDA),
+ ANIM_CMD(WINGULL),
+ ANIM_CMD(PELIPPER),
+ ANIM_CMD(SURSKIT),
+ ANIM_CMD(MASQUERAIN),
+ ANIM_CMD(WAILMER),
+ ANIM_CMD(WAILORD),
+ ANIM_CMD(SKITTY),
+ ANIM_CMD(DELCATTY),
+ ANIM_CMD(KECLEON),
+ ANIM_CMD(BALTOY),
+ ANIM_CMD(CLAYDOL),
+ ANIM_CMD(NOSEPASS),
+ ANIM_CMD(TORKOAL),
+ ANIM_CMD(SABLEYE),
+ ANIM_CMD(BARBOACH),
+ ANIM_CMD(WHISCASH),
+ ANIM_CMD(LUVDISC),
+ ANIM_CMD(CORPHISH),
+ ANIM_CMD(CRAWDAUNT),
+ ANIM_CMD(FEEBAS),
+ ANIM_CMD(MILOTIC),
+ ANIM_CMD(CARVANHA),
+ ANIM_CMD(SHARPEDO),
+ ANIM_CMD(TRAPINCH),
+ ANIM_CMD(VIBRAVA),
+ ANIM_CMD(FLYGON),
+ ANIM_CMD(MAKUHITA),
+ ANIM_CMD(HARIYAMA),
+ ANIM_CMD(ELECTRIKE),
+ ANIM_CMD(MANECTRIC),
+ ANIM_CMD(NUMEL),
+ ANIM_CMD(CAMERUPT),
+ ANIM_CMD(SPHEAL),
+ ANIM_CMD(SEALEO),
+ ANIM_CMD(WALREIN),
+ ANIM_CMD(CACNEA),
+ ANIM_CMD(CACTURNE),
+ ANIM_CMD(SNORUNT),
+ ANIM_CMD(GLALIE),
+ ANIM_CMD(LUNATONE),
+ ANIM_CMD(SOLROCK),
+ ANIM_CMD(AZURILL),
+ ANIM_CMD(SPOINK),
+ ANIM_CMD(GRUMPIG),
+ ANIM_CMD(PLUSLE),
+ ANIM_CMD(MINUN),
+ ANIM_CMD(MAWILE),
+ ANIM_CMD(MEDITITE),
+ ANIM_CMD(MEDICHAM),
+ ANIM_CMD(SWABLU),
+ ANIM_CMD(ALTARIA),
+ ANIM_CMD(WYNAUT),
+ ANIM_CMD(DUSKULL),
+ ANIM_CMD(DUSCLOPS),
+ ANIM_CMD(ROSELIA),
+ ANIM_CMD(SLAKOTH),
+ ANIM_CMD(VIGOROTH),
+ ANIM_CMD(SLAKING),
+ ANIM_CMD(GULPIN),
+ ANIM_CMD(SWALOT),
+ ANIM_CMD(TROPIUS),
+ ANIM_CMD(WHISMUR),
+ ANIM_CMD(LOUDRED),
+ ANIM_CMD(EXPLOUD),
+ ANIM_CMD(CLAMPERL),
+ ANIM_CMD(HUNTAIL),
+ ANIM_CMD(GOREBYSS),
+ ANIM_CMD(ABSOL),
+ ANIM_CMD(SHUPPET),
+ ANIM_CMD(BANETTE),
+ ANIM_CMD(SEVIPER),
+ ANIM_CMD(ZANGOOSE),
+ ANIM_CMD(RELICANTH),
+ ANIM_CMD(ARON),
+ ANIM_CMD(LAIRON),
+ ANIM_CMD(AGGRON),
+ ANIM_CMD(CASTFORM),
+ ANIM_CMD(VOLBEAT),
+ ANIM_CMD(ILLUMISE),
+ ANIM_CMD(LILEEP),
+ ANIM_CMD(CRADILY),
+ ANIM_CMD(ANORITH),
+ ANIM_CMD(ARMALDO),
+ ANIM_CMD(RALTS),
+ ANIM_CMD(KIRLIA),
+ ANIM_CMD(GARDEVOIR),
+ ANIM_CMD(BAGON),
+ ANIM_CMD(SHELGON),
+ ANIM_CMD(SALAMENCE),
+ ANIM_CMD(BELDUM),
+ ANIM_CMD(METANG),
+ ANIM_CMD(METAGROSS),
+ ANIM_CMD(REGIROCK),
+ ANIM_CMD(REGICE),
+ ANIM_CMD(REGISTEEL),
+ ANIM_CMD(KYOGRE),
+ ANIM_CMD(GROUDON),
+ ANIM_CMD(RAYQUAZA),
+ ANIM_CMD(LATIAS),
+ ANIM_CMD(LATIOS),
+ ANIM_CMD(JIRACHI),
+ ANIM_CMD(DEOXYS),
+ ANIM_CMD(CHIMECHO),
+ ANIM_CMD(EGG),
+ ANIM_CMD(UNOWN_B),
+ ANIM_CMD(UNOWN_C),
+ ANIM_CMD(UNOWN_D),
+ ANIM_CMD(UNOWN_E),
+ ANIM_CMD(UNOWN_F),
+ ANIM_CMD(UNOWN_G),
+ ANIM_CMD(UNOWN_H),
+ ANIM_CMD(UNOWN_I),
+ ANIM_CMD(UNOWN_J),
+ ANIM_CMD(UNOWN_K),
+ ANIM_CMD(UNOWN_L),
+ ANIM_CMD(UNOWN_M),
+ ANIM_CMD(UNOWN_N),
+ ANIM_CMD(UNOWN_O),
+ ANIM_CMD(UNOWN_P),
+ ANIM_CMD(UNOWN_Q),
+ ANIM_CMD(UNOWN_R),
+ ANIM_CMD(UNOWN_S),
+ ANIM_CMD(UNOWN_T),
+ ANIM_CMD(UNOWN_U),
+ ANIM_CMD(UNOWN_V),
+ ANIM_CMD(UNOWN_W),
+ ANIM_CMD(UNOWN_X),
+ ANIM_CMD(UNOWN_Y),
+ ANIM_CMD(UNOWN_Z),
+ ANIM_CMD(UNOWN_EMARK),
+ ANIM_CMD(UNOWN_QMARK),
};
diff --git a/src/data/pokemon_graphics/still_front_pic_table.h b/src/data/pokemon_graphics/still_front_pic_table.h
index a345a3d43..308a872b4 100644
--- a/src/data/pokemon_graphics/still_front_pic_table.h
+++ b/src/data/pokemon_graphics/still_front_pic_table.h
@@ -1,446 +1,448 @@
+#define STILL_FRONT_PIC(species, frontpic) [SPECIES_##species] = {frontpic, 0x800, SPECIES_##species}
+
const struct CompressedSpriteSheet gMonStillFrontPicTable[] =
-{ //.data .size .tag
- gMonStillFrontPic_CircledQuestionMark, 0x800, 0,
- gMonStillFrontPic_Bulbasaur, 0x800, 1,
- gMonStillFrontPic_Ivysaur, 0x800, 2,
- gMonStillFrontPic_Venusaur, 0x800, 3,
- gMonStillFrontPic_Charmander, 0x800, 4,
- gMonStillFrontPic_Charmeleon, 0x800, 5,
- gMonStillFrontPic_Charizard, 0x800, 6,
- gMonStillFrontPic_Squirtle, 0x800, 7,
- gMonStillFrontPic_Wartortle, 0x800, 8,
- gMonStillFrontPic_Blastoise, 0x800, 9,
- gMonStillFrontPic_Caterpie, 0x800, 10,
- gMonStillFrontPic_Metapod, 0x800, 11,
- gMonStillFrontPic_Butterfree, 0x800, 12,
- gMonStillFrontPic_Weedle, 0x800, 13,
- gMonStillFrontPic_Kakuna, 0x800, 14,
- gMonStillFrontPic_Beedrill, 0x800, 15,
- gMonStillFrontPic_Pidgey, 0x800, 16,
- gMonStillFrontPic_Pidgeotto, 0x800, 17,
- gMonStillFrontPic_Pidgeot, 0x800, 18,
- gMonStillFrontPic_Rattata, 0x800, 19,
- gMonStillFrontPic_Raticate, 0x800, 20,
- gMonStillFrontPic_Spearow, 0x800, 21,
- gMonStillFrontPic_Fearow, 0x800, 22,
- gMonStillFrontPic_Ekans, 0x800, 23,
- gMonStillFrontPic_Arbok, 0x800, 24,
- gMonStillFrontPic_Pikachu, 0x800, 25,
- gMonStillFrontPic_Raichu, 0x800, 26,
- gMonStillFrontPic_Sandshrew, 0x800, 27,
- gMonStillFrontPic_Sandslash, 0x800, 28,
- gMonStillFrontPic_NidoranF, 0x800, 29,
- gMonStillFrontPic_Nidorina, 0x800, 30,
- gMonStillFrontPic_Nidoqueen, 0x800, 31,
- gMonStillFrontPic_NidoranM, 0x800, 32,
- gMonStillFrontPic_Nidorino, 0x800, 33,
- gMonStillFrontPic_Nidoking, 0x800, 34,
- gMonStillFrontPic_Clefairy, 0x800, 35,
- gMonStillFrontPic_Clefable, 0x800, 36,
- gMonStillFrontPic_Vulpix, 0x800, 37,
- gMonStillFrontPic_Ninetales, 0x800, 38,
- gMonStillFrontPic_Jigglypuff, 0x800, 39,
- gMonStillFrontPic_Wigglytuff, 0x800, 40,
- gMonStillFrontPic_Zubat, 0x800, 41,
- gMonStillFrontPic_Golbat, 0x800, 42,
- gMonStillFrontPic_Oddish, 0x800, 43,
- gMonStillFrontPic_Gloom, 0x800, 44,
- gMonStillFrontPic_Vileplume, 0x800, 45,
- gMonStillFrontPic_Paras, 0x800, 46,
- gMonStillFrontPic_Parasect, 0x800, 47,
- gMonStillFrontPic_Venonat, 0x800, 48,
- gMonStillFrontPic_Venomoth, 0x800, 49,
- gMonStillFrontPic_Diglett, 0x800, 50,
- gMonStillFrontPic_Dugtrio, 0x800, 51,
- gMonStillFrontPic_Meowth, 0x800, 52,
- gMonStillFrontPic_Persian, 0x800, 53,
- gMonStillFrontPic_Psyduck, 0x800, 54,
- gMonStillFrontPic_Golduck, 0x800, 55,
- gMonStillFrontPic_Mankey, 0x800, 56,
- gMonStillFrontPic_Primeape, 0x800, 57,
- gMonStillFrontPic_Growlithe, 0x800, 58,
- gMonStillFrontPic_Arcanine, 0x800, 59,
- gMonStillFrontPic_Poliwag, 0x800, 60,
- gMonStillFrontPic_Poliwhirl, 0x800, 61,
- gMonStillFrontPic_Poliwrath, 0x800, 62,
- gMonStillFrontPic_Abra, 0x800, 63,
- gMonStillFrontPic_Kadabra, 0x800, 64,
- gMonStillFrontPic_Alakazam, 0x800, 65,
- gMonStillFrontPic_Machop, 0x800, 66,
- gMonStillFrontPic_Machoke, 0x800, 67,
- gMonStillFrontPic_Machamp, 0x800, 68,
- gMonStillFrontPic_Bellsprout, 0x800, 69,
- gMonStillFrontPic_Weepinbell, 0x800, 70,
- gMonStillFrontPic_Victreebel, 0x800, 71,
- gMonStillFrontPic_Tentacool, 0x800, 72,
- gMonStillFrontPic_Tentacruel, 0x800, 73,
- gMonStillFrontPic_Geodude, 0x800, 74,
- gMonStillFrontPic_Graveler, 0x800, 75,
- gMonStillFrontPic_Golem, 0x800, 76,
- gMonStillFrontPic_Ponyta, 0x800, 77,
- gMonStillFrontPic_Rapidash, 0x800, 78,
- gMonStillFrontPic_Slowpoke, 0x800, 79,
- gMonStillFrontPic_Slowbro, 0x800, 80,
- gMonStillFrontPic_Magnemite, 0x800, 81,
- gMonStillFrontPic_Magneton, 0x800, 82,
- gMonStillFrontPic_Farfetchd, 0x800, 83,
- gMonStillFrontPic_Doduo, 0x800, 84,
- gMonStillFrontPic_Dodrio, 0x800, 85,
- gMonStillFrontPic_Seel, 0x800, 86,
- gMonStillFrontPic_Dewgong, 0x800, 87,
- gMonStillFrontPic_Grimer, 0x800, 88,
- gMonStillFrontPic_Muk, 0x800, 89,
- gMonStillFrontPic_Shellder, 0x800, 90,
- gMonStillFrontPic_Cloyster, 0x800, 91,
- gMonStillFrontPic_Gastly, 0x800, 92,
- gMonStillFrontPic_Haunter, 0x800, 93,
- gMonStillFrontPic_Gengar, 0x800, 94,
- gMonStillFrontPic_Onix, 0x800, 95,
- gMonStillFrontPic_Drowzee, 0x800, 96,
- gMonStillFrontPic_Hypno, 0x800, 97,
- gMonStillFrontPic_Krabby, 0x800, 98,
- gMonStillFrontPic_Kingler, 0x800, 99,
- gMonStillFrontPic_Voltorb, 0x800, 100,
- gMonStillFrontPic_Electrode, 0x800, 101,
- gMonStillFrontPic_Exeggcute, 0x800, 102,
- gMonStillFrontPic_Exeggutor, 0x800, 103,
- gMonStillFrontPic_Cubone, 0x800, 104,
- gMonStillFrontPic_Marowak, 0x800, 105,
- gMonStillFrontPic_Hitmonlee, 0x800, 106,
- gMonStillFrontPic_Hitmonchan, 0x800, 107,
- gMonStillFrontPic_Lickitung, 0x800, 108,
- gMonStillFrontPic_Koffing, 0x800, 109,
- gMonStillFrontPic_Weezing, 0x800, 110,
- gMonStillFrontPic_Rhyhorn, 0x800, 111,
- gMonStillFrontPic_Rhydon, 0x800, 112,
- gMonStillFrontPic_Chansey, 0x800, 113,
- gMonStillFrontPic_Tangela, 0x800, 114,
- gMonStillFrontPic_Kangaskhan, 0x800, 115,
- gMonStillFrontPic_Horsea, 0x800, 116,
- gMonStillFrontPic_Seadra, 0x800, 117,
- gMonStillFrontPic_Goldeen, 0x800, 118,
- gMonStillFrontPic_Seaking, 0x800, 119,
- gMonStillFrontPic_Staryu, 0x800, 120,
- gMonStillFrontPic_Starmie, 0x800, 121,
- gMonStillFrontPic_Mrmime, 0x800, 122,
- gMonStillFrontPic_Scyther, 0x800, 123,
- gMonStillFrontPic_Jynx, 0x800, 124,
- gMonStillFrontPic_Electabuzz, 0x800, 125,
- gMonStillFrontPic_Magmar, 0x800, 126,
- gMonStillFrontPic_Pinsir, 0x800, 127,
- gMonStillFrontPic_Tauros, 0x800, 128,
- gMonStillFrontPic_Magikarp, 0x800, 129,
- gMonStillFrontPic_Gyarados, 0x800, 130,
- gMonStillFrontPic_Lapras, 0x800, 131,
- gMonStillFrontPic_Ditto, 0x800, 132,
- gMonStillFrontPic_Eevee, 0x800, 133,
- gMonStillFrontPic_Vaporeon, 0x800, 134,
- gMonStillFrontPic_Jolteon, 0x800, 135,
- gMonStillFrontPic_Flareon, 0x800, 136,
- gMonStillFrontPic_Porygon, 0x800, 137,
- gMonStillFrontPic_Omanyte, 0x800, 138,
- gMonStillFrontPic_Omastar, 0x800, 139,
- gMonStillFrontPic_Kabuto, 0x800, 140,
- gMonStillFrontPic_Kabutops, 0x800, 141,
- gMonStillFrontPic_Aerodactyl, 0x800, 142,
- gMonStillFrontPic_Snorlax, 0x800, 143,
- gMonStillFrontPic_Articuno, 0x800, 144,
- gMonStillFrontPic_Zapdos, 0x800, 145,
- gMonStillFrontPic_Moltres, 0x800, 146,
- gMonStillFrontPic_Dratini, 0x800, 147,
- gMonStillFrontPic_Dragonair, 0x800, 148,
- gMonStillFrontPic_Dragonite, 0x800, 149,
- gMonStillFrontPic_Mewtwo, 0x800, 150,
- gMonStillFrontPic_Mew, 0x800, 151,
+{
+ STILL_FRONT_PIC(NONE, gMonStillFrontPic_CircledQuestionMark),
+ STILL_FRONT_PIC(BULBASAUR, gMonStillFrontPic_Bulbasaur),
+ STILL_FRONT_PIC(IVYSAUR, gMonStillFrontPic_Ivysaur),
+ STILL_FRONT_PIC(VENUSAUR, gMonStillFrontPic_Venusaur),
+ STILL_FRONT_PIC(CHARMANDER, gMonStillFrontPic_Charmander),
+ STILL_FRONT_PIC(CHARMELEON, gMonStillFrontPic_Charmeleon),
+ STILL_FRONT_PIC(CHARIZARD, gMonStillFrontPic_Charizard),
+ STILL_FRONT_PIC(SQUIRTLE, gMonStillFrontPic_Squirtle),
+ STILL_FRONT_PIC(WARTORTLE, gMonStillFrontPic_Wartortle),
+ STILL_FRONT_PIC(BLASTOISE, gMonStillFrontPic_Blastoise),
+ STILL_FRONT_PIC(CATERPIE, gMonStillFrontPic_Caterpie),
+ STILL_FRONT_PIC(METAPOD, gMonStillFrontPic_Metapod),
+ STILL_FRONT_PIC(BUTTERFREE, gMonStillFrontPic_Butterfree),
+ STILL_FRONT_PIC(WEEDLE, gMonStillFrontPic_Weedle),
+ STILL_FRONT_PIC(KAKUNA, gMonStillFrontPic_Kakuna),
+ STILL_FRONT_PIC(BEEDRILL, gMonStillFrontPic_Beedrill),
+ STILL_FRONT_PIC(PIDGEY, gMonStillFrontPic_Pidgey),
+ STILL_FRONT_PIC(PIDGEOTTO, gMonStillFrontPic_Pidgeotto),
+ STILL_FRONT_PIC(PIDGEOT, gMonStillFrontPic_Pidgeot),
+ STILL_FRONT_PIC(RATTATA, gMonStillFrontPic_Rattata),
+ STILL_FRONT_PIC(RATICATE, gMonStillFrontPic_Raticate),
+ STILL_FRONT_PIC(SPEAROW, gMonStillFrontPic_Spearow),
+ STILL_FRONT_PIC(FEAROW, gMonStillFrontPic_Fearow),
+ STILL_FRONT_PIC(EKANS, gMonStillFrontPic_Ekans),
+ STILL_FRONT_PIC(ARBOK, gMonStillFrontPic_Arbok),
+ STILL_FRONT_PIC(PIKACHU, gMonStillFrontPic_Pikachu),
+ STILL_FRONT_PIC(RAICHU, gMonStillFrontPic_Raichu),
+ STILL_FRONT_PIC(SANDSHREW, gMonStillFrontPic_Sandshrew),
+ STILL_FRONT_PIC(SANDSLASH, gMonStillFrontPic_Sandslash),
+ STILL_FRONT_PIC(NIDORAN_F, gMonStillFrontPic_NidoranF),
+ STILL_FRONT_PIC(NIDORINA, gMonStillFrontPic_Nidorina),
+ STILL_FRONT_PIC(NIDOQUEEN, gMonStillFrontPic_Nidoqueen),
+ STILL_FRONT_PIC(NIDORAN_M, gMonStillFrontPic_NidoranM),
+ STILL_FRONT_PIC(NIDORINO, gMonStillFrontPic_Nidorino),
+ STILL_FRONT_PIC(NIDOKING, gMonStillFrontPic_Nidoking),
+ STILL_FRONT_PIC(CLEFAIRY, gMonStillFrontPic_Clefairy),
+ STILL_FRONT_PIC(CLEFABLE, gMonStillFrontPic_Clefable),
+ STILL_FRONT_PIC(VULPIX, gMonStillFrontPic_Vulpix),
+ STILL_FRONT_PIC(NINETALES, gMonStillFrontPic_Ninetales),
+ STILL_FRONT_PIC(JIGGLYPUFF, gMonStillFrontPic_Jigglypuff),
+ STILL_FRONT_PIC(WIGGLYTUFF, gMonStillFrontPic_Wigglytuff),
+ STILL_FRONT_PIC(ZUBAT, gMonStillFrontPic_Zubat),
+ STILL_FRONT_PIC(GOLBAT, gMonStillFrontPic_Golbat),
+ STILL_FRONT_PIC(ODDISH, gMonStillFrontPic_Oddish),
+ STILL_FRONT_PIC(GLOOM, gMonStillFrontPic_Gloom),
+ STILL_FRONT_PIC(VILEPLUME, gMonStillFrontPic_Vileplume),
+ STILL_FRONT_PIC(PARAS, gMonStillFrontPic_Paras),
+ STILL_FRONT_PIC(PARASECT, gMonStillFrontPic_Parasect),
+ STILL_FRONT_PIC(VENONAT, gMonStillFrontPic_Venonat),
+ STILL_FRONT_PIC(VENOMOTH, gMonStillFrontPic_Venomoth),
+ STILL_FRONT_PIC(DIGLETT, gMonStillFrontPic_Diglett),
+ STILL_FRONT_PIC(DUGTRIO, gMonStillFrontPic_Dugtrio),
+ STILL_FRONT_PIC(MEOWTH, gMonStillFrontPic_Meowth),
+ STILL_FRONT_PIC(PERSIAN, gMonStillFrontPic_Persian),
+ STILL_FRONT_PIC(PSYDUCK, gMonStillFrontPic_Psyduck),
+ STILL_FRONT_PIC(GOLDUCK, gMonStillFrontPic_Golduck),
+ STILL_FRONT_PIC(MANKEY, gMonStillFrontPic_Mankey),
+ STILL_FRONT_PIC(PRIMEAPE, gMonStillFrontPic_Primeape),
+ STILL_FRONT_PIC(GROWLITHE, gMonStillFrontPic_Growlithe),
+ STILL_FRONT_PIC(ARCANINE, gMonStillFrontPic_Arcanine),
+ STILL_FRONT_PIC(POLIWAG, gMonStillFrontPic_Poliwag),
+ STILL_FRONT_PIC(POLIWHIRL, gMonStillFrontPic_Poliwhirl),
+ STILL_FRONT_PIC(POLIWRATH, gMonStillFrontPic_Poliwrath),
+ STILL_FRONT_PIC(ABRA, gMonStillFrontPic_Abra),
+ STILL_FRONT_PIC(KADABRA, gMonStillFrontPic_Kadabra),
+ STILL_FRONT_PIC(ALAKAZAM, gMonStillFrontPic_Alakazam),
+ STILL_FRONT_PIC(MACHOP, gMonStillFrontPic_Machop),
+ STILL_FRONT_PIC(MACHOKE, gMonStillFrontPic_Machoke),
+ STILL_FRONT_PIC(MACHAMP, gMonStillFrontPic_Machamp),
+ STILL_FRONT_PIC(BELLSPROUT, gMonStillFrontPic_Bellsprout),
+ STILL_FRONT_PIC(WEEPINBELL, gMonStillFrontPic_Weepinbell),
+ STILL_FRONT_PIC(VICTREEBEL, gMonStillFrontPic_Victreebel),
+ STILL_FRONT_PIC(TENTACOOL, gMonStillFrontPic_Tentacool),
+ STILL_FRONT_PIC(TENTACRUEL, gMonStillFrontPic_Tentacruel),
+ STILL_FRONT_PIC(GEODUDE, gMonStillFrontPic_Geodude),
+ STILL_FRONT_PIC(GRAVELER, gMonStillFrontPic_Graveler),
+ STILL_FRONT_PIC(GOLEM, gMonStillFrontPic_Golem),
+ STILL_FRONT_PIC(PONYTA, gMonStillFrontPic_Ponyta),
+ STILL_FRONT_PIC(RAPIDASH, gMonStillFrontPic_Rapidash),
+ STILL_FRONT_PIC(SLOWPOKE, gMonStillFrontPic_Slowpoke),
+ STILL_FRONT_PIC(SLOWBRO, gMonStillFrontPic_Slowbro),
+ STILL_FRONT_PIC(MAGNEMITE, gMonStillFrontPic_Magnemite),
+ STILL_FRONT_PIC(MAGNETON, gMonStillFrontPic_Magneton),
+ STILL_FRONT_PIC(FARFETCHD, gMonStillFrontPic_Farfetchd),
+ STILL_FRONT_PIC(DODUO, gMonStillFrontPic_Doduo),
+ STILL_FRONT_PIC(DODRIO, gMonStillFrontPic_Dodrio),
+ STILL_FRONT_PIC(SEEL, gMonStillFrontPic_Seel),
+ STILL_FRONT_PIC(DEWGONG, gMonStillFrontPic_Dewgong),
+ STILL_FRONT_PIC(GRIMER, gMonStillFrontPic_Grimer),
+ STILL_FRONT_PIC(MUK, gMonStillFrontPic_Muk),
+ STILL_FRONT_PIC(SHELLDER, gMonStillFrontPic_Shellder),
+ STILL_FRONT_PIC(CLOYSTER, gMonStillFrontPic_Cloyster),
+ STILL_FRONT_PIC(GASTLY, gMonStillFrontPic_Gastly),
+ STILL_FRONT_PIC(HAUNTER, gMonStillFrontPic_Haunter),
+ STILL_FRONT_PIC(GENGAR, gMonStillFrontPic_Gengar),
+ STILL_FRONT_PIC(ONIX, gMonStillFrontPic_Onix),
+ STILL_FRONT_PIC(DROWZEE, gMonStillFrontPic_Drowzee),
+ STILL_FRONT_PIC(HYPNO, gMonStillFrontPic_Hypno),
+ STILL_FRONT_PIC(KRABBY, gMonStillFrontPic_Krabby),
+ STILL_FRONT_PIC(KINGLER, gMonStillFrontPic_Kingler),
+ STILL_FRONT_PIC(VOLTORB, gMonStillFrontPic_Voltorb),
+ STILL_FRONT_PIC(ELECTRODE, gMonStillFrontPic_Electrode),
+ STILL_FRONT_PIC(EXEGGCUTE, gMonStillFrontPic_Exeggcute),
+ STILL_FRONT_PIC(EXEGGUTOR, gMonStillFrontPic_Exeggutor),
+ STILL_FRONT_PIC(CUBONE, gMonStillFrontPic_Cubone),
+ STILL_FRONT_PIC(MAROWAK, gMonStillFrontPic_Marowak),
+ STILL_FRONT_PIC(HITMONLEE, gMonStillFrontPic_Hitmonlee),
+ STILL_FRONT_PIC(HITMONCHAN, gMonStillFrontPic_Hitmonchan),
+ STILL_FRONT_PIC(LICKITUNG, gMonStillFrontPic_Lickitung),
+ STILL_FRONT_PIC(KOFFING, gMonStillFrontPic_Koffing),
+ STILL_FRONT_PIC(WEEZING, gMonStillFrontPic_Weezing),
+ STILL_FRONT_PIC(RHYHORN, gMonStillFrontPic_Rhyhorn),
+ STILL_FRONT_PIC(RHYDON, gMonStillFrontPic_Rhydon),
+ STILL_FRONT_PIC(CHANSEY, gMonStillFrontPic_Chansey),
+ STILL_FRONT_PIC(TANGELA, gMonStillFrontPic_Tangela),
+ STILL_FRONT_PIC(KANGASKHAN, gMonStillFrontPic_Kangaskhan),
+ STILL_FRONT_PIC(HORSEA, gMonStillFrontPic_Horsea),
+ STILL_FRONT_PIC(SEADRA, gMonStillFrontPic_Seadra),
+ STILL_FRONT_PIC(GOLDEEN, gMonStillFrontPic_Goldeen),
+ STILL_FRONT_PIC(SEAKING, gMonStillFrontPic_Seaking),
+ STILL_FRONT_PIC(STARYU, gMonStillFrontPic_Staryu),
+ STILL_FRONT_PIC(STARMIE, gMonStillFrontPic_Starmie),
+ STILL_FRONT_PIC(MR_MIME, gMonStillFrontPic_Mrmime),
+ STILL_FRONT_PIC(SCYTHER, gMonStillFrontPic_Scyther),
+ STILL_FRONT_PIC(JYNX, gMonStillFrontPic_Jynx),
+ STILL_FRONT_PIC(ELECTABUZZ, gMonStillFrontPic_Electabuzz),
+ STILL_FRONT_PIC(MAGMAR, gMonStillFrontPic_Magmar),
+ STILL_FRONT_PIC(PINSIR, gMonStillFrontPic_Pinsir),
+ STILL_FRONT_PIC(TAUROS, gMonStillFrontPic_Tauros),
+ STILL_FRONT_PIC(MAGIKARP, gMonStillFrontPic_Magikarp),
+ STILL_FRONT_PIC(GYARADOS, gMonStillFrontPic_Gyarados),
+ STILL_FRONT_PIC(LAPRAS, gMonStillFrontPic_Lapras),
+ STILL_FRONT_PIC(DITTO, gMonStillFrontPic_Ditto),
+ STILL_FRONT_PIC(EEVEE, gMonStillFrontPic_Eevee),
+ STILL_FRONT_PIC(VAPOREON, gMonStillFrontPic_Vaporeon),
+ STILL_FRONT_PIC(JOLTEON, gMonStillFrontPic_Jolteon),
+ STILL_FRONT_PIC(FLAREON, gMonStillFrontPic_Flareon),
+ STILL_FRONT_PIC(PORYGON, gMonStillFrontPic_Porygon),
+ STILL_FRONT_PIC(OMANYTE, gMonStillFrontPic_Omanyte),
+ STILL_FRONT_PIC(OMASTAR, gMonStillFrontPic_Omastar),
+ STILL_FRONT_PIC(KABUTO, gMonStillFrontPic_Kabuto),
+ STILL_FRONT_PIC(KABUTOPS, gMonStillFrontPic_Kabutops),
+ STILL_FRONT_PIC(AERODACTYL, gMonStillFrontPic_Aerodactyl),
+ STILL_FRONT_PIC(SNORLAX, gMonStillFrontPic_Snorlax),
+ STILL_FRONT_PIC(ARTICUNO, gMonStillFrontPic_Articuno),
+ STILL_FRONT_PIC(ZAPDOS, gMonStillFrontPic_Zapdos),
+ STILL_FRONT_PIC(MOLTRES, gMonStillFrontPic_Moltres),
+ STILL_FRONT_PIC(DRATINI, gMonStillFrontPic_Dratini),
+ STILL_FRONT_PIC(DRAGONAIR, gMonStillFrontPic_Dragonair),
+ STILL_FRONT_PIC(DRAGONITE, gMonStillFrontPic_Dragonite),
+ STILL_FRONT_PIC(MEWTWO, gMonStillFrontPic_Mewtwo),
+ STILL_FRONT_PIC(MEW, gMonStillFrontPic_Mew),
// Gen II
- gMonStillFrontPic_Chikorita, 0x800, 152,
- gMonStillFrontPic_Bayleef, 0x800, 153,
- gMonStillFrontPic_Meganium, 0x800, 154,
- gMonStillFrontPic_Cyndaquil, 0x800, 155,
- gMonStillFrontPic_Quilava, 0x800, 156,
- gMonStillFrontPic_Typhlosion, 0x800, 157,
- gMonStillFrontPic_Totodile, 0x800, 158,
- gMonStillFrontPic_Croconaw, 0x800, 159,
- gMonStillFrontPic_Feraligatr, 0x800, 160,
- gMonStillFrontPic_Sentret, 0x800, 161,
- gMonStillFrontPic_Furret, 0x800, 162,
- gMonStillFrontPic_Hoothoot, 0x800, 163,
- gMonStillFrontPic_Noctowl, 0x800, 164,
- gMonStillFrontPic_Ledyba, 0x800, 165,
- gMonStillFrontPic_Ledian, 0x800, 166,
- gMonStillFrontPic_Spinarak, 0x800, 167,
- gMonStillFrontPic_Ariados, 0x800, 168,
- gMonStillFrontPic_Crobat, 0x800, 169,
- gMonStillFrontPic_Chinchou, 0x800, 170,
- gMonStillFrontPic_Lanturn, 0x800, 171,
- gMonStillFrontPic_Pichu, 0x800, 172,
- gMonStillFrontPic_Cleffa, 0x800, 173,
- gMonStillFrontPic_Igglybuff, 0x800, 174,
- gMonStillFrontPic_Togepi, 0x800, 175,
- gMonStillFrontPic_Togetic, 0x800, 176,
- gMonStillFrontPic_Natu, 0x800, 177,
- gMonStillFrontPic_Xatu, 0x800, 178,
- gMonStillFrontPic_Mareep, 0x800, 179,
- gMonStillFrontPic_Flaaffy, 0x800, 180,
- gMonStillFrontPic_Ampharos, 0x800, 181,
- gMonStillFrontPic_Bellossom, 0x800, 182,
- gMonStillFrontPic_Marill, 0x800, 183,
- gMonStillFrontPic_Azumarill, 0x800, 184,
- gMonStillFrontPic_Sudowoodo, 0x800, 185,
- gMonStillFrontPic_Politoed, 0x800, 186,
- gMonStillFrontPic_Hoppip, 0x800, 187,
- gMonStillFrontPic_Skiploom, 0x800, 188,
- gMonStillFrontPic_Jumpluff, 0x800, 189,
- gMonStillFrontPic_Aipom, 0x800, 190,
- gMonStillFrontPic_Sunkern, 0x800, 191,
- gMonStillFrontPic_Sunflora, 0x800, 192,
- gMonStillFrontPic_Yanma, 0x800, 193,
- gMonStillFrontPic_Wooper, 0x800, 194,
- gMonStillFrontPic_Quagsire, 0x800, 195,
- gMonStillFrontPic_Espeon, 0x800, 196,
- gMonStillFrontPic_Umbreon, 0x800, 197,
- gMonStillFrontPic_Murkrow, 0x800, 198,
- gMonStillFrontPic_Slowking, 0x800, 199,
- gMonStillFrontPic_Misdreavus, 0x800, 200,
- gMonStillFrontPic_UnownA, 0x800, 201,
- gMonStillFrontPic_Wobbuffet, 0x800, 202,
- gMonStillFrontPic_Girafarig, 0x800, 203,
- gMonStillFrontPic_Pineco, 0x800, 204,
- gMonStillFrontPic_Forretress, 0x800, 205,
- gMonStillFrontPic_Dunsparce, 0x800, 206,
- gMonStillFrontPic_Gligar, 0x800, 207,
- gMonStillFrontPic_Steelix, 0x800, 208,
- gMonStillFrontPic_Snubbull, 0x800, 209,
- gMonStillFrontPic_Granbull, 0x800, 210,
- gMonStillFrontPic_Qwilfish, 0x800, 211,
- gMonStillFrontPic_Scizor, 0x800, 212,
- gMonStillFrontPic_Shuckle, 0x800, 213,
- gMonStillFrontPic_Heracross, 0x800, 214,
- gMonStillFrontPic_Sneasel, 0x800, 215,
- gMonStillFrontPic_Teddiursa, 0x800, 216,
- gMonStillFrontPic_Ursaring, 0x800, 217,
- gMonStillFrontPic_Slugma, 0x800, 218,
- gMonStillFrontPic_Magcargo, 0x800, 219,
- gMonStillFrontPic_Swinub, 0x800, 220,
- gMonStillFrontPic_Piloswine, 0x800, 221,
- gMonStillFrontPic_Corsola, 0x800, 222,
- gMonStillFrontPic_Remoraid, 0x800, 223,
- gMonStillFrontPic_Octillery, 0x800, 224,
- gMonStillFrontPic_Delibird, 0x800, 225,
- gMonStillFrontPic_Mantine, 0x800, 226,
- gMonStillFrontPic_Skarmory, 0x800, 227,
- gMonStillFrontPic_Houndour, 0x800, 228,
- gMonStillFrontPic_Houndoom, 0x800, 229,
- gMonStillFrontPic_Kingdra, 0x800, 230,
- gMonStillFrontPic_Phanpy, 0x800, 231,
- gMonStillFrontPic_Donphan, 0x800, 232,
- gMonStillFrontPic_Porygon2, 0x800, 233,
- gMonStillFrontPic_Stantler, 0x800, 234,
- gMonStillFrontPic_Smeargle, 0x800, 235,
- gMonStillFrontPic_Tyrogue, 0x800, 236,
- gMonStillFrontPic_Hitmontop, 0x800, 237,
- gMonStillFrontPic_Smoochum, 0x800, 238,
- gMonStillFrontPic_Elekid, 0x800, 239,
- gMonStillFrontPic_Magby, 0x800, 240,
- gMonStillFrontPic_Miltank, 0x800, 241,
- gMonStillFrontPic_Blissey, 0x800, 242,
- gMonStillFrontPic_Raikou, 0x800, 243,
- gMonStillFrontPic_Entei, 0x800, 244,
- gMonStillFrontPic_Suicune, 0x800, 245,
- gMonStillFrontPic_Larvitar, 0x800, 246,
- gMonStillFrontPic_Pupitar, 0x800, 247,
- gMonStillFrontPic_Tyranitar, 0x800, 248,
- gMonStillFrontPic_Lugia, 0x800, 249,
- gMonStillFrontPic_HoOh, 0x800, 250,
- gMonStillFrontPic_Celebi, 0x800, 251,
+ STILL_FRONT_PIC(CHIKORITA, gMonStillFrontPic_Chikorita),
+ STILL_FRONT_PIC(BAYLEEF, gMonStillFrontPic_Bayleef),
+ STILL_FRONT_PIC(MEGANIUM, gMonStillFrontPic_Meganium),
+ STILL_FRONT_PIC(CYNDAQUIL, gMonStillFrontPic_Cyndaquil),
+ STILL_FRONT_PIC(QUILAVA, gMonStillFrontPic_Quilava),
+ STILL_FRONT_PIC(TYPHLOSION, gMonStillFrontPic_Typhlosion),
+ STILL_FRONT_PIC(TOTODILE, gMonStillFrontPic_Totodile),
+ STILL_FRONT_PIC(CROCONAW, gMonStillFrontPic_Croconaw),
+ STILL_FRONT_PIC(FERALIGATR, gMonStillFrontPic_Feraligatr),
+ STILL_FRONT_PIC(SENTRET, gMonStillFrontPic_Sentret),
+ STILL_FRONT_PIC(FURRET, gMonStillFrontPic_Furret),
+ STILL_FRONT_PIC(HOOTHOOT, gMonStillFrontPic_Hoothoot),
+ STILL_FRONT_PIC(NOCTOWL, gMonStillFrontPic_Noctowl),
+ STILL_FRONT_PIC(LEDYBA, gMonStillFrontPic_Ledyba),
+ STILL_FRONT_PIC(LEDIAN, gMonStillFrontPic_Ledian),
+ STILL_FRONT_PIC(SPINARAK, gMonStillFrontPic_Spinarak),
+ STILL_FRONT_PIC(ARIADOS, gMonStillFrontPic_Ariados),
+ STILL_FRONT_PIC(CROBAT, gMonStillFrontPic_Crobat),
+ STILL_FRONT_PIC(CHINCHOU, gMonStillFrontPic_Chinchou),
+ STILL_FRONT_PIC(LANTURN, gMonStillFrontPic_Lanturn),
+ STILL_FRONT_PIC(PICHU, gMonStillFrontPic_Pichu),
+ STILL_FRONT_PIC(CLEFFA, gMonStillFrontPic_Cleffa),
+ STILL_FRONT_PIC(IGGLYBUFF, gMonStillFrontPic_Igglybuff),
+ STILL_FRONT_PIC(TOGEPI, gMonStillFrontPic_Togepi),
+ STILL_FRONT_PIC(TOGETIC, gMonStillFrontPic_Togetic),
+ STILL_FRONT_PIC(NATU, gMonStillFrontPic_Natu),
+ STILL_FRONT_PIC(XATU, gMonStillFrontPic_Xatu),
+ STILL_FRONT_PIC(MAREEP, gMonStillFrontPic_Mareep),
+ STILL_FRONT_PIC(FLAAFFY, gMonStillFrontPic_Flaaffy),
+ STILL_FRONT_PIC(AMPHAROS, gMonStillFrontPic_Ampharos),
+ STILL_FRONT_PIC(BELLOSSOM, gMonStillFrontPic_Bellossom),
+ STILL_FRONT_PIC(MARILL, gMonStillFrontPic_Marill),
+ STILL_FRONT_PIC(AZUMARILL, gMonStillFrontPic_Azumarill),
+ STILL_FRONT_PIC(SUDOWOODO, gMonStillFrontPic_Sudowoodo),
+ STILL_FRONT_PIC(POLITOED, gMonStillFrontPic_Politoed),
+ STILL_FRONT_PIC(HOPPIP, gMonStillFrontPic_Hoppip),
+ STILL_FRONT_PIC(SKIPLOOM, gMonStillFrontPic_Skiploom),
+ STILL_FRONT_PIC(JUMPLUFF, gMonStillFrontPic_Jumpluff),
+ STILL_FRONT_PIC(AIPOM, gMonStillFrontPic_Aipom),
+ STILL_FRONT_PIC(SUNKERN, gMonStillFrontPic_Sunkern),
+ STILL_FRONT_PIC(SUNFLORA, gMonStillFrontPic_Sunflora),
+ STILL_FRONT_PIC(YANMA, gMonStillFrontPic_Yanma),
+ STILL_FRONT_PIC(WOOPER, gMonStillFrontPic_Wooper),
+ STILL_FRONT_PIC(QUAGSIRE, gMonStillFrontPic_Quagsire),
+ STILL_FRONT_PIC(ESPEON, gMonStillFrontPic_Espeon),
+ STILL_FRONT_PIC(UMBREON, gMonStillFrontPic_Umbreon),
+ STILL_FRONT_PIC(MURKROW, gMonStillFrontPic_Murkrow),
+ STILL_FRONT_PIC(SLOWKING, gMonStillFrontPic_Slowking),
+ STILL_FRONT_PIC(MISDREAVUS, gMonStillFrontPic_Misdreavus),
+ STILL_FRONT_PIC(UNOWN, gMonStillFrontPic_UnownA),
+ STILL_FRONT_PIC(WOBBUFFET, gMonStillFrontPic_Wobbuffet),
+ STILL_FRONT_PIC(GIRAFARIG, gMonStillFrontPic_Girafarig),
+ STILL_FRONT_PIC(PINECO, gMonStillFrontPic_Pineco),
+ STILL_FRONT_PIC(FORRETRESS, gMonStillFrontPic_Forretress),
+ STILL_FRONT_PIC(DUNSPARCE, gMonStillFrontPic_Dunsparce),
+ STILL_FRONT_PIC(GLIGAR, gMonStillFrontPic_Gligar),
+ STILL_FRONT_PIC(STEELIX, gMonStillFrontPic_Steelix),
+ STILL_FRONT_PIC(SNUBBULL, gMonStillFrontPic_Snubbull),
+ STILL_FRONT_PIC(GRANBULL, gMonStillFrontPic_Granbull),
+ STILL_FRONT_PIC(QWILFISH, gMonStillFrontPic_Qwilfish),
+ STILL_FRONT_PIC(SCIZOR, gMonStillFrontPic_Scizor),
+ STILL_FRONT_PIC(SHUCKLE, gMonStillFrontPic_Shuckle),
+ STILL_FRONT_PIC(HERACROSS, gMonStillFrontPic_Heracross),
+ STILL_FRONT_PIC(SNEASEL, gMonStillFrontPic_Sneasel),
+ STILL_FRONT_PIC(TEDDIURSA, gMonStillFrontPic_Teddiursa),
+ STILL_FRONT_PIC(URSARING, gMonStillFrontPic_Ursaring),
+ STILL_FRONT_PIC(SLUGMA, gMonStillFrontPic_Slugma),
+ STILL_FRONT_PIC(MAGCARGO, gMonStillFrontPic_Magcargo),
+ STILL_FRONT_PIC(SWINUB, gMonStillFrontPic_Swinub),
+ STILL_FRONT_PIC(PILOSWINE, gMonStillFrontPic_Piloswine),
+ STILL_FRONT_PIC(CORSOLA, gMonStillFrontPic_Corsola),
+ STILL_FRONT_PIC(REMORAID, gMonStillFrontPic_Remoraid),
+ STILL_FRONT_PIC(OCTILLERY, gMonStillFrontPic_Octillery),
+ STILL_FRONT_PIC(DELIBIRD, gMonStillFrontPic_Delibird),
+ STILL_FRONT_PIC(MANTINE, gMonStillFrontPic_Mantine),
+ STILL_FRONT_PIC(SKARMORY, gMonStillFrontPic_Skarmory),
+ STILL_FRONT_PIC(HOUNDOUR, gMonStillFrontPic_Houndour),
+ STILL_FRONT_PIC(HOUNDOOM, gMonStillFrontPic_Houndoom),
+ STILL_FRONT_PIC(KINGDRA, gMonStillFrontPic_Kingdra),
+ STILL_FRONT_PIC(PHANPY, gMonStillFrontPic_Phanpy),
+ STILL_FRONT_PIC(DONPHAN, gMonStillFrontPic_Donphan),
+ STILL_FRONT_PIC(PORYGON2, gMonStillFrontPic_Porygon2),
+ STILL_FRONT_PIC(STANTLER, gMonStillFrontPic_Stantler),
+ STILL_FRONT_PIC(SMEARGLE, gMonStillFrontPic_Smeargle),
+ STILL_FRONT_PIC(TYROGUE, gMonStillFrontPic_Tyrogue),
+ STILL_FRONT_PIC(HITMONTOP, gMonStillFrontPic_Hitmontop),
+ STILL_FRONT_PIC(SMOOCHUM, gMonStillFrontPic_Smoochum),
+ STILL_FRONT_PIC(ELEKID, gMonStillFrontPic_Elekid),
+ STILL_FRONT_PIC(MAGBY, gMonStillFrontPic_Magby),
+ STILL_FRONT_PIC(MILTANK, gMonStillFrontPic_Miltank),
+ STILL_FRONT_PIC(BLISSEY, gMonStillFrontPic_Blissey),
+ STILL_FRONT_PIC(RAIKOU, gMonStillFrontPic_Raikou),
+ STILL_FRONT_PIC(ENTEI, gMonStillFrontPic_Entei),
+ STILL_FRONT_PIC(SUICUNE, gMonStillFrontPic_Suicune),
+ STILL_FRONT_PIC(LARVITAR, gMonStillFrontPic_Larvitar),
+ STILL_FRONT_PIC(PUPITAR, gMonStillFrontPic_Pupitar),
+ STILL_FRONT_PIC(TYRANITAR, gMonStillFrontPic_Tyranitar),
+ STILL_FRONT_PIC(LUGIA, gMonStillFrontPic_Lugia),
+ STILL_FRONT_PIC(HO_OH, gMonStillFrontPic_HoOh),
+ STILL_FRONT_PIC(CELEBI, gMonStillFrontPic_Celebi),
// Empty slots
- gMonStillFrontPic_DoubleQuestionMark, 0x800, 252,
- gMonStillFrontPic_DoubleQuestionMark, 0x800, 253,
- gMonStillFrontPic_DoubleQuestionMark, 0x800, 254,
- gMonStillFrontPic_DoubleQuestionMark, 0x800, 255,
- gMonStillFrontPic_DoubleQuestionMark, 0x800, 256,
- gMonStillFrontPic_DoubleQuestionMark, 0x800, 257,
- gMonStillFrontPic_DoubleQuestionMark, 0x800, 258,
- gMonStillFrontPic_DoubleQuestionMark, 0x800, 259,
- gMonStillFrontPic_DoubleQuestionMark, 0x800, 260,
- gMonStillFrontPic_DoubleQuestionMark, 0x800, 261,
- gMonStillFrontPic_DoubleQuestionMark, 0x800, 262,
- gMonStillFrontPic_DoubleQuestionMark, 0x800, 263,
- gMonStillFrontPic_DoubleQuestionMark, 0x800, 264,
- gMonStillFrontPic_DoubleQuestionMark, 0x800, 265,
- gMonStillFrontPic_DoubleQuestionMark, 0x800, 266,
- gMonStillFrontPic_DoubleQuestionMark, 0x800, 267,
- gMonStillFrontPic_DoubleQuestionMark, 0x800, 268,
- gMonStillFrontPic_DoubleQuestionMark, 0x800, 269,
- gMonStillFrontPic_DoubleQuestionMark, 0x800, 270,
- gMonStillFrontPic_DoubleQuestionMark, 0x800, 271,
- gMonStillFrontPic_DoubleQuestionMark, 0x800, 272,
- gMonStillFrontPic_DoubleQuestionMark, 0x800, 273,
- gMonStillFrontPic_DoubleQuestionMark, 0x800, 274,
- gMonStillFrontPic_DoubleQuestionMark, 0x800, 275,
- gMonStillFrontPic_DoubleQuestionMark, 0x800, 276,
+ STILL_FRONT_PIC(OLD_UNOWN_B, gMonStillFrontPic_DoubleQuestionMark),
+ STILL_FRONT_PIC(OLD_UNOWN_C, gMonStillFrontPic_DoubleQuestionMark),
+ STILL_FRONT_PIC(OLD_UNOWN_D, gMonStillFrontPic_DoubleQuestionMark),
+ STILL_FRONT_PIC(OLD_UNOWN_E, gMonStillFrontPic_DoubleQuestionMark),
+ STILL_FRONT_PIC(OLD_UNOWN_F, gMonStillFrontPic_DoubleQuestionMark),
+ STILL_FRONT_PIC(OLD_UNOWN_G, gMonStillFrontPic_DoubleQuestionMark),
+ STILL_FRONT_PIC(OLD_UNOWN_H, gMonStillFrontPic_DoubleQuestionMark),
+ STILL_FRONT_PIC(OLD_UNOWN_I, gMonStillFrontPic_DoubleQuestionMark),
+ STILL_FRONT_PIC(OLD_UNOWN_J, gMonStillFrontPic_DoubleQuestionMark),
+ STILL_FRONT_PIC(OLD_UNOWN_K, gMonStillFrontPic_DoubleQuestionMark),
+ STILL_FRONT_PIC(OLD_UNOWN_L, gMonStillFrontPic_DoubleQuestionMark),
+ STILL_FRONT_PIC(OLD_UNOWN_M, gMonStillFrontPic_DoubleQuestionMark),
+ STILL_FRONT_PIC(OLD_UNOWN_N, gMonStillFrontPic_DoubleQuestionMark),
+ STILL_FRONT_PIC(OLD_UNOWN_O, gMonStillFrontPic_DoubleQuestionMark),
+ STILL_FRONT_PIC(OLD_UNOWN_P, gMonStillFrontPic_DoubleQuestionMark),
+ STILL_FRONT_PIC(OLD_UNOWN_Q, gMonStillFrontPic_DoubleQuestionMark),
+ STILL_FRONT_PIC(OLD_UNOWN_R, gMonStillFrontPic_DoubleQuestionMark),
+ STILL_FRONT_PIC(OLD_UNOWN_S, gMonStillFrontPic_DoubleQuestionMark),
+ STILL_FRONT_PIC(OLD_UNOWN_T, gMonStillFrontPic_DoubleQuestionMark),
+ STILL_FRONT_PIC(OLD_UNOWN_U, gMonStillFrontPic_DoubleQuestionMark),
+ STILL_FRONT_PIC(OLD_UNOWN_V, gMonStillFrontPic_DoubleQuestionMark),
+ STILL_FRONT_PIC(OLD_UNOWN_W, gMonStillFrontPic_DoubleQuestionMark),
+ STILL_FRONT_PIC(OLD_UNOWN_X, gMonStillFrontPic_DoubleQuestionMark),
+ STILL_FRONT_PIC(OLD_UNOWN_Y, gMonStillFrontPic_DoubleQuestionMark),
+ STILL_FRONT_PIC(OLD_UNOWN_Z, gMonStillFrontPic_DoubleQuestionMark),
// Gen III
- gMonStillFrontPic_Treecko, 0x800, 277,
- gMonStillFrontPic_Grovyle, 0x800, 278,
- gMonStillFrontPic_Sceptile, 0x800, 279,
- gMonStillFrontPic_Torchic, 0x800, 280,
- gMonStillFrontPic_Combusken, 0x800, 281,
- gMonStillFrontPic_Blaziken, 0x800, 282,
- gMonStillFrontPic_Mudkip, 0x800, 283,
- gMonStillFrontPic_Marshtomp, 0x800, 284,
- gMonStillFrontPic_Swampert, 0x800, 285,
- gMonStillFrontPic_Poochyena, 0x800, 286,
- gMonStillFrontPic_Mightyena, 0x800, 287,
- gMonStillFrontPic_Zigzagoon, 0x800, 288,
- gMonStillFrontPic_Linoone, 0x800, 289,
- gMonStillFrontPic_Wurmple, 0x800, 290,
- gMonStillFrontPic_Silcoon, 0x800, 291,
- gMonStillFrontPic_Beautifly, 0x800, 292,
- gMonStillFrontPic_Cascoon, 0x800, 293,
- gMonStillFrontPic_Dustox, 0x800, 294,
- gMonStillFrontPic_Lotad, 0x800, 295,
- gMonStillFrontPic_Lombre, 0x800, 296,
- gMonStillFrontPic_Ludicolo, 0x800, 297,
- gMonStillFrontPic_Seedot, 0x800, 298,
- gMonStillFrontPic_Nuzleaf, 0x800, 299,
- gMonStillFrontPic_Shiftry, 0x800, 300,
- gMonStillFrontPic_Nincada, 0x800, 301,
- gMonStillFrontPic_Ninjask, 0x800, 302,
- gMonStillFrontPic_Shedinja, 0x800, 303,
- gMonStillFrontPic_Taillow, 0x800, 304,
- gMonStillFrontPic_Swellow, 0x800, 305,
- gMonStillFrontPic_Shroomish, 0x800, 306,
- gMonStillFrontPic_Breloom, 0x800, 307,
- gMonStillFrontPic_Spinda, 0x800, 308,
- gMonStillFrontPic_Wingull, 0x800, 309,
- gMonStillFrontPic_Pelipper, 0x800, 310,
- gMonStillFrontPic_Surskit, 0x800, 311,
- gMonStillFrontPic_Masquerain, 0x800, 312,
- gMonStillFrontPic_Wailmer, 0x800, 313,
- gMonStillFrontPic_Wailord, 0x800, 314,
- gMonStillFrontPic_Skitty, 0x800, 315,
- gMonStillFrontPic_Delcatty, 0x800, 316,
- gMonStillFrontPic_Kecleon, 0x800, 317,
- gMonStillFrontPic_Baltoy, 0x800, 318,
- gMonStillFrontPic_Claydol, 0x800, 319,
- gMonStillFrontPic_Nosepass, 0x800, 320,
- gMonStillFrontPic_Torkoal, 0x800, 321,
- gMonStillFrontPic_Sableye, 0x800, 322,
- gMonStillFrontPic_Barboach, 0x800, 323,
- gMonStillFrontPic_Whiscash, 0x800, 324,
- gMonStillFrontPic_Luvdisc, 0x800, 325,
- gMonStillFrontPic_Corphish, 0x800, 326,
- gMonStillFrontPic_Crawdaunt, 0x800, 327,
- gMonStillFrontPic_Feebas, 0x800, 328,
- gMonStillFrontPic_Milotic, 0x800, 329,
- gMonStillFrontPic_Carvanha, 0x800, 330,
- gMonStillFrontPic_Sharpedo, 0x800, 331,
- gMonStillFrontPic_Trapinch, 0x800, 332,
- gMonStillFrontPic_Vibrava, 0x800, 333,
- gMonStillFrontPic_Flygon, 0x800, 334,
- gMonStillFrontPic_Makuhita, 0x800, 335,
- gMonStillFrontPic_Hariyama, 0x800, 336,
- gMonStillFrontPic_Electrike, 0x800, 337,
- gMonStillFrontPic_Manectric, 0x800, 338,
- gMonStillFrontPic_Numel, 0x800, 339,
- gMonStillFrontPic_Camerupt, 0x800, 340,
- gMonStillFrontPic_Spheal, 0x800, 341,
- gMonStillFrontPic_Sealeo, 0x800, 342,
- gMonStillFrontPic_Walrein, 0x800, 343,
- gMonStillFrontPic_Cacnea, 0x800, 344,
- gMonStillFrontPic_Cacturne, 0x800, 345,
- gMonStillFrontPic_Snorunt, 0x800, 346,
- gMonStillFrontPic_Glalie, 0x800, 347,
- gMonStillFrontPic_Lunatone, 0x800, 348,
- gMonStillFrontPic_Solrock, 0x800, 349,
- gMonStillFrontPic_Azurill, 0x800, 350,
- gMonStillFrontPic_Spoink, 0x800, 351,
- gMonStillFrontPic_Grumpig, 0x800, 352,
- gMonStillFrontPic_Plusle, 0x800, 353,
- gMonStillFrontPic_Minun, 0x800, 354,
- gMonStillFrontPic_Mawile, 0x800, 355,
- gMonStillFrontPic_Meditite, 0x800, 356,
- gMonStillFrontPic_Medicham, 0x800, 357,
- gMonStillFrontPic_Swablu, 0x800, 358,
- gMonStillFrontPic_Altaria, 0x800, 359,
- gMonStillFrontPic_Wynaut, 0x800, 360,
- gMonStillFrontPic_Duskull, 0x800, 361,
- gMonStillFrontPic_Dusclops, 0x800, 362,
- gMonStillFrontPic_Roselia, 0x800, 363,
- gMonStillFrontPic_Slakoth, 0x800, 364,
- gMonStillFrontPic_Vigoroth, 0x800, 365,
- gMonStillFrontPic_Slaking, 0x800, 366,
- gMonStillFrontPic_Gulpin, 0x800, 367,
- gMonStillFrontPic_Swalot, 0x800, 368,
- gMonStillFrontPic_Tropius, 0x800, 369,
- gMonStillFrontPic_Whismur, 0x800, 370,
- gMonStillFrontPic_Loudred, 0x800, 371,
- gMonStillFrontPic_Exploud, 0x800, 372,
- gMonStillFrontPic_Clamperl, 0x800, 373,
- gMonStillFrontPic_Huntail, 0x800, 374,
- gMonStillFrontPic_Gorebyss, 0x800, 375,
- gMonStillFrontPic_Absol, 0x800, 376,
- gMonStillFrontPic_Shuppet, 0x800, 377,
- gMonStillFrontPic_Banette, 0x800, 378,
- gMonStillFrontPic_Seviper, 0x800, 379,
- gMonStillFrontPic_Zangoose, 0x800, 380,
- gMonStillFrontPic_Relicanth, 0x800, 381,
- gMonStillFrontPic_Aron, 0x800, 382,
- gMonStillFrontPic_Lairon, 0x800, 383,
- gMonStillFrontPic_Aggron, 0x800, 384,
- gMonStillFrontPic_Castform, 0x800, 385,
- gMonStillFrontPic_Volbeat, 0x800, 386,
- gMonStillFrontPic_Illumise, 0x800, 387,
- gMonStillFrontPic_Lileep, 0x800, 388,
- gMonStillFrontPic_Cradily, 0x800, 389,
- gMonStillFrontPic_Anorith, 0x800, 390,
- gMonStillFrontPic_Armaldo, 0x800, 391,
- gMonStillFrontPic_Ralts, 0x800, 392,
- gMonStillFrontPic_Kirlia, 0x800, 393,
- gMonStillFrontPic_Gardevoir, 0x800, 394,
- gMonStillFrontPic_Bagon, 0x800, 395,
- gMonStillFrontPic_Shelgon, 0x800, 396,
- gMonStillFrontPic_Salamence, 0x800, 397,
- gMonStillFrontPic_Beldum, 0x800, 398,
- gMonStillFrontPic_Metang, 0x800, 399,
- gMonStillFrontPic_Metagross, 0x800, 400,
- gMonStillFrontPic_Regirock, 0x800, 401,
- gMonStillFrontPic_Regice, 0x800, 402,
- gMonStillFrontPic_Registeel, 0x800, 403,
- gMonStillFrontPic_Kyogre, 0x800, 404,
- gMonStillFrontPic_Groudon, 0x800, 405,
- gMonStillFrontPic_Rayquaza, 0x800, 406,
- gMonStillFrontPic_Latias, 0x800, 407,
- gMonStillFrontPic_Latios, 0x800, 408,
- gMonStillFrontPic_Jirachi, 0x800, 409,
- gMonStillFrontPic_Deoxys, 0x800, 410,
- gMonStillFrontPic_Chimecho, 0x800, 411,
- gMonStillFrontPic_Egg, 0x800, 412,
- gMonStillFrontPic_UnownB, 0x800, 413,
- gMonStillFrontPic_UnownC, 0x800, 414,
- gMonStillFrontPic_UnownD, 0x800, 415,
- gMonStillFrontPic_UnownE, 0x800, 416,
- gMonStillFrontPic_UnownF, 0x800, 417,
- gMonStillFrontPic_UnownG, 0x800, 418,
- gMonStillFrontPic_UnownH, 0x800, 419,
- gMonStillFrontPic_UnownI, 0x800, 420,
- gMonStillFrontPic_UnownJ, 0x800, 421,
- gMonStillFrontPic_UnownK, 0x800, 422,
- gMonStillFrontPic_UnownL, 0x800, 423,
- gMonStillFrontPic_UnownM, 0x800, 424,
- gMonStillFrontPic_UnownN, 0x800, 425,
- gMonStillFrontPic_UnownO, 0x800, 426,
- gMonStillFrontPic_UnownP, 0x800, 427,
- gMonStillFrontPic_UnownQ, 0x800, 428,
- gMonStillFrontPic_UnownR, 0x800, 429,
- gMonStillFrontPic_UnownS, 0x800, 430,
- gMonStillFrontPic_UnownT, 0x800, 431,
- gMonStillFrontPic_UnownU, 0x800, 432,
- gMonStillFrontPic_UnownV, 0x800, 433,
- gMonStillFrontPic_UnownW, 0x800, 434,
- gMonStillFrontPic_UnownX, 0x800, 435,
- gMonStillFrontPic_UnownY, 0x800, 436,
- gMonStillFrontPic_UnownZ, 0x800, 437,
- gMonStillFrontPic_UnownExclamationMark, 0x800, 438,
- gMonStillFrontPic_UnownQuestionMark, 0x800, 439,
+ STILL_FRONT_PIC(TREECKO, gMonStillFrontPic_Treecko),
+ STILL_FRONT_PIC(GROVYLE, gMonStillFrontPic_Grovyle),
+ STILL_FRONT_PIC(SCEPTILE, gMonStillFrontPic_Sceptile),
+ STILL_FRONT_PIC(TORCHIC, gMonStillFrontPic_Torchic),
+ STILL_FRONT_PIC(COMBUSKEN, gMonStillFrontPic_Combusken),
+ STILL_FRONT_PIC(BLAZIKEN, gMonStillFrontPic_Blaziken),
+ STILL_FRONT_PIC(MUDKIP, gMonStillFrontPic_Mudkip),
+ STILL_FRONT_PIC(MARSHTOMP, gMonStillFrontPic_Marshtomp),
+ STILL_FRONT_PIC(SWAMPERT, gMonStillFrontPic_Swampert),
+ STILL_FRONT_PIC(POOCHYENA, gMonStillFrontPic_Poochyena),
+ STILL_FRONT_PIC(MIGHTYENA, gMonStillFrontPic_Mightyena),
+ STILL_FRONT_PIC(ZIGZAGOON, gMonStillFrontPic_Zigzagoon),
+ STILL_FRONT_PIC(LINOONE, gMonStillFrontPic_Linoone),
+ STILL_FRONT_PIC(WURMPLE, gMonStillFrontPic_Wurmple),
+ STILL_FRONT_PIC(SILCOON, gMonStillFrontPic_Silcoon),
+ STILL_FRONT_PIC(BEAUTIFLY, gMonStillFrontPic_Beautifly),
+ STILL_FRONT_PIC(CASCOON, gMonStillFrontPic_Cascoon),
+ STILL_FRONT_PIC(DUSTOX, gMonStillFrontPic_Dustox),
+ STILL_FRONT_PIC(LOTAD, gMonStillFrontPic_Lotad),
+ STILL_FRONT_PIC(LOMBRE, gMonStillFrontPic_Lombre),
+ STILL_FRONT_PIC(LUDICOLO, gMonStillFrontPic_Ludicolo),
+ STILL_FRONT_PIC(SEEDOT, gMonStillFrontPic_Seedot),
+ STILL_FRONT_PIC(NUZLEAF, gMonStillFrontPic_Nuzleaf),
+ STILL_FRONT_PIC(SHIFTRY, gMonStillFrontPic_Shiftry),
+ STILL_FRONT_PIC(NINCADA, gMonStillFrontPic_Nincada),
+ STILL_FRONT_PIC(NINJASK, gMonStillFrontPic_Ninjask),
+ STILL_FRONT_PIC(SHEDINJA, gMonStillFrontPic_Shedinja),
+ STILL_FRONT_PIC(TAILLOW, gMonStillFrontPic_Taillow),
+ STILL_FRONT_PIC(SWELLOW, gMonStillFrontPic_Swellow),
+ STILL_FRONT_PIC(SHROOMISH, gMonStillFrontPic_Shroomish),
+ STILL_FRONT_PIC(BRELOOM, gMonStillFrontPic_Breloom),
+ STILL_FRONT_PIC(SPINDA, gMonStillFrontPic_Spinda),
+ STILL_FRONT_PIC(WINGULL, gMonStillFrontPic_Wingull),
+ STILL_FRONT_PIC(PELIPPER, gMonStillFrontPic_Pelipper),
+ STILL_FRONT_PIC(SURSKIT, gMonStillFrontPic_Surskit),
+ STILL_FRONT_PIC(MASQUERAIN, gMonStillFrontPic_Masquerain),
+ STILL_FRONT_PIC(WAILMER, gMonStillFrontPic_Wailmer),
+ STILL_FRONT_PIC(WAILORD, gMonStillFrontPic_Wailord),
+ STILL_FRONT_PIC(SKITTY, gMonStillFrontPic_Skitty),
+ STILL_FRONT_PIC(DELCATTY, gMonStillFrontPic_Delcatty),
+ STILL_FRONT_PIC(KECLEON, gMonStillFrontPic_Kecleon),
+ STILL_FRONT_PIC(BALTOY, gMonStillFrontPic_Baltoy),
+ STILL_FRONT_PIC(CLAYDOL, gMonStillFrontPic_Claydol),
+ STILL_FRONT_PIC(NOSEPASS, gMonStillFrontPic_Nosepass),
+ STILL_FRONT_PIC(TORKOAL, gMonStillFrontPic_Torkoal),
+ STILL_FRONT_PIC(SABLEYE, gMonStillFrontPic_Sableye),
+ STILL_FRONT_PIC(BARBOACH, gMonStillFrontPic_Barboach),
+ STILL_FRONT_PIC(WHISCASH, gMonStillFrontPic_Whiscash),
+ STILL_FRONT_PIC(LUVDISC, gMonStillFrontPic_Luvdisc),
+ STILL_FRONT_PIC(CORPHISH, gMonStillFrontPic_Corphish),
+ STILL_FRONT_PIC(CRAWDAUNT, gMonStillFrontPic_Crawdaunt),
+ STILL_FRONT_PIC(FEEBAS, gMonStillFrontPic_Feebas),
+ STILL_FRONT_PIC(MILOTIC, gMonStillFrontPic_Milotic),
+ STILL_FRONT_PIC(CARVANHA, gMonStillFrontPic_Carvanha),
+ STILL_FRONT_PIC(SHARPEDO, gMonStillFrontPic_Sharpedo),
+ STILL_FRONT_PIC(TRAPINCH, gMonStillFrontPic_Trapinch),
+ STILL_FRONT_PIC(VIBRAVA, gMonStillFrontPic_Vibrava),
+ STILL_FRONT_PIC(FLYGON, gMonStillFrontPic_Flygon),
+ STILL_FRONT_PIC(MAKUHITA, gMonStillFrontPic_Makuhita),
+ STILL_FRONT_PIC(HARIYAMA, gMonStillFrontPic_Hariyama),
+ STILL_FRONT_PIC(ELECTRIKE, gMonStillFrontPic_Electrike),
+ STILL_FRONT_PIC(MANECTRIC, gMonStillFrontPic_Manectric),
+ STILL_FRONT_PIC(NUMEL, gMonStillFrontPic_Numel),
+ STILL_FRONT_PIC(CAMERUPT, gMonStillFrontPic_Camerupt),
+ STILL_FRONT_PIC(SPHEAL, gMonStillFrontPic_Spheal),
+ STILL_FRONT_PIC(SEALEO, gMonStillFrontPic_Sealeo),
+ STILL_FRONT_PIC(WALREIN, gMonStillFrontPic_Walrein),
+ STILL_FRONT_PIC(CACNEA, gMonStillFrontPic_Cacnea),
+ STILL_FRONT_PIC(CACTURNE, gMonStillFrontPic_Cacturne),
+ STILL_FRONT_PIC(SNORUNT, gMonStillFrontPic_Snorunt),
+ STILL_FRONT_PIC(GLALIE, gMonStillFrontPic_Glalie),
+ STILL_FRONT_PIC(LUNATONE, gMonStillFrontPic_Lunatone),
+ STILL_FRONT_PIC(SOLROCK, gMonStillFrontPic_Solrock),
+ STILL_FRONT_PIC(AZURILL, gMonStillFrontPic_Azurill),
+ STILL_FRONT_PIC(SPOINK, gMonStillFrontPic_Spoink),
+ STILL_FRONT_PIC(GRUMPIG, gMonStillFrontPic_Grumpig),
+ STILL_FRONT_PIC(PLUSLE, gMonStillFrontPic_Plusle),
+ STILL_FRONT_PIC(MINUN, gMonStillFrontPic_Minun),
+ STILL_FRONT_PIC(MAWILE, gMonStillFrontPic_Mawile),
+ STILL_FRONT_PIC(MEDITITE, gMonStillFrontPic_Meditite),
+ STILL_FRONT_PIC(MEDICHAM, gMonStillFrontPic_Medicham),
+ STILL_FRONT_PIC(SWABLU, gMonStillFrontPic_Swablu),
+ STILL_FRONT_PIC(ALTARIA, gMonStillFrontPic_Altaria),
+ STILL_FRONT_PIC(WYNAUT, gMonStillFrontPic_Wynaut),
+ STILL_FRONT_PIC(DUSKULL, gMonStillFrontPic_Duskull),
+ STILL_FRONT_PIC(DUSCLOPS, gMonStillFrontPic_Dusclops),
+ STILL_FRONT_PIC(ROSELIA, gMonStillFrontPic_Roselia),
+ STILL_FRONT_PIC(SLAKOTH, gMonStillFrontPic_Slakoth),
+ STILL_FRONT_PIC(VIGOROTH, gMonStillFrontPic_Vigoroth),
+ STILL_FRONT_PIC(SLAKING, gMonStillFrontPic_Slaking),
+ STILL_FRONT_PIC(GULPIN, gMonStillFrontPic_Gulpin),
+ STILL_FRONT_PIC(SWALOT, gMonStillFrontPic_Swalot),
+ STILL_FRONT_PIC(TROPIUS, gMonStillFrontPic_Tropius),
+ STILL_FRONT_PIC(WHISMUR, gMonStillFrontPic_Whismur),
+ STILL_FRONT_PIC(LOUDRED, gMonStillFrontPic_Loudred),
+ STILL_FRONT_PIC(EXPLOUD, gMonStillFrontPic_Exploud),
+ STILL_FRONT_PIC(CLAMPERL, gMonStillFrontPic_Clamperl),
+ STILL_FRONT_PIC(HUNTAIL, gMonStillFrontPic_Huntail),
+ STILL_FRONT_PIC(GOREBYSS, gMonStillFrontPic_Gorebyss),
+ STILL_FRONT_PIC(ABSOL, gMonStillFrontPic_Absol),
+ STILL_FRONT_PIC(SHUPPET, gMonStillFrontPic_Shuppet),
+ STILL_FRONT_PIC(BANETTE, gMonStillFrontPic_Banette),
+ STILL_FRONT_PIC(SEVIPER, gMonStillFrontPic_Seviper),
+ STILL_FRONT_PIC(ZANGOOSE, gMonStillFrontPic_Zangoose),
+ STILL_FRONT_PIC(RELICANTH, gMonStillFrontPic_Relicanth),
+ STILL_FRONT_PIC(ARON, gMonStillFrontPic_Aron),
+ STILL_FRONT_PIC(LAIRON, gMonStillFrontPic_Lairon),
+ STILL_FRONT_PIC(AGGRON, gMonStillFrontPic_Aggron),
+ STILL_FRONT_PIC(CASTFORM, gMonStillFrontPic_Castform),
+ STILL_FRONT_PIC(VOLBEAT, gMonStillFrontPic_Volbeat),
+ STILL_FRONT_PIC(ILLUMISE, gMonStillFrontPic_Illumise),
+ STILL_FRONT_PIC(LILEEP, gMonStillFrontPic_Lileep),
+ STILL_FRONT_PIC(CRADILY, gMonStillFrontPic_Cradily),
+ STILL_FRONT_PIC(ANORITH, gMonStillFrontPic_Anorith),
+ STILL_FRONT_PIC(ARMALDO, gMonStillFrontPic_Armaldo),
+ STILL_FRONT_PIC(RALTS, gMonStillFrontPic_Ralts),
+ STILL_FRONT_PIC(KIRLIA, gMonStillFrontPic_Kirlia),
+ STILL_FRONT_PIC(GARDEVOIR, gMonStillFrontPic_Gardevoir),
+ STILL_FRONT_PIC(BAGON, gMonStillFrontPic_Bagon),
+ STILL_FRONT_PIC(SHELGON, gMonStillFrontPic_Shelgon),
+ STILL_FRONT_PIC(SALAMENCE, gMonStillFrontPic_Salamence),
+ STILL_FRONT_PIC(BELDUM, gMonStillFrontPic_Beldum),
+ STILL_FRONT_PIC(METANG, gMonStillFrontPic_Metang),
+ STILL_FRONT_PIC(METAGROSS, gMonStillFrontPic_Metagross),
+ STILL_FRONT_PIC(REGIROCK, gMonStillFrontPic_Regirock),
+ STILL_FRONT_PIC(REGICE, gMonStillFrontPic_Regice),
+ STILL_FRONT_PIC(REGISTEEL, gMonStillFrontPic_Registeel),
+ STILL_FRONT_PIC(KYOGRE, gMonStillFrontPic_Kyogre),
+ STILL_FRONT_PIC(GROUDON, gMonStillFrontPic_Groudon),
+ STILL_FRONT_PIC(RAYQUAZA, gMonStillFrontPic_Rayquaza),
+ STILL_FRONT_PIC(LATIAS, gMonStillFrontPic_Latias),
+ STILL_FRONT_PIC(LATIOS, gMonStillFrontPic_Latios),
+ STILL_FRONT_PIC(JIRACHI, gMonStillFrontPic_Jirachi),
+ STILL_FRONT_PIC(DEOXYS, gMonStillFrontPic_Deoxys),
+ STILL_FRONT_PIC(CHIMECHO, gMonStillFrontPic_Chimecho),
+ STILL_FRONT_PIC(EGG, gMonStillFrontPic_Egg),
+ STILL_FRONT_PIC(UNOWN_B, gMonStillFrontPic_UnownB),
+ STILL_FRONT_PIC(UNOWN_C, gMonStillFrontPic_UnownC),
+ STILL_FRONT_PIC(UNOWN_D, gMonStillFrontPic_UnownD),
+ STILL_FRONT_PIC(UNOWN_E, gMonStillFrontPic_UnownE),
+ STILL_FRONT_PIC(UNOWN_F, gMonStillFrontPic_UnownF),
+ STILL_FRONT_PIC(UNOWN_G, gMonStillFrontPic_UnownG),
+ STILL_FRONT_PIC(UNOWN_H, gMonStillFrontPic_UnownH),
+ STILL_FRONT_PIC(UNOWN_I, gMonStillFrontPic_UnownI),
+ STILL_FRONT_PIC(UNOWN_J, gMonStillFrontPic_UnownJ),
+ STILL_FRONT_PIC(UNOWN_K, gMonStillFrontPic_UnownK),
+ STILL_FRONT_PIC(UNOWN_L, gMonStillFrontPic_UnownL),
+ STILL_FRONT_PIC(UNOWN_M, gMonStillFrontPic_UnownM),
+ STILL_FRONT_PIC(UNOWN_N, gMonStillFrontPic_UnownN),
+ STILL_FRONT_PIC(UNOWN_O, gMonStillFrontPic_UnownO),
+ STILL_FRONT_PIC(UNOWN_P, gMonStillFrontPic_UnownP),
+ STILL_FRONT_PIC(UNOWN_Q, gMonStillFrontPic_UnownQ),
+ STILL_FRONT_PIC(UNOWN_R, gMonStillFrontPic_UnownR),
+ STILL_FRONT_PIC(UNOWN_S, gMonStillFrontPic_UnownS),
+ STILL_FRONT_PIC(UNOWN_T, gMonStillFrontPic_UnownT),
+ STILL_FRONT_PIC(UNOWN_U, gMonStillFrontPic_UnownU),
+ STILL_FRONT_PIC(UNOWN_V, gMonStillFrontPic_UnownV),
+ STILL_FRONT_PIC(UNOWN_W, gMonStillFrontPic_UnownW),
+ STILL_FRONT_PIC(UNOWN_X, gMonStillFrontPic_UnownX),
+ STILL_FRONT_PIC(UNOWN_Y, gMonStillFrontPic_UnownY),
+ STILL_FRONT_PIC(UNOWN_Z, gMonStillFrontPic_UnownZ),
+ STILL_FRONT_PIC(UNOWN_EMARK, gMonStillFrontPic_UnownExclamationMark),
+ STILL_FRONT_PIC(UNOWN_QMARK, gMonStillFrontPic_UnownQuestionMark),
};
diff --git a/src/event_object_movement.c b/src/event_object_movement.c
index ef125e564..ffa8f53c9 100644
--- a/src/event_object_movement.c
+++ b/src/event_object_movement.c
@@ -1144,7 +1144,7 @@ u8 GetFirstInactiveEventObjectId(void)
u8 GetEventObjectIdByLocalIdAndMap(u8 localId, u8 mapNum, u8 mapGroupId)
{
- if (localId < 0xFF)
+ if (localId < EVENT_OBJ_ID_PLAYER)
{
return GetEventObjectIdByLocalIdAndMapInternal(localId, mapNum, mapGroupId);
}
diff --git a/src/field_specials.c b/src/field_specials.c
index 3a50e272e..3f945fcfb 100644
--- a/src/field_specials.c
+++ b/src/field_specials.c
@@ -1279,17 +1279,17 @@ void IsGrassTypeInParty(void)
gSpecialVar_Result = FALSE;
}
-void SpawnScriptEventObject(void)
+void SpawnCameraObject(void)
{
- u8 obj = SpawnSpecialEventObjectParameterized(EVENT_OBJ_GFX_BOY_1, 8, 0x7F, gSaveBlock1Ptr->pos.x + 7, gSaveBlock1Ptr->pos.y + 7, 3);
+ u8 obj = SpawnSpecialEventObjectParameterized(EVENT_OBJ_GFX_BOY_1, 8, EVENT_OBJ_ID_CAMERA, gSaveBlock1Ptr->pos.x + 7, gSaveBlock1Ptr->pos.y + 7, 3);
gEventObjects[obj].invisible = TRUE;
CameraObjectSetFollowedObjectId(gEventObjects[obj].spriteId);
}
-void RemoveScriptEventObject(void)
+void RemoveCameraObject(void)
{
CameraObjectSetFollowedObjectId(GetPlayerAvatarObjectId());
- RemoveEventObjectByLocalIdAndMap(0x7F, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup);
+ RemoveEventObjectByLocalIdAndMap(EVENT_OBJ_ID_CAMERA, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup);
}
u8 GetPokeblockNameByMonNature(void)
diff --git a/src/graphics.c b/src/graphics.c
index b2de074bc..c0deb2883 100644
--- a/src/graphics.c
+++ b/src/graphics.c
@@ -897,9 +897,9 @@ const u32 gBattleStatMask6_Pal[] = INCBIN_U32("graphics/battle_anims/masks/stat6
const u32 gBattleStatMask7_Pal[] = INCBIN_U32("graphics/battle_anims/masks/stat7.gbapal.lz");
const u32 gBattleStatMask8_Pal[] = INCBIN_U32("graphics/battle_anims/masks/stat8.gbapal.lz");
-const u32 gUnknown_08C2DC68[] = INCBIN_U32("graphics/battle_anims/masks/cure_bubbles.4bpp.lz");
-const u32 gUnknown_08C2DDA4[] = INCBIN_U32("graphics/battle_anims/masks/cure_bubbles.gbapal.lz");
-const u32 gUnknown_08C2DDC4[] = INCBIN_U32("graphics/battle_anims/masks/cure_bubbles.bin.lz");
+const u8 gUnknown_08C2DC68[] = INCBIN_U8("graphics/battle_anims/masks/cure_bubbles.4bpp.lz");
+const u16 gUnknown_08C2DDA4[] = INCBIN_U16("graphics/battle_anims/masks/cure_bubbles.gbapal.lz");
+const u8 gUnknown_08C2DDC4[] = INCBIN_U8("graphics/battle_anims/masks/cure_bubbles.bin.lz");
const u32 gBattleAnimSpritePalette_245[] = INCBIN_U32("graphics/battle_anims/sprites/245.gbapal.lz");
const u32 gBattleAnimSpriteSheet_245[] = INCBIN_U32("graphics/battle_anims/sprites/245.4bpp.lz");
diff --git a/src/hall_of_fame.c b/src/hall_of_fame.c
index ad5673036..f7792e935 100644
--- a/src/hall_of_fame.c
+++ b/src/hall_of_fame.c
@@ -497,7 +497,7 @@ static void Task_Hof_InitTeamSaveData(u8 taskId)
for (i = 0; i < HALL_OF_FAME_MAX_TEAMS; i++, lastSavedTeam++)
{
- if (lastSavedTeam->mon[0].species == 0)
+ if (lastSavedTeam->mon[0].species == SPECIES_NONE)
break;
}
if (i >= HALL_OF_FAME_MAX_TEAMS)
diff --git a/src/pokemon.c b/src/pokemon.c
index 14b4ea388..640d70776 100644
--- a/src/pokemon.c
+++ b/src/pokemon.c
@@ -5929,13 +5929,13 @@ u16 HoennToNationalOrder(u16 hoennNum)
u16 SpeciesToCryId(u16 species)
{
- if (species <= 250)
+ if (species <= SPECIES_CELEBI - 1)
return species;
- if (species < 276)
- return 200;
+ if (species < SPECIES_TREECKO - 1)
+ return SPECIES_UNOWN - 1;
- return gSpeciesIdToCryId[species - 276];
+ return gSpeciesIdToCryId[species - (SPECIES_TREECKO - 1)];
}
void sub_806D544(u16 species, u32 personality, u8 *dest)
diff --git a/src/tv.c b/src/tv.c
index 0d6e12279..267520095 100644
--- a/src/tv.c
+++ b/src/tv.c
@@ -3231,7 +3231,7 @@ u16 TV_GetSomeOtherSpeciesAlreadySeenByPlayer(u16 passedSpecies)
initSpecies = species;
while (GetSetPokedexFlag(SpeciesToNationalPokedexNum(species), FLAG_GET_SEEN) != TRUE || species == passedSpecies)
{
- if (species == 1)
+ if (species == SPECIES_NONE + 1)
{
species = NUM_SPECIES - 1;
}
diff --git a/src/water.c b/src/water.c
index 955526ccd..fd31b324a 100644
--- a/src/water.c
+++ b/src/water.c
@@ -1,21 +1,60 @@
#include "global.h"
+#include "battle.h"
#include "battle_anim.h"
+#include "gpu_regs.h"
+#include "graphics.h"
+#include "palette.h"
+#include "random.h"
+#include "scanline_effect.h"
+#include "sprite.h"
+#include "task.h"
+#include "trig.h"
+#include "util.h"
+#include "constants/battle.h"
#include "constants/rgb.h"
extern void sub_810721C(struct Sprite *);
+extern void sub_8107228(struct Sprite *);
extern void sub_8107260(struct Sprite *);
+extern void sub_8107380(struct Sprite *);
+extern void sub_8107408(struct Sprite *);
+extern void sub_8107430(struct Sprite *);
extern void sub_810744C(struct Sprite *);
+extern void sub_81074E4(struct Sprite *);
extern void sub_81075EC(struct Sprite *);
+extern void sub_8107674(struct Sprite *);
extern void sub_8107730(struct Sprite *);
+extern void sub_81077A4(struct Sprite *);
extern void sub_81077C0(struct Sprite *);
extern void sub_80A78AC(struct Sprite *);
extern void sub_8107894(struct Sprite *);
extern void sub_81078D0(struct Sprite *);
+extern void sub_810790C(struct Sprite *);
extern void sub_8108034(struct Sprite *);
+extern void sub_8108098(struct Sprite *);
extern void sub_810851C(struct Sprite *);
+extern void sub_81087C0(struct Sprite *);
+extern void sub_810886C(struct Sprite *);
+extern void sub_8108B2C(struct Sprite *);
+extern void sub_8108B94(struct Sprite *);
extern void sub_8108BE0(struct Sprite *);
+extern void sub_8108C08(struct Sprite *);
extern void sub_8108C54(struct Sprite *);
+extern void sub_8108CDC(struct Sprite *);
extern void sub_80A8EE4(struct Sprite *);
+void sub_810756C(u8);
+void sub_81076F4(u8);
+void sub_8107B84(u8);
+void sub_8107CC4(u8);
+void sub_8107D58(u8);
+void sub_8108140(u8);
+void sub_810862C(u8);
+void sub_8108978(u8);
+u8 sub_8108384(void);
+void sub_8108408(struct Task*, u8);
+void sub_810871C(struct Task*, u8);
+void sub_8108AC0(struct Task*);
+void sub_8108D54(struct Sprite*, int, int);
extern const union AffineAnimCmd *const gUnknown_08593420[];
extern const union AffineAnimCmd *const gUnknown_08596208[];
@@ -440,3 +479,2149 @@ const struct SpriteTemplate gUnknown_08595328 =
.affineAnims = gUnknown_085952F4,
.callback = sub_80A8EE4,
};
+
+extern const struct SpriteTemplate gUnknown_08597388;
+
+void AnimTask_CreateRaindrops(u8 taskId)
+{
+ u8 x, y;
+
+ if (gTasks[taskId].data[0] == 0)
+ {
+ gTasks[taskId].data[1] = gBattleAnimArgs[0];
+ gTasks[taskId].data[2] = gBattleAnimArgs[1];
+ gTasks[taskId].data[3] = gBattleAnimArgs[2];
+ }
+ gTasks[taskId].data[0]++;
+ if (gTasks[taskId].data[0] % gTasks[taskId].data[2] == 1)
+ {
+ x = Random2() % 240;
+ y = Random2() % 80;
+ CreateSprite(&gUnknown_08595020, x, y, 4);
+ }
+ if (gTasks[taskId].data[0] == gTasks[taskId].data[3])
+ DestroyAnimVisualTask(taskId);
+}
+
+void sub_810721C(struct Sprite *sprite)
+{
+ sprite->callback = sub_8107228;
+}
+
+void sub_8107228(struct Sprite *sprite)
+{
+ if (++sprite->data[0] <= 13)
+ {
+ sprite->pos2.x++;
+ sprite->pos2.y += 4;
+ }
+ if (sprite->animEnded)
+ DestroySprite(sprite);
+}
+
+void sub_8107260(struct Sprite *sprite)
+{
+ u8 spriteId;
+
+ if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
+ {
+ sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2) - gBattleAnimArgs[0];
+ sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3) + gBattleAnimArgs[1];
+ sprite->animPaused = TRUE;
+ }
+ else
+ {
+ sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2) + gBattleAnimArgs[0];
+ sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3) + gBattleAnimArgs[1];
+ sprite->animPaused = TRUE;
+ }
+ if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
+ gBattleAnimArgs[2] = -gBattleAnimArgs[2];
+ sprite->data[0] = gBattleAnimArgs[6];
+ sprite->data[1] = sprite->pos1.x;
+ sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2);
+ sprite->data[3] = sprite->pos1.y;
+ sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3);
+ InitAnimLinearTranslation(sprite);
+ spriteId = CreateInvisibleSpriteWithCallback(SpriteCallbackDummy);
+ sprite->data[5] = spriteId;
+ sprite->pos1.x -= Sin((u8)gBattleAnimArgs[4], gBattleAnimArgs[2]);
+ sprite->pos1.y -= Cos((u8)gBattleAnimArgs[4], gBattleAnimArgs[3]);
+ gSprites[spriteId].data[0] = gBattleAnimArgs[2];
+ gSprites[spriteId].data[1] = gBattleAnimArgs[3];
+ gSprites[spriteId].data[2] = gBattleAnimArgs[5];
+ gSprites[spriteId].data[3] = (u8)gBattleAnimArgs[4] * 256;
+ gSprites[spriteId].data[4] = gBattleAnimArgs[6];
+ sprite->callback = sub_8107380;
+ sprite->callback(sprite);
+}
+
+void sub_8107380(struct Sprite *sprite)
+{
+ u8 otherSpriteId = sprite->data[5];
+ u8 timer = gSprites[otherSpriteId].data[4];
+ u16 trigIndex = gSprites[otherSpriteId].data[3];
+
+ sprite->data[0] = 1;
+ TranslateAnimLinear(sprite);
+ sprite->pos2.x += Sin(trigIndex >> 8, gSprites[otherSpriteId].data[0]);
+ sprite->pos2.y += Cos(trigIndex >> 8, gSprites[otherSpriteId].data[1]);
+ gSprites[otherSpriteId].data[3] = trigIndex + gSprites[otherSpriteId].data[2];
+ if (--timer != 0)
+ {
+ gSprites[otherSpriteId].data[4] = timer;
+ }
+ else
+ {
+ sprite->callback = sub_8107408;
+ DestroySprite(&gSprites[otherSpriteId]);
+ }
+}
+
+void sub_8107408(struct Sprite *sprite)
+{
+ sprite->animPaused = FALSE;
+ sprite->callback = RunStoredCallbackWhenAnimEnds;
+ StoreSpriteCallbackInData6(sprite, sub_8107430);
+}
+
+void sub_8107430(struct Sprite *sprite)
+{
+ sprite->data[0] = 10;
+ sprite->callback = WaitAnimForDuration;
+ StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix);
+}
+
+void sub_810744C(struct Sprite *sprite)
+{
+ s16 unkArg;
+
+ InitAnimSpritePos(sprite, TRUE);
+ if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
+ unkArg = -gBattleAnimArgs[2];
+ else
+ unkArg = gBattleAnimArgs[2];
+ sprite->data[0] = gBattleAnimArgs[4];
+ sprite->data[1] = sprite->pos1.x;
+ sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2) + unkArg;
+ sprite->data[3] = sprite->pos1.y;
+ sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3) + gBattleAnimArgs[3];
+ InitAnimLinearTranslation(sprite);
+ sprite->callback = sub_81074E4;
+ sprite->affineAnimPaused = TRUE;
+ sprite->callback(sprite);
+}
+
+void sub_81074E4(struct Sprite *sprite)
+{
+ if ((u16)gBattleAnimArgs[ARG_RET_ID] == 0xFFFF)
+ {
+ StartSpriteAnim(sprite, 1);
+ sprite->affineAnimPaused = FALSE;
+ }
+ if (TranslateAnimLinear(sprite))
+ DestroyAnimSprite(sprite);
+}
+
+void sub_8107528(u8 taskId)
+{
+ gTasks[taskId].data[0] = gBattleAnimArgs[0];
+ gTasks[taskId].data[2] = IndexOfSpritePaletteTag(ANIM_TAG_RAINBOW_RINGS) * 16 + 256;
+ gTasks[taskId].func = sub_810756C;
+}
+
+#ifdef NONMATCHING
+void sub_810756C(u8 taskId)
+{
+ int i;
+ u16 palIndex;
+ u16 *palPtr1;
+ u16 *palPtr2;
+ u16 rgbBuffer;
+
+ if (++gTasks[taskId].data[10] == 3)
+ {
+ gTasks[taskId].data[10] = 0;
+ palIndex = gTasks[taskId].data[2] + 1;
+ palPtr1 = &gPlttBufferFaded[palIndex];
+ rgbBuffer = *palPtr1;
+ palPtr2 = &palPtr1[1];
+ for (i = 0; i < 7; i++)
+ palPtr1[i] = palPtr2[i];
+ gPlttBufferFaded[palIndex + 7] = rgbBuffer;
+ }
+ if (++gTasks[taskId].data[11] == gTasks[taskId].data[0])
+ DestroyAnimVisualTask(taskId);
+}
+#else
+NAKED
+void sub_810756C(u8 taskId)
+{
+ asm_unified("push {r4-r7,lr}\n\
+ lsls r0, 24\n\
+ lsrs r4, r0, 24\n\
+ ldr r1, =gTasks\n\
+ lsls r0, r4, 2\n\
+ adds r0, r4\n\
+ lsls r0, 3\n\
+ adds r2, r0, r1\n\
+ ldrh r0, [r2, 0x1C]\n\
+ adds r0, 0x1\n\
+ strh r0, [r2, 0x1C]\n\
+ lsls r0, 16\n\
+ asrs r0, 16\n\
+ mov r12, r1\n\
+ cmp r0, 0x3\n\
+ bne _081075BE\n\
+ movs r0, 0\n\
+ strh r0, [r2, 0x1C]\n\
+ ldrh r0, [r2, 0xC]\n\
+ adds r0, 0x1\n\
+ lsls r0, 16\n\
+ lsrs r5, r0, 16\n\
+ ldr r1, =gPlttBufferFaded\n\
+ lsls r0, r5, 1\n\
+ adds r0, r1\n\
+ ldrh r6, [r0]\n\
+ adds r7, r1, 0\n\
+ adds r3, r0, 0x2\n\
+ movs r1, 0x6\n\
+ adds r2, r0, 0\n\
+_081075A8:\n\
+ ldrh r0, [r3]\n\
+ strh r0, [r2]\n\
+ adds r3, 0x2\n\
+ adds r2, 0x2\n\
+ subs r1, 0x1\n\
+ cmp r1, 0\n\
+ bge _081075A8\n\
+ adds r0, r5, 0x7\n\
+ lsls r0, 1\n\
+ adds r0, r7\n\
+ strh r6, [r0]\n\
+_081075BE:\n\
+ lsls r0, r4, 2\n\
+ adds r0, r4\n\
+ lsls r0, 3\n\
+ add r0, r12\n\
+ ldrh r1, [r0, 0x1E]\n\
+ adds r1, 0x1\n\
+ strh r1, [r0, 0x1E]\n\
+ lsls r1, 16\n\
+ asrs r1, 16\n\
+ movs r2, 0x8\n\
+ ldrsh r0, [r0, r2]\n\
+ cmp r1, r0\n\
+ bne _081075DE\n\
+ adds r0, r4, 0\n\
+ bl DestroyAnimVisualTask\n\
+_081075DE:\n\
+ pop {r4-r7}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .pool\n");
+}
+#endif
+
+void sub_81075EC(struct Sprite *sprite)
+{
+ u16 retArg;
+
+ InitAnimSpritePos(sprite, TRUE);
+ sprite->data[0] = 30;
+ sprite->data[1] = sprite->pos1.x;
+ sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2);
+ sprite->data[3] = sprite->pos1.y;
+ sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3);
+ InitAnimLinearTranslation(sprite);
+ sprite->data[5] = 0xD200 / sprite->data[0];
+ sprite->data[7] = gBattleAnimArgs[3];
+ retArg = gBattleAnimArgs[ARG_RET_ID];
+ if (gBattleAnimArgs[ARG_RET_ID] > 127)
+ {
+ sprite->data[6] = (retArg - 127) * 256;
+ sprite->data[7] = -sprite->data[7];
+ }
+ else
+ {
+ sprite->data[6] = retArg * 256;
+ }
+ sprite->callback = sub_8107674;
+ sprite->callback(sprite);
+}
+
+void sub_8107674(struct Sprite *sprite)
+{
+ if (TranslateAnimLinear(sprite))
+ DestroyAnimSprite(sprite);
+ sprite->pos2.y += Sin(sprite->data[6] >> 8, sprite->data[7]);
+ if ((sprite->data[6] + sprite->data[5]) >> 8 > 127)
+ {
+ sprite->data[6] = 0;
+ sprite->data[7] = -sprite->data[7];
+ }
+ else
+ {
+ sprite->data[6] += sprite->data[5];
+ }
+}
+
+void sub_81076C8(u8 taskId)
+{
+ gTasks[taskId].data[0] = gBattleAnimArgs[0];
+ gBattleAnimArgs[ARG_RET_ID] = 0;
+ gTasks[taskId].func = sub_81076F4;
+}
+
+void sub_81076F4(u8 taskId)
+{
+ gBattleAnimArgs[ARG_RET_ID] = (gBattleAnimArgs[ARG_RET_ID] + 3) & 0xFF;
+ if (--gTasks[taskId].data[0] == 0)
+ DestroyAnimVisualTask(taskId);
+}
+
+void sub_8107730(struct Sprite *sprite)
+{
+ u8 priority;
+
+ sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 0);
+ sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1);
+ sprite->pos2.y = -10;
+ priority = GetBattlerSpriteSubpriority(gBattleAnimAttacker);
+ if (!IsContest())
+ {
+ if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER)
+ {
+ sprite->pos2.x = 10;
+ sprite->subpriority = priority + 2;
+ }
+ else
+ {
+ sprite->pos2.x = -10;
+ sprite->subpriority = priority - 2;
+ }
+ }
+ else
+ {
+ sprite->pos2.x = -10;
+ sprite->subpriority = priority + 2;
+ }
+ sprite->callback = sub_81077A4;
+}
+
+void sub_81077A4(struct Sprite *sprite)
+{
+ if (sprite->affineAnimEnded)
+ DestroyAnimSprite(sprite);
+}
+
+void sub_81077C0(struct Sprite *sprite)
+{
+ bool8 animType;
+ u8 coordType;
+ if (GetBattlerSide(gBattleAnimAttacker) == GetBattlerSide(gBattleAnimTarget))
+ {
+ gBattleAnimArgs[0] *= -1;
+ if (GetBattlerPosition(gBattleAnimAttacker) == B_POSITION_PLAYER_LEFT || GetBattlerPosition(gBattleAnimAttacker) == B_POSITION_OPPONENT_LEFT)
+ gBattleAnimArgs[0] *= -1;
+ }
+ if ((gBattleAnimArgs[5] & 0xFF00) == 0)
+ animType = TRUE;
+ else
+ animType = FALSE;
+ if ((u8)gBattleAnimArgs[5] == 0)
+ coordType = 3;
+ else
+ coordType = 1;
+ InitAnimSpritePos(sprite, animType);
+ if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
+ gBattleAnimArgs[2] = -gBattleAnimArgs[2];
+ sprite->data[0] = gBattleAnimArgs[4];
+ sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2) + gBattleAnimArgs[2];
+ sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, coordType) + gBattleAnimArgs[3];
+ sprite->callback = StartAnimLinearTranslation;
+ StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
+}
+
+void sub_8107894(struct Sprite *sprite)
+{
+ sub_80A6980(sprite, TRUE);
+ sprite->data[0] = gBattleAnimArgs[4];
+ sprite->data[2] = sprite->pos1.x + gBattleAnimArgs[2];
+ sprite->data[4] = sprite->pos1.y + gBattleAnimArgs[4];
+ sprite->callback = StartAnimLinearTranslation;
+ StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
+}
+
+void sub_81078D0(struct Sprite *sprite)
+{
+ if (gBattleAnimArgs[3])
+ sub_80A6980(sprite, TRUE);
+ else
+ InitAnimSpritePos(sprite, TRUE);
+ sprite->data[7] = gBattleAnimArgs[2];
+ sprite->callback = sub_810790C;
+}
+
+void sub_810790C(struct Sprite *sprite)
+{
+ sprite->data[0] = (sprite->data[0] + 11) & 0xFF;
+ sprite->pos2.x = Sin(sprite->data[0], 4);
+ sprite->data[1] += 48;
+ sprite->pos2.y = -(sprite->data[1] >> 8);
+ if (--sprite->data[7] == -1)
+ DestroyAnimSprite(sprite);
+}
+
+#ifdef NONMATCHING
+void AnimTask_CreateSurfWave(u8 taskId)
+{
+ struct UnknownAnimStruct2 unk;
+ u8 taskId2;
+
+ SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG1 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_ALL);
+ SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0, 16));
+ SetAnimBgAttribute(1, BG_ANIM_PRIORITY, 1);
+ SetAnimBgAttribute(1, BG_ANIM_SCREEN_SIZE, 1);
+ sub_80A6B30(&unk);
+ if (!IsContest())
+ {
+ SetAnimBgAttribute(1, BG_ANIM_CHAR_BASE_BLOCK, 1);
+ if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_OPPONENT)
+ sub_80A6D48(unk.bgId, gUnknown_08D95E00);
+ else
+ sub_80A6D48(unk.bgId, gUnknown_08D960D0);
+ }
+ else
+ {
+ sub_80A6D60(&unk, gUnknown_08D963A4, 1);
+ }
+ sub_80A6CC0(unk.bgId, gBattleAnimBackgroundImage_Surf, unk.tilesOffset);
+ if (gBattleAnimArgs[0] == 0)
+ LoadCompressedPalette(gBattleAnimBackgroundPalette_Surf, unk.unk8 * 16, 32);
+ else
+ LoadCompressedPalette(gBattleAnimBackgroundImageMuddyWater_Pal, unk.unk8 * 16, 32);
+ taskId2 = CreateTask(sub_8107D58, gTasks[taskId].priority + 1);
+ gTasks[taskId].data[15] = taskId2;
+ gTasks[taskId2].data[0] = 0;
+ gTasks[taskId2].data[1] = 0x1000;
+ gTasks[taskId2].data[2] = 0x1000;
+ if (IsContest())
+ {
+ gBattle_BG1_X = -80;
+ gBattle_BG1_Y = -48;
+ gTasks[taskId].data[0] = 2;
+ gTasks[taskId].data[1] = 1;
+ gTasks[taskId2].data[3] = 0;
+ }
+ else if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_OPPONENT)
+ {
+ gBattle_BG1_X = -224;
+ gBattle_BG1_Y = 256;
+ gTasks[taskId].data[0] = 2;
+ gTasks[taskId].data[1] = -1;
+ gTasks[taskId2].data[3] = 1;
+ }
+ else
+ {
+ gBattle_BG1_X = 0;
+ gBattle_BG1_Y = -48;
+ gTasks[taskId].data[0] = -2;
+ gTasks[taskId].data[1] = 1;
+ gTasks[taskId2].data[3] = 0;
+ }
+ SetGpuReg(REG_OFFSET_BG1HOFS, gBattle_BG1_X);
+ SetGpuReg(REG_OFFSET_BG1VOFS, gBattle_BG1_Y);
+ if (gTasks[taskId2].data[3] == 0)
+ {
+ gTasks[taskId2].data[4] = 48;
+ gTasks[taskId2].data[5] = 112;
+ }
+ else
+ {
+ gTasks[taskId2].data[4] = 0;
+ gTasks[taskId2].data[5] = 0;
+ }
+ gTasks[taskId].data[6] = 1;
+ gTasks[taskId].func = sub_8107B84;
+}
+#else
+NAKED
+void AnimTask_CreateSurfWave(u8 taskId)
+{
+ asm_unified("push {r4-r7,lr}\n\
+ mov r7, r10\n\
+ mov r6, r9\n\
+ mov r5, r8\n\
+ push {r5-r7}\n\
+ sub sp, 0x10\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ mov r10, r0\n\
+ ldr r1, =0x00003f42\n\
+ movs r0, 0x50\n\
+ bl SetGpuReg\n\
+ movs r1, 0x80\n\
+ lsls r1, 5\n\
+ movs r0, 0x52\n\
+ bl SetGpuReg\n\
+ movs r0, 0x1\n\
+ movs r1, 0x4\n\
+ movs r2, 0x1\n\
+ bl SetAnimBgAttribute\n\
+ movs r0, 0x1\n\
+ movs r1, 0\n\
+ movs r2, 0x1\n\
+ bl SetAnimBgAttribute\n\
+ mov r0, sp\n\
+ bl sub_80A6B30\n\
+ bl IsContest\n\
+ lsls r0, 24\n\
+ cmp r0, 0\n\
+ bne _081079E0\n\
+ movs r0, 0x1\n\
+ movs r1, 0x3\n\
+ movs r2, 0x1\n\
+ bl SetAnimBgAttribute\n\
+ ldr r0, =gBattleAnimAttacker\n\
+ ldrb r0, [r0]\n\
+ bl GetBattlerSide\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ cmp r0, 0x1\n\
+ bne _081079D0\n\
+ mov r0, sp\n\
+ ldrb r0, [r0, 0x9]\n\
+ ldr r1, =gUnknown_08D95E00\n\
+ bl sub_80A6D48\n\
+ b _081079EA\n\
+ .pool\n\
+_081079D0:\n\
+ mov r0, sp\n\
+ ldrb r0, [r0, 0x9]\n\
+ ldr r1, =gUnknown_08D960D0\n\
+ bl sub_80A6D48\n\
+ b _081079EA\n\
+ .pool\n\
+_081079E0:\n\
+ ldr r1, =gUnknown_08D963A4\n\
+ mov r0, sp\n\
+ movs r2, 0x1\n\
+ bl sub_80A6D60\n\
+_081079EA:\n\
+ mov r0, sp\n\
+ ldrb r0, [r0, 0x9]\n\
+ ldr r1, =gBattleAnimBackgroundImage_Surf\n\
+ mov r2, sp\n\
+ ldrh r2, [r2, 0xA]\n\
+ bl sub_80A6CC0\n\
+ ldr r0, =gBattleAnimArgs\n\
+ movs r1, 0\n\
+ ldrsh r0, [r0, r1]\n\
+ cmp r0, 0\n\
+ bne _08107A24\n\
+ ldr r0, =gBattleAnimBackgroundPalette_Surf\n\
+ mov r1, sp\n\
+ ldrb r1, [r1, 0x8]\n\
+ lsls r1, 4\n\
+ movs r2, 0x20\n\
+ bl LoadCompressedPalette\n\
+ b _08107A32\n\
+ .pool\n\
+_08107A24:\n\
+ ldr r0, =gBattleAnimBackgroundImageMuddyWater_Pal\n\
+ mov r1, sp\n\
+ ldrb r1, [r1, 0x8]\n\
+ lsls r1, 4\n\
+ movs r2, 0x20\n\
+ bl LoadCompressedPalette\n\
+_08107A32:\n\
+ ldr r0, =sub_8107D58\n\
+ ldr r4, =gTasks\n\
+ mov r2, r10\n\
+ lsls r5, r2, 2\n\
+ adds r1, r5, r2\n\
+ lsls r1, 3\n\
+ adds r6, r1, r4\n\
+ ldrb r1, [r6, 0x7]\n\
+ adds r1, 0x1\n\
+ lsls r1, 24\n\
+ lsrs r1, 24\n\
+ bl CreateTask\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ mov r8, r0\n\
+ movs r0, 0\n\
+ mov r9, r0\n\
+ mov r1, r8\n\
+ strh r1, [r6, 0x26]\n\
+ mov r2, r8\n\
+ lsls r0, r2, 2\n\
+ add r0, r8\n\
+ lsls r0, 3\n\
+ adds r7, r0, r4\n\
+ mov r0, r9\n\
+ strh r0, [r7, 0x8]\n\
+ movs r0, 0x80\n\
+ lsls r0, 5\n\
+ strh r0, [r7, 0xA]\n\
+ strh r0, [r7, 0xC]\n\
+ bl IsContest\n\
+ lsls r0, 24\n\
+ lsrs r4, r0, 24\n\
+ cmp r4, 0\n\
+ beq _08107AB4\n\
+ ldr r1, =0x0000ffb0\n\
+ adds r0, r1, 0\n\
+ ldr r2, =gBattle_BG1_X\n\
+ strh r0, [r2]\n\
+ adds r1, 0x20\n\
+ adds r0, r1, 0\n\
+ ldr r2, =gBattle_BG1_Y\n\
+ strh r0, [r2]\n\
+ movs r0, 0x2\n\
+ strh r0, [r6, 0x8]\n\
+ movs r0, 0x1\n\
+ strh r0, [r6, 0xA]\n\
+ mov r0, r9\n\
+ strh r0, [r7, 0xE]\n\
+ b _08107B0E\n\
+ .pool\n\
+_08107AB4:\n\
+ ldr r0, =gBattleAnimAttacker\n\
+ ldrb r0, [r0]\n\
+ bl GetBattlerSide\n\
+ lsls r0, 24\n\
+ lsrs r1, r0, 24\n\
+ cmp r1, 0x1\n\
+ bne _08107AF8\n\
+ ldr r2, =0x0000ff20\n\
+ adds r0, r2, 0\n\
+ ldr r2, =gBattle_BG1_X\n\
+ strh r0, [r2]\n\
+ movs r2, 0x80\n\
+ lsls r2, 1\n\
+ adds r0, r2, 0\n\
+ ldr r2, =gBattle_BG1_Y\n\
+ strh r0, [r2]\n\
+ movs r0, 0x2\n\
+ strh r0, [r6, 0x8]\n\
+ ldr r0, =0x0000ffff\n\
+ strh r0, [r6, 0xA]\n\
+ strh r1, [r7, 0xE]\n\
+ b _08107B0E\n\
+ .pool\n\
+_08107AF8:\n\
+ ldr r0, =gBattle_BG1_X\n\
+ strh r4, [r0]\n\
+ ldr r1, =0x0000ffd0\n\
+ adds r0, r1, 0\n\
+ ldr r2, =gBattle_BG1_Y\n\
+ strh r0, [r2]\n\
+ ldr r0, =0x0000fffe\n\
+ strh r0, [r6, 0x8]\n\
+ movs r0, 0x1\n\
+ strh r0, [r6, 0xA]\n\
+ strh r4, [r7, 0xE]\n\
+_08107B0E:\n\
+ ldr r0, =gBattle_BG1_X\n\
+ ldrh r1, [r0]\n\
+ movs r0, 0x14\n\
+ bl SetGpuReg\n\
+ ldr r2, =gBattle_BG1_Y\n\
+ ldrh r1, [r2]\n\
+ movs r0, 0x16\n\
+ bl SetGpuReg\n\
+ ldr r1, =gTasks\n\
+ mov r2, r8\n\
+ lsls r0, r2, 2\n\
+ add r0, r8\n\
+ lsls r0, 3\n\
+ adds r1, r0, r1\n\
+ movs r2, 0xE\n\
+ ldrsh r0, [r1, r2]\n\
+ cmp r0, 0\n\
+ bne _08107B54\n\
+ movs r0, 0x30\n\
+ strh r0, [r1, 0x10]\n\
+ movs r0, 0x70\n\
+ b _08107B58\n\
+ .pool\n\
+_08107B54:\n\
+ movs r0, 0\n\
+ strh r0, [r1, 0x10]\n\
+_08107B58:\n\
+ strh r0, [r1, 0x12]\n\
+ ldr r1, =gTasks\n\
+ mov r2, r10\n\
+ adds r0, r5, r2\n\
+ lsls r0, 3\n\
+ adds r0, r1\n\
+ movs r1, 0x1\n\
+ strh r1, [r0, 0x14]\n\
+ ldr r1, =sub_8107B84\n\
+ str r1, [r0]\n\
+ add sp, 0x10\n\
+ pop {r3-r5}\n\
+ mov r8, r3\n\
+ mov r9, r4\n\
+ mov r10, r5\n\
+ pop {r4-r7}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .pool\n");
+}
+#endif
+
+#ifdef NONMATCHING
+void sub_8107B84(u8 taskId)
+{
+ struct UnknownAnimStruct2 unk;
+ u8 i;
+ u16 rgbBuffer;
+ u16 *BGptrX = &gBattle_BG1_X;
+ u16 *BGptrY = &gBattle_BG1_Y;
+ s16 unkUse;
+ u32 palOffset;
+ u16 palNum;
+
+ *BGptrX += gTasks[taskId].data[0];
+ *BGptrY += gTasks[taskId].data[1];
+ sub_80A6B30(&unk);
+ gTasks[taskId].data[2] += gTasks[taskId].data[1];
+ if (++gTasks[taskId].data[5] == 4)
+ {
+ rgbBuffer = gPlttBufferFaded[unk.unk8 * 16 + 7];
+ for (i = 6; i != 0; i--)
+ {
+ palNum = unk.unk8 * 16;
+ palOffset = 1 + i;
+ gPlttBufferFaded[palNum + palOffset] = gPlttBufferFaded[palNum + palOffset - 1];
+ }
+ gPlttBufferFaded[unk.unk8 * 16 + 1] = rgbBuffer;
+ gTasks[taskId].data[5] = 0;
+ }
+ if (++gTasks[taskId].data[6] > 1)
+ {
+ gTasks[taskId].data[6] = 0;
+ unkUse = ++gTasks[taskId].data[3];
+ if (unkUse <= 13)
+ {
+ gTasks[gTasks[taskId].data[15]].data[1] = unkUse | ((16 - unkUse) * 256);
+ gTasks[taskId].data[4]++;
+ }
+ if (gTasks[taskId].data[3] > 54)
+ {
+ unkUse = --gTasks[taskId].data[4];
+ gTasks[gTasks[taskId].data[15]].data[1] = unkUse | ((16 - unkUse) * 256);
+ }
+ }
+ if (!(gTasks[gTasks[taskId].data[15]].data[1] & 0x1F))
+ {
+ gTasks[taskId].data[0] = gTasks[gTasks[taskId].data[15]].data[1] & 0x1F;
+ gTasks[taskId].func = sub_8107CC4;
+ }
+}
+#else
+NAKED
+void sub_8107B84(u8 taskId)
+{
+ asm_unified("push {r4-r7,lr}\n\
+ sub sp, 0x10\n\
+ lsls r0, 24\n\
+ lsrs r5, r0, 24\n\
+ ldr r1, =gBattle_BG1_X\n\
+ ldr r2, =gBattle_BG1_Y\n\
+ ldr r0, =gTasks\n\
+ lsls r4, r5, 2\n\
+ adds r4, r5\n\
+ lsls r4, 3\n\
+ adds r4, r0\n\
+ ldrh r0, [r4, 0x8]\n\
+ ldrh r3, [r1]\n\
+ adds r0, r3\n\
+ strh r0, [r1]\n\
+ ldrh r0, [r4, 0xA]\n\
+ ldrh r1, [r2]\n\
+ adds r0, r1\n\
+ strh r0, [r2]\n\
+ mov r0, sp\n\
+ bl sub_80A6B30\n\
+ ldrh r0, [r4, 0xA]\n\
+ ldrh r3, [r4, 0xC]\n\
+ adds r0, r3\n\
+ strh r0, [r4, 0xC]\n\
+ ldrh r0, [r4, 0x12]\n\
+ adds r0, 0x1\n\
+ strh r0, [r4, 0x12]\n\
+ lsls r0, 16\n\
+ asrs r0, 16\n\
+ cmp r0, 0x4\n\
+ bne _08107C18\n\
+ ldr r1, =gPlttBufferFaded\n\
+ mov r0, sp\n\
+ ldrb r0, [r0, 0x8]\n\
+ lsls r0, 4\n\
+ adds r0, 0x7\n\
+ lsls r0, 1\n\
+ adds r0, r1\n\
+ ldrh r6, [r0]\n\
+ movs r2, 0x6\n\
+ adds r7, r1, 0\n\
+ adds r3, r7, 0\n\
+ mov r4, sp\n\
+_08107BDE:\n\
+ ldrb r0, [r4, 0x8]\n\
+ lsls r0, 4\n\
+ adds r1, r2, 0x1\n\
+ adds r0, r1\n\
+ lsls r1, r0, 1\n\
+ adds r1, r3\n\
+ subs r0, 0x1\n\
+ lsls r0, 1\n\
+ adds r0, r3\n\
+ ldrh r0, [r0]\n\
+ strh r0, [r1]\n\
+ subs r0, r2, 0x1\n\
+ lsls r0, 24\n\
+ lsrs r2, r0, 24\n\
+ cmp r2, 0\n\
+ bne _08107BDE\n\
+ mov r0, sp\n\
+ ldrb r0, [r0, 0x8]\n\
+ lsls r0, 4\n\
+ adds r0, 0x1\n\
+ lsls r0, 1\n\
+ adds r0, r7\n\
+ strh r6, [r0]\n\
+ ldr r1, =gTasks\n\
+ lsls r0, r5, 2\n\
+ adds r0, r5\n\
+ lsls r0, 3\n\
+ adds r0, r1\n\
+ strh r2, [r0, 0x12]\n\
+_08107C18:\n\
+ ldr r1, =gTasks\n\
+ lsls r2, r5, 2\n\
+ adds r0, r2, r5\n\
+ lsls r0, 3\n\
+ adds r3, r0, r1\n\
+ ldrh r0, [r3, 0x14]\n\
+ adds r0, 0x1\n\
+ strh r0, [r3, 0x14]\n\
+ lsls r0, 16\n\
+ asrs r0, 16\n\
+ adds r4, r1, 0\n\
+ adds r6, r2, 0\n\
+ cmp r0, 0x1\n\
+ ble _08107C86\n\
+ movs r0, 0\n\
+ strh r0, [r3, 0x14]\n\
+ ldrh r0, [r3, 0xE]\n\
+ adds r2, r0, 0x1\n\
+ strh r2, [r3, 0xE]\n\
+ lsls r0, r2, 16\n\
+ asrs r0, 16\n\
+ cmp r0, 0xD\n\
+ bgt _08107C62\n\
+ movs r1, 0x26\n\
+ ldrsh r0, [r3, r1]\n\
+ lsls r1, r0, 2\n\
+ adds r1, r0\n\
+ lsls r1, 3\n\
+ adds r1, r4\n\
+ movs r0, 0x10\n\
+ subs r0, r2\n\
+ lsls r0, 8\n\
+ orrs r2, r0\n\
+ strh r2, [r1, 0xA]\n\
+ ldrh r0, [r3, 0x10]\n\
+ adds r0, 0x1\n\
+ strh r0, [r3, 0x10]\n\
+_08107C62:\n\
+ movs r1, 0xE\n\
+ ldrsh r0, [r3, r1]\n\
+ cmp r0, 0x36\n\
+ ble _08107C86\n\
+ ldrh r2, [r3, 0x10]\n\
+ subs r2, 0x1\n\
+ strh r2, [r3, 0x10]\n\
+ movs r1, 0x26\n\
+ ldrsh r0, [r3, r1]\n\
+ lsls r1, r0, 2\n\
+ adds r1, r0\n\
+ lsls r1, 3\n\
+ adds r1, r4\n\
+ movs r0, 0x10\n\
+ subs r0, r2\n\
+ lsls r0, 8\n\
+ orrs r2, r0\n\
+ strh r2, [r1, 0xA]\n\
+_08107C86:\n\
+ adds r0, r6, r5\n\
+ lsls r0, 3\n\
+ adds r2, r0, r4\n\
+ movs r3, 0x26\n\
+ ldrsh r1, [r2, r3]\n\
+ lsls r0, r1, 2\n\
+ adds r0, r1\n\
+ lsls r0, 3\n\
+ adds r0, r4\n\
+ ldrh r0, [r0, 0xA]\n\
+ movs r3, 0x1F\n\
+ ands r3, r0\n\
+ cmp r3, 0\n\
+ bne _08107CA8\n\
+ strh r3, [r2, 0x8]\n\
+ ldr r0, =sub_8107CC4\n\
+ str r0, [r2]\n\
+_08107CA8:\n\
+ add sp, 0x10\n\
+ pop {r4-r7}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .pool\n");
+}
+#endif
+
+void sub_8107CC4(u8 taskId)
+{
+ u16 *BGptrX = &gBattle_BG1_X;
+ u16 *BGptrY = &gBattle_BG1_Y;
+ if (gTasks[taskId].data[0] == 0)
+ {
+ sub_80A6C68(1);
+ sub_80A6C68(2);
+ gTasks[taskId].data[0]++;
+ }
+ else
+ {
+ if (!IsContest())
+ SetAnimBgAttribute(1, BG_ANIM_CHAR_BASE_BLOCK, 0);
+ *BGptrX = 0;
+ *BGptrY = 0;
+ SetGpuReg(REG_OFFSET_BLDCNT, 0);
+ SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0, 0));
+ gTasks[gTasks[taskId].data[15]].data[15] = -1;
+ DestroyAnimVisualTask(taskId);
+ }
+}
+
+#ifdef NONMATCHING
+void sub_8107D58(u8 taskId)
+{
+ s16 i;
+ struct ScanlineEffectParams params;
+ struct Task *task = &gTasks[taskId];
+ // u16 *scanlineBuffer;
+
+ switch (task->data[0])
+ {
+ case 0:
+ for (i = 0; i < task->data[4]; i++)
+ {
+ /* scanlineBuffer = &gScanlineEffectRegBuffers[0][i];
+ *(u16 *)(&gScanlineEffect) = task->data[2];
+ *scanlineBuffer = task->data[2] & -1; */
+ gScanlineEffectRegBuffers[1][i] = task->data[2];
+ gScanlineEffectRegBuffers[0][i] = (u16)((int)(task->data[2] & 0xFFFF));
+ }
+ for (i = task->data[4]; i < task->data[5]; i++)
+ {
+ gScanlineEffectRegBuffers[1][i] = task->data[1];
+ gScanlineEffectRegBuffers[0][i] = (u16)((int)(task->data[1] & 0xFFFF));
+ }
+ for (i = task->data[5]; i < 160; i++)
+ {
+ gScanlineEffectRegBuffers[1][i] = task->data[2];
+ gScanlineEffectRegBuffers[0][i] = (u16)((int)(task->data[2] & 0xFFFF));
+ }
+ if (task->data[4] == 0)
+ {
+ gScanlineEffectRegBuffers[1][i] = task->data[1];
+ gScanlineEffectRegBuffers[0][i] = task->data[1];
+ }
+ else
+ {
+ gScanlineEffectRegBuffers[1][i] = task->data[2];
+ gScanlineEffectRegBuffers[0][i] = task->data[2];
+ }
+ params.dmaDest = (vu16 *)REG_ADDR_BLDALPHA;
+ params.dmaControl = SCANLINE_EFFECT_DMACNT_16BIT;
+ params.initState = 1;
+ params.unused9 = 0;
+ ScanlineEffect_SetParams(params);
+ task->data[0]++;
+ break;
+ case 1:
+ if (task->data[3] == 0)
+ {
+ if (--task->data[4] <= 0)
+ {
+ task->data[4] = 0;
+ task->data[0]++;
+ }
+ }
+ else if (++task->data[5] > 111)
+ {
+ task->data[0]++;
+ }
+ for (i = 0; i < task->data[4]; i++)
+ {
+ gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][i] = task->data[2];
+ }
+ for (i = task->data[4]; i < task->data[5]; i++)
+ {
+ gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][i] = task->data[1];
+ }
+ for (i = task->data[5]; i < 160; i++)
+ {
+ gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][i] = task->data[2];
+ }
+ break;
+ case 2:
+ for (i = 0; i < task->data[4]; i++)
+ {
+ gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][i] = task->data[2];
+ }
+ for (i = task->data[4]; i < task->data[5]; i++)
+ {
+ gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][i] = task->data[1];
+ }
+ for (i = task->data[5]; i < 160; i++)
+ {
+ gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][i] = task->data[2];
+ }
+ if (task->data[15] == -1)
+ {
+ ScanlineEffect_Stop();
+ DestroyTask(taskId);
+ }
+ break;
+ }
+}
+#else
+NAKED
+void sub_8107D58(u8 taskId)
+{
+ asm_unified("push {r4-r7,lr}\n\
+ sub sp, 0xC\n\
+ lsls r0, 24\n\
+ lsrs r7, r0, 24\n\
+ lsls r0, r7, 2\n\
+ adds r0, r7\n\
+ lsls r0, 3\n\
+ ldr r1, =gTasks\n\
+ adds r4, r0, r1\n\
+ movs r1, 0x8\n\
+ ldrsh r0, [r4, r1]\n\
+ cmp r0, 0x1\n\
+ bne _08107D74\n\
+ b _08107EAC\n\
+_08107D74:\n\
+ cmp r0, 0x1\n\
+ bgt _08107D84\n\
+ cmp r0, 0\n\
+ beq _08107D8C\n\
+ b _08108022\n\
+ .pool\n\
+_08107D84:\n\
+ cmp r0, 0x2\n\
+ bne _08107D8A\n\
+ b _08107F78\n\
+_08107D8A:\n\
+ b _08108022\n\
+_08107D8C:\n\
+ movs r3, 0\n\
+ movs r2, 0x10\n\
+ ldrsh r0, [r4, r2]\n\
+ ldr r1, =gScanlineEffectRegBuffers\n\
+ mov r12, r1\n\
+ cmp r3, r0\n\
+ bge _08107DCA\n\
+ mov r7, r12\n\
+ movs r5, 0xF0\n\
+ lsls r5, 3\n\
+ add r5, r12\n\
+ ldr r6, =0x0000ffff\n\
+_08107DA4:\n\
+ lsls r2, r3, 16\n\
+ asrs r2, 16\n\
+ lsls r1, r2, 1\n\
+ adds r3, r1, r7\n\
+ adds r1, r5\n\
+ ldrh r0, [r4, 0xC]\n\
+ strh r0, [r1]\n\
+ ldrh r1, [r4, 0xC]\n\
+ adds r0, r6, 0\n\
+ ands r0, r1\n\
+ strh r0, [r3]\n\
+ adds r2, 0x1\n\
+ lsls r2, 16\n\
+ lsrs r3, r2, 16\n\
+ asrs r2, 16\n\
+ movs r1, 0x10\n\
+ ldrsh r0, [r4, r1]\n\
+ cmp r2, r0\n\
+ blt _08107DA4\n\
+_08107DCA:\n\
+ ldrh r3, [r4, 0x10]\n\
+ lsls r2, r3, 16\n\
+ asrs r1, r2, 16\n\
+ movs r3, 0x12\n\
+ ldrsh r0, [r4, r3]\n\
+ cmp r1, r0\n\
+ bge _08107E04\n\
+ ldr r5, =gScanlineEffectRegBuffers\n\
+ movs r0, 0xF0\n\
+ lsls r0, 3\n\
+ adds r6, r5, r0\n\
+ ldr r7, =0x0000ffff\n\
+_08107DE2:\n\
+ asrs r2, 16\n\
+ lsls r1, r2, 1\n\
+ adds r3, r1, r5\n\
+ adds r1, r6\n\
+ ldrh r0, [r4, 0xA]\n\
+ strh r0, [r1]\n\
+ ldrh r1, [r4, 0xA]\n\
+ adds r0, r7, 0\n\
+ ands r0, r1\n\
+ strh r0, [r3]\n\
+ adds r2, 0x1\n\
+ lsls r2, 16\n\
+ asrs r1, r2, 16\n\
+ movs r3, 0x12\n\
+ ldrsh r0, [r4, r3]\n\
+ cmp r1, r0\n\
+ blt _08107DE2\n\
+_08107E04:\n\
+ ldrh r3, [r4, 0x12]\n\
+ lsls r2, r3, 16\n\
+ asrs r0, r2, 16\n\
+ cmp r0, 0x9F\n\
+ bgt _08107E3A\n\
+ ldr r5, =gScanlineEffectRegBuffers\n\
+ movs r0, 0xF0\n\
+ lsls r0, 3\n\
+ adds r6, r5, r0\n\
+ ldr r7, =0x0000ffff\n\
+_08107E18:\n\
+ asrs r2, 16\n\
+ lsls r1, r2, 1\n\
+ adds r3, r1, r5\n\
+ adds r1, r6\n\
+ ldrh r0, [r4, 0xC]\n\
+ strh r0, [r1]\n\
+ ldrh r1, [r4, 0xC]\n\
+ adds r0, r7, 0\n\
+ ands r0, r1\n\
+ strh r0, [r3]\n\
+ adds r2, 0x1\n\
+ lsls r2, 16\n\
+ lsrs r3, r2, 16\n\
+ lsls r2, r3, 16\n\
+ asrs r0, r2, 16\n\
+ cmp r0, 0x9F\n\
+ ble _08107E18\n\
+_08107E3A:\n\
+ movs r1, 0x10\n\
+ ldrsh r0, [r4, r1]\n\
+ cmp r0, 0\n\
+ bne _08107E64\n\
+ lsls r0, r3, 16\n\
+ asrs r0, 15\n\
+ mov r3, r12\n\
+ adds r2, r0, r3\n\
+ movs r1, 0xF0\n\
+ lsls r1, 3\n\
+ add r1, r12\n\
+ adds r0, r1\n\
+ ldrh r1, [r4, 0xA]\n\
+ strh r1, [r0]\n\
+ ldrh r0, [r4, 0xA]\n\
+ b _08107E7A\n\
+ .pool\n\
+_08107E64:\n\
+ lsls r0, r3, 16\n\
+ asrs r0, 15\n\
+ mov r1, r12\n\
+ adds r2, r0, r1\n\
+ movs r1, 0xF0\n\
+ lsls r1, 3\n\
+ add r1, r12\n\
+ adds r0, r1\n\
+ ldrh r1, [r4, 0xC]\n\
+ strh r1, [r0]\n\
+ ldrh r0, [r4, 0xC]\n\
+_08107E7A:\n\
+ strh r0, [r2]\n\
+ ldr r0, =0x04000052\n\
+ str r0, [sp]\n\
+ ldr r0, =0xa2600001\n\
+ str r0, [sp, 0x4]\n\
+ mov r1, sp\n\
+ movs r2, 0\n\
+ movs r0, 0x1\n\
+ strb r0, [r1, 0x8]\n\
+ mov r0, sp\n\
+ strb r2, [r0, 0x9]\n\
+ ldr r0, [sp]\n\
+ ldr r1, [sp, 0x4]\n\
+ ldr r2, [sp, 0x8]\n\
+ bl ScanlineEffect_SetParams\n\
+ ldrh r0, [r4, 0x8]\n\
+ adds r0, 0x1\n\
+ strh r0, [r4, 0x8]\n\
+ b _08108022\n\
+ .pool\n\
+_08107EAC:\n\
+ movs r2, 0xE\n\
+ ldrsh r1, [r4, r2]\n\
+ cmp r1, 0\n\
+ bne _08107EC4\n\
+ ldrh r0, [r4, 0x10]\n\
+ subs r0, 0x1\n\
+ strh r0, [r4, 0x10]\n\
+ lsls r0, 16\n\
+ cmp r0, 0\n\
+ bgt _08107ED8\n\
+ strh r1, [r4, 0x10]\n\
+ b _08107ED2\n\
+_08107EC4:\n\
+ ldrh r0, [r4, 0x12]\n\
+ adds r0, 0x1\n\
+ strh r0, [r4, 0x12]\n\
+ lsls r0, 16\n\
+ asrs r0, 16\n\
+ cmp r0, 0x6F\n\
+ ble _08107ED8\n\
+_08107ED2:\n\
+ ldrh r0, [r4, 0x8]\n\
+ adds r0, 0x1\n\
+ strh r0, [r4, 0x8]\n\
+_08107ED8:\n\
+ movs r3, 0\n\
+ movs r1, 0x10\n\
+ ldrsh r0, [r4, r1]\n\
+ cmp r3, r0\n\
+ bge _08107F0C\n\
+ ldr r6, =gScanlineEffectRegBuffers\n\
+ ldr r5, =gScanlineEffect\n\
+_08107EE6:\n\
+ lsls r1, r3, 16\n\
+ asrs r1, 16\n\
+ lsls r3, r1, 1\n\
+ ldrb r2, [r5, 0x14]\n\
+ lsls r0, r2, 4\n\
+ subs r0, r2\n\
+ lsls r0, 7\n\
+ adds r3, r0\n\
+ adds r3, r6\n\
+ ldrh r0, [r4, 0xC]\n\
+ strh r0, [r3]\n\
+ adds r1, 0x1\n\
+ lsls r1, 16\n\
+ lsrs r3, r1, 16\n\
+ asrs r1, 16\n\
+ movs r2, 0x10\n\
+ ldrsh r0, [r4, r2]\n\
+ cmp r1, r0\n\
+ blt _08107EE6\n\
+_08107F0C:\n\
+ ldrh r3, [r4, 0x10]\n\
+ lsls r2, r3, 16\n\
+ asrs r1, r2, 16\n\
+ movs r3, 0x12\n\
+ ldrsh r0, [r4, r3]\n\
+ cmp r1, r0\n\
+ bge _08107F40\n\
+ ldr r6, =gScanlineEffectRegBuffers\n\
+ ldr r5, =gScanlineEffect\n\
+_08107F1E:\n\
+ asrs r3, r2, 16\n\
+ lsls r2, r3, 1\n\
+ ldrb r1, [r5, 0x14]\n\
+ lsls r0, r1, 4\n\
+ subs r0, r1\n\
+ lsls r0, 7\n\
+ adds r2, r0\n\
+ adds r2, r6\n\
+ ldrh r0, [r4, 0xA]\n\
+ strh r0, [r2]\n\
+ adds r3, 0x1\n\
+ lsls r2, r3, 16\n\
+ asrs r1, r2, 16\n\
+ movs r3, 0x12\n\
+ ldrsh r0, [r4, r3]\n\
+ cmp r1, r0\n\
+ blt _08107F1E\n\
+_08107F40:\n\
+ ldrh r3, [r4, 0x12]\n\
+ lsls r1, r3, 16\n\
+ asrs r0, r1, 16\n\
+ cmp r0, 0x9F\n\
+ bgt _08108022\n\
+ ldr r6, =gScanlineEffectRegBuffers\n\
+ ldr r5, =gScanlineEffect\n\
+_08107F4E:\n\
+ asrs r3, r1, 16\n\
+ lsls r2, r3, 1\n\
+ ldrb r1, [r5, 0x14]\n\
+ lsls r0, r1, 4\n\
+ subs r0, r1\n\
+ lsls r0, 7\n\
+ adds r2, r0\n\
+ adds r2, r6\n\
+ ldrh r0, [r4, 0xC]\n\
+ strh r0, [r2]\n\
+ adds r3, 0x1\n\
+ lsls r1, r3, 16\n\
+ asrs r0, r1, 16\n\
+ cmp r0, 0x9F\n\
+ ble _08107F4E\n\
+ b _08108022\n\
+ .pool\n\
+_08107F78:\n\
+ movs r3, 0\n\
+ movs r1, 0x10\n\
+ ldrsh r0, [r4, r1]\n\
+ cmp r3, r0\n\
+ bge _08107FAC\n\
+ ldr r6, =gScanlineEffectRegBuffers\n\
+ ldr r5, =gScanlineEffect\n\
+_08107F86:\n\
+ lsls r1, r3, 16\n\
+ asrs r1, 16\n\
+ lsls r3, r1, 1\n\
+ ldrb r2, [r5, 0x14]\n\
+ lsls r0, r2, 4\n\
+ subs r0, r2\n\
+ lsls r0, 7\n\
+ adds r3, r0\n\
+ adds r3, r6\n\
+ ldrh r0, [r4, 0xC]\n\
+ strh r0, [r3]\n\
+ adds r1, 0x1\n\
+ lsls r1, 16\n\
+ lsrs r3, r1, 16\n\
+ asrs r1, 16\n\
+ movs r2, 0x10\n\
+ ldrsh r0, [r4, r2]\n\
+ cmp r1, r0\n\
+ blt _08107F86\n\
+_08107FAC:\n\
+ ldrh r3, [r4, 0x10]\n\
+ lsls r2, r3, 16\n\
+ asrs r1, r2, 16\n\
+ movs r3, 0x12\n\
+ ldrsh r0, [r4, r3]\n\
+ cmp r1, r0\n\
+ bge _08107FE0\n\
+ ldr r6, =gScanlineEffectRegBuffers\n\
+ ldr r5, =gScanlineEffect\n\
+_08107FBE:\n\
+ asrs r3, r2, 16\n\
+ lsls r2, r3, 1\n\
+ ldrb r1, [r5, 0x14]\n\
+ lsls r0, r1, 4\n\
+ subs r0, r1\n\
+ lsls r0, 7\n\
+ adds r2, r0\n\
+ adds r2, r6\n\
+ ldrh r0, [r4, 0xA]\n\
+ strh r0, [r2]\n\
+ adds r3, 0x1\n\
+ lsls r2, r3, 16\n\
+ asrs r1, r2, 16\n\
+ movs r3, 0x12\n\
+ ldrsh r0, [r4, r3]\n\
+ cmp r1, r0\n\
+ blt _08107FBE\n\
+_08107FE0:\n\
+ ldrh r3, [r4, 0x12]\n\
+ lsls r1, r3, 16\n\
+ asrs r0, r1, 16\n\
+ cmp r0, 0x9F\n\
+ bgt _0810800C\n\
+ ldr r6, =gScanlineEffectRegBuffers\n\
+ ldr r5, =gScanlineEffect\n\
+_08107FEE:\n\
+ asrs r3, r1, 16\n\
+ lsls r2, r3, 1\n\
+ ldrb r1, [r5, 0x14]\n\
+ lsls r0, r1, 4\n\
+ subs r0, r1\n\
+ lsls r0, 7\n\
+ adds r2, r0\n\
+ adds r2, r6\n\
+ ldrh r0, [r4, 0xC]\n\
+ strh r0, [r2]\n\
+ adds r3, 0x1\n\
+ lsls r1, r3, 16\n\
+ asrs r0, r1, 16\n\
+ cmp r0, 0x9F\n\
+ ble _08107FEE\n\
+_0810800C:\n\
+ movs r0, 0x26\n\
+ ldrsh r1, [r4, r0]\n\
+ movs r0, 0x1\n\
+ negs r0, r0\n\
+ cmp r1, r0\n\
+ bne _08108022\n\
+ bl ScanlineEffect_Stop\n\
+ adds r0, r7, 0\n\
+ bl DestroyTask\n\
+_08108022:\n\
+ add sp, 0xC\n\
+ pop {r4-r7}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .pool\n");
+}
+#endif
+
+void sub_8108034(struct Sprite *sprite)
+{
+ s16 randData;
+ s16 randData2;
+
+ sprite->oam.tileNum += 8;
+ sub_80A6980(sprite, TRUE);
+ randData = (Random2() & 0xFF) | 256;
+ randData2 = (Random2() & 0x1FF);
+ if (randData2 > 255)
+ randData2 = 256 - randData2;
+ sprite->data[1] = randData;
+ sprite->data[2] = randData2;
+ sprite->callback = sub_8108098;
+}
+
+void sub_8108098(struct Sprite *sprite)
+{
+ sprite->data[3] += sprite->data[1];
+ sprite->data[4] += sprite->data[2];
+ if (sprite->data[1] & 1)
+ sprite->pos2.x = -(sprite->data[3] >> 8);
+ else
+ sprite->pos2.x = sprite->data[3] >> 8;
+ sprite->pos2.y = sprite->data[4] >> 8;
+ if (++sprite->data[0] == 21)
+ DestroyAnimSprite(sprite);
+}
+
+void sub_81080E4(u8 taskId)
+{
+ struct Task *task = &gTasks[taskId];
+
+ task->data[15] = GetAnimBattlerSpriteId(ANIM_ATTACKER);
+ task->data[5] = gSprites[task->data[15]].pos1.y;
+ task->data[1] = sub_8108384();
+ PrepareBattlerSpriteForRotScale(task->data[15], ST_OAM_OBJ_NORMAL);
+ task->func = sub_8108140;
+}
+
+void sub_8108140(u8 taskId)
+{
+ struct Task *task = &gTasks[taskId];
+
+ switch (task->data[0])
+ {
+ case 0:
+ sub_80A805C(task, task->data[15], 0x100, 0x100, 224, 0x200, 32);
+ task->data[0]++;
+ case 1:
+ if (++task->data[3] > 1)
+ {
+ task->data[3] = 0;
+ if (++task->data[4] & 1)
+ {
+ gSprites[task->data[15]].pos2.x = 3;
+ gSprites[task->data[15]].pos1.y++;
+ }
+ else
+ {
+ gSprites[task->data[15]].pos2.x = -3;
+ }
+ }
+ if (sub_80A80C8(task) == 0)
+ {
+ SetBattlerSpriteYOffsetFromYScale(task->data[15]);
+ gSprites[task->data[15]].pos2.x = 0;
+ task->data[3] = 0;
+ task->data[4] = 0;
+ task->data[0]++;
+ }
+ break;
+ case 2:
+ if (++task->data[3] > 4)
+ {
+ sub_80A805C(task, task->data[15], 224, 0x200, 384, 224, 8);
+ task->data[3] = 0;
+ task->data[0]++;
+ }
+ break;
+ case 3:
+ if (sub_80A80C8(task) == 0)
+ {
+ task->data[3] = 0;
+ task->data[4] = 0;
+ task->data[0]++;
+ }
+ break;
+ case 4:
+ sub_8108408(task, taskId);
+ task->data[0]++;
+ case 5:
+ if (++task->data[3] > 1)
+ {
+ task->data[3] = 0;
+ if (++task->data[4] & 1)
+ gSprites[task->data[15]].pos2.y += 2;
+ else
+ gSprites[task->data[15]].pos2.y -= 2;
+ if (task->data[4] == 10)
+ {
+ sub_80A805C(task, task->data[15], 384, 224, 0x100, 0x100, 8);
+ task->data[3] = 0;
+ task->data[4] = 0;
+ task->data[0]++;
+ }
+ }
+ break;
+ case 6:
+ gSprites[task->data[15]].pos1.y--;
+ if (sub_80A80C8(task) == 0)
+ {
+ ResetSpriteRotScale(task->data[15]);
+ gSprites[task->data[15]].pos1.y = task->data[5];
+ task->data[4] = 0;
+ task->data[0]++;
+ }
+ break;
+ case 7:
+ if (task->data[2] == 0)
+ DestroyAnimVisualTask(taskId);
+ break;
+ }
+}
+
+u8 sub_8108384(void)
+{
+ u8 i;
+ u16 hp;
+ u16 maxhp;
+ u16 partyIndex;
+ struct Pokemon *slot;
+
+ if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER)
+ {
+ partyIndex = gBattlerPartyIndexes[gBattleAnimAttacker];
+ slot = &gPlayerParty[partyIndex];
+ maxhp = GetMonData(slot, MON_DATA_MAX_HP);
+ hp = GetMonData(slot, MON_DATA_HP);
+ maxhp /= 4;
+ }
+ else
+ {
+ partyIndex = gBattlerPartyIndexes[gBattleAnimAttacker];
+ slot = &gEnemyParty[partyIndex];
+ maxhp = GetMonData(slot, MON_DATA_MAX_HP);
+ hp = GetMonData(slot, MON_DATA_HP);
+ maxhp /= 4;
+ }
+ for (i = 0; i < 3; i++)
+ {
+ if (hp < maxhp * (i + 1))
+ return i;
+ }
+ return 3;
+}
+
+void sub_8108408(struct Task *task, u8 taskId)
+{
+ s16 i;
+ s16 attackerCoordX = GetBattlerSpriteCoord(gBattleAnimAttacker, 2);
+ s16 attackerCoordY = GetBattlerSpriteCoord(gBattleAnimAttacker, 3);
+ s16 trigIndex = 172;
+ u8 subpriority = GetBattlerSpriteSubpriority(gBattleAnimAttacker) - 1;
+ s16 increment = 4 - task->data[1];
+ u8 spriteId;
+
+ if (increment <= 0)
+ increment = 1;
+ for (i = 0; i < 20; i += increment)
+ {
+ spriteId = CreateSprite(&gUnknown_08595268, attackerCoordX, attackerCoordY, subpriority);
+ if (spriteId != MAX_SPRITES)
+ {
+ gSprites[spriteId].data[1] = i;
+ gSprites[spriteId].data[2] = attackerCoordX * 16;
+ gSprites[spriteId].data[3] = attackerCoordY * 16;
+ gSprites[spriteId].data[4] = Cos(trigIndex, 64);
+ gSprites[spriteId].data[5] = Sin(trigIndex, 64);
+ gSprites[spriteId].data[6] = taskId;
+ gSprites[spriteId].data[7] = 2;
+ if (task->data[2] & 1)
+ sub_810851C(&gSprites[spriteId]);
+ task->data[2]++;
+ }
+ trigIndex = (trigIndex + increment * 2);
+ trigIndex &= 0xFF;
+ }
+}
+
+void sub_810851C(struct Sprite *sprite)
+{
+ switch (sprite->data[0])
+ {
+ case 0:
+ sprite->data[4] += (sprite->data[1] % 6) * 3;
+ sprite->data[5] += (sprite->data[1] % 3) * 3;
+ sprite->data[0]++;
+ case 1:
+ sprite->data[2] += sprite->data[4];
+ sprite->data[3] += sprite->data[5];
+ sprite->pos1.x = sprite->data[2] >> 4;
+ sprite->pos1.y = sprite->data[3] >> 4;
+ if (sprite->pos1.x < -8 || sprite->pos1.x > 248 || sprite->pos1.y < -8 || sprite->pos1.y > 120)
+ {
+ gTasks[sprite->data[6]].data[sprite->data[7]]--;
+ DestroySprite(sprite);
+ }
+ break;
+ }
+}
+
+void sub_81085C8(u8 taskId)
+{
+ struct Task *task = &gTasks[taskId];
+
+ task->data[1] = sub_8108384();
+ if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER)
+ {
+ task->data[4] = 136;
+ task->data[6] = 40;
+ }
+ else
+ {
+ task->data[4] = 16;
+ task->data[6] = 80;
+ }
+ task->data[5] = 98;
+ task->data[7] = task->data[4] + 49;
+ task->data[12] = task->data[1] * 5 + 5;
+ task->func = sub_810862C;
+}
+
+void sub_810862C(u8 taskId)
+{
+ struct Task *task = &gTasks[taskId];
+ u8 taskId2;
+
+ switch (task->data[0])
+ {
+ case 0:
+ if (++task->data[2] > 2)
+ {
+ task->data[2] = 0;
+ sub_810871C(task, taskId);
+ }
+ if (task->data[10] != 0 && task->data[13] == 0)
+ {
+ gBattleAnimArgs[0] = 1;
+ gBattleAnimArgs[1] = 0;
+ gBattleAnimArgs[2] = 12;
+ taskId2 = CreateTask(sub_81152DC, 80);
+ if (taskId2 != 0xFF)
+ {
+ gTasks[taskId2].func(taskId2);
+ gAnimVisualTaskCount++;
+ }
+ gBattleAnimArgs[0] = 3;
+ taskId2 = CreateTask(sub_81152DC, 80);
+ if (taskId2 != 0xFF)
+ {
+ gTasks[taskId2].func(taskId2);
+ gAnimVisualTaskCount++;
+ }
+ task->data[13] = 1;
+ }
+ if (task->data[11] >= task->data[12])
+ task->data[0]++;
+ break;
+ case 1:
+ if (task->data[9] == 0)
+ DestroyAnimVisualTask(taskId);
+ break;
+ }
+}
+
+void sub_810871C(struct Task *task, u8 taskId)
+{
+ u16 yPosArg = ((gSineTable[task->data[8]] + 3) >> 4) + task->data[6];
+ u8 spriteId = CreateSprite(&gUnknown_08595268, task->data[7], 0, 0);
+
+ if (spriteId != MAX_SPRITES)
+ {
+ gSprites[spriteId].callback = sub_81087C0;
+ gSprites[spriteId].data[5] = yPosArg;
+ gSprites[spriteId].data[6] = taskId;
+ gSprites[spriteId].data[7] = 9;
+ task->data[9]++;
+ }
+ task->data[11]++;
+ task->data[8] = (task->data[8] + 39) & 0xFF;
+ task->data[7] = ((task->data[7] * 0x41c64e6d + 0x3039) % task->data[5]) + task->data[4];
+}
+
+void sub_81087C0(struct Sprite *sprite)
+{
+ if (sprite->data[0] == 0)
+ {
+ sprite->pos1.y += 8;
+ if (sprite->pos1.y >= sprite->data[5])
+ {
+ gTasks[sprite->data[6]].data[10] = 1;
+ sprite->data[1] = CreateSprite(&gUnknown_08597388, sprite->pos1.x, sprite->pos1.y, 1);
+ if (sprite->data[1] != MAX_SPRITES)
+ {
+ StartSpriteAffineAnim(&gSprites[sprite->data[1]], 3);
+ gSprites[sprite->data[1]].data[6] = sprite->data[6];
+ gSprites[sprite->data[1]].data[7] = sprite->data[7];
+ gSprites[sprite->data[1]].callback = sub_810886C;
+ }
+ DestroySprite(sprite);
+ }
+ }
+}
+
+void sub_810886C(struct Sprite *sprite)
+{
+ if (++sprite->data[1] > 1)
+ {
+ sprite->data[1] = 0;
+ sprite->invisible ^= 1;
+ if (++sprite->data[2] == 12)
+ {
+ gTasks[sprite->data[6]].data[sprite->data[7]]--;
+ FreeOamMatrix(sprite->oam.matrixNum);
+ DestroySprite(sprite);
+ }
+ }
+}
+
+void sub_81088E4(u8 taskId)
+{
+ struct Task *task = &gTasks[taskId];
+
+ task->data[3] = GetBattlerSpriteCoord(gBattleAnimAttacker, 2);
+ task->data[4] = GetBattlerSpriteCoord(gBattleAnimAttacker, 3);
+ task->data[7] = (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) ? 1 : -1;
+ if (IsContest())
+ task->data[7] *= -1;
+ task->data[5] = task->data[3] + task->data[7] * 8;
+ task->data[6] = task->data[4] - task->data[7] * 8;
+ task->data[9] = -32;
+ task->data[1] = 0;
+ task->data[0] = 0;
+ task->func = sub_8108978;
+}
+
+void sub_8108978(u8 taskId)
+{
+ struct Task *task = &gTasks[taskId];
+
+ switch (task->data[0])
+ {
+ case 0:
+ sub_8108AC0(task);
+ if (task->data[10] != 0)
+ task->data[0]++;
+ break;
+ case 1:
+ sub_8108AC0(task);
+ if (++task->data[1] > 16)
+ {
+ task->data[1] = 0;
+ task->data[0]++;
+ }
+ break;
+ case 2:
+ sub_8108AC0(task);
+ task->data[5] += task->data[7] * 6;
+ if (!(task->data[5] >= -16 && task->data[5] <= 256))
+ {
+ if (++task->data[12] > 2)
+ {
+ task->data[13] = 1;
+ task->data[0] = 6;
+ task->data[1] = 0;
+ }
+ else
+ {
+ task->data[1] = 0;
+ task->data[0]++;
+ }
+ }
+ break;
+ case 3:
+ sub_8108AC0(task);
+ task->data[6] -= task->data[7] * 2;
+ if (++task->data[1] > 7)
+ task->data[0]++;
+ break;
+ case 4:
+ sub_8108AC0(task);
+ task->data[5] -= task->data[7] * 6;
+ if (!(task->data[5] >= -16 && task->data[5] <= 256))
+ {
+ task->data[12]++;
+ task->data[1] = 0;
+ task->data[0]++;
+ }
+ break;
+ case 5:
+ sub_8108AC0(task);
+ task->data[6] -= task->data[7] * 2;
+ if (++task->data[1] > 7)
+ task->data[0] = 2;
+ break;
+ case 6:
+ if (task->data[8] == 0)
+ task->data[0]++;
+ break;
+ default:
+ DestroyAnimVisualTask(taskId);
+ break;
+ }
+}
+
+void sub_8108AC0(struct Task *task)
+{
+ u8 spriteId;
+
+ if (++task->data[2] > 1)
+ {
+ task->data[2] = 0;
+ spriteId = CreateSprite(&gUnknown_08595268, task->data[3], task->data[4], 10);
+ if (spriteId != MAX_SPRITES)
+ {
+ gSprites[spriteId].data[0] = 16;
+ gSprites[spriteId].data[2] = task->data[5];
+ gSprites[spriteId].data[4] = task->data[6];
+ gSprites[spriteId].data[5] = task->data[9];
+ InitAnimArcTranslation(&gSprites[spriteId]);
+ gSprites[spriteId].callback = sub_8108B2C;
+ task->data[8]++;
+ }
+ }
+}
+
+void sub_8108B2C(struct Sprite *sprite)
+{
+ if (TranslateAnimArc(sprite))
+ {
+ sprite->pos1.x += sprite->pos2.x;
+ sprite->pos1.y += sprite->pos2.y;
+ sprite->data[0] = 6;
+ sprite->data[2] = (Random2() & 0x1F) - 16 + sprite->pos1.x;
+ sprite->data[4] = (Random2() & 0x1F) - 16 + sprite->pos1.y;
+ sprite->data[5] = ~(Random2() & 7);
+ InitAnimArcTranslation(sprite);
+ sprite->callback = sub_8108B94;
+ }
+}
+
+void sub_8108B94(struct Sprite *sprite)
+{
+ u16 i;
+
+ if (TranslateAnimArc(sprite))
+ {
+ for (i = 0; i < NUM_TASKS; i++)
+ {
+ if (gTasks[i].func == sub_8108978)
+ {
+ gTasks[i].data[10] = 1;
+ gTasks[i].data[8]--;
+ DestroySprite(sprite);
+ }
+ }
+ }
+}
+
+void sub_8108BE0(struct Sprite *sprite)
+{
+ sprite->pos1.x = gBattleAnimArgs[0];
+ sprite->pos1.y = gBattleAnimArgs[1];
+ sprite->data[0] = gBattleAnimArgs[2];
+ sprite->data[1] = gBattleAnimArgs[3];
+ sprite->data[2] = gBattleAnimArgs[4];
+ sprite->data[3] = gBattleAnimArgs[5];
+ sprite->callback = sub_8108C08;
+}
+
+void sub_8108C08(struct Sprite *sprite)
+{
+ sprite->data[4] -= sprite->data[0];
+ sprite->pos2.y = sprite->data[4] / 10;
+ sprite->data[5] = (sprite->data[5] + sprite->data[1]) & 0xFF;
+ sprite->pos2.x = Sin(sprite->data[5], sprite->data[2]);
+ if (--sprite->data[3] == 0)
+ DestroyAnimSprite(sprite);
+}
+
+void sub_8108C54(struct Sprite *sprite)
+{
+ sprite->data[3] += sprite->data[1];
+ sprite->data[4] += sprite->data[2];
+ sprite->pos2.x = sprite->data[3] >> 7;
+ sprite->pos2.y = sprite->data[4] >> 7;
+ if (--sprite->data[0] == 0)
+ {
+ FreeSpriteOamMatrix(sprite);
+ DestroySprite(sprite);
+ }
+}
+
+void sub_8108C94(struct Sprite *sprite)
+{
+ InitAnimSpritePos(sprite, TRUE);
+ sprite->data[1] = GetBattlerSpriteCoord(gBattleAnimTarget, 2);
+ sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 3);
+ sprite->data[3] = gBattleAnimArgs[2];
+ sprite->data[4] = gBattleAnimArgs[3];
+ sprite->callback = sub_8108CDC;
+}
+
+void sub_8108CDC(struct Sprite *sprite)
+{
+ int xDiff = sprite->data[1] - sprite->pos1.x;
+ int yDiff = sprite->data[2] - sprite->pos1.y;
+
+ sprite->pos2.x = (sprite->data[0] * xDiff) / sprite->data[3];
+ sprite->pos2.y = (sprite->data[0] * yDiff) / sprite->data[3];
+ if (++sprite->data[5] == sprite->data[4])
+ {
+ sprite->data[5] = 0;
+ sub_8108D54(sprite, xDiff, yDiff);
+ }
+ if (sprite->data[3] == sprite->data[0])
+ DestroyAnimSprite(sprite);
+ sprite->data[0]++;
+}
+
+#ifdef NONMATCHING
+void sub_8108D54(struct Sprite *sprite, int xDiff, int yDiff)
+{
+ s16 something = sprite->data[0] / 2;
+ s16 combinedX = sprite->pos1.x + sprite->pos2.x;
+ s16 combinedY = sprite->pos1.y + sprite->pos2.y;
+ s16 randomSomethingY = yDiff + (Random2() % 10) - 5;
+ s16 randomSomethingX = -xDiff + (Random2() % 10) - 5;
+ s16 i;
+ u8 spriteId;
+
+ for (i = 0; i <= 0; i++)
+ {
+ spriteId = CreateSprite(&gUnknown_08595310, combinedX, combinedY + something, 130);
+ gSprites[spriteId].data[0] = 20;
+ gSprites[spriteId].data[1] = randomSomethingY;
+ gSprites[spriteId].subpriority = GetBattlerSpriteSubpriority(gBattleAnimAttacker) - 1;
+ if (randomSomethingX < 0)
+ gSprites[spriteId].data[2] = -randomSomethingX;
+ else
+ gSprites[spriteId].data[2] = randomSomethingX;
+ }
+ for (i = 0; i <= 0; i++)
+ {
+ spriteId = CreateSprite(&gUnknown_08595310, combinedX, combinedY - something, 130);
+ gSprites[spriteId].data[0] = 20;
+ gSprites[spriteId].data[1] = randomSomethingY;
+ gSprites[spriteId].subpriority = GetBattlerSpriteSubpriority(gBattleAnimAttacker) - 1;
+ if (randomSomethingX > 0)
+ gSprites[spriteId].data[2] = -randomSomethingX;
+ else
+ gSprites[spriteId].data[2] = randomSomethingX;
+ }
+}
+#else
+NAKED
+void sub_8108D54(struct Sprite *sprite, int xDiff, int yDiff)
+{
+ asm_unified("push {r4-r7,lr}\n\
+ mov r7, r10\n\
+ mov r6, r9\n\
+ mov r5, r8\n\
+ push {r5-r7}\n\
+ sub sp, 0x18\n\
+ adds r4, r1, 0\n\
+ adds r5, r2, 0\n\
+ movs r2, 0x2E\n\
+ ldrsh r1, [r0, r2]\n\
+ lsrs r2, r1, 31\n\
+ adds r1, r2\n\
+ lsls r1, 15\n\
+ lsrs r1, 16\n\
+ str r1, [sp]\n\
+ ldrh r1, [r0, 0x24]\n\
+ ldrh r3, [r0, 0x20]\n\
+ adds r1, r3\n\
+ lsls r1, 16\n\
+ lsrs r1, 16\n\
+ mov r8, r1\n\
+ ldrh r1, [r0, 0x26]\n\
+ ldrh r0, [r0, 0x22]\n\
+ adds r1, r0\n\
+ lsls r1, 16\n\
+ lsrs r1, 16\n\
+ mov r10, r1\n\
+ bl Random2\n\
+ lsls r0, 16\n\
+ lsrs r0, 16\n\
+ movs r1, 0xA\n\
+ bl __umodsi3\n\
+ adds r0, r5, r0\n\
+ subs r0, 0x5\n\
+ lsls r0, 16\n\
+ lsrs r0, 16\n\
+ mov r9, r0\n\
+ bl Random2\n\
+ negs r4, r4\n\
+ lsls r0, 16\n\
+ lsrs r0, 16\n\
+ movs r1, 0xA\n\
+ bl __umodsi3\n\
+ adds r4, r0\n\
+ subs r4, 0x5\n\
+ lsls r4, 16\n\
+ lsrs r7, r4, 16\n\
+ movs r6, 0\n\
+ mov r0, r8\n\
+ lsls r0, 16\n\
+ mov r8, r0\n\
+ mov r1, r10\n\
+ lsls r1, 16\n\
+ str r1, [sp, 0xC]\n\
+ ldr r2, [sp]\n\
+ lsls r2, 16\n\
+ str r2, [sp, 0x10]\n\
+ asrs r1, 16\n\
+ lsls r0, r7, 16\n\
+ asrs r5, r0, 16\n\
+ str r0, [sp, 0x14]\n\
+ negs r3, r5\n\
+ str r3, [sp, 0x4]\n\
+ asrs r0, r2, 16\n\
+ adds r1, r0\n\
+ lsls r1, 16\n\
+ mov r10, r1\n\
+_08108DE2:\n\
+ ldr r0, =gUnknown_08595310\n\
+ mov r2, r8\n\
+ asrs r1, r2, 16\n\
+ mov r3, r10\n\
+ asrs r2, r3, 16\n\
+ movs r3, 0x82\n\
+ bl CreateSprite\n\
+ lsls r0, 24\n\
+ lsrs r2, r0, 24\n\
+ ldr r1, =gSprites\n\
+ lsls r0, r2, 4\n\
+ adds r0, r2\n\
+ lsls r0, 2\n\
+ adds r4, r0, r1\n\
+ movs r0, 0x14\n\
+ strh r0, [r4, 0x2E]\n\
+ mov r0, r9\n\
+ strh r0, [r4, 0x30]\n\
+ ldr r0, =gBattleAnimAttacker\n\
+ ldrb r0, [r0]\n\
+ bl GetBattlerSpriteSubpriority\n\
+ subs r0, 0x1\n\
+ adds r1, r4, 0\n\
+ adds r1, 0x43\n\
+ strb r0, [r1]\n\
+ cmp r5, 0\n\
+ bge _08108E30\n\
+ mov r1, sp\n\
+ ldrh r1, [r1, 0x4]\n\
+ strh r1, [r4, 0x32]\n\
+ b _08108E32\n\
+ .pool\n\
+_08108E30:\n\
+ strh r7, [r4, 0x32]\n\
+_08108E32:\n\
+ lsls r0, r6, 16\n\
+ movs r2, 0x80\n\
+ lsls r2, 9\n\
+ adds r0, r2\n\
+ lsrs r6, r0, 16\n\
+ cmp r0, 0\n\
+ ble _08108DE2\n\
+ movs r6, 0\n\
+ ldr r3, [sp, 0xC]\n\
+ asrs r1, r3, 16\n\
+ ldr r0, [sp, 0x14]\n\
+ asrs r5, r0, 16\n\
+ negs r2, r5\n\
+ str r2, [sp, 0x8]\n\
+ ldr r3, [sp, 0x10]\n\
+ asrs r0, r3, 16\n\
+ subs r1, r0\n\
+ lsls r1, 16\n\
+ mov r10, r1\n\
+_08108E58:\n\
+ ldr r0, =gUnknown_08595310\n\
+ mov r2, r8\n\
+ asrs r1, r2, 16\n\
+ mov r3, r10\n\
+ asrs r2, r3, 16\n\
+ movs r3, 0x82\n\
+ bl CreateSprite\n\
+ lsls r0, 24\n\
+ lsrs r2, r0, 24\n\
+ ldr r1, =gSprites\n\
+ lsls r0, r2, 4\n\
+ adds r0, r2\n\
+ lsls r0, 2\n\
+ adds r4, r0, r1\n\
+ movs r0, 0x14\n\
+ strh r0, [r4, 0x2E]\n\
+ mov r0, r9\n\
+ strh r0, [r4, 0x30]\n\
+ ldr r0, =gBattleAnimAttacker\n\
+ ldrb r0, [r0]\n\
+ bl GetBattlerSpriteSubpriority\n\
+ subs r0, 0x1\n\
+ adds r1, r4, 0\n\
+ adds r1, 0x43\n\
+ strb r0, [r1]\n\
+ cmp r5, 0\n\
+ ble _08108EA8\n\
+ mov r1, sp\n\
+ ldrh r1, [r1, 0x8]\n\
+ strh r1, [r4, 0x32]\n\
+ b _08108EAA\n\
+ .pool\n\
+_08108EA8:\n\
+ strh r7, [r4, 0x32]\n\
+_08108EAA:\n\
+ lsls r0, r6, 16\n\
+ movs r2, 0x80\n\
+ lsls r2, 9\n\
+ adds r0, r2\n\
+ lsrs r6, r0, 16\n\
+ cmp r0, 0\n\
+ ble _08108E58\n\
+ add sp, 0x18\n\
+ pop {r3-r5}\n\
+ mov r8, r3\n\
+ mov r9, r4\n\
+ mov r10, r5\n\
+ pop {r4-r7}\n\
+ pop {r0}\n\
+ bx r0\n");
+}
+#endif