diff --git a/data/maps/LittlerootTown_ProfessorBirchsLab/scripts.inc b/data/maps/LittlerootTown_ProfessorBirchsLab/scripts.inc index 4ebc03c8c9..b9ce0c8092 100644 --- a/data/maps/LittlerootTown_ProfessorBirchsLab/scripts.inc +++ b/data/maps/LittlerootTown_ProfessorBirchsLab/scripts.inc @@ -584,7 +584,7 @@ LittlerootTown_ProfessorBirchsLab_EventScript_ReceivePokedex:: @ 81FA3AC message LittlerootTown_ProfessorBirchsLab_Text_ReceivedPokedex waitfanfare setflag FLAG_SYS_POKEDEX_GET - special sub_81AFDA0 @ sets flags that are never read + special SetUnlockedPokedexFlags setflag FLAG_RECEIVED_POKEDEX_FROM_BIRCH setvar VAR_CABLE_CLUB_TUTORIAL_STATE, 1 return diff --git a/data/specials.inc b/data/specials.inc index fb2e8fe755..97cc3c782e 100644 --- a/data/specials.inc +++ b/data/specials.inc @@ -504,7 +504,7 @@ gSpecials:: @ 81DBA64 def_special GetMartEmployeeObjectEventId def_special sub_80A08CC def_special Unused_SetWeatherSunny - def_special sub_81AFDA0 + def_special SetUnlockedPokedexFlags def_special IsTrainerRegistered def_special ShouldDoBrailleRegicePuzzle def_special EnableNationalPokedex diff --git a/data/tilesets/primary/building/anim/tv_turned_on/0.png b/data/tilesets/primary/building/anim/tv_turned_on/0.png index 1d98f3621c..65645fb73c 100644 Binary files a/data/tilesets/primary/building/anim/tv_turned_on/0.png and b/data/tilesets/primary/building/anim/tv_turned_on/0.png differ diff --git a/data/tilesets/primary/building/anim/tv_turned_on/1.png b/data/tilesets/primary/building/anim/tv_turned_on/1.png index 6798473b72..6ecb516e3b 100644 Binary files a/data/tilesets/primary/building/anim/tv_turned_on/1.png and b/data/tilesets/primary/building/anim/tv_turned_on/1.png differ diff --git a/data/tilesets/primary/general/anim/flower/0.png b/data/tilesets/primary/general/anim/flower/0.png index 1254a7655c..106b75af5a 100644 Binary files a/data/tilesets/primary/general/anim/flower/0.png and b/data/tilesets/primary/general/anim/flower/0.png differ diff --git a/data/tilesets/primary/general/anim/flower/1.png b/data/tilesets/primary/general/anim/flower/1.png index 50bd949f28..cf35dfd6c1 100644 Binary files a/data/tilesets/primary/general/anim/flower/1.png and b/data/tilesets/primary/general/anim/flower/1.png differ diff --git a/data/tilesets/primary/general/anim/flower/2.png b/data/tilesets/primary/general/anim/flower/2.png index 5d8192c9dc..d482e5475e 100644 Binary files a/data/tilesets/primary/general/anim/flower/2.png and b/data/tilesets/primary/general/anim/flower/2.png differ diff --git a/data/tilesets/primary/general/anim/land_water_edge/0.png b/data/tilesets/primary/general/anim/land_water_edge/0.png index ba160b6333..c1dcd5f5a2 100644 Binary files a/data/tilesets/primary/general/anim/land_water_edge/0.png and b/data/tilesets/primary/general/anim/land_water_edge/0.png differ diff --git a/data/tilesets/primary/general/anim/land_water_edge/1.png b/data/tilesets/primary/general/anim/land_water_edge/1.png index 48274c9a0a..75aea1193a 100644 Binary files a/data/tilesets/primary/general/anim/land_water_edge/1.png and b/data/tilesets/primary/general/anim/land_water_edge/1.png differ diff --git a/data/tilesets/primary/general/anim/land_water_edge/2.png b/data/tilesets/primary/general/anim/land_water_edge/2.png index 9e1f98c1bc..bafda3aa27 100644 Binary files a/data/tilesets/primary/general/anim/land_water_edge/2.png and b/data/tilesets/primary/general/anim/land_water_edge/2.png differ diff --git a/data/tilesets/primary/general/anim/land_water_edge/3.png b/data/tilesets/primary/general/anim/land_water_edge/3.png index c5b446f655..8d9645f6b7 100644 Binary files a/data/tilesets/primary/general/anim/land_water_edge/3.png and b/data/tilesets/primary/general/anim/land_water_edge/3.png differ diff --git a/data/tilesets/primary/general/anim/sand_water_edge/0.png b/data/tilesets/primary/general/anim/sand_water_edge/0.png index 80c99c4739..46dcf9088d 100644 Binary files a/data/tilesets/primary/general/anim/sand_water_edge/0.png and b/data/tilesets/primary/general/anim/sand_water_edge/0.png differ diff --git a/data/tilesets/primary/general/anim/sand_water_edge/1.png b/data/tilesets/primary/general/anim/sand_water_edge/1.png index 52051f056b..4188eefbe3 100644 Binary files a/data/tilesets/primary/general/anim/sand_water_edge/1.png and b/data/tilesets/primary/general/anim/sand_water_edge/1.png differ diff --git a/data/tilesets/primary/general/anim/sand_water_edge/2.png b/data/tilesets/primary/general/anim/sand_water_edge/2.png index 39c6e2f873..f414a71ae4 100644 Binary files a/data/tilesets/primary/general/anim/sand_water_edge/2.png and b/data/tilesets/primary/general/anim/sand_water_edge/2.png differ diff --git a/data/tilesets/primary/general/anim/sand_water_edge/3.png b/data/tilesets/primary/general/anim/sand_water_edge/3.png index abb5ff362e..0a8fc0514e 100644 Binary files a/data/tilesets/primary/general/anim/sand_water_edge/3.png and b/data/tilesets/primary/general/anim/sand_water_edge/3.png differ diff --git a/data/tilesets/primary/general/anim/sand_water_edge/4.png b/data/tilesets/primary/general/anim/sand_water_edge/4.png index a7bde98371..202cf97d52 100644 Binary files a/data/tilesets/primary/general/anim/sand_water_edge/4.png and b/data/tilesets/primary/general/anim/sand_water_edge/4.png differ diff --git a/data/tilesets/primary/general/anim/sand_water_edge/5.png b/data/tilesets/primary/general/anim/sand_water_edge/5.png index 05f88d81e8..3f984d0acf 100644 Binary files a/data/tilesets/primary/general/anim/sand_water_edge/5.png and b/data/tilesets/primary/general/anim/sand_water_edge/5.png differ diff --git a/data/tilesets/primary/general/anim/sand_water_edge/6.png b/data/tilesets/primary/general/anim/sand_water_edge/6.png index 01f9c203de..9c60501deb 100644 Binary files a/data/tilesets/primary/general/anim/sand_water_edge/6.png and b/data/tilesets/primary/general/anim/sand_water_edge/6.png differ diff --git a/data/tilesets/primary/general/anim/water/0.png b/data/tilesets/primary/general/anim/water/0.png index d3f2ea0da6..209b93b291 100644 Binary files a/data/tilesets/primary/general/anim/water/0.png and b/data/tilesets/primary/general/anim/water/0.png differ diff --git a/data/tilesets/primary/general/anim/water/1.png b/data/tilesets/primary/general/anim/water/1.png index 86b0ff1764..cf07461b63 100644 Binary files a/data/tilesets/primary/general/anim/water/1.png and b/data/tilesets/primary/general/anim/water/1.png differ diff --git a/data/tilesets/primary/general/anim/water/2.png b/data/tilesets/primary/general/anim/water/2.png index d2302180e2..28fc4de471 100644 Binary files a/data/tilesets/primary/general/anim/water/2.png and b/data/tilesets/primary/general/anim/water/2.png differ diff --git a/data/tilesets/primary/general/anim/water/3.png b/data/tilesets/primary/general/anim/water/3.png index f757f8253e..3440c0970a 100644 Binary files a/data/tilesets/primary/general/anim/water/3.png and b/data/tilesets/primary/general/anim/water/3.png differ diff --git a/data/tilesets/primary/general/anim/water/4.png b/data/tilesets/primary/general/anim/water/4.png index 950b885850..994d08a12a 100644 Binary files a/data/tilesets/primary/general/anim/water/4.png and b/data/tilesets/primary/general/anim/water/4.png differ diff --git a/data/tilesets/primary/general/anim/water/5.png b/data/tilesets/primary/general/anim/water/5.png index 4de7d4225e..227dbaed88 100644 Binary files a/data/tilesets/primary/general/anim/water/5.png and b/data/tilesets/primary/general/anim/water/5.png differ diff --git a/data/tilesets/primary/general/anim/water/6.png b/data/tilesets/primary/general/anim/water/6.png index 73c1cabdd2..05e05510e8 100644 Binary files a/data/tilesets/primary/general/anim/water/6.png and b/data/tilesets/primary/general/anim/water/6.png differ diff --git a/data/tilesets/primary/general/anim/water/7.png b/data/tilesets/primary/general/anim/water/7.png index 827fd8b740..fa295f8524 100644 Binary files a/data/tilesets/primary/general/anim/water/7.png and b/data/tilesets/primary/general/anim/water/7.png differ diff --git a/data/tilesets/primary/general/anim/waterfall/0.png b/data/tilesets/primary/general/anim/waterfall/0.png index e307d81aa7..f69a4686b3 100644 Binary files a/data/tilesets/primary/general/anim/waterfall/0.png and b/data/tilesets/primary/general/anim/waterfall/0.png differ diff --git a/data/tilesets/primary/general/anim/waterfall/1.png b/data/tilesets/primary/general/anim/waterfall/1.png index df6aaf3bca..9a3c68c8f4 100644 Binary files a/data/tilesets/primary/general/anim/waterfall/1.png and b/data/tilesets/primary/general/anim/waterfall/1.png differ diff --git a/data/tilesets/primary/general/anim/waterfall/2.png b/data/tilesets/primary/general/anim/waterfall/2.png index 560f89d066..4d09e8de9b 100644 Binary files a/data/tilesets/primary/general/anim/waterfall/2.png and b/data/tilesets/primary/general/anim/waterfall/2.png differ diff --git a/data/tilesets/primary/general/anim/waterfall/3.png b/data/tilesets/primary/general/anim/waterfall/3.png index a8db289aee..0c50e43fb0 100644 Binary files a/data/tilesets/primary/general/anim/waterfall/3.png and b/data/tilesets/primary/general/anim/waterfall/3.png differ diff --git a/data/tilesets/secondary/battle_frontier_outside_east/anim/flag/0.png b/data/tilesets/secondary/battle_frontier_outside_east/anim/flag/0.png index 98f1a92838..b5621be76e 100644 Binary files a/data/tilesets/secondary/battle_frontier_outside_east/anim/flag/0.png and b/data/tilesets/secondary/battle_frontier_outside_east/anim/flag/0.png differ diff --git a/data/tilesets/secondary/battle_frontier_outside_east/anim/flag/1.png b/data/tilesets/secondary/battle_frontier_outside_east/anim/flag/1.png index d0254e9ee4..56a46ce92a 100644 Binary files a/data/tilesets/secondary/battle_frontier_outside_east/anim/flag/1.png and b/data/tilesets/secondary/battle_frontier_outside_east/anim/flag/1.png differ diff --git a/data/tilesets/secondary/battle_frontier_outside_east/anim/flag/2.png b/data/tilesets/secondary/battle_frontier_outside_east/anim/flag/2.png index 1be9641b86..e51f5b5312 100644 Binary files a/data/tilesets/secondary/battle_frontier_outside_east/anim/flag/2.png and b/data/tilesets/secondary/battle_frontier_outside_east/anim/flag/2.png differ diff --git a/data/tilesets/secondary/battle_frontier_outside_east/anim/flag/3.png b/data/tilesets/secondary/battle_frontier_outside_east/anim/flag/3.png index 7a536f24c0..3ec6ff703c 100644 Binary files a/data/tilesets/secondary/battle_frontier_outside_east/anim/flag/3.png and b/data/tilesets/secondary/battle_frontier_outside_east/anim/flag/3.png differ diff --git a/data/tilesets/secondary/battle_frontier_outside_west/anim/flag/0.png b/data/tilesets/secondary/battle_frontier_outside_west/anim/flag/0.png index 98f1a92838..b5621be76e 100644 Binary files a/data/tilesets/secondary/battle_frontier_outside_west/anim/flag/0.png and b/data/tilesets/secondary/battle_frontier_outside_west/anim/flag/0.png differ diff --git a/data/tilesets/secondary/battle_frontier_outside_west/anim/flag/1.png b/data/tilesets/secondary/battle_frontier_outside_west/anim/flag/1.png index d0254e9ee4..56a46ce92a 100644 Binary files a/data/tilesets/secondary/battle_frontier_outside_west/anim/flag/1.png and b/data/tilesets/secondary/battle_frontier_outside_west/anim/flag/1.png differ diff --git a/data/tilesets/secondary/battle_frontier_outside_west/anim/flag/2.png b/data/tilesets/secondary/battle_frontier_outside_west/anim/flag/2.png index 1be9641b86..e51f5b5312 100644 Binary files a/data/tilesets/secondary/battle_frontier_outside_west/anim/flag/2.png and b/data/tilesets/secondary/battle_frontier_outside_west/anim/flag/2.png differ diff --git a/data/tilesets/secondary/battle_frontier_outside_west/anim/flag/3.png b/data/tilesets/secondary/battle_frontier_outside_west/anim/flag/3.png index 7a536f24c0..3ec6ff703c 100644 Binary files a/data/tilesets/secondary/battle_frontier_outside_west/anim/flag/3.png and b/data/tilesets/secondary/battle_frontier_outside_west/anim/flag/3.png differ diff --git a/data/tilesets/secondary/battle_pyramid/anim/statue_shadow/0.png b/data/tilesets/secondary/battle_pyramid/anim/statue_shadow/0.png index c135df8246..552bdbe0c9 100644 Binary files a/data/tilesets/secondary/battle_pyramid/anim/statue_shadow/0.png and b/data/tilesets/secondary/battle_pyramid/anim/statue_shadow/0.png differ diff --git a/data/tilesets/secondary/battle_pyramid/anim/statue_shadow/1.png b/data/tilesets/secondary/battle_pyramid/anim/statue_shadow/1.png index 2588bdac06..3b6f481e88 100644 Binary files a/data/tilesets/secondary/battle_pyramid/anim/statue_shadow/1.png and b/data/tilesets/secondary/battle_pyramid/anim/statue_shadow/1.png differ diff --git a/data/tilesets/secondary/battle_pyramid/anim/statue_shadow/2.png b/data/tilesets/secondary/battle_pyramid/anim/statue_shadow/2.png index fbbf67d2fc..cb0569e785 100644 Binary files a/data/tilesets/secondary/battle_pyramid/anim/statue_shadow/2.png and b/data/tilesets/secondary/battle_pyramid/anim/statue_shadow/2.png differ diff --git a/data/tilesets/secondary/battle_pyramid/anim/torch/0.png b/data/tilesets/secondary/battle_pyramid/anim/torch/0.png index 04bb8ad849..4becd1edcf 100644 Binary files a/data/tilesets/secondary/battle_pyramid/anim/torch/0.png and b/data/tilesets/secondary/battle_pyramid/anim/torch/0.png differ diff --git a/data/tilesets/secondary/battle_pyramid/anim/torch/1.png b/data/tilesets/secondary/battle_pyramid/anim/torch/1.png index e292686f98..91bdf8ac50 100644 Binary files a/data/tilesets/secondary/battle_pyramid/anim/torch/1.png and b/data/tilesets/secondary/battle_pyramid/anim/torch/1.png differ diff --git a/data/tilesets/secondary/battle_pyramid/anim/torch/2.png b/data/tilesets/secondary/battle_pyramid/anim/torch/2.png index fa24db001c..fb6153b4fc 100644 Binary files a/data/tilesets/secondary/battle_pyramid/anim/torch/2.png and b/data/tilesets/secondary/battle_pyramid/anim/torch/2.png differ diff --git a/data/tilesets/secondary/bike_shop/anim/blinking_lights/0.png b/data/tilesets/secondary/bike_shop/anim/blinking_lights/0.png index 127ed4e47a..f8bafb21b8 100644 Binary files a/data/tilesets/secondary/bike_shop/anim/blinking_lights/0.png and b/data/tilesets/secondary/bike_shop/anim/blinking_lights/0.png differ diff --git a/data/tilesets/secondary/bike_shop/anim/blinking_lights/1.png b/data/tilesets/secondary/bike_shop/anim/blinking_lights/1.png index 71f12a7460..d5e22861d5 100644 Binary files a/data/tilesets/secondary/bike_shop/anim/blinking_lights/1.png and b/data/tilesets/secondary/bike_shop/anim/blinking_lights/1.png differ diff --git a/data/tilesets/secondary/cave/anim/lava/0.png b/data/tilesets/secondary/cave/anim/lava/0.png index e98a161ebc..66a0472f5e 100644 Binary files a/data/tilesets/secondary/cave/anim/lava/0.png and b/data/tilesets/secondary/cave/anim/lava/0.png differ diff --git a/data/tilesets/secondary/cave/anim/lava/1.png b/data/tilesets/secondary/cave/anim/lava/1.png index 12ffcd12c5..0b2a826c24 100644 Binary files a/data/tilesets/secondary/cave/anim/lava/1.png and b/data/tilesets/secondary/cave/anim/lava/1.png differ diff --git a/data/tilesets/secondary/cave/anim/lava/2.png b/data/tilesets/secondary/cave/anim/lava/2.png index c5be89c00f..9a1eedddff 100644 Binary files a/data/tilesets/secondary/cave/anim/lava/2.png and b/data/tilesets/secondary/cave/anim/lava/2.png differ diff --git a/data/tilesets/secondary/cave/anim/lava/3.png b/data/tilesets/secondary/cave/anim/lava/3.png index 635a811547..6656b0c80a 100644 Binary files a/data/tilesets/secondary/cave/anim/lava/3.png and b/data/tilesets/secondary/cave/anim/lava/3.png differ diff --git a/data/tilesets/secondary/cave/anim/lava/4.png b/data/tilesets/secondary/cave/anim/lava/4.png index cea6ece857..a3d77615aa 100644 Binary files a/data/tilesets/secondary/cave/anim/lava/4.png and b/data/tilesets/secondary/cave/anim/lava/4.png differ diff --git a/data/tilesets/secondary/cave/anim/lava/5.png b/data/tilesets/secondary/cave/anim/lava/5.png index 01d8a300ab..c1469938af 100644 Binary files a/data/tilesets/secondary/cave/anim/lava/5.png and b/data/tilesets/secondary/cave/anim/lava/5.png differ diff --git a/data/tilesets/secondary/cave/anim/lava/6.png b/data/tilesets/secondary/cave/anim/lava/6.png index ba13bda8cc..41afe9d1fa 100644 Binary files a/data/tilesets/secondary/cave/anim/lava/6.png and b/data/tilesets/secondary/cave/anim/lava/6.png differ diff --git a/data/tilesets/secondary/cave/anim/lava/7.png b/data/tilesets/secondary/cave/anim/lava/7.png index 117f04aa4d..a6a04ffb6f 100644 Binary files a/data/tilesets/secondary/cave/anim/lava/7.png and b/data/tilesets/secondary/cave/anim/lava/7.png differ diff --git a/data/tilesets/secondary/dewford/anim/flag/0.png b/data/tilesets/secondary/dewford/anim/flag/0.png index f80971c453..c2d69b2e23 100644 Binary files a/data/tilesets/secondary/dewford/anim/flag/0.png and b/data/tilesets/secondary/dewford/anim/flag/0.png differ diff --git a/data/tilesets/secondary/dewford/anim/flag/1.png b/data/tilesets/secondary/dewford/anim/flag/1.png index b98d9cafb1..556d21170f 100644 Binary files a/data/tilesets/secondary/dewford/anim/flag/1.png and b/data/tilesets/secondary/dewford/anim/flag/1.png differ diff --git a/data/tilesets/secondary/dewford/anim/flag/2.png b/data/tilesets/secondary/dewford/anim/flag/2.png index 6f88f493f7..372a9a5db0 100644 Binary files a/data/tilesets/secondary/dewford/anim/flag/2.png and b/data/tilesets/secondary/dewford/anim/flag/2.png differ diff --git a/data/tilesets/secondary/dewford/anim/flag/3.png b/data/tilesets/secondary/dewford/anim/flag/3.png index b95b4bc9e2..6190ce3cd2 100644 Binary files a/data/tilesets/secondary/dewford/anim/flag/3.png and b/data/tilesets/secondary/dewford/anim/flag/3.png differ diff --git a/data/tilesets/secondary/elite_four/anim/floor_light/0.png b/data/tilesets/secondary/elite_four/anim/floor_light/0.png index 6e508308b7..f5c4168c30 100644 Binary files a/data/tilesets/secondary/elite_four/anim/floor_light/0.png and b/data/tilesets/secondary/elite_four/anim/floor_light/0.png differ diff --git a/data/tilesets/secondary/elite_four/anim/floor_light/1.png b/data/tilesets/secondary/elite_four/anim/floor_light/1.png index 794f26195f..e7e66e611e 100644 Binary files a/data/tilesets/secondary/elite_four/anim/floor_light/1.png and b/data/tilesets/secondary/elite_four/anim/floor_light/1.png differ diff --git a/data/tilesets/secondary/elite_four/anim/wall_lights/0.png b/data/tilesets/secondary/elite_four/anim/wall_lights/0.png index 108a2099be..3ce30e90b3 100644 Binary files a/data/tilesets/secondary/elite_four/anim/wall_lights/0.png and b/data/tilesets/secondary/elite_four/anim/wall_lights/0.png differ diff --git a/data/tilesets/secondary/elite_four/anim/wall_lights/1.png b/data/tilesets/secondary/elite_four/anim/wall_lights/1.png index 64b23f0613..d28ff55152 100644 Binary files a/data/tilesets/secondary/elite_four/anim/wall_lights/1.png and b/data/tilesets/secondary/elite_four/anim/wall_lights/1.png differ diff --git a/data/tilesets/secondary/elite_four/anim/wall_lights/2.png b/data/tilesets/secondary/elite_four/anim/wall_lights/2.png index 0d9f603fc3..9a18c5c46f 100644 Binary files a/data/tilesets/secondary/elite_four/anim/wall_lights/2.png and b/data/tilesets/secondary/elite_four/anim/wall_lights/2.png differ diff --git a/data/tilesets/secondary/elite_four/anim/wall_lights/3.png b/data/tilesets/secondary/elite_four/anim/wall_lights/3.png index 64b23f0613..d28ff55152 100644 Binary files a/data/tilesets/secondary/elite_four/anim/wall_lights/3.png and b/data/tilesets/secondary/elite_four/anim/wall_lights/3.png differ diff --git a/data/tilesets/secondary/ever_grande/anim/flowers/0.png b/data/tilesets/secondary/ever_grande/anim/flowers/0.png index ac03df40bb..6493e2e821 100644 Binary files a/data/tilesets/secondary/ever_grande/anim/flowers/0.png and b/data/tilesets/secondary/ever_grande/anim/flowers/0.png differ diff --git a/data/tilesets/secondary/ever_grande/anim/flowers/1.png b/data/tilesets/secondary/ever_grande/anim/flowers/1.png index ac03df40bb..6493e2e821 100644 Binary files a/data/tilesets/secondary/ever_grande/anim/flowers/1.png and b/data/tilesets/secondary/ever_grande/anim/flowers/1.png differ diff --git a/data/tilesets/secondary/ever_grande/anim/flowers/2.png b/data/tilesets/secondary/ever_grande/anim/flowers/2.png index 4f8baa2a30..0b1f568cbf 100644 Binary files a/data/tilesets/secondary/ever_grande/anim/flowers/2.png and b/data/tilesets/secondary/ever_grande/anim/flowers/2.png differ diff --git a/data/tilesets/secondary/ever_grande/anim/flowers/3.png b/data/tilesets/secondary/ever_grande/anim/flowers/3.png index f120dee16e..edc7220b8f 100644 Binary files a/data/tilesets/secondary/ever_grande/anim/flowers/3.png and b/data/tilesets/secondary/ever_grande/anim/flowers/3.png differ diff --git a/data/tilesets/secondary/ever_grande/anim/flowers/4.png b/data/tilesets/secondary/ever_grande/anim/flowers/4.png index ac03df40bb..6493e2e821 100644 Binary files a/data/tilesets/secondary/ever_grande/anim/flowers/4.png and b/data/tilesets/secondary/ever_grande/anim/flowers/4.png differ diff --git a/data/tilesets/secondary/ever_grande/anim/flowers/5.png b/data/tilesets/secondary/ever_grande/anim/flowers/5.png index ac03df40bb..6493e2e821 100644 Binary files a/data/tilesets/secondary/ever_grande/anim/flowers/5.png and b/data/tilesets/secondary/ever_grande/anim/flowers/5.png differ diff --git a/data/tilesets/secondary/ever_grande/anim/flowers/6.png b/data/tilesets/secondary/ever_grande/anim/flowers/6.png index d7cfd45294..4d43dfd0a9 100644 Binary files a/data/tilesets/secondary/ever_grande/anim/flowers/6.png and b/data/tilesets/secondary/ever_grande/anim/flowers/6.png differ diff --git a/data/tilesets/secondary/ever_grande/anim/flowers/7.png b/data/tilesets/secondary/ever_grande/anim/flowers/7.png index d7cfd45294..4d43dfd0a9 100644 Binary files a/data/tilesets/secondary/ever_grande/anim/flowers/7.png and b/data/tilesets/secondary/ever_grande/anim/flowers/7.png differ diff --git a/data/tilesets/secondary/lavaridge/anim/steam/0.png b/data/tilesets/secondary/lavaridge/anim/steam/0.png index 434041fbd8..adf450afd7 100644 Binary files a/data/tilesets/secondary/lavaridge/anim/steam/0.png and b/data/tilesets/secondary/lavaridge/anim/steam/0.png differ diff --git a/data/tilesets/secondary/lavaridge/anim/steam/1.png b/data/tilesets/secondary/lavaridge/anim/steam/1.png index ebc028ed49..df7ad34195 100644 Binary files a/data/tilesets/secondary/lavaridge/anim/steam/1.png and b/data/tilesets/secondary/lavaridge/anim/steam/1.png differ diff --git a/data/tilesets/secondary/lavaridge/anim/steam/2.png b/data/tilesets/secondary/lavaridge/anim/steam/2.png index aee227f05d..2a8c8a28ca 100644 Binary files a/data/tilesets/secondary/lavaridge/anim/steam/2.png and b/data/tilesets/secondary/lavaridge/anim/steam/2.png differ diff --git a/data/tilesets/secondary/lavaridge/anim/steam/3.png b/data/tilesets/secondary/lavaridge/anim/steam/3.png index 99149ae625..8dcaa6c82c 100644 Binary files a/data/tilesets/secondary/lavaridge/anim/steam/3.png and b/data/tilesets/secondary/lavaridge/anim/steam/3.png differ diff --git a/data/tilesets/secondary/mauville/anim/flower_1/0.png b/data/tilesets/secondary/mauville/anim/flower_1/0.png index b20c5470ee..263dba0700 100644 Binary files a/data/tilesets/secondary/mauville/anim/flower_1/0.png and b/data/tilesets/secondary/mauville/anim/flower_1/0.png differ diff --git a/data/tilesets/secondary/mauville/anim/flower_1/1.png b/data/tilesets/secondary/mauville/anim/flower_1/1.png index 0587295fc5..66179f13dd 100644 Binary files a/data/tilesets/secondary/mauville/anim/flower_1/1.png and b/data/tilesets/secondary/mauville/anim/flower_1/1.png differ diff --git a/data/tilesets/secondary/mauville/anim/flower_1/2.png b/data/tilesets/secondary/mauville/anim/flower_1/2.png index af0dd4ffe3..63250e7b03 100644 Binary files a/data/tilesets/secondary/mauville/anim/flower_1/2.png and b/data/tilesets/secondary/mauville/anim/flower_1/2.png differ diff --git a/data/tilesets/secondary/mauville/anim/flower_1/3.png b/data/tilesets/secondary/mauville/anim/flower_1/3.png index bc132f2ef5..b1015d370b 100644 Binary files a/data/tilesets/secondary/mauville/anim/flower_1/3.png and b/data/tilesets/secondary/mauville/anim/flower_1/3.png differ diff --git a/data/tilesets/secondary/mauville/anim/flower_1/4.png b/data/tilesets/secondary/mauville/anim/flower_1/4.png index 911b980a3c..1e8cb84afe 100644 Binary files a/data/tilesets/secondary/mauville/anim/flower_1/4.png and b/data/tilesets/secondary/mauville/anim/flower_1/4.png differ diff --git a/data/tilesets/secondary/mauville/anim/flower_2/0.png b/data/tilesets/secondary/mauville/anim/flower_2/0.png index b20c5470ee..263dba0700 100644 Binary files a/data/tilesets/secondary/mauville/anim/flower_2/0.png and b/data/tilesets/secondary/mauville/anim/flower_2/0.png differ diff --git a/data/tilesets/secondary/mauville/anim/flower_2/1.png b/data/tilesets/secondary/mauville/anim/flower_2/1.png index 0587295fc5..66179f13dd 100644 Binary files a/data/tilesets/secondary/mauville/anim/flower_2/1.png and b/data/tilesets/secondary/mauville/anim/flower_2/1.png differ diff --git a/data/tilesets/secondary/mauville/anim/flower_2/2.png b/data/tilesets/secondary/mauville/anim/flower_2/2.png index af0dd4ffe3..63250e7b03 100644 Binary files a/data/tilesets/secondary/mauville/anim/flower_2/2.png and b/data/tilesets/secondary/mauville/anim/flower_2/2.png differ diff --git a/data/tilesets/secondary/mauville/anim/flower_2/3.png b/data/tilesets/secondary/mauville/anim/flower_2/3.png index bc132f2ef5..b1015d370b 100644 Binary files a/data/tilesets/secondary/mauville/anim/flower_2/3.png and b/data/tilesets/secondary/mauville/anim/flower_2/3.png differ diff --git a/data/tilesets/secondary/mauville/anim/flower_2/4.png b/data/tilesets/secondary/mauville/anim/flower_2/4.png index 911b980a3c..1e8cb84afe 100644 Binary files a/data/tilesets/secondary/mauville/anim/flower_2/4.png and b/data/tilesets/secondary/mauville/anim/flower_2/4.png differ diff --git a/data/tilesets/secondary/mauville_gym/anim/electric_gates/0.png b/data/tilesets/secondary/mauville_gym/anim/electric_gates/0.png index ebf603978c..91659efd1a 100644 Binary files a/data/tilesets/secondary/mauville_gym/anim/electric_gates/0.png and b/data/tilesets/secondary/mauville_gym/anim/electric_gates/0.png differ diff --git a/data/tilesets/secondary/mauville_gym/anim/electric_gates/1.png b/data/tilesets/secondary/mauville_gym/anim/electric_gates/1.png index 34072707ff..f766cc8e5e 100644 Binary files a/data/tilesets/secondary/mauville_gym/anim/electric_gates/1.png and b/data/tilesets/secondary/mauville_gym/anim/electric_gates/1.png differ diff --git a/data/tilesets/secondary/pacifidlog/anim/log_bridges/0.png b/data/tilesets/secondary/pacifidlog/anim/log_bridges/0.png index 316eb500e3..f7aa47448a 100644 Binary files a/data/tilesets/secondary/pacifidlog/anim/log_bridges/0.png and b/data/tilesets/secondary/pacifidlog/anim/log_bridges/0.png differ diff --git a/data/tilesets/secondary/pacifidlog/anim/log_bridges/1.png b/data/tilesets/secondary/pacifidlog/anim/log_bridges/1.png index ee9d4316e1..d0ae0b0a51 100644 Binary files a/data/tilesets/secondary/pacifidlog/anim/log_bridges/1.png and b/data/tilesets/secondary/pacifidlog/anim/log_bridges/1.png differ diff --git a/data/tilesets/secondary/pacifidlog/anim/log_bridges/2.png b/data/tilesets/secondary/pacifidlog/anim/log_bridges/2.png index 221a715854..014654cf64 100644 Binary files a/data/tilesets/secondary/pacifidlog/anim/log_bridges/2.png and b/data/tilesets/secondary/pacifidlog/anim/log_bridges/2.png differ diff --git a/data/tilesets/secondary/pacifidlog/anim/water_currents/0.png b/data/tilesets/secondary/pacifidlog/anim/water_currents/0.png index 6d432eb25c..6b692db41f 100644 Binary files a/data/tilesets/secondary/pacifidlog/anim/water_currents/0.png and b/data/tilesets/secondary/pacifidlog/anim/water_currents/0.png differ diff --git a/data/tilesets/secondary/pacifidlog/anim/water_currents/1.png b/data/tilesets/secondary/pacifidlog/anim/water_currents/1.png index 7588b8a724..03d984291d 100644 Binary files a/data/tilesets/secondary/pacifidlog/anim/water_currents/1.png and b/data/tilesets/secondary/pacifidlog/anim/water_currents/1.png differ diff --git a/data/tilesets/secondary/pacifidlog/anim/water_currents/2.png b/data/tilesets/secondary/pacifidlog/anim/water_currents/2.png index 2a11e5065e..bf4c33de94 100644 Binary files a/data/tilesets/secondary/pacifidlog/anim/water_currents/2.png and b/data/tilesets/secondary/pacifidlog/anim/water_currents/2.png differ diff --git a/data/tilesets/secondary/pacifidlog/anim/water_currents/3.png b/data/tilesets/secondary/pacifidlog/anim/water_currents/3.png index be4089ff40..67b816d387 100644 Binary files a/data/tilesets/secondary/pacifidlog/anim/water_currents/3.png and b/data/tilesets/secondary/pacifidlog/anim/water_currents/3.png differ diff --git a/data/tilesets/secondary/pacifidlog/anim/water_currents/4.png b/data/tilesets/secondary/pacifidlog/anim/water_currents/4.png index 4c16111def..7a23b7231b 100644 Binary files a/data/tilesets/secondary/pacifidlog/anim/water_currents/4.png and b/data/tilesets/secondary/pacifidlog/anim/water_currents/4.png differ diff --git a/data/tilesets/secondary/pacifidlog/anim/water_currents/5.png b/data/tilesets/secondary/pacifidlog/anim/water_currents/5.png index 93bbc63750..eee9756e30 100644 Binary files a/data/tilesets/secondary/pacifidlog/anim/water_currents/5.png and b/data/tilesets/secondary/pacifidlog/anim/water_currents/5.png differ diff --git a/data/tilesets/secondary/pacifidlog/anim/water_currents/6.png b/data/tilesets/secondary/pacifidlog/anim/water_currents/6.png index b08f5a0d97..1ba88117fd 100644 Binary files a/data/tilesets/secondary/pacifidlog/anim/water_currents/6.png and b/data/tilesets/secondary/pacifidlog/anim/water_currents/6.png differ diff --git a/data/tilesets/secondary/pacifidlog/anim/water_currents/7.png b/data/tilesets/secondary/pacifidlog/anim/water_currents/7.png index 1a5f0ae5c4..2c3c079b90 100644 Binary files a/data/tilesets/secondary/pacifidlog/anim/water_currents/7.png and b/data/tilesets/secondary/pacifidlog/anim/water_currents/7.png differ diff --git a/data/tilesets/secondary/rustboro/anim/fountain/0.png b/data/tilesets/secondary/rustboro/anim/fountain/0.png index 07471595bf..1208344d88 100644 Binary files a/data/tilesets/secondary/rustboro/anim/fountain/0.png and b/data/tilesets/secondary/rustboro/anim/fountain/0.png differ diff --git a/data/tilesets/secondary/rustboro/anim/fountain/1.png b/data/tilesets/secondary/rustboro/anim/fountain/1.png index 408f2b03aa..456e5a2508 100644 Binary files a/data/tilesets/secondary/rustboro/anim/fountain/1.png and b/data/tilesets/secondary/rustboro/anim/fountain/1.png differ diff --git a/data/tilesets/secondary/rustboro/anim/windy_water/0.png b/data/tilesets/secondary/rustboro/anim/windy_water/0.png index af00b97c79..2e648b8348 100644 Binary files a/data/tilesets/secondary/rustboro/anim/windy_water/0.png and b/data/tilesets/secondary/rustboro/anim/windy_water/0.png differ diff --git a/data/tilesets/secondary/rustboro/anim/windy_water/1.png b/data/tilesets/secondary/rustboro/anim/windy_water/1.png index 20b1ef630a..143e9d12d5 100644 Binary files a/data/tilesets/secondary/rustboro/anim/windy_water/1.png and b/data/tilesets/secondary/rustboro/anim/windy_water/1.png differ diff --git a/data/tilesets/secondary/rustboro/anim/windy_water/2.png b/data/tilesets/secondary/rustboro/anim/windy_water/2.png index 44c4b2cdc2..94820fcb0f 100644 Binary files a/data/tilesets/secondary/rustboro/anim/windy_water/2.png and b/data/tilesets/secondary/rustboro/anim/windy_water/2.png differ diff --git a/data/tilesets/secondary/rustboro/anim/windy_water/3.png b/data/tilesets/secondary/rustboro/anim/windy_water/3.png index 44c4b2cdc2..94820fcb0f 100644 Binary files a/data/tilesets/secondary/rustboro/anim/windy_water/3.png and b/data/tilesets/secondary/rustboro/anim/windy_water/3.png differ diff --git a/data/tilesets/secondary/rustboro/anim/windy_water/4.png b/data/tilesets/secondary/rustboro/anim/windy_water/4.png index 44c4b2cdc2..94820fcb0f 100644 Binary files a/data/tilesets/secondary/rustboro/anim/windy_water/4.png and b/data/tilesets/secondary/rustboro/anim/windy_water/4.png differ diff --git a/data/tilesets/secondary/rustboro/anim/windy_water/5.png b/data/tilesets/secondary/rustboro/anim/windy_water/5.png index 44c4b2cdc2..94820fcb0f 100644 Binary files a/data/tilesets/secondary/rustboro/anim/windy_water/5.png and b/data/tilesets/secondary/rustboro/anim/windy_water/5.png differ diff --git a/data/tilesets/secondary/rustboro/anim/windy_water/6.png b/data/tilesets/secondary/rustboro/anim/windy_water/6.png index 44c4b2cdc2..94820fcb0f 100644 Binary files a/data/tilesets/secondary/rustboro/anim/windy_water/6.png and b/data/tilesets/secondary/rustboro/anim/windy_water/6.png differ diff --git a/data/tilesets/secondary/rustboro/anim/windy_water/7.png b/data/tilesets/secondary/rustboro/anim/windy_water/7.png index 44c4b2cdc2..94820fcb0f 100644 Binary files a/data/tilesets/secondary/rustboro/anim/windy_water/7.png and b/data/tilesets/secondary/rustboro/anim/windy_water/7.png differ diff --git a/data/tilesets/secondary/slateport/anim/balloons/0.png b/data/tilesets/secondary/slateport/anim/balloons/0.png index 28bf60f26a..eb98084677 100644 Binary files a/data/tilesets/secondary/slateport/anim/balloons/0.png and b/data/tilesets/secondary/slateport/anim/balloons/0.png differ diff --git a/data/tilesets/secondary/slateport/anim/balloons/1.png b/data/tilesets/secondary/slateport/anim/balloons/1.png index 31d22f6972..65df1eaa0d 100644 Binary files a/data/tilesets/secondary/slateport/anim/balloons/1.png and b/data/tilesets/secondary/slateport/anim/balloons/1.png differ diff --git a/data/tilesets/secondary/slateport/anim/balloons/2.png b/data/tilesets/secondary/slateport/anim/balloons/2.png index 83b0e39403..47dd73ae44 100644 Binary files a/data/tilesets/secondary/slateport/anim/balloons/2.png and b/data/tilesets/secondary/slateport/anim/balloons/2.png differ diff --git a/data/tilesets/secondary/slateport/anim/balloons/3.png b/data/tilesets/secondary/slateport/anim/balloons/3.png index 31d22f6972..65df1eaa0d 100644 Binary files a/data/tilesets/secondary/slateport/anim/balloons/3.png and b/data/tilesets/secondary/slateport/anim/balloons/3.png differ diff --git a/data/tilesets/secondary/sootopolis/anim/stormy_water/0.png b/data/tilesets/secondary/sootopolis/anim/stormy_water/0.png deleted file mode 100644 index 6ae032652c..0000000000 Binary files a/data/tilesets/secondary/sootopolis/anim/stormy_water/0.png and /dev/null differ diff --git a/data/tilesets/secondary/sootopolis/anim/stormy_water/0_groudon.png b/data/tilesets/secondary/sootopolis/anim/stormy_water/0_groudon.png new file mode 100644 index 0000000000..05276dd611 Binary files /dev/null and b/data/tilesets/secondary/sootopolis/anim/stormy_water/0_groudon.png differ diff --git a/data/tilesets/secondary/sootopolis/anim/stormy_water/0_kyogre.png b/data/tilesets/secondary/sootopolis/anim/stormy_water/0_kyogre.png new file mode 100644 index 0000000000..ce6f8e5e64 Binary files /dev/null and b/data/tilesets/secondary/sootopolis/anim/stormy_water/0_kyogre.png differ diff --git a/data/tilesets/secondary/sootopolis/anim/stormy_water/1.png b/data/tilesets/secondary/sootopolis/anim/stormy_water/1.png deleted file mode 100644 index 5bf8f7a98a..0000000000 Binary files a/data/tilesets/secondary/sootopolis/anim/stormy_water/1.png and /dev/null differ diff --git a/data/tilesets/secondary/sootopolis/anim/stormy_water/1_groudon.png b/data/tilesets/secondary/sootopolis/anim/stormy_water/1_groudon.png new file mode 100644 index 0000000000..e59bdf7474 Binary files /dev/null and b/data/tilesets/secondary/sootopolis/anim/stormy_water/1_groudon.png differ diff --git a/data/tilesets/secondary/sootopolis/anim/stormy_water/1_kyogre.png b/data/tilesets/secondary/sootopolis/anim/stormy_water/1_kyogre.png new file mode 100644 index 0000000000..9e7e1ab5ad Binary files /dev/null and b/data/tilesets/secondary/sootopolis/anim/stormy_water/1_kyogre.png differ diff --git a/data/tilesets/secondary/sootopolis/anim/stormy_water/2.png b/data/tilesets/secondary/sootopolis/anim/stormy_water/2.png deleted file mode 100644 index 85598e1459..0000000000 Binary files a/data/tilesets/secondary/sootopolis/anim/stormy_water/2.png and /dev/null differ diff --git a/data/tilesets/secondary/sootopolis/anim/stormy_water/2_groudon.png b/data/tilesets/secondary/sootopolis/anim/stormy_water/2_groudon.png new file mode 100644 index 0000000000..0d59d5e16a Binary files /dev/null and b/data/tilesets/secondary/sootopolis/anim/stormy_water/2_groudon.png differ diff --git a/data/tilesets/secondary/sootopolis/anim/stormy_water/2_kyogre.png b/data/tilesets/secondary/sootopolis/anim/stormy_water/2_kyogre.png new file mode 100644 index 0000000000..71ce73e8bb Binary files /dev/null and b/data/tilesets/secondary/sootopolis/anim/stormy_water/2_kyogre.png differ diff --git a/data/tilesets/secondary/sootopolis/anim/stormy_water/3.png b/data/tilesets/secondary/sootopolis/anim/stormy_water/3.png deleted file mode 100644 index c7aad10c7d..0000000000 Binary files a/data/tilesets/secondary/sootopolis/anim/stormy_water/3.png and /dev/null differ diff --git a/data/tilesets/secondary/sootopolis/anim/stormy_water/3_groudon.png b/data/tilesets/secondary/sootopolis/anim/stormy_water/3_groudon.png new file mode 100644 index 0000000000..4aded92e4b Binary files /dev/null and b/data/tilesets/secondary/sootopolis/anim/stormy_water/3_groudon.png differ diff --git a/data/tilesets/secondary/sootopolis/anim/stormy_water/3_kyogre.png b/data/tilesets/secondary/sootopolis/anim/stormy_water/3_kyogre.png new file mode 100644 index 0000000000..a305f6ab08 Binary files /dev/null and b/data/tilesets/secondary/sootopolis/anim/stormy_water/3_kyogre.png differ diff --git a/data/tilesets/secondary/sootopolis/anim/stormy_water/4.png b/data/tilesets/secondary/sootopolis/anim/stormy_water/4.png deleted file mode 100644 index ec446b9dba..0000000000 Binary files a/data/tilesets/secondary/sootopolis/anim/stormy_water/4.png and /dev/null differ diff --git a/data/tilesets/secondary/sootopolis/anim/stormy_water/4_groudon.png b/data/tilesets/secondary/sootopolis/anim/stormy_water/4_groudon.png new file mode 100644 index 0000000000..d4618ab9cd Binary files /dev/null and b/data/tilesets/secondary/sootopolis/anim/stormy_water/4_groudon.png differ diff --git a/data/tilesets/secondary/sootopolis/anim/stormy_water/4_kyogre.png b/data/tilesets/secondary/sootopolis/anim/stormy_water/4_kyogre.png new file mode 100644 index 0000000000..ddb2572139 Binary files /dev/null and b/data/tilesets/secondary/sootopolis/anim/stormy_water/4_kyogre.png differ diff --git a/data/tilesets/secondary/sootopolis/anim/stormy_water/5.png b/data/tilesets/secondary/sootopolis/anim/stormy_water/5.png deleted file mode 100644 index cbe1769c08..0000000000 Binary files a/data/tilesets/secondary/sootopolis/anim/stormy_water/5.png and /dev/null differ diff --git a/data/tilesets/secondary/sootopolis/anim/stormy_water/5_groudon.png b/data/tilesets/secondary/sootopolis/anim/stormy_water/5_groudon.png new file mode 100644 index 0000000000..4e59ead20f Binary files /dev/null and b/data/tilesets/secondary/sootopolis/anim/stormy_water/5_groudon.png differ diff --git a/data/tilesets/secondary/sootopolis/anim/stormy_water/5_kyogre.png b/data/tilesets/secondary/sootopolis/anim/stormy_water/5_kyogre.png new file mode 100644 index 0000000000..f3e24ef7bc Binary files /dev/null and b/data/tilesets/secondary/sootopolis/anim/stormy_water/5_kyogre.png differ diff --git a/data/tilesets/secondary/sootopolis/anim/stormy_water/6.png b/data/tilesets/secondary/sootopolis/anim/stormy_water/6.png deleted file mode 100644 index 690c5fd8ef..0000000000 Binary files a/data/tilesets/secondary/sootopolis/anim/stormy_water/6.png and /dev/null differ diff --git a/data/tilesets/secondary/sootopolis/anim/stormy_water/6_groudon.png b/data/tilesets/secondary/sootopolis/anim/stormy_water/6_groudon.png new file mode 100644 index 0000000000..1aea2dc7b2 Binary files /dev/null and b/data/tilesets/secondary/sootopolis/anim/stormy_water/6_groudon.png differ diff --git a/data/tilesets/secondary/sootopolis/anim/stormy_water/6_kyogre.png b/data/tilesets/secondary/sootopolis/anim/stormy_water/6_kyogre.png new file mode 100644 index 0000000000..2d7dc677f5 Binary files /dev/null and b/data/tilesets/secondary/sootopolis/anim/stormy_water/6_kyogre.png differ diff --git a/data/tilesets/secondary/sootopolis/anim/stormy_water/7.png b/data/tilesets/secondary/sootopolis/anim/stormy_water/7.png deleted file mode 100644 index e4026a02f8..0000000000 Binary files a/data/tilesets/secondary/sootopolis/anim/stormy_water/7.png and /dev/null differ diff --git a/data/tilesets/secondary/sootopolis/anim/stormy_water/7_groudon.png b/data/tilesets/secondary/sootopolis/anim/stormy_water/7_groudon.png new file mode 100644 index 0000000000..4d9a556a46 Binary files /dev/null and b/data/tilesets/secondary/sootopolis/anim/stormy_water/7_groudon.png differ diff --git a/data/tilesets/secondary/sootopolis/anim/stormy_water/7_kyogre.png b/data/tilesets/secondary/sootopolis/anim/stormy_water/7_kyogre.png new file mode 100644 index 0000000000..691af34b67 Binary files /dev/null and b/data/tilesets/secondary/sootopolis/anim/stormy_water/7_kyogre.png differ diff --git a/data/tilesets/secondary/sootopolis_gym/anim/front_waterfall/0.png b/data/tilesets/secondary/sootopolis_gym/anim/front_waterfall/0.png index dc6cf500e1..edac313cab 100644 Binary files a/data/tilesets/secondary/sootopolis_gym/anim/front_waterfall/0.png and b/data/tilesets/secondary/sootopolis_gym/anim/front_waterfall/0.png differ diff --git a/data/tilesets/secondary/sootopolis_gym/anim/front_waterfall/1.png b/data/tilesets/secondary/sootopolis_gym/anim/front_waterfall/1.png index 93dd797530..83adf5f3ea 100644 Binary files a/data/tilesets/secondary/sootopolis_gym/anim/front_waterfall/1.png and b/data/tilesets/secondary/sootopolis_gym/anim/front_waterfall/1.png differ diff --git a/data/tilesets/secondary/sootopolis_gym/anim/front_waterfall/2.png b/data/tilesets/secondary/sootopolis_gym/anim/front_waterfall/2.png index 30961482cb..0f4daa7a55 100644 Binary files a/data/tilesets/secondary/sootopolis_gym/anim/front_waterfall/2.png and b/data/tilesets/secondary/sootopolis_gym/anim/front_waterfall/2.png differ diff --git a/data/tilesets/secondary/sootopolis_gym/anim/side_waterfall/0.png b/data/tilesets/secondary/sootopolis_gym/anim/side_waterfall/0.png index 180b5522ed..75b24e1c5c 100644 Binary files a/data/tilesets/secondary/sootopolis_gym/anim/side_waterfall/0.png and b/data/tilesets/secondary/sootopolis_gym/anim/side_waterfall/0.png differ diff --git a/data/tilesets/secondary/sootopolis_gym/anim/side_waterfall/1.png b/data/tilesets/secondary/sootopolis_gym/anim/side_waterfall/1.png index af3ab12d2e..e24fc8ab27 100644 Binary files a/data/tilesets/secondary/sootopolis_gym/anim/side_waterfall/1.png and b/data/tilesets/secondary/sootopolis_gym/anim/side_waterfall/1.png differ diff --git a/data/tilesets/secondary/sootopolis_gym/anim/side_waterfall/2.png b/data/tilesets/secondary/sootopolis_gym/anim/side_waterfall/2.png index 8481c0cde8..1a1e4114d0 100644 Binary files a/data/tilesets/secondary/sootopolis_gym/anim/side_waterfall/2.png and b/data/tilesets/secondary/sootopolis_gym/anim/side_waterfall/2.png differ diff --git a/data/tilesets/secondary/underwater/anim/seaweed/0.png b/data/tilesets/secondary/underwater/anim/seaweed/0.png index fab28e54f3..0bc01624f8 100644 Binary files a/data/tilesets/secondary/underwater/anim/seaweed/0.png and b/data/tilesets/secondary/underwater/anim/seaweed/0.png differ diff --git a/data/tilesets/secondary/underwater/anim/seaweed/1.png b/data/tilesets/secondary/underwater/anim/seaweed/1.png index 869bc60604..6562f2a3ad 100644 Binary files a/data/tilesets/secondary/underwater/anim/seaweed/1.png and b/data/tilesets/secondary/underwater/anim/seaweed/1.png differ diff --git a/data/tilesets/secondary/underwater/anim/seaweed/2.png b/data/tilesets/secondary/underwater/anim/seaweed/2.png index 64e4b267de..9c18258de2 100644 Binary files a/data/tilesets/secondary/underwater/anim/seaweed/2.png and b/data/tilesets/secondary/underwater/anim/seaweed/2.png differ diff --git a/data/tilesets/secondary/underwater/anim/seaweed/3.png b/data/tilesets/secondary/underwater/anim/seaweed/3.png index 0c13920112..28b0081ff0 100644 Binary files a/data/tilesets/secondary/underwater/anim/seaweed/3.png and b/data/tilesets/secondary/underwater/anim/seaweed/3.png differ diff --git a/graphics/decorations/attract_mat.png b/graphics/decorations/attract_mat.png new file mode 100644 index 0000000000..77e077a718 Binary files /dev/null and b/graphics/decorations/attract_mat.png differ diff --git a/graphics/decorations/big_plant.png b/graphics/decorations/big_plant.png new file mode 100644 index 0000000000..5f5cac3b38 Binary files /dev/null and b/graphics/decorations/big_plant.png differ diff --git a/graphics/decorations/blastoise_doll.png b/graphics/decorations/blastoise_doll.png new file mode 100644 index 0000000000..a7b0ee6e48 Binary files /dev/null and b/graphics/decorations/blastoise_doll.png differ diff --git a/graphics/decorations/blue_brick.png b/graphics/decorations/blue_brick.png new file mode 100644 index 0000000000..cb187beb10 Binary files /dev/null and b/graphics/decorations/blue_brick.png differ diff --git a/graphics/decorations/blue_tent.png b/graphics/decorations/blue_tent.png new file mode 100644 index 0000000000..f94a61e368 Binary files /dev/null and b/graphics/decorations/blue_tent.png differ diff --git a/graphics/decorations/breakable_door.png b/graphics/decorations/breakable_door.png new file mode 100644 index 0000000000..b96bfe96b0 Binary files /dev/null and b/graphics/decorations/breakable_door.png differ diff --git a/graphics/decorations/brick_desk.png b/graphics/decorations/brick_desk.png new file mode 100644 index 0000000000..c81082bf89 Binary files /dev/null and b/graphics/decorations/brick_desk.png differ diff --git a/graphics/decorations/camp_desk.png b/graphics/decorations/camp_desk.png new file mode 100644 index 0000000000..6a1bf68c91 Binary files /dev/null and b/graphics/decorations/camp_desk.png differ diff --git a/graphics/decorations/charizard_doll.png b/graphics/decorations/charizard_doll.png new file mode 100644 index 0000000000..cb1acc7289 Binary files /dev/null and b/graphics/decorations/charizard_doll.png differ diff --git a/graphics/decorations/colorful_plant.png b/graphics/decorations/colorful_plant.png new file mode 100644 index 0000000000..fdbb43c330 Binary files /dev/null and b/graphics/decorations/colorful_plant.png differ diff --git a/graphics/decorations/comfort_desk.png b/graphics/decorations/comfort_desk.png new file mode 100644 index 0000000000..3e81301dfe Binary files /dev/null and b/graphics/decorations/comfort_desk.png differ diff --git a/graphics/decorations/decor_attract_mat.png b/graphics/decorations/decor_attract_mat.png deleted file mode 100644 index 16528d9f39..0000000000 Binary files a/graphics/decorations/decor_attract_mat.png and /dev/null differ diff --git a/graphics/decorations/decor_big_plant.png b/graphics/decorations/decor_big_plant.png deleted file mode 100644 index e5eedd8591..0000000000 Binary files a/graphics/decorations/decor_big_plant.png and /dev/null differ diff --git a/graphics/decorations/decor_blastoise_doll.png b/graphics/decorations/decor_blastoise_doll.png deleted file mode 100644 index 00c55f229e..0000000000 Binary files a/graphics/decorations/decor_blastoise_doll.png and /dev/null differ diff --git a/graphics/decorations/decor_blue_brick.png b/graphics/decorations/decor_blue_brick.png deleted file mode 100644 index 88e0587127..0000000000 Binary files a/graphics/decorations/decor_blue_brick.png and /dev/null differ diff --git a/graphics/decorations/decor_blue_tent.png b/graphics/decorations/decor_blue_tent.png deleted file mode 100644 index 575b352410..0000000000 Binary files a/graphics/decorations/decor_blue_tent.png and /dev/null differ diff --git a/graphics/decorations/decor_breakable_door.png b/graphics/decorations/decor_breakable_door.png deleted file mode 100644 index 01ba82d28a..0000000000 Binary files a/graphics/decorations/decor_breakable_door.png and /dev/null differ diff --git a/graphics/decorations/decor_brick_desk.png b/graphics/decorations/decor_brick_desk.png deleted file mode 100644 index 829e453497..0000000000 Binary files a/graphics/decorations/decor_brick_desk.png and /dev/null differ diff --git a/graphics/decorations/decor_camp_desk.png b/graphics/decorations/decor_camp_desk.png deleted file mode 100644 index b40429229a..0000000000 Binary files a/graphics/decorations/decor_camp_desk.png and /dev/null differ diff --git a/graphics/decorations/decor_charizard_doll.png b/graphics/decorations/decor_charizard_doll.png deleted file mode 100644 index ffc3dfcef7..0000000000 Binary files a/graphics/decorations/decor_charizard_doll.png and /dev/null differ diff --git a/graphics/decorations/decor_colorful_plant.png b/graphics/decorations/decor_colorful_plant.png deleted file mode 100644 index cc0efecc74..0000000000 Binary files a/graphics/decorations/decor_colorful_plant.png and /dev/null differ diff --git a/graphics/decorations/decor_comfort_desk.png b/graphics/decorations/decor_comfort_desk.png deleted file mode 100644 index e7a72ff080..0000000000 Binary files a/graphics/decorations/decor_comfort_desk.png and /dev/null differ diff --git a/graphics/decorations/decor_fire_blast_mat.png b/graphics/decorations/decor_fire_blast_mat.png deleted file mode 100644 index 510675ee62..0000000000 Binary files a/graphics/decorations/decor_fire_blast_mat.png and /dev/null differ diff --git a/graphics/decorations/decor_fissure_mat.png b/graphics/decorations/decor_fissure_mat.png deleted file mode 100644 index 6de66ef9d6..0000000000 Binary files a/graphics/decorations/decor_fissure_mat.png and /dev/null differ diff --git a/graphics/decorations/decor_glass_ornament.png b/graphics/decorations/decor_glass_ornament.png deleted file mode 100644 index fcc895eb9f..0000000000 Binary files a/graphics/decorations/decor_glass_ornament.png and /dev/null differ diff --git a/graphics/decorations/decor_gorgeous_plant.png b/graphics/decorations/decor_gorgeous_plant.png deleted file mode 100644 index dc8639c657..0000000000 Binary files a/graphics/decorations/decor_gorgeous_plant.png and /dev/null differ diff --git a/graphics/decorations/decor_hard_desk.png b/graphics/decorations/decor_hard_desk.png deleted file mode 100644 index aa0c7feeac..0000000000 Binary files a/graphics/decorations/decor_hard_desk.png and /dev/null differ diff --git a/graphics/decorations/decor_heavy_desk.png b/graphics/decorations/decor_heavy_desk.png deleted file mode 100644 index 141bcd8317..0000000000 Binary files a/graphics/decorations/decor_heavy_desk.png and /dev/null differ diff --git a/graphics/decorations/decor_lapras_doll.png b/graphics/decorations/decor_lapras_doll.png deleted file mode 100644 index 517553a4a9..0000000000 Binary files a/graphics/decorations/decor_lapras_doll.png and /dev/null differ diff --git a/graphics/decorations/decor_powder_snow_mat.png b/graphics/decorations/decor_powder_snow_mat.png deleted file mode 100644 index 82dbbfa668..0000000000 Binary files a/graphics/decorations/decor_powder_snow_mat.png and /dev/null differ diff --git a/graphics/decorations/decor_pretty_desk.png b/graphics/decorations/decor_pretty_desk.png deleted file mode 100644 index 5be05ebcbf..0000000000 Binary files a/graphics/decorations/decor_pretty_desk.png and /dev/null differ diff --git a/graphics/decorations/decor_pretty_flowers.png b/graphics/decorations/decor_pretty_flowers.png deleted file mode 100644 index b9fc0f5de2..0000000000 Binary files a/graphics/decorations/decor_pretty_flowers.png and /dev/null differ diff --git a/graphics/decorations/decor_ragged_desk.png b/graphics/decorations/decor_ragged_desk.png deleted file mode 100644 index 953c1862fe..0000000000 Binary files a/graphics/decorations/decor_ragged_desk.png and /dev/null differ diff --git a/graphics/decorations/decor_red_brick.png b/graphics/decorations/decor_red_brick.png deleted file mode 100644 index 3481044dde..0000000000 Binary files a/graphics/decorations/decor_red_brick.png and /dev/null differ diff --git a/graphics/decorations/decor_red_plant.png b/graphics/decorations/decor_red_plant.png deleted file mode 100644 index c12e656f7a..0000000000 Binary files a/graphics/decorations/decor_red_plant.png and /dev/null differ diff --git a/graphics/decorations/decor_red_tent.png b/graphics/decorations/decor_red_tent.png deleted file mode 100644 index 22e435691c..0000000000 Binary files a/graphics/decorations/decor_red_tent.png and /dev/null differ diff --git a/graphics/decorations/decor_regice_doll.png b/graphics/decorations/decor_regice_doll.png deleted file mode 100644 index 88a28df6dd..0000000000 Binary files a/graphics/decorations/decor_regice_doll.png and /dev/null differ diff --git a/graphics/decorations/decor_regirock_doll.png b/graphics/decorations/decor_regirock_doll.png deleted file mode 100644 index 16372281c1..0000000000 Binary files a/graphics/decorations/decor_regirock_doll.png and /dev/null differ diff --git a/graphics/decorations/decor_registeel_doll.png b/graphics/decorations/decor_registeel_doll.png deleted file mode 100644 index f06de37ab1..0000000000 Binary files a/graphics/decorations/decor_registeel_doll.png and /dev/null differ diff --git a/graphics/decorations/decor_rhydon_doll.png b/graphics/decorations/decor_rhydon_doll.png deleted file mode 100644 index ac4714c355..0000000000 Binary files a/graphics/decorations/decor_rhydon_doll.png and /dev/null differ diff --git a/graphics/decorations/decor_sand_ornament.png b/graphics/decorations/decor_sand_ornament.png deleted file mode 100644 index 9eafc86440..0000000000 Binary files a/graphics/decorations/decor_sand_ornament.png and /dev/null differ diff --git a/graphics/decorations/decor_slide.png b/graphics/decorations/decor_slide.png deleted file mode 100644 index 8a5dbada5b..0000000000 Binary files a/graphics/decorations/decor_slide.png and /dev/null differ diff --git a/graphics/decorations/decor_snorlax_doll.png b/graphics/decorations/decor_snorlax_doll.png deleted file mode 100644 index 6ff891c136..0000000000 Binary files a/graphics/decorations/decor_snorlax_doll.png and /dev/null differ diff --git a/graphics/decorations/decor_solid_board.png b/graphics/decorations/decor_solid_board.png deleted file mode 100644 index d0251d847b..0000000000 Binary files a/graphics/decorations/decor_solid_board.png and /dev/null differ diff --git a/graphics/decorations/decor_spikes_mat.png b/graphics/decorations/decor_spikes_mat.png deleted file mode 100644 index 67f023a0a5..0000000000 Binary files a/graphics/decorations/decor_spikes_mat.png and /dev/null differ diff --git a/graphics/decorations/decor_stand.png b/graphics/decorations/decor_stand.png deleted file mode 100644 index 86b1e4d1fe..0000000000 Binary files a/graphics/decorations/decor_stand.png and /dev/null differ diff --git a/graphics/decorations/decor_surf_mat.png b/graphics/decorations/decor_surf_mat.png deleted file mode 100644 index d74cb97bb9..0000000000 Binary files a/graphics/decorations/decor_surf_mat.png and /dev/null differ diff --git a/graphics/decorations/decor_thunder_mat.png b/graphics/decorations/decor_thunder_mat.png deleted file mode 100644 index 1c5c56e332..0000000000 Binary files a/graphics/decorations/decor_thunder_mat.png and /dev/null differ diff --git a/graphics/decorations/decor_tire.png b/graphics/decorations/decor_tire.png deleted file mode 100644 index e394ebbd40..0000000000 Binary files a/graphics/decorations/decor_tire.png and /dev/null differ diff --git a/graphics/decorations/decor_tropical_plant.png b/graphics/decorations/decor_tropical_plant.png deleted file mode 100644 index 12e43df476..0000000000 Binary files a/graphics/decorations/decor_tropical_plant.png and /dev/null differ diff --git a/graphics/decorations/decor_venusaur_doll.png b/graphics/decorations/decor_venusaur_doll.png deleted file mode 100644 index 57fbdd93ac..0000000000 Binary files a/graphics/decorations/decor_venusaur_doll.png and /dev/null differ diff --git a/graphics/decorations/decor_wailmer_doll.png b/graphics/decorations/decor_wailmer_doll.png deleted file mode 100644 index ceedfa6fb0..0000000000 Binary files a/graphics/decorations/decor_wailmer_doll.png and /dev/null differ diff --git a/graphics/decorations/decor_yellow_brick.png b/graphics/decorations/decor_yellow_brick.png deleted file mode 100644 index cb865760ca..0000000000 Binary files a/graphics/decorations/decor_yellow_brick.png and /dev/null differ diff --git a/graphics/decorations/fire_blast_mat.png b/graphics/decorations/fire_blast_mat.png new file mode 100644 index 0000000000..df6c2bfe08 Binary files /dev/null and b/graphics/decorations/fire_blast_mat.png differ diff --git a/graphics/decorations/fissure_mat.png b/graphics/decorations/fissure_mat.png new file mode 100644 index 0000000000..1a0212487e Binary files /dev/null and b/graphics/decorations/fissure_mat.png differ diff --git a/graphics/decorations/glass_ornament.png b/graphics/decorations/glass_ornament.png new file mode 100644 index 0000000000..c85ae769b2 Binary files /dev/null and b/graphics/decorations/glass_ornament.png differ diff --git a/graphics/decorations/gorgeous_plant.png b/graphics/decorations/gorgeous_plant.png new file mode 100644 index 0000000000..ed8947ebdf Binary files /dev/null and b/graphics/decorations/gorgeous_plant.png differ diff --git a/graphics/decorations/hard_desk.png b/graphics/decorations/hard_desk.png new file mode 100644 index 0000000000..b85b098f98 Binary files /dev/null and b/graphics/decorations/hard_desk.png differ diff --git a/graphics/decorations/heavy_desk.png b/graphics/decorations/heavy_desk.png new file mode 100644 index 0000000000..3e9e74683c Binary files /dev/null and b/graphics/decorations/heavy_desk.png differ diff --git a/graphics/decorations/lapras_doll.png b/graphics/decorations/lapras_doll.png new file mode 100644 index 0000000000..8a98a6cf43 Binary files /dev/null and b/graphics/decorations/lapras_doll.png differ diff --git a/graphics/decorations/powder_snow_mat.png b/graphics/decorations/powder_snow_mat.png new file mode 100644 index 0000000000..22be19f9d4 Binary files /dev/null and b/graphics/decorations/powder_snow_mat.png differ diff --git a/graphics/decorations/pretty_desk.png b/graphics/decorations/pretty_desk.png new file mode 100644 index 0000000000..69d439cfeb Binary files /dev/null and b/graphics/decorations/pretty_desk.png differ diff --git a/graphics/decorations/pretty_flowers.png b/graphics/decorations/pretty_flowers.png new file mode 100644 index 0000000000..6b7b8565f0 Binary files /dev/null and b/graphics/decorations/pretty_flowers.png differ diff --git a/graphics/decorations/ragged_desk.png b/graphics/decorations/ragged_desk.png new file mode 100644 index 0000000000..1bb800267f Binary files /dev/null and b/graphics/decorations/ragged_desk.png differ diff --git a/graphics/decorations/red_brick.png b/graphics/decorations/red_brick.png new file mode 100644 index 0000000000..249ad8f7ae Binary files /dev/null and b/graphics/decorations/red_brick.png differ diff --git a/graphics/decorations/red_plant.png b/graphics/decorations/red_plant.png new file mode 100644 index 0000000000..7f3792c97c Binary files /dev/null and b/graphics/decorations/red_plant.png differ diff --git a/graphics/decorations/red_tent.png b/graphics/decorations/red_tent.png new file mode 100644 index 0000000000..a70d9bc0a8 Binary files /dev/null and b/graphics/decorations/red_tent.png differ diff --git a/graphics/decorations/regice_doll.png b/graphics/decorations/regice_doll.png new file mode 100644 index 0000000000..e7c118659f Binary files /dev/null and b/graphics/decorations/regice_doll.png differ diff --git a/graphics/decorations/regirock_doll.png b/graphics/decorations/regirock_doll.png new file mode 100644 index 0000000000..6bf5205737 Binary files /dev/null and b/graphics/decorations/regirock_doll.png differ diff --git a/graphics/decorations/registeel_doll.png b/graphics/decorations/registeel_doll.png new file mode 100644 index 0000000000..bfe01d75c8 Binary files /dev/null and b/graphics/decorations/registeel_doll.png differ diff --git a/graphics/decorations/rhydon_doll.png b/graphics/decorations/rhydon_doll.png new file mode 100644 index 0000000000..2937d372f2 Binary files /dev/null and b/graphics/decorations/rhydon_doll.png differ diff --git a/graphics/decorations/sand_ornament.png b/graphics/decorations/sand_ornament.png new file mode 100644 index 0000000000..d94673c96a Binary files /dev/null and b/graphics/decorations/sand_ornament.png differ diff --git a/graphics/decorations/slide.png b/graphics/decorations/slide.png new file mode 100644 index 0000000000..ebfc24cad3 Binary files /dev/null and b/graphics/decorations/slide.png differ diff --git a/graphics/decorations/snorlax_doll.png b/graphics/decorations/snorlax_doll.png new file mode 100644 index 0000000000..48f9248aca Binary files /dev/null and b/graphics/decorations/snorlax_doll.png differ diff --git a/graphics/decorations/solid_board.png b/graphics/decorations/solid_board.png new file mode 100644 index 0000000000..1eef712e27 Binary files /dev/null and b/graphics/decorations/solid_board.png differ diff --git a/graphics/decorations/spikes_mat.png b/graphics/decorations/spikes_mat.png new file mode 100644 index 0000000000..a69b003e7b Binary files /dev/null and b/graphics/decorations/spikes_mat.png differ diff --git a/graphics/decorations/stand.png b/graphics/decorations/stand.png new file mode 100644 index 0000000000..09e4d26bd9 Binary files /dev/null and b/graphics/decorations/stand.png differ diff --git a/graphics/decorations/surf_mat.png b/graphics/decorations/surf_mat.png new file mode 100644 index 0000000000..f85498e662 Binary files /dev/null and b/graphics/decorations/surf_mat.png differ diff --git a/graphics/decorations/thunder_mat.png b/graphics/decorations/thunder_mat.png new file mode 100644 index 0000000000..82a1787f69 Binary files /dev/null and b/graphics/decorations/thunder_mat.png differ diff --git a/graphics/decorations/tire.png b/graphics/decorations/tire.png new file mode 100644 index 0000000000..5625323561 Binary files /dev/null and b/graphics/decorations/tire.png differ diff --git a/graphics/decorations/tropical_plant.png b/graphics/decorations/tropical_plant.png new file mode 100644 index 0000000000..f674d6418b Binary files /dev/null and b/graphics/decorations/tropical_plant.png differ diff --git a/graphics/decorations/venusaur_doll.png b/graphics/decorations/venusaur_doll.png new file mode 100644 index 0000000000..ca6bbea761 Binary files /dev/null and b/graphics/decorations/venusaur_doll.png differ diff --git a/graphics/decorations/wailmer_doll.png b/graphics/decorations/wailmer_doll.png new file mode 100644 index 0000000000..b5d723bc83 Binary files /dev/null and b/graphics/decorations/wailmer_doll.png differ diff --git a/graphics/decorations/yellow_brick.png b/graphics/decorations/yellow_brick.png new file mode 100644 index 0000000000..33b41be22a Binary files /dev/null and b/graphics/decorations/yellow_brick.png differ diff --git a/graphics/link_games/pkmnjump_321start2.png b/graphics/link_games/321start.png similarity index 100% rename from graphics/link_games/pkmnjump_321start2.png rename to graphics/link_games/321start.png diff --git a/graphics/link_games/pkmnjump_321start1.png b/graphics/link_games/321start_2.png similarity index 100% rename from graphics/link_games/pkmnjump_321start1.png rename to graphics/link_games/321start_2.png diff --git a/graphics_file_rules.mk b/graphics_file_rules.mk index 79c910ea27..c53033f4c7 100644 --- a/graphics_file_rules.mk +++ b/graphics_file_rules.mk @@ -86,6 +86,40 @@ $(TILESETGFXDIR)/secondary/pacifidlog/tiles.4bpp: %.4bpp: %.png $(TILESETGFXDIR)/secondary/sootopolis/tiles.4bpp: %.4bpp: %.png $(GFX) $< $@ -num_tiles 328 +SOOTOPOLISANIMDIR := $(TILESETGFXDIR)/secondary/sootopolis/anim + +$(SOOTOPOLISANIMDIR)/stormy_water/0.4bpp: $(SOOTOPOLISANIMDIR)/stormy_water/0_kyogre.4bpp \ + $(SOOTOPOLISANIMDIR)/stormy_water/0_groudon.4bpp + @cat $^ >$@ + +$(SOOTOPOLISANIMDIR)/stormy_water/1.4bpp: $(SOOTOPOLISANIMDIR)/stormy_water/1_kyogre.4bpp \ + $(SOOTOPOLISANIMDIR)/stormy_water/1_groudon.4bpp + @cat $^ >$@ + +$(SOOTOPOLISANIMDIR)/stormy_water/2.4bpp: $(SOOTOPOLISANIMDIR)/stormy_water/2_kyogre.4bpp \ + $(SOOTOPOLISANIMDIR)/stormy_water/2_groudon.4bpp + @cat $^ >$@ + +$(SOOTOPOLISANIMDIR)/stormy_water/3.4bpp: $(SOOTOPOLISANIMDIR)/stormy_water/3_kyogre.4bpp \ + $(SOOTOPOLISANIMDIR)/stormy_water/3_groudon.4bpp + @cat $^ >$@ + +$(SOOTOPOLISANIMDIR)/stormy_water/4.4bpp: $(SOOTOPOLISANIMDIR)/stormy_water/4_kyogre.4bpp \ + $(SOOTOPOLISANIMDIR)/stormy_water/4_groudon.4bpp + @cat $^ >$@ + +$(SOOTOPOLISANIMDIR)/stormy_water/5.4bpp: $(SOOTOPOLISANIMDIR)/stormy_water/5_kyogre.4bpp \ + $(SOOTOPOLISANIMDIR)/stormy_water/5_groudon.4bpp + @cat $^ >$@ + +$(SOOTOPOLISANIMDIR)/stormy_water/6.4bpp: $(SOOTOPOLISANIMDIR)/stormy_water/6_kyogre.4bpp \ + $(SOOTOPOLISANIMDIR)/stormy_water/6_groudon.4bpp + @cat $^ >$@ + +$(SOOTOPOLISANIMDIR)/stormy_water/7.4bpp: $(SOOTOPOLISANIMDIR)/stormy_water/7_kyogre.4bpp \ + $(SOOTOPOLISANIMDIR)/stormy_water/7_groudon.4bpp + @cat $^ >$@ + $(TILESETGFXDIR)/secondary/battle_frontier_outside_west/tiles.4bpp: %.4bpp: %.png $(GFX) $< $@ -num_tiles 508 @@ -357,9 +391,9 @@ $(INTERFACEGFXDIR)/hp_numbers.4bpp: $(INTERFACEGFXDIR)/hpbar_anim.4bpp \ @cat $^ >$@ $(UNUSEDGFXDIR)/redyellowgreen_frame.bin: $(UNUSEDGFXDIR)/red_frame.bin \ - $(UNUSEDGFXDIR)/yellow_frame.bin \ - $(UNUSEDGFXDIR)/green_frame.bin \ - $(UNUSEDGFXDIR)/blank_frame.bin + $(UNUSEDGFXDIR)/yellow_frame.bin \ + $(UNUSEDGFXDIR)/green_frame.bin \ + $(UNUSEDGFXDIR)/blank_frame.bin @cat $^ >$@ $(UNUSEDGFXDIR)/color_frames.4bpp: %.4bpp: %.png diff --git a/include/constants/global.h b/include/constants/global.h index 7c96de5112..c7063d71c9 100644 --- a/include/constants/global.h +++ b/include/constants/global.h @@ -67,6 +67,7 @@ #define FRONTIER_DOUBLES_PARTY_SIZE 4 #define FRONTIER_MULTI_PARTY_SIZE 2 #define MAX_FRONTIER_PARTY_SIZE FRONTIER_DOUBLES_PARTY_SIZE +#define UNION_ROOM_PARTY_SIZE 2 // string lengths #define ITEM_NAME_LENGTH 14 diff --git a/include/constants/metatile_labels.h b/include/constants/metatile_labels.h index 4bcf47ea85..5861076872 100644 --- a/include/constants/metatile_labels.h +++ b/include/constants/metatile_labels.h @@ -524,33 +524,64 @@ #define METATILE_SecretBase_MudBall 0x228 #define METATILE_SecretBase_Fence_Horizontal 0x22C #define METATILE_SecretBase_Fence_Vertical 0x233 -#define METATILE_SecretBase_Board_Top 0x234 -#define METATILE_SecretBase_Board_Bottom 0x23C +#define METATILE_SecretBase_SolidBoard_Top 0x234 +#define METATILE_SecretBase_SolidBoard_Bottom 0x23C +#define METATILE_SecretBase_RedTent_TopLeft 0x230 +#define METATILE_SecretBase_RedTent_TopMid 0x231 +#define METATILE_SecretBase_RedTent_TopRight 0x232 +#define METATILE_SecretBase_RedTent_MidLeft 0x238 #define METATILE_SecretBase_RedTent_DoorTop 0x239 +#define METATILE_SecretBase_RedTent_MidRight 0x23A +#define METATILE_SecretBase_RedTent_BottomLeft 0x240 #define METATILE_SecretBase_RedTent_Door 0x241 +#define METATILE_SecretBase_RedTent_BottomRight 0x23B +#define METATILE_SecretBase_BlueTent_TopLeft 0x248 +#define METATILE_SecretBase_BlueTent_TopMid 0x249 +#define METATILE_SecretBase_BlueTent_TopRight 0x268 +#define METATILE_SecretBase_BlueTent_MidLeft 0x250 #define METATILE_SecretBase_BlueTent_DoorTop 0x251 +#define METATILE_SecretBase_BlueTent_MidRight 0x270 +#define METATILE_SecretBase_BlueTent_BottomLeft 0x258 #define METATILE_SecretBase_BlueTent_Door 0x259 -#define METATILE_SecretBase_Slide_Stairs 0x23D -#define METATILE_SecretBase_Slide 0x23E -#define METATILE_SecretBase_Stand_LeftCorner 0x26A -#define METATILE_SecretBase_Stand_RightCorner 0x26D +#define METATILE_SecretBase_BlueTent_BottomRight 0x269 +#define METATILE_SecretBase_Slide_TopLeft 0x235 +#define METATILE_SecretBase_Slide_TopRight 0x236 +#define METATILE_SecretBase_Slide_StairLanding 0x23D +#define METATILE_SecretBase_Slide_SlideTop 0x23E +#define METATILE_SecretBase_Slide_Stairs 0x263 +#define METATILE_SecretBase_Slide_SlideBottom 0x264 +#define METATILE_SecretBase_Slide_MatLeft 0x26F +#define METATILE_SecretBase_Slide_MatRight 0x277 +#define METATILE_SecretBase_Stand_CornerLeft 0x26A +#define METATILE_SecretBase_Stand_MidLeft 0x26B +#define METATILE_SecretBase_Stand_MidRight 0x26C +#define METATILE_SecretBase_Stand_CornerRight 0x26D +#define METATILE_SecretBase_Stand_StairsLeft 0x272 +#define METATILE_SecretBase_Stand_BaseLeft 0x273 +#define METATILE_SecretBase_Stand_BaseRight 0x274 +#define METATILE_SecretBase_Stand_StairsRight 0x275 #define METATILE_SecretBase_BreakableDoor_TopClosed 0x237 #define METATILE_SecretBase_BreakableDoor_BottomClosed 0x23F #define METATILE_SecretBase_BreakableDoor_TopOpen 0x26E #define METATILE_SecretBase_BreakableDoor_BottomOpen 0x276 -#define METATILE_SecretBase_NoteMat_C 0x278 +#define METATILE_SecretBase_GlitterMat 0x260 +#define METATILE_SecretBase_JumpMat 0x261 +#define METATILE_SecretBase_SpinMat 0x262 +#define METATILE_SecretBase_NoteMat_C_Low 0x278 #define METATILE_SecretBase_NoteMat_D 0x279 #define METATILE_SecretBase_NoteMat_E 0x27A #define METATILE_SecretBase_NoteMat_F 0x27B #define METATILE_SecretBase_NoteMat_G 0x27C #define METATILE_SecretBase_NoteMat_A 0x27D #define METATILE_SecretBase_NoteMat_B 0x27E -#define METATILE_SecretBase_NoteMat_C_Sharp 0x2B3 +#define METATILE_SecretBase_NoteMat_C_High 0x2B3 #define METATILE_SecretBase_Tire_TopLeft 0x280 #define METATILE_SecretBase_Tire_TopRight 0x281 #define METATILE_SecretBase_Tire_BottomLeft 0x288 #define METATILE_SecretBase_Tire_BottomRight 0x289 +#define METATILE_SecretBase_GlassOrnament_Top 0x282 #define METATILE_SecretBase_GlassOrnament_Base1 0x28A +#define METATILE_SecretBase_GlassOrnament_TopWall 0x283 #define METATILE_SecretBase_GlassOrnament_Base2 0x28B #define METATILE_SecretBase_SandOrnament_BrokenTop 0x284 #define METATILE_SecretBase_SandOrnament_BrokenBase 0x28C @@ -622,23 +653,41 @@ #define METATILE_SecretBase_RaggedChair 0x2C2 #define METATILE_SecretBase_BrickChair 0x2C8 #define METATILE_SecretBase_CampChair 0x2C9 -#define METATILE_SecretBase_HardChair 0x2Ca +#define METATILE_SecretBase_HardChair 0x2CA +#define METATILE_SecretBase_RedPlant_Top 0x2D0 #define METATILE_SecretBase_RedPlant_Base1 0x2D8 +#define METATILE_SecretBase_RedPlant_TopWall 0x2D1 #define METATILE_SecretBase_RedPlant_Base2 0x2D9 +#define METATILE_SecretBase_TropicalPlant_Top 0x2D2 #define METATILE_SecretBase_TropicalPlant_Base1 0x2DA +#define METATILE_SecretBase_TropicalPlant_TopWall 0x2D3 #define METATILE_SecretBase_TropicalPlant_Base2 0x2DB -#define METATILE_SecretBase_PrettyFlower_Base1 0x2DC -#define METATILE_SecretBase_PrettyFlower_Base2 0x2DD -#define METATILE_SecretBase_ColorfulFlowers_BaseLeft1 0x2E8 -#define METATILE_SecretBase_ColorfulFlowers_BaseRight1 0x2E9 -#define METATILE_SecretBase_ColorfulFlowers_BaseLeft2 0x2EA -#define METATILE_SecretBase_ColorfulFlowers_BaseRight2 0x2EB +#define METATILE_SecretBase_PrettyFlowers_Top 0x2D4 +#define METATILE_SecretBase_PrettyFlowers_Base1 0x2DC +#define METATILE_SecretBase_PrettyFlowers_TopWall 0x2D5 +#define METATILE_SecretBase_PrettyFlowers_Base2 0x2DD +#define METATILE_SecretBase_ColorfulPlant_TopLeft 0x2E0 +#define METATILE_SecretBase_ColorfulPlant_TopRight 0x2E2 +#define METATILE_SecretBase_ColorfulPlant_BaseLeft1 0x2E8 +#define METATILE_SecretBase_ColorfulPlant_BaseRight1 0x2E9 +#define METATILE_SecretBase_ColorfulPlant_TopLeftWall 0x2E1 +#define METATILE_SecretBase_ColorfulPlant_TopRightWall 0x2E3 +#define METATILE_SecretBase_ColorfulPlant_BaseLeft2 0x2EA +#define METATILE_SecretBase_ColorfulPlant_BaseRight2 0x2EB +#define METATILE_SecretBase_BigPlant_TopLeft 0x2E4 +#define METATILE_SecretBase_BigPlant_TopRight 0x2E6 #define METATILE_SecretBase_BigPlant_BaseLeft1 0x2EC #define METATILE_SecretBase_BigPlant_BaseRight1 0x2ED +#define METATILE_SecretBase_BigPlant_TopLeftWall 0x2E5 +#define METATILE_SecretBase_BigPlant_TopRightWall 0x2E6 #define METATILE_SecretBase_BigPlant_BaseLeft2 0x2EE #define METATILE_SecretBase_BigPlant_BaseRight2 0x2EF +#define METATILE_SecretBase_GorgeousPlant_TopLeft 0x2F0 +#define METATILE_SecretBase_GorgeousPlant_TopRight 0x2F2 #define METATILE_SecretBase_GorgeousPlant_BaseLeft1 0x2F8 #define METATILE_SecretBase_GorgeousPlant_BaseRight1 0x2F9 +#define METATILE_SecretBase_GorgeousPlant_TopLeftWall 0x2F1 +#define METATILE_SecretBase_GorgeousPlant_TopRightWall 0x2F3 #define METATILE_SecretBase_GorgeousPlant_BaseLeft2 0x2FA #define METATILE_SecretBase_GorgeousPlant_BaseRight2 0x2FB #define METATILE_SecretBase_TV 0x2F4 @@ -659,12 +708,79 @@ #define METATILE_SecretBase_RedPoster 0x332 #define METATILE_SecretBase_BluePoster 0x333 #define METATILE_SecretBase_CutePoster 0x334 +#define METATILE_SecretBase_SilverShield_Top 0x2D6 #define METATILE_SecretBase_SilverShield_Base1 0x2DE +#define METATILE_SecretBase_SilverShield_TopWall 0x2D7 #define METATILE_SecretBase_SilverShield_Base2 0x2DF +#define METATILE_SecretBase_GoldShield_Top 0x32E #define METATILE_SecretBase_GoldShield_Base1 0x336 +#define METATILE_SecretBase_GoldShield_TopWall 0x32F #define METATILE_SecretBase_GoldShield_Base2 0x337 #define METATILE_SecretBase_RedBalloon 0x338 -#define METATILE_SecretBase_BlueBalloon 0x33c +#define METATILE_SecretBase_BlueBalloon 0x33C #define METATILE_SecretBase_YellowBalloon 0x340 +#define METATILE_SecretBase_SurfMat_TopLeft 0x242 +#define METATILE_SecretBase_SurfMat_TopMid 0x243 +#define METATILE_SecretBase_SurfMat_TopRight 0x244 +#define METATILE_SecretBase_SurfMat_MidLeft 0x24A +#define METATILE_SecretBase_SurfMat_Center 0x24B +#define METATILE_SecretBase_SurfMat_MidRight 0x24C +#define METATILE_SecretBase_SurfMat_BottomLeft 0x252 +#define METATILE_SecretBase_SurfMat_BottomMid 0x253 +#define METATILE_SecretBase_SurfMat_BottomRight 0x254 +#define METATILE_SecretBase_ThunderMat_TopLeft 0x245 +#define METATILE_SecretBase_ThunderMat_TopMid 0x246 +#define METATILE_SecretBase_ThunderMat_TopRight 0x247 +#define METATILE_SecretBase_ThunderMat_MidLeft 0x24D +#define METATILE_SecretBase_ThunderMat_Center 0x24E +#define METATILE_SecretBase_ThunderMat_MidRight 0x24F +#define METATILE_SecretBase_ThunderMat_BottomLeft 0x255 +#define METATILE_SecretBase_ThunderMat_BottomMid 0x256 +#define METATILE_SecretBase_ThunderMat_BottomRight 0x257 +#define METATILE_SecretBase_FireBlastMat_TopLeft 0x25A +#define METATILE_SecretBase_FireBlastMat_TopMid 0x25B +#define METATILE_SecretBase_FireBlastMat_TopRight 0x25C +#define METATILE_SecretBase_FireBlastMat_MidLeft 0x25D +#define METATILE_SecretBase_FireBlastMat_Center 0x25E +#define METATILE_SecretBase_FireBlastMat_MidRight 0x25F +#define METATILE_SecretBase_FireBlastMat_BottomLeft 0x265 +#define METATILE_SecretBase_FireBlastMat_BottomMid 0x266 +#define METATILE_SecretBase_FireBlastMat_BottomRight 0x267 +#define METATILE_SecretBase_PowderSnowMat_TopLeft 0x300 +#define METATILE_SecretBase_PowderSnowMat_TopMid 0x301 +#define METATILE_SecretBase_PowderSnowMat_TopRight 0x302 +#define METATILE_SecretBase_PowderSnowMat_MidLeft 0x308 +#define METATILE_SecretBase_PowderSnowMat_Center 0x309 +#define METATILE_SecretBase_PowderSnowMat_MidRight 0x30A +#define METATILE_SecretBase_PowderSnowMat_BottomLeft 0x310 +#define METATILE_SecretBase_PowderSnowMat_BottomMid 0x311 +#define METATILE_SecretBase_PowderSnowMat_BottomRight 0x312 +#define METATILE_SecretBase_AttractMat_TopLeft 0x303 +#define METATILE_SecretBase_AttractMat_TopMid 0x304 +#define METATILE_SecretBase_AttractMat_TopRight 0x305 +#define METATILE_SecretBase_AttractMat_MidLeft 0x30B +#define METATILE_SecretBase_AttractMat_Center 0x30C +#define METATILE_SecretBase_AttractMat_MidRight 0x30D +#define METATILE_SecretBase_AttractMat_BottomLeft 0x313 +#define METATILE_SecretBase_AttractMat_BottomMid 0x314 +#define METATILE_SecretBase_AttractMat_BottomRight 0x315 +#define METATILE_SecretBase_FissureMat_TopLeft 0x306 +#define METATILE_SecretBase_FissureMat_TopMid 0x307 +#define METATILE_SecretBase_FissureMat_TopRight 0x318 +#define METATILE_SecretBase_FissureMat_MidLeft 0x30E +#define METATILE_SecretBase_FissureMat_Center 0x30F +#define METATILE_SecretBase_FissureMat_MidRight 0x320 +#define METATILE_SecretBase_FissureMat_BottomLeft 0x316 +#define METATILE_SecretBase_FissureMat_BottomMid 0x317 +#define METATILE_SecretBase_FissureMat_BottomRight 0x328 +#define METATILE_SecretBase_SpikesMat_TopLeft 0x319 +#define METATILE_SecretBase_SpikesMat_TopMid 0x31A +#define METATILE_SecretBase_SpikesMat_TopRight 0x31B +#define METATILE_SecretBase_SpikesMat_MidLeft 0x321 +#define METATILE_SecretBase_SpikesMat_Center 0x322 +#define METATILE_SecretBase_SpikesMat_MidRight 0x323 +#define METATILE_SecretBase_SpikesMat_BottomLeft 0x329 +#define METATILE_SecretBase_SpikesMat_BottomMid 0x32A +#define METATILE_SecretBase_SpikesMat_BottomRight 0x32B #endif // GUARD_METATILE_LABELS_H diff --git a/include/digit_obj_util.h b/include/digit_obj_util.h new file mode 100644 index 0000000000..aca97e2c7c --- /dev/null +++ b/include/digit_obj_util.h @@ -0,0 +1,26 @@ +#ifndef GUARD_DIGIT_OBJ_UTIL_H +#define GUARD_DIGIT_OBJ_UTIL_H + +struct DigitObjUtilTemplate +{ + u8 strConvMode:2; + u8 shape:2; + u8 size:2; + u8 priority:2; + u8 oamCount; + u8 xDelta; + s16 x; + s16 y; + const struct SpriteSheet *spriteSheet; + const struct SpritePalette *spritePal; +}; + +bool32 DigitObjUtil_Init(u32 count); +void DigitObjUtil_Free(void); +bool32 DigitObjUtil_CreatePrinter(u32 id, s32 num, const struct DigitObjUtilTemplate *template); +void DigitObjUtil_PrintNumOn(u32 id, s32 arg1); +void DigitObjUtil_DeletePrinter(u32 id); +void DigitObjUtil_HideOrShow(u32 id, bool32 arg1); +u8 GetTilesPerImage(u32 shape, u32 size); + +#endif // GUARD_DIGIT_OBJ_UTIL_H diff --git a/include/field_player_avatar.h b/include/field_player_avatar.h index 5e5a2361f6..bcee339d5f 100644 --- a/include/field_player_avatar.h +++ b/include/field_player_avatar.h @@ -48,15 +48,15 @@ bool8 PartyHasMonWithSurf(void); bool8 IsPlayerFacingSurfableFishableWater(void); bool8 IsPlayerSurfingNorth(void); void sub_808C228(u8 direction); -u8 sub_808BCD0(void); +u8 GetPlayerAvatarFlags(void); void sub_808B578(void); u8 GetFRLGAvatarGraphicsIdByGender(u8); u8 GetRSAvatarGraphicsIdByGender(u8); -void sub_808B980(u8 direction); -void sub_808B9BC(u8 direction); -void sub_808B9A4(u8 direction); -void sub_808C1B4(u8 direction); -void sub_808B9D4(u8 direction); +void PlayerWheelieInPlace(u8 direction); +void PlayerWheelieMove(u8 direction); +void PlayerPopWheelieWhileMoving(u8 direction); +void PlayerUseAcroBikeOnBumpySlope(u8 direction); +void PlayerEndWheelieWhileMoving(u8 direction); void sub_808D194(void); void sub_808D1C8(void); bool32 sub_808D1B4(void); diff --git a/include/global.fieldmap.h b/include/global.fieldmap.h index af2be9c77c..2e451a3684 100644 --- a/include/global.fieldmap.h +++ b/include/global.fieldmap.h @@ -304,7 +304,7 @@ enum struct PlayerAvatar { /*0x00*/ u8 flags; - /*0x01*/ u8 unk1; // used to be named bike, but its definitely not that. seems to be some transition flags + /*0x01*/ u8 transitionFlags; // used to be named bike, but its definitely not that. seems to be some transition flags /*0x02*/ u8 runningState; // this is a static running state. 00 is not moving, 01 is turn direction, 02 is moving. /*0x03*/ u8 tileTransitionState; // this is a transition running state: 00 is not moving, 01 is transition between tiles, 02 means you are on the frame in which you have centered on a tile but are about to keep moving, even if changing directions. 2 is also used for a ledge hop, since you are transitioning. /*0x04*/ u8 spriteId; diff --git a/include/global.h b/include/global.h index e3c8fee55a..bcf3e64864 100644 --- a/include/global.h +++ b/include/global.h @@ -465,7 +465,7 @@ struct SaveBlock2 /*0x90*/ u8 filler_90[0x8]; /*0x98*/ struct Time localTimeOffset; /*0xA0*/ struct Time lastBerryTreeUpdate; - /*0xA8*/ u32 field_A8; // Written to, but never read. + /*0xA8*/ u32 gcnLinkFlags; // Read by Pokemon Colosseum/XD /*0xAC*/ u32 encryptionKey; /*0xB0*/ struct PlayersApprentice playerApprentice; /*0xDC*/ struct Apprentice apprentices[APPRENTICE_COUNT]; diff --git a/include/minigame_countdown.h b/include/minigame_countdown.h new file mode 100644 index 0000000000..930205218b --- /dev/null +++ b/include/minigame_countdown.h @@ -0,0 +1,7 @@ +#ifndef GUARD_MINIGAME_COUNTDOWN_H +#define GUARD_MINIGAME_COUNTDOWN_H + +void StartMinigameCountdown(u16 tilesTag, u16 palTag, s16 x, s16 y, u8 subpriority); +bool32 IsMinigameCountdownRunning(void); + +#endif //GUARD_MINIGAME_COUNTDOWN_H diff --git a/include/party_menu.h b/include/party_menu.h index 126931762a..7f51d08c9f 100644 --- a/include/party_menu.h +++ b/include/party_menu.h @@ -24,8 +24,8 @@ extern struct PartyMenu gPartyMenu; extern bool8 gPartyMenuUseExitCallback; extern u8 gSelectedMonPartyId; extern MainCallback gPostMenuFieldCallback; -extern u8 gSelectedOrderFromParty[4]; -extern u8 gBattlePartyCurrentOrder[3]; +extern u8 gSelectedOrderFromParty[MAX_FRONTIER_PARTY_SIZE]; +extern u8 gBattlePartyCurrentOrder[PARTY_SIZE / 2]; extern void (*gItemUseCB)(u8, TaskFunc); diff --git a/include/pokemon_jump.h b/include/pokemon_jump.h index dde59aac5a..9cf65212f2 100644 --- a/include/pokemon_jump.h +++ b/include/pokemon_jump.h @@ -8,7 +8,5 @@ bool32 IsSpeciesAllowedInPokemonJump(u16 species); void IsPokemonJumpSpeciesInParty(void); void ResetPokeJumpResults(void); void ShowPokemonJumpRecords(void); -void sub_802EB24(s16 tileTag, s16 palTag, s16 x, s16 y, u8 subpriority); -bool32 sub_802EB84(void); #endif // GUARD_POKEMON_JUMP_H diff --git a/include/rom_8034C54.h b/include/rom_8034C54.h deleted file mode 100644 index 4da324dd10..0000000000 --- a/include/rom_8034C54.h +++ /dev/null @@ -1,26 +0,0 @@ -#ifndef GUARD_ROM_8034C54_H -#define GUARD_ROM_8034C54_H - -struct UnkStruct3 -{ - u8 field_0_0:2; - u8 shape:2; - u8 size:2; - u8 priority:2; - u8 field_1; - u8 xDelta; - s16 x; - s16 y; - const struct SpriteSheet *spriteSheet; - const struct SpritePalette *spritePal; -}; - -bool32 sub_8034C54(u32 count); -void sub_8034CC8(void); -bool32 sub_8034D14(u32 id, s32 arg1, const struct UnkStruct3 *arg2); -void sub_8035044(u32 id, s32 arg1); -void sub_80353DC(u32 id); -void sub_803547C(u32 id, bool32 arg1); -u8 sub_80355F8(u32 shape, u32 size); - -#endif // GUARD_ROM_8034C54_H diff --git a/include/save_location.h b/include/save_location.h index 6c2ae0e6b0..53f317c57a 100644 --- a/include/save_location.h +++ b/include/save_location.h @@ -13,7 +13,6 @@ #define CHAMPION_SAVEWARP (1 << 7) void TrySetMapSaveWarpStatus(void); -void sub_81AFDA0(void); void SetChampionSaveWarp(void); #endif // GUARD_SAVE_LOCATION_H diff --git a/ld_script.txt b/ld_script.txt index 1c4db64cc9..74d9f6ae6e 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -77,11 +77,12 @@ SECTIONS { src/berry_powder.o(.text); src/dodrio_berry_picking.o(.text); src/pokemon_jump.o(.text); + src/minigame_countdown.o(.text); src/rtc.o(.text); src/main_menu.o(.text); src/battle_controllers.o(.text); src/decompress.o(.text); - src/rom_8034C54.o(.text); + src/digit_obj_util.o(.text); src/battle_bg.o(.text); src/battle_main.o(.text); src/battle_util.o(.text); @@ -460,10 +461,11 @@ SECTIONS { src/berry_powder.o(.rodata); src/dodrio_berry_picking.o(.rodata); src/pokemon_jump.o(.rodata); + src/minigame_countdown.o(.rodata); src/rtc.o(.rodata); src/main_menu.o(.rodata); src/battle_controllers.o(.rodata); - src/rom_8034C54.o(.rodata); + src/digit_obj_util.o(.rodata); src/data.o(.rodata); src/battle_bg.o(.rodata); src/battle_main.o(.rodata); diff --git a/src/battle_bg.c b/src/battle_bg.c index 01d05e68d4..00c504bfd7 100644 --- a/src/battle_bg.c +++ b/src/battle_bg.c @@ -691,6 +691,25 @@ static const struct BattleBackground gBattleTerrainTable[] = }, }; +static void sub_8035648(void); + +// Unused +static void sub_8035608(void) +{ + u8 spriteId; + + ResetSpriteData(); + spriteId = CreateSprite(&gUnknown_0831AC88, 0, 0, 0); + gSprites[spriteId].invisible = TRUE; + SetMainCallback2(sub_8035648); +} + +static void sub_8035648(void) +{ + AnimateSprites(); + BuildOamBuffer(); +} + void BattleInitBgsAndWindows(void) { ResetBgsAndClearDma3BusyFlags(0); diff --git a/src/battle_dome.c b/src/battle_dome.c index 746d195d91..e4947825df 100644 --- a/src/battle_dome.c +++ b/src/battle_dome.c @@ -2578,7 +2578,7 @@ static void CreateDomeOpponentMons(u16 tournamentTrainerId) // Create mon if it was selected, starting from back for (i = FRONTIER_PARTY_SIZE - 1; i >= 0; i--) { - if (selectedMonBits & 4) + if (selectedMonBits & (1 << (FRONTIER_PARTY_SIZE - 1))) { CreateDomeOpponentMon(monsCount, tournamentTrainerId, i, otId); monsCount++; diff --git a/src/battle_main.c b/src/battle_main.c index 0f6ec40a4a..e3eea60d0d 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -4425,7 +4425,7 @@ static void HandleTurnActionSelectionState(void) RecordedBattle_ClearBattlerAction(gActiveBattler, 1); gBattleCommunication[gActiveBattler] = STATE_SELECTION_SCRIPT; *(gBattleStruct->selectionScriptFinished + gActiveBattler) = FALSE; - gBattleBufferB[gActiveBattler][1] = 0; + gBattleBufferB[gActiveBattler][1] = B_ACTION_USE_MOVE; *(gBattleStruct->stateIdAfterSelScript + gActiveBattler) = STATE_WAIT_ACTION_CHOSEN; return; } @@ -4553,7 +4553,7 @@ static void HandleTurnActionSelectionState(void) case STATE_SELECTION_SCRIPT_MAY_RUN: if (*(gBattleStruct->selectionScriptFinished + gActiveBattler)) { - if (gBattleBufferB[gActiveBattler][1] == 13) + if (gBattleBufferB[gActiveBattler][1] == B_ACTION_NOTHING_FAINTED) { gHitMarker |= HITMARKER_RUN; gChosenActionByBattler[gActiveBattler] = B_ACTION_RUN; diff --git a/src/battle_pike.c b/src/battle_pike.c index 9bc7254ec8..6b31419a5c 100644 --- a/src/battle_pike.c +++ b/src/battle_pike.c @@ -874,20 +874,20 @@ static bool8 TryInflictRandomStatus(void) { u8 j, i; u8 count; - u8 indices[3]; + u8 indices[FRONTIER_PARTY_SIZE]; u32 status; u16 species; bool8 statusChosen; struct Pokemon *mon; - for (i = 0; i < 3; i++) + for (i = 0; i < FRONTIER_PARTY_SIZE; i++) indices[i] = i; for (j = 0; j < 10; j++) { u8 temp, id; - i = Random() % 3; - id = Random() % 3; + i = Random() % FRONTIER_PARTY_SIZE; + id = Random() % FRONTIER_PARTY_SIZE; SWAP(indices[i], indices[id], temp); } @@ -921,7 +921,7 @@ static bool8 TryInflictRandomStatus(void) { status = sStatusFlags; j = 0; - for (i = 0; i < 3; i++) + for (i = 0; i < FRONTIER_PARTY_SIZE; i++) { mon = &gPlayerParty[indices[i]]; if (GetAilmentFromStatus(GetMonData(mon, MON_DATA_STATUS)) == AILMENT_NONE @@ -963,7 +963,7 @@ static bool8 TryInflictRandomStatus(void) } j = 0; - for (i = 0; i < 3; i++) + for (i = 0; i < FRONTIER_PARTY_SIZE; i++) { mon = &gPlayerParty[indices[i]]; if (GetAilmentFromStatus(GetMonData(mon, MON_DATA_STATUS)) == AILMENT_NONE @@ -995,7 +995,7 @@ static bool8 AtLeastOneHealthyMon(void) count = 3; healthyMonsCount = 0; - for (i = 0; i < 3; i++) + for (i = 0; i < FRONTIER_PARTY_SIZE; i++) { struct Pokemon *mon = &gPlayerParty[i]; if (GetAilmentFromStatus(GetMonData(mon, MON_DATA_STATUS)) == AILMENT_NONE @@ -1262,23 +1262,23 @@ static void Task_DoStatusInflictionScreenFlash(u8 taskId) static void TryHealMons(u8 healCount) { u8 j, i, k; - u8 indices[3]; + u8 indices[FRONTIER_PARTY_SIZE]; if (healCount == 0) return; - for (i = 0; i < 3; i++) + for (i = 0; i < FRONTIER_PARTY_SIZE; i++) indices[i] = i; for (k = 0; k < 10; k++) { u8 temp; - i = Random() % 3; - j = Random() % 3; + i = Random() % FRONTIER_PARTY_SIZE; + j = Random() % FRONTIER_PARTY_SIZE; SWAP(indices[i], indices[j], temp); } - for (i = 0; i < 3; i++) + for (i = 0; i < FRONTIER_PARTY_SIZE; i++) { bool32 canBeHealed = FALSE; struct Pokemon *mon = &gPlayerParty[indices[i]]; @@ -1483,7 +1483,7 @@ static bool8 AtLeastTwoAliveMons(void) mon = &gPlayerParty[0]; countDead = 0; - for (i = 0; i < 3; i++, mon++) + for (i = 0; i < FRONTIER_PARTY_SIZE; i++, mon++) { if (GetMonData(mon, MON_DATA_HP) == 0) countDead++; diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 729cce0c91..84f2b1f4d9 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -8925,7 +8925,7 @@ static void Cmd_jumpifnopursuitswitchdmg(void) for (i = 0; i < gBattlersCount; i++) { if (gBattlerByTurnOrder[i] == gBattlerTarget) - gActionsByTurnOrder[i] = 11; + gActionsByTurnOrder[i] = B_ACTION_TRY_FINISH; } gCurrentMove = MOVE_PURSUIT; @@ -10005,7 +10005,7 @@ static void Cmd_pursuitrelated(void) if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && !(gAbsentBattlerFlags & gBitTable[gActiveBattler]) - && gChosenActionByBattler[gActiveBattler] == 0 + && gChosenActionByBattler[gActiveBattler] == B_ACTION_USE_MOVE && gChosenMoveByBattler[gActiveBattler] == MOVE_PURSUIT) { gActionsByTurnOrder[gActiveBattler] = 11; diff --git a/src/battle_tower.c b/src/battle_tower.c index 4890e7a05f..4695d9aa08 100644 --- a/src/battle_tower.c +++ b/src/battle_tower.c @@ -24,6 +24,7 @@ #include "tv.h" #include "battle_factory.h" #include "constants/apprentice.h" +#include "constants/battle_dome.h" #include "constants/battle_frontier.h" #include "constants/battle_frontier_mons.h" #include "constants/battle_tent_mons.h" @@ -2054,7 +2055,7 @@ void DoSpecialTrainerBattle(void) if (VarGet(VAR_FRONTIER_BATTLE_MODE) == FRONTIER_MODE_DOUBLES) gBattleTypeFlags |= BATTLE_TYPE_DOUBLE; if (gTrainerBattleOpponent_A == TRAINER_FRONTIER_BRAIN) - FillFrontierTrainerParty(2); + FillFrontierTrainerParty(DOME_BATTLE_PARTY_SIZE); CreateTask(Task_StartBattleAfterTransition, 1); sub_806E694(0); BattleTransition_StartOnField(sub_80B100C(3)); @@ -2211,12 +2212,12 @@ static void nullsub_116(void) static void GetApprenticeMultiPartnerParty(u16 trainerId) { s32 i, count; - u32 validSpecies[3]; + u32 validSpecies[MULTI_PARTY_SIZE]; u16 species1 = GetMonData(&gPlayerParty[0], MON_DATA_SPECIES, NULL); u16 species2 = GetMonData(&gPlayerParty[1], MON_DATA_SPECIES, NULL); count = 0; - for (i = 0; i < 3; i++) + for (i = 0; i < MULTI_PARTY_SIZE; i++) { u16 apprenticeSpecies = gSaveBlock2Ptr->apprentices[trainerId - TRAINER_RECORD_MIXING_APPRENTICE].party[i].species; if (apprenticeSpecies != species1 && apprenticeSpecies != species2) @@ -2340,7 +2341,7 @@ static void LoadMultiPartnerCandidatesData(void) && gSaveBlock2Ptr->apprentices[i].lvlMode - 1 == lvlMode) { k = 0; - for (j = 0; j < 3; j++) + for (j = 0; j < MULTI_PARTY_SIZE; j++) { if (species1 != gSaveBlock2Ptr->apprentices[i].party[j].species && species2 != gSaveBlock2Ptr->apprentices[i].party[j].species) @@ -2948,26 +2949,26 @@ static void FillPartnerParty(u16 trainerId) if (trainerId == TRAINER_STEVEN_PARTNER) { - for (i = 0; i < 3; i++) + for (i = 0; i < MULTI_PARTY_SIZE; i++) { do { j = Random32(); } while (IsShinyOtIdPersonality(STEVEN_OTID, j) || sStevenMons[i].nature != GetNatureFromPersonality(j)); - CreateMon(&gPlayerParty[3 + i], + CreateMon(&gPlayerParty[MULTI_PARTY_SIZE + i], sStevenMons[i].species, sStevenMons[i].level, sStevenMons[i].fixedIV, TRUE, i, // BUG: personality was stored in the 'j' variable. As a result, Steven's pokemon do not have the intended natures. OT_ID_PRESET, STEVEN_OTID); for (j = 0; j < PARTY_SIZE; j++) - SetMonData(&gPlayerParty[3 + i], MON_DATA_HP_EV + j, &sStevenMons[i].evs[j]); + SetMonData(&gPlayerParty[MULTI_PARTY_SIZE + i], MON_DATA_HP_EV + j, &sStevenMons[i].evs[j]); for (j = 0; j < MAX_MON_MOVES; j++) - SetMonMoveSlot(&gPlayerParty[3 + i], sStevenMons[i].moves[j], j); - SetMonData(&gPlayerParty[3 + i], MON_DATA_OT_NAME, gTrainers[TRAINER_STEVEN].trainerName); + SetMonMoveSlot(&gPlayerParty[MULTI_PARTY_SIZE + i], sStevenMons[i].moves[j], j); + SetMonData(&gPlayerParty[MULTI_PARTY_SIZE + i], MON_DATA_OT_NAME, gTrainers[TRAINER_STEVEN].trainerName); j = MALE; - SetMonData(&gPlayerParty[3 + i], MON_DATA_OT_GENDER, &j); - CalculateMonStats(&gPlayerParty[3 + i]); + SetMonData(&gPlayerParty[MULTI_PARTY_SIZE + i], MON_DATA_OT_GENDER, &j); + CalculateMonStats(&gPlayerParty[MULTI_PARTY_SIZE + i]); } } else if (trainerId == TRAINER_EREADER) @@ -2980,10 +2981,10 @@ static void FillPartnerParty(u16 trainerId) level = SetFacilityPtrsGetLevel(); ivs = GetFrontierTrainerFixedIvs(trainerId); otID = Random32(); - for (i = 0; i < 2; i++) + for (i = 0; i < FRONTIER_MULTI_PARTY_SIZE; i++) { monId = gSaveBlock2Ptr->frontier.trainerIds[i + 18]; - CreateMonWithEVSpreadNatureOTID(&gPlayerParty[3 + i], + CreateMonWithEVSpreadNatureOTID(&gPlayerParty[MULTI_PARTY_SIZE + i], gFacilityTrainerMons[monId].species, level, gFacilityTrainerMons[monId].nature, @@ -2993,23 +2994,23 @@ static void FillPartnerParty(u16 trainerId) friendship = MAX_FRIENDSHIP; for (j = 0; j < MAX_MON_MOVES; j++) { - SetMonMoveSlot(&gPlayerParty[3 + i], gFacilityTrainerMons[monId].moves[j], j); + SetMonMoveSlot(&gPlayerParty[MULTI_PARTY_SIZE + i], gFacilityTrainerMons[monId].moves[j], j); if (gFacilityTrainerMons[monId].moves[j] == MOVE_FRUSTRATION) friendship = 0; } - SetMonData(&gPlayerParty[3 + i], MON_DATA_FRIENDSHIP, &friendship); - SetMonData(&gPlayerParty[3 + i], MON_DATA_HELD_ITEM, &gBattleFrontierHeldItems[gFacilityTrainerMons[monId].itemTableId]); + SetMonData(&gPlayerParty[MULTI_PARTY_SIZE + i], MON_DATA_FRIENDSHIP, &friendship); + SetMonData(&gPlayerParty[MULTI_PARTY_SIZE + i], MON_DATA_HELD_ITEM, &gBattleFrontierHeldItems[gFacilityTrainerMons[monId].itemTableId]); for (j = 0; j < PLAYER_NAME_LENGTH + 1; j++) trainerName[j] = gFacilityTrainers[trainerId].trainerName[j]; - SetMonData(&gPlayerParty[3 + i], MON_DATA_OT_NAME, &trainerName); + SetMonData(&gPlayerParty[MULTI_PARTY_SIZE + i], MON_DATA_OT_NAME, &trainerName); j = IsFrontierTrainerFemale(trainerId); - SetMonData(&gPlayerParty[3 + i], MON_DATA_OT_GENDER, &j); + SetMonData(&gPlayerParty[MULTI_PARTY_SIZE + i], MON_DATA_OT_GENDER, &j); } } else if (trainerId < TRAINER_RECORD_MIXING_APPRENTICE) { trainerId -= TRAINER_RECORD_MIXING_FRIEND; - for (i = 0; i < 2; i++) + for (i = 0; i < FRONTIER_MULTI_PARTY_SIZE; i++) { struct EmeraldBattleTowerRecord *record = &gSaveBlock2Ptr->frontier.towerRecords[trainerId]; struct BattleTowerPokemon monData = record->party[gSaveBlock2Ptr->frontier.trainerIds[18 + i]]; @@ -3027,20 +3028,20 @@ static void FillPartnerParty(u16 trainerId) if (monData.nickname[0] == EXT_CTRL_CODE_BEGIN && monData.nickname[1] == EXT_CTRL_CODE_JPN) trainerName[5] = EOS; } - CreateBattleTowerMon2(&gPlayerParty[3 + i], &monData, TRUE); - SetMonData(&gPlayerParty[3 + i], MON_DATA_OT_NAME, trainerName); + CreateBattleTowerMon2(&gPlayerParty[MULTI_PARTY_SIZE + i], &monData, TRUE); + SetMonData(&gPlayerParty[MULTI_PARTY_SIZE + i], MON_DATA_OT_NAME, trainerName); j = IsFrontierTrainerFemale(trainerId + TRAINER_RECORD_MIXING_FRIEND); - SetMonData(&gPlayerParty[3 + i], MON_DATA_OT_GENDER, &j); + SetMonData(&gPlayerParty[MULTI_PARTY_SIZE + i], MON_DATA_OT_GENDER, &j); } } else { trainerId -= TRAINER_RECORD_MIXING_APPRENTICE; - for (i = 0; i < 2; i++) + for (i = 0; i < FRONTIER_MULTI_PARTY_SIZE; i++) { - CreateApprenticeMon(&gPlayerParty[3 + i], &gSaveBlock2Ptr->apprentices[trainerId], gSaveBlock2Ptr->frontier.trainerIds[18 + i]); + CreateApprenticeMon(&gPlayerParty[MULTI_PARTY_SIZE + i], &gSaveBlock2Ptr->apprentices[trainerId], gSaveBlock2Ptr->frontier.trainerIds[18 + i]); j = IsFrontierTrainerFemale(trainerId + TRAINER_RECORD_MIXING_APPRENTICE); - SetMonData(&gPlayerParty[3 + i], MON_DATA_OT_GENDER, &j); + SetMonData(&gPlayerParty[MULTI_PARTY_SIZE + i], MON_DATA_OT_GENDER, &j); } } } @@ -3351,7 +3352,7 @@ static void SetNextBattleTentOpponent(void) static void FillTentTrainerParty_(u16 trainerId, u8 firstMonId, u8 monCount) { s32 i, j; - u16 chosenMonIndices[4]; + u16 chosenMonIndices[MAX_FRONTIER_PARTY_SIZE]; u8 friendship; u8 level = SetTentPtrsGetLevel(); u8 fixedIV = 0; diff --git a/src/berry_crush.c b/src/berry_crush.c index 542888631e..a67d1548eb 100755 --- a/src/berry_crush.c +++ b/src/berry_crush.c @@ -19,9 +19,9 @@ #include "menu.h" #include "overworld.h" #include "palette.h" -#include "pokemon_jump.h" +#include "minigame_countdown.h" #include "random.h" -#include "rom_8034C54.h" +#include "digit_obj_util.h" #include "save.h" #include "scanline_effect.h" #include "script.h" @@ -714,14 +714,14 @@ static const struct SpriteTemplate gUnknown_082F436C = .callback = SpriteCallbackDummy }; -static const struct UnkStruct3 gUnknown_082F4384[] = +static const struct DigitObjUtilTemplate gUnknown_082F4384[] = { { - .field_0_0 = 1, + .strConvMode = 1, .shape = 2, .size = 0, .priority = 0, - .field_1 = 2, + .oamCount = 2, .xDelta = 8, .x = 156, .y = 0, @@ -729,11 +729,11 @@ static const struct UnkStruct3 gUnknown_082F4384[] = .spritePal = gUnknown_082F422C, }, { - .field_0_0 = 0, + .strConvMode = 0, .shape = 2, .size = 0, .priority = 0, - .field_1 = 2, + .oamCount = 2, .xDelta = 8, .x = 180, .y = 0, @@ -741,11 +741,11 @@ static const struct UnkStruct3 gUnknown_082F4384[] = .spritePal = gUnknown_082F422C, }, { - .field_0_0 = 0, + .strConvMode = 0, .shape = 2, .size = 0, .priority = 0, - .field_1 = 2, + .oamCount = 2, .xDelta = 8, .x = 204, .y = 0, @@ -1036,7 +1036,7 @@ int sub_802104C(void) case 1: CpuFill16(0, (void *)OAM, OAM_SIZE); gReservedSpritePaletteCount = 0; - sub_8034C54(3); + DigitObjUtil_Init(3); break; case 2: ResetPaletteFade(); @@ -1165,7 +1165,7 @@ int sub_802130C(void) case 6: DestroyWirelessStatusIndicatorSprite(); sub_8022960(var0); - sub_8034CC8(); + DigitObjUtil_Free(); break; case 7: var0->unkC = 0; @@ -1701,18 +1701,18 @@ void ShowBerryCrushRankings(void) void sub_8022524(struct BerryCrushGame_138 *r4, u16 r1) { sub_8021944(r4, r1); - sub_8035044(0, r4->unk4); - sub_8035044(1, r4->unk6); - sub_8035044(2, r4->unk8); + DigitObjUtil_PrintNumOn(0, r4->unk4); + DigitObjUtil_PrintNumOn(1, r4->unk6); + DigitObjUtil_PrintNumOn(2, r4->unk8); } void sub_8022554(struct BerryCrushGame_138 *r0) { r0->unk78[0]->invisible = TRUE; r0->unk78[1]->invisible = TRUE; - sub_803547C(2, 1); - sub_803547C(1, 1); - sub_803547C(0, 1); + DigitObjUtil_HideOrShow(2, 1); + DigitObjUtil_HideOrShow(1, 1); + DigitObjUtil_HideOrShow(0, 1); } void sub_8022588(struct BerryCrushGame *r5) @@ -1855,9 +1855,9 @@ void sub_8022730(struct BerryCrushGame *r6) r6->unk138.unk78[r5]->invisible = FALSE; r6->unk138.unk78[r5]->animPaused = FALSE; } - sub_8034D14(0, 0, &gUnknown_082F4384[0]); - sub_8034D14(1, 0, &gUnknown_082F4384[1]); - sub_8034D14(2, 0, &gUnknown_082F4384[2]); + DigitObjUtil_CreatePrinter(0, 0, &gUnknown_082F4384[0]); + DigitObjUtil_CreatePrinter(1, 0, &gUnknown_082F4384[1]); + DigitObjUtil_CreatePrinter(2, 0, &gUnknown_082F4384[2]); if (r6->unk12 == 1) sub_8022554(&r6->unk138); } @@ -1875,9 +1875,9 @@ void sub_8022960(struct BerryCrushGame *r5) FreeSpritePaletteByTag(1); for (; r4 < ARRAY_COUNT(r5->unk138.unk78); ++r4) DestroySprite(r5->unk138.unk78[r4]); - sub_80353DC(2); - sub_80353DC(1); - sub_80353DC(0); + DigitObjUtil_DeletePrinter(2); + DigitObjUtil_DeletePrinter(1); + DigitObjUtil_DeletePrinter(0); for (r4 = 0; r4 < ARRAY_COUNT(r5->unk138.unk4C); ++r4) DestroySprite(r5->unk138.unk4C[r4]); for (r4 = 0; r4 < r5->unk9; ++r4) @@ -2317,10 +2317,10 @@ static u32 sub_80232EC(struct BerryCrushGame *r4, __attribute__((unused)) u8 *r case 1: if (!IsLinkTaskFinished()) return 0; - sub_802EB24(0x1000, 0x1000, 120, 80, 0); + StartMinigameCountdown(0x1000, 0x1000, 120, 80, 0); break; case 2: - if (sub_802EB84()) + if (IsMinigameCountdownRunning()) return 0; // fallthrough case 0: diff --git a/src/bike.c b/src/bike.c index 15857778cc..e66d6b6e13 100644 --- a/src/bike.c +++ b/src/bike.c @@ -696,11 +696,11 @@ static void AcroBikeTransition_WheelieMoving(u8 direction) if (MetatileBehavior_IsBumpySlope(playerObjEvent->currentMetatileBehavior)) PlayerIdleWheelie(direction); else - sub_808B980(direction); //hit wall? + PlayerWheelieInPlace(direction); //hit wall? } return; } - sub_808B9BC(direction); + PlayerWheelieMove(direction); gPlayerAvatar.runningState = MOVING; } @@ -730,11 +730,11 @@ static void AcroBikeTransition_WheelieRisingMoving(u8 direction) if (MetatileBehavior_IsBumpySlope(playerObjEvent->currentMetatileBehavior)) PlayerIdleWheelie(direction); else - sub_808B980(direction); //hit wall? + PlayerWheelieInPlace(direction); //hit wall? } return; } - sub_808B9A4(direction); + PlayerPopWheelieWhileMoving(direction); gPlayerAvatar.runningState = MOVING; } @@ -757,7 +757,7 @@ static void AcroBikeTransition_WheelieLoweringMoving(u8 direction) PlayerEndWheelie(direction); return; } - sub_808B9D4(direction); + PlayerEndWheelieWhileMoving(direction); } void Bike_TryAcroBikeHistoryUpdate(u16 newKeys, u16 heldKeys) @@ -1049,7 +1049,7 @@ void Bike_HandleBumpySlopeJump(void) if (MetatileBehavior_IsBumpySlope(tileBehavior)) { gPlayerAvatar.acroBikeState = ACRO_STATE_WHEELIE_STANDING; - sub_808C1B4(GetPlayerMovementDirection()); + PlayerUseAcroBikeOnBumpySlope(GetPlayerMovementDirection()); } } } diff --git a/src/data/decoration/tiles.h b/src/data/decoration/tiles.h index f115205119..de5c43575b 100644 --- a/src/data/decoration/tiles.h +++ b/src/data/decoration/tiles.h @@ -1,463 +1,465 @@ +#define DECOR_TILE(name) (METATILE_SecretBase_##name - 0x200) + const u16 DecorGfx_SMALL_DESK[] = { - 0x87 + DECOR_TILE(SmallDesk) }; const u16 DecorGfx_POKEMON_DESK[] = { - 0x8F + DECOR_TILE(PokemonDesk) }; const u16 DecorGfx_HEAVY_DESK[] = { - 0x90, - 0x91, - 0x92, - 0x98, - 0x99, - 0x9A + DECOR_TILE(HeavyDesk_TopLeft), + DECOR_TILE(HeavyDesk_TopMid), + DECOR_TILE(HeavyDesk_TopRight), + DECOR_TILE(HeavyDesk_BottomLeft), + DECOR_TILE(HeavyDesk_BottomMid), + DECOR_TILE(HeavyDesk_BottomRight) }; const u16 DecorGfx_RAGGED_DESK[] = { - 0x93, - 0x94, - 0x95, - 0x9B, - 0x9C, - 0x9D + DECOR_TILE(RaggedDesk_TopLeft), + DECOR_TILE(RaggedDesk_TopMid), + DECOR_TILE(RaggedDesk_TopRight), + DECOR_TILE(RaggedDesk_BottomLeft), + DECOR_TILE(RaggedDesk_BottomMid), + DECOR_TILE(RaggedDesk_BottomRight) }; const u16 DecorGfx_COMFORT_DESK[] = { - 0x96, - 0x97, - 0xA3, - 0x9E, - 0x9F, - 0xAB + DECOR_TILE(ComfortDesk_TopLeft), + DECOR_TILE(ComfortDesk_TopMid), + DECOR_TILE(ComfortDesk_TopRight), + DECOR_TILE(ComfortDesk_BottomLeft), + DECOR_TILE(ComfortDesk_BottomMid), + DECOR_TILE(ComfortDesk_BottomRight) }; const u16 DecorGfx_PRETTY_DESK[] = { - 0xBD, - 0xBE, - 0xBF, - 0xC5, - 0xC6, - 0xC7, - 0xCD, - 0xCE, - 0xCF + DECOR_TILE(PrettyDesk_TopLeft), + DECOR_TILE(PrettyDesk_TopMid), + DECOR_TILE(PrettyDesk_TopRight), + DECOR_TILE(PrettyDesk_MidLeft), + DECOR_TILE(PrettyDesk_Center), + DECOR_TILE(PrettyDesk_MidRight), + DECOR_TILE(PrettyDesk_BottomLeft), + DECOR_TILE(PrettyDesk_BottomMid), + DECOR_TILE(PrettyDesk_BottomRight) }; const u16 DecorGfx_BRICK_DESK[] = { - 0xA0, - 0xA1, - 0xA2, - 0xA8, - 0xA9, - 0xAA, - 0xB0, - 0xB1, - 0xB2 + DECOR_TILE(BrickDesk_TopLeft), + DECOR_TILE(BrickDesk_TopMid), + DECOR_TILE(BrickDesk_TopRight), + DECOR_TILE(BrickDesk_MidLeft), + DECOR_TILE(BrickDesk_Center), + DECOR_TILE(BrickDesk_MidRight), + DECOR_TILE(BrickDesk_BottomLeft), + DECOR_TILE(BrickDesk_BottomMid), + DECOR_TILE(BrickDesk_BottomRight) }; const u16 DecorGfx_CAMP_DESK[] = { - 0xA4, - 0xA5, - 0xA6, - 0xAC, - 0xAD, - 0xAE, - 0xB4, - 0xB5, - 0xB6 + DECOR_TILE(CampDesk_TopLeft), + DECOR_TILE(CampDesk_TopMid), + DECOR_TILE(CampDesk_TopRight), + DECOR_TILE(CampDesk_MidLeft), + DECOR_TILE(CampDesk_Center), + DECOR_TILE(CampDesk_MidRight), + DECOR_TILE(CampDesk_BottomLeft), + DECOR_TILE(CampDesk_BottomMid), + DECOR_TILE(CampDesk_BottomRight) }; const u16 DecorGfx_HARD_DESK[] = { - 0xA7, - 0xBB, - 0xBC, - 0xAF, - 0xC3, - 0xC4, - 0xB7, - 0xCB, - 0xCC + DECOR_TILE(HardDesk_TopLeft), + DECOR_TILE(HardDesk_TopMid), + DECOR_TILE(HardDesk_TopRight), + DECOR_TILE(HardDesk_MidLeft), + DECOR_TILE(HardDesk_Center), + DECOR_TILE(HardDesk_MidRight), + DECOR_TILE(HardDesk_BottomLeft), + DECOR_TILE(HardDesk_BottomMid), + DECOR_TILE(HardDesk_BottomRight) }; const u16 DecorGfx_SMALL_CHAIR[] = { - 0xB8 + DECOR_TILE(SmallChair) }; const u16 DecorGfx_POKEMON_CHAIR[] = { - 0xB9 + DECOR_TILE(PokemonChair) }; const u16 DecorGfx_HEAVY_CHAIR[] = { - 0xBA + DECOR_TILE(HeavyChair) }; const u16 DecorGfx_PRETTY_CHAIR[] = { - 0xC0 + DECOR_TILE(PrettyChair) }; const u16 DecorGfx_COMFORT_CHAIR[] = { - 0xC1 + DECOR_TILE(ComfortChair) }; const u16 DecorGfx_RAGGED_CHAIR[] = { - 0xC2 + DECOR_TILE(RaggedChair) }; const u16 DecorGfx_BRICK_CHAIR[] = { - 0xC8 + DECOR_TILE(BrickChair) }; const u16 DecorGfx_CAMP_CHAIR[] = { - 0xC9 + DECOR_TILE(CampChair) }; const u16 DecorGfx_HARD_CHAIR[] = { - 0xCA + DECOR_TILE(HardChair) }; const u16 DecorGfx_RED_PLANT[] = { - 0xD0, - 0xD8 + DECOR_TILE(RedPlant_Top), + DECOR_TILE(RedPlant_Base1) }; const u16 DecorGfx_TROPICAL_PLANT[] = { - 0xD2, - 0xDA + DECOR_TILE(TropicalPlant_Top), + DECOR_TILE(TropicalPlant_Base1) }; const u16 DecorGfx_PRETTY_FLOWERS[] = { - 0xD4, - 0xDC + DECOR_TILE(PrettyFlowers_Top), + DECOR_TILE(PrettyFlowers_Base1) }; const u16 DecorGfx_COLORFUL_PLANT[] = { - 0xE0, - 0xE2, - 0xE8, - 0xE9 + DECOR_TILE(ColorfulPlant_TopLeft), + DECOR_TILE(ColorfulPlant_TopRight), + DECOR_TILE(ColorfulPlant_BaseLeft1), + DECOR_TILE(ColorfulPlant_BaseRight1) }; const u16 DecorGfx_BIG_PLANT[] = { - 0xE4, - 0xE6, - 0xEC, - 0xED + DECOR_TILE(BigPlant_TopLeft), + DECOR_TILE(BigPlant_TopRight), + DECOR_TILE(BigPlant_BaseLeft1), + DECOR_TILE(BigPlant_BaseRight1) }; const u16 DecorGfx_GORGEOUS_PLANT[] = { - 0xF0, - 0xF2, - 0xF8, - 0xF9 + DECOR_TILE(GorgeousPlant_TopLeft), + DECOR_TILE(GorgeousPlant_TopRight), + DECOR_TILE(GorgeousPlant_BaseLeft1), + DECOR_TILE(GorgeousPlant_BaseRight1) }; const u16 DecorGfx_RED_BRICK[] = { - 0x25, - 0x2D + DECOR_TILE(RedBrick_Top), + DECOR_TILE(RedBrick_Bottom) }; const u16 DecorGfx_YELLOW_BRICK[] = { - 0x26, - 0x2E + DECOR_TILE(YellowBrick_Top), + DECOR_TILE(YellowBrick_Bottom) }; const u16 DecorGfx_BLUE_BRICK[] = { - 0x27, - 0x2F + DECOR_TILE(BlueBrick_Top), + DECOR_TILE(BlueBrick_Bottom) }; const u16 DecorGfx_RED_BALLOON[] = { - 0x138 + DECOR_TILE(RedBalloon) }; const u16 DecorGfx_BLUE_BALLOON[] = { - 0x13C + DECOR_TILE(BlueBalloon) }; const u16 DecorGfx_YELLOW_BALLOON[] = { - 0x140 + DECOR_TILE(YellowBalloon) }; const u16 DecorGfx_RED_TENT[] = { - 0x30, - 0x31, - 0x32, - 0x38, - 0x39, - 0x3A, - 0x40, - 0x41, - 0x3B + DECOR_TILE(RedTent_TopLeft), + DECOR_TILE(RedTent_TopMid), + DECOR_TILE(RedTent_TopRight), + DECOR_TILE(RedTent_MidLeft), + DECOR_TILE(RedTent_DoorTop), + DECOR_TILE(RedTent_MidRight), + DECOR_TILE(RedTent_BottomLeft), + DECOR_TILE(RedTent_Door), + DECOR_TILE(RedTent_BottomRight) }; const u16 DecorGfx_BLUE_TENT[] = { - 0x48, - 0x49, - 0x68, - 0x50, - 0x51, - 0x70, - 0x58, - 0x59, - 0x69 + DECOR_TILE(BlueTent_TopLeft), + DECOR_TILE(BlueTent_TopMid), + DECOR_TILE(BlueTent_TopRight), + DECOR_TILE(BlueTent_MidLeft), + DECOR_TILE(BlueTent_DoorTop), + DECOR_TILE(BlueTent_MidRight), + DECOR_TILE(BlueTent_BottomLeft), + DECOR_TILE(BlueTent_Door), + DECOR_TILE(BlueTent_BottomRight) }; const u16 DecorGfx_SOLID_BOARD[] = { - 0x34, - 0x3C + DECOR_TILE(SolidBoard_Top), + DECOR_TILE(SolidBoard_Bottom) }; const u16 DecorGfx_SLIDE[] = { - 0x35, - 0x36, - 0x3D, - 0x3E, - 0x63, - 0x64, - 0x6F, - 0x77 + DECOR_TILE(Slide_TopLeft), + DECOR_TILE(Slide_TopRight), + DECOR_TILE(Slide_StairLanding), + DECOR_TILE(Slide_SlideTop), + DECOR_TILE(Slide_Stairs), + DECOR_TILE(Slide_SlideBottom), + DECOR_TILE(Slide_MatLeft), + DECOR_TILE(Slide_MatRight) }; const u16 DecorGfx_FENCE_LENGTH[] = { - 0x33 + DECOR_TILE(Fence_Vertical) }; const u16 DecorGfx_FENCE_WIDTH[] = { - 0x2C + DECOR_TILE(Fence_Horizontal) }; const u16 DecorGfx_TIRE[] = { - 0x80, - 0x81, - 0x88, - 0x89 + DECOR_TILE(Tire_TopLeft), + DECOR_TILE(Tire_TopRight), + DECOR_TILE(Tire_BottomLeft), + DECOR_TILE(Tire_BottomRight) }; const u16 DecorGfx_STAND[] = { - 0x6A, - 0x6B, - 0x6C, - 0x6D, - 0x72, - 0x73, - 0x74, - 0x75 + DECOR_TILE(Stand_CornerLeft), + DECOR_TILE(Stand_MidLeft), + DECOR_TILE(Stand_MidRight), + DECOR_TILE(Stand_CornerRight), + DECOR_TILE(Stand_StairsLeft), + DECOR_TILE(Stand_BaseLeft), + DECOR_TILE(Stand_BaseRight), + DECOR_TILE(Stand_StairsRight) }; const u16 DecorGfx_MUD_BALL[] = { - 0x28 + DECOR_TILE(MudBall) }; const u16 DecorGfx_BREAKABLE_DOOR[] = { - 0x37, - 0x3F + DECOR_TILE(BreakableDoor_TopClosed), + DECOR_TILE(BreakableDoor_BottomClosed) }; const u16 DecorGfx_SAND_ORNAMENT[] = { - 0x85, - 0x8D + DECOR_TILE(SandOrnament_Top), + DECOR_TILE(SandOrnament_Base1) }; const u16 DecorGfx_SILVER_SHIELD[] = { - 0xD6, - 0xDE + DECOR_TILE(SilverShield_Top), + DECOR_TILE(SilverShield_Base1) }; const u16 DecorGfx_GOLD_SHIELD[] = { - 0x12E, - 0x136 + DECOR_TILE(GoldShield_Top), + DECOR_TILE(GoldShield_Base1) }; const u16 DecorGfx_GLASS_ORNAMENT[] = { - 0x82, - 0x8A + DECOR_TILE(GlassOrnament_Top), + DECOR_TILE(GlassOrnament_Base1) }; const u16 DecorGfx_TV[] = { - 0xF4 + DECOR_TILE(TV) }; const u16 DecorGfx_ROUND_TV[] = { - 0xF5 + DECOR_TILE(RoundTV) }; const u16 DecorGfx_CUTE_TV[] = { - 0xF6 + DECOR_TILE(CuteTV) }; const u16 DecorGfx_GLITTER_MAT[] = { - 0x60 + DECOR_TILE(GlitterMat) }; const u16 DecorGfx_JUMP_MAT[] = { - 0x61 + DECOR_TILE(JumpMat) }; const u16 DecorGfx_SPIN_MAT[] = { - 0x62 + DECOR_TILE(SpinMat) }; const u16 DecorGfx_C_LOW_NOTE_MAT[] = { - 0x78 + DECOR_TILE(NoteMat_C_Low) }; const u16 DecorGfx_D_NOTE_MAT[] = { - 0x79 + DECOR_TILE(NoteMat_D) }; const u16 DecorGfx_E_NOTE_MAT[] = { - 0x7A + DECOR_TILE(NoteMat_E) }; const u16 DecorGfx_F_NOTE_MAT[] = { - 0x7B + DECOR_TILE(NoteMat_F) }; const u16 DecorGfx_G_NOTE_MAT[] = { - 0x7C + DECOR_TILE(NoteMat_G) }; const u16 DecorGfx_A_NOTE_MAT[] = { - 0x7D + DECOR_TILE(NoteMat_A) }; const u16 DecorGfx_B_NOTE_MAT[] = { - 0x7E + DECOR_TILE(NoteMat_B) }; const u16 DecorGfx_C_HIGH_NOTE_MAT[] = { - 0xB3 + DECOR_TILE(NoteMat_C_High) }; const u16 DecorGfx_SURF_MAT[] = { - 0x42, - 0x43, - 0x44, - 0x4A, - 0x4B, - 0x4C, - 0x52, - 0x53, - 0x54 + DECOR_TILE(SurfMat_TopLeft), + DECOR_TILE(SurfMat_TopMid), + DECOR_TILE(SurfMat_TopRight), + DECOR_TILE(SurfMat_MidLeft), + DECOR_TILE(SurfMat_Center), + DECOR_TILE(SurfMat_MidRight), + DECOR_TILE(SurfMat_BottomLeft), + DECOR_TILE(SurfMat_BottomMid), + DECOR_TILE(SurfMat_BottomRight) }; const u16 DecorGfx_THUNDER_MAT[] = { - 0x45, - 0x46, - 0x47, - 0x4D, - 0x4E, - 0x4F, - 0x55, - 0x56, - 0x57 + DECOR_TILE(ThunderMat_TopLeft), + DECOR_TILE(ThunderMat_TopMid), + DECOR_TILE(ThunderMat_TopRight), + DECOR_TILE(ThunderMat_MidLeft), + DECOR_TILE(ThunderMat_Center), + DECOR_TILE(ThunderMat_MidRight), + DECOR_TILE(ThunderMat_BottomLeft), + DECOR_TILE(ThunderMat_BottomMid), + DECOR_TILE(ThunderMat_BottomRight) }; const u16 DecorGfx_FIRE_BLAST_MAT[] = { - 0x5A, - 0x5B, - 0x5C, - 0x5D, - 0x5E, - 0x5F, - 0x65, - 0x66, - 0x67 + DECOR_TILE(FireBlastMat_TopLeft), + DECOR_TILE(FireBlastMat_TopMid), + DECOR_TILE(FireBlastMat_TopRight), + DECOR_TILE(FireBlastMat_MidLeft), + DECOR_TILE(FireBlastMat_Center), + DECOR_TILE(FireBlastMat_MidRight), + DECOR_TILE(FireBlastMat_BottomLeft), + DECOR_TILE(FireBlastMat_BottomMid), + DECOR_TILE(FireBlastMat_BottomRight) }; const u16 DecorGfx_POWDER_SNOW_MAT[] = { - 0x100, - 0x101, - 0x102, - 0x108, - 0x109, - 0x10A, - 0x110, - 0x111, - 0x112 + DECOR_TILE(PowderSnowMat_TopLeft), + DECOR_TILE(PowderSnowMat_TopMid), + DECOR_TILE(PowderSnowMat_TopRight), + DECOR_TILE(PowderSnowMat_MidLeft), + DECOR_TILE(PowderSnowMat_Center), + DECOR_TILE(PowderSnowMat_MidRight), + DECOR_TILE(PowderSnowMat_BottomLeft), + DECOR_TILE(PowderSnowMat_BottomMid), + DECOR_TILE(PowderSnowMat_BottomRight) }; const u16 DecorGfx_ATTRACT_MAT[] = { - 0x103, - 0x104, - 0x105, - 0x10B, - 0x10C, - 0x10D, - 0x113, - 0x114, - 0x115 + DECOR_TILE(AttractMat_TopLeft), + DECOR_TILE(AttractMat_TopMid), + DECOR_TILE(AttractMat_TopRight), + DECOR_TILE(AttractMat_MidLeft), + DECOR_TILE(AttractMat_Center), + DECOR_TILE(AttractMat_MidRight), + DECOR_TILE(AttractMat_BottomLeft), + DECOR_TILE(AttractMat_BottomMid), + DECOR_TILE(AttractMat_BottomRight) }; const u16 DecorGfx_FISSURE_MAT[] = { - 0x106, - 0x107, - 0x118, - 0x10E, - 0x10F, - 0x120, - 0x116, - 0x117, - 0x128 + DECOR_TILE(FissureMat_TopLeft), + DECOR_TILE(FissureMat_TopMid), + DECOR_TILE(FissureMat_TopRight), + DECOR_TILE(FissureMat_MidLeft), + DECOR_TILE(FissureMat_Center), + DECOR_TILE(FissureMat_MidRight), + DECOR_TILE(FissureMat_BottomLeft), + DECOR_TILE(FissureMat_BottomMid), + DECOR_TILE(FissureMat_BottomRight) }; const u16 DecorGfx_SPIKES_MAT[] = { - 0x119, - 0x11A, - 0x11B, - 0x121, - 0x122, - 0x123, - 0x129, - 0x12A, - 0x12B + DECOR_TILE(SpikesMat_TopLeft), + DECOR_TILE(SpikesMat_TopMid), + DECOR_TILE(SpikesMat_TopRight), + DECOR_TILE(SpikesMat_MidLeft), + DECOR_TILE(SpikesMat_Center), + DECOR_TILE(SpikesMat_MidRight), + DECOR_TILE(SpikesMat_BottomLeft), + DECOR_TILE(SpikesMat_BottomMid), + DECOR_TILE(SpikesMat_BottomRight) }; const u16 DecorGfx_BALL_POSTER[] = { - 0x130 + DECOR_TILE(BallPoster) }; const u16 DecorGfx_GREEN_POSTER[] = { - 0x131 + DECOR_TILE(GreenPoster) }; const u16 DecorGfx_RED_POSTER[] = { - 0x132 + DECOR_TILE(RedPoster) }; const u16 DecorGfx_BLUE_POSTER[] = { - 0x133 + DECOR_TILE(BluePoster) }; const u16 DecorGfx_CUTE_POSTER[] = { - 0x134 + DECOR_TILE(CutePoster) }; const u16 DecorGfx_PIKA_POSTER[] = { - 0x11C, - 0x11D + DECOR_TILE(PikaPoster_Left), + DECOR_TILE(PikaPoster_Right) }; const u16 DecorGfx_LONG_POSTER[] = { - 0x11E, - 0x11F + DECOR_TILE(LongPoster_Left), + DECOR_TILE(LongPoster_Right) }; const u16 DecorGfx_SEA_POSTER[] = { - 0x124, - 0x125 + DECOR_TILE(SeaPoster_Left), + DECOR_TILE(SeaPoster_Right) }; const u16 DecorGfx_SKY_POSTER[] = { - 0x126, - 0x127 + DECOR_TILE(SkyPoster_Left), + DECOR_TILE(SkyPoster_Right) }; const u16 DecorGfx_KISS_POSTER[] = { - 0x12C, - 0x12D + DECOR_TILE(KissPoster_Left), + DECOR_TILE(KissPoster_Right) }; const u16 DecorGfx_PICHU_DOLL[] = { diff --git a/src/data/graphics/decorations.h b/src/data/graphics/decorations.h index d8b865fcf7..b18c873481 100644 --- a/src/data/graphics/decorations.h +++ b/src/data/graphics/decorations.h @@ -1,125 +1,125 @@ -const u32 gDecorIcon_HeavyDesk[] = INCBIN_U32("graphics/decorations/decor_heavy_desk.4bpp.lz"); -const u32 gDecorIconPalette_HeavyDesk[] = INCBIN_U32("graphics/decorations/decor_heavy_desk.gbapal.lz"); +const u32 gDecorIcon_HeavyDesk[] = INCBIN_U32("graphics/decorations/heavy_desk.4bpp.lz"); +const u32 gDecorIconPalette_HeavyDesk[] = INCBIN_U32("graphics/decorations/heavy_desk.gbapal.lz"); -const u32 gDecorIcon_RaggedDesk[] = INCBIN_U32("graphics/decorations/decor_ragged_desk.4bpp.lz"); -const u32 gDecorIconPalette_RaggedDesk[] = INCBIN_U32("graphics/decorations/decor_ragged_desk.gbapal.lz"); +const u32 gDecorIcon_RaggedDesk[] = INCBIN_U32("graphics/decorations/ragged_desk.4bpp.lz"); +const u32 gDecorIconPalette_RaggedDesk[] = INCBIN_U32("graphics/decorations/ragged_desk.gbapal.lz"); -const u32 gDecorIcon_ComfortDesk[] = INCBIN_U32("graphics/decorations/decor_comfort_desk.4bpp.lz"); -const u32 gDecorIconPalette_ComfortDesk[] = INCBIN_U32("graphics/decorations/decor_comfort_desk.gbapal.lz"); +const u32 gDecorIcon_ComfortDesk[] = INCBIN_U32("graphics/decorations/comfort_desk.4bpp.lz"); +const u32 gDecorIconPalette_ComfortDesk[] = INCBIN_U32("graphics/decorations/comfort_desk.gbapal.lz"); -const u32 gDecorIcon_PrettyDesk[] = INCBIN_U32("graphics/decorations/decor_pretty_desk.4bpp.lz"); -const u32 gDecorIconPalette_PrettyDesk[] = INCBIN_U32("graphics/decorations/decor_pretty_desk.gbapal.lz"); +const u32 gDecorIcon_PrettyDesk[] = INCBIN_U32("graphics/decorations/pretty_desk.4bpp.lz"); +const u32 gDecorIconPalette_PrettyDesk[] = INCBIN_U32("graphics/decorations/pretty_desk.gbapal.lz"); -const u32 gDecorIcon_BrickDesk[] = INCBIN_U32("graphics/decorations/decor_brick_desk.4bpp.lz"); -const u32 gDecorIconPalette_BrickDesk[] = INCBIN_U32("graphics/decorations/decor_brick_desk.gbapal.lz"); +const u32 gDecorIcon_BrickDesk[] = INCBIN_U32("graphics/decorations/brick_desk.4bpp.lz"); +const u32 gDecorIconPalette_BrickDesk[] = INCBIN_U32("graphics/decorations/brick_desk.gbapal.lz"); -const u32 gDecorIcon_CampDesk[] = INCBIN_U32("graphics/decorations/decor_camp_desk.4bpp.lz"); -const u32 gDecorIconPalette_CampDesk[] = INCBIN_U32("graphics/decorations/decor_camp_desk.gbapal.lz"); +const u32 gDecorIcon_CampDesk[] = INCBIN_U32("graphics/decorations/camp_desk.4bpp.lz"); +const u32 gDecorIconPalette_CampDesk[] = INCBIN_U32("graphics/decorations/camp_desk.gbapal.lz"); -const u32 gDecorIcon_HardDesk[] = INCBIN_U32("graphics/decorations/decor_hard_desk.4bpp.lz"); -const u32 gDecorIconPalette_HardDesk[] = INCBIN_U32("graphics/decorations/decor_hard_desk.gbapal.lz"); +const u32 gDecorIcon_HardDesk[] = INCBIN_U32("graphics/decorations/hard_desk.4bpp.lz"); +const u32 gDecorIconPalette_HardDesk[] = INCBIN_U32("graphics/decorations/hard_desk.gbapal.lz"); -const u32 gDecorIcon_RedPlant[] = INCBIN_U32("graphics/decorations/decor_red_plant.4bpp.lz"); -const u32 gDecorIconPalette_RedPlant[] = INCBIN_U32("graphics/decorations/decor_red_plant.gbapal.lz"); +const u32 gDecorIcon_RedPlant[] = INCBIN_U32("graphics/decorations/red_plant.4bpp.lz"); +const u32 gDecorIconPalette_RedPlant[] = INCBIN_U32("graphics/decorations/red_plant.gbapal.lz"); -const u32 gDecorIcon_TropicalPlant[] = INCBIN_U32("graphics/decorations/decor_tropical_plant.4bpp.lz"); -const u32 gDecorIconPalette_TropicalPlant[] = INCBIN_U32("graphics/decorations/decor_tropical_plant.gbapal.lz"); +const u32 gDecorIcon_TropicalPlant[] = INCBIN_U32("graphics/decorations/tropical_plant.4bpp.lz"); +const u32 gDecorIconPalette_TropicalPlant[] = INCBIN_U32("graphics/decorations/tropical_plant.gbapal.lz"); -const u32 gDecorIcon_PrettyFlowers[] = INCBIN_U32("graphics/decorations/decor_pretty_flowers.4bpp.lz"); -const u32 gDecorIconPalette_PrettyFlowers[] = INCBIN_U32("graphics/decorations/decor_pretty_flowers.gbapal.lz"); +const u32 gDecorIcon_PrettyFlowers[] = INCBIN_U32("graphics/decorations/pretty_flowers.4bpp.lz"); +const u32 gDecorIconPalette_PrettyFlowers[] = INCBIN_U32("graphics/decorations/pretty_flowers.gbapal.lz"); -const u32 gDecorIcon_ColorfulPlant[] = INCBIN_U32("graphics/decorations/decor_colorful_plant.4bpp.lz"); -const u32 gDecorIconPalette_ColorfulPlant[] = INCBIN_U32("graphics/decorations/decor_colorful_plant.gbapal.lz"); +const u32 gDecorIcon_ColorfulPlant[] = INCBIN_U32("graphics/decorations/colorful_plant.4bpp.lz"); +const u32 gDecorIconPalette_ColorfulPlant[] = INCBIN_U32("graphics/decorations/colorful_plant.gbapal.lz"); -const u32 gDecorIcon_BigPlant[] = INCBIN_U32("graphics/decorations/decor_big_plant.4bpp.lz"); -const u32 gDecorIconPalette_BigPlant[] = INCBIN_U32("graphics/decorations/decor_big_plant.gbapal.lz"); +const u32 gDecorIcon_BigPlant[] = INCBIN_U32("graphics/decorations/big_plant.4bpp.lz"); +const u32 gDecorIconPalette_BigPlant[] = INCBIN_U32("graphics/decorations/big_plant.gbapal.lz"); -const u32 gDecorIcon_GorgeousPlant[] = INCBIN_U32("graphics/decorations/decor_gorgeous_plant.4bpp.lz"); -const u32 gDecorIconPalette_GorgeousPlant[] = INCBIN_U32("graphics/decorations/decor_gorgeous_plant.gbapal.lz"); +const u32 gDecorIcon_GorgeousPlant[] = INCBIN_U32("graphics/decorations/gorgeous_plant.4bpp.lz"); +const u32 gDecorIconPalette_GorgeousPlant[] = INCBIN_U32("graphics/decorations/gorgeous_plant.gbapal.lz"); -const u32 gDecorIcon_RedBrick[] = INCBIN_U32("graphics/decorations/decor_red_brick.4bpp.lz"); -const u32 gDecorIconPalette_RedBrick[] = INCBIN_U32("graphics/decorations/decor_red_brick.gbapal.lz"); +const u32 gDecorIcon_RedBrick[] = INCBIN_U32("graphics/decorations/red_brick.4bpp.lz"); +const u32 gDecorIconPalette_RedBrick[] = INCBIN_U32("graphics/decorations/red_brick.gbapal.lz"); -const u32 gDecorIcon_YellowBrick[] = INCBIN_U32("graphics/decorations/decor_yellow_brick.4bpp.lz"); -const u32 gDecorIconPalette_YellowBrick[] = INCBIN_U32("graphics/decorations/decor_yellow_brick.gbapal.lz"); +const u32 gDecorIcon_YellowBrick[] = INCBIN_U32("graphics/decorations/yellow_brick.4bpp.lz"); +const u32 gDecorIconPalette_YellowBrick[] = INCBIN_U32("graphics/decorations/yellow_brick.gbapal.lz"); -const u32 gDecorIcon_BlueBrick[] = INCBIN_U32("graphics/decorations/decor_blue_brick.4bpp.lz"); -const u32 gDecorIconPalette_BlueBrick[] = INCBIN_U32("graphics/decorations/decor_blue_brick.gbapal.lz"); +const u32 gDecorIcon_BlueBrick[] = INCBIN_U32("graphics/decorations/blue_brick.4bpp.lz"); +const u32 gDecorIconPalette_BlueBrick[] = INCBIN_U32("graphics/decorations/blue_brick.gbapal.lz"); -const u32 gDecorIcon_RedTent[] = INCBIN_U32("graphics/decorations/decor_red_tent.4bpp.lz"); -const u32 gDecorIconPalette_RedTent[] = INCBIN_U32("graphics/decorations/decor_red_tent.gbapal.lz"); +const u32 gDecorIcon_RedTent[] = INCBIN_U32("graphics/decorations/red_tent.4bpp.lz"); +const u32 gDecorIconPalette_RedTent[] = INCBIN_U32("graphics/decorations/red_tent.gbapal.lz"); -const u32 gDecorIcon_BlueTent[] = INCBIN_U32("graphics/decorations/decor_blue_tent.4bpp.lz"); -const u32 gDecorIconPalette_BlueTent[] = INCBIN_U32("graphics/decorations/decor_blue_tent.gbapal.lz"); +const u32 gDecorIcon_BlueTent[] = INCBIN_U32("graphics/decorations/blue_tent.4bpp.lz"); +const u32 gDecorIconPalette_BlueTent[] = INCBIN_U32("graphics/decorations/blue_tent.gbapal.lz"); -const u32 gDecorIcon_SolidBoard[] = INCBIN_U32("graphics/decorations/decor_solid_board.4bpp.lz"); -const u32 gDecorIconPalette_SolidBoard[] = INCBIN_U32("graphics/decorations/decor_solid_board.gbapal.lz"); +const u32 gDecorIcon_SolidBoard[] = INCBIN_U32("graphics/decorations/solid_board.4bpp.lz"); +const u32 gDecorIconPalette_SolidBoard[] = INCBIN_U32("graphics/decorations/solid_board.gbapal.lz"); -const u32 gDecorIcon_Slide[] = INCBIN_U32("graphics/decorations/decor_slide.4bpp.lz"); -const u32 gDecorIconPalette_Slide[] = INCBIN_U32("graphics/decorations/decor_slide.gbapal.lz"); +const u32 gDecorIcon_Slide[] = INCBIN_U32("graphics/decorations/slide.4bpp.lz"); +const u32 gDecorIconPalette_Slide[] = INCBIN_U32("graphics/decorations/slide.gbapal.lz"); -const u32 gDecorIcon_Tire[] = INCBIN_U32("graphics/decorations/decor_tire.4bpp.lz"); -const u32 gDecorIconPalette_Tire[] = INCBIN_U32("graphics/decorations/decor_tire.gbapal.lz"); +const u32 gDecorIcon_Tire[] = INCBIN_U32("graphics/decorations/tire.4bpp.lz"); +const u32 gDecorIconPalette_Tire[] = INCBIN_U32("graphics/decorations/tire.gbapal.lz"); -const u32 gDecorIcon_Stand[] = INCBIN_U32("graphics/decorations/decor_stand.4bpp.lz"); -const u32 gDecorIconPalette_Stand[] = INCBIN_U32("graphics/decorations/decor_stand.gbapal.lz"); +const u32 gDecorIcon_Stand[] = INCBIN_U32("graphics/decorations/stand.4bpp.lz"); +const u32 gDecorIconPalette_Stand[] = INCBIN_U32("graphics/decorations/stand.gbapal.lz"); -const u32 gDecorIcon_BreakableDoor[] = INCBIN_U32("graphics/decorations/decor_breakable_door.4bpp.lz"); -const u32 gDecorIconPalette_BreakableDoor[] = INCBIN_U32("graphics/decorations/decor_breakable_door.gbapal.lz"); +const u32 gDecorIcon_BreakableDoor[] = INCBIN_U32("graphics/decorations/breakable_door.4bpp.lz"); +const u32 gDecorIconPalette_BreakableDoor[] = INCBIN_U32("graphics/decorations/breakable_door.gbapal.lz"); -const u32 gDecorIcon_SandOrnament[] = INCBIN_U32("graphics/decorations/decor_sand_ornament.4bpp.lz"); -const u32 gDecorIconPalette_SandOrnament[] = INCBIN_U32("graphics/decorations/decor_sand_ornament.gbapal.lz"); +const u32 gDecorIcon_SandOrnament[] = INCBIN_U32("graphics/decorations/sand_ornament.4bpp.lz"); +const u32 gDecorIconPalette_SandOrnament[] = INCBIN_U32("graphics/decorations/sand_ornament.gbapal.lz"); -const u32 gDecorIcon_GlassOrnament[] = INCBIN_U32("graphics/decorations/decor_glass_ornament.4bpp.lz"); -const u32 gDecorIconPalette_GlassOrnament[] = INCBIN_U32("graphics/decorations/decor_glass_ornament.gbapal.lz"); +const u32 gDecorIcon_GlassOrnament[] = INCBIN_U32("graphics/decorations/glass_ornament.4bpp.lz"); +const u32 gDecorIconPalette_GlassOrnament[] = INCBIN_U32("graphics/decorations/glass_ornament.gbapal.lz"); -const u32 gDecorIcon_SurfMat[] = INCBIN_U32("graphics/decorations/decor_surf_mat.4bpp.lz"); -const u32 gDecorIconPalette_SurfMat[] = INCBIN_U32("graphics/decorations/decor_surf_mat.gbapal.lz"); +const u32 gDecorIcon_SurfMat[] = INCBIN_U32("graphics/decorations/surf_mat.4bpp.lz"); +const u32 gDecorIconPalette_SurfMat[] = INCBIN_U32("graphics/decorations/surf_mat.gbapal.lz"); -const u32 gDecorIcon_ThunderMat[] = INCBIN_U32("graphics/decorations/decor_thunder_mat.4bpp.lz"); -const u32 gDecorIconPalette_ThunderMat[] = INCBIN_U32("graphics/decorations/decor_thunder_mat.gbapal.lz"); +const u32 gDecorIcon_ThunderMat[] = INCBIN_U32("graphics/decorations/thunder_mat.4bpp.lz"); +const u32 gDecorIconPalette_ThunderMat[] = INCBIN_U32("graphics/decorations/thunder_mat.gbapal.lz"); -const u32 gDecorIcon_FireBlastMat[] = INCBIN_U32("graphics/decorations/decor_fire_blast_mat.4bpp.lz"); -const u32 gDecorIconPalette_FireBlastMat[] = INCBIN_U32("graphics/decorations/decor_fire_blast_mat.gbapal.lz"); +const u32 gDecorIcon_FireBlastMat[] = INCBIN_U32("graphics/decorations/fire_blast_mat.4bpp.lz"); +const u32 gDecorIconPalette_FireBlastMat[] = INCBIN_U32("graphics/decorations/fire_blast_mat.gbapal.lz"); -const u32 gDecorIcon_PowderSnowMat[] = INCBIN_U32("graphics/decorations/decor_powder_snow_mat.4bpp.lz"); -const u32 gDecorIconPalette_PowderSnowMat[] = INCBIN_U32("graphics/decorations/decor_powder_snow_mat.gbapal.lz"); +const u32 gDecorIcon_PowderSnowMat[] = INCBIN_U32("graphics/decorations/powder_snow_mat.4bpp.lz"); +const u32 gDecorIconPalette_PowderSnowMat[] = INCBIN_U32("graphics/decorations/powder_snow_mat.gbapal.lz"); -const u32 gDecorIcon_AttractMat[] = INCBIN_U32("graphics/decorations/decor_attract_mat.4bpp.lz"); -const u32 gDecorIconPalette_AttractMat[] = INCBIN_U32("graphics/decorations/decor_attract_mat.gbapal.lz"); +const u32 gDecorIcon_AttractMat[] = INCBIN_U32("graphics/decorations/attract_mat.4bpp.lz"); +const u32 gDecorIconPalette_AttractMat[] = INCBIN_U32("graphics/decorations/attract_mat.gbapal.lz"); -const u32 gDecorIcon_FissureMat[] = INCBIN_U32("graphics/decorations/decor_fissure_mat.4bpp.lz"); -const u32 gDecorIconPalette_FissureMat[] = INCBIN_U32("graphics/decorations/decor_fissure_mat.gbapal.lz"); +const u32 gDecorIcon_FissureMat[] = INCBIN_U32("graphics/decorations/fissure_mat.4bpp.lz"); +const u32 gDecorIconPalette_FissureMat[] = INCBIN_U32("graphics/decorations/fissure_mat.gbapal.lz"); -const u32 gDecorIcon_SpikesMat[] = INCBIN_U32("graphics/decorations/decor_spikes_mat.4bpp.lz"); -const u32 gDecorIconPalette_SpikesMat[] = INCBIN_U32("graphics/decorations/decor_spikes_mat.gbapal.lz"); +const u32 gDecorIcon_SpikesMat[] = INCBIN_U32("graphics/decorations/spikes_mat.4bpp.lz"); +const u32 gDecorIconPalette_SpikesMat[] = INCBIN_U32("graphics/decorations/spikes_mat.gbapal.lz"); -const u32 gDecorIcon_SnorlaxDoll[] = INCBIN_U32("graphics/decorations/decor_snorlax_doll.4bpp.lz"); -const u32 gDecorIconPalette_SnorlaxDoll[] = INCBIN_U32("graphics/decorations/decor_snorlax_doll.gbapal.lz"); +const u32 gDecorIcon_SnorlaxDoll[] = INCBIN_U32("graphics/decorations/snorlax_doll.4bpp.lz"); +const u32 gDecorIconPalette_SnorlaxDoll[] = INCBIN_U32("graphics/decorations/snorlax_doll.gbapal.lz"); -const u32 gDecorIcon_RhydonDoll[] = INCBIN_U32("graphics/decorations/decor_rhydon_doll.4bpp.lz"); -const u32 gDecorIconPalette_RhydonDoll[] = INCBIN_U32("graphics/decorations/decor_rhydon_doll.gbapal.lz"); +const u32 gDecorIcon_RhydonDoll[] = INCBIN_U32("graphics/decorations/rhydon_doll.4bpp.lz"); +const u32 gDecorIconPalette_RhydonDoll[] = INCBIN_U32("graphics/decorations/rhydon_doll.gbapal.lz"); -const u32 gDecorIcon_LaprasDoll[] = INCBIN_U32("graphics/decorations/decor_lapras_doll.4bpp.lz"); -const u32 gDecorIconPalette_LaprasDoll[] = INCBIN_U32("graphics/decorations/decor_lapras_doll.gbapal.lz"); +const u32 gDecorIcon_LaprasDoll[] = INCBIN_U32("graphics/decorations/lapras_doll.4bpp.lz"); +const u32 gDecorIconPalette_LaprasDoll[] = INCBIN_U32("graphics/decorations/lapras_doll.gbapal.lz"); -const u32 gDecorIcon_VenusaurDoll[] = INCBIN_U32("graphics/decorations/decor_venusaur_doll.4bpp.lz"); -const u32 gDecorIconPalette_VenusaurDoll[] = INCBIN_U32("graphics/decorations/decor_venusaur_doll.gbapal.lz"); +const u32 gDecorIcon_VenusaurDoll[] = INCBIN_U32("graphics/decorations/venusaur_doll.4bpp.lz"); +const u32 gDecorIconPalette_VenusaurDoll[] = INCBIN_U32("graphics/decorations/venusaur_doll.gbapal.lz"); -const u32 gDecorIcon_CharizardDoll[] = INCBIN_U32("graphics/decorations/decor_charizard_doll.4bpp.lz"); -const u32 gDecorIconPalette_CharizardDoll[] = INCBIN_U32("graphics/decorations/decor_charizard_doll.gbapal.lz"); +const u32 gDecorIcon_CharizardDoll[] = INCBIN_U32("graphics/decorations/charizard_doll.4bpp.lz"); +const u32 gDecorIconPalette_CharizardDoll[] = INCBIN_U32("graphics/decorations/charizard_doll.gbapal.lz"); -const u32 gDecorIcon_BlastoiseDoll[] = INCBIN_U32("graphics/decorations/decor_blastoise_doll.4bpp.lz"); -const u32 gDecorIconPalette_BlastoiseDoll[] = INCBIN_U32("graphics/decorations/decor_blastoise_doll.gbapal.lz"); +const u32 gDecorIcon_BlastoiseDoll[] = INCBIN_U32("graphics/decorations/blastoise_doll.4bpp.lz"); +const u32 gDecorIconPalette_BlastoiseDoll[] = INCBIN_U32("graphics/decorations/blastoise_doll.gbapal.lz"); -const u32 gDecorIcon_WailmerDoll[] = INCBIN_U32("graphics/decorations/decor_wailmer_doll.4bpp.lz"); -const u32 gDecorIconPalette_WailmerDoll[] = INCBIN_U32("graphics/decorations/decor_wailmer_doll.gbapal.lz"); +const u32 gDecorIcon_WailmerDoll[] = INCBIN_U32("graphics/decorations/wailmer_doll.4bpp.lz"); +const u32 gDecorIconPalette_WailmerDoll[] = INCBIN_U32("graphics/decorations/wailmer_doll.gbapal.lz"); -const u32 gDecorIcon_RegiceDoll[] = INCBIN_U32("graphics/decorations/decor_regice_doll.4bpp.lz"); -const u32 gDecorIconPalette_RegiceDoll[] = INCBIN_U32("graphics/decorations/decor_regice_doll.gbapal.lz"); +const u32 gDecorIcon_RegiceDoll[] = INCBIN_U32("graphics/decorations/regice_doll.4bpp.lz"); +const u32 gDecorIconPalette_RegiceDoll[] = INCBIN_U32("graphics/decorations/regice_doll.gbapal.lz"); -const u32 gDecorIcon_RegirockDoll[] = INCBIN_U32("graphics/decorations/decor_regirock_doll.4bpp.lz"); -const u32 gDecorIconPalette_RegirockDoll[] = INCBIN_U32("graphics/decorations/decor_regirock_doll.gbapal.lz"); +const u32 gDecorIcon_RegirockDoll[] = INCBIN_U32("graphics/decorations/regirock_doll.4bpp.lz"); +const u32 gDecorIconPalette_RegirockDoll[] = INCBIN_U32("graphics/decorations/regirock_doll.gbapal.lz"); -const u32 gDecorIcon_RegisteelDoll[] = INCBIN_U32("graphics/decorations/decor_registeel_doll.4bpp.lz"); -const u32 gDecorIconPalette_RegisteelDoll[] = INCBIN_U32("graphics/decorations/decor_registeel_doll.gbapal.lz"); +const u32 gDecorIcon_RegisteelDoll[] = INCBIN_U32("graphics/decorations/registeel_doll.4bpp.lz"); +const u32 gDecorIconPalette_RegisteelDoll[] = INCBIN_U32("graphics/decorations/registeel_doll.gbapal.lz"); diff --git a/src/data/pokemon_graphics/front_pic_anims.h b/src/data/pokemon_graphics/front_pic_anims.h index 4c97af1a7b..671fc5fad7 100644 --- a/src/data/pokemon_graphics/front_pic_anims.h +++ b/src/data/pokemon_graphics/front_pic_anims.h @@ -7391,3 +7391,6 @@ const union AnimCmd *const *const gMonFrontAnimsPtrTable[] = ANIM_CMD(UNOWN_EMARK), ANIM_CMD(UNOWN_QMARK), }; + +#undef ANIM_CMD +#undef ANIM_CMD_FULL diff --git a/src/data/pokemon_graphics/unknown_anims.h b/src/data/pokemon_graphics/unknown_anims.h index bb4862d098..ea7ab34a24 100644 --- a/src/data/pokemon_graphics/unknown_anims.h +++ b/src/data/pokemon_graphics/unknown_anims.h @@ -1,5 +1,5 @@ // unused and unkown -static const union AnimCmd gUnknown_082FF71C[] = +static const union AnimCmd sUnknownAnim_BLAZIKEN_1[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_FRAME(1, 25), @@ -9,7 +9,7 @@ static const union AnimCmd gUnknown_082FF71C[] = ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FF734[] = +static const union AnimCmd sUnknownAnim_BLAZIKEN_2[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_FRAME(2, 8), @@ -17,20 +17,20 @@ static const union AnimCmd gUnknown_082FF734[] = ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FF744[] = +static const union AnimCmd sUnknownAnim_BLAZIKEN_3[] = { ANIMCMD_FRAME(0, 10), ANIMCMD_FRAME(2, 10), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FF750[] = +static const union AnimCmd sUnknownAnim_BLAZIKEN_4[] = { ANIMCMD_FRAME(0, 10), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FF758[] = +static const union AnimCmd sUnknownAnim_MARSHTOMP_1[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_FRAME(1, 5), @@ -41,7 +41,7 @@ static const union AnimCmd gUnknown_082FF758[] = ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FF774[] = +static const union AnimCmd sUnknownAnim_MARSHTOMP_2[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_FRAME(2, 12), @@ -52,14 +52,14 @@ static const union AnimCmd gUnknown_082FF774[] = ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FF790[] = +static const union AnimCmd sUnknownAnim_MARSHTOMP_3[] = { ANIMCMD_FRAME(0, 14), ANIMCMD_FRAME(2, 12), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FF79C[] = +static const union AnimCmd sUnknownAnim_POOCHYENA_1[] = { ANIMCMD_FRAME(0, 10), ANIMCMD_FRAME(1, 10), @@ -68,7 +68,7 @@ static const union AnimCmd gUnknown_082FF79C[] = ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FF7B0[] = +static const union AnimCmd sUnknownAnim_POOCHYENA_2[] = { ANIMCMD_FRAME(0, 10), ANIMCMD_FRAME(2, 10), @@ -77,193 +77,193 @@ static const union AnimCmd gUnknown_082FF7B0[] = ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FF7C4[] = +static const union AnimCmd sUnknownAnim_MIGHTYENA_1[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FF7CC[] = +static const union AnimCmd sUnknownAnim_ZIGZAGOON_1[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FF7D4[] = +static const union AnimCmd sUnknownAnim_LINOONE_1[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FF7DC[] = +static const union AnimCmd sUnknownAnim_WURMPLE_1[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FF7E4[] = +static const union AnimCmd sUnknownAnim_WURMPLE_2[] = { ANIMCMD_FRAME(1, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FF7EC[] = +static const union AnimCmd sUnknownAnim_SILCOON_1[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FF7F4[] = +static const union AnimCmd sUnknownAnim_SILCOON_2[] = { ANIMCMD_FRAME(1, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FF7FC[] = +static const union AnimCmd sUnknownAnim_BEAUTIFLY_1[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FF804[] = +static const union AnimCmd sUnknownAnim_BEAUTIFLY_2[] = { ANIMCMD_FRAME(1, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FF80C[] = +static const union AnimCmd sUnknownAnim_CASCOON_1[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FF814[] = +static const union AnimCmd sUnknownAnim_CASCOON_2[] = { ANIMCMD_FRAME(1, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FF81C[] = +static const union AnimCmd sUnknownAnim_DUSTOX_1[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FF824[] = +static const union AnimCmd sUnknownAnim_DUSTOX_2[] = { ANIMCMD_FRAME(1, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FF82C[] = +static const union AnimCmd sUnknownAnim_LOMBRE_1[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FF834[] = +static const union AnimCmd sUnknownAnim_LUDICOLO_1[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FF83C[] = +static const union AnimCmd sUnknownAnim_LUDICOLO_2[] = { ANIMCMD_FRAME(1, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FF844[] = +static const union AnimCmd sUnknownAnim_SEEDOT_1[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FF84C[] = +static const union AnimCmd sUnknownAnim_NUZLEAF_1[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FF854[] = +static const union AnimCmd sUnknownAnim_SHIFTRY_1[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FF85C[] = +static const union AnimCmd sUnknownAnim_SHIFTRY_2[] = { ANIMCMD_FRAME(1, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FF864[] = +static const union AnimCmd sUnknownAnim_TAILLOW_1[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FF86C[] = +static const union AnimCmd sUnknownAnim_SWELLOW_1[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FF874[] = +static const union AnimCmd sUnknownAnim_SHROOMISH_1[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FF87C[] = +static const union AnimCmd sUnknownAnim_BRELOOM_1[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FF884[] = +static const union AnimCmd sUnknownAnim_WINGULL_1[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FF88C[] = +static const union AnimCmd sUnknownAnim_PELIPPER_1[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FF894[] = +static const union AnimCmd sUnknownAnim_PELIPPER_2[] = { ANIMCMD_FRAME(1, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FF89C[] = +static const union AnimCmd sUnknownAnim_SURSKIT_1[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FF8A4[] = +static const union AnimCmd sUnknownAnim_SURSKIT_2[] = { ANIMCMD_FRAME(1, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FF8AC[] = +static const union AnimCmd sUnknownAnim_MASQUERAIN_1[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FF8B4[] = +static const union AnimCmd sUnknownAnim_MASQUERAIN_2[] = { ANIMCMD_FRAME(1, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FF8BC[] = +static const union AnimCmd sUnknownAnim_WAILMER_1[] = { ANIMCMD_FRAME(0, 15), ANIMCMD_FRAME(8, 15), @@ -283,7 +283,7 @@ static const union AnimCmd gUnknown_082FF8BC[] = ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FF8FC[] = +static const union AnimCmd sUnknownAnim_WAILMER_2[] = { ANIMCMD_FRAME(0, 10), ANIMCMD_FRAME(8, 15), @@ -295,7 +295,7 @@ static const union AnimCmd gUnknown_082FF8FC[] = ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FF91C[] = +static const union AnimCmd sUnknownAnim_WAILMER_3[] = { ANIMCMD_FRAME(0, 10), ANIMCMD_FRAME(9, 10), @@ -304,26 +304,26 @@ static const union AnimCmd gUnknown_082FF91C[] = ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FF930[] = +static const union AnimCmd sUnknownAnim_WAILMER_4[] = { ANIMCMD_FRAME(0, 15), ANIMCMD_FRAME(11, 15), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FF93C[] = +static const union AnimCmd sUnknownAnim_SKITTY_1[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FF944[] = +static const union AnimCmd sUnknownAnim_DELCATTY_1[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FF94C[] = +static const union AnimCmd sUnknownAnim_KECLEON_1[] = { ANIMCMD_FRAME(0, 10), ANIMCMD_FRAME(1, 7), @@ -350,7 +350,7 @@ static const union AnimCmd gUnknown_082FF94C[] = ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FF9A8[] = +static const union AnimCmd sUnknownAnim_KECLEON_2[] = { ANIMCMD_FRAME(0, 12), ANIMCMD_FRAME(7, 12), @@ -376,7 +376,7 @@ static const union AnimCmd gUnknown_082FF9A8[] = ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FFA00[] = +static const union AnimCmd sUnknownAnim_KECLEON_3[] = { ANIMCMD_FRAME(0, 12), ANIMCMD_FRAME(7, 12), @@ -402,182 +402,182 @@ static const union AnimCmd gUnknown_082FFA00[] = ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FFA58[] = +static const union AnimCmd sUnknownAnim_KECLEON_4[] = { ANIMCMD_FRAME(0,18), ANIMCMD_FRAME(10, 18), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FFA64[] = +static const union AnimCmd sUnknownAnim_BALTOY_1[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FFA6C[] = +static const union AnimCmd sUnknownAnim_CLAYDOL_1[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FFA74[] = +static const union AnimCmd sUnknownAnim_NOSEPASS_1[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FFA7C[] = +static const union AnimCmd sUnknownAnim_SABLEYE_1[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FFA84[] = +static const union AnimCmd sUnknownAnim_SABLEYE_2[] = { ANIMCMD_FRAME(1, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FFA8C[] = +static const union AnimCmd sUnknownAnim_LUVDISC_1[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FFA94[] = +static const union AnimCmd sUnknownAnim_LUVDISC_2[] = { ANIMCMD_FRAME(1, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FFA9C[] = +static const union AnimCmd sUnknownAnim_FEEBAS_1[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FFAA4[] = +static const union AnimCmd sUnknownAnim_FEEBAS_2[] = { ANIMCMD_FRAME(1, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FFAAC[] = +static const union AnimCmd sUnknownAnim_MILOTIC_1[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FFAB4[] = +static const union AnimCmd sUnknownAnim_MILOTIC_2[] = { ANIMCMD_FRAME(1, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FFABC[] = +static const union AnimCmd sUnknownAnim_CARVANHA_1[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FFAC4[] = +static const union AnimCmd sUnknownAnim_CARVANHA_2[] = { ANIMCMD_FRAME(1, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FFACC[] = +static const union AnimCmd sUnknownAnim_SHARPEDO_1[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FFAD4[] = +static const union AnimCmd sUnknownAnim_SHARPEDO_2[] = { ANIMCMD_FRAME(1, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FFADC[] = +static const union AnimCmd sUnknownAnim_TRAPINCH_1[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FFAE4[] = +static const union AnimCmd sUnknownAnim_VIBRAVA_1[] = { ANIMCMD_FRAME(0, 63), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FFAEC[] = +static const union AnimCmd sUnknownAnim_FLYGON_1[] = { ANIMCMD_FRAME(0, 63), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FFAF4[] = +static const union AnimCmd sUnknownAnim_MAKUHITA_1[] = { ANIMCMD_FRAME(0, 63), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FFAFC[] = +static const union AnimCmd sUnknownAnim_HARIYAMA_1[] = { ANIMCMD_FRAME(0, 63), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FFB04[] = +static const union AnimCmd sUnknownAnim_ELECTRIKE_1[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FFB0C[] = +static const union AnimCmd sUnknownAnim_ELECTRIKE_2[] = { ANIMCMD_FRAME(1, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FFB14[] = +static const union AnimCmd sUnknownAnim_MANECTRIC_1[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FFB1C[] = +static const union AnimCmd sUnknownAnim_NUMEL_1[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FFB24[] = +static const union AnimCmd sUnknownAnim_NUMEL_2[] = { ANIMCMD_FRAME(1, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FFB2C[] = +static const union AnimCmd sUnknownAnim_CAMERUPT_1[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FFB34[] = +static const union AnimCmd sUnknownAnim_SPHEAL_1[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FFB3C[] = +static const union AnimCmd sUnknownAnim_SEALEO_1[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FFB44[] = +static const union AnimCmd sUnknownAnim_WALREIN_1[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_FRAME(1, 18), @@ -588,7 +588,7 @@ static const union AnimCmd gUnknown_082FFB44[] = ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FFB60[] = +static const union AnimCmd sUnknownAnim_WALREIN_2[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_FRAME(2, 18), @@ -599,7 +599,7 @@ static const union AnimCmd gUnknown_082FFB60[] = ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FFB7C[] = +static const union AnimCmd sUnknownAnim_AZURILL_1[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_FRAME(2, 5), @@ -619,7 +619,7 @@ static const union AnimCmd gUnknown_082FFB7C[] = ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FFBBC[] = +static const union AnimCmd sUnknownAnim_AZURILL_2[] = { ANIMCMD_FRAME(0, 6), ANIMCMD_FRAME(1, 6), @@ -632,7 +632,7 @@ static const union AnimCmd gUnknown_082FFBBC[] = ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FFBE0[] = +static const union AnimCmd sUnknownAnim_AZURILL_3[] = { ANIMCMD_FRAME(0, 12), ANIMCMD_FRAME(5, 12), @@ -641,61 +641,61 @@ static const union AnimCmd gUnknown_082FFBE0[] = ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FFBF4[] = +static const union AnimCmd sUnknownAnim_AZURILL_4[] = { ANIMCMD_FRAME(7, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FFBFC[] = +static const union AnimCmd sUnknownAnim_SPOINK_1[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FFC04[] = +static const union AnimCmd sUnknownAnim_SPOINK_2[] = { ANIMCMD_FRAME(1, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FFC0C[] = +static const union AnimCmd sUnknownAnim_GRUMPIG_1[] = { ANIMCMD_FRAME(0, 63), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FFC14[] = +static const union AnimCmd sUnknownAnim_PLUSLE_1[] = { ANIMCMD_FRAME(0, 63), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FFC1C[] = +static const union AnimCmd sUnknownAnim_MINUN_1[] = { ANIMCMD_FRAME(0, 63), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FFC24[] = +static const union AnimCmd sUnknownAnim_MAWILE_1[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FFC2C[] = +static const union AnimCmd sUnknownAnim_MEDITITE_1[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FFC34[] = +static const union AnimCmd sUnknownAnim_MEDICHAM_1[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FFC3C[] = +static const union AnimCmd sUnknownAnim_SWABLU_1[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_FRAME(1, 10), @@ -706,7 +706,7 @@ static const union AnimCmd gUnknown_082FFC3C[] = ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FFC58[] = +static const union AnimCmd sUnknownAnim_SWABLU_2[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_FRAME(2, 8), @@ -717,217 +717,217 @@ static const union AnimCmd gUnknown_082FFC58[] = ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FFC74[] = +static const union AnimCmd sUnknownAnim_ALTARIA_1[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FFC7C[] = +static const union AnimCmd sUnknownAnim_WYNAUT_1[] = { ANIMCMD_FRAME(0, 10), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FFC84[] = +static const union AnimCmd sUnknownAnim_WYNAUT_2[] = { ANIMCMD_FRAME(1, 9), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FFC8C[] = +static const union AnimCmd sUnknownAnim_DUSKULL_1[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FFC94[] = +static const union AnimCmd sUnknownAnim_DUSKULL_2[] = { ANIMCMD_FRAME(1, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FFC9C[] = +static const union AnimCmd sUnknownAnim_DUSCLOPS_1[] = { ANIMCMD_FRAME(0, 10), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FFCA4[] = +static const union AnimCmd sUnknownAnim_DUSCLOPS_2[] = { ANIMCMD_FRAME(1, 10), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FFCAC[] = +static const union AnimCmd sUnknownAnim_SLAKOTH_1[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FFCB4[] = +static const union AnimCmd sUnknownAnim_VIGOROTH_1[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FFCBC[] = +static const union AnimCmd sUnknownAnim_SLAKING_1[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FFCC4[] = +static const union AnimCmd sUnknownAnim_GULPIN_1[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FFCCC[] = +static const union AnimCmd sUnknownAnim_SWALOT_1[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FFCD4[] = +static const union AnimCmd sUnknownAnim_TROPIUS_1[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FFCDC[] = +static const union AnimCmd sUnknownAnim_CLAMPERL_1[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FFCE4[] = +static const union AnimCmd sUnknownAnim_ABSOL_1[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FFCEC[] = +static const union AnimCmd sUnknownAnim_SHUPPET_1[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FFCF4[] = +static const union AnimCmd sUnknownAnim_SHUPPET_2[] = { ANIMCMD_FRAME(1, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FFCFC[] = +static const union AnimCmd sUnknownAnim_BANETTE_1[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FFD04[] = +static const union AnimCmd sUnknownAnim_ARON_1[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FFD0C[] = +static const union AnimCmd sUnknownAnim_LAIRON_1[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FFD14[] = +static const union AnimCmd sUnknownAnim_AGGRON_1[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FFD1C[] = +static const union AnimCmd sUnknownAnim_CASTFORM_1[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FFD24[] = +static const union AnimCmd sUnknownAnim_CASTFORM_2[] = { ANIMCMD_FRAME(1, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FFD2C[] = +static const union AnimCmd sUnknownAnim_CASTFORM_3[] = { ANIMCMD_FRAME(2, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FFD34[] = +static const union AnimCmd sUnknownAnim_CASTFORM_4[] = { ANIMCMD_FRAME(3, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FFD3C[] = +static const union AnimCmd sUnknownAnim_VOLBEAT_1[] = { ANIMCMD_FRAME(0, 63), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FFD44[] = +static const union AnimCmd sUnknownAnim_ILLUMISE_1[] = { ANIMCMD_FRAME(0, 63), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FFD4C[] = +static const union AnimCmd sUnknownAnim_BAGON_1[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FFD54[] = +static const union AnimCmd sUnknownAnim_BAGON_2[] = { ANIMCMD_FRAME(1, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FFD5C[] = +static const union AnimCmd sUnknownAnim_SALAMENCE_1[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FFD64[] = +static const union AnimCmd sUnknownAnim_SALAMENCE_2[] = { ANIMCMD_FRAME(1, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FFD6C[] = +static const union AnimCmd sUnknownAnim_REGIROCK_1[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FFD74[] = +static const union AnimCmd sUnknownAnim_REGICE_1[] = { ANIMCMD_FRAME(1, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FFD7C[] = +static const union AnimCmd sUnknownAnim_REGISTEEL_1[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FFD84[] = +static const union AnimCmd sUnknownAnim_REGISTEEL_2[] = { ANIMCMD_FRAME(1, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FFD8C[] = +static const union AnimCmd sUnknownAnim_RAYQUAZA_1[] = { ANIMCMD_FRAME(0, 20), ANIMCMD_FRAME(1, 30), @@ -936,7 +936,7 @@ static const union AnimCmd gUnknown_082FFD8C[] = ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FFDA0[] = +static const union AnimCmd sUnknownAnim_RAYQUAZA_2[] = { ANIMCMD_FRAME(0, 20), ANIMCMD_FRAME(2, 20), @@ -945,1372 +945,1378 @@ static const union AnimCmd gUnknown_082FFDA0[] = ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FFDB4[] = +static const union AnimCmd sUnknownAnim_Unused1[] = { ANIMCMD_FRAME(0, 10), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FFDBC[] = +static const union AnimCmd sUnknownAnim_Unused2[] = { ANIMCMD_FRAME(0, 10), ANIMCMD_END, }; -static const union AnimCmd gUnknown_082FFDC4[] = +static const union AnimCmd sUnknownAnim_JIRACHI_1[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -static const union AnimCmd *const gUnknown_082FFDCC[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFDD0[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFDD4[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFDD8[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFDDC[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFDE0[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFDE4[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFDE8[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFDEC[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFDF0[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFDF4[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFDF8[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFDFC[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFE00[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFE04[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFE08[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFE0C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFE10[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFE14[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFE18[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFE1C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFE20[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFE24[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFE28[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFE2C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFE30[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFE34[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFE38[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFE3C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFE40[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFE44[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFE48[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFE4C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFE50[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFE54[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFE58[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFE5C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFE60[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFE64[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFE68[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFE6C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFE70[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFE74[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFE78[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFE7C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFE80[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFE84[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFE88[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFE8C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFE90[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFE94[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFE98[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFE9C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFEA0[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFEA4[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFEA8[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFEAC[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFEB0[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFEB4[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFEB8[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFEBC[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFEC0[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFEC4[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFEC8[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFECC[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFED0[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFED4[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFED8[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFEDC[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFEE0[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFEE4[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFEE8[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFEEC[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFEF0[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFEF4[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFEF8[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFEFC[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFF00[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFF04[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFF08[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFF0C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFF10[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFF14[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFF18[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFF1C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFF20[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFF24[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFF28[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFF2C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFF30[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFF34[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFF38[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFF3C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFF40[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFF44[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFF48[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFF4C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFF50[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFF54[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFF58[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFF5C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFF60[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFF64[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFF68[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFF6C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFF70[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFF74[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFF78[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFF7C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFF80[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFF84[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFF88[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFF8C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFF90[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFF94[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFF98[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFF9C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFFA0[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFFA4[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFFA8[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFFAC[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFFB0[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFFB4[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFFB8[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFFBC[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFFC0[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFFC4[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFFC8[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFFCC[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFFD0[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFFD4[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFFD8[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFFDC[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFFE0[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFFE4[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFFE8[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFFEC[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFFF0[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFFF4[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFFF8[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFFFC[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300000[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300004[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300008[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_0830000C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300010[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300014[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300018[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_0830001C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300020[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300024[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300028[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_0830002C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300030[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300034[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300038[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_0830003C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300040[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300044[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300048[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_0830004C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300050[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300054[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300058[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_0830005C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300060[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300064[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300068[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_0830006C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300070[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300074[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300078[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_0830007C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300080[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300084[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300088[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_0830008C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300090[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300094[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300098[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_0830009C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083000A0[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083000A4[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083000A8[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083000AC[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083000B0[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083000B4[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083000B8[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083000BC[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083000C0[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083000C4[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083000C8[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083000CC[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083000D0[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083000D4[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083000D8[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083000DC[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083000E0[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083000E4[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083000E8[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083000EC[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083000F0[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083000F4[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083000F8[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083000FC[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300100[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300104[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300108[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_0830010C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300110[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300114[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300118[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_0830011C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300120[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300124[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300128[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_0830012C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300130[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300134[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300138[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_0830013C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300140[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300144[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300148[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_0830014C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300150[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300154[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300158[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_0830015C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300160[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300164[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300168[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_0830016C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300170[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300174[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300178[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_0830017C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300180[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300184[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300188[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_0830018C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300190[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300194[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300198[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_0830019C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083001A0[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083001A4[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083001A8[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083001AC[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083001B0[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083001B4[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083001B8[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083001BC[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083001C0[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083001C4[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083001C8[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083001CC[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083001D0[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_NONE[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_BULBASAUR[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_IVYSAUR[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_VENUSAUR[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_CHARMANDER[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_CHARMELEON[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_CHARIZARD[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_SQUIRTLE[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_WARTORTLE[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_BLASTOISE[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_CATERPIE[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_METAPOD[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_BUTTERFREE[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_WEEDLE[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_KAKUNA[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_BEEDRILL[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_PIDGEY[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_PIDGEOTTO[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_PIDGEOT[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_RATTATA[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_RATICATE[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_SPEAROW[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_FEAROW[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_EKANS[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_ARBOK[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_PIKACHU[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_RAICHU[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_SANDSHREW[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_SANDSLASH[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_NIDORAN_F[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_NIDORINA[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_NIDOQUEEN[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_NIDORAN_M[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_NIDORINO[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_NIDOKING[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_CLEFAIRY[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_CLEFABLE[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_VULPIX[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_NINETALES[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_JIGGLYPUFF[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_WIGGLYTUFF[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_ZUBAT[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_GOLBAT[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_ODDISH[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_GLOOM[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_VILEPLUME[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_PARAS[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_PARASECT[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_VENONAT[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_VENOMOTH[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_DIGLETT[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_DUGTRIO[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_MEOWTH[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_PERSIAN[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_PSYDUCK[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_GOLDUCK[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_MANKEY[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_PRIMEAPE[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_GROWLITHE[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_ARCANINE[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_POLIWAG[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_POLIWHIRL[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_POLIWRATH[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_ABRA[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_KADABRA[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_ALAKAZAM[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_MACHOP[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_MACHOKE[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_MACHAMP[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_BELLSPROUT[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_WEEPINBELL[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_VICTREEBEL[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_TENTACOOL[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_TENTACRUEL[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_GEODUDE[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_GRAVELER[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_GOLEM[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_PONYTA[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_RAPIDASH[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_SLOWPOKE[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_SLOWBRO[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_MAGNEMITE[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_MAGNETON[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_FARFETCHD[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_DODUO[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_DODRIO[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_SEEL[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_DEWGONG[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_GRIMER[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_MUK[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_SHELLDER[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_CLOYSTER[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_GASTLY[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_HAUNTER[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_GENGAR[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_ONIX[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_DROWZEE[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_HYPNO[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_KRABBY[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_KINGLER[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_VOLTORB[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_ELECTRODE[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_EXEGGCUTE[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_EXEGGUTOR[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_CUBONE[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_MAROWAK[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_HITMONLEE[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_HITMONCHAN[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_LICKITUNG[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_KOFFING[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_WEEZING[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_RHYHORN[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_RHYDON[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_CHANSEY[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_TANGELA[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_KANGASKHAN[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_HORSEA[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_SEADRA[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_GOLDEEN[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_SEAKING[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_STARYU[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_STARMIE[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_MR_MIME[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_SCYTHER[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_JYNX[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_ELECTABUZZ[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_MAGMAR[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_PINSIR[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_TAUROS[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_MAGIKARP[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_GYARADOS[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_LAPRAS[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_DITTO[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_EEVEE[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_VAPOREON[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_JOLTEON[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_FLAREON[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_PORYGON[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_OMANYTE[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_OMASTAR[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_KABUTO[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_KABUTOPS[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_AERODACTYL[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_SNORLAX[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_ARTICUNO[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_ZAPDOS[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_MOLTRES[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_DRATINI[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_DRAGONAIR[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_DRAGONITE[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_MEWTWO[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_MEW[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_CHIKORITA[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_BAYLEEF[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_MEGANIUM[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_CYNDAQUIL[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_QUILAVA[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_TYPHLOSION[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_TOTODILE[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_CROCONAW[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_FERALIGATR[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_SENTRET[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_FURRET[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_HOOTHOOT[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_NOCTOWL[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_LEDYBA[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_LEDIAN[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_SPINARAK[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_ARIADOS[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_CROBAT[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_CHINCHOU[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_LANTURN[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_PICHU[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_CLEFFA[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_IGGLYBUFF[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_TOGEPI[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_TOGETIC[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_NATU[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_XATU[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_MAREEP[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_FLAAFFY[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_AMPHAROS[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_BELLOSSOM[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_MARILL[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_AZUMARILL[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_SUDOWOODO[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_POLITOED[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_HOPPIP[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_SKIPLOOM[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_JUMPLUFF[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_AIPOM[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_SUNKERN[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_SUNFLORA[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_YANMA[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_WOOPER[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_QUAGSIRE[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_ESPEON[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_UMBREON[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_MURKROW[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_SLOWKING[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_MISDREAVUS[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_UNOWN[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_WOBBUFFET[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_GIRAFARIG[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_PINECO[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_FORRETRESS[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_DUNSPARCE[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_GLIGAR[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_STEELIX[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_SNUBBULL[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_GRANBULL[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_QWILFISH[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_SCIZOR[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_SHUCKLE[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_HERACROSS[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_SNEASEL[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_TEDDIURSA[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_URSARING[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_SLUGMA[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_MAGCARGO[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_SWINUB[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_PILOSWINE[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_CORSOLA[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_REMORAID[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_OCTILLERY[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_DELIBIRD[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_MANTINE[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_SKARMORY[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_HOUNDOUR[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_HOUNDOOM[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_KINGDRA[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_PHANPY[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_DONPHAN[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_PORYGON2[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_STANTLER[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_SMEARGLE[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_TYROGUE[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_HITMONTOP[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_SMOOCHUM[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_ELEKID[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_MAGBY[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_MILTANK[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_BLISSEY[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_RAIKOU[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_ENTEI[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_SUICUNE[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_LARVITAR[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_PUPITAR[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_TYRANITAR[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_LUGIA[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_HO_OH[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_CELEBI[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_OLD_UNOWN[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_TREECKO[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_GROVYLE[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_SCEPTILE[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_TORCHIC[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_COMBUSKEN[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083001D4[] = +static const union AnimCmd *const sUnknownAnims_BLAZIKEN[] = { sAnim_GeneralFrame0, - gUnknown_082FF71C, - gUnknown_082FF734, - gUnknown_082FF744, - gUnknown_082FF750, + sUnknownAnim_BLAZIKEN_1, + sUnknownAnim_BLAZIKEN_2, + sUnknownAnim_BLAZIKEN_3, + sUnknownAnim_BLAZIKEN_4, }; -static const union AnimCmd *const gUnknown_083001E8[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_MUDKIP[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083001EC[] = +static const union AnimCmd *const sUnknownAnims_MARSHTOMP[] = { sAnim_GeneralFrame0, - gUnknown_082FF758, - gUnknown_082FF774, - gUnknown_082FF790, + sUnknownAnim_MARSHTOMP_1, + sUnknownAnim_MARSHTOMP_2, + sUnknownAnim_MARSHTOMP_3, }; -static const union AnimCmd *const gUnknown_083001FC[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_SWAMPERT[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300200[] = +static const union AnimCmd *const sUnknownAnims_POOCHYENA[] = { sAnim_GeneralFrame0, - gUnknown_082FF79C, - gUnknown_082FF7B0, + sUnknownAnim_POOCHYENA_1, + sUnknownAnim_POOCHYENA_2, }; -static const union AnimCmd *const gUnknown_0830020C[] = +static const union AnimCmd *const sUnknownAnims_MIGHTYENA[] = { sAnim_GeneralFrame0, - gUnknown_082FF7C4, + sUnknownAnim_MIGHTYENA_1, }; -static const union AnimCmd *const gUnknown_08300214[] = +static const union AnimCmd *const sUnknownAnims_ZIGZAGOON[] = { sAnim_GeneralFrame0, - gUnknown_082FF7CC, + sUnknownAnim_ZIGZAGOON_1, }; -static const union AnimCmd *const gUnknown_0830021C[] = +static const union AnimCmd *const sUnknownAnims_LINOONE[] = { sAnim_GeneralFrame0, - gUnknown_082FF7D4, + sUnknownAnim_LINOONE_1, }; -static const union AnimCmd *const gUnknown_08300224[] = +static const union AnimCmd *const sUnknownAnims_WURMPLE[] = { sAnim_GeneralFrame0, - gUnknown_082FF7DC, - gUnknown_082FF7E4, + sUnknownAnim_WURMPLE_1, + sUnknownAnim_WURMPLE_2, }; -static const union AnimCmd *const gUnknown_08300230[] = +static const union AnimCmd *const sUnknownAnims_SILCOON[] = { sAnim_GeneralFrame0, - gUnknown_082FF7EC, - gUnknown_082FF7F4, + sUnknownAnim_SILCOON_1, + sUnknownAnim_SILCOON_2, }; -static const union AnimCmd *const gUnknown_0830023C[] = +static const union AnimCmd *const sUnknownAnims_BEAUTIFLY[] = { sAnim_GeneralFrame0, - gUnknown_082FF7FC, - gUnknown_082FF804, + sUnknownAnim_BEAUTIFLY_1, + sUnknownAnim_BEAUTIFLY_2, }; -static const union AnimCmd *const gUnknown_08300248[] = +static const union AnimCmd *const sUnknownAnims_CASCOON[] = { sAnim_GeneralFrame0, - gUnknown_082FF80C, - gUnknown_082FF814, + sUnknownAnim_CASCOON_1, + sUnknownAnim_CASCOON_2, }; -static const union AnimCmd *const gUnknown_08300254[] = +static const union AnimCmd *const sUnknownAnims_DUSTOX[] = { sAnim_GeneralFrame0, - gUnknown_082FF81C, - gUnknown_082FF824, + sUnknownAnim_DUSTOX_1, + sUnknownAnim_DUSTOX_2, }; -static const union AnimCmd *const gUnknown_08300260[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_LOTAD[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300264[] = +static const union AnimCmd *const sUnknownAnims_LOMBRE[] = { sAnim_GeneralFrame0, - gUnknown_082FF82C, + sUnknownAnim_LOMBRE_1, }; -static const union AnimCmd *const gUnknown_0830026C[] = +static const union AnimCmd *const sUnknownAnims_LUDICOLO[] = { sAnim_GeneralFrame0, - gUnknown_082FF834, - gUnknown_082FF83C, + sUnknownAnim_LUDICOLO_1, + sUnknownAnim_LUDICOLO_2, }; -static const union AnimCmd *const gUnknown_08300278[] = +static const union AnimCmd *const sUnknownAnims_SEEDOT[] = { sAnim_GeneralFrame0, - gUnknown_082FF844, + sUnknownAnim_SEEDOT_1, }; -static const union AnimCmd *const gUnknown_08300280[] = +static const union AnimCmd *const sUnknownAnims_NUZLEAF[] = { sAnim_GeneralFrame0, - gUnknown_082FF84C, + sUnknownAnim_NUZLEAF_1, }; -static const union AnimCmd *const gUnknown_08300288[] = +static const union AnimCmd *const sUnknownAnims_SHIFTRY[] = { sAnim_GeneralFrame0, - gUnknown_082FF854, - gUnknown_082FF85C, + sUnknownAnim_SHIFTRY_1, + sUnknownAnim_SHIFTRY_2, }; -static const union AnimCmd *const gUnknown_08300294[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300298[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_0830029C[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_NINCADA[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_NINJASK[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_SHEDINJA[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083002A0[] = +static const union AnimCmd *const sUnknownAnims_TAILLOW[] = { sAnim_GeneralFrame0, - gUnknown_082FF864, + sUnknownAnim_TAILLOW_1, }; -static const union AnimCmd *const gUnknown_083002A8[] = +static const union AnimCmd *const sUnknownAnims_SWELLOW[] = { sAnim_GeneralFrame0, - gUnknown_082FF86C, + sUnknownAnim_SWELLOW_1, }; -static const union AnimCmd *const gUnknown_083002B0[] = +static const union AnimCmd *const sUnknownAnims_SHROOMISH[] = { sAnim_GeneralFrame0, - gUnknown_082FF874, + sUnknownAnim_SHROOMISH_1, }; -static const union AnimCmd *const gUnknown_083002B8[] = +static const union AnimCmd *const sUnknownAnims_BRELOOM[] = { sAnim_GeneralFrame0, - gUnknown_082FF87C, + sUnknownAnim_BRELOOM_1, }; -static const union AnimCmd *const gUnknown_083002C0[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_SPINDA[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083002C4[] = +static const union AnimCmd *const sUnknownAnims_WINGULL[] = { sAnim_GeneralFrame0, - gUnknown_082FF884, + sUnknownAnim_WINGULL_1, }; -static const union AnimCmd *const gUnknown_083002CC[] = +static const union AnimCmd *const sUnknownAnims_PELIPPER[] = { sAnim_GeneralFrame0, - gUnknown_082FF88C, - gUnknown_082FF894, + sUnknownAnim_PELIPPER_1, + sUnknownAnim_PELIPPER_2, }; -static const union AnimCmd *const gUnknown_083002D8[] = +static const union AnimCmd *const sUnknownAnims_SURSKIT[] = { sAnim_GeneralFrame0, - gUnknown_082FF89C, - gUnknown_082FF8A4, + sUnknownAnim_SURSKIT_1, + sUnknownAnim_SURSKIT_2, }; -static const union AnimCmd *const gUnknown_083002E4[] = +static const union AnimCmd *const sUnknownAnims_MASQUERAIN[] = { sAnim_GeneralFrame0, - gUnknown_082FF8AC, - gUnknown_082FF8B4, + sUnknownAnim_MASQUERAIN_1, + sUnknownAnim_MASQUERAIN_2, }; -static const union AnimCmd *const gUnknown_083002F0[] = +static const union AnimCmd *const sUnknownAnims_WAILMER[] = { sAnim_GeneralFrame0, - gUnknown_082FF8BC, - gUnknown_082FF8FC, - gUnknown_082FF91C, - gUnknown_082FF930, + sUnknownAnim_WAILMER_1, + sUnknownAnim_WAILMER_2, + sUnknownAnim_WAILMER_3, + sUnknownAnim_WAILMER_4, }; -static const union AnimCmd *const gUnknown_08300304[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_WAILORD[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300308[] = +static const union AnimCmd *const sUnknownAnims_SKITTY[] = { sAnim_GeneralFrame0, - gUnknown_082FF93C, + sUnknownAnim_SKITTY_1, }; -static const union AnimCmd *const gUnknown_08300310[] = +static const union AnimCmd *const sUnknownAnims_DELCATTY[] = { sAnim_GeneralFrame0, - gUnknown_082FF944, + sUnknownAnim_DELCATTY_1, }; -static const union AnimCmd *const gUnknown_08300318[] = +static const union AnimCmd *const sUnknownAnims_KECLEON[] = { sAnim_GeneralFrame0, - gUnknown_082FF94C, - gUnknown_082FF9A8, - gUnknown_082FFA00, - gUnknown_082FFA58, + sUnknownAnim_KECLEON_1, + sUnknownAnim_KECLEON_2, + sUnknownAnim_KECLEON_3, + sUnknownAnim_KECLEON_4, }; -static const union AnimCmd *const gUnknown_0830032C[] = +static const union AnimCmd *const sUnknownAnims_BALTOY[] = { sAnim_GeneralFrame0, - gUnknown_082FFA64, + sUnknownAnim_BALTOY_1, }; -static const union AnimCmd *const gUnknown_08300334[] = +static const union AnimCmd *const sUnknownAnims_CLAYDOL[] = { sAnim_GeneralFrame0, - gUnknown_082FFA6C, + sUnknownAnim_CLAYDOL_1, }; -static const union AnimCmd *const gUnknown_0830033C[] = +static const union AnimCmd *const sUnknownAnims_NOSEPASS[] = { sAnim_GeneralFrame0, - gUnknown_082FFA74, + sUnknownAnim_NOSEPASS_1, }; -static const union AnimCmd *const gUnknown_08300344[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_TORKOAL[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300348[] = +static const union AnimCmd *const sUnknownAnims_SABLEYE[] = { sAnim_GeneralFrame0, - gUnknown_082FFA7C, - gUnknown_082FFA84, + sUnknownAnim_SABLEYE_1, + sUnknownAnim_SABLEYE_2, }; -static const union AnimCmd *const gUnknown_08300354[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300358[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_BARBOACH[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_WHISCASH[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_0830035C[] = +static const union AnimCmd *const sUnknownAnims_LUVDISC[] = { sAnim_GeneralFrame0, - gUnknown_082FFA8C, - gUnknown_082FFA94, + sUnknownAnim_LUVDISC_1, + sUnknownAnim_LUVDISC_2, }; -static const union AnimCmd *const gUnknown_08300368[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_0830036C[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_CORPHISH[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_CRAWDAUNT[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300370[] = +static const union AnimCmd *const sUnknownAnims_FEEBAS[] = { sAnim_GeneralFrame0, - gUnknown_082FFA9C, - gUnknown_082FFAA4, + sUnknownAnim_FEEBAS_1, + sUnknownAnim_FEEBAS_2, }; -static const union AnimCmd *const gUnknown_0830037C[] = +static const union AnimCmd *const sUnknownAnims_MILOTIC[] = { sAnim_GeneralFrame0, - gUnknown_082FFAAC, - gUnknown_082FFAB4, + sUnknownAnim_MILOTIC_1, + sUnknownAnim_MILOTIC_2, }; -static const union AnimCmd *const gUnknown_08300388[] = +static const union AnimCmd *const sUnknownAnims_CARVANHA[] = { sAnim_GeneralFrame0, - gUnknown_082FFABC, - gUnknown_082FFAC4, + sUnknownAnim_CARVANHA_1, + sUnknownAnim_CARVANHA_2, }; -static const union AnimCmd *const gUnknown_08300394[] = +static const union AnimCmd *const sUnknownAnims_SHARPEDO[] = { sAnim_GeneralFrame0, - gUnknown_082FFACC, - gUnknown_082FFAD4, + sUnknownAnim_SHARPEDO_1, + sUnknownAnim_SHARPEDO_2, }; -static const union AnimCmd *const gUnknown_083003A0[] = +static const union AnimCmd *const sUnknownAnims_TRAPINCH[] = { sAnim_GeneralFrame0, - gUnknown_082FFADC, + sUnknownAnim_TRAPINCH_1, }; -static const union AnimCmd *const gUnknown_083003A8[] = +static const union AnimCmd *const sUnknownAnims_VIBRAVA[] = { sAnim_GeneralFrame0, - gUnknown_082FFAE4, + sUnknownAnim_VIBRAVA_1, }; -static const union AnimCmd *const gUnknown_083003B0[] = +static const union AnimCmd *const sUnknownAnims_FLYGON[] = { sAnim_GeneralFrame0, - gUnknown_082FFAEC, + sUnknownAnim_FLYGON_1, }; -static const union AnimCmd *const gUnknown_083003B8[] = +static const union AnimCmd *const sUnknownAnims_MAKUHITA[] = { sAnim_GeneralFrame0, - gUnknown_082FFAF4, + sUnknownAnim_MAKUHITA_1, }; -static const union AnimCmd *const gUnknown_083003C0[] = +static const union AnimCmd *const sUnknownAnims_HARIYAMA[] = { sAnim_GeneralFrame0, - gUnknown_082FFAFC, + sUnknownAnim_HARIYAMA_1, }; -static const union AnimCmd *const gUnknown_083003C8[] = +static const union AnimCmd *const sUnknownAnims_ELECTRIKE[] = { sAnim_GeneralFrame0, - gUnknown_082FFB04, - gUnknown_082FFB0C, + sUnknownAnim_ELECTRIKE_1, + sUnknownAnim_ELECTRIKE_2, }; -static const union AnimCmd *const gUnknown_083003D4[] = +static const union AnimCmd *const sUnknownAnims_MANECTRIC[] = { sAnim_GeneralFrame0, - gUnknown_082FFB14, + sUnknownAnim_MANECTRIC_1, }; -static const union AnimCmd *const gUnknown_083003DC[] = +static const union AnimCmd *const sUnknownAnims_NUMEL[] = { sAnim_GeneralFrame0, - gUnknown_082FFB1C, - gUnknown_082FFB24, + sUnknownAnim_NUMEL_1, + sUnknownAnim_NUMEL_2, }; -static const union AnimCmd *const gUnknown_083003E8[] = +static const union AnimCmd *const sUnknownAnims_CAMERUPT[] = { sAnim_GeneralFrame0, - gUnknown_082FFB2C, + sUnknownAnim_CAMERUPT_1, }; -static const union AnimCmd *const gUnknown_083003F0[] = +static const union AnimCmd *const sUnknownAnims_SPHEAL[] = { sAnim_GeneralFrame0, - gUnknown_082FFB34, + sUnknownAnim_SPHEAL_1, }; -static const union AnimCmd *const gUnknown_083003F8[] = +static const union AnimCmd *const sUnknownAnims_SEALEO[] = { sAnim_GeneralFrame0, - gUnknown_082FFB3C, + sUnknownAnim_SEALEO_1, }; -static const union AnimCmd *const gUnknown_08300400[] = +static const union AnimCmd *const sUnknownAnims_WALREIN[] = { sAnim_GeneralFrame0, - gUnknown_082FFB44, - gUnknown_082FFB60, + sUnknownAnim_WALREIN_1, + sUnknownAnim_WALREIN_2, }; -static const union AnimCmd *const gUnknown_0830040C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300410[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300414[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300418[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_0830041C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300420[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_CACNEA[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_CACTURNE[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_SNORUNT[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_GLALIE[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_LUNATONE[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_SOLROCK[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300424[] = +static const union AnimCmd *const sUnknownAnims_AZURILL[] = { sAnim_GeneralFrame0, - gUnknown_082FFB7C, - gUnknown_082FFBBC, - gUnknown_082FFBE0, - gUnknown_082FFBF4, + sUnknownAnim_AZURILL_1, + sUnknownAnim_AZURILL_2, + sUnknownAnim_AZURILL_3, + sUnknownAnim_AZURILL_4, }; -static const union AnimCmd *const gUnknown_08300438[] = +static const union AnimCmd *const sUnknownAnims_SPOINK[] = { sAnim_GeneralFrame0, - gUnknown_082FFBFC, - gUnknown_082FFC04, + sUnknownAnim_SPOINK_1, + sUnknownAnim_SPOINK_2, }; -static const union AnimCmd *const gUnknown_08300444[] = +static const union AnimCmd *const sUnknownAnims_GRUMPIG[] = { sAnim_GeneralFrame0, - gUnknown_082FFC0C, + sUnknownAnim_GRUMPIG_1, }; -static const union AnimCmd *const gUnknown_0830044C[] = +static const union AnimCmd *const sUnknownAnims_PLUSLE[] = { sAnim_GeneralFrame0, - gUnknown_082FFC14, + sUnknownAnim_PLUSLE_1, }; -static const union AnimCmd *const gUnknown_08300454[] = +static const union AnimCmd *const sUnknownAnims_MINUN[] = { sAnim_GeneralFrame0, - gUnknown_082FFC1C, + sUnknownAnim_MINUN_1, }; -static const union AnimCmd *const gUnknown_0830045C[] = +static const union AnimCmd *const sUnknownAnims_MAWILE[] = { sAnim_GeneralFrame0, - gUnknown_082FFC24, + sUnknownAnim_MAWILE_1, }; -static const union AnimCmd *const gUnknown_08300464[] = +static const union AnimCmd *const sUnknownAnims_MEDITITE[] = { sAnim_GeneralFrame0, - gUnknown_082FFC2C, + sUnknownAnim_MEDITITE_1, }; -static const union AnimCmd *const gUnknown_0830046C[] = +static const union AnimCmd *const sUnknownAnims_MEDICHAM[] = { sAnim_GeneralFrame0, - gUnknown_082FFC34, + sUnknownAnim_MEDICHAM_1, }; -static const union AnimCmd *const gUnknown_08300474[] = +static const union AnimCmd *const sUnknownAnims_SWABLU[] = { sAnim_GeneralFrame0, - gUnknown_082FFC3C, - gUnknown_082FFC58, + sUnknownAnim_SWABLU_1, + sUnknownAnim_SWABLU_2, }; -static const union AnimCmd *const gUnknown_08300480[] = +static const union AnimCmd *const sUnknownAnims_ALTARIA[] = { sAnim_GeneralFrame0, - gUnknown_082FFC74, + sUnknownAnim_ALTARIA_1, }; -static const union AnimCmd *const gUnknown_08300488[] = +static const union AnimCmd *const sUnknownAnims_WYNAUT[] = { sAnim_GeneralFrame0, - gUnknown_082FFC7C, - gUnknown_082FFC84, + sUnknownAnim_WYNAUT_1, + sUnknownAnim_WYNAUT_2, }; -static const union AnimCmd *const gUnknown_08300494[] = +static const union AnimCmd *const sUnknownAnims_DUSKULL[] = { sAnim_GeneralFrame0, - gUnknown_082FFC8C, - gUnknown_082FFC94, + sUnknownAnim_DUSKULL_1, + sUnknownAnim_DUSKULL_2, }; -static const union AnimCmd *const gUnknown_083004A0[] = +static const union AnimCmd *const sUnknownAnims_DUSCLOPS[] = { sAnim_GeneralFrame0, - gUnknown_082FFC9C, - gUnknown_082FFCA4, + sUnknownAnim_DUSCLOPS_1, + sUnknownAnim_DUSCLOPS_2, }; -static const union AnimCmd *const gUnknown_083004AC[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_ROSELIA[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083004B0[] = +static const union AnimCmd *const sUnknownAnims_SLAKOTH[] = { sAnim_GeneralFrame0, - gUnknown_082FFCAC, + sUnknownAnim_SLAKOTH_1, }; -static const union AnimCmd *const gUnknown_083004B8[] = +static const union AnimCmd *const sUnknownAnims_VIGOROTH[] = { sAnim_GeneralFrame0, - gUnknown_082FFCB4, + sUnknownAnim_VIGOROTH_1, }; -static const union AnimCmd *const gUnknown_083004C0[] = +static const union AnimCmd *const sUnknownAnims_SLAKING[] = { sAnim_GeneralFrame0, - gUnknown_082FFCBC, + sUnknownAnim_SLAKING_1, }; -static const union AnimCmd *const gUnknown_083004C8[] = +static const union AnimCmd *const sUnknownAnims_GULPIN[] = { sAnim_GeneralFrame0, - gUnknown_082FFCC4, + sUnknownAnim_GULPIN_1, }; -static const union AnimCmd *const gUnknown_083004D0[] = +static const union AnimCmd *const sUnknownAnims_SWALOT[] = { sAnim_GeneralFrame0, - gUnknown_082FFCCC, + sUnknownAnim_SWALOT_1, }; -static const union AnimCmd *const gUnknown_083004D8[] = +static const union AnimCmd *const sUnknownAnims_TROPIUS[] = { sAnim_GeneralFrame0, - gUnknown_082FFCD4, + sUnknownAnim_TROPIUS_1, }; -static const union AnimCmd *const gUnknown_083004E0[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083004E4[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083004E8[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_WHISMUR[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_LOUDRED[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_EXPLOUD[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083004EC[] = +static const union AnimCmd *const sUnknownAnims_CLAMPERL[] = { sAnim_GeneralFrame0, - gUnknown_082FFCDC, + sUnknownAnim_CLAMPERL_1, }; -static const union AnimCmd *const gUnknown_083004F4[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083004F8[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_HUNTAIL[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_GOREBYSS[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083004FC[] = +static const union AnimCmd *const sUnknownAnims_ABSOL[] = { sAnim_GeneralFrame0, - gUnknown_082FFCE4, + sUnknownAnim_ABSOL_1, }; -static const union AnimCmd *const gUnknown_08300504[] = +static const union AnimCmd *const sUnknownAnims_SHUPPET[] = { sAnim_GeneralFrame0, - gUnknown_082FFCEC, - gUnknown_082FFCF4, + sUnknownAnim_SHUPPET_1, + sUnknownAnim_SHUPPET_2, }; -static const union AnimCmd *const gUnknown_08300510[] = +static const union AnimCmd *const sUnknownAnims_BANETTE[] = { sAnim_GeneralFrame0, - gUnknown_082FFCFC, + sUnknownAnim_BANETTE_1, }; -static const union AnimCmd *const gUnknown_08300518[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_0830051C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300520[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_SEVIPER[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_ZANGOOSE[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_RELICANTH[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300524[] = +static const union AnimCmd *const sUnknownAnims_ARON[] = { sAnim_GeneralFrame0, - gUnknown_082FFD04, + sUnknownAnim_ARON_1, }; -static const union AnimCmd *const gUnknown_0830052C[] = +static const union AnimCmd *const sUnknownAnims_LAIRON[] = { sAnim_GeneralFrame0, - gUnknown_082FFD0C, + sUnknownAnim_LAIRON_1, }; -static const union AnimCmd *const gUnknown_08300534[] = +static const union AnimCmd *const sUnknownAnims_AGGRON[] = { sAnim_GeneralFrame0, - gUnknown_082FFD14, + sUnknownAnim_AGGRON_1, }; -static const union AnimCmd *const gUnknown_0830053C[] = +static const union AnimCmd *const sUnknownAnims_CASTFORM[] = { sAnim_GeneralFrame0, - gUnknown_082FFD1C, - gUnknown_082FFD24, - gUnknown_082FFD2C, - gUnknown_082FFD34, + sUnknownAnim_CASTFORM_1, + sUnknownAnim_CASTFORM_2, + sUnknownAnim_CASTFORM_3, + sUnknownAnim_CASTFORM_4, }; -static const union AnimCmd *const gUnknown_08300550[] = +static const union AnimCmd *const sUnknownAnims_VOLBEAT[] = { sAnim_GeneralFrame0, - gUnknown_082FFD3C, + sUnknownAnim_VOLBEAT_1, }; -static const union AnimCmd *const gUnknown_08300558[] = +static const union AnimCmd *const sUnknownAnims_ILLUMISE[] = { sAnim_GeneralFrame0, - gUnknown_082FFD44, + sUnknownAnim_ILLUMISE_1, }; -static const union AnimCmd *const gUnknown_08300560[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300564[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300568[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_0830056C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300570[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300574[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300578[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_LILEEP[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_CRADILY[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_ANORITH[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_ARMALDO[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_RALTS[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_KIRLIA[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_GARDEVOIR[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_0830057C[] = +static const union AnimCmd *const sUnknownAnims_BAGON[] = { sAnim_GeneralFrame0, - gUnknown_082FFD4C, - gUnknown_082FFD54, + sUnknownAnim_BAGON_1, + sUnknownAnim_BAGON_2, }; -static const union AnimCmd *const gUnknown_08300588[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_SHELGON[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_0830058C[] = +static const union AnimCmd *const sUnknownAnims_SALAMENCE[] = { sAnim_GeneralFrame0, - gUnknown_082FFD5C, - gUnknown_082FFD64, + sUnknownAnim_SALAMENCE_1, + sUnknownAnim_SALAMENCE_2, }; -static const union AnimCmd *const gUnknown_08300598[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_0830059C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083005A0[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_BELDUM[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_METANG[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_METAGROSS[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083005A4[] = +static const union AnimCmd *const sUnknownAnims_REGIROCK[] = { sAnim_GeneralFrame0, - gUnknown_082FFD6C, + sUnknownAnim_REGIROCK_1, }; -static const union AnimCmd *const gUnknown_083005AC[] = +static const union AnimCmd *const sUnknownAnims_REGICE[] = { sAnim_GeneralFrame0, - gUnknown_082FFD74, + sUnknownAnim_REGICE_1, }; -static const union AnimCmd *const gUnknown_083005B4[] = +static const union AnimCmd *const sUnknownAnims_REGISTEEL[] = { sAnim_GeneralFrame0, - gUnknown_082FFD7C, - gUnknown_082FFD84, + sUnknownAnim_REGISTEEL_1, + sUnknownAnim_REGISTEEL_2, }; -static const union AnimCmd *const gUnknown_083005C0[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083005C4[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_KYOGRE[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_GROUDON[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083005C8[] = +static const union AnimCmd *const sUnknownAnims_RAYQUAZA[] = { sAnim_GeneralFrame0, - gUnknown_082FFD8C, - gUnknown_082FFDA0, + sUnknownAnim_RAYQUAZA_1, + sUnknownAnim_RAYQUAZA_2, }; -static const union AnimCmd *const gUnknown_083005D4[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083005D8[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_LATIAS[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_LATIOS[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083005DC[] = +static const union AnimCmd *const sUnknownAnims_JIRACHI[] = { sAnim_GeneralFrame0, - gUnknown_082FFDC4, + sUnknownAnim_JIRACHI_1, }; -static const union AnimCmd *const gUnknown_083005E4[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083005E8[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083005EC[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083005F0[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083005F4[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083005F8[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083005FC[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300600[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300604[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300608[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_0830060C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300610[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300614[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300618[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_0830061C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300620[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300624[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300628[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_0830062C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300630[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300634[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300638[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_0830063C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300640[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300644[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300648[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_0830064C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300650[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300654[] = {sAnim_GeneralFrame0}; - -const union AnimCmd *const *const gUnknownAnimsTable[] = -{ - gUnknown_082FFDCC, - gUnknown_082FFDD0, - gUnknown_082FFDD4, - gUnknown_082FFDD8, - gUnknown_082FFDDC, - gUnknown_082FFDE0, - gUnknown_082FFDE4, - gUnknown_082FFDE8, - gUnknown_082FFDEC, - gUnknown_082FFDF0, - gUnknown_082FFDF4, - gUnknown_082FFDF8, - gUnknown_082FFDFC, - gUnknown_082FFE00, - gUnknown_082FFE04, - gUnknown_082FFE08, - gUnknown_082FFE0C, - gUnknown_082FFE10, - gUnknown_082FFE14, - gUnknown_082FFE18, - gUnknown_082FFE1C, - gUnknown_082FFE20, - gUnknown_082FFE24, - gUnknown_082FFE28, - gUnknown_082FFE2C, - gUnknown_082FFE30, - gUnknown_082FFE34, - gUnknown_082FFE38, - gUnknown_082FFE3C, - gUnknown_082FFE40, - gUnknown_082FFE44, - gUnknown_082FFE48, - gUnknown_082FFE4C, - gUnknown_082FFE50, - gUnknown_082FFE54, - gUnknown_082FFE58, - gUnknown_082FFE5C, - gUnknown_082FFE60, - gUnknown_082FFE64, - gUnknown_082FFE68, - gUnknown_082FFE6C, - gUnknown_082FFE70, - gUnknown_082FFE74, - gUnknown_082FFE78, - gUnknown_082FFE7C, - gUnknown_082FFE80, - gUnknown_082FFE84, - gUnknown_082FFE88, - gUnknown_082FFE8C, - gUnknown_082FFE90, - gUnknown_082FFE94, - gUnknown_082FFE98, - gUnknown_082FFE9C, - gUnknown_082FFEA0, - gUnknown_082FFEA4, - gUnknown_082FFEA8, - gUnknown_082FFEAC, - gUnknown_082FFEB0, - gUnknown_082FFEB4, - gUnknown_082FFEB8, - gUnknown_082FFEBC, - gUnknown_082FFEC0, - gUnknown_082FFEC4, - gUnknown_082FFEC8, - gUnknown_082FFECC, - gUnknown_082FFED0, - gUnknown_082FFED4, - gUnknown_082FFED8, - gUnknown_082FFEDC, - gUnknown_082FFEE0, - gUnknown_082FFEE4, - gUnknown_082FFEE8, - gUnknown_082FFEEC, - gUnknown_082FFEF0, - gUnknown_082FFEF4, - gUnknown_082FFEF8, - gUnknown_082FFEFC, - gUnknown_082FFF00, - gUnknown_082FFF04, - gUnknown_082FFF08, - gUnknown_082FFF0C, - gUnknown_082FFF10, - gUnknown_082FFF14, - gUnknown_082FFF18, - gUnknown_082FFF1C, - gUnknown_082FFF20, - gUnknown_082FFF24, - gUnknown_082FFF28, - gUnknown_082FFF2C, - gUnknown_082FFF30, - gUnknown_082FFF34, - gUnknown_082FFF38, - gUnknown_082FFF3C, - gUnknown_082FFF40, - gUnknown_082FFF44, - gUnknown_082FFF48, - gUnknown_082FFF4C, - gUnknown_082FFF50, - gUnknown_082FFF54, - gUnknown_082FFF58, - gUnknown_082FFF5C, - gUnknown_082FFF60, - gUnknown_082FFF64, - gUnknown_082FFF68, - gUnknown_082FFF6C, - gUnknown_082FFF70, - gUnknown_082FFF74, - gUnknown_082FFF78, - gUnknown_082FFF7C, - gUnknown_082FFF80, - gUnknown_082FFF84, - gUnknown_082FFF88, - gUnknown_082FFF8C, - gUnknown_082FFF90, - gUnknown_082FFF94, - gUnknown_082FFF98, - gUnknown_082FFF9C, - gUnknown_082FFFA0, - gUnknown_082FFFA4, - gUnknown_082FFFA8, - gUnknown_082FFFAC, - gUnknown_082FFFB0, - gUnknown_082FFFB4, - gUnknown_082FFFB8, - gUnknown_082FFFBC, - gUnknown_082FFFC0, - gUnknown_082FFFC4, - gUnknown_082FFFC8, - gUnknown_082FFFCC, - gUnknown_082FFFD0, - gUnknown_082FFFD4, - gUnknown_082FFFD8, - gUnknown_082FFFDC, - gUnknown_082FFFE0, - gUnknown_082FFFE4, - gUnknown_082FFFE8, - gUnknown_082FFFEC, - gUnknown_082FFFF0, - gUnknown_082FFFF4, - gUnknown_082FFFF8, - gUnknown_082FFFFC, - gUnknown_08300000, - gUnknown_08300004, - gUnknown_08300008, - gUnknown_0830000C, - gUnknown_08300010, - gUnknown_08300014, - gUnknown_08300018, - gUnknown_0830001C, - gUnknown_08300020, - gUnknown_08300024, - gUnknown_08300028, - gUnknown_0830002C, - gUnknown_08300030, - gUnknown_08300034, - gUnknown_08300038, - gUnknown_0830003C, - gUnknown_08300040, - gUnknown_08300044, - gUnknown_08300048, - gUnknown_0830004C, - gUnknown_08300050, - gUnknown_08300054, - gUnknown_08300058, - gUnknown_0830005C, - gUnknown_08300060, - gUnknown_08300064, - gUnknown_08300068, - gUnknown_0830006C, - gUnknown_08300070, - gUnknown_08300074, - gUnknown_08300078, - gUnknown_0830007C, - gUnknown_08300080, - gUnknown_08300084, - gUnknown_08300088, - gUnknown_0830008C, - gUnknown_08300090, - gUnknown_08300094, - gUnknown_08300098, - gUnknown_0830009C, - gUnknown_083000A0, - gUnknown_083000A4, - gUnknown_083000A8, - gUnknown_083000AC, - gUnknown_083000B0, - gUnknown_083000B4, - gUnknown_083000B8, - gUnknown_083000BC, - gUnknown_083000C0, - gUnknown_083000C4, - gUnknown_083000C8, - gUnknown_083000CC, - gUnknown_083000D0, - gUnknown_083000D4, - gUnknown_083000D8, - gUnknown_083000DC, - gUnknown_083000E0, - gUnknown_083000E4, - gUnknown_083000E8, - gUnknown_083000EC, - gUnknown_083000F0, - gUnknown_083000F4, - gUnknown_083000F8, - gUnknown_083000FC, - gUnknown_08300100, - gUnknown_08300104, - gUnknown_08300108, - gUnknown_0830010C, - gUnknown_08300110, - gUnknown_08300114, - gUnknown_08300118, - gUnknown_0830011C, - gUnknown_08300120, - gUnknown_08300124, - gUnknown_08300128, - gUnknown_0830012C, - gUnknown_08300130, - gUnknown_08300134, - gUnknown_08300138, - gUnknown_0830013C, - gUnknown_08300140, - gUnknown_08300144, - gUnknown_08300148, - gUnknown_0830014C, - gUnknown_08300150, - gUnknown_08300154, - gUnknown_08300158, - gUnknown_0830015C, - gUnknown_08300160, - gUnknown_08300164, - gUnknown_08300168, - gUnknown_0830016C, - gUnknown_08300170, - gUnknown_08300174, - gUnknown_08300178, - gUnknown_0830017C, - gUnknown_08300180, - gUnknown_08300184, - gUnknown_08300188, - gUnknown_0830018C, - gUnknown_08300190, - gUnknown_08300194, - gUnknown_08300198, - gUnknown_0830019C, - gUnknown_083001A0, - gUnknown_083001A4, - gUnknown_083001A8, - gUnknown_083001AC, - gUnknown_083001B0, - gUnknown_083001B4, - gUnknown_083001B8, - gUnknown_083001BC, - gUnknown_083001BC, - gUnknown_083001BC, - gUnknown_083001BC, - gUnknown_083001BC, - gUnknown_083001BC, - gUnknown_083001BC, - gUnknown_083001BC, - gUnknown_083001BC, - gUnknown_083001BC, - gUnknown_083001BC, - gUnknown_083001BC, - gUnknown_083001BC, - gUnknown_083001BC, - gUnknown_083001BC, - gUnknown_083001BC, - gUnknown_083001BC, - gUnknown_083001BC, - gUnknown_083001BC, - gUnknown_083001BC, - gUnknown_083001BC, - gUnknown_083001BC, - gUnknown_083001BC, - gUnknown_083001BC, - gUnknown_083001BC, - gUnknown_083001C0, - gUnknown_083001C4, - gUnknown_083001C8, - gUnknown_083001CC, - gUnknown_083001D0, - gUnknown_083001D4, - gUnknown_083001E8, - gUnknown_083001EC, - gUnknown_083001FC, - gUnknown_08300200, - gUnknown_0830020C, - gUnknown_08300214, - gUnknown_0830021C, - gUnknown_08300224, - gUnknown_08300230, - gUnknown_0830023C, - gUnknown_08300248, - gUnknown_08300254, - gUnknown_08300260, - gUnknown_08300264, - gUnknown_0830026C, - gUnknown_08300278, - gUnknown_08300280, - gUnknown_08300288, - gUnknown_08300294, - gUnknown_08300298, - gUnknown_0830029C, - gUnknown_083002A0, - gUnknown_083002A8, - gUnknown_083002B0, - gUnknown_083002B8, - gUnknown_083002C0, - gUnknown_083002C4, - gUnknown_083002CC, - gUnknown_083002D8, - gUnknown_083002E4, - gUnknown_083002F0, - gUnknown_08300304, - gUnknown_08300308, - gUnknown_08300310, - gUnknown_08300318, - gUnknown_0830032C, - gUnknown_08300334, - gUnknown_0830033C, - gUnknown_08300344, - gUnknown_08300348, - gUnknown_08300354, - gUnknown_08300358, - gUnknown_0830035C, - gUnknown_08300368, - gUnknown_0830036C, - gUnknown_08300370, - gUnknown_0830037C, - gUnknown_08300388, - gUnknown_08300394, - gUnknown_083003A0, - gUnknown_083003A8, - gUnknown_083003B0, - gUnknown_083003B8, - gUnknown_083003C0, - gUnknown_083003C8, - gUnknown_083003D4, - gUnknown_083003DC, - gUnknown_083003E8, - gUnknown_083003F0, - gUnknown_083003F8, - gUnknown_08300400, - gUnknown_0830040C, - gUnknown_08300410, - gUnknown_08300414, - gUnknown_08300418, - gUnknown_0830041C, - gUnknown_08300420, - gUnknown_08300424, - gUnknown_08300438, - gUnknown_08300444, - gUnknown_0830044C, - gUnknown_08300454, - gUnknown_0830045C, - gUnknown_08300464, - gUnknown_0830046C, - gUnknown_08300474, - gUnknown_08300480, - gUnknown_08300488, - gUnknown_08300494, - gUnknown_083004A0, - gUnknown_083004AC, - gUnknown_083004B0, - gUnknown_083004B8, - gUnknown_083004C0, - gUnknown_083004C8, - gUnknown_083004D0, - gUnknown_083004D8, - gUnknown_083004E0, - gUnknown_083004E4, - gUnknown_083004E8, - gUnknown_083004EC, - gUnknown_083004F4, - gUnknown_083004F8, - gUnknown_083004FC, - gUnknown_08300504, - gUnknown_08300510, - gUnknown_08300518, - gUnknown_0830051C, - gUnknown_08300520, - gUnknown_08300524, - gUnknown_0830052C, - gUnknown_08300534, - gUnknown_0830053C, - gUnknown_08300550, - gUnknown_08300558, - gUnknown_08300560, - gUnknown_08300564, - gUnknown_08300568, - gUnknown_0830056C, - gUnknown_08300570, - gUnknown_08300574, - gUnknown_08300578, - gUnknown_0830057C, - gUnknown_08300588, - gUnknown_0830058C, - gUnknown_08300598, - gUnknown_0830059C, - gUnknown_083005A0, - gUnknown_083005A4, - gUnknown_083005AC, - gUnknown_083005B4, - gUnknown_083005C0, - gUnknown_083005C4, - gUnknown_083005C8, - gUnknown_083005D4, - gUnknown_083005D8, - gUnknown_083005DC, - gUnknown_083005E4, - gUnknown_083005E8, - gUnknown_083005EC, - gUnknown_083005EC, - gUnknown_083005F0, - gUnknown_083005F4, - gUnknown_083005F8, - gUnknown_083005FC, - gUnknown_08300600, - gUnknown_08300604, - gUnknown_08300608, - gUnknown_0830060C, - gUnknown_08300610, - gUnknown_08300614, - gUnknown_08300618, - gUnknown_0830061C, - gUnknown_08300620, - gUnknown_08300624, - gUnknown_08300628, - gUnknown_0830062C, - gUnknown_08300630, - gUnknown_08300634, - gUnknown_08300638, - gUnknown_0830063C, - gUnknown_08300640, - gUnknown_08300644, - gUnknown_08300648, - gUnknown_0830064C, - gUnknown_08300650, - gUnknown_08300654, -}; +static const union AnimCmd *const sUnknownAnims_DEOXYS[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_CHIMECHO[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_EGG[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_UNOWN_C[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_UNOWN_D[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_UNOWN_E[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_UNOWN_F[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_UNOWN_G[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_UNOWN_H[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_UNOWN_I[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_UNOWN_J[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_UNOWN_K[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_UNOWN_L[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_UNOWN_M[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_UNOWN_N[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_UNOWN_O[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_UNOWN_P[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_UNOWN_Q[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_UNOWN_R[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_UNOWN_S[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_UNOWN_T[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_UNOWN_U[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_UNOWN_V[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_UNOWN_W[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_UNOWN_X[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_UNOWN_Y[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_UNOWN_Z[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_UNOWN_EMARK[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_UNOWN_QMARK[] = {sAnim_GeneralFrame0}; + +#define ANIM_CMD(name) [SPECIES_##name] = sUnknownAnims_##name +#define ANIM_CMD_FULL(name, anims) [SPECIES_##name] = anims + +static const union AnimCmd *const *const sUnknownAnimsTable[] = +{ + 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_FULL(OLD_UNOWN_B, sUnknownAnims_OLD_UNOWN), + ANIM_CMD_FULL(OLD_UNOWN_C, sUnknownAnims_OLD_UNOWN), + ANIM_CMD_FULL(OLD_UNOWN_D, sUnknownAnims_OLD_UNOWN), + ANIM_CMD_FULL(OLD_UNOWN_E, sUnknownAnims_OLD_UNOWN), + ANIM_CMD_FULL(OLD_UNOWN_F, sUnknownAnims_OLD_UNOWN), + ANIM_CMD_FULL(OLD_UNOWN_G, sUnknownAnims_OLD_UNOWN), + ANIM_CMD_FULL(OLD_UNOWN_H, sUnknownAnims_OLD_UNOWN), + ANIM_CMD_FULL(OLD_UNOWN_I, sUnknownAnims_OLD_UNOWN), + ANIM_CMD_FULL(OLD_UNOWN_J, sUnknownAnims_OLD_UNOWN), + ANIM_CMD_FULL(OLD_UNOWN_K, sUnknownAnims_OLD_UNOWN), + ANIM_CMD_FULL(OLD_UNOWN_L, sUnknownAnims_OLD_UNOWN), + ANIM_CMD_FULL(OLD_UNOWN_M, sUnknownAnims_OLD_UNOWN), + ANIM_CMD_FULL(OLD_UNOWN_N, sUnknownAnims_OLD_UNOWN), + ANIM_CMD_FULL(OLD_UNOWN_O, sUnknownAnims_OLD_UNOWN), + ANIM_CMD_FULL(OLD_UNOWN_P, sUnknownAnims_OLD_UNOWN), + ANIM_CMD_FULL(OLD_UNOWN_Q, sUnknownAnims_OLD_UNOWN), + ANIM_CMD_FULL(OLD_UNOWN_R, sUnknownAnims_OLD_UNOWN), + ANIM_CMD_FULL(OLD_UNOWN_S, sUnknownAnims_OLD_UNOWN), + ANIM_CMD_FULL(OLD_UNOWN_T, sUnknownAnims_OLD_UNOWN), + ANIM_CMD_FULL(OLD_UNOWN_U, sUnknownAnims_OLD_UNOWN), + ANIM_CMD_FULL(OLD_UNOWN_V, sUnknownAnims_OLD_UNOWN), + ANIM_CMD_FULL(OLD_UNOWN_W, sUnknownAnims_OLD_UNOWN), + ANIM_CMD_FULL(OLD_UNOWN_X, sUnknownAnims_OLD_UNOWN), + ANIM_CMD_FULL(OLD_UNOWN_Y, sUnknownAnims_OLD_UNOWN), + ANIM_CMD_FULL(OLD_UNOWN_Z, sUnknownAnims_OLD_UNOWN), + 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_FULL(UNOWN_B, sUnknownAnims_EGG), + 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), +}; + +#undef ANIM_CMD +#undef ANIM_CMD_FULL diff --git a/src/digit_obj_util.c b/src/digit_obj_util.c new file mode 100644 index 0000000000..fe5d49e69d --- /dev/null +++ b/src/digit_obj_util.c @@ -0,0 +1,450 @@ +#include "global.h" +#include "digit_obj_util.h" +#include "malloc.h" +#include "decompress.h" +#include "main.h" +#include "battle_main.h" + +struct DigitPrinter +{ + bool8 isActive; + u8 firstOamId; + u8 strConvMode; + u8 oamCount; + u8 palTagIndex; + u8 size; + u8 shape; + u8 priority; + u8 xDelta; + u8 tilesPerImage; + u16 tileStart; + s16 x; + s16 y; + u16 tileTag; + u16 palTag; + u32 pow10; + s32 lastPrinted; +}; + +struct DigitPrinterAlloc +{ + u32 count; + struct DigitPrinter *array; +}; + +// this file's functions +static u8 GetFirstOamId(u8 oamCount);; +static void CopyWorkToOam(struct DigitPrinter *objWork); +static void DrawNumObjsLeadingZeros(struct DigitPrinter *objWork, s32 num, bool32 sign); +static void DrawNumObjsMinusInFront(struct DigitPrinter *objWork, s32 num, bool32 sign); +static void DrawNumObjsMinusInBack(struct DigitPrinter *objWork, s32 num, bool32 sign); +static bool32 SharesTileWithAnyActive(u32 id); +static bool32 SharesPalWithAnyActive(u32 id); + +// ewram +static EWRAM_DATA struct DigitPrinterAlloc *sOamWork = {0}; + +// const rom data +static const u8 sTilesPerImage[4][4] = +{ + [ST_OAM_SQUARE] = { + [ST_OAM_SIZE_0] = 0x01, // SPRITE_SIZE_8x8 + [ST_OAM_SIZE_1] = 0x04, // SPRITE_SIZE_16x16 + [ST_OAM_SIZE_2] = 0x10, // SPRITE_SIZE_32x32 + [ST_OAM_SIZE_3] = 0x40 // SPRITE_SIZE_64x64 + }, + [ST_OAM_H_RECTANGLE] = { + [ST_OAM_SIZE_0] = 0x02, // SPRITE_SIZE_16x8 + [ST_OAM_SIZE_1] = 0x04, // SPRITE_SIZE_32x8 + [ST_OAM_SIZE_2] = 0x08, // SPRITE_SIZE_32x16 + [ST_OAM_SIZE_3] = 0x20 // SPRITE_SIZE_64x32 + }, + [ST_OAM_V_RECTANGLE] = { + [ST_OAM_SIZE_0] = 0x02, // SPRITE_SIZE_8x16 + [ST_OAM_SIZE_1] = 0x04, // SPRITE_SIZE_8x32 + [ST_OAM_SIZE_2] = 0x08, // SPRITE_SIZE_16x32 + [ST_OAM_SIZE_3] = 0x20 // SPRITE_SIZE_32x64 + } +}; + +// code +bool32 DigitObjUtil_Init(u32 count) +{ + u32 i; + + if (sOamWork != NULL) + DigitObjUtil_Free(); + + sOamWork = Alloc(sizeof(*sOamWork)); + if (sOamWork == NULL) + return FALSE; + + sOamWork->array = Alloc(sizeof(struct DigitPrinter) * count); + if (sOamWork->array == NULL) + { + Free(sOamWork); + return FALSE; + } + + sOamWork->count = count; + for (i = 0; i < count; i++) + { + sOamWork->array[i].isActive = FALSE; + sOamWork->array[i].firstOamId = 0xFF; + } + + return TRUE; +} + +void DigitObjUtil_Free(void) +{ + if (sOamWork != NULL) + { + if (sOamWork->array != NULL) + { + u32 i; + + for (i = 0; i < sOamWork->count; i++) + DigitObjUtil_DeletePrinter(i); + + Free(sOamWork->array); + } + + FREE_AND_SET_NULL(sOamWork); + } +} + +bool32 DigitObjUtil_CreatePrinter(u32 id, s32 num, const struct DigitObjUtilTemplate *template) +{ + u32 i; + + if (sOamWork == NULL) + return FALSE; + if (sOamWork->array[id].isActive) + return FALSE; + + sOamWork->array[id].firstOamId = GetFirstOamId(template->oamCount); + if (sOamWork->array[id].firstOamId == 0xFF) + return FALSE; + + sOamWork->array[id].tileStart = GetSpriteTileStartByTag(template->spriteSheet->tag); + if (sOamWork->array[id].tileStart == 0xFFFF) + { + if (template->spriteSheet->size != 0) + { + sOamWork->array[id].tileStart = LoadSpriteSheet(template->spriteSheet); + } + else + { + struct CompressedSpriteSheet compSpriteSheet; + + compSpriteSheet = *(struct CompressedSpriteSheet*)(template->spriteSheet); + compSpriteSheet.size = GetDecompressedDataSize(template->spriteSheet->data); + sOamWork->array[id].tileStart = LoadCompressedSpriteSheet(&compSpriteSheet); + } + + if (sOamWork->array[id].tileStart == 0xFFFF) + return FALSE; + } + + sOamWork->array[id].palTagIndex = IndexOfSpritePaletteTag(template->spritePal->tag); + if (sOamWork->array[id].palTagIndex == 0xFF) + sOamWork->array[id].palTagIndex = LoadSpritePalette(template->spritePal); + + sOamWork->array[id].strConvMode = template->strConvMode; + sOamWork->array[id].oamCount = template->oamCount; + sOamWork->array[id].x = template->x; + sOamWork->array[id].y = template->y; + sOamWork->array[id].shape = template->shape; + sOamWork->array[id].size = template->size; + sOamWork->array[id].priority = template->priority; + sOamWork->array[id].xDelta = template->xDelta; + sOamWork->array[id].tilesPerImage = GetTilesPerImage(template->shape, template->size); + sOamWork->array[id].tileTag = template->spriteSheet->tag; + sOamWork->array[id].palTag = template->spritePal->tag; + sOamWork->array[id].isActive = TRUE; + + // Decimal left shift + sOamWork->array[id].pow10 = 1; + for (i = 1; i < template->oamCount; i++) + sOamWork->array[id].pow10 *= 10; + + CopyWorkToOam(&sOamWork->array[id]); + DigitObjUtil_PrintNumOn(id, num); + + return TRUE; +} + +static void CopyWorkToOam(struct DigitPrinter *objWork) +{ + u32 i; + u32 oamId = objWork->firstOamId; + u32 x = objWork->x; + u32 oamCount = objWork->oamCount + 1; + + CpuFill16(0, &gMain.oamBuffer[oamId], sizeof(struct OamData) * oamCount); + for (i = 0, oamId = objWork->firstOamId; i < oamCount; i++, oamId++) + { + gMain.oamBuffer[oamId].y = objWork->y; + gMain.oamBuffer[oamId].x = x; + gMain.oamBuffer[oamId].shape = objWork->shape; + gMain.oamBuffer[oamId].size = objWork->size; + gMain.oamBuffer[oamId].tileNum = objWork->tileStart; + gMain.oamBuffer[oamId].priority = objWork->priority; + gMain.oamBuffer[oamId].paletteNum = objWork->palTagIndex; + + x += objWork->xDelta; + } + + oamId--; + gMain.oamBuffer[oamId].x = objWork->x - objWork->xDelta; + gMain.oamBuffer[oamId].affineMode = ST_OAM_AFFINE_ERASE; + gMain.oamBuffer[oamId].tileNum = objWork->tileStart + (objWork->tilesPerImage * 10); +} + +void DigitObjUtil_PrintNumOn(u32 id, s32 num) +{ + bool32 sign; + + if (sOamWork == NULL) + return; + if (!sOamWork->array[id].isActive) + return; + + sOamWork->array[id].lastPrinted = num; + if (num < 0) + { + sign = TRUE; + num *= -1; + } + else + { + sign = FALSE; + } + + switch (sOamWork->array[id].strConvMode) + { + case 0: + default: + DrawNumObjsLeadingZeros(&sOamWork->array[id], num, sign); + break; + case 1: + DrawNumObjsMinusInFront(&sOamWork->array[id], num, sign); + break; + case 2: + DrawNumObjsMinusInBack(&sOamWork->array[id], num, sign); + break; + } +} + +static void DrawNumObjsLeadingZeros(struct DigitPrinter *objWork, s32 num, bool32 sign) +{ + u32 pow10 = objWork->pow10; + u32 oamId = objWork->firstOamId; + + while (pow10 != 0) + { + u32 digit = num / pow10; + num -= (digit * pow10); + pow10 /= 10; + + gMain.oamBuffer[oamId].tileNum = (digit * objWork->tilesPerImage) + objWork->tileStart; + oamId++; + } + + if (sign) + gMain.oamBuffer[oamId].affineMode = ST_OAM_AFFINE_OFF; + else + gMain.oamBuffer[oamId].affineMode = ST_OAM_AFFINE_ERASE; +} + +static void DrawNumObjsMinusInFront(struct DigitPrinter *objWork, s32 num, bool32 sign) +{ + u32 pow10 = objWork->pow10; + static int oamId; + static int curDigit; + static int firstDigit; + + oamId = objWork->firstOamId; + curDigit = 0; + firstDigit = -1; + + while (pow10 != 0) + { + u32 digit = num / pow10; + num -= (digit * pow10); + pow10 /= 10; + + if (digit != 0 || firstDigit != -1 || pow10 == 0) + { + gMain.oamBuffer[oamId].tileNum = (digit * objWork->tilesPerImage) + objWork->tileStart; + gMain.oamBuffer[oamId].affineMode = ST_OAM_AFFINE_OFF; + + if (firstDigit == -1) + firstDigit = curDigit; + } + else + { + gMain.oamBuffer[oamId].affineMode = ST_OAM_AFFINE_ERASE; + } + + oamId++; + curDigit++; + } + + if (sign) + { + gMain.oamBuffer[oamId].affineMode = ST_OAM_AFFINE_OFF; + gMain.oamBuffer[oamId].x = objWork->x + ((firstDigit - 1) * objWork->xDelta); + } + else + { + gMain.oamBuffer[oamId].affineMode = ST_OAM_AFFINE_ERASE; + } +} + +static void DrawNumObjsMinusInBack(struct DigitPrinter *objWork, s32 num, bool32 sign) +{ + u32 pow10 = objWork->pow10; + u32 oamId = objWork->firstOamId; + bool32 printingDigits = FALSE; + s32 nsprites = 0; + + while (pow10 != 0) + { + u32 digit = num / pow10; + num -= (digit * pow10); + pow10 /= 10; + + if (digit != 0 || printingDigits || pow10 == 0) + { + printingDigits = TRUE; + gMain.oamBuffer[oamId].tileNum = (digit * objWork->tilesPerImage) + objWork->tileStart; + gMain.oamBuffer[oamId].affineMode = ST_OAM_AFFINE_OFF; + + oamId++; + nsprites++; + } + } + + while (nsprites < objWork->oamCount) + { + gMain.oamBuffer[oamId].affineMode = ST_OAM_AFFINE_ERASE; + oamId++; + nsprites++; + } + + if (sign) + gMain.oamBuffer[oamId].affineMode = ST_OAM_AFFINE_OFF; + else + gMain.oamBuffer[oamId].affineMode = ST_OAM_AFFINE_ERASE; +} + +void DigitObjUtil_DeletePrinter(u32 id) +{ + s32 oamId, oamCount, i; + + if (sOamWork == NULL) + return; + if (!sOamWork->array[id].isActive) + return; + + oamCount = sOamWork->array[id].oamCount + 1; + oamId = sOamWork->array[id].firstOamId; + + for (i = 0; i < oamCount; i++, oamId++) + gMain.oamBuffer[oamId].affineMode = ST_OAM_AFFINE_ERASE; + + if (!SharesTileWithAnyActive(id)) + FreeSpriteTilesByTag(sOamWork->array[id].tileTag); + if (!SharesPalWithAnyActive(id)) + FreeSpritePaletteByTag(sOamWork->array[id].palTag); + + sOamWork->array[id].isActive = FALSE; +} + +void DigitObjUtil_HideOrShow(u32 id, bool32 hide) +{ + s32 oamId, oamCount, i; + + if (sOamWork == NULL) + return; + if (!sOamWork->array[id].isActive) + return; + + oamCount = sOamWork->array[id].oamCount + 1; + oamId = sOamWork->array[id].firstOamId; + if (hide) + { + for (i = 0; i < oamCount; i++, oamId++) + gMain.oamBuffer[oamId].affineMode = ST_OAM_AFFINE_ERASE; + } + else + { + for (i = 0; i < oamCount; i++, oamId++) + gMain.oamBuffer[oamId].affineMode = ST_OAM_AFFINE_OFF; + + DigitObjUtil_PrintNumOn(id, sOamWork->array[id].lastPrinted); + } +} + +static u8 GetFirstOamId(u8 oamCount) +{ + u32 i; + u16 firstOamId = 64; + + for (i = 0; i < sOamWork->count; i++) + { + if (!sOamWork->array[i].isActive) + { + if (sOamWork->array[i].firstOamId != 0xFF && sOamWork->array[i].oamCount <= oamCount) + return sOamWork->array[i].firstOamId; + } + else + { + firstOamId += 1 + sOamWork->array[i].oamCount; + } + } + + if (firstOamId + oamCount + 1 > 128) + return 0xFF; + else + return firstOamId; +} + +static bool32 SharesTileWithAnyActive(u32 id) +{ + u32 i; + + for (i = 0; i < sOamWork->count; i++) + { + if (sOamWork->array[i].isActive && i != id + && sOamWork->array[i].tileTag == sOamWork->array[id].tileTag) + { + return TRUE; + } + } + + return FALSE; +} + +static bool32 SharesPalWithAnyActive(u32 id) +{ + u32 i; + + for (i = 0; i < sOamWork->count; i++) + { + if (sOamWork->array[i].isActive && i != id + && sOamWork->array[i].palTag == sOamWork->array[id].palTag) + { + return TRUE; + } + } + + return FALSE; +} + +u8 GetTilesPerImage(u32 shape, u32 size) +{ + return sTilesPerImage[shape][size]; +} diff --git a/src/dodrio_berry_picking.c b/src/dodrio_berry_picking.c index 40074e0afd..936c1828fc 100644 --- a/src/dodrio_berry_picking.c +++ b/src/dodrio_berry_picking.c @@ -12,7 +12,7 @@ #include "m4a.h" #include "main.h" #include "palette.h" -#include "pokemon_jump.h" +#include "minigame_countdown.h" #include "random.h" #include "save.h" #include "script.h" @@ -667,7 +667,7 @@ static void sub_8024E38(void) switch (gUnknown_02022C98->unk10) { case 0: - sub_802EB24(7, 8, 120, 80, 0); + StartMinigameCountdown(7, 8, 120, 80, 0); gUnknown_02022C98->unk10++; break; case 1: @@ -682,7 +682,7 @@ static void sub_8024E38(void) } break; case 3: - if (!sub_802EB84()) + if (!IsMinigameCountdownRunning()) { gUnknown_02022C98->unk10++; } diff --git a/src/event_object_movement.c b/src/event_object_movement.c index 464e6acecd..09cdd94cd3 100644 --- a/src/event_object_movement.c +++ b/src/event_object_movement.c @@ -1754,7 +1754,7 @@ static void SetPlayerAvatarObjectEventIdAndObjectId(u8 objectEventId, u8 spriteI gPlayerAvatar.objectEventId = objectEventId; gPlayerAvatar.spriteId = spriteId; gPlayerAvatar.gender = GetPlayerAvatarGenderByGraphicsId(gObjectEvents[objectEventId].graphicsId); - SetPlayerAvatarExtraStateTransition(gObjectEvents[objectEventId].graphicsId, 0x20); + SetPlayerAvatarExtraStateTransition(gObjectEvents[objectEventId].graphicsId, PLAYER_AVATAR_FLAG_5); } void ObjectEventSetGraphicsId(struct ObjectEvent *objectEvent, u8 graphicsId) diff --git a/src/field_player_avatar.c b/src/field_player_avatar.c index ebab51ed83..6d44f4b514 100644 --- a/src/field_player_avatar.c +++ b/src/field_player_avatar.c @@ -59,8 +59,8 @@ static bool8 ForcedMovement_SlideSouth(void); static bool8 ForcedMovement_SlideNorth(void); static bool8 ForcedMovement_SlideWest(void); static bool8 ForcedMovement_SlideEast(void); -static bool8 ForcedMovement_0xBB(void); -static bool8 ForcedMovement_0xBC(void); +static bool8 ForcedMovement_MatJump(void); +static bool8 ForcedMovement_MatSpin(void); static bool8 ForcedMovement_MuddySlope(void); static void MovePlayerNotOnBike(u8, u16); @@ -99,10 +99,10 @@ static void PlayCollisionSoundIfNotFacingWarp(u8 a); static void sub_808C280(struct ObjectEvent *); static void StartStrengthAnim(u8, u8); -static void Task_BumpBoulder(u8 taskId); -static u8 sub_808C3A4(struct Task *task, struct ObjectEvent *playerObject, struct ObjectEvent *strengthObject); -static u8 do_boulder_dust(struct Task *task, struct ObjectEvent *playerObject, struct ObjectEvent *strengthObject); -static u8 sub_808C484(struct Task *task, struct ObjectEvent *playerObject, struct ObjectEvent *strengthObject); +static void Task_PushBoulder(u8 taskId); +static u8 PushBoulder_Start(struct Task *task, struct ObjectEvent *playerObject, struct ObjectEvent *strengthObject); +static u8 PushBoulder_Move(struct Task *task, struct ObjectEvent *playerObject, struct ObjectEvent *strengthObject); +static u8 PushBoulder_End(struct Task *task, struct ObjectEvent *playerObject, struct ObjectEvent *strengthObject); static void DoPlayerMatJump(void); static void DoPlayerAvatarSecretBaseMatJump(u8 taskId); @@ -182,8 +182,8 @@ static bool8 (*const sForcedMovementFuncs[])(void) = ForcedMovement_SlideWest, ForcedMovement_SlideEast, ForcedMovement_PushedSouthByCurrent, - ForcedMovement_0xBB, - ForcedMovement_0xBC, + ForcedMovement_MatJump, + ForcedMovement_MatSpin, ForcedMovement_MuddySlope, }; @@ -211,16 +211,16 @@ static const u8 sAcroBikeTrickCollisionTypes[] = { COLLISION_HORIZONTAL_RAIL, }; -static void (*const gUnknown_084974B8[])(struct ObjectEvent *) = +static void (*const sPlayerAvatarTransitionFuncs[])(struct ObjectEvent *) = { - PlayerAvatarTransition_Normal, - PlayerAvatarTransition_MachBike, - PlayerAvatarTransition_AcroBike, - PlayerAvatarTransition_Surfing, - PlayerAvatarTransition_Underwater, - PlayerAvatarTransition_ReturnToField, - PlayerAvatarTransition_Dummy, - PlayerAvatarTransition_Dummy, + [PLAYER_AVATAR_STATE_NORMAL] = PlayerAvatarTransition_Normal, + [PLAYER_AVATAR_STATE_MACH_BIKE] = PlayerAvatarTransition_MachBike, + [PLAYER_AVATAR_STATE_ACRO_BIKE] = PlayerAvatarTransition_AcroBike, + [PLAYER_AVATAR_STATE_SURFING] = PlayerAvatarTransition_Surfing, + [PLAYER_AVATAR_STATE_UNDERWATER] = PlayerAvatarTransition_Underwater, + [PLAYER_AVATAR_STATE_FIELD_MOVE] = PlayerAvatarTransition_ReturnToField, + [PLAYER_AVATAR_STATE_FISHING] = PlayerAvatarTransition_Dummy, + [PLAYER_AVATAR_STATE_WATERING] = PlayerAvatarTransition_Dummy, }; static bool8 (*const sArrowWarpMetatileBehaviorChecks[])(u8) = @@ -259,23 +259,23 @@ static const u8 sFRLGAvatarGfxIds[] = {OBJ_EVENT_GFX_RED, OBJ_EVENT_GFX_LEAF}; static const u8 sRSAvatarGfxIds[] = {OBJ_EVENT_GFX_LINK_RS_BRENDAN, OBJ_EVENT_GFX_LINK_RS_MAY}; -static const u8 gUnknown_0849750C[2][5][2] = +static const u8 sPlayerAvatarGfxToStateFlag[2][5][2] = { - //male + [MALE] = { - {OBJ_EVENT_GFX_BRENDAN_NORMAL, 1}, - {OBJ_EVENT_GFX_BRENDAN_MACH_BIKE, 2}, - {OBJ_EVENT_GFX_BRENDAN_ACRO_BIKE, 4}, - {OBJ_EVENT_GFX_BRENDAN_SURFING, 8}, - {OBJ_EVENT_GFX_BRENDAN_UNDERWATER, 16}, + {OBJ_EVENT_GFX_BRENDAN_NORMAL, PLAYER_AVATAR_FLAG_ON_FOOT}, + {OBJ_EVENT_GFX_BRENDAN_MACH_BIKE, PLAYER_AVATAR_FLAG_MACH_BIKE}, + {OBJ_EVENT_GFX_BRENDAN_ACRO_BIKE, PLAYER_AVATAR_FLAG_ACRO_BIKE}, + {OBJ_EVENT_GFX_BRENDAN_SURFING, PLAYER_AVATAR_FLAG_SURFING}, + {OBJ_EVENT_GFX_BRENDAN_UNDERWATER, PLAYER_AVATAR_FLAG_UNDERWATER}, }, - //female + [FEMALE] = { - {OBJ_EVENT_GFX_MAY_NORMAL, 1}, - {OBJ_EVENT_GFX_MAY_MACH_BIKE, 2}, - {OBJ_EVENT_GFX_MAY_ACRO_BIKE, 4}, - {OBJ_EVENT_GFX_MAY_SURFING, 8}, - {OBJ_EVENT_GFX_MAY_UNDERWATER, 16}, + {OBJ_EVENT_GFX_MAY_NORMAL, PLAYER_AVATAR_FLAG_ON_FOOT}, + {OBJ_EVENT_GFX_MAY_MACH_BIKE, PLAYER_AVATAR_FLAG_MACH_BIKE}, + {OBJ_EVENT_GFX_MAY_ACRO_BIKE, PLAYER_AVATAR_FLAG_ACRO_BIKE}, + {OBJ_EVENT_GFX_MAY_SURFING, PLAYER_AVATAR_FLAG_SURFING}, + {OBJ_EVENT_GFX_MAY_UNDERWATER, PLAYER_AVATAR_FLAG_UNDERWATER}, } }; @@ -287,11 +287,11 @@ static bool8 (*const sArrowWarpMetatileBehaviorChecks2[])(u8) = //Duplicate of MetatileBehavior_IsEastArrowWarp, }; -static bool8 (*const gUnknown_08497530[])(struct Task *, struct ObjectEvent *, struct ObjectEvent *) = +static bool8 (*const sPushBoulderFuncs[])(struct Task *, struct ObjectEvent *, struct ObjectEvent *) = { - sub_808C3A4, - do_boulder_dust, - sub_808C484, + PushBoulder_Start, + PushBoulder_Move, + PushBoulder_End, }; static bool8 (*const sPlayerAvatarSecretBaseMatJump[])(struct Task *, struct ObjectEvent *) = @@ -547,13 +547,13 @@ static bool8 ForcedMovement_SlideEast(void) return ForcedMovement_Slide(DIR_EAST, PlayerGoSpeed2); } -static bool8 ForcedMovement_0xBB(void) +static bool8 ForcedMovement_MatJump(void) { DoPlayerMatJump(); return TRUE; } -static bool8 ForcedMovement_0xBC(void) +static bool8 ForcedMovement_MatSpin(void) { DoPlayerMatSpin(); return TRUE; @@ -807,23 +807,23 @@ bool8 IsPlayerCollidingWithFarawayIslandMew(u8 direction) void SetPlayerAvatarTransitionFlags(u16 transitionFlags) { - gPlayerAvatar.unk1 |= transitionFlags; + gPlayerAvatar.transitionFlags |= transitionFlags; DoPlayerAvatarTransition(); } static void DoPlayerAvatarTransition(void) { u8 i; - u8 flags = gPlayerAvatar.unk1; + u8 flags = gPlayerAvatar.transitionFlags; if (flags != 0) { - for (i = 0; i < 8; i++, flags >>= 1) + for (i = 0; i < ARRAY_COUNT(sPlayerAvatarTransitionFuncs); i++, flags >>= 1) { if (flags & 1) - gUnknown_084974B8[i](&gObjectEvents[gPlayerAvatar.objectEventId]); + sPlayerAvatarTransitionFuncs[i](&gObjectEvents[gPlayerAvatar.objectEventId]); } - gPlayerAvatar.unk1 = 0; + gPlayerAvatar.transitionFlags = 0; } } @@ -1079,23 +1079,23 @@ void PlayerAcroTurnJump(u8 direction) PlayerSetAnimId(GetJumpInPlaceTurnAroundMovementAction(direction), 1); } -void sub_808B980(u8 direction) +void PlayerWheelieInPlace(u8 direction) { PlaySE(SE_WALL_HIT); PlayerSetAnimId(GetAcroWheelieInPlaceDirectionMovementAction(direction), 2); } -void sub_808B9A4(u8 direction) +void PlayerPopWheelieWhileMoving(u8 direction) { PlayerSetAnimId(GetAcroPopWheelieMoveDirectionMovementAction(direction), 2); } -void sub_808B9BC(u8 direction) +void PlayerWheelieMove(u8 direction) { PlayerSetAnimId(GetAcroWheelieMoveDirectionMovementAction(direction), 2); } -void sub_808B9D4(u8 direction) +void PlayerEndWheelieWhileMoving(u8 direction) { PlayerSetAnimId(GetAcroEndWheelieMoveDirectionMovementAction(direction), 2); } @@ -1186,12 +1186,12 @@ void sub_808BC90(s16 x, s16 y) MoveObjectEventToMapCoords(&gObjectEvents[gPlayerAvatar.objectEventId], x, y); } -u8 TestPlayerAvatarFlags(u8 a) +u8 TestPlayerAvatarFlags(u8 flag) { - return gPlayerAvatar.flags & a; + return gPlayerAvatar.flags & flag; } -u8 sub_808BCD0(void) +u8 GetPlayerAvatarFlags(void) { return gPlayerAvatar.flags; } @@ -1335,32 +1335,32 @@ static u8 GetPlayerAvatarStateTransitionByGraphicsId(u8 graphicsId, u8 gender) { u8 i; - for (i = 0; i < 5; i++) + for (i = 0; i < ARRAY_COUNT(sPlayerAvatarGfxToStateFlag[0]); i++) { - if (gUnknown_0849750C[gender][i][0] == graphicsId) - return gUnknown_0849750C[gender][i][1]; + if (sPlayerAvatarGfxToStateFlag[gender][i][0] == graphicsId) + return sPlayerAvatarGfxToStateFlag[gender][i][1]; } - return 1; + return PLAYER_AVATAR_FLAG_ON_FOOT; } u8 GetPlayerAvatarGraphicsIdByCurrentState(void) { u8 i; - u8 r5 = gPlayerAvatar.flags; + u8 flags = gPlayerAvatar.flags; - for (i = 0; i < 5; i++) + for (i = 0; i < ARRAY_COUNT(sPlayerAvatarGfxToStateFlag[0]); i++) { - if (gUnknown_0849750C[gPlayerAvatar.gender][i][1] & r5) - return gUnknown_0849750C[gPlayerAvatar.gender][i][0]; + if (sPlayerAvatarGfxToStateFlag[gPlayerAvatar.gender][i][1] & flags) + return sPlayerAvatarGfxToStateFlag[gPlayerAvatar.gender][i][0]; } return 0; } -void SetPlayerAvatarExtraStateTransition(u8 graphicsId, u8 b) +void SetPlayerAvatarExtraStateTransition(u8 graphicsId, u8 transitionFlag) { - u8 unk = GetPlayerAvatarStateTransitionByGraphicsId(graphicsId, gPlayerAvatar.gender); + u8 stateFlag = GetPlayerAvatarStateTransitionByGraphicsId(graphicsId, gPlayerAvatar.gender); - gPlayerAvatar.unk1 |= unk | b; + gPlayerAvatar.transitionFlags |= stateFlag | transitionFlag; DoPlayerAvatarTransition(); } @@ -1384,7 +1384,7 @@ void InitPlayerAvatar(s16 x, s16 y, u8 direction, u8 gender) playerObjEventTemplate.flagId = 0; objectEventId = SpawnSpecialObjectEvent(&playerObjEventTemplate); objectEvent = &gObjectEvents[objectEventId]; - objectEvent->isPlayer = 1; + objectEvent->isPlayer = TRUE; objectEvent->warpArrowSpriteId = CreateWarpArrowSprite(); ObjectEventTurn(objectEvent, direction); ClearPlayerAvatarInfo(); @@ -1415,7 +1415,7 @@ void sub_808C15C(u8 direction) StartSpriteAnim(&gSprites[gPlayerAvatar.spriteId], GetFishingDirectionAnimNum(direction)); } -void sub_808C1B4(u8 direction) +void PlayerUseAcroBikeOnBumpySlope(u8 direction) { ObjectEventSetGraphicsId(&gObjectEvents[gPlayerAvatar.objectEventId], GetPlayerAvatarGraphicsIdByStateId(PLAYER_AVATAR_STATE_ACRO_BIKE)); StartSpriteAnim(&gSprites[gPlayerAvatar.spriteId], GetAcroWheelieDirectionAnimNum(direction)); @@ -1453,22 +1453,22 @@ static void sub_808C280(struct ObjectEvent *objectEvent) static void StartStrengthAnim(u8 a, u8 b) { - u8 taskId = CreateTask(Task_BumpBoulder, 0xFF); + u8 taskId = CreateTask(Task_PushBoulder, 0xFF); gTasks[taskId].data[1] = a; gTasks[taskId].data[2] = b; - Task_BumpBoulder(taskId); + Task_PushBoulder(taskId); } -static void Task_BumpBoulder(u8 taskId) +static void Task_PushBoulder(u8 taskId) { - while (gUnknown_08497530[gTasks[taskId].data[0]](&gTasks[taskId], + while (sPushBoulderFuncs[gTasks[taskId].data[0]](&gTasks[taskId], &gObjectEvents[gPlayerAvatar.objectEventId], &gObjectEvents[gTasks[taskId].data[1]])) ; } -static bool8 sub_808C3A4(struct Task *task, struct ObjectEvent *playerObject, struct ObjectEvent *strengthObject) +static bool8 PushBoulder_Start(struct Task *task, struct ObjectEvent *playerObject, struct ObjectEvent *strengthObject) { ScriptContext2_Enable(); gPlayerAvatar.preventStep = TRUE; @@ -1476,7 +1476,7 @@ static bool8 sub_808C3A4(struct Task *task, struct ObjectEvent *playerObject, st return FALSE; } -static bool8 do_boulder_dust(struct Task *task, struct ObjectEvent *playerObject, struct ObjectEvent *strengthObject) +static bool8 PushBoulder_Move(struct Task *task, struct ObjectEvent *playerObject, struct ObjectEvent *strengthObject) { if (ObjectEventIsHeldMovementActive(playerObject)) { @@ -1506,7 +1506,7 @@ static bool8 do_boulder_dust(struct Task *task, struct ObjectEvent *playerObject return FALSE; } -static bool8 sub_808C484(struct Task *task, struct ObjectEvent *playerObject, struct ObjectEvent *strengthObject) +static bool8 PushBoulder_End(struct Task *task, struct ObjectEvent *playerObject, struct ObjectEvent *strengthObject) { if (ObjectEventCheckHeldMovementStatus(playerObject) && ObjectEventCheckHeldMovementStatus(strengthObject)) @@ -1515,7 +1515,7 @@ static bool8 sub_808C484(struct Task *task, struct ObjectEvent *playerObject, st ObjectEventClearHeldMovementIfFinished(strengthObject); gPlayerAvatar.preventStep = FALSE; ScriptContext2_Disable(); - DestroyTask(FindTaskIdByFunc(Task_BumpBoulder)); + DestroyTask(FindTaskIdByFunc(Task_PushBoulder)); } return FALSE; } @@ -1545,7 +1545,7 @@ static u8 PlayerAvatar_DoSecretBaseMatJump(struct Task *task, struct ObjectEvent if (task->data[1] > 1) { gPlayerAvatar.preventStep = FALSE; - gPlayerAvatar.unk1 |= 0x20; + gPlayerAvatar.transitionFlags |= PLAYER_AVATAR_FLAG_5; DestroyTask(FindTaskIdByFunc(DoPlayerAvatarSecretBaseMatJump)); } } diff --git a/src/fldeff_misc.c b/src/fldeff_misc.c index 60d1ea0724..9574ac5634 100644 --- a/src/fldeff_misc.c +++ b/src/fldeff_misc.c @@ -948,7 +948,7 @@ static void Task_SecretBaseMusicNoteMatSound(u8 taskId) { switch (gTasks[taskId].tMetatileID) { - case METATILE_SecretBase_NoteMat_C: + case METATILE_SecretBase_NoteMat_C_Low: PlaySE(SE_TOY_C); break; case METATILE_SecretBase_NoteMat_D: @@ -969,7 +969,7 @@ static void Task_SecretBaseMusicNoteMatSound(u8 taskId) case METATILE_SecretBase_NoteMat_B: PlaySE(SE_TOY_B); break; - case METATILE_SecretBase_NoteMat_C_Sharp: + case METATILE_SecretBase_NoteMat_C_High: PlaySE(SE_TOY_C1); break; } @@ -1260,7 +1260,7 @@ static void Task_WateringBerryTreeAnim_2(u8 taskId) static void Task_WateringBerryTreeAnim_3(u8 taskId) { - SetPlayerAvatarTransitionFlags(sub_808BCD0()); + SetPlayerAvatarTransitionFlags(GetPlayerAvatarFlags()); DestroyTask(taskId); EnableBothScriptContexts(); } diff --git a/src/frontier_util.c b/src/frontier_util.c index f46c603917..668771375d 100644 --- a/src/frontier_util.c +++ b/src/frontier_util.c @@ -94,7 +94,7 @@ static const u8 sFrontierBrainStreakAppearances[NUM_FRONTIER_FACILITIES][4] = [FRONTIER_FACILITY_PYRAMID] = {21, 70, 35, 0}, }; -static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] = +static const struct FrontierBrainMon sFrontierBrainsMons[][2][FRONTIER_PARTY_SIZE] = { [FRONTIER_FACILITY_TOWER] = { @@ -1778,9 +1778,9 @@ void ResetWinStreaks(void) s32 battleMode, lvlMode; gSaveBlock2Ptr->frontier.winStreakActiveFlags = 0; - for (battleMode = 0; battleMode < 4; battleMode++) + for (battleMode = 0; battleMode < FRONTIER_MODE_COUNT; battleMode++) { - for (lvlMode = 0; lvlMode < 2; lvlMode++) + for (lvlMode = 0; lvlMode < FRONTIER_LVL_TENT; lvlMode++) { gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][lvlMode] = 0; if (battleMode < FRONTIER_MODE_MULTIS) diff --git a/src/hall_of_fame.c b/src/hall_of_fame.c index 065d25582c..05e4ed0aaf 100644 --- a/src/hall_of_fame.c +++ b/src/hall_of_fame.c @@ -155,7 +155,7 @@ static const struct CompressedSpritePalette sHallOfFame_ConfettiSpritePalette[] {}, }; -static const s16 sHallOfFame_MonFullTeamPositions[6][4] = +static const s16 sHallOfFame_MonFullTeamPositions[PARTY_SIZE][4] = { {120, 210, 120, 40}, {326, 220, 56, 40}, @@ -165,7 +165,7 @@ static const s16 sHallOfFame_MonFullTeamPositions[6][4] = {310, -92, 40, 88} }; -static const s16 sHallOfFame_MonHalfTeamPositions[3][4] = +static const s16 sHallOfFame_MonHalfTeamPositions[PARTY_SIZE / 2][4] = { {120, 234, 120, 64}, {326, 244, 56, 64}, @@ -544,7 +544,7 @@ static void Task_Hof_DisplayMon(u8 taskId) u16 currMonId = gTasks[taskId].tDisplayedMonId; struct HallofFameMon* currMon = &sHofMonPtr->mon[currMonId]; - if (gTasks[taskId].tMonNumber > 3) + if (gTasks[taskId].tMonNumber > PARTY_SIZE / 2) { xPos = sHallOfFame_MonFullTeamPositions[currMonId][0]; yPos = sHallOfFame_MonFullTeamPositions[currMonId][1]; @@ -893,7 +893,7 @@ static void Task_HofPC_DrawSpritesPrintText(u8 taskId) u16 spriteId; s16 posX, posY; - if (gTasks[taskId].tMonNo > 3) + if (gTasks[taskId].tMonNo > PARTY_SIZE / 2) { posX = sHallOfFame_MonFullTeamPositions[i][2]; posY = sHallOfFame_MonFullTeamPositions[i][3]; diff --git a/src/item_use.c b/src/item_use.c index 954d4b26fa..73d6f6ffe2 100755 --- a/src/item_use.c +++ b/src/item_use.c @@ -221,9 +221,9 @@ void ItemUseOutOfBattle_Bike(u8 taskId) static void ItemUseOnFieldCB_Bike(u8 taskId) { if (!ItemId_GetSecondaryId(gSpecialVar_ItemId)) - GetOnOffBike(2); + GetOnOffBike(PLAYER_AVATAR_FLAG_MACH_BIKE); else - GetOnOffBike(4); + GetOnOffBike(PLAYER_AVATAR_FLAG_ACRO_BIKE); ScriptUnfreezeObjectEvents(); ScriptContext2_Disable(); DestroyTask(taskId); diff --git a/src/minigame_countdown.c b/src/minigame_countdown.c new file mode 100644 index 0000000000..be1c42e29c --- /dev/null +++ b/src/minigame_countdown.c @@ -0,0 +1,636 @@ +#include "global.h" +#include "decompress.h" +#include "link.h" +#include "link_rfu.h" +#include "sound.h" +#include "task.h" +#include "trig.h" +#include "constants/songs.h" + +extern const struct OamData gOamData_AffineOff_ObjNormal_32x32; + +static void sub_802E6D0(u8 taskId); +static void sub_802E83C(u8 taskId); +static void sub_802E8C8(u8 taskId); +static void sub_802EA50(u8 taskId); +static void sub_802EAB0(u8 taskId); +static void sub_802EB98(u8 taskId); +static void Task_MinigameCountdown(u8 taskId); +static bool32 RunMinigameCountdownDigitsAnim(u8 spriteId); +static bool32 IsStartGraphicAnimRunning(u8 spriteId); +static void Load321StartGfx(u16 tileTag, u16 palTag); +static u8 CreateNumberSprite(u16 tileTag, u16 palTag, s16 x, s16 y, u8 subpriority); +static void CreateStartSprite(u16 tileTag, u16 palTag, s16 x, s16 y, u8 subpriority, s16 *spriteId1, s16 *spriteId2); +static void InitStartGraphic(u8 spriteId1, u8 spriteId2, u8 spriteId3); +static void SpriteCB_Start(struct Sprite *sprite); + +static const u16 sSpritePal_321Start_2[] = INCBIN_U16("graphics/link_games/321start_2.gbapal"); +static const u32 sSpriteSheet_321Start_2[] = INCBIN_U32("graphics/link_games/321start_2.4bpp.lz"); + +static const struct CompressedSpriteSheet gUnknown_082FE6C8[] = +{ + {sSpriteSheet_321Start_2, 0xC00, 0x2000}, + {}, +}; + +static const struct SpritePalette gUnknown_082FE6D8[] = +{ + {sSpritePal_321Start_2, 0x2000}, + {}, +}; + +static const union AnimCmd sSpriteAnim_82FE6E8[] = +{ + ANIMCMD_FRAME(0, 0), + ANIMCMD_END +}; + +static const union AnimCmd sSpriteAnim_82FE6F0[] = +{ + ANIMCMD_FRAME(16, 0), + ANIMCMD_END +}; + +static const union AnimCmd sSpriteAnim_82FE6F8[] = +{ + ANIMCMD_FRAME(32, 0), + ANIMCMD_END +}; + +static const union AnimCmd sSpriteAnim_82FE700[] = +{ + ANIMCMD_FRAME(64, 0), + ANIMCMD_END +}; + +static const union AnimCmd sSpriteAnim_82FE708[] = +{ + ANIMCMD_FRAME(48, 0), + ANIMCMD_END +}; + +static const union AnimCmd sSpriteAnim_82FE710[] = +{ + ANIMCMD_FRAME(80, 0), + ANIMCMD_END +}; + +static const union AnimCmd *const sSpriteAnimTable_82FE718[] = +{ + sSpriteAnim_82FE6E8, + sSpriteAnim_82FE6F0, + sSpriteAnim_82FE6F8, + sSpriteAnim_82FE700, + sSpriteAnim_82FE708, + sSpriteAnim_82FE710 +}; + +static const struct SpriteTemplate gUnknown_082FE730[] = +{ + { + .tileTag = 0x2000, + .paletteTag = 0x2000, + .oam = &gOamData_AffineOff_ObjNormal_32x32, + .anims = sSpriteAnimTable_82FE718, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy, + }, +}; + +static const TaskFunc gUnknown_082FE748[][4] = +{ + { + sub_802E83C, + sub_802E8C8, + sub_802EA50, + sub_802EAB0 + }, +}; + +static const u16 sSpritePal_321Start[] = INCBIN_U16("graphics/link_games/321start.gbapal"); +static const u32 sSpriteSheet_321Start[] = INCBIN_U32("graphics/link_games/321start.4bpp.lz"); + +// Unused +static u32 sub_802E63C(u8 funcSetId, u8 taskPriority) +{ + u8 taskId = CreateTask(sub_802E6D0, taskPriority); + struct Task *task = &gTasks[taskId]; + + task->data[0] = 1; + task->data[1] = funcSetId; + gUnknown_082FE748[funcSetId][0](taskId); + return taskId; +} + +static bool32 sub_802E688(void) +{ + u8 taskId = FindTaskIdByFunc(sub_802E6D0); + if (taskId == 0xFF) + return FALSE; + + gTasks[taskId].data[0] = 2; + return TRUE; +} + +static bool32 sub_802E6BC(void) +{ + return FuncIsActiveTask(sub_802E6D0); +} + +static void sub_802E6D0(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + + switch (data[0]) + { + case 2: + gUnknown_082FE748[data[1]][2](taskId); + data[0] = 3; + break; + case 3: + gUnknown_082FE748[data[1]][3](taskId); + break; + case 4: + gUnknown_082FE748[data[1]][1](taskId); + DestroyTask(taskId); + break; + } +} + +static void sub_802E75C(u8 taskId, s16 *data) +{ + u8 i; + struct Sprite *sprite; + + LoadCompressedSpriteSheet(&gUnknown_082FE6C8[data[3]]); + LoadSpritePalette(&gUnknown_082FE6D8[data[4]]); + for (i = 0; i < data[8]; i++) + data[13 + i] = CreateSprite(&gUnknown_082FE730[data[2]], data[9], data[10], data[7]); + for (i = 0; i < data[8]; i++) + { + sprite = &gSprites[data[13 + i]]; + sprite->oam.priority = data[6]; + sprite->invisible = TRUE; + sprite->data[1] = data[5]; + sprite->data[3] = taskId; + sprite->data[4] = i; + sprite->data[5] = data[13]; + } +} + +static void sub_802E83C(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + data[2] = 0; + data[3] = 0; + data[4] = 0; + data[5] = 60; + data[6] = 0; + data[7] = 0; + data[8] = 3; + data[9] = 120; + data[10] = 88; + sub_802E75C(taskId, data); + + StartSpriteAnim(&gSprites[data[14]], 4); + gSprites[data[14]].pos2.x = -32; + + StartSpriteAnim(&gSprites[data[15]], 5); + gSprites[data[15]].pos2.x = 32; +} + +static void sub_802E8C8(u8 taskId) +{ + u8 i = 0; + s16 *data = gTasks[taskId].data; + + for (i = 0; i < data[8]; i++) + DestroySprite(&gSprites[data[13 + i]]); + FreeSpriteTilesByTag(gUnknown_082FE6C8[data[3]].tag); + FreeSpritePaletteByTag(gUnknown_082FE6D8[data[4]].tag); +} + +static void sub_802E938(struct Sprite *sprite) +{ + s16 *data = gTasks[sprite->data[3]].data; + + if (data[11] % data[5] != 0) + return; + if (data[11] == data[10]) + return; + + data[10] = data[11]; + switch (sprite->data[2]) + { + case 0: + sprite->invisible = FALSE; + case 1: + case 2: + PlaySE(SE_KON); + StartSpriteAnim(sprite, sprite->data[2]); + break; + case 3: + PlaySE(SE_PIN); + StartSpriteAnim(sprite, sprite->data[2]); + gSprites[data[14]].invisible = FALSE; + gSprites[data[15]].invisible = FALSE; + break; + case 4: + sprite->invisible = TRUE; + gSprites[data[14]].invisible = TRUE; + gSprites[data[15]].invisible = TRUE; + data[0] = 4; + return; + } + sprite->data[2]++; +} + +static void sub_802EA50(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + PlaySE(SE_KON); + gSprites[data[13]].callback = sub_802E938; + gSprites[data[13]].invisible = FALSE; + gTasks[taskId].data[0] = 3; +} + +static void sub_802EAB0(u8 taskId) +{ + u16 packet[6]; + s16 *data = gTasks[taskId].data; + + if (gReceivedRemoteLinkPlayers != 0) + { + if (gRecvCmds[0][1] == 0x7FFF) + data[11] = gRecvCmds[0][2]; + if (GetMultiplayerId() == 0) + { + data[12]++; + memset(packet, 0, sizeof(packet)); + packet[0] = 0x7FFF; + packet[1] = data[12]; + sub_800FE50(packet); + } + } + else + { + data[11]++; + } +} + +#define tState data[0] +#define tTilesTag data[2] +#define tPalTag data[3] +#define tX data[4] +#define tY data[5] +#define tSubpriority data[6] +#define tSpriteId1 data[7] +#define tSpriteId2 data[8] +#define tSpriteId3 data[9] + +void StartMinigameCountdown(s16 tilesTag, s16 palTag, s16 x, s16 y, u8 subpriority) +{ + u8 taskId = CreateTask(Task_MinigameCountdown, 80); + gTasks[taskId].tTilesTag = tilesTag; + gTasks[taskId].tPalTag = palTag; + gTasks[taskId].tX = x; + gTasks[taskId].tY = y; + gTasks[taskId].tSubpriority = subpriority; +} + +bool32 IsMinigameCountdownRunning(void) +{ + return FuncIsActiveTask(Task_MinigameCountdown); +} + +static void Task_MinigameCountdown(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + + switch (tState) + { + case 0: + Load321StartGfx(tTilesTag, tPalTag); + tSpriteId1 = CreateNumberSprite(tTilesTag, tPalTag, tX, tY, tSubpriority); + CreateStartSprite(tTilesTag, tPalTag, tX, tY, tSubpriority, &tSpriteId2, &tSpriteId3); + tState++; + break; + case 1: + if (!RunMinigameCountdownDigitsAnim(tSpriteId1)) + { + InitStartGraphic(tSpriteId1, tSpriteId2, tSpriteId3); + FreeSpriteOamMatrix(&gSprites[tSpriteId1]); + DestroySprite(&gSprites[tSpriteId1]); + tState++; + } + break; + case 2: + if (!IsStartGraphicAnimRunning(tSpriteId2)) + { + DestroySprite(&gSprites[tSpriteId2]); + DestroySprite(&gSprites[tSpriteId3]); + FreeSpriteTilesByTag(tTilesTag); + FreeSpritePaletteByTag(tPalTag); + DestroyTask(taskId); + } + break; + } +} + +static bool32 RunMinigameCountdownDigitsAnim(u8 spriteId) +{ + struct Sprite *sprite = &gSprites[spriteId]; + + switch (sprite->data[0]) + { + case 0: + sub_8007E18(sprite, 0x800, 0x1A); + sprite->data[0]++; + // fallthrough + case 1: + if (sprite->data[2] == 0) + PlaySE(SE_KON2); + if (++sprite->data[2] >= 20) + { + sprite->data[2] = 0; + StartSpriteAffineAnim(sprite, 1); + sprite->data[0]++; + } + break; + case 2: + if (sprite->affineAnimEnded) + sprite->data[0]++; + break; + case 3: + if (++sprite->data[2] >= 4) + { + sprite->data[2] = 0; + sprite->data[0]++; + StartSpriteAffineAnim(sprite, 2); + } + break; + case 4: + sprite->pos1.y -= 4; + if (++sprite->data[2] >= 8) + { + if (sprite->data[4] <= 1) + { + StartSpriteAnim(sprite, sprite->data[4] + 1); + sprite->data[2] = 0; + sprite->data[0]++; + } + else + { + sprite->data[0] = 7; + return FALSE; + } + } + break; + case 5: + sprite->pos1.y += 4; + if (++sprite->data[2] >= 8) + { + sprite->data[2] = 0; + StartSpriteAffineAnim(sprite, 3); + sprite->data[0]++; + } + break; + case 6: + if (sprite->affineAnimEnded) + { + sprite->data[4]++; + sprite->data[0] = 1; + } + break; + case 7: + return FALSE; + } + + return TRUE; +} + +// First argument is unused. +static void InitStartGraphic(u8 spriteId1, u8 spriteId2, u8 spriteId3) +{ + gSprites[spriteId2].pos2.y = -40; + gSprites[spriteId3].pos2.y = -40; + gSprites[spriteId2].invisible = FALSE; + gSprites[spriteId3].invisible = FALSE; + gSprites[spriteId2].callback = SpriteCB_Start; + gSprites[spriteId3].callback = SpriteCB_Start; +} + +static bool32 IsStartGraphicAnimRunning(u8 spriteId) +{ + return gSprites[spriteId].callback == SpriteCB_Start; +} + +static void SpriteCB_Start(struct Sprite *sprite) +{ + int y; + s16 *data = sprite->data; + + switch (data[0]) + { + case 0: + data[4] = 64; + data[5] = sprite->pos2.y << 4; + data[0]++; + case 1: + data[5] += data[4]; + data[4]++; + sprite->pos2.y = data[5] >> 4; + if (sprite->pos2.y >= 0) + { + PlaySE(SE_KON2); + sprite->pos2.y = 0; + data[0]++; + } + break; + case 2: + data[1] += 12; + if (data[1] >= 128) + { + PlaySE(SE_KON2); + data[1] = 0; + data[0]++; + } + y = gSineTable[data[1]]; + sprite->pos2.y = -(y >> 4); + break; + case 3: + data[1] += 16; + if (data[1] >= 128) + { + PlaySE(SE_KON2); + data[1] = 0; + data[0]++; + } + sprite->pos2.y = -(gSineTable[data[1]] >> 5); + break; + case 4: + if (++data[1] > 40) + sprite->callback = SpriteCallbackDummy; + break; + } +} + +static void Load321StartGfx(u16 tileTag, u16 palTag) +{ + struct CompressedSpriteSheet spriteSheet = {sSpriteSheet_321Start, 0xE00, 0}; + struct SpritePalette spritePalette = {sSpritePal_321Start, 0}; + + spriteSheet.tag = tileTag; + spritePalette.tag = palTag; + + LoadCompressedSpriteSheet(&spriteSheet); + LoadSpritePalette(&spritePalette); +} + +static const struct OamData sOamData_Numbers = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_DOUBLE, + .objMode = ST_OAM_OBJ_NORMAL, + .mosaic = 0, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(32x32), + .x = 0, + .matrixNum = 0, + .size = SPRITE_SIZE(32x32), + .tileNum = 0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0 +}; + +static const struct OamData sOamData_Start = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_NORMAL, + .mosaic = 0, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(64x32), + .x = 0, + .matrixNum = 0, + .size = SPRITE_SIZE(64x32), + .tileNum = 0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0 +}; + +static const union AnimCmd sAnim_Numbers_Three[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END +}; + +static const union AnimCmd sAnim_Numbers_Two[] = +{ + ANIMCMD_FRAME(16, 1), + ANIMCMD_END +}; + +static const union AnimCmd sAnim_Numbers_One[] = +{ + ANIMCMD_FRAME(32, 1), + ANIMCMD_END +}; + +static const union AnimCmd *const sAnimTable_Numbers[] = +{ + sAnim_Numbers_Three, + sAnim_Numbers_Two, + sAnim_Numbers_One +}; + +static const union AnimCmd sAnim_StartLeft[] = +{ + ANIMCMD_FRAME(48, 1), + ANIMCMD_END +}; + +static const union AnimCmd sAnim_StartRight[] = +{ + ANIMCMD_FRAME(80, 1), + ANIMCMD_END +}; + +static const union AnimCmd *const sAnimTable_Start[] = +{ + sAnim_StartLeft, + sAnim_StartRight +}; + +static const union AffineAnimCmd sAffineAnim_Numbers_0[] = +{ + AFFINEANIMCMD_FRAME(256, 256, 0, 0), + AFFINEANIMCMD_END +}; + +static const union AffineAnimCmd sAffineAnim_Numbers_1[] = +{ + AFFINEANIMCMD_FRAME(256, 256, 0, 0), + AFFINEANIMCMD_FRAME(16, -16, 0, 8), + AFFINEANIMCMD_END +}; + +static const union AffineAnimCmd sAffineAnim_Numbers_2[] = +{ + AFFINEANIMCMD_FRAME(-18, 18, 0, 8), + AFFINEANIMCMD_END +}; + +static const union AffineAnimCmd sAffineAnim_Numbers_3[] = +{ + AFFINEANIMCMD_FRAME( 6, -6, 0, 8), + AFFINEANIMCMD_FRAME( -4, 4, 0, 8), + AFFINEANIMCMD_FRAME(256, 256, 0, 0), + AFFINEANIMCMD_END +}; + +static const union AffineAnimCmd *const sAffineAnimTable_Numbers[] = +{ + sAffineAnim_Numbers_0, + sAffineAnim_Numbers_1, + sAffineAnim_Numbers_2, + sAffineAnim_Numbers_3 +}; + +static u8 CreateNumberSprite(u16 tileTag, u16 palTag, s16 x, s16 y, u8 subpriority) +{ + struct SpriteTemplate spriteTemplate = + { + .oam = &sOamData_Numbers, + .anims = sAnimTable_Numbers, + .affineAnims = sAffineAnimTable_Numbers, + .callback = SpriteCallbackDummy, + }; + + spriteTemplate.tileTag = tileTag; + spriteTemplate.paletteTag = palTag; + return CreateSprite(&spriteTemplate, x, y, subpriority); +} + +static void CreateStartSprite(u16 tileTag, u16 palTag, s16 x, s16 y, u8 subpriority, s16 *spriteId1, s16 *spriteId2) +{ + struct SpriteTemplate spriteTemplate = + { + .oam = &sOamData_Start, + .anims = sAnimTable_Start, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy, + }; + + spriteTemplate.tileTag = tileTag; + spriteTemplate.paletteTag = palTag; + *spriteId1 = CreateSprite(&spriteTemplate, x - 32, y, subpriority); + *spriteId2 = CreateSprite(&spriteTemplate, x + 32, y, subpriority); + + gSprites[*spriteId1].invisible = TRUE; + gSprites[*spriteId2].invisible = TRUE; + StartSpriteAnim(&gSprites[*spriteId2], 1); +} diff --git a/src/new_game.c b/src/new_game.c index 464da64146..290c0c2bb7 100644 --- a/src/new_game.c +++ b/src/new_game.c @@ -162,7 +162,7 @@ void NewGameInitData(void) ClearSav1(); ClearMailData(); gSaveBlock2Ptr->specialSaveWarpFlags = 0; - gSaveBlock2Ptr->field_A8 = 0; + gSaveBlock2Ptr->gcnLinkFlags = 0; InitPlayerTrainerId(); PlayTimeCounter_Reset(); ClearPokedexFlags(); diff --git a/src/party_menu.c b/src/party_menu.c index 0a119f03d7..43bdc46ec2 100755 --- a/src/party_menu.c +++ b/src/party_menu.c @@ -152,7 +152,7 @@ EWRAM_DATA u8 gSelectedMonPartyId = 0; EWRAM_DATA MainCallback gPostMenuFieldCallback = NULL; static EWRAM_DATA u16 *sSlot1TilemapBuffer = 0; // for switching party slots static EWRAM_DATA u16 *sSlot2TilemapBuffer = 0; // -EWRAM_DATA u8 gSelectedOrderFromParty[4] = {0}; +EWRAM_DATA u8 gSelectedOrderFromParty[MAX_FRONTIER_PARTY_SIZE] = {0}; static EWRAM_DATA u16 sPartyMenuItemId = 0; static EWRAM_DATA u16 sUnused_0203CEFE = 0; EWRAM_DATA u8 gBattlePartyCurrentOrder[PARTY_SIZE / 2] = {0}; // bits 0-3 are the current pos of Slot 1, 4-7 are Slot 2, and so on @@ -5624,9 +5624,9 @@ static u8 GetMaxBattleEntries(void) switch (VarGet(VAR_FRONTIER_FACILITY)) { case FACILITY_MULTI_OR_EREADER: - return 3; + return MULTI_PARTY_SIZE; case FACILITY_UNION_ROOM: - return 2; + return UNION_ROOM_PARTY_SIZE; default: // Battle Frontier return gSpecialVar_0x8005; } @@ -5639,7 +5639,7 @@ static u8 GetMinBattleEntries(void) case FACILITY_MULTI_OR_EREADER: return 1; case FACILITY_UNION_ROOM: - return 2; + return UNION_ROOM_PARTY_SIZE; default: // Battle Frontier return gSpecialVar_0x8005; } @@ -6074,7 +6074,7 @@ static void Task_MultiPartnerPartySlideIn(u8 taskId) SlideMultiPartyMenuBoxSpritesOneStep(taskId); if (tXPos == 0) { - for (i = 3; i < PARTY_SIZE; i++) + for (i = MULTI_PARTY_SIZE; i < PARTY_SIZE; i++) { if (gMultiPartnerParty[i - MULTI_PARTY_SIZE].species != SPECIES_NONE) AnimateSelectedPartyIcon(sPartyMenuBoxes[i].monSpriteId, 0); diff --git a/src/pokemon.c b/src/pokemon.c index ec29af02d6..87ea2551f1 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -4394,7 +4394,7 @@ u8 CalculatePlayerPartyCount(void) { gPlayerPartyCount = 0; - while (gPlayerPartyCount < 6 + while (gPlayerPartyCount < PARTY_SIZE && GetMonData(&gPlayerParty[gPlayerPartyCount], MON_DATA_SPECIES, NULL) != SPECIES_NONE) { gPlayerPartyCount++; @@ -4407,7 +4407,7 @@ u8 CalculateEnemyPartyCount(void) { gEnemyPartyCount = 0; - while (gEnemyPartyCount < 6 + while (gEnemyPartyCount < PARTY_SIZE && GetMonData(&gEnemyParty[gEnemyPartyCount], MON_DATA_SPECIES, NULL) != SPECIES_NONE) { gEnemyPartyCount++; @@ -4494,7 +4494,7 @@ void CreateSecretBaseEnemyParty(struct SecretBase *secretBaseRecord) SetMonData(&gEnemyParty[i], MON_DATA_HELD_ITEM, &gBattleResources->secretBase->party.heldItems[i]); - for (j = 0; j < 6; j++) + for (j = 0; j < NUM_STATS; j++) SetMonData(&gEnemyParty[i], MON_DATA_HP_EV + j, &gBattleResources->secretBase->party.EVs[i]); for (j = 0; j < MAX_MON_MOVES; j++) diff --git a/src/pokemon_jump.c b/src/pokemon_jump.c index 6c76b15a6e..f2f416c35d 100755 --- a/src/pokemon_jump.c +++ b/src/pokemon_jump.c @@ -12,9 +12,10 @@ #include "link_rfu.h" #include "main.h" #include "menu.h" +#include "minigame_countdown.h" #include "palette.h" #include "random.h" -#include "rom_8034C54.h" +#include "digit_obj_util.h" #include "save.h" #include "script.h" #include "sound.h" @@ -289,21 +290,8 @@ static void sub_802D5E4(void); static void sub_802D72C(void); static void sub_802D688(void); static void Task_ShowPokemonJumpRecords(u8 taskId); -static void sub_802E6D0(u8 taskId); -static void sub_802EB98(u8 taskId); static void sub_802E500(u16 windowId, int width); static void TruncateToFirstWordOnly(u8 *str); -static void sub_802EF50(u16 tileTag, u16 palTag); -static u8 sub_802EFA8(u16 tileTag, u16 palTag, s16 x, s16 y, u8 subpriority); -static void sub_802EFFC(u16 tileTag, u16 palTag, s16 x, s16 y, u8 subpriority, s16 *spriteId1, s16 *spriteId2); -static bool32 sub_802EC98(u8 spriteId); -static bool32 sub_802EE30(u8 spriteId); -static void sub_802EDCC(u8 spriteId1, u8 spriteId2, u8 spriteId3); -static void sub_802EE5C(struct Sprite *sprite); -static void sub_802E83C(u8 taskId); -static void sub_802E8C8(u8 taskId); -static void sub_802EA50(u8 taskId); -static void sub_802EAB0(u8 taskId); EWRAM_DATA static struct PokemonJump1 *gUnknown_02022CFC = NULL; EWRAM_DATA static struct PokemonJump2 *gUnknown_02022D00 = NULL; @@ -2807,13 +2795,13 @@ static void sub_802CF50(struct PokemonJump2 *arg0, int arg1) static void sub_802D044(struct PokemonJump2 *arg0) { - sub_802EB24(9, 7, 120, 80, 0); + StartMinigameCountdown(9, 7, 120, 80, 0); sub_802CD3C(arg0); } static bool32 sub_802D068(void) { - return sub_802EB84(); + return IsMinigameCountdownRunning(); } static void sub_802D074(struct PokemonJump2 *arg0) @@ -2831,7 +2819,7 @@ static void sub_802D074(struct PokemonJump2 *arg0) static void sub_802D0AC(void) { FreeAllWindowBuffers(); - sub_8034CC8(); + DigitObjUtil_Free(); } static void sub_802D0BC(struct PokemonJump2 *arg0) @@ -3515,37 +3503,37 @@ static int sub_802DCCC(u8 flags) static void sub_802DD08(void) { - struct UnkStruct3 unkStruct; - struct UnkStruct3 *ptr = &unkStruct; // This temp variable is needed to match, don't ask me why. + struct DigitObjUtilTemplate template; + struct DigitObjUtilTemplate *ptr = &template; // This temp variable is needed to match, don't ask me why. ptr->shape = SPRITE_SHAPE(8x8); ptr->size = SPRITE_SIZE(8x8); - ptr->field_0_0 = 0; + ptr->strConvMode = 0; ptr->priority = 1; - ptr->field_1 = 5; + ptr->oamCount = 5; ptr->xDelta = 8; ptr->x = 108; ptr->y = 6; ptr->spriteSheet = (void*) &gUnknown_082FE1EC; ptr->spritePal = &gUnknown_082FE1F4; - sub_8034C54(2); - sub_8034D14(0, 0, ptr); + DigitObjUtil_Init(2); + DigitObjUtil_CreatePrinter(0, 0, ptr); - unkStruct.field_1 = 4; - unkStruct.x = 30; - unkStruct.y = 6; - sub_8034D14(1, 0, &unkStruct); + template.oamCount = 4; + template.x = 30; + template.y = 6; + DigitObjUtil_CreatePrinter(1, 0, &template); } static void sub_802DD64(int arg0) { - sub_8035044(0, arg0); + DigitObjUtil_PrintNumOn(0, arg0); } static void sub_802DD74(u16 arg0) { - sub_8035044(1, arg0); + DigitObjUtil_PrintNumOn(1, arg0); } static void sub_802DD88(u8 multiplayerId) @@ -3987,611 +3975,3 @@ static void TruncateToFirstWordOnly(u8 *str) } } } - -static const u16 gPkmnJump321StartPal1[] = INCBIN_U16("graphics/link_games/pkmnjump_321start1.gbapal"); -static const u32 gPkmnJump321StartGfx1[] = INCBIN_U32("graphics/link_games/pkmnjump_321start1.4bpp.lz"); - -static const struct CompressedSpriteSheet gUnknown_082FE6C8[] = -{ - {gPkmnJump321StartGfx1, 0xC00, 0x2000}, - {}, -}; - -static const struct SpritePalette gUnknown_082FE6D8[] = -{ - {gPkmnJump321StartPal1, 0x2000}, - {}, -}; - -static const union AnimCmd sSpriteAnim_82FE6E8[] = -{ - ANIMCMD_FRAME(0, 0), - ANIMCMD_END -}; - -static const union AnimCmd sSpriteAnim_82FE6F0[] = -{ - ANIMCMD_FRAME(16, 0), - ANIMCMD_END -}; - -static const union AnimCmd sSpriteAnim_82FE6F8[] = -{ - ANIMCMD_FRAME(32, 0), - ANIMCMD_END -}; - -static const union AnimCmd sSpriteAnim_82FE700[] = -{ - ANIMCMD_FRAME(64, 0), - ANIMCMD_END -}; - -static const union AnimCmd sSpriteAnim_82FE708[] = -{ - ANIMCMD_FRAME(48, 0), - ANIMCMD_END -}; - -static const union AnimCmd sSpriteAnim_82FE710[] = -{ - ANIMCMD_FRAME(80, 0), - ANIMCMD_END -}; - -static const union AnimCmd *const sSpriteAnimTable_82FE718[] = -{ - sSpriteAnim_82FE6E8, - sSpriteAnim_82FE6F0, - sSpriteAnim_82FE6F8, - sSpriteAnim_82FE700, - sSpriteAnim_82FE708, - sSpriteAnim_82FE710 -}; - -static const struct SpriteTemplate gUnknown_082FE730[] = -{ - { - .tileTag = 0x2000, - .paletteTag = 0x2000, - .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = sSpriteAnimTable_82FE718, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = SpriteCallbackDummy, - }, -}; - -static const TaskFunc gUnknown_082FE748[][4] = -{ - { - sub_802E83C, - sub_802E8C8, - sub_802EA50, - sub_802EAB0 - }, -}; - -// There's only set of task functions. -static u32 sub_802E63C(u8 funcSetId, u8 taskPriority) -{ - u8 taskId = CreateTask(sub_802E6D0, taskPriority); - struct Task *task = &gTasks[taskId]; - - task->data[0] = 1; - task->data[1] = funcSetId; - gUnknown_082FE748[funcSetId][0](taskId); - return taskId; -} - -static bool32 sub_802E688(void) -{ - u8 taskId = FindTaskIdByFunc(sub_802E6D0); - if (taskId == 0xFF) - return FALSE; - - gTasks[taskId].data[0] = 2; - return TRUE; -} - -static bool32 sub_802E6BC(void) -{ - return FuncIsActiveTask(sub_802E6D0); -} - -static void sub_802E6D0(u8 taskId) -{ - s16 *data = gTasks[taskId].data; - - switch (data[0]) - { - case 2: - gUnknown_082FE748[data[1]][2](taskId); - data[0] = 3; - break; - case 3: - gUnknown_082FE748[data[1]][3](taskId); - break; - case 4: - gUnknown_082FE748[data[1]][1](taskId); - DestroyTask(taskId); - break; - } -} - -static void sub_802E75C(u8 taskId, s16 *data) -{ - u8 i; - struct Sprite *sprite; - - LoadCompressedSpriteSheet(&gUnknown_082FE6C8[data[3]]); - LoadSpritePalette(&gUnknown_082FE6D8[data[4]]); - for (i = 0; i < data[8]; i++) - data[13 + i] = CreateSprite(&gUnknown_082FE730[data[2]], data[9], data[10], data[7]); - for (i = 0; i < data[8]; i++) - { - sprite = &gSprites[data[13 + i]]; - sprite->oam.priority = data[6]; - sprite->invisible = TRUE; - sprite->data[1] = data[5]; - sprite->data[3] = taskId; - sprite->data[4] = i; - sprite->data[5] = data[13]; - } -} - -static void sub_802E83C(u8 taskId) -{ - s16 *data = gTasks[taskId].data; - data[2] = 0; - data[3] = 0; - data[4] = 0; - data[5] = 60; - data[6] = 0; - data[7] = 0; - data[8] = 3; - data[9] = 120; - data[10] = 88; - sub_802E75C(taskId, data); - - StartSpriteAnim(&gSprites[data[14]], 4); - gSprites[data[14]].pos2.x = -32; - - StartSpriteAnim(&gSprites[data[15]], 5); - gSprites[data[15]].pos2.x = 32; -} - -static void sub_802E8C8(u8 taskId) -{ - u8 i = 0; - s16 *data = gTasks[taskId].data; - - for (i = 0; i < data[8]; i++) - DestroySprite(&gSprites[data[13 + i]]); - FreeSpriteTilesByTag(gUnknown_082FE6C8[data[3]].tag); - FreeSpritePaletteByTag(gUnknown_082FE6D8[data[4]].tag); -} - -static void sub_802E938(struct Sprite *sprite) -{ - s16 *data = gTasks[sprite->data[3]].data; - - if (data[11] % data[5] != 0) - return; - if (data[11] == data[10]) - return; - - data[10] = data[11]; - switch (sprite->data[2]) - { - case 0: - sprite->invisible = FALSE; - case 1: - case 2: - PlaySE(SE_KON); - StartSpriteAnim(sprite, sprite->data[2]); - break; - case 3: - PlaySE(SE_PIN); - StartSpriteAnim(sprite, sprite->data[2]); - gSprites[data[14]].invisible = FALSE; - gSprites[data[15]].invisible = FALSE; - break; - case 4: - sprite->invisible = TRUE; - gSprites[data[14]].invisible = TRUE; - gSprites[data[15]].invisible = TRUE; - data[0] = 4; - return; - } - sprite->data[2]++; -} - -static void sub_802EA50(u8 taskId) -{ - s16 *data = gTasks[taskId].data; - PlaySE(SE_KON); - gSprites[data[13]].callback = sub_802E938; - gSprites[data[13]].invisible = FALSE; - gTasks[taskId].data[0] = 3; -} - -static void sub_802EAB0(u8 taskId) -{ - u16 packet[6]; - s16 *data = gTasks[taskId].data; - - if (gReceivedRemoteLinkPlayers != 0) - { - if (gRecvCmds[0][1] == 0x7FFF) - data[11] = gRecvCmds[0][2]; - if (GetMultiplayerId() == 0) - { - data[12]++; - memset(packet, 0, sizeof(packet)); - packet[0] = 0x7FFF; - packet[1] = data[12]; - sub_800FE50(packet); - } - } - else - { - data[11]++; - } -} - -void sub_802EB24(s16 tileTag, s16 palTag, s16 x, s16 y, u8 subpriority) -{ - u8 taskId = CreateTask(sub_802EB98, 0x50); - gTasks[taskId].data[2] = tileTag; - gTasks[taskId].data[3] = palTag; - gTasks[taskId].data[4] = x; - gTasks[taskId].data[5] = y; - gTasks[taskId].data[6] = subpriority; -} - -bool32 sub_802EB84(void) -{ - return FuncIsActiveTask(sub_802EB98); -} - -static void sub_802EB98(u8 taskId) -{ - s16 *data = gTasks[taskId].data; - - switch (data[0]) - { - case 0: - sub_802EF50(data[2], data[3]); - data[7] = sub_802EFA8(data[2], data[3], data[4], data[5], data[6]); - sub_802EFFC(data[2], data[3], data[4], data[5], data[6], &data[8], &data[9]); - data[0]++; - break; - case 1: - if (!sub_802EC98(data[7])) - { - sub_802EDCC(data[7], data[8], data[9]); - FreeSpriteOamMatrix(&gSprites[data[7]]); - DestroySprite(&gSprites[data[7]]); - data[0]++; - } - break; - case 2: - if (!sub_802EE30(data[8])) - { - DestroySprite(&gSprites[data[8]]); - DestroySprite(&gSprites[data[9]]); - FreeSpriteTilesByTag(data[2]); - FreeSpritePaletteByTag(data[3]); - DestroyTask(taskId); - } - break; - } -} - -static bool32 sub_802EC98(u8 spriteId) -{ - struct Sprite *sprite = &gSprites[spriteId]; - - switch (sprite->data[0]) - { - case 0: - sub_8007E18(sprite, 0x800, 0x1A); - sprite->data[0]++; - case 1: - if (sprite->data[2] == 0) - PlaySE(SE_KON2); - if (++sprite->data[2] >= 20) - { - sprite->data[2] = 0; - StartSpriteAffineAnim(sprite, 1); - sprite->data[0]++; - } - break; - case 2: - if (sprite->affineAnimEnded) - sprite->data[0]++; - break; - case 3: - if (++sprite->data[2] >= 4) - { - sprite->data[2] = 0; - sprite->data[0]++; - StartSpriteAffineAnim(sprite, 2); - } - break; - case 4: - sprite->pos1.y -= 4; - if (++sprite->data[2] >= 8) - { - if (sprite->data[4] <= 1) - { - StartSpriteAnim(sprite, sprite->data[4] + 1); - sprite->data[2] = 0; - sprite->data[0]++; - } - else - { - sprite->data[0] = 7; - return FALSE; - } - } - break; - case 5: - sprite->pos1.y += 4; - if (++sprite->data[2] >= 8) - { - sprite->data[2] = 0; - StartSpriteAffineAnim(sprite, 3); - sprite->data[0]++; - } - break; - case 6: - if (sprite->affineAnimEnded) - { - sprite->data[4]++; - sprite->data[0] = 1; - } - break; - case 7: - return FALSE; - } - - return TRUE; -} - -// First argument is unused. -static void sub_802EDCC(u8 spriteId1, u8 spriteId2, u8 spriteId3) -{ - gSprites[spriteId2].pos2.y = -40; - gSprites[spriteId3].pos2.y = -40; - gSprites[spriteId2].invisible = FALSE; - gSprites[spriteId3].invisible = FALSE; - gSprites[spriteId2].callback = sub_802EE5C; - gSprites[spriteId3].callback = sub_802EE5C; -} - -static bool32 sub_802EE30(u8 spriteId) -{ - return (gSprites[spriteId].callback == sub_802EE5C); -} - -static void sub_802EE5C(struct Sprite *sprite) -{ - int y; - s16 *data = sprite->data; - - switch (data[0]) - { - case 0: - data[4] = 64; - data[5] = sprite->pos2.y << 4; - data[0]++; - case 1: - data[5] += data[4]; - data[4]++; - sprite->pos2.y = data[5] >> 4; - if (sprite->pos2.y >= 0) - { - PlaySE(SE_KON2); - sprite->pos2.y = 0; - data[0]++; - } - break; - case 2: - data[1] += 12; - if (data[1] >= 128) - { - PlaySE(SE_KON2); - data[1] = 0; - data[0]++; - } - y = gSineTable[data[1]]; - sprite->pos2.y = -(y >> 4); - break; - case 3: - data[1] += 16; - if (data[1] >= 128) - { - PlaySE(SE_KON2); - data[1] = 0; - data[0]++; - } - sprite->pos2.y = -(gSineTable[data[1]] >> 5); - break; - case 4: - if (++data[1] > 40) - sprite->callback = SpriteCallbackDummy; - break; - } -} - -static const u16 gPkmnJump321StartPal2[] = INCBIN_U16("graphics/link_games/pkmnjump_321start2.gbapal"); -static const u32 gPkmnJump321StartGfx2[] = INCBIN_U32("graphics/link_games/pkmnjump_321start2.4bpp.lz"); - -static void sub_802EF50(u16 tileTag, u16 palTag) -{ - struct CompressedSpriteSheet sprSheet = {gPkmnJump321StartGfx2, 0xE00, 0}; - struct SpritePalette sprPal = {gPkmnJump321StartPal2, 0}; - - sprSheet.tag = tileTag; - sprPal.tag = palTag; - - LoadCompressedSpriteSheet(&sprSheet); - LoadSpritePalette(&sprPal); -} - -static const struct OamData sOamData_82FEBDC = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_DOUBLE, - .objMode = ST_OAM_OBJ_NORMAL, - .mosaic = 0, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(32x32), - .x = 0, - .matrixNum = 0, - .size = SPRITE_SIZE(32x32), - .tileNum = 0, - .priority = 0, - .paletteNum = 0, - .affineParam = 0 -}; - -static const struct OamData sOamData_82FEBE4 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_OFF, - .objMode = ST_OAM_OBJ_NORMAL, - .mosaic = 0, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(64x32), - .x = 0, - .matrixNum = 0, - .size = SPRITE_SIZE(64x32), - .tileNum = 0, - .priority = 0, - .paletteNum = 0, - .affineParam = 0 -}; - -static const union AnimCmd sSpriteAnim_82FEBEC[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END -}; - -static const union AnimCmd sSpriteAnim_82FEBF4[] = -{ - ANIMCMD_FRAME(16, 1), - ANIMCMD_END -}; - -static const union AnimCmd sSpriteAnim_82FEBFC[] = -{ - ANIMCMD_FRAME(32, 1), - ANIMCMD_END -}; - -static const union AnimCmd *const sSpriteAnimTable_82FEC04[] = -{ - sSpriteAnim_82FEBEC, - sSpriteAnim_82FEBF4, - sSpriteAnim_82FEBFC -}; - -static const union AnimCmd sSpriteAnim_82FEC10[] = -{ - ANIMCMD_FRAME(48, 1), - ANIMCMD_END -}; - -static const union AnimCmd sSpriteAnim_82FEC18[] = -{ - ANIMCMD_FRAME(80, 1), - ANIMCMD_END -}; - -static const union AnimCmd *const sSpriteAnimTable_82FEC20[] = -{ - sSpriteAnim_82FEC10, - sSpriteAnim_82FEC18 -}; - -static const union AffineAnimCmd sSpriteAffineAnim_82FEC28[] = -{ - AFFINEANIMCMD_FRAME(256, 256, 0, 0), - AFFINEANIMCMD_END -}; - -static const union AffineAnimCmd sSpriteAffineAnim_82FEC38[] = -{ - AFFINEANIMCMD_FRAME(256, 256, 0, 0), - AFFINEANIMCMD_FRAME(16, -16, 0, 8), - AFFINEANIMCMD_END -}; - -static const union AffineAnimCmd sSpriteAffineAnim_82FEC50[] = -{ - AFFINEANIMCMD_FRAME(-18, 18, 0, 8), - AFFINEANIMCMD_END -}; - -static const union AffineAnimCmd sSpriteAffineAnim_82FEC60[] = -{ - AFFINEANIMCMD_FRAME(6, -6, 0, 8), - AFFINEANIMCMD_FRAME(-4, 4, 0, 8), - AFFINEANIMCMD_FRAME(256, 256, 0, 0), - AFFINEANIMCMD_END -}; - -static const union AffineAnimCmd *const sSpriteAffineAnimTable_82FEC80[] = -{ - sSpriteAffineAnim_82FEC28, - sSpriteAffineAnim_82FEC38, - sSpriteAffineAnim_82FEC50, - sSpriteAffineAnim_82FEC60 -}; - -static u8 sub_802EFA8(u16 tileTag, u16 palTag, s16 x, s16 y, u8 subpriority) -{ - u8 spriteId; - struct SpriteTemplate sprTemplate = - { - .tileTag = 0, - .paletteTag = 0, - .oam = &sOamData_82FEBDC, - .anims = sSpriteAnimTable_82FEC04, - .images = NULL, - .affineAnims = sSpriteAffineAnimTable_82FEC80, - .callback = SpriteCallbackDummy, - }; - - sprTemplate.tileTag = tileTag; - sprTemplate.paletteTag = palTag; - spriteId = CreateSprite(&sprTemplate, x, y, subpriority); - return spriteId; -} - -static void sub_802EFFC(u16 tileTag, u16 palTag, s16 x, s16 y, u8 subpriority, s16 *spriteId1, s16 *spriteId2) -{ - struct SpriteTemplate sprTemplate = - { - .tileTag = 0, - .paletteTag = 0, - .oam = &sOamData_82FEBE4, - .anims = sSpriteAnimTable_82FEC20, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = SpriteCallbackDummy, - }; - - sprTemplate.tileTag = tileTag; - sprTemplate.paletteTag = palTag; - *spriteId1 = CreateSprite(&sprTemplate, x - 32, y, subpriority); - *spriteId2 = CreateSprite(&sprTemplate, x + 32, y, subpriority); - - gSprites[*spriteId1].invisible = TRUE; - gSprites[*spriteId2].invisible = TRUE; - StartSpriteAnim(&gSprites[*spriteId2], 1); -} diff --git a/src/rom_8034C54.c b/src/rom_8034C54.c deleted file mode 100644 index 0296965265..0000000000 --- a/src/rom_8034C54.c +++ /dev/null @@ -1,453 +0,0 @@ -#include "global.h" -#include "rom_8034C54.h" -#include "malloc.h" -#include "decompress.h" -#include "main.h" -#include "battle_main.h" - -struct UnkStruct2 -{ - bool8 isActive; - u8 firstOamId; - u8 field_2; - u8 oamCount; - u8 palTagIndex; - u8 size; - u8 shape; - u8 priority; - u8 xDelta; - u8 field_9; - u16 tileStart; - s16 x; - s16 y; - u16 tileTag; - u16 palTag; - u32 field_14; - s32 field_18; -}; - -struct UnkStruct1 -{ - u32 count; - struct UnkStruct2 *array; -}; - -// this file's functions -static u8 sub_8035518(u8 arg0);; -static void sub_8034EFC(struct UnkStruct2 *arg0); -static void sub_80350B0(struct UnkStruct2 *arg0, s32 arg1, bool32 arg2); -static void sub_8035164(struct UnkStruct2 *arg0, s32 arg1, bool32 arg2); -static void sub_80352C0(struct UnkStruct2 *arg0, s32 arg1, bool32 arg2); -static bool32 SharesTileWithAnyActive(u32 id); -static bool32 SharesPalWithAnyActive(u32 id); -static void sub_8035648(void); - -// iwram -static s32 gUnknown_03000DD4; -static s32 gUnknown_03000DD8; -static s32 gUnknown_03000DDC; - -// ewram -static EWRAM_DATA struct UnkStruct1 *gUnknown_02022E10 = {0}; - -// const rom data -static const u8 gUnknown_082FF1C8[][4] = -{ - {0x01, 0x04, 0x10, 0x40}, - {0x02, 0x04, 0x08, 0x20}, - {0x02, 0x04, 0x08, 0x20}, - {0x00, 0x00, 0x00, 0x00} -}; - -// code -bool32 sub_8034C54(u32 count) -{ - u32 i; - - if (gUnknown_02022E10 != NULL) - sub_8034CC8(); - - gUnknown_02022E10 = Alloc(sizeof(*gUnknown_02022E10)); - if (gUnknown_02022E10 == NULL) - return FALSE; - - gUnknown_02022E10->array = Alloc(sizeof(struct UnkStruct2) * count); - if (gUnknown_02022E10->array == NULL) - { - Free(gUnknown_02022E10); - return FALSE; - } - - gUnknown_02022E10->count = count; - for (i = 0; i < count; i++) - { - gUnknown_02022E10->array[i].isActive = FALSE; - gUnknown_02022E10->array[i].firstOamId = 0xFF; - } - - return TRUE; -} - -void sub_8034CC8(void) -{ - if (gUnknown_02022E10 != NULL) - { - if (gUnknown_02022E10->array != NULL) - { - u32 i; - - for (i = 0; i < gUnknown_02022E10->count; i++) - sub_80353DC(i); - - Free(gUnknown_02022E10->array); - } - - FREE_AND_SET_NULL(gUnknown_02022E10); - } -} - -bool32 sub_8034D14(u32 id, s32 arg1, const struct UnkStruct3 *arg2) -{ - u32 i; - - if (gUnknown_02022E10 == NULL) - return FALSE; - if (gUnknown_02022E10->array[id].isActive) - return FALSE; - - gUnknown_02022E10->array[id].firstOamId = sub_8035518(arg2->field_1); - if (gUnknown_02022E10->array[id].firstOamId == 0xFF) - return FALSE; - - gUnknown_02022E10->array[id].tileStart = GetSpriteTileStartByTag(arg2->spriteSheet->tag); - if (gUnknown_02022E10->array[id].tileStart == 0xFFFF) - { - if (arg2->spriteSheet->size != 0) - { - gUnknown_02022E10->array[id].tileStart = LoadSpriteSheet(arg2->spriteSheet); - } - else - { - struct CompressedSpriteSheet compSpriteSheet; - - compSpriteSheet = *(struct CompressedSpriteSheet*)(arg2->spriteSheet); - compSpriteSheet.size = GetDecompressedDataSize(arg2->spriteSheet->data); - gUnknown_02022E10->array[id].tileStart = LoadCompressedSpriteSheet(&compSpriteSheet); - } - - if (gUnknown_02022E10->array[id].tileStart == 0xFFFF) - return FALSE; - } - - gUnknown_02022E10->array[id].palTagIndex = IndexOfSpritePaletteTag(arg2->spritePal->tag); - if (gUnknown_02022E10->array[id].palTagIndex == 0xFF) - gUnknown_02022E10->array[id].palTagIndex = LoadSpritePalette(arg2->spritePal); - - gUnknown_02022E10->array[id].field_2 = arg2->field_0_0; - gUnknown_02022E10->array[id].oamCount = arg2->field_1; - gUnknown_02022E10->array[id].x = arg2->x; - gUnknown_02022E10->array[id].y = arg2->y; - gUnknown_02022E10->array[id].shape = arg2->shape; - gUnknown_02022E10->array[id].size = arg2->size; - gUnknown_02022E10->array[id].priority = arg2->priority; - gUnknown_02022E10->array[id].xDelta = arg2->xDelta; - gUnknown_02022E10->array[id].field_9 = sub_80355F8(arg2->shape, arg2->size); - gUnknown_02022E10->array[id].tileTag = arg2->spriteSheet->tag; - gUnknown_02022E10->array[id].palTag = arg2->spritePal->tag; - gUnknown_02022E10->array[id].isActive = TRUE; - gUnknown_02022E10->array[id].field_14 = 1; - - for (i = 1; i < arg2->field_1; i++) - gUnknown_02022E10->array[id].field_14 *= 10; - - sub_8034EFC(&gUnknown_02022E10->array[id]); - sub_8035044(id, arg1); - - return TRUE; -} - -static void sub_8034EFC(struct UnkStruct2 *arg0) -{ - u32 i; - u32 oamId = arg0->firstOamId; - u32 x = arg0->x; - u32 oamCount = arg0->oamCount + 1; - - CpuFill16(0, &gMain.oamBuffer[oamId], sizeof(struct OamData) * oamCount); - for (i = 0, oamId = arg0->firstOamId; i < oamCount; i++, oamId++) - { - gMain.oamBuffer[oamId].y = arg0->y; - gMain.oamBuffer[oamId].x = x; - gMain.oamBuffer[oamId].shape = arg0->shape; - gMain.oamBuffer[oamId].size = arg0->size; - gMain.oamBuffer[oamId].tileNum = arg0->tileStart; - gMain.oamBuffer[oamId].priority = arg0->priority; - gMain.oamBuffer[oamId].paletteNum = arg0->palTagIndex; - - x += arg0->xDelta; - } - - oamId--; - gMain.oamBuffer[oamId].x = arg0->x - arg0->xDelta; - gMain.oamBuffer[oamId].affineMode = ST_OAM_AFFINE_ERASE; - gMain.oamBuffer[oamId].tileNum = arg0->tileStart + (arg0->field_9 * 10); -} - -void sub_8035044(u32 id, s32 arg1) -{ - bool32 r2; - - if (gUnknown_02022E10 == NULL) - return; - if (!gUnknown_02022E10->array[id].isActive) - return; - - gUnknown_02022E10->array[id].field_18 = arg1; - if (arg1 < 0) - { - r2 = TRUE; - arg1 *= -1; - } - else - { - r2 = FALSE; - } - - switch (gUnknown_02022E10->array[id].field_2) - { - case 0: - default: - sub_80350B0(&gUnknown_02022E10->array[id], arg1, r2); - break; - case 1: - sub_8035164(&gUnknown_02022E10->array[id], arg1, r2); - break; - case 2: - sub_80352C0(&gUnknown_02022E10->array[id], arg1, r2); - break; - } -} - -static void sub_80350B0(struct UnkStruct2 *arg0, s32 arg1, bool32 arg2) -{ - u32 r5 = arg0->field_14; - u32 oamId = arg0->firstOamId; - - while (r5 != 0) - { - u32 r4 = arg1 / r5; - arg1 -= (r4 * r5); - r5 /= 10; - - gMain.oamBuffer[oamId].tileNum = (r4 * arg0->field_9) + arg0->tileStart; - oamId++; - } - - if (arg2) - gMain.oamBuffer[oamId].affineMode = ST_OAM_AFFINE_OFF; - else - gMain.oamBuffer[oamId].affineMode = ST_OAM_AFFINE_ERASE; -} - -static void sub_8035164(struct UnkStruct2 *arg0, s32 arg1, bool32 arg2) -{ - u32 r5 = arg0->field_14; - gUnknown_03000DD4 = arg0->firstOamId; - gUnknown_03000DD8 = 0; - gUnknown_03000DDC = -1; - - while (r5 != 0) - { - u32 r4 = arg1 / r5; - arg1 -= (r4 * r5); - r5 /= 10; - - if (r4 != 0 || gUnknown_03000DDC != -1 || r5 == 0) - { - gMain.oamBuffer[gUnknown_03000DD4].tileNum = (r4 * arg0->field_9) + arg0->tileStart; - gMain.oamBuffer[gUnknown_03000DD4].affineMode = ST_OAM_AFFINE_OFF; - - if (gUnknown_03000DDC == -1) - gUnknown_03000DDC = gUnknown_03000DD8; - } - else - { - gMain.oamBuffer[gUnknown_03000DD4].affineMode = ST_OAM_AFFINE_ERASE; - } - - gUnknown_03000DD4++; - gUnknown_03000DD8++; - } - - if (arg2) - { - gMain.oamBuffer[gUnknown_03000DD4].affineMode = ST_OAM_AFFINE_OFF; - gMain.oamBuffer[gUnknown_03000DD4].x = arg0->x + ((gUnknown_03000DDC - 1) * arg0->xDelta); - } - else - { - gMain.oamBuffer[gUnknown_03000DD4].affineMode = ST_OAM_AFFINE_ERASE; - } -} - -static void sub_80352C0(struct UnkStruct2 *arg0, s32 arg1, bool32 arg2) -{ - u32 r5 = arg0->field_14; - u32 oamId = arg0->firstOamId; - u32 var_28 = 0; - s32 r9 = 0; - - while (r5 != 0) - { - u32 r4 = arg1 / r5; - arg1 -= (r4 * r5); - r5 /= 10; - - if (r4 != 0 || var_28 != 0 || r5 == 0) - { - var_28 = 1; - gMain.oamBuffer[oamId].tileNum = (r4 * arg0->field_9) + arg0->tileStart; - gMain.oamBuffer[oamId].affineMode = ST_OAM_AFFINE_OFF; - - oamId++; - r9++; - } - } - - while (r9 < arg0->oamCount) - { - gMain.oamBuffer[oamId].affineMode = ST_OAM_AFFINE_ERASE; - oamId++; - r9++; - } - - if (arg2) - gMain.oamBuffer[oamId].affineMode = ST_OAM_AFFINE_OFF; - else - gMain.oamBuffer[oamId].affineMode = ST_OAM_AFFINE_ERASE; -} - -void sub_80353DC(u32 id) -{ - s32 oamId, oamCount, i; - - if (gUnknown_02022E10 == NULL) - return; - if (!gUnknown_02022E10->array[id].isActive) - return; - - oamCount = gUnknown_02022E10->array[id].oamCount + 1; - oamId = gUnknown_02022E10->array[id].firstOamId; - - for (i = 0; i < oamCount; i++, oamId++) - gMain.oamBuffer[oamId].affineMode = ST_OAM_AFFINE_ERASE; - - if (!SharesTileWithAnyActive(id)) - FreeSpriteTilesByTag(gUnknown_02022E10->array[id].tileTag); - if (!SharesPalWithAnyActive(id)) - FreeSpritePaletteByTag(gUnknown_02022E10->array[id].palTag); - - gUnknown_02022E10->array[id].isActive = FALSE; -} - -void sub_803547C(u32 id, bool32 arg1) -{ - s32 oamId, oamCount, i; - - if (gUnknown_02022E10 == NULL) - return; - if (!gUnknown_02022E10->array[id].isActive) - return; - - oamCount = gUnknown_02022E10->array[id].oamCount + 1; - oamId = gUnknown_02022E10->array[id].firstOamId; - if (arg1) - { - for (i = 0; i < oamCount; i++, oamId++) - gMain.oamBuffer[oamId].affineMode = ST_OAM_AFFINE_ERASE; - } - else - { - for (i = 0; i < oamCount; i++, oamId++) - gMain.oamBuffer[oamId].affineMode = ST_OAM_AFFINE_OFF; - - sub_8035044(id, gUnknown_02022E10->array[id].field_18); - } -} - -static u8 sub_8035518(u8 arg0) -{ - u32 i; - u16 oamCount = 64; - - for (i = 0; i < gUnknown_02022E10->count; i++) - { - if (!gUnknown_02022E10->array[i].isActive) - { - if (gUnknown_02022E10->array[i].firstOamId != 0xFF && gUnknown_02022E10->array[i].oamCount <= arg0) - return gUnknown_02022E10->array[i].firstOamId; - } - else - { - oamCount += 1 + gUnknown_02022E10->array[i].oamCount; - } - } - - if (oamCount + arg0 + 1 > 128) - return 0xFF; - else - return oamCount; -} - -static bool32 SharesTileWithAnyActive(u32 id) -{ - u32 i; - - for (i = 0; i < gUnknown_02022E10->count; i++) - { - if (gUnknown_02022E10->array[i].isActive && i != id - && gUnknown_02022E10->array[i].tileTag == gUnknown_02022E10->array[id].tileTag) - { - return TRUE; - } - } - - return FALSE; -} - -static bool32 SharesPalWithAnyActive(u32 id) -{ - u32 i; - - for (i = 0; i < gUnknown_02022E10->count; i++) - { - if (gUnknown_02022E10->array[i].isActive && i != id - && gUnknown_02022E10->array[i].palTag == gUnknown_02022E10->array[id].palTag) - { - return TRUE; - } - } - - return FALSE; -} - -u8 sub_80355F8(u32 shape, u32 size) -{ - return gUnknown_082FF1C8[shape][size]; -} - -static void sub_8035608(void) -{ - u8 spriteId; - - ResetSpriteData(); - spriteId = CreateSprite(&gUnknown_0831AC88, 0, 0, 0); - gSprites[spriteId].invisible = TRUE; - SetMainCallback2(sub_8035648); -} - -static void sub_8035648(void) -{ - AnimateSprites(); - BuildOamBuffer(); -} diff --git a/src/rom_81520A8.c b/src/rom_81520A8.c index f6d14d49c4..8b10d44d04 100644 --- a/src/rom_81520A8.c +++ b/src/rom_81520A8.c @@ -2,7 +2,7 @@ #include "rom_81520A8.h" #include "malloc.h" #include "main.h" -#include "rom_8034C54.h" +#include "digit_obj_util.h" static EWRAM_DATA struct { @@ -138,7 +138,7 @@ static bool32 sub_81523F4(struct UnkStruct_81520A8 *structPtr, u8 arg1) return FALSE; structPtr->unk18 = arg1; - structPtr->tileNum = (sub_80355F8(structPtr->oam.shape, structPtr->oam.size) * arg1) + tileStart; + structPtr->tileNum = (GetTilesPerImage(structPtr->oam.shape, structPtr->oam.size) * arg1) + tileStart; return TRUE; } diff --git a/src/save_location.c b/src/save_location.c index 6bf5eceb02..aa56d7b16c 100644 --- a/src/save_location.c +++ b/src/save_location.c @@ -118,17 +118,18 @@ void TrySetMapSaveWarpStatus(void) sub_81AFD5C(); } -// Called when receiving the Pokedex -// Only place field_A8 is written (aside from clearing on new game), never read -void sub_81AFDA0(void) +// In FRLG, only 0x1, 0x10, and 0x20 are set when the pokedex is received +// 0x2, 0x4, 0x8, and 0x8000 are instead set by SetPostgameFlags +// These flags are read by Pokemon Colosseum/XD for linking. XD Additionally requires FLAG_SYS_GAME_CLEAR +void SetUnlockedPokedexFlags(void) { - gSaveBlock2Ptr->field_A8 |= 0x8000; - gSaveBlock2Ptr->field_A8 |= 0x1; - gSaveBlock2Ptr->field_A8 |= 0x2; - gSaveBlock2Ptr->field_A8 |= 0x4; - gSaveBlock2Ptr->field_A8 |= 0x10; - gSaveBlock2Ptr->field_A8 |= 0x20; - gSaveBlock2Ptr->field_A8 |= 0x8; + gSaveBlock2Ptr->gcnLinkFlags |= 0x8000; + gSaveBlock2Ptr->gcnLinkFlags |= 0x1; + gSaveBlock2Ptr->gcnLinkFlags |= 0x2; + gSaveBlock2Ptr->gcnLinkFlags |= 0x4; + gSaveBlock2Ptr->gcnLinkFlags |= 0x10; + gSaveBlock2Ptr->gcnLinkFlags |= 0x20; + gSaveBlock2Ptr->gcnLinkFlags |= 0x8; } void SetChampionSaveWarp(void) diff --git a/src/secret_base.c b/src/secret_base.c index ec48e9b511..24644d0ec6 100644 --- a/src/secret_base.c +++ b/src/secret_base.c @@ -1176,7 +1176,7 @@ void SecretBasePerStepCallback(u8 taskId) VarSet(VAR_SECRET_BASE_STEP_COUNTER, VarGet(VAR_SECRET_BASE_STEP_COUNTER) + 1); behavior = MapGridGetMetatileBehaviorAt(x, y); tileId = MapGridGetMetatileIdAt(x, y); - if (tileId == METATILE_SecretBase_Board_Top || tileId == METATILE_SecretBase_Board_Bottom) + if (tileId == METATILE_SecretBase_SolidBoard_Top || tileId == METATILE_SecretBase_SolidBoard_Bottom) { if (sInFriendSecretBase == TRUE) { @@ -1204,13 +1204,13 @@ void SecretBasePerStepCallback(u8 taskId) if (sInFriendSecretBase == TRUE) VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | SECRET_BASE_USED_TENT); } - else if ((behavior == MB_IMPASSABLE_NORTHEAST && tileId == METATILE_SecretBase_Stand_RightCorner) - || (behavior == MB_IMPASSABLE_NORTHWEST && MapGridGetMetatileIdAt(x, y) == METATILE_SecretBase_Stand_LeftCorner)) + else if ((behavior == MB_IMPASSABLE_NORTHEAST && tileId == METATILE_SecretBase_Stand_CornerRight) + || (behavior == MB_IMPASSABLE_NORTHWEST && MapGridGetMetatileIdAt(x, y) == METATILE_SecretBase_Stand_CornerLeft)) { if (sInFriendSecretBase == TRUE) VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | SECRET_BASE_USED_STAND); } - else if (behavior == MB_IMPASSABLE_WEST_AND_EAST && tileId == METATILE_SecretBase_Slide_Stairs) + else if (behavior == MB_IMPASSABLE_WEST_AND_EAST && tileId == METATILE_SecretBase_Slide_StairLanding) { if (sInFriendSecretBase == TRUE) { @@ -1218,7 +1218,7 @@ void SecretBasePerStepCallback(u8 taskId) VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | SECRET_BASE_DECLINED_SLIDE); } } - else if (behavior == MB_SLIDE_SOUTH && tileId == METATILE_SecretBase_Slide) + else if (behavior == MB_SLIDE_SOUTH && tileId == METATILE_SecretBase_Slide_SlideTop) { if (sInFriendSecretBase == TRUE) { @@ -1846,12 +1846,12 @@ void CheckInteractedWithFriendsFurnitureBottom(void) case METATILE_SecretBase_RedPlant_Base2: case METATILE_SecretBase_TropicalPlant_Base1: case METATILE_SecretBase_TropicalPlant_Base2: - case METATILE_SecretBase_PrettyFlower_Base1: - case METATILE_SecretBase_PrettyFlower_Base2: - case METATILE_SecretBase_ColorfulFlowers_BaseLeft1: - case METATILE_SecretBase_ColorfulFlowers_BaseRight1: - case METATILE_SecretBase_ColorfulFlowers_BaseLeft2: - case METATILE_SecretBase_ColorfulFlowers_BaseRight2: + case METATILE_SecretBase_PrettyFlowers_Base1: + case METATILE_SecretBase_PrettyFlowers_Base2: + case METATILE_SecretBase_ColorfulPlant_BaseLeft1: + case METATILE_SecretBase_ColorfulPlant_BaseRight1: + case METATILE_SecretBase_ColorfulPlant_BaseLeft2: + case METATILE_SecretBase_ColorfulPlant_BaseRight2: case METATILE_SecretBase_BigPlant_BaseLeft1: case METATILE_SecretBase_BigPlant_BaseRight1: case METATILE_SecretBase_BigPlant_BaseLeft2: diff --git a/src/union_room_battle.c b/src/union_room_battle.c index c80340da3e..18dd7c3202 100644 --- a/src/union_room_battle.c +++ b/src/union_room_battle.c @@ -451,15 +451,15 @@ void sub_801AAD4(void) { s32 i; sub_8014210(10); - for (i = 0; i < 2; i++) + for (i = 0; i < UNION_ROOM_PARTY_SIZE; i++) { gEnemyParty[i] = gPlayerParty[gSelectedOrderFromParty[i] - 1]; } - for (i = 0; i < 6; i++) + for (i = 0; i < PARTY_SIZE; i++) { ZeroMonData(&gPlayerParty[i]); } - for (i = 0; i < 2; i++) + for (i = 0; i < UNION_ROOM_PARTY_SIZE; i++) { gPlayerParty[i] = gEnemyParty[i]; } diff --git a/src/wild_encounter.c b/src/wild_encounter.c index 21f8717517..7d20b2476f 100644 --- a/src/wild_encounter.c +++ b/src/wild_encounter.c @@ -22,6 +22,7 @@ #include "constants/layouts.h" #include "constants/maps.h" #include "constants/species.h" +#include "constants/weather.h" extern const u8 EventScript_RepelWoreOff[]; @@ -492,7 +493,7 @@ static bool8 DoWildEncounterRateTest(u32 encounterRate, bool8 ignoreAbility) encounterRate /= 2; else if (ability == ABILITY_ARENA_TRAP) encounterRate *= 2; - else if (ability == ABILITY_SAND_VEIL && gSaveBlock1Ptr->weather == 8) + else if (ability == ABILITY_SAND_VEIL && gSaveBlock1Ptr->weather == WEATHER_SANDSTORM) encounterRate /= 2; } if (encounterRate > 2880) diff --git a/sym_bss.txt b/sym_bss.txt index 1c58146f63..aad8c8f14f 100644 --- a/sym_bss.txt +++ b/sym_bss.txt @@ -14,7 +14,7 @@ .include "src/dodrio_berry_picking.o" .include "src/rtc.o" .include "src/main_menu.o" - .include "src/rom_8034C54.o" + .include "src/digit_obj_util.o" .include "src/egg_hatch.o" .include "src/berry_blender.o" .include "src/play_time.o" diff --git a/sym_ewram.txt b/sym_ewram.txt index c5cb123c5d..d00f7953cc 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -23,7 +23,7 @@ .include "src/pokemon_jump.o" .include "src/main_menu.o" .include "src/battle_controllers.o" - .include "src/rom_8034C54.o" + .include "src/digit_obj_util.o" .include "src/battle_main.o" .include "src/pokemon.o" .include "src/random.o"