From 18d57a38021a7fee9d8f2131f776946d81c83fbe Mon Sep 17 00:00:00 2001 From: GriffinR Date: Fri, 19 Jun 2020 19:58:56 -0400 Subject: [PATCH 001/101] Document some overworld and field effects --- data/field_effect_scripts.s | 420 ++++----- data/io_reg.s | 37 - data/maps/BirthIsland_Exterior/scripts.inc | 4 +- gflib/io_reg.c | 36 + gflib/io_reg.h | 7 + .../pics/{unknown_29.png => sand_pile.png} | Bin .../{unknown_35.png => small_sparkle.png} | Bin ...ry_tree_growth_sparkle.png => sparkle.png} | Bin graphics/field_effects/pics/unknown_18.png | Bin 344 -> 0 bytes graphics/field_effects/pics/unused_grass.png | Bin 389 -> 344 bytes .../field_effects/pics/unused_grass_2.png | Bin 0 -> 389 bytes include/constants/field_effects.h | 44 +- include/event_scripts.h | 22 + include/field_camera.h | 2 +- include/field_control_avatar.h | 2 +- include/field_effect.h | 6 +- include/field_player_avatar.h | 4 +- include/field_screen_effect.h | 2 + include/fieldmap.h | 12 +- include/fldeff.h | 8 +- include/global.fieldmap.h | 16 +- include/menu.h | 6 +- include/overworld.h | 9 +- ld_script.txt | 2 +- spritesheet_rules.mk | 10 +- src/battle_pyramid_bag.c | 4 +- src/berry_crush.c | 2 +- src/berry_tag_screen.c | 4 +- src/bike.c | 8 +- src/braille_puzzles.c | 4 +- .../field_effect_object_template_pointers.h | 92 +- src/data/field_effects/field_effect_objects.h | 118 +-- .../object_events/object_event_graphics.h | 18 +- src/dodrio_berry_picking.c | 2 +- src/event_object_movement.c | 4 +- src/faraway_island.c | 3 +- src/field_camera.c | 40 +- src/field_control_avatar.c | 4 +- src/field_effect.c | 869 +++++++++--------- src/field_effect_helpers.c | 78 +- src/field_player_avatar.c | 42 +- src/field_region_map.c | 4 +- src/field_screen_effect.c | 29 +- src/fieldmap.c | 38 +- src/fldeff_cut.c | 4 +- src/fldeff_dig.c | 2 +- src/fldeff_escalator.c | 217 +++-- src/fldeff_flash.c | 2 +- src/fldeff_misc.c | 12 +- src/fldeff_rocksmash.c | 49 +- src/fldeff_strength.c | 2 +- src/fldeff_sweetscent.c | 2 +- src/fldeff_teleport.c | 4 +- src/hall_of_fame.c | 2 +- src/item_menu.c | 4 +- src/menu.c | 50 +- src/move_relearner.c | 6 +- src/naming_screen.c | 2 +- src/overworld.c | 265 +++--- src/party_menu.c | 4 +- src/pokeblock.c | 4 +- src/pokeblock_feed.c | 4 +- src/pokemon_storage_system.c | 4 +- src/pokemon_summary_screen.c | 4 +- src/rayquaza_scene.c | 4 +- src/region_map.c | 4 +- src/reset_rtc_screen.c | 4 +- src/roulette.c | 2 +- src/shop.c | 4 +- src/starter_choose.c | 4 +- src/wallclock.c | 4 +- 71 files changed, 1379 insertions(+), 1302 deletions(-) delete mode 100644 data/io_reg.s create mode 100644 gflib/io_reg.c create mode 100644 gflib/io_reg.h rename graphics/field_effects/pics/{unknown_29.png => sand_pile.png} (100%) rename graphics/field_effects/pics/{unknown_35.png => small_sparkle.png} (100%) rename graphics/field_effects/pics/{berry_tree_growth_sparkle.png => sparkle.png} (100%) delete mode 100644 graphics/field_effects/pics/unknown_18.png create mode 100644 graphics/field_effects/pics/unused_grass_2.png diff --git a/data/field_effect_scripts.s b/data/field_effect_scripts.s index 4aef859d8e..2eddf3126c 100644 --- a/data/field_effect_scripts.s +++ b/data/field_effect_scripts.s @@ -1,345 +1,345 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" + .include "asm/macros.inc" + .include "constants/constants.inc" - .section script_data, "aw", %progbits + .section script_data, "aw", %progbits - .align 2 + .align 2 gFieldEffectScriptPointers:: @ 82DB9D4 - .4byte gFieldEffectScript_ExclamationMarkIcon1 - .4byte gFieldEffectScript_UseCutOnTallGrass - .4byte gFieldEffectScript_UseCutOnTree - .4byte gFieldEffectScript_Shadow - .4byte gFieldEffectScript_TallGrass - .4byte gFieldEffectScript_Ripple - .4byte gFieldEffectScript_FieldMoveShowMon - .4byte gFieldEffectScript_Ash - .4byte gFieldEffectScript_SurfBlob - .4byte gFieldEffectScript_UseSurf - .4byte gFieldEffectScript_GroundImpactDust - .4byte gFieldEffectScript_UseSecretPowerCave - .4byte gFieldEffectScript_BikeHopTallGrass - .4byte gFieldEffectScript_SandFootprints - .4byte gFieldEffectScript_BikeHopBigSplash - .4byte gFieldEffectScript_Splash - .4byte gFieldEffectScript_BikeHopSmallSplash - .4byte gFieldEffectScript_LongGrass - .4byte gFieldEffectScript_JumpLongGrass - .4byte gFieldEffectScript_Unknown19 - .4byte gFieldEffectScript_Unknown20 - .4byte gFieldEffectScript_Unknown21 - .4byte gFieldEffectScript_Unknown22 - .4byte gFieldEffectScript_BerryTreeGrowthSparkle - .4byte gFieldEffectScript_DeepSandFootprints - .4byte gFieldEffectScript_PokeCenterHeal - .4byte gFieldEffectScript_UseSecretPowerTree - .4byte gFieldEffectScript_UseSecretPowerShrub - .4byte gFieldEffectScript_TreeDisguise - .4byte gFieldEffectScript_MountainDisguise - .4byte gFieldEffectScript_NPCUseFly - .4byte gFieldEffectScript_UseFly - .4byte gFieldEffectScript_FlyIn - .4byte gFieldEffectScript_QuestionMarkIcon - .4byte gFieldEffectScript_FeetInFlowingWater - .4byte gFieldEffectScript_BikeTireTracks - .4byte gFieldEffectScript_SandDisguisePlaceholder - .4byte gFieldEffectScript_UseRockSmash - .4byte gFieldEffectScript_UseDig - .4byte gFieldEffectScript_SandPile - .4byte gFieldEffectScript_UseStrength - .4byte gFieldEffectScript_ShortGrass - .4byte gFieldEffectScript_HotSpringsWater - .4byte gFieldEffectScript_UseWaterfall - .4byte gFieldEffectScript_UseDive - .4byte gFieldEffectScript_Pokeball - .4byte gFieldEffectScript_HeartIcon - .4byte gFieldEffectScript_Unknown47 - .4byte gFieldEffectScript_Unknown48 - .4byte gFieldEffectScript_JumpOutOfAsh - .4byte gFieldEffectScript_LavaridgeGymWarp - .4byte gFieldEffectScript_SweetScent - .4byte gFieldEffectScript_SandPillar - .4byte gFieldEffectScript_Bubbles - .4byte gFieldEffectScript_Sparkle - .4byte gFieldEffectScript_ShowSecretPowerCave - .4byte gFieldEffectScript_ShowSecretPowerTree - .4byte gFieldEffectScript_ShowSecretPowerShrub - .4byte gFieldEffectScript_ShowCutGrass - .4byte gFieldEffectScript_FieldMoveShowMonInit - .4byte gFieldEffectScript_UsePuzzleEffect - .4byte gFieldEffectScript_SecretBaseBootPC - .4byte gFieldEffectScript_HallOfFameRecord - .4byte gFieldEffectScript_UseTeleport - .4byte gFieldEffectScript_Rayquaza - .4byte gFieldEffectScript_Unknown65 - .4byte gFieldEffectScript_MoveDeoxysRock + .4byte gFieldEffectScript_ExclamationMarkIcon1 @ FLDEFF_EXCLAMATION_MARK_ICON + .4byte gFieldEffectScript_UseCutOnTallGrass @ FLDEFF_USE_CUT_ON_GRASS + .4byte gFieldEffectScript_UseCutOnTree @ FLDEFF_USE_CUT_ON_TREE + .4byte gFieldEffectScript_Shadow @ FLDEFF_SHADOW + .4byte gFieldEffectScript_TallGrass @ FLDEFF_TALL_GRASS + .4byte gFieldEffectScript_Ripple @ FLDEFF_RIPPLE + .4byte gFieldEffectScript_FieldMoveShowMon @ FLDEFF_FIELD_MOVE_SHOW_MON + .4byte gFieldEffectScript_Ash @ FLDEFF_ASH + .4byte gFieldEffectScript_SurfBlob @ FLDEFF_SURF_BLOB + .4byte gFieldEffectScript_UseSurf @ FLDEFF_USE_SURF + .4byte gFieldEffectScript_GroundImpactDust @ FLDEFF_DUST + .4byte gFieldEffectScript_UseSecretPowerCave @ FLDEFF_USE_SECRET_POWER_CAVE + .4byte gFieldEffectScript_BikeHopTallGrass @ FLDEFF_JUMP_TALL_GRASS + .4byte gFieldEffectScript_SandFootprints @ FLDEFF_SAND_FOOTPRINTS + .4byte gFieldEffectScript_BikeHopBigSplash @ FLDEFF_JUMP_BIG_SPLASH + .4byte gFieldEffectScript_Splash @ FLDEFF_SPLASH + .4byte gFieldEffectScript_BikeHopSmallSplash @ FLDEFF_JUMP_SMALL_SPLASH + .4byte gFieldEffectScript_LongGrass @ FLDEFF_LONG_GRASS + .4byte gFieldEffectScript_JumpLongGrass @ FLDEFF_JUMP_LONG_GRASS + .4byte gFieldEffectScript_Unknown19 @ FLDEFF_UNKNOWN_19 + .4byte gFieldEffectScript_UnusedGrass @ FLDEFF_UNUSED_GRASS + .4byte gFieldEffectScript_Unknown21 @ FLDEFF_UNKNOWN_21 + .4byte gFieldEffectScript_Unknown22 @ FLDEFF_UNKNOWN_22 + .4byte gFieldEffectScript_BerryTreeGrowthSparkle @ FLDEFF_BERRY_TREE_GROWTH_SPARKLE + .4byte gFieldEffectScript_DeepSandFootprints @ FLDEFF_DEEP_SAND_FOOTPRINTS + .4byte gFieldEffectScript_PokeCenterHeal @ FLDEFF_POKECENTER_HEAL + .4byte gFieldEffectScript_UseSecretPowerTree @ FLDEFF_USE_SECRET_POWER_TREE + .4byte gFieldEffectScript_UseSecretPowerShrub @ FLDEFF_USE_SECRET_POWER_SHRUB + .4byte gFieldEffectScript_TreeDisguise @ FLDEFF_TREE_DISGUISE + .4byte gFieldEffectScript_MountainDisguise @ FLDEFF_MOUNTAIN_DISGUISE + .4byte gFieldEffectScript_NPCUseFly @ FLDEFF_NPCFLY_OUT + .4byte gFieldEffectScript_UseFly @ FLDEFF_USE_FLY + .4byte gFieldEffectScript_FlyIn @ FLDEFF_FLY_IN + .4byte gFieldEffectScript_QuestionMarkIcon @ FLDEFF_QUESTION_MARK_ICON + .4byte gFieldEffectScript_FeetInFlowingWater @ FLDEFF_FEET_IN_FLOWING_WATER + .4byte gFieldEffectScript_BikeTireTracks @ FLDEFF_BIKE_TIRE_TRACKS + .4byte gFieldEffectScript_SandDisguisePlaceholder @ FLDEFF_SAND_DISGUISE + .4byte gFieldEffectScript_UseRockSmash @ FLDEFF_USE_ROCK_SMASH + .4byte gFieldEffectScript_UseDig @ FLDEFF_USE_DIG + .4byte gFieldEffectScript_SandPile @ FLDEFF_SAND_PILE + .4byte gFieldEffectScript_UseStrength @ FLDEFF_USE_STRENGTH + .4byte gFieldEffectScript_ShortGrass @ FLDEFF_SHORT_GRASS + .4byte gFieldEffectScript_HotSpringsWater @ FLDEFF_HOT_SPRINGS_WATER + .4byte gFieldEffectScript_UseWaterfall @ FLDEFF_USE_WATERFALL + .4byte gFieldEffectScript_UseDive @ FLDEFF_USE_DIVE + .4byte gFieldEffectScript_Pokeball @ FLDEFF_POKEBALL + .4byte gFieldEffectScript_HeartIcon @ FLDEFF_HEART_ICON + .4byte gFieldEffectScript_Unknown47 @ FLDEFF_NOP_47 + .4byte gFieldEffectScript_Unknown48 @ FLDEFF_NOP_48 + .4byte gFieldEffectScript_JumpOutOfAsh @ FLDEFF_POP_OUT_OF_ASH + .4byte gFieldEffectScript_LavaridgeGymWarp @ FLDEFF_LAVARIDGE_GYM_WARP + .4byte gFieldEffectScript_SweetScent @ FLDEFF_SWEET_SCENT + .4byte gFieldEffectScript_SandPillar @ FLDEFF_SAND_PILLAR + .4byte gFieldEffectScript_Bubbles @ FLDEFF_BUBBLES + .4byte gFieldEffectScript_Sparkle @ FLDEFF_SPARKLE + .4byte gFieldEffectScript_ShowSecretPowerCave @ FLDEFF_SECRET_POWER_CAVE + .4byte gFieldEffectScript_ShowSecretPowerTree @ FLDEFF_SECRET_POWER_TREE + .4byte gFieldEffectScript_ShowSecretPowerShrub @ FLDEFF_SECRET_POWER_SHRUB + .4byte gFieldEffectScript_ShowCutGrass @ FLDEFF_CUT_GRASS + .4byte gFieldEffectScript_FieldMoveShowMonInit @ FLDEFF_FIELD_MOVE_SHOW_MON_INIT + .4byte gFieldEffectScript_UsePuzzleEffect @ FLDEFF_USE_TOMB_PUZZLE_EFFECT + .4byte gFieldEffectScript_SecretBaseBootPC @ FLDEFF_PCTURN_ON + .4byte gFieldEffectScript_HallOfFameRecord @ FLDEFF_HALL_OF_FAME_RECORD + .4byte gFieldEffectScript_UseTeleport @ FLDEFF_USE_TELEPORT + .4byte gFieldEffectScript_Rayquaza @ FLDEFF_RAYQUAZA + .4byte gFieldEffectScript_DestroyDeoxysRock @ FLDEFF_DESTROY_DEOXYS_ROCK + .4byte gFieldEffectScript_MoveDeoxysRock @ FLDEFF_MOVE_DEOXYS_ROCK gFieldEffectScript_ExclamationMarkIcon1:: @ 82DBAE0 - field_eff_callnative FldEff_ExclamationMarkIcon - field_eff_end + field_eff_callnative FldEff_ExclamationMarkIcon + field_eff_end gFieldEffectScript_UseCutOnTallGrass:: @ 82DBAE6 - field_eff_callnative FldEff_UseCutOnGrass - field_eff_end + field_eff_callnative FldEff_UseCutOnGrass + field_eff_end gFieldEffectScript_UseCutOnTree:: @ 82DBAEC - field_eff_callnative FldEff_UseCutOnTree - field_eff_end + field_eff_callnative FldEff_UseCutOnTree + field_eff_end gFieldEffectScript_Shadow:: @ 82DBAF2 - field_eff_callnative FldEff_Shadow - field_eff_end + field_eff_callnative FldEff_Shadow + field_eff_end gFieldEffectScript_TallGrass:: @ 82DBAF8 - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo1, FldEff_TallGrass - field_eff_end + field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo1, FldEff_TallGrass + field_eff_end gFieldEffectScript_Ripple:: @ 82DBB02 - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo1, FldEff_Ripple - field_eff_end + field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo1, FldEff_Ripple + field_eff_end gFieldEffectScript_FieldMoveShowMon:: @ 82DBB0C - field_eff_callnative FldEff_FieldMoveShowMon - field_eff_end + field_eff_callnative FldEff_FieldMoveShowMon + field_eff_end gFieldEffectScript_Ash:: @ 82DBB12 - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo1, FldEff_Ash - field_eff_end + field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo1, FldEff_Ash + field_eff_end gFieldEffectScript_SurfBlob:: @ 82DBB1C - field_eff_callnative FldEff_SurfBlob - field_eff_end + field_eff_callnative FldEff_SurfBlob + field_eff_end gFieldEffectScript_UseSurf:: @ 82DBB22 - field_eff_callnative FldEff_UseSurf - field_eff_end + field_eff_callnative FldEff_UseSurf + field_eff_end gFieldEffectScript_GroundImpactDust:: @ 82DBB28 - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, FldEff_Dust - field_eff_end + field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, FldEff_Dust + field_eff_end gFieldEffectScript_UseSecretPowerCave:: @ 82DBB32 - field_eff_callnative FldEff_UseSecretPowerCave - field_eff_end + field_eff_callnative FldEff_UseSecretPowerCave + field_eff_end gFieldEffectScript_BikeHopTallGrass:: @ 82DBB38 - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo1, FldEff_JumpTallGrass - field_eff_end + field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo1, FldEff_JumpTallGrass + field_eff_end gFieldEffectScript_SandFootprints:: @ 82DBB42 - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, FldEff_SandFootprints - field_eff_end + field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, FldEff_SandFootprints + field_eff_end gFieldEffectScript_BikeHopBigSplash:: @ 82DBB4C - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, FldEff_JumpBigSplash - field_eff_end + field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, FldEff_JumpBigSplash + field_eff_end gFieldEffectScript_Splash:: @ 82DBB56 - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, FldEff_Splash - field_eff_end + field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, FldEff_Splash + field_eff_end gFieldEffectScript_BikeHopSmallSplash:: @ 82DBB60 - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, FldEff_JumpSmallSplash - field_eff_end + field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, FldEff_JumpSmallSplash + field_eff_end gFieldEffectScript_LongGrass:: @ 82DBB6A - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo1, FldEff_LongGrass - field_eff_end + field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo1, FldEff_LongGrass + field_eff_end gFieldEffectScript_JumpLongGrass:: @ 82DBB74 - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo1, FldEff_JumpLongGrass - field_eff_end + field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo1, FldEff_JumpLongGrass + field_eff_end gFieldEffectScript_Unknown19:: @ 82DBB7E - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo1, FldEff_Unknown19 - field_eff_end + field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo1, FldEff_Unknown19 + field_eff_end -gFieldEffectScript_Unknown20:: @ 82DBB88 - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo1, FldEff_Unknown20 - field_eff_end +gFieldEffectScript_UnusedGrass:: @ 82DBB88 + field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo1, FldEff_UnusedGrass + field_eff_end gFieldEffectScript_Unknown21:: @ 82DBB92 - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, FldEff_Unknown21 - field_eff_end + field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, FldEff_Unknown21 + field_eff_end gFieldEffectScript_Unknown22:: @ 82DBB9C - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, FldEff_Unknown22 - field_eff_end + field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, FldEff_Unknown22 + field_eff_end gFieldEffectScript_BerryTreeGrowthSparkle:: @ 82DBBA6 - field_eff_callnative FldEff_BerryTreeGrowthSparkle - field_eff_end + field_eff_callnative FldEff_BerryTreeGrowthSparkle + field_eff_end gFieldEffectScript_DeepSandFootprints:: @ 82DBBAC - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, FldEff_DeepSandFootprints - field_eff_end + field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, FldEff_DeepSandFootprints + field_eff_end gFieldEffectScript_PokeCenterHeal:: @ 82DBBB6 - field_eff_loadfadedpal gFieldEffectObjectPaletteInfo4 - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, FldEff_PokecenterHeal - field_eff_end + field_eff_loadfadedpal gFieldEffectObjectPaletteInfo4 + field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, FldEff_PokecenterHeal + field_eff_end gFieldEffectScript_UseSecretPowerTree:: @ 82DBBC5 - field_eff_callnative FldEff_UseSecretPowerTree - field_eff_end + field_eff_callnative FldEff_UseSecretPowerTree + field_eff_end gFieldEffectScript_UseSecretPowerShrub:: @ 82DBBCB - field_eff_callnative FldEff_UseSecretPowerShrub - field_eff_end + field_eff_callnative FldEff_UseSecretPowerShrub + field_eff_end gFieldEffectScript_TreeDisguise:: @ 82DBBD1 - field_eff_callnative ShowTreeDisguiseFieldEffect - field_eff_end + field_eff_callnative ShowTreeDisguiseFieldEffect + field_eff_end gFieldEffectScript_MountainDisguise:: @ 82DBBD7 - field_eff_callnative ShowMountainDisguiseFieldEffect - field_eff_end + field_eff_callnative ShowMountainDisguiseFieldEffect + field_eff_end gFieldEffectScript_NPCUseFly:: @ 82DBBDD - field_eff_callnative FldEff_NPCFlyOut - field_eff_end + field_eff_callnative FldEff_NPCFlyOut + field_eff_end gFieldEffectScript_UseFly:: @ 82DBBE3 - field_eff_callnative FldEff_UseFly - field_eff_end + field_eff_callnative FldEff_UseFly + field_eff_end gFieldEffectScript_FlyIn:: @ 82DBBE9 - field_eff_callnative FldEff_FlyIn - field_eff_end + field_eff_callnative FldEff_FlyIn + field_eff_end gFieldEffectScript_QuestionMarkIcon:: @ 82DBBEF - field_eff_callnative FldEff_QuestionMarkIcon - field_eff_end + field_eff_callnative FldEff_QuestionMarkIcon + field_eff_end gFieldEffectScript_FeetInFlowingWater:: @ 82DBBF5 - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, FldEff_FeetInFlowingWater - field_eff_end + field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, FldEff_FeetInFlowingWater + field_eff_end gFieldEffectScript_BikeTireTracks:: @ 82DBBFF - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, FldEff_BikeTireTracks - field_eff_end + field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, FldEff_BikeTireTracks + field_eff_end gFieldEffectScript_SandDisguisePlaceholder:: @ 82DBC09 - field_eff_callnative ShowSandDisguiseFieldEffect - field_eff_end + field_eff_callnative ShowSandDisguiseFieldEffect + field_eff_end gFieldEffectScript_UseRockSmash:: @ 82DBC0F - field_eff_callnative FldEff_UseRockSmash - field_eff_end + field_eff_callnative FldEff_UseRockSmash + field_eff_end gFieldEffectScript_UseStrength:: @ 82DBC15 - field_eff_callnative sub_8145E2C - field_eff_end + field_eff_callnative sub_8145E2C + field_eff_end gFieldEffectScript_UseDig:: @ 82DBC1B - field_eff_callnative FldEff_UseDig - field_eff_end + field_eff_callnative FldEff_UseDig + field_eff_end gFieldEffectScript_SandPile:: @ 82DBC21 - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, FldEff_SandPile - field_eff_end + field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, FldEff_SandPile + field_eff_end gFieldEffectScript_ShortGrass:: @ 82DBC2B - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo1, FldEff_ShortGrass - field_eff_end + field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo1, FldEff_ShortGrass + field_eff_end gFieldEffectScript_HotSpringsWater:: @ 82DBC35 - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo1, FldEff_HotSpringsWater - field_eff_end + field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo1, FldEff_HotSpringsWater + field_eff_end gFieldEffectScript_UseWaterfall:: @ 82DBC3F - field_eff_callnative FldEff_UseWaterfall - field_eff_end + field_eff_callnative FldEff_UseWaterfall + field_eff_end gFieldEffectScript_UseDive:: @ 82DBC45 - field_eff_callnative FldEff_UseDive - field_eff_end + field_eff_callnative FldEff_UseDive + field_eff_end gFieldEffectScript_Pokeball:: @ 82DBC4B - field_eff_loadpal gFieldEffectObjectPaletteInfo10 - field_eff_callnative FldEff_Pokeball - field_eff_end + field_eff_loadpal gFieldEffectObjectPaletteInfo10 + field_eff_callnative FldEff_Pokeball + field_eff_end gFieldEffectScript_HeartIcon:: @ 82DBC56 - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, FldEff_HeartIcon - field_eff_end + field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, FldEff_HeartIcon + field_eff_end gFieldEffectScript_Unknown47:: @ 82DBC60 - field_eff_callnative FldEff_NopA6FC - field_eff_end + field_eff_callnative FldEff_NopA6FC + field_eff_end gFieldEffectScript_Unknown48:: @ 82DBC66 - field_eff_callnative FldEff_NopA700 - field_eff_end + field_eff_callnative FldEff_NopA700 + field_eff_end gFieldEffectScript_JumpOutOfAsh:: @ 82DBC6C - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo2, FldEff_PopOutOfAsh - field_eff_end + field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo2, FldEff_PopOutOfAsh + field_eff_end gFieldEffectScript_LavaridgeGymWarp:: @ 82DBC76 - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo2, FldEff_LavaridgeGymWarp - field_eff_end + field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo2, FldEff_LavaridgeGymWarp + field_eff_end gFieldEffectScript_SweetScent:: @ 82DBC80 - field_eff_callnative FldEff_SweetScent - field_eff_end + field_eff_callnative FldEff_SweetScent + field_eff_end gFieldEffectScript_SandPillar:: @ 82DBC86 - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo9, FldEff_SandPillar - field_eff_end + field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo9, FldEff_SandPillar + field_eff_end gFieldEffectScript_Bubbles:: @ 82DBC90 - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, FldEff_Bubbles - field_eff_end + field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, FldEff_Bubbles + field_eff_end gFieldEffectScript_Sparkle:: @ 82DBC9A - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo3, FldEff_Sparkle - field_eff_end + field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo3, FldEff_Sparkle + field_eff_end gFieldEffectScript_ShowSecretPowerCave:: @ 82DBCA4 - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo7, FldEff_SecretPowerCave - field_eff_end + field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo7, FldEff_SecretPowerCave + field_eff_end gFieldEffectScript_ShowSecretPowerTree:: @ 82DBCAE - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo8, FldEff_SecretPowerTree - field_eff_end + field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo8, FldEff_SecretPowerTree + field_eff_end gFieldEffectScript_ShowSecretPowerShrub:: @ 82DBCB8 - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo8, FldEff_SecretPowerShrub - field_eff_end + field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo8, FldEff_SecretPowerShrub + field_eff_end gFieldEffectScript_ShowCutGrass:: @ 82DBCC2 - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo6, FldEff_CutGrass - field_eff_end + field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo6, FldEff_CutGrass + field_eff_end gFieldEffectScript_FieldMoveShowMonInit:: @ 82DBCCC - field_eff_callnative FldEff_FieldMoveShowMonInit - field_eff_end + field_eff_callnative FldEff_FieldMoveShowMonInit + field_eff_end gFieldEffectScript_UsePuzzleEffect:: @ 82DBCD2 - field_eff_callnative FldEff_UsePuzzleEffect - field_eff_end + field_eff_callnative FldEff_UsePuzzleEffect + field_eff_end gFieldEffectScript_SecretBaseBootPC:: @ 82DBCD8 - field_eff_callnative FldEff_SecretBasePCTurnOn - field_eff_end + field_eff_callnative FldEff_SecretBasePCTurnOn + field_eff_end gFieldEffectScript_HallOfFameRecord:: @ 82DBCDE - field_eff_loadfadedpal gFieldEffectObjectPaletteInfo4 - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo5, FldEff_HallOfFameRecord - field_eff_end + field_eff_loadfadedpal gFieldEffectObjectPaletteInfo4 + field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo5, FldEff_HallOfFameRecord + field_eff_end gFieldEffectScript_UseTeleport:: @ 82DBCED - field_eff_callnative FldEff_UseTeleport - field_eff_end + field_eff_callnative FldEff_UseTeleport + field_eff_end gFieldEffectScript_Rayquaza:: @ 82DBCF3 - field_eff_callnative sub_80B8F98 - field_eff_end + field_eff_callnative sub_80B8F98 + field_eff_end -gFieldEffectScript_Unknown65:: @ 82DBCF9 - field_eff_callnative sub_80B9ADC - field_eff_end +gFieldEffectScript_DestroyDeoxysRock:: @ 82DBCF9 + field_eff_callnative FldEff_DestroyDeoxysRock + field_eff_end gFieldEffectScript_MoveDeoxysRock:: @ 82DBCFF - field_eff_callnative Fldeff_MoveDeoxysRock - field_eff_end + field_eff_callnative FldEff_MoveDeoxysRock + field_eff_end diff --git a/data/io_reg.s b/data/io_reg.s deleted file mode 100644 index 0941b4345b..0000000000 --- a/data/io_reg.s +++ /dev/null @@ -1,37 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - - - -.align 2 -gUnref_82EC784:: @ 82EC784 - .4byte 0x00000000 - .4byte 0x00000000 - .4byte 0x04000008 - .4byte 0x0400000A - .4byte 0x0400000C - .4byte 0x0400000E - .4byte 0x04000010 - .4byte 0x04000014 - .4byte 0x04000018 - .4byte 0x0400001C - .4byte 0x04000012 - .4byte 0x04000016 - .4byte 0x0400001A - .4byte 0x0400001E - .4byte 0x02000100 - .4byte 0x08000400 - -gOverworldBackgroundLayerFlags:: @ 82EC7C4 - .2byte BLDCNT_TGT2_BG0 - .2byte BLDCNT_TGT2_BG1 - .2byte BLDCNT_TGT2_BG2 - .2byte BLDCNT_TGT2_BG3 - -gOrbEffectBackgroundLayerFlags:: @ 82EC7CC - .2byte BLDCNT_TGT1_BG0 - .2byte BLDCNT_TGT1_BG1 - .2byte BLDCNT_TGT1_BG2 - .2byte BLDCNT_TGT1_BG3 diff --git a/data/maps/BirthIsland_Exterior/scripts.inc b/data/maps/BirthIsland_Exterior/scripts.inc index 8cf47bfdb4..d3963958b1 100644 --- a/data/maps/BirthIsland_Exterior/scripts.inc +++ b/data/maps/BirthIsland_Exterior/scripts.inc @@ -68,9 +68,9 @@ BirthIsland_Exterior_EventScript_Deoxys:: @ 8267FC1 setfieldeffectargument 0, 1 setfieldeffectargument 1, 58 setfieldeffectargument 2, 26 - dofieldeffect FLDEFF_65 + dofieldeffect FLDEFF_DESTROY_DEOXYS_ROCK playbgm MUS_RG_DEOEYE, 0 - waitfieldeffect FLDEFF_65 + waitfieldeffect FLDEFF_DESTROY_DEOXYS_ROCK addobject 2 applymovement 2, BirthIsland_Exterior_Movement_DeoxysApproach waitmovement 0 diff --git a/gflib/io_reg.c b/gflib/io_reg.c new file mode 100644 index 0000000000..44364349d9 --- /dev/null +++ b/gflib/io_reg.c @@ -0,0 +1,36 @@ +#include "global.h" +#include "io_reg.h" +#include "gba/io_reg.h" + +static const u32 sUnused[] = { + 0, + 0, + (1 << 26) | (1 << 3), + (1 << 26) | (1 << 3) | (1 << 1), + (1 << 26) | (1 << 3) | (1 << 2), + (1 << 26) | (1 << 3) | (1 << 2) | (1 << 1), + (1 << 26) | (1 << 4), + (1 << 26) | (1 << 4) | (1 << 2), + (1 << 26) | (1 << 4) | (1 << 3), + (1 << 26) | (1 << 4) | (1 << 3) | (1 << 2), + (1 << 26) | (1 << 4) | (1 << 1), + (1 << 26) | (1 << 4) | (1 << 2) | (1 << 1), + (1 << 26) | (1 << 4) | (1 << 3) | (1 << 1), + (1 << 26) | (1 << 4) | (1 << 3) | (1 << 2) | (1 << 1), + (1 << 25) | (1 << 8), + (1 << 27) | (1 << 10), +}; + +const u16 gOverworldBackgroundLayerFlags[] = { + BLDCNT_TGT2_BG0, + BLDCNT_TGT2_BG1, + BLDCNT_TGT2_BG2, + BLDCNT_TGT2_BG3, +}; + +const u16 gOrbEffectBackgroundLayerFlags[] = { + BLDCNT_TGT1_BG0, + BLDCNT_TGT1_BG1, + BLDCNT_TGT1_BG2, + BLDCNT_TGT1_BG3, +}; diff --git a/gflib/io_reg.h b/gflib/io_reg.h new file mode 100644 index 0000000000..82d2fc5ed9 --- /dev/null +++ b/gflib/io_reg.h @@ -0,0 +1,7 @@ +#ifndef GUARD_IO_REG_H +#define GUARD_IO_REG_H + +extern const u16 gOverworldBackgroundLayerFlags[]; +extern const u16 gOrbEffectBackgroundLayerFlags[]; + +#endif // GUARD_IO_REG_H diff --git a/graphics/field_effects/pics/unknown_29.png b/graphics/field_effects/pics/sand_pile.png similarity index 100% rename from graphics/field_effects/pics/unknown_29.png rename to graphics/field_effects/pics/sand_pile.png diff --git a/graphics/field_effects/pics/unknown_35.png b/graphics/field_effects/pics/small_sparkle.png similarity index 100% rename from graphics/field_effects/pics/unknown_35.png rename to graphics/field_effects/pics/small_sparkle.png diff --git a/graphics/field_effects/pics/berry_tree_growth_sparkle.png b/graphics/field_effects/pics/sparkle.png similarity index 100% rename from graphics/field_effects/pics/berry_tree_growth_sparkle.png rename to graphics/field_effects/pics/sparkle.png diff --git a/graphics/field_effects/pics/unknown_18.png b/graphics/field_effects/pics/unknown_18.png deleted file mode 100644 index 65f4d97e29f9d738995b8e5e67053d3d0d99cd74..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 344 zcmV-e0jK_nP)%W`?qaOPi_P|w=Kqv~VzjK3q}9c9#iT*BgBYZ0)|W4J0002v zNklyiR;lE?ZvEWtaeaEh7>Yp#i3@awkjx2U|P7&dxZ qwRy^&G(+uS(C)MozC?BEcm4v??T4!bpiRC20000yiR;lE?ZvEWtaeaEh7>Yp#iUaJE)9r_=1fWg600000NkvXX Hu0mjfA|iaY delta 303 zcmV+~0nq-~0)+#RUw;7*NklqBOO3N`=9&Yf;Kro zMG`W_3_JU@#voIN(*F@7Zcz~X1N{!|6t+SHP!ezIr1Z(=mC>W+~=Oq;>EPAZgj1ejA@|^((Qi6$6&40)OEW0#zPTg1qEXlYu zFT}uNFm{f?DY^jWi}+(g4|5NmoF1NMh7Mg^qd|-XlT*vJSQS}(3lr0~zu248Ps_>n zJPR`YZ`;?Q-l$x0oNlua4)>eume;|lC;ysU;REh z!Sqx8Cz%W`?qaOPi_P|w=Kqv~VzjK3q}9c9#iT*BgBYZ0)|W4J0003H zNklqBOO3N`=9&Yf;KroMG`W_3_JU@#voIN(*F@7 zZcz~X1N{!|6t+SHP!ezIr1Z(=mC>W+~ z=Oq;>EPAZgj1ejA@|^((Qi6$6&By{QyEJxA-B<-I$+$Ex#K2-Oc8j_+vs3 za}S=J9-e204qaTML5u~HQ_Hnj66Vtc9*qhT&%gOdU3o`w0+t;Dqs9bTJZnF>$ z_nYgM*TJbL|Dc^^2K#XmTtz0QZ~~9heuBr#PfmAV{XROu^i%yOnfC>^`>Po`{Z!xK jB4$eu> 16; gTasks[taskId].data[9] = (u32)UseRegisteelHm_Callback; @@ -411,7 +411,7 @@ bool32 BrailleWait_CheckButtonPress(void) // this used to be FldEff_UseFlyAncientTomb . why did GF merge the 2 functions? bool8 FldEff_UsePuzzleEffect(void) { - u8 taskId = oei_task_add(); + u8 taskId = CreateFieldMoveTask(); if (sBraillePuzzleCallbackFlag == REGISTEEL_PUZZLE) { diff --git a/src/data/field_effects/field_effect_object_template_pointers.h b/src/data/field_effects/field_effect_object_template_pointers.h index de39e6db34..12ed63df3f 100755 --- a/src/data/field_effects/field_effect_object_template_pointers.h +++ b/src/data/field_effects/field_effect_object_template_pointers.h @@ -8,70 +8,70 @@ const struct SpriteTemplate gFieldEffectObjectTemplate_Ash; const struct SpriteTemplate gFieldEffectObjectTemplate_SurfBlob; const struct SpriteTemplate gFieldEffectObjectTemplate_Arrow; const struct SpriteTemplate gFieldEffectObjectTemplate_GroundImpactDust; -const struct SpriteTemplate gFieldEffectObjectTemplate_BikeHopTallGrass; +const struct SpriteTemplate gFieldEffectObjectTemplate_JumpTallGrass; const struct SpriteTemplate gFieldEffectObjectTemplate_SandFootprints; -const struct SpriteTemplate gFieldEffectObjectTemplate_BikeHopBigSplash; +const struct SpriteTemplate gFieldEffectObjectTemplate_JumpBigSplash; const struct SpriteTemplate gFieldEffectObjectTemplate_Splash; -const struct SpriteTemplate gFieldEffectObjectTemplate_BikeHopSmallSplash; +const struct SpriteTemplate gFieldEffectObjectTemplate_JumpSmallSplash; const struct SpriteTemplate gFieldEffectObjectTemplate_LongGrass; -const struct SpriteTemplate gFieldEffectObjectTemplate_Unknown16; +const struct SpriteTemplate gFieldEffectObjectTemplate_JumpLongGrass; const struct SpriteTemplate gFieldEffectObjectTemplate_Unknown17; -const struct SpriteTemplate gFieldEffectObjectTemplate_Unknown18; +const struct SpriteTemplate gFieldEffectObjectTemplate_UnusedGrass; const struct SpriteTemplate gFieldEffectObjectTemplate_Unknown19; const struct SpriteTemplate gFieldEffectObjectTemplate_Unknown20; -const struct SpriteTemplate gFieldEffectObjectTemplate_Unknown21; -const struct SpriteTemplate gFieldEffectObjectTemplate_BerryTreeGrowthSparkle; +const struct SpriteTemplate gFieldEffectObjectTemplate_ReflectionDistortion; +const struct SpriteTemplate gFieldEffectObjectTemplate_Sparkle; const struct SpriteTemplate gFieldEffectObjectTemplate_DeepSandFootprints; const struct SpriteTemplate gFieldEffectObjectTemplate_TreeDisguise; const struct SpriteTemplate gFieldEffectObjectTemplate_MountainDisguise; const struct SpriteTemplate gFieldEffectObjectTemplate_Bird; const struct SpriteTemplate gFieldEffectObjectTemplate_BikeTireTracks; const struct SpriteTemplate gFieldEffectObjectTemplate_SandDisguisePlaceholder; -const struct SpriteTemplate gFieldEffectObjectTemplate_Unknown29; +const struct SpriteTemplate gFieldEffectObjectTemplate_SandPile; const struct SpriteTemplate gFieldEffectObjectTemplate_ShortGrass; const struct SpriteTemplate gFieldEffectObjectTemplate_HotSpringsWater; const struct SpriteTemplate gFieldEffectObjectTemplate_JumpOutOfAsh; const struct SpriteTemplate gFieldEffectObjectTemplate_LavaridgeGymWarp; const struct SpriteTemplate gFieldEffectObjectTemplate_Bubbles; -const struct SpriteTemplate gFieldEffectObjectTemplate_Unknown35; +const struct SpriteTemplate gFieldEffectObjectTemplate_SmallSparkle; const struct SpriteTemplate gFieldEffectObjectTemplate_Rayquaza; const struct SpriteTemplate *const gFieldEffectObjectTemplatePointers[] = { - &gFieldEffectObjectTemplate_ShadowSmall, - &gFieldEffectObjectTemplate_ShadowMedium, - &gFieldEffectObjectTemplate_ShadowLarge, - &gFieldEffectObjectTemplate_ShadowExtraLarge, - &gFieldEffectObjectTemplate_TallGrass, - &gFieldEffectObjectTemplate_Ripple, - &gFieldEffectObjectTemplate_Ash, - &gFieldEffectObjectTemplate_SurfBlob, - &gFieldEffectObjectTemplate_Arrow, - &gFieldEffectObjectTemplate_GroundImpactDust, - &gFieldEffectObjectTemplate_BikeHopTallGrass, - &gFieldEffectObjectTemplate_SandFootprints, - &gFieldEffectObjectTemplate_BikeHopBigSplash, - &gFieldEffectObjectTemplate_Splash, - &gFieldEffectObjectTemplate_BikeHopSmallSplash, - &gFieldEffectObjectTemplate_LongGrass, - &gFieldEffectObjectTemplate_Unknown16, - &gFieldEffectObjectTemplate_Unknown17, - &gFieldEffectObjectTemplate_Unknown18, - &gFieldEffectObjectTemplate_Unknown19, - &gFieldEffectObjectTemplate_Unknown20, - &gFieldEffectObjectTemplate_Unknown21, - &gFieldEffectObjectTemplate_BerryTreeGrowthSparkle, - &gFieldEffectObjectTemplate_DeepSandFootprints, - &gFieldEffectObjectTemplate_TreeDisguise, - &gFieldEffectObjectTemplate_MountainDisguise, - &gFieldEffectObjectTemplate_Bird, - &gFieldEffectObjectTemplate_BikeTireTracks, - &gFieldEffectObjectTemplate_SandDisguisePlaceholder, - &gFieldEffectObjectTemplate_Unknown29, - &gFieldEffectObjectTemplate_ShortGrass, - &gFieldEffectObjectTemplate_HotSpringsWater, - &gFieldEffectObjectTemplate_JumpOutOfAsh, - &gFieldEffectObjectTemplate_LavaridgeGymWarp, - &gFieldEffectObjectTemplate_Bubbles, - &gFieldEffectObjectTemplate_Unknown35, - &gFieldEffectObjectTemplate_Rayquaza, + [FLDEFFOBJ_SHADOW_S] = &gFieldEffectObjectTemplate_ShadowSmall, + [FLDEFFOBJ_SHADOW_M] = &gFieldEffectObjectTemplate_ShadowMedium, + [FLDEFFOBJ_SHADOW_L] = &gFieldEffectObjectTemplate_ShadowLarge, + [FLDEFFOBJ_SHADOW_XL] = &gFieldEffectObjectTemplate_ShadowExtraLarge, + [FLDEFFOBJ_TALL_GRASS] = &gFieldEffectObjectTemplate_TallGrass, + [FLDEFFOBJ_RIPPLE] = &gFieldEffectObjectTemplate_Ripple, + [FLDEFFOBJ_ASH] = &gFieldEffectObjectTemplate_Ash, + [FLDEFFOBJ_SURF_BLOB] = &gFieldEffectObjectTemplate_SurfBlob, + [FLDEFFOBJ_ARROW] = &gFieldEffectObjectTemplate_Arrow, + [FLDEFFOBJ_GROUND_IMPACT_DUST] = &gFieldEffectObjectTemplate_GroundImpactDust, + [FLDEFFOBJ_JUMP_TALL_GRASS] = &gFieldEffectObjectTemplate_JumpTallGrass, + [FLDEFFOBJ_SAND_FOOTPRINTS] = &gFieldEffectObjectTemplate_SandFootprints, + [FLDEFFOBJ_JUMP_BIG_SPLASH] = &gFieldEffectObjectTemplate_JumpBigSplash, + [FLDEFFOBJ_SPLASH] = &gFieldEffectObjectTemplate_Splash, + [FLDEFFOBJ_JUMP_SMALL_SPLASH] = &gFieldEffectObjectTemplate_JumpSmallSplash, + [FLDEFFOBJ_LONG_GRASS] = &gFieldEffectObjectTemplate_LongGrass, + [FLDEFFOBJ_JUMP_LONG_GRASS] = &gFieldEffectObjectTemplate_JumpLongGrass, + [FLDEFFOBJ_17] = &gFieldEffectObjectTemplate_Unknown17, + [FLDEFFOBJ_UNUSED_GRASS] = &gFieldEffectObjectTemplate_UnusedGrass, + [FLDEFFOBJ_19] = &gFieldEffectObjectTemplate_Unknown19, + [FLDEFFOBJ_20] = &gFieldEffectObjectTemplate_Unknown20, + [FLDEFFOBJ_REFLECTION_DISTORTION] = &gFieldEffectObjectTemplate_ReflectionDistortion, + [FLDEFFOBJ_SPARKLE] = &gFieldEffectObjectTemplate_Sparkle, + [FLDEFFOBJ_DEEP_SAND_FOOTPRINTS] = &gFieldEffectObjectTemplate_DeepSandFootprints, + [FLDEFFOBJ_TREE_DISGUISE] = &gFieldEffectObjectTemplate_TreeDisguise, + [FLDEFFOBJ_MOUNTAIN_DISGUISE] = &gFieldEffectObjectTemplate_MountainDisguise, + [FLDEFFOBJ_BIRD] = &gFieldEffectObjectTemplate_Bird, + [FLDEFFOBJ_BIKE_TIRE_TRACKS] = &gFieldEffectObjectTemplate_BikeTireTracks, + [FLDEFFOBJ_SAND_DISGUISE] = &gFieldEffectObjectTemplate_SandDisguisePlaceholder, + [FLDEFFOBJ_SAND_PILE] = &gFieldEffectObjectTemplate_SandPile, + [FLDEFFOBJ_SHORT_GRASS] = &gFieldEffectObjectTemplate_ShortGrass, + [FLDEFFOBJ_HOT_SPRINGS_WATER] = &gFieldEffectObjectTemplate_HotSpringsWater, + [FLDEFFOBJ_JUMP_OUT_OF_ASH] = &gFieldEffectObjectTemplate_JumpOutOfAsh, + [FLDEFFOBJ_LAVARIDGE_GYM_WARP] = &gFieldEffectObjectTemplate_LavaridgeGymWarp, + [FLDEFFOBJ_BUBBLES] = &gFieldEffectObjectTemplate_Bubbles, + [FLDEFFOBJ_SMALL_SPARKLE] = &gFieldEffectObjectTemplate_SmallSparkle, + [FLDEFFOBJ_RAYQUAZA] = &gFieldEffectObjectTemplate_Rayquaza, }; diff --git a/src/data/field_effects/field_effect_objects.h b/src/data/field_effects/field_effect_objects.h index 65f35107d7..4654a133ac 100755 --- a/src/data/field_effects/field_effect_objects.h +++ b/src/data/field_effects/field_effect_objects.h @@ -225,11 +225,11 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_GroundImpactDust[] = const struct SpriteTemplate gFieldEffectObjectTemplate_GroundImpactDust = {0xFFFF, 0x1004, &gObjectEventBaseOam_16x8, gFieldEffectObjectImageAnimTable_GroundImpactDust, gFieldEffectObjectPicTable_GroundImpactDust, gDummySpriteAffineAnimTable, sub_8156194}; -const struct SpriteFrameImage gFieldEffectObjectPicTable_BikeHopTallGrass[] = { - overworld_frame(gFieldEffectObjectPic_BikeHopTallGrass, 2, 1, 0), - overworld_frame(gFieldEffectObjectPic_BikeHopTallGrass, 2, 1, 1), - overworld_frame(gFieldEffectObjectPic_BikeHopTallGrass, 2, 1, 2), - overworld_frame(gFieldEffectObjectPic_BikeHopTallGrass, 2, 1, 3), +const struct SpriteFrameImage gFieldEffectObjectPicTable_JumpTallGrass[] = { + overworld_frame(gFieldEffectObjectPic_JumpTallGrass, 2, 1, 0), + overworld_frame(gFieldEffectObjectPic_JumpTallGrass, 2, 1, 1), + overworld_frame(gFieldEffectObjectPic_JumpTallGrass, 2, 1, 2), + overworld_frame(gFieldEffectObjectPic_JumpTallGrass, 2, 1, 3), }; const union AnimCmd gFieldEffectObjectImageAnim_850CCD8[] = @@ -241,12 +241,12 @@ const union AnimCmd gFieldEffectObjectImageAnim_850CCD8[] = ANIMCMD_END, }; -const union AnimCmd *const gFieldEffectObjectImageAnimTable_BikeHopTallGrass[] = +const union AnimCmd *const gFieldEffectObjectImageAnimTable_JumpTallGrass[] = { gFieldEffectObjectImageAnim_850CCD8, }; -const struct SpriteTemplate gFieldEffectObjectTemplate_BikeHopTallGrass = {0xFFFF, 0x1005, &gObjectEventBaseOam_16x8, gFieldEffectObjectImageAnimTable_BikeHopTallGrass, gFieldEffectObjectPicTable_BikeHopTallGrass, gDummySpriteAffineAnimTable, sub_8156194}; +const struct SpriteTemplate gFieldEffectObjectTemplate_JumpTallGrass = {0xFFFF, 0x1005, &gObjectEventBaseOam_16x8, gFieldEffectObjectImageAnimTable_JumpTallGrass, gFieldEffectObjectPicTable_JumpTallGrass, gDummySpriteAffineAnimTable, sub_8156194}; const struct SpriteFrameImage gFieldEffectObjectPicTable_SandFootprints[] = { overworld_frame(gFieldEffectObjectPic_SandFootprints, 2, 2, 0), @@ -398,11 +398,11 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_BikeTireTracks[] = const struct SpriteTemplate gFieldEffectObjectTemplate_BikeTireTracks = {0xFFFF, 0x1004, &gObjectEventBaseOam_16x16, gFieldEffectObjectImageAnimTable_BikeTireTracks, gFieldEffectObjectPicTable_BikeTireTracks, gDummySpriteAffineAnimTable, UpdateFootprintsTireTracksFieldEffect}; -const struct SpriteFrameImage gFieldEffectObjectPicTable_BikeHopBigSplash[] = { - overworld_frame(gFieldEffectObjectPic_BikeHopBigSplash, 2, 2, 0), - overworld_frame(gFieldEffectObjectPic_BikeHopBigSplash, 2, 2, 1), - overworld_frame(gFieldEffectObjectPic_BikeHopBigSplash, 2, 2, 2), - overworld_frame(gFieldEffectObjectPic_BikeHopBigSplash, 2, 2, 3), +const struct SpriteFrameImage gFieldEffectObjectPicTable_JumpBigSplash[] = { + overworld_frame(gFieldEffectObjectPic_JumpBigSplash, 2, 2, 0), + overworld_frame(gFieldEffectObjectPic_JumpBigSplash, 2, 2, 1), + overworld_frame(gFieldEffectObjectPic_JumpBigSplash, 2, 2, 2), + overworld_frame(gFieldEffectObjectPic_JumpBigSplash, 2, 2, 3), }; const union AnimCmd gFieldEffectObjectImageAnim_850CE7C[] = @@ -414,12 +414,12 @@ const union AnimCmd gFieldEffectObjectImageAnim_850CE7C[] = ANIMCMD_END, }; -const union AnimCmd *const gFieldEffectObjectImageAnimTable_BikeHopBigSplash[] = +const union AnimCmd *const gFieldEffectObjectImageAnimTable_JumpBigSplash[] = { gFieldEffectObjectImageAnim_850CE7C, }; -const struct SpriteTemplate gFieldEffectObjectTemplate_BikeHopBigSplash = {0xFFFF, 0x1004, &gObjectEventBaseOam_16x16, gFieldEffectObjectImageAnimTable_BikeHopBigSplash, gFieldEffectObjectPicTable_BikeHopBigSplash, gDummySpriteAffineAnimTable, sub_8156194}; +const struct SpriteTemplate gFieldEffectObjectTemplate_JumpBigSplash = {0xFFFF, 0x1004, &gObjectEventBaseOam_16x16, gFieldEffectObjectImageAnimTable_JumpBigSplash, gFieldEffectObjectPicTable_JumpBigSplash, gDummySpriteAffineAnimTable, sub_8156194}; const struct SpriteFrameImage gFieldEffectObjectPicTable_Splash[] = { overworld_frame(gFieldEffectObjectPic_Splash, 2, 1, 0), @@ -454,10 +454,10 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_Splash[] = const struct SpriteTemplate gFieldEffectObjectTemplate_Splash = {0xFFFF, 0x1004, &gObjectEventBaseOam_16x8, gFieldEffectObjectImageAnimTable_Splash, gFieldEffectObjectPicTable_Splash, gDummySpriteAffineAnimTable, UpdateSplashFieldEffect}; -const struct SpriteFrameImage gFieldEffectObjectPicTable_BikeHopSmallSplash[] = { - overworld_frame(gFieldEffectObjectPic_BikeHopSmallSplash, 2, 1, 0), - overworld_frame(gFieldEffectObjectPic_BikeHopSmallSplash, 2, 1, 1), - overworld_frame(gFieldEffectObjectPic_BikeHopSmallSplash, 2, 1, 2), +const struct SpriteFrameImage gFieldEffectObjectPicTable_JumpSmallSplash[] = { + overworld_frame(gFieldEffectObjectPic_JumpSmallSplash, 2, 1, 0), + overworld_frame(gFieldEffectObjectPic_JumpSmallSplash, 2, 1, 1), + overworld_frame(gFieldEffectObjectPic_JumpSmallSplash, 2, 1, 2), }; const union AnimCmd gFieldEffectObjectImageAnim_850CF24[] = @@ -468,12 +468,12 @@ const union AnimCmd gFieldEffectObjectImageAnim_850CF24[] = ANIMCMD_END, }; -const union AnimCmd *const gFieldEffectObjectImageAnimTable_BikeHopSmallSplash[] = +const union AnimCmd *const gFieldEffectObjectImageAnimTable_JumpSmallSplash[] = { gFieldEffectObjectImageAnim_850CF24, }; -const struct SpriteTemplate gFieldEffectObjectTemplate_BikeHopSmallSplash = {0xFFFF, 0x1004, &gObjectEventBaseOam_16x8, gFieldEffectObjectImageAnimTable_BikeHopSmallSplash, gFieldEffectObjectPicTable_BikeHopSmallSplash, gDummySpriteAffineAnimTable, sub_8156194}; +const struct SpriteTemplate gFieldEffectObjectTemplate_JumpSmallSplash = {0xFFFF, 0x1004, &gObjectEventBaseOam_16x8, gFieldEffectObjectImageAnimTable_JumpSmallSplash, gFieldEffectObjectPicTable_JumpSmallSplash, gDummySpriteAffineAnimTable, sub_8156194}; const struct SpriteFrameImage gFieldEffectObjectPicTable_LongGrass[] = { overworld_frame(gFieldEffectObjectPic_LongGrass, 2, 2, 0), @@ -501,13 +501,13 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_LongGrass[] = const struct SpriteTemplate gFieldEffectObjectTemplate_LongGrass = {0xFFFF, 0x1005, &gObjectEventBaseOam_16x16, gFieldEffectObjectImageAnimTable_LongGrass, gFieldEffectObjectPicTable_LongGrass, gDummySpriteAffineAnimTable, UpdateLongGrassFieldEffect}; -const struct SpriteFrameImage gFieldEffectObjectPicTable_Unknown16[] = { - overworld_frame(gFieldEffectObjectPic_Unknown16, 2, 2, 0), - overworld_frame(gFieldEffectObjectPic_Unknown16, 2, 2, 1), - overworld_frame(gFieldEffectObjectPic_Unknown16, 2, 2, 2), - overworld_frame(gFieldEffectObjectPic_Unknown16, 2, 2, 3), - overworld_frame(gFieldEffectObjectPic_Unknown16, 2, 2, 4), - overworld_frame(gFieldEffectObjectPic_Unknown16, 2, 2, 6), +const struct SpriteFrameImage gFieldEffectObjectPicTable_JumpLongGrass[] = { + overworld_frame(gFieldEffectObjectPic_JumpLongGrass, 2, 2, 0), + overworld_frame(gFieldEffectObjectPic_JumpLongGrass, 2, 2, 1), + overworld_frame(gFieldEffectObjectPic_JumpLongGrass, 2, 2, 2), + overworld_frame(gFieldEffectObjectPic_JumpLongGrass, 2, 2, 3), + overworld_frame(gFieldEffectObjectPic_JumpLongGrass, 2, 2, 4), + overworld_frame(gFieldEffectObjectPic_JumpLongGrass, 2, 2, 6), }; const union AnimCmd gFieldEffectObjectImageAnim_850CFDC[] = @@ -521,15 +521,15 @@ const union AnimCmd gFieldEffectObjectImageAnim_850CFDC[] = ANIMCMD_END, }; -const union AnimCmd *const gFieldEffectObjectImageAnimTable_Unknown16[] = +const union AnimCmd *const gFieldEffectObjectImageAnimTable_JumpLongGrass[] = { gFieldEffectObjectImageAnim_850CFDC, }; -const struct SpriteTemplate gFieldEffectObjectTemplate_Unknown16 = {0xFFFF, 0x1005, &gObjectEventBaseOam_16x16, gFieldEffectObjectImageAnimTable_Unknown16, gFieldEffectObjectPicTable_Unknown16, gDummySpriteAffineAnimTable, sub_8156194}; +const struct SpriteTemplate gFieldEffectObjectTemplate_JumpLongGrass = {0xFFFF, 0x1005, &gObjectEventBaseOam_16x16, gFieldEffectObjectImageAnimTable_JumpLongGrass, gFieldEffectObjectPicTable_JumpLongGrass, gDummySpriteAffineAnimTable, sub_8156194}; const struct SpriteFrameImage gFieldEffectObjectPicTable_Unknown17[] = { - overworld_frame(gFieldEffectObjectPic_Unknown16, 2, 2, 6), + overworld_frame(gFieldEffectObjectPic_JumpLongGrass, 2, 2, 6), overworld_frame(gFieldEffectObjectPic_Unknown17, 2, 2, 0), overworld_frame(gFieldEffectObjectPic_Unknown17, 2, 2, 1), overworld_frame(gFieldEffectObjectPic_Unknown17, 2, 2, 2), @@ -561,11 +561,11 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_Unknown17[] = const struct SpriteTemplate gFieldEffectObjectTemplate_Unknown17 = {0xFFFF, 0x1005, &gObjectEventBaseOam_16x16, gFieldEffectObjectImageAnimTable_Unknown17, gFieldEffectObjectPicTable_Unknown17, gDummySpriteAffineAnimTable, WaitFieldEffectSpriteAnim}; -const struct SpriteFrameImage gFieldEffectObjectPicTable_Unknown18[] = { - overworld_frame(gFieldEffectObjectPic_Unknown18, 2, 2, 0), - overworld_frame(gFieldEffectObjectPic_Unknown18, 2, 2, 1), - overworld_frame(gFieldEffectObjectPic_Unknown18, 2, 2, 2), - overworld_frame(gFieldEffectObjectPic_Unknown18, 2, 2, 3), +const struct SpriteFrameImage gFieldEffectObjectPicTable_UnusedGrass[] = { + overworld_frame(gFieldEffectObjectPic_UnusedGrass, 2, 2, 0), + overworld_frame(gFieldEffectObjectPic_UnusedGrass, 2, 2, 1), + overworld_frame(gFieldEffectObjectPic_UnusedGrass, 2, 2, 2), + overworld_frame(gFieldEffectObjectPic_UnusedGrass, 2, 2, 3), }; const union AnimCmd gFieldEffectObjectImageAnim_850D0C0[] = @@ -579,12 +579,12 @@ const union AnimCmd gFieldEffectObjectImageAnim_850D0C0[] = ANIMCMD_JUMP(0), }; -const union AnimCmd *const gFieldEffectObjectImageAnimTable_Unknown18[] = +const union AnimCmd *const gFieldEffectObjectImageAnimTable_UnusedGrass[] = { gFieldEffectObjectImageAnim_850D0C0, }; -const struct SpriteTemplate gFieldEffectObjectTemplate_Unknown18 = {0xFFFF, 0x1005, &gObjectEventBaseOam_16x16, gFieldEffectObjectImageAnimTable_Unknown18, gFieldEffectObjectPicTable_Unknown18, gDummySpriteAffineAnimTable, WaitFieldEffectSpriteAnim}; +const struct SpriteTemplate gFieldEffectObjectTemplate_UnusedGrass = {0xFFFF, 0x1005, &gObjectEventBaseOam_16x16, gFieldEffectObjectImageAnimTable_UnusedGrass, gFieldEffectObjectPicTable_UnusedGrass, gDummySpriteAffineAnimTable, WaitFieldEffectSpriteAnim}; const struct SpriteFrameImage gFieldEffectObjectPicTable_Unknown19[] = { overworld_frame(gFieldEffectObjectPic_Unknown19, 2, 2, 0), @@ -609,10 +609,10 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_Unknown19[] = const struct SpriteTemplate gFieldEffectObjectTemplate_Unknown19 = {0xFFFF, 0x1004, &gObjectEventBaseOam_16x16, gFieldEffectObjectImageAnimTable_Unknown19, gFieldEffectObjectPicTable_Unknown19, gDummySpriteAffineAnimTable, WaitFieldEffectSpriteAnim}; -const struct SpriteFrameImage gFieldEffectObjectPicTable_Unknown29[] = { - overworld_frame(gFieldEffectObjectPic_Unknown29, 2, 1, 0), - overworld_frame(gFieldEffectObjectPic_Unknown29, 2, 1, 1), - overworld_frame(gFieldEffectObjectPic_Unknown29, 2, 1, 2), +const struct SpriteFrameImage gFieldEffectObjectPicTable_SandPile[] = { + overworld_frame(gFieldEffectObjectPic_SandPile, 2, 1, 0), + overworld_frame(gFieldEffectObjectPic_SandPile, 2, 1, 1), + overworld_frame(gFieldEffectObjectPic_SandPile, 2, 1, 2), }; const union AnimCmd gFieldEffectObjectImageAnim_850D160[] = @@ -623,12 +623,12 @@ const union AnimCmd gFieldEffectObjectImageAnim_850D160[] = ANIMCMD_END, }; -const union AnimCmd *const gFieldEffectObjectImageAnimTable_Unknown29[] = +const union AnimCmd *const gFieldEffectObjectImageAnimTable_SandPile[] = { gFieldEffectObjectImageAnim_850D160, }; -const struct SpriteTemplate gFieldEffectObjectTemplate_Unknown29 = {0xFFFF, 0x1004, &gObjectEventBaseOam_16x8, gFieldEffectObjectImageAnimTable_Unknown29, gFieldEffectObjectPicTable_Unknown29, gDummySpriteAffineAnimTable, UpdateSandPileFieldEffect}; +const struct SpriteTemplate gFieldEffectObjectTemplate_SandPile = {0xFFFF, 0x1004, &gObjectEventBaseOam_16x8, gFieldEffectObjectImageAnimTable_SandPile, gFieldEffectObjectPicTable_SandPile, gDummySpriteAffineAnimTable, UpdateSandPileFieldEffect}; const struct SpriteFrameImage gFieldEffectObjectPicTable_Unknown20[] = { overworld_frame(gFieldEffectObjectPic_Unknown20, 2, 2, 0), @@ -683,21 +683,21 @@ const union AffineAnimCmd gFieldEffectObjectRotScalAnim_850D234[] = AFFINEANIMCMD_JUMP(1), }; -const union AffineAnimCmd *const gFieldEffectObjectRotScalAnimTable_Unknown21[] = +const union AffineAnimCmd *const gFieldEffectObjectRotScalAnimTable_ReflectionDistortion[] = { gFieldEffectObjectRotScalAnim_850D1E4, gFieldEffectObjectRotScalAnim_850D234, }; -const struct SpriteTemplate gFieldEffectObjectTemplate_Unknown21 = {0x0, 0xFFFF, &gDummyOamData, gDummySpriteAnimTable, NULL, gFieldEffectObjectRotScalAnimTable_Unknown21, SpriteCallbackDummy}; +const struct SpriteTemplate gFieldEffectObjectTemplate_ReflectionDistortion = {0x0, 0xFFFF, &gDummyOamData, gDummySpriteAnimTable, NULL, gFieldEffectObjectRotScalAnimTable_ReflectionDistortion, SpriteCallbackDummy}; -const struct SpriteFrameImage gFieldEffectObjectPicTable_BerryTreeGrowthSparkle[] = { - overworld_frame(gFieldEffectObjectPic_BerryTreeGrowthSparkle, 2, 2, 0), - overworld_frame(gFieldEffectObjectPic_BerryTreeGrowthSparkle, 2, 2, 1), - overworld_frame(gFieldEffectObjectPic_BerryTreeGrowthSparkle, 2, 2, 2), - overworld_frame(gFieldEffectObjectPic_BerryTreeGrowthSparkle, 2, 2, 3), - overworld_frame(gFieldEffectObjectPic_BerryTreeGrowthSparkle, 2, 2, 4), - overworld_frame(gFieldEffectObjectPic_BerryTreeGrowthSparkle, 2, 2, 5), +const struct SpriteFrameImage gFieldEffectObjectPicTable_Sparkle[] = { + overworld_frame(gFieldEffectObjectPic_Sparkle, 2, 2, 0), + overworld_frame(gFieldEffectObjectPic_Sparkle, 2, 2, 1), + overworld_frame(gFieldEffectObjectPic_Sparkle, 2, 2, 2), + overworld_frame(gFieldEffectObjectPic_Sparkle, 2, 2, 3), + overworld_frame(gFieldEffectObjectPic_Sparkle, 2, 2, 4), + overworld_frame(gFieldEffectObjectPic_Sparkle, 2, 2, 5), }; const union AnimCmd gFieldEffectObjectImageAnim_850D2D4[] = @@ -725,12 +725,12 @@ const union AnimCmd gFieldEffectObjectImageAnim_850D2D4[] = ANIMCMD_END, }; -const union AnimCmd *const gFieldEffectObjectImageAnimTable_BerryTreeGrowthSparkle[] = +const union AnimCmd *const gFieldEffectObjectImageAnimTable_Sparkle[] = { gFieldEffectObjectImageAnim_850D2D4, }; -const struct SpriteTemplate gFieldEffectObjectTemplate_BerryTreeGrowthSparkle = {0xFFFF, 0xFFFF, &gObjectEventBaseOam_16x16, gFieldEffectObjectImageAnimTable_BerryTreeGrowthSparkle, gFieldEffectObjectPicTable_BerryTreeGrowthSparkle, gDummySpriteAffineAnimTable, WaitFieldEffectSpriteAnim}; +const struct SpriteTemplate gFieldEffectObjectTemplate_Sparkle = {0xFFFF, 0xFFFF, &gObjectEventBaseOam_16x16, gFieldEffectObjectImageAnimTable_Sparkle, gFieldEffectObjectPicTable_Sparkle, gDummySpriteAffineAnimTable, WaitFieldEffectSpriteAnim}; const struct SpriteFrameImage gFieldEffectObjectPicTable_TreeDisguise[] = { overworld_frame(gFieldEffectObjectPic_TreeDisguise, 2, 4, 0), @@ -970,9 +970,9 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_Bubbles[] = const struct SpriteTemplate gFieldEffectObjectTemplate_Bubbles = {0xFFFF, 0x1004, &gObjectEventBaseOam_16x32, gFieldEffectObjectImageAnimTable_Bubbles, gFieldEffectObjectPicTable_Bubbles, gDummySpriteAffineAnimTable, UpdateBubblesFieldEffect}; -const struct SpriteFrameImage gFieldEffectObjectPicTable_Unknown35[] = { - overworld_frame(gFieldEffectObjectPic_Unknown35, 2, 2, 0), - overworld_frame(gFieldEffectObjectPic_Unknown35, 2, 2, 1), +const struct SpriteFrameImage gFieldEffectObjectPicTable_SmallSparkle[] = { + overworld_frame(gFieldEffectObjectPic_SmallSparkle, 2, 2, 0), + overworld_frame(gFieldEffectObjectPic_SmallSparkle, 2, 2, 1), }; const union AnimCmd gFieldEffectObjectImageAnim_850D674[] = @@ -983,12 +983,12 @@ const union AnimCmd gFieldEffectObjectImageAnim_850D674[] = ANIMCMD_END, }; -const union AnimCmd *const gFieldEffectObjectImageAnimTable_Unknown35[] = +const union AnimCmd *const gFieldEffectObjectImageAnimTable_SmallSparkle[] = { gFieldEffectObjectImageAnim_850D674, }; -const struct SpriteTemplate gFieldEffectObjectTemplate_Unknown35 = {0xFFFF, 0x100F, &gObjectEventBaseOam_16x16, gFieldEffectObjectImageAnimTable_Unknown35, gFieldEffectObjectPicTable_Unknown35, gDummySpriteAffineAnimTable, UpdateSparkleFieldEffect}; +const struct SpriteTemplate gFieldEffectObjectTemplate_SmallSparkle = {0xFFFF, 0x100F, &gObjectEventBaseOam_16x16, gFieldEffectObjectImageAnimTable_SmallSparkle, gFieldEffectObjectPicTable_SmallSparkle, gDummySpriteAffineAnimTable, UpdateSparkleFieldEffect}; const struct SpritePalette gFieldEffectObjectPaletteInfo3 = {gFieldEffectObjectPalette3, 0x100F}; diff --git a/src/data/object_events/object_event_graphics.h b/src/data/object_events/object_event_graphics.h index 769a6bb0a1..371ff38159 100755 --- a/src/data/object_events/object_event_graphics.h +++ b/src/data/object_events/object_event_graphics.h @@ -252,7 +252,7 @@ const u32 gObjectEventPic_CableCar[] = INCBIN_U32("graphics/object_events/pics/m const u16 gObjectEventPalette20[] = INCBIN_U16("graphics/object_events/palettes/20.gbapal"); const u32 gObjectEventPic_SSTidal[] = INCBIN_U32("graphics/object_events/pics/misc/ss_tidal.4bpp"); const u16 gObjectEventPalette21[] = INCBIN_U16("graphics/object_events/palettes/21.gbapal"); -const u32 gFieldEffectObjectPic_BerryTreeGrowthSparkle[] = INCBIN_U32("graphics/field_effects/pics/berry_tree_growth_sparkle.4bpp"); +const u32 gFieldEffectObjectPic_Sparkle[] = INCBIN_U32("graphics/field_effects/pics/sparkle.4bpp"); const u32 gObjectEventPic_BerryTreeDirtPile[] = INCBIN_U32("graphics/object_events/pics/berry_trees/dirt_pile.4bpp"); const u32 gObjectEventPic_BerryTreeSprout[] = INCBIN_U32("graphics/object_events/pics/berry_trees/sprout.4bpp"); const u32 gObjectEventPic_PechaBerryTree[] = INCBIN_U32("graphics/object_events/pics/berry_trees/pecha.4bpp"); @@ -303,11 +303,11 @@ const u32 gFieldEffectObjectPic_Arrow[] = INCBIN_U32("graphics/field_effects/pic const u16 gFieldEffectObjectPalette0[] = INCBIN_U16("graphics/field_effects/palettes/00.gbapal"); const u16 gFieldEffectObjectPalette1[] = INCBIN_U16("graphics/field_effects/palettes/01.gbapal"); const u32 gFieldEffectObjectPic_GroundImpactDust[] = INCBIN_U32("graphics/field_effects/pics/ground_impact_dust.4bpp"); -const u32 gFieldEffectObjectPic_BikeHopTallGrass[] = INCBIN_U32("graphics/field_effects/pics/bike_hop_tall_grass.4bpp"); -const u32 gUnusedGrass[] = INCBIN_U32("graphics/field_effects/pics/unused_grass.4bpp"); -const u32 gFieldEffectObjectPic_Unknown16[] = INCBIN_U32("graphics/field_effects/pics/unknown_16.4bpp"); +const u32 gFieldEffectObjectPic_JumpTallGrass[] = INCBIN_U32("graphics/field_effects/pics/bike_hop_tall_grass.4bpp"); +const u32 gUnusedGrass[] = INCBIN_U32("graphics/field_effects/pics/unused_grass_2.4bpp"); +const u32 gFieldEffectObjectPic_JumpLongGrass[] = INCBIN_U32("graphics/field_effects/pics/unknown_16.4bpp"); const u32 gFieldEffectObjectPic_Unknown17[] = INCBIN_U32("graphics/field_effects/pics/unknown_17.4bpp"); -const u32 gFieldEffectObjectPic_Unknown18[] = INCBIN_U32("graphics/field_effects/pics/unknown_18.4bpp"); +const u32 gFieldEffectObjectPic_UnusedGrass[] = INCBIN_U32("graphics/field_effects/pics/unused_grass.4bpp"); const u32 gFieldEffectObjectPic_LongGrass[] = INCBIN_U32("graphics/field_effects/pics/long_grass.4bpp"); const u32 gFieldEffectObjectPic_TallGrass[] = INCBIN_U32("graphics/field_effects/pics/tall_grass.4bpp"); const u32 gFieldEffectObjectPic_ShortGrass[] = INCBIN_U32("graphics/field_effects/pics/short_grass.4bpp"); @@ -315,10 +315,10 @@ const u32 gFieldEffectObjectPic_SandFootprints[] = INCBIN_U32("graphics/field_ef const u32 gFieldEffectObjectPic_DeepSandFootprints[] = INCBIN_U32("graphics/field_effects/pics/deep_sand_footprints.4bpp"); const u32 gFieldEffectObjectPic_BikeTireTracks[] = INCBIN_U32("graphics/field_effects/pics/bike_tire_tracks.4bpp"); const u32 gFieldEffectObjectPic_Unknown19[] = INCBIN_U32("graphics/field_effects/pics/unknown_19.4bpp"); -const u32 gFieldEffectObjectPic_Unknown29[] = INCBIN_U32("graphics/field_effects/pics/unknown_29.4bpp"); -const u32 gFieldEffectObjectPic_BikeHopBigSplash[] = INCBIN_U32("graphics/field_effects/pics/bike_hop_big_splash.4bpp"); +const u32 gFieldEffectObjectPic_SandPile[] = INCBIN_U32("graphics/field_effects/pics/sand_pile.4bpp"); +const u32 gFieldEffectObjectPic_JumpBigSplash[] = INCBIN_U32("graphics/field_effects/pics/bike_hop_big_splash.4bpp"); const u32 gFieldEffectObjectPic_Splash[] = INCBIN_U32("graphics/field_effects/pics/splash.4bpp"); -const u32 gFieldEffectObjectPic_BikeHopSmallSplash[] = INCBIN_U32("graphics/field_effects/pics/bike_hop_small_splash.4bpp"); +const u32 gFieldEffectObjectPic_JumpSmallSplash[] = INCBIN_U32("graphics/field_effects/pics/bike_hop_small_splash.4bpp"); const u32 gFieldEffectObjectPic_Unknown20[] = INCBIN_U32("graphics/field_effects/pics/unknown_20.4bpp"); const u32 gFieldEffectObjectPic_TreeDisguise[] = INCBIN_U32("graphics/field_effects/pics/tree_disguise.4bpp"); const u32 gFieldEffectObjectPic_MountainDisguise[] = INCBIN_U32("graphics/field_effects/pics/mountain_disguise.4bpp"); @@ -328,7 +328,7 @@ const u16 gFieldEffectObjectPalette2[] = INCBIN_U16("graphics/field_effects/pale const u32 gFieldEffectObjectPic_JumpOutOfAsh[] = INCBIN_U32("graphics/field_effects/pics/jump_out_of_ash.4bpp"); const u32 gFieldEffectObjectPic_LavaridgeGymWarp[] = INCBIN_U32("graphics/field_effects/pics/lavaridge_gym_warp.4bpp"); const u32 gFieldEffectObjectPic_Bubbles[] = INCBIN_U32("graphics/field_effects/pics/bubbles.4bpp"); -const u32 gFieldEffectObjectPic_Unknown35[] = INCBIN_U32("graphics/field_effects/pics/unknown_35.4bpp"); +const u32 gFieldEffectObjectPic_SmallSparkle[] = INCBIN_U32("graphics/field_effects/pics/small_sparkle.4bpp"); const u16 gFieldEffectObjectPalette3[] = INCBIN_U16("graphics/field_effects/palettes/03.gbapal"); const u32 gFieldEffectObjectPic_Bird[] = INCBIN_U32("graphics/field_effects/pics/bird.4bpp"); const u32 gObjectEventPic_Juan[] = INCBIN_U32("graphics/object_events/pics/people/gym_leaders/juan.4bpp"); diff --git a/src/dodrio_berry_picking.c b/src/dodrio_berry_picking.c index 262b7d1112..7101c0d816 100644 --- a/src/dodrio_berry_picking.c +++ b/src/dodrio_berry_picking.c @@ -4629,7 +4629,7 @@ static void sub_802A7A8(void) ChangeBgX(3, 0, 0); ChangeBgY(3, 0, 0); InitStandardTextBoxWindows(); - sub_8197200(); + InitTextBoxGfxAndPrinters(); SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_OBJ_1D_MAP); SetBgTilemapBuffer(3, gUnknown_02022CF8->tilemapBuffers[0]); SetBgTilemapBuffer(1, gUnknown_02022CF8->tilemapBuffers[1]); diff --git a/src/event_object_movement.c b/src/event_object_movement.c index d6a2fe2ec0..724d95a297 100644 --- a/src/event_object_movement.c +++ b/src/event_object_movement.c @@ -1121,13 +1121,13 @@ void ResetObjectEvents(void) static void CreateReflectionEffectSprites(void) { - u8 spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[21], 0, 0, 31); + u8 spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_REFLECTION_DISTORTION], 0, 0, 31); gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL; InitSpriteAffineAnim(&gSprites[spriteId]); StartSpriteAffineAnim(&gSprites[spriteId], 0); gSprites[spriteId].invisible = TRUE; - spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[21], 0, 0, 31); + spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_REFLECTION_DISTORTION], 0, 0, 31); gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL; InitSpriteAffineAnim(&gSprites[spriteId]); StartSpriteAffineAnim(&gSprites[spriteId], 1); diff --git a/src/faraway_island.c b/src/faraway_island.c index f8e3eac145..4233c43d80 100755 --- a/src/faraway_island.c +++ b/src/faraway_island.c @@ -6,6 +6,7 @@ #include "metatile_behavior.h" #include "sprite.h" #include "constants/event_objects.h" +#include "constants/field_effects.h" #include "constants/flags.h" #include "constants/maps.h" #include "constants/metatile_behaviors.h" @@ -379,7 +380,7 @@ void sub_81D4A90(void) x = mew->currentCoords.x; y = mew->currentCoords.y; sub_80930E0(&x, &y, 8, 8); - sUnknown_0203CF50 = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[15], x, y, gSprites[mew->spriteId].subpriority - 1); + sUnknown_0203CF50 = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_LONG_GRASS], x, y, gSprites[mew->spriteId].subpriority - 1); if (sUnknown_0203CF50 != MAX_SPRITES) { struct Sprite *sprite = &gSprites[sUnknown_0203CF50]; diff --git a/src/field_camera.c b/src/field_camera.c index 038b6932e8..57be522211 100644 --- a/src/field_camera.c +++ b/src/field_camera.c @@ -39,7 +39,7 @@ static void CameraPanningCB_PanAhead(void); static struct FieldCameraOffset sFieldCameraOffset; static s16 sHorizontalCameraPan; static s16 sVerticalCameraPan; -static u8 gUnknown_03000E2C; +static bool8 gUnknown_03000E2C; static void (*sFieldCameraPanningCallback)(void); struct CameraObject gFieldCamera; @@ -47,7 +47,7 @@ u16 gTotalCameraPixelOffsetY; u16 gTotalCameraPixelOffsetX; // text -static void move_tilemap_camera_to_upper_left_corner_(struct FieldCameraOffset *cameraOffset) +static void ResetCameraOffset(struct FieldCameraOffset *cameraOffset) { cameraOffset->xTileOffset = 0; cameraOffset->yTileOffset = 0; @@ -56,23 +56,23 @@ static void move_tilemap_camera_to_upper_left_corner_(struct FieldCameraOffset * cameraOffset->copyBGToVRAM = TRUE; } -static void tilemap_move_something(struct FieldCameraOffset *cameraOffset, u32 b, u32 c) +static void AddCameraTileOffset(struct FieldCameraOffset *cameraOffset, u32 xOffset, u32 yOffset) { - cameraOffset->xTileOffset += b; + cameraOffset->xTileOffset += xOffset; cameraOffset->xTileOffset %= 32; - cameraOffset->yTileOffset += c; + cameraOffset->yTileOffset += yOffset; cameraOffset->yTileOffset %= 32; } -static void coords8_add(struct FieldCameraOffset *cameraOffset, u32 b, u32 c) +static void AddCameraPixelOffset(struct FieldCameraOffset *cameraOffset, u32 xOffset, u32 yOffset) { - cameraOffset->xPixelOffset += b; - cameraOffset->yPixelOffset += c; + cameraOffset->xPixelOffset += xOffset; + cameraOffset->yPixelOffset += yOffset; } -void move_tilemap_camera_to_upper_left_corner(void) +void ResetFieldCamera(void) { - move_tilemap_camera_to_upper_left_corner_(&sFieldCameraOffset); + ResetCameraOffset(&sFieldCameraOffset); } void FieldUpdateBgTilemapScroll(void) @@ -89,10 +89,10 @@ void FieldUpdateBgTilemapScroll(void) SetGpuReg(REG_OFFSET_BG3VOFS, r4); } -void sub_8089C08(s16 *a, s16 *b) +void sub_8089C08(s16 *x, s16 *y) { - *a = sFieldCameraOffset.xPixelOffset + sHorizontalCameraPan; - *b = sFieldCameraOffset.yPixelOffset + sVerticalCameraPan + 8; + *x = sFieldCameraOffset.xPixelOffset + sHorizontalCameraPan; + *y = sFieldCameraOffset.yPixelOffset + sVerticalCameraPan + 8; } void DrawWholeMapView(void) @@ -418,11 +418,11 @@ void CameraUpdate(void) UpdateObjectEventsForCameraUpdate(deltaX, deltaY); RotatingGatePuzzleCameraUpdate(deltaX, deltaY); ResetBerryTreeSparkleFlags(); - tilemap_move_something(&sFieldCameraOffset, deltaX * 2, deltaY * 2); + AddCameraTileOffset(&sFieldCameraOffset, deltaX * 2, deltaY * 2); RedrawMapSlicesForCameraUpdate(&sFieldCameraOffset, deltaX * 2, deltaY * 2); } - coords8_add(&sFieldCameraOffset, movementSpeedX, movementSpeedY); + AddCameraPixelOffset(&sFieldCameraOffset, movementSpeedX, movementSpeedY); gTotalCameraPixelOffsetX -= movementSpeedX; gTotalCameraPixelOffsetY -= movementSpeedY; } @@ -436,9 +436,9 @@ void MoveCameraAndRedrawMap(int deltaX, int deltaY) //unused gTotalCameraPixelOffsetY -= deltaY * 16; } -void SetCameraPanningCallback(void (*a)(void)) +void SetCameraPanningCallback(void (*callback)(void)) { - sFieldCameraPanningCallback = a; + sFieldCameraPanningCallback = callback; } void SetCameraPanning(s16 a, s16 b) @@ -450,7 +450,7 @@ void SetCameraPanning(s16 a, s16 b) void InstallCameraPanAheadCallback(void) { sFieldCameraPanningCallback = CameraPanningCB_PanAhead; - gUnknown_03000E2C = 0; + gUnknown_03000E2C = FALSE; sHorizontalCameraPan = 0; sVerticalCameraPan = 32; } @@ -478,12 +478,12 @@ static void CameraPanningCB_PanAhead(void) if (gPlayerAvatar.tileTransitionState == T_TILE_TRANSITION) { gUnknown_03000E2C ^= 1; - if (gUnknown_03000E2C == 0) + if (gUnknown_03000E2C == FALSE) return; } else { - gUnknown_03000E2C = 0; + gUnknown_03000E2C = FALSE; } var = GetPlayerMovementDirection(); diff --git a/src/field_control_avatar.c b/src/field_control_avatar.c index e41b5a69a5..5a47f13542 100644 --- a/src/field_control_avatar.c +++ b/src/field_control_avatar.c @@ -545,7 +545,7 @@ static bool8 TryStartStepCountScript(u16 metatileBehavior) UpdateHappinessStepCounter(); UpdateFarawayIslandStepCounter(); - if (!(gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_6) && !MetatileBehavior_IsForcedMovementTile(metatileBehavior)) + if (!(gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_FORCED_MOVE) && !MetatileBehavior_IsForcedMovementTile(metatileBehavior)) { if (UpdatePoisonStepCounter() == TRUE) { @@ -938,7 +938,7 @@ static struct BgEvent *GetBackgroundEventAtPosition(struct MapHeader *mapHeader, return NULL; } -bool8 dive_warp(struct MapPosition *position, u16 metatileBehavior) +bool8 TryDoDiveWarp(struct MapPosition *position, u16 metatileBehavior) { if (gMapHeader.mapType == MAP_TYPE_UNDERWATER && !MetatileBehavior_IsUnableToEmerge(metatileBehavior)) { diff --git a/src/field_effect.c b/src/field_effect.c index c4e9fc40a8..284d9b0e79 100644 --- a/src/field_effect.c +++ b/src/field_effect.c @@ -64,122 +64,120 @@ static void PokeballGlowEffect_7(struct Sprite *); static u8 PokecenterHealEffectHelper(s16, s16); static void HallOfFameRecordEffectHelper(s16, s16, s16, u8); -static void FieldCallback_Fly(void); -static void task00_8084310(u8); -static void mapldr_08084390(void); -static void c3_080843F8(u8); +static void FieldCallback_UseFly(void); +static void Task_UseFly(u8); +static void FieldCallback_FlyIntoMap(void); +static void Task_FlyIntoMap(u8); static void Task_FallWarpFieldEffect(u8); +static bool8 FallWarpEffect_0(struct Task *); static bool8 FallWarpEffect_1(struct Task *); static bool8 FallWarpEffect_2(struct Task *); static bool8 FallWarpEffect_3(struct Task *); static bool8 FallWarpEffect_4(struct Task *); static bool8 FallWarpEffect_5(struct Task *); static bool8 FallWarpEffect_6(struct Task *); -static bool8 FallWarpEffect_7(struct Task *); -static void Task_EscalatorWarpFieldEffect(u8); -static bool8 EscalatorWarpEffect_1(struct Task *); -static bool8 EscalatorWarpEffect_2(struct Task *); -static bool8 EscalatorWarpEffect_3(struct Task *); -static bool8 EscalatorWarpEffect_4(struct Task *); -static bool8 EscalatorWarpEffect_5(struct Task *); -static bool8 EscalatorWarpEffect_6(struct Task *); +static void Task_EscalatorWarpOut(u8); +static bool8 EscalatorWarpOutEffect_0(struct Task *); +static bool8 EscalatorWarpOutEffect_1(struct Task *); +static bool8 EscalatorWarpOutEffect_2(struct Task *); +static bool8 EscalatorWarpOutEffect_3(struct Task *); +static bool8 EscalatorWarpOutEffect_4(struct Task *); +static bool8 EscalatorWarpOutEffect_5(struct Task *); static void sub_80B6FB8(struct Task *); static void sub_80B7004(struct Task *); static void sub_80B7050(void); static void sub_80B7060(void); -static void sub_80B70B4(void); -static void sub_80B70DC(u8); -static bool8 sub_80B7114(struct Task *); -static bool8 sub_80B7190(struct Task *); -static bool8 sub_80B71D0(struct Task *); -static bool8 sub_80B7230(struct Task *); -static bool8 sub_80B7270(struct Task *); -static bool8 sub_80B72D0(struct Task *); -static bool8 sub_80B72F4(struct Task *); +static void FieldCallback_EscalatorWarpIn(void); +static void Task_EscalatorWarpIn(u8); +static bool8 EscalatorWarpInEffect_0(struct Task *); +static bool8 EscalatorWarpInEffect_1(struct Task *); +static bool8 EscalatorWarpInEffect_2(struct Task *); +static bool8 EscalatorWarpInEffect_3(struct Task *); +static bool8 EscalatorWarpInEffect_4(struct Task *); +static bool8 EscalatorWarpInEffect_5(struct Task *); +static bool8 EscalatorWarpInEffect_6(struct Task *); -static void sub_80B7384(u8); -static bool8 sub_80B73D0(struct Task *, struct ObjectEvent *); -static bool8 waterfall_1_do_anim_probably(struct Task *, struct ObjectEvent *); -static bool8 waterfall_2_wait_anim_finish_probably(struct Task *, struct ObjectEvent *); -static bool8 sub_80B7450(struct Task *, struct ObjectEvent *); -static bool8 sub_80B7478(struct Task *, struct ObjectEvent *); +static void Task_UseWaterfall(u8); +static bool8 WaterfallFieldEffect_0(struct Task *, struct ObjectEvent *); +static bool8 WaterfallFieldEffect_1(struct Task *, struct ObjectEvent *); +static bool8 WaterfallFieldEffect_2(struct Task *, struct ObjectEvent *); +static bool8 WaterfallFieldEffect_3(struct Task *, struct ObjectEvent *); +static bool8 WaterfallFieldEffect_4(struct Task *, struct ObjectEvent *); -static void Task_Dive(u8); -static bool8 dive_1_lock(struct Task *); -static bool8 dive_2_unknown(struct Task *); -static bool8 dive_3_unknown(struct Task *); +static void Task_UseDive(u8); +static bool8 DiveFieldEffect_0(struct Task *); +static bool8 DiveFieldEffect_1(struct Task *); +static bool8 DiveFieldEffect_2(struct Task *); static void Task_LavaridgeGymB1FWarp(u8); +static bool8 LavaridgeGymB1FWarpEffect_0(struct Task *, struct ObjectEvent *, struct Sprite *); static bool8 LavaridgeGymB1FWarpEffect_1(struct Task *, struct ObjectEvent *, struct Sprite *); static bool8 LavaridgeGymB1FWarpEffect_2(struct Task *, struct ObjectEvent *, struct Sprite *); static bool8 LavaridgeGymB1FWarpEffect_3(struct Task *, struct ObjectEvent *, struct Sprite *); static bool8 LavaridgeGymB1FWarpEffect_4(struct Task *, struct ObjectEvent *, struct Sprite *); static bool8 LavaridgeGymB1FWarpEffect_5(struct Task *, struct ObjectEvent *, struct Sprite *); -static bool8 LavaridgeGymB1FWarpEffect_6(struct Task *, struct ObjectEvent *, struct Sprite *); static void FieldCB_LavaridgeGymB1FWarpExit(void); static void Task_LavaridgeGymB1FWarpExit(u8); +static bool8 LavaridgeGymB1FWarpExitEffect_0(struct Task *, struct ObjectEvent *, struct Sprite *); static bool8 LavaridgeGymB1FWarpExitEffect_1(struct Task *, struct ObjectEvent *, struct Sprite *); static bool8 LavaridgeGymB1FWarpExitEffect_2(struct Task *, struct ObjectEvent *, struct Sprite *); static bool8 LavaridgeGymB1FWarpExitEffect_3(struct Task *, struct ObjectEvent *, struct Sprite *); -static bool8 LavaridgeGymB1FWarpExitEffect_4(struct Task *, struct ObjectEvent *, struct Sprite *); static void Task_LavaridgeGym1FWarp(u8); +static bool8 LavaridgeGym1FWarpEffect_0(struct Task *, struct ObjectEvent *, struct Sprite *); static bool8 LavaridgeGym1FWarpEffect_1(struct Task *, struct ObjectEvent *, struct Sprite *); static bool8 LavaridgeGym1FWarpEffect_2(struct Task *, struct ObjectEvent *, struct Sprite *); static bool8 LavaridgeGym1FWarpEffect_3(struct Task *, struct ObjectEvent *, struct Sprite *); static bool8 LavaridgeGym1FWarpEffect_4(struct Task *, struct ObjectEvent *, struct Sprite *); -static bool8 LavaridgeGym1FWarpEffect_5(struct Task *, struct ObjectEvent *, struct Sprite *); -static void DoEscapeRopeFieldEffect(u8); -static void EscapeRopeFieldEffect_Step0(struct Task *); -static void EscapeRopeFieldEffect_Step1(struct Task *); +static void Task_EscapeRopeWarpOut(u8); +static void EscapeRopeWarpOutFieldEffect_0(struct Task *); +static void EscapeRopeWarpOutFieldEffect_1(struct Task *); -static void mapldr_080859D4(void); -static void sub_80B7E94(u8); +static void FieldCallback_EscapeRopeWarpIn(void); +static void Task_EscapeRopeWarpIn(u8); +static void EscapeRopeWarpInFieldEffect_0(struct Task *); +static void EscapeRopeWarpInFieldEffect_1(struct Task *); -static void sub_80B7EC4(struct Task *); -static void sub_80B7EE8(struct Task *); +static void Task_TeleportWarpOut(u8); +static void TeleportWarpOutFieldEffect_0(struct Task*); +static void TeleportWarpOutFieldEffect_1(struct Task*); +static void TeleportWarpOutFieldEffect_2(struct Task*); +static void TeleportWarpOutFieldEffect_3(struct Task*); -static void ExecuteTeleportFieldEffectTask(u8); -static void TeleportFieldEffectTask1(struct Task*); -static void TeleportFieldEffectTask2(struct Task*); -static void TeleportFieldEffectTask3(struct Task*); -static void TeleportFieldEffectTask4(struct Task*); +static void FieldCallback_TeleportWarpIn(void); +static void Task_TeleportWarpIn(u8); +static void TeleportWarpInFieldEffect_0(struct Task *); +static void TeleportWarpInFieldEffect_1(struct Task *); +static void TeleportWarpInFieldEffect_2(struct Task *); -static void mapldr_08085D88(void); -static void sub_80B8250(u8); +static void Task_FieldMoveShowMonOutdoors(u8); +static void FieldMoveShowMonOutdoorsEffect_0(struct Task *); +static void FieldMoveShowMonOutdoorsEffect_1(struct Task *); +static void FieldMoveShowMonOutdoorsEffect_2(struct Task *); +static void FieldMoveShowMonOutdoorsEffect_3(struct Task *); +static void FieldMoveShowMonOutdoorsEffect_4(struct Task *); +static void FieldMoveShowMonOutdoorsEffect_5(struct Task *); +static void FieldMoveShowMonOutdoorsEffect_6(struct Task *); -static void sub_80B8280(struct Task *); -static void sub_80B830C(struct Task *); -static void sub_80B8410(struct Task *); - -static void sub_80B8554(u8); -static void sub_80B8584(struct Task *); -static void sub_80B85F8(struct Task *); -static void sub_80B8660(struct Task *); -static void sub_80B86EC(struct Task *); -static void sub_80B871C(struct Task *); -static void sub_80B8770(struct Task *); -static void overworld_bg_setup_2(struct Task *); - -static void sub_80B880C(void); +static void VBlankCB_FieldMoveShowMonOutdoors(void); static void sub_80B8874(u16); -static void sub_80B88B4(u8); -static void sub_80B88E4(struct Task *); -static void sub_80B8920(struct Task *); -static void sub_80B898C(struct Task *); -static void sub_80B89DC(struct Task *); -static void sub_80B8A0C(struct Task *); -static void sub_80B8A44(struct Task *); -static void sub_80B8A64(struct Task *); +static void Task_FieldMoveShowMonIndoors(u8); +static void FieldMoveShowMonIndoorsEffect_0(struct Task *); +static void FieldMoveShowMonIndoorsEffect_1(struct Task *); +static void FieldMoveShowMonIndoorsEffect_2(struct Task *); +static void FieldMoveShowMonIndoorsEffect_3(struct Task *); +static void FieldMoveShowMonIndoorsEffect_4(struct Task *); +static void FieldMoveShowMonIndoorsEffect_5(struct Task *); +static void FieldMoveShowMonIndoorsEffect_6(struct Task *); -static void sub_80B8AE0(void); +static void VBlankCB_FieldMoveShowMonIndoors(void); static void sub_80B8B28(struct Task *); static bool8 sub_80B8B38(struct Task *); static bool8 sub_80B8BF0(struct Task *); @@ -189,25 +187,25 @@ static void sub_80B8CC0(struct Sprite *); static void sub_80B8D04(struct Sprite *); static void sub_80B8D20(struct Sprite *); -static void sub_80B8D84(u8); -static void sub_80B8DB4(struct Task *); -static void sub_80B8E14(struct Task *); -static void sub_80B8E60(struct Task *); -static void sub_80B8EA8(struct Task *); -static void sub_80B8F24(struct Task *); +static void Task_SurfFieldEffect(u8); +static void SurfFieldEffect_1(struct Task *); +static void SurfFieldEffect_2(struct Task *); +static void SurfFieldEffect_3(struct Task *); +static void SurfFieldEffect_4(struct Task *); +static void SurfFieldEffect_5(struct Task *); -static void sub_80B9128(struct Sprite *); +static void SpriteCB_NPCFlyOut(struct Sprite *); -static void sub_80B91D4(u8); -static void sub_80B9204(struct Task *); -static void sub_80B925C(struct Task *); -static void sub_80B92A0(struct Task *); -static void sub_80B92F8(struct Task *); -static void sub_80B933C(struct Task *); -static void sub_80B9390(struct Task *); -static void sub_80B9418(struct Task *); -static void sub_80B9474(struct Task *); -static void sub_80B9494(struct Task *); +static void Task_FlyOut(u8); +static void FlyOutFieldEffect_0(struct Task *); +static void FlyOutFieldEffect_1(struct Task *); +static void FlyOutFieldEffect_2(struct Task *); +static void FlyOutFieldEffect_3(struct Task *); +static void FlyOutFieldEffect_4(struct Task *); +static void FlyOutFieldEffect_5(struct Task *); +static void FlyOutFieldEffect_6(struct Task *); +static void FlyOutFieldEffect_7(struct Task *); +static void FlyOutFieldEffect_8(struct Task *); static u8 sub_80B94C4(void); static u8 sub_80B9508(u8); @@ -216,18 +214,24 @@ static void sub_80B9560(u8, u8); static void sub_80B957C(struct Sprite *); static void sub_80B963C(struct Sprite *); -static void sub_80B97D4(u8); -static void sub_80B9804(struct Task *); -static void sub_80B98B8(struct Task *); -static void sub_80B9924(struct Task *); -static void sub_80B9978(struct Task *); -static void sub_80B99F0(struct Task *); -static void sub_80B9A28(struct Task *); -static void sub_80B9A60(struct Task *); +static void Task_FlyIn(u8); +static void FlyInFieldEffect_0(struct Task *); +static void FlyInFieldEffect_1(struct Task *); +static void FlyInFieldEffect_2(struct Task *); +static void FlyInFieldEffect_3(struct Task *); +static void FlyInFieldEffect_4(struct Task *); +static void FlyInFieldEffect_5(struct Task *); +static void FlyInFieldEffect_6(struct Task *); + +static void Task_DestroyDeoxysRock(u8 taskId); +static void DestroyDeoxysRockFieldEffect_0(s16*, u8); +static void DestroyDeoxysRockFieldEffect_1(s16*, u8); +static void DestroyDeoxysRockFieldEffect_2(s16*, u8); -static void sub_80B9BE8(u8 taskId); static void sub_80B9DB8(struct Sprite* sprite); -static void Fldeff_MoveDeoxysRock_Step(u8 taskId); +static void Task_MoveDeoxysRock(u8 taskId); + +static void sub_80B9D24(struct Sprite*); // Static RAM declarations @@ -553,7 +557,7 @@ const struct SpriteTemplate gSpriteTemplate_855C34C = .callback = SpriteCB_HallOfFameMonitor }; -void (*const gUnknown_0855C364[])(struct Task *) = +void (*const sPokecenterHealEffectFuncs[])(struct Task *) = { PokecenterHealEffect_0, PokecenterHealEffect_1, @@ -561,7 +565,7 @@ void (*const gUnknown_0855C364[])(struct Task *) = PokecenterHealEffect_3 }; -void (*const gUnknown_0855C374[])(struct Task *) = +void (*const sHallOfFameRecordEffectFuncs[])(struct Task *) = { HallOfFameRecordEffect_0, HallOfFameRecordEffect_1, @@ -569,7 +573,7 @@ void (*const gUnknown_0855C374[])(struct Task *) = HallOfFameRecordEffect_3 }; -void (*const gUnknown_0855C384[])(struct Sprite *) = +void (*const sPokeballGlowEffectFuncs[])(struct Sprite *) = { PokeballGlowEffect_0, PokeballGlowEffect_1, @@ -597,83 +601,83 @@ const u8 gUnknown_0855C3C4[] = { 0, 0, 0, 0}; bool8 (*const sFallWarpFieldEffectFuncs[])(struct Task *) = { + FallWarpEffect_0, FallWarpEffect_1, FallWarpEffect_2, FallWarpEffect_3, FallWarpEffect_4, FallWarpEffect_5, FallWarpEffect_6, - FallWarpEffect_7, }; -bool8 (*const sEscalatorWarpFieldEffectFuncs[])(struct Task *) = +bool8 (*const sEscalatorWarpOutFieldEffectFuncs[])(struct Task *) = { - EscalatorWarpEffect_1, - EscalatorWarpEffect_2, - EscalatorWarpEffect_3, - EscalatorWarpEffect_4, - EscalatorWarpEffect_5, - EscalatorWarpEffect_6, + EscalatorWarpOutEffect_0, + EscalatorWarpOutEffect_1, + EscalatorWarpOutEffect_2, + EscalatorWarpOutEffect_3, + EscalatorWarpOutEffect_4, + EscalatorWarpOutEffect_5, }; -bool8 (*const gUnknown_0855C3FC[])(struct Task *) = +bool8 (*const sEscalatorWarpInFieldEffectFuncs[])(struct Task *) = { - sub_80B7114, - sub_80B7190, - sub_80B71D0, - sub_80B7230, - sub_80B7270, - sub_80B72D0, - sub_80B72F4, + EscalatorWarpInEffect_0, + EscalatorWarpInEffect_1, + EscalatorWarpInEffect_2, + EscalatorWarpInEffect_3, + EscalatorWarpInEffect_4, + EscalatorWarpInEffect_5, + EscalatorWarpInEffect_6, }; -bool8 (*const gUnknown_0855C418[])(struct Task *, struct ObjectEvent *) = +bool8 (*const sWaterfallFieldEffectFuncs[])(struct Task *, struct ObjectEvent *) = { - sub_80B73D0, - waterfall_1_do_anim_probably, - waterfall_2_wait_anim_finish_probably, - sub_80B7450, - sub_80B7478, + WaterfallFieldEffect_0, + WaterfallFieldEffect_1, + WaterfallFieldEffect_2, + WaterfallFieldEffect_3, + WaterfallFieldEffect_4, }; -bool8 (*const gUnknown_0855C42C[])(struct Task *) = +bool8 (*const sDiveFieldEffectFuncs[])(struct Task *) = { - dive_1_lock, - dive_2_unknown, - dive_3_unknown, + DiveFieldEffect_0, + DiveFieldEffect_1, + DiveFieldEffect_2, }; bool8 (*const sLavaridgeGymB1FWarpEffectFuncs[])(struct Task *, struct ObjectEvent *, struct Sprite *) = { + LavaridgeGymB1FWarpEffect_0, LavaridgeGymB1FWarpEffect_1, LavaridgeGymB1FWarpEffect_2, LavaridgeGymB1FWarpEffect_3, LavaridgeGymB1FWarpEffect_4, LavaridgeGymB1FWarpEffect_5, - LavaridgeGymB1FWarpEffect_6, }; bool8 (*const sLavaridgeGymB1FWarpExitEffectFuncs[])(struct Task *, struct ObjectEvent *, struct Sprite *) = { + LavaridgeGymB1FWarpExitEffect_0, LavaridgeGymB1FWarpExitEffect_1, LavaridgeGymB1FWarpExitEffect_2, LavaridgeGymB1FWarpExitEffect_3, - LavaridgeGymB1FWarpExitEffect_4, }; bool8 (*const sLavaridgeGym1FWarpEffectFuncs[])(struct Task *, struct ObjectEvent *, struct Sprite *) = { + LavaridgeGym1FWarpEffect_0, LavaridgeGym1FWarpEffect_1, LavaridgeGym1FWarpEffect_2, LavaridgeGym1FWarpEffect_3, LavaridgeGym1FWarpEffect_4, - LavaridgeGym1FWarpEffect_5, }; -void (*const gEscapeRopeFieldEffectFuncs[])(struct Task *) = +void (*const sEscapeRopeWarpOutFieldEffectFuncs[])(struct Task *) = { - EscapeRopeFieldEffect_Step0, - EscapeRopeFieldEffect_Step1, + EscapeRopeWarpOutFieldEffect_0, + EscapeRopeWarpOutFieldEffect_1, }; // .text @@ -993,7 +997,7 @@ static void Task_PokecenterHeal(u8 taskId) { struct Task *task; task = &gTasks[taskId]; - gUnknown_0855C364[task->data[0]](task); + sPokecenterHealEffectFuncs[task->data[0]](task); } static void PokecenterHealEffect_0(struct Task *task) @@ -1047,7 +1051,7 @@ static void Task_HallOfFameRecord(u8 taskId) { struct Task *task; task = &gTasks[taskId]; - gUnknown_0855C374[task->data[0]](task); + sHallOfFameRecordEffectFuncs[task->data[0]](task); } static void HallOfFameRecordEffect_0(struct Task *task) @@ -1107,7 +1111,7 @@ static u8 CreatePokeballGlowSprite(s16 data6, s16 x, s16 y, u16 data5) static void SpriteCB_PokeballGlowEffect(struct Sprite *sprite) { - gUnknown_0855C384[sprite->data[0]](sprite); + sPokeballGlowEffectFuncs[sprite->data[0]](sprite); } static void PokeballGlowEffect_0(struct Sprite *sprite) @@ -1292,19 +1296,19 @@ void SpriteCB_HallOfFameMonitor(struct Sprite *sprite) void ReturnToFieldFromFlyMapSelect(void) { SetMainCallback2(CB2_ReturnToField); - gFieldCallback = FieldCallback_Fly; + gFieldCallback = FieldCallback_UseFly; } -static void FieldCallback_Fly(void) +static void FieldCallback_UseFly(void) { FadeInFromBlack(); - CreateTask(task00_8084310, 0); + CreateTask(Task_UseFly, 0); ScriptContext2_Enable(); FreezeObjectEvents(); gFieldCallback = NULL; } -static void task00_8084310(u8 taskId) +static void Task_UseFly(u8 taskId) { struct Task *task; task = &gTasks[taskId]; @@ -1315,7 +1319,7 @@ static void task00_8084310(u8 taskId) return; } gFieldEffectArguments[0] = GetCursorSelectionMonId(); - if ((int)gFieldEffectArguments[0] > 5) + if ((int)gFieldEffectArguments[0] > PARTY_SIZE - 1) { gFieldEffectArguments[0] = 0; } @@ -1327,18 +1331,18 @@ static void task00_8084310(u8 taskId) Overworld_ResetStateAfterFly(); WarpIntoMap(); SetMainCallback2(CB2_LoadMap); - gFieldCallback = mapldr_08084390; + gFieldCallback = FieldCallback_FlyIntoMap; DestroyTask(taskId); } } -static void mapldr_08084390(void) +static void FieldCallback_FlyIntoMap(void) { Overworld_PlaySpecialMapMusic(); FadeInFromBlack(); - CreateTask(c3_080843F8, 0); + CreateTask(Task_FlyIntoMap, 0); gObjectEvents[gPlayerAvatar.objectEventId].invisible = TRUE; - if (gPlayerAvatar.flags & 0x08) + if (gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_SURFING) { ObjectEventTurn(&gObjectEvents[gPlayerAvatar.objectEventId], DIR_WEST); } @@ -1347,7 +1351,7 @@ static void mapldr_08084390(void) gFieldCallback = NULL; } -static void c3_080843F8(u8 taskId) +static void Task_FlyIntoMap(u8 taskId) { struct Task *task; task = &gTasks[taskId]; @@ -1385,7 +1389,7 @@ static void Task_FallWarpFieldEffect(u8 taskId) while (sFallWarpFieldEffectFuncs[task->data[0]](task)); // return code signifies whether to continue blocking here } -static bool8 FallWarpEffect_1(struct Task *task) +static bool8 FallWarpEffect_0(struct Task *task) { struct ObjectEvent *playerObject; struct Sprite *playerSprite; @@ -1403,7 +1407,7 @@ static bool8 FallWarpEffect_1(struct Task *task) return TRUE; } -static bool8 FallWarpEffect_2(struct Task *task) +static bool8 FallWarpEffect_1(struct Task *task) { if (IsWeatherNotFadingIn()) { @@ -1412,7 +1416,7 @@ static bool8 FallWarpEffect_2(struct Task *task) return FALSE; } -static bool8 FallWarpEffect_3(struct Task *task) +static bool8 FallWarpEffect_2(struct Task *task) { struct Sprite *sprite; s16 centerToCornerVecY; @@ -1427,7 +1431,7 @@ static bool8 FallWarpEffect_3(struct Task *task) return FALSE; } -static bool8 FallWarpEffect_4(struct Task *task) +static bool8 FallWarpEffect_3(struct Task *task) { struct ObjectEvent *objectEvent; struct Sprite *sprite; @@ -1461,7 +1465,7 @@ static bool8 FallWarpEffect_4(struct Task *task) return FALSE; } -static bool8 FallWarpEffect_5(struct Task *task) +static bool8 FallWarpEffect_4(struct Task *task) { task->data[0]++; task->data[1] = 4; @@ -1470,7 +1474,7 @@ static bool8 FallWarpEffect_5(struct Task *task) return TRUE; } -static bool8 FallWarpEffect_6(struct Task *task) +static bool8 FallWarpEffect_5(struct Task *task) { SetCameraPanning(0, task->data[1]); task->data[1] = -task->data[1]; @@ -1486,7 +1490,7 @@ static bool8 FallWarpEffect_6(struct Task *task) return FALSE; } -static bool8 FallWarpEffect_7(struct Task *task) +static bool8 FallWarpEffect_6(struct Task *task) { gPlayerAvatar.preventStep = FALSE; ScriptContext2_Disable(); @@ -1500,31 +1504,31 @@ static bool8 FallWarpEffect_7(struct Task *task) void StartEscalatorWarp(u8 metatileBehavior, u8 priority) { u8 taskId; - taskId = CreateTask(Task_EscalatorWarpFieldEffect, priority); - gTasks[taskId].data[1] = 0; + taskId = CreateTask(Task_EscalatorWarpOut, priority); + gTasks[taskId].data[1] = FALSE; if (metatileBehavior == MB_UP_ESCALATOR) { - gTasks[taskId].data[1] = 1; + gTasks[taskId].data[1] = TRUE; } } -static void Task_EscalatorWarpFieldEffect(u8 taskId) +static void Task_EscalatorWarpOut(u8 taskId) { struct Task *task; task = &gTasks[taskId]; - while (sEscalatorWarpFieldEffectFuncs[task->data[0]](task)); + while (sEscalatorWarpOutFieldEffectFuncs[task->data[0]](task)); } -static bool8 EscalatorWarpEffect_1(struct Task *task) +static bool8 EscalatorWarpOutEffect_0(struct Task *task) { FreezeObjectEvents(); CameraObjectReset2(); - sub_80E1558(task->data[1]); + StartEscalator(task->data[1]); task->data[0]++; return FALSE; } -static bool8 EscalatorWarpEffect_2(struct Task *task) +static bool8 EscalatorWarpOutEffect_1(struct Task *task) { struct ObjectEvent *objectEvent; objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; @@ -1543,7 +1547,7 @@ static bool8 EscalatorWarpEffect_2(struct Task *task) return FALSE; } -static bool8 EscalatorWarpEffect_3(struct Task *task) +static bool8 EscalatorWarpOutEffect_2(struct Task *task) { sub_80B6FB8(task); if (task->data[2] > 3) @@ -1554,14 +1558,14 @@ static bool8 EscalatorWarpEffect_3(struct Task *task) return FALSE; } -static bool8 EscalatorWarpEffect_4(struct Task *task) +static bool8 EscalatorWarpOutEffect_3(struct Task *task) { sub_80B6FB8(task); sub_80B7060(); return FALSE; } -static bool8 EscalatorWarpEffect_5(struct Task *task) +static bool8 EscalatorWarpOutEffect_4(struct Task *task) { sub_80B7004(task); if (task->data[2] > 3) @@ -1572,7 +1576,7 @@ static bool8 EscalatorWarpEffect_5(struct Task *task) return FALSE; } -static bool8 EscalatorWarpEffect_6(struct Task *task) +static bool8 EscalatorWarpOutEffect_5(struct Task *task) { sub_80B7004(task); sub_80B7060(); @@ -1615,31 +1619,31 @@ static void sub_80B7060(void) { if (!gPaletteFade.active && BGMusicStopped() == TRUE) { - sub_80E1570(); + StopEscalator(); WarpIntoMap(); - gFieldCallback = sub_80B70B4; + gFieldCallback = FieldCallback_EscalatorWarpIn; SetMainCallback2(CB2_LoadMap); - DestroyTask(FindTaskIdByFunc(Task_EscalatorWarpFieldEffect)); + DestroyTask(FindTaskIdByFunc(Task_EscalatorWarpOut)); } } -static void sub_80B70B4(void) +static void FieldCallback_EscalatorWarpIn(void) { Overworld_PlaySpecialMapMusic(); WarpFadeInScreen(); ScriptContext2_Enable(); - CreateTask(sub_80B70DC, 0); + CreateTask(Task_EscalatorWarpIn, 0); gFieldCallback = NULL; } -static void sub_80B70DC(u8 taskId) +static void Task_EscalatorWarpIn(u8 taskId) { struct Task *task; task = &gTasks[taskId]; - while (gUnknown_0855C3FC[task->data[0]](task)); + while (sEscalatorWarpInFieldEffectFuncs[task->data[0]](task)); } -static bool8 sub_80B7114(struct Task *task) +static bool8 EscalatorWarpInEffect_0(struct Task *task) { struct ObjectEvent *objectEvent; s16 x; @@ -1652,19 +1656,19 @@ static bool8 sub_80B7114(struct Task *task) behavior = MapGridGetMetatileBehaviorAt(x, y); task->data[0]++; task->data[1] = 16; - if (behavior == 0x6b) + if (behavior == MB_DOWN_ESCALATOR) { - behavior = 1; + behavior = TRUE; task->data[0] = 3; - } else + } else // MB_UP_ESCALATOR { - behavior = 0; + behavior = FALSE; } - sub_80E1558(behavior); + StartEscalator(behavior); return TRUE; } -static bool8 sub_80B7190(struct Task *task) +static bool8 EscalatorWarpInEffect_1(struct Task *task) { struct Sprite *sprite; sprite = &gSprites[gPlayerAvatar.spriteId]; @@ -1674,7 +1678,7 @@ static bool8 sub_80B7190(struct Task *task) return FALSE; } -static bool8 sub_80B71D0(struct Task *task) +static bool8 EscalatorWarpInEffect_2(struct Task *task) { struct Sprite *sprite; sprite = &gSprites[gPlayerAvatar.spriteId]; @@ -1694,7 +1698,7 @@ static bool8 sub_80B71D0(struct Task *task) return FALSE; } -static bool8 sub_80B7230(struct Task *task) +static bool8 EscalatorWarpInEffect_3(struct Task *task) { struct Sprite *sprite; sprite = &gSprites[gPlayerAvatar.spriteId]; @@ -1704,7 +1708,7 @@ static bool8 sub_80B7230(struct Task *task) return FALSE; } -static bool8 sub_80B7270(struct Task *task) +static bool8 EscalatorWarpInEffect_4(struct Task *task) { struct Sprite *sprite; sprite = &gSprites[gPlayerAvatar.spriteId]; @@ -1724,18 +1728,18 @@ static bool8 sub_80B7270(struct Task *task) return FALSE; } -static bool8 sub_80B72D0(struct Task *task) +static bool8 EscalatorWarpInEffect_5(struct Task *task) { - if (sub_80E1584()) + if (IsEscalatorMoving()) { return FALSE; } - sub_80E1570(); + StopEscalator(); task->data[0]++; return TRUE; } -static bool8 sub_80B72F4(struct Task *task) +static bool8 EscalatorWarpInEffect_6(struct Task *task) { struct ObjectEvent *objectEvent; objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; @@ -1744,7 +1748,7 @@ static bool8 sub_80B72F4(struct Task *task) CameraObjectReset1(); ScriptContext2_Disable(); ObjectEventSetHeldMovement(objectEvent, GetWalkNormalMovementAction(DIR_EAST)); - DestroyTask(FindTaskIdByFunc(sub_80B70DC)); + DestroyTask(FindTaskIdByFunc(Task_EscalatorWarpIn)); } return FALSE; } @@ -1752,18 +1756,18 @@ static bool8 sub_80B72F4(struct Task *task) bool8 FldEff_UseWaterfall(void) { u8 taskId; - taskId = CreateTask(sub_80B7384, 0xff); + taskId = CreateTask(Task_UseWaterfall, 0xff); gTasks[taskId].data[1] = gFieldEffectArguments[0]; - sub_80B7384(taskId); + Task_UseWaterfall(taskId); return FALSE; } -static void sub_80B7384(u8 taskId) +static void Task_UseWaterfall(u8 taskId) { - while (gUnknown_0855C418[gTasks[taskId].data[0]](&gTasks[taskId], &gObjectEvents[gPlayerAvatar.objectEventId])); + while (sWaterfallFieldEffectFuncs[gTasks[taskId].data[0]](&gTasks[taskId], &gObjectEvents[gPlayerAvatar.objectEventId])); } -static bool8 sub_80B73D0(struct Task *task, struct ObjectEvent *objectEvent) +static bool8 WaterfallFieldEffect_0(struct Task *task, struct ObjectEvent *objectEvent) { ScriptContext2_Enable(); gPlayerAvatar.preventStep = TRUE; @@ -1771,7 +1775,7 @@ static bool8 sub_80B73D0(struct Task *task, struct ObjectEvent *objectEvent) return FALSE; } -static bool8 waterfall_1_do_anim_probably(struct Task *task, struct ObjectEvent *objectEvent) +static bool8 WaterfallFieldEffect_1(struct Task *task, struct ObjectEvent *objectEvent) { ScriptContext2_Enable(); if (!ObjectEventIsMovementOverridden(objectEvent)) @@ -1784,7 +1788,7 @@ static bool8 waterfall_1_do_anim_probably(struct Task *task, struct ObjectEvent return FALSE; } -static bool8 waterfall_2_wait_anim_finish_probably(struct Task *task, struct ObjectEvent *objectEvent) +static bool8 WaterfallFieldEffect_2(struct Task *task, struct ObjectEvent *objectEvent) { if (FieldEffectActiveListContains(FLDEFF_FIELD_MOVE_SHOW_MON)) { @@ -1794,14 +1798,14 @@ static bool8 waterfall_2_wait_anim_finish_probably(struct Task *task, struct Obj return TRUE; } -static bool8 sub_80B7450(struct Task *task, struct ObjectEvent *objectEvent) +static bool8 WaterfallFieldEffect_3(struct Task *task, struct ObjectEvent *objectEvent) { ObjectEventSetHeldMovement(objectEvent, GetWalkSlowMovementAction(DIR_NORTH)); task->data[0]++; return FALSE; } -static bool8 sub_80B7478(struct Task *task, struct ObjectEvent *objectEvent) +static bool8 WaterfallFieldEffect_4(struct Task *task, struct ObjectEvent *objectEvent) { if (!ObjectEventClearHeldMovementIfFinished(objectEvent)) { @@ -1809,12 +1813,13 @@ static bool8 sub_80B7478(struct Task *task, struct ObjectEvent *objectEvent) } if (MetatileBehavior_IsWaterfall(objectEvent->currentMetatileBehavior)) { + // Still ascending waterfall task->data[0] = 3; return TRUE; } ScriptContext2_Disable(); gPlayerAvatar.preventStep = FALSE; - DestroyTask(FindTaskIdByFunc(sub_80B7384)); + DestroyTask(FindTaskIdByFunc(Task_UseWaterfall)); FieldEffectActiveListRemove(FLDEFF_USE_WATERFALL); return FALSE; } @@ -1822,26 +1827,26 @@ static bool8 sub_80B7478(struct Task *task, struct ObjectEvent *objectEvent) bool8 FldEff_UseDive(void) { u8 taskId; - taskId = CreateTask(Task_Dive, 0xff); + taskId = CreateTask(Task_UseDive, 0xff); gTasks[taskId].data[15] = gFieldEffectArguments[0]; gTasks[taskId].data[14] = gFieldEffectArguments[1]; - Task_Dive(taskId); + Task_UseDive(taskId); return FALSE; } -void Task_Dive(u8 taskId) +void Task_UseDive(u8 taskId) { - while (gUnknown_0855C42C[gTasks[taskId].data[0]](&gTasks[taskId])); + while (sDiveFieldEffectFuncs[gTasks[taskId].data[0]](&gTasks[taskId])); } -static bool8 dive_1_lock(struct Task *task) +static bool8 DiveFieldEffect_0(struct Task *task) { gPlayerAvatar.preventStep = TRUE; task->data[0]++; return FALSE; } -static bool8 dive_2_unknown(struct Task *task) +static bool8 DiveFieldEffect_1(struct Task *task) { ScriptContext2_Enable(); gFieldEffectArguments[0] = task->data[15]; @@ -1850,14 +1855,14 @@ static bool8 dive_2_unknown(struct Task *task) return FALSE; } -static bool8 dive_3_unknown(struct Task *task) +static bool8 DiveFieldEffect_2(struct Task *task) { struct MapPosition mapPosition; PlayerGetDestCoords(&mapPosition.x, &mapPosition.y); if (!FieldEffectActiveListContains(FLDEFF_FIELD_MOVE_SHOW_MON)) { - dive_warp(&mapPosition, gObjectEvents[gPlayerAvatar.objectEventId].currentMetatileBehavior); - DestroyTask(FindTaskIdByFunc(Task_Dive)); + TryDoDiveWarp(&mapPosition, gObjectEvents[gPlayerAvatar.objectEventId].currentMetatileBehavior); + DestroyTask(FindTaskIdByFunc(Task_UseDive)); FieldEffectActiveListRemove(FLDEFF_USE_DIVE); } return FALSE; @@ -1873,7 +1878,7 @@ static void Task_LavaridgeGymB1FWarp(u8 taskId) while (sLavaridgeGymB1FWarpEffectFuncs[gTasks[taskId].data[0]](&gTasks[taskId], &gObjectEvents[gPlayerAvatar.objectEventId], &gSprites[gPlayerAvatar.spriteId])); } -static bool8 LavaridgeGymB1FWarpEffect_1(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 LavaridgeGymB1FWarpEffect_0(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) { FreezeObjectEvents(); CameraObjectReset2(); @@ -1885,7 +1890,7 @@ static bool8 LavaridgeGymB1FWarpEffect_1(struct Task *task, struct ObjectEvent * return TRUE; } -static bool8 LavaridgeGymB1FWarpEffect_2(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 LavaridgeGymB1FWarpEffect_1(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) { SetCameraPanning(0, task->data[1]); task->data[1] = -task->data[1]; @@ -1898,7 +1903,7 @@ static bool8 LavaridgeGymB1FWarpEffect_2(struct Task *task, struct ObjectEvent * return FALSE; } -static bool8 LavaridgeGymB1FWarpEffect_3(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 LavaridgeGymB1FWarpEffect_2(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) { sprite->pos2.y = 0; task->data[3] = 1; @@ -1912,7 +1917,7 @@ static bool8 LavaridgeGymB1FWarpEffect_3(struct Task *task, struct ObjectEvent * return TRUE; } -static bool8 LavaridgeGymB1FWarpEffect_4(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 LavaridgeGymB1FWarpEffect_3(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) { s16 centerToCornerVecY; SetCameraPanning(0, task->data[1]); @@ -1955,7 +1960,7 @@ static bool8 LavaridgeGymB1FWarpEffect_4(struct Task *task, struct ObjectEvent * return FALSE; } -static bool8 LavaridgeGymB1FWarpEffect_5(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 LavaridgeGymB1FWarpEffect_4(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) { TryFadeOutOldMapMusic(); WarpFadeOutScreen(); @@ -1963,7 +1968,7 @@ static bool8 LavaridgeGymB1FWarpEffect_5(struct Task *task, struct ObjectEvent * return FALSE; } -static bool8 LavaridgeGymB1FWarpEffect_6(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 LavaridgeGymB1FWarpEffect_5(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (!gPaletteFade.active && BGMusicStopped() == TRUE) { @@ -1989,7 +1994,7 @@ static void Task_LavaridgeGymB1FWarpExit(u8 taskId) while (sLavaridgeGymB1FWarpExitEffectFuncs[gTasks[taskId].data[0]](&gTasks[taskId], &gObjectEvents[gPlayerAvatar.objectEventId], &gSprites[gPlayerAvatar.spriteId])); } -static bool8 LavaridgeGymB1FWarpExitEffect_1(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 LavaridgeGymB1FWarpExitEffect_0(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) { CameraObjectReset2(); FreezeObjectEvents(); @@ -1999,7 +2004,7 @@ static bool8 LavaridgeGymB1FWarpExitEffect_1(struct Task *task, struct ObjectEve return FALSE; } -static bool8 LavaridgeGymB1FWarpExitEffect_2(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 LavaridgeGymB1FWarpExitEffect_1(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (IsWeatherNotFadingIn()) { @@ -2013,7 +2018,7 @@ static bool8 LavaridgeGymB1FWarpExitEffect_2(struct Task *task, struct ObjectEve return FALSE; } -static bool8 LavaridgeGymB1FWarpExitEffect_3(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 LavaridgeGymB1FWarpExitEffect_2(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) { sprite = &gSprites[task->data[1]]; if (sprite->animCmdIndex > 1) @@ -2027,7 +2032,7 @@ static bool8 LavaridgeGymB1FWarpExitEffect_3(struct Task *task, struct ObjectEve return FALSE; } -static bool8 LavaridgeGymB1FWarpExitEffect_4(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 LavaridgeGymB1FWarpExitEffect_3(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (ObjectEventClearHeldMovementIfFinished(objectEvent)) { @@ -2044,9 +2049,9 @@ u8 FldEff_LavaridgeGymWarp(void) { u8 spriteId; sub_80930E0((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8); - spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[33], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); + spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_LAVARIDGE_GYM_WARP], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); gSprites[spriteId].oam.priority = gFieldEffectArguments[3]; - gSprites[spriteId].coordOffsetEnabled = 1; + gSprites[spriteId].coordOffsetEnabled = TRUE; return spriteId; } @@ -2068,7 +2073,7 @@ static void Task_LavaridgeGym1FWarp(u8 taskId) while(sLavaridgeGym1FWarpEffectFuncs[gTasks[taskId].data[0]](&gTasks[taskId], &gObjectEvents[gPlayerAvatar.objectEventId], &gSprites[gPlayerAvatar.spriteId])); } -static bool8 LavaridgeGym1FWarpEffect_1(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 LavaridgeGym1FWarpEffect_0(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) { FreezeObjectEvents(); CameraObjectReset2(); @@ -2078,7 +2083,7 @@ static bool8 LavaridgeGym1FWarpEffect_1(struct Task *task, struct ObjectEvent *o return FALSE; } -static bool8 LavaridgeGym1FWarpEffect_2(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 LavaridgeGym1FWarpEffect_1(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (ObjectEventClearHeldMovementIfFinished(objectEvent)) { @@ -2100,7 +2105,7 @@ static bool8 LavaridgeGym1FWarpEffect_2(struct Task *task, struct ObjectEvent *o return FALSE; } -static bool8 LavaridgeGym1FWarpEffect_3(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 LavaridgeGym1FWarpEffect_2(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (gSprites[task->data[1]].animCmdIndex == 2) { @@ -2110,7 +2115,7 @@ static bool8 LavaridgeGym1FWarpEffect_3(struct Task *task, struct ObjectEvent *o return FALSE; } -static bool8 LavaridgeGym1FWarpEffect_4(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 LavaridgeGym1FWarpEffect_3(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (!FieldEffectActiveListContains(FLDEFF_POP_OUT_OF_ASH)) { @@ -2121,7 +2126,7 @@ static bool8 LavaridgeGym1FWarpEffect_4(struct Task *task, struct ObjectEvent *o return FALSE; } -static bool8 LavaridgeGym1FWarpEffect_5(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 LavaridgeGym1FWarpEffect_4(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (!gPaletteFade.active && BGMusicStopped() == TRUE) { @@ -2137,9 +2142,9 @@ u8 FldEff_PopOutOfAsh(void) { u8 spriteId; sub_80930E0((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8); - spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[32], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); + spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_JUMP_OUT_OF_ASH], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); gSprites[spriteId].oam.priority = gFieldEffectArguments[3]; - gSprites[spriteId].coordOffsetEnabled = 1; + gSprites[spriteId].coordOffsetEnabled = TRUE; return spriteId; } @@ -2155,22 +2160,22 @@ void StartEscapeRopeFieldEffect(void) { ScriptContext2_Enable(); FreezeObjectEvents(); - CreateTask(DoEscapeRopeFieldEffect, 0x50); + CreateTask(Task_EscapeRopeWarpOut, 0x50); } -static void DoEscapeRopeFieldEffect(u8 taskId) +static void Task_EscapeRopeWarpOut(u8 taskId) { - gEscapeRopeFieldEffectFuncs[gTasks[taskId].data[0]](&gTasks[taskId]); + sEscapeRopeWarpOutFieldEffectFuncs[gTasks[taskId].data[0]](&gTasks[taskId]); } -static void EscapeRopeFieldEffect_Step0(struct Task *task) +static void EscapeRopeWarpOutFieldEffect_0(struct Task *task) { task->data[0]++; task->data[14] = 64; task->data[15] = GetPlayerFacingDirection(); } -static void EscapeRopeFieldEffect_Step1(struct Task *task) +static void EscapeRopeWarpOutFieldEffect_1(struct Task *task) { struct ObjectEvent *objectEvent; u8 spinDirections[5] = {DIR_SOUTH, DIR_WEST, DIR_EAST, DIR_NORTH, DIR_SOUTH}; @@ -2187,9 +2192,9 @@ static void EscapeRopeFieldEffect_Step1(struct Task *task) SetObjectEventDirection(objectEvent, task->data[15]); SetWarpDestinationToEscapeWarp(); WarpIntoMap(); - gFieldCallback = mapldr_080859D4; + gFieldCallback = FieldCallback_EscapeRopeWarpIn; SetMainCallback2(CB2_LoadMap); - DestroyTask(FindTaskIdByFunc(DoEscapeRopeFieldEffect)); + DestroyTask(FindTaskIdByFunc(Task_EscapeRopeWarpOut)); } else if (task->data[1] == 0 || (--task->data[1]) == 0) { ObjectEventSetHeldMovement(objectEvent, GetFaceDirectionMovementAction(spinDirections[objectEvent->facingDirection])); @@ -2202,12 +2207,12 @@ static void EscapeRopeFieldEffect_Step1(struct Task *task) } } -void (*const gUnknown_0855C484[])(struct Task *) = { - sub_80B7EC4, - sub_80B7EE8 +void (*const sEscapeRopeWarpInFieldEffectFuncs[])(struct Task *) = { + EscapeRopeWarpInFieldEffect_0, + EscapeRopeWarpInFieldEffect_1 }; -static void mapldr_080859D4(void) +static void FieldCallback_EscapeRopeWarpIn(void) { Overworld_PlaySpecialMapMusic(); WarpFadeInScreen(); @@ -2215,15 +2220,15 @@ static void mapldr_080859D4(void) FreezeObjectEvents(); gFieldCallback = NULL; gObjectEvents[gPlayerAvatar.objectEventId].invisible = TRUE; - CreateTask(sub_80B7E94, 0); + CreateTask(Task_EscapeRopeWarpIn, 0); } -static void sub_80B7E94(u8 taskId) +static void Task_EscapeRopeWarpIn(u8 taskId) { - gUnknown_0855C484[gTasks[taskId].data[0]](&gTasks[taskId]); + sEscapeRopeWarpInFieldEffectFuncs[gTasks[taskId].data[0]](&gTasks[taskId]); } -static void sub_80B7EC4(struct Task *task) +static void EscapeRopeWarpInFieldEffect_0(struct Task *task) { if (IsWeatherNotFadingIn()) { @@ -2232,9 +2237,9 @@ static void sub_80B7EC4(struct Task *task) } } -static void sub_80B7EE8(struct Task *task) +static void EscapeRopeWarpInFieldEffect_1(struct Task *task) { - u8 spinDirections[5] = {1, 3, 4, 2, 1}; + u8 spinDirections[5] = {DIR_SOUTH, DIR_WEST, DIR_EAST, DIR_NORTH, DIR_SOUTH}; struct ObjectEvent *objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; if (task->data[1] == 0 || (--task->data[1]) == 0) { @@ -2247,7 +2252,7 @@ static void sub_80B7EE8(struct Task *task) objectEvent->invisible = FALSE; ScriptContext2_Disable(); UnfreezeObjectEvents(); - DestroyTask(FindTaskIdByFunc(sub_80B7E94)); + DestroyTask(FindTaskIdByFunc(Task_EscapeRopeWarpIn)); return; } ObjectEventSetHeldMovement(objectEvent, GetFaceDirectionMovementAction(spinDirections[objectEvent->facingDirection])); @@ -2260,24 +2265,24 @@ static void sub_80B7EE8(struct Task *task) objectEvent->invisible ^= 1; } -void CreateTeleportFieldEffectTask(void) +void FldEff_TeleportWarpOut(void) { - CreateTask(ExecuteTeleportFieldEffectTask, 0); + CreateTask(Task_TeleportWarpOut, 0); } -static void (*const sTeleportFieldEffectTasks[])(struct Task *) = { - TeleportFieldEffectTask1, - TeleportFieldEffectTask2, - TeleportFieldEffectTask3, - TeleportFieldEffectTask4 +static void (*const sTeleportWarpOutFieldEffectFuncs[])(struct Task *) = { + TeleportWarpOutFieldEffect_0, + TeleportWarpOutFieldEffect_1, + TeleportWarpOutFieldEffect_2, + TeleportWarpOutFieldEffect_3 }; -static void ExecuteTeleportFieldEffectTask(u8 taskId) +static void Task_TeleportWarpOut(u8 taskId) { - sTeleportFieldEffectTasks[gTasks[taskId].data[0]](&gTasks[taskId]); + sTeleportWarpOutFieldEffectFuncs[gTasks[taskId].data[0]](&gTasks[taskId]); } -static void TeleportFieldEffectTask1(struct Task *task) +static void TeleportWarpOutFieldEffect_0(struct Task *task) { ScriptContext2_Enable(); FreezeObjectEvents(); @@ -2286,7 +2291,7 @@ static void TeleportFieldEffectTask1(struct Task *task) task->data[0]++; } -static void TeleportFieldEffectTask2(struct Task *task) +static void TeleportWarpOutFieldEffect_1(struct Task *task) { u8 spinDirections[5] = {DIR_SOUTH, DIR_WEST, DIR_EAST, DIR_NORTH, DIR_SOUTH}; struct ObjectEvent *objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; @@ -2306,7 +2311,7 @@ static void TeleportFieldEffectTask2(struct Task *task) } } -static void TeleportFieldEffectTask3(struct Task *task) +static void TeleportWarpOutFieldEffect_2(struct Task *task) { u8 spinDirections[5] = {DIR_SOUTH, DIR_WEST, DIR_EAST, DIR_NORTH, DIR_SOUTH}; struct ObjectEvent *objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; @@ -2334,7 +2339,7 @@ static void TeleportFieldEffectTask3(struct Task *task) } } -static void TeleportFieldEffectTask4(struct Task *task) +static void TeleportWarpOutFieldEffect_3(struct Task *task) { if (!gPaletteFade.active) { @@ -2349,13 +2354,13 @@ static void TeleportFieldEffectTask4(struct Task *task) SetWarpDestinationToLastHealLocation(); WarpIntoMap(); SetMainCallback2(CB2_LoadMap); - gFieldCallback = mapldr_08085D88; - DestroyTask(FindTaskIdByFunc(ExecuteTeleportFieldEffectTask)); + gFieldCallback = FieldCallback_TeleportWarpIn; + DestroyTask(FindTaskIdByFunc(Task_TeleportWarpOut)); } } } -static void mapldr_08085D88(void) +static void FieldCallback_TeleportWarpIn(void) { Overworld_PlaySpecialMapMusic(); WarpFadeInScreen(); @@ -2364,21 +2369,21 @@ static void mapldr_08085D88(void) gFieldCallback = NULL; gObjectEvents[gPlayerAvatar.objectEventId].invisible = TRUE; CameraObjectReset2(); - CreateTask(sub_80B8250, 0); + CreateTask(Task_TeleportWarpIn, 0); } -void (*const gUnknown_0855C49C[])(struct Task *) = { - sub_80B8280, - sub_80B830C, - sub_80B8410 +void (*const sTeleportWarpInFieldEffectFuncs[])(struct Task *) = { + TeleportWarpInFieldEffect_0, + TeleportWarpInFieldEffect_1, + TeleportWarpInFieldEffect_2 }; -static void sub_80B8250(u8 taskId) +static void Task_TeleportWarpIn(u8 taskId) { - gUnknown_0855C49C[gTasks[taskId].data[0]](&gTasks[taskId]); + sTeleportWarpInFieldEffectFuncs[gTasks[taskId].data[0]](&gTasks[taskId]); } -static void sub_80B8280(struct Task *task) +static void TeleportWarpInFieldEffect_0(struct Task *task) { struct Sprite *sprite; s16 centerToCornerVecY; @@ -2397,9 +2402,9 @@ static void sub_80B8280(struct Task *task) } } -static void sub_80B830C(struct Task *task) +static void TeleportWarpInFieldEffect_1(struct Task *task) { - u8 spinDirections[5] = {1, 3, 4, 2, 1}; + u8 spinDirections[5] = {DIR_SOUTH, DIR_WEST, DIR_EAST, DIR_NORTH, DIR_SOUTH}; struct ObjectEvent *objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; struct Sprite *sprite = &gSprites[gPlayerAvatar.spriteId]; if ((sprite->pos2.y += task->data[1]) >= -8) @@ -2436,9 +2441,9 @@ static void sub_80B830C(struct Task *task) } } -static void sub_80B8410(struct Task *task) +static void TeleportWarpInFieldEffect_2(struct Task *task) { - u8 spinDirections[5] = {1, 3, 4, 2, 1}; + u8 spinDirections[5] = {DIR_SOUTH, DIR_WEST, DIR_EAST, DIR_NORTH, DIR_SOUTH}; struct ObjectEvent *objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; if ((--task->data[1]) == 0) { @@ -2449,7 +2454,7 @@ static void sub_80B8410(struct Task *task) ScriptContext2_Disable(); CameraObjectReset1(); UnfreezeObjectEvents(); - DestroyTask(FindTaskIdByFunc(sub_80B8250)); + DestroyTask(FindTaskIdByFunc(Task_TeleportWarpIn)); } } } @@ -2459,10 +2464,10 @@ bool8 FldEff_FieldMoveShowMon(void) u8 taskId; if (IsMapTypeOutdoors(GetCurrentMapType()) == TRUE) { - taskId = CreateTask(sub_80B8554, 0xff); + taskId = CreateTask(Task_FieldMoveShowMonOutdoors, 0xff); } else { - taskId = CreateTask(sub_80B88B4, 0xff); + taskId = CreateTask(Task_FieldMoveShowMonIndoors, 0xff); } gTasks[taskId].data[15] = sub_80B8C60(gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); return FALSE; @@ -2482,22 +2487,22 @@ bool8 FldEff_FieldMoveShowMonInit(void) return FALSE; } -void (*const gUnknown_0855C4A8[])(struct Task *) = { - sub_80B8584, - sub_80B85F8, - sub_80B8660, - sub_80B86EC, - sub_80B871C, - sub_80B8770, - overworld_bg_setup_2, +void (*const sFieldMoveShowMonOutdoorsEffectFuncs[])(struct Task *) = { + FieldMoveShowMonOutdoorsEffect_0, + FieldMoveShowMonOutdoorsEffect_1, + FieldMoveShowMonOutdoorsEffect_2, + FieldMoveShowMonOutdoorsEffect_3, + FieldMoveShowMonOutdoorsEffect_4, + FieldMoveShowMonOutdoorsEffect_5, + FieldMoveShowMonOutdoorsEffect_6, }; -static void sub_80B8554(u8 taskId) +static void Task_FieldMoveShowMonOutdoors(u8 taskId) { - gUnknown_0855C4A8[gTasks[taskId].data[0]](&gTasks[taskId]); + sFieldMoveShowMonOutdoorsEffectFuncs[gTasks[taskId].data[0]](&gTasks[taskId]); } -static void sub_80B8584(struct Task *task) +static void FieldMoveShowMonOutdoorsEffect_0(struct Task *task) { task->data[11] = REG_WININ; task->data[12] = REG_WINOUT; @@ -2510,11 +2515,11 @@ static void sub_80B8584(struct Task *task) SetGpuReg(REG_OFFSET_WIN0V, task->data[2]); SetGpuReg(REG_OFFSET_WININ, task->data[3]); SetGpuReg(REG_OFFSET_WINOUT, task->data[4]); - SetVBlankCallback(sub_80B880C); + SetVBlankCallback(VBlankCB_FieldMoveShowMonOutdoors); task->data[0]++; } -static void sub_80B85F8(struct Task *task) +static void FieldMoveShowMonOutdoorsEffect_1(struct Task *task) { u16 offset = ((REG_BG0CNT >> 2) << 14); u16 delta = ((REG_BG0CNT >> 8) << 11); @@ -2525,7 +2530,7 @@ static void sub_80B85F8(struct Task *task) task->data[0]++; } -static void sub_80B8660(struct Task *task) +static void FieldMoveShowMonOutdoorsEffect_2(struct Task *task) { s16 v0; s16 v2; @@ -2558,7 +2563,7 @@ static void sub_80B8660(struct Task *task) } } -static void sub_80B86EC(struct Task *task) +static void FieldMoveShowMonOutdoorsEffect_3(struct Task *task) { task->data[5] -= 16; if (gSprites[task->data[15]].data[7]) @@ -2567,7 +2572,7 @@ static void sub_80B86EC(struct Task *task) } } -static void sub_80B871C(struct Task *task) +static void FieldMoveShowMonOutdoorsEffect_4(struct Task *task) { s16 v2; s16 v3; @@ -2591,7 +2596,7 @@ static void sub_80B871C(struct Task *task) } } -static void sub_80B8770(struct Task *task) +static void FieldMoveShowMonOutdoorsEffect_5(struct Task *task) { u16 bg0cnt = (REG_BG0CNT >> 8) << 11; CpuFill32(0, (void *)VRAM + bg0cnt, 0x800); @@ -2602,21 +2607,21 @@ static void sub_80B8770(struct Task *task) task->data[0]++; } -static void overworld_bg_setup_2(struct Task *task) +static void FieldMoveShowMonOutdoorsEffect_6(struct Task *task) { IntrCallback callback; LoadWordFromTwoHalfwords((u16 *)&task->data[13], (u32 *)&callback); SetVBlankCallback(callback); - sub_8197200(); + InitTextBoxGfxAndPrinters(); FreeResourcesAndDestroySprite(&gSprites[task->data[15]], task->data[15]); FieldEffectActiveListRemove(FLDEFF_FIELD_MOVE_SHOW_MON); - DestroyTask(FindTaskIdByFunc(sub_80B8554)); + DestroyTask(FindTaskIdByFunc(Task_FieldMoveShowMonOutdoors)); } -static void sub_80B880C(void) +static void VBlankCB_FieldMoveShowMonOutdoors(void) { IntrCallback callback; - struct Task *task = &gTasks[FindTaskIdByFunc(sub_80B8554)]; + struct Task *task = &gTasks[FindTaskIdByFunc(Task_FieldMoveShowMonOutdoors)]; LoadWordFromTwoHalfwords((u16 *)&task->data[13], (u32 *)&callback); callback(); SetGpuReg(REG_OFFSET_WIN0H, task->data[1]); @@ -2638,31 +2643,31 @@ static void sub_80B8874(u16 offs) } } -void (*const gUnknown_0855C4C4[])(struct Task *) = { - sub_80B88E4, - sub_80B8920, - sub_80B898C, - sub_80B89DC, - sub_80B8A0C, - sub_80B8A44, - sub_80B8A64, +void (*const sFieldMoveShowMonIndoorsEffectFuncs[])(struct Task *) = { + FieldMoveShowMonIndoorsEffect_0, + FieldMoveShowMonIndoorsEffect_1, + FieldMoveShowMonIndoorsEffect_2, + FieldMoveShowMonIndoorsEffect_3, + FieldMoveShowMonIndoorsEffect_4, + FieldMoveShowMonIndoorsEffect_5, + FieldMoveShowMonIndoorsEffect_6, }; -static void sub_80B88B4(u8 taskId) +static void Task_FieldMoveShowMonIndoors(u8 taskId) { - gUnknown_0855C4C4[gTasks[taskId].data[0]](&gTasks[taskId]); + sFieldMoveShowMonIndoorsEffectFuncs[gTasks[taskId].data[0]](&gTasks[taskId]); } -static void sub_80B88E4(struct Task *task) +static void FieldMoveShowMonIndoorsEffect_0(struct Task *task) { SetGpuReg(REG_OFFSET_BG0HOFS, task->data[1]); SetGpuReg(REG_OFFSET_BG0VOFS, task->data[2]); StoreWordInTwoHalfwords((u16 *)&task->data[13], (u32)gMain.vblankCallback); - SetVBlankCallback(sub_80B8AE0); + SetVBlankCallback(VBlankCB_FieldMoveShowMonIndoors); task->data[0]++; } -static void sub_80B8920(struct Task *task) +static void FieldMoveShowMonIndoorsEffect_1(struct Task *task) { u16 offset; u16 delta; @@ -2675,7 +2680,7 @@ static void sub_80B8920(struct Task *task) task->data[0]++; } -static void sub_80B898C(struct Task *task) +static void FieldMoveShowMonIndoorsEffect_2(struct Task *task) { if (sub_80B8B38(task)) { @@ -2687,7 +2692,7 @@ static void sub_80B898C(struct Task *task) sub_80B8B28(task); } -static void sub_80B89DC(struct Task *task) +static void FieldMoveShowMonIndoorsEffect_3(struct Task *task) { sub_80B8B28(task); if (gSprites[task->data[15]].data[7]) @@ -2696,7 +2701,7 @@ static void sub_80B89DC(struct Task *task) } } -static void sub_80B8A0C(struct Task *task) +static void FieldMoveShowMonIndoorsEffect_4(struct Task *task) { sub_80B8B28(task); task->data[3] = task->data[1] & 7; @@ -2706,7 +2711,7 @@ static void sub_80B8A0C(struct Task *task) task->data[0]++; } -static void sub_80B8A44(struct Task *task) +static void FieldMoveShowMonIndoorsEffect_5(struct Task *task) { sub_80B8B28(task); if (sub_80B8BF0(task)) @@ -2715,7 +2720,7 @@ static void sub_80B8A44(struct Task *task) } } -static void sub_80B8A64(struct Task *task) +static void FieldMoveShowMonIndoorsEffect_6(struct Task *task) { IntrCallback intrCallback; u16 bg0cnt; @@ -2723,17 +2728,17 @@ static void sub_80B8A64(struct Task *task) CpuFill32(0, (void *)VRAM + bg0cnt, 0x800); LoadWordFromTwoHalfwords((u16 *)&task->data[13], (u32 *)&intrCallback); SetVBlankCallback(intrCallback); - sub_8197200(); + InitTextBoxGfxAndPrinters(); FreeResourcesAndDestroySprite(&gSprites[task->data[15]], task->data[15]); FieldEffectActiveListRemove(FLDEFF_FIELD_MOVE_SHOW_MON); - DestroyTask(FindTaskIdByFunc(sub_80B88B4)); + DestroyTask(FindTaskIdByFunc(Task_FieldMoveShowMonIndoors)); } -static void sub_80B8AE0(void) +static void VBlankCB_FieldMoveShowMonIndoors(void) { IntrCallback intrCallback; struct Task *task; - task = &gTasks[FindTaskIdByFunc(sub_80B88B4)]; + task = &gTasks[FindTaskIdByFunc(Task_FieldMoveShowMonIndoors)]; LoadWordFromTwoHalfwords((u16 *)&task->data[13], (u32 *)&intrCallback); intrCallback(); SetGpuReg(REG_OFFSET_BG0HOFS, task->data[1]); @@ -2855,50 +2860,50 @@ static void sub_80B8D20(struct Sprite *sprite) u8 FldEff_UseSurf(void) { - u8 taskId = CreateTask(sub_80B8D84, 0xff); + u8 taskId = CreateTask(Task_SurfFieldEffect, 0xff); gTasks[taskId].data[15] = gFieldEffectArguments[0]; Overworld_ClearSavedMusic(); Overworld_ChangeMusicTo(MUS_NAMINORI); return FALSE; } -void (*const gUnknown_0855C4E0[])(struct Task *) = { - sub_80B8DB4, - sub_80B8E14, - sub_80B8E60, - sub_80B8EA8, - sub_80B8F24, +void (*const sSurfFieldEffectFuncs[])(struct Task *) = { + SurfFieldEffect_1, + SurfFieldEffect_2, + SurfFieldEffect_3, + SurfFieldEffect_4, + SurfFieldEffect_5, }; -static void sub_80B8D84(u8 taskId) +static void Task_SurfFieldEffect(u8 taskId) { - gUnknown_0855C4E0[gTasks[taskId].data[0]](&gTasks[taskId]); + sSurfFieldEffectFuncs[gTasks[taskId].data[0]](&gTasks[taskId]); } -static void sub_80B8DB4(struct Task *task) +static void SurfFieldEffect_1(struct Task *task) { ScriptContext2_Enable(); FreezeObjectEvents(); gPlayerAvatar.preventStep = TRUE; - SetPlayerAvatarStateMask(8); + SetPlayerAvatarStateMask(PLAYER_AVATAR_FLAG_SURFING); PlayerGetDestCoords(&task->data[1], &task->data[2]); MoveCoords(gObjectEvents[gPlayerAvatar.objectEventId].movementDirection, &task->data[1], &task->data[2]); task->data[0]++; } -static void sub_80B8E14(struct Task *task) +static void SurfFieldEffect_2(struct Task *task) { struct ObjectEvent *objectEvent; objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; if (!ObjectEventIsMovementOverridden(objectEvent) || ObjectEventClearHeldMovementIfFinished(objectEvent)) { - sub_808C114(); + SetPlayerAvatarFieldMove(); ObjectEventSetHeldMovement(objectEvent, MOVEMENT_ACTION_START_ANIM_IN_DIRECTION); task->data[0]++; } } -static void sub_80B8E60(struct Task *task) +static void SurfFieldEffect_3(struct Task *task) { struct ObjectEvent *objectEvent; objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; @@ -2910,13 +2915,13 @@ static void sub_80B8E60(struct Task *task) } } -static void sub_80B8EA8(struct Task *task) +static void SurfFieldEffect_4(struct Task *task) { struct ObjectEvent *objectEvent; if (!FieldEffectActiveListContains(FLDEFF_FIELD_MOVE_SHOW_MON)) { objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; - ObjectEventSetGraphicsId(objectEvent, GetPlayerAvatarGraphicsIdByStateId(3)); + ObjectEventSetGraphicsId(objectEvent, GetPlayerAvatarGraphicsIdByStateId(PLAYER_AVATAR_STATE_SURFING)); ObjectEventClearHeldMovementIfFinished(objectEvent); ObjectEventSetHeldMovement(objectEvent, GetJumpSpecialMovementAction(objectEvent->movementDirection)); gFieldEffectArguments[0] = task->data[1]; @@ -2927,27 +2932,27 @@ static void sub_80B8EA8(struct Task *task) } } -static void sub_80B8F24(struct Task *task) +static void SurfFieldEffect_5(struct Task *task) { struct ObjectEvent *objectEvent; objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; if (ObjectEventClearHeldMovementIfFinished(objectEvent)) { gPlayerAvatar.preventStep = FALSE; - gPlayerAvatar.flags &= 0xdf; + gPlayerAvatar.flags &= ~PLAYER_AVATAR_FLAG_5; ObjectEventSetHeldMovement(objectEvent, GetFaceDirectionMovementAction(objectEvent->movementDirection)); sub_81555AC(objectEvent->fieldEffectSpriteId, 1); UnfreezeObjectEvents(); ScriptContext2_Disable(); FieldEffectActiveListRemove(FLDEFF_USE_SURF); - DestroyTask(FindTaskIdByFunc(sub_80B8D84)); + DestroyTask(FindTaskIdByFunc(Task_SurfFieldEffect)); } } u8 sub_80B8F98(void) { u8 i, j, k; - u8 spriteId = CreateSprite(gFieldEffectObjectTemplatePointers[36], 0x78, -0x18, 1); + u8 spriteId = CreateSprite(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_RAYQUAZA], 0x78, -0x18, 1); struct Sprite *sprite = &gSprites[spriteId]; sprite->oam.priority = 1; @@ -2983,18 +2988,18 @@ u8 sub_80B8F98(void) u8 FldEff_NPCFlyOut(void) { - u8 spriteId = CreateSprite(gFieldEffectObjectTemplatePointers[26], 0x78, 0, 1); + u8 spriteId = CreateSprite(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_BIRD], 0x78, 0, 1); struct Sprite *sprite = &gSprites[spriteId]; sprite->oam.paletteNum = 0; sprite->oam.priority = 1; - sprite->callback = sub_80B9128; + sprite->callback = SpriteCB_NPCFlyOut; sprite->data[1] = gFieldEffectArguments[0]; PlaySE(SE_W019); return spriteId; } -static void sub_80B9128(struct Sprite *sprite) +static void SpriteCB_NPCFlyOut(struct Sprite *sprite) { struct Sprite *npcSprite; @@ -3004,7 +3009,7 @@ static void sub_80B9128(struct Sprite *sprite) if (sprite->data[0]) { npcSprite = &gSprites[sprite->data[1]]; - npcSprite->coordOffsetEnabled = 0; + npcSprite->coordOffsetEnabled = FALSE; npcSprite->pos1.x = sprite->pos1.x + sprite->pos2.x; npcSprite->pos1.y = sprite->pos1.y + sprite->pos2.y - 8; npcSprite->pos2.x = 0; @@ -3016,45 +3021,47 @@ static void sub_80B9128(struct Sprite *sprite) } } +#define tAvatarFlags data[15] + u8 FldEff_UseFly(void) { - u8 taskId = CreateTask(sub_80B91D4, 0xfe); + u8 taskId = CreateTask(Task_FlyOut, 254); gTasks[taskId].data[1] = gFieldEffectArguments[0]; return 0; } -void (*const gUnknown_0855C4F4[])(struct Task *) = { - sub_80B9204, - sub_80B925C, - sub_80B92A0, - sub_80B92F8, - sub_80B933C, - sub_80B9390, - sub_80B9418, - sub_80B9474, - sub_80B9494, +void (*const sFlyOutFieldEffectFuncs[])(struct Task *) = { + FlyOutFieldEffect_0, + FlyOutFieldEffect_1, + FlyOutFieldEffect_2, + FlyOutFieldEffect_3, + FlyOutFieldEffect_4, + FlyOutFieldEffect_5, + FlyOutFieldEffect_6, + FlyOutFieldEffect_7, + FlyOutFieldEffect_8, }; -static void sub_80B91D4(u8 taskId) +static void Task_FlyOut(u8 taskId) { - gUnknown_0855C4F4[gTasks[taskId].data[0]](&gTasks[taskId]); + sFlyOutFieldEffectFuncs[gTasks[taskId].data[0]](&gTasks[taskId]); } -static void sub_80B9204(struct Task *task) +static void FlyOutFieldEffect_0(struct Task *task) { struct ObjectEvent *objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; if (!ObjectEventIsMovementOverridden(objectEvent) || ObjectEventClearHeldMovementIfFinished(objectEvent)) { - task->data[15] = gPlayerAvatar.flags; + task->tAvatarFlags = gPlayerAvatar.flags; gPlayerAvatar.preventStep = TRUE; - SetPlayerAvatarStateMask(1); - sub_808C114(); + SetPlayerAvatarStateMask(PLAYER_AVATAR_FLAG_ON_FOOT); + SetPlayerAvatarFieldMove(); ObjectEventSetHeldMovement(objectEvent, MOVEMENT_ACTION_START_ANIM_IN_DIRECTION); task->data[0]++; } } -static void sub_80B925C(struct Task *task) +static void FlyOutFieldEffect_1(struct Task *task) { struct ObjectEvent *objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; if (ObjectEventClearHeldMovementIfFinished(objectEvent)) @@ -3065,12 +3072,12 @@ static void sub_80B925C(struct Task *task) } } -static void sub_80B92A0(struct Task *task) +static void FlyOutFieldEffect_2(struct Task *task) { if (!FieldEffectActiveListContains(FLDEFF_FIELD_MOVE_SHOW_MON)) { struct ObjectEvent *objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; - if (task->data[15] & 0x08) + if (task->tAvatarFlags & PLAYER_AVATAR_FLAG_SURFING) { sub_81555AC(objectEvent->fieldEffectSpriteId, 2); sub_81555D8(objectEvent->fieldEffectSpriteId, 0); @@ -3080,7 +3087,7 @@ static void sub_80B92A0(struct Task *task) } } -static void sub_80B92F8(struct Task *task) +static void FlyOutFieldEffect_3(struct Task *task) { if (sub_80B9508(task->data[1])) { @@ -3091,7 +3098,7 @@ static void sub_80B92F8(struct Task *task) } } -static void sub_80B933C(struct Task *task) +static void FlyOutFieldEffect_4(struct Task *task) { struct ObjectEvent *objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; if ((task->data[2] == 0 || (--task->data[2]) == 0) && ObjectEventClearHeldMovementIfFinished(objectEvent)) @@ -3102,16 +3109,16 @@ static void sub_80B933C(struct Task *task) } } -static void sub_80B9390(struct Task *task) +static void FlyOutFieldEffect_5(struct Task *task) { if ((++task->data[2]) >= 8) { struct ObjectEvent *objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; - ObjectEventSetGraphicsId(objectEvent, GetPlayerAvatarGraphicsIdByStateId(0x03)); + ObjectEventSetGraphicsId(objectEvent, GetPlayerAvatarGraphicsIdByStateId(PLAYER_AVATAR_STATE_SURFING)); StartSpriteAnim(&gSprites[objectEvent->spriteId], 0x16); - objectEvent->inanimate = 1; + objectEvent->inanimate = TRUE; ObjectEventSetHeldMovement(objectEvent, MOVEMENT_ACTION_JUMP_IN_PLACE_LEFT); - if (task->data[15] & 0x08) + if (task->tAvatarFlags & PLAYER_AVATAR_FLAG_SURFING) { DestroySprite(&gSprites[objectEvent->fieldEffectSpriteId]); } @@ -3120,21 +3127,21 @@ static void sub_80B9390(struct Task *task) } } -static void sub_80B9418(struct Task *task) +static void FlyOutFieldEffect_6(struct Task *task) { if ((++task->data[2]) >= 10) { struct ObjectEvent *objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; ObjectEventClearHeldMovementIfActive(objectEvent); - objectEvent->inanimate = 0; - objectEvent->hasShadow = 0; + objectEvent->inanimate = FALSE; + objectEvent->hasShadow = FALSE; sub_80B9560(task->data[1], objectEvent->spriteId); CameraObjectReset2(); task->data[0]++; } } -static void sub_80B9474(struct Task *task) +static void FlyOutFieldEffect_7(struct Task *task) { if (sub_80B9508(task->data[1])) { @@ -3143,12 +3150,12 @@ static void sub_80B9474(struct Task *task) } } -static void sub_80B9494(struct Task *task) +static void FlyOutFieldEffect_8(struct Task *task) { if (!gPaletteFade.active) { FieldEffectActiveListRemove(FLDEFF_USE_FLY); - DestroyTask(FindTaskIdByFunc(sub_80B91D4)); + DestroyTask(FindTaskIdByFunc(Task_FlyOut)); } } @@ -3156,7 +3163,7 @@ static u8 sub_80B94C4(void) { u8 spriteId; struct Sprite *sprite; - spriteId = CreateSprite(gFieldEffectObjectTemplatePointers[26], 0xff, 0xb4, 0x1); + spriteId = CreateSprite(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_BIRD], 0xff, 0xb4, 0x1); sprite = &gSprites[spriteId]; sprite->oam.paletteNum = 0; sprite->oam.priority = 1; @@ -3245,7 +3252,7 @@ static void sub_80B963C(struct Sprite *sprite) if (sprite->data[6] != MAX_SPRITES) { struct Sprite *sprite1 = &gSprites[sprite->data[6]]; - sprite1->coordOffsetEnabled = 0; + sprite1->coordOffsetEnabled = FALSE; sprite1->pos1.x = sprite->pos1.x + sprite->pos2.x; sprite1->pos1.y = sprite->pos1.y + sprite->pos2.y - 8; sprite1->pos2.x = 0; @@ -3309,26 +3316,26 @@ void sub_80B9794(u8 spriteId) u8 FldEff_FlyIn(void) { - CreateTask(sub_80B97D4, 0xfe); + CreateTask(Task_FlyIn, 0xfe); return 0; } -void (*const gUnknown_0855C550[])(struct Task *) = { - sub_80B9804, - sub_80B98B8, - sub_80B9924, - sub_80B9978, - sub_80B99F0, - sub_80B9A28, - sub_80B9A60, +void (*const sFlyInFieldEffectFuncs[])(struct Task *) = { + FlyInFieldEffect_0, + FlyInFieldEffect_1, + FlyInFieldEffect_2, + FlyInFieldEffect_3, + FlyInFieldEffect_4, + FlyInFieldEffect_5, + FlyInFieldEffect_6, }; -static void sub_80B97D4(u8 taskId) +static void Task_FlyIn(u8 taskId) { - gUnknown_0855C550[gTasks[taskId].data[0]](&gTasks[taskId]); + sFlyInFieldEffectFuncs[gTasks[taskId].data[0]](&gTasks[taskId]); } -static void sub_80B9804(struct Task *task) +static void FlyInFieldEffect_0(struct Task *task) { struct ObjectEvent *objectEvent; objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; @@ -3336,14 +3343,14 @@ static void sub_80B9804(struct Task *task) { task->data[0]++; task->data[2] = 17; - task->data[15] = gPlayerAvatar.flags; + task->tAvatarFlags = gPlayerAvatar.flags; gPlayerAvatar.preventStep = TRUE; - SetPlayerAvatarStateMask(0x01); - if (task->data[15] & 0x08) + SetPlayerAvatarStateMask(PLAYER_AVATAR_FLAG_ON_FOOT); + if (task->tAvatarFlags & PLAYER_AVATAR_FLAG_SURFING) { sub_81555AC(objectEvent->fieldEffectSpriteId, 0); } - ObjectEventSetGraphicsId(objectEvent, GetPlayerAvatarGraphicsIdByStateId(0x3)); + ObjectEventSetGraphicsId(objectEvent, GetPlayerAvatarGraphicsIdByStateId(PLAYER_AVATAR_STATE_SURFING)); CameraObjectReset2(); ObjectEventTurn(objectEvent, DIR_WEST); StartSpriteAnim(&gSprites[objectEvent->spriteId], 0x16); @@ -3354,7 +3361,7 @@ static void sub_80B9804(struct Task *task) } } -static void sub_80B98B8(struct Task *task) +static void FlyInFieldEffect_1(struct Task *task) { struct ObjectEvent *objectEvent; struct Sprite *sprite; @@ -3372,9 +3379,9 @@ static void sub_80B98B8(struct Task *task) } } -static void sub_80B9924(struct Task *task) +static void FlyInFieldEffect_2(struct Task *task) { - s16 unknown_0855C56C[18] = { + s16 sYPositions[18] = { -2, -4, -5, @@ -3395,14 +3402,14 @@ static void sub_80B9924(struct Task *task) 8 }; struct Sprite *sprite = &gSprites[gPlayerAvatar.spriteId]; - sprite->pos2.y = unknown_0855C56C[task->data[2]]; - if ((++task->data[2]) >= 18) + sprite->pos2.y = sYPositions[task->data[2]]; + if ((++task->data[2]) >= (int)ARRAY_COUNT(sYPositions)) { task->data[0]++; } } -static void sub_80B9978(struct Task *task) +static void FlyInFieldEffect_3(struct Task *task) { struct ObjectEvent *objectEvent; struct Sprite *sprite; @@ -3410,18 +3417,18 @@ static void sub_80B9978(struct Task *task) { objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; sprite = &gSprites[objectEvent->spriteId]; - objectEvent->inanimate = 0; + objectEvent->inanimate = FALSE; MoveObjectEventToMapCoords(objectEvent, objectEvent->currentCoords.x, objectEvent->currentCoords.y); sprite->pos2.x = 0; sprite->pos2.y = 0; - sprite->coordOffsetEnabled = 1; - sub_808C114(); + sprite->coordOffsetEnabled = TRUE; + SetPlayerAvatarFieldMove(); ObjectEventSetHeldMovement(objectEvent, MOVEMENT_ACTION_START_ANIM_IN_DIRECTION); task->data[0]++; } } -static void sub_80B99F0(struct Task *task) +static void FlyInFieldEffect_4(struct Task *task) { if (ObjectEventClearHeldMovementIfFinished(&gObjectEvents[gPlayerAvatar.objectEventId])) { @@ -3430,7 +3437,7 @@ static void sub_80B99F0(struct Task *task) } } -static void sub_80B9A28(struct Task *task) +static void FlyInFieldEffect_5(struct Task *task) { if (sub_80B9508(task->data[1])) { @@ -3440,35 +3447,35 @@ static void sub_80B9A28(struct Task *task) } } -static void sub_80B9A60(struct Task *task) +static void FlyInFieldEffect_6(struct Task *task) { u8 state; struct ObjectEvent *objectEvent; if ((--task->data[1]) == 0) { objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; - state = 0; - if (task->data[15] & 0x08) + state = PLAYER_AVATAR_STATE_NORMAL; + if (task->tAvatarFlags & PLAYER_AVATAR_FLAG_SURFING) { - state = 3; + state = PLAYER_AVATAR_STATE_SURFING; sub_81555AC(objectEvent->fieldEffectSpriteId, 1); } ObjectEventSetGraphicsId(objectEvent, GetPlayerAvatarGraphicsIdByStateId(state)); ObjectEventTurn(objectEvent, DIR_SOUTH); - gPlayerAvatar.flags = task->data[15]; + gPlayerAvatar.flags = task->tAvatarFlags; gPlayerAvatar.preventStep = FALSE; FieldEffectActiveListRemove(FLDEFF_FLY_IN); - DestroyTask(FindTaskIdByFunc(sub_80B97D4)); + DestroyTask(FindTaskIdByFunc(Task_FlyIn)); } } -bool8 sub_80B9ADC(void) +bool8 FldEff_DestroyDeoxysRock(void) { u8 taskId; u8 objectEventIdBuffer; if (!TryGetObjectEventIdByLocalIdAndMap(gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2], &objectEventIdBuffer)) { - taskId = CreateTask(sub_80B9BE8, 0x50); + taskId = CreateTask(Task_DestroyDeoxysRock, 0x50); gTasks[taskId].data[2] = objectEventIdBuffer; gTasks[taskId].data[6] = gFieldEffectArguments[0]; gTasks[taskId].data[7] = gFieldEffectArguments[1]; @@ -3476,12 +3483,12 @@ bool8 sub_80B9ADC(void) } else { - FieldEffectActiveListRemove(0x41); + FieldEffectActiveListRemove(FLDEFF_DESTROY_DEOXYS_ROCK); } return FALSE; } -void sub_80B9B3C(u8 taskId) +static void Task_PanCameraForDestroyingDeoxysRock(u8 taskId) { s16 *data = gTasks[taskId].data; if (data[7] != 0) @@ -3520,31 +3527,29 @@ void sub_80B9BD0(u8 taskId) gTasks[taskId].data[7] = 1; } -void (*const gUnknown_0855C590[])(s16*, u8) = { - sub_80B9C28, - sub_80B9C54, - sub_80B9CDC, +void (*const sDestroyDeoxysRockFieldEffectFuncs[])(s16*, u8) = { + DestroyDeoxysRockFieldEffect_0, + DestroyDeoxysRockFieldEffect_1, + DestroyDeoxysRockFieldEffect_2, }; -static void sub_80B9BE8(u8 taskId) +static void Task_DestroyDeoxysRock(u8 taskId) { s16 *data = gTasks[taskId].data; InstallCameraPanAheadCallback(); SetCameraPanningCallback(0); - gUnknown_0855C590[data[1]](data, taskId); + sDestroyDeoxysRockFieldEffectFuncs[data[1]](data, taskId); } -void sub_80B9C28(s16* data, u8 taskId) +static void DestroyDeoxysRockFieldEffect_0(s16* data, u8 taskId) { - u8 newTaskId = CreateTask(sub_80B9B3C, 0x5A); + u8 newTaskId = CreateTask(Task_PanCameraForDestroyingDeoxysRock, 0x5A); PlaySE(SE_T_KAMI2); data[5] = newTaskId; data[1]++; } -void sub_80B9D24(struct Sprite*); - -void sub_80B9C54(s16* data, u8 taskId) +static void DestroyDeoxysRockFieldEffect_1(s16* data, u8 taskId) { if (++data[3] > 0x78) { @@ -3560,13 +3565,13 @@ void sub_80B9C54(s16* data, u8 taskId) } } -void sub_80B9CDC(s16* a0, u8 taskId) +static void DestroyDeoxysRockFieldEffect_2(s16* a0, u8 taskId) { - if (!gPaletteFade.active && !FuncIsActiveTask(sub_80B9B3C)) + if (!gPaletteFade.active && !FuncIsActiveTask(Task_PanCameraForDestroyingDeoxysRock)) { InstallCameraPanAheadCallback(); RemoveObjectEventByLocalIdAndMap(a0[6], a0[7], a0[8]); - FieldEffectActiveListRemove(0x41); + FieldEffectActiveListRemove(FLDEFF_DESTROY_DEOXYS_ROCK); DestroyTask(taskId); } } @@ -3615,7 +3620,7 @@ const struct SpriteTemplate gUnknown_0855C5EC = { .callback = sub_80B9DB8 }; -void sub_80B9D24(struct Sprite* sprite) +static void sub_80B9D24(struct Sprite* sprite) { int i; int xPos = (s16)gTotalCameraPixelOffsetX + sprite->pos1.x + sprite->pos2.x; @@ -3658,7 +3663,7 @@ static void sub_80B9DB8(struct Sprite* sprite) DestroySprite(sprite); } -bool8 Fldeff_MoveDeoxysRock(struct Sprite* sprite) +bool8 FldEff_MoveDeoxysRock(struct Sprite* sprite) { u8 objectEventIdBuffer; if (!TryGetObjectEventIdByLocalIdAndMap(gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2], &objectEventIdBuffer)) @@ -3672,7 +3677,7 @@ bool8 Fldeff_MoveDeoxysRock(struct Sprite* sprite) xPos = (gFieldEffectArguments[3] - xPos) * 16; yPos = (gFieldEffectArguments[4] - yPos) * 16; ShiftObjectEventCoords(object, gFieldEffectArguments[3] + 7, gFieldEffectArguments[4] + 7); - taskId = CreateTask(Fldeff_MoveDeoxysRock_Step, 0x50); + taskId = CreateTask(Task_MoveDeoxysRock, 0x50); gTasks[taskId].data[1] = object->spriteId; gTasks[taskId].data[2] = gSprites[object->spriteId].pos1.x + xPos; gTasks[taskId].data[3] = gSprites[object->spriteId].pos1.y + yPos; @@ -3682,7 +3687,7 @@ bool8 Fldeff_MoveDeoxysRock(struct Sprite* sprite) return FALSE; } -static void Fldeff_MoveDeoxysRock_Step(u8 taskId) +static void Task_MoveDeoxysRock(u8 taskId) { // BUG: Possible divide by zero s16 *data = gTasks[taskId].data; @@ -3711,7 +3716,7 @@ static void Fldeff_MoveDeoxysRock_Step(u8 taskId) sprite->pos1.y = data[3]; ShiftStillObjectEventCoords(object); object->triggerGroundEffectsOnStop = TRUE; - FieldEffectActiveListRemove(0x42); + FieldEffectActiveListRemove(FLDEFF_MOVE_DEOXYS_ROCK); DestroyTask(taskId); } break; diff --git a/src/field_effect_helpers.c b/src/field_effect_helpers.c index 52c30ab0ff..d6bffd2068 100755 --- a/src/field_effect_helpers.c +++ b/src/field_effect_helpers.c @@ -166,7 +166,7 @@ u8 CreateWarpArrowSprite(void) u8 spriteId; struct Sprite *sprite; - spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[8], 0, 0, 0x52); + spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_ARROW], 0, 0, 0x52); if (spriteId != MAX_SPRITES) { sprite = &gSprites[spriteId]; @@ -202,11 +202,11 @@ void ShowWarpArrowSprite(u8 spriteId, u8 direction, s16 x, s16 y) } } -const u8 gShadowEffectTemplateIds[] = { - 0, - 1, - 2, - 3 +static const u8 sShadowEffectTemplateIds[] = { + FLDEFFOBJ_SHADOW_S, + FLDEFFOBJ_SHADOW_M, + FLDEFFOBJ_SHADOW_L, + FLDEFFOBJ_SHADOW_XL }; const u16 gShadowVerticalOffsets[] = { @@ -224,7 +224,7 @@ u32 FldEff_Shadow(void) objectEventId = GetObjectEventIdByLocalIdAndMap(gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); graphicsInfo = GetObjectEventGraphicsInfo(gObjectEvents[objectEventId].graphicsId); - spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[gShadowEffectTemplateIds[graphicsInfo->shadowSize]], 0, 0, 0x94); + spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[sShadowEffectTemplateIds[graphicsInfo->shadowSize]], 0, 0, 0x94); if (spriteId != MAX_SPRITES) { gSprites[spriteId].coordOffsetEnabled = TRUE; @@ -275,7 +275,7 @@ u32 FldEff_TallGrass(void) x = gFieldEffectArguments[0]; y = gFieldEffectArguments[1]; sub_80930E0(&x, &y, 8, 8); - spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[4], x, y, 0); + spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_TALL_GRASS], x, y, 0); if (spriteId != MAX_SPRITES) { sprite = &gSprites[spriteId]; @@ -341,7 +341,7 @@ u32 FldEff_JumpTallGrass(void) struct Sprite *sprite; sub_80930E0((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 12); - spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[10], gFieldEffectArguments[0], gFieldEffectArguments[1], 0); + spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_JUMP_TALL_GRASS], gFieldEffectArguments[0], gFieldEffectArguments[1], 0); if (spriteId != MAX_SPRITES) { sprite = &gSprites[spriteId]; @@ -381,7 +381,7 @@ u32 FldEff_LongGrass(void) x = gFieldEffectArguments[0]; y = gFieldEffectArguments[1]; sub_80930E0(&x, &y, 8, 8); - spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[15], x, y, 0); + spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_LONG_GRASS], x, y, 0); if (spriteId != MAX_SPRITES) { sprite = &gSprites[spriteId]; @@ -444,7 +444,7 @@ u32 FldEff_JumpLongGrass(void) struct Sprite *sprite; sub_80930E0((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8); - spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[16], gFieldEffectArguments[0], gFieldEffectArguments[1], 0); + spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_JUMP_LONG_GRASS], gFieldEffectArguments[0], gFieldEffectArguments[1], 0); if (spriteId != MAX_SPRITES) { sprite = &gSprites[spriteId]; @@ -465,7 +465,7 @@ u32 FldEff_ShortGrass(void) objectEventId = GetObjectEventIdByLocalIdAndMap(gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); objectEvent = &gObjectEvents[objectEventId]; - spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[30], 0, 0, 0); + spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_SHORT_GRASS], 0, 0, 0); if (spriteId != MAX_SPRITES) { sprite = &(gSprites[spriteId]); @@ -522,7 +522,7 @@ u32 FldEff_SandFootprints(void) struct Sprite *sprite; sub_80930E0((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8); - spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[11], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); + spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_SAND_FOOTPRINTS], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); if (spriteId != MAX_SPRITES) { sprite = &gSprites[spriteId]; @@ -540,7 +540,7 @@ u32 FldEff_DeepSandFootprints(void) struct Sprite *sprite; sub_80930E0((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8); - spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[23], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); + spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_DEEP_SAND_FOOTPRINTS], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); if (spriteId != MAX_SPRITES) { sprite = &gSprites[spriteId]; @@ -558,7 +558,7 @@ u32 FldEff_BikeTireTracks(void) struct Sprite *sprite; sub_80930E0((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8); - spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[27], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); + spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_BIKE_TIRE_TRACKS], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); if (spriteId != MAX_SPRITES) { sprite = &gSprites[spriteId]; @@ -611,7 +611,7 @@ u32 FldEff_Splash(void) objectEventId = GetObjectEventIdByLocalIdAndMap(gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); objectEvent = &gObjectEvents[objectEventId]; - spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[13], 0, 0, 0); + spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_SPLASH], 0, 0, 0); if (spriteId != MAX_SPRITES) { graphicsInfo = GetObjectEventGraphicsInfo(objectEvent->graphicsId); @@ -650,7 +650,7 @@ u32 FldEff_JumpSmallSplash(void) struct Sprite *sprite; sub_80930E0((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 12); - spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[14], gFieldEffectArguments[0], gFieldEffectArguments[1], 0); + spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_JUMP_SMALL_SPLASH], gFieldEffectArguments[0], gFieldEffectArguments[1], 0); if (spriteId != MAX_SPRITES) { sprite = &gSprites[spriteId]; @@ -668,7 +668,7 @@ u32 FldEff_JumpBigSplash(void) struct Sprite *sprite; sub_80930E0((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8); - spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[12], gFieldEffectArguments[0], gFieldEffectArguments[1], 0); + spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_JUMP_BIG_SPLASH], gFieldEffectArguments[0], gFieldEffectArguments[1], 0); if (spriteId != MAX_SPRITES) { sprite = &gSprites[spriteId]; @@ -690,7 +690,7 @@ u32 FldEff_FeetInFlowingWater(void) objectEventId = GetObjectEventIdByLocalIdAndMap(gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); objectEvent = &gObjectEvents[objectEventId]; - spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[13], 0, 0, 0); + spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_SPLASH], 0, 0, 0); if (spriteId != MAX_SPRITES) { graphicsInfo = GetObjectEventGraphicsInfo(objectEvent->graphicsId); @@ -744,7 +744,7 @@ u32 FldEff_Ripple(void) u8 spriteId; struct Sprite *sprite; - spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[5], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); + spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_RIPPLE], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); if (spriteId != MAX_SPRITES) { sprite = &gSprites[spriteId]; @@ -764,7 +764,7 @@ u32 FldEff_HotSpringsWater(void) objectEventId = GetObjectEventIdByLocalIdAndMap(gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); objectEvent = &gObjectEvents[objectEventId]; - spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[31], 0, 0, 0); + spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_HOT_SPRINGS_WATER], 0, 0, 0); if (spriteId != MAX_SPRITES) { sprite = &gSprites[spriteId]; @@ -806,7 +806,7 @@ u32 FldEff_Unknown19(void) struct Sprite *sprite; sub_80930E0((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8); - spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[17], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); + spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_17], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); if (spriteId != MAX_SPRITES) { sprite = &gSprites[spriteId]; @@ -817,19 +817,19 @@ u32 FldEff_Unknown19(void) return 0; } -u32 FldEff_Unknown20(void) +u32 FldEff_UnusedGrass(void) { u8 spriteId; struct Sprite *sprite; sub_80930E0((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8); - spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[18], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); + spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_UNUSED_GRASS], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); if (spriteId != MAX_SPRITES) { sprite = &gSprites[spriteId]; sprite->coordOffsetEnabled = TRUE; sprite->oam.priority = gFieldEffectArguments[3]; - sprite->data[0] = FLDEFF_UNKNOWN_20; + sprite->data[0] = FLDEFF_UNUSED_GRASS; } return 0; } @@ -840,7 +840,7 @@ u32 FldEff_Unknown21(void) struct Sprite *sprite; sub_80930E0((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8); - spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[19], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); + spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_19], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); if (spriteId != MAX_SPRITES) { sprite = &gSprites[spriteId]; @@ -857,7 +857,7 @@ u32 FldEff_Unknown22(void) struct Sprite *sprite; sub_80930E0((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8); - spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[20], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); + spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_20], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); if (spriteId != MAX_SPRITES) { sprite = &gSprites[spriteId]; @@ -889,7 +889,7 @@ u32 FldEff_Ash(void) x = gFieldEffectArguments[0]; y = gFieldEffectArguments[1]; sub_80930E0(&x, &y, 8, 8); - spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[6], x, y, gFieldEffectArguments[2]); + spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_ASH], x, y, gFieldEffectArguments[2]); if (spriteId != MAX_SPRITES) { sprite = &gSprites[spriteId]; @@ -945,7 +945,7 @@ u32 FldEff_SurfBlob(void) struct Sprite *sprite; sub_80930E0((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8); - spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[7], gFieldEffectArguments[0], gFieldEffectArguments[1], 0x96); + spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_SURF_BLOB], gFieldEffectArguments[0], gFieldEffectArguments[1], 0x96); if (spriteId !=MAX_SPRITES) { sprite = &gSprites[spriteId]; @@ -1107,7 +1107,7 @@ u32 FldEff_Dust(void) struct Sprite *sprite; sub_80930E0((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 12); - spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[9], gFieldEffectArguments[0], gFieldEffectArguments[1], 0); + spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_GROUND_IMPACT_DUST], gFieldEffectArguments[0], gFieldEffectArguments[1], 0); if (spriteId != MAX_SPRITES) { sprite = &gSprites[spriteId]; @@ -1129,7 +1129,7 @@ u32 FldEff_SandPile(void) objectEventId = GetObjectEventIdByLocalIdAndMap(gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); objectEvent = &gObjectEvents[objectEventId]; - spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[29], 0, 0, 0); + spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_SAND_PILE], 0, 0, 0); if (spriteId != MAX_SPRITES) { graphicsInfo = GetObjectEventGraphicsInfo(objectEvent->graphicsId); @@ -1183,7 +1183,7 @@ u32 FldEff_Bubbles(void) struct Sprite *sprite; sub_80930E0((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 0); - spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[34], gFieldEffectArguments[0], gFieldEffectArguments[1], 0x52); + spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_BUBBLES], gFieldEffectArguments[0], gFieldEffectArguments[1], 0x52); if (spriteId != MAX_SPRITES) { sprite = &gSprites[spriteId]; @@ -1211,7 +1211,7 @@ u32 FldEff_BerryTreeGrowthSparkle(void) struct Sprite *sprite; sub_80930E0((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 4); - spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[22], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); + spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_SPARKLE], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); if (spriteId != MAX_SPRITES) { sprite = &gSprites[spriteId]; @@ -1225,20 +1225,20 @@ u32 FldEff_BerryTreeGrowthSparkle(void) u32 ShowTreeDisguiseFieldEffect(void) { - return ShowDisguiseFieldEffect(FLDEFF_TREE_DISGUISE, 24, 4); + return ShowDisguiseFieldEffect(FLDEFF_TREE_DISGUISE, FLDEFFOBJ_TREE_DISGUISE, 4); } u32 ShowMountainDisguiseFieldEffect(void) { - return ShowDisguiseFieldEffect(FLDEFF_MOUNTAIN_DISGUISE, 25, 3); + return ShowDisguiseFieldEffect(FLDEFF_MOUNTAIN_DISGUISE, FLDEFFOBJ_MOUNTAIN_DISGUISE, 3); } u32 ShowSandDisguiseFieldEffect(void) { - return ShowDisguiseFieldEffect(FLDEFF_SAND_DISGUISE, 28, 2); + return ShowDisguiseFieldEffect(FLDEFF_SAND_DISGUISE, FLDEFFOBJ_SAND_DISGUISE, 2); } -static u32 ShowDisguiseFieldEffect(u8 fldEff, u8 templateIdx, u8 paletteNum) +static u32 ShowDisguiseFieldEffect(u8 fldEff, u8 fldEffObj, u8 paletteNum) { u8 spriteId; struct Sprite *sprite; @@ -1248,7 +1248,7 @@ static u32 ShowDisguiseFieldEffect(u8 fldEff, u8 templateIdx, u8 paletteNum) FieldEffectActiveListRemove(fldEff); return MAX_SPRITES; } - spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[templateIdx], 0, 0, 0); + spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[fldEffObj], 0, 0, 0); if (spriteId != MAX_SPRITES) { sprite = &gSprites[spriteId]; @@ -1331,7 +1331,7 @@ u32 FldEff_Sparkle(void) gFieldEffectArguments[0] += 7; gFieldEffectArguments[1] += 7; sub_80930E0((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8); - spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[35], gFieldEffectArguments[0], gFieldEffectArguments[1], 0x52); + spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_SMALL_SPARKLE], gFieldEffectArguments[0], gFieldEffectArguments[1], 0x52); if (spriteId != MAX_SPRITES) { gSprites[spriteId].oam.priority = gFieldEffectArguments[2]; diff --git a/src/field_player_avatar.c b/src/field_player_avatar.c index b0918a78de..c482f39d6a 100644 --- a/src/field_player_avatar.c +++ b/src/field_player_avatar.c @@ -379,9 +379,9 @@ static bool8 TryInterruptObjectEventSpecialAnim(struct ObjectEvent *playerObjEve static void npc_clear_strange_bits(struct ObjectEvent *objEvent) { - objEvent->inanimate = 0; - objEvent->disableAnim = 0; - objEvent->facingDirectionLocked = 0; + objEvent->inanimate = FALSE; + objEvent->disableAnim = FALSE; + objEvent->facingDirectionLocked = FALSE; gPlayerAvatar.flags &= ~PLAYER_AVATAR_FLAG_DASH; } @@ -424,14 +424,14 @@ static u8 GetForcedMovementByMetatileBehavior(void) static bool8 ForcedMovement_None(void) { - if (gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_6) + if (gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_FORCED_MOVE) { struct ObjectEvent *playerObjEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; - playerObjEvent->facingDirectionLocked = 0; - playerObjEvent->enableAnim = 1; + playerObjEvent->facingDirectionLocked = FALSE; + playerObjEvent->enableAnim = TRUE; SetObjectEventDirection(playerObjEvent, playerObjEvent->facingDirection); - gPlayerAvatar.flags &= ~PLAYER_AVATAR_FLAG_6; + gPlayerAvatar.flags &= ~PLAYER_AVATAR_FLAG_FORCED_MOVE; } return FALSE; } @@ -441,7 +441,7 @@ static u8 DoForcedMovement(u8 direction, void (*b)(u8)) struct PlayerAvatar *playerAvatar = &gPlayerAvatar; u8 collision = CheckForPlayerAvatarCollision(direction); - playerAvatar->flags |= PLAYER_AVATAR_FLAG_6; + playerAvatar->flags |= PLAYER_AVATAR_FLAG_FORCED_MOVE; if (collision) { ForcedMovement_None(); @@ -453,7 +453,7 @@ static u8 DoForcedMovement(u8 direction, void (*b)(u8)) { if (collision == COLLISION_LEDGE_JUMP) PlayerJumpLedge(direction); - playerAvatar->flags |= PLAYER_AVATAR_FLAG_6; + playerAvatar->flags |= PLAYER_AVATAR_FLAG_FORCED_MOVE; playerAvatar->runningState = MOVING; return 1; } @@ -470,7 +470,7 @@ static u8 DoForcedMovementInCurrentDirection(void (*a)(u8)) { struct ObjectEvent *playerObjEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; - playerObjEvent->disableAnim = 1; + playerObjEvent->disableAnim = TRUE; return DoForcedMovement(playerObjEvent->movementDirection, a); } @@ -519,12 +519,12 @@ static bool8 ForcedMovement_PushedEastByCurrent(void) return DoForcedMovement(DIR_EAST, PlayerRideWaterCurrent); } -u8 ForcedMovement_Slide(u8 direction, void (*b)(u8)) +static u8 ForcedMovement_Slide(u8 direction, void (*b)(u8)) { struct ObjectEvent *playerObjEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; - playerObjEvent->disableAnim = 1; - playerObjEvent->facingDirectionLocked = 1; + playerObjEvent->disableAnim = TRUE; + playerObjEvent->facingDirectionLocked = TRUE; return DoForcedMovement(direction, b); } @@ -567,8 +567,8 @@ static bool8 ForcedMovement_MuddySlope(void) if (playerObjEvent->movementDirection != DIR_NORTH || GetPlayerSpeed() <= 3) { Bike_UpdateBikeCounterSpeed(0); - playerObjEvent->facingDirectionLocked = 1; - return DoForcedMovement(1, PlayerGoSpeed2); + playerObjEvent->facingDirectionLocked = TRUE; + return DoForcedMovement(DIR_SOUTH, PlayerGoSpeed2); } else { @@ -1328,7 +1328,7 @@ void ClearPlayerAvatarInfo(void) void SetPlayerAvatarStateMask(u8 flags) { - gPlayerAvatar.flags &= (PLAYER_AVATAR_FLAG_DASH | PLAYER_AVATAR_FLAG_6 | PLAYER_AVATAR_FLAG_5); + gPlayerAvatar.flags &= (PLAYER_AVATAR_FLAG_DASH | PLAYER_AVATAR_FLAG_FORCED_MOVE | PLAYER_AVATAR_FLAG_5); gPlayerAvatar.flags |= flags; } @@ -1404,13 +1404,13 @@ void SetPlayerInvisibility(bool8 invisible) gSprites[gObjectEvents[gPlayerAvatar.objectEventId].fieldEffectSpriteId].invisible = invisible; } -void sub_808C114(void) +void SetPlayerAvatarFieldMove(void) { ObjectEventSetGraphicsId(&gObjectEvents[gPlayerAvatar.objectEventId], GetPlayerAvatarGraphicsIdByStateId(PLAYER_AVATAR_STATE_FIELD_MOVE)); StartSpriteAnim(&gSprites[gPlayerAvatar.spriteId], 0); } -void sub_808C15C(u8 direction) +static void SetPlayerAvatarFishing(u8 direction) { ObjectEventSetGraphicsId(&gObjectEvents[gPlayerAvatar.objectEventId], GetPlayerAvatarGraphicsIdByStateId(PLAYER_AVATAR_STATE_FISHING)); StartSpriteAnim(&gSprites[gPlayerAvatar.spriteId], GetFishingDirectionAnimNum(direction)); @@ -1423,7 +1423,7 @@ void PlayerUseAcroBikeOnBumpySlope(u8 direction) SeekSpriteAnim(&gSprites[gPlayerAvatar.spriteId], 1); } -void sub_808C228(u8 direction) +void SetPlayerAvatarWatering(u8 direction) { ObjectEventSetGraphicsId(&gObjectEvents[gPlayerAvatar.objectEventId], GetPlayerAvatarGraphicsIdByStateId(PLAYER_AVATAR_STATE_WATERING)); StartSpriteAnim(&gSprites[gPlayerAvatar.spriteId], GetFaceDirectionAnimNum(direction)); @@ -1739,8 +1739,8 @@ static bool8 Fishing2(struct Task *task) task->tPlayerGfxId = gObjectEvents[gPlayerAvatar.objectEventId].graphicsId; playerObjEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; ObjectEventClearHeldMovementIfActive(playerObjEvent); - playerObjEvent->enableAnim = 1; - sub_808C15C(playerObjEvent->facingDirection); + playerObjEvent->enableAnim = TRUE; + SetPlayerAvatarFishing(playerObjEvent->facingDirection); task->tStep++; return FALSE; } diff --git a/src/field_region_map.c b/src/field_region_map.c index b442675f38..fc6f0fa767 100644 --- a/src/field_region_map.c +++ b/src/field_region_map.c @@ -116,7 +116,7 @@ static void MCB2_InitRegionMapRegisters(void) InitWindows(sFieldRegionMapWindowTemplates); DeactivateAllTextPrinters(); LoadUserWindowBorderGfx(0, 0x27, 0xd0); - clear_scheduled_bg_copies_to_vram(); + ClearScheduledBgCopiesToVram(); SetMainCallback2(MCB2_FieldUpdateRegionMap); SetVBlankCallback(VBCB_FieldUpdateRegionMap); } @@ -134,7 +134,7 @@ static void MCB2_FieldUpdateRegionMap(void) AnimateSprites(); BuildOamBuffer(); UpdatePaletteFade(); - do_scheduled_bg_tilemap_copies_to_vram(); + DoScheduledBgTilemapCopiesToVram(); } static void FieldUpdateRegionMap(void) diff --git a/src/field_screen_effect.c b/src/field_screen_effect.c index 51f719fc95..971e58cf40 100644 --- a/src/field_screen_effect.c +++ b/src/field_screen_effect.c @@ -12,6 +12,7 @@ #include "field_special_scene.h" #include "field_weather.h" #include "gpu_regs.h" +#include "io_reg.h" #include "link.h" #include "link_rfu.h" #include "load_save.h" @@ -34,13 +35,11 @@ #include "trainer_hill.h" #include "fldeff.h" -extern const u16 gOrbEffectBackgroundLayerFlags[]; - // This file's functions. static void sub_8080B9C(u8); static void Task_ExitNonAnimDoor(u8); static void Task_ExitNonDoor(u8); -static void task0A_fade_n_map_maybe(u8); +static void Task_DoContestHallWarp(u8); static void sub_808115C(u8); static void FillPalBufferWhite(void); static void Task_ExitDoor(u8); @@ -314,7 +313,7 @@ static void FieldCB_MossdeepGymWarpExit(void) PlaySE(SE_TK_WARPOUT); CreateTask(Task_ExitNonDoor, 10); ScriptContext2_Enable(); - sub_8085540(0xE); + SetObjectEventLoadFlag((~SKIP_OBJECT_EVENT_LOAD) & 0xF); } static void Task_ExitDoor(u8 taskId) @@ -558,7 +557,7 @@ void DoTeleportWarp(void) void DoMossdeepGymWarp(void) { - sub_8085540(1); + SetObjectEventLoadFlag(SKIP_OBJECT_EVENT_LOAD); ScriptContext2_Enable(); SaveObjectEvents(); TryFadeOutOldMapMusic(); @@ -576,19 +575,21 @@ void DoPortholeWarp(void) gFieldCallback = FieldCB_ShowPortholeView; } -static void sub_80AF8E0(u8 taskId) +#define tState data[0] + +static void Task_DoCableClubWarp(u8 taskId) { struct Task *task = &gTasks[taskId]; - switch (task->data[0]) + switch (task->tState) { case 0: ScriptContext2_Enable(); - task->data[0]++; + task->tState++; break; case 1: if (!PaletteFadeActive() && BGMusicStopped()) - task->data[0]++; + task->tState++; break; case 2: WarpIntoMap(); @@ -598,13 +599,15 @@ static void sub_80AF8E0(u8 taskId) } } +#undef tState + void DoCableClubWarp(void) { ScriptContext2_Enable(); TryFadeOutOldMapMusic(); WarpFadeOutScreen(); PlaySE(SE_KAIDAN); - CreateTask(sub_80AF8E0, 10); + CreateTask(Task_DoCableClubWarp, 10); } static void Task_ReturnToWorldFromLinkRoom(u8 taskId) @@ -727,7 +730,7 @@ static void Task_DoDoorWarp(u8 taskId) } } -static void task0A_fade_n_map_maybe(u8 taskId) +static void Task_DoContestHallWarp(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -746,7 +749,7 @@ static void task0A_fade_n_map_maybe(u8 taskId) break; case 2: WarpIntoMap(); - SetMainCallback2(sub_8086024); + SetMainCallback2(CB2_ReturnToFieldContestHall); DestroyTask(taskId); break; } @@ -760,7 +763,7 @@ void DoContestHallWarp(void) PlayRainStoppingSoundEffect(); PlaySE(SE_KAIDAN); gFieldCallback = FieldCB_WarpExitFadeFromBlack; - CreateTask(task0A_fade_n_map_maybe, 10); + CreateTask(Task_DoContestHallWarp, 10); } static void SetFlashScanlineEffectWindowBoundary(u16 *dest, u32 y, s32 left, s32 right) diff --git a/src/fieldmap.c b/src/fieldmap.c index e953e0f935..a046bf4fae 100644 --- a/src/fieldmap.c +++ b/src/fieldmap.c @@ -943,7 +943,7 @@ static bool8 SkipCopyingMetatileFromSavedMap(u16* mapMetatilePtr, u16 mapWidth, return FALSE; } -void copy_tileset_patterns_to_vram(struct Tileset const *tileset, u16 numTiles, u16 offset) +static void CopyTilesetToVram(struct Tileset const *tileset, u16 numTiles, u16 offset) { if (tileset) { @@ -954,7 +954,7 @@ void copy_tileset_patterns_to_vram(struct Tileset const *tileset, u16 numTiles, } } -void copy_tileset_patterns_to_vram2(struct Tileset const *tileset, u16 numTiles, u16 offset) +static void CopyTilesetToVramUsingHeap(struct Tileset const *tileset, u16 numTiles, u16 offset) { if (tileset) { @@ -975,7 +975,7 @@ void nullsub_90(void) } -void apply_map_tileset_palette(struct Tileset const *tileset, u16 destOffset, u16 size) +void LoadTilesetPalette(struct Tileset const *tileset, u16 destOffset, u16 size) { u16 black = RGB_BLACK; @@ -1000,45 +1000,45 @@ void apply_map_tileset_palette(struct Tileset const *tileset, u16 destOffset, u1 } } -void copy_map_tileset1_to_vram(struct MapLayout const *mapLayout) +void CopyPrimaryTilesetToVram(struct MapLayout const *mapLayout) { - copy_tileset_patterns_to_vram(mapLayout->primaryTileset, NUM_TILES_IN_PRIMARY, 0); + CopyTilesetToVram(mapLayout->primaryTileset, NUM_TILES_IN_PRIMARY, 0); } -void copy_map_tileset2_to_vram(struct MapLayout const *mapLayout) +void CopySecondaryTilesetToVram(struct MapLayout const *mapLayout) { - copy_tileset_patterns_to_vram(mapLayout->secondaryTileset, NUM_TILES_TOTAL - NUM_TILES_IN_PRIMARY, NUM_TILES_IN_PRIMARY); + CopyTilesetToVram(mapLayout->secondaryTileset, NUM_TILES_TOTAL - NUM_TILES_IN_PRIMARY, NUM_TILES_IN_PRIMARY); } -void copy_map_tileset2_to_vram_2(struct MapLayout const *mapLayout) +void CopySecondaryTilesetToVramUsingHeap(struct MapLayout const *mapLayout) { - copy_tileset_patterns_to_vram2(mapLayout->secondaryTileset, NUM_TILES_TOTAL - NUM_TILES_IN_PRIMARY, NUM_TILES_IN_PRIMARY); + CopyTilesetToVramUsingHeap(mapLayout->secondaryTileset, NUM_TILES_TOTAL - NUM_TILES_IN_PRIMARY, NUM_TILES_IN_PRIMARY); } -void apply_map_tileset1_palette(struct MapLayout const *mapLayout) +static void LoadPrimaryTilesetPalette(struct MapLayout const *mapLayout) { - apply_map_tileset_palette(mapLayout->primaryTileset, 0, NUM_PALS_IN_PRIMARY * 16 * 2); + LoadTilesetPalette(mapLayout->primaryTileset, 0, NUM_PALS_IN_PRIMARY * 16 * 2); } -void apply_map_tileset2_palette(struct MapLayout const *mapLayout) +void LoadSecondaryTilesetPalette(struct MapLayout const *mapLayout) { - apply_map_tileset_palette(mapLayout->secondaryTileset, NUM_PALS_IN_PRIMARY * 16, (NUM_PALS_TOTAL - NUM_PALS_IN_PRIMARY) * 16 * 2); + LoadTilesetPalette(mapLayout->secondaryTileset, NUM_PALS_IN_PRIMARY * 16, (NUM_PALS_TOTAL - NUM_PALS_IN_PRIMARY) * 16 * 2); } -void copy_map_tileset1_tileset2_to_vram(struct MapLayout const *mapLayout) +void CopyMapTilesetsToVram(struct MapLayout const *mapLayout) { if (mapLayout) { - copy_tileset_patterns_to_vram2(mapLayout->primaryTileset, NUM_TILES_IN_PRIMARY, 0); - copy_tileset_patterns_to_vram2(mapLayout->secondaryTileset, NUM_TILES_TOTAL - NUM_TILES_IN_PRIMARY, NUM_TILES_IN_PRIMARY); + CopyTilesetToVramUsingHeap(mapLayout->primaryTileset, NUM_TILES_IN_PRIMARY, 0); + CopyTilesetToVramUsingHeap(mapLayout->secondaryTileset, NUM_TILES_TOTAL - NUM_TILES_IN_PRIMARY, NUM_TILES_IN_PRIMARY); } } -void apply_map_tileset1_tileset2_palette(struct MapLayout const *mapLayout) +void LoadMapTilesetPalettes(struct MapLayout const *mapLayout) { if (mapLayout) { - apply_map_tileset1_palette(mapLayout); - apply_map_tileset2_palette(mapLayout); + LoadPrimaryTilesetPalette(mapLayout); + LoadSecondaryTilesetPalette(mapLayout); } } diff --git a/src/fldeff_cut.c b/src/fldeff_cut.c index 88927959ec..f5e06e8f6a 100644 --- a/src/fldeff_cut.c +++ b/src/fldeff_cut.c @@ -281,7 +281,7 @@ static void FieldCallback_CutGrass(void) bool8 FldEff_UseCutOnGrass(void) { - u8 taskId = oei_task_add(); + u8 taskId = CreateFieldMoveTask(); gTasks[taskId].data[8] = (u32)StartCutGrassFieldEffect >> 16; gTasks[taskId].data[9] = (u32)StartCutGrassFieldEffect; @@ -297,7 +297,7 @@ static void FieldCallback_CutTree(void) bool8 FldEff_UseCutOnTree(void) { - u8 taskId = oei_task_add(); + u8 taskId = CreateFieldMoveTask(); gTasks[taskId].data[8] = (u32)StartCutTreeFieldEffect >> 16; gTasks[taskId].data[9] = (u32)StartCutTreeFieldEffect; diff --git a/src/fldeff_dig.c b/src/fldeff_dig.c index ee5caa0df4..322758a421 100644 --- a/src/fldeff_dig.c +++ b/src/fldeff_dig.c @@ -37,7 +37,7 @@ static void hm2_dig(void) bool8 FldEff_UseDig(void) { - u8 taskId = oei_task_add(); + u8 taskId = CreateFieldMoveTask(); gTasks[taskId].data[8] = (u32)sub_8135780 >> 16; gTasks[taskId].data[9] = (u32)sub_8135780; diff --git a/src/fldeff_escalator.c b/src/fldeff_escalator.c index 10fb78ee23..d1f262b5c7 100644 --- a/src/fldeff_escalator.c +++ b/src/fldeff_escalator.c @@ -8,161 +8,188 @@ static EWRAM_DATA u8 sEscalatorAnim_TaskId = 0; -static void sub_80E12E8(u8 taskId, const s16 *list, u16 isImpassableFlag) -{ - s16 r5 = gTasks[taskId].data[4] - 1; - s16 r3 = gTasks[taskId].data[5] - 1; - s16 r4 = gTasks[taskId].data[1]; - s16 y; - s16 x; +static void SetEscalatorMetatile(u8 taskId, const s16 *metatileIds, u16 metatileMasks); +static void Task_DrawEscalator(u8 taskId); +static void Task_DrawTeleporterHousing(u8 taskId); +static void Task_DrawTeleporterCable(u8 taskId); - if (gTasks[taskId].data[2] == 0) - { - for (y = 0; y < 3; y++) - { - for (x = 0; x < 3; x++) - { - s16 metatileId = MapGridGetMetatileIdAt(r5 + x, r3 + y); +#define ESCALATOR_STAGES 3 +#define LAST_ESCALATOR_STAGE (ESCALATOR_STAGES - 1) - if (list[r4] == metatileId) - { - if (r4 != 2) - MapGridSetMetatileIdAt(r5 + x, r3 + y, isImpassableFlag | list[r4 + 1]); - else - MapGridSetMetatileIdAt(r5 + x, r3 + y, isImpassableFlag | list[0]); - } - } - } - } - else - { - for (y = 0; y < 3; y++) - { - for (x = 0; x < 3; x++) - { - s16 metatileId = MapGridGetMetatileIdAt(r5 + x, r3 + y); - - if (list[2 - r4] == metatileId) - { - if (r4 != 2) - MapGridSetMetatileIdAt(r5 + x, r3 + y, isImpassableFlag | list[1 - r4]); - else - MapGridSetMetatileIdAt(r5 + x, r3 + y, isImpassableFlag | list[2]); - } - } - } - } -} - -static const u16 sElevatorMetatiles_1F_0[] = { +static const u16 sElevatorMetatiles_1F_0[ESCALATOR_STAGES] = { METATILE_ID(PokemonCenter, Elevator1F_Tile0_Frame2), METATILE_ID(PokemonCenter, Elevator1F_Tile0_Frame1), METATILE_ID(PokemonCenter, Elevator1F_Tile0_Frame0) }; -static const u16 sElevatorMetatiles_1F_1[] = { +static const u16 sElevatorMetatiles_1F_1[ESCALATOR_STAGES] = { METATILE_ID(PokemonCenter, Elevator1F_Tile1_Frame2), METATILE_ID(PokemonCenter, Elevator1F_Tile1_Frame1), METATILE_ID(PokemonCenter, Elevator1F_Tile1_Frame0) }; -static const u16 sElevatorMetatiles_1F_2[] = { +static const u16 sElevatorMetatiles_1F_2[ESCALATOR_STAGES] = { METATILE_ID(PokemonCenter, Elevator1F_Tile2_Frame2), METATILE_ID(PokemonCenter, Elevator1F_Tile2_Frame1), METATILE_ID(PokemonCenter, Elevator1F_Tile2_Frame0) }; -static const u16 sElevatorMetatiles_1F_3[] = { +static const u16 sElevatorMetatiles_1F_3[ESCALATOR_STAGES] = { METATILE_ID(PokemonCenter, Elevator1F_Tile3_Frame2), METATILE_ID(PokemonCenter, Elevator1F_Tile3_Frame1), METATILE_ID(PokemonCenter, Elevator1F_Tile3_Frame0) }; -static const u16 sElevatorMetatiles_2F_0[] = { +static const u16 sElevatorMetatiles_2F_0[ESCALATOR_STAGES] = { METATILE_ID(PokemonCenter, Elevator2F_Tile0_Frame0), METATILE_ID(PokemonCenter, Elevator2F_Tile0_Frame1), METATILE_ID(PokemonCenter, Elevator2F_Tile0_Frame2) }; -static const u16 sElevatorMetatiles_2F_1[] = { +static const u16 sElevatorMetatiles_2F_1[ESCALATOR_STAGES] = { METATILE_ID(PokemonCenter, Elevator2F_Tile1_Frame0), METATILE_ID(PokemonCenter, Elevator2F_Tile1_Frame1), METATILE_ID(PokemonCenter, Elevator2F_Tile1_Frame2) }; -static const u16 sElevatorMetatiles_2F_2[] = { +static const u16 sElevatorMetatiles_2F_2[ESCALATOR_STAGES] = { METATILE_ID(PokemonCenter, Elevator2F_Tile2_Frame0), METATILE_ID(PokemonCenter, Elevator2F_Tile2_Frame1), METATILE_ID(PokemonCenter, Elevator2F_Tile2_Frame2) }; -static void sub_80E1444(u8 taskId) +#define tState data[0] +#define tTransitionStage data[1] +#define tGoingUp data[2] +#define tDrawingEscalator data[3] +#define tPlayerX data[4] +#define tPlayerY data[5] + +static void SetEscalatorMetatile(u8 taskId, const s16 *metatileIds, u16 metatileMasks) { - s16 *data = gTasks[taskId].data; + s16 x = gTasks[taskId].tPlayerX - 1; + s16 y = gTasks[taskId].tPlayerY - 1; + s16 transitionStage = gTasks[taskId].tTransitionStage; + s16 i; + s16 j; - data[3] = 1; - - switch (data[0]) + // Check all the escalator sections and only progress the selected one to the next stage + if (!gTasks[taskId].tGoingUp) { - case 0: - sub_80E12E8(taskId, sElevatorMetatiles_1F_0, 0); - break; - case 1: - sub_80E12E8(taskId, sElevatorMetatiles_1F_1, 0); - break; - case 2: - sub_80E12E8(taskId, sElevatorMetatiles_1F_2, METATILE_COLLISION_MASK); - break; - case 3: - sub_80E12E8(taskId, sElevatorMetatiles_1F_3, 0); - break; - case 4: - sub_80E12E8(taskId, sElevatorMetatiles_2F_0, METATILE_COLLISION_MASK); - break; - case 5: - sub_80E12E8(taskId, sElevatorMetatiles_2F_1, 0); - break; - case 6: - sub_80E12E8(taskId, sElevatorMetatiles_2F_2, 0); - break; + for (i = 0; i < 3; i++) + { + for (j = 0; j < 3; j++) + { + s16 metatileId = MapGridGetMetatileIdAt(x + j, y + i); + + if (metatileIds[transitionStage] == metatileId) + { + if (transitionStage != LAST_ESCALATOR_STAGE) + MapGridSetMetatileIdAt(x + j, y + i, metatileMasks | metatileIds[transitionStage + 1]); + else + MapGridSetMetatileIdAt(x + j, y + i, metatileMasks | metatileIds[0]); + } + } + } } - - data[0] = (data[0] + 1) & 7; - if (!data[0]) + else { - DrawWholeMapView(); - data[1] = (data[1] + 1) % 3; - data[3] = 0; + for (i = 0; i < 3; i++) + { + for (j = 0; j < 3; j++) + { + s16 metatileId = MapGridGetMetatileIdAt(x + j, y + i); + + if (metatileIds[LAST_ESCALATOR_STAGE - transitionStage] == metatileId) + { + if (transitionStage != LAST_ESCALATOR_STAGE) + MapGridSetMetatileIdAt(x + j, y + i, metatileMasks | metatileIds[1 - transitionStage]); + else + MapGridSetMetatileIdAt(x + j, y + i, metatileMasks | metatileIds[LAST_ESCALATOR_STAGE]); + } + } + } } } -static u8 sub_80E150C(u16 var) +static void Task_DrawEscalator(u8 taskId) { - u8 taskId = CreateTask(sub_80E1444, 0); s16 *data = gTasks[taskId].data; - PlayerGetDestCoords(&data[4], &data[5]); - data[0] = 0; - data[1] = 0; - data[2] = var; - sub_80E1444(taskId); + tDrawingEscalator = TRUE; + + // Set tile for each section of the escalator in sequence for current transition stage + switch (tState) + { + case 0: + SetEscalatorMetatile(taskId, sElevatorMetatiles_1F_0, 0); + break; + case 1: + SetEscalatorMetatile(taskId, sElevatorMetatiles_1F_1, 0); + break; + case 2: + SetEscalatorMetatile(taskId, sElevatorMetatiles_1F_2, METATILE_COLLISION_MASK); + break; + case 3: + SetEscalatorMetatile(taskId, sElevatorMetatiles_1F_3, 0); + break; + case 4: + SetEscalatorMetatile(taskId, sElevatorMetatiles_2F_0, METATILE_COLLISION_MASK); + break; + case 5: + SetEscalatorMetatile(taskId, sElevatorMetatiles_2F_1, 0); + break; + case 6: + SetEscalatorMetatile(taskId, sElevatorMetatiles_2F_2, 0); + break; + } + + tState = (tState + 1) & 7; + + // If all metatiles of the escalator have been set, draw map and progress to next stage + if (tState == 0) + { + DrawWholeMapView(); + tTransitionStage = (tTransitionStage + 1) % ESCALATOR_STAGES; + tDrawingEscalator = FALSE; + } +} + +static u8 CreateEscalatorTask(bool16 goingUp) +{ + u8 taskId = CreateTask(Task_DrawEscalator, 0); + s16 *data = gTasks[taskId].data; + + PlayerGetDestCoords(&tPlayerX, &tPlayerY); + tState = 0; + tTransitionStage = 0; + tGoingUp = goingUp; + Task_DrawEscalator(taskId); return taskId; } -void sub_80E1558(u8 var) +void StartEscalator(bool8 goingUp) { - sEscalatorAnim_TaskId = sub_80E150C(var); + sEscalatorAnim_TaskId = CreateEscalatorTask(goingUp); } -void sub_80E1570(void) +void StopEscalator(void) { DestroyTask(sEscalatorAnim_TaskId); } -bool8 sub_80E1584(void) +bool8 IsEscalatorMoving(void) { - if (gTasks[sEscalatorAnim_TaskId].data[3] == 0 && gTasks[sEscalatorAnim_TaskId].data[1] == 2) + if (gTasks[sEscalatorAnim_TaskId].tDrawingEscalator == FALSE + && gTasks[sEscalatorAnim_TaskId].tTransitionStage == LAST_ESCALATOR_STAGE) return FALSE; else return TRUE; } + +#undef tState +#undef tTransitionStage +#undef tGoingUp +#undef tDrawingEscalator +#undef tPlayerX +#undef tPlayerY diff --git a/src/fldeff_flash.c b/src/fldeff_flash.c index 3cb91d4b10..d10635a561 100644 --- a/src/fldeff_flash.c +++ b/src/fldeff_flash.c @@ -96,7 +96,7 @@ bool8 SetUpFieldMove_Flash(void) static void FieldCallback_Flash(void) { - u8 taskId = oei_task_add(); + u8 taskId = CreateFieldMoveTask(); gFieldEffectArguments[0] = GetCursorSelectionMonId(); gTasks[taskId].data[8] = (uintptr_t)FldEff_UseFlash >> 16; gTasks[taskId].data[9] = (uintptr_t)FldEff_UseFlash; diff --git a/src/fldeff_misc.c b/src/fldeff_misc.c index 9574ac5634..f197b7b33c 100644 --- a/src/fldeff_misc.c +++ b/src/fldeff_misc.c @@ -497,7 +497,7 @@ static void SetCurrentSecretBase(void) static void AdjustSecretPowerSpritePixelOffsets(void) { - if (gPlayerAvatar.flags & 0x6) + if (gPlayerAvatar.flags & (PLAYER_AVATAR_FLAG_MACH_BIKE | PLAYER_AVATAR_FLAG_ACRO_BIKE)) { switch (gFieldEffectArguments[1]) { @@ -590,7 +590,7 @@ static void FieldCallback_SecretBaseCave(void) bool8 FldEff_UseSecretPowerCave(void) { - u8 taskId = oei_task_add(); + u8 taskId = CreateFieldMoveTask(); gTasks[taskId].data[8] = (u32)StartSecretBaseCaveFieldEffect >> 16; gTasks[taskId].data[9] = (u32)StartSecretBaseCaveFieldEffect; @@ -650,7 +650,7 @@ static void FieldCallback_SecretBaseTree(void) bool8 FldEff_UseSecretPowerTree(void) { - u8 taskId = oei_task_add(); + u8 taskId = CreateFieldMoveTask(); gTasks[taskId].data[8] = (u32)StartSecretBaseTreeFieldEffect >> 16; gTasks[taskId].data[9] = (u32)StartSecretBaseTreeFieldEffect; @@ -724,7 +724,7 @@ static void FieldCallback_SecretBaseShrub(void) bool8 FldEff_UseSecretPowerShrub(void) { - u8 taskId = oei_task_add(); + u8 taskId = CreateFieldMoveTask(); gTasks[taskId].data[8] = (u32)StartSecretBaseShrubFieldEffect >> 16; gTasks[taskId].data[9] = (u32)StartSecretBaseShrubFieldEffect; @@ -1010,7 +1010,7 @@ void DoSecretBaseGlitterMatSparkle(void) sub_80930E0(&x, &y, 8, 4); - spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[22], x, y, 0); + spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_SPARKLE], x, y, 0); if (spriteId != MAX_SPRITES) { gSprites[spriteId].coordOffsetEnabled = TRUE; @@ -1236,7 +1236,7 @@ static void Task_WateringBerryTreeAnim_1(u8 taskId) if (!ObjectEventIsMovementOverridden(playerObjEvent) || ObjectEventClearHeldMovementIfFinished(playerObjEvent)) { - sub_808C228(GetPlayerFacingDirection()); + SetPlayerAvatarWatering(GetPlayerFacingDirection()); ObjectEventSetHeldMovement(playerObjEvent, GetWalkInPlaceNormalMovementAction(GetPlayerFacingDirection())); gTasks[taskId].func = Task_WateringBerryTreeAnim_2; } diff --git a/src/fldeff_rocksmash.c b/src/fldeff_rocksmash.c index 614fa6135a..4d7dcb66e7 100644 --- a/src/fldeff_rocksmash.c +++ b/src/fldeff_rocksmash.c @@ -20,11 +20,12 @@ #include "constants/songs.h" // static functions -static void task08_080C9820(u8 taskId); -static void sub_8135578(u8 taskId); -static void sub_813552C(u8 taskId); -static void sub_813561C(u8 taskId); -static void sub_81356C4(void); +static void Task_DoFieldMove_0(u8 taskId); +static void Task_DoFieldMove_1(u8 taskId); +static void Task_DoFieldMove_2(u8 taskId); +static void Task_DoFieldMove_3(u8 taskId); + +static void FieldCallback_RockSmash(void); static void sub_8135714(void); // text @@ -46,13 +47,13 @@ bool8 CheckObjectGraphicsInFrontOfPlayer(u8 graphicsId) } } -u8 oei_task_add(void) +u8 CreateFieldMoveTask(void) { GetXYCoordsOneStepInFrontOfPlayer(&gPlayerFacingPosition.x, &gPlayerFacingPosition.y); - return CreateTask(task08_080C9820, 8); + return CreateTask(Task_DoFieldMove_0, 8); } -static void task08_080C9820(u8 taskId) +static void Task_DoFieldMove_0(u8 taskId) { u8 objEventId; @@ -65,47 +66,47 @@ static void task08_080C9820(u8 taskId) if (gMapHeader.mapType == MAP_TYPE_UNDERWATER) { FieldEffectStart(FLDEFF_FIELD_MOVE_SHOW_MON_INIT); - gTasks[taskId].func = sub_8135578; + gTasks[taskId].func = Task_DoFieldMove_2; } else { - sub_808C114(); + SetPlayerAvatarFieldMove(); ObjectEventSetHeldMovement(&gObjectEvents[objEventId], MOVEMENT_ACTION_START_ANIM_IN_DIRECTION); - gTasks[taskId].func = sub_813552C; + gTasks[taskId].func = Task_DoFieldMove_1; } } } -static void sub_813552C(u8 taskId) +static void Task_DoFieldMove_1(u8 taskId) { if (ObjectEventCheckHeldMovementStatus(&gObjectEvents[gPlayerAvatar.objectEventId]) == TRUE) { FieldEffectStart(FLDEFF_FIELD_MOVE_SHOW_MON_INIT); - gTasks[taskId].func = sub_8135578; + gTasks[taskId].func = Task_DoFieldMove_2; } } -static void sub_8135578(u8 taskId) +static void Task_DoFieldMove_2(u8 taskId) { if (!FieldEffectActiveListContains(FLDEFF_FIELD_MOVE_SHOW_MON)) { gFieldEffectArguments[1] = GetPlayerFacingDirection(); - if (gFieldEffectArguments[1] == 1) + if (gFieldEffectArguments[1] == DIR_SOUTH) gFieldEffectArguments[2] = 0; - if (gFieldEffectArguments[1] == 2) + if (gFieldEffectArguments[1] == DIR_NORTH) gFieldEffectArguments[2] = 1; - if (gFieldEffectArguments[1] == 3) + if (gFieldEffectArguments[1] == DIR_WEST) gFieldEffectArguments[2] = 2; - if (gFieldEffectArguments[1] == 4) + if (gFieldEffectArguments[1] == DIR_EAST) gFieldEffectArguments[2] = 3; ObjectEventSetGraphicsId(&gObjectEvents[gPlayerAvatar.objectEventId], GetPlayerAvatarGraphicsIdByCurrentState()); StartSpriteAnim(&gSprites[gPlayerAvatar.spriteId], gFieldEffectArguments[2]); - FieldEffectActiveListRemove(6); - gTasks[taskId].func = sub_813561C; + FieldEffectActiveListRemove(FLDEFF_FIELD_MOVE_SHOW_MON); + gTasks[taskId].func = Task_DoFieldMove_3; } } -static void sub_813561C(u8 taskId) +static void Task_DoFieldMove_3(u8 taskId) { void (*func)(void) = (void (*)(void))(((u16)gTasks[taskId].data[8] << 16) | (u16)gTasks[taskId].data[9]); @@ -128,7 +129,7 @@ bool8 SetUpFieldMove_RockSmash(void) else if (CheckObjectGraphicsInFrontOfPlayer(OBJ_EVENT_GFX_BREAKABLE_ROCK) == TRUE) { gFieldCallback2 = FieldCallback_PrepareFadeInFromMenu; - gPostMenuFieldCallback = sub_81356C4; + gPostMenuFieldCallback = FieldCallback_RockSmash; return TRUE; } else @@ -137,7 +138,7 @@ bool8 SetUpFieldMove_RockSmash(void) } } -static void sub_81356C4(void) +static void FieldCallback_RockSmash(void) { gFieldEffectArguments[0] = GetCursorSelectionMonId(); ScriptContext1_SetupScript(EventScript_FldEffRockSmash); @@ -145,7 +146,7 @@ static void sub_81356C4(void) bool8 FldEff_UseRockSmash(void) { - u8 taskId = oei_task_add(); + u8 taskId = CreateFieldMoveTask(); gTasks[taskId].data[8] = (u32)sub_8135714 >> 16; gTasks[taskId].data[9] = (u32)sub_8135714; diff --git a/src/fldeff_strength.c b/src/fldeff_strength.c index f479ef68d7..800e458212 100644 --- a/src/fldeff_strength.c +++ b/src/fldeff_strength.c @@ -35,7 +35,7 @@ static void FldEff_UseStrength(void) bool8 sub_8145E2C(void) { - u8 taskId = oei_task_add(); + u8 taskId = CreateFieldMoveTask(); gTasks[taskId].data[8] = (u32)sub_8145E74 >> 16; gTasks[taskId].data[9] = (u32)sub_8145E74; GetMonNickname(&gPlayerParty[gFieldEffectArguments[0]], gStringVar1); diff --git a/src/fldeff_sweetscent.c b/src/fldeff_sweetscent.c index 788310b5dd..1ee82674e3 100644 --- a/src/fldeff_sweetscent.c +++ b/src/fldeff_sweetscent.c @@ -41,7 +41,7 @@ bool8 FldEff_SweetScent(void) u8 taskId; SetWeatherScreenFadeOut(); - taskId = oei_task_add(); + taskId = CreateFieldMoveTask(); gTasks[taskId].data[8] = (u32)StartSweetScentFieldEffect >> 16; gTasks[taskId].data[9] = (u32)StartSweetScentFieldEffect; return FALSE; diff --git a/src/fldeff_teleport.c b/src/fldeff_teleport.c index cbf8ee6cc3..3f087e5dab 100644 --- a/src/fldeff_teleport.c +++ b/src/fldeff_teleport.c @@ -30,7 +30,7 @@ static void FieldCallback_Teleport(void) bool8 FldEff_UseTeleport(void) { - u8 taskId = oei_task_add(); + u8 taskId = CreateFieldMoveTask(); gTasks[taskId].data[8] = (u32)StartTeleportFieldEffect >> 16; gTasks[taskId].data[9] = (u32)StartTeleportFieldEffect; SetPlayerAvatarTransitionFlags(PLAYER_AVATAR_FLAG_ON_FOOT); @@ -40,5 +40,5 @@ bool8 FldEff_UseTeleport(void) static void StartTeleportFieldEffect(void) { FieldEffectActiveListRemove(FLDEFF_USE_TELEPORT); - CreateTeleportFieldEffectTask(); + FldEff_TeleportWarpOut(); } diff --git a/src/hall_of_fame.c b/src/hall_of_fame.c index 1606c2de57..5405b7c42f 100644 --- a/src/hall_of_fame.c +++ b/src/hall_of_fame.c @@ -1299,7 +1299,7 @@ static bool8 sub_8175024(void) break; case 3: InitStandardTextBoxWindows(); - sub_8197200(); + InitTextBoxGfxAndPrinters(); break; case 4: SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_1D_MAP | DISPCNT_OBJ_ON); diff --git a/src/item_menu.c b/src/item_menu.c index 43e6573281..7b069303ab 100755 --- a/src/item_menu.c +++ b/src/item_menu.c @@ -600,7 +600,7 @@ void CB2_BagMenuRun(void) RunTasks(); AnimateSprites(); BuildOamBuffer(); - do_scheduled_bg_tilemap_copies_to_vram(); + DoScheduledBgTilemapCopiesToVram(); UpdatePaletteFade(); } @@ -627,7 +627,7 @@ bool8 SetupBagMenu(void) { case 0: SetVBlankHBlankCallbacksToNull(); - clear_scheduled_bg_copies_to_vram(); + ClearScheduledBgCopiesToVram(); gMain.state++; break; case 1: diff --git a/src/menu.c b/src/menu.c index 738c904cea..9cd7ca6b1e 100644 --- a/src/menu.c +++ b/src/menu.c @@ -57,9 +57,9 @@ static EWRAM_DATA u8 sPaletteNum = 0; static EWRAM_DATA u8 sYesNoWindowId = 0; static EWRAM_DATA u8 sWindowId = 0; static EWRAM_DATA u16 sFiller = 0; // needed to align -static EWRAM_DATA bool8 gUnknown_0203CDA4[4] = {FALSE}; -static EWRAM_DATA u16 gUnknown_0203CDA8 = 0; -static EWRAM_DATA void *gUnknown_0203CDAC[0x20] = {NULL}; +static EWRAM_DATA bool8 sScheduledBgCopiesToVram[4] = {FALSE}; +static EWRAM_DATA u16 sTempTileDataBufferIdx = 0; +static EWRAM_DATA void *sTempTileDataBuffer[0x20] = {NULL}; const u16 gUnknown_0860F074[] = INCBIN_U16("graphics/interface/860F074.gbapal"); @@ -154,7 +154,7 @@ void FreeAllOverworldWindowBuffers(void) FreeAllWindowBuffers(); } -void sub_8197200(void) +void InitTextBoxGfxAndPrinters(void) { ChangeBgX(0, 0, 0); ChangeBgY(0, 0, 0); @@ -1737,48 +1737,48 @@ u8 sub_8199944(u8 windowId, u8 optionWidth, u8 columns, u8 rows, u8 initialCurso return sMenu.cursorPos; } -void clear_scheduled_bg_copies_to_vram(void) +void ClearScheduledBgCopiesToVram(void) { - memset(gUnknown_0203CDA4, 0, sizeof(gUnknown_0203CDA4)); + memset(sScheduledBgCopiesToVram, 0, sizeof(sScheduledBgCopiesToVram)); } void ScheduleBgCopyTilemapToVram(u8 bgId) { - gUnknown_0203CDA4[bgId] = TRUE; + sScheduledBgCopiesToVram[bgId] = TRUE; } -void do_scheduled_bg_tilemap_copies_to_vram(void) +void DoScheduledBgTilemapCopiesToVram(void) { - if (gUnknown_0203CDA4[0] == TRUE) + if (sScheduledBgCopiesToVram[0] == TRUE) { CopyBgTilemapBufferToVram(0); - gUnknown_0203CDA4[0] = FALSE; + sScheduledBgCopiesToVram[0] = FALSE; } - if (gUnknown_0203CDA4[1] == TRUE) + if (sScheduledBgCopiesToVram[1] == TRUE) { CopyBgTilemapBufferToVram(1); - gUnknown_0203CDA4[1] = FALSE; + sScheduledBgCopiesToVram[1] = FALSE; } - if (gUnknown_0203CDA4[2] == TRUE) + if (sScheduledBgCopiesToVram[2] == TRUE) { CopyBgTilemapBufferToVram(2); - gUnknown_0203CDA4[2] = FALSE; + sScheduledBgCopiesToVram[2] = FALSE; } - if (gUnknown_0203CDA4[3] == TRUE) + if (sScheduledBgCopiesToVram[3] == TRUE) { CopyBgTilemapBufferToVram(3); - gUnknown_0203CDA4[3] = FALSE; + sScheduledBgCopiesToVram[3] = FALSE; } } void ResetTempTileDataBuffers(void) { int i; - for (i = 0; i < (s32)ARRAY_COUNT(gUnknown_0203CDAC); i++) + for (i = 0; i < (int)ARRAY_COUNT(sTempTileDataBuffer); i++) { - gUnknown_0203CDAC[i] = NULL; + sTempTileDataBuffer[i] = NULL; } - gUnknown_0203CDA8 = 0; + sTempTileDataBufferIdx = 0; } bool8 FreeTempTileDataBuffersIfPossible(void) @@ -1787,13 +1787,13 @@ bool8 FreeTempTileDataBuffersIfPossible(void) if (!IsDma3ManagerBusyWithBgCopy()) { - if (gUnknown_0203CDA8) + if (sTempTileDataBufferIdx) { - for (i = 0; i < gUnknown_0203CDA8; i++) + for (i = 0; i < sTempTileDataBufferIdx; i++) { - FREE_AND_SET_NULL(gUnknown_0203CDAC[i]); + FREE_AND_SET_NULL(sTempTileDataBuffer[i]); } - gUnknown_0203CDA8 = 0; + sTempTileDataBufferIdx = 0; } return FALSE; } @@ -1806,7 +1806,7 @@ bool8 FreeTempTileDataBuffersIfPossible(void) void *DecompressAndCopyTileDataToVram(u8 bgId, const void *src, u32 size, u16 offset, u8 mode) { u32 sizeOut; - if (gUnknown_0203CDA8 < ARRAY_COUNT(gUnknown_0203CDAC)) + if (sTempTileDataBufferIdx < ARRAY_COUNT(sTempTileDataBuffer)) { void *ptr = malloc_and_decompress(src, &sizeOut); if (!size) @@ -1814,7 +1814,7 @@ void *DecompressAndCopyTileDataToVram(u8 bgId, const void *src, u32 size, u16 of if (ptr) { copy_decompressed_tile_data_to_vram(bgId, ptr, size, offset, mode); - gUnknown_0203CDAC[gUnknown_0203CDA8++] = ptr; + sTempTileDataBuffer[sTempTileDataBufferIdx++] = ptr; } return ptr; } diff --git a/src/move_relearner.c b/src/move_relearner.c index 8c4cf7b2e7..1c863804be 100644 --- a/src/move_relearner.c +++ b/src/move_relearner.c @@ -384,7 +384,7 @@ static void CB2_InitLearnMove(void) ResetSpriteData(); FreeAllSpritePalettes(); ResetTasks(); - clear_scheduled_bg_copies_to_vram(); + ClearScheduledBgCopiesToVram(); sMoveRelearnerStruct = AllocZeroed(sizeof(*sMoveRelearnerStruct)); sMoveRelearnerStruct->partyMon = gSpecialVar_0x8004; SetVBlankCallback(VBlankCB_MoveRelearner); @@ -412,7 +412,7 @@ static void CB2_InitLearnMoveReturnFromSelectMove(void) ResetSpriteData(); FreeAllSpritePalettes(); ResetTasks(); - clear_scheduled_bg_copies_to_vram(); + ClearScheduledBgCopiesToVram(); sMoveRelearnerStruct = AllocZeroed(sizeof(*sMoveRelearnerStruct)); sMoveRelearnerStruct->state = MENU_STATE_FADE_FROM_SUMMARY_SCREEN; sMoveRelearnerStruct->partyMon = gSpecialVar_0x8004; @@ -452,7 +452,7 @@ static void CB2_MoveRelearnerMain(void) RunTasks(); AnimateSprites(); BuildOamBuffer(); - do_scheduled_bg_tilemap_copies_to_vram(); + DoScheduledBgTilemapCopiesToVram(); UpdatePaletteFade(); } diff --git a/src/naming_screen.c b/src/naming_screen.c index 161d4a7e05..83285d89d9 100644 --- a/src/naming_screen.c +++ b/src/naming_screen.c @@ -347,7 +347,7 @@ static void NamingScreen_InitBGs(void) ChangeBgY(3, 0, 0); InitStandardTextBoxWindows(); - sub_8197200(); + InitTextBoxGfxAndPrinters(); for (i = 0; i < 5; i++) gNamingScreenData->windows[i] = AddWindow(&gUnknown_0858BE10[i]); diff --git a/src/overworld.c b/src/overworld.c index 8937af8f11..530699f831 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -7,10 +7,11 @@ #include "cable_club.h" #include "clock.h" #include "event_data.h" +#include "event_object_movement.h" +#include "event_scripts.h" #include "field_camera.h" #include "field_control_avatar.h" #include "field_effect.h" -#include "event_object_movement.h" #include "field_message_box.h" #include "field_player_avatar.h" #include "field_screen_effect.h" @@ -22,6 +23,7 @@ #include "fldeff.h" #include "gpu_regs.h" #include "heal_location.h" +#include "io_reg.h" #include "link.h" #include "link_rfu.h" #include "load_save.h" @@ -82,44 +84,22 @@ #define FACING_FORCED_LEFT 9 #define FACING_FORCED_RIGHT 10 -// event scripts -extern const u8 EventScript_WhiteOut[]; -extern const u8 EventScript_ResetMrBriney[]; -extern const u8 EventScript_DoLinkRoomExit[]; -extern const u8 CableClub_EventScript_TooBusyToNotice[]; -extern const u8 CableClub_EventScript_ReadTrainerCard[]; -extern const u8 CableClub_EventScript_ReadTrainerCardColored[]; -extern const u8 EventScript_BattleColosseum_4P_PlayerSpot0[]; -extern const u8 EventScript_BattleColosseum_4P_PlayerSpot1[]; -extern const u8 EventScript_BattleColosseum_4P_PlayerSpot2[]; -extern const u8 EventScript_BattleColosseum_4P_PlayerSpot3[]; -extern const u8 EventScript_RecordCenter_Spot0[]; -extern const u8 EventScript_RecordCenter_Spot1[]; -extern const u8 EventScript_RecordCenter_Spot2[]; -extern const u8 EventScript_RecordCenter_Spot3[]; -extern const u8 EventScript_BattleColosseum_2P_PlayerSpot0[]; -extern const u8 EventScript_BattleColosseum_2P_PlayerSpot1[]; -extern const u8 EventScript_TradeCenter_Chair1[]; -extern const u8 EventScript_TradeCenter_Chair0[]; -extern const u8 EventScript_ConfirmLeaveTradeRoom[]; -extern const u8 EventScript_TerminateLink[]; - extern const struct MapLayout *const gMapLayouts[]; extern const struct MapHeader *const *const gMapGroups[]; -extern const int gMaxFlashLevel; -extern const u16 gOverworldBackgroundLayerFlags[]; static void Overworld_ResetStateAfterWhiteOut(void); -static void c2_80567AC(void); +static void CB2_ReturnToFieldLocal(void); +static void CB2_ReturnToFieldLink(void); +static void CB2_LoadMapOnReturnToFieldCableClub(void); static void CB2_LoadMap2(void); static void VBlankCB_Field(void); static void SpriteCB_LinkPlayer(struct Sprite *sprite); static void ChooseAmbientCrySpecies(void); -static void do_load_map_stuff_loop(u8 *state); -static bool32 map_loading_iteration_3(u8 *state); -static bool32 sub_8086638(u8 *state); -static bool32 load_map_stuff(u8 *state, u32); -static bool32 map_loading_iteration_2_link(u8 *state); +static void DoMapLoadLoop(u8 *state); +static bool32 LoadMapInStepsLink(u8 *state); +static bool32 ReturnToFieldLocal(u8 *state); +static bool32 LoadMapInStepsLocal(u8 *state, bool32); +static bool32 ReturnToFieldLink(u8 *state); static void mli4_mapscripts_and_other(void); static void InitOverworldGraphicsRegisters(void); static u8 GetSpriteForLinkedPlayer(u8); @@ -131,7 +111,7 @@ static void sub_80869DC(void); static void sub_8086B14(void); static void SetCameraToTrackGuestPlayer(void); static void sub_8086988(bool32 arg0); -static void sub_8086A80(void); +static void SetCameraToTrackPlayer(void); static void sub_8086A68(void); static void sub_8086860(void); static void SetCameraToTrackGuestPlayer_2(void); @@ -155,7 +135,7 @@ static void InitLinkPlayerObjectEventPos(struct ObjectEvent *objEvent, s16 x, s1 static void sub_80877DC(u8 linkPlayerId, u8 a2); static void sub_808780C(u8 linkPlayerId); static u8 GetSpriteForLinkedPlayer(u8 linkPlayerId); -static void sub_8087584(void); +static void RunTerminateLinkScript(void); static u32 GetLinkSendQueueLength(void); static void ZeroLinkPlayerObjectEvent(struct LinkPlayerObjectEvent *linkPlayerObjEvent); static const u8 *TryInteractWithPlayer(struct TradeRoomPlayer *a1); @@ -181,14 +161,14 @@ static void CB1_UpdateLinkState(void); static void SetKeyInterceptCallback(u16 (*func)(u32)); static void SetFieldVBlankCallback(void); static void FieldClearVBlankHBlankCallbacks(void); -static void sub_8085810(void); +static void TransitionMapMusic(void); static u8 GetAdjustedInitialTransitionFlags(struct InitialPlayerAvatarState *playerStruct, u16 a2, u8 a3); static u8 GetAdjustedInitialDirection(struct InitialPlayerAvatarState *playerStruct, u8 a2, u16 a3, u8 a4); static u16 GetCenterScreenMetatileBehavior(void); // IWRAM bss vars static void *sUnusedOverworldCallback; -static u8 sPlayerTradingStates[4]; +static u8 sPlayerTradingStates[MAX_LINK_PLAYERS]; // This callback is called with a player's key code. It then returns an // adjusted key code, effectively intercepting the input before anything // can process it. @@ -208,13 +188,13 @@ u8 gLocalLinkPlayerId; // This is our player id in a multiplayer mode. u8 gFieldLinkPlayerCount; // EWRAM vars -EWRAM_DATA static u8 sUnknown_020322D8 = 0; +EWRAM_DATA static u8 sObjectEventLoadFlag = 0; EWRAM_DATA struct WarpData gLastUsedWarp = {0}; EWRAM_DATA static struct WarpData sWarpDestination = {0}; // new warp position -EWRAM_DATA static struct WarpData gFixedDiveWarp = {0}; -EWRAM_DATA static struct WarpData gFixedHoleWarp = {0}; +EWRAM_DATA static struct WarpData sFixedDiveWarp = {0}; +EWRAM_DATA static struct WarpData sFixedHoleWarp = {0}; EWRAM_DATA static u16 sLastMapSectionId = 0; -EWRAM_DATA static struct InitialPlayerAvatarState gInitialPlayerAvatarState = {0}; +EWRAM_DATA static struct InitialPlayerAvatarState sInitialPlayerAvatarState = {0}; EWRAM_DATA static u16 sAmbientCrySpecies = 0; EWRAM_DATA static bool8 sIsAmbientCryWaterMon = FALSE; EWRAM_DATA struct LinkPlayerObjectEvent gLinkPlayerObjectEvents[4] = {0}; @@ -229,16 +209,9 @@ static const struct WarpData sDummyWarpData = .y = -1, }; -static const u8 sUnusedData[] = +static const u32 sUnusedData[] = { - 0xB0, 0x04, 0x00, 0x00, - 0x10, 0x0E, 0x00, 0x00, - 0xB0, 0x04, 0x00, 0x00, - 0x60, 0x09, 0x00, 0x00, - 0x32, 0x00, 0x00, 0x00, - 0x50, 0x00, 0x00, 0x00, - 0xD4, 0xFF, 0xFF, 0xFF, - 0x2C, 0x00, 0x00, 0x00, + 1200, 3600, 1200, 2400, 50, 80, -44, 44 }; const struct UCoords32 gDirectionToVectors[] = @@ -549,9 +522,9 @@ void Overworld_SetObjEventTemplateMovementType(u8 localId, u8 movementType) static void mapdata_load_assets_to_gpu_and_full_redraw(void) { - move_tilemap_camera_to_upper_left_corner(); - copy_map_tileset1_tileset2_to_vram(gMapHeader.mapLayout); - apply_map_tileset1_tileset2_palette(gMapHeader.mapLayout); + ResetFieldCamera(); + CopyMapTilesetsToVram(gMapHeader.mapLayout); + LoadMapTilesetPalettes(gMapHeader.mapLayout); DrawWholeMapView(); InitTilesetAnimations(); } @@ -568,14 +541,14 @@ void ApplyCurrentWarp(void) { gLastUsedWarp = gSaveBlock1Ptr->location; gSaveBlock1Ptr->location = sWarpDestination; - gFixedDiveWarp = sDummyWarpData; - gFixedHoleWarp = sDummyWarpData; + sFixedDiveWarp = sDummyWarpData; + sFixedHoleWarp = sDummyWarpData; } static void ClearDiveAndHoleWarps(void) { - gFixedDiveWarp = sDummyWarpData; - gFixedHoleWarp = sDummyWarpData; + sFixedDiveWarp = sDummyWarpData; + sFixedHoleWarp = sDummyWarpData; } static void SetWarpData(struct WarpData *warp, s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y) @@ -717,25 +690,25 @@ void SetWarpDestinationToEscapeWarp(void) void SetFixedDiveWarp(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y) { - SetWarpData(&gFixedDiveWarp, mapGroup, mapNum, warpId, x, y); + SetWarpData(&sFixedDiveWarp, mapGroup, mapNum, warpId, x, y); } static void SetWarpDestinationToDiveWarp(void) { - sWarpDestination = gFixedDiveWarp; + sWarpDestination = sFixedDiveWarp; } void SetFixedHoleWarp(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y) { - SetWarpData(&gFixedHoleWarp, mapGroup, mapNum, warpId, x, y); + SetWarpData(&sFixedHoleWarp, mapGroup, mapNum, warpId, x, y); } void SetWarpDestinationToFixedHoleWarp(s16 x, s16 y) { - if (IsDummyWarp(&gFixedHoleWarp) == TRUE) + if (IsDummyWarp(&sFixedHoleWarp) == TRUE) sWarpDestination = gLastUsedWarp; else - SetWarpDestination(gFixedHoleWarp.mapGroup, gFixedHoleWarp.mapNum, -1, x, y); + SetWarpDestination(sFixedHoleWarp.mapGroup, sFixedHoleWarp.mapNum, -1, x, y); } static void SetWarpDestinationToContinueGameWarp(void) @@ -787,7 +760,7 @@ static bool8 SetDiveWarp(u8 dir, u16 x, u16 y) else { RunOnDiveWarpMapScript(); - if (IsDummyWarp(&gFixedDiveWarp)) + if (IsDummyWarp(&sFixedDiveWarp)) return FALSE; SetWarpDestinationToDiveWarp(); } @@ -809,8 +782,10 @@ void LoadMapFromCameraTransition(u8 mapGroup, u8 mapNum) s32 paletteIndex; SetWarpDestination(mapGroup, mapNum, -1, -1, -1); - if (gMapHeader.regionMapSectionId != 0x3A) - sub_8085810(); + + // Dont transition map music between BF Outside West/East + if (gMapHeader.regionMapSectionId != MAPSEC_BATTLE_FRONTIER) + TransitionMapMusic(); ApplyCurrentWarp(); LoadCurrentMapData(); @@ -827,8 +802,8 @@ void LoadMapFromCameraTransition(u8 mapGroup, u8 mapNum) Overworld_ClearSavedMusic(); RunOnTransitionMapScript(); InitMap(); - copy_map_tileset2_to_vram_2(gMapHeader.mapLayout); - apply_map_tileset2_palette(gMapHeader.mapLayout); + CopySecondaryTilesetToVramUsingHeap(gMapHeader.mapLayout); + LoadSecondaryTilesetPalette(gMapHeader.mapLayout); for (paletteIndex = 6; paletteIndex < 13; paletteIndex++) ApplyWeatherGammaShiftToPal(paletteIndex); @@ -840,17 +815,18 @@ void LoadMapFromCameraTransition(u8 mapGroup, u8 mapNum) ResetFieldTasksArgs(); RunOnResumeMapScript(); - if (gMapHeader.regionMapSectionId != MAPSEC_BATTLE_FRONTIER || gMapHeader.regionMapSectionId != sLastMapSectionId) + if (gMapHeader.regionMapSectionId != MAPSEC_BATTLE_FRONTIER + || gMapHeader.regionMapSectionId != sLastMapSectionId) ShowMapNamePopup(); } -static void mli0_load_map(u32 a1) +static void LoadMapFromWarp(bool32 a1) { bool8 isOutdoors; bool8 isIndoors; LoadCurrentMapData(); - if (!(sUnknown_020322D8 & 1)) + if (!(sObjectEventLoadFlag & SKIP_OBJECT_EVENT_LOAD)) { if (gMapHeader.mapLayoutId == LAYOUT_BATTLE_FRONTIER_BATTLE_PYRAMID_FLOOR) LoadBattlePyramidObjectEventTemplates(); @@ -869,7 +845,7 @@ static void mli0_load_map(u32 a1) ResetCyclingRoadChallengeData(); RestartWildEncounterImmunitySteps(); TryUpdateRandomTrainerRematches(gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum); - if (a1 != 1) + if (a1 != TRUE) DoTimeBasedEvents(); SetSav1WeatherFromCurrMapHeader(); ChooseAmbientCrySpecies(); @@ -887,7 +863,7 @@ static void mli0_load_map(u32 a1) else InitMap(); - if (a1 != 1 && isIndoors) + if (a1 != TRUE && isIndoors) { UpdateTVScreensOnMap(gBackupMapLayout.width, gBackupMapLayout.height); InitSecretBaseAppearance(TRUE); @@ -896,24 +872,24 @@ static void mli0_load_map(u32 a1) void ResetInitialPlayerAvatarState(void) { - gInitialPlayerAvatarState.direction = DIR_SOUTH; - gInitialPlayerAvatarState.transitionFlags = PLAYER_AVATAR_FLAG_ON_FOOT; + sInitialPlayerAvatarState.direction = DIR_SOUTH; + sInitialPlayerAvatarState.transitionFlags = PLAYER_AVATAR_FLAG_ON_FOOT; } void StoreInitialPlayerAvatarState(void) { - gInitialPlayerAvatarState.direction = GetPlayerFacingDirection(); + sInitialPlayerAvatarState.direction = GetPlayerFacingDirection(); if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_MACH_BIKE)) - gInitialPlayerAvatarState.transitionFlags = PLAYER_AVATAR_FLAG_MACH_BIKE; + sInitialPlayerAvatarState.transitionFlags = PLAYER_AVATAR_FLAG_MACH_BIKE; else if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_ACRO_BIKE)) - gInitialPlayerAvatarState.transitionFlags = PLAYER_AVATAR_FLAG_ACRO_BIKE; + sInitialPlayerAvatarState.transitionFlags = PLAYER_AVATAR_FLAG_ACRO_BIKE; else if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_SURFING)) - gInitialPlayerAvatarState.transitionFlags = PLAYER_AVATAR_FLAG_SURFING; + sInitialPlayerAvatarState.transitionFlags = PLAYER_AVATAR_FLAG_SURFING; else if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_UNDERWATER)) - gInitialPlayerAvatarState.transitionFlags = PLAYER_AVATAR_FLAG_UNDERWATER; + sInitialPlayerAvatarState.transitionFlags = PLAYER_AVATAR_FLAG_UNDERWATER; else - gInitialPlayerAvatarState.transitionFlags = PLAYER_AVATAR_FLAG_ON_FOOT; + sInitialPlayerAvatarState.transitionFlags = PLAYER_AVATAR_FLAG_ON_FOOT; } static struct InitialPlayerAvatarState *GetInitialPlayerAvatarState(void) @@ -921,11 +897,11 @@ static struct InitialPlayerAvatarState *GetInitialPlayerAvatarState(void) struct InitialPlayerAvatarState playerStruct; u8 mapType = GetCurrentMapType(); u16 metatileBehavior = GetCenterScreenMetatileBehavior(); - u8 transitionFlags = GetAdjustedInitialTransitionFlags(&gInitialPlayerAvatarState, metatileBehavior, mapType); + u8 transitionFlags = GetAdjustedInitialTransitionFlags(&sInitialPlayerAvatarState, metatileBehavior, mapType); playerStruct.transitionFlags = transitionFlags; - playerStruct.direction = GetAdjustedInitialDirection(&gInitialPlayerAvatarState, transitionFlags, metatileBehavior, mapType); - gInitialPlayerAvatarState = playerStruct; - return &gInitialPlayerAvatarState; + playerStruct.direction = GetAdjustedInitialDirection(&sInitialPlayerAvatarState, transitionFlags, metatileBehavior, mapType); + sInitialPlayerAvatarState = playerStruct; + return &sInitialPlayerAvatarState; } static u8 GetAdjustedInitialTransitionFlags(struct InitialPlayerAvatarState *playerStruct, u16 metatileBehavior, u8 mapType) @@ -1012,14 +988,15 @@ void SetCurrentMapLayout(u16 mapLayoutId) gMapHeader.mapLayout = GetMapLayout(); } -void sub_8085540(u8 var) +void SetObjectEventLoadFlag(u8 flag) { - sUnknown_020322D8 = var; + sObjectEventLoadFlag = flag; } -u8 sub_808554C(void) +// Unused, sObjectEventLoadFlag is read directly +static u8 GetObjectEventLoadFlag(void) { - return sUnknown_020322D8; + return sObjectEventLoadFlag; } static bool16 ShouldLegendaryMusicPlayAtLocation(struct WarpData *warp) @@ -1179,10 +1156,10 @@ void Overworld_SetSavedMusic(u16 songNum) void Overworld_ClearSavedMusic(void) { - gSaveBlock1Ptr->savedMusic = 0; + gSaveBlock1Ptr->savedMusic = MUS_DUMMY; } -static void sub_8085810(void) +static void TransitionMapMusic(void) { if (FlagGet(FLAG_DONT_TRANSITION_MUSIC) != TRUE) { @@ -1477,7 +1454,7 @@ static void OverworldBasic(void) BuildOamBuffer(); UpdatePaletteFade(); UpdateTilesetAnimations(); - do_scheduled_bg_tilemap_copies_to_vram(); + DoScheduledBgTilemapCopiesToVram(); } // This CB2 is used when starting @@ -1507,7 +1484,7 @@ void SetUnusedCallback(void *func) sUnusedOverworldCallback = func; } -static bool8 map_post_load_hook_exec(void) +static bool8 RunFieldCallback(void) { if (gFieldCallback2) { @@ -1546,7 +1523,7 @@ void CB2_NewGame(void) ScriptContext2_Disable(); gFieldCallback = ExecuteTruckSequence; gFieldCallback2 = NULL; - do_load_map_stuff_loop(&gMain.state); + DoMapLoadLoop(&gMain.state); SetFieldVBlankCallback(); SetMainCallback1(CB1_Overworld); SetMainCallback2(CB2_Overworld); @@ -1554,7 +1531,7 @@ void CB2_NewGame(void) void CB2_WhiteOut(void) { - u8 val; + u8 state; if (++gMain.state >= 120) { @@ -1566,8 +1543,8 @@ void CB2_WhiteOut(void) ScriptContext1_Init(); ScriptContext2_Disable(); gFieldCallback = FieldCB_WarpExitFadeFromBlack; - val = 0; - do_load_map_stuff_loop(&val); + state = 0; + DoMapLoadLoop(&state); SetFieldVBlankCallback(); SetMainCallback1(CB1_Overworld); SetMainCallback2(CB2_Overworld); @@ -1586,13 +1563,13 @@ void CB2_LoadMap(void) static void CB2_LoadMap2(void) { - do_load_map_stuff_loop(&gMain.state); + DoMapLoadLoop(&gMain.state); SetFieldVBlankCallback(); SetMainCallback1(CB1_Overworld); SetMainCallback2(CB2_Overworld); } -void sub_8086024(void) +void CB2_ReturnToFieldContestHall(void) { if (!gMain.state) { @@ -1601,7 +1578,7 @@ void sub_8086024(void) ScriptContext2_Disable(); SetMainCallback1(NULL); } - if (load_map_stuff(&gMain.state, 1)) + if (LoadMapInStepsLocal(&gMain.state, TRUE)) { SetFieldVBlankCallback(); SetMainCallback1(CB1_Overworld); @@ -1613,12 +1590,12 @@ void CB2_ReturnToFieldCableClub(void) { FieldClearVBlankHBlankCallbacks(); gFieldCallback = FieldCB_ReturnToFieldWirelessLink; - SetMainCallback2(c2_80567AC); + SetMainCallback2(CB2_LoadMapOnReturnToFieldCableClub); } -static void c2_80567AC(void) +static void CB2_LoadMapOnReturnToFieldCableClub(void) { - if (map_loading_iteration_3(&gMain.state)) + if (LoadMapInStepsLink(&gMain.state)) { SetFieldVBlankCallback(); SetMainCallback1(CB1_UpdateLinkState); @@ -1640,18 +1617,18 @@ void CB2_ReturnToField(void) } } -void CB2_ReturnToFieldLocal(void) +static void CB2_ReturnToFieldLocal(void) { - if (sub_8086638(&gMain.state)) + if (ReturnToFieldLocal(&gMain.state)) { SetFieldVBlankCallback(); SetMainCallback2(CB2_Overworld); } } -void CB2_ReturnToFieldLink(void) +static void CB2_ReturnToFieldLink(void) { - if (!sub_8087598() && map_loading_iteration_2_link(&gMain.state)) + if (!sub_8087598() && ReturnToFieldLink(&gMain.state)) SetMainCallback2(CB2_Overworld); } @@ -1812,7 +1789,7 @@ static void InitCurrentFlashLevelScanlineEffect(void) } } -static bool32 map_loading_iteration_3(u8 *state) +static bool32 LoadMapInStepsLink(u8 *state) { switch (*state) { @@ -1825,7 +1802,7 @@ static bool32 map_loading_iteration_3(u8 *state) (*state)++; break; case 1: - mli0_load_map(1); + LoadMapFromWarp(TRUE); (*state)++; break; case 2: @@ -1842,25 +1819,25 @@ static bool32 map_loading_iteration_3(u8 *state) case 4: InitCurrentFlashLevelScanlineEffect(); InitOverworldGraphicsRegisters(); - sub_8197200(); + InitTextBoxGfxAndPrinters(); (*state)++; break; case 5: - move_tilemap_camera_to_upper_left_corner(); + ResetFieldCamera(); (*state)++; break; case 6: - copy_map_tileset1_to_vram(gMapHeader.mapLayout); + CopyPrimaryTilesetToVram(gMapHeader.mapLayout); (*state)++; break; case 7: - copy_map_tileset2_to_vram(gMapHeader.mapLayout); + CopySecondaryTilesetToVram(gMapHeader.mapLayout); (*state)++; break; case 8: if (FreeTempTileDataBuffersIfPossible() != TRUE) { - apply_map_tileset1_tileset2_palette(gMapHeader.mapLayout); + LoadMapTilesetPalettes(gMapHeader.mapLayout); (*state)++; } break; @@ -1881,7 +1858,7 @@ static bool32 map_loading_iteration_3(u8 *state) (*state)++; break; case 12: - if (map_post_load_hook_exec()) + if (RunFieldCallback()) (*state)++; break; case 13: @@ -1891,13 +1868,13 @@ static bool32 map_loading_iteration_3(u8 *state) return FALSE; } -static bool32 load_map_stuff(u8 *state, u32 a2) +static bool32 LoadMapInStepsLocal(u8 *state, bool32 a2) { switch (*state) { case 0: FieldClearVBlankHBlankCallbacks(); - mli0_load_map(a2); + LoadMapFromWarp(a2); (*state)++; break; case 1: @@ -1911,31 +1888,31 @@ static bool32 load_map_stuff(u8 *state, u32 a2) break; case 3: mli4_mapscripts_and_other(); - sub_8086A80(); + SetCameraToTrackPlayer(); (*state)++; break; case 4: InitCurrentFlashLevelScanlineEffect(); InitOverworldGraphicsRegisters(); - sub_8197200(); + InitTextBoxGfxAndPrinters(); (*state)++; break; case 5: - move_tilemap_camera_to_upper_left_corner(); + ResetFieldCamera(); (*state)++; break; case 6: - copy_map_tileset1_to_vram(gMapHeader.mapLayout); + CopyPrimaryTilesetToVram(gMapHeader.mapLayout); (*state)++; break; case 7: - copy_map_tileset2_to_vram(gMapHeader.mapLayout); + CopySecondaryTilesetToVram(gMapHeader.mapLayout); (*state)++; break; case 8: if (FreeTempTileDataBuffersIfPossible() != TRUE) { - apply_map_tileset1_tileset2_palette(gMapHeader.mapLayout); + LoadMapTilesetPalettes(gMapHeader.mapLayout); (*state)++; } break; @@ -1953,7 +1930,7 @@ static bool32 load_map_stuff(u8 *state, u32 a2) (*state)++; break; case 12: - if (map_post_load_hook_exec()) + if (RunFieldCallback()) (*state)++; break; case 13: @@ -1963,16 +1940,16 @@ static bool32 load_map_stuff(u8 *state, u32 a2) return FALSE; } -static bool32 sub_8086638(u8 *state) +static bool32 ReturnToFieldLocal(u8 *state) { switch (*state) { case 0: sub_80867C8(); sub_80867D8(); - sub_8086988(0); + sub_8086988(FALSE); sub_8086A68(); - sub_8086A80(); + SetCameraToTrackPlayer(); (*state)++; break; case 1: @@ -1981,7 +1958,7 @@ static bool32 sub_8086638(u8 *state) (*state)++; break; case 2: - if (map_post_load_hook_exec()) + if (RunFieldCallback()) (*state)++; break; case 3: @@ -1991,7 +1968,7 @@ static bool32 sub_8086638(u8 *state) return FALSE; } -static bool32 map_loading_iteration_2_link(u8 *state) +static bool32 ReturnToFieldLink(u8 *state) { switch (*state) { @@ -2002,7 +1979,7 @@ static bool32 map_loading_iteration_2_link(u8 *state) (*state)++; break; case 1: - sub_8086988(1); + sub_8086988(TRUE); (*state)++; break; case 2: @@ -2014,25 +1991,25 @@ static bool32 map_loading_iteration_2_link(u8 *state) case 3: InitCurrentFlashLevelScanlineEffect(); InitOverworldGraphicsRegisters(); - sub_8197200(); + InitTextBoxGfxAndPrinters(); (*state)++; break; case 4: - move_tilemap_camera_to_upper_left_corner(); + ResetFieldCamera(); (*state)++; break; case 5: - copy_map_tileset1_to_vram(gMapHeader.mapLayout); + CopyPrimaryTilesetToVram(gMapHeader.mapLayout); (*state)++; break; case 6: - copy_map_tileset2_to_vram(gMapHeader.mapLayout); + CopySecondaryTilesetToVram(gMapHeader.mapLayout); (*state)++; break; case 7: if (FreeTempTileDataBuffersIfPossible() != TRUE) { - apply_map_tileset1_tileset2_palette(gMapHeader.mapLayout); + LoadMapTilesetPalettes(gMapHeader.mapLayout); (*state)++; } break; @@ -2053,7 +2030,7 @@ static bool32 map_loading_iteration_2_link(u8 *state) (*state)++; break; case 12: - if (map_post_load_hook_exec()) + if (RunFieldCallback()) (*state)++; break; case 10: @@ -2068,9 +2045,9 @@ static bool32 map_loading_iteration_2_link(u8 *state) return FALSE; } -static void do_load_map_stuff_loop(u8 *state) +static void DoMapLoadLoop(u8 *state) { - while (!load_map_stuff(state, 0)); + while (!LoadMapInStepsLocal(state, FALSE)); } static void sub_80867C8(void) @@ -2094,13 +2071,13 @@ static void sub_8086860(void) { InitCurrentFlashLevelScanlineEffect(); InitOverworldGraphicsRegisters(); - sub_8197200(); + InitTextBoxGfxAndPrinters(); mapdata_load_assets_to_gpu_and_full_redraw(); } static void InitOverworldGraphicsRegisters(void) { - clear_scheduled_bg_copies_to_vram(); + ClearScheduledBgCopiesToVram(); ResetTempTileDataBuffers(); SetGpuReg(REG_OFFSET_MOSAIC, 0); SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN1_BG_ALL | WININ_WIN1_OBJ); @@ -2133,7 +2110,7 @@ static void InitOverworldGraphicsRegisters(void) InitFieldMessageBox(); } -static void sub_8086988(u32 a1) +static void sub_8086988(bool32 a1) { ResetTasks(); ResetSpriteData(); @@ -2189,9 +2166,9 @@ static void sub_8086A68(void) RunOnReturnToFieldMapScript(); } -static void sub_8086A80(void) +static void SetCameraToTrackPlayer(void) { - gObjectEvents[gPlayerAvatar.objectEventId].trackedByCamera = 1; + gObjectEvents[gPlayerAvatar.objectEventId].trackedByCamera = TRUE; InitCameraUpdateCallback(gPlayerAvatar.spriteId); } @@ -2294,7 +2271,7 @@ static void CheckRfuKeepAliveTimer(void) static void ResetAllTradingStates(void) { s32 i; - for (i = 0; i < 4; i++) + for (i = 0; i < MAX_LINK_PLAYERS; i++) sPlayerTradingStates[i] = PLAYER_TRADING_STATE_IDLE; } @@ -2345,7 +2322,7 @@ static void HandleLinkPlayerKeyInput(u32 playerId, u16 key, struct TradeRoomPlay if (trainer->isLocalPlayer) { SetKeyInterceptCallback(KeyInterCB_DeferToEventScript); - sub_8087584(); + RunTerminateLinkScript(); } return; } @@ -2763,7 +2740,7 @@ static const u8 *TryInteractWithPlayer(struct TradeRoomPlayer *player) otherPlayerPos.height = 0; linkPlayerId = GetLinkPlayerIdAt(otherPlayerPos.x, otherPlayerPos.y); - if (linkPlayerId != 4) + if (linkPlayerId != MAX_LINK_PLAYERS) { if (!player->isLocalPlayer) return CableClub_EventScript_TooBusyToNotice; @@ -2843,7 +2820,7 @@ static void InitMenuBasedScript(const u8 *script) ScriptContext2_Enable(); } -static void sub_8087584(void) +static void RunTerminateLinkScript(void) { ScriptContext1_SetupScript(EventScript_TerminateLink); ScriptContext2_Enable(); diff --git a/src/party_menu.c b/src/party_menu.c index c4497e824d..5769d3158d 100755 --- a/src/party_menu.c +++ b/src/party_menu.c @@ -464,7 +464,7 @@ static void CB2_UpdatePartyMenu(void) RunTasks(); AnimateSprites(); BuildOamBuffer(); - do_scheduled_bg_tilemap_copies_to_vram(); + DoScheduledBgTilemapCopiesToVram(); UpdatePaletteFade(); } @@ -491,7 +491,7 @@ static bool8 ShowPartyMenu(void) case 0: SetVBlankHBlankCallbacksToNull(); ResetVramOamAndBgCntRegs(); - clear_scheduled_bg_copies_to_vram(); + ClearScheduledBgCopiesToVram(); gMain.state++; break; case 1: diff --git a/src/pokeblock.c b/src/pokeblock.c index 523c4ad91a..9be3ad24dd 100644 --- a/src/pokeblock.c +++ b/src/pokeblock.c @@ -475,7 +475,7 @@ static void CB2_PokeblockMenu(void) RunTasks(); AnimateSprites(); BuildOamBuffer(); - do_scheduled_bg_tilemap_copies_to_vram(); + DoScheduledBgTilemapCopiesToVram(); UpdatePaletteFade(); } @@ -507,7 +507,7 @@ static bool8 InitPokeblockMenu(void) { case 0: SetVBlankHBlankCallbacksToNull(); - clear_scheduled_bg_copies_to_vram(); + ClearScheduledBgCopiesToVram(); gMain.state++; break; case 1: diff --git a/src/pokeblock_feed.c b/src/pokeblock_feed.c index f6e6a19b24..72e54ae4ce 100644 --- a/src/pokeblock_feed.c +++ b/src/pokeblock_feed.c @@ -518,7 +518,7 @@ static void CB2_PokeblockFeed(void) RunTasks(); AnimateSprites(); BuildOamBuffer(); - do_scheduled_bg_tilemap_copies_to_vram(); + DoScheduledBgTilemapCopiesToVram(); UpdatePaletteFade(); } @@ -536,7 +536,7 @@ static bool8 TransitionToPokeblockFeedScene(void) case 0: sPokeblockFeed = AllocZeroed(sizeof(*sPokeblockFeed)); SetVBlankHBlankCallbacksToNull(); - clear_scheduled_bg_copies_to_vram(); + ClearScheduledBgCopiesToVram(); gMain.state++; break; case 1: diff --git a/src/pokemon_storage_system.c b/src/pokemon_storage_system.c index 30a29b6ea6..104f92c730 100644 --- a/src/pokemon_storage_system.c +++ b/src/pokemon_storage_system.c @@ -2146,7 +2146,7 @@ static void VblankCb_PSS(void) static void Cb2_PSS(void) { RunTasks(); - do_scheduled_bg_tilemap_copies_to_vram(); + DoScheduledBgTilemapCopiesToVram(); ScrollBackground(); sub_80CAA14(); AnimateSprites(); @@ -2214,7 +2214,7 @@ static void sub_80C7E98(void) gReservedSpriteTileCount = 0x280; sub_80D2A90(&sPSSData->unk_0020, sPSSData->unk_0028, 8); gKeyRepeatStartDelay = 20; - clear_scheduled_bg_copies_to_vram(); + ClearScheduledBgCopiesToVram(); sub_80D259C(3); sub_80D2644(0, 1, gUnknown_0857239C, 8, 4); sub_80D2770(0, 1, 0); diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index e8b30f7732..a3efe09d72 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -1120,7 +1120,7 @@ static void MainCB2(void) RunTasks(); AnimateSprites(); BuildOamBuffer(); - do_scheduled_bg_tilemap_copies_to_vram(); + DoScheduledBgTilemapCopiesToVram(); UpdatePaletteFade(); } @@ -1143,7 +1143,7 @@ static bool8 LoadGraphics(void) case 0: SetVBlankHBlankCallbacksToNull(); ResetVramOamAndBgCntRegs(); - clear_scheduled_bg_copies_to_vram(); + ClearScheduledBgCopiesToVram(); gMain.state++; break; case 1: diff --git a/src/rayquaza_scene.c b/src/rayquaza_scene.c index d902b7319f..986a2d3a20 100644 --- a/src/rayquaza_scene.c +++ b/src/rayquaza_scene.c @@ -1244,7 +1244,7 @@ void DoRayquazaScene(u8 animId, bool8 onlyOneAnim, void (*callback)(void)) static void CB2_InitRayquazaScene(void) { SetVBlankHBlankCallbacksToNull(); - clear_scheduled_bg_copies_to_vram(); + ClearScheduledBgCopiesToVram(); ScanlineEffect_Stop(); FreeAllSpritePalettes(); ResetPaletteFade(); @@ -1260,7 +1260,7 @@ static void CB2_RayquazaScene(void) RunTasks(); AnimateSprites(); BuildOamBuffer(); - do_scheduled_bg_tilemap_copies_to_vram(); + DoScheduledBgTilemapCopiesToVram(); UpdatePaletteFade(); } diff --git a/src/region_map.c b/src/region_map.c index 287e97fe9d..5880ad2165 100644 --- a/src/region_map.c +++ b/src/region_map.c @@ -1684,7 +1684,7 @@ void CB2_OpenFlyMap(void) break; case 3: LoadUserWindowBorderGfx(0, 0x65, 0xd0); - clear_scheduled_bg_copies_to_vram(); + ClearScheduledBgCopiesToVram(); gMain.state++; break; case 4: @@ -1747,7 +1747,7 @@ static void CB2_FlyMap(void) sFlyMap->callback(); AnimateSprites(); BuildOamBuffer(); - do_scheduled_bg_tilemap_copies_to_vram(); + DoScheduledBgTilemapCopiesToVram(); } static void SetFlyMapCallback(void callback(void)) diff --git a/src/reset_rtc_screen.c b/src/reset_rtc_screen.c index 2756aa8619..c948cde4cd 100644 --- a/src/reset_rtc_screen.c +++ b/src/reset_rtc_screen.c @@ -467,7 +467,7 @@ void CB2_InitResetRtcScreen(void) static void sub_809F048(void) { - clear_scheduled_bg_copies_to_vram(); + ClearScheduledBgCopiesToVram(); ResetBgsAndClearDma3BusyFlags(0); InitBgsFromTemplates(0, sBackgroundTemplates, ARRAY_COUNT(sBackgroundTemplates)); ScheduleBgCopyTilemapToVram(0); @@ -483,7 +483,7 @@ static void CB2_ResetRtcScreen(void) RunTasks(); AnimateSprites(); BuildOamBuffer(); - do_scheduled_bg_tilemap_copies_to_vram(); + DoScheduledBgTilemapCopiesToVram(); UpdatePaletteFade(); } diff --git a/src/roulette.c b/src/roulette.c index 58e120cb50..79a1adedce 100644 --- a/src/roulette.c +++ b/src/roulette.c @@ -859,7 +859,7 @@ static void sub_8140388(void) SetBgTilemapBuffer(1, gUnknown_0203AB88->tilemapBuffers[2]); SetBgTilemapBuffer(2, gUnknown_0203AB88->tilemapBuffers[6]); InitWindows(gUnknown_085B614C); - sub_8197200(); + InitTextBoxGfxAndPrinters(); gUnknown_0203AB8C = 0; gUnknown_0203AB88->unk_397C = malloc_and_decompress(gUnknown_085B5DFC, &size); } diff --git a/src/shop.c b/src/shop.c index 837ba1bcaa..4fc44beee0 100755 --- a/src/shop.c +++ b/src/shop.c @@ -416,7 +416,7 @@ static void CB2_BuyMenu(void) RunTasks(); AnimateSprites(); BuildOamBuffer(); - do_scheduled_bg_tilemap_copies_to_vram(); + DoScheduledBgTilemapCopiesToVram(); UpdatePaletteFade(); } @@ -446,7 +446,7 @@ static void CB2_InitBuyMenu(void) ResetPaletteFade(); ResetSpriteData(); ResetTasks(); - clear_scheduled_bg_copies_to_vram(); + ClearScheduledBgCopiesToVram(); gShopDataPtr = AllocZeroed(sizeof(struct ShopData)); gShopDataPtr->scrollIndicatorsTaskId = 0xFF; gShopDataPtr->itemSpriteIds[0] = 0xFF; diff --git a/src/starter_choose.c b/src/starter_choose.c index dbdb1a8b34..b919a8a17a 100644 --- a/src/starter_choose.c +++ b/src/starter_choose.c @@ -417,7 +417,7 @@ void CB2_ChooseStarter(void) DeactivateAllTextPrinters(); LoadUserWindowBorderGfx(0, 0x2A8, 0xD0); - clear_scheduled_bg_copies_to_vram(); + ClearScheduledBgCopiesToVram(); ScanlineEffect_Stop(); ResetTasks(); ResetSpriteData(); @@ -477,7 +477,7 @@ static void MainCallback2_StarterChoose(void) RunTasks(); AnimateSprites(); BuildOamBuffer(); - do_scheduled_bg_tilemap_copies_to_vram(); + DoScheduledBgTilemapCopiesToVram(); UpdatePaletteFade(); } diff --git a/src/wallclock.c b/src/wallclock.c index 00ab65817d..aa2bd80193 100644 --- a/src/wallclock.c +++ b/src/wallclock.c @@ -660,7 +660,7 @@ static void LoadWallClockGraphics(void) InitWindows(gUnknown_085B21DC); DeactivateAllTextPrinters(); LoadUserWindowBorderGfx(0, 0x250, 0xd0); - clear_scheduled_bg_copies_to_vram(); + ClearScheduledBgCopiesToVram(); ScanlineEffect_Stop(); ResetTasks(); ResetSpriteData(); @@ -780,7 +780,7 @@ static void WallClockMainCallback(void) RunTasks(); AnimateSprites(); BuildOamBuffer(); - do_scheduled_bg_tilemap_copies_to_vram(); + DoScheduledBgTilemapCopiesToVram(); UpdatePaletteFade(); } From 4ea6992172a53eb263d5f4342c5e08dfc3f8096a Mon Sep 17 00:00:00 2001 From: GriffinR Date: Wed, 24 Jun 2020 16:27:00 -0400 Subject: [PATCH 002/101] Continue documenting overworld/field effects --- asm/macros/trainer_hill.inc | 6 +- data/field_effect_scripts.s | 42 +- data/maps/TrainerHill_Entrance/scripts.inc | 4 +- data/scripts/trainer_hill.inc | 4 +- ...{lavaridge_gym_warp.png => ash_launch.png} | Bin .../{jump_out_of_ash.png => ash_puff.png} | Bin ...hop_big_splash.png => jump_big_splash.png} | Bin ...small_splash.png => jump_small_splash.png} | Bin ...hop_tall_grass.png => jump_tall_grass.png} | Bin graphics/field_effects/pics/unused_grass.png | Bin 344 -> 0 bytes .../field_effects/pics/unused_grass_2.png | Bin 389 -> 344 bytes .../field_effects/pics/unused_grass_3.png | Bin 0 -> 389 bytes .../{unknown_20.png => water_surfacing.png} | Bin .../deoxys_rock_fragment_bottom_left.png} | Bin .../deoxys_rock_fragment_bottom_right.png} | Bin .../deoxys_rock_fragment_top_left.png} | Bin .../deoxys_rock_fragment_top_right.png} | Bin ...ig_hof_monitor.png => hof_monitor_big.png} | Bin ..._hof_monitor.png => hof_monitor_small.png} | Bin .../trainer_hill_ereader.pal} | 0 include/constants/field_effects.h | 33 +- include/constants/trainer_hill.h | 2 +- include/event_object_movement.h | 18 +- include/field_effect.h | 4 +- include/field_effect_helpers.h | 10 +- include/field_player_avatar.h | 4 +- include/fieldmap.h | 8 +- include/trainer_hill.h | 4 +- include/tv.h | 2 +- spritesheet_rules.mk | 16 +- src/battle_transition.c | 10 +- .../field_effect_object_template_pointers.h | 16 +- src/data/field_effects/field_effect_objects.h | 790 ++++-- .../object_events/object_event_graphics.h | 16 +- src/event_object_movement.c | 112 +- src/field_effect.c | 2155 +++++++++-------- src/field_effect_helpers.c | 193 +- src/field_player_avatar.c | 14 +- src/field_screen_effect.c | 2 +- src/fieldmap.c | 15 +- src/fldeff_cut.c | 4 +- src/fldeff_misc.c | 18 +- src/item_use.c | 2 +- src/overworld.c | 76 +- src/trainer_hill.c | 25 +- src/trainer_see.c | 6 +- src/tv.c | 2 +- 47 files changed, 2045 insertions(+), 1568 deletions(-) rename graphics/field_effects/pics/{lavaridge_gym_warp.png => ash_launch.png} (100%) rename graphics/field_effects/pics/{jump_out_of_ash.png => ash_puff.png} (100%) rename graphics/field_effects/pics/{bike_hop_big_splash.png => jump_big_splash.png} (100%) rename graphics/field_effects/pics/{bike_hop_small_splash.png => jump_small_splash.png} (100%) rename graphics/field_effects/pics/{bike_hop_tall_grass.png => jump_tall_grass.png} (100%) delete mode 100644 graphics/field_effects/pics/unused_grass.png create mode 100644 graphics/field_effects/pics/unused_grass_3.png rename graphics/field_effects/pics/{unknown_20.png => water_surfacing.png} (100%) rename graphics/{unknown/unknown_55C1B0.png => misc/deoxys_rock_fragment_bottom_left.png} (100%) rename graphics/{unknown/unknown_55C1D0.png => misc/deoxys_rock_fragment_bottom_right.png} (100%) rename graphics/{unknown/unknown_55C170.png => misc/deoxys_rock_fragment_top_left.png} (100%) rename graphics/{unknown/unknown_55C190.png => misc/deoxys_rock_fragment_top_right.png} (100%) rename graphics/misc/{big_hof_monitor.png => hof_monitor_big.png} (100%) rename graphics/misc/{small_hof_monitor.png => hof_monitor_small.png} (100%) rename graphics/{pokenav/862A5D4.pal => misc/trainer_hill_ereader.pal} (100%) diff --git a/asm/macros/trainer_hill.inc b/asm/macros/trainer_hill.inc index d5c84fd021..65c8c6befc 100644 --- a/asm/macros/trainer_hill.inc +++ b/asm/macros/trainer_hill.inc @@ -52,9 +52,9 @@ special CallTrainerHillFunction .endm - @ Unknown, dummied. Only side effect is setting VAR_RESULT to 0. - .macro trainerhill_clearresult - setvar VAR_0x8004, TRAINER_HILL_FUNC_CLEAR_RESULT + @ Unknown, dummied. E-Reader association is assumed. Only side effect is setting VAR_RESULT to 0. + .macro trainerhill_getusingereader + setvar VAR_0x8004, TRAINER_HILL_FUNC_GET_IN_EREADER_MODE special CallTrainerHillFunction .endm diff --git a/data/field_effect_scripts.s b/data/field_effect_scripts.s index 2eddf3126c..6850154d30 100644 --- a/data/field_effect_scripts.s +++ b/data/field_effect_scripts.s @@ -17,17 +17,17 @@ gFieldEffectScriptPointers:: @ 82DB9D4 .4byte gFieldEffectScript_UseSurf @ FLDEFF_USE_SURF .4byte gFieldEffectScript_GroundImpactDust @ FLDEFF_DUST .4byte gFieldEffectScript_UseSecretPowerCave @ FLDEFF_USE_SECRET_POWER_CAVE - .4byte gFieldEffectScript_BikeHopTallGrass @ FLDEFF_JUMP_TALL_GRASS + .4byte gFieldEffectScript_JumpTallGrass @ FLDEFF_JUMP_TALL_GRASS .4byte gFieldEffectScript_SandFootprints @ FLDEFF_SAND_FOOTPRINTS - .4byte gFieldEffectScript_BikeHopBigSplash @ FLDEFF_JUMP_BIG_SPLASH + .4byte gFieldEffectScript_JumpBigSplash @ FLDEFF_JUMP_BIG_SPLASH .4byte gFieldEffectScript_Splash @ FLDEFF_SPLASH - .4byte gFieldEffectScript_BikeHopSmallSplash @ FLDEFF_JUMP_SMALL_SPLASH + .4byte gFieldEffectScript_JumpSmallSplash @ FLDEFF_JUMP_SMALL_SPLASH .4byte gFieldEffectScript_LongGrass @ FLDEFF_LONG_GRASS .4byte gFieldEffectScript_JumpLongGrass @ FLDEFF_JUMP_LONG_GRASS .4byte gFieldEffectScript_Unknown19 @ FLDEFF_UNKNOWN_19 - .4byte gFieldEffectScript_UnusedGrass @ FLDEFF_UNUSED_GRASS + .4byte gFieldEffectScript_UnusedGrass2 @ FLDEFF_UNUSED_GRASS_2 .4byte gFieldEffectScript_Unknown21 @ FLDEFF_UNKNOWN_21 - .4byte gFieldEffectScript_Unknown22 @ FLDEFF_UNKNOWN_22 + .4byte gFieldEffectScript_WaterSurfacing @ FLDEFF_WATER_SURFACING .4byte gFieldEffectScript_BerryTreeGrowthSparkle @ FLDEFF_BERRY_TREE_GROWTH_SPARKLE .4byte gFieldEffectScript_DeepSandFootprints @ FLDEFF_DEEP_SAND_FOOTPRINTS .4byte gFieldEffectScript_PokeCenterHeal @ FLDEFF_POKECENTER_HEAL @@ -54,8 +54,8 @@ gFieldEffectScriptPointers:: @ 82DB9D4 .4byte gFieldEffectScript_HeartIcon @ FLDEFF_HEART_ICON .4byte gFieldEffectScript_Unknown47 @ FLDEFF_NOP_47 .4byte gFieldEffectScript_Unknown48 @ FLDEFF_NOP_48 - .4byte gFieldEffectScript_JumpOutOfAsh @ FLDEFF_POP_OUT_OF_ASH - .4byte gFieldEffectScript_LavaridgeGymWarp @ FLDEFF_LAVARIDGE_GYM_WARP + .4byte gFieldEffectScript_AshPuff @ FLDEFF_ASH_PUFF + .4byte gFieldEffectScript_AshLaunch @ FLDEFF_ASH_LAUNCH .4byte gFieldEffectScript_SweetScent @ FLDEFF_SWEET_SCENT .4byte gFieldEffectScript_SandPillar @ FLDEFF_SAND_PILLAR .4byte gFieldEffectScript_Bubbles @ FLDEFF_BUBBLES @@ -69,7 +69,7 @@ gFieldEffectScriptPointers:: @ 82DB9D4 .4byte gFieldEffectScript_SecretBaseBootPC @ FLDEFF_PCTURN_ON .4byte gFieldEffectScript_HallOfFameRecord @ FLDEFF_HALL_OF_FAME_RECORD .4byte gFieldEffectScript_UseTeleport @ FLDEFF_USE_TELEPORT - .4byte gFieldEffectScript_Rayquaza @ FLDEFF_RAYQUAZA + .4byte gFieldEffectScript_RayquazaSpotlight @ FLDEFF_RAYQUAZA_SPOTLIGHT .4byte gFieldEffectScript_DestroyDeoxysRock @ FLDEFF_DESTROY_DEOXYS_ROCK .4byte gFieldEffectScript_MoveDeoxysRock @ FLDEFF_MOVE_DEOXYS_ROCK @@ -121,7 +121,7 @@ gFieldEffectScript_UseSecretPowerCave:: @ 82DBB32 field_eff_callnative FldEff_UseSecretPowerCave field_eff_end -gFieldEffectScript_BikeHopTallGrass:: @ 82DBB38 +gFieldEffectScript_JumpTallGrass:: @ 82DBB38 field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo1, FldEff_JumpTallGrass field_eff_end @@ -129,7 +129,7 @@ gFieldEffectScript_SandFootprints:: @ 82DBB42 field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, FldEff_SandFootprints field_eff_end -gFieldEffectScript_BikeHopBigSplash:: @ 82DBB4C +gFieldEffectScript_JumpBigSplash:: @ 82DBB4C field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, FldEff_JumpBigSplash field_eff_end @@ -137,7 +137,7 @@ gFieldEffectScript_Splash:: @ 82DBB56 field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, FldEff_Splash field_eff_end -gFieldEffectScript_BikeHopSmallSplash:: @ 82DBB60 +gFieldEffectScript_JumpSmallSplash:: @ 82DBB60 field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, FldEff_JumpSmallSplash field_eff_end @@ -153,16 +153,16 @@ gFieldEffectScript_Unknown19:: @ 82DBB7E field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo1, FldEff_Unknown19 field_eff_end -gFieldEffectScript_UnusedGrass:: @ 82DBB88 - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo1, FldEff_UnusedGrass +gFieldEffectScript_UnusedGrass2:: @ 82DBB88 + field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo1, FldEff_UnusedGrass2 field_eff_end gFieldEffectScript_Unknown21:: @ 82DBB92 field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, FldEff_Unknown21 field_eff_end -gFieldEffectScript_Unknown22:: @ 82DBB9C - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, FldEff_Unknown22 +gFieldEffectScript_WaterSurfacing:: @ 82DBB9C + field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, FldEff_WaterSurfacing field_eff_end gFieldEffectScript_BerryTreeGrowthSparkle:: @ 82DBBA6 @@ -271,12 +271,12 @@ gFieldEffectScript_Unknown48:: @ 82DBC66 field_eff_callnative FldEff_NopA700 field_eff_end -gFieldEffectScript_JumpOutOfAsh:: @ 82DBC6C - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo2, FldEff_PopOutOfAsh +gFieldEffectScript_AshPuff:: @ 82DBC6C + field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo2, FldEff_AshPuff field_eff_end -gFieldEffectScript_LavaridgeGymWarp:: @ 82DBC76 - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo2, FldEff_LavaridgeGymWarp +gFieldEffectScript_AshLaunch:: @ 82DBC76 + field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo2, FldEff_AshLaunch field_eff_end gFieldEffectScript_SweetScent:: @ 82DBC80 @@ -332,8 +332,8 @@ gFieldEffectScript_UseTeleport:: @ 82DBCED field_eff_callnative FldEff_UseTeleport field_eff_end -gFieldEffectScript_Rayquaza:: @ 82DBCF3 - field_eff_callnative sub_80B8F98 +gFieldEffectScript_RayquazaSpotlight:: @ 82DBCF3 + field_eff_callnative FldEff_RayquazaSpotlight field_eff_end gFieldEffectScript_DestroyDeoxysRock:: @ 82DBCF9 diff --git a/data/maps/TrainerHill_Entrance/scripts.inc b/data/maps/TrainerHill_Entrance/scripts.inc index e1311b6d15..b3bec46b0b 100644 --- a/data/maps/TrainerHill_Entrance/scripts.inc +++ b/data/maps/TrainerHill_Entrance/scripts.inc @@ -18,8 +18,8 @@ TrainerHill_Entrance_OnWarp: @ 82680CF TrainerHill_Entrance_OnResume: @ 82680D0 trainerhill_resumetimer setvar VAR_TEMP_0, 0 - trainerhill_clearresult - compare VAR_RESULT, 0 @ VAR_RESULT always 0 here + trainerhill_getusingereader + compare VAR_RESULT, FALSE @ VAR_RESULT always FALSE here goto_if_eq TrainerHill_Entrance_EventScript_TryFaceAttendant setobjectxy OBJ_EVENT_ID_PLAYER, 9, 6 applymovement OBJ_EVENT_ID_PLAYER, TrainerHill_Entrance_Movement_PlayerFaceAttendant diff --git a/data/scripts/trainer_hill.inc b/data/scripts/trainer_hill.inc index ca692e1efd..34d0462bbe 100644 --- a/data/scripts/trainer_hill.inc +++ b/data/scripts/trainer_hill.inc @@ -32,8 +32,8 @@ EventScript_TrainerHillTimer:: @ 82C8393 TrainerHill_1F_EventScript_DummyWarpToEntranceCounter:: @ 82C83A6 setvar VAR_TEMP_2, 1 - trainerhill_clearresult - compare VAR_RESULT, 1 @ VAR_RESULT always 0 here + trainerhill_getusingereader + compare VAR_RESULT, TRUE @ VAR_RESULT always FALSE here goto_if_eq TrainerHill_1F_EventScript_WarpSilentToEntranceCounter end diff --git a/graphics/field_effects/pics/lavaridge_gym_warp.png b/graphics/field_effects/pics/ash_launch.png similarity index 100% rename from graphics/field_effects/pics/lavaridge_gym_warp.png rename to graphics/field_effects/pics/ash_launch.png diff --git a/graphics/field_effects/pics/jump_out_of_ash.png b/graphics/field_effects/pics/ash_puff.png similarity index 100% rename from graphics/field_effects/pics/jump_out_of_ash.png rename to graphics/field_effects/pics/ash_puff.png diff --git a/graphics/field_effects/pics/bike_hop_big_splash.png b/graphics/field_effects/pics/jump_big_splash.png similarity index 100% rename from graphics/field_effects/pics/bike_hop_big_splash.png rename to graphics/field_effects/pics/jump_big_splash.png diff --git a/graphics/field_effects/pics/bike_hop_small_splash.png b/graphics/field_effects/pics/jump_small_splash.png similarity index 100% rename from graphics/field_effects/pics/bike_hop_small_splash.png rename to graphics/field_effects/pics/jump_small_splash.png diff --git a/graphics/field_effects/pics/bike_hop_tall_grass.png b/graphics/field_effects/pics/jump_tall_grass.png similarity index 100% rename from graphics/field_effects/pics/bike_hop_tall_grass.png rename to graphics/field_effects/pics/jump_tall_grass.png diff --git a/graphics/field_effects/pics/unused_grass.png b/graphics/field_effects/pics/unused_grass.png deleted file mode 100644 index 65f4d97e29f9d738995b8e5e67053d3d0d99cd74..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 344 zcmV-e0jK_nP)%W`?qaOPi_P|w=Kqv~VzjK3q}9c9#iT*BgBYZ0)|W4J0002v zNklyiR;lE?ZvEWtaeaEh7>Yp#i3@awkjx2U|P7&dxZ qwRy^&G(+uS(C)MozC?BEcm4v??T4!bpiRC20000yiR;lE?ZvEWtaeaEh7>Yp#iUaJE)9r_=1fWg600000NkvXX Hu0mjfA|iaY delta 303 zcmV+~0nq-~0)+#RUw;7*NklqBOO3N`=9&Yf;Kro zMG`W_3_JU@#voIN(*F@7Zcz~X1N{!|6t+SHP!ezIr1Z(=mC>W+~=Oq;>EPAZgj1ejA@|^((Qi6$6&40)OEW0#zPTg1qEXlYu zFT}uNFm{f?DY^jWi}+(g4|5NmoF1NMh7Mg^qd|-XlT*vJSQS}(3lr0~zu248Ps_>n zJPR`YZ`;?Q-l$x0oNlua4)>eume;|lC;ysU;REh z!Sqx8Cz%W`?qaOPi_P|w=Kqv~VzjK3q}9c9#iT*BgBYZ0)|W4J0003H zNklqBOO3N`=9&Yf;KroMG`W_3_JU@#voIN(*F@7 zZcz~X1N{!|6t+SHP!ezIr1Z(=mC>W+~ z=Oq;>EPAZgj1ejA@|^((Qi6$6&By{QyEJxA-B<-I$+$Ex#K2-Oc8j_+vs3 za}S=J9-e204qaTML5u~HQ_Hnj66Vtc9*qhT&%gOdU3o`w0+t;Dqs9bTJZnF>$ z_nYgM*TJbL|Dc^^2K#XmTtz0QZ~~9heuBr#PfmAV{XROu^i%yOnfC>^`>Po`{Z!xK jB4$euanimPaused = FALSE; } -bool8 sub_8095B0C(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 DoFigure8Anim(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (sub_8097758(sprite)) + if (AnimateSpriteInFigure8(sprite)) { ShiftStillObjectEventCoords(objectEvent); objectEvent->triggerGroundEffectsOnStop = TRUE; @@ -6884,14 +6886,14 @@ bool8 sub_8095B0C(struct ObjectEvent *objectEvent, struct Sprite *sprite) bool8 MovementAction_Figure8_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - sub_8095AF0(objectEvent, sprite); + InitFigure8Anim(objectEvent, sprite); sprite->data[2] = 1; return MovementAction_Figure8_Step1(objectEvent, sprite); } bool8 MovementAction_Figure8_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (sub_8095B0C(objectEvent, sprite)) + if (DoFigure8Anim(objectEvent, sprite)) { sprite->data[2] = 2; return TRUE; @@ -8094,26 +8096,26 @@ void GroundEffect_Seaweed(struct ObjectEvent *objEvent, struct Sprite *sprite) } static void (*const sGroundEffectFuncs[])(struct ObjectEvent *objEvent, struct Sprite *sprite) = { - GroundEffect_SpawnOnTallGrass, - GroundEffect_StepOnTallGrass, - GroundEffect_SpawnOnLongGrass, - GroundEffect_StepOnLongGrass, - GroundEffect_WaterReflection, - GroundEffect_IceReflection, - GroundEffect_FlowingWater, - GroundEffect_SandTracks, - GroundEffect_DeepSandTracks, - GroundEffect_Ripple, - GroundEffect_StepOnPuddle, - GroundEffect_SandHeap, - GroundEffect_JumpOnTallGrass, - GroundEffect_JumpOnLongGrass, - GroundEffect_JumpOnShallowWater, - GroundEffect_JumpOnWater, - GroundEffect_JumpLandingDust, - GroundEffect_ShortGrass, - GroundEffect_HotSprings, - GroundEffect_Seaweed + GroundEffect_SpawnOnTallGrass, // GROUND_EFFECT_FLAG_TALL_GRASS_ON_SPAWN + GroundEffect_StepOnTallGrass, // GROUND_EFFECT_FLAG_TALL_GRASS_ON_MOVE + GroundEffect_SpawnOnLongGrass, // GROUND_EFFECT_FLAG_LONG_GRASS_ON_SPAWN + GroundEffect_StepOnLongGrass, // GROUND_EFFECT_FLAG_LONG_GRASS_ON_MOVE + GroundEffect_WaterReflection, // GROUND_EFFECT_FLAG_ICE_REFLECTION + GroundEffect_IceReflection, // GROUND_EFFECT_FLAG_REFLECTION + GroundEffect_FlowingWater, // GROUND_EFFECT_FLAG_SHALLOW_FLOWING_WATER + GroundEffect_SandTracks, // GROUND_EFFECT_FLAG_SAND + GroundEffect_DeepSandTracks, // GROUND_EFFECT_FLAG_DEEP_SAND + GroundEffect_Ripple, // GROUND_EFFECT_FLAG_RIPPLES + GroundEffect_StepOnPuddle, // GROUND_EFFECT_FLAG_PUDDLE + GroundEffect_SandHeap, // GROUND_EFFECT_FLAG_SAND_PILE + GroundEffect_JumpOnTallGrass, // GROUND_EFFECT_FLAG_LAND_IN_TALL_GRASS + GroundEffect_JumpOnLongGrass, // GROUND_EFFECT_FLAG_LAND_IN_LONG_GRASS + GroundEffect_JumpOnShallowWater, // GROUND_EFFECT_FLAG_LAND_IN_SHALLOW_WATER + GroundEffect_JumpOnWater, // GROUND_EFFECT_FLAG_LAND_IN_DEEP_WATER + GroundEffect_JumpLandingDust, // GROUND_EFFECT_FLAG_LAND_ON_NORMAL_GROUND + GroundEffect_ShortGrass, // GROUND_EFFECT_FLAG_SHORT_GRASS + GroundEffect_HotSprings, // GROUND_EFFECT_FLAG_HOT_SPRINGS + GroundEffect_Seaweed // GROUND_EFFECT_FLAG_SEAWEED }; static void DoFlaggedGroundEffects(struct ObjectEvent *objEvent, struct Sprite *sprite, u32 flags) @@ -8391,7 +8393,7 @@ bool8 sub_80976EC(struct Sprite *sprite) return FALSE; } -static const s8 gUnknown_0850E772[] = { +static const s8 sFigure8XOffsets[FIGURE_8_LENGTH] = { 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 1, 1, @@ -8403,7 +8405,7 @@ static const s8 gUnknown_0850E772[] = { 0, 1, 0, 0, 0, 0, 0, 0, }; -static const s8 gUnknown_0850E7BA[] = { +static const s8 sFigure8YOffsets[FIGURE_8_LENGTH] = { 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, @@ -8415,57 +8417,57 @@ static const s8 gUnknown_0850E7BA[] = { -1, -1, -1, -1, -1, -1, -1, -2, }; -s16 sub_8097728(s16 a1) +s16 GetFigure8YOffset(s16 idx) { - return gUnknown_0850E7BA[a1]; + return sFigure8YOffsets[idx]; } -s16 sub_809773C(s16 a1) +s16 GetFigure8XOffset(s16 idx) { - return gUnknown_0850E772[a1]; + return sFigure8XOffsets[idx]; } -void sub_8097750(struct Sprite *sprite) +static void InitSpriteForFigure8Anim(struct Sprite *sprite) { sprite->data[6] = 0; sprite->data[7] = 0; } -bool8 sub_8097758(struct Sprite *sprite) +static bool8 AnimateSpriteInFigure8(struct Sprite *sprite) { - bool8 result = FALSE; + bool8 finished = FALSE; switch(sprite->data[7]) { - case 0: - sprite->pos2.x += sub_809773C(sprite->data[6]); - sprite->pos2.y += sub_8097728(sprite->data[6]); - break; - case 1: - sprite->pos2.x -= sub_809773C(0x47 - sprite->data[6]); - sprite->pos2.y += sub_8097728(0x47 - sprite->data[6]); - break; - case 2: - sprite->pos2.x -= sub_809773C(sprite->data[6]); - sprite->pos2.y += sub_8097728(sprite->data[6]); - break; - case 3: - sprite->pos2.x += sub_809773C(0x47 - sprite->data[6]); - sprite->pos2.y += sub_8097728(0x47 - sprite->data[6]); - break; + case 0: + sprite->pos2.x += GetFigure8XOffset(sprite->data[6]); + sprite->pos2.y += GetFigure8YOffset(sprite->data[6]); + break; + case 1: + sprite->pos2.x -= GetFigure8XOffset((FIGURE_8_LENGTH - 1) - sprite->data[6]); + sprite->pos2.y += GetFigure8YOffset((FIGURE_8_LENGTH - 1) - sprite->data[6]); + break; + case 2: + sprite->pos2.x -= GetFigure8XOffset(sprite->data[6]); + sprite->pos2.y += GetFigure8YOffset(sprite->data[6]); + break; + case 3: + sprite->pos2.x += GetFigure8XOffset((FIGURE_8_LENGTH - 1) - sprite->data[6]); + sprite->pos2.y += GetFigure8YOffset((FIGURE_8_LENGTH - 1) - sprite->data[6]); + break; } - if(++sprite->data[6] == 0x48) + if (++sprite->data[6] == FIGURE_8_LENGTH) { sprite->data[6] = 0; sprite->data[7]++; } - if(sprite->data[7] == 0x4) + if (sprite->data[7] == 4) { sprite->pos2.y = 0; sprite->pos2.x = 0; - result = TRUE; + finished = TRUE; } - return result; + return finished; } static const s8 gUnknown_0850E802[] = { diff --git a/src/field_effect.c b/src/field_effect.c index 284d9b0e79..fbf6bd10c6 100644 --- a/src/field_effect.c +++ b/src/field_effect.c @@ -39,30 +39,32 @@ EWRAM_DATA s32 gFieldEffectArguments[8] = {0}; // Static type declarations static void Task_PokecenterHeal(u8 taskId); -static void PokecenterHealEffect_0(struct Task *); -static void PokecenterHealEffect_1(struct Task *); -static void PokecenterHealEffect_2(struct Task *); -static void PokecenterHealEffect_3(struct Task *); +static void PokecenterHealEffect_Init(struct Task *); +static void PokecenterHealEffect_WaitForBallPlacement(struct Task *); +static void PokecenterHealEffect_WaitForBallFlashing(struct Task *); +static void PokecenterHealEffect_WaitForSoundAndEnd(struct Task *); +static u8 CreatePokecenterMonitorSprite(s16, s16); +static void SpriteCB_PokecenterMonitor(struct Sprite *); static void Task_HallOfFameRecord(u8 taskId); -static void HallOfFameRecordEffect_0(struct Task *); -static void HallOfFameRecordEffect_1(struct Task *); -static void HallOfFameRecordEffect_2(struct Task *); -static void HallOfFameRecordEffect_3(struct Task *); +static void HallOfFameRecordEffect_Init(struct Task *); +static void HallOfFameRecordEffect_WaitForBallPlacement(struct Task *); +static void HallOfFameRecordEffect_WaitForBallFlashing(struct Task *); +static void HallOfFameRecordEffect_WaitForSoundAndEnd(struct Task *); +static void CreateHofMonitorSprite(s16, s16, s16, bool8); +static void SpriteCB_HallOfFameMonitor(struct Sprite *); -static u8 CreatePokeballGlowSprite(s16, s16, s16, u16); +static u8 CreateGlowingPokeballsEffect(s16, s16, s16, bool16); static void SpriteCB_PokeballGlowEffect(struct Sprite *); -static void PokeballGlowEffect_0(struct Sprite *); -static void PokeballGlowEffect_1(struct Sprite *); -static void PokeballGlowEffect_2(struct Sprite *); -static void PokeballGlowEffect_3(struct Sprite *); -static void PokeballGlowEffect_4(struct Sprite *); -static void PokeballGlowEffect_5(struct Sprite *); -static void PokeballGlowEffect_6(struct Sprite *); -static void PokeballGlowEffect_7(struct Sprite *); - -static u8 PokecenterHealEffectHelper(s16, s16); -static void HallOfFameRecordEffectHelper(s16, s16, s16, u8); +static void PokeballGlowEffect_PlaceBalls(struct Sprite *); +static void PokeballGlowEffect_TryPlaySe(struct Sprite *); +static void PokeballGlowEffect_Flash1(struct Sprite *); +static void PokeballGlowEffect_Flash2(struct Sprite *); +static void PokeballGlowEffect_WaitAfterFlash(struct Sprite *); +static void PokeballGlowEffect_Dummy(struct Sprite *); +static void PokeballGlowEffect_WaitForSound(struct Sprite *); +static void PokeballGlowEffect_Idle(struct Sprite *); +static void SpriteCB_PokeballGlow(struct Sprite *); static void FieldCallback_UseFly(void); static void Task_UseFly(u8); @@ -70,169 +72,165 @@ static void FieldCallback_FlyIntoMap(void); static void Task_FlyIntoMap(u8); static void Task_FallWarpFieldEffect(u8); -static bool8 FallWarpEffect_0(struct Task *); -static bool8 FallWarpEffect_1(struct Task *); -static bool8 FallWarpEffect_2(struct Task *); -static bool8 FallWarpEffect_3(struct Task *); -static bool8 FallWarpEffect_4(struct Task *); -static bool8 FallWarpEffect_5(struct Task *); -static bool8 FallWarpEffect_6(struct Task *); +static bool8 FallWarpEffect_Init(struct Task *); +static bool8 FallWarpEffect_WaitWeather(struct Task *); +static bool8 FallWarpEffect_StartFall(struct Task *); +static bool8 FallWarpEffect_Fall(struct Task *); +static bool8 FallWarpEffect_Land(struct Task *); +static bool8 FallWarpEffect_CameraShake(struct Task *); +static bool8 FallWarpEffect_End(struct Task *); static void Task_EscalatorWarpOut(u8); -static bool8 EscalatorWarpOutEffect_0(struct Task *); -static bool8 EscalatorWarpOutEffect_1(struct Task *); -static bool8 EscalatorWarpOutEffect_2(struct Task *); -static bool8 EscalatorWarpOutEffect_3(struct Task *); -static bool8 EscalatorWarpOutEffect_4(struct Task *); -static bool8 EscalatorWarpOutEffect_5(struct Task *); - -static void sub_80B6FB8(struct Task *); -static void sub_80B7004(struct Task *); -static void sub_80B7050(void); -static void sub_80B7060(void); +static bool8 EscalatorWarpOut_Init(struct Task *); +static bool8 EscalatorWarpOut_WaitForPlayer(struct Task *); +static bool8 EscalatorWarpOut_Up_Ride(struct Task *); +static bool8 EscalatorWarpOut_Up_End(struct Task *); +static bool8 EscalatorWarpOut_Down_Ride(struct Task *); +static bool8 EscalatorWarpOut_Down_End(struct Task *); +static void RideUpEscalatorOut(struct Task *); +static void RideDownEscalatorOut(struct Task *); +static void FadeOutAtEndOfEscalator(void); +static void WarpAtEndOfEscalator(void); static void FieldCallback_EscalatorWarpIn(void); static void Task_EscalatorWarpIn(u8); -static bool8 EscalatorWarpInEffect_0(struct Task *); -static bool8 EscalatorWarpInEffect_1(struct Task *); -static bool8 EscalatorWarpInEffect_2(struct Task *); -static bool8 EscalatorWarpInEffect_3(struct Task *); -static bool8 EscalatorWarpInEffect_4(struct Task *); -static bool8 EscalatorWarpInEffect_5(struct Task *); -static bool8 EscalatorWarpInEffect_6(struct Task *); +static bool8 EscalatorWarpIn_Init(struct Task *); +static bool8 EscalatorWarpIn_Down_Init(struct Task *); +static bool8 EscalatorWarpIn_Down_Ride(struct Task *); +static bool8 EscalatorWarpIn_Up_Init(struct Task *); +static bool8 EscalatorWarpIn_Up_Ride(struct Task *); +static bool8 EscalatorWarpIn_WaitForMovement(struct Task *); +static bool8 EscalatorWarpIn_End(struct Task *); static void Task_UseWaterfall(u8); -static bool8 WaterfallFieldEffect_0(struct Task *, struct ObjectEvent *); -static bool8 WaterfallFieldEffect_1(struct Task *, struct ObjectEvent *); -static bool8 WaterfallFieldEffect_2(struct Task *, struct ObjectEvent *); -static bool8 WaterfallFieldEffect_3(struct Task *, struct ObjectEvent *); -static bool8 WaterfallFieldEffect_4(struct Task *, struct ObjectEvent *); +static bool8 WaterfallFieldEffect_Init(struct Task *, struct ObjectEvent *); +static bool8 WaterfallFieldEffect_ShowMon(struct Task *, struct ObjectEvent *); +static bool8 WaterfallFieldEffect_WaitForShowMon(struct Task *, struct ObjectEvent *); +static bool8 WaterfallFieldEffect_RideUp(struct Task *, struct ObjectEvent *); +static bool8 WaterfallFieldEffect_ContinueRideOrEnd(struct Task *, struct ObjectEvent *); static void Task_UseDive(u8); -static bool8 DiveFieldEffect_0(struct Task *); -static bool8 DiveFieldEffect_1(struct Task *); -static bool8 DiveFieldEffect_2(struct Task *); +static bool8 DiveFieldEffect_Init(struct Task *); +static bool8 DiveFieldEffect_ShowMon(struct Task *); +static bool8 DiveFieldEffect_TryWarp(struct Task *); static void Task_LavaridgeGymB1FWarp(u8); -static bool8 LavaridgeGymB1FWarpEffect_0(struct Task *, struct ObjectEvent *, struct Sprite *); -static bool8 LavaridgeGymB1FWarpEffect_1(struct Task *, struct ObjectEvent *, struct Sprite *); -static bool8 LavaridgeGymB1FWarpEffect_2(struct Task *, struct ObjectEvent *, struct Sprite *); -static bool8 LavaridgeGymB1FWarpEffect_3(struct Task *, struct ObjectEvent *, struct Sprite *); -static bool8 LavaridgeGymB1FWarpEffect_4(struct Task *, struct ObjectEvent *, struct Sprite *); -static bool8 LavaridgeGymB1FWarpEffect_5(struct Task *, struct ObjectEvent *, struct Sprite *); +static bool8 LavaridgeGymB1FWarpEffect_Init(struct Task *, struct ObjectEvent *, struct Sprite *); +static bool8 LavaridgeGymB1FWarpEffect_CameraShake(struct Task *, struct ObjectEvent *, struct Sprite *); +static bool8 LavaridgeGymB1FWarpEffect_Launch(struct Task *, struct ObjectEvent *, struct Sprite *); +static bool8 LavaridgeGymB1FWarpEffect_Rise(struct Task *, struct ObjectEvent *, struct Sprite *); +static bool8 LavaridgeGymB1FWarpEffect_FadeOut(struct Task *, struct ObjectEvent *, struct Sprite *); +static bool8 LavaridgeGymB1FWarpEffect_Warp(struct Task *, struct ObjectEvent *, struct Sprite *); static void FieldCB_LavaridgeGymB1FWarpExit(void); static void Task_LavaridgeGymB1FWarpExit(u8); -static bool8 LavaridgeGymB1FWarpExitEffect_0(struct Task *, struct ObjectEvent *, struct Sprite *); -static bool8 LavaridgeGymB1FWarpExitEffect_1(struct Task *, struct ObjectEvent *, struct Sprite *); -static bool8 LavaridgeGymB1FWarpExitEffect_2(struct Task *, struct ObjectEvent *, struct Sprite *); -static bool8 LavaridgeGymB1FWarpExitEffect_3(struct Task *, struct ObjectEvent *, struct Sprite *); +static bool8 LavaridgeGymB1FWarpExitEffect_Init(struct Task *, struct ObjectEvent *, struct Sprite *); +static bool8 LavaridgeGymB1FWarpExitEffect_StartPopOut(struct Task *, struct ObjectEvent *, struct Sprite *); +static bool8 LavaridgeGymB1FWarpExitEffect_PopOut(struct Task *, struct ObjectEvent *, struct Sprite *); +static bool8 LavaridgeGymB1FWarpExitEffect_End(struct Task *, struct ObjectEvent *, struct Sprite *); static void Task_LavaridgeGym1FWarp(u8); -static bool8 LavaridgeGym1FWarpEffect_0(struct Task *, struct ObjectEvent *, struct Sprite *); -static bool8 LavaridgeGym1FWarpEffect_1(struct Task *, struct ObjectEvent *, struct Sprite *); -static bool8 LavaridgeGym1FWarpEffect_2(struct Task *, struct ObjectEvent *, struct Sprite *); -static bool8 LavaridgeGym1FWarpEffect_3(struct Task *, struct ObjectEvent *, struct Sprite *); -static bool8 LavaridgeGym1FWarpEffect_4(struct Task *, struct ObjectEvent *, struct Sprite *); +static bool8 LavaridgeGym1FWarpEffect_Init(struct Task *, struct ObjectEvent *, struct Sprite *); +static bool8 LavaridgeGym1FWarpEffect_AshPuff(struct Task *, struct ObjectEvent *, struct Sprite *); +static bool8 LavaridgeGym1FWarpEffect_Disappear(struct Task *, struct ObjectEvent *, struct Sprite *); +static bool8 LavaridgeGym1FWarpEffect_FadeOut(struct Task *, struct ObjectEvent *, struct Sprite *); +static bool8 LavaridgeGym1FWarpEffect_Warp(struct Task *, struct ObjectEvent *, struct Sprite *); static void Task_EscapeRopeWarpOut(u8); -static void EscapeRopeWarpOutFieldEffect_0(struct Task *); -static void EscapeRopeWarpOutFieldEffect_1(struct Task *); +static void EscapeRopeWarpOutEffect_Init(struct Task *); +static void EscapeRopeWarpOutEffect_Spin(struct Task *); static void FieldCallback_EscapeRopeWarpIn(void); static void Task_EscapeRopeWarpIn(u8); -static void EscapeRopeWarpInFieldEffect_0(struct Task *); -static void EscapeRopeWarpInFieldEffect_1(struct Task *); +static void EscapeRopeWarpInEffect_Init(struct Task *); +static void EscapeRopeWarpInEffect_Spin(struct Task *); static void Task_TeleportWarpOut(u8); -static void TeleportWarpOutFieldEffect_0(struct Task*); -static void TeleportWarpOutFieldEffect_1(struct Task*); -static void TeleportWarpOutFieldEffect_2(struct Task*); -static void TeleportWarpOutFieldEffect_3(struct Task*); +static void TeleportWarpOutFieldEffect_Init(struct Task*); +static void TeleportWarpOutFieldEffect_SpinGround(struct Task*); +static void TeleportWarpOutFieldEffect_SpinExit(struct Task*); +static void TeleportWarpOutFieldEffect_End(struct Task*); static void FieldCallback_TeleportWarpIn(void); static void Task_TeleportWarpIn(u8); -static void TeleportWarpInFieldEffect_0(struct Task *); -static void TeleportWarpInFieldEffect_1(struct Task *); -static void TeleportWarpInFieldEffect_2(struct Task *); +static void TeleportWarpInFieldEffect_Init(struct Task *); +static void TeleportWarpInFieldEffect_SpinEnter(struct Task *); +static void TeleportWarpInFieldEffect_SpinGround(struct Task *); static void Task_FieldMoveShowMonOutdoors(u8); -static void FieldMoveShowMonOutdoorsEffect_0(struct Task *); -static void FieldMoveShowMonOutdoorsEffect_1(struct Task *); -static void FieldMoveShowMonOutdoorsEffect_2(struct Task *); -static void FieldMoveShowMonOutdoorsEffect_3(struct Task *); -static void FieldMoveShowMonOutdoorsEffect_4(struct Task *); -static void FieldMoveShowMonOutdoorsEffect_5(struct Task *); -static void FieldMoveShowMonOutdoorsEffect_6(struct Task *); - +static void FieldMoveShowMonOutdoorsEffect_Init(struct Task *); +static void FieldMoveShowMonOutdoorsEffect_LoadGfx(struct Task *); +static void FieldMoveShowMonOutdoorsEffect_CreateBanner(struct Task *); +static void FieldMoveShowMonOutdoorsEffect_WaitForMon(struct Task *); +static void FieldMoveShowMonOutdoorsEffect_ShrinkBanner(struct Task *); +static void FieldMoveShowMonOutdoorsEffect_RestoreBg(struct Task *); +static void FieldMoveShowMonOutdoorsEffect_End(struct Task *); static void VBlankCB_FieldMoveShowMonOutdoors(void); -static void sub_80B8874(u16); +static void LoadFieldMoveOutdoorStreaksTilemap(u16); static void Task_FieldMoveShowMonIndoors(u8); -static void FieldMoveShowMonIndoorsEffect_0(struct Task *); -static void FieldMoveShowMonIndoorsEffect_1(struct Task *); -static void FieldMoveShowMonIndoorsEffect_2(struct Task *); -static void FieldMoveShowMonIndoorsEffect_3(struct Task *); -static void FieldMoveShowMonIndoorsEffect_4(struct Task *); -static void FieldMoveShowMonIndoorsEffect_5(struct Task *); -static void FieldMoveShowMonIndoorsEffect_6(struct Task *); - +static void FieldMoveShowMonIndoorsEffect_Init(struct Task *); +static void FieldMoveShowMonIndoorsEffect_LoadGfx(struct Task *); +static void FieldMoveShowMonIndoorsEffect_SlideBannerOn(struct Task *); +static void FieldMoveShowMonIndoorsEffect_WaitForMon(struct Task *); +static void FieldMoveShowMonIndoorsEffect_RestoreBg(struct Task *); +static void FieldMoveShowMonIndoorsEffect_SlideBannerOff(struct Task *); +static void FieldMoveShowMonIndoorsEffect_End(struct Task *); static void VBlankCB_FieldMoveShowMonIndoors(void); -static void sub_80B8B28(struct Task *); -static bool8 sub_80B8B38(struct Task *); -static bool8 sub_80B8BF0(struct Task *); +static void AnimateIndoorShowMonBg(struct Task *); +static bool8 SlideIndoorBannerOnscreen(struct Task *); +static bool8 SlideIndoorBannerOffscreen(struct Task *); -static u8 sub_80B8C60(u32, u32, u32); -static void sub_80B8CC0(struct Sprite *); -static void sub_80B8D04(struct Sprite *); -static void sub_80B8D20(struct Sprite *); +static u8 InitFieldMoveMonSprite(u32, u32, u32); +static void SpriteCB_FieldMoveMonSlideOnscreen(struct Sprite *); +static void SpriteCB_FieldMoveMonWaitAfterCry(struct Sprite *); +static void SpriteCB_FieldMoveMonSlideOffscreen(struct Sprite *); static void Task_SurfFieldEffect(u8); -static void SurfFieldEffect_1(struct Task *); -static void SurfFieldEffect_2(struct Task *); -static void SurfFieldEffect_3(struct Task *); -static void SurfFieldEffect_4(struct Task *); -static void SurfFieldEffect_5(struct Task *); +static void SurfFieldEffect_Init(struct Task *); +static void SurfFieldEffect_FieldMovePose(struct Task *); +static void SurfFieldEffect_ShowMon(struct Task *); +static void SurfFieldEffect_JumpOnSurfBlob(struct Task *); +static void SurfFieldEffect_End(struct Task *); static void SpriteCB_NPCFlyOut(struct Sprite *); static void Task_FlyOut(u8); -static void FlyOutFieldEffect_0(struct Task *); -static void FlyOutFieldEffect_1(struct Task *); -static void FlyOutFieldEffect_2(struct Task *); -static void FlyOutFieldEffect_3(struct Task *); -static void FlyOutFieldEffect_4(struct Task *); -static void FlyOutFieldEffect_5(struct Task *); -static void FlyOutFieldEffect_6(struct Task *); -static void FlyOutFieldEffect_7(struct Task *); -static void FlyOutFieldEffect_8(struct Task *); +static void FlyOutFieldEffect_FieldMovePose(struct Task *); +static void FlyOutFieldEffect_ShowMon(struct Task *); +static void FlyOutFieldEffect_BirdLeaveBall(struct Task *); +static void FlyOutFieldEffect_WaitBirdLeave(struct Task *); +static void FlyOutFieldEffect_BirdSwoopDown(struct Task *); +static void FlyOutFieldEffect_JumpOnBird(struct Task *); +static void FlyOutFieldEffect_FlyOffWithBird(struct Task *); +static void FlyOutFieldEffect_WaitFlyOff(struct Task *); +static void FlyOutFieldEffect_End(struct Task *); -static u8 sub_80B94C4(void); -static u8 sub_80B9508(u8); -static void sub_80B9524(u8); -static void sub_80B9560(u8, u8); -static void sub_80B957C(struct Sprite *); -static void sub_80B963C(struct Sprite *); +static u8 CreateFlyBirdSprite(void); +static u8 GetFlyBirdAnimCompleted(u8); +static void StartFlyBirdSwoopDown(u8); +static void SetFlyBirdPlayerSpriteId(u8, u8); +static void SpriteCB_FlyBirdLeaveBall(struct Sprite *); +static void SpriteCB_FlyBirdSwoopDown(struct Sprite *); static void Task_FlyIn(u8); -static void FlyInFieldEffect_0(struct Task *); -static void FlyInFieldEffect_1(struct Task *); -static void FlyInFieldEffect_2(struct Task *); -static void FlyInFieldEffect_3(struct Task *); -static void FlyInFieldEffect_4(struct Task *); -static void FlyInFieldEffect_5(struct Task *); -static void FlyInFieldEffect_6(struct Task *); +static void FlyInFieldEffect_BirdSwoopDown(struct Task *); +static void FlyInFieldEffect_FlyInWithBird(struct Task *); +static void FlyInFieldEffect_JumpOffBird(struct Task *); +static void FlyInFieldEffect_FieldMovePose(struct Task *); +static void FlyInFieldEffect_BirdReturnToBall(struct Task *); +static void FlyInFieldEffect_WaitBirdReturn(struct Task *); +static void FlyInFieldEffect_End(struct Task *); static void Task_DestroyDeoxysRock(u8 taskId); -static void DestroyDeoxysRockFieldEffect_0(s16*, u8); -static void DestroyDeoxysRockFieldEffect_1(s16*, u8); -static void DestroyDeoxysRockFieldEffect_2(s16*, u8); +static void DestroyDeoxysRockEffect_CameraShake(s16*, u8); +static void DestroyDeoxysRockEffect_RockFragments(s16*, u8); +static void DestroyDeoxysRockEffect_WaitAndEnd(s16*, u8); +static void CreateDeoxysRockFragments(struct Sprite*); +static void SpriteCB_DeoxysRockFragment(struct Sprite* sprite); -static void sub_80B9DB8(struct Sprite* sprite); static void Task_MoveDeoxysRock(u8 taskId); -static void sub_80B9D24(struct Sprite*); - // Static RAM declarations static u8 sActiveList[32]; @@ -244,34 +242,33 @@ extern const struct CompressedSpriteSheet gTrainerFrontPicTable[]; extern u8 *gFieldEffectScriptPointers[]; extern const struct SpriteTemplate *const gFieldEffectObjectTemplatePointers[]; -// .rodata -const u32 gNewGameBirchPic[] = INCBIN_U32("graphics/birch_speech/birch.4bpp"); -const u32 gUnusedBirchBeauty[] = INCBIN_U32("graphics/unused/intro_birch_beauty.4bpp"); -const u16 gNewGameBirchPalette[16] = INCBIN_U16("graphics/birch_speech/birch.gbapal"); -const u32 gSpriteImage_855A970[] = INCBIN_U32("graphics/misc/pokeball_glow.4bpp"); -const u16 gFieldEffectObjectPalette4[16] = INCBIN_U16("graphics/field_effects/palettes/04.gbapal"); -const u32 gSpriteImage_855A9B0[] = INCBIN_U32("graphics/misc/pokecenter_monitor/0.4bpp"); -const u32 gSpriteImage_855AA70[] = INCBIN_U32("graphics/misc/pokecenter_monitor/1.4bpp"); -const u32 gSpriteImage_855AB30[] = INCBIN_U32("graphics/misc/big_hof_monitor.4bpp"); -const u8 gSpriteImage_855AD30[] = INCBIN_U8("graphics/misc/small_hof_monitor.4bpp"); -const u16 gFieldEffectObjectPalette5[16] = INCBIN_U16("graphics/field_effects/palettes/05.gbapal"); +static const u32 sNewGameBirch_Gfx[] = INCBIN_U32("graphics/birch_speech/birch.4bpp"); +static const u32 sUnusedBirchBeauty[] = INCBIN_U32("graphics/unused/intro_birch_beauty.4bpp"); +static const u16 sNewGameBirch_Pal[16] = INCBIN_U16("graphics/birch_speech/birch.gbapal"); +static const u32 sPokeballGlow_Gfx[] = INCBIN_U32("graphics/misc/pokeball_glow.4bpp"); +static const u16 sFieldEffectObjectPalette4[16] = INCBIN_U16("graphics/field_effects/palettes/04.gbapal"); +static const u32 sPokecenterMonitor0_Gfx[] = INCBIN_U32("graphics/misc/pokecenter_monitor/0.4bpp"); +static const u32 sPokecenterMonitor1_Gfx[] = INCBIN_U32("graphics/misc/pokecenter_monitor/1.4bpp"); +static const u32 sHofMonitorBig_Gfx[] = INCBIN_U32("graphics/misc/hof_monitor_big.4bpp"); +static const u8 sHofMonitorSmall_Gfx[] = INCBIN_U8("graphics/misc/hof_monitor_small.4bpp"); +static const u16 sFieldEffectObjectPalette5[16] = INCBIN_U16("graphics/field_effects/palettes/05.gbapal"); // Graphics for the lights streaking past your Pokemon when it uses a field move. -const u32 gFieldMoveStreaksTiles[] = INCBIN_U32("graphics/misc/field_move_streaks.4bpp"); -const u16 gFieldMoveStreaksPalette[16] = INCBIN_U16("graphics/misc/field_move_streaks.gbapal"); -const u16 gFieldMoveStreaksTilemap[] = INCBIN_U16("graphics/misc/field_move_streaks_map.bin"); +static const u32 sFieldMoveStreaksOutdoors_Gfx[] = INCBIN_U32("graphics/misc/field_move_streaks.4bpp"); +static const u16 sFieldMoveStreaksOutdoors_Pal[16] = INCBIN_U16("graphics/misc/field_move_streaks.gbapal"); +static const u16 sFieldMoveStreaksOutdoors_Tilemap[320] = INCBIN_U16("graphics/misc/field_move_streaks_map.bin"); -// The following light streaks effect is used when the map is dark (e.g. a cave). -const u32 gDarknessFieldMoveStreaksTiles[] = INCBIN_U32("graphics/misc/darkness_field_move_streaks.4bpp"); -const u16 gDarknessFieldMoveStreaksPalette[16] = INCBIN_U16("graphics/misc/darkness_field_move_streaks.gbapal"); -const u16 gDarknessFieldMoveStreaksTilemap[] = INCBIN_U16("graphics/misc/darkness_field_move_streaks_map.bin"); +// The following light streaks effect is used when the map is indoors +static const u32 sFieldMoveStreaksIndoors_Gfx[] = INCBIN_U32("graphics/misc/darkness_field_move_streaks.4bpp"); +static const u16 sFieldMoveStreaksIndoors_Pal[16] = INCBIN_U16("graphics/misc/darkness_field_move_streaks.gbapal"); +static const u16 sFieldMoveStreaksIndoors_Tilemap[320] = INCBIN_U16("graphics/misc/darkness_field_move_streaks_map.bin"); -const u16 gUnknown_0855B610[16] = INCBIN_U16("graphics/misc/spotlight.gbapal"); -const u8 gUnknown_0855B630[] = INCBIN_U8("graphics/misc/spotlight.4bpp"); -const u8 gUnknown_0855C170[] = INCBIN_U8("graphics/unknown/unknown_55C170.4bpp"); -const u8 gUnknown_0855C190[] = INCBIN_U8("graphics/unknown/unknown_55C190.4bpp"); -const u8 gUnknown_0855C1B0[] = INCBIN_U8("graphics/unknown/unknown_55C1B0.4bpp"); -const u8 gUnknown_0855C1D0[] = INCBIN_U8("graphics/unknown/unknown_55C1D0.4bpp"); +static const u16 sSpotlight_Pal[16] = INCBIN_U16("graphics/misc/spotlight.gbapal"); +static const u8 sSpotlight_Gfx[] = INCBIN_U8("graphics/misc/spotlight.4bpp"); +static const u8 sRockFragment_TopLeft[] = INCBIN_U8("graphics/misc/deoxys_rock_fragment_top_left.4bpp"); +static const u8 sRockFragment_TopRight[] = INCBIN_U8("graphics/misc/deoxys_rock_fragment_top_right.4bpp"); +static const u8 sRockFragment_BottomLeft[] = INCBIN_U8("graphics/misc/deoxys_rock_fragment_bottom_left.4bpp"); +static const u8 sRockFragment_BottomRight[] = INCBIN_U8("graphics/misc/deoxys_rock_fragment_bottom_right.4bpp"); bool8 (*const gFieldEffectScriptFuncs[])(u8 **, u32 *) = { @@ -285,7 +282,7 @@ bool8 (*const gFieldEffectScriptFuncs[])(u8 **, u32 *) = FieldEffectCmd_loadfadedpal_callnative, }; -const struct OamData gNewGameBirchOamAttributes = +static const struct OamData sOam_64x64 = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -299,7 +296,7 @@ const struct OamData gNewGameBirchOamAttributes = .paletteNum = 0, }; -const struct OamData gOamData_855C218 = +static const struct OamData sOam_8x8 = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -313,7 +310,7 @@ const struct OamData gOamData_855C218 = .paletteNum = 0, }; -const struct OamData gOamData_855C220 = +static const struct OamData sOam_16x16 = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -327,52 +324,52 @@ const struct OamData gOamData_855C220 = .paletteNum = 0, }; -const struct SpriteFrameImage gNewGameBirchPicTable[] = +static const struct SpriteFrameImage sPicTable_NewGameBirch[] = { - obj_frame_tiles(gNewGameBirchPic) + obj_frame_tiles(sNewGameBirch_Gfx) }; -const struct SpritePalette gNewGameBirchObjectPaletteInfo = +static const struct SpritePalette sSpritePalette_NewGameBirch = { - .data = gNewGameBirchPalette, - .tag = 0x1006 + .data = sNewGameBirch_Pal, + .tag = FLDEFF_PAL_TAG_6 }; -const union AnimCmd gNewGameBirchImageAnim[] = +static const union AnimCmd sAnim_NewGameBirch[] = { ANIMCMD_FRAME(.imageValue = 0, .duration = 1), ANIMCMD_END }; -const union AnimCmd *const gNewGameBirchImageAnimTable[] = +static const union AnimCmd *const sAnimTable_NewGameBirch[] = { - gNewGameBirchImageAnim + sAnim_NewGameBirch }; -const struct SpriteTemplate gNewGameBirchObjectTemplate = +static const struct SpriteTemplate sSpriteTemplate_NewGameBirch = { .tileTag = 0xFFFF, - .paletteTag = 4102, - .oam = &gNewGameBirchOamAttributes, - .anims = gNewGameBirchImageAnimTable, - .images = gNewGameBirchPicTable, + .paletteTag = FLDEFF_PAL_TAG_6, + .oam = &sOam_64x64, + .anims = sAnimTable_NewGameBirch, + .images = sPicTable_NewGameBirch, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; const struct SpritePalette gFieldEffectObjectPaletteInfo4 = { - .data = gFieldEffectObjectPalette4, - .tag = 0x1007 + .data = sFieldEffectObjectPalette4, + .tag = FLDEFF_PAL_TAG_7 }; const struct SpritePalette gFieldEffectObjectPaletteInfo5 = { - .data = gFieldEffectObjectPalette5, - .tag = 0x1010 + .data = sFieldEffectObjectPalette5, + .tag = FLDEFF_PAL_TAG_16 }; -const struct OamData gOamData_855C26C = +static const struct OamData sOam_32x16 = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -386,28 +383,28 @@ const struct OamData gOamData_855C26C = .paletteNum = 0, }; -const struct SpriteFrameImage gSpriteImageTable_855C274[] = +static const struct SpriteFrameImage sPicTable_PokeballGlow[] = { - obj_frame_tiles(gSpriteImage_855A970) + obj_frame_tiles(sPokeballGlow_Gfx) }; -const struct SpriteFrameImage gSpriteImageTable_855C27C[] = +static const struct SpriteFrameImage sPicTable_PokecenterMonitor[] = { - obj_frame_tiles(gSpriteImage_855A9B0), - obj_frame_tiles(gSpriteImage_855AA70) + obj_frame_tiles(sPokecenterMonitor0_Gfx), + obj_frame_tiles(sPokecenterMonitor1_Gfx) }; -const struct SpriteFrameImage gSpriteImageTable_855C28C[] = +static const struct SpriteFrameImage sPicTable_HofMonitorBig[] = { - obj_frame_tiles(gSpriteImage_855AB30) + obj_frame_tiles(sHofMonitorBig_Gfx) }; -const struct SpriteFrameImage gSpriteImageTable_855C294[] = +static const struct SpriteFrameImage sPicTable_HofMonitorSmall[] = { - {.data = gSpriteImage_855AD30, .size = 0x200} // the macro breaks down here + {.data = sHofMonitorSmall_Gfx, .size = 0x200} // the macro breaks down here }; -const struct Subsprite gSubspriteTable_855C29C[] = +static const struct Subsprite sSubsprites_PokecenterMonitor[] = { { .x = -12, @@ -443,9 +440,9 @@ const struct Subsprite gSubspriteTable_855C29C[] = } }; -const struct SubspriteTable gUnknown_0855C2AC = subsprite_table(gSubspriteTable_855C29C); +static const struct SubspriteTable sSubspriteTable_PokecenterMonitor = subsprite_table(sSubsprites_PokecenterMonitor); -const struct Subsprite gSubspriteTable_855C2B4[] = +static const struct Subsprite sSubsprites_HofMonitorBig[] = { { .x = -32, @@ -481,7 +478,7 @@ const struct Subsprite gSubspriteTable_855C2B4[] = } }; -const struct SubspriteTable gUnknown_0855C2C4 = subsprite_table(gSubspriteTable_855C2B4); +static const struct SubspriteTable sSubspriteTable_HofMonitorBig = subsprite_table(sSubsprites_HofMonitorBig); const union AnimCmd gSpriteAnim_855C2CC[] = { @@ -508,84 +505,84 @@ const union AnimCmd *const gSpriteAnimTable_855C2F8[] = gSpriteAnim_855C2D4 }; -const union AnimCmd *const gSpriteAnimTable_855C300[] = +static const union AnimCmd *const sAnimTable_HofMonitor[] = { gSpriteAnim_855C2CC }; -const struct SpriteTemplate gSpriteTemplate_855C304 = +static const struct SpriteTemplate sSpriteTemplate_PokeballGlow = { .tileTag = 0xFFFF, - .paletteTag = 4103, - .oam = &gOamData_855C218, + .paletteTag = FLDEFF_PAL_TAG_7, + .oam = &sOam_8x8, .anims = gSpriteAnimTable_855C2F8, - .images = gSpriteImageTable_855C274, + .images = sPicTable_PokeballGlow, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCB_PokeballGlow }; -const struct SpriteTemplate gSpriteTemplate_855C31C = +static const struct SpriteTemplate sSpriteTemplate_PokecenterMonitor = { .tileTag = 0xFFFF, - .paletteTag = 4100, - .oam = &gOamData_855C220, + .paletteTag = FLDEFF_PAL_TAG_4, + .oam = &sOam_16x16, .anims = gSpriteAnimTable_855C2F8, - .images = gSpriteImageTable_855C27C, + .images = sPicTable_PokecenterMonitor, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCB_PokecenterMonitor }; -const struct SpriteTemplate gSpriteTemplate_855C334 = +static const struct SpriteTemplate sSpriteTemplate_HofMonitorBig = { .tileTag = 0xFFFF, - .paletteTag = 4112, - .oam = &gOamData_855C220, - .anims = gSpriteAnimTable_855C300, - .images = gSpriteImageTable_855C28C, + .paletteTag = FLDEFF_PAL_TAG_16, + .oam = &sOam_16x16, + .anims = sAnimTable_HofMonitor, + .images = sPicTable_HofMonitorBig, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCB_HallOfFameMonitor }; -const struct SpriteTemplate gSpriteTemplate_855C34C = +static const struct SpriteTemplate sSpriteTemplate_HofMonitorSmall = { .tileTag = 0xFFFF, - .paletteTag = 4112, - .oam = &gOamData_855C26C, - .anims = gSpriteAnimTable_855C300, - .images = gSpriteImageTable_855C294, + .paletteTag = FLDEFF_PAL_TAG_16, + .oam = &sOam_32x16, + .anims = sAnimTable_HofMonitor, + .images = sPicTable_HofMonitorSmall, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCB_HallOfFameMonitor }; void (*const sPokecenterHealEffectFuncs[])(struct Task *) = { - PokecenterHealEffect_0, - PokecenterHealEffect_1, - PokecenterHealEffect_2, - PokecenterHealEffect_3 + PokecenterHealEffect_Init, + PokecenterHealEffect_WaitForBallPlacement, + PokecenterHealEffect_WaitForBallFlashing, + PokecenterHealEffect_WaitForSoundAndEnd }; void (*const sHallOfFameRecordEffectFuncs[])(struct Task *) = { - HallOfFameRecordEffect_0, - HallOfFameRecordEffect_1, - HallOfFameRecordEffect_2, - HallOfFameRecordEffect_3 + HallOfFameRecordEffect_Init, + HallOfFameRecordEffect_WaitForBallPlacement, + HallOfFameRecordEffect_WaitForBallFlashing, + HallOfFameRecordEffect_WaitForSoundAndEnd }; void (*const sPokeballGlowEffectFuncs[])(struct Sprite *) = { - PokeballGlowEffect_0, - PokeballGlowEffect_1, - PokeballGlowEffect_2, - PokeballGlowEffect_3, - PokeballGlowEffect_4, - PokeballGlowEffect_5, - PokeballGlowEffect_6, - PokeballGlowEffect_7 + PokeballGlowEffect_PlaceBalls, + PokeballGlowEffect_TryPlaySe, + PokeballGlowEffect_Flash1, + PokeballGlowEffect_Flash2, + PokeballGlowEffect_WaitAfterFlash, + PokeballGlowEffect_Dummy, + PokeballGlowEffect_WaitForSound, + PokeballGlowEffect_Idle }; -const struct Coords16 gUnknown_0855C3A4[] = +static const struct Coords16 sPokeballCoordOffsets[PARTY_SIZE] = { {.x = 0, .y = 0}, {.x = 6, .y = 0}, @@ -595,93 +592,91 @@ const struct Coords16 gUnknown_0855C3A4[] = {.x = 6, .y = 8} }; -const u8 gUnknown_0855C3BC[] = {16, 12, 8, 0}; -const u8 gUnknown_0855C3C0[] = {16, 12, 8, 0}; -const u8 gUnknown_0855C3C4[] = { 0, 0, 0, 0}; +static const u8 sPokeballGlowReds[] = {16, 12, 8, 0}; +static const u8 sPokeballGlowGreens[] = {16, 12, 8, 0}; +static const u8 sPokeballGlowBlues[] = { 0, 0, 0, 0}; bool8 (*const sFallWarpFieldEffectFuncs[])(struct Task *) = { - FallWarpEffect_0, - FallWarpEffect_1, - FallWarpEffect_2, - FallWarpEffect_3, - FallWarpEffect_4, - FallWarpEffect_5, - FallWarpEffect_6, + FallWarpEffect_Init, + FallWarpEffect_WaitWeather, + FallWarpEffect_StartFall, + FallWarpEffect_Fall, + FallWarpEffect_Land, + FallWarpEffect_CameraShake, + FallWarpEffect_End, }; bool8 (*const sEscalatorWarpOutFieldEffectFuncs[])(struct Task *) = { - EscalatorWarpOutEffect_0, - EscalatorWarpOutEffect_1, - EscalatorWarpOutEffect_2, - EscalatorWarpOutEffect_3, - EscalatorWarpOutEffect_4, - EscalatorWarpOutEffect_5, + EscalatorWarpOut_Init, + EscalatorWarpOut_WaitForPlayer, + EscalatorWarpOut_Up_Ride, + EscalatorWarpOut_Up_End, + EscalatorWarpOut_Down_Ride, + EscalatorWarpOut_Down_End, }; bool8 (*const sEscalatorWarpInFieldEffectFuncs[])(struct Task *) = { - EscalatorWarpInEffect_0, - EscalatorWarpInEffect_1, - EscalatorWarpInEffect_2, - EscalatorWarpInEffect_3, - EscalatorWarpInEffect_4, - EscalatorWarpInEffect_5, - EscalatorWarpInEffect_6, + EscalatorWarpIn_Init, + EscalatorWarpIn_Down_Init, + EscalatorWarpIn_Down_Ride, + EscalatorWarpIn_Up_Init, + EscalatorWarpIn_Up_Ride, + EscalatorWarpIn_WaitForMovement, + EscalatorWarpIn_End, }; bool8 (*const sWaterfallFieldEffectFuncs[])(struct Task *, struct ObjectEvent *) = { - WaterfallFieldEffect_0, - WaterfallFieldEffect_1, - WaterfallFieldEffect_2, - WaterfallFieldEffect_3, - WaterfallFieldEffect_4, + WaterfallFieldEffect_Init, + WaterfallFieldEffect_ShowMon, + WaterfallFieldEffect_WaitForShowMon, + WaterfallFieldEffect_RideUp, + WaterfallFieldEffect_ContinueRideOrEnd, }; bool8 (*const sDiveFieldEffectFuncs[])(struct Task *) = { - DiveFieldEffect_0, - DiveFieldEffect_1, - DiveFieldEffect_2, + DiveFieldEffect_Init, + DiveFieldEffect_ShowMon, + DiveFieldEffect_TryWarp, }; bool8 (*const sLavaridgeGymB1FWarpEffectFuncs[])(struct Task *, struct ObjectEvent *, struct Sprite *) = { - LavaridgeGymB1FWarpEffect_0, - LavaridgeGymB1FWarpEffect_1, - LavaridgeGymB1FWarpEffect_2, - LavaridgeGymB1FWarpEffect_3, - LavaridgeGymB1FWarpEffect_4, - LavaridgeGymB1FWarpEffect_5, + LavaridgeGymB1FWarpEffect_Init, + LavaridgeGymB1FWarpEffect_CameraShake, + LavaridgeGymB1FWarpEffect_Launch, + LavaridgeGymB1FWarpEffect_Rise, + LavaridgeGymB1FWarpEffect_FadeOut, + LavaridgeGymB1FWarpEffect_Warp, }; bool8 (*const sLavaridgeGymB1FWarpExitEffectFuncs[])(struct Task *, struct ObjectEvent *, struct Sprite *) = { - LavaridgeGymB1FWarpExitEffect_0, - LavaridgeGymB1FWarpExitEffect_1, - LavaridgeGymB1FWarpExitEffect_2, - LavaridgeGymB1FWarpExitEffect_3, + LavaridgeGymB1FWarpExitEffect_Init, + LavaridgeGymB1FWarpExitEffect_StartPopOut, + LavaridgeGymB1FWarpExitEffect_PopOut, + LavaridgeGymB1FWarpExitEffect_End, }; bool8 (*const sLavaridgeGym1FWarpEffectFuncs[])(struct Task *, struct ObjectEvent *, struct Sprite *) = { - LavaridgeGym1FWarpEffect_0, - LavaridgeGym1FWarpEffect_1, - LavaridgeGym1FWarpEffect_2, - LavaridgeGym1FWarpEffect_3, - LavaridgeGym1FWarpEffect_4, + LavaridgeGym1FWarpEffect_Init, + LavaridgeGym1FWarpEffect_AshPuff, + LavaridgeGym1FWarpEffect_Disappear, + LavaridgeGym1FWarpEffect_FadeOut, + LavaridgeGym1FWarpEffect_Warp, }; -void (*const sEscapeRopeWarpOutFieldEffectFuncs[])(struct Task *) = +void (*const sEscapeRopeWarpOutEffectFuncs[])(struct Task *) = { - EscapeRopeWarpOutFieldEffect_0, - EscapeRopeWarpOutFieldEffect_1, + EscapeRopeWarpOutEffect_Init, + EscapeRopeWarpOutEffect_Spin, }; -// .text - u32 FieldEffectStart(u8 id) { u8 *script; @@ -885,7 +880,7 @@ u8 CreateTrainerSprite(u8 trainerSpriteID, s16 x, s16 y, u8 subpriority, u8 *buf LoadCompressedSpriteSheetOverrideBuffer(&gTrainerFrontPicTable[trainerSpriteID], buffer); spriteTemplate.tileTag = gTrainerFrontPicTable[trainerSpriteID].tag; spriteTemplate.paletteTag = gTrainerFrontPicPaletteTable[trainerSpriteID].tag; - spriteTemplate.oam = &gNewGameBirchOamAttributes; + spriteTemplate.oam = &sOam_64x64; spriteTemplate.anims = gDummySpriteAnimTable; spriteTemplate.images = NULL; spriteTemplate.affineAnims = gDummySpriteAffineAnimTable; @@ -901,8 +896,8 @@ void LoadTrainerGfx_TrainerCard(u8 gender, u16 palOffset, u8 *dest) u8 AddNewGameBirchObject(s16 x, s16 y, u8 subpriority) { - LoadSpritePalette(&gNewGameBirchObjectPaletteInfo); - return CreateSprite(&gNewGameBirchObjectTemplate, x, y, subpriority); + LoadSpritePalette(&sSpritePalette_NewGameBirch); + return CreateSprite(&sSpriteTemplate_NewGameBirch, x, y, subpriority); } u8 CreateMonSprite_PicBox(u16 species, s16 x, s16 y, u8 subpriority) @@ -915,10 +910,10 @@ u8 CreateMonSprite_PicBox(u16 species, s16 x, s16 y, u8 subpriority) return spriteId; } -u8 CreateMonSprite_FieldMove(u16 species, u32 d, u32 g, s16 x, s16 y, u8 subpriority) +u8 CreateMonSprite_FieldMove(u16 species, u32 otId, u32 personality, s16 x, s16 y, u8 subpriority) { - const struct CompressedSpritePalette *spritePalette = GetMonSpritePalStructFromOtIdPersonality(species, d, g); - u16 spriteId = CreateMonPicSprite_HandleDeoxys(species, d, g, 1, x, y, 0, spritePalette->tag); + const struct CompressedSpritePalette *spritePalette = GetMonSpritePalStructFromOtIdPersonality(species, otId, personality); + u16 spriteId = CreateMonPicSprite_HandleDeoxys(species, otId, personality, 1, x, y, 0, spritePalette->tag); PreservePaletteInWeather(IndexOfSpritePaletteTag(spritePalette->tag) + 0x10); if (spriteId == 0xFFFF) return MAX_SPRITES; @@ -978,6 +973,28 @@ void MultiplyPaletteRGBComponents(u16 i, u8 r, u8 g, u8 b) gPlttBufferFaded[i] = outPal; } +// Task data for Task_PokecenterHeal and Task_HallOfFameRecord +#define tState data[0] +#define tNumMons data[1] +#define tFirstBallX data[2] +#define tFirstBallY data[3] +#define tMonitorX data[4] +#define tMonitorY data[5] +#define tBallSpriteId data[6] +#define tMonitorSpriteId data[7] +#define tStartHofFlash data[15] + +// Sprite data for SpriteCB_PokeballGlowEffect +#define sState data[0] +#define sTimer data[1] +#define sCounter data[2] +#define sPlayHealSe data[5] +#define sNumMons data[6] +#define sSpriteId data[7] + +// Sprite data for SpriteCB_PokeballGlow +#define sEffectSpriteId data[0] + bool8 FldEff_PokecenterHeal(void) { u8 nPokemon; @@ -985,11 +1002,11 @@ bool8 FldEff_PokecenterHeal(void) nPokemon = CalculatePlayerPartyCount(); task = &gTasks[CreateTask(Task_PokecenterHeal, 0xff)]; - task->data[1] = nPokemon; - task->data[2] = 0x5d; - task->data[3] = 0x24; - task->data[4] = 0x7c; - task->data[5] = 0x18; + task->tNumMons = nPokemon; + task->tFirstBallX = 93; + task->tFirstBallY = 36; + task->tMonitorX = 124; + task->tMonitorY = 24; return FALSE; } @@ -997,38 +1014,38 @@ static void Task_PokecenterHeal(u8 taskId) { struct Task *task; task = &gTasks[taskId]; - sPokecenterHealEffectFuncs[task->data[0]](task); + sPokecenterHealEffectFuncs[task->tState](task); } -static void PokecenterHealEffect_0(struct Task *task) +static void PokecenterHealEffect_Init(struct Task *task) { - task->data[0]++; - task->data[6] = CreatePokeballGlowSprite(task->data[1], task->data[2], task->data[3], 1); - task->data[7] = PokecenterHealEffectHelper(task->data[4], task->data[5]); + task->tState++; + task->tBallSpriteId = CreateGlowingPokeballsEffect(task->tNumMons, task->tFirstBallX, task->tFirstBallY, TRUE); + task->tMonitorSpriteId = CreatePokecenterMonitorSprite(task->tMonitorX, task->tMonitorY); } -static void PokecenterHealEffect_1(struct Task *task) +static void PokecenterHealEffect_WaitForBallPlacement(struct Task *task) { - if (gSprites[task->data[6]].data[0] > 1) + if (gSprites[task->tBallSpriteId].sState > 1) { - gSprites[task->data[7]].data[0]++; - task->data[0]++; + gSprites[task->tMonitorSpriteId].sState++; + task->tState++; } } -static void PokecenterHealEffect_2(struct Task *task) +static void PokecenterHealEffect_WaitForBallFlashing(struct Task *task) { - if (gSprites[task->data[6]].data[0] > 4) + if (gSprites[task->tBallSpriteId].sState > 4) { - task->data[0]++; + task->tState++; } } -static void PokecenterHealEffect_3(struct Task *task) +static void PokecenterHealEffect_WaitForSoundAndEnd(struct Task *task) { - if (gSprites[task->data[6]].data[0] > 6) + if (gSprites[task->tBallSpriteId].sState > 6) { - DestroySprite(&gSprites[task->data[6]]); + DestroySprite(&gSprites[task->tBallSpriteId]); FieldEffectActiveListRemove(FLDEFF_POKECENTER_HEAL); DestroyTask(FindTaskIdByFunc(Task_PokecenterHeal)); } @@ -1041,9 +1058,9 @@ bool8 FldEff_HallOfFameRecord(void) nPokemon = CalculatePlayerPartyCount(); task = &gTasks[CreateTask(Task_HallOfFameRecord, 0xff)]; - task->data[1] = nPokemon; - task->data[2] = 0x75; - task->data[3] = 0x34; + task->tNumMons = nPokemon; + task->tFirstBallX = 117; + task->tFirstBallY = 52; return FALSE; } @@ -1051,51 +1068,50 @@ static void Task_HallOfFameRecord(u8 taskId) { struct Task *task; task = &gTasks[taskId]; - sHallOfFameRecordEffectFuncs[task->data[0]](task); + sHallOfFameRecordEffectFuncs[task->tState](task); } -static void HallOfFameRecordEffect_0(struct Task *task) +static void HallOfFameRecordEffect_Init(struct Task *task) { u8 taskId; - task->data[0]++; - task->data[6] = CreatePokeballGlowSprite(task->data[1], task->data[2], task->data[3], 0); + task->tState++; + task->tBallSpriteId = CreateGlowingPokeballsEffect(task->tNumMons, task->tFirstBallX, task->tFirstBallY, FALSE); taskId = FindTaskIdByFunc(Task_HallOfFameRecord); - HallOfFameRecordEffectHelper(taskId, 0x78, 0x18, 0); - HallOfFameRecordEffectHelper(taskId, 0x28, 0x08, 1); - HallOfFameRecordEffectHelper(taskId, 0x48, 0x08, 1); - HallOfFameRecordEffectHelper(taskId, 0xa8, 0x08, 1); - HallOfFameRecordEffectHelper(taskId, 0xc8, 0x08, 1); + CreateHofMonitorSprite(taskId, 120, 24, FALSE); + CreateHofMonitorSprite(taskId, 40, 8, TRUE); + CreateHofMonitorSprite(taskId, 72, 8, TRUE); + CreateHofMonitorSprite(taskId, 168, 8, TRUE); + CreateHofMonitorSprite(taskId, 200, 8, TRUE); } -static void HallOfFameRecordEffect_1(struct Task *task) +static void HallOfFameRecordEffect_WaitForBallPlacement(struct Task *task) { - if (gSprites[task->data[6]].data[0] > 1) + if (gSprites[task->tBallSpriteId].sState > 1) { - task->data[15]++; // was this ever initialized? is this ever used? - task->data[0]++; + task->tStartHofFlash++; + task->tState++; } } -static void HallOfFameRecordEffect_2(struct Task *task) +static void HallOfFameRecordEffect_WaitForBallFlashing(struct Task *task) { - if (gSprites[task->data[6]].data[0] > 4) + if (gSprites[task->tBallSpriteId].sState > 4) { - task->data[0]++; + task->tState++; } } -static void HallOfFameRecordEffect_3(struct Task *task) +static void HallOfFameRecordEffect_WaitForSoundAndEnd(struct Task *task) { - if (gSprites[task->data[6]].data[0] > 6) + if (gSprites[task->tBallSpriteId].sState > 6) { - DestroySprite(&gSprites[task->data[6]]); + DestroySprite(&gSprites[task->tBallSpriteId]); FieldEffectActiveListRemove(FLDEFF_HALL_OF_FAME_RECORD); DestroyTask(FindTaskIdByFunc(Task_HallOfFameRecord)); } } - -static u8 CreatePokeballGlowSprite(s16 data6, s16 x, s16 y, u16 data5) +static u8 CreateGlowingPokeballsEffect(s16 numMons, s16 x, s16 y, bool16 playHealSe) { u8 spriteId; struct Sprite *sprite; @@ -1103,150 +1119,150 @@ static u8 CreatePokeballGlowSprite(s16 data6, s16 x, s16 y, u16 data5) sprite = &gSprites[spriteId]; sprite->pos2.x = x; sprite->pos2.y = y; - sprite->data[5] = data5; - sprite->data[6] = data6; - sprite->data[7] = spriteId; + sprite->sPlayHealSe = playHealSe; + sprite->sNumMons = numMons; + sprite->sSpriteId = spriteId; return spriteId; } static void SpriteCB_PokeballGlowEffect(struct Sprite *sprite) { - sPokeballGlowEffectFuncs[sprite->data[0]](sprite); + sPokeballGlowEffectFuncs[sprite->sState](sprite); } -static void PokeballGlowEffect_0(struct Sprite *sprite) +static void PokeballGlowEffect_PlaceBalls(struct Sprite *sprite) { - u8 endSpriteId; - if (sprite->data[1] == 0 || (--sprite->data[1]) == 0) + u8 spriteId; + if (sprite->sTimer == 0 || (--sprite->sTimer) == 0) { - sprite->data[1] = 25; - endSpriteId = CreateSpriteAtEnd(&gSpriteTemplate_855C304, gUnknown_0855C3A4[sprite->data[2]].x + sprite->pos2.x, gUnknown_0855C3A4[sprite->data[2]].y + sprite->pos2.y, 0); - gSprites[endSpriteId].oam.priority = 2; - gSprites[endSpriteId].data[0] = sprite->data[7]; - sprite->data[2]++; - sprite->data[6]--; + sprite->sTimer = 25; + spriteId = CreateSpriteAtEnd(&sSpriteTemplate_PokeballGlow, sPokeballCoordOffsets[sprite->sCounter].x + sprite->pos2.x, sPokeballCoordOffsets[sprite->sCounter].y + sprite->pos2.y, 0); + gSprites[spriteId].oam.priority = 2; + gSprites[spriteId].sEffectSpriteId = sprite->sSpriteId; + sprite->sCounter++; + sprite->sNumMons--; PlaySE(SE_BOWA); } - if (sprite->data[6] == 0) + if (sprite->sNumMons == 0) { - sprite->data[1] = 32; - sprite->data[0]++; + sprite->sTimer = 32; + sprite->sState++; } } -static void PokeballGlowEffect_1(struct Sprite *sprite) +static void PokeballGlowEffect_TryPlaySe(struct Sprite *sprite) { - if ((--sprite->data[1]) == 0) + if ((--sprite->sTimer) == 0) { - sprite->data[0]++; - sprite->data[1] = 8; - sprite->data[2] = 0; + sprite->sState++; + sprite->sTimer = 8; + sprite->sCounter = 0; sprite->data[3] = 0; - if (sprite->data[5]) + if (sprite->sPlayHealSe) { PlayFanfare(MUS_ME_ASA); } } } -static void PokeballGlowEffect_2(struct Sprite *sprite) +static void PokeballGlowEffect_Flash1(struct Sprite *sprite) { u8 phase; - if ((--sprite->data[1]) == 0) + if ((--sprite->sTimer) == 0) { - sprite->data[1] = 8; - sprite->data[2]++; - sprite->data[2] &= 3; - if (sprite->data[2] == 0) - { + sprite->sTimer = 8; + sprite->sCounter++; + sprite->sCounter &= 3; + + if (sprite->sCounter == 0) sprite->data[3]++; - } } - phase = (sprite->data[2] + 3) & 3; - MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(0x1007) << 4) + 0x108, gUnknown_0855C3BC[phase], gUnknown_0855C3C0[phase], gUnknown_0855C3C4[phase]); - phase = (sprite->data[2] + 2) & 3; - MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(0x1007) << 4) + 0x106, gUnknown_0855C3BC[phase], gUnknown_0855C3C0[phase], gUnknown_0855C3C4[phase]); - phase = (sprite->data[2] + 1) & 3; - MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(0x1007) << 4) + 0x102, gUnknown_0855C3BC[phase], gUnknown_0855C3C0[phase], gUnknown_0855C3C4[phase]); - phase = sprite->data[2]; - MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(0x1007) << 4) + 0x105, gUnknown_0855C3BC[phase], gUnknown_0855C3C0[phase], gUnknown_0855C3C4[phase]); - MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(0x1007) << 4) + 0x103, gUnknown_0855C3BC[phase], gUnknown_0855C3C0[phase], gUnknown_0855C3C4[phase]); + phase = (sprite->sCounter + 3) & 3; + MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(FLDEFF_PAL_TAG_7) << 4) + 0x108, sPokeballGlowReds[phase], sPokeballGlowGreens[phase], sPokeballGlowBlues[phase]); + phase = (sprite->sCounter + 2) & 3; + MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(FLDEFF_PAL_TAG_7) << 4) + 0x106, sPokeballGlowReds[phase], sPokeballGlowGreens[phase], sPokeballGlowBlues[phase]); + phase = (sprite->sCounter + 1) & 3; + MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(FLDEFF_PAL_TAG_7) << 4) + 0x102, sPokeballGlowReds[phase], sPokeballGlowGreens[phase], sPokeballGlowBlues[phase]); + phase = sprite->sCounter; + MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(FLDEFF_PAL_TAG_7) << 4) + 0x105, sPokeballGlowReds[phase], sPokeballGlowGreens[phase], sPokeballGlowBlues[phase]); + MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(FLDEFF_PAL_TAG_7) << 4) + 0x103, sPokeballGlowReds[phase], sPokeballGlowGreens[phase], sPokeballGlowBlues[phase]); if (sprite->data[3] > 2) { - sprite->data[0]++; - sprite->data[1] = 8; - sprite->data[2] = 0; + sprite->sState++; + sprite->sTimer = 8; + sprite->sCounter = 0; } } -static void PokeballGlowEffect_3(struct Sprite *sprite) +static void PokeballGlowEffect_Flash2(struct Sprite *sprite) { u8 phase; - if ((--sprite->data[1]) == 0) + if ((--sprite->sTimer) == 0) { - sprite->data[1] = 8; - sprite->data[2]++; - sprite->data[2] &= 3; - if (sprite->data[2] == 3) + sprite->sTimer = 8; + sprite->sCounter++; + sprite->sCounter &= 3; + if (sprite->sCounter == 3) { - sprite->data[0]++; - sprite->data[1] = 30; + sprite->sState++; + sprite->sTimer = 30; } } - phase = sprite->data[2]; - MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(0x1007) << 4) + 0x108, gUnknown_0855C3BC[phase], gUnknown_0855C3C0[phase], gUnknown_0855C3C4[phase]); - MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(0x1007) << 4) + 0x106, gUnknown_0855C3BC[phase], gUnknown_0855C3C0[phase], gUnknown_0855C3C4[phase]); - MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(0x1007) << 4) + 0x102, gUnknown_0855C3BC[phase], gUnknown_0855C3C0[phase], gUnknown_0855C3C4[phase]); - MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(0x1007) << 4) + 0x105, gUnknown_0855C3BC[phase], gUnknown_0855C3C0[phase], gUnknown_0855C3C4[phase]); - MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(0x1007) << 4) + 0x103, gUnknown_0855C3BC[phase], gUnknown_0855C3C0[phase], gUnknown_0855C3C4[phase]); + phase = sprite->sCounter; + MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(FLDEFF_PAL_TAG_7) << 4) + 0x108, sPokeballGlowReds[phase], sPokeballGlowGreens[phase], sPokeballGlowBlues[phase]); + MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(FLDEFF_PAL_TAG_7) << 4) + 0x106, sPokeballGlowReds[phase], sPokeballGlowGreens[phase], sPokeballGlowBlues[phase]); + MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(FLDEFF_PAL_TAG_7) << 4) + 0x102, sPokeballGlowReds[phase], sPokeballGlowGreens[phase], sPokeballGlowBlues[phase]); + MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(FLDEFF_PAL_TAG_7) << 4) + 0x105, sPokeballGlowReds[phase], sPokeballGlowGreens[phase], sPokeballGlowBlues[phase]); + MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(FLDEFF_PAL_TAG_7) << 4) + 0x103, sPokeballGlowReds[phase], sPokeballGlowGreens[phase], sPokeballGlowBlues[phase]); } -static void PokeballGlowEffect_4(struct Sprite *sprite) +static void PokeballGlowEffect_WaitAfterFlash(struct Sprite *sprite) { - if ((--sprite->data[1]) == 0) + if ((--sprite->sTimer) == 0) { - sprite->data[0]++; + sprite->sState++; } } -static void PokeballGlowEffect_5(struct Sprite *sprite) +static void PokeballGlowEffect_Dummy(struct Sprite *sprite) { - sprite->data[0]++; + sprite->sState++; } -static void PokeballGlowEffect_6(struct Sprite *sprite) +static void PokeballGlowEffect_WaitForSound(struct Sprite *sprite) { - if (sprite->data[5] == 0 || IsFanfareTaskInactive()) + if (sprite->sPlayHealSe == FALSE || IsFanfareTaskInactive()) { - sprite->data[0]++; + sprite->sState++; } } -static void PokeballGlowEffect_7(struct Sprite *sprite) +static void PokeballGlowEffect_Idle(struct Sprite *sprite) { + // Idle until destroyed } -void SpriteCB_PokeballGlow(struct Sprite *sprite) +static void SpriteCB_PokeballGlow(struct Sprite *sprite) { - if (gSprites[sprite->data[0]].data[0] > 4) + if (gSprites[sprite->sEffectSpriteId].sState > 4) { FieldEffectFreeGraphicsResources(sprite); } } -static u8 PokecenterHealEffectHelper(s16 x, s16 y) +static u8 CreatePokecenterMonitorSprite(s16 x, s16 y) { - u8 spriteIdAtEnd; + u8 spriteId; struct Sprite *sprite; - spriteIdAtEnd = CreateSpriteAtEnd(&gSpriteTemplate_855C31C, x, y, 0); - sprite = &gSprites[spriteIdAtEnd]; + spriteId = CreateSpriteAtEnd(&sSpriteTemplate_PokecenterMonitor, x, y, 0); + sprite = &gSprites[spriteId]; sprite->oam.priority = 2; sprite->invisible = TRUE; - SetSubspriteTables(sprite, &gUnknown_0855C2AC); - return spriteIdAtEnd; + SetSubspriteTables(sprite, &sSubspriteTable_PokecenterMonitor); + return spriteId; } -void SpriteCB_PokecenterMonitor(struct Sprite *sprite) +static void SpriteCB_PokecenterMonitor(struct Sprite *sprite) { if (sprite->data[0] != 0) { @@ -1260,24 +1276,24 @@ void SpriteCB_PokecenterMonitor(struct Sprite *sprite) } } -static void HallOfFameRecordEffectHelper(s16 a0, s16 a1, s16 a2, u8 a3) +static void CreateHofMonitorSprite(s16 taskId, s16 x, s16 y, bool8 isSmallMonitor) { - u8 spriteIdAtEnd; - if (!a3) + u8 spriteId; + if (!isSmallMonitor) { - spriteIdAtEnd = CreateSpriteAtEnd(&gSpriteTemplate_855C334, a1, a2, 0); - SetSubspriteTables(&gSprites[spriteIdAtEnd], &gUnknown_0855C2C4); + spriteId = CreateSpriteAtEnd(&sSpriteTemplate_HofMonitorBig, x, y, 0); + SetSubspriteTables(&gSprites[spriteId], &sSubspriteTable_HofMonitorBig); } else { - spriteIdAtEnd = CreateSpriteAtEnd(&gSpriteTemplate_855C34C, a1, a2, 0); + spriteId = CreateSpriteAtEnd(&sSpriteTemplate_HofMonitorSmall, x, y, 0); } - gSprites[spriteIdAtEnd].invisible = TRUE; - gSprites[spriteIdAtEnd].data[0] = a0; + gSprites[spriteId].invisible = TRUE; + gSprites[spriteId].data[0] = taskId; } -void SpriteCB_HallOfFameMonitor(struct Sprite *sprite) +static void SpriteCB_HallOfFameMonitor(struct Sprite *sprite) { - if (gTasks[sprite->data[0]].data[15]) + if (gTasks[sprite->data[0]].tStartHofFlash) { if (sprite->data[1] == 0 || (--sprite->data[1]) == 0) { @@ -1292,6 +1308,22 @@ void SpriteCB_HallOfFameMonitor(struct Sprite *sprite) } } +#undef tState +#undef tNumMons +#undef tFirstBallX +#undef tFirstBallY +#undef tMonitorX +#undef tMonitorY +#undef tBallSpriteId +#undef tMonitorSpriteId +#undef tStartHofFlash +#undef sState +#undef sTimer +#undef sCounter +#undef sPlayHealSe +#undef sNumMons +#undef sSpriteId +#undef sEffectSpriteId void ReturnToFieldFromFlyMapSelect(void) { @@ -1315,14 +1347,12 @@ static void Task_UseFly(u8 taskId) if (!task->data[0]) { if (!IsWeatherNotFadingIn()) - { return; - } + gFieldEffectArguments[0] = GetCursorSelectionMonId(); if ((int)gFieldEffectArguments[0] > PARTY_SIZE - 1) - { gFieldEffectArguments[0] = 0; - } + FieldEffectStart(FLDEFF_USE_FLY); task->data[0]++; } @@ -1372,6 +1402,15 @@ static void Task_FlyIntoMap(u8 taskId) } } +#define tState data[0] +#define tFallOffset data[1] +#define tTotalFall data[2] +#define tSetTrigger data[3] +#define tSubsprMode data[4] + +#define tVertShake data[1] // re-used +#define tNumShakes data[2] + void FieldCB_FallWarpExit(void) { Overworld_PlaySpecialMapMusic(); @@ -1386,10 +1425,10 @@ static void Task_FallWarpFieldEffect(u8 taskId) { struct Task *task; task = &gTasks[taskId]; - while (sFallWarpFieldEffectFuncs[task->data[0]](task)); // return code signifies whether to continue blocking here + while (sFallWarpFieldEffectFuncs[task->tState](task)); } -static bool8 FallWarpEffect_0(struct Task *task) +static bool8 FallWarpEffect_Init(struct Task *task) { struct ObjectEvent *playerObject; struct Sprite *playerSprite; @@ -1399,59 +1438,57 @@ static bool8 FallWarpEffect_0(struct Task *task) gObjectEvents[gPlayerAvatar.objectEventId].invisible = TRUE; gPlayerAvatar.preventStep = TRUE; ObjectEventSetHeldMovement(playerObject, GetFaceDirectionMovementAction(GetPlayerFacingDirection())); - task->data[4] = playerSprite->subspriteMode; + task->tSubsprMode = playerSprite->subspriteMode; playerObject->fixedPriority = 1; playerSprite->oam.priority = 1; playerSprite->subspriteMode = SUBSPRITES_IGNORE_PRIORITY; - task->data[0]++; + task->tState++; return TRUE; } -static bool8 FallWarpEffect_1(struct Task *task) +static bool8 FallWarpEffect_WaitWeather(struct Task *task) { if (IsWeatherNotFadingIn()) - { - task->data[0]++; - } + task->tState++; + return FALSE; } -static bool8 FallWarpEffect_2(struct Task *task) +static bool8 FallWarpEffect_StartFall(struct Task *task) { struct Sprite *sprite; s16 centerToCornerVecY; sprite = &gSprites[gPlayerAvatar.spriteId]; centerToCornerVecY = -(sprite->centerToCornerVecY << 1); sprite->pos2.y = -(sprite->pos1.y + sprite->centerToCornerVecY + gSpriteCoordOffsetY + centerToCornerVecY); - task->data[1] = 1; - task->data[2] = 0; + task->tFallOffset = 1; + task->tTotalFall = 0; gObjectEvents[gPlayerAvatar.objectEventId].invisible = FALSE; PlaySE(SE_RU_HYUU); - task->data[0]++; + task->tState++; return FALSE; } -static bool8 FallWarpEffect_3(struct Task *task) +static bool8 FallWarpEffect_Fall(struct Task *task) { struct ObjectEvent *objectEvent; struct Sprite *sprite; objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; sprite = &gSprites[gPlayerAvatar.spriteId]; - sprite->pos2.y += task->data[1]; - if (task->data[1] < 8) + sprite->pos2.y += task->tFallOffset; + if (task->tFallOffset < 8) { - task->data[2] += task->data[1]; - if (task->data[2] & 0xf) - { - task->data[1] <<= 1; - } + task->tTotalFall += task->tFallOffset; + + if (task->tTotalFall & 0xf) + task->tFallOffset <<= 1; } - if (task->data[3] == 0 && sprite->pos2.y >= -16) + if (task->tSetTrigger == FALSE && sprite->pos2.y >= -16) { - task->data[3]++; + task->tSetTrigger++; objectEvent->fixedPriority = 0; - sprite->subspriteMode = task->data[4]; + sprite->subspriteMode = task->tSubsprMode; objectEvent->triggerGroundEffectsOnMove = 1; } if (sprite->pos2.y >= 0) @@ -1460,37 +1497,36 @@ static bool8 FallWarpEffect_3(struct Task *task) objectEvent->triggerGroundEffectsOnStop = 1; objectEvent->landingJump = 1; sprite->pos2.y = 0; - task->data[0]++; + task->tState++; } return FALSE; } -static bool8 FallWarpEffect_4(struct Task *task) +static bool8 FallWarpEffect_Land(struct Task *task) { - task->data[0]++; - task->data[1] = 4; - task->data[2] = 0; + task->tState++; + task->tVertShake = 4; + task->tNumShakes = 0; SetCameraPanningCallback(NULL); return TRUE; } -static bool8 FallWarpEffect_5(struct Task *task) +static bool8 FallWarpEffect_CameraShake(struct Task *task) { - SetCameraPanning(0, task->data[1]); - task->data[1] = -task->data[1]; - task->data[2]++; - if ((task->data[2] & 3) == 0) - { - task->data[1] >>= 1; - } - if (task->data[1] == 0) - { - task->data[0]++; - } + SetCameraPanning(0, task->tVertShake); + task->tVertShake = -task->tVertShake; + task->tNumShakes++; + + if ((task->tNumShakes & 3) == 0) + task->tVertShake >>= 1; + + if (task->tVertShake == 0) + task->tState++; + return FALSE; } -static bool8 FallWarpEffect_6(struct Task *task) +static bool8 FallWarpEffect_End(struct Task *task) { gPlayerAvatar.preventStep = FALSE; ScriptContext2_Disable(); @@ -1501,14 +1537,25 @@ static bool8 FallWarpEffect_6(struct Task *task) return FALSE; } +#undef tState +#undef tFallOffset +#undef tTotalFall +#undef tSetTrigger +#undef tSubsprMode +#undef tVertShake +#undef tNumShakes + +#define tState data[0] +#define tGoingUp data[1] + void StartEscalatorWarp(u8 metatileBehavior, u8 priority) { u8 taskId; taskId = CreateTask(Task_EscalatorWarpOut, priority); - gTasks[taskId].data[1] = FALSE; + gTasks[taskId].tGoingUp = FALSE; if (metatileBehavior == MB_UP_ESCALATOR) { - gTasks[taskId].data[1] = TRUE; + gTasks[taskId].tGoingUp = TRUE; } } @@ -1516,74 +1563,74 @@ static void Task_EscalatorWarpOut(u8 taskId) { struct Task *task; task = &gTasks[taskId]; - while (sEscalatorWarpOutFieldEffectFuncs[task->data[0]](task)); + while (sEscalatorWarpOutFieldEffectFuncs[task->tState](task)); } -static bool8 EscalatorWarpOutEffect_0(struct Task *task) +static bool8 EscalatorWarpOut_Init(struct Task *task) { FreezeObjectEvents(); CameraObjectReset2(); - StartEscalator(task->data[1]); - task->data[0]++; + StartEscalator(task->tGoingUp); + task->tState++; return FALSE; } -static bool8 EscalatorWarpOutEffect_1(struct Task *task) +static bool8 EscalatorWarpOut_WaitForPlayer(struct Task *task) { struct ObjectEvent *objectEvent; objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; if (!ObjectEventIsMovementOverridden(objectEvent) || ObjectEventClearHeldMovementIfFinished(objectEvent)) { ObjectEventSetHeldMovement(objectEvent, GetFaceDirectionMovementAction(GetPlayerFacingDirection())); - task->data[0]++; + task->tState++; task->data[2] = 0; task->data[3] = 0; - if ((u8)task->data[1] == 0) + if ((u8)task->tGoingUp == FALSE) { - task->data[0] = 4; + task->tState = 4; // jump to EscalatorWarpOut_Down_Ride } PlaySE(SE_ESUKA); } return FALSE; } -static bool8 EscalatorWarpOutEffect_2(struct Task *task) +static bool8 EscalatorWarpOut_Up_Ride(struct Task *task) { - sub_80B6FB8(task); + RideUpEscalatorOut(task); if (task->data[2] > 3) { - sub_80B7050(); - task->data[0]++; + FadeOutAtEndOfEscalator(); + task->tState++; } return FALSE; } -static bool8 EscalatorWarpOutEffect_3(struct Task *task) +static bool8 EscalatorWarpOut_Up_End(struct Task *task) { - sub_80B6FB8(task); - sub_80B7060(); + RideUpEscalatorOut(task); + WarpAtEndOfEscalator(); return FALSE; } -static bool8 EscalatorWarpOutEffect_4(struct Task *task) +static bool8 EscalatorWarpOut_Down_Ride(struct Task *task) { - sub_80B7004(task); + RideDownEscalatorOut(task); if (task->data[2] > 3) { - sub_80B7050(); - task->data[0]++; + FadeOutAtEndOfEscalator(); + task->tState++; } return FALSE; } -static bool8 EscalatorWarpOutEffect_5(struct Task *task) +static bool8 EscalatorWarpOut_Down_End(struct Task *task) { - sub_80B7004(task); - sub_80B7060(); + RideDownEscalatorOut(task); + WarpAtEndOfEscalator(); return FALSE; } -static void sub_80B6FB8(struct Task *task) +static void RideUpEscalatorOut(struct Task *task) { struct Sprite *sprite; sprite = &gSprites[gPlayerAvatar.spriteId]; @@ -1596,7 +1643,7 @@ static void sub_80B6FB8(struct Task *task) } } -static void sub_80B7004(struct Task *task) +static void RideDownEscalatorOut(struct Task *task) { struct Sprite *sprite; sprite = &gSprites[gPlayerAvatar.spriteId]; @@ -1609,13 +1656,13 @@ static void sub_80B7004(struct Task *task) } } -static void sub_80B7050(void) +static void FadeOutAtEndOfEscalator(void) { TryFadeOutOldMapMusic(); WarpFadeOutScreen(); } -static void sub_80B7060(void) +static void WarpAtEndOfEscalator(void) { if (!gPaletteFade.active && BGMusicStopped() == TRUE) { @@ -1627,6 +1674,9 @@ static void sub_80B7060(void) } } +#undef tState +#undef tGoingUp + static void FieldCallback_EscalatorWarpIn(void) { Overworld_PlaySpecialMapMusic(); @@ -1636,14 +1686,16 @@ static void FieldCallback_EscalatorWarpIn(void) gFieldCallback = NULL; } +#define tState data[0] + static void Task_EscalatorWarpIn(u8 taskId) { struct Task *task; task = &gTasks[taskId]; - while (sEscalatorWarpInFieldEffectFuncs[task->data[0]](task)); + while (sEscalatorWarpInFieldEffectFuncs[task->tState](task)); } -static bool8 EscalatorWarpInEffect_0(struct Task *task) +static bool8 EscalatorWarpIn_Init(struct Task *task) { struct ObjectEvent *objectEvent; s16 x; @@ -1654,31 +1706,35 @@ static bool8 EscalatorWarpInEffect_0(struct Task *task) ObjectEventSetHeldMovement(objectEvent, GetFaceDirectionMovementAction(DIR_EAST)); PlayerGetDestCoords(&x, &y); behavior = MapGridGetMetatileBehaviorAt(x, y); - task->data[0]++; + task->tState++; task->data[1] = 16; + if (behavior == MB_DOWN_ESCALATOR) { + // If dest is down escalator tile, player is riding up behavior = TRUE; - task->data[0] = 3; - } else // MB_UP_ESCALATOR + task->tState = 3; // jump to EscalatorWarpIn_Up_Init + } + else // MB_UP_ESCALATOR { + // If dest is up escalator tile, player is riding down behavior = FALSE; } StartEscalator(behavior); return TRUE; } -static bool8 EscalatorWarpInEffect_1(struct Task *task) +static bool8 EscalatorWarpIn_Down_Init(struct Task *task) { struct Sprite *sprite; sprite = &gSprites[gPlayerAvatar.spriteId]; sprite->pos2.x = Cos(0x84, task->data[1]); sprite->pos2.y = Sin(0x94, task->data[1]); - task->data[0]++; + task->tState++; return FALSE; } -static bool8 EscalatorWarpInEffect_2(struct Task *task) +static bool8 EscalatorWarpIn_Down_Ride(struct Task *task) { struct Sprite *sprite; sprite = &gSprites[gPlayerAvatar.spriteId]; @@ -1693,22 +1749,22 @@ static bool8 EscalatorWarpInEffect_2(struct Task *task) { sprite->pos2.x = 0; sprite->pos2.y = 0; - task->data[0] = 5; + task->tState = 5; } return FALSE; } -static bool8 EscalatorWarpInEffect_3(struct Task *task) +static bool8 EscalatorWarpIn_Up_Init(struct Task *task) { struct Sprite *sprite; sprite = &gSprites[gPlayerAvatar.spriteId]; sprite->pos2.x = Cos(0x7c, task->data[1]); sprite->pos2.y = Sin(0x76, task->data[1]); - task->data[0]++; + task->tState++; return FALSE; } -static bool8 EscalatorWarpInEffect_4(struct Task *task) +static bool8 EscalatorWarpIn_Up_Ride(struct Task *task) { struct Sprite *sprite; sprite = &gSprites[gPlayerAvatar.spriteId]; @@ -1723,23 +1779,23 @@ static bool8 EscalatorWarpInEffect_4(struct Task *task) { sprite->pos2.x = 0; sprite->pos2.y = 0; - task->data[0]++; + task->tState++; } return FALSE; } -static bool8 EscalatorWarpInEffect_5(struct Task *task) +static bool8 EscalatorWarpIn_WaitForMovement(struct Task *task) { if (IsEscalatorMoving()) { return FALSE; } StopEscalator(); - task->data[0]++; + task->tState++; return TRUE; } -static bool8 EscalatorWarpInEffect_6(struct Task *task) +static bool8 EscalatorWarpIn_End(struct Task *task) { struct ObjectEvent *objectEvent; objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; @@ -1753,70 +1809,75 @@ static bool8 EscalatorWarpInEffect_6(struct Task *task) return FALSE; } +#undef tState + +#define tState data[0] +#define tMonId data[1] + bool8 FldEff_UseWaterfall(void) { u8 taskId; taskId = CreateTask(Task_UseWaterfall, 0xff); - gTasks[taskId].data[1] = gFieldEffectArguments[0]; + gTasks[taskId].tMonId = gFieldEffectArguments[0]; Task_UseWaterfall(taskId); return FALSE; } static void Task_UseWaterfall(u8 taskId) { - while (sWaterfallFieldEffectFuncs[gTasks[taskId].data[0]](&gTasks[taskId], &gObjectEvents[gPlayerAvatar.objectEventId])); + while (sWaterfallFieldEffectFuncs[gTasks[taskId].tState](&gTasks[taskId], &gObjectEvents[gPlayerAvatar.objectEventId])); } -static bool8 WaterfallFieldEffect_0(struct Task *task, struct ObjectEvent *objectEvent) +static bool8 WaterfallFieldEffect_Init(struct Task *task, struct ObjectEvent *objectEvent) { ScriptContext2_Enable(); gPlayerAvatar.preventStep = TRUE; - task->data[0]++; + task->tState++; return FALSE; } -static bool8 WaterfallFieldEffect_1(struct Task *task, struct ObjectEvent *objectEvent) +static bool8 WaterfallFieldEffect_ShowMon(struct Task *task, struct ObjectEvent *objectEvent) { ScriptContext2_Enable(); if (!ObjectEventIsMovementOverridden(objectEvent)) { ObjectEventClearHeldMovementIfFinished(objectEvent); - gFieldEffectArguments[0] = task->data[1]; + gFieldEffectArguments[0] = task->tMonId; FieldEffectStart(FLDEFF_FIELD_MOVE_SHOW_MON_INIT); - task->data[0]++; + task->tState++; } return FALSE; } -static bool8 WaterfallFieldEffect_2(struct Task *task, struct ObjectEvent *objectEvent) +static bool8 WaterfallFieldEffect_WaitForShowMon(struct Task *task, struct ObjectEvent *objectEvent) { if (FieldEffectActiveListContains(FLDEFF_FIELD_MOVE_SHOW_MON)) { return FALSE; } - task->data[0]++; + task->tState++; return TRUE; } -static bool8 WaterfallFieldEffect_3(struct Task *task, struct ObjectEvent *objectEvent) +static bool8 WaterfallFieldEffect_RideUp(struct Task *task, struct ObjectEvent *objectEvent) { ObjectEventSetHeldMovement(objectEvent, GetWalkSlowMovementAction(DIR_NORTH)); - task->data[0]++; + task->tState++; return FALSE; } -static bool8 WaterfallFieldEffect_4(struct Task *task, struct ObjectEvent *objectEvent) +static bool8 WaterfallFieldEffect_ContinueRideOrEnd(struct Task *task, struct ObjectEvent *objectEvent) { if (!ObjectEventClearHeldMovementIfFinished(objectEvent)) - { return FALSE; - } + if (MetatileBehavior_IsWaterfall(objectEvent->currentMetatileBehavior)) { - // Still ascending waterfall - task->data[0] = 3; + // Still ascending waterfall, back to WaterfallFieldEffect_RideUp + task->tState = 3; return TRUE; } + ScriptContext2_Disable(); gPlayerAvatar.preventStep = FALSE; DestroyTask(FindTaskIdByFunc(Task_UseWaterfall)); @@ -1824,6 +1885,9 @@ static bool8 WaterfallFieldEffect_4(struct Task *task, struct ObjectEvent *objec return FALSE; } +#undef tState +#undef tMonId + bool8 FldEff_UseDive(void) { u8 taskId; @@ -1839,14 +1903,14 @@ void Task_UseDive(u8 taskId) while (sDiveFieldEffectFuncs[gTasks[taskId].data[0]](&gTasks[taskId])); } -static bool8 DiveFieldEffect_0(struct Task *task) +static bool8 DiveFieldEffect_Init(struct Task *task) { gPlayerAvatar.preventStep = TRUE; task->data[0]++; return FALSE; } -static bool8 DiveFieldEffect_1(struct Task *task) +static bool8 DiveFieldEffect_ShowMon(struct Task *task) { ScriptContext2_Enable(); gFieldEffectArguments[0] = task->data[15]; @@ -1855,10 +1919,12 @@ static bool8 DiveFieldEffect_1(struct Task *task) return FALSE; } -static bool8 DiveFieldEffect_2(struct Task *task) +static bool8 DiveFieldEffect_TryWarp(struct Task *task) { struct MapPosition mapPosition; PlayerGetDestCoords(&mapPosition.x, &mapPosition.y); + + // Wait for show mon first if (!FieldEffectActiveListContains(FLDEFF_FIELD_MOVE_SHOW_MON)) { TryDoDiveWarp(&mapPosition, gObjectEvents[gPlayerAvatar.objectEventId].currentMetatileBehavior); @@ -1878,7 +1944,7 @@ static void Task_LavaridgeGymB1FWarp(u8 taskId) while (sLavaridgeGymB1FWarpEffectFuncs[gTasks[taskId].data[0]](&gTasks[taskId], &gObjectEvents[gPlayerAvatar.objectEventId], &gSprites[gPlayerAvatar.spriteId])); } -static bool8 LavaridgeGymB1FWarpEffect_0(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 LavaridgeGymB1FWarpEffect_Init(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) { FreezeObjectEvents(); CameraObjectReset2(); @@ -1890,7 +1956,7 @@ static bool8 LavaridgeGymB1FWarpEffect_0(struct Task *task, struct ObjectEvent * return TRUE; } -static bool8 LavaridgeGymB1FWarpEffect_1(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 LavaridgeGymB1FWarpEffect_CameraShake(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) { SetCameraPanning(0, task->data[1]); task->data[1] = -task->data[1]; @@ -1903,7 +1969,7 @@ static bool8 LavaridgeGymB1FWarpEffect_1(struct Task *task, struct ObjectEvent * return FALSE; } -static bool8 LavaridgeGymB1FWarpEffect_2(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 LavaridgeGymB1FWarpEffect_Launch(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) { sprite->pos2.y = 0; task->data[3] = 1; @@ -1911,13 +1977,13 @@ static bool8 LavaridgeGymB1FWarpEffect_2(struct Task *task, struct ObjectEvent * gFieldEffectArguments[1] = objectEvent->currentCoords.y; gFieldEffectArguments[2] = sprite->subpriority - 1; gFieldEffectArguments[3] = sprite->oam.priority; - FieldEffectStart(FLDEFF_LAVARIDGE_GYM_WARP); + FieldEffectStart(FLDEFF_ASH_LAUNCH); PlaySE(SE_W153); task->data[0]++; return TRUE; } -static bool8 LavaridgeGymB1FWarpEffect_3(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 LavaridgeGymB1FWarpEffect_Rise(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) { s16 centerToCornerVecY; SetCameraPanning(0, task->data[1]); @@ -1960,7 +2026,7 @@ static bool8 LavaridgeGymB1FWarpEffect_3(struct Task *task, struct ObjectEvent * return FALSE; } -static bool8 LavaridgeGymB1FWarpEffect_4(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 LavaridgeGymB1FWarpEffect_FadeOut(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) { TryFadeOutOldMapMusic(); WarpFadeOutScreen(); @@ -1968,7 +2034,7 @@ static bool8 LavaridgeGymB1FWarpEffect_4(struct Task *task, struct ObjectEvent * return FALSE; } -static bool8 LavaridgeGymB1FWarpEffect_5(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 LavaridgeGymB1FWarpEffect_Warp(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (!gPaletteFade.active && BGMusicStopped() == TRUE) { @@ -1994,7 +2060,7 @@ static void Task_LavaridgeGymB1FWarpExit(u8 taskId) while (sLavaridgeGymB1FWarpExitEffectFuncs[gTasks[taskId].data[0]](&gTasks[taskId], &gObjectEvents[gPlayerAvatar.objectEventId], &gSprites[gPlayerAvatar.spriteId])); } -static bool8 LavaridgeGymB1FWarpExitEffect_0(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 LavaridgeGymB1FWarpExitEffect_Init(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) { CameraObjectReset2(); FreezeObjectEvents(); @@ -2004,7 +2070,7 @@ static bool8 LavaridgeGymB1FWarpExitEffect_0(struct Task *task, struct ObjectEve return FALSE; } -static bool8 LavaridgeGymB1FWarpExitEffect_1(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 LavaridgeGymB1FWarpExitEffect_StartPopOut(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (IsWeatherNotFadingIn()) { @@ -2012,13 +2078,13 @@ static bool8 LavaridgeGymB1FWarpExitEffect_1(struct Task *task, struct ObjectEve gFieldEffectArguments[1] = objectEvent->currentCoords.y; gFieldEffectArguments[2] = sprite->subpriority - 1; gFieldEffectArguments[3] = sprite->oam.priority; - task->data[1] = FieldEffectStart(FLDEFF_POP_OUT_OF_ASH); + task->data[1] = FieldEffectStart(FLDEFF_ASH_PUFF); task->data[0]++; } return FALSE; } -static bool8 LavaridgeGymB1FWarpExitEffect_2(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 LavaridgeGymB1FWarpExitEffect_PopOut(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) { sprite = &gSprites[task->data[1]]; if (sprite->animCmdIndex > 1) @@ -2032,7 +2098,7 @@ static bool8 LavaridgeGymB1FWarpExitEffect_2(struct Task *task, struct ObjectEve return FALSE; } -static bool8 LavaridgeGymB1FWarpExitEffect_3(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 LavaridgeGymB1FWarpExitEffect_End(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (ObjectEventClearHeldMovementIfFinished(objectEvent)) { @@ -2044,23 +2110,21 @@ static bool8 LavaridgeGymB1FWarpExitEffect_3(struct Task *task, struct ObjectEve return FALSE; } -// For the ash puff effect when warping off the B1F ash tiles -u8 FldEff_LavaridgeGymWarp(void) +// For the ash effect when jumping off the Lavaridge Gym B1F warp tiles +u8 FldEff_AshLaunch(void) { u8 spriteId; sub_80930E0((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8); - spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_LAVARIDGE_GYM_WARP], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); + spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_ASH_LAUNCH], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); gSprites[spriteId].oam.priority = gFieldEffectArguments[3]; gSprites[spriteId].coordOffsetEnabled = TRUE; return spriteId; } -void SpriteCB_LavaridgeGymWarp(struct Sprite *sprite) +void SpriteCB_AshLaunch(struct Sprite *sprite) { if (sprite->animEnded) - { - FieldEffectStop(sprite, FLDEFF_LAVARIDGE_GYM_WARP); - } + FieldEffectStop(sprite, FLDEFF_ASH_LAUNCH); } void StartLavaridgeGym1FWarp(u8 priority) @@ -2073,7 +2137,7 @@ static void Task_LavaridgeGym1FWarp(u8 taskId) while(sLavaridgeGym1FWarpEffectFuncs[gTasks[taskId].data[0]](&gTasks[taskId], &gObjectEvents[gPlayerAvatar.objectEventId], &gSprites[gPlayerAvatar.spriteId])); } -static bool8 LavaridgeGym1FWarpEffect_0(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 LavaridgeGym1FWarpEffect_Init(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) { FreezeObjectEvents(); CameraObjectReset2(); @@ -2083,7 +2147,7 @@ static bool8 LavaridgeGym1FWarpEffect_0(struct Task *task, struct ObjectEvent *o return FALSE; } -static bool8 LavaridgeGym1FWarpEffect_1(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 LavaridgeGym1FWarpEffect_AshPuff(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (ObjectEventClearHeldMovementIfFinished(objectEvent)) { @@ -2093,7 +2157,7 @@ static bool8 LavaridgeGym1FWarpEffect_1(struct Task *task, struct ObjectEvent *o gFieldEffectArguments[1] = objectEvent->currentCoords.y; gFieldEffectArguments[2] = sprite->subpriority - 1; gFieldEffectArguments[3] = sprite->oam.priority; - task->data[1] = FieldEffectStart(FLDEFF_POP_OUT_OF_ASH); + task->data[1] = FieldEffectStart(FLDEFF_ASH_PUFF); task->data[0]++; } else { @@ -2105,7 +2169,7 @@ static bool8 LavaridgeGym1FWarpEffect_1(struct Task *task, struct ObjectEvent *o return FALSE; } -static bool8 LavaridgeGym1FWarpEffect_2(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 LavaridgeGym1FWarpEffect_Disappear(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (gSprites[task->data[1]].animCmdIndex == 2) { @@ -2115,9 +2179,9 @@ static bool8 LavaridgeGym1FWarpEffect_2(struct Task *task, struct ObjectEvent *o return FALSE; } -static bool8 LavaridgeGym1FWarpEffect_3(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 LavaridgeGym1FWarpEffect_FadeOut(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (!FieldEffectActiveListContains(FLDEFF_POP_OUT_OF_ASH)) + if (!FieldEffectActiveListContains(FLDEFF_ASH_PUFF)) { TryFadeOutOldMapMusic(); WarpFadeOutScreen(); @@ -2126,7 +2190,7 @@ static bool8 LavaridgeGym1FWarpEffect_3(struct Task *task, struct ObjectEvent *o return FALSE; } -static bool8 LavaridgeGym1FWarpEffect_4(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 LavaridgeGym1FWarpEffect_Warp(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (!gPaletteFade.active && BGMusicStopped() == TRUE) { @@ -2138,24 +2202,29 @@ static bool8 LavaridgeGym1FWarpEffect_4(struct Task *task, struct ObjectEvent *o return FALSE; } -u8 FldEff_PopOutOfAsh(void) +// For the ash effect when a trainer pops out of ash, or when the player enters/exits a warp in Lavaridge Gym 1F +u8 FldEff_AshPuff(void) { u8 spriteId; sub_80930E0((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8); - spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_JUMP_OUT_OF_ASH], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); + spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_ASH_PUFF], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); gSprites[spriteId].oam.priority = gFieldEffectArguments[3]; gSprites[spriteId].coordOffsetEnabled = TRUE; return spriteId; } -void SpriteCB_PopOutOfAsh(struct Sprite *sprite) +void SpriteCB_AshPuff(struct Sprite *sprite) { if (sprite->animEnded) - { - FieldEffectStop(sprite, FLDEFF_POP_OUT_OF_ASH); - } + FieldEffectStop(sprite, FLDEFF_ASH_PUFF); } +#define tState data[0] +#define tSpinDelay data[1] +#define tNumTurns data[2] +#define tTimer data[14] +#define tStartDir data[15] + void StartEscapeRopeFieldEffect(void) { ScriptContext2_Enable(); @@ -2165,21 +2234,21 @@ void StartEscapeRopeFieldEffect(void) static void Task_EscapeRopeWarpOut(u8 taskId) { - sEscapeRopeWarpOutFieldEffectFuncs[gTasks[taskId].data[0]](&gTasks[taskId]); + sEscapeRopeWarpOutEffectFuncs[gTasks[taskId].tState](&gTasks[taskId]); } -static void EscapeRopeWarpOutFieldEffect_0(struct Task *task) +static void EscapeRopeWarpOutEffect_Init(struct Task *task) { - task->data[0]++; - task->data[14] = 64; - task->data[15] = GetPlayerFacingDirection(); + task->tState++; + task->tTimer = 64; + task->tStartDir = GetPlayerFacingDirection(); } -static void EscapeRopeWarpOutFieldEffect_1(struct Task *task) +static void EscapeRopeWarpOutEffect_Spin(struct Task *task) { struct ObjectEvent *objectEvent; u8 spinDirections[5] = {DIR_SOUTH, DIR_WEST, DIR_EAST, DIR_NORTH, DIR_SOUTH}; - if (task->data[14] != 0 && (--task->data[14]) == 0) + if (task->tTimer != 0 && (--task->tTimer) == 0) { TryFadeOutOldMapMusic(); WarpFadeOutScreen(); @@ -2187,29 +2256,28 @@ static void EscapeRopeWarpOutFieldEffect_1(struct Task *task) objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; if (!ObjectEventIsMovementOverridden(objectEvent) || ObjectEventClearHeldMovementIfFinished(objectEvent)) { - if (task->data[14] == 0 && !gPaletteFade.active && BGMusicStopped() == TRUE) + if (task->tTimer == 0 && !gPaletteFade.active && BGMusicStopped() == TRUE) { - SetObjectEventDirection(objectEvent, task->data[15]); + SetObjectEventDirection(objectEvent, task->tStartDir); SetWarpDestinationToEscapeWarp(); WarpIntoMap(); gFieldCallback = FieldCallback_EscapeRopeWarpIn; SetMainCallback2(CB2_LoadMap); DestroyTask(FindTaskIdByFunc(Task_EscapeRopeWarpOut)); - } else if (task->data[1] == 0 || (--task->data[1]) == 0) + } + else if (task->tSpinDelay == 0 || (--task->tSpinDelay) == 0) { ObjectEventSetHeldMovement(objectEvent, GetFaceDirectionMovementAction(spinDirections[objectEvent->facingDirection])); - if (task->data[2] < 12) - { - task->data[2]++; - } - task->data[1] = 8 >> (task->data[2] >> 2); + if (task->tNumTurns < 12) + task->tNumTurns++; + task->tSpinDelay = 8 >> (task->tNumTurns >> 2); } } } -void (*const sEscapeRopeWarpInFieldEffectFuncs[])(struct Task *) = { - EscapeRopeWarpInFieldEffect_0, - EscapeRopeWarpInFieldEffect_1 +void (*const sEscapeRopeWarpInEffectFuncs[])(struct Task *) = { + EscapeRopeWarpInEffect_Init, + EscapeRopeWarpInEffect_Spin }; static void FieldCallback_EscapeRopeWarpIn(void) @@ -2225,29 +2293,29 @@ static void FieldCallback_EscapeRopeWarpIn(void) static void Task_EscapeRopeWarpIn(u8 taskId) { - sEscapeRopeWarpInFieldEffectFuncs[gTasks[taskId].data[0]](&gTasks[taskId]); + sEscapeRopeWarpInEffectFuncs[gTasks[taskId].tState](&gTasks[taskId]); } -static void EscapeRopeWarpInFieldEffect_0(struct Task *task) +static void EscapeRopeWarpInEffect_Init(struct Task *task) { if (IsWeatherNotFadingIn()) { - task->data[0]++; - task->data[15] = GetPlayerFacingDirection(); + task->tState++; + task->tStartDir = GetPlayerFacingDirection(); } } -static void EscapeRopeWarpInFieldEffect_1(struct Task *task) +static void EscapeRopeWarpInEffect_Spin(struct Task *task) { u8 spinDirections[5] = {DIR_SOUTH, DIR_WEST, DIR_EAST, DIR_NORTH, DIR_SOUTH}; struct ObjectEvent *objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; - if (task->data[1] == 0 || (--task->data[1]) == 0) + if (task->tSpinDelay == 0 || (--task->tSpinDelay) == 0) { if (ObjectEventIsMovementOverridden(objectEvent) && !ObjectEventClearHeldMovementIfFinished(objectEvent)) { return; } - if (task->data[2] >= 32 && task->data[15] == GetPlayerFacingDirection()) + if (task->tNumTurns >= 32 && task->tStartDir == GetPlayerFacingDirection()) { objectEvent->invisible = FALSE; ScriptContext2_Disable(); @@ -2256,42 +2324,48 @@ static void EscapeRopeWarpInFieldEffect_1(struct Task *task) return; } ObjectEventSetHeldMovement(objectEvent, GetFaceDirectionMovementAction(spinDirections[objectEvent->facingDirection])); - if (task->data[2] < 32) - { - task->data[2]++; - } - task->data[1] = task->data[2] >> 2; + if (task->tNumTurns < 32) + task->tNumTurns++; + task->tSpinDelay = task->tNumTurns >> 2; } objectEvent->invisible ^= 1; } +#undef tState +#undef tSpinDelay +#undef tNumTurns +#undef tTimer +#undef tStartDir + +#define tState data[0] + void FldEff_TeleportWarpOut(void) { CreateTask(Task_TeleportWarpOut, 0); } static void (*const sTeleportWarpOutFieldEffectFuncs[])(struct Task *) = { - TeleportWarpOutFieldEffect_0, - TeleportWarpOutFieldEffect_1, - TeleportWarpOutFieldEffect_2, - TeleportWarpOutFieldEffect_3 + TeleportWarpOutFieldEffect_Init, + TeleportWarpOutFieldEffect_SpinGround, + TeleportWarpOutFieldEffect_SpinExit, + TeleportWarpOutFieldEffect_End }; static void Task_TeleportWarpOut(u8 taskId) { - sTeleportWarpOutFieldEffectFuncs[gTasks[taskId].data[0]](&gTasks[taskId]); + sTeleportWarpOutFieldEffectFuncs[gTasks[taskId].tState](&gTasks[taskId]); } -static void TeleportWarpOutFieldEffect_0(struct Task *task) +static void TeleportWarpOutFieldEffect_Init(struct Task *task) { ScriptContext2_Enable(); FreezeObjectEvents(); CameraObjectReset2(); task->data[15] = GetPlayerFacingDirection(); - task->data[0]++; + task->tState++; } -static void TeleportWarpOutFieldEffect_1(struct Task *task) +static void TeleportWarpOutFieldEffect_SpinGround(struct Task *task) { u8 spinDirections[5] = {DIR_SOUTH, DIR_WEST, DIR_EAST, DIR_NORTH, DIR_SOUTH}; struct ObjectEvent *objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; @@ -2303,7 +2377,7 @@ static void TeleportWarpOutFieldEffect_1(struct Task *task) } if (task->data[2] > 7 && task->data[15] == objectEvent->facingDirection) { - task->data[0]++; + task->tState++; task->data[1] = 4; task->data[2] = 8; task->data[3] = 1; @@ -2311,7 +2385,7 @@ static void TeleportWarpOutFieldEffect_1(struct Task *task) } } -static void TeleportWarpOutFieldEffect_2(struct Task *task) +static void TeleportWarpOutFieldEffect_SpinExit(struct Task *task) { u8 spinDirections[5] = {DIR_SOUTH, DIR_WEST, DIR_EAST, DIR_NORTH, DIR_SOUTH}; struct ObjectEvent *objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; @@ -2333,13 +2407,13 @@ static void TeleportWarpOutFieldEffect_2(struct Task *task) } if (task->data[4] >= 0xa8) { - task->data[0]++; + task->tState++; TryFadeOutOldMapMusic(); WarpFadeOutScreen(); } } -static void TeleportWarpOutFieldEffect_3(struct Task *task) +static void TeleportWarpOutFieldEffect_End(struct Task *task) { if (!gPaletteFade.active) { @@ -2373,9 +2447,9 @@ static void FieldCallback_TeleportWarpIn(void) } void (*const sTeleportWarpInFieldEffectFuncs[])(struct Task *) = { - TeleportWarpInFieldEffect_0, - TeleportWarpInFieldEffect_1, - TeleportWarpInFieldEffect_2 + TeleportWarpInFieldEffect_Init, + TeleportWarpInFieldEffect_SpinEnter, + TeleportWarpInFieldEffect_SpinGround }; static void Task_TeleportWarpIn(u8 taskId) @@ -2383,7 +2457,7 @@ static void Task_TeleportWarpIn(u8 taskId) sTeleportWarpInFieldEffectFuncs[gTasks[taskId].data[0]](&gTasks[taskId]); } -static void TeleportWarpInFieldEffect_0(struct Task *task) +static void TeleportWarpInFieldEffect_Init(struct Task *task) { struct Sprite *sprite; s16 centerToCornerVecY; @@ -2402,7 +2476,7 @@ static void TeleportWarpInFieldEffect_0(struct Task *task) } } -static void TeleportWarpInFieldEffect_1(struct Task *task) +static void TeleportWarpInFieldEffect_SpinEnter(struct Task *task) { u8 spinDirections[5] = {DIR_SOUTH, DIR_WEST, DIR_EAST, DIR_NORTH, DIR_SOUTH}; struct ObjectEvent *objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; @@ -2441,7 +2515,7 @@ static void TeleportWarpInFieldEffect_1(struct Task *task) } } -static void TeleportWarpInFieldEffect_2(struct Task *task) +static void TeleportWarpInFieldEffect_SpinGround(struct Task *task) { u8 spinDirections[5] = {DIR_SOUTH, DIR_WEST, DIR_EAST, DIR_NORTH, DIR_SOUTH}; struct ObjectEvent *objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; @@ -2459,17 +2533,34 @@ static void TeleportWarpInFieldEffect_2(struct Task *task) } } +// Task data for Task_FieldMoveShowMonOutDoors +#define tState data[0] +#define tWinHoriz data[1] +#define tWinVert data[2] +#define tWinIn data[3] +#define tWinOut data[4] +#define tBgHoriz data[5] +#define tBgVert data[6] +#define tMonSpriteId data[15] + +// Sprite data for field move mon sprite +#define sSpecies data[0] +#define sOnscreenTimer data[1] +#define sSlidOffscreen data[7] + +// There are two variants (outdoor/indoor) of the "show mon for a field move" effect +// Outdoor has a black background with thick white streaks and appears from the right by stretching vertically and horizontally +// Indoor has blue background with thin white streaks and appears from the left by stretching horizontally +// For both the background streaks move to the right, and the mon sprite enters from the right and exits left bool8 FldEff_FieldMoveShowMon(void) { u8 taskId; if (IsMapTypeOutdoors(GetCurrentMapType()) == TRUE) - { taskId = CreateTask(Task_FieldMoveShowMonOutdoors, 0xff); - } else - { + else taskId = CreateTask(Task_FieldMoveShowMonIndoors, 0xff); - } - gTasks[taskId].data[15] = sub_80B8C60(gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); + + gTasks[taskId].tMonSpriteId = InitFieldMoveMonSprite(gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); return FALSE; } @@ -2488,132 +2579,127 @@ bool8 FldEff_FieldMoveShowMonInit(void) } void (*const sFieldMoveShowMonOutdoorsEffectFuncs[])(struct Task *) = { - FieldMoveShowMonOutdoorsEffect_0, - FieldMoveShowMonOutdoorsEffect_1, - FieldMoveShowMonOutdoorsEffect_2, - FieldMoveShowMonOutdoorsEffect_3, - FieldMoveShowMonOutdoorsEffect_4, - FieldMoveShowMonOutdoorsEffect_5, - FieldMoveShowMonOutdoorsEffect_6, + FieldMoveShowMonOutdoorsEffect_Init, + FieldMoveShowMonOutdoorsEffect_LoadGfx, + FieldMoveShowMonOutdoorsEffect_CreateBanner, + FieldMoveShowMonOutdoorsEffect_WaitForMon, + FieldMoveShowMonOutdoorsEffect_ShrinkBanner, + FieldMoveShowMonOutdoorsEffect_RestoreBg, + FieldMoveShowMonOutdoorsEffect_End, }; static void Task_FieldMoveShowMonOutdoors(u8 taskId) { - sFieldMoveShowMonOutdoorsEffectFuncs[gTasks[taskId].data[0]](&gTasks[taskId]); + sFieldMoveShowMonOutdoorsEffectFuncs[gTasks[taskId].tState](&gTasks[taskId]); } -static void FieldMoveShowMonOutdoorsEffect_0(struct Task *task) +static void FieldMoveShowMonOutdoorsEffect_Init(struct Task *task) { task->data[11] = REG_WININ; task->data[12] = REG_WINOUT; StoreWordInTwoHalfwords(&task->data[13], (u32)gMain.vblankCallback); - task->data[1] = 0xf0f1; - task->data[2] = 0x5051; - task->data[3] = 0x3f; - task->data[4] = 0x3e; - SetGpuReg(REG_OFFSET_WIN0H, task->data[1]); - SetGpuReg(REG_OFFSET_WIN0V, task->data[2]); - SetGpuReg(REG_OFFSET_WININ, task->data[3]); - SetGpuReg(REG_OFFSET_WINOUT, task->data[4]); + task->tWinHoriz = WIN_RANGE(240, 241); + task->tWinVert = WIN_RANGE(80, 81); + task->tWinIn = WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR; + task->tWinOut = WINOUT_WIN01_BG1 | WINOUT_WIN01_BG2 | WINOUT_WIN01_BG3 | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR; + SetGpuReg(REG_OFFSET_WIN0H, task->tWinHoriz); + SetGpuReg(REG_OFFSET_WIN0V, task->tWinVert); + SetGpuReg(REG_OFFSET_WININ, task->tWinIn); + SetGpuReg(REG_OFFSET_WINOUT, task->tWinOut); SetVBlankCallback(VBlankCB_FieldMoveShowMonOutdoors); - task->data[0]++; + task->tState++; } -static void FieldMoveShowMonOutdoorsEffect_1(struct Task *task) +static void FieldMoveShowMonOutdoorsEffect_LoadGfx(struct Task *task) { u16 offset = ((REG_BG0CNT >> 2) << 14); u16 delta = ((REG_BG0CNT >> 8) << 11); - CpuCopy16(gFieldMoveStreaksTiles, (void *)(VRAM + offset), 0x200); + CpuCopy16(sFieldMoveStreaksOutdoors_Gfx, (void *)(VRAM + offset), 0x200); CpuFill32(0, (void *)(VRAM + delta), 0x800); - LoadPalette(gFieldMoveStreaksPalette, 0xf0, 0x20); - sub_80B8874(delta); - task->data[0]++; + LoadPalette(sFieldMoveStreaksOutdoors_Pal, 0xf0, 0x20); + LoadFieldMoveOutdoorStreaksTilemap(delta); + task->tState++; } -static void FieldMoveShowMonOutdoorsEffect_2(struct Task *task) +static void FieldMoveShowMonOutdoorsEffect_CreateBanner(struct Task *task) { - s16 v0; - s16 v2; - s16 v3; - task->data[5] -= 16; - v0 = ((u16)task->data[1] >> 8); - v2 = ((u16)task->data[2] >> 8); - v3 = ((u16)task->data[2] & 0xff); - v0 -= 16; - v2 -= 2; - v3 += 2; - if (v0 < 0) + s16 horiz; + s16 vertHi; + s16 vertLo; + task->tBgHoriz -= 16; + horiz = ((u16)task->tWinHoriz >> 8); + vertHi = ((u16)task->tWinVert >> 8); + vertLo = ((u16)task->tWinVert & 0xff); + horiz -= 16; + vertHi -= 2; + vertLo += 2; + + if (horiz < 0) + horiz = 0; + + if (vertHi < 40) + vertHi = 40; + + if (vertLo > 120) + vertLo = 120; + + task->tWinHoriz = (horiz << 8) | (task->tWinHoriz & 0xff); + task->tWinVert = (vertHi << 8) | vertLo; + if (horiz == 0 && vertHi == 40 && vertLo == 120) { - v0 = 0; - } - if (v2 < 0x28) - { - v2 = 0x28; - } - if (v3 > 0x78) - { - v3 = 0x78; - } - task->data[1] = (v0 << 8) | (task->data[1] & 0xff); - task->data[2] = (v2 << 8) | v3; - if (v0 == 0 && v2 == 0x28 && v3 == 0x78) - { - gSprites[task->data[15]].callback = sub_80B8CC0; - task->data[0]++; + gSprites[task->tMonSpriteId].callback = SpriteCB_FieldMoveMonSlideOnscreen; + task->tState++; } } -static void FieldMoveShowMonOutdoorsEffect_3(struct Task *task) +static void FieldMoveShowMonOutdoorsEffect_WaitForMon(struct Task *task) { - task->data[5] -= 16; - if (gSprites[task->data[15]].data[7]) - { - task->data[0]++; - } + task->tBgHoriz -= 16; + + if (gSprites[task->tMonSpriteId].sSlidOffscreen) + task->tState++; } -static void FieldMoveShowMonOutdoorsEffect_4(struct Task *task) +static void FieldMoveShowMonOutdoorsEffect_ShrinkBanner(struct Task *task) { - s16 v2; - s16 v3; - task->data[5] -= 16; - v2 = (task->data[2] >> 8); - v3 = (task->data[2] & 0xff); - v2 += 6; - v3 -= 6; - if (v2 > 0x50) - { - v2 = 0x50; - } - if (v3 < 0x51) - { - v3 = 0x51; - } - task->data[2] = (v2 << 8) | v3; - if (v2 == 0x50 && v3 == 0x51) - { - task->data[0]++; - } + s16 vertHi; + s16 vertLo; + task->tBgHoriz -= 16; + vertHi = (task->tWinVert >> 8); + vertLo = (task->tWinVert & 0xFF); + vertHi += 6; + vertLo -= 6; + + if (vertHi > 80) + vertHi = 80; + + if (vertLo < 81) + vertLo = 81; + + task->tWinVert = (vertHi << 8) | vertLo; + + if (vertHi == 80 && vertLo == 81) + task->tState++; } -static void FieldMoveShowMonOutdoorsEffect_5(struct Task *task) +static void FieldMoveShowMonOutdoorsEffect_RestoreBg(struct Task *task) { u16 bg0cnt = (REG_BG0CNT >> 8) << 11; CpuFill32(0, (void *)VRAM + bg0cnt, 0x800); - task->data[1] = 0xf1; - task->data[2] = 0xa1; - task->data[3] = task->data[11]; - task->data[4] = task->data[12]; - task->data[0]++; + task->tWinHoriz = 241; + task->tWinVert = 161; + task->tWinIn = task->data[11]; + task->tWinOut = task->data[12]; + task->tState++; } -static void FieldMoveShowMonOutdoorsEffect_6(struct Task *task) +static void FieldMoveShowMonOutdoorsEffect_End(struct Task *task) { IntrCallback callback; LoadWordFromTwoHalfwords((u16 *)&task->data[13], (u32 *)&callback); SetVBlankCallback(callback); InitTextBoxGfxAndPrinters(); - FreeResourcesAndDestroySprite(&gSprites[task->data[15]], task->data[15]); + FreeResourcesAndDestroySprite(&gSprites[task->tMonSpriteId], task->tMonSpriteId); FieldEffectActiveListRemove(FLDEFF_FIELD_MOVE_SHOW_MON); DestroyTask(FindTaskIdByFunc(Task_FieldMoveShowMonOutdoors)); } @@ -2624,103 +2710,116 @@ static void VBlankCB_FieldMoveShowMonOutdoors(void) struct Task *task = &gTasks[FindTaskIdByFunc(Task_FieldMoveShowMonOutdoors)]; LoadWordFromTwoHalfwords((u16 *)&task->data[13], (u32 *)&callback); callback(); - SetGpuReg(REG_OFFSET_WIN0H, task->data[1]); - SetGpuReg(REG_OFFSET_WIN0V, task->data[2]); - SetGpuReg(REG_OFFSET_WININ, task->data[3]); - SetGpuReg(REG_OFFSET_WINOUT, task->data[4]); - SetGpuReg(REG_OFFSET_BG0HOFS, task->data[5]); - SetGpuReg(REG_OFFSET_BG0VOFS, task->data[6]); + SetGpuReg(REG_OFFSET_WIN0H, task->tWinHoriz); + SetGpuReg(REG_OFFSET_WIN0V, task->tWinVert); + SetGpuReg(REG_OFFSET_WININ, task->tWinIn); + SetGpuReg(REG_OFFSET_WINOUT, task->tWinOut); + SetGpuReg(REG_OFFSET_BG0HOFS, task->tBgHoriz); + SetGpuReg(REG_OFFSET_BG0VOFS, task->tBgVert); } -static void sub_80B8874(u16 offs) +static void LoadFieldMoveOutdoorStreaksTilemap(u16 offs) { u16 i; u16 *dest; - dest = (u16 *)(VRAM + 0x140 + offs); - for (i = 0; i < 0x140; i++, dest++) + dest = (u16 *)(VRAM + ARRAY_COUNT(sFieldMoveStreaksOutdoors_Tilemap) + offs); + for (i = 0; i < ARRAY_COUNT(sFieldMoveStreaksOutdoors_Tilemap); i++, dest++) { - *dest = gFieldMoveStreaksTilemap[i] | METATILE_ELEVATION_MASK; + *dest = sFieldMoveStreaksOutdoors_Tilemap[i] | 0xF000; } } +#undef tState +#undef tWinHoriz +#undef tWinVert +#undef tWinIn +#undef tWinOut +#undef tBgHoriz +#undef tBgVert +#undef tMonSpriteId + +// Task data for Task_FieldMoveShowMonIndoors +#define tState data[0] +#define tBgHoriz data[1] +#define tBgVert data[2] +#define tBgOffsetIdx data[3] +#define tBgOffset data[4] +#define tMonSpriteId data[15] + void (*const sFieldMoveShowMonIndoorsEffectFuncs[])(struct Task *) = { - FieldMoveShowMonIndoorsEffect_0, - FieldMoveShowMonIndoorsEffect_1, - FieldMoveShowMonIndoorsEffect_2, - FieldMoveShowMonIndoorsEffect_3, - FieldMoveShowMonIndoorsEffect_4, - FieldMoveShowMonIndoorsEffect_5, - FieldMoveShowMonIndoorsEffect_6, + FieldMoveShowMonIndoorsEffect_Init, + FieldMoveShowMonIndoorsEffect_LoadGfx, + FieldMoveShowMonIndoorsEffect_SlideBannerOn, + FieldMoveShowMonIndoorsEffect_WaitForMon, + FieldMoveShowMonIndoorsEffect_RestoreBg, + FieldMoveShowMonIndoorsEffect_SlideBannerOff, + FieldMoveShowMonIndoorsEffect_End, }; static void Task_FieldMoveShowMonIndoors(u8 taskId) { - sFieldMoveShowMonIndoorsEffectFuncs[gTasks[taskId].data[0]](&gTasks[taskId]); + sFieldMoveShowMonIndoorsEffectFuncs[gTasks[taskId].tState](&gTasks[taskId]); } -static void FieldMoveShowMonIndoorsEffect_0(struct Task *task) +static void FieldMoveShowMonIndoorsEffect_Init(struct Task *task) { - SetGpuReg(REG_OFFSET_BG0HOFS, task->data[1]); - SetGpuReg(REG_OFFSET_BG0VOFS, task->data[2]); + SetGpuReg(REG_OFFSET_BG0HOFS, task->tBgHoriz); + SetGpuReg(REG_OFFSET_BG0VOFS, task->tBgVert); StoreWordInTwoHalfwords((u16 *)&task->data[13], (u32)gMain.vblankCallback); SetVBlankCallback(VBlankCB_FieldMoveShowMonIndoors); - task->data[0]++; + task->tState++; } -static void FieldMoveShowMonIndoorsEffect_1(struct Task *task) +static void FieldMoveShowMonIndoorsEffect_LoadGfx(struct Task *task) { u16 offset; u16 delta; offset = ((REG_BG0CNT >> 2) << 14); delta = ((REG_BG0CNT >> 8) << 11); task->data[12] = delta; - CpuCopy16(gDarknessFieldMoveStreaksTiles, (void *)(VRAM + offset), 0x80); + CpuCopy16(sFieldMoveStreaksIndoors_Gfx, (void *)(VRAM + offset), 0x80); CpuFill32(0, (void *)(VRAM + delta), 0x800); - LoadPalette(gDarknessFieldMoveStreaksPalette, 0xf0, 0x20); - task->data[0]++; + LoadPalette(sFieldMoveStreaksIndoors_Pal, 0xf0, 0x20); + task->tState++; } -static void FieldMoveShowMonIndoorsEffect_2(struct Task *task) +static void FieldMoveShowMonIndoorsEffect_SlideBannerOn(struct Task *task) { - if (sub_80B8B38(task)) + if (SlideIndoorBannerOnscreen(task)) { SetGpuReg(REG_OFFSET_WIN1H, 0x00f0); SetGpuReg(REG_OFFSET_WIN1V, 0x2878); - gSprites[task->data[15]].callback = sub_80B8CC0; - task->data[0]++; + gSprites[task->tMonSpriteId].callback = SpriteCB_FieldMoveMonSlideOnscreen; + task->tState++; } - sub_80B8B28(task); + AnimateIndoorShowMonBg(task); } -static void FieldMoveShowMonIndoorsEffect_3(struct Task *task) +static void FieldMoveShowMonIndoorsEffect_WaitForMon(struct Task *task) { - sub_80B8B28(task); - if (gSprites[task->data[15]].data[7]) - { - task->data[0]++; - } + AnimateIndoorShowMonBg(task); + if (gSprites[task->tMonSpriteId].sSlidOffscreen) + task->tState++; } -static void FieldMoveShowMonIndoorsEffect_4(struct Task *task) +static void FieldMoveShowMonIndoorsEffect_RestoreBg(struct Task *task) { - sub_80B8B28(task); - task->data[3] = task->data[1] & 7; - task->data[4] = 0; + AnimateIndoorShowMonBg(task); + task->tBgOffsetIdx = task->tBgHoriz & 7; + task->tBgOffset = 0; SetGpuReg(REG_OFFSET_WIN1H, 0xffff); SetGpuReg(REG_OFFSET_WIN1V, 0xffff); - task->data[0]++; + task->tState++; } -static void FieldMoveShowMonIndoorsEffect_5(struct Task *task) +static void FieldMoveShowMonIndoorsEffect_SlideBannerOff(struct Task *task) { - sub_80B8B28(task); - if (sub_80B8BF0(task)) - { - task->data[0]++; - } + AnimateIndoorShowMonBg(task); + if (SlideIndoorBannerOffscreen(task)) + task->tState++; } -static void FieldMoveShowMonIndoorsEffect_6(struct Task *task) +static void FieldMoveShowMonIndoorsEffect_End(struct Task *task) { IntrCallback intrCallback; u16 bg0cnt; @@ -2729,7 +2828,7 @@ static void FieldMoveShowMonIndoorsEffect_6(struct Task *task) LoadWordFromTwoHalfwords((u16 *)&task->data[13], (u32 *)&intrCallback); SetVBlankCallback(intrCallback); InitTextBoxGfxAndPrinters(); - FreeResourcesAndDestroySprite(&gSprites[task->data[15]], task->data[15]); + FreeResourcesAndDestroySprite(&gSprites[task->tMonSpriteId], task->tMonSpriteId); FieldEffectActiveListRemove(FLDEFF_FIELD_MOVE_SHOW_MON); DestroyTask(FindTaskIdByFunc(Task_FieldMoveShowMonIndoors)); } @@ -2741,116 +2840,123 @@ static void VBlankCB_FieldMoveShowMonIndoors(void) task = &gTasks[FindTaskIdByFunc(Task_FieldMoveShowMonIndoors)]; LoadWordFromTwoHalfwords((u16 *)&task->data[13], (u32 *)&intrCallback); intrCallback(); - SetGpuReg(REG_OFFSET_BG0HOFS, task->data[1]); - SetGpuReg(REG_OFFSET_BG0VOFS, task->data[2]); + SetGpuReg(REG_OFFSET_BG0HOFS, task->tBgHoriz); + SetGpuReg(REG_OFFSET_BG0VOFS, task->tBgVert); } -static void sub_80B8B28(struct Task *task) +static void AnimateIndoorShowMonBg(struct Task *task) { - task->data[1] -= 16; - task->data[3] += 16; + task->tBgHoriz -= 16; + task->tBgOffsetIdx += 16; } -static bool8 sub_80B8B38(struct Task *task) +static bool8 SlideIndoorBannerOnscreen(struct Task *task) { u16 i; u16 srcOffs; u16 dstOffs; u16 *dest; - if (task->data[4] >= 32) - { + + if (task->tBgOffset >= 32) return TRUE; - } - dstOffs = (task->data[3] >> 3) & 0x1f; - if (dstOffs >= task->data[4]) + + dstOffs = (task->tBgOffsetIdx >> 3) & 0x1f; + if (dstOffs >= task->tBgOffset) { dstOffs = (32 - dstOffs) & 0x1f; - srcOffs = (32 - task->data[4]) & 0x1f; + srcOffs = (32 - task->tBgOffset) & 0x1f; dest = (u16 *)(VRAM + 0x140 + (u16)task->data[12]); for (i = 0; i < 10; i++) { - dest[dstOffs + i * 32] = gDarknessFieldMoveStreaksTilemap[srcOffs + i * 32]; + dest[dstOffs + i * 32] = sFieldMoveStreaksIndoors_Tilemap[srcOffs + i * 32]; dest[dstOffs + i * 32] |= 0xf000; - dest[((dstOffs + 1) & 0x1f) + i * 32] = gDarknessFieldMoveStreaksTilemap[((srcOffs + 1) & 0x1f) + i * 32] | 0xf000; + dest[((dstOffs + 1) & 0x1f) + i * 32] = sFieldMoveStreaksIndoors_Tilemap[((srcOffs + 1) & 0x1f) + i * 32] | 0xf000; dest[((dstOffs + 1) & 0x1f) + i * 32] |= 0xf000; } - task->data[4] += 2; + task->tBgOffset += 2; } return FALSE; } -static bool8 sub_80B8BF0(struct Task *task) +static bool8 SlideIndoorBannerOffscreen(struct Task *task) { u16 i; u16 dstOffs; u16 *dest; - if (task->data[4] >= 32) - { + + if (task->tBgOffset >= 32) return TRUE; - } - dstOffs = task->data[3] >> 3; - if (dstOffs >= task->data[4]) + + dstOffs = task->tBgOffsetIdx >> 3; + if (dstOffs >= task->tBgOffset) { - dstOffs = (task->data[1] >> 3) & 0x1f; + dstOffs = (task->tBgHoriz >> 3) & 0x1f; dest = (u16 *)(VRAM + 0x140 + (u16)task->data[12]); for (i = 0; i < 10; i++) { dest[dstOffs + i * 32] = 0xf000; dest[((dstOffs + 1) & 0x1f) + i * 32] = 0xf000; } - task->data[4] += 2; + task->tBgOffset += 2; } return FALSE; } -static u8 sub_80B8C60(u32 a0, u32 a1, u32 a2) +#undef tState +#undef tBgHoriz +#undef tBgVert +#undef tBgOffsetIdx +#undef tBgOffset +#undef tMonSpriteId + +static u8 InitFieldMoveMonSprite(u32 species, u32 otId, u32 personality) { u16 v0; u8 monSprite; struct Sprite *sprite; - v0 = (a0 & 0x80000000) >> 16; - a0 &= 0x7fffffff; - monSprite = CreateMonSprite_FieldMove(a0, a1, a2, 0x140, 0x50, 0); + v0 = (species & 0x80000000) >> 16; + species &= 0x7fffffff; + monSprite = CreateMonSprite_FieldMove(species, otId, personality, 0x140, 0x50, 0); sprite = &gSprites[monSprite]; sprite->callback = SpriteCallbackDummy; sprite->oam.priority = 0; - sprite->data[0] = a0; + sprite->sSpecies = species; sprite->data[6] = v0; return monSprite; } -static void sub_80B8CC0(struct Sprite *sprite) +static void SpriteCB_FieldMoveMonSlideOnscreen(struct Sprite *sprite) { - if ((sprite->pos1.x -= 20) <= 0x78) + if ((sprite->pos1.x -= 20) <= 120) { - sprite->pos1.x = 0x78; - sprite->data[1] = 30; - sprite->callback = sub_80B8D04; + sprite->pos1.x = 120; + sprite->sOnscreenTimer = 30; + sprite->callback = SpriteCB_FieldMoveMonWaitAfterCry; if (sprite->data[6]) { - PlayCry2(sprite->data[0], 0, 0x7d, 0xa); + PlayCry2(sprite->sSpecies, 0, 0x7d, 0xa); } else { - PlayCry1(sprite->data[0], 0); + PlayCry1(sprite->sSpecies, 0); } } } -static void sub_80B8D04(struct Sprite *sprite) +static void SpriteCB_FieldMoveMonWaitAfterCry(struct Sprite *sprite) { - if ((--sprite->data[1]) == 0) + if ((--sprite->sOnscreenTimer) == 0) { - sprite->callback = sub_80B8D20; + sprite->callback = SpriteCB_FieldMoveMonSlideOffscreen; } } -static void sub_80B8D20(struct Sprite *sprite) +static void SpriteCB_FieldMoveMonSlideOffscreen(struct Sprite *sprite) { - if (sprite->pos1.x < -0x40) + if (sprite->pos1.x < -64) { - sprite->data[7] = 1; + sprite->sSlidOffscreen = TRUE; } else { @@ -2858,40 +2964,51 @@ static void sub_80B8D20(struct Sprite *sprite) } } +#undef tState +#undef tMonSpriteId +#undef sSpecies +#undef sSlidOffscreen +#undef sOnscreenTimer + +#define tState data[0] +#define tDestX data[1] +#define tDestY data[2] +#define tMonId data[15] + u8 FldEff_UseSurf(void) { u8 taskId = CreateTask(Task_SurfFieldEffect, 0xff); - gTasks[taskId].data[15] = gFieldEffectArguments[0]; + gTasks[taskId].tMonId = gFieldEffectArguments[0]; Overworld_ClearSavedMusic(); Overworld_ChangeMusicTo(MUS_NAMINORI); return FALSE; } void (*const sSurfFieldEffectFuncs[])(struct Task *) = { - SurfFieldEffect_1, - SurfFieldEffect_2, - SurfFieldEffect_3, - SurfFieldEffect_4, - SurfFieldEffect_5, + SurfFieldEffect_Init, + SurfFieldEffect_FieldMovePose, + SurfFieldEffect_ShowMon, + SurfFieldEffect_JumpOnSurfBlob, + SurfFieldEffect_End, }; static void Task_SurfFieldEffect(u8 taskId) { - sSurfFieldEffectFuncs[gTasks[taskId].data[0]](&gTasks[taskId]); + sSurfFieldEffectFuncs[gTasks[taskId].tState](&gTasks[taskId]); } -static void SurfFieldEffect_1(struct Task *task) +static void SurfFieldEffect_Init(struct Task *task) { ScriptContext2_Enable(); FreezeObjectEvents(); gPlayerAvatar.preventStep = TRUE; SetPlayerAvatarStateMask(PLAYER_AVATAR_FLAG_SURFING); - PlayerGetDestCoords(&task->data[1], &task->data[2]); - MoveCoords(gObjectEvents[gPlayerAvatar.objectEventId].movementDirection, &task->data[1], &task->data[2]); - task->data[0]++; + PlayerGetDestCoords(&task->tDestX, &task->tDestY); + MoveCoords(gObjectEvents[gPlayerAvatar.objectEventId].movementDirection, &task->tDestX, &task->tDestY); + task->tState++; } -static void SurfFieldEffect_2(struct Task *task) +static void SurfFieldEffect_FieldMovePose(struct Task *task) { struct ObjectEvent *objectEvent; objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; @@ -2899,23 +3016,23 @@ static void SurfFieldEffect_2(struct Task *task) { SetPlayerAvatarFieldMove(); ObjectEventSetHeldMovement(objectEvent, MOVEMENT_ACTION_START_ANIM_IN_DIRECTION); - task->data[0]++; + task->tState++; } } -static void SurfFieldEffect_3(struct Task *task) +static void SurfFieldEffect_ShowMon(struct Task *task) { struct ObjectEvent *objectEvent; objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; if (ObjectEventCheckHeldMovementStatus(objectEvent)) { - gFieldEffectArguments[0] = task->data[15] | 0x80000000; + gFieldEffectArguments[0] = task->tMonId | 0x80000000; FieldEffectStart(FLDEFF_FIELD_MOVE_SHOW_MON_INIT); - task->data[0]++; + task->tState++; } } -static void SurfFieldEffect_4(struct Task *task) +static void SurfFieldEffect_JumpOnSurfBlob(struct Task *task) { struct ObjectEvent *objectEvent; if (!FieldEffectActiveListContains(FLDEFF_FIELD_MOVE_SHOW_MON)) @@ -2924,15 +3041,15 @@ static void SurfFieldEffect_4(struct Task *task) ObjectEventSetGraphicsId(objectEvent, GetPlayerAvatarGraphicsIdByStateId(PLAYER_AVATAR_STATE_SURFING)); ObjectEventClearHeldMovementIfFinished(objectEvent); ObjectEventSetHeldMovement(objectEvent, GetJumpSpecialMovementAction(objectEvent->movementDirection)); - gFieldEffectArguments[0] = task->data[1]; - gFieldEffectArguments[1] = task->data[2]; + gFieldEffectArguments[0] = task->tDestX; + gFieldEffectArguments[1] = task->tDestY; gFieldEffectArguments[2] = gPlayerAvatar.objectEventId; objectEvent->fieldEffectSpriteId = FieldEffectStart(FLDEFF_SURF_BLOB); - task->data[0]++; + task->tState++; } } -static void SurfFieldEffect_5(struct Task *task) +static void SurfFieldEffect_End(struct Task *task) { struct ObjectEvent *objectEvent; objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; @@ -2941,7 +3058,7 @@ static void SurfFieldEffect_5(struct Task *task) gPlayerAvatar.preventStep = FALSE; gPlayerAvatar.flags &= ~PLAYER_AVATAR_FLAG_5; ObjectEventSetHeldMovement(objectEvent, GetFaceDirectionMovementAction(objectEvent->movementDirection)); - sub_81555AC(objectEvent->fieldEffectSpriteId, 1); + SetSurfBobState(objectEvent->fieldEffectSpriteId, 1); UnfreezeObjectEvents(); ScriptContext2_Disable(); FieldEffectActiveListRemove(FLDEFF_USE_SURF); @@ -2949,10 +3066,15 @@ static void SurfFieldEffect_5(struct Task *task) } } -u8 sub_80B8F98(void) +#undef tState +#undef tDestX +#undef tDestY +#undef tMonId + +u8 FldEff_RayquazaSpotlight(void) { u8 i, j, k; - u8 spriteId = CreateSprite(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_RAYQUAZA], 0x78, -0x18, 1); + u8 spriteId = CreateSprite(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_RAYQUAZA], 120, -24, 1); struct Sprite *sprite = &gSprites[spriteId]; sprite->oam.priority = 1; @@ -2966,7 +3088,7 @@ u8 sub_80B8F98(void) SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG0 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_BG2 | BLDCNT_TGT2_BG3 | BLDCNT_TGT2_OBJ | BLDCNT_TGT2_BD); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(14, 14)); SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG_ALL | WININ_WIN1_OBJ | WININ_WIN1_CLR); - LoadPalette(gUnknown_0855B610, 0xC0, sizeof(gUnknown_0855B610)); + LoadPalette(sSpotlight_Pal, 0xC0, sizeof(sSpotlight_Pal)); SetGpuReg(REG_OFFSET_BG0VOFS, 120); for (i = 3; i < 15; i++) { @@ -2979,8 +3101,8 @@ u8 sub_80B8F98(void) { for (i = 0; i < 8; i++) { - *(u16*)(BG_CHAR_ADDR(2) + (k + 1) * 32 + i * 4) = (gUnknown_0855B630[k * 32 + i * 4 + 1] << 8) + gUnknown_0855B630[k * 32 + i * 4]; - *(u16*)(BG_CHAR_ADDR(2) + (k + 1) * 32 + i * 4 + 2) = (gUnknown_0855B630[k * 32 + i * 4 + 3] << 8) + gUnknown_0855B630[k * 32 + i * 4 + 2]; + *(u16*)(BG_CHAR_ADDR(2) + (k + 1) * 32 + i * 4) = (sSpotlight_Gfx[k * 32 + i * 4 + 1] << 8) + sSpotlight_Gfx[k * 32 + i * 4]; + *(u16*)(BG_CHAR_ADDR(2) + (k + 1) * 32 + i * 4 + 2) = (sSpotlight_Gfx[k * 32 + i * 4 + 3] << 8) + sSpotlight_Gfx[k * 32 + i * 4 + 2]; } } return spriteId; @@ -3015,39 +3137,47 @@ static void SpriteCB_NPCFlyOut(struct Sprite *sprite) npcSprite->pos2.x = 0; npcSprite->pos2.y = 0; } + if (sprite->data[2] >= 0x80) - { FieldEffectStop(sprite, FLDEFF_NPCFLY_OUT); - } } -#define tAvatarFlags data[15] +// Task data for Task_FlyOut/FlyIn +#define tState data[0] +#define tMonId data[1] +#define tBirdSpriteId data[1] //re-used +#define tTimer data[2] +#define tAvatarFlags data[15] + +// Sprite data for the fly bird +#define sPlayerSpriteId data[6] +#define sAnimCompleted data[7] u8 FldEff_UseFly(void) { u8 taskId = CreateTask(Task_FlyOut, 254); - gTasks[taskId].data[1] = gFieldEffectArguments[0]; + gTasks[taskId].tMonId = gFieldEffectArguments[0]; return 0; } void (*const sFlyOutFieldEffectFuncs[])(struct Task *) = { - FlyOutFieldEffect_0, - FlyOutFieldEffect_1, - FlyOutFieldEffect_2, - FlyOutFieldEffect_3, - FlyOutFieldEffect_4, - FlyOutFieldEffect_5, - FlyOutFieldEffect_6, - FlyOutFieldEffect_7, - FlyOutFieldEffect_8, + FlyOutFieldEffect_FieldMovePose, + FlyOutFieldEffect_ShowMon, + FlyOutFieldEffect_BirdLeaveBall, + FlyOutFieldEffect_WaitBirdLeave, + FlyOutFieldEffect_BirdSwoopDown, + FlyOutFieldEffect_JumpOnBird, + FlyOutFieldEffect_FlyOffWithBird, + FlyOutFieldEffect_WaitFlyOff, + FlyOutFieldEffect_End, }; static void Task_FlyOut(u8 taskId) { - sFlyOutFieldEffectFuncs[gTasks[taskId].data[0]](&gTasks[taskId]); + sFlyOutFieldEffectFuncs[gTasks[taskId].tState](&gTasks[taskId]); } -static void FlyOutFieldEffect_0(struct Task *task) +static void FlyOutFieldEffect_FieldMovePose(struct Task *task) { struct ObjectEvent *objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; if (!ObjectEventIsMovementOverridden(objectEvent) || ObjectEventClearHeldMovementIfFinished(objectEvent)) @@ -3057,61 +3187,61 @@ static void FlyOutFieldEffect_0(struct Task *task) SetPlayerAvatarStateMask(PLAYER_AVATAR_FLAG_ON_FOOT); SetPlayerAvatarFieldMove(); ObjectEventSetHeldMovement(objectEvent, MOVEMENT_ACTION_START_ANIM_IN_DIRECTION); - task->data[0]++; + task->tState++; } } -static void FlyOutFieldEffect_1(struct Task *task) +static void FlyOutFieldEffect_ShowMon(struct Task *task) { struct ObjectEvent *objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; if (ObjectEventClearHeldMovementIfFinished(objectEvent)) { - task->data[0]++; - gFieldEffectArguments[0] = task->data[1]; + task->tState++; + gFieldEffectArguments[0] = task->tMonId; FieldEffectStart(FLDEFF_FIELD_MOVE_SHOW_MON_INIT); } } -static void FlyOutFieldEffect_2(struct Task *task) +static void FlyOutFieldEffect_BirdLeaveBall(struct Task *task) { if (!FieldEffectActiveListContains(FLDEFF_FIELD_MOVE_SHOW_MON)) { struct ObjectEvent *objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; if (task->tAvatarFlags & PLAYER_AVATAR_FLAG_SURFING) { - sub_81555AC(objectEvent->fieldEffectSpriteId, 2); - sub_81555D8(objectEvent->fieldEffectSpriteId, 0); + SetSurfBobState(objectEvent->fieldEffectSpriteId, 2); + SetSurfBobWhileFlyingOutState(objectEvent->fieldEffectSpriteId, 0); } - task->data[1] = sub_80B94C4(); - task->data[0]++; + task->tBirdSpriteId = CreateFlyBirdSprite(); // Does "leave ball" animation by default + task->tState++; } } -static void FlyOutFieldEffect_3(struct Task *task) +static void FlyOutFieldEffect_WaitBirdLeave(struct Task *task) { - if (sub_80B9508(task->data[1])) + if (GetFlyBirdAnimCompleted(task->tBirdSpriteId)) { - task->data[0]++; - task->data[2] = 16; + task->tState++; + task->tTimer = 16; SetPlayerAvatarTransitionFlags(PLAYER_AVATAR_FLAG_ON_FOOT); ObjectEventSetHeldMovement(&gObjectEvents[gPlayerAvatar.objectEventId], MOVEMENT_ACTION_FACE_LEFT); } } -static void FlyOutFieldEffect_4(struct Task *task) +static void FlyOutFieldEffect_BirdSwoopDown(struct Task *task) { struct ObjectEvent *objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; - if ((task->data[2] == 0 || (--task->data[2]) == 0) && ObjectEventClearHeldMovementIfFinished(objectEvent)) + if ((task->tTimer == 0 || (--task->tTimer) == 0) && ObjectEventClearHeldMovementIfFinished(objectEvent)) { - task->data[0]++; + task->tState++; PlaySE(SE_W019); - sub_80B9524(task->data[1]); + StartFlyBirdSwoopDown(task->tBirdSpriteId); } } -static void FlyOutFieldEffect_5(struct Task *task) +static void FlyOutFieldEffect_JumpOnBird(struct Task *task) { - if ((++task->data[2]) >= 8) + if ((++task->tTimer) >= 8) { struct ObjectEvent *objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; ObjectEventSetGraphicsId(objectEvent, GetPlayerAvatarGraphicsIdByStateId(PLAYER_AVATAR_STATE_SURFING)); @@ -3122,35 +3252,35 @@ static void FlyOutFieldEffect_5(struct Task *task) { DestroySprite(&gSprites[objectEvent->fieldEffectSpriteId]); } - task->data[0]++; - task->data[2] = 0; + task->tState++; + task->tTimer = 0; } } -static void FlyOutFieldEffect_6(struct Task *task) +static void FlyOutFieldEffect_FlyOffWithBird(struct Task *task) { - if ((++task->data[2]) >= 10) + if ((++task->tTimer) >= 10) { struct ObjectEvent *objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; ObjectEventClearHeldMovementIfActive(objectEvent); objectEvent->inanimate = FALSE; objectEvent->hasShadow = FALSE; - sub_80B9560(task->data[1], objectEvent->spriteId); + SetFlyBirdPlayerSpriteId(task->tBirdSpriteId, objectEvent->spriteId); CameraObjectReset2(); - task->data[0]++; + task->tState++; } } -static void FlyOutFieldEffect_7(struct Task *task) +static void FlyOutFieldEffect_WaitFlyOff(struct Task *task) { - if (sub_80B9508(task->data[1])) + if (GetFlyBirdAnimCompleted(task->tBirdSpriteId)) { WarpFadeOutScreen(); - task->data[0]++; + task->tState++; } } -static void FlyOutFieldEffect_8(struct Task *task) +static void FlyOutFieldEffect_End(struct Task *task) { if (!gPaletteFade.active) { @@ -3159,7 +3289,7 @@ static void FlyOutFieldEffect_8(struct Task *task) } } -static u8 sub_80B94C4(void) +static u8 CreateFlyBirdSprite(void) { u8 spriteId; struct Sprite *sprite; @@ -3167,58 +3297,58 @@ static u8 sub_80B94C4(void) sprite = &gSprites[spriteId]; sprite->oam.paletteNum = 0; sprite->oam.priority = 1; - sprite->callback = sub_80B957C; + sprite->callback = SpriteCB_FlyBirdLeaveBall; return spriteId; } -static u8 sub_80B9508(u8 spriteId) +static u8 GetFlyBirdAnimCompleted(u8 spriteId) { - return gSprites[spriteId].data[7]; + return gSprites[spriteId].sAnimCompleted; } -static void sub_80B9524(u8 spriteId) +static void StartFlyBirdSwoopDown(u8 spriteId) { struct Sprite *sprite; sprite = &gSprites[spriteId]; - sprite->callback = sub_80B963C; - sprite->pos1.x = 0x78; - sprite->pos1.y = 0x00; + sprite->callback = SpriteCB_FlyBirdSwoopDown; + sprite->pos1.x = 120; + sprite->pos1.y = 0; sprite->pos2.x = 0; sprite->pos2.y = 0; memset(&sprite->data[0], 0, 8 * sizeof(u16) /* zero all data cells */); - sprite->data[6] = 0x40; + sprite->sPlayerSpriteId = MAX_SPRITES; } -static void sub_80B9560(u8 a0, u8 a1) +static void SetFlyBirdPlayerSpriteId(u8 birdSpriteId, u8 playerSpriteId) { - gSprites[a0].data[6] = a1; + gSprites[birdSpriteId].sPlayerSpriteId = playerSpriteId; } -const union AffineAnimCmd SpriteAffineAnim_855C518[] = { +static const union AffineAnimCmd sAffineAnim_FlyBirdLeaveBall[] = { AFFINEANIMCMD_FRAME(8, 8, -30, 0), AFFINEANIMCMD_FRAME(28, 28, 0, 30), AFFINEANIMCMD_END }; -const union AffineAnimCmd SpriteAffineAnim_855C530[] = { +static const union AffineAnimCmd sAffineAnim_FlyBirdReturnToBall[] = { AFFINEANIMCMD_FRAME(256, 256, 64, 0), AFFINEANIMCMD_FRAME(-10, -10, 0, 22), AFFINEANIMCMD_END }; -const union AffineAnimCmd *const gSpriteAffineAnimTable_0855C548[] = { - SpriteAffineAnim_855C518, - SpriteAffineAnim_855C530 +static const union AffineAnimCmd *const sAffineAnims_FlyBird[] = { + sAffineAnim_FlyBirdLeaveBall, + sAffineAnim_FlyBirdReturnToBall }; -static void sub_80B957C(struct Sprite *sprite) +static void SpriteCB_FlyBirdLeaveBall(struct Sprite *sprite) { - if (sprite->data[7] == 0) + if (sprite->sAnimCompleted == FALSE) { if (sprite->data[0] == 0) { sprite->oam.affineMode = ST_OAM_AFFINE_DOUBLE; - sprite->affineAnims = gSpriteAffineAnimTable_0855C548; + sprite->affineAnims = sAffineAnims_FlyBird; InitSpriteAffineAnim(sprite); StartSpriteAffineAnim(sprite, 0); sprite->pos1.x = 0x76; @@ -3236,7 +3366,7 @@ static void sub_80B957C(struct Sprite *sprite) } if (sprite->data[1] > 0x81) { - sprite->data[7]++; + sprite->sAnimCompleted++; sprite->oam.affineMode = ST_OAM_AFFINE_OFF; FreeOamMatrix(sprite->oam.matrixNum); CalcCenterToCornerVec(sprite, sprite->oam.shape, sprite->oam.size, ST_OAM_AFFINE_OFF); @@ -3244,14 +3374,14 @@ static void sub_80B957C(struct Sprite *sprite) } } -static void sub_80B963C(struct Sprite *sprite) +static void SpriteCB_FlyBirdSwoopDown(struct Sprite *sprite) { sprite->pos2.x = Cos(sprite->data[2], 0x8c); sprite->pos2.y = Sin(sprite->data[2], 0x48); sprite->data[2] = (sprite->data[2] + 4) & 0xff; - if (sprite->data[6] != MAX_SPRITES) + if (sprite->sPlayerSpriteId != MAX_SPRITES) { - struct Sprite *sprite1 = &gSprites[sprite->data[6]]; + struct Sprite *sprite1 = &gSprites[sprite->sPlayerSpriteId]; sprite1->coordOffsetEnabled = FALSE; sprite1->pos1.x = sprite->pos1.x + sprite->pos2.x; sprite1->pos1.y = sprite->pos1.y + sprite->pos2.y - 8; @@ -3260,18 +3390,18 @@ static void sub_80B963C(struct Sprite *sprite) } if (sprite->data[2] >= 0x80) { - sprite->data[7] = 1; + sprite->sAnimCompleted = TRUE; } } -void sub_80B96B0(struct Sprite *sprite) +static void SpriteCB_FlyBirdReturnToBall(struct Sprite *sprite) { - if (sprite->data[7] == 0) + if (sprite->sAnimCompleted == FALSE) { if (sprite->data[0] == 0) { sprite->oam.affineMode = ST_OAM_AFFINE_DOUBLE; - sprite->affineAnims = gSpriteAffineAnimTable_0855C548; + sprite->affineAnims = sAffineAnims_FlyBird; InitSpriteAffineAnim(sprite); StartSpriteAffineAnim(sprite, 1); sprite->pos1.x = 0x5e; @@ -3300,7 +3430,7 @@ void sub_80B96B0(struct Sprite *sprite) } if (sprite->data[3] >= 60) { - sprite->data[7]++; + sprite->sAnimCompleted++; sprite->oam.affineMode = ST_OAM_AFFINE_OFF; FreeOamMatrix(sprite->oam.matrixNum); sprite->invisible = TRUE; @@ -3308,78 +3438,78 @@ void sub_80B96B0(struct Sprite *sprite) } } -void sub_80B9794(u8 spriteId) +static void StartFlyBirdReturnToBall(u8 spriteId) { - sub_80B9524(spriteId); - gSprites[spriteId].callback = sub_80B96B0; + StartFlyBirdSwoopDown(spriteId); // Set up is the same, but overrwrites the callback below + gSprites[spriteId].callback = SpriteCB_FlyBirdReturnToBall; } u8 FldEff_FlyIn(void) { - CreateTask(Task_FlyIn, 0xfe); + CreateTask(Task_FlyIn, 254); return 0; } void (*const sFlyInFieldEffectFuncs[])(struct Task *) = { - FlyInFieldEffect_0, - FlyInFieldEffect_1, - FlyInFieldEffect_2, - FlyInFieldEffect_3, - FlyInFieldEffect_4, - FlyInFieldEffect_5, - FlyInFieldEffect_6, + FlyInFieldEffect_BirdSwoopDown, + FlyInFieldEffect_FlyInWithBird, + FlyInFieldEffect_JumpOffBird, + FlyInFieldEffect_FieldMovePose, + FlyInFieldEffect_BirdReturnToBall, + FlyInFieldEffect_WaitBirdReturn, + FlyInFieldEffect_End, }; static void Task_FlyIn(u8 taskId) { - sFlyInFieldEffectFuncs[gTasks[taskId].data[0]](&gTasks[taskId]); + sFlyInFieldEffectFuncs[gTasks[taskId].tState](&gTasks[taskId]); } -static void FlyInFieldEffect_0(struct Task *task) +static void FlyInFieldEffect_BirdSwoopDown(struct Task *task) { struct ObjectEvent *objectEvent; objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; if (!ObjectEventIsMovementOverridden(objectEvent) || ObjectEventClearHeldMovementIfFinished(objectEvent)) { - task->data[0]++; - task->data[2] = 17; + task->tState++; + task->tTimer = 17; task->tAvatarFlags = gPlayerAvatar.flags; gPlayerAvatar.preventStep = TRUE; SetPlayerAvatarStateMask(PLAYER_AVATAR_FLAG_ON_FOOT); if (task->tAvatarFlags & PLAYER_AVATAR_FLAG_SURFING) { - sub_81555AC(objectEvent->fieldEffectSpriteId, 0); + SetSurfBobState(objectEvent->fieldEffectSpriteId, 0); } ObjectEventSetGraphicsId(objectEvent, GetPlayerAvatarGraphicsIdByStateId(PLAYER_AVATAR_STATE_SURFING)); CameraObjectReset2(); ObjectEventTurn(objectEvent, DIR_WEST); StartSpriteAnim(&gSprites[objectEvent->spriteId], 0x16); objectEvent->invisible = FALSE; - task->data[1] = sub_80B94C4(); - sub_80B9524(task->data[1]); - sub_80B9560(task->data[1], objectEvent->spriteId); + task->tBirdSpriteId = CreateFlyBirdSprite(); + StartFlyBirdSwoopDown(task->tBirdSpriteId); + SetFlyBirdPlayerSpriteId(task->tBirdSpriteId, objectEvent->spriteId); } } -static void FlyInFieldEffect_1(struct Task *task) +static void FlyInFieldEffect_FlyInWithBird(struct Task *task) { struct ObjectEvent *objectEvent; struct Sprite *sprite; - if (task->data[2] == 0 || (--task->data[2]) == 0) + if (task->tTimer == 0 || (--task->tTimer) == 0) { objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; sprite = &gSprites[objectEvent->spriteId]; - sub_80B9560(task->data[1], 0x40); + SetFlyBirdPlayerSpriteId(task->tBirdSpriteId, MAX_SPRITES); sprite->pos1.x += sprite->pos2.x; sprite->pos1.y += sprite->pos2.y; sprite->pos2.x = 0; sprite->pos2.y = 0; - task->data[0]++; - task->data[2] = 0; + task->tState++; + task->tTimer = 0; } } -static void FlyInFieldEffect_2(struct Task *task) +static void FlyInFieldEffect_JumpOffBird(struct Task *task) { s16 sYPositions[18] = { -2, @@ -3402,18 +3532,17 @@ static void FlyInFieldEffect_2(struct Task *task) 8 }; struct Sprite *sprite = &gSprites[gPlayerAvatar.spriteId]; - sprite->pos2.y = sYPositions[task->data[2]]; - if ((++task->data[2]) >= (int)ARRAY_COUNT(sYPositions)) - { - task->data[0]++; - } + sprite->pos2.y = sYPositions[task->tTimer]; + + if ((++task->tTimer) >= (int)ARRAY_COUNT(sYPositions)) + task->tState++; } -static void FlyInFieldEffect_3(struct Task *task) +static void FlyInFieldEffect_FieldMovePose(struct Task *task) { struct ObjectEvent *objectEvent; struct Sprite *sprite; - if (sub_80B9508(task->data[1])) + if (GetFlyBirdAnimCompleted(task->tBirdSpriteId)) { objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; sprite = &gSprites[objectEvent->spriteId]; @@ -3424,30 +3553,30 @@ static void FlyInFieldEffect_3(struct Task *task) sprite->coordOffsetEnabled = TRUE; SetPlayerAvatarFieldMove(); ObjectEventSetHeldMovement(objectEvent, MOVEMENT_ACTION_START_ANIM_IN_DIRECTION); - task->data[0]++; + task->tState++; } } -static void FlyInFieldEffect_4(struct Task *task) +static void FlyInFieldEffect_BirdReturnToBall(struct Task *task) { if (ObjectEventClearHeldMovementIfFinished(&gObjectEvents[gPlayerAvatar.objectEventId])) { - task->data[0]++; - sub_80B9794(task->data[1]); + task->tState++; + StartFlyBirdReturnToBall(task->tBirdSpriteId); } } -static void FlyInFieldEffect_5(struct Task *task) +static void FlyInFieldEffect_WaitBirdReturn(struct Task *task) { - if (sub_80B9508(task->data[1])) + if (GetFlyBirdAnimCompleted(task->tBirdSpriteId)) { - DestroySprite(&gSprites[task->data[1]]); - task->data[0]++; - task->data[1] = 0x10; + DestroySprite(&gSprites[task->tBirdSpriteId]); + task->tState++; + task->data[1] = 16; } } -static void FlyInFieldEffect_6(struct Task *task) +static void FlyInFieldEffect_End(struct Task *task) { u8 state; struct ObjectEvent *objectEvent; @@ -3458,7 +3587,7 @@ static void FlyInFieldEffect_6(struct Task *task) if (task->tAvatarFlags & PLAYER_AVATAR_FLAG_SURFING) { state = PLAYER_AVATAR_STATE_SURFING; - sub_81555AC(objectEvent->fieldEffectSpriteId, 1); + SetSurfBobState(objectEvent->fieldEffectSpriteId, 1); } ObjectEventSetGraphicsId(objectEvent, GetPlayerAvatarGraphicsIdByStateId(state)); ObjectEventTurn(objectEvent, DIR_SOUTH); @@ -3469,17 +3598,33 @@ static void FlyInFieldEffect_6(struct Task *task) } } +#undef tState +#undef tMonId +#undef tBirdSpriteId +#undef tTimer +#undef tAvatarFlags +#undef sPlayerSpriteId +#undef sAnimCompleted + +#define tState data[1] +#define tObjectEventId data[2] +#define tTimer data[3] +#define tCameraTaskId data[5] +#define tLocalId data[6] +#define tMapNum data[7] +#define tMapGroup data[8] + bool8 FldEff_DestroyDeoxysRock(void) { u8 taskId; - u8 objectEventIdBuffer; - if (!TryGetObjectEventIdByLocalIdAndMap(gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2], &objectEventIdBuffer)) + u8 objectEventId; + if (!TryGetObjectEventIdByLocalIdAndMap(gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2], &objectEventId)) { - taskId = CreateTask(Task_DestroyDeoxysRock, 0x50); - gTasks[taskId].data[2] = objectEventIdBuffer; - gTasks[taskId].data[6] = gFieldEffectArguments[0]; - gTasks[taskId].data[7] = gFieldEffectArguments[1]; - gTasks[taskId].data[8] = gFieldEffectArguments[2]; + taskId = CreateTask(Task_DestroyDeoxysRock, 80); + gTasks[taskId].tObjectEventId = objectEventId; + gTasks[taskId].tLocalId = gFieldEffectArguments[0]; + gTasks[taskId].tMapNum = gFieldEffectArguments[1]; + gTasks[taskId].tMapGroup = gFieldEffectArguments[2]; } else { @@ -3488,49 +3633,58 @@ bool8 FldEff_DestroyDeoxysRock(void) return FALSE; } -static void Task_PanCameraForDestroyingDeoxysRock(u8 taskId) +#define tShakeDelay data[0] +#define tShakeUp data[1] +#define tShake data[5] +#define tEndDelay data[6] +#define tEnding data[7] + +static void Task_DeoxysRockCameraShake(u8 taskId) { s16 *data = gTasks[taskId].data; - if (data[7] != 0) + if (tEnding) { - if (++data[6] > 20) + if (++tEndDelay > 20) { - data[6] = 0; - if (data[5] != 0) - data[5]--; + tEndDelay = 0; + if (tShake != 0) + tShake--; } } else { - data[5] = 4; + tShake = 4; } - if (++data[0] > 1) + if (++tShakeDelay > 1) { - data[0] = 0; - if (++data[1] & 1) - { - SetCameraPanning(0, -data[5]); - } + tShakeDelay = 0; + + if (++tShakeUp & 1) + SetCameraPanning(0, -tShake); else - { - SetCameraPanning(0, data[5]); - } + SetCameraPanning(0, tShake); } UpdateCameraPanning(); - if (data[5] == 0) + if (tShake == 0) DestroyTask(taskId); } -void sub_80B9BD0(u8 taskId) +static void StartEndingDeoxysRockCameraShake(u8 taskId) { - gTasks[taskId].data[7] = 1; + gTasks[taskId].tEnding = TRUE; } -void (*const sDestroyDeoxysRockFieldEffectFuncs[])(s16*, u8) = { - DestroyDeoxysRockFieldEffect_0, - DestroyDeoxysRockFieldEffect_1, - DestroyDeoxysRockFieldEffect_2, +#undef tShakeDelay +#undef tShakeUp +#undef tShake +#undef tEndDelay +#undef tEnding + +void (*const sDestroyDeoxysRockEffectFuncs[])(s16*, u8) = { + DestroyDeoxysRockEffect_CameraShake, + DestroyDeoxysRockEffect_RockFragments, + DestroyDeoxysRockEffect_WaitAndEnd, }; static void Task_DestroyDeoxysRock(u8 taskId) @@ -3538,89 +3692,97 @@ static void Task_DestroyDeoxysRock(u8 taskId) s16 *data = gTasks[taskId].data; InstallCameraPanAheadCallback(); SetCameraPanningCallback(0); - sDestroyDeoxysRockFieldEffectFuncs[data[1]](data, taskId); + sDestroyDeoxysRockEffectFuncs[tState](data, taskId); } -static void DestroyDeoxysRockFieldEffect_0(s16* data, u8 taskId) +static void DestroyDeoxysRockEffect_CameraShake(s16* data, u8 taskId) { - u8 newTaskId = CreateTask(Task_PanCameraForDestroyingDeoxysRock, 0x5A); + u8 newTaskId = CreateTask(Task_DeoxysRockCameraShake, 90); PlaySE(SE_T_KAMI2); - data[5] = newTaskId; - data[1]++; + tCameraTaskId = newTaskId; + tState++; } -static void DestroyDeoxysRockFieldEffect_1(s16* data, u8 taskId) +static void DestroyDeoxysRockEffect_RockFragments(s16* data, u8 taskId) { - if (++data[3] > 0x78) + if (++tTimer > 120) { - struct Sprite *sprite = &gSprites[gObjectEvents[data[2]].spriteId]; - gObjectEvents[data[2]].invisible = TRUE; + struct Sprite *sprite = &gSprites[gObjectEvents[tObjectEventId].spriteId]; + gObjectEvents[tObjectEventId].invisible = TRUE; BlendPalettes(0x0000FFFF, 0x10, RGB_WHITE); BeginNormalPaletteFade(0x0000FFFF, 0, 0x10, 0, RGB_WHITE); - sub_80B9D24(sprite); + CreateDeoxysRockFragments(sprite); PlaySE(SE_T_KAMI); - sub_80B9BD0(data[5]); - data[3] = 0; - data[1]++; + StartEndingDeoxysRockCameraShake(tCameraTaskId); + tTimer = 0; + tState++; } } -static void DestroyDeoxysRockFieldEffect_2(s16* a0, u8 taskId) +static void DestroyDeoxysRockEffect_WaitAndEnd(s16* data, u8 taskId) { - if (!gPaletteFade.active && !FuncIsActiveTask(Task_PanCameraForDestroyingDeoxysRock)) + if (!gPaletteFade.active && !FuncIsActiveTask(Task_DeoxysRockCameraShake)) { InstallCameraPanAheadCallback(); - RemoveObjectEventByLocalIdAndMap(a0[6], a0[7], a0[8]); + RemoveObjectEventByLocalIdAndMap(tLocalId, tMapNum, tMapGroup); FieldEffectActiveListRemove(FLDEFF_DESTROY_DEOXYS_ROCK); DestroyTask(taskId); } } -const struct SpriteFrameImage gSpriteImageTable_855C59C[] = { - obj_frame_tiles(gUnknown_0855C170), - obj_frame_tiles(gUnknown_0855C190), - obj_frame_tiles(gUnknown_0855C1B0), - obj_frame_tiles(gUnknown_0855C1D0), +#undef tState +#undef tObjectEventId +#undef tTimer +#undef tCameraTaskId +#undef tLocalId +#undef tMapNum +#undef tMapGroup + +static const struct SpriteFrameImage sImages_DeoxysRockFragment[] = { + obj_frame_tiles(sRockFragment_TopLeft), + obj_frame_tiles(sRockFragment_TopRight), + obj_frame_tiles(sRockFragment_BottomLeft), + obj_frame_tiles(sRockFragment_BottomRight), }; -const union AnimCmd gSpriteAnim_855C5BC[] = { +static const union AnimCmd sAnim_RockFragment_TopLeft[] = { ANIMCMD_FRAME(.imageValue = 0), ANIMCMD_END }; -const union AnimCmd gSpriteAnim_855C5C4[] = { +static const union AnimCmd sAnim_RockFragment_TopRight[] = { ANIMCMD_FRAME(.imageValue = 1), ANIMCMD_END }; -const union AnimCmd gSpriteAnim_855C5CC[] = { +static const union AnimCmd sAnim_RockFragment_BottomLeft[] = { ANIMCMD_FRAME(.imageValue = 2), ANIMCMD_END }; -const union AnimCmd gSpriteAnim_855C5D4[] = { +static const union AnimCmd sAnim_RockFragment_BottomRight[] = { ANIMCMD_FRAME(.imageValue = 3), ANIMCMD_END }; -const union AnimCmd *const gSpriteAnimTable_855C5DC[] = { - gSpriteAnim_855C5BC, - gSpriteAnim_855C5C4, - gSpriteAnim_855C5CC, - gSpriteAnim_855C5D4, +static const union AnimCmd *const sAnims_DeoxysRockFragment[] = { + sAnim_RockFragment_TopLeft, + sAnim_RockFragment_TopRight, + sAnim_RockFragment_BottomLeft, + sAnim_RockFragment_BottomRight, }; -const struct SpriteTemplate gUnknown_0855C5EC = { +static const struct SpriteTemplate sSpriteTemplate_DeoxysRockFragment = { .tileTag = 0xFFFF, .paletteTag = 4378, - .oam = &gOamData_855C218, - .anims = gSpriteAnimTable_855C5DC, - .images = gSpriteImageTable_855C59C, + .oam = &sOam_8x8, + .anims = sAnims_DeoxysRockFragment, + .images = sImages_DeoxysRockFragment, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B9DB8 + .callback = SpriteCB_DeoxysRockFragment }; -static void sub_80B9D24(struct Sprite* sprite) +static void CreateDeoxysRockFragments(struct Sprite* sprite) { int i; int xPos = (s16)gTotalCameraPixelOffsetX + sprite->pos1.x + sprite->pos2.x; @@ -3628,7 +3790,7 @@ static void sub_80B9D24(struct Sprite* sprite) for (i = 0; i < 4; i++) { - u8 spriteId = CreateSprite(&gUnknown_0855C5EC, xPos, yPos, 0); + u8 spriteId = CreateSprite(&sSpriteTemplate_DeoxysRockFragment, xPos, yPos, 0); if (spriteId != MAX_SPRITES) { StartSpriteAnim(&gSprites[spriteId], i); @@ -3638,8 +3800,9 @@ static void sub_80B9D24(struct Sprite* sprite) } } -static void sub_80B9DB8(struct Sprite* sprite) +static void SpriteCB_DeoxysRockFragment(struct Sprite* sprite) { + // 1 case for each fragment, fly off in 4 different directions switch (sprite->data[0]) { case 0: @@ -3659,7 +3822,7 @@ static void sub_80B9DB8(struct Sprite* sprite) sprite->pos1.y += 12; break; } - if ((u16)(sprite->pos1.x + 4) > 0xF8 || sprite->pos1.y < -4 || sprite->pos1.y > 0xA4) + if ((u16)(sprite->pos1.x + 4) > 248 || sprite->pos1.y < -4 || sprite->pos1.y > 164) DestroySprite(sprite); } diff --git a/src/field_effect_helpers.c b/src/field_effect_helpers.c index d6bffd2068..e3ca54f16d 100755 --- a/src/field_effect_helpers.c +++ b/src/field_effect_helpers.c @@ -817,19 +817,19 @@ u32 FldEff_Unknown19(void) return 0; } -u32 FldEff_UnusedGrass(void) +u32 FldEff_UnusedGrass2(void) { u8 spriteId; struct Sprite *sprite; sub_80930E0((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8); - spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_UNUSED_GRASS], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); + spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_UNUSED_GRASS_2], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); if (spriteId != MAX_SPRITES) { sprite = &gSprites[spriteId]; sprite->coordOffsetEnabled = TRUE; sprite->oam.priority = gFieldEffectArguments[3]; - sprite->data[0] = FLDEFF_UNUSED_GRASS; + sprite->data[0] = FLDEFF_UNUSED_GRASS_2; } return 0; } @@ -851,19 +851,19 @@ u32 FldEff_Unknown21(void) return 0; } -u32 FldEff_Unknown22(void) +u32 FldEff_WaterSurfacing(void) { u8 spriteId; struct Sprite *sprite; sub_80930E0((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8); - spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_20], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); + spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_WATER_SURFACING], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); if (spriteId != MAX_SPRITES) { sprite = &gSprites[spriteId]; sprite->coordOffsetEnabled = TRUE; sprite->oam.priority = gFieldEffectArguments[3]; - sprite->data[0] = FLDEFF_UNKNOWN_22; + sprite->data[0] = FLDEFF_WATER_SURFACING; } return 0; } @@ -960,33 +960,34 @@ u32 FldEff_SurfBlob(void) return spriteId; } -void sub_81555AC(u8 spriteId, u8 value) +// States for bobbing up and down while surfing +void SetSurfBobState(u8 spriteId, u8 value) { gSprites[spriteId].data[0] = (gSprites[spriteId].data[0] & ~0xF) | (value & 0xF); } -void sub_81555D8(u8 spriteId, u8 value) +void SetSurfBobWhileFlyingOutState(u8 spriteId, u8 value) { gSprites[spriteId].data[0] = (gSprites[spriteId].data[0] & ~0xF0) | ((value & 0xF) << 4); } -void sub_8155604(u8 spriteId, u8 value, s16 data1) +void SetSurfBobWhileFishingState(u8 spriteId, u8 value, s16 data1) { gSprites[spriteId].data[0] = (gSprites[spriteId].data[0] & ~0xF00) | ((value & 0xF) << 8); gSprites[spriteId].data[1] = data1; } -static u8 sub_8155638(struct Sprite *sprite) +static u8 GetSurfBobState(struct Sprite *sprite) { return sprite->data[0] & 0xF; } -static u8 sub_8155640(struct Sprite *sprite) +static u8 GetSurfBobWhileFlyingOutState(struct Sprite *sprite) { return (sprite->data[0] & 0xF0) >> 4; } -static u8 sub_815564C(struct Sprite *sprite) +static u8 GetSurfBobWhileFishingState(struct Sprite *sprite) { return (sprite->data[0] & 0xF00) >> 8; } @@ -1018,7 +1019,7 @@ static void SynchroniseSurfAnim(struct ObjectEvent *objectEvent, struct Sprite * [DIR_NORTHEAST] = 1, }; - if (sub_8155640(sprite) == 0) + if (GetSurfBobWhileFlyingOutState(sprite) == 0) StartSpriteAnimIfDifferent(sprite, surfBlobDirectionAnims[objectEvent->movementDirection]); } @@ -1049,8 +1050,8 @@ void sub_81556E8(struct ObjectEvent *objectEvent, struct Sprite *sprite) static void CreateBobbingEffect(struct ObjectEvent *objectEvent, struct Sprite *linkedSprite, struct Sprite *sprite) { u16 unk_085CDC6A[] = {3, 7}; - u8 v0 = sub_8155638(sprite); - if (v0 != 0) + u8 bobState = GetSurfBobState(sprite); + if (bobState != 0) { if (((u16)(++ sprite->data[4]) & unk_085CDC6A[sprite->data[5]]) == 0) { @@ -1060,9 +1061,9 @@ static void CreateBobbingEffect(struct ObjectEvent *objectEvent, struct Sprite * { sprite->data[3] = -sprite->data[3]; } - if (v0 != 2) + if (bobState != 2) { - if (sub_815564C(sprite) == 0) + if (GetSurfBobWhileFishingState(sprite) == 0) linkedSprite->pos2.y = sprite->pos2.y; else linkedSprite->pos2.y = sprite->data[1] + sprite->pos2.y; @@ -1358,61 +1359,72 @@ void UpdateSparkleFieldEffect(struct Sprite *sprite) FieldEffectStop(sprite, FLDEFF_SPARKLE); } -void sub_8155EA0(struct Sprite *sprite) +#define sTimer data[0] +#define sState data[2] +#define sStartY data[4] +#define sCounter data[5] +#define sAnimCounter data[6] +#define sAnimState data[7] + +// Same as InitSpriteForFigure8Anim +static void InitRayquazaForFigure8Anim(struct Sprite *sprite) { - sprite->data[6] = 0; - sprite->data[7] = 0; + sprite->sAnimCounter = 0; + sprite->sAnimState = 0; } -bool8 sub_8155EA8(struct Sprite *sprite) +// Only different from AnimateSpriteInFigure8 by the addition of SetGpuReg to move the spotlight +static bool8 AnimateRayquazaInFigure8(struct Sprite *sprite) { - bool8 returnBool = FALSE; + bool8 finished = FALSE; - switch (sprite->data[7]) + switch (sprite->sAnimState) { - case 0: - sprite->pos2.x += sub_809773C(sprite->data[6]); - sprite->pos2.y += sub_8097728(sprite->data[6]); - break; - case 1: - sprite->pos2.x -= sub_809773C(0x47 - sprite->data[6]); - sprite->pos2.y += sub_8097728(0x47 - sprite->data[6]); - break; - case 2: - sprite->pos2.x -= sub_809773C(sprite->data[6]); - sprite->pos2.y += sub_8097728(sprite->data[6]); - break; - case 3: - sprite->pos2.x += sub_809773C(0x47 - sprite->data[6]); - sprite->pos2.y += sub_8097728(0x47 - sprite->data[6]); - break; + case 0: + sprite->pos2.x += GetFigure8XOffset(sprite->sAnimCounter); + sprite->pos2.y += GetFigure8YOffset(sprite->sAnimCounter); + break; + case 1: + sprite->pos2.x -= GetFigure8XOffset((FIGURE_8_LENGTH - 1) - sprite->sAnimCounter); + sprite->pos2.y += GetFigure8YOffset((FIGURE_8_LENGTH - 1) - sprite->sAnimCounter); + break; + case 2: + sprite->pos2.x -= GetFigure8XOffset(sprite->sAnimCounter); + sprite->pos2.y += GetFigure8YOffset(sprite->sAnimCounter); + break; + case 3: + sprite->pos2.x += GetFigure8XOffset((FIGURE_8_LENGTH - 1) - sprite->sAnimCounter); + sprite->pos2.y += GetFigure8YOffset((FIGURE_8_LENGTH - 1) - sprite->sAnimCounter); + break; } + // Update spotlight to sweep left and right with Rayquaza SetGpuReg(REG_OFFSET_BG0HOFS, -sprite->pos2.x); - if (++sprite->data[6] == 72) + + if (++sprite->sAnimCounter == FIGURE_8_LENGTH) { - sprite->data[6] = 0; - sprite->data[7]++; + sprite->sAnimCounter = 0; + sprite->sAnimState++; } - if (sprite->data[7] == 4) + if (sprite->sAnimState == 4) { sprite->pos2.y = 0; sprite->pos2.x = 0; - returnBool = TRUE; + finished = TRUE; } - return returnBool; + return finished; } -void sub_8155F80(struct Sprite *sprite) +void UpdateRayquazaSpotlightEffect(struct Sprite *sprite) { u8 i, j; - switch (sprite->data[2]) + switch (sprite->sState) { case 0: - SetGpuReg(REG_OFFSET_BG0VOFS, 0x78 - (sprite->data[0] / 3)); - if (sprite->data[0] == 0x60) + SetGpuReg(REG_OFFSET_BG0VOFS, 120 - (sprite->sTimer / 3)); + if (sprite->sTimer == 96) { for (i = 0; i < 3; i++) { @@ -1422,42 +1434,42 @@ void sub_8155F80(struct Sprite *sprite) } } } - if (sprite->data[0] > 0x137) + if (sprite->sTimer > 311) { - sprite->data[2] = 1; - sprite->data[0] = 0; + sprite->sState = 1; + sprite->sTimer = 0; } break; case 1: - sprite->pos1.y = (gSineTable[sprite->data[0] / 3] >> 2) + sprite->data[4]; - if (sprite->data[0] == 0xBD) + sprite->pos1.y = (gSineTable[sprite->sTimer / 3] >> 2) + sprite->sStartY; + if (sprite->sTimer == 189) { - sprite->data[2] = 2; - sprite->data[5] = 0; - sprite->data[0] = 0; + sprite->sState = 2; + sprite->sCounter = 0; + sprite->sTimer = 0; } break; case 2: - if (sprite->data[0] == 0x3C) + if (sprite->sTimer == 60) { - sprite->data[5]++; - sprite->data[0] = 0; + sprite->sCounter++; + sprite->sTimer = 0; } - if (sprite->data[5] == 7) + if (sprite->sCounter == 7) { - sprite->data[5] = 0; - sprite->data[2] = 3; + sprite->sCounter = 0; + sprite->sState = 3; } break; case 3: if (sprite->pos2.y == 0) { - sprite->data[0] = 0; - sprite->data[2]++; + sprite->sTimer = 0; + sprite->sState++; } - if (sprite->data[0] == 5) + if (sprite->sTimer == 5) { - sprite->data[0] = 0; + sprite->sTimer = 0; if (sprite->pos2.y > 0) sprite->pos2.y--; else @@ -1465,38 +1477,38 @@ void sub_8155F80(struct Sprite *sprite) } break; case 4: - if (sprite->data[0] == 0x3C) + if (sprite->sTimer == 60) { - sprite->data[2] = 5; - sprite->data[0] = 0; - sprite->data[5] = 0; + sprite->sState = 5; + sprite->sTimer = 0; + sprite->sCounter = 0; } break; case 5: - sub_8155EA0(sprite); - sprite->data[2] = 6; - sprite->data[0] = 0; + InitRayquazaForFigure8Anim(sprite); + sprite->sState = 6; + sprite->sTimer = 0; break; case 6: - if (sub_8155EA8(sprite)) + if (AnimateRayquazaInFigure8(sprite)) { - sprite->data[0] = 0; - if (++sprite->data[5] <= 2) + sprite->sTimer = 0; + if (++sprite->sCounter <= 2) { - sub_8155EA0(sprite); + InitRayquazaForFigure8Anim(sprite); } else { - sprite->data[5] = 0; - sprite->data[2] = 7; + sprite->sCounter = 0; + sprite->sState = 7; } } break; case 7: - if (sprite->data[0] == 0x1E) + if (sprite->sTimer == 30) { - sprite->data[2] = 8; - sprite->data[0] = 0; + sprite->sState = 8; + sprite->sTimer = 0; } break; case 8: @@ -1508,11 +1520,11 @@ void sub_8155F80(struct Sprite *sprite) } } SetGpuReg(REG_OFFSET_BG0VOFS, 0); - FieldEffectStop(sprite, FLDEFF_RAYQUAZA); + FieldEffectStop(sprite, FLDEFF_RAYQUAZA_SPOTLIGHT); break; } - if (sprite->data[2] == 1) + if (sprite->sState == 1) { if ((sprite->data[1] & 7) == 0) sprite->pos2.y += sprite->data[3]; @@ -1521,10 +1533,17 @@ void sub_8155F80(struct Sprite *sprite) sprite->data[1]++; } - sprite->data[0]++; + sprite->sTimer++; } -void sub_8156194(struct Sprite *sprite) +#undef sTimer +#undef sState +#undef sStartY +#undef sCounter +#undef sAnimCounter +#undef sAnimState + +void UpdateJumpImpactEffect(struct Sprite *sprite) { if (sprite->animEnded) { diff --git a/src/field_player_avatar.c b/src/field_player_avatar.c index c482f39d6a..41ddfc17dd 100644 --- a/src/field_player_avatar.c +++ b/src/field_player_avatar.c @@ -320,7 +320,7 @@ static u8 ObjectEventCB2_NoMovement2(void) return 0; } -void player_step(u8 direction, u16 newKeys, u16 heldKeys) +void PlayerStep(u8 direction, u16 newKeys, u16 heldKeys) { struct ObjectEvent *playerObjEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; @@ -869,7 +869,7 @@ static void PlayerAvatarTransition_Surfing(struct ObjectEvent *objEvent) gFieldEffectArguments[2] = gPlayerAvatar.objectEventId; spriteId = FieldEffectStart(FLDEFF_SURF_BLOB); objEvent->fieldEffectSpriteId = spriteId; - sub_81555AC(spriteId, 1); + SetSurfBobState(spriteId, 1); } static void PlayerAvatarTransition_Underwater(struct ObjectEvent *objEvent) @@ -885,7 +885,7 @@ static void PlayerAvatarTransition_ReturnToField(struct ObjectEvent *objEvent) gPlayerAvatar.flags |= PLAYER_AVATAR_FLAG_5; } -void sub_808B578(void) +void UpdatePlayerAvatarTransitionState(void) { gPlayerAvatar.tileTransitionState = T_NOT_MOVING; if (PlayerIsAnimActive()) @@ -1650,7 +1650,7 @@ static void Task_StopSurfingInit(u8 taskId) if (!ObjectEventClearHeldMovementIfFinished(playerObjEvent)) return; } - sub_81555AC(playerObjEvent->fieldEffectSpriteId, 2); + SetSurfBobState(playerObjEvent->fieldEffectSpriteId, 2); ObjectEventSetHeldMovement(playerObjEvent, GetJumpSpecialMovementAction((u8)gTasks[taskId].data[0])); gTasks[taskId].func = Task_WaitStopSurfing; } @@ -1934,7 +1934,7 @@ static bool8 Fishing11(struct Task *task) ObjectEventSetGraphicsId(playerObjEvent, task->tPlayerGfxId); ObjectEventTurn(playerObjEvent, playerObjEvent->movementDirection); if (gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_SURFING) - sub_8155604(gObjectEvents[gPlayerAvatar.objectEventId].fieldEffectSpriteId, 0, 0); + SetSurfBobWhileFishingState(gObjectEvents[gPlayerAvatar.objectEventId].fieldEffectSpriteId, 0, 0); gSprites[gPlayerAvatar.spriteId].pos2.x = 0; gSprites[gPlayerAvatar.spriteId].pos2.y = 0; ClearDialogWindowAndFrame(0, TRUE); @@ -1994,7 +1994,7 @@ static bool8 Fishing15(struct Task *task) ObjectEventSetGraphicsId(playerObjEvent, task->tPlayerGfxId); ObjectEventTurn(playerObjEvent, playerObjEvent->movementDirection); if (gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_SURFING) - sub_8155604(gObjectEvents[gPlayerAvatar.objectEventId].fieldEffectSpriteId, 0, 0); + SetSurfBobWhileFishingState(gObjectEvents[gPlayerAvatar.objectEventId].fieldEffectSpriteId, 0, 0); gSprites[gPlayerAvatar.spriteId].pos2.x = 0; gSprites[gPlayerAvatar.spriteId].pos2.y = 0; task->tStep++; @@ -2053,7 +2053,7 @@ static void AlignFishingAnimationFrames(void) if (animType == 10 || animType == 11) playerSprite->pos2.y = 8; if (gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_SURFING) - sub_8155604(gObjectEvents[gPlayerAvatar.objectEventId].fieldEffectSpriteId, 1, playerSprite->pos2.y); + SetSurfBobWhileFishingState(gObjectEvents[gPlayerAvatar.objectEventId].fieldEffectSpriteId, 1, playerSprite->pos2.y); } void sub_808D074(u8 a0) diff --git a/src/field_screen_effect.c b/src/field_screen_effect.c index 971e58cf40..57dc27ed9b 100644 --- a/src/field_screen_effect.c +++ b/src/field_screen_effect.c @@ -290,7 +290,7 @@ void FieldCB_WarpExitFadeFromWhite(void) void FieldCB_WarpExitFadeFromBlack(void) { - if (!sub_81D6534()) // sub_81D6534 always returns false + if (!OnTrainerHillEReaderChallengeFloor()) // always false Overworld_PlaySpecialMapMusic(); FadeInFromBlack(); SetUpWarpExitTask(); diff --git a/src/fieldmap.c b/src/fieldmap.c index a046bf4fae..5eb00ad270 100644 --- a/src/fieldmap.c +++ b/src/fieldmap.c @@ -44,7 +44,7 @@ static void InitBackupMapLayoutConnections(struct MapHeader *mapHeader); static void LoadSavedMapView(void); static bool8 SkipCopyingMetatileFromSavedMap(u16* mapMetatilePtr, u16 mapWidth, u8 yMode); -struct MapHeader const *const mapconnection_get_mapheader(struct MapConnection *connection) +struct MapHeader const *const GetMapHeaderFromConnection(struct MapConnection *connection) { return Overworld_GetMapHeaderByGroupAndId(connection->mapGroup, connection->mapNum); } @@ -124,7 +124,7 @@ static void InitBackupMapLayoutConnections(struct MapHeader *mapHeader) gMapConnectionFlags = sDummyConnectionFlags; for (i = 0; i < count; i++, connection++) { - struct MapHeader const *cMap = mapconnection_get_mapheader(connection); + struct MapHeader const *cMap = GetMapHeaderFromConnection(connection); u32 offset = connection->offset; switch (connection->direction) { @@ -734,7 +734,7 @@ int CanCameraMoveInDirection(int direction) void sub_80887F8(struct MapConnection *connection, int direction, int x, int y) { struct MapHeader const *mapHeader; - mapHeader = mapconnection_get_mapheader(connection); + mapHeader = GetMapHeaderFromConnection(connection); switch (direction) { case CONNECTION_EAST: @@ -805,7 +805,7 @@ struct MapConnection *sub_8088950(u8 direction, int x, int y) bool8 sub_80889A8(u8 direction, int x, int y, struct MapConnection *connection) { struct MapHeader const *mapHeader; - mapHeader = mapconnection_get_mapheader(connection); + mapHeader = GetMapHeaderFromConnection(connection); switch (direction) { case CONNECTION_SOUTH: @@ -846,7 +846,7 @@ int sub_8088A38(int x, int width) int sub_8088A4C(struct MapConnection *connection, int x, int y) { struct MapHeader const *mapHeader; - mapHeader = mapconnection_get_mapheader(connection); + mapHeader = GetMapHeaderFromConnection(connection); switch (connection->direction) { case CONNECTION_SOUTH: @@ -893,7 +893,7 @@ struct MapConnection *GetConnectionAtCoords(s16 x, s16 y) return NULL; } -void sub_8088B3C(u16 x, u16 y) +void SetCameraFocusCoords(u16 x, u16 y) { gSaveBlock1Ptr->pos.x = x - 7; gSaveBlock1Ptr->pos.y = y - 7; @@ -905,7 +905,8 @@ void GetCameraFocusCoords(u16 *x, u16 *y) *y = gSaveBlock1Ptr->pos.y + 7; } -void SetPlayerCoords(u16 x, u16 y) +// Unused +static void SetCameraCoords(u16 x, u16 y) { gSaveBlock1Ptr->pos.x = x; gSaveBlock1Ptr->pos.y = y; diff --git a/src/fldeff_cut.c b/src/fldeff_cut.c index f5e06e8f6a..2c9151598e 100644 --- a/src/fldeff_cut.c +++ b/src/fldeff_cut.c @@ -122,12 +122,12 @@ static const struct SpriteFrameImage sSpriteImageTable_CutGrass[] = {gFieldEffectPic_CutGrass, 0x20}, }; -const struct SpritePalette gFieldEffectObjectPaletteInfo6 = {gFieldEffectObjectPalette6, 0x1000}; +const struct SpritePalette gFieldEffectObjectPaletteInfo6 = {gFieldEffectObjectPalette6, FLDEFF_PAL_TAG_0}; static const struct SpriteTemplate sSpriteTemplate_CutGrass = { .tileTag = 0xFFFF, - .paletteTag = 0x1000, + .paletteTag = FLDEFF_PAL_TAG_0, .oam = &sOamData_CutGrass, .anims = sSpriteAnimTable_CutGrass, .images = sSpriteImageTable_CutGrass, diff --git a/src/fldeff_misc.c b/src/fldeff_misc.c index f197b7b33c..bb5bd65d76 100644 --- a/src/fldeff_misc.c +++ b/src/fldeff_misc.c @@ -209,7 +209,7 @@ static const struct SpriteFrameImage gUnknown_858E5D8[] = static const struct SpriteTemplate gUnknown_0858E600 = { .tileTag = 0xFFFF, - .paletteTag = 0x1003, + .paletteTag = FLDEFF_PAL_TAG_3, .oam = &gOamData_858E4D8, .anims = gSpriteAnimTable_858E570, .images = gUnknown_858E588, @@ -220,7 +220,7 @@ static const struct SpriteTemplate gUnknown_0858E600 = static const struct SpriteTemplate gUnknown_0858E618 = { .tileTag = 0xFFFF, - .paletteTag = 0x1008, + .paletteTag = FLDEFF_PAL_TAG_8, .oam = &gOamData_858E4D8, .anims = gSpriteAnimTable_858E574, .images = gUnknown_858E5B0, @@ -231,7 +231,7 @@ static const struct SpriteTemplate gUnknown_0858E618 = static const struct SpriteTemplate gUnknown_0858E630 = { .tileTag = 0xFFFF, - .paletteTag = 0x1008, + .paletteTag = FLDEFF_PAL_TAG_8, .oam = &gOamData_858E4D8, .anims = gSpriteAnimTable_858E584, .images = gUnknown_858E5D8, @@ -239,8 +239,8 @@ static const struct SpriteTemplate gUnknown_0858E630 = .callback = ShrubEntranceSpriteCallback1, }; -const struct SpritePalette gFieldEffectObjectPaletteInfo7 = {gFieldEffectObjectPalette7, 0x1003}; -const struct SpritePalette gFieldEffectObjectPaletteInfo8 = {gFieldEffectObjectPalette8, 0x1008}; +const struct SpritePalette gFieldEffectObjectPaletteInfo7 = {gFieldEffectObjectPalette7, FLDEFF_PAL_TAG_3}; +const struct SpritePalette gFieldEffectObjectPaletteInfo8 = {gFieldEffectObjectPalette8, FLDEFF_PAL_TAG_8}; static const struct OamData gOamData_858E658 = { @@ -277,7 +277,7 @@ static const struct SpriteFrameImage gUnknown_0858E674[] = static const struct SpriteTemplate gUnknown_0858E68C = { .tileTag = 0xFFFF, - .paletteTag = 0x100E, + .paletteTag = FLDEFF_PAL_TAG_14, .oam = &gOamData_858E658, .anims = gSpriteAnimTable_858E670, .images = gUnknown_0858E674, @@ -286,7 +286,7 @@ static const struct SpriteTemplate gUnknown_0858E68C = }; // This uses one of the secret base palettes, so there is no "graphics/field_effects/palettes/09.pal" file. -const struct SpritePalette gFieldEffectObjectPaletteInfo9 = {gTilesetPalettes_SecretBase[5], 0x100E}; +const struct SpritePalette gFieldEffectObjectPaletteInfo9 = {gTilesetPalettes_SecretBase[5], FLDEFF_PAL_TAG_14}; static const u8 gSpriteImage_858E6AC[] = INCBIN_U8("graphics/unknown/858E84C/0.4bpp"); static const u8 gSpriteImage_858E72C[] = INCBIN_U8("graphics/unknown/858E84C/1.4bpp"); @@ -300,7 +300,7 @@ static const struct SpriteFrameImage gUnknown_0858E84C[] = {gSpriteImage_858E7AC, sizeof(gSpriteImage_858E7AC)}, }; -static const struct SpritePalette gUnknown_0858E864 = {gUnknown_0858E82C, 0x1000}; +static const struct SpritePalette gUnknown_0858E864 = {gUnknown_0858E82C, FLDEFF_PAL_TAG_0}; static const union AnimCmd gSpriteAnim_858E86C[] = { @@ -318,7 +318,7 @@ static const union AnimCmd *const gSpriteAnimTable_858E87C[] = static const struct SpriteTemplate gUnknown_0858E880 = { .tileTag = 0xFFFF, - .paletteTag = 0x1000, + .paletteTag = FLDEFF_PAL_TAG_0, .oam = &gObjectEventBaseOam_32x8, .anims = gSpriteAnimTable_858E87C, .images = gUnknown_0858E84C, diff --git a/src/item_use.c b/src/item_use.c index ff689a19ae..a90321a3bc 100755 --- a/src/item_use.c +++ b/src/item_use.c @@ -399,7 +399,7 @@ static bool8 IsHiddenItemPresentInConnection(struct MapConnection *connection, i u32 localOffset; s32 localLength; - struct MapHeader const *const mapHeader = mapconnection_get_mapheader(connection); + struct MapHeader const *const mapHeader = GetMapHeaderFromConnection(connection); switch (connection->direction) { diff --git a/src/overworld.c b/src/overworld.c index 530699f831..bfe6929887 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -96,24 +96,24 @@ static void VBlankCB_Field(void); static void SpriteCB_LinkPlayer(struct Sprite *sprite); static void ChooseAmbientCrySpecies(void); static void DoMapLoadLoop(u8 *state); +static bool32 LoadMapInStepsLocal(u8 *state, bool32); static bool32 LoadMapInStepsLink(u8 *state); static bool32 ReturnToFieldLocal(u8 *state); -static bool32 LoadMapInStepsLocal(u8 *state, bool32); static bool32 ReturnToFieldLink(u8 *state); -static void mli4_mapscripts_and_other(void); +static void InitObjectEventsLink(void); +static void InitObjectEventsLocal(void); static void InitOverworldGraphicsRegisters(void); static u8 GetSpriteForLinkedPlayer(u8); static u16 KeyInterCB_SendNothing(u32 a1); -static void sub_80867C8(void); +static void ResetMirageTowerAndSaveBlockPtrs(void); static void sub_80867D8(void); -static void sub_8086AE4(void); -static void sub_80869DC(void); -static void sub_8086B14(void); +static void OffsetCameraFocusByLinkPlayerId(void); +static void SpawnLinkPlayers(void); static void SetCameraToTrackGuestPlayer(void); -static void sub_8086988(bool32 arg0); +static void ResumeMap(bool32 arg0); static void SetCameraToTrackPlayer(void); static void sub_8086A68(void); -static void sub_8086860(void); +static void InitViewGraphics(void); static void SetCameraToTrackGuestPlayer_2(void); static void CreateLinkPlayerSprites(void); static void ClearAllPlayerKeys(void); @@ -520,7 +520,7 @@ void Overworld_SetObjEventTemplateMovementType(u8 localId, u8 movementType) } } -static void mapdata_load_assets_to_gpu_and_full_redraw(void) +static void InitMapView(void) { ResetFieldCamera(); CopyMapTilesetsToVram(gMapHeader.mapLayout); @@ -939,7 +939,7 @@ static u8 GetAdjustedInitialDirection(struct InitialPlayerAvatarState *playerStr else if (MetatileBehavior_IsEastArrowWarp(metatileBehavior) == TRUE) return DIR_WEST; else if ((playerStruct->transitionFlags == PLAYER_AVATAR_FLAG_UNDERWATER && transitionFlags == PLAYER_AVATAR_FLAG_SURFING) - || (playerStruct->transitionFlags == PLAYER_AVATAR_FLAG_SURFING && transitionFlags == PLAYER_AVATAR_FLAG_UNDERWATER )) + || (playerStruct->transitionFlags == PLAYER_AVATAR_FLAG_SURFING && transitionFlags == PLAYER_AVATAR_FLAG_UNDERWATER)) return playerStruct->direction; else if (MetatileBehavior_IsLadder(metatileBehavior) == TRUE) return playerStruct->direction; @@ -1421,7 +1421,7 @@ static void DoCB1_Overworld(u16 newKeys, u16 heldKeys) { struct FieldInput inputStruct; - sub_808B578(); + UpdatePlayerAvatarTransitionState(); FieldClearPlayerInput(&inputStruct); FieldGetPlayerInput(&inputStruct, newKeys, heldKeys); if (!ScriptContext2_IsEnabled()) @@ -1433,7 +1433,7 @@ static void DoCB1_Overworld(u16 newKeys, u16 heldKeys) } else { - player_step(inputStruct.dpadDirection, newKeys, heldKeys); + PlayerStep(inputStruct.dpadDirection, newKeys, heldKeys); } } } @@ -1723,12 +1723,12 @@ void CB2_ContinueSavedGame(void) ClearContinueGameWarpStatus(); SetWarpDestinationToContinueGameWarp(); WarpIntoMap(); - sub_80EDB44(); + TryPutTodaysRivalTrainerOnAir(); SetMainCallback2(CB2_LoadMap); } else { - sub_80EDB44(); + TryPutTodaysRivalTrainerOnAir(); gFieldCallback = sub_8086204; SetMainCallback1(CB1_Overworld); CB2_ReturnToField(); @@ -1797,7 +1797,7 @@ static bool32 LoadMapInStepsLink(u8 *state) InitOverworldBgs(); ScriptContext1_Init(); ScriptContext2_Disable(); - sub_80867C8(); + ResetMirageTowerAndSaveBlockPtrs(); sub_80867D8(); (*state)++; break; @@ -1806,13 +1806,13 @@ static bool32 LoadMapInStepsLink(u8 *state) (*state)++; break; case 2: - sub_8086988(TRUE); + ResumeMap(TRUE); (*state)++; break; case 3: - sub_8086AE4(); - sub_80869DC(); - sub_8086B14(); + OffsetCameraFocusByLinkPlayerId(); + InitObjectEventsLink(); + SpawnLinkPlayers(); SetCameraToTrackGuestPlayer(); (*state)++; break; @@ -1878,16 +1878,16 @@ static bool32 LoadMapInStepsLocal(u8 *state, bool32 a2) (*state)++; break; case 1: - sub_80867C8(); + ResetMirageTowerAndSaveBlockPtrs(); sub_80867D8(); (*state)++; break; case 2: - sub_8086988(a2); + ResumeMap(a2); (*state)++; break; case 3: - mli4_mapscripts_and_other(); + InitObjectEventsLocal(); SetCameraToTrackPlayer(); (*state)++; break; @@ -1945,16 +1945,16 @@ static bool32 ReturnToFieldLocal(u8 *state) switch (*state) { case 0: - sub_80867C8(); + ResetMirageTowerAndSaveBlockPtrs(); sub_80867D8(); - sub_8086988(FALSE); + ResumeMap(FALSE); sub_8086A68(); SetCameraToTrackPlayer(); (*state)++; break; case 1: - sub_8086860(); - sub_81D64C0(); + InitViewGraphics(); + TryLoadTrainerHillEReaderPalette(); (*state)++; break; case 2: @@ -1974,12 +1974,12 @@ static bool32 ReturnToFieldLink(u8 *state) { case 0: FieldClearVBlankHBlankCallbacks(); - sub_80867C8(); + ResetMirageTowerAndSaveBlockPtrs(); sub_80867D8(); (*state)++; break; case 1: - sub_8086988(TRUE); + ResumeMap(TRUE); (*state)++; break; case 2: @@ -2050,7 +2050,7 @@ static void DoMapLoadLoop(u8 *state) while (!LoadMapInStepsLocal(state, FALSE)); } -static void sub_80867C8(void) +static void ResetMirageTowerAndSaveBlockPtrs(void) { ClearMirageTowerPulseBlend(); MoveSaveBlocks_ResetHeap(); @@ -2067,12 +2067,12 @@ static void sub_80867D8(void) LoadOam(); } -static void sub_8086860(void) +static void InitViewGraphics(void) { InitCurrentFlashLevelScanlineEffect(); InitOverworldGraphicsRegisters(); InitTextBoxGfxAndPrinters(); - mapdata_load_assets_to_gpu_and_full_redraw(); + InitMapView(); } static void InitOverworldGraphicsRegisters(void) @@ -2110,7 +2110,7 @@ static void InitOverworldGraphicsRegisters(void) InitFieldMessageBox(); } -static void sub_8086988(bool32 a1) +static void ResumeMap(bool32 a1) { ResetTasks(); ResetSpriteData(); @@ -2133,7 +2133,7 @@ static void sub_8086988(bool32 a1) TryStartMirageTowerPulseBlendEffect(); } -static void sub_80869DC(void) +static void InitObjectEventsLink(void) { gTotalCameraPixelOffsetX = 0; gTotalCameraPixelOffsetY = 0; @@ -2142,7 +2142,7 @@ static void sub_80869DC(void) TryRunOnWarpIntoMapScript(); } -static void mli4_mapscripts_and_other(void) +static void InitObjectEventsLocal(void) { s16 x, y; struct InitialPlayerAvatarState *player; @@ -2183,17 +2183,17 @@ static void SetCameraToTrackGuestPlayer_2(void) InitCameraUpdateCallback(GetSpriteForLinkedPlayer(gLocalLinkPlayerId)); } -static void sub_8086AE4(void) +static void OffsetCameraFocusByLinkPlayerId(void) { u16 x, y; GetCameraFocusCoords(&x, &y); - // This is a hack of some kind; it's undone in sub_8086B14, which is called + // This is a hack of some kind; it's undone in SpawnLinkPlayers, which is called // soon after this function. - sub_8088B3C(x + gLocalLinkPlayerId, y); + SetCameraFocusCoords(x + gLocalLinkPlayerId, y); } -static void sub_8086B14(void) +static void SpawnLinkPlayers(void) { u16 i; u16 x, y; diff --git a/src/trainer_hill.c b/src/trainer_hill.c index d6cb498375..c5aea14d94 100644 --- a/src/trainer_hill.c +++ b/src/trainer_hill.c @@ -64,7 +64,7 @@ static void TrainerHillSetPlayerLost(void); static void TrainerHillGetChallengeStatus(void); static void BufferChallengeTime(void); static void GetAllFloorsUsed(void); -static void ClearVarResult(void); +static void GetInEReaderMode(void); static void IsTrainerHillChallengeActive(void); static void ShowTrainerHillPostBattleText(void); static void SetAllTrainerFlags(void); @@ -202,7 +202,7 @@ static const u16 *const *const sPrizeListSets[] = sPrizeLists2 }; -static const u16 sUnknown_0862A5D4[] = INCBIN_U16("graphics/pokenav/862A5D4.gbapal"); +static const u16 sEReader_Pal[] = INCBIN_U16("graphics/misc/trainer_hill_ereader.gbapal"); static const u8 sRecordWinColors[] = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GREY, TEXT_COLOR_LIGHT_GREY}; static const struct TrHillTag *const sDataPerTag[] = @@ -233,7 +233,7 @@ static void (* const sHillFunctions[])(void) = [TRAINER_HILL_FUNC_GET_CHALLENGE_STATUS] = TrainerHillGetChallengeStatus, [TRAINER_HILL_FUNC_GET_CHALLENGE_TIME] = BufferChallengeTime, [TRAINER_HILL_FUNC_GET_ALL_FLOORS_USED] = GetAllFloorsUsed, - [TRAINER_HILL_FUNC_CLEAR_RESULT] = ClearVarResult, + [TRAINER_HILL_FUNC_GET_IN_EREADER_MODE] = GetInEReaderMode, [TRAINER_HILL_FUNC_IN_CHALLENGE] = IsTrainerHillChallengeActive, [TRAINER_HILL_FUNC_POST_BATTLE_TEXT] = ShowTrainerHillPostBattleText, [TRAINER_HILL_FUNC_SET_ALL_TRAINER_FLAGS] = SetAllTrainerFlags, @@ -546,10 +546,11 @@ static void GetAllFloorsUsed(void) } // May have been dummied. Every time this is called a conditional for var result occurs afterwards -static void ClearVarResult(void) +// Relation to E-Reader is an assumption, most dummied Trainer Hill code seems to be JP E-Reader mode related +static void GetInEReaderMode(void) { SetUpDataStruct(); - gSpecialVar_Result = 0; + gSpecialVar_Result = FALSE; FreeDataStruct(); } @@ -997,11 +998,11 @@ static void SetAllTrainerFlags(void) gSaveBlock2Ptr->frontier.trainerFlags = 0xFF; } -// Palette never loaded, sub_81D6534 always FALSE -void sub_81D64C0(void) +// Palette never loaded, OnTrainerHillEReaderChallengeFloor always FALSE +void TryLoadTrainerHillEReaderPalette(void) { - if (sub_81D6534() == TRUE) - LoadPalette(sUnknown_0862A5D4, 0x70, 0x20); + if (OnTrainerHillEReaderChallengeFloor() == TRUE) + LoadPalette(sEReader_Pal, 0x70, 0x20); } static void GetGameSaved(void) @@ -1020,13 +1021,13 @@ static void ClearGameSaved(void) } // Always FALSE -bool32 sub_81D6534(void) +bool32 OnTrainerHillEReaderChallengeFloor(void) { if (!InTrainerHillChallenge() || GetCurrentTrainerHillMapId() == TRAINER_HILL_ENTRANCE) return FALSE; - ClearVarResult(); - if (gSpecialVar_Result == 0) + GetInEReaderMode(); + if (gSpecialVar_Result == FALSE) return FALSE; else return TRUE; diff --git a/src/trainer_see.c b/src/trainer_see.c index 68a16e208b..4f4aaea08a 100644 --- a/src/trainer_see.c +++ b/src/trainer_see.c @@ -559,7 +559,7 @@ static bool8 PopOutOfAshHiddenTrainer(u8 taskId, struct Task *task, struct Objec gFieldEffectArguments[1] = trainerObj->currentCoords.y; gFieldEffectArguments[2] = gSprites[trainerObj->spriteId].subpriority - 1; gFieldEffectArguments[3] = 2; - task->tOutOfAshSpriteId = FieldEffectStart(FLDEFF_POP_OUT_OF_ASH); + task->tOutOfAshSpriteId = FieldEffectStart(FLDEFF_ASH_PUFF); task->tFuncId++; } return FALSE; @@ -586,7 +586,7 @@ static bool8 JumpInPlaceHiddenTrainer(u8 taskId, struct Task *task, struct Objec static bool8 WaitRevealHiddenTrainer(u8 taskId, struct Task *task, struct ObjectEvent *trainerObj) { - if (!FieldEffectActiveListContains(FLDEFF_POP_OUT_OF_ASH)) + if (!FieldEffectActiveListContains(FLDEFF_ASH_PUFF)) task->tFuncId = 3; return FALSE; @@ -610,7 +610,7 @@ static void sub_80B44C8(u8 taskId) task->data[7]++; } sTrainerSeeFuncList2[task->data[0]](taskId, task, objEvent); - if (task->data[0] == 3 && !FieldEffectActiveListContains(FLDEFF_POP_OUT_OF_ASH)) + if (task->data[0] == 3 && !FieldEffectActiveListContains(FLDEFF_ASH_PUFF)) { SetTrainerMovementType(objEvent, GetTrainerFacingDirectionMovementType(objEvent->facingDirection)); TryOverrideTemplateCoordsForObjectEvent(objEvent, GetTrainerFacingDirectionMovementType(objEvent->facingDirection)); diff --git a/src/tv.c b/src/tv.c index eaf30f82b8..17a02be6b9 100644 --- a/src/tv.c +++ b/src/tv.c @@ -1930,7 +1930,7 @@ void sub_80EDA80(void) } } -void sub_80EDB44(void) +void TryPutTodaysRivalTrainerOnAir(void) { TVShow *show; u32 i; From eb80012757b664a474f3c745115aa4f109b69443 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Mon, 29 Jun 2020 11:41:09 -0400 Subject: [PATCH 003/101] Document more misc field effects --- data/field_effect_scripts.s | 20 +- data/scripts/field_move_scripts.inc | 6 +- .../palettes/record_mix_lights.pal} | 0 .../field_effects/pics/record_mix_lights.png | Bin 0 -> 199 bytes graphics/field_effects/pics/sand_pillar.png | Bin 0 -> 673 bytes .../pics/sand_pillar}/0.png | Bin .../pics/sand_pillar}/1.png | Bin .../pics/sand_pillar}/2.png | Bin .../field_effects/pics/secret_power_cave.png | Bin 0 -> 356 bytes .../field_effects/pics/secret_power_shrub.png | Bin 0 -> 270 bytes .../field_effects/pics/secret_power_tree.png | Bin 0 -> 304 bytes graphics/unknown/858E588/0.png | Bin 145 -> 0 bytes graphics/unknown/858E588/1.png | Bin 149 -> 0 bytes graphics/unknown/858E588/2.png | Bin 138 -> 0 bytes graphics/unknown/858E588/3.png | Bin 133 -> 0 bytes graphics/unknown/858E588/4.png | Bin 114 -> 0 bytes graphics/unknown/858E5B0/0.png | Bin 89 -> 0 bytes graphics/unknown/858E5B0/1.png | Bin 109 -> 0 bytes graphics/unknown/858E5B0/2.png | Bin 119 -> 0 bytes graphics/unknown/858E5B0/3.png | Bin 123 -> 0 bytes graphics/unknown/858E5B0/4.png | Bin 129 -> 0 bytes graphics/unknown/858E5B0/5.png | Bin 126 -> 0 bytes graphics/unknown/858E5D8/0.png | Bin 87 -> 0 bytes graphics/unknown/858E5D8/1.png | Bin 116 -> 0 bytes graphics/unknown/858E5D8/2.png | Bin 131 -> 0 bytes graphics/unknown/858E5D8/3.png | Bin 115 -> 0 bytes graphics/unknown/858E5D8/4.png | Bin 92 -> 0 bytes graphics/unknown/858E84C/0.png | Bin 103 -> 0 bytes graphics/unknown/858E84C/1.png | Bin 107 -> 0 bytes graphics/unknown/858E84C/2.png | Bin 107 -> 0 bytes include/event_scripts.h | 2 +- include/fldeff_misc.h | 22 +- spritesheet_rules.mk | 15 + src/field_effect.c | 52 +- src/fieldmap.c | 2 +- src/fldeff_cut.c | 158 +++--- src/fldeff_misc.c | 515 +++++++++--------- src/fldeff_rocksmash.c | 46 +- src/hall_of_fame.c | 8 +- src/pokemon_storage_system.c | 12 +- src/record_mixing.c | 4 +- 41 files changed, 446 insertions(+), 416 deletions(-) rename graphics/{unknown/unknown_58E82C.pal => field_effects/palettes/record_mix_lights.pal} (100%) create mode 100644 graphics/field_effects/pics/record_mix_lights.png create mode 100644 graphics/field_effects/pics/sand_pillar.png rename graphics/{unknown/858E674 => field_effects/pics/sand_pillar}/0.png (100%) rename graphics/{unknown/858E674 => field_effects/pics/sand_pillar}/1.png (100%) rename graphics/{unknown/858E674 => field_effects/pics/sand_pillar}/2.png (100%) create mode 100644 graphics/field_effects/pics/secret_power_cave.png create mode 100644 graphics/field_effects/pics/secret_power_shrub.png create mode 100644 graphics/field_effects/pics/secret_power_tree.png delete mode 100644 graphics/unknown/858E588/0.png delete mode 100644 graphics/unknown/858E588/1.png delete mode 100644 graphics/unknown/858E588/2.png delete mode 100644 graphics/unknown/858E588/3.png delete mode 100644 graphics/unknown/858E588/4.png delete mode 100644 graphics/unknown/858E5B0/0.png delete mode 100644 graphics/unknown/858E5B0/1.png delete mode 100644 graphics/unknown/858E5B0/2.png delete mode 100644 graphics/unknown/858E5B0/3.png delete mode 100644 graphics/unknown/858E5B0/4.png delete mode 100644 graphics/unknown/858E5B0/5.png delete mode 100644 graphics/unknown/858E5D8/0.png delete mode 100644 graphics/unknown/858E5D8/1.png delete mode 100644 graphics/unknown/858E5D8/2.png delete mode 100644 graphics/unknown/858E5D8/3.png delete mode 100644 graphics/unknown/858E5D8/4.png delete mode 100644 graphics/unknown/858E84C/0.png delete mode 100644 graphics/unknown/858E84C/1.png delete mode 100644 graphics/unknown/858E84C/2.png diff --git a/data/field_effect_scripts.s b/data/field_effect_scripts.s index 6850154d30..23b1841224 100644 --- a/data/field_effect_scripts.s +++ b/data/field_effect_scripts.s @@ -52,8 +52,8 @@ gFieldEffectScriptPointers:: @ 82DB9D4 .4byte gFieldEffectScript_UseDive @ FLDEFF_USE_DIVE .4byte gFieldEffectScript_Pokeball @ FLDEFF_POKEBALL .4byte gFieldEffectScript_HeartIcon @ FLDEFF_HEART_ICON - .4byte gFieldEffectScript_Unknown47 @ FLDEFF_NOP_47 - .4byte gFieldEffectScript_Unknown48 @ FLDEFF_NOP_48 + .4byte gFieldEffectScript_Nop47 @ FLDEFF_NOP_47 + .4byte gFieldEffectScript_Nop48 @ FLDEFF_NOP_48 .4byte gFieldEffectScript_AshPuff @ FLDEFF_ASH_PUFF .4byte gFieldEffectScript_AshLaunch @ FLDEFF_ASH_LAUNCH .4byte gFieldEffectScript_SweetScent @ FLDEFF_SWEET_SCENT @@ -263,12 +263,12 @@ gFieldEffectScript_HeartIcon:: @ 82DBC56 field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, FldEff_HeartIcon field_eff_end -gFieldEffectScript_Unknown47:: @ 82DBC60 - field_eff_callnative FldEff_NopA6FC +gFieldEffectScript_Nop47:: @ 82DBC60 + field_eff_callnative FldEff_Nop47 field_eff_end -gFieldEffectScript_Unknown48:: @ 82DBC66 - field_eff_callnative FldEff_NopA700 +gFieldEffectScript_Nop48:: @ 82DBC66 + field_eff_callnative FldEff_Nop48 field_eff_end gFieldEffectScript_AshPuff:: @ 82DBC6C @@ -284,7 +284,7 @@ gFieldEffectScript_SweetScent:: @ 82DBC80 field_eff_end gFieldEffectScript_SandPillar:: @ 82DBC86 - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo9, FldEff_SandPillar + field_eff_loadfadedpal_callnative gSpritePalette_SandPillar, FldEff_SandPillar field_eff_end gFieldEffectScript_Bubbles:: @ 82DBC90 @@ -296,15 +296,15 @@ gFieldEffectScript_Sparkle:: @ 82DBC9A field_eff_end gFieldEffectScript_ShowSecretPowerCave:: @ 82DBCA4 - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo7, FldEff_SecretPowerCave + field_eff_loadfadedpal_callnative gSpritePalette_SecretPower_Cave, FldEff_SecretPowerCave field_eff_end gFieldEffectScript_ShowSecretPowerTree:: @ 82DBCAE - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo8, FldEff_SecretPowerTree + field_eff_loadfadedpal_callnative gSpritePalette_SecretPower_Plant, FldEff_SecretPowerTree field_eff_end gFieldEffectScript_ShowSecretPowerShrub:: @ 82DBCB8 - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo8, FldEff_SecretPowerShrub + field_eff_loadfadedpal_callnative gSpritePalette_SecretPower_Plant, FldEff_SecretPowerShrub field_eff_end gFieldEffectScript_ShowCutGrass:: @ 82DBCC2 diff --git a/data/scripts/field_move_scripts.inc b/data/scripts/field_move_scripts.inc index 56e3297b6e..c5647daa42 100644 --- a/data/scripts/field_move_scripts.inc +++ b/data/scripts/field_move_scripts.inc @@ -77,7 +77,7 @@ EventScript_RockSmash:: @ 82907A6 goto EventScript_SmashRock end -EventScript_FldEffRockSmash:: @ 82907F0 +EventScript_RockSmashFromPartyMenu:: @ 82907F0 lockall dofieldeffect FLDEFF_USE_ROCK_SMASH waitstate @@ -89,10 +89,10 @@ EventScript_SmashRock:: @ 82907FB waitmovement 0 removeobject VAR_LAST_TALKED specialvar VAR_RESULT, TryUpdateRusturfTunnelState - compare VAR_RESULT, 1 + compare VAR_RESULT, TRUE goto_if_eq EventScript_EndSmash special RockSmashWildEncounter - compare VAR_RESULT, 0 + compare VAR_RESULT, FALSE goto_if_eq EventScript_EndSmash waitstate releaseall diff --git a/graphics/unknown/unknown_58E82C.pal b/graphics/field_effects/palettes/record_mix_lights.pal similarity index 100% rename from graphics/unknown/unknown_58E82C.pal rename to graphics/field_effects/palettes/record_mix_lights.pal diff --git a/graphics/field_effects/pics/record_mix_lights.png b/graphics/field_effects/pics/record_mix_lights.png new file mode 100644 index 0000000000000000000000000000000000000000..b6d3d65376b42abc4ca368667ec6377615c8c2c2 GIT binary patch literal 199 zcmeAS@N?(olHy`uVBq!ia0vp^2|&!j!VDz82tKy~QU(D&A+A9BKMel|u?T=uvo2)= zl>~XZIEF|}-P+&HdBA|fB|eCKg3kkvZ6yo~f4{#{+&WE0<~e&M$M2_%%jP_pF;`Dq zxk~-^BZUni#kJ0Jm|pCNn`~{CVK?= zGB8xBF)%c=FfjZA3N^f7U?>G@e3ih!U^Rn*LA+qju0R{0glK?Ih-=W6pe;+1ii?Y{ z9_^me>=+aj^#A|=(qczXpaRAuZ+92A#Izl?Kn{C}r>`sf6E<04YeviG-hn_Nf#gKL zG7t^K3P217sRx*^0=4FPx;TbtoL@W9vFNq|kE>(%O>U;m+t-xDi&!y4Hvc|zW8eSK zUyhcKPx?$d+9o7t_kmOB@BN5#_RI9u{~CMznrDAf>Dzbp1z9!>XYU_STl6+yN#nj2 z`Lvj6T`9|UUh@8>cxDgNl5{)UleZ?sXLIzus`+B2dq#WQZd+rwX!-Bb{l`5gdsh5u)zV*^e{^>B>&i{Xepz4qwZnSd4fDEN=WYc|=A4?N z6JSuLTsv>Wu16vauWL1*-Q8j$U#2TG+vr+PSnJM~x4uVH_*-W<{uJBA7;)v;2klw) zjkXMTRvzOqyjFKu|8SW`4!^6g^Y6Oksh8L;B>#B$>MxuAj_cJs9z}R=ITU_=#WDS~ z9q!B4pJo0!%h=|sPr=0p&pzw6^xA*ilJN0gzu@}GMaMQ@w*MjL`?fsAbptR4R7+eV zN>UO_QmvAUQh^kMk%5tcu7R1Zk!6UXrIoRnm5H&ofq|8Q!Q#VG?kE~^^HVa@DsgML TG;h&wP#k-@`njxgN@xNAt-cCp literal 0 HcmV?d00001 diff --git a/graphics/unknown/858E674/0.png b/graphics/field_effects/pics/sand_pillar/0.png similarity index 100% rename from graphics/unknown/858E674/0.png rename to graphics/field_effects/pics/sand_pillar/0.png diff --git a/graphics/unknown/858E674/1.png b/graphics/field_effects/pics/sand_pillar/1.png similarity index 100% rename from graphics/unknown/858E674/1.png rename to graphics/field_effects/pics/sand_pillar/1.png diff --git a/graphics/unknown/858E674/2.png b/graphics/field_effects/pics/sand_pillar/2.png similarity index 100% rename from graphics/unknown/858E674/2.png rename to graphics/field_effects/pics/sand_pillar/2.png diff --git a/graphics/field_effects/pics/secret_power_cave.png b/graphics/field_effects/pics/secret_power_cave.png new file mode 100644 index 0000000000000000000000000000000000000000..445b275f300cd86e19bc0a5281d80d5f2c7bec4e GIT binary patch literal 356 zcmeAS@N?(olHy`uVBq!ia0vp^0YEIk!VDyf)1Q6Bpyk-LdwgKLN{OVhyd!HEnBaWeJvTZ`HYXpEcrJ+H&)hmH&H_V$J&sAMaKD{kr?p zq*p)A?b;s1&rxwRs#vrszS+*_pu(PwPTLM`ILBLb_53yC^w%q+7HOTIVkrE?NO05D z8Hc-VLmXI+IP|yVn10QE+q*I(YQ+_)J%VD|X0@01%}(}}6%<}Ob*8|iP;VaBG*Qm}UzSiEz=;*rcKg=IiRIl}sZp;CNjHj!g%Q~loCIFCyn<4-J literal 0 HcmV?d00001 diff --git a/graphics/field_effects/pics/secret_power_shrub.png b/graphics/field_effects/pics/secret_power_shrub.png new file mode 100644 index 0000000000000000000000000000000000000000..322643372a4ec02c4b0804a1fa6561ada6cf6b76 GIT binary patch literal 270 zcmV+p0rCEcP)YrKHLi?DJl76xx?X$uPC?oY5lejmRA{7Y&n>#YG- zr{!Q_+Ig31*68umulaPy?x=ilTE328F!PBlM%M~bBN)jJ)JEu5N&@Gc{Vo@;lmrNz zGf~vy{3|6HEyurS9=x<{h0*f}WHy@Wm|9BYqcQ)hreuWbA){N~#zPTa^?nO`FZpK> UAvOx@od5s;07*qoM6N<$g6!9EEdT%j literal 0 HcmV?d00001 diff --git a/graphics/field_effects/pics/secret_power_tree.png b/graphics/field_effects/pics/secret_power_tree.png new file mode 100644 index 0000000000000000000000000000000000000000..8797417842783731f93bccd3156fdc2b4aa28c68 GIT binary patch literal 304 zcmV-00nh%4P)7s{egOP-q1F5Rs#ZHlGLzzi16Vy30PryLP{Ic3SS;;UGl0z?Jxi>W zrKEY{1rlpk;&8s9bpoC!&4b#y9#&PR`E7zSz{LP$>PtTXCn>bmmH9FKa*B4hjZh5o zN};=X96@oLOG`C73&m>y5tdvb?*1!WG2Q*&*d;$mlOO255tn8F0000}T8YKf!gSbLpe63Mb23PM_HN(C(#q>dwqKzmrZTYdLaRxQq*g_L?0D s+^Tt1F+<=oZ!6E6-8WT#eQ(-d!N9pE=5V`D#6^%@p00i_>zopr0DJg08vpW6usqBG_N?~Pd@tEzHP xA}O(*tNf$Ej>5%86DPZv;6;cBD>&=$T=H6+yPn2;OXk;vd$@?2>`ffIQ;+s diff --git a/graphics/unknown/858E588/2.png b/graphics/unknown/858E588/2.png deleted file mode 100644 index c006bb660962272d5b22f42aaf35aa9157e5ed8d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 138 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx+BpCi@`0fExfu1goAsjPnPZ{zx81OJ3_`@>M zZh=tZ`3rA;{x_fWW|@Pzip|^{;jkC-eV4AL)K8qh*=_~n6<*_3%N02u^Vm*xW*DjG lxo=SM{1A7iRcO!7<#9Z-lQyN~%l-yg;_2$=vd$@?2>^v&F$e$v diff --git a/graphics/unknown/858E588/3.png b/graphics/unknown/858E588/3.png deleted file mode 100644 index 67a3cf76900d5b9e3969ee2e94e7bc197a356a74..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 133 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx+BpCi@`0fExKAtX)AsjQ4fAF*NEHQdxxYX`{ zd0VH%-}DcA`KRux{{CL{|NifdJ=WFlE$;8Fp8xR7JLBcK@8<12{NeYRyLXqLe`k62 i!_8kk-`?Fl^^GBPX5oRhO&8XK%=dKlb6Mw<&;$UcMLY@s diff --git a/graphics/unknown/858E588/4.png b/graphics/unknown/858E588/4.png deleted file mode 100644 index e2a5aec4fbc57c3fa1c826d5ba60d8d4b1af9856..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 114 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx+BpCi@`0fExmYyz-AsjQ;c3k9SP~v4-nZ!(IX@j%n97R5#--8VE MboFyt=akR{01b^LMF0Q* diff --git a/graphics/unknown/858E5B0/0.png b/graphics/unknown/858E5B0/0.png deleted file mode 100644 index afd104d7ca67c876327122032566e81dfd84e429..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 89 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx+BpCi@`0fEx3Z5>GAsjQ4fAF*H{{H{}d4?tR l?|1X2zG*dj5R~A+&c^VqtajP_^v4b$J)W+9F6*2Ung9T}8?68U diff --git a/graphics/unknown/858E5B0/1.png b/graphics/unknown/858E5B0/1.png deleted file mode 100644 index 026b9b7afe1b01bd05528f1e44a04cf054c50148..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 109 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx+BpCi@`0fExCY~;iAsjQ4fBgUd|NVW3CdQ8P z_iYAs^KbGezOno(f9l46dEY1Btyj#tU;h2@7U!i34K{2H758hnO5PV}gUs=C^>bP0 Hl+XkKa49HV diff --git a/graphics/unknown/858E5B0/2.png b/graphics/unknown/858E5B0/2.png deleted file mode 100644 index 360e2ab63e655b5c4e37d564eca2f5b58dc37dd3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 119 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx+BpCi@`0fExcAhSdAsjQ4fBgUd|NVW3CdQ8P z_w5FC^Z)gqvtXY3Yd`xjhSQA_|G&R;PyVxyJM~R9Z|LUlW R`TQD?iJq>0F6*2UngCA@E}8%U diff --git a/graphics/unknown/858E5B0/3.png b/graphics/unknown/858E5B0/3.png deleted file mode 100644 index 88672c182463cab3c4f460b6a28e713ee5e5f9ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 123 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx+BpCi@`0fExPM$7~AsjPpPoLyvP~>5D_?54@ zCWs+`@s?PI0)O$%CyBi|s*D{G6U}@w{6x%t9@JkXbgfWe?t$k`oX+v~jK1IH)ZC_3 UNq&;ZNdTGZ>FVdQ&MBb@0E0{Kb)%E-UJ*m;Ea6{vytzVwS0)s<68T@ Yj1vFKtVI7${sS`D)78&qol`;+0QOKSs{jB1 diff --git a/graphics/unknown/858E5D8/0.png b/graphics/unknown/858E5D8/0.png deleted file mode 100644 index 110b1dd0a50dd8335d7b088e22c7641a824a2945..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 87 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx+BpCi@`0fExa-J@ZAsjQ4fAF*Nv`Fk<(3Af& j!0lF*hH|&WTNfh+?H#qLmmRGHK{`BL{an^LB{Ts5Q!*D0 diff --git a/graphics/unknown/858E5D8/1.png b/graphics/unknown/858E5D8/1.png deleted file mode 100644 index f50079de7f4ea6efe4bf84cac1e8ce51e9cfd692..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 116 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx+BpCi@`0fEx)}AhoAsjQ4fAF*N{E(=>?<`sW z?%reLu37T+ z|NXZ7X*H+qnWtI()_VK@|8|FC^Q%w)`@fs{>euHs9gLTl!+0(+r!{<;Q_FAq^SteZ eS=KMI6c`vf{i<#qH}^^bneOT8=d#Wzp$Py2XE5^s diff --git a/graphics/unknown/858E5D8/3.png b/graphics/unknown/858E5D8/3.png deleted file mode 100644 index 0ea6e43c96ecf571dcd7d06edad1637404b02236..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 115 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx+BpCi@`0fExR-P`7AsjQ4fAF*N+>reL&RH`5 zyt8Ebf}q!lS^FA88kb&bSS8`GC-rB#Ls0(t|EJhjTQY~W9_A8ZV>tPw+U@^;``;kb NJYD@<);T3K0RU#NCp-WE diff --git a/graphics/unknown/858E5D8/4.png b/graphics/unknown/858E5D8/4.png deleted file mode 100644 index 4b4e300bb70c593b700504e5e6c1aa568f6c7092..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 92 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx+BpCi@`0fEx%APKcAsjQ4fAF*Nm?Zw$&78W& owqL3Ao9&d3&*dTnUAR_oFdUYs^VeEhXAjcm>FVdQ&MBb@0MtAf@Bjb+ diff --git a/graphics/unknown/858E84C/0.png b/graphics/unknown/858E84C/0.png deleted file mode 100644 index 4673403e0349211ac4ae5d8064b66a773f39caa8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 103 zcmeAS@N?(olHy`uVBq!ia0vp^3P8-k0wfqJZYgTMd(|31I}fA?J;CnkpO=(@nk8a){x6Fgo0T-G@yGywoa CVI}JT diff --git a/graphics/unknown/858E84C/1.png b/graphics/unknown/858E84C/1.png deleted file mode 100644 index c55f2146d54f5e0f5b8a1c6aa12b914a0fd92f77..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 107 zcmeAS@N?(olHy`uVBq!ia0vp^3P8-k0wfqJ4V+hC0B8&@i*FfbHJ)V^C@CtwaT#naW#Wt~$( F699bhE2;nh diff --git a/graphics/unknown/858E84C/2.png b/graphics/unknown/858E84C/2.png deleted file mode 100644 index 4f03b50ae96a69b3c5fe1401e33c4f7edd93aad3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 107 zcmeAS@N?(olHy`uVBq!ia0vp^3P8-k0wfqJ4V+hC0data[11] = REG_WININ; task->data[12] = REG_WINOUT; StoreWordInTwoHalfwords(&task->data[13], (u32)gMain.vblankCallback); - task->tWinHoriz = WIN_RANGE(240, 241); - task->tWinVert = WIN_RANGE(80, 81); + task->tWinHoriz = WIN_RANGE(DISPLAY_WIDTH, DISPLAY_WIDTH + 1); + task->tWinVert = WIN_RANGE(DISPLAY_HEIGHT / 2, DISPLAY_HEIGHT / 2 + 1); task->tWinIn = WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR; task->tWinOut = WINOUT_WIN01_BG1 | WINOUT_WIN01_BG2 | WINOUT_WIN01_BG3 | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR; SetGpuReg(REG_OFFSET_WIN0H, task->tWinHoriz); @@ -2637,15 +2637,15 @@ static void FieldMoveShowMonOutdoorsEffect_CreateBanner(struct Task *task) if (horiz < 0) horiz = 0; - if (vertHi < 40) - vertHi = 40; + if (vertHi < DISPLAY_HEIGHT / 4) + vertHi = DISPLAY_HEIGHT / 4; - if (vertLo > 120) - vertLo = 120; + if (vertLo > DISPLAY_WIDTH / 2) + vertLo = DISPLAY_WIDTH / 2; task->tWinHoriz = (horiz << 8) | (task->tWinHoriz & 0xff); task->tWinVert = (vertHi << 8) | vertLo; - if (horiz == 0 && vertHi == 40 && vertLo == 120) + if (horiz == 0 && vertHi == DISPLAY_HEIGHT / 4 && vertLo == DISPLAY_WIDTH / 2) { gSprites[task->tMonSpriteId].callback = SpriteCB_FieldMoveMonSlideOnscreen; task->tState++; @@ -2670,15 +2670,15 @@ static void FieldMoveShowMonOutdoorsEffect_ShrinkBanner(struct Task *task) vertHi += 6; vertLo -= 6; - if (vertHi > 80) - vertHi = 80; + if (vertHi > DISPLAY_HEIGHT / 2) + vertHi = DISPLAY_HEIGHT / 2; - if (vertLo < 81) - vertLo = 81; + if (vertLo < DISPLAY_HEIGHT / 2 + 1) + vertLo = DISPLAY_HEIGHT / 2 + 1; task->tWinVert = (vertHi << 8) | vertLo; - if (vertHi == 80 && vertLo == 81) + if (vertHi == DISPLAY_HEIGHT / 2 && vertLo == DISPLAY_HEIGHT / 2 + 1) task->tState++; } @@ -2686,8 +2686,8 @@ static void FieldMoveShowMonOutdoorsEffect_RestoreBg(struct Task *task) { u16 bg0cnt = (REG_BG0CNT >> 8) << 11; CpuFill32(0, (void *)VRAM + bg0cnt, 0x800); - task->tWinHoriz = 241; - task->tWinVert = 161; + task->tWinHoriz = DISPLAY_WIDTH + 1; + task->tWinVert = DISPLAY_HEIGHT + 1; task->tWinIn = task->data[11]; task->tWinOut = task->data[12]; task->tState++; @@ -2787,8 +2787,8 @@ static void FieldMoveShowMonIndoorsEffect_SlideBannerOn(struct Task *task) { if (SlideIndoorBannerOnscreen(task)) { - SetGpuReg(REG_OFFSET_WIN1H, 0x00f0); - SetGpuReg(REG_OFFSET_WIN1V, 0x2878); + SetGpuReg(REG_OFFSET_WIN1H, WIN_RANGE(0, DISPLAY_WIDTH)); + SetGpuReg(REG_OFFSET_WIN1V, WIN_RANGE(DISPLAY_HEIGHT / 4, DISPLAY_HEIGHT - DISPLAY_HEIGHT / 4)); gSprites[task->tMonSpriteId].callback = SpriteCB_FieldMoveMonSlideOnscreen; task->tState++; } @@ -2807,8 +2807,8 @@ static void FieldMoveShowMonIndoorsEffect_RestoreBg(struct Task *task) AnimateIndoorShowMonBg(task); task->tBgOffsetIdx = task->tBgHoriz & 7; task->tBgOffset = 0; - SetGpuReg(REG_OFFSET_WIN1H, 0xffff); - SetGpuReg(REG_OFFSET_WIN1V, 0xffff); + SetGpuReg(REG_OFFSET_WIN1H, WIN_RANGE(0xFF, 0xFF)); + SetGpuReg(REG_OFFSET_WIN1V, WIN_RANGE(0xFF, 0xFF)); task->tState++; } @@ -2917,7 +2917,7 @@ static u8 InitFieldMoveMonSprite(u32 species, u32 otId, u32 personality) struct Sprite *sprite; v0 = (species & 0x80000000) >> 16; species &= 0x7fffffff; - monSprite = CreateMonSprite_FieldMove(species, otId, personality, 0x140, 0x50, 0); + monSprite = CreateMonSprite_FieldMove(species, otId, personality, 320, 80, 0); sprite = &gSprites[monSprite]; sprite->callback = SpriteCallbackDummy; sprite->oam.priority = 0; @@ -2928,9 +2928,9 @@ static u8 InitFieldMoveMonSprite(u32 species, u32 otId, u32 personality) static void SpriteCB_FieldMoveMonSlideOnscreen(struct Sprite *sprite) { - if ((sprite->pos1.x -= 20) <= 120) + if ((sprite->pos1.x -= 20) <= DISPLAY_WIDTH / 2) { - sprite->pos1.x = 120; + sprite->pos1.x = DISPLAY_WIDTH / 2; sprite->sOnscreenTimer = 30; sprite->callback = SpriteCB_FieldMoveMonWaitAfterCry; if (sprite->data[6]) @@ -2947,21 +2947,15 @@ static void SpriteCB_FieldMoveMonSlideOnscreen(struct Sprite *sprite) static void SpriteCB_FieldMoveMonWaitAfterCry(struct Sprite *sprite) { if ((--sprite->sOnscreenTimer) == 0) - { sprite->callback = SpriteCB_FieldMoveMonSlideOffscreen; - } } static void SpriteCB_FieldMoveMonSlideOffscreen(struct Sprite *sprite) { if (sprite->pos1.x < -64) - { sprite->sSlidOffscreen = TRUE; - } else - { sprite->pos1.x -= 20; - } } #undef tState @@ -3311,7 +3305,7 @@ static void StartFlyBirdSwoopDown(u8 spriteId) struct Sprite *sprite; sprite = &gSprites[spriteId]; sprite->callback = SpriteCB_FlyBirdSwoopDown; - sprite->pos1.x = 120; + sprite->pos1.x = DISPLAY_WIDTH / 2; sprite->pos1.y = 0; sprite->pos2.x = 0; sprite->pos2.y = 0; diff --git a/src/fieldmap.c b/src/fieldmap.c index 5eb00ad270..8e45add3f6 100644 --- a/src/fieldmap.c +++ b/src/fieldmap.c @@ -939,7 +939,7 @@ static bool8 SkipCopyingMetatileFromSavedMap(u16* mapMetatilePtr, u16 mapWidth, else mapMetatilePtr += mapWidth; - if (sub_80FADE4(*mapMetatilePtr & METATILE_ID_MASK, yMode) == 1) + if (IsLargeBreakableDecoration(*mapMetatilePtr & METATILE_ID_MASK, yMode) == TRUE) return TRUE; return FALSE; } diff --git a/src/fldeff_cut.c b/src/fldeff_cut.c index 2c9151598e..efd533d083 100644 --- a/src/fldeff_cut.c +++ b/src/fldeff_cut.c @@ -355,36 +355,36 @@ static void SetCutGrassMetatile(s16 x, s16 y) switch (metatileId) { - case METATILE_ID(Fortree, LongGrass_Root): - case METATILE_ID(General, LongGrass): - case METATILE_ID(General, TallGrass): - MapGridSetMetatileIdAt(x, y, METATILE_ID(General, Grass)); + case METATILE_Fortree_LongGrass_Root: + case METATILE_General_LongGrass: + case METATILE_General_TallGrass: + MapGridSetMetatileIdAt(x, y, METATILE_General_Grass); break; - case METATILE_ID(General, TallGrass_TreeLeft): - MapGridSetMetatileIdAt(x, y, METATILE_ID(General, Grass_TreeLeft)); + case METATILE_General_TallGrass_TreeLeft: + MapGridSetMetatileIdAt(x, y, METATILE_General_Grass_TreeLeft); break; - case METATILE_ID(General, TallGrass_TreeRight): - MapGridSetMetatileIdAt(x, y, METATILE_ID(General, Grass_TreeRight)); + case METATILE_General_TallGrass_TreeRight: + MapGridSetMetatileIdAt(x, y, METATILE_General_Grass_TreeRight); break; - case METATILE_ID(Fortree, SecretBase_LongGrass_BottomLeft): - MapGridSetMetatileIdAt(x, y, METATILE_ID(Fortree, SecretBase_LongGrass_TopLeft)); + case METATILE_Fortree_SecretBase_LongGrass_BottomLeft: + MapGridSetMetatileIdAt(x, y, METATILE_Fortree_SecretBase_LongGrass_TopLeft); break; - case METATILE_ID(Fortree, SecretBase_LongGrass_BottomMid): - MapGridSetMetatileIdAt(x, y, METATILE_ID(Fortree, SecretBase_LongGrass_TopMid)); + case METATILE_Fortree_SecretBase_LongGrass_BottomMid: + MapGridSetMetatileIdAt(x, y, METATILE_Fortree_SecretBase_LongGrass_TopMid); break; - case METATILE_ID(Fortree, SecretBase_LongGrass_BottomRight): - MapGridSetMetatileIdAt(x, y, METATILE_ID(Fortree, SecretBase_LongGrass_TopRight)); + case METATILE_Fortree_SecretBase_LongGrass_BottomRight: + MapGridSetMetatileIdAt(x, y, METATILE_Fortree_SecretBase_LongGrass_TopRight); break; - case METATILE_ID(Lavaridge, NormalGrass): - case METATILE_ID(Lavaridge, AshGrass): - MapGridSetMetatileIdAt(x, y, METATILE_ID(Lavaridge, LavaField)); + case METATILE_Lavaridge_NormalGrass: + case METATILE_Lavaridge_AshGrass: + MapGridSetMetatileIdAt(x, y, METATILE_Lavaridge_LavaField); break; - case METATILE_ID(Fallarbor, NormalGrass): - case METATILE_ID(Fallarbor, AshGrass): - MapGridSetMetatileIdAt(x, y, METATILE_ID(Fallarbor, AshField)); + case METATILE_Fallarbor_NormalGrass: + case METATILE_Fallarbor_AshGrass: + MapGridSetMetatileIdAt(x, y, METATILE_Fallarbor_AshField); break; - case METATILE_ID(General, TallGrass_TreeUp): - MapGridSetMetatileIdAt(x, y, METATILE_ID(General, Grass_TreeUp)); + case METATILE_General_TallGrass_TreeUp: + MapGridSetMetatileIdAt(x, y, METATILE_General_Grass_TreeUp); break; } } @@ -402,13 +402,13 @@ static u8 GetLongGrassCaseAt(s16 x, s16 y) { u16 metatileId = MapGridGetMetatileIdAt(x, y); - if (metatileId == METATILE_ID(General, Grass)) + if (metatileId == METATILE_General_Grass) return LONG_GRASS_FIELD; - else if (metatileId == METATILE_ID(Fortree, SecretBase_LongGrass_TopLeft)) + else if (metatileId == METATILE_Fortree_SecretBase_LongGrass_TopLeft) return LONG_GRASS_BASE_LEFT; - else if (metatileId == METATILE_ID(Fortree, SecretBase_LongGrass_TopMid)) + else if (metatileId == METATILE_Fortree_SecretBase_LongGrass_TopMid) return LONG_GRASS_BASE_CENTER; - else if (metatileId == METATILE_ID(Fortree, SecretBase_LongGrass_TopRight)) + else if (metatileId == METATILE_Fortree_SecretBase_LongGrass_TopRight) return LONG_GRASS_BASE_RIGHT; else return LONG_GRASS_NONE; @@ -422,34 +422,34 @@ static void SetCutGrassMetatiles(s16 x, s16 y) for (i = 0; i < sCutSquareSide; i++) { s16 currentX = x + i; - if (MapGridGetMetatileIdAt(currentX, y) == METATILE_ID(General, LongGrass)) + if (MapGridGetMetatileIdAt(currentX, y) == METATILE_General_LongGrass) { switch (GetLongGrassCaseAt(currentX, y + 1)) { case LONG_GRASS_FIELD: - MapGridSetMetatileIdAt(currentX, y + 1, METATILE_ID(Fortree, LongGrass_Root)); + MapGridSetMetatileIdAt(currentX, y + 1, METATILE_Fortree_LongGrass_Root); break; case LONG_GRASS_BASE_LEFT: - MapGridSetMetatileIdAt(currentX, y + 1, METATILE_ID(Fortree, SecretBase_LongGrass_BottomLeft)); + MapGridSetMetatileIdAt(currentX, y + 1, METATILE_Fortree_SecretBase_LongGrass_BottomLeft); break; case LONG_GRASS_BASE_CENTER: - MapGridSetMetatileIdAt(currentX, y + 1, METATILE_ID(Fortree, SecretBase_LongGrass_BottomMid)); + MapGridSetMetatileIdAt(currentX, y + 1, METATILE_Fortree_SecretBase_LongGrass_BottomMid); break; case LONG_GRASS_BASE_RIGHT: - MapGridSetMetatileIdAt(currentX, y + 1, METATILE_ID(Fortree, SecretBase_LongGrass_BottomRight)); + MapGridSetMetatileIdAt(currentX, y + 1, METATILE_Fortree_SecretBase_LongGrass_BottomRight); break; } } - if (MapGridGetMetatileIdAt(currentX, lowerY) == METATILE_ID(General, Grass)) + if (MapGridGetMetatileIdAt(currentX, lowerY) == METATILE_General_Grass) { - if (MapGridGetMetatileIdAt(currentX, lowerY + 1) == METATILE_ID(Fortree, LongGrass_Root)) - MapGridSetMetatileIdAt(currentX, lowerY + 1, METATILE_ID(General, Grass)); - if (MapGridGetMetatileIdAt(currentX, lowerY + 1) == METATILE_ID(Fortree, SecretBase_LongGrass_BottomLeft)) - MapGridSetMetatileIdAt(currentX, lowerY + 1, METATILE_ID(Fortree, SecretBase_LongGrass_TopLeft)); - if (MapGridGetMetatileIdAt(currentX, lowerY + 1) == METATILE_ID(Fortree, SecretBase_LongGrass_BottomMid)) - MapGridSetMetatileIdAt(currentX, lowerY + 1, METATILE_ID(Fortree, SecretBase_LongGrass_TopMid)); - if (MapGridGetMetatileIdAt(currentX, lowerY + 1) == METATILE_ID(Fortree, SecretBase_LongGrass_BottomRight)) - MapGridSetMetatileIdAt(currentX, lowerY + 1, METATILE_ID(Fortree, SecretBase_LongGrass_TopRight)); + if (MapGridGetMetatileIdAt(currentX, lowerY + 1) == METATILE_Fortree_LongGrass_Root) + MapGridSetMetatileIdAt(currentX, lowerY + 1, METATILE_General_Grass); + if (MapGridGetMetatileIdAt(currentX, lowerY + 1) == METATILE_Fortree_SecretBase_LongGrass_BottomLeft) + MapGridSetMetatileIdAt(currentX, lowerY + 1, METATILE_Fortree_SecretBase_LongGrass_TopLeft); + if (MapGridGetMetatileIdAt(currentX, lowerY + 1) == METATILE_Fortree_SecretBase_LongGrass_BottomMid) + MapGridSetMetatileIdAt(currentX, lowerY + 1, METATILE_Fortree_SecretBase_LongGrass_TopMid); + if (MapGridGetMetatileIdAt(currentX, lowerY + 1) == METATILE_Fortree_SecretBase_LongGrass_BottomRight) + MapGridSetMetatileIdAt(currentX, lowerY + 1, METATILE_Fortree_SecretBase_LongGrass_TopRight); } } @@ -486,62 +486,62 @@ static void HandleLongGrassOnHyper(u8 caseId, s16 x, s16 y) if (arr[0] == TRUE) { - if (MapGridGetMetatileIdAt(newX, y + 3) == METATILE_ID(Fortree, LongGrass_Root)) - MapGridSetMetatileIdAt(newX, y + 3, METATILE_ID(General, Grass)); - if (MapGridGetMetatileIdAt(newX, y + 3) == METATILE_ID(Fortree, SecretBase_LongGrass_BottomLeft)) - MapGridSetMetatileIdAt(newX, y + 3, METATILE_ID(Fortree, SecretBase_LongGrass_TopLeft)); - if (MapGridGetMetatileIdAt(newX, y + 3) == METATILE_ID(Fortree, SecretBase_LongGrass_BottomMid)) - MapGridSetMetatileIdAt(newX, y + 3, METATILE_ID(Fortree, SecretBase_LongGrass_TopMid)); - if (MapGridGetMetatileIdAt(newX, y + 3) == METATILE_ID(Fortree, SecretBase_LongGrass_BottomRight)) - MapGridSetMetatileIdAt(newX, y + 3, METATILE_ID(Fortree, SecretBase_LongGrass_TopRight)); + if (MapGridGetMetatileIdAt(newX, y + 3) == METATILE_Fortree_LongGrass_Root) + MapGridSetMetatileIdAt(newX, y + 3, METATILE_General_Grass); + if (MapGridGetMetatileIdAt(newX, y + 3) == METATILE_Fortree_SecretBase_LongGrass_BottomLeft) + MapGridSetMetatileIdAt(newX, y + 3, METATILE_Fortree_SecretBase_LongGrass_TopLeft); + if (MapGridGetMetatileIdAt(newX, y + 3) == METATILE_Fortree_SecretBase_LongGrass_BottomMid) + MapGridSetMetatileIdAt(newX, y + 3, METATILE_Fortree_SecretBase_LongGrass_TopMid); + if (MapGridGetMetatileIdAt(newX, y + 3) == METATILE_Fortree_SecretBase_LongGrass_BottomRight) + MapGridSetMetatileIdAt(newX, y + 3, METATILE_Fortree_SecretBase_LongGrass_TopRight); } if (arr[1] == TRUE) { - if (MapGridGetMetatileIdAt(newX, y + 2) == METATILE_ID(General, LongGrass)) + if (MapGridGetMetatileIdAt(newX, y + 2) == METATILE_General_LongGrass) { switch (GetLongGrassCaseAt(newX, y + 3)) { case LONG_GRASS_FIELD: - MapGridSetMetatileIdAt(newX, y + 3, METATILE_ID(Fortree, LongGrass_Root)); + MapGridSetMetatileIdAt(newX, y + 3, METATILE_Fortree_LongGrass_Root); break; case LONG_GRASS_BASE_LEFT: - MapGridSetMetatileIdAt(newX, y + 3, METATILE_ID(Fortree, SecretBase_LongGrass_BottomLeft)); + MapGridSetMetatileIdAt(newX, y + 3, METATILE_Fortree_SecretBase_LongGrass_BottomLeft); break; case LONG_GRASS_BASE_CENTER: - MapGridSetMetatileIdAt(newX, y + 3, METATILE_ID(Fortree, SecretBase_LongGrass_BottomMid)); + MapGridSetMetatileIdAt(newX, y + 3, METATILE_Fortree_SecretBase_LongGrass_BottomMid); break; case LONG_GRASS_BASE_RIGHT: - MapGridSetMetatileIdAt(newX, y + 3, METATILE_ID(Fortree, SecretBase_LongGrass_BottomRight)); + MapGridSetMetatileIdAt(newX, y + 3, METATILE_Fortree_SecretBase_LongGrass_BottomRight); break; } } - if (MapGridGetMetatileIdAt(newX, y + 4) == METATILE_ID(Fortree, LongGrass_Root)) - MapGridSetMetatileIdAt(newX, y + 4, METATILE_ID(General, Grass)); - if (MapGridGetMetatileIdAt(newX, y + 4) == METATILE_ID(Fortree, SecretBase_LongGrass_BottomLeft)) - MapGridSetMetatileIdAt(newX, y + 4, METATILE_ID(Fortree, SecretBase_LongGrass_TopLeft)); - if (MapGridGetMetatileIdAt(newX, y + 4) == METATILE_ID(Fortree, SecretBase_LongGrass_BottomMid)) - MapGridSetMetatileIdAt(newX, y + 4, METATILE_ID(Fortree, SecretBase_LongGrass_TopMid)); - if (MapGridGetMetatileIdAt(newX, y + 4) == METATILE_ID(Fortree, SecretBase_LongGrass_BottomRight)) - MapGridSetMetatileIdAt(newX, y + 4, METATILE_ID(Fortree, SecretBase_LongGrass_TopRight)); + if (MapGridGetMetatileIdAt(newX, y + 4) == METATILE_Fortree_LongGrass_Root) + MapGridSetMetatileIdAt(newX, y + 4, METATILE_General_Grass); + if (MapGridGetMetatileIdAt(newX, y + 4) == METATILE_Fortree_SecretBase_LongGrass_BottomLeft) + MapGridSetMetatileIdAt(newX, y + 4, METATILE_Fortree_SecretBase_LongGrass_TopLeft); + if (MapGridGetMetatileIdAt(newX, y + 4) == METATILE_Fortree_SecretBase_LongGrass_BottomMid) + MapGridSetMetatileIdAt(newX, y + 4, METATILE_Fortree_SecretBase_LongGrass_TopMid); + if (MapGridGetMetatileIdAt(newX, y + 4) == METATILE_Fortree_SecretBase_LongGrass_BottomRight) + MapGridSetMetatileIdAt(newX, y + 4, METATILE_Fortree_SecretBase_LongGrass_TopRight); } if (arr[2] == TRUE) { - if (MapGridGetMetatileIdAt(newX, y + 3) == METATILE_ID(General, LongGrass)) + if (MapGridGetMetatileIdAt(newX, y + 3) == METATILE_General_LongGrass) { switch (GetLongGrassCaseAt(newX, y + 4)) { case LONG_GRASS_FIELD: - MapGridSetMetatileIdAt(newX, y + 4, METATILE_ID(Fortree, LongGrass_Root)); + MapGridSetMetatileIdAt(newX, y + 4, METATILE_Fortree_LongGrass_Root); break; case LONG_GRASS_BASE_LEFT: - MapGridSetMetatileIdAt(newX, y + 4, METATILE_ID(Fortree, SecretBase_LongGrass_BottomLeft)); + MapGridSetMetatileIdAt(newX, y + 4, METATILE_Fortree_SecretBase_LongGrass_BottomLeft); break; case LONG_GRASS_BASE_CENTER: - MapGridSetMetatileIdAt(newX, y + 4, METATILE_ID(Fortree, SecretBase_LongGrass_BottomMid)); + MapGridSetMetatileIdAt(newX, y + 4, METATILE_Fortree_SecretBase_LongGrass_BottomMid); break; case LONG_GRASS_BASE_RIGHT: - MapGridSetMetatileIdAt(newX, y + 4, METATILE_ID(Fortree, SecretBase_LongGrass_BottomRight)); + MapGridSetMetatileIdAt(newX, y + 4, METATILE_Fortree_SecretBase_LongGrass_BottomRight); break; } } @@ -595,16 +595,16 @@ void FixLongGrassMetatilesWindowTop(s16 x, s16 y) switch (GetLongGrassCaseAt(x, y + 1)) { case LONG_GRASS_FIELD: - MapGridSetMetatileIdAt(x, y + 1, METATILE_ID(Fortree, LongGrass_Root)); + MapGridSetMetatileIdAt(x, y + 1, METATILE_Fortree_LongGrass_Root); break; case LONG_GRASS_BASE_LEFT: - MapGridSetMetatileIdAt(x, y + 1, METATILE_ID(Fortree, SecretBase_LongGrass_BottomLeft)); + MapGridSetMetatileIdAt(x, y + 1, METATILE_Fortree_SecretBase_LongGrass_BottomLeft); break; case LONG_GRASS_BASE_CENTER: - MapGridSetMetatileIdAt(x, y + 1, METATILE_ID(Fortree, SecretBase_LongGrass_BottomMid)); + MapGridSetMetatileIdAt(x, y + 1, METATILE_Fortree_SecretBase_LongGrass_BottomMid); break; case LONG_GRASS_BASE_RIGHT: - MapGridSetMetatileIdAt(x, y + 1, METATILE_ID(Fortree, SecretBase_LongGrass_BottomRight)); + MapGridSetMetatileIdAt(x, y + 1, METATILE_Fortree_SecretBase_LongGrass_BottomRight); break; } } @@ -612,7 +612,7 @@ void FixLongGrassMetatilesWindowTop(s16 x, s16 y) void FixLongGrassMetatilesWindowBottom(s16 x, s16 y) { - if (MapGridGetMetatileIdAt(x, y) == METATILE_ID(General, Grass)) + if (MapGridGetMetatileIdAt(x, y) == METATILE_General_Grass) { u8 metatileBehavior = MapGridGetMetatileBehaviorAt(x, y + 1); if (MetatileBehavior_IsLongGrassSouthEdge(metatileBehavior)) @@ -620,17 +620,17 @@ void FixLongGrassMetatilesWindowBottom(s16 x, s16 y) s32 metatileId = MapGridGetMetatileIdAt(x, y + 1); switch (metatileId) { - case METATILE_ID(Fortree, LongGrass_Root): - MapGridSetMetatileIdAt(x, y + 1, METATILE_ID(General, Grass)); + case METATILE_Fortree_LongGrass_Root: + MapGridSetMetatileIdAt(x, y + 1, METATILE_General_Grass); break; - case METATILE_ID(Fortree, SecretBase_LongGrass_BottomLeft): - MapGridSetMetatileIdAt(x, y + 1, METATILE_ID(Fortree, SecretBase_LongGrass_TopLeft)); + case METATILE_Fortree_SecretBase_LongGrass_BottomLeft: + MapGridSetMetatileIdAt(x, y + 1, METATILE_Fortree_SecretBase_LongGrass_TopLeft); break; - case METATILE_ID(Fortree, SecretBase_LongGrass_BottomMid): - MapGridSetMetatileIdAt(x, y + 1, METATILE_ID(Fortree, SecretBase_LongGrass_TopMid)); + case METATILE_Fortree_SecretBase_LongGrass_BottomMid: + MapGridSetMetatileIdAt(x, y + 1, METATILE_Fortree_SecretBase_LongGrass_TopMid); break; - case METATILE_ID(Fortree, SecretBase_LongGrass_BottomRight): - MapGridSetMetatileIdAt(x, y + 1, METATILE_ID(Fortree, SecretBase_LongGrass_TopRight)); + case METATILE_Fortree_SecretBase_LongGrass_BottomRight: + MapGridSetMetatileIdAt(x, y + 1, METATILE_Fortree_SecretBase_LongGrass_TopRight); break; } } diff --git a/src/fldeff_misc.c b/src/fldeff_misc.c index bb5bd65d76..50feaf3686 100644 --- a/src/fldeff_misc.c +++ b/src/fldeff_misc.c @@ -28,68 +28,54 @@ EWRAM_DATA struct MapPosition gPlayerFacingPosition = {0}; -static void sub_80F9C90(u8); -static void sub_80F9DFC(u8); +static void Task_ComputerScreenOpenEffect(u8); +static void Task_ComputerScreenCloseEffect(u8); +static void CreateComputerScreenEffectTask(TaskFunc, u16, u16, u8); static void Task_SecretBasePCTurnOn(u8); static void Task_PopSecretBaseBalloon(u8); static void DoBalloonSoundEffect(s16); -static void Task_WateringBerryTreeAnim_1(u8); -static void Task_WateringBerryTreeAnim_2(u8); -static void Task_WateringBerryTreeAnim_3(u8); - -static void sub_80F9C44(TaskFunc, u16, u16, u8); +static void Task_WateringBerryTreeAnim_Start(u8); +static void Task_WateringBerryTreeAnim_Continue(u8); +static void Task_WateringBerryTreeAnim_End(u8); static void FieldCallback_SecretBaseCave(void); -static void CaveEntranceSpriteCallback1(struct Sprite *); -static void CaveEntranceSpriteCallback2(struct Sprite *); -static void CaveEntranceSpriteCallbackEnd(struct Sprite *); +static void SpriteCB_CaveEntranceInit(struct Sprite *); +static void SpriteCB_CaveEntranceOpen(struct Sprite *); +static void SpriteCB_CaveEntranceEnd(struct Sprite *); static void StartSecretBaseCaveFieldEffect(void); static void FieldCallback_SecretBaseTree(void); -static void TreeEntranceSpriteCallback1(struct Sprite *); -static void TreeEntranceSpriteCallback2(struct Sprite *); -static void TreeEntranceSpriteCallbackEnd(struct Sprite *); +static void SpriteCB_TreeEntranceInit(struct Sprite *); +static void SpriteCB_TreeEntranceOpen(struct Sprite *); +static void SpriteCB_TreeEntranceEnd(struct Sprite *); static void StartSecretBaseTreeFieldEffect(void); static void FieldCallback_SecretBaseShrub(void); -static void ShrubEntranceSpriteCallback1(struct Sprite *); -static void ShrubEntranceSpriteCallback2(struct Sprite *); -static void ShrubEntranceSpriteCallbackEnd(struct Sprite *); +static void SpriteCB_ShrubEntranceInit(struct Sprite *); +static void SpriteCB_ShrubEntranceOpen(struct Sprite *); +static void SpriteCB_ShrubEntranceEnd(struct Sprite *); static void StartSecretBaseShrubFieldEffect(void); -static void SpriteCB_SandPillar_0(struct Sprite *); -static void SpriteCB_SandPillar_1(struct Sprite *); -static void SpriteCB_SandPillar_2(struct Sprite *); +static void SpriteCB_SandPillar_BreakTop(struct Sprite *); +static void SpriteCB_SandPillar_BreakBase(struct Sprite *); +static void SpriteCB_SandPillar_End(struct Sprite *); -static const u8 gSpriteImage_858D978[] = INCBIN_U8("graphics/unknown/858E588/0.4bpp"); -static const u8 gSpriteImage_858D9F8[] = INCBIN_U8("graphics/unknown/858E588/1.4bpp"); -static const u8 gSpriteImage_858DA78[] = INCBIN_U8("graphics/unknown/858E588/2.4bpp"); -static const u8 gSpriteImage_858DAF8[] = INCBIN_U8("graphics/unknown/858E588/3.4bpp"); -static const u8 gSpriteImage_858DB78[] = INCBIN_U8("graphics/unknown/858E588/4.4bpp"); +static const u8 sSecretPowerCave_Gfx[] = INCBIN_U8("graphics/field_effects/pics/secret_power_cave.4bpp"); +static const u8 sFiller[32] = {0}; +static const u16 sSecretPowerCave_Pal[] = INCBIN_U16("graphics/field_effects/palettes/07.gbapal"); +static const u8 sSecretPowerShrub_Gfx[] = INCBIN_U8("graphics/field_effects/pics/secret_power_shrub.4bpp"); +static const u8 sSecretPowerTree_Gfx[] = INCBIN_U8("graphics/field_effects/pics/secret_power_tree.4bpp"); +static const u16 sSecretPowerPlant_Pal[] = INCBIN_U16("graphics/field_effects/palettes/08.gbapal"); -static const u8 gUnusedEmptySpace_858DBF8[32] = {0}; +// TODO: These should also be combined into a single image +static const u8 sSandPillar0_Gfx[] = INCBIN_U8("graphics/field_effects/pics/sand_pillar/0.4bpp"); +static const u8 sSandPillar1_Gfx[] = INCBIN_U8("graphics/field_effects/pics/sand_pillar/1.4bpp"); +static const u8 sSandPillar2_Gfx[] = INCBIN_U8("graphics/field_effects/pics/sand_pillar/2.4bpp"); -static const u16 gFieldEffectObjectPalette7[] = INCBIN_U16("graphics/field_effects/palettes/07.gbapal"); -static const u8 gSpriteImage_858DC38[] = INCBIN_U8("graphics/unknown/858E5D8/0.4bpp"); -static const u8 gSpriteImage_858DCB8[] = INCBIN_U8("graphics/unknown/858E5D8/1.4bpp"); -static const u8 gSpriteImage_858DD38[] = INCBIN_U8("graphics/unknown/858E5D8/2.4bpp"); -static const u8 gSpriteImage_858DDB8[] = INCBIN_U8("graphics/unknown/858E5D8/3.4bpp"); -static const u8 gSpriteImage_858DE38[] = INCBIN_U8("graphics/unknown/858E5D8/4.4bpp"); -static const u8 gSpriteImage_858DEB8[] = INCBIN_U8("graphics/unknown/858E5B0/0.4bpp"); -static const u8 gSpriteImage_858DF38[] = INCBIN_U8("graphics/unknown/858E5B0/1.4bpp"); -static const u8 gSpriteImage_858DFB8[] = INCBIN_U8("graphics/unknown/858E5B0/2.4bpp"); -static const u8 gSpriteImage_858E038[] = INCBIN_U8("graphics/unknown/858E5B0/3.4bpp"); -static const u8 gSpriteImage_858E0B8[] = INCBIN_U8("graphics/unknown/858E5B0/4.4bpp"); -static const u8 gSpriteImage_858E138[] = INCBIN_U8("graphics/unknown/858E5B0/5.4bpp"); -static const u16 gFieldEffectObjectPalette8[] = INCBIN_U16("graphics/field_effects/palettes/08.gbapal"); -static const u8 gSpriteImage_858E1D8[] = INCBIN_U8("graphics/unknown/858E674/0.4bpp"); -static const u8 gSpriteImage_858E2D8[] = INCBIN_U8("graphics/unknown/858E674/1.4bpp"); -static const u8 gSpriteImage_858E3D8[] = INCBIN_U8("graphics/unknown/858E674/2.4bpp"); - -static const struct OamData gOamData_858E4D8 = +static const struct OamData sOam_SecretPower = { .y = 0, .x = 0, @@ -101,7 +87,7 @@ static const struct OamData gOamData_858E4D8 = .priority = 2, }; -static const union AnimCmd gSpriteAnim_858E4E0[] = +static const union AnimCmd sAnim_SecretPowerCave[] = { ANIMCMD_FRAME(0, 8), ANIMCMD_FRAME(1, 8), @@ -111,7 +97,7 @@ static const union AnimCmd gSpriteAnim_858E4E0[] = ANIMCMD_END, }; -static const union AnimCmd gSpriteAnim_858E4F8[] = +static const union AnimCmd sAnim_VineDropLeft[] = { ANIMCMD_FRAME(0, 8), ANIMCMD_FRAME(1, 8), @@ -121,7 +107,7 @@ static const union AnimCmd gSpriteAnim_858E4F8[] = ANIMCMD_END, }; -static const union AnimCmd gSpriteAnim_858E510[] = +static const union AnimCmd sAnim_VineRiseLeft[] = { ANIMCMD_FRAME(4, 8), ANIMCMD_FRAME(3, 8), @@ -131,7 +117,7 @@ static const union AnimCmd gSpriteAnim_858E510[] = ANIMCMD_END, }; -static const union AnimCmd gSpriteAnim_858E528[] = +static const union AnimCmd sAnim_VineDropRight[] = { ANIMCMD_FRAME(0, 8, .hFlip = TRUE), ANIMCMD_FRAME(1, 8, .hFlip = TRUE), @@ -141,7 +127,7 @@ static const union AnimCmd gSpriteAnim_858E528[] = ANIMCMD_END, }; -static const union AnimCmd gSpriteAnim_858E540[] = +static const union AnimCmd sAnim_VineRiseRight[] = { ANIMCMD_FRAME(4, 8, .hFlip = TRUE), ANIMCMD_FRAME(3, 8, .hFlip = TRUE), @@ -151,7 +137,7 @@ static const union AnimCmd gSpriteAnim_858E540[] = ANIMCMD_END, }; -static const union AnimCmd gSpriteAnim_858E558[] = +static const union AnimCmd sAnim_SecretPowerShrub[] = { ANIMCMD_FRAME(0, 8), ANIMCMD_FRAME(1, 8), @@ -161,88 +147,89 @@ static const union AnimCmd gSpriteAnim_858E558[] = ANIMCMD_END, }; -static const union AnimCmd *const gSpriteAnimTable_858E570[] = +static const union AnimCmd *const sAnimTable_SecretPowerCave[] = { - gSpriteAnim_858E4E0, + sAnim_SecretPowerCave, }; -static const union AnimCmd *const gSpriteAnimTable_858E574[] = +static const union AnimCmd *const sAnimTable_SecretPowerTree[] = { - gSpriteAnim_858E4F8, - gSpriteAnim_858E510, - gSpriteAnim_858E528, - gSpriteAnim_858E540, + sAnim_VineDropLeft, + sAnim_VineRiseLeft, + sAnim_VineDropRight, + sAnim_VineRiseRight, }; -static const union AnimCmd *const gSpriteAnimTable_858E584[] = +static const union AnimCmd *const sAnimTable_SecretPowerShrub[] = { - gSpriteAnim_858E558, + sAnim_SecretPowerShrub, }; -static const struct SpriteFrameImage gUnknown_858E588[] = +static const struct SpriteFrameImage sPicTable_SecretPowerCave[] = { - {gSpriteImage_858D978, 0x80}, - {gSpriteImage_858D9F8, 0x80}, - {gSpriteImage_858DA78, 0x80}, - {gSpriteImage_858DAF8, 0x80}, - {gSpriteImage_858DB78, 0x80}, + overworld_frame(sSecretPowerCave_Gfx, 2, 2, 0), + overworld_frame(sSecretPowerCave_Gfx, 2, 2, 1), + overworld_frame(sSecretPowerCave_Gfx, 2, 2, 2), + overworld_frame(sSecretPowerCave_Gfx, 2, 2, 3), + overworld_frame(sSecretPowerCave_Gfx, 2, 2, 4), }; -static const struct SpriteFrameImage gUnknown_858E5B0[] = +static const struct SpriteFrameImage sPicTable_SecretPowerTree[] = { - {gSpriteImage_858DEB8, 0x80}, - {gSpriteImage_858DF38, 0x80}, - {gSpriteImage_858DFB8, 0x80}, - {gSpriteImage_858E038, 0x80}, - {gSpriteImage_858E0B8, 0x80}, + overworld_frame(sSecretPowerTree_Gfx, 2, 2, 0), + overworld_frame(sSecretPowerTree_Gfx, 2, 2, 1), + overworld_frame(sSecretPowerTree_Gfx, 2, 2, 2), + overworld_frame(sSecretPowerTree_Gfx, 2, 2, 3), + overworld_frame(sSecretPowerTree_Gfx, 2, 2, 4), + // 6th frame exists but isnt accessed, the tree vine metatile is used instead }; -static const struct SpriteFrameImage gUnknown_858E5D8[] = +static const struct SpriteFrameImage sPicTable_SecretPowerShrub[] = { - {gSpriteImage_858DC38, 0x80}, - {gSpriteImage_858DCB8, 0x80}, - {gSpriteImage_858DD38, 0x80}, - {gSpriteImage_858DDB8, 0x80}, - {gSpriteImage_858DE38, 0x80}, + overworld_frame(sSecretPowerShrub_Gfx, 2, 2, 0), + overworld_frame(sSecretPowerShrub_Gfx, 2, 2, 1), + overworld_frame(sSecretPowerShrub_Gfx, 2, 2, 2), + overworld_frame(sSecretPowerShrub_Gfx, 2, 2, 3), + overworld_frame(sSecretPowerShrub_Gfx, 2, 2, 4), }; -static const struct SpriteTemplate gUnknown_0858E600 = +static const struct SpriteTemplate sSpriteTemplate_SecretPowerCave = { .tileTag = 0xFFFF, .paletteTag = FLDEFF_PAL_TAG_3, - .oam = &gOamData_858E4D8, - .anims = gSpriteAnimTable_858E570, - .images = gUnknown_858E588, + .oam = &sOam_SecretPower, + .anims = sAnimTable_SecretPowerCave, + .images = sPicTable_SecretPowerCave, .affineAnims = gDummySpriteAffineAnimTable, - .callback = CaveEntranceSpriteCallback1, + .callback = SpriteCB_CaveEntranceInit, }; -static const struct SpriteTemplate gUnknown_0858E618 = +static const struct SpriteTemplate sSpriteTemplate_SecretPowerTree = { .tileTag = 0xFFFF, .paletteTag = FLDEFF_PAL_TAG_8, - .oam = &gOamData_858E4D8, - .anims = gSpriteAnimTable_858E574, - .images = gUnknown_858E5B0, + .oam = &sOam_SecretPower, + .anims = sAnimTable_SecretPowerTree, + .images = sPicTable_SecretPowerTree, .affineAnims = gDummySpriteAffineAnimTable, - .callback = TreeEntranceSpriteCallback1, + .callback = SpriteCB_TreeEntranceInit, }; -static const struct SpriteTemplate gUnknown_0858E630 = +static const struct SpriteTemplate sSpriteTemplate_SecretPowerShrub = { .tileTag = 0xFFFF, .paletteTag = FLDEFF_PAL_TAG_8, - .oam = &gOamData_858E4D8, - .anims = gSpriteAnimTable_858E584, - .images = gUnknown_858E5D8, + .oam = &sOam_SecretPower, + .anims = sAnimTable_SecretPowerShrub, + .images = sPicTable_SecretPowerShrub, .affineAnims = gDummySpriteAffineAnimTable, - .callback = ShrubEntranceSpriteCallback1, + .callback = SpriteCB_ShrubEntranceInit, }; -const struct SpritePalette gFieldEffectObjectPaletteInfo7 = {gFieldEffectObjectPalette7, FLDEFF_PAL_TAG_3}; -const struct SpritePalette gFieldEffectObjectPaletteInfo8 = {gFieldEffectObjectPalette8, FLDEFF_PAL_TAG_8}; +const struct SpritePalette gSpritePalette_SecretPower_Cave = {sSecretPowerCave_Pal, FLDEFF_PAL_TAG_3}; +const struct SpritePalette gSpritePalette_SecretPower_Plant = {sSecretPowerPlant_Pal, FLDEFF_PAL_TAG_8}; -static const struct OamData gOamData_858E658 = +static const struct OamData sOam_SandPillar = { .x = 0, .y = 0, @@ -254,7 +241,7 @@ static const struct OamData gOamData_858E658 = .priority = 2, }; -static const union AnimCmd gSpriteAnim_858E660[] = +static const union AnimCmd sAnim_SandPillar[] = { ANIMCMD_FRAME(0, 6), ANIMCMD_FRAME(1, 6), @@ -262,47 +249,45 @@ static const union AnimCmd gSpriteAnim_858E660[] = ANIMCMD_END, }; -static const union AnimCmd *const gSpriteAnimTable_858E670[] = +static const union AnimCmd *const sAnimTable_SandPillar[] = { - gSpriteAnim_858E660, + sAnim_SandPillar, }; -static const struct SpriteFrameImage gUnknown_0858E674[] = +static const struct SpriteFrameImage sPicTable_SandPillar[] = { - {gSpriteImage_858E1D8, 0x100}, - {gSpriteImage_858E2D8, 0x100}, - {gSpriteImage_858E3D8, 0x100}, + {sSandPillar0_Gfx, 0x100}, + {sSandPillar1_Gfx, 0x100}, + {sSandPillar2_Gfx, 0x100}, }; -static const struct SpriteTemplate gUnknown_0858E68C = +static const struct SpriteTemplate sSpriteTemplate_SandPillar = { .tileTag = 0xFFFF, .paletteTag = FLDEFF_PAL_TAG_14, - .oam = &gOamData_858E658, - .anims = gSpriteAnimTable_858E670, - .images = gUnknown_0858E674, + .oam = &sOam_SandPillar, + .anims = sAnimTable_SandPillar, + .images = sPicTable_SandPillar, .affineAnims = gDummySpriteAffineAnimTable, - .callback = SpriteCB_SandPillar_0, + .callback = SpriteCB_SandPillar_BreakTop, }; // This uses one of the secret base palettes, so there is no "graphics/field_effects/palettes/09.pal" file. -const struct SpritePalette gFieldEffectObjectPaletteInfo9 = {gTilesetPalettes_SecretBase[5], FLDEFF_PAL_TAG_14}; +const struct SpritePalette gSpritePalette_SandPillar = {gTilesetPalettes_SecretBase[5], FLDEFF_PAL_TAG_14}; -static const u8 gSpriteImage_858E6AC[] = INCBIN_U8("graphics/unknown/858E84C/0.4bpp"); -static const u8 gSpriteImage_858E72C[] = INCBIN_U8("graphics/unknown/858E84C/1.4bpp"); -static const u8 gSpriteImage_858E7AC[] = INCBIN_U8("graphics/unknown/858E84C/2.4bpp"); -static const u16 gUnknown_0858E82C[] = INCBIN_U16("graphics/unknown/unknown_58E82C.gbapal"); +static const u8 sRecordMixLights_Gfx[] = INCBIN_U8("graphics/field_effects/pics/record_mix_lights.4bpp"); +static const u16 sRecordMixLights_Pal[] = INCBIN_U16("graphics/field_effects/palettes/record_mix_lights.gbapal"); -static const struct SpriteFrameImage gUnknown_0858E84C[] = +static const struct SpriteFrameImage sPicTable_RecordMixLights[] = { - {gSpriteImage_858E6AC, sizeof(gSpriteImage_858E6AC)}, - {gSpriteImage_858E72C, sizeof(gSpriteImage_858E72C)}, - {gSpriteImage_858E7AC, sizeof(gSpriteImage_858E7AC)}, + overworld_frame(sRecordMixLights_Gfx, 4, 1, 0), + overworld_frame(sRecordMixLights_Gfx, 4, 1, 1), + overworld_frame(sRecordMixLights_Gfx, 4, 1, 2), }; -static const struct SpritePalette gUnknown_0858E864 = {gUnknown_0858E82C, FLDEFF_PAL_TAG_0}; +static const struct SpritePalette sSpritePalette_RecordMixLights = {sRecordMixLights_Pal, FLDEFF_PAL_TAG_0}; -static const union AnimCmd gSpriteAnim_858E86C[] = +static const union AnimCmd sAnim_RecordMixLights[] = { ANIMCMD_FRAME(0, 30), ANIMCMD_FRAME(1, 30), @@ -310,173 +295,182 @@ static const union AnimCmd gSpriteAnim_858E86C[] = ANIMCMD_JUMP(0), }; -static const union AnimCmd *const gSpriteAnimTable_858E87C[] = +static const union AnimCmd *const sAnimTable_RecordMixLights[] = { - gSpriteAnim_858E86C, + sAnim_RecordMixLights, }; -static const struct SpriteTemplate gUnknown_0858E880 = +static const struct SpriteTemplate sSpriteTemplate_RecordMixLights = { .tileTag = 0xFFFF, .paletteTag = FLDEFF_PAL_TAG_0, .oam = &gObjectEventBaseOam_32x8, - .anims = gSpriteAnimTable_858E87C, - .images = gUnknown_0858E84C, + .anims = sAnimTable_RecordMixLights, + .images = sPicTable_RecordMixLights, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy, }; -void sub_80F9BCC(u16 a0, u16 a1, u8 a2) +// For accessing pokemon storage PC or the Hall of Fame PC +void ComputerScreenOpenEffect(u16 increment, u16 unused, u8 priority) { - sub_80F9C44(sub_80F9C90, a0, a1, a2); + CreateComputerScreenEffectTask(Task_ComputerScreenOpenEffect, increment, unused, priority); } -void sub_80F9BF4(u16 a0, u16 a1, u8 a2) +void ComputerScreenCloseEffect(u16 increment, u16 unused, u8 priority) { - sub_80F9C44(sub_80F9DFC, a0, a1, a2); + CreateComputerScreenEffectTask(Task_ComputerScreenCloseEffect, increment, unused, priority); } -bool8 sub_80F9C1C(void) +bool8 IsComputerScreenOpenEffectActive(void) { - return FuncIsActiveTask(sub_80F9C90); + return FuncIsActiveTask(Task_ComputerScreenOpenEffect); } -bool8 sub_80F9C30(void) +bool8 IsComputerScreenCloseEffectActive(void) { - return FuncIsActiveTask(sub_80F9DFC); + return FuncIsActiveTask(Task_ComputerScreenCloseEffect); } -static void sub_80F9C44(void (*taskfunc) (u8), u16 a1, u16 a2, u8 a3) -{ - u8 taskId = CreateTask(taskfunc, a3); +#define tState data[0] +#define tHorzIncrement data[1] +#define tVertIncrement data[2] +#define tWinLeft data[3] +#define tWinRight data[4] +#define tWinTop data[5] +#define tWinBottom data[6] +#define tBlendCnt data[7] +#define tBlendY data[8] - gTasks[taskId].data[0] = 0; - gTasks[taskId].data[1] = a1 == 0 ? 16 : a1; - gTasks[taskId].data[2] = a1 == 0 ? 20 : a1; +static void CreateComputerScreenEffectTask(void (*taskfunc) (u8), u16 increment, u16 unused, u8 priority) +{ + u8 taskId = CreateTask(taskfunc, priority); + + gTasks[taskId].tState = 0; + gTasks[taskId].tHorzIncrement = increment == 0 ? 16 : increment; + gTasks[taskId].tVertIncrement = increment == 0 ? 20 : increment; gTasks[taskId].func(taskId); } -static void sub_80F9C90(u8 taskId) +static void Task_ComputerScreenOpenEffect(u8 taskId) { struct Task *task = &gTasks[taskId]; - switch (task->data[0]) + switch (task->tState) { case 0: - task->data[3] = 0x78; - task->data[4] = 0x78; - task->data[5] = 0x50; - task->data[6] = 0x51; + task->tWinLeft = DISPLAY_WIDTH / 2; + task->tWinRight = DISPLAY_WIDTH / 2; + task->tWinTop = DISPLAY_HEIGHT / 2; + task->tWinBottom = DISPLAY_HEIGHT / 2 + 1; SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON); - SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(task->data[3], task->data[4])); - SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(task->data[5], task->data[6])); - SetGpuReg(REG_OFFSET_WININ, 0x3F); + SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(task->tWinLeft, task->tWinRight)); + SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(task->tWinTop, task->tWinBottom)); + SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR); SetGpuReg(REG_OFFSET_WINOUT, 0); break; case 1: - task->data[7] = GetGpuReg(REG_OFFSET_BLDCNT); - task->data[8] = GetGpuReg(REG_OFFSET_BLDY); + task->tBlendCnt = GetGpuReg(REG_OFFSET_BLDCNT); + task->tBlendY = GetGpuReg(REG_OFFSET_BLDY); SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_ALL | BLDCNT_EFFECT_LIGHTEN); - SetGpuReg(REG_OFFSET_BLDY, 0x10); + SetGpuReg(REG_OFFSET_BLDY, 16); break; case 2: - task->data[3] -= task->data[1]; - task->data[4] += task->data[1]; + task->tWinLeft -= task->tHorzIncrement; + task->tWinRight += task->tHorzIncrement; - if (task->data[3] < 1 || task->data[4] > 0xEF) + if (task->tWinLeft < 1 || task->tWinRight > DISPLAY_WIDTH - 1) { - task->data[3] = 0; - task->data[4] = 0xF0; + task->tWinLeft = 0; + task->tWinRight = DISPLAY_WIDTH; SetGpuReg(REG_OFFSET_BLDY, 0); - SetGpuReg(REG_OFFSET_BLDCNT, task->data[7]); + SetGpuReg(REG_OFFSET_BLDCNT, task->tBlendCnt); BlendPalettes(0xFFFFFFFF, 0, 0); gPlttBufferFaded[0] = 0; } - SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(task->data[3], task->data[4])); + SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(task->tWinLeft, task->tWinRight)); - if (task->data[3] != 0) + if (task->tWinLeft != 0) return; break; case 3: - task->data[5] -= task->data[2]; - task->data[6] += task->data[2]; + task->tWinTop -= task->tVertIncrement; + task->tWinBottom += task->tVertIncrement; - if (task->data[5] < 1 || task->data[6] > 0x9F) + if (task->tWinTop < 1 || task->tWinBottom > DISPLAY_HEIGHT - 1) { - task->data[5] = 0; - task->data[6] = 0xA0; + task->tWinTop = 0; + task->tWinBottom = DISPLAY_HEIGHT; ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON); } - SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(task->data[5], task->data[6])); + SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(task->tWinTop, task->tWinBottom)); - if (task->data[5] != 0) + if (task->tWinTop != 0) return; break; default: - SetGpuReg(REG_OFFSET_BLDCNT, task->data[7]); + SetGpuReg(REG_OFFSET_BLDCNT, task->tBlendCnt); DestroyTask(taskId); return; } - task->data[0]++; + task->tState++; } -static void sub_80F9DFC(u8 taskId) +static void Task_ComputerScreenCloseEffect(u8 taskId) { struct Task *task = &gTasks[taskId]; - int temp = task->data[0]; - - switch (temp) + switch (task->tState) { case 0: - gPlttBufferFaded[0] = temp; + gPlttBufferFaded[0] = 0; break; case 1: - task->data[3] = 0; - task->data[4] = 0xF0; - task->data[5] = 0; - task->data[6] = 0xA0; + task->tWinLeft = 0; + task->tWinRight = DISPLAY_WIDTH; + task->tWinTop = 0; + task->tWinBottom = DISPLAY_HEIGHT; SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON); - SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(task->data[3], task->data[4])); - SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(task->data[5], task->data[6])); - SetGpuReg(REG_OFFSET_WININ, 0x3F); + SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(task->tWinLeft, task->tWinRight)); + SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(task->tWinTop, task->tWinBottom)); + SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR); SetGpuReg(REG_OFFSET_WINOUT, 0); break; case 2: - task->data[5] += task->data[2]; - task->data[6] -= task->data[2]; + task->tWinTop += task->tVertIncrement; + task->tWinBottom -= task->tVertIncrement; - if (task->data[5] > 0x4F || task->data[6] < 0x52) + if (task->tWinTop >= DISPLAY_HEIGHT / 2 || task->tWinBottom <= DISPLAY_HEIGHT / 2 + 1) { - task->data[5] = 0x50; - task->data[6] = 0x51; + task->tWinTop = DISPLAY_HEIGHT / 2; + task->tWinBottom = DISPLAY_HEIGHT / 2 + 1; SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_ALL | BLDCNT_EFFECT_LIGHTEN); - SetGpuReg(REG_OFFSET_BLDY, 0x10); + SetGpuReg(REG_OFFSET_BLDY, 16); } - SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(task->data[5], task->data[6])); + SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(task->tWinTop, task->tWinBottom)); - if (task->data[5] != 0x50) + if (task->tWinTop != DISPLAY_HEIGHT / 2) return; break; case 3: - task->data[3] += task->data[1]; - task->data[4] -= task->data[1]; + task->tWinLeft += task->tHorzIncrement; + task->tWinRight -= task->tHorzIncrement; - if (task->data[3] > 0x77 || task->data[4] < 0x79) + if (task->tWinLeft >= DISPLAY_WIDTH / 2 || task->tWinRight <= DISPLAY_WIDTH / 2) { - task->data[3] = 0x78; - task->data[4] = 0x78; - BlendPalettes(-1, 0x10, 0); + task->tWinLeft = DISPLAY_WIDTH / 2; + task->tWinRight = DISPLAY_WIDTH / 2; + BlendPalettes(-1, 16, 0); gPlttBufferFaded[0] = 0; } - SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(task->data[3], task->data[4])); + SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(task->tWinLeft, task->tWinRight)); - if (task->data[3] != 0x78) + if (task->tWinLeft != DISPLAY_WIDTH / 2) return; break; default: @@ -486,9 +480,19 @@ static void sub_80F9DFC(u8 taskId) DestroyTask(taskId); return; } - task->data[0]++; + task->tState++; } +#undef tState +#undef tHorzIncrement +#undef tVertIncrement +#undef tWinLeft +#undef tWinRight +#undef tWinTop +#undef tWinBottom +#undef tBlendCnt +#undef tBlendY + static void SetCurrentSecretBase(void) { SetCurSecretBaseIdFromPosition(&gPlayerFacingPosition, gMapHeader.events); @@ -607,22 +611,22 @@ static void StartSecretBaseCaveFieldEffect(void) bool8 FldEff_SecretPowerCave(void) { AdjustSecretPowerSpritePixelOffsets(); - CreateSprite(&gUnknown_0858E600, + CreateSprite(&sSpriteTemplate_SecretPowerCave, gSprites[gPlayerAvatar.spriteId].oam.x + gFieldEffectArguments[5], gSprites[gPlayerAvatar.spriteId].oam.y + gFieldEffectArguments[6], 148); return FALSE; } -static void CaveEntranceSpriteCallback1(struct Sprite *sprite) +static void SpriteCB_CaveEntranceInit(struct Sprite *sprite) { PlaySE(SE_W088); sprite->data[0] = 0; - sprite->callback = CaveEntranceSpriteCallback2; + sprite->callback = SpriteCB_CaveEntranceOpen; } -static void CaveEntranceSpriteCallback2(struct Sprite *sprite) +static void SpriteCB_CaveEntranceOpen(struct Sprite *sprite) { if (sprite->data[0] < 40) { @@ -632,11 +636,11 @@ static void CaveEntranceSpriteCallback2(struct Sprite *sprite) else { sprite->data[0] = 0; - sprite->callback = CaveEntranceSpriteCallbackEnd; + sprite->callback = SpriteCB_CaveEntranceEnd; } } -static void CaveEntranceSpriteCallbackEnd(struct Sprite *sprite) +static void SpriteCB_CaveEntranceEnd(struct Sprite *sprite) { FieldEffectStop(sprite, FLDEFF_SECRET_POWER_CAVE); EnableBothScriptContexts(); @@ -676,7 +680,7 @@ bool8 FldEff_SecretPowerTree(void) AdjustSecretPowerSpritePixelOffsets(); - CreateSprite(&gUnknown_0858E618, + CreateSprite(&sSpriteTemplate_SecretPowerTree, gSprites[gPlayerAvatar.spriteId].oam.x + gFieldEffectArguments[5], gSprites[gPlayerAvatar.spriteId].oam.y + gFieldEffectArguments[6], 148); @@ -687,16 +691,16 @@ bool8 FldEff_SecretPowerTree(void) return FALSE; } -static void TreeEntranceSpriteCallback1(struct Sprite *sprite) +static void SpriteCB_TreeEntranceInit(struct Sprite *sprite) { PlaySE(SE_W010); sprite->animNum = gFieldEffectArguments[7]; sprite->data[0] = 0; - sprite->callback = TreeEntranceSpriteCallback2; + sprite->callback = SpriteCB_TreeEntranceOpen; } -static void TreeEntranceSpriteCallback2(struct Sprite *sprite) +static void SpriteCB_TreeEntranceOpen(struct Sprite *sprite) { sprite->data[0]++; @@ -706,11 +710,11 @@ static void TreeEntranceSpriteCallback2(struct Sprite *sprite) ToggleSecretBaseEntranceMetatile(); sprite->data[0] = 0; - sprite->callback = TreeEntranceSpriteCallbackEnd; + sprite->callback = SpriteCB_TreeEntranceEnd; } } -static void TreeEntranceSpriteCallbackEnd(struct Sprite *sprite) +static void SpriteCB_TreeEntranceEnd(struct Sprite *sprite) { FieldEffectStop(sprite, FLDEFF_SECRET_POWER_TREE); EnableBothScriptContexts(); @@ -742,7 +746,7 @@ bool8 FldEff_SecretPowerShrub(void) { AdjustSecretPowerSpritePixelOffsets(); - CreateSprite(&gUnknown_0858E630, + CreateSprite(&sSpriteTemplate_SecretPowerShrub, gSprites[gPlayerAvatar.spriteId].oam.x + gFieldEffectArguments[5], gSprites[gPlayerAvatar.spriteId].oam.y + gFieldEffectArguments[6], 148); @@ -750,15 +754,15 @@ bool8 FldEff_SecretPowerShrub(void) return FALSE; } -static void ShrubEntranceSpriteCallback1(struct Sprite *sprite) +static void SpriteCB_ShrubEntranceInit(struct Sprite *sprite) { PlaySE(SE_W077); sprite->data[0] = 0; - sprite->callback = ShrubEntranceSpriteCallback2; + sprite->callback = SpriteCB_ShrubEntranceOpen; } -static void ShrubEntranceSpriteCallback2(struct Sprite *sprite) +static void SpriteCB_ShrubEntranceOpen(struct Sprite *sprite) { if (sprite->data[0] < 40) { @@ -770,16 +774,20 @@ static void ShrubEntranceSpriteCallback2(struct Sprite *sprite) else { sprite->data[0] = 0; - sprite->callback = ShrubEntranceSpriteCallbackEnd; + sprite->callback = SpriteCB_ShrubEntranceEnd; } } -static void ShrubEntranceSpriteCallbackEnd(struct Sprite *sprite) +static void SpriteCB_ShrubEntranceEnd(struct Sprite *sprite) { FieldEffectStop(sprite, FLDEFF_SECRET_POWER_SHRUB); EnableBothScriptContexts(); } +#define tX data[0] +#define tY data[1] +#define tState data[2] + bool8 FldEff_SecretBasePCTurnOn(void) { s16 x, y; @@ -788,9 +796,9 @@ bool8 FldEff_SecretBasePCTurnOn(void) GetXYCoordsOneStepInFrontOfPlayer(&x, &y); taskId = CreateTask(Task_SecretBasePCTurnOn, 0); - gTasks[taskId].data[0] = x; - gTasks[taskId].data[1] = y; - gTasks[taskId].data[2] = 0; + gTasks[taskId].tX = x; + gTasks[taskId].tY = y; + gTasks[taskId].tState = 0; return FALSE; } @@ -799,30 +807,34 @@ static void Task_SecretBasePCTurnOn(u8 taskId) { s16 *data = gTasks[taskId].data; - switch (data[2]) + switch (tState) { case 4: case 12: - MapGridSetMetatileIdAt(data[0], data[1], METATILE_SecretBase_PC_On); - CurrentMapDrawMetatileAt(data[0], data[1]); + MapGridSetMetatileIdAt(tX, tY, METATILE_SecretBase_PC_On); + CurrentMapDrawMetatileAt(tX, tY); break; case 8: case 16: - MapGridSetMetatileIdAt(data[0], data[1], METATILE_SecretBase_PC); - CurrentMapDrawMetatileAt(data[0], data[1]); + MapGridSetMetatileIdAt(tX, tY, METATILE_SecretBase_PC); + CurrentMapDrawMetatileAt(tX, tY); break; case 20: - MapGridSetMetatileIdAt(data[0], data[1], METATILE_SecretBase_PC_On); - CurrentMapDrawMetatileAt(data[0], data[1]); + MapGridSetMetatileIdAt(tX, tY, METATILE_SecretBase_PC_On); + CurrentMapDrawMetatileAt(tX, tY); FieldEffectActiveListRemove(FLDEFF_PCTURN_ON); EnableBothScriptContexts(); DestroyTask(taskId); return; } - data[2]++; + tState++; } +#undef tX +#undef tY +#undef tState + void DoSecretBasePCTurnOffEffect(void) { s16 x, y; @@ -892,12 +904,12 @@ static void DoBalloonSoundEffect(s16 metatileId) } } -bool8 FldEff_NopA6FC(void) +bool8 FldEff_Nop47(void) { return FALSE; } -bool8 FldEff_NopA700(void) +bool8 FldEff_Nop48(void) { return FALSE; } @@ -1034,7 +1046,7 @@ bool8 FldEff_SandPillar(void) switch (GetPlayerFacingDirection()) { case DIR_SOUTH: - CreateSprite(&gUnknown_0858E68C, + CreateSprite(&sSpriteTemplate_SandPillar, gSprites[gPlayerAvatar.spriteId].oam.x + 8, gSprites[gPlayerAvatar.spriteId].oam.y + 32, 0); @@ -1042,7 +1054,7 @@ bool8 FldEff_SandPillar(void) break; case DIR_NORTH: - CreateSprite(&gUnknown_0858E68C, + CreateSprite(&sSpriteTemplate_SandPillar, gSprites[gPlayerAvatar.spriteId].oam.x + 8, gSprites[gPlayerAvatar.spriteId].oam.y, 148); @@ -1050,7 +1062,7 @@ bool8 FldEff_SandPillar(void) break; case DIR_WEST: - CreateSprite(&gUnknown_0858E68C, + CreateSprite(&sSpriteTemplate_SandPillar, gSprites[gPlayerAvatar.spriteId].oam.x - 8, gSprites[gPlayerAvatar.spriteId].oam.y + 16, 148); @@ -1058,7 +1070,7 @@ bool8 FldEff_SandPillar(void) break; case DIR_EAST: - CreateSprite(&gUnknown_0858E68C, + CreateSprite(&sSpriteTemplate_SandPillar, gSprites[gPlayerAvatar.spriteId].oam.x + 24, gSprites[gPlayerAvatar.spriteId].oam.y + 16, 148); @@ -1069,7 +1081,7 @@ bool8 FldEff_SandPillar(void) return FALSE; } -static void SpriteCB_SandPillar_0(struct Sprite *sprite) +static void SpriteCB_SandPillar_BreakTop(struct Sprite *sprite) { PlaySE(SE_W088); @@ -1083,10 +1095,10 @@ static void SpriteCB_SandPillar_0(struct Sprite *sprite) CurrentMapDrawMetatileAt(gFieldEffectArguments[5], gFieldEffectArguments[6]); sprite->data[0] = 0; - sprite->callback = SpriteCB_SandPillar_1; + sprite->callback = SpriteCB_SandPillar_BreakBase; } -static void SpriteCB_SandPillar_1(struct Sprite *sprite) +static void SpriteCB_SandPillar_BreakBase(struct Sprite *sprite) { if (sprite->data[0] < 18) { @@ -1097,11 +1109,11 @@ static void SpriteCB_SandPillar_1(struct Sprite *sprite) MapGridSetMetatileIdAt(gFieldEffectArguments[5], gFieldEffectArguments[6], METATILE_SecretBase_SandOrnament_BrokenBase | METATILE_COLLISION_MASK); CurrentMapDrawMetatileAt(gFieldEffectArguments[5], gFieldEffectArguments[6]); sprite->data[0] = 0; - sprite->callback = SpriteCB_SandPillar_2; + sprite->callback = SpriteCB_SandPillar_End; } } -static void SpriteCB_SandPillar_2(struct Sprite *sprite) +static void SpriteCB_SandPillar_End(struct Sprite *sprite) { FieldEffectStop(sprite, FLDEFF_SAND_PILLAR); EnableBothScriptContexts(); @@ -1167,12 +1179,13 @@ void InteractWithShieldOrTVDecoration(void) } } -bool8 sub_80FADE4(u16 metatileId, u8 arg1) +// As opposed to a small one (single metatile) like the balloons +bool8 IsLargeBreakableDecoration(u16 metatileId, bool8 checkBase) { if (!CurMapIsSecretBase()) return FALSE; - if (!arg1) + if (!checkBase) { if (metatileId == METATILE_SecretBase_SandOrnament_Top || metatileId == METATILE_SecretBase_SandOrnament_TopWall) return TRUE; @@ -1224,25 +1237,26 @@ bool32 FldEffPoison_IsActive(void) return FuncIsActiveTask(Task_FieldPoisonEffect); } -static void Task_WateringBerryTreeAnim_0(u8 taskId) +static void Task_WateringBerryTreeAnim(u8 taskId) { - gTasks[taskId].func = Task_WateringBerryTreeAnim_1; + gTasks[taskId].func = Task_WateringBerryTreeAnim_Start; } -static void Task_WateringBerryTreeAnim_1(u8 taskId) +static void Task_WateringBerryTreeAnim_Start(u8 taskId) { struct ObjectEvent *playerObjEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; if (!ObjectEventIsMovementOverridden(playerObjEvent) || ObjectEventClearHeldMovementIfFinished(playerObjEvent)) { + // Start watering SetPlayerAvatarWatering(GetPlayerFacingDirection()); ObjectEventSetHeldMovement(playerObjEvent, GetWalkInPlaceNormalMovementAction(GetPlayerFacingDirection())); - gTasks[taskId].func = Task_WateringBerryTreeAnim_2; + gTasks[taskId].func = Task_WateringBerryTreeAnim_Continue; } } -static void Task_WateringBerryTreeAnim_2(u8 taskId) +static void Task_WateringBerryTreeAnim_Continue(u8 taskId) { struct ObjectEvent *playerObjEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; @@ -1250,15 +1264,15 @@ static void Task_WateringBerryTreeAnim_2(u8 taskId) { s16 value = gTasks[taskId].data[1]++; + // Continue holding watering action 10 times, then end if (value < 10) ObjectEventSetHeldMovement(playerObjEvent, GetWalkInPlaceNormalMovementAction(GetPlayerFacingDirection())); - else - gTasks[taskId].func = Task_WateringBerryTreeAnim_3; + gTasks[taskId].func = Task_WateringBerryTreeAnim_End; } } -static void Task_WateringBerryTreeAnim_3(u8 taskId) +static void Task_WateringBerryTreeAnim_End(u8 taskId) { SetPlayerAvatarTransitionFlags(GetPlayerAvatarFlags()); DestroyTask(taskId); @@ -1267,16 +1281,17 @@ static void Task_WateringBerryTreeAnim_3(u8 taskId) void DoWateringBerryTreeAnim(void) { - CreateTask(Task_WateringBerryTreeAnim_0, 80); + CreateTask(Task_WateringBerryTreeAnim, 80); } -u8 CreateRecordMixingSprite(void) +// The lights that blink on the counter when mixing records in the cable club +u8 CreateRecordMixingLights(void) { u8 spriteId; - LoadSpritePalette(&gUnknown_0858E864); + LoadSpritePalette(&sSpritePalette_RecordMixLights); - spriteId = CreateSprite(&gUnknown_0858E880, 0, 0, 82); + spriteId = CreateSprite(&sSpriteTemplate_RecordMixLights, 0, 0, 82); if (spriteId == MAX_SPRITES) { @@ -1293,13 +1308,13 @@ u8 CreateRecordMixingSprite(void) return spriteId; } -void DestroyRecordMixingSprite(void) +void DestroyRecordMixingLights(void) { int i; for (i = 0; i < MAX_SPRITES; i++) { - if (gSprites[i].template == &gUnknown_0858E880) + if (gSprites[i].template == &sSpriteTemplate_RecordMixLights) { FreeSpritePalette(&gSprites[i]); DestroySprite(&gSprites[i]); diff --git a/src/fldeff_rocksmash.c b/src/fldeff_rocksmash.c index 4d7dcb66e7..ec8e64012a 100644 --- a/src/fldeff_rocksmash.c +++ b/src/fldeff_rocksmash.c @@ -20,13 +20,13 @@ #include "constants/songs.h" // static functions -static void Task_DoFieldMove_0(u8 taskId); -static void Task_DoFieldMove_1(u8 taskId); -static void Task_DoFieldMove_2(u8 taskId); -static void Task_DoFieldMove_3(u8 taskId); +static void Task_DoFieldMove_Init(u8 taskId); +static void Task_DoFieldMove_ShowMonAfterPose(u8 taskId); +static void Task_DoFieldMove_WaitForMon(u8 taskId); +static void Task_DoFieldMove_RunFunc(u8 taskId); static void FieldCallback_RockSmash(void); -static void sub_8135714(void); +static void FieldMove_RockSmash(void); // text bool8 CheckObjectGraphicsInFrontOfPlayer(u8 graphicsId) @@ -50,10 +50,10 @@ bool8 CheckObjectGraphicsInFrontOfPlayer(u8 graphicsId) u8 CreateFieldMoveTask(void) { GetXYCoordsOneStepInFrontOfPlayer(&gPlayerFacingPosition.x, &gPlayerFacingPosition.y); - return CreateTask(Task_DoFieldMove_0, 8); + return CreateTask(Task_DoFieldMove_Init, 8); } -static void Task_DoFieldMove_0(u8 taskId) +static void Task_DoFieldMove_Init(u8 taskId) { u8 objEventId; @@ -65,28 +65,30 @@ static void Task_DoFieldMove_0(u8 taskId) { if (gMapHeader.mapType == MAP_TYPE_UNDERWATER) { + // Skip field move pose underwater FieldEffectStart(FLDEFF_FIELD_MOVE_SHOW_MON_INIT); - gTasks[taskId].func = Task_DoFieldMove_2; + gTasks[taskId].func = Task_DoFieldMove_WaitForMon; } else { + // Do field move pose SetPlayerAvatarFieldMove(); ObjectEventSetHeldMovement(&gObjectEvents[objEventId], MOVEMENT_ACTION_START_ANIM_IN_DIRECTION); - gTasks[taskId].func = Task_DoFieldMove_1; + gTasks[taskId].func = Task_DoFieldMove_ShowMonAfterPose; } } } -static void Task_DoFieldMove_1(u8 taskId) +static void Task_DoFieldMove_ShowMonAfterPose(u8 taskId) { if (ObjectEventCheckHeldMovementStatus(&gObjectEvents[gPlayerAvatar.objectEventId]) == TRUE) { FieldEffectStart(FLDEFF_FIELD_MOVE_SHOW_MON_INIT); - gTasks[taskId].func = Task_DoFieldMove_2; + gTasks[taskId].func = Task_DoFieldMove_WaitForMon; } } -static void Task_DoFieldMove_2(u8 taskId) +static void Task_DoFieldMove_WaitForMon(u8 taskId) { if (!FieldEffectActiveListContains(FLDEFF_FIELD_MOVE_SHOW_MON)) { @@ -102,19 +104,22 @@ static void Task_DoFieldMove_2(u8 taskId) ObjectEventSetGraphicsId(&gObjectEvents[gPlayerAvatar.objectEventId], GetPlayerAvatarGraphicsIdByCurrentState()); StartSpriteAnim(&gSprites[gPlayerAvatar.spriteId], gFieldEffectArguments[2]); FieldEffectActiveListRemove(FLDEFF_FIELD_MOVE_SHOW_MON); - gTasks[taskId].func = Task_DoFieldMove_3; + gTasks[taskId].func = Task_DoFieldMove_RunFunc; } } -static void Task_DoFieldMove_3(u8 taskId) +static void Task_DoFieldMove_RunFunc(u8 taskId) { - void (*func)(void) = (void (*)(void))(((u16)gTasks[taskId].data[8] << 16) | (u16)gTasks[taskId].data[9]); + // The function for the field move to do is stored in halves across data[8] and data[9] + void (*fieldMoveFunc)(void) = (void (*)(void))(((u16)gTasks[taskId].data[8] << 16) | (u16)gTasks[taskId].data[9]); - func(); + fieldMoveFunc(); gPlayerAvatar.preventStep = FALSE; DestroyTask(taskId); } +// Called when Rock Smash is used from the party menu +// For interacting with a smashable rock in the field, see EventScript_RockSmash bool8 SetUpFieldMove_RockSmash(void) { // In Ruby and Sapphire, Regirock's tomb is opened by using Strength. In Emerald, @@ -141,20 +146,21 @@ bool8 SetUpFieldMove_RockSmash(void) static void FieldCallback_RockSmash(void) { gFieldEffectArguments[0] = GetCursorSelectionMonId(); - ScriptContext1_SetupScript(EventScript_FldEffRockSmash); + ScriptContext1_SetupScript(EventScript_RockSmashFromPartyMenu); } bool8 FldEff_UseRockSmash(void) { u8 taskId = CreateFieldMoveTask(); - gTasks[taskId].data[8] = (u32)sub_8135714 >> 16; - gTasks[taskId].data[9] = (u32)sub_8135714; + gTasks[taskId].data[8] = (u32)FieldMove_RockSmash >> 16; + gTasks[taskId].data[9] = (u32)FieldMove_RockSmash; IncrementGameStat(GAME_STAT_USED_ROCK_SMASH); return FALSE; } -static void sub_8135714(void) +// The actual rock smashing is handled by EventScript_SmashRock, so this function does very little +static void FieldMove_RockSmash(void) { PlaySE(SE_W088); FieldEffectActiveListRemove(FLDEFF_USE_ROCK_SMASH); diff --git a/src/hall_of_fame.c b/src/hall_of_fame.c index 5405b7c42f..b4745ff4e3 100644 --- a/src/hall_of_fame.c +++ b/src/hall_of_fame.c @@ -799,7 +799,7 @@ void CB2_DoHallOfFamePC(void) { struct HallofFameTeam *fameTeam = (struct HallofFameTeam*)(gDecompressionBuffer); fameTeam->mon[0] = sDummyFameMon; - sub_80F9BCC(0, 0, 0); + ComputerScreenOpenEffect(0, 0, 0); SetVBlankCallback(VBlankCB_HallOfFame); gMain.state++; } @@ -809,7 +809,7 @@ void CB2_DoHallOfFamePC(void) AnimateSprites(); BuildOamBuffer(); UpdatePaletteFade(); - if (!sub_80F9C1C()) + if (!IsComputerScreenOpenEffectActive()) gMain.state++; break; case 5: @@ -1023,13 +1023,13 @@ static void Task_HofPC_HandlePaletteOnExit(u8 taskId) CpuCopy16(gPlttBufferFaded, gPlttBufferUnfaded, 0x400); fameTeam = (struct HallofFameTeam*)(gDecompressionBuffer); fameTeam->mon[0] = sDummyFameMon; - sub_80F9BF4(0, 0, 0); + ComputerScreenCloseEffect(0, 0, 0); gTasks[taskId].func = Task_HofPC_HandleExit; } static void Task_HofPC_HandleExit(u8 taskId) { - if (!sub_80F9C30()) + if (!IsComputerScreenCloseEffectActive()) { u8 i; diff --git a/src/pokemon_storage_system.c b/src/pokemon_storage_system.c index 104f92c730..31cb479657 100644 --- a/src/pokemon_storage_system.c +++ b/src/pokemon_storage_system.c @@ -2360,11 +2360,11 @@ static void Cb_ShowPSS(u8 taskId) { case 0: PlaySE(SE_PC_LOGIN); - sub_80F9BCC(0x14, 0, 1); + ComputerScreenOpenEffect(20, 0, 1); sPSSData->state++; break; case 1: - if (!sub_80F9C1C()) + if (!IsComputerScreenOpenEffectActive()) SetPSSCallback(Cb_MainPSS); break; } @@ -3781,11 +3781,11 @@ static void Cb_OnCloseBoxPressed(u8 taskId) } break; case 3: - sub_80F9BF4(0x14, 0, 1); + ComputerScreenCloseEffect(20, 0, 1); sPSSData->state++; break; case 4: - if (!sub_80F9C30()) + if (!IsComputerScreenCloseEffectActive()) { sub_80CABE0(); gPlayerPartyCount = CalculatePlayerPartyCount(); @@ -3842,11 +3842,11 @@ static void Cb_OnBPressed(u8 taskId) } break; case 3: - sub_80F9BF4(0x14, 0, 0); + ComputerScreenCloseEffect(20, 0, 0); sPSSData->state++; break; case 4: - if (!sub_80F9C30()) + if (!IsComputerScreenCloseEffectActive()) { sub_80CABE0(); gPlayerPartyCount = CalculatePlayerPartyCount(); diff --git a/src/record_mixing.c b/src/record_mixing.c index 3a93d72f8c..54b5272160 100644 --- a/src/record_mixing.c +++ b/src/record_mixing.c @@ -327,7 +327,7 @@ static void Task_RecordMixing_Main(u8 taskId) VarSet(VAR_TEMP_0, 1); gUnknown_03001130 = FALSE; PrepareExchangePacket(); - CreateRecordMixingSprite(); + CreateRecordMixingLights(); tState = 1; data[10] = CreateTask(Task_MixingRecordsRecv, 80); tSndEffTaskId = CreateTask(Task_RecordMixing_SoundEffect, 81); @@ -337,7 +337,7 @@ static void Task_RecordMixing_Main(u8 taskId) { tState = 2; FlagSet(FLAG_SYS_MIX_RECORD); - DestroyRecordMixingSprite(); + DestroyRecordMixingLights(); DestroyTask(tSndEffTaskId); } break; From abdf7cbf02442fb3d5cfe9945a8e093b273317a9 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Mon, 29 Jun 2020 16:53:38 -0400 Subject: [PATCH 004/101] Label fishing effect functions --- include/constants/items.h | 5 ++ include/tv.h | 2 +- src/data/items.h | 6 +- src/field_effect_helpers.c | 2 +- src/field_player_avatar.c | 154 ++++++++++++++++++------------------- src/field_screen_effect.c | 6 +- src/tv.c | 14 +--- src/wild_encounter.c | 7 -- 8 files changed, 94 insertions(+), 102 deletions(-) diff --git a/include/constants/items.h b/include/constants/items.h index fafcac8b18..d795194cfc 100644 --- a/include/constants/items.h +++ b/include/constants/items.h @@ -495,6 +495,11 @@ #define MAX_PC_ITEM_CAPACITY 999 #define MAX_BERRY_CAPACITY 999 +// Secondary IDs for rods +#define OLD_ROD 0 +#define GOOD_ROD 1 +#define SUPER_ROD 2 + // Check if the item is one that can be used on a Pokemon. #define ITEM_HAS_EFFECT(item) ((item) >= ITEM_POTION && (item) <= ITEM_0B2) diff --git a/include/tv.h b/include/tv.h index 7e286ff6e3..e2c50cad2a 100644 --- a/include/tv.h +++ b/include/tv.h @@ -35,7 +35,7 @@ void sub_80EDC60(const u16 *words); void sub_80EDA80(void); void ReceivePokeNewsData(void *src, u32 size, u8 masterIdx); void sub_80F0BB8(void); -void sub_80ED950(bool8 flag); +void RecordFishingAttemptForTV(bool8 caughtFish); void IncrementDailySlotsUses(void); void IncrementDailyRouletteUses(void); void IncrementDailyWildBattles(void); diff --git a/src/data/items.h b/src/data/items.h index 4d262e6833..30beb53528 100644 --- a/src/data/items.h +++ b/src/data/items.h @@ -3426,7 +3426,7 @@ const struct Item gItems[] = .pocket = POCKET_KEY_ITEMS, .type = 2, .fieldUseFunc = ItemUseOutOfBattle_Rod, - .secondaryId = 0, + .secondaryId = OLD_ROD, }, [ITEM_GOOD_ROD] = @@ -3440,7 +3440,7 @@ const struct Item gItems[] = .pocket = POCKET_KEY_ITEMS, .type = 2, .fieldUseFunc = ItemUseOutOfBattle_Rod, - .secondaryId = 1, + .secondaryId = GOOD_ROD, }, [ITEM_SUPER_ROD] = @@ -3454,7 +3454,7 @@ const struct Item gItems[] = .pocket = POCKET_KEY_ITEMS, .type = 2, .fieldUseFunc = ItemUseOutOfBattle_Rod, - .secondaryId = 2, + .secondaryId = SUPER_ROD, }, [ITEM_SS_TICKET] = diff --git a/src/field_effect_helpers.c b/src/field_effect_helpers.c index e3ca54f16d..9950978adf 100755 --- a/src/field_effect_helpers.c +++ b/src/field_effect_helpers.c @@ -1423,7 +1423,7 @@ void UpdateRayquazaSpotlightEffect(struct Sprite *sprite) switch (sprite->sState) { case 0: - SetGpuReg(REG_OFFSET_BG0VOFS, 120 - (sprite->sTimer / 3)); + SetGpuReg(REG_OFFSET_BG0VOFS, DISPLAY_WIDTH / 2 - (sprite->sTimer / 3)); if (sprite->sTimer == 96) { for (i = 0; i < 3; i++) diff --git a/src/field_player_avatar.c b/src/field_player_avatar.c index 41ddfc17dd..37342f02da 100644 --- a/src/field_player_avatar.c +++ b/src/field_player_avatar.c @@ -26,6 +26,7 @@ #include "constants/event_object_movement.h" #include "constants/field_effects.h" #include "constants/flags.h" +#include "constants/items.h" #include "constants/maps.h" #include "constants/moves.h" #include "constants/songs.h" @@ -121,22 +122,22 @@ static void Task_StopSurfingInit(u8 taskId); static void Task_WaitStopSurfing(u8 taskId); static void Task_Fishing(u8 taskId); -static u8 Fishing1(struct Task *task); -static u8 Fishing2(struct Task *task); -static u8 Fishing3(struct Task *task); -static u8 Fishing4(struct Task *task); -static u8 Fishing5(struct Task *task); -static u8 Fishing6(struct Task *task); -static u8 Fishing7(struct Task *task); -static u8 Fishing8(struct Task *task); -static u8 Fishing9(struct Task *task); -static u8 Fishing10(struct Task *task); -static u8 Fishing11(struct Task *task); -static u8 Fishing12(struct Task *task); -static u8 Fishing13(struct Task *task); -static u8 Fishing14(struct Task *task); -static u8 Fishing15(struct Task *task); -static u8 Fishing16(struct Task *task); +static u8 Fishing_Init(struct Task *task); +static u8 Fishing_GetRodOut(struct Task *task); +static u8 Fishing_WaitBeforeDots(struct Task *task); +static u8 Fishing_InitDots(struct Task *task); +static u8 Fishing_ShowDots(struct Task *task); +static u8 Fishing_CheckForBite(struct Task *task); +static u8 Fishing_GotBite(struct Task *task); +static u8 Fishing_WaitForA(struct Task *task); +static u8 Fishing_CheckMoreDots(struct Task *task); +static u8 Fishing_MonOnHook(struct Task *task); +static u8 Fishing_StartEncounter(struct Task *task); +static u8 Fishing_NotEvenNibble(struct Task *task); +static u8 Fishing_GotAway(struct Task *task); +static u8 Fishing_NoMon(struct Task *task); +static u8 Fishing_PutRodAway(struct Task *task); +static u8 Fishing_EndNoMon(struct Task *task); static void AlignFishingAnimationFrames(void); static u8 sub_808D38C(struct ObjectEvent *object, s16 *a1); @@ -1670,26 +1671,6 @@ static void Task_WaitStopSurfing(u8 taskId) } } -static bool8 (*const sFishingStateFuncs[])(struct Task *) = -{ - Fishing1, - Fishing2, - Fishing3, - Fishing4, - Fishing5, - Fishing6, - Fishing7, - Fishing8, - Fishing9, - Fishing10, - Fishing11, - Fishing12, - Fishing13, - Fishing14, - Fishing15, - Fishing16, -}; - #define tStep data[0] #define tFrameCounter data[1] #define tNumDots data[2] @@ -1699,6 +1680,7 @@ static bool8 (*const sFishingStateFuncs[])(struct Task *) = #define tPlayerGfxId data[14] #define tFishingRod data[15] +// Some states are jumped to directly, labeled below #define FISHING_START_ROUND 3 #define FISHING_GOT_BITE 6 #define FISHING_ON_HOOK 9 @@ -1706,6 +1688,26 @@ static bool8 (*const sFishingStateFuncs[])(struct Task *) = #define FISHING_GOT_AWAY 12 #define FISHING_SHOW_RESULT 13 +static bool8 (*const sFishingStateFuncs[])(struct Task *) = +{ + Fishing_Init, + Fishing_GetRodOut, + Fishing_WaitBeforeDots, + Fishing_InitDots, // FISHING_START_ROUND + Fishing_ShowDots, + Fishing_CheckForBite, + Fishing_GotBite, // FISHING_GOT_BITE + Fishing_WaitForA, + Fishing_CheckMoreDots, + Fishing_MonOnHook, // FISHING_ON_HOOK + Fishing_StartEncounter, + Fishing_NotEvenNibble, // FISHING_NO_BITE + Fishing_GotAway, // FISHING_GOT_AWAY + Fishing_NoMon, // FISHING_SHOW_RESULT + Fishing_PutRodAway, + Fishing_EndNoMon, +}; + void StartFishing(u8 rod) { u8 taskId = CreateTask(Task_Fishing, 0xFF); @@ -1720,7 +1722,7 @@ static void Task_Fishing(u8 taskId) ; } -static bool8 Fishing1(struct Task *task) +static bool8 Fishing_Init(struct Task *task) { ScriptContext2_Enable(); gPlayerAvatar.preventStep = TRUE; @@ -1728,14 +1730,22 @@ static bool8 Fishing1(struct Task *task) return FALSE; } -static bool8 Fishing2(struct Task *task) +static bool8 Fishing_GetRodOut(struct Task *task) { struct ObjectEvent *playerObjEvent; - const s16 arr1[] = {1, 1, 1}; - const s16 arr2[] = {1, 3, 6}; + const s16 minRounds1[] = { + [OLD_ROD] = 1, + [GOOD_ROD] = 1, + [SUPER_ROD] = 1 + }; + const s16 minRounds2[] = { + [OLD_ROD] = 1, + [GOOD_ROD] = 3, + [SUPER_ROD] = 6 + }; task->tRoundsPlayed = 0; - task->tMinRoundsRequired = arr1[task->tFishingRod] + (Random() % arr2[task->tFishingRod]); + task->tMinRoundsRequired = minRounds1[task->tFishingRod] + (Random() % minRounds2[task->tFishingRod]); task->tPlayerGfxId = gObjectEvents[gPlayerAvatar.objectEventId].graphicsId; playerObjEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; ObjectEventClearHeldMovementIfActive(playerObjEvent); @@ -1745,7 +1755,7 @@ static bool8 Fishing2(struct Task *task) return FALSE; } -static bool8 Fishing3(struct Task *task) +static bool8 Fishing_WaitBeforeDots(struct Task *task) { AlignFishingAnimationFrames(); @@ -1756,7 +1766,7 @@ static bool8 Fishing3(struct Task *task) return FALSE; } -static bool8 Fishing4(struct Task *task) +static bool8 Fishing_InitDots(struct Task *task) { u32 randVal; @@ -1774,8 +1784,7 @@ static bool8 Fishing4(struct Task *task) return TRUE; } -// Play a round of the dot game -static bool8 Fishing5(struct Task *task) +static bool8 Fishing_ShowDots(struct Task *task) { const u8 dot[] = _("·"); @@ -1810,8 +1819,7 @@ static bool8 Fishing5(struct Task *task) } } -// Determine if fish bites -static bool8 Fishing6(struct Task *task) +static bool8 Fishing_CheckForBite(struct Task *task) { bool8 bite; @@ -1831,34 +1839,25 @@ static bool8 Fishing6(struct Task *task) if (ability == ABILITY_SUCTION_CUPS || ability == ABILITY_STICKY_HOLD) { if (Random() % 100 > 14) - { bite = TRUE; - } } } if (!bite) { if (Random() & 1) - { task->tStep = FISHING_NO_BITE; - } else - { bite = TRUE; - } } if (bite == TRUE) - { StartSpriteAnim(&gSprites[gPlayerAvatar.spriteId], GetFishingBiteDirectionAnimNum(GetPlayerFacingDirection())); - } } return TRUE; } -// Oh! A Bite! -static bool8 Fishing7(struct Task *task) +static bool8 Fishing_GotBite(struct Task *task) { AlignFishingAnimationFrames(); AddTextPrinterParameterized(0, 1, gText_OhABite, 0, 17, 0, NULL); @@ -1868,9 +1867,13 @@ static bool8 Fishing7(struct Task *task) } // We have a bite. Now, wait for the player to press A, or the timer to expire. -static bool8 Fishing8(struct Task *task) +static bool8 Fishing_WaitForA(struct Task *task) { - const s16 reelTimeouts[3] = {36, 33, 30}; + const s16 reelTimeouts[3] = { + [OLD_ROD] = 36, + [GOOD_ROD] = 33, + [SUPER_ROD] = 30 + }; AlignFishingAnimationFrames(); task->tFrameCounter++; @@ -1882,13 +1885,13 @@ static bool8 Fishing8(struct Task *task) } // Determine if we're going to play the dot game again -static bool8 Fishing9(struct Task *task) +static bool8 Fishing_CheckMoreDots(struct Task *task) { - const s16 arr[][2] = + const s16 moreDotsChance[][2] = { - {0, 0}, - {40, 10}, - {70, 30} + [OLD_ROD] = {0, 0}, + [GOOD_ROD] = {40, 10}, + [SUPER_ROD] = {70, 30} }; AlignFishingAnimationFrames(); @@ -1902,13 +1905,13 @@ static bool8 Fishing9(struct Task *task) // probability of having to play another round s16 probability = Random() % 100; - if (arr[task->tFishingRod][task->tRoundsPlayed] > probability) + if (moreDotsChance[task->tFishingRod][task->tRoundsPlayed] > probability) task->tStep = FISHING_START_ROUND; } return FALSE; } -static bool8 Fishing10(struct Task *task) +static bool8 Fishing_MonOnHook(struct Task *task) { AlignFishingAnimationFrames(); FillWindowPixelBuffer(0, PIXEL_FILL(1)); @@ -1918,7 +1921,7 @@ static bool8 Fishing10(struct Task *task) return FALSE; } -static bool8 Fishing11(struct Task *task) +static bool8 Fishing_StartEncounter(struct Task *task) { if (task->tFrameCounter == 0) AlignFishingAnimationFrames(); @@ -1948,14 +1951,13 @@ static bool8 Fishing11(struct Task *task) gPlayerAvatar.preventStep = FALSE; ScriptContext2_Disable(); FishingWildEncounter(task->tFishingRod); - sub_80ED950(1); + RecordFishingAttemptForTV(TRUE); DestroyTask(FindTaskIdByFunc(Task_Fishing)); } return FALSE; } -// Not even a nibble -static bool8 Fishing12(struct Task *task) +static bool8 Fishing_NotEvenNibble(struct Task *task) { AlignFishingAnimationFrames(); StartSpriteAnim(&gSprites[gPlayerAvatar.spriteId], GetFishingNoCatchDirectionAnimNum(GetPlayerFacingDirection())); @@ -1965,8 +1967,7 @@ static bool8 Fishing12(struct Task *task) return TRUE; } -// It got away -static bool8 Fishing13(struct Task *task) +static bool8 Fishing_GotAway(struct Task *task) { AlignFishingAnimationFrames(); StartSpriteAnim(&gSprites[gPlayerAvatar.spriteId], GetFishingNoCatchDirectionAnimNum(GetPlayerFacingDirection())); @@ -1976,15 +1977,14 @@ static bool8 Fishing13(struct Task *task) return TRUE; } -// Wait one second -static bool8 Fishing14(struct Task *task) +static bool8 Fishing_NoMon(struct Task *task) { AlignFishingAnimationFrames(); task->tStep++; return FALSE; } -static bool8 Fishing15(struct Task *task) +static bool8 Fishing_PutRodAway(struct Task *task) { AlignFishingAnimationFrames(); if (gSprites[gPlayerAvatar.spriteId].animEnded) @@ -2002,7 +2002,7 @@ static bool8 Fishing15(struct Task *task) return FALSE; } -static bool8 Fishing16(struct Task *task) +static bool8 Fishing_EndNoMon(struct Task *task) { RunTextPrinters(); if (!IsTextPrinterActive(0)) @@ -2011,7 +2011,7 @@ static bool8 Fishing16(struct Task *task) ScriptContext2_Disable(); UnfreezeObjectEvents(); ClearDialogWindowAndFrame(0, TRUE); - sub_80ED950(0); + RecordFishingAttemptForTV(FALSE); DestroyTask(FindTaskIdByFunc(Task_Fishing)); } return FALSE; diff --git a/src/field_screen_effect.c b/src/field_screen_effect.c index 57dc27ed9b..9bdf98d689 100644 --- a/src/field_screen_effect.c +++ b/src/field_screen_effect.c @@ -979,7 +979,7 @@ void AnimateFlash(u8 flashLevel) u8 value = 0; if (!flashLevel) value = 1; - sub_80AFFDC(120, 80, sFlashLevelPixelRadii[curFlashLevel], sFlashLevelPixelRadii[flashLevel], value, 1); + sub_80AFFDC(DISPLAY_WIDTH / 2, DISPLAY_HEIGHT / 2, sFlashLevelPixelRadii[curFlashLevel], sFlashLevelPixelRadii[flashLevel], value, 1); sub_80AFFB8(); ScriptContext2_Enable(); } @@ -988,14 +988,14 @@ void WriteFlashScanlineEffectBuffer(u8 flashLevel) { if (flashLevel) { - SetFlashScanlineEffectWindowBoundaries(&gScanlineEffectRegBuffers[0][0], 120, 80, sFlashLevelPixelRadii[flashLevel]); + SetFlashScanlineEffectWindowBoundaries(&gScanlineEffectRegBuffers[0][0], DISPLAY_WIDTH / 2, DISPLAY_HEIGHT / 2, sFlashLevelPixelRadii[flashLevel]); CpuFastSet(&gScanlineEffectRegBuffers[0], &gScanlineEffectRegBuffers[1], 480); } } void WriteBattlePyramidViewScanlineEffectBuffer(void) { - SetFlashScanlineEffectWindowBoundaries(&gScanlineEffectRegBuffers[0][0], 120, 80, gSaveBlock2Ptr->frontier.pyramidLightRadius); + SetFlashScanlineEffectWindowBoundaries(&gScanlineEffectRegBuffers[0][0], DISPLAY_WIDTH / 2, DISPLAY_HEIGHT / 2, gSaveBlock2Ptr->frontier.pyramidLightRadius); CpuFastSet(&gScanlineEffectRegBuffers[0], &gScanlineEffectRegBuffers[1], 480); } diff --git a/src/tv.c b/src/tv.c index 17a02be6b9..d48d48bb36 100644 --- a/src/tv.c +++ b/src/tv.c @@ -1836,31 +1836,25 @@ static void TryEndMassOutbreak(u16 days) gSaveBlock1Ptr->outbreakDaysLeft -= days; } -void sub_80ED950(bool8 flag) +void RecordFishingAttemptForTV(bool8 caughtFish) { - if (flag) + if (caughtFish) { if (sPokemonAnglerAttemptCounters >> 8 > 4) - { PutFishingAdviceShowOnTheAir(); - } + sPokemonAnglerAttemptCounters &= 0xFF; if (sPokemonAnglerAttemptCounters != 0xFF) - { sPokemonAnglerAttemptCounters += 0x01; - } } else { if ((u8)sPokemonAnglerAttemptCounters > 4) - { PutFishingAdviceShowOnTheAir(); - } + sPokemonAnglerAttemptCounters &= 0xFF00; if (sPokemonAnglerAttemptCounters >> 8 != 0xFF) - { sPokemonAnglerAttemptCounters += 0x0100; - } } } diff --git a/src/wild_encounter.c b/src/wild_encounter.c index 7d20b2476f..e486cd2f87 100644 --- a/src/wild_encounter.c +++ b/src/wild_encounter.c @@ -185,13 +185,6 @@ static u8 ChooseWildMonIndex_WaterRock(void) return 4; } -enum -{ - OLD_ROD, - GOOD_ROD, - SUPER_ROD -}; - static u8 ChooseWildMonIndex_Fishing(u8 rod) { u8 wildMonIndex = 0; From c84f98a7ff229ab8b09053fae8d66506764ce099 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Mon, 29 Jun 2020 17:24:17 -0400 Subject: [PATCH 005/101] Document misc field control --- include/field_screen_effect.h | 2 +- src/field_control_avatar.c | 2 +- src/field_screen_effect.c | 15 ++++++++------- src/scrcmd.c | 3 ++- 4 files changed, 12 insertions(+), 10 deletions(-) diff --git a/include/field_screen_effect.h b/include/field_screen_effect.h index de472da3c3..951bf07886 100644 --- a/include/field_screen_effect.h +++ b/include/field_screen_effect.h @@ -28,7 +28,7 @@ void DoFallWarp(void); void DoEscalatorWarp(u8 metatileBehavior); void DoLavaridgeGymB1FWarp(void); void DoLavaridgeGym1FWarp(void); -void DoTeleportWarp(void); +void DoTeleportTileWarp(void); void DoMossdeepGymWarp(void); void DoPortholeWarp(void); void DoCableClubWarp(void); diff --git a/src/field_control_avatar.c b/src/field_control_avatar.c index 5a47f13542..3684b53e6d 100644 --- a/src/field_control_avatar.c +++ b/src/field_control_avatar.c @@ -725,7 +725,7 @@ static bool8 TryStartWarpEventScript(struct MapPosition *position, u16 metatileB } if (MetatileBehavior_IsAquaHideoutWarp(metatileBehavior) == TRUE) { - DoTeleportWarp(); + DoTeleportTileWarp(); return TRUE; } if (MetatileBehavior_IsWarpOrBridge(metatileBehavior) == TRUE) diff --git a/src/field_screen_effect.c b/src/field_screen_effect.c index 9bdf98d689..e14efce677 100644 --- a/src/field_screen_effect.c +++ b/src/field_screen_effect.c @@ -44,7 +44,7 @@ static void sub_808115C(u8); static void FillPalBufferWhite(void); static void Task_ExitDoor(u8); static bool32 WaitForWeatherFadeIn(void); -static void task0A_mpl_807E31C(u8 taskId); +static void Task_TeleportTileWarpExit(u8 taskId); static void Task_WarpAndLoadMap(u8 taskId); static void Task_DoDoorWarp(u8 taskId); static void Task_EnableScriptAfterMusicFade(u8 taskId); @@ -297,12 +297,12 @@ void FieldCB_WarpExitFadeFromBlack(void) ScriptContext2_Enable(); } -static void FieldCB_TeleportWarpExit(void) +static void FieldCB_TeleportTileWarpExit(void) { Overworld_PlaySpecialMapMusic(); WarpFadeInScreen(); PlaySE(SE_TK_WARPOUT); - CreateTask(task0A_mpl_807E31C, 10); + CreateTask(Task_TeleportTileWarpExit, 10); ScriptContext2_Enable(); } @@ -545,14 +545,15 @@ void DoLavaridgeGym1FWarp(void) StartLavaridgeGym1FWarp(10); } -void DoTeleportWarp(void) +// Warp from a teleporting tile, e.g. in Aqua Hideout (For the move Teleport see FldEff_TeleportWarpOut) +void DoTeleportTileWarp(void) { ScriptContext2_Enable(); TryFadeOutOldMapMusic(); WarpFadeOutScreen(); PlaySE(SE_TK_WARPIN); CreateTask(Task_WarpAndLoadMap, 10); - gFieldCallback = FieldCB_TeleportWarpExit; + gFieldCallback = FieldCB_TeleportTileWarpExit; } void DoMossdeepGymWarp(void) @@ -999,7 +1000,7 @@ void WriteBattlePyramidViewScanlineEffectBuffer(void) CpuFastSet(&gScanlineEffectRegBuffers[0], &gScanlineEffectRegBuffers[1], 480); } -static void task0A_mpl_807E31C(u8 taskId) +static void Task_TeleportTileWarpExit(u8 taskId) { switch (gTasks[taskId].data[0]) { @@ -1056,7 +1057,7 @@ void sub_80B0244(void) { ScriptContext2_Enable(); CreateTask(Task_WarpAndLoadMap, 10); - gFieldCallback = FieldCB_TeleportWarpExit; + gFieldCallback = FieldCB_TeleportTileWarpExit; } void sub_80B0268(void) diff --git a/src/scrcmd.c b/src/scrcmd.c index 9e62c45c5f..3b5003c3bc 100644 --- a/src/scrcmd.c +++ b/src/scrcmd.c @@ -801,6 +801,7 @@ bool8 ScrCmd_warphole(struct ScriptContext *ctx) return TRUE; } +// RS mossdeep gym warp, unused in Emerald bool8 ScrCmd_warpteleport(struct ScriptContext *ctx) { u8 mapGroup = ScriptReadByte(ctx); @@ -810,7 +811,7 @@ bool8 ScrCmd_warpteleport(struct ScriptContext *ctx) u16 y = VarGet(ScriptReadHalfword(ctx)); SetWarpDestination(mapGroup, mapNum, warpId, x, y); - DoTeleportWarp(); + DoTeleportTileWarp(); ResetInitialPlayerAvatarState(); return TRUE; } From 8589e138a82b74bbfdaec6008cb389e5d5e8cce8 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Thu, 2 Jul 2020 00:17:14 -0400 Subject: [PATCH 006/101] Eliminate METATILE_ID() macro --- src/braille_puzzles.c | 36 +++--- src/field_effect.c | 4 +- src/field_special_scene.c | 12 +- src/field_specials.c | 236 +++++++++++++++++++------------------- src/field_tasks.c | 62 +++++----- src/fldeff_escalator.c | 42 +++---- src/mirage_tower.c | 36 +++--- 7 files changed, 214 insertions(+), 214 deletions(-) diff --git a/src/braille_puzzles.c b/src/braille_puzzles.c index 3802b9ecaa..a3862c7160 100644 --- a/src/braille_puzzles.c +++ b/src/braille_puzzles.c @@ -87,12 +87,12 @@ bool8 ShouldDoBrailleDigEffect(void) void DoBrailleDigEffect(void) { - MapGridSetMetatileIdAt(16, 8, METATILE_ID(Cave, SealedChamberEntrance_TopLeft)); - MapGridSetMetatileIdAt(17, 8, METATILE_ID(Cave, SealedChamberEntrance_TopMid)); - MapGridSetMetatileIdAt(18, 8, METATILE_ID(Cave, SealedChamberEntrance_TopRight)); - MapGridSetMetatileIdAt(16, 9, METATILE_ID(Cave, SealedChamberEntrance_BottomLeft) | METATILE_COLLISION_MASK); - MapGridSetMetatileIdAt(17, 9, METATILE_ID(Cave, SealedChamberEntrance_BottomMid)); - MapGridSetMetatileIdAt(18, 9, METATILE_ID(Cave, SealedChamberEntrance_BottomRight) | METATILE_COLLISION_MASK); + MapGridSetMetatileIdAt(16, 8, METATILE_Cave_SealedChamberEntrance_TopLeft); + MapGridSetMetatileIdAt(17, 8, METATILE_Cave_SealedChamberEntrance_TopMid); + MapGridSetMetatileIdAt(18, 8, METATILE_Cave_SealedChamberEntrance_TopRight); + MapGridSetMetatileIdAt(16, 9, METATILE_Cave_SealedChamberEntrance_BottomLeft | METATILE_COLLISION_MASK); + MapGridSetMetatileIdAt(17, 9, METATILE_Cave_SealedChamberEntrance_BottomMid); + MapGridSetMetatileIdAt(18, 9, METATILE_Cave_SealedChamberEntrance_BottomRight | METATILE_COLLISION_MASK); DrawWholeMapView(); PlaySE(SE_BAN); FlagSet(FLAG_SYS_BRAILLE_DIG); @@ -280,12 +280,12 @@ void UseRegirockHm_Callback(void) void DoBrailleRegirockEffect(void) { - MapGridSetMetatileIdAt(14, 26, METATILE_ID(Cave, SealedChamberEntrance_TopLeft)); - MapGridSetMetatileIdAt(15, 26, METATILE_ID(Cave, SealedChamberEntrance_TopMid)); - MapGridSetMetatileIdAt(16, 26, METATILE_ID(Cave, SealedChamberEntrance_TopRight)); - MapGridSetMetatileIdAt(14, 27, METATILE_ID(Cave, SealedChamberEntrance_BottomLeft) | METATILE_COLLISION_MASK); - MapGridSetMetatileIdAt(15, 27, METATILE_ID(Cave, SealedChamberEntrance_BottomMid)); - MapGridSetMetatileIdAt(16, 27, METATILE_ID(Cave, SealedChamberEntrance_BottomRight) | METATILE_COLLISION_MASK); + MapGridSetMetatileIdAt(14, 26, METATILE_Cave_SealedChamberEntrance_TopLeft); + MapGridSetMetatileIdAt(15, 26, METATILE_Cave_SealedChamberEntrance_TopMid); + MapGridSetMetatileIdAt(16, 26, METATILE_Cave_SealedChamberEntrance_TopRight); + MapGridSetMetatileIdAt(14, 27, METATILE_Cave_SealedChamberEntrance_BottomLeft | METATILE_COLLISION_MASK); + MapGridSetMetatileIdAt(15, 27, METATILE_Cave_SealedChamberEntrance_BottomMid); + MapGridSetMetatileIdAt(16, 27, METATILE_Cave_SealedChamberEntrance_BottomRight | METATILE_COLLISION_MASK); DrawWholeMapView(); PlaySE(SE_BAN); FlagSet(FLAG_SYS_REGIROCK_PUZZLE_COMPLETED); @@ -319,12 +319,12 @@ void UseRegisteelHm_Callback(void) void DoBrailleRegisteelEffect(void) { - MapGridSetMetatileIdAt(14, 26, METATILE_ID(Cave, SealedChamberEntrance_TopLeft)); - MapGridSetMetatileIdAt(15, 26, METATILE_ID(Cave, SealedChamberEntrance_TopMid)); - MapGridSetMetatileIdAt(16, 26, METATILE_ID(Cave, SealedChamberEntrance_TopRight)); - MapGridSetMetatileIdAt(14, 27, METATILE_ID(Cave, SealedChamberEntrance_BottomLeft) | METATILE_COLLISION_MASK); - MapGridSetMetatileIdAt(15, 27, METATILE_ID(Cave, SealedChamberEntrance_BottomMid)); - MapGridSetMetatileIdAt(16, 27, METATILE_ID(Cave, SealedChamberEntrance_BottomRight) | METATILE_COLLISION_MASK); + MapGridSetMetatileIdAt(14, 26, METATILE_Cave_SealedChamberEntrance_TopLeft); + MapGridSetMetatileIdAt(15, 26, METATILE_Cave_SealedChamberEntrance_TopMid); + MapGridSetMetatileIdAt(16, 26, METATILE_Cave_SealedChamberEntrance_TopRight); + MapGridSetMetatileIdAt(14, 27, METATILE_Cave_SealedChamberEntrance_BottomLeft | METATILE_COLLISION_MASK); + MapGridSetMetatileIdAt(15, 27, METATILE_Cave_SealedChamberEntrance_BottomMid); + MapGridSetMetatileIdAt(16, 27, METATILE_Cave_SealedChamberEntrance_BottomRight | METATILE_COLLISION_MASK); DrawWholeMapView(); PlaySE(SE_BAN); FlagSet(FLAG_SYS_REGISTEEL_PUZZLE_COMPLETED); diff --git a/src/field_effect.c b/src/field_effect.c index b681fc70ea..c2302eed95 100644 --- a/src/field_effect.c +++ b/src/field_effect.c @@ -3816,7 +3816,7 @@ static void SpriteCB_DeoxysRockFragment(struct Sprite* sprite) sprite->pos1.y += 12; break; } - if ((u16)(sprite->pos1.x + 4) > 248 || sprite->pos1.y < -4 || sprite->pos1.y > 164) + if ((u16)(sprite->pos1.x + 4) > DISPLAY_WIDTH + 8 || sprite->pos1.y < -4 || sprite->pos1.y > DISPLAY_HEIGHT + 4) DestroySprite(sprite); } @@ -3834,7 +3834,7 @@ bool8 FldEff_MoveDeoxysRock(struct Sprite* sprite) xPos = (gFieldEffectArguments[3] - xPos) * 16; yPos = (gFieldEffectArguments[4] - yPos) * 16; ShiftObjectEventCoords(object, gFieldEffectArguments[3] + 7, gFieldEffectArguments[4] + 7); - taskId = CreateTask(Task_MoveDeoxysRock, 0x50); + taskId = CreateTask(Task_MoveDeoxysRock, 80); gTasks[taskId].data[1] = object->spriteId; gTasks[taskId].data[2] = gSprites[object->spriteId].pos1.x + xPos; gTasks[taskId].data[3] = gSprites[object->spriteId].pos1.y + yPos; diff --git a/src/field_special_scene.c b/src/field_special_scene.c index 540bcd1d42..e19e31361c 100644 --- a/src/field_special_scene.c +++ b/src/field_special_scene.c @@ -216,9 +216,9 @@ void Task_HandleTruckSequence(u8 taskId) data[1]++; if (data[1] == 120) { - MapGridSetMetatileIdAt(11, 8, METATILE_ID(InsideOfTruck, ExitLight_Top)); - MapGridSetMetatileIdAt(11, 9, METATILE_ID(InsideOfTruck, ExitLight_Mid)); - MapGridSetMetatileIdAt(11, 10, METATILE_ID(InsideOfTruck, ExitLight_Bottom)); + MapGridSetMetatileIdAt(11, 8, METATILE_InsideOfTruck_ExitLight_Top); + MapGridSetMetatileIdAt(11, 9, METATILE_InsideOfTruck_ExitLight_Mid); + MapGridSetMetatileIdAt(11, 10, METATILE_InsideOfTruck_ExitLight_Bottom); DrawWholeMapView(); PlaySE(SE_TRACK_DOOR); DestroyTask(taskId); @@ -230,9 +230,9 @@ void Task_HandleTruckSequence(u8 taskId) void ExecuteTruckSequence(void) { - MapGridSetMetatileIdAt(11, 8, METATILE_ID(InsideOfTruck, DoorClosedFloor_Top)); - MapGridSetMetatileIdAt(11, 9, METATILE_ID(InsideOfTruck, DoorClosedFloor_Mid)); - MapGridSetMetatileIdAt(11, 10, METATILE_ID(InsideOfTruck, DoorClosedFloor_Bottom)); + MapGridSetMetatileIdAt(11, 8, METATILE_InsideOfTruck_DoorClosedFloor_Top); + MapGridSetMetatileIdAt(11, 9, METATILE_InsideOfTruck_DoorClosedFloor_Mid); + MapGridSetMetatileIdAt(11, 10, METATILE_InsideOfTruck_DoorClosedFloor_Bottom); DrawWholeMapView(); ScriptContext2_Enable(); CpuFastFill(0, gPlttBufferFaded, 0x400); diff --git a/src/field_specials.c b/src/field_specials.c index 818cd70db3..e1d336d21d 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -656,9 +656,9 @@ void MauvilleGymPressSwitch(void) for (i = 0; i < ARRAY_COUNT(sMauvilleGymSwitchCoords); i++) { if (i == gSpecialVar_0x8004) - MapGridSetMetatileIdAt(sMauvilleGymSwitchCoords[i].x, sMauvilleGymSwitchCoords[i].y, METATILE_ID(MauvilleGym, PressedSwitch)); + MapGridSetMetatileIdAt(sMauvilleGymSwitchCoords[i].x, sMauvilleGymSwitchCoords[i].y, METATILE_MauvilleGym_PressedSwitch); else - MapGridSetMetatileIdAt(sMauvilleGymSwitchCoords[i].x, sMauvilleGymSwitchCoords[i].y, METATILE_ID(MauvilleGym, RaisedSwitch)); + MapGridSetMetatileIdAt(sMauvilleGymSwitchCoords[i].x, sMauvilleGymSwitchCoords[i].y, METATILE_MauvilleGym_RaisedSwitch); } } @@ -673,83 +673,83 @@ void MauvilleGymSetDefaultBarriers(void) { switch (MapGridGetMetatileIdAt(x, y)) { - case METATILE_ID(MauvilleGym, GreenBeamH1_On): - MapGridSetMetatileIdAt(x, y, METATILE_ID(MauvilleGym, GreenBeamH1_Off)); + case METATILE_MauvilleGym_GreenBeamH1_On: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_GreenBeamH1_Off); break; - case METATILE_ID(MauvilleGym, GreenBeamH2_On): - MapGridSetMetatileIdAt(x, y, METATILE_ID(MauvilleGym, GreenBeamH2_Off)); + case METATILE_MauvilleGym_GreenBeamH2_On: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_GreenBeamH2_Off); break; - case METATILE_ID(MauvilleGym, GreenBeamH3_On): - MapGridSetMetatileIdAt(x, y, METATILE_ID(MauvilleGym, GreenBeamH3_Off)); + case METATILE_MauvilleGym_GreenBeamH3_On: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_GreenBeamH3_Off); break; - case METATILE_ID(MauvilleGym, GreenBeamH4_On): - MapGridSetMetatileIdAt(x, y, METATILE_ID(MauvilleGym, GreenBeamH4_Off)); + case METATILE_MauvilleGym_GreenBeamH4_On: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_GreenBeamH4_Off); break; - case METATILE_ID(MauvilleGym, GreenBeamH1_Off): - MapGridSetMetatileIdAt(x, y, METATILE_ID(MauvilleGym, GreenBeamH1_On)); + case METATILE_MauvilleGym_GreenBeamH1_Off: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_GreenBeamH1_On); break; - case METATILE_ID(MauvilleGym, GreenBeamH2_Off): - MapGridSetMetatileIdAt(x, y, METATILE_ID(MauvilleGym, GreenBeamH2_On)); + case METATILE_MauvilleGym_GreenBeamH2_Off: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_GreenBeamH2_On); break; - case METATILE_ID(MauvilleGym, GreenBeamH3_Off): - MapGridSetMetatileIdAt(x, y, METATILE_ID(MauvilleGym, GreenBeamH3_On) | METATILE_COLLISION_MASK); + case METATILE_MauvilleGym_GreenBeamH3_Off: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_GreenBeamH3_On | METATILE_COLLISION_MASK); break; - case METATILE_ID(MauvilleGym, GreenBeamH4_Off): - MapGridSetMetatileIdAt(x, y, METATILE_ID(MauvilleGym, GreenBeamH4_On) | METATILE_COLLISION_MASK); + case METATILE_MauvilleGym_GreenBeamH4_Off: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_GreenBeamH4_On | METATILE_COLLISION_MASK); break; - case METATILE_ID(MauvilleGym, RedBeamH1_On): - MapGridSetMetatileIdAt(x, y, METATILE_ID(MauvilleGym, RedBeamH1_Off)); + case METATILE_MauvilleGym_RedBeamH1_On: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_RedBeamH1_Off); break; - case METATILE_ID(MauvilleGym, RedBeamH2_On): - MapGridSetMetatileIdAt(x, y, METATILE_ID(MauvilleGym, RedBeamH2_Off)); + case METATILE_MauvilleGym_RedBeamH2_On: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_RedBeamH2_Off); break; - case METATILE_ID(MauvilleGym, RedBeamH3_On): - MapGridSetMetatileIdAt(x, y, METATILE_ID(MauvilleGym, RedBeamH3_Off)); + case METATILE_MauvilleGym_RedBeamH3_On: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_RedBeamH3_Off); break; - case METATILE_ID(MauvilleGym, RedBeamH4_On): - MapGridSetMetatileIdAt(x, y, METATILE_ID(MauvilleGym, RedBeamH4_Off)); + case METATILE_MauvilleGym_RedBeamH4_On: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_RedBeamH4_Off); break; - case METATILE_ID(MauvilleGym, RedBeamH1_Off): - MapGridSetMetatileIdAt(x, y, METATILE_ID(MauvilleGym, RedBeamH1_On)); + case METATILE_MauvilleGym_RedBeamH1_Off: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_RedBeamH1_On); break; - case METATILE_ID(MauvilleGym, RedBeamH2_Off): - MapGridSetMetatileIdAt(x, y, METATILE_ID(MauvilleGym, RedBeamH2_On)); + case METATILE_MauvilleGym_RedBeamH2_Off: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_RedBeamH2_On); break; - case METATILE_ID(MauvilleGym, RedBeamH3_Off): - MapGridSetMetatileIdAt(x, y, METATILE_ID(MauvilleGym, RedBeamH3_On) | METATILE_COLLISION_MASK); + case METATILE_MauvilleGym_RedBeamH3_Off: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_RedBeamH3_On | METATILE_COLLISION_MASK); break; - case METATILE_ID(MauvilleGym, RedBeamH4_Off): - MapGridSetMetatileIdAt(x, y, METATILE_ID(MauvilleGym, RedBeamH4_On) | METATILE_COLLISION_MASK); + case METATILE_MauvilleGym_RedBeamH4_Off: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_RedBeamH4_On | METATILE_COLLISION_MASK); break; - case METATILE_ID(MauvilleGym, GreenBeamV1_On): - MapGridSetMetatileIdAt(x, y, METATILE_ID(MauvilleGym, PoleBottom_On) | METATILE_COLLISION_MASK); + case METATILE_MauvilleGym_GreenBeamV1_On: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_PoleBottom_On | METATILE_COLLISION_MASK); break; - case METATILE_ID(MauvilleGym, GreenBeamV2_On): - MapGridSetMetatileIdAt(x, y, METATILE_ID(MauvilleGym, FloorTile)); + case METATILE_MauvilleGym_GreenBeamV2_On: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_FloorTile); break; - case METATILE_ID(MauvilleGym, RedBeamV1_On): - MapGridSetMetatileIdAt(x, y, METATILE_ID(MauvilleGym, PoleBottom_Off) | METATILE_COLLISION_MASK); + case METATILE_MauvilleGym_RedBeamV1_On: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_PoleBottom_Off | METATILE_COLLISION_MASK); break; - case METATILE_ID(MauvilleGym, RedBeamV2_On): - MapGridSetMetatileIdAt(x, y, METATILE_ID(MauvilleGym, FloorTile)); + case METATILE_MauvilleGym_RedBeamV2_On: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_FloorTile); break; - case METATILE_ID(MauvilleGym, PoleBottom_On): - MapGridSetMetatileIdAt(x, y, METATILE_ID(MauvilleGym, GreenBeamV1_On) | METATILE_COLLISION_MASK); + case METATILE_MauvilleGym_PoleBottom_On: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_GreenBeamV1_On | METATILE_COLLISION_MASK); break; - case METATILE_ID(MauvilleGym, FloorTile): - if (MapGridGetMetatileIdAt(x, y - 1) == METATILE_ID(MauvilleGym, GreenBeamV1_On)) - MapGridSetMetatileIdAt(x, y, METATILE_ID(MauvilleGym, GreenBeamV2_On) | METATILE_COLLISION_MASK); + case METATILE_MauvilleGym_FloorTile: + if (MapGridGetMetatileIdAt(x, y - 1) == METATILE_MauvilleGym_GreenBeamV1_On) + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_GreenBeamV2_On | METATILE_COLLISION_MASK); else - MapGridSetMetatileIdAt(x, y, METATILE_ID(MauvilleGym, RedBeamV2_On) | METATILE_COLLISION_MASK); + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_RedBeamV2_On | METATILE_COLLISION_MASK); break; - case METATILE_ID(MauvilleGym, PoleBottom_Off): - MapGridSetMetatileIdAt(x, y, METATILE_ID(MauvilleGym, RedBeamV1_On) | METATILE_COLLISION_MASK); + case METATILE_MauvilleGym_PoleBottom_Off: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_RedBeamV1_On | METATILE_COLLISION_MASK); break; - case METATILE_ID(MauvilleGym, PoleTop_Off): - MapGridSetMetatileIdAt(x, y, METATILE_ID(MauvilleGym, PoleTop_On) | METATILE_COLLISION_MASK); + case METATILE_MauvilleGym_PoleTop_Off: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_PoleTop_On | METATILE_COLLISION_MASK); break; - case METATILE_ID(MauvilleGym, PoleTop_On): - MapGridSetMetatileIdAt(x, y, METATILE_ID(MauvilleGym, PoleTop_Off)); + case METATILE_MauvilleGym_PoleTop_On: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_PoleTop_Off); break; } } @@ -763,7 +763,7 @@ void MauvilleGymDeactivatePuzzle(void) const struct UCoords8 *switchCoords = sMauvilleGymSwitchCoords; for (i = ARRAY_COUNT(sMauvilleGymSwitchCoords) - 1; i >= 0; i--) { - MapGridSetMetatileIdAt(switchCoords->x, switchCoords->y, METATILE_ID(MauvilleGym, PressedSwitch)); + MapGridSetMetatileIdAt(switchCoords->x, switchCoords->y, METATILE_MauvilleGym_PressedSwitch); switchCoords++; } for (y = 12; y < 24; y++) @@ -772,42 +772,42 @@ void MauvilleGymDeactivatePuzzle(void) { switch (MapGridGetMetatileIdAt(x, y)) { - case METATILE_ID(MauvilleGym, GreenBeamH1_On): - MapGridSetMetatileIdAt(x, y, METATILE_ID(MauvilleGym, GreenBeamH1_Off)); + case METATILE_MauvilleGym_GreenBeamH1_On: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_GreenBeamH1_Off); break; - case METATILE_ID(MauvilleGym, GreenBeamH2_On): - MapGridSetMetatileIdAt(x, y, METATILE_ID(MauvilleGym, GreenBeamH2_Off)); + case METATILE_MauvilleGym_GreenBeamH2_On: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_GreenBeamH2_Off); break; - case METATILE_ID(MauvilleGym, GreenBeamH3_On): - MapGridSetMetatileIdAt(x, y, METATILE_ID(MauvilleGym, GreenBeamH3_Off)); + case METATILE_MauvilleGym_GreenBeamH3_On: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_GreenBeamH3_Off); break; - case METATILE_ID(MauvilleGym, GreenBeamH4_On): - MapGridSetMetatileIdAt(x, y, METATILE_ID(MauvilleGym, GreenBeamH4_Off)); + case METATILE_MauvilleGym_GreenBeamH4_On: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_GreenBeamH4_Off); break; - case METATILE_ID(MauvilleGym, RedBeamH1_On): - MapGridSetMetatileIdAt(x, y, METATILE_ID(MauvilleGym, RedBeamH1_Off)); + case METATILE_MauvilleGym_RedBeamH1_On: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_RedBeamH1_Off); break; - case METATILE_ID(MauvilleGym, RedBeamH2_On): - MapGridSetMetatileIdAt(x, y, METATILE_ID(MauvilleGym, RedBeamH2_Off)); + case METATILE_MauvilleGym_RedBeamH2_On: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_RedBeamH2_Off); break; - case METATILE_ID(MauvilleGym, RedBeamH3_On): - MapGridSetMetatileIdAt(x, y, METATILE_ID(MauvilleGym, RedBeamH3_Off)); + case METATILE_MauvilleGym_RedBeamH3_On: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_RedBeamH3_Off); break; - case METATILE_ID(MauvilleGym, RedBeamH4_On): - MapGridSetMetatileIdAt(x, y, METATILE_ID(MauvilleGym, RedBeamH4_Off)); + case METATILE_MauvilleGym_RedBeamH4_On: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_RedBeamH4_Off); break; - case METATILE_ID(MauvilleGym, GreenBeamV1_On): - MapGridSetMetatileIdAt(x, y, METATILE_ID(MauvilleGym, PoleBottom_On) | METATILE_COLLISION_MASK); + case METATILE_MauvilleGym_GreenBeamV1_On: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_PoleBottom_On | METATILE_COLLISION_MASK); break; - case METATILE_ID(MauvilleGym, RedBeamV1_On): - MapGridSetMetatileIdAt(x, y, METATILE_ID(MauvilleGym, PoleBottom_Off) | METATILE_COLLISION_MASK); + case METATILE_MauvilleGym_RedBeamV1_On: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_PoleBottom_Off | METATILE_COLLISION_MASK); break; - case METATILE_ID(MauvilleGym, GreenBeamV2_On): - case METATILE_ID(MauvilleGym, RedBeamV2_On): - MapGridSetMetatileIdAt(x, y, METATILE_ID(MauvilleGym, FloorTile)); + case METATILE_MauvilleGym_GreenBeamV2_On: + case METATILE_MauvilleGym_RedBeamV2_On: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_FloorTile); break; - case METATILE_ID(MauvilleGym, PoleTop_On): - MapGridSetMetatileIdAt(x, y, METATILE_ID(MauvilleGym, PoleTop_Off)); + case METATILE_MauvilleGym_PoleTop_On: + MapGridSetMetatileIdAt(x, y, METATILE_MauvilleGym_PoleTop_Off); break; } } @@ -817,11 +817,11 @@ void MauvilleGymDeactivatePuzzle(void) static const bool8 sSlidingDoorNextFrameDelay[] = {0, 1, 1, 1, 1}; static const u16 sPetalburgGymSlidingDoorMetatiles[] = { - METATILE_ID(PetalburgGym, SlidingDoor_Frame0), - METATILE_ID(PetalburgGym, SlidingDoor_Frame1), - METATILE_ID(PetalburgGym, SlidingDoor_Frame2), - METATILE_ID(PetalburgGym, SlidingDoor_Frame3), - METATILE_ID(PetalburgGym, SlidingDoor_Frame4), + METATILE_PetalburgGym_SlidingDoor_Frame0, + METATILE_PetalburgGym_SlidingDoor_Frame1, + METATILE_PetalburgGym_SlidingDoor_Frame2, + METATILE_PetalburgGym_SlidingDoor_Frame3, + METATILE_PetalburgGym_SlidingDoor_Frame4, }; void PetalburgGymSlideOpenRoomDoors(void) @@ -1096,30 +1096,30 @@ static void PCTurnOnEffect_1(s16 isPcTurnedOn, s8 dx, s8 dy) { if (gSpecialVar_0x8004 == PC_LOCATION_OTHER) { - tileId = METATILE_ID(Building, PC_Off); + tileId = METATILE_Building_PC_Off; } else if (gSpecialVar_0x8004 == PC_LOCATION_BRENDANS_HOUSE) { - tileId = METATILE_ID(BrendansMaysHouse, BrendanPC_Off); + tileId = METATILE_BrendansMaysHouse_BrendanPC_Off; } else if (gSpecialVar_0x8004 == PC_LOCATION_MAYS_HOUSE) { - tileId = METATILE_ID(BrendansMaysHouse, MayPC_Off); + tileId = METATILE_BrendansMaysHouse_MayPC_Off; } } else { if (gSpecialVar_0x8004 == PC_LOCATION_OTHER) { - tileId = METATILE_ID(Building, PC_On); + tileId = METATILE_Building_PC_On; } else if (gSpecialVar_0x8004 == PC_LOCATION_BRENDANS_HOUSE) { - tileId = METATILE_ID(BrendansMaysHouse, BrendanPC_On); + tileId = METATILE_BrendansMaysHouse_BrendanPC_On; } else if (gSpecialVar_0x8004 == PC_LOCATION_MAYS_HOUSE) { - tileId = METATILE_ID(BrendansMaysHouse, MayPC_On); + tileId = METATILE_BrendansMaysHouse_MayPC_On; } } MapGridSetMetatileIdAt(gSaveBlock1Ptr->pos.x + dx + 7, gSaveBlock1Ptr->pos.y + dy + 7, tileId | METATILE_COLLISION_MASK); @@ -1153,15 +1153,15 @@ static void PCTurnOffEffect(void) } if (gSpecialVar_0x8004 == 0) { - tileId = METATILE_ID(Building, PC_Off); + tileId = METATILE_Building_PC_Off; } else if (gSpecialVar_0x8004 == 1) { - tileId = METATILE_ID(BrendansMaysHouse, BrendanPC_Off); + tileId = METATILE_BrendansMaysHouse_BrendanPC_Off; } else if (gSpecialVar_0x8004 == 2) { - tileId = METATILE_ID(BrendansMaysHouse, MayPC_Off); + tileId = METATILE_BrendansMaysHouse_MayPC_Off; } MapGridSetMetatileIdAt(gSaveBlock1Ptr->pos.x + dx + 7, gSaveBlock1Ptr->pos.y + dy + 7, tileId | METATILE_COLLISION_MASK); DrawWholeMapView(); @@ -1196,13 +1196,13 @@ static void LotteryCornerComputerEffect(struct Task *task) task->data[3] = 0; if (task->data[4] != 0) { - MapGridSetMetatileIdAt(18, 8, METATILE_ID(Shop, Laptop1_Normal) | METATILE_COLLISION_MASK); - MapGridSetMetatileIdAt(18, 9, METATILE_ID(Shop, Laptop2_Normal) | METATILE_COLLISION_MASK); + MapGridSetMetatileIdAt(18, 8, METATILE_Shop_Laptop1_Normal | METATILE_COLLISION_MASK); + MapGridSetMetatileIdAt(18, 9, METATILE_Shop_Laptop2_Normal | METATILE_COLLISION_MASK); } else { - MapGridSetMetatileIdAt(18, 8, METATILE_ID(Shop, Laptop1_Flash) | METATILE_COLLISION_MASK); - MapGridSetMetatileIdAt(18, 9, METATILE_ID(Shop, Laptop2_Flash) | METATILE_COLLISION_MASK); + MapGridSetMetatileIdAt(18, 8, METATILE_Shop_Laptop1_Flash | METATILE_COLLISION_MASK); + MapGridSetMetatileIdAt(18, 9, METATILE_Shop_Laptop2_Flash | METATILE_COLLISION_MASK); } DrawWholeMapView(); task->data[4] ^= 1; @@ -1216,8 +1216,8 @@ static void LotteryCornerComputerEffect(struct Task *task) void EndLotteryCornerComputerEffect(void) { - MapGridSetMetatileIdAt(18, 8, METATILE_ID(Shop, Laptop1_Normal) | METATILE_COLLISION_MASK); - MapGridSetMetatileIdAt(18, 9, METATILE_ID(Shop, Laptop2_Normal) | METATILE_COLLISION_MASK); + MapGridSetMetatileIdAt(18, 8, METATILE_Shop_Laptop1_Normal | METATILE_COLLISION_MASK); + MapGridSetMetatileIdAt(18, 9, METATILE_Shop_Laptop2_Normal | METATILE_COLLISION_MASK); DrawWholeMapView(); } @@ -1751,38 +1751,38 @@ const u8 *const gDeptStoreFloorNames[] = static const u16 sElevatorWindowTiles_Ascending[][3] = { { - METATILE_ID(BattleFrontier, Elevator_Top0), - METATILE_ID(BattleFrontier, Elevator_Top1), - METATILE_ID(BattleFrontier, Elevator_Top2) + METATILE_BattleFrontier_Elevator_Top0, + METATILE_BattleFrontier_Elevator_Top1, + METATILE_BattleFrontier_Elevator_Top2 }, { - METATILE_ID(BattleFrontier, Elevator_Mid0), - METATILE_ID(BattleFrontier, Elevator_Mid1), - METATILE_ID(BattleFrontier, Elevator_Mid2) + METATILE_BattleFrontier_Elevator_Mid0, + METATILE_BattleFrontier_Elevator_Mid1, + METATILE_BattleFrontier_Elevator_Mid2 }, { - METATILE_ID(BattleFrontier, Elevator_Bottom0), - METATILE_ID(BattleFrontier, Elevator_Bottom1), - METATILE_ID(BattleFrontier, Elevator_Bottom2) + METATILE_BattleFrontier_Elevator_Bottom0, + METATILE_BattleFrontier_Elevator_Bottom1, + METATILE_BattleFrontier_Elevator_Bottom2 }, }; static const u16 sElevatorWindowTiles_Descending[][3] = { { - METATILE_ID(BattleFrontier, Elevator_Top0), - METATILE_ID(BattleFrontier, Elevator_Top2), - METATILE_ID(BattleFrontier, Elevator_Top1) + METATILE_BattleFrontier_Elevator_Top0, + METATILE_BattleFrontier_Elevator_Top2, + METATILE_BattleFrontier_Elevator_Top1 }, { - METATILE_ID(BattleFrontier, Elevator_Mid0), - METATILE_ID(BattleFrontier, Elevator_Mid2), - METATILE_ID(BattleFrontier, Elevator_Mid1) + METATILE_BattleFrontier_Elevator_Mid0, + METATILE_BattleFrontier_Elevator_Mid2, + METATILE_BattleFrontier_Elevator_Mid1 }, { - METATILE_ID(BattleFrontier, Elevator_Bottom0), - METATILE_ID(BattleFrontier, Elevator_Bottom2), - METATILE_ID(BattleFrontier, Elevator_Bottom1) + METATILE_BattleFrontier_Elevator_Bottom0, + METATILE_BattleFrontier_Elevator_Bottom2, + METATILE_BattleFrontier_Elevator_Bottom1 }, }; diff --git a/src/field_tasks.c b/src/field_tasks.c index 21b2732c34..de2884e49f 100644 --- a/src/field_tasks.c +++ b/src/field_tasks.c @@ -52,26 +52,26 @@ static const TaskFunc sPerStepCallbacks[] = // they are in pairs but declared as 1D array static const struct PacifidlogMetatileOffsets sHalfSubmergedBridgeMetatileOffsets[] = { - { 0, 0, METATILE_ID(Pacifidlog, HalfSubmergedLogs_Vertical0)}, {0, 1, METATILE_ID(Pacifidlog, HalfSubmergedLogs_Vertical1)}, - { 0, -1, METATILE_ID(Pacifidlog, HalfSubmergedLogs_Vertical0)}, {0, 0, METATILE_ID(Pacifidlog, HalfSubmergedLogs_Vertical1)}, - { 0, 0, METATILE_ID(Pacifidlog, HalfSubmergedLogs_Horizontal0)}, {1, 0, METATILE_ID(Pacifidlog, HalfSubmergedLogs_Horizontal1)}, - {-1, 0, METATILE_ID(Pacifidlog, HalfSubmergedLogs_Horizontal0)}, {0, 0, METATILE_ID(Pacifidlog, HalfSubmergedLogs_Horizontal1)} + { 0, 0, METATILE_Pacifidlog_HalfSubmergedLogs_Vertical0}, {0, 1, METATILE_Pacifidlog_HalfSubmergedLogs_Vertical1}, + { 0, -1, METATILE_Pacifidlog_HalfSubmergedLogs_Vertical0}, {0, 0, METATILE_Pacifidlog_HalfSubmergedLogs_Vertical1}, + { 0, 0, METATILE_Pacifidlog_HalfSubmergedLogs_Horizontal0}, {1, 0, METATILE_Pacifidlog_HalfSubmergedLogs_Horizontal1}, + {-1, 0, METATILE_Pacifidlog_HalfSubmergedLogs_Horizontal0}, {0, 0, METATILE_Pacifidlog_HalfSubmergedLogs_Horizontal1} }; static const struct PacifidlogMetatileOffsets sFullySubmergedBridgeMetatileOffsets[] = { - { 0, 0, METATILE_ID(Pacifidlog, SubmergedLogs_Vertical0)}, {0, 1, METATILE_ID(Pacifidlog, SubmergedLogs_Vertical1)}, - { 0, -1, METATILE_ID(Pacifidlog, SubmergedLogs_Vertical0)}, {0, 0, METATILE_ID(Pacifidlog, SubmergedLogs_Vertical1)}, - { 0, 0, METATILE_ID(Pacifidlog, SubmergedLogs_Horizontal0)}, {1, 0, METATILE_ID(Pacifidlog, SubmergedLogs_Horizontal1)}, - {-1, 0, METATILE_ID(Pacifidlog, SubmergedLogs_Horizontal0)}, {0, 0, METATILE_ID(Pacifidlog, SubmergedLogs_Horizontal1)} + { 0, 0, METATILE_Pacifidlog_SubmergedLogs_Vertical0}, {0, 1, METATILE_Pacifidlog_SubmergedLogs_Vertical1}, + { 0, -1, METATILE_Pacifidlog_SubmergedLogs_Vertical0}, {0, 0, METATILE_Pacifidlog_SubmergedLogs_Vertical1}, + { 0, 0, METATILE_Pacifidlog_SubmergedLogs_Horizontal0}, {1, 0, METATILE_Pacifidlog_SubmergedLogs_Horizontal1}, + {-1, 0, METATILE_Pacifidlog_SubmergedLogs_Horizontal0}, {0, 0, METATILE_Pacifidlog_SubmergedLogs_Horizontal1} }; static const struct PacifidlogMetatileOffsets sFloatingBridgeMetatileOffsets[] = { - { 0, 0, METATILE_ID(Pacifidlog, FloatingLogs_Vertical0)}, {0, 1, METATILE_ID(Pacifidlog, FloatingLogs_Vertical1)}, - { 0, -1, METATILE_ID(Pacifidlog, FloatingLogs_Vertical0)}, {0, 0, METATILE_ID(Pacifidlog, FloatingLogs_Vertical1)}, - { 0, 0, METATILE_ID(Pacifidlog, FloatingLogs_Horizontal0)}, {1, 0, METATILE_ID(Pacifidlog, FloatingLogs_Horizontal1)}, - {-1, 0, METATILE_ID(Pacifidlog, FloatingLogs_Horizontal0)}, {0, 0, METATILE_ID(Pacifidlog, FloatingLogs_Horizontal1)} + { 0, 0, METATILE_Pacifidlog_FloatingLogs_Vertical0}, {0, 1, METATILE_Pacifidlog_FloatingLogs_Vertical1}, + { 0, -1, METATILE_Pacifidlog_FloatingLogs_Vertical0}, {0, 0, METATILE_Pacifidlog_FloatingLogs_Vertical1}, + { 0, 0, METATILE_Pacifidlog_FloatingLogs_Horizontal0}, {1, 0, METATILE_Pacifidlog_FloatingLogs_Horizontal1}, + {-1, 0, METATILE_Pacifidlog_FloatingLogs_Horizontal0}, {0, 0, METATILE_Pacifidlog_FloatingLogs_Horizontal1} }; // Each element corresponds to a y coordinate row in the sootopolis gym 1F map. @@ -106,10 +106,10 @@ static const u16 sSootopolisGymIceRowVars[] = }; static const u16 sMuddySlopeMetatiles[] = { - METATILE_ID(General, MuddySlope_Frame0), - METATILE_ID(General, MuddySlope_Frame3), - METATILE_ID(General, MuddySlope_Frame2), - METATILE_ID(General, MuddySlope_Frame1) + METATILE_General_MuddySlope_Frame0, + METATILE_General_MuddySlope_Frame3, + METATILE_General_MuddySlope_Frame2, + METATILE_General_MuddySlope_Frame1 }; static void Task_RunPerStepCallback(u8 taskId) @@ -381,11 +381,11 @@ static void SetLoweredForetreeBridgeMetatile(s16 x, s16 y) { switch (MapGridGetMetatileIdAt(x, y)) { - case METATILE_ID(Fortree, BridgeOverGrass_Raised): - MapGridSetMetatileIdAt(x, y, METATILE_ID(Fortree, BridgeOverGrass_Lowered)); + case METATILE_Fortree_BridgeOverGrass_Raised: + MapGridSetMetatileIdAt(x, y, METATILE_Fortree_BridgeOverGrass_Lowered); break; - case METATILE_ID(Fortree, BridgeOverTrees_Raised): - MapGridSetMetatileIdAt(x, y, METATILE_ID(Fortree, BridgeOverTrees_Lowered)); + case METATILE_Fortree_BridgeOverTrees_Raised: + MapGridSetMetatileIdAt(x, y, METATILE_Fortree_BridgeOverTrees_Lowered); break; } } @@ -398,11 +398,11 @@ static void SetNormalFortreeBridgeMetatile(s16 x, s16 y) { switch (MapGridGetMetatileIdAt(x, y)) { - case METATILE_ID(Fortree, BridgeOverGrass_Lowered): - MapGridSetMetatileIdAt(x, y, METATILE_ID(Fortree, BridgeOverGrass_Raised)); + case METATILE_Fortree_BridgeOverGrass_Lowered: + MapGridSetMetatileIdAt(x, y, METATILE_Fortree_BridgeOverGrass_Raised); break; - case METATILE_ID(Fortree, BridgeOverTrees_Lowered): - MapGridSetMetatileIdAt(x, y, METATILE_ID(Fortree, BridgeOverTrees_Raised)); + case METATILE_Fortree_BridgeOverTrees_Lowered: + MapGridSetMetatileIdAt(x, y, METATILE_Fortree_BridgeOverTrees_Raised); break; } } @@ -530,7 +530,7 @@ void SetSootopolisGymCrackedIceMetatiles(void) for (y = 0; y < height; y++) { if (IsIcePuzzleCoordVisited(x, y) == TRUE) - MapGridSetMetatileIdAt(x + 7, y + 7, METATILE_ID(SootopolisGym, Ice_Cracked)); + MapGridSetMetatileIdAt(x + 7, y + 7, METATILE_SootopolisGym_Ice_Cracked); } } } @@ -585,7 +585,7 @@ static void SootopolisGymIcePerStepCallback(u8 taskId) x = data[4]; y = data[5]; PlaySE(SE_RU_BARI); - MapGridSetMetatileIdAt(x, y, METATILE_ID(SootopolisGym, Ice_Cracked)); + MapGridSetMetatileIdAt(x, y, METATILE_SootopolisGym_Ice_Cracked); CurrentMapDrawMetatileAt(x, y); MarkIcePuzzleCoordVisited(x - 7, y - 7); data[1] = 1; @@ -601,7 +601,7 @@ static void SootopolisGymIcePerStepCallback(u8 taskId) x = data[4]; y = data[5]; PlaySE(SE_RU_GASYAN); - MapGridSetMetatileIdAt(x, y, METATILE_ID(SootopolisGym, Ice_Broken)); + MapGridSetMetatileIdAt(x, y, METATILE_SootopolisGym_Ice_Broken); CurrentMapDrawMetatileAt(x, y); data[1] = 1; } @@ -621,10 +621,10 @@ static void AshGrassPerStepCallback(u8 taskId) data[2] = y; if (MetatileBehavior_IsAshGrass(MapGridGetMetatileBehaviorAt(x, y))) { - if (MapGridGetMetatileIdAt(x, y) == METATILE_ID(Fallarbor, AshGrass)) - StartAshFieldEffect(x, y, METATILE_ID(Fallarbor, NormalGrass), 4); + if (MapGridGetMetatileIdAt(x, y) == METATILE_Fallarbor_AshGrass) + StartAshFieldEffect(x, y, METATILE_Fallarbor_NormalGrass, 4); else - StartAshFieldEffect(x, y, METATILE_ID(Lavaridge, NormalGrass), 4); + StartAshFieldEffect(x, y, METATILE_Lavaridge_NormalGrass, 4); if (CheckBagHasItem(ITEM_SOOT_SACK, 1)) { @@ -693,7 +693,7 @@ static void SetMuddySlopeMetatile(s16 *data, s16 x, s16 y) MapGridSetMetatileIdAt(x, y, tile); CurrentMapDrawMetatileAt(x, y); - MapGridSetMetatileIdAt(x, y, METATILE_ID(General, MuddySlope_Frame0)); + MapGridSetMetatileIdAt(x, y, METATILE_General_MuddySlope_Frame0); } static void Task_MuddySlope(u8 taskId) diff --git a/src/fldeff_escalator.c b/src/fldeff_escalator.c index d1f262b5c7..13edda57d2 100644 --- a/src/fldeff_escalator.c +++ b/src/fldeff_escalator.c @@ -17,45 +17,45 @@ static void Task_DrawTeleporterCable(u8 taskId); #define LAST_ESCALATOR_STAGE (ESCALATOR_STAGES - 1) static const u16 sElevatorMetatiles_1F_0[ESCALATOR_STAGES] = { - METATILE_ID(PokemonCenter, Elevator1F_Tile0_Frame2), - METATILE_ID(PokemonCenter, Elevator1F_Tile0_Frame1), - METATILE_ID(PokemonCenter, Elevator1F_Tile0_Frame0) + METATILE_PokemonCenter_Elevator1F_Tile0_Frame2, + METATILE_PokemonCenter_Elevator1F_Tile0_Frame1, + METATILE_PokemonCenter_Elevator1F_Tile0_Frame0 }; static const u16 sElevatorMetatiles_1F_1[ESCALATOR_STAGES] = { - METATILE_ID(PokemonCenter, Elevator1F_Tile1_Frame2), - METATILE_ID(PokemonCenter, Elevator1F_Tile1_Frame1), - METATILE_ID(PokemonCenter, Elevator1F_Tile1_Frame0) + METATILE_PokemonCenter_Elevator1F_Tile1_Frame2, + METATILE_PokemonCenter_Elevator1F_Tile1_Frame1, + METATILE_PokemonCenter_Elevator1F_Tile1_Frame0 }; static const u16 sElevatorMetatiles_1F_2[ESCALATOR_STAGES] = { - METATILE_ID(PokemonCenter, Elevator1F_Tile2_Frame2), - METATILE_ID(PokemonCenter, Elevator1F_Tile2_Frame1), - METATILE_ID(PokemonCenter, Elevator1F_Tile2_Frame0) + METATILE_PokemonCenter_Elevator1F_Tile2_Frame2, + METATILE_PokemonCenter_Elevator1F_Tile2_Frame1, + METATILE_PokemonCenter_Elevator1F_Tile2_Frame0 }; static const u16 sElevatorMetatiles_1F_3[ESCALATOR_STAGES] = { - METATILE_ID(PokemonCenter, Elevator1F_Tile3_Frame2), - METATILE_ID(PokemonCenter, Elevator1F_Tile3_Frame1), - METATILE_ID(PokemonCenter, Elevator1F_Tile3_Frame0) + METATILE_PokemonCenter_Elevator1F_Tile3_Frame2, + METATILE_PokemonCenter_Elevator1F_Tile3_Frame1, + METATILE_PokemonCenter_Elevator1F_Tile3_Frame0 }; static const u16 sElevatorMetatiles_2F_0[ESCALATOR_STAGES] = { - METATILE_ID(PokemonCenter, Elevator2F_Tile0_Frame0), - METATILE_ID(PokemonCenter, Elevator2F_Tile0_Frame1), - METATILE_ID(PokemonCenter, Elevator2F_Tile0_Frame2) + METATILE_PokemonCenter_Elevator2F_Tile0_Frame0, + METATILE_PokemonCenter_Elevator2F_Tile0_Frame1, + METATILE_PokemonCenter_Elevator2F_Tile0_Frame2 }; static const u16 sElevatorMetatiles_2F_1[ESCALATOR_STAGES] = { - METATILE_ID(PokemonCenter, Elevator2F_Tile1_Frame0), - METATILE_ID(PokemonCenter, Elevator2F_Tile1_Frame1), - METATILE_ID(PokemonCenter, Elevator2F_Tile1_Frame2) + METATILE_PokemonCenter_Elevator2F_Tile1_Frame0, + METATILE_PokemonCenter_Elevator2F_Tile1_Frame1, + METATILE_PokemonCenter_Elevator2F_Tile1_Frame2 }; static const u16 sElevatorMetatiles_2F_2[ESCALATOR_STAGES] = { - METATILE_ID(PokemonCenter, Elevator2F_Tile2_Frame0), - METATILE_ID(PokemonCenter, Elevator2F_Tile2_Frame1), - METATILE_ID(PokemonCenter, Elevator2F_Tile2_Frame2) + METATILE_PokemonCenter_Elevator2F_Tile2_Frame0, + METATILE_PokemonCenter_Elevator2F_Tile2_Frame1, + METATILE_PokemonCenter_Elevator2F_Tile2_Frame2 }; #define tState data[0] diff --git a/src/mirage_tower.c b/src/mirage_tower.c index 2a6d6d6c4d..f61f7b9889 100644 --- a/src/mirage_tower.c +++ b/src/mirage_tower.c @@ -110,24 +110,24 @@ const struct SpriteSheet gMirageTowerCeilingCrumbleSpriteSheets[] = static const struct MetatileCoords sInvisibleMirageTowerMetatiles[] = { - {18, 53, METATILE_ID(Mauville, DeepSand_Center)}, - {19, 53, METATILE_ID(Mauville, DeepSand_Center)}, - {20, 53, METATILE_ID(Mauville, DeepSand_Center)}, - {18, 54, METATILE_ID(Mauville, DeepSand_Center)}, - {19, 54, METATILE_ID(Mauville, DeepSand_Center)}, - {20, 54, METATILE_ID(Mauville, DeepSand_Center)}, - {18, 55, METATILE_ID(Mauville, DeepSand_Center)}, - {19, 55, METATILE_ID(Mauville, DeepSand_Center)}, - {20, 55, METATILE_ID(Mauville, DeepSand_Center)}, - {18, 56, METATILE_ID(Mauville, DeepSand_Center)}, - {19, 56, METATILE_ID(Mauville, DeepSand_Center)}, - {20, 56, METATILE_ID(Mauville, DeepSand_Center)}, - {18, 57, METATILE_ID(Mauville, DeepSand_BottomMid)}, - {19, 57, METATILE_ID(Mauville, DeepSand_BottomMid)}, - {20, 57, METATILE_ID(Mauville, DeepSand_BottomMid)}, - {18, 58, METATILE_ID(General, SandPit_Center)}, - {19, 58, METATILE_ID(General, SandPit_Center)}, - {20, 58, METATILE_ID(General, SandPit_Center)}, + {18, 53, METATILE_Mauville_DeepSand_Center}, + {19, 53, METATILE_Mauville_DeepSand_Center}, + {20, 53, METATILE_Mauville_DeepSand_Center}, + {18, 54, METATILE_Mauville_DeepSand_Center}, + {19, 54, METATILE_Mauville_DeepSand_Center}, + {20, 54, METATILE_Mauville_DeepSand_Center}, + {18, 55, METATILE_Mauville_DeepSand_Center}, + {19, 55, METATILE_Mauville_DeepSand_Center}, + {20, 55, METATILE_Mauville_DeepSand_Center}, + {18, 56, METATILE_Mauville_DeepSand_Center}, + {19, 56, METATILE_Mauville_DeepSand_Center}, + {20, 56, METATILE_Mauville_DeepSand_Center}, + {18, 57, METATILE_Mauville_DeepSand_BottomMid}, + {19, 57, METATILE_Mauville_DeepSand_BottomMid}, + {20, 57, METATILE_Mauville_DeepSand_BottomMid}, + {18, 58, METATILE_General_SandPit_Center}, + {19, 58, METATILE_General_SandPit_Center}, + {20, 58, METATILE_General_SandPit_Center}, }; static const union AnimCmd gSpriteAnim_8617DEC[] = From 1ce929157f6e6825b54ce39d73a41374534998c6 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Thu, 2 Jul 2020 04:59:52 -0400 Subject: [PATCH 007/101] Clean up field effect doc --- data/field_effect_scripts.s | 74 +++++++------- data/scripts/field_move_scripts.inc | 11 +- data/scripts/flash.inc | 2 +- .../palettes/{02.pal => ash.pal} | 0 .../palettes/{06.pal => cut_grass.pal} | 0 .../palettes/{00.pal => general_0.pal} | 0 .../palettes/{01.pal => general_1.pal} | 0 .../palettes/{05.pal => hof_monitor.pal} | 0 .../palettes/{10.pal => pokeball.pal} | 0 .../palettes/{04.pal => pokeball_glow.pal} | 0 .../{07.pal => secret_power_cave.pal} | 0 .../{08.pal => secret_power_plant.pal} | 0 .../palettes/{03.pal => small_sparkle.pal} | 0 graphics/field_effects/pics/sand_pillar.png | Bin 673 -> 0 bytes .../pics/{unknown_19.png => unused_sand.png} | Bin include/battle_transition.h | 2 +- include/constants/field_effects.h | 34 +++---- include/event_object_movement.h | 2 +- include/event_scripts.h | 7 +- include/fldeff.h | 13 +-- spritesheet_rules.mk | 5 +- src/battle_transition.c | 26 ++--- .../field_effect_object_template_pointers.h | 8 +- src/data/field_effects/field_effect_objects.h | 95 +++++++++--------- .../object_events/object_event_graphics.h | 14 +-- src/event_object_movement.c | 2 +- src/faraway_island.c | 6 +- src/field_effect.c | 48 ++++----- src/field_effect_helpers.c | 18 ++-- src/field_screen_effect.c | 2 - src/field_special_scene.c | 24 ++--- src/fldeff_cut.c | 10 +- src/fldeff_dig.c | 14 +-- src/fldeff_flash.c | 2 +- src/fldeff_misc.c | 31 +++--- src/fldeff_rocksmash.c | 2 +- src/fldeff_strength.c | 19 ++-- 37 files changed, 226 insertions(+), 245 deletions(-) rename graphics/field_effects/palettes/{02.pal => ash.pal} (100%) rename graphics/field_effects/palettes/{06.pal => cut_grass.pal} (100%) rename graphics/field_effects/palettes/{00.pal => general_0.pal} (100%) rename graphics/field_effects/palettes/{01.pal => general_1.pal} (100%) rename graphics/field_effects/palettes/{05.pal => hof_monitor.pal} (100%) rename graphics/field_effects/palettes/{10.pal => pokeball.pal} (100%) rename graphics/field_effects/palettes/{04.pal => pokeball_glow.pal} (100%) rename graphics/field_effects/palettes/{07.pal => secret_power_cave.pal} (100%) rename graphics/field_effects/palettes/{08.pal => secret_power_plant.pal} (100%) rename graphics/field_effects/palettes/{03.pal => small_sparkle.pal} (100%) delete mode 100644 graphics/field_effects/pics/sand_pillar.png rename graphics/field_effects/pics/{unknown_19.png => unused_sand.png} (100%) diff --git a/data/field_effect_scripts.s b/data/field_effect_scripts.s index 23b1841224..5c637615df 100644 --- a/data/field_effect_scripts.s +++ b/data/field_effect_scripts.s @@ -24,9 +24,9 @@ gFieldEffectScriptPointers:: @ 82DB9D4 .4byte gFieldEffectScript_JumpSmallSplash @ FLDEFF_JUMP_SMALL_SPLASH .4byte gFieldEffectScript_LongGrass @ FLDEFF_LONG_GRASS .4byte gFieldEffectScript_JumpLongGrass @ FLDEFF_JUMP_LONG_GRASS - .4byte gFieldEffectScript_Unknown19 @ FLDEFF_UNKNOWN_19 + .4byte gFieldEffectScript_UnusedGrass @ FLDEFF_UNUSED_GRASS .4byte gFieldEffectScript_UnusedGrass2 @ FLDEFF_UNUSED_GRASS_2 - .4byte gFieldEffectScript_Unknown21 @ FLDEFF_UNKNOWN_21 + .4byte gFieldEffectScript_UnusedSand @ FLDEFF_UNUSED_SAND .4byte gFieldEffectScript_WaterSurfacing @ FLDEFF_WATER_SURFACING .4byte gFieldEffectScript_BerryTreeGrowthSparkle @ FLDEFF_BERRY_TREE_GROWTH_SPARKLE .4byte gFieldEffectScript_DeepSandFootprints @ FLDEFF_DEEP_SAND_FOOTPRINTS @@ -90,11 +90,11 @@ gFieldEffectScript_Shadow:: @ 82DBAF2 field_eff_end gFieldEffectScript_TallGrass:: @ 82DBAF8 - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo1, FldEff_TallGrass + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_TallGrass field_eff_end gFieldEffectScript_Ripple:: @ 82DBB02 - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo1, FldEff_Ripple + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_Ripple field_eff_end gFieldEffectScript_FieldMoveShowMon:: @ 82DBB0C @@ -102,7 +102,7 @@ gFieldEffectScript_FieldMoveShowMon:: @ 82DBB0C field_eff_end gFieldEffectScript_Ash:: @ 82DBB12 - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo1, FldEff_Ash + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_Ash field_eff_end gFieldEffectScript_SurfBlob:: @ 82DBB1C @@ -114,7 +114,7 @@ gFieldEffectScript_UseSurf:: @ 82DBB22 field_eff_end gFieldEffectScript_GroundImpactDust:: @ 82DBB28 - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, FldEff_Dust + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_Dust field_eff_end gFieldEffectScript_UseSecretPowerCave:: @ 82DBB32 @@ -122,47 +122,47 @@ gFieldEffectScript_UseSecretPowerCave:: @ 82DBB32 field_eff_end gFieldEffectScript_JumpTallGrass:: @ 82DBB38 - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo1, FldEff_JumpTallGrass + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_JumpTallGrass field_eff_end gFieldEffectScript_SandFootprints:: @ 82DBB42 - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, FldEff_SandFootprints + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_SandFootprints field_eff_end gFieldEffectScript_JumpBigSplash:: @ 82DBB4C - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, FldEff_JumpBigSplash + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_JumpBigSplash field_eff_end gFieldEffectScript_Splash:: @ 82DBB56 - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, FldEff_Splash + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_Splash field_eff_end gFieldEffectScript_JumpSmallSplash:: @ 82DBB60 - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, FldEff_JumpSmallSplash + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_JumpSmallSplash field_eff_end gFieldEffectScript_LongGrass:: @ 82DBB6A - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo1, FldEff_LongGrass + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_LongGrass field_eff_end gFieldEffectScript_JumpLongGrass:: @ 82DBB74 - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo1, FldEff_JumpLongGrass + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_JumpLongGrass field_eff_end -gFieldEffectScript_Unknown19:: @ 82DBB7E - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo1, FldEff_Unknown19 +gFieldEffectScript_UnusedGrass:: @ 82DBB7E + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_UnusedGrass field_eff_end gFieldEffectScript_UnusedGrass2:: @ 82DBB88 - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo1, FldEff_UnusedGrass2 + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_UnusedGrass2 field_eff_end -gFieldEffectScript_Unknown21:: @ 82DBB92 - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, FldEff_Unknown21 +gFieldEffectScript_UnusedSand:: @ 82DBB92 + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_UnusedSand field_eff_end gFieldEffectScript_WaterSurfacing:: @ 82DBB9C - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, FldEff_WaterSurfacing + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_WaterSurfacing field_eff_end gFieldEffectScript_BerryTreeGrowthSparkle:: @ 82DBBA6 @@ -170,12 +170,12 @@ gFieldEffectScript_BerryTreeGrowthSparkle:: @ 82DBBA6 field_eff_end gFieldEffectScript_DeepSandFootprints:: @ 82DBBAC - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, FldEff_DeepSandFootprints + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_DeepSandFootprints field_eff_end gFieldEffectScript_PokeCenterHeal:: @ 82DBBB6 - field_eff_loadfadedpal gFieldEffectObjectPaletteInfo4 - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, FldEff_PokecenterHeal + field_eff_loadfadedpal gSpritePalette_PokeballGlow + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_PokecenterHeal field_eff_end gFieldEffectScript_UseSecretPowerTree:: @ 82DBBC5 @@ -211,11 +211,11 @@ gFieldEffectScript_QuestionMarkIcon:: @ 82DBBEF field_eff_end gFieldEffectScript_FeetInFlowingWater:: @ 82DBBF5 - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, FldEff_FeetInFlowingWater + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_FeetInFlowingWater field_eff_end gFieldEffectScript_BikeTireTracks:: @ 82DBBFF - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, FldEff_BikeTireTracks + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_BikeTireTracks field_eff_end gFieldEffectScript_SandDisguisePlaceholder:: @ 82DBC09 @@ -227,7 +227,7 @@ gFieldEffectScript_UseRockSmash:: @ 82DBC0F field_eff_end gFieldEffectScript_UseStrength:: @ 82DBC15 - field_eff_callnative sub_8145E2C + field_eff_callnative FldEff_UseStrength field_eff_end gFieldEffectScript_UseDig:: @ 82DBC1B @@ -235,15 +235,15 @@ gFieldEffectScript_UseDig:: @ 82DBC1B field_eff_end gFieldEffectScript_SandPile:: @ 82DBC21 - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, FldEff_SandPile + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_SandPile field_eff_end gFieldEffectScript_ShortGrass:: @ 82DBC2B - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo1, FldEff_ShortGrass + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_ShortGrass field_eff_end gFieldEffectScript_HotSpringsWater:: @ 82DBC35 - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo1, FldEff_HotSpringsWater + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_HotSpringsWater field_eff_end gFieldEffectScript_UseWaterfall:: @ 82DBC3F @@ -255,12 +255,12 @@ gFieldEffectScript_UseDive:: @ 82DBC45 field_eff_end gFieldEffectScript_Pokeball:: @ 82DBC4B - field_eff_loadpal gFieldEffectObjectPaletteInfo10 + field_eff_loadpal gSpritePalette_Pokeball field_eff_callnative FldEff_Pokeball field_eff_end gFieldEffectScript_HeartIcon:: @ 82DBC56 - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, FldEff_HeartIcon + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_HeartIcon field_eff_end gFieldEffectScript_Nop47:: @ 82DBC60 @@ -272,11 +272,11 @@ gFieldEffectScript_Nop48:: @ 82DBC66 field_eff_end gFieldEffectScript_AshPuff:: @ 82DBC6C - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo2, FldEff_AshPuff + field_eff_loadfadedpal_callnative gSpritePalette_Ash, FldEff_AshPuff field_eff_end gFieldEffectScript_AshLaunch:: @ 82DBC76 - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo2, FldEff_AshLaunch + field_eff_loadfadedpal_callnative gSpritePalette_Ash, FldEff_AshLaunch field_eff_end gFieldEffectScript_SweetScent:: @ 82DBC80 @@ -288,11 +288,11 @@ gFieldEffectScript_SandPillar:: @ 82DBC86 field_eff_end gFieldEffectScript_Bubbles:: @ 82DBC90 - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, FldEff_Bubbles + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_Bubbles field_eff_end gFieldEffectScript_Sparkle:: @ 82DBC9A - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo3, FldEff_Sparkle + field_eff_loadfadedpal_callnative gSpritePalette_SmallSparkle, FldEff_Sparkle field_eff_end gFieldEffectScript_ShowSecretPowerCave:: @ 82DBCA4 @@ -308,7 +308,7 @@ gFieldEffectScript_ShowSecretPowerShrub:: @ 82DBCB8 field_eff_end gFieldEffectScript_ShowCutGrass:: @ 82DBCC2 - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo6, FldEff_CutGrass + field_eff_loadfadedpal_callnative gSpritePalette_CutGrass, FldEff_CutGrass field_eff_end gFieldEffectScript_FieldMoveShowMonInit:: @ 82DBCCC @@ -324,8 +324,8 @@ gFieldEffectScript_SecretBaseBootPC:: @ 82DBCD8 field_eff_end gFieldEffectScript_HallOfFameRecord:: @ 82DBCDE - field_eff_loadfadedpal gFieldEffectObjectPaletteInfo4 - field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo5, FldEff_HallOfFameRecord + field_eff_loadfadedpal gSpritePalette_PokeballGlow + field_eff_loadfadedpal_callnative gSpritePalette_HofMonitor, FldEff_HallOfFameRecord field_eff_end gFieldEffectScript_UseTeleport:: @ 82DBCED diff --git a/data/scripts/field_move_scripts.inc b/data/scripts/field_move_scripts.inc index c5647daa42..2d689348b0 100644 --- a/data/scripts/field_move_scripts.inc +++ b/data/scripts/field_move_scripts.inc @@ -1,4 +1,4 @@ - +@ Interact with cuttable tree EventScript_CutTree:: @ 82906BB lockall goto_if_unset FLAG_BADGE01_GET, EventScript_CheckTreeCantCut @@ -18,7 +18,8 @@ EventScript_CutTree:: @ 82906BB goto EventScript_CutTreeDown end -EventScript_FldEffCut:: @ 8290705 +@ Use cut from party menu +EventScript_UseCut:: @ 8290705 lockall dofieldeffect FLDEFF_USE_CUT_ON_TREE waitstate @@ -58,6 +59,7 @@ Text_CantCut: @ 829077D .string "This tree looks like it can be\n" .string "CUT down!$" +@ Interact with smashable rock EventScript_RockSmash:: @ 82907A6 lockall goto_if_unset FLAG_BADGE03_GET, EventScript_CantSmashRock @@ -77,7 +79,8 @@ EventScript_RockSmash:: @ 82907A6 goto EventScript_SmashRock end -EventScript_RockSmashFromPartyMenu:: @ 82907F0 +@ Use rock smash from party menu +EventScript_UseRockSmash:: @ 82907F0 lockall dofieldeffect FLDEFF_USE_ROCK_SMASH waitstate @@ -141,7 +144,7 @@ EventScript_StrengthBoulder:: @ 82908BA goto EventScript_ActivateStrength end -EventScript_FldEffStrength:: @ 82908FD +EventScript_UseStrength:: @ 82908FD lockall dofieldeffect FLDEFF_USE_STRENGTH waitstate diff --git a/data/scripts/flash.inc b/data/scripts/flash.inc index 916b507194..bb4ae84eb5 100644 --- a/data/scripts/flash.inc +++ b/data/scripts/flash.inc @@ -1,4 +1,4 @@ -EventScript_FldEffFlash:: @ 82926F8 +EventScript_UseFlash:: @ 82926F8 animateflash 1 setflashradius 1 end diff --git a/graphics/field_effects/palettes/02.pal b/graphics/field_effects/palettes/ash.pal similarity index 100% rename from graphics/field_effects/palettes/02.pal rename to graphics/field_effects/palettes/ash.pal diff --git a/graphics/field_effects/palettes/06.pal b/graphics/field_effects/palettes/cut_grass.pal similarity index 100% rename from graphics/field_effects/palettes/06.pal rename to graphics/field_effects/palettes/cut_grass.pal diff --git a/graphics/field_effects/palettes/00.pal b/graphics/field_effects/palettes/general_0.pal similarity index 100% rename from graphics/field_effects/palettes/00.pal rename to graphics/field_effects/palettes/general_0.pal diff --git a/graphics/field_effects/palettes/01.pal b/graphics/field_effects/palettes/general_1.pal similarity index 100% rename from graphics/field_effects/palettes/01.pal rename to graphics/field_effects/palettes/general_1.pal diff --git a/graphics/field_effects/palettes/05.pal b/graphics/field_effects/palettes/hof_monitor.pal similarity index 100% rename from graphics/field_effects/palettes/05.pal rename to graphics/field_effects/palettes/hof_monitor.pal diff --git a/graphics/field_effects/palettes/10.pal b/graphics/field_effects/palettes/pokeball.pal similarity index 100% rename from graphics/field_effects/palettes/10.pal rename to graphics/field_effects/palettes/pokeball.pal diff --git a/graphics/field_effects/palettes/04.pal b/graphics/field_effects/palettes/pokeball_glow.pal similarity index 100% rename from graphics/field_effects/palettes/04.pal rename to graphics/field_effects/palettes/pokeball_glow.pal diff --git a/graphics/field_effects/palettes/07.pal b/graphics/field_effects/palettes/secret_power_cave.pal similarity index 100% rename from graphics/field_effects/palettes/07.pal rename to graphics/field_effects/palettes/secret_power_cave.pal diff --git a/graphics/field_effects/palettes/08.pal b/graphics/field_effects/palettes/secret_power_plant.pal similarity index 100% rename from graphics/field_effects/palettes/08.pal rename to graphics/field_effects/palettes/secret_power_plant.pal diff --git a/graphics/field_effects/palettes/03.pal b/graphics/field_effects/palettes/small_sparkle.pal similarity index 100% rename from graphics/field_effects/palettes/03.pal rename to graphics/field_effects/palettes/small_sparkle.pal diff --git a/graphics/field_effects/pics/sand_pillar.png b/graphics/field_effects/pics/sand_pillar.png deleted file mode 100644 index 1f56c00fcc0ad4b9f36fc9ce748127eba55972ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 673 zcmeAS@N?(olHy`uVBq!ia0vp^20*O9!VDyr{d%Skq*&4&eH|GXHuiJ>Nn`~{CVK?= zGB8xBF)%c=FfjZA3N^f7U?>G@e3ih!U^Rn*LA+qju0R{0glK?Ih-=W6pe;+1ii?Y{ z9_^me>=+aj^#A|=(qczXpaRAuZ+92A#Izl?Kn{C}r>`sf6E<04YeviG-hn_Nf#gKL zG7t^K3P217sRx*^0=4FPx;TbtoL@W9vFNq|kE>(%O>U;m+t-xDi&!y4Hvc|zW8eSK zUyhcKPx?$d+9o7t_kmOB@BN5#_RI9u{~CMznrDAf>Dzbp1z9!>XYU_STl6+yN#nj2 z`Lvj6T`9|UUh@8>cxDgNl5{)UleZ?sXLIzus`+B2dq#WQZd+rwX!-Bb{l`5gdsh5u)zV*^e{^>B>&i{Xepz4qwZnSd4fDEN=WYc|=A4?N z6JSuLTsv>Wu16vauWL1*-Q8j$U#2TG+vr+PSnJM~x4uVH_*-W<{uJBA7;)v;2klw) zjkXMTRvzOqyjFKu|8SW`4!^6g^Y6Oksh8L;B>#B$>MxuAj_cJs9z}R=ITU_=#WDS~ z9q!B4pJo0!%h=|sPr=0p&pzw6^xA*ilJN0gzu@}GMaMQ@w*MjL`?fsAbptR4R7+eV zN>UO_QmvAUQh^kMk%5tcu7R1Zk!6UXrIoRnm5H&ofq|8Q!Q#VG?kE~^^HVa@DsgML TG;h&wP#k-@`njxgN@xNAt-cCp diff --git a/graphics/field_effects/pics/unknown_19.png b/graphics/field_effects/pics/unused_sand.png similarity index 100% rename from graphics/field_effects/pics/unknown_19.png rename to graphics/field_effects/pics/unused_sand.png diff --git a/include/battle_transition.h b/include/battle_transition.h index 0f583b1019..b2e5efdc97 100644 --- a/include/battle_transition.h +++ b/include/battle_transition.h @@ -9,7 +9,7 @@ bool8 FldEff_Pokeball(void); void TransitionPhase1_Task_RunFuncs(u8 taskId); void GetBg0TilesDst(u16 **tilemap, u16 **tileset); -extern const struct SpritePalette gFieldEffectObjectPaletteInfo10; +extern const struct SpritePalette gSpritePalette_Pokeball; enum // TRANSITION_MUGSHOT { diff --git a/include/constants/field_effects.h b/include/constants/field_effects.h index 7032bc8268..dc1085f7ca 100644 --- a/include/constants/field_effects.h +++ b/include/constants/field_effects.h @@ -20,9 +20,9 @@ #define FLDEFF_JUMP_SMALL_SPLASH 16 #define FLDEFF_LONG_GRASS 17 #define FLDEFF_JUMP_LONG_GRASS 18 -#define FLDEFF_UNKNOWN_19 19 +#define FLDEFF_UNUSED_GRASS 19 #define FLDEFF_UNUSED_GRASS_2 20 -#define FLDEFF_UNKNOWN_21 21 +#define FLDEFF_UNUSED_SAND 21 #define FLDEFF_WATER_SURFACING 22 #define FLDEFF_BERRY_TREE_GROWTH_SPARKLE 23 #define FLDEFF_DEEP_SAND_FOOTPRINTS 24 @@ -86,9 +86,9 @@ #define FLDEFFOBJ_JUMP_SMALL_SPLASH 14 #define FLDEFFOBJ_LONG_GRASS 15 #define FLDEFFOBJ_JUMP_LONG_GRASS 16 -#define FLDEFFOBJ_17 17 +#define FLDEFFOBJ_UNUSED_GRASS 17 #define FLDEFFOBJ_UNUSED_GRASS_2 18 -#define FLDEFFOBJ_19 19 +#define FLDEFFOBJ_UNUSED_SAND 19 #define FLDEFFOBJ_WATER_SURFACING 20 #define FLDEFFOBJ_REFLECTION_DISTORTION 21 #define FLDEFFOBJ_SPARKLE 22 @@ -107,19 +107,17 @@ #define FLDEFFOBJ_SMALL_SPARKLE 35 #define FLDEFFOBJ_RAYQUAZA 36 -#define FLDEFF_PAL_TAG_0 0x1000 -#define FLDEFF_PAL_TAG_3 0x1003 -#define FLDEFF_PAL_TAG_4 0x1004 -#define FLDEFF_PAL_TAG_5 0x1005 -#define FLDEFF_PAL_TAG_6 0x1006 -#define FLDEFF_PAL_TAG_7 0x1007 -#define FLDEFF_PAL_TAG_8 0x1008 -#define FLDEFF_PAL_TAG_9 0x1009 -#define FLDEFF_PAL_TAG_10 0x100A -#define FLDEFF_PAL_TAG_13 0x100D -#define FLDEFF_PAL_TAG_14 0x100E -#define FLDEFF_PAL_TAG_15 0x100F -#define FLDEFF_PAL_TAG_16 0x1010 -#define FLDEFF_PAL_TAG_17 0x1011 +#define FLDEFF_PAL_TAG_CUT_GRASS 0x1000 +#define FLDEFF_PAL_TAG_SECRET_POWER_TREE 0x1003 +#define FLDEFF_PAL_TAG_GENERAL_0 0x1004 +#define FLDEFF_PAL_TAG_GENERAL_1 0x1005 +#define FLDEFF_PAL_TAG_POKEBALL_GLOW 0x1007 +#define FLDEFF_PAL_TAG_SECRET_POWER_PLANT 0x1008 +#define FLDEFF_PAL_TAG_POKEBALL 0x1009 +#define FLDEFF_PAL_TAG_ASH 0x100D +#define FLDEFF_PAL_TAG_SAND_PILLAR 0x100E +#define FLDEFF_PAL_TAG_SMALL_SPARKLE 0x100F +#define FLDEFF_PAL_TAG_HOF_MONITOR 0x1010 +#define FLDEFF_PAL_TAG_UNKNOWN 0x1011 #endif // GUARD_FIELD_EFFECT_CONSTANTS_H diff --git a/include/event_object_movement.h b/include/event_object_movement.h index fa7cedff07..28443864db 100644 --- a/include/event_object_movement.h +++ b/include/event_object_movement.h @@ -100,7 +100,7 @@ void ObjectEventTurnByLocalIdAndMap(u8, u8, u8, u8); const struct ObjectEventGraphicsInfo *GetObjectEventGraphicsInfo(u8 graphicsId); void npc_by_local_id_and_map_set_field_1_bit_x20(u8, u8, u8, u8); void FreeAndReserveObjectSpritePalettes(void); -void sub_808E82C(u8, u8, u8, s16, s16); +void SetObjectEventSpritePosByLocalIdAndMap(u8 localId, u8 mapNum, u8 mapGroup, s16 x, s16 y); void sub_808E7E4(u8, u8, u8); void sub_808E78C(u8, u8, u8, u8); void sub_808E75C(s16, s16); diff --git a/include/event_scripts.h b/include/event_scripts.h index 8495b7ee1e..3c43801083 100644 --- a/include/event_scripts.h +++ b/include/event_scripts.h @@ -372,10 +372,11 @@ extern const u8 SecretBase_Text_Trainer8Defeated[]; extern const u8 SecretBase_Text_Trainer9Defeated[]; //field effects -extern const u8 EventScript_FldEffStrength[]; +extern const u8 EventScript_UseStrength[]; extern const u8 EventScript_FailSweetScent[]; -extern const u8 EventScript_FldEffFlash[]; -extern const u8 EventScript_RockSmashFromPartyMenu[]; +extern const u8 EventScript_UseFlash[]; +extern const u8 EventScript_UseCut[]; +extern const u8 EventScript_UseRockSmash[]; //player pc extern const u8 LittlerootTown_BrendansHouse_2F_EventScript_TurnOffPlayerPC[]; diff --git a/include/fldeff.h b/include/fldeff.h index 99bcdafafe..597ce6f475 100644 --- a/include/fldeff.h +++ b/include/fldeff.h @@ -9,18 +9,9 @@ bool8 FldEff_CutGrass(void); void FixLongGrassMetatilesWindowTop(s16 x, s16 y); void FixLongGrassMetatilesWindowBottom(s16 x, s16 y); -extern const struct SpritePalette gFieldEffectObjectPaletteInfo6; +extern const struct SpritePalette gSpritePalette_CutGrass; extern struct MapPosition gPlayerFacingPosition; -// groundshake -bool8 sub_81BE66C(void); -void sub_81BE6AC(void); -void sub_81BE6B8(void); -void sub_81BE72C(void); -void sub_81BE79C(void); -void sub_81BE7F4(void); -void sub_81BE994(void); - // escalator void StartEscalator(bool8 var); void StopEscalator(void); @@ -39,7 +30,7 @@ bool8 GetMapPairFadeFromType(u8 a1, u8 a2); // strength bool8 SetUpFieldMove_Strength(void); -bool8 sub_8145E2C(void); +bool8 FldEff_UseStrength(void); // sweet scent bool8 SetUpFieldMove_SweetScent(void); diff --git a/spritesheet_rules.mk b/spritesheet_rules.mk index 1c858899ce..ae79719602 100644 --- a/spritesheet_rules.mk +++ b/spritesheet_rules.mk @@ -645,7 +645,7 @@ $(FLDEFFGFXDIR)/unknown_17.4bpp: %.4bpp: %.png $(FLDEFFGFXDIR)/unused_grass_2.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 2 -mheight 2 -$(FLDEFFGFXDIR)/unknown_19.4bpp: %.4bpp: %.png +$(FLDEFFGFXDIR)/unused_sand.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 2 -mheight 2 $(FLDEFFGFXDIR)/water_surfacing.4bpp: %.4bpp: %.png @@ -672,8 +672,5 @@ $(FLDEFFGFXDIR)/secret_power_shrub.4bpp: %.4bpp: %.png $(FLDEFFGFXDIR)/secret_power_tree.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 2 -mheight 2 -$(FLDEFFGFXDIR)/sand_pillar.4bpp: %.4bpp: %.png - $(GFX) $< $@ -mwidth 2 -mheight 4 - $(FLDEFFGFXDIR)/record_mix_lights.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 1 diff --git a/src/battle_transition.c b/src/battle_transition.c index 3e8dbb4e07..8655c9e0e7 100644 --- a/src/battle_transition.c +++ b/src/battle_transition.c @@ -749,7 +749,7 @@ static const union AffineAnimCmd *const sSpriteAffineAnimTable_Pokeball[] = static const struct SpriteTemplate sSpriteTemplate_Pokeball = { .tileTag = 0xFFFF, - .paletteTag = FLDEFF_PAL_TAG_9, + .paletteTag = FLDEFF_PAL_TAG_POKEBALL, .oam = &gObjectEventBaseOam_32x32, .anims = sSpriteAnimTable_Pokeball, .images = sSpriteImage_Pokeball, @@ -798,7 +798,7 @@ static const union AnimCmd *const sSpriteAnimTable_UnusedBrendanLass[] = static const struct SpriteTemplate sSpriteTemplate_UnusedBrendan = { .tileTag = 0xFFFF, - .paletteTag = FLDEFF_PAL_TAG_10, + .paletteTag = 0x100A, .oam = &sOam_UnusedBrendanLass, .anims = sSpriteAnimTable_UnusedBrendanLass, .images = sImageTable_UnusedBrendan, @@ -809,7 +809,7 @@ static const struct SpriteTemplate sSpriteTemplate_UnusedBrendan = static const struct SpriteTemplate sSpriteTemplate_UnusedLass = { .tileTag = 0xFFFF, - .paletteTag = FLDEFF_PAL_TAG_10, + .paletteTag = 0x100A, .oam = &sOam_UnusedBrendanLass, .anims = sSpriteAnimTable_UnusedBrendanLass, .images = sImageTable_UnusedLass, @@ -817,12 +817,9 @@ static const struct SpriteTemplate sSpriteTemplate_UnusedLass = .callback = SpriteCb_TrainerPic }; -static const u16 gFieldEffectObjectPalette10[] = INCBIN_U16("graphics/field_effects/palettes/10.gbapal"); +static const u16 sFieldEffectPal_Pokeball[] = INCBIN_U16("graphics/field_effects/palettes/pokeball.gbapal"); -const struct SpritePalette gFieldEffectObjectPaletteInfo10 = -{ - gFieldEffectObjectPalette10, FLDEFF_PAL_TAG_9 -}; +const struct SpritePalette gSpritePalette_Pokeball = {sFieldEffectPal_Pokeball, FLDEFF_PAL_TAG_POKEBALL}; static const u16 sMugshotPal_Sidney[] = INCBIN_U16("graphics/battle_transitions/sidney_bg.gbapal"); static const u16 sMugshotPal_Phoebe[] = INCBIN_U16("graphics/battle_transitions/phoebe_bg.gbapal"); @@ -848,10 +845,7 @@ static const u16 *const sPlayerMugshotsPals[GENDER_COUNT] = }; static const u16 sUnusedTrainerPalette[] = INCBIN_U16("graphics/battle_transitions/unused_trainer.gbapal"); -static const struct SpritePalette sSpritePalette_UnusedTrainer = -{ - sUnusedTrainerPalette, FLDEFF_PAL_TAG_10 -}; +static const struct SpritePalette sSpritePalette_UnusedTrainer = {sUnusedTrainerPalette, 0x100A}; static const u16 sBigPokeball_Tilemap[] = INCBIN_U16("graphics/battle_transitions/big_pokeball_map.bin"); static const u16 sMugshotsTilemap[] = INCBIN_U16("graphics/battle_transitions/elite_four_bg_map.bin"); @@ -1323,7 +1317,7 @@ static bool8 Phase2_BigPokeball_Func1(struct Task *task) GetBg0TilesDst(&tilemap, &tileset); CpuFill16(0, tilemap, 0x800); CpuCopy16(sBigPokeball_Tileset, tileset, 0x580); - LoadPalette(gFieldEffectObjectPalette10, 0xF0, 0x20); + LoadPalette(sFieldEffectPal_Pokeball, 0xF0, 0x20); task->tState++; return FALSE; @@ -1629,7 +1623,7 @@ static bool8 Phase2_PokeballsTrail_Func1(struct Task *task) GetBg0TilesDst(&tilemap, &tileset); CpuSet(sPokeballTrail_Tileset, tileset, 0x20); CpuFill32(0, tilemap, 0x800); - LoadPalette(gFieldEffectObjectPalette10, 0xF0, 0x20); + LoadPalette(sFieldEffectPal_Pokeball, 0xF0, 0x20); task->tState++; return FALSE; @@ -2919,7 +2913,7 @@ static bool8 Phase2_RectangularSpiral_Func1(struct Task *task) CpuCopy16(sShrinkingBoxTileset, tileset, 0x20); CpuCopy16(sShrinkingBoxTileset + 0x70, tileset + 0x20, 0x20); CpuFill16(0xF000, tilemap, 0x800); - LoadPalette(gFieldEffectObjectPalette10, 0xF0, 0x20); + LoadPalette(sFieldEffectPal_Pokeball, 0xF0, 0x20); task->tData3 = 1; task->tState++; @@ -3428,7 +3422,7 @@ static bool8 Phase2_GridSquares_Func1(struct Task *task) GetBg0TilesDst(&tilemap, &tileset); CpuSet(sShrinkingBoxTileset, tileset, 0x10); CpuFill16(0xF000, tilemap, 0x800); - LoadPalette(gFieldEffectObjectPalette10, 0xF0, 0x20); + LoadPalette(sFieldEffectPal_Pokeball, 0xF0, 0x20); task->tState++; return FALSE; diff --git a/src/data/field_effects/field_effect_object_template_pointers.h b/src/data/field_effects/field_effect_object_template_pointers.h index e455daf73e..41d6271bf2 100755 --- a/src/data/field_effects/field_effect_object_template_pointers.h +++ b/src/data/field_effects/field_effect_object_template_pointers.h @@ -15,9 +15,9 @@ const struct SpriteTemplate gFieldEffectObjectTemplate_Splash; const struct SpriteTemplate gFieldEffectObjectTemplate_JumpSmallSplash; const struct SpriteTemplate gFieldEffectObjectTemplate_LongGrass; const struct SpriteTemplate gFieldEffectObjectTemplate_JumpLongGrass; -const struct SpriteTemplate gFieldEffectObjectTemplate_Unknown17; +const struct SpriteTemplate gFieldEffectObjectTemplate_UnusedGrass; const struct SpriteTemplate gFieldEffectObjectTemplate_UnusedGrass2; -const struct SpriteTemplate gFieldEffectObjectTemplate_Unknown19; +const struct SpriteTemplate gFieldEffectObjectTemplate_UnusedSand; const struct SpriteTemplate gFieldEffectObjectTemplate_WaterSurfacing; const struct SpriteTemplate gFieldEffectObjectTemplate_ReflectionDistortion; const struct SpriteTemplate gFieldEffectObjectTemplate_Sparkle; @@ -54,9 +54,9 @@ const struct SpriteTemplate *const gFieldEffectObjectTemplatePointers[] = { [FLDEFFOBJ_JUMP_SMALL_SPLASH] = &gFieldEffectObjectTemplate_JumpSmallSplash, [FLDEFFOBJ_LONG_GRASS] = &gFieldEffectObjectTemplate_LongGrass, [FLDEFFOBJ_JUMP_LONG_GRASS] = &gFieldEffectObjectTemplate_JumpLongGrass, - [FLDEFFOBJ_17] = &gFieldEffectObjectTemplate_Unknown17, + [FLDEFFOBJ_UNUSED_GRASS] = &gFieldEffectObjectTemplate_UnusedGrass, [FLDEFFOBJ_UNUSED_GRASS_2] = &gFieldEffectObjectTemplate_UnusedGrass2, - [FLDEFFOBJ_19] = &gFieldEffectObjectTemplate_Unknown19, + [FLDEFFOBJ_UNUSED_SAND] = &gFieldEffectObjectTemplate_UnusedSand, [FLDEFFOBJ_WATER_SURFACING] = &gFieldEffectObjectTemplate_WaterSurfacing, [FLDEFFOBJ_REFLECTION_DISTORTION] = &gFieldEffectObjectTemplate_ReflectionDistortion, [FLDEFFOBJ_SPARKLE] = &gFieldEffectObjectTemplate_Sparkle, diff --git a/src/data/field_effects/field_effect_objects.h b/src/data/field_effects/field_effect_objects.h index 071beeecd7..1626b9f323 100755 --- a/src/data/field_effects/field_effect_objects.h +++ b/src/data/field_effects/field_effect_objects.h @@ -1,6 +1,5 @@ -const struct SpritePalette gFieldEffectObjectPaletteInfo0 = {gFieldEffectObjectPalette0, FLDEFF_PAL_TAG_4}; - -const struct SpritePalette gFieldEffectObjectPaletteInfo1 = {gFieldEffectObjectPalette1, FLDEFF_PAL_TAG_5}; +const struct SpritePalette gSpritePalette_GeneralFieldEffect0 = {gFieldEffectObjectPalette0, FLDEFF_PAL_TAG_GENERAL_0}; +const struct SpritePalette gSpritePalette_GeneralFieldEffect1 = {gFieldEffectObjectPalette1, FLDEFF_PAL_TAG_GENERAL_1}; static const union AnimCmd sAnim_Shadow[] = { @@ -94,7 +93,7 @@ static const union AnimCmd *const sAnimTable_TallGrass[] = const struct SpriteTemplate gFieldEffectObjectTemplate_TallGrass = { .tileTag = 0xFFFF, - .paletteTag = FLDEFF_PAL_TAG_5, + .paletteTag = FLDEFF_PAL_TAG_GENERAL_1, .oam = &gObjectEventBaseOam_16x16, .anims = sAnimTable_TallGrass, .images = sPicTable_TallGrass, @@ -130,7 +129,7 @@ static const union AnimCmd *const sAnimTable_Ripple[] = const struct SpriteTemplate gFieldEffectObjectTemplate_Ripple = { .tileTag = 0xFFFF, - .paletteTag = FLDEFF_PAL_TAG_5, + .paletteTag = FLDEFF_PAL_TAG_GENERAL_1, .oam = &gObjectEventBaseOam_16x16, .anims = sAnimTable_Ripple, .images = sPicTable_Ripple, @@ -163,7 +162,7 @@ static const union AnimCmd *const sAnimTable_Ash[] = const struct SpriteTemplate gFieldEffectObjectTemplate_Ash = { .tileTag = 0xFFFF, - .paletteTag = FLDEFF_PAL_TAG_5, + .paletteTag = FLDEFF_PAL_TAG_GENERAL_1, .oam = &gObjectEventBaseOam_16x16, .anims = sAnimTable_Ash, .images = sPicTable_Ash, @@ -297,7 +296,7 @@ static const union AnimCmd *const sAnimTable_GroundImpactDust[] = const struct SpriteTemplate gFieldEffectObjectTemplate_GroundImpactDust = { .tileTag = 0xFFFF, - .paletteTag = FLDEFF_PAL_TAG_4, + .paletteTag = FLDEFF_PAL_TAG_GENERAL_0, .oam = &gObjectEventBaseOam_16x8, .anims = sAnimTable_GroundImpactDust, .images = sPicTable_GroundImpactDust, @@ -328,7 +327,7 @@ static const union AnimCmd *const sAnimTable_JumpTallGrass[] = const struct SpriteTemplate gFieldEffectObjectTemplate_JumpTallGrass = { .tileTag = 0xFFFF, - .paletteTag = FLDEFF_PAL_TAG_5, + .paletteTag = FLDEFF_PAL_TAG_GENERAL_1, .oam = &gObjectEventBaseOam_16x8, .anims = sAnimTable_JumpTallGrass, .images = sPicTable_JumpTallGrass, @@ -376,7 +375,7 @@ static const union AnimCmd *const sAnimTable_SandFootprints[] = const struct SpriteTemplate gFieldEffectObjectTemplate_SandFootprints = { .tileTag = 0xFFFF, - .paletteTag = FLDEFF_PAL_TAG_4, + .paletteTag = FLDEFF_PAL_TAG_GENERAL_0, .oam = &gObjectEventBaseOam_16x16, .anims = sAnimTable_SandFootprints, .images = sPicTable_SandFootprints, @@ -424,7 +423,7 @@ static const union AnimCmd *const sAnimTable_DeepSandFootprints[] = const struct SpriteTemplate gFieldEffectObjectTemplate_DeepSandFootprints = { .tileTag = 0xFFFF, - .paletteTag = FLDEFF_PAL_TAG_4, + .paletteTag = FLDEFF_PAL_TAG_GENERAL_0, .oam = &gObjectEventBaseOam_16x16, .anims = sAnimTable_DeepSandFootprints, .images = sPicTable_DeepSandFootprints, @@ -502,7 +501,7 @@ static const union AnimCmd *const sAnimTable_BikeTireTracks[] = const struct SpriteTemplate gFieldEffectObjectTemplate_BikeTireTracks = { .tileTag = 0xFFFF, - .paletteTag = FLDEFF_PAL_TAG_4, + .paletteTag = FLDEFF_PAL_TAG_GENERAL_0, .oam = &gObjectEventBaseOam_16x16, .anims = sAnimTable_BikeTireTracks, .images = sPicTable_BikeTireTracks, @@ -533,7 +532,7 @@ static const union AnimCmd *const sAnimTable_JumpBigSplash[] = const struct SpriteTemplate gFieldEffectObjectTemplate_JumpBigSplash = { .tileTag = 0xFFFF, - .paletteTag = FLDEFF_PAL_TAG_4, + .paletteTag = FLDEFF_PAL_TAG_GENERAL_0, .oam = &gObjectEventBaseOam_16x16, .anims = sAnimTable_JumpBigSplash, .images = sPicTable_JumpBigSplash, @@ -574,7 +573,7 @@ static const union AnimCmd *const sAnimTable_Splash[] = const struct SpriteTemplate gFieldEffectObjectTemplate_Splash = { .tileTag = 0xFFFF, - .paletteTag = FLDEFF_PAL_TAG_4, + .paletteTag = FLDEFF_PAL_TAG_GENERAL_0, .oam = &gObjectEventBaseOam_16x8, .anims = sAnimTable_Splash, .images = sPicTable_Splash, @@ -603,7 +602,7 @@ static const union AnimCmd *const sAnimTable_JumpSmallSplash[] = const struct SpriteTemplate gFieldEffectObjectTemplate_JumpSmallSplash = { .tileTag = 0xFFFF, - .paletteTag = FLDEFF_PAL_TAG_4, + .paletteTag = FLDEFF_PAL_TAG_GENERAL_0, .oam = &gObjectEventBaseOam_16x8, .anims = sAnimTable_JumpSmallSplash, .images = sPicTable_JumpSmallSplash, @@ -637,7 +636,7 @@ static const union AnimCmd *const sAnimTable_LongGrass[] = const struct SpriteTemplate gFieldEffectObjectTemplate_LongGrass = { .tileTag = 0xFFFF, - .paletteTag = FLDEFF_PAL_TAG_5, + .paletteTag = FLDEFF_PAL_TAG_GENERAL_1, .oam = &gObjectEventBaseOam_16x16, .anims = sAnimTable_LongGrass, .images = sPicTable_LongGrass, @@ -672,7 +671,7 @@ static const union AnimCmd *const sAnimTable_JumpLongGrass[] = const struct SpriteTemplate gFieldEffectObjectTemplate_JumpLongGrass = { .tileTag = 0xFFFF, - .paletteTag = FLDEFF_PAL_TAG_5, + .paletteTag = FLDEFF_PAL_TAG_GENERAL_1, .oam = &gObjectEventBaseOam_16x16, .anims = sAnimTable_JumpLongGrass, .images = sPicTable_JumpLongGrass, @@ -680,7 +679,7 @@ const struct SpriteTemplate gFieldEffectObjectTemplate_JumpLongGrass = { .callback = UpdateJumpImpactEffect, }; -static const struct SpriteFrameImage sPicTable_Unknown17[] = { +static const struct SpriteFrameImage sPicTable_UnusedGrass[] = { overworld_frame(gFieldEffectObjectPic_JumpLongGrass, 2, 2, 6), overworld_frame(gFieldEffectObjectPic_Unknown17, 2, 2, 0), overworld_frame(gFieldEffectObjectPic_Unknown17, 2, 2, 1), @@ -692,7 +691,7 @@ static const struct SpriteFrameImage sPicTable_Unknown17[] = { overworld_frame(gFieldEffectObjectPic_Unknown17, 2, 2, 7), }; -static const union AnimCmd sAnim_Unknown17[] = +static const union AnimCmd sAnim_UnusedGrass[] = { ANIMCMD_FRAME(0, 10), ANIMCMD_FRAME(1, 4), @@ -706,17 +705,17 @@ static const union AnimCmd sAnim_Unknown17[] = ANIMCMD_JUMP(7), }; -static const union AnimCmd *const sAnimTable_Unknown17[] = +static const union AnimCmd *const sAnimTable_UnusedGrass[] = { - sAnim_Unknown17, + sAnim_UnusedGrass, }; -const struct SpriteTemplate gFieldEffectObjectTemplate_Unknown17 = { +const struct SpriteTemplate gFieldEffectObjectTemplate_UnusedGrass = { .tileTag = 0xFFFF, - .paletteTag = FLDEFF_PAL_TAG_5, + .paletteTag = FLDEFF_PAL_TAG_GENERAL_1, .oam = &gObjectEventBaseOam_16x16, - .anims = sAnimTable_Unknown17, - .images = sPicTable_Unknown17, + .anims = sAnimTable_UnusedGrass, + .images = sPicTable_UnusedGrass, .affineAnims = gDummySpriteAffineAnimTable, .callback = WaitFieldEffectSpriteAnim, }; @@ -746,7 +745,7 @@ static const union AnimCmd *const sAnimTable_UnusedGrass2[] = const struct SpriteTemplate gFieldEffectObjectTemplate_UnusedGrass2 = { .tileTag = 0xFFFF, - .paletteTag = FLDEFF_PAL_TAG_5, + .paletteTag = FLDEFF_PAL_TAG_GENERAL_1, .oam = &gObjectEventBaseOam_16x16, .anims = sAnimTable_UnusedGrass2, .images = sPicTable_UnusedGrass2, @@ -754,14 +753,14 @@ const struct SpriteTemplate gFieldEffectObjectTemplate_UnusedGrass2 = { .callback = WaitFieldEffectSpriteAnim, }; -static const struct SpriteFrameImage sPicTable_Unknown19[] = { - overworld_frame(gFieldEffectObjectPic_Unknown19, 2, 2, 0), - overworld_frame(gFieldEffectObjectPic_Unknown19, 2, 2, 1), - overworld_frame(gFieldEffectObjectPic_Unknown19, 2, 2, 2), - overworld_frame(gFieldEffectObjectPic_Unknown19, 2, 2, 3), +static const struct SpriteFrameImage sPicTable_UnusedSand[] = { + overworld_frame(gFieldEffectObjectPic_UnusedSand, 2, 2, 0), + overworld_frame(gFieldEffectObjectPic_UnusedSand, 2, 2, 1), + overworld_frame(gFieldEffectObjectPic_UnusedSand, 2, 2, 2), + overworld_frame(gFieldEffectObjectPic_UnusedSand, 2, 2, 3), }; -static const union AnimCmd sAnim_Unknown19[] = +static const union AnimCmd sAnim_UnusedSand[] = { ANIMCMD_FRAME(0, 4), ANIMCMD_FRAME(1, 4), @@ -770,17 +769,17 @@ static const union AnimCmd sAnim_Unknown19[] = ANIMCMD_JUMP(0), }; -static const union AnimCmd *const sAnimTable_Unknown19[] = +static const union AnimCmd *const sAnimTable_UnusedSand[] = { - sAnim_Unknown19, + sAnim_UnusedSand, }; -const struct SpriteTemplate gFieldEffectObjectTemplate_Unknown19 = { +const struct SpriteTemplate gFieldEffectObjectTemplate_UnusedSand = { .tileTag = 0xFFFF, - .paletteTag = FLDEFF_PAL_TAG_4, + .paletteTag = FLDEFF_PAL_TAG_GENERAL_0, .oam = &gObjectEventBaseOam_16x16, - .anims = sAnimTable_Unknown19, - .images = sPicTable_Unknown19, + .anims = sAnimTable_UnusedSand, + .images = sPicTable_UnusedSand, .affineAnims = gDummySpriteAffineAnimTable, .callback = WaitFieldEffectSpriteAnim, }; @@ -806,7 +805,7 @@ static const union AnimCmd *const sAnimTable_SandPile[] = const struct SpriteTemplate gFieldEffectObjectTemplate_SandPile = { .tileTag = 0xFFFF, - .paletteTag = FLDEFF_PAL_TAG_4, + .paletteTag = FLDEFF_PAL_TAG_GENERAL_0, .oam = &gObjectEventBaseOam_16x8, .anims = sAnimTable_SandPile, .images = sPicTable_SandPile, @@ -839,7 +838,7 @@ static const union AnimCmd *const sAnimTable_WaterSurfacing[] = const struct SpriteTemplate gFieldEffectObjectTemplate_WaterSurfacing = { .tileTag = 0xFFFF, - .paletteTag = FLDEFF_PAL_TAG_4, + .paletteTag = FLDEFF_PAL_TAG_GENERAL_0, .oam = &gObjectEventBaseOam_16x16, .anims = sAnimTable_WaterSurfacing, .images = sPicTable_WaterSurfacing, @@ -1092,7 +1091,7 @@ static const union AnimCmd *const sAnimTable_ShortGrass[] = const struct SpriteTemplate gFieldEffectObjectTemplate_ShortGrass = { .tileTag = 0xFFFF, - .paletteTag = FLDEFF_PAL_TAG_5, + .paletteTag = FLDEFF_PAL_TAG_GENERAL_1, .oam = &gObjectEventBaseOam_16x16, .anims = sAnimTable_ShortGrass, .images = sPicTable_ShortGrass, @@ -1117,7 +1116,7 @@ static const union AnimCmd *const sAnimTable_HotSpringsWater[] = const struct SpriteTemplate gFieldEffectObjectTemplate_HotSpringsWater = { .tileTag = 0xFFFF, - .paletteTag = FLDEFF_PAL_TAG_5, + .paletteTag = FLDEFF_PAL_TAG_GENERAL_1, .oam = &gObjectEventBaseOam_16x16, .anims = sAnimTable_HotSpringsWater, .images = sPicTable_HotSpringsWater, @@ -1151,7 +1150,7 @@ static const union AnimCmd *const sAnimTable_AshPuff[] = const struct SpriteTemplate gFieldEffectObjectTemplate_AshPuff = { .tileTag = 0xFFFF, - .paletteTag = FLDEFF_PAL_TAG_13, + .paletteTag = FLDEFF_PAL_TAG_ASH, .oam = &gObjectEventBaseOam_16x16, .anims = sAnimTable_AshPuff, .images = sPicTable_AshPuff, @@ -1159,7 +1158,7 @@ const struct SpriteTemplate gFieldEffectObjectTemplate_AshPuff = .callback = SpriteCB_AshPuff }; -const struct SpritePalette gFieldEffectObjectPaletteInfo2 = {gFieldEffectObjectPalette2, FLDEFF_PAL_TAG_13}; +const struct SpritePalette gSpritePalette_Ash = {gFieldEffectPal_Ash, FLDEFF_PAL_TAG_ASH}; static const struct SpriteFrameImage sPicTable_AshLaunch[] = { overworld_frame(gFieldEffectObjectPic_AshLaunch, 2, 2, 0), @@ -1187,7 +1186,7 @@ static const union AnimCmd *const sAnimTable_AshLaunch[] = const struct SpriteTemplate gFieldEffectObjectTemplate_AshLaunch = { .tileTag = 0xFFFF, - .paletteTag = FLDEFF_PAL_TAG_13, + .paletteTag = FLDEFF_PAL_TAG_ASH, .oam = &gObjectEventBaseOam_16x16, .anims = sAnimTable_AshLaunch, .images = sPicTable_AshLaunch, @@ -1226,7 +1225,7 @@ static const union AnimCmd *const sAnimTable_Bubbles[] = const struct SpriteTemplate gFieldEffectObjectTemplate_Bubbles = { .tileTag = 0xFFFF, - .paletteTag = FLDEFF_PAL_TAG_4, + .paletteTag = FLDEFF_PAL_TAG_GENERAL_0, .oam = &gObjectEventBaseOam_16x32, .anims = sAnimTable_Bubbles, .images = sPicTable_Bubbles, @@ -1254,7 +1253,7 @@ static const union AnimCmd *const sAnimTable_SmallSparkle[] = const struct SpriteTemplate gFieldEffectObjectTemplate_SmallSparkle = { .tileTag = 0xFFFF, - .paletteTag = FLDEFF_PAL_TAG_15, + .paletteTag = FLDEFF_PAL_TAG_SMALL_SPARKLE, .oam = &gObjectEventBaseOam_16x16, .anims = sAnimTable_SmallSparkle, .images = sPicTable_SmallSparkle, @@ -1262,7 +1261,7 @@ const struct SpriteTemplate gFieldEffectObjectTemplate_SmallSparkle = { .callback = UpdateSparkleFieldEffect, }; -const struct SpritePalette gFieldEffectObjectPaletteInfo3 = {gFieldEffectObjectPalette3, FLDEFF_PAL_TAG_15}; +const struct SpritePalette gSpritePalette_SmallSparkle = {gFieldEffectPal_SmallSparkle, FLDEFF_PAL_TAG_SMALL_SPARKLE}; static const union AnimCmd sAnim_Rayquaza[] = { ANIMCMD_FRAME(0, 1), @@ -1287,4 +1286,4 @@ const struct SpriteTemplate gFieldEffectObjectTemplate_Rayquaza = { .callback = UpdateRayquazaSpotlightEffect, }; -const struct SpritePalette gFieldEffectObjectPaletteInfoUnused = {gObjectEventPalette2, FLDEFF_PAL_TAG_17}; +static const struct SpritePalette sSpritePalette_Unused = {gObjectEventPalette2, FLDEFF_PAL_TAG_UNKNOWN}; diff --git a/src/data/object_events/object_event_graphics.h b/src/data/object_events/object_event_graphics.h index 87c0fa8a39..50fc6715c7 100755 --- a/src/data/object_events/object_event_graphics.h +++ b/src/data/object_events/object_event_graphics.h @@ -293,15 +293,15 @@ const u32 gFieldEffectObjectPic_ShadowSmall[] = INCBIN_U32("graphics/field_effec const u32 gFieldEffectObjectPic_ShadowMedium[] = INCBIN_U32("graphics/field_effects/pics/shadow_medium.4bpp"); const u32 gFieldEffectObjectPic_ShadowLarge[] = INCBIN_U32("graphics/field_effects/pics/shadow_large.4bpp"); const u32 gFieldEffectObjectPic_ShadowExtraLarge[] = INCBIN_U32("graphics/field_effects/pics/shadow_extra_large.4bpp"); -const u32 filler_8368A08[0x48] = {}; +static const u32 sFiller[0x48] = {}; const u8 gFieldEffectPic_CutGrass[] = INCBIN_U8("graphics/field_effects/pics/cut_grass.4bpp"); const u32 gFieldEffectPic_CutGrass_Copy[] = INCBIN_U32("graphics/field_effects/pics/cut_grass.4bpp"); -const u16 gFieldEffectObjectPalette6[] = INCBIN_U16("graphics/field_effects/palettes/06.gbapal"); +const u16 gFieldEffectPal_CutGrass[] = INCBIN_U16("graphics/field_effects/palettes/cut_grass.gbapal"); const u32 gFieldEffectObjectPic_Ripple[] = INCBIN_U32("graphics/field_effects/pics/ripple.4bpp"); const u32 gFieldEffectObjectPic_Ash[] = INCBIN_U32("graphics/field_effects/pics/ash.4bpp"); const u32 gFieldEffectObjectPic_Arrow[] = INCBIN_U32("graphics/field_effects/pics/arrow.4bpp"); -const u16 gFieldEffectObjectPalette0[] = INCBIN_U16("graphics/field_effects/palettes/00.gbapal"); -const u16 gFieldEffectObjectPalette1[] = INCBIN_U16("graphics/field_effects/palettes/01.gbapal"); +const u16 gFieldEffectObjectPalette0[] = INCBIN_U16("graphics/field_effects/palettes/general_0.gbapal"); +const u16 gFieldEffectObjectPalette1[] = INCBIN_U16("graphics/field_effects/palettes/general_1.gbapal"); const u32 gFieldEffectObjectPic_GroundImpactDust[] = INCBIN_U32("graphics/field_effects/pics/ground_impact_dust.4bpp"); const u32 gFieldEffectObjectPic_JumpTallGrass[] = INCBIN_U32("graphics/field_effects/pics/jump_tall_grass.4bpp"); const u32 gUnusedGrass3[] = INCBIN_U32("graphics/field_effects/pics/unused_grass_3.4bpp"); @@ -314,7 +314,7 @@ const u32 gFieldEffectObjectPic_ShortGrass[] = INCBIN_U32("graphics/field_effect const u32 gFieldEffectObjectPic_SandFootprints[] = INCBIN_U32("graphics/field_effects/pics/sand_footprints.4bpp"); const u32 gFieldEffectObjectPic_DeepSandFootprints[] = INCBIN_U32("graphics/field_effects/pics/deep_sand_footprints.4bpp"); const u32 gFieldEffectObjectPic_BikeTireTracks[] = INCBIN_U32("graphics/field_effects/pics/bike_tire_tracks.4bpp"); -const u32 gFieldEffectObjectPic_Unknown19[] = INCBIN_U32("graphics/field_effects/pics/unknown_19.4bpp"); +const u32 gFieldEffectObjectPic_UnusedSand[] = INCBIN_U32("graphics/field_effects/pics/unused_sand.4bpp"); const u32 gFieldEffectObjectPic_SandPile[] = INCBIN_U32("graphics/field_effects/pics/sand_pile.4bpp"); const u32 gFieldEffectObjectPic_JumpBigSplash[] = INCBIN_U32("graphics/field_effects/pics/jump_big_splash.4bpp"); const u32 gFieldEffectObjectPic_Splash[] = INCBIN_U32("graphics/field_effects/pics/splash.4bpp"); @@ -324,12 +324,12 @@ const u32 gFieldEffectObjectPic_TreeDisguise[] = INCBIN_U32("graphics/field_effe const u32 gFieldEffectObjectPic_MountainDisguise[] = INCBIN_U32("graphics/field_effects/pics/mountain_disguise.4bpp"); const u32 gFieldEffectObjectPic_SandDisguisePlaceholder[] = INCBIN_U32("graphics/field_effects/pics/sand_disguise_placeholder.4bpp"); const u32 gFieldEffectObjectPic_HotSpringsWater[] = INCBIN_U32("graphics/field_effects/pics/hot_springs_water.4bpp"); -const u16 gFieldEffectObjectPalette2[] = INCBIN_U16("graphics/field_effects/palettes/02.gbapal"); +const u16 gFieldEffectPal_Ash[] = INCBIN_U16("graphics/field_effects/palettes/ash.gbapal"); const u32 gFieldEffectObjectPic_AshPuff[] = INCBIN_U32("graphics/field_effects/pics/ash_puff.4bpp"); const u32 gFieldEffectObjectPic_AshLaunch[] = INCBIN_U32("graphics/field_effects/pics/ash_launch.4bpp"); const u32 gFieldEffectObjectPic_Bubbles[] = INCBIN_U32("graphics/field_effects/pics/bubbles.4bpp"); const u32 gFieldEffectObjectPic_SmallSparkle[] = INCBIN_U32("graphics/field_effects/pics/small_sparkle.4bpp"); -const u16 gFieldEffectObjectPalette3[] = INCBIN_U16("graphics/field_effects/palettes/03.gbapal"); +const u16 gFieldEffectPal_SmallSparkle[] = INCBIN_U16("graphics/field_effects/palettes/small_sparkle.gbapal"); const u32 gFieldEffectObjectPic_Bird[] = INCBIN_U32("graphics/field_effects/pics/bird.4bpp"); const u32 gObjectEventPic_Juan[] = INCBIN_U32("graphics/object_events/pics/people/gym_leaders/juan.4bpp"); const u32 gObjectEventPic_Scott[] = INCBIN_U32("graphics/object_events/pics/people/scott.4bpp"); diff --git a/src/event_object_movement.c b/src/event_object_movement.c index c6aa3d9ef0..5e1de36a00 100644 --- a/src/event_object_movement.c +++ b/src/event_object_movement.c @@ -1948,7 +1948,7 @@ void sub_808E7E4(u8 localId, u8 mapNum, u8 mapGroup) } } -void sub_808E82C(u8 localId, u8 mapNum, u8 mapGroup, s16 x, s16 y) +void SetObjectEventSpritePosByLocalIdAndMap(u8 localId, u8 mapNum, u8 mapGroup, s16 x, s16 y) { u8 objectEventId; struct Sprite *sprite; diff --git a/src/faraway_island.c b/src/faraway_island.c index 4233c43d80..d66a7c41e0 100755 --- a/src/faraway_island.c +++ b/src/faraway_island.c @@ -26,7 +26,7 @@ static s16 sPlayerToMewDeltaX; static s16 sPlayerToMewDeltaY; static u8 sMewDirectionCandidates[4]; -extern const struct SpritePalette gFieldEffectObjectPaletteInfo1; +extern const struct SpritePalette gSpritePalette_GeneralFieldEffect1; extern const struct SpriteTemplate *const gFieldEffectObjectTemplatePointers[]; static const s16 sFarawayIslandRockCoords[4][2] = @@ -374,8 +374,8 @@ void sub_81D4A90(void) if (gSpecialVar_Facing != DIR_NORTH) gSprites[mew->spriteId].subpriority = 1; - LoadSpritePalette(&gFieldEffectObjectPaletteInfo1); - UpdateSpritePaletteWithWeather(IndexOfSpritePaletteTag(gFieldEffectObjectPaletteInfo1.tag)); + LoadSpritePalette(&gSpritePalette_GeneralFieldEffect1); + UpdateSpritePaletteWithWeather(IndexOfSpritePaletteTag(gSpritePalette_GeneralFieldEffect1.tag)); x = mew->currentCoords.x; y = mew->currentCoords.y; diff --git a/src/field_effect.c b/src/field_effect.c index c2302eed95..699db4c993 100644 --- a/src/field_effect.c +++ b/src/field_effect.c @@ -246,12 +246,12 @@ static const u32 sNewGameBirch_Gfx[] = INCBIN_U32("graphics/birch_speech/birch.4 static const u32 sUnusedBirchBeauty[] = INCBIN_U32("graphics/unused/intro_birch_beauty.4bpp"); static const u16 sNewGameBirch_Pal[16] = INCBIN_U16("graphics/birch_speech/birch.gbapal"); static const u32 sPokeballGlow_Gfx[] = INCBIN_U32("graphics/misc/pokeball_glow.4bpp"); -static const u16 sFieldEffectObjectPalette4[16] = INCBIN_U16("graphics/field_effects/palettes/04.gbapal"); +static const u16 sPokeballGlow_Pal[16] = INCBIN_U16("graphics/field_effects/palettes/pokeball_glow.gbapal"); static const u32 sPokecenterMonitor0_Gfx[] = INCBIN_U32("graphics/misc/pokecenter_monitor/0.4bpp"); static const u32 sPokecenterMonitor1_Gfx[] = INCBIN_U32("graphics/misc/pokecenter_monitor/1.4bpp"); static const u32 sHofMonitorBig_Gfx[] = INCBIN_U32("graphics/misc/hof_monitor_big.4bpp"); static const u8 sHofMonitorSmall_Gfx[] = INCBIN_U8("graphics/misc/hof_monitor_small.4bpp"); -static const u16 sFieldEffectObjectPalette5[16] = INCBIN_U16("graphics/field_effects/palettes/05.gbapal"); +static const u16 sHofMonitor_Pal[16] = INCBIN_U16("graphics/field_effects/palettes/hof_monitor.gbapal"); // Graphics for the lights streaking past your Pokemon when it uses a field move. static const u32 sFieldMoveStreaksOutdoors_Gfx[] = INCBIN_U32("graphics/misc/field_move_streaks.4bpp"); @@ -332,7 +332,7 @@ static const struct SpriteFrameImage sPicTable_NewGameBirch[] = static const struct SpritePalette sSpritePalette_NewGameBirch = { .data = sNewGameBirch_Pal, - .tag = FLDEFF_PAL_TAG_6 + .tag = 0x1006 }; static const union AnimCmd sAnim_NewGameBirch[] = @@ -349,7 +349,7 @@ static const union AnimCmd *const sAnimTable_NewGameBirch[] = static const struct SpriteTemplate sSpriteTemplate_NewGameBirch = { .tileTag = 0xFFFF, - .paletteTag = FLDEFF_PAL_TAG_6, + .paletteTag = 0x1006, .oam = &sOam_64x64, .anims = sAnimTable_NewGameBirch, .images = sPicTable_NewGameBirch, @@ -357,16 +357,16 @@ static const struct SpriteTemplate sSpriteTemplate_NewGameBirch = .callback = SpriteCallbackDummy }; -const struct SpritePalette gFieldEffectObjectPaletteInfo4 = +const struct SpritePalette gSpritePalette_PokeballGlow = { - .data = sFieldEffectObjectPalette4, - .tag = FLDEFF_PAL_TAG_7 + .data = sPokeballGlow_Pal, + .tag = FLDEFF_PAL_TAG_POKEBALL_GLOW }; -const struct SpritePalette gFieldEffectObjectPaletteInfo5 = +const struct SpritePalette gSpritePalette_HofMonitor = { - .data = sFieldEffectObjectPalette5, - .tag = FLDEFF_PAL_TAG_16 + .data = sHofMonitor_Pal, + .tag = FLDEFF_PAL_TAG_HOF_MONITOR }; static const struct OamData sOam_32x16 = @@ -513,7 +513,7 @@ static const union AnimCmd *const sAnimTable_HofMonitor[] = static const struct SpriteTemplate sSpriteTemplate_PokeballGlow = { .tileTag = 0xFFFF, - .paletteTag = FLDEFF_PAL_TAG_7, + .paletteTag = FLDEFF_PAL_TAG_POKEBALL_GLOW, .oam = &sOam_8x8, .anims = gSpriteAnimTable_855C2F8, .images = sPicTable_PokeballGlow, @@ -524,7 +524,7 @@ static const struct SpriteTemplate sSpriteTemplate_PokeballGlow = static const struct SpriteTemplate sSpriteTemplate_PokecenterMonitor = { .tileTag = 0xFFFF, - .paletteTag = FLDEFF_PAL_TAG_4, + .paletteTag = FLDEFF_PAL_TAG_GENERAL_0, .oam = &sOam_16x16, .anims = gSpriteAnimTable_855C2F8, .images = sPicTable_PokecenterMonitor, @@ -535,7 +535,7 @@ static const struct SpriteTemplate sSpriteTemplate_PokecenterMonitor = static const struct SpriteTemplate sSpriteTemplate_HofMonitorBig = { .tileTag = 0xFFFF, - .paletteTag = FLDEFF_PAL_TAG_16, + .paletteTag = FLDEFF_PAL_TAG_HOF_MONITOR, .oam = &sOam_16x16, .anims = sAnimTable_HofMonitor, .images = sPicTable_HofMonitorBig, @@ -546,7 +546,7 @@ static const struct SpriteTemplate sSpriteTemplate_HofMonitorBig = static const struct SpriteTemplate sSpriteTemplate_HofMonitorSmall = { .tileTag = 0xFFFF, - .paletteTag = FLDEFF_PAL_TAG_16, + .paletteTag = FLDEFF_PAL_TAG_HOF_MONITOR, .oam = &sOam_32x16, .anims = sAnimTable_HofMonitor, .images = sPicTable_HofMonitorSmall, @@ -1178,14 +1178,14 @@ static void PokeballGlowEffect_Flash1(struct Sprite *sprite) sprite->data[3]++; } phase = (sprite->sCounter + 3) & 3; - MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(FLDEFF_PAL_TAG_7) << 4) + 0x108, sPokeballGlowReds[phase], sPokeballGlowGreens[phase], sPokeballGlowBlues[phase]); + MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(FLDEFF_PAL_TAG_POKEBALL_GLOW) << 4) + 0x108, sPokeballGlowReds[phase], sPokeballGlowGreens[phase], sPokeballGlowBlues[phase]); phase = (sprite->sCounter + 2) & 3; - MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(FLDEFF_PAL_TAG_7) << 4) + 0x106, sPokeballGlowReds[phase], sPokeballGlowGreens[phase], sPokeballGlowBlues[phase]); + MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(FLDEFF_PAL_TAG_POKEBALL_GLOW) << 4) + 0x106, sPokeballGlowReds[phase], sPokeballGlowGreens[phase], sPokeballGlowBlues[phase]); phase = (sprite->sCounter + 1) & 3; - MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(FLDEFF_PAL_TAG_7) << 4) + 0x102, sPokeballGlowReds[phase], sPokeballGlowGreens[phase], sPokeballGlowBlues[phase]); + MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(FLDEFF_PAL_TAG_POKEBALL_GLOW) << 4) + 0x102, sPokeballGlowReds[phase], sPokeballGlowGreens[phase], sPokeballGlowBlues[phase]); phase = sprite->sCounter; - MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(FLDEFF_PAL_TAG_7) << 4) + 0x105, sPokeballGlowReds[phase], sPokeballGlowGreens[phase], sPokeballGlowBlues[phase]); - MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(FLDEFF_PAL_TAG_7) << 4) + 0x103, sPokeballGlowReds[phase], sPokeballGlowGreens[phase], sPokeballGlowBlues[phase]); + MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(FLDEFF_PAL_TAG_POKEBALL_GLOW) << 4) + 0x105, sPokeballGlowReds[phase], sPokeballGlowGreens[phase], sPokeballGlowBlues[phase]); + MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(FLDEFF_PAL_TAG_POKEBALL_GLOW) << 4) + 0x103, sPokeballGlowReds[phase], sPokeballGlowGreens[phase], sPokeballGlowBlues[phase]); if (sprite->data[3] > 2) { sprite->sState++; @@ -1209,11 +1209,11 @@ static void PokeballGlowEffect_Flash2(struct Sprite *sprite) } } phase = sprite->sCounter; - MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(FLDEFF_PAL_TAG_7) << 4) + 0x108, sPokeballGlowReds[phase], sPokeballGlowGreens[phase], sPokeballGlowBlues[phase]); - MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(FLDEFF_PAL_TAG_7) << 4) + 0x106, sPokeballGlowReds[phase], sPokeballGlowGreens[phase], sPokeballGlowBlues[phase]); - MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(FLDEFF_PAL_TAG_7) << 4) + 0x102, sPokeballGlowReds[phase], sPokeballGlowGreens[phase], sPokeballGlowBlues[phase]); - MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(FLDEFF_PAL_TAG_7) << 4) + 0x105, sPokeballGlowReds[phase], sPokeballGlowGreens[phase], sPokeballGlowBlues[phase]); - MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(FLDEFF_PAL_TAG_7) << 4) + 0x103, sPokeballGlowReds[phase], sPokeballGlowGreens[phase], sPokeballGlowBlues[phase]); + MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(FLDEFF_PAL_TAG_POKEBALL_GLOW) << 4) + 0x108, sPokeballGlowReds[phase], sPokeballGlowGreens[phase], sPokeballGlowBlues[phase]); + MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(FLDEFF_PAL_TAG_POKEBALL_GLOW) << 4) + 0x106, sPokeballGlowReds[phase], sPokeballGlowGreens[phase], sPokeballGlowBlues[phase]); + MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(FLDEFF_PAL_TAG_POKEBALL_GLOW) << 4) + 0x102, sPokeballGlowReds[phase], sPokeballGlowGreens[phase], sPokeballGlowBlues[phase]); + MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(FLDEFF_PAL_TAG_POKEBALL_GLOW) << 4) + 0x105, sPokeballGlowReds[phase], sPokeballGlowGreens[phase], sPokeballGlowBlues[phase]); + MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(FLDEFF_PAL_TAG_POKEBALL_GLOW) << 4) + 0x103, sPokeballGlowReds[phase], sPokeballGlowGreens[phase], sPokeballGlowBlues[phase]); } static void PokeballGlowEffect_WaitAfterFlash(struct Sprite *sprite) diff --git a/src/field_effect_helpers.c b/src/field_effect_helpers.c index 9950978adf..78948618fb 100755 --- a/src/field_effect_helpers.c +++ b/src/field_effect_helpers.c @@ -348,7 +348,7 @@ u32 FldEff_JumpTallGrass(void) sprite->coordOffsetEnabled = TRUE; sprite->oam.priority = gFieldEffectArguments[3]; sprite->data[0] = gFieldEffectArguments[2]; - sprite->data[1] = 12; + sprite->data[1] = FLDEFF_JUMP_TALL_GRASS; } return 0; } @@ -451,7 +451,7 @@ u32 FldEff_JumpLongGrass(void) sprite->coordOffsetEnabled = TRUE; sprite->oam.priority = gFieldEffectArguments[3]; sprite->data[0] = gFieldEffectArguments[2]; - sprite->data[1] = 18; + sprite->data[1] = FLDEFF_JUMP_LONG_GRASS; } return 0; } @@ -800,19 +800,19 @@ void UpdateHotSpringsWaterFieldEffect(struct Sprite *sprite) } } -u32 FldEff_Unknown19(void) +u32 FldEff_UnusedGrass(void) { u8 spriteId; struct Sprite *sprite; sub_80930E0((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8); - spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_17], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); + spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_UNUSED_GRASS], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); if (spriteId != MAX_SPRITES) { sprite = &gSprites[spriteId]; sprite->coordOffsetEnabled = TRUE; sprite->oam.priority = gFieldEffectArguments[3]; - sprite->data[0] = FLDEFF_UNKNOWN_19; + sprite->data[0] = FLDEFF_UNUSED_GRASS; } return 0; } @@ -834,19 +834,19 @@ u32 FldEff_UnusedGrass2(void) return 0; } -u32 FldEff_Unknown21(void) +u32 FldEff_UnusedSand(void) { u8 spriteId; struct Sprite *sprite; sub_80930E0((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8); - spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_19], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); + spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_UNUSED_SAND], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); if (spriteId != MAX_SPRITES) { sprite = &gSprites[spriteId]; sprite->coordOffsetEnabled = TRUE; sprite->oam.priority = gFieldEffectArguments[3]; - sprite->data[0] = FLDEFF_UNKNOWN_21; + sprite->data[0] = FLDEFF_UNUSED_SAND; } return 0; } @@ -1115,7 +1115,7 @@ u32 FldEff_Dust(void) sprite->coordOffsetEnabled = TRUE; sprite->oam.priority = gFieldEffectArguments[3]; sprite->data[0] = gFieldEffectArguments[2]; - sprite->data[1] = 10; + sprite->data[1] = FLDEFF_DUST; } return 0; } diff --git a/src/field_screen_effect.c b/src/field_screen_effect.c index e14efce677..7727f4ac12 100644 --- a/src/field_screen_effect.c +++ b/src/field_screen_effect.c @@ -36,11 +36,9 @@ #include "fldeff.h" // This file's functions. -static void sub_8080B9C(u8); static void Task_ExitNonAnimDoor(u8); static void Task_ExitNonDoor(u8); static void Task_DoContestHallWarp(u8); -static void sub_808115C(u8); static void FillPalBufferWhite(void); static void Task_ExitDoor(u8); static bool32 WaitForWeatherFadeIn(void); diff --git a/src/field_special_scene.c b/src/field_special_scene.c index e19e31361c..df45af0975 100644 --- a/src/field_special_scene.c +++ b/src/field_special_scene.c @@ -74,11 +74,11 @@ void Task_Truck1(u8 taskId) s16 box1, box2, box3; box1 = GetTruckBoxMovement(data[0] + 30) * 4; // top box. - sub_808E82C(1, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, 3 - cameraXpan, box1 + 3); + SetObjectEventSpritePosByLocalIdAndMap(1, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, 3 - cameraXpan, box1 + 3); box2 = GetTruckBoxMovement(data[0]) * 2; // bottom left box. - sub_808E82C(2, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, -cameraXpan, box2 - 3); + SetObjectEventSpritePosByLocalIdAndMap(2, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, -cameraXpan, box2 - 3); box3 = GetTruckBoxMovement(data[0]) * 4; // bottom right box. - sub_808E82C(3, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, -3 - cameraXpan, box3); + SetObjectEventSpritePosByLocalIdAndMap(3, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, -3 - cameraXpan, box3); if (++data[0] == SECONDS(500)) // this will never run data[0] = 0; // reset the timer if it gets stuck. @@ -117,11 +117,11 @@ void Task_Truck2(u8 taskId) cameraYpan = GetTruckCameraBobbingY(data[2]); SetCameraPanning(cameraXpan, cameraYpan); box1 = GetTruckBoxMovement(data[2] + 30) * 4; - sub_808E82C(1, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, 3 - cameraXpan, box1 + 3); + SetObjectEventSpritePosByLocalIdAndMap(1, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, 3 - cameraXpan, box1 + 3); box2 = GetTruckBoxMovement(data[2]) * 2; - sub_808E82C(2, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, -cameraXpan, box2 - 3); + SetObjectEventSpritePosByLocalIdAndMap(2, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, -cameraXpan, box2 - 3); box3 = GetTruckBoxMovement(data[2]) * 4; - sub_808E82C(3, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, -3 - cameraXpan, box3); + SetObjectEventSpritePosByLocalIdAndMap(3, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, -3 - cameraXpan, box3); } } @@ -148,9 +148,9 @@ static void Task_Truck3(u8 taskId) cameraXpan = gTruckCamera_HorizontalTable[data[1]]; cameraYpan = 0; SetCameraPanning(cameraXpan, 0); - sub_808E82C(1, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, 3 - cameraXpan, cameraYpan + 3); - sub_808E82C(2, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, -cameraXpan, cameraYpan - 3); - sub_808E82C(3, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, -3 - cameraXpan, cameraYpan); + SetObjectEventSpritePosByLocalIdAndMap(1, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, 3 - cameraXpan, cameraYpan + 3); + SetObjectEventSpritePosByLocalIdAndMap(2, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, -cameraXpan, cameraYpan - 3); + SetObjectEventSpritePosByLocalIdAndMap(3, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, -3 - cameraXpan, cameraYpan); } } @@ -243,9 +243,9 @@ void EndTruckSequence(u8 taskId) { if (!FuncIsActiveTask(Task_HandleTruckSequence)) { - sub_808E82C(1, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, 3, 3); - sub_808E82C(2, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, 0, -3); - sub_808E82C(3, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, -3, 0); + SetObjectEventSpritePosByLocalIdAndMap(1, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, 3, 3); + SetObjectEventSpritePosByLocalIdAndMap(2, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, 0, -3); + SetObjectEventSpritePosByLocalIdAndMap(3, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, -3, 0); } } diff --git a/src/fldeff_cut.c b/src/fldeff_cut.c index efd533d083..34868342fb 100644 --- a/src/fldeff_cut.c +++ b/src/fldeff_cut.c @@ -1,6 +1,7 @@ #include "global.h" #include "event_object_lock.h" #include "event_object_movement.h" +#include "event_scripts.h" #include "faraway_island.h" #include "field_camera.h" #include "field_effect.h" @@ -24,11 +25,10 @@ extern struct MapPosition gPlayerFacingPosition; -extern const u8 EventScript_FldEffCut[]; extern const u8 FarawayIsland_Interior_EventScript_HideMewWhenGrassCut[]; extern const u8 gFieldEffectPic_CutGrass[]; -extern const u16 gFieldEffectObjectPalette6[]; +extern const u16 gFieldEffectPal_CutGrass[]; // cut 'square' defines #define CUT_NORMAL_SIDE 3 @@ -122,12 +122,12 @@ static const struct SpriteFrameImage sSpriteImageTable_CutGrass[] = {gFieldEffectPic_CutGrass, 0x20}, }; -const struct SpritePalette gFieldEffectObjectPaletteInfo6 = {gFieldEffectObjectPalette6, FLDEFF_PAL_TAG_0}; +const struct SpritePalette gSpritePalette_CutGrass = {gFieldEffectPal_CutGrass, FLDEFF_PAL_TAG_CUT_GRASS}; static const struct SpriteTemplate sSpriteTemplate_CutGrass = { .tileTag = 0xFFFF, - .paletteTag = FLDEFF_PAL_TAG_0, + .paletteTag = FLDEFF_PAL_TAG_CUT_GRASS, .oam = &sOamData_CutGrass, .anims = sSpriteAnimTable_CutGrass, .images = sSpriteImageTable_CutGrass, @@ -292,7 +292,7 @@ bool8 FldEff_UseCutOnGrass(void) static void FieldCallback_CutTree(void) { gFieldEffectArguments[0] = GetCursorSelectionMonId(); - ScriptContext1_SetupScript(EventScript_FldEffCut); + ScriptContext1_SetupScript(EventScript_UseCut); } bool8 FldEff_UseCutOnTree(void) diff --git a/src/fldeff_dig.c b/src/fldeff_dig.c index 322758a421..c3ab989cd8 100644 --- a/src/fldeff_dig.c +++ b/src/fldeff_dig.c @@ -10,8 +10,8 @@ #include "constants/field_effects.h" // static functions -static void hm2_dig(void); -static void sub_8135780(void); +static void FieldCallback_Dig(void); +static void StartDigFieldEffect(void); // text bool8 SetUpFieldMove_Dig(void) @@ -19,7 +19,7 @@ bool8 SetUpFieldMove_Dig(void) if (CanUseDigOrEscapeRopeOnCurMap() == TRUE) { gFieldCallback2 = FieldCallback_PrepareFadeInFromMenu; - gPostMenuFieldCallback = hm2_dig; + gPostMenuFieldCallback = FieldCallback_Dig; return TRUE; } else @@ -28,7 +28,7 @@ bool8 SetUpFieldMove_Dig(void) } } -static void hm2_dig(void) +static void FieldCallback_Dig(void) { Overworld_ResetStateAfterDigEscRope(); FieldEffectStart(FLDEFF_USE_DIG); @@ -39,14 +39,14 @@ bool8 FldEff_UseDig(void) { u8 taskId = CreateFieldMoveTask(); - gTasks[taskId].data[8] = (u32)sub_8135780 >> 16; - gTasks[taskId].data[9] = (u32)sub_8135780; + gTasks[taskId].data[8] = (u32)StartDigFieldEffect >> 16; + gTasks[taskId].data[9] = (u32)StartDigFieldEffect; if (!ShouldDoBrailleDigEffect()) SetPlayerAvatarTransitionFlags(PLAYER_AVATAR_FLAG_ON_FOOT); return FALSE; } -static void sub_8135780(void) +static void StartDigFieldEffect(void) { u8 taskId; diff --git a/src/fldeff_flash.c b/src/fldeff_flash.c index d10635a561..2d25928b8a 100644 --- a/src/fldeff_flash.c +++ b/src/fldeff_flash.c @@ -106,7 +106,7 @@ static void FldEff_UseFlash(void) { PlaySE(SE_W115); FlagSet(FLAG_SYS_USE_FLASH); - ScriptContext1_SetupScript(EventScript_FldEffFlash); + ScriptContext1_SetupScript(EventScript_UseFlash); } static void CB2_ChangeMapMain(void) diff --git a/src/fldeff_misc.c b/src/fldeff_misc.c index 50feaf3686..6160cae36d 100644 --- a/src/fldeff_misc.c +++ b/src/fldeff_misc.c @@ -65,12 +65,12 @@ static void SpriteCB_SandPillar_End(struct Sprite *); static const u8 sSecretPowerCave_Gfx[] = INCBIN_U8("graphics/field_effects/pics/secret_power_cave.4bpp"); static const u8 sFiller[32] = {0}; -static const u16 sSecretPowerCave_Pal[] = INCBIN_U16("graphics/field_effects/palettes/07.gbapal"); +static const u16 sSecretPowerCave_Pal[] = INCBIN_U16("graphics/field_effects/palettes/secret_power_cave.gbapal"); static const u8 sSecretPowerShrub_Gfx[] = INCBIN_U8("graphics/field_effects/pics/secret_power_shrub.4bpp"); static const u8 sSecretPowerTree_Gfx[] = INCBIN_U8("graphics/field_effects/pics/secret_power_tree.4bpp"); -static const u16 sSecretPowerPlant_Pal[] = INCBIN_U16("graphics/field_effects/palettes/08.gbapal"); +static const u16 sSecretPowerPlant_Pal[] = INCBIN_U16("graphics/field_effects/palettes/secret_power_plant.gbapal"); -// TODO: These should also be combined into a single image +// TODO: These should also be combined into a single image, not matching for some reason static const u8 sSandPillar0_Gfx[] = INCBIN_U8("graphics/field_effects/pics/sand_pillar/0.4bpp"); static const u8 sSandPillar1_Gfx[] = INCBIN_U8("graphics/field_effects/pics/sand_pillar/1.4bpp"); static const u8 sSandPillar2_Gfx[] = INCBIN_U8("graphics/field_effects/pics/sand_pillar/2.4bpp"); @@ -196,7 +196,7 @@ static const struct SpriteFrameImage sPicTable_SecretPowerShrub[] = static const struct SpriteTemplate sSpriteTemplate_SecretPowerCave = { .tileTag = 0xFFFF, - .paletteTag = FLDEFF_PAL_TAG_3, + .paletteTag = FLDEFF_PAL_TAG_SECRET_POWER_TREE, .oam = &sOam_SecretPower, .anims = sAnimTable_SecretPowerCave, .images = sPicTable_SecretPowerCave, @@ -207,7 +207,7 @@ static const struct SpriteTemplate sSpriteTemplate_SecretPowerCave = static const struct SpriteTemplate sSpriteTemplate_SecretPowerTree = { .tileTag = 0xFFFF, - .paletteTag = FLDEFF_PAL_TAG_8, + .paletteTag = FLDEFF_PAL_TAG_SECRET_POWER_PLANT, .oam = &sOam_SecretPower, .anims = sAnimTable_SecretPowerTree, .images = sPicTable_SecretPowerTree, @@ -218,7 +218,7 @@ static const struct SpriteTemplate sSpriteTemplate_SecretPowerTree = static const struct SpriteTemplate sSpriteTemplate_SecretPowerShrub = { .tileTag = 0xFFFF, - .paletteTag = FLDEFF_PAL_TAG_8, + .paletteTag = FLDEFF_PAL_TAG_SECRET_POWER_PLANT, .oam = &sOam_SecretPower, .anims = sAnimTable_SecretPowerShrub, .images = sPicTable_SecretPowerShrub, @@ -226,8 +226,8 @@ static const struct SpriteTemplate sSpriteTemplate_SecretPowerShrub = .callback = SpriteCB_ShrubEntranceInit, }; -const struct SpritePalette gSpritePalette_SecretPower_Cave = {sSecretPowerCave_Pal, FLDEFF_PAL_TAG_3}; -const struct SpritePalette gSpritePalette_SecretPower_Plant = {sSecretPowerPlant_Pal, FLDEFF_PAL_TAG_8}; +const struct SpritePalette gSpritePalette_SecretPower_Cave = {sSecretPowerCave_Pal, FLDEFF_PAL_TAG_SECRET_POWER_TREE}; +const struct SpritePalette gSpritePalette_SecretPower_Plant = {sSecretPowerPlant_Pal, FLDEFF_PAL_TAG_SECRET_POWER_PLANT}; static const struct OamData sOam_SandPillar = { @@ -256,15 +256,15 @@ static const union AnimCmd *const sAnimTable_SandPillar[] = static const struct SpriteFrameImage sPicTable_SandPillar[] = { - {sSandPillar0_Gfx, 0x100}, - {sSandPillar1_Gfx, 0x100}, - {sSandPillar2_Gfx, 0x100}, + {sSandPillar0_Gfx, sizeof(sSandPillar0_Gfx)}, + {sSandPillar1_Gfx, sizeof(sSandPillar1_Gfx)}, + {sSandPillar2_Gfx, sizeof(sSandPillar2_Gfx)}, }; static const struct SpriteTemplate sSpriteTemplate_SandPillar = { .tileTag = 0xFFFF, - .paletteTag = FLDEFF_PAL_TAG_14, + .paletteTag = FLDEFF_PAL_TAG_SAND_PILLAR, .oam = &sOam_SandPillar, .anims = sAnimTable_SandPillar, .images = sPicTable_SandPillar, @@ -272,8 +272,7 @@ static const struct SpriteTemplate sSpriteTemplate_SandPillar = .callback = SpriteCB_SandPillar_BreakTop, }; -// This uses one of the secret base palettes, so there is no "graphics/field_effects/palettes/09.pal" file. -const struct SpritePalette gSpritePalette_SandPillar = {gTilesetPalettes_SecretBase[5], FLDEFF_PAL_TAG_14}; +const struct SpritePalette gSpritePalette_SandPillar = {gTilesetPalettes_SecretBase[5], FLDEFF_PAL_TAG_SAND_PILLAR}; static const u8 sRecordMixLights_Gfx[] = INCBIN_U8("graphics/field_effects/pics/record_mix_lights.4bpp"); static const u16 sRecordMixLights_Pal[] = INCBIN_U16("graphics/field_effects/palettes/record_mix_lights.gbapal"); @@ -285,7 +284,7 @@ static const struct SpriteFrameImage sPicTable_RecordMixLights[] = overworld_frame(sRecordMixLights_Gfx, 4, 1, 2), }; -static const struct SpritePalette sSpritePalette_RecordMixLights = {sRecordMixLights_Pal, FLDEFF_PAL_TAG_0}; +static const struct SpritePalette sSpritePalette_RecordMixLights = {sRecordMixLights_Pal, 0x1000}; static const union AnimCmd sAnim_RecordMixLights[] = { @@ -303,7 +302,7 @@ static const union AnimCmd *const sAnimTable_RecordMixLights[] = static const struct SpriteTemplate sSpriteTemplate_RecordMixLights = { .tileTag = 0xFFFF, - .paletteTag = FLDEFF_PAL_TAG_0, + .paletteTag = 0x1000, .oam = &gObjectEventBaseOam_32x8, .anims = sAnimTable_RecordMixLights, .images = sPicTable_RecordMixLights, diff --git a/src/fldeff_rocksmash.c b/src/fldeff_rocksmash.c index ec8e64012a..0c35ec74ed 100644 --- a/src/fldeff_rocksmash.c +++ b/src/fldeff_rocksmash.c @@ -146,7 +146,7 @@ bool8 SetUpFieldMove_RockSmash(void) static void FieldCallback_RockSmash(void) { gFieldEffectArguments[0] = GetCursorSelectionMonId(); - ScriptContext1_SetupScript(EventScript_RockSmashFromPartyMenu); + ScriptContext1_SetupScript(EventScript_UseRockSmash); } bool8 FldEff_UseRockSmash(void) diff --git a/src/fldeff_strength.c b/src/fldeff_strength.c index 800e458212..61960d0ffc 100644 --- a/src/fldeff_strength.c +++ b/src/fldeff_strength.c @@ -11,8 +11,8 @@ #include "constants/field_effects.h" // static functions -static void FldEff_UseStrength(void); -static void sub_8145E74(void); +static void FieldCallback_Strength(void); +static void StartStrengthFieldEffect(void); // text bool8 SetUpFieldMove_Strength(void) @@ -21,28 +21,29 @@ bool8 SetUpFieldMove_Strength(void) { gSpecialVar_Result = GetCursorSelectionMonId(); gFieldCallback2 = FieldCallback_PrepareFadeInFromMenu; - gPostMenuFieldCallback = FldEff_UseStrength; + gPostMenuFieldCallback = FieldCallback_Strength; return TRUE; } return FALSE; } -static void FldEff_UseStrength(void) +static void FieldCallback_Strength(void) { gFieldEffectArguments[0] = GetCursorSelectionMonId(); - ScriptContext1_SetupScript(EventScript_FldEffStrength); + ScriptContext1_SetupScript(EventScript_UseStrength); } -bool8 sub_8145E2C(void) +bool8 FldEff_UseStrength(void) { u8 taskId = CreateFieldMoveTask(); - gTasks[taskId].data[8] = (u32)sub_8145E74 >> 16; - gTasks[taskId].data[9] = (u32)sub_8145E74; + gTasks[taskId].data[8] = (u32)StartStrengthFieldEffect >> 16; + gTasks[taskId].data[9] = (u32)StartStrengthFieldEffect; GetMonNickname(&gPlayerParty[gFieldEffectArguments[0]], gStringVar1); return FALSE; } -static void sub_8145E74(void) +// Just passes control back to EventScript_UseStrength +static void StartStrengthFieldEffect(void) { FieldEffectActiveListRemove(FLDEFF_USE_STRENGTH); EnableBothScriptContexts(); From c0bc7e8f7b94ebab1e39b761aa194630e4c7bf6b Mon Sep 17 00:00:00 2001 From: GriffinR Date: Mon, 6 Jul 2020 16:02:49 -0400 Subject: [PATCH 008/101] Fix elevator metatile typo --- include/constants/metatile_labels.h | 50 ++++++++++----------- src/fldeff_escalator.c | 70 ++++++++++++++--------------- 2 files changed, 60 insertions(+), 60 deletions(-) diff --git a/include/constants/metatile_labels.h b/include/constants/metatile_labels.h index 5861076872..f7405f46a2 100644 --- a/include/constants/metatile_labels.h +++ b/include/constants/metatile_labels.h @@ -289,31 +289,31 @@ #define METATILE_EverGrande_Door_PokemonLeague 0x21D // gTileset_PokemonCenter -#define METATILE_PokemonCenter_Elevator1F_Tile0_Frame0 0x280 -#define METATILE_PokemonCenter_Elevator1F_Tile0_Frame1 0x282 -#define METATILE_PokemonCenter_Elevator1F_Tile0_Frame2 0x284 -#define METATILE_PokemonCenter_Elevator1F_Tile1_Frame0 0x281 -#define METATILE_PokemonCenter_Elevator1F_Tile1_Frame1 0x283 -#define METATILE_PokemonCenter_Elevator1F_Tile1_Frame2 0x285 -#define METATILE_PokemonCenter_Elevator1F_Tile2_Frame0 0x288 -#define METATILE_PokemonCenter_Elevator1F_Tile2_Frame1 0x28A -#define METATILE_PokemonCenter_Elevator1F_Tile2_Frame2 0x28C -#define METATILE_PokemonCenter_Elevator1F_Tile3_Frame0 0x289 -#define METATILE_PokemonCenter_Elevator1F_Tile3_Frame1 0x28B -#define METATILE_PokemonCenter_Elevator1F_Tile3_Frame2 0x28D -#define METATILE_PokemonCenter_Elevator2F_Tile0_Frame0 0x2A0 -#define METATILE_PokemonCenter_Elevator2F_Tile0_Frame1 0x2A2 -#define METATILE_PokemonCenter_Elevator2F_Tile0_Frame2 0x2A4 -#define METATILE_PokemonCenter_Elevator2F_Tile1_Frame0 0x2A1 -#define METATILE_PokemonCenter_Elevator2F_Tile1_Frame1 0x2A3 -#define METATILE_PokemonCenter_Elevator2F_Tile1_Frame2 0x2A5 -#define METATILE_PokemonCenter_Elevator2F_Tile2_Frame0 0x2A8 -#define METATILE_PokemonCenter_Elevator2F_Tile2_Frame1 0x2AA -#define METATILE_PokemonCenter_Elevator2F_Tile2_Frame2 0x2AC -#define METATILE_PokemonCenter_Floor_ShadowTop_Alt 0x2DC -#define METATILE_PokemonCenter_Floor_Plain_Alt 0x2E4 -#define METATILE_PokemonCenter_Floor_ShadowTop 0x21E -#define METATILE_PokemonCenter_CounterBarrier 0x25D +#define METATILE_PokemonCenter_Escalator1F_Tile0_Frame0 0x280 +#define METATILE_PokemonCenter_Escalator1F_Tile0_Frame1 0x282 +#define METATILE_PokemonCenter_Escalator1F_Tile0_Frame2 0x284 +#define METATILE_PokemonCenter_Escalator1F_Tile1_Frame0 0x281 +#define METATILE_PokemonCenter_Escalator1F_Tile1_Frame1 0x283 +#define METATILE_PokemonCenter_Escalator1F_Tile1_Frame2 0x285 +#define METATILE_PokemonCenter_Escalator1F_Tile2_Frame0 0x288 +#define METATILE_PokemonCenter_Escalator1F_Tile2_Frame1 0x28A +#define METATILE_PokemonCenter_Escalator1F_Tile2_Frame2 0x28C +#define METATILE_PokemonCenter_Escalator1F_Tile3_Frame0 0x289 +#define METATILE_PokemonCenter_Escalator1F_Tile3_Frame1 0x28B +#define METATILE_PokemonCenter_Escalator1F_Tile3_Frame2 0x28D +#define METATILE_PokemonCenter_Escalator2F_Tile0_Frame0 0x2A0 +#define METATILE_PokemonCenter_Escalator2F_Tile0_Frame1 0x2A2 +#define METATILE_PokemonCenter_Escalator2F_Tile0_Frame2 0x2A4 +#define METATILE_PokemonCenter_Escalator2F_Tile1_Frame0 0x2A1 +#define METATILE_PokemonCenter_Escalator2F_Tile1_Frame1 0x2A3 +#define METATILE_PokemonCenter_Escalator2F_Tile1_Frame2 0x2A5 +#define METATILE_PokemonCenter_Escalator2F_Tile2_Frame0 0x2A8 +#define METATILE_PokemonCenter_Escalator2F_Tile2_Frame1 0x2AA +#define METATILE_PokemonCenter_Escalator2F_Tile2_Frame2 0x2AC +#define METATILE_PokemonCenter_Floor_ShadowTop_Alt 0x2DC +#define METATILE_PokemonCenter_Floor_Plain_Alt 0x2E4 +#define METATILE_PokemonCenter_Floor_ShadowTop 0x21E +#define METATILE_PokemonCenter_CounterBarrier 0x25D // gTileset_InsideOfTruck #define METATILE_InsideOfTruck_ExitLight_Top 0x208 diff --git a/src/fldeff_escalator.c b/src/fldeff_escalator.c index 13edda57d2..7a96eaa828 100644 --- a/src/fldeff_escalator.c +++ b/src/fldeff_escalator.c @@ -16,46 +16,46 @@ static void Task_DrawTeleporterCable(u8 taskId); #define ESCALATOR_STAGES 3 #define LAST_ESCALATOR_STAGE (ESCALATOR_STAGES - 1) -static const u16 sElevatorMetatiles_1F_0[ESCALATOR_STAGES] = { - METATILE_PokemonCenter_Elevator1F_Tile0_Frame2, - METATILE_PokemonCenter_Elevator1F_Tile0_Frame1, - METATILE_PokemonCenter_Elevator1F_Tile0_Frame0 +static const u16 sEscalatorMetatiles_1F_0[ESCALATOR_STAGES] = { + METATILE_PokemonCenter_Escalator1F_Tile0_Frame2, + METATILE_PokemonCenter_Escalator1F_Tile0_Frame1, + METATILE_PokemonCenter_Escalator1F_Tile0_Frame0 }; -static const u16 sElevatorMetatiles_1F_1[ESCALATOR_STAGES] = { - METATILE_PokemonCenter_Elevator1F_Tile1_Frame2, - METATILE_PokemonCenter_Elevator1F_Tile1_Frame1, - METATILE_PokemonCenter_Elevator1F_Tile1_Frame0 +static const u16 sEscalatorMetatiles_1F_1[ESCALATOR_STAGES] = { + METATILE_PokemonCenter_Escalator1F_Tile1_Frame2, + METATILE_PokemonCenter_Escalator1F_Tile1_Frame1, + METATILE_PokemonCenter_Escalator1F_Tile1_Frame0 }; -static const u16 sElevatorMetatiles_1F_2[ESCALATOR_STAGES] = { - METATILE_PokemonCenter_Elevator1F_Tile2_Frame2, - METATILE_PokemonCenter_Elevator1F_Tile2_Frame1, - METATILE_PokemonCenter_Elevator1F_Tile2_Frame0 +static const u16 sEscalatorMetatiles_1F_2[ESCALATOR_STAGES] = { + METATILE_PokemonCenter_Escalator1F_Tile2_Frame2, + METATILE_PokemonCenter_Escalator1F_Tile2_Frame1, + METATILE_PokemonCenter_Escalator1F_Tile2_Frame0 }; -static const u16 sElevatorMetatiles_1F_3[ESCALATOR_STAGES] = { - METATILE_PokemonCenter_Elevator1F_Tile3_Frame2, - METATILE_PokemonCenter_Elevator1F_Tile3_Frame1, - METATILE_PokemonCenter_Elevator1F_Tile3_Frame0 +static const u16 sEscalatorMetatiles_1F_3[ESCALATOR_STAGES] = { + METATILE_PokemonCenter_Escalator1F_Tile3_Frame2, + METATILE_PokemonCenter_Escalator1F_Tile3_Frame1, + METATILE_PokemonCenter_Escalator1F_Tile3_Frame0 }; -static const u16 sElevatorMetatiles_2F_0[ESCALATOR_STAGES] = { - METATILE_PokemonCenter_Elevator2F_Tile0_Frame0, - METATILE_PokemonCenter_Elevator2F_Tile0_Frame1, - METATILE_PokemonCenter_Elevator2F_Tile0_Frame2 +static const u16 sEscalatorMetatiles_2F_0[ESCALATOR_STAGES] = { + METATILE_PokemonCenter_Escalator2F_Tile0_Frame0, + METATILE_PokemonCenter_Escalator2F_Tile0_Frame1, + METATILE_PokemonCenter_Escalator2F_Tile0_Frame2 }; -static const u16 sElevatorMetatiles_2F_1[ESCALATOR_STAGES] = { - METATILE_PokemonCenter_Elevator2F_Tile1_Frame0, - METATILE_PokemonCenter_Elevator2F_Tile1_Frame1, - METATILE_PokemonCenter_Elevator2F_Tile1_Frame2 +static const u16 sEscalatorMetatiles_2F_1[ESCALATOR_STAGES] = { + METATILE_PokemonCenter_Escalator2F_Tile1_Frame0, + METATILE_PokemonCenter_Escalator2F_Tile1_Frame1, + METATILE_PokemonCenter_Escalator2F_Tile1_Frame2 }; -static const u16 sElevatorMetatiles_2F_2[ESCALATOR_STAGES] = { - METATILE_PokemonCenter_Elevator2F_Tile2_Frame0, - METATILE_PokemonCenter_Elevator2F_Tile2_Frame1, - METATILE_PokemonCenter_Elevator2F_Tile2_Frame2 +static const u16 sEscalatorMetatiles_2F_2[ESCALATOR_STAGES] = { + METATILE_PokemonCenter_Escalator2F_Tile2_Frame0, + METATILE_PokemonCenter_Escalator2F_Tile2_Frame1, + METATILE_PokemonCenter_Escalator2F_Tile2_Frame2 }; #define tState data[0] @@ -122,25 +122,25 @@ static void Task_DrawEscalator(u8 taskId) switch (tState) { case 0: - SetEscalatorMetatile(taskId, sElevatorMetatiles_1F_0, 0); + SetEscalatorMetatile(taskId, sEscalatorMetatiles_1F_0, 0); break; case 1: - SetEscalatorMetatile(taskId, sElevatorMetatiles_1F_1, 0); + SetEscalatorMetatile(taskId, sEscalatorMetatiles_1F_1, 0); break; case 2: - SetEscalatorMetatile(taskId, sElevatorMetatiles_1F_2, METATILE_COLLISION_MASK); + SetEscalatorMetatile(taskId, sEscalatorMetatiles_1F_2, METATILE_COLLISION_MASK); break; case 3: - SetEscalatorMetatile(taskId, sElevatorMetatiles_1F_3, 0); + SetEscalatorMetatile(taskId, sEscalatorMetatiles_1F_3, 0); break; case 4: - SetEscalatorMetatile(taskId, sElevatorMetatiles_2F_0, METATILE_COLLISION_MASK); + SetEscalatorMetatile(taskId, sEscalatorMetatiles_2F_0, METATILE_COLLISION_MASK); break; case 5: - SetEscalatorMetatile(taskId, sElevatorMetatiles_2F_1, 0); + SetEscalatorMetatile(taskId, sEscalatorMetatiles_2F_1, 0); break; case 6: - SetEscalatorMetatile(taskId, sElevatorMetatiles_2F_2, 0); + SetEscalatorMetatile(taskId, sEscalatorMetatiles_2F_2, 0); break; } From a4e47f12012ef249d8fe25f5e2f391f3dd0a871f Mon Sep 17 00:00:00 2001 From: GriffinR Date: Tue, 21 Jul 2020 13:29:51 -0400 Subject: [PATCH 009/101] Clean some battle_message.c data --- data/battle_scripts_1.s | 18 +++--- data/battle_scripts_2.s | 36 ++++++------ src/battle_message.c | 127 ++++++++++++++++++++++++++-------------- 3 files changed, 111 insertions(+), 70 deletions(-) diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index 3db9f28ffe..273b3d028f 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -798,7 +798,7 @@ BattleScript_KOFail:: BattleScript_EffectRazorWind:: jumpifstatus2 BS_ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_TwoTurnMovesSecondTurn jumpifword CMP_COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_TwoTurnMovesSecondTurn - setbyte sTWOTURN_STRINGID, 0x0 + setbyte sTWOTURN_STRINGID, 0 call BattleScriptFirstChargingTurn goto BattleScript_MoveEnd @@ -1084,7 +1084,7 @@ BattleScript_EffectAccuracyDownHit:: BattleScript_EffectSkyAttack:: jumpifstatus2 BS_ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_TwoTurnMovesSecondTurn jumpifword CMP_COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_TwoTurnMovesSecondTurn - setbyte sTWOTURN_STRINGID, 0x3 + setbyte sTWOTURN_STRINGID, 3 call BattleScriptFirstChargingTurn goto BattleScript_MoveEnd @@ -1831,7 +1831,7 @@ BattleScript_EffectMirrorCoat:: BattleScript_EffectSkullBash:: jumpifstatus2 BS_ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_TwoTurnMovesSecondTurn jumpifword CMP_COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_TwoTurnMovesSecondTurn - setbyte sTWOTURN_STRINGID, 0x2 + setbyte sTWOTURN_STRINGID, 2 call BattleScriptFirstChargingTurn setstatchanger STAT_DEF, 1, FALSE statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_SkullBashEnd @@ -1927,7 +1927,7 @@ BattleScript_EffectSolarbeam:: BattleScript_SolarbeamDecideTurn:: jumpifstatus2 BS_ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_TwoTurnMovesSecondTurn jumpifword CMP_COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_TwoTurnMovesSecondTurn - setbyte sTWOTURN_STRINGID, 0x1 + setbyte sTWOTURN_STRINGID, 1 call BattleScriptFirstChargingTurn goto BattleScript_MoveEnd BattleScript_SolarbeamOnFirstTurn:: @@ -1996,19 +1996,19 @@ BattleScript_EffectSemiInvulnerable:: jumpifmove MOVE_FLY, BattleScript_FirstTurnFly jumpifmove MOVE_DIVE, BattleScript_FirstTurnDive jumpifmove MOVE_BOUNCE, BattleScript_FirstTurnBounce - setbyte sTWOTURN_STRINGID, 0x5 + setbyte sTWOTURN_STRINGID, 5 goto BattleScript_FirstTurnSemiInvulnerable BattleScript_FirstTurnBounce:: - setbyte sTWOTURN_STRINGID, 0x7 + setbyte sTWOTURN_STRINGID, 7 goto BattleScript_FirstTurnSemiInvulnerable BattleScript_FirstTurnDive:: - setbyte sTWOTURN_STRINGID, 0x6 + setbyte sTWOTURN_STRINGID, 6 goto BattleScript_FirstTurnSemiInvulnerable BattleScript_FirstTurnFly:: - setbyte sTWOTURN_STRINGID, 0x4 + setbyte sTWOTURN_STRINGID, 4 BattleScript_FirstTurnSemiInvulnerable:: call BattleScriptFirstChargingTurn setsemiinvulnerablebit @@ -3252,7 +3252,7 @@ BattleScript_SunlightFaded:: end2 BattleScript_OverworldWeatherStarts:: - printfromtable gWeatherContinuesStringIds + printfromtable gWeatherStartsStringIds waitmessage 0x40 playanimation2 BS_ATTACKER, sB_ANIM_ARG1, NULL end3 diff --git a/data/battle_scripts_2.s b/data/battle_scripts_2.s index b74f557a7c..316b4df25b 100644 --- a/data/battle_scripts_2.s +++ b/data/battle_scripts_2.s @@ -13,28 +13,28 @@ .align 2 gBattlescriptsForBallThrow:: @ 82DBD08 - .4byte BattleScript_BallThrow - .4byte BattleScript_BallThrow - .4byte BattleScript_BallThrow - .4byte BattleScript_BallThrow - .4byte BattleScript_BallThrow - .4byte BattleScript_SafariBallThrow - .4byte BattleScript_BallThrow - .4byte BattleScript_BallThrow - .4byte BattleScript_BallThrow - .4byte BattleScript_BallThrow - .4byte BattleScript_BallThrow - .4byte BattleScript_BallThrow - .4byte BattleScript_BallThrow + .4byte BattleScript_BallThrow @ ITEM_NONE + .4byte BattleScript_BallThrow @ ITEM_MASTER_BALL + .4byte BattleScript_BallThrow @ ITEM_ULTRA_BALL + .4byte BattleScript_BallThrow @ ITEM_GREAT_BALL + .4byte BattleScript_BallThrow @ ITEM_POKE_BALL + .4byte BattleScript_SafariBallThrow @ ITEM_SAFARI_BALL + .4byte BattleScript_BallThrow @ ITEM_NET_BALL + .4byte BattleScript_BallThrow @ ITEM_DIVE_BALL + .4byte BattleScript_BallThrow @ ITEM_NEST_BALL + .4byte BattleScript_BallThrow @ ITEM_REPEAT_BALL + .4byte BattleScript_BallThrow @ ITEM_TIMER_BALL + .4byte BattleScript_BallThrow @ ITEM_LUXURY_BALL + .4byte BattleScript_BallThrow @ ITEM_PREMIER_BALL .align 2 gBattlescriptsForUsingItem:: @ 82DBD3C .4byte BattleScript_PlayerUsesItem - .4byte BattleScript_OpponentUsesHealItem - .4byte BattleScript_OpponentUsesHealItem - .4byte BattleScript_OpponentUsesStatusCureItem - .4byte BattleScript_OpponentUsesXItem - .4byte BattleScript_OpponentUsesGuardSpecs + .4byte BattleScript_OpponentUsesHealItem @ AI_ITEM_FULL_RESTORE + .4byte BattleScript_OpponentUsesHealItem @ AI_ITEM_HEAL_HP + .4byte BattleScript_OpponentUsesStatusCureItem @ AI_ITEM_CURE_CONDITION + .4byte BattleScript_OpponentUsesXItem @ AI_ITEM_X_STAT + .4byte BattleScript_OpponentUsesGuardSpecs @ AI_ITEM_GUARD_SPECS .align 2 gBattlescriptsForRunningByItem:: @ 82DBD54 diff --git a/src/battle_message.c b/src/battle_message.c index 2a0ba4ded3..cc43d1656e 100644 --- a/src/battle_message.c +++ b/src/battle_message.c @@ -19,12 +19,15 @@ #include "text.h" #include "trainer_hill.h" #include "window.h" +#include "constants/battle_dome.h" #include "constants/battle_string_ids.h" +#include "constants/berry.h" #include "constants/frontier_util.h" #include "constants/items.h" #include "constants/moves.h" #include "constants/trainers.h" #include "constants/trainer_hill.h" +#include "constants/weather.h" struct BattleWindowText { @@ -433,11 +436,16 @@ static const u8 sText_SpDef2[] = _("SP. DEF"); static const u8 sText_Accuracy[] = _("accuracy"); static const u8 sText_Evasiveness[] = _("evasiveness"); -const u8 * const gStatNamesTable[] = +const u8 * const gStatNamesTable[NUM_BATTLE_STATS] = { - sText_HP2, sText_Attack2, sText_Defense2, - sText_Speed, sText_SpAtk2, sText_SpDef2, - sText_Accuracy, sText_Evasiveness + [STAT_HP] = sText_HP2, + [STAT_ATK] = sText_Attack2, + [STAT_DEF] = sText_Defense2, + [STAT_SPEED] = sText_Speed, + [STAT_SPATK] = sText_SpAtk2, + [STAT_SPDEF] = sText_SpDef2, + [STAT_ACC] = sText_Accuracy, + [STAT_EVASION] = sText_Evasiveness }; static const u8 sText_PokeblockWasTooSpicy[] = _("was too spicy!"); @@ -446,11 +454,13 @@ static const u8 sText_PokeblockWasTooSweet[] = _("was too sweet!"); static const u8 sText_PokeblockWasTooBitter[] = _("was too bitter!"); static const u8 sText_PokeblockWasTooSour[] = _("was too sour!"); -const u8 * const gPokeblockWasTooXStringTable[] = +const u8 * const gPokeblockWasTooXStringTable[FLAVOR_COUNT] = { - sText_PokeblockWasTooSpicy, sText_PokeblockWasTooDry, - sText_PokeblockWasTooSweet, sText_PokeblockWasTooBitter, - sText_PokeblockWasTooSour + [FLAVOR_SPICY] = sText_PokeblockWasTooSpicy, + [FLAVOR_DRY] = sText_PokeblockWasTooDry, + [FLAVOR_SWEET] = sText_PokeblockWasTooSweet, + [FLAVOR_BITTER] = sText_PokeblockWasTooBitter, + [FLAVOR_SOUR] = sText_PokeblockWasTooSour }; static const u8 sText_PlayerUsedItem[] = _("{B_PLAYER_NAME} used\n{B_LAST_ITEM}!"); @@ -979,16 +989,28 @@ const u16 gStatDownStringIds[] = STRINGID_PKMNSSTATCHANGED3, STRINGID_PKMNSSTATCHANGED4, STRINGID_STATSWONTDECREASE, STRINGID_EMPTYSTRING3 }; +// Index read from sTWOTURN_STRINGID const u16 gFirstTurnOfTwoStringIds[] = { - STRINGID_PKMNWHIPPEDWHIRLWIND, STRINGID_PKMNTOOKSUNLIGHT, STRINGID_PKMNLOWEREDHEAD, STRINGID_PKMNISGLOWING, - STRINGID_PKMNFLEWHIGH, STRINGID_PKMNDUGHOLE, STRINGID_PKMNHIDUNDERWATER, STRINGID_PKMNSPRANGUP + STRINGID_PKMNWHIPPEDWHIRLWIND, // MOVE_RAZOR_WIND + STRINGID_PKMNTOOKSUNLIGHT, // MOVE_SOLAR_BEAM + STRINGID_PKMNLOWEREDHEAD, // MOVE_SKULL_BASH + STRINGID_PKMNISGLOWING, // MOVE_SKY_ATTACK + STRINGID_PKMNFLEWHIGH, // MOVE_FLY + STRINGID_PKMNDUGHOLE, // MOVE_DIG + STRINGID_PKMNHIDUNDERWATER, // MOVE_DIVE + STRINGID_PKMNSPRANGUP // MOVE_BOUNCE }; +// Index copied from move's index in gTrappingMoves const u16 gWrappedStringIds[] = { - STRINGID_PKMNSQUEEZEDBYBIND, STRINGID_PKMNWRAPPEDBY, STRINGID_PKMNTRAPPEDINVORTEX, - STRINGID_PKMNCLAMPED, STRINGID_PKMNTRAPPEDINVORTEX, STRINGID_PKMNTRAPPEDBYSANDTOMB + STRINGID_PKMNSQUEEZEDBYBIND, // MOVE_BIND + STRINGID_PKMNWRAPPEDBY, // MOVE_WRAP + STRINGID_PKMNTRAPPEDINVORTEX, // MOVE_FIRE_SPIN + STRINGID_PKMNCLAMPED, // MOVE_CLAMP + STRINGID_PKMNTRAPPEDINVORTEX, // MOVE_WHIRLPOOL + STRINGID_PKMNTRAPPEDBYSANDTOMB // MOVE_SAND_TOMB }; const u16 gMistUsedStringIds[] = @@ -1078,13 +1100,25 @@ const u16 gBallEscapeStringIds[] = STRINGID_PKMNBROKEFREE, STRINGID_ITAPPEAREDCAUGHT, STRINGID_AARGHALMOSTHADIT, STRINGID_SHOOTSOCLOSE }; -const u16 gWeatherContinuesStringIds[] = +// Overworld weathers that don't have an associated battle weather default to "It is raining." +const u16 gWeatherStartsStringIds[] = { - STRINGID_ITISRAINING, STRINGID_ITISRAINING, STRINGID_ITISRAINING, - STRINGID_ITISRAINING, STRINGID_ITISRAINING, STRINGID_ITISRAINING, - STRINGID_ITISRAINING, STRINGID_ITISRAINING, STRINGID_SANDSTORMISRAGING, - STRINGID_ITISRAINING, STRINGID_ITISRAINING, STRINGID_ITISRAINING, - STRINGID_SUNLIGHTSTRONG, STRINGID_ITISRAINING, STRINGID_ITISRAINING, STRINGID_ITISRAINING + [WEATHER_NONE] = STRINGID_ITISRAINING, + [WEATHER_SUNNY_CLOUDS] = STRINGID_ITISRAINING, + [WEATHER_SUNNY] = STRINGID_ITISRAINING, + [WEATHER_RAIN] = STRINGID_ITISRAINING, + [WEATHER_SNOW] = STRINGID_ITISRAINING, + [WEATHER_RAIN_THUNDERSTORM] = STRINGID_ITISRAINING, + [WEATHER_FOG_HORIZONTAL] = STRINGID_ITISRAINING, + [WEATHER_VOLCANIC_ASH] = STRINGID_ITISRAINING, + [WEATHER_SANDSTORM] = STRINGID_SANDSTORMISRAGING, + [WEATHER_FOG_DIAGONAL] = STRINGID_ITISRAINING, + [WEATHER_UNDERWATER] = STRINGID_ITISRAINING, + [WEATHER_SHADE] = STRINGID_ITISRAINING, + [WEATHER_DROUGHT] = STRINGID_SUNLIGHTSTRONG, + [WEATHER_DOWNPOUR] = STRINGID_ITISRAINING, + [WEATHER_UNDERWATER_BUBBLES] = STRINGID_ITISRAINING, + [WEATHER_ABNORMAL] = STRINGID_ITISRAINING }; const u16 gInobedientStringIds[] = @@ -1146,7 +1180,13 @@ const u16 gCaughtMonStringIds[] = const u16 gTrappingMoves[] = { - MOVE_BIND, MOVE_WRAP, MOVE_FIRE_SPIN, MOVE_CLAMP, MOVE_WHIRLPOOL, MOVE_SAND_TOMB, 0xFFFF + MOVE_BIND, + MOVE_WRAP, + MOVE_FIRE_SPIN, + MOVE_CLAMP, + MOVE_WHIRLPOOL, + MOVE_SAND_TOMB, + 0xFFFF }; const u8 gText_PkmnIsEvolving[] = _("What?\n{STR_VAR_1} is evolving!"); @@ -1207,26 +1247,27 @@ const u8 gText_Draw[] = _("{HIGHLIGHT TRANSPARENT}Draw"); static const u8 sText_SpaceIs[] = _(" is"); static const u8 sText_ApostropheS[] = _("'s"); -static const u8 sATypeMove_Table[][17] = +// For displaying names of invalid moves +static const u8 sATypeMove_Table[][NUMBER_OF_MON_TYPES - 1] = { - _("a NORMAL move"), - _("a FIGHTING move"), - _("a FLYING move"), - _("a POISON move"), - _("a GROUND move"), - _("a ROCK move"), - _("a BUG move"), - _("a GHOST move"), - _("a STEEL move"), - _("a ??? move"), - _("a FIRE move"), - _("a WATER move"), - _("a GRASS move"), - _("an ELECTRIC move"), - _("a PSYCHIC move"), - _("an ICE move"), - _("a DRAGON move"), - _("a DARK move") + [TYPE_NORMAL] = _("a NORMAL move"), + [TYPE_FIGHTING] = _("a FIGHTING move"), + [TYPE_FLYING] = _("a FLYING move"), + [TYPE_POISON] = _("a POISON move"), + [TYPE_GROUND] = _("a GROUND move"), + [TYPE_ROCK] = _("a ROCK move"), + [TYPE_BUG] = _("a BUG move"), + [TYPE_GHOST] = _("a GHOST move"), + [TYPE_STEEL] = _("a STEEL move"), + [TYPE_MYSTERY] = _("a ??? move"), + [TYPE_FIRE] = _("a FIRE move"), + [TYPE_WATER] = _("a WATER move"), + [TYPE_GRASS] = _("a GRASS move"), + [TYPE_ELECTRIC] = _("an ELECTRIC move"), + [TYPE_PSYCHIC] = _("a PSYCHIC move"), + [TYPE_ICE] = _("an ICE move"), + [TYPE_DRAGON] = _("a DRAGON move"), + [TYPE_DARK] = _("a DARK move") }; const u8 gText_BattleTourney[] = _("BATTLE TOURNEY"); @@ -1235,12 +1276,12 @@ static const u8 sText_Round2[] = _("Round 2"); static const u8 sText_Semifinal[] = _("Semifinal"); static const u8 sText_Final[] = _("Final"); -const u8 *const gRoundsStringTable[] = +const u8 *const gRoundsStringTable[DOME_ROUNDS_COUNT] = { - sText_Round1, - sText_Round2, - sText_Semifinal, - sText_Final + [DOME_ROUND1] = sText_Round1, + [DOME_ROUND2] = sText_Round2, + [DOME_SEMIFINAL] = sText_Semifinal, + [DOME_FINAL] = sText_Final }; const u8 gText_TheGreatNewHope[] = _("The great new hope!\p"); From 60ca1aa3fd4beaf7a4be7a61727ca832a4c489ef Mon Sep 17 00:00:00 2001 From: GriffinR Date: Thu, 23 Jul 2020 05:05:03 -0400 Subject: [PATCH 010/101] Restore tabs in field_effect_scripts.s --- data/field_effect_scripts.s | 416 ++++++++++++++++++------------------ 1 file changed, 208 insertions(+), 208 deletions(-) diff --git a/data/field_effect_scripts.s b/data/field_effect_scripts.s index 5c637615df..c57f19a040 100644 --- a/data/field_effect_scripts.s +++ b/data/field_effect_scripts.s @@ -1,345 +1,345 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" + .include "asm/macros.inc" + .include "constants/constants.inc" - .section script_data, "aw", %progbits + .section script_data, "aw", %progbits - .align 2 + .align 2 gFieldEffectScriptPointers:: @ 82DB9D4 - .4byte gFieldEffectScript_ExclamationMarkIcon1 @ FLDEFF_EXCLAMATION_MARK_ICON - .4byte gFieldEffectScript_UseCutOnTallGrass @ FLDEFF_USE_CUT_ON_GRASS - .4byte gFieldEffectScript_UseCutOnTree @ FLDEFF_USE_CUT_ON_TREE - .4byte gFieldEffectScript_Shadow @ FLDEFF_SHADOW - .4byte gFieldEffectScript_TallGrass @ FLDEFF_TALL_GRASS - .4byte gFieldEffectScript_Ripple @ FLDEFF_RIPPLE - .4byte gFieldEffectScript_FieldMoveShowMon @ FLDEFF_FIELD_MOVE_SHOW_MON - .4byte gFieldEffectScript_Ash @ FLDEFF_ASH - .4byte gFieldEffectScript_SurfBlob @ FLDEFF_SURF_BLOB - .4byte gFieldEffectScript_UseSurf @ FLDEFF_USE_SURF - .4byte gFieldEffectScript_GroundImpactDust @ FLDEFF_DUST - .4byte gFieldEffectScript_UseSecretPowerCave @ FLDEFF_USE_SECRET_POWER_CAVE - .4byte gFieldEffectScript_JumpTallGrass @ FLDEFF_JUMP_TALL_GRASS - .4byte gFieldEffectScript_SandFootprints @ FLDEFF_SAND_FOOTPRINTS - .4byte gFieldEffectScript_JumpBigSplash @ FLDEFF_JUMP_BIG_SPLASH - .4byte gFieldEffectScript_Splash @ FLDEFF_SPLASH - .4byte gFieldEffectScript_JumpSmallSplash @ FLDEFF_JUMP_SMALL_SPLASH - .4byte gFieldEffectScript_LongGrass @ FLDEFF_LONG_GRASS - .4byte gFieldEffectScript_JumpLongGrass @ FLDEFF_JUMP_LONG_GRASS - .4byte gFieldEffectScript_UnusedGrass @ FLDEFF_UNUSED_GRASS - .4byte gFieldEffectScript_UnusedGrass2 @ FLDEFF_UNUSED_GRASS_2 - .4byte gFieldEffectScript_UnusedSand @ FLDEFF_UNUSED_SAND - .4byte gFieldEffectScript_WaterSurfacing @ FLDEFF_WATER_SURFACING - .4byte gFieldEffectScript_BerryTreeGrowthSparkle @ FLDEFF_BERRY_TREE_GROWTH_SPARKLE - .4byte gFieldEffectScript_DeepSandFootprints @ FLDEFF_DEEP_SAND_FOOTPRINTS - .4byte gFieldEffectScript_PokeCenterHeal @ FLDEFF_POKECENTER_HEAL - .4byte gFieldEffectScript_UseSecretPowerTree @ FLDEFF_USE_SECRET_POWER_TREE - .4byte gFieldEffectScript_UseSecretPowerShrub @ FLDEFF_USE_SECRET_POWER_SHRUB - .4byte gFieldEffectScript_TreeDisguise @ FLDEFF_TREE_DISGUISE - .4byte gFieldEffectScript_MountainDisguise @ FLDEFF_MOUNTAIN_DISGUISE - .4byte gFieldEffectScript_NPCUseFly @ FLDEFF_NPCFLY_OUT - .4byte gFieldEffectScript_UseFly @ FLDEFF_USE_FLY - .4byte gFieldEffectScript_FlyIn @ FLDEFF_FLY_IN - .4byte gFieldEffectScript_QuestionMarkIcon @ FLDEFF_QUESTION_MARK_ICON - .4byte gFieldEffectScript_FeetInFlowingWater @ FLDEFF_FEET_IN_FLOWING_WATER - .4byte gFieldEffectScript_BikeTireTracks @ FLDEFF_BIKE_TIRE_TRACKS - .4byte gFieldEffectScript_SandDisguisePlaceholder @ FLDEFF_SAND_DISGUISE - .4byte gFieldEffectScript_UseRockSmash @ FLDEFF_USE_ROCK_SMASH - .4byte gFieldEffectScript_UseDig @ FLDEFF_USE_DIG - .4byte gFieldEffectScript_SandPile @ FLDEFF_SAND_PILE - .4byte gFieldEffectScript_UseStrength @ FLDEFF_USE_STRENGTH - .4byte gFieldEffectScript_ShortGrass @ FLDEFF_SHORT_GRASS - .4byte gFieldEffectScript_HotSpringsWater @ FLDEFF_HOT_SPRINGS_WATER - .4byte gFieldEffectScript_UseWaterfall @ FLDEFF_USE_WATERFALL - .4byte gFieldEffectScript_UseDive @ FLDEFF_USE_DIVE - .4byte gFieldEffectScript_Pokeball @ FLDEFF_POKEBALL - .4byte gFieldEffectScript_HeartIcon @ FLDEFF_HEART_ICON - .4byte gFieldEffectScript_Nop47 @ FLDEFF_NOP_47 - .4byte gFieldEffectScript_Nop48 @ FLDEFF_NOP_48 - .4byte gFieldEffectScript_AshPuff @ FLDEFF_ASH_PUFF - .4byte gFieldEffectScript_AshLaunch @ FLDEFF_ASH_LAUNCH - .4byte gFieldEffectScript_SweetScent @ FLDEFF_SWEET_SCENT - .4byte gFieldEffectScript_SandPillar @ FLDEFF_SAND_PILLAR - .4byte gFieldEffectScript_Bubbles @ FLDEFF_BUBBLES - .4byte gFieldEffectScript_Sparkle @ FLDEFF_SPARKLE - .4byte gFieldEffectScript_ShowSecretPowerCave @ FLDEFF_SECRET_POWER_CAVE - .4byte gFieldEffectScript_ShowSecretPowerTree @ FLDEFF_SECRET_POWER_TREE - .4byte gFieldEffectScript_ShowSecretPowerShrub @ FLDEFF_SECRET_POWER_SHRUB - .4byte gFieldEffectScript_ShowCutGrass @ FLDEFF_CUT_GRASS - .4byte gFieldEffectScript_FieldMoveShowMonInit @ FLDEFF_FIELD_MOVE_SHOW_MON_INIT - .4byte gFieldEffectScript_UsePuzzleEffect @ FLDEFF_USE_TOMB_PUZZLE_EFFECT - .4byte gFieldEffectScript_SecretBaseBootPC @ FLDEFF_PCTURN_ON - .4byte gFieldEffectScript_HallOfFameRecord @ FLDEFF_HALL_OF_FAME_RECORD - .4byte gFieldEffectScript_UseTeleport @ FLDEFF_USE_TELEPORT - .4byte gFieldEffectScript_RayquazaSpotlight @ FLDEFF_RAYQUAZA_SPOTLIGHT - .4byte gFieldEffectScript_DestroyDeoxysRock @ FLDEFF_DESTROY_DEOXYS_ROCK - .4byte gFieldEffectScript_MoveDeoxysRock @ FLDEFF_MOVE_DEOXYS_ROCK + .4byte gFieldEffectScript_ExclamationMarkIcon1 @ FLDEFF_EXCLAMATION_MARK_ICON + .4byte gFieldEffectScript_UseCutOnTallGrass @ FLDEFF_USE_CUT_ON_GRASS + .4byte gFieldEffectScript_UseCutOnTree @ FLDEFF_USE_CUT_ON_TREE + .4byte gFieldEffectScript_Shadow @ FLDEFF_SHADOW + .4byte gFieldEffectScript_TallGrass @ FLDEFF_TALL_GRASS + .4byte gFieldEffectScript_Ripple @ FLDEFF_RIPPLE + .4byte gFieldEffectScript_FieldMoveShowMon @ FLDEFF_FIELD_MOVE_SHOW_MON + .4byte gFieldEffectScript_Ash @ FLDEFF_ASH + .4byte gFieldEffectScript_SurfBlob @ FLDEFF_SURF_BLOB + .4byte gFieldEffectScript_UseSurf @ FLDEFF_USE_SURF + .4byte gFieldEffectScript_GroundImpactDust @ FLDEFF_DUST + .4byte gFieldEffectScript_UseSecretPowerCave @ FLDEFF_USE_SECRET_POWER_CAVE + .4byte gFieldEffectScript_JumpTallGrass @ FLDEFF_JUMP_TALL_GRASS + .4byte gFieldEffectScript_SandFootprints @ FLDEFF_SAND_FOOTPRINTS + .4byte gFieldEffectScript_JumpBigSplash @ FLDEFF_JUMP_BIG_SPLASH + .4byte gFieldEffectScript_Splash @ FLDEFF_SPLASH + .4byte gFieldEffectScript_JumpSmallSplash @ FLDEFF_JUMP_SMALL_SPLASH + .4byte gFieldEffectScript_LongGrass @ FLDEFF_LONG_GRASS + .4byte gFieldEffectScript_JumpLongGrass @ FLDEFF_JUMP_LONG_GRASS + .4byte gFieldEffectScript_UnusedGrass @ FLDEFF_UNUSED_GRASS + .4byte gFieldEffectScript_UnusedGrass2 @ FLDEFF_UNUSED_GRASS_2 + .4byte gFieldEffectScript_UnusedSand @ FLDEFF_UNUSED_SAND + .4byte gFieldEffectScript_WaterSurfacing @ FLDEFF_WATER_SURFACING + .4byte gFieldEffectScript_BerryTreeGrowthSparkle @ FLDEFF_BERRY_TREE_GROWTH_SPARKLE + .4byte gFieldEffectScript_DeepSandFootprints @ FLDEFF_DEEP_SAND_FOOTPRINTS + .4byte gFieldEffectScript_PokeCenterHeal @ FLDEFF_POKECENTER_HEAL + .4byte gFieldEffectScript_UseSecretPowerTree @ FLDEFF_USE_SECRET_POWER_TREE + .4byte gFieldEffectScript_UseSecretPowerShrub @ FLDEFF_USE_SECRET_POWER_SHRUB + .4byte gFieldEffectScript_TreeDisguise @ FLDEFF_TREE_DISGUISE + .4byte gFieldEffectScript_MountainDisguise @ FLDEFF_MOUNTAIN_DISGUISE + .4byte gFieldEffectScript_NPCUseFly @ FLDEFF_NPCFLY_OUT + .4byte gFieldEffectScript_UseFly @ FLDEFF_USE_FLY + .4byte gFieldEffectScript_FlyIn @ FLDEFF_FLY_IN + .4byte gFieldEffectScript_QuestionMarkIcon @ FLDEFF_QUESTION_MARK_ICON + .4byte gFieldEffectScript_FeetInFlowingWater @ FLDEFF_FEET_IN_FLOWING_WATER + .4byte gFieldEffectScript_BikeTireTracks @ FLDEFF_BIKE_TIRE_TRACKS + .4byte gFieldEffectScript_SandDisguisePlaceholder @ FLDEFF_SAND_DISGUISE + .4byte gFieldEffectScript_UseRockSmash @ FLDEFF_USE_ROCK_SMASH + .4byte gFieldEffectScript_UseDig @ FLDEFF_USE_DIG + .4byte gFieldEffectScript_SandPile @ FLDEFF_SAND_PILE + .4byte gFieldEffectScript_UseStrength @ FLDEFF_USE_STRENGTH + .4byte gFieldEffectScript_ShortGrass @ FLDEFF_SHORT_GRASS + .4byte gFieldEffectScript_HotSpringsWater @ FLDEFF_HOT_SPRINGS_WATER + .4byte gFieldEffectScript_UseWaterfall @ FLDEFF_USE_WATERFALL + .4byte gFieldEffectScript_UseDive @ FLDEFF_USE_DIVE + .4byte gFieldEffectScript_Pokeball @ FLDEFF_POKEBALL + .4byte gFieldEffectScript_HeartIcon @ FLDEFF_HEART_ICON + .4byte gFieldEffectScript_Nop47 @ FLDEFF_NOP_47 + .4byte gFieldEffectScript_Nop48 @ FLDEFF_NOP_48 + .4byte gFieldEffectScript_AshPuff @ FLDEFF_ASH_PUFF + .4byte gFieldEffectScript_AshLaunch @ FLDEFF_ASH_LAUNCH + .4byte gFieldEffectScript_SweetScent @ FLDEFF_SWEET_SCENT + .4byte gFieldEffectScript_SandPillar @ FLDEFF_SAND_PILLAR + .4byte gFieldEffectScript_Bubbles @ FLDEFF_BUBBLES + .4byte gFieldEffectScript_Sparkle @ FLDEFF_SPARKLE + .4byte gFieldEffectScript_ShowSecretPowerCave @ FLDEFF_SECRET_POWER_CAVE + .4byte gFieldEffectScript_ShowSecretPowerTree @ FLDEFF_SECRET_POWER_TREE + .4byte gFieldEffectScript_ShowSecretPowerShrub @ FLDEFF_SECRET_POWER_SHRUB + .4byte gFieldEffectScript_ShowCutGrass @ FLDEFF_CUT_GRASS + .4byte gFieldEffectScript_FieldMoveShowMonInit @ FLDEFF_FIELD_MOVE_SHOW_MON_INIT + .4byte gFieldEffectScript_UsePuzzleEffect @ FLDEFF_USE_TOMB_PUZZLE_EFFECT + .4byte gFieldEffectScript_SecretBaseBootPC @ FLDEFF_PCTURN_ON + .4byte gFieldEffectScript_HallOfFameRecord @ FLDEFF_HALL_OF_FAME_RECORD + .4byte gFieldEffectScript_UseTeleport @ FLDEFF_USE_TELEPORT + .4byte gFieldEffectScript_RayquazaSpotlight @ FLDEFF_RAYQUAZA_SPOTLIGHT + .4byte gFieldEffectScript_DestroyDeoxysRock @ FLDEFF_DESTROY_DEOXYS_ROCK + .4byte gFieldEffectScript_MoveDeoxysRock @ FLDEFF_MOVE_DEOXYS_ROCK gFieldEffectScript_ExclamationMarkIcon1:: @ 82DBAE0 - field_eff_callnative FldEff_ExclamationMarkIcon - field_eff_end + field_eff_callnative FldEff_ExclamationMarkIcon + field_eff_end gFieldEffectScript_UseCutOnTallGrass:: @ 82DBAE6 - field_eff_callnative FldEff_UseCutOnGrass - field_eff_end + field_eff_callnative FldEff_UseCutOnGrass + field_eff_end gFieldEffectScript_UseCutOnTree:: @ 82DBAEC - field_eff_callnative FldEff_UseCutOnTree - field_eff_end + field_eff_callnative FldEff_UseCutOnTree + field_eff_end gFieldEffectScript_Shadow:: @ 82DBAF2 - field_eff_callnative FldEff_Shadow - field_eff_end + field_eff_callnative FldEff_Shadow + field_eff_end gFieldEffectScript_TallGrass:: @ 82DBAF8 - field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_TallGrass - field_eff_end + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_TallGrass + field_eff_end gFieldEffectScript_Ripple:: @ 82DBB02 - field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_Ripple - field_eff_end + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_Ripple + field_eff_end gFieldEffectScript_FieldMoveShowMon:: @ 82DBB0C - field_eff_callnative FldEff_FieldMoveShowMon - field_eff_end + field_eff_callnative FldEff_FieldMoveShowMon + field_eff_end gFieldEffectScript_Ash:: @ 82DBB12 - field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_Ash - field_eff_end + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_Ash + field_eff_end gFieldEffectScript_SurfBlob:: @ 82DBB1C - field_eff_callnative FldEff_SurfBlob - field_eff_end + field_eff_callnative FldEff_SurfBlob + field_eff_end gFieldEffectScript_UseSurf:: @ 82DBB22 - field_eff_callnative FldEff_UseSurf - field_eff_end + field_eff_callnative FldEff_UseSurf + field_eff_end gFieldEffectScript_GroundImpactDust:: @ 82DBB28 - field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_Dust - field_eff_end + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_Dust + field_eff_end gFieldEffectScript_UseSecretPowerCave:: @ 82DBB32 - field_eff_callnative FldEff_UseSecretPowerCave - field_eff_end + field_eff_callnative FldEff_UseSecretPowerCave + field_eff_end gFieldEffectScript_JumpTallGrass:: @ 82DBB38 - field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_JumpTallGrass - field_eff_end + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_JumpTallGrass + field_eff_end gFieldEffectScript_SandFootprints:: @ 82DBB42 - field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_SandFootprints - field_eff_end + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_SandFootprints + field_eff_end gFieldEffectScript_JumpBigSplash:: @ 82DBB4C - field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_JumpBigSplash - field_eff_end + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_JumpBigSplash + field_eff_end gFieldEffectScript_Splash:: @ 82DBB56 - field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_Splash - field_eff_end + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_Splash + field_eff_end gFieldEffectScript_JumpSmallSplash:: @ 82DBB60 - field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_JumpSmallSplash - field_eff_end + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_JumpSmallSplash + field_eff_end gFieldEffectScript_LongGrass:: @ 82DBB6A - field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_LongGrass - field_eff_end + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_LongGrass + field_eff_end gFieldEffectScript_JumpLongGrass:: @ 82DBB74 - field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_JumpLongGrass - field_eff_end + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_JumpLongGrass + field_eff_end gFieldEffectScript_UnusedGrass:: @ 82DBB7E - field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_UnusedGrass - field_eff_end + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_UnusedGrass + field_eff_end gFieldEffectScript_UnusedGrass2:: @ 82DBB88 - field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_UnusedGrass2 - field_eff_end + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_UnusedGrass2 + field_eff_end gFieldEffectScript_UnusedSand:: @ 82DBB92 - field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_UnusedSand - field_eff_end + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_UnusedSand + field_eff_end gFieldEffectScript_WaterSurfacing:: @ 82DBB9C - field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_WaterSurfacing - field_eff_end + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_WaterSurfacing + field_eff_end gFieldEffectScript_BerryTreeGrowthSparkle:: @ 82DBBA6 - field_eff_callnative FldEff_BerryTreeGrowthSparkle - field_eff_end + field_eff_callnative FldEff_BerryTreeGrowthSparkle + field_eff_end gFieldEffectScript_DeepSandFootprints:: @ 82DBBAC - field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_DeepSandFootprints - field_eff_end + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_DeepSandFootprints + field_eff_end gFieldEffectScript_PokeCenterHeal:: @ 82DBBB6 - field_eff_loadfadedpal gSpritePalette_PokeballGlow - field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_PokecenterHeal - field_eff_end + field_eff_loadfadedpal gSpritePalette_PokeballGlow + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_PokecenterHeal + field_eff_end gFieldEffectScript_UseSecretPowerTree:: @ 82DBBC5 - field_eff_callnative FldEff_UseSecretPowerTree - field_eff_end + field_eff_callnative FldEff_UseSecretPowerTree + field_eff_end gFieldEffectScript_UseSecretPowerShrub:: @ 82DBBCB - field_eff_callnative FldEff_UseSecretPowerShrub - field_eff_end + field_eff_callnative FldEff_UseSecretPowerShrub + field_eff_end gFieldEffectScript_TreeDisguise:: @ 82DBBD1 - field_eff_callnative ShowTreeDisguiseFieldEffect - field_eff_end + field_eff_callnative ShowTreeDisguiseFieldEffect + field_eff_end gFieldEffectScript_MountainDisguise:: @ 82DBBD7 - field_eff_callnative ShowMountainDisguiseFieldEffect - field_eff_end + field_eff_callnative ShowMountainDisguiseFieldEffect + field_eff_end gFieldEffectScript_NPCUseFly:: @ 82DBBDD - field_eff_callnative FldEff_NPCFlyOut - field_eff_end + field_eff_callnative FldEff_NPCFlyOut + field_eff_end gFieldEffectScript_UseFly:: @ 82DBBE3 - field_eff_callnative FldEff_UseFly - field_eff_end + field_eff_callnative FldEff_UseFly + field_eff_end gFieldEffectScript_FlyIn:: @ 82DBBE9 - field_eff_callnative FldEff_FlyIn - field_eff_end + field_eff_callnative FldEff_FlyIn + field_eff_end gFieldEffectScript_QuestionMarkIcon:: @ 82DBBEF - field_eff_callnative FldEff_QuestionMarkIcon - field_eff_end + field_eff_callnative FldEff_QuestionMarkIcon + field_eff_end gFieldEffectScript_FeetInFlowingWater:: @ 82DBBF5 - field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_FeetInFlowingWater - field_eff_end + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_FeetInFlowingWater + field_eff_end gFieldEffectScript_BikeTireTracks:: @ 82DBBFF - field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_BikeTireTracks - field_eff_end + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_BikeTireTracks + field_eff_end gFieldEffectScript_SandDisguisePlaceholder:: @ 82DBC09 - field_eff_callnative ShowSandDisguiseFieldEffect - field_eff_end + field_eff_callnative ShowSandDisguiseFieldEffect + field_eff_end gFieldEffectScript_UseRockSmash:: @ 82DBC0F - field_eff_callnative FldEff_UseRockSmash - field_eff_end + field_eff_callnative FldEff_UseRockSmash + field_eff_end gFieldEffectScript_UseStrength:: @ 82DBC15 - field_eff_callnative FldEff_UseStrength - field_eff_end + field_eff_callnative FldEff_UseStrength + field_eff_end gFieldEffectScript_UseDig:: @ 82DBC1B - field_eff_callnative FldEff_UseDig - field_eff_end + field_eff_callnative FldEff_UseDig + field_eff_end gFieldEffectScript_SandPile:: @ 82DBC21 - field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_SandPile - field_eff_end + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_SandPile + field_eff_end gFieldEffectScript_ShortGrass:: @ 82DBC2B - field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_ShortGrass - field_eff_end + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_ShortGrass + field_eff_end gFieldEffectScript_HotSpringsWater:: @ 82DBC35 - field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_HotSpringsWater - field_eff_end + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_HotSpringsWater + field_eff_end gFieldEffectScript_UseWaterfall:: @ 82DBC3F - field_eff_callnative FldEff_UseWaterfall - field_eff_end + field_eff_callnative FldEff_UseWaterfall + field_eff_end gFieldEffectScript_UseDive:: @ 82DBC45 - field_eff_callnative FldEff_UseDive - field_eff_end + field_eff_callnative FldEff_UseDive + field_eff_end gFieldEffectScript_Pokeball:: @ 82DBC4B - field_eff_loadpal gSpritePalette_Pokeball - field_eff_callnative FldEff_Pokeball - field_eff_end + field_eff_loadpal gSpritePalette_Pokeball + field_eff_callnative FldEff_Pokeball + field_eff_end gFieldEffectScript_HeartIcon:: @ 82DBC56 - field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_HeartIcon - field_eff_end + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_HeartIcon + field_eff_end gFieldEffectScript_Nop47:: @ 82DBC60 - field_eff_callnative FldEff_Nop47 - field_eff_end + field_eff_callnative FldEff_Nop47 + field_eff_end gFieldEffectScript_Nop48:: @ 82DBC66 - field_eff_callnative FldEff_Nop48 - field_eff_end + field_eff_callnative FldEff_Nop48 + field_eff_end gFieldEffectScript_AshPuff:: @ 82DBC6C - field_eff_loadfadedpal_callnative gSpritePalette_Ash, FldEff_AshPuff - field_eff_end + field_eff_loadfadedpal_callnative gSpritePalette_Ash, FldEff_AshPuff + field_eff_end gFieldEffectScript_AshLaunch:: @ 82DBC76 - field_eff_loadfadedpal_callnative gSpritePalette_Ash, FldEff_AshLaunch - field_eff_end + field_eff_loadfadedpal_callnative gSpritePalette_Ash, FldEff_AshLaunch + field_eff_end gFieldEffectScript_SweetScent:: @ 82DBC80 - field_eff_callnative FldEff_SweetScent - field_eff_end + field_eff_callnative FldEff_SweetScent + field_eff_end gFieldEffectScript_SandPillar:: @ 82DBC86 - field_eff_loadfadedpal_callnative gSpritePalette_SandPillar, FldEff_SandPillar - field_eff_end + field_eff_loadfadedpal_callnative gSpritePalette_SandPillar, FldEff_SandPillar + field_eff_end gFieldEffectScript_Bubbles:: @ 82DBC90 - field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_Bubbles - field_eff_end + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_Bubbles + field_eff_end gFieldEffectScript_Sparkle:: @ 82DBC9A - field_eff_loadfadedpal_callnative gSpritePalette_SmallSparkle, FldEff_Sparkle - field_eff_end + field_eff_loadfadedpal_callnative gSpritePalette_SmallSparkle, FldEff_Sparkle + field_eff_end gFieldEffectScript_ShowSecretPowerCave:: @ 82DBCA4 - field_eff_loadfadedpal_callnative gSpritePalette_SecretPower_Cave, FldEff_SecretPowerCave - field_eff_end + field_eff_loadfadedpal_callnative gSpritePalette_SecretPower_Cave, FldEff_SecretPowerCave + field_eff_end gFieldEffectScript_ShowSecretPowerTree:: @ 82DBCAE - field_eff_loadfadedpal_callnative gSpritePalette_SecretPower_Plant, FldEff_SecretPowerTree - field_eff_end + field_eff_loadfadedpal_callnative gSpritePalette_SecretPower_Plant, FldEff_SecretPowerTree + field_eff_end gFieldEffectScript_ShowSecretPowerShrub:: @ 82DBCB8 - field_eff_loadfadedpal_callnative gSpritePalette_SecretPower_Plant, FldEff_SecretPowerShrub - field_eff_end + field_eff_loadfadedpal_callnative gSpritePalette_SecretPower_Plant, FldEff_SecretPowerShrub + field_eff_end gFieldEffectScript_ShowCutGrass:: @ 82DBCC2 - field_eff_loadfadedpal_callnative gSpritePalette_CutGrass, FldEff_CutGrass - field_eff_end + field_eff_loadfadedpal_callnative gSpritePalette_CutGrass, FldEff_CutGrass + field_eff_end gFieldEffectScript_FieldMoveShowMonInit:: @ 82DBCCC - field_eff_callnative FldEff_FieldMoveShowMonInit - field_eff_end + field_eff_callnative FldEff_FieldMoveShowMonInit + field_eff_end gFieldEffectScript_UsePuzzleEffect:: @ 82DBCD2 - field_eff_callnative FldEff_UsePuzzleEffect - field_eff_end + field_eff_callnative FldEff_UsePuzzleEffect + field_eff_end gFieldEffectScript_SecretBaseBootPC:: @ 82DBCD8 - field_eff_callnative FldEff_SecretBasePCTurnOn - field_eff_end + field_eff_callnative FldEff_SecretBasePCTurnOn + field_eff_end gFieldEffectScript_HallOfFameRecord:: @ 82DBCDE - field_eff_loadfadedpal gSpritePalette_PokeballGlow - field_eff_loadfadedpal_callnative gSpritePalette_HofMonitor, FldEff_HallOfFameRecord - field_eff_end + field_eff_loadfadedpal gSpritePalette_PokeballGlow + field_eff_loadfadedpal_callnative gSpritePalette_HofMonitor, FldEff_HallOfFameRecord + field_eff_end gFieldEffectScript_UseTeleport:: @ 82DBCED - field_eff_callnative FldEff_UseTeleport - field_eff_end + field_eff_callnative FldEff_UseTeleport + field_eff_end gFieldEffectScript_RayquazaSpotlight:: @ 82DBCF3 - field_eff_callnative FldEff_RayquazaSpotlight - field_eff_end + field_eff_callnative FldEff_RayquazaSpotlight + field_eff_end gFieldEffectScript_DestroyDeoxysRock:: @ 82DBCF9 - field_eff_callnative FldEff_DestroyDeoxysRock - field_eff_end + field_eff_callnative FldEff_DestroyDeoxysRock + field_eff_end gFieldEffectScript_MoveDeoxysRock:: @ 82DBCFF - field_eff_callnative FldEff_MoveDeoxysRock - field_eff_end + field_eff_callnative FldEff_MoveDeoxysRock + field_eff_end From 52a4428ba624b19569418a9c72f60d3494fb71eb Mon Sep 17 00:00:00 2001 From: GriffinR Date: Sat, 11 Jul 2020 20:25:56 -0400 Subject: [PATCH 011/101] Begin new contest documentation --- data/contest_ai_scripts.s | 25 +- .../contest/{heart.png => slider_heart.png} | Bin include/constants/contest.h | 8 - include/constants/global.h | 8 + include/contest.h | 158 +++-- include/contest_link.h | 11 + include/contest_util.h | 1 - include/global.h | 4 +- include/graphics.h | 4 +- src/contest.c | 622 +++++++++--------- src/contest_ai.c | 85 +-- src/contest_effect.c | 84 +-- src/contest_link.c | 231 +++---- src/contest_link_util.c | 65 +- src/contest_util.c | 10 +- src/data/contest_opponents.h | 96 --- src/graphics.c | 4 +- src/pokemon.c | 4 +- 18 files changed, 685 insertions(+), 735 deletions(-) rename graphics/contest/{heart.png => slider_heart.png} (100%) diff --git a/data/contest_ai_scripts.s b/data/contest_ai_scripts.s index 7346876d7e..252c39a3aa 100644 --- a/data/contest_ai_scripts.s +++ b/data/contest_ai_scripts.s @@ -48,7 +48,7 @@ gContestAIChecks:: @ 82DE350 @ Unreferenced AI routine to encourage moves that improve condition on the first @ turn. Additionally, it checks the appeal order of the user and the effect -@ type, but the code is buggy and doesn't affect the score. +@ type, but the code is buggy and doesnt affect the score. if_turn_not_eq 0, ContestUnreferenced_80 if_effect_not_eq CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, ContestUnreferenced_80 score +10 @@ -63,7 +63,7 @@ ContestUnreferenced_0D: ContestUnreferenced_end: end -@ Unreferenced AI routine that doesn't make much sense. +@ Unreferenced AI routine that doesnt make much sense. if_turn_eq 0, ContestUnreferenced_0F_1 if_turn_eq 1, ContestUnreferenced_0F_2 if_turn_eq 2, ContestUnreferenced_0F_3 @@ -122,25 +122,26 @@ ContestUnreferenced_score2: end AI_CheckBoring: - if_effect_eq CONTEST_EFFECT_REPETITION_NOT_BORING, AI_end_081DC27F - if_move_used_count_eq 1, AI_score1_081DC27F - if_move_used_count_eq 2, AI_score2_081DC27F - if_move_used_count_eq 3, AI_score3_081DC27F - if_move_used_count_eq 4, AI_score4_081DC27F + if_effect_eq CONTEST_EFFECT_REPETITION_NOT_BORING, AI_CheckBoring_NotBoring + if_move_used_count_eq 1, AI_CheckBoring_FirstRepeat + if_move_used_count_eq 2, AI_CheckBoring_SecondRepeat + if_move_used_count_eq 3, AI_CheckBoring_ThirdRepeat + if_move_used_count_eq 4, AI_CheckBoring_FourthRepeat + @ No repeats end -AI_score1_081DC27F: +AI_CheckBoring_FirstRepeat: score -5 end -AI_score2_081DC27F: +AI_CheckBoring_SecondRepeat: score -15 end -AI_score3_081DC27F: +AI_CheckBoring_ThirdRepeat: score -20 end -AI_score4_081DC27F: +AI_CheckBoring_FourthRepeat: score -25 end -AI_end_081DC27F: +AI_CheckBoring_NotBoring: end AI_CheckExcitement: diff --git a/graphics/contest/heart.png b/graphics/contest/slider_heart.png similarity index 100% rename from graphics/contest/heart.png rename to graphics/contest/slider_heart.png diff --git a/include/constants/contest.h b/include/constants/contest.h index 2de2866a37..5eabb5f46b 100644 --- a/include/constants/contest.h +++ b/include/constants/contest.h @@ -1,7 +1,6 @@ #ifndef GUARD_CONSTANTS_CONTEST_H #define GUARD_CONSTANTS_CONTEST_H -#define CONTESTANT_COUNT 4 #define APPLAUSE_METER_SIZE 5 #define CONTEST_TURN_COUNT 5 @@ -22,13 +21,6 @@ #define CONTEST_TYPE_NPC_MASTER (CONTEST_RANK_MASTER + 1) #define CONTEST_TYPE_LINK (CONTEST_RANK_LINK + 1) -#define CONTEST_CATEGORY_COOL 0 -#define CONTEST_CATEGORY_BEAUTY 1 -#define CONTEST_CATEGORY_CUTE 2 -#define CONTEST_CATEGORY_SMART 3 -#define CONTEST_CATEGORY_TOUGH 4 -#define CONTEST_CATEGORIES_COUNT 5 - #define CONTEST_WINNER_ARTIST 0 // Winner shown by the artist, painting not necessarily saved #define CONTEST_WINNER_HALL_1 1 #define CONTEST_WINNER_HALL_2 2 diff --git a/include/constants/global.h b/include/constants/global.h index 956f86a054..7a7009fd54 100644 --- a/include/constants/global.h +++ b/include/constants/global.h @@ -62,6 +62,14 @@ #define MAX_MON_MOVES 4 #define NUM_STATS 6 +#define CONTESTANT_COUNT 4 +#define CONTEST_CATEGORY_COOL 0 +#define CONTEST_CATEGORY_BEAUTY 1 +#define CONTEST_CATEGORY_CUTE 2 +#define CONTEST_CATEGORY_SMART 3 +#define CONTEST_CATEGORY_TOUGH 4 +#define CONTEST_CATEGORIES_COUNT 5 + // party sizes #define PARTY_SIZE 6 #define MULTI_PARTY_SIZE PARTY_SIZE / 2 diff --git a/include/contest.h b/include/contest.h index a9b1db9ee9..b6818f996c 100644 --- a/include/contest.h +++ b/include/contest.h @@ -226,7 +226,9 @@ struct ContestPokemon /*0x29*/ u8 smart; // smart /*0x2A*/ u8 tough; // tough /*0x2B*/ u8 sheen; // sheen - /*0x2C*/ u8 unk2C[12]; + u8 highestRank; + bool8 gameCleared; + /*0x2C*/ u8 unk2C[10]; /*0x38*/ u32 personality; // personality /*0x3C*/ u32 otId; // otId }; @@ -252,85 +254,85 @@ struct ContestStruct_field_18 struct Contest { - /*0x0*/ u8 playerMoveChoice; - /*0x1*/ u8 turnNumber; - /*0x2*/ u8 unused2[CONTESTANT_COUNT]; - /*0x6*/ u16 unk1920A_0:1; // Task active flags? - u16 unk1920A_1:1; - u16 unk1920A_2:1; - u16 unk1920A_3:1; - u16 unk1920A_4:1; - u16 isShowingApplauseMeter:1; - u16 applauseMeterIsMoving:1; - u16 unk1920A_7:1; - /*0x7*/ u16 unk1920B_0:1; - u16 unk1920B_1:1; - u16 unk1920B_2:1; - /*0x8*/ u8 mainTaskId; - /*0x9*/ u8 unk1920D[4]; - /*0xD*/ u8 unk19211; - /*0xE*/ u8 unk19212; - /*0xF*/ u8 filler19213; - /*0x10*/ u8 unk19214; - /*0x11*/ u8 unk19215; - /*0x12*/ u8 unk19216; // sprite ID - /*0x13*/ s8 applauseLevel; - /*0x19218*/ u8 prevTurnOrder[CONTESTANT_COUNT]; - /*0x1921C*/ u32 unk1921C; // saved RNG value? + u8 playerMoveChoice; + u8 turnNumber; + u8 unused2[CONTESTANT_COUNT]; + bool16 unk1920A_0:1; // Task active flags? + bool16 unk1920A_1:1; + bool16 unk1920A_2:1; + bool16 unk1920A_3:1; + bool16 unk1920A_4:1; + bool16 isShowingApplauseMeter:1; + bool16 applauseMeterIsMoving:1; + bool16 unk1920A_7:1; + bool16 unk1920B_0:1; + bool16 sliderHeartsAnimating:1; // When the slider heart is appearing/disappearing + bool16 unk1920B_2:1; + u8 mainTaskId; + u8 unk1920D[4]; + u8 unk19211; + u8 unk19212; + u8 filler19213; + u8 unk19214; + u8 unk19215; + u8 unk19216; // sprite ID + s8 applauseLevel; + u8 prevTurnOrder[CONTESTANT_COUNT]; + u32 unk1921C; // saved RNG value? u16 moveHistory[CONTEST_TURN_COUNT][CONTESTANT_COUNT]; u8 excitementHistory[CONTEST_TURN_COUNT][CONTESTANT_COUNT]; u8 applauseMeterSpriteId; - /*0x1925D*/ u8 contestSetupState; - /*0x1925E*/ u8 unk1925E; + u8 contestSetupState; + u8 unk1925E; }; struct ContestantStatus { - /*0x00*/ s16 appeal1; // move appeal? - /*0x02*/ s16 appeal2; // final appeal after end of turn, maybe? - /*0x04*/ s16 pointTotal; - /*0x06*/ u16 currMove; - /*0x08*/ u16 prevMove; - /*0x0A*/ u8 moveCategory; - /*0x0B*/ u8 ranking:2; + s16 appeal1; // move appeal? + s16 appeal2; // final appeal after end of turn, maybe? + s16 pointTotal; + u16 currMove; + u16 prevMove; + u8 moveCategory; + u8 ranking:2; u8 unkB_2:2; u8 moveRepeatCount:3; - u8 noMoreTurns:1; // used a one-time move? - /*0x0C*/ u8 nervous:1; + bool8 noMoreTurns:1; // used a one-time move? + bool8 nervous:1; u8 numTurnsSkipped:2; - /*0x0D*/ s8 condition; - /*0x0E*/ u8 jam; - /*0x0F*/ u8 jamReduction; + s8 condition; + u8 jam; + u8 jamReduction; // Flags set by move effect - /*0x10*/ u8 resistant:1; - u8 immune:1; - u8 moreEasilyStartled:1; - u8 usedRepeatableMove:1; + bool8 resistant:1; + bool8 immune:1; + bool8 moreEasilyStartled:1; + bool8 usedRepeatableMove:1; u8 conditionMod:2; // 1: just raised condition; 2: appeal greatly improved by condition u8 turnOrderMod:2; // 1: defined; 2: random - /*0x11*/ u8 turnOrderModAction:2; // 1: made first; 2: made last; 3: made random - u8 turnSkipped:1; - u8 exploded:1; - u8 overrideCategoryExcitementMod:1; - u8 appealTripleCondition:1; + u8 turnOrderModAction:2; // 1: made first; 2: made last; 3: made random + bool8 turnSkipped:1; + bool8 exploded:1; + bool8 overrideCategoryExcitementMod:1; + bool8 appealTripleCondition:1; - /*0x12*/ u8 jamSafetyCount; - /*0x13*/ u8 effectStringId; // status action? - /*0x14*/ u8 effectStringId2; - /*0x15*/ u8 disappointedRepeat:1; - u8 unk15_1:1; - u8 unk15_2:1; - u8 unk15_3:1; - u8 hasJudgesAttention:1; - u8 judgesAttentionWasRemoved:1; - u8 unk15_6:1; - /*0x16*/ u8 unk16; - /*0x17*/ u8 unk17; - /*0x18*/ u8 unk18; - /*0x19*/ u8 nextTurnOrder; // turn position - /*0x1A*/ u8 attentionLevel; // How much the Pokemon "stood out" - /*0x1B*/ u8 unk1B; + u8 jamSafetyCount; + u8 effectStringId; // status action? + u8 effectStringId2; + bool8 repeatedMove:1; + bool8 unused:1; + bool8 repeatedPrevMove:1; // never read + bool8 unk15_3:1; + bool8 hasJudgesAttention:1; + bool8 judgesAttentionWasRemoved:1; + bool8 unk15_6:1; + u8 unk16; + u8 unk17; + u8 unk18; + u8 nextTurnOrder; // turn position + u8 attentionLevel; // How much the Pokemon "stood out" + u8 unk1B; }; struct UnknownContestStruct7 @@ -348,9 +350,9 @@ struct ContestAIInfo /*0x00*/ u8 aiState; /*0x02*/ u16 nextMove; /*0x04*/ u8 nextMoveIndex; - /*0x05*/ u8 unk5[4]; + /*0x05*/ u8 moveScores[MAX_MON_MOVES]; /*0x09*/ u8 aiAction; - /*0x0A*/ u8 fillerA[0x6]; // TODO: don't know what's here + /*0x0A*/ u8 filler[6]; /*0x10*/ u8 currentAICheck; /*0x14*/ u32 aiChecks; /*0x18*/ s16 scriptResult; @@ -370,9 +372,9 @@ struct UnknownContestStruct5 struct UnknownContestStruct4 { - u8 unk0; // sprite ID - u8 unk1; // sprite ID - u8 unk2_0:1; + u8 sliderHeartSpriteId; + u8 nextTurnSpriteId; + u8 sliderUpdating:1; u8 unk2_1:1; u8 unk2_2:1; }; @@ -454,7 +456,7 @@ extern u32 gContestRngValue; void ResetLinkContestBoolean(void); void LoadContestBgAfterMoveAnim(void); void CB2_StartContest(void); -void sub_80DA8C8(u8 partyIndex); +void CreateContestMonFromParty(u8 partyIndex); void sub_80DAB8C(u8 contestType, u8 rank); void sub_80DACBC(u8 contestType, u8 rank, bool32 isPostgame); u8 GetContestEntryEligibility(struct Pokemon *pkmn); @@ -474,18 +476,6 @@ void ResetContestLinkResults(void); bool8 sub_80DEDA8(u8 a); u8 sub_80DEFA8(u8 a, u8 b); void ClearContestWinnerPicsInContestHall(void); -void sub_80DFA08(struct ContestPokemon *mon, s32 language); - -// contest link -void sub_81D9DE4(u8 taskId); -void sub_80FCF40(u8); -void sub_80FCFD0(u8); -void sub_80F8714(u8); -bool32 sub_80FC670(s16 *); -bool32 sub_80FC4F4(void *, u16); -bool8 sub_80FC55C(void); -bool8 sub_80FC530(u8); -u8 sub_80F86E0(u8 *); -void sub_80FC9F8(u8 taskId); +void StripPlayerAndMonNamesForLinkContest(struct ContestPokemon *mon, s32 language); #endif //GUARD_CONTEST_H diff --git a/include/contest_link.h b/include/contest_link.h index 4344d55ad7..e52ebc426a 100644 --- a/include/contest_link.h +++ b/include/contest_link.h @@ -9,5 +9,16 @@ void sub_80FC6BC(u8); void sub_80FC804(u8); void sub_80FCE48(u8); void sub_80FC894(u8); +void Task_LinkContest_CommunicateMonIdxs(u8 taskId); +void sub_81D9DE4(u8 taskId); +void sub_80FCF40(u8); +void sub_80FCFD0(u8); +void sub_80F8714(u8); +bool32 sub_80FC670(s16 *); +bool32 LinkContest_SendBlock(void *, u16); +bool8 LinkContest_GetBlockReceivedFromAllPlayers(void); +bool8 LinkContest_GetBlockReceived(u8); +u8 sub_80F86E0(u8 *); +void Task_LinkContest_CommunicateMoveSelections(u8 taskId); #endif //GUARD_CONTEST_LINK_H diff --git a/include/contest_util.h b/include/contest_util.h index c0d8df031a..d0021153d5 100644 --- a/include/contest_util.h +++ b/include/contest_util.h @@ -7,6 +7,5 @@ void StartContest(void); void BufferContestantMonSpecies(void); void ShowContestResults(void); void ContestLinkTransfer(u8); -void sub_80FC998(u8 taskId); #endif // GUARD_CONTEST_UTIL_H diff --git a/include/global.h b/include/global.h index abcf1d5454..230a50f55b 100644 --- a/include/global.h +++ b/include/global.h @@ -474,7 +474,7 @@ struct SaveBlock2 /*0x20C*/ struct BerryPickingResults berryPick; /*0x21C*/ struct RankingHall1P hallRecords1P[HALL_FACILITIES_COUNT][2][3]; // From record mixing. /*0x57C*/ struct RankingHall2P hallRecords2P[2][3]; // From record mixing. - /*0x624*/ u16 contestLinkResults[5][4]; // 4 positions for 5 categories. + /*0x624*/ u16 contestLinkResults[CONTEST_CATEGORIES_COUNT][CONTESTANT_COUNT]; /*0x64C*/ struct BattleFrontier frontier; }; // sizeof=0xF2C @@ -483,7 +483,7 @@ extern struct SaveBlock2 *gSaveBlock2Ptr; struct SecretBaseParty { u32 personality[PARTY_SIZE]; - u16 moves[PARTY_SIZE * 4]; + u16 moves[PARTY_SIZE * MAX_MON_MOVES]; u16 species[PARTY_SIZE]; u16 heldItems[PARTY_SIZE]; u8 levels[PARTY_SIZE]; diff --git a/include/graphics.h b/include/graphics.h index 8514d49bdf..4605727965 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -4786,10 +4786,10 @@ extern const u32 gOldContestGfx[]; extern const u32 gOldContestPalette[]; extern const u32 gUnknown_08C17170[]; extern const u32 gUnknown_08C17980[]; -extern const u32 gTiles_8C19450[]; +extern const u32 gContestSliderHeart_Gfx[]; extern const u32 gContestNextTurnGfx[]; extern const u16 gContestPal[]; -extern const u32 gUnknown_08C19168[]; +extern const u32 gContestFaces_Gfx[]; extern const u32 gContestApplauseGfx[]; extern const u32 gContestJudgeGfx[]; extern const u32 gContestJudgeSymbolsGfx[]; diff --git a/src/contest.c b/src/contest.c index 314ebb381a..76650da185 100644 --- a/src/contest.c +++ b/src/contest.c @@ -11,6 +11,7 @@ #include "battle.h" #include "battle_anim.h" #include "contest.h" +#include "contest_link.h" #include "data.h" #include "decompress.h" #include "graphics.h" @@ -45,56 +46,29 @@ #include "constants/rgb.h" #include "contest_ai.h" -#define APPLAUSE_METER_GFX_TAG 0xABE2 - -// An index into a palette where the text color for each contestant is stored. -// Contestant 0 will use palette color 10, contestant 1 will use color 11, etc. -#define CONTESTANT_TEXT_COLOR_START 10 - -enum -{ -// The "{Pokemon Name} / {Trainer Name}" windows. - CONTEST_WINDOW_CONTESTANT0_NAME, - CONTEST_WINDOW_CONTESTANT1_NAME, - CONTEST_WINDOW_CONTESTANT2_NAME, - CONTEST_WINDOW_CONTESTANT3_NAME, - CONTEST_WINDOW_GENERAL_TEXT, - // The available moves, from top to bottom - CONTEST_WINDOW_MOVE0, - CONTEST_WINDOW_MOVE1, - CONTEST_WINDOW_MOVE2, - CONTEST_WINDOW_MOVE3, - // The small "/" character between the move category and the - // appeal/jam display - CONTEST_WINDOW_SLASH, - CONTEST_WINDOW_MOVE_DESCRIPTION -}; - -#define MOVE_WINDOWS_START CONTEST_WINDOW_MOVE0 - // This file's functions. -static void sub_80D782C(void); -static void sub_80D7C7C(u8 taskId); -static void sub_80D7CB4(u8 taskId); -static void sub_80D7DAC(u8 taskId); -static void sub_80D7DC8(u8 taskId); +static void LoadContestPalettes(void); +static void Task_StartContestWaitFade(u8 taskId); +static void Task_TryStartLinkContest(u8 taskId); +static void Task_CommunicateMonIdxs(u8 taskId); +static void Task_EndCommunicateMonIdxs(u8 taskId); static void sub_80D7DE8(u8 taskId); static bool8 SetupContestGraphics(u8 *stateVar); static void sub_80D80C8(u8 taskId); static void sub_80D8108(u8 taskId); -static void vblank_cb_battle(void); +static void VBlankCB_Contest(void); static void CB2_ContestMain(void); -static void sub_80D833C(u8 taskId); -static void sub_80D8424(u8 taskId); -static void sub_80D8610(u8 taskId); -static void sub_80D8490(u8 taskId); -static void sub_80D880C(s8); -static void sub_80D883C(s8); -static void sub_80D8894(u8 taskId); -static void sub_80D892C(u8 taskId); -static void sub_80D895C(u8 taskId); -static void sub_80D8A04(u8 taskId); -static void sub_80D8A50(u8 taskId); +static void Task_DisplayAppealNumberText(u8 taskId); +static void Task_TryShowMoveSelectScreen(u8 taskId); +static void Task_ShowMoveSelectScreen(u8 taskId); +static void Task_HandleMoveSelectInput(u8 taskId); +static void DrawMoveSelectArrow(s8); +static void EraseMoveSelectArrow(s8); +static void Task_SelectMove(u8 taskId); +static void Task_EndCommunicateMoveSelections(u8 taskId); +static void Task_HideMoveSelectScreen(u8 taskId); +static void Task_HideApplauseMeterForAppealStart(u8 taskId); +static void Task_WaitHideApplauseMeterForAppealStart(u8 taskId); static void sub_80D8A88(u8 taskId); static void sub_80D8B38(u8 taskId); static void sub_80DA110(u8); @@ -135,9 +109,9 @@ static u16 GetChosenMove(u8); static void GetAllChosenMoves(void); static void ContestPrintLinkStandby(void); static void FillContestantWindowBgs(void); -static void sub_80DC2BC(void); -static void sub_80DC490(bool8); -static void sub_80DC4F0(void); +static void CreateSliderHeartSprites(void); +static void SetBottomSliderHeartsInvisibility(bool8); +static void CreateNextTurnSprites(void); static void CreateApplauseMeterSprite(void); static void sub_80DC5E8(void); static void sub_80DC7EC(void); @@ -149,7 +123,7 @@ static void TryMoveApplauseMeterOffscreen(void); static void sub_80DE224(void); static void sub_80DE350(void); static void sub_80DE424(u8); -static void sub_80DE69C(u8); +static void AnimateSliderHearts(u8); static void sub_80DEA20(void); static void Contest_StartTextPrinter(const u8 *, u32); static void ContestBG_FillBoxWithIncrementingTile(u8, u16, u8, u8, u8, u8, u8, s16); @@ -180,15 +154,15 @@ static void sub_80DDE0C(void); static void UpdateApplauseMeter(void); static void RankContestants(void); static void sub_80DBA18(void); -static void sub_80DC3AC(void); -static bool8 sub_80DC3C4(void); +static void UpdateHeartSliders(void); +static bool8 SlidersDoneUpdating(void); static void ContestBG_FillBoxWithTile(u8, u16, u8, u8, u8, u8, u8); static void Contest_PrintTextToBg0WindowStd(u32, const u8 *); static s16 GetContestantRound2Points(u8); static void DetermineFinalStandings(void); static bool8 sub_80DBF30(s32, s32, struct UnknownContestStruct6 *); static void sub_80DC0F4(u8); -static void sub_80DC408(struct Sprite *); +static void SpriteCB_UpdateHeartSlider(struct Sprite *); static void sub_80DC728(u8); static void sub_80DC6A4(u8); static void sub_80DC8D0(u8); @@ -208,16 +182,58 @@ static void sub_80DE464(u8); static void sub_80DE4A8(u8); static void sub_80DE5F4(u8); static void sub_80DE65C(u8); -static void sub_80DE794(u8); +static void Task_WaitForSliderHeartAnim(u8); static void sub_80DEA5C(void); static void sub_80DF250(void); static void sub_80DF4F8(void); static void sub_80DF080(u8); static void ContestDebugPrintBitStrings(void); -static void sub_80DF9D4(u8 *); -static void sub_80DF9E0(u8 *, s32); +static void StripPlayerNameForLinkContest(u8 *); +static void StripMonNameForLinkContest(u8 *, s32); static void SwapMoveDescAndContestTilemaps(void); +// An index into a palette where the text color for each contestant is stored. +// Contestant 0 will use palette color 10, contestant 1 will use color 11, etc. +#define CONTESTANT_TEXT_COLOR_START 10 + +enum +{ +// The "{Pokemon Name} / {Trainer Name}" windows. + CONTEST_WINDOW_CONTESTANT0_NAME, + CONTEST_WINDOW_CONTESTANT1_NAME, + CONTEST_WINDOW_CONTESTANT2_NAME, + CONTEST_WINDOW_CONTESTANT3_NAME, + CONTEST_WINDOW_GENERAL_TEXT, + // The available moves, from top to bottom + CONTEST_WINDOW_MOVE0, + CONTEST_WINDOW_MOVE1, + CONTEST_WINDOW_MOVE2, + CONTEST_WINDOW_MOVE3, + // The small "/" character between the move category and the + // appeal/jam display + CONTEST_WINDOW_SLASH, + CONTEST_WINDOW_MOVE_DESCRIPTION +}; + +#define MOVE_WINDOWS_START CONTEST_WINDOW_MOVE0 + +#define TAG_FACES_GFX 0xABE1 +#define TAG_APPLAUSE_METER 0xABE2 + +#define TAG_SLIDER_HEART 0x4E20 + +#define TAG_NEXT_TURN_PAL 0x4E22 +#define TAG_NEXT_TURN_1_GFX 0x4E22 +#define TAG_NEXT_TURN_2_GFX 0x4E23 +#define TAG_NEXT_TURN_3_GFX 0x4E24 +#define TAG_NEXT_TURN_4_GFX 0x4E25 + +enum { + SLIDER_HEART_ANIM_NORMAL, + SLIDER_HEART_ANIM_DISAPPEAR, + SLIDER_HEART_ANIM_APPEAR, +}; + // EWRAM vars. EWRAM_DATA struct ContestPokemon gContestMons[CONTESTANT_COUNT] = {0}; EWRAM_DATA s16 gContestMonConditions[CONTESTANT_COUNT] = {0}; @@ -250,24 +266,25 @@ extern const u8 gText_BDot[]; extern const u8 gText_CDot[]; extern void (*const gContestEffectFuncs[])(void); -static const u8 gUnknown_08587A6C[] = +static const u8 sSliderHeartYPositions[CONTESTANT_COUNT] = { - 0x24, 0x4C, 0x74, 0x9C + 36, 76, 116, 156 }; -static const u8 gUnknown_08587A70[] = +// The "Next Turn" sprites cover up the slider, so the y positions are the same as above +static const u8 sNextTurnSpriteYPositions[CONTESTANT_COUNT] = { - 0x24, 0x4C, 0x74, 0x9C + 36, 76, 116, 156 }; -static const struct SpriteSheet gUnknown_08587A74 = +static const struct SpriteSheet sSpriteSheet_SliderHeart = { - .data = gTiles_8C19450, + .data = gContestSliderHeart_Gfx, .size = 0x20, - .tag = 0x4E20 + .tag = TAG_SLIDER_HEART }; -static const struct OamData gOamData_8587A7C = +static const struct OamData sOam_SliderHeart = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -284,75 +301,75 @@ static const struct OamData gOamData_8587A7C = .affineParam = 0 }; -static const union AffineAnimCmd gSpriteAffineAnim_8587A84[] = +static const union AffineAnimCmd sAffineAnim_SliderHeart_Normal[] = { - AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0), + AFFINEANIMCMD_FRAME(256, 256, 0, 0), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gSpriteAffineAnim_8587A94[] = +static const union AffineAnimCmd sAffineAnim_SliderHeart_SpinDisappear[] = { - AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0), - AFFINEANIMCMD_FRAME(0xFFF6, 0xFFF6, -20, 20), + AFFINEANIMCMD_FRAME(256, 256, 0, 0), + AFFINEANIMCMD_FRAME(-10, -10, -20, 20), AFFINEANIMCMD_END }; -static const union AffineAnimCmd gSpriteAffineAnim_8587AAC[] = +static const union AffineAnimCmd sAffineAnim_SliderHeart_SpinAppear[] = { - AFFINEANIMCMD_FRAME(0x38, 0x38, 0, 0), + AFFINEANIMCMD_FRAME(56, 56, 0, 0), AFFINEANIMCMD_FRAME(10, 10, 20, 20), AFFINEANIMCMD_END }; -static const union AffineAnimCmd* const gSpriteAffineAnimTable_8587AC4[] = +static const union AffineAnimCmd* const sAffineAnims_SliderHeart[] = { - gSpriteAffineAnim_8587A84, - gSpriteAffineAnim_8587A94, - gSpriteAffineAnim_8587AAC + [SLIDER_HEART_ANIM_NORMAL] = sAffineAnim_SliderHeart_Normal, + [SLIDER_HEART_ANIM_DISAPPEAR] = sAffineAnim_SliderHeart_SpinDisappear, + [SLIDER_HEART_ANIM_APPEAR] = sAffineAnim_SliderHeart_SpinAppear }; -static const struct SpriteTemplate gSpriteTemplate_8587AD0 = +static const struct SpriteTemplate sSpriteTemplate_SliderHeart = { - .tileTag = 0x4E20, + .tileTag = TAG_SLIDER_HEART, .paletteTag = 0xABE0, - .oam = &gOamData_8587A7C, + .oam = &sOam_SliderHeart, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gSpriteAffineAnimTable_8587AC4, + .affineAnims = sAffineAnims_SliderHeart, .callback = SpriteCallbackDummy }; -static const struct CompressedSpriteSheet gUnknown_08587AE8[] = +static const struct CompressedSpriteSheet sSpriteSheet_NextTurn[CONTESTANT_COUNT] = { { .data = gContestNextTurnGfx, .size = 0x100, - .tag = 0x4E22 + .tag = TAG_NEXT_TURN_1_GFX }, { .data = gContestNextTurnGfx, .size = 0x100, - .tag = 0x4E23 + .tag = TAG_NEXT_TURN_2_GFX }, { .data = gContestNextTurnGfx, .size = 0x100, - .tag = 0x4E24 + .tag = TAG_NEXT_TURN_3_GFX }, { .data = gContestNextTurnGfx, .size = 0x100, - .tag = 0x4E25 + .tag = TAG_NEXT_TURN_4_GFX } }; -static const struct SpritePalette gUnknown_08587B08 = +static const struct SpritePalette sSpritePalette_NextTurn = { .data = gContestPal, - .tag = 0x4E22 + .tag = TAG_NEXT_TURN_PAL }; -static const struct OamData gOamData_8587B10 = +static const struct OamData sOam_NextTurn = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -369,39 +386,39 @@ static const struct OamData gOamData_8587B10 = .affineParam = 0 }; -static const struct SpriteTemplate gSpriteTemplate_8587B18[] = +static const struct SpriteTemplate sSpriteTemplates_NextTurn[CONTESTANT_COUNT] = { { - .tileTag = 0x4E22, - .paletteTag = 0x4E22, - .oam = &gOamData_8587B10, + .tileTag = TAG_NEXT_TURN_1_GFX, + .paletteTag = TAG_NEXT_TURN_PAL, + .oam = &sOam_NextTurn, .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy, }, { - .tileTag = 0x4E23, - .paletteTag = 0x4E22, - .oam = &gOamData_8587B10, + .tileTag = TAG_NEXT_TURN_2_GFX, + .paletteTag = TAG_NEXT_TURN_PAL, + .oam = &sOam_NextTurn, .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy, }, { - .tileTag = 0x4E24, - .paletteTag = 0x4E22, - .oam = &gOamData_8587B10, + .tileTag = TAG_NEXT_TURN_3_GFX, + .paletteTag = TAG_NEXT_TURN_PAL, + .oam = &sOam_NextTurn, .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy, }, { - .tileTag = 0x4E25, - .paletteTag = 0x4E22, - .oam = &gOamData_8587B10, + .tileTag = TAG_NEXT_TURN_4_GFX, + .paletteTag = TAG_NEXT_TURN_PAL, + .oam = &sOam_NextTurn, .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, @@ -409,7 +426,7 @@ static const struct SpriteTemplate gSpriteTemplate_8587B18[] = } }; -const struct Subsprite gSubspriteTable_8587B78[] = +static const struct Subsprite sSubsprites_NextTurn[] = { { .x = -28, @@ -429,19 +446,19 @@ const struct Subsprite gSubspriteTable_8587B78[] = } }; -const struct SubspriteTable gSubspriteTables_8587B80[] = +static const struct SubspriteTable sSubspriteTable_NextTurn[] = { { - .subspriteCount = 2, - .subsprites = gSubspriteTable_8587B78 + .subspriteCount = ARRAY_COUNT(sSubsprites_NextTurn), + .subsprites = sSubsprites_NextTurn } }; const struct CompressedSpriteSheet gUnknown_08587B88 = { - .data = gUnknown_08C19168, + .data = gContestFaces_Gfx, .size = 0x180, - .tag = 0xABE1 + .tag = TAG_FACES_GFX }; const struct OamData gOamData_8587B90 = @@ -460,7 +477,7 @@ const struct OamData gOamData_8587B90 = const struct SpriteTemplate gSpriteTemplate_8587B98 = { - .tileTag = 0xABE1, + .tileTag = TAG_FACES_GFX, .paletteTag = 0xABE0, .oam = &gOamData_8587B90, .anims = gDummySpriteAnimTable, @@ -473,13 +490,13 @@ static const struct CompressedSpriteSheet sApplauseMeterSpriteSheet = { .data = gContestApplauseGfx, .size = 0x400, - .tag = APPLAUSE_METER_GFX_TAG + .tag = TAG_APPLAUSE_METER }; static const struct SpritePalette sApplauseMeterPalette = { .data = gContestPal, - .tag = APPLAUSE_METER_GFX_TAG + .tag = TAG_APPLAUSE_METER }; static const struct OamData sApplauseMeterOamData = @@ -498,8 +515,8 @@ static const struct OamData sApplauseMeterOamData = static const struct SpriteTemplate sApplauseMeterSpriteTemplate = { - .tileTag = APPLAUSE_METER_GFX_TAG, - .paletteTag = APPLAUSE_METER_GFX_TAG, + .tileTag = TAG_APPLAUSE_METER, + .paletteTag = TAG_APPLAUSE_METER, .oam = &sApplauseMeterOamData, .anims = gDummySpriteAnimTable, .images = NULL, @@ -887,7 +904,7 @@ void LoadContestBgAfterMoveAnim(void) CopyToBgTilemapBuffer(3, gOldContestGfx, 0, 0); CopyBgTilemapBufferToVram(3); LoadCompressedPalette(gOldContestPalette, 0, 0x200); - sub_80D782C(); + LoadContestPalettes(); for (i = 0; i < CONTESTANT_COUNT; i++) { u32 contestantWindowId = MOVE_WINDOWS_START + i; @@ -923,7 +940,7 @@ static void InitContestWindows(void) } } -static void sub_80D782C(void) +static void LoadContestPalettes(void) { s32 i; @@ -1060,8 +1077,8 @@ void CB2_StartContest(void) gBattle_BG1_Y = 0; BeginFastPaletteFade(2); gPaletteFade.bufferTransferDisabled = FALSE; - SetVBlankCallback(vblank_cb_battle); - eContest.mainTaskId = CreateTask(sub_80D7C7C, 10); + SetVBlankCallback(VBlankCB_Contest); + eContest.mainTaskId = CreateTask(Task_StartContestWaitFade, 10); SetMainCallback2(CB2_ContestMain); if (gLinkContestFlags & LINK_CONTEST_FLAG_IS_WIRELESS) { @@ -1072,16 +1089,16 @@ void CB2_StartContest(void) } } -static void sub_80D7C7C(u8 taskId) +static void Task_StartContestWaitFade(u8 taskId) { if (!gPaletteFade.active) { gTasks[taskId].data[0] = 0; - gTasks[taskId].func = sub_80D7CB4; + gTasks[taskId].func = Task_TryStartLinkContest; } } -static void sub_80D7CB4(u8 taskId) +static void Task_TryStartLinkContest(u8 taskId) { if (gLinkContestFlags & LINK_CONTEST_FLAG_IS_LINK) { @@ -1113,7 +1130,7 @@ static void sub_80D7CB4(u8 taskId) gPaletteFade.bufferTransferDisabled = FALSE; if (!(gLinkContestFlags & LINK_CONTEST_FLAG_IS_WIRELESS)) ContestPrintLinkStandby(); - CreateTask(sub_80D7DAC, 0); + CreateTask(Task_CommunicateMonIdxs, 0); gTasks[taskId].data[0] = 0; gTasks[taskId].func = TaskDummy1; } @@ -1124,12 +1141,12 @@ static void sub_80D7CB4(u8 taskId) } } -static void sub_80D7DAC(u8 taskId) +static void Task_CommunicateMonIdxs(u8 taskId) { - SetTaskFuncWithFollowupFunc(taskId, sub_80FC998, sub_80D7DC8); + SetTaskFuncWithFollowupFunc(taskId, Task_LinkContest_CommunicateMonIdxs, Task_EndCommunicateMonIdxs); } -static void sub_80D7DC8(u8 taskId) +static void Task_EndCommunicateMonIdxs(u8 taskId) { gTasks[taskId].data[0] = 1; gTasks[taskId].func = sub_80D7DE8; @@ -1137,6 +1154,7 @@ static void sub_80D7DC8(u8 taskId) static void sub_80D7DE8(u8 taskId) { + // data[0] always 1 here gTasks[taskId].data[0]--; if (gTasks[taskId].data[0] <= 0) { @@ -1184,15 +1202,15 @@ static bool8 SetupContestGraphics(u8 *stateVar) CpuCopy32(tempPalette2, gPlttBufferUnfaded + 128, 16 * sizeof(u16)); CpuCopy32(tempPalette1, gPlttBufferUnfaded + (MOVE_WINDOWS_START + gContestPlayerMonIndex) * 16, 16 * sizeof(u16)); DmaCopy32Defvars(3, gPlttBufferUnfaded, eUnknownHeap1A004.cachedWindowPalettes, sizeof(eUnknownHeap1A004.cachedWindowPalettes)); - sub_80D782C(); + LoadContestPalettes(); break; case 6: DrawContestantWindows(); FillContestantWindowBgs(); SwapMoveDescAndContestTilemaps(); eContest.unk19216 = sub_80DB120(); - sub_80DC2BC(); - sub_80DC4F0(); + CreateSliderHeartSprites(); + CreateNextTurnSprites(); CreateApplauseMeterSprite(); sub_80DC5E8(); sub_80DC7EC(); @@ -1272,7 +1290,7 @@ static void sub_80D8108(u8 taskId) break; gTasks[taskId].data[0] = 0; gTasks[taskId].data[1] = 0; - gTasks[taskId].func = sub_80D833C; + gTasks[taskId].func = Task_DisplayAppealNumberText; break; } } @@ -1294,7 +1312,7 @@ static void CB2_ContestMain(void) sContestBgCopyFlags = 0; } -static void vblank_cb_battle(void) +static void VBlankCB_Contest(void) { SetGpuReg(REG_OFFSET_BG0HOFS, gBattle_BG0_X); SetGpuReg(REG_OFFSET_BG0VOFS, gBattle_BG0_Y); @@ -1314,7 +1332,7 @@ static void vblank_cb_battle(void) ScanlineEffect_InitHBlankDmaTransfer(); } -static void sub_80D833C(u8 taskId) +static void Task_DisplayAppealNumberText(u8 taskId) { if (gTasks[taskId].data[0] == 0) { @@ -1337,67 +1355,69 @@ static void sub_80D833C(u8 taskId) if (!Contest_RunTextPrinters()) { gTasks[taskId].data[0] = 0; - gTasks[taskId].func = sub_80D8424; + gTasks[taskId].func = Task_TryShowMoveSelectScreen; } } } -static void sub_80D8424(u8 taskId) +static void Task_TryShowMoveSelectScreen(u8 taskId) { + // Wait for button press to show move select screen if ((gMain.newKeys & A_BUTTON) || (gMain.newKeys == B_BUTTON)) { PlaySE(SE_SELECT); if (!Contest_IsMonsTurnDisabled(gContestPlayerMonIndex)) { - sub_80DC490(TRUE); - gTasks[taskId].func = sub_80D8490; + SetBottomSliderHeartsInvisibility(TRUE); + gTasks[taskId].func = Task_ShowMoveSelectScreen; } else { - gTasks[taskId].func = sub_80D8894; + // Skip move selection (selected move will be MOVE_NONE) + gTasks[taskId].func = Task_SelectMove; } } } -static void sub_80D8490(u8 taskId) +static void Task_ShowMoveSelectScreen(u8 taskId) { u8 i; - u8 sp8[32]; + u8 moveName[32]; - gBattle_BG0_Y = 0xA0; - gBattle_BG2_Y = 0xA0; + gBattle_BG0_Y = 160; + gBattle_BG2_Y = 160; for (i = 0; i < MAX_MON_MOVES; i++) { u16 move = gContestMons[gContestPlayerMonIndex].moves[i]; - u8 *r5 = sp8; + u8 *moveNameBuffer = moveName; if (eContestantStatus[gContestPlayerMonIndex].prevMove != MOVE_NONE && sub_80DE1E8(gContestPlayerMonIndex) && AreMovesContestCombo(eContestantStatus[gContestPlayerMonIndex].prevMove, move) != 0 && eContestantStatus[gContestPlayerMonIndex].hasJudgesAttention) { - r5 = StringCopy(sp8, gText_ColorLightShadowDarkGrey); + moveNameBuffer = StringCopy(moveName, gText_ColorLightShadowDarkGrey); } - else if (move != 0 + else if (move != MOVE_NONE && eContestantStatus[gContestPlayerMonIndex].prevMove == move && gContestMoves[move].effect != CONTEST_EFFECT_REPETITION_NOT_BORING) { // Gray the text because it is a repeated move - r5 = StringCopy(sp8, gText_ColorBlue); + moveNameBuffer = StringCopy(moveName, gText_ColorBlue); } - r5 = StringCopy(r5, gMoveNames[move]); + moveNameBuffer = StringCopy(moveNameBuffer, gMoveNames[move]); FillWindowPixelBuffer(i + MOVE_WINDOWS_START, PIXEL_FILL(0)); - Contest_PrintTextToBg0WindowAt(i + MOVE_WINDOWS_START, sp8, 5, 1, 7); + Contest_PrintTextToBg0WindowAt(i + MOVE_WINDOWS_START, moveName, 5, 1, 7); } - sub_80D880C(eContest.playerMoveChoice); + DrawMoveSelectArrow(eContest.playerMoveChoice); PrintContestMoveDescription(gContestMons[gContestPlayerMonIndex].moves[eContest.playerMoveChoice]); - gTasks[taskId].func = sub_80D8610; + gTasks[taskId].func = Task_HandleMoveSelectInput; } -static void sub_80D8610(u8 taskId) +static void Task_HandleMoveSelectInput(u8 taskId) { u8 numMoves = 0; s32 i; @@ -1411,15 +1431,16 @@ static void sub_80D8610(u8 taskId) if (gMain.newKeys & A_BUTTON) { PlaySE(SE_SELECT); - gTasks[taskId].func = sub_80D8894; + gTasks[taskId].func = Task_SelectMove; } else { switch (gMain.newAndRepeatedKeys) { case B_BUTTON: + // Cancel move selection PlaySE(SE_SELECT); - sub_80DC490(FALSE); + SetBottomSliderHeartsInvisibility(FALSE); ConvertIntToDecimalStringN(gStringVar1, eContest.turnNumber + 1, STR_CONV_MODE_LEFT_ALIGN, 1); if (!Contest_IsMonsTurnDisabled(gContestPlayerMonIndex)) StringCopy(gDisplayedStringBattle, gText_AppealNumWhichMoveWillBePlayed); @@ -1430,29 +1451,29 @@ static void sub_80D8610(u8 taskId) Contest_StartTextPrinter(gStringVar4, 0); gBattle_BG0_Y = 0; gBattle_BG2_Y = 0; - gTasks[taskId].func = sub_80D8424; + gTasks[taskId].func = Task_TryShowMoveSelectScreen; break; case DPAD_LEFT: case DPAD_RIGHT: break; case DPAD_UP: - sub_80D883C(eContest.playerMoveChoice); + EraseMoveSelectArrow(eContest.playerMoveChoice); if (eContest.playerMoveChoice == 0) eContest.playerMoveChoice = numMoves - 1; else eContest.playerMoveChoice--; - sub_80D880C(eContest.playerMoveChoice); + DrawMoveSelectArrow(eContest.playerMoveChoice); PrintContestMoveDescription(gContestMons[gContestPlayerMonIndex].moves[eContest.playerMoveChoice]); if (numMoves > 1) PlaySE(SE_SELECT); break; case DPAD_DOWN: - sub_80D883C(eContest.playerMoveChoice); + EraseMoveSelectArrow(eContest.playerMoveChoice); if (eContest.playerMoveChoice == numMoves - 1) eContest.playerMoveChoice = 0; else eContest.playerMoveChoice++; - sub_80D880C(eContest.playerMoveChoice); + DrawMoveSelectArrow(eContest.playerMoveChoice); PrintContestMoveDescription(gContestMons[gContestPlayerMonIndex].moves[eContest.playerMoveChoice]); if (numMoves > 1) PlaySE(SE_SELECT); @@ -1461,18 +1482,18 @@ static void sub_80D8610(u8 taskId) } } -static void sub_80D880C(s8 a0) +static void DrawMoveSelectArrow(s8 moveIndex) { - ContestBG_FillBoxWithIncrementingTile(2, 55, 0, 31 + a0 * 2, 2, 2, 17, 1); + ContestBG_FillBoxWithIncrementingTile(2, 55, 0, 31 + moveIndex * 2, 2, 2, 17, 1); } -static void sub_80D883C(s8 a0) +static void EraseMoveSelectArrow(s8 moveIndex) { - ContestBG_FillBoxWithIncrementingTile(2, 11, 0, 31 + a0 * 2, 2, 1, 17, 1); - ContestBG_FillBoxWithIncrementingTile(2, 11, 0, 32 + a0 * 2, 2, 1, 17, 1); + ContestBG_FillBoxWithIncrementingTile(2, 11, 0, 31 + moveIndex * 2, 2, 1, 17, 1); + ContestBG_FillBoxWithIncrementingTile(2, 11, 0, 32 + moveIndex * 2, 2, 1, 17, 1); } -static void sub_80D8894(u8 taskId) +static void Task_SelectMove(u8 taskId) { if (gLinkContestFlags & LINK_CONTEST_FLAG_IS_LINK) { @@ -1480,33 +1501,33 @@ static void sub_80D8894(u8 taskId) u8 taskId2; eContestantStatus[gContestPlayerMonIndex].currMove = move; - taskId2 = CreateTask(sub_80FC9F8, 0); - SetTaskFuncWithFollowupFunc(taskId2, sub_80FC9F8, sub_80D892C); + taskId2 = CreateTask(Task_LinkContest_CommunicateMoveSelections, 0); + SetTaskFuncWithFollowupFunc(taskId2, Task_LinkContest_CommunicateMoveSelections, Task_EndCommunicateMoveSelections); gTasks[taskId].func = TaskDummy1; ContestPrintLinkStandby(); - sub_80DC490(FALSE); + SetBottomSliderHeartsInvisibility(FALSE); } else { GetAllChosenMoves(); - gTasks[taskId].func = sub_80D895C; + gTasks[taskId].func = Task_HideMoveSelectScreen; } } -static void sub_80D892C(u8 taskId) +static void Task_EndCommunicateMoveSelections(u8 taskId) { DestroyTask(taskId); - gTasks[eContest.mainTaskId].func = sub_80D895C; + gTasks[eContest.mainTaskId].func = Task_HideMoveSelectScreen; } -static void sub_80D895C(u8 taskId) +static void Task_HideMoveSelectScreen(u8 taskId) { s32 i; ContestClearGeneralTextWindow(); gBattle_BG0_Y = 0; gBattle_BG2_Y = 0; - sub_80DC490(FALSE); + SetBottomSliderHeartsInvisibility(FALSE); for (i = 0; i < CONTESTANT_COUNT; i++) { @@ -1520,10 +1541,10 @@ static void sub_80D895C(u8 taskId) LoadPalette(eUnknownHeap1A004.unk18204, 0, PLTT_BUFFER_SIZE * 2); gTasks[taskId].data[0] = 0; gTasks[taskId].data[1] = 0; - gTasks[taskId].func = sub_80D8A04; + gTasks[taskId].func = Task_HideApplauseMeterForAppealStart; } -static void sub_80D8A04(u8 taskId) +static void Task_HideApplauseMeterForAppealStart(u8 taskId) { if (++gTasks[taskId].data[0] > 2) { @@ -1531,15 +1552,15 @@ static void sub_80D8A04(u8 taskId) if (++gTasks[taskId].data[1] == 2) { TryMoveApplauseMeterOffscreen(); - sub_80DE69C(1); - gTasks[taskId].func = sub_80D8A50; + AnimateSliderHearts(SLIDER_HEART_ANIM_DISAPPEAR); + gTasks[taskId].func = Task_WaitHideApplauseMeterForAppealStart; } } } -static void sub_80D8A50(u8 taskId) +static void Task_WaitHideApplauseMeterForAppealStart(u8 taskId) { - if (!eContest.applauseMeterIsMoving && !eContest.unk1920B_1) + if (!eContest.applauseMeterIsMoving && !eContest.sliderHeartsAnimating) gTasks[taskId].func = sub_80D8A88; } @@ -1984,7 +2005,7 @@ static void sub_80D8B38(u8 taskId) } return; case 17: - if (eContestantStatus[r6].disappointedRepeat) + if (eContestantStatus[r6].repeatedMove) { ContestClearGeneralTextWindow(); StringCopy(gStringVar1, gContestMons[r6].nickname); @@ -2039,7 +2060,7 @@ static void sub_80D8B38(u8 taskId) } if (r3 > 0) { - if (eContestantStatus[r6].disappointedRepeat) + if (eContestantStatus[r6].repeatedMove) r3 = 0; } ContestClearGeneralTextWindow(); @@ -2354,13 +2375,13 @@ static void sub_80DA28C(u8 taskId) case 0: if (++gTasks[taskId].data[1] > 20) { - sub_80DE69C(2); + AnimateSliderHearts(SLIDER_HEART_ANIM_APPEAR); gTasks[taskId].data[1] = 0; gTasks[taskId].data[0]++; } break; case 1: - if (!eContest.unk1920B_1) + if (!eContest.sliderHeartsAnimating) { if (++gTasks[taskId].data[1] > 20) { @@ -2370,7 +2391,7 @@ static void sub_80DA28C(u8 taskId) } break; case 2: - sub_80DC3AC(); + UpdateHeartSliders(); gTasks[taskId].data[0] = 0; gTasks[taskId].data[1] = 0; gTasks[taskId].func = sub_80DA31C; @@ -2380,7 +2401,7 @@ static void sub_80DA28C(u8 taskId) static void sub_80DA31C(u8 taskId) { - if (sub_80DC3C4()) + if (SlidersDoneUpdating()) gTasks[taskId].func = sub_80DA348; } @@ -2430,14 +2451,14 @@ static void sub_80DA464(u8 taskId) if (gTasks[taskId].data[0]++ > 29) { gTasks[taskId].data[0] = 0; - sub_80DC3AC(); + UpdateHeartSliders(); gTasks[taskId].func = sub_80DA49C; } } static void sub_80DA49C(u8 taskId) { - if (sub_80DC3C4()) + if (SlidersDoneUpdating()) { gTasks[taskId].data[0] = 0; gTasks[taskId].func = sub_80DA4CC; @@ -2479,7 +2500,7 @@ static void sub_80DA51C(u8 taskId) static void sub_80DA5B4(u8 taskId) { if (!eContest.applauseMeterIsMoving) - gTasks[taskId].func = sub_80D833C; + gTasks[taskId].func = Task_DisplayAppealNumberText; } static void sub_80DA5E8(u8 taskId) @@ -2556,7 +2577,7 @@ static void sub_80DA7A0(u8 taskId) SetTaskFuncWithFollowupFunc(taskId2, sub_80FCACC, sub_80DA7EC); gTasks[taskId].func = TaskDummy1; ContestPrintLinkStandby(); - sub_80DC490(FALSE); + SetBottomSliderHeartsInvisibility(FALSE); } static void sub_80DA7EC(u8 taskId) @@ -2588,7 +2609,7 @@ static void sub_80DA874(void) static void TryPutPlayerLast(void) { if (!(gLinkContestFlags & LINK_CONTEST_FLAG_IS_LINK)) - gContestPlayerMonIndex = 3; + gContestPlayerMonIndex = CONTESTANT_COUNT - 1; } static bool8 sub_80DA8A4(void) @@ -2598,7 +2619,7 @@ static bool8 sub_80DA8A4(void) return FALSE; } -void sub_80DA8C8(u8 partyIndex) +void CreateContestMonFromParty(u8 partyIndex) { u8 name[20]; u16 heldItem; @@ -2611,7 +2632,7 @@ void sub_80DA8C8(u8 partyIndex) StringCopy(name, gSaveBlock2Ptr->playerName); if (gLinkContestFlags & LINK_CONTEST_FLAG_IS_LINK) { - sub_80DF9D4(name); + StripPlayerNameForLinkContest(name); } memcpy(gContestMons[gContestPlayerMonIndex].trainerName, name, 8); if (gSaveBlock2Ptr->playerGender == MALE) @@ -2619,13 +2640,13 @@ void sub_80DA8C8(u8 partyIndex) else gContestMons[gContestPlayerMonIndex].trainerGfxId = OBJ_EVENT_GFX_LINK_MAY; gContestMons[gContestPlayerMonIndex].aiChecks = 0; - gContestMons[gContestPlayerMonIndex].unk2C[0] = 0; + gContestMons[gContestPlayerMonIndex].highestRank = 0; gContestMons[gContestPlayerMonIndex].species = GetMonData(&gPlayerParty[partyIndex], MON_DATA_SPECIES); GetMonData(&gPlayerParty[partyIndex], MON_DATA_NICKNAME, name); StringGetEnd10(name); if (gLinkContestFlags & LINK_CONTEST_FLAG_IS_LINK) { - sub_80DF9E0(name, GetMonData(&gPlayerParty[partyIndex], MON_DATA_LANGUAGE)); + StripMonNameForLinkContest(name, GetMonData(&gPlayerParty[partyIndex], MON_DATA_LANGUAGE)); } memcpy(gContestMons[gContestPlayerMonIndex].nickname, name, POKEMON_NAME_LENGTH + 1); StringCopy(gContestMons[gContestPlayerMonIndex].nickname, name); @@ -2730,7 +2751,7 @@ void sub_80DAB8C(u8 contestType, u8 rank) opponentsCount--; } - sub_80DA8C8(gContestMonPartyIndex); + CreateContestMonFromParty(gContestMonPartyIndex); } void sub_80DACBC(u8 contestType, u8 rank, bool32 isPostgame) @@ -2770,8 +2791,8 @@ void sub_80DACBC(u8 contestType, u8 rank, bool32 isPostgame) u16 rnd = GetContestRand() % opponentsCount; gContestMons[gNumLinkContestPlayers + i] = gContestOpponents[opponents[rnd]]; - sub_80DF9D4(gContestMons[gNumLinkContestPlayers + i].trainerName); - sub_80DF9E0(gContestMons[gNumLinkContestPlayers + i].nickname, GAME_LANGUAGE); + StripPlayerNameForLinkContest(gContestMons[gNumLinkContestPlayers + i].trainerName); + StripMonNameForLinkContest(gContestMons[gNumLinkContestPlayers + i].nickname, GAME_LANGUAGE); for (j = rnd; opponents[j] != 0xFF; j++) opponents[j] = opponents[j + 1]; opponentsCount--; @@ -3167,7 +3188,7 @@ static bool8 sub_80DB798(u8 a) u16 r8 = 0; u8 r7 = gContestantTurnOrder[a] * 5 + 2; - if (eContestantStatus[a].resistant != 0 || eContestantStatus[a].immune != 0 || eContestantStatus[a].jamSafetyCount != 0 || eContestantStatus[a].jamReduction != 0) + if (eContestantStatus[a].resistant || eContestantStatus[a].immune || eContestantStatus[a].jamSafetyCount != 0 || eContestantStatus[a].jamReduction != 0) r8 = sub_80DB748(0); else if (eContestantStatus[a].nervous) r8 = sub_80DB748(1); @@ -3205,7 +3226,7 @@ static void ContestClearGeneralTextWindow(void) static u16 GetChosenMove(u8 contestant) { if (Contest_IsMonsTurnDisabled(contestant)) - return 0; + return MOVE_NONE; if (contestant == gContestPlayerMonIndex) { return gContestMons[contestant].moves[eContest.playerMoveChoice]; @@ -3333,8 +3354,8 @@ static void sub_80DBAA0(void) eContestantStatus[i].effectStringId = CONTEST_STRING_NONE; eContestantStatus[i].effectStringId2 = CONTEST_STRING_NONE; eContestantStatus[i].conditionMod = 0; - eContestantStatus[i].unk15_2 = eContestantStatus[i].disappointedRepeat; - eContestantStatus[i].disappointedRepeat = FALSE; + eContestantStatus[i].repeatedPrevMove = eContestantStatus[i].repeatedMove; + eContestantStatus[i].repeatedMove = FALSE; eContestantStatus[i].turnOrderModAction = 0; eContestantStatus[i].appealTripleCondition = 0; if (eContestantStatus[i].turnSkipped) @@ -3344,8 +3365,8 @@ static void sub_80DBAA0(void) } if (eContestantStatus[i].exploded) { - eContestantStatus[i].noMoreTurns = 1; - eContestantStatus[i].exploded = 0; + eContestantStatus[i].noMoreTurns = TRUE; + eContestantStatus[i].exploded = FALSE; } eContestantStatus[i].overrideCategoryExcitementMod = 0; } @@ -3634,56 +3655,60 @@ static void sub_80DC0F4(u8 taskId) } } -static void sub_80DC2BC(void) +static void CreateSliderHeartSprites(void) { s32 i; - LoadSpriteSheet(&gUnknown_08587A74); + LoadSpriteSheet(&sSpriteSheet_SliderHeart); for (i = 0; i < CONTESTANT_COUNT; i++) { - u8 y = gUnknown_08587A6C[gContestantTurnOrder[i]]; + u8 y = sSliderHeartYPositions[gContestantTurnOrder[i]]; - gContestResources->field_14[i].unk0 = CreateSprite(&gSpriteTemplate_8587AD0, 180, y, 1); + gContestResources->field_14[i].sliderHeartSpriteId = CreateSprite(&sSpriteTemplate_SliderHeart, 180, y, 1); } } -static void sub_80DC308(u8 contestant) +#define sContestant data[0] +#define sTargetX data[1] +#define sMoveX data[2] + +static void UpdateHeartSlider(u8 contestant) { u8 spriteId; - s16 r5; + s16 slideTarget; - gContestResources->field_14[contestant].unk2_0 = 1; - spriteId = gContestResources->field_14[contestant].unk0; - r5 = eContestantStatus[contestant].pointTotal / 10 * 2; - if (r5 > 56) - r5 = 56; - else if (r5 < 0) - r5 = 0; + gContestResources->field_14[contestant].sliderUpdating = TRUE; + spriteId = gContestResources->field_14[contestant].sliderHeartSpriteId; + slideTarget = eContestantStatus[contestant].pointTotal / 10 * 2; + if (slideTarget > 56) + slideTarget = 56; + else if (slideTarget < 0) + slideTarget = 0; gSprites[spriteId].invisible = FALSE; - gSprites[spriteId].data[0] = contestant; - gSprites[spriteId].data[1] = r5; - if (gSprites[spriteId].data[1] > gSprites[spriteId].pos2.x) - gSprites[spriteId].data[2] = 1; + gSprites[spriteId].sContestant = contestant; + gSprites[spriteId].sTargetX = slideTarget; + if (gSprites[spriteId].sTargetX > gSprites[spriteId].pos2.x) + gSprites[spriteId].sMoveX = 1; else - gSprites[spriteId].data[2] = -1; - gSprites[spriteId].callback = sub_80DC408; + gSprites[spriteId].sMoveX = -1; + gSprites[spriteId].callback = SpriteCB_UpdateHeartSlider; } -static void sub_80DC3AC(void) +static void UpdateHeartSliders(void) { s32 i; for (i = 0; i < CONTESTANT_COUNT; i++) - sub_80DC308(i); + UpdateHeartSlider(i); } -static bool8 sub_80DC3C4(void) +static bool8 SlidersDoneUpdating(void) { s32 i; for (i = 0; i < CONTESTANT_COUNT; i++) { - if (gContestResources->field_14[i].unk2_0) + if (gContestResources->field_14[i].sliderUpdating) break; } if (i == CONTESTANT_COUNT) @@ -3692,57 +3717,64 @@ static bool8 sub_80DC3C4(void) return FALSE; } -static void sub_80DC408(struct Sprite *sprite) +static void SpriteCB_UpdateHeartSlider(struct Sprite *sprite) { - if (sprite->pos2.x == sprite->data[1]) + if (sprite->pos2.x == sprite->sTargetX) { - gContestResources->field_14[sprite->data[0]].unk2_0 = 0; + gContestResources->field_14[sprite->sContestant].sliderUpdating = FALSE; sprite->callback = SpriteCallbackDummy; } else { - sprite->pos2.x += sprite->data[2]; + sprite->pos2.x += sprite->sMoveX; } } -static void sub_80DC44C(void) +#undef sContestant +#undef sTargetX +#undef sMoveX + +// Y positions change as the contestants change order +static void UpdateSliderHeartSpriteYPositions(void) { s32 i; for (i = 0; i < CONTESTANT_COUNT; i++) - gSprites[gContestResources->field_14[i].unk0].pos1.y = gUnknown_08587A6C[gContestantTurnOrder[i]]; + gSprites[gContestResources->field_14[i].sliderHeartSpriteId].pos1.y = sSliderHeartYPositions[gContestantTurnOrder[i]]; } -static void sub_80DC490(bool8 a) +// Used to hide (or subsequently reshow) the bottom two slider hearts that get hidden by text windows by moving them offscreen +static void SetBottomSliderHeartsInvisibility(bool8 invisible) { s32 i; for (i = 0; i < CONTESTANT_COUNT; i++) { + // The contestants that go 3rd and 4th should be moved if (gContestantTurnOrder[i] > 1) { - if (!a) - gSprites[gContestResources->field_14[i].unk0].pos1.x = 180; + if (!invisible) + gSprites[gContestResources->field_14[i].sliderHeartSpriteId].pos1.x = 180; else - gSprites[gContestResources->field_14[i].unk0].pos1.x = 256; + gSprites[gContestResources->field_14[i].sliderHeartSpriteId].pos1.x = 256; } } } -static void sub_80DC4F0(void) +static void CreateNextTurnSprites(void) { s32 i; - LoadSpritePalette(&gUnknown_08587B08); + LoadSpritePalette(&sSpritePalette_NextTurn); for (i = 0; i < CONTESTANT_COUNT; i++) { - LoadCompressedSpriteSheet(&gUnknown_08587AE8[i]); - gContestResources->field_14[i].unk1 = CreateSprite(&gSpriteTemplate_8587B18[i], + LoadCompressedSpriteSheet(&sSpriteSheet_NextTurn[i]); + gContestResources->field_14[i].nextTurnSpriteId = CreateSprite(&sSpriteTemplates_NextTurn[i], 204, - gUnknown_08587A70[gContestantTurnOrder[i]], + sNextTurnSpriteYPositions[gContestantTurnOrder[i]], 0); - SetSubspriteTables(&gSprites[gContestResources->field_14[i].unk1], gSubspriteTables_8587B80); - gSprites[gContestResources->field_14[i].unk1].invisible = TRUE; + SetSubspriteTables(&gSprites[gContestResources->field_14[i].nextTurnSpriteId], sSubspriteTable_NextTurn); + gSprites[gContestResources->field_14[i].nextTurnSpriteId].invisible = TRUE; } } @@ -4225,7 +4257,7 @@ static void sub_80DD080(u8 contestant) eContestantStatus[contestant].moveCategory = gContestMoves[eContestantStatus[contestant].currMove].contestCategory; if (eContestantStatus[contestant].currMove == eContestantStatus[contestant].prevMove && eContestantStatus[contestant].currMove != MOVE_NONE) { - eContestantStatus[contestant].disappointedRepeat = TRUE; + eContestantStatus[contestant].repeatedMove = TRUE; eContestantStatus[contestant].moveRepeatCount++; } else @@ -4258,25 +4290,25 @@ static void sub_80DD080(u8 contestant) eContestantStatus[contestant].appeal2 += eContestantStatus[contestant].condition; eContestantStatus[contestant].unk16 = 0; - eContestantStatus[contestant].unk15_6 = 0; + eContestantStatus[contestant].unk15_6 = FALSE; if (sub_80DE1E8(contestant)) { - u8 r2 = AreMovesContestCombo(eContestantStatus[contestant].prevMove, eContestantStatus[contestant].currMove); + bool8 usedCombo = AreMovesContestCombo(eContestantStatus[contestant].prevMove, eContestantStatus[contestant].currMove); - if (r2 != 0 && eContestantStatus[contestant].hasJudgesAttention) + if (usedCombo && eContestantStatus[contestant].hasJudgesAttention) { - eContestantStatus[contestant].unk16 = r2; - eContestantStatus[contestant].unk15_6 = 1; + eContestantStatus[contestant].unk16 = usedCombo; + eContestantStatus[contestant].unk15_6 = TRUE; eContestantStatus[contestant].hasJudgesAttention = 0; eContestantStatus[contestant].unk17 = eContestantStatus[contestant].appeal1 * eContestantStatus[contestant].unk16; - eContestantStatus[contestant].unk15_3 = 1; + eContestantStatus[contestant].unk15_3 = TRUE; } else { if (gContestMoves[eContestantStatus[contestant].currMove].comboStarterId != 0) { eContestantStatus[contestant].hasJudgesAttention = 1; - eContestantStatus[contestant].unk15_6 = 1; + eContestantStatus[contestant].unk15_6 = TRUE; } else { @@ -4284,7 +4316,7 @@ static void sub_80DD080(u8 contestant) } } } - if (eContestantStatus[contestant].disappointedRepeat) + if (eContestantStatus[contestant].repeatedMove) eContestantStatus[contestant].unk18 = (eContestantStatus[contestant].moveRepeatCount + 1) * 10; if (eContestantStatus[contestant].nervous) @@ -4309,7 +4341,7 @@ static void sub_80DD080(u8 contestant) eContestResources10.unk2 = 0; } - rnd = Random() % 3; + rnd = Random() % (CONTESTANT_COUNT - 1); for (i = 0; i < CONTESTANT_COUNT; i++) { if (i != contestant) @@ -4537,7 +4569,7 @@ static u8 StartApplauseOverflowAnimation(void) u8 taskId = CreateTask(Task_ApplauseOverflowAnimation, 10); gTasks[taskId].data[1] = 1; - gTasks[taskId].data[2] = IndexOfSpritePaletteTag(APPLAUSE_METER_GFX_TAG); + gTasks[taskId].data[2] = IndexOfSpritePaletteTag(TAG_APPLAUSE_METER); return taskId; } @@ -4661,14 +4693,14 @@ static void Task_ShowAndUpdateApplauseMeter(u8 taskId) } // Unused. -void HideApplauseMeterNoAnim(void) +static void HideApplauseMeterNoAnim(void) { gSprites[eContest.applauseMeterSpriteId].pos2.x = 0; gSprites[eContest.applauseMeterSpriteId].invisible = FALSE; } // Unused. -void ShowApplauseMeterNoAnim(void) +static void ShowApplauseMeterNoAnim(void) { gSprites[eContest.applauseMeterSpriteId].invisible = TRUE; } @@ -4779,13 +4811,13 @@ static void sub_80DE008(bool8 a) { if (eContestantStatus[i].turnOrderMod != 0 && a) { - CpuCopy32(GetTurnOrderNumberGfx(i), (void *)(VRAM + 0x10000 + (gSprites[gContestResources->field_14[i].unk1].oam.tileNum + 6) * 32), 32); - gSprites[gContestResources->field_14[i].unk1].pos1.y = gUnknown_08587A70[gContestantTurnOrder[i]]; - gSprites[gContestResources->field_14[i].unk1].invisible = FALSE; + CpuCopy32(GetTurnOrderNumberGfx(i), (void *)(VRAM + 0x10000 + (gSprites[gContestResources->field_14[i].nextTurnSpriteId].oam.tileNum + 6) * 32), 32); + gSprites[gContestResources->field_14[i].nextTurnSpriteId].pos1.y = sNextTurnSpriteYPositions[gContestantTurnOrder[i]]; + gSprites[gContestResources->field_14[i].nextTurnSpriteId].invisible = FALSE; } else { - gSprites[gContestResources->field_14[i].unk1].invisible = TRUE; + gSprites[gContestResources->field_14[i].nextTurnSpriteId].invisible = TRUE; } } } @@ -4800,21 +4832,17 @@ static const u8 *GetTurnOrderNumberGfx(u8 contestant) static void sub_80DE12C(void) { - s32 r7 = 0; - u8 r10 = 2; - u8 r8 = 1; - u8 r9 = 0x11; - - for (r7 = 0; r7 < CONTESTANT_COUNT; r7++) + s32 i = 0; + for (i = 0; i < CONTESTANT_COUNT; i++) { - if (eContestResources8.unnervedPokes[r7] != 0 && !Contest_IsMonsTurnDisabled(r7)) + if (eContestResources8.unnervedPokes[i] != 0 && !Contest_IsMonsTurnDisabled(i)) { - u32 r6 = gContestantTurnOrder[r7] * 5 + 2; + u32 r6 = gContestantTurnOrder[i] * 5 + 2; u16 var = sub_80DB748(3); - ContestBG_FillBoxWithIncrementingTile(0, var, 0x14, r6, r10, r8, r9, r8); + ContestBG_FillBoxWithIncrementingTile(0, var, 20, r6, 2, 1, 17, 1); var += 16; - ContestBG_FillBoxWithIncrementingTile(0, var, 0x14, r6 + 1, r10, r8, r9, r8); + ContestBG_FillBoxWithIncrementingTile(0, var, 20, r6 + 1, 2, 1, 17, 1); PlaySE(SE_C_PASI); } } @@ -4822,7 +4850,7 @@ static void sub_80DE12C(void) bool8 sub_80DE1E8(u8 contestant) { - if (eContestantStatus[contestant].disappointedRepeat || eContestantStatus[contestant].nervous) + if (eContestantStatus[contestant].repeatedMove || eContestantStatus[contestant].nervous) return FALSE; else return TRUE; @@ -4859,10 +4887,10 @@ static void sub_80DE224(void) CopyToBgTilemapBuffer(1, gUnknown_08C17980, 0, 0); Contest_SetBgCopyFlags(1); - for (i = 0; i < 4; i++) + for (i = 0; i < CONTESTANT_COUNT; i++) { - gSprites[gContestResources->field_14[i].unk0].oam.priority = 1; - gSprites[gContestResources->field_14[i].unk1].oam.priority = 1; + gSprites[gContestResources->field_14[i].sliderHeartSpriteId].oam.priority = 1; + gSprites[gContestResources->field_14[i].nextTurnSpriteId].oam.priority = 1; } } @@ -4887,8 +4915,8 @@ static void sub_80DE350(void) for (i = 0; i < CONTESTANT_COUNT; i++) { - gSprites[gContestResources->field_14[i].unk0].oam.priority = 0; - gSprites[gContestResources->field_14[i].unk1].oam.priority = 0; + gSprites[gContestResources->field_14[i].sliderHeartSpriteId].oam.priority = 0; + gSprites[gContestResources->field_14[i].nextTurnSpriteId].oam.priority = 0; } } @@ -4927,7 +4955,7 @@ static void sub_80DE4A8(u8 taskId) sub_80DB69C(); DrawContestantWindows(); sub_80DE008(TRUE); - sub_80DC44C(); + UpdateSliderHeartSpriteYPositions(); gTasks[taskId].data[0] = 1; break; case 1: @@ -5013,45 +5041,49 @@ static void sub_80DE65C(u8 taskId) } } -static void sub_80DE69C(u8 a) +#define tAnimId data[0] + +static void AnimateSliderHearts(u8 animId) { s32 i; u8 taskId; for (i = 0; i < CONTESTANT_COUNT; i++) { - gSprites[gContestResources->field_14[i].unk0].oam.matrixNum = AllocOamMatrix(); - gSprites[gContestResources->field_14[i].unk0].oam.affineMode = ST_OAM_AFFINE_NORMAL; - StartSpriteAffineAnim(&gSprites[gContestResources->field_14[i].unk0], a); - if (a == 2) + gSprites[gContestResources->field_14[i].sliderHeartSpriteId].oam.matrixNum = AllocOamMatrix(); + gSprites[gContestResources->field_14[i].sliderHeartSpriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL; + StartSpriteAffineAnim(&gSprites[gContestResources->field_14[i].sliderHeartSpriteId], animId); + if (animId == SLIDER_HEART_ANIM_APPEAR) { - AnimateSprite(&gSprites[gContestResources->field_14[i].unk0]); - gSprites[gContestResources->field_14[i].unk0].invisible = FALSE; + AnimateSprite(&gSprites[gContestResources->field_14[i].sliderHeartSpriteId]); + gSprites[gContestResources->field_14[i].sliderHeartSpriteId].invisible = FALSE; } } - taskId = CreateTask(sub_80DE794, 5); - gTasks[taskId].data[0] = a; - eContest.unk1920B_1 = 1; + taskId = CreateTask(Task_WaitForSliderHeartAnim, 5); + gTasks[taskId].tAnimId = animId; + eContest.sliderHeartsAnimating = TRUE; } -static void sub_80DE794(u8 taskId) +static void Task_WaitForSliderHeartAnim(u8 taskId) { s32 i; - if (gSprites[gContestResources->field_14[0].unk0].affineAnimEnded) + if (gSprites[gContestResources->field_14[0].sliderHeartSpriteId].affineAnimEnded) { - if ((u8)gTasks[taskId].data[0] == 1) + if ((u8)gTasks[taskId].tAnimId == SLIDER_HEART_ANIM_DISAPPEAR) { for (i = 0; i < CONTESTANT_COUNT; i++) - gSprites[gContestResources->field_14[i].unk0].invisible = TRUE; + gSprites[gContestResources->field_14[i].sliderHeartSpriteId].invisible = TRUE; } for (i = 0; i < CONTESTANT_COUNT; i++) - FreeSpriteOamMatrix(&gSprites[gContestResources->field_14[i].unk0]); - eContest.unk1920B_1 = 0; + FreeSpriteOamMatrix(&gSprites[gContestResources->field_14[i].sliderHeartSpriteId]); + eContest.sliderHeartsAnimating = FALSE; DestroyTask(taskId); } } +#undef tAnimId + static u16 SanitizeMove(u16 move) { if (move >= MOVES_COUNT) @@ -5073,7 +5105,7 @@ static void sub_80DE864(u8 a) u16 species = SanitizeSpecies(gContestMons[a].species); u8 r5_2; - memset(&gContestResources->field_18->species, 0, 0x14); + memset(&gContestResources->field_18->species, 0, 20); ClearBattleAnimationVars(); for (i = 0; i < CONTESTANT_COUNT; i++) gBattleMonForms[i] = 0; @@ -5277,7 +5309,7 @@ void ResetContestLinkResults(void) s32 j; for(i = 0; i < CONTEST_CATEGORIES_COUNT; i++) - for(j = 0; j < 4; j++) + for(j = 0; j < CONTESTANT_COUNT; j++) gSaveBlock2Ptr->contestLinkResults[i][j] = 0; } @@ -5391,7 +5423,7 @@ static void sub_80DF080(u8 contestant) if (!gContestResources->field_10->excitementFrozen && gContestResources->field_10->bits_0 > 0 - && !eContestantStatus[contestant].disappointedRepeat) + && !eContestantStatus[contestant].repeatedMove) { gContestResources->field_1c[contestant].unkC |= 1; gContestResources->field_1c[contestant].unkE_2 = 1; @@ -5434,7 +5466,7 @@ static void sub_80DF080(u8 contestant) gContestResources->field_1c[contestant].unk0[eContest.turnNumber] = eContestantStatus[contestant].currMove; } - if (eContestantStatus[contestant].disappointedRepeat) + if (eContestantStatus[contestant].repeatedMove) gContestResources->field_1c[contestant].unkD |= 2; if (eContest.applauseLevel == 4 @@ -5745,14 +5777,14 @@ static void ContestDebugPrintBitStrings(void) SwapMoveDescAndContestTilemaps(); } -static u8 sub_80DF940(u8 *nickname) +static u8 GetMonNicknameLanguage(u8 *nickname) { u8 ret = GAME_LANGUAGE; if (nickname[0] == EXT_CTRL_CODE_BEGIN && nickname[1] == EXT_CTRL_CODE_JPN) return LANGUAGE_ENGLISH; - if (StringLength(nickname) < 6) + if (StringLength(nickname) < PLAYER_NAME_LENGTH - 1) { while (*nickname != EOS) { @@ -5786,7 +5818,7 @@ static u8 sub_80DF940(u8 *nickname) return ret; } -static void sub_80DF9D4(u8 *playerName) +static void StripPlayerNameForLinkContest(u8 *playerName) { u8 chr = playerName[5]; @@ -5794,7 +5826,7 @@ static void sub_80DF9D4(u8 *playerName) playerName[PLAYER_NAME_LENGTH] = chr; } -static void sub_80DF9E0(u8 *monName, s32 language) +static void StripMonNameForLinkContest(u8 *monName, s32 language) { u8 chr; @@ -5812,13 +5844,13 @@ static void sub_80DF9E0(u8 *monName, s32 language) } } -void sub_80DFA08(struct ContestPokemon *mon, s32 language) +void StripPlayerAndMonNamesForLinkContest(struct ContestPokemon *mon, s32 language) { u8 *name = mon->nickname; if (language == LANGUAGE_JAPANESE) { - ConvertInternationalString(name, sub_80DF940(name)); + ConvertInternationalString(name, GetMonNicknameLanguage(name)); } else if (name[POKEMON_NAME_LENGTH] == EXT_CTRL_CODE_BEGIN) { diff --git a/src/contest_ai.c b/src/contest_ai.c index 723c503ab7..e2afb2890c 100644 --- a/src/contest_ai.c +++ b/src/contest_ai.c @@ -4,6 +4,7 @@ #include "random.h" #include "contest_ai.h" #include "contest_effect.h" +#include "constants/moves.h" extern const u8 *gAIScriptPtr; extern const u8 *gContestAIChecks[]; @@ -288,7 +289,7 @@ static const ContestAICmdFunc sContestAICmdTable[] = }; static void ContestAI_DoAIProcessing(void); -static bool8 sub_81563B0(u8); +static bool8 GetContestantIdByTurn(u8); static void AIStackPushVar(const u8 *); static u8 AIStackPop(void); @@ -297,8 +298,8 @@ void ContestAI_ResetAI(u8 contestantAI) int i; memset(&eContestAI, 0, sizeof(struct ContestAIInfo)); - for (i = 0; i < 4; i++) - eContestAI.unk5[i] = 100; + for (i = 0; i < MAX_MON_MOVES; i++) + eContestAI.moveScores[i] = 100; eContestAI.contestantId = contestantAI; eContestAI.stackSize = 0; @@ -321,16 +322,18 @@ u8 ContestAI_GetActionToUse(void) while (1) { - u8 rval = Random() & 3; - u8 r2 = eContestAI.unk5[rval]; + // Randomly choose a move index. If it's the move + // with the highest (or tied highest) score, return + u8 moveIdx = Random() & (MAX_MON_MOVES - 1); // % 4 doesn't match + u8 score = eContestAI.moveScores[moveIdx]; int i; - for (i = 0; i < 4; i++) + for (i = 0; i < MAX_MON_MOVES; i++) { - if (r2 < eContestAI.unk5[i]) + if (score < eContestAI.moveScores[i]) break; } - if (i == 4) - return rval; + if (i == MAX_MON_MOVES) + return moveIdx; } } @@ -345,26 +348,26 @@ static void ContestAI_DoAIProcessing(void) case CONTESTAI_SETTING_UP: gAIScriptPtr = gContestAIChecks[eContestAI.currentAICheck]; - if (gContestMons[eContestAI.contestantId].moves[eContestAI.nextMoveIndex] == 0) - eContestAI.nextMove = 0; // don't process a move that doesn't exist. + if (gContestMons[eContestAI.contestantId].moves[eContestAI.nextMoveIndex] == MOVE_NONE) + eContestAI.nextMove = MOVE_NONE; // don't process a move that doesn't exist. else eContestAI.nextMove = gContestMons[eContestAI.contestantId].moves[eContestAI.nextMoveIndex]; eContestAI.aiState++; break; case CONTESTAI_PROCESSING: - if (eContestAI.nextMove != 0) + if (eContestAI.nextMove != MOVE_NONE) { sContestAICmdTable[*gAIScriptPtr](); // run the command. } else { - eContestAI.unk5[eContestAI.nextMoveIndex] = 0; // don't consider a move that doesn't exist. + eContestAI.moveScores[eContestAI.nextMoveIndex] = 0; // don't consider a move that doesn't exist. eContestAI.aiAction |= 1; } if (eContestAI.aiAction & 1) { eContestAI.nextMoveIndex++; - if (eContestAI.nextMoveIndex < 4) + if (eContestAI.nextMoveIndex < MAX_MON_MOVES) eContestAI.aiState = 0; else // aiState = CONTESTAI_FINISHED @@ -376,12 +379,12 @@ static void ContestAI_DoAIProcessing(void) } } -static u8 sub_81563B0(u8 var) +static u8 GetContestantIdByTurn(u8 turn) { int i; - for (i = 0; i < 4; i++) - if (eContestResources8.turnOrder[i] == var) + for (i = 0; i < CONTESTANT_COUNT; i++) + if (eContestResources8.turnOrder[i] == turn) break; return i; @@ -389,14 +392,14 @@ static u8 sub_81563B0(u8 var) static void ContestAICmd_score(void) { - s16 score = eContestAI.unk5[eContestAI.nextMoveIndex] + (s8)gAIScriptPtr[1]; + s16 score = eContestAI.moveScores[eContestAI.nextMoveIndex] + (s8)gAIScriptPtr[1]; if (score > 255) score = 255; else if (score < 0) score = 0; - eContestAI.unk5[eContestAI.nextMoveIndex] = score; + eContestAI.moveScores[eContestAI.nextMoveIndex] = score; gAIScriptPtr += 2; } @@ -1146,9 +1149,9 @@ static void ContestAICmd_if_would_not_finish_combo(void) static void ContestAICmd_get_condition(void) { - int var = sub_81563B0(gAIScriptPtr[1]); + u8 contestant = GetContestantIdByTurn(gAIScriptPtr[1]); - eContestAI.scriptResult = eContestantStatus[var].condition / 10; + eContestAI.scriptResult = eContestantStatus[contestant].condition / 10; gAIScriptPtr += 2; } @@ -1194,11 +1197,11 @@ static void ContestAICmd_if_condition_not_eq(void) static void ContestAICmd_get_used_combo_starter(void) { - u16 result = 0; - u8 var = sub_81563B0(gAIScriptPtr[1]); + u16 result = FALSE; + u8 contestant = GetContestantIdByTurn(gAIScriptPtr[1]); - if (sub_80DE1E8(var)) - result = gContestMoves[eContestantStatus[var].prevMove].comboStarterId ? 1 : 0; + if (sub_80DE1E8(contestant)) + result = gContestMoves[eContestantStatus[contestant].prevMove].comboStarterId ? TRUE : FALSE; eContestAI.scriptResult = result; gAIScriptPtr += 2; @@ -1246,7 +1249,7 @@ static void ContestAICmd_if_used_combo_starter_not_eq(void) static void ContestAICmd_check_can_participate(void) { - if (Contest_IsMonsTurnDisabled(sub_81563B0(gAIScriptPtr[1]))) + if (Contest_IsMonsTurnDisabled(GetContestantIdByTurn(gAIScriptPtr[1]))) eContestAI.scriptResult = FALSE; else eContestAI.scriptResult = TRUE; @@ -1276,9 +1279,9 @@ static void ContestAICmd_if_cannot_participate(void) static void ContestAICmd_get_val_812A188(void) { - u8 var = sub_81563B0(gAIScriptPtr[1]); + u8 contestant = GetContestantIdByTurn(gAIScriptPtr[1]); - eContestAI.scriptResult = eContestantStatus[var].unk15_3; + eContestAI.scriptResult = eContestantStatus[contestant].unk15_3; gAIScriptPtr += 2; } @@ -1304,9 +1307,9 @@ static void ContestAICmd_contest_58(void) static void ContestAICmd_unk_59(void) { - u8 var = sub_81563B0(gAIScriptPtr[1]); + u8 contestant = GetContestantIdByTurn(gAIScriptPtr[1]); - eContestAI.scriptResult = eContestantStatus[var].pointTotal - eContestantStatus[eContestAI.contestantId].pointTotal; + eContestAI.scriptResult = eContestantStatus[contestant].pointTotal - eContestantStatus[eContestAI.contestantId].pointTotal; gAIScriptPtr += 2; } @@ -1352,9 +1355,9 @@ static void ContestAICmd_unk_5D(void) static void ContestAICmd_unk_5E(void) { - u8 var = sub_81563B0(gAIScriptPtr[1]); + u8 contestant = GetContestantIdByTurn(gAIScriptPtr[1]); - eContestAI.scriptResult = gContestMonConditions[var] - gContestMonConditions[eContestAI.contestantId]; + eContestAI.scriptResult = gContestMonConditions[contestant] - gContestMonConditions[eContestAI.contestantId]; gAIScriptPtr += 2; } @@ -1400,9 +1403,9 @@ static void ContestAICmd_unk_62(void) static void ContestAICmd_unk_63(void) { - u8 var = sub_81563B0(gAIScriptPtr[1]); - u8 var2 = gAIScriptPtr[2]; - u16 move = eContest.moveHistory[var2][var]; + u8 contestant = GetContestantIdByTurn(gAIScriptPtr[1]); + u8 turn = gAIScriptPtr[2]; + u16 move = eContest.moveHistory[turn][contestant]; eContestAI.scriptResult = gContestMoves[move].effect; gAIScriptPtr += 3; @@ -1450,9 +1453,9 @@ static void ContestAICmd_unk_67(void) static void ContestAICmd_unk_68(void) { - u8 var = sub_81563B0(gAIScriptPtr[1]); - u8 var2 = gAIScriptPtr[2]; - s8 result = eContest.excitementHistory[var2][var]; + u8 contestant = GetContestantIdByTurn(gAIScriptPtr[1]); + u8 turn = gAIScriptPtr[2]; + s8 result = eContest.excitementHistory[turn][contestant]; eContestAI.scriptResult = result; gAIScriptPtr += 3; @@ -1500,9 +1503,9 @@ static void ContestAICmd_unk_6C(void) static void ContestAICmd_unk_6D(void) { - u8 var = sub_81563B0(gAIScriptPtr[1]); - u8 var2 = gAIScriptPtr[2]; - u16 move = eContest.moveHistory[var2][var]; + u8 contestant = GetContestantIdByTurn(gAIScriptPtr[1]); + u8 turn = gAIScriptPtr[2]; + u16 move = eContest.moveHistory[turn][contestant]; eContestAI.scriptResult = gContestEffects[gContestMoves[move].effect].effectType; gAIScriptPtr += 3; diff --git a/src/contest_effect.c b/src/contest_effect.c index d6b06c3bae..1d3c817763 100644 --- a/src/contest_effect.c +++ b/src/contest_effect.c @@ -97,7 +97,7 @@ static void ContestEffect_GreatAppealButNoMoreMoves(void) static void ContestEffect_RepetitionNotBoring(void) { eContestantStatus[eContestResources8.contestant].usedRepeatableMove = TRUE; - eContestantStatus[eContestResources8.contestant].disappointedRepeat = FALSE; + eContestantStatus[eContestResources8.contestant].repeatedMove = FALSE; eContestantStatus[eContestResources8.contestant].moveRepeatCount = 0; } @@ -138,7 +138,7 @@ static void ContestEffect_StartleFrontMon(void) if (eContestResources8.turnOrder[a] != 0) { int i; - for (i = 0; i < 4; i++) + for (i = 0; i < CONTESTANT_COUNT; i++) { if (eContestResources8.turnOrder[a] - 1 == eContestResources8.turnOrder[i]) break; @@ -156,15 +156,15 @@ static void ContestEffect_StartleFrontMon(void) static void ContestEffect_StartlePrevMons(void) { u8 idx = 0; - u8 a = eContestResources8.contestant; + u8 contestant = eContestResources8.contestant; - if (eContestResources8.turnOrder[a] != 0) + if (eContestResources8.turnOrder[contestant] != 0) { int i, j; - for (i = 0, j = 0; i < 4; i++) + for (i = 0, j = 0; i < CONTESTANT_COUNT; i++) { - if (eContestResources8.turnOrder[a] > eContestResources8.turnOrder[i]) + if (eContestResources8.turnOrder[contestant] > eContestResources8.turnOrder[i]) eContestResources8.jamQueue[j++] = i; } @@ -390,11 +390,11 @@ static void ContestEffect_MakeFollowingMonsNervous(void) u8 contestantIds[5]; int i; int numAfter; - s16 oddsMod[4]; - s16 odds[4]; + s16 oddsMod[CONTESTANT_COUNT]; + s16 odds[CONTESTANT_COUNT]; memset(contestantIds, 0xFF, ARRAY_COUNT(contestantIds)); - for (i = 0, numAfter = 0; i < 4; i++) + for (i = 0, numAfter = 0; i < CONTESTANT_COUNT; i++) { if (eContestResources8.turnOrder[eContestResources8.contestant] < eContestResources8.turnOrder[i] && !eContestantStatus[i].nervous && !Contest_IsMonsTurnDisabled(i)) @@ -418,10 +418,10 @@ static void ContestEffect_MakeFollowingMonsNervous(void) } else { - for (i = 0; i < 4; i++) + for (i = 0; i < CONTESTANT_COUNT; i++) odds[i] = 0; } - for (i = 0; i < 4; i++) + for (i = 0; i < CONTESTANT_COUNT; i++) { if (eContestantStatus[i].hasJudgesAttention && sub_80DE1E8(i)) oddsMod[i] = gComboStarterLookupTable[gContestMoves[eContestantStatus[i].prevMove].comboStarterId] * 10; @@ -471,7 +471,7 @@ static void ContestEffect_WorsenConditionOfPrevMons(void) u8 numHit = 0; int i; - for (i = 0; i < 4; i++) + for (i = 0; i < CONTESTANT_COUNT; i++) { if (eContestResources8.turnOrder[eContestResources8.contestant] > eContestResources8.turnOrder[i] && eContestantStatus[i].condition > 0 && @@ -495,7 +495,7 @@ static void ContestEffect_BadlyStartlesMonsInGoodCondition(void) u8 numHit = 0; int i; - for (i = 0; i < 4; i++) + for (i = 0; i < CONTESTANT_COUNT; i++) { if (eContestResources8.turnOrder[eContestResources8.contestant] > eContestResources8.turnOrder[i]) { @@ -542,7 +542,7 @@ static void ContestEffect_AppealAsGoodAsPrevOnes(void) int i; int appealSum; - for (i = 0, appealSum = 0; i < 4; i++) + for (i = 0, appealSum = 0; i < CONTESTANT_COUNT; i++) { if (eContestResources8.turnOrder[eContestResources8.contestant] > eContestResources8.turnOrder[i]) appealSum += eContestantStatus[i].appeal2; @@ -570,7 +570,7 @@ static void ContestEffect_AppealAsGoodAsPrevOne(void) if (eContestResources8.turnOrder[eContestResources8.contestant] != 0) { int i; - for (i = 0; i < 4; i++) + for (i = 0; i < CONTESTANT_COUNT; i++) { if (eContestResources8.turnOrder[eContestResources8.contestant] - 1 == eContestResources8.turnOrder[i]) appeal = eContestantStatus[i].appeal2; @@ -647,7 +647,7 @@ static void ContestEffect_BetterIfSameType(void) while (1) { - for (j = 0; j < 4; j++) + for (j = 0; j < CONTESTANT_COUNT; j++) { if (eContestResources8.turnOrder[j] == i) break; @@ -679,7 +679,7 @@ static void ContestEffect_BetterIfDiffType(void) u16 move = eContestantStatus[eContestResources8.contestant].currMove; int i; - for (i = 0; i < 4; i++) + for (i = 0; i < CONTESTANT_COUNT; i++) { if (eContestResources8.turnOrder[eContestResources8.contestant] - 1 == eContestResources8.turnOrder[i] && gContestMoves[move].contestCategory != gContestMoves[eContestantStatus[i].currMove].contestCategory) @@ -699,7 +699,7 @@ static void ContestEffect_AffectedByPrevAppeal(void) { int i; - for (i = 0; i < 4; i++) + for (i = 0; i < CONTESTANT_COUNT; i++) { if (eContestResources8.turnOrder[eContestResources8.contestant] - 1 == eContestResources8.turnOrder[i]) { @@ -748,18 +748,18 @@ static void ContestEffect_NextAppealEarlier(void) { s8 i; s8 j; - u8 turnOrder[4]; + u8 turnOrder[CONTESTANT_COUNT]; if (eContest.turnNumber != 4) { - for (i = 0; i < 4; i++) + for (i = 0; i < CONTESTANT_COUNT; i++) turnOrder[i] = eContestantStatus[i].nextTurnOrder; turnOrder[eContestResources8.contestant] = 0xFF; - for (i = 0; i < 4; i++) + for (i = 0; i < CONTESTANT_COUNT; i++) { - for (j = 0; j < 4; j++) + for (j = 0; j < CONTESTANT_COUNT; j++) { if (j != eContestResources8.contestant && i == turnOrder[j] && @@ -769,14 +769,14 @@ static void ContestEffect_NextAppealEarlier(void) break; } } - if (j == 4) + if (j == CONTESTANT_COUNT) break; } turnOrder[eContestResources8.contestant] = 0; eContestantStatus[eContestResources8.contestant].turnOrderMod = 1; - for (i = 0; i < 4; i++) + for (i = 0; i < CONTESTANT_COUNT; i++) { eContestantStatus[i].nextTurnOrder = turnOrder[i]; } @@ -790,18 +790,18 @@ static void ContestEffect_NextAppealLater(void) { s8 i; s8 j; - u8 turnOrder[4]; + u8 turnOrder[CONTESTANT_COUNT]; if (eContest.turnNumber != 4) { - for (i = 0; i < 4; i++) + for (i = 0; i < CONTESTANT_COUNT; i++) turnOrder[i] = eContestantStatus[i].nextTurnOrder; turnOrder[eContestResources8.contestant] = 0xFF; - for (i = 3; i > -1; i--) + for (i = CONTESTANT_COUNT - 1; i > -1; i--) { - for (j = 0; j < 4; j++) + for (j = 0; j < CONTESTANT_COUNT; j++) { if (j != eContestResources8.contestant && i == turnOrder[j] && @@ -811,14 +811,14 @@ static void ContestEffect_NextAppealLater(void) break; } } - if (j == 4) + if (j == CONTESTANT_COUNT) break; } - turnOrder[eContestResources8.contestant] = 3; + turnOrder[eContestResources8.contestant] = CONTESTANT_COUNT - 1; eContestantStatus[eContestResources8.contestant].turnOrderMod = 1; - for (i = 0; i < 4; i++) + for (i = 0; i < CONTESTANT_COUNT; i++) { eContestantStatus[i].nextTurnOrder = turnOrder[i]; } @@ -838,22 +838,22 @@ static void ContestEffect_ScrambleNextTurnOrder(void) { s8 i; s8 j; - u8 turnOrder[4]; - u8 unselectedContestants[4]; + u8 turnOrder[CONTESTANT_COUNT]; + u8 unselectedContestants[CONTESTANT_COUNT]; if (eContest.turnNumber != 4) { - for (i = 0; i < 4; i++) + for (i = 0; i < CONTESTANT_COUNT; i++) { turnOrder[i] = eContestantStatus[i].nextTurnOrder; unselectedContestants[i] = i; } - for (i = 0; i < 4; i++) + for (i = 0; i < CONTESTANT_COUNT; i++) { - u8 rval = Random() % (4 - i); + u8 rval = Random() % (CONTESTANT_COUNT - i); - for (j = 0; j < 4; j++) + for (j = 0; j < CONTESTANT_COUNT; j++) { if (unselectedContestants[j] != 0xFF) { @@ -869,7 +869,7 @@ static void ContestEffect_ScrambleNextTurnOrder(void) } } - for (i = 0; i < 4; i++) + for (i = 0; i < CONTESTANT_COUNT; i++) { eContestantStatus[i].nextTurnOrder = turnOrder[i]; eContestantStatus[i].turnOrderMod = 2; @@ -894,7 +894,7 @@ static void ContestEffect_BadlyStartleMonsWithGoodAppeals(void) int i; u8 numJammed = 0; - for (i = 0; i < 4; i++) + for (i = 0; i < CONTESTANT_COUNT; i++) { if (eContestResources8.turnOrder[eContestResources8.contestant] > eContestResources8.turnOrder[i]) { @@ -965,7 +965,7 @@ static void JamByMoveCategory(u8 category) int i; int numJammed = 0; - for (i = 0; i < 4; i++) + for (i = 0; i < CONTESTANT_COUNT; i++) { if (eContestResources8.turnOrder[eContestResources8.contestant] > eContestResources8.turnOrder[i]) { @@ -1010,7 +1010,7 @@ static bool8 CanUnnerveContestant(u8 i) static bool8 WasAtLeastOneOpponentJammed(void) { - s16 jamBuffer[4] = {0}; + s16 jamBuffer[CONTESTANT_COUNT] = {0}; int i; for (i = 0; eContestResources8.jamQueue[i] != 0xFF; i++) @@ -1044,7 +1044,7 @@ static bool8 WasAtLeastOneOpponentJammed(void) } } - for (i = 0; i < 4; i++) + for (i = 0; i < CONTESTANT_COUNT; i++) { if (jamBuffer[i] != 0) return TRUE; diff --git a/src/contest_link.c b/src/contest_link.c index eb688f55e8..9241102e7c 100644 --- a/src/contest_link.c +++ b/src/contest_link.c @@ -12,7 +12,11 @@ static void sub_80FC5C0(u8); static void sub_80FC5DC(u8); -bool32 sub_80FC4F4(void *src, u16 size) +#define tState data[0] +#define tCategory data[9] +#define tTimer data[11] + +bool32 LinkContest_SendBlock(void *src, u16 size) { memcpy(gDecompressionBuffer, src, size); if (SendBlock(bitmask_all_link_players_but_self(), gDecompressionBuffer, size)) @@ -21,21 +25,21 @@ bool32 sub_80FC4F4(void *src, u16 size) return FALSE; } -bool8 sub_80FC530(u8 arg0) +bool8 LinkContest_GetBlockReceived(u8 flag) { - u8 mask = (1 << arg0); + u8 mask = (1 << flag); if (!(GetBlockReceivedStatus() & mask)) { return FALSE; } else { - ResetBlockReceivedFlag(arg0); + ResetBlockReceivedFlag(flag); return TRUE; } } -bool8 sub_80FC55C(void) +bool8 LinkContest_GetBlockReceivedFromAllPlayers(void) { if (GetBlockReceivedStatus() == GetLinkPlayerCountAsBitFlags()) { @@ -52,10 +56,10 @@ void sub_80FC580(u8 taskId) { u8 i; - for (i = 0; i < 4; i++) + for (i = 0; i < CONTESTANT_COUNT; i++) gBlockRecvBuffer[i][0] = 0xFF; - gTasks[taskId].data[0] = 0; + gTasks[taskId].tState = 0; gTasks[taskId].func = sub_80FC5C0; } @@ -77,6 +81,7 @@ static void sub_80FC5DC(u8 taskId) if (gWirelessCommType == 1) gLinkContestFlags = LINK_CONTEST_FLAG_IS_LINK | LINK_CONTEST_FLAG_IS_WIRELESS; + // Get number of players using Emerald/FRLG for (i = 0; i < gNumLinkContestPlayers && (u32)(gLinkPlayers[i].version & 0xFF) - 1 > VERSION_RUBY - 1; i++) ; @@ -86,22 +91,22 @@ static void sub_80FC5DC(u8 taskId) SwitchTaskToFollowupFunc(taskId); } -bool32 sub_80FC670(s16 *arg0) +bool32 sub_80FC670(s16 *state) { if (gLinkContestFlags & LINK_CONTEST_FLAG_HAS_RS_PLAYER) return TRUE; - switch (*arg0) + switch (*state) { case 0: if (IsLinkTaskFinished()) { sub_800ADF8(); - (*arg0)++; + (*state)++; } return FALSE; case 1: - (*arg0)++; + (*state)++; return FALSE; default: if (IsLinkTaskFinished() != TRUE) @@ -118,7 +123,7 @@ void sub_80FC6BC(u8 taskId) if (!sub_80FC670(&gTasks[taskId].data[12])) return; - switch (gTasks[taskId].data[0]) + switch (gTasks[taskId].tState) { case 0: if (GetMultiplayerId() == 0) @@ -126,37 +131,37 @@ void sub_80FC6BC(u8 taskId) if (IsLinkTaskFinished()) { memcpy(gBlockSendBuffer, &gContestMons[gContestPlayerMonIndex], sizeof(struct ContestPokemon)); - gTasks[taskId].data[0] = 10; + gTasks[taskId].tState = 10; } } else { memcpy(gBlockSendBuffer, &gContestMons[gContestPlayerMonIndex], sizeof(struct ContestPokemon)); - gTasks[taskId].data[0] = 1; + gTasks[taskId].tState = 1; } break; case 1: - if (sub_80FC55C()) + if (LinkContest_GetBlockReceivedFromAllPlayers()) { for (i = 0; i < gNumLinkContestPlayers; i++) { memcpy(&gContestMons[i], gBlockRecvBuffer[i], sizeof(struct ContestPokemon)); - sub_80DFA08(&gContestMons[i], gLinkPlayers[i].language); + StripPlayerAndMonNamesForLinkContest(&gContestMons[i], gLinkPlayers[i].language); } - gTasks[taskId].data[0]++; + gTasks[taskId].tState++; } break; case 10: - if (++gTasks[taskId].data[11] > 300) + if (++gTasks[taskId].tTimer > 300) { sub_800A4D8(2); - gTasks[taskId].data[0] = 1; + gTasks[taskId].tState = 1; } break; default: - gTasks[taskId].data[0] = 0; - gTasks[taskId].data[11] = 0; + gTasks[taskId].tState = 0; + gTasks[taskId].tTimer = 0; gTasks[taskId].data[12] = 0; SwitchTaskToFollowupFunc(taskId); break; @@ -165,29 +170,29 @@ void sub_80FC6BC(u8 taskId) void sub_80FC804(u8 taskId) { - switch (gTasks[taskId].data[0]) + switch (gTasks[taskId].tState) { case 0: if (GetMultiplayerId() == 0) { - if (IsLinkTaskFinished() && sub_80FC4F4(&gRngValue, sizeof(gRngValue)) == TRUE) - gTasks[taskId].data[0]++; + if (IsLinkTaskFinished() && LinkContest_SendBlock(&gRngValue, sizeof(gRngValue)) == TRUE) + gTasks[taskId].tState++; } else { - gTasks[taskId].data[0]++; + gTasks[taskId].tState++; } break; case 1: - if (sub_80FC530(0)) + if (LinkContest_GetBlockReceived(0)) { memcpy(&gRngValue, gBlockRecvBuffer[0], sizeof(gRngValue)); memcpy(&gContestRngValue, gBlockRecvBuffer[0], sizeof(gContestRngValue)); - gTasks[taskId].data[0]++; + gTasks[taskId].tState++; } break; default: - gTasks[taskId].data[0] = 0; + gTasks[taskId].tState = 0; SwitchTaskToFollowupFunc(taskId); break; } @@ -200,91 +205,93 @@ void sub_80FC894(u8 taskId) if (!sub_80FC670(&gTasks[taskId].data[12])) return; - switch (gTasks[taskId].data[0]) + switch (gTasks[taskId].tState) { case 0: - gBlockSendBuffer[0] = gTasks[taskId].data[9]; + gBlockSendBuffer[0] = gTasks[taskId].tCategory; if (GetMultiplayerId() == 0) { if (IsLinkTaskFinished()) - gTasks[taskId].data[0] = 10; + gTasks[taskId].tState = 10; } else { - gTasks[taskId].data[0]++; + gTasks[taskId].tState++; } break; case 1: - if (sub_80FC55C()) + if (LinkContest_GetBlockReceivedFromAllPlayers()) { for (i = 0; i < gNumLinkContestPlayers; i++) gTasks[taskId].data[i + 1] = gBlockRecvBuffer[i][0]; - gTasks[taskId].data[0]++; + gTasks[taskId].tState++; } break; case 10: - if (++gTasks[taskId].data[11] > 10) + if (++gTasks[taskId].tTimer > 10) { sub_800A4D8(2); - gTasks[taskId].data[0] = 1; + gTasks[taskId].tState = 1; } break; default: - gTasks[taskId].data[0] = 0; - gTasks[taskId].data[11] = 0; + gTasks[taskId].tState = 0; + gTasks[taskId].tTimer = 0; gTasks[taskId].data[12] = 0; SwitchTaskToFollowupFunc(taskId); break; } } -void sub_80FC998(u8 taskId) +void Task_LinkContest_CommunicateMonIdxs(u8 taskId) { - switch (gTasks[taskId].data[0]) + switch (gTasks[taskId].tState) { case 0: if (IsLinkTaskFinished()) { - if (sub_80FC4F4(&gContestPlayerMonIndex, sizeof(gContestPlayerMonIndex)) == TRUE) - gTasks[taskId].data[0]++; + if (LinkContest_SendBlock(&gContestPlayerMonIndex, sizeof(gContestPlayerMonIndex)) == TRUE) + gTasks[taskId].tState++; } break; case 1: - if (sub_80FC55C()) - gTasks[taskId].data[0]++; + if (LinkContest_GetBlockReceivedFromAllPlayers()) + gTasks[taskId].tState++; break; default: - gTasks[taskId].data[0] = 0; + gTasks[taskId].tState = 0; SwitchTaskToFollowupFunc(taskId); break; } } -void sub_80FC9F8(u8 taskId) +void Task_LinkContest_CommunicateMoveSelections(u8 taskId) { int i; - switch (gTasks[taskId].data[0]) + switch (gTasks[taskId].tState) { case 0: if (IsLinkTaskFinished()) { - if (sub_80FC4F4(&eContestantStatus[gContestPlayerMonIndex].currMove, sizeof(eContestantStatus[gContestPlayerMonIndex].currMove)) == TRUE) - gTasks[taskId].data[0]++; + // Send player's move selection + if (LinkContest_SendBlock(&eContestantStatus[gContestPlayerMonIndex].currMove, sizeof(eContestantStatus[gContestPlayerMonIndex].currMove)) == TRUE) + gTasks[taskId].tState++; } break; case 1: - if (sub_80FC55C()) + if (LinkContest_GetBlockReceivedFromAllPlayers()) { + // Receive partners' move selections for (i = 0; i < gNumLinkContestPlayers; i++) eContestantStatus[i].currMove = gBlockRecvBuffer[i][0]; - gTasks[taskId].data[0]++; + gTasks[taskId].tState++; } break; default: - gTasks[taskId].data[0] = 0; + gTasks[taskId].tState = 0; SwitchTaskToFollowupFunc(taskId); break; } @@ -292,20 +299,20 @@ void sub_80FC9F8(u8 taskId) void sub_80FCACC(u8 taskId) { - switch (gTasks[taskId].data[0]) + switch (gTasks[taskId].tState) { case 0: if (IsLinkTaskFinished()) { - if (sub_80FC4F4(gContestMonTotalPoints, sizeof(gContestMonTotalPoints)) == 1) - gTasks[taskId].data[0]++; + if (LinkContest_SendBlock(gContestMonTotalPoints, sizeof(gContestMonTotalPoints)) == 1) + gTasks[taskId].tState++; } break; case 1: - if (sub_80FC55C()) + if (LinkContest_GetBlockReceivedFromAllPlayers()) { memcpy(gContestMonTotalPoints, gBlockRecvBuffer[gUnknown_02039F2B], sizeof(gContestMonTotalPoints)); - gTasks[taskId].data[0]++; + gTasks[taskId].tState++; } break; case 2: @@ -315,53 +322,53 @@ void sub_80FCACC(u8 taskId) if (gTasks[taskId].data[1]++ > 10) { gTasks[taskId].data[1] = 0; - gTasks[taskId].data[0]++; + gTasks[taskId].tState++; } break; case 3: if (IsLinkTaskFinished()) { - if (sub_80FC4F4(gUnknown_02039F10, sizeof(gUnknown_02039F10)) == 1) - gTasks[taskId].data[0]++; + if (LinkContest_SendBlock(gUnknown_02039F10, sizeof(gUnknown_02039F10)) == 1) + gTasks[taskId].tState++; } break; case 4: - if (sub_80FC55C()) + if (LinkContest_GetBlockReceivedFromAllPlayers()) { memcpy(gUnknown_02039F10, gBlockRecvBuffer[gUnknown_02039F2B], sizeof(gUnknown_02039F10)); - gTasks[taskId].data[0]++; + gTasks[taskId].tState++; } break; case 6: if (IsLinkTaskFinished()) { - if (sub_80FC4F4(gContestMonRound2Points, sizeof(gContestMonRound2Points)) == 1) - gTasks[taskId].data[0]++; + if (LinkContest_SendBlock(gContestMonRound2Points, sizeof(gContestMonRound2Points)) == 1) + gTasks[taskId].tState++; } break; case 7: - if (sub_80FC55C()) + if (LinkContest_GetBlockReceivedFromAllPlayers()) { memcpy(gContestMonRound2Points, gBlockRecvBuffer[gUnknown_02039F2B], sizeof(gContestMonRound2Points)); - gTasks[taskId].data[0]++; + gTasks[taskId].tState++; } break; case 9: if (IsLinkTaskFinished()) { - if (sub_80FC4F4(gContestFinalStandings, sizeof(gContestFinalStandings)) == 1) - gTasks[taskId].data[0]++; + if (LinkContest_SendBlock(gContestFinalStandings, sizeof(gContestFinalStandings)) == 1) + gTasks[taskId].tState++; } break; case 10: - if (sub_80FC55C()) + if (LinkContest_GetBlockReceivedFromAllPlayers()) { memcpy(gContestFinalStandings, gBlockRecvBuffer[gUnknown_02039F2B], sizeof(gContestFinalStandings)); - gTasks[taskId].data[0]++; + gTasks[taskId].tState++; } break; default: - gTasks[taskId].data[0] = 0; + gTasks[taskId].tState = 0; SwitchTaskToFollowupFunc(taskId); break; } @@ -369,20 +376,20 @@ void sub_80FCACC(u8 taskId) void sub_80FCC88(u8 taskId) { - switch (gTasks[taskId].data[0]) + switch (gTasks[taskId].tState) { case 0: if (IsLinkTaskFinished()) { - if (sub_80FC4F4(eContestantStatus, 4 * sizeof(struct ContestantStatus)) == 1) - gTasks[taskId].data[0]++; + if (LinkContest_SendBlock(eContestantStatus, 4 * sizeof(struct ContestantStatus)) == 1) + gTasks[taskId].tState++; } break; case 1: - if (sub_80FC55C()) + if (LinkContest_GetBlockReceivedFromAllPlayers()) { memcpy(eContestantStatus, gBlockRecvBuffer[gUnknown_02039F2B], 4 * sizeof(struct ContestantStatus)); - gTasks[taskId].data[0]++; + gTasks[taskId].tState++; } break; case 2: @@ -392,53 +399,53 @@ void sub_80FCC88(u8 taskId) if (gTasks[taskId].data[1]++ > 10) { gTasks[taskId].data[1] = 0; - gTasks[taskId].data[0]++; + gTasks[taskId].tState++; } break; case 3: if (IsLinkTaskFinished()) { - if (sub_80FC4F4(gContestResources->field_8, sizeof(struct UnknownContestStruct7)) == 1) - gTasks[taskId].data[0]++; + if (LinkContest_SendBlock(gContestResources->field_8, sizeof(struct UnknownContestStruct7)) == 1) + gTasks[taskId].tState++; } break; case 4: - if (sub_80FC55C()) + if (LinkContest_GetBlockReceivedFromAllPlayers()) { memcpy(gContestResources->field_8, gBlockRecvBuffer[gUnknown_02039F2B], sizeof(struct UnknownContestStruct7)); - gTasks[taskId].data[0]++; + gTasks[taskId].tState++; } break; case 6: if (IsLinkTaskFinished()) { - if (sub_80FC4F4(gContestResources->field_10, sizeof(struct UnknownContestStruct5)) == 1) - gTasks[taskId].data[0]++; + if (LinkContest_SendBlock(gContestResources->field_10, sizeof(struct UnknownContestStruct5)) == 1) + gTasks[taskId].tState++; } break; case 7: - if (sub_80FC55C()) + if (LinkContest_GetBlockReceivedFromAllPlayers()) { memcpy(gContestResources->field_10, gBlockRecvBuffer[gUnknown_02039F2B], sizeof(struct UnknownContestStruct5)); - gTasks[taskId].data[0]++; + gTasks[taskId].tState++; } break; case 9: if (IsLinkTaskFinished()) { - if (sub_80FC4F4(gContestantTurnOrder, sizeof(gContestantTurnOrder)) == 1) - gTasks[taskId].data[0]++; + if (LinkContest_SendBlock(gContestantTurnOrder, sizeof(gContestantTurnOrder)) == 1) + gTasks[taskId].tState++; } break; case 10: - if (sub_80FC55C()) + if (LinkContest_GetBlockReceivedFromAllPlayers()) { memcpy(gContestantTurnOrder, gBlockRecvBuffer[gUnknown_02039F2B], sizeof(gContestantTurnOrder)); - gTasks[taskId].data[0]++; + gTasks[taskId].tState++; } break; default: - gTasks[taskId].data[0] = 0; + gTasks[taskId].tState = 0; SwitchTaskToFollowupFunc(taskId); break; } @@ -451,39 +458,39 @@ void sub_80FCE48(u8 taskId) if (!sub_80FC670(&gTasks[taskId].data[12])) return; - switch (gTasks[taskId].data[0]) + switch (gTasks[taskId].tState) { case 0: gBlockSendBuffer[0] = 0x6E; if (GetMultiplayerId() == 0) { if (IsLinkTaskFinished()) - gTasks[taskId].data[0] = 10; + gTasks[taskId].tState = 10; } else { - gTasks[taskId].data[0]++; + gTasks[taskId].tState++; } break; case 1: - if (sub_80FC55C()) + if (LinkContest_GetBlockReceivedFromAllPlayers()) { - for (i = 0; i < 4; i++) + for (i = 0; i < CONTESTANT_COUNT; i++) gTasks[taskId].data[i + 5] = gBlockRecvBuffer[i][0]; - gTasks[taskId].data[0]++; + gTasks[taskId].tState++; } break; case 10: - if (++gTasks[taskId].data[11] > 10) + if (++gTasks[taskId].tTimer > 10) { sub_800A4D8(2); - gTasks[taskId].data[0] = 1; + gTasks[taskId].tState = 1; } break; default: - gTasks[taskId].data[0] = 0; - gTasks[taskId].data[11] = 0; + gTasks[taskId].tState = 0; + gTasks[taskId].tTimer = 0; gTasks[taskId].data[12] = 0; SwitchTaskToFollowupFunc(taskId); break; @@ -495,24 +502,24 @@ void sub_80FCF40(u8 taskId) if (!sub_80FC670(&gTasks[taskId].data[12])) return; - switch (gTasks[taskId].data[0]) + switch (gTasks[taskId].tState) { case 0: if (IsLinkTaskFinished()) { - if (sub_80FC4F4(gContestMonConditions, sizeof(gContestMonConditions)) == 1) - gTasks[taskId].data[0]++; + if (LinkContest_SendBlock(gContestMonConditions, sizeof(gContestMonConditions)) == 1) + gTasks[taskId].tState++; } break; case 1: - if (sub_80FC55C()) + if (LinkContest_GetBlockReceivedFromAllPlayers()) { memcpy(gContestMonConditions, gBlockRecvBuffer[gUnknown_02039F2B], sizeof(gContestMonConditions)); - gTasks[taskId].data[0]++; + gTasks[taskId].tState++; } break; default: - gTasks[taskId].data[0] = 0; + gTasks[taskId].tState = 0; gTasks[taskId].data[12] = 0; SwitchTaskToFollowupFunc(taskId); break; @@ -524,24 +531,24 @@ void sub_80FCFD0(u8 taskId) if (!sub_80FC670(&gTasks[taskId].data[12])) return; - switch (gTasks[taskId].data[0]) + switch (gTasks[taskId].tState) { case 0: if (IsLinkTaskFinished()) { - if (sub_80FC4F4(gContestantTurnOrder, sizeof(gContestantTurnOrder)) == 1) - gTasks[taskId].data[0]++; + if (LinkContest_SendBlock(gContestantTurnOrder, sizeof(gContestantTurnOrder)) == 1) + gTasks[taskId].tState++; } break; case 1: - if (sub_80FC55C()) + if (LinkContest_GetBlockReceivedFromAllPlayers()) { memcpy(gContestantTurnOrder, gBlockRecvBuffer[gUnknown_02039F2B], sizeof(gContestantTurnOrder)); - gTasks[taskId].data[0]++; + gTasks[taskId].tState++; } break; default: - gTasks[taskId].data[0] = 0; + gTasks[taskId].tState = 0; gTasks[taskId].data[12] = 0; SwitchTaskToFollowupFunc(taskId); break; diff --git a/src/contest_link_util.c b/src/contest_link_util.c index 8060b6cdc9..2213741124 100644 --- a/src/contest_link_util.c +++ b/src/contest_link_util.c @@ -1,5 +1,6 @@ #include "global.h" #include "contest.h" +#include "contest_link.h" #include "event_data.h" #include "link.h" #include "random.h" @@ -17,33 +18,35 @@ static void sub_81DA2E8(u8); static void sub_81DA3B8(u8); static void sub_81DA488(u8); +#define tCategory data[9] + void sub_81D9DE4(u8 taskId) { int gameCleared; - switch (gTasks[taskId].data[9]) + switch (gTasks[taskId].tCategory) { - case 0: + case CONTEST_CATEGORY_COOL: gHighestRibbonRank = GetMonData(&gPlayerParty[gContestMonPartyIndex], MON_DATA_COOL_RIBBON); break; - case 1: + case CONTEST_CATEGORY_BEAUTY: gHighestRibbonRank = GetMonData(&gPlayerParty[gContestMonPartyIndex], MON_DATA_BEAUTY_RIBBON); break; - case 2: + case CONTEST_CATEGORY_CUTE: gHighestRibbonRank = GetMonData(&gPlayerParty[gContestMonPartyIndex], MON_DATA_CUTE_RIBBON); break; - case 3: + case CONTEST_CATEGORY_SMART: gHighestRibbonRank = GetMonData(&gPlayerParty[gContestMonPartyIndex], MON_DATA_SMART_RIBBON); break; - case 4: + case CONTEST_CATEGORY_TOUGH: default: gHighestRibbonRank = GetMonData(&gPlayerParty[gContestMonPartyIndex], MON_DATA_TOUGH_RIBBON); break; } - gContestMons[gContestPlayerMonIndex].unk2C[0] = gHighestRibbonRank; + gContestMons[gContestPlayerMonIndex].highestRank = gHighestRibbonRank; gameCleared = FlagGet(FLAG_SYS_GAME_CLEAR) > 0; - gContestMons[gContestPlayerMonIndex].unk2C[1] = gameCleared; + gContestMons[gContestPlayerMonIndex].gameCleared = gameCleared; SetTaskFuncWithFollowupFunc(taskId, sub_81DA160, sub_81D9F14); } @@ -94,13 +97,13 @@ static void sub_81D9F68(u8 taskId) for (i = 0; i < gNumLinkContestPlayers; i++) data2[i] = gTasks[taskId].data[i + 5]; - if (gNumLinkContestPlayers != 4 && GetMultiplayerId() == 0) + if (gNumLinkContestPlayers != CONTESTANT_COUNT && GetMultiplayerId() == 0) { - rank = gContestMons[0].unk2C[0]; + rank = gContestMons[0].highestRank; for (i = 1; i < gNumLinkContestPlayers; i++) { - if (rank < gContestMons[i].unk2C[0]) - rank = gContestMons[i].unk2C[0]; + if (rank < gContestMons[i].highestRank) + rank = gContestMons[i].highestRank; } if (rank) @@ -109,7 +112,7 @@ static void sub_81D9F68(u8 taskId) gameCleared = 1; for (i = 0; i < gNumLinkContestPlayers; i++) { - if (!gContestMons[i].unk2C[1]) + if (!gContestMons[i].gameCleared) { gameCleared = 0; break; @@ -120,7 +123,7 @@ static void sub_81D9F68(u8 taskId) } gUnknown_02039F2B = sub_80F86E0(data2); - if (gNumLinkContestPlayers < 4) + if (gNumLinkContestPlayers < CONTESTANT_COUNT) SetTaskFuncWithFollowupFunc(taskId, sub_81DA488, sub_81DA10C); else gTasks[taskId].func = sub_81DA10C; @@ -155,17 +158,17 @@ static void sub_81DA160(u8 taskId) case 0: if (IsLinkTaskFinished()) { - if (sub_80FC4F4(&gContestMons[gContestPlayerMonIndex], sizeof(struct ContestPokemon)) == 1) + if (LinkContest_SendBlock(&gContestMons[gContestPlayerMonIndex], sizeof(struct ContestPokemon)) == 1) gTasks[taskId].data[0]++; } break; case 1: - if (sub_80FC55C()) + if (LinkContest_GetBlockReceivedFromAllPlayers()) { for (i = 0; i < gNumLinkContestPlayers; i++) { memcpy(&gContestMons[i], gBlockRecvBuffer[i], sizeof(struct ContestPokemon)); - sub_80DFA08(&gContestMons[i], gLinkPlayers[i].language); + StripPlayerAndMonNamesForLinkContest(&gContestMons[i], gLinkPlayers[i].language); } gTasks[taskId].data[0]++; @@ -192,7 +195,7 @@ static void sub_81DA244(u8 taskId) if (!IsLinkTaskFinished()) return; - if (sub_80FC4F4(&gRngValue, sizeof(gRngValue)) == 1) + if (LinkContest_SendBlock(&gRngValue, sizeof(gRngValue)) == 1) gTasks[taskId].data[0]++; } else @@ -201,7 +204,7 @@ static void sub_81DA244(u8 taskId) } break; case 1: - if (sub_80FC530(0)) + if (LinkContest_GetBlockReceived(0)) { memcpy(&gRngValue, gBlockRecvBuffer[0], sizeof(gRngValue)); memcpy(&gContestRngValue, gBlockRecvBuffer[0], sizeof(gContestRngValue)); @@ -231,12 +234,12 @@ static void sub_81DA2E8(u8 taskId) if (IsLinkTaskFinished()) { var0 = 0x6E; - if (sub_80FC4F4(&var0, sizeof(var0)) == 1) + if (LinkContest_SendBlock(&var0, sizeof(var0)) == 1) gTasks[taskId].data[0]++; } break; case 1: - if (sub_80FC55C()) + if (LinkContest_GetBlockReceivedFromAllPlayers()) { for (i = 0; i < gNumLinkContestPlayers; i++) { @@ -253,8 +256,8 @@ static void sub_81DA2E8(u8 taskId) static void sub_81DA3B8(u8 taskId) { int i; - u16 data[4]; - u16 var0; + u16 data[CONTESTANT_COUNT]; + u16 category; if (!sub_80FC670(&gTasks[taskId].data[12])) return; @@ -269,13 +272,13 @@ static void sub_81DA3B8(u8 taskId) case 0: if (IsLinkTaskFinished()) { - var0 = gTasks[taskId].data[9]; - if (sub_80FC4F4(&var0, sizeof(var0)) == 1) + category = gTasks[taskId].tCategory; + if (LinkContest_SendBlock(&category, sizeof(category)) == 1) gTasks[taskId].data[0]++; } break; case 1: - if (sub_80FC55C()) + if (LinkContest_GetBlockReceivedFromAllPlayers()) { for (i = 0; i < gNumLinkContestPlayers; i++) { @@ -309,7 +312,7 @@ static void sub_81DA488(u8 taskId) if (!IsLinkTaskFinished()) return; - if (sub_80FC4F4(&gContestMons[gNumLinkContestPlayers], (4 - gNumLinkContestPlayers) * sizeof(struct ContestPokemon)) == 1) + if (LinkContest_SendBlock(&gContestMons[gNumLinkContestPlayers], (CONTESTANT_COUNT - gNumLinkContestPlayers) * sizeof(struct ContestPokemon)) == 1) gTasks[taskId].data[0]++; } else @@ -318,11 +321,11 @@ static void sub_81DA488(u8 taskId) } break; case 1: - if (sub_80FC530(0)) + if (LinkContest_GetBlockReceived(0)) { - memcpy(&gContestMons[gNumLinkContestPlayers], gBlockRecvBuffer[0], (4 - gNumLinkContestPlayers) * sizeof(struct ContestPokemon)); - for (i = gNumLinkContestPlayers; i < 4; i++) - sub_80DFA08(&gContestMons[i], gLinkPlayers[0].language); + memcpy(&gContestMons[gNumLinkContestPlayers], gBlockRecvBuffer[0], (CONTESTANT_COUNT - gNumLinkContestPlayers) * sizeof(struct ContestPokemon)); + for (i = gNumLinkContestPlayers; i < CONTESTANT_COUNT; i++) + StripPlayerAndMonNamesForLinkContest(&gContestMons[i], gLinkPlayers[0].language); gTasks[taskId].data[0]++; } diff --git a/src/contest_util.c b/src/contest_util.c index 22074e1a1b..6ad67ee50e 100644 --- a/src/contest_util.c +++ b/src/contest_util.c @@ -653,7 +653,7 @@ static void Task_WaitForLinkPartnersBeforeResults(u8 taskId) static void sub_80F5F14(u8 taskId) { - SetTaskFuncWithFollowupFunc(taskId, sub_80FC998, sub_80F5F30); + SetTaskFuncWithFollowupFunc(taskId, Task_LinkContest_CommunicateMonIdxs, sub_80F5F30); } static void sub_80F5F30(u8 taskId) @@ -2405,25 +2405,25 @@ void GetContestPlayerId(void) gSpecialVar_0x8004 = gContestPlayerMonIndex; } -void ContestLinkTransfer(u8 taskId) +void ContestLinkTransfer(u8 category) { u8 newTaskId; ScriptContext2_Enable(); newTaskId = CreateTask(sub_80FC580, 0); SetTaskFuncWithFollowupFunc(newTaskId, sub_80FC580, sub_80F8508); - gTasks[newTaskId].data[9] = taskId; + gTasks[newTaskId].data[9] = category; } static void sub_80F8508(u8 taskId) { if (gLinkContestFlags & LINK_CONTEST_FLAG_HAS_RS_PLAYER) { - sub_80DA8C8(gContestMonPartyIndex); + CreateContestMonFromParty(gContestMonPartyIndex); SetTaskFuncWithFollowupFunc(taskId, sub_80FC6BC, sub_80F8568); } else { - sub_80DA8C8(gContestMonPartyIndex); + CreateContestMonFromParty(gContestMonPartyIndex); gTasks[taskId].func = sub_81D9DE4; } } diff --git a/src/data/contest_opponents.h b/src/data/contest_opponents.h index 8fa7467255..53868fc84f 100644 --- a/src/data/contest_opponents.h +++ b/src/data/contest_opponents.h @@ -203,7 +203,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 3, .tough = 4, .sheen = 50, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -232,7 +231,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 1, .tough = 2, .sheen = 60, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -261,7 +259,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 12, .tough = 4, .sheen = 70, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -290,7 +287,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 2, .tough = 7, .sheen = 80, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -319,7 +315,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 5, .tough = 4, .sheen = 90, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -348,7 +343,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 7, .tough = 8, .sheen = 100, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -377,7 +371,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 2, .tough = 2, .sheen = 50, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -406,7 +399,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 10, .tough = 10, .sheen = 60, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -435,7 +427,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 5, .tough = 18, .sheen = 70, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -464,7 +455,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 2, .tough = 7, .sheen = 80, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -493,7 +483,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 8, .tough = 1, .sheen = 90, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -522,7 +511,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 10, .tough = 2, .sheen = 100, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -551,7 +539,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 2, .tough = 10, .sheen = 50, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -580,7 +567,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 10, .tough = 5, .sheen = 60, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -609,7 +595,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 1, .tough = 1, .sheen = 70, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -638,7 +623,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 10, .tough = 4, .sheen = 50, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -667,7 +651,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 10, .tough = 4, .sheen = 60, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -696,7 +679,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 2, .tough = 3, .sheen = 70, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -725,7 +707,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 5, .tough = 10, .sheen = 80, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -754,7 +735,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 3, .tough = 10, .sheen = 90, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -783,7 +763,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 1, .tough = 5, .sheen = 100, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -812,7 +791,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 6, .tough = 2, .sheen = 90, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -841,7 +819,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 5, .tough = 3, .sheen = 80, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -870,7 +847,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 8, .tough = 10, .sheen = 70, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -899,7 +875,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 10, .tough = 20, .sheen = 100, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -928,7 +903,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 85, .tough = 35, .sheen = 110, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -957,7 +931,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 10, .tough = 25, .sheen = 120, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -986,7 +959,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 65, .tough = 25, .sheen = 130, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -1015,7 +987,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 10, .tough = 100, .sheen = 140, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -1044,7 +1015,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 35, .tough = 35, .sheen = 150, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -1073,7 +1043,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 40, .tough = 40, .sheen = 100, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -1102,7 +1071,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 10, .tough = 25, .sheen = 110, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -1131,7 +1099,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 30, .tough = 25, .sheen = 120, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -1160,7 +1127,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 40, .tough = 30, .sheen = 130, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -1189,7 +1155,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 75, .tough = 35, .sheen = 140, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -1218,7 +1183,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 30, .tough = 25, .sheen = 150, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -1247,7 +1211,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 25, .tough = 15, .sheen = 100, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -1276,7 +1239,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 60, .tough = 20, .sheen = 110, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -1305,7 +1267,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 15, .tough = 75, .sheen = 120, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -1334,7 +1295,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 30, .tough = 20, .sheen = 100, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -1363,7 +1323,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 20, .tough = 20, .sheen = 110, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -1392,7 +1351,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 20, .tough = 20, .sheen = 120, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -1421,7 +1379,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 30, .tough = 45, .sheen = 130, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -1450,7 +1407,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 20, .tough = 45, .sheen = 140, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -1479,7 +1435,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 20, .tough = 20, .sheen = 150, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -1508,7 +1463,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 25, .tough = 25, .sheen = 140, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -1537,7 +1491,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 20, .tough = 20, .sheen = 130, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -1566,7 +1519,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 45, .tough = 20, .sheen = 120, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -1595,7 +1547,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 100, .tough = 90, .sheen = 200, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -1624,7 +1575,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 35, .tough = 70, .sheen = 210, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -1653,7 +1603,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 70, .tough = 70, .sheen = 220, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -1682,7 +1631,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 75, .tough = 40, .sheen = 230, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -1711,7 +1659,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 70, .tough = 70, .sheen = 240, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -1740,7 +1687,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 80, .tough = 100, .sheen = 250, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -1769,7 +1715,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 70, .tough = 90, .sheen = 200, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -1798,7 +1743,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 50, .tough = 65, .sheen = 210, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -1827,7 +1771,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 60, .tough = 50, .sheen = 220, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -1856,7 +1799,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 45, .tough = 70, .sheen = 230, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -1885,7 +1827,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 40, .tough = 100, .sheen = 240, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -1914,7 +1855,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 50, .tough = 30, .sheen = 250, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -1943,7 +1883,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 50, .tough = 160, .sheen = 255, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -1972,7 +1911,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 70, .tough = 50, .sheen = 210, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -2001,7 +1939,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 35, .tough = 35, .sheen = 220, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -2030,7 +1967,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 100, .tough = 80, .sheen = 200, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -2059,7 +1995,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 35, .tough = 100, .sheen = 210, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -2088,7 +2023,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 50, .tough = 100, .sheen = 220, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -2117,7 +2051,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 40, .tough = 95, .sheen = 230, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -2146,7 +2079,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 50, .tough = 100, .sheen = 240, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -2175,7 +2107,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 80, .tough = 80, .sheen = 250, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -2204,7 +2135,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 40, .tough = 110, .sheen = 240, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -2233,7 +2163,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 25, .tough = 80, .sheen = 230, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -2262,7 +2191,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 35, .tough = 40, .sheen = 220, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -2291,7 +2219,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 40, .tough = 160, .sheen = 255, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -2320,7 +2247,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 150, .tough = 160, .sheen = 255, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -2349,7 +2275,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 185, .tough = 60, .sheen = 255, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -2378,7 +2303,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 110, .tough = 150, .sheen = 255, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -2407,7 +2331,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 30, .tough = 90, .sheen = 255, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -2436,7 +2359,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 230, .tough = 80, .sheen = 255, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -2465,7 +2387,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 130, .tough = 40, .sheen = 255, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -2494,7 +2415,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 150, .tough = 160, .sheen = 255, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -2523,7 +2443,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 130, .tough = 170, .sheen = 255, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -2552,7 +2471,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 75, .tough = 100, .sheen = 255, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -2581,7 +2499,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 40, .tough = 190, .sheen = 255, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -2610,7 +2527,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 240, .tough = 140, .sheen = 255, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -2639,7 +2555,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 35, .tough = 50, .sheen = 255, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -2668,7 +2583,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 115, .tough = 120, .sheen = 255, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -2697,7 +2611,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 220, .tough = 210, .sheen = 255, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -2726,7 +2639,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 80, .tough = 180, .sheen = 255, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -2755,7 +2667,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 130, .tough = 130, .sheen = 255, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -2784,7 +2695,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 120, .tough = 150, .sheen = 255, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -2813,7 +2723,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 170, .tough = 80, .sheen = 255, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -2842,7 +2751,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 150, .tough = 120, .sheen = 255, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -2871,7 +2779,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 120, .tough = 80, .sheen = 255, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -2900,7 +2807,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 80, .tough = 150, .sheen = 255, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -2929,7 +2835,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 110, .tough = 170, .sheen = 255, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF }, @@ -2958,7 +2863,6 @@ const struct ContestPokemon gContestOpponents[] = .smart = 80, .tough = 190, .sheen = 255, - .unk2C = {0}, .personality = 0, .otId = 0xFFFF } diff --git a/src/graphics.c b/src/graphics.c index b774c5ad21..055a6c4cd2 100644 --- a/src/graphics.c +++ b/src/graphics.c @@ -461,12 +461,12 @@ const u32 gContestMiscGfx[] = INCBIN_U32("graphics/contest/misc.4bpp.lz"); const u32 gContestAudienceGfx[] = INCBIN_U32("graphics/contest/audience.4bpp.lz"); -const u32 gUnknown_08C19168[] = INCBIN_U32("graphics/contest/faces.4bpp.lz"); +const u32 gContestFaces_Gfx[] = INCBIN_U32("graphics/contest/faces.4bpp.lz"); const u32 gContestJudgeSymbolsGfx[] = INCBIN_U32("graphics/contest/judge_symbols.4bpp.lz"); const u32 gContest3Pal[] = INCBIN_U32("graphics/contest/judge_symbols.gbapal.lz"); -const u8 gTiles_8C19450[] = INCBIN_U8("graphics/contest/heart.4bpp"); +const u8 gContestSliderHeart_Gfx[] = INCBIN_U8("graphics/contest/slider_heart.4bpp"); const u32 gUnknownGfx_C19470[] = INCBIN_U32("graphics/unknown/unknown_C19470.4bpp.lz"); const u32 gUnknownPal_C19470[] = INCBIN_U32("graphics/unknown/unknown_C19470.gbapal.lz"); diff --git a/src/pokemon.c b/src/pokemon.c index 329240f994..9687a5abf3 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -4499,8 +4499,8 @@ void CreateSecretBaseEnemyParty(struct SecretBase *secretBaseRecord) for (j = 0; j < MAX_MON_MOVES; j++) { - SetMonData(&gEnemyParty[i], MON_DATA_MOVE1 + j, &gBattleResources->secretBase->party.moves[i * 4 + j]); - SetMonData(&gEnemyParty[i], MON_DATA_PP1 + j, &gBattleMoves[gBattleResources->secretBase->party.moves[i * 4 + j]].pp); + SetMonData(&gEnemyParty[i], MON_DATA_MOVE1 + j, &gBattleResources->secretBase->party.moves[i * MAX_MON_MOVES + j]); + SetMonData(&gEnemyParty[i], MON_DATA_PP1 + j, &gBattleMoves[gBattleResources->secretBase->party.moves[i * MAX_MON_MOVES + j]].pp); } } } From aca50c87beaa88f66ca2a8602c23411fd20b0884 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Fri, 24 Jul 2020 00:14:53 -0400 Subject: [PATCH 012/101] Continue new contest documentation --- asm/macros/contest_ai_script.inc | 22 +- constants/constants.inc | 2 - constants/contest_constants.inc | 68 ------ constants/contest_move_effects.inc | 49 ---- data/contest_ai_scripts.s | 70 +++--- include/constants/contest.h | 150 +++++++++++- include/contest.h | 136 +---------- include/contest_link.h | 6 +- src/contest.c | 376 +++++++++++++++-------------- src/contest_ai.c | 46 ++-- src/contest_effect.c | 6 +- src/contest_link.c | 18 +- src/contest_link_util.c | 21 +- src/contest_util.c | 14 +- src/data/contest_opponents.h | 36 +-- src/script_pokemon_util_80F87D8.c | 4 +- 16 files changed, 478 insertions(+), 546 deletions(-) delete mode 100644 constants/contest_constants.inc delete mode 100644 constants/contest_move_effects.inc diff --git a/asm/macros/contest_ai_script.inc b/asm/macros/contest_ai_script.inc index 05d70e3510..763c3d1c40 100644 --- a/asm/macros/contest_ai_script.inc +++ b/asm/macros/contest_ai_script.inc @@ -5,36 +5,42 @@ .byte \score .endm -@ turn (AKA "Appeal No.") - - .macro get_turn + .macro get_appeal_num .byte 0x01 .endm - .macro if_turn_less_than param, addr + .macro if_appeal_num_less_than param, addr .byte 0x02 .byte \param .4byte \addr .endm - .macro if_turn_more_than param, addr + .macro if_appeal_num_more_than param, addr .byte 0x03 .byte \param .4byte \addr .endm - .macro if_turn_eq param, addr + .macro if_appeal_num_eq param, addr .byte 0x04 .byte \param .4byte \addr .endm - .macro if_turn_not_eq param, addr + .macro if_appeal_num_not_eq param, addr .byte 0x05 .byte \param .4byte \addr .endm + .macro if_last_appeal addr:req + if_appeal_num_eq CONTEST_LAST_APPEAL, \addr + .endm + + .macro if_not_last_appeal addr:req + if_appeal_num_not_eq CONTEST_LAST_APPEAL, \addr + .endm + @ audience excitement .macro get_excitement @@ -65,7 +71,7 @@ .4byte \addr .endm -@ the order that the user goes in the current turn +@ the order that the user goes in the current appeal .macro get_user_order .byte 0x0B diff --git a/constants/constants.inc b/constants/constants.inc index a58bf92a25..e7561f4293 100644 --- a/constants/constants.inc +++ b/constants/constants.inc @@ -1,4 +1,2 @@ .include "constants/gba_constants.inc" .include "constants/global.inc" - .include "constants/contest_constants.inc" - .include "constants/contest_move_effects.inc" diff --git a/constants/contest_constants.inc b/constants/contest_constants.inc deleted file mode 100644 index e971764d61..0000000000 --- a/constants/contest_constants.inc +++ /dev/null @@ -1,68 +0,0 @@ - .set CONTEST_COOL, 0x00 - .set CONTEST_BEAUTY, 0x01 - .set CONTEST_CUTE, 0x02 - .set CONTEST_SMART, 0x03 - .set CONTEST_TOUGH, 0x04 - - .set COMBO_STARTER_RAIN_DANCE, 0x01 - .set COMBO_STARTER_RAGE, 0x02 - .set COMBO_STARTER_FOCUS_ENERGY, 0x03 - .set COMBO_STARTER_HYPNOSIS, 0x04 - .set COMBO_STARTER_ENDURE, 0x05 - .set COMBO_STARTER_HORN_ATTACK, 0x06 - .set COMBO_STARTER_SWORDS_DANCE, 0x07 - .set COMBO_STARTER_STOCKPILE, 0x08 - .set COMBO_STARTER_SUNNY_DAY, 0x09 - .set COMBO_STARTER_REST, 0x0A - .set COMBO_STARTER_VICE_GRIP, 0x0B - .set COMBO_STARTER_DEFENSE_CURL, 0x0C - .set COMBO_STARTER_CHARGE, 0x0D - .set COMBO_STARTER_ROCK_THROW, 0x0E - .set COMBO_STARTER_YAWN, 0x0F - .set COMBO_STARTER_SCARY_FACE, 0x10 - .set COMBO_STARTER_POWDER_SNOW, 0x11 - .set COMBO_STARTER_LOCK_ON, 0x12 - .set COMBO_STARTER_SOFT_BOILED, 0x13 - .set COMBO_STARTER_MEAN_LOOK, 0x14 - .set COMBO_STARTER_SCRATCH, 0x15 - .set COMBO_STARTER_GROWTH, 0x16 - .set COMBO_STARTER_HAIL, 0x17 - .set COMBO_STARTER_SANDSTORM, 0x18 - .set COMBO_STARTER_BELLY_DRUM, 0x19 - .set COMBO_STARTER_MIND_READER, 0x1A - .set COMBO_STARTER_DRAGON_BREATH, 0x1B - .set COMBO_STARTER_DRAGON_RAGE, 0x1C - .set COMBO_STARTER_DRAGON_DANCE, 0x1D - .set COMBO_STARTER_SURF, 0x1E - .set COMBO_STARTER_DIVE, 0x1F - .set COMBO_STARTER_STRING_SHOT, 0x20 - .set COMBO_STARTER_LEER, 0x21 - .set COMBO_STARTER_TAUNT, 0x22 - .set COMBO_STARTER_CHARM, 0x23 - .set COMBO_STARTER_HARDEN, 0x24 - .set COMBO_STARTER_SING, 0x25 - .set COMBO_STARTER_EARTHQUAKE, 0x26 - .set COMBO_STARTER_DOUBLE_TEAM, 0x27 - .set COMBO_STARTER_CURSE, 0x28 - .set COMBO_STARTER_SWEET_SCENT, 0x29 - .set COMBO_STARTER_SLUDGE, 0x2A - .set COMBO_STARTER_SLUDGE_BOMB, 0x2B - .set COMBO_STARTER_THUNDER_PUNCH, 0x2C - .set COMBO_STARTER_FIRE_PUNCH, 0x2D - .set COMBO_STARTER_ICE_PUNCH, 0x2E - .set COMBO_STARTER_PECK, 0x2F - .set COMBO_STARTER_METAL_SOUND, 0x30 - .set COMBO_STARTER_MUD_SPORT, 0x31 - .set COMBO_STARTER_WATER_SPORT, 0x32 - .set COMBO_STARTER_BONE_CLUB, 0x33 - .set COMBO_STARTER_BONEMERANG, 0x34 - .set COMBO_STARTER_BONE_RUSH, 0x35 - .set COMBO_STARTER_SAND_ATTACK, 0x36 - .set COMBO_STARTER_MUD_SLAP, 0x37 - .set COMBO_STARTER_FAKE_OUT, 0x38 - .set COMBO_STARTER_PSYCHIC, 0x39 - .set COMBO_STARTER_KINESIS, 0x3A - .set COMBO_STARTER_CONFUSION, 0x3B - .set COMBO_STARTER_POUND, 0x3C - .set COMBO_STARTER_SMOG, 0x3D - .set COMBO_STARTER_CALM_MIND, 0x3E diff --git a/constants/contest_move_effects.inc b/constants/contest_move_effects.inc deleted file mode 100644 index b19e05004a..0000000000 --- a/constants/contest_move_effects.inc +++ /dev/null @@ -1,49 +0,0 @@ - enum_start - enum CONTEST_EFFECT_HIGHLY_APPEALING @ 0 - enum CONTEST_EFFECT_USER_MORE_EASILY_STARTLED @ 1 - enum CONTEST_EFFECT_GREAT_APPEAL_BUT_NO_MORE_MOVES @ 2 - enum CONTEST_EFFECT_REPETITION_NOT_BORING @ 3 - enum CONTEST_EFFECT_AVOID_STARTLE_ONCE @ 4 - enum CONTEST_EFFECT_AVOID_STARTLE @ 5 - enum CONTEST_EFFECT_AVOID_STARTLE_SLIGHTLY @ 6 - enum CONTEST_EFFECT_USER_LESS_EASILY_STARTLED @ 7 - enum CONTEST_EFFECT_STARTLE_FRONT_MON @ 8 - enum CONTEST_EFFECT_SLIGHTLY_STARTLE_PREV_MONS @ 9 - enum CONTEST_EFFECT_STARTLE_PREV_MON @ 10 - enum CONTEST_EFFECT_STARTLE_PREV_MONS @ 11 - enum CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON @ 12 - enum CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS @ 13 - enum CONTEST_EFFECT_STARTLE_PREV_MON_2 @ 14 - enum CONTEST_EFFECT_STARTLE_PREV_MONS_2 @ 15 - enum CONTEST_EFFECT_SHIFT_JUDGE_ATTENTION @ 16 - enum CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION @ 17 - enum CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN @ 18 - enum CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL @ 19 - enum CONTEST_EFFECT_STARTLE_MONS_COOL_APPEAL @ 20 - enum CONTEST_EFFECT_STARTLE_MONS_BEAUTY_APPEAL @ 21 - enum CONTEST_EFFECT_STARTLE_MONS_CUTE_APPEAL @ 22 - enum CONTEST_EFFECT_STARTLE_MONS_SMART_APPEAL @ 23 - enum CONTEST_EFFECT_STARTLE_MONS_TOUGH_APPEAL @ 24 - enum CONTEST_EFFECT_MAKE_FOLLOWING_MON_NERVOUS @ 25 - enum CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS @ 26 - enum CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS @ 27 - enum CONTEST_EFFECT_BADLY_STARTLES_MONS_IN_GOOD_CONDITION @ 28 - enum CONTEST_EFFECT_BETTER_IF_FIRST @ 29 - enum CONTEST_EFFECT_BETTER_IF_LAST @ 30 - enum CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONES @ 31 - enum CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONE @ 32 - enum CONTEST_EFFECT_BETTER_WHEN_LATER @ 33 - enum CONTEST_EFFECT_QUALITY_DEPENDS_ON_TIMING @ 34 - enum CONTEST_EFFECT_BETTER_IF_SAME_TYPE @ 35 - enum CONTEST_EFFECT_BETTER_IF_DIFF_TYPE @ 36 - enum CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL @ 37 - enum CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS @ 38 - enum CONTEST_EFFECT_BETTER_WITH_GOOD_CONDITION @ 39 - enum CONTEST_EFFECT_NEXT_APPEAL_EARLIER @ 40 - enum CONTEST_EFFECT_NEXT_APPEAL_LATER @ 41 - enum CONTEST_EFFECT_MAKE_SCRAMBLING_TURN_ORDER_EASIER @ 42 - enum CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER @ 43 - enum CONTEST_EFFECT_EXCITE_AUDIENCE_IN_ANY_CONTEST @ 44 - enum CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS @ 45 - enum CONTEST_EFFECT_BETTER_WHEN_AUDIENCE_EXCITED @ 46 - enum CONTEST_EFFECT_DONT_EXCITE_AUDIENCE @ 47 diff --git a/data/contest_ai_scripts.s b/data/contest_ai_scripts.s index 252c39a3aa..4938a8c93c 100644 --- a/data/contest_ai_scripts.s +++ b/data/contest_ai_scripts.s @@ -1,9 +1,13 @@ +#include "constants/global.h" +#include "constants/contest.h" .include "asm/macros.inc" .include "asm/macros/contest_ai_script.inc" .include "constants/constants.inc" .section script_data, "aw", %progbits +@ TODO + enum_start enum MON_1 enum MON_2 @@ -12,13 +16,13 @@ .align 2 gContestAIChecks:: @ 82DE350 - .4byte AI_CheckForBadMove // 0x00000001 - .4byte AI_CheckForCombo // 0x00000002 - .4byte AI_CheckBoring // 0x00000004 - .4byte AI_CheckExcitement // 0x00000008 - .4byte AI_CheckOrder // 0x00000010 - .4byte AI_CheckForGoodMove // 0x00000020 - .4byte AI_Erratic // 0x00000040 + .4byte AI_CheckForBadMove @ CONTEST_AI_CHECK_BAD_MOVE + .4byte AI_CheckForCombo @ CONTEST_AI_CHECK_COMBO + .4byte AI_CheckBoring @ CONTEST_AI_CHECK_BORING + .4byte AI_CheckExcitement @ CONTEST_AI_CHECK_EXCITEMENT + .4byte AI_CheckOrder @ CONTEST_AI_CHECK_ORDER + .4byte AI_CheckForGoodMove @ CONTEST_AI_CHECK_GOOD_MOVE + .4byte AI_Erratic @ CONTEST_AI_ERRATIC .4byte AI_Nothing // 0x00000080 .4byte AI_Nothing // 0x00000100 .4byte AI_Nothing // 0x00000200 @@ -47,9 +51,9 @@ gContestAIChecks:: @ 82DE350 @ Unreferenced AI routine to encourage moves that improve condition on the first -@ turn. Additionally, it checks the appeal order of the user and the effect +@ appeal. Additionally, it checks the turn order of the user and the effect @ type, but the code is buggy and doesnt affect the score. - if_turn_not_eq 0, ContestUnreferenced_80 + if_appeal_num_not_eq 0, ContestUnreferenced_80 if_effect_not_eq CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, ContestUnreferenced_80 score +10 ContestUnreferenced_80: @@ -64,11 +68,11 @@ ContestUnreferenced_end: end @ Unreferenced AI routine that doesnt make much sense. - if_turn_eq 0, ContestUnreferenced_0F_1 - if_turn_eq 1, ContestUnreferenced_0F_2 - if_turn_eq 2, ContestUnreferenced_0F_3 - if_turn_eq 3, ContestUnreferenced_0F_4 - if_turn_eq 4, ContestUnreferenced_0F_5 + if_appeal_num_eq 0, ContestUnreferenced_0F_1 + if_appeal_num_eq 1, ContestUnreferenced_0F_2 + if_appeal_num_eq 2, ContestUnreferenced_0F_3 + if_appeal_num_eq 3, ContestUnreferenced_0F_4 + if_last_appeal ContestUnreferenced_0F_5 end ContestUnreferenced_0F_1: if_user_order_not_eq MON_1, ContestUnreferenced_2B_1 @@ -166,7 +170,7 @@ AI_contest7D_1_081DC2AB: end AI_contest0F_2_081DC2AB: if_user_order_not_eq MON_1, AI_contest7D_3_081DC2AB - if_turn_eq 4, AI_score_081DC2AB + if_last_appeal AI_score_081DC2AB AI_contest7D_2_081DC2AB: if_random 51, AI_end_081DC2AB score +10 @@ -222,22 +226,22 @@ AI_score_081DC348: score +25 end AI_contest04_1_081DC348: - if_turn_eq 4, AI_contest7D_081DC348 + if_last_appeal AI_contest7D_081DC348 if_random 150, AI_end_081DC348 score +10 end AI_contest04_2_081DC348: - if_turn_eq 4, AI_contest7D_081DC348 + if_last_appeal AI_contest7D_081DC348 if_random 125, AI_end_081DC348 score +10 end AI_contest04_3_081DC348: - if_turn_eq 4, AI_contest7D_081DC348 + if_last_appeal AI_contest7D_081DC348 if_random 50, AI_end_081DC348 score +10 end AI_contest04_4_081DC348: - if_turn_eq 4, AI_contest7D_081DC348 + if_last_appeal AI_contest7D_081DC348 score +10 end AI_contest7D_081DC348: @@ -302,7 +306,7 @@ ContestEffect3: if_random 50, ContestEffectEnd score +15 end - if_turn_eq 4, ContestEffect3_7D + if_last_appeal ContestEffect3_7D if_random 220, ContestEffect3_score score +10 end @@ -324,8 +328,8 @@ ContestEffect38_score1: score -10 end ContestEffect38_contest04: - if_turn_eq 4, ContestEffect38_score2 - if_turn_eq 0, ContestEffect38_random + if_last_appeal ContestEffect38_score2 + if_appeal_num_eq 0, ContestEffect38_random if_move_used_count_eq 1, ContestEffectEnd if_random 125, ContestEffectEnd score +10 @@ -342,7 +346,7 @@ ContestEffect47: if_move_used_count_eq 1, ContestEffectEnd if_user_order_eq MON_1, ContestEffect47_random if_user_order_eq MON_2, ContestEffect47_random - if_turn_not_eq 4, ContestEffectEnd + if_not_last_appeal ContestEffectEnd if_user_has_exciting_move ContestEffectEnd if_excitement_less_than 1, ContestEffectEnd score +10 @@ -409,7 +413,7 @@ ContestEffect46: if_user_order_more_than MON_1, ContestEffect46_score4 end ContestEffect46_05: - if_turn_not_eq 0, ContestEffect46_score1 + if_appeal_num_not_eq 0, ContestEffect46_score1 if_excitement_eq 4, ContestEffect46_score2 if_excitement_eq 3, ContestEffect46_score3 end @@ -566,7 +570,7 @@ ContestEffect_FollowingMonsNervous_CheckMon2: end ContestEffect18: - if_turn_eq 4, ContestEffect18_score1 + if_last_appeal ContestEffect18_score1 jump ContestEffect18_0E end ContestEffect18_score1: @@ -600,9 +604,9 @@ ContestEffectEnd: @ Randomly encourage moves in Cute, Smart, and Tough contests. AI_Erratic: - if_contest_type_eq CONTEST_CUTE, Erratic_CuteSmartTough - if_contest_type_eq CONTEST_SMART, Erratic_CuteSmartTough - if_contest_type_eq CONTEST_TOUGH, Erratic_CuteSmartTough + if_contest_type_eq CONTEST_CATEGORY_CUTE, Erratic_CuteSmartTough + if_contest_type_eq CONTEST_CATEGORY_SMART, Erratic_CuteSmartTough + if_contest_type_eq CONTEST_CATEGORY_TOUGH, Erratic_CuteSmartTough end Erratic_CuteSmartTough: if_random 125, Erratic_NoScoreIncrease @@ -763,11 +767,11 @@ ContestEffect2_4_score3: end ContestEffect2_2: - if_turn_eq 0, ContestEffect2_2_score1 - if_turn_eq 1, ContestEffect2_2_score2 - if_turn_eq 2, ContestEffect2_2_score3 - if_turn_eq 3, ContestEffect2_2_score4 - if_turn_eq 4, ContestEffect2_2_score5 + if_appeal_num_eq 0, ContestEffect2_2_score1 + if_appeal_num_eq 1, ContestEffect2_2_score2 + if_appeal_num_eq 2, ContestEffect2_2_score3 + if_appeal_num_eq 3, ContestEffect2_2_score4 + if_last_appeal ContestEffect2_2_score5 end ContestEffect2_2_score1: if_random 20, ContestEffectEnd2 diff --git a/include/constants/contest.h b/include/constants/contest.h index 5eabb5f46b..a10354169b 100644 --- a/include/constants/contest.h +++ b/include/constants/contest.h @@ -2,7 +2,8 @@ #define GUARD_CONSTANTS_CONTEST_H #define APPLAUSE_METER_SIZE 5 -#define CONTEST_TURN_COUNT 5 +#define CONTEST_NUM_APPEALS 5 +#define CONTEST_LAST_APPEAL (CONTEST_NUM_APPEALS - 1) #define LINK_CONTEST_FLAG_IS_LINK (1 << 0) #define LINK_CONTEST_FLAG_IS_WIRELESS (1 << 1) @@ -44,4 +45,151 @@ #define CANT_ENTER_CONTEST_EGG 3 #define CANT_ENTER_CONTEST_FAINTED 4 +#define CONTEST_AI_CHECK_BAD_MOVE (1 << 0) +#define CONTEST_AI_CHECK_COMBO (1 << 1) +#define CONTEST_AI_CHECK_BORING (1 << 2) +#define CONTEST_AI_CHECK_EXCITEMENT (1 << 3) +#define CONTEST_AI_CHECK_ORDER (1 << 4) +#define CONTEST_AI_CHECK_GOOD_MOVE (1 << 5) +#define CONTEST_AI_ERRATIC (1 << 6) +#define CONTEST_AI_DUMMY_1 (1 << 7) +#define CONTEST_AI_DUMMY_2 (1 << 8) +#define CONTEST_AI_DUMMY_3 (1 << 9) +#define CONTEST_AI_DUMMY_4 (1 << 10) +#define CONTEST_AI_DUMMY_5 (1 << 11) +#define CONTEST_AI_DUMMY_6 (1 << 12) +#define CONTEST_AI_DUMMY_7 (1 << 13) +#define CONTEST_AI_DUMMY_8 (1 << 14) +#define CONTEST_AI_DUMMY_9 (1 << 15) +#define CONTEST_AI_DUMMY_10 (1 << 16) +#define CONTEST_AI_DUMMY_11 (1 << 17) +#define CONTEST_AI_DUMMY_12 (1 << 18) +#define CONTEST_AI_DUMMY_13 (1 << 19) +#define CONTEST_AI_DUMMY_14 (1 << 20) +#define CONTEST_AI_DUMMY_15 (1 << 21) +#define CONTEST_AI_DUMMY_16 (1 << 22) +#define CONTEST_AI_DUMMY_17 (1 << 23) +#define CONTEST_AI_DUMMY_18 (1 << 24) +#define CONTEST_AI_DUMMY_19 (1 << 25) +#define CONTEST_AI_DUMMY_20 (1 << 26) +#define CONTEST_AI_DUMMY_21 (1 << 27) +#define CONTEST_AI_DUMMY_22 (1 << 28) +#define CONTEST_AI_DUMMY_23 (1 << 29) +#define CONTEST_AI_DUMMY_24 (1 << 30) +#define CONTEST_AI_DUMMY_25 (1 << 31) +#define CONTEST_AI_ALL (CONTEST_AI_CHECK_BAD_MOVE | CONTEST_AI_CHECK_COMBO | CONTEST_AI_CHECK_BORING | CONTEST_AI_CHECK_EXCITEMENT | CONTEST_AI_CHECK_ORDER | CONTEST_AI_CHECK_GOOD_MOVE | CONTEST_AI_ERRATIC) +#define CONTEST_AI_DUMMIES_1 (CONTEST_AI_DUMMY_1 | CONTEST_AI_DUMMY_2 | CONTEST_AI_DUMMY_3 | CONTEST_AI_DUMMY_4 | CONTEST_AI_DUMMY_5) + +#define CONTEST_EFFECT_HIGHLY_APPEALING 0 +#define CONTEST_EFFECT_USER_MORE_EASILY_STARTLED 1 +#define CONTEST_EFFECT_GREAT_APPEAL_BUT_NO_MORE_MOVES 2 +#define CONTEST_EFFECT_REPETITION_NOT_BORING 3 +#define CONTEST_EFFECT_AVOID_STARTLE_ONCE 4 +#define CONTEST_EFFECT_AVOID_STARTLE 5 +#define CONTEST_EFFECT_AVOID_STARTLE_SLIGHTLY 6 +#define CONTEST_EFFECT_USER_LESS_EASILY_STARTLED 7 +#define CONTEST_EFFECT_STARTLE_FRONT_MON 8 +#define CONTEST_EFFECT_SLIGHTLY_STARTLE_PREV_MONS 9 +#define CONTEST_EFFECT_STARTLE_PREV_MON 10 +#define CONTEST_EFFECT_STARTLE_PREV_MONS 11 +#define CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON 12 +#define CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS 13 +#define CONTEST_EFFECT_STARTLE_PREV_MON_2 14 +#define CONTEST_EFFECT_STARTLE_PREV_MONS_2 15 +#define CONTEST_EFFECT_SHIFT_JUDGE_ATTENTION 16 +#define CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION 17 +#define CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN 18 +#define CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL 19 +#define CONTEST_EFFECT_STARTLE_MONS_COOL_APPEAL 20 +#define CONTEST_EFFECT_STARTLE_MONS_BEAUTY_APPEAL 21 +#define CONTEST_EFFECT_STARTLE_MONS_CUTE_APPEAL 22 +#define CONTEST_EFFECT_STARTLE_MONS_SMART_APPEAL 23 +#define CONTEST_EFFECT_STARTLE_MONS_TOUGH_APPEAL 24 +#define CONTEST_EFFECT_MAKE_FOLLOWING_MON_NERVOUS 25 +#define CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS 26 +#define CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS 27 +#define CONTEST_EFFECT_BADLY_STARTLES_MONS_IN_GOOD_CONDITION 28 +#define CONTEST_EFFECT_BETTER_IF_FIRST 29 +#define CONTEST_EFFECT_BETTER_IF_LAST 30 +#define CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONES 31 +#define CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONE 32 +#define CONTEST_EFFECT_BETTER_WHEN_LATER 33 +#define CONTEST_EFFECT_QUALITY_DEPENDS_ON_TIMING 34 +#define CONTEST_EFFECT_BETTER_IF_SAME_TYPE 35 +#define CONTEST_EFFECT_BETTER_IF_DIFF_TYPE 36 +#define CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL 37 +#define CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS 38 +#define CONTEST_EFFECT_BETTER_WITH_GOOD_CONDITION 39 +#define CONTEST_EFFECT_NEXT_APPEAL_EARLIER 40 +#define CONTEST_EFFECT_NEXT_APPEAL_LATER 41 +#define CONTEST_EFFECT_MAKE_SCRAMBLING_TURN_ORDER_EASIER 42 +#define CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER 43 +#define CONTEST_EFFECT_EXCITE_AUDIENCE_IN_ANY_CONTEST 44 +#define CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS 45 +#define CONTEST_EFFECT_BETTER_WHEN_AUDIENCE_EXCITED 46 +#define CONTEST_EFFECT_DONT_EXCITE_AUDIENCE 47 + +#define COMBO_STARTER_RAIN_DANCE 1 +#define COMBO_STARTER_RAGE 2 +#define COMBO_STARTER_FOCUS_ENERGY 3 +#define COMBO_STARTER_HYPNOSIS 4 +#define COMBO_STARTER_ENDURE 5 +#define COMBO_STARTER_HORN_ATTACK 6 +#define COMBO_STARTER_SWORDS_DANCE 7 +#define COMBO_STARTER_STOCKPILE 8 +#define COMBO_STARTER_SUNNY_DAY 9 +#define COMBO_STARTER_REST 10 +#define COMBO_STARTER_VICE_GRIP 11 +#define COMBO_STARTER_DEFENSE_CURL 12 +#define COMBO_STARTER_CHARGE 13 +#define COMBO_STARTER_ROCK_THROW 14 +#define COMBO_STARTER_YAWN 15 +#define COMBO_STARTER_SCARY_FACE 16 +#define COMBO_STARTER_POWDER_SNOW 17 +#define COMBO_STARTER_LOCK_ON 18 +#define COMBO_STARTER_SOFT_BOILED 19 +#define COMBO_STARTER_MEAN_LOOK 20 +#define COMBO_STARTER_SCRATCH 21 +#define COMBO_STARTER_GROWTH 22 +#define COMBO_STARTER_HAIL 23 +#define COMBO_STARTER_SANDSTORM 24 +#define COMBO_STARTER_BELLY_DRUM 25 +#define COMBO_STARTER_MIND_READER 26 +#define COMBO_STARTER_DRAGON_BREATH 27 +#define COMBO_STARTER_DRAGON_RAGE 28 +#define COMBO_STARTER_DRAGON_DANCE 29 +#define COMBO_STARTER_SURF 30 +#define COMBO_STARTER_DIVE 31 +#define COMBO_STARTER_STRING_SHOT 32 +#define COMBO_STARTER_LEER 33 +#define COMBO_STARTER_TAUNT 34 +#define COMBO_STARTER_CHARM 35 +#define COMBO_STARTER_HARDEN 36 +#define COMBO_STARTER_SING 37 +#define COMBO_STARTER_EARTHQUAKE 38 +#define COMBO_STARTER_DOUBLE_TEAM 39 +#define COMBO_STARTER_CURSE 40 +#define COMBO_STARTER_SWEET_SCENT 41 +#define COMBO_STARTER_SLUDGE 42 +#define COMBO_STARTER_SLUDGE_BOMB 43 +#define COMBO_STARTER_THUNDER_PUNCH 44 +#define COMBO_STARTER_FIRE_PUNCH 45 +#define COMBO_STARTER_ICE_PUNCH 46 +#define COMBO_STARTER_PECK 47 +#define COMBO_STARTER_METAL_SOUND 48 +#define COMBO_STARTER_MUD_SPORT 49 +#define COMBO_STARTER_WATER_SPORT 50 +#define COMBO_STARTER_BONE_CLUB 51 +#define COMBO_STARTER_BONEMERANG 52 +#define COMBO_STARTER_BONE_RUSH 53 +#define COMBO_STARTER_SAND_ATTACK 54 +#define COMBO_STARTER_MUD_SLAP 55 +#define COMBO_STARTER_FAKE_OUT 56 +#define COMBO_STARTER_PSYCHIC 57 +#define COMBO_STARTER_KINESIS 58 +#define COMBO_STARTER_CONFUSION 59 +#define COMBO_STARTER_POUND 60 +#define COMBO_STARTER_SMOG 61 +#define COMBO_STARTER_CALM_MIND 62 + #endif // GUARD_CONSTANTS_CONTEST_H diff --git a/include/contest.h b/include/contest.h index b6818f996c..1cad717058 100644 --- a/include/contest.h +++ b/include/contest.h @@ -15,124 +15,6 @@ enum CONTEST_DEBUG_MODE_PRINT_UNK_D }; -enum -{ - CONTEST_EFFECT_HIGHLY_APPEALING, - CONTEST_EFFECT_USER_MORE_EASILY_STARTLED, - CONTEST_EFFECT_GREAT_APPEAL_BUT_NO_MORE_MOVES, - CONTEST_EFFECT_REPETITION_NOT_BORING, - CONTEST_EFFECT_AVOID_STARTLE_ONCE, - CONTEST_EFFECT_AVOID_STARTLE, - CONTEST_EFFECT_AVOID_STARTLE_SLIGHTLY, - CONTEST_EFFECT_USER_LESS_EASILY_STARTLED, - CONTEST_EFFECT_STARTLE_FRONT_MON, - CONTEST_EFFECT_SLIGHTLY_STARTLE_PREV_MONS, - CONTEST_EFFECT_STARTLE_PREV_MON, - CONTEST_EFFECT_STARTLE_PREV_MONS, - CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, - CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, - CONTEST_EFFECT_STARTLE_PREV_MON_2, - CONTEST_EFFECT_STARTLE_PREV_MONS_2, - CONTEST_EFFECT_SHIFT_JUDGE_ATTENTION, - CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, - CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN, - CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, - CONTEST_EFFECT_STARTLE_MONS_COOL_APPEAL, - CONTEST_EFFECT_STARTLE_MONS_BEAUTY_APPEAL, - CONTEST_EFFECT_STARTLE_MONS_CUTE_APPEAL, - CONTEST_EFFECT_STARTLE_MONS_SMART_APPEAL, - CONTEST_EFFECT_STARTLE_MONS_TOUGH_APPEAL, - CONTEST_EFFECT_MAKE_FOLLOWING_MON_NERVOUS, - CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, - CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS, - CONTEST_EFFECT_BADLY_STARTLES_MONS_IN_GOOD_CONDITION, - CONTEST_EFFECT_BETTER_IF_FIRST, - CONTEST_EFFECT_BETTER_IF_LAST, - CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONES, - CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONE, - CONTEST_EFFECT_BETTER_WHEN_LATER, - CONTEST_EFFECT_QUALITY_DEPENDS_ON_TIMING, - CONTEST_EFFECT_BETTER_IF_SAME_TYPE, - CONTEST_EFFECT_BETTER_IF_DIFF_TYPE, - CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL, - CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, - CONTEST_EFFECT_BETTER_WITH_GOOD_CONDITION, - CONTEST_EFFECT_NEXT_APPEAL_EARLIER, - CONTEST_EFFECT_NEXT_APPEAL_LATER, - CONTEST_EFFECT_MAKE_SCRAMBLING_TURN_ORDER_EASIER, - CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER, - CONTEST_EFFECT_EXCITE_AUDIENCE_IN_ANY_CONTEST, - CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, - CONTEST_EFFECT_BETTER_WHEN_AUDIENCE_EXCITED, - CONTEST_EFFECT_DONT_EXCITE_AUDIENCE -}; - -enum -{ - COMBO_STARTER_RAIN_DANCE = 1, - COMBO_STARTER_RAGE, - COMBO_STARTER_FOCUS_ENERGY, - COMBO_STARTER_HYPNOSIS, - COMBO_STARTER_ENDURE, - COMBO_STARTER_HORN_ATTACK, - COMBO_STARTER_SWORDS_DANCE, - COMBO_STARTER_STOCKPILE, - COMBO_STARTER_SUNNY_DAY, - COMBO_STARTER_REST, - COMBO_STARTER_VICE_GRIP, - COMBO_STARTER_DEFENSE_CURL, - COMBO_STARTER_CHARGE, - COMBO_STARTER_ROCK_THROW, - COMBO_STARTER_YAWN, - COMBO_STARTER_SCARY_FACE, - COMBO_STARTER_POWDER_SNOW, - COMBO_STARTER_LOCK_ON, - COMBO_STARTER_SOFT_BOILED, - COMBO_STARTER_MEAN_LOOK, - COMBO_STARTER_SCRATCH, - COMBO_STARTER_GROWTH, - COMBO_STARTER_HAIL, - COMBO_STARTER_SANDSTORM, - COMBO_STARTER_BELLY_DRUM, - COMBO_STARTER_MIND_READER, - COMBO_STARTER_DRAGON_BREATH, - COMBO_STARTER_DRAGON_RAGE, - COMBO_STARTER_DRAGON_DANCE, - COMBO_STARTER_SURF, - COMBO_STARTER_DIVE, - COMBO_STARTER_STRING_SHOT, - COMBO_STARTER_LEER, - COMBO_STARTER_TAUNT, - COMBO_STARTER_CHARM, - COMBO_STARTER_HARDEN, - COMBO_STARTER_SING, - COMBO_STARTER_EARTHQUAKE, - COMBO_STARTER_DOUBLE_TEAM, - COMBO_STARTER_CURSE, - COMBO_STARTER_SWEET_SCENT, - COMBO_STARTER_SLUDGE, - COMBO_STARTER_SLUDGE_BOMB, - COMBO_STARTER_THUNDER_PUNCH, - COMBO_STARTER_FIRE_PUNCH, - COMBO_STARTER_ICE_PUNCH, - COMBO_STARTER_PECK, - COMBO_STARTER_METAL_SOUND, - COMBO_STARTER_MUD_SPORT, - COMBO_STARTER_WATER_SPORT, - COMBO_STARTER_BONE_CLUB, - COMBO_STARTER_BONEMERANG, - COMBO_STARTER_BONE_RUSH, - COMBO_STARTER_SAND_ATTACK, - COMBO_STARTER_MUD_SLAP, - COMBO_STARTER_FAKE_OUT, - COMBO_STARTER_PSYCHIC, - COMBO_STARTER_KINESIS, - COMBO_STARTER_CONFUSION, - COMBO_STARTER_POUND, - COMBO_STARTER_SMOG, - COMBO_STARTER_CALM_MIND -}; - enum { CONTEST_STRING_MORE_CONSCIOUS, @@ -255,7 +137,7 @@ struct ContestStruct_field_18 struct Contest { u8 playerMoveChoice; - u8 turnNumber; + u8 appealNumber; u8 unused2[CONTESTANT_COUNT]; bool16 unk1920A_0:1; // Task active flags? bool16 unk1920A_1:1; @@ -273,14 +155,14 @@ struct Contest u8 unk19211; u8 unk19212; u8 filler19213; - u8 unk19214; - u8 unk19215; + u8 turnNumber; + u8 currentContestant; u8 unk19216; // sprite ID s8 applauseLevel; u8 prevTurnOrder[CONTESTANT_COUNT]; u32 unk1921C; // saved RNG value? - u16 moveHistory[CONTEST_TURN_COUNT][CONTESTANT_COUNT]; - u8 excitementHistory[CONTEST_TURN_COUNT][CONTESTANT_COUNT]; + u16 moveHistory[CONTEST_NUM_APPEALS][CONTESTANT_COUNT]; + u8 excitementHistory[CONTEST_NUM_APPEALS][CONTESTANT_COUNT]; u8 applauseMeterSpriteId; u8 contestSetupState; u8 unk1925E; @@ -431,9 +313,9 @@ struct ContestResources #define eUnknownHeap1A004 (*(struct Shared1A004 *)(gHeap + 0x1a004)) extern struct ContestPokemon gContestMons[CONTESTANT_COUNT]; -extern s16 gContestMonConditions[CONTESTANT_COUNT]; +extern s16 gContestMonRound1Points[CONTESTANT_COUNT]; extern s16 gContestMonTotalPoints[CONTESTANT_COUNT]; -extern s16 gUnknown_02039F10[CONTESTANT_COUNT]; +extern s16 gContestMonAppealPointTotals[CONTESTANT_COUNT]; extern s16 gContestMonRound2Points[CONTESTANT_COUNT]; extern u8 gContestFinalStandings[CONTESTANT_COUNT]; extern u8 gContestMonPartyIndex; @@ -457,8 +339,8 @@ void ResetLinkContestBoolean(void); void LoadContestBgAfterMoveAnim(void); void CB2_StartContest(void); void CreateContestMonFromParty(u8 partyIndex); -void sub_80DAB8C(u8 contestType, u8 rank); -void sub_80DACBC(u8 contestType, u8 rank, bool32 isPostgame); +void SetContestants(u8 contestType, u8 rank); +void SetLinkAIContestants(u8 contestType, u8 rank, bool32 isPostgame); u8 GetContestEntryEligibility(struct Pokemon *pkmn); void sub_80DB09C(u8 contestCategory); bool8 IsSpeciesNotUnown(u16 species); diff --git a/include/contest_link.h b/include/contest_link.h index e52ebc426a..52b7ee330f 100644 --- a/include/contest_link.h +++ b/include/contest_link.h @@ -3,7 +3,7 @@ void sub_80FCC88(u8); void sub_80FCC88(u8); -void sub_80FCACC(u8); +void Task_LinkContest_CommunicateFinalStandings(u8); void sub_80FC580(u8); void sub_80FC6BC(u8); void sub_80FC804(u8); @@ -11,8 +11,8 @@ void sub_80FCE48(u8); void sub_80FC894(u8); void Task_LinkContest_CommunicateMonIdxs(u8 taskId); void sub_81D9DE4(u8 taskId); -void sub_80FCF40(u8); -void sub_80FCFD0(u8); +void Task_LinkContest_CommunicateRound1Points(u8); +void Task_LinkContest_CommunicateTurnOrder(u8); void sub_80F8714(u8); bool32 sub_80FC670(s16 *); bool32 LinkContest_SendBlock(void *, u16); diff --git a/src/contest.c b/src/contest.c index 76650da185..b90f894980 100644 --- a/src/contest.c +++ b/src/contest.c @@ -64,13 +64,13 @@ static void Task_ShowMoveSelectScreen(u8 taskId); static void Task_HandleMoveSelectInput(u8 taskId); static void DrawMoveSelectArrow(s8); static void EraseMoveSelectArrow(s8); -static void Task_SelectMove(u8 taskId); +static void Task_SelectedMove(u8 taskId); static void Task_EndCommunicateMoveSelections(u8 taskId); static void Task_HideMoveSelectScreen(u8 taskId); static void Task_HideApplauseMeterForAppealStart(u8 taskId); static void Task_WaitHideApplauseMeterForAppealStart(u8 taskId); static void sub_80D8A88(u8 taskId); -static void sub_80D8B38(u8 taskId); +static void Task_DoAppeals(u8 taskId); static void sub_80DA110(u8); static void sub_80DA134(struct Sprite *); static void sub_80DA164(struct Sprite *); @@ -86,14 +86,14 @@ static void sub_80DA49C(u8); static void sub_80DA4CC(u8); static void sub_80DA51C(u8); static void sub_80DA5B4(u8); -static void sub_80DA5E8(u8); -static void sub_80DA6B4(u8); -static void sub_80DA700(u8); -static void sub_80DA740(u8); -static void sub_80DA7A0(u8); -static void sub_80DA7EC(u8); -static void sub_80DA830(u8); -static void sub_80DA874(void); +static void Task_EndAppeals(u8); +static void Task_WaitForOutOfTimeMsg(u8); +static void Task_CoverAppealPanelForEnd(u8); +static void Task_TryCommunicateFinalStandings(u8); +static void Task_CommunicateFinalStandings(u8); +static void Task_EndCommunicateFinalStandings(u8); +static void Task_ContestReturnToField(u8); +static void FieldCB_ContestReturnToField(void); static bool8 sub_80DA8A4(void); static void PrintContestantTrainerName(u8); static void PrintContestantTrainerNameWithColor(u8 a0, u8 a1); @@ -101,7 +101,7 @@ static void PrintContestantMonName(u8); static void PrintContestantMonNameWithColor(u8, u8); static u8 sub_80DB0C4(void); static u8 sub_80DB120(void); -static u8 sub_80DB174(u16, u32, u32, u32); +static u8 CreateContestantSprite(u16, u32, u32, u32); static void PrintContestMoveDescription(u16); static u16 SanitizeSpecies(u16); static void ContestClearGeneralTextWindow(void); @@ -153,7 +153,7 @@ static void ShowAndUpdateApplauseMeter(s8 unused); static void sub_80DDE0C(void); static void UpdateApplauseMeter(void); static void RankContestants(void); -static void sub_80DBA18(void); +static void SetAttentionLevels(void); static void UpdateHeartSliders(void); static bool8 SlidersDoneUpdating(void); static void ContestBG_FillBoxWithTile(u8, u16, u8, u8, u8, u8, u8); @@ -217,6 +217,9 @@ enum #define MOVE_WINDOWS_START CONTEST_WINDOW_MOVE0 +#define TAG_CONTEST_SYMBOLS_PAL 0xABE0 + +#define TAG_JUDGE_SYMBOLS_GFX 0xABE0 #define TAG_FACES_GFX 0xABE1 #define TAG_APPLAUSE_METER 0xABE2 @@ -236,10 +239,10 @@ enum { // EWRAM vars. EWRAM_DATA struct ContestPokemon gContestMons[CONTESTANT_COUNT] = {0}; -EWRAM_DATA s16 gContestMonConditions[CONTESTANT_COUNT] = {0}; -EWRAM_DATA s16 gContestMonTotalPoints[CONTESTANT_COUNT] = {0}; -EWRAM_DATA s16 gUnknown_02039F10[CONTESTANT_COUNT] = {0}; -EWRAM_DATA s16 gContestMonRound2Points[CONTESTANT_COUNT] = {0}; +EWRAM_DATA s16 gContestMonRound1Points[CONTESTANT_COUNT] = {0}; // "Round 1" points are based on condition +EWRAM_DATA s16 gContestMonTotalPoints[CONTESTANT_COUNT] = {0}; // Round 1 points + Round 2 points +EWRAM_DATA s16 gContestMonAppealPointTotals[CONTESTANT_COUNT] = {0}; +EWRAM_DATA s16 gContestMonRound2Points[CONTESTANT_COUNT] = {0}; // "Round 2" points are just appeal points * 2 EWRAM_DATA u8 gContestFinalStandings[CONTESTANT_COUNT] = {0}; EWRAM_DATA u8 gContestMonPartyIndex = 0; EWRAM_DATA u8 gContestPlayerMonIndex = 0; @@ -331,7 +334,7 @@ static const union AffineAnimCmd* const sAffineAnims_SliderHeart[] = static const struct SpriteTemplate sSpriteTemplate_SliderHeart = { .tileTag = TAG_SLIDER_HEART, - .paletteTag = 0xABE0, + .paletteTag = TAG_CONTEST_SYMBOLS_PAL, .oam = &sOam_SliderHeart, .anims = gDummySpriteAnimTable, .images = NULL, @@ -454,14 +457,15 @@ static const struct SubspriteTable sSubspriteTable_NextTurn[] = } }; -const struct CompressedSpriteSheet gUnknown_08587B88 = +// Unused +static const struct CompressedSpriteSheet sSpriteSheet_Faces = { .data = gContestFaces_Gfx, .size = 0x180, .tag = TAG_FACES_GFX }; -const struct OamData gOamData_8587B90 = +static const struct OamData sOam_Faces = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -475,11 +479,12 @@ const struct OamData gOamData_8587B90 = .paletteNum = 0, }; -const struct SpriteTemplate gSpriteTemplate_8587B98 = +// Unused +static const struct SpriteTemplate sSpriteTemplate_Faces = { .tileTag = TAG_FACES_GFX, - .paletteTag = 0xABE0, - .oam = &gOamData_8587B90, + .paletteTag = TAG_CONTEST_SYMBOLS_PAL, + .oam = &sOam_Faces, .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, @@ -556,23 +561,23 @@ const struct CompressedSpriteSheet gUnknown_08587C00 = .tag = 0x4E21 }; -const struct CompressedSpriteSheet gUnknown_08587C08 = +static const struct CompressedSpriteSheet sSpriteSheet_JudgeSymbols = { .data = gContestJudgeSymbolsGfx, .size = 0x380, - .tag = 0xABE0 + .tag = TAG_JUDGE_SYMBOLS_GFX }; const struct CompressedSpritePalette gUnknown_08587C10 = { .data = gContest3Pal, - .tag = 0xABE0 + .tag = TAG_CONTEST_SYMBOLS_PAL }; const struct SpriteTemplate gSpriteTemplate_8587C18 = { - .tileTag = 0xABE0, - .paletteTag = 0xABE0, + .tileTag = TAG_JUDGE_SYMBOLS_GFX, + .paletteTag = TAG_CONTEST_SYMBOLS_PAL, .oam = &gOamData_AffineOff_ObjNormal_16x16, .anims = gDummySpriteAnimTable, .images = NULL, @@ -1340,7 +1345,7 @@ static void Task_DisplayAppealNumberText(u8 taskId) gBattle_BG2_Y = 0; ContestDebugDoPrint(); DmaCopy32Defvars(3, gPlttBufferUnfaded, eUnknownHeap1A004.unk18204, PLTT_BUFFER_SIZE * 2); - ConvertIntToDecimalStringN(gStringVar1, eContest.turnNumber + 1, STR_CONV_MODE_LEFT_ALIGN, 1); + ConvertIntToDecimalStringN(gStringVar1, eContest.appealNumber + 1, STR_CONV_MODE_LEFT_ALIGN, 1); if (!Contest_IsMonsTurnDisabled(gContestPlayerMonIndex)) StringCopy(gDisplayedStringBattle, gText_AppealNumWhichMoveWillBePlayed); else @@ -1374,7 +1379,7 @@ static void Task_TryShowMoveSelectScreen(u8 taskId) else { // Skip move selection (selected move will be MOVE_NONE) - gTasks[taskId].func = Task_SelectMove; + gTasks[taskId].func = Task_SelectedMove; } } } @@ -1431,7 +1436,7 @@ static void Task_HandleMoveSelectInput(u8 taskId) if (gMain.newKeys & A_BUTTON) { PlaySE(SE_SELECT); - gTasks[taskId].func = Task_SelectMove; + gTasks[taskId].func = Task_SelectedMove; } else { @@ -1441,7 +1446,7 @@ static void Task_HandleMoveSelectInput(u8 taskId) // Cancel move selection PlaySE(SE_SELECT); SetBottomSliderHeartsInvisibility(FALSE); - ConvertIntToDecimalStringN(gStringVar1, eContest.turnNumber + 1, STR_CONV_MODE_LEFT_ALIGN, 1); + ConvertIntToDecimalStringN(gStringVar1, eContest.appealNumber + 1, STR_CONV_MODE_LEFT_ALIGN, 1); if (!Contest_IsMonsTurnDisabled(gContestPlayerMonIndex)) StringCopy(gDisplayedStringBattle, gText_AppealNumWhichMoveWillBePlayed); else @@ -1493,7 +1498,7 @@ static void EraseMoveSelectArrow(s8 moveIndex) ContestBG_FillBoxWithIncrementingTile(2, 11, 0, 32 + moveIndex * 2, 2, 1, 17, 1); } -static void Task_SelectMove(u8 taskId) +static void Task_SelectedMove(u8 taskId) { if (gLinkContestFlags & LINK_CONTEST_FLAG_IS_LINK) { @@ -1568,7 +1573,7 @@ static void sub_80D8A88(u8 taskId) { if (++gTasks[taskId].data[0] > 19) { - eContest.unk19214 = 0; + eContest.turnNumber = 0; eContest.unk1921C = gRngValue; if ((gLinkContestFlags & LINK_CONTEST_FLAG_IS_LINK) && sub_80DA8A4()) { @@ -1580,46 +1585,48 @@ static void sub_80D8A88(u8 taskId) } } gTasks[taskId].data[0] = 0; - gTasks[taskId].func = sub_80D8B38; + gTasks[taskId].func = Task_DoAppeals; } } -static void sub_80D8B38(u8 taskId) +#define tState data[0] + +static void Task_DoAppeals(u8 taskId) { u8 spriteId; s32 i; - u8 r6 = eContest.unk19215; + u8 r6 = eContest.currentContestant; s8 r3; - switch (gTasks[taskId].data[0]) + switch (gTasks[taskId].tState) { case 0: ContestDebugDoPrint(); - for (i = 0; eContest.unk19214 != gContestResources->field_8->turnOrder[i]; i++) + for (i = 0; eContest.turnNumber != gContestResources->field_8->turnOrder[i]; i++) ; - eContest.unk19215 = i; - r6 = eContest.unk19215; + eContest.currentContestant = i; + r6 = eContest.currentContestant; if (gLinkContestFlags & LINK_CONTEST_FLAG_IS_LINK) { u8 taskId2; eContest.unk1920B_2 = 1; if (sub_80DA8A4()) - sub_80DD080(eContest.unk19215); + sub_80DD080(eContest.currentContestant); taskId2 = CreateTask(sub_80FCC88, 0); SetTaskFuncWithFollowupFunc(taskId2, sub_80FCC88, sub_80DA110); ContestPrintLinkStandby(); - gTasks[taskId].data[0] = 1; + gTasks[taskId].tState = 1; } else { - sub_80DD080(eContest.unk19215); - gTasks[taskId].data[0] = 2; + sub_80DD080(eContest.currentContestant); + gTasks[taskId].tState = 2; } return; case 1: if (!eContest.unk1920B_2) - gTasks[taskId].data[0] = 2; + gTasks[taskId].tState = 2; return; case 2: sub_80DF080(r6); @@ -1627,44 +1634,44 @@ static void sub_80D8B38(u8 taskId) if (eContestantStatus[r6].numTurnsSkipped != 0 || eContestantStatus[r6].noMoreTurns) { - gTasks[taskId].data[0] = 31; + gTasks[taskId].tState = 31; } else { ContestClearGeneralTextWindow(); gTasks[taskId].data[10] = 0; - gTasks[taskId].data[0] = 3; + gTasks[taskId].tState = 3; } return; case 3: - for (i = 0; i < 4; i++) + for (i = 0; i < CONTESTANT_COUNT; i++) gBattleMonForms[i] = 0; memset(gContestResources->field_18, 0, sizeof(*gContestResources->field_18)); - sub_80DE9DC(eContest.unk19215); - spriteId = sub_80DB174( - gContestMons[eContest.unk19215].species, - gContestMons[eContest.unk19215].otId, - gContestMons[eContest.unk19215].personality, - eContest.unk19215); + sub_80DE9DC(eContest.currentContestant); + spriteId = CreateContestantSprite( + gContestMons[eContest.currentContestant].species, + gContestMons[eContest.currentContestant].otId, + gContestMons[eContest.currentContestant].personality, + eContest.currentContestant); gSprites[spriteId].pos2.x = 120; gSprites[spriteId].callback = sub_80DA134; gTasks[taskId].data[2] = spriteId; gBattlerSpriteIds[gBattlerAttacker] = spriteId; - sub_80DCBE8(sub_80DC9EC(eContest.unk19215), FALSE); - gTasks[taskId].data[0] = 4; + sub_80DCBE8(sub_80DC9EC(eContest.currentContestant), FALSE); + gTasks[taskId].tState = 4; return; case 4: spriteId = gTasks[taskId].data[2]; if (gSprites[spriteId].callback == SpriteCallbackDummy) { if (!gContestResources->field_14[r6].unk2_1) - gTasks[taskId].data[0] = 5; + gTasks[taskId].tState = 5; } return; case 5: if (eContestantStatus[r6].nervous) { - gTasks[taskId].data[0] = 33; + gTasks[taskId].tState = 33; } else { @@ -1676,25 +1683,25 @@ static void sub_80D8B38(u8 taskId) StringCopy(gStringVar2, sInvalidContestMoveNames[eContestantStatus[r6].moveCategory]); StringExpandPlaceholders(gStringVar4, gText_MonAppealedWithMove); Contest_StartTextPrinter(gStringVar4, 1); - gTasks[taskId].data[0] = 6; + gTasks[taskId].tState = 6; } return; case 6: if (!Contest_RunTextPrinters()) { eContest.unk1925E = 0; - gTasks[taskId].data[0] = 7; + gTasks[taskId].tState = 7; } return; case 7: { - u16 move = SanitizeMove(eContestantStatus[eContest.unk19215].currMove); + u16 move = SanitizeMove(eContestantStatus[eContest.currentContestant].currMove); - sub_80DE864(eContest.unk19215); - sub_80DE9DC(eContest.unk19215); + sub_80DE864(eContest.currentContestant); + sub_80DE9DC(eContest.currentContestant); SelectContestMoveBankTarget(move); DoMoveAnim(move); - gTasks[taskId].data[0] = 8; + gTasks[taskId].tState = 8; } return; case 8: @@ -1705,14 +1712,14 @@ static void sub_80D8B38(u8 taskId) if (eContest.unk1925E != 0) { gTasks[taskId].data[10] = 0; - gTasks[taskId].data[0] = 9; + gTasks[taskId].tState = 9; } else { if (!eContestantStatus[r6].hasJudgesAttention) sub_80DC674(r6); sub_80DE12C(); - gTasks[taskId].data[0] = 23; + gTasks[taskId].tState = 23; } } return; @@ -1720,7 +1727,7 @@ static void sub_80D8B38(u8 taskId) if (gTasks[taskId].data[10]++ > 30) { gTasks[taskId].data[10] = 0; - gTasks[taskId].data[0] = 7; + gTasks[taskId].tState = 7; } return; case 23: @@ -1729,7 +1736,7 @@ static void sub_80D8B38(u8 taskId) { sub_80DD45C(r6, eContestantStatus[r6].effectStringId); eContestantStatus[r6].effectStringId = CONTEST_STRING_NONE; - gTasks[taskId].data[0] = 24; + gTasks[taskId].tState = 24; } else { @@ -1744,22 +1751,22 @@ static void sub_80D8B38(u8 taskId) { sub_80DD45C(r6, eContestantStatus[r6].effectStringId2); eContestantStatus[r6].effectStringId2 = CONTEST_STRING_NONE; - gTasks[taskId].data[0] = 24; + gTasks[taskId].tState = 24; } else { - gTasks[taskId].data[0] = 48; + gTasks[taskId].tState = 48; } } else { - gTasks[taskId].data[0] = 48; + gTasks[taskId].tState = 48; } } return; case 24: if (!Contest_RunTextPrinters()) - gTasks[taskId].data[0] = 23; + gTasks[taskId].tState = 23; return; case 48: if (eContestantStatus[r6].turnOrderModAction == 1) @@ -1776,62 +1783,62 @@ static void sub_80D8B38(u8 taskId) } else { - gTasks[taskId].data[0] = 47; + gTasks[taskId].tState = 47; return; } - gTasks[taskId].data[0] = 49; + gTasks[taskId].tState = 49; return; case 49: if (!eContest.unk1920A_4) - gTasks[taskId].data[0] = 47; + gTasks[taskId].tState = 47; return; case 47: sub_80DE008(TRUE); - gTasks[taskId].data[0] = 12; + gTasks[taskId].tState = 12; return; case 12: sub_80DC028(0, eContestantStatus[r6].appeal2, r6); - gTasks[taskId].data[0] = 13; + gTasks[taskId].tState = 13; return; case 13: - if (!gContestResources->field_14[eContest.unk19215].unk2_2) - gTasks[taskId].data[0] = 35; + if (!gContestResources->field_14[eContest.currentContestant].unk2_2) + gTasks[taskId].tState = 35; return; case 35: if (eContestantStatus[r6].conditionMod == 1) sub_80DD720(8); - gTasks[taskId].data[0] = 36; + gTasks[taskId].tState = 36; return; case 36: if (!eContest.unk1920A_4) - gTasks[taskId].data[0] = 37; + gTasks[taskId].tState = 37; return; case 37: if (sub_80DB5B8(r6, 1)) { gTasks[taskId].data[10] = 0; - gTasks[taskId].data[0] = 38; + gTasks[taskId].tState = 38; } else { - gTasks[taskId].data[0] = 50; + gTasks[taskId].tState = 50; } return; case 38: if (++gTasks[taskId].data[10] > 20) { gTasks[taskId].data[10] = 0; - gTasks[taskId].data[0] = 50; + gTasks[taskId].tState = 50; } return; case 50: if (sub_80DB798(r6)) PlaySE(SE_C_PASI); - gTasks[taskId].data[0] = 25; + gTasks[taskId].tState = 25; return; case 25: gTasks[taskId].data[1] = 0; - gTasks[taskId].data[0] = 26; + gTasks[taskId].tState = 26; return; case 26: { @@ -1858,32 +1865,32 @@ static void sub_80D8B38(u8 taskId) gTasks[taskId].data[1] = gContestantTurnOrder[r2]; sub_80DD45C(r2, eContestantStatus[r2].effectStringId); eContestantStatus[r2].effectStringId = CONTEST_STRING_NONE; - gTasks[taskId].data[0] = 27; + gTasks[taskId].tState = 27; } else { gTasks[taskId].data[1] = 0; gTasks[taskId].data[10] = 0; - gTasks[taskId].data[0] = 51; + gTasks[taskId].tState = 51; sub_80DB884(); } } return; case 27: if (!Contest_RunTextPrinters()) - gTasks[taskId].data[0] = 28; + gTasks[taskId].tState = 28; return; case 28: for (i = 0; gTasks[taskId].data[1] != gContestantTurnOrder[i]; i++) ; sub_80DC028(eContestantStatus[i].appeal2 + eContestantStatus[i].jam, -eContestantStatus[i].jam, i); - gTasks[taskId].data[0] = 29; + gTasks[taskId].tState = 29; return; case 29: for (i = 0; gTasks[taskId].data[1] != gContestantTurnOrder[i]; i++) ; if (!gContestResources->field_14[i].unk2_2) - gTasks[taskId].data[0] = 39; + gTasks[taskId].tState = 39; return; case 39: for (i = 0; gTasks[taskId].data[1] != gContestantTurnOrder[i]; i++) @@ -1891,18 +1898,18 @@ static void sub_80D8B38(u8 taskId) if (sub_80DB5B8(i, 1)) { gTasks[taskId].data[10] = 0; - gTasks[taskId].data[0] = 40; + gTasks[taskId].tState = 40; } else { - gTasks[taskId].data[0] = 30; + gTasks[taskId].tState = 30; } return; case 40: if (++gTasks[taskId].data[10] > 20) { gTasks[taskId].data[10] = 0; - gTasks[taskId].data[0] = 30; + gTasks[taskId].tState = 30; } return; case 30: @@ -1921,7 +1928,7 @@ static void sub_80D8B38(u8 taskId) eContestantStatus[i].judgesAttentionWasRemoved = 0; } gTasks[taskId].data[1]++; - gTasks[taskId].data[0] = 26; + gTasks[taskId].tState = 26; return; case 51: if (gTasks[taskId].data[10]++ > 9) @@ -1935,16 +1942,16 @@ static void sub_80D8B38(u8 taskId) StringExpandPlaceholders(gStringVar4, gText_MonCantAppealNextTurn); Contest_StartTextPrinter(gStringVar4, 1); } - gTasks[taskId].data[0] = 52; + gTasks[taskId].tState = 52; } return; case 52: if (!Contest_RunTextPrinters()) { if (!eContestantStatus[r6].unk15_6) - gTasks[taskId].data[0] = 17; + gTasks[taskId].tState = 17; else - gTasks[taskId].data[0] = 14; + gTasks[taskId].tState = 14; } return; case 14: @@ -1960,7 +1967,7 @@ static void sub_80D8B38(u8 taskId) Contest_StartTextPrinter(gText_AppealComboWentOverExcellently, TRUE); sub_80DD720(3); gTasks[taskId].data[10] = 0; - gTasks[taskId].data[0] = 45; + gTasks[taskId].tState = 45; } else { @@ -1970,14 +1977,14 @@ static void sub_80D8B38(u8 taskId) Contest_StartTextPrinter(gStringVar4, 1); sub_80DD720(2); gTasks[taskId].data[10] = 0; - gTasks[taskId].data[0] = 45; + gTasks[taskId].tState = 45; } return; case 45: if (!eContest.unk1920A_4) { - sub_80DC9B4(eContest.unk19215); - gTasks[taskId].data[0] = 15; + sub_80DC9B4(eContest.currentContestant); + gTasks[taskId].tState = 15; } return; case 15: @@ -1993,7 +2000,7 @@ static void sub_80D8B38(u8 taskId) r6); eContestantStatus[r6].appeal2 += eContestantStatus[r6].unk17; } - gTasks[taskId].data[0] = 16; + gTasks[taskId].tState = 16; } } return; @@ -2001,7 +2008,7 @@ static void sub_80D8B38(u8 taskId) if (!gContestResources->field_14[r6].unk2_2) { gTasks[taskId].data[10] = 0; - gTasks[taskId].data[0] = 17; + gTasks[taskId].tState = 17; } return; case 17: @@ -2013,23 +2020,23 @@ static void sub_80D8B38(u8 taskId) Contest_StartTextPrinter(gStringVar4, TRUE); gTasks[taskId].data[10] = 0; sub_80DD720(0); - gTasks[taskId].data[0] = 46; + gTasks[taskId].tState = 46; } else { - gTasks[taskId].data[0] = 41; + gTasks[taskId].tState = 41; } return; case 46: if (!eContest.unk1920A_4) - gTasks[taskId].data[0] = 19; + gTasks[taskId].tState = 19; return; case 19: if (!Contest_RunTextPrinters()) { sub_80DC028(eContestantStatus[r6].appeal2, -eContestantStatus[r6].unk18, r6); eContestantStatus[r6].appeal2 -= eContestantStatus[r6].unk18; - gTasks[taskId].data[0] = 18; + gTasks[taskId].tState = 18; } return; case 18: @@ -2038,13 +2045,13 @@ static void sub_80D8B38(u8 taskId) { gTasks[taskId].data[10] = 0; ContestClearGeneralTextWindow(); - gTasks[taskId].data[0] = 41; + gTasks[taskId].tState = 41; } return; case 41: if (gContestResources->field_10->excitementFrozen && r6 != gContestResources->field_10->excitementFreezer) { - gTasks[taskId].data[0] = 57; + gTasks[taskId].tState = 57; } else { @@ -2070,7 +2077,7 @@ static void sub_80D8B38(u8 taskId) eContest.applauseLevel = 0; if (r3 == 0) { - gTasks[taskId].data[0] = 55; + gTasks[taskId].tState = 55; } else { @@ -2084,9 +2091,9 @@ static void sub_80D8B38(u8 taskId) gTasks[taskId].data[10] = 0; gTasks[taskId].data[11] = 0; if (r3 < 0) - gTasks[taskId].data[0] = 53; + gTasks[taskId].tState = 53; else - gTasks[taskId].data[0] = 54; + gTasks[taskId].tState = 54; } } return; @@ -2121,7 +2128,7 @@ static void sub_80D8B38(u8 taskId) { gTasks[taskId].data[10] = 0; gTasks[taskId].data[11] = 0; - gTasks[taskId].data[0] = 43; + gTasks[taskId].tState = 43; } break; } @@ -2172,7 +2179,7 @@ static void sub_80D8B38(u8 taskId) { gTasks[taskId].data[10] = 0; gTasks[taskId].data[11] = 0; - gTasks[taskId].data[0] = 43; + gTasks[taskId].tState = 43; } break; } @@ -2181,7 +2188,7 @@ static void sub_80D8B38(u8 taskId) if (!gContestResources->field_14[r6].unk2_2) { ContestClearGeneralTextWindow(); - gTasks[taskId].data[0] = 55; + gTasks[taskId].tState = 55; } return; case 57: @@ -2191,7 +2198,7 @@ static void sub_80D8B38(u8 taskId) StringCopy(gStringVar2, gMoveNames[eContestantStatus[r6].currMove]); StringExpandPlaceholders(gStringVar4, gText_CrowdContinuesToWatchMon); Contest_StartTextPrinter(gStringVar4, TRUE); - gTasks[taskId].data[0] = 58; + gTasks[taskId].tState = 58; return; case 58: if (!Contest_RunTextPrinters()) @@ -2199,14 +2206,14 @@ static void sub_80D8B38(u8 taskId) ContestClearGeneralTextWindow(); StringExpandPlaceholders(gStringVar4, gText_MonsMoveIsIgnored); Contest_StartTextPrinter(gStringVar4, TRUE); - gTasks[taskId].data[0] = 59; + gTasks[taskId].tState = 59; } return; case 59: if (!Contest_RunTextPrinters()) { ContestClearGeneralTextWindow(); - gTasks[taskId].data[0] = 55; + gTasks[taskId].tState = 55; } return; case 33: @@ -2217,15 +2224,15 @@ static void sub_80D8B38(u8 taskId) StringCopy(gStringVar2, gMoveNames[eContestantStatus[r6].currMove]); StringExpandPlaceholders(gStringVar4, gText_MonWasTooNervousToMove); Contest_StartTextPrinter(gStringVar4, TRUE); - gTasks[taskId].data[0] = 34; + gTasks[taskId].tState = 34; return; case 34: if (!Contest_RunTextPrinters()) - gTasks[taskId].data[0] = 55; + gTasks[taskId].tState = 55; return; case 55: TryMoveApplauseMeterOffscreen(); - gTasks[taskId].data[0] = 56; + gTasks[taskId].tState = 56; return; case 56: if (!eContest.applauseMeterIsMoving) @@ -2235,13 +2242,13 @@ static void sub_80D8B38(u8 taskId) eContest.applauseLevel = 0; UpdateApplauseMeter(); } - gTasks[taskId].data[0] = 10; + gTasks[taskId].tState = 10; } return; case 10: spriteId = gTasks[taskId].data[2]; gSprites[spriteId].callback = sub_80DA164; - gTasks[taskId].data[0] = 11; + gTasks[taskId].tState = 11; return; case 11: spriteId = gTasks[taskId].data[2]; @@ -2249,42 +2256,42 @@ static void sub_80D8B38(u8 taskId) { FreeSpriteOamMatrix(&gSprites[spriteId]); DestroySprite(&gSprites[spriteId]); - gTasks[taskId].data[0] = 20; + gTasks[taskId].tState = 20; } return; case 20: gTasks[taskId].data[10] = 0; - gTasks[taskId].data[0] = 21; + gTasks[taskId].tState = 21; return; case 31: ContestClearGeneralTextWindow(); StringCopy(gStringVar1, gContestMons[r6].nickname); StringExpandPlaceholders(gStringVar4, gText_MonWasWatchingOthers); Contest_StartTextPrinter(gStringVar4, TRUE); - gTasks[taskId].data[0] = 32; + gTasks[taskId].tState = 32; return; case 32: if (!Contest_RunTextPrinters()) - gTasks[taskId].data[0] = 21; + gTasks[taskId].tState = 21; return; case 21: if (++gTasks[taskId].data[10] > 29) { gTasks[taskId].data[10] = 0; - gTasks[taskId].data[0] = 22; + gTasks[taskId].tState = 22; } return; case 22: - if (++eContest.unk19214 == 4) + if (++eContest.turnNumber == CONTESTANT_COUNT) { - gTasks[taskId].data[0] = 0; + gTasks[taskId].tState = 0; gTasks[taskId].data[1] = 0; gTasks[taskId].data[2] = 0; gTasks[taskId].func = sub_80DA198; } else { - gTasks[taskId].data[0] = 0; + gTasks[taskId].tState = 0; } return; } @@ -2335,7 +2342,7 @@ static void sub_80DA198(u8 taskId) if (sub_80DA8A4()) { RankContestants(); - sub_80DBA18(); + SetAttentionLevels(); } taskId2 = CreateTask(sub_80FCC88, 0); SetTaskFuncWithFollowupFunc(taskId2, sub_80FCC88, sub_80DA110); @@ -2345,7 +2352,7 @@ static void sub_80DA198(u8 taskId) else { RankContestants(); - sub_80DBA18(); + SetAttentionLevels(); gTasks[taskId].data[0] = 2; } break; @@ -2485,10 +2492,10 @@ static void sub_80DA51C(u8 taskId) ((vBgCnt *)&sp2)->priority = 0; SetGpuReg(REG_OFFSET_BG0CNT, sp0); SetGpuReg(REG_OFFSET_BG2CNT, sp2); - eContest.turnNumber++; - if (eContest.turnNumber == 5) + eContest.appealNumber++; + if (eContest.appealNumber == CONTEST_NUM_APPEALS) { - gTasks[taskId].func = sub_80DA5E8; + gTasks[taskId].func = Task_EndAppeals; } else { @@ -2503,14 +2510,14 @@ static void sub_80DA5B4(u8 taskId) gTasks[taskId].func = Task_DisplayAppealNumberText; } -static void sub_80DA5E8(u8 taskId) +static void Task_EndAppeals(u8 taskId) { s32 i; gBattle_BG0_Y = 0; gBattle_BG2_Y = 0; for (i = 0; i < CONTESTANT_COUNT; i++) - gUnknown_02039F10[i] = eContestantStatus[i].pointTotal; + gContestMonAppealPointTotals[i] = eContestantStatus[i].pointTotal; CalculateFinalScores(); ContestClearGeneralTextWindow(); if (!(gLinkContestFlags & LINK_CONTEST_FLAG_IS_LINK)) @@ -2525,10 +2532,10 @@ static void sub_80DA5E8(u8 taskId) StringExpandPlaceholders(gStringVar4, gText_AllOutOfAppealTime); Contest_StartTextPrinter(gStringVar4, TRUE); gTasks[taskId].data[2] = 0; - gTasks[taskId].func = sub_80DA6B4; + gTasks[taskId].func = Task_WaitForOutOfTimeMsg; } -static void sub_80DA6B4(u8 taskId) +static void Task_WaitForOutOfTimeMsg(u8 taskId) { if (!Contest_RunTextPrinters()) { @@ -2537,62 +2544,62 @@ static void sub_80DA6B4(u8 taskId) gBattle_BG1_Y = 160; PlaySE12WithPanning(SE_C_MAKU_D, 0); gTasks[taskId].data[0] = 0; - gTasks[taskId].func = sub_80DA700; + gTasks[taskId].func = Task_CoverAppealPanelForEnd; } } -static void sub_80DA700(u8 taskId) +static void Task_CoverAppealPanelForEnd(u8 taskId) { gBattle_BG1_Y -= 7; if ((s16)gBattle_BG1_Y < 0) gBattle_BG1_Y = 0; if (gBattle_BG1_Y == 0) { - gTasks[taskId].func = sub_80DA740; + gTasks[taskId].func = Task_TryCommunicateFinalStandings; gTasks[taskId].data[0] = 0; } } -static void sub_80DA740(u8 taskId) +static void Task_TryCommunicateFinalStandings(u8 taskId) { if (gTasks[taskId].data[0]++ >= 50) { gTasks[taskId].data[0] = 0; if (gLinkContestFlags & LINK_CONTEST_FLAG_IS_LINK) { - gTasks[taskId].func = sub_80DA7A0; + gTasks[taskId].func = Task_CommunicateFinalStandings; } else { BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); - gTasks[taskId].func = sub_80DA830; + gTasks[taskId].func = Task_ContestReturnToField; } } } -static void sub_80DA7A0(u8 taskId) +static void Task_CommunicateFinalStandings(u8 taskId) { - u8 taskId2 = CreateTask(sub_80FCACC, 0); + u8 taskId2 = CreateTask(Task_LinkContest_CommunicateFinalStandings, 0); - SetTaskFuncWithFollowupFunc(taskId2, sub_80FCACC, sub_80DA7EC); + SetTaskFuncWithFollowupFunc(taskId2, Task_LinkContest_CommunicateFinalStandings, Task_EndCommunicateFinalStandings); gTasks[taskId].func = TaskDummy1; ContestPrintLinkStandby(); SetBottomSliderHeartsInvisibility(FALSE); } -static void sub_80DA7EC(u8 taskId) +static void Task_EndCommunicateFinalStandings(u8 taskId) { DestroyTask(taskId); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); - gTasks[eContest.mainTaskId].func = sub_80DA830; + gTasks[eContest.mainTaskId].func = Task_ContestReturnToField; } -static void sub_80DA830(u8 taskId) +static void Task_ContestReturnToField(u8 taskId) { if (!gPaletteFade.active) { DestroyTask(taskId); - gFieldCallback = sub_80DA874; + gFieldCallback = FieldCB_ContestReturnToField; FreeAllWindowBuffers(); FreeContestResources(); FreeMonSpritesGfx(); @@ -2600,7 +2607,7 @@ static void sub_80DA830(u8 taskId) } } -static void sub_80DA874(void) +static void FieldCB_ContestReturnToField(void) { ScriptContext2_Disable(); EnableBothScriptContexts(); @@ -2696,33 +2703,33 @@ void CreateContestMonFromParty(u8 partyIndex) gContestMons[gContestPlayerMonIndex].tough = tough; } -void sub_80DAB8C(u8 contestType, u8 rank) +void SetContestants(u8 contestType, u8 rank) { s32 i; u8 opponentsCount = 0; u8 opponents[100]; - bool8 r7 = FALSE; - const u8 * r3; + bool8 allowPostgameContestants = FALSE; + const u8 * filter; TryPutPlayerLast(); if (FlagGet(FLAG_SYS_GAME_CLEAR) && !(gLinkContestFlags & LINK_CONTEST_FLAG_IS_LINK)) - r7 = TRUE; + allowPostgameContestants = TRUE; // Find all suitable opponents - r3 = gPostgameContestOpponentFilter; + filter = gPostgameContestOpponentFilter; for (i = 0; i < ARRAY_COUNT(gContestOpponents); i++) { if (rank == gContestOpponents[i].whichRank) { - if (r7 == TRUE) + if (allowPostgameContestants == TRUE) { - if (r3[i] == 1) + if (filter[i] == CONTEST_FILTER_NO_POSTGAME) continue; } else { - if (r3[i] == 2) + if (filter[i] == CONTEST_FILTER_ONLY_POSTGAME) continue; } if (contestType == CONTEST_CATEGORY_COOL && gContestOpponents[i].aiPool_Cool) @@ -2740,7 +2747,7 @@ void sub_80DAB8C(u8 contestType, u8 rank) opponents[opponentsCount] = 0xFF; // Choose three random opponents from the list - for (i = 0; i < 3; i++) + for (i = 0; i < CONTESTANT_COUNT - 1; i++) { u16 rnd = Random() % opponentsCount; s32 j; @@ -2754,15 +2761,16 @@ void sub_80DAB8C(u8 contestType, u8 rank) CreateContestMonFromParty(gContestMonPartyIndex); } -void sub_80DACBC(u8 contestType, u8 rank, bool32 isPostgame) +void SetLinkAIContestants(u8 contestType, u8 rank, bool32 isPostgame) { s32 i, j; u8 opponentsCount = 0; u8 opponents[100]; - if (gNumLinkContestPlayers == 4) + if (gNumLinkContestPlayers == CONTESTANT_COUNT) return; + // Find all suitable AI opponents for (i = 0; i < ARRAY_COUNT(gContestOpponents); i++) { if (rank != gContestOpponents[i].whichRank) @@ -2786,6 +2794,8 @@ void sub_80DACBC(u8 contestType, u8 rank, bool32 isPostgame) opponents[opponentsCount++] = i; } opponents[opponentsCount] = 0xFF; + + // Fill remaining contestant slots with random AI opponents from the list for (i = 0; i < CONTESTANT_COUNT - gNumLinkContestPlayers; i++) { u16 rnd = GetContestRand() % opponentsCount; @@ -2935,7 +2945,7 @@ void sub_80DB09C(u8 contestCategory) s32 i; for (i = 0; i < CONTESTANT_COUNT; i++) - gContestMonConditions[i] = sub_80DAFE0(i, contestCategory); + gContestMonRound1Points[i] = sub_80DAFE0(i, contestCategory); } static u8 sub_80DB0C4(void) @@ -2954,7 +2964,7 @@ static u8 sub_80DB120(void) { u8 spriteId; - LoadCompressedSpriteSheet(&gUnknown_08587C08); + LoadCompressedSpriteSheet(&sSpriteSheet_JudgeSymbols); LoadCompressedSpritePalette(&gUnknown_08587C10); spriteId = CreateSprite(&gSpriteTemplate_8587C18, 96, 10, 29); gSprites[spriteId].invisible = TRUE; @@ -2962,7 +2972,7 @@ static u8 sub_80DB120(void) return spriteId; } -static u8 sub_80DB174(u16 species, u32 otId, u32 personality, u32 index) +static u8 CreateContestantSprite(u16 species, u32 otId, u32 personality, u32 index) { u8 spriteId; species = SanitizeSpecies(species); @@ -3300,7 +3310,7 @@ static void RankContestants(void) ApplyNextTurnOrder(); } -static void sub_80DBA18(void) +static void SetAttentionLevels(void) { s32 i; @@ -3373,16 +3383,16 @@ static void sub_80DBAA0(void) for (i = 0; i < CONTESTANT_COUNT; i++) { eContestantStatus[i].prevMove = eContestantStatus[i].currMove; - eContest.moveHistory[eContest.turnNumber][i] = eContestantStatus[i].currMove; - eContest.excitementHistory[eContest.turnNumber][i] = Contest_GetMoveExcitement(eContestantStatus[i].currMove); + eContest.moveHistory[eContest.appealNumber][i] = eContestantStatus[i].currMove; + eContest.excitementHistory[eContest.appealNumber][i] = Contest_GetMoveExcitement(eContestantStatus[i].currMove); eContestantStatus[i].currMove = MOVE_NONE; } eContestResources10.excitementFrozen = 0; } -bool8 Contest_IsMonsTurnDisabled(u8 a) +bool8 Contest_IsMonsTurnDisabled(u8 contestant) { - if (eContestantStatus[a].numTurnsSkipped != 0 || eContestantStatus[a].noMoreTurns) + if (eContestantStatus[contestant].numTurnsSkipped != 0 || eContestantStatus[contestant].noMoreTurns) return TRUE; else return FALSE; @@ -3391,7 +3401,7 @@ bool8 Contest_IsMonsTurnDisabled(u8 a) static void CalculateTotalPointsForContestant(u8 contestant) { gContestMonRound2Points[contestant] = GetContestantRound2Points(contestant); - gContestMonTotalPoints[contestant] = gContestMonConditions[contestant] + gContestMonRound2Points[contestant]; + gContestMonTotalPoints[contestant] = gContestMonRound1Points[contestant] + gContestMonRound2Points[contestant]; } static void CalculateFinalScores(void) @@ -3405,7 +3415,7 @@ static void CalculateFinalScores(void) static s16 GetContestantRound2Points(u8 contestant) { - return gUnknown_02039F10[contestant] * 2; + return gContestMonAppealPointTotals[contestant] * 2; } static void DetermineFinalStandings(void) @@ -3433,7 +3443,7 @@ static void DetermineFinalStandings(void) for (i = 0; i < CONTESTANT_COUNT; i++) { sp8[i].unk0 = gContestMonTotalPoints[i]; - sp8[i].unk4 = gContestMonConditions[i]; + sp8[i].unk4 = gContestMonRound1Points[i]; sp8[i].unk8 = randomOrdering[i]; sp8[i].unkC = i; } @@ -4147,8 +4157,8 @@ void SortContestants(bool8 useRanking) // Determine where the contestant should be ordered. for (v3 = 0; v3 < i; v3++) { - if (gContestMonConditions[gContestantTurnOrder[v3]] < gContestMonConditions[i] - || (gContestMonConditions[gContestantTurnOrder[v3]] == gContestMonConditions[i] && randomOrdering[gContestantTurnOrder[v3]] < randomOrdering[i])) + if (gContestMonRound1Points[gContestantTurnOrder[v3]] < gContestMonRound1Points[i] + || (gContestMonRound1Points[gContestantTurnOrder[v3]] == gContestMonRound1Points[i] && randomOrdering[gContestantTurnOrder[v3]] < randomOrdering[i])) { // Shift everything larger up to make room. s32 j; @@ -5463,7 +5473,7 @@ static void sub_80DF080(u8 contestant) { gContestResources->field_1c[contestant].unkC |= 0x80; gContestResources->field_1c[contestant].unkE_1 = 1; - gContestResources->field_1c[contestant].unk0[eContest.turnNumber] = eContestantStatus[contestant].currMove; + gContestResources->field_1c[contestant].unk0[eContest.appealNumber] = eContestantStatus[contestant].currMove; } if (eContestantStatus[contestant].repeatedMove) @@ -5511,7 +5521,7 @@ static void sub_80DF250(void) for (j = 0; j < CONTESTANT_COUNT; j++) { - if (gContestMonConditions[i] < gContestMonConditions[j]) + if (gContestMonRound1Points[i] < gContestMonRound1Points[j]) break; } if (j == 4 && gContestFinalStandings[i] != 0) @@ -5521,7 +5531,7 @@ static void sub_80DF250(void) r8 = FALSE; for (j = 0; j < CONTESTANT_COUNT; j++) { - if (gContestMonConditions[i] > gContestMonConditions[j]) + if (gContestMonRound1Points[i] > gContestMonRound1Points[j]) r12 = TRUE; if (gContestMonRound2Points[i] > gContestMonRound2Points[j]) r8 = TRUE; @@ -5612,7 +5622,7 @@ static void sub_80DF4F8(void) r10 = 0; for (i = 0; i < CONTESTANT_COUNT; i++) { - if (gContestMonConditions[r7] < gContestMonConditions[i]) + if (gContestMonRound1Points[r7] < gContestMonRound1Points[i]) r9++; if (gContestMonRound2Points[r7] < gContestMonRound2Points[i]) r10++; diff --git a/src/contest_ai.c b/src/contest_ai.c index e2afb2890c..7585cac692 100644 --- a/src/contest_ai.c +++ b/src/contest_ai.c @@ -10,11 +10,11 @@ extern const u8 *gAIScriptPtr; extern const u8 *gContestAIChecks[]; static void ContestAICmd_score(void); -static void ContestAICmd_get_turn(void); -static void ContestAICmd_if_turn_less_than(void); -static void ContestAICmd_if_turn_more_than(void); -static void ContestAICmd_if_turn_eq(void); -static void ContestAICmd_if_turn_not_eq(void); +static void ContestAICmd_get_appeal_num(void); +static void ContestAICmd_if_appeal_num_less_than(void); +static void ContestAICmd_if_appeal_num_more_than(void); +static void ContestAICmd_if_appeal_num_eq(void); +static void ContestAICmd_if_appeal_num_not_eq(void); static void ContestAICmd_get_excitement(void); static void ContestAICmd_if_excitement_less_than(void); static void ContestAICmd_if_excitement_more_than(void); @@ -151,11 +151,11 @@ typedef void (* ContestAICmdFunc)(void); static const ContestAICmdFunc sContestAICmdTable[] = { ContestAICmd_score, // 0x00 - ContestAICmd_get_turn, // 0x01 - ContestAICmd_if_turn_less_than, // 0x02 - ContestAICmd_if_turn_more_than, // 0x03 - ContestAICmd_if_turn_eq, // 0x04 - ContestAICmd_if_turn_not_eq, // 0x05 + ContestAICmd_get_appeal_num, // 0x01 + ContestAICmd_if_appeal_num_less_than, // 0x02 + ContestAICmd_if_appeal_num_more_than, // 0x03 + ContestAICmd_if_appeal_num_eq, // 0x04 + ContestAICmd_if_appeal_num_not_eq, // 0x05 ContestAICmd_get_excitement, // 0x06 ContestAICmd_if_excitement_less_than, // 0x07 ContestAICmd_if_excitement_more_than, // 0x08 @@ -324,7 +324,7 @@ u8 ContestAI_GetActionToUse(void) { // Randomly choose a move index. If it's the move // with the highest (or tied highest) score, return - u8 moveIdx = Random() & (MAX_MON_MOVES - 1); // % 4 doesn't match + u8 moveIdx = Random() & (MAX_MON_MOVES - 1); // % MAX_MON_MOVES doesn't match u8 score = eContestAI.moveScores[moveIdx]; int i; for (i = 0; i < MAX_MON_MOVES; i++) @@ -404,15 +404,15 @@ static void ContestAICmd_score(void) gAIScriptPtr += 2; } -static void ContestAICmd_get_turn(void) +static void ContestAICmd_get_appeal_num(void) { - eContestAI.scriptResult = eContest.turnNumber; + eContestAI.scriptResult = eContest.appealNumber; gAIScriptPtr += 1; } -static void ContestAICmd_if_turn_less_than(void) +static void ContestAICmd_if_appeal_num_less_than(void) { - ContestAICmd_get_turn(); + ContestAICmd_get_appeal_num(); if (eContestAI.scriptResult < gAIScriptPtr[0]) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); @@ -420,9 +420,9 @@ static void ContestAICmd_if_turn_less_than(void) gAIScriptPtr += 5; } -static void ContestAICmd_if_turn_more_than(void) +static void ContestAICmd_if_appeal_num_more_than(void) { - ContestAICmd_get_turn(); + ContestAICmd_get_appeal_num(); if (eContestAI.scriptResult > gAIScriptPtr[0]) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); @@ -430,9 +430,9 @@ static void ContestAICmd_if_turn_more_than(void) gAIScriptPtr += 5; } -static void ContestAICmd_if_turn_eq(void) +static void ContestAICmd_if_appeal_num_eq(void) { - ContestAICmd_get_turn(); + ContestAICmd_get_appeal_num(); if (eContestAI.scriptResult == gAIScriptPtr[0]) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); @@ -440,9 +440,9 @@ static void ContestAICmd_if_turn_eq(void) gAIScriptPtr += 5; } -static void ContestAICmd_if_turn_not_eq(void) +static void ContestAICmd_if_appeal_num_not_eq(void) { - ContestAICmd_get_turn(); + ContestAICmd_get_appeal_num(); if (eContestAI.scriptResult != gAIScriptPtr[0]) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); @@ -636,7 +636,7 @@ static void ContestAICmd_unk_19(void) static void ContestAICmd_unk_1A(void) { - eContestAI.scriptResult = gContestMonConditions[eContestAI.contestantId]; + eContestAI.scriptResult = gContestMonRound1Points[eContestAI.contestantId]; gAIScriptPtr += 1; } @@ -1357,7 +1357,7 @@ static void ContestAICmd_unk_5E(void) { u8 contestant = GetContestantIdByTurn(gAIScriptPtr[1]); - eContestAI.scriptResult = gContestMonConditions[contestant] - gContestMonConditions[eContestAI.contestantId]; + eContestAI.scriptResult = gContestMonRound1Points[contestant] - gContestMonRound1Points[eContestAI.contestantId]; gAIScriptPtr += 2; } diff --git a/src/contest_effect.c b/src/contest_effect.c index 1d3c817763..809aecbed0 100644 --- a/src/contest_effect.c +++ b/src/contest_effect.c @@ -750,7 +750,7 @@ static void ContestEffect_NextAppealEarlier(void) s8 j; u8 turnOrder[CONTESTANT_COUNT]; - if (eContest.turnNumber != 4) + if (eContest.appealNumber != CONTEST_LAST_APPEAL) { for (i = 0; i < CONTESTANT_COUNT; i++) turnOrder[i] = eContestantStatus[i].nextTurnOrder; @@ -792,7 +792,7 @@ static void ContestEffect_NextAppealLater(void) s8 j; u8 turnOrder[CONTESTANT_COUNT]; - if (eContest.turnNumber != 4) + if (eContest.appealNumber != CONTEST_LAST_APPEAL) { for (i = 0; i < CONTESTANT_COUNT; i++) turnOrder[i] = eContestantStatus[i].nextTurnOrder; @@ -841,7 +841,7 @@ static void ContestEffect_ScrambleNextTurnOrder(void) u8 turnOrder[CONTESTANT_COUNT]; u8 unselectedContestants[CONTESTANT_COUNT]; - if (eContest.turnNumber != 4) + if (eContest.appealNumber != CONTEST_LAST_APPEAL) { for (i = 0; i < CONTESTANT_COUNT; i++) { diff --git a/src/contest_link.c b/src/contest_link.c index 9241102e7c..172a2b2ba9 100644 --- a/src/contest_link.c +++ b/src/contest_link.c @@ -297,7 +297,7 @@ void Task_LinkContest_CommunicateMoveSelections(u8 taskId) } } -void sub_80FCACC(u8 taskId) +void Task_LinkContest_CommunicateFinalStandings(u8 taskId) { switch (gTasks[taskId].tState) { @@ -328,14 +328,14 @@ void sub_80FCACC(u8 taskId) case 3: if (IsLinkTaskFinished()) { - if (LinkContest_SendBlock(gUnknown_02039F10, sizeof(gUnknown_02039F10)) == 1) + if (LinkContest_SendBlock(gContestMonAppealPointTotals, sizeof(gContestMonAppealPointTotals)) == 1) gTasks[taskId].tState++; } break; case 4: if (LinkContest_GetBlockReceivedFromAllPlayers()) { - memcpy(gUnknown_02039F10, gBlockRecvBuffer[gUnknown_02039F2B], sizeof(gUnknown_02039F10)); + memcpy(gContestMonAppealPointTotals, gBlockRecvBuffer[gUnknown_02039F2B], sizeof(gContestMonAppealPointTotals)); gTasks[taskId].tState++; } break; @@ -381,14 +381,14 @@ void sub_80FCC88(u8 taskId) case 0: if (IsLinkTaskFinished()) { - if (LinkContest_SendBlock(eContestantStatus, 4 * sizeof(struct ContestantStatus)) == 1) + if (LinkContest_SendBlock(eContestantStatus, CONTESTANT_COUNT * sizeof(struct ContestantStatus)) == 1) gTasks[taskId].tState++; } break; case 1: if (LinkContest_GetBlockReceivedFromAllPlayers()) { - memcpy(eContestantStatus, gBlockRecvBuffer[gUnknown_02039F2B], 4 * sizeof(struct ContestantStatus)); + memcpy(eContestantStatus, gBlockRecvBuffer[gUnknown_02039F2B], CONTESTANT_COUNT * sizeof(struct ContestantStatus)); gTasks[taskId].tState++; } break; @@ -497,7 +497,7 @@ void sub_80FCE48(u8 taskId) } } -void sub_80FCF40(u8 taskId) +void Task_LinkContest_CommunicateRound1Points(u8 taskId) { if (!sub_80FC670(&gTasks[taskId].data[12])) return; @@ -507,14 +507,14 @@ void sub_80FCF40(u8 taskId) case 0: if (IsLinkTaskFinished()) { - if (LinkContest_SendBlock(gContestMonConditions, sizeof(gContestMonConditions)) == 1) + if (LinkContest_SendBlock(gContestMonRound1Points, sizeof(gContestMonRound1Points)) == 1) gTasks[taskId].tState++; } break; case 1: if (LinkContest_GetBlockReceivedFromAllPlayers()) { - memcpy(gContestMonConditions, gBlockRecvBuffer[gUnknown_02039F2B], sizeof(gContestMonConditions)); + memcpy(gContestMonRound1Points, gBlockRecvBuffer[gUnknown_02039F2B], sizeof(gContestMonRound1Points)); gTasks[taskId].tState++; } break; @@ -526,7 +526,7 @@ void sub_80FCF40(u8 taskId) } } -void sub_80FCFD0(u8 taskId) +void Task_LinkContest_CommunicateTurnOrder(u8 taskId) { if (!sub_80FC670(&gTasks[taskId].data[12])) return; diff --git a/src/contest_link_util.c b/src/contest_link_util.c index 2213741124..02c94f0baf 100644 --- a/src/contest_link_util.c +++ b/src/contest_link_util.c @@ -70,29 +70,30 @@ static void sub_81D9F68(u8 taskId) u8 i; u8 rank; int gameCleared; - u8 data1[4]; - u8 data2[4]; + u8 contestCategories[CONTESTANT_COUNT]; + u8 data2[CONTESTANT_COUNT]; - memset(data1, 0, sizeof(data1)); + memset(contestCategories, 0, sizeof(contestCategories)); memset(data2, 0, sizeof(data2)); for (i = 0; i < gNumLinkContestPlayers; i++) - data1[i] = gTasks[taskId].data[i + 1]; + contestCategories[i] = gTasks[taskId].data[i + 1]; + // Ensure all players are doing the same category i = 0; if (i < gNumLinkContestPlayers) { while (++i < gNumLinkContestPlayers) { - if (data1[0] != data1[i]) + if (contestCategories[0] != contestCategories[i]) break; } } if (i == gNumLinkContestPlayers) - gSpecialVar_0x8004 = 0; + gSpecialVar_0x8004 = FALSE; else - gSpecialVar_0x8004 = 1; + gSpecialVar_0x8004 = TRUE; for (i = 0; i < gNumLinkContestPlayers; i++) data2[i] = gTasks[taskId].data[i + 5]; @@ -119,7 +120,7 @@ static void sub_81D9F68(u8 taskId) } } - sub_80DACBC(data1[0], rank, gameCleared); + SetLinkAIContestants(contestCategories[0], rank, gameCleared); } gUnknown_02039F2B = sub_80F86E0(data2); @@ -132,13 +133,13 @@ static void sub_81D9F68(u8 taskId) static void sub_81DA10C(u8 taskId) { sub_80DB09C(gSpecialVar_ContestCategory); - SetTaskFuncWithFollowupFunc(taskId, sub_80FCF40, sub_81DA138); + SetTaskFuncWithFollowupFunc(taskId, Task_LinkContest_CommunicateRound1Points, sub_81DA138); } static void sub_81DA138(u8 taskId) { SortContestants(FALSE); - SetTaskFuncWithFollowupFunc(taskId, sub_80FCFD0, sub_80F8714); + SetTaskFuncWithFollowupFunc(taskId, Task_LinkContest_CommunicateTurnOrder, sub_80F8714); } static void sub_81DA160(u8 taskId) diff --git a/src/contest_util.c b/src/contest_util.c index 6ad67ee50e..1fd3e04826 100644 --- a/src/contest_util.c +++ b/src/contest_util.c @@ -1718,7 +1718,7 @@ static void LoadContestResultsTilemaps(void) // Represented on results board as stars static u8 GetNumPreliminaryPoints(u8 monIndex, bool8 capPoints) { - u32 condition = gContestMonConditions[monIndex] << 16; + u32 condition = gContestMonRound1Points[monIndex] << 16; u32 numStars = condition / 0x3F; if (numStars & 0xFFFF) @@ -1966,7 +1966,7 @@ static void CalculateContestantsResultData(void) for (i = 0; i < CONTESTANT_COUNT; i++) { - relativePoints = (gContestMonConditions[i] * 1000) / abs(highestPoints); + relativePoints = (gContestMonRound1Points[i] * 1000) / abs(highestPoints); if (relativePoints % 10 > 4) relativePoints += 10; (*sContestResults->monResults)[i].relativePreliminaryPoints = relativePoints / 10; @@ -2206,7 +2206,7 @@ void TryEnterContestMon(void) // Nonzero eligibility can still be non-eligibile, if mon is fainted or egg if (eligibility) { - sub_80DAB8C(gSpecialVar_ContestCategory, gSpecialVar_ContestRank); + SetContestants(gSpecialVar_ContestCategory, gSpecialVar_ContestRank); sub_80DB09C(gSpecialVar_ContestCategory); } @@ -2324,7 +2324,7 @@ void GetContestMonConditionRanking(void) for (i = 0, rank = 0; i < CONTESTANT_COUNT; i++) { - if (gContestMonConditions[gSpecialVar_0x8006] < gContestMonConditions[i]) + if (gContestMonRound1Points[gSpecialVar_0x8006] < gContestMonRound1Points[i]) rank++; } @@ -2333,7 +2333,7 @@ void GetContestMonConditionRanking(void) void GetContestMonCondition(void) { - gSpecialVar_0x8004 = gContestMonConditions[gSpecialVar_0x8006]; + gSpecialVar_0x8004 = gContestMonRound1Points[gSpecialVar_0x8006]; } void GetContestWinnerId(void) @@ -2472,13 +2472,13 @@ static void sub_80F85BC(u8 taskId) gUnknown_02039F2B = sub_80F86E0(sp4); sub_80DB09C(gSpecialVar_ContestCategory); - SetTaskFuncWithFollowupFunc(taskId, sub_80FCF40, sub_80F86B8); + SetTaskFuncWithFollowupFunc(taskId, Task_LinkContest_CommunicateRound1Points, sub_80F86B8); } static void sub_80F86B8(u8 taskId) { SortContestants(FALSE); - SetTaskFuncWithFollowupFunc(taskId, sub_80FCFD0, sub_80F8714); + SetTaskFuncWithFollowupFunc(taskId, Task_LinkContest_CommunicateTurnOrder, sub_80F8714); } u8 sub_80F86E0(u8 *arg0) diff --git a/src/data/contest_opponents.h b/src/data/contest_opponents.h index 53868fc84f..e77223d95e 100644 --- a/src/data/contest_opponents.h +++ b/src/data/contest_opponents.h @@ -183,7 +183,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("POOCHY"), .trainerName = _("JIMMY"), .trainerGfxId = OBJ_EVENT_GFX_BOY_1, - .aiChecks = 0xC000FFF, + .aiChecks = CONTEST_AI_ALL | CONTEST_AI_DUMMIES_1 | CONTEST_AI_DUMMY_20 | CONTEST_AI_DUMMY_21, .whichRank = CONTEST_RANK_NORMAL, .aiPool_Cool = TRUE, .aiPool_Beauty = FALSE, @@ -211,7 +211,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("MUSILLE"), .trainerName = _("EDITH"), .trainerGfxId = OBJ_EVENT_GFX_GIRL_1, - .aiChecks = 0x82000FFF, + .aiChecks = CONTEST_AI_ALL | CONTEST_AI_DUMMIES_1 | CONTEST_AI_DUMMY_19 | CONTEST_AI_DUMMY_25, .whichRank = CONTEST_RANK_NORMAL, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, @@ -239,7 +239,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("DUSTER"), .trainerName = _("EVAN"), .trainerGfxId = OBJ_EVENT_GFX_LITTLE_BOY, - .aiChecks = 0x21000FFF, + .aiChecks = CONTEST_AI_ALL | CONTEST_AI_DUMMIES_1 | CONTEST_AI_DUMMY_18 | CONTEST_AI_DUMMY_23, .whichRank = CONTEST_RANK_NORMAL, .aiPool_Cool = FALSE, .aiPool_Beauty = TRUE, @@ -603,7 +603,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("BULBY"), .trainerName = _("AGATHA"), .trainerGfxId = OBJ_EVENT_GFX_WOMAN_2, - .aiChecks = 0xC000FFF, + .aiChecks = CONTEST_AI_ALL | CONTEST_AI_DUMMY_1 | CONTEST_AI_DUMMY_2 | CONTEST_AI_DUMMY_3 | CONTEST_AI_DUMMY_4 | CONTEST_AI_DUMMY_5 | CONTEST_AI_DUMMY_20 | CONTEST_AI_DUMMY_21, .whichRank = CONTEST_RANK_NORMAL, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, @@ -631,7 +631,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("FUTTERBE"), .trainerName = _("BEAU"), .trainerGfxId = OBJ_EVENT_GFX_HEX_MANIAC, - .aiChecks = 0x82000FFF, + .aiChecks = CONTEST_AI_ALL | CONTEST_AI_DUMMIES_1 | CONTEST_AI_DUMMY_19 | CONTEST_AI_DUMMY_25, .whichRank = CONTEST_RANK_NORMAL, .aiPool_Cool = FALSE, .aiPool_Beauty = TRUE, @@ -659,7 +659,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("PIDEOT"), .trainerName = _("KAY"), .trainerGfxId = OBJ_EVENT_GFX_WOMAN_5, - .aiChecks = 0x21000FFF, + .aiChecks = CONTEST_AI_ALL | CONTEST_AI_DUMMIES_1 | CONTEST_AI_DUMMY_18 | CONTEST_AI_DUMMY_23, .whichRank = CONTEST_RANK_NORMAL, .aiPool_Cool = TRUE, .aiPool_Beauty = TRUE, @@ -883,7 +883,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("DUODO"), .trainerName = _("BOBBY"), .trainerGfxId = OBJ_EVENT_GFX_RUNNING_TRIATHLETE_M, - .aiChecks = 0x82000FFF, + .aiChecks = CONTEST_AI_ALL | CONTEST_AI_DUMMIES_1 | CONTEST_AI_DUMMY_19 | CONTEST_AI_DUMMY_25, .whichRank = CONTEST_RANK_SUPER, .aiPool_Cool = TRUE, .aiPool_Beauty = TRUE, @@ -1275,7 +1275,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("BROWLO"), .trainerName = _("LUKE"), .trainerGfxId = OBJ_EVENT_GFX_FAT_MAN, - .aiChecks = 0xC000FFF, + .aiChecks = CONTEST_AI_ALL | CONTEST_AI_DUMMY_1 | CONTEST_AI_DUMMY_2 | CONTEST_AI_DUMMY_3 | CONTEST_AI_DUMMY_4 | CONTEST_AI_DUMMY_5 | CONTEST_AI_DUMMY_20 | CONTEST_AI_DUMMY_21, .whichRank = CONTEST_RANK_SUPER, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, @@ -1303,7 +1303,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("FETCHIN"), .trainerName = _("RAUL"), .trainerGfxId = OBJ_EVENT_GFX_MAN_5, - .aiChecks = 0x82000FFF, + .aiChecks = CONTEST_AI_ALL | CONTEST_AI_DUMMIES_1 | CONTEST_AI_DUMMY_19 | CONTEST_AI_DUMMY_25, .whichRank = CONTEST_RANK_SUPER, .aiPool_Cool = TRUE, .aiPool_Beauty = FALSE, @@ -1331,7 +1331,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("SEELEY"), .trainerName = _("JADA"), .trainerGfxId = OBJ_EVENT_GFX_WOMAN_2, - .aiChecks = 0x21000FFF, + .aiChecks = CONTEST_AI_ALL | CONTEST_AI_DUMMIES_1 | CONTEST_AI_DUMMY_18 | CONTEST_AI_DUMMY_23, .whichRank = CONTEST_RANK_SUPER, .aiPool_Cool = FALSE, .aiPool_Beauty = TRUE, @@ -1555,7 +1555,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("SHIFTY"), .trainerName = _("CLAUDIA"), .trainerGfxId = OBJ_EVENT_GFX_GIRL_1, - .aiChecks = 0x82000FFF, + .aiChecks = CONTEST_AI_ALL | CONTEST_AI_DUMMIES_1 | CONTEST_AI_DUMMY_19 | CONTEST_AI_DUMMY_25, .whichRank = CONTEST_RANK_HYPER, .aiPool_Cool = TRUE, .aiPool_Beauty = TRUE, @@ -1947,7 +1947,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("EGGSOR"), .trainerName = _("GRACIE"), .trainerGfxId = OBJ_EVENT_GFX_PICNICKER, - .aiChecks = 0xC000FFF, + .aiChecks = CONTEST_AI_ALL | CONTEST_AI_DUMMY_1 | CONTEST_AI_DUMMY_2 | CONTEST_AI_DUMMY_3 | CONTEST_AI_DUMMY_4 | CONTEST_AI_DUMMY_5 | CONTEST_AI_DUMMY_20 | CONTEST_AI_DUMMY_21, .whichRank = CONTEST_RANK_HYPER, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, @@ -1975,7 +1975,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("CUBIN"), .trainerName = _("COLTIN"), .trainerGfxId = OBJ_EVENT_GFX_MAN_4, - .aiChecks = 0x82000FFF, + .aiChecks = CONTEST_AI_ALL | CONTEST_AI_DUMMIES_1 | CONTEST_AI_DUMMY_19 | CONTEST_AI_DUMMY_25, .whichRank = CONTEST_RANK_HYPER, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, @@ -2003,7 +2003,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("HITMON"), .trainerName = _("ELLIE"), .trainerGfxId = OBJ_EVENT_GFX_EXPERT_F, - .aiChecks = 0x21000FFF, + .aiChecks = CONTEST_AI_ALL | CONTEST_AI_DUMMIES_1 | CONTEST_AI_DUMMY_18 | CONTEST_AI_DUMMY_23, .whichRank = CONTEST_RANK_HYPER, .aiPool_Cool = TRUE, .aiPool_Beauty = FALSE, @@ -2227,7 +2227,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("LOUDERD"), .trainerName = _("RALPH"), .trainerGfxId = OBJ_EVENT_GFX_EXPERT_M, - .aiChecks = 0x82000FFF, + .aiChecks = CONTEST_AI_ALL | CONTEST_AI_DUMMIES_1 | CONTEST_AI_DUMMY_19 | CONTEST_AI_DUMMY_25, .whichRank = CONTEST_RANK_MASTER, .aiPool_Cool = TRUE, .aiPool_Beauty = FALSE, @@ -2619,7 +2619,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("GAREN"), .trainerName = _("CAMILE"), .trainerGfxId = OBJ_EVENT_GFX_HEX_MANIAC, - .aiChecks = 0xC000FFF, + .aiChecks = CONTEST_AI_ALL | CONTEST_AI_DUMMY_1 | CONTEST_AI_DUMMY_2 | CONTEST_AI_DUMMY_3 | CONTEST_AI_DUMMY_4 | CONTEST_AI_DUMMY_5 | CONTEST_AI_DUMMY_20 | CONTEST_AI_DUMMY_21, .whichRank = CONTEST_RANK_MASTER, .aiPool_Cool = TRUE, .aiPool_Beauty = FALSE, @@ -2647,7 +2647,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("GONPOR"), .trainerName = _("MARTIN"), .trainerGfxId = OBJ_EVENT_GFX_SCIENTIST_1, - .aiChecks = 0x82000FFF, + .aiChecks = CONTEST_AI_ALL | CONTEST_AI_DUMMIES_1 | CONTEST_AI_DUMMY_19 | CONTEST_AI_DUMMY_25, .whichRank = CONTEST_RANK_MASTER, .aiPool_Cool = TRUE, .aiPool_Beauty = TRUE, @@ -2675,7 +2675,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("DRITE"), .trainerName = _("SERGIO"), .trainerGfxId = OBJ_EVENT_GFX_BOY_1, - .aiChecks = 0x21000FFF, + .aiChecks = CONTEST_AI_ALL | CONTEST_AI_DUMMIES_1 | CONTEST_AI_DUMMY_18 | CONTEST_AI_DUMMY_23, .whichRank = CONTEST_RANK_MASTER, .aiPool_Cool = TRUE, .aiPool_Beauty = FALSE, diff --git a/src/script_pokemon_util_80F87D8.c b/src/script_pokemon_util_80F87D8.c index a6ab1693b5..89029210bb 100755 --- a/src/script_pokemon_util_80F87D8.c +++ b/src/script_pokemon_util_80F87D8.c @@ -158,7 +158,7 @@ void sub_80F8970(void) u8 r7; for (i = 0; i < CONTESTANT_COUNT; i++) - conditions[i] = gContestMonConditions[i]; + conditions[i] = gContestMonRound1Points[i]; for (i = 0; i < CONTESTANT_COUNT - 1; i++) { @@ -195,7 +195,7 @@ void sub_80F8970(void) var2 = r8; for (i = 0; i < CONTESTANT_COUNT; i++) { - if (condition == gContestMonConditions[i]) + if (condition == gContestMonRound1Points[i]) { if (var2 == 1) break; From 2439f42de4cdeeb87ee5e574926036707cd0dab6 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Fri, 24 Jul 2020 03:43:37 -0400 Subject: [PATCH 013/101] Add warnings to generated files --- include/constants/layouts.h | 4 ++++ include/constants/map_groups.h | 4 ++++ tools/mapjson/mapjson.cpp | 28 ++++++++++++++++++++++++++++ 3 files changed, 36 insertions(+) diff --git a/include/constants/layouts.h b/include/constants/layouts.h index 3e876f4993..500b82cd47 100755 --- a/include/constants/layouts.h +++ b/include/constants/layouts.h @@ -1,6 +1,10 @@ #ifndef GUARD_CONSTANTS_LAYOUTS_H #define GUARD_CONSTANTS_LAYOUTS_H +// +// DO NOT MODIFY THIS FILE! It is auto-generated from data/layouts/layouts.json +// + #define LAYOUT_PETALBURG_CITY 1 #define LAYOUT_SLATEPORT_CITY 2 #define LAYOUT_MAUVILLE_CITY 3 diff --git a/include/constants/map_groups.h b/include/constants/map_groups.h index 17fe7ab533..aef9924fac 100755 --- a/include/constants/map_groups.h +++ b/include/constants/map_groups.h @@ -1,6 +1,10 @@ #ifndef GUARD_CONSTANTS_MAP_GROUPS_H #define GUARD_CONSTANTS_MAP_GROUPS_H +// +// DO NOT MODIFY THIS FILE! It is auto-generated from data/maps/map_groups.json +// + // Map Group 0 #define MAP_PETALBURG_CITY (0 | (0 << 8)) #define MAP_SLATEPORT_CITY (1 | (0 << 8)) diff --git a/tools/mapjson/mapjson.cpp b/tools/mapjson/mapjson.cpp index 55335e382a..5e246ff249 100644 --- a/tools/mapjson/mapjson.cpp +++ b/tools/mapjson/mapjson.cpp @@ -77,6 +77,10 @@ string generate_map_header_text(Json map_data, Json layouts_data, string version ostringstream text; + text << "@\n@ DO NOT MODIFY THIS FILE! It is auto-generated from data/maps/" + << map_data["name"].string_value() + << "/map.json\n@\n\n"; + text << map_data["name"].string_value() << ":\n" << "\t.4byte " << layout["name"].string_value() << "\n"; @@ -124,6 +128,10 @@ string generate_map_connections_text(Json map_data) { ostringstream text; + text << "@\n@ DO NOT MODIFY THIS FILE! It is auto-generated from data/maps/" + << map_data["name"].string_value() + << "/map.json\n@\n\n"; + text << map_data["name"].string_value() << "_MapConnectionsList:\n"; for (auto &connection : map_data["connections"].array_items()) { @@ -146,6 +154,10 @@ string generate_map_events_text(Json map_data) { ostringstream text; + text << "@\n@ DO NOT MODIFY THIS FILE! It is auto-generated from data/maps/" + << map_data["name"].string_value() + << "/map.json\n@\n\n"; + string objects_label, warps_label, coords_label, bgs_label; if (map_data["object_events"].array_items().size() > 0) { @@ -286,6 +298,8 @@ void process_map(string map_filepath, string layouts_filepath, string version) { string generate_groups_text(Json groups_data) { ostringstream text; + text << "@\n@ DO NOT MODIFY THIS FILE! It is auto-generated from data/maps/map_groups.json\n@\n\n"; + for (auto &key : groups_data["group_order"].array_items()) { string group = key.string_value(); text << group << "::\n"; @@ -325,6 +339,8 @@ string generate_connections_text(Json groups_data) { ostringstream text; + text << "@\n@ DO NOT MODIFY THIS FILE! It is auto-generated from data/maps/map_groups.json\n@\n\n"; + for (Json map_name : map_names) text << "\t.include \"data/maps/" << map_name.string_value() << "/connections.inc\"\n"; @@ -340,6 +356,8 @@ string generate_headers_text(Json groups_data) { ostringstream text; + text << "@\n@ DO NOT MODIFY THIS FILE! It is auto-generated from data/maps/map_groups.json\n@\n\n"; + for (string map_name : map_names) text << "\t.include \"data/maps/" << map_name << "/header.inc\"\n"; @@ -355,6 +373,8 @@ string generate_events_text(Json groups_data) { ostringstream text; + text << "@\n@ DO NOT MODIFY THIS FILE! It is auto-generated from data/maps/map_groups.json\n@\n\n"; + for (string map_name : map_names) text << "\t.include \"data/maps/" << map_name << "/events.inc\"\n"; @@ -370,6 +390,8 @@ string generate_map_constants_text(string groups_filepath, Json groups_data) { text << "#ifndef GUARD_CONSTANTS_MAP_GROUPS_H\n" << "#define GUARD_CONSTANTS_MAP_GROUPS_H\n\n"; + text << "//\n// DO NOT MODIFY THIS FILE! It is auto-generated from data/maps/map_groups.json\n//\n\n"; + int group_num = 0; for (auto &group : groups_data["group_order"].array_items()) { @@ -428,6 +450,8 @@ void process_groups(string groups_filepath) { string generate_layout_headers_text(Json layouts_data) { ostringstream text; + text << "@\n@ DO NOT MODIFY THIS FILE! It is auto-generated from data/layouts/layouts.json\n@\n\n"; + for (auto &layout : layouts_data["layouts"].array_items()) { string border_label = layout["name"].string_value() + "_Border"; string blockdata_label = layout["name"].string_value() + "_Blockdata"; @@ -451,6 +475,8 @@ string generate_layout_headers_text(Json layouts_data) { string generate_layouts_table_text(Json layouts_data) { ostringstream text; + text << "@\n@ DO NOT MODIFY THIS FILE! It is auto-generated from data/layouts/layouts.json\n@\n\n"; + text << "\t.align 2\n" << layouts_data["layouts_table_label"].string_value() << "::\n"; @@ -466,6 +492,8 @@ string generate_layouts_constants_text(Json layouts_data) { text << "#ifndef GUARD_CONSTANTS_LAYOUTS_H\n" << "#define GUARD_CONSTANTS_LAYOUTS_H\n\n"; + text << "//\n// DO NOT MODIFY THIS FILE! It is auto-generated from data/layouts/layouts.json\n//\n\n"; + int i = 0; for (auto &layout : layouts_data["layouts"].array_items()) text << "#define " << layout["id"].string_value() << " " << ++i << "\n"; From c5aa91741b4ba674e0eec574b33a6fb78b349b7a Mon Sep 17 00:00:00 2001 From: PokeCodec Date: Sun, 19 Jul 2020 15:57:20 -0400 Subject: [PATCH 014/101] Change signedness and add casts to avoid implicit conversion warnings --- src/agb_flash.c | 28 +++++++++++++-------------- src/battle_anim_bug.c | 38 +++++++++++++------------------------ src/battle_anim_effects_1.c | 2 +- src/berry.c | 2 +- src/berry_blender.c | 10 +++++----- src/easy_chat.c | 18 +++++++++--------- src/event_object_movement.c | 6 +++--- src/field_effect.c | 2 +- src/hall_of_fame.c | 4 ++-- src/item_use.c | 2 +- src/list_menu.c | 10 +++++----- src/mirage_tower.c | 7 +++---- src/overworld.c | 2 +- src/party_menu.c | 8 ++++---- src/player_pc.c | 14 +++++++------- src/pokedex.c | 6 +++--- src/roulette.c | 32 +++++++++++++++---------------- src/scrcmd.c | 4 ++-- src/secret_base.c | 8 ++++---- src/slot_machine.c | 2 +- src/start_menu.c | 2 +- src/trainer_see.c | 4 ++-- 22 files changed, 99 insertions(+), 112 deletions(-) diff --git a/src/agb_flash.c b/src/agb_flash.c index 1ad9e47ecb..0045219c41 100644 --- a/src/agb_flash.c +++ b/src/agb_flash.c @@ -41,7 +41,7 @@ u16 ReadFlashId(void) u8 (*readFlash1)(u8 *); SetReadFlash1(readFlash1Buffer); - readFlash1 = (u8 (*)(u8 *))((s32)readFlash1Buffer + 1); + readFlash1 = (u8 (*)(u8 *))((uintptr_t)readFlash1Buffer + 1); // Enter ID mode. FLASH_WRITE(0x5555, 0xAA); @@ -113,12 +113,12 @@ void SetReadFlash1(u16 *dest) u16 *src; u16 i; - PollFlashStatus = (u8 (*)(u8 *))((s32)dest + 1); + PollFlashStatus = (u8 (*)(u8 *))((uintptr_t)dest + 1); src = (u16 *)ReadFlash1; - src = (u16 *)((s32)src ^ 1); + src = (u16 *)((uintptr_t)src ^ 1); - i = ((s32)SetReadFlash1 - (s32)ReadFlash1) >> 1; + i = ((uintptr_t)SetReadFlash1 - (uintptr_t)ReadFlash1) >> 1; while (i != 0) { @@ -154,10 +154,10 @@ void ReadFlash(u16 sectorNum, u32 offset, u8 *dest, u32 size) } funcSrc = (u16 *)ReadFlash_Core; - funcSrc = (u16 *)((s32)funcSrc ^ 1); + funcSrc = (u16 *)((uintptr_t)funcSrc ^ 1); funcDest = readFlash_Core_Buffer; - i = ((s32)ReadFlash - (s32)ReadFlash_Core) >> 1; + i = ((uintptr_t)ReadFlash - (uintptr_t)ReadFlash_Core) >> 1; while (i != 0) { @@ -165,7 +165,7 @@ void ReadFlash(u16 sectorNum, u32 offset, u8 *dest, u32 size) i--; } - readFlash_Core = (void (*)(vu8 *, u8 *, u32))((s32)readFlash_Core_Buffer + 1); + readFlash_Core = (void (*)(vu8 *, u8 *, u32))((uintptr_t)readFlash_Core_Buffer + 1); src = FLASH_BASE + (sectorNum << gFlash->sector.shift) + offset; @@ -202,10 +202,10 @@ u32 VerifyFlashSector(u16 sectorNum, u8 *src) } funcSrc = (u16 *)VerifyFlashSector_Core; - funcSrc = (u16 *)((s32)funcSrc ^ 1); + funcSrc = (u16 *)((uintptr_t)funcSrc ^ 1); funcDest = verifyFlashSector_Core_Buffer; - i = ((s32)VerifyFlashSector - (s32)VerifyFlashSector_Core) >> 1; + i = (u16)(((uintptr_t)VerifyFlashSector - (uintptr_t)VerifyFlashSector_Core) >> 1); while (i != 0) { @@ -213,7 +213,7 @@ u32 VerifyFlashSector(u16 sectorNum, u8 *src) i--; } - verifyFlashSector_Core = (u32 (*)(u8 *, u8 *, u32))((s32)verifyFlashSector_Core_Buffer + 1); + verifyFlashSector_Core = (u32 (*)(u8 *, u8 *, u32))((uintptr_t)verifyFlashSector_Core_Buffer + 1); tgt = FLASH_BASE + (sectorNum << gFlash->sector.shift); size = gFlash->sector.size; @@ -239,10 +239,10 @@ u32 VerifyFlashSectorNBytes(u16 sectorNum, u8 *src, u32 n) REG_WAITCNT = (REG_WAITCNT & ~WAITCNT_SRAM_MASK) | WAITCNT_SRAM_8; funcSrc = (u16 *)VerifyFlashSector_Core; - funcSrc = (u16 *)((s32)funcSrc ^ 1); + funcSrc = (u16 *)((uintptr_t)funcSrc ^ 1); funcDest = verifyFlashSector_Core_Buffer; - i = ((s32)VerifyFlashSector - (s32)VerifyFlashSector_Core) >> 1; + i = (u16)(((uintptr_t)VerifyFlashSector - (uintptr_t)VerifyFlashSector_Core) >> 1); while (i != 0) { @@ -250,7 +250,7 @@ u32 VerifyFlashSectorNBytes(u16 sectorNum, u8 *src, u32 n) i--; } - verifyFlashSector_Core = (u32 (*)(u8 *, u8 *, u32))((s32)verifyFlashSector_Core_Buffer + 1); + verifyFlashSector_Core = (u32 (*)(u8 *, u8 *, u32))((uintptr_t)verifyFlashSector_Core_Buffer + 1); tgt = FLASH_BASE + (sectorNum << gFlash->sector.shift); @@ -293,4 +293,4 @@ u32 ProgramFlashSectorAndVerifyNBytes(u16 sectorNum, u8 *src, u32 n) } return result; -} +} \ No newline at end of file diff --git a/src/battle_anim_bug.c b/src/battle_anim_bug.c index ea3df80986..5e8a8b2a76 100644 --- a/src/battle_anim_bug.c +++ b/src/battle_anim_bug.c @@ -372,14 +372,11 @@ static void AnimTranslateStinger(struct Sprite *sprite) { gBattleAnimArgs[2] = -gBattleAnimArgs[2]; } - else + else if (GetBattlerSide(gBattleAnimAttacker)) { - if (GetBattlerSide(gBattleAnimAttacker)) - { - gBattleAnimArgs[2] = -gBattleAnimArgs[2]; - gBattleAnimArgs[1] = -gBattleAnimArgs[1]; - gBattleAnimArgs[3] = -gBattleAnimArgs[3]; - } + gBattleAnimArgs[2] = -gBattleAnimArgs[2]; + gBattleAnimArgs[1] = -gBattleAnimArgs[1]; + gBattleAnimArgs[3] = -gBattleAnimArgs[3]; } if (!IsContest() && GetBattlerSide(gBattleAnimAttacker) == GetBattlerSide(gBattleAnimTarget)) @@ -387,13 +384,8 @@ static void AnimTranslateStinger(struct Sprite *sprite) if (GetBattlerPosition(gBattleAnimTarget) == B_POSITION_PLAYER_LEFT || GetBattlerPosition(gBattleAnimTarget) == B_POSITION_OPPONENT_LEFT) { - s16 temp1, temp2; - - temp1 = gBattleAnimArgs[2]; - gBattleAnimArgs[2] = -temp1; - - temp2 = gBattleAnimArgs[0]; - gBattleAnimArgs[0] = -temp2; + gBattleAnimArgs[2] *= -1; + gBattleAnimArgs[0] *= -1; } } @@ -448,28 +440,24 @@ static void AnimMissileArc_Step(struct Sprite *sprite) else { s16 tempData[8]; - u16 *data = sprite->data; - u16 x1 = sprite->pos1.x; - s16 x2 = sprite->pos2.x; - u16 y1 = sprite->pos1.y; - s16 y2 = sprite->pos2.y; + s16 xpos, ypos; int i; for (i = 0; i < 8; i++) - tempData[i] = data[i]; + tempData[i] = sprite->data[i]; - x2 += x1; - y2 += y1; + xpos = sprite->pos1.x + sprite->pos2.x; + ypos = sprite->pos1.y + sprite->pos2.y; if (!TranslateAnimHorizontalArc(sprite)) { - u16 rotation = ArcTan2Neg(sprite->pos1.x + sprite->pos2.x - x2, - sprite->pos1.y + sprite->pos2.y - y2); + u16 rotation = ArcTan2Neg(sprite->pos1.x + sprite->pos2.x - xpos, //Isn't this zero lol + sprite->pos1.y + sprite->pos2.y - ypos); rotation += 0xC000; TrySetSpriteRotScale(sprite, FALSE, 0x100, 0x100, rotation); for (i = 0; i < 8; i++) - data[i] = tempData[i]; + sprite->data[i] = tempData[i]; } } } diff --git a/src/battle_anim_effects_1.c b/src/battle_anim_effects_1.c index 516c58e557..9acb4b83ab 100644 --- a/src/battle_anim_effects_1.c +++ b/src/battle_anim_effects_1.c @@ -4445,7 +4445,7 @@ static void AnimBowMon_Step1_Callback(struct Sprite* sprite) { sprite->data[3] = gBattlerSpriteIds[gBattleAnimAttacker]; PrepareBattlerSpriteForRotScale(sprite->data[3], ST_OAM_OBJ_NORMAL); - sprite->data[4] = (sprite->data[6] = GetBattlerSide(gBattleAnimAttacker)) ? 0x300 : 0xFFFFFD00; + sprite->data[4] = (sprite->data[6] = GetBattlerSide(gBattleAnimAttacker)) ? 0x300 : (s16)0xFFFFFD00; sprite->data[5] = 0; } diff --git a/src/berry.c b/src/berry.c index 98264f37b8..d70e8c3537 100644 --- a/src/berry.c +++ b/src/berry.c @@ -1331,7 +1331,7 @@ void ResetBerryTreeSparkleFlags(void) s16 bottom; int i; - GetCameraCoords(&cam_left, &cam_top); + GetCameraCoords((u16*)&cam_left, (u16*)&cam_top); left = cam_left; top = cam_top + 3; right = cam_left + 14; diff --git a/src/berry_blender.c b/src/berry_blender.c index a2a96c0892..de3cc62759 100644 --- a/src/berry_blender.c +++ b/src/berry_blender.c @@ -116,8 +116,8 @@ struct BerryBlenderData u16 field_116; u16 field_118; u16 field_11A; - u16 bg_X; - u16 bg_Y; + s16 bg_X; + s16 bg_Y; u8 field_120[3]; u8 field_123; u16 scores[BLENDER_MAX_PLAYERS][BLENDER_SCORES_NO]; @@ -3166,13 +3166,13 @@ static void sub_80832E8(s16* a0) static void sub_808330C(void) { - sub_80832E8(&sBerryBlenderData->bg_X); - sub_80832E8(&sBerryBlenderData->bg_Y); + sub_80832E8((s16 *)&sBerryBlenderData->bg_X); + sub_80832E8((s16 *)&sBerryBlenderData->bg_Y); } static void sub_8083334(s16* a0, u16 a1) { - s32 var; + u8 var; if (a1 < 10) var = 16; diff --git a/src/easy_chat.c b/src/easy_chat.c index 44a7b90c14..c839c0070d 100644 --- a/src/easy_chat.c +++ b/src/easy_chat.c @@ -2537,7 +2537,7 @@ u8 sub_811BBBC(void) return sEasyChatScreen->unk_0c; } -void sub_811BBC8(u8 *arg0, u8 *arg1) +static void sub_811BBC8(s8 *arg0, s8 *arg1) { *arg0 = sEasyChatScreen->unk_10; *arg1 = sEasyChatScreen->unk_11; @@ -4529,18 +4529,18 @@ static void sub_811E30C(void) x = var0 * 13; x = x * 8 + 28; y = var1 * 16 + 96; - sub_811E34C(x, y); + sub_811E34C((u8)x, (u8)y); } static void sub_811E34C(u8 x, u8 y) { - if (sUnknown_0203A11C->unk2E4) - { - sUnknown_0203A11C->unk2E4->pos1.x = x; - sUnknown_0203A11C->unk2E4->pos1.y = y; - sUnknown_0203A11C->unk2E4->pos2.x = 0; - sUnknown_0203A11C->unk2E4->data[0] = 0; - } + if (!sUnknown_0203A11C->unk2E4) + return; + + sUnknown_0203A11C->unk2E4->pos1.x = (s16)x; + sUnknown_0203A11C->unk2E4->pos1.y = (s16)y; + sUnknown_0203A11C->unk2E4->pos2.x = 0; + sUnknown_0203A11C->unk2E4->data[0] = 0; } static void sub_811E380(void) diff --git a/src/event_object_movement.c b/src/event_object_movement.c index ad839e0067..c3fef8c0de 100644 --- a/src/event_object_movement.c +++ b/src/event_object_movement.c @@ -8950,7 +8950,7 @@ void CreateLevitateMovementTask(struct ObjectEvent *objectEvent) u8 taskId = CreateTask(ApplyLevitateMovement, 0xFF); struct Task *task = &gTasks[taskId]; - StoreWordInTwoHalfwords(&task->data[0], (u32)objectEvent); + StoreWordInTwoHalfwords((u16 *)&task->data[0], (u32)objectEvent); objectEvent->warpArrowSpriteId = taskId; task->data[3] = 0xFFFF; } @@ -8961,7 +8961,7 @@ static void ApplyLevitateMovement(u8 taskId) struct Sprite *sprite; struct Task *task = &gTasks[taskId]; - LoadWordFromTwoHalfwords(&task->data[0], (u32 *)&objectEvent); // load the map object pointer. + LoadWordFromTwoHalfwords((u16 *)&task->data[0], (u32 *)&objectEvent); // load the map object pointer. sprite = &gSprites[objectEvent->spriteId]; if(!(task->data[2] & 0x3)) @@ -8978,7 +8978,7 @@ void DestroyExtraMovementTask(u8 taskId) struct ObjectEvent *objectEvent; struct Task *task = &gTasks[taskId]; - LoadWordFromTwoHalfwords(&task->data[0], (u32 *)&objectEvent); // unused objectEvent + LoadWordFromTwoHalfwords((u16 *)&task->data[0], (u32 *)&objectEvent); // unused objectEvent DestroyTask(taskId); } diff --git a/src/field_effect.c b/src/field_effect.c index 07579f55d5..bc1e6f134d 100644 --- a/src/field_effect.c +++ b/src/field_effect.c @@ -2501,7 +2501,7 @@ static void sub_80B8584(struct Task *task) { task->data[11] = REG_WININ; task->data[12] = REG_WINOUT; - StoreWordInTwoHalfwords(&task->data[13], (u32)gMain.vblankCallback); + StoreWordInTwoHalfwords((u16 *)&task->data[13], (u32)gMain.vblankCallback); task->data[1] = 0xf0f1; task->data[2] = 0x5051; task->data[3] = 0x3f; diff --git a/src/hall_of_fame.c b/src/hall_of_fame.c index bf9850deca..8e47c1e3ae 100644 --- a/src/hall_of_fame.c +++ b/src/hall_of_fame.c @@ -612,7 +612,7 @@ static void Task_Hof_PrintMonInfoAfterAnimating(u8 taskId) static void Task_Hof_TryDisplayAnotherMon(u8 taskId) { - u16 currPokeID = gTasks[taskId].tDisplayedMonId; + u16 currPokeID = (u16)gTasks[taskId].tDisplayedMonId; struct HallofFameMon* currMon = &sHofMonPtr->mon[currPokeID]; if (gTasks[taskId].tFrameCount != 0) @@ -1483,7 +1483,7 @@ static void UpdateDomeConfetti(struct ConfettiUtil *util) static void Task_DoDomeConfetti(u8 taskId) { u32 id = 0; - u16 *data = gTasks[taskId].data; + u16 *data = (u16 *)gTasks[taskId].data; switch (tState) { diff --git a/src/item_use.c b/src/item_use.c index 0aae441c8b..fa3f130810 100755 --- a/src/item_use.c +++ b/src/item_use.c @@ -721,7 +721,7 @@ static void ItemUseOnFieldCB_WailmerPailBerry(u8 taskId) static bool8 TryToWaterSudowoodo(void) { - u16 x, y; + s16 x, y; u8 z; u8 objId; GetXYCoordsOneStepInFrontOfPlayer(&x, &y); diff --git a/src/list_menu.c b/src/list_menu.c index ddcad0fe9c..ebf02bab65 100644 --- a/src/list_menu.c +++ b/src/list_menu.c @@ -1257,17 +1257,17 @@ void ListMenuSetUpRedOutlineCursorSpriteOamTable(u16 rowWidth, u16 rowHeight, st s32 i, j, id = 0; subsprites[id] = sSubsprite_RedOutline1; - subsprites[id].x = 136; - subsprites[id].y = 136; + subsprites[id].x = -120; + subsprites[id].y = -120; id++; subsprites[id] = sSubsprite_RedOutline2; subsprites[id].x = rowWidth + 128; - subsprites[id].y = 136; + subsprites[id].y = -120; id++; subsprites[id] = sSubsprite_RedOutline7; - subsprites[id].x = 136; + subsprites[id].x = -120; subsprites[id].y = rowHeight + 128; id++; @@ -1297,7 +1297,7 @@ void ListMenuSetUpRedOutlineCursorSpriteOamTable(u16 rowWidth, u16 rowHeight, st for (j = 8; j < rowHeight - 8; j += 8) { subsprites[id] = sSubsprite_RedOutline4; - subsprites[id].x = 136; + subsprites[id].x = -120; subsprites[id].y = j - 120; id++; diff --git a/src/mirage_tower.c b/src/mirage_tower.c index e2f5cefb78..bdddbdbe64 100644 --- a/src/mirage_tower.c +++ b/src/mirage_tower.c @@ -168,7 +168,7 @@ const struct PulseBlendSettings gMirageTowerPulseBlendSettings = { .numColors = 15, .delay = 5, .numFadeCycles = -1, - .maxBlendCoeff = 11, + .maxBlendCoeff = -5, .fadeType = 1, .restorePaletteOnUnload = FALSE, .unk7_7 = 1, @@ -412,10 +412,9 @@ void DoMirageTowerCeilingCrumble(void) static void WaitCeilingCrumble(u8 taskId) { - u16 *data = gTasks[taskId].data; - data[1]++; + u16 *data = (u16 *)gTasks[taskId].data; // Either wait 1000 frames, or until all 16 crumble sprites and the one screen-shake task are completed. - if (data[1] == 1000 || data[0] == 17) + if (++data[1] == 1000 || data[0] == 17) gTasks[taskId].func = FinishCeilingCrumbleTask; } diff --git a/src/overworld.c b/src/overworld.c index ea0d633bcf..6b8fd232e6 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -3212,7 +3212,7 @@ static void SpriteCB_LinkPlayer(struct Sprite *sprite) SetObjectSubpriorityByZCoord(objEvent->previousElevation, sprite, 1); sprite->oam.priority = ZCoordToPriority(objEvent->previousElevation); - if (!linkPlayerObjEvent->movementMode != MOVEMENT_MODE_FREE) + if (linkPlayerObjEvent->movementMode == MOVEMENT_MODE_FREE) StartSpriteAnim(sprite, GetFaceDirectionAnimNum(objEvent->range.as_byte)); else StartSpriteAnimIfDifferent(sprite, GetMoveDirectionAnimNum(objEvent->range.as_byte)); diff --git a/src/party_menu.c b/src/party_menu.c index d5bc6dfb63..6a38d90989 100755 --- a/src/party_menu.c +++ b/src/party_menu.c @@ -1862,7 +1862,7 @@ u8 GetMonAilment(struct Pokemon *mon) static void SetPartyMonsAllowedInMinigame(void) { - u16 *ptr; + s16 *ptr; if (gPartyMenu.menuType == PARTY_MENU_TYPE_MINIGAME) { @@ -4951,9 +4951,9 @@ static void Task_DisplayLevelUpStatsPg2(u8 taskId) static void DisplayLevelUpStatsPg1(u8 taskId) { - s16 *arrayPtr = sPartyMenuInternal->data; + u16 *arrayPtr = (u16*)sPartyMenuInternal->data; - arrayPtr[12] = CreateLevelUpStatsWindow(); + arrayPtr[12] = (u16)CreateLevelUpStatsWindow(); DrawLevelUpWindowPg1(arrayPtr[12], arrayPtr, &arrayPtr[6], TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY, TEXT_COLOR_LIGHT_GREY); CopyWindowToVram(arrayPtr[12], 2); ScheduleBgCopyTilemapToVram(2); @@ -4961,7 +4961,7 @@ static void DisplayLevelUpStatsPg1(u8 taskId) static void DisplayLevelUpStatsPg2(u8 taskId) { - s16 *arrayPtr = sPartyMenuInternal->data; + u16 *arrayPtr = (u16 *)sPartyMenuInternal->data; DrawLevelUpWindowPg2(arrayPtr[12], &arrayPtr[6], TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY, TEXT_COLOR_LIGHT_GREY); CopyWindowToVram(arrayPtr[12], 2); diff --git a/src/player_pc.c b/src/player_pc.c index fc0bd9f4c8..2010d84f85 100644 --- a/src/player_pc.c +++ b/src/player_pc.c @@ -327,7 +327,7 @@ void PlayerPC(void) static void InitPlayerPCMenu(u8 taskId) { - u16 *data; + s16 *data; struct WindowTemplate windowTemplate; data = gTasks[taskId].data; @@ -346,7 +346,7 @@ static void InitPlayerPCMenu(u8 taskId) static void PlayerPCProcessMenuInput(u8 taskId) { - u16 *data; + s16 *data; s8 inputOptionId; data = gTasks[taskId].data; @@ -435,7 +435,7 @@ static void PlayerPC_TurnOff(u8 taskId) static void InitItemStorageMenu(u8 taskId, u8 var) { - u16 *data; + s16 *data; struct WindowTemplate windowTemplate; data = gTasks[taskId].data; @@ -548,7 +548,7 @@ static void ItemStorage_Toss(u8 taskId) static void ItemStorage_WithdrawToss_Helper(u8 taskId, bool8 toss) { - u16 *data = gTasks[taskId].data; + s16 *data = gTasks[taskId].data; data[3] = toss; sub_816B4DC(taskId); @@ -581,9 +581,9 @@ static void ItemStorage_SetItemAndMailCount(u8 taskId) static void sub_816B4DC(u8 taskId) { - u16 *data = gTasks[taskId].data; + u16 *data = (u16 *)gTasks[taskId].data; - ClearStdWindowAndFrameToTransparent(data[4], FALSE); + ClearStdWindowAndFrameToTransparent((u8)data[4], FALSE); ClearWindowTilemap(data[4]); RemoveWindow(data[4]); ScheduleBgCopyTilemapToVram(0); @@ -1380,7 +1380,7 @@ static void ItemStorage_DoItemToss(u8 taskId) data = gTasks[taskId].data; b = (playerPCItemPageInfo.cursorPos + playerPCItemPageInfo.itemsAbove); - if (!ItemId_GetImportance(gSaveBlock1Ptr->pcItems[b].itemId)) + if (ItemId_GetImportance(gSaveBlock1Ptr->pcItems[b].itemId) == 0) { CopyItemName(gSaveBlock1Ptr->pcItems[b].itemId, gStringVar1); ConvertIntToDecimalStringN(gStringVar2, data[2], STR_CONV_MODE_LEFT_ALIGN, 3); diff --git a/src/pokedex.c b/src/pokedex.c index 0541f3f2e6..777cc52cd6 100644 --- a/src/pokedex.c +++ b/src/pokedex.c @@ -5117,9 +5117,9 @@ static void Task_SelectSearchMenuItem(u8 taskId) u16 *scrollOffset; DrawOrEraseSearchParameterBox(FALSE); - menuItem = gTasks[taskId].tMenuItem; - cursorPos = &gTasks[taskId].data[sSearchOptions[menuItem].taskDataCursorPos]; - scrollOffset = &gTasks[taskId].data[sSearchOptions[menuItem].taskDataScrollOffset]; + menuItem = (u16)gTasks[taskId].tMenuItem; + cursorPos = (u16*)&gTasks[taskId].data[sSearchOptions[menuItem].taskDataCursorPos]; + scrollOffset = (u16*)&gTasks[taskId].data[sSearchOptions[menuItem].taskDataScrollOffset]; gTasks[taskId].tCursorPos = *cursorPos; gTasks[taskId].tScrollOffset = *scrollOffset; PrintSearchParameterText(taskId); diff --git a/src/roulette.c b/src/roulette.c index 58e120cb50..f55736a969 100644 --- a/src/roulette.c +++ b/src/roulette.c @@ -633,7 +633,7 @@ static const struct UnkStruct1 gUnknown_085B6388[] = .var05 = 1, .var06 = 0xFF, .var07_0 = 8, - .var07_5 = 2, + .var07_5 = -2, .var07_7 = 0 }, { @@ -643,7 +643,7 @@ static const struct UnkStruct1 gUnknown_085B6388[] = .var05 = 1, .var06 = 0xFF, .var07_0 = 8, - .var07_5 = 2, + .var07_5 = -2, .var07_7 = 0 }, { @@ -653,7 +653,7 @@ static const struct UnkStruct1 gUnknown_085B6388[] = .var05 = 1, .var06 = 0xFF, .var07_0 = 8, - .var07_5 = 2, + .var07_5 = -2, .var07_7 = 0 }, { @@ -663,7 +663,7 @@ static const struct UnkStruct1 gUnknown_085B6388[] = .var05 = 1, .var06 = 0xFF, .var07_0 = 8, - .var07_5 = 2, + .var07_5 = -2, .var07_7 = 0 }, { @@ -673,7 +673,7 @@ static const struct UnkStruct1 gUnknown_085B6388[] = .var05 = 1, .var06 = 0xFF, .var07_0 = 8, - .var07_5 = 2, + .var07_5 = -2, .var07_7 = 0 }, { @@ -683,7 +683,7 @@ static const struct UnkStruct1 gUnknown_085B6388[] = .var05 = 1, .var06 = 0xFF, .var07_0 = 8, - .var07_5 = 2, + .var07_5 = -2, .var07_7 = 0 }, { @@ -693,7 +693,7 @@ static const struct UnkStruct1 gUnknown_085B6388[] = .var05 = 1, .var06 = 0xFF, .var07_0 = 8, - .var07_5 = 2, + .var07_5 = -2, .var07_7 = 0 }, { @@ -703,7 +703,7 @@ static const struct UnkStruct1 gUnknown_085B6388[] = .var05 = 1, .var06 = 0xFF, .var07_0 = 8, - .var07_5 = 2, + .var07_5 = -2, .var07_7 = 0 }, { @@ -713,7 +713,7 @@ static const struct UnkStruct1 gUnknown_085B6388[] = .var05 = 1, .var06 = 0xFF, .var07_0 = 8, - .var07_5 = 2, + .var07_5 = -2, .var07_7 = 0 }, { @@ -723,7 +723,7 @@ static const struct UnkStruct1 gUnknown_085B6388[] = .var05 = 1, .var06 = 0xFF, .var07_0 = 8, - .var07_5 = 2, + .var07_5 = -2, .var07_7 = 0 }, { @@ -733,7 +733,7 @@ static const struct UnkStruct1 gUnknown_085B6388[] = .var05 = 1, .var06 = 0xFF, .var07_0 = 8, - .var07_5 = 2, + .var07_5 = -2, .var07_7 = 0 }, { @@ -743,7 +743,7 @@ static const struct UnkStruct1 gUnknown_085B6388[] = .var05 = 1, .var06 = 0xFF, .var07_0 = 8, - .var07_5 = 2, + .var07_5 = -2, .var07_7 = 0 }, { @@ -753,7 +753,7 @@ static const struct UnkStruct1 gUnknown_085B6388[] = .var05 = 10, .var06 = 0xFF, .var07_0 = 14, - .var07_5 = 2, + .var07_5 = -2, .var07_7 = 0 }, }; @@ -767,7 +767,7 @@ static const struct UnkStruct1 gUnknown_085B63F0[] = .var05 = 30, .var06 = 0xFF, .var07_0 = 14, - .var07_5 = 2, + .var07_5 = -2, .var07_7 = 0 }, { @@ -777,7 +777,7 @@ static const struct UnkStruct1 gUnknown_085B63F0[] = .var05 = 30, .var06 = 0xFF, .var07_0 = 14, - .var07_5 = 2, + .var07_5 = -2, .var07_7 = 0 }, { @@ -787,7 +787,7 @@ static const struct UnkStruct1 gUnknown_085B63F0[] = .var05 = 30, .var06 = 0xFF, .var07_0 = 14, - .var07_5 = 2, + .var07_5 = -2, .var07_7 = 0 } }; diff --git a/src/scrcmd.c b/src/scrcmd.c index 4a7f4ea735..2a6abf17e1 100644 --- a/src/scrcmd.c +++ b/src/scrcmd.c @@ -788,8 +788,8 @@ bool8 ScrCmd_warphole(struct ScriptContext *ctx) { u8 mapGroup = ScriptReadByte(ctx); u8 mapNum = ScriptReadByte(ctx); - u16 x; - u16 y; + s16 x; + s16 y; PlayerGetDestCoords(&x, &y); if (mapGroup == 0xFF && mapNum == 0xFF) diff --git a/src/secret_base.c b/src/secret_base.c index 83626710fc..35ac31d4a7 100644 --- a/src/secret_base.c +++ b/src/secret_base.c @@ -964,7 +964,7 @@ static void HandleRegistryMenuInput(u8 taskId) data = gTasks[taskId].data; input = ListMenu_ProcessInput(data[5]); - ListMenuGetScrollAndRow(data[5], &data[2], &data[1]); + ListMenuGetScrollAndRow((u8)data[5], (u16 *)&data[2], (u16 *)&data[1]); switch (input) { case LIST_NOTHING_CHOSEN: @@ -1045,10 +1045,10 @@ void DeleteRegistry_Yes_Callback(u8 taskId) { s16 *data = gTasks[taskId].data; ClearDialogWindowAndFrame(0, 0); - DestroyListMenuTask(data[5], &data[2], &data[1]); + DestroyListMenuTask((u8)data[5], (u16 *)&data[2], (u16 *)&data[1]); gSaveBlock1Ptr->secretBases[data[4]].registryStatus = 0; BuildRegistryMenuItems(taskId); - sub_812225C(&data[2], &data[1], data[3], data[0]); + sub_812225C((u16 *)&data[2], (u16 *)&data[1], (u16)data[3], (u16)data[0]); FinalizeRegistryMenu(taskId); gTasks[taskId].func = HandleRegistryMenuInput; } @@ -1062,7 +1062,7 @@ static void DeleteRegistry_No(u8 taskId) { s16 *data = gTasks[taskId].data; ClearDialogWindowAndFrame(0, 0); - DestroyListMenuTask(data[5], &data[2], &data[1]); + DestroyListMenuTask((u8)data[5], (u16 *)&data[2], (u16 *)&data[1]); FinalizeRegistryMenu(taskId); gTasks[taskId].func = HandleRegistryMenuInput; } diff --git a/src/slot_machine.c b/src/slot_machine.c index d1cb05b180..6557e8cf49 100644 --- a/src/slot_machine.c +++ b/src/slot_machine.c @@ -775,7 +775,7 @@ static void PlaySlotMachine_Internal(u8 slotMachineIndex, MainCallback cb) { struct Task *task = &gTasks[CreateTask(SlotMachineDummyTask, 0xFF)]; task->data[0] = slotMachineIndex; - StoreWordInTwoHalfwords(task->data + 1, (intptr_t)cb); + StoreWordInTwoHalfwords((u16 *)(task->data + 1), (intptr_t)cb); } diff --git a/src/start_menu.c b/src/start_menu.c index 88ad364c7b..68a3161855 100644 --- a/src/start_menu.c +++ b/src/start_menu.c @@ -463,7 +463,7 @@ static bool32 InitStartMenuStep(void) sInitStartMenuData[0]++; break; case 4: - if (PrintStartMenuActions(&sInitStartMenuData[1], 2)) + if (PrintStartMenuActions((s8 *)&sInitStartMenuData[1], 2)) sInitStartMenuData[0]++; break; case 5: diff --git a/src/trainer_see.c b/src/trainer_see.c index 68a16e208b..93daab421d 100644 --- a/src/trainer_see.c +++ b/src/trainer_see.c @@ -603,7 +603,7 @@ static void sub_80B44C8(u8 taskId) struct ObjectEvent *objEvent; // another objEvent loaded into by loadword? - LoadWordFromTwoHalfwords(&task->data[1], (u32 *)&objEvent); + LoadWordFromTwoHalfwords((u16*)&task->data[1], (u32 *)&objEvent); if (!task->data[7]) { ObjectEventClearHeldMovement(objEvent); @@ -624,7 +624,7 @@ static void sub_80B44C8(u8 taskId) void sub_80B4578(struct ObjectEvent *var) { - StoreWordInTwoHalfwords(&gTasks[CreateTask(sub_80B44C8, 0)].data[1], (u32)var); + StoreWordInTwoHalfwords((u16 *)&gTasks[CreateTask(sub_80B44C8, 0)].data[1], (u32)var); } void EndTrainerApproach(void) From 36a4764a784ec5eb0a5dbcd59bcce6804cded2f4 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Sun, 26 Jul 2020 01:17:09 -0400 Subject: [PATCH 015/101] Document some slot machine data --- .../{reel_time.png => digital_display.png} | Bin include/constants/slot_machine.h | 36 - include/graphics.h | 10 +- include/strings.h | 6 + src/data/graphics/slot_machine.h | 10 +- src/slot_machine.c | 2033 +++++++++-------- 6 files changed, 1099 insertions(+), 996 deletions(-) rename graphics/slot_machine/{reel_time.png => digital_display.png} (100%) diff --git a/graphics/slot_machine/reel_time.png b/graphics/slot_machine/digital_display.png similarity index 100% rename from graphics/slot_machine/reel_time.png rename to graphics/slot_machine/digital_display.png diff --git a/include/constants/slot_machine.h b/include/constants/slot_machine.h index 9ecf46d794..2b7c68793f 100644 --- a/include/constants/slot_machine.h +++ b/include/constants/slot_machine.h @@ -1,42 +1,6 @@ #ifndef GUARD_CONSTANTS_SLOT_MACHINE_H #define GUARD_CONSTANTS_SLOT_MACHINE_H -#define NUM_REELS 3 -#define REEL_NUM_TAGS 21 -#define REEL_TAG_HEIGHT 24 #define SLOT_MACHINE_COUNT 12 -// Lucky Flags -#define LUCKY_BIAS_REPLAY (1 << 0) -#define LUCKY_BIAS_CHERRY (1 << 1) -#define LUCKY_BIAS_LOTAD (1 << 2) -#define LUCKY_BIAS_AZURILL (1 << 3) -#define LUCKY_BIAS_POWER (1 << 4) -#define LUCKY_BIAS_REELTIME (1 << 5) -#define LUCKY_BIAS_MIXED_777 (1 << 6) -#define LUCKY_BIAS_777 (1 << 7) - -#define SLOT_MACHINE_TAG_7_RED 0 -#define SLOT_MACHINE_TAG_7_BLUE 1 -#define SLOT_MACHINE_TAG_AZURILL 2 -#define SLOT_MACHINE_TAG_LOTAD 3 -#define SLOT_MACHINE_TAG_CHERRY 4 -#define SLOT_MACHINE_TAG_POWER 5 -#define SLOT_MACHINE_TAG_REPLAY 6 - -#define SLOT_MACHINE_MATCHED_1CHERRY 0 -#define SLOT_MACHINE_MATCHED_2CHERRY 1 -#define SLOT_MACHINE_MATCHED_REPLAY 2 -#define SLOT_MACHINE_MATCHED_LOTAD 3 -#define SLOT_MACHINE_MATCHED_AZURILL 4 -#define SLOT_MACHINE_MATCHED_POWER 5 -#define SLOT_MACHINE_MATCHED_777_MIXED 6 -#define SLOT_MACHINE_MATCHED_777_RED 7 -#define SLOT_MACHINE_MATCHED_777_BLUE 8 -#define SLOT_MACHINE_MATCHED_NONE 9 - -#define LEFT_REEL 0 -#define MIDDLE_REEL 1 -#define RIGHT_REEL 2 - #endif // GUARD_CONSTANTS_SLOT_MACHINE_H \ No newline at end of file diff --git a/include/graphics.h b/include/graphics.h index 8514d49bdf..ab2b299c05 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -4824,7 +4824,7 @@ extern const u32 gUnknown_08D91DB8[]; extern const u32 gUnknown_08D927EC[]; // Slot Machine -extern const u32 gSlotMachineReelTime_Gfx[]; +extern const u32 gSlotMachineDigitalDisplay_Gfx[]; extern const u8 gSlotMachineReelTimeNumber0[]; extern const u8 gSlotMachineReelTimeNumber1[]; extern const u8 gSlotMachineReelTimeNumber2[]; @@ -4833,14 +4833,14 @@ extern const u8 gSlotMachineReelTimeNumber4[]; extern const u8 gSlotMachineReelTimeNumber5[]; extern const u8 gSlotMachineReelTimeShadow[]; extern const u8 gUnknown_08DD1A18[]; -extern const u8 gSlotMachineReelTimeLargeBolt0[]; -extern const u8 gSlotMachineReelTimeLargeBolt1[]; +extern const u8 gSlotMachineReelTimeBolt0[]; +extern const u8 gSlotMachineReelTimeBolt1[]; extern const u8 gSlotMachineReelTimePikaAura[]; extern const u8 gSlotMachineReelTimeExplosion0[]; extern const u8 gSlotMachineReelTimeExplosion1[]; extern const u8 gSlotMachineReelTimeDuck[]; extern const u8 gSlotMachineReelTimeSmoke[]; -extern const u8 gSlotMachineReelTimeBolt[]; +extern const u8 gSlotMachinePikaPowerBolt[]; extern const u8 gSlotMachineReelSymbol1Tiles[]; extern const u8 gSlotMachineReelSymbol2Tiles[]; extern const u8 gSlotMachineReelSymbol3Tiles[]; @@ -4866,7 +4866,7 @@ extern const u16 gSlotMachineMenu_Pal[]; extern const u16 gUnknown_08DCF230[]; extern const u16 gUnknown_08DCF170[]; extern const u16 gUnknown_08DCF1B0[]; -extern const u16 gSlotMachineReelTime_Pal[]; +extern const u16 gSlotMachineDigitalDisplay_Pal[]; extern const u16 gUnknown_08DCF1F0[]; extern const u16 gUnknown_08DCF210[]; extern const u16 gUnknown_08DCF230[]; diff --git a/include/strings.h b/include/strings.h index 702392efa2..50af23a40a 100644 --- a/include/strings.h +++ b/include/strings.h @@ -88,6 +88,12 @@ extern const u8 gText_Slots[]; extern const u8 gText_Roulette[]; extern const u8 gText_Jackpot[]; +extern const u8 gText_YouDontHaveThreeCoins[]; +extern const u8 gText_QuitTheGame[]; +extern const u8 gText_YouveGot9999Coins[]; +extern const u8 gText_YouveRunOutOfCoins[]; +extern const u8 gText_ReelTimeHelp[]; + extern const u8 gText_First[]; extern const u8 gText_Second[]; extern const u8 gText_Third[]; diff --git a/src/data/graphics/slot_machine.h b/src/data/graphics/slot_machine.h index a94f2b6223..94ab989e28 100644 --- a/src/data/graphics/slot_machine.h +++ b/src/data/graphics/slot_machine.h @@ -10,7 +10,7 @@ const u16 gUnknown_08DCF190[] = INCBIN_U16("graphics/slot_machine/reel_pikachu.g const u16 gUnknown_08DCF1B0[] = INCBIN_U16("graphics/slot_machine/shadow.gbapal"); -const u16 gSlotMachineReelTime_Pal[] = INCBIN_U16("graphics/slot_machine/reel_time.gbapal"); +const u16 gSlotMachineDigitalDisplay_Pal[] = INCBIN_U16("graphics/slot_machine/digital_display.gbapal"); const u16 gUnknown_08DCF1F0[] = INCBIN_U16("graphics/slot_machine/smoke.gbapal"); // also duck and pika aura @@ -26,7 +26,7 @@ const u8 gSlotMachineReelSymbol5Tiles[] = INCBIN_U8("graphics/slot_machine/reel_ const u8 gSlotMachineReelSymbol6Tiles[] = INCBIN_U8("graphics/slot_machine/reel_symbols/6.4bpp"); const u8 gSlotMachineReelSymbol7Tiles[] = INCBIN_U8("graphics/slot_machine/reel_symbols/7.4bpp"); -const u32 gSlotMachineReelTime_Gfx[] = INCBIN_U32("graphics/slot_machine/reel_time.4bpp.lz"); +const u32 gSlotMachineDigitalDisplay_Gfx[] = INCBIN_U32("graphics/slot_machine/digital_display.4bpp.lz"); const u8 gSlotMachineNumber0Tiles[] = INCBIN_U8("graphics/slot_machine/numbers/0.4bpp"); const u8 gSlotMachineNumber1Tiles[] = INCBIN_U8("graphics/slot_machine/numbers/1.4bpp"); @@ -39,7 +39,7 @@ const u8 gSlotMachineNumber7Tiles[] = INCBIN_U8("graphics/slot_machine/numbers/7 const u8 gSlotMachineNumber8Tiles[] = INCBIN_U8("graphics/slot_machine/numbers/8.4bpp"); const u8 gSlotMachineNumber9Tiles[] = INCBIN_U8("graphics/slot_machine/numbers/9.4bpp"); -const u8 gSlotMachineReelTimeBolt[] = INCBIN_U8("graphics/slot_machine/bolt.4bpp"); +const u8 gSlotMachinePikaPowerBolt[] = INCBIN_U8("graphics/slot_machine/bolt.4bpp"); const u8 gSlotMachineReelTimeDuck[] = INCBIN_U8("graphics/slot_machine/duck.4bpp"); const u8 gSlotMachineReelTimeSmoke[] = INCBIN_U8("graphics/slot_machine/smoke.4bpp"); @@ -50,8 +50,8 @@ const u8 gSlotMachineReelTimeNumber3[] = INCBIN_U8("graphics/slot_machine/reel_t const u8 gSlotMachineReelTimeNumber4[] = INCBIN_U8("graphics/slot_machine/reel_time_numbers/4.4bpp"); const u8 gSlotMachineReelTimeNumber5[] = INCBIN_U8("graphics/slot_machine/reel_time_numbers/5.4bpp"); -const u8 gSlotMachineReelTimeLargeBolt0[] = INCBIN_U8("graphics/slot_machine/large_bolt/0.4bpp"); -const u8 gSlotMachineReelTimeLargeBolt1[] = INCBIN_U8("graphics/slot_machine/large_bolt/1.4bpp"); +const u8 gSlotMachineReelTimeBolt0[] = INCBIN_U8("graphics/slot_machine/large_bolt/0.4bpp"); +const u8 gSlotMachineReelTimeBolt1[] = INCBIN_U8("graphics/slot_machine/large_bolt/1.4bpp"); const u8 gSlotMachineReelTimeExplosion0[] = INCBIN_U8("graphics/slot_machine/reel_time_explosion/0.4bpp"); const u8 gSlotMachineReelTimeExplosion1[] = INCBIN_U8("graphics/slot_machine/reel_time_explosion/1.4bpp"); diff --git a/src/slot_machine.c b/src/slot_machine.c index d1cb05b180..517cbb1431 100644 --- a/src/slot_machine.c +++ b/src/slot_machine.c @@ -1,5 +1,4 @@ #include "global.h" -#include "constants/songs.h" #include "overworld.h" #include "field_effect.h" #include "random.h" @@ -18,23 +17,133 @@ #include "bg.h" #include "gpu_regs.h" #include "coins.h" +#include "strings.h" #include "tv.h" #include "text_window.h" -#include "constants/rgb.h" #include "main_menu.h" #include "bg.h" #include "window.h" #include "constants/coins.h" +#include "constants/rgb.h" #include "constants/slot_machine.h" +#include "constants/songs.h" -// Text -extern const u8 gText_YouDontHaveThreeCoins[]; -extern const u8 gText_QuitTheGame[]; -extern const u8 gText_YouveGot9999Coins[]; -extern const u8 gText_YouveRunOutOfCoins[]; -extern const u8 gText_ReelTimeHelp[]; +#define SLOTMACHINE_GFX_TILES 233 +#define MAX_BET 3 -struct SlotMachineEwramStruct +#define REEL_NUM_TAGS 21 +#define REEL_TAG_HEIGHT 24 + +// Lucky Flags +#define LUCKY_BIAS_REPLAY (1 << 0) +#define LUCKY_BIAS_CHERRY (1 << 1) +#define LUCKY_BIAS_LOTAD (1 << 2) +#define LUCKY_BIAS_AZURILL (1 << 3) +#define LUCKY_BIAS_POWER (1 << 4) +#define LUCKY_BIAS_REELTIME (1 << 5) +#define LUCKY_BIAS_MIXED_777 (1 << 6) +#define LUCKY_BIAS_777 (1 << 7) + +#define SLOT_MACHINE_TAG_7_RED 0 +#define SLOT_MACHINE_TAG_7_BLUE 1 +#define SLOT_MACHINE_TAG_AZURILL 2 +#define SLOT_MACHINE_TAG_LOTAD 3 +#define SLOT_MACHINE_TAG_CHERRY 4 +#define SLOT_MACHINE_TAG_POWER 5 +#define SLOT_MACHINE_TAG_REPLAY 6 + +#define SLOT_MACHINE_MATCHED_1CHERRY 0 +#define SLOT_MACHINE_MATCHED_2CHERRY 1 +#define SLOT_MACHINE_MATCHED_REPLAY 2 +#define SLOT_MACHINE_MATCHED_LOTAD 3 +#define SLOT_MACHINE_MATCHED_AZURILL 4 +#define SLOT_MACHINE_MATCHED_POWER 5 +#define SLOT_MACHINE_MATCHED_777_MIXED 6 +#define SLOT_MACHINE_MATCHED_777_RED 7 +#define SLOT_MACHINE_MATCHED_777_BLUE 8 +#define SLOT_MACHINE_MATCHED_NONE 9 + +#define LEFT_REEL 0 +#define MIDDLE_REEL 1 +#define RIGHT_REEL 2 +#define NUM_REELS 3 + +enum { + SLOT_ACTION_UNFADE, + SLOT_ACTION_1, + SLOT_ACTION_2, + SLOT_ACTION_3, + SLOT_ACTION_4, + SLOT_ACTION_BET_INPUT, + SLOT_ACTION_6, + SLOT_ACTION_7, + SLOT_ACTION_8, + SLOT_ACTION_9, + SLOT_ACTION_10, + SLOT_ACTION_11, + SLOT_ACTION_12, + SLOT_ACTION_13, + SLOT_ACTION_14, + SLOT_ACTION_15, + SLOT_ACTION_16, + SLOT_ACTION_17, + SLOT_ACTION_18, + SLOT_ACTION_19, + SLOT_ACTION_20, + SLOT_ACTION_ASK_QUIT, + SLOT_ACTION_HANDLE_QUIT_INPUT, + SLOT_ACTION_MSG_MAX_COINS, + SLOT_ACTION_WAIT_MSG_MAX_COINS, + SLOT_ACTION_MSG_NO_MORE_COINS, + SLOT_ACTION_WAIT_MSG_NO_MORE_COINS, + SLOT_ACTION_END, + SLOT_ACTION_FREE, +}; + +#define DIG_SPRITE_DUMMY {255, 0, 0} + +// Sprite template IDs for the digital display in the right panel +enum { + DIG_SPRITE_REEL, + DIG_SPRITE_TIME, + DIG_SPRITE_INSERT, + DIG_SPRITE_WIN, + DIG_SPRITE_LOSE, + DIG_SPRITE_A_BUTTON, + DIG_SPRITE_SMOKE, + DIG_SPRITE_NUMBER, + DIG_SPRITE_POKE_BALL, + DIG_SPRITE_D_PAD, + DIG_SPRITE_STOP_S, + DIG_SPRITE_STOP_T, + DIG_SPRITE_STOP_O, + DIG_SPRITE_STOP_P, + DIG_SPRITE_BONUS_B, + DIG_SPRITE_BONUS_O, + DIG_SPRITE_BONUS_N, + DIG_SPRITE_BONUS_U, + DIG_SPRITE_BONUS_S, + DIG_SPRITE_BIG_B, + DIG_SPRITE_BIG_I, + DIG_SPRITE_BIG_G, + DIG_SPRITE_REG_R, + DIG_SPRITE_REG_E, + DIG_SPRITE_REG_G, + DIG_SPRITE_EMPTY, + NUM_DIG_DISPLAY_SPRITES +}; + +enum { + DIG_DISPLAY_INSERT_BET, + DIG_DISPLAY_STOP_REEL, + DIG_DISPLAY_WIN, + DIG_DISPLAY_LOSE, + DIG_DISPLAY_REEL_TIME, + DIG_DISPLAY_BONUS_REG, + DIG_DISPLAY_BONUS_BIG +}; + +struct SlotMachine { /*0x00*/ u8 state; /*0x01*/ u8 machineId; @@ -45,8 +154,8 @@ struct SlotMachineEwramStruct /*0x06*/ u8 luckySpinsLeft; // tentative /*0x07*/ u8 biasTag; /*0x08*/ u16 matchedSymbols; - /*0x0A*/ u8 fairRollsLeft; // only happens if you win reeltime - /*0x0B*/ u8 fairRollsUsed; + /*0x0A*/ u8 reelTimeSpinsLeft; + /*0x0B*/ u8 reelTimeSpinsUsed; /*0x0C*/ s16 coins; /*0x0E*/ s16 payout; /*0x10*/ s16 netCoinLoss; // coins lost to machine (but never goes below 0) @@ -55,26 +164,26 @@ struct SlotMachineEwramStruct /*0x16*/ s16 reeltimePosition; /*0x18*/ s16 currReel; /*0x1A*/ s16 reelIncrement; // speed of reel - /*0x1C*/ s16 reelPixelOffsets[3]; - /*0x22*/ u16 reelPixelOffsetsWhileStopping[3]; - /*0x28*/ s16 reelPositions[3]; + /*0x1C*/ s16 reelPixelOffsets[NUM_REELS]; + /*0x22*/ u16 reelPixelOffsetsWhileStopping[NUM_REELS]; + /*0x28*/ s16 reelPositions[NUM_REELS]; /*0x2E*/ s16 reelExtraTurns[3]; /*0x34*/ s16 winnerRows[3]; /*0x3A*/ u8 slotReelTasks[3]; /*0x3D*/ u8 unkTaskPointer3D; /*0x3E*/ u8 unkTaskPointer3E; - /*0x3F*/ u8 reelTimeSprite3F; + /*0x3F*/ u8 reelTimePikachuSpriteId; /*0x40*/ u8 unk40; - /*0x41*/ u8 unk41; - /*0x42*/ u8 unk42; - /*0x43*/ u8 unk43; + /*0x41*/ u8 reelTimeExplosionSpriteId; + /*0x42*/ u8 reelTimeBrokenMachineSpriteId; + /*0x43*/ u8 reelTimeSmokeSpriteId; /*0x44*/ u8 unk44[5]; - /*0x49*/ u8 unk49[2]; - /*0x49*/ u8 unk4B[3]; - /*0x4E*/ u8 unk4E[2]; - /*0x50*/ u8 reelTimeSprites1[2]; - /*0x52*/ u8 reelTimeSprites2[2]; - /*0x54*/ u8 unk54[4]; + /*0x49*/ u8 reelTimeMachineSpriteIds[2]; + /*0x49*/ u8 reelTimeNumberSpriteIds[3]; + /*0x4E*/ u8 reelTimeShadowSpriteIds[2]; + /*0x50*/ u8 reelTimeBoltSpriteIds[2]; + /*0x52*/ u8 reelTimePikachuAuraSpriteIds[2]; + /*0x54*/ u8 reelTimeDuckSpriteIds[4]; /*0x58*/ u16 win0h; /*0x5a*/ u16 win0v; /*0x5c*/ u16 winIn; @@ -83,15 +192,13 @@ struct SlotMachineEwramStruct /*0x64*/ MainCallback prevMainCb; }; -struct UnkStruct1 +struct DigitalDisplaySprite { - /*0x00*/ u8 unk00; + /*0x00*/ u8 spriteTemplateId; /*0x01*/ u8 unk01; /*0x02*/ s16 unk02; }; -#define SLOTMACHINE_GFX_TILES 233 - static void CB2_SlotMachineSetup(void); static void CB2_SlotMachineLoop(void); static void PlaySlotMachine_Internal(u8 slotMachineIndex, MainCallback cb); @@ -107,8 +214,8 @@ static void SlotMachineSetup_4_0(void); static void SlotMachineSetup_5_0(void); static void SlotMachineSetup_6_0(void); static void SlotMachineSetup_6_1(void); -static void SlotMachineSetup_8_0(void); -static void SlotMachineSetup_9_0(void); +static void SlotMachineSetup_AllocDigDisplayGfx(void); +static void SlotMachineSetup_SetDigDisplayImagePtrs(void); static void SlotMachineSetup_10_0(void); static void SlotMachineSetupGameplayTasks(void); static void GameplayTasks_Slots(void); @@ -119,7 +226,7 @@ static bool8 SlotAction_WaitForUnfade(struct Task *task); static bool8 SlotAction_SetSlotMachineVars(struct Task *task); static bool8 SlotAction3(struct Task *task); static bool8 SlotAction4(struct Task *task); -static bool8 SlotAction_AwaitPlayerInput(struct Task *task); +static bool8 SlotAction_HandleBetInput(struct Task *task); static bool8 SlotAction_PrintYouDontHaveThreeCoins(struct Task *task); static bool8 SlotAction_ExitYouDontHaveThreeCoinsMessage(struct Task *task); static bool8 SlotAction_GivingInformation(struct Task *task); @@ -136,11 +243,11 @@ static bool8 SlotAction18(struct Task *task); static bool8 SlotAction_Loop(struct Task *task); static bool8 SlotAction_NoMatches(struct Task *task); static bool8 SlotAction_PrintQuitTheGame(struct Task *task); -static bool8 SlotAction_SeeIfPlayerQuits(struct Task *task); +static bool8 SlotAction_HandleQuitGameInput(struct Task *task); static bool8 SlotAction_PrintMessage_9999Coins(struct Task *task); -static bool8 SlotAction_ExitMessage_9999Coins(struct Task *task); +static bool8 SlotAction_WaitMessage_9999Coins(struct Task *task); static bool8 SlotAction_PrintMessage_NoMoreCoins(struct Task *task); -static bool8 SlotAction_ExitMessage_NoMoreCoins(struct Task *task); +static bool8 SlotAction_WaitMessage_NoMoreCoins(struct Task *task); static bool8 SlotAction_EndGame(struct Task *task); static bool8 SlotAction_FreeDataStructures(struct Task *task); static void DrawLuckyFlags(void); @@ -208,7 +315,7 @@ static void sub_8103FE8_(u8 taskId); static void GameplayTask_PikaPower(void); static void DisplayPikaPower(u8 pikaPower); static bool8 sub_81040C8(void); -static void sub_81040E8(u8 taskId); +static void Task_CreatePikaPowerBolt(u8 taskId); static void nullsub_68(struct Task *task); static void sub_810411C(struct Task *task); static void sub_8104144(struct Task *task); @@ -231,14 +338,14 @@ static void ReeltimeAction9(struct Task *task); static void ReeltimeAction10(struct Task *task); static void ReeltimeAction11(struct Task *task); static void ReeltimeAction12(struct Task *task); -static void ReeltimeAction13(struct Task *task); -static void ReeltimeAction14(struct Task *task); -static void ReeltimeAction15(struct Task *task); -static void ReeltimeAction16(struct Task *task); -static void ReeltimeAction17(struct Task *task); -static void sub_8104A40(s16 a0, s16 a1); -static void sub_8104A88(s16 a0); -static void OpenInfoBox(u8 a0); +static void ReeltimeAction13(struct Task *); +static void ReeltimeAction14(struct Task *); +static void ReeltimeAction15(struct Task *); +static void ReeltimeAction16(struct Task *); +static void ReeltimeAction17(struct Task *); +static void sub_8104A40(s16, s16); +static void sub_8104A88(s16); +static void OpenInfoBox(u8); static bool8 IsInfoBoxClosed(void); static void RunInfoBoxActions(u8 taskId); static void InfoBox_FadeIn(struct Task *task); @@ -251,40 +358,40 @@ static void InfoBox_812DE14(struct Task *task); static void InfoBox_812DE30(struct Task *task); static void InfoBox_FreeTask(struct Task *task); static void sub_8104C5C(void); -static void sub_8104CAC(u8 arg0); +static void CreateDigitalDisplayScene(u8 arg0); static bool8 sub_8104E18(void); static void nullsub_69(struct Task *task); static void sub_8104E74_(u8 taskId); -static void sub_8104EA8(void); -static void sub_8104F8C(void); -static void sub_8104FF4(s16 x, s16 y, u8 a2, s16 a3); -static void sub_81050C4(void); -static void sub_8105100(void); -static void sub_810514C(void); -static void sub_81051C0(void); -static void sub_8105284_(void); -static void sub_81052EC(void); -static void sub_81053A0(void); +static void CreateReelSymbolSprites(void); +static void CreateCreditPayoutNumberSprites(void); +static void CreateCoinNumberSprite(s16 x, s16 y, u8 a2, s16 a3); +static void CreateReelBackgroundSprite(void); +static void CreateReelTimePikachuSprite(void); +static void DestroyReelTimePikachuSprite(void); +static void CreateReelTimeMachineSprites(void); +static void CreateBrokenReelTimeMachineSprite(void); +static void CreateReelTimeNumberSprites(void); +static void CreateReelTimeShadowSprites(void); static void sub_810545C(void); -static void sub_81054B8(void); -static void sub_8105524(void); -static void sub_8105554(void); -static void CreateReelTimeSprites1(void); +static void DestroyReelTimeMachineSprites(void); +static void DestroyReelTimeShadowSprites(void); +static void DestroyBrokenReelTimeMachineSprite(void); +static void CreateReelTimeBoltSprites(void); static void sub_8105688(s16 a0); -static void sub_81056C0(void); -static void CreateReelTimeSprite2(void); +static void DestroyReelTimeBoltSprites(void); +static void CreateReelTimePikachuAuraSprites(void); static void sub_81057E8(s16 a0); -static void sub_8105804(void); -static void sub_8105854(void); -static void sub_81058A0(void); -static void sub_81058C4(void); -static void sub_81059B8(void); -static void sub_81059E8(void); +static void DestroyReelTimePikachuAuraSprites(void); +static void CreateReelTimeExplosionSprite(void); +static void DestroyReelTimeExplosionSprite(void); +static void CreateReelTimeDuckSprites(void); +static void DestroyReelTimeDuckSprites(void); +static void CreateReelTimeSmokeSprite(void); static bool8 sub_8105ACC(void); -static void sub_8105AEC(void); -static u8 sub_8105B1C(s16 x, s16 y); +static void DestroyReelTimeSmokeSprite(void); +static u8 CreatePikaPowerBoltSprite(s16 x, s16 y); static void sub_8105B88(u8 spriteId); -static u8 sub_8105BF8(u8 templateIdx, void (*callback)(struct Sprite*), s16 x, s16 y, s16 a4); +static u8 CreateDigitalDisplaySprite(u8 templateIdx, void (*callback)(struct Sprite*), s16 x, s16 y, s16 a4); static void sub_81063C0(void); static void sub_8106404(void); static void sub_8106448(void); @@ -294,7 +401,7 @@ static void sub_81065DC(void); static void sub_812F958(void); static void sub_812F968(void); static void LoadSlotMachineWheelOverlay(void); -static u8 sub_8105BB4(u8 templateIdx, u8 cbAndCoordsIdx, s16 a2); +static u8 CreateStdDigitalDisplaySprite(u8 templateIdx, u8 cbAndCoordsIdx, s16 a2); static void sub_8105C64(struct Sprite *sprite); static void sub_8105F54(struct Sprite *sprite); static void sub_8105F9C(struct Sprite *sprite); @@ -314,52 +421,52 @@ static void sub_810639C(void); static void sub_8106364(void); static void sub_8106370(void); static void nullsub_70(void); -static void sub_8104F18(struct Sprite *sprite); -static void sub_810506C(struct Sprite *sprite); -static void sub_8105170(struct Sprite *sprite); -static void sub_810535C(struct Sprite *sprite); -static void sub_810562C(struct Sprite *sprite); -static void sub_8105784(struct Sprite *sprite); -static void sub_8105894(struct Sprite *sprite); -static void sub_810594C(struct Sprite *sprite); -static void sub_8105A38(struct Sprite *sprite); -static void sub_8105B70(struct Sprite *sprite); +static void SpriteCB_ReelSymbol(struct Sprite *sprite); +static void SpriteCB_CoinNumber(struct Sprite *sprite); +static void SpriteCB_ReelTimePikachu(struct Sprite *sprite); +static void SpriteCB_ReelTimeNumbers(struct Sprite *sprite); +static void SpriteCB_ReelTimeBolt(struct Sprite *sprite); +static void SpriteCB_ReelTimePikachuAura(struct Sprite *sprite); +static void SpriteCB_ReelTimeExplosion(struct Sprite *sprite); +static void SpriteCB_ReelTimeDuck(struct Sprite *sprite); +static void SpriteCB_ReelTimeSmoke(struct Sprite *sprite); +static void SpriteCB_PikaPowerBolt(struct Sprite *sprite); // Ewram variables static EWRAM_DATA u16 *sUnknown_0203AAC8 = NULL; static EWRAM_DATA u16 *sSelectedPikaPowerTile = NULL; static EWRAM_DATA u16 *sUnknown_0203AAD0 = NULL; -static EWRAM_DATA u8 *sUnknown_0203AAD4 = NULL; -static EWRAM_DATA u8 *sUnknown_0203AAD8 = NULL; +static EWRAM_DATA u8 *sDigitalDisplayGfxPtr = NULL; +static EWRAM_DATA u8 *sReelTimeGfxPtr = NULL; static EWRAM_DATA u16 *sUnknown_0203AADC = NULL; static EWRAM_DATA u8 *sUnknown_0203AAE0 = NULL; -static EWRAM_DATA struct SpriteFrameImage *sUnknown_0203AAE4 = NULL; -static EWRAM_DATA struct SpriteFrameImage *sUnknown_0203AAE8 = NULL; -static EWRAM_DATA struct SpriteFrameImage *sUnknown_0203AAEC = NULL; -static EWRAM_DATA struct SpriteFrameImage *sUnknown_0203AAF0 = NULL; -static EWRAM_DATA struct SpriteFrameImage *sUnknown_0203AAF4 = NULL; -static EWRAM_DATA struct SpriteFrameImage *sUnknown_0203AAF8 = NULL; -static EWRAM_DATA struct SpriteFrameImage *sUnknown_0203AAFC = NULL; -static EWRAM_DATA struct SpriteFrameImage *sUnknown_0203AB00 = NULL; -static EWRAM_DATA struct SpriteFrameImage *sUnknown_0203AB04 = NULL; -static EWRAM_DATA struct SpriteFrameImage *sUnknown_0203AB08 = NULL; -static EWRAM_DATA struct SpriteFrameImage *sUnknown_0203AB0C = NULL; -static EWRAM_DATA struct SpriteFrameImage *sUnknown_0203AB10 = NULL; -static EWRAM_DATA struct SpriteFrameImage *sUnknown_0203AB14 = NULL; -static EWRAM_DATA struct SpriteFrameImage *sUnknown_0203AB18 = NULL; -static EWRAM_DATA struct SpriteFrameImage *sUnknown_0203AB1C = NULL; -static EWRAM_DATA struct SpriteFrameImage *sUnknown_0203AB20 = NULL; -static EWRAM_DATA struct SpriteFrameImage *sUnknown_0203AB24 = NULL; -static EWRAM_DATA struct SpriteFrameImage *sUnknown_0203AB28 = NULL; +static EWRAM_DATA struct SpriteFrameImage *sImageTable_ReelTimePikachu = NULL; +static EWRAM_DATA struct SpriteFrameImage *sImageTable_ReelTimeMachineAntennae = NULL; +static EWRAM_DATA struct SpriteFrameImage *sImageTable_ReelTimeMachine = NULL; +static EWRAM_DATA struct SpriteFrameImage *sImageTable_BrokenReelTimeMachine = NULL; +static EWRAM_DATA struct SpriteFrameImage *sImageTable_DigitalDisplay_Reel = NULL; +static EWRAM_DATA struct SpriteFrameImage *sImageTable_DigitalDisplay_Time = NULL; +static EWRAM_DATA struct SpriteFrameImage *sImageTable_DigitalDisplay_Insert = NULL; +static EWRAM_DATA struct SpriteFrameImage *sImageTable_DigitalDisplay_Stop = NULL; +static EWRAM_DATA struct SpriteFrameImage *sImageTable_DigitalDisplay_Win = NULL; +static EWRAM_DATA struct SpriteFrameImage *sImageTable_DigitalDisplay_Lose = NULL; +static EWRAM_DATA struct SpriteFrameImage *sImageTable_DigitalDisplay_Bonus = NULL; +static EWRAM_DATA struct SpriteFrameImage *sImageTable_DigitalDisplay_Big = NULL; +static EWRAM_DATA struct SpriteFrameImage *sImageTable_DigitalDisplay_Reg = NULL; +static EWRAM_DATA struct SpriteFrameImage *sImageTable_DigitalDisplay_AButton = NULL; +static EWRAM_DATA struct SpriteFrameImage *sImageTable_DigitalDisplay_Smoke = NULL; +static EWRAM_DATA struct SpriteFrameImage *sImageTable_DigitalDisplay_Number = NULL; +static EWRAM_DATA struct SpriteFrameImage *sImageTable_DigitalDisplay_Pokeball = NULL; +static EWRAM_DATA struct SpriteFrameImage *sImageTable_DigitalDisplay_DPad = NULL; static EWRAM_DATA struct SpriteSheet *sUnknown_0203AB2C = NULL; -static EWRAM_DATA struct SpriteSheet *sUnknown_0203AB30 = NULL; -static EWRAM_DATA struct SlotMachineEwramStruct *sSlotMachine = NULL; +static EWRAM_DATA struct SpriteSheet *sUnknown_0203AB30 = NULL; // Mix of digital display spritesheets and reel spritesheets +static EWRAM_DATA struct SlotMachine *sSlotMachine = NULL; // IWRAM bss -static struct SpriteFrameImage *gUnknown_03001188[26]; +static struct SpriteFrameImage *sImageTables_DigitalDisplay[NUM_DIG_DISPLAY_SPRITES]; // Const rom data. -static const struct UnkStruct1 *const gUnknown_083ED048[]; +static const struct DigitalDisplaySprite *const sDigitalDisplayScenes[]; static const u16 gPalette_83EDE24[]; static const u8 gLuckyRoundProbabilities[][3]; static const u8 gBiasTags[]; @@ -367,14 +474,14 @@ static const u16 gLuckyFlagSettings_Top3[]; static const u16 gLuckyFlagSettings_NotTop3[]; static const s16 gUnknown_083ECE7E[][2]; static const SpriteCallback gUnknown_083ECF0C[]; -static const struct SpriteTemplate *const gUnknown_083EDB5C[]; -static const struct SubspriteTable *const gUnknown_083EDBC4[]; -static const struct SpriteTemplate gSpriteTemplate_83ED6CC; -static const struct SpriteTemplate gSpriteTemplate_83ED564; -static const struct SpriteTemplate gSpriteTemplate_83ED54C; -static const struct SpriteTemplate gSpriteTemplate_83ED534; +static const struct SpriteTemplate *const sSpriteTemplates_DigitalDisplay[NUM_DIG_DISPLAY_SPRITES]; +static const struct SubspriteTable *const sSubspriteTables_DigitalDisplay[NUM_DIG_DISPLAY_SPRITES]; +static const struct SpriteTemplate sSpriteTemplate_PikaPowerBolt; +static const struct SpriteTemplate sSpriteTemplate_ReelTimeSmoke; +static const struct SpriteTemplate sSpriteTemplate_ReelTimeDuck; +static const struct SpriteTemplate sSpriteTemplate_ReelTimeExplosion; static const u8 gUnknown_083ECC58[2]; -static const struct SpriteTemplate gSpriteTemplate_83ED51C; +static const struct SpriteTemplate sSpriteTemplate_ReelTimePikachuAura; static const u16 gProbabilityTable_SkipToReeltimeAction14[]; static const u16 *const gUnknown_083EDE10[]; static const u16 gReelIncrementTable[][2]; @@ -383,20 +490,18 @@ static const u16 gSlotMatchFlags[]; static const u16 gSlotPayouts[]; static const u8 *const gUnknown_083EDCE4; static const u8 *const gUnknown_083EDCDC; -static const u32 gReelTimeGfx[]; +static const u32 sReelTimeGfx[]; static const struct SpriteSheet gSlotMachineSpriteSheets[22]; static const struct SpritePalette gSlotMachineSpritePalettes[]; static const u16 *const gUnknown_083EDE20; static const s16 gInitialReelPositions[][2]; -static const struct BgTemplate gUnknown_085A7424[4]; -static const struct WindowTemplate gUnknown_085A7434[]; static const u8 gLuckyFlagProbabilities_Top3[][6]; static const u8 gLuckyFlagProbabilities_NotTop3[][6]; static const u8 gReeltimeProbabilities_UnluckyGame[][17]; static const u8 gReelTimeProbabilities_LuckyGame[][17]; static const u8 gSym2Match[]; static const u8 gReelTimeTags[]; -static const u8 gReelSymbols[][REEL_NUM_TAGS]; +static const u8 sReelSymbols[NUM_REELS][REEL_NUM_TAGS]; static const u8 *const gUnknown_083EDD08[]; static const u16 *const gUnknown_083EDD1C[]; static const u8 gUnknown_083EDD30[]; @@ -407,25 +512,25 @@ static const u16 *const gUnknown_083EDDAC; static const u16 gReelTimeWindowTilemap[]; static const u16 gUnknown_085A9898[]; static void (*const gUnknown_083ED064[])(void); -static const struct SpriteTemplate gSpriteTemplate_83ED504; -static const struct SpriteTemplate gSpriteTemplate_83ED4EC; -static const struct SpriteTemplate gSpriteTemplate_83ED4D4; -static const struct SpriteTemplate gSpriteTemplate_83ED4BC; -static const struct SpriteTemplate gSpriteTemplate_83ED4A4; -static const struct SpriteTemplate gSpriteTemplate_83ED474; -static const struct SpriteTemplate gSpriteTemplate_83ED48C; -static const struct SpriteTemplate gSpriteTemplate_83ED444; -static const struct SpriteTemplate gSpriteTemplate_83ED42C; -static const struct SpriteTemplate gSpriteTemplate_83ED414; -static const struct SpriteTemplate gSpriteTemplate_83ED45C; +static const struct SpriteTemplate sSpriteTemplate_ReelTimeBolt; +static const struct SpriteTemplate gSpriteTemplate_83ED4EC; // reel time. machine number background? +static const struct SpriteTemplate sSpriteTemplate_ReelTimeShadow; +static const struct SpriteTemplate sSpriteTemplate_ReelTimeNumbers; +static const struct SpriteTemplate sSpriteTemplate_BrokenReelTimeMachine; +static const struct SpriteTemplate sSpriteTemplate_ReelTimeMachineAntennae; +static const struct SpriteTemplate sSpriteTemplate_ReelTimeMachine; +static const struct SpriteTemplate sSpriteTemplate_ReelBackground; +static const struct SpriteTemplate sSpriteTemplate_CoinNumber; +static const struct SpriteTemplate sSpriteTemplate_ReelSymbol; +static const struct SpriteTemplate sSpriteTemplate_ReelTimePikachu; static const struct SubspriteTable gSubspriteTables_83ED7D4[]; -static const struct SubspriteTable gSubspriteTables_83ED7B4[]; -static const struct SubspriteTable gSubspriteTables_83ED78C[]; -static const struct SubspriteTable gSubspriteTables_83ED73C[]; -static const struct SubspriteTable gSubspriteTables_83ED75C[]; -static const struct SubspriteTable gSubspriteTables_83ED704[]; +static const struct SubspriteTable sSubspriteTable_ReelTimeShadow[]; +static const struct SubspriteTable sSubspriteTable_BrokenReelTimeMachine[]; +static const struct SubspriteTable sSubspriteTable_ReelTimeMachineAntennae[]; +static const struct SubspriteTable sSubspriteTable_ReelTimeMachine[]; +static const struct SubspriteTable sSubspriteTable_ReelBackground[]; -static const struct BgTemplate gUnknown_085A7424[] = +static const struct BgTemplate sBgTemplates[] = { { .bg = 0, @@ -465,50 +570,64 @@ static const struct BgTemplate gUnknown_085A7424[] = }, }; -static const struct WindowTemplate gUnknown_085A7434[] = +static const struct WindowTemplate sWindowTemplates[] = { - {0, 2, 15, 0x1B, 4, 15, 0x194}, + { + .bg = 0, + .tilemapLeft = 2, + .tilemapTop = 15, + .width = 27, + .height = 4, + .paletteNum = 15, + .baseBlock = 0x194 + }, DUMMY_WIN_TEMPLATE }; static const struct WindowTemplate gUnknown_085A7444 = { - 0, 1, 3, 20, 13, 13, 1 + .bg = 0, + .tilemapLeft = 1, + .tilemapTop = 3, + .width = 20, + .height = 13, + .paletteNum = 13, + .baseBlock = 1 }; static const u8 sColors_ReeltimeHelp[] = {TEXT_COLOR_LIGHT_GREY, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY}; bool8 (*const SlotActions[])(struct Task *task) = { - SlotAction_UnfadeScreen, // 0 - SlotAction_WaitForUnfade, // 1 - SlotAction_SetSlotMachineVars, // 2 - SlotAction3, // 3 - SlotAction4, // 4 - SlotAction_AwaitPlayerInput, // 5 - SlotAction_PrintYouDontHaveThreeCoins, // 6 - SlotAction_ExitYouDontHaveThreeCoinsMessage, // 7 - SlotAction_GivingInformation, // 8 - SlotAction9, // 9 - SlotAction10, // 10 - SlotAction_SetLuckySpins, // 11 - SlotAction_AwaitReelStop, // 12 - SlotAction_WaitForAllReelsToStop, // 13 - SlotAction_CheckMatches, // 14 - SlotAction_WaitForPayoutToBeAwarded, // 15 - SlotAction_EndOfRoll, // 16 - SlotAction_MatchedPower, // 17 - SlotAction18, // 18 - SlotAction_Loop, // 19 - SlotAction_NoMatches, // 20 - SlotAction_PrintQuitTheGame, // 21 - SlotAction_SeeIfPlayerQuits, // 22 - SlotAction_PrintMessage_9999Coins, // 23 - SlotAction_ExitMessage_9999Coins, // 24 - SlotAction_PrintMessage_NoMoreCoins, // 25 - SlotAction_ExitMessage_NoMoreCoins, // 26 - SlotAction_EndGame, // 27 - SlotAction_FreeDataStructures, // 28 + [SLOT_ACTION_UNFADE] = SlotAction_UnfadeScreen, + [SLOT_ACTION_1] = SlotAction_WaitForUnfade, + [SLOT_ACTION_2] = SlotAction_SetSlotMachineVars, + [SLOT_ACTION_3] = SlotAction3, + [SLOT_ACTION_4] = SlotAction4, + [SLOT_ACTION_BET_INPUT] = SlotAction_HandleBetInput, + [SLOT_ACTION_6] = SlotAction_PrintYouDontHaveThreeCoins, + [SLOT_ACTION_7] = SlotAction_ExitYouDontHaveThreeCoinsMessage, + [SLOT_ACTION_8] = SlotAction_GivingInformation, + [SLOT_ACTION_9] = SlotAction9, + [SLOT_ACTION_10] = SlotAction10, + [SLOT_ACTION_11] = SlotAction_SetLuckySpins, + [SLOT_ACTION_12] = SlotAction_AwaitReelStop, + [SLOT_ACTION_13] = SlotAction_WaitForAllReelsToStop, + [SLOT_ACTION_14] = SlotAction_CheckMatches, + [SLOT_ACTION_15] = SlotAction_WaitForPayoutToBeAwarded, + [SLOT_ACTION_16] = SlotAction_EndOfRoll, + [SLOT_ACTION_17] = SlotAction_MatchedPower, + [SLOT_ACTION_18] = SlotAction18, + [SLOT_ACTION_19] = SlotAction_Loop, + [SLOT_ACTION_20] = SlotAction_NoMatches, + [SLOT_ACTION_ASK_QUIT] = SlotAction_PrintQuitTheGame, + [SLOT_ACTION_HANDLE_QUIT_INPUT] = SlotAction_HandleQuitGameInput, + [SLOT_ACTION_MSG_MAX_COINS] = SlotAction_PrintMessage_9999Coins, + [SLOT_ACTION_WAIT_MSG_MAX_COINS] = SlotAction_WaitMessage_9999Coins, + [SLOT_ACTION_MSG_NO_MORE_COINS] = SlotAction_PrintMessage_NoMoreCoins, + [SLOT_ACTION_WAIT_MSG_NO_MORE_COINS] = SlotAction_WaitMessage_NoMoreCoins, + [SLOT_ACTION_END] = SlotAction_EndGame, + [SLOT_ACTION_FREE] = SlotAction_FreeDataStructures, }; bool8 (*const AwardPayoutActions[])(struct Task *task) = @@ -589,7 +708,7 @@ void (*const gUnknown_083ECBA0[])(struct Task *task, u8 taskId) = const s16 gUnknown_083ECBAC[] = {5, 10, 15}; -void (*const gUnknown_083ECBB4[])(struct Task *task) = +void (*const sPikaPowerBoltFuncs[])(struct Task *task) = { nullsub_68, sub_810411C, @@ -679,12 +798,12 @@ static void Task_FadeToSlotMachine(u8 taskId) } } -void PlaySlotMachine(u8 slotMachineIndex, MainCallback cb) +void PlaySlotMachine(u8 slotMachineIndex, MainCallback exitCallback) { u8 taskId; sSlotMachine = AllocZeroed(sizeof(*sSlotMachine)); - PlaySlotMachine_Internal(slotMachineIndex, cb); + PlaySlotMachine_Internal(slotMachineIndex, exitCallback); taskId = CreateTask(Task_FadeToSlotMachine, 0); gTasks[taskId].tState = 0; } @@ -734,11 +853,11 @@ static void CB2_SlotMachineSetup(void) gMain.state++; break; case 8: - SlotMachineSetup_8_0(); + SlotMachineSetup_AllocDigDisplayGfx(); gMain.state++; break; case 9: - SlotMachineSetup_9_0(); + SlotMachineSetup_SetDigDisplayImagePtrs(); gMain.state++; break; case 10: @@ -771,11 +890,11 @@ static void SlotMachine_VBlankCallback(void) SetGpuReg(REG_OFFSET_WINOUT, sSlotMachine->winOut); } -static void PlaySlotMachine_Internal(u8 slotMachineIndex, MainCallback cb) +static void PlaySlotMachine_Internal(u8 slotMachineIndex, MainCallback exitCallback) { struct Task *task = &gTasks[CreateTask(SlotMachineDummyTask, 0xFF)]; task->data[0] = slotMachineIndex; - StoreWordInTwoHalfwords(task->data + 1, (intptr_t)cb); + StoreWordInTwoHalfwords(task->data + 1, (intptr_t)exitCallback); } @@ -796,8 +915,8 @@ static void SlotMachineSetup_0_0(void) SetHBlankCallback(NULL); CpuFill32(0, (void *)VRAM, VRAM_SIZE); ResetBgsAndClearDma3BusyFlags(0); - InitBgsFromTemplates(0, gUnknown_085A7424, ARRAY_COUNT(gUnknown_085A7424)); - InitWindows(gUnknown_085A7434); + InitBgsFromTemplates(0, sBgTemplates, ARRAY_COUNT(sBgTemplates)); + InitWindows(sWindowTemplates); DeactivateAllTextPrinters(); } @@ -849,8 +968,8 @@ static void SlotMachineSetup_0_1(void) sSlotMachine->luckyGame = Random() & 1; sSlotMachine->luckyFlags = 0; sSlotMachine->matchedSymbols = 0; - sSlotMachine->fairRollsLeft = 0; - sSlotMachine->fairRollsUsed = 0; + sSlotMachine->reelTimeSpinsLeft = 0; + sSlotMachine->reelTimeSpinsUsed = 0; sSlotMachine->coins = GetCoins(); sSlotMachine->payout = 0; sSlotMachine->netCoinLoss = 0; @@ -910,10 +1029,10 @@ static void SlotMachineSetup_5_0(void) static void SlotMachineSetup_10_0(void) { - sub_8104EA8(); - sub_8104F8C(); + CreateReelSymbolSprites(); + CreateCreditPayoutNumberSprites(); sub_8103DC8(); - sub_81050C4(); + CreateReelBackgroundSprite(); } // create gameplay tasks @@ -945,6 +1064,7 @@ static bool8 SlotAction_UnfadeScreen(struct Task *task) return FALSE; } +// SLOT_ACTION_1 static bool8 SlotAction_WaitForUnfade(struct Task *task) { if (!gPaletteFade.active) @@ -952,81 +1072,88 @@ static bool8 SlotAction_WaitForUnfade(struct Task *task) return FALSE; } +// SLOT_ACTION_2 static bool8 SlotAction_SetSlotMachineVars(struct Task *task) { sSlotMachine->payout = 0; sSlotMachine->bet = 0; sSlotMachine->currReel = 0; sSlotMachine->luckyFlags &= (LUCKY_BIAS_777 | LUCKY_BIAS_MIXED_777); - sSlotMachine->state = 4; + sSlotMachine->state = SLOT_ACTION_4; if (sSlotMachine->coins <= 0) { - sSlotMachine->state = 25; + sSlotMachine->state = SLOT_ACTION_MSG_NO_MORE_COINS; } - else if (sSlotMachine->fairRollsLeft) + else if (sSlotMachine->reelTimeSpinsLeft) { - sSlotMachine->state = 3; - sub_8104CAC(4); + sSlotMachine->state = SLOT_ACTION_3; + CreateDigitalDisplayScene(DIG_DISPLAY_REEL_TIME); } return TRUE; } +// SLOT_ACTION_3 static bool8 SlotAction3(struct Task *task) { if (sub_8104E18()) - sSlotMachine->state = 4; + sSlotMachine->state = SLOT_ACTION_4; return FALSE; } +// SLOT_ACTION_4 static bool8 SlotAction4(struct Task *task) { - sub_8104CAC(0); - sSlotMachine->state = 5; + CreateDigitalDisplayScene(DIG_DISPLAY_INSERT_BET); + sSlotMachine->state = SLOT_ACTION_BET_INPUT; if (sSlotMachine->coins >= MAX_COINS) - sSlotMachine->state = 23; + sSlotMachine->state = SLOT_ACTION_MSG_MAX_COINS; return TRUE; } -static bool8 SlotAction_AwaitPlayerInput(struct Task *task) +// SLOT_ACTION_BET_INPUT +static bool8 SlotAction_HandleBetInput(struct Task *task) { s16 i; - if (gMain.newKeys & SELECT_BUTTON) + if (JOY_NEW(SELECT_BUTTON)) { - OpenInfoBox(0); - sSlotMachine->state = 8; + OpenInfoBox(DIG_DISPLAY_INSERT_BET); + sSlotMachine->state = SLOT_ACTION_8; } - else if (gMain.newKeys & R_BUTTON) // bet the max amount + else if (JOY_NEW(R_BUTTON)) // bet the max amount { - if (sSlotMachine->coins - (3 - sSlotMachine->bet) >= 0) + if (sSlotMachine->coins - (MAX_BET - sSlotMachine->bet) >= 0) { - for (i = sSlotMachine->bet; i < 3; i++) + for (i = sSlotMachine->bet; i < MAX_BET; i++) LoadBetTiles(i); - sSlotMachine->coins -= (3 - sSlotMachine->bet); - sSlotMachine->bet = 3; - sSlotMachine->state = 9; + sSlotMachine->coins -= (MAX_BET - sSlotMachine->bet); + sSlotMachine->bet = MAX_BET; + sSlotMachine->state = SLOT_ACTION_9; PlaySE(SE_REGI); } else // you didn't have enough coins to bet the max { - sSlotMachine->state = 6; + sSlotMachine->state = SLOT_ACTION_6; } } else { - if (gMain.newKeys & DPAD_DOWN && sSlotMachine->coins != 0) + // Increase bet + if (JOY_NEW(DPAD_DOWN) && sSlotMachine->coins != 0) { PlaySE(SE_REGI); LoadBetTiles(sSlotMachine->bet); sSlotMachine->coins--; sSlotMachine->bet++; } - // player maxed out or finished betting - if (sSlotMachine->bet >= 3 || (sSlotMachine->bet != 0 && gMain.newKeys & A_BUTTON)) - sSlotMachine->state = 9; - // player wants to quit - if (gMain.newKeys & B_BUTTON) - sSlotMachine->state = 21; + + // Maxed bet or finished betting + if (sSlotMachine->bet >= MAX_BET || (sSlotMachine->bet != 0 && JOY_NEW(A_BUTTON))) + sSlotMachine->state = SLOT_ACTION_9; + + // Quit prompt + if (JOY_NEW(B_BUTTON)) + sSlotMachine->state = SLOT_ACTION_ASK_QUIT; } return FALSE; } @@ -1036,7 +1163,7 @@ static bool8 SlotAction_PrintYouDontHaveThreeCoins(struct Task *task) DrawDialogueFrame(0, 0); AddTextPrinterParameterized(0, 1, gText_YouDontHaveThreeCoins, 0, 1, 0, 0); CopyWindowToVram(0, 3); - sSlotMachine->state = 7; + sSlotMachine->state = SLOT_ACTION_7; return FALSE; } @@ -1045,7 +1172,7 @@ static bool8 SlotAction_ExitYouDontHaveThreeCoinsMessage(struct Task *task) if (gMain.newKeys & (A_BUTTON | B_BUTTON)) { ClearDialogWindowAndFrame(0, TRUE); - sSlotMachine->state = 5; + sSlotMachine->state = SLOT_ACTION_BET_INPUT; } return FALSE; } @@ -1053,7 +1180,7 @@ static bool8 SlotAction_ExitYouDontHaveThreeCoinsMessage(struct Task *task) static bool8 SlotAction_GivingInformation(struct Task *task) { if (IsInfoBoxClosed()) - sSlotMachine->state = 5; + sSlotMachine->state = SLOT_ACTION_BET_INPUT; return FALSE; } @@ -1074,15 +1201,15 @@ static bool8 SlotAction9(struct Task *task) if (sSlotMachine->luckyFlags & LUCKY_BIAS_REELTIME) { BeginReeltime(); - sSlotMachine->state = 10; + sSlotMachine->state = SLOT_ACTION_10; } else { - sub_8104CAC(1); - sSlotMachine->state = 11; + CreateDigitalDisplayScene(DIG_DISPLAY_STOP_REEL); + sSlotMachine->state = SLOT_ACTION_11; } sSlotMachine->reelIncrement = 8; - if (sSlotMachine->fairRollsLeft) + if (sSlotMachine->reelTimeSpinsLeft) sSlotMachine->reelIncrement = SlowReelSpeed(); return FALSE; } @@ -1091,9 +1218,9 @@ static bool8 SlotAction10(struct Task *task) { if (IsFinalTask_RunReelTimeActions()) { - sub_8104CAC(1); + CreateDigitalDisplayScene(DIG_DISPLAY_STOP_REEL); sSlotMachine->luckyFlags &= ~LUCKY_BIAS_REELTIME; - sSlotMachine->state = 11; + sSlotMachine->state = SLOT_ACTION_11; } return FALSE; } @@ -1103,7 +1230,7 @@ static bool8 SlotAction_SetLuckySpins(struct Task *task) if (++task->data[0] >= 30) { SetLuckySpins(); - sSlotMachine->state = 12; + sSlotMachine->state = SLOT_ACTION_12; } return FALSE; } @@ -1115,7 +1242,7 @@ static bool8 SlotAction_AwaitReelStop(struct Task *task) PlaySE(SE_JYUNI); sub_8102E1C(sSlotMachine->currReel); sub_8103C14(sSlotMachine->currReel); - sSlotMachine->state = 13; + sSlotMachine->state = SLOT_ACTION_13; } return FALSE; } @@ -1125,10 +1252,10 @@ static bool8 SlotAction_WaitForAllReelsToStop(struct Task *task) if (!IsSlotReelMoving(sSlotMachine->currReel)) { sSlotMachine->currReel++; - sSlotMachine->state = 12; + sSlotMachine->state = SLOT_ACTION_12; if (sSlotMachine->currReel > 2) { - sSlotMachine->state = 14; + sSlotMachine->state = SLOT_ACTION_14; } return TRUE; } @@ -1140,15 +1267,15 @@ static bool8 SlotAction_CheckMatches(struct Task *task) { sSlotMachine->luckyFlags &= (LUCKY_BIAS_777 | LUCKY_BIAS_MIXED_777); CheckMatch(); - if (sSlotMachine->fairRollsLeft) + if (sSlotMachine->reelTimeSpinsLeft) { - sSlotMachine->fairRollsLeft--; - sSlotMachine->fairRollsUsed++; + sSlotMachine->reelTimeSpinsLeft--; + sSlotMachine->reelTimeSpinsUsed++; } if (sSlotMachine->matchedSymbols) { - sSlotMachine->state = 15; + sSlotMachine->state = SLOT_ACTION_15; AwardPayout(); sub_8103F70(); if ((sSlotMachine->netCoinLoss -= sSlotMachine->payout) < 0) @@ -1158,17 +1285,17 @@ static bool8 SlotAction_CheckMatches(struct Task *task) if (sSlotMachine->matchedSymbols & ((1 << SLOT_MACHINE_MATCHED_777_BLUE) | (1 << SLOT_MACHINE_MATCHED_777_RED))) { PlayFanfare(MUS_ME_B_BIG); - sub_8104CAC(6); + CreateDigitalDisplayScene(DIG_DISPLAY_BONUS_BIG); } else if (sSlotMachine->matchedSymbols & (1 << SLOT_MACHINE_MATCHED_777_MIXED)) { PlayFanfare(MUS_ME_B_BIG); - sub_8104CAC(5); + CreateDigitalDisplayScene(DIG_DISPLAY_BONUS_REG); } else { PlayFanfare(MUS_ME_B_SMALL); - sub_8104CAC(2); + CreateDigitalDisplayScene(DIG_DISPLAY_WIN); } // if you matched 777... if (sSlotMachine->matchedSymbols & ((1 << SLOT_MACHINE_MATCHED_777_MIXED) | (1 << SLOT_MACHINE_MATCHED_777_BLUE) | (1 << SLOT_MACHINE_MATCHED_777_RED))) @@ -1176,8 +1303,8 @@ static bool8 SlotAction_CheckMatches(struct Task *task) sSlotMachine->luckyFlags &= ~(LUCKY_BIAS_777 | LUCKY_BIAS_MIXED_777); if (sSlotMachine->matchedSymbols & ((1 << SLOT_MACHINE_MATCHED_777_BLUE) | (1 << SLOT_MACHINE_MATCHED_777_RED))) { - sSlotMachine->fairRollsLeft = 0; - sSlotMachine->fairRollsUsed = 0; + sSlotMachine->reelTimeSpinsLeft = 0; + sSlotMachine->reelTimeSpinsUsed = 0; sSlotMachine->luckyGame = FALSE; if (sSlotMachine->matchedSymbols & (1 << SLOT_MACHINE_MATCHED_777_BLUE)) // this may be an error, but if you get blue 777, the game becomes lucky @@ -1192,8 +1319,8 @@ static bool8 SlotAction_CheckMatches(struct Task *task) } else { - sub_8104CAC(3); - sSlotMachine->state = 20; + CreateDigitalDisplayScene(DIG_DISPLAY_LOSE); + sSlotMachine->state = SLOT_ACTION_20; if ((sSlotMachine->netCoinLoss += sSlotMachine->bet) > MAX_COINS) sSlotMachine->netCoinLoss = MAX_COINS; } @@ -1203,7 +1330,7 @@ static bool8 SlotAction_CheckMatches(struct Task *task) static bool8 SlotAction_WaitForPayoutToBeAwarded(struct Task *task) { if (IsFinalTask_RunAwardPayoutActions()) - sSlotMachine->state = 16; + sSlotMachine->state = SLOT_ACTION_16; return FALSE; } @@ -1211,20 +1338,20 @@ static bool8 SlotAction_EndOfRoll(struct Task *task) { if (sub_8103FA0()) { - sSlotMachine->state = 19; + sSlotMachine->state = SLOT_ACTION_19; if (sSlotMachine->matchedSymbols & ((1 << SLOT_MACHINE_MATCHED_777_RED) | (1 << SLOT_MACHINE_MATCHED_777_BLUE))) IncrementGameStat(GAME_STAT_SLOT_JACKPOTS); if (sSlotMachine->matchedSymbols & (1 << SLOT_MACHINE_MATCHED_REPLAY)) { sSlotMachine->currReel = 0; - sSlotMachine->state = 9; + sSlotMachine->state = SLOT_ACTION_9; } if (sSlotMachine->matchedSymbols & (1 << SLOT_MACHINE_MATCHED_POWER)) - sSlotMachine->state = 17; - if (sSlotMachine->fairRollsLeft && sSlotMachine->matchedSymbols & (1 << SLOT_MACHINE_MATCHED_REPLAY)) + sSlotMachine->state = SLOT_ACTION_17; + if (sSlotMachine->reelTimeSpinsLeft && sSlotMachine->matchedSymbols & (1 << SLOT_MACHINE_MATCHED_REPLAY)) { - sub_8104CAC(4); - sSlotMachine->state = 18; + CreateDigitalDisplayScene(DIG_DISPLAY_REEL_TIME); + sSlotMachine->state = SLOT_ACTION_18; } } return FALSE; @@ -1234,14 +1361,14 @@ static bool8 SlotAction_MatchedPower(struct Task *task) { if (!sub_81040C8()) { - sSlotMachine->state = 19; + sSlotMachine->state = SLOT_ACTION_19; if (sSlotMachine->matchedSymbols & (1 << SLOT_MACHINE_MATCHED_REPLAY)) { - sSlotMachine->state = 9; - if (sSlotMachine->fairRollsLeft) + sSlotMachine->state = SLOT_ACTION_9; + if (sSlotMachine->reelTimeSpinsLeft) { - sub_8104CAC(4); - sSlotMachine->state = 18; + CreateDigitalDisplayScene(DIG_DISPLAY_REEL_TIME); + sSlotMachine->state = SLOT_ACTION_18; } } } @@ -1252,10 +1379,10 @@ static bool8 SlotAction18(struct Task *task) { if (sub_8104E18()) { - sSlotMachine->state = 19; + sSlotMachine->state = SLOT_ACTION_19; if (sSlotMachine->matchedSymbols & (1 << SLOT_MACHINE_MATCHED_REPLAY)) { - sSlotMachine->state = 9; + sSlotMachine->state = SLOT_ACTION_9; } } return FALSE; @@ -1266,7 +1393,7 @@ static bool8 SlotAction_Loop(struct Task *task) sub_8103D8C(0); sub_8103D8C(1); sub_8103D8C(2); - sSlotMachine->state = 2; + sSlotMachine->state = SLOT_ACTION_2; return FALSE; } @@ -1275,7 +1402,7 @@ static bool8 SlotAction_NoMatches(struct Task *task) if (++task->data[1] > 64) { task->data[1] = 0; - sSlotMachine->state = 19; + sSlotMachine->state = SLOT_ACTION_19; } return FALSE; } @@ -1286,11 +1413,11 @@ static bool8 SlotAction_PrintQuitTheGame(struct Task *task) AddTextPrinterParameterized(0, 1, gText_QuitTheGame, 0, 1, 0, 0); CopyWindowToVram(0, 3); CreateYesNoMenuParameterized(0x15, 7, 0x214, 0x180, 0xE, 0xF); - sSlotMachine->state = 22; + sSlotMachine->state = SLOT_ACTION_HANDLE_QUIT_INPUT; return FALSE; } -static bool8 SlotAction_SeeIfPlayerQuits(struct Task *task) +static bool8 SlotAction_HandleQuitGameInput(struct Task *task) { s8 input = Menu_ProcessInputNoWrapClearOnChoose(); if (input == 0) // player chooses to quit @@ -1300,12 +1427,12 @@ static bool8 SlotAction_SeeIfPlayerQuits(struct Task *task) sub_8103D8C(1); sub_8103D8C(2); sSlotMachine->coins += sSlotMachine->bet; - sSlotMachine->state = 27; + sSlotMachine->state = SLOT_ACTION_END; } else if (input == 1 || input == -1) // player chooses not to quit { ClearDialogWindowAndFrame(0, TRUE); - sSlotMachine->state = 5; + sSlotMachine->state = SLOT_ACTION_BET_INPUT; } return FALSE; } @@ -1315,16 +1442,16 @@ static bool8 SlotAction_PrintMessage_9999Coins(struct Task *task) DrawDialogueFrame(0, 0); AddTextPrinterParameterized(0, 1, gText_YouveGot9999Coins, 0, 1, 0, 0); CopyWindowToVram(0, 3); - sSlotMachine->state = 24; + sSlotMachine->state = SLOT_ACTION_WAIT_MSG_MAX_COINS; return FALSE; } -static bool8 SlotAction_ExitMessage_9999Coins(struct Task *task) +static bool8 SlotAction_WaitMessage_9999Coins(struct Task *task) { if (gMain.newKeys & (A_BUTTON | B_BUTTON)) { ClearDialogWindowAndFrame(0, TRUE); - sSlotMachine->state = 5; + sSlotMachine->state = SLOT_ACTION_BET_INPUT; } return FALSE; } @@ -1334,16 +1461,16 @@ static bool8 SlotAction_PrintMessage_NoMoreCoins(struct Task *task) DrawDialogueFrame(0, 0); AddTextPrinterParameterized(0, 1, gText_YouveRunOutOfCoins, 0, 1, 0, 0); CopyWindowToVram(0, 3); - sSlotMachine->state = 26; + sSlotMachine->state = SLOT_ACTION_WAIT_MSG_NO_MORE_COINS; return FALSE; } -static bool8 SlotAction_ExitMessage_NoMoreCoins(struct Task *task) +static bool8 SlotAction_WaitMessage_NoMoreCoins(struct Task *task) { if (gMain.newKeys & (A_BUTTON | B_BUTTON)) { ClearDialogWindowAndFrame(0, TRUE); - sSlotMachine->state = 27; + sSlotMachine->state = SLOT_ACTION_END; } return FALSE; } @@ -1353,7 +1480,7 @@ static bool8 SlotAction_EndGame(struct Task *task) SetCoins(sSlotMachine->coins); AlertTVOfNewCoinTotal(GetCoins()); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB(0, 0, 0)); - sSlotMachine->state++; + sSlotMachine->state++; // SLOT_ACTION_FREE return FALSE; } @@ -1362,33 +1489,33 @@ static bool8 SlotAction_FreeDataStructures(struct Task *task) if (!gPaletteFade.active) { SetMainCallback2(sSlotMachine->prevMainCb); - FREE_AND_SET_NULL(sUnknown_0203AAF4); - FREE_AND_SET_NULL(sUnknown_0203AAF8); - FREE_AND_SET_NULL(sUnknown_0203AAFC); - FREE_AND_SET_NULL(sUnknown_0203AB00); - FREE_AND_SET_NULL(sUnknown_0203AB04); - FREE_AND_SET_NULL(sUnknown_0203AB08); - FREE_AND_SET_NULL(sUnknown_0203AB0C); - FREE_AND_SET_NULL(sUnknown_0203AB10); - FREE_AND_SET_NULL(sUnknown_0203AB14); - FREE_AND_SET_NULL(sUnknown_0203AB18); - FREE_AND_SET_NULL(sUnknown_0203AB1C); - FREE_AND_SET_NULL(sUnknown_0203AB20); - FREE_AND_SET_NULL(sUnknown_0203AB24); - FREE_AND_SET_NULL(sUnknown_0203AB28); - if (sUnknown_0203AAE4 != NULL) - FREE_AND_SET_NULL(sUnknown_0203AAE4); - if (sUnknown_0203AAE8 != NULL) - FREE_AND_SET_NULL(sUnknown_0203AAE8); - if (sUnknown_0203AAEC != NULL) - FREE_AND_SET_NULL(sUnknown_0203AAEC); - if (sUnknown_0203AAF0 != NULL) - FREE_AND_SET_NULL(sUnknown_0203AAF0); + FREE_AND_SET_NULL(sImageTable_DigitalDisplay_Reel); + FREE_AND_SET_NULL(sImageTable_DigitalDisplay_Time); + FREE_AND_SET_NULL(sImageTable_DigitalDisplay_Insert); + FREE_AND_SET_NULL(sImageTable_DigitalDisplay_Stop); + FREE_AND_SET_NULL(sImageTable_DigitalDisplay_Win); + FREE_AND_SET_NULL(sImageTable_DigitalDisplay_Lose); + FREE_AND_SET_NULL(sImageTable_DigitalDisplay_Bonus); + FREE_AND_SET_NULL(sImageTable_DigitalDisplay_Big); + FREE_AND_SET_NULL(sImageTable_DigitalDisplay_Reg); + FREE_AND_SET_NULL(sImageTable_DigitalDisplay_AButton); + FREE_AND_SET_NULL(sImageTable_DigitalDisplay_Smoke); + FREE_AND_SET_NULL(sImageTable_DigitalDisplay_Number); + FREE_AND_SET_NULL(sImageTable_DigitalDisplay_Pokeball); + FREE_AND_SET_NULL(sImageTable_DigitalDisplay_DPad); + if (sImageTable_ReelTimePikachu != NULL) + FREE_AND_SET_NULL(sImageTable_ReelTimePikachu); + if (sImageTable_ReelTimeMachineAntennae != NULL) + FREE_AND_SET_NULL(sImageTable_ReelTimeMachineAntennae); + if (sImageTable_ReelTimeMachine != NULL) + FREE_AND_SET_NULL(sImageTable_ReelTimeMachine); + if (sImageTable_BrokenReelTimeMachine != NULL) + FREE_AND_SET_NULL(sImageTable_BrokenReelTimeMachine); FREE_AND_SET_NULL(sUnknown_0203AAC8); FREE_AND_SET_NULL(sSelectedPikaPowerTile); FREE_AND_SET_NULL(sUnknown_0203AAD0); - FREE_AND_SET_NULL(sUnknown_0203AAD4); - FREE_AND_SET_NULL(sUnknown_0203AAD8); + FREE_AND_SET_NULL(sDigitalDisplayGfxPtr); + FREE_AND_SET_NULL(sReelTimeGfxPtr); FREE_AND_SET_NULL(sUnknown_0203AADC); FREE_AND_SET_NULL(sUnknown_0203AAE0); FREE_AND_SET_NULL(sUnknown_0203AB2C); @@ -1403,7 +1530,7 @@ static void DrawLuckyFlags(void) { u8 attempts; - if (sSlotMachine->fairRollsLeft == 0) + if (sSlotMachine->reelTimeSpinsLeft == 0) { if (!(sSlotMachine->luckyFlags & (LUCKY_BIAS_777 | LUCKY_BIAS_MIXED_777))) { @@ -1554,7 +1681,7 @@ static u16 SlowReelSpeed(void) if (rval < value) return 4; rval = Random() % 100; - value = gReelIncrementTable[i][1] + gReelTimeBonusIncrementTable[sSlotMachine->fairRollsUsed]; + value = gReelIncrementTable[i][1] + gReelTimeBonusIncrementTable[sSlotMachine->reelTimeSpinsUsed]; if (rval < value) return 2; return 8; @@ -1744,7 +1871,7 @@ static u8 GetTagAtRest(u8 reel, s16 offset) s16 pos = (sSlotMachine->reelPositions[reel] + offset) % REEL_NUM_TAGS; if (pos < 0) pos += REEL_NUM_TAGS; - return gReelSymbols[reel][pos]; + return sReelSymbols[reel][pos]; } // Calculates GetTagAtRest as if the reel were snapped downwards into place. @@ -1860,7 +1987,7 @@ static bool8 SlotReelAction_DecideWhereToStop(struct Task *task) sSlotMachine->winnerRows[task->data[15]] = 0; sSlotMachine->reelExtraTurns[task->data[15]] = 0; - if (sSlotMachine->fairRollsLeft == 0 && (sSlotMachine->luckyFlags == 0 || sSlotMachine->luckySpinsLeft == 0 || !DecideReelTurns_BiasTag[task->data[15]]())) + if (sSlotMachine->reelTimeSpinsLeft == 0 && (sSlotMachine->luckyFlags == 0 || sSlotMachine->luckySpinsLeft == 0 || !DecideReelTurns_BiasTag[task->data[15]]())) { sSlotMachine->luckySpinsLeft = 0; DecideReelTurns_NoBiasTag[task->data[15]](); @@ -2639,7 +2766,7 @@ static void sub_8103FE8_(u8 taskId) static void GameplayTask_PikaPower(void) { - sSlotMachine->unkTaskPointer3E = CreateTask(sub_81040E8, 8); + sSlotMachine->unkTaskPointer3E = CreateTask(Task_CreatePikaPowerBolt, 8); } static void DisplayPikaPower(u8 pikaPower) @@ -2664,9 +2791,9 @@ static bool8 sub_81040C8(void) return gTasks[sSlotMachine->unkTaskPointer3E].data[15]; } -static void sub_81040E8(u8 taskId) +static void Task_CreatePikaPowerBolt(u8 taskId) { - gUnknown_083ECBB4[gTasks[taskId].data[0]](&gTasks[taskId]); + sPikaPowerBoltFuncs[gTasks[taskId].data[0]](&gTasks[taskId]); } static void nullsub_68(struct Task *task) @@ -2675,7 +2802,7 @@ static void nullsub_68(struct Task *task) static void sub_810411C(struct Task *task) { - task->data[2] = sub_8105B1C((task->data[1] << 3) + 20, 20); + task->data[2] = CreatePikaPowerBoltSprite((task->data[1] << 3) + 20, 20); task->data[0]++; } @@ -2726,7 +2853,7 @@ static void ClearTaskDataFields_2orHigher(struct Task *task) { u8 i; - for (i = 2; i < 16; i++) + for (i = 2; i < NUM_TASK_DATA; i++) task->data[i] = 0; } @@ -2783,7 +2910,7 @@ static void RunReeltimeActions(u8 taskId) static void ReeltimeAction0(struct Task *task) { - sSlotMachine->fairRollsLeft = 0; + sSlotMachine->reelTimeSpinsLeft = 0; sSlotMachine->reeltimePixelOffset = 0; sSlotMachine->reeltimePosition = 0; task->data[0]++; @@ -2795,10 +2922,10 @@ static void ReeltimeAction0(struct Task *task) SetGpuReg(REG_OFFSET_BG1HOFS, 0); SetGpuReg(REG_OFFSET_BG1VOFS, 0); sub_8104A40(REG_OFFSET_BG3VOFS, 0); - sub_81051C0(); - sub_8105100(); - sub_81052EC(); - sub_81053A0(); + CreateReelTimeMachineSprites(); + CreateReelTimePikachuSprite(); + CreateReelTimeNumberSprites(); + CreateReelTimeShadowSprites(); sub_810545C(); GetReeltimeDraw(); StopMapMusic(); @@ -2832,8 +2959,8 @@ static void ReeltimeAction2(struct Task *task) if (++task->data[5] >= 60) { task->data[0]++; - CreateReelTimeSprites1(); - CreateReelTimeSprite2(); + CreateReelTimeBoltSprites(); + CreateReelTimePikachuAuraSprites(); } } @@ -2854,7 +2981,7 @@ static void ReeltimeAction3(struct Task *task) r5 = 4 - (task->data[4] >> 8); sub_8105688(sp4[r5]); sub_81057E8(spC[r5]); - StartSpriteAnimIfDifferent(gSprites + sSlotMachine->reelTimeSprite3F, sp0[r5]); + StartSpriteAnimIfDifferent(gSprites + sSlotMachine->reelTimePikachuSpriteId, sp0[r5]); // once speed goes below 256, go to next ReelTimeAction and keep the speed level if (task->data[4] <= 0x100) { @@ -2872,7 +2999,7 @@ static void ReeltimeAction4(struct Task *task) task->data[0]++; task->data[5] = 0; sub_81057E8(2); - StartSpriteAnimIfDifferent(gSprites + sSlotMachine->reelTimeSprite3F, 3); + StartSpriteAnimIfDifferent(gSprites + sSlotMachine->reelTimePikachuSpriteId, 3); } } @@ -2896,7 +3023,7 @@ static void ReeltimeAction6(struct Task *task) task->data[5] = 0; if (sSlotMachine->reelTimeDraw) { - if (sSlotMachine->fairRollsLeft <= task->data[6]) + if (sSlotMachine->reelTimeSpinsLeft <= task->data[6]) task->data[0]++; } else if (task->data[6] > 3) @@ -2937,20 +3064,20 @@ static void ReeltimeAction8(struct Task *task) if (++task->data[4] >= 60) { StopMapMusic(); - sub_81056C0(); - sub_8105804(); + DestroyReelTimeBoltSprites(); + DestroyReelTimePikachuAuraSprites(); task->data[0]++; if(sSlotMachine->reelTimeDraw == 0) { task->data[4] = 0xa0; - StartSpriteAnimIfDifferent(gSprites + sSlotMachine->reelTimeSprite3F, 5); + StartSpriteAnimIfDifferent(gSprites + sSlotMachine->reelTimePikachuSpriteId, 5); PlayFanfare(MUS_ME_ZANNEN); } else { task->data[4] = 0xc0; - StartSpriteAnimIfDifferent(gSprites + sSlotMachine->reelTimeSprite3F, 4); - gSprites[sSlotMachine->reelTimeSprite3F].animCmdIndex = 0; + StartSpriteAnimIfDifferent(gSprites + sSlotMachine->reelTimePikachuSpriteId, 4); + gSprites[sSlotMachine->reelTimePikachuSpriteId].animCmdIndex = 0; if (sSlotMachine->pikaPower) { sub_8104098(); @@ -2983,22 +3110,22 @@ static void ReeltimeAction10(struct Task *task) static void ReeltimeAction11(struct Task *task) { - sSlotMachine->fairRollsUsed = 0; - sSlotMachine->fairRollsLeft = sSlotMachine->reelTimeDraw; + sSlotMachine->reelTimeSpinsUsed = 0; + sSlotMachine->reelTimeSpinsLeft = sSlotMachine->reelTimeDraw; gSpriteCoordOffsetX = 0; SetGpuReg(REG_OFFSET_BG1HOFS, 0); sSlotMachine->reelIncrement = 8; - sub_810514C(); - sub_81054B8(); - sub_8105524(); + DestroyReelTimePikachuSprite(); + DestroyReelTimeMachineSprites(); + DestroyReelTimeShadowSprites(); PlayNewMapMusic(sSlotMachine->backupMapMusic); - if (sSlotMachine->fairRollsLeft == 0) + if (sSlotMachine->reelTimeSpinsLeft == 0) { DestroyTask(FindTaskIdByFunc(RunReeltimeActions)); } else { - sub_8104CAC(4); + CreateDigitalDisplayScene(DIG_DISPLAY_REEL_TIME); task->data[1] = SlowReelSpeed(); task->data[2] = 0; task->data[3] = 0; @@ -3022,12 +3149,12 @@ static void ReeltimeAction13(struct Task *task) static void ReeltimeAction14(struct Task *task) { - sub_81054B8(); - sub_81056C0(); - sub_8105804(); - sub_8105854(); - gSprites[sSlotMachine->unk4E[0]].invisible = TRUE; - StartSpriteAnimIfDifferent(gSprites + sSlotMachine->reelTimeSprite3F, 5); + DestroyReelTimeMachineSprites(); + DestroyReelTimeBoltSprites(); + DestroyReelTimePikachuAuraSprites(); + CreateReelTimeExplosionSprite(); + gSprites[sSlotMachine->reelTimeShadowSpriteIds[0]].invisible = TRUE; + StartSpriteAnimIfDifferent(gSprites + sSlotMachine->reelTimePikachuSpriteId, 5); task->data[0]++; task->data[4] = 4; task->data[5] = 0; @@ -3046,11 +3173,11 @@ static void ReeltimeAction15(struct Task *task) task->data[4] >>= 1; if (task->data[4] == 0) { - sub_81058A0(); - sub_81058C4(); - sub_8105284_(); - sub_81059E8(); - gSprites[sSlotMachine->unk4E[0]].invisible = FALSE; + DestroyReelTimeExplosionSprite(); + CreateReelTimeDuckSprites(); + CreateBrokenReelTimeMachineSprite(); + CreateReelTimeSmokeSprite(); + gSprites[sSlotMachine->reelTimeShadowSpriteIds[0]].invisible = FALSE; task->data[0]++; task->data[5] = 0; } @@ -3063,7 +3190,7 @@ static void ReeltimeAction16(struct Task *task) if (sub_8105ACC()) { task->data[0]++; - sub_8105AEC(); + DestroyReelTimeSmokeSprite(); } } @@ -3072,10 +3199,10 @@ static void ReeltimeAction17(struct Task *task) gSpriteCoordOffsetX = 0; SetGpuReg(REG_OFFSET_BG1HOFS, 0); PlayNewMapMusic(sSlotMachine->backupMapMusic); - sub_810514C(); - sub_8105554(); - sub_8105524(); - sub_81059B8(); + DestroyReelTimePikachuSprite(); + DestroyBrokenReelTimeMachineSprite(); + DestroyReelTimeShadowSprites(); + DestroyReelTimeDuckSprites(); DestroyTask(FindTaskIdByFunc(RunReeltimeActions)); } @@ -3099,10 +3226,10 @@ static void sub_8104A88(s16 a0) } } -static void OpenInfoBox(u8 seemsUnused) +static void OpenInfoBox(u8 digDisplayId) { u8 taskId = CreateTask(RunInfoBoxActions, 1); - gTasks[taskId].data[1] = seemsUnused; + gTasks[taskId].data[1] = digDisplayId; RunInfoBoxActions(taskId); } @@ -3171,7 +3298,7 @@ static void InfoBox_812DE14(struct Task *task) static void InfoBox_812DE30(struct Task *task) { - sub_8104CAC(task->data[1]); + CreateDigitalDisplayScene(task->data[1]); task->data[0]++; } @@ -3195,12 +3322,12 @@ static void sub_8104C5C(void) sSlotMachine->unkTaskPointer3D = i; task = &gTasks[i]; task->data[1] = -1; - for (i = 4; i < 16; i++) + for (i = 4; i < NUM_TASK_DATA; i++) task->data[i] = MAX_SPRITES; } -// possibly initialize each wheel -static void sub_8104CAC(u8 arg0) +// For the panel on the right side of the slot screen +static void CreateDigitalDisplayScene(u8 id) { u8 i; struct Task *task; @@ -3208,29 +3335,29 @@ static void sub_8104CAC(u8 arg0) sub_8104DA4(); task = &gTasks[sSlotMachine->unkTaskPointer3D]; - task->data[1] = arg0; + task->data[1] = id; - for (i = 0; gUnknown_083ED048[arg0][i].unk00 != 0xFF; i++) + for (i = 0; sDigitalDisplayScenes[id][i].spriteTemplateId != 255; i++) { u8 spriteId; - spriteId = sub_8105BB4( - gUnknown_083ED048[arg0][i].unk00, - gUnknown_083ED048[arg0][i].unk01, - gUnknown_083ED048[arg0][i].unk02 + spriteId = CreateStdDigitalDisplaySprite( + sDigitalDisplayScenes[id][i].spriteTemplateId, + sDigitalDisplayScenes[id][i].unk01, + sDigitalDisplayScenes[id][i].unk02 ); task->data[4 + i] = spriteId; } } -static void sub_8104D30(u8 a0, SpriteCallback a1, s16 a2, s16 a3, s16 a4) +static void sub_8104D30(u8 templateIdx, SpriteCallback a1, s16 a2, s16 a3, s16 a4) { u8 i; struct Task *task = &gTasks[sSlotMachine->unkTaskPointer3D]; - for (i = 4; i < 16; i++) + for (i = 4; i < NUM_TASK_DATA; i++) { if (task->data[i] == MAX_SPRITES) { - task->data[i] = sub_8105BF8(a0, a1, a2, a3, a4); + task->data[i] = CreateDigitalDisplaySprite(templateIdx, a1, a2, a3, a4); break; } } @@ -3242,7 +3369,7 @@ static void sub_8104DA4(void) struct Task *task = &gTasks[sSlotMachine->unkTaskPointer3D]; if ((u16)task->data[1] != 0xFFFF) gUnknown_083ED064[task->data[1]](); - for (i = 4; i < 16; i++) + for (i = 4; i < NUM_TASK_DATA; i++) { if (task->data[i] != MAX_SPRITES) { @@ -3256,7 +3383,7 @@ static bool8 sub_8104E18(void) { u8 i; struct Task *task = &gTasks[sSlotMachine->unkTaskPointer3D]; - for (i = 4; i < 16; i++) + for (i = 4; i < NUM_TASK_DATA; i++) { if (task->data[i] != MAX_SPRITES) { @@ -3276,7 +3403,7 @@ static void nullsub_69(struct Task *task) { } -static void sub_8104EA8(void) +static void CreateReelSymbolSprites(void) { s16 i; s16 j; @@ -3285,7 +3412,7 @@ static void sub_8104EA8(void) { for (j = 0; j < 120; j += 24) { - struct Sprite *sprite = gSprites + CreateSprite(&gSpriteTemplate_83ED414, x, 0, 14); + struct Sprite *sprite = gSprites + CreateSprite(&sSpriteTemplate_ReelSymbol, x, 0, 14); sprite->oam.priority = 3; sprite->data[0] = i; sprite->data[1] = j; @@ -3294,7 +3421,7 @@ static void sub_8104EA8(void) } } -static void sub_8104F18(struct Sprite *sprite) +static void SpriteCB_ReelSymbol(struct Sprite *sprite) { sprite->data[2] = sSlotMachine->reelPixelOffsets[sprite->data[0]] + sprite->data[1]; sprite->data[2] %= 120; @@ -3303,28 +3430,31 @@ static void sub_8104F18(struct Sprite *sprite) SetSpriteSheetFrameTileNum(sprite); } -static void sub_8104F8C(void) +static void CreateCreditPayoutNumberSprites(void) { s16 i; s16 x; + // Credit number sprite for (x = 203, i = 1; i <= MAX_COINS; i *= 10, x -= 7) - sub_8104FF4(x, 23, 0, i); + CreateCoinNumberSprite(x, 23, FALSE, i); + + // Payout number sprite for (x = 235, i = 1; i <= MAX_COINS; i *= 10, x -= 7) - sub_8104FF4(x, 23, 1, i); + CreateCoinNumberSprite(x, 23, TRUE, i); } -static void sub_8104FF4(s16 x, s16 y, u8 a2, s16 a3) +static void CreateCoinNumberSprite(s16 x, s16 y, bool8 isPayout, s16 a3) { - struct Sprite *sprite = gSprites + CreateSprite(&gSpriteTemplate_83ED42C, x, y, 13); + struct Sprite *sprite = gSprites + CreateSprite(&sSpriteTemplate_CoinNumber, x, y, 13); sprite->oam.priority = 2; - sprite->data[0] = a2; + sprite->data[0] = isPayout; sprite->data[1] = a3; sprite->data[2] = a3 * 10; sprite->data[3] = -1; } -static void sub_810506C(struct Sprite *sprite) +static void SpriteCB_CoinNumber(struct Sprite *sprite) { u16 tag = sSlotMachine->coins; if (sprite->data[0]) @@ -3340,47 +3470,47 @@ static void sub_810506C(struct Sprite *sprite) } } -static void sub_81050C4(void) +static void CreateReelBackgroundSprite(void) { - u8 spriteId = CreateSprite(&gSpriteTemplate_83ED444, 0x58, 0x48, 15); + u8 spriteId = CreateSprite(&sSpriteTemplate_ReelBackground, 0x58, 0x48, 15); gSprites[spriteId].oam.priority = 3; - SetSubspriteTables(gSprites + spriteId, gSubspriteTables_83ED704); + SetSubspriteTables(gSprites + spriteId, sSubspriteTable_ReelBackground); } -static void sub_8105100(void) +static void CreateReelTimePikachuSprite(void) { struct SpriteTemplate spriteTemplate; u8 spriteId; - if (sUnknown_0203AAE4 == NULL) - sUnknown_0203AAE4 = AllocZeroed(sizeof(struct SpriteFrameImage) * 5); + if (sImageTable_ReelTimePikachu == NULL) + sImageTable_ReelTimePikachu = AllocZeroed(sizeof(struct SpriteFrameImage) * 5); - sUnknown_0203AAE4[0].data = sUnknown_0203AAD8 + (0 * 0x800); - sUnknown_0203AAE4[0].size = 0x800; - sUnknown_0203AAE4[1].data = sUnknown_0203AAD8 + (1 * 0x800); - sUnknown_0203AAE4[1].size = 0x800; - sUnknown_0203AAE4[2].data = sUnknown_0203AAD8 + (2 * 0x800); - sUnknown_0203AAE4[2].size = 0x800; - sUnknown_0203AAE4[3].data = sUnknown_0203AAD8 + (3 * 0x800); - sUnknown_0203AAE4[3].size = 0x800; - sUnknown_0203AAE4[4].data = sUnknown_0203AAD8 + (4 * 0x800); - sUnknown_0203AAE4[4].size = 0x800; + sImageTable_ReelTimePikachu[0].data = sReelTimeGfxPtr + (0 * 0x800); + sImageTable_ReelTimePikachu[0].size = 0x800; + sImageTable_ReelTimePikachu[1].data = sReelTimeGfxPtr + (1 * 0x800); + sImageTable_ReelTimePikachu[1].size = 0x800; + sImageTable_ReelTimePikachu[2].data = sReelTimeGfxPtr + (2 * 0x800); + sImageTable_ReelTimePikachu[2].size = 0x800; + sImageTable_ReelTimePikachu[3].data = sReelTimeGfxPtr + (3 * 0x800); + sImageTable_ReelTimePikachu[3].size = 0x800; + sImageTable_ReelTimePikachu[4].data = sReelTimeGfxPtr + (4 * 0x800); + sImageTable_ReelTimePikachu[4].size = 0x800; - spriteTemplate = gSpriteTemplate_83ED45C; - spriteTemplate.images = sUnknown_0203AAE4; + spriteTemplate = sSpriteTemplate_ReelTimePikachu; + spriteTemplate.images = sImageTable_ReelTimePikachu; spriteId = CreateSprite(&spriteTemplate, 280, 80, 1); gSprites[spriteId].oam.priority = 1; gSprites[spriteId].coordOffsetEnabled = TRUE; - sSlotMachine->reelTimeSprite3F = spriteId; + sSlotMachine->reelTimePikachuSpriteId = spriteId; } -static void sub_810514C(void) +static void DestroyReelTimePikachuSprite(void) { - DestroySprite(gSprites + sSlotMachine->reelTimeSprite3F); - if (sUnknown_0203AAE4 != NULL) - FREE_AND_SET_NULL(sUnknown_0203AAE4); + DestroySprite(gSprites + sSlotMachine->reelTimePikachuSpriteId); + if (sImageTable_ReelTimePikachu != NULL) + FREE_AND_SET_NULL(sImageTable_ReelTimePikachu); } -static void sub_8105170(struct Sprite *sprite) +static void SpriteCB_ReelTimePikachu(struct Sprite *sprite) { sprite->pos2.y = sprite->pos2.x = 0; if (sprite->animNum == 4) @@ -3391,78 +3521,78 @@ static void sub_8105170(struct Sprite *sprite) } } -static void sub_81051C0(void) +static void CreateReelTimeMachineSprites(void) { struct SpriteTemplate spriteTemplate; u8 spriteId; struct Sprite *sprite; - if (sUnknown_0203AAE8 == NULL) - sUnknown_0203AAE8 = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); + if (sImageTable_ReelTimeMachineAntennae == NULL) + sImageTable_ReelTimeMachineAntennae = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); - sUnknown_0203AAE8[0].data = sUnknown_0203AAD8 + 0x2800; - sUnknown_0203AAE8[0].size = 0x300; - spriteTemplate = gSpriteTemplate_83ED474; - spriteTemplate.images = sUnknown_0203AAE8; + sImageTable_ReelTimeMachineAntennae[0].data = sReelTimeGfxPtr + 0x2800; + sImageTable_ReelTimeMachineAntennae[0].size = 0x300; + spriteTemplate = sSpriteTemplate_ReelTimeMachineAntennae; + spriteTemplate.images = sImageTable_ReelTimeMachineAntennae; spriteId = CreateSprite(&spriteTemplate, 368, 52, 7); sprite = &gSprites[spriteId]; sprite->oam.priority = 1; sprite->coordOffsetEnabled = TRUE; - SetSubspriteTables(sprite, gSubspriteTables_83ED73C); - sSlotMachine->unk49[0] = spriteId; + SetSubspriteTables(sprite, sSubspriteTable_ReelTimeMachineAntennae); + sSlotMachine->reelTimeMachineSpriteIds[0] = spriteId; - if (sUnknown_0203AAEC == NULL) - sUnknown_0203AAEC = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); + if (sImageTable_ReelTimeMachine == NULL) + sImageTable_ReelTimeMachine = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); - sUnknown_0203AAEC[0].data = sUnknown_0203AAD8 + 0x2800 + 0x300; - sUnknown_0203AAEC[0].size = 0x500; - spriteTemplate = gSpriteTemplate_83ED48C; - spriteTemplate.images = sUnknown_0203AAEC; + sImageTable_ReelTimeMachine[0].data = sReelTimeGfxPtr + 0x2800 + 0x300; + sImageTable_ReelTimeMachine[0].size = 0x500; + spriteTemplate = sSpriteTemplate_ReelTimeMachine; + spriteTemplate.images = sImageTable_ReelTimeMachine; spriteId = CreateSprite(&spriteTemplate, 368, 84, 7); sprite = &gSprites[spriteId]; sprite->oam.priority = 1; sprite->coordOffsetEnabled = TRUE; - SetSubspriteTables(sprite, gSubspriteTables_83ED75C); - sSlotMachine->unk49[1] = spriteId; + SetSubspriteTables(sprite, sSubspriteTable_ReelTimeMachine); + sSlotMachine->reelTimeMachineSpriteIds[1] = spriteId; } -static void sub_8105284_(void) +static void CreateBrokenReelTimeMachineSprite(void) { struct SpriteTemplate spriteTemplate; u8 spriteId; struct Sprite *sprite; - if (sUnknown_0203AAF0 == NULL) - sUnknown_0203AAF0 = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); + if (sImageTable_BrokenReelTimeMachine == NULL) + sImageTable_BrokenReelTimeMachine = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); - sUnknown_0203AAF0[0].data = sUnknown_0203AAD8 + 0x3000; - sUnknown_0203AAF0[0].size = 0x600; - spriteTemplate = gSpriteTemplate_83ED4A4; - spriteTemplate.images = sUnknown_0203AAF0; + sImageTable_BrokenReelTimeMachine[0].data = sReelTimeGfxPtr + 0x3000; + sImageTable_BrokenReelTimeMachine[0].size = 0x600; + spriteTemplate = sSpriteTemplate_BrokenReelTimeMachine; + spriteTemplate.images = sImageTable_BrokenReelTimeMachine; spriteId = CreateSprite(&spriteTemplate, 0xa8 - gSpriteCoordOffsetX, 0x50, 7); sprite = &gSprites[spriteId]; sprite->oam.priority = 1; sprite->coordOffsetEnabled = TRUE; - SetSubspriteTables(sprite, gSubspriteTables_83ED78C); - sSlotMachine->unk42 = spriteId; + SetSubspriteTables(sprite, sSubspriteTable_BrokenReelTimeMachine); + sSlotMachine->reelTimeBrokenMachineSpriteId = spriteId; } -static void sub_81052EC(void) +static void CreateReelTimeNumberSprites(void) { u8 i; s16 r5; - for (i = 0, r5 = 0; i < 3; i++, r5 += 20) + for (i = 0, r5 = 0; i < ARRAY_COUNT(sSlotMachine->reelTimeNumberSpriteIds); i++, r5 += 20) { - u8 spriteId = CreateSprite(&gSpriteTemplate_83ED4BC, 0x170, 0, 10); + u8 spriteId = CreateSprite(&sSpriteTemplate_ReelTimeNumbers, 0x170, 0, 10); struct Sprite *sprite = &gSprites[spriteId]; sprite->oam.priority = 1; sprite->coordOffsetEnabled = TRUE; sprite->data[7] = r5; - sSlotMachine->unk4B[i] = spriteId; + sSlotMachine->reelTimeNumberSpriteIds[i] = spriteId; } } -static void sub_810535C(struct Sprite *sprite) +static void SpriteCB_ReelTimeNumbers(struct Sprite *sprite) { s16 r0 = (u16)(sSlotMachine->reeltimePixelOffset + sprite->data[7]); r0 %= 40; @@ -3470,21 +3600,21 @@ static void sub_810535C(struct Sprite *sprite) StartSpriteAnimIfDifferent(sprite, GetNearbyReelTimeTag(r0 / 20)); } -static void sub_81053A0(void) +static void CreateReelTimeShadowSprites(void) { - u8 spriteId = CreateSprite(&gSpriteTemplate_83ED4D4, 0x170, 0x64, 9); + u8 spriteId = CreateSprite(&sSpriteTemplate_ReelTimeShadow, 0x170, 0x64, 9); struct Sprite *sprite = &gSprites[spriteId]; sprite->coordOffsetEnabled = TRUE; sprite->oam.priority = 1; - SetSubspriteTables(sprite, gSubspriteTables_83ED7B4); - sSlotMachine->unk4E[0] = spriteId; + SetSubspriteTables(sprite, sSubspriteTable_ReelTimeShadow); + sSlotMachine->reelTimeShadowSpriteIds[0] = spriteId; - spriteId = CreateSprite(&gSpriteTemplate_83ED4D4, 0x120, 0x68, 4); + spriteId = CreateSprite(&sSpriteTemplate_ReelTimeShadow, 0x120, 0x68, 4); sprite = &gSprites[spriteId]; sprite->coordOffsetEnabled = TRUE; sprite->oam.priority = 1; - SetSubspriteTables(sprite, gSubspriteTables_83ED7B4); - sSlotMachine->unk4E[1] = spriteId; + SetSubspriteTables(sprite, sSubspriteTable_ReelTimeShadow); + sSlotMachine->reelTimeShadowSpriteIds[1] = spriteId; } static void sub_810545C(void) @@ -3497,61 +3627,60 @@ static void sub_810545C(void) sSlotMachine->unk40 = spriteId; } -static void sub_81054B8(void) +static void DestroyReelTimeMachineSprites(void) { u8 i; DestroySprite(&gSprites[sSlotMachine->unk40]); - for (i = 0; i < 2; i++) - DestroySprite(&gSprites[sSlotMachine->unk49[i]]); + for (i = 0; i < ARRAY_COUNT(sSlotMachine->reelTimeMachineSpriteIds); i++) + DestroySprite(&gSprites[sSlotMachine->reelTimeMachineSpriteIds[i]]); - if (sUnknown_0203AAE8 != NULL) - FREE_AND_SET_NULL(sUnknown_0203AAE8); - if (sUnknown_0203AAEC != NULL) - FREE_AND_SET_NULL(sUnknown_0203AAEC); + if (sImageTable_ReelTimeMachineAntennae != NULL) + FREE_AND_SET_NULL(sImageTable_ReelTimeMachineAntennae); + if (sImageTable_ReelTimeMachine != NULL) + FREE_AND_SET_NULL(sImageTable_ReelTimeMachine); - for (i = 0; i < 3; i++) - DestroySprite(&gSprites[sSlotMachine->unk4B[i]]); + for (i = 0; i < ARRAY_COUNT(sSlotMachine->reelTimeNumberSpriteIds); i++) + DestroySprite(&gSprites[sSlotMachine->reelTimeNumberSpriteIds[i]]); } -static void sub_8105524(void) +static void DestroyReelTimeShadowSprites(void) { u8 i; - for (i = 0; i < 2; i++) - DestroySprite(&gSprites[sSlotMachine->unk4E[i]]); + for (i = 0; i < ARRAY_COUNT(sSlotMachine->reelTimeShadowSpriteIds); i++) + DestroySprite(&gSprites[sSlotMachine->reelTimeShadowSpriteIds[i]]); } -static void sub_8105554(void) +static void DestroyBrokenReelTimeMachineSprite(void) { - DestroySprite(&gSprites[sSlotMachine->unk42]); - if (sUnknown_0203AAF0 != NULL) - FREE_AND_SET_NULL(sUnknown_0203AAF0); + DestroySprite(&gSprites[sSlotMachine->reelTimeBrokenMachineSpriteId]); + if (sImageTable_BrokenReelTimeMachine != NULL) + FREE_AND_SET_NULL(sImageTable_BrokenReelTimeMachine); } -// TODO: check if this is true -static void CreateReelTimeSprites1(void) +static void CreateReelTimeBoltSprites(void) { - u8 spriteId = CreateSprite(&gSpriteTemplate_83ED504, 0x98, 0x20, 5); + u8 spriteId = CreateSprite(&sSpriteTemplate_ReelTimeBolt, 0x98, 0x20, 5); struct Sprite *sprite = &gSprites[spriteId]; sprite->oam.priority = 1; sprite->hFlip = TRUE; - sSlotMachine->reelTimeSprites1[0] = spriteId; + sSlotMachine->reelTimeBoltSpriteIds[0] = spriteId; sprite->data[0] = 8; sprite->data[1] = -1; sprite->data[2] = -1; sprite->data[7] = 0x20; - spriteId = CreateSprite(&gSpriteTemplate_83ED504, 0xb8, 0x20, 5); + spriteId = CreateSprite(&sSpriteTemplate_ReelTimeBolt, 0xb8, 0x20, 5); sprite = &gSprites[spriteId]; sprite->oam.priority = 1; - sSlotMachine->reelTimeSprites1[1] = spriteId; + sSlotMachine->reelTimeBoltSpriteIds[1] = spriteId; sprite->data[1] = 1; sprite->data[2] = -1; sprite->data[7] = 0x20; } -static void sub_810562C(struct Sprite *sprite) +static void SpriteCB_ReelTimeBolt(struct Sprite *sprite) { if (sprite->data[0] != 0) { @@ -3575,35 +3704,37 @@ static void sub_810562C(struct Sprite *sprite) static void sub_8105688(s16 a0) { - gSprites[sSlotMachine->reelTimeSprites1[0]].data[7] = a0; - gSprites[sSlotMachine->reelTimeSprites1[1]].data[7] = a0; + gSprites[sSlotMachine->reelTimeBoltSpriteIds[0]].data[7] = a0; + gSprites[sSlotMachine->reelTimeBoltSpriteIds[1]].data[7] = a0; } -static void sub_81056C0(void) +static void DestroyReelTimeBoltSprites(void) { u8 i; - for (i = 0; i < 2; i++) - DestroySprite(&gSprites[sSlotMachine->reelTimeSprites1[i]]); + for (i = 0; i < ARRAY_COUNT(sSlotMachine->reelTimeBoltSpriteIds); i++) + DestroySprite(&gSprites[sSlotMachine->reelTimeBoltSpriteIds[i]]); } -static void CreateReelTimeSprite2(void) +static void CreateReelTimePikachuAuraSprites(void) { - u8 spriteId = CreateSprite(&gSpriteTemplate_83ED51C, 0x48, 0x50, 3); + // Left half of electricity orb + u8 spriteId = CreateSprite(&sSpriteTemplate_ReelTimePikachuAura, 0x48, 0x50, 3); gSprites[spriteId].oam.priority = 1; gSprites[spriteId].data[0] = 1; gSprites[spriteId].data[5] = 0; gSprites[spriteId].data[6] = 16; gSprites[spriteId].data[7] = 8; - sSlotMachine->reelTimeSprites2[0] = spriteId; + sSlotMachine->reelTimePikachuAuraSpriteIds[0] = spriteId; - spriteId = CreateSprite(&gSpriteTemplate_83ED51C, 0x68, 0x50, 3); + // Right half + spriteId = CreateSprite(&sSpriteTemplate_ReelTimePikachuAura, 0x68, 0x50, 3); gSprites[spriteId].oam.priority = 1; gSprites[spriteId].hFlip = TRUE; - sSlotMachine->reelTimeSprites2[1] = spriteId; + sSlotMachine->reelTimePikachuAuraSpriteIds[1] = spriteId; } -static void sub_8105784(struct Sprite *sprite) +static void SpriteCB_ReelTimePikachuAura(struct Sprite *sprite) { u8 sp[] = {16, 0}; if (sprite->data[0] && --sprite->data[6] <= 0) @@ -3617,50 +3748,51 @@ static void sub_8105784(struct Sprite *sprite) static void sub_81057E8(s16 a0) { - gSprites[sSlotMachine->reelTimeSprites2[0]].data[7] = a0; + gSprites[sSlotMachine->reelTimePikachuAuraSpriteIds[0]].data[7] = a0; } -static void sub_8105804(void) +static void DestroyReelTimePikachuAuraSprites(void) { u8 i; MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(7) << 4) + 0x103, 0, 0, 0); - for (i = 0; i < 2; i++) - DestroySprite(&gSprites[sSlotMachine->reelTimeSprites2[i]]); + for (i = 0; i < ARRAY_COUNT(sSlotMachine->reelTimePikachuAuraSpriteIds); i++) + DestroySprite(&gSprites[sSlotMachine->reelTimePikachuAuraSpriteIds[i]]); } -static void sub_8105854(void) +static void CreateReelTimeExplosionSprite(void) { - u8 spriteId = CreateSprite(&gSpriteTemplate_83ED534, 0xa8, 0x50, 6); + u8 spriteId = CreateSprite(&sSpriteTemplate_ReelTimeExplosion, 0xa8, 0x50, 6); gSprites[spriteId].oam.priority = 1; - sSlotMachine->unk41 = spriteId; + sSlotMachine->reelTimeExplosionSpriteId = spriteId; } -static void sub_8105894(struct Sprite *sprite) +static void SpriteCB_ReelTimeExplosion(struct Sprite *sprite) { sprite->pos2.y = gSpriteCoordOffsetY; } -static void sub_81058A0(void) +static void DestroyReelTimeExplosionSprite(void) { - DestroySprite(&gSprites[sSlotMachine->unk41]); + DestroySprite(&gSprites[sSlotMachine->reelTimeExplosionSpriteId]); } -static void sub_81058C4(void) +// The "confusion" ducks that circle Pikachu if the Reel Time machine explodes +static void CreateReelTimeDuckSprites(void) { u8 i; u16 sp[] = {0x0, 0x40, 0x80, 0xC0}; - for (i = 0; i < 4; i++) + for (i = 0; i < ARRAY_COUNT(sSlotMachine->reelTimeDuckSpriteIds); i++) { - u8 spriteId = CreateSprite(&gSpriteTemplate_83ED54C, 0x50 - gSpriteCoordOffsetX, 0x44, 0); + u8 spriteId = CreateSprite(&sSpriteTemplate_ReelTimeDuck, 0x50 - gSpriteCoordOffsetX, 0x44, 0); struct Sprite *sprite = &gSprites[spriteId]; sprite->oam.priority = 1; sprite->coordOffsetEnabled = TRUE; sprite->data[0] = sp[i]; - sSlotMachine->unk54[i] = spriteId; + sSlotMachine->reelTimeDuckSpriteIds[i] = spriteId; } } -static void sub_810594C(struct Sprite *sprite) +static void SpriteCB_ReelTimeDuck(struct Sprite *sprite) { sprite->data[0] -= 2; sprite->data[0] &= 0xff; @@ -3678,26 +3810,26 @@ static void sub_810594C(struct Sprite *sprite) } } -static void sub_81059B8(void) +static void DestroyReelTimeDuckSprites(void) { u8 i; - for (i = 0; i < 4; i++) + for (i = 0; i < ARRAY_COUNT(sSlotMachine->reelTimeDuckSpriteIds); i++) { - DestroySprite(&gSprites[sSlotMachine->unk54[i]]); + DestroySprite(&gSprites[sSlotMachine->reelTimeDuckSpriteIds[i]]); } } -static void sub_81059E8(void) +static void CreateReelTimeSmokeSprite(void) { - u8 spriteId = CreateSprite(&gSpriteTemplate_83ED564, 0xa8, 0x3c, 8); + u8 spriteId = CreateSprite(&sSpriteTemplate_ReelTimeSmoke, 0xa8, 0x3c, 8); struct Sprite *sprite = &gSprites[spriteId]; sprite->oam.priority = 1; sprite->oam.affineMode = ST_OAM_AFFINE_DOUBLE; InitSpriteAffineAnim(sprite); - sSlotMachine->unk43 = spriteId; + sSlotMachine->reelTimeSmokeSpriteId = spriteId; } -static void sub_8105A38(struct Sprite *sprite) +static void SpriteCB_ReelTimeSmoke(struct Sprite *sprite) { if (sprite->data[0] == 0) { @@ -3726,19 +3858,19 @@ static void sub_8105A38(struct Sprite *sprite) static u8 sub_8105ACC(void) { - return gSprites[sSlotMachine->unk43].data[7]; + return gSprites[sSlotMachine->reelTimeSmokeSpriteId].data[7]; } -static void sub_8105AEC(void) +static void DestroyReelTimeSmokeSprite(void) { - struct Sprite *sprite = &gSprites[sSlotMachine->unk43]; + struct Sprite *sprite = &gSprites[sSlotMachine->reelTimeSmokeSpriteId]; FreeOamMatrix(sprite->oam.matrixNum); DestroySprite(sprite); } -static u8 sub_8105B1C(s16 x, s16 y) +static u8 CreatePikaPowerBoltSprite(s16 x, s16 y) { - u8 spriteId = CreateSprite(&gSpriteTemplate_83ED6CC, x, y, 12); + u8 spriteId = CreateSprite(&sSpriteTemplate_PikaPowerBolt, x, y, 12); struct Sprite *sprite = &gSprites[spriteId]; sprite->oam.priority = 2; sprite->oam.affineMode = ST_OAM_AFFINE_DOUBLE; @@ -3746,7 +3878,7 @@ static u8 sub_8105B1C(s16 x, s16 y) return spriteId; } -static void sub_8105B70(struct Sprite *sprite) +static void SpriteCB_PikaPowerBolt(struct Sprite *sprite) { if (sprite->affineAnimEnded) sprite->data[7] = 1; @@ -3759,27 +3891,27 @@ static void sub_8105B88(u8 spriteId) DestroySprite(sprite); } -static u8 sub_8105BB4(u8 templateIdx, u8 cbAndCoordsIdx, s16 a2) +static u8 CreateStdDigitalDisplaySprite(u8 templateIdx, u8 cbAndCoordsIdx, s16 a2) { - return sub_8105BF8(templateIdx, gUnknown_083ECF0C[cbAndCoordsIdx], gUnknown_083ECE7E[cbAndCoordsIdx][0], gUnknown_083ECE7E[cbAndCoordsIdx][1], a2); + return CreateDigitalDisplaySprite(templateIdx, gUnknown_083ECF0C[cbAndCoordsIdx], gUnknown_083ECE7E[cbAndCoordsIdx][0], gUnknown_083ECE7E[cbAndCoordsIdx][1], a2); } -static u8 sub_8105BF8(u8 templateIdx, SpriteCallback callback, s16 x, s16 y, s16 a4) +static u8 CreateDigitalDisplaySprite(u8 templateIdx, SpriteCallback callback, s16 x, s16 y, s16 a4) { struct SpriteTemplate spriteTemplate; u8 spriteId; struct Sprite *sprite; - spriteTemplate = *gUnknown_083EDB5C[templateIdx]; - spriteTemplate.images = gUnknown_03001188[templateIdx]; + spriteTemplate = *sSpriteTemplates_DigitalDisplay[templateIdx]; + spriteTemplate.images = sImageTables_DigitalDisplay[templateIdx]; spriteId = CreateSprite(&spriteTemplate, x, y, 16); sprite = &gSprites[spriteId]; sprite->oam.priority = 3; sprite->callback = callback; sprite->data[6] = a4; sprite->data[7] = 1; - if (gUnknown_083EDBC4[templateIdx]) - SetSubspriteTables(sprite, gUnknown_083EDBC4[templateIdx]); + if (sSubspriteTables_DigitalDisplay[templateIdx]) + SetSubspriteTables(sprite, sSubspriteTables_DigitalDisplay[templateIdx]); return spriteId; } @@ -3885,7 +4017,7 @@ static void sub_8105E08(struct Sprite *sprite) switch (sprite->data[0]) { case 0: - StartSpriteAnim(sprite, sSlotMachine->fairRollsLeft - 1); + StartSpriteAnim(sprite, sSlotMachine->reelTimeSpinsLeft - 1); sprite->data[0]++; // fallthrough case 1: @@ -4115,7 +4247,7 @@ static void sub_8106230(struct Sprite *sprite) case 2: if (sSlotMachine->bet == 0) break; - sub_8104D30(5, SpriteCallbackDummy, 0xd0, 0x74, 0); + sub_8104D30(DIG_SPRITE_A_BUTTON, SpriteCallbackDummy, 0xd0, 0x74, 0); sSlotMachine->win0h = 0xc0e0; sSlotMachine->win0v = 0x6880; sSlotMachine->winIn = 0x2f; @@ -4167,10 +4299,10 @@ static void sub_81063C0(void) u8 i; sub_8106404(); - sUnknown_0203AAD4 = Alloc(0x3200); - LZDecompressWram(gSlotMachineReelTime_Gfx, sUnknown_0203AAD4); - sUnknown_0203AAD8 = Alloc(0x3600); - LZDecompressWram(gReelTimeGfx, sUnknown_0203AAD8); + sDigitalDisplayGfxPtr = Alloc(0x3200); + LZDecompressWram(gSlotMachineDigitalDisplay_Gfx, sDigitalDisplayGfxPtr); + sReelTimeGfxPtr = Alloc(0x3600); + LZDecompressWram(sReelTimeGfx, sReelTimeGfxPtr); sUnknown_0203AB30 = AllocZeroed(sizeof(struct SpriteSheet) * ARRAY_COUNT(gSlotMachineSpriteSheets)); for (i = 0; i < ARRAY_COUNT(gSlotMachineSpriteSheets); i++) { @@ -4178,10 +4310,10 @@ static void sub_81063C0(void) sUnknown_0203AB30[i].size = gSlotMachineSpriteSheets[i].size; sUnknown_0203AB30[i].tag = gSlotMachineSpriteSheets[i].tag; } - sUnknown_0203AB30[17].data = sUnknown_0203AAD4 + 0xA00; - sUnknown_0203AB30[18].data = sUnknown_0203AAD4 + 0x1400; - sUnknown_0203AB30[19].data = sUnknown_0203AAD4 + 0x1600; - sUnknown_0203AB30[20].data = sUnknown_0203AAD4 + 0x1900; + sUnknown_0203AB30[17].data = sDigitalDisplayGfxPtr + 0xA00; // STOP + sUnknown_0203AB30[18].data = sDigitalDisplayGfxPtr + 0x1400; // BONUS + sUnknown_0203AB30[19].data = sDigitalDisplayGfxPtr + 0x1600; // BIG + sUnknown_0203AB30[20].data = sDigitalDisplayGfxPtr + 0x1900; // REG LoadSpriteSheets(sUnknown_0203AB30); LoadSpritePalettes(gSlotMachineSpritePalettes); } @@ -4266,110 +4398,110 @@ static void sub_81065DC(void) HideBg(3); } -static void SlotMachineSetup_9_0(void) +static void SlotMachineSetup_SetDigDisplayImagePtrs(void) { - gUnknown_03001188[0] = sUnknown_0203AAF4; - gUnknown_03001188[1] = sUnknown_0203AAF8; - gUnknown_03001188[2] = sUnknown_0203AAFC; - gUnknown_03001188[3] = sUnknown_0203AB04; - gUnknown_03001188[4] = sUnknown_0203AB08; - gUnknown_03001188[5] = sUnknown_0203AB18; - gUnknown_03001188[6] = sUnknown_0203AB1C; - gUnknown_03001188[7] = sUnknown_0203AB20; - gUnknown_03001188[8] = sUnknown_0203AB24; - gUnknown_03001188[9] = sUnknown_0203AB28; - gUnknown_03001188[10] = sUnknown_0203AB00; - gUnknown_03001188[11] = sUnknown_0203AB00; - gUnknown_03001188[12] = sUnknown_0203AB00; - gUnknown_03001188[13] = sUnknown_0203AB00; - gUnknown_03001188[14] = sUnknown_0203AB0C; - gUnknown_03001188[15] = sUnknown_0203AB0C; - gUnknown_03001188[16] = sUnknown_0203AB0C; - gUnknown_03001188[17] = sUnknown_0203AB0C; - gUnknown_03001188[18] = sUnknown_0203AB0C; - gUnknown_03001188[19] = sUnknown_0203AB10; - gUnknown_03001188[20] = sUnknown_0203AB10; - gUnknown_03001188[21] = sUnknown_0203AB10; - gUnknown_03001188[22] = sUnknown_0203AB14; - gUnknown_03001188[23] = sUnknown_0203AB14; - gUnknown_03001188[24] = sUnknown_0203AB14; - gUnknown_03001188[25] = NULL; + sImageTables_DigitalDisplay[DIG_SPRITE_REEL] = sImageTable_DigitalDisplay_Reel; + sImageTables_DigitalDisplay[DIG_SPRITE_TIME] = sImageTable_DigitalDisplay_Time; + sImageTables_DigitalDisplay[DIG_SPRITE_INSERT] = sImageTable_DigitalDisplay_Insert; + sImageTables_DigitalDisplay[DIG_SPRITE_WIN] = sImageTable_DigitalDisplay_Win; + sImageTables_DigitalDisplay[DIG_SPRITE_LOSE] = sImageTable_DigitalDisplay_Lose; + sImageTables_DigitalDisplay[DIG_SPRITE_A_BUTTON] = sImageTable_DigitalDisplay_AButton; + sImageTables_DigitalDisplay[DIG_SPRITE_SMOKE] = sImageTable_DigitalDisplay_Smoke; + sImageTables_DigitalDisplay[DIG_SPRITE_NUMBER] = sImageTable_DigitalDisplay_Number; + sImageTables_DigitalDisplay[DIG_SPRITE_POKE_BALL] = sImageTable_DigitalDisplay_Pokeball; + sImageTables_DigitalDisplay[DIG_SPRITE_D_PAD] = sImageTable_DigitalDisplay_DPad; + sImageTables_DigitalDisplay[DIG_SPRITE_STOP_S] = sImageTable_DigitalDisplay_Stop; + sImageTables_DigitalDisplay[DIG_SPRITE_STOP_T] = sImageTable_DigitalDisplay_Stop; + sImageTables_DigitalDisplay[DIG_SPRITE_STOP_O] = sImageTable_DigitalDisplay_Stop; + sImageTables_DigitalDisplay[DIG_SPRITE_STOP_P] = sImageTable_DigitalDisplay_Stop; + sImageTables_DigitalDisplay[DIG_SPRITE_BONUS_B] = sImageTable_DigitalDisplay_Bonus; + sImageTables_DigitalDisplay[DIG_SPRITE_BONUS_O] = sImageTable_DigitalDisplay_Bonus; + sImageTables_DigitalDisplay[DIG_SPRITE_BONUS_N] = sImageTable_DigitalDisplay_Bonus; + sImageTables_DigitalDisplay[DIG_SPRITE_BONUS_U] = sImageTable_DigitalDisplay_Bonus; + sImageTables_DigitalDisplay[DIG_SPRITE_BONUS_S] = sImageTable_DigitalDisplay_Bonus; + sImageTables_DigitalDisplay[DIG_SPRITE_BIG_B] = sImageTable_DigitalDisplay_Big; + sImageTables_DigitalDisplay[DIG_SPRITE_BIG_I] = sImageTable_DigitalDisplay_Big; + sImageTables_DigitalDisplay[DIG_SPRITE_BIG_G] = sImageTable_DigitalDisplay_Big; + sImageTables_DigitalDisplay[DIG_SPRITE_REG_R] = sImageTable_DigitalDisplay_Reg; + sImageTables_DigitalDisplay[DIG_SPRITE_REG_E] = sImageTable_DigitalDisplay_Reg; + sImageTables_DigitalDisplay[DIG_SPRITE_REG_G] = sImageTable_DigitalDisplay_Reg; + sImageTables_DigitalDisplay[DIG_SPRITE_EMPTY] = NULL; } -static void SlotMachineSetup_8_0(void) +static void SlotMachineSetup_AllocDigDisplayGfx(void) { - sUnknown_0203AAF4 = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); - sUnknown_0203AAF4[0].data = sUnknown_0203AAD4; - sUnknown_0203AAF4[0].size = 0x600; + sImageTable_DigitalDisplay_Reel = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); + sImageTable_DigitalDisplay_Reel[0].data = sDigitalDisplayGfxPtr; + sImageTable_DigitalDisplay_Reel[0].size = 0x600; - sUnknown_0203AAF8 = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); - sUnknown_0203AAF8[0].data = sUnknown_0203AAD4 + 0x600; - sUnknown_0203AAF8[0].size = 0x200; + sImageTable_DigitalDisplay_Time = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); + sImageTable_DigitalDisplay_Time[0].data = sDigitalDisplayGfxPtr + 0x600; + sImageTable_DigitalDisplay_Time[0].size = 0x200; - sUnknown_0203AAFC = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); - sUnknown_0203AAFC[0].data = sUnknown_0203AAD4 + 0x800; - sUnknown_0203AAFC[0].size = 0x200; + sImageTable_DigitalDisplay_Insert = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); + sImageTable_DigitalDisplay_Insert[0].data = sDigitalDisplayGfxPtr + 0x800; + sImageTable_DigitalDisplay_Insert[0].size = 0x200; - sUnknown_0203AB00 = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); - sUnknown_0203AB00[0].data = sUnknown_0203AAD4 + 0xA00; - sUnknown_0203AB00[0].size = 0x200; + sImageTable_DigitalDisplay_Stop = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); + sImageTable_DigitalDisplay_Stop[0].data = sDigitalDisplayGfxPtr + 0xA00; + sImageTable_DigitalDisplay_Stop[0].size = 0x200; - sUnknown_0203AB04 = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); - sUnknown_0203AB04[0].data = sUnknown_0203AAD4 + 0xC00; - sUnknown_0203AB04[0].size = 0x300; + sImageTable_DigitalDisplay_Win = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); + sImageTable_DigitalDisplay_Win[0].data = sDigitalDisplayGfxPtr + 0xC00; + sImageTable_DigitalDisplay_Win[0].size = 0x300; - sUnknown_0203AB08 = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); - sUnknown_0203AB08[0].data = sUnknown_0203AAD4 + 0x1000; - sUnknown_0203AB08[0].size = 0x400; + sImageTable_DigitalDisplay_Lose = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); + sImageTable_DigitalDisplay_Lose[0].data = sDigitalDisplayGfxPtr + 0x1000; + sImageTable_DigitalDisplay_Lose[0].size = 0x400; - sUnknown_0203AB0C = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); - sUnknown_0203AB0C[0].data = sUnknown_0203AAD4 + 0x1400; - sUnknown_0203AB0C[0].size = 0x200; + sImageTable_DigitalDisplay_Bonus = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); + sImageTable_DigitalDisplay_Bonus[0].data = sDigitalDisplayGfxPtr + 0x1400; + sImageTable_DigitalDisplay_Bonus[0].size = 0x200; - sUnknown_0203AB10 = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); - sUnknown_0203AB10[0].data = sUnknown_0203AAD4 + 0x1600; - sUnknown_0203AB10[0].size = 0x300; + sImageTable_DigitalDisplay_Big = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); + sImageTable_DigitalDisplay_Big[0].data = sDigitalDisplayGfxPtr + 0x1600; + sImageTable_DigitalDisplay_Big[0].size = 0x300; - sUnknown_0203AB14 = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); - sUnknown_0203AB14[0].data = sUnknown_0203AAD4 + 0x1900; - sUnknown_0203AB14[0].size = 0x300; + sImageTable_DigitalDisplay_Reg = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); + sImageTable_DigitalDisplay_Reg[0].data = sDigitalDisplayGfxPtr + 0x1900; + sImageTable_DigitalDisplay_Reg[0].size = 0x300; - sUnknown_0203AB18 = AllocZeroed(sizeof(struct SpriteFrameImage) * 2); - sUnknown_0203AB18[0].data = sUnknown_0203AAD4 + 0x1C00; - sUnknown_0203AB18[0].size = 0x200; - sUnknown_0203AB18[1].data = sUnknown_0203AAD4 + 0x1E00; - sUnknown_0203AB18[1].size = 0x200; + sImageTable_DigitalDisplay_AButton = AllocZeroed(sizeof(struct SpriteFrameImage) * 2); + sImageTable_DigitalDisplay_AButton[0].data = sDigitalDisplayGfxPtr + 0x1C00; + sImageTable_DigitalDisplay_AButton[0].size = 0x200; + sImageTable_DigitalDisplay_AButton[1].data = sDigitalDisplayGfxPtr + 0x1E00; + sImageTable_DigitalDisplay_AButton[1].size = 0x200; - sUnknown_0203AB1C = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); - sUnknown_0203AB1C[0].data = sUnknown_0203AAD4 + 0x2000; - sUnknown_0203AB1C[0].size = 640; + sImageTable_DigitalDisplay_Smoke = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); + sImageTable_DigitalDisplay_Smoke[0].data = sDigitalDisplayGfxPtr + 0x2000; + sImageTable_DigitalDisplay_Smoke[0].size = 640; - sUnknown_0203AB20 = AllocZeroed(sizeof(struct SpriteFrameImage) * 5); - sUnknown_0203AB20[0].data = sUnknown_0203AAD4 + 0x2280; - sUnknown_0203AB20[0].size = 0x80; - sUnknown_0203AB20[1].data = sUnknown_0203AAD4 + 0x2300; - sUnknown_0203AB20[1].size = 0x80; - sUnknown_0203AB20[2].data = sUnknown_0203AAD4 + 0x2380; - sUnknown_0203AB20[2].size = 0x80; - sUnknown_0203AB20[3].data = sUnknown_0203AAD4 + 0x2400; - sUnknown_0203AB20[3].size = 0x80; - sUnknown_0203AB20[4].data = sUnknown_0203AAD4 + 0x2480; - sUnknown_0203AB20[4].size = 0x80; + sImageTable_DigitalDisplay_Number = AllocZeroed(sizeof(struct SpriteFrameImage) * 5); + sImageTable_DigitalDisplay_Number[0].data = sDigitalDisplayGfxPtr + 0x2280; + sImageTable_DigitalDisplay_Number[0].size = 0x80; + sImageTable_DigitalDisplay_Number[1].data = sDigitalDisplayGfxPtr + 0x2300; + sImageTable_DigitalDisplay_Number[1].size = 0x80; + sImageTable_DigitalDisplay_Number[2].data = sDigitalDisplayGfxPtr + 0x2380; + sImageTable_DigitalDisplay_Number[2].size = 0x80; + sImageTable_DigitalDisplay_Number[3].data = sDigitalDisplayGfxPtr + 0x2400; + sImageTable_DigitalDisplay_Number[3].size = 0x80; + sImageTable_DigitalDisplay_Number[4].data = sDigitalDisplayGfxPtr + 0x2480; + sImageTable_DigitalDisplay_Number[4].size = 0x80; - sUnknown_0203AB24 = AllocZeroed(sizeof(struct SpriteFrameImage) * 2); - sUnknown_0203AB24[0].data = sUnknown_0203AAD4 + 0x2600; - sUnknown_0203AB24[0].size = 0x480; - sUnknown_0203AB24[1].data = sUnknown_0203AAD4 + 10880; - sUnknown_0203AB24[1].size = 0x480; + sImageTable_DigitalDisplay_Pokeball = AllocZeroed(sizeof(struct SpriteFrameImage) * 2); + sImageTable_DigitalDisplay_Pokeball[0].data = sDigitalDisplayGfxPtr + 0x2600; + sImageTable_DigitalDisplay_Pokeball[0].size = 0x480; + sImageTable_DigitalDisplay_Pokeball[1].data = sDigitalDisplayGfxPtr + 10880; + sImageTable_DigitalDisplay_Pokeball[1].size = 0x480; - sUnknown_0203AB28 = AllocZeroed(sizeof(struct SpriteFrameImage) * 2); - sUnknown_0203AB28[0].data = sUnknown_0203AAD4 + 0x2F00; - sUnknown_0203AB28[0].size = 0x180; - sUnknown_0203AB28[1].data = sUnknown_0203AAD4 + 0x3080; - sUnknown_0203AB28[1].size = 0x180; + sImageTable_DigitalDisplay_DPad = AllocZeroed(sizeof(struct SpriteFrameImage) * 2); + sImageTable_DigitalDisplay_DPad[0].data = sDigitalDisplayGfxPtr + 0x2F00; + sImageTable_DigitalDisplay_DPad[0].size = 0x180; + sImageTable_DigitalDisplay_DPad[1].data = sDigitalDisplayGfxPtr + 0x3080; + sImageTable_DigitalDisplay_DPad[1].size = 0x180; } -static const u8 gReelSymbols[][REEL_NUM_TAGS] = +static const u8 sReelSymbols[NUM_REELS][REEL_NUM_TAGS] = { { SLOT_MACHINE_TAG_7_RED, @@ -4446,7 +4578,7 @@ static const u8 gReelTimeTags[] = { 1, 0, 5, 4, 3, 2 }; -static const s16 gInitialReelPositions[][2] = { +static const s16 gInitialReelPositions[NUM_REELS][2] = { {0, 6}, {0, 10}, {0, 2} @@ -4624,79 +4756,79 @@ static const SpriteCallback gUnknown_083ECF0C[] = { sub_8106230 }; -static const struct UnkStruct1 Unknown_83ECF98[] = { - {25, 34, 0}, - {2, 0, 0}, - {9, 16, 0}, - {255, 0, 0} +static const struct DigitalDisplaySprite sDigitalDisplay_InsertBet[] = { + {DIG_SPRITE_EMPTY, 34, 0}, // Replaced with DIG_SPRITE_A_BUTTON after first bet + {DIG_SPRITE_INSERT, 0, 0}, + {DIG_SPRITE_D_PAD, 16, 0}, + DIG_SPRITE_DUMMY }; -static const struct UnkStruct1 Unknown_83ECFA8[] = { - {10, 1, 0}, - {11, 2, 0}, - {12, 3, 0}, - {13, 4, 0}, - {5, 5, 0}, - {8, 6, 0}, - {255, 0, 0} +static const struct DigitalDisplaySprite sDigitalDisplay_StopReel[] = { + {DIG_SPRITE_STOP_S, 1, 0}, + {DIG_SPRITE_STOP_T, 2, 0}, + {DIG_SPRITE_STOP_O, 3, 0}, + {DIG_SPRITE_STOP_P, 4, 0}, + {DIG_SPRITE_A_BUTTON, 5, 0}, + {DIG_SPRITE_POKE_BALL, 6, 0}, + DIG_SPRITE_DUMMY }; -static const struct UnkStruct1 Unknown_83ECFC4[] = { - {3, 7, 0}, - {8, 17, 0}, - {255, 0, 0} +static const struct DigitalDisplaySprite sDigitalDisplay_Win[] = { + {DIG_SPRITE_WIN, 7, 0}, + {DIG_SPRITE_POKE_BALL, 17, 0}, + DIG_SPRITE_DUMMY }; -static const struct UnkStruct1 Unknown_83ECFD0[] = { - {4, 8, 0}, - {6, 9, 0}, - {6, 10, 1}, - {6, 11, 2}, - {6, 12, 3}, - {255, 0, 0} +static const struct DigitalDisplaySprite sDigitalDisplay_Lose[] = { + {DIG_SPRITE_LOSE, 8, 0}, + {DIG_SPRITE_SMOKE, 9, 0}, + {DIG_SPRITE_SMOKE, 10, 1}, + {DIG_SPRITE_SMOKE, 11, 2}, + {DIG_SPRITE_SMOKE, 12, 3}, + DIG_SPRITE_DUMMY }; -static const struct UnkStruct1 Unknown_83ECFE8[] = { - {0, 13, 0}, - {1, 14, 0}, - {7, 15, 0}, - {255, 0, 0} +static const struct DigitalDisplaySprite sDigitalDisplay_ReelTime[] = { + {DIG_SPRITE_REEL, 13, 0}, + {DIG_SPRITE_TIME, 14, 0}, + {DIG_SPRITE_NUMBER, 15, 0}, // Number of reel time spins left + DIG_SPRITE_DUMMY }; -static const struct UnkStruct1 Unknown_83ECFF8[] = { - {19, 26, 0}, - {20, 27, 1}, - {21, 28, 2}, - {14, 29, 3}, - {15, 30, 4}, - {16, 31, 5}, - {17, 32, 6}, - {18, 33, 7}, - {8, 17, 0}, - {255, 0, 0} +static const struct DigitalDisplaySprite sDigitalDisplay_BonusBig[] = { + {DIG_SPRITE_BIG_B, 26, 0}, + {DIG_SPRITE_BIG_I, 27, 1}, + {DIG_SPRITE_BIG_G, 28, 2}, + {DIG_SPRITE_BONUS_B, 29, 3}, + {DIG_SPRITE_BONUS_O, 30, 4}, + {DIG_SPRITE_BONUS_N, 31, 5}, + {DIG_SPRITE_BONUS_U, 32, 6}, + {DIG_SPRITE_BONUS_S, 33, 7}, + {DIG_SPRITE_POKE_BALL, 17, 0}, + DIG_SPRITE_DUMMY }; -static const struct UnkStruct1 Unknown_83ED020[] = { - {22, 18, 0}, - {23, 19, 1}, - {24, 20, 2}, - {14, 21, 3}, - {15, 22, 4}, - {16, 23, 5}, - {17, 24, 6}, - {18, 25, 7}, - {8, 17, 0}, - {255, 0, 0} +static const struct DigitalDisplaySprite sDigitalDisplay_BonusRegular[] = { + {DIG_SPRITE_REG_R, 18, 0}, + {DIG_SPRITE_REG_E, 19, 1}, + {DIG_SPRITE_REG_G, 20, 2}, + {DIG_SPRITE_BONUS_B, 21, 3}, + {DIG_SPRITE_BONUS_O, 22, 4}, + {DIG_SPRITE_BONUS_N, 23, 5}, + {DIG_SPRITE_BONUS_U, 24, 6}, + {DIG_SPRITE_BONUS_S, 25, 7}, + {DIG_SPRITE_POKE_BALL, 17, 0}, + DIG_SPRITE_DUMMY }; -static const struct UnkStruct1 *const gUnknown_083ED048[] = { - Unknown_83ECF98, - Unknown_83ECFA8, - Unknown_83ECFC4, - Unknown_83ECFD0, - Unknown_83ECFE8, - Unknown_83ED020, - Unknown_83ECFF8 +static const struct DigitalDisplaySprite *const sDigitalDisplayScenes[] = { + [DIG_DISPLAY_INSERT_BET] = sDigitalDisplay_InsertBet, + [DIG_DISPLAY_STOP_REEL] = sDigitalDisplay_StopReel, + [DIG_DISPLAY_WIN] = sDigitalDisplay_Win, + [DIG_DISPLAY_LOSE] = sDigitalDisplay_Lose, + [DIG_DISPLAY_REEL_TIME] = sDigitalDisplay_ReelTime, + [DIG_DISPLAY_BONUS_REG] = sDigitalDisplay_BonusRegular, + [DIG_DISPLAY_BONUS_BIG] = sDigitalDisplay_BonusBig }; static void (*const gUnknown_083ED064[])(void) = { @@ -4709,7 +4841,7 @@ static void (*const gUnknown_083ED064[])(void) = { sub_8106370 }; -static const struct OamData gUnknown_085A7A3C = +static const struct OamData sOam_8x8 = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -4726,7 +4858,7 @@ static const struct OamData gUnknown_085A7A3C = .affineParam = 0, }; -static const struct OamData gUnknown_085A7A44 = +static const struct OamData sOam_8x16 = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -4743,7 +4875,7 @@ static const struct OamData gUnknown_085A7A44 = .affineParam = 0, }; -static const struct OamData gUnknown_085A7A4C = +static const struct OamData sOam_16x16 = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -4760,7 +4892,7 @@ static const struct OamData gUnknown_085A7A4C = .affineParam = 0, }; -static const struct OamData gUnknown_085A7A54 = +static const struct OamData sOam_16x32 = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -4777,7 +4909,7 @@ static const struct OamData gUnknown_085A7A54 = .affineParam = 0, }; -static const struct OamData gUnknown_085A7A5C = +static const struct OamData sOam_32x32 = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -4794,7 +4926,7 @@ static const struct OamData gUnknown_085A7A5C = .affineParam = 0, }; -static const struct OamData gUnknown_085A7A64 = +static const struct OamData sOam_32x64 = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -4811,7 +4943,7 @@ static const struct OamData gUnknown_085A7A64 = .affineParam = 0, }; -static const struct OamData gUnknown_085A7A6C = +static const struct OamData sOam_64x32 = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -4828,7 +4960,7 @@ static const struct OamData gUnknown_085A7A6C = .affineParam = 0, }; -static const struct OamData gUnknown_085A7A74 = +static const struct OamData sOam_64x64 = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -4845,7 +4977,7 @@ static const struct OamData gUnknown_085A7A74 = .affineParam = 0, }; -static const struct SpriteFrameImage gUnknown_085A7A7C[] = +static const struct SpriteFrameImage sImageTable_ReelTimeNumbers[] = { { gSlotMachineReelTimeNumber0, 0x80 }, { gSlotMachineReelTimeNumber1, 0x80 }, @@ -4855,26 +4987,26 @@ static const struct SpriteFrameImage gUnknown_085A7A7C[] = { gSlotMachineReelTimeNumber5, 0x80 }, }; -static const struct SpriteFrameImage gUnknown_085A7AAC[] = { gSlotMachineReelTimeShadow, 0x200 }; +static const struct SpriteFrameImage sImageTable_ReelTimeShadow[] = { gSlotMachineReelTimeShadow, 0x200 }; static const struct SpriteFrameImage gUnknown_085A7AB4[] = { gUnknown_08DD1A18, 0x40 }; -static const struct SpriteFrameImage gUnknown_085A7ABC[] = +static const struct SpriteFrameImage sImageTable_ReelTimeBolt[] = { - { gSlotMachineReelTimeLargeBolt0, 0x100 }, - { gSlotMachineReelTimeLargeBolt1, 0x100 }, + { gSlotMachineReelTimeBolt0, 0x100 }, + { gSlotMachineReelTimeBolt1, 0x100 }, }; -static const struct SpriteFrameImage gUnknown_085A7ACC[] = { gSlotMachineReelTimePikaAura, 0x400 }; +static const struct SpriteFrameImage sImageTable_ReelTimePikachuAura[] = { gSlotMachineReelTimePikaAura, 0x400 }; -static const struct SpriteFrameImage gUnknown_085A7AD4[] = +static const struct SpriteFrameImage sImageTable_ReelTimeExplosion[] = { { gSlotMachineReelTimeExplosion0, 0x200 }, { gSlotMachineReelTimeExplosion1, 0x200 }, }; -static const struct SpriteFrameImage gUnknown_085A7AE4[] = { gSlotMachineReelTimeDuck, 0x20}; -static const struct SpriteFrameImage gUnknown_085A7AEC[] = { gSlotMachineReelTimeSmoke, 0x80}; -static const struct SpriteFrameImage gUnknown_085A7AF4[] = { gSlotMachineReelTimeBolt, 0x20}; +static const struct SpriteFrameImage sImageTable_ReelTimeDuck[] = { gSlotMachineReelTimeDuck, 0x20}; +static const struct SpriteFrameImage sImageTable_ReelTimeSmoke[] = { gSlotMachineReelTimeSmoke, 0x80}; +static const struct SpriteFrameImage sImageTable_PikaPowerBolt[] = { gSlotMachinePikaPowerBolt, 0x20}; static const union AnimCmd gUnknown_085A7AFC[] = { @@ -4888,118 +5020,118 @@ static const union AnimCmd gUnknown_085A7B04[] = ANIMCMD_JUMP(0) }; -static const union AnimCmd gUnknown_085A7B0C[] = +static const union AnimCmd sAnim_ReelTimePikachu_Still[] = { ANIMCMD_FRAME(0, 16), ANIMCMD_END }; -static const union AnimCmd gUnknown_085A7B14[] = +static const union AnimCmd sAnim_ReelTimePikachu_ChargingSlow[] = { ANIMCMD_FRAME(1, 16), ANIMCMD_FRAME(0, 16), ANIMCMD_JUMP(0) }; -static const union AnimCmd gUnknown_085A7B20[] = +static const union AnimCmd sAnim_ReelTimePikachu_ChargingMedium[] = { ANIMCMD_FRAME(1, 8), ANIMCMD_FRAME(0, 8), ANIMCMD_JUMP(0) }; -static const union AnimCmd gUnknown_085A7B2C[] = +static const union AnimCmd sAnim_ReelTimePikachu_ChargingFast[] = { ANIMCMD_FRAME(1, 4), ANIMCMD_FRAME(0, 4), ANIMCMD_JUMP(0) }; -static const union AnimCmd gUnknown_085A7B38[] = +static const union AnimCmd sAnim_ReelTimePikachu_Cheering[] = { ANIMCMD_FRAME(2, 32), ANIMCMD_FRAME(3, 32), ANIMCMD_JUMP(0) }; -static const union AnimCmd gUnknown_085A7B44[] = +static const union AnimCmd sAnim_ReelTimePikachu_FellOver[] = { ANIMCMD_FRAME(4, 1), ANIMCMD_END }; -static const union AnimCmd gUnknown_085A7B4C[] = +static const union AnimCmd sAnim_ReelTimeNumber_0[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END }; -static const union AnimCmd gUnknown_085A7B54[] = +static const union AnimCmd sAnim_ReelTimeNumber_1[] = { ANIMCMD_FRAME(1, 1), ANIMCMD_END }; -static const union AnimCmd gUnknown_085A7B5C[] = +static const union AnimCmd sAnim_ReelTimeNumber_2[] = { ANIMCMD_FRAME(2, 1), ANIMCMD_END }; -static const union AnimCmd gUnknown_085A7B64[] = +static const union AnimCmd sAnim_ReelTimeNumber_3[] = { ANIMCMD_FRAME(3, 1), ANIMCMD_END }; -static const union AnimCmd gUnknown_085A7B6C[] = +static const union AnimCmd sAnim_ReelTimeNumber_4[] = { ANIMCMD_FRAME(4, 1), ANIMCMD_END }; -static const union AnimCmd gUnknown_085A7B74[] = +static const union AnimCmd sAnim_ReelTimeNumber_5[] = { ANIMCMD_FRAME(5, 1), ANIMCMD_END }; -static const union AnimCmd gUnknown_085A7B7C[] = +static const union AnimCmd sAnim_ReelTimeBolt[] = { ANIMCMD_FRAME(0, 4), ANIMCMD_FRAME(1, 4), ANIMCMD_JUMP(0) }; -static const union AnimCmd gUnknown_085A7B88[] = +static const union AnimCmd sAnim_ReelTimeExplosion[] = { ANIMCMD_FRAME(0, 16), ANIMCMD_FRAME(1, 16), ANIMCMD_JUMP(0) }; -static const union AnimCmd gUnknown_085A7B94[] = +static const union AnimCmd sAnim_DigitalDisplay_AButton_Flashing[] = { ANIMCMD_FRAME(0, 30), ANIMCMD_FRAME(1, 30), ANIMCMD_JUMP(0) }; -static const union AnimCmd gUnknown_085A7BA0[] = +static const union AnimCmd sAnim_DigitalDisplay_AButton_Static[] = { ANIMCMD_FRAME(1, 1), ANIMCMD_END }; -static const union AnimCmd gUnknown_085A7BA8[] = +static const union AnimCmd sAnim_DigitalDisplay_DPad_Flashing[] = { ANIMCMD_FRAME(0, 30), ANIMCMD_FRAME(1, 30), ANIMCMD_JUMP(0) }; -static const union AnimCmd gUnknown_085A7BB4[] = +static const union AnimCmd sAnim_DigitalDisplay_Pokeball_Rocking[] = { ANIMCMD_FRAME(0, 16), ANIMCMD_FRAME(1, 16), @@ -5008,37 +5140,37 @@ static const union AnimCmd gUnknown_085A7BB4[] = ANIMCMD_JUMP(0) }; -static const union AnimCmd gUnknown_085A7BC8[] = +static const union AnimCmd sAnim_DigitalDisplay_Pokeball_Static[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END }; -static const union AnimCmd gUnknown_085A7BD0[] = +static const union AnimCmd sAnim_DigitalDisplay_Number_1[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END }; -static const union AnimCmd gUnknown_085A7BD8[] = +static const union AnimCmd sAnim_DigitalDisplay_Number_2[] = { ANIMCMD_FRAME(1, 1), ANIMCMD_END }; -static const union AnimCmd gUnknown_085A7BE0[] = +static const union AnimCmd sAnim_DigitalDisplay_Number_3[] = { ANIMCMD_FRAME(2, 1), ANIMCMD_END }; -static const union AnimCmd gUnknown_085A7BE8[] = +static const union AnimCmd sAnim_DigitalDisplay_Number_4[] = { ANIMCMD_FRAME(3, 1), ANIMCMD_END }; -static const union AnimCmd gUnknown_085A7BF0[] = +static const union AnimCmd sAnim_DigitalDisplay_Number_5[] = { ANIMCMD_FRAME(4, 1), ANIMCMD_END @@ -5054,64 +5186,64 @@ static const union AnimCmd *const gUnknown_085A7BFC[] = gUnknown_085A7B04 }; -static const union AnimCmd *const gUnknown_085A7C00[] = +static const union AnimCmd *const sAnims_ReelTimePikachu[] = { - gUnknown_085A7B0C, - gUnknown_085A7B14, - gUnknown_085A7B20, - gUnknown_085A7B2C, - gUnknown_085A7B38, - gUnknown_085A7B44 + sAnim_ReelTimePikachu_Still, + sAnim_ReelTimePikachu_ChargingSlow, + sAnim_ReelTimePikachu_ChargingMedium, + sAnim_ReelTimePikachu_ChargingFast, + sAnim_ReelTimePikachu_Cheering, + sAnim_ReelTimePikachu_FellOver }; -static const union AnimCmd *const gUnknown_085A7C18[] = +static const union AnimCmd *const sAnims_ReelTimeNumbers[] = { - gUnknown_085A7B4C, - gUnknown_085A7B54, - gUnknown_085A7B5C, - gUnknown_085A7B64, - gUnknown_085A7B6C, - gUnknown_085A7B74 + sAnim_ReelTimeNumber_0, + sAnim_ReelTimeNumber_1, + sAnim_ReelTimeNumber_2, + sAnim_ReelTimeNumber_3, + sAnim_ReelTimeNumber_4, + sAnim_ReelTimeNumber_5 }; -static const union AnimCmd *const gUnknown_085A7C30[] = +static const union AnimCmd *const sAnims_ReelTimeBolt[] = { - gUnknown_085A7B7C + sAnim_ReelTimeBolt }; -static const union AnimCmd *const gUnknown_085A7C34[] = +static const union AnimCmd *const sAnims_ReelTimeExplosion[] = { - gUnknown_085A7B88 + sAnim_ReelTimeExplosion }; -static const union AnimCmd *const gUnknown_085A7C38[] = +static const union AnimCmd *const sAnims_DigitalDisplay_AButton[] = { - gUnknown_085A7B94, - gUnknown_085A7BA0 + sAnim_DigitalDisplay_AButton_Flashing, + sAnim_DigitalDisplay_AButton_Static }; -static const union AnimCmd *const gUnknown_085A7C40[] = +static const union AnimCmd *const sAnims_DigitalDisplay_DPad[] = { - gUnknown_085A7BA8 + sAnim_DigitalDisplay_DPad_Flashing }; -static const union AnimCmd *const gUnknown_085A7C44[] = +static const union AnimCmd *const sAnims_DigitalDisplay_Pokeball[] = { - gUnknown_085A7BB4, - gUnknown_085A7BC8 + sAnim_DigitalDisplay_Pokeball_Rocking, + sAnim_DigitalDisplay_Pokeball_Static }; -static const union AnimCmd *const gUnknown_085A7C4C[] = +static const union AnimCmd *const sAnims_DigitalDisplay_Number[] = { - gUnknown_085A7BD0, - gUnknown_085A7BD8, - gUnknown_085A7BE0, - gUnknown_085A7BE8, - gUnknown_085A7BF0 + sAnim_DigitalDisplay_Number_1, + sAnim_DigitalDisplay_Number_2, + sAnim_DigitalDisplay_Number_3, + sAnim_DigitalDisplay_Number_4, + sAnim_DigitalDisplay_Number_5 }; -static const union AffineAnimCmd gUnknown_085A7C60[] = +static const union AffineAnimCmd sAffineAnim_ReelTimeSmoke[] = { AFFINEANIMCMD_FRAME(16, 16, 0, 0), AFFINEANIMCMD_LOOP(0), @@ -5120,12 +5252,13 @@ static const union AffineAnimCmd gUnknown_085A7C60[] = AFFINEANIMCMD_END }; -static const union AffineAnimCmd *const gUnknown_085A7C88[] = +static const union AffineAnimCmd *const sAffineAnims_ReelTimeSmoke[] = { - gUnknown_085A7C60 + sAffineAnim_ReelTimeSmoke }; -static const union AffineAnimCmd gUnknown_085A7C8C[] = +// Spin as it appears +static const union AffineAnimCmd sAffineAnim_PikaPowerBolt[] = { AFFINEANIMCMD_FRAME(0, 0, 8, 32), AFFINEANIMCMD_FRAME(0, 0, 6, 32), @@ -5139,106 +5272,106 @@ static const union AffineAnimCmd gUnknown_085A7C8C[] = AFFINEANIMCMD_END }; -static const union AffineAnimCmd *const gUnknown_085A7CDC[] = +static const union AffineAnimCmd *const sAffineAnims_PikaPowerBolt[] = { - gUnknown_085A7C8C + sAffineAnim_PikaPowerBolt }; -static const struct SpriteTemplate gSpriteTemplate_83ED414 = +static const struct SpriteTemplate sSpriteTemplate_ReelSymbol = { .tileTag = 0, .paletteTag = 0, - .oam = &gUnknown_085A7A5C, + .oam = &sOam_32x32, .anims = gUnknown_085A7BF8, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8104F18 + .callback = SpriteCB_ReelSymbol }; -static const struct SpriteTemplate gSpriteTemplate_83ED42C = +static const struct SpriteTemplate sSpriteTemplate_CoinNumber = { .tileTag = 7, .paletteTag = 4, - .oam = &gUnknown_085A7A44, + .oam = &sOam_8x16, .anims = gUnknown_085A7BF8, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_810506C + .callback = SpriteCB_CoinNumber }; -static const struct SpriteTemplate gSpriteTemplate_83ED444 = +static const struct SpriteTemplate sSpriteTemplate_ReelBackground = { .tileTag = 17, .paletteTag = 0, - .oam = &gUnknown_085A7A74, + .oam = &sOam_64x64, .anims = gUnknown_085A7BF8, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct SpriteTemplate gSpriteTemplate_83ED45C = +static const struct SpriteTemplate sSpriteTemplate_ReelTimePikachu = { .tileTag = 0xFFFF, .paletteTag = 1, - .oam = &gUnknown_085A7A74, - .anims = gUnknown_085A7C00, + .oam = &sOam_64x64, + .anims = sAnims_ReelTimePikachu, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8105170 + .callback = SpriteCB_ReelTimePikachu }; -static const struct SpriteTemplate gSpriteTemplate_83ED474 = +static const struct SpriteTemplate sSpriteTemplate_ReelTimeMachineAntennae = { .tileTag = 0xFFFF, .paletteTag = 2, - .oam = &gUnknown_085A7A44, + .oam = &sOam_8x16, .anims = gUnknown_085A7BF8, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct SpriteTemplate gSpriteTemplate_83ED48C = +static const struct SpriteTemplate sSpriteTemplate_ReelTimeMachine = { .tileTag = 0xFFFF, .paletteTag = 3, - .oam = &gUnknown_085A7A44, + .oam = &sOam_8x16, .anims = gUnknown_085A7BF8, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct SpriteTemplate gSpriteTemplate_83ED4A4 = +static const struct SpriteTemplate sSpriteTemplate_BrokenReelTimeMachine = { .tileTag = 0xFFFF, .paletteTag = 3, - .oam = &gUnknown_085A7A44, + .oam = &sOam_8x16, .anims = gUnknown_085A7BF8, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct SpriteTemplate gSpriteTemplate_83ED4BC = +static const struct SpriteTemplate sSpriteTemplate_ReelTimeNumbers = { .tileTag = 0xFFFF, .paletteTag = 4, - .oam = &gUnknown_085A7A4C, - .anims = gUnknown_085A7C18, - .images = gUnknown_085A7A7C, + .oam = &sOam_16x16, + .anims = sAnims_ReelTimeNumbers, + .images = sImageTable_ReelTimeNumbers, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_810535C + .callback = SpriteCB_ReelTimeNumbers }; -static const struct SpriteTemplate gSpriteTemplate_83ED4D4 = +static const struct SpriteTemplate sSpriteTemplate_ReelTimeShadow = { .tileTag = 0xFFFF, .paletteTag = 4, - .oam = &gUnknown_085A7A4C, + .oam = &sOam_16x16, .anims = gUnknown_085A7BF8, - .images = gUnknown_085A7AAC, + .images = sImageTable_ReelTimeShadow, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; @@ -5247,234 +5380,234 @@ static const struct SpriteTemplate gSpriteTemplate_83ED4EC = { .tileTag = 0xFFFF, .paletteTag = 4, - .oam = &gUnknown_085A7A4C, + .oam = &sOam_16x16, .anims = gUnknown_085A7BF8, .images = gUnknown_085A7AB4, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct SpriteTemplate gSpriteTemplate_83ED504 = +static const struct SpriteTemplate sSpriteTemplate_ReelTimeBolt = { .tileTag = 0xFFFF, .paletteTag = 4, - .oam = &gUnknown_085A7A54, - .anims = gUnknown_085A7C30, - .images = gUnknown_085A7ABC, + .oam = &sOam_16x32, + .anims = sAnims_ReelTimeBolt, + .images = sImageTable_ReelTimeBolt, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_810562C + .callback = SpriteCB_ReelTimeBolt }; -static const struct SpriteTemplate gSpriteTemplate_83ED51C = +static const struct SpriteTemplate sSpriteTemplate_ReelTimePikachuAura = { .tileTag = 0xFFFF, .paletteTag = 7, - .oam = &gUnknown_085A7A64, + .oam = &sOam_32x64, .anims = gUnknown_085A7BF8, - .images = gUnknown_085A7ACC, + .images = sImageTable_ReelTimePikachuAura, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8105784 + .callback = SpriteCB_ReelTimePikachuAura }; -static const struct SpriteTemplate gSpriteTemplate_83ED534 = +static const struct SpriteTemplate sSpriteTemplate_ReelTimeExplosion = { .tileTag = 0xFFFF, .paletteTag = 5, - .oam = &gUnknown_085A7A5C, - .anims = gUnknown_085A7C34, - .images = gUnknown_085A7AD4, + .oam = &sOam_32x32, + .anims = sAnims_ReelTimeExplosion, + .images = sImageTable_ReelTimeExplosion, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8105894 + .callback = SpriteCB_ReelTimeExplosion }; -static const struct SpriteTemplate gSpriteTemplate_83ED54C = +static const struct SpriteTemplate sSpriteTemplate_ReelTimeDuck = { .tileTag = 0xFFFF, .paletteTag = 4, - .oam = &gUnknown_085A7A3C, + .oam = &sOam_8x8, .anims = gUnknown_085A7BFC, - .images = gUnknown_085A7AE4, + .images = sImageTable_ReelTimeDuck, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_810594C + .callback = SpriteCB_ReelTimeDuck }; -static const struct SpriteTemplate gSpriteTemplate_83ED564 = +static const struct SpriteTemplate sSpriteTemplate_ReelTimeSmoke = { .tileTag = 0xFFFF, .paletteTag = 4, - .oam = &gUnknown_085A7A4C, + .oam = &sOam_16x16, .anims = gUnknown_085A7BF8, - .images = gUnknown_085A7AEC, - .affineAnims = gUnknown_085A7C88, - .callback = sub_8105A38 + .images = sImageTable_ReelTimeSmoke, + .affineAnims = sAffineAnims_ReelTimeSmoke, + .callback = SpriteCB_ReelTimeSmoke }; -static const struct SpriteTemplate gUnknown_085A7E48 = +static const struct SpriteTemplate sSpriteTemplate_DigitalDisplay_Reel = { .tileTag = 0xFFFF, .paletteTag = 6, - .oam = &gUnknown_085A7A3C, + .oam = &sOam_8x8, .anims = gUnknown_085A7BF8, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct SpriteTemplate gUnknown_085A7E60 = +static const struct SpriteTemplate sSpriteTemplate_DigitalDisplay_Time = { .tileTag = 0xFFFF, .paletteTag = 6, - .oam = &gUnknown_085A7A3C, + .oam = &sOam_8x8, .anims = gUnknown_085A7BF8, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct SpriteTemplate gUnknown_085A7E78 = +static const struct SpriteTemplate sSpriteTemplate_DigitalDisplay_Insert = { .tileTag = 0xFFFF, .paletteTag = 6, - .oam = &gUnknown_085A7A3C, + .oam = &sOam_8x8, .anims = gUnknown_085A7BF8, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct SpriteTemplate gUnknown_085A7E90 = +static const struct SpriteTemplate sSpriteTemplate_DigitalDisplay_Stop = { .tileTag = 18, .paletteTag = 6, - .oam = &gUnknown_085A7A3C, + .oam = &sOam_8x8, .anims = gUnknown_085A7BF8, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct SpriteTemplate gUnknown_085A7EA8 = +static const struct SpriteTemplate sSpriteTemplate_DigitalDisplay_Win = { .tileTag = 0xFFFF, .paletteTag = 6, - .oam = &gUnknown_085A7A6C, + .oam = &sOam_64x32, .anims = gUnknown_085A7BF8, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct SpriteTemplate gUnknown_085A7EC0 = +static const struct SpriteTemplate sSpriteTemplate_DigitalDisplay_Lose = { .tileTag = 0xFFFF, .paletteTag = 6, - .oam = &gUnknown_085A7A6C, + .oam = &sOam_64x32, .anims = gUnknown_085A7BF8, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct SpriteTemplate gUnknown_085A7ED8 = +static const struct SpriteTemplate sSpriteTemplate_DigitalDisplay_Bonus = { .tileTag = 19, .paletteTag = 6, - .oam = &gUnknown_085A7A3C, + .oam = &sOam_8x8, .anims = gUnknown_085A7BF8, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct SpriteTemplate gUnknown_085A7EF0 = +static const struct SpriteTemplate sSpriteTemplate_DigitalDisplay_Big = { .tileTag = 20, .paletteTag = 6, - .oam = &gUnknown_085A7A3C, + .oam = &sOam_8x8, .anims = gUnknown_085A7BF8, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct SpriteTemplate gUnknown_085A7F08 = +static const struct SpriteTemplate sSpriteTemplate_DigitalDisplay_Reg = { .tileTag = 21, .paletteTag = 6, - .oam = &gUnknown_085A7A3C, + .oam = &sOam_8x8, .anims = gUnknown_085A7BF8, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct SpriteTemplate gUnknown_085A7F20 = +static const struct SpriteTemplate sSpriteTemplate_DigitalDisplay_AButton = { .tileTag = 0xFFFF, .paletteTag = 6, - .oam = &gUnknown_085A7A5C, - .anims = gUnknown_085A7C38, + .oam = &sOam_32x32, + .anims = sAnims_DigitalDisplay_AButton, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct SpriteTemplate gUnknown_085A7F38 = +static const struct SpriteTemplate sSpriteTemplate_DigitalDisplay_Smoke = { .tileTag = 0xFFFF, .paletteTag = 6, - .oam = &gUnknown_085A7A3C, + .oam = &sOam_8x8, .anims = gUnknown_085A7BF8, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct SpriteTemplate gUnknown_085A7F50 = +static const struct SpriteTemplate sSpriteTemplate_DigitalDisplay_Number = { .tileTag = 0xFFFF, .paletteTag = 6, - .oam = &gUnknown_085A7A4C, - .anims = gUnknown_085A7C4C, + .oam = &sOam_16x16, + .anims = sAnims_DigitalDisplay_Number, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct SpriteTemplate gUnknown_085A7F68 = +static const struct SpriteTemplate sSpriteTemplate_DigitalDisplay_Pokeball = { .tileTag = 0xFFFF, .paletteTag = 6, - .oam = &gUnknown_085A7A3C, - .anims = gUnknown_085A7C44, + .oam = &sOam_8x8, + .anims = sAnims_DigitalDisplay_Pokeball, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct SpriteTemplate gUnknown_085A7F80 = +static const struct SpriteTemplate sSpriteTemplate_DigitalDisplay_DPad = { .tileTag = 0xFFFF, .paletteTag = 6, - .oam = &gUnknown_085A7A3C, - .anims = gUnknown_085A7C40, + .oam = &sOam_8x8, + .anims = sAnims_DigitalDisplay_DPad, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct SpriteTemplate gSpriteTemplate_83ED6CC = +static const struct SpriteTemplate sSpriteTemplate_PikaPowerBolt = { .tileTag = 0xFFFF, .paletteTag = 4, - .oam = &gUnknown_085A7A3C, + .oam = &sOam_8x8, .anims = gUnknown_085A7BF8, - .images = gUnknown_085A7AF4, - .affineAnims = gUnknown_085A7CDC, - .callback = sub_8105B70 + .images = sImageTable_PikaPowerBolt, + .affineAnims = sAffineAnims_PikaPowerBolt, + .callback = SpriteCB_PikaPowerBolt }; -static const struct Subsprite gUnknown_085A7FB0[] = +static const struct Subsprite sSubsprites_ReelBackground[] = { { .x = -64, @@ -5510,12 +5643,12 @@ static const struct Subsprite gUnknown_085A7FB0[] = } }; -static const struct SubspriteTable gSubspriteTables_83ED704[] = +static const struct SubspriteTable sSubspriteTable_ReelBackground[] = { - ARRAY_COUNT(gUnknown_085A7FB0), gUnknown_085A7FB0 + ARRAY_COUNT(sSubsprites_ReelBackground), sSubsprites_ReelBackground }; -static const struct Subsprite gUnknown_085A7FC8[] = +static const struct Subsprite sSubsprites_ReelTimeMachineAntennae[] = { { .x = -32, @@ -5567,12 +5700,12 @@ static const struct Subsprite gUnknown_085A7FC8[] = } }; -static const struct SubspriteTable gSubspriteTables_83ED73C[] = +static const struct SubspriteTable sSubspriteTable_ReelTimeMachineAntennae[] = { - ARRAY_COUNT(gUnknown_085A7FC8), gUnknown_085A7FC8 + ARRAY_COUNT(sSubsprites_ReelTimeMachineAntennae), sSubsprites_ReelTimeMachineAntennae }; -static const struct Subsprite gUnknown_085A7FE8[] = +static const struct Subsprite sSubsprites_ReelTimeMachine[] = { { .x = -32, @@ -5600,12 +5733,12 @@ static const struct Subsprite gUnknown_085A7FE8[] = } }; -static const struct SubspriteTable gSubspriteTables_83ED75C[] = +static const struct SubspriteTable sSubspriteTable_ReelTimeMachine[] = { - ARRAY_COUNT(gUnknown_085A7FE8), gUnknown_085A7FE8 + ARRAY_COUNT(sSubsprites_ReelTimeMachine), sSubsprites_ReelTimeMachine }; -static const struct Subsprite gUnknown_085A7FFC[] = +static const struct Subsprite sSubsprites_BrokenReelTimeMachine[] = { { .x = -32, @@ -5649,12 +5782,12 @@ static const struct Subsprite gUnknown_085A7FFC[] = } }; -static const struct SubspriteTable gSubspriteTables_83ED78C[] = +static const struct SubspriteTable sSubspriteTable_BrokenReelTimeMachine[] = { - ARRAY_COUNT(gUnknown_085A7FFC), gUnknown_085A7FFC + ARRAY_COUNT(sSubsprites_BrokenReelTimeMachine), sSubsprites_BrokenReelTimeMachine }; -static const struct Subsprite gUnknown_085A8018[] = +static const struct Subsprite sSubsprites_ReelTimeShadow[] = { { .x = -32, @@ -5690,9 +5823,9 @@ static const struct Subsprite gUnknown_085A8018[] = } }; -static const struct SubspriteTable gSubspriteTables_83ED7B4[] = +static const struct SubspriteTable sSubspriteTable_ReelTimeShadow[] = { - ARRAY_COUNT(gUnknown_085A8018), gUnknown_085A8018 + ARRAY_COUNT(sSubsprites_ReelTimeShadow), sSubsprites_ReelTimeShadow }; static const struct Subsprite gUnknown_085A8030[] = @@ -5728,7 +5861,7 @@ static const struct SubspriteTable gSubspriteTables_83ED7D4[] = ARRAY_COUNT(gUnknown_085A8030), gUnknown_085A8030 }; -static const struct Subsprite gUnknown_085A8044[] = +static const struct Subsprite sSubsprites_DigitalDisplay_Reel[] = { { .x = -32, @@ -5772,12 +5905,12 @@ static const struct Subsprite gUnknown_085A8044[] = } }; -static const struct SubspriteTable gUnknown_085A8058[] = +static const struct SubspriteTable sSubspriteTable_DigitalDisplay_Reel[] = { - ARRAY_COUNT(gUnknown_085A8044), gUnknown_085A8044 + ARRAY_COUNT(sSubsprites_DigitalDisplay_Reel), sSubsprites_DigitalDisplay_Reel }; -static const struct Subsprite gUnknown_085A8060[] = +static const struct Subsprite sSubsprites_DigitalDisplay_Time[] = { { .x = -32, @@ -5813,12 +5946,12 @@ static const struct Subsprite gUnknown_085A8060[] = } }; -static const struct SubspriteTable gUnknown_085A8070[] = +static const struct SubspriteTable sSubspriteTable_DigitalDisplay_Time[] = { - ARRAY_COUNT(gUnknown_085A8060), gUnknown_085A8060 + ARRAY_COUNT(sSubsprites_DigitalDisplay_Time), sSubsprites_DigitalDisplay_Time }; -static const struct Subsprite gUnknown_085A8078[] = +static const struct Subsprite sSubsprites_DigitalDisplay_Insert[] = { { .x = -32, @@ -5854,12 +5987,12 @@ static const struct Subsprite gUnknown_085A8078[] = } }; -static const struct SubspriteTable gUnknown_085A8088[] = +static const struct SubspriteTable sSubspriteTable_DigitalDisplay_Insert[] = { - ARRAY_COUNT(gUnknown_085A8078), gUnknown_085A8078 + ARRAY_COUNT(sSubsprites_DigitalDisplay_Insert), sSubsprites_DigitalDisplay_Insert }; -static const struct Subsprite gUnknown_085A8090[] = +static const struct Subsprite sSubsprites_DigitalDisplay_Unused1[] = { { .x = -32, @@ -5895,12 +6028,12 @@ static const struct Subsprite gUnknown_085A8090[] = } }; -static const struct SubspriteTable gUnknown_085A80A0[] = +static const struct SubspriteTable sSubspriteTable_DigitalDisplay_Unused1[] = { - ARRAY_COUNT(gUnknown_085A8090), gUnknown_085A8090 + ARRAY_COUNT(sSubsprites_DigitalDisplay_Unused1), sSubsprites_DigitalDisplay_Unused1 }; -static const struct Subsprite gUnknown_085A80A8[] = +static const struct Subsprite sSubsprites_DigitalDisplay_Win[] = { { .x = -32, @@ -5952,12 +6085,12 @@ static const struct Subsprite gUnknown_085A80A8[] = } }; -static const struct SubspriteTable gUnknown_085A80C0[] = +static const struct SubspriteTable sSubspriteTable_DigitalDisplay_Win[] = { - ARRAY_COUNT(gUnknown_085A80A8), gUnknown_085A80A8 + ARRAY_COUNT(sSubsprites_DigitalDisplay_Win), sSubsprites_DigitalDisplay_Win }; -static const struct Subsprite gUnknown_085A80C8[] = +static const struct Subsprite sSubsprites_DigitalDisplay_Smoke[] = { { .x = -16, @@ -5969,7 +6102,7 @@ static const struct Subsprite gUnknown_085A80C8[] = } }; -static const struct Subsprite gUnknown_085A80CC[] = +static const struct Subsprite sSubsprites_DigitalDisplay_Unused2[] = { { .x = -8, @@ -5981,17 +6114,17 @@ static const struct Subsprite gUnknown_085A80CC[] = } }; -static const struct SubspriteTable gUnknown_085A80D0[] = +static const struct SubspriteTable sSubspriteTable_DigitalDisplay_Smoke[] = { - ARRAY_COUNT(gUnknown_085A80C8), gUnknown_085A80C8 + ARRAY_COUNT(sSubsprites_DigitalDisplay_Smoke), sSubsprites_DigitalDisplay_Smoke }; -static const struct SubspriteTable gUnknown_085A80D8[] = +static const struct SubspriteTable sSubspriteTable_DigitalDisplay_Unused2[] = { - ARRAY_COUNT(gUnknown_085A80CC), gUnknown_085A80CC + ARRAY_COUNT(sSubsprites_DigitalDisplay_Unused2), sSubsprites_DigitalDisplay_Unused2 }; -static const struct Subsprite gUnknown_085A80E0[] = +static const struct Subsprite sSubsprites_DigitalDisplay_Pokeball[] = { { .x = -24, @@ -6091,12 +6224,12 @@ static const struct Subsprite gUnknown_085A80E0[] = } }; -static const struct SubspriteTable gUnknown_085A8110[] = +static const struct SubspriteTable sSubspriteTable_DigitalDisplay_Pokeball[] = { - ARRAY_COUNT(gUnknown_085A80E0), gUnknown_085A80E0 + ARRAY_COUNT(sSubsprites_DigitalDisplay_Pokeball), sSubsprites_DigitalDisplay_Pokeball }; -static const struct Subsprite gUnknown_085A8118[] = +static const struct Subsprite sSubsprites_DigitalDisplay_DPad[] = { { .x = -16, @@ -6124,12 +6257,12 @@ static const struct Subsprite gUnknown_085A8118[] = } }; -static const struct SubspriteTable gUnknown_085A8124[] = +static const struct SubspriteTable sSubspriteTable_DigitalDisplay_DPad[] = { - ARRAY_COUNT(gUnknown_085A8118), gUnknown_085A8118 + ARRAY_COUNT(sSubsprites_DigitalDisplay_DPad), sSubsprites_DigitalDisplay_DPad }; -static const struct Subsprite gUnknown_085A812C[] = +static const struct Subsprite sSubsprites_DigitalDisplay_StopS[] = { { .x = -8, @@ -6149,12 +6282,12 @@ static const struct Subsprite gUnknown_085A812C[] = } }; -static const struct SubspriteTable gUnknown_085A8134[] = +static const struct SubspriteTable sSubspriteTable_DigitalDisplay_StopS[] = { - ARRAY_COUNT(gUnknown_085A812C), gUnknown_085A812C + ARRAY_COUNT(sSubsprites_DigitalDisplay_StopS), sSubsprites_DigitalDisplay_StopS }; -static const struct Subsprite gUnknown_085A813C[] = +static const struct Subsprite sSubsprites_DigitalDisplay_StopT[] = { { .x = -8, @@ -6174,12 +6307,12 @@ static const struct Subsprite gUnknown_085A813C[] = } }; -static const struct SubspriteTable gUnknown_085A8144[] = +static const struct SubspriteTable sSubspriteTable_DigitalDisplay_StopT[] = { - ARRAY_COUNT(gUnknown_085A813C), gUnknown_085A813C + ARRAY_COUNT(sSubsprites_DigitalDisplay_StopT), sSubsprites_DigitalDisplay_StopT }; -static const struct Subsprite gUnknown_085A814C[] = +static const struct Subsprite sSubsprites_DigitalDisplay_StopO[] = { { .x = -8, @@ -6199,12 +6332,12 @@ static const struct Subsprite gUnknown_085A814C[] = } }; -static const struct SubspriteTable gUnknown_085A8154[] = +static const struct SubspriteTable sSubspriteTable_DigitalDisplay_StopO[] = { - ARRAY_COUNT(gUnknown_085A814C), gUnknown_085A814C + ARRAY_COUNT(sSubsprites_DigitalDisplay_StopO), sSubsprites_DigitalDisplay_StopO }; -static const struct Subsprite gUnknown_085A815C[] = +static const struct Subsprite sSubsprites_DigitalDisplay_StopP[] = { { .x = -8, @@ -6224,12 +6357,12 @@ static const struct Subsprite gUnknown_085A815C[] = } }; -static const struct SubspriteTable gUnknown_085A8164[] = +static const struct SubspriteTable sSubspriteTable_DigitalDisplay_StopP[] = { - ARRAY_COUNT(gUnknown_085A815C), gUnknown_085A815C + ARRAY_COUNT(sSubsprites_DigitalDisplay_StopP), sSubsprites_DigitalDisplay_StopP }; -static const struct Subsprite gUnknown_085A816C[] = +static const struct Subsprite sSubsprites_DigitalDisplay_BonusB[] = { { .x = -8, @@ -6249,12 +6382,12 @@ static const struct Subsprite gUnknown_085A816C[] = } }; -static const struct SubspriteTable gUnknown_085A8174[] = +static const struct SubspriteTable sSubspriteTable_DigitalDisplay_BonusB[] = { - ARRAY_COUNT(gUnknown_085A816C), gUnknown_085A816C + ARRAY_COUNT(sSubsprites_DigitalDisplay_BonusB), sSubsprites_DigitalDisplay_BonusB }; -static const struct Subsprite gUnknown_085A817C[] = +static const struct Subsprite sSubsprites_DigitalDisplay_BonusO[] = { { .x = -4, @@ -6274,12 +6407,12 @@ static const struct Subsprite gUnknown_085A817C[] = } }; -static const struct SubspriteTable gUnknown_085A8184[] = +static const struct SubspriteTable sSubspriteTable_DigitalDisplay_BonusO[] = { - ARRAY_COUNT(gUnknown_085A817C), gUnknown_085A817C + ARRAY_COUNT(sSubsprites_DigitalDisplay_BonusO), sSubsprites_DigitalDisplay_BonusO }; -static const struct Subsprite gUnknown_085A818C[] = +static const struct Subsprite sSubsprites_DigitalDisplay_BonusN[] = { { .x = -8, @@ -6299,12 +6432,12 @@ static const struct Subsprite gUnknown_085A818C[] = } }; -static const struct SubspriteTable gUnknown_085A8194[] = +static const struct SubspriteTable sSubspriteTable_DigitalDisplay_BonusN[] = { - ARRAY_COUNT(gUnknown_085A818C), gUnknown_085A818C + ARRAY_COUNT(sSubsprites_DigitalDisplay_BonusN), sSubsprites_DigitalDisplay_BonusN }; -static const struct Subsprite gUnknown_085A819C[] = +static const struct Subsprite sSubsprites_DigitalDisplay_BonusU[] = { { .x = -4, @@ -6324,12 +6457,12 @@ static const struct Subsprite gUnknown_085A819C[] = } }; -static const struct SubspriteTable gUnknown_085A81A4[] = +static const struct SubspriteTable sSubspriteTable_DigitalDisplay_BonusU[] = { - ARRAY_COUNT(gUnknown_085A819C), gUnknown_085A819C + ARRAY_COUNT(sSubsprites_DigitalDisplay_BonusU), sSubsprites_DigitalDisplay_BonusU }; -static const struct Subsprite gUnknown_085A81AC[] = +static const struct Subsprite sSubsprites_DigitalDisplay_BonusS[] = { { .x = -8, @@ -6349,12 +6482,12 @@ static const struct Subsprite gUnknown_085A81AC[] = } }; -static const struct SubspriteTable gUnknown_085A81B4[] = +static const struct SubspriteTable sSubspriteTable_DigitalDisplay_BonusS[] = { - ARRAY_COUNT(gUnknown_085A81AC), gUnknown_085A81AC + ARRAY_COUNT(sSubsprites_DigitalDisplay_BonusS), sSubsprites_DigitalDisplay_BonusS }; -static const struct Subsprite gUnknown_085A81BC[] = +static const struct Subsprite sSubsprites_DigitalDisplay_BigB[] = { { .x = -12, @@ -6406,12 +6539,12 @@ static const struct Subsprite gUnknown_085A81BC[] = } }; -static const struct SubspriteTable gUnknown_085A81D4[] = +static const struct SubspriteTable sSubspriteTable_DigitalDisplay_BigB[] = { - ARRAY_COUNT(gUnknown_085A81BC), gUnknown_085A81BC + ARRAY_COUNT(sSubsprites_DigitalDisplay_BigB), sSubsprites_DigitalDisplay_BigB }; -static const struct Subsprite gUnknown_085A81DC[] = +static const struct Subsprite sSubsprites_DigitalDisplay_BigI[] = { { .x = -8, @@ -6439,12 +6572,12 @@ static const struct Subsprite gUnknown_085A81DC[] = } }; -static const struct SubspriteTable gUnknown_085A81E8[] = +static const struct SubspriteTable sSubspriteTable_DigitalDisplay_BigI[] = { - ARRAY_COUNT(gUnknown_085A81DC), gUnknown_085A81DC + ARRAY_COUNT(sSubsprites_DigitalDisplay_BigI), sSubsprites_DigitalDisplay_BigI }; -static const struct Subsprite gUnknown_085A81F0[] = +static const struct Subsprite sSubsprites_DigitalDisplay_BigG[] = { { .x = -12, @@ -6496,12 +6629,12 @@ static const struct Subsprite gUnknown_085A81F0[] = } }; -static const struct SubspriteTable gUnknown_085A8208[] = +static const struct SubspriteTable sSubspriteTable_DigitalDisplay_BigG[] = { - ARRAY_COUNT(gUnknown_085A81F0), gUnknown_085A81F0 + ARRAY_COUNT(sSubsprites_DigitalDisplay_BigG), sSubsprites_DigitalDisplay_BigG }; -static const struct Subsprite gUnknown_085A8210[] = +static const struct Subsprite sSubsprites_DigitalDisplay_RegR[] = { { .x = -12, @@ -6553,12 +6686,12 @@ static const struct Subsprite gUnknown_085A8210[] = } }; -static const struct SubspriteTable gUnknown_085A8228[] = +static const struct SubspriteTable sSubspriteTable_DigitalDisplay_RegR[] = { - ARRAY_COUNT(gUnknown_085A8210), gUnknown_085A8210 + ARRAY_COUNT(sSubsprites_DigitalDisplay_RegR), sSubsprites_DigitalDisplay_RegR }; -static const struct Subsprite gUnknown_085A822C[] = +static const struct Subsprite sSubsprites_DigitalDisplay_RegE[] = { { .x = -8, @@ -6586,12 +6719,12 @@ static const struct Subsprite gUnknown_085A822C[] = } }; -static const struct SubspriteTable gUnknown_085A823C[] = +static const struct SubspriteTable sSubspriteTable_DigitalDisplay_RegE[] = { - ARRAY_COUNT(gUnknown_085A822C), gUnknown_085A822C + ARRAY_COUNT(sSubsprites_DigitalDisplay_RegE), sSubsprites_DigitalDisplay_RegE }; -static const struct Subsprite gUnknown_085A8244[] = +static const struct Subsprite sSubsprites_DigitalDisplay_RegG[] = { { .x = -12, @@ -6643,69 +6776,69 @@ static const struct Subsprite gUnknown_085A8244[] = } }; -static const struct SubspriteTable gUnknown_085A825C[] = +static const struct SubspriteTable sSubspriteTable_DigitalDisplay_RegG[] = { - ARRAY_COUNT(gUnknown_085A8244), gUnknown_085A8244 + ARRAY_COUNT(sSubsprites_DigitalDisplay_RegG), sSubsprites_DigitalDisplay_RegG }; -static const struct SpriteTemplate *const gUnknown_083EDB5C[] = +static const struct SpriteTemplate *const sSpriteTemplates_DigitalDisplay[NUM_DIG_DISPLAY_SPRITES] = { - &gUnknown_085A7E48, - &gUnknown_085A7E60, - &gUnknown_085A7E78, - &gUnknown_085A7EA8, - &gUnknown_085A7EC0, - &gUnknown_085A7F20, - &gUnknown_085A7F38, - &gUnknown_085A7F50, - &gUnknown_085A7F68, - &gUnknown_085A7F80, - &gUnknown_085A7E90, - &gUnknown_085A7E90, - &gUnknown_085A7E90, - &gUnknown_085A7E90, - &gUnknown_085A7ED8, - &gUnknown_085A7ED8, - &gUnknown_085A7ED8, - &gUnknown_085A7ED8, - &gUnknown_085A7ED8, - &gUnknown_085A7EF0, - &gUnknown_085A7EF0, - &gUnknown_085A7EF0, - &gUnknown_085A7F08, - &gUnknown_085A7F08, - &gUnknown_085A7F08, - &gDummySpriteTemplate + [DIG_SPRITE_REEL] = &sSpriteTemplate_DigitalDisplay_Reel, + [DIG_SPRITE_TIME] = &sSpriteTemplate_DigitalDisplay_Time, + [DIG_SPRITE_INSERT] = &sSpriteTemplate_DigitalDisplay_Insert, + [DIG_SPRITE_WIN] = &sSpriteTemplate_DigitalDisplay_Win, + [DIG_SPRITE_LOSE] = &sSpriteTemplate_DigitalDisplay_Lose, + [DIG_SPRITE_A_BUTTON] = &sSpriteTemplate_DigitalDisplay_AButton, + [DIG_SPRITE_SMOKE] = &sSpriteTemplate_DigitalDisplay_Smoke, + [DIG_SPRITE_NUMBER] = &sSpriteTemplate_DigitalDisplay_Number, + [DIG_SPRITE_POKE_BALL] = &sSpriteTemplate_DigitalDisplay_Pokeball, + [DIG_SPRITE_D_PAD] = &sSpriteTemplate_DigitalDisplay_DPad, + [DIG_SPRITE_STOP_S] = &sSpriteTemplate_DigitalDisplay_Stop, + [DIG_SPRITE_STOP_T] = &sSpriteTemplate_DigitalDisplay_Stop, + [DIG_SPRITE_STOP_O] = &sSpriteTemplate_DigitalDisplay_Stop, + [DIG_SPRITE_STOP_P] = &sSpriteTemplate_DigitalDisplay_Stop, + [DIG_SPRITE_BONUS_B] = &sSpriteTemplate_DigitalDisplay_Bonus, + [DIG_SPRITE_BONUS_O] = &sSpriteTemplate_DigitalDisplay_Bonus, + [DIG_SPRITE_BONUS_N] = &sSpriteTemplate_DigitalDisplay_Bonus, + [DIG_SPRITE_BONUS_U] = &sSpriteTemplate_DigitalDisplay_Bonus, + [DIG_SPRITE_BONUS_S] = &sSpriteTemplate_DigitalDisplay_Bonus, + [DIG_SPRITE_BIG_B] = &sSpriteTemplate_DigitalDisplay_Big, + [DIG_SPRITE_BIG_I] = &sSpriteTemplate_DigitalDisplay_Big, + [DIG_SPRITE_BIG_G] = &sSpriteTemplate_DigitalDisplay_Big, + [DIG_SPRITE_REG_R] = &sSpriteTemplate_DigitalDisplay_Reg, + [DIG_SPRITE_REG_E] = &sSpriteTemplate_DigitalDisplay_Reg, + [DIG_SPRITE_REG_G] = &sSpriteTemplate_DigitalDisplay_Reg, + [DIG_SPRITE_EMPTY] = &gDummySpriteTemplate }; -static const struct SubspriteTable *const gUnknown_083EDBC4[] = +static const struct SubspriteTable *const sSubspriteTables_DigitalDisplay[NUM_DIG_DISPLAY_SPRITES] = { - gUnknown_085A8058, - gUnknown_085A8070, - gUnknown_085A8088, - gUnknown_085A80C0, - NULL, - NULL, - gUnknown_085A80D0, - NULL, - gUnknown_085A8110, - gUnknown_085A8124, - gUnknown_085A8134, - gUnknown_085A8144, - gUnknown_085A8154, - gUnknown_085A8164, - gUnknown_085A8174, - gUnknown_085A8184, - gUnknown_085A8194, - gUnknown_085A81A4, - gUnknown_085A81B4, - gUnknown_085A81D4, - gUnknown_085A81E8, - gUnknown_085A8208, - gUnknown_085A8228, - gUnknown_085A823C, - gUnknown_085A825C, - NULL + [DIG_SPRITE_REEL] = sSubspriteTable_DigitalDisplay_Reel, + [DIG_SPRITE_TIME] = sSubspriteTable_DigitalDisplay_Time, + [DIG_SPRITE_INSERT] = sSubspriteTable_DigitalDisplay_Insert, + [DIG_SPRITE_WIN] = sSubspriteTable_DigitalDisplay_Win, + [DIG_SPRITE_LOSE] = NULL, + [DIG_SPRITE_A_BUTTON] = NULL, + [DIG_SPRITE_SMOKE] = sSubspriteTable_DigitalDisplay_Smoke, + [DIG_SPRITE_NUMBER] = NULL, + [DIG_SPRITE_POKE_BALL] = sSubspriteTable_DigitalDisplay_Pokeball, + [DIG_SPRITE_D_PAD] = sSubspriteTable_DigitalDisplay_DPad, + [DIG_SPRITE_STOP_S] = sSubspriteTable_DigitalDisplay_StopS, + [DIG_SPRITE_STOP_T] = sSubspriteTable_DigitalDisplay_StopT, + [DIG_SPRITE_STOP_O] = sSubspriteTable_DigitalDisplay_StopO, + [DIG_SPRITE_STOP_P] = sSubspriteTable_DigitalDisplay_StopP, + [DIG_SPRITE_BONUS_B] = sSubspriteTable_DigitalDisplay_BonusB, + [DIG_SPRITE_BONUS_O] = sSubspriteTable_DigitalDisplay_BonusO, + [DIG_SPRITE_BONUS_N] = sSubspriteTable_DigitalDisplay_BonusN, + [DIG_SPRITE_BONUS_U] = sSubspriteTable_DigitalDisplay_BonusU, + [DIG_SPRITE_BONUS_S] = sSubspriteTable_DigitalDisplay_BonusS, + [DIG_SPRITE_BIG_B] = sSubspriteTable_DigitalDisplay_BigB, + [DIG_SPRITE_BIG_I] = sSubspriteTable_DigitalDisplay_BigI, + [DIG_SPRITE_BIG_G] = sSubspriteTable_DigitalDisplay_BigG, + [DIG_SPRITE_REG_R] = sSubspriteTable_DigitalDisplay_RegR, + [DIG_SPRITE_REG_E] = sSubspriteTable_DigitalDisplay_RegE, + [DIG_SPRITE_REG_G] = sSubspriteTable_DigitalDisplay_RegG, + [DIG_SPRITE_EMPTY] = NULL }; static const struct SpriteSheet gSlotMachineSpriteSheets[22] = @@ -6819,7 +6952,7 @@ static const struct SpritePalette gSlotMachineSpritePalettes[] = { .data = gUnknown_08DCF170, .tag = 0}, { .data = gUnknown_08DCF190, .tag = 1}, { .data = gUnknown_08DCF1B0, .tag = 2}, - { .data = gSlotMachineReelTime_Pal, .tag = 3}, + { .data = gSlotMachineDigitalDisplay_Pal, .tag = 3}, { .data = gUnknown_08DCF1F0, .tag = 4}, { .data = gUnknown_08DCF210, .tag = 5}, { .data = gUnknown_08DCF230, .tag = 6}, @@ -6827,6 +6960,6 @@ static const struct SpritePalette gSlotMachineSpritePalettes[] = {} }; -static const u32 gReelTimeGfx[] = INCBIN_U32("graphics/slot_machine/reel_time_gfx.4bpp.lz"); +static const u32 sReelTimeGfx[] = INCBIN_U32("graphics/slot_machine/reel_time_gfx.4bpp.lz"); // reel_time_machine and reel_time_pikachu static const u16 gReelTimeWindowTilemap[] = INCBIN_U16("graphics/slot_machine/85A96E0.bin"); static const u16 gUnknown_085A9898[] = {0}; From f007165c538376fa8357727783ede54884c982e1 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Mon, 27 Jul 2020 12:27:35 +0200 Subject: [PATCH 016/101] Fix undefined behaviour in protect animation gPlttBufferFaded[sprite->data[2] + ++i] = gPlttBufferFaded[sprite->data[2] + i + 1] The above does NOT make it certain that i gets incremented before reading from the right side. Changed it, so the function always increments i first, then reads from pal buffer. --- src/battle_anim_effects_1.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/battle_anim_effects_1.c b/src/battle_anim_effects_1.c index 516c58e557..f93b2a5c48 100644 --- a/src/battle_anim_effects_1.c +++ b/src/battle_anim_effects_1.c @@ -3967,21 +3967,21 @@ static void AnimProtect(struct Sprite* sprite) static void AnimProtect_Step(struct Sprite *sprite) { - int a; - int i; + int i, id, savedPal; sprite->data[5] += 96; sprite->pos2.x = -(sprite->data[5] >> 8); if (++sprite->data[1] > 1) { sprite->data[1] = 0; - a = gPlttBufferFaded[sprite->data[2] + 1]; + savedPal = gPlttBufferFaded[sprite->data[2] + 1]; i = 0; - do + while (i < 6) { - gPlttBufferFaded[sprite->data[2] + ++i] = gPlttBufferFaded[sprite->data[2] + i + 1]; - } while (i < 6); + id = sprite->data[2] + ++i; + gPlttBufferFaded[id] = gPlttBufferFaded[id + 1]; + } - gPlttBufferFaded[sprite->data[2] + 7] = a; + gPlttBufferFaded[sprite->data[2] + 7] = savedPal; } if (sprite->data[7] > 6 && sprite->data[0] >0 && ++sprite->data[6] > 1) From ddd012f3edf7cd1a3df518492faa8de15833874c Mon Sep 17 00:00:00 2001 From: PokeCodec Date: Mon, 27 Jul 2020 12:47:08 -0400 Subject: [PATCH 017/101] holding back on casts --- src/agb_flash.c | 2 +- src/battle_anim_effects_1.c | 2 +- src/hall_of_fame.c | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/agb_flash.c b/src/agb_flash.c index 0045219c41..eeccf11164 100644 --- a/src/agb_flash.c +++ b/src/agb_flash.c @@ -242,7 +242,7 @@ u32 VerifyFlashSectorNBytes(u16 sectorNum, u8 *src, u32 n) funcSrc = (u16 *)((uintptr_t)funcSrc ^ 1); funcDest = verifyFlashSector_Core_Buffer; - i = (u16)(((uintptr_t)VerifyFlashSector - (uintptr_t)VerifyFlashSector_Core) >> 1); + i = ((uintptr_t)VerifyFlashSector - (uintptr_t)VerifyFlashSector_Core) >> 1; while (i != 0) { diff --git a/src/battle_anim_effects_1.c b/src/battle_anim_effects_1.c index 9acb4b83ab..516c58e557 100644 --- a/src/battle_anim_effects_1.c +++ b/src/battle_anim_effects_1.c @@ -4445,7 +4445,7 @@ static void AnimBowMon_Step1_Callback(struct Sprite* sprite) { sprite->data[3] = gBattlerSpriteIds[gBattleAnimAttacker]; PrepareBattlerSpriteForRotScale(sprite->data[3], ST_OAM_OBJ_NORMAL); - sprite->data[4] = (sprite->data[6] = GetBattlerSide(gBattleAnimAttacker)) ? 0x300 : (s16)0xFFFFFD00; + sprite->data[4] = (sprite->data[6] = GetBattlerSide(gBattleAnimAttacker)) ? 0x300 : 0xFFFFFD00; sprite->data[5] = 0; } diff --git a/src/hall_of_fame.c b/src/hall_of_fame.c index 8e47c1e3ae..bf9850deca 100644 --- a/src/hall_of_fame.c +++ b/src/hall_of_fame.c @@ -612,7 +612,7 @@ static void Task_Hof_PrintMonInfoAfterAnimating(u8 taskId) static void Task_Hof_TryDisplayAnotherMon(u8 taskId) { - u16 currPokeID = (u16)gTasks[taskId].tDisplayedMonId; + u16 currPokeID = gTasks[taskId].tDisplayedMonId; struct HallofFameMon* currMon = &sHofMonPtr->mon[currPokeID]; if (gTasks[taskId].tFrameCount != 0) @@ -1483,7 +1483,7 @@ static void UpdateDomeConfetti(struct ConfettiUtil *util) static void Task_DoDomeConfetti(u8 taskId) { u32 id = 0; - u16 *data = (u16 *)gTasks[taskId].data; + u16 *data = gTasks[taskId].data; switch (tState) { From 1c55734e44a2006571a0f04805bea38852207965 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Sun, 19 Jul 2020 14:12:38 -0400 Subject: [PATCH 018/101] Document faraway island --- data/maps/FarawayIsland_Interior/scripts.inc | 52 ++--- data/specials.inc | 4 +- include/faraway_island.h | 2 +- src/event_object_movement.c | 2 +- src/faraway_island.c | 191 ++++++++++--------- 5 files changed, 136 insertions(+), 115 deletions(-) diff --git a/data/maps/FarawayIsland_Interior/scripts.inc b/data/maps/FarawayIsland_Interior/scripts.inc index cad875b654..2a06ffdfaf 100644 --- a/data/maps/FarawayIsland_Interior/scripts.inc +++ b/data/maps/FarawayIsland_Interior/scripts.inc @@ -8,24 +8,24 @@ FarawayIsland_Interior_MapScripts:: @ 8267CFA .byte 0 FarawayIsland_Interior_OnReturnToField: @ 8267D0F - call_if_set FLAG_SYS_CTRL_OBJ_DELETE, FarawayIsland_Interior_EventScript_267D19 + call_if_set FLAG_SYS_CTRL_OBJ_DELETE, FarawayIsland_Interior_EventScript_TrySetMewAboveGrass end -FarawayIsland_Interior_EventScript_267D19:: @ 8267D19 +FarawayIsland_Interior_EventScript_TrySetMewAboveGrass:: @ 8267D19 specialvar VAR_RESULT, GetBattleOutcome compare VAR_RESULT, B_OUTCOME_WON - goto_if_eq FarawayIsland_Interior_EventScript_267D4B + goto_if_eq FarawayIsland_Interior_EventScript_SetMewAboveGrass compare VAR_RESULT, B_OUTCOME_RAN - goto_if_eq FarawayIsland_Interior_EventScript_267D4B + goto_if_eq FarawayIsland_Interior_EventScript_SetMewAboveGrass compare VAR_RESULT, B_OUTCOME_PLAYER_TELEPORTED - goto_if_eq FarawayIsland_Interior_EventScript_267D4B + goto_if_eq FarawayIsland_Interior_EventScript_SetMewAboveGrass compare VAR_RESULT, B_OUTCOME_MON_TELEPORTED - goto_if_eq FarawayIsland_Interior_EventScript_267D4B + goto_if_eq FarawayIsland_Interior_EventScript_SetMewAboveGrass return -FarawayIsland_Interior_EventScript_267D4B:: @ 8267D4B +FarawayIsland_Interior_EventScript_SetMewAboveGrass:: @ 8267D4B setvar VAR_0x8004, 1 - special sub_81D4A90 + special SetMewAboveGrass return FarawayIsland_Interior_OnResume: @ 8267D54 @@ -81,7 +81,7 @@ FarawayIsland_Interior_Movement_MewAppear: @ 8267DD4 set_visible step_end -FarawayIsland_Interior_Movement_MewHideDown: @ 8267DD6 +FarawayIsland_Interior_Movement_MewFloatUpNorth: @ 8267DD6 lock_facing_direction walk_fast_up walk_fast_up @@ -90,7 +90,7 @@ FarawayIsland_Interior_Movement_MewHideDown: @ 8267DD6 walk_in_place_down step_end -FarawayIsland_Interior_Movement_MewHideUp: @ 8267DDD +FarawayIsland_Interior_Movement_MewFloatUpSouth: @ 8267DDD lock_facing_direction walk_fast_up walk_fast_up @@ -99,7 +99,7 @@ FarawayIsland_Interior_Movement_MewHideUp: @ 8267DDD walk_in_place_up step_end -FarawayIsland_Interior_Movement_MewHideRight: @ 8267DE4 +FarawayIsland_Interior_Movement_MewFloatUpWest: @ 8267DE4 lock_facing_direction walk_fast_up walk_fast_up @@ -108,7 +108,7 @@ FarawayIsland_Interior_Movement_MewHideRight: @ 8267DE4 walk_in_place_right step_end -FarawayIsland_Interior_Movement_MewHideLeft: @ 8267DEB +FarawayIsland_Interior_Movement_MewFloatUpEast: @ 8267DEB lock_facing_direction walk_fast_up walk_fast_up @@ -123,19 +123,19 @@ FarawayIsland_Interior_EventScript_Mew:: @ 8267DF2 applymovement LOCALID_MEW, FarawayIsland_Interior_Movement_MewAppear waitmovement 0 setvar VAR_0x8004, 0 - special sub_81D4A90 + special SetMewAboveGrass message FarawayIsland_Interior_Text_Mew waitse playmoncry SPECIES_MEW, 2 compare VAR_FACING, DIR_NORTH - call_if_eq FarawayIsland_Interior_EventScript_MewHideDown + call_if_eq FarawayIsland_Interior_EventScript_FoundMewNorth compare VAR_FACING, DIR_SOUTH - call_if_eq FarawayIsland_Interior_EventScript_MewHideUp + call_if_eq FarawayIsland_Interior_EventScript_FoundMewSouth compare VAR_FACING, DIR_WEST - call_if_eq FarawayIsland_Interior_EventScript_MewHideRight + call_if_eq FarawayIsland_Interior_EventScript_FoundMewWest compare VAR_FACING, DIR_EAST - call_if_eq FarawayIsland_Interior_EventScript_MewHideLeft - special sub_81D4BEC + call_if_eq FarawayIsland_Interior_EventScript_FoundMewEast + special DestroyMewEmergingGrassSprite delay 40 waitmoncry setvar VAR_0x8004, SPECIES_MEW @@ -170,23 +170,23 @@ FarawayIsland_Interior_EventScript_PlayerOrMewRan:: @ 8267EA4 goto Common_EventScript_LegendaryFlewAway end -FarawayIsland_Interior_EventScript_MewHideDown:: @ 8267EAF - applymovement LOCALID_MEW, FarawayIsland_Interior_Movement_MewHideDown +FarawayIsland_Interior_EventScript_FoundMewNorth:: @ 8267EAF + applymovement LOCALID_MEW, FarawayIsland_Interior_Movement_MewFloatUpNorth waitmovement 0 return -FarawayIsland_Interior_EventScript_MewHideUp:: @ 8267EBA - applymovement LOCALID_MEW, FarawayIsland_Interior_Movement_MewHideUp +FarawayIsland_Interior_EventScript_FoundMewSouth:: @ 8267EBA + applymovement LOCALID_MEW, FarawayIsland_Interior_Movement_MewFloatUpSouth waitmovement 0 return -FarawayIsland_Interior_EventScript_MewHideRight:: @ 8267EC5 - applymovement LOCALID_MEW, FarawayIsland_Interior_Movement_MewHideRight +FarawayIsland_Interior_EventScript_FoundMewWest:: @ 8267EC5 + applymovement LOCALID_MEW, FarawayIsland_Interior_Movement_MewFloatUpWest waitmovement 0 return -FarawayIsland_Interior_EventScript_MewHideLeft:: @ 8267ED0 - applymovement LOCALID_MEW, FarawayIsland_Interior_Movement_MewHideLeft +FarawayIsland_Interior_EventScript_FoundMewEast:: @ 8267ED0 + applymovement LOCALID_MEW, FarawayIsland_Interior_Movement_MewFloatUpEast waitmovement 0 return diff --git a/data/specials.inc b/data/specials.inc index 0f78f981f5..d7d1897d87 100644 --- a/data/specials.inc +++ b/data/specials.inc @@ -511,14 +511,14 @@ gSpecials:: @ 81DBA64 def_special ScriptMenu_CreateLilycoveSSTidalMultichoice def_special GetLilycoveSSTidalSelection def_special TurnOnTVScreen - def_special sub_81D4A90 + def_special SetMewAboveGrass def_special ShouldDistributeEonTicket def_special LinkRetireStatusWithBattleTowerPartner def_special sub_813B534 def_special CallTrainerHillFunction def_special Script_DoRayquazaScene @ Listed twice def_special LoopWingFlapSE - def_special sub_81D4BEC + def_special DestroyMewEmergingGrassSprite def_special ShowBerryCrushRankings def_special TryBufferWaldaPhrase def_special DoWaldaNamingScreen diff --git a/include/faraway_island.h b/include/faraway_island.h index 084b5a2779..a5243c6a70 100755 --- a/include/faraway_island.h +++ b/include/faraway_island.h @@ -2,7 +2,7 @@ #define GUARD_FARAWAY_ISLAND_H u32 GetMewMoveDirection(void); -bool8 sub_81D4A58(struct ObjectEvent*); +bool8 ShouldMewShakeGrass(struct ObjectEvent*); void UpdateFarawayIslandStepCounter(void); bool8 ObjectEventIsFarawayIslandMew(struct ObjectEvent *); bool8 IsMewPlayingHideAndSeek(void); diff --git a/src/event_object_movement.c b/src/event_object_movement.c index c3fef8c0de..76331c2b14 100644 --- a/src/event_object_movement.c +++ b/src/event_object_movement.c @@ -8124,7 +8124,7 @@ static void DoFlaggedGroundEffects(struct ObjectEvent *objEvent, struct Sprite * { u8 i; - if (ObjectEventIsFarawayIslandMew(objEvent) == TRUE && !sub_81D4A58(objEvent)) + if (ObjectEventIsFarawayIslandMew(objEvent) == TRUE && !ShouldMewShakeGrass(objEvent)) return; for (i = 0; i < ARRAY_COUNT(sGroundEffectFuncs); i++, flags >>= 1) diff --git a/src/faraway_island.c b/src/faraway_island.c index 06e47cd216..57d31057f0 100755 --- a/src/faraway_island.c +++ b/src/faraway_island.c @@ -9,15 +9,15 @@ #include "constants/maps.h" #include "constants/metatile_behaviors.h" -static u8 sub_81D4890(u8); -static bool8 sub_81D4C14(struct ObjectEvent*, u8); -static u8 sub_81D4C9C(struct ObjectEvent*, u8); -static u8 sub_81D4C58(struct ObjectEvent*, u8); -static u8 sub_81D4CE0(struct ObjectEvent*, u8); -static u8 sub_81D4D24(u8); -static bool8 CanMewWalkToCoords(s16, s16); +static u8 GetValidMewMoveDirection(u8); +static bool8 ShouldMewMoveNorth(struct ObjectEvent*, u8); +static bool8 ShouldMewMoveSouth(struct ObjectEvent*, u8); +static bool8 ShouldMewMoveEast(struct ObjectEvent*, u8); +static bool8 ShouldMewMoveWest(struct ObjectEvent*, u8); +static u8 GetRandomMewDirectionCandidate(u8); +static bool8 CanMewMoveToCoords(s16, s16); -static EWRAM_DATA u8 sUnknown_0203CF50 = 0; +static EWRAM_DATA u8 sGrassSpriteId = 0; static s16 sPlayerToMewDeltaX; static s16 sPlayerToMewDeltaY; @@ -28,10 +28,10 @@ extern const struct SpriteTemplate *const gFieldEffectObjectTemplatePointers[]; static const s16 sFarawayIslandRockCoords[4][2] = { - {21, 16}, - {25, 16}, - {16, 17}, - {20, 20}, + {14 + 7, 9 + 7}, + {18 + 7, 9 + 7}, + { 9 + 7, 10 + 7}, + {13 + 7, 13 + 7}, }; static u8 GetMewObjectEventId(void) @@ -41,10 +41,12 @@ static u8 GetMewObjectEventId(void) return objectEventId; } +// When the player enters Faraway Island interior it begins a "hide and seek" minigame where Mew disappears into the grass +// This function returns the direction Mew will take a step, and is run every time the player takes a step u32 GetMewMoveDirection(void) { u8 i; - int skip; + int mewSafeFromTrap; struct ObjectEvent *mew = &gObjectEvents[GetMewObjectEventId()]; sPlayerToMewDeltaX = gObjectEvents[gPlayerAvatar.objectEventId].previousCoords.x - mew->currentCoords.x; @@ -52,43 +54,47 @@ u32 GetMewMoveDirection(void) for (i = 0; i < ARRAY_COUNT(sMewDirectionCandidates); i++) sMewDirectionCandidates[i] = DIR_NONE; + // Player hasn't moved (just facing new direction), don't move if (gObjectEvents[gPlayerAvatar.objectEventId].previousCoords.x == gObjectEvents[gPlayerAvatar.objectEventId].currentCoords.x && gObjectEvents[gPlayerAvatar.objectEventId].previousCoords.y == gObjectEvents[gPlayerAvatar.objectEventId].currentCoords.y) { return DIR_NONE; } + // Mew is invisible except for every 8th step if (VarGet(VAR_FARAWAY_ISLAND_STEP_COUNTER) % 8 == 0) - mew->invisible = 0; + mew->invisible = FALSE; else - mew->invisible = 1; + mew->invisible = TRUE; + // Mew will stay in place for 1 step after its visible if (VarGet(VAR_FARAWAY_ISLAND_STEP_COUNTER) % 9 == 0) return DIR_NONE; + // Below loop is for Mew to try to avoid getting trapped between the player and a rock for (i = 0; i < ARRAY_COUNT(sFarawayIslandRockCoords); i++) { if (gObjectEvents[gPlayerAvatar.objectEventId].previousCoords.x == sFarawayIslandRockCoords[i][0]) { - skip = 0; + mewSafeFromTrap = FALSE; if (gObjectEvents[gPlayerAvatar.objectEventId].previousCoords.y < sFarawayIslandRockCoords[i][1]) { if (mew->currentCoords.y <= sFarawayIslandRockCoords[i][1]) - skip = 1; + mewSafeFromTrap = TRUE; } else { if (mew->currentCoords.y >= sFarawayIslandRockCoords[i][1]) - skip = 1; + mewSafeFromTrap = TRUE; } - if (!skip) + if (!mewSafeFromTrap) { if (sPlayerToMewDeltaX > 0) { if (mew->currentCoords.x + 1 == gObjectEvents[gPlayerAvatar.objectEventId].previousCoords.x) { - if (CanMewWalkToCoords(mew->currentCoords.x + 1, mew->currentCoords.y)) + if (CanMewMoveToCoords(mew->currentCoords.x + 1, mew->currentCoords.y)) return DIR_EAST; } } @@ -96,7 +102,7 @@ u32 GetMewMoveDirection(void) { if (mew->currentCoords.x - 1 == gObjectEvents[gPlayerAvatar.objectEventId].previousCoords.x) { - if (CanMewWalkToCoords(mew->currentCoords.x - 1, mew->currentCoords.y)) + if (CanMewMoveToCoords(mew->currentCoords.x - 1, mew->currentCoords.y)) return DIR_WEST; } } @@ -105,12 +111,12 @@ u32 GetMewMoveDirection(void) { if (sPlayerToMewDeltaY > 0) { - if (CanMewWalkToCoords(mew->currentCoords.x, mew->currentCoords.y - 1)) + if (CanMewMoveToCoords(mew->currentCoords.x, mew->currentCoords.y - 1)) return DIR_NORTH; } else { - if (CanMewWalkToCoords(mew->currentCoords.x, mew->currentCoords.y + 1)) + if (CanMewMoveToCoords(mew->currentCoords.x, mew->currentCoords.y + 1)) return DIR_SOUTH; } } @@ -119,25 +125,25 @@ u32 GetMewMoveDirection(void) if (gObjectEvents[gPlayerAvatar.objectEventId].previousCoords.y == sFarawayIslandRockCoords[i][1]) { - skip = 0; + mewSafeFromTrap = FALSE; if (gObjectEvents[gPlayerAvatar.objectEventId].previousCoords.x < sFarawayIslandRockCoords[i][0]) { if (mew->currentCoords.x <= sFarawayIslandRockCoords[i][0]) - skip = 1; + mewSafeFromTrap = TRUE; } else { if (mew->currentCoords.x >= sFarawayIslandRockCoords[i][0]) - skip = 1; + mewSafeFromTrap = TRUE; } - if (!skip) + if (!mewSafeFromTrap) { if (sPlayerToMewDeltaY > 0) { if (mew->currentCoords.y + 1 == gObjectEvents[gPlayerAvatar.objectEventId].previousCoords.y) { - if (CanMewWalkToCoords(mew->currentCoords.x, mew->currentCoords.y + 1)) + if (CanMewMoveToCoords(mew->currentCoords.x, mew->currentCoords.y + 1)) return DIR_SOUTH; } } @@ -145,7 +151,7 @@ u32 GetMewMoveDirection(void) { if (mew->currentCoords.y - 1 == gObjectEvents[gPlayerAvatar.objectEventId].previousCoords.y) { - if (CanMewWalkToCoords(mew->currentCoords.x, mew->currentCoords.y - 1)) + if (CanMewMoveToCoords(mew->currentCoords.x, mew->currentCoords.y - 1)) return DIR_NORTH; } } @@ -154,12 +160,12 @@ u32 GetMewMoveDirection(void) { if (sPlayerToMewDeltaX > 0) { - if (CanMewWalkToCoords(mew->currentCoords.x - 1, mew->currentCoords.y)) + if (CanMewMoveToCoords(mew->currentCoords.x - 1, mew->currentCoords.y)) return DIR_WEST; } else { - if (CanMewWalkToCoords(mew->currentCoords.x + 1, mew->currentCoords.y)) + if (CanMewMoveToCoords(mew->currentCoords.x + 1, mew->currentCoords.y)) return DIR_EAST; } } @@ -167,92 +173,101 @@ u32 GetMewMoveDirection(void) } } - if (sub_81D4C14(mew, 0)) + // Check if Mew can move in any direction without getting closer to the player + // If so load into sMewDirectionCandidates + // If Mew can move in two of the checked directions, choose one randomly + if (ShouldMewMoveNorth(mew, 0)) { - if (sub_81D4C58(mew, 1)) - return sub_81D4D24(2); - else if (sub_81D4CE0(mew, 1)) - return sub_81D4D24(2); + if (ShouldMewMoveEast(mew, 1)) + return GetRandomMewDirectionCandidate(2); + else if (ShouldMewMoveWest(mew, 1)) + return GetRandomMewDirectionCandidate(2); else return DIR_NORTH; } - if (sub_81D4C9C(mew, 0)) + if (ShouldMewMoveSouth(mew, 0)) { - if (sub_81D4C58(mew, 1)) - return sub_81D4D24(2); - else if (sub_81D4CE0(mew, 1)) - return sub_81D4D24(2); + if (ShouldMewMoveEast(mew, 1)) + return GetRandomMewDirectionCandidate(2); + else if (ShouldMewMoveWest(mew, 1)) + return GetRandomMewDirectionCandidate(2); else return DIR_SOUTH; } - if (sub_81D4C58(mew, 0)) + if (ShouldMewMoveEast(mew, 0)) { - if (sub_81D4C14(mew, 1)) - return sub_81D4D24(2); - else if (sub_81D4C9C(mew, 1)) - return sub_81D4D24(2); + if (ShouldMewMoveNorth(mew, 1)) + return GetRandomMewDirectionCandidate(2); + else if (ShouldMewMoveSouth(mew, 1)) + return GetRandomMewDirectionCandidate(2); else return DIR_EAST; } - if (sub_81D4CE0(mew, 0)) + if (ShouldMewMoveWest(mew, 0)) { - if (sub_81D4C14(mew, 1)) - return sub_81D4D24(2); - else if (sub_81D4C9C(mew, 1)) - return sub_81D4D24(2); + if (ShouldMewMoveNorth(mew, 1)) + return GetRandomMewDirectionCandidate(2); + else if (ShouldMewMoveSouth(mew, 1)) + return GetRandomMewDirectionCandidate(2); else return DIR_WEST; } + // If this point is reached, Mew cannot move without getting closer to the player + + // Avoid player on same Y, try move North/South if (sPlayerToMewDeltaY == 0) { if (gObjectEvents[gPlayerAvatar.objectEventId].currentCoords.y > mew->currentCoords.y) { - if (CanMewWalkToCoords(mew->currentCoords.x, mew->currentCoords.y - 1)) + if (CanMewMoveToCoords(mew->currentCoords.x, mew->currentCoords.y - 1)) return DIR_NORTH; } if (gObjectEvents[gPlayerAvatar.objectEventId].currentCoords.y < mew->currentCoords.y) { - if (CanMewWalkToCoords(mew->currentCoords.x, mew->currentCoords.y + 1)) + if (CanMewMoveToCoords(mew->currentCoords.x, mew->currentCoords.y + 1)) return DIR_SOUTH; } - if (CanMewWalkToCoords(mew->currentCoords.x, mew->currentCoords.y - 1)) + if (CanMewMoveToCoords(mew->currentCoords.x, mew->currentCoords.y - 1)) return DIR_NORTH; - if (CanMewWalkToCoords(mew->currentCoords.x, mew->currentCoords.y + 1)) + if (CanMewMoveToCoords(mew->currentCoords.x, mew->currentCoords.y + 1)) return DIR_SOUTH; } + // Avoid player on same X, try move West/East if (sPlayerToMewDeltaX == 0) { if (gObjectEvents[gPlayerAvatar.objectEventId].currentCoords.x > mew->currentCoords.x) { - if (CanMewWalkToCoords(mew->currentCoords.x - 1, mew->currentCoords.y)) + if (CanMewMoveToCoords(mew->currentCoords.x - 1, mew->currentCoords.y)) return DIR_WEST; } if (gObjectEvents[gPlayerAvatar.objectEventId].currentCoords.x < mew->currentCoords.x) { - if (CanMewWalkToCoords(mew->currentCoords.x + 1, mew->currentCoords.y)) + if (CanMewMoveToCoords(mew->currentCoords.x + 1, mew->currentCoords.y)) return DIR_EAST; } - if (CanMewWalkToCoords(mew->currentCoords.x + 1, mew->currentCoords.y)) + if (CanMewMoveToCoords(mew->currentCoords.x + 1, mew->currentCoords.y)) return DIR_EAST; - if (CanMewWalkToCoords(mew->currentCoords.x - 1, mew->currentCoords.y)) + if (CanMewMoveToCoords(mew->currentCoords.x - 1, mew->currentCoords.y)) return DIR_WEST; } - return sub_81D4890(DIR_NONE); + // Can't avoid player on axis, move any valid direction + return GetValidMewMoveDirection(DIR_NONE); } -static bool8 CanMewWalkToCoords(s16 x, s16 y) +// Mew can move to any Tall/Long Grass metatile the player isn't currently on +static bool8 CanMewMoveToCoords(s16 x, s16 y) { if (gObjectEvents[gPlayerAvatar.objectEventId].currentCoords.x == x && gObjectEvents[gPlayerAvatar.objectEventId].currentCoords.y == y) @@ -263,7 +278,8 @@ static bool8 CanMewWalkToCoords(s16 x, s16 y) return MetatileBehavior_IsPokeGrass(MapGridGetMetatileBehaviorAt(x, y)); } -static u8 sub_81D4890(u8 ignoredDir) +// Last ditch effort to move, clear move candidates and try all directions again +static u8 GetValidMewMoveDirection(u8 ignoredDir) { u8 i; u8 count = 0; @@ -272,25 +288,25 @@ static u8 sub_81D4890(u8 ignoredDir) for (i = 0; i < ARRAY_COUNT(sMewDirectionCandidates); i++) sMewDirectionCandidates[i] = DIR_NONE; - if (CanMewWalkToCoords(mew->currentCoords.x, mew->currentCoords.y - 1) == TRUE && ignoredDir != DIR_NORTH) + if (CanMewMoveToCoords(mew->currentCoords.x, mew->currentCoords.y - 1) == TRUE && ignoredDir != DIR_NORTH) { sMewDirectionCandidates[count] = DIR_NORTH; count++; } - if (CanMewWalkToCoords(mew->currentCoords.x + 1, mew->currentCoords.y) == TRUE && ignoredDir != DIR_EAST) + if (CanMewMoveToCoords(mew->currentCoords.x + 1, mew->currentCoords.y) == TRUE && ignoredDir != DIR_EAST) { sMewDirectionCandidates[count] = DIR_EAST; count++; } - if (CanMewWalkToCoords(mew->currentCoords.x, mew->currentCoords.y + 1) == TRUE && ignoredDir != DIR_SOUTH) + if (CanMewMoveToCoords(mew->currentCoords.x, mew->currentCoords.y + 1) == TRUE && ignoredDir != DIR_SOUTH) { sMewDirectionCandidates[count] = DIR_SOUTH; count++; } - if (CanMewWalkToCoords(mew->currentCoords.x - 1, mew->currentCoords.y) == TRUE && ignoredDir != DIR_WEST) + if (CanMewMoveToCoords(mew->currentCoords.x - 1, mew->currentCoords.y) == TRUE && ignoredDir != DIR_WEST) { sMewDirectionCandidates[count] = DIR_WEST; count++; @@ -340,7 +356,9 @@ bool8 IsMewPlayingHideAndSeek(void) return FALSE; } -bool8 sub_81D4A58(struct ObjectEvent *objectEvent) +// Every 4th step Mew will shake the grass it steps into +// Otherwise its movement leaves grass undisturbed +bool8 ShouldMewShakeGrass(struct ObjectEvent *objectEvent) { if (VarGet(VAR_FARAWAY_ISLAND_STEP_COUNTER) != 0xFFFF && VarGet(VAR_FARAWAY_ISLAND_STEP_COUNTER) % 4 == 0) @@ -349,22 +367,25 @@ bool8 sub_81D4A58(struct ObjectEvent *objectEvent) return FALSE; } -void sub_81D4A90(void) +void SetMewAboveGrass(void) { s16 x; s16 y; u8 spriteId; struct ObjectEvent *mew = &gObjectEvents[GetMewObjectEventId()]; - mew->invisible = 0; + mew->invisible = FALSE; if (gSpecialVar_0x8004 == 1) { + // For after battle where Mew should still be present (e.g. if ran from battle) mew->fixedPriority = 1; gSprites[mew->spriteId].subspriteMode = SUBSPRITES_IGNORE_PRIORITY; gSprites[mew->spriteId].subpriority = 1; } else { + // Mew emerging from grass when found + // Also do field effect for grass shaking as it emerges VarSet(VAR_FARAWAY_ISLAND_STEP_COUNTER, 0xFFFF); mew->fixedPriority = 1; gSprites[mew->spriteId].subspriteMode = SUBSPRITES_IGNORE_PRIORITY; @@ -377,10 +398,10 @@ void sub_81D4A90(void) x = mew->currentCoords.x; y = mew->currentCoords.y; SetSpritePosToOffsetMapCoords(&x, &y, 8, 8); - sUnknown_0203CF50 = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[15], x, y, gSprites[mew->spriteId].subpriority - 1); - if (sUnknown_0203CF50 != MAX_SPRITES) + sGrassSpriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[15], x, y, gSprites[mew->spriteId].subpriority - 1); + if (sGrassSpriteId != MAX_SPRITES) { - struct Sprite *sprite = &gSprites[sUnknown_0203CF50]; + struct Sprite *sprite = &gSprites[sGrassSpriteId]; sprite->coordOffsetEnabled = 1; sprite->oam.priority = 2; sprite->callback = SpriteCallbackDummy; @@ -388,15 +409,15 @@ void sub_81D4A90(void) } } -void sub_81D4BEC(void) +void DestroyMewEmergingGrassSprite(void) { - if (sUnknown_0203CF50 != MAX_SPRITES) - DestroySprite(&gSprites[sUnknown_0203CF50]); + if (sGrassSpriteId != MAX_SPRITES) + DestroySprite(&gSprites[sGrassSpriteId]); } -static bool8 sub_81D4C14(struct ObjectEvent *mew, u8 index) +static bool8 ShouldMewMoveNorth(struct ObjectEvent *mew, u8 index) { - if (sPlayerToMewDeltaY > 0 && CanMewWalkToCoords(mew->currentCoords.x, mew->currentCoords.y - 1)) + if (sPlayerToMewDeltaY > 0 && CanMewMoveToCoords(mew->currentCoords.x, mew->currentCoords.y - 1)) { sMewDirectionCandidates[index] = DIR_NORTH; return TRUE; @@ -405,9 +426,9 @@ static bool8 sub_81D4C14(struct ObjectEvent *mew, u8 index) return FALSE; } -static u8 sub_81D4C58(struct ObjectEvent *mew, u8 index) +static bool8 ShouldMewMoveEast(struct ObjectEvent *mew, u8 index) { - if (sPlayerToMewDeltaX < 0 && CanMewWalkToCoords(mew->currentCoords.x + 1, mew->currentCoords.y)) + if (sPlayerToMewDeltaX < 0 && CanMewMoveToCoords(mew->currentCoords.x + 1, mew->currentCoords.y)) { sMewDirectionCandidates[index] = DIR_EAST; return TRUE; @@ -416,9 +437,9 @@ static u8 sub_81D4C58(struct ObjectEvent *mew, u8 index) return FALSE; } -static u8 sub_81D4C9C(struct ObjectEvent *mew, u8 index) +static bool8 ShouldMewMoveSouth(struct ObjectEvent *mew, u8 index) { - if (sPlayerToMewDeltaY < 0 && CanMewWalkToCoords(mew->currentCoords.x, mew->currentCoords.y + 1)) + if (sPlayerToMewDeltaY < 0 && CanMewMoveToCoords(mew->currentCoords.x, mew->currentCoords.y + 1)) { sMewDirectionCandidates[index] = DIR_SOUTH; return TRUE; @@ -427,9 +448,9 @@ static u8 sub_81D4C9C(struct ObjectEvent *mew, u8 index) return FALSE; } -static u8 sub_81D4CE0(struct ObjectEvent *mew, u8 index) +static bool8 ShouldMewMoveWest(struct ObjectEvent *mew, u8 index) { - if (sPlayerToMewDeltaX > 0 && CanMewWalkToCoords(mew->currentCoords.x - 1, mew->currentCoords.y)) + if (sPlayerToMewDeltaX > 0 && CanMewMoveToCoords(mew->currentCoords.x - 1, mew->currentCoords.y)) { sMewDirectionCandidates[index] = DIR_WEST; return TRUE; @@ -438,7 +459,7 @@ static u8 sub_81D4CE0(struct ObjectEvent *mew, u8 index) return FALSE; } -static u8 sub_81D4D24(u8 mod) +static u8 GetRandomMewDirectionCandidate(u8 numDirections) { - return sMewDirectionCandidates[VarGet(VAR_FARAWAY_ISLAND_STEP_COUNTER) % mod]; + return sMewDirectionCandidates[VarGet(VAR_FARAWAY_ISLAND_STEP_COUNTER) % numDirections]; } From ad3de420af4f5daf617103352f5139e17e7b636a Mon Sep 17 00:00:00 2001 From: GriffinR Date: Tue, 21 Jul 2020 17:21:01 -0400 Subject: [PATCH 019/101] Sync flags with pokeruby --- data/maps/LavaridgeTown_HerbShop/scripts.inc | 4 +-- include/constants/flags.h | 34 +++++++------------- 2 files changed, 13 insertions(+), 25 deletions(-) diff --git a/data/maps/LavaridgeTown_HerbShop/scripts.inc b/data/maps/LavaridgeTown_HerbShop/scripts.inc index c08d37609c..d98d6ef49f 100644 --- a/data/maps/LavaridgeTown_HerbShop/scripts.inc +++ b/data/maps/LavaridgeTown_HerbShop/scripts.inc @@ -28,12 +28,12 @@ LavaridgeTown_HerbShop_EventScript_ExpertM:: @ 81FE4FC LavaridgeTown_HerbShop_EventScript_OldMan:: @ 81FE505 lock faceplayer - goto_if_set FLFLAG_RECEIVED_CHARCOAL, LavaridgeTown_HerbShop_EventScript_ExplainCharcoal + goto_if_set FLAG_RECEIVED_CHARCOAL, LavaridgeTown_HerbShop_EventScript_ExplainCharcoal msgbox LavaridgeTown_HerbShop_Text_YouveComeToLookAtHerbalMedicine, MSGBOX_DEFAULT giveitem ITEM_CHARCOAL compare VAR_RESULT, FALSE goto_if_eq Common_EventScript_ShowBagIsFull - setflag FLFLAG_RECEIVED_CHARCOAL + setflag FLAG_RECEIVED_CHARCOAL release end diff --git a/include/constants/flags.h b/include/constants/flags.h index e1a88283a5..485dd3058c 100644 --- a/include/constants/flags.h +++ b/include/constants/flags.h @@ -275,7 +275,7 @@ #define FLAG_RECEIVED_DURIN_BERRY 0xFB #define FLAG_RECEIVED_BELUE_BERRY 0xFC #define FLAG_ENABLE_RIVAL_MATCH_CALL 0xFD -#define FLFLAG_RECEIVED_CHARCOAL 0xFE +#define FLAG_RECEIVED_CHARCOAL 0xFE #define FLAG_LATIOS_OR_LATIAS_ROAMING 0xFF #define FLAG_RECEIVED_REPEAT_BALL 0x100 #define FLAG_RECEIVED_OLD_ROD 0x101 @@ -1077,9 +1077,7 @@ #define FLAG_ITEM_ROUTE_120_NUGGET 0x406 #define FLAG_ITEM_ROUTE_120_FULL_HEAL 0x407 #define FLAG_ITEM_ROUTE_123_CALCIUM 0x408 - -#define FLAG_UNUSED_0x409 0x409 // Unused Flag - +#define FLAG_ITEM_ROUTE_123_RARE_CANDY 0x409 // Unused Flag, leftover from R/S. In Emerald this is a hidden item and uses a different flag #define FLAG_ITEM_ROUTE_127_ZINC 0x40A #define FLAG_ITEM_ROUTE_127_CARBOS 0x40B #define FLAG_ITEM_ROUTE_132_RARE_CANDY 0x40C @@ -1171,37 +1169,27 @@ #define FLAG_ITEM_NEW_MAUVILLE_FULL_HEAL 0x462 #define FLAG_ITEM_NEW_MAUVILLE_PARALYZE_HEAL 0x463 #define FLAG_ITEM_AQUA_HIDEOUT_B1F_MASTER_BALL 0x464 - -#define FLAG_UNUSED_0x465 0x465 // Unused Flag -#define FLAG_UNUSED_0x466 0x466 // Unused Flag -#define FLAG_UNUSED_0x467 0x467 // Unused Flag +#define FLAG_ITEM_OLD_MAGMA_HIDEOUT_B1F_MASTER_BALL 0x465 // Unused Flag, leftover from the Ruby Magma hideout +#define FLAG_ITEM_OLD_MAGMA_HIDEOUT_B1F_MAX_ELIXIR 0x466 // Unused Flag, leftover from the Ruby Magma hideout +#define FLAG_ITEM_OLD_MAGMA_HIDEOUT_B2F_NEST_BALL 0x467 // Unused Flag, leftover from the Ruby Magma hideout #define FLAG_UNUSED_0x468 0x468 // Unused Flag - #define FLAG_ITEM_MT_PYRE_2F_ULTRA_BALL 0x469 #define FLAG_ITEM_MT_PYRE_4F_SEA_INCENSE 0x46A #define FLAG_ITEM_SAFARI_ZONE_SOUTH_WEST_MAX_REVIVE 0x46B #define FLAG_ITEM_AQUA_HIDEOUT_B1F_NUGGET 0x46C - -#define FLAG_UNUSED_0x46D 0x46D // Unused Flag - +#define FLAG_ITEM_MOSSDEEP_STEVENS_HOUSE_HM08 0x46D // Unused Flag, leftover from R/S. HM08 is given to the player directly in Emerald #define FLAG_ITEM_ROUTE_119_NUGGET 0x46E #define FLAG_ITEM_ROUTE_104_POTION 0x46F - #define FLAG_UNUSED_0x470 0x470 // Unused Flag - #define FLAG_ITEM_ROUTE_103_PP_UP 0x471 - #define FLAG_UNUSED_0x472 0x472 // Unused Flag - #define FLAG_ITEM_ROUTE_108_STAR_PIECE 0x473 #define FLAG_ITEM_ROUTE_109_POTION 0x474 #define FLAG_ITEM_ROUTE_110_ELIXIR 0x475 #define FLAG_ITEM_ROUTE_111_ELIXIR 0x476 #define FLAG_ITEM_ROUTE_113_HYPER_POTION 0x477 #define FLAG_ITEM_ROUTE_115_HEAL_POWDER 0x478 - #define FLAG_UNUSED_0x479 0x479 // Unused Flag - #define FLAG_ITEM_ROUTE_116_POTION 0x47A #define FLAG_ITEM_ROUTE_119_ELIXIR_2 0x47B #define FLAG_ITEM_ROUTE_120_REVIVE 0x47C @@ -1356,7 +1344,7 @@ #define FLAG_SYS_POKEMON_GET (SYSTEM_FLAGS + 0x0) // FLAG_0x860 #define FLAG_SYS_POKEDEX_GET (SYSTEM_FLAGS + 0x1) #define FLAG_SYS_POKENAV_GET (SYSTEM_FLAGS + 0x2) -#define FLAG_UNUSED_0x863 (SYSTEM_FLAGS + 0x3) +#define FLAG_UNUSED_0x863 (SYSTEM_FLAGS + 0x3) // Unused Flag #define FLAG_SYS_GAME_CLEAR (SYSTEM_FLAGS + 0x4) #define FLAG_SYS_CHAT_USED (SYSTEM_FLAGS + 0x5) #define FLAG_SYS_HIPSTER_MEET (SYSTEM_FLAGS + 0x6) @@ -1373,7 +1361,7 @@ #define NUM_BADGES (1 + FLAG_BADGE08_GET - FLAG_BADGE01_GET) // Towns and Cities -#define FLAG_VISITED_LITTLEROOT_TOWN (SYSTEM_FLAGS + 0xF) +#define FLAG_VISITED_LITTLEROOT_TOWN (SYSTEM_FLAGS + 0xF) #define FLAG_VISITED_OLDALE_TOWN (SYSTEM_FLAGS + 0x10) #define FLAG_VISITED_DEWFORD_TOWN (SYSTEM_FLAGS + 0x11) #define FLAG_VISITED_LAVARIDGE_TOWN (SYSTEM_FLAGS + 0x12) @@ -1418,9 +1406,9 @@ #define FLAG_SYS_MIX_RECORD (SYSTEM_FLAGS + 0x34) #define FLAG_SYS_CLOCK_SET (SYSTEM_FLAGS + 0x35) #define FLAG_SYS_NATIONAL_DEX (SYSTEM_FLAGS + 0x36) -#define FLAG_SYS_UNUSED_CAVE_SHIP (SYSTEM_FLAGS + 0x37) // Unused Flag? -#define FLAG_SYS_UNUSED_CAVE_WONDER (SYSTEM_FLAGS + 0x38) // Unused Flag? -#define FLAG_SYS_UNUSED_CAVE_BATTLE (SYSTEM_FLAGS + 0x39) // Unused Flag? +#define FLAG_SYS_CAVE_SHIP (SYSTEM_FLAGS + 0x37) // Unused Flag, leftover from R/S debug, presumably used by Emerald's debug too +#define FLAG_SYS_CAVE_WONDER (SYSTEM_FLAGS + 0x38) // Unused Flag, same as above +#define FLAG_SYS_CAVE_BATTLE (SYSTEM_FLAGS + 0x39) // Unused Flag, same as above #define FLAG_SYS_SHOAL_TIDE (SYSTEM_FLAGS + 0x3A) #define FLAG_SYS_RIBBON_GET (SYSTEM_FLAGS + 0x3B) From 11178a49db67304bb82287e4c93ef4a36cf5edca Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Mon, 27 Jul 2020 12:27:35 +0200 Subject: [PATCH 020/101] Fix undefined behaviour in protect animation gPlttBufferFaded[sprite->data[2] + ++i] = gPlttBufferFaded[sprite->data[2] + i + 1] The above does NOT make it certain that i gets incremented before reading from the right side. Changed it, so the function always increments i first, then reads from pal buffer. --- src/battle_anim_effects_1.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/battle_anim_effects_1.c b/src/battle_anim_effects_1.c index 516c58e557..f4769145d4 100644 --- a/src/battle_anim_effects_1.c +++ b/src/battle_anim_effects_1.c @@ -3967,24 +3967,25 @@ static void AnimProtect(struct Sprite* sprite) static void AnimProtect_Step(struct Sprite *sprite) { - int a; - int i; + int i, savedPal; sprite->data[5] += 96; sprite->pos2.x = -(sprite->data[5] >> 8); if (++sprite->data[1] > 1) { + int id; sprite->data[1] = 0; - a = gPlttBufferFaded[sprite->data[2] + 1]; + savedPal = gPlttBufferFaded[sprite->data[2] + 1]; i = 0; do { - gPlttBufferFaded[sprite->data[2] + ++i] = gPlttBufferFaded[sprite->data[2] + i + 1]; + id = sprite->data[2] + ++i; + gPlttBufferFaded[id] = gPlttBufferFaded[id + 1]; } while (i < 6); - gPlttBufferFaded[sprite->data[2] + 7] = a; + gPlttBufferFaded[sprite->data[2] + 7] = savedPal; } - if (sprite->data[7] > 6 && sprite->data[0] >0 && ++sprite->data[6] > 1) + if (sprite->data[7] > 6 && sprite->data[0] > 0 && ++sprite->data[6] > 1) { sprite->data[6] = 0; sprite->data[7] -= 1; From 5f6e7e2279711f9aab5fe861a76b20732551eebb Mon Sep 17 00:00:00 2001 From: PokeCodec <67983839+PokeCodec@users.noreply.github.com> Date: Mon, 27 Jul 2020 14:59:37 -0400 Subject: [PATCH 021/101] Update secret_base.c --- src/secret_base.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/secret_base.c b/src/secret_base.c index 35ac31d4a7..3f69e0419e 100644 --- a/src/secret_base.c +++ b/src/secret_base.c @@ -964,7 +964,7 @@ static void HandleRegistryMenuInput(u8 taskId) data = gTasks[taskId].data; input = ListMenu_ProcessInput(data[5]); - ListMenuGetScrollAndRow((u8)data[5], (u16 *)&data[2], (u16 *)&data[1]); + ListMenuGetScrollAndRow(data[5], (u16 *)&data[2], (u16 *)&data[1]); switch (input) { case LIST_NOTHING_CHOSEN: From 71dc5edf2e590c85b5874f82dde3b418e5769450 Mon Sep 17 00:00:00 2001 From: ExpoSeed <> Date: Mon, 27 Jul 2020 17:10:42 -0500 Subject: [PATCH 022/101] Document some battle_util.c --- include/battle_util.h | 4 ++-- src/battle_script_commands.c | 2 +- src/battle_util.c | 8 ++++---- src/pokemon.c | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/include/battle_util.h b/include/battle_util.h index b77fa10ad6..e145a5e9ca 100644 --- a/include/battle_util.h +++ b/include/battle_util.h @@ -52,8 +52,8 @@ void CancelMultiTurnMoves(u8 battlerId); bool8 WasUnableToUseMove(u8 battlerId); void PrepareStringBattle(u16 stringId, u8 battlerId); void ResetSentPokesToOpponentValue(void); -void sub_803F9EC(u8 battlerId); -void sub_803FA70(u8 battlerId); +void OpponentSwitchInResetSentPokesToOpponent(u8 battlerId); +void UpdateSentPokesToOpponentValue(u8 battlerId); void BattleScriptPush(const u8* bsPtr); void BattleScriptPushCursor(void); void BattleScriptPop(void); diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 4e0e087b60..994d356258 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -5471,7 +5471,7 @@ static void Cmd_switchineffects(void) s32 i; gActiveBattler = GetBattlerForBattleScript(gBattlescriptCurrInstr[1]); - sub_803FA70(gActiveBattler); + UpdateSentPokesToOpponentValue(gActiveBattler); gHitMarker &= ~(HITMARKER_FAINTED(gActiveBattler)); gSpecialStatuses[gActiveBattler].flag40 = 0; diff --git a/src/battle_util.c b/src/battle_util.c index 9cc2252b68..a579f7edd6 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -259,7 +259,7 @@ void ResetSentPokesToOpponentValue(void) gSentPokesToOpponent[(i & BIT_FLANK) >> 1] = bits; } -void sub_803F9EC(u8 battler) +void OpponentSwitchInResetSentPokesToOpponent(u8 battler) { s32 i = 0; u32 bits = 0; @@ -279,11 +279,11 @@ void sub_803F9EC(u8 battler) } } -void sub_803FA70(u8 battler) +void UpdateSentPokesToOpponentValue(u8 battler) { if (GetBattlerSide(battler) == B_SIDE_OPPONENT) { - sub_803F9EC(battler); + OpponentSwitchInResetSentPokesToOpponent(battler); } else { @@ -1250,7 +1250,7 @@ bool8 HandleFaintedMonActions(void) gBattleStruct->faintedActionsState = 3; break; case 2: - sub_803F9EC(gBattlerFainted); + OpponentSwitchInResetSentPokesToOpponent(gBattlerFainted); if (++gBattleStruct->faintedActionsBattlerId == gBattlersCount) gBattleStruct->faintedActionsState = 3; else diff --git a/src/pokemon.c b/src/pokemon.c index 80e93c5685..b26f2f412a 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -4628,7 +4628,7 @@ void CopyPlayerPartyMonToBattleData(u8 battlerId, u8 partyIndex) gBattleMons[battlerId].statStages[i] = 6; gBattleMons[battlerId].status2 = 0; - sub_803FA70(battlerId); + UpdateSentPokesToOpponentValue(battlerId); ClearTemporarySpeciesSpriteData(battlerId, FALSE); } From fb6f859eddd63cd59e8fabd53e47ca9080c63f3e Mon Sep 17 00:00:00 2001 From: PokeCodec Date: Mon, 27 Jul 2020 19:17:34 -0400 Subject: [PATCH 023/101] semicolon --- src/AgbRfu_LinkManager.c | 2 +- src/battle_anim_psychic.c | 2 +- src/battle_anim_utility_funcs.c | 2 +- src/digit_obj_util.c | 2 +- src/mirage_tower.c | 2 +- src/save_failed_screen.c | 2 +- tools/gbagfx/gfx.c | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/AgbRfu_LinkManager.c b/src/AgbRfu_LinkManager.c index e4127ee090..f6ebcc7265 100644 --- a/src/AgbRfu_LinkManager.c +++ b/src/AgbRfu_LinkManager.c @@ -918,7 +918,7 @@ static void rfu_LMAN_REQ_callback(u16 reqCommandId, u16 reqResult) { lman.reserveDisconnectSlot_flag = 0; lman.acceptCount = 0; - lman.acceptSlot_flag = 0;; + lman.acceptSlot_flag = 0; lman.parent_child = MODE_NEUTRAL; rfu_LMAN_managerChangeAgbClockMaster(); if (reqCommandId == ID_STOP_MODE_REQ) diff --git a/src/battle_anim_psychic.c b/src/battle_anim_psychic.c index 7918698fc0..25340f9c6a 100644 --- a/src/battle_anim_psychic.c +++ b/src/battle_anim_psychic.c @@ -1101,7 +1101,7 @@ static void AnimTask_TransparentCloneGrowAndShrink_Step(u8 taskId) break; case 1: task->data[1] -= 4; - task->data[2] = 256 - (gSineTable[task->data[1]] >> 1);; + task->data[2] = 256 - (gSineTable[task->data[1]] >> 1); SetSpriteRotScale(task->data[15], task->data[2], task->data[2], 0); SetBattlerSpriteYOffsetFromOtherYScale(task->data[15], task->data[13]); if (task->data[1] == 0) diff --git a/src/battle_anim_utility_funcs.c b/src/battle_anim_utility_funcs.c index dcef7d4830..bca669cc26 100644 --- a/src/battle_anim_utility_funcs.c +++ b/src/battle_anim_utility_funcs.c @@ -569,7 +569,7 @@ static void sub_81172EC(u8 taskId) if (gTasks[taskId].data[12] == 0) { sub_80A477C(0); - gTasks[taskId].data[15]++;; + gTasks[taskId].data[15]++; } } break; diff --git a/src/digit_obj_util.c b/src/digit_obj_util.c index fe5d49e69d..f887dafb95 100644 --- a/src/digit_obj_util.c +++ b/src/digit_obj_util.c @@ -33,7 +33,7 @@ struct DigitPrinterAlloc }; // this file's functions -static u8 GetFirstOamId(u8 oamCount);; +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); diff --git a/src/mirage_tower.c b/src/mirage_tower.c index bdddbdbe64..3f3dc1ef85 100644 --- a/src/mirage_tower.c +++ b/src/mirage_tower.c @@ -690,7 +690,7 @@ static void DoFossilFallAndSink(u8 taskId) if (gSprites[sUnknown_0203CF0C->spriteId].callback != SpriteCallbackDummy) return; DestroySprite(&gSprites[sUnknown_0203CF0C->spriteId]); - FREE_AND_SET_NULL(sUnknown_0203CF0C->unkC);; + FREE_AND_SET_NULL(sUnknown_0203CF0C->unkC); FREE_AND_SET_NULL(sUnknown_0203CF0C->frameImage); FREE_AND_SET_NULL(sUnknown_0203CF0C->frameImageTiles); FREE_AND_SET_NULL(sUnknown_0203CF0C); diff --git a/src/save_failed_screen.c b/src/save_failed_screen.c index a2a2acc8d6..7c824e82dd 100644 --- a/src/save_failed_screen.c +++ b/src/save_failed_screen.c @@ -349,7 +349,7 @@ static void VBlankCB_UpdateClockGraphics(void) gMain.oamBuffer[0] = sClockOamData; gMain.oamBuffer[0].x = 112; - gMain.oamBuffer[0].y = (CLOCK_WIN_TOP + 1) * 8;; + gMain.oamBuffer[0].y = (CLOCK_WIN_TOP + 1) * 8; if (gSaveFailedClockInfo[CLOCK_RUNNING] != FALSE) { diff --git a/tools/gbagfx/gfx.c b/tools/gbagfx/gfx.c index 8d959465f7..4e85953fdc 100644 --- a/tools/gbagfx/gfx.c +++ b/tools/gbagfx/gfx.c @@ -282,7 +282,7 @@ static void HflipTile(unsigned char * tile, int bitDepth) for (i = 0; i < 8; i++) { SWAP_NYBBLES(&tile[4 * i + 0], &tile[4 * i + 3]); - SWAP_NYBBLES(&tile[4 * i + 1], &tile[4 * i + 2]);; + SWAP_NYBBLES(&tile[4 * i + 1], &tile[4 * i + 2]); } break; case 8: From b401e2eb86dba8a48c12fec75c2201de7fb1ec63 Mon Sep 17 00:00:00 2001 From: ExpoSeed <> Date: Mon, 27 Jul 2020 21:22:16 -0500 Subject: [PATCH 024/101] Fix naming style of function --- include/battle_util.h | 2 +- src/battle_util.c | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/include/battle_util.h b/include/battle_util.h index e145a5e9ca..157ba8eb6d 100644 --- a/include/battle_util.h +++ b/include/battle_util.h @@ -52,7 +52,7 @@ void CancelMultiTurnMoves(u8 battlerId); bool8 WasUnableToUseMove(u8 battlerId); void PrepareStringBattle(u16 stringId, u8 battlerId); void ResetSentPokesToOpponentValue(void); -void OpponentSwitchInResetSentPokesToOpponent(u8 battlerId); +void OpponentSwitchInResetSentPokesToOpponentValue(u8 battlerId); void UpdateSentPokesToOpponentValue(u8 battlerId); void BattleScriptPush(const u8* bsPtr); void BattleScriptPushCursor(void); diff --git a/src/battle_util.c b/src/battle_util.c index a579f7edd6..89fe95fbc4 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -259,7 +259,7 @@ void ResetSentPokesToOpponentValue(void) gSentPokesToOpponent[(i & BIT_FLANK) >> 1] = bits; } -void OpponentSwitchInResetSentPokesToOpponent(u8 battler) +void OpponentSwitchInResetSentPokesToOpponentValue(u8 battler) { s32 i = 0; u32 bits = 0; @@ -283,7 +283,7 @@ void UpdateSentPokesToOpponentValue(u8 battler) { if (GetBattlerSide(battler) == B_SIDE_OPPONENT) { - OpponentSwitchInResetSentPokesToOpponent(battler); + OpponentSwitchInResetSentPokesToOpponentValue(battler); } else { @@ -1250,7 +1250,7 @@ bool8 HandleFaintedMonActions(void) gBattleStruct->faintedActionsState = 3; break; case 2: - OpponentSwitchInResetSentPokesToOpponent(gBattlerFainted); + OpponentSwitchInResetSentPokesToOpponentValue(gBattlerFainted); if (++gBattleStruct->faintedActionsBattlerId == gBattlersCount) gBattleStruct->faintedActionsState = 3; else From b22709ee3df4c4c7b8511fd5a824b5796df84d9a Mon Sep 17 00:00:00 2001 From: GriffinR Date: Mon, 27 Jul 2020 16:31:36 -0400 Subject: [PATCH 025/101] More slot machine data documentation --- graphics/slot_machine/digital_display.png | Bin 1050 -> 1050 bytes ...85A843E.pal => flashing_lights_inside.pal} | 0 ...85A845E.pal => flashing_lights_middle.pal} | 0 ...5A847E.pal => flashing_lights_outside.pal} | 0 .../{slots_layout.bin => info_box.bin} | Bin .../{85A84B0.pal => pokeball_shining_0.pal} | 0 .../{85A84D0.pal => pokeball_shining_1.pal} | 0 .../{85A84F0.pal => pokeball_shining_2.pal} | 0 .../reel_background.bin} | 0 graphics/slot_machine/reel_pikachu.png | Bin 2210 -> 0 bytes .../reel_time_number_gap.png} | Bin .../{85A96E0.bin => reel_time_window.bin} | 0 graphics/slot_machine/spr6.pal | 19 - include/graphics.h | 19 +- src/data/graphics/slot_machine.h | 24 +- src/slot_machine.c | 2066 +++++++++-------- 16 files changed, 1134 insertions(+), 994 deletions(-) rename graphics/slot_machine/{85A843E.pal => flashing_lights_inside.pal} (100%) rename graphics/slot_machine/{85A845E.pal => flashing_lights_middle.pal} (100%) rename graphics/slot_machine/{85A847E.pal => flashing_lights_outside.pal} (100%) rename graphics/slot_machine/{slots_layout.bin => info_box.bin} (100%) rename graphics/slot_machine/{85A84B0.pal => pokeball_shining_0.pal} (100%) rename graphics/slot_machine/{85A84D0.pal => pokeball_shining_1.pal} (100%) rename graphics/slot_machine/{85A84F0.pal => pokeball_shining_2.pal} (100%) rename graphics/{unknown/unknown_DD19F8.bin => slot_machine/reel_background.bin} (100%) delete mode 100644 graphics/slot_machine/reel_pikachu.png rename graphics/{unknown/unknown_DD1A18.png => slot_machine/reel_time_number_gap.png} (100%) rename graphics/slot_machine/{85A96E0.bin => reel_time_window.bin} (100%) delete mode 100644 graphics/slot_machine/spr6.pal diff --git a/graphics/slot_machine/digital_display.png b/graphics/slot_machine/digital_display.png index 4ba92175f0212cfe89e001b601e1455032f13608..8295aeca2df776a26103a917108526eda35451a3 100644 GIT binary patch delta 63 tcmbQmF^gk@rb$v#)c?H#%?u1j9R=X%Kf`~lh=GAYXa2U08)Nq}0|0uv9p?Z5 delta 63 zcmbQmF^gk@rpcN$NB@Js(Qoe<_Re8Q@?!X(6|~pOvD?zn^4%JSHB%U}9RD-?pE6}m TR8*FxrsK9lOI$a`?qvo5ARHf1 diff --git a/graphics/slot_machine/85A843E.pal b/graphics/slot_machine/flashing_lights_inside.pal similarity index 100% rename from graphics/slot_machine/85A843E.pal rename to graphics/slot_machine/flashing_lights_inside.pal diff --git a/graphics/slot_machine/85A845E.pal b/graphics/slot_machine/flashing_lights_middle.pal similarity index 100% rename from graphics/slot_machine/85A845E.pal rename to graphics/slot_machine/flashing_lights_middle.pal diff --git a/graphics/slot_machine/85A847E.pal b/graphics/slot_machine/flashing_lights_outside.pal similarity index 100% rename from graphics/slot_machine/85A847E.pal rename to graphics/slot_machine/flashing_lights_outside.pal diff --git a/graphics/slot_machine/slots_layout.bin b/graphics/slot_machine/info_box.bin similarity index 100% rename from graphics/slot_machine/slots_layout.bin rename to graphics/slot_machine/info_box.bin diff --git a/graphics/slot_machine/85A84B0.pal b/graphics/slot_machine/pokeball_shining_0.pal similarity index 100% rename from graphics/slot_machine/85A84B0.pal rename to graphics/slot_machine/pokeball_shining_0.pal diff --git a/graphics/slot_machine/85A84D0.pal b/graphics/slot_machine/pokeball_shining_1.pal similarity index 100% rename from graphics/slot_machine/85A84D0.pal rename to graphics/slot_machine/pokeball_shining_1.pal diff --git a/graphics/slot_machine/85A84F0.pal b/graphics/slot_machine/pokeball_shining_2.pal similarity index 100% rename from graphics/slot_machine/85A84F0.pal rename to graphics/slot_machine/pokeball_shining_2.pal diff --git a/graphics/unknown/unknown_DD19F8.bin b/graphics/slot_machine/reel_background.bin similarity index 100% rename from graphics/unknown/unknown_DD19F8.bin rename to graphics/slot_machine/reel_background.bin diff --git a/graphics/slot_machine/reel_pikachu.png b/graphics/slot_machine/reel_pikachu.png deleted file mode 100644 index 29b004c84ca8ce20efbf5d4158ca76bd59548456..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2210 zcmV;T2wnGyP)>+000Or zNkl3~ahr?54zBi3npgtV__~D&R z!UrbU#OKHm4=jL5oG^VN0*GB8SW^fDu!Bk|2Ef>%20%p-$XL0+3}c5C*2@S1h{e$b zbnCminnw{11Bi48OlM7gCII+@{Xm~#rgE+WfY;HD{?fExM4b5(yQUy{Q4~u86gTTm z5I+}G?f^1oVq>CtVG4~%<^dZUfFgj*nE9fv`iN?2vl{(GY19V8{J} zhcXt=W*oQxn5MXYUzm}Kg_i=BvM5YH7YO*nFbRs{{c{sR2(k8wy3_=X0|HDE+q5iJ zW)OJbe3zEO%!Uhq5UI2QxEuof*nXewW+-|kb5{V<4I%D#^%CoqqV8!g9?`Y*64Bf!g;j~NF>48kZ7jsd|N&ZUIiXF-&5z~QN9F;XtV z%b{)o-a))PRV}a{)F}hhb)+2z$>%V_rkogyG5`Jo0HqEAFgF&&UF&hBFSX>5B(IcO zxNAKLFA`eV6zaccLC8OV(!$1D5TmP#)NyVshO^2w!i#+m8js@mhXz0oB7wCaQ!D;q zt65Hn#$Z6%0SODF9WZnl7Kkrdkjet57H}L!ZN8efEyVlva4@xj(Bf^RnbCt98uix( zf>E4K{TCQu=hb)iVW~CTi-0}N%BC8JNv{0>^l{q@-+@#xB>Y}zq8%vTU=ShlW*kyZ zSi`L_>W@Us84OZ?>ylXifPJj3ONzNB>Pi!O9AZwp13;qbCTX*un^kNQLz{pk1yRMZ|(Ml;tPgt$ycKQ#XdP_$BKg(3i=Cd39; zR04{3{WcJozade67m#YAy(sM$ObEToR`wrUWsw`CK}%D7Cds6wHa-UKAw{SKjYL`M zRe0l>6pB1I2Lo|-)Jy*mAXRG)26jiIk`B=6fLI$TcYsAFh-)LWLtqMB$z}|Iz9!XT zQd@O(7Hb3~DSL|j)PSpt!R^m_knqoA&eTtW#}8oK!R?1ntgimG|45@K;c<^Uc)xzK zLm*MOY2JU5?1`4F8YRijk~`6wEMi3~^}X5($sLMK;ik}w_^&hntXTR;D8Q5@IlsERGG;zp))xx zmAgxd8QA9&u)2>)Zg)+~wcK(cc3t4z$SLe=`M;I12~i)e1GxFU4r~tBo8b4<{Qxsp zHQfNX;$H)3Uw9RGn4#nhKB>{;_EP}&Q2yocN3>FXpk2Ytr?}%TmqH)6wU4Sx5Z4xJ=md$o`W$P{4+zDhGTIf*v5?c>;q0s(}NWU}NxZ97hsUME$6phVE>*nJ={%pE45Uzz* zZPJtdK0d9I{($JBmtsj#-hPZvQc52{X|DhNT`$Q}E)fuer!H?le1!D(M*{LBL1lDS z`b;^$Cb)Cje#`cQK^O@?zKtG@zoF zq*Qsa8g>B&z#~?`Z{2J4M^jR)Aw%1 zh~1gH7&tYxmp1<9aWwU;2MJAmh8Cpa>gj$1ZH%=UY>4e8e`AwK#tvV(Q>=cGqX4k} zs4I#&f*JzJ2oSuUYP^=OE8%ejcp1A}83V!*hxG;TZ#;bgaJ7vf8U?tUkzS#fFRs7f zvGLw0(5ZFpN*;J=&vh;U^}$}xELcEa&lp?h-<>o-{n?nkDG!iUi_8U%jM-(1mhm~A z6)6O`<5{DsYt%lJ)VuYC5b&;Xi_E6nT*upYBW`~=GQ?JNZ&&PpohUC#xFzSJH1yM_ z;KqMu;TE8b%x!l*)u%M8VVD!vn{$6OTI4?h820!?Ce#3#o)%MQWv<9%YJhw|s*a9J z3G}NX#vW5EkS+#>G-m+)|YOaC^xLL%`1xIKm0LCe)g<|QwAVIbV z0de!Zq(iNx=W}R{#W3|f0R;if?_dadSUgjJ0=>?W0pep=RBBrwz|~K}oUW6Kl~NbZ kYA}z0u0Af=sQ;||139l>8&3HO#{d8T07*qoM6N<$f=8MSssI20 diff --git a/graphics/unknown/unknown_DD1A18.png b/graphics/slot_machine/reel_time_number_gap.png similarity index 100% rename from graphics/unknown/unknown_DD1A18.png rename to graphics/slot_machine/reel_time_number_gap.png diff --git a/graphics/slot_machine/85A96E0.bin b/graphics/slot_machine/reel_time_window.bin similarity index 100% rename from graphics/slot_machine/85A96E0.bin rename to graphics/slot_machine/reel_time_window.bin diff --git a/graphics/slot_machine/spr6.pal b/graphics/slot_machine/spr6.pal deleted file mode 100644 index 4f74a30792..0000000000 --- a/graphics/slot_machine/spr6.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -98 98 90 -255 189 16 -131 0 0 -197 65 16 -197 65 16 -197 65 16 -197 65 16 -255 0 255 -255 0 255 -255 0 255 -255 0 255 -255 0 255 -255 0 255 -255 0 255 -255 0 255 -0 0 0 diff --git a/include/graphics.h b/include/graphics.h index ab2b299c05..106798892f 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -4832,7 +4832,7 @@ extern const u8 gSlotMachineReelTimeNumber3[]; extern const u8 gSlotMachineReelTimeNumber4[]; extern const u8 gSlotMachineReelTimeNumber5[]; extern const u8 gSlotMachineReelTimeShadow[]; -extern const u8 gUnknown_08DD1A18[]; +extern const u8 gSlotMachineReelTimeNumberGap_Gfx[]; extern const u8 gSlotMachineReelTimeBolt0[]; extern const u8 gSlotMachineReelTimeBolt1[]; extern const u8 gSlotMachineReelTimePikaAura[]; @@ -4858,19 +4858,18 @@ extern const u8 gSlotMachineNumber6Tiles[]; extern const u8 gSlotMachineNumber7Tiles[]; extern const u8 gSlotMachineNumber8Tiles[]; extern const u8 gSlotMachineNumber9Tiles[]; -extern const u8 gUnknown_08DD19F8[]; +extern const u8 gSlotMachineReelBackground_Tilemap[]; extern const u32 gSlotMachineMenu_Gfx[]; extern const u16 gSlotMachineMenu_Tilemap[]; -extern const u16 gUnknown_08DCEC70[]; +extern const u16 gSlotMachineInfoBox_Tilemap[]; extern const u16 gSlotMachineMenu_Pal[]; -extern const u16 gUnknown_08DCF230[]; -extern const u16 gUnknown_08DCF170[]; -extern const u16 gUnknown_08DCF1B0[]; +extern const u16 gSlotMachineReelSymbols_Pal[]; +extern const u16 gSlotMachineReelTimeMisc_Pal[]; +extern const u16 gSlotMachineReelTimeMachine_Pal[]; +extern const u16 gSlotMachineMisc_Pal[]; +extern const u16 gSlotMachineReelTimeExplosion_Pal[]; extern const u16 gSlotMachineDigitalDisplay_Pal[]; -extern const u16 gUnknown_08DCF1F0[]; -extern const u16 gUnknown_08DCF210[]; -extern const u16 gUnknown_08DCF230[]; -extern const u16 gUnknown_08DCF190[]; +extern const u16 gSlotMachineReelTimePikachu_Pal[]; extern const u32 gBattleAnimBgTilemap_Sandstorm[]; extern const u32 gBattleAnimBgImage_Sandstorm[]; diff --git a/src/data/graphics/slot_machine.h b/src/data/graphics/slot_machine.h index 94ab989e28..6500ad7f3b 100644 --- a/src/data/graphics/slot_machine.h +++ b/src/data/graphics/slot_machine.h @@ -2,22 +2,16 @@ const u16 gSlotMachineMenu_Pal[] = INCBIN_U16("graphics/slot_machine/menu.gbapal const u32 gSlotMachineMenu_Gfx[] = INCBIN_U32("graphics/slot_machine/menu.4bpp.lz"); const u16 gSlotMachineMenu_Tilemap[] = INCBIN_U16("graphics/slot_machine/menu.bin"); -const u16 gUnknown_08DCEC70[] = INCBIN_U16("graphics/slot_machine/slots_layout.bin"); - -const u16 gUnknown_08DCF170[] = INCBIN_U16("graphics/slot_machine/reel_symbols/1.gbapal"); - -const u16 gUnknown_08DCF190[] = INCBIN_U16("graphics/slot_machine/reel_pikachu.gbapal"); - -const u16 gUnknown_08DCF1B0[] = INCBIN_U16("graphics/slot_machine/shadow.gbapal"); +const u16 gSlotMachineInfoBox_Tilemap[] = INCBIN_U16("graphics/slot_machine/info_box.bin"); +const u16 gSlotMachineReelSymbols_Pal[] = INCBIN_U16("graphics/slot_machine/reel_symbols/1.gbapal"); +const u16 gSlotMachineReelTimePikachu_Pal[] = INCBIN_U16("graphics/slot_machine/reel_time_pikachu.gbapal"); +const u16 gSlotMachineReelTimeMisc_Pal[] = INCBIN_U16("graphics/slot_machine/shadow.gbapal"); +const u16 gSlotMachineReelTimeMachine_Pal[] = INCBIN_U16("graphics/slot_machine/reel_time_machine.gbapal"); +const u16 gSlotMachineMisc_Pal[] = INCBIN_U16("graphics/slot_machine/smoke.gbapal"); +const u16 gSlotMachineReelTimeExplosion_Pal[] = INCBIN_U16("graphics/slot_machine/reel_time_explosion/0.gbapal"); const u16 gSlotMachineDigitalDisplay_Pal[] = INCBIN_U16("graphics/slot_machine/digital_display.gbapal"); -const u16 gUnknown_08DCF1F0[] = INCBIN_U16("graphics/slot_machine/smoke.gbapal"); // also duck and pika aura - -const u16 gUnknown_08DCF210[] = INCBIN_U16("graphics/slot_machine/reel_time_explosion/0.gbapal"); - -const u16 gUnknown_08DCF230[] = INCBIN_U16("graphics/slot_machine/spr6.gbapal"); - const u8 gSlotMachineReelSymbol1Tiles[] = INCBIN_U8("graphics/slot_machine/reel_symbols/1.4bpp"); const u8 gSlotMachineReelSymbol2Tiles[] = INCBIN_U8("graphics/slot_machine/reel_symbols/2.4bpp"); const u8 gSlotMachineReelSymbol3Tiles[] = INCBIN_U8("graphics/slot_machine/reel_symbols/3.4bpp"); @@ -59,5 +53,5 @@ const u8 gSlotMachineReelTimeExplosion1[] = INCBIN_U8("graphics/slot_machine/ree const u8 gSlotMachineReelTimeShadow[] = INCBIN_U8("graphics/slot_machine/shadow.4bpp"); const u8 gSlotMachineReelTimePikaAura[] = INCBIN_U8("graphics/slot_machine/pika_aura.4bpp"); -const u8 gUnknown_08DD19F8[] = INCBIN_U8("graphics/unknown/unknown_DD19F8.bin"); -const u8 gUnknown_08DD1A18[] = INCBIN_U8("graphics/unknown/unknown_DD1A18.4bpp"); +const u8 gSlotMachineReelBackground_Tilemap[] = INCBIN_U8("graphics/slot_machine/reel_background.bin"); +const u8 gSlotMachineReelTimeNumberGap_Gfx[] = INCBIN_U8("graphics/slot_machine/reel_time_number_gap.4bpp"); diff --git a/src/slot_machine.c b/src/slot_machine.c index 517cbb1431..a02950a695 100644 --- a/src/slot_machine.c +++ b/src/slot_machine.c @@ -31,8 +31,8 @@ #define SLOTMACHINE_GFX_TILES 233 #define MAX_BET 3 -#define REEL_NUM_TAGS 21 -#define REEL_TAG_HEIGHT 24 +#define SYMBOLS_PER_REEL 21 +#define REEL_SYMBOL_HEIGHT 24 // Lucky Flags #define LUCKY_BIAS_REPLAY (1 << 0) @@ -44,13 +44,40 @@ #define LUCKY_BIAS_MIXED_777 (1 << 6) #define LUCKY_BIAS_777 (1 << 7) -#define SLOT_MACHINE_TAG_7_RED 0 -#define SLOT_MACHINE_TAG_7_BLUE 1 -#define SLOT_MACHINE_TAG_AZURILL 2 -#define SLOT_MACHINE_TAG_LOTAD 3 -#define SLOT_MACHINE_TAG_CHERRY 4 -#define SLOT_MACHINE_TAG_POWER 5 -#define SLOT_MACHINE_TAG_REPLAY 6 +#define GFXTAG_7_RED 0 +#define GFXTAG_7_BLUE 1 +#define GFXTAG_AZURILL 2 +#define GFXTAG_LOTAD 3 +#define GFXTAG_CHERRY 4 +#define GFXTAG_POWER 5 +#define GFXTAG_REPLAY 6 +#define GFXTAG_NUM_0 7 +#define GFXTAG_NUM_1 8 +#define GFXTAG_NUM_2 9 +#define GFXTAG_NUM_3 10 +#define GFXTAG_NUM_4 11 +#define GFXTAG_NUM_5 12 +#define GFXTAG_NUM_6 13 +#define GFXTAG_NUM_7 14 +#define GFXTAG_NUM_8 15 +#define GFXTAG_NUM_9 16 +#define GFXTAG_REEL_BG 17 +#define GFXTAG_STOP 18 +#define GFXTAG_BONUS 19 +#define GFXTAG_BIG 20 +#define GFXTAG_REG 21 + +#define GFXTAG_SYMBOLS_START (GFXTAG_7_RED) +#define GFXTAG_NUMBERS_START (GFXTAG_NUM_0) + +#define PALTAG_REEL 0 +#define PALTAG_REEL_TIME_PIKACHU 1 +#define PALTAG_REEL_TIME_MISC 2 +#define PALTAG_REEL_TIME_MACHINE 3 +#define PALTAG_MISC 4 +#define PALTAG_EXPLOSION 5 +#define PALTAG_DIG_DISPLAY 6 +#define PALTAG_PIKA_AURA 7 #define SLOT_MACHINE_MATCHED_1CHERRY 0 #define SLOT_MACHINE_MATCHED_2CHERRY 1 @@ -68,6 +95,15 @@ #define RIGHT_REEL 2 #define NUM_REELS 3 +enum { + MATCH_MIDDLE_ROW, + MATCH_TOP_ROW, + MATCH_BOTTOM_ROW, + MATCH_NWSE_DIAG, + MATCH_NESW_DIAG, + NUM_MATCH_LINES, +}; + enum { SLOT_ACTION_UNFADE, SLOT_ACTION_1, @@ -133,6 +169,46 @@ enum { NUM_DIG_DISPLAY_SPRITES }; +// IDs used by the digital display to set coords and callbacks for its sprites +enum { + DIG_DISPINFO_INSERT, + DIG_DISPINFO_STOP_S, + DIG_DISPINFO_STOP_T, + DIG_DISPINFO_STOP_O, + DIG_DISPINFO_STOP_P, + DIG_DISPINFO_A_BUTTON_STOP, + DIG_DISPINFO_POKE_BALL_ROCKING, + DIG_DISPINFO_WIN, + DIG_DISPINFO_LOSE, + DIG_DISPINFO_SMOKE_NW, + DIG_DISPINFO_SMOKE_NE, + DIG_DISPINFO_SMOKE_SW, + DIG_DISPINFO_SMOKE_SE, + DIG_DISPINFO_REEL, + DIG_DISPINFO_TIME, + DIG_DISPINFO_NUMBER, + DIG_DISPINFO_DPAD, + DIG_DISPINFO_POKE_BALL_SHINING, + DIG_DISPINFO_REG_R, + DIG_DISPINFO_REG_E, + DIG_DISPINFO_REG_G, + DIG_DISPINFO_REG_BONUS_B, + DIG_DISPINFO_REG_BONUS_O, + DIG_DISPINFO_REG_BONUS_N, + DIG_DISPINFO_REG_BONUS_U, + DIG_DISPINFO_REG_BONUS_S, + DIG_DISPINFO_BIG_B, + DIG_DISPINFO_BIG_I, + DIG_DISPINFO_BIG_G, + DIG_DISPINFO_BIG_BONUS_B, + DIG_DISPINFO_BIG_BONUS_O, + DIG_DISPINFO_BIG_BONUS_N, + DIG_DISPINFO_BIG_BONUS_U, + DIG_DISPINFO_BIG_BONUS_S, + DIG_DISPINFO_A_BUTTON_START +}; + +// IDs for digital display "scenes", i.e. each of the screens it can show made up of sprites enum { DIG_DISPLAY_INSERT_BET, DIG_DISPLAY_STOP_REEL, @@ -168,16 +244,16 @@ struct SlotMachine /*0x22*/ u16 reelPixelOffsetsWhileStopping[NUM_REELS]; /*0x28*/ s16 reelPositions[NUM_REELS]; /*0x2E*/ s16 reelExtraTurns[3]; - /*0x34*/ s16 winnerRows[3]; - /*0x3A*/ u8 slotReelTasks[3]; - /*0x3D*/ u8 unkTaskPointer3D; - /*0x3E*/ u8 unkTaskPointer3E; + /*0x34*/ s16 winnerRows[NUM_REELS]; + /*0x3A*/ u8 slotReelTasks[NUM_REELS]; + /*0x3D*/ u8 digDisplayTaskId; + /*0x3E*/ u8 pikaPowerBoltTaskId; /*0x3F*/ u8 reelTimePikachuSpriteId; - /*0x40*/ u8 unk40; + /*0x40*/ u8 reelTimeNumberGapSpriteId; /*0x41*/ u8 reelTimeExplosionSpriteId; /*0x42*/ u8 reelTimeBrokenMachineSpriteId; /*0x43*/ u8 reelTimeSmokeSpriteId; - /*0x44*/ u8 unk44[5]; + /*0x44*/ u8 flashMatchLineSpriteIds[NUM_MATCH_LINES]; /*0x49*/ u8 reelTimeMachineSpriteIds[2]; /*0x49*/ u8 reelTimeNumberSpriteIds[3]; /*0x4E*/ u8 reelTimeShadowSpriteIds[2]; @@ -195,8 +271,8 @@ struct SlotMachine struct DigitalDisplaySprite { /*0x00*/ u8 spriteTemplateId; - /*0x01*/ u8 unk01; - /*0x02*/ s16 unk02; + /*0x01*/ u8 dispInfoId; + /*0x02*/ s16 spriteId; }; static void CB2_SlotMachineSetup(void); @@ -214,12 +290,12 @@ static void SlotMachineSetup_4_0(void); static void SlotMachineSetup_5_0(void); static void SlotMachineSetup_6_0(void); static void SlotMachineSetup_6_1(void); -static void SlotMachineSetup_AllocDigDisplayGfx(void); -static void SlotMachineSetup_SetDigDisplayImagePtrs(void); +static void AllocDigitalDisplayGfx(void); +static void SetDigitalDisplayImagePtrs(void); static void SlotMachineSetup_10_0(void); static void SlotMachineSetupGameplayTasks(void); static void GameplayTasks_Slots(void); -static void sub_8104DA4(void); +static void DestroyDigitalDisplayScene(void); static void RunSlotActions(u8 taskId); static bool8 SlotAction_UnfadeScreen(struct Task *task); static bool8 SlotAction_WaitForUnfade(struct Task *task); @@ -296,32 +372,32 @@ static void DecideReelTurns_NoBiasTag_Reel3(void); static void DecideReelTurns_NoBiasTag_Reel3_Bet1(void); static void DecideReelTurns_NoBiasTag_Reel3_Bet2(void); static void DecideReelTurns_NoBiasTag_Reel3_Bet3(void); -static void sub_8103C14(u8 a0); -static void sub_8103C48(u8 taskId); -static void LoadBetTiles(u8 a0); -static void sub_8103C78(struct Task *task, u8 taskId); -static void sub_8103CAC(struct Task *task, u8 taskId); -static void sub_8103CC8(struct Task *task, u8 taskId); -static void sub_8103D8C(u8 a0); -static void sub_8103DC8(void); -static void sub_8103E04(u8 a0); -static bool8 sub_8103E38(void); -static bool8 sub_8103E7C(void); -static bool8 sub_8103EAC(u8 spriteId); -static void sub_8103EE4(struct Sprite *sprite); -static void sub_8103F70(void); -static bool8 sub_8103FA0(void); -static void sub_8103FE8_(u8 taskId); -static void GameplayTask_PikaPower(void); -static void DisplayPikaPower(u8 pikaPower); +static void sub_8103C14(u8); +static void sub_8103C48(u8); +static void LightenBetTiles(u8); +static void sub_8103C78(struct Task *, u8); +static void sub_8103CAC(struct Task *, u8); +static void sub_8103CC8(struct Task *, u8); +static void DarkenBetTiles(u8); +static void CreateInvisibleFlashMatchLineSprites(void); +static void FlashMatchLine(u8); +static bool8 IsMatchLineDoneFlashingBeforePayout(void); +static bool8 TryStopMatchLinesFlashing(void); +static bool8 TryStopMatchLineFlashing(u8); +static void SpriteCB_FlashMatchingLines(struct Sprite *); +static void FlashSlotMachineLights(void); +static bool8 TryStopSlotMachineLights(void); +static void Task_FlashSlotMachineLights(u8); +static void CreatePikaPowerBoltTask(void); +static void DisplayPikaPower(u8); static bool8 sub_81040C8(void); -static void Task_CreatePikaPowerBolt(u8 taskId); -static void nullsub_68(struct Task *task); -static void sub_810411C(struct Task *task); -static void sub_8104144(struct Task *task); -static void sub_81041AC(struct Task *task); -static void ClearTaskDataFields_2orHigher(struct Task *task); -static void sub_810423C(u8 pikaPower); +static void Task_CreatePikaPowerBolt(u8); +static void nullsub_68(struct Task *); +static void sub_810411C(struct Task *); +static void sub_8104144(struct Task *); +static void sub_81041AC(struct Task *); +static void ClearTaskDataFields_2orHigher(struct Task *); +static void LoadPikaPowerMeter(u8 ); static void BeginReeltime(void); static bool8 IsFinalTask_RunReelTimeActions(void); static void RunReeltimeActions(u8 taskId); @@ -343,25 +419,25 @@ static void ReeltimeAction14(struct Task *); static void ReeltimeAction15(struct Task *); static void ReeltimeAction16(struct Task *); static void ReeltimeAction17(struct Task *); -static void sub_8104A40(s16, s16); -static void sub_8104A88(s16); +static void LoadReelTimeWindowTilemap(s16, s16); +static void ClearReelTimeWindowTilemap(s16); static void OpenInfoBox(u8); static bool8 IsInfoBoxClosed(void); static void RunInfoBoxActions(u8 taskId); static void InfoBox_FadeIn(struct Task *task); static void InfoBox_WaitForFade(struct Task *task); -static void InfoBox_8104B80(struct Task *task); +static void InfoBox_DrawWindow(struct Task *task); static void InfoBox_AwaitPlayerInput(struct Task *task); static void InfoBox_AddText(struct Task *task); -static void InfoBox_8104BFC(struct Task *task); -static void InfoBox_812DE14(struct Task *task); -static void InfoBox_812DE30(struct Task *task); +static void InfoBox_LoadPikaPowerMeter(struct Task *task); +static void InfoBox_LoadSlotMachineTilemap(struct Task *task); +static void InfoBox_CreateDigitalDisplay(struct Task *task); static void InfoBox_FreeTask(struct Task *task); -static void sub_8104C5C(void); +static void CreateDigitalDisplayTask(void); static void CreateDigitalDisplayScene(u8 arg0); -static bool8 sub_8104E18(void); -static void nullsub_69(struct Task *task); -static void sub_8104E74_(u8 taskId); +static bool8 IsDigitalDisplayAnimFinished(void); +static void DigitalDisplay_Idle(struct Task *task); +static void Task_DigitalDisplay(u8 taskId); static void CreateReelSymbolSprites(void); static void CreateCreditPayoutNumberSprites(void); static void CreateCoinNumberSprite(s16 x, s16 y, u8 a2, s16 a3); @@ -372,55 +448,55 @@ static void CreateReelTimeMachineSprites(void); static void CreateBrokenReelTimeMachineSprite(void); static void CreateReelTimeNumberSprites(void); static void CreateReelTimeShadowSprites(void); -static void sub_810545C(void); +static void CreateReelTimeNumberGapSprite(void); static void DestroyReelTimeMachineSprites(void); static void DestroyReelTimeShadowSprites(void); static void DestroyBrokenReelTimeMachineSprite(void); static void CreateReelTimeBoltSprites(void); -static void sub_8105688(s16 a0); +static void SetReelTimeBoltDelay(s16 a0); static void DestroyReelTimeBoltSprites(void); static void CreateReelTimePikachuAuraSprites(void); -static void sub_81057E8(s16 a0); +static void SetReelTimePikachuAuraFlashDelay(s16 a0); static void DestroyReelTimePikachuAuraSprites(void); static void CreateReelTimeExplosionSprite(void); static void DestroyReelTimeExplosionSprite(void); static void CreateReelTimeDuckSprites(void); static void DestroyReelTimeDuckSprites(void); static void CreateReelTimeSmokeSprite(void); -static bool8 sub_8105ACC(void); +static bool8 IsReelTimeSmokeAnimFinished(void); static void DestroyReelTimeSmokeSprite(void); static u8 CreatePikaPowerBoltSprite(s16 x, s16 y); -static void sub_8105B88(u8 spriteId); +static void DestroyPikaPowerBoltSprite(u8 spriteId); static u8 CreateDigitalDisplaySprite(u8 templateIdx, void (*callback)(struct Sprite*), s16 x, s16 y, s16 a4); static void sub_81063C0(void); -static void sub_8106404(void); -static void sub_8106448(void); +static void LoadReelBackground(void); +static void LoadMenuGfx(void); static void sub_81064B8(void); -static void sub_81065A8(s16 arg0, u16 arg1, u16 arg2, u16 arg3, u16 arg4); -static void sub_81065DC(void); +static void SetReelButtonTilemap(s16, u16, u16, u16, u16); +static void LoadInfoBoxTilemap(void); static void sub_812F958(void); -static void sub_812F968(void); -static void LoadSlotMachineWheelOverlay(void); +static void LoadSlotMachineMenuTilemap(void); +static void LoadSlotMachineReelOverlay(void); static u8 CreateStdDigitalDisplaySprite(u8 templateIdx, u8 cbAndCoordsIdx, s16 a2); -static void sub_8105C64(struct Sprite *sprite); -static void sub_8105F54(struct Sprite *sprite); -static void sub_8105F9C(struct Sprite *sprite); -static void sub_8105EB4(struct Sprite *sprite); -static void sub_8105C6C(struct Sprite *sprite); -static void sub_8105CF0(struct Sprite *sprite); -static void sub_8105D08(struct Sprite *sprite); -static void sub_8105D20(struct Sprite *sprite); -static void sub_8105D3C(struct Sprite *sprite); -static void sub_8105DA4(struct Sprite *sprite); -static void sub_8105E08(struct Sprite *sprite); -static void sub_8106058(struct Sprite *sprite); -static void sub_81060FC(struct Sprite *sprite); -static void sub_81061C8(struct Sprite *sprite); -static void sub_8106230(struct Sprite *sprite); -static void sub_810639C(void); -static void sub_8106364(void); -static void sub_8106370(void); -static void nullsub_70(void); +static void SpriteCB_DigitalDisplay_Static(struct Sprite *sprite); +static void SpriteCB_DigitalDisplay_Stop(struct Sprite *sprite); +static void SpriteCB_DigitalDisplay_AButtonStop(struct Sprite *sprite); +static void SpriteCB_DigitalDisplay_PokeballRocking(struct Sprite *sprite); +static void SpriteCB_DigitalDisplay_Smoke(struct Sprite *sprite); +static void SpriteCB_DigitalDisplay_SmokeNE(struct Sprite *sprite); +static void SpriteCB_DigitalDisplay_SmokeSW(struct Sprite *sprite); +static void SpriteCB_DigitalDisplay_SmokeSE(struct Sprite *sprite); +static void SpriteCB_DigitalDisplay_Reel(struct Sprite *sprite); +static void SpriteCB_DigitalDisplay_Time(struct Sprite *sprite); +static void SpriteCB_DigitalDisplay_ReelTimeNumber(struct Sprite *sprite); +static void SpriteCB_DigitalDisplay_PokeballShining(struct Sprite *sprite); +static void SpriteCB_DigitalDisplay_RegBonus(struct Sprite *sprite); +static void SpriteCB_DigitalDisplay_BigBonus(struct Sprite *sprite); +static void SpriteCB_DigitalDisplay_AButtonStart(struct Sprite *sprite); +static void EndDigitalDisplayScene_InsertBet(void); +static void EndDigitalDisplayScene_StopReel(void); +static void EndDigitalDisplayScene_Win(void); +static void EndDigitalDisplayScene_Dummy(void); static void SpriteCB_ReelSymbol(struct Sprite *sprite); static void SpriteCB_CoinNumber(struct Sprite *sprite); static void SpriteCB_ReelTimePikachu(struct Sprite *sprite); @@ -433,13 +509,13 @@ static void SpriteCB_ReelTimeSmoke(struct Sprite *sprite); static void SpriteCB_PikaPowerBolt(struct Sprite *sprite); // Ewram variables -static EWRAM_DATA u16 *sUnknown_0203AAC8 = NULL; +static EWRAM_DATA u16 *sMenuGfx = NULL; static EWRAM_DATA u16 *sSelectedPikaPowerTile = NULL; -static EWRAM_DATA u16 *sUnknown_0203AAD0 = NULL; +static EWRAM_DATA u16 *sReelOverlay_Tilemap = NULL; static EWRAM_DATA u8 *sDigitalDisplayGfxPtr = NULL; static EWRAM_DATA u8 *sReelTimeGfxPtr = NULL; -static EWRAM_DATA u16 *sUnknown_0203AADC = NULL; -static EWRAM_DATA u8 *sUnknown_0203AAE0 = NULL; +static EWRAM_DATA u16 *sReelButtonPress_Tilemap = NULL; +static EWRAM_DATA u8 *sReelBackground_Gfx = NULL; static EWRAM_DATA struct SpriteFrameImage *sImageTable_ReelTimePikachu = NULL; static EWRAM_DATA struct SpriteFrameImage *sImageTable_ReelTimeMachineAntennae = NULL; static EWRAM_DATA struct SpriteFrameImage *sImageTable_ReelTimeMachine = NULL; @@ -458,8 +534,8 @@ static EWRAM_DATA struct SpriteFrameImage *sImageTable_DigitalDisplay_Smoke = NU static EWRAM_DATA struct SpriteFrameImage *sImageTable_DigitalDisplay_Number = NULL; static EWRAM_DATA struct SpriteFrameImage *sImageTable_DigitalDisplay_Pokeball = NULL; static EWRAM_DATA struct SpriteFrameImage *sImageTable_DigitalDisplay_DPad = NULL; -static EWRAM_DATA struct SpriteSheet *sUnknown_0203AB2C = NULL; -static EWRAM_DATA struct SpriteSheet *sUnknown_0203AB30 = NULL; // Mix of digital display spritesheets and reel spritesheets +static EWRAM_DATA struct SpriteSheet *sReelBackgroundSpriteSheet = NULL; +static EWRAM_DATA struct SpriteSheet *sSlotMachineSpritesheetsPtr = NULL; static EWRAM_DATA struct SlotMachine *sSlotMachine = NULL; // IWRAM bss @@ -472,28 +548,26 @@ static const u8 gLuckyRoundProbabilities[][3]; static const u8 gBiasTags[]; static const u16 gLuckyFlagSettings_Top3[]; static const u16 gLuckyFlagSettings_NotTop3[]; -static const s16 gUnknown_083ECE7E[][2]; -static const SpriteCallback gUnknown_083ECF0C[]; +static const s16 sDigitalDisplay_SpriteCoords[][2]; +static const SpriteCallback sDigitalDisplay_SpriteCallbacks[]; static const struct SpriteTemplate *const sSpriteTemplates_DigitalDisplay[NUM_DIG_DISPLAY_SPRITES]; static const struct SubspriteTable *const sSubspriteTables_DigitalDisplay[NUM_DIG_DISPLAY_SPRITES]; static const struct SpriteTemplate sSpriteTemplate_PikaPowerBolt; static const struct SpriteTemplate sSpriteTemplate_ReelTimeSmoke; static const struct SpriteTemplate sSpriteTemplate_ReelTimeDuck; static const struct SpriteTemplate sSpriteTemplate_ReelTimeExplosion; -static const u8 gUnknown_083ECC58[2]; static const struct SpriteTemplate sSpriteTemplate_ReelTimePikachuAura; static const u16 gProbabilityTable_SkipToReeltimeAction14[]; -static const u16 *const gUnknown_083EDE10[]; +static const u16 *const sPokeballShiningPalTable[]; static const u16 gReelIncrementTable[][2]; static const u16 gReelTimeBonusIncrementTable[]; static const u16 gSlotMatchFlags[]; static const u16 gSlotPayouts[]; -static const u8 *const gUnknown_083EDCE4; -static const u8 *const gUnknown_083EDCDC; +static const u8 *const sReelBackground_Tilemap; static const u32 sReelTimeGfx[]; -static const struct SpriteSheet gSlotMachineSpriteSheets[22]; -static const struct SpritePalette gSlotMachineSpritePalettes[]; -static const u16 *const gUnknown_083EDE20; +static const struct SpriteSheet sSlotMachineSpriteSheets[22]; +static const struct SpritePalette sSlotMachineSpritePalettes[]; +static const u16 *const sDigitalDisplay_Pal; static const s16 gInitialReelPositions[][2]; static const u8 gLuckyFlagProbabilities_Top3[][6]; static const u8 gLuckyFlagProbabilities_NotTop3[][6]; @@ -501,19 +575,19 @@ static const u8 gReeltimeProbabilities_UnluckyGame[][17]; static const u8 gReelTimeProbabilities_LuckyGame[][17]; static const u8 gSym2Match[]; static const u8 gReelTimeTags[]; -static const u8 sReelSymbols[NUM_REELS][REEL_NUM_TAGS]; -static const u8 *const gUnknown_083EDD08[]; -static const u16 *const gUnknown_083EDD1C[]; -static const u8 gUnknown_083EDD30[]; -static const u8 gBettingTilesId[][2]; -static const u8 gNumberBettingTiles[]; -static const u16 *const gUnknown_083EDDA0[]; +static const u8 sReelSymbolTileTags[NUM_REELS][SYMBOLS_PER_REEL]; +static const u16 *const sLitMatchLinePalTable[]; +static const u16 *const sDarkMatchLinePalTable[]; +static const u8 sMatchLinePalOffsets[]; +static const u8 sBetToMatchLineIds[][2]; +static const u8 sMatchLinesPerBet[]; +static const u16 *const sFlashingLightsPalTable[]; static const u16 *const gUnknown_083EDDAC; -static const u16 gReelTimeWindowTilemap[]; -static const u16 gUnknown_085A9898[]; -static void (*const gUnknown_083ED064[])(void); +static const u16 sReelTimeWindow_Tilemap[]; +static const u16 sEmptyTilemap[]; +static void (*const sDigitalDisplaySceneExitCallbacks[])(void); static const struct SpriteTemplate sSpriteTemplate_ReelTimeBolt; -static const struct SpriteTemplate gSpriteTemplate_83ED4EC; // reel time. machine number background? +static const struct SpriteTemplate sSpriteTemplate_ReelTimeNumberGap; static const struct SpriteTemplate sSpriteTemplate_ReelTimeShadow; static const struct SpriteTemplate sSpriteTemplate_ReelTimeNumbers; static const struct SpriteTemplate sSpriteTemplate_BrokenReelTimeMachine; @@ -523,7 +597,7 @@ static const struct SpriteTemplate sSpriteTemplate_ReelBackground; static const struct SpriteTemplate sSpriteTemplate_CoinNumber; static const struct SpriteTemplate sSpriteTemplate_ReelSymbol; static const struct SpriteTemplate sSpriteTemplate_ReelTimePikachu; -static const struct SubspriteTable gSubspriteTables_83ED7D4[]; +static const struct SubspriteTable sSubspriteTable_ReelTimeNumberGap[]; static const struct SubspriteTable sSubspriteTable_ReelTimeShadow[]; static const struct SubspriteTable sSubspriteTable_BrokenReelTimeMachine[]; static const struct SubspriteTable sSubspriteTable_ReelTimeMachineAntennae[]; @@ -584,7 +658,7 @@ static const struct WindowTemplate sWindowTemplates[] = DUMMY_WIN_TEMPLATE }; -static const struct WindowTemplate gUnknown_085A7444 = +static const struct WindowTemplate sWindowTemplate_InfoBox = { .bg = 0, .tilemapLeft = 1, @@ -699,14 +773,14 @@ void (*const DecideReelTurns_NoBiasTag_Reel3_Bets[])(void) = DecideReelTurns_NoBiasTag_Reel3_Bet3 }; -void (*const gUnknown_083ECBA0[])(struct Task *task, u8 taskId) = +void (*const sReelStopButtonFuncs[])(struct Task *task, u8 taskId) = { sub_8103C78, sub_8103CAC, sub_8103CC8 }; -const s16 gUnknown_083ECBAC[] = {5, 10, 15}; +static const s16 sReelButtonOffsets[NUM_REELS] = {5, 10, 15}; void (*const sPikaPowerBoltFuncs[])(struct Task *task) = { @@ -716,14 +790,14 @@ void (*const sPikaPowerBoltFuncs[])(struct Task *task) = sub_81041AC }; -const u16 pikaPowerTileTable[][2] = +static const u16 sPikaPowerTileTable[][2] = { {0x9e, 0x6e}, {0x9f, 0x6f}, {0xaf, 0x7f}, }; -void (*const ReeltimeActions[])(struct Task *task) = +static void (*const sReeltimeActions[])(struct Task *task) = { ReeltimeAction0, ReeltimeAction1, @@ -746,32 +820,36 @@ void (*const ReeltimeActions[])(struct Task *task) = ReeltimeAction17 }; -const u8 gUnknown_085A75C0[] = {1, 1, 2, 2}; -const s16 gUnknown_085A75C4[] = {0x40, 0x30, 0x18, 0x08}; -const s16 gUnknown_085A75CC[] = {10, 8, 6, 4}; +static const u8 sReelTimePikachuAnimIds[] = {1, 1, 2, 2}; +static const s16 sReelTimeBoltDelays[] = {64, 48, 24, 8}; +static const s16 sPikachuAuraFlashDelays[] = {10, 8, 6, 4}; -void (*const InfoBoxActions[])(struct Task *task) = +static void (*const sInfoBoxActions[])(struct Task *task) = { + // Go to Info screen InfoBox_FadeIn, InfoBox_WaitForFade, - InfoBox_8104B80, + InfoBox_DrawWindow, InfoBox_WaitForFade, InfoBox_AddText, InfoBox_WaitForFade, + // On Info screen InfoBox_AwaitPlayerInput, + // Exit Info screen InfoBox_WaitForFade, - InfoBox_812DE14, + InfoBox_LoadSlotMachineTilemap, InfoBox_WaitForFade, - InfoBox_812DE30, + InfoBox_CreateDigitalDisplay, InfoBox_WaitForFade, - InfoBox_8104BFC, + InfoBox_LoadPikaPowerMeter, InfoBox_WaitForFade, InfoBox_FreeTask, }; -void (*const gUnknown_083ECC54[])(struct Task *task) = +// Just idles, digital display is handled by CreateDigitalDisplayScene and sprite callbacks +void (*const sDigitalDisplayActions[])(struct Task *task) = { - nullsub_69, + DigitalDisplay_Idle, }; @@ -853,11 +931,11 @@ static void CB2_SlotMachineSetup(void) gMain.state++; break; case 8: - SlotMachineSetup_AllocDigDisplayGfx(); + AllocDigitalDisplayGfx(); gMain.state++; break; case 9: - SlotMachineSetup_SetDigDisplayImagePtrs(); + SetDigitalDisplayImagePtrs(); gMain.state++; break; case 10: @@ -951,8 +1029,8 @@ static void SlotMachineSetup_2_1(void) SetGpuReg(REG_OFFSET_BG2VOFS, 0); SetGpuReg(REG_OFFSET_BG3HOFS, 0); SetGpuReg(REG_OFFSET_BG3VOFS, 0); - SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG0 | WININ_WIN0_BG1 | WININ_WIN0_BG2 | WININ_WIN0_BG3 | WININ_WIN0_OBJ | WININ_WIN0_CLR); - SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG0 | WINOUT_WIN01_BG1 | WINOUT_WIN01_BG2 | WINOUT_WIN01_BG3 | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR); + SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR); + SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG_ALL | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR); SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG3 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_OBJ); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(9, 8)); } @@ -976,18 +1054,18 @@ static void SlotMachineSetup_0_1(void) sSlotMachine->bet = 0; sSlotMachine->currReel = 0; sSlotMachine->reelIncrement = 8; - sSlotMachine->win0h = 0xf0; - sSlotMachine->win0v = 0xa0; - sSlotMachine->winIn = 0x3f; - sSlotMachine->winOut = 0x3f; + sSlotMachine->win0h = DISPLAY_WIDTH; + sSlotMachine->win0v = DISPLAY_HEIGHT; + sSlotMachine->winIn = WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR; + sSlotMachine->winOut = WINOUT_WIN01_BG_ALL | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR; sSlotMachine->backupMapMusic = GetCurrentMapMusic(); for (i = 0; i < NUM_REELS; i++) { sSlotMachine->reelPixelOffsetsWhileStopping[i] = 0; - sSlotMachine->reelPositions[i] = gInitialReelPositions[i][sSlotMachine->luckyGame] % REEL_NUM_TAGS; - sSlotMachine->reelPixelOffsets[i] = REEL_NUM_TAGS * REEL_TAG_HEIGHT - sSlotMachine->reelPositions[i] * REEL_TAG_HEIGHT; - sSlotMachine->reelPixelOffsets[i] %= REEL_NUM_TAGS * REEL_TAG_HEIGHT; + sSlotMachine->reelPositions[i] = gInitialReelPositions[i][sSlotMachine->luckyGame] % SYMBOLS_PER_REEL; + sSlotMachine->reelPixelOffsets[i] = SYMBOLS_PER_REEL * REEL_SYMBOL_HEIGHT - sSlotMachine->reelPositions[i] * REEL_SYMBOL_HEIGHT; + sSlotMachine->reelPixelOffsets[i] %= SYMBOLS_PER_REEL * REEL_SYMBOL_HEIGHT; } AlertTVThatPlayerPlayedSlotMachine(GetCoins()); } @@ -1004,22 +1082,22 @@ static void SlotMachineSetup_3_0(void) static void SlotMachineSetup_4_0(void) { sSelectedPikaPowerTile = Alloc(8); - sUnknown_0203AAD0 = AllocZeroed(0xE); - sUnknown_0203AADC = AllocZeroed(8); + sReelOverlay_Tilemap = AllocZeroed(14); + sReelButtonPress_Tilemap = AllocZeroed(8); // several of these are 1 bit off from each other - sUnknown_0203AAD0[0] = 0x2051; - sUnknown_0203AAD0[1] = 0x2851; - sUnknown_0203AAD0[2] = 0x2061; - sUnknown_0203AAD0[3] = 0x2861; - sUnknown_0203AAD0[4] = 0x20BE; - sUnknown_0203AAD0[5] = 0x28BE; - sUnknown_0203AAD0[6] = 0x20BF; + sReelOverlay_Tilemap[0] = 0x2051; + sReelOverlay_Tilemap[1] = 0x2851; + sReelOverlay_Tilemap[2] = 0x2061; + sReelOverlay_Tilemap[3] = 0x2861; + sReelOverlay_Tilemap[4] = 0x20BE; + sReelOverlay_Tilemap[5] = 0x28BE; + sReelOverlay_Tilemap[6] = 0x20BF; } static void SlotMachineSetup_5_0(void) { - sub_8106448(); + LoadMenuGfx(); sub_81064B8(); sub_81063C0(); LoadMessageBoxGfx(0, 0x200, 0xF0); @@ -1031,16 +1109,16 @@ static void SlotMachineSetup_10_0(void) { CreateReelSymbolSprites(); CreateCreditPayoutNumberSprites(); - sub_8103DC8(); + CreateInvisibleFlashMatchLineSprites(); CreateReelBackgroundSprite(); } // create gameplay tasks static void SlotMachineSetupGameplayTasks(void) { - GameplayTask_PikaPower(); + CreatePikaPowerBoltTask(); GameplayTask_StopSlotReel(); - sub_8104C5C(); + CreateDigitalDisplayTask(); GameplayTasks_Slots(); } @@ -1059,7 +1137,7 @@ static void RunSlotActions(u8 taskId) static bool8 SlotAction_UnfadeScreen(struct Task *task) { BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB(0, 0, 0)); - sub_810423C(sSlotMachine->pikaPower); + LoadPikaPowerMeter(sSlotMachine->pikaPower); sSlotMachine->state++; return FALSE; } @@ -1095,7 +1173,7 @@ static bool8 SlotAction_SetSlotMachineVars(struct Task *task) // SLOT_ACTION_3 static bool8 SlotAction3(struct Task *task) { - if (sub_8104E18()) + if (IsDigitalDisplayAnimFinished()) sSlotMachine->state = SLOT_ACTION_4; return FALSE; } @@ -1125,7 +1203,7 @@ static bool8 SlotAction_HandleBetInput(struct Task *task) if (sSlotMachine->coins - (MAX_BET - sSlotMachine->bet) >= 0) { for (i = sSlotMachine->bet; i < MAX_BET; i++) - LoadBetTiles(i); + LightenBetTiles(i); sSlotMachine->coins -= (MAX_BET - sSlotMachine->bet); sSlotMachine->bet = MAX_BET; sSlotMachine->state = SLOT_ACTION_9; @@ -1142,7 +1220,7 @@ static bool8 SlotAction_HandleBetInput(struct Task *task) if (JOY_NEW(DPAD_DOWN) && sSlotMachine->coins != 0) { PlaySE(SE_REGI); - LoadBetTiles(sSlotMachine->bet); + LightenBetTiles(sSlotMachine->bet); sSlotMachine->coins--; sSlotMachine->bet++; } @@ -1169,7 +1247,7 @@ static bool8 SlotAction_PrintYouDontHaveThreeCoins(struct Task *task) static bool8 SlotAction_ExitYouDontHaveThreeCoinsMessage(struct Task *task) { - if (gMain.newKeys & (A_BUTTON | B_BUTTON)) + if (JOY_NEW(A_BUTTON | B_BUTTON)) { ClearDialogWindowAndFrame(0, TRUE); sSlotMachine->state = SLOT_ACTION_BET_INPUT; @@ -1188,12 +1266,12 @@ static bool8 SlotAction_GivingInformation(struct Task *task) static bool8 SlotAction9(struct Task *task) { DrawLuckyFlags(); - sub_8104DA4(); + DestroyDigitalDisplayScene(); // for each reel... - ReelTasks_SetUnkTaskData(0); - ReelTasks_SetUnkTaskData(1); - ReelTasks_SetUnkTaskData(2); + ReelTasks_SetUnkTaskData(LEFT_REEL); + ReelTasks_SetUnkTaskData(MIDDLE_REEL); + ReelTasks_SetUnkTaskData(RIGHT_REEL); IncrementDailySlotsUses(); @@ -1237,7 +1315,7 @@ static bool8 SlotAction_SetLuckySpins(struct Task *task) static bool8 SlotAction_AwaitReelStop(struct Task *task) { - if (gMain.newKeys & A_BUTTON) + if (JOY_NEW(A_BUTTON)) { PlaySE(SE_JYUNI); sub_8102E1C(sSlotMachine->currReel); @@ -1277,7 +1355,7 @@ static bool8 SlotAction_CheckMatches(struct Task *task) { sSlotMachine->state = SLOT_ACTION_15; AwardPayout(); - sub_8103F70(); + FlashSlotMachineLights(); if ((sSlotMachine->netCoinLoss -= sSlotMachine->payout) < 0) { sSlotMachine->netCoinLoss = 0; @@ -1336,7 +1414,7 @@ static bool8 SlotAction_WaitForPayoutToBeAwarded(struct Task *task) static bool8 SlotAction_EndOfRoll(struct Task *task) { - if (sub_8103FA0()) + if (TryStopSlotMachineLights()) { sSlotMachine->state = SLOT_ACTION_19; if (sSlotMachine->matchedSymbols & ((1 << SLOT_MACHINE_MATCHED_777_RED) | (1 << SLOT_MACHINE_MATCHED_777_BLUE))) @@ -1377,7 +1455,7 @@ static bool8 SlotAction_MatchedPower(struct Task *task) static bool8 SlotAction18(struct Task *task) { - if (sub_8104E18()) + if (IsDigitalDisplayAnimFinished()) { sSlotMachine->state = SLOT_ACTION_19; if (sSlotMachine->matchedSymbols & (1 << SLOT_MACHINE_MATCHED_REPLAY)) @@ -1390,9 +1468,9 @@ static bool8 SlotAction18(struct Task *task) static bool8 SlotAction_Loop(struct Task *task) { - sub_8103D8C(0); - sub_8103D8C(1); - sub_8103D8C(2); + DarkenBetTiles(0); + DarkenBetTiles(1); + DarkenBetTiles(2); sSlotMachine->state = SLOT_ACTION_2; return FALSE; } @@ -1423,9 +1501,9 @@ static bool8 SlotAction_HandleQuitGameInput(struct Task *task) if (input == 0) // player chooses to quit { ClearDialogWindowAndFrame(0, TRUE); - sub_8103D8C(0); - sub_8103D8C(1); - sub_8103D8C(2); + DarkenBetTiles(0); + DarkenBetTiles(1); + DarkenBetTiles(2); sSlotMachine->coins += sSlotMachine->bet; sSlotMachine->state = SLOT_ACTION_END; } @@ -1448,7 +1526,7 @@ static bool8 SlotAction_PrintMessage_9999Coins(struct Task *task) static bool8 SlotAction_WaitMessage_9999Coins(struct Task *task) { - if (gMain.newKeys & (A_BUTTON | B_BUTTON)) + if (JOY_NEW(A_BUTTON | B_BUTTON)) { ClearDialogWindowAndFrame(0, TRUE); sSlotMachine->state = SLOT_ACTION_BET_INPUT; @@ -1467,7 +1545,7 @@ static bool8 SlotAction_PrintMessage_NoMoreCoins(struct Task *task) static bool8 SlotAction_WaitMessage_NoMoreCoins(struct Task *task) { - if (gMain.newKeys & (A_BUTTON | B_BUTTON)) + if (JOY_NEW(A_BUTTON | B_BUTTON)) { ClearDialogWindowAndFrame(0, TRUE); sSlotMachine->state = SLOT_ACTION_END; @@ -1511,15 +1589,15 @@ static bool8 SlotAction_FreeDataStructures(struct Task *task) FREE_AND_SET_NULL(sImageTable_ReelTimeMachine); if (sImageTable_BrokenReelTimeMachine != NULL) FREE_AND_SET_NULL(sImageTable_BrokenReelTimeMachine); - FREE_AND_SET_NULL(sUnknown_0203AAC8); + FREE_AND_SET_NULL(sMenuGfx); FREE_AND_SET_NULL(sSelectedPikaPowerTile); - FREE_AND_SET_NULL(sUnknown_0203AAD0); + FREE_AND_SET_NULL(sReelOverlay_Tilemap); FREE_AND_SET_NULL(sDigitalDisplayGfxPtr); FREE_AND_SET_NULL(sReelTimeGfxPtr); - FREE_AND_SET_NULL(sUnknown_0203AADC); - FREE_AND_SET_NULL(sUnknown_0203AAE0); - FREE_AND_SET_NULL(sUnknown_0203AB2C); - FREE_AND_SET_NULL(sUnknown_0203AB30); + FREE_AND_SET_NULL(sReelButtonPress_Tilemap); + FREE_AND_SET_NULL(sReelBackground_Gfx); + FREE_AND_SET_NULL(sReelBackgroundSpriteSheet); + FREE_AND_SET_NULL(sSlotMachineSpritesheetsPtr); FREE_AND_SET_NULL(sSlotMachine); } @@ -1709,7 +1787,7 @@ static void CheckMatch_CenterRow(void) { sSlotMachine->payout += gSlotPayouts[match]; sSlotMachine->matchedSymbols |= gSlotMatchFlags[match]; - sub_8103E04(0); + FlashMatchLine(MATCH_MIDDLE_ROW); } } @@ -1727,7 +1805,7 @@ static void CheckMatch_TopAndBottom(void) match = SLOT_MACHINE_MATCHED_2CHERRY; sSlotMachine->payout += gSlotPayouts[match]; sSlotMachine->matchedSymbols |= gSlotMatchFlags[match]; - sub_8103E04(1); + FlashMatchLine(MATCH_TOP_ROW); } c1 = GetTagAtRest(LEFT_REEL, 3); c2 = GetTagAtRest(MIDDLE_REEL, 3); @@ -1739,7 +1817,7 @@ static void CheckMatch_TopAndBottom(void) match = SLOT_MACHINE_MATCHED_2CHERRY; sSlotMachine->payout += gSlotPayouts[match]; sSlotMachine->matchedSymbols |= gSlotMatchFlags[match]; - sub_8103E04(2); + FlashMatchLine(MATCH_BOTTOM_ROW); } } @@ -1758,7 +1836,7 @@ static void CheckMatch_Diagonals(void) sSlotMachine->payout += gSlotPayouts[match]; sSlotMachine->matchedSymbols |= gSlotMatchFlags[match]; } - sub_8103E04(3); + FlashMatchLine(MATCH_NWSE_DIAG); } c1 = GetTagAtRest(LEFT_REEL, 3); c2 = GetTagAtRest(MIDDLE_REEL, 2); @@ -1771,7 +1849,7 @@ static void CheckMatch_Diagonals(void) sSlotMachine->payout += gSlotPayouts[match]; sSlotMachine->matchedSymbols |= gSlotMatchFlags[match]; } - sub_8103E04(4); + FlashMatchLine(MATCH_NESW_DIAG); } } @@ -1779,11 +1857,11 @@ static u8 GetMatchFromSymbolsInRow(u8 c1, u8 c2, u8 c3) { if (c1 == c2 && c1 == c3) return gSym2Match[c1]; - if (c1 == SLOT_MACHINE_TAG_7_RED && c2 == SLOT_MACHINE_TAG_7_RED && c3 == SLOT_MACHINE_TAG_7_BLUE) + if (c1 == GFXTAG_7_RED && c2 == GFXTAG_7_RED && c3 == GFXTAG_7_BLUE) return SLOT_MACHINE_MATCHED_777_MIXED; - if (c1 == SLOT_MACHINE_TAG_7_BLUE && c2 == SLOT_MACHINE_TAG_7_BLUE && c3 == SLOT_MACHINE_TAG_7_RED) + if (c1 == GFXTAG_7_BLUE && c2 == GFXTAG_7_BLUE && c3 == GFXTAG_7_RED) return SLOT_MACHINE_MATCHED_777_MIXED; - if (c1 == SLOT_MACHINE_TAG_CHERRY) + if (c1 == GFXTAG_CHERRY) return SLOT_MACHINE_MATCHED_1CHERRY; return SLOT_MACHINE_MATCHED_NONE; } @@ -1809,7 +1887,7 @@ static void RunAwardPayoutActions(u8 taskId) static bool8 AwardPayoutAction0(struct Task *task) { - if (sub_8103E38()) + if (IsMatchLineDoneFlashingBeforePayout()) { task->data[0]++; if (sSlotMachine->payout == 0) @@ -1834,7 +1912,7 @@ static bool8 AwardPayoutAction_GivePayoutToPlayer(struct Task *task) if (gMain.heldKeys & A_BUTTON) task->data[1] = 4; } - if (IsFanfareTaskInactive() && gMain.newKeys & START_BUTTON) + if (IsFanfareTaskInactive() && JOY_NEW(START_BUTTON)) { PlaySE(SE_PIN); sSlotMachine->coins += sSlotMachine->payout; @@ -1849,7 +1927,7 @@ static bool8 AwardPayoutAction_GivePayoutToPlayer(struct Task *task) static bool8 AwardPayoutAction_FreeTask(struct Task *task) { - if (sub_8103E7C()) + if (TryStopMatchLinesFlashing()) DestroyTask(FindTaskIdByFunc(RunAwardPayoutActions)); return FALSE; } @@ -1868,17 +1946,17 @@ static bool8 AwardPayoutAction_FreeTask(struct Task *task) // .-----------------. static u8 GetTagAtRest(u8 reel, s16 offset) { - s16 pos = (sSlotMachine->reelPositions[reel] + offset) % REEL_NUM_TAGS; + s16 pos = (sSlotMachine->reelPositions[reel] + offset) % SYMBOLS_PER_REEL; if (pos < 0) - pos += REEL_NUM_TAGS; - return sReelSymbols[reel][pos]; + pos += SYMBOLS_PER_REEL; + return sReelSymbolTileTags[reel][pos]; } // Calculates GetTagAtRest as if the reel were snapped downwards into place. static u8 GetTag(u8 reel, s16 offset) { s16 inc = 0; - s16 pixelOffset = sSlotMachine->reelPixelOffsets[reel] % REEL_TAG_HEIGHT; + s16 pixelOffset = sSlotMachine->reelPixelOffsets[reel] % REEL_SYMBOL_HEIGHT; if (pixelOffset != 0) inc = -1; return GetTagAtRest(reel, offset + inc); @@ -1896,18 +1974,18 @@ static void AdvanceSlotReel(u8 reelIndex, s16 value) { sSlotMachine->reelPixelOffsets[reelIndex] += value; sSlotMachine->reelPixelOffsets[reelIndex] %= 504; - sSlotMachine->reelPositions[reelIndex] = REEL_NUM_TAGS - sSlotMachine->reelPixelOffsets[reelIndex] / 24; + sSlotMachine->reelPositions[reelIndex] = SYMBOLS_PER_REEL - sSlotMachine->reelPixelOffsets[reelIndex] / REEL_SYMBOL_HEIGHT; } s16 AdvanceSlotReelToNextTag(u8 reelIndex, s16 value) { - s16 offset = sSlotMachine->reelPixelOffsets[reelIndex] % 24; + s16 offset = sSlotMachine->reelPixelOffsets[reelIndex] % REEL_SYMBOL_HEIGHT; if (offset != 0) { if (offset < value) value = offset; AdvanceSlotReel(reelIndex, value); - offset = sSlotMachine->reelPixelOffsets[reelIndex] % 24; + offset = sSlotMachine->reelPixelOffsets[reelIndex] % REEL_SYMBOL_HEIGHT; } return offset; } @@ -1935,7 +2013,7 @@ s16 AdvanceReeltimeReelToNextTag(s16 value) static void GameplayTask_StopSlotReel(void) { u8 i; - for (i = 0; i < 3; i++) + for (i = 0; i < NUM_REELS; i++) { u8 taskId = CreateTask(RunSlotReelActions, 2); gTasks[taskId].data[15] = i; @@ -2003,14 +2081,14 @@ static bool8 SlotReelAction_MoveToStop(struct Task *task) s16 reelPixelPos; memcpy(reelStopShocks, ReelStopShocks, sizeof(ReelStopShocks)); - reelPixelPos = sSlotMachine->reelPixelOffsets[task->data[15]] % 24; + reelPixelPos = sSlotMachine->reelPixelOffsets[task->data[15]] % REEL_SYMBOL_HEIGHT; if (reelPixelPos != 0) reelPixelPos = AdvanceSlotReelToNextTag(task->data[15], sSlotMachine->reelIncrement); else if (sSlotMachine->reelExtraTurns[task->data[15]]) { sSlotMachine->reelExtraTurns[task->data[15]]--; AdvanceSlotReel(task->data[15], sSlotMachine->reelIncrement); - reelPixelPos = sSlotMachine->reelPixelOffsets[task->data[15]] % 24; + reelPixelPos = sSlotMachine->reelPixelOffsets[task->data[15]] % REEL_SYMBOL_HEIGHT; } if (reelPixelPos == 0 && sSlotMachine->reelExtraTurns[task->data[15]] == 0) { @@ -2044,8 +2122,8 @@ static bool8 DecideReelTurns_BiasTag_Reel1(void) u8 tag1 = tag2; if (sSlotMachine->luckyFlags & (LUCKY_BIAS_777 | LUCKY_BIAS_MIXED_777)) { - tag1 = SLOT_MACHINE_TAG_7_RED; - tag2 = SLOT_MACHINE_TAG_7_BLUE; + tag1 = GFXTAG_7_RED; + tag2 = GFXTAG_7_BLUE; } return DecideReelTurns_BiasTag_Reel1_Bets[sSlotMachine->bet - 1](tag1, tag2); } @@ -2063,7 +2141,9 @@ static bool8 AreTagsAtPosition_Reel1(s16 pos, u8 tag1, u8 tag2) static bool8 AreCherriesOnScreen_Reel1(s16 offsetFromCenter) { - if (GetTag(LEFT_REEL, 1 - offsetFromCenter) == SLOT_MACHINE_TAG_CHERRY || GetTag(LEFT_REEL, 2 - offsetFromCenter) == SLOT_MACHINE_TAG_CHERRY || GetTag(LEFT_REEL, 3 - offsetFromCenter) == SLOT_MACHINE_TAG_CHERRY) + if (GetTag(LEFT_REEL, 1 - offsetFromCenter) == GFXTAG_CHERRY + || GetTag(LEFT_REEL, 2 - offsetFromCenter) == GFXTAG_CHERRY + || GetTag(LEFT_REEL, 3 - offsetFromCenter) == GFXTAG_CHERRY) return TRUE; else return FALSE; @@ -2086,7 +2166,7 @@ static bool8 DecideReelTurns_BiasTag_Reel1_Bet1(u8 tag1, u8 tag2) // if a lucky tag appears in the center row within 4 turns if (AreTagsAtPosition_Reel1(2 - i, tag1, tag2)) { - sSlotMachine->winnerRows[0] = 2; + sSlotMachine->winnerRows[LEFT_REEL] = 2; sSlotMachine->reelExtraTurns[0] = i; return TRUE; } @@ -2212,10 +2292,10 @@ static bool8 DecideReelTurns_BiasTag_Reel3(void) u8 biasTag = sSlotMachine->biasTag; if (sSlotMachine->luckyFlags & LUCKY_BIAS_MIXED_777) { - biasTag = SLOT_MACHINE_TAG_7_RED; - if (sSlotMachine->biasTag == SLOT_MACHINE_TAG_7_RED) + biasTag = GFXTAG_7_RED; + if (sSlotMachine->biasTag == GFXTAG_7_RED) { - biasTag = SLOT_MACHINE_TAG_7_BLUE; + biasTag = GFXTAG_7_BLUE; } } return DecideReelTurns_BiasTag_Reel3_Bets[sSlotMachine->bet - 1](biasTag); @@ -2278,14 +2358,14 @@ static void DecideReelTurns_NoBiasTag_Reel1(void) static bool8 IsBiasTag777_SwitchColor(u8 *biasTagPtr) { - if (*biasTagPtr == SLOT_MACHINE_TAG_7_RED) + if (*biasTagPtr == GFXTAG_7_RED) { - *biasTagPtr = SLOT_MACHINE_TAG_7_BLUE; + *biasTagPtr = GFXTAG_7_BLUE; return TRUE; } - if (*biasTagPtr == SLOT_MACHINE_TAG_7_BLUE) + if (*biasTagPtr == GFXTAG_7_BLUE) { - *biasTagPtr = SLOT_MACHINE_TAG_7_RED; + *biasTagPtr = GFXTAG_7_RED; return TRUE; } return FALSE; @@ -2416,7 +2496,7 @@ static void DecideReelTurns_NoBiasTag_Reel2_Bet3(void) static bool8 AreTagsMixed77(u8 tag1, u8 tag2) { - if ((tag1 == SLOT_MACHINE_TAG_7_RED && tag2 == SLOT_MACHINE_TAG_7_BLUE) || (tag1 == SLOT_MACHINE_TAG_7_BLUE && tag2 == SLOT_MACHINE_TAG_7_RED)) + if ((tag1 == GFXTAG_7_RED && tag2 == GFXTAG_7_BLUE) || (tag1 == GFXTAG_7_BLUE && tag2 == GFXTAG_7_RED)) return TRUE; else return FALSE; @@ -2424,8 +2504,8 @@ static bool8 AreTagsMixed77(u8 tag1, u8 tag2) static bool8 AreTagsMixed777(u8 tag1, u8 tag2, u8 tag3) { - if ((tag1 == SLOT_MACHINE_TAG_7_RED && tag2 == SLOT_MACHINE_TAG_7_BLUE && tag3 == SLOT_MACHINE_TAG_7_RED) || - (tag1 == SLOT_MACHINE_TAG_7_BLUE && tag2 == SLOT_MACHINE_TAG_7_RED && tag3 == SLOT_MACHINE_TAG_7_BLUE)) + if ((tag1 == GFXTAG_7_RED && tag2 == GFXTAG_7_BLUE && tag3 == GFXTAG_7_RED) || + (tag1 == GFXTAG_7_BLUE && tag2 == GFXTAG_7_RED && tag3 == GFXTAG_7_BLUE)) return TRUE; else return FALSE; @@ -2433,10 +2513,10 @@ static bool8 AreTagsMixed777(u8 tag1, u8 tag2, u8 tag3) static bool8 TagsDontMatchOrHaveAny7s(u8 tag1, u8 tag2, u8 tag3) { - if ((tag1 == SLOT_MACHINE_TAG_7_RED && tag2 == SLOT_MACHINE_TAG_7_BLUE && tag3 == SLOT_MACHINE_TAG_7_RED) || - (tag1 == SLOT_MACHINE_TAG_7_BLUE && tag2 == SLOT_MACHINE_TAG_7_RED && tag3 == SLOT_MACHINE_TAG_7_BLUE) || - (tag1 == SLOT_MACHINE_TAG_7_RED && tag2 == SLOT_MACHINE_TAG_7_RED && tag3 == SLOT_MACHINE_TAG_7_BLUE) || - (tag1 == SLOT_MACHINE_TAG_7_BLUE && tag2 == SLOT_MACHINE_TAG_7_BLUE && tag3 == SLOT_MACHINE_TAG_7_RED) || + if ((tag1 == GFXTAG_7_RED && tag2 == GFXTAG_7_BLUE && tag3 == GFXTAG_7_RED) || + (tag1 == GFXTAG_7_BLUE && tag2 == GFXTAG_7_RED && tag3 == GFXTAG_7_BLUE) || + (tag1 == GFXTAG_7_RED && tag2 == GFXTAG_7_RED && tag3 == GFXTAG_7_BLUE) || + (tag1 == GFXTAG_7_BLUE && tag2 == GFXTAG_7_BLUE && tag3 == GFXTAG_7_RED) || (tag1 == tag2 && tag1 == tag3)) { return FALSE; @@ -2461,7 +2541,7 @@ static void DecideReelTurns_NoBiasTag_Reel3_Bet1(void) while (1) { u8 tag3; - if (!(tag1 == (tag3 = GetTag(RIGHT_REEL, 2 - i)) || (tag1 == SLOT_MACHINE_TAG_7_RED && tag3 == SLOT_MACHINE_TAG_7_BLUE) || (tag1 == SLOT_MACHINE_TAG_7_BLUE && tag3 == SLOT_MACHINE_TAG_7_RED))) + if (!(tag1 == (tag3 = GetTag(RIGHT_REEL, 2 - i)) || (tag1 == GFXTAG_7_RED && tag3 == GFXTAG_7_BLUE) || (tag1 == GFXTAG_7_BLUE && tag3 == GFXTAG_7_RED))) break; i++; } @@ -2592,21 +2672,21 @@ static void DecideReelTurns_NoBiasTag_Reel3_Bet3(void) } } -static void sub_8103C14(u8 a0) +static void sub_8103C14(u8 reelNum) { u8 taskId = CreateTask(sub_8103C48, 5); - gTasks[taskId].data[15] = a0; + gTasks[taskId].data[15] = reelNum; sub_8103C48(taskId); } static void sub_8103C48(u8 taskId) { - gUnknown_083ECBA0[gTasks[taskId].data[0]](&gTasks[taskId], taskId); + sReelStopButtonFuncs[gTasks[taskId].data[0]](&gTasks[taskId], taskId); } static void sub_8103C78(struct Task *task, u8 taskId) { - sub_81065A8(gUnknown_083ECBAC[task->data[15]], 0x62, 0x63, 0x72, 0x73); + SetReelButtonTilemap(sReelButtonOffsets[task->data[15]], 0x62, 0x63, 0x72, 0x73); task->data[0]++; } @@ -2618,131 +2698,159 @@ static void sub_8103CAC(struct Task *task, u8 taskId) static void sub_8103CC8(struct Task *task, u8 taskId) { - sub_81065A8(gUnknown_083ECBAC[task->data[15]], 0x42, 0x43, 0x52, 0x53); + SetReelButtonTilemap(sReelButtonOffsets[task->data[15]], 0x42, 0x43, 0x52, 0x53); DestroyTask(taskId); } -static void LoadLitTile(u8 tileId) +static void LightenMatchLine(u8 tileId) { - LoadPalette(gUnknown_083EDD08[tileId], gUnknown_083EDD30[tileId], 2); + LoadPalette(sLitMatchLinePalTable[tileId], sMatchLinePalOffsets[tileId], 2); } -static void sub_8103D28(u8 a0) +static void DarkenMatchLine(u8 tileId) { - LoadPalette(gUnknown_083EDD1C[a0], gUnknown_083EDD30[a0], 2); + LoadPalette(sDarkMatchLinePalTable[tileId], sMatchLinePalOffsets[tileId], 2); } -// light up the value bet by the player -static void LoadBetTiles(u8 betVal) +// light up the match line for each bet by the player +static void LightenBetTiles(u8 betVal) { u8 i; - for (i = 0; i < gNumberBettingTiles[betVal]; i++) - LoadLitTile(gBettingTilesId[betVal][i]); + for (i = 0; i < sMatchLinesPerBet[betVal]; i++) + LightenMatchLine(sBetToMatchLineIds[betVal][i]); } -static void sub_8103D8C(u8 a0) +static void DarkenBetTiles(u8 betVal) { u8 i; - for (i = 0; i < gNumberBettingTiles[a0]; i++) - sub_8103D28(gBettingTilesId[a0][i]); + for (i = 0; i < sMatchLinesPerBet[betVal]; i++) + DarkenMatchLine(sBetToMatchLineIds[betVal][i]); } -static void sub_8103DC8(void) +#define sMatchLineId data[0] +#define sFlashing data[1] +#define sNumFullFlashes data[2] +#define sDelayTimer data[3] +#define sColor data[4] +#define sColorIncr data[5] +#define sAtOriginalColor data[7] + +// Creates invisible sprites that flash the bet lines/numbers where a match occurs +// 5 are created, 1 for each possible match line (3 rows, 2 diagonals) +static void CreateInvisibleFlashMatchLineSprites(void) { u8 i; - for (i = 0; i < 5; i++) + for (i = 0; i < ARRAY_COUNT(sSlotMachine->flashMatchLineSpriteIds); i++) { - u8 spriteId = CreateInvisibleSprite(sub_8103EE4); - gSprites[spriteId].data[0] = i; - sSlotMachine->unk44[i] = spriteId; + u8 spriteId = CreateInvisibleSprite(SpriteCB_FlashMatchingLines); + gSprites[spriteId].sMatchLineId = i; + sSlotMachine->flashMatchLineSpriteIds[i] = spriteId; } } -static void sub_8103E04(u8 a0) +static void FlashMatchLine(u8 matchLineId) { - struct Sprite *sprite = gSprites + sSlotMachine->unk44[a0]; - sprite->data[1] = 1; - sprite->data[2] = 4; - sprite->data[3] = 0; - sprite->data[4] = 0; - sprite->data[5] = 2; - sprite->data[7] = 0; + struct Sprite *sprite = &gSprites[sSlotMachine->flashMatchLineSpriteIds[matchLineId]]; + sprite->sFlashing = TRUE; + sprite->sNumFullFlashes = 4; + sprite->sDelayTimer = 0; + sprite->sColor = 0; + sprite->sColorIncr = 2; + sprite->sAtOriginalColor = FALSE; } -// something with payout digits -static bool8 sub_8103E38(void) +// Match line flashes 4 times before the payout begins +// After this it does half-brightness flashes until the payout finishes +static bool8 IsMatchLineDoneFlashingBeforePayout(void) { u8 i; - for (i = 0; i < 5; i++) + for (i = 0; i < ARRAY_COUNT(sSlotMachine->flashMatchLineSpriteIds); i++) { - struct Sprite *sprite = &gSprites[sSlotMachine->unk44[i]]; - if (sprite->data[1] && sprite->data[2]) + struct Sprite *sprite = &gSprites[sSlotMachine->flashMatchLineSpriteIds[i]]; + if (sprite->sFlashing && sprite->sNumFullFlashes) return FALSE; } return TRUE; } -static bool8 sub_8103E7C(void) +// When payout is finished, stop lines flashing (but not if they're in the middle of a flash) +static bool8 TryStopMatchLinesFlashing(void) { u8 i; - for (i = 0; i < 5; i++) + for (i = 0; i < ARRAY_COUNT(sSlotMachine->flashMatchLineSpriteIds); i++) { - if (!sub_8103EAC(sSlotMachine->unk44[i])) + if (!TryStopMatchLineFlashing(sSlotMachine->flashMatchLineSpriteIds[i])) return FALSE; } return TRUE; } -static bool8 sub_8103EAC(u8 spriteId) +static bool8 TryStopMatchLineFlashing(u8 spriteId) { - struct Sprite *sprite = gSprites + spriteId; - if (!sprite->data[1]) + struct Sprite *sprite = &gSprites[spriteId]; + if (!sprite->sFlashing) return TRUE; - if (sprite->data[7]) - sprite->data[1] = 0; - return sprite->data[7]; + if (sprite->sAtOriginalColor) + sprite->sFlashing = FALSE; + + return sprite->sAtOriginalColor; } -static void sub_8103EE4(struct Sprite *sprite) +static void SpriteCB_FlashMatchingLines(struct Sprite *sprite) { - s16 r4; - if (sprite->data[1]) + s16 maxColorChange; + if (sprite->sFlashing) { - if (!sprite->data[3]--) + if (!sprite->sDelayTimer--) { - sprite->data[7] = 0; - sprite->data[3] = 1; - sprite->data[4] += sprite->data[5]; - r4 = 4; - if (sprite->data[2]) - r4 = 8; - if (sprite->data[4] <= 0) + sprite->sAtOriginalColor = FALSE; + sprite->sDelayTimer = 1; + sprite->sColor += sprite->sColorIncr; + maxColorChange = 4; + if (sprite->sNumFullFlashes) + maxColorChange = 8; + if (sprite->sColor <= 0) { - sprite->data[7] = 1; - sprite->data[5] = -sprite->data[5]; - if (sprite->data[2]) - sprite->data[2]--; + // Returned to original color, reverse + sprite->sAtOriginalColor = TRUE; + sprite->sColorIncr = -sprite->sColorIncr; + if (sprite->sNumFullFlashes) + sprite->sNumFullFlashes--; } - else if (sprite->data[4] >= r4) - sprite->data[5] = -sprite->data[5]; - if (sprite->data[2]) - sprite->data[3] <<= 1; + else if (sprite->sColor >= maxColorChange) { + // Reached peak darkness, reverse + sprite->sColorIncr = -sprite->sColorIncr; + } + if (sprite->sNumFullFlashes) + sprite->sDelayTimer <<= 1; } - MultiplyPaletteRGBComponents(gUnknown_083EDD30[sprite->data[0]], sprite->data[4], sprite->data[4], sprite->data[4]); + MultiplyPaletteRGBComponents(sMatchLinePalOffsets[sprite->sMatchLineId], sprite->sColor, sprite->sColor, sprite->sColor); } } -static void sub_8103F70(void) +#undef sMatchLineId +#undef sFlashing +#undef sNumFullFlashes +#undef sDelayTimer +#undef sColor +#undef sColorIncr +#undef sAtOriginalColor + +#define sDelayTimer data[1] +#define sFlashState data[2] +#define sFlashDir data[3] + +static void FlashSlotMachineLights(void) { - u8 taskId = CreateTask(sub_8103FE8_, 6); - gTasks[taskId].data[3] = 1; - sub_8103FE8_(taskId); + u8 taskId = CreateTask(Task_FlashSlotMachineLights, 6); + gTasks[taskId].sFlashDir = 1; + Task_FlashSlotMachineLights(taskId); } -static bool8 sub_8103FA0(void) +static bool8 TryStopSlotMachineLights(void) { - u8 taskId = FindTaskIdByFunc(sub_8103FE8_); - if (!gTasks[taskId].data[2]) + u8 taskId = FindTaskIdByFunc(Task_FlashSlotMachineLights); + if (gTasks[taskId].sFlashState == 0) { DestroyTask(taskId); LoadPalette(gUnknown_083EDDAC, 0x10, 0x20); @@ -2751,27 +2859,31 @@ static bool8 sub_8103FA0(void) return FALSE; } -static void sub_8103FE8_(u8 taskId) +static void Task_FlashSlotMachineLights(u8 taskId) { struct Task *task = &gTasks[taskId]; - if (!task->data[1]--) + if (!task->sDelayTimer--) { - task->data[1] = 4; - task->data[2] += task->data[3]; - if (task->data[2] == 0 || task->data[2] == 2) - task->data[3] = -task->data[3]; + task->sDelayTimer = 4; + task->sFlashState += task->sFlashDir; + if (task->sFlashState == 0 || task->sFlashState == 2) + task->sFlashDir = -task->sFlashDir; } - LoadPalette(gUnknown_083EDDA0[task->data[2]], 0x10, 0x20); + LoadPalette(sFlashingLightsPalTable[task->sFlashState], 0x10, 0x20); } -static void GameplayTask_PikaPower(void) +#undef sDelayTimer +#undef sFlashState +#undef sFlashDir + +static void CreatePikaPowerBoltTask(void) { - sSlotMachine->unkTaskPointer3E = CreateTask(Task_CreatePikaPowerBolt, 8); + sSlotMachine->pikaPowerBoltTaskId = CreateTask(Task_CreatePikaPowerBolt, 8); } static void DisplayPikaPower(u8 pikaPower) { - struct Task *task = &gTasks[sSlotMachine->unkTaskPointer3E]; + struct Task *task = &gTasks[sSlotMachine->pikaPowerBoltTaskId]; ClearTaskDataFields_2orHigher(task); task->data[0] = 1; task->data[1]++; @@ -2780,7 +2892,7 @@ static void DisplayPikaPower(u8 pikaPower) static void sub_8104098(void) { - struct Task *task = &gTasks[sSlotMachine->unkTaskPointer3E]; + struct Task *task = &gTasks[sSlotMachine->pikaPowerBoltTaskId]; ClearTaskDataFields_2orHigher(task); task->data[0] = 3; task->data[15] = 1; // points to a reelIndex @@ -2788,7 +2900,7 @@ static void sub_8104098(void) static bool8 sub_81040C8(void) { - return gTasks[sSlotMachine->unkTaskPointer3E].data[15]; + return gTasks[sSlotMachine->pikaPowerBoltTaskId].data[15]; } static void Task_CreatePikaPowerBolt(u8 taskId) @@ -2817,9 +2929,9 @@ static void sub_8104144(struct Task *task) r3 = 1, r2 = 1; else if (task->data[1] == 16) r3 = 2, r2 = 2; - sSelectedPikaPowerTile[r2] = pikaPowerTileTable[r3][0]; + sSelectedPikaPowerTile[r2] = sPikaPowerTileTable[r3][0]; LoadBgTilemap(2, &sSelectedPikaPowerTile[r2], 2, r5 + 0x40); - sub_8105B88(task->data[2]); + DestroyPikaPowerBoltSprite(task->data[2]); task->data[0] = 0; task->data[15] = 0; // points to a reelIndex } @@ -2836,7 +2948,7 @@ static void sub_81041AC(struct Task *task) r3 = 2, r2 = 2; if (task->data[2] == 0) { - sSelectedPikaPowerTile[r2] = pikaPowerTileTable[r3][1]; + sSelectedPikaPowerTile[r2] = sPikaPowerTileTable[r3][1]; LoadBgTilemap(2, &sSelectedPikaPowerTile[r2], 2, r5 + 0x40); task->data[1]--; } @@ -2857,8 +2969,7 @@ static void ClearTaskDataFields_2orHigher(struct Task *task) task->data[i] = 0; } -// possibly load tiles for pika power meter -static void sub_810423C(u8 pikaPower) +static void LoadPikaPowerMeter(u8 pikaPower) { s16 i; s16 r3 = 0, r1 = 0; @@ -2870,7 +2981,7 @@ static void sub_810423C(u8 pikaPower) r3 = 1, r1 = 1; else if (i == 15) // pikaPower meter is full r3 = 2, r1 = 2; - sSelectedPikaPowerTile[r1] = pikaPowerTileTable[r3][0]; + sSelectedPikaPowerTile[r1] = sPikaPowerTileTable[r3][0]; LoadBgTilemap(2, &sSelectedPikaPowerTile[r1], 2, r4 + 0x40); } for (; i < 16; i++, r4++) @@ -2880,10 +2991,10 @@ static void sub_810423C(u8 pikaPower) r3 = 1, r1 = 1; else if (i == 15) r3 = 2, r1 = 2; - sSelectedPikaPowerTile[r1] = pikaPowerTileTable[r3][1]; + sSelectedPikaPowerTile[r1] = sPikaPowerTileTable[r3][1]; LoadBgTilemap(2, &sSelectedPikaPowerTile[r1], 2, r4 + 0x40); } - gTasks[sSlotMachine->unkTaskPointer3E].data[1] = pikaPower; + gTasks[sSlotMachine->pikaPowerBoltTaskId].data[1] = pikaPower; } static void BeginReeltime(void) @@ -2905,7 +3016,7 @@ static void RunReeltimeActions(u8 taskId) // task.data[1] has something to do with the threshold // task.data[4] says how many pixels to advance the reel // task.data[5] is a timer - ReeltimeActions[gTasks[taskId].data[0]](&gTasks[taskId]); + sReeltimeActions[gTasks[taskId].data[0]](&gTasks[taskId]); } static void ReeltimeAction0(struct Task *task) @@ -2921,12 +3032,12 @@ static void ReeltimeAction0(struct Task *task) gSpriteCoordOffsetY = 0; SetGpuReg(REG_OFFSET_BG1HOFS, 0); SetGpuReg(REG_OFFSET_BG1VOFS, 0); - sub_8104A40(REG_OFFSET_BG3VOFS, 0); + LoadReelTimeWindowTilemap(REG_OFFSET_BG3VOFS, 0); CreateReelTimeMachineSprites(); CreateReelTimePikachuSprite(); CreateReelTimeNumberSprites(); CreateReelTimeShadowSprites(); - sub_810545C(); + CreateReelTimeNumberGapSprite(); GetReeltimeDraw(); StopMapMusic(); PlayNewMapMusic(MUS_BD_TIME); @@ -2943,7 +3054,7 @@ static void ReeltimeAction1(struct Task *task) { task->data[2] = r3; task->data[3] = task->data[1] >> 3; - sub_8104A40(r3, task->data[3]); + LoadReelTimeWindowTilemap(r3, task->data[3]); } if (task->data[1] >= 200) { @@ -2966,22 +3077,22 @@ static void ReeltimeAction2(struct Task *task) static void ReeltimeAction3(struct Task *task) { - int r5; - u8 sp0[ARRAY_COUNT(gUnknown_085A75C0)]; - s16 sp4[ARRAY_COUNT(gUnknown_085A75C4)]; - s16 spC[ARRAY_COUNT(gUnknown_085A75CC)]; + int i; + u8 pikachuAnimIds[ARRAY_COUNT(sReelTimePikachuAnimIds)]; + s16 reelTimeBoltDelays[ARRAY_COUNT(sReelTimeBoltDelays)]; + s16 pikachuAuraFlashDelays[ARRAY_COUNT(sPikachuAuraFlashDelays)]; - memcpy(sp0, gUnknown_085A75C0, sizeof(gUnknown_085A75C0)); - memcpy(sp4, gUnknown_085A75C4, sizeof(gUnknown_085A75C4)); - memcpy(spC, gUnknown_085A75CC, sizeof(gUnknown_085A75CC)); + memcpy(pikachuAnimIds, sReelTimePikachuAnimIds, sizeof(sReelTimePikachuAnimIds)); + memcpy(reelTimeBoltDelays, sReelTimeBoltDelays, sizeof(sReelTimeBoltDelays)); + memcpy(pikachuAuraFlashDelays, sPikachuAuraFlashDelays, sizeof(sPikachuAuraFlashDelays)); AdvanceReeltimeReel(task->data[4] >> 8); // gradually slow down the reel task->data[4] -= 4; - r5 = 4 - (task->data[4] >> 8); - sub_8105688(sp4[r5]); - sub_81057E8(spC[r5]); - StartSpriteAnimIfDifferent(gSprites + sSlotMachine->reelTimePikachuSpriteId, sp0[r5]); + i = 4 - (task->data[4] >> 8); + SetReelTimeBoltDelay(reelTimeBoltDelays[i]); + SetReelTimePikachuAuraFlashDelay(pikachuAuraFlashDelays[i]); + StartSpriteAnimIfDifferent(&gSprites[sSlotMachine->reelTimePikachuSpriteId], pikachuAnimIds[i]); // once speed goes below 256, go to next ReelTimeAction and keep the speed level if (task->data[4] <= 0x100) { @@ -2998,8 +3109,8 @@ static void ReeltimeAction4(struct Task *task) { task->data[0]++; task->data[5] = 0; - sub_81057E8(2); - StartSpriteAnimIfDifferent(gSprites + sSlotMachine->reelTimePikachuSpriteId, 3); + SetReelTimePikachuAuraFlashDelay(2); + StartSpriteAnimIfDifferent(&gSprites[sSlotMachine->reelTimePikachuSpriteId], 3); } } @@ -3070,13 +3181,13 @@ static void ReeltimeAction8(struct Task *task) if(sSlotMachine->reelTimeDraw == 0) { task->data[4] = 0xa0; - StartSpriteAnimIfDifferent(gSprites + sSlotMachine->reelTimePikachuSpriteId, 5); + StartSpriteAnimIfDifferent(&gSprites[sSlotMachine->reelTimePikachuSpriteId], 5); PlayFanfare(MUS_ME_ZANNEN); } else { task->data[4] = 0xc0; - StartSpriteAnimIfDifferent(gSprites + sSlotMachine->reelTimePikachuSpriteId, 4); + StartSpriteAnimIfDifferent(&gSprites[sSlotMachine->reelTimePikachuSpriteId], 4); gSprites[sSlotMachine->reelTimePikachuSpriteId].animCmdIndex = 0; if (sSlotMachine->pikaPower) { @@ -3103,7 +3214,7 @@ static void ReeltimeAction10(struct Task *task) r4 = ((task->data[1] - 8) & 0xff) >> 3; SetGpuReg(REG_OFFSET_BG1HOFS, task->data[1] & 0x1ff); if (task->data[3] >> 3 <= 25) - sub_8104A88(r4); + ClearReelTimeWindowTilemap(r4); else task->data[0]++; } @@ -3137,13 +3248,13 @@ static void ReeltimeAction12(struct Task *task) { if (sSlotMachine->reelIncrement == task->data[1]) task->data[0]++; - else if (sSlotMachine->reelPixelOffsets[0] % 24 == 0 && (++task->data[2]& 0x07) == 0) + else if (sSlotMachine->reelPixelOffsets[0] % REEL_SYMBOL_HEIGHT == 0 && (++task->data[2]& 0x07) == 0) sSlotMachine->reelIncrement >>= 1; } static void ReeltimeAction13(struct Task *task) { - if (sub_8104E18()) + if (IsDigitalDisplayAnimFinished()) DestroyTask(FindTaskIdByFunc(RunReeltimeActions)); } @@ -3154,7 +3265,7 @@ static void ReeltimeAction14(struct Task *task) DestroyReelTimePikachuAuraSprites(); CreateReelTimeExplosionSprite(); gSprites[sSlotMachine->reelTimeShadowSpriteIds[0]].invisible = TRUE; - StartSpriteAnimIfDifferent(gSprites + sSlotMachine->reelTimePikachuSpriteId, 5); + StartSpriteAnimIfDifferent(&gSprites[sSlotMachine->reelTimePikachuSpriteId], 5); task->data[0]++; task->data[4] = 4; task->data[5] = 0; @@ -3187,7 +3298,7 @@ static void ReeltimeAction16(struct Task *task) { gSpriteCoordOffsetY = 0; SetGpuReg(REG_OFFSET_BG1VOFS, 0); - if (sub_8105ACC()) + if (IsReelTimeSmokeAnimFinished()) { task->data[0]++; DestroyReelTimeSmokeSprite(); @@ -3206,26 +3317,27 @@ static void ReeltimeAction17(struct Task *task) DestroyTask(FindTaskIdByFunc(RunReeltimeActions)); } -static void sub_8104A40(s16 a0, s16 a1) +static void LoadReelTimeWindowTilemap(s16 a0, s16 a1) { s16 i; for (i = 4; i < 15; i++) { - LoadBgTilemap(1, &gReelTimeWindowTilemap[a1 + (i - 4) * 20], 2, 32 * i + a0); + LoadBgTilemap(1, &sReelTimeWindow_Tilemap[a1 + (i - 4) * 20], 2, 32 * i + a0); } } -static void sub_8104A88(s16 a0) +static void ClearReelTimeWindowTilemap(s16 a0) { u8 i; for (i = 4; i < 15; i++) { - LoadBgTilemap(1, gUnknown_085A9898, 2, 32 * i + a0); + LoadBgTilemap(1, sEmptyTilemap, 2, 32 * i + a0); } } +// Info Box is the screen shown when Select is pressed static void OpenInfoBox(u8 digDisplayId) { u8 taskId = CreateTask(RunInfoBoxActions, 1); @@ -3243,7 +3355,7 @@ static bool8 IsInfoBoxClosed(void) static void RunInfoBoxActions(u8 taskId) { - InfoBoxActions[gTasks[taskId].data[0]](&gTasks[taskId]); + sInfoBoxActions[gTasks[taskId].data[0]](&gTasks[taskId]); } static void InfoBox_FadeIn(struct Task *task) @@ -3258,11 +3370,11 @@ static void InfoBox_WaitForFade(struct Task *task) task->data[0]++; } -static void InfoBox_8104B80(struct Task *task) +static void InfoBox_DrawWindow(struct Task *task) { - sub_8104DA4(); - sub_81065DC(); - AddWindow(&gUnknown_085A7444); + DestroyDigitalDisplayScene(); + LoadInfoBoxTilemap(); + AddWindow(&sWindowTemplate_InfoBox); PutWindowTilemap(1); FillWindowPixelBuffer(1, PIXEL_FILL(0)); task->data[0]++; @@ -3278,7 +3390,7 @@ static void InfoBox_AddText(struct Task *task) static void InfoBox_AwaitPlayerInput(struct Task *task) { - if (gMain.newKeys & (B_BUTTON | SELECT_BUTTON)) + if (JOY_NEW(B_BUTTON | SELECT_BUTTON)) { FillWindowPixelBuffer(1, PIXEL_FILL(0)); ClearWindowTilemap(1); @@ -3289,22 +3401,22 @@ static void InfoBox_AwaitPlayerInput(struct Task *task) } } -static void InfoBox_812DE14(struct Task *task) +static void InfoBox_LoadSlotMachineTilemap(struct Task *task) { - sub_812F968(); + LoadSlotMachineMenuTilemap(); ShowBg(3); task->data[0]++; } -static void InfoBox_812DE30(struct Task *task) +static void InfoBox_CreateDigitalDisplay(struct Task *task) { CreateDigitalDisplayScene(task->data[1]); task->data[0]++; } -static void InfoBox_8104BFC(struct Task *task) +static void InfoBox_LoadPikaPowerMeter(struct Task *task) { - sub_810423C(sSlotMachine->pikaPower); + LoadPikaPowerMeter(sSlotMachine->pikaPower); BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB(0, 0, 0)); task->data[0]++; } @@ -3314,12 +3426,15 @@ static void InfoBox_FreeTask(struct Task *task) DestroyTask(FindTaskIdByFunc(RunInfoBoxActions)); } -static void sub_8104C5C(void) + +#define sWaitForAnim data[7] + +static void CreateDigitalDisplayTask(void) { u8 i; struct Task *task; - i = CreateTask(sub_8104E74_, 3); - sSlotMachine->unkTaskPointer3D = i; + i = CreateTask(Task_DigitalDisplay, 3); + sSlotMachine->digDisplayTaskId = i; task = &gTasks[i]; task->data[1] = -1; for (i = 4; i < NUM_TASK_DATA; i++) @@ -3332,9 +3447,9 @@ static void CreateDigitalDisplayScene(u8 id) u8 i; struct Task *task; - sub_8104DA4(); + DestroyDigitalDisplayScene(); - task = &gTasks[sSlotMachine->unkTaskPointer3D]; + task = &gTasks[sSlotMachine->digDisplayTaskId]; task->data[1] = id; for (i = 0; sDigitalDisplayScenes[id][i].spriteTemplateId != 255; i++) @@ -3342,33 +3457,35 @@ static void CreateDigitalDisplayScene(u8 id) u8 spriteId; spriteId = CreateStdDigitalDisplaySprite( sDigitalDisplayScenes[id][i].spriteTemplateId, - sDigitalDisplayScenes[id][i].unk01, - sDigitalDisplayScenes[id][i].unk02 + sDigitalDisplayScenes[id][i].dispInfoId, + sDigitalDisplayScenes[id][i].spriteId ); task->data[4 + i] = spriteId; } } -static void sub_8104D30(u8 templateIdx, SpriteCallback a1, s16 a2, s16 a3, s16 a4) +static void AddDigitalDisplaySprite(u8 templateIdx, SpriteCallback callback, s16 x, s16 y, s16 spriteId) { u8 i; - struct Task *task = &gTasks[sSlotMachine->unkTaskPointer3D]; + struct Task *task = &gTasks[sSlotMachine->digDisplayTaskId]; for (i = 4; i < NUM_TASK_DATA; i++) { if (task->data[i] == MAX_SPRITES) { - task->data[i] = CreateDigitalDisplaySprite(templateIdx, a1, a2, a3, a4); + task->data[i] = CreateDigitalDisplaySprite(templateIdx, callback, x, y, spriteId); break; } } } -static void sub_8104DA4(void) +static void DestroyDigitalDisplayScene(void) { u8 i; - struct Task *task = &gTasks[sSlotMachine->unkTaskPointer3D]; + struct Task *task = &gTasks[sSlotMachine->digDisplayTaskId]; + if ((u16)task->data[1] != 0xFFFF) - gUnknown_083ED064[task->data[1]](); + sDigitalDisplaySceneExitCallbacks[task->data[1]](); + for (i = 4; i < NUM_TASK_DATA; i++) { if (task->data[i] != MAX_SPRITES) @@ -3379,27 +3496,27 @@ static void sub_8104DA4(void) } } -static bool8 sub_8104E18(void) +static bool8 IsDigitalDisplayAnimFinished(void) { u8 i; - struct Task *task = &gTasks[sSlotMachine->unkTaskPointer3D]; + struct Task *task = &gTasks[sSlotMachine->digDisplayTaskId]; for (i = 4; i < NUM_TASK_DATA; i++) { if (task->data[i] != MAX_SPRITES) { - if (gSprites[task->data[i]].data[7]) + if (gSprites[task->data[i]].sWaitForAnim) return FALSE; } } return TRUE; } -static void sub_8104E74_(u8 taskId) +static void Task_DigitalDisplay(u8 taskId) { - gUnknown_083ECC54[gTasks[taskId].data[0]](&gTasks[taskId]); + sDigitalDisplayActions[gTasks[taskId].data[0]](&gTasks[taskId]); } -static void nullsub_69(struct Task *task) +static void DigitalDisplay_Idle(struct Task *task) { } @@ -3446,7 +3563,7 @@ static void CreateCreditPayoutNumberSprites(void) static void CreateCoinNumberSprite(s16 x, s16 y, bool8 isPayout, s16 a3) { - struct Sprite *sprite = gSprites + CreateSprite(&sSpriteTemplate_CoinNumber, x, y, 13); + struct Sprite *sprite = &gSprites[CreateSprite(&sSpriteTemplate_CoinNumber, x, y, 13)]; sprite->oam.priority = 2; sprite->data[0] = isPayout; sprite->data[1] = a3; @@ -3472,9 +3589,9 @@ static void SpriteCB_CoinNumber(struct Sprite *sprite) static void CreateReelBackgroundSprite(void) { - u8 spriteId = CreateSprite(&sSpriteTemplate_ReelBackground, 0x58, 0x48, 15); + u8 spriteId = CreateSprite(&sSpriteTemplate_ReelBackground, 88, 72, 15); gSprites[spriteId].oam.priority = 3; - SetSubspriteTables(gSprites + spriteId, sSubspriteTable_ReelBackground); + SetSubspriteTables(&gSprites[spriteId], sSubspriteTable_ReelBackground); } static void CreateReelTimePikachuSprite(void) @@ -3505,7 +3622,7 @@ static void CreateReelTimePikachuSprite(void) static void DestroyReelTimePikachuSprite(void) { - DestroySprite(gSprites + sSlotMachine->reelTimePikachuSpriteId); + DestroySprite(&gSprites[sSlotMachine->reelTimePikachuSpriteId]); if (sImageTable_ReelTimePikachu != NULL) FREE_AND_SET_NULL(sImageTable_ReelTimePikachu); } @@ -3569,7 +3686,7 @@ static void CreateBrokenReelTimeMachineSprite(void) sImageTable_BrokenReelTimeMachine[0].size = 0x600; spriteTemplate = sSpriteTemplate_BrokenReelTimeMachine; spriteTemplate.images = sImageTable_BrokenReelTimeMachine; - spriteId = CreateSprite(&spriteTemplate, 0xa8 - gSpriteCoordOffsetX, 0x50, 7); + spriteId = CreateSprite(&spriteTemplate, 168 - gSpriteCoordOffsetX, 80, 7); sprite = &gSprites[spriteId]; sprite->oam.priority = 1; sprite->coordOffsetEnabled = TRUE; @@ -3583,7 +3700,7 @@ static void CreateReelTimeNumberSprites(void) s16 r5; for (i = 0, r5 = 0; i < ARRAY_COUNT(sSlotMachine->reelTimeNumberSpriteIds); i++, r5 += 20) { - u8 spriteId = CreateSprite(&sSpriteTemplate_ReelTimeNumbers, 0x170, 0, 10); + u8 spriteId = CreateSprite(&sSpriteTemplate_ReelTimeNumbers, 368, 0, 10); struct Sprite *sprite = &gSprites[spriteId]; sprite->oam.priority = 1; sprite->coordOffsetEnabled = TRUE; @@ -3602,14 +3719,14 @@ static void SpriteCB_ReelTimeNumbers(struct Sprite *sprite) static void CreateReelTimeShadowSprites(void) { - u8 spriteId = CreateSprite(&sSpriteTemplate_ReelTimeShadow, 0x170, 0x64, 9); + u8 spriteId = CreateSprite(&sSpriteTemplate_ReelTimeShadow, 368, 100, 9); struct Sprite *sprite = &gSprites[spriteId]; sprite->coordOffsetEnabled = TRUE; sprite->oam.priority = 1; SetSubspriteTables(sprite, sSubspriteTable_ReelTimeShadow); sSlotMachine->reelTimeShadowSpriteIds[0] = spriteId; - spriteId = CreateSprite(&sSpriteTemplate_ReelTimeShadow, 0x120, 0x68, 4); + spriteId = CreateSprite(&sSpriteTemplate_ReelTimeShadow, 288, 104, 4); sprite = &gSprites[spriteId]; sprite->coordOffsetEnabled = TRUE; sprite->oam.priority = 1; @@ -3617,21 +3734,22 @@ static void CreateReelTimeShadowSprites(void) sSlotMachine->reelTimeShadowSpriteIds[1] = spriteId; } -static void sub_810545C(void) +// Creates a small black bar on the Reel Time machine to fill the gap between the numbers +static void CreateReelTimeNumberGapSprite(void) { - u8 spriteId = CreateSprite(&gSpriteTemplate_83ED4EC, 0x170, 0x4c, 11); + u8 spriteId = CreateSprite(&sSpriteTemplate_ReelTimeNumberGap, 368, 76, 11); struct Sprite *sprite = &gSprites[spriteId]; sprite->coordOffsetEnabled = TRUE; sprite->oam.priority = 1; - SetSubspriteTables(sprite, gSubspriteTables_83ED7D4); - sSlotMachine->unk40 = spriteId; + SetSubspriteTables(sprite, sSubspriteTable_ReelTimeNumberGap); + sSlotMachine->reelTimeNumberGapSpriteId = spriteId; } static void DestroyReelTimeMachineSprites(void) { u8 i; - DestroySprite(&gSprites[sSlotMachine->unk40]); + DestroySprite(&gSprites[sSlotMachine->reelTimeNumberGapSpriteId]); for (i = 0; i < ARRAY_COUNT(sSlotMachine->reelTimeMachineSpriteIds); i++) DestroySprite(&gSprites[sSlotMachine->reelTimeMachineSpriteIds[i]]); @@ -3659,32 +3777,38 @@ static void DestroyBrokenReelTimeMachineSprite(void) FREE_AND_SET_NULL(sImageTable_BrokenReelTimeMachine); } +#define sDelayTimer data[0] +#define sXDir data[1] +#define sYDir data[2] +#define sCounter data[3] +#define sDelay data[7] + static void CreateReelTimeBoltSprites(void) { - u8 spriteId = CreateSprite(&sSpriteTemplate_ReelTimeBolt, 0x98, 0x20, 5); + u8 spriteId = CreateSprite(&sSpriteTemplate_ReelTimeBolt, 152, 32, 5); struct Sprite *sprite = &gSprites[spriteId]; sprite->oam.priority = 1; sprite->hFlip = TRUE; sSlotMachine->reelTimeBoltSpriteIds[0] = spriteId; - sprite->data[0] = 8; - sprite->data[1] = -1; - sprite->data[2] = -1; - sprite->data[7] = 0x20; + sprite->sDelayTimer = 8; + sprite->sXDir = -1; + sprite->sYDir = -1; + sprite->sDelay = 32; - spriteId = CreateSprite(&sSpriteTemplate_ReelTimeBolt, 0xb8, 0x20, 5); + spriteId = CreateSprite(&sSpriteTemplate_ReelTimeBolt, 184, 32, 5); sprite = &gSprites[spriteId]; sprite->oam.priority = 1; sSlotMachine->reelTimeBoltSpriteIds[1] = spriteId; - sprite->data[1] = 1; - sprite->data[2] = -1; - sprite->data[7] = 0x20; + sprite->sXDir = 1; + sprite->sYDir = -1; + sprite->sDelay = 32; } static void SpriteCB_ReelTimeBolt(struct Sprite *sprite) { - if (sprite->data[0] != 0) + if (sprite->sDelayTimer != 0) { - sprite->data[0]--; + sprite->sDelayTimer--; sprite->pos2.x = 0; sprite->pos2.y = 0; sprite->invisible = TRUE; @@ -3692,20 +3816,20 @@ static void SpriteCB_ReelTimeBolt(struct Sprite *sprite) else { sprite->invisible = FALSE; - sprite->pos2.x += sprite->data[1]; - sprite->pos2.y += sprite->data[2]; - if (++sprite->data[3] >= 8) + sprite->pos2.x += sprite->sXDir; + sprite->pos2.y += sprite->sYDir; + if (++sprite->sCounter >= 8) { - sprite->data[0] = sprite->data[7]; - sprite->data[3] = 0; + sprite->sDelayTimer = sprite->sDelay; + sprite->sCounter = 0; } } } -static void sub_8105688(s16 a0) +static void SetReelTimeBoltDelay(s16 delay) { - gSprites[sSlotMachine->reelTimeBoltSpriteIds[0]].data[7] = a0; - gSprites[sSlotMachine->reelTimeBoltSpriteIds[1]].data[7] = a0; + gSprites[sSlotMachine->reelTimeBoltSpriteIds[0]].sDelay = delay; + gSprites[sSlotMachine->reelTimeBoltSpriteIds[1]].sDelay = delay; } static void DestroyReelTimeBoltSprites(void) @@ -3716,19 +3840,30 @@ static void DestroyReelTimeBoltSprites(void) DestroySprite(&gSprites[sSlotMachine->reelTimeBoltSpriteIds[i]]); } +#undef sDelayTimer +#undef sXDir +#undef sYDir +#undef sCounter +#undef sDelay + +#define sFlashPal data[0] +#define sColorIdx data[5] +#define sDelayTimer data[6] +#define sDelay data[7] + static void CreateReelTimePikachuAuraSprites(void) { // Left half of electricity orb - u8 spriteId = CreateSprite(&sSpriteTemplate_ReelTimePikachuAura, 0x48, 0x50, 3); + u8 spriteId = CreateSprite(&sSpriteTemplate_ReelTimePikachuAura, 72, 80, 3); gSprites[spriteId].oam.priority = 1; - gSprites[spriteId].data[0] = 1; - gSprites[spriteId].data[5] = 0; - gSprites[spriteId].data[6] = 16; - gSprites[spriteId].data[7] = 8; + gSprites[spriteId].sFlashPal = TRUE; // Only one of them needs to do the flashing, they share the palette + gSprites[spriteId].sColorIdx = 0; + gSprites[spriteId].sDelayTimer = 16; + gSprites[spriteId].sDelay = 8; sSlotMachine->reelTimePikachuAuraSpriteIds[0] = spriteId; // Right half - spriteId = CreateSprite(&sSpriteTemplate_ReelTimePikachuAura, 0x68, 0x50, 3); + spriteId = CreateSprite(&sSpriteTemplate_ReelTimePikachuAura, 104, 80, 3); gSprites[spriteId].oam.priority = 1; gSprites[spriteId].hFlip = TRUE; sSlotMachine->reelTimePikachuAuraSpriteIds[1] = spriteId; @@ -3736,32 +3871,37 @@ static void CreateReelTimePikachuAuraSprites(void) static void SpriteCB_ReelTimePikachuAura(struct Sprite *sprite) { - u8 sp[] = {16, 0}; - if (sprite->data[0] && --sprite->data[6] <= 0) + u8 colors[] = {16, 0}; + if (sprite->sFlashPal && --sprite->sDelayTimer <= 0) { - MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(7) << 4) + 0x103, sp[sprite->data[5]], sp[sprite->data[5]], sp[sprite->data[5]]); - ++sprite->data[5]; - sprite->data[5] &= 1; - sprite->data[6] = sprite->data[7]; + MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(PALTAG_PIKA_AURA) << 4) + 0x103, colors[sprite->sColorIdx], colors[sprite->sColorIdx], colors[sprite->sColorIdx]); + ++sprite->sColorIdx; + sprite->sColorIdx &= 1; + sprite->sDelayTimer = sprite->sDelay; } } -static void sub_81057E8(s16 a0) +static void SetReelTimePikachuAuraFlashDelay(s16 delay) { - gSprites[sSlotMachine->reelTimePikachuAuraSpriteIds[0]].data[7] = a0; + gSprites[sSlotMachine->reelTimePikachuAuraSpriteIds[0]].sDelay = delay; } static void DestroyReelTimePikachuAuraSprites(void) { u8 i; - MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(7) << 4) + 0x103, 0, 0, 0); + MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(PALTAG_PIKA_AURA) << 4) + 0x103, 0, 0, 0); for (i = 0; i < ARRAY_COUNT(sSlotMachine->reelTimePikachuAuraSpriteIds); i++) DestroySprite(&gSprites[sSlotMachine->reelTimePikachuAuraSpriteIds[i]]); } +#undef sFlashPal +#undef sColorIdx +#undef sDelayTimer +#undef sDelay + static void CreateReelTimeExplosionSprite(void) { - u8 spriteId = CreateSprite(&sSpriteTemplate_ReelTimeExplosion, 0xa8, 0x50, 6); + u8 spriteId = CreateSprite(&sSpriteTemplate_ReelTimeExplosion, 168, 80, 6); gSprites[spriteId].oam.priority = 1; sSlotMachine->reelTimeExplosionSpriteId = spriteId; } @@ -3783,7 +3923,7 @@ static void CreateReelTimeDuckSprites(void) u16 sp[] = {0x0, 0x40, 0x80, 0xC0}; for (i = 0; i < ARRAY_COUNT(sSlotMachine->reelTimeDuckSpriteIds); i++) { - u8 spriteId = CreateSprite(&sSpriteTemplate_ReelTimeDuck, 0x50 - gSpriteCoordOffsetX, 0x44, 0); + u8 spriteId = CreateSprite(&sSpriteTemplate_ReelTimeDuck, 80 - gSpriteCoordOffsetX, 68, 0); struct Sprite *sprite = &gSprites[spriteId]; sprite->oam.priority = 1; sprite->coordOffsetEnabled = TRUE; @@ -3819,9 +3959,14 @@ static void DestroyReelTimeDuckSprites(void) } } +#define sState data[0] +#define sMoveY data[1] +#define sTimer data[2] +#define sAnimFinished data[7] + static void CreateReelTimeSmokeSprite(void) { - u8 spriteId = CreateSprite(&sSpriteTemplate_ReelTimeSmoke, 0xa8, 0x3c, 8); + u8 spriteId = CreateSprite(&sSpriteTemplate_ReelTimeSmoke, 168, 60, 8); struct Sprite *sprite = &gSprites[spriteId]; sprite->oam.priority = 1; sprite->oam.affineMode = ST_OAM_AFFINE_DOUBLE; @@ -3831,34 +3976,34 @@ static void CreateReelTimeSmokeSprite(void) static void SpriteCB_ReelTimeSmoke(struct Sprite *sprite) { - if (sprite->data[0] == 0) + if (sprite->sState == 0) { if (sprite->affineAnimEnded) - sprite->data[0]++; + sprite->sState++; } - else if (sprite->data[0] == 1) + else if (sprite->sState == 1) { sprite->invisible ^= 1; - if (++sprite->data[2] >= 24) + if (++sprite->sTimer >= 24) { - sprite->data[0]++; - sprite->data[2] = 0; + sprite->sState++; + sprite->sTimer = 0; } } else { sprite->invisible = TRUE; - if (++sprite->data[2] >= 16) - sprite->data[7] = 1; + if (++sprite->sTimer >= 16) + sprite->sAnimFinished = TRUE; } - sprite->data[1] &= 0xff; - sprite->data[1] += 16; - sprite->pos2.y -= (sprite->data[1] >> 8); + sprite->sMoveY &= 0xff; + sprite->sMoveY += 16; + sprite->pos2.y -= (sprite->sMoveY >> 8); } -static u8 sub_8105ACC(void) +static u8 IsReelTimeSmokeAnimFinished(void) { - return gSprites[sSlotMachine->reelTimeSmokeSpriteId].data[7]; + return gSprites[sSlotMachine->reelTimeSmokeSpriteId].sAnimFinished; } static void DestroyReelTimeSmokeSprite(void) @@ -3868,6 +4013,11 @@ static void DestroyReelTimeSmokeSprite(void) DestroySprite(sprite); } +#undef sState +#undef sMoveY +#undef sTimer +#undef sAnimFinished + static u8 CreatePikaPowerBoltSprite(s16 x, s16 y) { u8 spriteId = CreateSprite(&sSpriteTemplate_PikaPowerBolt, x, y, 12); @@ -3884,19 +4034,23 @@ static void SpriteCB_PikaPowerBolt(struct Sprite *sprite) sprite->data[7] = 1; } -static void sub_8105B88(u8 spriteId) +static void DestroyPikaPowerBoltSprite(u8 spriteId) { struct Sprite *sprite = &gSprites[spriteId]; FreeOamMatrix(sprite->oam.matrixNum); DestroySprite(sprite); } -static u8 CreateStdDigitalDisplaySprite(u8 templateIdx, u8 cbAndCoordsIdx, s16 a2) +static u8 CreateStdDigitalDisplaySprite(u8 templateIdx, u8 dispInfoId, s16 spriteId) { - return CreateDigitalDisplaySprite(templateIdx, gUnknown_083ECF0C[cbAndCoordsIdx], gUnknown_083ECE7E[cbAndCoordsIdx][0], gUnknown_083ECE7E[cbAndCoordsIdx][1], a2); + return CreateDigitalDisplaySprite(templateIdx, sDigitalDisplay_SpriteCallbacks[dispInfoId], sDigitalDisplay_SpriteCoords[dispInfoId][0], sDigitalDisplay_SpriteCoords[dispInfoId][1], spriteId); } -static u8 CreateDigitalDisplaySprite(u8 templateIdx, SpriteCallback callback, s16 x, s16 y, s16 a4) +#define sState data[0] +#define sCounter data[1] +#define sSpriteId data[6] + +static u8 CreateDigitalDisplaySprite(u8 templateIdx, SpriteCallback callback, s16 x, s16 y, s16 internalSpriteId) { struct SpriteTemplate spriteTemplate; u8 spriteId; @@ -3908,123 +4062,125 @@ static u8 CreateDigitalDisplaySprite(u8 templateIdx, SpriteCallback callback, s1 sprite = &gSprites[spriteId]; sprite->oam.priority = 3; sprite->callback = callback; - sprite->data[6] = a4; - sprite->data[7] = 1; + sprite->sSpriteId = internalSpriteId; + sprite->sWaitForAnim = TRUE; if (sSubspriteTables_DigitalDisplay[templateIdx]) SetSubspriteTables(sprite, sSubspriteTables_DigitalDisplay[templateIdx]); return spriteId; } -static void sub_8105C64(struct Sprite *sprite) +static void SpriteCB_DigitalDisplay_Static(struct Sprite *sprite) { - sprite->data[7] = 0; + sprite->sWaitForAnim = FALSE; } -static void sub_8105C6C(struct Sprite *sprite) +static void SpriteCB_DigitalDisplay_Smoke(struct Sprite *sprite) { - s16 sp0[] = {4, -4, 4, -4}; - s16 sp8[] = {4, 4, -4, -4}; + s16 targetX[] = {4, -4, 4, -4}; + s16 targetY[] = {4, 4, -4, -4}; - if (sprite->data[1]++ >= 16) + if (sprite->sCounter++ >= 16) { sprite->subspriteTableNum ^= 1; - sprite->data[1] = 0; + sprite->sCounter = 0; } sprite->pos2.x = 0; sprite->pos2.y = 0; if (sprite->subspriteTableNum != 0) { - sprite->pos2.x = sp0[sprite->data[6]]; - sprite->pos2.y = sp8[sprite->data[6]]; + sprite->pos2.x = targetX[sprite->sSpriteId]; + sprite->pos2.y = targetY[sprite->sSpriteId]; } } -static void sub_8105CF0(struct Sprite *sprite) +static void SpriteCB_DigitalDisplay_SmokeNE(struct Sprite *sprite) { sprite->hFlip = TRUE; - sub_8105C6C(sprite); + SpriteCB_DigitalDisplay_Smoke(sprite); } -static void sub_8105D08(struct Sprite *sprite) +static void SpriteCB_DigitalDisplay_SmokeSW(struct Sprite *sprite) { sprite->vFlip = TRUE; - sub_8105C6C(sprite); + SpriteCB_DigitalDisplay_Smoke(sprite); } -static void sub_8105D20(struct Sprite *sprite) +static void SpriteCB_DigitalDisplay_SmokeSE(struct Sprite *sprite) { sprite->hFlip = TRUE; sprite->vFlip = TRUE; - sub_8105C6C(sprite); + SpriteCB_DigitalDisplay_Smoke(sprite); } -static void sub_8105D3C(struct Sprite *sprite) +// The word "Reel" in Reel Time +static void SpriteCB_DigitalDisplay_Reel(struct Sprite *sprite) { - switch (sprite->data[0]) + switch (sprite->sState) { case 0: sprite->pos1.x += 4; if (sprite->pos1.x >= 0xd0) { sprite->pos1.x = 0xd0; - sprite->data[0]++; + sprite->sState++; } break; case 1: - if (++sprite->data[1] > 90) - sprite->data[0]++; + if (++sprite->sCounter > 90) + sprite->sState++; break; case 2: sprite->pos1.x += 4; if (sprite->pos1.x >= 0x110) - sprite->data[0]++; + sprite->sState++; break; case 3: - sprite->data[7] = 0; + sprite->sWaitForAnim = FALSE; break; } } -static void sub_8105DA4(struct Sprite *sprite) +// The word "Time" in Reel Time +static void SpriteCB_DigitalDisplay_Time(struct Sprite *sprite) { - switch (sprite->data[0]) + switch (sprite->sState) { case 0: sprite->pos1.x -= 4; if (sprite->pos1.x <= 0xd0) { sprite->pos1.x = 0xd0; - sprite->data[0]++; + sprite->sState++; } break; case 1: - if (++sprite->data[1] > 90) - sprite->data[0]++; + if (++sprite->sCounter > 90) + sprite->sState++; break; case 2: sprite->pos1.x -= 4; if (sprite->pos1.x <= 0x90) - sprite->data[0]++; + sprite->sState++; break; case 3: - sprite->data[7] = 0; + sprite->sWaitForAnim = FALSE; break; } } -static void sub_8105E08(struct Sprite *sprite) +static void SpriteCB_DigitalDisplay_ReelTimeNumber(struct Sprite *sprite) { - switch (sprite->data[0]) + switch (sprite->sState) { case 0: StartSpriteAnim(sprite, sSlotMachine->reelTimeSpinsLeft - 1); - sprite->data[0]++; + sprite->sState++; // fallthrough case 1: - if (++sprite->data[1] >= 4) + if (++sprite->sCounter >= 4) { - sprite->data[0]++; - sprite->data[1] = 0; + sprite->sState++; + sprite->sCounter = 0; } break; case 2: @@ -4032,54 +4188,54 @@ static void sub_8105E08(struct Sprite *sprite) if (sprite->pos1.x >= 0xd0) { sprite->pos1.x = 0xd0; - sprite->data[0]++; + sprite->sState++; } break; case 3: - if (++sprite->data[1] > 90) - sprite->data[0]++; + if (++sprite->sCounter > 90) + sprite->sState++; break; case 4: sprite->pos1.x += 4; if (sprite->pos1.x >= 0xf8) - sprite->data[0]++; + sprite->sState++; break; case 5: - sprite->data[7] = 0; + sprite->sWaitForAnim = FALSE; break; } } -static void sub_8105EB4(struct Sprite *sprite) +static void SpriteCB_DigitalDisplay_PokeballRocking(struct Sprite *sprite) { - switch (sprite->data[0]) + switch (sprite->sState) { case 0: sprite->animPaused = TRUE; - sprite->data[0]++; + sprite->sState++; // fallthrough case 1: sprite->pos1.y += 8; if (sprite->pos1.y >= 0x70) { sprite->pos1.y = 0x70; - sprite->data[1] = 16; - sprite->data[0]++; + sprite->sCounter = 16; + sprite->sState++; } break; case 2: if (sprite->data[2] == 0) { - sprite->pos1.y -= sprite->data[1]; - sprite->data[1] = -sprite->data[1]; + sprite->pos1.y -= sprite->sCounter; + sprite->sCounter = -sprite->sCounter; if (++sprite->data[3] >= 2) { - sprite->data[1] >>= 2; + sprite->sCounter >>= 2; sprite->data[3] = 0; - if (sprite->data[1] == 0) + if (sprite->sCounter == 0) { - sprite->data[0]++; - sprite->data[7] = 0; + sprite->sState++; + sprite->sWaitForAnim = FALSE; sprite->animPaused = FALSE; } } @@ -4090,53 +4246,53 @@ static void sub_8105EB4(struct Sprite *sprite) } } -static void sub_8105F54(struct Sprite *sprite) +static void SpriteCB_DigitalDisplay_Stop(struct Sprite *sprite) { - switch (sprite->data[0]) + switch (sprite->sState) { case 0: - if (++sprite->data[1] > 8) - sprite->data[0]++; + if (++sprite->sCounter > 8) + sprite->sState++; break; case 1: sprite->pos1.y += 2; if (sprite->pos1.y >= 0x30) { sprite->pos1.y = 0x30; - sprite->data[0]++; - sprite->data[7] = 0; + sprite->sState++; + sprite->sWaitForAnim = FALSE; } break; } } -static void sub_8105F9C(struct Sprite *sprite) +static void SpriteCB_DigitalDisplay_AButtonStop(struct Sprite *sprite) { - switch (sprite->data[0]) + switch (sprite->sState) { case 0: sprite->invisible = TRUE; - if (++sprite->data[1] > 0x20) + if (++sprite->sCounter > 0x20) { - sprite->data[0]++; - sprite->data[1] = 5; + sprite->sState++; + sprite->sCounter = 5; sprite->oam.mosaic = TRUE; sprite->invisible = FALSE; StartSpriteAnim(sprite, 1); - SetGpuReg(REG_OFFSET_MOSAIC, ((sprite->data[1] << 4) | sprite->data[1]) << 8); + SetGpuReg(REG_OFFSET_MOSAIC, ((sprite->sCounter << 4) | sprite->sCounter) << 8); } break; case 1: - sprite->data[1] -= (sprite->data[2] >> 8); - if (sprite->data[1] < 0) - sprite->data[1] = 0; - SetGpuReg(REG_OFFSET_MOSAIC, ((sprite->data[1] << 4) | sprite->data[1]) << 8); + sprite->sCounter -= (sprite->data[2] >> 8); + if (sprite->sCounter < 0) + sprite->sCounter = 0; + SetGpuReg(REG_OFFSET_MOSAIC, ((sprite->sCounter << 4) | sprite->sCounter) << 8); sprite->data[2] &= 0xff; sprite->data[2] += 0x80; - if (sprite->data[1] == 0) + if (sprite->sCounter == 0) { - sprite->data[0]++; - sprite->data[7] = 0; + sprite->sState++; + sprite->sWaitForAnim = FALSE; sprite->oam.mosaic = FALSE; StartSpriteAnim(sprite, 0); } @@ -4144,11 +4300,11 @@ static void sub_8105F9C(struct Sprite *sprite) } } -static void sub_8106058(struct Sprite *sprite) +static void SpriteCB_DigitalDisplay_PokeballShining(struct Sprite *sprite) { - if (sprite->data[1] < 3) + if (sprite->sCounter < 3) { - LoadPalette(gUnknown_083EDE10[sprite->data[1]], (IndexOfSpritePaletteTag(6) << 4) + 0x100, 0x20); + LoadPalette(sPokeballShiningPalTable[sprite->sCounter], (IndexOfSpritePaletteTag(PALTAG_DIG_DISPLAY) << 4) + 0x100, 32); if (++sprite->data[2] >= 4) { sprite->data[1]++; @@ -4157,34 +4313,35 @@ static void sub_8106058(struct Sprite *sprite) } else { - LoadPalette(gUnknown_083EDE10[sprite->data[1]], (IndexOfSpritePaletteTag(6) << 4) + 0x100, 0x20); + LoadPalette(sPokeballShiningPalTable[sprite->sCounter], (IndexOfSpritePaletteTag(PALTAG_DIG_DISPLAY) << 4) + 0x100, 32); if (++sprite->data[2] >= 25) { - sprite->data[1] = 0; + sprite->sCounter = 0; sprite->data[2] = 0; } } StartSpriteAnimIfDifferent(sprite, 1); - sprite->data[7] = 0; + sprite->sWaitForAnim = FALSE; } -static void sub_81060FC(struct Sprite *sprite) +static void SpriteCB_DigitalDisplay_RegBonus(struct Sprite *sprite) { - s16 sp00[] = {0, -40, 0, 0, 48, 0, 24, 0}; - s16 sp10[] = {-32, 0, -32, -48, 0, -48, 0, -48}; - s16 sp20[] = {16, 12, 16, 0, 0, 4, 8, 8}; + // Elements in array correspond to R E G B O N U S + s16 letterXOffset[] = { 0, -40, 0, 0, 48, 0, 24, 0}; + s16 letterYOffset[] = {-32, 0, -32, -48, 0, -48, 0, -48}; + s16 letterDelay[] = { 16, 12, 16, 0, 0, 4, 8, 8}; - switch (sprite->data[0]) + switch (sprite->sState) { case 0: - sprite->pos2.x = sp00[sprite->data[6]]; - sprite->pos2.y = sp10[sprite->data[6]]; - sprite->data[1] = sp20[sprite->data[6]]; - sprite->data[0]++; + sprite->pos2.x = letterXOffset[sprite->sSpriteId]; + sprite->pos2.y = letterYOffset[sprite->sSpriteId]; + sprite->sCounter = letterDelay[sprite->sSpriteId]; + sprite->sState++; // fallthrough case 1: - if (sprite->data[1]-- == 0) - sprite->data[0]++; + if (sprite->sCounter-- == 0) + sprite->sState++; break; case 2: if (sprite->pos2.x > 0) @@ -4198,166 +4355,168 @@ static void sub_81060FC(struct Sprite *sprite) sprite->pos2.y += 4; if (sprite->pos2.x == 0 && sprite->pos2.y == 0) - sprite->data[0]++; + sprite->sState++; break; } } -static void sub_81061C8(struct Sprite *sprite) +static void SpriteCB_DigitalDisplay_BigBonus(struct Sprite *sprite) { s16 sp0[] = {160, 192, 224, 104, 80, 64, 48, 24}; - if (sprite->data[0] == 0) + if (sprite->sState == 0) { - sprite->data[0]++; - sprite->data[1] = 12; + sprite->sState++; + sprite->sCounter = 12; } - sprite->pos2.x = Cos(sp0[sprite->data[6]], sprite->data[1]); - sprite->pos2.y = Sin(sp0[sprite->data[6]], sprite->data[1]); - if (sprite->data[1] != 0) - sprite->data[1]--; + sprite->pos2.x = Cos(sp0[sprite->sSpriteId], sprite->sCounter); + sprite->pos2.y = Sin(sp0[sprite->sSpriteId], sprite->sCounter); + if (sprite->sCounter != 0) + sprite->sCounter--; } -static void sub_8106230(struct Sprite *sprite) +// For the A Button prompt when inserting bet +// Initially no sprite until after the first bet +static void SpriteCB_DigitalDisplay_AButtonStart(struct Sprite *sprite) { - switch (sprite->data[0]) + switch (sprite->sState) { case 0: - sSlotMachine->winIn = 0x2f; - sSlotMachine->winOut = 0x3f; - sSlotMachine->win0v = 0x2088; + sSlotMachine->winIn = WININ_WIN0_BG_ALL | WININ_WIN0_CLR; + sSlotMachine->winOut = WINOUT_WIN01_BG_ALL | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR; + sSlotMachine->win0v = WIN_RANGE(32, 136); sprite->invisible = TRUE; - sprite->data[0]++; + sprite->sState++; // fallthrough case 1: - sprite->data[1] += 2; - sprite->data[2] = sprite->data[1] + 0xb0; - sprite->data[3] = 0xf0 - sprite->data[1]; - if (sprite->data[2] > 0xd0) - sprite->data[2] = 0xd0; - if (sprite->data[3] < 0xd0) - sprite->data[3] = 0xd0; + sprite->sCounter += 2; + sprite->data[2] = sprite->sCounter + 176; + sprite->data[3] = DISPLAY_WIDTH - sprite->sCounter; + if (sprite->data[2] > 208) + sprite->data[2] = 208; + if (sprite->data[3] < 208) + sprite->data[3] = 208; sSlotMachine->win0h = (sprite->data[2] << 8) | sprite->data[3]; - if (sprite->data[1] > 0x33) + if (sprite->sCounter > 51) { - sprite->data[0]++; - sSlotMachine->winIn = 0x3f; + sprite->sState++; + sSlotMachine->winIn = WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR; } break; case 2: if (sSlotMachine->bet == 0) break; - sub_8104D30(DIG_SPRITE_A_BUTTON, SpriteCallbackDummy, 0xd0, 0x74, 0); - sSlotMachine->win0h = 0xc0e0; - sSlotMachine->win0v = 0x6880; - sSlotMachine->winIn = 0x2f; - sprite->data[0]++; - sprite->data[1] = 0; + AddDigitalDisplaySprite(DIG_SPRITE_A_BUTTON, SpriteCallbackDummy, 208, 116, 0); + sSlotMachine->win0h = WIN_RANGE(192, 224); + sSlotMachine->win0v = WIN_RANGE(104, 128); + sSlotMachine->winIn = WININ_WIN0_BG_ALL | WININ_WIN0_CLR; + sprite->sState++; + sprite->sCounter = 0; // fallthrough case 3: - sprite->data[1] += 2; - sprite->data[2] = sprite->data[1] + 0xc0; - sprite->data[3] = 0xe0 - sprite->data[1]; - if (sprite->data[2] > 0xd0) - sprite->data[2] = 0xd0; - if (sprite->data[3] < 0xd0) - sprite->data[3] = 0xd0; + sprite->sCounter += 2; + sprite->data[2] = sprite->sCounter + 192; + sprite->data[3] = DISPLAY_WIDTH - 16 - sprite->sCounter; + if (sprite->data[2] > 208) + sprite->data[2] = 208; + if (sprite->data[3] < 208) + sprite->data[3] = 208; sSlotMachine->win0h = (sprite->data[2] << 8) | sprite->data[3]; - if (sprite->data[1] > 0x0f) + if (sprite->sCounter > 15) { - sprite->data[0]++; - sSlotMachine->winIn = 0x3f; + sprite->sState++; + sSlotMachine->winIn = WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR; } break; } } -static void nullsub_70(void) +static void EndDigitalDisplayScene_Dummy(void) { } -static void sub_8106364(void) +static void EndDigitalDisplayScene_StopReel(void) { SetGpuReg(REG_OFFSET_MOSAIC, 0); } -static void sub_8106370(void) +static void EndDigitalDisplayScene_Win(void) { - LoadPalette(gUnknown_083EDE20, (IndexOfSpritePaletteTag(6) << 4) + 0x100, 0x20); + LoadPalette(sDigitalDisplay_Pal, (IndexOfSpritePaletteTag(PALTAG_DIG_DISPLAY) << 4) + 0x100, 0x20); } -static void sub_810639C(void) +static void EndDigitalDisplayScene_InsertBet(void) { - sSlotMachine->win0h = 0xf0; - sSlotMachine->win0v = 0xa0; - sSlotMachine->winIn = 0x3f; - sSlotMachine->winOut = 0x3f; + sSlotMachine->win0h = DISPLAY_WIDTH; + sSlotMachine->win0v = DISPLAY_HEIGHT; + sSlotMachine->winIn = WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR; + sSlotMachine->winOut = WINOUT_WIN01_BG_ALL | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR; } static void sub_81063C0(void) { u8 i; - sub_8106404(); + LoadReelBackground(); sDigitalDisplayGfxPtr = Alloc(0x3200); LZDecompressWram(gSlotMachineDigitalDisplay_Gfx, sDigitalDisplayGfxPtr); sReelTimeGfxPtr = Alloc(0x3600); LZDecompressWram(sReelTimeGfx, sReelTimeGfxPtr); - sUnknown_0203AB30 = AllocZeroed(sizeof(struct SpriteSheet) * ARRAY_COUNT(gSlotMachineSpriteSheets)); - for (i = 0; i < ARRAY_COUNT(gSlotMachineSpriteSheets); i++) + sSlotMachineSpritesheetsPtr = AllocZeroed(sizeof(struct SpriteSheet) * ARRAY_COUNT(sSlotMachineSpriteSheets)); + for (i = 0; i < ARRAY_COUNT(sSlotMachineSpriteSheets); i++) { - sUnknown_0203AB30[i].data = gSlotMachineSpriteSheets[i].data; - sUnknown_0203AB30[i].size = gSlotMachineSpriteSheets[i].size; - sUnknown_0203AB30[i].tag = gSlotMachineSpriteSheets[i].tag; + sSlotMachineSpritesheetsPtr[i].data = sSlotMachineSpriteSheets[i].data; + sSlotMachineSpritesheetsPtr[i].size = sSlotMachineSpriteSheets[i].size; + sSlotMachineSpritesheetsPtr[i].tag = sSlotMachineSpriteSheets[i].tag; } - sUnknown_0203AB30[17].data = sDigitalDisplayGfxPtr + 0xA00; // STOP - sUnknown_0203AB30[18].data = sDigitalDisplayGfxPtr + 0x1400; // BONUS - sUnknown_0203AB30[19].data = sDigitalDisplayGfxPtr + 0x1600; // BIG - sUnknown_0203AB30[20].data = sDigitalDisplayGfxPtr + 0x1900; // REG - LoadSpriteSheets(sUnknown_0203AB30); - LoadSpritePalettes(gSlotMachineSpritePalettes); + sSlotMachineSpritesheetsPtr[GFXTAG_STOP - 1].data = sDigitalDisplayGfxPtr + 0xA00; + sSlotMachineSpritesheetsPtr[GFXTAG_BONUS - 1].data = sDigitalDisplayGfxPtr + 0x1400; + sSlotMachineSpritesheetsPtr[GFXTAG_BIG - 1].data = sDigitalDisplayGfxPtr + 0x1600; + sSlotMachineSpritesheetsPtr[GFXTAG_REG - 1].data = sDigitalDisplayGfxPtr + 0x1900; + LoadSpriteSheets(sSlotMachineSpritesheetsPtr); + LoadSpritePalettes(sSlotMachineSpritePalettes); } -static void sub_8106404(void) +static void LoadReelBackground(void) { u8 *dest; u8 i, j; - sUnknown_0203AB2C = AllocZeroed(sizeof(struct SpriteSheet)); - sUnknown_0203AAE0 = AllocZeroed(0x2000); - dest = sUnknown_0203AAE0; + sReelBackgroundSpriteSheet = AllocZeroed(sizeof(struct SpriteSheet)); + sReelBackground_Gfx = AllocZeroed(0x2000); // Background is plain white + dest = sReelBackground_Gfx; for (i = 0; i < 0x40; i++) { for (j = 0; j < 0x20; j++, dest++) - *dest = gUnknown_083EDCDC[j]; + *dest = sReelBackground_Tilemap[j]; } - sUnknown_0203AB2C->data = sUnknown_0203AAE0; - sUnknown_0203AB2C->size = 0x800; - sUnknown_0203AB2C->tag = 0x11; - LoadSpriteSheet(sUnknown_0203AB2C); + sReelBackgroundSpriteSheet->data = sReelBackground_Gfx; + sReelBackgroundSpriteSheet->size = 0x800; + sReelBackgroundSpriteSheet->tag = GFXTAG_REEL_BG; + LoadSpriteSheet(sReelBackgroundSpriteSheet); } -static void sub_8106448(void) +static void LoadMenuGfx(void) { - sUnknown_0203AAC8 = Alloc(0x2200); - LZDecompressWram(gSlotMachineMenu_Gfx, sUnknown_0203AAC8); - LoadBgTiles(2, sUnknown_0203AAC8, 0x2200, 0); + sMenuGfx = Alloc(0x2200); + LZDecompressWram(gSlotMachineMenu_Gfx, sMenuGfx); + LoadBgTiles(2, sMenuGfx, 0x2200, 0); LoadPalette(gSlotMachineMenu_Pal, 0, 160); LoadPalette(gPalette_83EDE24, 208, 32); } static void sub_81064B8(void) { - sub_812F968(); - LoadSlotMachineWheelOverlay(); + LoadSlotMachineMenuTilemap(); + LoadSlotMachineReelOverlay(); } -static void sub_812F968(void) +static void LoadSlotMachineMenuTilemap(void) { LoadBgTilemap(2, gSlotMachineMenu_Tilemap, 0x500, 0); } -static void LoadSlotMachineWheelOverlay(void) +static void LoadSlotMachineReelOverlay(void) { s16 x, y, dx; @@ -4365,40 +4524,41 @@ static void LoadSlotMachineWheelOverlay(void) { for (dx = 0; dx < 4; dx++) { - LoadBgTilemap(3, sUnknown_0203AAD0, 2, x + dx + 5 * 32); - LoadBgTilemap(3, sUnknown_0203AAD0 + 1, 2, x + dx + 13 * 32); - LoadBgTilemap(3, sUnknown_0203AAD0 + 2, 2, x + dx + 6 * 32); - LoadBgTilemap(3, sUnknown_0203AAD0 + 3, 2, x + dx + 12 * 32); + LoadBgTilemap(3, sReelOverlay_Tilemap, 2, x + dx + 5 * 32); + LoadBgTilemap(3, sReelOverlay_Tilemap + 1, 2, x + dx + 13 * 32); + LoadBgTilemap(3, sReelOverlay_Tilemap + 2, 2, x + dx + 6 * 32); + LoadBgTilemap(3, sReelOverlay_Tilemap + 3, 2, x + dx + 12 * 32); } - LoadBgTilemap(3, sUnknown_0203AAD0 + 4, 2, x + 6 * 32); - LoadBgTilemap(3, sUnknown_0203AAD0 + 5, 2, x + 12 * 32); + LoadBgTilemap(3, sReelOverlay_Tilemap + 4, 2, x + 6 * 32); + LoadBgTilemap(3, sReelOverlay_Tilemap + 5, 2, x + 12 * 32); for (y = 7; y <= 11; y++) - LoadBgTilemap(3, sUnknown_0203AAD0 + 6, 2, x + y * 32); + LoadBgTilemap(3, sReelOverlay_Tilemap + 6, 2, x + y * 32); } } -static void sub_81065A8(s16 arg0, u16 arg1, u16 arg2, u16 arg3, u16 arg4) +// For (un)shading the gray button at the bottom of a reel when A is pressed. The button is colored in quadrants +static void SetReelButtonTilemap(s16 offset, u16 topLeft, u16 topRight, u16 bottomLeft, u16 bottomRight) { - sUnknown_0203AADC[0] = arg1; - sUnknown_0203AADC[1] = arg2; - sUnknown_0203AADC[2] = arg3; - sUnknown_0203AADC[3] = arg4; + sReelButtonPress_Tilemap[0] = topLeft; + sReelButtonPress_Tilemap[1] = topRight; + sReelButtonPress_Tilemap[2] = bottomLeft; + sReelButtonPress_Tilemap[3] = bottomRight; - LoadBgTilemap(2, sUnknown_0203AADC, 2, 15 * 32 + arg0); - LoadBgTilemap(2, sUnknown_0203AADC + 1, 2, 15 * 32 + 1 + arg0); - LoadBgTilemap(2, sUnknown_0203AADC + 2, 2, 16 * 32 + arg0); - LoadBgTilemap(2, sUnknown_0203AADC + 3, 2, 16 * 32 + 1 + arg0); + LoadBgTilemap(2, sReelButtonPress_Tilemap, 2, 15 * 32 + offset); // Top left + LoadBgTilemap(2, sReelButtonPress_Tilemap + 1, 2, 15 * 32 + 1 + offset); // Top right + LoadBgTilemap(2, sReelButtonPress_Tilemap + 2, 2, 16 * 32 + offset); // Bottom left + LoadBgTilemap(2, sReelButtonPress_Tilemap + 3, 2, 16 * 32 + 1 + offset); // Bottom Right } -static void sub_81065DC(void) +static void LoadInfoBoxTilemap(void) { - LoadBgTilemap(2, gUnknown_08DCEC70, 0x500, 0); + LoadBgTilemap(2, gSlotMachineInfoBox_Tilemap, 0x500, 0); HideBg(3); } -static void SlotMachineSetup_SetDigDisplayImagePtrs(void) +static void SetDigitalDisplayImagePtrs(void) { sImageTables_DigitalDisplay[DIG_SPRITE_REEL] = sImageTable_DigitalDisplay_Reel; sImageTables_DigitalDisplay[DIG_SPRITE_TIME] = sImageTable_DigitalDisplay_Time; @@ -4428,7 +4588,7 @@ static void SlotMachineSetup_SetDigDisplayImagePtrs(void) sImageTables_DigitalDisplay[DIG_SPRITE_EMPTY] = NULL; } -static void SlotMachineSetup_AllocDigDisplayGfx(void) +static void AllocDigitalDisplayGfx(void) { sImageTable_DigitalDisplay_Reel = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); sImageTable_DigitalDisplay_Reel[0].data = sDigitalDisplayGfxPtr; @@ -4501,76 +4661,76 @@ static void SlotMachineSetup_AllocDigDisplayGfx(void) sImageTable_DigitalDisplay_DPad[1].size = 0x180; } -static const u8 sReelSymbols[NUM_REELS][REEL_NUM_TAGS] = +static const u8 sReelSymbolTileTags[NUM_REELS][SYMBOLS_PER_REEL] = { { - SLOT_MACHINE_TAG_7_RED, - SLOT_MACHINE_TAG_CHERRY, - SLOT_MACHINE_TAG_AZURILL, - SLOT_MACHINE_TAG_REPLAY, - SLOT_MACHINE_TAG_POWER, - SLOT_MACHINE_TAG_LOTAD, - SLOT_MACHINE_TAG_7_BLUE, - SLOT_MACHINE_TAG_LOTAD, - SLOT_MACHINE_TAG_CHERRY, - SLOT_MACHINE_TAG_POWER, - SLOT_MACHINE_TAG_REPLAY, - SLOT_MACHINE_TAG_AZURILL, - SLOT_MACHINE_TAG_7_RED, - SLOT_MACHINE_TAG_POWER, - SLOT_MACHINE_TAG_LOTAD, - SLOT_MACHINE_TAG_REPLAY, - SLOT_MACHINE_TAG_AZURILL, - SLOT_MACHINE_TAG_7_BLUE, - SLOT_MACHINE_TAG_POWER, - SLOT_MACHINE_TAG_LOTAD, - SLOT_MACHINE_TAG_REPLAY + GFXTAG_7_RED, + GFXTAG_CHERRY, + GFXTAG_AZURILL, + GFXTAG_REPLAY, + GFXTAG_POWER, + GFXTAG_LOTAD, + GFXTAG_7_BLUE, + GFXTAG_LOTAD, + GFXTAG_CHERRY, + GFXTAG_POWER, + GFXTAG_REPLAY, + GFXTAG_AZURILL, + GFXTAG_7_RED, + GFXTAG_POWER, + GFXTAG_LOTAD, + GFXTAG_REPLAY, + GFXTAG_AZURILL, + GFXTAG_7_BLUE, + GFXTAG_POWER, + GFXTAG_LOTAD, + GFXTAG_REPLAY }, { - SLOT_MACHINE_TAG_7_RED, - SLOT_MACHINE_TAG_CHERRY, - SLOT_MACHINE_TAG_REPLAY, - SLOT_MACHINE_TAG_LOTAD, - SLOT_MACHINE_TAG_AZURILL, - SLOT_MACHINE_TAG_CHERRY, - SLOT_MACHINE_TAG_REPLAY, - SLOT_MACHINE_TAG_POWER, - SLOT_MACHINE_TAG_POWER, - SLOT_MACHINE_TAG_LOTAD, - SLOT_MACHINE_TAG_7_BLUE, - SLOT_MACHINE_TAG_LOTAD, - SLOT_MACHINE_TAG_REPLAY, - SLOT_MACHINE_TAG_CHERRY, - SLOT_MACHINE_TAG_AZURILL, - SLOT_MACHINE_TAG_LOTAD, - SLOT_MACHINE_TAG_REPLAY, - SLOT_MACHINE_TAG_CHERRY, - SLOT_MACHINE_TAG_LOTAD, - SLOT_MACHINE_TAG_REPLAY, - SLOT_MACHINE_TAG_CHERRY + GFXTAG_7_RED, + GFXTAG_CHERRY, + GFXTAG_REPLAY, + GFXTAG_LOTAD, + GFXTAG_AZURILL, + GFXTAG_CHERRY, + GFXTAG_REPLAY, + GFXTAG_POWER, + GFXTAG_POWER, + GFXTAG_LOTAD, + GFXTAG_7_BLUE, + GFXTAG_LOTAD, + GFXTAG_REPLAY, + GFXTAG_CHERRY, + GFXTAG_AZURILL, + GFXTAG_LOTAD, + GFXTAG_REPLAY, + GFXTAG_CHERRY, + GFXTAG_LOTAD, + GFXTAG_REPLAY, + GFXTAG_CHERRY }, { - SLOT_MACHINE_TAG_7_RED, - SLOT_MACHINE_TAG_POWER, - SLOT_MACHINE_TAG_7_BLUE, - SLOT_MACHINE_TAG_REPLAY, - SLOT_MACHINE_TAG_LOTAD, - SLOT_MACHINE_TAG_AZURILL, - SLOT_MACHINE_TAG_REPLAY, - SLOT_MACHINE_TAG_LOTAD, - SLOT_MACHINE_TAG_POWER, - SLOT_MACHINE_TAG_AZURILL, - SLOT_MACHINE_TAG_REPLAY, - SLOT_MACHINE_TAG_LOTAD, - SLOT_MACHINE_TAG_AZURILL, - SLOT_MACHINE_TAG_POWER, - SLOT_MACHINE_TAG_REPLAY, - SLOT_MACHINE_TAG_LOTAD, - SLOT_MACHINE_TAG_AZURILL, - SLOT_MACHINE_TAG_POWER, - SLOT_MACHINE_TAG_REPLAY, - SLOT_MACHINE_TAG_LOTAD, - SLOT_MACHINE_TAG_CHERRY + GFXTAG_7_RED, + GFXTAG_POWER, + GFXTAG_7_BLUE, + GFXTAG_REPLAY, + GFXTAG_LOTAD, + GFXTAG_AZURILL, + GFXTAG_REPLAY, + GFXTAG_LOTAD, + GFXTAG_POWER, + GFXTAG_AZURILL, + GFXTAG_REPLAY, + GFXTAG_LOTAD, + GFXTAG_AZURILL, + GFXTAG_POWER, + GFXTAG_REPLAY, + GFXTAG_LOTAD, + GFXTAG_AZURILL, + GFXTAG_POWER, + GFXTAG_REPLAY, + GFXTAG_LOTAD, + GFXTAG_CHERRY }, }; @@ -4643,7 +4803,7 @@ static const u16 gReelTimeBonusIncrementTable[] = { // tentative name static const u8 gBiasTags[] = { - SLOT_MACHINE_TAG_REPLAY, SLOT_MACHINE_TAG_CHERRY, SLOT_MACHINE_TAG_LOTAD, SLOT_MACHINE_TAG_AZURILL, SLOT_MACHINE_TAG_POWER, SLOT_MACHINE_TAG_7_RED, SLOT_MACHINE_TAG_7_RED, SLOT_MACHINE_TAG_7_RED + GFXTAG_REPLAY, GFXTAG_CHERRY, GFXTAG_LOTAD, GFXTAG_AZURILL, GFXTAG_POWER, GFXTAG_7_RED, GFXTAG_7_RED, GFXTAG_7_RED }; static const u16 gLuckyFlagSettings_Top3[] = { @@ -4680,144 +4840,144 @@ static const u16 gSlotPayouts[] = { 2, 4, 0, 6, 12, 3, 90, 300, 300 }; -static const s16 gUnknown_083ECE7E[][2] = { - { 0xd0, 0x38}, - { 0xb8, 0x00}, - { 0xc8, 0x08}, - { 0xd8, 0x10}, - { 0xe8, 0x18}, - { 0xd0, 0x48}, - { 0xd0, 0x08}, - { 0xd0, 0x40}, - { 0xd0, 0x38}, - { 0xc0, 0x58}, - { 0xe0, 0x58}, - { 0xc0, 0x78}, - { 0xe0, 0x78}, - { 0x90, 0x38}, - {0x110, 0x58}, - { 0xa8, 0x70}, - { 0xd0, 0x54}, - { 0xd0, 0x70}, - { 0xbc, 0x34}, - { 0xd0, 0x34}, - { 0xe4, 0x34}, - { 0xb8, 0x48}, - { 0xc4, 0x48}, - { 0xd0, 0x48}, - { 0xdc, 0x48}, - { 0xe8, 0x48}, - { 0xbc, 0x34}, - { 0xd0, 0x34}, - { 0xe4, 0x34}, - { 0xb8, 0x48}, - { 0xc4, 0x48}, - { 0xd0, 0x48}, - { 0xdc, 0x48}, - { 0xe8, 0x48}, - { 0x00, 0x00} +static const s16 sDigitalDisplay_SpriteCoords[][2] = { + [DIG_DISPINFO_INSERT] = { 208, 56}, + [DIG_DISPINFO_STOP_S] = { 184, 0}, + [DIG_DISPINFO_STOP_T] = { 200, 8}, + [DIG_DISPINFO_STOP_O] = { 216, 16}, + [DIG_DISPINFO_STOP_P] = { 232, 24}, + [DIG_DISPINFO_A_BUTTON_STOP] = { 208, 72}, + [DIG_DISPINFO_POKE_BALL_ROCKING] = { 208, 8}, + [DIG_DISPINFO_WIN] = { 208, 64}, + [DIG_DISPINFO_LOSE] = { 208, 56}, + [DIG_DISPINFO_SMOKE_NW] = { 192, 88}, + [DIG_DISPINFO_SMOKE_NE] = { 224, 88}, + [DIG_DISPINFO_SMOKE_SW] = { 192, 120}, + [DIG_DISPINFO_SMOKE_SE] = { 224, 120}, + [DIG_DISPINFO_REEL] = { 144, 56}, + [DIG_DISPINFO_TIME] = { 272, 88}, + [DIG_DISPINFO_NUMBER] = { 168, 112}, + [DIG_DISPINFO_DPAD] = { 208, 84}, + [DIG_DISPINFO_POKE_BALL_SHINING] = { 208, 112}, + [DIG_DISPINFO_REG_R] = { 188, 52}, + [DIG_DISPINFO_REG_E] = { 208, 52}, + [DIG_DISPINFO_REG_G] = { 228, 52}, + [DIG_DISPINFO_REG_BONUS_B] = { 184, 72}, + [DIG_DISPINFO_REG_BONUS_O] = { 196, 72}, + [DIG_DISPINFO_REG_BONUS_N] = { 208, 72}, + [DIG_DISPINFO_REG_BONUS_U] = { 220, 72}, + [DIG_DISPINFO_REG_BONUS_S] = { 232, 72}, + [DIG_DISPINFO_BIG_B] = { 188, 52}, + [DIG_DISPINFO_BIG_I] = { 208, 52}, + [DIG_DISPINFO_BIG_G] = { 228, 52}, + [DIG_DISPINFO_BIG_BONUS_B] = { 184, 72}, + [DIG_DISPINFO_BIG_BONUS_O] = { 196, 72}, + [DIG_DISPINFO_BIG_BONUS_N] = { 208, 72}, + [DIG_DISPINFO_BIG_BONUS_U] = { 220, 72}, + [DIG_DISPINFO_BIG_BONUS_S] = { 232, 72}, + [DIG_DISPINFO_A_BUTTON_START] = { 0, 0} // Initially offscreen }; -static const SpriteCallback gUnknown_083ECF0C[] = { - sub_8105C64, - sub_8105F54, - sub_8105F54, - sub_8105F54, - sub_8105F54, - sub_8105F9C, - sub_8105EB4, - sub_8105C64, - sub_8105C64, - sub_8105C6C, - sub_8105CF0, - sub_8105D08, - sub_8105D20, - sub_8105D3C, - sub_8105DA4, - sub_8105E08, - sub_8105C64, - sub_8106058, - sub_81060FC, - sub_81060FC, - sub_81060FC, - sub_81060FC, - sub_81060FC, - sub_81060FC, - sub_81060FC, - sub_81060FC, - sub_81061C8, - sub_81061C8, - sub_81061C8, - sub_81061C8, - sub_81061C8, - sub_81061C8, - sub_81061C8, - sub_81061C8, - sub_8106230 +static const SpriteCallback sDigitalDisplay_SpriteCallbacks[] = { + [DIG_DISPINFO_INSERT] = SpriteCB_DigitalDisplay_Static, + [DIG_DISPINFO_STOP_S] = SpriteCB_DigitalDisplay_Stop, + [DIG_DISPINFO_STOP_T] = SpriteCB_DigitalDisplay_Stop, + [DIG_DISPINFO_STOP_O] = SpriteCB_DigitalDisplay_Stop, + [DIG_DISPINFO_STOP_P] = SpriteCB_DigitalDisplay_Stop, + [DIG_DISPINFO_A_BUTTON_STOP] = SpriteCB_DigitalDisplay_AButtonStop, + [DIG_DISPINFO_POKE_BALL_ROCKING] = SpriteCB_DigitalDisplay_PokeballRocking, + [DIG_DISPINFO_WIN] = SpriteCB_DigitalDisplay_Static, + [DIG_DISPINFO_LOSE] = SpriteCB_DigitalDisplay_Static, + [DIG_DISPINFO_SMOKE_NW] = SpriteCB_DigitalDisplay_Smoke, + [DIG_DISPINFO_SMOKE_NE] = SpriteCB_DigitalDisplay_SmokeNE, + [DIG_DISPINFO_SMOKE_SW] = SpriteCB_DigitalDisplay_SmokeSW, + [DIG_DISPINFO_SMOKE_SE] = SpriteCB_DigitalDisplay_SmokeSE, + [DIG_DISPINFO_REEL] = SpriteCB_DigitalDisplay_Reel, + [DIG_DISPINFO_TIME] = SpriteCB_DigitalDisplay_Time, + [DIG_DISPINFO_NUMBER] = SpriteCB_DigitalDisplay_ReelTimeNumber, + [DIG_DISPINFO_DPAD] = SpriteCB_DigitalDisplay_Static, + [DIG_DISPINFO_POKE_BALL_SHINING] = SpriteCB_DigitalDisplay_PokeballShining, + [DIG_DISPINFO_REG_R] = SpriteCB_DigitalDisplay_RegBonus, + [DIG_DISPINFO_REG_E] = SpriteCB_DigitalDisplay_RegBonus, + [DIG_DISPINFO_REG_G] = SpriteCB_DigitalDisplay_RegBonus, + [DIG_DISPINFO_REG_BONUS_B] = SpriteCB_DigitalDisplay_RegBonus, + [DIG_DISPINFO_REG_BONUS_O] = SpriteCB_DigitalDisplay_RegBonus, + [DIG_DISPINFO_REG_BONUS_N] = SpriteCB_DigitalDisplay_RegBonus, + [DIG_DISPINFO_REG_BONUS_U] = SpriteCB_DigitalDisplay_RegBonus, + [DIG_DISPINFO_REG_BONUS_S] = SpriteCB_DigitalDisplay_RegBonus, + [DIG_DISPINFO_BIG_B] = SpriteCB_DigitalDisplay_BigBonus, + [DIG_DISPINFO_BIG_I] = SpriteCB_DigitalDisplay_BigBonus, + [DIG_DISPINFO_BIG_G] = SpriteCB_DigitalDisplay_BigBonus, + [DIG_DISPINFO_BIG_BONUS_B] = SpriteCB_DigitalDisplay_BigBonus, + [DIG_DISPINFO_BIG_BONUS_O] = SpriteCB_DigitalDisplay_BigBonus, + [DIG_DISPINFO_BIG_BONUS_N] = SpriteCB_DigitalDisplay_BigBonus, + [DIG_DISPINFO_BIG_BONUS_U] = SpriteCB_DigitalDisplay_BigBonus, + [DIG_DISPINFO_BIG_BONUS_S] = SpriteCB_DigitalDisplay_BigBonus, + [DIG_DISPINFO_A_BUTTON_START] = SpriteCB_DigitalDisplay_AButtonStart }; static const struct DigitalDisplaySprite sDigitalDisplay_InsertBet[] = { - {DIG_SPRITE_EMPTY, 34, 0}, // Replaced with DIG_SPRITE_A_BUTTON after first bet - {DIG_SPRITE_INSERT, 0, 0}, - {DIG_SPRITE_D_PAD, 16, 0}, + {DIG_SPRITE_EMPTY, DIG_DISPINFO_A_BUTTON_START, 0}, // Sprite replaced with DIG_SPRITE_A_BUTTON after first bet + {DIG_SPRITE_INSERT, DIG_DISPINFO_INSERT, 0}, + {DIG_SPRITE_D_PAD, DIG_DISPINFO_DPAD, 0}, DIG_SPRITE_DUMMY }; static const struct DigitalDisplaySprite sDigitalDisplay_StopReel[] = { - {DIG_SPRITE_STOP_S, 1, 0}, - {DIG_SPRITE_STOP_T, 2, 0}, - {DIG_SPRITE_STOP_O, 3, 0}, - {DIG_SPRITE_STOP_P, 4, 0}, - {DIG_SPRITE_A_BUTTON, 5, 0}, - {DIG_SPRITE_POKE_BALL, 6, 0}, + {DIG_SPRITE_STOP_S, DIG_DISPINFO_STOP_S, 0}, + {DIG_SPRITE_STOP_T, DIG_DISPINFO_STOP_T, 0}, + {DIG_SPRITE_STOP_O, DIG_DISPINFO_STOP_O, 0}, + {DIG_SPRITE_STOP_P, DIG_DISPINFO_STOP_P, 0}, + {DIG_SPRITE_A_BUTTON, DIG_DISPINFO_A_BUTTON_STOP, 0}, + {DIG_SPRITE_POKE_BALL, DIG_DISPINFO_POKE_BALL_ROCKING, 0}, DIG_SPRITE_DUMMY }; static const struct DigitalDisplaySprite sDigitalDisplay_Win[] = { - {DIG_SPRITE_WIN, 7, 0}, - {DIG_SPRITE_POKE_BALL, 17, 0}, + {DIG_SPRITE_WIN, DIG_DISPINFO_WIN, 0}, + {DIG_SPRITE_POKE_BALL, DIG_DISPINFO_POKE_BALL_SHINING, 0}, DIG_SPRITE_DUMMY }; static const struct DigitalDisplaySprite sDigitalDisplay_Lose[] = { - {DIG_SPRITE_LOSE, 8, 0}, - {DIG_SPRITE_SMOKE, 9, 0}, - {DIG_SPRITE_SMOKE, 10, 1}, - {DIG_SPRITE_SMOKE, 11, 2}, - {DIG_SPRITE_SMOKE, 12, 3}, + {DIG_SPRITE_LOSE, DIG_DISPINFO_LOSE, 0}, + {DIG_SPRITE_SMOKE, DIG_DISPINFO_SMOKE_NW, 0}, + {DIG_SPRITE_SMOKE, DIG_DISPINFO_SMOKE_NE, 1}, + {DIG_SPRITE_SMOKE, DIG_DISPINFO_SMOKE_SW, 2}, + {DIG_SPRITE_SMOKE, DIG_DISPINFO_SMOKE_SE, 3}, DIG_SPRITE_DUMMY }; static const struct DigitalDisplaySprite sDigitalDisplay_ReelTime[] = { - {DIG_SPRITE_REEL, 13, 0}, - {DIG_SPRITE_TIME, 14, 0}, - {DIG_SPRITE_NUMBER, 15, 0}, // Number of reel time spins left + {DIG_SPRITE_REEL, DIG_DISPINFO_REEL, 0}, + {DIG_SPRITE_TIME, DIG_DISPINFO_TIME, 0}, + {DIG_SPRITE_NUMBER, DIG_DISPINFO_NUMBER, 0}, // Number of reel time spins left DIG_SPRITE_DUMMY }; static const struct DigitalDisplaySprite sDigitalDisplay_BonusBig[] = { - {DIG_SPRITE_BIG_B, 26, 0}, - {DIG_SPRITE_BIG_I, 27, 1}, - {DIG_SPRITE_BIG_G, 28, 2}, - {DIG_SPRITE_BONUS_B, 29, 3}, - {DIG_SPRITE_BONUS_O, 30, 4}, - {DIG_SPRITE_BONUS_N, 31, 5}, - {DIG_SPRITE_BONUS_U, 32, 6}, - {DIG_SPRITE_BONUS_S, 33, 7}, - {DIG_SPRITE_POKE_BALL, 17, 0}, + {DIG_SPRITE_BIG_B, DIG_DISPINFO_BIG_B, 0}, + {DIG_SPRITE_BIG_I, DIG_DISPINFO_BIG_I, 1}, + {DIG_SPRITE_BIG_G, DIG_DISPINFO_BIG_G, 2}, + {DIG_SPRITE_BONUS_B, DIG_DISPINFO_BIG_BONUS_B, 3}, + {DIG_SPRITE_BONUS_O, DIG_DISPINFO_BIG_BONUS_O, 4}, + {DIG_SPRITE_BONUS_N, DIG_DISPINFO_BIG_BONUS_N, 5}, + {DIG_SPRITE_BONUS_U, DIG_DISPINFO_BIG_BONUS_U, 6}, + {DIG_SPRITE_BONUS_S, DIG_DISPINFO_BIG_BONUS_S, 7}, + {DIG_SPRITE_POKE_BALL, DIG_DISPINFO_POKE_BALL_SHINING, 0}, DIG_SPRITE_DUMMY }; static const struct DigitalDisplaySprite sDigitalDisplay_BonusRegular[] = { - {DIG_SPRITE_REG_R, 18, 0}, - {DIG_SPRITE_REG_E, 19, 1}, - {DIG_SPRITE_REG_G, 20, 2}, - {DIG_SPRITE_BONUS_B, 21, 3}, - {DIG_SPRITE_BONUS_O, 22, 4}, - {DIG_SPRITE_BONUS_N, 23, 5}, - {DIG_SPRITE_BONUS_U, 24, 6}, - {DIG_SPRITE_BONUS_S, 25, 7}, - {DIG_SPRITE_POKE_BALL, 17, 0}, + {DIG_SPRITE_REG_R, DIG_DISPINFO_REG_R, 0}, + {DIG_SPRITE_REG_E, DIG_DISPINFO_REG_E, 1}, + {DIG_SPRITE_REG_G, DIG_DISPINFO_REG_G, 2}, + {DIG_SPRITE_BONUS_B, DIG_DISPINFO_REG_BONUS_B, 3}, + {DIG_SPRITE_BONUS_O, DIG_DISPINFO_REG_BONUS_O, 4}, + {DIG_SPRITE_BONUS_N, DIG_DISPINFO_REG_BONUS_N, 5}, + {DIG_SPRITE_BONUS_U, DIG_DISPINFO_REG_BONUS_U, 6}, + {DIG_SPRITE_BONUS_S, DIG_DISPINFO_REG_BONUS_S, 7}, + {DIG_SPRITE_POKE_BALL, DIG_DISPINFO_POKE_BALL_SHINING, 0}, DIG_SPRITE_DUMMY }; @@ -4831,14 +4991,14 @@ static const struct DigitalDisplaySprite *const sDigitalDisplayScenes[] = { [DIG_DISPLAY_BONUS_BIG] = sDigitalDisplay_BonusBig }; -static void (*const gUnknown_083ED064[])(void) = { - sub_810639C, - sub_8106364, - sub_8106370, - nullsub_70, - nullsub_70, - sub_8106370, - sub_8106370 +static void (*const sDigitalDisplaySceneExitCallbacks[])(void) = { + [DIG_DISPLAY_INSERT_BET] = EndDigitalDisplayScene_InsertBet, + [DIG_DISPLAY_STOP_REEL] = EndDigitalDisplayScene_StopReel, + [DIG_DISPLAY_WIN] = EndDigitalDisplayScene_Win, + [DIG_DISPLAY_LOSE] = EndDigitalDisplayScene_Dummy, + [DIG_DISPLAY_REEL_TIME] = EndDigitalDisplayScene_Dummy, + [DIG_DISPLAY_BONUS_REG] = EndDigitalDisplayScene_Win, + [DIG_DISPLAY_BONUS_BIG] = EndDigitalDisplayScene_Win }; static const struct OamData sOam_8x8 = @@ -4988,7 +5148,7 @@ static const struct SpriteFrameImage sImageTable_ReelTimeNumbers[] = }; static const struct SpriteFrameImage sImageTable_ReelTimeShadow[] = { gSlotMachineReelTimeShadow, 0x200 }; -static const struct SpriteFrameImage gUnknown_085A7AB4[] = { gUnknown_08DD1A18, 0x40 }; +static const struct SpriteFrameImage sImageTable_ReelTimeNumberGap[] = { gSlotMachineReelTimeNumberGap_Gfx, 0x40 }; static const struct SpriteFrameImage sImageTable_ReelTimeBolt[] = { @@ -5008,13 +5168,13 @@ static const struct SpriteFrameImage sImageTable_ReelTimeDuck[] = { gSlotMachine static const struct SpriteFrameImage sImageTable_ReelTimeSmoke[] = { gSlotMachineReelTimeSmoke, 0x80}; static const struct SpriteFrameImage sImageTable_PikaPowerBolt[] = { gSlotMachinePikaPowerBolt, 0x20}; -static const union AnimCmd gUnknown_085A7AFC[] = +static const union AnimCmd sAnim_SingleFrame[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END }; -static const union AnimCmd gUnknown_085A7B04[] = +static const union AnimCmd sAnim_ReelTimeDuck[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_JUMP(0) @@ -5176,14 +5336,14 @@ static const union AnimCmd sAnim_DigitalDisplay_Number_5[] = ANIMCMD_END }; -static const union AnimCmd *const gUnknown_085A7BF8[] = +static const union AnimCmd *const sAnims_SingleFrame[] = { - gUnknown_085A7AFC + sAnim_SingleFrame }; -static const union AnimCmd *const gUnknown_085A7BFC[] = +static const union AnimCmd *const sAnims_ReelTimeDuck[] = { - gUnknown_085A7B04 + sAnim_ReelTimeDuck }; static const union AnimCmd *const sAnims_ReelTimePikachu[] = @@ -5279,10 +5439,10 @@ static const union AffineAnimCmd *const sAffineAnims_PikaPowerBolt[] = static const struct SpriteTemplate sSpriteTemplate_ReelSymbol = { - .tileTag = 0, - .paletteTag = 0, + .tileTag = GFXTAG_SYMBOLS_START, + .paletteTag = PALTAG_REEL, .oam = &sOam_32x32, - .anims = gUnknown_085A7BF8, + .anims = sAnims_SingleFrame, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCB_ReelSymbol @@ -5290,10 +5450,10 @@ static const struct SpriteTemplate sSpriteTemplate_ReelSymbol = static const struct SpriteTemplate sSpriteTemplate_CoinNumber = { - .tileTag = 7, - .paletteTag = 4, + .tileTag = GFXTAG_NUMBERS_START, + .paletteTag = PALTAG_MISC, .oam = &sOam_8x16, - .anims = gUnknown_085A7BF8, + .anims = sAnims_SingleFrame, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCB_CoinNumber @@ -5301,10 +5461,10 @@ static const struct SpriteTemplate sSpriteTemplate_CoinNumber = static const struct SpriteTemplate sSpriteTemplate_ReelBackground = { - .tileTag = 17, - .paletteTag = 0, + .tileTag = GFXTAG_REEL_BG, + .paletteTag = PALTAG_REEL, .oam = &sOam_64x64, - .anims = gUnknown_085A7BF8, + .anims = sAnims_SingleFrame, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy @@ -5313,7 +5473,7 @@ static const struct SpriteTemplate sSpriteTemplate_ReelBackground = static const struct SpriteTemplate sSpriteTemplate_ReelTimePikachu = { .tileTag = 0xFFFF, - .paletteTag = 1, + .paletteTag = PALTAG_REEL_TIME_PIKACHU, .oam = &sOam_64x64, .anims = sAnims_ReelTimePikachu, .images = NULL, @@ -5324,9 +5484,9 @@ static const struct SpriteTemplate sSpriteTemplate_ReelTimePikachu = static const struct SpriteTemplate sSpriteTemplate_ReelTimeMachineAntennae = { .tileTag = 0xFFFF, - .paletteTag = 2, + .paletteTag = PALTAG_REEL_TIME_MISC, .oam = &sOam_8x16, - .anims = gUnknown_085A7BF8, + .anims = sAnims_SingleFrame, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy @@ -5335,9 +5495,9 @@ static const struct SpriteTemplate sSpriteTemplate_ReelTimeMachineAntennae = static const struct SpriteTemplate sSpriteTemplate_ReelTimeMachine = { .tileTag = 0xFFFF, - .paletteTag = 3, + .paletteTag = PALTAG_REEL_TIME_MACHINE, .oam = &sOam_8x16, - .anims = gUnknown_085A7BF8, + .anims = sAnims_SingleFrame, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy @@ -5346,9 +5506,9 @@ static const struct SpriteTemplate sSpriteTemplate_ReelTimeMachine = static const struct SpriteTemplate sSpriteTemplate_BrokenReelTimeMachine = { .tileTag = 0xFFFF, - .paletteTag = 3, + .paletteTag = PALTAG_REEL_TIME_MACHINE, .oam = &sOam_8x16, - .anims = gUnknown_085A7BF8, + .anims = sAnims_SingleFrame, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy @@ -5357,7 +5517,7 @@ static const struct SpriteTemplate sSpriteTemplate_BrokenReelTimeMachine = static const struct SpriteTemplate sSpriteTemplate_ReelTimeNumbers = { .tileTag = 0xFFFF, - .paletteTag = 4, + .paletteTag = PALTAG_MISC, .oam = &sOam_16x16, .anims = sAnims_ReelTimeNumbers, .images = sImageTable_ReelTimeNumbers, @@ -5368,21 +5528,21 @@ static const struct SpriteTemplate sSpriteTemplate_ReelTimeNumbers = static const struct SpriteTemplate sSpriteTemplate_ReelTimeShadow = { .tileTag = 0xFFFF, - .paletteTag = 4, + .paletteTag = PALTAG_MISC, .oam = &sOam_16x16, - .anims = gUnknown_085A7BF8, + .anims = sAnims_SingleFrame, .images = sImageTable_ReelTimeShadow, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct SpriteTemplate gSpriteTemplate_83ED4EC = +static const struct SpriteTemplate sSpriteTemplate_ReelTimeNumberGap = { .tileTag = 0xFFFF, - .paletteTag = 4, + .paletteTag = PALTAG_MISC, .oam = &sOam_16x16, - .anims = gUnknown_085A7BF8, - .images = gUnknown_085A7AB4, + .anims = sAnims_SingleFrame, + .images = sImageTable_ReelTimeNumberGap, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; @@ -5390,7 +5550,7 @@ static const struct SpriteTemplate gSpriteTemplate_83ED4EC = static const struct SpriteTemplate sSpriteTemplate_ReelTimeBolt = { .tileTag = 0xFFFF, - .paletteTag = 4, + .paletteTag = PALTAG_MISC, .oam = &sOam_16x32, .anims = sAnims_ReelTimeBolt, .images = sImageTable_ReelTimeBolt, @@ -5401,9 +5561,9 @@ static const struct SpriteTemplate sSpriteTemplate_ReelTimeBolt = static const struct SpriteTemplate sSpriteTemplate_ReelTimePikachuAura = { .tileTag = 0xFFFF, - .paletteTag = 7, + .paletteTag = PALTAG_PIKA_AURA, .oam = &sOam_32x64, - .anims = gUnknown_085A7BF8, + .anims = sAnims_SingleFrame, .images = sImageTable_ReelTimePikachuAura, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCB_ReelTimePikachuAura @@ -5412,7 +5572,7 @@ static const struct SpriteTemplate sSpriteTemplate_ReelTimePikachuAura = static const struct SpriteTemplate sSpriteTemplate_ReelTimeExplosion = { .tileTag = 0xFFFF, - .paletteTag = 5, + .paletteTag = PALTAG_EXPLOSION, .oam = &sOam_32x32, .anims = sAnims_ReelTimeExplosion, .images = sImageTable_ReelTimeExplosion, @@ -5423,9 +5583,9 @@ static const struct SpriteTemplate sSpriteTemplate_ReelTimeExplosion = static const struct SpriteTemplate sSpriteTemplate_ReelTimeDuck = { .tileTag = 0xFFFF, - .paletteTag = 4, + .paletteTag = PALTAG_MISC, .oam = &sOam_8x8, - .anims = gUnknown_085A7BFC, + .anims = sAnims_ReelTimeDuck, .images = sImageTable_ReelTimeDuck, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCB_ReelTimeDuck @@ -5434,9 +5594,9 @@ static const struct SpriteTemplate sSpriteTemplate_ReelTimeDuck = static const struct SpriteTemplate sSpriteTemplate_ReelTimeSmoke = { .tileTag = 0xFFFF, - .paletteTag = 4, + .paletteTag = PALTAG_MISC, .oam = &sOam_16x16, - .anims = gUnknown_085A7BF8, + .anims = sAnims_SingleFrame, .images = sImageTable_ReelTimeSmoke, .affineAnims = sAffineAnims_ReelTimeSmoke, .callback = SpriteCB_ReelTimeSmoke @@ -5445,9 +5605,9 @@ static const struct SpriteTemplate sSpriteTemplate_ReelTimeSmoke = static const struct SpriteTemplate sSpriteTemplate_DigitalDisplay_Reel = { .tileTag = 0xFFFF, - .paletteTag = 6, + .paletteTag = PALTAG_DIG_DISPLAY, .oam = &sOam_8x8, - .anims = gUnknown_085A7BF8, + .anims = sAnims_SingleFrame, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy @@ -5456,9 +5616,9 @@ static const struct SpriteTemplate sSpriteTemplate_DigitalDisplay_Reel = static const struct SpriteTemplate sSpriteTemplate_DigitalDisplay_Time = { .tileTag = 0xFFFF, - .paletteTag = 6, + .paletteTag = PALTAG_DIG_DISPLAY, .oam = &sOam_8x8, - .anims = gUnknown_085A7BF8, + .anims = sAnims_SingleFrame, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy @@ -5467,9 +5627,9 @@ static const struct SpriteTemplate sSpriteTemplate_DigitalDisplay_Time = static const struct SpriteTemplate sSpriteTemplate_DigitalDisplay_Insert = { .tileTag = 0xFFFF, - .paletteTag = 6, + .paletteTag = PALTAG_DIG_DISPLAY, .oam = &sOam_8x8, - .anims = gUnknown_085A7BF8, + .anims = sAnims_SingleFrame, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy @@ -5478,9 +5638,9 @@ static const struct SpriteTemplate sSpriteTemplate_DigitalDisplay_Insert = static const struct SpriteTemplate sSpriteTemplate_DigitalDisplay_Stop = { .tileTag = 18, - .paletteTag = 6, + .paletteTag = PALTAG_DIG_DISPLAY, .oam = &sOam_8x8, - .anims = gUnknown_085A7BF8, + .anims = sAnims_SingleFrame, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy @@ -5489,9 +5649,9 @@ static const struct SpriteTemplate sSpriteTemplate_DigitalDisplay_Stop = static const struct SpriteTemplate sSpriteTemplate_DigitalDisplay_Win = { .tileTag = 0xFFFF, - .paletteTag = 6, + .paletteTag = PALTAG_DIG_DISPLAY, .oam = &sOam_64x32, - .anims = gUnknown_085A7BF8, + .anims = sAnims_SingleFrame, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy @@ -5500,9 +5660,9 @@ static const struct SpriteTemplate sSpriteTemplate_DigitalDisplay_Win = static const struct SpriteTemplate sSpriteTemplate_DigitalDisplay_Lose = { .tileTag = 0xFFFF, - .paletteTag = 6, + .paletteTag = PALTAG_DIG_DISPLAY, .oam = &sOam_64x32, - .anims = gUnknown_085A7BF8, + .anims = sAnims_SingleFrame, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy @@ -5511,9 +5671,9 @@ static const struct SpriteTemplate sSpriteTemplate_DigitalDisplay_Lose = static const struct SpriteTemplate sSpriteTemplate_DigitalDisplay_Bonus = { .tileTag = 19, - .paletteTag = 6, + .paletteTag = PALTAG_DIG_DISPLAY, .oam = &sOam_8x8, - .anims = gUnknown_085A7BF8, + .anims = sAnims_SingleFrame, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy @@ -5522,9 +5682,9 @@ static const struct SpriteTemplate sSpriteTemplate_DigitalDisplay_Bonus = static const struct SpriteTemplate sSpriteTemplate_DigitalDisplay_Big = { .tileTag = 20, - .paletteTag = 6, + .paletteTag = PALTAG_DIG_DISPLAY, .oam = &sOam_8x8, - .anims = gUnknown_085A7BF8, + .anims = sAnims_SingleFrame, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy @@ -5533,9 +5693,9 @@ static const struct SpriteTemplate sSpriteTemplate_DigitalDisplay_Big = static const struct SpriteTemplate sSpriteTemplate_DigitalDisplay_Reg = { .tileTag = 21, - .paletteTag = 6, + .paletteTag = PALTAG_DIG_DISPLAY, .oam = &sOam_8x8, - .anims = gUnknown_085A7BF8, + .anims = sAnims_SingleFrame, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy @@ -5544,7 +5704,7 @@ static const struct SpriteTemplate sSpriteTemplate_DigitalDisplay_Reg = static const struct SpriteTemplate sSpriteTemplate_DigitalDisplay_AButton = { .tileTag = 0xFFFF, - .paletteTag = 6, + .paletteTag = PALTAG_DIG_DISPLAY, .oam = &sOam_32x32, .anims = sAnims_DigitalDisplay_AButton, .images = NULL, @@ -5555,9 +5715,9 @@ static const struct SpriteTemplate sSpriteTemplate_DigitalDisplay_AButton = static const struct SpriteTemplate sSpriteTemplate_DigitalDisplay_Smoke = { .tileTag = 0xFFFF, - .paletteTag = 6, + .paletteTag = PALTAG_DIG_DISPLAY, .oam = &sOam_8x8, - .anims = gUnknown_085A7BF8, + .anims = sAnims_SingleFrame, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy @@ -5566,7 +5726,7 @@ static const struct SpriteTemplate sSpriteTemplate_DigitalDisplay_Smoke = static const struct SpriteTemplate sSpriteTemplate_DigitalDisplay_Number = { .tileTag = 0xFFFF, - .paletteTag = 6, + .paletteTag = PALTAG_DIG_DISPLAY, .oam = &sOam_16x16, .anims = sAnims_DigitalDisplay_Number, .images = NULL, @@ -5577,7 +5737,7 @@ static const struct SpriteTemplate sSpriteTemplate_DigitalDisplay_Number = static const struct SpriteTemplate sSpriteTemplate_DigitalDisplay_Pokeball = { .tileTag = 0xFFFF, - .paletteTag = 6, + .paletteTag = PALTAG_DIG_DISPLAY, .oam = &sOam_8x8, .anims = sAnims_DigitalDisplay_Pokeball, .images = NULL, @@ -5588,7 +5748,7 @@ static const struct SpriteTemplate sSpriteTemplate_DigitalDisplay_Pokeball = static const struct SpriteTemplate sSpriteTemplate_DigitalDisplay_DPad = { .tileTag = 0xFFFF, - .paletteTag = 6, + .paletteTag = PALTAG_DIG_DISPLAY, .oam = &sOam_8x8, .anims = sAnims_DigitalDisplay_DPad, .images = NULL, @@ -5599,9 +5759,9 @@ static const struct SpriteTemplate sSpriteTemplate_DigitalDisplay_DPad = static const struct SpriteTemplate sSpriteTemplate_PikaPowerBolt = { .tileTag = 0xFFFF, - .paletteTag = 4, + .paletteTag = PALTAG_MISC, .oam = &sOam_8x8, - .anims = gUnknown_085A7BF8, + .anims = sAnims_SingleFrame, .images = sImageTable_PikaPowerBolt, .affineAnims = sAffineAnims_PikaPowerBolt, .callback = SpriteCB_PikaPowerBolt @@ -5828,7 +5988,7 @@ static const struct SubspriteTable sSubspriteTable_ReelTimeShadow[] = ARRAY_COUNT(sSubsprites_ReelTimeShadow), sSubsprites_ReelTimeShadow }; -static const struct Subsprite gUnknown_085A8030[] = +static const struct Subsprite sSubsprites_ReelTimeNumberGap[] = { { .x = -8, @@ -5856,9 +6016,9 @@ static const struct Subsprite gUnknown_085A8030[] = } }; -static const struct SubspriteTable gSubspriteTables_83ED7D4[] = +static const struct SubspriteTable sSubspriteTable_ReelTimeNumberGap[] = { - ARRAY_COUNT(gUnknown_085A8030), gUnknown_085A8030 + ARRAY_COUNT(sSubsprites_ReelTimeNumberGap), sSubsprites_ReelTimeNumberGap }; static const struct Subsprite sSubsprites_DigitalDisplay_Reel[] = @@ -6841,34 +7001,35 @@ static const struct SubspriteTable *const sSubspriteTables_DigitalDisplay[NUM_DI [DIG_SPRITE_EMPTY] = NULL }; -static const struct SpriteSheet gSlotMachineSpriteSheets[22] = +static const struct SpriteSheet sSlotMachineSpriteSheets[22] = { - { .data = gSlotMachineReelSymbol1Tiles, .size = 0x200, .tag = 0 }, - { .data = gSlotMachineReelSymbol2Tiles, .size = 0x200, .tag = 1 }, - { .data = gSlotMachineReelSymbol3Tiles, .size = 0x200, .tag = 2 }, - { .data = gSlotMachineReelSymbol4Tiles, .size = 0x200, .tag = 3 }, - { .data = gSlotMachineReelSymbol5Tiles, .size = 0x200, .tag = 4 }, - { .data = gSlotMachineReelSymbol6Tiles, .size = 0x200, .tag = 5 }, - { .data = gSlotMachineReelSymbol7Tiles, .size = 0x200, .tag = 6 }, - { .data = gSlotMachineNumber0Tiles, .size = 0x40, .tag = 7 }, - { .data = gSlotMachineNumber1Tiles, .size = 0x40, .tag = 8 }, - { .data = gSlotMachineNumber2Tiles, .size = 0x40, .tag = 9 }, - { .data = gSlotMachineNumber3Tiles, .size = 0x40, .tag = 10 }, - { .data = gSlotMachineNumber4Tiles, .size = 0x40, .tag = 11 }, - { .data = gSlotMachineNumber5Tiles, .size = 0x40, .tag = 12 }, - { .data = gSlotMachineNumber6Tiles, .size = 0x40, .tag = 13 }, - { .data = gSlotMachineNumber7Tiles, .size = 0x40, .tag = 14 }, - { .data = gSlotMachineNumber8Tiles, .size = 0x40, .tag = 15 }, - { .data = gSlotMachineNumber9Tiles, .size = 0x40, .tag = 16 }, + { .data = gSlotMachineReelSymbol1Tiles, .size = 0x200, .tag = GFXTAG_7_RED }, + { .data = gSlotMachineReelSymbol2Tiles, .size = 0x200, .tag = GFXTAG_7_BLUE }, + { .data = gSlotMachineReelSymbol3Tiles, .size = 0x200, .tag = GFXTAG_AZURILL }, + { .data = gSlotMachineReelSymbol4Tiles, .size = 0x200, .tag = GFXTAG_LOTAD }, + { .data = gSlotMachineReelSymbol5Tiles, .size = 0x200, .tag = GFXTAG_CHERRY }, + { .data = gSlotMachineReelSymbol6Tiles, .size = 0x200, .tag = GFXTAG_POWER }, + { .data = gSlotMachineReelSymbol7Tiles, .size = 0x200, .tag = GFXTAG_REPLAY }, + { .data = gSlotMachineNumber0Tiles, .size = 0x40, .tag = GFXTAG_NUM_0 }, + { .data = gSlotMachineNumber1Tiles, .size = 0x40, .tag = GFXTAG_NUM_1 }, + { .data = gSlotMachineNumber2Tiles, .size = 0x40, .tag = GFXTAG_NUM_2 }, + { .data = gSlotMachineNumber3Tiles, .size = 0x40, .tag = GFXTAG_NUM_3 }, + { .data = gSlotMachineNumber4Tiles, .size = 0x40, .tag = GFXTAG_NUM_4 }, + { .data = gSlotMachineNumber5Tiles, .size = 0x40, .tag = GFXTAG_NUM_5 }, + { .data = gSlotMachineNumber6Tiles, .size = 0x40, .tag = GFXTAG_NUM_6 }, + { .data = gSlotMachineNumber7Tiles, .size = 0x40, .tag = GFXTAG_NUM_7 }, + { .data = gSlotMachineNumber8Tiles, .size = 0x40, .tag = GFXTAG_NUM_8 }, + { .data = gSlotMachineNumber9Tiles, .size = 0x40, .tag = GFXTAG_NUM_9 }, + // skips GFXTAG_REEL_BG, which has its own spritesheet // the data for these sheets is determined at runtime - { .data = NULL, .size = 0x200, .tag = 18 }, - { .data = NULL, .size = 0x200, .tag = 19 }, - { .data = NULL, .size = 0x300, .tag = 20 }, - { .data = NULL, .size = 0x300, .tag = 21 }, + { .data = NULL, .size = 0x200, .tag = GFXTAG_STOP }, + { .data = NULL, .size = 0x200, .tag = GFXTAG_BONUS }, + { .data = NULL, .size = 0x300, .tag = GFXTAG_BIG }, + { .data = NULL, .size = 0x300, .tag = GFXTAG_REG }, {}, }; -static const u8 *const gUnknown_083EDCDC = gUnknown_08DD19F8; +static const u8 *const sReelBackground_Tilemap = gSlotMachineReelBackground_Tilemap; static const u8 sUnused2[][2] = { @@ -6884,82 +7045,87 @@ static const u8 sUnused2[][2] = {0xFD, 1} }; -static const u8 gUnknown_085A83FC[] = {0x91, 0x7F}; -static const u8 gUnknown_085A83FE[] = {0xBF, 0x43}; -static const u8 gUnknown_085A8400[] = {0xBF, 0x43}; -static const u8 gUnknown_085A8402[] = {0xBF, 0x4A}; -static const u8 gUnknown_085A8404[] = {0xBF, 0x4A}; - -static const u8 *const gUnknown_083EDD08[] = +// The Bet 2 and 3 match line palettes are duplicated unnecessarily +static const u16 sMiddleRowLit_Pal[] = {RGB(17, 28, 31)}; +static const u16 sTopRowLit_Pal[] = {RGB(31, 29, 16)}; +static const u16 sBottomRowt_Pal[] = {RGB(31, 29, 16)}; +static const u16 sNWSEDiagLit_Pal[] = {RGB(31, 21, 18)}; +static const u16 sNESWDiagLit_Pal[] = {RGB(31, 21, 18)}; +static const u16 *const sLitMatchLinePalTable[NUM_MATCH_LINES] = { - gUnknown_085A83FC, - gUnknown_085A83FE, - gUnknown_085A8400, - gUnknown_085A8402, - gUnknown_085A8404, + [MATCH_MIDDLE_ROW] = sMiddleRowLit_Pal, + [MATCH_TOP_ROW] = sTopRowLit_Pal, + [MATCH_BOTTOM_ROW] = sBottomRowt_Pal, + [MATCH_NWSE_DIAG] = sNWSEDiagLit_Pal, + [MATCH_NESW_DIAG] = sNESWDiagLit_Pal, }; -static const u16 *const gUnknown_083EDD1C[] = +static const u16 *const sDarkMatchLinePalTable[NUM_MATCH_LINES] = { - gSlotMachineMenu_Pal + 0x4A, - gSlotMachineMenu_Pal + 0x4B, - gSlotMachineMenu_Pal + 0x4C, - gSlotMachineMenu_Pal + 0x4D, - gSlotMachineMenu_Pal + 0x4E, + [MATCH_MIDDLE_ROW] = &gSlotMachineMenu_Pal[74], + [MATCH_TOP_ROW] = &gSlotMachineMenu_Pal[75], + [MATCH_BOTTOM_ROW] = &gSlotMachineMenu_Pal[76], + [MATCH_NWSE_DIAG] = &gSlotMachineMenu_Pal[77], + [MATCH_NESW_DIAG] = &gSlotMachineMenu_Pal[78], }; -static const u8 gUnknown_083EDD30[] = {0x4A, 0x4B, 0x4C, 0x4E, 0x4D}; - -static const u8 gBettingTilesId[][2] = -{ - {0, 0}, - {1, 2}, - {3, 4}, +static const u8 sMatchLinePalOffsets[NUM_MATCH_LINES] = { + [MATCH_MIDDLE_ROW] = 74, + [MATCH_TOP_ROW] = 75, + [MATCH_BOTTOM_ROW] = 76, + [MATCH_NWSE_DIAG] = 78, // Diag colors flipped for some reason + [MATCH_NESW_DIAG] = 77 // Doesn't matter as both are identical }; -static const u8 gNumberBettingTiles[] = { 1, 2, 2 }; - -static const u16 gUnknown_085A843E[] = INCBIN_U16("graphics/slot_machine/85A843E.gbapal"); -static const u16 gUnknown_085A845E[] = INCBIN_U16("graphics/slot_machine/85A845E.gbapal"); -static const u16 gUnknown_085A847E[] = INCBIN_U16("graphics/slot_machine/85A847E.gbapal"); - -static const u16 *const gUnknown_083EDDA0[] = +static const u8 sBetToMatchLineIds[][2] = { - gUnknown_085A843E, - gUnknown_085A845E, - gUnknown_085A847E, + {MATCH_MIDDLE_ROW, MATCH_MIDDLE_ROW}, // Bet 1 + {MATCH_TOP_ROW, MATCH_BOTTOM_ROW}, // Bet 2 + {MATCH_NWSE_DIAG, MATCH_NESW_DIAG}, // Bet 3 }; -static const u16 *const gUnknown_083EDDAC = {gSlotMachineMenu_Pal + 0x10}; +static const u8 sMatchLinesPerBet[] = { 1, 2, 2 }; -static const u16 gUnknown_085A84B0[] = INCBIN_U16("graphics/slot_machine/85A84B0.gbapal"); -static const u16 gUnknown_085A84D0[] = INCBIN_U16("graphics/slot_machine/85A84D0.gbapal"); -static const u16 gUnknown_085A84F0[] = INCBIN_U16("graphics/slot_machine/85A84F0.gbapal"); - -static const u16 *const gUnknown_083EDE10[] = +// Flashing lights at top of slot machine, brightest point inside light goes from toward center of machine, to middle, to toward edges +static const u16 sFlashingLightsInside_Pal[] = INCBIN_U16("graphics/slot_machine/flashing_lights_inside.gbapal"); +static const u16 sFlashingLightsMiddle_Pal[] = INCBIN_U16("graphics/slot_machine/flashing_lights_middle.gbapal"); +static const u16 sFlashingLightsOutside_Pal[] = INCBIN_U16("graphics/slot_machine/flashing_lights_outside.gbapal"); +static const u16 *const sFlashingLightsPalTable[] = { - gUnknown_085A84B0, - gUnknown_085A84D0, - gUnknown_085A84F0, - gUnknown_08DCF230, + sFlashingLightsInside_Pal, + sFlashingLightsMiddle_Pal, + sFlashingLightsOutside_Pal, }; -static const u16 *const gUnknown_083EDE20 = gUnknown_08DCF230; +static const u16 *const gUnknown_083EDDAC = {gSlotMachineMenu_Pal + 16}; + +static const u16 sPokeballShining0_Pal[] = INCBIN_U16("graphics/slot_machine/pokeball_shining_0.gbapal"); +static const u16 sPokeballShining1_Pal[] = INCBIN_U16("graphics/slot_machine/pokeball_shining_1.gbapal"); +static const u16 sPokeballShining2_Pal[] = INCBIN_U16("graphics/slot_machine/pokeball_shining_2.gbapal"); +static const u16 *const sPokeballShiningPalTable[] = +{ + sPokeballShining0_Pal, // Streak on left side of ball + sPokeballShining1_Pal, // Streak in middle of ball + sPokeballShining2_Pal, // Streak on right side of ball + gSlotMachineDigitalDisplay_Pal, // Back to normal +}; + +static const u16 *const sDigitalDisplay_Pal = gSlotMachineDigitalDisplay_Pal; static const u16 gPalette_83EDE24[] = INCBIN_U16("graphics/slot_machine/85A8524.bin"); -static const struct SpritePalette gSlotMachineSpritePalettes[] = +static const struct SpritePalette sSlotMachineSpritePalettes[] = { - { .data = gUnknown_08DCF170, .tag = 0}, - { .data = gUnknown_08DCF190, .tag = 1}, - { .data = gUnknown_08DCF1B0, .tag = 2}, - { .data = gSlotMachineDigitalDisplay_Pal, .tag = 3}, - { .data = gUnknown_08DCF1F0, .tag = 4}, - { .data = gUnknown_08DCF210, .tag = 5}, - { .data = gUnknown_08DCF230, .tag = 6}, - { .data = gUnknown_08DCF1F0, .tag = 7}, + { .data = gSlotMachineReelSymbols_Pal, .tag = PALTAG_REEL}, + { .data = gSlotMachineReelTimePikachu_Pal, .tag = PALTAG_REEL_TIME_PIKACHU}, + { .data = gSlotMachineReelTimeMisc_Pal, .tag = PALTAG_REEL_TIME_MISC}, + { .data = gSlotMachineReelTimeMachine_Pal, .tag = PALTAG_REEL_TIME_MACHINE}, + { .data = gSlotMachineMisc_Pal, .tag = PALTAG_MISC}, + { .data = gSlotMachineReelTimeExplosion_Pal, .tag = PALTAG_EXPLOSION}, + { .data = gSlotMachineDigitalDisplay_Pal, .tag = PALTAG_DIG_DISPLAY}, + { .data = gSlotMachineMisc_Pal, .tag = PALTAG_PIKA_AURA}, {} }; static const u32 sReelTimeGfx[] = INCBIN_U32("graphics/slot_machine/reel_time_gfx.4bpp.lz"); // reel_time_machine and reel_time_pikachu -static const u16 gReelTimeWindowTilemap[] = INCBIN_U16("graphics/slot_machine/85A96E0.bin"); -static const u16 gUnknown_085A9898[] = {0}; +static const u16 sReelTimeWindow_Tilemap[] = INCBIN_U16("graphics/slot_machine/reel_time_window.bin"); +static const u16 sEmptyTilemap[] = {0}; From ebcb982e16a0fd6b22185d159234495c44a15874 Mon Sep 17 00:00:00 2001 From: PokeCodec Date: Sun, 19 Jul 2020 15:57:20 -0400 Subject: [PATCH 026/101] Change signedness and add casts to avoid implicit conversion warnings --- src/agb_flash.c | 28 +++++++++++++-------------- src/battle_anim_bug.c | 38 +++++++++++++------------------------ src/battle_anim_effects_1.c | 2 +- src/berry.c | 2 +- src/berry_blender.c | 10 +++++----- src/easy_chat.c | 18 +++++++++--------- src/event_object_movement.c | 6 +++--- src/field_effect.c | 2 +- src/hall_of_fame.c | 4 ++-- src/item_use.c | 2 +- src/list_menu.c | 10 +++++----- src/mirage_tower.c | 7 +++---- src/overworld.c | 2 +- src/party_menu.c | 8 ++++---- src/player_pc.c | 14 +++++++------- src/pokedex.c | 6 +++--- src/roulette.c | 32 +++++++++++++++---------------- src/scrcmd.c | 4 ++-- src/secret_base.c | 8 ++++---- src/slot_machine.c | 2 +- src/start_menu.c | 2 +- src/trainer_see.c | 4 ++-- 22 files changed, 99 insertions(+), 112 deletions(-) diff --git a/src/agb_flash.c b/src/agb_flash.c index 1ad9e47ecb..0045219c41 100644 --- a/src/agb_flash.c +++ b/src/agb_flash.c @@ -41,7 +41,7 @@ u16 ReadFlashId(void) u8 (*readFlash1)(u8 *); SetReadFlash1(readFlash1Buffer); - readFlash1 = (u8 (*)(u8 *))((s32)readFlash1Buffer + 1); + readFlash1 = (u8 (*)(u8 *))((uintptr_t)readFlash1Buffer + 1); // Enter ID mode. FLASH_WRITE(0x5555, 0xAA); @@ -113,12 +113,12 @@ void SetReadFlash1(u16 *dest) u16 *src; u16 i; - PollFlashStatus = (u8 (*)(u8 *))((s32)dest + 1); + PollFlashStatus = (u8 (*)(u8 *))((uintptr_t)dest + 1); src = (u16 *)ReadFlash1; - src = (u16 *)((s32)src ^ 1); + src = (u16 *)((uintptr_t)src ^ 1); - i = ((s32)SetReadFlash1 - (s32)ReadFlash1) >> 1; + i = ((uintptr_t)SetReadFlash1 - (uintptr_t)ReadFlash1) >> 1; while (i != 0) { @@ -154,10 +154,10 @@ void ReadFlash(u16 sectorNum, u32 offset, u8 *dest, u32 size) } funcSrc = (u16 *)ReadFlash_Core; - funcSrc = (u16 *)((s32)funcSrc ^ 1); + funcSrc = (u16 *)((uintptr_t)funcSrc ^ 1); funcDest = readFlash_Core_Buffer; - i = ((s32)ReadFlash - (s32)ReadFlash_Core) >> 1; + i = ((uintptr_t)ReadFlash - (uintptr_t)ReadFlash_Core) >> 1; while (i != 0) { @@ -165,7 +165,7 @@ void ReadFlash(u16 sectorNum, u32 offset, u8 *dest, u32 size) i--; } - readFlash_Core = (void (*)(vu8 *, u8 *, u32))((s32)readFlash_Core_Buffer + 1); + readFlash_Core = (void (*)(vu8 *, u8 *, u32))((uintptr_t)readFlash_Core_Buffer + 1); src = FLASH_BASE + (sectorNum << gFlash->sector.shift) + offset; @@ -202,10 +202,10 @@ u32 VerifyFlashSector(u16 sectorNum, u8 *src) } funcSrc = (u16 *)VerifyFlashSector_Core; - funcSrc = (u16 *)((s32)funcSrc ^ 1); + funcSrc = (u16 *)((uintptr_t)funcSrc ^ 1); funcDest = verifyFlashSector_Core_Buffer; - i = ((s32)VerifyFlashSector - (s32)VerifyFlashSector_Core) >> 1; + i = (u16)(((uintptr_t)VerifyFlashSector - (uintptr_t)VerifyFlashSector_Core) >> 1); while (i != 0) { @@ -213,7 +213,7 @@ u32 VerifyFlashSector(u16 sectorNum, u8 *src) i--; } - verifyFlashSector_Core = (u32 (*)(u8 *, u8 *, u32))((s32)verifyFlashSector_Core_Buffer + 1); + verifyFlashSector_Core = (u32 (*)(u8 *, u8 *, u32))((uintptr_t)verifyFlashSector_Core_Buffer + 1); tgt = FLASH_BASE + (sectorNum << gFlash->sector.shift); size = gFlash->sector.size; @@ -239,10 +239,10 @@ u32 VerifyFlashSectorNBytes(u16 sectorNum, u8 *src, u32 n) REG_WAITCNT = (REG_WAITCNT & ~WAITCNT_SRAM_MASK) | WAITCNT_SRAM_8; funcSrc = (u16 *)VerifyFlashSector_Core; - funcSrc = (u16 *)((s32)funcSrc ^ 1); + funcSrc = (u16 *)((uintptr_t)funcSrc ^ 1); funcDest = verifyFlashSector_Core_Buffer; - i = ((s32)VerifyFlashSector - (s32)VerifyFlashSector_Core) >> 1; + i = (u16)(((uintptr_t)VerifyFlashSector - (uintptr_t)VerifyFlashSector_Core) >> 1); while (i != 0) { @@ -250,7 +250,7 @@ u32 VerifyFlashSectorNBytes(u16 sectorNum, u8 *src, u32 n) i--; } - verifyFlashSector_Core = (u32 (*)(u8 *, u8 *, u32))((s32)verifyFlashSector_Core_Buffer + 1); + verifyFlashSector_Core = (u32 (*)(u8 *, u8 *, u32))((uintptr_t)verifyFlashSector_Core_Buffer + 1); tgt = FLASH_BASE + (sectorNum << gFlash->sector.shift); @@ -293,4 +293,4 @@ u32 ProgramFlashSectorAndVerifyNBytes(u16 sectorNum, u8 *src, u32 n) } return result; -} +} \ No newline at end of file diff --git a/src/battle_anim_bug.c b/src/battle_anim_bug.c index ea3df80986..5e8a8b2a76 100644 --- a/src/battle_anim_bug.c +++ b/src/battle_anim_bug.c @@ -372,14 +372,11 @@ static void AnimTranslateStinger(struct Sprite *sprite) { gBattleAnimArgs[2] = -gBattleAnimArgs[2]; } - else + else if (GetBattlerSide(gBattleAnimAttacker)) { - if (GetBattlerSide(gBattleAnimAttacker)) - { - gBattleAnimArgs[2] = -gBattleAnimArgs[2]; - gBattleAnimArgs[1] = -gBattleAnimArgs[1]; - gBattleAnimArgs[3] = -gBattleAnimArgs[3]; - } + gBattleAnimArgs[2] = -gBattleAnimArgs[2]; + gBattleAnimArgs[1] = -gBattleAnimArgs[1]; + gBattleAnimArgs[3] = -gBattleAnimArgs[3]; } if (!IsContest() && GetBattlerSide(gBattleAnimAttacker) == GetBattlerSide(gBattleAnimTarget)) @@ -387,13 +384,8 @@ static void AnimTranslateStinger(struct Sprite *sprite) if (GetBattlerPosition(gBattleAnimTarget) == B_POSITION_PLAYER_LEFT || GetBattlerPosition(gBattleAnimTarget) == B_POSITION_OPPONENT_LEFT) { - s16 temp1, temp2; - - temp1 = gBattleAnimArgs[2]; - gBattleAnimArgs[2] = -temp1; - - temp2 = gBattleAnimArgs[0]; - gBattleAnimArgs[0] = -temp2; + gBattleAnimArgs[2] *= -1; + gBattleAnimArgs[0] *= -1; } } @@ -448,28 +440,24 @@ static void AnimMissileArc_Step(struct Sprite *sprite) else { s16 tempData[8]; - u16 *data = sprite->data; - u16 x1 = sprite->pos1.x; - s16 x2 = sprite->pos2.x; - u16 y1 = sprite->pos1.y; - s16 y2 = sprite->pos2.y; + s16 xpos, ypos; int i; for (i = 0; i < 8; i++) - tempData[i] = data[i]; + tempData[i] = sprite->data[i]; - x2 += x1; - y2 += y1; + xpos = sprite->pos1.x + sprite->pos2.x; + ypos = sprite->pos1.y + sprite->pos2.y; if (!TranslateAnimHorizontalArc(sprite)) { - u16 rotation = ArcTan2Neg(sprite->pos1.x + sprite->pos2.x - x2, - sprite->pos1.y + sprite->pos2.y - y2); + u16 rotation = ArcTan2Neg(sprite->pos1.x + sprite->pos2.x - xpos, //Isn't this zero lol + sprite->pos1.y + sprite->pos2.y - ypos); rotation += 0xC000; TrySetSpriteRotScale(sprite, FALSE, 0x100, 0x100, rotation); for (i = 0; i < 8; i++) - data[i] = tempData[i]; + sprite->data[i] = tempData[i]; } } } diff --git a/src/battle_anim_effects_1.c b/src/battle_anim_effects_1.c index f93b2a5c48..e9930eeef0 100644 --- a/src/battle_anim_effects_1.c +++ b/src/battle_anim_effects_1.c @@ -4445,7 +4445,7 @@ static void AnimBowMon_Step1_Callback(struct Sprite* sprite) { sprite->data[3] = gBattlerSpriteIds[gBattleAnimAttacker]; PrepareBattlerSpriteForRotScale(sprite->data[3], ST_OAM_OBJ_NORMAL); - sprite->data[4] = (sprite->data[6] = GetBattlerSide(gBattleAnimAttacker)) ? 0x300 : 0xFFFFFD00; + sprite->data[4] = (sprite->data[6] = GetBattlerSide(gBattleAnimAttacker)) ? 0x300 : (s16)0xFFFFFD00; sprite->data[5] = 0; } diff --git a/src/berry.c b/src/berry.c index 98264f37b8..d70e8c3537 100644 --- a/src/berry.c +++ b/src/berry.c @@ -1331,7 +1331,7 @@ void ResetBerryTreeSparkleFlags(void) s16 bottom; int i; - GetCameraCoords(&cam_left, &cam_top); + GetCameraCoords((u16*)&cam_left, (u16*)&cam_top); left = cam_left; top = cam_top + 3; right = cam_left + 14; diff --git a/src/berry_blender.c b/src/berry_blender.c index a2a96c0892..de3cc62759 100644 --- a/src/berry_blender.c +++ b/src/berry_blender.c @@ -116,8 +116,8 @@ struct BerryBlenderData u16 field_116; u16 field_118; u16 field_11A; - u16 bg_X; - u16 bg_Y; + s16 bg_X; + s16 bg_Y; u8 field_120[3]; u8 field_123; u16 scores[BLENDER_MAX_PLAYERS][BLENDER_SCORES_NO]; @@ -3166,13 +3166,13 @@ static void sub_80832E8(s16* a0) static void sub_808330C(void) { - sub_80832E8(&sBerryBlenderData->bg_X); - sub_80832E8(&sBerryBlenderData->bg_Y); + sub_80832E8((s16 *)&sBerryBlenderData->bg_X); + sub_80832E8((s16 *)&sBerryBlenderData->bg_Y); } static void sub_8083334(s16* a0, u16 a1) { - s32 var; + u8 var; if (a1 < 10) var = 16; diff --git a/src/easy_chat.c b/src/easy_chat.c index 44a7b90c14..c839c0070d 100644 --- a/src/easy_chat.c +++ b/src/easy_chat.c @@ -2537,7 +2537,7 @@ u8 sub_811BBBC(void) return sEasyChatScreen->unk_0c; } -void sub_811BBC8(u8 *arg0, u8 *arg1) +static void sub_811BBC8(s8 *arg0, s8 *arg1) { *arg0 = sEasyChatScreen->unk_10; *arg1 = sEasyChatScreen->unk_11; @@ -4529,18 +4529,18 @@ static void sub_811E30C(void) x = var0 * 13; x = x * 8 + 28; y = var1 * 16 + 96; - sub_811E34C(x, y); + sub_811E34C((u8)x, (u8)y); } static void sub_811E34C(u8 x, u8 y) { - if (sUnknown_0203A11C->unk2E4) - { - sUnknown_0203A11C->unk2E4->pos1.x = x; - sUnknown_0203A11C->unk2E4->pos1.y = y; - sUnknown_0203A11C->unk2E4->pos2.x = 0; - sUnknown_0203A11C->unk2E4->data[0] = 0; - } + if (!sUnknown_0203A11C->unk2E4) + return; + + sUnknown_0203A11C->unk2E4->pos1.x = (s16)x; + sUnknown_0203A11C->unk2E4->pos1.y = (s16)y; + sUnknown_0203A11C->unk2E4->pos2.x = 0; + sUnknown_0203A11C->unk2E4->data[0] = 0; } static void sub_811E380(void) diff --git a/src/event_object_movement.c b/src/event_object_movement.c index de55362407..76331c2b14 100644 --- a/src/event_object_movement.c +++ b/src/event_object_movement.c @@ -8950,7 +8950,7 @@ void CreateLevitateMovementTask(struct ObjectEvent *objectEvent) u8 taskId = CreateTask(ApplyLevitateMovement, 0xFF); struct Task *task = &gTasks[taskId]; - StoreWordInTwoHalfwords(&task->data[0], (u32)objectEvent); + StoreWordInTwoHalfwords((u16 *)&task->data[0], (u32)objectEvent); objectEvent->warpArrowSpriteId = taskId; task->data[3] = 0xFFFF; } @@ -8961,7 +8961,7 @@ static void ApplyLevitateMovement(u8 taskId) struct Sprite *sprite; struct Task *task = &gTasks[taskId]; - LoadWordFromTwoHalfwords(&task->data[0], (u32 *)&objectEvent); // load the map object pointer. + LoadWordFromTwoHalfwords((u16 *)&task->data[0], (u32 *)&objectEvent); // load the map object pointer. sprite = &gSprites[objectEvent->spriteId]; if(!(task->data[2] & 0x3)) @@ -8978,7 +8978,7 @@ void DestroyExtraMovementTask(u8 taskId) struct ObjectEvent *objectEvent; struct Task *task = &gTasks[taskId]; - LoadWordFromTwoHalfwords(&task->data[0], (u32 *)&objectEvent); // unused objectEvent + LoadWordFromTwoHalfwords((u16 *)&task->data[0], (u32 *)&objectEvent); // unused objectEvent DestroyTask(taskId); } diff --git a/src/field_effect.c b/src/field_effect.c index 07579f55d5..bc1e6f134d 100644 --- a/src/field_effect.c +++ b/src/field_effect.c @@ -2501,7 +2501,7 @@ static void sub_80B8584(struct Task *task) { task->data[11] = REG_WININ; task->data[12] = REG_WINOUT; - StoreWordInTwoHalfwords(&task->data[13], (u32)gMain.vblankCallback); + StoreWordInTwoHalfwords((u16 *)&task->data[13], (u32)gMain.vblankCallback); task->data[1] = 0xf0f1; task->data[2] = 0x5051; task->data[3] = 0x3f; diff --git a/src/hall_of_fame.c b/src/hall_of_fame.c index bf9850deca..8e47c1e3ae 100644 --- a/src/hall_of_fame.c +++ b/src/hall_of_fame.c @@ -612,7 +612,7 @@ static void Task_Hof_PrintMonInfoAfterAnimating(u8 taskId) static void Task_Hof_TryDisplayAnotherMon(u8 taskId) { - u16 currPokeID = gTasks[taskId].tDisplayedMonId; + u16 currPokeID = (u16)gTasks[taskId].tDisplayedMonId; struct HallofFameMon* currMon = &sHofMonPtr->mon[currPokeID]; if (gTasks[taskId].tFrameCount != 0) @@ -1483,7 +1483,7 @@ static void UpdateDomeConfetti(struct ConfettiUtil *util) static void Task_DoDomeConfetti(u8 taskId) { u32 id = 0; - u16 *data = gTasks[taskId].data; + u16 *data = (u16 *)gTasks[taskId].data; switch (tState) { diff --git a/src/item_use.c b/src/item_use.c index 0aae441c8b..fa3f130810 100755 --- a/src/item_use.c +++ b/src/item_use.c @@ -721,7 +721,7 @@ static void ItemUseOnFieldCB_WailmerPailBerry(u8 taskId) static bool8 TryToWaterSudowoodo(void) { - u16 x, y; + s16 x, y; u8 z; u8 objId; GetXYCoordsOneStepInFrontOfPlayer(&x, &y); diff --git a/src/list_menu.c b/src/list_menu.c index ddcad0fe9c..ebf02bab65 100644 --- a/src/list_menu.c +++ b/src/list_menu.c @@ -1257,17 +1257,17 @@ void ListMenuSetUpRedOutlineCursorSpriteOamTable(u16 rowWidth, u16 rowHeight, st s32 i, j, id = 0; subsprites[id] = sSubsprite_RedOutline1; - subsprites[id].x = 136; - subsprites[id].y = 136; + subsprites[id].x = -120; + subsprites[id].y = -120; id++; subsprites[id] = sSubsprite_RedOutline2; subsprites[id].x = rowWidth + 128; - subsprites[id].y = 136; + subsprites[id].y = -120; id++; subsprites[id] = sSubsprite_RedOutline7; - subsprites[id].x = 136; + subsprites[id].x = -120; subsprites[id].y = rowHeight + 128; id++; @@ -1297,7 +1297,7 @@ void ListMenuSetUpRedOutlineCursorSpriteOamTable(u16 rowWidth, u16 rowHeight, st for (j = 8; j < rowHeight - 8; j += 8) { subsprites[id] = sSubsprite_RedOutline4; - subsprites[id].x = 136; + subsprites[id].x = -120; subsprites[id].y = j - 120; id++; diff --git a/src/mirage_tower.c b/src/mirage_tower.c index e2f5cefb78..bdddbdbe64 100644 --- a/src/mirage_tower.c +++ b/src/mirage_tower.c @@ -168,7 +168,7 @@ const struct PulseBlendSettings gMirageTowerPulseBlendSettings = { .numColors = 15, .delay = 5, .numFadeCycles = -1, - .maxBlendCoeff = 11, + .maxBlendCoeff = -5, .fadeType = 1, .restorePaletteOnUnload = FALSE, .unk7_7 = 1, @@ -412,10 +412,9 @@ void DoMirageTowerCeilingCrumble(void) static void WaitCeilingCrumble(u8 taskId) { - u16 *data = gTasks[taskId].data; - data[1]++; + u16 *data = (u16 *)gTasks[taskId].data; // Either wait 1000 frames, or until all 16 crumble sprites and the one screen-shake task are completed. - if (data[1] == 1000 || data[0] == 17) + if (++data[1] == 1000 || data[0] == 17) gTasks[taskId].func = FinishCeilingCrumbleTask; } diff --git a/src/overworld.c b/src/overworld.c index ea0d633bcf..6b8fd232e6 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -3212,7 +3212,7 @@ static void SpriteCB_LinkPlayer(struct Sprite *sprite) SetObjectSubpriorityByZCoord(objEvent->previousElevation, sprite, 1); sprite->oam.priority = ZCoordToPriority(objEvent->previousElevation); - if (!linkPlayerObjEvent->movementMode != MOVEMENT_MODE_FREE) + if (linkPlayerObjEvent->movementMode == MOVEMENT_MODE_FREE) StartSpriteAnim(sprite, GetFaceDirectionAnimNum(objEvent->range.as_byte)); else StartSpriteAnimIfDifferent(sprite, GetMoveDirectionAnimNum(objEvent->range.as_byte)); diff --git a/src/party_menu.c b/src/party_menu.c index d5bc6dfb63..6a38d90989 100755 --- a/src/party_menu.c +++ b/src/party_menu.c @@ -1862,7 +1862,7 @@ u8 GetMonAilment(struct Pokemon *mon) static void SetPartyMonsAllowedInMinigame(void) { - u16 *ptr; + s16 *ptr; if (gPartyMenu.menuType == PARTY_MENU_TYPE_MINIGAME) { @@ -4951,9 +4951,9 @@ static void Task_DisplayLevelUpStatsPg2(u8 taskId) static void DisplayLevelUpStatsPg1(u8 taskId) { - s16 *arrayPtr = sPartyMenuInternal->data; + u16 *arrayPtr = (u16*)sPartyMenuInternal->data; - arrayPtr[12] = CreateLevelUpStatsWindow(); + arrayPtr[12] = (u16)CreateLevelUpStatsWindow(); DrawLevelUpWindowPg1(arrayPtr[12], arrayPtr, &arrayPtr[6], TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY, TEXT_COLOR_LIGHT_GREY); CopyWindowToVram(arrayPtr[12], 2); ScheduleBgCopyTilemapToVram(2); @@ -4961,7 +4961,7 @@ static void DisplayLevelUpStatsPg1(u8 taskId) static void DisplayLevelUpStatsPg2(u8 taskId) { - s16 *arrayPtr = sPartyMenuInternal->data; + u16 *arrayPtr = (u16 *)sPartyMenuInternal->data; DrawLevelUpWindowPg2(arrayPtr[12], &arrayPtr[6], TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY, TEXT_COLOR_LIGHT_GREY); CopyWindowToVram(arrayPtr[12], 2); diff --git a/src/player_pc.c b/src/player_pc.c index fc0bd9f4c8..2010d84f85 100644 --- a/src/player_pc.c +++ b/src/player_pc.c @@ -327,7 +327,7 @@ void PlayerPC(void) static void InitPlayerPCMenu(u8 taskId) { - u16 *data; + s16 *data; struct WindowTemplate windowTemplate; data = gTasks[taskId].data; @@ -346,7 +346,7 @@ static void InitPlayerPCMenu(u8 taskId) static void PlayerPCProcessMenuInput(u8 taskId) { - u16 *data; + s16 *data; s8 inputOptionId; data = gTasks[taskId].data; @@ -435,7 +435,7 @@ static void PlayerPC_TurnOff(u8 taskId) static void InitItemStorageMenu(u8 taskId, u8 var) { - u16 *data; + s16 *data; struct WindowTemplate windowTemplate; data = gTasks[taskId].data; @@ -548,7 +548,7 @@ static void ItemStorage_Toss(u8 taskId) static void ItemStorage_WithdrawToss_Helper(u8 taskId, bool8 toss) { - u16 *data = gTasks[taskId].data; + s16 *data = gTasks[taskId].data; data[3] = toss; sub_816B4DC(taskId); @@ -581,9 +581,9 @@ static void ItemStorage_SetItemAndMailCount(u8 taskId) static void sub_816B4DC(u8 taskId) { - u16 *data = gTasks[taskId].data; + u16 *data = (u16 *)gTasks[taskId].data; - ClearStdWindowAndFrameToTransparent(data[4], FALSE); + ClearStdWindowAndFrameToTransparent((u8)data[4], FALSE); ClearWindowTilemap(data[4]); RemoveWindow(data[4]); ScheduleBgCopyTilemapToVram(0); @@ -1380,7 +1380,7 @@ static void ItemStorage_DoItemToss(u8 taskId) data = gTasks[taskId].data; b = (playerPCItemPageInfo.cursorPos + playerPCItemPageInfo.itemsAbove); - if (!ItemId_GetImportance(gSaveBlock1Ptr->pcItems[b].itemId)) + if (ItemId_GetImportance(gSaveBlock1Ptr->pcItems[b].itemId) == 0) { CopyItemName(gSaveBlock1Ptr->pcItems[b].itemId, gStringVar1); ConvertIntToDecimalStringN(gStringVar2, data[2], STR_CONV_MODE_LEFT_ALIGN, 3); diff --git a/src/pokedex.c b/src/pokedex.c index 0541f3f2e6..777cc52cd6 100644 --- a/src/pokedex.c +++ b/src/pokedex.c @@ -5117,9 +5117,9 @@ static void Task_SelectSearchMenuItem(u8 taskId) u16 *scrollOffset; DrawOrEraseSearchParameterBox(FALSE); - menuItem = gTasks[taskId].tMenuItem; - cursorPos = &gTasks[taskId].data[sSearchOptions[menuItem].taskDataCursorPos]; - scrollOffset = &gTasks[taskId].data[sSearchOptions[menuItem].taskDataScrollOffset]; + menuItem = (u16)gTasks[taskId].tMenuItem; + cursorPos = (u16*)&gTasks[taskId].data[sSearchOptions[menuItem].taskDataCursorPos]; + scrollOffset = (u16*)&gTasks[taskId].data[sSearchOptions[menuItem].taskDataScrollOffset]; gTasks[taskId].tCursorPos = *cursorPos; gTasks[taskId].tScrollOffset = *scrollOffset; PrintSearchParameterText(taskId); diff --git a/src/roulette.c b/src/roulette.c index 58e120cb50..f55736a969 100644 --- a/src/roulette.c +++ b/src/roulette.c @@ -633,7 +633,7 @@ static const struct UnkStruct1 gUnknown_085B6388[] = .var05 = 1, .var06 = 0xFF, .var07_0 = 8, - .var07_5 = 2, + .var07_5 = -2, .var07_7 = 0 }, { @@ -643,7 +643,7 @@ static const struct UnkStruct1 gUnknown_085B6388[] = .var05 = 1, .var06 = 0xFF, .var07_0 = 8, - .var07_5 = 2, + .var07_5 = -2, .var07_7 = 0 }, { @@ -653,7 +653,7 @@ static const struct UnkStruct1 gUnknown_085B6388[] = .var05 = 1, .var06 = 0xFF, .var07_0 = 8, - .var07_5 = 2, + .var07_5 = -2, .var07_7 = 0 }, { @@ -663,7 +663,7 @@ static const struct UnkStruct1 gUnknown_085B6388[] = .var05 = 1, .var06 = 0xFF, .var07_0 = 8, - .var07_5 = 2, + .var07_5 = -2, .var07_7 = 0 }, { @@ -673,7 +673,7 @@ static const struct UnkStruct1 gUnknown_085B6388[] = .var05 = 1, .var06 = 0xFF, .var07_0 = 8, - .var07_5 = 2, + .var07_5 = -2, .var07_7 = 0 }, { @@ -683,7 +683,7 @@ static const struct UnkStruct1 gUnknown_085B6388[] = .var05 = 1, .var06 = 0xFF, .var07_0 = 8, - .var07_5 = 2, + .var07_5 = -2, .var07_7 = 0 }, { @@ -693,7 +693,7 @@ static const struct UnkStruct1 gUnknown_085B6388[] = .var05 = 1, .var06 = 0xFF, .var07_0 = 8, - .var07_5 = 2, + .var07_5 = -2, .var07_7 = 0 }, { @@ -703,7 +703,7 @@ static const struct UnkStruct1 gUnknown_085B6388[] = .var05 = 1, .var06 = 0xFF, .var07_0 = 8, - .var07_5 = 2, + .var07_5 = -2, .var07_7 = 0 }, { @@ -713,7 +713,7 @@ static const struct UnkStruct1 gUnknown_085B6388[] = .var05 = 1, .var06 = 0xFF, .var07_0 = 8, - .var07_5 = 2, + .var07_5 = -2, .var07_7 = 0 }, { @@ -723,7 +723,7 @@ static const struct UnkStruct1 gUnknown_085B6388[] = .var05 = 1, .var06 = 0xFF, .var07_0 = 8, - .var07_5 = 2, + .var07_5 = -2, .var07_7 = 0 }, { @@ -733,7 +733,7 @@ static const struct UnkStruct1 gUnknown_085B6388[] = .var05 = 1, .var06 = 0xFF, .var07_0 = 8, - .var07_5 = 2, + .var07_5 = -2, .var07_7 = 0 }, { @@ -743,7 +743,7 @@ static const struct UnkStruct1 gUnknown_085B6388[] = .var05 = 1, .var06 = 0xFF, .var07_0 = 8, - .var07_5 = 2, + .var07_5 = -2, .var07_7 = 0 }, { @@ -753,7 +753,7 @@ static const struct UnkStruct1 gUnknown_085B6388[] = .var05 = 10, .var06 = 0xFF, .var07_0 = 14, - .var07_5 = 2, + .var07_5 = -2, .var07_7 = 0 }, }; @@ -767,7 +767,7 @@ static const struct UnkStruct1 gUnknown_085B63F0[] = .var05 = 30, .var06 = 0xFF, .var07_0 = 14, - .var07_5 = 2, + .var07_5 = -2, .var07_7 = 0 }, { @@ -777,7 +777,7 @@ static const struct UnkStruct1 gUnknown_085B63F0[] = .var05 = 30, .var06 = 0xFF, .var07_0 = 14, - .var07_5 = 2, + .var07_5 = -2, .var07_7 = 0 }, { @@ -787,7 +787,7 @@ static const struct UnkStruct1 gUnknown_085B63F0[] = .var05 = 30, .var06 = 0xFF, .var07_0 = 14, - .var07_5 = 2, + .var07_5 = -2, .var07_7 = 0 } }; diff --git a/src/scrcmd.c b/src/scrcmd.c index 4a7f4ea735..2a6abf17e1 100644 --- a/src/scrcmd.c +++ b/src/scrcmd.c @@ -788,8 +788,8 @@ bool8 ScrCmd_warphole(struct ScriptContext *ctx) { u8 mapGroup = ScriptReadByte(ctx); u8 mapNum = ScriptReadByte(ctx); - u16 x; - u16 y; + s16 x; + s16 y; PlayerGetDestCoords(&x, &y); if (mapGroup == 0xFF && mapNum == 0xFF) diff --git a/src/secret_base.c b/src/secret_base.c index 83626710fc..35ac31d4a7 100644 --- a/src/secret_base.c +++ b/src/secret_base.c @@ -964,7 +964,7 @@ static void HandleRegistryMenuInput(u8 taskId) data = gTasks[taskId].data; input = ListMenu_ProcessInput(data[5]); - ListMenuGetScrollAndRow(data[5], &data[2], &data[1]); + ListMenuGetScrollAndRow((u8)data[5], (u16 *)&data[2], (u16 *)&data[1]); switch (input) { case LIST_NOTHING_CHOSEN: @@ -1045,10 +1045,10 @@ void DeleteRegistry_Yes_Callback(u8 taskId) { s16 *data = gTasks[taskId].data; ClearDialogWindowAndFrame(0, 0); - DestroyListMenuTask(data[5], &data[2], &data[1]); + DestroyListMenuTask((u8)data[5], (u16 *)&data[2], (u16 *)&data[1]); gSaveBlock1Ptr->secretBases[data[4]].registryStatus = 0; BuildRegistryMenuItems(taskId); - sub_812225C(&data[2], &data[1], data[3], data[0]); + sub_812225C((u16 *)&data[2], (u16 *)&data[1], (u16)data[3], (u16)data[0]); FinalizeRegistryMenu(taskId); gTasks[taskId].func = HandleRegistryMenuInput; } @@ -1062,7 +1062,7 @@ static void DeleteRegistry_No(u8 taskId) { s16 *data = gTasks[taskId].data; ClearDialogWindowAndFrame(0, 0); - DestroyListMenuTask(data[5], &data[2], &data[1]); + DestroyListMenuTask((u8)data[5], (u16 *)&data[2], (u16 *)&data[1]); FinalizeRegistryMenu(taskId); gTasks[taskId].func = HandleRegistryMenuInput; } diff --git a/src/slot_machine.c b/src/slot_machine.c index d1cb05b180..6557e8cf49 100644 --- a/src/slot_machine.c +++ b/src/slot_machine.c @@ -775,7 +775,7 @@ static void PlaySlotMachine_Internal(u8 slotMachineIndex, MainCallback cb) { struct Task *task = &gTasks[CreateTask(SlotMachineDummyTask, 0xFF)]; task->data[0] = slotMachineIndex; - StoreWordInTwoHalfwords(task->data + 1, (intptr_t)cb); + StoreWordInTwoHalfwords((u16 *)(task->data + 1), (intptr_t)cb); } diff --git a/src/start_menu.c b/src/start_menu.c index 88ad364c7b..68a3161855 100644 --- a/src/start_menu.c +++ b/src/start_menu.c @@ -463,7 +463,7 @@ static bool32 InitStartMenuStep(void) sInitStartMenuData[0]++; break; case 4: - if (PrintStartMenuActions(&sInitStartMenuData[1], 2)) + if (PrintStartMenuActions((s8 *)&sInitStartMenuData[1], 2)) sInitStartMenuData[0]++; break; case 5: diff --git a/src/trainer_see.c b/src/trainer_see.c index 68a16e208b..93daab421d 100644 --- a/src/trainer_see.c +++ b/src/trainer_see.c @@ -603,7 +603,7 @@ static void sub_80B44C8(u8 taskId) struct ObjectEvent *objEvent; // another objEvent loaded into by loadword? - LoadWordFromTwoHalfwords(&task->data[1], (u32 *)&objEvent); + LoadWordFromTwoHalfwords((u16*)&task->data[1], (u32 *)&objEvent); if (!task->data[7]) { ObjectEventClearHeldMovement(objEvent); @@ -624,7 +624,7 @@ static void sub_80B44C8(u8 taskId) void sub_80B4578(struct ObjectEvent *var) { - StoreWordInTwoHalfwords(&gTasks[CreateTask(sub_80B44C8, 0)].data[1], (u32)var); + StoreWordInTwoHalfwords((u16 *)&gTasks[CreateTask(sub_80B44C8, 0)].data[1], (u32)var); } void EndTrainerApproach(void) From c722b7755808e0ee34b84087f3a31a28bf685cad Mon Sep 17 00:00:00 2001 From: PokeCodec Date: Mon, 27 Jul 2020 12:47:08 -0400 Subject: [PATCH 027/101] holding back on casts --- src/agb_flash.c | 2 +- src/battle_anim_effects_1.c | 2 +- src/hall_of_fame.c | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/agb_flash.c b/src/agb_flash.c index 0045219c41..eeccf11164 100644 --- a/src/agb_flash.c +++ b/src/agb_flash.c @@ -242,7 +242,7 @@ u32 VerifyFlashSectorNBytes(u16 sectorNum, u8 *src, u32 n) funcSrc = (u16 *)((uintptr_t)funcSrc ^ 1); funcDest = verifyFlashSector_Core_Buffer; - i = (u16)(((uintptr_t)VerifyFlashSector - (uintptr_t)VerifyFlashSector_Core) >> 1); + i = ((uintptr_t)VerifyFlashSector - (uintptr_t)VerifyFlashSector_Core) >> 1; while (i != 0) { diff --git a/src/battle_anim_effects_1.c b/src/battle_anim_effects_1.c index e9930eeef0..f93b2a5c48 100644 --- a/src/battle_anim_effects_1.c +++ b/src/battle_anim_effects_1.c @@ -4445,7 +4445,7 @@ static void AnimBowMon_Step1_Callback(struct Sprite* sprite) { sprite->data[3] = gBattlerSpriteIds[gBattleAnimAttacker]; PrepareBattlerSpriteForRotScale(sprite->data[3], ST_OAM_OBJ_NORMAL); - sprite->data[4] = (sprite->data[6] = GetBattlerSide(gBattleAnimAttacker)) ? 0x300 : (s16)0xFFFFFD00; + sprite->data[4] = (sprite->data[6] = GetBattlerSide(gBattleAnimAttacker)) ? 0x300 : 0xFFFFFD00; sprite->data[5] = 0; } diff --git a/src/hall_of_fame.c b/src/hall_of_fame.c index 8e47c1e3ae..bf9850deca 100644 --- a/src/hall_of_fame.c +++ b/src/hall_of_fame.c @@ -612,7 +612,7 @@ static void Task_Hof_PrintMonInfoAfterAnimating(u8 taskId) static void Task_Hof_TryDisplayAnotherMon(u8 taskId) { - u16 currPokeID = (u16)gTasks[taskId].tDisplayedMonId; + u16 currPokeID = gTasks[taskId].tDisplayedMonId; struct HallofFameMon* currMon = &sHofMonPtr->mon[currPokeID]; if (gTasks[taskId].tFrameCount != 0) @@ -1483,7 +1483,7 @@ static void UpdateDomeConfetti(struct ConfettiUtil *util) static void Task_DoDomeConfetti(u8 taskId) { u32 id = 0; - u16 *data = (u16 *)gTasks[taskId].data; + u16 *data = gTasks[taskId].data; switch (tState) { From 462e3bc0cb63c92fcebb397252454d7912594c24 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Tue, 21 Jul 2020 17:21:01 -0400 Subject: [PATCH 028/101] Sync flags with pokeruby From 37957b2d15833db0c7949387ce7136a11265cd9b Mon Sep 17 00:00:00 2001 From: PokeCodec Date: Mon, 27 Jul 2020 19:17:34 -0400 Subject: [PATCH 029/101] semicolon --- src/AgbRfu_LinkManager.c | 2 +- src/battle_anim_psychic.c | 2 +- src/battle_anim_utility_funcs.c | 2 +- src/digit_obj_util.c | 2 +- src/mirage_tower.c | 2 +- src/save_failed_screen.c | 2 +- tools/gbagfx/gfx.c | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/AgbRfu_LinkManager.c b/src/AgbRfu_LinkManager.c index e4127ee090..f6ebcc7265 100644 --- a/src/AgbRfu_LinkManager.c +++ b/src/AgbRfu_LinkManager.c @@ -918,7 +918,7 @@ static void rfu_LMAN_REQ_callback(u16 reqCommandId, u16 reqResult) { lman.reserveDisconnectSlot_flag = 0; lman.acceptCount = 0; - lman.acceptSlot_flag = 0;; + lman.acceptSlot_flag = 0; lman.parent_child = MODE_NEUTRAL; rfu_LMAN_managerChangeAgbClockMaster(); if (reqCommandId == ID_STOP_MODE_REQ) diff --git a/src/battle_anim_psychic.c b/src/battle_anim_psychic.c index 7918698fc0..25340f9c6a 100644 --- a/src/battle_anim_psychic.c +++ b/src/battle_anim_psychic.c @@ -1101,7 +1101,7 @@ static void AnimTask_TransparentCloneGrowAndShrink_Step(u8 taskId) break; case 1: task->data[1] -= 4; - task->data[2] = 256 - (gSineTable[task->data[1]] >> 1);; + task->data[2] = 256 - (gSineTable[task->data[1]] >> 1); SetSpriteRotScale(task->data[15], task->data[2], task->data[2], 0); SetBattlerSpriteYOffsetFromOtherYScale(task->data[15], task->data[13]); if (task->data[1] == 0) diff --git a/src/battle_anim_utility_funcs.c b/src/battle_anim_utility_funcs.c index dcef7d4830..bca669cc26 100644 --- a/src/battle_anim_utility_funcs.c +++ b/src/battle_anim_utility_funcs.c @@ -569,7 +569,7 @@ static void sub_81172EC(u8 taskId) if (gTasks[taskId].data[12] == 0) { sub_80A477C(0); - gTasks[taskId].data[15]++;; + gTasks[taskId].data[15]++; } } break; diff --git a/src/digit_obj_util.c b/src/digit_obj_util.c index fe5d49e69d..f887dafb95 100644 --- a/src/digit_obj_util.c +++ b/src/digit_obj_util.c @@ -33,7 +33,7 @@ struct DigitPrinterAlloc }; // this file's functions -static u8 GetFirstOamId(u8 oamCount);; +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); diff --git a/src/mirage_tower.c b/src/mirage_tower.c index bdddbdbe64..3f3dc1ef85 100644 --- a/src/mirage_tower.c +++ b/src/mirage_tower.c @@ -690,7 +690,7 @@ static void DoFossilFallAndSink(u8 taskId) if (gSprites[sUnknown_0203CF0C->spriteId].callback != SpriteCallbackDummy) return; DestroySprite(&gSprites[sUnknown_0203CF0C->spriteId]); - FREE_AND_SET_NULL(sUnknown_0203CF0C->unkC);; + FREE_AND_SET_NULL(sUnknown_0203CF0C->unkC); FREE_AND_SET_NULL(sUnknown_0203CF0C->frameImage); FREE_AND_SET_NULL(sUnknown_0203CF0C->frameImageTiles); FREE_AND_SET_NULL(sUnknown_0203CF0C); diff --git a/src/save_failed_screen.c b/src/save_failed_screen.c index a2a2acc8d6..7c824e82dd 100644 --- a/src/save_failed_screen.c +++ b/src/save_failed_screen.c @@ -349,7 +349,7 @@ static void VBlankCB_UpdateClockGraphics(void) gMain.oamBuffer[0] = sClockOamData; gMain.oamBuffer[0].x = 112; - gMain.oamBuffer[0].y = (CLOCK_WIN_TOP + 1) * 8;; + gMain.oamBuffer[0].y = (CLOCK_WIN_TOP + 1) * 8; if (gSaveFailedClockInfo[CLOCK_RUNNING] != FALSE) { diff --git a/tools/gbagfx/gfx.c b/tools/gbagfx/gfx.c index 8d959465f7..4e85953fdc 100644 --- a/tools/gbagfx/gfx.c +++ b/tools/gbagfx/gfx.c @@ -282,7 +282,7 @@ static void HflipTile(unsigned char * tile, int bitDepth) for (i = 0; i < 8; i++) { SWAP_NYBBLES(&tile[4 * i + 0], &tile[4 * i + 3]); - SWAP_NYBBLES(&tile[4 * i + 1], &tile[4 * i + 2]);; + SWAP_NYBBLES(&tile[4 * i + 1], &tile[4 * i + 2]); } break; case 8: From 7b6607d9e38702f41fda057cc13148b8f0bbcc0a Mon Sep 17 00:00:00 2001 From: PokeCodec <67983839+PokeCodec@users.noreply.github.com> Date: Mon, 27 Jul 2020 14:59:37 -0400 Subject: [PATCH 030/101] Update secret_base.c --- src/secret_base.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/secret_base.c b/src/secret_base.c index 35ac31d4a7..3f69e0419e 100644 --- a/src/secret_base.c +++ b/src/secret_base.c @@ -964,7 +964,7 @@ static void HandleRegistryMenuInput(u8 taskId) data = gTasks[taskId].data; input = ListMenu_ProcessInput(data[5]); - ListMenuGetScrollAndRow((u8)data[5], (u16 *)&data[2], (u16 *)&data[1]); + ListMenuGetScrollAndRow(data[5], (u16 *)&data[2], (u16 *)&data[1]); switch (input) { case LIST_NOTHING_CHOSEN: From 044d968513f28566fab1db3ceff1b52162b8387a Mon Sep 17 00:00:00 2001 From: PokeCodec Date: Tue, 28 Jul 2020 14:38:38 -0400 Subject: [PATCH 031/101] Match --- src/event_object_movement.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/src/event_object_movement.c b/src/event_object_movement.c index 76331c2b14..4b275a9702 100644 --- a/src/event_object_movement.c +++ b/src/event_object_movement.c @@ -1205,8 +1205,7 @@ static u8 InitObjectEventStateFromTemplate(struct ObjectEventTemplate *template, { struct ObjectEvent *objectEvent; u8 objectEventId; - s16 x; - s16 y; + s16 x, y; if (GetAvailableObjectEventId(template->localId, mapNum, mapGroup, &objectEventId)) return OBJECT_EVENTS_COUNT; @@ -1220,7 +1219,6 @@ static u8 InitObjectEventStateFromTemplate(struct ObjectEventTemplate *template, objectEvent->movementType = template->movementType; objectEvent->localId = template->localId; objectEvent->mapNum = mapNum; - objectEvent++; objectEvent--; objectEvent->mapGroup = mapGroup; objectEvent->initialCoords.x = x; objectEvent->initialCoords.y = y; @@ -1237,9 +1235,6 @@ static u8 InitObjectEventStateFromTemplate(struct ObjectEventTemplate *template, objectEvent->previousMovementDirection = gInitialMovementTypeFacingDirections[template->movementType]; SetObjectEventDirection(objectEvent, objectEvent->previousMovementDirection); SetObjectEventDynamicGraphicsId(objectEvent); -#ifndef NONMATCHING - asm("":::"r5", "r6"); -#endif if (gRangedMovementTypes[objectEvent->movementType]) { if (objectEvent->range.as_nybbles.x == 0) From e52ffacc2512bc10f4bb037516e50786ba770a29 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Tue, 28 Jul 2020 15:28:16 -0400 Subject: [PATCH 032/101] Clean up slot machine data doc --- src/slot_machine.c | 474 +++++++++++++++++++++++---------------------- 1 file changed, 245 insertions(+), 229 deletions(-) diff --git a/src/slot_machine.c b/src/slot_machine.c index a02950a695..dcbeab736e 100644 --- a/src/slot_machine.c +++ b/src/slot_machine.c @@ -44,56 +44,57 @@ #define LUCKY_BIAS_MIXED_777 (1 << 6) #define LUCKY_BIAS_777 (1 << 7) -#define GFXTAG_7_RED 0 -#define GFXTAG_7_BLUE 1 -#define GFXTAG_AZURILL 2 -#define GFXTAG_LOTAD 3 -#define GFXTAG_CHERRY 4 -#define GFXTAG_POWER 5 -#define GFXTAG_REPLAY 6 -#define GFXTAG_NUM_0 7 -#define GFXTAG_NUM_1 8 -#define GFXTAG_NUM_2 9 -#define GFXTAG_NUM_3 10 -#define GFXTAG_NUM_4 11 -#define GFXTAG_NUM_5 12 -#define GFXTAG_NUM_6 13 -#define GFXTAG_NUM_7 14 -#define GFXTAG_NUM_8 15 -#define GFXTAG_NUM_9 16 -#define GFXTAG_REEL_BG 17 -#define GFXTAG_STOP 18 -#define GFXTAG_BONUS 19 -#define GFXTAG_BIG 20 -#define GFXTAG_REG 21 +enum { + GFXTAG_7_RED, + GFXTAG_7_BLUE, + GFXTAG_AZURILL, + GFXTAG_LOTAD, + GFXTAG_CHERRY, + GFXTAG_POWER, + GFXTAG_REPLAY, + GFXTAG_NUM_0, + GFXTAG_NUM_1, + GFXTAG_NUM_2, + GFXTAG_NUM_3, + GFXTAG_NUM_4, + GFXTAG_NUM_5, + GFXTAG_NUM_6, + GFXTAG_NUM_7, + GFXTAG_NUM_8, + GFXTAG_NUM_9, + GFXTAG_REEL_BG, + GFXTAG_STOP, + GFXTAG_BONUS, + GFXTAG_BIG, + GFXTAG_REG, +}; #define GFXTAG_SYMBOLS_START (GFXTAG_7_RED) #define GFXTAG_NUMBERS_START (GFXTAG_NUM_0) -#define PALTAG_REEL 0 -#define PALTAG_REEL_TIME_PIKACHU 1 -#define PALTAG_REEL_TIME_MISC 2 -#define PALTAG_REEL_TIME_MACHINE 3 -#define PALTAG_MISC 4 -#define PALTAG_EXPLOSION 5 -#define PALTAG_DIG_DISPLAY 6 -#define PALTAG_PIKA_AURA 7 +enum { + PALTAG_REEL, + PALTAG_REEL_TIME_PIKACHU, + PALTAG_REEL_TIME_MISC, + PALTAG_REEL_TIME_MACHINE, + PALTAG_MISC, + PALTAG_EXPLOSION, + PALTAG_DIG_DISPLAY, + PALTAG_PIKA_AURA, +}; -#define SLOT_MACHINE_MATCHED_1CHERRY 0 -#define SLOT_MACHINE_MATCHED_2CHERRY 1 -#define SLOT_MACHINE_MATCHED_REPLAY 2 -#define SLOT_MACHINE_MATCHED_LOTAD 3 -#define SLOT_MACHINE_MATCHED_AZURILL 4 -#define SLOT_MACHINE_MATCHED_POWER 5 -#define SLOT_MACHINE_MATCHED_777_MIXED 6 -#define SLOT_MACHINE_MATCHED_777_RED 7 -#define SLOT_MACHINE_MATCHED_777_BLUE 8 -#define SLOT_MACHINE_MATCHED_NONE 9 - -#define LEFT_REEL 0 -#define MIDDLE_REEL 1 -#define RIGHT_REEL 2 -#define NUM_REELS 3 +enum { + MATCHED_1CHERRY, + MATCHED_2CHERRY, + MATCHED_REPLAY, + MATCHED_LOTAD, + MATCHED_AZURILL, + MATCHED_POWER, + MATCHED_777_MIXED, + MATCHED_777_RED, + MATCHED_777_BLUE, + MATCHED_NONE, +}; enum { MATCH_MIDDLE_ROW, @@ -104,6 +105,13 @@ enum { NUM_MATCH_LINES, }; +enum { + LEFT_REEL, + MIDDLE_REEL, + RIGHT_REEL, + NUM_REELS, +}; + enum { SLOT_ACTION_UNFADE, SLOT_ACTION_1, @@ -543,11 +551,11 @@ static struct SpriteFrameImage *sImageTables_DigitalDisplay[NUM_DIG_DISPLAY_SPRI // Const rom data. static const struct DigitalDisplaySprite *const sDigitalDisplayScenes[]; -static const u16 gPalette_83EDE24[]; -static const u8 gLuckyRoundProbabilities[][3]; -static const u8 gBiasTags[]; -static const u16 gLuckyFlagSettings_Top3[]; -static const u16 gLuckyFlagSettings_NotTop3[]; +static const u16 sUnkPalette[]; +static const u8 sLuckyRoundProbabilities[][3]; +static const u8 sBiasTags[]; +static const u16 sLuckyFlagSettings_Top3[]; +static const u16 sLuckyFlagSettings_NotTop3[]; static const s16 sDigitalDisplay_SpriteCoords[][2]; static const SpriteCallback sDigitalDisplay_SpriteCallbacks[]; static const struct SpriteTemplate *const sSpriteTemplates_DigitalDisplay[NUM_DIG_DISPLAY_SPRITES]; @@ -557,24 +565,24 @@ static const struct SpriteTemplate sSpriteTemplate_ReelTimeSmoke; static const struct SpriteTemplate sSpriteTemplate_ReelTimeDuck; static const struct SpriteTemplate sSpriteTemplate_ReelTimeExplosion; static const struct SpriteTemplate sSpriteTemplate_ReelTimePikachuAura; -static const u16 gProbabilityTable_SkipToReeltimeAction14[]; +static const u16 sProbabilityTable_SkipToReeltimeAction14[]; static const u16 *const sPokeballShiningPalTable[]; -static const u16 gReelIncrementTable[][2]; -static const u16 gReelTimeBonusIncrementTable[]; -static const u16 gSlotMatchFlags[]; -static const u16 gSlotPayouts[]; +static const u16 sReelIncrementTable[][2]; +static const u16 sReelTimeBonusIncrementTable[]; +static const u16 sSlotMatchFlags[]; +static const u16 sSlotPayouts[]; static const u8 *const sReelBackground_Tilemap; static const u32 sReelTimeGfx[]; static const struct SpriteSheet sSlotMachineSpriteSheets[22]; static const struct SpritePalette sSlotMachineSpritePalettes[]; static const u16 *const sDigitalDisplay_Pal; -static const s16 gInitialReelPositions[][2]; -static const u8 gLuckyFlagProbabilities_Top3[][6]; -static const u8 gLuckyFlagProbabilities_NotTop3[][6]; -static const u8 gReeltimeProbabilities_UnluckyGame[][17]; -static const u8 gReelTimeProbabilities_LuckyGame[][17]; -static const u8 gSym2Match[]; -static const u8 gReelTimeTags[]; +static const s16 sInitialReelPositions[NUM_REELS][2]; +static const u8 sLuckyFlagProbabilities_Top3[][6]; +static const u8 sLuckyFlagProbabilities_NotTop3[][6]; +static const u8 sReeltimeProbabilities_UnluckyGame[][17]; +static const u8 sReelTimeProbabilities_LuckyGame[][17]; +static const u8 sSymToMatch[]; +static const u8 sReelTimeTags[]; static const u8 sReelSymbolTileTags[NUM_REELS][SYMBOLS_PER_REEL]; static const u16 *const sLitMatchLinePalTable[]; static const u16 *const sDarkMatchLinePalTable[]; @@ -582,7 +590,7 @@ static const u8 sMatchLinePalOffsets[]; static const u8 sBetToMatchLineIds[][2]; static const u8 sMatchLinesPerBet[]; static const u16 *const sFlashingLightsPalTable[]; -static const u16 *const gUnknown_083EDDAC; +static const u16 *const sSlotMachineMenu_Pal; static const u16 sReelTimeWindow_Tilemap[]; static const u16 sEmptyTilemap[]; static void (*const sDigitalDisplaySceneExitCallbacks[])(void); @@ -671,7 +679,7 @@ static const struct WindowTemplate sWindowTemplate_InfoBox = static const u8 sColors_ReeltimeHelp[] = {TEXT_COLOR_LIGHT_GREY, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY}; -bool8 (*const SlotActions[])(struct Task *task) = +static bool8 (*const sSlotActions[])(struct Task *task) = { [SLOT_ACTION_UNFADE] = SlotAction_UnfadeScreen, [SLOT_ACTION_1] = SlotAction_WaitForUnfade, @@ -704,14 +712,14 @@ bool8 (*const SlotActions[])(struct Task *task) = [SLOT_ACTION_FREE] = SlotAction_FreeDataStructures, }; -bool8 (*const AwardPayoutActions[])(struct Task *task) = +static bool8 (*const sAwardPayoutActions[])(struct Task *task) = { AwardPayoutAction0, AwardPayoutAction_GivePayoutToPlayer, AwardPayoutAction_FreeTask }; -bool8 (*const SlotReelActions[])(struct Task *task) = +static bool8 (*const sSlotReelActions[])(struct Task *task) = { SlotReelAction_StayStill, SlotReelAction_Spin, @@ -722,58 +730,58 @@ bool8 (*const SlotReelActions[])(struct Task *task) = // returns True if a match with the biasTag is possible in that reel // also modifies data in sSlotMachine reel arrays to indicate how to get to the matching state -bool8 (*const DecideReelTurns_BiasTag[])(void) = +static bool8 (*const sDecideReelTurns_BiasTag[NUM_REELS])(void) = { DecideReelTurns_BiasTag_Reel1, DecideReelTurns_BiasTag_Reel2, DecideReelTurns_BiasTag_Reel3 }; -void (*const DecideReelTurns_NoBiasTag[])(void) = +static void (*const sDecideReelTurns_NoBiasTag[NUM_REELS])(void) = { DecideReelTurns_NoBiasTag_Reel1, DecideReelTurns_NoBiasTag_Reel2, DecideReelTurns_NoBiasTag_Reel3 }; -const u16 ReelStopShocks[] = {2, 4, 4, 4, 8}; +static const u16 sReelStopShocks[] = {2, 4, 4, 4, 8}; -bool8 (*const DecideReelTurns_BiasTag_Reel1_Bets[])(u8 tag1, u8 tag2) = +static bool8 (*const sDecideReelTurns_BiasTag_Reel1_Bets[MAX_BET])(u8 tag1, u8 tag2) = { DecideReelTurns_BiasTag_Reel1_Bet1, DecideReelTurns_BiasTag_Reel1_Bet2or3, DecideReelTurns_BiasTag_Reel1_Bet2or3 }; -bool8 (*const DecideReelTurns_BiasTag_Reel2_Bets[])(void) = +static bool8 (*const sDecideReelTurns_BiasTag_Reel2_Bets[MAX_BET])(void) = { DecideReelTurns_BiasTag_Reel2_Bet1or2, DecideReelTurns_BiasTag_Reel2_Bet1or2, DecideReelTurns_BiasTag_Reel2_Bet3 }; -bool8 (*const DecideReelTurns_BiasTag_Reel3_Bets[])(u8 biasTag) = +static bool8 (*const sDecideReelTurns_BiasTag_Reel3_Bets[MAX_BET])(u8 biasTag) = { DecideReelTurns_BiasTag_Reel3_Bet1or2, DecideReelTurns_BiasTag_Reel3_Bet1or2, DecideReelTurns_BiasTag_Reel3_Bet3 }; -void (*const DecideReelTurns_NoBiasTag_Reel2_Bets[])(void) = +static void (*const sDecideReelTurns_NoBiasTag_Reel2_Bets[MAX_BET])(void) = { DecideReelTurns_NoBiasTag_Reel2_Bet1, DecideReelTurns_NoBiasTag_Reel2_Bet2, DecideReelTurns_NoBiasTag_Reel2_Bet3 }; -void (*const DecideReelTurns_NoBiasTag_Reel3_Bets[])(void) = +static void (*const sDecideReelTurns_NoBiasTag_Reel3_Bets[MAX_BET])(void) = { DecideReelTurns_NoBiasTag_Reel3_Bet1, DecideReelTurns_NoBiasTag_Reel3_Bet2, DecideReelTurns_NoBiasTag_Reel3_Bet3 }; -void (*const sReelStopButtonFuncs[])(struct Task *task, u8 taskId) = +static void (*const sReelStopButtonFuncs[])(struct Task *task, u8 taskId) = { sub_8103C78, sub_8103CAC, @@ -782,7 +790,7 @@ void (*const sReelStopButtonFuncs[])(struct Task *task, u8 taskId) = static const s16 sReelButtonOffsets[NUM_REELS] = {5, 10, 15}; -void (*const sPikaPowerBoltFuncs[])(struct Task *task) = +static void (*const sPikaPowerBoltFuncs[])(struct Task *task) = { nullsub_68, sub_810411C, @@ -847,7 +855,7 @@ static void (*const sInfoBoxActions[])(struct Task *task) = }; // Just idles, digital display is handled by CreateDigitalDisplayScene and sprite callbacks -void (*const sDigitalDisplayActions[])(struct Task *task) = +static void (*const sDigitalDisplayActions[])(struct Task *task) = { DigitalDisplay_Idle, }; @@ -1063,7 +1071,7 @@ static void SlotMachineSetup_0_1(void) for (i = 0; i < NUM_REELS; i++) { sSlotMachine->reelPixelOffsetsWhileStopping[i] = 0; - sSlotMachine->reelPositions[i] = gInitialReelPositions[i][sSlotMachine->luckyGame] % SYMBOLS_PER_REEL; + sSlotMachine->reelPositions[i] = sInitialReelPositions[i][sSlotMachine->luckyGame] % SYMBOLS_PER_REEL; sSlotMachine->reelPixelOffsets[i] = SYMBOLS_PER_REEL * REEL_SYMBOL_HEIGHT - sSlotMachine->reelPositions[i] * REEL_SYMBOL_HEIGHT; sSlotMachine->reelPixelOffsets[i] %= SYMBOLS_PER_REEL * REEL_SYMBOL_HEIGHT; } @@ -1130,7 +1138,7 @@ static void GameplayTasks_Slots(void) // task->data[0] is a timer static void RunSlotActions(u8 taskId) { - while (SlotActions[sSlotMachine->state](&gTasks[taskId])) + while (sSlotActions[sSlotMachine->state](&gTasks[taskId])) ; } @@ -1360,12 +1368,12 @@ static bool8 SlotAction_CheckMatches(struct Task *task) { sSlotMachine->netCoinLoss = 0; } - if (sSlotMachine->matchedSymbols & ((1 << SLOT_MACHINE_MATCHED_777_BLUE) | (1 << SLOT_MACHINE_MATCHED_777_RED))) + if (sSlotMachine->matchedSymbols & ((1 << MATCHED_777_BLUE) | (1 << MATCHED_777_RED))) { PlayFanfare(MUS_ME_B_BIG); CreateDigitalDisplayScene(DIG_DISPLAY_BONUS_BIG); } - else if (sSlotMachine->matchedSymbols & (1 << SLOT_MACHINE_MATCHED_777_MIXED)) + else if (sSlotMachine->matchedSymbols & (1 << MATCHED_777_MIXED)) { PlayFanfare(MUS_ME_B_BIG); CreateDigitalDisplayScene(DIG_DISPLAY_BONUS_REG); @@ -1376,20 +1384,20 @@ static bool8 SlotAction_CheckMatches(struct Task *task) CreateDigitalDisplayScene(DIG_DISPLAY_WIN); } // if you matched 777... - if (sSlotMachine->matchedSymbols & ((1 << SLOT_MACHINE_MATCHED_777_MIXED) | (1 << SLOT_MACHINE_MATCHED_777_BLUE) | (1 << SLOT_MACHINE_MATCHED_777_RED))) + if (sSlotMachine->matchedSymbols & ((1 << MATCHED_777_MIXED) | (1 << MATCHED_777_BLUE) | (1 << MATCHED_777_RED))) { sSlotMachine->luckyFlags &= ~(LUCKY_BIAS_777 | LUCKY_BIAS_MIXED_777); - if (sSlotMachine->matchedSymbols & ((1 << SLOT_MACHINE_MATCHED_777_BLUE) | (1 << SLOT_MACHINE_MATCHED_777_RED))) + if (sSlotMachine->matchedSymbols & ((1 << MATCHED_777_BLUE) | (1 << MATCHED_777_RED))) { sSlotMachine->reelTimeSpinsLeft = 0; sSlotMachine->reelTimeSpinsUsed = 0; sSlotMachine->luckyGame = FALSE; - if (sSlotMachine->matchedSymbols & (1 << SLOT_MACHINE_MATCHED_777_BLUE)) + if (sSlotMachine->matchedSymbols & (1 << MATCHED_777_BLUE)) // this may be an error, but if you get blue 777, the game becomes lucky sSlotMachine->luckyGame = TRUE; } } - if (sSlotMachine->matchedSymbols & (1 << SLOT_MACHINE_MATCHED_POWER) && sSlotMachine->pikaPower < 16) + if (sSlotMachine->matchedSymbols & (1 << MATCHED_POWER) && sSlotMachine->pikaPower < 16) { sSlotMachine->pikaPower++; DisplayPikaPower(sSlotMachine->pikaPower); @@ -1417,16 +1425,16 @@ static bool8 SlotAction_EndOfRoll(struct Task *task) if (TryStopSlotMachineLights()) { sSlotMachine->state = SLOT_ACTION_19; - if (sSlotMachine->matchedSymbols & ((1 << SLOT_MACHINE_MATCHED_777_RED) | (1 << SLOT_MACHINE_MATCHED_777_BLUE))) + if (sSlotMachine->matchedSymbols & ((1 << MATCHED_777_RED) | (1 << MATCHED_777_BLUE))) IncrementGameStat(GAME_STAT_SLOT_JACKPOTS); - if (sSlotMachine->matchedSymbols & (1 << SLOT_MACHINE_MATCHED_REPLAY)) + if (sSlotMachine->matchedSymbols & (1 << MATCHED_REPLAY)) { sSlotMachine->currReel = 0; sSlotMachine->state = SLOT_ACTION_9; } - if (sSlotMachine->matchedSymbols & (1 << SLOT_MACHINE_MATCHED_POWER)) + if (sSlotMachine->matchedSymbols & (1 << MATCHED_POWER)) sSlotMachine->state = SLOT_ACTION_17; - if (sSlotMachine->reelTimeSpinsLeft && sSlotMachine->matchedSymbols & (1 << SLOT_MACHINE_MATCHED_REPLAY)) + if (sSlotMachine->reelTimeSpinsLeft && sSlotMachine->matchedSymbols & (1 << MATCHED_REPLAY)) { CreateDigitalDisplayScene(DIG_DISPLAY_REEL_TIME); sSlotMachine->state = SLOT_ACTION_18; @@ -1440,7 +1448,7 @@ static bool8 SlotAction_MatchedPower(struct Task *task) if (!sub_81040C8()) { sSlotMachine->state = SLOT_ACTION_19; - if (sSlotMachine->matchedSymbols & (1 << SLOT_MACHINE_MATCHED_REPLAY)) + if (sSlotMachine->matchedSymbols & (1 << MATCHED_REPLAY)) { sSlotMachine->state = SLOT_ACTION_9; if (sSlotMachine->reelTimeSpinsLeft) @@ -1458,7 +1466,7 @@ static bool8 SlotAction18(struct Task *task) if (IsDigitalDisplayAnimFinished()) { sSlotMachine->state = SLOT_ACTION_19; - if (sSlotMachine->matchedSymbols & (1 << SLOT_MACHINE_MATCHED_REPLAY)) + if (sSlotMachine->matchedSymbols & (1 << MATCHED_REPLAY)) { sSlotMachine->state = SLOT_ACTION_9; } @@ -1618,7 +1626,7 @@ static void DrawLuckyFlags(void) if (attempts != 3) // if you found a lucky number { // attempts == 1: reelTime flag set - sSlotMachine->luckyFlags |= gLuckyFlagSettings_Top3[attempts]; + sSlotMachine->luckyFlags |= sLuckyFlagSettings_Top3[attempts]; if (attempts != 1) { return; @@ -1629,7 +1637,7 @@ static void DrawLuckyFlags(void) attempts = AttemptsAtLuckyFlags_NotTop3(); if (attempts != 5) // if you found a lucky number { - sSlotMachine->luckyFlags |= gLuckyFlagSettings_NotTop3[attempts]; + sSlotMachine->luckyFlags |= sLuckyFlagSettings_NotTop3[attempts]; } } } @@ -1649,7 +1657,7 @@ static u8 GetBiasTag(u8 luckyFlags) for (i = 0; i < 8; i++) { if (luckyFlags & 1) - return gBiasTags[i]; + return sBiasTags[i]; luckyFlags >>= 1; } return 0; @@ -1659,7 +1667,7 @@ static u8 GetBiasTag(u8 luckyFlags) static bool8 IsThisRoundLucky(void) { u8 rval = Random(); - if (gLuckyRoundProbabilities[sSlotMachine->machineId][sSlotMachine->bet - 1] > rval) + if (sLuckyRoundProbabilities[sSlotMachine->machineId][sSlotMachine->bet - 1] > rval) return TRUE; return FALSE; } @@ -1671,7 +1679,7 @@ static u8 AttemptsAtLuckyFlags_Top3(void) for (count = 0; count < 3; count++) { s16 rval = Random() & 0xff; - s16 value = gLuckyFlagProbabilities_Top3[count][sSlotMachine->machineId]; + s16 value = sLuckyFlagProbabilities_Top3[count][sSlotMachine->machineId]; if (value > rval) break; } @@ -1685,7 +1693,7 @@ static u8 AttemptsAtLuckyFlags_NotTop3(void) for (count = 0; count < 5; count++) { s16 rval = Random() & 0xff; // random byte - s16 value = gLuckyFlagProbabilities_NotTop3[count][sSlotMachine->machineId]; + s16 value = sLuckyFlagProbabilities_NotTop3[count][sSlotMachine->machineId]; // make first attempt easier if it's a lucky game if (count == 0 && sSlotMachine->luckyGame == TRUE) { @@ -1709,9 +1717,9 @@ static u8 AttemptsAtLuckyFlags_NotTop3(void) static u8 GetReelTimeProbability(u8 reelTimeDraw) { if (sSlotMachine->luckyGame == FALSE) - return gReeltimeProbabilities_UnluckyGame[reelTimeDraw][sSlotMachine->pikaPower]; + return sReeltimeProbabilities_UnluckyGame[reelTimeDraw][sSlotMachine->pikaPower]; else - return gReelTimeProbabilities_LuckyGame[reelTimeDraw][sSlotMachine->pikaPower]; + return sReelTimeProbabilities_LuckyGame[reelTimeDraw][sSlotMachine->pikaPower]; } static void GetReeltimeDraw(void) @@ -1735,7 +1743,7 @@ static void GetReeltimeDraw(void) static bool8 SkipToReeltimeAction14(u16 i) { u16 rval = Random() & 0xff; - if (rval < gProbabilityTable_SkipToReeltimeAction14[i]) + if (rval < sProbabilityTable_SkipToReeltimeAction14[i]) return TRUE; else return FALSE; @@ -1755,11 +1763,11 @@ static u16 SlowReelSpeed(void) else if (sSlotMachine->netCoinLoss >= 150) i = 1; rval = Random() % 100; - value = gReelIncrementTable[i][0]; + value = sReelIncrementTable[i][0]; if (rval < value) return 4; rval = Random() % 100; - value = gReelIncrementTable[i][1] + gReelTimeBonusIncrementTable[sSlotMachine->reelTimeSpinsUsed]; + value = sReelIncrementTable[i][1] + sReelTimeBonusIncrementTable[sSlotMachine->reelTimeSpinsUsed]; if (rval < value) return 2; return 8; @@ -1783,10 +1791,10 @@ static void CheckMatch_CenterRow(void) c2 = GetTagAtRest(MIDDLE_REEL, 2); c3 = GetTagAtRest(RIGHT_REEL, 2); match = GetMatchFromSymbolsInRow(c1, c2, c3); - if (match != SLOT_MACHINE_MATCHED_NONE) + if (match != MATCHED_NONE) { - sSlotMachine->payout += gSlotPayouts[match]; - sSlotMachine->matchedSymbols |= gSlotMatchFlags[match]; + sSlotMachine->payout += sSlotPayouts[match]; + sSlotMachine->matchedSymbols |= sSlotMatchFlags[match]; FlashMatchLine(MATCH_MIDDLE_ROW); } } @@ -1799,24 +1807,24 @@ static void CheckMatch_TopAndBottom(void) c2 = GetTagAtRest(MIDDLE_REEL, 1); c3 = GetTagAtRest(RIGHT_REEL, 1); match = GetMatchFromSymbolsInRow(c1, c2, c3); - if (match != SLOT_MACHINE_MATCHED_NONE) + if (match != MATCHED_NONE) { - if (match == SLOT_MACHINE_MATCHED_1CHERRY) - match = SLOT_MACHINE_MATCHED_2CHERRY; - sSlotMachine->payout += gSlotPayouts[match]; - sSlotMachine->matchedSymbols |= gSlotMatchFlags[match]; + if (match == MATCHED_1CHERRY) + match = MATCHED_2CHERRY; + sSlotMachine->payout += sSlotPayouts[match]; + sSlotMachine->matchedSymbols |= sSlotMatchFlags[match]; FlashMatchLine(MATCH_TOP_ROW); } c1 = GetTagAtRest(LEFT_REEL, 3); c2 = GetTagAtRest(MIDDLE_REEL, 3); c3 = GetTagAtRest(RIGHT_REEL, 3); match = GetMatchFromSymbolsInRow(c1, c2, c3); - if (match != SLOT_MACHINE_MATCHED_NONE) + if (match != MATCHED_NONE) { - if (match == SLOT_MACHINE_MATCHED_1CHERRY) - match = SLOT_MACHINE_MATCHED_2CHERRY; - sSlotMachine->payout += gSlotPayouts[match]; - sSlotMachine->matchedSymbols |= gSlotMatchFlags[match]; + if (match == MATCHED_1CHERRY) + match = MATCHED_2CHERRY; + sSlotMachine->payout += sSlotPayouts[match]; + sSlotMachine->matchedSymbols |= sSlotMatchFlags[match]; FlashMatchLine(MATCH_BOTTOM_ROW); } } @@ -1829,12 +1837,12 @@ static void CheckMatch_Diagonals(void) c2 = GetTagAtRest(MIDDLE_REEL, 2); c3 = GetTagAtRest(RIGHT_REEL, 3); match = GetMatchFromSymbolsInRow(c1, c2, c3); - if (match != SLOT_MACHINE_MATCHED_NONE) + if (match != MATCHED_NONE) { - if (match != SLOT_MACHINE_MATCHED_1CHERRY) + if (match != MATCHED_1CHERRY) { - sSlotMachine->payout += gSlotPayouts[match]; - sSlotMachine->matchedSymbols |= gSlotMatchFlags[match]; + sSlotMachine->payout += sSlotPayouts[match]; + sSlotMachine->matchedSymbols |= sSlotMatchFlags[match]; } FlashMatchLine(MATCH_NWSE_DIAG); } @@ -1842,12 +1850,12 @@ static void CheckMatch_Diagonals(void) c2 = GetTagAtRest(MIDDLE_REEL, 2); c3 = GetTagAtRest(RIGHT_REEL, 1); match = GetMatchFromSymbolsInRow(c1, c2, c3); - if (match != SLOT_MACHINE_MATCHED_NONE) + if (match != MATCHED_NONE) { - if (match != SLOT_MACHINE_MATCHED_1CHERRY) + if (match != MATCHED_1CHERRY) { - sSlotMachine->payout += gSlotPayouts[match]; - sSlotMachine->matchedSymbols |= gSlotMatchFlags[match]; + sSlotMachine->payout += sSlotPayouts[match]; + sSlotMachine->matchedSymbols |= sSlotMatchFlags[match]; } FlashMatchLine(MATCH_NESW_DIAG); } @@ -1856,14 +1864,14 @@ static void CheckMatch_Diagonals(void) static u8 GetMatchFromSymbolsInRow(u8 c1, u8 c2, u8 c3) { if (c1 == c2 && c1 == c3) - return gSym2Match[c1]; + return sSymToMatch[c1]; if (c1 == GFXTAG_7_RED && c2 == GFXTAG_7_RED && c3 == GFXTAG_7_BLUE) - return SLOT_MACHINE_MATCHED_777_MIXED; + return MATCHED_777_MIXED; if (c1 == GFXTAG_7_BLUE && c2 == GFXTAG_7_BLUE && c3 == GFXTAG_7_RED) - return SLOT_MACHINE_MATCHED_777_MIXED; + return MATCHED_777_MIXED; if (c1 == GFXTAG_CHERRY) - return SLOT_MACHINE_MATCHED_1CHERRY; - return SLOT_MACHINE_MATCHED_NONE; + return MATCHED_1CHERRY; + return MATCHED_NONE; } static void AwardPayout(void) @@ -1881,7 +1889,7 @@ static bool8 IsFinalTask_RunAwardPayoutActions(void) static void RunAwardPayoutActions(u8 taskId) { - while (AwardPayoutActions[gTasks[taskId].data[0]](&gTasks[taskId])) + while (sAwardPayoutActions[gTasks[taskId].data[0]](&gTasks[taskId])) ; } @@ -1967,7 +1975,7 @@ static u8 GetNearbyReelTimeTag(s16 n) s16 newPosition = (sSlotMachine->reeltimePosition + n) % 6; if (newPosition < 0) newPosition += 6; - return gReelTimeTags[newPosition]; + return sReelTimeTags[newPosition]; } static void AdvanceSlotReel(u8 reelIndex, s16 value) @@ -2040,7 +2048,7 @@ static bool8 IsSlotReelMoving(u8 reelIndex) static void RunSlotReelActions(u8 taskId) { - while (SlotReelActions[gTasks[taskId].data[0]](&gTasks[taskId])) + while (sSlotReelActions[gTasks[taskId].data[0]](&gTasks[taskId])) ; } @@ -2061,14 +2069,14 @@ static bool8 SlotReelAction_Spin(struct Task *task) static bool8 SlotReelAction_DecideWhereToStop(struct Task *task) { task->data[0]++; - // initialize data for that reel --> these will be changed if gBiasTags can be lined up + // initialize data for that reel --> these will be changed if sBiasTags can be lined up sSlotMachine->winnerRows[task->data[15]] = 0; sSlotMachine->reelExtraTurns[task->data[15]] = 0; - if (sSlotMachine->reelTimeSpinsLeft == 0 && (sSlotMachine->luckyFlags == 0 || sSlotMachine->luckySpinsLeft == 0 || !DecideReelTurns_BiasTag[task->data[15]]())) + if (sSlotMachine->reelTimeSpinsLeft == 0 && (sSlotMachine->luckyFlags == 0 || sSlotMachine->luckySpinsLeft == 0 || !sDecideReelTurns_BiasTag[task->data[15]]())) { sSlotMachine->luckySpinsLeft = 0; - DecideReelTurns_NoBiasTag[task->data[15]](); + sDecideReelTurns_NoBiasTag[task->data[15]](); } task->data[1] = sSlotMachine->reelExtraTurns[task->data[15]]; return TRUE; @@ -2077,10 +2085,10 @@ static bool8 SlotReelAction_DecideWhereToStop(struct Task *task) // go to next tag and then do any additional turns static bool8 SlotReelAction_MoveToStop(struct Task *task) { - u16 reelStopShocks[ARRAY_COUNT(ReelStopShocks)]; + u16 reelStopShocks[ARRAY_COUNT(sReelStopShocks)]; s16 reelPixelPos; - memcpy(reelStopShocks, ReelStopShocks, sizeof(ReelStopShocks)); + memcpy(reelStopShocks, sReelStopShocks, sizeof(sReelStopShocks)); reelPixelPos = sSlotMachine->reelPixelOffsets[task->data[15]] % REEL_SYMBOL_HEIGHT; if (reelPixelPos != 0) reelPixelPos = AdvanceSlotReelToNextTag(task->data[15], sSlotMachine->reelIncrement); @@ -2125,7 +2133,7 @@ static bool8 DecideReelTurns_BiasTag_Reel1(void) tag1 = GFXTAG_7_RED; tag2 = GFXTAG_7_BLUE; } - return DecideReelTurns_BiasTag_Reel1_Bets[sSlotMachine->bet - 1](tag1, tag2); + return sDecideReelTurns_BiasTag_Reel1_Bets[sSlotMachine->bet - 1](tag1, tag2); } static bool8 AreTagsAtPosition_Reel1(s16 pos, u8 tag1, u8 tag2) @@ -2227,7 +2235,7 @@ static bool8 DecideReelTurns_BiasTag_Reel1_Bet2or3(u8 tag1, u8 tag2) static bool8 DecideReelTurns_BiasTag_Reel2(void) { - return DecideReelTurns_BiasTag_Reel2_Bets[sSlotMachine->bet - 1](); + return sDecideReelTurns_BiasTag_Reel2_Bets[sSlotMachine->bet - 1](); } static bool8 DecideReelTurns_BiasTag_Reel2_Bet1or2(void) @@ -2298,7 +2306,7 @@ static bool8 DecideReelTurns_BiasTag_Reel3(void) biasTag = GFXTAG_7_BLUE; } } - return DecideReelTurns_BiasTag_Reel3_Bets[sSlotMachine->bet - 1](biasTag); + return sDecideReelTurns_BiasTag_Reel3_Bets[sSlotMachine->bet - 1](biasTag); } static bool8 DecideReelTurns_BiasTag_Reel3_Bet1or2(u8 biasTag) @@ -2373,7 +2381,7 @@ static bool8 IsBiasTag777_SwitchColor(u8 *biasTagPtr) static void DecideReelTurns_NoBiasTag_Reel2(void) { - DecideReelTurns_NoBiasTag_Reel2_Bets[sSlotMachine->bet - 1](); + sDecideReelTurns_NoBiasTag_Reel2_Bets[sSlotMachine->bet - 1](); } // only does stuff if the biasTag is one of the 7's, plus other conditions @@ -2526,7 +2534,7 @@ static bool8 TagsDontMatchOrHaveAny7s(u8 tag1, u8 tag2, u8 tag3) static void DecideReelTurns_NoBiasTag_Reel3(void) { - DecideReelTurns_NoBiasTag_Reel3_Bets[sSlotMachine->bet - 1](); + sDecideReelTurns_NoBiasTag_Reel3_Bets[sSlotMachine->bet - 1](); } static void DecideReelTurns_NoBiasTag_Reel3_Bet1(void) @@ -2702,14 +2710,14 @@ static void sub_8103CC8(struct Task *task, u8 taskId) DestroyTask(taskId); } -static void LightenMatchLine(u8 tileId) +static void LightenMatchLine(u8 matchLineId) { - LoadPalette(sLitMatchLinePalTable[tileId], sMatchLinePalOffsets[tileId], 2); + LoadPalette(sLitMatchLinePalTable[matchLineId], sMatchLinePalOffsets[matchLineId], 2); } -static void DarkenMatchLine(u8 tileId) +static void DarkenMatchLine(u8 matchLineId) { - LoadPalette(sDarkMatchLinePalTable[tileId], sMatchLinePalOffsets[tileId], 2); + LoadPalette(sDarkMatchLinePalTable[matchLineId], sMatchLinePalOffsets[matchLineId], 2); } // light up the match line for each bet by the player @@ -2853,7 +2861,7 @@ static bool8 TryStopSlotMachineLights(void) if (gTasks[taskId].sFlashState == 0) { DestroyTask(taskId); - LoadPalette(gUnknown_083EDDAC, 0x10, 0x20); + LoadPalette(sSlotMachineMenu_Pal, 0x10, 0x20); return TRUE; } return FALSE; @@ -4502,7 +4510,7 @@ static void LoadMenuGfx(void) LZDecompressWram(gSlotMachineMenu_Gfx, sMenuGfx); LoadBgTiles(2, sMenuGfx, 0x2200, 0); LoadPalette(gSlotMachineMenu_Pal, 0, 160); - LoadPalette(gPalette_83EDE24, 208, 32); + LoadPalette(sUnkPalette, 208, 32); } static void sub_81064B8(void) @@ -4663,7 +4671,7 @@ static void AllocDigitalDisplayGfx(void) static const u8 sReelSymbolTileTags[NUM_REELS][SYMBOLS_PER_REEL] = { - { + [LEFT_REEL] = { GFXTAG_7_RED, GFXTAG_CHERRY, GFXTAG_AZURILL, @@ -4686,7 +4694,7 @@ static const u8 sReelSymbolTileTags[NUM_REELS][SYMBOLS_PER_REEL] = GFXTAG_LOTAD, GFXTAG_REPLAY }, - { + [MIDDLE_REEL] = { GFXTAG_7_RED, GFXTAG_CHERRY, GFXTAG_REPLAY, @@ -4709,7 +4717,7 @@ static const u8 sReelSymbolTileTags[NUM_REELS][SYMBOLS_PER_REEL] = GFXTAG_REPLAY, GFXTAG_CHERRY }, - { + [RIGHT_REEL] = { GFXTAG_7_RED, GFXTAG_POWER, GFXTAG_7_BLUE, @@ -4734,17 +4742,17 @@ static const u8 sReelSymbolTileTags[NUM_REELS][SYMBOLS_PER_REEL] = }, }; -static const u8 gReelTimeTags[] = { +static const u8 sReelTimeTags[] = { 1, 0, 5, 4, 3, 2 }; -static const s16 gInitialReelPositions[NUM_REELS][2] = { - {0, 6}, - {0, 10}, - {0, 2} +static const s16 sInitialReelPositions[NUM_REELS][2] = { + [LEFT_REEL] = {0, 6}, + [MIDDLE_REEL] = {0, 10}, + [RIGHT_REEL] = {0, 2} }; -static const u8 gLuckyRoundProbabilities[][3] = { +static const u8 sLuckyRoundProbabilities[][3] = { {1, 1, 12}, {1, 1, 14}, {2, 2, 14}, @@ -4753,13 +4761,13 @@ static const u8 gLuckyRoundProbabilities[][3] = { {3, 3, 16} }; -static const u8 gLuckyFlagProbabilities_Top3[][6] = { +static const u8 sLuckyFlagProbabilities_Top3[][6] = { {25, 25, 30, 40, 40, 50}, {25, 25, 30, 30, 35, 35}, {25, 25, 30, 25, 25, 30} }; -static const u8 gLuckyFlagProbabilities_NotTop3[][6] = { +static const u8 sLuckyFlagProbabilities_NotTop3[][6] = { {20, 25, 25, 20, 25, 25}, {12, 15, 15, 18, 19, 22}, {25, 25, 25, 30, 30, 40}, @@ -4767,7 +4775,7 @@ static const u8 gLuckyFlagProbabilities_NotTop3[][6] = { {40, 40, 35, 35, 40, 40} }; -static const u8 gReeltimeProbabilities_UnluckyGame[][17] = { +static const u8 sReeltimeProbabilities_UnluckyGame[][17] = { {243, 243, 243, 80, 80, 80, 80, 40, 40, 40, 40, 40, 40, 5, 5, 5, 5}, { 5, 5, 5, 150, 150, 150, 150, 130, 130, 130, 130, 130, 130, 100, 100, 100, 5}, { 4, 4, 4, 20, 20, 20, 20, 80, 80, 80, 80, 80, 80, 100, 100, 100, 40}, @@ -4776,7 +4784,7 @@ static const u8 gReeltimeProbabilities_UnluckyGame[][17] = { { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6} }; -static const u8 gReelTimeProbabilities_LuckyGame[][17] = { +static const u8 sReelTimeProbabilities_LuckyGame[][17] = { { 243, 243, 243, 200, 200, 200, 200, 160, 160, 160, 160, 160, 160, 70, 70, 70, 5}, { 5, 5, 5, 25, 25, 25, 25, 5, 5, 5, 5, 5, 5, 2, 2, 2, 6}, { 4, 4, 4, 25, 25, 25, 25, 30, 30, 30, 30, 30, 30, 40, 40, 40, 35}, @@ -4785,11 +4793,11 @@ static const u8 gReelTimeProbabilities_LuckyGame[][17] = { { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 4, 4, 60} }; -static const u16 gProbabilityTable_SkipToReeltimeAction14[] = { +static const u16 sProbabilityTable_SkipToReeltimeAction14[] = { 128, 175, 200, 225, 256 }; -static const u16 gReelIncrementTable[][2] = { +static const u16 sReelIncrementTable[][2] = { {10, 5}, {10, 10}, {10, 15}, @@ -4797,85 +4805,93 @@ static const u16 gReelIncrementTable[][2] = { {10, 35} }; -static const u16 gReelTimeBonusIncrementTable[] = { +static const u16 sReelTimeBonusIncrementTable[] = { 0, 5, 10, 15, 20 }; // tentative name -static const u8 gBiasTags[] = { +static const u8 sBiasTags[] = { GFXTAG_REPLAY, GFXTAG_CHERRY, GFXTAG_LOTAD, GFXTAG_AZURILL, GFXTAG_POWER, GFXTAG_7_RED, GFXTAG_7_RED, GFXTAG_7_RED }; -static const u16 gLuckyFlagSettings_Top3[] = { +static const u16 sLuckyFlagSettings_Top3[] = { LUCKY_BIAS_777, LUCKY_BIAS_REELTIME, LUCKY_BIAS_MIXED_777 }; -static const u16 gLuckyFlagSettings_NotTop3[] = { +static const u16 sLuckyFlagSettings_NotTop3[] = { LUCKY_BIAS_POWER, LUCKY_BIAS_AZURILL, LUCKY_BIAS_LOTAD, LUCKY_BIAS_CHERRY, LUCKY_BIAS_REPLAY }; -static const u8 gSym2Match[] = { - SLOT_MACHINE_MATCHED_777_RED, - SLOT_MACHINE_MATCHED_777_BLUE, - SLOT_MACHINE_MATCHED_AZURILL, - SLOT_MACHINE_MATCHED_LOTAD, - SLOT_MACHINE_MATCHED_1CHERRY, - SLOT_MACHINE_MATCHED_POWER, - SLOT_MACHINE_MATCHED_REPLAY +static const u8 sSymToMatch[] = { + [GFXTAG_7_RED] = MATCHED_777_RED, + [GFXTAG_7_BLUE] = MATCHED_777_BLUE, + [GFXTAG_AZURILL] = MATCHED_AZURILL, + [GFXTAG_LOTAD] = MATCHED_LOTAD, + [GFXTAG_CHERRY] = MATCHED_1CHERRY, + [GFXTAG_POWER] = MATCHED_POWER, + [GFXTAG_REPLAY] = MATCHED_REPLAY }; -static const u16 gSlotMatchFlags[] = { - 1 << SLOT_MACHINE_MATCHED_1CHERRY, - 1 << SLOT_MACHINE_MATCHED_2CHERRY, - 1 << SLOT_MACHINE_MATCHED_REPLAY, - 1 << SLOT_MACHINE_MATCHED_LOTAD, - 1 << SLOT_MACHINE_MATCHED_AZURILL, - 1 << SLOT_MACHINE_MATCHED_POWER, - 1 << SLOT_MACHINE_MATCHED_777_MIXED, - 1 << SLOT_MACHINE_MATCHED_777_RED, - 1 << SLOT_MACHINE_MATCHED_777_BLUE +static const u16 sSlotMatchFlags[] = { + [MATCHED_1CHERRY] = 1 << MATCHED_1CHERRY, + [MATCHED_2CHERRY] = 1 << MATCHED_2CHERRY, + [MATCHED_REPLAY] = 1 << MATCHED_REPLAY, + [MATCHED_LOTAD] = 1 << MATCHED_LOTAD, + [MATCHED_AZURILL] = 1 << MATCHED_AZURILL, + [MATCHED_POWER] = 1 << MATCHED_POWER, + [MATCHED_777_MIXED] = 1 << MATCHED_777_MIXED, + [MATCHED_777_RED] = 1 << MATCHED_777_RED, + [MATCHED_777_BLUE] = 1 << MATCHED_777_BLUE }; -static const u16 gSlotPayouts[] = { - 2, 4, 0, 6, 12, 3, 90, 300, 300 +static const u16 sSlotPayouts[] = { + [MATCHED_1CHERRY] = 2, + [MATCHED_2CHERRY] = 4, + [MATCHED_REPLAY] = 0, + [MATCHED_LOTAD] = 6, + [MATCHED_AZURILL] = 12, + [MATCHED_POWER] = 3, + [MATCHED_777_MIXED] = 90, + [MATCHED_777_RED] = 300, + [MATCHED_777_BLUE] = 300 }; static const s16 sDigitalDisplay_SpriteCoords[][2] = { - [DIG_DISPINFO_INSERT] = { 208, 56}, - [DIG_DISPINFO_STOP_S] = { 184, 0}, - [DIG_DISPINFO_STOP_T] = { 200, 8}, - [DIG_DISPINFO_STOP_O] = { 216, 16}, - [DIG_DISPINFO_STOP_P] = { 232, 24}, - [DIG_DISPINFO_A_BUTTON_STOP] = { 208, 72}, - [DIG_DISPINFO_POKE_BALL_ROCKING] = { 208, 8}, - [DIG_DISPINFO_WIN] = { 208, 64}, - [DIG_DISPINFO_LOSE] = { 208, 56}, + [DIG_DISPINFO_INSERT] = { 208, 56}, + [DIG_DISPINFO_STOP_S] = { 184, 0}, + [DIG_DISPINFO_STOP_T] = { 200, 8}, + [DIG_DISPINFO_STOP_O] = { 216, 16}, + [DIG_DISPINFO_STOP_P] = { 232, 24}, + [DIG_DISPINFO_A_BUTTON_STOP] = { 208, 72}, + [DIG_DISPINFO_POKE_BALL_ROCKING] = { 208, 8}, + [DIG_DISPINFO_WIN] = { 208, 64}, + [DIG_DISPINFO_LOSE] = { 208, 56}, [DIG_DISPINFO_SMOKE_NW] = { 192, 88}, [DIG_DISPINFO_SMOKE_NE] = { 224, 88}, [DIG_DISPINFO_SMOKE_SW] = { 192, 120}, [DIG_DISPINFO_SMOKE_SE] = { 224, 120}, - [DIG_DISPINFO_REEL] = { 144, 56}, - [DIG_DISPINFO_TIME] = { 272, 88}, + [DIG_DISPINFO_REEL] = { 144, 56}, + [DIG_DISPINFO_TIME] = { 272, 88}, [DIG_DISPINFO_NUMBER] = { 168, 112}, - [DIG_DISPINFO_DPAD] = { 208, 84}, + [DIG_DISPINFO_DPAD] = { 208, 84}, [DIG_DISPINFO_POKE_BALL_SHINING] = { 208, 112}, - [DIG_DISPINFO_REG_R] = { 188, 52}, - [DIG_DISPINFO_REG_E] = { 208, 52}, - [DIG_DISPINFO_REG_G] = { 228, 52}, - [DIG_DISPINFO_REG_BONUS_B] = { 184, 72}, - [DIG_DISPINFO_REG_BONUS_O] = { 196, 72}, - [DIG_DISPINFO_REG_BONUS_N] = { 208, 72}, - [DIG_DISPINFO_REG_BONUS_U] = { 220, 72}, - [DIG_DISPINFO_REG_BONUS_S] = { 232, 72}, - [DIG_DISPINFO_BIG_B] = { 188, 52}, - [DIG_DISPINFO_BIG_I] = { 208, 52}, - [DIG_DISPINFO_BIG_G] = { 228, 52}, - [DIG_DISPINFO_BIG_BONUS_B] = { 184, 72}, - [DIG_DISPINFO_BIG_BONUS_O] = { 196, 72}, - [DIG_DISPINFO_BIG_BONUS_N] = { 208, 72}, - [DIG_DISPINFO_BIG_BONUS_U] = { 220, 72}, - [DIG_DISPINFO_BIG_BONUS_S] = { 232, 72}, - [DIG_DISPINFO_A_BUTTON_START] = { 0, 0} // Initially offscreen + [DIG_DISPINFO_REG_R] = { 188, 52}, + [DIG_DISPINFO_REG_E] = { 208, 52}, + [DIG_DISPINFO_REG_G] = { 228, 52}, + [DIG_DISPINFO_REG_BONUS_B] = { 184, 72}, + [DIG_DISPINFO_REG_BONUS_O] = { 196, 72}, + [DIG_DISPINFO_REG_BONUS_N] = { 208, 72}, + [DIG_DISPINFO_REG_BONUS_U] = { 220, 72}, + [DIG_DISPINFO_REG_BONUS_S] = { 232, 72}, + [DIG_DISPINFO_BIG_B] = { 188, 52}, + [DIG_DISPINFO_BIG_I] = { 208, 52}, + [DIG_DISPINFO_BIG_G] = { 228, 52}, + [DIG_DISPINFO_BIG_BONUS_B] = { 184, 72}, + [DIG_DISPINFO_BIG_BONUS_O] = { 196, 72}, + [DIG_DISPINFO_BIG_BONUS_N] = { 208, 72}, + [DIG_DISPINFO_BIG_BONUS_U] = { 220, 72}, + [DIG_DISPINFO_BIG_BONUS_S] = { 232, 72}, + [DIG_DISPINFO_A_BUTTON_START] = { 0, 0} // Initially offscreen }; static const SpriteCallback sDigitalDisplay_SpriteCallbacks[] = { @@ -7031,18 +7047,18 @@ static const struct SpriteSheet sSlotMachineSpriteSheets[22] = static const u8 *const sReelBackground_Tilemap = gSlotMachineReelBackground_Tilemap; -static const u8 sUnused2[][2] = +static const u16 sUnused[] = { - {0x7B, 0x6F}, - {0x68, 0x69}, - {0xAB, 0x36}, - {0xFF, 0x7F}, - {0x50, 0x57}, - {0xC0, 0x7E}, - {0xBA, 2}, - {0xBA, 2}, - {0xFD, 1}, - {0xFD, 1} + 0x6F7B, + 0x6968, + 0x36AB, + 0x7FFF, + 0x5750, + 0x7EC0, + 0x02BA, + 0x02BA, + 0x01FD, + 0x01FD, }; // The Bet 2 and 3 match line palettes are duplicated unnecessarily @@ -7077,7 +7093,7 @@ static const u8 sMatchLinePalOffsets[NUM_MATCH_LINES] = { [MATCH_NESW_DIAG] = 77 // Doesn't matter as both are identical }; -static const u8 sBetToMatchLineIds[][2] = +static const u8 sBetToMatchLineIds[MAX_BET][2] = { {MATCH_MIDDLE_ROW, MATCH_MIDDLE_ROW}, // Bet 1 {MATCH_TOP_ROW, MATCH_BOTTOM_ROW}, // Bet 2 @@ -7097,7 +7113,7 @@ static const u16 *const sFlashingLightsPalTable[] = sFlashingLightsOutside_Pal, }; -static const u16 *const gUnknown_083EDDAC = {gSlotMachineMenu_Pal + 16}; +static const u16 *const sSlotMachineMenu_Pal = {gSlotMachineMenu_Pal + 16}; static const u16 sPokeballShining0_Pal[] = INCBIN_U16("graphics/slot_machine/pokeball_shining_0.gbapal"); static const u16 sPokeballShining1_Pal[] = INCBIN_U16("graphics/slot_machine/pokeball_shining_1.gbapal"); @@ -7111,7 +7127,7 @@ static const u16 *const sPokeballShiningPalTable[] = }; static const u16 *const sDigitalDisplay_Pal = gSlotMachineDigitalDisplay_Pal; -static const u16 gPalette_83EDE24[] = INCBIN_U16("graphics/slot_machine/85A8524.bin"); +static const u16 sUnkPalette[] = INCBIN_U16("graphics/slot_machine/85A8524.bin"); static const struct SpritePalette sSlotMachineSpritePalettes[] = { From 93be3a08ce53fd3364fdb055e86269aa32e7fc4f Mon Sep 17 00:00:00 2001 From: PokeCodec Date: Tue, 28 Jul 2020 15:31:08 -0400 Subject: [PATCH 033/101] Match --- src/event_object_movement.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/event_object_movement.c b/src/event_object_movement.c index 4b275a9702..af34829695 100644 --- a/src/event_object_movement.c +++ b/src/event_object_movement.c @@ -1205,7 +1205,8 @@ static u8 InitObjectEventStateFromTemplate(struct ObjectEventTemplate *template, { struct ObjectEvent *objectEvent; u8 objectEventId; - s16 x, y; + s16 x; + s16 y; if (GetAvailableObjectEventId(template->localId, mapNum, mapGroup, &objectEventId)) return OBJECT_EVENTS_COUNT; @@ -1231,6 +1232,7 @@ static u8 InitObjectEventStateFromTemplate(struct ObjectEventTemplate *template, objectEvent->range.as_nybbles.x = template->movementRangeX; objectEvent->range.as_nybbles.y = template->movementRangeY; objectEvent->trainerType = template->trainerType; + objectEvent->mapNum = mapNum; //redundant, but needed to match objectEvent->trainerRange_berryTreeId = template->trainerRange_berryTreeId; objectEvent->previousMovementDirection = gInitialMovementTypeFacingDirections[template->movementType]; SetObjectEventDirection(objectEvent, objectEvent->previousMovementDirection); From 1f4813bfd2c9774b4bcbb83e6b27c994d7ad478c Mon Sep 17 00:00:00 2001 From: GriffinR Date: Tue, 28 Jul 2020 17:34:44 -0400 Subject: [PATCH 034/101] Document slot machine funcs --- include/constants/slot_machine.h | 2 +- src/slot_machine.c | 1033 ++++++++++++++++-------------- 2 files changed, 545 insertions(+), 490 deletions(-) diff --git a/include/constants/slot_machine.h b/include/constants/slot_machine.h index 2b7c68793f..81848f2084 100644 --- a/include/constants/slot_machine.h +++ b/include/constants/slot_machine.h @@ -3,4 +3,4 @@ #define SLOT_MACHINE_COUNT 12 -#endif // GUARD_CONSTANTS_SLOT_MACHINE_H \ No newline at end of file +#endif // GUARD_CONSTANTS_SLOT_MACHINE_H diff --git a/src/slot_machine.c b/src/slot_machine.c index dcbeab736e..3fde76ab0a 100644 --- a/src/slot_machine.c +++ b/src/slot_machine.c @@ -114,26 +114,26 @@ enum { enum { SLOT_ACTION_UNFADE, - SLOT_ACTION_1, - SLOT_ACTION_2, - SLOT_ACTION_3, - SLOT_ACTION_4, + SLOT_ACTION_WAIT_FADE, + SLOT_ACTION_READY_NEW_SPIN, + SLOT_ACTION_READY_NEW_RT_SPIN, + SLOT_ACTION_ASK_INSERT_BET, SLOT_ACTION_BET_INPUT, - SLOT_ACTION_6, - SLOT_ACTION_7, - SLOT_ACTION_8, - SLOT_ACTION_9, - SLOT_ACTION_10, - SLOT_ACTION_11, - SLOT_ACTION_12, - SLOT_ACTION_13, - SLOT_ACTION_14, - SLOT_ACTION_15, - SLOT_ACTION_16, - SLOT_ACTION_17, - SLOT_ACTION_18, - SLOT_ACTION_19, - SLOT_ACTION_20, + SLOT_ACTION_MSG_NEED_3_COINS, + SLOT_ACTION_WAIT_MSG_NEED_3_COINS, + SLOT_ACTION_WAIT_INFO_BOX, + SLOT_ACTION_START_SPIN, + SLOT_ACTION_START_RT_SPIN, + SLOT_ACTION_SET_LUCKY_SPINS, + SLOT_ACTION_AWAIT_REEL_STOP, + SLOT_ACTION_AWAIT_ALL_REELS_STOP, + SLOT_ACTION_CHECK_MATCHES, + SLOT_ACTION_WAIT_PAYOUT, + SLOT_ACTION_END_PAYOUT, + SLOT_ACTION_MATCHED_POWER, + SLOT_ACTION_WAIT_RT_ANIM, + SLOT_ACTION_RESET_BET_TILES, + SLOT_ACTION_NO_MATCHES, SLOT_ACTION_ASK_QUIT, SLOT_ACTION_HANDLE_QUIT_INPUT, SLOT_ACTION_MSG_MAX_COINS, @@ -144,6 +144,14 @@ enum { SLOT_ACTION_FREE, }; +enum { + REEL_ACTION_STILL, + REEL_ACTION_SPIN, + REEL_ACTION_STOP, + REEL_ACTION_STOP_MOVE, + REEL_ACTION_STOP_SHAKE, +}; + #define DIG_SPRITE_DUMMY {255, 0, 0} // Sprite template IDs for the digital display in the right panel @@ -235,7 +243,7 @@ struct SlotMachine /*0x03*/ u8 luckyGame; /*0x04*/ u8 luckyFlags; /*0x05*/ u8 reelTimeDraw; - /*0x06*/ u8 luckySpinsLeft; // tentative + /*0x06*/ u8 isLuckySpin; /*0x07*/ u8 biasTag; /*0x08*/ u16 matchedSymbols; /*0x0A*/ u8 reelTimeSpinsLeft; @@ -251,7 +259,7 @@ struct SlotMachine /*0x1C*/ s16 reelPixelOffsets[NUM_REELS]; /*0x22*/ u16 reelPixelOffsetsWhileStopping[NUM_REELS]; /*0x28*/ s16 reelPositions[NUM_REELS]; - /*0x2E*/ s16 reelExtraTurns[3]; + /*0x2E*/ s16 reelExtraTurns[NUM_REELS]; /*0x34*/ s16 winnerRows[NUM_REELS]; /*0x3A*/ u8 slotReelTasks[NUM_REELS]; /*0x3D*/ u8 digDisplayTaskId; @@ -284,56 +292,54 @@ struct DigitalDisplaySprite }; static void CB2_SlotMachineSetup(void); -static void CB2_SlotMachineLoop(void); -static void PlaySlotMachine_Internal(u8 slotMachineIndex, MainCallback cb); -static void SlotMachineDummyTask(u8 taskId); -static void SlotMachineSetup_0_0(void); -static void SlotMachineSetup_6_2(void); -static void SlotMachineSetup_1_0(void); -static void SlotMachineSetup_2_0(void); -static void SlotMachineSetup_2_1(void); -static void SlotMachineSetup_0_1(void); -static void SlotMachineSetup_3_0(void); -static void SlotMachineSetup_4_0(void); -static void SlotMachineSetup_5_0(void); -static void SlotMachineSetup_6_0(void); -static void SlotMachineSetup_6_1(void); +static void CB2_SlotMachine(void); +static void PlaySlotMachine_Internal(u8, MainCallback); +static void SlotMachineDummyTask(u8); +static void SlotMachineSetup_InitBgsWindows(void); +static void SlotMachineSetup_InitVRAM(void); +static void SlotMachineSetup_InitOAM(void); +static void SlotMachineSetup_InitGpuRegs(void); +static void SlotMachineSetup_InitSlotMachineStruct(void); +static void SlotMachineSetup_InitPalsSpritesTasks(void); +static void SlotMachineSetup_InitTilemaps(void); +static void SlotMachineSetup_LoadGfxAndTilemaps(void); +static void SlotMachineSetup_InitVBlank(void); static void AllocDigitalDisplayGfx(void); static void SetDigitalDisplayImagePtrs(void); -static void SlotMachineSetup_10_0(void); -static void SlotMachineSetupGameplayTasks(void); -static void GameplayTasks_Slots(void); +static void CreateSlotMachineSprites(void); +static void CreateGameplayTasks(void); +static void CreateSlotMachineTask(void); static void DestroyDigitalDisplayScene(void); -static void RunSlotActions(u8 taskId); -static bool8 SlotAction_UnfadeScreen(struct Task *task); -static bool8 SlotAction_WaitForUnfade(struct Task *task); -static bool8 SlotAction_SetSlotMachineVars(struct Task *task); -static bool8 SlotAction3(struct Task *task); -static bool8 SlotAction4(struct Task *task); -static bool8 SlotAction_HandleBetInput(struct Task *task); -static bool8 SlotAction_PrintYouDontHaveThreeCoins(struct Task *task); -static bool8 SlotAction_ExitYouDontHaveThreeCoinsMessage(struct Task *task); -static bool8 SlotAction_GivingInformation(struct Task *task); -static bool8 SlotAction9(struct Task *task); -static bool8 SlotAction10(struct Task *task); -static bool8 SlotAction_SetLuckySpins(struct Task *task); -static bool8 SlotAction_AwaitReelStop(struct Task *task); -static bool8 SlotAction_WaitForAllReelsToStop(struct Task *task); -static bool8 SlotAction_CheckMatches(struct Task *task); -static bool8 SlotAction_WaitForPayoutToBeAwarded(struct Task *task); -static bool8 SlotAction_EndOfRoll(struct Task *task); -static bool8 SlotAction_MatchedPower(struct Task *task); -static bool8 SlotAction18(struct Task *task); -static bool8 SlotAction_Loop(struct Task *task); -static bool8 SlotAction_NoMatches(struct Task *task); -static bool8 SlotAction_PrintQuitTheGame(struct Task *task); -static bool8 SlotAction_HandleQuitGameInput(struct Task *task); -static bool8 SlotAction_PrintMessage_9999Coins(struct Task *task); -static bool8 SlotAction_WaitMessage_9999Coins(struct Task *task); -static bool8 SlotAction_PrintMessage_NoMoreCoins(struct Task *task); -static bool8 SlotAction_WaitMessage_NoMoreCoins(struct Task *task); -static bool8 SlotAction_EndGame(struct Task *task); -static bool8 SlotAction_FreeDataStructures(struct Task *task); +static void Task_SlotMachine(u8); +static bool8 SlotAction_UnfadeScreen(struct Task *); +static bool8 SlotAction_WaitForUnfade(struct Task *); +static bool8 SlotAction_ReadyNewSpin(struct Task *); +static bool8 SlotAction_ReadyNewReelTimeSpin(struct Task *); +static bool8 SlotAction_AskInsertBet(struct Task *); +static bool8 SlotAction_HandleBetInput(struct Task *); +static bool8 SlotAction_PrintMsg_Need3Coins(struct Task *); +static bool8 SlotAction_WaitMsg_Need3Coins(struct Task *); +static bool8 SlotAction_WaitForInfoBox(struct Task *); +static bool8 SlotAction_StartSpin(struct Task *); +static bool8 SlotAction_StartReelTimeSpin(struct Task *); +static bool8 SlotAction_SetLuckySpins(struct Task *); +static bool8 SlotAction_AwaitReelStop(struct Task *); +static bool8 SlotAction_WaitForAllReelsToStop(struct Task *); +static bool8 SlotAction_CheckMatches(struct Task *); +static bool8 SlotAction_WaitForPayoutToBeAwarded(struct Task *); +static bool8 SlotAction_EndPayout(struct Task *); +static bool8 SlotAction_MatchedPower(struct Task *); +static bool8 SlotAction_WaitReelTimeAnim(struct Task *); +static bool8 SlotAction_ResetBetTiles(struct Task *); +static bool8 SlotAction_NoMatches(struct Task *); +static bool8 SlotAction_AskQuit(struct Task *); +static bool8 SlotAction_HandleQuitInput(struct Task *); +static bool8 SlotAction_PrintMsg_9999Coins(struct Task *); +static bool8 SlotAction_WaitMsg_9999Coins(struct Task *); +static bool8 SlotAction_PrintMsg_NoMoreCoins(struct Task *); +static bool8 SlotAction_WaitMsg_NoMoreCoins(struct Task *); +static bool8 SlotAction_EndGame(struct Task *); +static bool8 SlotAction_FreeDataStructures(struct Task *); static void DrawLuckyFlags(void); static void SetLuckySpins(void); static bool8 IsThisRoundLucky(void); @@ -344,33 +350,33 @@ static void CheckMatch(void); static void CheckMatch_CenterRow(void); static void CheckMatch_TopAndBottom(void); static void CheckMatch_Diagonals(void); -static u8 GetMatchFromSymbolsInRow(u8 c1, u8 c2, u8 c3); +static u8 GetMatchFromSymbols(u8, u8, u8); static void AwardPayout(void); -static void RunAwardPayoutActions(u8 taskId); +static void RunAwardPayoutActions(u8); static bool8 IsFinalTask_RunAwardPayoutActions(void); -static bool8 AwardPayoutAction0(struct Task *task); -static bool8 AwardPayoutAction_GivePayoutToPlayer(struct Task *task); -static bool8 AwardPayoutAction_FreeTask(struct Task *task); -static u8 GetTagAtRest(u8 x, s16 y); -static void GameplayTask_StopSlotReel(void); -static void ReelTasks_SetUnkTaskData(u8 a0); -static void sub_8102E1C(u8 a0); -static bool8 IsSlotReelMoving(u8 a0); -static void RunSlotReelActions(u8 taskId); -static bool8 SlotReelAction_StayStill(struct Task *task); -static bool8 SlotReelAction_Spin(struct Task *task); -static bool8 SlotReelAction_DecideWhereToStop(struct Task *task); -static bool8 SlotReelAction_MoveToStop(struct Task *task); -static bool8 SlotReelAction_OscillatingStop(struct Task *task); +static bool8 AwardPayoutAction0(struct Task *); +static bool8 AwardPayoutAction_GivePayoutToPlayer(struct Task *); +static bool8 AwardPayoutAction_FreeTask(struct Task *); +static u8 GetTagAtRest(u8, s16); +static void CreateSlotReelTasks(void); +static void SpinSlotReel(u8); +static void StopSlotReel(u8); +static bool8 IsSlotReelMoving(u8); +static void Task_RunSlotReelActions(u8); +static bool8 SlotReelAction_StayStill(struct Task *); +static bool8 SlotReelAction_Spin(struct Task *); +static bool8 SlotReelAction_DecideWhereToStop(struct Task *); +static bool8 SlotReelAction_MoveToStop(struct Task *); +static bool8 SlotReelAction_OscillatingStop(struct Task *); static bool8 DecideReelTurns_BiasTag_Reel1(void); -static bool8 DecideReelTurns_BiasTag_Reel1_Bet1(u8 a0, u8 a1); -static bool8 DecideReelTurns_BiasTag_Reel1_Bet2or3(u8 a0, u8 a1); +static bool8 DecideReelTurns_BiasTag_Reel1_Bet1(u8, u8); +static bool8 DecideReelTurns_BiasTag_Reel1_Bet2or3(u8, u8); static bool8 DecideReelTurns_BiasTag_Reel2(void); static bool8 DecideReelTurns_BiasTag_Reel2_Bet1or2(void); static bool8 DecideReelTurns_BiasTag_Reel2_Bet3(void); static bool8 DecideReelTurns_BiasTag_Reel3(void); -static bool8 DecideReelTurns_BiasTag_Reel3_Bet1or2(u8 a0); -static bool8 DecideReelTurns_BiasTag_Reel3_Bet3(u8 a0); +static bool8 DecideReelTurns_BiasTag_Reel3_Bet1or2(u8); +static bool8 DecideReelTurns_BiasTag_Reel3_Bet3(u8); static void DecideReelTurns_NoBiasTag_Reel1(void); static void DecideReelTurns_NoBiasTag_Reel2(void); static void DecideReelTurns_NoBiasTag_Reel2_Bet1(void); @@ -380,12 +386,12 @@ static void DecideReelTurns_NoBiasTag_Reel3(void); static void DecideReelTurns_NoBiasTag_Reel3_Bet1(void); static void DecideReelTurns_NoBiasTag_Reel3_Bet2(void); static void DecideReelTurns_NoBiasTag_Reel3_Bet3(void); -static void sub_8103C14(u8); -static void sub_8103C48(u8); +static void PressStopReelButton(u8); +static void Task_PressStopReelButton(u8); static void LightenBetTiles(u8); -static void sub_8103C78(struct Task *, u8); -static void sub_8103CAC(struct Task *, u8); -static void sub_8103CC8(struct Task *, u8); +static void StopReelButton_Press(struct Task *, u8); +static void StopReelButton_Wait(struct Task *, u8); +static void StopReelButton_Unpress(struct Task *, u8); static void DarkenBetTiles(u8); static void CreateInvisibleFlashMatchLineSprites(void); static void FlashMatchLine(u8); @@ -397,58 +403,58 @@ static void FlashSlotMachineLights(void); static bool8 TryStopSlotMachineLights(void); static void Task_FlashSlotMachineLights(u8); static void CreatePikaPowerBoltTask(void); -static void DisplayPikaPower(u8); -static bool8 sub_81040C8(void); +static void AddPikaPowerBolt(u8); +static bool8 IsPikaPowerBoltAnimating(void); static void Task_CreatePikaPowerBolt(u8); -static void nullsub_68(struct Task *); -static void sub_810411C(struct Task *); -static void sub_8104144(struct Task *); -static void sub_81041AC(struct Task *); -static void ClearTaskDataFields_2orHigher(struct Task *); +static void PikaPowerBolt_Idle(struct Task *); +static void PikaPowerBolt_AddBolt(struct Task *); +static void PikaPowerBolt_WaitAnim(struct Task *); +static void PikaPowerBolt_ClearAll(struct Task *); +static void ResetPikaPowerBoltTask(struct Task *); static void LoadPikaPowerMeter(u8 ); -static void BeginReeltime(void); -static bool8 IsFinalTask_RunReelTimeActions(void); -static void RunReeltimeActions(u8 taskId); -static void ReeltimeAction0(struct Task *task); -static void ReeltimeAction1(struct Task *task); -static void ReeltimeAction2(struct Task *task); -static void ReeltimeAction3(struct Task *task); -static void ReeltimeAction4(struct Task *task); -static void ReeltimeAction5(struct Task *task); -static void ReeltimeAction6(struct Task *task); -static void ReelTimeAction_LandOnOutcome(struct Task *task); -static void ReeltimeAction8(struct Task *task); -static void ReeltimeAction9(struct Task *task); -static void ReeltimeAction10(struct Task *task); -static void ReeltimeAction11(struct Task *task); -static void ReeltimeAction12(struct Task *task); -static void ReeltimeAction13(struct Task *); -static void ReeltimeAction14(struct Task *); -static void ReeltimeAction15(struct Task *); -static void ReeltimeAction16(struct Task *); -static void ReeltimeAction17(struct Task *); +static void BeginReelTime(void); +static bool8 IsReelTimeTaskDone(void); +static void Task_ReelTime(u8 ); +static void ReelTime_Init(struct Task *); +static void ReelTime_WindowEnter(struct Task *); +static void ReelTime_WaitStartPikachu(struct Task *); +static void ReelTime_PikachuSpeedUp1(struct Task *); +static void ReelTime_PikachuSpeedUp2(struct Task *); +static void ReelTime_WaitReel(struct Task *); +static void ReelTime_CheckExplode(struct Task *); +static void ReelTime_LandOnOutcome(struct Task *); +static void ReelTime_PikachuReact(struct Task *); +static void ReelTime_WaitClearPikaPower(struct Task *); +static void ReelTime_CloseWindow(struct Task *); +static void ReelTime_DestroySprites(struct Task *); +static void ReelTime_SetReelIncrement(struct Task *); +static void ReelTime_EndSuccess(struct Task *); +static void ReelTime_ExplodeMachine(struct Task *); +static void ReelTime_WaitExplode(struct Task *); +static void ReelTime_WaitSmoke(struct Task *); +static void ReelTime_EndFailure(struct Task *); static void LoadReelTimeWindowTilemap(s16, s16); static void ClearReelTimeWindowTilemap(s16); static void OpenInfoBox(u8); static bool8 IsInfoBoxClosed(void); -static void RunInfoBoxActions(u8 taskId); -static void InfoBox_FadeIn(struct Task *task); -static void InfoBox_WaitForFade(struct Task *task); -static void InfoBox_DrawWindow(struct Task *task); -static void InfoBox_AwaitPlayerInput(struct Task *task); -static void InfoBox_AddText(struct Task *task); -static void InfoBox_LoadPikaPowerMeter(struct Task *task); -static void InfoBox_LoadSlotMachineTilemap(struct Task *task); -static void InfoBox_CreateDigitalDisplay(struct Task *task); -static void InfoBox_FreeTask(struct Task *task); +static void RunInfoBoxActions(u8 ); +static void InfoBox_FadeIn(struct Task *); +static void InfoBox_WaitForFade(struct Task *); +static void InfoBox_DrawWindow(struct Task *); +static void InfoBox_AwaitPlayerInput(struct Task *); +static void InfoBox_AddText(struct Task *); +static void InfoBox_LoadPikaPowerMeter(struct Task *); +static void InfoBox_LoadSlotMachineTilemap(struct Task *); +static void InfoBox_CreateDigitalDisplay(struct Task *); +static void InfoBox_FreeTask(struct Task *); static void CreateDigitalDisplayTask(void); -static void CreateDigitalDisplayScene(u8 arg0); +static void CreateDigitalDisplayScene(u8 ); static bool8 IsDigitalDisplayAnimFinished(void); -static void DigitalDisplay_Idle(struct Task *task); -static void Task_DigitalDisplay(u8 taskId); +static void DigitalDisplay_Idle(struct Task *); +static void Task_DigitalDisplay(u8); static void CreateReelSymbolSprites(void); static void CreateCreditPayoutNumberSprites(void); -static void CreateCoinNumberSprite(s16 x, s16 y, u8 a2, s16 a3); +static void CreateCoinNumberSprite(s16, s16, u8, s16); static void CreateReelBackgroundSprite(void); static void CreateReelTimePikachuSprite(void); static void DestroyReelTimePikachuSprite(void); @@ -461,10 +467,10 @@ static void DestroyReelTimeMachineSprites(void); static void DestroyReelTimeShadowSprites(void); static void DestroyBrokenReelTimeMachineSprite(void); static void CreateReelTimeBoltSprites(void); -static void SetReelTimeBoltDelay(s16 a0); +static void SetReelTimeBoltDelay(s16); static void DestroyReelTimeBoltSprites(void); static void CreateReelTimePikachuAuraSprites(void); -static void SetReelTimePikachuAuraFlashDelay(s16 a0); +static void SetReelTimePikachuAuraFlashDelay(s16); static void DestroyReelTimePikachuAuraSprites(void); static void CreateReelTimeExplosionSprite(void); static void DestroyReelTimeExplosionSprite(void); @@ -473,48 +479,47 @@ static void DestroyReelTimeDuckSprites(void); static void CreateReelTimeSmokeSprite(void); static bool8 IsReelTimeSmokeAnimFinished(void); static void DestroyReelTimeSmokeSprite(void); -static u8 CreatePikaPowerBoltSprite(s16 x, s16 y); -static void DestroyPikaPowerBoltSprite(u8 spriteId); -static u8 CreateDigitalDisplaySprite(u8 templateIdx, void (*callback)(struct Sprite*), s16 x, s16 y, s16 a4); -static void sub_81063C0(void); +static u8 CreatePikaPowerBoltSprite(s16, s16); +static void DestroyPikaPowerBoltSprite(u8); +static u8 CreateDigitalDisplaySprite(u8, void (*callback)(struct Sprite*), s16, s16, s16); +static void LoadSlotMachineGfx(void); static void LoadReelBackground(void); static void LoadMenuGfx(void); -static void sub_81064B8(void); +static void LoadMenuAndReelOverlayTilemaps(void); static void SetReelButtonTilemap(s16, u16, u16, u16, u16); static void LoadInfoBoxTilemap(void); -static void sub_812F958(void); static void LoadSlotMachineMenuTilemap(void); static void LoadSlotMachineReelOverlay(void); -static u8 CreateStdDigitalDisplaySprite(u8 templateIdx, u8 cbAndCoordsIdx, s16 a2); -static void SpriteCB_DigitalDisplay_Static(struct Sprite *sprite); -static void SpriteCB_DigitalDisplay_Stop(struct Sprite *sprite); -static void SpriteCB_DigitalDisplay_AButtonStop(struct Sprite *sprite); -static void SpriteCB_DigitalDisplay_PokeballRocking(struct Sprite *sprite); -static void SpriteCB_DigitalDisplay_Smoke(struct Sprite *sprite); -static void SpriteCB_DigitalDisplay_SmokeNE(struct Sprite *sprite); -static void SpriteCB_DigitalDisplay_SmokeSW(struct Sprite *sprite); -static void SpriteCB_DigitalDisplay_SmokeSE(struct Sprite *sprite); -static void SpriteCB_DigitalDisplay_Reel(struct Sprite *sprite); -static void SpriteCB_DigitalDisplay_Time(struct Sprite *sprite); -static void SpriteCB_DigitalDisplay_ReelTimeNumber(struct Sprite *sprite); -static void SpriteCB_DigitalDisplay_PokeballShining(struct Sprite *sprite); -static void SpriteCB_DigitalDisplay_RegBonus(struct Sprite *sprite); -static void SpriteCB_DigitalDisplay_BigBonus(struct Sprite *sprite); -static void SpriteCB_DigitalDisplay_AButtonStart(struct Sprite *sprite); +static u8 CreateStdDigitalDisplaySprite(u8, u8, s16); +static void SpriteCB_DigitalDisplay_Static(struct Sprite *); +static void SpriteCB_DigitalDisplay_Stop(struct Sprite *); +static void SpriteCB_DigitalDisplay_AButtonStop(struct Sprite *); +static void SpriteCB_DigitalDisplay_PokeballRocking(struct Sprite *); +static void SpriteCB_DigitalDisplay_Smoke(struct Sprite *); +static void SpriteCB_DigitalDisplay_SmokeNE(struct Sprite *); +static void SpriteCB_DigitalDisplay_SmokeSW(struct Sprite *); +static void SpriteCB_DigitalDisplay_SmokeSE(struct Sprite *); +static void SpriteCB_DigitalDisplay_Reel(struct Sprite *); +static void SpriteCB_DigitalDisplay_Time(struct Sprite *); +static void SpriteCB_DigitalDisplay_ReelTimeNumber(struct Sprite *); +static void SpriteCB_DigitalDisplay_PokeballShining(struct Sprite *); +static void SpriteCB_DigitalDisplay_RegBonus(struct Sprite *); +static void SpriteCB_DigitalDisplay_BigBonus(struct Sprite *); +static void SpriteCB_DigitalDisplay_AButtonStart(struct Sprite *); static void EndDigitalDisplayScene_InsertBet(void); static void EndDigitalDisplayScene_StopReel(void); static void EndDigitalDisplayScene_Win(void); static void EndDigitalDisplayScene_Dummy(void); -static void SpriteCB_ReelSymbol(struct Sprite *sprite); -static void SpriteCB_CoinNumber(struct Sprite *sprite); -static void SpriteCB_ReelTimePikachu(struct Sprite *sprite); -static void SpriteCB_ReelTimeNumbers(struct Sprite *sprite); -static void SpriteCB_ReelTimeBolt(struct Sprite *sprite); -static void SpriteCB_ReelTimePikachuAura(struct Sprite *sprite); -static void SpriteCB_ReelTimeExplosion(struct Sprite *sprite); -static void SpriteCB_ReelTimeDuck(struct Sprite *sprite); -static void SpriteCB_ReelTimeSmoke(struct Sprite *sprite); -static void SpriteCB_PikaPowerBolt(struct Sprite *sprite); +static void SpriteCB_ReelSymbol(struct Sprite *); +static void SpriteCB_CoinNumber(struct Sprite *); +static void SpriteCB_ReelTimePikachu(struct Sprite *); +static void SpriteCB_ReelTimeNumbers(struct Sprite *); +static void SpriteCB_ReelTimeBolt(struct Sprite *); +static void SpriteCB_ReelTimePikachuAura(struct Sprite *); +static void SpriteCB_ReelTimeExplosion(struct Sprite *); +static void SpriteCB_ReelTimeDuck(struct Sprite *); +static void SpriteCB_ReelTimeSmoke(struct Sprite *); +static void SpriteCB_PikaPowerBolt(struct Sprite *); // Ewram variables static EWRAM_DATA u16 *sMenuGfx = NULL; @@ -565,7 +570,7 @@ static const struct SpriteTemplate sSpriteTemplate_ReelTimeSmoke; static const struct SpriteTemplate sSpriteTemplate_ReelTimeDuck; static const struct SpriteTemplate sSpriteTemplate_ReelTimeExplosion; static const struct SpriteTemplate sSpriteTemplate_ReelTimePikachuAura; -static const u16 sProbabilityTable_SkipToReeltimeAction14[]; +static const u16 sReelTimeExplodeProbability[]; static const u16 *const sPokeballShiningPalTable[]; static const u16 sReelIncrementTable[][2]; static const u16 sReelTimeBonusIncrementTable[]; @@ -584,11 +589,11 @@ static const u8 sReelTimeProbabilities_LuckyGame[][17]; static const u8 sSymToMatch[]; static const u8 sReelTimeTags[]; static const u8 sReelSymbolTileTags[NUM_REELS][SYMBOLS_PER_REEL]; -static const u16 *const sLitMatchLinePalTable[]; -static const u16 *const sDarkMatchLinePalTable[]; -static const u8 sMatchLinePalOffsets[]; -static const u8 sBetToMatchLineIds[][2]; -static const u8 sMatchLinesPerBet[]; +static const u16 *const sLitMatchLinePalTable[NUM_MATCH_LINES]; +static const u16 *const sDarkMatchLinePalTable[NUM_MATCH_LINES]; +static const u8 sMatchLinePalOffsets[NUM_MATCH_LINES]; +static const u8 sBetToMatchLineIds[MAX_BET][2]; +static const u8 sMatchLinesPerBet[MAX_BET]; static const u16 *const sFlashingLightsPalTable[]; static const u16 *const sSlotMachineMenu_Pal; static const u16 sReelTimeWindow_Tilemap[]; @@ -681,35 +686,35 @@ static const u8 sColors_ReeltimeHelp[] = {TEXT_COLOR_LIGHT_GREY, TEXT_COLOR_WHIT static bool8 (*const sSlotActions[])(struct Task *task) = { - [SLOT_ACTION_UNFADE] = SlotAction_UnfadeScreen, - [SLOT_ACTION_1] = SlotAction_WaitForUnfade, - [SLOT_ACTION_2] = SlotAction_SetSlotMachineVars, - [SLOT_ACTION_3] = SlotAction3, - [SLOT_ACTION_4] = SlotAction4, - [SLOT_ACTION_BET_INPUT] = SlotAction_HandleBetInput, - [SLOT_ACTION_6] = SlotAction_PrintYouDontHaveThreeCoins, - [SLOT_ACTION_7] = SlotAction_ExitYouDontHaveThreeCoinsMessage, - [SLOT_ACTION_8] = SlotAction_GivingInformation, - [SLOT_ACTION_9] = SlotAction9, - [SLOT_ACTION_10] = SlotAction10, - [SLOT_ACTION_11] = SlotAction_SetLuckySpins, - [SLOT_ACTION_12] = SlotAction_AwaitReelStop, - [SLOT_ACTION_13] = SlotAction_WaitForAllReelsToStop, - [SLOT_ACTION_14] = SlotAction_CheckMatches, - [SLOT_ACTION_15] = SlotAction_WaitForPayoutToBeAwarded, - [SLOT_ACTION_16] = SlotAction_EndOfRoll, - [SLOT_ACTION_17] = SlotAction_MatchedPower, - [SLOT_ACTION_18] = SlotAction18, - [SLOT_ACTION_19] = SlotAction_Loop, - [SLOT_ACTION_20] = SlotAction_NoMatches, - [SLOT_ACTION_ASK_QUIT] = SlotAction_PrintQuitTheGame, - [SLOT_ACTION_HANDLE_QUIT_INPUT] = SlotAction_HandleQuitGameInput, - [SLOT_ACTION_MSG_MAX_COINS] = SlotAction_PrintMessage_9999Coins, - [SLOT_ACTION_WAIT_MSG_MAX_COINS] = SlotAction_WaitMessage_9999Coins, - [SLOT_ACTION_MSG_NO_MORE_COINS] = SlotAction_PrintMessage_NoMoreCoins, - [SLOT_ACTION_WAIT_MSG_NO_MORE_COINS] = SlotAction_WaitMessage_NoMoreCoins, - [SLOT_ACTION_END] = SlotAction_EndGame, - [SLOT_ACTION_FREE] = SlotAction_FreeDataStructures, + [SLOT_ACTION_UNFADE] = SlotAction_UnfadeScreen, + [SLOT_ACTION_WAIT_FADE] = SlotAction_WaitForUnfade, + [SLOT_ACTION_READY_NEW_SPIN] = SlotAction_ReadyNewSpin, + [SLOT_ACTION_READY_NEW_RT_SPIN] = SlotAction_ReadyNewReelTimeSpin, + [SLOT_ACTION_ASK_INSERT_BET] = SlotAction_AskInsertBet, + [SLOT_ACTION_BET_INPUT] = SlotAction_HandleBetInput, + [SLOT_ACTION_MSG_NEED_3_COINS] = SlotAction_PrintMsg_Need3Coins, + [SLOT_ACTION_WAIT_MSG_NEED_3_COINS] = SlotAction_WaitMsg_Need3Coins, + [SLOT_ACTION_WAIT_INFO_BOX] = SlotAction_WaitForInfoBox, + [SLOT_ACTION_START_SPIN] = SlotAction_StartSpin, + [SLOT_ACTION_START_RT_SPIN] = SlotAction_StartReelTimeSpin, + [SLOT_ACTION_SET_LUCKY_SPINS] = SlotAction_SetLuckySpins, + [SLOT_ACTION_AWAIT_REEL_STOP] = SlotAction_AwaitReelStop, + [SLOT_ACTION_AWAIT_ALL_REELS_STOP] = SlotAction_WaitForAllReelsToStop, + [SLOT_ACTION_CHECK_MATCHES] = SlotAction_CheckMatches, + [SLOT_ACTION_WAIT_PAYOUT] = SlotAction_WaitForPayoutToBeAwarded, + [SLOT_ACTION_END_PAYOUT] = SlotAction_EndPayout, + [SLOT_ACTION_MATCHED_POWER] = SlotAction_MatchedPower, + [SLOT_ACTION_WAIT_RT_ANIM] = SlotAction_WaitReelTimeAnim, + [SLOT_ACTION_RESET_BET_TILES] = SlotAction_ResetBetTiles, + [SLOT_ACTION_NO_MATCHES] = SlotAction_NoMatches, + [SLOT_ACTION_ASK_QUIT] = SlotAction_AskQuit, + [SLOT_ACTION_HANDLE_QUIT_INPUT] = SlotAction_HandleQuitInput, + [SLOT_ACTION_MSG_MAX_COINS] = SlotAction_PrintMsg_9999Coins, + [SLOT_ACTION_WAIT_MSG_MAX_COINS] = SlotAction_WaitMsg_9999Coins, + [SLOT_ACTION_MSG_NO_MORE_COINS] = SlotAction_PrintMsg_NoMoreCoins, + [SLOT_ACTION_WAIT_MSG_NO_MORE_COINS] = SlotAction_WaitMsg_NoMoreCoins, + [SLOT_ACTION_END] = SlotAction_EndGame, + [SLOT_ACTION_FREE] = SlotAction_FreeDataStructures, }; static bool8 (*const sAwardPayoutActions[])(struct Task *task) = @@ -721,11 +726,11 @@ static bool8 (*const sAwardPayoutActions[])(struct Task *task) = static bool8 (*const sSlotReelActions[])(struct Task *task) = { - SlotReelAction_StayStill, - SlotReelAction_Spin, - SlotReelAction_DecideWhereToStop, - SlotReelAction_MoveToStop, - SlotReelAction_OscillatingStop + [REEL_ACTION_STILL] = SlotReelAction_StayStill, + [REEL_ACTION_SPIN] = SlotReelAction_Spin, + [REEL_ACTION_STOP] = SlotReelAction_DecideWhereToStop, + [REEL_ACTION_STOP_MOVE] = SlotReelAction_MoveToStop, + [REEL_ACTION_STOP_SHAKE] = SlotReelAction_OscillatingStop }; // returns True if a match with the biasTag is possible in that reel @@ -783,19 +788,19 @@ static void (*const sDecideReelTurns_NoBiasTag_Reel3_Bets[MAX_BET])(void) = static void (*const sReelStopButtonFuncs[])(struct Task *task, u8 taskId) = { - sub_8103C78, - sub_8103CAC, - sub_8103CC8 + StopReelButton_Press, + StopReelButton_Wait, + StopReelButton_Unpress }; static const s16 sReelButtonOffsets[NUM_REELS] = {5, 10, 15}; static void (*const sPikaPowerBoltFuncs[])(struct Task *task) = { - nullsub_68, - sub_810411C, - sub_8104144, - sub_81041AC + PikaPowerBolt_Idle, + PikaPowerBolt_AddBolt, + PikaPowerBolt_WaitAnim, + PikaPowerBolt_ClearAll }; static const u16 sPikaPowerTileTable[][2] = @@ -805,27 +810,27 @@ static const u16 sPikaPowerTileTable[][2] = {0xaf, 0x7f}, }; -static void (*const sReeltimeActions[])(struct Task *task) = +static void (*const sReelTimeActions[])(struct Task *task) = { - ReeltimeAction0, - ReeltimeAction1, - ReeltimeAction2, - ReeltimeAction3, - ReeltimeAction4, - ReeltimeAction5, - ReeltimeAction6, - ReelTimeAction_LandOnOutcome, - ReeltimeAction8, - ReeltimeAction9, - ReeltimeAction10, - ReeltimeAction11, - ReeltimeAction12, - ReeltimeAction13, - ReeltimeAction14, - ReeltimeAction15, - ReeltimeAction16, - ReeltimeAction10, - ReeltimeAction17 + ReelTime_Init, + ReelTime_WindowEnter, + ReelTime_WaitStartPikachu, + ReelTime_PikachuSpeedUp1, + ReelTime_PikachuSpeedUp2, + ReelTime_WaitReel, + ReelTime_CheckExplode, + ReelTime_LandOnOutcome, + ReelTime_PikachuReact, + ReelTime_WaitClearPikaPower, + ReelTime_CloseWindow, + ReelTime_DestroySprites, + ReelTime_SetReelIncrement, + ReelTime_EndSuccess, + ReelTime_ExplodeMachine, + ReelTime_WaitExplode, + ReelTime_WaitSmoke, + ReelTime_CloseWindow, + ReelTime_EndFailure }; static const u8 sReelTimePikachuAnimIds[] = {1, 1, 2, 2}; @@ -901,33 +906,33 @@ static void CB2_SlotMachineSetup(void) switch (gMain.state) { case 0: - SlotMachineSetup_0_0(); - SlotMachineSetup_0_1(); + SlotMachineSetup_InitBgsWindows(); + SlotMachineSetup_InitSlotMachineStruct(); gMain.state++; break; case 1: - SlotMachineSetup_1_0(); + SlotMachineSetup_InitVRAM(); gMain.state++; break; case 2: - SlotMachineSetup_2_0(); - SlotMachineSetup_2_1(); + SlotMachineSetup_InitOAM(); + SlotMachineSetup_InitGpuRegs(); gMain.state++; break; case 3: - SlotMachineSetup_3_0(); + SlotMachineSetup_InitPalsSpritesTasks(); gMain.state++; break; case 4: - SlotMachineSetup_4_0(); + SlotMachineSetup_InitTilemaps(); gMain.state++; break; case 5: - SlotMachineSetup_5_0(); + SlotMachineSetup_LoadGfxAndTilemaps(); gMain.state++; break; case 6: - SlotMachineSetup_6_0(); + SlotMachineSetup_InitVBlank(); gMain.state++; break; case 7: @@ -947,17 +952,17 @@ static void CB2_SlotMachineSetup(void) gMain.state++; break; case 10: - SlotMachineSetup_10_0(); - SlotMachineSetupGameplayTasks(); + CreateSlotMachineSprites(); + CreateGameplayTasks(); gMain.state++; break; case 11: - SetMainCallback2(CB2_SlotMachineLoop); + SetMainCallback2(CB2_SlotMachine); break; } } -static void CB2_SlotMachineLoop(void) +static void CB2_SlotMachine(void) { RunTasks(); AnimateSprites(); @@ -965,7 +970,7 @@ static void CB2_SlotMachineLoop(void) UpdatePaletteFade(); } -static void SlotMachine_VBlankCallback(void) +static void SlotMachine_VBlankCB(void) { LoadOam(); ProcessSpriteCopyRequests(); @@ -980,22 +985,22 @@ static void PlaySlotMachine_Internal(u8 slotMachineIndex, MainCallback exitCallb { struct Task *task = &gTasks[CreateTask(SlotMachineDummyTask, 0xFF)]; task->data[0] = slotMachineIndex; - StoreWordInTwoHalfwords(task->data + 1, (intptr_t)exitCallback); + StoreWordInTwoHalfwords(&task->data[1], (intptr_t)exitCallback); } -static void sub_81019EC(void) +static void SlotMachineInitDummyTask(void) { struct Task *task = &gTasks[FindTaskIdByFunc(SlotMachineDummyTask)]; sSlotMachine->machineId = task->data[0]; - LoadWordFromTwoHalfwords((u16 *)(task->data + 1), (u32 *)&sSlotMachine->prevMainCb); + LoadWordFromTwoHalfwords((u16 *)&task->data[1], (u32 *)&sSlotMachine->prevMainCb); } static void SlotMachineDummyTask(u8 taskId) { } -static void SlotMachineSetup_0_0(void) +static void SlotMachineSetup_InitBgsWindows(void) { SetVBlankCallback(NULL); SetHBlankCallback(NULL); @@ -1006,24 +1011,24 @@ static void SlotMachineSetup_0_0(void) DeactivateAllTextPrinters(); } -static void SlotMachineSetup_6_0(void) +static void SlotMachineSetup_InitVBlank(void) { - SetVBlankCallback(SlotMachine_VBlankCallback); + SetVBlankCallback(SlotMachine_VBlankCB); EnableInterrupts(INTR_FLAG_VBLANK); SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_1D_MAP | DISPCNT_OBJ_ON | DISPCNT_WIN0_ON); } -static void SlotMachineSetup_1_0(void) +static void SlotMachineSetup_InitVRAM(void) { DmaClearLarge16(3, (u16 *)(BG_VRAM), BG_VRAM_SIZE, 0x1000); } -static void SlotMachineSetup_2_0(void) +static void SlotMachineSetup_InitOAM(void) { DmaClear16(3, (u16 *)OAM, OAM_SIZE); } -static void SlotMachineSetup_2_1(void) +static void SlotMachineSetup_InitGpuRegs(void) { SetGpuReg(REG_OFFSET_BG0CNT, 0); SetGpuReg(REG_OFFSET_BG1CNT, 0); @@ -1044,11 +1049,11 @@ static void SlotMachineSetup_2_1(void) } // set up initial state of slot machine -static void SlotMachineSetup_0_1(void) +static void SlotMachineSetup_InitSlotMachineStruct(void) { u8 i; - sub_81019EC(); // assigns sSlotMachine->machineId, etc. + SlotMachineInitDummyTask(); // assigns sSlotMachine->machineId, etc. sSlotMachine->state = 0; sSlotMachine->pikaPower = 0; sSlotMachine->luckyGame = Random() & 1; @@ -1078,7 +1083,7 @@ static void SlotMachineSetup_0_1(void) AlertTVThatPlayerPlayedSlotMachine(GetCoins()); } -static void SlotMachineSetup_3_0(void) +static void SlotMachineSetup_InitPalsSpritesTasks(void) { ResetPaletteFade(); ResetSpriteData(); @@ -1087,7 +1092,7 @@ static void SlotMachineSetup_3_0(void) ResetTasks(); } -static void SlotMachineSetup_4_0(void) +static void SlotMachineSetup_InitTilemaps(void) { sSelectedPikaPowerTile = Alloc(8); sReelOverlay_Tilemap = AllocZeroed(14); @@ -1103,17 +1108,17 @@ static void SlotMachineSetup_4_0(void) sReelOverlay_Tilemap[6] = 0x20BF; } -static void SlotMachineSetup_5_0(void) +static void SlotMachineSetup_LoadGfxAndTilemaps(void) { LoadMenuGfx(); - sub_81064B8(); - sub_81063C0(); + LoadMenuAndReelOverlayTilemaps(); + LoadSlotMachineGfx(); LoadMessageBoxGfx(0, 0x200, 0xF0); LoadUserWindowBorderGfx(0, 0x214, 0xE0); PutWindowTilemap(0); } -static void SlotMachineSetup_10_0(void) +static void CreateSlotMachineSprites(void) { CreateReelSymbolSprites(); CreateCreditPayoutNumberSprites(); @@ -1121,36 +1126,36 @@ static void SlotMachineSetup_10_0(void) CreateReelBackgroundSprite(); } -// create gameplay tasks -static void SlotMachineSetupGameplayTasks(void) +static void CreateGameplayTasks(void) { CreatePikaPowerBoltTask(); - GameplayTask_StopSlotReel(); + CreateSlotReelTasks(); CreateDigitalDisplayTask(); - GameplayTasks_Slots(); + CreateSlotMachineTask(); } -static void GameplayTasks_Slots(void) +static void CreateSlotMachineTask(void) { - RunSlotActions(CreateTask(RunSlotActions, 0)); + Task_SlotMachine(CreateTask(Task_SlotMachine, 0)); } // task->data[0] is a timer -static void RunSlotActions(u8 taskId) +static void Task_SlotMachine(u8 taskId) { while (sSlotActions[sSlotMachine->state](&gTasks[taskId])) ; } +// SLOT_ACTION_UNFADE static bool8 SlotAction_UnfadeScreen(struct Task *task) { BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB(0, 0, 0)); LoadPikaPowerMeter(sSlotMachine->pikaPower); - sSlotMachine->state++; + sSlotMachine->state++; // SLOT_ACTION_WAIT_FADE return FALSE; } -// SLOT_ACTION_1 +// SLOT_ACTION_WAIT_FADE static bool8 SlotAction_WaitForUnfade(struct Task *task) { if (!gPaletteFade.active) @@ -1158,36 +1163,36 @@ static bool8 SlotAction_WaitForUnfade(struct Task *task) return FALSE; } -// SLOT_ACTION_2 -static bool8 SlotAction_SetSlotMachineVars(struct Task *task) +// SLOT_ACTION_READY_NEW_SPIN +static bool8 SlotAction_ReadyNewSpin(struct Task *task) { sSlotMachine->payout = 0; sSlotMachine->bet = 0; sSlotMachine->currReel = 0; sSlotMachine->luckyFlags &= (LUCKY_BIAS_777 | LUCKY_BIAS_MIXED_777); - sSlotMachine->state = SLOT_ACTION_4; + sSlotMachine->state = SLOT_ACTION_ASK_INSERT_BET; if (sSlotMachine->coins <= 0) { sSlotMachine->state = SLOT_ACTION_MSG_NO_MORE_COINS; } else if (sSlotMachine->reelTimeSpinsLeft) { - sSlotMachine->state = SLOT_ACTION_3; + sSlotMachine->state = SLOT_ACTION_READY_NEW_RT_SPIN; CreateDigitalDisplayScene(DIG_DISPLAY_REEL_TIME); } return TRUE; } -// SLOT_ACTION_3 -static bool8 SlotAction3(struct Task *task) +// SLOT_ACTION_READY_NEW_RT_SPIN +static bool8 SlotAction_ReadyNewReelTimeSpin(struct Task *task) { if (IsDigitalDisplayAnimFinished()) - sSlotMachine->state = SLOT_ACTION_4; + sSlotMachine->state = SLOT_ACTION_ASK_INSERT_BET; return FALSE; } -// SLOT_ACTION_4 -static bool8 SlotAction4(struct Task *task) +// SLOT_ACTION_ASK_INSERT_BET +static bool8 SlotAction_AskInsertBet(struct Task *task) { CreateDigitalDisplayScene(DIG_DISPLAY_INSERT_BET); sSlotMachine->state = SLOT_ACTION_BET_INPUT; @@ -1204,7 +1209,7 @@ static bool8 SlotAction_HandleBetInput(struct Task *task) if (JOY_NEW(SELECT_BUTTON)) { OpenInfoBox(DIG_DISPLAY_INSERT_BET); - sSlotMachine->state = SLOT_ACTION_8; + sSlotMachine->state = SLOT_ACTION_WAIT_INFO_BOX; } else if (JOY_NEW(R_BUTTON)) // bet the max amount { @@ -1214,12 +1219,12 @@ static bool8 SlotAction_HandleBetInput(struct Task *task) LightenBetTiles(i); sSlotMachine->coins -= (MAX_BET - sSlotMachine->bet); sSlotMachine->bet = MAX_BET; - sSlotMachine->state = SLOT_ACTION_9; + sSlotMachine->state = SLOT_ACTION_START_SPIN; PlaySE(SE_REGI); } else // you didn't have enough coins to bet the max { - sSlotMachine->state = SLOT_ACTION_6; + sSlotMachine->state = SLOT_ACTION_MSG_NEED_3_COINS; } } else @@ -1235,7 +1240,7 @@ static bool8 SlotAction_HandleBetInput(struct Task *task) // Maxed bet or finished betting if (sSlotMachine->bet >= MAX_BET || (sSlotMachine->bet != 0 && JOY_NEW(A_BUTTON))) - sSlotMachine->state = SLOT_ACTION_9; + sSlotMachine->state = SLOT_ACTION_START_SPIN; // Quit prompt if (JOY_NEW(B_BUTTON)) @@ -1244,16 +1249,18 @@ static bool8 SlotAction_HandleBetInput(struct Task *task) return FALSE; } -static bool8 SlotAction_PrintYouDontHaveThreeCoins(struct Task *task) +// SLOT_ACTION_NEED_3_COINS +static bool8 SlotAction_PrintMsg_Need3Coins(struct Task *task) { DrawDialogueFrame(0, 0); AddTextPrinterParameterized(0, 1, gText_YouDontHaveThreeCoins, 0, 1, 0, 0); CopyWindowToVram(0, 3); - sSlotMachine->state = SLOT_ACTION_7; + sSlotMachine->state = SLOT_ACTION_WAIT_MSG_NEED_3_COINS; return FALSE; } -static bool8 SlotAction_ExitYouDontHaveThreeCoinsMessage(struct Task *task) +// SLOT_ACTION_WAIT_MSG_NEED_3_COINS +static bool8 SlotAction_WaitMsg_Need3Coins(struct Task *task) { if (JOY_NEW(A_BUTTON | B_BUTTON)) { @@ -1263,36 +1270,36 @@ static bool8 SlotAction_ExitYouDontHaveThreeCoinsMessage(struct Task *task) return FALSE; } -static bool8 SlotAction_GivingInformation(struct Task *task) +// SLOT_ACTION_WAIT_INFO_BOX +static bool8 SlotAction_WaitForInfoBox(struct Task *task) { if (IsInfoBoxClosed()) sSlotMachine->state = SLOT_ACTION_BET_INPUT; return FALSE; } -// probably make all the slots roll -static bool8 SlotAction9(struct Task *task) +// SLOT_ACTION_START_SPIN +static bool8 SlotAction_StartSpin(struct Task *task) { DrawLuckyFlags(); DestroyDigitalDisplayScene(); - // for each reel... - ReelTasks_SetUnkTaskData(LEFT_REEL); - ReelTasks_SetUnkTaskData(MIDDLE_REEL); - ReelTasks_SetUnkTaskData(RIGHT_REEL); + SpinSlotReel(LEFT_REEL); + SpinSlotReel(MIDDLE_REEL); + SpinSlotReel(RIGHT_REEL); IncrementDailySlotsUses(); task->data[0] = 0; if (sSlotMachine->luckyFlags & LUCKY_BIAS_REELTIME) { - BeginReeltime(); - sSlotMachine->state = SLOT_ACTION_10; + BeginReelTime(); + sSlotMachine->state = SLOT_ACTION_START_RT_SPIN; } else { CreateDigitalDisplayScene(DIG_DISPLAY_STOP_REEL); - sSlotMachine->state = SLOT_ACTION_11; + sSlotMachine->state = SLOT_ACTION_SET_LUCKY_SPINS; } sSlotMachine->reelIncrement = 8; if (sSlotMachine->reelTimeSpinsLeft) @@ -1300,55 +1307,59 @@ static bool8 SlotAction9(struct Task *task) return FALSE; } -static bool8 SlotAction10(struct Task *task) +// SLOT_ACTION_START_RT_SPIN +static bool8 SlotAction_StartReelTimeSpin(struct Task *task) { - if (IsFinalTask_RunReelTimeActions()) + if (IsReelTimeTaskDone()) { CreateDigitalDisplayScene(DIG_DISPLAY_STOP_REEL); sSlotMachine->luckyFlags &= ~LUCKY_BIAS_REELTIME; - sSlotMachine->state = SLOT_ACTION_11; + sSlotMachine->state = SLOT_ACTION_SET_LUCKY_SPINS; } return FALSE; } +// SLOT_ACTION_SET_LUCKY_SPINS static bool8 SlotAction_SetLuckySpins(struct Task *task) { if (++task->data[0] >= 30) { SetLuckySpins(); - sSlotMachine->state = SLOT_ACTION_12; + sSlotMachine->state = SLOT_ACTION_AWAIT_REEL_STOP; } return FALSE; } +// SLOT_ACTION_AWAIT_REEL_STOP static bool8 SlotAction_AwaitReelStop(struct Task *task) { if (JOY_NEW(A_BUTTON)) { PlaySE(SE_JYUNI); - sub_8102E1C(sSlotMachine->currReel); - sub_8103C14(sSlotMachine->currReel); - sSlotMachine->state = SLOT_ACTION_13; + StopSlotReel(sSlotMachine->currReel); + PressStopReelButton(sSlotMachine->currReel); + sSlotMachine->state = SLOT_ACTION_AWAIT_ALL_REELS_STOP; } return FALSE; } +// SLOT_ACTION_AWAIT_ALL_REELS_STOP static bool8 SlotAction_WaitForAllReelsToStop(struct Task *task) { if (!IsSlotReelMoving(sSlotMachine->currReel)) { sSlotMachine->currReel++; - sSlotMachine->state = SLOT_ACTION_12; - if (sSlotMachine->currReel > 2) + sSlotMachine->state = SLOT_ACTION_AWAIT_REEL_STOP; + if (sSlotMachine->currReel >= NUM_REELS) { - sSlotMachine->state = SLOT_ACTION_14; + sSlotMachine->state = SLOT_ACTION_CHECK_MATCHES; } return TRUE; } return FALSE; } -// once all reels have stopped +// SLOT_ACTION_CHECK_MATCHES static bool8 SlotAction_CheckMatches(struct Task *task) { sSlotMachine->luckyFlags &= (LUCKY_BIAS_777 | LUCKY_BIAS_MIXED_777); @@ -1361,7 +1372,7 @@ static bool8 SlotAction_CheckMatches(struct Task *task) if (sSlotMachine->matchedSymbols) { - sSlotMachine->state = SLOT_ACTION_15; + sSlotMachine->state = SLOT_ACTION_WAIT_PAYOUT; AwardPayout(); FlashSlotMachineLights(); if ((sSlotMachine->netCoinLoss -= sSlotMachine->payout) < 0) @@ -1400,100 +1411,111 @@ static bool8 SlotAction_CheckMatches(struct Task *task) if (sSlotMachine->matchedSymbols & (1 << MATCHED_POWER) && sSlotMachine->pikaPower < 16) { sSlotMachine->pikaPower++; - DisplayPikaPower(sSlotMachine->pikaPower); + AddPikaPowerBolt(sSlotMachine->pikaPower); } } else { CreateDigitalDisplayScene(DIG_DISPLAY_LOSE); - sSlotMachine->state = SLOT_ACTION_20; + sSlotMachine->state = SLOT_ACTION_NO_MATCHES; if ((sSlotMachine->netCoinLoss += sSlotMachine->bet) > MAX_COINS) sSlotMachine->netCoinLoss = MAX_COINS; } return FALSE; } +// SLOT_ACTION_WAIT_PAYOUT static bool8 SlotAction_WaitForPayoutToBeAwarded(struct Task *task) { if (IsFinalTask_RunAwardPayoutActions()) - sSlotMachine->state = SLOT_ACTION_16; + sSlotMachine->state = SLOT_ACTION_END_PAYOUT; return FALSE; } -static bool8 SlotAction_EndOfRoll(struct Task *task) +// SLOT_ACTION_END_PAYOUT +static bool8 SlotAction_EndPayout(struct Task *task) { if (TryStopSlotMachineLights()) { - sSlotMachine->state = SLOT_ACTION_19; + sSlotMachine->state = SLOT_ACTION_RESET_BET_TILES; + if (sSlotMachine->matchedSymbols & ((1 << MATCHED_777_RED) | (1 << MATCHED_777_BLUE))) IncrementGameStat(GAME_STAT_SLOT_JACKPOTS); + if (sSlotMachine->matchedSymbols & (1 << MATCHED_REPLAY)) { sSlotMachine->currReel = 0; - sSlotMachine->state = SLOT_ACTION_9; + sSlotMachine->state = SLOT_ACTION_START_SPIN; } + if (sSlotMachine->matchedSymbols & (1 << MATCHED_POWER)) - sSlotMachine->state = SLOT_ACTION_17; + sSlotMachine->state = SLOT_ACTION_MATCHED_POWER; + if (sSlotMachine->reelTimeSpinsLeft && sSlotMachine->matchedSymbols & (1 << MATCHED_REPLAY)) { CreateDigitalDisplayScene(DIG_DISPLAY_REEL_TIME); - sSlotMachine->state = SLOT_ACTION_18; + sSlotMachine->state = SLOT_ACTION_WAIT_RT_ANIM; } } return FALSE; } +// SLOT_ACTION_MATCHED_POWER static bool8 SlotAction_MatchedPower(struct Task *task) { - if (!sub_81040C8()) + if (!IsPikaPowerBoltAnimating()) { - sSlotMachine->state = SLOT_ACTION_19; + sSlotMachine->state = SLOT_ACTION_RESET_BET_TILES; if (sSlotMachine->matchedSymbols & (1 << MATCHED_REPLAY)) { - sSlotMachine->state = SLOT_ACTION_9; + sSlotMachine->state = SLOT_ACTION_START_SPIN; if (sSlotMachine->reelTimeSpinsLeft) { CreateDigitalDisplayScene(DIG_DISPLAY_REEL_TIME); - sSlotMachine->state = SLOT_ACTION_18; + sSlotMachine->state = SLOT_ACTION_WAIT_RT_ANIM; } } } return FALSE; } -static bool8 SlotAction18(struct Task *task) +// SLOT_ACTION_WAIT_RT_ANIM +static bool8 SlotAction_WaitReelTimeAnim(struct Task *task) { if (IsDigitalDisplayAnimFinished()) { - sSlotMachine->state = SLOT_ACTION_19; + sSlotMachine->state = SLOT_ACTION_RESET_BET_TILES; if (sSlotMachine->matchedSymbols & (1 << MATCHED_REPLAY)) { - sSlotMachine->state = SLOT_ACTION_9; + sSlotMachine->state = SLOT_ACTION_START_SPIN; } } return FALSE; } -static bool8 SlotAction_Loop(struct Task *task) +// SLOT_ACTION_RESET_BET_TILES +static bool8 SlotAction_ResetBetTiles(struct Task *task) { DarkenBetTiles(0); DarkenBetTiles(1); DarkenBetTiles(2); - sSlotMachine->state = SLOT_ACTION_2; + sSlotMachine->state = SLOT_ACTION_READY_NEW_SPIN; return FALSE; } +// SLOT_ACTION_NO_MATCHES static bool8 SlotAction_NoMatches(struct Task *task) { if (++task->data[1] > 64) { task->data[1] = 0; - sSlotMachine->state = SLOT_ACTION_19; + sSlotMachine->state = SLOT_ACTION_RESET_BET_TILES; } return FALSE; } -static bool8 SlotAction_PrintQuitTheGame(struct Task *task) +// SLOT_ACTION_ASK_QUIT +static bool8 SlotAction_AskQuit(struct Task *task) { DrawDialogueFrame(0, 0); AddTextPrinterParameterized(0, 1, gText_QuitTheGame, 0, 1, 0, 0); @@ -1503,7 +1525,8 @@ static bool8 SlotAction_PrintQuitTheGame(struct Task *task) return FALSE; } -static bool8 SlotAction_HandleQuitGameInput(struct Task *task) +// SLOT_ACTION_HANDLE_QUIT_INPUT +static bool8 SlotAction_HandleQuitInput(struct Task *task) { s8 input = Menu_ProcessInputNoWrapClearOnChoose(); if (input == 0) // player chooses to quit @@ -1523,7 +1546,8 @@ static bool8 SlotAction_HandleQuitGameInput(struct Task *task) return FALSE; } -static bool8 SlotAction_PrintMessage_9999Coins(struct Task *task) +// SLOT_ACTION_MSG_MAX_COINS +static bool8 SlotAction_PrintMsg_9999Coins(struct Task *task) { DrawDialogueFrame(0, 0); AddTextPrinterParameterized(0, 1, gText_YouveGot9999Coins, 0, 1, 0, 0); @@ -1532,7 +1556,8 @@ static bool8 SlotAction_PrintMessage_9999Coins(struct Task *task) return FALSE; } -static bool8 SlotAction_WaitMessage_9999Coins(struct Task *task) +// SLOT_ACTION_WAIT_MSG_MAX_COINS +static bool8 SlotAction_WaitMsg_9999Coins(struct Task *task) { if (JOY_NEW(A_BUTTON | B_BUTTON)) { @@ -1542,7 +1567,8 @@ static bool8 SlotAction_WaitMessage_9999Coins(struct Task *task) return FALSE; } -static bool8 SlotAction_PrintMessage_NoMoreCoins(struct Task *task) +// SLOT_ACTION_MSG_NO_MORE_COINS +static bool8 SlotAction_PrintMsg_NoMoreCoins(struct Task *task) { DrawDialogueFrame(0, 0); AddTextPrinterParameterized(0, 1, gText_YouveRunOutOfCoins, 0, 1, 0, 0); @@ -1551,7 +1577,8 @@ static bool8 SlotAction_PrintMessage_NoMoreCoins(struct Task *task) return FALSE; } -static bool8 SlotAction_WaitMessage_NoMoreCoins(struct Task *task) +// SLOT_ACTION_WAIT_MSG_NO_MORE_COINS +static bool8 SlotAction_WaitMsg_NoMoreCoins(struct Task *task) { if (JOY_NEW(A_BUTTON | B_BUTTON)) { @@ -1561,6 +1588,7 @@ static bool8 SlotAction_WaitMessage_NoMoreCoins(struct Task *task) return FALSE; } +// SLOT_ACTION_END static bool8 SlotAction_EndGame(struct Task *task) { SetCoins(sSlotMachine->coins); @@ -1570,6 +1598,7 @@ static bool8 SlotAction_EndGame(struct Task *task) return FALSE; } +// SLOT_ACTION_FREE static bool8 SlotAction_FreeDataStructures(struct Task *task) { if (!gPaletteFade.active) @@ -1606,7 +1635,6 @@ static bool8 SlotAction_FreeDataStructures(struct Task *task) FREE_AND_SET_NULL(sReelBackground_Gfx); FREE_AND_SET_NULL(sReelBackgroundSpriteSheet); FREE_AND_SET_NULL(sSlotMachineSpritesheetsPtr); - FREE_AND_SET_NULL(sSlotMachine); } return FALSE; @@ -1645,9 +1673,9 @@ static void DrawLuckyFlags(void) static void SetLuckySpins(void) { - sSlotMachine->luckySpinsLeft = 0; + sSlotMachine->isLuckySpin = FALSE; if (sSlotMachine->luckyFlags) - sSlotMachine->luckySpinsLeft = 1; + sSlotMachine->isLuckySpin = TRUE; } static u8 GetBiasTag(u8 luckyFlags) @@ -1740,10 +1768,10 @@ static void GetReeltimeDraw(void) sSlotMachine->reelTimeDraw = reelTimeDraw; } -static bool8 SkipToReeltimeAction14(u16 i) +static bool8 ShouldReelTimeMachineExplode(u16 i) { u16 rval = Random() & 0xff; - if (rval < sProbabilityTable_SkipToReeltimeAction14[i]) + if (rval < sReelTimeExplodeProbability[i]) return TRUE; else return FALSE; @@ -1790,7 +1818,7 @@ static void CheckMatch_CenterRow(void) c1 = GetTagAtRest(LEFT_REEL, 2); c2 = GetTagAtRest(MIDDLE_REEL, 2); c3 = GetTagAtRest(RIGHT_REEL, 2); - match = GetMatchFromSymbolsInRow(c1, c2, c3); + match = GetMatchFromSymbols(c1, c2, c3); if (match != MATCHED_NONE) { sSlotMachine->payout += sSlotPayouts[match]; @@ -1806,7 +1834,7 @@ static void CheckMatch_TopAndBottom(void) c1 = GetTagAtRest(LEFT_REEL, 1); c2 = GetTagAtRest(MIDDLE_REEL, 1); c3 = GetTagAtRest(RIGHT_REEL, 1); - match = GetMatchFromSymbolsInRow(c1, c2, c3); + match = GetMatchFromSymbols(c1, c2, c3); if (match != MATCHED_NONE) { if (match == MATCHED_1CHERRY) @@ -1818,7 +1846,7 @@ static void CheckMatch_TopAndBottom(void) c1 = GetTagAtRest(LEFT_REEL, 3); c2 = GetTagAtRest(MIDDLE_REEL, 3); c3 = GetTagAtRest(RIGHT_REEL, 3); - match = GetMatchFromSymbolsInRow(c1, c2, c3); + match = GetMatchFromSymbols(c1, c2, c3); if (match != MATCHED_NONE) { if (match == MATCHED_1CHERRY) @@ -1836,7 +1864,7 @@ static void CheckMatch_Diagonals(void) c1 = GetTagAtRest(LEFT_REEL, 1); c2 = GetTagAtRest(MIDDLE_REEL, 2); c3 = GetTagAtRest(RIGHT_REEL, 3); - match = GetMatchFromSymbolsInRow(c1, c2, c3); + match = GetMatchFromSymbols(c1, c2, c3); if (match != MATCHED_NONE) { if (match != MATCHED_1CHERRY) @@ -1849,7 +1877,7 @@ static void CheckMatch_Diagonals(void) c1 = GetTagAtRest(LEFT_REEL, 3); c2 = GetTagAtRest(MIDDLE_REEL, 2); c3 = GetTagAtRest(RIGHT_REEL, 1); - match = GetMatchFromSymbolsInRow(c1, c2, c3); + match = GetMatchFromSymbols(c1, c2, c3); if (match != MATCHED_NONE) { if (match != MATCHED_1CHERRY) @@ -1861,7 +1889,7 @@ static void CheckMatch_Diagonals(void) } } -static u8 GetMatchFromSymbolsInRow(u8 c1, u8 c2, u8 c3) +static u8 GetMatchFromSymbols(u8 c1, u8 c2, u8 c3) { if (c1 == c2 && c1 == c3) return sSymToMatch[c1]; @@ -2018,42 +2046,45 @@ s16 AdvanceReeltimeReelToNextTag(s16 value) return offset; } -static void GameplayTask_StopSlotReel(void) +#define tState data[0] +#define tMoving data[14] +#define tReelId data[15] + +static void CreateSlotReelTasks(void) { u8 i; for (i = 0; i < NUM_REELS; i++) { - u8 taskId = CreateTask(RunSlotReelActions, 2); - gTasks[taskId].data[15] = i; + u8 taskId = CreateTask(Task_RunSlotReelActions, 2); + gTasks[taskId].tReelId = i; sSlotMachine->slotReelTasks[i] = taskId; - RunSlotReelActions(taskId); + Task_RunSlotReelActions(taskId); } } -static void ReelTasks_SetUnkTaskData(u8 reelIndex) +static void SpinSlotReel(u8 reelIndex) { - gTasks[sSlotMachine->slotReelTasks[reelIndex]].data[0] = 1; - gTasks[sSlotMachine->slotReelTasks[reelIndex]].data[14] = 1; + gTasks[sSlotMachine->slotReelTasks[reelIndex]].tState = REEL_ACTION_SPIN; + gTasks[sSlotMachine->slotReelTasks[reelIndex]].tMoving = TRUE; } -static void sub_8102E1C(u8 reelIndex) +static void StopSlotReel(u8 reelIndex) { - gTasks[sSlotMachine->slotReelTasks[reelIndex]].data[0] = 2; + gTasks[sSlotMachine->slotReelTasks[reelIndex]].tState = REEL_ACTION_STOP; } static bool8 IsSlotReelMoving(u8 reelIndex) { - return gTasks[sSlotMachine->slotReelTasks[reelIndex]].data[14]; + return gTasks[sSlotMachine->slotReelTasks[reelIndex]].tMoving; } -static void RunSlotReelActions(u8 taskId) +static void Task_RunSlotReelActions(u8 taskId) { - while (sSlotReelActions[gTasks[taskId].data[0]](&gTasks[taskId])) + while (sSlotReelActions[gTasks[taskId].tState](&gTasks[taskId])) ; } // task->data[1] reel turns -// task->data[15] reelIndex static bool8 SlotReelAction_StayStill(struct Task *task) { return FALSE; @@ -2061,24 +2092,24 @@ static bool8 SlotReelAction_StayStill(struct Task *task) static bool8 SlotReelAction_Spin(struct Task *task) { - AdvanceSlotReel(task->data[15], sSlotMachine->reelIncrement); + AdvanceSlotReel(task->tReelId, sSlotMachine->reelIncrement); return FALSE; } // As in previous generations, the slot machine often doesn't stop exactly when you press stop static bool8 SlotReelAction_DecideWhereToStop(struct Task *task) { - task->data[0]++; + task->tState++; // initialize data for that reel --> these will be changed if sBiasTags can be lined up - sSlotMachine->winnerRows[task->data[15]] = 0; - sSlotMachine->reelExtraTurns[task->data[15]] = 0; + sSlotMachine->winnerRows[task->tReelId] = 0; + sSlotMachine->reelExtraTurns[task->tReelId] = 0; - if (sSlotMachine->reelTimeSpinsLeft == 0 && (sSlotMachine->luckyFlags == 0 || sSlotMachine->luckySpinsLeft == 0 || !sDecideReelTurns_BiasTag[task->data[15]]())) + if (sSlotMachine->reelTimeSpinsLeft == 0 && (sSlotMachine->luckyFlags == 0 || !sSlotMachine->isLuckySpin || !sDecideReelTurns_BiasTag[task->tReelId]())) { - sSlotMachine->luckySpinsLeft = 0; - sDecideReelTurns_NoBiasTag[task->data[15]](); + sSlotMachine->isLuckySpin = FALSE; + sDecideReelTurns_NoBiasTag[task->tReelId](); } - task->data[1] = sSlotMachine->reelExtraTurns[task->data[15]]; + task->data[1] = sSlotMachine->reelExtraTurns[task->tReelId]; return TRUE; } @@ -2089,18 +2120,18 @@ static bool8 SlotReelAction_MoveToStop(struct Task *task) s16 reelPixelPos; memcpy(reelStopShocks, sReelStopShocks, sizeof(sReelStopShocks)); - reelPixelPos = sSlotMachine->reelPixelOffsets[task->data[15]] % REEL_SYMBOL_HEIGHT; + reelPixelPos = sSlotMachine->reelPixelOffsets[task->tReelId] % REEL_SYMBOL_HEIGHT; if (reelPixelPos != 0) - reelPixelPos = AdvanceSlotReelToNextTag(task->data[15], sSlotMachine->reelIncrement); - else if (sSlotMachine->reelExtraTurns[task->data[15]]) + reelPixelPos = AdvanceSlotReelToNextTag(task->tReelId, sSlotMachine->reelIncrement); + else if (sSlotMachine->reelExtraTurns[task->tReelId]) { - sSlotMachine->reelExtraTurns[task->data[15]]--; - AdvanceSlotReel(task->data[15], sSlotMachine->reelIncrement); - reelPixelPos = sSlotMachine->reelPixelOffsets[task->data[15]] % REEL_SYMBOL_HEIGHT; + sSlotMachine->reelExtraTurns[task->tReelId]--; + AdvanceSlotReel(task->tReelId, sSlotMachine->reelIncrement); + reelPixelPos = sSlotMachine->reelPixelOffsets[task->tReelId] % REEL_SYMBOL_HEIGHT; } - if (reelPixelPos == 0 && sSlotMachine->reelExtraTurns[task->data[15]] == 0) + if (reelPixelPos == 0 && sSlotMachine->reelExtraTurns[task->tReelId] == 0) { - task->data[0]++; + task->tState++; task->data[1] = reelStopShocks[task->data[1]]; task->data[2] = 0; } @@ -2110,20 +2141,24 @@ static bool8 SlotReelAction_MoveToStop(struct Task *task) // make selected tag oscillate before it becomes still static bool8 SlotReelAction_OscillatingStop(struct Task *task) { - sSlotMachine->reelPixelOffsetsWhileStopping[task->data[15]] = task->data[1]; + sSlotMachine->reelPixelOffsetsWhileStopping[task->tReelId] = task->data[1]; task->data[1] = -task->data[1]; task->data[2]++; if ((task->data[2] & 0x3) == 0) task->data[1] >>= 1; if (task->data[1] == 0) { - task->data[0] = 0; - task->data[14] = 0; - sSlotMachine->reelPixelOffsetsWhileStopping[task->data[15]] = 0; + task->tState = 0; + task->tMoving = FALSE; + sSlotMachine->reelPixelOffsetsWhileStopping[task->tReelId] = 0; } return FALSE; } +#undef tState +#undef tMoving +#undef tReelId + static bool8 DecideReelTurns_BiasTag_Reel1(void) { u8 tag2 = GetBiasTag(sSlotMachine->luckyFlags); @@ -2680,31 +2715,31 @@ static void DecideReelTurns_NoBiasTag_Reel3_Bet3(void) } } -static void sub_8103C14(u8 reelNum) +static void PressStopReelButton(u8 reelNum) { - u8 taskId = CreateTask(sub_8103C48, 5); + u8 taskId = CreateTask(Task_PressStopReelButton, 5); gTasks[taskId].data[15] = reelNum; - sub_8103C48(taskId); + Task_PressStopReelButton(taskId); } -static void sub_8103C48(u8 taskId) +static void Task_PressStopReelButton(u8 taskId) { sReelStopButtonFuncs[gTasks[taskId].data[0]](&gTasks[taskId], taskId); } -static void sub_8103C78(struct Task *task, u8 taskId) +static void StopReelButton_Press(struct Task *task, u8 taskId) { SetReelButtonTilemap(sReelButtonOffsets[task->data[15]], 0x62, 0x63, 0x72, 0x73); task->data[0]++; } -static void sub_8103CAC(struct Task *task, u8 taskId) +static void StopReelButton_Wait(struct Task *task, u8 taskId) { if (++task->data[1] > 11) task->data[0]++; } -static void sub_8103CC8(struct Task *task, u8 taskId) +static void StopReelButton_Unpress(struct Task *task, u8 taskId) { SetReelButtonTilemap(sReelButtonOffsets[task->data[15]], 0x42, 0x43, 0x52, 0x53); DestroyTask(taskId); @@ -2884,92 +2919,100 @@ static void Task_FlashSlotMachineLights(u8 taskId) #undef sFlashState #undef sFlashDir +#define tState data[0] +#define tNumBolts data[1] +#define tSpriteId data[2] +#define tTimer data[2] // re-used +#define tAnimating data[15] + static void CreatePikaPowerBoltTask(void) { sSlotMachine->pikaPowerBoltTaskId = CreateTask(Task_CreatePikaPowerBolt, 8); } -static void DisplayPikaPower(u8 pikaPower) +static void AddPikaPowerBolt(u8 pikaPower) { struct Task *task = &gTasks[sSlotMachine->pikaPowerBoltTaskId]; - ClearTaskDataFields_2orHigher(task); - task->data[0] = 1; - task->data[1]++; - task->data[15] = 1; // points to a reelIndex + ResetPikaPowerBoltTask(task); + task->tState = 1; + task->tNumBolts++; + task->tAnimating = TRUE; } -static void sub_8104098(void) +static void ResetPikaPowerBolts(void) { struct Task *task = &gTasks[sSlotMachine->pikaPowerBoltTaskId]; - ClearTaskDataFields_2orHigher(task); - task->data[0] = 3; - task->data[15] = 1; // points to a reelIndex + ResetPikaPowerBoltTask(task); + task->tState = 3; + task->tAnimating = TRUE; } -static bool8 sub_81040C8(void) +static bool8 IsPikaPowerBoltAnimating(void) { - return gTasks[sSlotMachine->pikaPowerBoltTaskId].data[15]; + return gTasks[sSlotMachine->pikaPowerBoltTaskId].tAnimating; } static void Task_CreatePikaPowerBolt(u8 taskId) { - sPikaPowerBoltFuncs[gTasks[taskId].data[0]](&gTasks[taskId]); + sPikaPowerBoltFuncs[gTasks[taskId].tState](&gTasks[taskId]); } -static void nullsub_68(struct Task *task) +static void PikaPowerBolt_Idle(struct Task *task) { } -static void sub_810411C(struct Task *task) +static void PikaPowerBolt_AddBolt(struct Task *task) { - task->data[2] = CreatePikaPowerBoltSprite((task->data[1] << 3) + 20, 20); - task->data[0]++; + task->tSpriteId = CreatePikaPowerBoltSprite((task->tNumBolts << 3) + 20, 20); + task->tState++; } -static void sub_8104144(struct Task *task) +// The bolt sprite spins around as it appears +// Once the anim is done, destroy the sprite and set the bolt in the tilemap instead +static void PikaPowerBolt_WaitAnim(struct Task *task) { - if (gSprites[task->data[2]].data[7]) + if (gSprites[task->tSpriteId].data[7]) { - s16 r5 = task->data[1] + 2; + s16 r5 = task->tNumBolts + 2; s16 r3 = 0; s16 r2 = 0; - if (task->data[1] == 1) + if (task->tNumBolts == 1) r3 = 1, r2 = 1; - else if (task->data[1] == 16) + else if (task->tNumBolts == 16) r3 = 2, r2 = 2; sSelectedPikaPowerTile[r2] = sPikaPowerTileTable[r3][0]; LoadBgTilemap(2, &sSelectedPikaPowerTile[r2], 2, r5 + 0x40); - DestroyPikaPowerBoltSprite(task->data[2]); - task->data[0] = 0; - task->data[15] = 0; // points to a reelIndex + DestroyPikaPowerBoltSprite(task->tSpriteId); + task->tState = 0; + task->tAnimating = 0; } } -static void sub_81041AC(struct Task *task) +static void PikaPowerBolt_ClearAll(struct Task *task) { - s16 r5 = task->data[1] + 2; + s16 r5 = task->tNumBolts + 2; s16 r3 = 0; s16 r2 = 3; - if (task->data[1] == 1) + if (task->tNumBolts == 1) r3 = 1, r2 = 1; - else if (task->data[1] == 16) + else if (task->tNumBolts == 16) r3 = 2, r2 = 2; - if (task->data[2] == 0) + if (task->tTimer == 0) { sSelectedPikaPowerTile[r2] = sPikaPowerTileTable[r3][1]; LoadBgTilemap(2, &sSelectedPikaPowerTile[r2], 2, r5 + 0x40); - task->data[1]--; + task->tNumBolts--; } - if (++task->data[2] >= 20) - task->data[2] = 0; - if (task->data[1] == 0) + if (++task->tTimer >= 20) + task->tTimer = 0; + if (task->tNumBolts == 0) { - task->data[0] = 0; - task->data[15] = 0; + task->tState = 0; + task->tAnimating = 0; } } -static void ClearTaskDataFields_2orHigher(struct Task *task) +static void ResetPikaPowerBoltTask(struct Task *task) { u8 i; @@ -3005,34 +3048,41 @@ static void LoadPikaPowerMeter(u8 pikaPower) gTasks[sSlotMachine->pikaPowerBoltTaskId].data[1] = pikaPower; } -static void BeginReeltime(void) +#undef tState +#undef tNumBolts +#undef tSpriteId +#undef tTimer +#undef tAnimating + +#define tState data[0] + +static void BeginReelTime(void) { - u8 taskId = CreateTask(RunReeltimeActions, 7); - RunReeltimeActions(taskId); + u8 taskId = CreateTask(Task_ReelTime, 7); + Task_ReelTime(taskId); } -static bool8 IsFinalTask_RunReelTimeActions(void) +static bool8 IsReelTimeTaskDone(void) { - if (FindTaskIdByFunc(RunReeltimeActions) == TAIL_SENTINEL) + if (FindTaskIdByFunc(Task_ReelTime) == TAIL_SENTINEL) return TRUE; return FALSE; } -static void RunReeltimeActions(u8 taskId) +static void Task_ReelTime(u8 taskId) { - // task.data[0] points to which ReelTimeAction to do, and starts at 0 // task.data[1] has something to do with the threshold // task.data[4] says how many pixels to advance the reel // task.data[5] is a timer - sReeltimeActions[gTasks[taskId].data[0]](&gTasks[taskId]); + sReelTimeActions[gTasks[taskId].tState](&gTasks[taskId]); } -static void ReeltimeAction0(struct Task *task) +static void ReelTime_Init(struct Task *task) { sSlotMachine->reelTimeSpinsLeft = 0; sSlotMachine->reeltimePixelOffset = 0; sSlotMachine->reeltimePosition = 0; - task->data[0]++; + task->tState++; task->data[1] = 0; task->data[2] = 30; task->data[4] = 1280; // reel speed @@ -3051,7 +3101,7 @@ static void ReeltimeAction0(struct Task *task) PlayNewMapMusic(MUS_BD_TIME); } -static void ReeltimeAction1(struct Task *task) +static void ReelTime_WindowEnter(struct Task *task) { s16 r3; gSpriteCoordOffsetX -= 8; @@ -3066,24 +3116,24 @@ static void ReeltimeAction1(struct Task *task) } if (task->data[1] >= 200) { - task->data[0]++; + task->tState++; task->data[3] = 0; } AdvanceReeltimeReel(task->data[4] >> 8); } -static void ReeltimeAction2(struct Task *task) +static void ReelTime_WaitStartPikachu(struct Task *task) { AdvanceReeltimeReel(task->data[4] >> 8); if (++task->data[5] >= 60) { - task->data[0]++; + task->tState++; CreateReelTimeBoltSprites(); CreateReelTimePikachuAuraSprites(); } } -static void ReeltimeAction3(struct Task *task) +static void ReelTime_PikachuSpeedUp1(struct Task *task) { int i; u8 pikachuAnimIds[ARRAY_COUNT(sReelTimePikachuAnimIds)]; @@ -3104,36 +3154,36 @@ static void ReeltimeAction3(struct Task *task) // once speed goes below 256, go to next ReelTimeAction and keep the speed level if (task->data[4] <= 0x100) { - task->data[0]++; + task->tState++; task->data[4] = 0x100; task->data[5] = 0; } } -static void ReeltimeAction4(struct Task *task) +static void ReelTime_PikachuSpeedUp2(struct Task *task) { AdvanceReeltimeReel(task->data[4] >> 8); if (++task->data[5] >= 80) { - task->data[0]++; + task->tState++; task->data[5] = 0; SetReelTimePikachuAuraFlashDelay(2); StartSpriteAnimIfDifferent(&gSprites[sSlotMachine->reelTimePikachuSpriteId], 3); } } -static void ReeltimeAction5(struct Task *task) +static void ReelTime_WaitReel(struct Task *task) { AdvanceReeltimeReel(task->data[4] >> 8); task->data[4] = (u8)task->data[4] + 0x80; if (++task->data[5] >= 80) { - task->data[0]++; + task->tState++; task->data[5] = 0; } } -static void ReeltimeAction6(struct Task *task) +static void ReelTime_CheckExplode(struct Task *task) { AdvanceReeltimeReel(task->data[4] >> 8); task->data[4] = (u8)task->data[4] + 0x40; @@ -3143,21 +3193,21 @@ static void ReeltimeAction6(struct Task *task) if (sSlotMachine->reelTimeDraw) { if (sSlotMachine->reelTimeSpinsLeft <= task->data[6]) - task->data[0]++; + task->tState++; } else if (task->data[6] > 3) { - task->data[0]++; + task->tState++; } - else if (SkipToReeltimeAction14(task->data[6])) + else if (ShouldReelTimeMachineExplode(task->data[6])) { - task->data[0] = 14; + task->tState = 14; // ReelTime_ExplodeMachine } task->data[6]++; } } -static void ReelTimeAction_LandOnOutcome(struct Task *task) +static void ReelTime_LandOnOutcome(struct Task *task) { s16 reeltimePixelOffset = sSlotMachine->reeltimePixelOffset % 20; if (reeltimePixelOffset) @@ -3174,18 +3224,18 @@ static void ReelTimeAction_LandOnOutcome(struct Task *task) if (reeltimePixelOffset == 0 && GetNearbyReelTimeTag(1) == sSlotMachine->reelTimeDraw) { task->data[4] = 0; // stop moving - task->data[0]++; + task->tState++; } } -static void ReeltimeAction8(struct Task *task) +static void ReelTime_PikachuReact(struct Task *task) { if (++task->data[4] >= 60) { StopMapMusic(); DestroyReelTimeBoltSprites(); DestroyReelTimePikachuAuraSprites(); - task->data[0]++; + task->tState++; if(sSlotMachine->reelTimeDraw == 0) { task->data[4] = 0xa0; @@ -3199,7 +3249,7 @@ static void ReeltimeAction8(struct Task *task) gSprites[sSlotMachine->reelTimePikachuSpriteId].animCmdIndex = 0; if (sSlotMachine->pikaPower) { - sub_8104098(); + ResetPikaPowerBolts(); sSlotMachine->pikaPower = 0; } PlayFanfare(MUS_ME_B_SMALL); @@ -3207,13 +3257,13 @@ static void ReeltimeAction8(struct Task *task) } } -static void ReeltimeAction9(struct Task *task) +static void ReelTime_WaitClearPikaPower(struct Task *task) { - if ((task->data[4] == 0 || --task->data[4] == 0) && !sub_81040C8()) - task->data[0]++; + if ((task->data[4] == 0 || --task->data[4] == 0) && !IsPikaPowerBoltAnimating()) + task->tState++; } -static void ReeltimeAction10(struct Task *task) +static void ReelTime_CloseWindow(struct Task *task) { s16 r4; gSpriteCoordOffsetX -= 8; @@ -3224,10 +3274,10 @@ static void ReeltimeAction10(struct Task *task) if (task->data[3] >> 3 <= 25) ClearReelTimeWindowTilemap(r4); else - task->data[0]++; + task->tState++; } -static void ReeltimeAction11(struct Task *task) +static void ReelTime_DestroySprites(struct Task *task) { sSlotMachine->reelTimeSpinsUsed = 0; sSlotMachine->reelTimeSpinsLeft = sSlotMachine->reelTimeDraw; @@ -3240,7 +3290,7 @@ static void ReeltimeAction11(struct Task *task) PlayNewMapMusic(sSlotMachine->backupMapMusic); if (sSlotMachine->reelTimeSpinsLeft == 0) { - DestroyTask(FindTaskIdByFunc(RunReeltimeActions)); + DestroyTask(FindTaskIdByFunc(Task_ReelTime)); } else { @@ -3248,25 +3298,25 @@ static void ReeltimeAction11(struct Task *task) task->data[1] = SlowReelSpeed(); task->data[2] = 0; task->data[3] = 0; - task->data[0]++; + task->tState++; } } -static void ReeltimeAction12(struct Task *task) +static void ReelTime_SetReelIncrement(struct Task *task) { if (sSlotMachine->reelIncrement == task->data[1]) - task->data[0]++; + task->tState++; else if (sSlotMachine->reelPixelOffsets[0] % REEL_SYMBOL_HEIGHT == 0 && (++task->data[2]& 0x07) == 0) sSlotMachine->reelIncrement >>= 1; } -static void ReeltimeAction13(struct Task *task) +static void ReelTime_EndSuccess(struct Task *task) { if (IsDigitalDisplayAnimFinished()) - DestroyTask(FindTaskIdByFunc(RunReeltimeActions)); + DestroyTask(FindTaskIdByFunc(Task_ReelTime)); } -static void ReeltimeAction14(struct Task *task) +static void ReelTime_ExplodeMachine(struct Task *task) { DestroyReelTimeMachineSprites(); DestroyReelTimeBoltSprites(); @@ -3274,7 +3324,7 @@ static void ReeltimeAction14(struct Task *task) CreateReelTimeExplosionSprite(); gSprites[sSlotMachine->reelTimeShadowSpriteIds[0]].invisible = TRUE; StartSpriteAnimIfDifferent(&gSprites[sSlotMachine->reelTimePikachuSpriteId], 5); - task->data[0]++; + task->tState++; task->data[4] = 4; task->data[5] = 0; StopMapMusic(); @@ -3282,7 +3332,7 @@ static void ReeltimeAction14(struct Task *task) PlaySE(SE_W153); } -static void ReeltimeAction15(struct Task *task) +static void ReelTime_WaitExplode(struct Task *task) { gSpriteCoordOffsetY = task->data[4]; SetGpuReg(REG_OFFSET_BG1VOFS, task->data[4]); @@ -3297,23 +3347,23 @@ static void ReeltimeAction15(struct Task *task) CreateBrokenReelTimeMachineSprite(); CreateReelTimeSmokeSprite(); gSprites[sSlotMachine->reelTimeShadowSpriteIds[0]].invisible = FALSE; - task->data[0]++; + task->tState++; task->data[5] = 0; } } -static void ReeltimeAction16(struct Task *task) +static void ReelTime_WaitSmoke(struct Task *task) { gSpriteCoordOffsetY = 0; SetGpuReg(REG_OFFSET_BG1VOFS, 0); if (IsReelTimeSmokeAnimFinished()) { - task->data[0]++; + task->tState++; DestroyReelTimeSmokeSprite(); } } -static void ReeltimeAction17(struct Task *task) +static void ReelTime_EndFailure(struct Task *task) { gSpriteCoordOffsetX = 0; SetGpuReg(REG_OFFSET_BG1HOFS, 0); @@ -3322,7 +3372,7 @@ static void ReeltimeAction17(struct Task *task) DestroyBrokenReelTimeMachineSprite(); DestroyReelTimeShadowSprites(); DestroyReelTimeDuckSprites(); - DestroyTask(FindTaskIdByFunc(RunReeltimeActions)); + DestroyTask(FindTaskIdByFunc(Task_ReelTime)); } static void LoadReelTimeWindowTilemap(s16 a0, s16 a1) @@ -3345,6 +3395,10 @@ static void ClearReelTimeWindowTilemap(s16 a0) } } +#undef tState + +#define tState data[0] + // Info Box is the screen shown when Select is pressed static void OpenInfoBox(u8 digDisplayId) { @@ -3363,19 +3417,19 @@ static bool8 IsInfoBoxClosed(void) static void RunInfoBoxActions(u8 taskId) { - sInfoBoxActions[gTasks[taskId].data[0]](&gTasks[taskId]); + sInfoBoxActions[gTasks[taskId].tState](&gTasks[taskId]); } static void InfoBox_FadeIn(struct Task *task) { BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB(0, 0, 0)); - task->data[0]++; + task->tState++; } static void InfoBox_WaitForFade(struct Task *task) { if (!gPaletteFade.active) - task->data[0]++; + task->tState++; } static void InfoBox_DrawWindow(struct Task *task) @@ -3385,7 +3439,7 @@ static void InfoBox_DrawWindow(struct Task *task) AddWindow(&sWindowTemplate_InfoBox); PutWindowTilemap(1); FillWindowPixelBuffer(1, PIXEL_FILL(0)); - task->data[0]++; + task->tState++; } static void InfoBox_AddText(struct Task *task) @@ -3393,7 +3447,7 @@ static void InfoBox_AddText(struct Task *task) AddTextPrinterParameterized3(1, 1, 2, 5, sColors_ReeltimeHelp, 0, gText_ReelTimeHelp); CopyWindowToVram(1, 3); BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB(0, 0, 0)); - task->data[0]++; + task->tState++; } static void InfoBox_AwaitPlayerInput(struct Task *task) @@ -3405,7 +3459,7 @@ static void InfoBox_AwaitPlayerInput(struct Task *task) CopyWindowToVram(1, 1); RemoveWindow(1); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB(0, 0, 0)); - task->data[0]++; + task->tState++; } } @@ -3413,20 +3467,20 @@ static void InfoBox_LoadSlotMachineTilemap(struct Task *task) { LoadSlotMachineMenuTilemap(); ShowBg(3); - task->data[0]++; + task->tState++; } static void InfoBox_CreateDigitalDisplay(struct Task *task) { CreateDigitalDisplayScene(task->data[1]); - task->data[0]++; + task->tState++; } static void InfoBox_LoadPikaPowerMeter(struct Task *task) { LoadPikaPowerMeter(sSlotMachine->pikaPower); BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB(0, 0, 0)); - task->data[0]++; + task->tState++; } static void InfoBox_FreeTask(struct Task *task) @@ -3434,6 +3488,7 @@ static void InfoBox_FreeTask(struct Task *task) DestroyTask(FindTaskIdByFunc(RunInfoBoxActions)); } +#undef tState #define sWaitForAnim data[7] @@ -4039,7 +4094,7 @@ static u8 CreatePikaPowerBoltSprite(s16 x, s16 y) static void SpriteCB_PikaPowerBolt(struct Sprite *sprite) { if (sprite->affineAnimEnded) - sprite->data[7] = 1; + sprite->data[7] = TRUE; } static void DestroyPikaPowerBoltSprite(u8 spriteId) @@ -4461,7 +4516,7 @@ static void EndDigitalDisplayScene_InsertBet(void) sSlotMachine->winOut = WINOUT_WIN01_BG_ALL | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR; } -static void sub_81063C0(void) +static void LoadSlotMachineGfx(void) { u8 i; @@ -4513,7 +4568,7 @@ static void LoadMenuGfx(void) LoadPalette(sUnkPalette, 208, 32); } -static void sub_81064B8(void) +static void LoadMenuAndReelOverlayTilemaps(void) { LoadSlotMachineMenuTilemap(); LoadSlotMachineReelOverlay(); @@ -4793,7 +4848,7 @@ static const u8 sReelTimeProbabilities_LuckyGame[][17] = { { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 4, 4, 60} }; -static const u16 sProbabilityTable_SkipToReeltimeAction14[] = { +static const u16 sReelTimeExplodeProbability[] = { 128, 175, 200, 225, 256 }; @@ -7100,7 +7155,7 @@ static const u8 sBetToMatchLineIds[MAX_BET][2] = {MATCH_NWSE_DIAG, MATCH_NESW_DIAG}, // Bet 3 }; -static const u8 sMatchLinesPerBet[] = { 1, 2, 2 }; +static const u8 sMatchLinesPerBet[MAX_BET] = { 1, 2, 2 }; // Flashing lights at top of slot machine, brightest point inside light goes from toward center of machine, to middle, to toward edges static const u16 sFlashingLightsInside_Pal[] = INCBIN_U16("graphics/slot_machine/flashing_lights_inside.gbapal"); From b39047226b790662ba5e67a113a68db06fdaea24 Mon Sep 17 00:00:00 2001 From: PokeCodec Date: Wed, 29 Jul 2020 22:34:10 -0400 Subject: [PATCH 035/101] Match CreateWaterPulseRingBubbles --- src/battle_anim_water.c | 234 ++++++---------------------------------- 1 file changed, 34 insertions(+), 200 deletions(-) diff --git a/src/battle_anim_water.c b/src/battle_anim_water.c index 88af2cdec9..66f277d859 100644 --- a/src/battle_anim_water.c +++ b/src/battle_anim_water.c @@ -52,7 +52,7 @@ static void CreateWaterSpoutLaunchDroplets(struct Task*, u8); static void CreateWaterSpoutRainDroplet(struct Task*, u8); static void AnimTask_WaterSport_Step(u8); static void CreateWaterSportDroplet(struct Task*); -static void CreateWaterPulseRingBubbles(struct Sprite*, int, int); +static void CreateWaterPulseRingBubbles(struct Sprite*, s32, s32); // Both unused const u8 gUnknown_8593C80[] = INCBIN_U8("graphics/unknown/unknown_593C80.4bpp"); @@ -794,7 +794,7 @@ static void AnimSmallBubblePair_Step(struct Sprite *sprite) sprite->pos2.x = Sin(sprite->data[0], 4); sprite->data[1] += 48; sprite->pos2.y = -(sprite->data[1] >> 8); - if (--sprite->data[7] == -1) + if (sprite->data[7]-- == 0) DestroyAnimSprite(sprite); } @@ -1931,216 +1931,50 @@ static void AnimWaterPulseRing_Step(struct Sprite *sprite) sprite->data[0]++; } -#ifdef NONMATCHING -static void CreateWaterPulseRingBubbles(struct Sprite *sprite, int xDiff, int yDiff) +static void CreateWaterPulseRingBubbles(struct Sprite *sprite, s32 xDiff, s32 yDiff) { - s16 something = sprite->data[0] / 2; - s16 combinedX = sprite->pos1.x + sprite->pos2.x; - s16 combinedY = sprite->pos1.y + sprite->pos2.y; - s16 randomSomethingY = yDiff + (Random2() % 10) - 5; - s16 randomSomethingX = -xDiff + (Random2() % 10) - 5; - s16 i; + s16 combinedX, combinedY; + s16 i, something; + s16 unusedVar = 1; //unusedVar is needed to match + s16 somethingRandomX, somethingRandomY; u8 spriteId; - for (i = 0; i <= 0; i++) + something = sprite->data[0] / 2; + combinedX = sprite->pos1.x + sprite->pos2.x; + combinedY = sprite->pos1.y + sprite->pos2.y; + if (yDiff < 0) + unusedVar *= -1; //Needed to Match + somethingRandomY = yDiff + (Random2() % 10) - 5; + somethingRandomX = -xDiff + (Random2() % 10) - 5; + + for (i = 0; i < 1; i++) { spriteId = CreateSprite(&gWaterPulseRingBubbleSpriteTemplate, combinedX, combinedY + something, 130); gSprites[spriteId].data[0] = 20; - gSprites[spriteId].data[1] = randomSomethingY; + gSprites[spriteId].data[1] = somethingRandomY; gSprites[spriteId].subpriority = GetBattlerSpriteSubpriority(gBattleAnimAttacker) - 1; - if (randomSomethingX < 0) - gSprites[spriteId].data[2] = -randomSomethingX; + if (somethingRandomX < 0) + { + gSprites[spriteId].data[2] = -somethingRandomX; + } else - gSprites[spriteId].data[2] = randomSomethingX; + { + gSprites[spriteId].data[2] = somethingRandomX; + } } - for (i = 0; i <= 0; i++) + for (i = 0; i < 1; i++) { spriteId = CreateSprite(&gWaterPulseRingBubbleSpriteTemplate, combinedX, combinedY - something, 130); gSprites[spriteId].data[0] = 20; - gSprites[spriteId].data[1] = randomSomethingY; + gSprites[spriteId].data[1] = somethingRandomY; gSprites[spriteId].subpriority = GetBattlerSpriteSubpriority(gBattleAnimAttacker) - 1; - if (randomSomethingX > 0) - gSprites[spriteId].data[2] = -randomSomethingX; + if (somethingRandomX > 0) + { + gSprites[spriteId].data[2] = -somethingRandomX; + } else - gSprites[spriteId].data[2] = randomSomethingX; + { + gSprites[spriteId].data[2] = somethingRandomX; + } } -} -#else -NAKED -static void CreateWaterPulseRingBubbles(struct Sprite *sprite, int xDiff, int yDiff) -{ - asm_unified("push {r4-r7,lr}\n\ - mov r7, r10\n\ - mov r6, r9\n\ - mov r5, r8\n\ - push {r5-r7}\n\ - sub sp, 0x18\n\ - adds r4, r1, 0\n\ - adds r5, r2, 0\n\ - movs r2, 0x2E\n\ - ldrsh r1, [r0, r2]\n\ - lsrs r2, r1, 31\n\ - adds r1, r2\n\ - lsls r1, 15\n\ - lsrs r1, 16\n\ - str r1, [sp]\n\ - ldrh r1, [r0, 0x24]\n\ - ldrh r3, [r0, 0x20]\n\ - adds r1, r3\n\ - lsls r1, 16\n\ - lsrs r1, 16\n\ - mov r8, r1\n\ - ldrh r1, [r0, 0x26]\n\ - ldrh r0, [r0, 0x22]\n\ - adds r1, r0\n\ - lsls r1, 16\n\ - lsrs r1, 16\n\ - mov r10, r1\n\ - bl Random2\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - movs r1, 0xA\n\ - bl __umodsi3\n\ - adds r0, r5, r0\n\ - subs r0, 0x5\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - mov r9, r0\n\ - bl Random2\n\ - negs r4, r4\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - movs r1, 0xA\n\ - bl __umodsi3\n\ - adds r4, r0\n\ - subs r4, 0x5\n\ - lsls r4, 16\n\ - lsrs r7, r4, 16\n\ - movs r6, 0\n\ - mov r0, r8\n\ - lsls r0, 16\n\ - mov r8, r0\n\ - mov r1, r10\n\ - lsls r1, 16\n\ - str r1, [sp, 0xC]\n\ - ldr r2, [sp]\n\ - lsls r2, 16\n\ - str r2, [sp, 0x10]\n\ - asrs r1, 16\n\ - lsls r0, r7, 16\n\ - asrs r5, r0, 16\n\ - str r0, [sp, 0x14]\n\ - negs r3, r5\n\ - str r3, [sp, 0x4]\n\ - asrs r0, r2, 16\n\ - adds r1, r0\n\ - lsls r1, 16\n\ - mov r10, r1\n\ -_08108DE2:\n\ - ldr r0, =gWaterPulseRingBubbleSpriteTemplate\n\ - mov r2, r8\n\ - asrs r1, r2, 16\n\ - mov r3, r10\n\ - asrs r2, r3, 16\n\ - movs r3, 0x82\n\ - bl CreateSprite\n\ - lsls r0, 24\n\ - lsrs r2, r0, 24\n\ - ldr r1, =gSprites\n\ - lsls r0, r2, 4\n\ - adds r0, r2\n\ - lsls r0, 2\n\ - adds r4, r0, r1\n\ - movs r0, 0x14\n\ - strh r0, [r4, 0x2E]\n\ - mov r0, r9\n\ - strh r0, [r4, 0x30]\n\ - ldr r0, =gBattleAnimAttacker\n\ - ldrb r0, [r0]\n\ - bl GetBattlerSpriteSubpriority\n\ - subs r0, 0x1\n\ - adds r1, r4, 0\n\ - adds r1, 0x43\n\ - strb r0, [r1]\n\ - cmp r5, 0\n\ - bge _08108E30\n\ - mov r1, sp\n\ - ldrh r1, [r1, 0x4]\n\ - strh r1, [r4, 0x32]\n\ - b _08108E32\n\ - .pool\n\ -_08108E30:\n\ - strh r7, [r4, 0x32]\n\ -_08108E32:\n\ - lsls r0, r6, 16\n\ - movs r2, 0x80\n\ - lsls r2, 9\n\ - adds r0, r2\n\ - lsrs r6, r0, 16\n\ - cmp r0, 0\n\ - ble _08108DE2\n\ - movs r6, 0\n\ - ldr r3, [sp, 0xC]\n\ - asrs r1, r3, 16\n\ - ldr r0, [sp, 0x14]\n\ - asrs r5, r0, 16\n\ - negs r2, r5\n\ - str r2, [sp, 0x8]\n\ - ldr r3, [sp, 0x10]\n\ - asrs r0, r3, 16\n\ - subs r1, r0\n\ - lsls r1, 16\n\ - mov r10, r1\n\ -_08108E58:\n\ - ldr r0, =gWaterPulseRingBubbleSpriteTemplate\n\ - mov r2, r8\n\ - asrs r1, r2, 16\n\ - mov r3, r10\n\ - asrs r2, r3, 16\n\ - movs r3, 0x82\n\ - bl CreateSprite\n\ - lsls r0, 24\n\ - lsrs r2, r0, 24\n\ - ldr r1, =gSprites\n\ - lsls r0, r2, 4\n\ - adds r0, r2\n\ - lsls r0, 2\n\ - adds r4, r0, r1\n\ - movs r0, 0x14\n\ - strh r0, [r4, 0x2E]\n\ - mov r0, r9\n\ - strh r0, [r4, 0x30]\n\ - ldr r0, =gBattleAnimAttacker\n\ - ldrb r0, [r0]\n\ - bl GetBattlerSpriteSubpriority\n\ - subs r0, 0x1\n\ - adds r1, r4, 0\n\ - adds r1, 0x43\n\ - strb r0, [r1]\n\ - cmp r5, 0\n\ - ble _08108EA8\n\ - mov r1, sp\n\ - ldrh r1, [r1, 0x8]\n\ - strh r1, [r4, 0x32]\n\ - b _08108EAA\n\ - .pool\n\ -_08108EA8:\n\ - strh r7, [r4, 0x32]\n\ -_08108EAA:\n\ - lsls r0, r6, 16\n\ - movs r2, 0x80\n\ - lsls r2, 9\n\ - adds r0, r2\n\ - lsrs r6, r0, 16\n\ - cmp r0, 0\n\ - ble _08108E58\n\ - add sp, 0x18\n\ - pop {r3-r5}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - mov r10, r5\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n"); -} -#endif +} \ No newline at end of file From f39de3f50367eabd287288815449dd8de8aab30a Mon Sep 17 00:00:00 2001 From: pi1024e Date: Wed, 29 Jul 2020 22:47:03 -0400 Subject: [PATCH 036/101] terminal newline --- src/battle_anim_water.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/battle_anim_water.c b/src/battle_anim_water.c index 66f277d859..fa2f38c4bf 100644 --- a/src/battle_anim_water.c +++ b/src/battle_anim_water.c @@ -1977,4 +1977,4 @@ static void CreateWaterPulseRingBubbles(struct Sprite *sprite, s32 xDiff, s32 yD gSprites[spriteId].data[2] = somethingRandomX; } } -} \ No newline at end of file +} From 22b5b6b0741a5e0831cc78ffaef7c1f6407044f0 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Wed, 29 Jul 2020 04:46:58 -0400 Subject: [PATCH 037/101] Start documenting roulette --- data/event_scripts.s | 1 + data/scripts/roulette.inc | 4 +- .../{poke_icons.png => grid_icons.png} | Bin .../roulette/{85B65D0.pal => unused_1.pal} | 0 .../roulette/{85B65F0.pal => unused_2.pal} | 0 .../roulette/{85B6610.pal => unused_3.pal} | 0 .../roulette/{85B6630.pal => unused_4.pal} | 0 graphics_file_rules.mk | 2 +- include/constants/coins.h | 1 + include/constants/roulette.h | 7 + include/graphics.h | 12 +- include/roulette_util.h | 4 +- src/coins.c | 2 +- src/graphics.c | 13 +- src/roulette.c | 3265 +++++++++-------- src/roulette_util.c | 4 +- 16 files changed, 1764 insertions(+), 1551 deletions(-) rename graphics/roulette/{poke_icons.png => grid_icons.png} (100%) rename graphics/roulette/{85B65D0.pal => unused_1.pal} (100%) rename graphics/roulette/{85B65F0.pal => unused_2.pal} (100%) rename graphics/roulette/{85B6610.pal => unused_3.pal} (100%) rename graphics/roulette/{85B6630.pal => unused_4.pal} (100%) create mode 100644 include/constants/roulette.h diff --git a/data/event_scripts.s b/data/event_scripts.s index 7cc5960d47..058de953be 100644 --- a/data/event_scripts.s +++ b/data/event_scripts.s @@ -40,6 +40,7 @@ #include "constants/moves.h" #include "constants/party_menu.h" #include "constants/pokemon.h" +#include "constants/roulette.h" #include "constants/script_menu.h" #include "constants/secret_bases.h" #include "constants/songs.h" diff --git a/data/scripts/roulette.inc b/data/scripts/roulette.inc index 9aea650542..f590ca3585 100644 --- a/data/scripts/roulette.inc +++ b/data/scripts/roulette.inc @@ -6,7 +6,7 @@ Roulette_EventScript_Table1:: @ 82A5AB1 getpricereduction POKENEWS_GAME_CORNER compare VAR_RESULT, FALSE goto_if_eq Roulette_EventScript_Play - addvar VAR_0x8004, 128 + addvar VAR_0x8004, ROULETTE_SPECIAL_RATE goto Roulette_EventScript_Play end @@ -18,7 +18,7 @@ Roulette_EventScript_Table2:: @ 82A5ADF getpricereduction POKENEWS_GAME_CORNER compare VAR_RESULT, FALSE goto_if_eq Roulette_EventScript_Play - addvar VAR_0x8004, 128 + addvar VAR_0x8004, ROULETTE_SPECIAL_RATE goto Roulette_EventScript_Play end diff --git a/graphics/roulette/poke_icons.png b/graphics/roulette/grid_icons.png similarity index 100% rename from graphics/roulette/poke_icons.png rename to graphics/roulette/grid_icons.png diff --git a/graphics/roulette/85B65D0.pal b/graphics/roulette/unused_1.pal similarity index 100% rename from graphics/roulette/85B65D0.pal rename to graphics/roulette/unused_1.pal diff --git a/graphics/roulette/85B65F0.pal b/graphics/roulette/unused_2.pal similarity index 100% rename from graphics/roulette/85B65F0.pal rename to graphics/roulette/unused_2.pal diff --git a/graphics/roulette/85B6610.pal b/graphics/roulette/unused_3.pal similarity index 100% rename from graphics/roulette/85B6610.pal rename to graphics/roulette/unused_3.pal diff --git a/graphics/roulette/85B6630.pal b/graphics/roulette/unused_4.pal similarity index 100% rename from graphics/roulette/85B6630.pal rename to graphics/roulette/unused_4.pal diff --git a/graphics_file_rules.mk b/graphics_file_rules.mk index 42fe821559..f2d14ef3c0 100644 --- a/graphics_file_rules.mk +++ b/graphics_file_rules.mk @@ -483,7 +483,7 @@ $(ROULETTEGFXDIR)/roulette_tilt.4bpp: $(ROULETTEGFXDIR)/shroomish.4bpp \ $(ROULETTEGFXDIR)/tailow.4bpp @cat $^ >$@ -$(ROULETTEGFXDIR)/poke_icons2.4bpp: $(ROULETTEGFXDIR)/wynaut.4bpp \ +$(ROULETTEGFXDIR)/board_icons.4bpp: $(ROULETTEGFXDIR)/wynaut.4bpp \ $(ROULETTEGFXDIR)/azurill.4bpp \ $(ROULETTEGFXDIR)/skitty.4bpp \ $(ROULETTEGFXDIR)/makuhita.4bpp diff --git a/include/constants/coins.h b/include/constants/coins.h index 3ae3bb23f9..e65e981d6d 100644 --- a/include/constants/coins.h +++ b/include/constants/coins.h @@ -2,5 +2,6 @@ #define GUARD_CONSTANTS_COINS_H #define MAX_COINS 9999 +#define MAX_COIN_DIGITS 4 #endif // GUARD_CONSTANTS_COINS_H diff --git a/include/constants/roulette.h b/include/constants/roulette.h new file mode 100644 index 0000000000..2ab17e4765 --- /dev/null +++ b/include/constants/roulette.h @@ -0,0 +1,7 @@ +#ifndef GUARD_CONSTANTS_ROULETTE_H +#define GUARD_CONSTANTS_ROULETTE_H + +// Flag set in gSpecialVar_0x8004 when playing Roulette on a Game Corner service day +#define ROULETTE_SPECIAL_RATE (1 << 7) + +#endif // GUARD_CONSTANTS_ROULETTE_H diff --git a/include/graphics.h b/include/graphics.h index 8514d49bdf..cf2abb8251 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -4919,13 +4919,13 @@ extern const u32 gPartyMenuPokeball_Pal[]; extern const u32 gStatusPal_Icons[]; // Roulette -extern const u32 gRouletteMenuTiles[]; -extern const u32 gRouletteWheelTiles[]; +extern const u32 gRouletteMenu_Gfx[]; +extern const u32 gRouletteWheel_Gfx[]; extern const u32 gRouletteCenter_Gfx[]; -extern const u32 gRouletteHeadersTiles[]; -extern const u32 gRouletteCreditTiles[]; -extern const u32 gRouletteNumbersTiles[]; -extern const u32 gRouletteMultiplierTiles[]; +extern const u32 gRouletteHeaders_Gfx[]; +extern const u32 gRouletteCredit_Gfx[]; +extern const u32 gRouletteNumbers_Gfx[]; +extern const u32 gRouletteMultiplier_Gfx[]; // Contest util extern const u32 gContestResults_Gfx[]; diff --git a/include/roulette_util.h b/include/roulette_util.h index 76752fe749..85b8de1f37 100644 --- a/include/roulette_util.h +++ b/include/roulette_util.h @@ -41,8 +41,8 @@ void MarkUsedPulseBlendPalettes(struct PulseBlend *, u16, u8); void UnloadUsedPulseBlendPalettes(struct PulseBlend *, u16, u8); void UnmarkUsedPulseBlendPalettes(struct PulseBlend *, u16, u8); void UpdatePulseBlend(struct PulseBlend *); -void sub_8152008(u16 *dest, u16 src, u8 left, u8 top, u8 width, u8 height); -void sub_8152058(u16 *dest, u16 *src, u8 left, u8 top, u8 width, u8 height); +void ClearGridSelectionRect(u16 *dest, u16 src, u8 left, u8 top, u8 width, u8 height); +void SetGridSelectionRect(u16 *dest, u16 *src, u8 left, u8 top, u8 width, u8 height); void task_tutorial_controls_fadein(struct UnkStruct0 *r0); void sub_8151678(struct UnkStruct0 *r0); u8 sub_815168C(struct UnkStruct0 *r0, u8 r1, const struct UnkStruct1 *r2); diff --git a/src/coins.c b/src/coins.c index 302817f8db..52c7dd3ece 100644 --- a/src/coins.c +++ b/src/coins.c @@ -14,7 +14,7 @@ void PrintCoinsString(u32 coinAmount) { u32 xAlign; - ConvertIntToDecimalStringN(gStringVar1, coinAmount, STR_CONV_MODE_RIGHT_ALIGN, 4); + ConvertIntToDecimalStringN(gStringVar1, coinAmount, STR_CONV_MODE_RIGHT_ALIGN, MAX_COIN_DIGITS); StringExpandPlaceholders(gStringVar4, gText_Coins); xAlign = GetStringRightAlignXOffset(1, gStringVar4, 0x40); diff --git a/src/graphics.c b/src/graphics.c index b774c5ad21..48323467d0 100644 --- a/src/graphics.c +++ b/src/graphics.c @@ -1227,13 +1227,14 @@ const u32 gCableCar_Gfx[] = INCBIN_U32("graphics/misc/cable_car.4bpp.lz"); const u32 gCableCarDoor_Gfx[] = INCBIN_U32("graphics/misc/cable_car_door.4bpp.lz"); const u32 gCableCarCord_Gfx[] = INCBIN_U32("graphics/misc/cable_car_cord.4bpp.lz"); -const u32 gRouletteMenuTiles[] = INCBIN_U32("graphics/roulette/window.4bpp.lz"); -const u32 gRouletteWheelTiles[] = INCBIN_U32("graphics/roulette/wheel.8bpp.lz"); +// Roulette +const u32 gRouletteMenu_Gfx[] = INCBIN_U32("graphics/roulette/window.4bpp.lz"); +const u32 gRouletteWheel_Gfx[] = INCBIN_U32("graphics/roulette/wheel.8bpp.lz"); const u32 gRouletteCenter_Gfx[] = INCBIN_U32("graphics/roulette/center.4bpp.lz"); -const u32 gRouletteHeadersTiles[] = INCBIN_U32("graphics/roulette/headers.4bpp.lz"); -const u32 gRouletteCreditTiles[] = INCBIN_U32("graphics/roulette/credit.4bpp.lz"); -const u32 gRouletteNumbersTiles[] = INCBIN_U32("graphics/roulette/numbers.4bpp.lz"); -const u32 gRouletteMultiplierTiles[] = INCBIN_U32("graphics/roulette/multiplier.4bpp.lz"); +const u32 gRouletteHeaders_Gfx[] = INCBIN_U32("graphics/roulette/headers.4bpp.lz"); +const u32 gRouletteCredit_Gfx[] = INCBIN_U32("graphics/roulette/credit.4bpp.lz"); +const u32 gRouletteNumbers_Gfx[] = INCBIN_U32("graphics/roulette/numbers.4bpp.lz"); +const u32 gRouletteMultiplier_Gfx[] = INCBIN_U32("graphics/roulette/multiplier.4bpp.lz"); #include "data/graphics/mail.h" diff --git a/src/roulette.c b/src/roulette.c index 1015687af9..983a96e3ff 100644 --- a/src/roulette.c +++ b/src/roulette.c @@ -26,10 +26,170 @@ #include "trig.h" #include "tv.h" #include "window.h" +#include "constants/coins.h" #include "constants/rgb.h" +#include "constants/roulette.h" #include "constants/species.h" #include "constants/songs.h" +#define BALLS_PER_ROUND 6 + +#define NUM_BOARD_COLORS 3 // Grid rows +#define NUM_BOARD_POKES 4 // Grid columns +#define NUM_ROULETTE_SLOTS (NUM_BOARD_COLORS * NUM_BOARD_POKES) + +// IDs for grid selections when betting +#define SELECTION_NONE 0 +#define COL_WYNAUT 1 +#define COL_AZURILL 2 +#define COL_SKITTY 3 +#define COL_MAKUHITA 4 +#define ROW_ORANGE (COL_MAKUHITA + 1) +#define SQU_ORANGE_WYNAUT (ROW_ORANGE + COL_WYNAUT) +#define SQU_ORANGE_AZURILL (ROW_ORANGE + COL_AZURILL) +#define SQU_ORANGE_SKITTY (ROW_ORANGE + COL_SKITTY) +#define SQU_ORANGE_MAKUHITA (ROW_ORANGE + COL_MAKUHITA) +#define ROW_GREEN (SQU_ORANGE_MAKUHITA + 1) +#define SQU_GREEN_WYNAUT (ROW_GREEN + COL_WYNAUT) +#define SQU_GREEN_AZURILL (ROW_GREEN + COL_AZURILL) +#define SQU_GREEN_SKITTY (ROW_GREEN + COL_SKITTY) +#define SQU_GREEN_MAKUHITA (ROW_GREEN + COL_MAKUHITA) +#define ROW_PURPLE (SQU_GREEN_MAKUHITA + 1) +#define SQU_PURPLE_WYNAUT (ROW_PURPLE + COL_WYNAUT) +#define SQU_PURPLE_AZURILL (ROW_PURPLE + COL_AZURILL) +#define SQU_PURPLE_SKITTY (ROW_PURPLE + COL_SKITTY) +#define SQU_PURPLE_MAKUHITA (ROW_PURPLE + COL_MAKUHITA) +#define NUM_GRID_SELECTIONS SQU_PURPLE_MAKUHITA + +#define GET_COL(selectionId)((selectionId) % (NUM_BOARD_POKES + 1)) +#define GET_ROW(selectionId)((selectionId) / (NUM_BOARD_POKES + 1) * (NUM_BOARD_POKES + 1)) + +// Flags for the above selections, used to set which spaces have been hit or bet on +#define F_WYNAUT_COL (1 << COL_WYNAUT) +#define F_AZURILL_COL (1 << COL_AZURILL) +#define F_SKITTY_COL (1 << COL_SKITTY) +#define F_MAKUHITA_COL (1 << COL_MAKUHITA) +#define F_ORANGE_ROW (1 << ROW_ORANGE) +#define F_ORANGE_WYNAUT (1 << SQU_ORANGE_WYNAUT) +#define F_ORANGE_AZURILL (1 << SQU_ORANGE_AZURILL) +#define F_ORANGE_SKITTY (1 << SQU_ORANGE_SKITTY) +#define F_ORANGE_MAKUHITA (1 << SQU_ORANGE_MAKUHITA) +#define F_GREEN_ROW (1 << ROW_GREEN) +#define F_GREEN_WYNAUT (1 << SQU_GREEN_WYNAUT) +#define F_GREEN_AZURILL (1 << SQU_GREEN_AZURILL) +#define F_GREEN_SKITTY (1 << SQU_GREEN_SKITTY) +#define F_GREEN_MAKUHITA (1 << SQU_GREEN_MAKUHITA) +#define F_PURPLE_ROW (1 << ROW_PURPLE) +#define F_PURPLE_WYNAUT (1 << SQU_PURPLE_WYNAUT) +#define F_PURPLE_AZURILL (1 << SQU_PURPLE_AZURILL) +#define F_PURPLE_SKITTY (1 << SQU_PURPLE_SKITTY) +#define F_PURPLE_MAKUHITA (1 << SQU_PURPLE_MAKUHITA) + +#define MAX_MULTIPLIER 12 + +#define PALTAG_SHADOW 1 +#define PALTAG_BALL 2 +#define PALTAG_BALL_COUNTER 3 +#define PALTAG_INTERFACE 5 +#define PALTAG_SHROOMISH 6 +#define PALTAG_TAILLOW 7 +#define PALTAG_GRID_ICONS 8 +#define PALTAG_WYNAUT 9 +#define PALTAG_AZURILL 10 +#define PALTAG_SKITTY 11 +#define PALTAG_MAKUHITA 12 + +#define GFXTAG_BOARD_ICONS 0 +#define GFXTAG_HEADERS 4 +#define GFXTAG_GRID_ICONS 5 +#define GFXTAG_BOARD_CENTER 6 +#define GFXTAG_CREDIT 7 +#define GFXTAG_CREDIT_DIGIT 8 +#define GFXTAG_MULTIPLIER 9 +#define GFXTAG_BALL_COUNTER 10 +#define GFXTAG_CURSOR 11 +#define GFXTAG_BALL 12 +#define GFXTAG_SHROOMISH_TAILLOW 13 +#define GFXTAG_SHADOW 14 + +// 2 different Roulette tables with 2 different rates (normal vs service day special) +// & 1 gets which table, >> 7 gets if ROULETTE_SPECIAL_RATE is set +#define GET_TABLE_ID(var)(((var) & 1) + (((var) >> 7) * 2)) + +#define HAS_SHROOMISH (1 << 0) +#define HAS_TAILLOW (1 << 1) + +enum { + SPR_BALL_1, + SPR_BALL_2, + SPR_BALL_3, + SPR_BALL_4, + SPR_BALL_5, + SPR_BALL_6, + SPR_6, + SPR_BOARD_ICON_ORANGE_WYNAUT, + SPR_BOARD_ICON_GREEN_AZURILL, + SPR_BOARD_ICON_PURPLE_SKITTY, + SPR_BOARD_ICON_ORANGE_MAKUHITA, + SPR_BOARD_ICON_GREEN_WYNAUT, + SPR_BOARD_ICON_PURPLE_AZURILL, + SPR_BOARD_ICON_ORANGE_SKITTY, + SPR_BOARD_ICON_GREEN_MAKUHITA, + SPR_BOARD_ICON_PURPLE_WYNAUT, + SPR_BOARD_ICON_ORANGE_AZURILL, + SPR_BOARD_ICON_GREEN_SKITTY, + SPR_BOARD_ICON_PURPLE_MAKUHITA, + SPR_19, + SPR_CREDIT, + SPR_CREDIT_DIG_1, + SPR_CREDIT_DIG_10, + SPR_CREDIT_DIG_100, + SPR_CREDIT_DIG_1000, + SPR_MULTIPLIER, + SPR_BALL_COUNTER_1, + SPR_BALL_COUNTER_2, + SPR_BALL_COUNTER_3, + SPR_GRID_ICON_ORANGE_WYNAUT, + SPR_GRID_ICON_2, + SPR_GRID_ICON_3, + SPR_GRID_ICON_4, + SPR_GRID_ICON_5, + SPR_GRID_ICON_6, + SPR_GRID_ICON_7, + SPR_GRID_ICON_8, + SPR_GRID_ICON_9, + SPR_GRID_ICON_10, + SPR_GRID_ICON_11, + SPR_GRID_ICON_12, + SPR_POKE_HEADER_1, + SPR_POKE_HEADER_2, + SPR_POKE_HEADER_3, + SPR_POKE_HEADER_4, + SPR_COLOR_HEADER_1, + SPR_COLOR_HEADER_2, + SPR_COLOR_HEADER_3, + SPR_WIN_SLOT_CURSOR, + SPR_GRID_BALL_1, + SPR_GRID_BALL_2, + SPR_GRID_BALL_3, + SPR_GRID_BALL_4, + SPR_GRID_BALL_5, + SPR_GRID_BALL_6, + SPR_CLEAR_MON, // Shroomish/Taillow + SPR_CLEAR_MON_SHADOW_1, + SPR_CLEAR_MON_SHADOW_2, + SPR_58, + SPR_59, + SPR_60, + SPR_61, + SPR_62, + SPR_63, +}; + +// Start points for sprite IDs that are looped over +#define SPR_BOARD_ICONS SPR_BOARD_ICON_ORANGE_WYNAUT +#define SPR_GRID_ICONS SPR_GRID_ICON_ORANGE_WYNAUT + struct StructgUnknown_083F8DF4 { u8 var00; @@ -51,49 +211,49 @@ struct StructgUnknown_083F8DF4 float var1C; }; -struct StructgUnknown_085B6154 +struct GridSelection { u8 var00; - u8 var01_0:4; - u8 var01_4:4; - u8 var02; - u8 var03; - u8 var04; - u8 var05; + u8 baseMultiplier:4; + u8 column:4; // Never read + u8 row; // Never read + u8 x; + u8 y; + u8 var05; // Never read u8 var06; - u32 var08; - u32 var0C; + u32 flag; + u32 inSelectionFlags; u16 var10; }; -struct StructgUnknown_083F8D90 +struct RouletteSlot { - u8 var00; - u8 var01; - u8 var02; - u32 var04; + u8 id1; // Never read + u8 id2; // Never read + u8 gridSquare; + u32 flag; }; -EWRAM_DATA struct Roulette +static EWRAM_DATA struct Roulette { u8 var00; u8 var01; - u8 var02; - u8 var03_0:5; - u8 var03_5:1; - u8 var03_6:1; - u8 var03_7:1; - u8 var04_0:2; + u8 partySpeciesFlags; + bool8 useTaillow:5; + bool8 var03_5:1; + bool8 var03_6:1; + bool8 var03_7:1; + u8 tableId:2; u8 var04_2:5; - u8 var04_7:1; - u32 var08; - u8 var0C[6]; - u8 var12[4]; - u8 var16[3]; - u8 var19; - u8 var1A_0:4; - u8 var1A_4:4; - u8 var1B[6]; + bool8 isSpecialRate:1; + u32 hitFlags; + u8 hitSquares[BALLS_PER_ROUND]; + u8 pokeHits[NUM_BOARD_POKES]; + u8 colorHits[NUM_BOARD_COLORS]; + u8 minBet; + u8 curBallNum:4; // Never actually gets incremented + u8 unk:4; // Never read + u8 betSelection[BALLS_PER_ROUND]; // Because curBallNum is used as the only index, only the first element is ever used (prev bet selections are never needed) u8 var21; u8 var22; u8 var23; @@ -104,7 +264,7 @@ EWRAM_DATA struct Roulette struct OamMatrix var2C; u16 var34; struct Sprite *var38; - u8 var3C[MAX_SPRITES]; // Sprite IDs + u8 spriteIds[MAX_SPRITES]; // Sprite IDs u8 var7C; u8 var7D; u8 var7E; @@ -123,70 +283,71 @@ EWRAM_DATA struct Roulette u8 varA4; u8 varA5; u8 v51[2]; - u16 varA8; - u16 varAA; - TaskFunc varAC; + u16 taskWaitDelay; + u16 taskWaitKey; + TaskFunc nextTask; u8 v46[4]; TaskFunc varB4; struct UnkStruct0 varB8; u16 tilemapBuffers[7][0x400]; u16 *unk_397C; -} *gUnknown_0203AB88 = NULL; -EWRAM_DATA u8 gUnknown_0203AB8C = 0; +} *sRoulette = NULL; -static void sub_8140814(u8); -static void sub_81408A8(u8); -static void sub_8140968(u8); -static void sub_8140994(u8); -static void sub_8140BD0(u8); -static void sub_8141040(u8); -static void sub_81410FC(u8); -static void sub_8141344(u8); -static void sub_814155C(u8); -static void sub_81415D4(u8); -static void sub_81416D4(u8); +static EWRAM_DATA u8 sTextWindowId = 0; + +static void Task_SpinBoard(u8); +static void Task_StartPlaying(u8); +static void Task_ContinuePlaying(u8); +static void Task_StopPlaying(u8); +static void Task_SelectFirstEmptySquare(u8); +static void Task_HandleBetGridInput(u8); +static void Task_SlideGridOffscreen(u8); +static void Task_RollBall(u8); +static void Task_EndBallRoll(u8); +static void Task_RecordBallHit(u8); +static void Task_SlideGridOnscreen(u8); static void sub_8141778(u8); -static void sub_814189C(u8); -static void sub_8141A18(u8); -static void sub_8141AC0(u8); -static void sub_8141B58(u8); -static void dp01t_12_3_battle_menu(u8); -static void sub_8141DE4(u8); -static void sub_8141E7C(u8); -static void sub_8141F7C(u8 taskId, TaskFunc r1, u16 r2, u16 r3); +static void Task_PrintSpinResult(u8); +static void Task_PrintPayout(u8); +static void Task_EndTurn(u8); +static void Task_TryPrintEndTurnMsg(u8); +static void Task_ClearBoard(u8); +static void ExitRoulette(u8); +static void Task_ExitRoulette(u8); +static void StartTaskAfterDelayOrInput(u8, TaskFunc, u16, u16); static void sub_8141FF4(u8); -static void sub_8142070(void); -static void sub_8142918(u8); -static void sub_814297C(u8); -static u8 sub_81420D0(u8, u8); -static bool8 sub_81421E8(u8, u8); -static void sub_8142284(u8); -static void sub_81424FC(u8); -static u8 sub_8142758(u8); +static void ResetHits(void); +static void Task_AcceptMinBet(u8); +static void Task_DeclineMinBet(u8); +static u8 RecordHit(u8, u8); +static bool8 IsHitInBetSelection(u8, u8); +static void FlashSelectionOnWheel(u8); +static void DrawGridBackground(u8); +static u8 GetMultiplier(u8); static void sub_8142814(void); -static void sub_8142C0C(u8); -static void sub_8142CD0(void); -static void sub_8142E70(u8, u8); -static void sub_8142F7C(void); -static void sub_8143038(u8, u8); -static void sub_8143150(u8); -static void sub_81431E4(void); -static void sub_8143280(struct Sprite *); -static void sub_8143314(void); -static void sub_8143514(u16); -static void sub_81436D0(u8); -static void sub_814372C(u8); -static void sub_814390C(struct Sprite *); -static void sub_814391C(void); -static void sub_814399C(struct Sprite *); -static void sub_81439C8(void); -static void sub_8143A40(void); +static void LoadOrFreeMiscSpritePalettesAndSheets(u8); +static void CreateGridSprites(void); +static void ShowHideGridIcons(bool8, u8); +static void CreateGridBallSprites(void); +static void ShowHideGridBalls(bool8, u8); +static void ShowHideWinSlotCursor(u8); +static void CreateBoardIconSprites(void); +static void SpriteCB_BoardIcon(struct Sprite *); +static void CreateInterfaceSprites(void); +static void SetCreditDigits(u16); +static void SetMultiplierSprite(u8); +static void SetBallCounterNumLeft(u8); +static void SpriteCB_GridSquare(struct Sprite *); +static void CreateBoardCenterSprite(void); +static void SpriteCB_BoardCenter(struct Sprite *); +static void CreateBoardBallSprites(void); +static void HideBoardBalls(void); static void sub_81446AC(struct Sprite *); -static void sub_81446DC(struct Sprite *); -static void sub_81448B8(struct Sprite *); +static void CreateShroomishSprite(struct Sprite *); +static void CreateTaillowSprite(struct Sprite *); static void sub_8144A24(struct Sprite *); static void sub_8144E60(struct Sprite *); -static void sub_8145294(struct Sprite *); +static void SpriteCB_Taillow(struct Sprite *); extern const u8 Roulette_Text_ControlsInstruction[]; extern const u8 Roulette_Text_KeepPlaying[]; @@ -203,8 +364,8 @@ extern const u8 Roulette_Text_NotEnoughCoins[]; static const u16 gUnknown_085B5BFC[] = INCBIN_U16("graphics/roulette/85B5BFC.gbapal"); static const u32 gUnknown_085B5DFC[] = INCBIN_U32("graphics/roulette/85B5DFC.bin.lz"); -static const u32 gUnknown_085B5FA0[] = INCBIN_U32("graphics/roulette/wheel_map.bin.lz"); -static const struct BgTemplate gUnknown_085B6140[] = +static const u32 sWheel_Tilemap[] = INCBIN_U32("graphics/roulette/wheel_map.bin.lz"); +static const struct BgTemplate sBgTemplates[] = { { .bg = 0, @@ -234,7 +395,7 @@ static const struct BgTemplate gUnknown_085B6140[] = .baseTile = 0 } }; -static const struct WindowTemplate gUnknown_085B614C[] = +static const struct WindowTemplate sWindowTemplates[] = { { .bg = 0, @@ -248,346 +409,349 @@ static const struct WindowTemplate gUnknown_085B614C[] = // BUG: Array not terminated properly //DUMMY_WIN_TEMPLATE }; -static const struct StructgUnknown_085B6154 gUnknown_085B6154[] = + +// var00, sprite id offset (from 7)? +static const struct GridSelection sGridSelections[NUM_GRID_SELECTIONS + 1] = { - { + [SELECTION_NONE] = { .var00 = 0xFF, - .var01_0 = 0, - .var01_4 = 0, - .var02 = 0, - .var03 = 7, - .var04 = 7, + .baseMultiplier = 0, + .column = 0, + .row = 0, + .x = 7, + .y = 7, .var05 = 0, .var06 = 0, - .var08 = 0x0, - .var0C = 0x0, + .flag = 0, + .inSelectionFlags = 0, .var10 = 0x0, }, - { + [COL_WYNAUT] = { .var00 = 12, - .var01_0 = 4, - .var01_4 = 1, - .var02 = 0, - .var03 = 17, - .var04 = 7, + .baseMultiplier = NUM_BOARD_POKES, + .column = 1, + .row = 0, + .x = 17, + .y = 7, .var05 = 0, .var06 = 0, - .var08 = 0x2, - .var0C = 0x10842, + .flag = F_WYNAUT_COL, + .inSelectionFlags = F_WYNAUT_COL | F_ORANGE_WYNAUT | F_GREEN_WYNAUT | F_PURPLE_WYNAUT, .var10 = 0xE000, }, - { + [COL_AZURILL] = { .var00 = 13, - .var01_0 = 4, - .var01_4 = 2, - .var02 = 0, - .var03 = 20, - .var04 = 7, + .baseMultiplier = NUM_BOARD_POKES, + .column = 2, + .row = 0, + .x = 20, + .y = 7, .var05 = 0, .var06 = 0, - .var08 = 0x4, - .var0C = 0x21084, + .flag = F_AZURILL_COL, + .inSelectionFlags = F_AZURILL_COL | F_ORANGE_AZURILL | F_GREEN_AZURILL | F_PURPLE_AZURILL, .var10 = 0xE000, }, - { + [COL_SKITTY] = { .var00 = 14, - .var01_0 = 4, - .var01_4 = 3, - .var02 = 0, - .var03 = 23, - .var04 = 7, + .baseMultiplier = NUM_BOARD_POKES, + .column = 3, + .row = 0, + .x = 23, + .y = 7, .var05 = 0, .var06 = 0, - .var08 = 0x8, - .var0C = 0x42108, + .flag = F_SKITTY_COL, + .inSelectionFlags = F_SKITTY_COL | F_ORANGE_SKITTY | F_GREEN_SKITTY | F_PURPLE_SKITTY, .var10 = 0xE000, }, - { + [COL_MAKUHITA] = { .var00 = 15, - .var01_0 = 4, - .var01_4 = 4, - .var02 = 0, - .var03 = 26, - .var04 = 7, + .baseMultiplier = NUM_BOARD_POKES, + .column = 4, + .row = 0, + .x = 26, + .y = 7, .var05 = 0, .var06 = 0, - .var08 = 0x10, - .var0C = 0x84210, + .flag = F_MAKUHITA_COL, + .inSelectionFlags = F_MAKUHITA_COL | F_ORANGE_MAKUHITA | F_GREEN_MAKUHITA | F_PURPLE_MAKUHITA, .var10 = 0xE000, }, - { + [ROW_ORANGE] = { .var00 = 16, - .var01_0 = 3, - .var01_4 = 0, - .var02 = 1, - .var03 = 14, - .var04 = 10, + .baseMultiplier = NUM_BOARD_COLORS, + .column = 0, + .row = 1, + .x = 14, + .y = 10, .var05 = 0, .var06 = 12, - .var08 = 0x20, - .var0C = 0x3E0, + .flag = F_ORANGE_ROW, + .inSelectionFlags = F_ORANGE_ROW | F_ORANGE_WYNAUT | F_ORANGE_AZURILL | F_ORANGE_SKITTY | F_ORANGE_MAKUHITA, .var10 = 0x249, }, - { + [SQU_ORANGE_WYNAUT] = { .var00 = 0, - .var01_0 = 12, - .var01_4 = 1, - .var02 = 1, - .var03 = 17, - .var04 = 10, + .baseMultiplier = NUM_ROULETTE_SLOTS, + .column = 1, + .row = 1, + .x = 17, + .y = 10, .var05 = 3, .var06 = 3, - .var08 = 0x40, - .var0C = 0x40, + .flag = F_ORANGE_WYNAUT, + .inSelectionFlags = F_ORANGE_WYNAUT, .var10 = 0x2001, }, - { + [SQU_ORANGE_AZURILL] = { .var00 = 9, - .var01_0 = 12, - .var01_4 = 2, - .var02 = 1, - .var03 = 20, - .var04 = 10, + .baseMultiplier = NUM_ROULETTE_SLOTS, + .column = 2, + .row = 1, + .x = 20, + .y = 10, .var05 = 3, .var06 = 3, - .var08 = 0x80, - .var0C = 0x80, + .flag = F_ORANGE_AZURILL, + .inSelectionFlags = F_ORANGE_AZURILL, .var10 = 0x2200, }, - { + [SQU_ORANGE_SKITTY] = { .var00 = 6, - .var01_0 = 12, - .var01_4 = 3, - .var02 = 1, - .var03 = 23, - .var04 = 10, + .baseMultiplier = NUM_ROULETTE_SLOTS, + .column = 3, + .row = 1, + .x = 23, + .y = 10, .var05 = 3, .var06 = 3, - .var08 = 0x100, - .var0C = 0x100, + .flag = F_ORANGE_SKITTY, + .inSelectionFlags = F_ORANGE_SKITTY, .var10 = 0x2040, }, - { + [SQU_ORANGE_MAKUHITA] = { .var00 = 3, - .var01_0 = 12, - .var01_4 = 4, - .var02 = 1, - .var03 = 26, - .var04 = 10, + .baseMultiplier = NUM_ROULETTE_SLOTS, + .column = 4, + .row = 1, + .x = 26, + .y = 10, .var05 = 3, .var06 = 3, - .var08 = 0x200, - .var0C = 0x200, + .flag = F_ORANGE_MAKUHITA, + .inSelectionFlags = F_ORANGE_MAKUHITA, .var10 = 0x2008, }, - { + [ROW_GREEN] = { .var00 = 17, - .var01_0 = 3, - .var01_4 = 0, - .var02 = 2, - .var03 = 14, - .var04 = 13, + .baseMultiplier = NUM_BOARD_COLORS, + .column = 0, + .row = 2, + .x = 14, + .y = 13, .var05 = 3, .var06 = 15, - .var08 = 0x400, - .var0C = 0x7C00, + .flag = F_GREEN_ROW, + .inSelectionFlags = F_GREEN_ROW | F_GREEN_WYNAUT | F_GREEN_AZURILL | F_GREEN_SKITTY | F_GREEN_MAKUHITA, .var10 = 0x492, }, - { + [SQU_GREEN_WYNAUT] = { .var00 = 4, - .var01_0 = 12, - .var01_4 = 1, - .var02 = 2, - .var03 = 17, - .var04 = 13, + .baseMultiplier = NUM_ROULETTE_SLOTS, + .column = 1, + .row = 2, + .x = 17, + .y = 13, .var05 = 6, .var06 = 6, - .var08 = 0x800, - .var0C = 0x800, + .flag = F_GREEN_WYNAUT, + .inSelectionFlags = F_GREEN_WYNAUT, .var10 = 0x2010, }, - { + [SQU_GREEN_AZURILL] = { .var00 = 1, - .var01_0 = 12, - .var01_4 = 2, - .var02 = 2, - .var03 = 20, - .var04 = 13, + .baseMultiplier = NUM_ROULETTE_SLOTS, + .column = 2, + .row = 2, + .x = 20, + .y = 13, .var05 = 6, .var06 = 6, - .var08 = 0x1000, - .var0C = 0x1000, + .flag = F_GREEN_AZURILL, + .inSelectionFlags = F_GREEN_AZURILL, .var10 = 0x2002, }, - { + [SQU_GREEN_SKITTY] = { .var00 = 10, - .var01_0 = 12, - .var01_4 = 3, - .var02 = 2, - .var03 = 23, - .var04 = 13, + .baseMultiplier = NUM_ROULETTE_SLOTS, + .column = 3, + .row = 2, + .x = 23, + .y = 13, .var05 = 6, .var06 = 6, - .var08 = 0x2000, - .var0C = 0x2000, + .flag = F_GREEN_SKITTY, + .inSelectionFlags = F_GREEN_SKITTY, .var10 = 0x2400, }, - { + [SQU_GREEN_MAKUHITA] = { .var00 = 7, - .var01_0 = 12, - .var01_4 = 4, - .var02 = 2, - .var03 = 26, - .var04 = 13, + .baseMultiplier = NUM_ROULETTE_SLOTS, + .column = 4, + .row = 2, + .x = 26, + .y = 13, .var05 = 6, .var06 = 6, - .var08 = 0x4000, - .var0C = 0x4000, + .flag = F_GREEN_MAKUHITA, + .inSelectionFlags = F_GREEN_MAKUHITA, .var10 = 0x2080, }, - { + [ROW_PURPLE] = { .var00 = 18, - .var01_0 = 3, - .var01_4 = 0, - .var02 = 3, - .var03 = 14, - .var04 = 16, + .baseMultiplier = NUM_BOARD_COLORS, + .column = 0, + .row = 3, + .x = 14, + .y = 16, .var05 = 6, .var06 = 18, - .var08 = 0x8000, - .var0C = 0xF8000, + .flag = F_PURPLE_ROW, + .inSelectionFlags = F_PURPLE_ROW | F_PURPLE_WYNAUT | F_PURPLE_AZURILL | F_PURPLE_SKITTY | F_PURPLE_MAKUHITA, .var10 = 0x924, }, - { + [SQU_PURPLE_WYNAUT] = { .var00 = 8, - .var01_0 = 12, - .var01_4 = 1, - .var02 = 3, - .var03 = 17, - .var04 = 16, + .baseMultiplier = NUM_ROULETTE_SLOTS, + .column = 1, + .row = 3, + .x = 17, + .y = 16, .var05 = 9, .var06 = 9, - .var08 = 0x10000, - .var0C = 0x10000, + .flag = F_PURPLE_WYNAUT, + .inSelectionFlags = F_PURPLE_WYNAUT, .var10 = 0x2100, }, - { + [SQU_PURPLE_AZURILL] = { .var00 = 5, - .var01_0 = 12, - .var01_4 = 2, - .var02 = 3, - .var03 = 20, - .var04 = 16, + .baseMultiplier = NUM_ROULETTE_SLOTS, + .column = 2, + .row = 3, + .x = 20, + .y = 16, .var05 = 9, .var06 = 9, - .var08 = 0x20000, - .var0C = 0x20000, + .flag = F_PURPLE_AZURILL, + .inSelectionFlags = F_PURPLE_AZURILL, .var10 = 0x2020, }, - { + [SQU_PURPLE_SKITTY] = { .var00 = 2, - .var01_0 = 12, - .var01_4 = 3, - .var02 = 3, - .var03 = 23, - .var04 = 16, + .baseMultiplier = NUM_ROULETTE_SLOTS, + .column = 3, + .row = 3, + .x = 23, + .y = 16, .var05 = 9, .var06 = 9, - .var08 = 0x40000, - .var0C = 0x40000, + .flag = F_PURPLE_SKITTY, + .inSelectionFlags = F_PURPLE_SKITTY, .var10 = 0x2004, }, - { + [SQU_PURPLE_MAKUHITA] = { .var00 = 11, - .var01_0 = 12, - .var01_4 = 4, - .var02 = 3, - .var03 = 26, - .var04 = 16, + .baseMultiplier = NUM_ROULETTE_SLOTS, + .column = 4, + .row = 3, + .x = 26, + .y = 16, .var05 = 9, .var06 = 9, - .var08 = 0x80000, - .var0C = 0x80000, + .flag = F_PURPLE_MAKUHITA, + .inSelectionFlags = F_PURPLE_MAKUHITA, .var10 = 0x2800, }, }; -static const struct StructgUnknown_083F8D90 gUnknown_085B62E4[] = +static const struct RouletteSlot sRouletteSlots[] = { { - .var00 = 0, - .var01 = 1, - .var02 = 6, - .var04 = 0x40, + .id1 = 0, + .id2 = 1, + .gridSquare = SQU_ORANGE_WYNAUT, + .flag = F_ORANGE_WYNAUT, }, { - .var00 = 1, - .var01 = 3, - .var02 = 12, - .var04 = 0x1000, + .id1 = 1, + .id2 = 3, + .gridSquare = SQU_GREEN_AZURILL, + .flag = F_GREEN_AZURILL, }, { - .var00 = 2, - .var01 = 5, - .var02 = 18, - .var04 = 0x40000, + .id1 = 2, + .id2 = 5, + .gridSquare = SQU_PURPLE_SKITTY, + .flag = F_PURPLE_SKITTY, }, { - .var00 = 3, - .var01 = 7, - .var02 = 9, - .var04 = 0x200, + .id1 = 3, + .id2 = 7, + .gridSquare = SQU_ORANGE_MAKUHITA, + .flag = F_ORANGE_MAKUHITA, }, { - .var00 = 4, - .var01 = 9, - .var02 = 11, - .var04 = 0x800, + .id1 = 4, + .id2 = 9, + .gridSquare = SQU_GREEN_WYNAUT, + .flag = F_GREEN_WYNAUT, }, { - .var00 = 5, - .var01 = 11, - .var02 = 17, - .var04 = 0x20000, + .id1 = 5, + .id2 = 11, + .gridSquare = SQU_PURPLE_AZURILL, + .flag = F_PURPLE_AZURILL, }, { - .var00 = 6, - .var01 = 13, - .var02 = 8, - .var04 = 0x100, + .id1 = 6, + .id2 = 13, + .gridSquare = SQU_ORANGE_SKITTY, + .flag = F_ORANGE_SKITTY, }, { - .var00 = 7, - .var01 = 15, - .var02 = 14, - .var04 = 0x4000, + .id1 = 7, + .id2 = 15, + .gridSquare = SQU_GREEN_MAKUHITA, + .flag = F_GREEN_MAKUHITA, }, { - .var00 = 8, - .var01 = 17, - .var02 = 16, - .var04 = 0x10000, + .id1 = 8, + .id2 = 17, + .gridSquare = SQU_PURPLE_WYNAUT, + .flag = F_PURPLE_WYNAUT, }, { - .var00 = 9, - .var01 = 19, - .var02 = 7, - .var04 = 0x80, + .id1 = 9, + .id2 = 19, + .gridSquare = SQU_ORANGE_AZURILL, + .flag = F_ORANGE_AZURILL, }, { - .var00 = 10, - .var01 = 21, - .var02 = 13, - .var04 = 0x2000, + .id1 = 10, + .id2 = 21, + .gridSquare = SQU_GREEN_SKITTY, + .flag = F_GREEN_SKITTY, }, { - .var00 = 11, - .var01 = 23, - .var02 = 19, - .var04 = 0x80000, + .id1 = 11, + .id2 = 23, + .gridSquare = SQU_PURPLE_MAKUHITA, + .flag = F_PURPLE_MAKUHITA, }, }; -static const u8 gUnknown_085B6344[] = {1, 3, 1, 6}; +static const u8 sTableMinBets[] = {1, 3, 1, 6}; + static const struct StructgUnknown_083F8DF4 gUnknown_085B6348[] = { { @@ -792,88 +956,88 @@ static const struct UnkStruct1 gUnknown_085B63F0[] = } }; -static const struct YesNoFuncTable gUnknown_085B6408 = +static const struct YesNoFuncTable sYesNoTable_AcceptMinBet = { - sub_8142918, - sub_814297C + Task_AcceptMinBet, + Task_DeclineMinBet }; -static const struct YesNoFuncTable gUnknown_085B6410 = +static const struct YesNoFuncTable sYesNoTable_KeepPlaying = { - sub_8140968, - sub_8140994 + Task_ContinuePlaying, + Task_StopPlaying }; -static void sub_8140238(void) +static void CB2_Roulette(void) { RunTasks(); AnimateSprites(); BuildOamBuffer(); - if (gUnknown_0203AB88->varB8.var00) - task_tutorial_controls_fadein(&gUnknown_0203AB88->varB8); + if (sRoulette->varB8.var00) + task_tutorial_controls_fadein(&sRoulette->varB8); } -static void sub_8140264(void) +static void VBlankCB_Roulette(void) { LoadOam(); ProcessSpriteCopyRequests(); TransferPlttBuffer(); sub_8142814(); - SetGpuReg(REG_OFFSET_BG1HOFS, 0x200 - gUnknown_0203AB88->var26); - if (gUnknown_0203AB88->var01) - SetGpuReg(REG_OFFSET_BLDALPHA, gUnknown_0203AB88->var34); - if (gUnknown_0203AB88->var2A != 0) + SetGpuReg(REG_OFFSET_BG1HOFS, 0x200 - sRoulette->var26); + if (sRoulette->var01) + SetGpuReg(REG_OFFSET_BLDALPHA, sRoulette->var34); + if (sRoulette->var2A != 0) { - DmaCopy16(3, &gUnknown_0203AB88->tilemapBuffers[2][0xE0], (void *)BG_SCREEN_ADDR(4) + 0x1C0, 0x340); - gUnknown_0203AB88->var2A = 0; + DmaCopy16(3, &sRoulette->tilemapBuffers[2][0xE0], (void *)BG_SCREEN_ADDR(4) + 0x1C0, 0x340); + sRoulette->var2A = 0; } - switch (gUnknown_0203AB88->var28) + switch (sRoulette->var28) { case 1: SetBgAttribute(0, BG_ATTR_CHARBASEINDEX, 0); ShowBg(0); - DmaCopy16(3, &gUnknown_0203AB88->tilemapBuffers[0][0xE0], (void *)BG_SCREEN_ADDR(31) + 0x1C0, 0x340); - gUnknown_0203AB88->var28 = 2; + DmaCopy16(3, &sRoulette->tilemapBuffers[0][0xE0], (void *)BG_SCREEN_ADDR(31) + 0x1C0, 0x340); + sRoulette->var28 = 2; break; case 2: - DmaCopy16(3, &gUnknown_0203AB88->tilemapBuffers[0][0xE0], (void *)BG_SCREEN_ADDR(31) + 0x1C0, 0x340); + DmaCopy16(3, &sRoulette->tilemapBuffers[0][0xE0], (void *)BG_SCREEN_ADDR(31) + 0x1C0, 0x340); break; case 0xFF: SetBgAttribute(0, BG_ATTR_CHARBASEINDEX, 2); ShowBg(0); DmaFill16(3, 0, (void *)BG_SCREEN_ADDR(31) + 0x1C0, 0x340); - gUnknown_0203AB88->var28 = 0; + sRoulette->var28 = 0; case 0: break; } } -static void sub_8140388(void) +static void InitRouletteBgAndWindows(void) { u32 size = 0; - gUnknown_0203AB88 = AllocZeroed(sizeof(*gUnknown_0203AB88)); + sRoulette = AllocZeroed(sizeof(*sRoulette)); ResetBgsAndClearDma3BusyFlags(0); - InitBgsFromTemplates(1, gUnknown_085B6140, ARRAY_COUNT(gUnknown_085B6140)); - SetBgTilemapBuffer(0, gUnknown_0203AB88->tilemapBuffers[0]); - SetBgTilemapBuffer(1, gUnknown_0203AB88->tilemapBuffers[2]); - SetBgTilemapBuffer(2, gUnknown_0203AB88->tilemapBuffers[6]); - InitWindows(gUnknown_085B614C); + InitBgsFromTemplates(1, sBgTemplates, ARRAY_COUNT(sBgTemplates)); + SetBgTilemapBuffer(0, sRoulette->tilemapBuffers[0]); + SetBgTilemapBuffer(1, sRoulette->tilemapBuffers[2]); + SetBgTilemapBuffer(2, sRoulette->tilemapBuffers[6]); + InitWindows(sWindowTemplates); InitTextBoxGfxAndPrinters(); - gUnknown_0203AB8C = 0; - gUnknown_0203AB88->unk_397C = malloc_and_decompress(gUnknown_085B5DFC, &size); + sTextWindowId = 0; + sRoulette->unk_397C = malloc_and_decompress(gUnknown_085B5DFC, &size); } -static void sub_8140418(void) +static void FreeRoulette(void) { - FREE_AND_SET_NULL(gUnknown_0203AB88->unk_397C); + FREE_AND_SET_NULL(sRoulette->unk_397C); FreeAllWindowBuffers(); UnsetBgTilemapBuffer(0); UnsetBgTilemapBuffer(1); UnsetBgTilemapBuffer(2); ResetBgsAndClearDma3BusyFlags(0); - memset(gUnknown_0203AB88, 0, sizeof(*gUnknown_0203AB88)); - FREE_AND_SET_NULL(gUnknown_0203AB88); + memset(sRoulette, 0, sizeof(*sRoulette)); + FREE_AND_SET_NULL(sRoulette); } static void sub_8140470(void) @@ -881,26 +1045,26 @@ static void sub_8140470(void) u8 i; u16 arr[3] = {RGB(24, 4, 10), RGB(10, 19, 6), RGB(24, 4, 10)}; // the third is never used ? - gUnknown_0203AB88->var04_0 = (gSpecialVar_0x8004 & 1); + sRoulette->tableId = (gSpecialVar_0x8004 & 1); - if (gSpecialVar_0x8004 & 0x80) - gUnknown_0203AB88->var04_7 = 1; + if (gSpecialVar_0x8004 & ROULETTE_SPECIAL_RATE) + sRoulette->isSpecialRate = TRUE; - gUnknown_0203AB88->var22 = gUnknown_085B6348[gUnknown_0203AB88->var04_0].var03; - gUnknown_0203AB88->var23 = gUnknown_085B6348[gUnknown_0203AB88->var04_0].var04; - gUnknown_0203AB88->var19 = gUnknown_085B6344[gUnknown_0203AB88->var04_0 + gUnknown_0203AB88->var04_7 * 2]; - gUnknown_0203AB88->var1A_4 = 1; + sRoulette->var22 = gUnknown_085B6348[sRoulette->tableId].var03; + sRoulette->var23 = gUnknown_085B6348[sRoulette->tableId].var04; + sRoulette->minBet = sTableMinBets[sRoulette->tableId + sRoulette->isSpecialRate * 2]; + sRoulette->unk = 1; - if (gUnknown_0203AB88->var19 == 1) + if (sRoulette->minBet == 1) gPlttBufferUnfaded[0] = gPlttBufferUnfaded[0x51] = gPlttBufferFaded[0] = gPlttBufferFaded[0x51] = arr[0]; else gPlttBufferUnfaded[0] = gPlttBufferUnfaded[0x51] = gPlttBufferFaded[0] = gPlttBufferFaded[0x51] = arr[1]; - sub_8151678(&gUnknown_0203AB88->varB8); + sub_8151678(&sRoulette->varB8); for (i = 0; i < 13; i++) { - sub_815168C(&gUnknown_0203AB88->varB8, i, &gUnknown_085B6388[i]); + sub_815168C(&sRoulette->varB8, i, &gUnknown_085B6388[i]); } for (i = 0; i < PARTY_SIZE; i++) @@ -908,17 +1072,26 @@ static void sub_8140470(void) switch (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2)) { case SPECIES_SHROOMISH: - gUnknown_0203AB88->var02 |= 0x1; + sRoulette->partySpeciesFlags |= HAS_SHROOMISH; break; case SPECIES_TAILLOW: - gUnknown_0203AB88->var02 |= 0x2; + sRoulette->partySpeciesFlags |= HAS_TAILLOW; break; } } RtcCalcLocalTime(); } -static void sub_81405CC(void) +// Task data for the roulette game tasks, starting with Task_StartPlaying +#define tMultiplier data[2] +#define tSelectionId data[4] +#define tWonBet data[5] +#define tBallNum data[6] +#define tConsecutiveWins data[11] +#define tWinningSquare data[12] +#define tCoins data[13] + +static void CB2_LoadRoulette(void) { u8 taskId; @@ -932,7 +1105,7 @@ static void sub_81405CC(void) ResetAllBgsCoordinates(); break; case 1: - sub_8140388(); + InitRouletteBgAndWindows(); DeactivateAllTextPrinters(); SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_EFFECT_NONE | BLDCNT_TGT2_BG2 | @@ -947,35 +1120,35 @@ static void sub_81405CC(void) break; case 3: LoadPalette(&gUnknown_085B5BFC, 0, 0x1C0); - DecompressAndCopyTileDataToVram(1, gRouletteMenuTiles, 0, 0, 0); - DecompressAndCopyTileDataToVram(2, gRouletteWheelTiles, 0, 0, 0); + DecompressAndCopyTileDataToVram(1, gRouletteMenu_Gfx, 0, 0, 0); + DecompressAndCopyTileDataToVram(2, gRouletteWheel_Gfx, 0, 0, 0); break; case 4: if (FreeTempTileDataBuffersIfPossible()) return; sub_8140470(); - CopyToBgTilemapBuffer(2, gUnknown_085B5FA0, 0, 0); + CopyToBgTilemapBuffer(2, sWheel_Tilemap, 0, 0); break; case 5: - sub_8142C0C(0); - sub_81439C8(); - sub_814391C(); - sub_8143314(); - sub_8142CD0(); - sub_8142F7C(); - sub_81431E4(); + LoadOrFreeMiscSpritePalettesAndSheets(FALSE); + CreateBoardBallSprites(); + CreateBoardCenterSprite(); + CreateInterfaceSprites(); + CreateGridSprites(); + CreateGridBallSprites(); + CreateBoardIconSprites(); break; case 6: AnimateSprites(); BuildOamBuffer(); - sub_8143514(GetCoins()); - sub_814372C(6); - sub_81436D0(0); - sub_81424FC(0); - DrawStdWindowFrame(gUnknown_0203AB8C, FALSE); - AddTextPrinterParameterized(gUnknown_0203AB8C, 1, Roulette_Text_ControlsInstruction, 0, 1, TEXT_SPEED_FF, NULL); - CopyWindowToVram(gUnknown_0203AB8C, 3); + SetCreditDigits(GetCoins()); + SetBallCounterNumLeft(BALLS_PER_ROUND); + SetMultiplierSprite(SELECTION_NONE); + DrawGridBackground(SELECTION_NONE); + DrawStdWindowFrame(sTextWindowId, FALSE); + AddTextPrinterParameterized(sTextWindowId, 1, Roulette_Text_ControlsInstruction, 0, 1, TEXT_SPEED_FF, NULL); + CopyWindowToVram(sTextWindowId, 3); gSpriteCoordOffsetX = -60; gSpriteCoordOffsetY = 0; break; @@ -991,39 +1164,39 @@ static void sub_81405CC(void) break; case 8: EnableInterrupts(INTR_FLAG_VBLANK); - SetVBlankCallback(sub_8140264); + SetVBlankCallback(VBlankCB_Roulette); BeginHardwarePaletteFade(0xFF, 0, 16, 0, 1); - taskId = gUnknown_0203AB88->varA4 = CreateTask(sub_81408A8, 0); - gTasks[taskId].data[6] = 6; - gTasks[taskId].data[13] = GetCoins(); + taskId = sRoulette->varA4 = CreateTask(Task_StartPlaying, 0); + gTasks[taskId].tBallNum = BALLS_PER_ROUND; + gTasks[taskId].tCoins = GetCoins(); AlertTVThatPlayerPlayedRoulette(GetCoins()); - gUnknown_0203AB88->varA5 = CreateTask(sub_8140814, 1); - SetMainCallback2(sub_8140238); + sRoulette->varA5 = CreateTask(Task_SpinBoard, 1); + SetMainCallback2(CB2_Roulette); return; } gMain.state++; } -static void sub_8140814(u8 unused) +static void Task_SpinBoard(u8 taskId) { s16 sin; s16 cos; - if (gUnknown_0203AB88->var21++ == gUnknown_0203AB88->var23) + if (sRoulette->var21++ == sRoulette->var23) { - gUnknown_0203AB88->var21 = 0; - if ((gUnknown_0203AB88->var24 -= gUnknown_0203AB88->var22) < 0) - gUnknown_0203AB88->var24 = 360 - gUnknown_0203AB88->var22; + sRoulette->var21 = 0; + if ((sRoulette->var24 -= sRoulette->var22) < 0) + sRoulette->var24 = 360 - sRoulette->var22; } - sin = Sin2(gUnknown_0203AB88->var24); - cos = Cos2(gUnknown_0203AB88->var24); + sin = Sin2(sRoulette->var24); + cos = Cos2(sRoulette->var24); sin = sin / 16; - gUnknown_0203AB88->var2C.a = gUnknown_0203AB88->var2C.d = cos / 16; - gUnknown_0203AB88->var2C.b = sin; - gUnknown_0203AB88->var2C.c = -sin; + sRoulette->var2C.a = sRoulette->var2C.d = cos / 16; + sRoulette->var2C.b = sin; + sRoulette->var2C.c = -sin; } -static void sub_81408A8(u8 taskId) +static void Task_StartPlaying(u8 taskId) { if (UpdatePaletteFade() == 0) { @@ -1031,222 +1204,227 @@ static void sub_81408A8(u8 taskId) BLDCNT_TGT2_BG2 | BLDCNT_TGT2_BD); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(8, 8)); - gTasks[taskId].data[6] = 0; + gTasks[taskId].tBallNum = 0; sub_8141FF4(taskId); - sub_8142070(); - sub_8143A40(); - sub_81424FC(0); - sub_814372C(6); - sub_8141F7C(taskId, sub_8140968, 0xFFFF, 0x3); + ResetHits(); + HideBoardBalls(); + DrawGridBackground(SELECTION_NONE); + SetBallCounterNumLeft(BALLS_PER_ROUND); + StartTaskAfterDelayOrInput(taskId, Task_ContinuePlaying, 0xFFFF, A_BUTTON | B_BUTTON); } } -static void sub_8140914(u8 taskId) +static void Task_AskKeepPlaying(u8 taskId) { DisplayYesNoMenuDefaultYes(); - DrawStdWindowFrame(gUnknown_0203AB8C, 0); - AddTextPrinterParameterized(gUnknown_0203AB8C, 1, Roulette_Text_KeepPlaying, 0, 1, TEXT_SPEED_FF, 0); - CopyWindowToVram(gUnknown_0203AB8C, 3); - DoYesNoFuncWithChoice(taskId, &gUnknown_085B6410); + DrawStdWindowFrame(sTextWindowId, 0); + AddTextPrinterParameterized(sTextWindowId, 1, Roulette_Text_KeepPlaying, 0, 1, TEXT_SPEED_FF, 0); + CopyWindowToVram(sTextWindowId, 3); + DoYesNoFuncWithChoice(taskId, &sYesNoTable_KeepPlaying); } -static void sub_8140968(u8 taskId) +static void Task_ContinuePlaying(u8 taskId) { ClearStdWindowAndFrame(0, TRUE); - gTasks[taskId].func = sub_8140BD0; + gTasks[taskId].func = Task_SelectFirstEmptySquare; } -static void sub_8140994(u8 taskId) +static void Task_StopPlaying(u8 taskId) { - DestroyTask(gUnknown_0203AB88->varA5); - sub_8141DE4(taskId); + DestroyTask(sRoulette->varA5); + ExitRoulette(taskId); } -static void sub_81409B8(u8 r0) +static void UpdateGridSelectionRect(u8 selectionId) { u8 temp0, temp1; - switch (r0) + switch (selectionId) { - case 0: - sub_8152008(&gUnknown_0203AB88->tilemapBuffers[0][0], 0, 14, 7, 16, 13); + case SELECTION_NONE: + ClearGridSelectionRect(&sRoulette->tilemapBuffers[0][0], 0, 14, 7, 16, 13); break; - case 1: - case 2: - case 3: - case 4: - temp0 = (r0 * 3 + 14); - sub_8152008(&gUnknown_0203AB88->tilemapBuffers[0][0], 0, 14, 7, 16, 13); - sub_8152058(&gUnknown_0203AB88->tilemapBuffers[0][0], &gUnknown_0203AB88->unk_397C[281], temp0, 7, 3, 13); + case COL_WYNAUT: + case COL_AZURILL: + case COL_SKITTY: + case COL_MAKUHITA: + temp0 = (selectionId * 3 + 14); + ClearGridSelectionRect(&sRoulette->tilemapBuffers[0][0], 0, 14, 7, 16, 13); + SetGridSelectionRect(&sRoulette->tilemapBuffers[0][0], &sRoulette->unk_397C[281], temp0, 7, 3, 13); break; - case 0x5: - case 0xA: - case 0xF: - temp1 = ((r0 - 1) / 5 * 3 + 10); - sub_8152008(&gUnknown_0203AB88->tilemapBuffers[0][0], 0, 14, 7, 16, 13); - sub_8152058(&gUnknown_0203AB88->tilemapBuffers[0][0], &gUnknown_0203AB88->unk_397C[320], 14, temp1, 16, 3); + case ROW_ORANGE: + case ROW_GREEN: + case ROW_PURPLE: + temp1 = ((selectionId - 1) / 5 * 3 + 10); + ClearGridSelectionRect(&sRoulette->tilemapBuffers[0][0], 0, 14, 7, 16, 13); + SetGridSelectionRect(&sRoulette->tilemapBuffers[0][0], &sRoulette->unk_397C[320], 14, temp1, 16, 3); break; + // Individual square default: - temp0 = ((r0 % 5) * 3 + 14); - temp1 = ((r0 - 1) / 5 * 3 + 7); - sub_8152008(&gUnknown_0203AB88->tilemapBuffers[0][0], 0, 14, 7, 16, 13); - sub_8152058(&gUnknown_0203AB88->tilemapBuffers[0][0], &gUnknown_0203AB88->unk_397C[272], temp0, temp1, 3, 3); + temp0 = GET_COL(selectionId) * 3 + 14; + temp1 = ((selectionId - 1) / 5 * 3 + 7); + ClearGridSelectionRect(&sRoulette->tilemapBuffers[0][0], 0, 14, 7, 16, 13); + SetGridSelectionRect(&sRoulette->tilemapBuffers[0][0], &sRoulette->unk_397C[272], temp0, temp1, 3, 3); break; } } -static void sub_8140B64(u8 taskId) +static void UpdateGridSelection(u8 taskId) { - sub_81436D0(gTasks[taskId].data[4]); - sub_81409B8(gTasks[taskId].data[4]); + SetMultiplierSprite(gTasks[taskId].tSelectionId); + UpdateGridSelectionRect(gTasks[taskId].tSelectionId); } -static void sub_8140B8C(u8 taskId) +static void Task_StartHandleBetGridInput(u8 taskId) { - gUnknown_0203AB88->var28 = 1; - sub_81409B8(gTasks[taskId].data[4]); - gUnknown_0203AB88->var23 = 2; - gUnknown_0203AB88->var21 = 0; - gTasks[taskId].func = sub_8141040; + sRoulette->var28 = 1; + UpdateGridSelectionRect(gTasks[taskId].tSelectionId); + sRoulette->var23 = 2; + sRoulette->var21 = 0; + gTasks[taskId].func = Task_HandleBetGridInput; } -static void sub_8140BD0(u8 taskId) +static void Task_SelectFirstEmptySquare(u8 taskId) { s16 i; - if (gUnknown_0203AB88->var08 & 0x20) + if (sRoulette->hitFlags & F_ORANGE_ROW) { - for (i = 11; i < 14; i++) + // If the whole orange row is filled, get first in green row + for (i = SQU_GREEN_WYNAUT; i < SQU_GREEN_MAKUHITA; i++) { - if ((gUnknown_0203AB88->var08 & gUnknown_085B6154[i].var08) == 0) + if (!(sRoulette->hitFlags & sGridSelections[i].flag)) break; } } else { - for (i = 6; i < 10; i++) + // Otherwise get first in orange row + // With only 6 balls both rows can't be filled, no need to check purple row + for (i = SQU_ORANGE_WYNAUT; i <= SQU_ORANGE_MAKUHITA; i++) // <= is accidental, but it will never get that far { - if ((gUnknown_0203AB88->var08 & gUnknown_085B6154[i].var08) == 0) + if (!(sRoulette->hitFlags & sGridSelections[i].flag)) break; } } - gTasks[taskId].data[4] = i; + gTasks[taskId].tSelectionId = i; sub_8141FF4(taskId); - sub_81424FC(gTasks[taskId].data[4]); - sub_81436D0(gTasks[taskId].data[4]); - sub_8142284(gTasks[taskId].data[4]); + DrawGridBackground(gTasks[taskId].tSelectionId); + SetMultiplierSprite(gTasks[taskId].tSelectionId); + FlashSelectionOnWheel(gTasks[taskId].tSelectionId); gTasks[taskId].data[1] = 0; - gTasks[taskId].func = sub_8140B8C; + gTasks[taskId].func = Task_StartHandleBetGridInput; } -static u8 sub_8140CA8(s16 *r0, u8 r1) +static bool8 CanMoveSelectionInDir(s16 *selectionId, u8 dir) { s8 temp1 = 0; s8 temp = 0; - s8 arr[4] = {-5, 5, -1, 1}; - s8 t = *r0; + s8 moveOffsets[4] = {-5, 5, -1, 1}; + s8 originalSelection = *selectionId; - switch (r1) + switch (dir) { - case 0: - case 1: - temp1 = (*r0 % 5); - temp = temp1 + 15; - if (temp1 == 0) + case 0: // UP + case 1: // DOWN + temp1 = GET_COL(*selectionId); + temp = temp1 + ROW_PURPLE; + if (temp1 == SELECTION_NONE) temp1 = 5; break; - case 2: - case 3: - temp1 = (*r0 / 5) * 5; - temp = temp1 + 4; - if (temp1 == 0) + case 2: // LEFT + case 3: // RIGHT + temp1 = GET_ROW(*selectionId); + temp = temp1 + COL_MAKUHITA; + if (temp1 == SELECTION_NONE) temp1 = 1; break; } - *r0 += arr[r1]; + *selectionId += moveOffsets[dir]; - if (*r0 < temp1) - *r0 = temp; + if (*selectionId < temp1) + *selectionId = temp; - if (*r0 > temp) - *r0 = temp1; + if (*selectionId > temp) + *selectionId = temp1; - if (*r0 != t) + if (*selectionId != originalSelection) return TRUE; return FALSE; } -static void sub_8140D6C(u8 r0) +static void ProcessBetGridInput(u8 taskId) { u8 z = 0; - bool8 var0 = FALSE; - if (!(gMain.newKeys & DPAD_UP) || ((var0 = TRUE), sub_8140CA8(&gTasks[r0].data[4], 0))) - if (!(gMain.newKeys & DPAD_DOWN) || ((var0 = TRUE), sub_8140CA8(&gTasks[r0].data[4], 1))) - if (!(gMain.newKeys & DPAD_LEFT) || ((var0 = TRUE), sub_8140CA8(&gTasks[r0].data[4], 2))) - if (!(gMain.newKeys & DPAD_RIGHT) || ((var0 = TRUE), sub_8140CA8(&gTasks[r0].data[4], 3))) - if (var0) - { - u8 i; - sub_81424FC(gTasks[r0].data[4]); - sub_8140B64(r0); - gTasks[r0].data[1] = z; - PlaySE(SE_SELECT); - sub_8151A9C(&gUnknown_0203AB88->varB8, 0xFFFF); - gUnknown_0203AB88->varB8.var04[13].var00_7 = gUnknown_0203AB88->varB8.var04[14].var00_7 = gUnknown_0203AB88->varB8.var04[15].var00_7 = 0; - sub_8142284(gTasks[r0].data[4]); - for (i = 0; i < 4; i++) - { - gSprites[gUnknown_0203AB88->var3C[i + 41]].oam.tileNum = - gSprites[gUnknown_0203AB88->var3C[i + 41]].sheetTileStart - + (*gSprites[gUnknown_0203AB88->var3C[i + 41]].anims)->type; - } - if ((u16)(gTasks[r0].data[4] - 1) < 4 && !(gUnknown_0203AB88->var08 & gUnknown_085B6154[gTasks[r0].data[4]].var08) ) - { - z = gTasks[r0].data[4] - 1; - gSprites[gUnknown_0203AB88->var3C[z + 41]].oam.tileNum = - gSprites[gUnknown_0203AB88->var3C[z + 41]].sheetTileStart - + (*gSprites[gUnknown_0203AB88->var3C[z + 41]].anims + 1)->type; - } - } + bool8 dirPressed = FALSE; + if ((!(JOY_NEW(DPAD_UP)) || ((dirPressed = TRUE), CanMoveSelectionInDir(&gTasks[taskId].tSelectionId, 0))) + && (!(JOY_NEW(DPAD_DOWN)) || ((dirPressed = TRUE), CanMoveSelectionInDir(&gTasks[taskId].tSelectionId, 1))) + && (!(JOY_NEW(DPAD_LEFT)) || ((dirPressed = TRUE), CanMoveSelectionInDir(&gTasks[taskId].tSelectionId, 2))) + && (!(JOY_NEW(DPAD_RIGHT)) || ((dirPressed = TRUE), CanMoveSelectionInDir(&gTasks[taskId].tSelectionId, 3))) + && (dirPressed)) + { + u8 i; + DrawGridBackground(gTasks[taskId].tSelectionId); + UpdateGridSelection(taskId); + gTasks[taskId].data[1] = z; + PlaySE(SE_SELECT); + sub_8151A9C(&sRoulette->varB8, 0xFFFF); + sRoulette->varB8.var04[13].var00_7 = sRoulette->varB8.var04[14].var00_7 = sRoulette->varB8.var04[15].var00_7 = 0; + FlashSelectionOnWheel(gTasks[taskId].tSelectionId); + for (i = 0; i < NUM_BOARD_POKES; i++) + { + gSprites[sRoulette->spriteIds[i + SPR_POKE_HEADER_1]].oam.tileNum = + gSprites[sRoulette->spriteIds[i + SPR_POKE_HEADER_1]].sheetTileStart + + (*gSprites[sRoulette->spriteIds[i + SPR_POKE_HEADER_1]].anims)->type; + } + if ((u16)(gTasks[taskId].tSelectionId - 1) < 4 && !(sRoulette->hitFlags & sGridSelections[gTasks[taskId].tSelectionId].flag) ) + { + z = gTasks[taskId].tSelectionId - 1; + gSprites[sRoulette->spriteIds[z + SPR_POKE_HEADER_1]].oam.tileNum = + gSprites[sRoulette->spriteIds[z + SPR_POKE_HEADER_1]].sheetTileStart + + (*gSprites[sRoulette->spriteIds[z + SPR_POKE_HEADER_1]].anims + 1)->type; + } + } } static void sub_8140F6C(u8 r0) { IncrementDailyRouletteUses(); - gUnknown_0203AB88->var28 = 0xFF; - if (gUnknown_0203AB88->var19 == 1) - gUnknown_0203AB88->var23 = 1; + sRoulette->var28 = 0xFF; + if (sRoulette->minBet == 1) + sRoulette->var23 = 1; else - gUnknown_0203AB88->var23 = 0; - gUnknown_0203AB88->var21 = 0; + sRoulette->var23 = 0; + sRoulette->var21 = 0; gTasks[r0].data[1] = 32; - gTasks[r0].func = sub_81410FC; + gTasks[r0].func = Task_SlideGridOffscreen; } -static void sub_8140FC4(u8 taskId) +static void Task_PlaceBet(u8 taskId) { - gUnknown_0203AB88->var1B[gUnknown_0203AB88->var1A_0] = gTasks[taskId].data[4]; - gTasks[taskId].data[2] = sub_8142758(gUnknown_0203AB88->var1B[gUnknown_0203AB88->var1A_0]); - sub_81436D0(gUnknown_0203AB88->var1B[gUnknown_0203AB88->var1A_0]); - if ((gTasks[taskId].data[13] -= gUnknown_0203AB88->var19) < 0) - gTasks[taskId].data[13] = 0; - sub_8143514(gTasks[taskId].data[13]); + sRoulette->betSelection[sRoulette->curBallNum] = gTasks[taskId].tSelectionId; + gTasks[taskId].tMultiplier = GetMultiplier(sRoulette->betSelection[sRoulette->curBallNum]); + SetMultiplierSprite(sRoulette->betSelection[sRoulette->curBallNum]); + if ((gTasks[taskId].tCoins -= sRoulette->minBet) < 0) + gTasks[taskId].tCoins = 0; + SetCreditDigits(gTasks[taskId].tCoins); gTasks[taskId].func = sub_8140F6C; } -static void sub_8141040(u8 taskId) +static void Task_HandleBetGridInput(u8 taskId) { - sub_8140D6C(taskId); + ProcessBetGridInput(taskId); + // Flash selection rect switch (gTasks[taskId].data[1]) { case 0: - sub_81409B8(gTasks[taskId].data[4]); + UpdateGridSelectionRect(gTasks[taskId].tSelectionId); gTasks[taskId].data[1]++; break; case 30: - sub_81409B8(0); + UpdateGridSelectionRect(SELECTION_NONE); gTasks[taskId].data[1]++; break; case 59: @@ -1256,83 +1434,78 @@ static void sub_8141040(u8 taskId) gTasks[taskId].data[1]++; } - if (gMain.newKeys & A_BUTTON) + if (JOY_NEW(A_BUTTON)) { - if ((gUnknown_0203AB88->var08 & gUnknown_085B6154[gTasks[taskId].data[4]].var08)) + if ((sRoulette->hitFlags & sGridSelections[gTasks[taskId].tSelectionId].flag)) + { + // Ball has already landed on this space PlaySE(SE_BOO); + } else { m4aSongNumStart(SE_REGI); - gTasks[taskId].func = sub_8140FC4; + gTasks[taskId].func = Task_PlaceBet; } } } -static void sub_81410FC(u8 taskId) +static void Task_SlideGridOffscreen(u8 taskId) { if (gTasks[taskId].data[1]-- > 0) { if (gTasks[taskId].data[1] > 2) gSpriteCoordOffsetX += 2; - if ((gUnknown_0203AB88->var26 += 4) == 104) - gSprites[gUnknown_0203AB88->var3C[25]].callback = &SpriteCallbackDummy; + if ((sRoulette->var26 += 4) == 104) + gSprites[sRoulette->spriteIds[SPR_MULTIPLIER]].callback = &SpriteCallbackDummy; } else { - sub_8142E70(1, -1); - sub_8143038(1, -1); - gTasks[taskId].func = sub_8141344; + ShowHideGridIcons(TRUE, -1); + ShowHideGridBalls(TRUE, -1); + gTasks[taskId].func = Task_RollBall; gTasks[taskId].data[1] = 0; } } static u8 sub_814118C(u16 r0, u16 r1) { - switch (gUnknown_0203AB88->var02) + switch (sRoulette->partySpeciesFlags) { - case 1: // SHROOMISH - case 2: // TAILLOW + case HAS_SHROOMISH: + case HAS_TAILLOW: // one of the two is in party if (gLocalTime.hours > 3 && gLocalTime.hours < 10) { if (r0 < 12 || (r1 & 1)) - { - return gUnknown_085B6348[gUnknown_0203AB88->var04_0].var02 / 2; - } + return gUnknown_085B6348[sRoulette->tableId].var02 / 2; else - { return 1; - } } - else if (!(r1 & 0x3)) + else if (!(r1 & 0x3)) { - return gUnknown_085B6348[gUnknown_0203AB88->var04_0].var02 / 2; + return gUnknown_085B6348[sRoulette->tableId].var02 / 2; } - else + else { - return gUnknown_085B6348[gUnknown_0203AB88->var04_0].var02; + return gUnknown_085B6348[sRoulette->tableId].var02; } break; - case 3: + case HAS_SHROOMISH | HAS_TAILLOW: // both are in party if (gLocalTime.hours > 3 && gLocalTime.hours < 11) { if (r0 < 6 || (r1 & 1)) - { - return gUnknown_085B6348[gUnknown_0203AB88->var04_0].var02 / 2; - } + return gUnknown_085B6348[sRoulette->tableId].var02 / 2; else - { return 1; - } } - else if ((r1 & 1) && r0 > 6) + else if ((r1 & 1) && r0 > 6) { - return gUnknown_085B6348[gUnknown_0203AB88->var04_0].var02 / 4; + return gUnknown_085B6348[sRoulette->tableId].var02 / 4; } - else + else { - return gUnknown_085B6348[gUnknown_0203AB88->var04_0].var02 / 2; + return gUnknown_085B6348[sRoulette->tableId].var02 / 2; } break; case 0: @@ -1341,45 +1514,33 @@ static u8 sub_814118C(u16 r0, u16 r1) if (gLocalTime.hours > 3 && gLocalTime.hours < 10) { if (!(r1 & 3)) - { return 1; - } else - { - return gUnknown_085B6348[gUnknown_0203AB88->var04_0].var02 / 2; - } + return gUnknown_085B6348[sRoulette->tableId].var02 / 2; } else if (!(r1 & 3)) { if (r0 > 12) - { - return gUnknown_085B6348[gUnknown_0203AB88->var04_0].var02 / 2; - } + return gUnknown_085B6348[sRoulette->tableId].var02 / 2; else - { - return gUnknown_085B6348[gUnknown_0203AB88->var04_0].var02; - } + return gUnknown_085B6348[sRoulette->tableId].var02; } else if (r1 & 0x8000) { if (r0 > 12) - { - return gUnknown_085B6348[gUnknown_0203AB88->var04_0].var02; - } + return gUnknown_085B6348[sRoulette->tableId].var02; else - { - return gUnknown_085B6348[gUnknown_0203AB88->var04_0].var01; - } + return gUnknown_085B6348[sRoulette->tableId].var01; } else { - return gUnknown_085B6348[gUnknown_0203AB88->var04_0].var01 * 2; + return gUnknown_085B6348[sRoulette->tableId].var01 * 2; } break; } } -static void sub_8141344(u8 taskId) +static void Task_RollBall(u8 taskId) { u8 randf; s8 randfinal; @@ -1391,8 +1552,8 @@ static void sub_8141344(u8 taskId) rand = Random(); randmod = rand % 100; - gUnknown_0203AB88->var7C = gTasks[taskId].data[6]; - gUnknown_0203AB88->var7D = gUnknown_0203AB88->var7E = gUnknown_0203AB88->var7F = g; + sRoulette->var7C = gTasks[taskId].tBallNum; + sRoulette->var7D = sRoulette->var7E = sRoulette->var7F = g; randf = sub_814118C(gTasks[taskId].data[8], rand); randfinal = (rand % randf) - (randf / 2); @@ -1406,88 +1567,88 @@ static void sub_8141344(u8 taskId) else r5 = (1 - r5) * 2; - gUnknown_0203AB88->var80 = g = gUnknown_085B6348[gUnknown_0203AB88->var04_0].var1A + randfinal; + sRoulette->var80 = g = gUnknown_085B6348[sRoulette->tableId].var1A + randfinal; g = S16TOPOSFLOAT(g) / 5.0f; - gUnknown_0203AB88->var82 = g * 3; - gUnknown_0203AB88->var86 = gUnknown_0203AB88->var84 = g; + sRoulette->var82 = g * 3; + sRoulette->var86 = sRoulette->var84 = g; - gUnknown_0203AB88->var88 = S16TOPOSFLOAT(angles[(rand & 1) + r5]); - gUnknown_0203AB88->var8C = S16TOPOSFLOAT(gUnknown_085B6348[gUnknown_0203AB88->var04_0].var18); - gUnknown_0203AB88->var90 = ((gUnknown_0203AB88->var8C * 0.5f) - gUnknown_0203AB88->var8C) / S16TOPOSFLOAT(gUnknown_0203AB88->var82); - gUnknown_0203AB88->var94 = 68.0f; - gUnknown_0203AB88->var9C = 0.0f; - gUnknown_0203AB88->var98 = -(8.0f / S16TOPOSFLOAT(gUnknown_0203AB88->var82)); - gUnknown_0203AB88->varA0 = 36.0f; - gTasks[taskId].func = sub_814155C; + sRoulette->var88 = S16TOPOSFLOAT(angles[(rand & 1) + r5]); + sRoulette->var8C = S16TOPOSFLOAT(gUnknown_085B6348[sRoulette->tableId].var18); + sRoulette->var90 = ((sRoulette->var8C * 0.5f) - sRoulette->var8C) / S16TOPOSFLOAT(sRoulette->var82); + sRoulette->var94 = 68.0f; + sRoulette->var9C = 0.0f; + sRoulette->var98 = -(8.0f / S16TOPOSFLOAT(sRoulette->var82)); + sRoulette->varA0 = 36.0f; + gTasks[taskId].func = Task_EndBallRoll; } -static void sub_814155C(u8 taskId) +static void Task_EndBallRoll(u8 taskId) { u8 index; - gUnknown_0203AB88->var03_7 = 1; - index = gUnknown_0203AB88->var3C[gUnknown_0203AB88->var7C]; - gUnknown_0203AB88->var38 = &gSprites[index]; - gUnknown_0203AB88->var38->callback = sub_81446AC; - gTasks[taskId].data[6]++; - gTasks[taskId].data[0x8]++; - sub_814372C(6 - gTasks[taskId].data[6]); + sRoulette->var03_7 = TRUE; + index = sRoulette->spriteIds[sRoulette->var7C]; + sRoulette->var38 = &gSprites[index]; + sRoulette->var38->callback = sub_81446AC; + gTasks[taskId].tBallNum++; + gTasks[taskId].data[8]++; + SetBallCounterNumLeft(BALLS_PER_ROUND - gTasks[taskId].tBallNum); m4aSongNumStart(SE_TAMAKORO); - gTasks[taskId].func = sub_81415D4; + gTasks[taskId].func = Task_RecordBallHit; } -static void sub_81415D4(u8 taskId) +static void Task_RecordBallHit(u8 taskId) { - if (gUnknown_0203AB88->var7D) + if (sRoulette->var7D) { - if (gUnknown_0203AB88->var03_5) + if (sRoulette->var03_5) { - if (gUnknown_0203AB88->var03_6) + if (sRoulette->var03_6) { - gUnknown_0203AB88->var03_6 = FALSE; - gUnknown_0203AB88->var03_5 = FALSE; + sRoulette->var03_6 = FALSE; + sRoulette->var03_5 = FALSE; } } else { if (!gTasks[taskId].data[1]) { - bool8 temp = sub_81421E8(sub_81420D0(taskId, gUnknown_0203AB88->var7E), gUnknown_0203AB88->var1B[gUnknown_0203AB88->var1A_0]); - gTasks[taskId].data[5] = temp; + bool8 temp = IsHitInBetSelection(RecordHit(taskId, sRoulette->var7E), sRoulette->betSelection[sRoulette->curBallNum]); + gTasks[taskId].tWonBet = temp; if (temp == TRUE) - sub_8151A48(&gUnknown_0203AB88->varB8, 0x1000); + sub_8151A48(&sRoulette->varB8, 0x1000); } if (gTasks[taskId].data[1] <= 60) { - if (gMain.newKeys & A_BUTTON) + if (JOY_NEW(A_BUTTON)) gTasks[taskId].data[1] = 60; gTasks[taskId].data[1]++; } else { - sub_81424FC(gUnknown_0203AB88->var1B[gUnknown_0203AB88->var1A_0]); - sub_8142E70(0, gTasks[taskId].data[12]); - sub_8143038(0, gTasks[taskId].data[6] - 1); + DrawGridBackground(sRoulette->betSelection[sRoulette->curBallNum]); + ShowHideGridIcons(FALSE, gTasks[taskId].tWinningSquare); + ShowHideGridBalls(FALSE, gTasks[taskId].tBallNum - 1); gTasks[taskId].data[1] = 32; - gTasks[taskId].func = sub_81416D4; + gTasks[taskId].func = Task_SlideGridOnscreen; } } } } -static void sub_81416D4(u8 taskId) +static void Task_SlideGridOnscreen(u8 taskId) { if (gTasks[taskId].data[1]-- > 0) { if (gTasks[taskId].data[1] > 2) gSpriteCoordOffsetX -= 2; - if ((gUnknown_0203AB88->var26 -= 4) == 104) - gSprites[gUnknown_0203AB88->var3C[25]].callback = sub_814390C; + if ((sRoulette->var26 -= 4) == 104) + gSprites[sRoulette->spriteIds[SPR_MULTIPLIER]].callback = SpriteCB_GridSquare; } else { - sub_8143150(gTasks[taskId].data[12]); - if (gTasks[taskId].data[5] == 1) + ShowHideWinSlotCursor(gTasks[taskId].tWinningSquare); + if (gTasks[taskId].tWonBet == TRUE) gTasks[taskId].data[1] = 121; else gTasks[taskId].data[1] = 61; @@ -1502,95 +1663,96 @@ static void sub_8141778(u8 taskId) switch (gTasks[taskId].data[1] % 16) { case 8: - sub_8142E70(0, -1); - sub_8143038(0, -1); + ShowHideGridIcons(FALSE, -1); + ShowHideGridBalls(FALSE, -1); break; case 0: - sub_8142E70(0, gTasks[taskId].data[12]); - sub_8143038(0, gTasks[taskId].data[6] - 1); + ShowHideGridIcons(FALSE, gTasks[taskId].tWinningSquare); + ShowHideGridBalls(FALSE, gTasks[taskId].tBallNum - 1); break; } } else { - sub_8141F7C(taskId, sub_814189C, 30, 0); + StartTaskAfterDelayOrInput(taskId, Task_PrintSpinResult, 30, 0); } } -static void sub_8141800(u8 taskId) +static void Task_TryIncrementWins(u8 taskId) { - switch (gTasks[taskId].data[0x5]) + switch (gTasks[taskId].tWonBet) { - case 1: - case 2: + case TRUE: + case 2: // never happens if (IsFanfareTaskInactive()) { u32 wins = GetGameStat(GAME_STAT_CONSECUTIVE_ROULETTE_WINS); - if (wins < ++gTasks[taskId].data[11]) - SetGameStat(GAME_STAT_CONSECUTIVE_ROULETTE_WINS, gTasks[taskId].data[11]); - sub_8141F7C(taskId, sub_8141A18, 0xFFFF, 3); + if (wins < ++gTasks[taskId].tConsecutiveWins) + SetGameStat(GAME_STAT_CONSECUTIVE_ROULETTE_WINS, gTasks[taskId].tConsecutiveWins); + StartTaskAfterDelayOrInput(taskId, Task_PrintPayout, 0xFFFF, A_BUTTON | B_BUTTON); } break; - case 0: + case FALSE: default: if (!IsSEPlaying()) { - gTasks[taskId].data[11] = FALSE; - sub_8141F7C(taskId, sub_8141AC0, 0xFFFF, 3); + gTasks[taskId].tConsecutiveWins = 0; + StartTaskAfterDelayOrInput(taskId, Task_EndTurn, 0xFFFF, A_BUTTON | B_BUTTON); } break; } } -static void sub_814189C(u8 taskId) +static void Task_PrintSpinResult(u8 taskId) { - switch (gTasks[taskId].data[5]) + switch (gTasks[taskId].tWonBet) { - case 1: - case 2: - if (gTasks[taskId].data[2] == 12) + case TRUE: + case 2: // never happens + if (gTasks[taskId].tMultiplier == MAX_MULTIPLIER) { PlayFanfare(MUS_ME_B_BIG); - DrawStdWindowFrame(gUnknown_0203AB8C, FALSE); - AddTextPrinterParameterized(gUnknown_0203AB8C, 1, Roulette_Text_Jackpot, 0, 1, TEXT_SPEED_FF, NULL); - CopyWindowToVram(gUnknown_0203AB8C, 3); + DrawStdWindowFrame(sTextWindowId, FALSE); + AddTextPrinterParameterized(sTextWindowId, 1, Roulette_Text_Jackpot, 0, 1, TEXT_SPEED_FF, NULL); + CopyWindowToVram(sTextWindowId, 3); } else { PlayFanfare(MUS_ME_B_SMALL); - DrawStdWindowFrame(gUnknown_0203AB8C, FALSE); - AddTextPrinterParameterized(gUnknown_0203AB8C, 1, Roulette_Text_ItsAHit, 0, 1, TEXT_SPEED_FF, NULL); - CopyWindowToVram(gUnknown_0203AB8C, 3); + DrawStdWindowFrame(sTextWindowId, FALSE); + AddTextPrinterParameterized(sTextWindowId, 1, Roulette_Text_ItsAHit, 0, 1, TEXT_SPEED_FF, NULL); + CopyWindowToVram(sTextWindowId, 3); } break; - case 0: + case FALSE: default: m4aSongNumStart(SE_HAZURE); - DrawStdWindowFrame(gUnknown_0203AB8C, FALSE); - AddTextPrinterParameterized(gUnknown_0203AB8C, 1, Roulette_Text_NothingDoing, 0, 1, TEXT_SPEED_FF, NULL); - CopyWindowToVram(gUnknown_0203AB8C, 3); + DrawStdWindowFrame(sTextWindowId, FALSE); + AddTextPrinterParameterized(sTextWindowId, 1, Roulette_Text_NothingDoing, 0, 1, TEXT_SPEED_FF, NULL); + CopyWindowToVram(sTextWindowId, 3); break; } gTasks[taskId].data[1] = 0; - gTasks[taskId].func = sub_8141800; + gTasks[taskId].func = Task_TryIncrementWins; } -static void sub_8141984(u8 taskId) +#define tPayout data[1] + +static void Task_GivePayout(u8 taskId) { - s32 r0 = gTasks[taskId].data[7]; - switch (r0) + switch (gTasks[taskId].data[7]) { case 0: - gTasks[taskId].data[13]++; + gTasks[taskId].tCoins++; m4aSongNumStart(SE_PIN); - sub_8143514(gTasks[taskId].data[13]); - if (gTasks[taskId].data[13] >= 9999) + SetCreditDigits(gTasks[taskId].tCoins); + if (gTasks[taskId].tCoins >= MAX_COINS) { - gTasks[taskId].data[1] = r0; + gTasks[taskId].tPayout = 0; } else { - gTasks[taskId].data[1]--; + gTasks[taskId].tPayout--; gTasks[taskId].data[7]++; } break; @@ -1602,117 +1764,123 @@ static void sub_8141984(u8 taskId) gTasks[taskId].data[7]++; break; } - if (gTasks[taskId].data[1] == 0) - sub_8141F7C(taskId, sub_8141AC0, 0xFFFF, 3); + if (gTasks[taskId].tPayout == 0) + StartTaskAfterDelayOrInput(taskId, Task_EndTurn, 0xFFFF, A_BUTTON | B_BUTTON); } -static void sub_8141A18(u8 taskId) +static void Task_PrintPayout(u8 taskId) { - ConvertIntToDecimalStringN(gStringVar1, (gUnknown_0203AB88->var19 * gTasks[taskId].data[2]), STR_CONV_MODE_LEFT_ALIGN, 2); + ConvertIntToDecimalStringN(gStringVar1, (sRoulette->minBet * gTasks[taskId].tMultiplier), STR_CONV_MODE_LEFT_ALIGN, 2); StringExpandPlaceholders(gStringVar4, Roulette_Text_YouveWonXCoins); - DrawStdWindowFrame(gUnknown_0203AB8C, FALSE); - AddTextPrinterParameterized(gUnknown_0203AB8C, 1, gStringVar4, 0, 1, TEXT_SPEED_FF, NULL); - CopyWindowToVram(gUnknown_0203AB8C, 3); - gTasks[taskId].data[1] = (gUnknown_0203AB88->var19 * gTasks[taskId].data[2]); + DrawStdWindowFrame(sTextWindowId, FALSE); + AddTextPrinterParameterized(sTextWindowId, 1, gStringVar4, 0, 1, TEXT_SPEED_FF, NULL); + CopyWindowToVram(sTextWindowId, 3); + gTasks[taskId].tPayout = (sRoulette->minBet * gTasks[taskId].tMultiplier); gTasks[taskId].data[7] = 0; - gTasks[taskId].func = sub_8141984; + gTasks[taskId].func = Task_GivePayout; } -static void sub_8141AC0(u8 taskId) +#undef tPayout + +static void Task_EndTurn(u8 taskId) { - sub_8151A9C(&gUnknown_0203AB88->varB8, 0xFFFF); - gUnknown_0203AB88->varB8.var04[13].var00_7 = gUnknown_0203AB88->varB8.var04[14].var00_7 = gUnknown_0203AB88->varB8.var04[15].var00_7 = 0; - gSprites[gUnknown_0203AB88->var3C[7 + gUnknown_085B6154[gTasks[taskId].data[12]].var00]].invisible = TRUE; - gTasks[taskId].func = sub_8141B58; + sub_8151A9C(&sRoulette->varB8, 0xFFFF); + sRoulette->varB8.var04[13].var00_7 = sRoulette->varB8.var04[14].var00_7 = sRoulette->varB8.var04[15].var00_7 = 0; + gSprites[sRoulette->spriteIds[SPR_BOARD_ICONS + sGridSelections[gTasks[taskId].tWinningSquare].var00]].invisible = TRUE; + gTasks[taskId].func = Task_TryPrintEndTurnMsg; } -static void sub_8141B58(u8 taskId) +static void Task_TryPrintEndTurnMsg(u8 taskId) { u8 i = 0; - gTasks[taskId].data[4] = i; - gUnknown_0203AB88->var1B[gUnknown_0203AB88->var1A_0] = 0; - sub_81424FC(0); - gSprites[gUnknown_0203AB88->var3C[48]].invisible = TRUE; - for (i = 0; i < 4; i++) + gTasks[taskId].tSelectionId = i; + sRoulette->betSelection[sRoulette->curBallNum] = SELECTION_NONE; + DrawGridBackground(SELECTION_NONE); + gSprites[sRoulette->spriteIds[SPR_WIN_SLOT_CURSOR]].invisible = TRUE; + for (i = 0; i < NUM_BOARD_POKES; i++) { - gSprites[gUnknown_0203AB88->var3C[i + 41]].oam.tileNum = - gSprites[gUnknown_0203AB88->var3C[i + 41]].sheetTileStart - + (*gSprites[gUnknown_0203AB88->var3C[i + 41]].anims)->type; + gSprites[sRoulette->spriteIds[i + SPR_POKE_HEADER_1]].oam.tileNum = + gSprites[sRoulette->spriteIds[i + SPR_POKE_HEADER_1]].sheetTileStart + + (*gSprites[sRoulette->spriteIds[i + SPR_POKE_HEADER_1]].anims)->type; } - if (gTasks[taskId].data[13] >= gUnknown_0203AB88->var19) + if (gTasks[taskId].tCoins >= sRoulette->minBet) { - if (gTasks[taskId].data[6] == 6) + if (gTasks[taskId].tBallNum == BALLS_PER_ROUND) { - DrawStdWindowFrame(gUnknown_0203AB8C, FALSE); - AddTextPrinterParameterized(gUnknown_0203AB8C, 1, Roulette_Text_BoardWillBeCleared, 0, 1, TEXT_SPEED_FF, NULL); - CopyWindowToVram(gUnknown_0203AB8C, 3); - sub_8141F7C(taskId, dp01t_12_3_battle_menu, 0xFFFF, 3); + // Reached Ball 6, clear board + DrawStdWindowFrame(sTextWindowId, FALSE); + AddTextPrinterParameterized(sTextWindowId, 1, Roulette_Text_BoardWillBeCleared, 0, 1, TEXT_SPEED_FF, NULL); + CopyWindowToVram(sTextWindowId, 3); + StartTaskAfterDelayOrInput(taskId, Task_ClearBoard, 0xFFFF, A_BUTTON | B_BUTTON); } - else if (gTasks[taskId].data[13] == 9999) + else if (gTasks[taskId].tCoins == MAX_COINS) { - DrawStdWindowFrame(gUnknown_0203AB8C, FALSE); - AddTextPrinterParameterized(gUnknown_0203AB8C, 1, Roulette_Text_CoinCaseIsFull, 0, 1, TEXT_SPEED_FF, NULL); - CopyWindowToVram(gUnknown_0203AB8C, 3); - sub_8141F7C(taskId, sub_8140914, 0xFFFF, 0x3); + // Player maxed out coins + DrawStdWindowFrame(sTextWindowId, FALSE); + AddTextPrinterParameterized(sTextWindowId, 1, Roulette_Text_CoinCaseIsFull, 0, 1, TEXT_SPEED_FF, NULL); + CopyWindowToVram(sTextWindowId, 3); + StartTaskAfterDelayOrInput(taskId, Task_AskKeepPlaying, 0xFFFF, A_BUTTON | B_BUTTON); } else { - gTasks[taskId].func = sub_8140914; + // No special msg, ask to continue + gTasks[taskId].func = Task_AskKeepPlaying; } } else { - DrawStdWindowFrame(gUnknown_0203AB8C, FALSE); - AddTextPrinterParameterized(gUnknown_0203AB8C, 1, Roulette_Text_NoCoinsLeft, 0, 1, TEXT_SPEED_FF, NULL); - CopyWindowToVram(gUnknown_0203AB8C, 3); - sub_8141F7C(taskId, sub_8140994, 0x3C, 0x3); + // Player out of coins + DrawStdWindowFrame(sTextWindowId, FALSE); + AddTextPrinterParameterized(sTextWindowId, 1, Roulette_Text_NoCoinsLeft, 0, 1, TEXT_SPEED_FF, NULL); + CopyWindowToVram(sTextWindowId, 3); + StartTaskAfterDelayOrInput(taskId, Task_StopPlaying, 60, A_BUTTON | B_BUTTON); } } -static void dp01t_12_3_battle_menu(u8 taskId) +static void Task_ClearBoard(u8 taskId) { u8 i = 0; - gTasks[taskId].data[6] = 0; + gTasks[taskId].tBallNum = 0; sub_8141FF4(taskId); - sub_8142070(); - sub_8143A40(); - sub_81424FC(0); - sub_814372C(6); + ResetHits(); + HideBoardBalls(); + DrawGridBackground(SELECTION_NONE); + SetBallCounterNumLeft(BALLS_PER_ROUND); - for (i = 0; i < 12; i++) + for (i = 0; i < NUM_ROULETTE_SLOTS; i++) { - gSprites[gUnknown_0203AB88->var3C[i + 7]].invisible = FALSE; + gSprites[sRoulette->spriteIds[i + SPR_BOARD_ICONS]].invisible = FALSE; } - if (gTasks[taskId].data[13] == 9999) + if (gTasks[taskId].tCoins == MAX_COINS) { - DrawStdWindowFrame(gUnknown_0203AB8C, FALSE); - AddTextPrinterParameterized(gUnknown_0203AB8C, 1, Roulette_Text_CoinCaseIsFull, 0, 1, TEXT_SPEED_FF, NULL); - CopyWindowToVram(gUnknown_0203AB8C, 3); - sub_8141F7C(taskId, sub_8140914, 0xFFFF, 3); + DrawStdWindowFrame(sTextWindowId, FALSE); + AddTextPrinterParameterized(sTextWindowId, 1, Roulette_Text_CoinCaseIsFull, 0, 1, TEXT_SPEED_FF, NULL); + CopyWindowToVram(sTextWindowId, 3); + StartTaskAfterDelayOrInput(taskId, Task_AskKeepPlaying, 0xFFFF, A_BUTTON | B_BUTTON); } else { - gTasks[taskId].func = sub_8140914; + gTasks[taskId].func = Task_AskKeepPlaying; } } -static void sub_8141DE4(u8 taskId) +static void ExitRoulette(u8 taskId) { - sub_8151A9C(&gUnknown_0203AB88->varB8, 0xFFFF); - sub_8151678(&gUnknown_0203AB88->varB8); - SetCoins(gTasks[taskId].data[13]); - if (GetCoins() < gUnknown_0203AB88->var19) + sub_8151A9C(&sRoulette->varB8, 0xFFFF); + sub_8151678(&sRoulette->varB8); + SetCoins(gTasks[taskId].tCoins); + if (GetCoins() < sRoulette->minBet) gSpecialVar_0x8004 = TRUE; else gSpecialVar_0x8004 = FALSE; AlertTVOfNewCoinTotal(GetCoins()); BeginHardwarePaletteFade(0xFF, 0, 0, 16, 0); - gTasks[taskId].func = sub_8141E7C; + gTasks[taskId].func = Task_ExitRoulette; } -static void sub_8141E7C(u8 taskId) // end roulette ? +static void Task_ExitRoulette(u8 taskId) { if (UpdatePaletteFade() == 0) { @@ -1726,184 +1894,201 @@ static void sub_8141E7C(u8 taskId) // end roulette ? FreeAllSpritePalettes(); ResetPaletteFade(); ResetSpriteData(); - sub_8140418(); + FreeRoulette(); gFieldCallback = FieldCB_ContinueScriptHandleMusic; SetMainCallback2(CB2_ReturnToField); DestroyTask(taskId); } } -static void sub_8141EF8(u8 taskId) +static void Task_WaitForNextTask(u8 taskId) { - if (gUnknown_0203AB88->varA8 == 0 || gMain.newKeys & gUnknown_0203AB88->varAA) + if (sRoulette->taskWaitDelay == 0 || JOY_NEW(sRoulette->taskWaitKey)) { - gTasks[taskId].func = gUnknown_0203AB88->varAC; - if (gUnknown_0203AB88->varAA > 0) + gTasks[taskId].func = sRoulette->nextTask; + if (sRoulette->taskWaitKey > 0) PlaySE(SE_SELECT); - gUnknown_0203AB88->varAC = NULL; - gUnknown_0203AB88->varAA = 0; - gUnknown_0203AB88->varA8 = 0; + sRoulette->nextTask = NULL; + sRoulette->taskWaitKey = 0; + sRoulette->taskWaitDelay = 0; } - if (gUnknown_0203AB88->varA8 != 0xFFFF) - gUnknown_0203AB88->varA8--; + if (sRoulette->taskWaitDelay != 0xFFFF) + sRoulette->taskWaitDelay--; } -static void sub_8141F7C(u8 taskId, TaskFunc r1, u16 r2, u16 r3) +static void StartTaskAfterDelayOrInput(u8 taskId, TaskFunc task, u16 delay, u16 key) { - gUnknown_0203AB88->varB4 = gTasks[taskId].func; - if (r1 == NULL) - r1 = gUnknown_0203AB88->varB4; - gUnknown_0203AB88->varAC = r1; - gUnknown_0203AB88->varA8 = r2; - if (r2 == 0xFFFF && r3 == 0) - gUnknown_0203AB88->varAA = 0xFFFF; + sRoulette->varB4 = gTasks[taskId].func; + if (task == NULL) + task = sRoulette->varB4; + sRoulette->nextTask = task; + sRoulette->taskWaitDelay = delay; + if (delay == 0xFFFF && key == 0) + sRoulette->taskWaitKey = 0xFFFF; else - gUnknown_0203AB88->varAA = r3; - gTasks[taskId].func = sub_8141EF8; + sRoulette->taskWaitKey = key; + gTasks[taskId].func = Task_WaitForNextTask; } static void sub_8141FF4(u8 taskId) { u8 i = 0; - gUnknown_0203AB88->var00 = i; - gUnknown_0203AB88->var03_7 = 0; - gUnknown_0203AB88->var03_5 = 0; - gUnknown_0203AB88->var03_6 = 0; - gUnknown_0203AB88->var03_0 = 0; - for (i = 0; i < 6; i++) - { - gUnknown_0203AB88->var1B[i] = 0; - } - gUnknown_0203AB88->var1A_0 = 0; + sRoulette->var00 = i; + sRoulette->var03_7 = FALSE; + sRoulette->var03_5 = FALSE; + sRoulette->var03_6 = FALSE; + sRoulette->useTaillow = FALSE; + + for (i = 0; i < BALLS_PER_ROUND; i++) + sRoulette->betSelection[i] = SELECTION_NONE; + + sRoulette->curBallNum = 0; gTasks[taskId].data[1] = 0; } -static void sub_8142070(void) +static void ResetHits(void) { u8 i; - gUnknown_0203AB88->var08 = 0; - for (i = 0; i < 6; i++) - { - gUnknown_0203AB88->var0C[i] = 0; - } - for (i = 0; i < 4; i++) - { - gUnknown_0203AB88->var12[i] = 0; - } - for (i = 0; i < 3; i++) - { - gUnknown_0203AB88->var16[i] = 0; - } - sub_8143038(1, -1); + sRoulette->hitFlags = 0; + + for (i = 0; i < BALLS_PER_ROUND; i++) + sRoulette->hitSquares[i] = 0; + + for (i = 0; i < NUM_BOARD_POKES; i++) + sRoulette->pokeHits[i] = 0; + + for (i = 0; i < NUM_BOARD_COLORS; i++) + sRoulette->colorHits[i] = 0; + + ShowHideGridBalls(TRUE, -1); } -static u8 sub_81420D0(u8 taskId, u8 r1) +static u8 RecordHit(u8 taskId, u8 slotId) { - u8 i; - u8 z; - u32 t0[4] = {0x10842, 0x21084, 0x42108, 0x84210}; - u32 t1[3] = {0x3E0, 0x7C00, 0xF8000}; + u8 i, j; + u32 columnFlags[NUM_BOARD_POKES] = { + F_WYNAUT_COL | F_ORANGE_WYNAUT | F_GREEN_WYNAUT | F_PURPLE_WYNAUT, + F_AZURILL_COL | F_ORANGE_AZURILL | F_GREEN_AZURILL | F_PURPLE_AZURILL, + F_SKITTY_COL | F_ORANGE_SKITTY | F_GREEN_SKITTY | F_PURPLE_SKITTY, + F_MAKUHITA_COL | F_ORANGE_MAKUHITA | F_GREEN_MAKUHITA | F_PURPLE_MAKUHITA + }; + u32 rowFlags[NUM_BOARD_COLORS] = { + F_ORANGE_ROW | F_ORANGE_WYNAUT | F_ORANGE_AZURILL | F_ORANGE_SKITTY | F_ORANGE_MAKUHITA, + F_GREEN_ROW | F_GREEN_WYNAUT | F_GREEN_AZURILL | F_GREEN_SKITTY | F_GREEN_MAKUHITA, + F_PURPLE_ROW | F_PURPLE_WYNAUT | F_PURPLE_AZURILL | F_PURPLE_SKITTY | F_PURPLE_MAKUHITA + }; - if (r1 > 11) + if (slotId >= NUM_ROULETTE_SLOTS) return 0; - gUnknown_0203AB88->var0C[gTasks[taskId].data[6] - 1] = gUnknown_085B62E4[r1].var02; - gTasks[taskId].data[12] = gUnknown_085B62E4[r1].var02; - gUnknown_0203AB88->var08 |= gUnknown_085B62E4[r1].var04; - for (i = 0; i < 4; i++) + sRoulette->hitSquares[gTasks[taskId].tBallNum - 1] = sRouletteSlots[slotId].gridSquare; + gTasks[taskId].tWinningSquare = sRouletteSlots[slotId].gridSquare; + sRoulette->hitFlags |= sRouletteSlots[slotId].flag; + for (i = 0; i < NUM_BOARD_POKES; i++) { - if (gUnknown_085B62E4[r1].var04 & t0[i]) - gUnknown_0203AB88->var12[i]++; - if (gUnknown_0203AB88->var12[i] > 2) - gUnknown_0203AB88->var08 |= t0[i]; + if (sRouletteSlots[slotId].flag & columnFlags[i]) + sRoulette->pokeHits[i]++; + // If hit every color of a poke, set column completed + if (sRoulette->pokeHits[i] >= NUM_BOARD_COLORS) + sRoulette->hitFlags |= columnFlags[i]; } - for (z = 0; z < 3; z++) + for (j = 0; j < NUM_BOARD_COLORS; j++) { - if (gUnknown_085B62E4[r1].var04 & t1[z]) - gUnknown_0203AB88->var16[z]++; - if (gUnknown_0203AB88->var16[z] > 3) - gUnknown_0203AB88->var08 |= t1[z]; + if (sRouletteSlots[slotId].flag & rowFlags[j]) + sRoulette->colorHits[j]++; + // If hit every poke of a color, set row completed + if (sRoulette->colorHits[j] >= NUM_BOARD_POKES) + sRoulette->hitFlags |= rowFlags[j]; } - return gUnknown_085B62E4[r1].var02; + return sRouletteSlots[slotId].gridSquare; } -static bool8 sub_81421E8(u8 r0, u8 r1) +static bool8 IsHitInBetSelection(u8 gridSquare, u8 betSelection) { - u8 t = r0; - if (--r0 < 19) + u8 hit = gridSquare; + if (--gridSquare < NUM_GRID_SELECTIONS) { - switch (r1) + switch (betSelection) { - case 0: - return 3; - case 1 ... 4: - if (t == r1 + 5 || t == r1 + 10 || t == r1 + 15) + case SELECTION_NONE: + return 3; // should never happen, player must place bet + case COL_WYNAUT: + case COL_AZURILL: + case COL_SKITTY: + case COL_MAKUHITA: + if (hit == betSelection + ROW_ORANGE + || hit == betSelection + ROW_GREEN + || hit == betSelection + ROW_PURPLE) return TRUE; break; - case 5: - case 10: - case 15: - if (t >= (r1 + 1) && t <= (r1 + 4)) + case ROW_ORANGE: + case ROW_GREEN: + case ROW_PURPLE: + if (hit >= (betSelection + COL_WYNAUT) + && hit <= (betSelection + COL_MAKUHITA)) return TRUE; break; + // Individual square default: - if (t == r1) + if (hit == betSelection) return TRUE; } } return FALSE; } -static void sub_8142284(u8 r0) +static void FlashSelectionOnWheel(u8 selectionId) { - u16 var0 = 0; u8 var2; u16 var3; u8 i; - switch (r0) + switch (selectionId) { - case 5: - case 10: - case 15: - for (i = (r0 + 1); i < (r0 + 5); i++) + case ROW_ORANGE: + case ROW_GREEN: + case ROW_PURPLE: + for (i = (selectionId + 1); i < (selectionId + 5); i++) { - if (!(gUnknown_0203AB88->var08 & gUnknown_085B6154[i].var08)) - var0 |= gUnknown_085B6154[i].var10; + if (!(sRoulette->hitFlags & sGridSelections[i].flag)) + var0 |= sGridSelections[i].var10; } - sub_8151A48(&gUnknown_0203AB88->varB8, var0 &= 0xDFFF); + sub_8151A48(&sRoulette->varB8, var0 &= 0xDFFF); break; default: { struct UnkStruct1 var1[3]; memcpy(var1, gUnknown_085B63F0, sizeof(var1)); - if (r0 > 0 && r0 < 5) + if (selectionId >= COL_WYNAUT && selectionId <= COL_MAKUHITA) var2 = 3; else var2 = 1; - var3 = r0 / 5 - 1; - switch (r0 % 5) + + var3 = selectionId / 5 - 1; + switch (GET_COL(selectionId)) { - case 1: - var3 = gSprites[gUnknown_0203AB88->var3C[7]].oam.paletteNum * 16; - break; - case 2: - var3 = gSprites[gUnknown_0203AB88->var3C[8]].oam.paletteNum * 16; - break; - case 3: - var3 = gSprites[gUnknown_0203AB88->var3C[9]].oam.paletteNum * 16; - break; - case 4: - var3 = gSprites[gUnknown_0203AB88->var3C[10]].oam.paletteNum * 16; - break; + // The specific color of the poke it references doesn't matter, because the icons themelves all share a palette + // So it just uses the first sprite ID of each + case COL_WYNAUT: + var3 = gSprites[sRoulette->spriteIds[SPR_BOARD_ICON_ORANGE_WYNAUT]].oam.paletteNum * 16; + break; + case COL_AZURILL: + var3 = gSprites[sRoulette->spriteIds[SPR_BOARD_ICON_GREEN_AZURILL]].oam.paletteNum * 16; + break; + case COL_SKITTY: + var3 = gSprites[sRoulette->spriteIds[SPR_BOARD_ICON_PURPLE_SKITTY]].oam.paletteNum * 16; + break; + case COL_MAKUHITA: + var3 = gSprites[sRoulette->spriteIds[SPR_BOARD_ICON_ORANGE_MAKUHITA]].oam.paletteNum * 16; + break; } if (var2 == 1) { - if (!(gUnknown_0203AB88->var08 & gUnknown_085B6154[r0].var08)) + if (!(sRoulette->hitFlags & sGridSelections[selectionId].flag)) { - var1[r0 / 5 - 1].var02 += var3; - sub_815168C(&gUnknown_0203AB88->varB8, 13, &var1[r0 / 5 - 1]); + var1[selectionId / 5 - 1].var02 += var3; + sub_815168C(&sRoulette->varB8, 13, &var1[selectionId / 5 - 1]); } else { @@ -1914,26 +2099,26 @@ static void sub_8142284(u8 r0) { for (i = 0; i < 3; i++) { - u8 var4 = i * 5 + r0 + 5; - if (!(gUnknown_0203AB88->var08 & gUnknown_085B6154[var4].var08)) + u8 var4 = i * 5 + selectionId + 5; + if (!(sRoulette->hitFlags & sGridSelections[var4].flag)) { var1[var4 / 5 - 1].var02 += var3; - sub_815168C(&gUnknown_0203AB88->varB8, i + 13, &var1[var4 / 5 - 1]); + sub_815168C(&sRoulette->varB8, i + 13, &var1[var4 / 5 - 1]); if (var2 == 3) - var0 = gUnknown_085B6154[var4].var10; + var0 = sGridSelections[var4].var10; var2--; } } if (var2 != 2) var0 = 0; } - sub_8151A48(&gUnknown_0203AB88->varB8, var0 |= gUnknown_085B6154[r0].var10); + sub_8151A48(&sRoulette->varB8, var0 |= sGridSelections[selectionId].var10); break; } } } -static void sub_81424FC(u8 r0) +static void DrawGridBackground(u8 selectionId) { vu8 i; vu8 z; @@ -1942,69 +2127,77 @@ static void sub_81424FC(u8 r0) vu8 var0; u8 v[5]; u8 l; - gUnknown_0203AB88->var2A = 1; - sub_8142E70(0, 0); - sub_8152058(gUnknown_0203AB88->tilemapBuffers[2], gUnknown_0203AB88->unk_397C, 14, 7, 16, 13); - switch (r0) + sRoulette->var2A = 1; + ShowHideGridIcons(FALSE, 0); + SetGridSelectionRect(sRoulette->tilemapBuffers[2], sRoulette->unk_397C, 14, 7, 16, 13); + switch (selectionId) { - case 0: + case SELECTION_NONE: return; - case 1 ... 4: + case COL_WYNAUT: + case COL_AZURILL: + case COL_SKITTY: + case COL_MAKUHITA: l = 4; for (i = 0; i < l; i++) { - v[i] = i * 5 + r0; + v[i] = i * 5 + selectionId; } break; - case 5: - case 10: - case 15: + case ROW_ORANGE: + case ROW_GREEN: + case ROW_PURPLE: l = 5; for (i = 0; i < l; i++) { - v[i] = i + r0; + v[i] = i + selectionId; } break; + // Individual square default: l = 1; - v[0] = r0; + v[0] = selectionId; } for (i = 0; i < l; i++) { - var0 = gUnknown_085B6154[v[i]].var06; - var1 = gUnknown_085B6154[v[i]].var03; + var0 = sGridSelections[v[i]].var06; + var1 = sGridSelections[v[i]].x; for (z = 0; z < 3; z++) { - var2 = (gUnknown_085B6154[v[i]].var04 + z) * 32; - gUnknown_0203AB88->tilemapBuffers[2][var1 + var2 + 0] = gUnknown_0203AB88->unk_397C[(var0 + z) * 3 + 208]; - gUnknown_0203AB88->tilemapBuffers[2][var1 + var2 + 1] = gUnknown_0203AB88->unk_397C[(var0 + z) * 3 + 209]; - gUnknown_0203AB88->tilemapBuffers[2][var1 + var2 + 2] = gUnknown_0203AB88->unk_397C[(var0 + z) * 3 + 210]; + var2 = (sGridSelections[v[i]].y + z) * 32; + sRoulette->tilemapBuffers[2][var1 + var2 + 0] = sRoulette->unk_397C[(var0 + z) * 3 + 208]; + sRoulette->tilemapBuffers[2][var1 + var2 + 1] = sRoulette->unk_397C[(var0 + z) * 3 + 209]; + sRoulette->tilemapBuffers[2][var1 + var2 + 2] = sRoulette->unk_397C[(var0 + z) * 3 + 210]; } } } -static u8 sub_8142758(u8 r0) +static u8 GetMultiplier(u8 selectionId) { - u8 var0[5] = {0, 3, 4, 6, 12}; + u8 multipliers[5] = {0, 3, 4, 6, 12}; - if (r0 > 19) - r0 = 0; - switch (gUnknown_085B6154[r0].var01_0) + if (selectionId > NUM_GRID_SELECTIONS) + selectionId = 0; + + switch (sGridSelections[selectionId].baseMultiplier) { - case 3: - r0 = r0 / 5 - 1; - if (gUnknown_0203AB88->var16[r0] > 3) + case NUM_BOARD_COLORS: + selectionId = selectionId / 5 - 1; + // If already hit all pokes of this color, multiplier is 0 + if (sRoulette->colorHits[selectionId] >= NUM_BOARD_POKES) return 0; - return var0[gUnknown_0203AB88->var16[r0] + 1]; - case 4: - r0--; - if (gUnknown_0203AB88->var12[r0] > 2) + return multipliers[sRoulette->colorHits[selectionId] + 1]; + case NUM_BOARD_POKES: + selectionId--; + // If already hit all colors of this poke, multiplier is 0 + if (sRoulette->pokeHits[selectionId] >= NUM_BOARD_COLORS) return 0; - return var0[gUnknown_0203AB88->var12[r0] + 2]; - case 12: - if (gUnknown_0203AB88->var08 & gUnknown_085B6154[r0].var08) + return multipliers[sRoulette->pokeHits[selectionId] + 2]; + case NUM_ROULETTE_SLOTS: + // If square has been hit already, multiplier is 0 + if (sRoulette->hitFlags & sGridSelections[selectionId].flag) return 0; - return var0[4]; + return multipliers[4]; } return 0; } @@ -2013,59 +2206,59 @@ static void sub_8142814(void) { s32 x1; s32 x2; - SetGpuReg(REG_OFFSET_BG2PA, gUnknown_0203AB88->var2C.a); - SetGpuReg(REG_OFFSET_BG2PB, gUnknown_0203AB88->var2C.b); - SetGpuReg(REG_OFFSET_BG2PC, gUnknown_0203AB88->var2C.c); - SetGpuReg(REG_OFFSET_BG2PD, gUnknown_0203AB88->var2C.d); - x1 = 0x7400 - gUnknown_0203AB88->var2C.a * (gSpriteCoordOffsetX + 116) - - gUnknown_0203AB88->var2C.b * (gSpriteCoordOffsetY + 80); - x2 = 0x5400 - gUnknown_0203AB88->var2C.c * (gSpriteCoordOffsetX + 116) - - gUnknown_0203AB88->var2C.d * (gSpriteCoordOffsetY + 80); + SetGpuReg(REG_OFFSET_BG2PA, sRoulette->var2C.a); + SetGpuReg(REG_OFFSET_BG2PB, sRoulette->var2C.b); + SetGpuReg(REG_OFFSET_BG2PC, sRoulette->var2C.c); + SetGpuReg(REG_OFFSET_BG2PD, sRoulette->var2C.d); + x1 = 0x7400 - sRoulette->var2C.a * (gSpriteCoordOffsetX + 116) + - sRoulette->var2C.b * (gSpriteCoordOffsetY + 80); + x2 = 0x5400 - sRoulette->var2C.c * (gSpriteCoordOffsetX + 116) + - sRoulette->var2C.d * (gSpriteCoordOffsetY + 80); SetGpuReg(REG_OFFSET_BG2X_L, x1); SetGpuReg(REG_OFFSET_BG2X_H, (x1 & 0x0fff0000) >> 16); SetGpuReg(REG_OFFSET_BG2Y_L, x2); SetGpuReg(REG_OFFSET_BG2Y_H, (x2 & 0x0fff0000) >> 16); } -static const u8 sFiller_085B644D[3] = {}; -static const u16 RouletteSpritePalette_01[] = INCBIN_U16("graphics/roulette/shadow.gbapal"); -static const u16 RouletteSpritePalette_02[] = INCBIN_U16("graphics/roulette/ball.gbapal"); -static const u16 RouletteSpritePalette_03[] = INCBIN_U16("graphics/roulette/ball_counter.gbapal"); -static const u16 RouletteSpritePalette_04[] = INCBIN_U16("graphics/roulette/cursor.gbapal"); -static const u16 RouletteSpritePalette_05[] = INCBIN_U16("graphics/roulette/credit.gbapal"); -static const u16 RouletteSpritePalette_06[] = INCBIN_U16("graphics/roulette/shroomish.gbapal"); -static const u16 RouletteSpritePalette_07[] = INCBIN_U16("graphics/roulette/tailow.gbapal"); -static const u16 RouletteSpritePalette_08[] = INCBIN_U16("graphics/roulette/poke_icons.gbapal"); -static const u16 RouletteSpritePalette_09[] = INCBIN_U16("graphics/roulette/wynaut.gbapal"); -static const u16 RouletteSpritePalette_10[] = INCBIN_U16("graphics/roulette/azurill.gbapal"); -static const u16 RouletteSpritePalette_11[] = INCBIN_U16("graphics/roulette/skitty.gbapal"); -static const u16 RouletteSpritePalette_12[] = INCBIN_U16("graphics/roulette/makuhita.gbapal"); -static const u16 RouletteSpritePalette_13[] = INCBIN_U16("graphics/roulette/85B65D0.gbapal"); -static const u16 RouletteSpritePalette_14[] = INCBIN_U16("graphics/roulette/85B65F0.gbapal"); -static const u16 RouletteSpritePalette_15[] = INCBIN_U16("graphics/roulette/85B6610.gbapal"); -static const u16 RouletteSpritePalette_16[] = INCBIN_U16("graphics/roulette/85B6630.gbapal"); -static const u32 gUnknown_085B6650[] = INCBIN_U32("graphics/roulette/ball.4bpp.lz"); -static const u32 RouletteBallCounterTiles[] = INCBIN_U32("graphics/roulette/ball_counter.4bpp.lz"); -static const u32 gUnknown_085B67FC[] = INCBIN_U32("graphics/roulette/roulette_tilt.4bpp.lz"); -static const u32 RoulettePokeIconsTiles[] = INCBIN_U32("graphics/roulette/poke_icons.4bpp.lz"); -static const u32 RoulettePokeIcons2Tiles[] = INCBIN_U32("graphics/roulette/poke_icons2.4bpp.lz"); -static const u32 gUnknown_085B7290[] = INCBIN_U32("graphics/roulette/shadow.4bpp.lz"); -static const u32 RouletteCursorTiles[] = INCBIN_U32("graphics/roulette/cursor.4bpp.lz"); +static const u8 sFiller[3] = {}; +static const u16 sShadow_Pal[] = INCBIN_U16("graphics/roulette/shadow.gbapal"); +static const u16 sBall_Pal[] = INCBIN_U16("graphics/roulette/ball.gbapal"); +static const u16 sBallCounter_Pal[] = INCBIN_U16("graphics/roulette/ball_counter.gbapal"); +static const u16 sCursor_Pal[] = INCBIN_U16("graphics/roulette/cursor.gbapal"); +static const u16 sCredit_Pal[] = INCBIN_U16("graphics/roulette/credit.gbapal"); +static const u16 sShroomish_Pal[] = INCBIN_U16("graphics/roulette/shroomish.gbapal"); +static const u16 sTaillow_Pal[] = INCBIN_U16("graphics/roulette/tailow.gbapal"); +static const u16 sGridIcons_Pal[] = INCBIN_U16("graphics/roulette/grid_icons.gbapal"); +static const u16 sWynaut_Pal[] = INCBIN_U16("graphics/roulette/wynaut.gbapal"); +static const u16 sAzurill_Pal[] = INCBIN_U16("graphics/roulette/azurill.gbapal"); +static const u16 sSkitty_Pal[] = INCBIN_U16("graphics/roulette/skitty.gbapal"); +static const u16 sMakuhita_Pal[] = INCBIN_U16("graphics/roulette/makuhita.gbapal"); +static const u16 sUnused1_Pal[] = INCBIN_U16("graphics/roulette/unused_1.gbapal"); +static const u16 sUnused2_Pal[] = INCBIN_U16("graphics/roulette/unused_2.gbapal"); +static const u16 sUnused3_Pal[] = INCBIN_U16("graphics/roulette/unused_3.gbapal"); +static const u16 sUnused4_Pal[] = INCBIN_U16("graphics/roulette/unused_4.gbapal"); +static const u32 sBall_Gfx[] = INCBIN_U32("graphics/roulette/ball.4bpp.lz"); +static const u32 sBallCounter_Gfx[] = INCBIN_U32("graphics/roulette/ball_counter.4bpp.lz"); +static const u32 sShroomishTaillow_Gfx[] = INCBIN_U32("graphics/roulette/roulette_tilt.4bpp.lz"); +static const u32 sGridIcons_Gfx[] = INCBIN_U32("graphics/roulette/grid_icons.4bpp.lz"); +static const u32 sBoardIcons_Gfx[] = INCBIN_U32("graphics/roulette/board_icons.4bpp.lz"); +static const u32 sShadow_Gfx[] = INCBIN_U32("graphics/roulette/shadow.4bpp.lz"); +static const u32 sCursor_Gfx[] = INCBIN_U32("graphics/roulette/cursor.4bpp.lz"); -static const struct SpritePalette gUnknown_085B7384[] = +static const struct SpritePalette sSpritePalettes[] = { - { .data = RouletteSpritePalette_01, .tag = 1 }, - { .data = RouletteSpritePalette_02, .tag = 2 }, - { .data = RouletteSpritePalette_03, .tag = 3 }, - { .data = RouletteSpritePalette_04, .tag = 4 }, - { .data = RouletteSpritePalette_05, .tag = 5 }, - { .data = RouletteSpritePalette_06, .tag = 6 }, - { .data = RouletteSpritePalette_07, .tag = 7 }, - { .data = RouletteSpritePalette_08, .tag = 8 }, - { .data = RouletteSpritePalette_09, .tag = 9 }, - { .data = RouletteSpritePalette_10, .tag = 10 }, - { .data = RouletteSpritePalette_11, .tag = 11 }, - { .data = RouletteSpritePalette_12, .tag = 12 }, + { .data = sShadow_Pal, .tag = PALTAG_SHADOW }, + { .data = sBall_Pal, .tag = PALTAG_BALL }, + { .data = sBallCounter_Pal, .tag = PALTAG_BALL_COUNTER }, + { .data = sCursor_Pal, .tag = 4 }, + { .data = sCredit_Pal, .tag = PALTAG_INTERFACE }, + { .data = sShroomish_Pal, .tag = PALTAG_SHROOMISH }, + { .data = sTaillow_Pal, .tag = PALTAG_TAILLOW }, + { .data = sGridIcons_Pal, .tag = PALTAG_GRID_ICONS }, + { .data = sWynaut_Pal, .tag = PALTAG_WYNAUT }, + { .data = sAzurill_Pal, .tag = PALTAG_AZURILL }, + { .data = sSkitty_Pal, .tag = PALTAG_SKITTY }, + { .data = sMakuhita_Pal, .tag = PALTAG_MAKUHITA }, {} }; @@ -2078,7 +2271,7 @@ static const struct OamData gOamData_85B73EC = .priority = 1, }; -static const struct OamData gOamData_85B73F4 = +static const struct OamData sOam_GridIcon = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, @@ -2087,7 +2280,7 @@ static const struct OamData gOamData_85B73F4 = .priority = 1, }; -static const struct OamData gOamData_85B73FC = +static const struct OamData sOam_BoardIcon = { .y = 60, .affineMode = ST_OAM_AFFINE_DOUBLE, @@ -2097,35 +2290,35 @@ static const struct OamData gOamData_85B73FC = .priority = 2, }; -static const union AnimCmd gSpriteAnim_85B7404[] = +static const union AnimCmd sAffineAnim_Unused1[] = { ANIMCMD_FRAME(0, 0), ANIMCMD_END }; -static const union AnimCmd *const gSpriteAnimTable_85B740C[] = +static const union AnimCmd *const sAffineAnims_Unused1[] = { - gSpriteAnim_85B7404 + sAffineAnim_Unused1 }; -static const union AffineAnimCmd gSpriteAffineAnim_85B7410[] = +static const union AffineAnimCmd sAffineAnim_Unused2[] = { AFFINEANIMCMD_END }; -static const union AffineAnimCmd *const gSpriteAffineAnimTable_85B7418[] = +static const union AffineAnimCmd *const sAffineAnims_Unused2[] = { - gSpriteAffineAnim_85B7410 + sAffineAnim_Unused2 }; -static const struct CompressedSpriteSheet gUnknown_085B741C = +static const struct CompressedSpriteSheet sSpriteSheet_BoardIcons = { - .data = RoulettePokeIcons2Tiles, + .data = sBoardIcons_Gfx, .size = 0xC00, - .tag = 0 + .tag = GFXTAG_BOARD_ICONS }; -static const union AnimCmd gSpriteAnim_85B7420[] = +static const union AnimCmd sAnim_BoardIcons[] = { ANIMCMD_FRAME(0, 0), ANIMCMD_FRAME(32, 0), @@ -2142,81 +2335,81 @@ static const union AnimCmd gSpriteAnim_85B7420[] = ANIMCMD_END }; -static const union AnimCmd *const gSpriteAnimTable_85B7458[] = +static const union AnimCmd *const sAnim_BoardIcon_OrangeWynaut[] = { - &gSpriteAnim_85B7420[0] + &sAnim_BoardIcons[0] }; -static const union AnimCmd *const gSpriteAnimTable_85B745C[] = +static const union AnimCmd *const sAnim_BoardIcon_GreenAzurill[] = { - &gSpriteAnim_85B7420[1] + &sAnim_BoardIcons[1] }; -static const union AnimCmd *const gSpriteAnimTable_85B7460[] = +static const union AnimCmd *const sAnim_BoardIcon_PurpleSkitty[] = { - &gSpriteAnim_85B7420[2] + &sAnim_BoardIcons[2] }; -static const union AnimCmd *const gSpriteAnimTable_85B7464[] = +static const union AnimCmd *const sAnim_BoardIcon_OrangeMakuhita[] = { - &gSpriteAnim_85B7420[3] + &sAnim_BoardIcons[3] }; -static const union AnimCmd *const gSpriteAnimTable_85B7468[] = +static const union AnimCmd *const sAnim_BoardIcon_GreenWynaut[] = { - &gSpriteAnim_85B7420[4] + &sAnim_BoardIcons[4] }; -static const union AnimCmd *const gSpriteAnimTable_85B746C[] = +static const union AnimCmd *const sAnim_BoardIcon_PurpleAzurill[] = { - &gSpriteAnim_85B7420[5] + &sAnim_BoardIcons[5] }; -static const union AnimCmd *const gSpriteAnimTable_85B7470[] = +static const union AnimCmd *const sAnim_BoardIcon_OrangeSkitty[] = { - &gSpriteAnim_85B7420[6] + &sAnim_BoardIcons[6] }; -static const union AnimCmd *const gSpriteAnimTable_85B7474[] = +static const union AnimCmd *const sAnim_BoardIcon_GreenMakuhita[] = { - &gSpriteAnim_85B7420[7] + &sAnim_BoardIcons[7] }; -static const union AnimCmd *const gSpriteAnimTable_85B7478[] = +static const union AnimCmd *const sAnim_BoardIcon_PurpleWynaut[] = { - &gSpriteAnim_85B7420[8] + &sAnim_BoardIcons[8] }; -static const union AnimCmd *const gSpriteAnimTable_85B747C[] = +static const union AnimCmd *const sAnim_BoardIcon_OrangeAzurill[] = { - &gSpriteAnim_85B7420[9] + &sAnim_BoardIcons[9] }; -static const union AnimCmd *const gSpriteAnimTable_85B7480[] = +static const union AnimCmd *const sAnim_BoardIcon_GreenSkitty[] = { - &gSpriteAnim_85B7420[10] + &sAnim_BoardIcons[10] }; -static const union AnimCmd *const gSpriteAnimTable_85B7484[] = +static const union AnimCmd *const sAnim_BoardIcon_PurpleMakuhita[] = { - &gSpriteAnim_85B7420[11] + &sAnim_BoardIcons[11] }; -static const struct CompressedSpriteSheet gUnknown_085B7488 = +static const struct CompressedSpriteSheet sSpriteSheet_Headers = { - .data = gRouletteHeadersTiles, + .data = gRouletteHeaders_Gfx, .size = 0x1600, - .tag = 4 + .tag = GFXTAG_HEADERS }; -static const struct CompressedSpriteSheet gUnknown_085B7490 = +static const struct CompressedSpriteSheet sSpriteSheet_PokeIcons = { - .data = RoulettePokeIconsTiles, + .data = sGridIcons_Gfx, .size = 0x400, - .tag = 5 + .tag = GFXTAG_GRID_ICONS }; -static const union AnimCmd gSpriteAnim_85B7498[] = +static const union AnimCmd sAnim_Headers[] = { ANIMCMD_FRAME(0, 0), ANIMCMD_FRAME(16, 0), @@ -2232,7 +2425,7 @@ static const union AnimCmd gSpriteAnim_85B7498[] = ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_85B74C8[] = +static const union AnimCmd sAnim_GridIcons[] = { ANIMCMD_FRAME(0, 0), ANIMCMD_FRAME(4, 0), @@ -2241,285 +2434,287 @@ static const union AnimCmd gSpriteAnim_85B74C8[] = ANIMCMD_END }; -static const union AnimCmd *const gSpriteAnimTable_85B74DC[] = +static const union AnimCmd *const sAnim_WynautHeader[] = { - &gSpriteAnim_85B7498[0] + &sAnim_Headers[0] }; -static const union AnimCmd *const gSpriteAnimTable_85B74E0[] = +static const union AnimCmd *const sAnim_AzurillHeader[] = { - &gSpriteAnim_85B7498[2] + &sAnim_Headers[2] }; -static const union AnimCmd *const gSpriteAnimTable_85B74E4[] = +static const union AnimCmd *const sAnim_SkittyHeader[] = { - &gSpriteAnim_85B7498[4] + &sAnim_Headers[4] }; -static const union AnimCmd *const gSpriteAnimTable_85B74E8[] = +static const union AnimCmd *const sAnim_MakuhitaHeader[] = { - &gSpriteAnim_85B7498[6] + &sAnim_Headers[6] }; -static const union AnimCmd *const gSpriteAnimTable_85B74EC[] = +static const union AnimCmd *const sAnim_OrangeHeader[] = { - &gSpriteAnim_85B7498[8] + &sAnim_Headers[8] }; -static const union AnimCmd *const gSpriteAnimTable_85B74F0[] = +static const union AnimCmd *const sAnim_GreenHeader[] = { - &gSpriteAnim_85B7498[9] + &sAnim_Headers[9] }; -static const union AnimCmd *const gSpriteAnimTable_85B74F4[] = +static const union AnimCmd *const sAnim_PurpleHeader[] = { - &gSpriteAnim_85B7498[10] + &sAnim_Headers[10] }; -static const union AnimCmd *const gSpriteAnimTable_85B74F8[] = +static const union AnimCmd *const sAnim_GridIcon_Wynaut[] = { - &gSpriteAnim_85B74C8[0] + &sAnim_GridIcons[0] }; -static const union AnimCmd *const gSpriteAnimTable_85B74FC[] = +static const union AnimCmd *const sAnim_GridIcon_Azurill[] = { - &gSpriteAnim_85B74C8[1] + &sAnim_GridIcons[1] }; -static const union AnimCmd *const gSpriteAnimTable_85B7500[] = +static const union AnimCmd *const sAnim_GridIcon_Skitty[] = { - &gSpriteAnim_85B74C8[2] + &sAnim_GridIcons[2] }; -static const union AnimCmd *const gSpriteAnimTable_85B7504[] = +static const union AnimCmd *const sAnim_GridIcon_Makuhita[] = { - &gSpriteAnim_85B74C8[3] + &sAnim_GridIcons[3] }; -static const struct SpriteTemplate gSpriteTemplate_85B7508[] = +static const struct SpriteTemplate sSpriteTemplates_PokeHeaders[NUM_BOARD_POKES] = { { - .tileTag = 4, - .paletteTag = 8, + .tileTag = GFXTAG_HEADERS, + .paletteTag = PALTAG_GRID_ICONS, .oam = &gOamData_85B73EC, - .anims = gSpriteAnimTable_85B74DC, + .anims = sAnim_WynautHeader, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_814390C + .callback = SpriteCB_GridSquare }, { - .tileTag = 4, - .paletteTag = 8, + .tileTag = GFXTAG_HEADERS, + .paletteTag = PALTAG_GRID_ICONS, .oam = &gOamData_85B73EC, - .anims = gSpriteAnimTable_85B74E0, + .anims = sAnim_AzurillHeader, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_814390C + .callback = SpriteCB_GridSquare }, { - .tileTag = 4, - .paletteTag = 8, + .tileTag = GFXTAG_HEADERS, + .paletteTag = PALTAG_GRID_ICONS, .oam = &gOamData_85B73EC, - .anims = gSpriteAnimTable_85B74E4, + .anims = sAnim_SkittyHeader, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_814390C + .callback = SpriteCB_GridSquare }, { - .tileTag = 4, - .paletteTag = 8, + .tileTag = GFXTAG_HEADERS, + .paletteTag = PALTAG_GRID_ICONS, .oam = &gOamData_85B73EC, - .anims = gSpriteAnimTable_85B74E8, + .anims = sAnim_MakuhitaHeader, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_814390C + .callback = SpriteCB_GridSquare } }; -static const struct SpriteTemplate gSpriteTemplate_85B7568[] = +static const struct SpriteTemplate sSpriteTemplates_ColorHeaders[NUM_BOARD_COLORS] = { { - .tileTag = 4, - .paletteTag = 8, + .tileTag = GFXTAG_HEADERS, + .paletteTag = PALTAG_GRID_ICONS, .oam = &gOamData_85B73EC, - .anims = gSpriteAnimTable_85B74EC, + .anims = sAnim_OrangeHeader, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_814390C + .callback = SpriteCB_GridSquare }, { - .tileTag = 4, - .paletteTag = 8, + .tileTag = GFXTAG_HEADERS, + .paletteTag = PALTAG_GRID_ICONS, .oam = &gOamData_85B73EC, - .anims = gSpriteAnimTable_85B74F0, + .anims = sAnim_GreenHeader, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_814390C + .callback = SpriteCB_GridSquare }, { - .tileTag = 4, - .paletteTag = 8, + .tileTag = GFXTAG_HEADERS, + .paletteTag = PALTAG_GRID_ICONS, .oam = &gOamData_85B73EC, - .anims = gSpriteAnimTable_85B74F4, + .anims = sAnim_PurpleHeader, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_814390C + .callback = SpriteCB_GridSquare } }; -static const struct SpriteTemplate gSpriteTemplate_85B75B0[] = +static const struct SpriteTemplate sSpriteTemplate_GridIcons[NUM_BOARD_POKES] = { { - .tileTag = 5, - .paletteTag = 8, - .oam = &gOamData_85B73F4, - .anims = gSpriteAnimTable_85B74F8, + .tileTag = GFXTAG_GRID_ICONS, + .paletteTag = PALTAG_GRID_ICONS, + .oam = &sOam_GridIcon, + .anims = sAnim_GridIcon_Wynaut, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_814390C + .callback = SpriteCB_GridSquare }, { - .tileTag = 5, - .paletteTag = 8, - .oam = &gOamData_85B73F4, - .anims = gSpriteAnimTable_85B74FC, + .tileTag = GFXTAG_GRID_ICONS, + .paletteTag = PALTAG_GRID_ICONS, + .oam = &sOam_GridIcon, + .anims = sAnim_GridIcon_Azurill, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_814390C + .callback = SpriteCB_GridSquare }, { - .tileTag = 5, - .paletteTag = 8, - .oam = &gOamData_85B73F4, - .anims = gSpriteAnimTable_85B7500, + .tileTag = GFXTAG_GRID_ICONS, + .paletteTag = PALTAG_GRID_ICONS, + .oam = &sOam_GridIcon, + .anims = sAnim_GridIcon_Skitty, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_814390C + .callback = SpriteCB_GridSquare }, { - .tileTag = 5, - .paletteTag = 8, - .oam = &gOamData_85B73F4, - .anims = gSpriteAnimTable_85B7504, + .tileTag = GFXTAG_GRID_ICONS, + .paletteTag = PALTAG_GRID_ICONS, + .oam = &sOam_GridIcon, + .anims = sAnim_GridIcon_Makuhita, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_814390C + .callback = SpriteCB_GridSquare } }; -static const struct SpriteTemplate gSpriteTemplate_85B7610[] = +// Board icons are listed clockwise starting from 1 oclock on the roulette board (with pokeball upside right) +// They go Wynaut -> Azurill -> Skitty -> Makuhita, and Orange -> Green -> Purple +static const struct SpriteTemplate sSpriteTemplates_BoardIcons[NUM_ROULETTE_SLOTS] = { { - .tileTag = 0, - .paletteTag = 9, - .oam = &gOamData_85B73FC, - .anims = gSpriteAnimTable_85B7458, + .tileTag = GFXTAG_BOARD_ICONS, + .paletteTag = PALTAG_WYNAUT, + .oam = &sOam_BoardIcon, + .anims = sAnim_BoardIcon_OrangeWynaut, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8143280 + .callback = SpriteCB_BoardIcon }, { - .tileTag = 0, - .paletteTag = 10, - .oam = &gOamData_85B73FC, - .anims = gSpriteAnimTable_85B745C, + .tileTag = GFXTAG_BOARD_ICONS, + .paletteTag = PALTAG_AZURILL, + .oam = &sOam_BoardIcon, + .anims = sAnim_BoardIcon_GreenAzurill, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8143280 + .callback = SpriteCB_BoardIcon }, { - .tileTag = 0, - .paletteTag = 11, - .oam = &gOamData_85B73FC, - .anims = gSpriteAnimTable_85B7460, + .tileTag = GFXTAG_BOARD_ICONS, + .paletteTag = PALTAG_SKITTY, + .oam = &sOam_BoardIcon, + .anims = sAnim_BoardIcon_PurpleSkitty, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8143280 + .callback = SpriteCB_BoardIcon }, { - .tileTag = 0, - .paletteTag = 12, - .oam = &gOamData_85B73FC, - .anims = gSpriteAnimTable_85B7464, + .tileTag = GFXTAG_BOARD_ICONS, + .paletteTag = PALTAG_MAKUHITA, + .oam = &sOam_BoardIcon, + .anims = sAnim_BoardIcon_OrangeMakuhita, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8143280 + .callback = SpriteCB_BoardIcon }, { - .tileTag = 0, - .paletteTag = 9, - .oam = &gOamData_85B73FC, - .anims = gSpriteAnimTable_85B7468, + .tileTag = GFXTAG_BOARD_ICONS, + .paletteTag = PALTAG_WYNAUT, + .oam = &sOam_BoardIcon, + .anims = sAnim_BoardIcon_GreenWynaut, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8143280 + .callback = SpriteCB_BoardIcon }, { - .tileTag = 0, - .paletteTag = 10, - .oam = &gOamData_85B73FC, - .anims = gSpriteAnimTable_85B746C, + .tileTag = GFXTAG_BOARD_ICONS, + .paletteTag = PALTAG_AZURILL, + .oam = &sOam_BoardIcon, + .anims = sAnim_BoardIcon_PurpleAzurill, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8143280 + .callback = SpriteCB_BoardIcon }, { - .tileTag = 0, - .paletteTag = 11, - .oam = &gOamData_85B73FC, - .anims = gSpriteAnimTable_85B7470, + .tileTag = GFXTAG_BOARD_ICONS, + .paletteTag = PALTAG_SKITTY, + .oam = &sOam_BoardIcon, + .anims = sAnim_BoardIcon_OrangeSkitty, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8143280 + .callback = SpriteCB_BoardIcon }, { - .tileTag = 0, - .paletteTag = 12, - .oam = &gOamData_85B73FC, - .anims = gSpriteAnimTable_85B7474, + .tileTag = GFXTAG_BOARD_ICONS, + .paletteTag = PALTAG_MAKUHITA, + .oam = &sOam_BoardIcon, + .anims = sAnim_BoardIcon_GreenMakuhita, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8143280 + .callback = SpriteCB_BoardIcon }, { - .tileTag = 0, - .paletteTag = 9, - .oam = &gOamData_85B73FC, - .anims = gSpriteAnimTable_85B7478, + .tileTag = GFXTAG_BOARD_ICONS, + .paletteTag = PALTAG_WYNAUT, + .oam = &sOam_BoardIcon, + .anims = sAnim_BoardIcon_PurpleWynaut, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8143280 + .callback = SpriteCB_BoardIcon }, { - .tileTag = 0, - .paletteTag = 10, - .oam = &gOamData_85B73FC, - .anims = gSpriteAnimTable_85B747C, + .tileTag = GFXTAG_BOARD_ICONS, + .paletteTag = PALTAG_AZURILL, + .oam = &sOam_BoardIcon, + .anims = sAnim_BoardIcon_OrangeAzurill, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8143280 + .callback = SpriteCB_BoardIcon }, { - .tileTag = 0, - .paletteTag = 11, - .oam = &gOamData_85B73FC, - .anims = gSpriteAnimTable_85B7480, + .tileTag = GFXTAG_BOARD_ICONS, + .paletteTag = PALTAG_SKITTY, + .oam = &sOam_BoardIcon, + .anims = sAnim_BoardIcon_GreenSkitty, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8143280 + .callback = SpriteCB_BoardIcon }, { - .tileTag = 0, - .paletteTag = 12, - .oam = &gOamData_85B73FC, - .anims = gSpriteAnimTable_85B7484, + .tileTag = GFXTAG_BOARD_ICONS, + .paletteTag = PALTAG_MAKUHITA, + .oam = &sOam_BoardIcon, + .anims = sAnim_BoardIcon_PurpleMakuhita, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8143280 + .callback = SpriteCB_BoardIcon } }; -static const struct OamData gOamData_85B7730 = +static const struct OamData sOam_Credit = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, @@ -2528,7 +2723,7 @@ static const struct OamData gOamData_85B7730 = .priority = 1, }; -static const struct OamData gOamData_85B7738 = +static const struct OamData sOam_CreditDigit = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, @@ -2537,7 +2732,7 @@ static const struct OamData gOamData_85B7738 = .priority = 1, }; -static const struct OamData gOamData_85B7740 = +static const struct OamData sOam_Multiplier = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, @@ -2546,7 +2741,7 @@ static const struct OamData gOamData_85B7740 = .priority = 1, }; -static const struct OamData gOamData_85B7748 = +static const struct OamData sOam_BallCounter = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, @@ -2555,32 +2750,32 @@ static const struct OamData gOamData_85B7748 = .priority = 1, }; -static const struct CompressedSpriteSheet gUnknown_085B7750[] = +static const struct CompressedSpriteSheet sSpriteSheets_Interface[] = { { - .data = gRouletteCreditTiles, + .data = gRouletteCredit_Gfx, .size = 0x400, - .tag = 7 + .tag = GFXTAG_CREDIT }, { - .data = gRouletteNumbersTiles, + .data = gRouletteNumbers_Gfx, .size = 0x280, - .tag = 8 + .tag = GFXTAG_CREDIT_DIGIT }, { - .data = gRouletteMultiplierTiles, + .data = gRouletteMultiplier_Gfx, .size = 0x500, - .tag = 9 + .tag = GFXTAG_MULTIPLIER }, { - .data = RouletteBallCounterTiles, + .data = sBallCounter_Gfx, .size = 0x140, - .tag = 10 + .tag = GFXTAG_BALL_COUNTER }, { - .data = RouletteCursorTiles, + .data = sCursor_Gfx, .size = 0x200, - .tag = 11 + .tag = GFXTAG_CURSOR }, {} }; @@ -2606,7 +2801,7 @@ static const union AnimCmd *const gSpriteAnimTable_85B77A8[] = gSpriteAnim_85B7780 }; -static const union AnimCmd gSpriteAnim_85B77AC[] = +static const union AnimCmd sAnim_Multiplier[] = { ANIMCMD_FRAME(0, 0), ANIMCMD_FRAME(8, 0), @@ -2616,12 +2811,12 @@ static const union AnimCmd gSpriteAnim_85B77AC[] = ANIMCMD_END }; -static const union AnimCmd *const gSpriteAnimTable_85B77C4[] = +static const union AnimCmd *const sAnims_Multiplier[] = { - gSpriteAnim_85B77AC + sAnim_Multiplier }; -static const union AnimCmd gSpriteAnim_85B77C8[] = +static const union AnimCmd sAnim_BallCounter[] = { ANIMCMD_FRAME(0, 0), ANIMCMD_FRAME(2, 0), @@ -2631,59 +2826,60 @@ static const union AnimCmd gSpriteAnim_85B77C8[] = ANIMCMD_END }; -static const union AnimCmd *const gSpriteAnimTable_85B77E0[] = +static const union AnimCmd *const sAnims_BallCounter[] = { - gSpriteAnim_85B77C8 + sAnim_BallCounter }; -static const struct SpriteTemplate gSpriteTemplate_85B77E4 = +static const struct SpriteTemplate sSpriteTemplate_Credit = { - .tileTag = 7, - .paletteTag = 5, - .oam = &gOamData_85B7730, + .tileTag = GFXTAG_CREDIT, + .paletteTag = PALTAG_INTERFACE, + .oam = &sOam_Credit, .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct SpriteTemplate gUnknown_085B77FC = +static const struct SpriteTemplate sSpriteTemplate_CreditDigit = { - .tileTag = 8, - .paletteTag = 5, - .oam = &gOamData_85B7738, + .tileTag = GFXTAG_CREDIT_DIGIT, + .paletteTag = PALTAG_INTERFACE, + .oam = &sOam_CreditDigit, .anims = gSpriteAnimTable_85B77A8, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct SpriteTemplate gUnknown_085B7814 = +static const struct SpriteTemplate sSpriteTemplate_Multiplier = { - .tileTag = 9, - .paletteTag = 5, - .oam = &gOamData_85B7740, - .anims = gSpriteAnimTable_85B77C4, + .tileTag = GFXTAG_MULTIPLIER, + .paletteTag = PALTAG_INTERFACE, + .oam = &sOam_Multiplier, + .anims = sAnims_Multiplier, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_814390C + .callback = SpriteCB_GridSquare }; -static const struct SpriteTemplate gUnknown_085B782C = +static const struct SpriteTemplate sSpriteTemplate_BallCounter = { - .tileTag = 10, - .paletteTag = 3, - .oam = &gOamData_85B7748, - .anims = gSpriteAnimTable_85B77E0, + .tileTag = GFXTAG_BALL_COUNTER, + .paletteTag = PALTAG_BALL_COUNTER, + .oam = &sOam_BallCounter, + .anims = sAnims_BallCounter, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct SpriteTemplate gUnknown_085B7844 = +// NOTE: This cursor is only used to identify the winning square on the grid +static const struct SpriteTemplate sSpriteTemplate_Cursor = { - .tileTag = 11, - .paletteTag = 5, + .tileTag = GFXTAG_CURSOR, + .paletteTag = PALTAG_INTERFACE, .oam = &gOamData_85B73EC, .anims = gDummySpriteAnimTable, .images = NULL, @@ -2691,7 +2887,7 @@ static const struct SpriteTemplate gUnknown_085B7844 = .callback = SpriteCallbackDummy }; -static const struct OamData gOamData_85B785C = +static const struct OamData sOam_Ball = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, @@ -2700,10 +2896,10 @@ static const struct OamData gOamData_85B785C = .priority = 2, }; -static const struct CompressedSpriteSheet gUnknown_085B7864 = { - .data = gUnknown_085B6650, +static const struct CompressedSpriteSheet sSpriteSheet_Ball = { + .data = sBall_Gfx, .size = 0x200, - .tag = 12 + .tag = GFXTAG_BALL }; static const union AnimCmd gSpriteAnim_85B786C[] = @@ -2776,7 +2972,7 @@ static const union AnimCmd gSpriteAnim_85B78F0[] = ANIMCMD_END }; -static const union AnimCmd *const gSpriteAnimTable_85B7904[] = +static const union AnimCmd *const sAnims_Ball[] = { gSpriteAnim_85B786C, gSpriteAnim_85B7880, @@ -2789,18 +2985,18 @@ static const union AnimCmd *const gSpriteAnimTable_85B7904[] = gSpriteAnim_85B78E8 }; -static const struct SpriteTemplate gSpriteTemplate_85B7928 = +static const struct SpriteTemplate sSpriteTemplate_Ball = { - .tileTag = 12, - .paletteTag = 2, - .oam = &gOamData_85B785C, - .anims = gSpriteAnimTable_85B7904, + .tileTag = GFXTAG_BALL, + .paletteTag = PALTAG_BALL, + .oam = &sOam_Ball, + .anims = sAnims_Ball, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct OamData gOamData_85B7940 = +static const struct OamData sOam_BoardCenter = { .y = 81, .affineMode = ST_OAM_AFFINE_DOUBLE, @@ -2810,25 +3006,25 @@ static const struct OamData gOamData_85B7940 = .priority = 2, }; -static const struct CompressedSpriteSheet gUnknown_085B7948 = +static const struct CompressedSpriteSheet sSpriteSheet_BoardCenter = { .data = gRouletteCenter_Gfx, .size = 0x800, - .tag = 6 + .tag = GFXTAG_BOARD_CENTER }; -static const struct SpriteTemplate gSpriteTemplate_85B7950 = +static const struct SpriteTemplate sSpriteTemplate_BoardCenter = { - .tileTag = 6, - .paletteTag = 2, - .oam = &gOamData_85B7940, + .tileTag = GFXTAG_BOARD_CENTER, + .paletteTag = PALTAG_BALL, + .oam = &sOam_BoardCenter, .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_814399C + .callback = SpriteCB_BoardCenter }; -static const struct OamData gOamData_85B7968 = +static const struct OamData sOam_Shroomish = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, @@ -2837,7 +3033,7 @@ static const struct OamData gOamData_85B7968 = .priority = 2, }; -static const struct OamData gOamData_85B7970 = +static const struct OamData sOam_Taillow = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, @@ -2846,14 +3042,14 @@ static const struct OamData gOamData_85B7970 = .priority = 2, }; -static const struct CompressedSpriteSheet gUnknown_085B7978 = +static const struct CompressedSpriteSheet sSpriteSheet_ShroomishTaillow = { - .data = gUnknown_085B67FC, + .data = sShroomishTaillow_Gfx, .size = 0xE00, - .tag = 13 + .tag = GFXTAG_SHROOMISH_TAILLOW }; -static const union AnimCmd gSpriteAnim_85B7980[] = +static const union AnimCmd sAnim_Shroomish[] = { ANIMCMD_FRAME(0, 6), ANIMCMD_FRAME(16, 6), @@ -2904,12 +3100,12 @@ static const union AnimCmd gSpriteAnim_85B79D0[] = ANIMCMD_JUMP(0) }; -static const union AnimCmd *const gSpriteAnimTable_85B79DC[] = +static const union AnimCmd *const sAnims_Shroomish[] = { - gSpriteAnim_85B7980 + sAnim_Shroomish }; -static const union AnimCmd *const gSpriteAnimTable_85B79E0[] = +static const union AnimCmd *const sAnims_Taillow[] = { gSpriteAnim_85B799C, gSpriteAnim_85B79A4, @@ -2919,26 +3115,26 @@ static const union AnimCmd *const gSpriteAnimTable_85B79E0[] = gSpriteAnim_85B79D0 }; -static const struct SpriteTemplate gSpriteTemplate_85B79F8 = +static const struct SpriteTemplate sSpriteTemplate_Shroomish = { - .tileTag = 13, - .paletteTag = 6, - .oam = &gOamData_85B7968, - .anims = gSpriteAnimTable_85B79DC, + .tileTag = GFXTAG_SHROOMISH_TAILLOW, + .paletteTag = PALTAG_SHROOMISH, + .oam = &sOam_Shroomish, + .anims = sAnims_Shroomish, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct SpriteTemplate gSpriteTemplate_85B7A10 = +static const struct SpriteTemplate sSpriteTemplate_Taillow = { - .tileTag = 13, - .paletteTag = 7, - .oam = &gOamData_85B7970, - .anims = gSpriteAnimTable_85B79E0, + .tileTag = GFXTAG_SHROOMISH_TAILLOW, + .paletteTag = PALTAG_TAILLOW, + .oam = &sOam_Taillow, + .anims = sAnims_Taillow, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8145294 + .callback = SpriteCB_Taillow }; static const struct OamData gOamData_85B7A28 = @@ -2959,7 +3155,7 @@ static const struct OamData gOamData_85B7A30 = .priority = 2, }; -static const struct OamData gOamData_85B7A38 = +static const struct OamData sOam_TaillowShadow = { .affineMode = ST_OAM_AFFINE_NORMAL, .objMode = ST_OAM_OBJ_NORMAL, @@ -2968,11 +3164,11 @@ static const struct OamData gOamData_85B7A38 = .priority = 2, }; -static const struct CompressedSpriteSheet gUnknown_085B7A40 = +static const struct CompressedSpriteSheet sSpriteSheet_Shadow = { - .data = gUnknown_085B7290, + .data = sShadow_Gfx, .size = 0x180, - .tag = 14 + .tag = GFXTAG_SHADOW }; static const union AffineAnimCmd gSpriteAffineAnim_85B7A48[] = @@ -2982,7 +3178,7 @@ static const union AffineAnimCmd gSpriteAffineAnim_85B7A48[] = AFFINEANIMCMD_END }; -static const union AffineAnimCmd gSpriteAffineAnim_85B7A60[] = +static const union AffineAnimCmd sAffineAnim_TaillowShadow[] = { AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0), AFFINEANIMCMD_FRAME(-2, 0x0, 0, 15), @@ -2996,9 +3192,9 @@ static const union AffineAnimCmd *const gSpriteAffineAnimTable_85B7A88[] = gSpriteAffineAnim_85B7A48 }; -static const union AffineAnimCmd *const gSpriteAffineAnimTable_85B7A8C[] = +static const union AffineAnimCmd *const sAffineAnims_TaillowShadow[] = { - gSpriteAffineAnim_85B7A60 + sAffineAnim_TaillowShadow }; static const union AffineAnimCmd gSpriteAffineAnim_85B7A90[] = @@ -3034,11 +3230,11 @@ static const union AnimCmd *const gSpriteAnimTable_85B7AB8[] = gSpriteAnim_85B7AAC }; -static const struct SpriteTemplate gSpriteTemplate_85B7ABC[] = +static const struct SpriteTemplate sSpriteTemplate_ShroomishShadow[] = { { - .tileTag = 14, - .paletteTag = 1, + .tileTag = GFXTAG_SHADOW, + .paletteTag = PALTAG_SHADOW, .oam = &gOamData_85B7A28, .anims = gSpriteAnimTable_85B7AB4, .images = NULL, @@ -3046,8 +3242,8 @@ static const struct SpriteTemplate gSpriteTemplate_85B7ABC[] = .callback = SpriteCallbackDummy }, { - .tileTag = 14, - .paletteTag = 1, + .tileTag = GFXTAG_SHADOW, + .paletteTag = PALTAG_SHADOW, .oam = &gOamData_85B7A30, .anims = gSpriteAnimTable_85B7AB8, .images = NULL, @@ -3056,34 +3252,34 @@ static const struct SpriteTemplate gSpriteTemplate_85B7ABC[] = } }; -static const struct SpriteTemplate gUnknown_085B7AEC = +static const struct SpriteTemplate sSpriteTemplate_TaillowShadow = { - .tileTag = 14, - .paletteTag = 1, - .oam = &gOamData_85B7A38, + .tileTag = GFXTAG_SHADOW, + .paletteTag = PALTAG_SHADOW, + .oam = &sOam_TaillowShadow, .anims = gSpriteAnimTable_85B7AB8, .images = NULL, - .affineAnims = gSpriteAffineAnimTable_85B7A8C, - .callback = sub_8145294 + .affineAnims = sAffineAnims_TaillowShadow, + .callback = SpriteCB_Taillow }; -static void sub_81428C4(u8 r0) +static void Task_ShowMinBetYesNo(u8 taskId) { DisplayYesNoMenuDefaultYes(); - DoYesNoFuncWithChoice(r0, &gUnknown_085B6408); + DoYesNoFuncWithChoice(taskId, &sYesNoTable_AcceptMinBet); } -static void sub_81428E4(u8 taskId) +static void Task_FadeToRouletteGame(u8 taskId) { if (!gPaletteFade.active) { SetVBlankCallback(NULL); - SetMainCallback2(sub_81405CC); + SetMainCallback2(CB2_LoadRoulette); DestroyTask(taskId); } } -static void sub_8142918(u8 taskId) +static void Task_AcceptMinBet(u8 taskId) { ClearStdWindowAndFrame(0, TRUE); HideCoinsWindow(); @@ -3091,10 +3287,10 @@ static void sub_8142918(u8 taskId) BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); gPaletteFade.delayCounter = gPaletteFade.multipurpose2; UpdatePaletteFade(); - gTasks[taskId].func = sub_81428E4; + gTasks[taskId].func = Task_FadeToRouletteGame; } -static void sub_814297C(u8 taskId) +static void Task_DeclineMinBet(u8 taskId) { ClearStdWindowAndFrame(0, FALSE); HideCoinsWindow(); @@ -3102,10 +3298,10 @@ static void sub_814297C(u8 taskId) DestroyTask(taskId); } -static void sub_81429A0(u8 taskId) +static void Task_NotEnoughForMinBet(u8 taskId) { gTasks[taskId].data[0]++; - if (gMain.newKeys & (A_BUTTON | B_BUTTON)) + if (JOY_NEW(A_BUTTON | B_BUTTON)) { gSpecialVar_0x8004 = 1; HideCoinsWindow(); @@ -3115,52 +3311,56 @@ static void sub_81429A0(u8 taskId) } } -static void sub_81429F0(u8 taskId) +static void Task_PrintMinBet(u8 taskId) { - if (gMain.newKeys & (A_BUTTON | B_BUTTON)) + if (JOY_NEW(A_BUTTON | B_BUTTON)) { - u32 temp = gUnknown_085B6344[(gSpecialVar_0x8004 & 1) + (gSpecialVar_0x8004 >> 7 << 1)]; - ConvertIntToDecimalStringN(gStringVar1, temp, STR_CONV_MODE_LEADING_ZEROS, 1); + u32 minBet = sTableMinBets[GET_TABLE_ID(gSpecialVar_0x8004)]; + ConvertIntToDecimalStringN(gStringVar1, minBet, STR_CONV_MODE_LEADING_ZEROS, 1); StringExpandPlaceholders(gStringVar4, Roulette_Text_PlayMinimumWagerIsX); DrawStdWindowFrame(0, FALSE); AddTextPrinterParameterized(0, 1, gStringVar4, 0, 1, TEXT_SPEED_FF, NULL); CopyWindowToVram(0, 3); - gTasks[taskId].func = sub_81428C4; + gTasks[taskId].func = Task_ShowMinBetYesNo; } } -static void Task_Roulette_0(u8 taskId) +static void Task_PrintRouletteEntryMsg(u8 taskId) { - s32 temp; - PrintCoinsString(gTasks[taskId].data[13]); - temp = gUnknown_085B6344[(gSpecialVar_0x8004 & 1) + (gSpecialVar_0x8004 >> 7 << 1)]; - ConvertIntToDecimalStringN(gStringVar1, temp, STR_CONV_MODE_LEADING_ZEROS, 1); - if (gTasks[taskId].data[13] >= temp) + s32 minBet; + PrintCoinsString(gTasks[taskId].tCoins); + minBet = sTableMinBets[GET_TABLE_ID(gSpecialVar_0x8004)]; + ConvertIntToDecimalStringN(gStringVar1, minBet, STR_CONV_MODE_LEADING_ZEROS, 1); + + if (gTasks[taskId].tCoins >= minBet) { - if ((gSpecialVar_0x8004 & 0x80) && (gSpecialVar_0x8004 & 1)) + if ((gSpecialVar_0x8004 & ROULETTE_SPECIAL_RATE) && (gSpecialVar_0x8004 & 1)) { + // Special rate for Game Corner service day (only at second table) DrawStdWindowFrame(0, FALSE); AddTextPrinterParameterized(0, 1, Roulette_Text_SpecialRateTable, 0, 1, TEXT_SPEED_FF, NULL); CopyWindowToVram(0, 3); - gTasks[taskId].func = sub_81429F0; + gTasks[taskId].func = Task_PrintMinBet; } else { + // Print minimum bet StringExpandPlaceholders(gStringVar4, Roulette_Text_PlayMinimumWagerIsX); DrawStdWindowFrame(0, FALSE); AddTextPrinterParameterized(0, 1, gStringVar4, 0, 1, TEXT_SPEED_FF, NULL); CopyWindowToVram(0, 3); - gTasks[taskId].func = sub_81428C4; + gTasks[taskId].func = Task_ShowMinBetYesNo; } } else { + // Not enough for minimum bet StringExpandPlaceholders(gStringVar4, Roulette_Text_NotEnoughCoins); DrawStdWindowFrame(0, FALSE); AddTextPrinterParameterized(0, 1, gStringVar4, 0, 1, TEXT_SPEED_FF, NULL); CopyWindowToVram(0, 3); - gTasks[taskId].func = sub_81429A0; - gTasks[taskId].data[13] = 0; + gTasks[taskId].func = Task_NotEnoughForMinBet; + gTasks[taskId].tCoins = 0; gTasks[taskId].data[0] = 0; } } @@ -3171,38 +3371,39 @@ void PlayRoulette(void) ScriptContext2_Enable(); ShowCoinsWindow(GetCoins(), 1, 1); - taskId = CreateTask(Task_Roulette_0, 0); - gTasks[taskId].data[13] = GetCoins(); + taskId = CreateTask(Task_PrintRouletteEntryMsg, 0); + gTasks[taskId].tCoins = GetCoins(); } -static void sub_8142C0C(u8 r0) +static void LoadOrFreeMiscSpritePalettesAndSheets(bool8 free) { - if (!r0) + if (!free) { FreeAllSpritePalettes(); - LoadSpritePalettes(gUnknown_085B7384); - LoadCompressedSpriteSheet(&gUnknown_085B7864); - LoadCompressedSpriteSheet(&gUnknown_085B7978); - LoadCompressedSpriteSheet(&gUnknown_085B7A40); + LoadSpritePalettes(sSpritePalettes); + LoadCompressedSpriteSheet(&sSpriteSheet_Ball); + LoadCompressedSpriteSheet(&sSpriteSheet_ShroomishTaillow); + LoadCompressedSpriteSheet(&sSpriteSheet_Shadow); } else { - FreeSpriteTilesByTag(14); - FreeSpriteTilesByTag(13); - FreeSpriteTilesByTag(12); + // Unused + FreeSpriteTilesByTag(GFXTAG_SHADOW); + FreeSpriteTilesByTag(GFXTAG_SHROOMISH_TAILLOW); + FreeSpriteTilesByTag(GFXTAG_BALL); FreeAllSpritePalettes(); } } -static u8 sub_8142C60(const struct SpriteTemplate *r0, u8 r1, u16 *r2) +static u8 CreateBoardIconSprite(const struct SpriteTemplate *r0, u8 r1, u16 *r2) { u16 temp; u8 spriteId = CreateSprite(r0, 116, 80, r0->oam->y); - gSprites[spriteId].data[0] = *r2; - gSprites[spriteId].data[1] = r1; + gSprites[spriteId].data[0] = *r2; + gSprites[spriteId].data[1] = r1; gSprites[spriteId].coordOffsetEnabled = TRUE; - gSprites[spriteId].animPaused = TRUE; - gSprites[spriteId].affineAnimPaused = TRUE; + gSprites[spriteId].animPaused = TRUE; + gSprites[spriteId].affineAnimPaused = TRUE; temp = *r2; *r2 += 30; if (*r2 >= 360) @@ -3210,170 +3411,173 @@ static u8 sub_8142C60(const struct SpriteTemplate *r0, u8 r1, u16 *r2) return spriteId; } -static void sub_8142CD0(void) +static void CreateGridSprites(void) { u8 i, j; u8 spriteId; struct SpriteSheet s; - LZ77UnCompWram(gUnknown_085B7488.data, gDecompressionBuffer); + LZ77UnCompWram(sSpriteSheet_Headers.data, gDecompressionBuffer); s.data = gDecompressionBuffer; - s.size = gUnknown_085B7488.size; - s.tag = gUnknown_085B7488.tag; + s.size = sSpriteSheet_Headers.size; + s.tag = sSpriteSheet_Headers.tag; LoadSpriteSheet(&s); - LZ77UnCompWram(gUnknown_085B7490.data, gDecompressionBuffer); + LZ77UnCompWram(sSpriteSheet_PokeIcons.data, gDecompressionBuffer); s.data = gDecompressionBuffer; - s.size = gUnknown_085B7490.size; - s.tag = gUnknown_085B7490.tag; + s.size = sSpriteSheet_PokeIcons.size; + s.tag = sSpriteSheet_PokeIcons.tag; LoadSpriteSheet(&s); - for (i = 0; i < 3; i++) + for (i = 0; i < NUM_BOARD_COLORS; i++) { u8 o = i * 24; - for (j = 0; j < 4; j++) + for (j = 0; j < NUM_BOARD_POKES; j++) { - spriteId = gUnknown_0203AB88->var3C[(i * 4) + 29 + j] = CreateSprite(&gSpriteTemplate_85B75B0[j], (j * 24) + 148, o + 92, 30); + spriteId = sRoulette->spriteIds[(i * NUM_BOARD_POKES) + SPR_GRID_ICONS + j] = CreateSprite(&sSpriteTemplate_GridIcons[j], (j * 24) + 148, o + 92, 30); gSprites[spriteId].animPaused = TRUE; o += 24; if (o >= 72) o = 0; } } - for (i = 0; i < 4; i++) + for (i = 0; i < ARRAY_COUNT(sSpriteTemplates_PokeHeaders); i++) { - spriteId = gUnknown_0203AB88->var3C[i + 41] = CreateSprite(&gSpriteTemplate_85B7508[i], (i * 24) + 148, 70, 30); + spriteId = sRoulette->spriteIds[i + SPR_POKE_HEADER_1] = CreateSprite(&sSpriteTemplates_PokeHeaders[i], (i * 24) + 148, 70, 30); gSprites[spriteId].animPaused = TRUE; } - for (i = 0; i < 3; i++) + for (i = 0; i < ARRAY_COUNT(sSpriteTemplates_ColorHeaders); i++) { - spriteId = gUnknown_0203AB88->var3C[i + 45] = CreateSprite(&gSpriteTemplate_85B7568[i], 126, (i * 24) + 92, 30); + spriteId = sRoulette->spriteIds[i + SPR_COLOR_HEADER_1] = CreateSprite(&sSpriteTemplates_ColorHeaders[i], 126, (i * 24) + 92, 30); gSprites[spriteId].animPaused = TRUE; } } -static void unref_sub_8142E3C(void) +// Unused +static void DestroyGridSprites(void) { u8 i; - for (i = 0; i < 12; i++) + for (i = 0; i < NUM_ROULETTE_SLOTS; i++) { - DestroySprite(&gSprites[gUnknown_0203AB88->var3C[i + 29]]); + DestroySprite(&gSprites[sRoulette->spriteIds[i + SPR_GRID_ICONS]]); } } -static void sub_8142E70(u8 r0, u8 r1) +static void ShowHideGridIcons(bool8 hideAll, u8 hideSquare) { u8 i; - switch (r0) + switch (hideAll) { - case 1: - for (i = 0; i < 19; i++) + case TRUE: + // Hide grid icons and headers + for (i = 0; i < NUM_GRID_SELECTIONS; i++) { - gSprites[gUnknown_0203AB88->var3C[i + 29]].invisible = TRUE; + gSprites[sRoulette->spriteIds[i + SPR_GRID_ICONS]].invisible = TRUE; } break; - case 0: - for (i = 0; i < 12; i++) + case FALSE: + for (i = 0; i < NUM_ROULETTE_SLOTS; i++) { - if (!(gUnknown_0203AB88->var08 & gUnknown_085B62E4[i].var04)) - gSprites[gUnknown_0203AB88->var3C[i + 29]].invisible = FALSE; - else if (gUnknown_085B62E4[i].var02 != r1) - gSprites[gUnknown_0203AB88->var3C[i + 29]].invisible = TRUE; + if (!(sRoulette->hitFlags & sRouletteSlots[i].flag)) + gSprites[sRoulette->spriteIds[i + SPR_GRID_ICONS]].invisible = FALSE; + else if (sRouletteSlots[i].gridSquare != hideSquare) + gSprites[sRoulette->spriteIds[i + SPR_GRID_ICONS]].invisible = TRUE; else - gSprites[gUnknown_0203AB88->var3C[i + 29]].invisible = FALSE; + gSprites[sRoulette->spriteIds[i + SPR_GRID_ICONS]].invisible = FALSE; } - for (; i < 19; i++) + // Always show grid headers + for (; i < NUM_GRID_SELECTIONS; i++) { - gSprites[gUnknown_0203AB88->var3C[i + 29]].invisible = FALSE; + gSprites[sRoulette->spriteIds[i + SPR_GRID_ICONS]].invisible = FALSE; } break; } } -static void sub_8142F7C(void) +static void CreateGridBallSprites(void) { u8 i; - for (i = 0; i < 6; i++) + for (i = 0; i < BALLS_PER_ROUND; i++) { - gUnknown_0203AB88->var3C[i + 49] = CreateSprite(&gSpriteTemplate_85B7928, 116, 20, 10); - gSprites[gUnknown_0203AB88->var3C[i + 49]].invisible = TRUE; - gSprites[gUnknown_0203AB88->var3C[i + 49]].data[0] = 1; - gSprites[gUnknown_0203AB88->var3C[i + 49]].callback = sub_814390C; - gSprites[gUnknown_0203AB88->var3C[i + 49]].oam.priority = 1; - StartSpriteAnim(&gSprites[gUnknown_0203AB88->var3C[i + 49]], 8); + sRoulette->spriteIds[i + SPR_GRID_BALL_1] = CreateSprite(&sSpriteTemplate_Ball, 116, 20, 10); + gSprites[sRoulette->spriteIds[i + SPR_GRID_BALL_1]].invisible = TRUE; + gSprites[sRoulette->spriteIds[i + SPR_GRID_BALL_1]].data[0] = 1; + gSprites[sRoulette->spriteIds[i + SPR_GRID_BALL_1]].callback = SpriteCB_GridSquare; + gSprites[sRoulette->spriteIds[i + SPR_GRID_BALL_1]].oam.priority = 1; + StartSpriteAnim(&gSprites[sRoulette->spriteIds[i + SPR_GRID_BALL_1]], 8); } } -static void sub_8143038(u8 r0, u8 r1) +static void ShowHideGridBalls(bool8 hideAll, u8 hideBallId) { u8 i = 0; - if (r0) + if (hideAll) { - for ( ; i < 6; i++) + for (; i < BALLS_PER_ROUND; i++) { - gSprites[gUnknown_0203AB88->var3C[i + 49]].invisible = TRUE; + gSprites[sRoulette->spriteIds[i + SPR_GRID_BALL_1]].invisible = TRUE; } } else { - for ( ; i < 6; i++) + for (; i < BALLS_PER_ROUND; i++) { - if (!gUnknown_0203AB88->var0C[i] || i == r1) + if (!sRoulette->hitSquares[i] || i == hideBallId) { - gSprites[gUnknown_0203AB88->var3C[i + 49]].invisible = TRUE; + gSprites[sRoulette->spriteIds[i + SPR_GRID_BALL_1]].invisible = TRUE; } else { - gSprites[gUnknown_0203AB88->var3C[i + 49]].invisible = FALSE; - gSprites[gUnknown_0203AB88->var3C[i + 49]].pos1.x = (gUnknown_085B6154[gUnknown_0203AB88->var0C[i]].var03 + 1) * 8 + 4; - gSprites[gUnknown_0203AB88->var3C[i + 49]].pos1.y = (gUnknown_085B6154[gUnknown_0203AB88->var0C[i]].var04 + 1) * 8 + 3; + gSprites[sRoulette->spriteIds[i + SPR_GRID_BALL_1]].invisible = FALSE; + gSprites[sRoulette->spriteIds[i + SPR_GRID_BALL_1]].pos1.x = (sGridSelections[sRoulette->hitSquares[i]].x + 1) * 8 + 4; + gSprites[sRoulette->spriteIds[i + SPR_GRID_BALL_1]].pos1.y = (sGridSelections[sRoulette->hitSquares[i]].y + 1) * 8 + 3; } } } } -static void sub_8143150(u8 r0) +static void ShowHideWinSlotCursor(u8 selectionId) { - if (!r0) + if (selectionId == 0) { - gSprites[gUnknown_0203AB88->var3C[48]].invisible = TRUE; + gSprites[sRoulette->spriteIds[SPR_WIN_SLOT_CURSOR]].invisible = TRUE; } else { - gSprites[gUnknown_0203AB88->var3C[48]].invisible = FALSE; - gSprites[gUnknown_0203AB88->var3C[48]].pos1.x = (gUnknown_085B6154[r0].var03 + 2) * 8; - gSprites[gUnknown_0203AB88->var3C[48]].pos1.y = (gUnknown_085B6154[r0].var04 + 2) * 8; + gSprites[sRoulette->spriteIds[SPR_WIN_SLOT_CURSOR]].invisible = FALSE; + gSprites[sRoulette->spriteIds[SPR_WIN_SLOT_CURSOR]].pos1.x = (sGridSelections[selectionId].x + 2) * 8; + gSprites[sRoulette->spriteIds[SPR_WIN_SLOT_CURSOR]].pos1.y = (sGridSelections[selectionId].y + 2) * 8; } } -static void sub_81431E4(void) +static void CreateBoardIconSprites(void) { u8 i, j; u16 k; struct SpriteSheet s; - LZ77UnCompWram(gUnknown_085B741C.data, gDecompressionBuffer); + LZ77UnCompWram(sSpriteSheet_BoardIcons.data, gDecompressionBuffer); s.data = gDecompressionBuffer; - s.size = gUnknown_085B741C.size; - s.tag = gUnknown_085B741C.tag; + s.size = sSpriteSheet_BoardIcons.size; + s.tag = sSpriteSheet_BoardIcons.tag; LoadSpriteSheet(&s); k = 15; - for (i = 0; i < 3; i++) + for (i = 0; i < NUM_BOARD_COLORS; i++) { - for (j = 0; j < 4; j++) + for (j = 0; j < NUM_BOARD_POKES; j++) { u8 spriteId; - spriteId = gUnknown_0203AB88->var3C[(i * 4) + 7 + j] = sub_8142C60(&gSpriteTemplate_85B7610[i * 4 + j], 40, &k); + spriteId = sRoulette->spriteIds[(i * NUM_BOARD_POKES) + SPR_BOARD_ICONS + j] = CreateBoardIconSprite(&sSpriteTemplates_BoardIcons[i * NUM_BOARD_POKES + j], 40, &k); gSprites[spriteId].animPaused = TRUE; gSprites[spriteId].affineAnimPaused = TRUE; } } } -static void sub_8143280(struct Sprite *sprite) +static void SpriteCB_BoardIcon(struct Sprite *sprite) { s16 cos; s16 sin; u32 matrixNum; - s16 angle = gUnknown_0203AB88->var24 + sprite->data[0]; + s16 angle = sRoulette->var24 + sprite->data[0]; if (angle >= 360) angle -= 360; sin = Sin2(angle); @@ -3388,55 +3592,56 @@ static void sub_8143280(struct Sprite *sprite) gOamMatrices[matrixNum].c = -sin; } -static void sub_8143314(void) +static void CreateInterfaceSprites(void) { u8 i; - for (i = 0; i < 5; i++) + for (i = 0; i < ARRAY_COUNT(sSpriteSheets_Interface) - 1; i++) { struct SpriteSheet s; - LZ77UnCompWram(gUnknown_085B7750[i].data, gDecompressionBuffer); + LZ77UnCompWram(sSpriteSheets_Interface[i].data, gDecompressionBuffer); s.data = gDecompressionBuffer; - s.size = gUnknown_085B7750[i].size; - s.tag = gUnknown_085B7750[i].tag; + s.size = sSpriteSheets_Interface[i].size; + s.tag = sSpriteSheets_Interface[i].tag; LoadSpriteSheet(&s); } - gUnknown_0203AB88->var3C[20] = CreateSprite(&gSpriteTemplate_85B77E4, 208, 16, 4); - gSprites[gUnknown_0203AB88->var3C[20]].animPaused = TRUE; - for (i = 0; i < 4; i++) + sRoulette->spriteIds[SPR_CREDIT] = CreateSprite(&sSpriteTemplate_Credit, 208, 16, 4); + gSprites[sRoulette->spriteIds[SPR_CREDIT]].animPaused = TRUE; + for (i = 0; i < MAX_COIN_DIGITS; i++) { - gUnknown_0203AB88->var3C[i + 21] = CreateSprite(&gUnknown_085B77FC, i * 8 + 196, 24, 0); - gSprites[gUnknown_0203AB88->var3C[i + 21]].invisible = TRUE; - gSprites[gUnknown_0203AB88->var3C[i + 21]].animPaused = TRUE; + sRoulette->spriteIds[i + SPR_CREDIT_DIG_1] = CreateSprite(&sSpriteTemplate_CreditDigit, i * 8 + 196, 24, 0); + gSprites[sRoulette->spriteIds[i + SPR_CREDIT_DIG_1]].invisible = TRUE; + gSprites[sRoulette->spriteIds[i + SPR_CREDIT_DIG_1]].animPaused = TRUE; } - gUnknown_0203AB88->var3C[25] = CreateSprite(&gUnknown_085B7814, 120, 68, 4); - gSprites[gUnknown_0203AB88->var3C[25]].animPaused = TRUE; - for (i = 0; i < 3; i++) + sRoulette->spriteIds[SPR_MULTIPLIER] = CreateSprite(&sSpriteTemplate_Multiplier, 120, 68, 4); + gSprites[sRoulette->spriteIds[SPR_MULTIPLIER]].animPaused = TRUE; + for (i = 0; i < BALLS_PER_ROUND / 2; i++) { - gUnknown_0203AB88->var3C[i + 26] = CreateSprite(&gUnknown_085B782C, i * 16 + 192, 36, 4); - gSprites[gUnknown_0203AB88->var3C[i + 26]].invisible = TRUE; - gSprites[gUnknown_0203AB88->var3C[i + 26]].animPaused = TRUE; + // Each ball counter sprite has 2 balls + sRoulette->spriteIds[i + SPR_BALL_COUNTER_1] = CreateSprite(&sSpriteTemplate_BallCounter, i * 16 + 192, 36, 4); + gSprites[sRoulette->spriteIds[i + SPR_BALL_COUNTER_1]].invisible = TRUE; + gSprites[sRoulette->spriteIds[i + SPR_BALL_COUNTER_1]].animPaused = TRUE; } - gUnknown_0203AB88->var3C[48] = CreateSprite(&gUnknown_085B7844, 152, 96, 9); - gSprites[gUnknown_0203AB88->var3C[48]].oam.priority = 1; - gSprites[gUnknown_0203AB88->var3C[48]].animPaused = TRUE; - gSprites[gUnknown_0203AB88->var3C[48]].invisible = TRUE; + sRoulette->spriteIds[SPR_WIN_SLOT_CURSOR] = CreateSprite(&sSpriteTemplate_Cursor, 152, 96, 9); + gSprites[sRoulette->spriteIds[SPR_WIN_SLOT_CURSOR]].oam.priority = 1; + gSprites[sRoulette->spriteIds[SPR_WIN_SLOT_CURSOR]].animPaused = TRUE; + gSprites[sRoulette->spriteIds[SPR_WIN_SLOT_CURSOR]].invisible = TRUE; } -static void sub_8143514(u16 r0) +static void SetCreditDigits(u16 r0) { u8 i; u16 d = 1000; bool8 v = FALSE; - for (i = 0; i < 4; i++) + for (i = 0; i < MAX_COIN_DIGITS; i++) { u8 t = r0 / d; - gSprites[gUnknown_0203AB88->var3C[i + 21]].invisible = TRUE; - if (t > 0 || v || i == 3) + gSprites[sRoulette->spriteIds[i + SPR_CREDIT_DIG_1]].invisible = TRUE; + if (t > 0 || v || i == MAX_COIN_DIGITS - 1) { - gSprites[gUnknown_0203AB88->var3C[i + 21]].invisible = FALSE; - gSprites[gUnknown_0203AB88->var3C[i + 21]].oam.tileNum = - gSprites[gUnknown_0203AB88->var3C[i + 21]].sheetTileStart - + (*gSprites[gUnknown_0203AB88->var3C[i + 21]].anims + t)->type; + gSprites[sRoulette->spriteIds[i + SPR_CREDIT_DIG_1]].invisible = FALSE; + gSprites[sRoulette->spriteIds[i + SPR_CREDIT_DIG_1]].oam.tileNum = + gSprites[sRoulette->spriteIds[i + SPR_CREDIT_DIG_1]].sheetTileStart + + (*gSprites[sRoulette->spriteIds[i + SPR_CREDIT_DIG_1]].anims + t)->type; v = TRUE; } r0 = r0 % d; @@ -3444,143 +3649,145 @@ static void sub_8143514(u16 r0) } } -static u8 sub_8143614(u8 r0) +// Identical to GetMultiplier but with different data array +static u8 GetMultiplierAnimId(u8 selectionId) { - u8 t[5] = {0, 1, 2, 3, 4}; + u8 animIds[5] = {0, 1, 2, 3, 4}; - if (r0 >= 20) - r0 = 0; - switch (gUnknown_085B6154[r0].var01_0) + if (selectionId > NUM_GRID_SELECTIONS) + selectionId = 0; + + switch (sGridSelections[selectionId].baseMultiplier) { - case 3: - r0 = r0 / 5 - 1; - if (gUnknown_0203AB88->var16[r0] > 3) + case NUM_BOARD_COLORS: + selectionId = selectionId / 5 - 1; + if (sRoulette->colorHits[selectionId] > 3) return 0; - return t[gUnknown_0203AB88->var16[r0] + 1]; - case 4: - r0--; - if (gUnknown_0203AB88->var12[r0] > 2) + return animIds[sRoulette->colorHits[selectionId] + 1]; + case NUM_BOARD_POKES: + selectionId--; + if (sRoulette->pokeHits[selectionId] > 2) return 0; - return t[gUnknown_0203AB88->var12[r0] + 2]; - case 12: - if (gUnknown_0203AB88->var08 & gUnknown_085B6154[r0].var08) + return animIds[sRoulette->pokeHits[selectionId] + 2]; + case NUM_ROULETTE_SLOTS: + if (sRoulette->hitFlags & sGridSelections[selectionId].flag) return 0; - return t[4]; + return animIds[4]; } return 0; } -static void sub_81436D0(u8 r0) +static void SetMultiplierSprite(u8 selectionId) { - struct Sprite *s = &gSprites[gUnknown_0203AB88->var3C[25]]; - s->animCmdIndex = sub_8143614(r0); + struct Sprite *s = &gSprites[sRoulette->spriteIds[SPR_MULTIPLIER]]; + s->animCmdIndex = GetMultiplierAnimId(selectionId); s->oam.tileNum = s->sheetTileStart + (*s->anims + s->animCmdIndex)->type; } -static void sub_814372C(u8 r0) +static void SetBallCounterNumLeft(u8 numBalls) { u8 i; u8 t = 0; - if (gUnknown_0203AB88->var19 == 1) + if (sRoulette->minBet == 1) t = 2; - switch (r0) + switch (numBalls) { case 6: - for (i = 0; i < 3; i++) + for (i = 0; i < BALLS_PER_ROUND / 2; i++) { - gSprites[gUnknown_0203AB88->var3C[i + 26]].invisible = FALSE; - gSprites[gUnknown_0203AB88->var3C[i + 26]].oam.tileNum = - gSprites[gUnknown_0203AB88->var3C[i + 26]].sheetTileStart - + (*gSprites[gUnknown_0203AB88->var3C[i + 26]].anims)->type; + gSprites[sRoulette->spriteIds[i + SPR_BALL_COUNTER_1]].invisible = FALSE; + gSprites[sRoulette->spriteIds[i + SPR_BALL_COUNTER_1]].oam.tileNum = + gSprites[sRoulette->spriteIds[i + SPR_BALL_COUNTER_1]].sheetTileStart + + (*gSprites[sRoulette->spriteIds[i + SPR_BALL_COUNTER_1]].anims)->type; } break; case 5: - gSprites[gUnknown_0203AB88->var3C[28]].oam.tileNum = - gSprites[gUnknown_0203AB88->var3C[28]].sheetTileStart - + (*gSprites[gUnknown_0203AB88->var3C[28]].anims + t + 1)->type; + gSprites[sRoulette->spriteIds[SPR_BALL_COUNTER_3]].oam.tileNum = + gSprites[sRoulette->spriteIds[SPR_BALL_COUNTER_3]].sheetTileStart + + (*gSprites[sRoulette->spriteIds[SPR_BALL_COUNTER_3]].anims + t + 1)->type; break; case 4: - gSprites[gUnknown_0203AB88->var3C[28]].oam.tileNum = - gSprites[gUnknown_0203AB88->var3C[28]].sheetTileStart - + (*gSprites[gUnknown_0203AB88->var3C[28]].anims + t + 2)->type; + gSprites[sRoulette->spriteIds[SPR_BALL_COUNTER_3]].oam.tileNum = + gSprites[sRoulette->spriteIds[SPR_BALL_COUNTER_3]].sheetTileStart + + (*gSprites[sRoulette->spriteIds[SPR_BALL_COUNTER_3]].anims + t + 2)->type; break; case 3: - gSprites[gUnknown_0203AB88->var3C[27]].oam.tileNum = - gSprites[gUnknown_0203AB88->var3C[27]].sheetTileStart - + (*gSprites[gUnknown_0203AB88->var3C[27]].anims + t + 1)->type; + gSprites[sRoulette->spriteIds[SPR_BALL_COUNTER_2]].oam.tileNum = + gSprites[sRoulette->spriteIds[SPR_BALL_COUNTER_2]].sheetTileStart + + (*gSprites[sRoulette->spriteIds[SPR_BALL_COUNTER_2]].anims + t + 1)->type; break; case 2: - gSprites[gUnknown_0203AB88->var3C[27]].oam.tileNum = - gSprites[gUnknown_0203AB88->var3C[27]].sheetTileStart - + (*gSprites[gUnknown_0203AB88->var3C[27]].anims + t + 2)->type; + gSprites[sRoulette->spriteIds[SPR_BALL_COUNTER_2]].oam.tileNum = + gSprites[sRoulette->spriteIds[SPR_BALL_COUNTER_2]].sheetTileStart + + (*gSprites[sRoulette->spriteIds[SPR_BALL_COUNTER_2]].anims + t + 2)->type; break; case 1: - gSprites[gUnknown_0203AB88->var3C[26]].oam.tileNum = - gSprites[gUnknown_0203AB88->var3C[26]].sheetTileStart - + (*gSprites[gUnknown_0203AB88->var3C[26]].anims + t + 1)->type; + gSprites[sRoulette->spriteIds[SPR_BALL_COUNTER_1]].oam.tileNum = + gSprites[sRoulette->spriteIds[SPR_BALL_COUNTER_1]].sheetTileStart + + (*gSprites[sRoulette->spriteIds[SPR_BALL_COUNTER_1]].anims + t + 1)->type; break; case 0: default: - for (i = 0; i < 3; i++) + for (i = 0; i < BALLS_PER_ROUND / 2; i++) { - gSprites[gUnknown_0203AB88->var3C[i + 26]].oam.tileNum = - gSprites[gUnknown_0203AB88->var3C[i + 26]].sheetTileStart - + (*gSprites[gUnknown_0203AB88->var3C[i + 26]].anims + t + 2)->type; + gSprites[sRoulette->spriteIds[i + SPR_BALL_COUNTER_1]].oam.tileNum = + gSprites[sRoulette->spriteIds[i + SPR_BALL_COUNTER_1]].sheetTileStart + + (*gSprites[sRoulette->spriteIds[i + SPR_BALL_COUNTER_1]].anims + t + 2)->type; } } } -static void sub_814390C(struct Sprite *sprite) +static void SpriteCB_GridSquare(struct Sprite *sprite) { - sprite->pos2.x = gUnknown_0203AB88->var26; + sprite->pos2.x = sRoulette->var26; } -static void sub_814391C(void) +static void CreateBoardCenterSprite(void) { u8 spriteId; struct SpriteSheet s; - LZ77UnCompWram(gUnknown_085B7948.data, gDecompressionBuffer); + LZ77UnCompWram(sSpriteSheet_BoardCenter.data, gDecompressionBuffer); s.data = gDecompressionBuffer; - s.size = gUnknown_085B7948.size; - s.tag = gUnknown_085B7948.tag; + s.size = sSpriteSheet_BoardCenter.size; + s.tag = sSpriteSheet_BoardCenter.tag; LoadSpriteSheet(&s); - spriteId = CreateSprite(&gSpriteTemplate_85B7950, 116, 80, 81); - gSprites[spriteId].data[0] = gUnknown_0203AB88->var24; + spriteId = CreateSprite(&sSpriteTemplate_BoardCenter, 116, 80, 81); + gSprites[spriteId].data[0] = sRoulette->var24; gSprites[spriteId].data[1] = 0; gSprites[spriteId].animPaused = TRUE; gSprites[spriteId].affineAnimPaused = TRUE; gSprites[spriteId].coordOffsetEnabled = TRUE; } -static void sub_814399C(struct Sprite *sprite) +static void SpriteCB_BoardCenter(struct Sprite *sprite) { u32 t = sprite->oam.matrixNum; struct OamMatrix *m = &gOamMatrices[0]; - m[t].d = gUnknown_0203AB88->var2C.a; - m[t].a = gUnknown_0203AB88->var2C.a; - m[t].b = gUnknown_0203AB88->var2C.b; - m[t].c = gUnknown_0203AB88->var2C.c; + m[t].d = sRoulette->var2C.a; + m[t].a = sRoulette->var2C.a; + m[t].b = sRoulette->var2C.b; + m[t].c = sRoulette->var2C.c; } -static void sub_81439C8(void) +static void CreateBoardBallSprites(void) { u8 i; - for (i = 0; i < 6; i++) + for (i = 0; i < BALLS_PER_ROUND; i++) { - gUnknown_0203AB88->var3C[i] = CreateSprite(&gSpriteTemplate_85B7928, 116, 80, 57 - i); - if (gUnknown_0203AB88->var3C[i] != MAX_SPRITES) + sRoulette->spriteIds[i] = CreateSprite(&sSpriteTemplate_Ball, 116, 80, 57 - i); + if (sRoulette->spriteIds[i] != MAX_SPRITES) { - gSprites[gUnknown_0203AB88->var3C[i]].invisible = TRUE; - gSprites[gUnknown_0203AB88->var3C[i]].coordOffsetEnabled = TRUE; + gSprites[sRoulette->spriteIds[i]].invisible = TRUE; + gSprites[sRoulette->spriteIds[i]].coordOffsetEnabled = TRUE; } } } -static void sub_8143A40(void) +static void HideBoardBalls(void) { - u8 t = gUnknown_0203AB88->var3C[0]; + u8 t = sRoulette->spriteIds[SPR_BALL_1]; u8 i; - for (i = 0; i < 6; i++) + for (i = 0; i < BALLS_PER_ROUND; i++) { u8 j; gSprites[t].invisible = TRUE; @@ -3596,15 +3803,15 @@ static void sub_8143A40(void) static s16 sub_8143AC8(struct Sprite *sprite) { - if (gUnknown_0203AB88->var24 > sprite->data[3]) + if (sRoulette->var24 > sprite->data[3]) { - sprite->data[6] = 360 - gUnknown_0203AB88->var24 + sprite->data[3]; + sprite->data[6] = 360 - sRoulette->var24 + sprite->data[3]; if (sprite->data[6] >= 360) sprite->data[6] -= 360; } else { - sprite->data[6] = sprite->data[3] - gUnknown_0203AB88->var24; + sprite->data[6] = sprite->data[3] - sRoulette->var24; } return sprite->data[6]; @@ -3612,8 +3819,8 @@ static s16 sub_8143AC8(struct Sprite *sprite) static u8 sub_8143B14(struct Sprite *sprite) { - gUnknown_0203AB88->var7E = sub_8143AC8(sprite) / 30.0f; - return gUnknown_0203AB88->var7E; + sRoulette->var7E = sub_8143AC8(sprite) / 30.0f; + return sRoulette->var7E; } static s16 sub_8143B48(struct Sprite *sprite) @@ -3641,18 +3848,18 @@ static void sub_8143B84(struct Sprite *sprite) { s16 sin, cos; - gUnknown_0203AB88->var8C += gUnknown_0203AB88->var90; - gUnknown_0203AB88->var88 += gUnknown_0203AB88->var8C; + sRoulette->var8C += sRoulette->var90; + sRoulette->var88 += sRoulette->var8C; - if (gUnknown_0203AB88->var88 >= 360) - gUnknown_0203AB88->var88 -= 360.0f; - else if (gUnknown_0203AB88->var88 < 0.0f) - gUnknown_0203AB88->var88 += 360.0f; + if (sRoulette->var88 >= 360) + sRoulette->var88 -= 360.0f; + else if (sRoulette->var88 < 0.0f) + sRoulette->var88 += 360.0f; - sprite->data[3] = gUnknown_0203AB88->var88; - gUnknown_0203AB88->var98 += gUnknown_0203AB88->var9C; - gUnknown_0203AB88->var94 += gUnknown_0203AB88->var98; - sprite->data[4] = gUnknown_0203AB88->var94; + sprite->data[3] = sRoulette->var88; + sRoulette->var98 += sRoulette->var9C; + sRoulette->var94 += sRoulette->var98; + sprite->data[4] = sRoulette->var94; sin = Sin2(sprite->data[3]); cos = Cos2(sprite->data[3]); sprite->pos2.x = sin * sprite->data[4] >> 12; @@ -3667,7 +3874,7 @@ static void sub_8143B84(struct Sprite *sprite) static void sub_8143C90(struct Sprite *sprite) { s16 sin, cos; - sprite->data[3] = gUnknown_0203AB88->var24 + sprite->data[6]; + sprite->data[3] = sRoulette->var24 + sprite->data[6]; if (sprite->data[3] >= 360) sprite->data[3] -= 360; sin = Sin2(sprite->data[3]); @@ -3690,10 +3897,10 @@ static void sub_8143CFC(struct Sprite *sprite) { if (!sprite->data[0]) { - if (gUnknown_0203AB88->var94 <= gUnknown_0203AB88->varA0 - 2.0f) + if (sRoulette->var94 <= sRoulette->varA0 - 2.0f) { - gUnknown_0203AB88->var7D = 0xFF; - gUnknown_0203AB88->var03_7 = 0; + sRoulette->var7D = 0xFF; + sRoulette->var03_7 = FALSE; StartSpriteAnim(sprite, sprite->animCmdIndex + 0x3); sub_8143B14(sprite); sprite->data[4] = 30; @@ -3701,16 +3908,16 @@ static void sub_8143CFC(struct Sprite *sprite) sprite->data[6] = (sprite->data[6] / 30) * 30 + 15; sprite->callback = sub_8143C90; m4aSongNumStartOrChange(SE_HASHI); - gUnknown_0203AB88->var9C = gUnknown_0203AB88->var98 = 0.0f; - gUnknown_0203AB88->var8C = -1.0f; + sRoulette->var9C = sRoulette->var98 = 0.0f; + sRoulette->var8C = -1.0f; } } else { - if (gUnknown_0203AB88->var94 >= gUnknown_0203AB88->varA0 - 2.0f) + if (sRoulette->var94 >= sRoulette->varA0 - 2.0f) { - gUnknown_0203AB88->var7D = 0xFF; - gUnknown_0203AB88->var03_7 = 0; + sRoulette->var7D = 0xFF; + sRoulette->var03_7 = FALSE; StartSpriteAnim(sprite, sprite->animCmdIndex + 3); sub_8143B14(sprite); sprite->data[4] = 30; @@ -3718,14 +3925,14 @@ static void sub_8143CFC(struct Sprite *sprite) sprite->data[6] = (sprite->data[6] / 30) * 30 + 15; sprite->callback = sub_8143C90; m4aSongNumStartOrChange(SE_HASHI); - gUnknown_0203AB88->var9C = gUnknown_0203AB88->var98 = 0.0f; - gUnknown_0203AB88->var8C = -1.0f; + sRoulette->var9C = sRoulette->var98 = 0.0f; + sRoulette->var8C = -1.0f; } } } } -static void sub_8143E14(struct Sprite *sprite) +static void SpriteCB_Shroomish(struct Sprite *sprite) { float f0, f1, f2; sub_8143B84(sprite); @@ -3736,8 +3943,8 @@ static void sub_8143E14(struct Sprite *sprite) if (sprite->data[0] != 1) { f0 = sprite->data[7]; - f1 = (f0 * gUnknown_085B6348[gUnknown_0203AB88->var04_0].var01 + (gUnknown_085B6348[gUnknown_0203AB88->var04_0].var02 - 1)); - f2 = (f0 / gUnknown_085B6348[gUnknown_0203AB88->var04_0].var0C); + f1 = (f0 * gUnknown_085B6348[sRoulette->tableId].var01 + (gUnknown_085B6348[sRoulette->tableId].var02 - 1)); + f2 = (f0 / gUnknown_085B6348[sRoulette->tableId].var0C); } else { @@ -3748,8 +3955,8 @@ static void sub_8143E14(struct Sprite *sprite) if (sprite->data[0] != 0) { f0 = sprite->data[7]; - f1 = (f0 * gUnknown_085B6348[gUnknown_0203AB88->var04_0].var01 + (gUnknown_085B6348[gUnknown_0203AB88->var04_0].var02 - 1)); - f2 = -(f0 / gUnknown_085B6348[gUnknown_0203AB88->var04_0].var0C); + f1 = (f0 * gUnknown_085B6348[sRoulette->tableId].var01 + (gUnknown_085B6348[sRoulette->tableId].var02 - 1)); + f2 = -(f0 / gUnknown_085B6348[sRoulette->tableId].var0C); } else { @@ -3759,10 +3966,10 @@ static void sub_8143E14(struct Sprite *sprite) default: return; } - gUnknown_0203AB88->varA0 = gUnknown_0203AB88->var94; - gUnknown_0203AB88->var98 = f2; - gUnknown_0203AB88->var9C = -((f2 * 2.0f) / f1 + (2.0f / (f1 * f1))); - gUnknown_0203AB88->var8C = 0.0f; + sRoulette->varA0 = sRoulette->var94; + sRoulette->var98 = f2; + sRoulette->var9C = -((f2 * 2.0f) / f1 + (2.0f / (f1 * f1))); + sRoulette->var8C = 0.0f; sprite->animPaused = FALSE; sprite->animNum = 0; sprite->animBeginning = TRUE; @@ -3777,8 +3984,8 @@ static void sub_8143FA4(struct Sprite *sprite) sprite->data[2]++; if (sprite->data[2] > 29 && sprite->pos2.y >= 0) { - gUnknown_0203AB88->var7D = 0xFF; - gUnknown_0203AB88->var03_7 = FALSE; + sRoulette->var7D = 0xFF; + sRoulette->var03_7 = FALSE; StartSpriteAnim(sprite, sprite->animCmdIndex + 3); sub_8143B14(sprite); sprite->data[4] = 30; @@ -3786,7 +3993,7 @@ static void sub_8143FA4(struct Sprite *sprite) sprite->data[6] = (sprite->data[6] / 30) * 30 + 15; sprite->callback = sub_8143C90; m4aSongNumStartOrChange(SE_HASHI); - gUnknown_0203AB88->var03_6 = TRUE; + sRoulette->var03_6 = TRUE; } } @@ -3797,7 +4004,7 @@ static void sub_8144050(struct Sprite *sprite) sprite->pos2.y--; if (sprite->data[2] == 45) { - if (gSprites[gUnknown_0203AB88->var3C[55]].animCmdIndex == 1) + if (gSprites[sRoulette->spriteIds[SPR_CLEAR_MON]].animCmdIndex == 1) sprite->pos2.y++; } } @@ -3805,9 +4012,9 @@ static void sub_8144050(struct Sprite *sprite) { if (sprite->data[2] < sprite->data[7]) { - if (gSprites[gUnknown_0203AB88->var3C[55]].animDelayCounter == 0) + if (gSprites[sRoulette->spriteIds[SPR_CLEAR_MON]].animDelayCounter == 0) { - if (gSprites[gUnknown_0203AB88->var3C[55]].animCmdIndex == 1) + if (gSprites[sRoulette->spriteIds[SPR_CLEAR_MON]].animCmdIndex == 1) sprite->pos2.y++; else sprite->pos2.y--; @@ -3848,18 +4055,18 @@ static void sub_8144128(struct Sprite *sprite) } } -static void sub_8144168(struct Sprite *sprite) +static void CreateClearSpeciesSprite(struct Sprite *sprite) { sub_8143B84(sprite); - switch (gUnknown_0203AB88->var03_0) + switch (sRoulette->useTaillow) { default: - case 0: - sub_81446DC(sprite); - sprite->callback = sub_8143E14; + case FALSE: + CreateShroomishSprite(sprite); + sprite->callback = SpriteCB_Shroomish; break; - case 1: - sub_81448B8(sprite); + case TRUE: + CreateTaillowSprite(sprite); sprite->callback = sub_8144128; break; } @@ -3869,13 +4076,13 @@ static void prev_quest_read_x24_hm_usage(struct Sprite *sprite) { sub_8143B84(sprite); if (sprite->data[2]-- == 16) - gUnknown_0203AB88->var98 *= -1.0f; + sRoulette->var98 *= -1.0f; if (sprite->data[2] == 0) { if (!sprite->data[0]) { - gUnknown_0203AB88->var7D = 0xFF; - gUnknown_0203AB88->var03_7 = 0; + sRoulette->var7D = 0xFF; + sRoulette->var03_7 = FALSE; StartSpriteAnim(sprite, sprite->animCmdIndex + 3); sub_8143B14(sprite); sprite->data[4] = 30; @@ -3898,10 +4105,10 @@ static void sub_8144264(struct Sprite *sprite) sub_8143B84(sprite); sprite->data[2] = 0; sub_8143B14(sprite); - if (!(gUnknown_085B62E4[gUnknown_0203AB88->var7E].var04 & gUnknown_0203AB88->var08)) + if (!(sRouletteSlots[sRoulette->var7E].flag & sRoulette->hitFlags)) { - gUnknown_0203AB88->var7D = 0xFF; - gUnknown_0203AB88->var03_7 = 0; + sRoulette->var7D = 0xFF; + sRoulette->var03_7 = FALSE; StartSpriteAnim(sprite, sprite->animCmdIndex + 3); sub_8143B14(sprite); sprite->data[4] = 30; @@ -3912,48 +4119,44 @@ static void sub_8144264(struct Sprite *sprite) } else { - u8 t; + u8 slotId; u32 z; m4aSongNumStart(SE_KON); z = Random() & 1; if (z) { - gUnknown_0203AB88->var8C = 0.0f; - gUnknown_0203AB88->var7F = t = (gUnknown_0203AB88->var7E + 1) % 12; + sRoulette->var8C = 0.0f; + sRoulette->var7F = slotId = (sRoulette->var7E + 1) % NUM_ROULETTE_SLOTS; } else { float temp; - gUnknown_0203AB88->var8C = (temp = gUnknown_085B6348[gUnknown_0203AB88->var04_0].var1C) * 2.0f; - t = (gUnknown_0203AB88->var7E + 11) % 12; - gUnknown_0203AB88->var7F = gUnknown_0203AB88->var7E; + sRoulette->var8C = (temp = gUnknown_085B6348[sRoulette->tableId].var1C) * 2.0f; + slotId = (sRoulette->var7E + NUM_ROULETTE_SLOTS - 1) % NUM_ROULETTE_SLOTS; + sRoulette->var7F = sRoulette->var7E; } - if (gUnknown_085B62E4[t].var04 & gUnknown_0203AB88->var08) + if (sRouletteSlots[slotId].flag & sRoulette->hitFlags) { sprite->data[0] = 1; - sprite->data[2] = gUnknown_085B6348[gUnknown_0203AB88->var04_0].var02; + sprite->data[2] = gUnknown_085B6348[sRoulette->tableId].var02; } else { - sprite->data[0] = gUnknown_085B62E4[t].var04 & gUnknown_0203AB88->var08; - if (gUnknown_0203AB88->var04_0) + sprite->data[0] = sRouletteSlots[slotId].flag & sRoulette->hitFlags; + if (sRoulette->tableId) { - sprite->data[2] = gUnknown_085B6348[gUnknown_0203AB88->var04_0].var01; + sprite->data[2] = gUnknown_085B6348[sRoulette->tableId].var01; } else { - sprite->data[2] = gUnknown_085B6348[gUnknown_0203AB88->var04_0].var02; + sprite->data[2] = gUnknown_085B6348[sRoulette->tableId].var02; if (z) - { - gUnknown_0203AB88->var8C = 0.5f; - } + sRoulette->var8C = 0.5f; else - { - gUnknown_0203AB88->var8C = -1.5f; - } + sRoulette->var8C = -1.5f; } } - gUnknown_0203AB88->var98 = 0.085f; + sRoulette->var98 = 0.085f; sprite->callback = prev_quest_read_x24_hm_usage; sprite->data[1] = 5; } @@ -3962,27 +4165,27 @@ static void sub_8144264(struct Sprite *sprite) static void sub_8144410(struct Sprite *sprite) { sub_8143B84(sprite); - if (gUnknown_0203AB88->var8C > 0.5f) + if (sRoulette->var8C > 0.5f) return; sub_8143B14(sprite); if (!sub_8143B48(sprite)) { - gUnknown_0203AB88->var90 = 0.0f; - gUnknown_0203AB88->var8C -= (float)(gUnknown_085B6348[gUnknown_0203AB88->var04_0].var03) - / (gUnknown_085B6348[gUnknown_0203AB88->var04_0].var04 + 1); + sRoulette->var90 = 0.0f; + sRoulette->var8C -= (float)(gUnknown_085B6348[sRoulette->tableId].var03) + / (gUnknown_085B6348[sRoulette->tableId].var04 + 1); sprite->data[1] = 4; sprite->callback = sub_8144264; } else { - if (gUnknown_0203AB88->var90 != 0.0f) + if (sRoulette->var90 != 0.0f) { - if (gUnknown_0203AB88->var8C < 0.0f) + if (sRoulette->var8C < 0.0f) { - gUnknown_0203AB88->var90 = 0.0f; - gUnknown_0203AB88->var8C = 0.0f; - gUnknown_0203AB88->var98 /= 1.2; + sRoulette->var90 = 0.0f; + sRoulette->var8C = 0.0f; + sRoulette->var98 /= 1.2; } } } @@ -3991,11 +4194,11 @@ static void sub_8144410(struct Sprite *sprite) static void sub_8144514(struct Sprite *sprite) { sub_8143B84(sprite); - if (gUnknown_0203AB88->var94 > 40.f) + if (sRoulette->var94 > 40.f) return; - gUnknown_0203AB88->var98 = -(4.0f / (float)(gUnknown_0203AB88->var86)); - gUnknown_0203AB88->var90 = -(gUnknown_0203AB88->var8C / (float)(gUnknown_0203AB88->var86)); + sRoulette->var98 = -(4.0f / (float)(sRoulette->var86)); + sRoulette->var90 = -(sRoulette->var8C / (float)(sRoulette->var86)); sprite->animNum = 2; sprite->animBeginning = TRUE; sprite->animEnded = FALSE; @@ -4006,12 +4209,12 @@ static void sub_8144514(struct Sprite *sprite) static void sub_81445D8(struct Sprite *sprite) { sub_8143B84(sprite); - if (gUnknown_0203AB88->var94 > 60.0f) + if (sRoulette->var94 > 60.0f) return; m4aSongNumStartOrChange(SE_TAMAKORO_E); - gUnknown_0203AB88->var98 = -(20.0f / (float)(gUnknown_0203AB88->var84)); - gUnknown_0203AB88->var90 = ((1.0f - gUnknown_0203AB88->var8C) / (float)(gUnknown_0203AB88->var84)); + sRoulette->var98 = -(20.0f / (float)(sRoulette->var84)); + sRoulette->var90 = ((1.0f - sRoulette->var8C) / (float)(sRoulette->var84)); sprite->animNum = 1; sprite->animBeginning = TRUE; sprite->animEnded = FALSE; @@ -4028,7 +4231,7 @@ static void sub_81446AC(struct Sprite *sprite) sprite->callback = sub_81445D8; } -static void sub_81446DC(struct Sprite *sprite) +static void CreateShroomishSprite(struct Sprite *sprite) { u16 t; u8 i; @@ -4039,29 +4242,29 @@ static void sub_81446DC(struct Sprite *sprite) struct Roulette *p; t = sprite->data[7] - 2; - p = gUnknown_0203AB88; // why??? - gUnknown_0203AB88->var3C[55] = CreateSprite(&gSpriteTemplate_85B79F8, 36, -12, 50); - gUnknown_0203AB88->var3C[56] = CreateSprite(&gSpriteTemplate_85B7ABC[0], s[sprite->data[0]][0], s[sprite->data[0]][1], 59); - gUnknown_0203AB88->var3C[57] = CreateSprite(&gSpriteTemplate_85B7ABC[1], 36, 140, 51); - gSprites[gUnknown_0203AB88->var3C[57]].oam.objMode = ST_OAM_OBJ_BLEND; + p = sRoulette; // why??? + sRoulette->spriteIds[SPR_CLEAR_MON] = CreateSprite(&sSpriteTemplate_Shroomish, 36, -12, 50); + sRoulette->spriteIds[SPR_CLEAR_MON_SHADOW_1] = CreateSprite(&sSpriteTemplate_ShroomishShadow[0], s[sprite->data[0]][0], s[sprite->data[0]][1], 59); + sRoulette->spriteIds[SPR_CLEAR_MON_SHADOW_2] = CreateSprite(&sSpriteTemplate_ShroomishShadow[1], 36, 140, 51); + gSprites[sRoulette->spriteIds[SPR_CLEAR_MON_SHADOW_2]].oam.objMode = ST_OAM_OBJ_BLEND; for (i = 0; i < 3; i++) { - gSprites[gUnknown_0203AB88->var3C[i + 55]].coordOffsetEnabled = FALSE; - gSprites[gUnknown_0203AB88->var3C[i + 55]].invisible = TRUE; - gSprites[gUnknown_0203AB88->var3C[i + 55]].animPaused = TRUE; - gSprites[gUnknown_0203AB88->var3C[i + 55]].affineAnimPaused = TRUE; - gSprites[gUnknown_0203AB88->var3C[i + 55]].data[4] = gUnknown_0203AB88->var3C[55]; - gSprites[gUnknown_0203AB88->var3C[i + 55]].data[5] = gUnknown_0203AB88->var3C[56]; - gSprites[gUnknown_0203AB88->var3C[i + 55]].data[6] = gUnknown_0203AB88->var3C[57]; - gSprites[gUnknown_0203AB88->var3C[i + 55]].data[2] = t; - gSprites[gUnknown_0203AB88->var3C[i + 55]].data[3] = (sprite->data[7] * gUnknown_085B6348[gUnknown_0203AB88->var04_0].var01) + - (gUnknown_085B6348[gUnknown_0203AB88->var04_0].var02 + 0xFFFF); + gSprites[sRoulette->spriteIds[i + SPR_CLEAR_MON]].coordOffsetEnabled = FALSE; + gSprites[sRoulette->spriteIds[i + SPR_CLEAR_MON]].invisible = TRUE; + gSprites[sRoulette->spriteIds[i + SPR_CLEAR_MON]].animPaused = TRUE; + gSprites[sRoulette->spriteIds[i + SPR_CLEAR_MON]].affineAnimPaused = TRUE; + gSprites[sRoulette->spriteIds[i + SPR_CLEAR_MON]].data[4] = sRoulette->spriteIds[SPR_CLEAR_MON]; + gSprites[sRoulette->spriteIds[i + SPR_CLEAR_MON]].data[5] = sRoulette->spriteIds[SPR_CLEAR_MON_SHADOW_1]; + gSprites[sRoulette->spriteIds[i + SPR_CLEAR_MON]].data[6] = sRoulette->spriteIds[SPR_CLEAR_MON_SHADOW_2]; + gSprites[sRoulette->spriteIds[i + SPR_CLEAR_MON]].data[2] = t; + gSprites[sRoulette->spriteIds[i + SPR_CLEAR_MON]].data[3] = (sprite->data[7] * gUnknown_085B6348[sRoulette->tableId].var01) + + (gUnknown_085B6348[sRoulette->tableId].var02 + 0xFFFF); } - gSprites[gUnknown_0203AB88->var3C[56]].coordOffsetEnabled = TRUE; - gUnknown_0203AB88->var38 = sprite; + gSprites[sRoulette->spriteIds[SPR_CLEAR_MON_SHADOW_1]].coordOffsetEnabled = TRUE; + sRoulette->var38 = sprite; } -static void sub_81448B8(struct Sprite *sprite) +static void CreateTaillowSprite(struct Sprite *sprite) { u8 i = 0; s16 t; @@ -4071,21 +4274,21 @@ static void sub_81448B8(struct Sprite *sprite) }; t = sprite->data[7] - 2; - gUnknown_0203AB88->var3C[55] = CreateSprite(&gSpriteTemplate_85B7A10, s[sprite->data[0]][0], s[sprite->data[0]][1], 50); - StartSpriteAnim(&gSprites[gUnknown_0203AB88->var3C[55]], sprite->data[0]); - gUnknown_0203AB88->var3C[56] = CreateSprite(&gUnknown_085B7AEC, s[sprite->data[0]][0], s[sprite->data[0]][1], 51); - gSprites[gUnknown_0203AB88->var3C[56]].affineAnimPaused = TRUE; - gSprites[gUnknown_0203AB88->var3C[56]].animPaused = TRUE; - sprite->data[7] = (t * gUnknown_085B6348[gUnknown_0203AB88->var04_0].var01) + (gUnknown_085B6348[gUnknown_0203AB88->var04_0].var10 + 45); + sRoulette->spriteIds[SPR_CLEAR_MON] = CreateSprite(&sSpriteTemplate_Taillow, s[sprite->data[0]][0], s[sprite->data[0]][1], 50); + StartSpriteAnim(&gSprites[sRoulette->spriteIds[SPR_CLEAR_MON]], sprite->data[0]); + sRoulette->spriteIds[SPR_CLEAR_MON_SHADOW_1] = CreateSprite(&sSpriteTemplate_TaillowShadow, s[sprite->data[0]][0], s[sprite->data[0]][1], 51); + gSprites[sRoulette->spriteIds[SPR_CLEAR_MON_SHADOW_1]].affineAnimPaused = TRUE; + gSprites[sRoulette->spriteIds[SPR_CLEAR_MON_SHADOW_1]].animPaused = TRUE; + sprite->data[7] = (t * gUnknown_085B6348[sRoulette->tableId].var01) + (gUnknown_085B6348[sRoulette->tableId].var10 + 45); for (; i < 2; i++) { - gSprites[gUnknown_0203AB88->var3C[55 + i]].data[4] = gUnknown_0203AB88->var3C[55]; - gSprites[gUnknown_0203AB88->var3C[55 + i]].data[5] = gUnknown_0203AB88->var3C[56]; - gSprites[gUnknown_0203AB88->var3C[55 + i]].data[6] = gUnknown_0203AB88->var3C[56]; - gSprites[gUnknown_0203AB88->var3C[55 + i]].data[2] = t; - gSprites[gUnknown_0203AB88->var3C[55 + i]].data[3] = sprite->data[7] - 45; + gSprites[sRoulette->spriteIds[SPR_CLEAR_MON + i]].data[4] = sRoulette->spriteIds[SPR_CLEAR_MON]; + gSprites[sRoulette->spriteIds[SPR_CLEAR_MON + i]].data[5] = sRoulette->spriteIds[SPR_CLEAR_MON_SHADOW_1]; + gSprites[sRoulette->spriteIds[SPR_CLEAR_MON + i]].data[6] = sRoulette->spriteIds[SPR_CLEAR_MON_SHADOW_1]; + gSprites[sRoulette->spriteIds[SPR_CLEAR_MON + i]].data[2] = t; + gSprites[sRoulette->spriteIds[SPR_CLEAR_MON + i]].data[3] = sprite->data[7] - 45; } - gUnknown_0203AB88->var38 = sprite; + sRoulette->var38 = sprite; } static void sub_8144A24(struct Sprite *sprite) @@ -4100,33 +4303,33 @@ static void sub_8144A24(struct Sprite *sprite) u8 s[10] = {}; u16 rand = Random(); - gUnknown_0203AB88->var7D = 1; - gUnknown_0203AB88->var03_5 = TRUE; - gUnknown_0203AB88->var03_6 = FALSE; - gUnknown_0203AB88->var7E = 0xFF; - gUnknown_0203AB88->var88 = sprite->data[3]; - gUnknown_0203AB88->var98 = 0.0f; - gUnknown_0203AB88->var8C = gUnknown_085B6348[gUnknown_0203AB88->var04_0].var1C; + sRoulette->var7D = 1; + sRoulette->var03_5 = TRUE; + sRoulette->var03_6 = FALSE; + sRoulette->var7E = 0xFF; + sRoulette->var88 = sprite->data[3]; + sRoulette->var98 = 0.0f; + sRoulette->var8C = gUnknown_085B6348[sRoulette->tableId].var1C; - o = (gUnknown_0203AB88->var04_0 * 30 + 33) + (0x1 - gUnknown_0203AB88->var03_0) * 15; + o = (sRoulette->tableId * 30 + 33) + (1 - sRoulette->useTaillow) * 15; for (i = 0; i < 4; i++) { if (o < sprite->data[3] && sprite->data[3] <= o + 90) { sprite->data[0] = i / 2; - gUnknown_0203AB88->var03_0 = i % 2; + sRoulette->useTaillow = i % 2; break; } if (i == 3) { sprite->data[0] = 1; - gUnknown_0203AB88->var03_0 = 1; + sRoulette->useTaillow = TRUE; break; } o += 90; } - if (gUnknown_0203AB88->var03_0) + if (sRoulette->useTaillow) { if (sprite->data[0]) PlayCry1(SPECIES_TAILLOW, -63); @@ -4139,25 +4342,25 @@ static void sub_8144A24(struct Sprite *sprite) } val = 2; - z = (gUnknown_0203AB88->var7F + 2) % 12; + z = (sRoulette->var7F + 2) % 12; - if (gUnknown_0203AB88->var03_0 == 1 && gUnknown_0203AB88->var04_0 == 1) + if (sRoulette->useTaillow == TRUE && sRoulette->tableId == 1) j += 6; else j += val; for (i = val; i < j; i++) { - if (!(gUnknown_0203AB88->var08 & gUnknown_085B62E4[z].var04)) + if (!(sRoulette->hitFlags & sRouletteSlots[z].flag)) { s[h++] = i; - if (p == 0 && (gUnknown_085B62E4[z].var04 & gUnknown_085B6154[gUnknown_0203AB88->var1B[gUnknown_0203AB88->var1A_0]].var0C)) + if (p == 0 && (sRouletteSlots[z].flag & sGridSelections[sRoulette->betSelection[sRoulette->curBallNum]].inSelectionFlags)) p = i; } - z = (z + 1) % 0xC; + z = (z + 1) % 12; } - if ((gUnknown_0203AB88->var03_0 + 1) & gUnknown_0203AB88->var02) + if ((sRoulette->useTaillow + 1) & sRoulette->partySpeciesFlags) { if (p && (rand & 0xFF) < 0xc0) sprite->data[7] = p; @@ -4169,7 +4372,7 @@ static void sub_8144A24(struct Sprite *sprite) sprite->data[7] = s[rand % h]; } - sprite->callback = sub_8144168; + sprite->callback = CreateClearSpeciesSprite; } static const u16 gUnknown_085B7B1A[] = { @@ -4192,11 +4395,11 @@ static void sub_8144C70(struct Sprite *sprite) sprite->pos1.x -= 2; if (sprite->pos1.x < -16) { - if (!gUnknown_0203AB88->var03_6) - gUnknown_0203AB88->var03_6 = TRUE; + if (!sRoulette->var03_6) + sRoulette->var03_6 = TRUE; DestroySprite(sprite); - gUnknown_0203AB88->var01 = 0; - gUnknown_0203AB88->var34 = gUnknown_085B7B1A[0]; + sRoulette->var01 = 0; + sRoulette->var34 = gUnknown_085B7B1A[0]; } } } @@ -4223,7 +4426,7 @@ static void sub_8144CD0(struct Sprite *sprite) else { gSpriteCoordOffsetY = 0; - gSprites[gUnknown_0203AB88->var3C[55]].animPaused = FALSE; + gSprites[sRoulette->spriteIds[SPR_CLEAR_MON]].animPaused = FALSE; DestroySprite(sprite); } } @@ -4234,9 +4437,9 @@ static void sub_8144D94(struct Sprite *sprite) sprite->data[1]++; t = sprite->data[1]; sprite->pos2.y = t * 0.039f * t; - gUnknown_0203AB88->var34 = gUnknown_085B7B1A[(gUnknown_0203AB88->var01 - 1) / 2]; - if (gUnknown_0203AB88->var01 < 19) - gUnknown_0203AB88->var01++; + sRoulette->var34 = gUnknown_085B7B1A[(sRoulette->var01 - 1) / 2]; + if (sRoulette->var01 < 19) + sRoulette->var01++; if (sprite->data[1] > 60) { sprite->data[1] = 0; @@ -4253,37 +4456,37 @@ static void sub_8144E60(struct Sprite *sprite) { if (sprite->data[7] == 0) { - if (gUnknown_0203AB88->var38->data[0] == 0) + if (sRoulette->var38->data[0] == 0) { - if (gUnknown_0203AB88->var38->data[3] != gUnknown_085B6348[gUnknown_0203AB88->var04_0].var08) + if (sRoulette->var38->data[3] != gUnknown_085B6348[sRoulette->tableId].var08) return; } else { - if (gUnknown_0203AB88->var38->data[3] != gUnknown_085B6348[gUnknown_0203AB88->var04_0].var08 + 180) + if (sRoulette->var38->data[3] != gUnknown_085B6348[sRoulette->tableId].var08 + 180) return; } sprite->invisible = FALSE; sprite->data[7]++; m4aSongNumStart(SE_RU_HYUU); - gUnknown_0203AB88->var01 = 1; - gUnknown_0203AB88->var34 = gUnknown_085B7B1A[0]; + sRoulette->var01 = 1; + sRoulette->var34 = gUnknown_085B7B1A[0]; } else { - gUnknown_0203AB88->var34 = gUnknown_085B7B1A[(gUnknown_0203AB88->var01 - 1) / 2]; - if (gUnknown_0203AB88->var01 < 19) - gUnknown_0203AB88->var01++; + sRoulette->var34 = gUnknown_085B7B1A[(sRoulette->var01 - 1) / 2]; + if (sRoulette->var01 < 19) + sRoulette->var01++; - if (gUnknown_0203AB88->var38->data[0] == 0) + if (sRoulette->var38->data[0] == 0) { - if (gUnknown_0203AB88->var38->data[3] != gUnknown_085B6348[gUnknown_0203AB88->var04_0].var0A) + if (sRoulette->var38->data[3] != gUnknown_085B6348[sRoulette->tableId].var0A) return; } else { - if (gUnknown_0203AB88->var38->data[3] != gUnknown_085B6348[gUnknown_0203AB88->var04_0].var0A + 180) + if (sRoulette->var38->data[3] != gUnknown_085B6348[sRoulette->tableId].var0A + 180) return; } @@ -4312,8 +4515,8 @@ static void sub_8144FB0(struct Sprite *sprite) sprite->animPaused = TRUE; m4aSongNumStop(SE_BASABASA); DestroySprite(sprite); - FreeOamMatrix(gSprites[gUnknown_0203AB88->var3C[56]].oam.matrixNum); - DestroySprite(&gSprites[gUnknown_0203AB88->var3C[56]]); + FreeOamMatrix(gSprites[sRoulette->spriteIds[SPR_CLEAR_MON_SHADOW_1]].oam.matrixNum); + DestroySprite(&gSprites[sRoulette->spriteIds[SPR_CLEAR_MON_SHADOW_1]]); } } @@ -4342,7 +4545,7 @@ static void sub_8145030(struct Sprite *sprite) else { m4aSongNumStart(SE_RU_HYUU); - StartSpriteAnim(sprite, gUnknown_0203AB88->var38->data[0] + 4); + StartSpriteAnim(sprite, sRoulette->var38->data[0] + 4); sprite->callback = sub_8144FB0; gSprites[sprite->data[6]].affineAnimPaused = FALSE; } @@ -4365,7 +4568,7 @@ static void sub_81450D8(struct Sprite *sprite) if (sprite->data[1]-- > 7) { - sprite->pos1.x += t[gUnknown_0203AB88->var38->data[0]] * 2; + sprite->pos1.x += t[sRoulette->var38->data[0]] * 2; if (IsSEPlaying()) { s8 pan = -((116 - sprite->pos1.x) / 2); @@ -4377,17 +4580,17 @@ static void sub_81450D8(struct Sprite *sprite) { if (sprite->data[1] >= 0) { - sprite->pos1.x += t[gUnknown_0203AB88->var38->data[0]] * z[7 - sprite->data[1]][0]; + sprite->pos1.x += t[sRoulette->var38->data[0]] * z[7 - sprite->data[1]][0]; sprite->pos1.y += z[7 - sprite->data[1]][1]; } else { m4aSongNumStartOrChange(SE_BASABASA); - if (gUnknown_0203AB88->var38->data[0] == 0) + if (sRoulette->var38->data[0] == 0) PlayCry1(SPECIES_TAILLOW, 63); else PlayCry1(SPECIES_TAILLOW, -63); - StartSpriteAnim(sprite, gUnknown_0203AB88->var38->data[0] + 2); + StartSpriteAnim(sprite, sRoulette->var38->data[0] + 2); sprite->data[1] = 45; sprite->callback = sub_8145030; } @@ -4400,7 +4603,7 @@ static void sub_8145218(struct Sprite *sprite) if (sprite->data[1]-- >= 0) { - sprite->pos1.x += t[gUnknown_0203AB88->var38->data[0]] * 2; + sprite->pos1.x += t[sRoulette->var38->data[0]] * 2; gSprites[sprite->data[6]].invisible ^= 1; } else @@ -4409,11 +4612,11 @@ static void sub_8145218(struct Sprite *sprite) } } -static void sub_8145294(struct Sprite *sprite) +static void SpriteCB_Taillow(struct Sprite *sprite) { - if (gUnknown_0203AB88->var38->data[0] == 0) + if (sRoulette->var38->data[0] == 0) { - if (gUnknown_0203AB88->var38->data[3] == gUnknown_085B6348[gUnknown_0203AB88->var04_0].var12 + 90) + if (sRoulette->var38->data[3] == gUnknown_085B6348[sRoulette->tableId].var12 + 90) { gSprites[sprite->data[6]].data[1] = 52; gSprites[sprite->data[4]].data[1] = 52; @@ -4425,7 +4628,7 @@ static void sub_8145294(struct Sprite *sprite) } else { - if (gUnknown_0203AB88->var38->data[3] == gUnknown_085B6348[gUnknown_0203AB88->var04_0].var14 + 270) + if (sRoulette->var38->data[3] == gUnknown_085B6348[sRoulette->tableId].var14 + 270) { gSprites[sprite->data[6]].data[1] = 46; gSprites[sprite->data[4]].data[1] = 46; diff --git a/src/roulette_util.c b/src/roulette_util.c index f1f04a73a5..c51330f21a 100755 --- a/src/roulette_util.c +++ b/src/roulette_util.c @@ -429,7 +429,7 @@ void UpdatePulseBlend(struct PulseBlend *pulseBlend) } } -void sub_8152008(u16 *dest, u16 src, u8 left, u8 top, u8 width, u8 height) +void ClearGridSelectionRect(u16 *dest, u16 src, u8 left, u8 top, u8 width, u8 height) { u16 *_dest; u8 i; @@ -446,7 +446,7 @@ void sub_8152008(u16 *dest, u16 src, u8 left, u8 top, u8 width, u8 height) } } -void sub_8152058(u16 *dest, u16 *src, u8 left, u8 top, u8 width, u8 height) +void SetGridSelectionRect(u16 *dest, u16 *src, u8 left, u8 top, u8 width, u8 height) { u16 *_dest; u16 *_src = src; From 412f341588bbb1077cb670535b710c9e6d9f25c7 Mon Sep 17 00:00:00 2001 From: PokeCodec <67983839+PokeCodec@users.noreply.github.com> Date: Fri, 31 Jul 2020 20:20:00 -0400 Subject: [PATCH 038/101] Match function signatures To make them consistent with the declarations --- src/field_player_avatar.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/field_player_avatar.c b/src/field_player_avatar.c index 88385896c7..6ad92c2fb2 100644 --- a/src/field_player_avatar.c +++ b/src/field_player_avatar.c @@ -101,9 +101,9 @@ static void sub_808C280(struct ObjectEvent *); static void StartStrengthAnim(u8, u8); 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 bool8 PushBoulder_Start(struct Task *task, struct ObjectEvent *playerObject, struct ObjectEvent *strengthObject); +static bool8 PushBoulder_Move(struct Task *task, struct ObjectEvent *playerObject, struct ObjectEvent *strengthObject); +static bool8 PushBoulder_End(struct Task *task, struct ObjectEvent *playerObject, struct ObjectEvent *strengthObject); static void DoPlayerMatJump(void); static void DoPlayerAvatarSecretBaseMatJump(u8 taskId); From 7890a16d275a84910733962bf6a5c10be67a4893 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 2 Aug 2020 15:04:55 +0200 Subject: [PATCH 039/101] Fix UB in event_object_movement.c --- src/event_object_movement.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/event_object_movement.c b/src/event_object_movement.c index 6c49b91151..ab2f4749f2 100644 --- a/src/event_object_movement.c +++ b/src/event_object_movement.c @@ -2340,7 +2340,13 @@ const u8 *GetObjectEventScriptPointerByObjectEventId(u8 objectEventId) static u16 GetObjectEventFlagIdByLocalIdAndMap(u8 localId, u8 mapNum, u8 mapGroup) { - return GetObjectEventTemplateByLocalIdAndMap(localId, mapNum, mapGroup)->flagId; + struct ObjectEventTemplate *obj = GetObjectEventTemplateByLocalIdAndMap(localId, mapNum, mapGroup); +#if UBFIX + // BUG: The function may return NULL, and attempting to read from NULL may freeze the game using modern compilers. + if (obj == NULL) + return 0; +#endif // UBFIX + return obj->flagId; } static u16 GetObjectEventFlagIdByObjectEventId(u8 objectEventId) From d072897354b1b2dd8619329dd965a87c2eaf52af Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 2 Aug 2020 15:37:04 +0200 Subject: [PATCH 040/101] Update event_object_movement.c --- src/event_object_movement.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/event_object_movement.c b/src/event_object_movement.c index ab2f4749f2..a076a2a222 100644 --- a/src/event_object_movement.c +++ b/src/event_object_movement.c @@ -2341,7 +2341,7 @@ const u8 *GetObjectEventScriptPointerByObjectEventId(u8 objectEventId) static u16 GetObjectEventFlagIdByLocalIdAndMap(u8 localId, u8 mapNum, u8 mapGroup) { struct ObjectEventTemplate *obj = GetObjectEventTemplateByLocalIdAndMap(localId, mapNum, mapGroup); -#if UBFIX +#ifdef UBFIX // BUG: The function may return NULL, and attempting to read from NULL may freeze the game using modern compilers. if (obj == NULL) return 0; From b40cee540e6e4268dcae990c6a08ebba50b3cec9 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Fri, 31 Jul 2020 14:55:42 -0400 Subject: [PATCH 041/101] Continue documenting roulette --- graphics/roulette/85B5BFC.pal | 259 ------- graphics/roulette/{85B5DFC.bin => grid.bin} | Bin .../roulette/{wheel_map.bin => wheel.bin} | Bin include/roulette_util.h | 4 +- include/strings.h | 13 + src/roulette.c | 701 +++++++++--------- src/roulette_util.c | 9 +- 7 files changed, 389 insertions(+), 597 deletions(-) delete mode 100644 graphics/roulette/85B5BFC.pal rename graphics/roulette/{85B5DFC.bin => grid.bin} (100%) rename graphics/roulette/{wheel_map.bin => wheel.bin} (100%) diff --git a/graphics/roulette/85B5BFC.pal b/graphics/roulette/85B5BFC.pal deleted file mode 100644 index ed68618ff0..0000000000 --- a/graphics/roulette/85B5BFC.pal +++ /dev/null @@ -1,259 +0,0 @@ -JASC-PAL -0100 -256 -82 156 49 -41 41 41 -98 98 115 -172 180 197 -255 255 255 -255 205 41 -255 172 0 -213 164 65 -205 164 82 -139 106 65 -131 222 189 -74 189 156 -115 189 148 -123 180 172 -74 115 115 -255 255 0 -74 106 156 -41 41 41 -98 98 115 -156 156 164 -255 255 255 -205 156 205 -164 106 164 -172 131 164 -156 123 156 -90 57 106 -255 255 255 -255 255 255 -255 255 255 -255 255 255 -255 255 255 -255 255 255 -74 106 156 -41 41 41 -123 123 131 -172 180 197 -255 255 255 -238 238 156 -189 180 106 -131 90 32 -255 131 90 -189 106 98 -230 222 255 -74 189 156 -255 255 255 -123 180 172 -255 255 255 -255 255 255 -74 106 156 -57 57 65 -98 98 115 -156 156 164 -255 255 255 -106 205 205 -246 98 90 -106 156 255 -255 255 255 -156 255 106 -246 230 74 -255 230 123 -255 255 255 -255 255 156 -156 255 148 -205 156 255 -74 106 156 -41 41 41 -98 98 115 -205 205 213 -255 255 255 -123 238 139 -255 172 139 -16 156 74 -197 164 255 -49 106 32 -115 197 131 -197 139 189 -255 82 57 -255 238 82 -205 180 8 -255 205 8 -74 106 156 -106 139 230 -82 115 205 -255 255 255 -255 255 255 -255 205 41 -255 172 0 -213 164 65 -205 164 82 -139 106 65 -131 222 189 -74 189 156 -115 189 148 -123 180 172 -74 115 115 -255 255 255 -74 106 156 -255 246 65 -255 255 164 -255 246 65 -255 255 255 -205 156 205 -164 106 164 -172 131 164 -156 123 156 -90 57 106 -255 255 255 -255 255 255 -255 255 255 -255 255 255 -255 255 255 -65 65 57 -74 106 156 -172 255 238 -222 255 255 -148 255 238 -255 255 255 -255 205 41 -255 172 0 -213 164 65 -205 164 82 -139 106 65 -131 222 189 -74 189 156 -115 189 148 -123 180 172 -74 115 115 -65 65 57 -74 106 156 -255 205 255 -255 222 255 -255 197 255 -255 255 255 -205 156 205 -164 106 164 -172 131 164 -156 123 156 -90 57 106 -255 255 255 -255 255 255 -255 255 255 -255 255 255 -255 255 255 -65 65 57 -74 106 156 -255 255 255 -255 255 255 -255 255 255 -255 255 255 -255 205 41 -255 172 0 -213 164 65 -205 164 82 -139 106 65 -131 222 189 -74 189 156 -115 189 148 -123 180 172 -74 115 115 -255 255 255 -74 106 156 -255 255 255 -255 255 255 -255 255 255 -255 255 255 -205 156 205 -164 106 164 -172 131 164 -156 123 156 -90 57 106 -255 255 255 -255 255 255 -255 255 255 -255 255 255 -255 255 255 -255 255 255 -74 106 156 -255 246 82 -164 255 222 -172 180 197 -255 255 255 -255 246 65 -246 205 24 -238 197 98 -205 172 90 -164 131 90 -156 246 222 -90 213 180 -131 222 172 -115 189 156 -98 148 148 -65 65 57 -74 106 156 -238 189 238 -156 148 148 -172 180 197 -255 255 255 -255 205 255 -222 156 230 -197 156 197 -172 139 172 -139 106 148 -205 205 230 -255 255 255 -255 255 255 -255 255 255 -255 255 255 -65 65 57 -74 106 156 -238 230 246 -205 205 230 -172 180 197 -255 255 255 -255 255 230 -255 255 164 -255 255 255 -222 255 255 -255 246 255 -255 222 255 -255 255 255 -255 255 255 -255 255 255 -255 255 255 -65 65 57 -255 255 255 -255 255 255 -255 255 255 -255 255 255 -255 255 255 -255 255 255 -255 255 255 -255 255 255 -255 255 255 -255 255 255 -255 255 255 -255 255 255 -255 255 255 -255 255 255 -255 255 255 -255 255 255 -255 255 255 -255 255 255 -255 255 255 -255 255 255 -255 255 255 -255 255 255 -255 255 255 -255 255 255 -255 255 255 -255 255 255 -255 255 255 -255 255 255 -255 255 255 -255 255 255 -255 255 255 -255 255 255 diff --git a/graphics/roulette/85B5DFC.bin b/graphics/roulette/grid.bin similarity index 100% rename from graphics/roulette/85B5DFC.bin rename to graphics/roulette/grid.bin diff --git a/graphics/roulette/wheel_map.bin b/graphics/roulette/wheel.bin similarity index 100% rename from graphics/roulette/wheel_map.bin rename to graphics/roulette/wheel.bin diff --git a/include/roulette_util.h b/include/roulette_util.h index 85b8de1f37..2153b19f66 100644 --- a/include/roulette_util.h +++ b/include/roulette_util.h @@ -41,8 +41,8 @@ void MarkUsedPulseBlendPalettes(struct PulseBlend *, u16, u8); void UnloadUsedPulseBlendPalettes(struct PulseBlend *, u16, u8); void UnmarkUsedPulseBlendPalettes(struct PulseBlend *, u16, u8); void UpdatePulseBlend(struct PulseBlend *); -void ClearGridSelectionRect(u16 *dest, u16 src, u8 left, u8 top, u8 width, u8 height); -void SetGridSelectionRect(u16 *dest, u16 *src, u8 left, u8 top, u8 width, u8 height); +void ClearTilemapRect(u16 *dest, u16 src, u8 left, u8 top, u8 width, u8 height); +void SetTilemapRect(u16 *dest, u16 *src, u8 left, u8 top, u8 width, u8 height); void task_tutorial_controls_fadein(struct UnkStruct0 *r0); void sub_8151678(struct UnkStruct0 *r0); u8 sub_815168C(struct UnkStruct0 *r0, u8 r1, const struct UnkStruct1 *r2); diff --git a/include/strings.h b/include/strings.h index 702392efa2..31ab2023e3 100644 --- a/include/strings.h +++ b/include/strings.h @@ -84,6 +84,19 @@ extern const u8 gText_SoSo[]; extern const u8 gText_Bad[]; extern const u8 gText_TheWorst[]; +extern const u8 Roulette_Text_ControlsInstruction[]; +extern const u8 Roulette_Text_KeepPlaying[]; +extern const u8 Roulette_Text_Jackpot[]; +extern const u8 Roulette_Text_ItsAHit[]; +extern const u8 Roulette_Text_NothingDoing[]; +extern const u8 Roulette_Text_YouveWonXCoins[]; +extern const u8 Roulette_Text_BoardWillBeCleared[]; +extern const u8 Roulette_Text_CoinCaseIsFull[]; +extern const u8 Roulette_Text_NoCoinsLeft[]; +extern const u8 Roulette_Text_PlayMinimumWagerIsX[]; +extern const u8 Roulette_Text_SpecialRateTable[]; +extern const u8 Roulette_Text_NotEnoughCoins[]; + extern const u8 gText_Slots[]; extern const u8 gText_Roulette[]; extern const u8 gText_Jackpot[]; diff --git a/src/roulette.c b/src/roulette.c index 983a96e3ff..20868f4ba8 100644 --- a/src/roulette.c +++ b/src/roulette.c @@ -22,6 +22,7 @@ #include "sound.h" #include "sprite.h" #include "string_util.h" +#include "strings.h" #include "task.h" #include "trig.h" #include "tv.h" @@ -61,9 +62,16 @@ #define SQU_PURPLE_MAKUHITA (ROW_PURPLE + COL_MAKUHITA) #define NUM_GRID_SELECTIONS SQU_PURPLE_MAKUHITA +// Get the id of the col/row from the selection ID +// e.g. GET_ROW(SQU_PURPLE_SKITTY) is ROW_PURPLE #define GET_COL(selectionId)((selectionId) % (NUM_BOARD_POKES + 1)) #define GET_ROW(selectionId)((selectionId) / (NUM_BOARD_POKES + 1) * (NUM_BOARD_POKES + 1)) +// Get the col/row index from the selection ID +// e.g. GET_ROW_IDX(SQU_PURPLE_SKITTY) is 2 +#define GET_COL_IDX(selectionId)(selectionId - 1) +#define GET_ROW_IDX(selectionId)(selectionId / 5 - 1) + // Flags for the above selections, used to set which spaces have been hit or bet on #define F_WYNAUT_COL (1 << COL_WYNAUT) #define F_AZURILL_COL (1 << COL_AZURILL) @@ -119,6 +127,19 @@ #define HAS_SHROOMISH (1 << 0) #define HAS_TAILLOW (1 << 1) +enum { + BALL_STATE_ROLLING, + BALL_STATE_STUCK, + BALL_STATE_LANDED = 0xFF, +}; + +enum { + SELECT_STATE_WAIT, + SELECT_STATE_DRAW, + SELECT_STATE_UPDATE, + SELECT_STATE_ERASE = 0xFF, +}; + enum { SPR_BALL_1, SPR_BALL_2, @@ -150,17 +171,17 @@ enum { SPR_BALL_COUNTER_2, SPR_BALL_COUNTER_3, SPR_GRID_ICON_ORANGE_WYNAUT, - SPR_GRID_ICON_2, - SPR_GRID_ICON_3, - SPR_GRID_ICON_4, - SPR_GRID_ICON_5, - SPR_GRID_ICON_6, - SPR_GRID_ICON_7, - SPR_GRID_ICON_8, - SPR_GRID_ICON_9, - SPR_GRID_ICON_10, - SPR_GRID_ICON_11, - SPR_GRID_ICON_12, + SPR_GRID_ICON_GREEN_AZURILL, + SPR_GRID_ICON_PURPLE_SKITTY, + SPR_GRID_ICON_ORANGE_MAKUHITA, + SPR_GRID_ICON_GREEN_WYNAUT, + SPR_GRID_ICON_PURPLE_AZURILL, + SPR_GRID_ICON_ORANGE_SKITTY, + SPR_GRID_ICON_GREEN_MAKUHITA, + SPR_GRID_ICON_PURPLE_WYNAUT, + SPR_GRID_ICON_ORANGE_AZURILL, + SPR_GRID_ICON_GREEN_SKITTY, + SPR_GRID_ICON_PURPLE_MAKUHITA, SPR_POKE_HEADER_1, SPR_POKE_HEADER_2, SPR_POKE_HEADER_3, @@ -188,15 +209,18 @@ enum { // Start points for sprite IDs that are looped over #define SPR_BOARD_ICONS SPR_BOARD_ICON_ORANGE_WYNAUT +#define SPR_BALL_COUNTER SPR_BALL_COUNTER_1 +#define SPR_CREDIT_DIGITS SPR_CREDIT_DIG_1 #define SPR_GRID_ICONS SPR_GRID_ICON_ORANGE_WYNAUT +#define SPR_POKE_HEADERS SPR_POKE_HEADER_1 -struct StructgUnknown_083F8DF4 +struct RouletteTable { - u8 var00; + u8 minBet; // Never read u8 var01; u8 var02; - u8 var03; - u8 var04; + u8 wheelSpeed; + u8 wheelDelay; u8 filler_05[3]; u16 var08; u16 var0A; @@ -236,15 +260,15 @@ struct RouletteSlot static EWRAM_DATA struct Roulette { - u8 var00; + u8 unk0; // Never read u8 var01; u8 partySpeciesFlags; bool8 useTaillow:5; - bool8 var03_5:1; - bool8 var03_6:1; - bool8 var03_7:1; + bool8 ballStuck:1; + bool8 ballUnstuck:1; + bool8 ballRolling:1; // Never read u8 tableId:2; - u8 var04_2:5; + u8 unused:5; bool8 isSpecialRate:1; u32 hitFlags; u8 hitSquares[BALLS_PER_ROUND]; @@ -254,22 +278,22 @@ static EWRAM_DATA struct Roulette u8 curBallNum:4; // Never actually gets incremented u8 unk:4; // Never read u8 betSelection[BALLS_PER_ROUND]; // Because curBallNum is used as the only index, only the first element is ever used (prev bet selections are never needed) - u8 var21; - u8 var22; - u8 var23; - s16 var24; - s16 var26; - s16 var28; - s16 var2A; - struct OamMatrix var2C; + u8 wheelDelayTimer; + u8 wheelSpeed; + u8 wheelDelay; + s16 wheelAngle; + s16 gridX; + s16 selectionRectDrawState; + s16 updateGridHighlight; + struct OamMatrix wheelRotation; u16 var34; struct Sprite *var38; - u8 spriteIds[MAX_SPRITES]; // Sprite IDs - u8 var7C; - u8 var7D; - u8 var7E; + u8 spriteIds[MAX_SPRITES]; + u8 curBallSpriteId; + u8 ballState; + u8 hitSlot; u8 var7F; - s16 var80; + s16 var80; // Never read s16 var82; u16 var84; u16 var86; @@ -280,33 +304,33 @@ static EWRAM_DATA struct Roulette float var98; float var9C; float varA0; - u8 varA4; - u8 varA5; - u8 v51[2]; + u8 playTaskId; + u8 spinTaskId; + u8 filler_1[2]; u16 taskWaitDelay; u16 taskWaitKey; TaskFunc nextTask; - u8 v46[4]; - TaskFunc varB4; - struct UnkStruct0 varB8; + u8 filler_2[4]; + TaskFunc prevTask; + struct UnkStruct0 flashUtil; u16 tilemapBuffers[7][0x400]; - u16 *unk_397C; + u16 *gridTilemap; } *sRoulette = NULL; static EWRAM_DATA u8 sTextWindowId = 0; -static void Task_SpinBoard(u8); +static void Task_SpinWheel(u8); static void Task_StartPlaying(u8); static void Task_ContinuePlaying(u8); static void Task_StopPlaying(u8); static void Task_SelectFirstEmptySquare(u8); static void Task_HandleBetGridInput(u8); static void Task_SlideGridOffscreen(u8); +static void Task_InitBallRoll(u8); static void Task_RollBall(u8); -static void Task_EndBallRoll(u8); static void Task_RecordBallHit(u8); static void Task_SlideGridOnscreen(u8); -static void sub_8141778(u8); +static void Task_FlashBallOnWinningSquare(u8); static void Task_PrintSpinResult(u8); static void Task_PrintPayout(u8); static void Task_EndTurn(u8); @@ -324,7 +348,7 @@ static bool8 IsHitInBetSelection(u8, u8); static void FlashSelectionOnWheel(u8); static void DrawGridBackground(u8); static u8 GetMultiplier(u8); -static void sub_8142814(void); +static void UpdateWheelPosition(void); static void LoadOrFreeMiscSpritePalettesAndSheets(u8); static void CreateGridSprites(void); static void ShowHideGridIcons(bool8, u8); @@ -349,24 +373,12 @@ static void sub_8144A24(struct Sprite *); static void sub_8144E60(struct Sprite *); static void SpriteCB_Taillow(struct Sprite *); -extern const u8 Roulette_Text_ControlsInstruction[]; -extern const u8 Roulette_Text_KeepPlaying[]; -extern const u8 Roulette_Text_Jackpot[]; -extern const u8 Roulette_Text_ItsAHit[]; -extern const u8 Roulette_Text_NothingDoing[]; -extern const u8 Roulette_Text_YouveWonXCoins[]; -extern const u8 Roulette_Text_BoardWillBeCleared[]; -extern const u8 Roulette_Text_CoinCaseIsFull[]; -extern const u8 Roulette_Text_NoCoinsLeft[]; -extern const u8 Roulette_Text_PlayMinimumWagerIsX[]; -extern const u8 Roulette_Text_SpecialRateTable[]; -extern const u8 Roulette_Text_NotEnoughCoins[]; - -static const u16 gUnknown_085B5BFC[] = INCBIN_U16("graphics/roulette/85B5BFC.gbapal"); -static const u32 gUnknown_085B5DFC[] = INCBIN_U32("graphics/roulette/85B5DFC.bin.lz"); -static const u32 sWheel_Tilemap[] = INCBIN_U32("graphics/roulette/wheel_map.bin.lz"); +static const u16 sWheel_Pal[] = INCBIN_U16("graphics/roulette/wheel.gbapal"); // also palette for grid +static const u32 sGrid_Tilemap[] = INCBIN_U32("graphics/roulette/grid.bin.lz"); +static const u32 sWheel_Tilemap[] = INCBIN_U32("graphics/roulette/wheel.bin.lz"); static const struct BgTemplate sBgTemplates[] = { + // Text box { .bg = 0, .charBaseIndex = 2, @@ -376,6 +388,7 @@ static const struct BgTemplate sBgTemplates[] = .priority = 0, .baseTile = 0 }, + // Selection grid { .bg = 1, .charBaseIndex = 0, @@ -385,6 +398,7 @@ static const struct BgTemplate sBgTemplates[] = .priority = 1, .baseTile = 0 }, + // Wheel { .bg = 2, .charBaseIndex = 1, @@ -752,14 +766,15 @@ static const struct RouletteSlot sRouletteSlots[] = }; static const u8 sTableMinBets[] = {1, 3, 1, 6}; -static const struct StructgUnknown_083F8DF4 gUnknown_085B6348[] = +static const struct RouletteTable sRouletteTables[] = { + // Left table { - .var00 = 1, + .minBet = 1, .var01 = 60, .var02 = 30, - .var03 = 1, - .var04 = 1, + .wheelSpeed = 1, + .wheelDelay = 1, .var08 = 45, .var0A = 30, .var0C = 1, @@ -770,12 +785,13 @@ static const struct StructgUnknown_083F8DF4 gUnknown_085B6348[] = .var1A = 360, .var1C = -0.5f }, + // Right table { - .var00 = 3, + .minBet = 3, .var01 = 30, .var02 = 15, - .var03 = 1, - .var04 = 0, + .wheelSpeed = 1, + .wheelDelay = 0, .var08 = 75, .var0A = 60, .var0C = 2, @@ -788,7 +804,7 @@ static const struct StructgUnknown_083F8DF4 gUnknown_085B6348[] = } }; -static const struct UnkStruct1 gUnknown_085B6388[] = +static const struct UnkStruct1 gUnknown_085B6388[NUM_ROULETTE_SLOTS + 1] = { { .var00 = 0x8000, @@ -973,8 +989,8 @@ static void CB2_Roulette(void) RunTasks(); AnimateSprites(); BuildOamBuffer(); - if (sRoulette->varB8.var00) - task_tutorial_controls_fadein(&sRoulette->varB8); + if (sRoulette->flashUtil.var00) + task_tutorial_controls_fadein(&sRoulette->flashUtil); } static void VBlankCB_Roulette(void) @@ -982,32 +998,34 @@ static void VBlankCB_Roulette(void) LoadOam(); ProcessSpriteCopyRequests(); TransferPlttBuffer(); - sub_8142814(); - SetGpuReg(REG_OFFSET_BG1HOFS, 0x200 - sRoulette->var26); + UpdateWheelPosition(); + SetGpuReg(REG_OFFSET_BG1HOFS, 0x200 - sRoulette->gridX); + if (sRoulette->var01) SetGpuReg(REG_OFFSET_BLDALPHA, sRoulette->var34); - if (sRoulette->var2A != 0) + + if (sRoulette->updateGridHighlight) { DmaCopy16(3, &sRoulette->tilemapBuffers[2][0xE0], (void *)BG_SCREEN_ADDR(4) + 0x1C0, 0x340); - sRoulette->var2A = 0; + sRoulette->updateGridHighlight = FALSE; } - switch (sRoulette->var28) + switch (sRoulette->selectionRectDrawState) { - case 1: + case SELECT_STATE_DRAW: SetBgAttribute(0, BG_ATTR_CHARBASEINDEX, 0); ShowBg(0); DmaCopy16(3, &sRoulette->tilemapBuffers[0][0xE0], (void *)BG_SCREEN_ADDR(31) + 0x1C0, 0x340); - sRoulette->var28 = 2; + sRoulette->selectionRectDrawState = SELECT_STATE_UPDATE; break; - case 2: + case SELECT_STATE_UPDATE: DmaCopy16(3, &sRoulette->tilemapBuffers[0][0xE0], (void *)BG_SCREEN_ADDR(31) + 0x1C0, 0x340); break; - case 0xFF: + case SELECT_STATE_ERASE: SetBgAttribute(0, BG_ATTR_CHARBASEINDEX, 2); ShowBg(0); DmaFill16(3, 0, (void *)BG_SCREEN_ADDR(31) + 0x1C0, 0x340); - sRoulette->var28 = 0; - case 0: + sRoulette->selectionRectDrawState = SELECT_STATE_WAIT; + case SELECT_STATE_WAIT: break; } } @@ -1025,12 +1043,12 @@ static void InitRouletteBgAndWindows(void) InitWindows(sWindowTemplates); InitTextBoxGfxAndPrinters(); sTextWindowId = 0; - sRoulette->unk_397C = malloc_and_decompress(gUnknown_085B5DFC, &size); + sRoulette->gridTilemap = malloc_and_decompress(sGrid_Tilemap, &size); } static void FreeRoulette(void) { - FREE_AND_SET_NULL(sRoulette->unk_397C); + FREE_AND_SET_NULL(sRoulette->gridTilemap); FreeAllWindowBuffers(); UnsetBgTilemapBuffer(0); UnsetBgTilemapBuffer(1); @@ -1043,28 +1061,30 @@ static void FreeRoulette(void) static void sub_8140470(void) { u8 i; - u16 arr[3] = {RGB(24, 4, 10), RGB(10, 19, 6), RGB(24, 4, 10)}; // the third is never used ? + u16 bgColors[3] = {RGB(24, 4, 10), RGB(10, 19, 6), RGB(24, 4, 10)}; // 3rd is never used, same as 1st sRoulette->tableId = (gSpecialVar_0x8004 & 1); if (gSpecialVar_0x8004 & ROULETTE_SPECIAL_RATE) sRoulette->isSpecialRate = TRUE; - sRoulette->var22 = gUnknown_085B6348[sRoulette->tableId].var03; - sRoulette->var23 = gUnknown_085B6348[sRoulette->tableId].var04; + sRoulette->wheelSpeed = sRouletteTables[sRoulette->tableId].wheelSpeed; + sRoulette->wheelDelay = sRouletteTables[sRoulette->tableId].wheelDelay; sRoulette->minBet = sTableMinBets[sRoulette->tableId + sRoulette->isSpecialRate * 2]; sRoulette->unk = 1; + // Left table (with min bet of 1) has red background, other table has green if (sRoulette->minBet == 1) - gPlttBufferUnfaded[0] = gPlttBufferUnfaded[0x51] = gPlttBufferFaded[0] = gPlttBufferFaded[0x51] = arr[0]; + gPlttBufferUnfaded[0] = gPlttBufferUnfaded[0x51] = gPlttBufferFaded[0] = gPlttBufferFaded[0x51] = bgColors[0]; else - gPlttBufferUnfaded[0] = gPlttBufferUnfaded[0x51] = gPlttBufferFaded[0] = gPlttBufferFaded[0x51] = arr[1]; + gPlttBufferUnfaded[0] = gPlttBufferUnfaded[0x51] = gPlttBufferFaded[0] = gPlttBufferFaded[0x51] = bgColors[1]; - sub_8151678(&sRoulette->varB8); + sub_8151678(&sRoulette->flashUtil); - for (i = 0; i < 13; i++) + // Init flash util for flashing the selected colors on the wheel + for (i = 0; i < NUM_ROULETTE_SLOTS + 1; i++) { - sub_815168C(&sRoulette->varB8, i, &gUnknown_085B6388[i]); + sub_815168C(&sRoulette->flashUtil, i, &gUnknown_085B6388[i]); } for (i = 0; i < PARTY_SIZE; i++) @@ -1119,7 +1139,7 @@ static void CB2_LoadRoulette(void) ResetTempTileDataBuffers(); break; case 3: - LoadPalette(&gUnknown_085B5BFC, 0, 0x1C0); + LoadPalette(&sWheel_Pal, 0, 0x1C0); DecompressAndCopyTileDataToVram(1, gRouletteMenu_Gfx, 0, 0, 0); DecompressAndCopyTileDataToVram(2, gRouletteWheel_Gfx, 0, 0, 0); break; @@ -1166,34 +1186,34 @@ static void CB2_LoadRoulette(void) EnableInterrupts(INTR_FLAG_VBLANK); SetVBlankCallback(VBlankCB_Roulette); BeginHardwarePaletteFade(0xFF, 0, 16, 0, 1); - taskId = sRoulette->varA4 = CreateTask(Task_StartPlaying, 0); + taskId = sRoulette->playTaskId = CreateTask(Task_StartPlaying, 0); gTasks[taskId].tBallNum = BALLS_PER_ROUND; gTasks[taskId].tCoins = GetCoins(); AlertTVThatPlayerPlayedRoulette(GetCoins()); - sRoulette->varA5 = CreateTask(Task_SpinBoard, 1); + sRoulette->spinTaskId = CreateTask(Task_SpinWheel, 1); SetMainCallback2(CB2_Roulette); return; } gMain.state++; } -static void Task_SpinBoard(u8 taskId) +static void Task_SpinWheel(u8 taskId) { s16 sin; s16 cos; - if (sRoulette->var21++ == sRoulette->var23) + if (sRoulette->wheelDelayTimer++ == sRoulette->wheelDelay) { - sRoulette->var21 = 0; - if ((sRoulette->var24 -= sRoulette->var22) < 0) - sRoulette->var24 = 360 - sRoulette->var22; + sRoulette->wheelDelayTimer = 0; + if ((sRoulette->wheelAngle -= sRoulette->wheelSpeed) < 0) + sRoulette->wheelAngle = 360 - sRoulette->wheelSpeed; } - sin = Sin2(sRoulette->var24); - cos = Cos2(sRoulette->var24); + sin = Sin2(sRoulette->wheelAngle); + cos = Cos2(sRoulette->wheelAngle); sin = sin / 16; - sRoulette->var2C.a = sRoulette->var2C.d = cos / 16; - sRoulette->var2C.b = sin; - sRoulette->var2C.c = -sin; + sRoulette->wheelRotation.a = sRoulette->wheelRotation.d = cos / 16; + sRoulette->wheelRotation.b = sin; + sRoulette->wheelRotation.c = -sin; } static void Task_StartPlaying(u8 taskId) @@ -1231,7 +1251,7 @@ static void Task_ContinuePlaying(u8 taskId) static void Task_StopPlaying(u8 taskId) { - DestroyTask(sRoulette->varA5); + DestroyTask(sRoulette->spinTaskId); ExitRoulette(taskId); } @@ -1241,29 +1261,29 @@ static void UpdateGridSelectionRect(u8 selectionId) switch (selectionId) { case SELECTION_NONE: - ClearGridSelectionRect(&sRoulette->tilemapBuffers[0][0], 0, 14, 7, 16, 13); + ClearTilemapRect(&sRoulette->tilemapBuffers[0][0], 0, 14, 7, 16, 13); break; case COL_WYNAUT: case COL_AZURILL: case COL_SKITTY: case COL_MAKUHITA: temp0 = (selectionId * 3 + 14); - ClearGridSelectionRect(&sRoulette->tilemapBuffers[0][0], 0, 14, 7, 16, 13); - SetGridSelectionRect(&sRoulette->tilemapBuffers[0][0], &sRoulette->unk_397C[281], temp0, 7, 3, 13); + ClearTilemapRect(&sRoulette->tilemapBuffers[0][0], 0, 14, 7, 16, 13); + SetTilemapRect(&sRoulette->tilemapBuffers[0][0], &sRoulette->gridTilemap[281], temp0, 7, 3, 13); break; case ROW_ORANGE: case ROW_GREEN: case ROW_PURPLE: temp1 = ((selectionId - 1) / 5 * 3 + 10); - ClearGridSelectionRect(&sRoulette->tilemapBuffers[0][0], 0, 14, 7, 16, 13); - SetGridSelectionRect(&sRoulette->tilemapBuffers[0][0], &sRoulette->unk_397C[320], 14, temp1, 16, 3); + ClearTilemapRect(&sRoulette->tilemapBuffers[0][0], 0, 14, 7, 16, 13); + SetTilemapRect(&sRoulette->tilemapBuffers[0][0], &sRoulette->gridTilemap[320], 14, temp1, 16, 3); break; // Individual square default: temp0 = GET_COL(selectionId) * 3 + 14; temp1 = ((selectionId - 1) / 5 * 3 + 7); - ClearGridSelectionRect(&sRoulette->tilemapBuffers[0][0], 0, 14, 7, 16, 13); - SetGridSelectionRect(&sRoulette->tilemapBuffers[0][0], &sRoulette->unk_397C[272], temp0, temp1, 3, 3); + ClearTilemapRect(&sRoulette->tilemapBuffers[0][0], 0, 14, 7, 16, 13); + SetTilemapRect(&sRoulette->tilemapBuffers[0][0], &sRoulette->gridTilemap[272], temp0, temp1, 3, 3); break; } } @@ -1276,10 +1296,10 @@ static void UpdateGridSelection(u8 taskId) static void Task_StartHandleBetGridInput(u8 taskId) { - sRoulette->var28 = 1; + sRoulette->selectionRectDrawState = SELECT_STATE_DRAW; UpdateGridSelectionRect(gTasks[taskId].tSelectionId); - sRoulette->var23 = 2; - sRoulette->var21 = 0; + sRoulette->wheelDelay = 2; + sRoulette->wheelDelayTimer = 0; gTasks[taskId].func = Task_HandleBetGridInput; } @@ -1356,49 +1376,52 @@ static bool8 CanMoveSelectionInDir(s16 *selectionId, u8 dir) static void ProcessBetGridInput(u8 taskId) { - u8 z = 0; + u8 headerOffset = 0; bool8 dirPressed = FALSE; - if ((!(JOY_NEW(DPAD_UP)) || ((dirPressed = TRUE), CanMoveSelectionInDir(&gTasks[taskId].tSelectionId, 0))) - && (!(JOY_NEW(DPAD_DOWN)) || ((dirPressed = TRUE), CanMoveSelectionInDir(&gTasks[taskId].tSelectionId, 1))) - && (!(JOY_NEW(DPAD_LEFT)) || ((dirPressed = TRUE), CanMoveSelectionInDir(&gTasks[taskId].tSelectionId, 2))) - && (!(JOY_NEW(DPAD_RIGHT)) || ((dirPressed = TRUE), CanMoveSelectionInDir(&gTasks[taskId].tSelectionId, 3))) + if ((!(JOY_NEW(DPAD_UP)) || ((dirPressed = TRUE) && CanMoveSelectionInDir(&gTasks[taskId].tSelectionId, 0))) + && (!(JOY_NEW(DPAD_DOWN)) || ((dirPressed = TRUE) && CanMoveSelectionInDir(&gTasks[taskId].tSelectionId, 1))) + && (!(JOY_NEW(DPAD_LEFT)) || ((dirPressed = TRUE) && CanMoveSelectionInDir(&gTasks[taskId].tSelectionId, 2))) + && (!(JOY_NEW(DPAD_RIGHT)) || ((dirPressed = TRUE) && CanMoveSelectionInDir(&gTasks[taskId].tSelectionId, 3))) && (dirPressed)) { u8 i; DrawGridBackground(gTasks[taskId].tSelectionId); UpdateGridSelection(taskId); - gTasks[taskId].data[1] = z; + gTasks[taskId].data[1] = 0; PlaySE(SE_SELECT); - sub_8151A9C(&sRoulette->varB8, 0xFFFF); - sRoulette->varB8.var04[13].var00_7 = sRoulette->varB8.var04[14].var00_7 = sRoulette->varB8.var04[15].var00_7 = 0; + sub_8151A9C(&sRoulette->flashUtil, 0xFFFF); // Reset previous flashing wheel selections + sRoulette->flashUtil.var04[13].var00_7 = sRoulette->flashUtil.var04[14].var00_7 = sRoulette->flashUtil.var04[15].var00_7 = 0; FlashSelectionOnWheel(gTasks[taskId].tSelectionId); + + // Switch all the poke (column) headers to gray outlines for (i = 0; i < NUM_BOARD_POKES; i++) { - gSprites[sRoulette->spriteIds[i + SPR_POKE_HEADER_1]].oam.tileNum = - gSprites[sRoulette->spriteIds[i + SPR_POKE_HEADER_1]].sheetTileStart - + (*gSprites[sRoulette->spriteIds[i + SPR_POKE_HEADER_1]].anims)->type; + gSprites[sRoulette->spriteIds[i + SPR_POKE_HEADERS]].oam.tileNum = + gSprites[sRoulette->spriteIds[i + SPR_POKE_HEADERS]].sheetTileStart + + (*gSprites[sRoulette->spriteIds[i + SPR_POKE_HEADERS]].anims)->type; } - if ((u16)(gTasks[taskId].tSelectionId - 1) < 4 && !(sRoulette->hitFlags & sGridSelections[gTasks[taskId].tSelectionId].flag) ) + // If the current selection is a column with at least 1 unhit space, fill in the header + if ((u16)(gTasks[taskId].tSelectionId - 1) < COL_MAKUHITA && !(sRoulette->hitFlags & sGridSelections[gTasks[taskId].tSelectionId].flag) ) { - z = gTasks[taskId].tSelectionId - 1; - gSprites[sRoulette->spriteIds[z + SPR_POKE_HEADER_1]].oam.tileNum = - gSprites[sRoulette->spriteIds[z + SPR_POKE_HEADER_1]].sheetTileStart - + (*gSprites[sRoulette->spriteIds[z + SPR_POKE_HEADER_1]].anims + 1)->type; + headerOffset = gTasks[taskId].tSelectionId - 1; + gSprites[sRoulette->spriteIds[headerOffset + SPR_POKE_HEADERS]].oam.tileNum = + gSprites[sRoulette->spriteIds[headerOffset + SPR_POKE_HEADERS]].sheetTileStart + + (*gSprites[sRoulette->spriteIds[headerOffset + SPR_POKE_HEADERS]].anims + 1)->type; } } } -static void sub_8140F6C(u8 r0) +static void Task_StartRound(u8 taskId) { IncrementDailyRouletteUses(); - sRoulette->var28 = 0xFF; + sRoulette->selectionRectDrawState = SELECT_STATE_ERASE; if (sRoulette->minBet == 1) - sRoulette->var23 = 1; + sRoulette->wheelDelay = 1; else - sRoulette->var23 = 0; - sRoulette->var21 = 0; - gTasks[r0].data[1] = 32; - gTasks[r0].func = Task_SlideGridOffscreen; + sRoulette->wheelDelay = 0; + sRoulette->wheelDelayTimer = 0; + gTasks[taskId].data[1] = 32; + gTasks[taskId].func = Task_SlideGridOffscreen; } static void Task_PlaceBet(u8 taskId) @@ -1409,7 +1432,7 @@ static void Task_PlaceBet(u8 taskId) if ((gTasks[taskId].tCoins -= sRoulette->minBet) < 0) gTasks[taskId].tCoins = 0; SetCreditDigits(gTasks[taskId].tCoins); - gTasks[taskId].func = sub_8140F6C; + gTasks[taskId].func = Task_StartRound; } static void Task_HandleBetGridInput(u8 taskId) @@ -1455,14 +1478,14 @@ static void Task_SlideGridOffscreen(u8 taskId) { if (gTasks[taskId].data[1] > 2) gSpriteCoordOffsetX += 2; - if ((sRoulette->var26 += 4) == 104) + if ((sRoulette->gridX += 4) == 104) gSprites[sRoulette->spriteIds[SPR_MULTIPLIER]].callback = &SpriteCallbackDummy; } else { ShowHideGridIcons(TRUE, -1); ShowHideGridBalls(TRUE, -1); - gTasks[taskId].func = Task_RollBall; + gTasks[taskId].func = Task_InitBallRoll; gTasks[taskId].data[1] = 0; } } @@ -1477,17 +1500,17 @@ static u8 sub_814118C(u16 r0, u16 r1) if (gLocalTime.hours > 3 && gLocalTime.hours < 10) { if (r0 < 12 || (r1 & 1)) - return gUnknown_085B6348[sRoulette->tableId].var02 / 2; + return sRouletteTables[sRoulette->tableId].var02 / 2; else return 1; } - else if (!(r1 & 0x3)) + else if (!(r1 & 3)) { - return gUnknown_085B6348[sRoulette->tableId].var02 / 2; + return sRouletteTables[sRoulette->tableId].var02 / 2; } else { - return gUnknown_085B6348[sRoulette->tableId].var02; + return sRouletteTables[sRoulette->tableId].var02; } break; case HAS_SHROOMISH | HAS_TAILLOW: @@ -1495,17 +1518,17 @@ static u8 sub_814118C(u16 r0, u16 r1) if (gLocalTime.hours > 3 && gLocalTime.hours < 11) { if (r0 < 6 || (r1 & 1)) - return gUnknown_085B6348[sRoulette->tableId].var02 / 2; + return sRouletteTables[sRoulette->tableId].var02 / 2; else return 1; } else if ((r1 & 1) && r0 > 6) { - return gUnknown_085B6348[sRoulette->tableId].var02 / 4; + return sRouletteTables[sRoulette->tableId].var02 / 4; } else { - return gUnknown_085B6348[sRoulette->tableId].var02 / 2; + return sRouletteTables[sRoulette->tableId].var02 / 2; } break; case 0: @@ -1516,31 +1539,31 @@ static u8 sub_814118C(u16 r0, u16 r1) if (!(r1 & 3)) return 1; else - return gUnknown_085B6348[sRoulette->tableId].var02 / 2; + return sRouletteTables[sRoulette->tableId].var02 / 2; } else if (!(r1 & 3)) { if (r0 > 12) - return gUnknown_085B6348[sRoulette->tableId].var02 / 2; + return sRouletteTables[sRoulette->tableId].var02 / 2; else - return gUnknown_085B6348[sRoulette->tableId].var02; + return sRouletteTables[sRoulette->tableId].var02; } else if (r1 & 0x8000) { if (r0 > 12) - return gUnknown_085B6348[sRoulette->tableId].var02; + return sRouletteTables[sRoulette->tableId].var02; else - return gUnknown_085B6348[sRoulette->tableId].var01; + return sRouletteTables[sRoulette->tableId].var01; } else { - return gUnknown_085B6348[sRoulette->tableId].var01 * 2; + return sRouletteTables[sRoulette->tableId].var01 * 2; } break; } } -static void Task_RollBall(u8 taskId) +static void Task_InitBallRoll(u8 taskId) { u8 randf; s8 randfinal; @@ -1552,8 +1575,8 @@ static void Task_RollBall(u8 taskId) rand = Random(); randmod = rand % 100; - sRoulette->var7C = gTasks[taskId].tBallNum; - sRoulette->var7D = sRoulette->var7E = sRoulette->var7F = g; + sRoulette->curBallSpriteId = gTasks[taskId].tBallNum; + sRoulette->ballState = sRoulette->hitSlot = sRoulette->var7F = BALL_STATE_ROLLING; randf = sub_814118C(gTasks[taskId].data[8], rand); randfinal = (rand % randf) - (randf / 2); @@ -1567,28 +1590,26 @@ static void Task_RollBall(u8 taskId) else r5 = (1 - r5) * 2; - sRoulette->var80 = g = gUnknown_085B6348[sRoulette->tableId].var1A + randfinal; + sRoulette->var80 = g = sRouletteTables[sRoulette->tableId].var1A + randfinal; g = S16TOPOSFLOAT(g) / 5.0f; sRoulette->var82 = g * 3; sRoulette->var86 = sRoulette->var84 = g; sRoulette->var88 = S16TOPOSFLOAT(angles[(rand & 1) + r5]); - sRoulette->var8C = S16TOPOSFLOAT(gUnknown_085B6348[sRoulette->tableId].var18); + sRoulette->var8C = S16TOPOSFLOAT(sRouletteTables[sRoulette->tableId].var18); sRoulette->var90 = ((sRoulette->var8C * 0.5f) - sRoulette->var8C) / S16TOPOSFLOAT(sRoulette->var82); sRoulette->var94 = 68.0f; sRoulette->var9C = 0.0f; sRoulette->var98 = -(8.0f / S16TOPOSFLOAT(sRoulette->var82)); sRoulette->varA0 = 36.0f; - gTasks[taskId].func = Task_EndBallRoll; + gTasks[taskId].func = Task_RollBall; } -static void Task_EndBallRoll(u8 taskId) +static void Task_RollBall(u8 taskId) { - u8 index; - sRoulette->var03_7 = TRUE; - index = sRoulette->spriteIds[sRoulette->var7C]; - sRoulette->var38 = &gSprites[index]; + sRoulette->ballRolling = TRUE; + sRoulette->var38 = &gSprites[sRoulette->spriteIds[sRoulette->curBallSpriteId]]; sRoulette->var38->callback = sub_81446AC; gTasks[taskId].tBallNum++; gTasks[taskId].data[8]++; @@ -1599,24 +1620,26 @@ static void Task_EndBallRoll(u8 taskId) static void Task_RecordBallHit(u8 taskId) { - if (sRoulette->var7D) + // Wait for ball to finish rolling + if (sRoulette->ballState != BALL_STATE_ROLLING) { - if (sRoulette->var03_5) + // If the ball got stuck, wait for it to be unstuck + if (sRoulette->ballStuck) { - if (sRoulette->var03_6) + if (sRoulette->ballUnstuck) { - sRoulette->var03_6 = FALSE; - sRoulette->var03_5 = FALSE; + sRoulette->ballUnstuck = FALSE; + sRoulette->ballStuck = FALSE; } } else { - if (!gTasks[taskId].data[1]) + if (gTasks[taskId].data[1] == 0) { - bool8 temp = IsHitInBetSelection(RecordHit(taskId, sRoulette->var7E), sRoulette->betSelection[sRoulette->curBallNum]); - gTasks[taskId].tWonBet = temp; - if (temp == TRUE) - sub_8151A48(&sRoulette->varB8, 0x1000); + bool8 won = IsHitInBetSelection(RecordHit(taskId, sRoulette->hitSlot), sRoulette->betSelection[sRoulette->curBallNum]); + gTasks[taskId].tWonBet = won; + if (won == TRUE) + sub_8151A48(&sRoulette->flashUtil, 0x1000); // Flash outer edges of wheel } if (gTasks[taskId].data[1] <= 60) { @@ -1642,7 +1665,7 @@ static void Task_SlideGridOnscreen(u8 taskId) { if (gTasks[taskId].data[1] > 2) gSpriteCoordOffsetX -= 2; - if ((sRoulette->var26 -= 4) == 104) + if ((sRoulette->gridX -= 4) == 104) gSprites[sRoulette->spriteIds[SPR_MULTIPLIER]].callback = SpriteCB_GridSquare; } else @@ -1652,21 +1675,23 @@ static void Task_SlideGridOnscreen(u8 taskId) gTasks[taskId].data[1] = 121; else gTasks[taskId].data[1] = 61; - gTasks[taskId].func = sub_8141778; + gTasks[taskId].func = Task_FlashBallOnWinningSquare; } } -static void sub_8141778(u8 taskId) +static void Task_FlashBallOnWinningSquare(u8 taskId) { if (gTasks[taskId].data[1]-- > 1) { switch (gTasks[taskId].data[1] % 16) { case 8: + // Winning square uncovered ShowHideGridIcons(FALSE, -1); ShowHideGridBalls(FALSE, -1); break; case 0: + // Winning square occluded by ball ShowHideGridIcons(FALSE, gTasks[taskId].tWinningSquare); ShowHideGridBalls(FALSE, gTasks[taskId].tBallNum - 1); break; @@ -1784,8 +1809,8 @@ static void Task_PrintPayout(u8 taskId) static void Task_EndTurn(u8 taskId) { - sub_8151A9C(&sRoulette->varB8, 0xFFFF); - sRoulette->varB8.var04[13].var00_7 = sRoulette->varB8.var04[14].var00_7 = sRoulette->varB8.var04[15].var00_7 = 0; + sub_8151A9C(&sRoulette->flashUtil, 0xFFFF); + sRoulette->flashUtil.var04[13].var00_7 = sRoulette->flashUtil.var04[14].var00_7 = sRoulette->flashUtil.var04[15].var00_7 = 0; gSprites[sRoulette->spriteIds[SPR_BOARD_ICONS + sGridSelections[gTasks[taskId].tWinningSquare].var00]].invisible = TRUE; gTasks[taskId].func = Task_TryPrintEndTurnMsg; } @@ -1799,9 +1824,9 @@ static void Task_TryPrintEndTurnMsg(u8 taskId) gSprites[sRoulette->spriteIds[SPR_WIN_SLOT_CURSOR]].invisible = TRUE; for (i = 0; i < NUM_BOARD_POKES; i++) { - gSprites[sRoulette->spriteIds[i + SPR_POKE_HEADER_1]].oam.tileNum = - gSprites[sRoulette->spriteIds[i + SPR_POKE_HEADER_1]].sheetTileStart - + (*gSprites[sRoulette->spriteIds[i + SPR_POKE_HEADER_1]].anims)->type; + gSprites[sRoulette->spriteIds[i + SPR_POKE_HEADERS]].oam.tileNum = + gSprites[sRoulette->spriteIds[i + SPR_POKE_HEADERS]].sheetTileStart + + (*gSprites[sRoulette->spriteIds[i + SPR_POKE_HEADERS]].anims)->type; } if (gTasks[taskId].tCoins >= sRoulette->minBet) { @@ -1868,8 +1893,8 @@ static void Task_ClearBoard(u8 taskId) static void ExitRoulette(u8 taskId) { - sub_8151A9C(&sRoulette->varB8, 0xFFFF); - sub_8151678(&sRoulette->varB8); + sub_8151A9C(&sRoulette->flashUtil, 0xFFFF); + sub_8151678(&sRoulette->flashUtil); SetCoins(gTasks[taskId].tCoins); if (GetCoins() < sRoulette->minBet) gSpecialVar_0x8004 = TRUE; @@ -1918,9 +1943,9 @@ static void Task_WaitForNextTask(u8 taskId) static void StartTaskAfterDelayOrInput(u8 taskId, TaskFunc task, u16 delay, u16 key) { - sRoulette->varB4 = gTasks[taskId].func; + sRoulette->prevTask = gTasks[taskId].func; if (task == NULL) - task = sRoulette->varB4; + task = sRoulette->prevTask; sRoulette->nextTask = task; sRoulette->taskWaitDelay = delay; if (delay == 0xFFFF && key == 0) @@ -1933,10 +1958,10 @@ static void StartTaskAfterDelayOrInput(u8 taskId, TaskFunc task, u16 delay, u16 static void sub_8141FF4(u8 taskId) { u8 i = 0; - sRoulette->var00 = i; - sRoulette->var03_7 = FALSE; - sRoulette->var03_5 = FALSE; - sRoulette->var03_6 = FALSE; + sRoulette->unk0 = FALSE; + sRoulette->ballRolling = FALSE; + sRoulette->ballStuck = FALSE; + sRoulette->ballUnstuck = FALSE; sRoulette->useTaillow = FALSE; for (i = 0; i < BALLS_PER_ROUND; i++) @@ -2040,7 +2065,7 @@ static bool8 IsHitInBetSelection(u8 gridSquare, u8 betSelection) static void FlashSelectionOnWheel(u8 selectionId) { u16 var0 = 0; - u8 var2; + u8 numSelected; u16 var3; u8 i; @@ -2049,23 +2074,26 @@ static void FlashSelectionOnWheel(u8 selectionId) case ROW_ORANGE: case ROW_GREEN: case ROW_PURPLE: + // Flash colors of row selection for (i = (selectionId + 1); i < (selectionId + 5); i++) { if (!(sRoulette->hitFlags & sGridSelections[i].flag)) var0 |= sGridSelections[i].var10; } - sub_8151A48(&sRoulette->varB8, var0 &= 0xDFFF); + sub_8151A48(&sRoulette->flashUtil, var0 &= 0xDFFF); break; default: { - struct UnkStruct1 var1[3]; + // Selection is either a column or individual square + struct UnkStruct1 var1[NUM_BOARD_COLORS]; memcpy(var1, gUnknown_085B63F0, sizeof(var1)); - if (selectionId >= COL_WYNAUT && selectionId <= COL_MAKUHITA) - var2 = 3; - else - var2 = 1; - var3 = selectionId / 5 - 1; + if (selectionId >= COL_WYNAUT && selectionId <= COL_MAKUHITA) + numSelected = NUM_BOARD_COLORS; // Selection is full column + else + numSelected = 1; + + var3 = GET_ROW_IDX(selectionId); switch (GET_COL(selectionId)) { // The specific color of the poke it references doesn't matter, because the icons themelves all share a palette @@ -2083,36 +2111,42 @@ static void FlashSelectionOnWheel(u8 selectionId) var3 = gSprites[sRoulette->spriteIds[SPR_BOARD_ICON_ORANGE_MAKUHITA]].oam.paletteNum * 16; break; } - if (var2 == 1) + if (numSelected == 1) { + // Selection is individual square if (!(sRoulette->hitFlags & sGridSelections[selectionId].flag)) { - var1[selectionId / 5 - 1].var02 += var3; - sub_815168C(&sRoulette->varB8, 13, &var1[selectionId / 5 - 1]); + // Set poke icon of selected square to flash + var1[GET_ROW_IDX(selectionId)].var02 += var3; + sub_815168C(&sRoulette->flashUtil, 13, &var1[GET_ROW_IDX(selectionId)]); } else { + // Square was already hit, don't flash it break; } } else { - for (i = 0; i < 3; i++) + // Selection is full column + for (i = 0; i < NUM_BOARD_COLORS; i++) { u8 var4 = i * 5 + selectionId + 5; if (!(sRoulette->hitFlags & sGridSelections[var4].flag)) { - var1[var4 / 5 - 1].var02 += var3; - sub_815168C(&sRoulette->varB8, i + 13, &var1[var4 / 5 - 1]); - if (var2 == 3) + // Set poke icons of selected squares to flash + var1[GET_ROW_IDX(var4)].var02 += var3; + sub_815168C(&sRoulette->flashUtil, i + 13, &var1[GET_ROW_IDX(var4)]); + if (numSelected == 3) var0 = sGridSelections[var4].var10; - var2--; + numSelected--; } } - if (var2 != 2) + if (numSelected != 2) var0 = 0; } - sub_8151A48(&sRoulette->varB8, var0 |= sGridSelections[selectionId].var10); + // Do flash + sub_8151A48(&sRoulette->flashUtil, var0 |= sGridSelections[selectionId].var10); break; } } @@ -2127,9 +2161,9 @@ static void DrawGridBackground(u8 selectionId) vu8 var0; u8 v[5]; u8 l; - sRoulette->var2A = 1; + sRoulette->updateGridHighlight = TRUE; ShowHideGridIcons(FALSE, 0); - SetGridSelectionRect(sRoulette->tilemapBuffers[2], sRoulette->unk_397C, 14, 7, 16, 13); + SetTilemapRect(sRoulette->tilemapBuffers[2], sRoulette->gridTilemap, 14, 7, 16, 13); switch (selectionId) { case SELECTION_NONE: @@ -2141,7 +2175,7 @@ static void DrawGridBackground(u8 selectionId) l = 4; for (i = 0; i < l; i++) { - v[i] = i * 5 + selectionId; + v[i] = i * ROW_ORANGE + selectionId; } break; case ROW_ORANGE: @@ -2165,16 +2199,16 @@ static void DrawGridBackground(u8 selectionId) for (z = 0; z < 3; z++) { var2 = (sGridSelections[v[i]].y + z) * 32; - sRoulette->tilemapBuffers[2][var1 + var2 + 0] = sRoulette->unk_397C[(var0 + z) * 3 + 208]; - sRoulette->tilemapBuffers[2][var1 + var2 + 1] = sRoulette->unk_397C[(var0 + z) * 3 + 209]; - sRoulette->tilemapBuffers[2][var1 + var2 + 2] = sRoulette->unk_397C[(var0 + z) * 3 + 210]; + sRoulette->tilemapBuffers[2][var1 + var2 + 0] = sRoulette->gridTilemap[(var0 + z) * 3 + 208]; + sRoulette->tilemapBuffers[2][var1 + var2 + 1] = sRoulette->gridTilemap[(var0 + z) * 3 + 209]; + sRoulette->tilemapBuffers[2][var1 + var2 + 2] = sRoulette->gridTilemap[(var0 + z) * 3 + 210]; } } } static u8 GetMultiplier(u8 selectionId) { - u8 multipliers[5] = {0, 3, 4, 6, 12}; + u8 multipliers[5] = {0, 3, 4, 6, MAX_MULTIPLIER}; if (selectionId > NUM_GRID_SELECTIONS) selectionId = 0; @@ -2182,13 +2216,13 @@ static u8 GetMultiplier(u8 selectionId) switch (sGridSelections[selectionId].baseMultiplier) { case NUM_BOARD_COLORS: - selectionId = selectionId / 5 - 1; + selectionId = GET_ROW_IDX(selectionId); // If already hit all pokes of this color, multiplier is 0 if (sRoulette->colorHits[selectionId] >= NUM_BOARD_POKES) return 0; return multipliers[sRoulette->colorHits[selectionId] + 1]; case NUM_BOARD_POKES: - selectionId--; + selectionId = GET_COL_IDX(selectionId); // If already hit all colors of this poke, multiplier is 0 if (sRoulette->pokeHits[selectionId] >= NUM_BOARD_COLORS) return 0; @@ -2197,27 +2231,27 @@ static u8 GetMultiplier(u8 selectionId) // If square has been hit already, multiplier is 0 if (sRoulette->hitFlags & sGridSelections[selectionId].flag) return 0; - return multipliers[4]; + return multipliers[ARRAY_COUNT(multipliers) - 1]; } return 0; } -static void sub_8142814(void) +static void UpdateWheelPosition(void) { - s32 x1; - s32 x2; - SetGpuReg(REG_OFFSET_BG2PA, sRoulette->var2C.a); - SetGpuReg(REG_OFFSET_BG2PB, sRoulette->var2C.b); - SetGpuReg(REG_OFFSET_BG2PC, sRoulette->var2C.c); - SetGpuReg(REG_OFFSET_BG2PD, sRoulette->var2C.d); - x1 = 0x7400 - sRoulette->var2C.a * (gSpriteCoordOffsetX + 116) - - sRoulette->var2C.b * (gSpriteCoordOffsetY + 80); - x2 = 0x5400 - sRoulette->var2C.c * (gSpriteCoordOffsetX + 116) - - sRoulette->var2C.d * (gSpriteCoordOffsetY + 80); - SetGpuReg(REG_OFFSET_BG2X_L, x1); - SetGpuReg(REG_OFFSET_BG2X_H, (x1 & 0x0fff0000) >> 16); - SetGpuReg(REG_OFFSET_BG2Y_L, x2); - SetGpuReg(REG_OFFSET_BG2Y_H, (x2 & 0x0fff0000) >> 16); + s32 bg2x; + s32 bg2y; + SetGpuReg(REG_OFFSET_BG2PA, sRoulette->wheelRotation.a); + SetGpuReg(REG_OFFSET_BG2PB, sRoulette->wheelRotation.b); + SetGpuReg(REG_OFFSET_BG2PC, sRoulette->wheelRotation.c); + SetGpuReg(REG_OFFSET_BG2PD, sRoulette->wheelRotation.d); + bg2x = 0x7400 - sRoulette->wheelRotation.a * (gSpriteCoordOffsetX + 116) + - sRoulette->wheelRotation.b * (gSpriteCoordOffsetY + 80); + bg2y = 0x5400 - sRoulette->wheelRotation.c * (gSpriteCoordOffsetX + 116) + - sRoulette->wheelRotation.d * (gSpriteCoordOffsetY + 80); + SetGpuReg(REG_OFFSET_BG2X_L, bg2x); + SetGpuReg(REG_OFFSET_BG2X_H, (bg2x & 0x0fff0000) >> 16); + SetGpuReg(REG_OFFSET_BG2Y_L, bg2y); + SetGpuReg(REG_OFFSET_BG2Y_H, (bg2y & 0x0fff0000) >> 16); } static const u8 sFiller[3] = {}; @@ -2262,7 +2296,7 @@ static const struct SpritePalette sSpritePalettes[] = {} }; -static const struct OamData gOamData_85B73EC = +static const struct OamData sOam_GridHeader = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, @@ -2494,7 +2528,7 @@ static const struct SpriteTemplate sSpriteTemplates_PokeHeaders[NUM_BOARD_POKES] { .tileTag = GFXTAG_HEADERS, .paletteTag = PALTAG_GRID_ICONS, - .oam = &gOamData_85B73EC, + .oam = &sOam_GridHeader, .anims = sAnim_WynautHeader, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, @@ -2503,7 +2537,7 @@ static const struct SpriteTemplate sSpriteTemplates_PokeHeaders[NUM_BOARD_POKES] { .tileTag = GFXTAG_HEADERS, .paletteTag = PALTAG_GRID_ICONS, - .oam = &gOamData_85B73EC, + .oam = &sOam_GridHeader, .anims = sAnim_AzurillHeader, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, @@ -2512,7 +2546,7 @@ static const struct SpriteTemplate sSpriteTemplates_PokeHeaders[NUM_BOARD_POKES] { .tileTag = GFXTAG_HEADERS, .paletteTag = PALTAG_GRID_ICONS, - .oam = &gOamData_85B73EC, + .oam = &sOam_GridHeader, .anims = sAnim_SkittyHeader, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, @@ -2521,7 +2555,7 @@ static const struct SpriteTemplate sSpriteTemplates_PokeHeaders[NUM_BOARD_POKES] { .tileTag = GFXTAG_HEADERS, .paletteTag = PALTAG_GRID_ICONS, - .oam = &gOamData_85B73EC, + .oam = &sOam_GridHeader, .anims = sAnim_MakuhitaHeader, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, @@ -2534,7 +2568,7 @@ static const struct SpriteTemplate sSpriteTemplates_ColorHeaders[NUM_BOARD_COLOR { .tileTag = GFXTAG_HEADERS, .paletteTag = PALTAG_GRID_ICONS, - .oam = &gOamData_85B73EC, + .oam = &sOam_GridHeader, .anims = sAnim_OrangeHeader, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, @@ -2543,7 +2577,7 @@ static const struct SpriteTemplate sSpriteTemplates_ColorHeaders[NUM_BOARD_COLOR { .tileTag = GFXTAG_HEADERS, .paletteTag = PALTAG_GRID_ICONS, - .oam = &gOamData_85B73EC, + .oam = &sOam_GridHeader, .anims = sAnim_GreenHeader, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, @@ -2552,7 +2586,7 @@ static const struct SpriteTemplate sSpriteTemplates_ColorHeaders[NUM_BOARD_COLOR { .tileTag = GFXTAG_HEADERS, .paletteTag = PALTAG_GRID_ICONS, - .oam = &gOamData_85B73EC, + .oam = &sOam_GridHeader, .anims = sAnim_PurpleHeader, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, @@ -2880,7 +2914,7 @@ static const struct SpriteTemplate sSpriteTemplate_Cursor = { .tileTag = GFXTAG_CURSOR, .paletteTag = PALTAG_INTERFACE, - .oam = &gOamData_85B73EC, + .oam = &sOam_GridHeader, .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, @@ -3440,7 +3474,7 @@ static void CreateGridSprites(void) } for (i = 0; i < ARRAY_COUNT(sSpriteTemplates_PokeHeaders); i++) { - spriteId = sRoulette->spriteIds[i + SPR_POKE_HEADER_1] = CreateSprite(&sSpriteTemplates_PokeHeaders[i], (i * 24) + 148, 70, 30); + spriteId = sRoulette->spriteIds[i + SPR_POKE_HEADERS] = CreateSprite(&sSpriteTemplates_PokeHeaders[i], (i * 24) + 148, 70, 30); gSprites[spriteId].animPaused = TRUE; } for (i = 0; i < ARRAY_COUNT(sSpriteTemplates_ColorHeaders); i++) @@ -3577,7 +3611,7 @@ static void SpriteCB_BoardIcon(struct Sprite *sprite) s16 cos; s16 sin; u32 matrixNum; - s16 angle = sRoulette->var24 + sprite->data[0]; + s16 angle = sRoulette->wheelAngle + sprite->data[0]; if (angle >= 360) angle -= 360; sin = Sin2(angle); @@ -3608,18 +3642,18 @@ static void CreateInterfaceSprites(void) gSprites[sRoulette->spriteIds[SPR_CREDIT]].animPaused = TRUE; for (i = 0; i < MAX_COIN_DIGITS; i++) { - sRoulette->spriteIds[i + SPR_CREDIT_DIG_1] = CreateSprite(&sSpriteTemplate_CreditDigit, i * 8 + 196, 24, 0); - gSprites[sRoulette->spriteIds[i + SPR_CREDIT_DIG_1]].invisible = TRUE; - gSprites[sRoulette->spriteIds[i + SPR_CREDIT_DIG_1]].animPaused = TRUE; + sRoulette->spriteIds[i + SPR_CREDIT_DIGITS] = CreateSprite(&sSpriteTemplate_CreditDigit, i * 8 + 196, 24, 0); + gSprites[sRoulette->spriteIds[i + SPR_CREDIT_DIGITS]].invisible = TRUE; + gSprites[sRoulette->spriteIds[i + SPR_CREDIT_DIGITS]].animPaused = TRUE; } sRoulette->spriteIds[SPR_MULTIPLIER] = CreateSprite(&sSpriteTemplate_Multiplier, 120, 68, 4); gSprites[sRoulette->spriteIds[SPR_MULTIPLIER]].animPaused = TRUE; for (i = 0; i < BALLS_PER_ROUND / 2; i++) { // Each ball counter sprite has 2 balls - sRoulette->spriteIds[i + SPR_BALL_COUNTER_1] = CreateSprite(&sSpriteTemplate_BallCounter, i * 16 + 192, 36, 4); - gSprites[sRoulette->spriteIds[i + SPR_BALL_COUNTER_1]].invisible = TRUE; - gSprites[sRoulette->spriteIds[i + SPR_BALL_COUNTER_1]].animPaused = TRUE; + sRoulette->spriteIds[i + SPR_BALL_COUNTER] = CreateSprite(&sSpriteTemplate_BallCounter, i * 16 + 192, 36, 4); + gSprites[sRoulette->spriteIds[i + SPR_BALL_COUNTER]].invisible = TRUE; + gSprites[sRoulette->spriteIds[i + SPR_BALL_COUNTER]].animPaused = TRUE; } sRoulette->spriteIds[SPR_WIN_SLOT_CURSOR] = CreateSprite(&sSpriteTemplate_Cursor, 152, 96, 9); gSprites[sRoulette->spriteIds[SPR_WIN_SLOT_CURSOR]].oam.priority = 1; @@ -3627,24 +3661,24 @@ static void CreateInterfaceSprites(void) gSprites[sRoulette->spriteIds[SPR_WIN_SLOT_CURSOR]].invisible = TRUE; } -static void SetCreditDigits(u16 r0) +static void SetCreditDigits(u16 num) { u8 i; u16 d = 1000; - bool8 v = FALSE; + bool8 printZero = FALSE; for (i = 0; i < MAX_COIN_DIGITS; i++) { - u8 t = r0 / d; - gSprites[sRoulette->spriteIds[i + SPR_CREDIT_DIG_1]].invisible = TRUE; - if (t > 0 || v || i == MAX_COIN_DIGITS - 1) + u8 digit = num / d; + gSprites[sRoulette->spriteIds[i + SPR_CREDIT_DIGITS]].invisible = TRUE; + if (digit > 0 || printZero || i == MAX_COIN_DIGITS - 1) { - gSprites[sRoulette->spriteIds[i + SPR_CREDIT_DIG_1]].invisible = FALSE; - gSprites[sRoulette->spriteIds[i + SPR_CREDIT_DIG_1]].oam.tileNum = - gSprites[sRoulette->spriteIds[i + SPR_CREDIT_DIG_1]].sheetTileStart - + (*gSprites[sRoulette->spriteIds[i + SPR_CREDIT_DIG_1]].anims + t)->type; - v = TRUE; + gSprites[sRoulette->spriteIds[i + SPR_CREDIT_DIGITS]].invisible = FALSE; + gSprites[sRoulette->spriteIds[i + SPR_CREDIT_DIGITS]].oam.tileNum = + gSprites[sRoulette->spriteIds[i + SPR_CREDIT_DIGITS]].sheetTileStart + + (*gSprites[sRoulette->spriteIds[i + SPR_CREDIT_DIGITS]].anims + digit)->type; + printZero = TRUE; } - r0 = r0 % d; + num = num % d; d = d / 10; } } @@ -3660,12 +3694,12 @@ static u8 GetMultiplierAnimId(u8 selectionId) switch (sGridSelections[selectionId].baseMultiplier) { case NUM_BOARD_COLORS: - selectionId = selectionId / 5 - 1; + selectionId = GET_ROW_IDX(selectionId); if (sRoulette->colorHits[selectionId] > 3) return 0; return animIds[sRoulette->colorHits[selectionId] + 1]; case NUM_BOARD_POKES: - selectionId--; + selectionId = GET_COL_IDX(selectionId); if (sRoulette->pokeHits[selectionId] > 2) return 0; return animIds[sRoulette->pokeHits[selectionId] + 2]; @@ -3695,10 +3729,10 @@ static void SetBallCounterNumLeft(u8 numBalls) case 6: for (i = 0; i < BALLS_PER_ROUND / 2; i++) { - gSprites[sRoulette->spriteIds[i + SPR_BALL_COUNTER_1]].invisible = FALSE; - gSprites[sRoulette->spriteIds[i + SPR_BALL_COUNTER_1]].oam.tileNum = - gSprites[sRoulette->spriteIds[i + SPR_BALL_COUNTER_1]].sheetTileStart - + (*gSprites[sRoulette->spriteIds[i + SPR_BALL_COUNTER_1]].anims)->type; + gSprites[sRoulette->spriteIds[i + SPR_BALL_COUNTER]].invisible = FALSE; + gSprites[sRoulette->spriteIds[i + SPR_BALL_COUNTER]].oam.tileNum = + gSprites[sRoulette->spriteIds[i + SPR_BALL_COUNTER]].sheetTileStart + + (*gSprites[sRoulette->spriteIds[i + SPR_BALL_COUNTER]].anims)->type; } break; case 5: @@ -3730,16 +3764,16 @@ static void SetBallCounterNumLeft(u8 numBalls) default: for (i = 0; i < BALLS_PER_ROUND / 2; i++) { - gSprites[sRoulette->spriteIds[i + SPR_BALL_COUNTER_1]].oam.tileNum = - gSprites[sRoulette->spriteIds[i + SPR_BALL_COUNTER_1]].sheetTileStart - + (*gSprites[sRoulette->spriteIds[i + SPR_BALL_COUNTER_1]].anims + t + 2)->type; + gSprites[sRoulette->spriteIds[i + SPR_BALL_COUNTER]].oam.tileNum = + gSprites[sRoulette->spriteIds[i + SPR_BALL_COUNTER]].sheetTileStart + + (*gSprites[sRoulette->spriteIds[i + SPR_BALL_COUNTER]].anims + t + 2)->type; } } } static void SpriteCB_GridSquare(struct Sprite *sprite) { - sprite->pos2.x = sRoulette->var26; + sprite->pos2.x = sRoulette->gridX; } static void CreateBoardCenterSprite(void) @@ -3752,7 +3786,7 @@ static void CreateBoardCenterSprite(void) s.tag = sSpriteSheet_BoardCenter.tag; LoadSpriteSheet(&s); spriteId = CreateSprite(&sSpriteTemplate_BoardCenter, 116, 80, 81); - gSprites[spriteId].data[0] = sRoulette->var24; + gSprites[spriteId].data[0] = sRoulette->wheelAngle; gSprites[spriteId].data[1] = 0; gSprites[spriteId].animPaused = TRUE; gSprites[spriteId].affineAnimPaused = TRUE; @@ -3763,10 +3797,10 @@ static void SpriteCB_BoardCenter(struct Sprite *sprite) { u32 t = sprite->oam.matrixNum; struct OamMatrix *m = &gOamMatrices[0]; - m[t].d = sRoulette->var2C.a; - m[t].a = sRoulette->var2C.a; - m[t].b = sRoulette->var2C.b; - m[t].c = sRoulette->var2C.c; + m[t].d = sRoulette->wheelRotation.a; + m[t].a = sRoulette->wheelRotation.a; + m[t].b = sRoulette->wheelRotation.b; + m[t].c = sRoulette->wheelRotation.c; } static void CreateBoardBallSprites(void) @@ -3785,33 +3819,32 @@ static void CreateBoardBallSprites(void) static void HideBoardBalls(void) { - u8 t = sRoulette->spriteIds[SPR_BALL_1]; + u8 spriteId = sRoulette->spriteIds[SPR_BALL_1]; u8 i; for (i = 0; i < BALLS_PER_ROUND; i++) { u8 j; - gSprites[t].invisible = TRUE; - gSprites[t].callback = &SpriteCallbackDummy; - StartSpriteAnim(&gSprites[t], 0); + gSprites[spriteId].invisible = TRUE; + gSprites[spriteId].callback = &SpriteCallbackDummy; + StartSpriteAnim(&gSprites[spriteId], 0); for (j = 0; j < 8; j++) - { - gSprites[t].data[j] = 0; - } - t++; + gSprites[spriteId].data[j] = 0; + + spriteId++; } } static s16 sub_8143AC8(struct Sprite *sprite) { - if (sRoulette->var24 > sprite->data[3]) + if (sRoulette->wheelAngle > sprite->data[3]) { - sprite->data[6] = 360 - sRoulette->var24 + sprite->data[3]; + sprite->data[6] = 360 - sRoulette->wheelAngle + sprite->data[3]; if (sprite->data[6] >= 360) sprite->data[6] -= 360; } else { - sprite->data[6] = sprite->data[3] - sRoulette->var24; + sprite->data[6] = sprite->data[3] - sRoulette->wheelAngle; } return sprite->data[6]; @@ -3819,8 +3852,8 @@ static s16 sub_8143AC8(struct Sprite *sprite) static u8 sub_8143B14(struct Sprite *sprite) { - sRoulette->var7E = sub_8143AC8(sprite) / 30.0f; - return sRoulette->var7E; + sRoulette->hitSlot = sub_8143AC8(sprite) / 30.0f; + return sRoulette->hitSlot; } static s16 sub_8143B48(struct Sprite *sprite) @@ -3874,7 +3907,7 @@ static void sub_8143B84(struct Sprite *sprite) static void sub_8143C90(struct Sprite *sprite) { s16 sin, cos; - sprite->data[3] = sRoulette->var24 + sprite->data[6]; + sprite->data[3] = sRoulette->wheelAngle + sprite->data[6]; if (sprite->data[3] >= 360) sprite->data[3] -= 360; sin = Sin2(sprite->data[3]); @@ -3899,9 +3932,9 @@ static void sub_8143CFC(struct Sprite *sprite) { if (sRoulette->var94 <= sRoulette->varA0 - 2.0f) { - sRoulette->var7D = 0xFF; - sRoulette->var03_7 = FALSE; - StartSpriteAnim(sprite, sprite->animCmdIndex + 0x3); + sRoulette->ballState = BALL_STATE_LANDED; + sRoulette->ballRolling = FALSE; + StartSpriteAnim(sprite, sprite->animCmdIndex + 3); sub_8143B14(sprite); sprite->data[4] = 30; sub_8143AC8(sprite); @@ -3916,8 +3949,8 @@ static void sub_8143CFC(struct Sprite *sprite) { if (sRoulette->var94 >= sRoulette->varA0 - 2.0f) { - sRoulette->var7D = 0xFF; - sRoulette->var03_7 = FALSE; + sRoulette->ballState = BALL_STATE_LANDED; + sRoulette->ballRolling = FALSE; StartSpriteAnim(sprite, sprite->animCmdIndex + 3); sub_8143B14(sprite); sprite->data[4] = 30; @@ -3943,8 +3976,8 @@ static void SpriteCB_Shroomish(struct Sprite *sprite) if (sprite->data[0] != 1) { f0 = sprite->data[7]; - f1 = (f0 * gUnknown_085B6348[sRoulette->tableId].var01 + (gUnknown_085B6348[sRoulette->tableId].var02 - 1)); - f2 = (f0 / gUnknown_085B6348[sRoulette->tableId].var0C); + f1 = (f0 * sRouletteTables[sRoulette->tableId].var01 + (sRouletteTables[sRoulette->tableId].var02 - 1)); + f2 = (f0 / sRouletteTables[sRoulette->tableId].var0C); } else { @@ -3955,8 +3988,8 @@ static void SpriteCB_Shroomish(struct Sprite *sprite) if (sprite->data[0] != 0) { f0 = sprite->data[7]; - f1 = (f0 * gUnknown_085B6348[sRoulette->tableId].var01 + (gUnknown_085B6348[sRoulette->tableId].var02 - 1)); - f2 = -(f0 / gUnknown_085B6348[sRoulette->tableId].var0C); + f1 = (f0 * sRouletteTables[sRoulette->tableId].var01 + (sRouletteTables[sRoulette->tableId].var02 - 1)); + f2 = -(f0 / sRouletteTables[sRoulette->tableId].var0C); } else { @@ -3984,8 +4017,8 @@ static void sub_8143FA4(struct Sprite *sprite) sprite->data[2]++; if (sprite->data[2] > 29 && sprite->pos2.y >= 0) { - sRoulette->var7D = 0xFF; - sRoulette->var03_7 = FALSE; + sRoulette->ballState = BALL_STATE_LANDED; + sRoulette->ballRolling = FALSE; StartSpriteAnim(sprite, sprite->animCmdIndex + 3); sub_8143B14(sprite); sprite->data[4] = 30; @@ -3993,7 +4026,7 @@ static void sub_8143FA4(struct Sprite *sprite) sprite->data[6] = (sprite->data[6] / 30) * 30 + 15; sprite->callback = sub_8143C90; m4aSongNumStartOrChange(SE_HASHI); - sRoulette->var03_6 = TRUE; + sRoulette->ballUnstuck = TRUE; } } @@ -4081,8 +4114,8 @@ static void prev_quest_read_x24_hm_usage(struct Sprite *sprite) { if (!sprite->data[0]) { - sRoulette->var7D = 0xFF; - sRoulette->var03_7 = FALSE; + sRoulette->ballState = BALL_STATE_LANDED; + sRoulette->ballRolling = FALSE; StartSpriteAnim(sprite, sprite->animCmdIndex + 3); sub_8143B14(sprite); sprite->data[4] = 30; @@ -4105,10 +4138,10 @@ static void sub_8144264(struct Sprite *sprite) sub_8143B84(sprite); sprite->data[2] = 0; sub_8143B14(sprite); - if (!(sRouletteSlots[sRoulette->var7E].flag & sRoulette->hitFlags)) + if (!(sRouletteSlots[sRoulette->hitSlot].flag & sRoulette->hitFlags)) { - sRoulette->var7D = 0xFF; - sRoulette->var03_7 = FALSE; + sRoulette->ballState = BALL_STATE_LANDED; + sRoulette->ballRolling = FALSE; StartSpriteAnim(sprite, sprite->animCmdIndex + 3); sub_8143B14(sprite); sprite->data[4] = 30; @@ -4126,30 +4159,30 @@ static void sub_8144264(struct Sprite *sprite) if (z) { sRoulette->var8C = 0.0f; - sRoulette->var7F = slotId = (sRoulette->var7E + 1) % NUM_ROULETTE_SLOTS; + sRoulette->var7F = slotId = (sRoulette->hitSlot + 1) % NUM_ROULETTE_SLOTS; } else { float temp; - sRoulette->var8C = (temp = gUnknown_085B6348[sRoulette->tableId].var1C) * 2.0f; - slotId = (sRoulette->var7E + NUM_ROULETTE_SLOTS - 1) % NUM_ROULETTE_SLOTS; - sRoulette->var7F = sRoulette->var7E; + sRoulette->var8C = (temp = sRouletteTables[sRoulette->tableId].var1C) * 2.0f; + slotId = (sRoulette->hitSlot + NUM_ROULETTE_SLOTS - 1) % NUM_ROULETTE_SLOTS; + sRoulette->var7F = sRoulette->hitSlot; } if (sRouletteSlots[slotId].flag & sRoulette->hitFlags) { sprite->data[0] = 1; - sprite->data[2] = gUnknown_085B6348[sRoulette->tableId].var02; + sprite->data[2] = sRouletteTables[sRoulette->tableId].var02; } else { sprite->data[0] = sRouletteSlots[slotId].flag & sRoulette->hitFlags; if (sRoulette->tableId) { - sprite->data[2] = gUnknown_085B6348[sRoulette->tableId].var01; + sprite->data[2] = sRouletteTables[sRoulette->tableId].var01; } else { - sprite->data[2] = gUnknown_085B6348[sRoulette->tableId].var02; + sprite->data[2] = sRouletteTables[sRoulette->tableId].var02; if (z) sRoulette->var8C = 0.5f; else @@ -4172,8 +4205,8 @@ static void sub_8144410(struct Sprite *sprite) if (!sub_8143B48(sprite)) { sRoulette->var90 = 0.0f; - sRoulette->var8C -= (float)(gUnknown_085B6348[sRoulette->tableId].var03) - / (gUnknown_085B6348[sRoulette->tableId].var04 + 1); + sRoulette->var8C -= (float)(sRouletteTables[sRoulette->tableId].wheelSpeed) + / (sRouletteTables[sRoulette->tableId].wheelDelay + 1); sprite->data[1] = 4; sprite->callback = sub_8144264; } @@ -4257,8 +4290,8 @@ static void CreateShroomishSprite(struct Sprite *sprite) gSprites[sRoulette->spriteIds[i + SPR_CLEAR_MON]].data[5] = sRoulette->spriteIds[SPR_CLEAR_MON_SHADOW_1]; gSprites[sRoulette->spriteIds[i + SPR_CLEAR_MON]].data[6] = sRoulette->spriteIds[SPR_CLEAR_MON_SHADOW_2]; gSprites[sRoulette->spriteIds[i + SPR_CLEAR_MON]].data[2] = t; - gSprites[sRoulette->spriteIds[i + SPR_CLEAR_MON]].data[3] = (sprite->data[7] * gUnknown_085B6348[sRoulette->tableId].var01) + - (gUnknown_085B6348[sRoulette->tableId].var02 + 0xFFFF); + gSprites[sRoulette->spriteIds[i + SPR_CLEAR_MON]].data[3] = (sprite->data[7] * sRouletteTables[sRoulette->tableId].var01) + + (sRouletteTables[sRoulette->tableId].var02 + 0xFFFF); } gSprites[sRoulette->spriteIds[SPR_CLEAR_MON_SHADOW_1]].coordOffsetEnabled = TRUE; sRoulette->var38 = sprite; @@ -4279,7 +4312,7 @@ static void CreateTaillowSprite(struct Sprite *sprite) sRoulette->spriteIds[SPR_CLEAR_MON_SHADOW_1] = CreateSprite(&sSpriteTemplate_TaillowShadow, s[sprite->data[0]][0], s[sprite->data[0]][1], 51); gSprites[sRoulette->spriteIds[SPR_CLEAR_MON_SHADOW_1]].affineAnimPaused = TRUE; gSprites[sRoulette->spriteIds[SPR_CLEAR_MON_SHADOW_1]].animPaused = TRUE; - sprite->data[7] = (t * gUnknown_085B6348[sRoulette->tableId].var01) + (gUnknown_085B6348[sRoulette->tableId].var10 + 45); + sprite->data[7] = (t * sRouletteTables[sRoulette->tableId].var01) + (sRouletteTables[sRoulette->tableId].var10 + 45); for (; i < 2; i++) { gSprites[sRoulette->spriteIds[SPR_CLEAR_MON + i]].data[4] = sRoulette->spriteIds[SPR_CLEAR_MON]; @@ -4303,13 +4336,13 @@ static void sub_8144A24(struct Sprite *sprite) u8 s[10] = {}; u16 rand = Random(); - sRoulette->var7D = 1; - sRoulette->var03_5 = TRUE; - sRoulette->var03_6 = FALSE; - sRoulette->var7E = 0xFF; + sRoulette->ballState = BALL_STATE_STUCK; + sRoulette->ballStuck = TRUE; + sRoulette->ballUnstuck = FALSE; + sRoulette->hitSlot = 0xFF; sRoulette->var88 = sprite->data[3]; sRoulette->var98 = 0.0f; - sRoulette->var8C = gUnknown_085B6348[sRoulette->tableId].var1C; + sRoulette->var8C = sRouletteTables[sRoulette->tableId].var1C; o = (sRoulette->tableId * 30 + 33) + (1 - sRoulette->useTaillow) * 15; for (i = 0; i < 4; i++) @@ -4342,7 +4375,7 @@ static void sub_8144A24(struct Sprite *sprite) } val = 2; - z = (sRoulette->var7F + 2) % 12; + z = (sRoulette->var7F + 2) % NUM_ROULETTE_SLOTS; if (sRoulette->useTaillow == TRUE && sRoulette->tableId == 1) j += 6; @@ -4395,8 +4428,8 @@ static void sub_8144C70(struct Sprite *sprite) sprite->pos1.x -= 2; if (sprite->pos1.x < -16) { - if (!sRoulette->var03_6) - sRoulette->var03_6 = TRUE; + if (!sRoulette->ballUnstuck) + sRoulette->ballUnstuck = TRUE; DestroySprite(sprite); sRoulette->var01 = 0; sRoulette->var34 = gUnknown_085B7B1A[0]; @@ -4458,12 +4491,12 @@ static void sub_8144E60(struct Sprite *sprite) { if (sRoulette->var38->data[0] == 0) { - if (sRoulette->var38->data[3] != gUnknown_085B6348[sRoulette->tableId].var08) + if (sRoulette->var38->data[3] != sRouletteTables[sRoulette->tableId].var08) return; } else { - if (sRoulette->var38->data[3] != gUnknown_085B6348[sRoulette->tableId].var08 + 180) + if (sRoulette->var38->data[3] != sRouletteTables[sRoulette->tableId].var08 + 180) return; } @@ -4481,12 +4514,12 @@ static void sub_8144E60(struct Sprite *sprite) if (sRoulette->var38->data[0] == 0) { - if (sRoulette->var38->data[3] != gUnknown_085B6348[sRoulette->tableId].var0A) + if (sRoulette->var38->data[3] != sRouletteTables[sRoulette->tableId].var0A) return; } else { - if (sRoulette->var38->data[3] != gUnknown_085B6348[sRoulette->tableId].var0A + 180) + if (sRoulette->var38->data[3] != sRouletteTables[sRoulette->tableId].var0A + 180) return; } @@ -4616,7 +4649,7 @@ static void SpriteCB_Taillow(struct Sprite *sprite) { if (sRoulette->var38->data[0] == 0) { - if (sRoulette->var38->data[3] == gUnknown_085B6348[sRoulette->tableId].var12 + 90) + if (sRoulette->var38->data[3] == sRouletteTables[sRoulette->tableId].var12 + 90) { gSprites[sprite->data[6]].data[1] = 52; gSprites[sprite->data[4]].data[1] = 52; @@ -4628,7 +4661,7 @@ static void SpriteCB_Taillow(struct Sprite *sprite) } else { - if (sRoulette->var38->data[3] == gUnknown_085B6348[sRoulette->tableId].var14 + 270) + if (sRoulette->var38->data[3] == sRouletteTables[sRoulette->tableId].var14 + 270) { gSprites[sprite->data[6]].data[1] = 46; gSprites[sprite->data[4]].data[1] = 46; diff --git a/src/roulette_util.c b/src/roulette_util.c index c51330f21a..4e6977675d 100755 --- a/src/roulette_util.c +++ b/src/roulette_util.c @@ -4,6 +4,10 @@ #include "roulette_util.h" #include "util.h" +// "Roulette Util" is perhaps more accurately a general flashing util +// e.g. it handles fading the palettes for the color selections on the Roulette wheel +// but it also handles the "pulse blend" effect of Mirage Tower + void sub_8151678(struct UnkStruct0 *r0) { r0->var00 = 0; @@ -429,7 +433,8 @@ void UpdatePulseBlend(struct PulseBlend *pulseBlend) } } -void ClearGridSelectionRect(u16 *dest, u16 src, u8 left, u8 top, u8 width, u8 height) +// Below used for the Roulette grid +void ClearTilemapRect(u16 *dest, u16 src, u8 left, u8 top, u8 width, u8 height) { u16 *_dest; u8 i; @@ -446,7 +451,7 @@ void ClearGridSelectionRect(u16 *dest, u16 src, u8 left, u8 top, u8 width, u8 he } } -void SetGridSelectionRect(u16 *dest, u16 *src, u8 left, u8 top, u8 width, u8 height) +void SetTilemapRect(u16 *dest, u16 *src, u8 left, u8 top, u8 width, u8 height) { u16 *_dest; u16 *_src = src; From 868f831167cc20d47cd26292cf55f58dd862d4ae Mon Sep 17 00:00:00 2001 From: GriffinR Date: Mon, 3 Aug 2020 17:31:34 -0400 Subject: [PATCH 042/101] More roulette doc --- graphics_file_rules.mk | 2 +- include/roulette.h | 30 +- include/roulette_util.h | 32 +- src/roulette.c | 1597 ++++++++++++++++++++------------------- src/roulette_util.c | 22 +- 5 files changed, 878 insertions(+), 805 deletions(-) diff --git a/graphics_file_rules.mk b/graphics_file_rules.mk index f2d14ef3c0..019f382eb8 100644 --- a/graphics_file_rules.mk +++ b/graphics_file_rules.mk @@ -483,7 +483,7 @@ $(ROULETTEGFXDIR)/roulette_tilt.4bpp: $(ROULETTEGFXDIR)/shroomish.4bpp \ $(ROULETTEGFXDIR)/tailow.4bpp @cat $^ >$@ -$(ROULETTEGFXDIR)/board_icons.4bpp: $(ROULETTEGFXDIR)/wynaut.4bpp \ +$(ROULETTEGFXDIR)/wheel_icons.4bpp: $(ROULETTEGFXDIR)/wynaut.4bpp \ $(ROULETTEGFXDIR)/azurill.4bpp \ $(ROULETTEGFXDIR)/skitty.4bpp \ $(ROULETTEGFXDIR)/makuhita.4bpp diff --git a/include/roulette.h b/include/roulette.h index 71100d0d3e..c753f671c7 100755 --- a/include/roulette.h +++ b/include/roulette.h @@ -1,34 +1,6 @@ #ifndef GUARD_ROULETTE_H #define GUARD_ROULETTE_H -struct UnkStruct1 -{ - u16 var00; - u16 var02; - u8 var04; - u8 var05; - u8 var06; - s8 var07_0:5; - s8 var07_5:2; - s8 var07_7:1; -}; - -struct UnkStruct3 -{ - u8 var00_0:7; - u8 var00_7:1; - u8 var01; - s8 var02; - s8 var03; - struct UnkStruct1 var04; -}; - -struct UnkStruct0 -{ - u8 var00; - u8 var01; - u16 var02; //flag for each UnkStruct3 - struct UnkStruct3 var04[0x10]; -}; +void PlayRoulette(void); #endif // GUARD_ROULETTE_H diff --git a/include/roulette_util.h b/include/roulette_util.h index 2153b19f66..d18d22d0ff 100644 --- a/include/roulette_util.h +++ b/include/roulette_util.h @@ -1,8 +1,6 @@ #ifndef GUARD_ROULETTE_UTIL_H #define GUARD_ROULETTE_UTIL_H -#include "roulette.h" - struct PulseBlendSettings { u16 blendColor; @@ -35,6 +33,36 @@ struct PulseBlend struct PulseBlendPalette pulseBlendPalettes[16]; }; +struct UnkStruct1 +{ + u16 var00; + u16 var02; + u8 var04; + u8 var05; + u8 var06; + s8 var07_0:5; + s8 var07_5:2; + s8 var07_7:1; +}; + +struct UnkStruct3 +{ + u8 var00_0:7; + bool8 active:1; + u8 var01; + s8 var02; + s8 var03; + struct UnkStruct1 var04; +}; + +struct UnkStruct0 +{ + u8 var00; + u8 var01; + u16 var02; //flag for each UnkStruct3 + struct UnkStruct3 var04[0x10]; +}; + int InitPulseBlendPaletteSettings(struct PulseBlend *, const struct PulseBlendSettings *); void InitPulseBlend(struct PulseBlend *); void MarkUsedPulseBlendPalettes(struct PulseBlend *, u16, u8); diff --git a/src/roulette.c b/src/roulette.c index 20868f4ba8..cc14a67cd1 100644 --- a/src/roulette.c +++ b/src/roulette.c @@ -35,10 +35,17 @@ #define BALLS_PER_ROUND 6 -#define NUM_BOARD_COLORS 3 // Grid rows -#define NUM_BOARD_POKES 4 // Grid columns +// "Board" is used in this file to refer to both the wheel and the bet selection grid +#define NUM_BOARD_COLORS 3 // Rows on grid +#define NUM_BOARD_POKES 4 // Columns on grid #define NUM_ROULETTE_SLOTS (NUM_BOARD_COLORS * NUM_BOARD_POKES) +// The degree change between each slot on the roulette wheel +#define DEGREES_PER_SLOT (360 / NUM_ROULETTE_SLOTS) + +// Where in the slot the ball will drop when landing +#define SLOT_MIDPOINT (DEGREES_PER_SLOT / 2 - 1) + // IDs for grid selections when betting #define SELECTION_NONE 0 #define COL_WYNAUT 1 @@ -68,7 +75,7 @@ #define GET_ROW(selectionId)((selectionId) / (NUM_BOARD_POKES + 1) * (NUM_BOARD_POKES + 1)) // Get the col/row index from the selection ID -// e.g. GET_ROW_IDX(SQU_PURPLE_SKITTY) is 2 +// e.g. GET_ROW_IDX(SQU_PURPLE_SKITTY) is 2 (purple being the 3rd row) #define GET_COL_IDX(selectionId)(selectionId - 1) #define GET_ROW_IDX(selectionId)(selectionId / 5 - 1) @@ -98,6 +105,7 @@ #define PALTAG_SHADOW 1 #define PALTAG_BALL 2 #define PALTAG_BALL_COUNTER 3 +#define PALTAG_CURSOR 4 #define PALTAG_INTERFACE 5 #define PALTAG_SHROOMISH 6 #define PALTAG_TAILLOW 7 @@ -107,10 +115,10 @@ #define PALTAG_SKITTY 11 #define PALTAG_MAKUHITA 12 -#define GFXTAG_BOARD_ICONS 0 +#define GFXTAG_WHEEL_ICONS 0 #define GFXTAG_HEADERS 4 #define GFXTAG_GRID_ICONS 5 -#define GFXTAG_BOARD_CENTER 6 +#define GFXTAG_WHEEL_CENTER 6 #define GFXTAG_CREDIT 7 #define GFXTAG_CREDIT_DIGIT 8 #define GFXTAG_MULTIPLIER 9 @@ -122,11 +130,15 @@ // 2 different Roulette tables with 2 different rates (normal vs service day special) // & 1 gets which table, >> 7 gets if ROULETTE_SPECIAL_RATE is set -#define GET_TABLE_ID(var)(((var) & 1) + (((var) >> 7) * 2)) +#define GET_MIN_BET_ID(var)(((var) & 1) + (((var) >> 7) * 2)) +// Having Shroomish or Taillow in the party can make rolls more consistent in length +// It also increases the likelihood that, if they appear to unstick a ball, they'll move it to a slot the player bet on #define HAS_SHROOMISH (1 << 0) #define HAS_TAILLOW (1 << 1) +#define NO_DELAY 0xFFFF + enum { BALL_STATE_ROLLING, BALL_STATE_STUCK, @@ -140,27 +152,29 @@ enum { SELECT_STATE_ERASE = 0xFF, }; +// Roulette uses a large amount of sprites, and stores ids for these in a single array +// Many are looped over rather than referenced directly enum { - SPR_BALL_1, - SPR_BALL_2, - SPR_BALL_3, - SPR_BALL_4, - SPR_BALL_5, - SPR_BALL_6, - SPR_6, - SPR_BOARD_ICON_ORANGE_WYNAUT, - SPR_BOARD_ICON_GREEN_AZURILL, - SPR_BOARD_ICON_PURPLE_SKITTY, - SPR_BOARD_ICON_ORANGE_MAKUHITA, - SPR_BOARD_ICON_GREEN_WYNAUT, - SPR_BOARD_ICON_PURPLE_AZURILL, - SPR_BOARD_ICON_ORANGE_SKITTY, - SPR_BOARD_ICON_GREEN_MAKUHITA, - SPR_BOARD_ICON_PURPLE_WYNAUT, - SPR_BOARD_ICON_ORANGE_AZURILL, - SPR_BOARD_ICON_GREEN_SKITTY, - SPR_BOARD_ICON_PURPLE_MAKUHITA, - SPR_19, + SPR_WHEEL_BALL_1, + SPR_WHEEL_BALL_2, + SPR_WHEEL_BALL_3, + SPR_WHEEL_BALL_4, + SPR_WHEEL_BALL_5, + SPR_WHEEL_BALL_6, + SPR_WHEEL_CENTER, + SPR_WHEEL_ICON_ORANGE_WYNAUT, + SPR_WHEEL_ICON_GREEN_AZURILL, + SPR_WHEEL_ICON_PURPLE_SKITTY, + SPR_WHEEL_ICON_ORANGE_MAKUHITA, + SPR_WHEEL_ICON_GREEN_WYNAUT, + SPR_WHEEL_ICON_PURPLE_AZURILL, + SPR_WHEEL_ICON_ORANGE_SKITTY, + SPR_WHEEL_ICON_GREEN_MAKUHITA, + SPR_WHEEL_ICON_PURPLE_WYNAUT, + SPR_WHEEL_ICON_ORANGE_AZURILL, + SPR_WHEEL_ICON_GREEN_SKITTY, + SPR_WHEEL_ICON_PURPLE_MAKUHITA, + SPR_19, // Unused SPR_CREDIT, SPR_CREDIT_DIG_1, SPR_CREDIT_DIG_10, @@ -199,7 +213,7 @@ enum { SPR_CLEAR_MON, // Shroomish/Taillow SPR_CLEAR_MON_SHADOW_1, SPR_CLEAR_MON_SHADOW_2, - SPR_58, + SPR_58, // Here below unused SPR_59, SPR_60, SPR_61, @@ -208,43 +222,53 @@ enum { }; // Start points for sprite IDs that are looped over -#define SPR_BOARD_ICONS SPR_BOARD_ICON_ORANGE_WYNAUT +#define SPR_WHEEL_BALLS SPR_WHEEL_BALL_1 +#define SPR_WHEEL_ICONS SPR_WHEEL_ICON_ORANGE_WYNAUT #define SPR_BALL_COUNTER SPR_BALL_COUNTER_1 #define SPR_CREDIT_DIGITS SPR_CREDIT_DIG_1 #define SPR_GRID_ICONS SPR_GRID_ICON_ORANGE_WYNAUT #define SPR_POKE_HEADERS SPR_POKE_HEADER_1 +#define SPR_COLOR_HEADERS SPR_COLOR_HEADER_1 +#define SPR_GRID_BALLS SPR_GRID_BALL_1 + +struct Shroomish +{ + u16 startAngle; + u16 dropAngle; + u16 fallSlowdown; +}; + +struct Taillow +{ + u16 baseDropDelay; + u16 rightStartAngle; + u16 leftStartAngle; +}; struct RouletteTable { u8 minBet; // Never read - u8 var01; - u8 var02; + u8 randDistanceHigh; + u8 randDistanceLow; u8 wheelSpeed; u8 wheelDelay; - u8 filler_05[3]; - u16 var08; - u16 var0A; - u16 var0C; - u8 filler_0E[2]; - u16 var10; - u16 var12; - u16 var14; - u8 filler_16[2]; - u16 var18; - u16 var1A; + struct Shroomish shroomish; + struct Taillow taillow; + u16 ballSpeed; + u16 baseTravelDist; float var1C; }; struct GridSelection { - u8 var00; + u8 spriteIdOffset; u8 baseMultiplier:4; u8 column:4; // Never read u8 row; // Never read u8 x; u8 y; u8 var05; // Never read - u8 var06; + u8 tilemapOffset; u32 flag; u32 inSelectionFlags; u16 var10; @@ -261,7 +285,7 @@ struct RouletteSlot static EWRAM_DATA struct Roulette { u8 unk0; // Never read - u8 var01; + u8 shroomishShadowTimer; u8 partySpeciesFlags; bool8 useTaillow:5; bool8 ballStuck:1; @@ -275,8 +299,8 @@ static EWRAM_DATA struct Roulette u8 pokeHits[NUM_BOARD_POKES]; u8 colorHits[NUM_BOARD_COLORS]; u8 minBet; - u8 curBallNum:4; // Never actually gets incremented - u8 unk:4; // Never read + u8 curBallNum:4; // Never actually gets incremented, tracked with tBallNum instead + u8 unk1:4; // Never read u8 betSelection[BALLS_PER_ROUND]; // Because curBallNum is used as the only index, only the first element is ever used (prev bet selections are never needed) u8 wheelDelayTimer; u8 wheelSpeed; @@ -286,23 +310,23 @@ static EWRAM_DATA struct Roulette s16 selectionRectDrawState; s16 updateGridHighlight; struct OamMatrix wheelRotation; - u16 var34; - struct Sprite *var38; + u16 shroomishShadowAlpha; + struct Sprite *ball; u8 spriteIds[MAX_SPRITES]; u8 curBallSpriteId; u8 ballState; u8 hitSlot; - u8 var7F; - s16 var80; // Never read - s16 var82; - u16 var84; - u16 var86; - float var88; - float var8C; - float var90; - float var94; - float var98; - float var9C; + u8 stuckHitSlot; + s16 ballTravelDist; // Never read + s16 ballTravelDistFast; + u16 ballTravelDistMed; + u16 ballTravelDistSlow; + float ballAngle; + float ballAngleSpeed; + float ballAngleAccel; + float ballDistToCenter; + float ballFallSpeed; + float ballFallAccel; float varA0; u8 playTaskId; u8 spinTaskId; @@ -339,7 +363,7 @@ static void Task_ClearBoard(u8); static void ExitRoulette(u8); static void Task_ExitRoulette(u8); static void StartTaskAfterDelayOrInput(u8, TaskFunc, u16, u16); -static void sub_8141FF4(u8); +static void ResetBallDataForNewSpin(u8); static void ResetHits(void); static void Task_AcceptMinBet(u8); static void Task_DeclineMinBet(u8); @@ -355,22 +379,22 @@ static void ShowHideGridIcons(bool8, u8); static void CreateGridBallSprites(void); static void ShowHideGridBalls(bool8, u8); static void ShowHideWinSlotCursor(u8); -static void CreateBoardIconSprites(void); -static void SpriteCB_BoardIcon(struct Sprite *); +static void CreateWheelIconSprites(void); +static void SpriteCB_WheelIcon(struct Sprite *); static void CreateInterfaceSprites(void); static void SetCreditDigits(u16); static void SetMultiplierSprite(u8); static void SetBallCounterNumLeft(u8); static void SpriteCB_GridSquare(struct Sprite *); -static void CreateBoardCenterSprite(void); -static void SpriteCB_BoardCenter(struct Sprite *); -static void CreateBoardBallSprites(void); -static void HideBoardBalls(void); -static void sub_81446AC(struct Sprite *); +static void CreateWheelCenterSprite(void); +static void SpriteCB_WheelCenter(struct Sprite *); +static void CreateWheelBallSprites(void); +static void HideWheelBalls(void); +static void SpriteCB_RollBall_Start(struct Sprite *); static void CreateShroomishSprite(struct Sprite *); static void CreateTaillowSprite(struct Sprite *); -static void sub_8144A24(struct Sprite *); -static void sub_8144E60(struct Sprite *); +static void SetBallStuck(struct Sprite *); +static void SpriteCB_Shroomish(struct Sprite *); static void SpriteCB_Taillow(struct Sprite *); static const u16 sWheel_Pal[] = INCBIN_U16("graphics/roulette/wheel.gbapal"); // also palette for grid @@ -424,265 +448,264 @@ static const struct WindowTemplate sWindowTemplates[] = //DUMMY_WIN_TEMPLATE }; -// var00, sprite id offset (from 7)? static const struct GridSelection sGridSelections[NUM_GRID_SELECTIONS + 1] = { [SELECTION_NONE] = { - .var00 = 0xFF, + .spriteIdOffset = 0xFF, .baseMultiplier = 0, .column = 0, .row = 0, .x = 7, .y = 7, .var05 = 0, - .var06 = 0, + .tilemapOffset = 0, .flag = 0, .inSelectionFlags = 0, .var10 = 0x0, }, [COL_WYNAUT] = { - .var00 = 12, + .spriteIdOffset = 12, .baseMultiplier = NUM_BOARD_POKES, .column = 1, .row = 0, .x = 17, .y = 7, .var05 = 0, - .var06 = 0, + .tilemapOffset = 0, .flag = F_WYNAUT_COL, .inSelectionFlags = F_WYNAUT_COL | F_ORANGE_WYNAUT | F_GREEN_WYNAUT | F_PURPLE_WYNAUT, .var10 = 0xE000, }, [COL_AZURILL] = { - .var00 = 13, + .spriteIdOffset = 13, .baseMultiplier = NUM_BOARD_POKES, .column = 2, .row = 0, .x = 20, .y = 7, .var05 = 0, - .var06 = 0, + .tilemapOffset = 0, .flag = F_AZURILL_COL, .inSelectionFlags = F_AZURILL_COL | F_ORANGE_AZURILL | F_GREEN_AZURILL | F_PURPLE_AZURILL, .var10 = 0xE000, }, [COL_SKITTY] = { - .var00 = 14, + .spriteIdOffset = 14, .baseMultiplier = NUM_BOARD_POKES, .column = 3, .row = 0, .x = 23, .y = 7, .var05 = 0, - .var06 = 0, + .tilemapOffset = 0, .flag = F_SKITTY_COL, .inSelectionFlags = F_SKITTY_COL | F_ORANGE_SKITTY | F_GREEN_SKITTY | F_PURPLE_SKITTY, .var10 = 0xE000, }, [COL_MAKUHITA] = { - .var00 = 15, + .spriteIdOffset = 15, .baseMultiplier = NUM_BOARD_POKES, .column = 4, .row = 0, .x = 26, .y = 7, .var05 = 0, - .var06 = 0, + .tilemapOffset = 0, .flag = F_MAKUHITA_COL, .inSelectionFlags = F_MAKUHITA_COL | F_ORANGE_MAKUHITA | F_GREEN_MAKUHITA | F_PURPLE_MAKUHITA, .var10 = 0xE000, }, [ROW_ORANGE] = { - .var00 = 16, + .spriteIdOffset = 16, .baseMultiplier = NUM_BOARD_COLORS, .column = 0, .row = 1, .x = 14, .y = 10, .var05 = 0, - .var06 = 12, + .tilemapOffset = 12, .flag = F_ORANGE_ROW, .inSelectionFlags = F_ORANGE_ROW | F_ORANGE_WYNAUT | F_ORANGE_AZURILL | F_ORANGE_SKITTY | F_ORANGE_MAKUHITA, .var10 = 0x249, }, [SQU_ORANGE_WYNAUT] = { - .var00 = 0, + .spriteIdOffset = 0, .baseMultiplier = NUM_ROULETTE_SLOTS, .column = 1, .row = 1, .x = 17, .y = 10, .var05 = 3, - .var06 = 3, + .tilemapOffset = 3, .flag = F_ORANGE_WYNAUT, .inSelectionFlags = F_ORANGE_WYNAUT, .var10 = 0x2001, }, [SQU_ORANGE_AZURILL] = { - .var00 = 9, + .spriteIdOffset = 9, .baseMultiplier = NUM_ROULETTE_SLOTS, .column = 2, .row = 1, .x = 20, .y = 10, .var05 = 3, - .var06 = 3, + .tilemapOffset = 3, .flag = F_ORANGE_AZURILL, .inSelectionFlags = F_ORANGE_AZURILL, .var10 = 0x2200, }, [SQU_ORANGE_SKITTY] = { - .var00 = 6, + .spriteIdOffset = 6, .baseMultiplier = NUM_ROULETTE_SLOTS, .column = 3, .row = 1, .x = 23, .y = 10, .var05 = 3, - .var06 = 3, + .tilemapOffset = 3, .flag = F_ORANGE_SKITTY, .inSelectionFlags = F_ORANGE_SKITTY, .var10 = 0x2040, }, [SQU_ORANGE_MAKUHITA] = { - .var00 = 3, + .spriteIdOffset = 3, .baseMultiplier = NUM_ROULETTE_SLOTS, .column = 4, .row = 1, .x = 26, .y = 10, .var05 = 3, - .var06 = 3, + .tilemapOffset = 3, .flag = F_ORANGE_MAKUHITA, .inSelectionFlags = F_ORANGE_MAKUHITA, .var10 = 0x2008, }, [ROW_GREEN] = { - .var00 = 17, + .spriteIdOffset = 17, .baseMultiplier = NUM_BOARD_COLORS, .column = 0, .row = 2, .x = 14, .y = 13, .var05 = 3, - .var06 = 15, + .tilemapOffset = 15, .flag = F_GREEN_ROW, .inSelectionFlags = F_GREEN_ROW | F_GREEN_WYNAUT | F_GREEN_AZURILL | F_GREEN_SKITTY | F_GREEN_MAKUHITA, .var10 = 0x492, }, [SQU_GREEN_WYNAUT] = { - .var00 = 4, + .spriteIdOffset = 4, .baseMultiplier = NUM_ROULETTE_SLOTS, .column = 1, .row = 2, .x = 17, .y = 13, .var05 = 6, - .var06 = 6, + .tilemapOffset = 6, .flag = F_GREEN_WYNAUT, .inSelectionFlags = F_GREEN_WYNAUT, .var10 = 0x2010, }, [SQU_GREEN_AZURILL] = { - .var00 = 1, + .spriteIdOffset = 1, .baseMultiplier = NUM_ROULETTE_SLOTS, .column = 2, .row = 2, .x = 20, .y = 13, .var05 = 6, - .var06 = 6, + .tilemapOffset = 6, .flag = F_GREEN_AZURILL, .inSelectionFlags = F_GREEN_AZURILL, .var10 = 0x2002, }, [SQU_GREEN_SKITTY] = { - .var00 = 10, + .spriteIdOffset = 10, .baseMultiplier = NUM_ROULETTE_SLOTS, .column = 3, .row = 2, .x = 23, .y = 13, .var05 = 6, - .var06 = 6, + .tilemapOffset = 6, .flag = F_GREEN_SKITTY, .inSelectionFlags = F_GREEN_SKITTY, .var10 = 0x2400, }, [SQU_GREEN_MAKUHITA] = { - .var00 = 7, + .spriteIdOffset = 7, .baseMultiplier = NUM_ROULETTE_SLOTS, .column = 4, .row = 2, .x = 26, .y = 13, .var05 = 6, - .var06 = 6, + .tilemapOffset = 6, .flag = F_GREEN_MAKUHITA, .inSelectionFlags = F_GREEN_MAKUHITA, .var10 = 0x2080, }, [ROW_PURPLE] = { - .var00 = 18, + .spriteIdOffset = 18, .baseMultiplier = NUM_BOARD_COLORS, .column = 0, .row = 3, .x = 14, .y = 16, .var05 = 6, - .var06 = 18, + .tilemapOffset = 18, .flag = F_PURPLE_ROW, .inSelectionFlags = F_PURPLE_ROW | F_PURPLE_WYNAUT | F_PURPLE_AZURILL | F_PURPLE_SKITTY | F_PURPLE_MAKUHITA, .var10 = 0x924, }, [SQU_PURPLE_WYNAUT] = { - .var00 = 8, + .spriteIdOffset = 8, .baseMultiplier = NUM_ROULETTE_SLOTS, .column = 1, .row = 3, .x = 17, .y = 16, .var05 = 9, - .var06 = 9, + .tilemapOffset = 9, .flag = F_PURPLE_WYNAUT, .inSelectionFlags = F_PURPLE_WYNAUT, .var10 = 0x2100, }, [SQU_PURPLE_AZURILL] = { - .var00 = 5, + .spriteIdOffset = 5, .baseMultiplier = NUM_ROULETTE_SLOTS, .column = 2, .row = 3, .x = 20, .y = 16, .var05 = 9, - .var06 = 9, + .tilemapOffset = 9, .flag = F_PURPLE_AZURILL, .inSelectionFlags = F_PURPLE_AZURILL, .var10 = 0x2020, }, [SQU_PURPLE_SKITTY] = { - .var00 = 2, + .spriteIdOffset = 2, .baseMultiplier = NUM_ROULETTE_SLOTS, .column = 3, .row = 3, .x = 23, .y = 16, .var05 = 9, - .var06 = 9, + .tilemapOffset = 9, .flag = F_PURPLE_SKITTY, .inSelectionFlags = F_PURPLE_SKITTY, .var10 = 0x2004, }, [SQU_PURPLE_MAKUHITA] = { - .var00 = 11, + .spriteIdOffset = 11, .baseMultiplier = NUM_ROULETTE_SLOTS, .column = 4, .row = 3, .x = 26, .y = 16, .var05 = 9, - .var06 = 9, + .tilemapOffset = 9, .flag = F_PURPLE_MAKUHITA, .inSelectionFlags = F_PURPLE_MAKUHITA, .var10 = 0x2800, @@ -771,35 +794,43 @@ static const struct RouletteTable sRouletteTables[] = // Left table { .minBet = 1, - .var01 = 60, - .var02 = 30, + .randDistanceHigh = DEGREES_PER_SLOT * 2, + .randDistanceLow = DEGREES_PER_SLOT, .wheelSpeed = 1, .wheelDelay = 1, - .var08 = 45, - .var0A = 30, - .var0C = 1, - .var10 = 75, - .var12 = 27, - .var14 = 24, - .var18 = 10, - .var1A = 360, + .shroomish = { + .startAngle = 45, + .dropAngle = 30, + .fallSlowdown = 1, + }, + .taillow = { + .baseDropDelay = 75, + .rightStartAngle = 27, + .leftStartAngle = 24, + }, + .ballSpeed = 10, + .baseTravelDist = 360, .var1C = -0.5f }, // Right table { .minBet = 3, - .var01 = 30, - .var02 = 15, + .randDistanceHigh = DEGREES_PER_SLOT, + .randDistanceLow = DEGREES_PER_SLOT / 2, .wheelSpeed = 1, .wheelDelay = 0, - .var08 = 75, - .var0A = 60, - .var0C = 2, - .var10 = 0, - .var12 = 54, - .var14 = 48, - .var18 = 10, - .var1A = 270, + .shroomish = { + .startAngle = 75, + .dropAngle = 60, + .fallSlowdown = 2, + }, + .taillow = { + .baseDropDelay = 0, + .rightStartAngle = 54, + .leftStartAngle = 48, + }, + .ballSpeed = 10, + .baseTravelDist = 270, .var1C = -1.0f } }; @@ -938,7 +969,7 @@ static const struct UnkStruct1 gUnknown_085B6388[NUM_ROULETTE_SLOTS + 1] = }, }; -static const struct UnkStruct1 gUnknown_085B63F0[] = +static const struct UnkStruct1 gUnknown_085B63F0[NUM_BOARD_COLORS] = { { .var00 = 0x53FF, @@ -1001,8 +1032,8 @@ static void VBlankCB_Roulette(void) UpdateWheelPosition(); SetGpuReg(REG_OFFSET_BG1HOFS, 0x200 - sRoulette->gridX); - if (sRoulette->var01) - SetGpuReg(REG_OFFSET_BLDALPHA, sRoulette->var34); + if (sRoulette->shroomishShadowTimer) + SetGpuReg(REG_OFFSET_BLDALPHA, sRoulette->shroomishShadowAlpha); if (sRoulette->updateGridHighlight) { @@ -1058,7 +1089,7 @@ static void FreeRoulette(void) FREE_AND_SET_NULL(sRoulette); } -static void sub_8140470(void) +static void InitRouletteTableData(void) { u8 i; u16 bgColors[3] = {RGB(24, 4, 10), RGB(10, 19, 6), RGB(24, 4, 10)}; // 3rd is never used, same as 1st @@ -1071,7 +1102,7 @@ static void sub_8140470(void) sRoulette->wheelSpeed = sRouletteTables[sRoulette->tableId].wheelSpeed; sRoulette->wheelDelay = sRouletteTables[sRoulette->tableId].wheelDelay; sRoulette->minBet = sTableMinBets[sRoulette->tableId + sRoulette->isSpecialRate * 2]; - sRoulette->unk = 1; + sRoulette->unk1 = 1; // Left table (with min bet of 1) has red background, other table has green if (sRoulette->minBet == 1) @@ -1107,6 +1138,7 @@ static void sub_8140470(void) #define tSelectionId data[4] #define tWonBet data[5] #define tBallNum data[6] +#define tTotalBallNum data[8] // Same as tBallNum but isn't cleared every 6 balls #define tConsecutiveWins data[11] #define tWinningSquare data[12] #define tCoins data[13] @@ -1147,17 +1179,17 @@ static void CB2_LoadRoulette(void) if (FreeTempTileDataBuffersIfPossible()) return; - sub_8140470(); + InitRouletteTableData(); CopyToBgTilemapBuffer(2, sWheel_Tilemap, 0, 0); break; case 5: LoadOrFreeMiscSpritePalettesAndSheets(FALSE); - CreateBoardBallSprites(); - CreateBoardCenterSprite(); + CreateWheelBallSprites(); + CreateWheelCenterSprite(); CreateInterfaceSprites(); CreateGridSprites(); CreateGridBallSprites(); - CreateBoardIconSprites(); + CreateWheelIconSprites(); break; case 6: AnimateSprites(); @@ -1225,12 +1257,12 @@ static void Task_StartPlaying(u8 taskId) BLDCNT_TGT2_BD); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(8, 8)); gTasks[taskId].tBallNum = 0; - sub_8141FF4(taskId); + ResetBallDataForNewSpin(taskId); ResetHits(); - HideBoardBalls(); + HideWheelBalls(); DrawGridBackground(SELECTION_NONE); SetBallCounterNumLeft(BALLS_PER_ROUND); - StartTaskAfterDelayOrInput(taskId, Task_ContinuePlaying, 0xFFFF, A_BUTTON | B_BUTTON); + StartTaskAfterDelayOrInput(taskId, Task_ContinuePlaying, NO_DELAY, A_BUTTON | B_BUTTON); } } @@ -1327,7 +1359,7 @@ static void Task_SelectFirstEmptySquare(u8 taskId) } } gTasks[taskId].tSelectionId = i; - sub_8141FF4(taskId); + ResetBallDataForNewSpin(taskId); DrawGridBackground(gTasks[taskId].tSelectionId); SetMultiplierSprite(gTasks[taskId].tSelectionId); FlashSelectionOnWheel(gTasks[taskId].tSelectionId); @@ -1389,8 +1421,8 @@ static void ProcessBetGridInput(u8 taskId) UpdateGridSelection(taskId); gTasks[taskId].data[1] = 0; PlaySE(SE_SELECT); - sub_8151A9C(&sRoulette->flashUtil, 0xFFFF); // Reset previous flashing wheel selections - sRoulette->flashUtil.var04[13].var00_7 = sRoulette->flashUtil.var04[14].var00_7 = sRoulette->flashUtil.var04[15].var00_7 = 0; + sub_8151A9C(&sRoulette->flashUtil, 0xFFFF); // Reset previous flashing wheel color selection + sRoulette->flashUtil.var04[13].active = sRoulette->flashUtil.var04[14].active = sRoulette->flashUtil.var04[15].active = FALSE; // Same as above, but for icon FlashSelectionOnWheel(gTasks[taskId].tSelectionId); // Switch all the poke (column) headers to gray outlines @@ -1401,7 +1433,7 @@ static void ProcessBetGridInput(u8 taskId) + (*gSprites[sRoulette->spriteIds[i + SPR_POKE_HEADERS]].anims)->type; } // If the current selection is a column with at least 1 unhit space, fill in the header - if ((u16)(gTasks[taskId].tSelectionId - 1) < COL_MAKUHITA && !(sRoulette->hitFlags & sGridSelections[gTasks[taskId].tSelectionId].flag) ) + if ((u16)(gTasks[taskId].tSelectionId - 1) < COL_MAKUHITA && !(sRoulette->hitFlags & sGridSelections[gTasks[taskId].tSelectionId].flag)) { headerOffset = gTasks[taskId].tSelectionId - 1; gSprites[sRoulette->spriteIds[headerOffset + SPR_POKE_HEADERS]].oam.tileNum = @@ -1411,7 +1443,7 @@ static void ProcessBetGridInput(u8 taskId) } } -static void Task_StartRound(u8 taskId) +static void Task_StartSpin(u8 taskId) { IncrementDailyRouletteUses(); sRoulette->selectionRectDrawState = SELECT_STATE_ERASE; @@ -1432,7 +1464,7 @@ static void Task_PlaceBet(u8 taskId) if ((gTasks[taskId].tCoins -= sRoulette->minBet) < 0) gTasks[taskId].tCoins = 0; SetCreditDigits(gTasks[taskId].tCoins); - gTasks[taskId].func = Task_StartRound; + gTasks[taskId].func = Task_StartSpin; } static void Task_HandleBetGridInput(u8 taskId) @@ -1476,8 +1508,11 @@ static void Task_SlideGridOffscreen(u8 taskId) { if (gTasks[taskId].data[1]-- > 0) { + // Slide wheel over if (gTasks[taskId].data[1] > 2) gSpriteCoordOffsetX += 2; + + // Slide grid over if ((sRoulette->gridX += 4) == 104) gSprites[sRoulette->spriteIds[SPR_MULTIPLIER]].callback = &SpriteCallbackDummy; } @@ -1490,7 +1525,12 @@ static void Task_SlideGridOffscreen(u8 taskId) } } -static u8 sub_814118C(u16 r0, u16 r1) +// Each table has a set base distance used to determine how far the ball will travel +// Each roll a random value is generated to add onto this distance +// Half the value returned by this function is the max distance that can be added on per roll +// i.e. the lower this value is, the closer the roll will be to a consistent distance +// Odds of a lower value increase as play continues, if the player has Shroomish and/or Taillow in the party, and dependent on the time +static u8 GetRandomForBallTravelDistance(u16 ballNum, u16 rand) { switch (sRoulette->partySpeciesFlags) { @@ -1499,36 +1539,36 @@ static u8 sub_814118C(u16 r0, u16 r1) // one of the two is in party if (gLocalTime.hours > 3 && gLocalTime.hours < 10) { - if (r0 < 12 || (r1 & 1)) - return sRouletteTables[sRoulette->tableId].var02 / 2; + if (ballNum < BALLS_PER_ROUND * 2 || (rand & 1)) + return sRouletteTables[sRoulette->tableId].randDistanceLow / 2; else return 1; } - else if (!(r1 & 3)) + else if (!(rand & 3)) { - return sRouletteTables[sRoulette->tableId].var02 / 2; + return sRouletteTables[sRoulette->tableId].randDistanceLow / 2; } else { - return sRouletteTables[sRoulette->tableId].var02; + return sRouletteTables[sRoulette->tableId].randDistanceLow; } break; case HAS_SHROOMISH | HAS_TAILLOW: // both are in party if (gLocalTime.hours > 3 && gLocalTime.hours < 11) { - if (r0 < 6 || (r1 & 1)) - return sRouletteTables[sRoulette->tableId].var02 / 2; + if (ballNum < BALLS_PER_ROUND || (rand & 1)) + return sRouletteTables[sRoulette->tableId].randDistanceLow / 2; else return 1; } - else if ((r1 & 1) && r0 > 6) + else if ((rand & 1) && ballNum > BALLS_PER_ROUND) { - return sRouletteTables[sRoulette->tableId].var02 / 4; + return sRouletteTables[sRoulette->tableId].randDistanceLow / 4; } else { - return sRouletteTables[sRoulette->tableId].var02 / 2; + return sRouletteTables[sRoulette->tableId].randDistanceLow / 2; } break; case 0: @@ -1536,28 +1576,28 @@ static u8 sub_814118C(u16 r0, u16 r1) // neither is in party if (gLocalTime.hours > 3 && gLocalTime.hours < 10) { - if (!(r1 & 3)) + if (!(rand & 3)) return 1; else - return sRouletteTables[sRoulette->tableId].var02 / 2; + return sRouletteTables[sRoulette->tableId].randDistanceLow / 2; } - else if (!(r1 & 3)) + else if (!(rand & 3)) { - if (r0 > 12) - return sRouletteTables[sRoulette->tableId].var02 / 2; + if (ballNum > BALLS_PER_ROUND * 2) + return sRouletteTables[sRoulette->tableId].randDistanceLow / 2; else - return sRouletteTables[sRoulette->tableId].var02; + return sRouletteTables[sRoulette->tableId].randDistanceLow; } - else if (r1 & 0x8000) + else if (rand & (1 << 15)) { - if (r0 > 12) - return sRouletteTables[sRoulette->tableId].var02; + if (ballNum > BALLS_PER_ROUND * 2) + return sRouletteTables[sRoulette->tableId].randDistanceLow; else - return sRouletteTables[sRoulette->tableId].var01; + return sRouletteTables[sRoulette->tableId].randDistanceHigh; } else { - return sRouletteTables[sRoulette->tableId].var01 * 2; + return sRouletteTables[sRoulette->tableId].randDistanceHigh * 2; } break; } @@ -1565,43 +1605,44 @@ static u8 sub_814118C(u16 r0, u16 r1) static void Task_InitBallRoll(u8 taskId) { - u8 randf; - s8 randfinal; - s8 r5; - u16 g = 0; + u8 randTravelMod; + s8 randTravelDist; + s8 startAngleId; + u16 travelDist = 0; u16 rand; u16 randmod; - u16 angles[4] = {0, 180, 90, 270}; // angles in 90 degree steps + u16 startAngles[4] = {0, 180, 90, 270}; // possible angles to start ball from rand = Random(); randmod = rand % 100; sRoulette->curBallSpriteId = gTasks[taskId].tBallNum; - sRoulette->ballState = sRoulette->hitSlot = sRoulette->var7F = BALL_STATE_ROLLING; - randf = sub_814118C(gTasks[taskId].data[8], rand); - randfinal = (rand % randf) - (randf / 2); + // BALL_STATE_ROLLING set below + sRoulette->ballState = sRoulette->hitSlot = sRoulette->stuckHitSlot = 0; + randTravelMod = GetRandomForBallTravelDistance(gTasks[taskId].tTotalBallNum, rand); + randTravelDist = (rand % randTravelMod) - (randTravelMod / 2); if (gLocalTime.hours < 13) - r5 = 0; + startAngleId = 0; else - r5 = 1; + startAngleId = 1; if (randmod < 80) - r5 *= 2; + startAngleId *= 2; else - r5 = (1 - r5) * 2; + startAngleId = (1 - startAngleId) * 2; - sRoulette->var80 = g = sRouletteTables[sRoulette->tableId].var1A + randfinal; + sRoulette->ballTravelDist = travelDist = sRouletteTables[sRoulette->tableId].baseTravelDist + randTravelDist; - g = S16TOPOSFLOAT(g) / 5.0f; - sRoulette->var82 = g * 3; - sRoulette->var86 = sRoulette->var84 = g; + travelDist = S16TOPOSFLOAT(travelDist) / 5.0f; + sRoulette->ballTravelDistFast = travelDist * 3; + sRoulette->ballTravelDistSlow = sRoulette->ballTravelDistMed = travelDist; - sRoulette->var88 = S16TOPOSFLOAT(angles[(rand & 1) + r5]); - sRoulette->var8C = S16TOPOSFLOAT(sRouletteTables[sRoulette->tableId].var18); - sRoulette->var90 = ((sRoulette->var8C * 0.5f) - sRoulette->var8C) / S16TOPOSFLOAT(sRoulette->var82); - sRoulette->var94 = 68.0f; - sRoulette->var9C = 0.0f; - sRoulette->var98 = -(8.0f / S16TOPOSFLOAT(sRoulette->var82)); + sRoulette->ballAngle = S16TOPOSFLOAT(startAngles[(rand & 1) + startAngleId]); + sRoulette->ballAngleSpeed = S16TOPOSFLOAT(sRouletteTables[sRoulette->tableId].ballSpeed); + sRoulette->ballAngleAccel = ((sRoulette->ballAngleSpeed * 0.5f) - sRoulette->ballAngleSpeed) / S16TOPOSFLOAT(sRoulette->ballTravelDistFast); + sRoulette->ballDistToCenter = 68.0f; + sRoulette->ballFallAccel = 0.0f; + sRoulette->ballFallSpeed = -(8.0f / S16TOPOSFLOAT(sRoulette->ballTravelDistFast)); sRoulette->varA0 = 36.0f; gTasks[taskId].func = Task_RollBall; } @@ -1609,10 +1650,10 @@ static void Task_InitBallRoll(u8 taskId) static void Task_RollBall(u8 taskId) { sRoulette->ballRolling = TRUE; - sRoulette->var38 = &gSprites[sRoulette->spriteIds[sRoulette->curBallSpriteId]]; - sRoulette->var38->callback = sub_81446AC; + sRoulette->ball = &gSprites[sRoulette->spriteIds[sRoulette->curBallSpriteId]]; + sRoulette->ball->callback = SpriteCB_RollBall_Start; gTasks[taskId].tBallNum++; - gTasks[taskId].data[8]++; + gTasks[taskId].tTotalBallNum++; SetBallCounterNumLeft(BALLS_PER_ROUND - gTasks[taskId].tBallNum); m4aSongNumStart(SE_TAMAKORO); gTasks[taskId].func = Task_RecordBallHit; @@ -1663,8 +1704,11 @@ static void Task_SlideGridOnscreen(u8 taskId) { if (gTasks[taskId].data[1]-- > 0) { + // Slide wheel over if (gTasks[taskId].data[1] > 2) gSpriteCoordOffsetX -= 2; + + // Slide grid over if ((sRoulette->gridX -= 4) == 104) gSprites[sRoulette->spriteIds[SPR_MULTIPLIER]].callback = SpriteCB_GridSquare; } @@ -1714,7 +1758,7 @@ static void Task_TryIncrementWins(u8 taskId) u32 wins = GetGameStat(GAME_STAT_CONSECUTIVE_ROULETTE_WINS); if (wins < ++gTasks[taskId].tConsecutiveWins) SetGameStat(GAME_STAT_CONSECUTIVE_ROULETTE_WINS, gTasks[taskId].tConsecutiveWins); - StartTaskAfterDelayOrInput(taskId, Task_PrintPayout, 0xFFFF, A_BUTTON | B_BUTTON); + StartTaskAfterDelayOrInput(taskId, Task_PrintPayout, NO_DELAY, A_BUTTON | B_BUTTON); } break; case FALSE: @@ -1722,7 +1766,7 @@ static void Task_TryIncrementWins(u8 taskId) if (!IsSEPlaying()) { gTasks[taskId].tConsecutiveWins = 0; - StartTaskAfterDelayOrInput(taskId, Task_EndTurn, 0xFFFF, A_BUTTON | B_BUTTON); + StartTaskAfterDelayOrInput(taskId, Task_EndTurn, NO_DELAY, A_BUTTON | B_BUTTON); } break; } @@ -1790,7 +1834,7 @@ static void Task_GivePayout(u8 taskId) break; } if (gTasks[taskId].tPayout == 0) - StartTaskAfterDelayOrInput(taskId, Task_EndTurn, 0xFFFF, A_BUTTON | B_BUTTON); + StartTaskAfterDelayOrInput(taskId, Task_EndTurn, NO_DELAY, A_BUTTON | B_BUTTON); } static void Task_PrintPayout(u8 taskId) @@ -1810,8 +1854,8 @@ static void Task_PrintPayout(u8 taskId) static void Task_EndTurn(u8 taskId) { sub_8151A9C(&sRoulette->flashUtil, 0xFFFF); - sRoulette->flashUtil.var04[13].var00_7 = sRoulette->flashUtil.var04[14].var00_7 = sRoulette->flashUtil.var04[15].var00_7 = 0; - gSprites[sRoulette->spriteIds[SPR_BOARD_ICONS + sGridSelections[gTasks[taskId].tWinningSquare].var00]].invisible = TRUE; + sRoulette->flashUtil.var04[13].active = sRoulette->flashUtil.var04[14].active = sRoulette->flashUtil.var04[15].active = FALSE; + gSprites[sRoulette->spriteIds[SPR_WHEEL_ICONS + sGridSelections[gTasks[taskId].tWinningSquare].spriteIdOffset]].invisible = TRUE; gTasks[taskId].func = Task_TryPrintEndTurnMsg; } @@ -1836,7 +1880,7 @@ static void Task_TryPrintEndTurnMsg(u8 taskId) DrawStdWindowFrame(sTextWindowId, FALSE); AddTextPrinterParameterized(sTextWindowId, 1, Roulette_Text_BoardWillBeCleared, 0, 1, TEXT_SPEED_FF, NULL); CopyWindowToVram(sTextWindowId, 3); - StartTaskAfterDelayOrInput(taskId, Task_ClearBoard, 0xFFFF, A_BUTTON | B_BUTTON); + StartTaskAfterDelayOrInput(taskId, Task_ClearBoard, NO_DELAY, A_BUTTON | B_BUTTON); } else if (gTasks[taskId].tCoins == MAX_COINS) { @@ -1844,7 +1888,7 @@ static void Task_TryPrintEndTurnMsg(u8 taskId) DrawStdWindowFrame(sTextWindowId, FALSE); AddTextPrinterParameterized(sTextWindowId, 1, Roulette_Text_CoinCaseIsFull, 0, 1, TEXT_SPEED_FF, NULL); CopyWindowToVram(sTextWindowId, 3); - StartTaskAfterDelayOrInput(taskId, Task_AskKeepPlaying, 0xFFFF, A_BUTTON | B_BUTTON); + StartTaskAfterDelayOrInput(taskId, Task_AskKeepPlaying, NO_DELAY, A_BUTTON | B_BUTTON); } else { @@ -1867,15 +1911,15 @@ static void Task_ClearBoard(u8 taskId) u8 i = 0; gTasks[taskId].tBallNum = 0; - sub_8141FF4(taskId); + ResetBallDataForNewSpin(taskId); ResetHits(); - HideBoardBalls(); + HideWheelBalls(); DrawGridBackground(SELECTION_NONE); SetBallCounterNumLeft(BALLS_PER_ROUND); for (i = 0; i < NUM_ROULETTE_SLOTS; i++) { - gSprites[sRoulette->spriteIds[i + SPR_BOARD_ICONS]].invisible = FALSE; + gSprites[sRoulette->spriteIds[i + SPR_WHEEL_ICONS]].invisible = FALSE; } if (gTasks[taskId].tCoins == MAX_COINS) @@ -1883,7 +1927,7 @@ static void Task_ClearBoard(u8 taskId) DrawStdWindowFrame(sTextWindowId, FALSE); AddTextPrinterParameterized(sTextWindowId, 1, Roulette_Text_CoinCaseIsFull, 0, 1, TEXT_SPEED_FF, NULL); CopyWindowToVram(sTextWindowId, 3); - StartTaskAfterDelayOrInput(taskId, Task_AskKeepPlaying, 0xFFFF, A_BUTTON | B_BUTTON); + StartTaskAfterDelayOrInput(taskId, Task_AskKeepPlaying, NO_DELAY, A_BUTTON | B_BUTTON); } else { @@ -1937,7 +1981,7 @@ static void Task_WaitForNextTask(u8 taskId) sRoulette->taskWaitKey = 0; sRoulette->taskWaitDelay = 0; } - if (sRoulette->taskWaitDelay != 0xFFFF) + if (sRoulette->taskWaitDelay != NO_DELAY) sRoulette->taskWaitDelay--; } @@ -1948,14 +1992,14 @@ static void StartTaskAfterDelayOrInput(u8 taskId, TaskFunc task, u16 delay, u16 task = sRoulette->prevTask; sRoulette->nextTask = task; sRoulette->taskWaitDelay = delay; - if (delay == 0xFFFF && key == 0) + if (delay == NO_DELAY && key == 0) sRoulette->taskWaitKey = 0xFFFF; else sRoulette->taskWaitKey = key; gTasks[taskId].func = Task_WaitForNextTask; } -static void sub_8141FF4(u8 taskId) +static void ResetBallDataForNewSpin(u8 taskId) { u8 i = 0; sRoulette->unk0 = FALSE; @@ -2099,16 +2143,16 @@ static void FlashSelectionOnWheel(u8 selectionId) // The specific color of the poke it references doesn't matter, because the icons themelves all share a palette // So it just uses the first sprite ID of each case COL_WYNAUT: - var3 = gSprites[sRoulette->spriteIds[SPR_BOARD_ICON_ORANGE_WYNAUT]].oam.paletteNum * 16; + var3 = gSprites[sRoulette->spriteIds[SPR_WHEEL_ICON_ORANGE_WYNAUT]].oam.paletteNum * 16; break; case COL_AZURILL: - var3 = gSprites[sRoulette->spriteIds[SPR_BOARD_ICON_GREEN_AZURILL]].oam.paletteNum * 16; + var3 = gSprites[sRoulette->spriteIds[SPR_WHEEL_ICON_GREEN_AZURILL]].oam.paletteNum * 16; break; case COL_SKITTY: - var3 = gSprites[sRoulette->spriteIds[SPR_BOARD_ICON_PURPLE_SKITTY]].oam.paletteNum * 16; + var3 = gSprites[sRoulette->spriteIds[SPR_WHEEL_ICON_PURPLE_SKITTY]].oam.paletteNum * 16; break; case COL_MAKUHITA: - var3 = gSprites[sRoulette->spriteIds[SPR_BOARD_ICON_ORANGE_MAKUHITA]].oam.paletteNum * 16; + var3 = gSprites[sRoulette->spriteIds[SPR_WHEEL_ICON_ORANGE_MAKUHITA]].oam.paletteNum * 16; break; } if (numSelected == 1) @@ -2154,16 +2198,17 @@ static void FlashSelectionOnWheel(u8 selectionId) static void DrawGridBackground(u8 selectionId) { - vu8 i; - vu8 z; - vu16 var1; - vu16 var2; - vu8 var0; - u8 v[5]; - u8 l; + vu8 i, j; + vu16 x, y; + vu8 tilemapOffset; + u8 selectionIds[NUM_BOARD_POKES >= NUM_BOARD_COLORS ? NUM_BOARD_POKES + 1 : NUM_BOARD_COLORS + 1]; + u8 numSquares; sRoulette->updateGridHighlight = TRUE; ShowHideGridIcons(FALSE, 0); SetTilemapRect(sRoulette->tilemapBuffers[2], sRoulette->gridTilemap, 14, 7, 16, 13); + + // Highlight selected square + // (just buffers the highlight, it's actually drawn in VBlankCB_Roulette) switch (selectionId) { case SELECTION_NONE: @@ -2172,36 +2217,35 @@ static void DrawGridBackground(u8 selectionId) case COL_AZURILL: case COL_SKITTY: case COL_MAKUHITA: - l = 4; - for (i = 0; i < l; i++) - { - v[i] = i * ROW_ORANGE + selectionId; - } + numSquares = NUM_BOARD_COLORS + 1; // For each poke column, 3 colors and a header + for (i = 0; i < numSquares; i++) + selectionIds[i] = i * ROW_ORANGE + selectionId; break; case ROW_ORANGE: case ROW_GREEN: case ROW_PURPLE: - l = 5; - for (i = 0; i < l; i++) - { - v[i] = i + selectionId; - } + numSquares = NUM_BOARD_POKES + 1; // For each color row, 4 pokes and a header + for (i = 0; i < numSquares; i++) + selectionIds[i] = i + selectionId; break; // Individual square default: - l = 1; - v[0] = selectionId; + numSquares = 1; + selectionIds[0] = selectionId; } - for (i = 0; i < l; i++) + for (i = 0; i < numSquares; i++) { - var0 = sGridSelections[v[i]].var06; - var1 = sGridSelections[v[i]].x; - for (z = 0; z < 3; z++) + tilemapOffset = sGridSelections[selectionIds[i]].tilemapOffset; + x = sGridSelections[selectionIds[i]].x; + + // Grid square highlight is drawn in 9 segments, starting from the top left of the square + // Each iteration of this loop draws 3 segments to form a single horizontal segment + for (j = 0; j < 3; j++) { - var2 = (sGridSelections[v[i]].y + z) * 32; - sRoulette->tilemapBuffers[2][var1 + var2 + 0] = sRoulette->gridTilemap[(var0 + z) * 3 + 208]; - sRoulette->tilemapBuffers[2][var1 + var2 + 1] = sRoulette->gridTilemap[(var0 + z) * 3 + 209]; - sRoulette->tilemapBuffers[2][var1 + var2 + 2] = sRoulette->gridTilemap[(var0 + z) * 3 + 210]; + y = (sGridSelections[selectionIds[i]].y + j) * 32; + sRoulette->tilemapBuffers[2][x + y + 0] = sRoulette->gridTilemap[(tilemapOffset + j) * 3 + 208 + 0]; + sRoulette->tilemapBuffers[2][x + y + 1] = sRoulette->gridTilemap[(tilemapOffset + j) * 3 + 208 + 1]; + sRoulette->tilemapBuffers[2][x + y + 2] = sRoulette->gridTilemap[(tilemapOffset + j) * 3 + 208 + 2]; } } } @@ -2275,7 +2319,7 @@ static const u32 sBall_Gfx[] = INCBIN_U32("graphics/roulette/ball.4bpp.lz"); static const u32 sBallCounter_Gfx[] = INCBIN_U32("graphics/roulette/ball_counter.4bpp.lz"); static const u32 sShroomishTaillow_Gfx[] = INCBIN_U32("graphics/roulette/roulette_tilt.4bpp.lz"); static const u32 sGridIcons_Gfx[] = INCBIN_U32("graphics/roulette/grid_icons.4bpp.lz"); -static const u32 sBoardIcons_Gfx[] = INCBIN_U32("graphics/roulette/board_icons.4bpp.lz"); +static const u32 sWheelIcons_Gfx[] = INCBIN_U32("graphics/roulette/wheel_icons.4bpp.lz"); static const u32 sShadow_Gfx[] = INCBIN_U32("graphics/roulette/shadow.4bpp.lz"); static const u32 sCursor_Gfx[] = INCBIN_U32("graphics/roulette/cursor.4bpp.lz"); @@ -2284,7 +2328,7 @@ static const struct SpritePalette sSpritePalettes[] = { .data = sShadow_Pal, .tag = PALTAG_SHADOW }, { .data = sBall_Pal, .tag = PALTAG_BALL }, { .data = sBallCounter_Pal, .tag = PALTAG_BALL_COUNTER }, - { .data = sCursor_Pal, .tag = 4 }, + { .data = sCursor_Pal, .tag = PALTAG_CURSOR }, { .data = sCredit_Pal, .tag = PALTAG_INTERFACE }, { .data = sShroomish_Pal, .tag = PALTAG_SHROOMISH }, { .data = sTaillow_Pal, .tag = PALTAG_TAILLOW }, @@ -2314,7 +2358,7 @@ static const struct OamData sOam_GridIcon = .priority = 1, }; -static const struct OamData sOam_BoardIcon = +static const struct OamData sOam_WheelIcon = { .y = 60, .affineMode = ST_OAM_AFFINE_DOUBLE, @@ -2345,14 +2389,14 @@ static const union AffineAnimCmd *const sAffineAnims_Unused2[] = sAffineAnim_Unused2 }; -static const struct CompressedSpriteSheet sSpriteSheet_BoardIcons = +static const struct CompressedSpriteSheet sSpriteSheet_WheelIcons = { - .data = sBoardIcons_Gfx, + .data = sWheelIcons_Gfx, .size = 0xC00, - .tag = GFXTAG_BOARD_ICONS + .tag = GFXTAG_WHEEL_ICONS }; -static const union AnimCmd sAnim_BoardIcons[] = +static const union AnimCmd sAnim_WheelIcons[] = { ANIMCMD_FRAME(0, 0), ANIMCMD_FRAME(32, 0), @@ -2369,64 +2413,64 @@ static const union AnimCmd sAnim_BoardIcons[] = ANIMCMD_END }; -static const union AnimCmd *const sAnim_BoardIcon_OrangeWynaut[] = +static const union AnimCmd *const sAnim_WheelIcon_OrangeWynaut[] = { - &sAnim_BoardIcons[0] + &sAnim_WheelIcons[0] }; -static const union AnimCmd *const sAnim_BoardIcon_GreenAzurill[] = +static const union AnimCmd *const sAnim_WheelIcon_GreenAzurill[] = { - &sAnim_BoardIcons[1] + &sAnim_WheelIcons[1] }; -static const union AnimCmd *const sAnim_BoardIcon_PurpleSkitty[] = +static const union AnimCmd *const sAnim_WheelIcon_PurpleSkitty[] = { - &sAnim_BoardIcons[2] + &sAnim_WheelIcons[2] }; -static const union AnimCmd *const sAnim_BoardIcon_OrangeMakuhita[] = +static const union AnimCmd *const sAnim_WheelIcon_OrangeMakuhita[] = { - &sAnim_BoardIcons[3] + &sAnim_WheelIcons[3] }; -static const union AnimCmd *const sAnim_BoardIcon_GreenWynaut[] = +static const union AnimCmd *const sAnim_WheelIcon_GreenWynaut[] = { - &sAnim_BoardIcons[4] + &sAnim_WheelIcons[4] }; -static const union AnimCmd *const sAnim_BoardIcon_PurpleAzurill[] = +static const union AnimCmd *const sAnim_WheelIcon_PurpleAzurill[] = { - &sAnim_BoardIcons[5] + &sAnim_WheelIcons[5] }; -static const union AnimCmd *const sAnim_BoardIcon_OrangeSkitty[] = +static const union AnimCmd *const sAnim_WheelIcon_OrangeSkitty[] = { - &sAnim_BoardIcons[6] + &sAnim_WheelIcons[6] }; -static const union AnimCmd *const sAnim_BoardIcon_GreenMakuhita[] = +static const union AnimCmd *const sAnim_WheelIcon_GreenMakuhita[] = { - &sAnim_BoardIcons[7] + &sAnim_WheelIcons[7] }; -static const union AnimCmd *const sAnim_BoardIcon_PurpleWynaut[] = +static const union AnimCmd *const sAnim_WheelIcon_PurpleWynaut[] = { - &sAnim_BoardIcons[8] + &sAnim_WheelIcons[8] }; -static const union AnimCmd *const sAnim_BoardIcon_OrangeAzurill[] = +static const union AnimCmd *const sAnim_WheelIcon_OrangeAzurill[] = { - &sAnim_BoardIcons[9] + &sAnim_WheelIcons[9] }; -static const union AnimCmd *const sAnim_BoardIcon_GreenSkitty[] = +static const union AnimCmd *const sAnim_WheelIcon_GreenSkitty[] = { - &sAnim_BoardIcons[10] + &sAnim_WheelIcons[10] }; -static const union AnimCmd *const sAnim_BoardIcon_PurpleMakuhita[] = +static const union AnimCmd *const sAnim_WheelIcon_PurpleMakuhita[] = { - &sAnim_BoardIcons[11] + &sAnim_WheelIcons[11] }; static const struct CompressedSpriteSheet sSpriteSheet_Headers = @@ -2436,7 +2480,7 @@ static const struct CompressedSpriteSheet sSpriteSheet_Headers = .tag = GFXTAG_HEADERS }; -static const struct CompressedSpriteSheet sSpriteSheet_PokeIcons = +static const struct CompressedSpriteSheet sSpriteSheet_GridIcons = { .data = sGridIcons_Gfx, .size = 0x400, @@ -2634,117 +2678,117 @@ static const struct SpriteTemplate sSpriteTemplate_GridIcons[NUM_BOARD_POKES] = } }; -// Board icons are listed clockwise starting from 1 oclock on the roulette board (with pokeball upside right) +// Wheel icons are listed clockwise starting from 1 oclock on the roulette wheel (with pokeball upside right) // They go Wynaut -> Azurill -> Skitty -> Makuhita, and Orange -> Green -> Purple -static const struct SpriteTemplate sSpriteTemplates_BoardIcons[NUM_ROULETTE_SLOTS] = +static const struct SpriteTemplate sSpriteTemplates_WheelIcons[NUM_ROULETTE_SLOTS] = { { - .tileTag = GFXTAG_BOARD_ICONS, + .tileTag = GFXTAG_WHEEL_ICONS, .paletteTag = PALTAG_WYNAUT, - .oam = &sOam_BoardIcon, - .anims = sAnim_BoardIcon_OrangeWynaut, + .oam = &sOam_WheelIcon, + .anims = sAnim_WheelIcon_OrangeWynaut, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = SpriteCB_BoardIcon + .callback = SpriteCB_WheelIcon }, { - .tileTag = GFXTAG_BOARD_ICONS, + .tileTag = GFXTAG_WHEEL_ICONS, .paletteTag = PALTAG_AZURILL, - .oam = &sOam_BoardIcon, - .anims = sAnim_BoardIcon_GreenAzurill, + .oam = &sOam_WheelIcon, + .anims = sAnim_WheelIcon_GreenAzurill, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = SpriteCB_BoardIcon + .callback = SpriteCB_WheelIcon }, { - .tileTag = GFXTAG_BOARD_ICONS, + .tileTag = GFXTAG_WHEEL_ICONS, .paletteTag = PALTAG_SKITTY, - .oam = &sOam_BoardIcon, - .anims = sAnim_BoardIcon_PurpleSkitty, + .oam = &sOam_WheelIcon, + .anims = sAnim_WheelIcon_PurpleSkitty, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = SpriteCB_BoardIcon + .callback = SpriteCB_WheelIcon }, { - .tileTag = GFXTAG_BOARD_ICONS, + .tileTag = GFXTAG_WHEEL_ICONS, .paletteTag = PALTAG_MAKUHITA, - .oam = &sOam_BoardIcon, - .anims = sAnim_BoardIcon_OrangeMakuhita, + .oam = &sOam_WheelIcon, + .anims = sAnim_WheelIcon_OrangeMakuhita, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = SpriteCB_BoardIcon + .callback = SpriteCB_WheelIcon }, { - .tileTag = GFXTAG_BOARD_ICONS, + .tileTag = GFXTAG_WHEEL_ICONS, .paletteTag = PALTAG_WYNAUT, - .oam = &sOam_BoardIcon, - .anims = sAnim_BoardIcon_GreenWynaut, + .oam = &sOam_WheelIcon, + .anims = sAnim_WheelIcon_GreenWynaut, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = SpriteCB_BoardIcon + .callback = SpriteCB_WheelIcon }, { - .tileTag = GFXTAG_BOARD_ICONS, + .tileTag = GFXTAG_WHEEL_ICONS, .paletteTag = PALTAG_AZURILL, - .oam = &sOam_BoardIcon, - .anims = sAnim_BoardIcon_PurpleAzurill, + .oam = &sOam_WheelIcon, + .anims = sAnim_WheelIcon_PurpleAzurill, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = SpriteCB_BoardIcon + .callback = SpriteCB_WheelIcon }, { - .tileTag = GFXTAG_BOARD_ICONS, + .tileTag = GFXTAG_WHEEL_ICONS, .paletteTag = PALTAG_SKITTY, - .oam = &sOam_BoardIcon, - .anims = sAnim_BoardIcon_OrangeSkitty, + .oam = &sOam_WheelIcon, + .anims = sAnim_WheelIcon_OrangeSkitty, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = SpriteCB_BoardIcon + .callback = SpriteCB_WheelIcon }, { - .tileTag = GFXTAG_BOARD_ICONS, + .tileTag = GFXTAG_WHEEL_ICONS, .paletteTag = PALTAG_MAKUHITA, - .oam = &sOam_BoardIcon, - .anims = sAnim_BoardIcon_GreenMakuhita, + .oam = &sOam_WheelIcon, + .anims = sAnim_WheelIcon_GreenMakuhita, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = SpriteCB_BoardIcon + .callback = SpriteCB_WheelIcon }, { - .tileTag = GFXTAG_BOARD_ICONS, + .tileTag = GFXTAG_WHEEL_ICONS, .paletteTag = PALTAG_WYNAUT, - .oam = &sOam_BoardIcon, - .anims = sAnim_BoardIcon_PurpleWynaut, + .oam = &sOam_WheelIcon, + .anims = sAnim_WheelIcon_PurpleWynaut, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = SpriteCB_BoardIcon + .callback = SpriteCB_WheelIcon }, { - .tileTag = GFXTAG_BOARD_ICONS, + .tileTag = GFXTAG_WHEEL_ICONS, .paletteTag = PALTAG_AZURILL, - .oam = &sOam_BoardIcon, - .anims = sAnim_BoardIcon_OrangeAzurill, + .oam = &sOam_WheelIcon, + .anims = sAnim_WheelIcon_OrangeAzurill, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = SpriteCB_BoardIcon + .callback = SpriteCB_WheelIcon }, { - .tileTag = GFXTAG_BOARD_ICONS, + .tileTag = GFXTAG_WHEEL_ICONS, .paletteTag = PALTAG_SKITTY, - .oam = &sOam_BoardIcon, - .anims = sAnim_BoardIcon_GreenSkitty, + .oam = &sOam_WheelIcon, + .anims = sAnim_WheelIcon_GreenSkitty, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = SpriteCB_BoardIcon + .callback = SpriteCB_WheelIcon }, { - .tileTag = GFXTAG_BOARD_ICONS, + .tileTag = GFXTAG_WHEEL_ICONS, .paletteTag = PALTAG_MAKUHITA, - .oam = &sOam_BoardIcon, - .anims = sAnim_BoardIcon_PurpleMakuhita, + .oam = &sOam_WheelIcon, + .anims = sAnim_WheelIcon_PurpleMakuhita, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = SpriteCB_BoardIcon + .callback = SpriteCB_WheelIcon } }; @@ -2814,25 +2858,26 @@ static const struct CompressedSpriteSheet sSpriteSheets_Interface[] = {} }; -static const union AnimCmd gSpriteAnim_85B7780[] = +static const union AnimCmd sAnim_CreditDigit[] = { - ANIMCMD_FRAME(0, 0), - ANIMCMD_FRAME(2, 0), - ANIMCMD_FRAME(4, 0), - ANIMCMD_FRAME(6, 0), - ANIMCMD_FRAME(8, 0), - ANIMCMD_FRAME(10, 0), - ANIMCMD_FRAME(12, 0), - ANIMCMD_FRAME(14, 0), - ANIMCMD_FRAME(16, 0), - ANIMCMD_FRAME(18, 0), + ANIMCMD_FRAME(0, 0), // 0 + ANIMCMD_FRAME(2, 0), // 1 + ANIMCMD_FRAME(4, 0), // 2 + ANIMCMD_FRAME(6, 0), // 3 + ANIMCMD_FRAME(8, 0), // 4 + ANIMCMD_FRAME(10, 0), // 5 + ANIMCMD_FRAME(12, 0), // 6 + ANIMCMD_FRAME(14, 0), // 7 + ANIMCMD_FRAME(16, 0), // 8 + ANIMCMD_FRAME(18, 0), // 9 // BUG: Animation not terminated properly + // Doesn't matter in practice, the frames are set directly and not looped //ANIMCMD_END }; -static const union AnimCmd *const gSpriteAnimTable_85B77A8[] = +static const union AnimCmd *const sAnims_CreditDigit[] = { - gSpriteAnim_85B7780 + sAnim_CreditDigit }; static const union AnimCmd sAnim_Multiplier[] = @@ -2881,7 +2926,7 @@ static const struct SpriteTemplate sSpriteTemplate_CreditDigit = .tileTag = GFXTAG_CREDIT_DIGIT, .paletteTag = PALTAG_INTERFACE, .oam = &sOam_CreditDigit, - .anims = gSpriteAnimTable_85B77A8, + .anims = sAnims_CreditDigit, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy @@ -2936,7 +2981,7 @@ static const struct CompressedSpriteSheet sSpriteSheet_Ball = { .tag = GFXTAG_BALL }; -static const union AnimCmd gSpriteAnim_85B786C[] = +static const union AnimCmd sAnim_Ball_RollFast[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_FRAME(4, 5), @@ -2945,7 +2990,7 @@ static const union AnimCmd gSpriteAnim_85B786C[] = ANIMCMD_JUMP(0) }; -static const union AnimCmd gSpriteAnim_85B7880[] = +static const union AnimCmd sAnim_Ball_RollMedium[] = { ANIMCMD_FRAME(0, 10), ANIMCMD_FRAME(4, 10), @@ -2954,7 +2999,7 @@ static const union AnimCmd gSpriteAnim_85B7880[] = ANIMCMD_JUMP(0) }; -static const union AnimCmd gSpriteAnim_85B7894[] = +static const union AnimCmd sAnim_Ball_RollSlow[] = { ANIMCMD_FRAME(0, 15), ANIMCMD_FRAME(4, 15), @@ -2963,7 +3008,7 @@ static const union AnimCmd gSpriteAnim_85B7894[] = ANIMCMD_JUMP(0) }; -static const union AnimCmd gSpriteAnim_85B78A8[] = +static const union AnimCmd sAnim_Ball_StopOnFrame1[] = { ANIMCMD_FRAME(4, 2), ANIMCMD_FRAME(8, 5), @@ -2972,7 +3017,7 @@ static const union AnimCmd gSpriteAnim_85B78A8[] = ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_85B78BC[] = +static const union AnimCmd sAnim_Ball_StopOnFrame3[] = { ANIMCMD_FRAME(4, 2), ANIMCMD_FRAME(0, 4), @@ -2982,7 +3027,7 @@ static const union AnimCmd gSpriteAnim_85B78BC[] = ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_85B78D4[] = +static const union AnimCmd sAnim_Ball_StopOnFrame4[] = { ANIMCMD_FRAME(0, 2), ANIMCMD_FRAME(4, 5), @@ -2991,13 +3036,13 @@ static const union AnimCmd gSpriteAnim_85B78D4[] = ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_85B78E8[] = +static const union AnimCmd sAnim_Ball_Still[] = { ANIMCMD_FRAME(12, 0), ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_85B78F0[] = +static const union AnimCmd sAnim_Ball_StopOnFrame2[] = { ANIMCMD_FRAME(8, 2), ANIMCMD_FRAME(4, 5), @@ -3008,15 +3053,15 @@ static const union AnimCmd gSpriteAnim_85B78F0[] = static const union AnimCmd *const sAnims_Ball[] = { - gSpriteAnim_85B786C, - gSpriteAnim_85B7880, - gSpriteAnim_85B7894, - gSpriteAnim_85B78A8, - gSpriteAnim_85B78F0, - gSpriteAnim_85B78BC, - gSpriteAnim_85B78D4, - gSpriteAnim_85B78D4, - gSpriteAnim_85B78E8 + sAnim_Ball_RollFast, + sAnim_Ball_RollMedium, + sAnim_Ball_RollSlow, + sAnim_Ball_StopOnFrame1, + sAnim_Ball_StopOnFrame2, + sAnim_Ball_StopOnFrame3, + sAnim_Ball_StopOnFrame4, + sAnim_Ball_StopOnFrame4, + sAnim_Ball_Still }; static const struct SpriteTemplate sSpriteTemplate_Ball = @@ -3030,7 +3075,7 @@ static const struct SpriteTemplate sSpriteTemplate_Ball = .callback = SpriteCallbackDummy }; -static const struct OamData sOam_BoardCenter = +static const struct OamData sOam_WheelCenter = { .y = 81, .affineMode = ST_OAM_AFFINE_DOUBLE, @@ -3040,22 +3085,22 @@ static const struct OamData sOam_BoardCenter = .priority = 2, }; -static const struct CompressedSpriteSheet sSpriteSheet_BoardCenter = +static const struct CompressedSpriteSheet sSpriteSheet_WheelCenter = { .data = gRouletteCenter_Gfx, .size = 0x800, - .tag = GFXTAG_BOARD_CENTER + .tag = GFXTAG_WHEEL_CENTER }; -static const struct SpriteTemplate sSpriteTemplate_BoardCenter = +static const struct SpriteTemplate sSpriteTemplate_WheelCenter = { - .tileTag = GFXTAG_BOARD_CENTER, + .tileTag = GFXTAG_WHEEL_CENTER, .paletteTag = PALTAG_BALL, - .oam = &sOam_BoardCenter, + .oam = &sOam_WheelCenter, .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = SpriteCB_BoardCenter + .callback = SpriteCB_WheelCenter }; static const struct OamData sOam_Shroomish = @@ -3094,40 +3139,40 @@ static const union AnimCmd sAnim_Shroomish[] = ANIMCMD_JUMP(2) }; -static const union AnimCmd gSpriteAnim_85B799C[] = +static const union AnimCmd sAnim_Taillow_WingDown_Left[] = { ANIMCMD_FRAME(80, 10), ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_85B79A4[] = +static const union AnimCmd sAnim_Taillow_WingDown_Right[] = { ANIMCMD_FRAME(80, 10, .hFlip = TRUE), ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_85B79AC[] = +static const union AnimCmd sAnim_Taillow_FlapSlow_Left[] = { ANIMCMD_FRAME(80, 20), ANIMCMD_FRAME(96, 20), ANIMCMD_JUMP(0) }; -static const union AnimCmd gSpriteAnim_85B79B8[] = +static const union AnimCmd sAnim_Taillow_FlapSlow_Right[] = { ANIMCMD_FRAME(80, 20, .hFlip = TRUE), ANIMCMD_FRAME(96, 20, .hFlip = TRUE), ANIMCMD_JUMP(0) }; -static const union AnimCmd gSpriteAnim_85B79C4[] = +static const union AnimCmd sAnim_Taillow_FlapFast_Left[] = { ANIMCMD_FRAME(80, 10), ANIMCMD_FRAME(96, 10), ANIMCMD_JUMP(0) }; -static const union AnimCmd gSpriteAnim_85B79D0[] = +static const union AnimCmd sAnim_Taillow_FlapFast_Right[] = { ANIMCMD_FRAME(80, 10, .hFlip = TRUE), ANIMCMD_FRAME(96, 10, .hFlip = TRUE), @@ -3141,12 +3186,12 @@ static const union AnimCmd *const sAnims_Shroomish[] = static const union AnimCmd *const sAnims_Taillow[] = { - gSpriteAnim_85B799C, - gSpriteAnim_85B79A4, - gSpriteAnim_85B79AC, - gSpriteAnim_85B79B8, - gSpriteAnim_85B79C4, - gSpriteAnim_85B79D0 + sAnim_Taillow_WingDown_Left, // While gliding in + sAnim_Taillow_WingDown_Right, + sAnim_Taillow_FlapSlow_Left, // While carrying ball + sAnim_Taillow_FlapSlow_Right, + sAnim_Taillow_FlapFast_Left, // While flying off + sAnim_Taillow_FlapFast_Right }; static const struct SpriteTemplate sSpriteTemplate_Shroomish = @@ -3171,7 +3216,7 @@ static const struct SpriteTemplate sSpriteTemplate_Taillow = .callback = SpriteCB_Taillow }; -static const struct OamData gOamData_85B7A28 = +static const struct OamData sOam_ShroomishBallShadow = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, @@ -3180,7 +3225,7 @@ static const struct OamData gOamData_85B7A28 = .priority = 2, }; -static const struct OamData gOamData_85B7A30 = +static const struct OamData sOam_ShroomishShadow = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, @@ -3205,7 +3250,7 @@ static const struct CompressedSpriteSheet sSpriteSheet_Shadow = .tag = GFXTAG_SHADOW }; -static const union AffineAnimCmd gSpriteAffineAnim_85B7A48[] = +static const union AffineAnimCmd sAffineAnim_Unused3[] = { AFFINEANIMCMD_FRAME(0x80, 0x80, 0, 0), AFFINEANIMCMD_FRAME(2, 2, 0, 60), @@ -3221,9 +3266,9 @@ static const union AffineAnimCmd sAffineAnim_TaillowShadow[] = AFFINEANIMCMD_END }; -static const union AffineAnimCmd *const gSpriteAffineAnimTable_85B7A88[] = +static const union AffineAnimCmd *const sAffineAnims_Unused3[] = { - gSpriteAffineAnim_85B7A48 + sAffineAnim_Unused3 }; static const union AffineAnimCmd *const sAffineAnims_TaillowShadow[] = @@ -3231,58 +3276,60 @@ static const union AffineAnimCmd *const sAffineAnims_TaillowShadow[] = sAffineAnim_TaillowShadow }; -static const union AffineAnimCmd gSpriteAffineAnim_85B7A90[] = +static const union AffineAnimCmd sAffineAnim_Unused4[] = { AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0), AFFINEANIMCMD_END }; -static const union AffineAnimCmd *const gSpriteAffineAnimTable_85B7AA0[] = +static const union AffineAnimCmd *const sAffineAnims_Unused4[] = { - gSpriteAffineAnim_85B7A90 + sAffineAnim_Unused4 }; -static const union AnimCmd gSpriteAnim_85B7AA4[] = +static const union AnimCmd sAnim_ShroomishBallShadow[] = { ANIMCMD_FRAME(0, 0), ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_85B7AAC[] = +static const union AnimCmd sAnim_UnstickMonShadow[] = { ANIMCMD_FRAME(4, 0), ANIMCMD_END }; -static const union AnimCmd *const gSpriteAnimTable_85B7AB4[] = +static const union AnimCmd *const sAnims_ShroomishBallShadow[] = { - gSpriteAnim_85B7AA4 + sAnim_ShroomishBallShadow }; -static const union AnimCmd *const gSpriteAnimTable_85B7AB8[] = +static const union AnimCmd *const sAnims_UnstickMonShadow[] = { - gSpriteAnim_85B7AAC + sAnim_UnstickMonShadow }; static const struct SpriteTemplate sSpriteTemplate_ShroomishShadow[] = { + // Ball's shadow as it flies up { .tileTag = GFXTAG_SHADOW, .paletteTag = PALTAG_SHADOW, - .oam = &gOamData_85B7A28, - .anims = gSpriteAnimTable_85B7AB4, + .oam = &sOam_ShroomishBallShadow, + .anims = sAnims_ShroomishBallShadow, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }, + // Shroomish's Shadow { .tileTag = GFXTAG_SHADOW, .paletteTag = PALTAG_SHADOW, - .oam = &gOamData_85B7A30, - .anims = gSpriteAnimTable_85B7AB8, + .oam = &sOam_ShroomishShadow, + .anims = sAnims_UnstickMonShadow, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8144E60 + .callback = SpriteCB_Shroomish } }; @@ -3291,7 +3338,7 @@ static const struct SpriteTemplate sSpriteTemplate_TaillowShadow = .tileTag = GFXTAG_SHADOW, .paletteTag = PALTAG_SHADOW, .oam = &sOam_TaillowShadow, - .anims = gSpriteAnimTable_85B7AB8, + .anims = sAnims_UnstickMonShadow, .images = NULL, .affineAnims = sAffineAnims_TaillowShadow, .callback = SpriteCB_Taillow @@ -3349,7 +3396,7 @@ static void Task_PrintMinBet(u8 taskId) { if (JOY_NEW(A_BUTTON | B_BUTTON)) { - u32 minBet = sTableMinBets[GET_TABLE_ID(gSpecialVar_0x8004)]; + u32 minBet = sTableMinBets[GET_MIN_BET_ID(gSpecialVar_0x8004)]; ConvertIntToDecimalStringN(gStringVar1, minBet, STR_CONV_MODE_LEADING_ZEROS, 1); StringExpandPlaceholders(gStringVar4, Roulette_Text_PlayMinimumWagerIsX); DrawStdWindowFrame(0, FALSE); @@ -3363,7 +3410,7 @@ static void Task_PrintRouletteEntryMsg(u8 taskId) { s32 minBet; PrintCoinsString(gTasks[taskId].tCoins); - minBet = sTableMinBets[GET_TABLE_ID(gSpecialVar_0x8004)]; + minBet = sTableMinBets[GET_MIN_BET_ID(gSpecialVar_0x8004)]; ConvertIntToDecimalStringN(gStringVar1, minBet, STR_CONV_MODE_LEADING_ZEROS, 1); if (gTasks[taskId].tCoins >= minBet) @@ -3402,7 +3449,6 @@ static void Task_PrintRouletteEntryMsg(u8 taskId) void PlayRoulette(void) { u8 taskId; - ScriptContext2_Enable(); ShowCoinsWindow(GetCoins(), 1, 1); taskId = CreateTask(Task_PrintRouletteEntryMsg, 0); @@ -3429,19 +3475,19 @@ static void LoadOrFreeMiscSpritePalettesAndSheets(bool8 free) } } -static u8 CreateBoardIconSprite(const struct SpriteTemplate *r0, u8 r1, u16 *r2) +static u8 CreateWheelIconSprite(const struct SpriteTemplate *template, u8 r1, u16 *angle) { u16 temp; - u8 spriteId = CreateSprite(r0, 116, 80, r0->oam->y); - gSprites[spriteId].data[0] = *r2; + u8 spriteId = CreateSprite(template, 116, 80, template->oam->y); + gSprites[spriteId].data[0] = *angle; gSprites[spriteId].data[1] = r1; gSprites[spriteId].coordOffsetEnabled = TRUE; gSprites[spriteId].animPaused = TRUE; gSprites[spriteId].affineAnimPaused = TRUE; - temp = *r2; - *r2 += 30; - if (*r2 >= 360) - *r2 = temp - 330; + temp = *angle; + *angle += DEGREES_PER_SLOT; + if (*angle >= 360) + *angle = temp - (360 - DEGREES_PER_SLOT); return spriteId; } @@ -3455,21 +3501,21 @@ static void CreateGridSprites(void) s.size = sSpriteSheet_Headers.size; s.tag = sSpriteSheet_Headers.tag; LoadSpriteSheet(&s); - LZ77UnCompWram(sSpriteSheet_PokeIcons.data, gDecompressionBuffer); + LZ77UnCompWram(sSpriteSheet_GridIcons.data, gDecompressionBuffer); s.data = gDecompressionBuffer; - s.size = sSpriteSheet_PokeIcons.size; - s.tag = sSpriteSheet_PokeIcons.tag; + s.size = sSpriteSheet_GridIcons.size; + s.tag = sSpriteSheet_GridIcons.tag; LoadSpriteSheet(&s); for (i = 0; i < NUM_BOARD_COLORS; i++) { - u8 o = i * 24; + u8 y = i * 24; for (j = 0; j < NUM_BOARD_POKES; j++) { - spriteId = sRoulette->spriteIds[(i * NUM_BOARD_POKES) + SPR_GRID_ICONS + j] = CreateSprite(&sSpriteTemplate_GridIcons[j], (j * 24) + 148, o + 92, 30); + spriteId = sRoulette->spriteIds[(i * NUM_BOARD_POKES) + SPR_GRID_ICONS + j] = CreateSprite(&sSpriteTemplate_GridIcons[j], (j * 24) + 148, y + 92, 30); gSprites[spriteId].animPaused = TRUE; - o += 24; - if (o >= 72) - o = 0; + y += 24; + if (y >= 72) + y = 0; } } for (i = 0; i < ARRAY_COUNT(sSpriteTemplates_PokeHeaders); i++) @@ -3479,7 +3525,7 @@ static void CreateGridSprites(void) } for (i = 0; i < ARRAY_COUNT(sSpriteTemplates_ColorHeaders); i++) { - spriteId = sRoulette->spriteIds[i + SPR_COLOR_HEADER_1] = CreateSprite(&sSpriteTemplates_ColorHeaders[i], 126, (i * 24) + 92, 30); + spriteId = sRoulette->spriteIds[i + SPR_COLOR_HEADERS] = CreateSprite(&sSpriteTemplates_ColorHeaders[i], 126, (i * 24) + 92, 30); gSprites[spriteId].animPaused = TRUE; } } @@ -3530,12 +3576,12 @@ static void CreateGridBallSprites(void) u8 i; for (i = 0; i < BALLS_PER_ROUND; i++) { - sRoulette->spriteIds[i + SPR_GRID_BALL_1] = CreateSprite(&sSpriteTemplate_Ball, 116, 20, 10); - gSprites[sRoulette->spriteIds[i + SPR_GRID_BALL_1]].invisible = TRUE; - gSprites[sRoulette->spriteIds[i + SPR_GRID_BALL_1]].data[0] = 1; - gSprites[sRoulette->spriteIds[i + SPR_GRID_BALL_1]].callback = SpriteCB_GridSquare; - gSprites[sRoulette->spriteIds[i + SPR_GRID_BALL_1]].oam.priority = 1; - StartSpriteAnim(&gSprites[sRoulette->spriteIds[i + SPR_GRID_BALL_1]], 8); + sRoulette->spriteIds[i + SPR_GRID_BALLS] = CreateSprite(&sSpriteTemplate_Ball, 116, 20, 10); + gSprites[sRoulette->spriteIds[i + SPR_GRID_BALLS]].invisible = TRUE; + gSprites[sRoulette->spriteIds[i + SPR_GRID_BALLS]].data[0] = 1; + gSprites[sRoulette->spriteIds[i + SPR_GRID_BALLS]].callback = SpriteCB_GridSquare; + gSprites[sRoulette->spriteIds[i + SPR_GRID_BALLS]].oam.priority = 1; + StartSpriteAnim(&gSprites[sRoulette->spriteIds[i + SPR_GRID_BALLS]], 8); } } @@ -3546,7 +3592,7 @@ static void ShowHideGridBalls(bool8 hideAll, u8 hideBallId) { for (; i < BALLS_PER_ROUND; i++) { - gSprites[sRoulette->spriteIds[i + SPR_GRID_BALL_1]].invisible = TRUE; + gSprites[sRoulette->spriteIds[i + SPR_GRID_BALLS]].invisible = TRUE; } } else @@ -3555,13 +3601,13 @@ static void ShowHideGridBalls(bool8 hideAll, u8 hideBallId) { if (!sRoulette->hitSquares[i] || i == hideBallId) { - gSprites[sRoulette->spriteIds[i + SPR_GRID_BALL_1]].invisible = TRUE; + gSprites[sRoulette->spriteIds[i + SPR_GRID_BALLS]].invisible = TRUE; } else { - gSprites[sRoulette->spriteIds[i + SPR_GRID_BALL_1]].invisible = FALSE; - gSprites[sRoulette->spriteIds[i + SPR_GRID_BALL_1]].pos1.x = (sGridSelections[sRoulette->hitSquares[i]].x + 1) * 8 + 4; - gSprites[sRoulette->spriteIds[i + SPR_GRID_BALL_1]].pos1.y = (sGridSelections[sRoulette->hitSquares[i]].y + 1) * 8 + 3; + gSprites[sRoulette->spriteIds[i + SPR_GRID_BALLS]].invisible = FALSE; + gSprites[sRoulette->spriteIds[i + SPR_GRID_BALLS]].pos1.x = (sGridSelections[sRoulette->hitSquares[i]].x + 1) * 8 + 4; + gSprites[sRoulette->spriteIds[i + SPR_GRID_BALLS]].pos1.y = (sGridSelections[sRoulette->hitSquares[i]].y + 1) * 8 + 3; } } } @@ -3581,32 +3627,32 @@ static void ShowHideWinSlotCursor(u8 selectionId) } } -static void CreateBoardIconSprites(void) +static void CreateWheelIconSprites(void) { u8 i, j; - u16 k; + u16 angle; struct SpriteSheet s; - LZ77UnCompWram(sSpriteSheet_BoardIcons.data, gDecompressionBuffer); + LZ77UnCompWram(sSpriteSheet_WheelIcons.data, gDecompressionBuffer); s.data = gDecompressionBuffer; - s.size = sSpriteSheet_BoardIcons.size; - s.tag = sSpriteSheet_BoardIcons.tag; + s.size = sSpriteSheet_WheelIcons.size; + s.tag = sSpriteSheet_WheelIcons.tag; LoadSpriteSheet(&s); - k = 15; + angle = 15; for (i = 0; i < NUM_BOARD_COLORS; i++) { for (j = 0; j < NUM_BOARD_POKES; j++) { u8 spriteId; - spriteId = sRoulette->spriteIds[(i * NUM_BOARD_POKES) + SPR_BOARD_ICONS + j] = CreateBoardIconSprite(&sSpriteTemplates_BoardIcons[i * NUM_BOARD_POKES + j], 40, &k); + spriteId = sRoulette->spriteIds[(i * NUM_BOARD_POKES) + SPR_WHEEL_ICONS + j] = CreateWheelIconSprite(&sSpriteTemplates_WheelIcons[i * NUM_BOARD_POKES + j], 40, &angle); gSprites[spriteId].animPaused = TRUE; gSprites[spriteId].affineAnimPaused = TRUE; } } } -static void SpriteCB_BoardIcon(struct Sprite *sprite) +static void SpriteCB_WheelIcon(struct Sprite *sprite) { s16 cos; s16 sin; @@ -3713,9 +3759,9 @@ static u8 GetMultiplierAnimId(u8 selectionId) static void SetMultiplierSprite(u8 selectionId) { - struct Sprite *s = &gSprites[sRoulette->spriteIds[SPR_MULTIPLIER]]; - s->animCmdIndex = GetMultiplierAnimId(selectionId); - s->oam.tileNum = s->sheetTileStart + (*s->anims + s->animCmdIndex)->type; + struct Sprite *sprite = &gSprites[sRoulette->spriteIds[SPR_MULTIPLIER]]; + sprite->animCmdIndex = GetMultiplierAnimId(selectionId); + sprite->oam.tileNum = sprite->sheetTileStart + (*sprite->anims + sprite->animCmdIndex)->type; } static void SetBallCounterNumLeft(u8 numBalls) @@ -3776,16 +3822,18 @@ static void SpriteCB_GridSquare(struct Sprite *sprite) sprite->pos2.x = sRoulette->gridX; } -static void CreateBoardCenterSprite(void) +static void CreateWheelCenterSprite(void) { u8 spriteId; struct SpriteSheet s; - LZ77UnCompWram(sSpriteSheet_BoardCenter.data, gDecompressionBuffer); + LZ77UnCompWram(sSpriteSheet_WheelCenter.data, gDecompressionBuffer); s.data = gDecompressionBuffer; - s.size = sSpriteSheet_BoardCenter.size; - s.tag = sSpriteSheet_BoardCenter.tag; + s.size = sSpriteSheet_WheelCenter.size; + s.tag = sSpriteSheet_WheelCenter.tag; LoadSpriteSheet(&s); - spriteId = CreateSprite(&sSpriteTemplate_BoardCenter, 116, 80, 81); + // This sprite id isn't saved because it doesn't need to be referenced again + // but by virtue of creation order it's SPR_WHEEL_CENTER + spriteId = CreateSprite(&sSpriteTemplate_WheelCenter, 116, 80, 81); gSprites[spriteId].data[0] = sRoulette->wheelAngle; gSprites[spriteId].data[1] = 0; gSprites[spriteId].animPaused = TRUE; @@ -3793,17 +3841,17 @@ static void CreateBoardCenterSprite(void) gSprites[spriteId].coordOffsetEnabled = TRUE; } -static void SpriteCB_BoardCenter(struct Sprite *sprite) +static void SpriteCB_WheelCenter(struct Sprite *sprite) { - u32 t = sprite->oam.matrixNum; - struct OamMatrix *m = &gOamMatrices[0]; - m[t].d = sRoulette->wheelRotation.a; - m[t].a = sRoulette->wheelRotation.a; - m[t].b = sRoulette->wheelRotation.b; - m[t].c = sRoulette->wheelRotation.c; + u32 matrixNum = sprite->oam.matrixNum; + struct OamMatrix *matrix = &gOamMatrices[0]; + matrix[matrixNum].d = sRoulette->wheelRotation.a; + matrix[matrixNum].a = sRoulette->wheelRotation.a; + matrix[matrixNum].b = sRoulette->wheelRotation.b; + matrix[matrixNum].c = sRoulette->wheelRotation.c; } -static void CreateBoardBallSprites(void) +static void CreateWheelBallSprites(void) { u8 i; for (i = 0; i < BALLS_PER_ROUND; i++) @@ -3817,9 +3865,9 @@ static void CreateBoardBallSprites(void) } } -static void HideBoardBalls(void) +static void HideWheelBalls(void) { - u8 spriteId = sRoulette->spriteIds[SPR_BALL_1]; + u8 spriteId = sRoulette->spriteIds[SPR_WHEEL_BALLS]; u8 i; for (i = 0; i < BALLS_PER_ROUND; i++) { @@ -3834,69 +3882,95 @@ static void HideBoardBalls(void) } } -static s16 sub_8143AC8(struct Sprite *sprite) +// Sprite data for the roulette ball +#define sStuckOnWheelLeft data[0] // if true, ball got stuck in left half of wheel, else got stuck in right half +#define sState data[1] +#define sSlotMidpointDist data[2] +#define sBallAngle data[3] +#define sBallDistToCenter data[4] +#define sBallWheelAngle data[6] + +#define LandBall() \ +{ \ + sRoulette->ballState = BALL_STATE_LANDED; \ + sRoulette->ballRolling = FALSE; \ + StartSpriteAnim(sprite, sprite->animCmdIndex + 3); \ + UpdateSlotBelowBall(sprite); \ + sprite->sBallDistToCenter = 30; \ + UpdateBallRelativeWheelAngle(sprite); \ + sprite->sBallWheelAngle = (sprite->sBallWheelAngle / DEGREES_PER_SLOT) * DEGREES_PER_SLOT + 15; \ + sprite->callback = SpriteCB_BallLandInSlot; \ + m4aSongNumStartOrChange(SE_HASHI); \ +} + +// "wheelAngle" and "sBallAngle" are relative to the screen (e.g. 180 degrees for either is always screen bottom) +// "sBallWheelAngle" is the ball's angle relative to the wheel +// e.g. if the ball is screen right (90), but wheel is upside down (180), sBallWheelAngle is 270 (because the ball is wheel left) +static s16 UpdateBallRelativeWheelAngle(struct Sprite *sprite) { - if (sRoulette->wheelAngle > sprite->data[3]) + if (sRoulette->wheelAngle > sprite->sBallAngle) { - sprite->data[6] = 360 - sRoulette->wheelAngle + sprite->data[3]; - if (sprite->data[6] >= 360) - sprite->data[6] -= 360; + sprite->sBallWheelAngle = 360 - sRoulette->wheelAngle + sprite->sBallAngle; + if (sprite->sBallWheelAngle >= 360) + sprite->sBallWheelAngle -= 360; } else { - sprite->data[6] = sprite->data[3] - sRoulette->wheelAngle; + sprite->sBallWheelAngle = sprite->sBallAngle - sRoulette->wheelAngle; } - return sprite->data[6]; + return sprite->sBallWheelAngle; } -static u8 sub_8143B14(struct Sprite *sprite) +static u8 UpdateSlotBelowBall(struct Sprite *sprite) { - sRoulette->hitSlot = sub_8143AC8(sprite) / 30.0f; + sRoulette->hitSlot = UpdateBallRelativeWheelAngle(sprite) / (float) DEGREES_PER_SLOT; return sRoulette->hitSlot; } -static s16 sub_8143B48(struct Sprite *sprite) +static s16 GetBallDistanceToSlotMidpoint(struct Sprite *sprite) { - s16 t = sub_8143AC8(sprite) % 30; - u16 z; - if (t == 14) + s16 angleIntoSlot = UpdateBallRelativeWheelAngle(sprite) % DEGREES_PER_SLOT; + u16 distanceToMidpoint; + if (angleIntoSlot == SLOT_MIDPOINT) { - z = 0; - return sprite->data[2] = z; + // Ball is at midpoint, ok to drop into slot + distanceToMidpoint = 0; + return sprite->sSlotMidpointDist = distanceToMidpoint; } - else if (t > 13) + else if (angleIntoSlot >= SLOT_MIDPOINT) { - z = 43 - t; - return sprite->data[2] = z; + // Ball has passed midpoint, travel to midpoint of next slot + distanceToMidpoint = (DEGREES_PER_SLOT - 1) + SLOT_MIDPOINT - angleIntoSlot; + return sprite->sSlotMidpointDist = distanceToMidpoint; } else { - z = 14 - t; - return sprite->data[2] = z; + // Ball hasn't reached midpoint of this slot yet + distanceToMidpoint = SLOT_MIDPOINT - angleIntoSlot; + return sprite->sSlotMidpointDist = distanceToMidpoint; } } -static void sub_8143B84(struct Sprite *sprite) +static void UpdateBallPos(struct Sprite *sprite) { s16 sin, cos; + sRoulette->ballAngleSpeed += sRoulette->ballAngleAccel; + sRoulette->ballAngle += sRoulette->ballAngleSpeed; - sRoulette->var8C += sRoulette->var90; - sRoulette->var88 += sRoulette->var8C; + if (sRoulette->ballAngle >= 360) + sRoulette->ballAngle -= 360.0f; + else if (sRoulette->ballAngle < 0.0f) + sRoulette->ballAngle += 360.0f; - if (sRoulette->var88 >= 360) - sRoulette->var88 -= 360.0f; - else if (sRoulette->var88 < 0.0f) - sRoulette->var88 += 360.0f; - - sprite->data[3] = sRoulette->var88; - sRoulette->var98 += sRoulette->var9C; - sRoulette->var94 += sRoulette->var98; - sprite->data[4] = sRoulette->var94; - sin = Sin2(sprite->data[3]); - cos = Cos2(sprite->data[3]); - sprite->pos2.x = sin * sprite->data[4] >> 12; - sprite->pos2.y = -cos * sprite->data[4] >> 12; + sprite->sBallAngle = sRoulette->ballAngle; + sRoulette->ballFallSpeed += sRoulette->ballFallAccel; + sRoulette->ballDistToCenter += sRoulette->ballFallSpeed; + sprite->sBallDistToCenter = sRoulette->ballDistToCenter; + sin = Sin2(sprite->sBallAngle); + cos = Cos2(sprite->sBallAngle); + sprite->pos2.x = sin * sprite->sBallDistToCenter >> 12; + sprite->pos2.y = -cos * sprite->sBallDistToCenter >> 12; if (IsSEPlaying()) { m4aMPlayPanpotControl(&gMPlayInfo_SE1, 0xFFFF, sprite->pos2.x); @@ -3904,80 +3978,65 @@ static void sub_8143B84(struct Sprite *sprite) } } -static void sub_8143C90(struct Sprite *sprite) +// Snap to the bottom of the slot and continue to spin with the wheel +static void SpriteCB_BallLandInSlot(struct Sprite *sprite) { s16 sin, cos; - sprite->data[3] = sRoulette->wheelAngle + sprite->data[6]; - if (sprite->data[3] >= 360) - sprite->data[3] -= 360; - sin = Sin2(sprite->data[3]); - cos = Cos2(sprite->data[3]); - sprite->pos2.x = sin * sprite->data[4] >> 12; - sprite->pos2.y = -cos * sprite->data[4] >> 12; + sprite->sBallAngle = sRoulette->wheelAngle + sprite->sBallWheelAngle; + if (sprite->sBallAngle >= 360) + sprite->sBallAngle -= 360; + sin = Sin2(sprite->sBallAngle); + cos = Cos2(sprite->sBallAngle); + sprite->pos2.x = sin * sprite->sBallDistToCenter >> 12; + sprite->pos2.y = -cos * sprite->sBallDistToCenter >> 12; sprite->pos2.y += gSpriteCoordOffsetY; } -static void sub_8143CFC(struct Sprite *sprite) +static void SpriteCB_UnstickBall_ShroomishBallFall(struct Sprite *sprite) { - sub_8143B84(sprite); + UpdateBallPos(sprite); sprite->data[2]++; - if (sprite->data[4] < -132 || sprite->data[4] > 80) + if (sprite->sBallDistToCenter < -132 || sprite->sBallDistToCenter > 80) sprite->invisible = TRUE; else sprite->invisible = FALSE; - if (sprite->data[2] >= 30) + if (sprite->data[2] >= DEGREES_PER_SLOT) { - if (!sprite->data[0]) + if (!sprite->sStuckOnWheelLeft) { - if (sRoulette->var94 <= sRoulette->varA0 - 2.0f) + if (sRoulette->ballDistToCenter <= sRoulette->varA0 - 2.0f) { - sRoulette->ballState = BALL_STATE_LANDED; - sRoulette->ballRolling = FALSE; - StartSpriteAnim(sprite, sprite->animCmdIndex + 3); - sub_8143B14(sprite); - sprite->data[4] = 30; - sub_8143AC8(sprite); - sprite->data[6] = (sprite->data[6] / 30) * 30 + 15; - sprite->callback = sub_8143C90; - m4aSongNumStartOrChange(SE_HASHI); - sRoulette->var9C = sRoulette->var98 = 0.0f; - sRoulette->var8C = -1.0f; + LandBall() + sRoulette->ballFallAccel = sRoulette->ballFallSpeed = 0.0f; + sRoulette->ballAngleSpeed = -1.0f; } } else { - if (sRoulette->var94 >= sRoulette->varA0 - 2.0f) + if (sRoulette->ballDistToCenter >= sRoulette->varA0 - 2.0f) { - sRoulette->ballState = BALL_STATE_LANDED; - sRoulette->ballRolling = FALSE; - StartSpriteAnim(sprite, sprite->animCmdIndex + 3); - sub_8143B14(sprite); - sprite->data[4] = 30; - sub_8143AC8(sprite); - sprite->data[6] = (sprite->data[6] / 30) * 30 + 15; - sprite->callback = sub_8143C90; - m4aSongNumStartOrChange(SE_HASHI); - sRoulette->var9C = sRoulette->var98 = 0.0f; - sRoulette->var8C = -1.0f; + LandBall() + sRoulette->ballFallAccel = sRoulette->ballFallSpeed = 0.0f; + sRoulette->ballAngleSpeed = -1.0f; } } } } -static void SpriteCB_Shroomish(struct Sprite *sprite) +static void SpriteCB_UnstickBall_Shroomish(struct Sprite *sprite) { - float f0, f1, f2; - sub_8143B84(sprite); + float slotOffset, ballFallDist, ballFallSpeed; + UpdateBallPos(sprite); - switch (sprite->data[3]) + switch (sprite->sBallAngle) { case 0: - if (sprite->data[0] != 1) + if (sprite->sStuckOnWheelLeft != TRUE) { - f0 = sprite->data[7]; - f1 = (f0 * sRouletteTables[sRoulette->tableId].var01 + (sRouletteTables[sRoulette->tableId].var02 - 1)); - f2 = (f0 / sRouletteTables[sRoulette->tableId].var0C); + slotOffset = sprite->data[7]; + ballFallDist = (slotOffset * sRouletteTables[sRoulette->tableId].randDistanceHigh + (sRouletteTables[sRoulette->tableId].randDistanceLow - 1)); + ballFallSpeed = (slotOffset / sRouletteTables[sRoulette->tableId].shroomish.fallSlowdown); } else { @@ -3985,11 +4044,11 @@ static void SpriteCB_Shroomish(struct Sprite *sprite) } break; case 180: - if (sprite->data[0] != 0) + if (sprite->sStuckOnWheelLeft) { - f0 = sprite->data[7]; - f1 = (f0 * sRouletteTables[sRoulette->tableId].var01 + (sRouletteTables[sRoulette->tableId].var02 - 1)); - f2 = -(f0 / sRouletteTables[sRoulette->tableId].var0C); + slotOffset = sprite->data[7]; + ballFallDist = (slotOffset * sRouletteTables[sRoulette->tableId].randDistanceHigh + (sRouletteTables[sRoulette->tableId].randDistanceLow - 1)); + ballFallSpeed = -(slotOffset / sRouletteTables[sRoulette->tableId].shroomish.fallSlowdown); } else { @@ -3999,38 +4058,30 @@ static void SpriteCB_Shroomish(struct Sprite *sprite) default: return; } - sRoulette->varA0 = sRoulette->var94; - sRoulette->var98 = f2; - sRoulette->var9C = -((f2 * 2.0f) / f1 + (2.0f / (f1 * f1))); - sRoulette->var8C = 0.0f; + sRoulette->varA0 = sRoulette->ballDistToCenter; + sRoulette->ballFallSpeed = ballFallSpeed; + sRoulette->ballFallAccel = -((ballFallSpeed * 2.0f) / ballFallDist + (2.0f / (ballFallDist * ballFallDist))); + sRoulette->ballAngleSpeed = 0.0f; sprite->animPaused = FALSE; sprite->animNum = 0; sprite->animBeginning = TRUE; sprite->animEnded = FALSE; - sprite->callback = sub_8143CFC; + sprite->callback = SpriteCB_UnstickBall_ShroomishBallFall; sprite->data[2] = 0; } -static void sub_8143FA4(struct Sprite *sprite) +static void SpriteCB_UnstickBall_TaillowDrop(struct Sprite *sprite) { sprite->pos2.y = (s16)(sprite->data[2] * 0.05f * sprite->data[2]) - 45; sprite->data[2]++; - if (sprite->data[2] > 29 && sprite->pos2.y >= 0) + if (sprite->data[2] >= DEGREES_PER_SLOT && sprite->pos2.y >= 0) { - sRoulette->ballState = BALL_STATE_LANDED; - sRoulette->ballRolling = FALSE; - StartSpriteAnim(sprite, sprite->animCmdIndex + 3); - sub_8143B14(sprite); - sprite->data[4] = 30; - sub_8143AC8(sprite); - sprite->data[6] = (sprite->data[6] / 30) * 30 + 15; - sprite->callback = sub_8143C90; - m4aSongNumStartOrChange(SE_HASHI); + LandBall() sRoulette->ballUnstuck = TRUE; } } -static void sub_8144050(struct Sprite *sprite) +static void SpriteCB_UnstickBall_TaillowPickUp(struct Sprite *sprite) { if (sprite->data[2]++ < 45) { @@ -4060,224 +4111,228 @@ static void sub_8144050(struct Sprite *sprite) sprite->animBeginning = TRUE; sprite->animEnded = FALSE; sprite->data[2] = 0; - sprite->callback = sub_8143FA4; + sprite->callback = SpriteCB_UnstickBall_TaillowDrop; m4aSongNumStart(SE_NAGERU); } } } -static void sub_8144128(struct Sprite *sprite) +static void SpriteCB_UnstickBall_Taillow(struct Sprite *sprite) { - sub_8143B84(sprite); - switch (sprite->data[3]) + UpdateBallPos(sprite); + + switch (sprite->sBallAngle) { case 90: - if (sprite->data[0] != 1) + if (sprite->sStuckOnWheelLeft != TRUE) { - sprite->callback = &sub_8144050; + sprite->callback = &SpriteCB_UnstickBall_TaillowPickUp; sprite->data[2] = 0; } break; case 270: - if (sprite->data[0] != 0) + if (sprite->sStuckOnWheelLeft) { - sprite->callback = &sub_8144050; + sprite->callback = &SpriteCB_UnstickBall_TaillowPickUp; sprite->data[2] = 0; } break; } } -static void CreateClearSpeciesSprite(struct Sprite *sprite) +// The below SpriteCB_UnstickBall_* callbacks handle the ball while its being cleared by Shroomish/Taillow +// For what Shroomish/Taillow do during this sequence, see SpriteCB_Shroomish / SpriteCB_Taillow +static void SpriteCB_UnstickBall(struct Sprite *sprite) { - sub_8143B84(sprite); + UpdateBallPos(sprite); switch (sRoulette->useTaillow) { default: case FALSE: CreateShroomishSprite(sprite); - sprite->callback = SpriteCB_Shroomish; + sprite->callback = SpriteCB_UnstickBall_Shroomish; break; case TRUE: CreateTaillowSprite(sprite); - sprite->callback = sub_8144128; + sprite->callback = SpriteCB_UnstickBall_Taillow; break; } } -static void prev_quest_read_x24_hm_usage(struct Sprite *sprite) +#define sStillStuck data[0] + +static void SpriteCB_RollBall_TryLandAdjacent(struct Sprite *sprite) { - sub_8143B84(sprite); + UpdateBallPos(sprite); + if (sprite->data[2]-- == 16) - sRoulette->var98 *= -1.0f; + sRoulette->ballFallSpeed *= -1.0f; + if (sprite->data[2] == 0) { - if (!sprite->data[0]) + if (!sprite->sStillStuck) { - sRoulette->ballState = BALL_STATE_LANDED; - sRoulette->ballRolling = FALSE; - StartSpriteAnim(sprite, sprite->animCmdIndex + 3); - sub_8143B14(sprite); - sprite->data[4] = 30; - sub_8143AC8(sprite); - sprite->data[6] = (sprite->data[6] / 30) * 30 + 15; - sprite->callback = sub_8143C90; - m4aSongNumStartOrChange(SE_HASHI); + // Ball can successfully fall into adjacent space + LandBall() } else { + // Ball is stuck, need Shroomish/Taillow to clear ball sprite->animPaused = TRUE; m4aSongNumStart(SE_KON); - sub_8144A24(sprite); + SetBallStuck(sprite); } } } -static void sub_8144264(struct Sprite *sprite) +static void SpriteCB_RollBall_TryLand(struct Sprite *sprite) { - sub_8143B84(sprite); + UpdateBallPos(sprite); sprite->data[2] = 0; - sub_8143B14(sprite); + UpdateSlotBelowBall(sprite); if (!(sRouletteSlots[sRoulette->hitSlot].flag & sRoulette->hitFlags)) { - sRoulette->ballState = BALL_STATE_LANDED; - sRoulette->ballRolling = FALSE; - StartSpriteAnim(sprite, sprite->animCmdIndex + 3); - sub_8143B14(sprite); - sprite->data[4] = 30; - sub_8143AC8(sprite); - sprite->data[6] = (sprite->data[6] / 30) * 30 + 15; - sprite->callback = sub_8143C90; - m4aSongNumStartOrChange(SE_HASHI); + // Space is empty, land successfully + LandBall() } else { + // Space has already been landed on, try to fall into adjacent space u8 slotId; - u32 z; + u32 fallRight; m4aSongNumStart(SE_KON); - z = Random() & 1; - if (z) + fallRight = Random() & 1; + if (fallRight) { - sRoulette->var8C = 0.0f; - sRoulette->var7F = slotId = (sRoulette->hitSlot + 1) % NUM_ROULETTE_SLOTS; + sRoulette->ballAngleSpeed = 0.0f; + sRoulette->stuckHitSlot = slotId = (sRoulette->hitSlot + 1) % NUM_ROULETTE_SLOTS; } - else + else // fall left { float temp; - sRoulette->var8C = (temp = sRouletteTables[sRoulette->tableId].var1C) * 2.0f; + sRoulette->ballAngleSpeed = (temp = sRouletteTables[sRoulette->tableId].var1C) * 2.0f; slotId = (sRoulette->hitSlot + NUM_ROULETTE_SLOTS - 1) % NUM_ROULETTE_SLOTS; - sRoulette->var7F = sRoulette->hitSlot; + sRoulette->stuckHitSlot = sRoulette->hitSlot; } if (sRouletteSlots[slotId].flag & sRoulette->hitFlags) { - sprite->data[0] = 1; - sprite->data[2] = sRouletteTables[sRoulette->tableId].var02; + // Attempted adjacent space has also been landed on + sprite->sStillStuck = TRUE; + sprite->data[2] = sRouletteTables[sRoulette->tableId].randDistanceLow; } else { - sprite->data[0] = sRouletteSlots[slotId].flag & sRoulette->hitFlags; + sprite->sStillStuck = FALSE; if (sRoulette->tableId) { - sprite->data[2] = sRouletteTables[sRoulette->tableId].var01; + sprite->data[2] = sRouletteTables[sRoulette->tableId].randDistanceHigh; } else { - sprite->data[2] = sRouletteTables[sRoulette->tableId].var02; - if (z) - sRoulette->var8C = 0.5f; + sprite->data[2] = sRouletteTables[sRoulette->tableId].randDistanceLow; + if (fallRight) + sRoulette->ballAngleSpeed = 0.5f; else - sRoulette->var8C = -1.5f; + sRoulette->ballAngleSpeed = -1.5f; } } - sRoulette->var98 = 0.085f; - sprite->callback = prev_quest_read_x24_hm_usage; - sprite->data[1] = 5; + sRoulette->ballFallSpeed = 0.085f; + sprite->callback = SpriteCB_RollBall_TryLandAdjacent; + sprite->sState = 5; } } -static void sub_8144410(struct Sprite *sprite) +#undef sStillStuck + +static void SpriteCB_RollBall_Slow(struct Sprite *sprite) { - sub_8143B84(sprite); - if (sRoulette->var8C > 0.5f) + UpdateBallPos(sprite); + if (sRoulette->ballAngleSpeed > 0.5f) return; - sub_8143B14(sprite); - if (!sub_8143B48(sprite)) + UpdateSlotBelowBall(sprite); + if (GetBallDistanceToSlotMidpoint(sprite) == 0) { - sRoulette->var90 = 0.0f; - sRoulette->var8C -= (float)(sRouletteTables[sRoulette->tableId].wheelSpeed) + // Reached slot to land in + sRoulette->ballAngleAccel = 0.0f; + sRoulette->ballAngleSpeed -= (float)(sRouletteTables[sRoulette->tableId].wheelSpeed) / (sRouletteTables[sRoulette->tableId].wheelDelay + 1); - sprite->data[1] = 4; - sprite->callback = sub_8144264; + sprite->sState = 4; + sprite->callback = SpriteCB_RollBall_TryLand; } else { - if (sRoulette->var90 != 0.0f) + if (sRoulette->ballAngleAccel != 0.0f) { - if (sRoulette->var8C < 0.0f) + if (sRoulette->ballAngleSpeed < 0.0f) { - sRoulette->var90 = 0.0f; - sRoulette->var8C = 0.0f; - sRoulette->var98 /= 1.2; + sRoulette->ballAngleAccel = 0.0f; + sRoulette->ballAngleSpeed = 0.0f; + sRoulette->ballFallSpeed /= 1.2; } } } } -static void sub_8144514(struct Sprite *sprite) +static void SpriteCB_RollBall_Medium(struct Sprite *sprite) { - sub_8143B84(sprite); - if (sRoulette->var94 > 40.f) + UpdateBallPos(sprite); + if (sRoulette->ballDistToCenter > 40.0f) return; - sRoulette->var98 = -(4.0f / (float)(sRoulette->var86)); - sRoulette->var90 = -(sRoulette->var8C / (float)(sRoulette->var86)); + sRoulette->ballFallSpeed = -(4.0f / (float)(sRoulette->ballTravelDistSlow)); + sRoulette->ballAngleAccel = -(sRoulette->ballAngleSpeed / (float)(sRoulette->ballTravelDistSlow)); sprite->animNum = 2; sprite->animBeginning = TRUE; sprite->animEnded = FALSE; - sprite->data[1] = 3; - sprite->callback = sub_8144410; + sprite->sState = 3; + sprite->callback = SpriteCB_RollBall_Slow; } -static void sub_81445D8(struct Sprite *sprite) +static void SpriteCB_RollBall_Fast(struct Sprite *sprite) { - sub_8143B84(sprite); - if (sRoulette->var94 > 60.0f) + UpdateBallPos(sprite); + if (sRoulette->ballDistToCenter > 60.0f) return; m4aSongNumStartOrChange(SE_TAMAKORO_E); - sRoulette->var98 = -(20.0f / (float)(sRoulette->var84)); - sRoulette->var90 = ((1.0f - sRoulette->var8C) / (float)(sRoulette->var84)); + sRoulette->ballFallSpeed = -(20.0f / (float)(sRoulette->ballTravelDistMed)); + sRoulette->ballAngleAccel = ((1.0f - sRoulette->ballAngleSpeed) / (float)(sRoulette->ballTravelDistMed)); sprite->animNum = 1; sprite->animBeginning = TRUE; sprite->animEnded = FALSE; - sprite->data[1] = 2; - sprite->callback = sub_8144514; + sprite->sState = 2; + sprite->callback = SpriteCB_RollBall_Medium; } -static void sub_81446AC(struct Sprite *sprite) +static void SpriteCB_RollBall_Start(struct Sprite *sprite) { - sprite->data[1] = 1; + sprite->sState = 1; sprite->data[2] = 0; - sub_8143B84(sprite); + UpdateBallPos(sprite); sprite->invisible = FALSE; - sprite->callback = sub_81445D8; + sprite->callback = SpriteCB_RollBall_Fast; } -static void CreateShroomishSprite(struct Sprite *sprite) +// Sprite data for Shroomish / its shadows +#define sMonSpriteId data[4] +#define sBallShadowSpriteId data[5] +#define sMonShadowSpriteId data[6] + +static void CreateShroomishSprite(struct Sprite *ball) { u16 t; u8 i; - s16 s[2][2] = { + s16 coords[2][2] = { {116, 44}, {116, 112} }; - struct Roulette *p; + struct Roulette *roulette; - t = sprite->data[7] - 2; - p = sRoulette; // why??? + t = ball->data[7] - 2; + roulette = sRoulette; // Unnecessary, needed to match sRoulette->spriteIds[SPR_CLEAR_MON] = CreateSprite(&sSpriteTemplate_Shroomish, 36, -12, 50); - sRoulette->spriteIds[SPR_CLEAR_MON_SHADOW_1] = CreateSprite(&sSpriteTemplate_ShroomishShadow[0], s[sprite->data[0]][0], s[sprite->data[0]][1], 59); + sRoulette->spriteIds[SPR_CLEAR_MON_SHADOW_1] = CreateSprite(&sSpriteTemplate_ShroomishShadow[0], coords[ball->sStuckOnWheelLeft][0], coords[ball->sStuckOnWheelLeft][1], 59); sRoulette->spriteIds[SPR_CLEAR_MON_SHADOW_2] = CreateSprite(&sSpriteTemplate_ShroomishShadow[1], 36, 140, 51); gSprites[sRoulette->spriteIds[SPR_CLEAR_MON_SHADOW_2]].oam.objMode = ST_OAM_OBJ_BLEND; for (i = 0; i < 3; i++) @@ -4286,85 +4341,88 @@ static void CreateShroomishSprite(struct Sprite *sprite) gSprites[sRoulette->spriteIds[i + SPR_CLEAR_MON]].invisible = TRUE; gSprites[sRoulette->spriteIds[i + SPR_CLEAR_MON]].animPaused = TRUE; gSprites[sRoulette->spriteIds[i + SPR_CLEAR_MON]].affineAnimPaused = TRUE; - gSprites[sRoulette->spriteIds[i + SPR_CLEAR_MON]].data[4] = sRoulette->spriteIds[SPR_CLEAR_MON]; - gSprites[sRoulette->spriteIds[i + SPR_CLEAR_MON]].data[5] = sRoulette->spriteIds[SPR_CLEAR_MON_SHADOW_1]; - gSprites[sRoulette->spriteIds[i + SPR_CLEAR_MON]].data[6] = sRoulette->spriteIds[SPR_CLEAR_MON_SHADOW_2]; + gSprites[sRoulette->spriteIds[i + SPR_CLEAR_MON]].sMonSpriteId = sRoulette->spriteIds[SPR_CLEAR_MON]; + gSprites[sRoulette->spriteIds[i + SPR_CLEAR_MON]].sBallShadowSpriteId = sRoulette->spriteIds[SPR_CLEAR_MON_SHADOW_1]; + gSprites[sRoulette->spriteIds[i + SPR_CLEAR_MON]].sMonShadowSpriteId = sRoulette->spriteIds[SPR_CLEAR_MON_SHADOW_2]; gSprites[sRoulette->spriteIds[i + SPR_CLEAR_MON]].data[2] = t; - gSprites[sRoulette->spriteIds[i + SPR_CLEAR_MON]].data[3] = (sprite->data[7] * sRouletteTables[sRoulette->tableId].var01) + - (sRouletteTables[sRoulette->tableId].var02 + 0xFFFF); + gSprites[sRoulette->spriteIds[i + SPR_CLEAR_MON]].data[3] = (ball->data[7] * sRouletteTables[sRoulette->tableId].randDistanceHigh) + + (sRouletteTables[sRoulette->tableId].randDistanceLow + 0xFFFF); } gSprites[sRoulette->spriteIds[SPR_CLEAR_MON_SHADOW_1]].coordOffsetEnabled = TRUE; - sRoulette->var38 = sprite; + sRoulette->ball = ball; } -static void CreateTaillowSprite(struct Sprite *sprite) +static void CreateTaillowSprite(struct Sprite *ball) { u8 i = 0; s16 t; - s16 s[2][2] = { - {256, 84}, - {-16, 84} + s16 coords[2][2] = { + {256, 84}, // Right approach + {-16, 84} // Left approach }; - t = sprite->data[7] - 2; - sRoulette->spriteIds[SPR_CLEAR_MON] = CreateSprite(&sSpriteTemplate_Taillow, s[sprite->data[0]][0], s[sprite->data[0]][1], 50); - StartSpriteAnim(&gSprites[sRoulette->spriteIds[SPR_CLEAR_MON]], sprite->data[0]); - sRoulette->spriteIds[SPR_CLEAR_MON_SHADOW_1] = CreateSprite(&sSpriteTemplate_TaillowShadow, s[sprite->data[0]][0], s[sprite->data[0]][1], 51); + t = ball->data[7] - 2; + sRoulette->spriteIds[SPR_CLEAR_MON] = CreateSprite(&sSpriteTemplate_Taillow, coords[ball->sStuckOnWheelLeft][0], coords[ball->sStuckOnWheelLeft][1], 50); + StartSpriteAnim(&gSprites[sRoulette->spriteIds[SPR_CLEAR_MON]], ball->sStuckOnWheelLeft); + sRoulette->spriteIds[SPR_CLEAR_MON_SHADOW_1] = CreateSprite(&sSpriteTemplate_TaillowShadow, coords[ball->sStuckOnWheelLeft][0], coords[ball->sStuckOnWheelLeft][1], 51); gSprites[sRoulette->spriteIds[SPR_CLEAR_MON_SHADOW_1]].affineAnimPaused = TRUE; gSprites[sRoulette->spriteIds[SPR_CLEAR_MON_SHADOW_1]].animPaused = TRUE; - sprite->data[7] = (t * sRouletteTables[sRoulette->tableId].var01) + (sRouletteTables[sRoulette->tableId].var10 + 45); + ball->data[7] = (t * sRouletteTables[sRoulette->tableId].randDistanceHigh) + (sRouletteTables[sRoulette->tableId].taillow.baseDropDelay + 45); for (; i < 2; i++) { - gSprites[sRoulette->spriteIds[SPR_CLEAR_MON + i]].data[4] = sRoulette->spriteIds[SPR_CLEAR_MON]; - gSprites[sRoulette->spriteIds[SPR_CLEAR_MON + i]].data[5] = sRoulette->spriteIds[SPR_CLEAR_MON_SHADOW_1]; - gSprites[sRoulette->spriteIds[SPR_CLEAR_MON + i]].data[6] = sRoulette->spriteIds[SPR_CLEAR_MON_SHADOW_1]; + gSprites[sRoulette->spriteIds[SPR_CLEAR_MON + i]].sMonSpriteId = sRoulette->spriteIds[SPR_CLEAR_MON]; + gSprites[sRoulette->spriteIds[SPR_CLEAR_MON + i]].sBallShadowSpriteId = sRoulette->spriteIds[SPR_CLEAR_MON_SHADOW_1]; + gSprites[sRoulette->spriteIds[SPR_CLEAR_MON + i]].sMonShadowSpriteId = sRoulette->spriteIds[SPR_CLEAR_MON_SHADOW_1]; gSprites[sRoulette->spriteIds[SPR_CLEAR_MON + i]].data[2] = t; - gSprites[sRoulette->spriteIds[SPR_CLEAR_MON + i]].data[3] = sprite->data[7] - 45; + gSprites[sRoulette->spriteIds[SPR_CLEAR_MON + i]].data[3] = ball->data[7] - 45; } - sRoulette->var38 = sprite; + sRoulette->ball = ball; } -static void sub_8144A24(struct Sprite *sprite) +static void SetBallStuck(struct Sprite *sprite) { - u8 z; - u16 o; - u8 h = 0; - u8 j = 5; - u8 p = 0; + u8 slotId; + u16 angle; + u8 numCandidates = 0; + u8 maxSlotToCheck = 5; + u8 betSlotId = 0; u8 i = 0; - u8 val; - u8 s[10] = {}; + u8 slotsToSkip; + u8 slotCandidates[NUM_ROULETTE_SLOTS - 2] = {}; // - 2 because we know at least 2 are already occupied u16 rand = Random(); sRoulette->ballState = BALL_STATE_STUCK; sRoulette->ballStuck = TRUE; sRoulette->ballUnstuck = FALSE; sRoulette->hitSlot = 0xFF; - sRoulette->var88 = sprite->data[3]; - sRoulette->var98 = 0.0f; - sRoulette->var8C = sRouletteTables[sRoulette->tableId].var1C; + sRoulette->ballAngle = sprite->sBallAngle; + sRoulette->ballFallSpeed = 0.0f; + sRoulette->ballAngleSpeed = sRouletteTables[sRoulette->tableId].var1C; - o = (sRoulette->tableId * 30 + 33) + (1 - sRoulette->useTaillow) * 15; + angle = (sRoulette->tableId * DEGREES_PER_SLOT + 33) + (1 - sRoulette->useTaillow) * 15; + + // Determine which quadrant the ball got stuck in + // Use either Shroomish or Taillow to clear the ball depending on where it's stuck for (i = 0; i < 4; i++) { - if (o < sprite->data[3] && sprite->data[3] <= o + 90) + if (angle < sprite->sBallAngle && sprite->sBallAngle <= angle + 90) { - sprite->data[0] = i / 2; + sprite->sStuckOnWheelLeft = i / 2; sRoulette->useTaillow = i % 2; break; } if (i == 3) { - sprite->data[0] = 1; + sprite->sStuckOnWheelLeft = TRUE; sRoulette->useTaillow = TRUE; break; } - o += 90; + angle += 90; } if (sRoulette->useTaillow) { - if (sprite->data[0]) + if (sprite->sStuckOnWheelLeft) PlayCry1(SPECIES_TAILLOW, -63); else PlayCry1(SPECIES_TAILLOW, 63); @@ -4374,41 +4432,47 @@ static void sub_8144A24(struct Sprite *sprite) PlayCry1(SPECIES_SHROOMISH, -63); } - val = 2; - z = (sRoulette->var7F + 2) % NUM_ROULETTE_SLOTS; + slotsToSkip = 2; + slotId = (sRoulette->stuckHitSlot + 2) % NUM_ROULETTE_SLOTS; if (sRoulette->useTaillow == TRUE && sRoulette->tableId == 1) - j += 6; + maxSlotToCheck += 6; // Check all remaining slots else - j += val; + maxSlotToCheck += slotsToSkip; // Check enough slots to guarantee an empty will be found - for (i = val; i < j; i++) + // Identify open slots on the wheel that the stuck ball could be moved to + for (i = slotsToSkip; i < maxSlotToCheck; i++) { - if (!(sRoulette->hitFlags & sRouletteSlots[z].flag)) + if (!(sRoulette->hitFlags & sRouletteSlots[slotId].flag)) { - s[h++] = i; - if (p == 0 && (sRouletteSlots[z].flag & sGridSelections[sRoulette->betSelection[sRoulette->curBallNum]].inSelectionFlags)) - p = i; + slotCandidates[numCandidates++] = i; + if (betSlotId == 0 && (sRouletteSlots[slotId].flag & sGridSelections[sRoulette->betSelection[sRoulette->curBallNum]].inSelectionFlags)) + betSlotId = i; } - z = (z + 1) % 12; + slotId = (slotId + 1) % NUM_ROULETTE_SLOTS; } + // Determine which identified slot the ball should be moved to + // The below slot ids are relative to the slot the ball got stuck on if ((sRoulette->useTaillow + 1) & sRoulette->partySpeciesFlags) { - if (p && (rand & 0xFF) < 0xc0) - sprite->data[7] = p; + // If the player has the corresponding pokemon in their party (HAS_SHROOMISH or HAS_TAILLOW), + // there's a 75% chance that the ball will be moved to a spot they bet on + // assuming it was one of the slots identified as a candidate + if (betSlotId && (rand % 256) < 192) + sprite->data[7] = betSlotId; else - sprite->data[7] = s[rand % h]; + sprite->data[7] = slotCandidates[rand % numCandidates]; } else { - sprite->data[7] = s[rand % h]; + sprite->data[7] = slotCandidates[rand % numCandidates]; } - sprite->callback = CreateClearSpeciesSprite; + sprite->callback = SpriteCB_UnstickBall; } -static const u16 gUnknown_085B7B1A[] = { +static const u16 sShroomishShadowAlphas[] = { 0x907, 0x808, 0x709, @@ -4421,8 +4485,9 @@ static const u16 gUnknown_085B7B1A[] = { 0x010, }; -static void sub_8144C70(struct Sprite *sprite) +static void SpriteCB_ShroomishExit(struct Sprite *sprite) { + // Delay for screen shaking, then exit left if (sprite->data[1]++ >= sprite->data[3]) { sprite->pos1.x -= 2; @@ -4431,16 +4496,17 @@ static void sub_8144C70(struct Sprite *sprite) if (!sRoulette->ballUnstuck) sRoulette->ballUnstuck = TRUE; DestroySprite(sprite); - sRoulette->var01 = 0; - sRoulette->var34 = gUnknown_085B7B1A[0]; + sRoulette->shroomishShadowTimer = 0; + sRoulette->shroomishShadowAlpha = sShroomishShadowAlphas[0]; } } } -static void sub_8144CD0(struct Sprite *sprite) +// Handles both the screen shake and ball shadow effect for when Shroomish unsticks the ball +static void SpriteCB_ShroomishShakeScreen(struct Sprite *sprite) { - int p; - u16 t[][4] = { + int screenShakeIdx; + u16 screenShakeOffsets[][4] = { {-1, 0, 1, 0}, {-2, 0, 2, 0}, {-3, 0, 3, 0}, @@ -4450,10 +4516,12 @@ static void sub_8144CD0(struct Sprite *sprite) { if (sprite->data[1] & 1) { - gSpriteCoordOffsetY = t[sprite->data[2] / 2][sprite->data[7]]; - p = sprite->data[7] + 1; - sprite->data[7] = p - ((p / 4) * 4); + // Shake screen + gSpriteCoordOffsetY = screenShakeOffsets[sprite->data[2] / 2][sprite->data[7]]; + screenShakeIdx = sprite->data[7] + 1; + sprite->data[7] = screenShakeIdx - ((screenShakeIdx / 4) * 4); } + // Flicker shadow sprite->invisible ^= 1; } else @@ -4464,78 +4532,83 @@ static void sub_8144CD0(struct Sprite *sprite) } } -static void sub_8144D94(struct Sprite *sprite) +static void SpriteCB_ShroomishFall(struct Sprite *sprite) { - float t; + float timer; sprite->data[1]++; - t = sprite->data[1]; - sprite->pos2.y = t * 0.039f * t; - sRoulette->var34 = gUnknown_085B7B1A[(sRoulette->var01 - 1) / 2]; - if (sRoulette->var01 < 19) - sRoulette->var01++; + timer = sprite->data[1]; + sprite->pos2.y = timer * 0.039f * timer; + sRoulette->shroomishShadowAlpha = sShroomishShadowAlphas[(sRoulette->shroomishShadowTimer - 1) / 2]; + if (sRoulette->shroomishShadowTimer < ARRAY_COUNT(sShroomishShadowAlphas) * 2 - 1) + sRoulette->shroomishShadowTimer++; if (sprite->data[1] > 60) { sprite->data[1] = 0; - sprite->callback = sub_8144C70; - gSprites[sprite->data[6]].callback = sub_8144C70; - gSprites[sprite->data[6]].data[1] = -2; - gSprites[sprite->data[5]].invisible = FALSE; - gSprites[sprite->data[5]].callback = sub_8144CD0; + sprite->callback = SpriteCB_ShroomishExit; + gSprites[sprite->sMonShadowSpriteId].callback = SpriteCB_ShroomishExit; + gSprites[sprite->sMonShadowSpriteId].data[1] = -2; + gSprites[sprite->sBallShadowSpriteId].invisible = FALSE; + gSprites[sprite->sBallShadowSpriteId].callback = SpriteCB_ShroomishShakeScreen; m4aSongNumStart(SE_W070); } } -static void sub_8144E60(struct Sprite *sprite) +static void SpriteCB_Shroomish(struct Sprite *sprite) { if (sprite->data[7] == 0) { - if (sRoulette->var38->data[0] == 0) + // Wait for the ball to be a specific angle (or its 180 degree opposite) specified by the table + // Once it is, reveal the shadow for Shroomish falling in + if (!sRoulette->ball->sStuckOnWheelLeft) { - if (sRoulette->var38->data[3] != sRouletteTables[sRoulette->tableId].var08) + if (sRoulette->ball->sBallAngle != sRouletteTables[sRoulette->tableId].shroomish.startAngle) return; } else { - if (sRoulette->var38->data[3] != sRouletteTables[sRoulette->tableId].var08 + 180) + if (sRoulette->ball->sBallAngle != sRouletteTables[sRoulette->tableId].shroomish.startAngle + 180) return; } sprite->invisible = FALSE; sprite->data[7]++; m4aSongNumStart(SE_RU_HYUU); - sRoulette->var01 = 1; - sRoulette->var34 = gUnknown_085B7B1A[0]; + sRoulette->shroomishShadowTimer = 1; + sRoulette->shroomishShadowAlpha = sShroomishShadowAlphas[0]; } else { - sRoulette->var34 = gUnknown_085B7B1A[(sRoulette->var01 - 1) / 2]; - if (sRoulette->var01 < 19) - sRoulette->var01++; + sRoulette->shroomishShadowAlpha = sShroomishShadowAlphas[(sRoulette->shroomishShadowTimer - 1) / 2]; + if (sRoulette->shroomishShadowTimer < 19) + sRoulette->shroomishShadowTimer++; - if (sRoulette->var38->data[0] == 0) + // Wait for the ball to be a specific angle (or its 180 degree opposite) specified by the table + // Once it is, have Shroomish begin to fall in + // On both tables this angle is 15 degrees off the "start" angle + if (!sRoulette->ball->sStuckOnWheelLeft) { - if (sRoulette->var38->data[3] != sRouletteTables[sRoulette->tableId].var0A) + if (sRoulette->ball->sBallAngle != sRouletteTables[sRoulette->tableId].shroomish.dropAngle) return; } else { - if (sRoulette->var38->data[3] != sRouletteTables[sRoulette->tableId].var0A + 180) + if (sRoulette->ball->sBallAngle != sRouletteTables[sRoulette->tableId].shroomish.dropAngle + 180) return; } - gSprites[sprite->data[4]].callback = sub_8144D94; - gSprites[sprite->data[4]].invisible = FALSE; + gSprites[sprite->sMonSpriteId].callback = SpriteCB_ShroomishFall; + gSprites[sprite->sMonSpriteId].invisible = FALSE; sprite->callback = &SpriteCallbackDummy; sprite->data[7] = 0; } } -static void sub_8144F94(struct Sprite *sprite) +static void SpriteCB_TaillowShadow_Flash(struct Sprite *sprite) { sprite->invisible ^= 1; } -static void sub_8144FB0(struct Sprite *sprite) +static void SpriteCB_Taillow_FlyAway(struct Sprite *sprite) { if (sprite->pos1.y > -16) { @@ -4553,7 +4626,7 @@ static void sub_8144FB0(struct Sprite *sprite) } } -static void sub_8145030(struct Sprite *sprite) +static void SpriteCB_Taillow_PickUpBall(struct Sprite *sprite) { if (sprite->data[1] >= 0) { @@ -4578,17 +4651,17 @@ static void sub_8145030(struct Sprite *sprite) else { m4aSongNumStart(SE_RU_HYUU); - StartSpriteAnim(sprite, sRoulette->var38->data[0] + 4); - sprite->callback = sub_8144FB0; - gSprites[sprite->data[6]].affineAnimPaused = FALSE; + StartSpriteAnim(sprite, sRoulette->ball->sStuckOnWheelLeft + 4); + sprite->callback = SpriteCB_Taillow_FlyAway; + gSprites[sprite->sMonShadowSpriteId].affineAnimPaused = FALSE; } } } -static void sub_81450D8(struct Sprite *sprite) +static void SpriteCB_Taillow_FlyIn(struct Sprite *sprite) { - s8 t[2] = {-1, 1}; - s8 z[][2] = { + s8 xMoveOffsets[2] = {-1, 1}; + s8 yMoveOffsets[][2] = { {2, 0}, {2, 0}, {2, -1}, @@ -4601,7 +4674,7 @@ static void sub_81450D8(struct Sprite *sprite) if (sprite->data[1]-- > 7) { - sprite->pos1.x += t[sRoulette->var38->data[0]] * 2; + sprite->pos1.x += xMoveOffsets[sRoulette->ball->sStuckOnWheelLeft] * 2; if (IsSEPlaying()) { s8 pan = -((116 - sprite->pos1.x) / 2); @@ -4613,46 +4686,46 @@ static void sub_81450D8(struct Sprite *sprite) { if (sprite->data[1] >= 0) { - sprite->pos1.x += t[sRoulette->var38->data[0]] * z[7 - sprite->data[1]][0]; - sprite->pos1.y += z[7 - sprite->data[1]][1]; + sprite->pos1.x += xMoveOffsets[sRoulette->ball->sStuckOnWheelLeft] * yMoveOffsets[7 - sprite->data[1]][0]; + sprite->pos1.y += yMoveOffsets[7 - sprite->data[1]][1]; } else { m4aSongNumStartOrChange(SE_BASABASA); - if (sRoulette->var38->data[0] == 0) + if (sRoulette->ball->sStuckOnWheelLeft == 0) PlayCry1(SPECIES_TAILLOW, 63); else PlayCry1(SPECIES_TAILLOW, -63); - StartSpriteAnim(sprite, sRoulette->var38->data[0] + 2); + StartSpriteAnim(sprite, sRoulette->ball->sStuckOnWheelLeft + 2); sprite->data[1] = 45; - sprite->callback = sub_8145030; + sprite->callback = SpriteCB_Taillow_PickUpBall; } } } -static void sub_8145218(struct Sprite *sprite) +static void SpriteCB_TaillowShadow_FlyIn(struct Sprite *sprite) { - s8 t[2] = {-1, 1}; + s8 moveDir[2] = {-1, 1}; if (sprite->data[1]-- >= 0) { - sprite->pos1.x += t[sRoulette->var38->data[0]] * 2; - gSprites[sprite->data[6]].invisible ^= 1; + sprite->pos1.x += moveDir[sRoulette->ball->sStuckOnWheelLeft] * 2; + gSprites[sprite->sMonShadowSpriteId].invisible ^= 1; } else { - sprite->callback = sub_8144F94; + sprite->callback = SpriteCB_TaillowShadow_Flash; } } static void SpriteCB_Taillow(struct Sprite *sprite) { - if (sRoulette->var38->data[0] == 0) + if (sRoulette->ball->sStuckOnWheelLeft == FALSE) { - if (sRoulette->var38->data[3] == sRouletteTables[sRoulette->tableId].var12 + 90) + if (sRoulette->ball->sBallAngle == sRouletteTables[sRoulette->tableId].taillow.rightStartAngle + 90) { - gSprites[sprite->data[6]].data[1] = 52; - gSprites[sprite->data[4]].data[1] = 52; + gSprites[sprite->sMonShadowSpriteId].data[1] = 52; + gSprites[sprite->sMonSpriteId].data[1] = 52; } else { @@ -4661,17 +4734,17 @@ static void SpriteCB_Taillow(struct Sprite *sprite) } else { - if (sRoulette->var38->data[3] == sRouletteTables[sRoulette->tableId].var14 + 270) + if (sRoulette->ball->sBallAngle == sRouletteTables[sRoulette->tableId].taillow.leftStartAngle + 270) { - gSprites[sprite->data[6]].data[1] = 46; - gSprites[sprite->data[4]].data[1] = 46; + gSprites[sprite->sMonShadowSpriteId].data[1] = 46; + gSprites[sprite->sMonSpriteId].data[1] = 46; } else { return; } } - gSprites[sprite->data[6]].callback = sub_8145218; - gSprites[sprite->data[4]].callback = sub_81450D8; + gSprites[sprite->sMonShadowSpriteId].callback = SpriteCB_TaillowShadow_FlyIn; + gSprites[sprite->sMonSpriteId].callback = SpriteCB_Taillow_FlyIn; m4aSongNumStart(SE_RU_HYUU); } diff --git a/src/roulette_util.c b/src/roulette_util.c index 4e6977675d..ab20e55839 100755 --- a/src/roulette_util.c +++ b/src/roulette_util.c @@ -17,7 +17,7 @@ void sub_8151678(struct UnkStruct0 *r0) u8 sub_815168C(struct UnkStruct0 *r0, u8 r1, const struct UnkStruct1 *r2) { - if (!(r1 < 16) || (r0->var04[r1].var00_7)) + if (!(r1 < 16) || (r0->var04[r1].active)) return 0xFF; r0->var04[r1].var04.var00 = r2->var00; @@ -29,7 +29,7 @@ u8 sub_815168C(struct UnkStruct0 *r0, u8 r1, const struct UnkStruct1 *r2) r0->var04[r1].var04.var07_5 = r2->var07_5; r0->var04[r1].var04.var07_7 = r2->var07_7; r0->var04[r1].var00_0 = 0; - r0->var04[r1].var00_7 = 1; + r0->var04[r1].active = TRUE; r0->var04[r1].var02 = 0; r0->var04[r1].var01 = 0; if (r0->var04[r1].var04.var07_7 < 0) @@ -44,7 +44,7 @@ u8 sub_8151710(struct UnkStruct0 *r0, u8 r1) { if (r1 >= 16) return 0xFF; - if (!r0->var04[r1].var00_7) + if (!r0->var04[r1].active) return 0xFF; memset(&r0->var04[r1], 0, sizeof(r0->var04[r1])); @@ -154,16 +154,16 @@ void task_tutorial_controls_fadein(struct UnkStruct0 *r0) } } -void sub_8151A48(struct UnkStruct0 *r0, u16 r1) +void sub_8151A48(struct UnkStruct0 *r0, u16 flags) { u8 i = 0; r0->var00++; for (i = 0; i < 16; i++) { - if ((r1 >> i) & 1) + if ((flags >> i) & 1) { - if (r0->var04[i].var00_7) + if (r0->var04[i].active) { r0->var02 |= 1 << i; r0->var04[i].var00_0 = 1; @@ -172,7 +172,7 @@ void sub_8151A48(struct UnkStruct0 *r0, u16 r1) } } -void sub_8151A9C(struct UnkStruct0 *r0, u16 r1) +void sub_8151A9C(struct UnkStruct0 *r0, u16 flags) { u8 i; @@ -180,9 +180,9 @@ void sub_8151A9C(struct UnkStruct0 *r0, u16 r1) { if ((r0->var02 >> i) & 1) { - if (r0->var04[i].var00_7) + if (r0->var04[i].active) { - if ((r1 >> i) & 1) + if ((flags >> i) & 1) { u32 offset = r0->var04[i].var04.var02; u16 *faded = &gPlttBufferFaded[offset]; @@ -199,14 +199,14 @@ void sub_8151A9C(struct UnkStruct0 *r0, u16 r1) } } } - if (r1 == 0xFFFF) + if (flags == 0xFFFF) { r0->var00 = 0; r0->var02 = 0; } else { - r0->var02 = r0->var02 & ~r1; + r0->var02 = r0->var02 & ~flags; } } From 8e800e206138d00220c44af8acf69ce79103dc9c Mon Sep 17 00:00:00 2001 From: GriffinR Date: Tue, 4 Aug 2020 19:19:36 -0400 Subject: [PATCH 043/101] Document roulette flash util --- include/roulette_util.h | 55 ++--- src/roulette.c | 432 +++++++++++++++++++++------------------- src/roulette_util.c | 205 +++++++++---------- 3 files changed, 362 insertions(+), 330 deletions(-) diff --git a/include/roulette_util.h b/include/roulette_util.h index d18d22d0ff..2864ee4644 100644 --- a/include/roulette_util.h +++ b/include/roulette_util.h @@ -33,34 +33,37 @@ struct PulseBlend struct PulseBlendPalette pulseBlendPalettes[16]; }; -struct UnkStruct1 + +#define FLASHUTIL_USE_EXISTING_COLOR (1 << 15) + +struct RouletteFlashSettings { - u16 var00; - u16 var02; - u8 var04; - u8 var05; - u8 var06; - s8 var07_0:5; - s8 var07_5:2; - s8 var07_7:1; + u16 color; + u16 paletteOffset; + u8 numColors; + u8 delay; + s8 unk6; // Set but never used + s8 numFadeCycles:5; + s8 unk7_5:2; // Set but never used + s8 colorDeltaDir:1; }; -struct UnkStruct3 +struct RouletteFlashPalette { - u8 var00_0:7; - bool8 active:1; - u8 var01; - s8 var02; - s8 var03; - struct UnkStruct1 var04; + u8 state:7; + bool8 available:1; + u8 delayCounter; + s8 fadeCycleCounter; + s8 colorDelta; + struct RouletteFlashSettings settings; }; -struct UnkStruct0 +struct RouletteFlashUtil { - u8 var00; - u8 var01; - u16 var02; //flag for each UnkStruct3 - struct UnkStruct3 var04[0x10]; + u8 enabled; + u8 unused; + u16 flags; + struct RouletteFlashPalette palettes[16]; }; int InitPulseBlendPaletteSettings(struct PulseBlend *, const struct PulseBlendSettings *); @@ -71,10 +74,10 @@ void UnmarkUsedPulseBlendPalettes(struct PulseBlend *, u16, u8); void UpdatePulseBlend(struct PulseBlend *); void ClearTilemapRect(u16 *dest, u16 src, u8 left, u8 top, u8 width, u8 height); void SetTilemapRect(u16 *dest, u16 *src, u8 left, u8 top, u8 width, u8 height); -void task_tutorial_controls_fadein(struct UnkStruct0 *r0); -void sub_8151678(struct UnkStruct0 *r0); -u8 sub_815168C(struct UnkStruct0 *r0, u8 r1, const struct UnkStruct1 *r2); -void sub_8151A9C(struct UnkStruct0 *r0, u16 r1); -void sub_8151A48(struct UnkStruct0 *r0, u16 r1); +void RouletteFlash_Run(struct RouletteFlashUtil *r0); +void RouletteFlash_Reset(struct RouletteFlashUtil *r0); +u8 RouletteFlash_Add(struct RouletteFlashUtil *r0, u8 r1, const struct RouletteFlashSettings *r2); +void RouletteFlash_Stop(struct RouletteFlashUtil *r0, u16 r1); +void RouletteFlash_Enable(struct RouletteFlashUtil *r0, u16 r1); #endif // GUARD_ROULETTE_UTIL_H diff --git a/src/roulette.c b/src/roulette.c index cc14a67cd1..0923ea2d3c 100644 --- a/src/roulette.c +++ b/src/roulette.c @@ -100,6 +100,26 @@ #define F_PURPLE_SKITTY (1 << SQU_PURPLE_SKITTY) #define F_PURPLE_MAKUHITA (1 << SQU_PURPLE_MAKUHITA) +// Flags for flashing selections on the roulette wheel +#define F_FLASH_COLOR_O_WYNAUT (1 << 0) +#define F_FLASH_COLOR_G_AZURILL (1 << 1) +#define F_FLASH_COLOR_P_SKITTY (1 << 2) +#define F_FLASH_COLOR_O_MAKUHITA (1 << 3) +#define F_FLASH_COLOR_G_WYNAUT (1 << 4) +#define F_FLASH_COLOR_P_AZURILL (1 << 5) +#define F_FLASH_COLOR_O_SKITTY (1 << 6) +#define F_FLASH_COLOR_G_MAKUHITA (1 << 7) +#define F_FLASH_COLOR_P_WYNAUT (1 << 8) +#define F_FLASH_COLOR_O_AZURILL (1 << 9) +#define F_FLASH_COLOR_G_SKITTY (1 << 10) +#define F_FLASH_COLOR_P_MAKUHITA (1 << 11) +#define F_FLASH_OUTER_EDGES (1 << 12) // when the player wins +#define FLASH_ICON (NUM_ROULETTE_SLOTS + 1) +#define FLASH_ICON_2 (FLASH_ICON + 1) +#define FLASH_ICON_3 (FLASH_ICON + 2) +#define F_FLASH_ICON (1 << FLASH_ICON) +#define F_FLASH_COLUMN (1 << FLASH_ICON | 1 << FLASH_ICON_2 | 1 << FLASH_ICON_3) + #define MAX_MULTIPLIER 12 #define PALTAG_SHADOW 1 @@ -271,7 +291,7 @@ struct GridSelection u8 tilemapOffset; u32 flag; u32 inSelectionFlags; - u16 var10; + u16 flashFlags; }; struct RouletteSlot @@ -336,7 +356,7 @@ static EWRAM_DATA struct Roulette TaskFunc nextTask; u8 filler_2[4]; TaskFunc prevTask; - struct UnkStruct0 flashUtil; + struct RouletteFlashUtil flashUtil; u16 tilemapBuffers[7][0x400]; u16 *gridTilemap; } *sRoulette = NULL; @@ -461,7 +481,7 @@ static const struct GridSelection sGridSelections[NUM_GRID_SELECTIONS + 1] = .tilemapOffset = 0, .flag = 0, .inSelectionFlags = 0, - .var10 = 0x0, + .flashFlags = 0, }, [COL_WYNAUT] = { .spriteIdOffset = 12, @@ -474,7 +494,7 @@ static const struct GridSelection sGridSelections[NUM_GRID_SELECTIONS + 1] = .tilemapOffset = 0, .flag = F_WYNAUT_COL, .inSelectionFlags = F_WYNAUT_COL | F_ORANGE_WYNAUT | F_GREEN_WYNAUT | F_PURPLE_WYNAUT, - .var10 = 0xE000, + .flashFlags = F_FLASH_COLUMN, }, [COL_AZURILL] = { .spriteIdOffset = 13, @@ -487,7 +507,7 @@ static const struct GridSelection sGridSelections[NUM_GRID_SELECTIONS + 1] = .tilemapOffset = 0, .flag = F_AZURILL_COL, .inSelectionFlags = F_AZURILL_COL | F_ORANGE_AZURILL | F_GREEN_AZURILL | F_PURPLE_AZURILL, - .var10 = 0xE000, + .flashFlags = F_FLASH_COLUMN, }, [COL_SKITTY] = { .spriteIdOffset = 14, @@ -500,7 +520,7 @@ static const struct GridSelection sGridSelections[NUM_GRID_SELECTIONS + 1] = .tilemapOffset = 0, .flag = F_SKITTY_COL, .inSelectionFlags = F_SKITTY_COL | F_ORANGE_SKITTY | F_GREEN_SKITTY | F_PURPLE_SKITTY, - .var10 = 0xE000, + .flashFlags = F_FLASH_COLUMN, }, [COL_MAKUHITA] = { .spriteIdOffset = 15, @@ -513,7 +533,7 @@ static const struct GridSelection sGridSelections[NUM_GRID_SELECTIONS + 1] = .tilemapOffset = 0, .flag = F_MAKUHITA_COL, .inSelectionFlags = F_MAKUHITA_COL | F_ORANGE_MAKUHITA | F_GREEN_MAKUHITA | F_PURPLE_MAKUHITA, - .var10 = 0xE000, + .flashFlags = F_FLASH_COLUMN, }, [ROW_ORANGE] = { .spriteIdOffset = 16, @@ -526,7 +546,7 @@ static const struct GridSelection sGridSelections[NUM_GRID_SELECTIONS + 1] = .tilemapOffset = 12, .flag = F_ORANGE_ROW, .inSelectionFlags = F_ORANGE_ROW | F_ORANGE_WYNAUT | F_ORANGE_AZURILL | F_ORANGE_SKITTY | F_ORANGE_MAKUHITA, - .var10 = 0x249, + .flashFlags = F_FLASH_COLOR_O_WYNAUT | F_FLASH_COLOR_O_AZURILL | F_FLASH_COLOR_O_SKITTY | F_FLASH_COLOR_O_MAKUHITA, }, [SQU_ORANGE_WYNAUT] = { .spriteIdOffset = 0, @@ -539,7 +559,7 @@ static const struct GridSelection sGridSelections[NUM_GRID_SELECTIONS + 1] = .tilemapOffset = 3, .flag = F_ORANGE_WYNAUT, .inSelectionFlags = F_ORANGE_WYNAUT, - .var10 = 0x2001, + .flashFlags = F_FLASH_ICON | F_FLASH_COLOR_O_WYNAUT, }, [SQU_ORANGE_AZURILL] = { .spriteIdOffset = 9, @@ -552,7 +572,7 @@ static const struct GridSelection sGridSelections[NUM_GRID_SELECTIONS + 1] = .tilemapOffset = 3, .flag = F_ORANGE_AZURILL, .inSelectionFlags = F_ORANGE_AZURILL, - .var10 = 0x2200, + .flashFlags = F_FLASH_ICON | F_FLASH_COLOR_O_AZURILL, }, [SQU_ORANGE_SKITTY] = { .spriteIdOffset = 6, @@ -565,7 +585,7 @@ static const struct GridSelection sGridSelections[NUM_GRID_SELECTIONS + 1] = .tilemapOffset = 3, .flag = F_ORANGE_SKITTY, .inSelectionFlags = F_ORANGE_SKITTY, - .var10 = 0x2040, + .flashFlags = F_FLASH_ICON | F_FLASH_COLOR_O_SKITTY, }, [SQU_ORANGE_MAKUHITA] = { .spriteIdOffset = 3, @@ -578,7 +598,7 @@ static const struct GridSelection sGridSelections[NUM_GRID_SELECTIONS + 1] = .tilemapOffset = 3, .flag = F_ORANGE_MAKUHITA, .inSelectionFlags = F_ORANGE_MAKUHITA, - .var10 = 0x2008, + .flashFlags = F_FLASH_ICON | F_FLASH_COLOR_O_MAKUHITA, }, [ROW_GREEN] = { .spriteIdOffset = 17, @@ -591,7 +611,7 @@ static const struct GridSelection sGridSelections[NUM_GRID_SELECTIONS + 1] = .tilemapOffset = 15, .flag = F_GREEN_ROW, .inSelectionFlags = F_GREEN_ROW | F_GREEN_WYNAUT | F_GREEN_AZURILL | F_GREEN_SKITTY | F_GREEN_MAKUHITA, - .var10 = 0x492, + .flashFlags = F_FLASH_COLOR_G_WYNAUT | F_FLASH_COLOR_G_AZURILL | F_FLASH_COLOR_G_SKITTY | F_FLASH_COLOR_G_MAKUHITA, }, [SQU_GREEN_WYNAUT] = { .spriteIdOffset = 4, @@ -604,7 +624,7 @@ static const struct GridSelection sGridSelections[NUM_GRID_SELECTIONS + 1] = .tilemapOffset = 6, .flag = F_GREEN_WYNAUT, .inSelectionFlags = F_GREEN_WYNAUT, - .var10 = 0x2010, + .flashFlags = F_FLASH_ICON | F_FLASH_COLOR_G_WYNAUT, }, [SQU_GREEN_AZURILL] = { .spriteIdOffset = 1, @@ -617,7 +637,7 @@ static const struct GridSelection sGridSelections[NUM_GRID_SELECTIONS + 1] = .tilemapOffset = 6, .flag = F_GREEN_AZURILL, .inSelectionFlags = F_GREEN_AZURILL, - .var10 = 0x2002, + .flashFlags = F_FLASH_ICON | F_FLASH_COLOR_G_AZURILL, }, [SQU_GREEN_SKITTY] = { .spriteIdOffset = 10, @@ -630,7 +650,7 @@ static const struct GridSelection sGridSelections[NUM_GRID_SELECTIONS + 1] = .tilemapOffset = 6, .flag = F_GREEN_SKITTY, .inSelectionFlags = F_GREEN_SKITTY, - .var10 = 0x2400, + .flashFlags = F_FLASH_ICON | F_FLASH_COLOR_G_SKITTY, }, [SQU_GREEN_MAKUHITA] = { .spriteIdOffset = 7, @@ -643,7 +663,7 @@ static const struct GridSelection sGridSelections[NUM_GRID_SELECTIONS + 1] = .tilemapOffset = 6, .flag = F_GREEN_MAKUHITA, .inSelectionFlags = F_GREEN_MAKUHITA, - .var10 = 0x2080, + .flashFlags = F_FLASH_ICON | F_FLASH_COLOR_G_MAKUHITA, }, [ROW_PURPLE] = { .spriteIdOffset = 18, @@ -656,7 +676,7 @@ static const struct GridSelection sGridSelections[NUM_GRID_SELECTIONS + 1] = .tilemapOffset = 18, .flag = F_PURPLE_ROW, .inSelectionFlags = F_PURPLE_ROW | F_PURPLE_WYNAUT | F_PURPLE_AZURILL | F_PURPLE_SKITTY | F_PURPLE_MAKUHITA, - .var10 = 0x924, + .flashFlags = F_FLASH_COLOR_P_WYNAUT | F_FLASH_COLOR_P_AZURILL | F_FLASH_COLOR_P_SKITTY | F_FLASH_COLOR_P_MAKUHITA, }, [SQU_PURPLE_WYNAUT] = { .spriteIdOffset = 8, @@ -669,7 +689,7 @@ static const struct GridSelection sGridSelections[NUM_GRID_SELECTIONS + 1] = .tilemapOffset = 9, .flag = F_PURPLE_WYNAUT, .inSelectionFlags = F_PURPLE_WYNAUT, - .var10 = 0x2100, + .flashFlags = F_FLASH_ICON | F_FLASH_COLOR_P_WYNAUT, }, [SQU_PURPLE_AZURILL] = { .spriteIdOffset = 5, @@ -682,7 +702,7 @@ static const struct GridSelection sGridSelections[NUM_GRID_SELECTIONS + 1] = .tilemapOffset = 9, .flag = F_PURPLE_AZURILL, .inSelectionFlags = F_PURPLE_AZURILL, - .var10 = 0x2020, + .flashFlags = F_FLASH_ICON | F_FLASH_COLOR_P_AZURILL, }, [SQU_PURPLE_SKITTY] = { .spriteIdOffset = 2, @@ -695,7 +715,7 @@ static const struct GridSelection sGridSelections[NUM_GRID_SELECTIONS + 1] = .tilemapOffset = 9, .flag = F_PURPLE_SKITTY, .inSelectionFlags = F_PURPLE_SKITTY, - .var10 = 0x2004, + .flashFlags = F_FLASH_ICON | F_FLASH_COLOR_P_SKITTY, }, [SQU_PURPLE_MAKUHITA] = { .spriteIdOffset = 11, @@ -708,7 +728,7 @@ static const struct GridSelection sGridSelections[NUM_GRID_SELECTIONS + 1] = .tilemapOffset = 9, .flag = F_PURPLE_MAKUHITA, .inSelectionFlags = F_PURPLE_MAKUHITA, - .var10 = 0x2800, + .flashFlags = F_FLASH_ICON | F_FLASH_COLOR_P_MAKUHITA, }, }; @@ -835,171 +855,174 @@ static const struct RouletteTable sRouletteTables[] = } }; -static const struct UnkStruct1 gUnknown_085B6388[NUM_ROULETTE_SLOTS + 1] = +// Data to flash the color indicator for each slot on the roulette wheel +static const struct RouletteFlashSettings sFlashData_Colors[NUM_ROULETTE_SLOTS + 1] = { - { - .var00 = 0x8000, - .var02 = 0x0005, - .var04 = 1, - .var05 = 1, - .var06 = 0xFF, - .var07_0 = 8, - .var07_5 = -2, - .var07_7 = 0 + { // F_FLASH_COLOR_O_WYNAUT + .color = FLASHUTIL_USE_EXISTING_COLOR, + .paletteOffset = 0x5, + .numColors = 1, + .delay = 1, + .unk6 = -1, + .numFadeCycles = 8, + .unk7_5 = -2, + .colorDeltaDir = 0, }, - { - .var00 = 0x8000, - .var02 = 0x000A, - .var04 = 1, - .var05 = 1, - .var06 = 0xFF, - .var07_0 = 8, - .var07_5 = -2, - .var07_7 = 0 + { // F_FLASH_COLOR_G_AZURILL + .color = FLASHUTIL_USE_EXISTING_COLOR, + .paletteOffset = 0xA, + .numColors = 1, + .delay = 1, + .unk6 = -1, + .numFadeCycles = 8, + .unk7_5 = -2, + .colorDeltaDir = 0, }, - { - .var00 = 0x8000, - .var02 = 0x0015, - .var04 = 1, - .var05 = 1, - .var06 = 0xFF, - .var07_0 = 8, - .var07_5 = -2, - .var07_7 = 0 + { // F_FLASH_COLOR_P_SKITTY + .color = FLASHUTIL_USE_EXISTING_COLOR, + .paletteOffset = 0x15, + .numColors = 1, + .delay = 1, + .unk6 = -1, + .numFadeCycles = 8, + .unk7_5 = -2, + .colorDeltaDir = 0, }, - { - .var00 = 0x8000, - .var02 = 0x0055, - .var04 = 1, - .var05 = 1, - .var06 = 0xFF, - .var07_0 = 8, - .var07_5 = -2, - .var07_7 = 0 + { // F_FLASH_COLOR_O_MAKUHITA + .color = FLASHUTIL_USE_EXISTING_COLOR, + .paletteOffset = 0x55, + .numColors = 1, + .delay = 1, + .unk6 = -1, + .numFadeCycles = 8, + .unk7_5 = -2, + .colorDeltaDir = 0, }, - { - .var00 = 0x8000, - .var02 = 0x005A, - .var04 = 1, - .var05 = 1, - .var06 = 0xFF, - .var07_0 = 8, - .var07_5 = -2, - .var07_7 = 0 + { // F_FLASH_COLOR_G_WYNAUT + .color = FLASHUTIL_USE_EXISTING_COLOR, + .paletteOffset = 0x5A, + .numColors = 1, + .delay = 1, + .unk6 = -1, + .numFadeCycles = 8, + .unk7_5 = -2, + .colorDeltaDir = 0, }, - { - .var00 = 0x8000, - .var02 = 0x0065, - .var04 = 1, - .var05 = 1, - .var06 = 0xFF, - .var07_0 = 8, - .var07_5 = -2, - .var07_7 = 0 + { // F_FLASH_COLOR_P_AZURILL + .color = FLASHUTIL_USE_EXISTING_COLOR, + .paletteOffset = 0x65, + .numColors = 1, + .delay = 1, + .unk6 = -1, + .numFadeCycles = 8, + .unk7_5 = -2, + .colorDeltaDir = 0, }, - { - .var00 = 0x8000, - .var02 = 0x0075, - .var04 = 1, - .var05 = 1, - .var06 = 0xFF, - .var07_0 = 8, - .var07_5 = -2, - .var07_7 = 0 + { // F_FLASH_COLOR_O_SKITTY + .color = FLASHUTIL_USE_EXISTING_COLOR, + .paletteOffset = 0x75, + .numColors = 1, + .delay = 1, + .unk6 = -1, + .numFadeCycles = 8, + .unk7_5 = -2, + .colorDeltaDir = 0, }, - { - .var00 = 0x8000, - .var02 = 0x007A, - .var04 = 1, - .var05 = 1, - .var06 = 0xFF, - .var07_0 = 8, - .var07_5 = -2, - .var07_7 = 0 + { // F_FLASH_COLOR_G_MAKUHITA + .color = FLASHUTIL_USE_EXISTING_COLOR, + .paletteOffset = 0x7A, + .numColors = 1, + .delay = 1, + .unk6 = -1, + .numFadeCycles = 8, + .unk7_5 = -2, + .colorDeltaDir = 0, }, - { - .var00 = 0x8000, - .var02 = 0x0085, - .var04 = 1, - .var05 = 1, - .var06 = 0xFF, - .var07_0 = 8, - .var07_5 = -2, - .var07_7 = 0 + { // F_FLASH_COLOR_P_WYNAUT + .color = FLASHUTIL_USE_EXISTING_COLOR, + .paletteOffset = 0x85, + .numColors = 1, + .delay = 1, + .unk6 = -1, + .numFadeCycles = 8, + .unk7_5 = -2, + .colorDeltaDir = 0, }, - { - .var00 = 0x8000, - .var02 = 0x0095, - .var04 = 1, - .var05 = 1, - .var06 = 0xFF, - .var07_0 = 8, - .var07_5 = -2, - .var07_7 = 0 + { // F_FLASH_COLOR_O_AZURILL + .color = FLASHUTIL_USE_EXISTING_COLOR, + .paletteOffset = 0x95, + .numColors = 1, + .delay = 1, + .unk6 = -1, + .numFadeCycles = 8, + .unk7_5 = -2, + .colorDeltaDir = 0, }, - { - .var00 = 0x8000, - .var02 = 0x009A, - .var04 = 1, - .var05 = 1, - .var06 = 0xFF, - .var07_0 = 8, - .var07_5 = -2, - .var07_7 = 0 + { // F_FLASH_COLOR_G_SKITTY + .color = FLASHUTIL_USE_EXISTING_COLOR, + .paletteOffset = 0x9A, + .numColors = 1, + .delay = 1, + .unk6 = -1, + .numFadeCycles = 8, + .unk7_5 = -2, + .colorDeltaDir = 0, }, - { - .var00 = 0x8000, - .var02 = 0x00A5, - .var04 = 1, - .var05 = 1, - .var06 = 0xFF, - .var07_0 = 8, - .var07_5 = -2, - .var07_7 = 0 + { // F_FLASH_COLOR_P_MAKUHITA + .color = FLASHUTIL_USE_EXISTING_COLOR, + .paletteOffset = 0xA5, + .numColors = 1, + .delay = 1, + .unk6 = -1, + .numFadeCycles = 8, + .unk7_5 = -2, + .colorDeltaDir = 0, }, - { - .var00 = 0x77D6, - .var02 = 0x0028, - .var04 = 2, - .var05 = 10, - .var06 = 0xFF, - .var07_0 = 14, - .var07_5 = -2, - .var07_7 = 0 + { // F_FLASH_OUTER_EDGES + .color = RGB(22, 30, 29), + .paletteOffset = 0x28, + .numColors = 2, + .delay = 10, + .unk6 = -1, + .numFadeCycles = 14, + .unk7_5 = -2, + .colorDeltaDir = 0, }, }; -static const struct UnkStruct1 gUnknown_085B63F0[NUM_BOARD_COLORS] = +// Data to flash any pokemon icon (F_FLASH_ICON) on the roulette wheel. One entry for each color row +// Each poke icon flashes with the tint of the row color it belongs to, so the pokemon itself is irrelevant +static const struct RouletteFlashSettings sFlashData_PokeIcons[NUM_BOARD_COLORS] = { - { - .var00 = 0x53FF, - .var02 = 0x0101, - .var04 = 5, - .var05 = 30, - .var06 = 0xFF, - .var07_0 = 14, - .var07_5 = -2, - .var07_7 = 0 + [GET_ROW_IDX(ROW_ORANGE)] = { + .color = RGB(31, 31, 20), + .paletteOffset = 0x101, + .numColors = 5, + .delay = 30, + .unk6 = -1, + .numFadeCycles = 14, + .unk7_5 = -2, + .colorDeltaDir = 0, }, - { - .var00 = 0x7FFB, - .var02 = 0x0106, - .var04 = 5, - .var05 = 30, - .var06 = 0xFF, - .var07_0 = 14, - .var07_5 = -2, - .var07_7 = 0 + [GET_ROW_IDX(ROW_GREEN)] = { + .color = RGB(27, 31, 31), + .paletteOffset = 0x106, + .numColors = 5, + .delay = 30, + .unk6 = -1, + .numFadeCycles = 14, + .unk7_5 = -2, + .colorDeltaDir = 0, }, - { - .var00 = 0x7F7F, - .var02 = 0x010B, - .var04 = 5, - .var05 = 30, - .var06 = 0xFF, - .var07_0 = 14, - .var07_5 = -2, - .var07_7 = 0 + [GET_ROW_IDX(ROW_PURPLE)] = { + .color = RGB(31, 27, 31), + .paletteOffset = 0x10B, + .numColors = 5, + .delay = 30, + .unk6 = -1, + .numFadeCycles = 14, + .unk7_5 = -2, + .colorDeltaDir = 0, } }; @@ -1020,8 +1043,8 @@ static void CB2_Roulette(void) RunTasks(); AnimateSprites(); BuildOamBuffer(); - if (sRoulette->flashUtil.var00) - task_tutorial_controls_fadein(&sRoulette->flashUtil); + if (sRoulette->flashUtil.enabled) + RouletteFlash_Run(&sRoulette->flashUtil); } static void VBlankCB_Roulette(void) @@ -1110,12 +1133,13 @@ static void InitRouletteTableData(void) else gPlttBufferUnfaded[0] = gPlttBufferUnfaded[0x51] = gPlttBufferFaded[0] = gPlttBufferFaded[0x51] = bgColors[1]; - sub_8151678(&sRoulette->flashUtil); + RouletteFlash_Reset(&sRoulette->flashUtil); // Init flash util for flashing the selected colors on the wheel + // + 1 for the additional entry to flash the outer edges on a win for (i = 0; i < NUM_ROULETTE_SLOTS + 1; i++) { - sub_815168C(&sRoulette->flashUtil, i, &gUnknown_085B6388[i]); + RouletteFlash_Add(&sRoulette->flashUtil, i, &sFlashData_Colors[i]); } for (i = 0; i < PARTY_SIZE; i++) @@ -1421,8 +1445,8 @@ static void ProcessBetGridInput(u8 taskId) UpdateGridSelection(taskId); gTasks[taskId].data[1] = 0; PlaySE(SE_SELECT); - sub_8151A9C(&sRoulette->flashUtil, 0xFFFF); // Reset previous flashing wheel color selection - sRoulette->flashUtil.var04[13].active = sRoulette->flashUtil.var04[14].active = sRoulette->flashUtil.var04[15].active = FALSE; // Same as above, but for icon + RouletteFlash_Stop(&sRoulette->flashUtil, 0xFFFF); + sRoulette->flashUtil.palettes[FLASH_ICON].available = sRoulette->flashUtil.palettes[FLASH_ICON_2].available = sRoulette->flashUtil.palettes[FLASH_ICON_3].available = FALSE; FlashSelectionOnWheel(gTasks[taskId].tSelectionId); // Switch all the poke (column) headers to gray outlines @@ -1680,7 +1704,7 @@ static void Task_RecordBallHit(u8 taskId) bool8 won = IsHitInBetSelection(RecordHit(taskId, sRoulette->hitSlot), sRoulette->betSelection[sRoulette->curBallNum]); gTasks[taskId].tWonBet = won; if (won == TRUE) - sub_8151A48(&sRoulette->flashUtil, 0x1000); // Flash outer edges of wheel + RouletteFlash_Enable(&sRoulette->flashUtil, F_FLASH_OUTER_EDGES); } if (gTasks[taskId].data[1] <= 60) { @@ -1853,8 +1877,8 @@ static void Task_PrintPayout(u8 taskId) static void Task_EndTurn(u8 taskId) { - sub_8151A9C(&sRoulette->flashUtil, 0xFFFF); - sRoulette->flashUtil.var04[13].active = sRoulette->flashUtil.var04[14].active = sRoulette->flashUtil.var04[15].active = FALSE; + RouletteFlash_Stop(&sRoulette->flashUtil, 0xFFFF); + sRoulette->flashUtil.palettes[FLASH_ICON].available = sRoulette->flashUtil.palettes[FLASH_ICON_2].available = sRoulette->flashUtil.palettes[FLASH_ICON_3].available = FALSE; gSprites[sRoulette->spriteIds[SPR_WHEEL_ICONS + sGridSelections[gTasks[taskId].tWinningSquare].spriteIdOffset]].invisible = TRUE; gTasks[taskId].func = Task_TryPrintEndTurnMsg; } @@ -1937,8 +1961,8 @@ static void Task_ClearBoard(u8 taskId) static void ExitRoulette(u8 taskId) { - sub_8151A9C(&sRoulette->flashUtil, 0xFFFF); - sub_8151678(&sRoulette->flashUtil); + RouletteFlash_Stop(&sRoulette->flashUtil, 0xFFFF); + RouletteFlash_Reset(&sRoulette->flashUtil); SetCoins(gTasks[taskId].tCoins); if (GetCoins() < sRoulette->minBet) gSpecialVar_0x8004 = TRUE; @@ -2108,9 +2132,9 @@ static bool8 IsHitInBetSelection(u8 gridSquare, u8 betSelection) static void FlashSelectionOnWheel(u8 selectionId) { - u16 var0 = 0; + u16 flashFlags = 0; u8 numSelected; - u16 var3; + u16 palOffset; u8 i; switch (selectionId) @@ -2122,47 +2146,46 @@ static void FlashSelectionOnWheel(u8 selectionId) for (i = (selectionId + 1); i < (selectionId + 5); i++) { if (!(sRoulette->hitFlags & sGridSelections[i].flag)) - var0 |= sGridSelections[i].var10; + flashFlags |= sGridSelections[i].flashFlags; } - sub_8151A48(&sRoulette->flashUtil, var0 &= 0xDFFF); + RouletteFlash_Enable(&sRoulette->flashUtil, flashFlags &= ~(F_FLASH_ICON)); break; default: { // Selection is either a column or individual square - struct UnkStruct1 var1[NUM_BOARD_COLORS]; - memcpy(var1, gUnknown_085B63F0, sizeof(var1)); + struct RouletteFlashSettings iconFlash[NUM_BOARD_COLORS]; + memcpy(iconFlash, sFlashData_PokeIcons, sizeof(iconFlash)); if (selectionId >= COL_WYNAUT && selectionId <= COL_MAKUHITA) numSelected = NUM_BOARD_COLORS; // Selection is full column else numSelected = 1; - var3 = GET_ROW_IDX(selectionId); + palOffset = GET_ROW_IDX(selectionId); switch (GET_COL(selectionId)) { - // The specific color of the poke it references doesn't matter, because the icons themelves all share a palette + // The specific color of the poke it references doesn't matter, because the icons of a poke share a palette // So it just uses the first sprite ID of each case COL_WYNAUT: - var3 = gSprites[sRoulette->spriteIds[SPR_WHEEL_ICON_ORANGE_WYNAUT]].oam.paletteNum * 16; + palOffset = gSprites[sRoulette->spriteIds[SPR_WHEEL_ICON_ORANGE_WYNAUT]].oam.paletteNum * 16; break; case COL_AZURILL: - var3 = gSprites[sRoulette->spriteIds[SPR_WHEEL_ICON_GREEN_AZURILL]].oam.paletteNum * 16; + palOffset = gSprites[sRoulette->spriteIds[SPR_WHEEL_ICON_GREEN_AZURILL]].oam.paletteNum * 16; break; case COL_SKITTY: - var3 = gSprites[sRoulette->spriteIds[SPR_WHEEL_ICON_PURPLE_SKITTY]].oam.paletteNum * 16; + palOffset = gSprites[sRoulette->spriteIds[SPR_WHEEL_ICON_PURPLE_SKITTY]].oam.paletteNum * 16; break; case COL_MAKUHITA: - var3 = gSprites[sRoulette->spriteIds[SPR_WHEEL_ICON_ORANGE_MAKUHITA]].oam.paletteNum * 16; + palOffset = gSprites[sRoulette->spriteIds[SPR_WHEEL_ICON_ORANGE_MAKUHITA]].oam.paletteNum * 16; break; } if (numSelected == 1) { - // Selection is individual square + // Selection is individual square, add entry in flash util for its icon if (!(sRoulette->hitFlags & sGridSelections[selectionId].flag)) { - // Set poke icon of selected square to flash - var1[GET_ROW_IDX(selectionId)].var02 += var3; - sub_815168C(&sRoulette->flashUtil, 13, &var1[GET_ROW_IDX(selectionId)]); + iconFlash[GET_ROW_IDX(selectionId)].paletteOffset += palOffset; + RouletteFlash_Add(&sRoulette->flashUtil, NUM_ROULETTE_SLOTS + 1, &iconFlash[GET_ROW_IDX(selectionId)]); } else { @@ -2172,25 +2195,26 @@ static void FlashSelectionOnWheel(u8 selectionId) } else { - // Selection is full column + // Selection is full column, add entry in flash util for each unhit space's icon + // If there is only 1 unhit space, also add its flags so its color will flash as well for (i = 0; i < NUM_BOARD_COLORS; i++) { - u8 var4 = i * 5 + selectionId + 5; - if (!(sRoulette->hitFlags & sGridSelections[var4].flag)) + u8 columnSlotId = i * 5 + selectionId + 5; + if (!(sRoulette->hitFlags & sGridSelections[columnSlotId].flag)) { - // Set poke icons of selected squares to flash - var1[GET_ROW_IDX(var4)].var02 += var3; - sub_815168C(&sRoulette->flashUtil, i + 13, &var1[GET_ROW_IDX(var4)]); + iconFlash[GET_ROW_IDX(columnSlotId)].paletteOffset += palOffset; + RouletteFlash_Add(&sRoulette->flashUtil, i + NUM_ROULETTE_SLOTS + 1, &iconFlash[GET_ROW_IDX(columnSlotId)]); if (numSelected == 3) - var0 = sGridSelections[var4].var10; + flashFlags = sGridSelections[columnSlotId].flashFlags; numSelected--; } } + // If there was more than 1 space in the column, reset flags; only icons will flash if (numSelected != 2) - var0 = 0; + flashFlags = 0; } // Do flash - sub_8151A48(&sRoulette->flashUtil, var0 |= sGridSelections[selectionId].var10); + RouletteFlash_Enable(&sRoulette->flashUtil, flashFlags |= sGridSelections[selectionId].flashFlags); break; } } diff --git a/src/roulette_util.c b/src/roulette_util.c index ab20e55839..15a0c5bba1 100755 --- a/src/roulette_util.c +++ b/src/roulette_util.c @@ -1,212 +1,217 @@ #include "global.h" #include "palette.h" -#include "roulette.h" #include "roulette_util.h" #include "util.h" -// "Roulette Util" is perhaps more accurately a general flashing util -// e.g. it handles fading the palettes for the color selections on the Roulette wheel +// "RouletteFlash" is more accurately a general flashing/fading util +// this file handles fading the palettes for the color/icon selections on the Roulette wheel // but it also handles the "pulse blend" effect of Mirage Tower -void sub_8151678(struct UnkStruct0 *r0) +void RouletteFlash_Reset(struct RouletteFlashUtil *flash) { - r0->var00 = 0; - r0->var02 = 0; - memset(&r0->var04, 0, sizeof(r0->var04)); + flash->enabled = 0; + flash->flags = 0; + memset(&flash->palettes, 0, sizeof(flash->palettes)); } -u8 sub_815168C(struct UnkStruct0 *r0, u8 r1, const struct UnkStruct1 *r2) +u8 RouletteFlash_Add(struct RouletteFlashUtil *flash, u8 id, const struct RouletteFlashSettings *settings) { - if (!(r1 < 16) || (r0->var04[r1].active)) + if (id >= ARRAY_COUNT(flash->palettes) || flash->palettes[id].available) return 0xFF; - r0->var04[r1].var04.var00 = r2->var00; - r0->var04[r1].var04.var02 = r2->var02; - r0->var04[r1].var04.var04 = r2->var04; - r0->var04[r1].var04.var05 = r2->var05; - r0->var04[r1].var04.var06 = r2->var06; - r0->var04[r1].var04.var07_0 = r2->var07_0; - r0->var04[r1].var04.var07_5 = r2->var07_5; - r0->var04[r1].var04.var07_7 = r2->var07_7; - r0->var04[r1].var00_0 = 0; - r0->var04[r1].active = TRUE; - r0->var04[r1].var02 = 0; - r0->var04[r1].var01 = 0; - if (r0->var04[r1].var04.var07_7 < 0) - r0->var04[r1].var03 = 0xFF; + flash->palettes[id].settings.color = settings->color; + flash->palettes[id].settings.paletteOffset = settings->paletteOffset; + flash->palettes[id].settings.numColors = settings->numColors; + flash->palettes[id].settings.delay = settings->delay; + flash->palettes[id].settings.unk6 = settings->unk6; + flash->palettes[id].settings.numFadeCycles = settings->numFadeCycles; + flash->palettes[id].settings.unk7_5 = settings->unk7_5; + flash->palettes[id].settings.colorDeltaDir = settings->colorDeltaDir; + flash->palettes[id].state = 0; + flash->palettes[id].available = TRUE; + flash->palettes[id].fadeCycleCounter = 0; + flash->palettes[id].delayCounter = 0; + if (flash->palettes[id].settings.colorDeltaDir < 0) + flash->palettes[id].colorDelta = -1; else - r0->var04[r1].var03 = 1; + flash->palettes[id].colorDelta = 1; - return r1; + return id; } -u8 sub_8151710(struct UnkStruct0 *r0, u8 r1) +// Unused +static u8 RouletteFlash_Remove(struct RouletteFlashUtil *flash, u8 id) { - if (r1 >= 16) + if (id >= ARRAY_COUNT(flash->palettes)) return 0xFF; - if (!r0->var04[r1].active) + if (!flash->palettes[id].available) return 0xFF; - memset(&r0->var04[r1], 0, sizeof(r0->var04[r1])); - return r1; + memset(&flash->palettes[id], 0, sizeof(flash->palettes[id])); + return id; } -u8 sub_8151744(struct UnkStruct3 *r0) +static u8 RouletteFlash_FadePalette(struct RouletteFlashPalette *pal) { u8 i; u8 returnval; - for (i = 0; i < r0->var04.var04; i++) + for (i = 0; i < pal->settings.numColors; i++) { - struct PlttData *faded = (struct PlttData *)&gPlttBufferFaded[r0->var04.var02 + i]; - struct PlttData *unfaded = (struct PlttData *)&gPlttBufferUnfaded[r0->var04.var02 + i]; + struct PlttData *faded = (struct PlttData *)&gPlttBufferFaded[pal->settings.paletteOffset + i]; + struct PlttData *unfaded = (struct PlttData *)&gPlttBufferUnfaded[pal->settings.paletteOffset + i]; - switch (r0->var00_0) + switch (pal->state) { case 1: - if (faded->r + r0->var03 >= 0 && faded->r + r0->var03 < 32) - faded->r += r0->var03; - if (faded->g + r0->var03 >= 0 && faded->g + r0->var03 < 32) - faded->g += r0->var03; - if (faded->b + r0->var03 >= 0 && faded->b + r0->var03 < 32) - faded->b += r0->var03; + // Fade color + if (faded->r + pal->colorDelta >= 0 && faded->r + pal->colorDelta < 32) + faded->r += pal->colorDelta; + if (faded->g + pal->colorDelta >= 0 && faded->g + pal->colorDelta < 32) + faded->g += pal->colorDelta; + if (faded->b + pal->colorDelta >= 0 && faded->b + pal->colorDelta < 32) + faded->b += pal->colorDelta; break; case 2: - if (r0->var03 < 0) + // Fade back to original color + if (pal->colorDelta < 0) { - if (faded->r + r0->var03 >= unfaded->r) - faded->r += r0->var03; - if (faded->g + r0->var03 >= unfaded->g) - faded->g += r0->var03; - if (faded->b + r0->var03 >= unfaded->b) - faded->b += r0->var03; + if (faded->r + pal->colorDelta >= unfaded->r) + faded->r += pal->colorDelta; + if (faded->g + pal->colorDelta >= unfaded->g) + faded->g += pal->colorDelta; + if (faded->b + pal->colorDelta >= unfaded->b) + faded->b += pal->colorDelta; } else { - if (faded->r + r0->var03 <= unfaded->r) - faded->r += r0->var03; - if (faded->g + r0->var03 <= unfaded->g) - faded->g += r0->var03; - if (faded->b + r0->var03 <= unfaded->b) - faded->b += r0->var03; + if (faded->r + pal->colorDelta <= unfaded->r) + faded->r += pal->colorDelta; + if (faded->g + pal->colorDelta <= unfaded->g) + faded->g += pal->colorDelta; + if (faded->b + pal->colorDelta <= unfaded->b) + faded->b += pal->colorDelta; } break; } } - if ((u32)r0->var02++ != r0->var04.var07_0) + if ((u32)pal->fadeCycleCounter++ != pal->settings.numFadeCycles) { returnval = 0; } else { - r0->var02 = 0; - r0->var03 *= -1; - if (r0->var00_0 == 1) - r0->var00_0++; + pal->fadeCycleCounter = 0; + pal->colorDelta *= -1; + if (pal->state == 1) + pal->state++; else - r0->var00_0--; + pal->state--; returnval = 1; } return returnval; } -u8 sub_815194C(struct UnkStruct3 *r0) +static u8 RouletteFlash_FlashPalette(struct RouletteFlashPalette *pal) { - u8 rg2 = 0; - - switch (r0->var00_0) + u8 i = 0; + switch (pal->state) { case 1: - for (rg2 = 0; rg2 < r0->var04.var04; rg2++) - gPlttBufferFaded[r0->var04.var02 + rg2] = r0->var04.var00; - r0->var00_0++; + // Flash to color + for (; i < pal->settings.numColors; i++) + gPlttBufferFaded[pal->settings.paletteOffset + i] = pal->settings.color; + pal->state++; break; case 2: - for (rg2 = 0; rg2 < r0->var04.var04; rg2++) - gPlttBufferFaded[r0->var04.var02 + rg2] = gPlttBufferUnfaded[r0->var04.var02 + rg2]; - r0->var00_0--; + // Restore to original color + for (; i < pal->settings.numColors; i++) + gPlttBufferFaded[pal->settings.paletteOffset + i] = gPlttBufferUnfaded[pal->settings.paletteOffset + i]; + pal->state--; break; } return 1; } -void task_tutorial_controls_fadein(struct UnkStruct0 *r0) +void RouletteFlash_Run(struct RouletteFlashUtil *flash) { u8 i = 0; - if (r0->var00) + if (flash->enabled) { - for (i = 0; i < 16; i++) + for (i = 0; i < ARRAY_COUNT(flash->palettes); i++) { - if ((r0->var02 >> i) & 1) + if ((flash->flags >> i) & 1) { - if (--r0->var04[i].var01 == 0xFF) // if underflow ? + if (--flash->palettes[i].delayCounter == (u8)-1) { - if (r0->var04[i].var04.var00 & 0x8000) // PlttData->unused_15 ? - sub_8151744(&r0->var04[i]); + if (flash->palettes[i].settings.color & FLASHUTIL_USE_EXISTING_COLOR) + RouletteFlash_FadePalette(&flash->palettes[i]); else - sub_815194C(&r0->var04[i]); + RouletteFlash_FlashPalette(&flash->palettes[i]); - r0->var04[i].var01 = r0->var04[i].var04.var05; + flash->palettes[i].delayCounter = flash->palettes[i].settings.delay; } } } } } -void sub_8151A48(struct UnkStruct0 *r0, u16 flags) +void RouletteFlash_Enable(struct RouletteFlashUtil *flash, u16 flags) { u8 i = 0; - r0->var00++; - for (i = 0; i < 16; i++) + flash->enabled++; + for (i = 0; i < ARRAY_COUNT(flash->palettes); i++) { if ((flags >> i) & 1) { - if (r0->var04[i].active) + if (flash->palettes[i].available) { - r0->var02 |= 1 << i; - r0->var04[i].var00_0 = 1; + flash->flags |= 1 << i; + flash->palettes[i].state = 1; } } } } -void sub_8151A9C(struct UnkStruct0 *r0, u16 flags) +void RouletteFlash_Stop(struct RouletteFlashUtil *flash, u16 flags) { u8 i; - for (i = 0; i < 16; i++) + for (i = 0; i < ARRAY_COUNT(flash->palettes); i++) { - if ((r0->var02 >> i) & 1) + if ((flash->flags >> i) & 1) { - if (r0->var04[i].active) + if (flash->palettes[i].available) { if ((flags >> i) & 1) { - u32 offset = r0->var04[i].var04.var02; + u32 offset = flash->palettes[i].settings.paletteOffset; u16 *faded = &gPlttBufferFaded[offset]; u16 *unfaded = &gPlttBufferUnfaded[offset]; - memcpy(faded, unfaded, r0->var04[i].var04.var04 * 2); - r0->var04[i].var00_0 = 0; - r0->var04[i].var02 = 0; - r0->var04[i].var01 = 0; - if (r0->var04[i].var04.var07_7 < 0) - r0->var04[i].var03 = 0xFF; + memcpy(faded, unfaded, flash->palettes[i].settings.numColors * 2); + flash->palettes[i].state = 0; + flash->palettes[i].fadeCycleCounter = 0; + flash->palettes[i].delayCounter = 0; + if (flash->palettes[i].settings.colorDeltaDir < 0) + flash->palettes[i].colorDelta = -1; else - r0->var04[i].var03 = 0x1; + flash->palettes[i].colorDelta = 1; } } } } + if (flags == 0xFFFF) { - r0->var00 = 0; - r0->var02 = 0; + // Stopped all + flash->enabled = 0; + flash->flags = 0; } else { - r0->var02 = r0->var02 & ~flags; + flash->flags &= ~flags; } } From f8f6575360e6ef4c27a5b65dcbda342ec9665f32 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Tue, 4 Aug 2020 19:24:36 -0400 Subject: [PATCH 044/101] Rename roulette_util to palette_util --- include/{roulette_util.h => palette_util.h} | 6 +++--- ld_script.txt | 2 +- src/mirage_tower.c | 2 +- src/{roulette_util.c => palette_util.c} | 2 +- src/roulette.c | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) rename include/{roulette_util.h => palette_util.h} (95%) rename src/{roulette_util.c => palette_util.c} (99%) diff --git a/include/roulette_util.h b/include/palette_util.h similarity index 95% rename from include/roulette_util.h rename to include/palette_util.h index 2864ee4644..46468c0a6a 100644 --- a/include/roulette_util.h +++ b/include/palette_util.h @@ -1,5 +1,5 @@ -#ifndef GUARD_ROULETTE_UTIL_H -#define GUARD_ROULETTE_UTIL_H +#ifndef GUARD_PALETTE_UTIL_H +#define GUARD_PALETTE_UTIL_H struct PulseBlendSettings { @@ -80,4 +80,4 @@ u8 RouletteFlash_Add(struct RouletteFlashUtil *r0, u8 r1, const struct RouletteF void RouletteFlash_Stop(struct RouletteFlashUtil *r0, u16 r1); void RouletteFlash_Enable(struct RouletteFlashUtil *r0, u16 r1); -#endif // GUARD_ROULETTE_UTIL_H +#endif // GUARD_PALETTE_UTIL_H diff --git a/ld_script.txt b/ld_script.txt index f3e418c080..724f01328d 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -237,7 +237,7 @@ SECTIONS { src/battle_message.o(.text); src/cable_car.o(.text); src/math_util.o(.text); - src/roulette_util.o(.text); + src/palette_util.o(.text); src/confetti_util.o(.text); src/save.o(.text); src/mystery_event_script.o(.text); diff --git a/src/mirage_tower.c b/src/mirage_tower.c index c1323c7840..02cccf2a5b 100644 --- a/src/mirage_tower.c +++ b/src/mirage_tower.c @@ -8,7 +8,7 @@ #include "gpu_regs.h" #include "menu.h" #include "random.h" -#include "roulette_util.h" +#include "palette_util.h" #include "script.h" #include "sound.h" #include "sprite.h" diff --git a/src/roulette_util.c b/src/palette_util.c similarity index 99% rename from src/roulette_util.c rename to src/palette_util.c index 15a0c5bba1..5364ff6d98 100755 --- a/src/roulette_util.c +++ b/src/palette_util.c @@ -1,6 +1,6 @@ #include "global.h" #include "palette.h" -#include "roulette_util.h" +#include "palette_util.h" #include "util.h" // "RouletteFlash" is more accurately a general flashing/fading util diff --git a/src/roulette.c b/src/roulette.c index 0923ea2d3c..b3e07233a7 100644 --- a/src/roulette.c +++ b/src/roulette.c @@ -13,9 +13,9 @@ #include "menu_helpers.h" #include "overworld.h" #include "palette.h" +#include "palette_util.h" #include "random.h" #include "roulette.h" -#include "roulette_util.h" #include "rtc.h" #include "scanline_effect.h" #include "script.h" From 5e8ffff62f6d4c7e4e2b62852eec14c086dc488e Mon Sep 17 00:00:00 2001 From: GriffinR Date: Tue, 4 Aug 2020 20:33:05 -0400 Subject: [PATCH 045/101] Add stat stage constants --- data/battle_ai_scripts.s | 108 +++++++++++++++++------------------ data/battle_scripts_1.s | 56 +++++++++--------- include/constants/pokemon.h | 4 ++ include/pokemon.h | 2 +- src/battle_ai_switch_items.c | 4 +- src/battle_main.c | 6 +- src/battle_message.c | 16 +++--- src/battle_script_commands.c | 44 +++++++------- src/battle_tv.c | 4 +- src/battle_util.c | 36 +++++++----- src/pokemon.c | 50 ++++++++-------- 11 files changed, 170 insertions(+), 160 deletions(-) diff --git a/data/battle_ai_scripts.s b/data/battle_ai_scripts.s index e33ba431da..1c7bff51c8 100644 --- a/data/battle_ai_scripts.s +++ b/data/battle_ai_scripts.s @@ -249,64 +249,64 @@ AI_CBM_BellyDrum: @ 82DC341 if_hp_less_than AI_USER, 51, Score_Minus10 AI_CBM_AttackUp: @ 82DC348 - if_stat_level_equal AI_USER, STAT_ATK, 12, Score_Minus10 + if_stat_level_equal AI_USER, STAT_ATK, MAX_STAT_STAGE, Score_Minus10 end AI_CBM_DefenseUp: @ 82DC351 - if_stat_level_equal AI_USER, STAT_DEF, 12, Score_Minus10 + if_stat_level_equal AI_USER, STAT_DEF, MAX_STAT_STAGE, Score_Minus10 end AI_CBM_SpeedUp: @ 82DC35A - if_stat_level_equal AI_USER, STAT_SPEED, 12, Score_Minus10 + if_stat_level_equal AI_USER, STAT_SPEED, MAX_STAT_STAGE, Score_Minus10 end AI_CBM_SpAtkUp: @ 82DC363 - if_stat_level_equal AI_USER, STAT_SPATK, 12, Score_Minus10 + if_stat_level_equal AI_USER, STAT_SPATK, MAX_STAT_STAGE, Score_Minus10 end AI_CBM_SpDefUp: @ 82DC36C - if_stat_level_equal AI_USER, STAT_SPDEF, 12, Score_Minus10 + if_stat_level_equal AI_USER, STAT_SPDEF, MAX_STAT_STAGE, Score_Minus10 end AI_CBM_AccUp: @ 82DC375 - if_stat_level_equal AI_USER, STAT_ACC, 12, Score_Minus10 + if_stat_level_equal AI_USER, STAT_ACC, MAX_STAT_STAGE, Score_Minus10 end AI_CBM_EvasionUp: @ 82DC37E - if_stat_level_equal AI_USER, STAT_EVASION, 12, Score_Minus10 + if_stat_level_equal AI_USER, STAT_EVASION, MAX_STAT_STAGE, Score_Minus10 end AI_CBM_AttackDown: @ 82DC387 - if_stat_level_equal AI_TARGET, STAT_ATK, 0, Score_Minus10 + if_stat_level_equal AI_TARGET, STAT_ATK, MIN_STAT_STAGE, Score_Minus10 get_ability AI_TARGET if_equal ABILITY_HYPER_CUTTER, Score_Minus10 goto CheckIfAbilityBlocksStatChange AI_CBM_DefenseDown: @ 82DC39C - if_stat_level_equal AI_TARGET, STAT_DEF, 0, Score_Minus10 + if_stat_level_equal AI_TARGET, STAT_DEF, MIN_STAT_STAGE, Score_Minus10 goto CheckIfAbilityBlocksStatChange AI_CBM_SpeedDown: @ 82DC3A9 - if_stat_level_equal AI_TARGET, STAT_SPEED, 0, Score_Minus10 + if_stat_level_equal AI_TARGET, STAT_SPEED, MIN_STAT_STAGE, Score_Minus10 if_ability AI_TARGET, ABILITY_SPEED_BOOST, Score_Minus10 goto CheckIfAbilityBlocksStatChange AI_CBM_SpAtkDown: @ 82DC3BF - if_stat_level_equal AI_TARGET, STAT_SPATK, 0, Score_Minus10 + if_stat_level_equal AI_TARGET, STAT_SPATK, MIN_STAT_STAGE, Score_Minus10 goto CheckIfAbilityBlocksStatChange AI_CBM_SpDefDown: @ 82DC3CC - if_stat_level_equal AI_TARGET, STAT_SPDEF, 0, Score_Minus10 + if_stat_level_equal AI_TARGET, STAT_SPDEF, MIN_STAT_STAGE, Score_Minus10 goto CheckIfAbilityBlocksStatChange AI_CBM_AccDown: @ 82DC3D9 - if_stat_level_equal AI_TARGET, STAT_ACC, 0, Score_Minus10 + if_stat_level_equal AI_TARGET, STAT_ACC, MIN_STAT_STAGE, Score_Minus10 get_ability AI_TARGET if_equal ABILITY_KEEN_EYE, Score_Minus10 goto CheckIfAbilityBlocksStatChange AI_CBM_EvasionDown: @ 82DC3EE - if_stat_level_equal AI_TARGET, STAT_EVASION, 0, Score_Minus10 + if_stat_level_equal AI_TARGET, STAT_EVASION, MIN_STAT_STAGE, Score_Minus10 CheckIfAbilityBlocksStatChange: @ 82DC3F6 get_ability AI_TARGET @@ -315,20 +315,20 @@ CheckIfAbilityBlocksStatChange: @ 82DC3F6 end AI_CBM_Haze: @ 82DC405 - if_stat_level_less_than AI_USER, STAT_ATK, 6, AI_CBM_Haze_End - if_stat_level_less_than AI_USER, STAT_DEF, 6, AI_CBM_Haze_End - if_stat_level_less_than AI_USER, STAT_SPEED, 6, AI_CBM_Haze_End - if_stat_level_less_than AI_USER, STAT_SPATK, 6, AI_CBM_Haze_End - if_stat_level_less_than AI_USER, STAT_SPDEF, 6, AI_CBM_Haze_End - if_stat_level_less_than AI_USER, STAT_ACC, 6, AI_CBM_Haze_End - if_stat_level_less_than AI_USER, STAT_EVASION, 6, AI_CBM_Haze_End - if_stat_level_more_than AI_TARGET, STAT_ATK, 6, AI_CBM_Haze_End - if_stat_level_more_than AI_TARGET, STAT_DEF, 6, AI_CBM_Haze_End - if_stat_level_more_than AI_TARGET, STAT_SPEED, 6, AI_CBM_Haze_End - if_stat_level_more_than AI_TARGET, STAT_SPATK, 6, AI_CBM_Haze_End - if_stat_level_more_than AI_TARGET, STAT_SPDEF, 6, AI_CBM_Haze_End - if_stat_level_more_than AI_TARGET, STAT_ACC, 6, AI_CBM_Haze_End - if_stat_level_more_than AI_TARGET, STAT_EVASION, 6, AI_CBM_Haze_End + if_stat_level_less_than AI_USER, STAT_ATK, DEFAULT_STAT_STAGE, AI_CBM_Haze_End + if_stat_level_less_than AI_USER, STAT_DEF, DEFAULT_STAT_STAGE, AI_CBM_Haze_End + if_stat_level_less_than AI_USER, STAT_SPEED, DEFAULT_STAT_STAGE, AI_CBM_Haze_End + if_stat_level_less_than AI_USER, STAT_SPATK, DEFAULT_STAT_STAGE, AI_CBM_Haze_End + if_stat_level_less_than AI_USER, STAT_SPDEF, DEFAULT_STAT_STAGE, AI_CBM_Haze_End + if_stat_level_less_than AI_USER, STAT_ACC, DEFAULT_STAT_STAGE, AI_CBM_Haze_End + if_stat_level_less_than AI_USER, STAT_EVASION, DEFAULT_STAT_STAGE, AI_CBM_Haze_End + if_stat_level_more_than AI_TARGET, STAT_ATK, DEFAULT_STAT_STAGE, AI_CBM_Haze_End + if_stat_level_more_than AI_TARGET, STAT_DEF, DEFAULT_STAT_STAGE, AI_CBM_Haze_End + if_stat_level_more_than AI_TARGET, STAT_SPEED, DEFAULT_STAT_STAGE, AI_CBM_Haze_End + if_stat_level_more_than AI_TARGET, STAT_SPATK, DEFAULT_STAT_STAGE, AI_CBM_Haze_End + if_stat_level_more_than AI_TARGET, STAT_SPDEF, DEFAULT_STAT_STAGE, AI_CBM_Haze_End + if_stat_level_more_than AI_TARGET, STAT_ACC, DEFAULT_STAT_STAGE, AI_CBM_Haze_End + if_stat_level_more_than AI_TARGET, STAT_EVASION, DEFAULT_STAT_STAGE, AI_CBM_Haze_End goto Score_Minus10 AI_CBM_Haze_End: @ 82DC47A @@ -436,8 +436,8 @@ AI_CBM_CantEscape: @ 82DC5B0 end AI_CBM_Curse: @ 82DC5BB - if_stat_level_equal AI_USER, STAT_ATK, 12, Score_Minus10 - if_stat_level_equal AI_USER, STAT_DEF, 12, Score_Minus8 + if_stat_level_equal AI_USER, STAT_ATK, MAX_STAT_STAGE, Score_Minus10 + if_stat_level_equal AI_USER, STAT_DEF, MAX_STAT_STAGE, Score_Minus8 end AI_CBM_Spikes: @ 82DC5CC @@ -484,8 +484,8 @@ AI_CBM_Safeguard: @ 82DC635 end AI_CBM_Memento: @ 82DC640 - if_stat_level_equal AI_TARGET, STAT_ATK, 0, Score_Minus10 - if_stat_level_equal AI_TARGET, STAT_SPATK, 0, Score_Minus8 + if_stat_level_equal AI_TARGET, STAT_ATK, MIN_STAT_STAGE, Score_Minus10 + if_stat_level_equal AI_TARGET, STAT_SPATK, MIN_STAT_STAGE, Score_Minus8 AI_CBM_BatonPass: @ 82DC650 count_usable_party_mons AI_USER @@ -574,18 +574,18 @@ AI_CBM_MudSport: @ 82DC71E end AI_CBM_Tickle: @ 82DC729 - if_stat_level_equal AI_TARGET, STAT_ATK, 0, Score_Minus10 - if_stat_level_equal AI_TARGET, STAT_DEF, 0, Score_Minus8 + if_stat_level_equal AI_TARGET, STAT_ATK, MIN_STAT_STAGE, Score_Minus10 + if_stat_level_equal AI_TARGET, STAT_DEF, MIN_STAT_STAGE, Score_Minus8 end AI_CBM_CosmicPower: @ 82DC73A - if_stat_level_equal AI_USER, STAT_DEF, 12, Score_Minus10 - if_stat_level_equal AI_USER, STAT_SPDEF, 12, Score_Minus8 + if_stat_level_equal AI_USER, STAT_DEF, MAX_STAT_STAGE, Score_Minus10 + if_stat_level_equal AI_USER, STAT_SPDEF, MAX_STAT_STAGE, Score_Minus8 end AI_CBM_BulkUp: @ 82DC74B - if_stat_level_equal AI_USER, STAT_ATK, 12, Score_Minus10 - if_stat_level_equal AI_USER, STAT_DEF, 12, Score_Minus8 + if_stat_level_equal AI_USER, STAT_ATK, MAX_STAT_STAGE, Score_Minus10 + if_stat_level_equal AI_USER, STAT_DEF, MAX_STAT_STAGE, Score_Minus8 end AI_CBM_WaterSport: @ 82DC75C @@ -593,13 +593,13 @@ AI_CBM_WaterSport: @ 82DC75C end AI_CBM_CalmMind: @ 82DC767 - if_stat_level_equal AI_USER, STAT_SPATK, 12, Score_Minus10 - if_stat_level_equal AI_USER, STAT_SPDEF, 12, Score_Minus8 + if_stat_level_equal AI_USER, STAT_SPATK, MAX_STAT_STAGE, Score_Minus10 + if_stat_level_equal AI_USER, STAT_SPDEF, MAX_STAT_STAGE, Score_Minus8 end AI_CBM_DragonDance: @ 82DC778 - if_stat_level_equal AI_USER, STAT_ATK, 12, Score_Minus10 - if_stat_level_equal AI_USER, STAT_SPEED, 12, Score_Minus8 + if_stat_level_equal AI_USER, STAT_ATK, MAX_STAT_STAGE, Score_Minus10 + if_stat_level_equal AI_USER, STAT_SPEED, MAX_STAT_STAGE, Score_Minus8 end Score_Minus1: @@ -1101,7 +1101,7 @@ AI_CV_EvasionUp7: AI_CV_EvasionUp8: if_hp_more_than AI_USER, 70, AI_CV_EvasionUp_End - if_stat_level_equal AI_USER, STAT_EVASION, 6, AI_CV_EvasionUp_End + if_stat_level_equal AI_USER, STAT_EVASION, DEFAULT_STAT_STAGE, AI_CV_EvasionUp_End if_hp_less_than AI_USER, 40, AI_CV_EvasionUp_ScoreDown2 if_hp_less_than AI_TARGET, 40, AI_CV_EvasionUp_ScoreDown2 if_random_less_than 70, AI_CV_EvasionUp_End @@ -1130,7 +1130,7 @@ AI_CV_AlwaysHit_End: end AI_CV_AttackDown: @ 82DCDF8 - if_stat_level_equal AI_TARGET, STAT_ATK, 6, AI_CV_AttackDown3 + if_stat_level_equal AI_TARGET, STAT_ATK, DEFAULT_STAT_STAGE, AI_CV_AttackDown3 score -1 if_hp_more_than AI_USER, 90, AI_CV_AttackDown2 score -1 @@ -1198,7 +1198,7 @@ AI_CV_SpeedDown_End: @ 82DCE96 end AI_CV_SpAtkDown: - if_stat_level_equal AI_TARGET, STAT_ATK, 6, AI_CV_SpAtkDown3 + if_stat_level_equal AI_TARGET, STAT_ATK, DEFAULT_STAT_STAGE, AI_CV_SpAtkDown3 score -1 if_hp_more_than AI_USER, 90, AI_CV_SpAtkDown2 score -1 @@ -1284,7 +1284,7 @@ AI_CV_AccuracyDown7: AI_CV_AccuracyDown8: if_hp_more_than AI_USER, 70, AI_CV_AccuracyDown_End - if_stat_level_equal AI_TARGET, STAT_ACC, 6, AI_CV_AccuracyDown_End + if_stat_level_equal AI_TARGET, STAT_ACC, DEFAULT_STAT_STAGE, AI_CV_AccuracyDown_End if_hp_less_than AI_USER, 40, AI_CV_AccuracyDown_ScoreDown2 if_hp_less_than AI_TARGET, 40, AI_CV_AccuracyDown_ScoreDown2 if_random_less_than 70, AI_CV_AccuracyDown_End @@ -1997,7 +1997,7 @@ AI_CV_Curse2: score +1 AI_CV_Curse3: - if_stat_level_more_than AI_USER, STAT_DEF, 6, AI_CV_Curse_End + if_stat_level_more_than AI_USER, STAT_DEF, DEFAULT_STAT_STAGE, AI_CV_Curse_End if_random_less_than 128, AI_CV_Curse_End score +1 goto AI_CV_Curse_End @@ -2518,7 +2518,7 @@ AI_CV_ChangeSelfAbility_AbilitiesToEncourage: AI_CV_Superpower: if_type_effectiveness AI_EFFECTIVENESS_x0_25, AI_CV_Superpower_ScoreDown1 if_type_effectiveness AI_EFFECTIVENESS_x0_5, AI_CV_Superpower_ScoreDown1 - if_stat_level_less_than AI_USER, STAT_ATK, 6, AI_CV_Superpower_ScoreDown1 + if_stat_level_less_than AI_USER, STAT_ATK, DEFAULT_STAT_STAGE, AI_CV_Superpower_ScoreDown1 if_target_faster AI_CV_Superpower2 if_hp_more_than AI_USER, 40, AI_CV_Superpower_ScoreDown1 goto AI_CV_Superpower_End @@ -2933,12 +2933,12 @@ sMovesTable_ProtectMoves: AI_PreferBatonPass_EncourageIfHighStats: get_turn_count if_equal 0, Score_Minus2 - if_stat_level_more_than AI_USER, STAT_ATK, 8, Score_Plus3 - if_stat_level_more_than AI_USER, STAT_ATK, 7, Score_Plus2 - if_stat_level_more_than AI_USER, STAT_ATK, 6, Score_Plus1 - if_stat_level_more_than AI_USER, STAT_SPATK, 8, Score_Plus3 - if_stat_level_more_than AI_USER, STAT_SPATK, 7, Score_Plus2 - if_stat_level_more_than AI_USER, STAT_SPATK, 6, Score_Plus1 + if_stat_level_more_than AI_USER, STAT_ATK, DEFAULT_STAT_STAGE + 2, Score_Plus3 + if_stat_level_more_than AI_USER, STAT_ATK, DEFAULT_STAT_STAGE + 1, Score_Plus2 + if_stat_level_more_than AI_USER, STAT_ATK, DEFAULT_STAT_STAGE, Score_Plus1 + if_stat_level_more_than AI_USER, STAT_SPATK, DEFAULT_STAT_STAGE + 2, Score_Plus3 + if_stat_level_more_than AI_USER, STAT_SPATK, DEFAULT_STAT_STAGE + 1, Score_Plus2 + if_stat_level_more_than AI_USER, STAT_SPATK, DEFAULT_STAT_STAGE, Score_Plus1 end AI_PreferBatonPassEnd: diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index 273b3d028f..f0c0a7ea85 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -1504,9 +1504,9 @@ BattleScript_EffectCurse:: attackcanceler attackstring ppreduce - jumpifstat BS_ATTACKER, CMP_GREATER_THAN, STAT_SPEED, 0x0, BattleScript_CurseTrySpeed - jumpifstat BS_ATTACKER, CMP_NOT_EQUAL, STAT_ATK, 0xC, BattleScript_CurseTrySpeed - jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_DEF, 0xC, BattleScript_ButItFailed + jumpifstat BS_ATTACKER, CMP_GREATER_THAN, STAT_SPEED, MIN_STAT_STAGE, BattleScript_CurseTrySpeed + jumpifstat BS_ATTACKER, CMP_NOT_EQUAL, STAT_ATK, MAX_STAT_STAGE, BattleScript_CurseTrySpeed + jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_DEF, MAX_STAT_STAGE, BattleScript_ButItFailed BattleScript_CurseTrySpeed:: copybyte gBattlerTarget, gBattlerAttacker setbyte sB_ANIM_TURN, 0x1 @@ -2670,8 +2670,8 @@ BattleScript_EffectTickle:: attackcanceler attackstring ppreduce - jumpifstat BS_TARGET, CMP_GREATER_THAN, STAT_ATK, 0x0, BattleScript_TickleDoMoveAnim - jumpifstat BS_TARGET, CMP_EQUAL, STAT_DEF, 0x0, BattleScript_CantLowerMultipleStats + jumpifstat BS_TARGET, CMP_GREATER_THAN, STAT_ATK, MIN_STAT_STAGE, BattleScript_TickleDoMoveAnim + jumpifstat BS_TARGET, CMP_EQUAL, STAT_DEF, MIN_STAT_STAGE, BattleScript_CantLowerMultipleStats BattleScript_TickleDoMoveAnim:: accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE attackanimation @@ -2705,8 +2705,8 @@ BattleScript_EffectCosmicPower:: attackcanceler attackstring ppreduce - jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_DEF, 0xC, BattleScript_CosmicPowerDoMoveAnim - jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_SPDEF, 0xC, BattleScript_CantRaiseMultipleStats + jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_DEF, MAX_STAT_STAGE, BattleScript_CosmicPowerDoMoveAnim + jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_SPDEF, MAX_STAT_STAGE, BattleScript_CantRaiseMultipleStats BattleScript_CosmicPowerDoMoveAnim:: attackanimation waitanimation @@ -2734,8 +2734,8 @@ BattleScript_EffectBulkUp:: attackcanceler attackstring ppreduce - jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_ATK, 0xC, BattleScript_BulkUpDoMoveAnim - jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_DEF, 0xC, BattleScript_CantRaiseMultipleStats + jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_ATK, MAX_STAT_STAGE, BattleScript_BulkUpDoMoveAnim + jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_DEF, MAX_STAT_STAGE, BattleScript_CantRaiseMultipleStats BattleScript_BulkUpDoMoveAnim:: attackanimation waitanimation @@ -2759,8 +2759,8 @@ BattleScript_EffectCalmMind:: attackcanceler attackstring ppreduce - jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_SPATK, 0xC, BattleScript_CalmMindDoMoveAnim - jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_SPDEF, 0xC, BattleScript_CantRaiseMultipleStats + jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_SPATK, MAX_STAT_STAGE, BattleScript_CalmMindDoMoveAnim + jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_SPDEF, MAX_STAT_STAGE, BattleScript_CantRaiseMultipleStats BattleScript_CalmMindDoMoveAnim:: attackanimation waitanimation @@ -2791,8 +2791,8 @@ BattleScript_EffectDragonDance:: attackcanceler attackstring ppreduce - jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_ATK, 0xC, BattleScript_DragonDanceDoMoveAnim - jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_SPEED, 0xC, BattleScript_CantRaiseMultipleStats + jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_ATK, MAX_STAT_STAGE, BattleScript_DragonDanceDoMoveAnim + jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_SPEED, MAX_STAT_STAGE, BattleScript_CantRaiseMultipleStats BattleScript_DragonDanceDoMoveAnim:: attackanimation waitanimation @@ -3047,13 +3047,13 @@ BattleScript_FrontierTrainerBattleWon_LoseTexts: trainerslidein BS_ATTACKER waitstate printstring STRINGID_TRAINER1LOSETEXT - jumpifnotbattletype BATTLE_TYPE_TWO_OPPONENTS, BattleScript_82DAACB + jumpifnotbattletype BATTLE_TYPE_TWO_OPPONENTS, BattleScript_TryPickUpItems trainerslideout B_POSITION_OPPONENT_LEFT waitstate trainerslidein BS_FAINTED waitstate printstring STRINGID_TRAINER2LOSETEXT -BattleScript_82DAACB: +BattleScript_TryPickUpItems: jumpifnotbattletype BATTLE_TYPE_PYRAMID, BattleScript_FrontierTrainerBattleWon_End pickup BattleScript_FrontierTrainerBattleWon_End: @@ -3462,11 +3462,11 @@ BattleScript_PerishSongCountGoesDown:: end2 BattleScript_AllStatsUp:: - jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_ATK, 0xC, BattleScript_AllStatsUpAtk - jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_DEF, 0xC, BattleScript_AllStatsUpAtk - jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_SPEED, 0xC, BattleScript_AllStatsUpAtk - jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_SPATK, 0xC, BattleScript_AllStatsUpAtk - jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_SPDEF, 0xC, BattleScript_AllStatsUpRet + jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_ATK, MAX_STAT_STAGE, BattleScript_AllStatsUpAtk + jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_DEF, MAX_STAT_STAGE, BattleScript_AllStatsUpAtk + jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_SPEED, MAX_STAT_STAGE, BattleScript_AllStatsUpAtk + jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_SPATK, MAX_STAT_STAGE, BattleScript_AllStatsUpAtk + jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_SPDEF, MAX_STAT_STAGE, BattleScript_AllStatsUpRet BattleScript_AllStatsUpAtk:: setbyte sSTAT_ANIM_PLAYED, FALSE playstatchangeanimation BS_ATTACKER, BIT_ATK | BIT_DEF | BIT_SPEED | BIT_SPATK | BIT_SPDEF, 0x0 @@ -3638,18 +3638,18 @@ BattleScript_AtkDefDown:: playstatchangeanimation BS_ATTACKER, BIT_DEF | BIT_ATK, STAT_CHANGE_CANT_PREVENT | STAT_CHANGE_NEGATIVE | STAT_CHANGE_MULTIPLE_STATS playstatchangeanimation BS_ATTACKER, BIT_ATK, STAT_CHANGE_CANT_PREVENT | STAT_CHANGE_NEGATIVE setstatchanger STAT_ATK, 1, TRUE - statbuffchange MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN | STAT_BUFF_ALLOW_PTR, BattleScript_82DB144 - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DB144 + statbuffchange MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN | STAT_BUFF_ALLOW_PTR, BattleScript_AtkDefDown_TryDef + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_AtkDefDown_TryDef printfromtable gStatDownStringIds waitmessage 0x40 -BattleScript_82DB144:: +BattleScript_AtkDefDown_TryDef:: playstatchangeanimation BS_ATTACKER, BIT_DEF, STAT_CHANGE_CANT_PREVENT | STAT_CHANGE_NEGATIVE setstatchanger STAT_DEF, 1, TRUE - statbuffchange MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN | STAT_BUFF_ALLOW_PTR, BattleScript_82DB167 - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DB167 + statbuffchange MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN | STAT_BUFF_ALLOW_PTR, BattleScript_AtkDefDown_End + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_AtkDefDown_End printfromtable gStatDownStringIds waitmessage 0x40 -BattleScript_82DB167:: +BattleScript_AtkDefDown_End:: return BattleScript_KnockedOff:: @@ -4017,10 +4017,10 @@ BattleScript_WeatherFormChangesLoop:: return BattleScript_CastformChange:: - call BattleScript_82DB4AF + call BattleScript_DoCastformChange end3 -BattleScript_82DB4AF:: +BattleScript_DoCastformChange:: docastformchangeanimation waitstate printstring STRINGID_PKMNTRANSFORMED diff --git a/include/constants/pokemon.h b/include/constants/pokemon.h index 0d8fc6a571..286726838b 100644 --- a/include/constants/pokemon.h +++ b/include/constants/pokemon.h @@ -84,6 +84,10 @@ #define NUM_NATURE_STATS NUM_STATS - 1 // excludes HP #define NUM_BATTLE_STATS NUM_STATS + 2 // includes Accuracy and Evasion +#define MIN_STAT_STAGE 0 +#define DEFAULT_STAT_STAGE 6 +#define MAX_STAT_STAGE 12 + // Shiny odds #define SHINY_ODDS 8 // Actual probability is SHINY_ODDS/65536 diff --git a/include/pokemon.h b/include/pokemon.h index 69ef7a142b..d75ec94f30 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -254,7 +254,7 @@ extern const u16 *const gLevelUpLearnsets[]; extern const u8 gPPUpGetMask[]; extern const u8 gPPUpSetMask[]; extern const u8 gPPUpAddMask[]; -extern const u8 gStatStageRatios[][2]; +extern const u8 gStatStageRatios[MAX_STAT_STAGE + 1][2]; extern const u16 gLinkPlayerFacilityClasses[]; extern const struct SpriteTemplate gUnknown_08329D98[]; extern const s8 gNatureStatTable[][5]; diff --git a/src/battle_ai_switch_items.c b/src/battle_ai_switch_items.c index 32f9620b7d..2a5a83e0d7 100644 --- a/src/battle_ai_switch_items.c +++ b/src/battle_ai_switch_items.c @@ -314,8 +314,8 @@ static bool8 AreStatsRaised(void) for (i = 0; i < NUM_BATTLE_STATS; i++) { - if (gBattleMons[gActiveBattler].statStages[i] > 6) - buffedStatsValue += gBattleMons[gActiveBattler].statStages[i] - 6; + if (gBattleMons[gActiveBattler].statStages[i] > DEFAULT_STAT_STAGE) + buffedStatsValue += gBattleMons[gActiveBattler].statStages[i] - DEFAULT_STAT_STAGE; } return (buffedStatsValue > 3); diff --git a/src/battle_main.c b/src/battle_main.c index 1d8aeab539..b8ebda9e47 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -3135,7 +3135,7 @@ void SwitchInClearSetData(void) if (gBattleMoves[gCurrentMove].effect != EFFECT_BATON_PASS) { for (i = 0; i < NUM_BATTLE_STATS; i++) - gBattleMons[gActiveBattler].statStages[i] = 6; + gBattleMons[gActiveBattler].statStages[i] = DEFAULT_STAT_STAGE; for (i = 0; i < gBattlersCount; i++) { if ((gBattleMons[i].status2 & STATUS2_ESCAPE_PREVENTION) && gDisableStructs[i].battlerPreventingEscape == gActiveBattler) @@ -3244,7 +3244,7 @@ void FaintClearSetData(void) u8 *ptr; for (i = 0; i < NUM_BATTLE_STATS; i++) - gBattleMons[gActiveBattler].statStages[i] = 6; + gBattleMons[gActiveBattler].statStages[i] = DEFAULT_STAT_STAGE; gBattleMons[gActiveBattler].status2 = 0; gStatuses3[gActiveBattler] = 0; @@ -3398,7 +3398,7 @@ static void BattleIntroDrawTrainersOrMonsSprites(void) hpOnSwitchout = &gBattleStruct->hpOnSwitchout[GetBattlerSide(gActiveBattler)]; *hpOnSwitchout = gBattleMons[gActiveBattler].hp; for (i = 0; i < NUM_BATTLE_STATS; i++) - gBattleMons[gActiveBattler].statStages[i] = 6; + gBattleMons[gActiveBattler].statStages[i] = DEFAULT_STAT_STAGE; gBattleMons[gActiveBattler].status2 = 0; } diff --git a/src/battle_message.c b/src/battle_message.c index cc43d1656e..2fba578dc0 100644 --- a/src/battle_message.c +++ b/src/battle_message.c @@ -438,14 +438,14 @@ static const u8 sText_Evasiveness[] = _("evasiveness"); const u8 * const gStatNamesTable[NUM_BATTLE_STATS] = { - [STAT_HP] = sText_HP2, - [STAT_ATK] = sText_Attack2, + [STAT_HP] = sText_HP2, + [STAT_ATK] = sText_Attack2, [STAT_DEF] = sText_Defense2, - [STAT_SPEED] = sText_Speed, - [STAT_SPATK] = sText_SpAtk2, + [STAT_SPEED] = sText_Speed, + [STAT_SPATK] = sText_SpAtk2, [STAT_SPDEF] = sText_SpDef2, - [STAT_ACC] = sText_Accuracy, - [STAT_EVASION] = sText_Evasiveness + [STAT_ACC] = sText_Accuracy, + [STAT_EVASION] = sText_Evasiveness, }; static const u8 sText_PokeblockWasTooSpicy[] = _("was too spicy!"); @@ -456,9 +456,9 @@ static const u8 sText_PokeblockWasTooSour[] = _("was too sour!"); const u8 * const gPokeblockWasTooXStringTable[FLAVOR_COUNT] = { - [FLAVOR_SPICY] = sText_PokeblockWasTooSpicy, + [FLAVOR_SPICY] = sText_PokeblockWasTooSpicy, [FLAVOR_DRY] = sText_PokeblockWasTooDry, - [FLAVOR_SWEET] = sText_PokeblockWasTooSweet, + [FLAVOR_SWEET] = sText_PokeblockWasTooSweet, [FLAVOR_BITTER] = sText_PokeblockWasTooBitter, [FLAVOR_SOUR] = sText_PokeblockWasTooSour }; diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 4e0e087b60..c9c7857733 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -1128,13 +1128,13 @@ static void Cmd_accuracycheck(void) else { u8 acc = gBattleMons[gBattlerAttacker].statStages[STAT_ACC]; - buff = acc + 6 - gBattleMons[gBattlerTarget].statStages[STAT_EVASION]; + buff = acc + DEFAULT_STAT_STAGE - gBattleMons[gBattlerTarget].statStages[STAT_EVASION]; } - if (buff < 0) - buff = 0; - if (buff > 0xC) - buff = 0xC; + if (buff < MIN_STAT_STAGE) + buff = MIN_STAT_STAGE; + if (buff > MAX_STAT_STAGE) + buff = MAX_STAT_STAGE; moveAcc = gBattleMoves[move].accuracy; // check Thunder on sunny weather @@ -3500,7 +3500,7 @@ static void Cmd_unknown_24(void) if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER && gPartnerTrainerId == TRAINER_STEVEN_PARTNER) { - for (i = 0; i < 3; i++) + for (i = 0; i < MULTI_PARTY_SIZE; i++) { if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES) && !GetMonData(&gPlayerParty[i], MON_DATA_IS_EGG)) HP_count += GetMonData(&gPlayerParty[i], MON_DATA_HP); @@ -4385,7 +4385,7 @@ static void Cmd_playstatchangeanimation(void) { if (gBattlescriptCurrInstr[3] & STAT_CHANGE_CANT_PREVENT) { - if (gBattleMons[gActiveBattler].statStages[currStat] > 0) + if (gBattleMons[gActiveBattler].statStages[currStat] > MIN_STAT_STAGE) { statAnimId = startingStatAnimId + currStat; changeableStatsCount++; @@ -4397,7 +4397,7 @@ static void Cmd_playstatchangeanimation(void) && !(gBattleMons[gActiveBattler].ability == ABILITY_KEEN_EYE && currStat == STAT_ACC) && !(gBattleMons[gActiveBattler].ability == ABILITY_HYPER_CUTTER && currStat == STAT_ATK)) { - if (gBattleMons[gActiveBattler].statStages[currStat] > 0) + if (gBattleMons[gActiveBattler].statStages[currStat] > MIN_STAT_STAGE) { statAnimId = startingStatAnimId + currStat; changeableStatsCount++; @@ -4425,7 +4425,7 @@ static void Cmd_playstatchangeanimation(void) while (statsToCheck != 0) { - if (statsToCheck & 1 && gBattleMons[gActiveBattler].statStages[currStat] < 0xC) + if (statsToCheck & 1 && gBattleMons[gActiveBattler].statStages[currStat] < MAX_STAT_STAGE) { statAnimId = startingStatAnimId + currStat; changeableStatsCount++; @@ -4495,7 +4495,7 @@ static void Cmd_moveend(void) && gBattleMons[gBattlerTarget].hp != 0 && gBattlerAttacker != gBattlerTarget && GetBattlerSide(gBattlerAttacker) != GetBattlerSide(gBattlerTarget) && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) && TARGET_TURN_DAMAGED - && gBattleMoves[gCurrentMove].power && gBattleMons[gBattlerTarget].statStages[STAT_ATK] <= 0xB) + && gBattleMoves[gCurrentMove].power && gBattleMons[gBattlerTarget].statStages[STAT_ATK] < MAX_STAT_STAGE) { gBattleMons[gBattlerTarget].statStages[STAT_ATK]++; BattleScriptPushCursor(); @@ -7288,7 +7288,7 @@ static u8 ChangeStatBuffs(s8 statValue, u8 statId, u8 flags, const u8 *BS_ptr) index++; gBattleTextBuff2[index] = B_BUFF_EOS; - if (gBattleMons[gActiveBattler].statStages[statId] == 0) + if (gBattleMons[gActiveBattler].statStages[statId] == MIN_STAT_STAGE) gBattleCommunication[MULTISTRING_CHOOSER] = 2; else gBattleCommunication[MULTISTRING_CHOOSER] = (gBattlerTarget == gActiveBattler); @@ -7315,17 +7315,17 @@ static u8 ChangeStatBuffs(s8 statValue, u8 statId, u8 flags, const u8 *BS_ptr) index++; gBattleTextBuff2[index] = B_BUFF_EOS; - if (gBattleMons[gActiveBattler].statStages[statId] == 0xC) + if (gBattleMons[gActiveBattler].statStages[statId] == MAX_STAT_STAGE) gBattleCommunication[MULTISTRING_CHOOSER] = 2; else gBattleCommunication[MULTISTRING_CHOOSER] = (gBattlerTarget == gActiveBattler); } gBattleMons[gActiveBattler].statStages[statId] += statValue; - if (gBattleMons[gActiveBattler].statStages[statId] < 0) - gBattleMons[gActiveBattler].statStages[statId] = 0; - if (gBattleMons[gActiveBattler].statStages[statId] > 0xC) - gBattleMons[gActiveBattler].statStages[statId] = 0xC; + if (gBattleMons[gActiveBattler].statStages[statId] < MIN_STAT_STAGE) + gBattleMons[gActiveBattler].statStages[statId] = MIN_STAT_STAGE; + if (gBattleMons[gActiveBattler].statStages[statId] > MAX_STAT_STAGE) + gBattleMons[gActiveBattler].statStages[statId] = MAX_STAT_STAGE; if (gBattleCommunication[MULTISTRING_CHOOSER] == 2 && flags & STAT_BUFF_ALLOW_PTR) gMoveResultFlags |= MOVE_RESULT_MISSED; @@ -7350,7 +7350,7 @@ static void Cmd_normalisebuffs(void) // haze for (i = 0; i < gBattlersCount; i++) { for (j = 0; j < NUM_BATTLE_STATS; j++) - gBattleMons[i].statStages[j] = 6; + gBattleMons[i].statStages[j] = DEFAULT_STAT_STAGE; } gBattlescriptCurrInstr++; @@ -8750,7 +8750,7 @@ static void Cmd_rolloutdamagecalculation(void) static void Cmd_jumpifconfusedandstatmaxed(void) { if (gBattleMons[gBattlerTarget].status2 & STATUS2_CONFUSION - && gBattleMons[gBattlerTarget].statStages[gBattlescriptCurrInstr[1]] == 0xC) + && gBattleMons[gBattlerTarget].statStages[gBattlescriptCurrInstr[1]] == MAX_STAT_STAGE) gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 2); else gBattlescriptCurrInstr += 6; @@ -8957,10 +8957,10 @@ static void Cmd_maxattackhalvehp(void) // belly drum if (!(gBattleMons[gBattlerAttacker].maxHP / 2)) halfHp = 1; - if (gBattleMons[gBattlerAttacker].statStages[STAT_ATK] < 12 + if (gBattleMons[gBattlerAttacker].statStages[STAT_ATK] < MAX_STAT_STAGE && gBattleMons[gBattlerAttacker].hp > halfHp) { - gBattleMons[gBattlerAttacker].statStages[STAT_ATK] = 12; + gBattleMons[gBattlerAttacker].statStages[STAT_ATK] = MAX_STAT_STAGE; gBattleMoveDamage = gBattleMons[gBattlerAttacker].maxHP / 2; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; @@ -9234,8 +9234,8 @@ static void Cmd_sethail(void) static void Cmd_jumpifattackandspecialattackcannotfall(void) // memento { - if (gBattleMons[gBattlerTarget].statStages[STAT_ATK] == 0 - && gBattleMons[gBattlerTarget].statStages[STAT_SPATK] == 0 + if (gBattleMons[gBattlerTarget].statStages[STAT_ATK] == MIN_STAT_STAGE + && gBattleMons[gBattlerTarget].statStages[STAT_SPATK] == MIN_STAT_STAGE && gBattleCommunication[6] != 1) { gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); diff --git a/src/battle_tv.c b/src/battle_tv.c index 26df087864..c84ae827b0 100644 --- a/src/battle_tv.c +++ b/src/battle_tv.c @@ -1398,9 +1398,9 @@ static void TrySetBattleSeminarShow(void) return; else if (GetBattlerSide(gBattlerAttacker) == B_SIDE_OPPONENT) return; - else if (gBattleMons[gBattlerAttacker].statStages[STAT_ACC] <= 5) + else if (gBattleMons[gBattlerAttacker].statStages[STAT_ACC] < DEFAULT_STAT_STAGE) return; - else if (gBattleMons[gBattlerTarget].statStages[STAT_EVASION] > 6) + else if (gBattleMons[gBattlerTarget].statStages[STAT_EVASION] > DEFAULT_STAT_STAGE) return; else if (gCurrentMove == MOVE_HIDDEN_POWER || gCurrentMove == MOVE_WEATHER_BALL) return; diff --git a/src/battle_util.c b/src/battle_util.c index 9cc2252b68..38d6fb18a9 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -1978,7 +1978,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA } break; case ABILITY_SPEED_BOOST: - if (gBattleMons[battler].statStages[STAT_SPEED] < 0xC && gDisableStructs[battler].isFirstTurn != 2) + if (gBattleMons[battler].statStages[STAT_SPEED] < MAX_STAT_STAGE && gDisableStructs[battler].isFirstTurn != 2) { gBattleMons[battler].statStages[STAT_SPEED]++; gBattleScripting.animArg1 = 0x11; @@ -2619,9 +2619,9 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) case HOLD_EFFECT_RESTORE_STATS: for (i = 0; i < NUM_BATTLE_STATS; i++) { - if (gBattleMons[battlerId].statStages[i] < 6) + if (gBattleMons[battlerId].statStages[i] < DEFAULT_STAT_STAGE) { - gBattleMons[battlerId].statStages[i] = 6; + gBattleMons[battlerId].statStages[i] = DEFAULT_STAT_STAGE; effect = ITEM_STATS_CHANGE; } } @@ -2690,9 +2690,9 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) case HOLD_EFFECT_RESTORE_STATS: for (i = 0; i < NUM_BATTLE_STATS; i++) { - if (gBattleMons[battlerId].statStages[i] < 6) + if (gBattleMons[battlerId].statStages[i] < DEFAULT_STAT_STAGE) { - gBattleMons[battlerId].statStages[i] = 6; + gBattleMons[battlerId].statStages[i] = DEFAULT_STAT_STAGE; effect = ITEM_STATS_CHANGE; } } @@ -2811,7 +2811,8 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) break; // copy/paste again, smh case HOLD_EFFECT_ATTACK_UP: - if (gBattleMons[battlerId].hp <= gBattleMons[battlerId].maxHP / battlerHoldEffectParam && !moveTurn && gBattleMons[battlerId].statStages[STAT_ATK] < 0xC) + if (gBattleMons[battlerId].hp <= gBattleMons[battlerId].maxHP / battlerHoldEffectParam + && !moveTurn && gBattleMons[battlerId].statStages[STAT_ATK] < MAX_STAT_STAGE) { PREPARE_STAT_BUFFER(gBattleTextBuff1, STAT_ATK); PREPARE_STRING_BUFFER(gBattleTextBuff2, STRINGID_STATROSE); @@ -2825,7 +2826,8 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) } break; case HOLD_EFFECT_DEFENSE_UP: - if (gBattleMons[battlerId].hp <= gBattleMons[battlerId].maxHP / battlerHoldEffectParam && !moveTurn && gBattleMons[battlerId].statStages[STAT_DEF] < 0xC) + if (gBattleMons[battlerId].hp <= gBattleMons[battlerId].maxHP / battlerHoldEffectParam && !moveTurn + && gBattleMons[battlerId].statStages[STAT_DEF] < MAX_STAT_STAGE) { PREPARE_STAT_BUFFER(gBattleTextBuff1, STAT_DEF); @@ -2838,7 +2840,8 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) } break; case HOLD_EFFECT_SPEED_UP: - if (gBattleMons[battlerId].hp <= gBattleMons[battlerId].maxHP / battlerHoldEffectParam && !moveTurn && gBattleMons[battlerId].statStages[STAT_SPEED] < 0xC) + if (gBattleMons[battlerId].hp <= gBattleMons[battlerId].maxHP / battlerHoldEffectParam && !moveTurn + && gBattleMons[battlerId].statStages[STAT_SPEED] < MAX_STAT_STAGE) { PREPARE_STAT_BUFFER(gBattleTextBuff1, STAT_SPEED); @@ -2851,7 +2854,8 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) } break; case HOLD_EFFECT_SP_ATTACK_UP: - if (gBattleMons[battlerId].hp <= gBattleMons[battlerId].maxHP / battlerHoldEffectParam && !moveTurn && gBattleMons[battlerId].statStages[STAT_SPATK] < 0xC) + if (gBattleMons[battlerId].hp <= gBattleMons[battlerId].maxHP / battlerHoldEffectParam && !moveTurn + && gBattleMons[battlerId].statStages[STAT_SPATK] < MAX_STAT_STAGE) { PREPARE_STAT_BUFFER(gBattleTextBuff1, STAT_SPATK); @@ -2864,7 +2868,8 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) } break; case HOLD_EFFECT_SP_DEFENSE_UP: - if (gBattleMons[battlerId].hp <= gBattleMons[battlerId].maxHP / battlerHoldEffectParam && !moveTurn && gBattleMons[battlerId].statStages[STAT_SPDEF] < 0xC) + if (gBattleMons[battlerId].hp <= gBattleMons[battlerId].maxHP / battlerHoldEffectParam && !moveTurn + && gBattleMons[battlerId].statStages[STAT_SPDEF] < MAX_STAT_STAGE) { PREPARE_STAT_BUFFER(gBattleTextBuff1, STAT_SPDEF); @@ -2877,7 +2882,8 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) } break; case HOLD_EFFECT_CRITICAL_UP: - if (gBattleMons[battlerId].hp <= gBattleMons[battlerId].maxHP / battlerHoldEffectParam && !moveTurn && !(gBattleMons[battlerId].status2 & STATUS2_FOCUS_ENERGY)) + if (gBattleMons[battlerId].hp <= gBattleMons[battlerId].maxHP / battlerHoldEffectParam && !moveTurn + && !(gBattleMons[battlerId].status2 & STATUS2_FOCUS_ENERGY)) { gBattleMons[battlerId].status2 |= STATUS2_FOCUS_ENERGY; BattleScriptExecute(BattleScript_BerryFocusEnergyEnd2); @@ -2889,7 +2895,7 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) { for (i = 0; i < 5; i++) { - if (gBattleMons[battlerId].statStages[STAT_ATK + i] < 0xC) + if (gBattleMons[battlerId].statStages[STAT_ATK + i] < MAX_STAT_STAGE) break; } if (i != 5) @@ -2897,7 +2903,7 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) do { i = Random() % 5; - } while (gBattleMons[battlerId].statStages[STAT_ATK + i] == 0xC); + } while (gBattleMons[battlerId].statStages[STAT_ATK + i] == MAX_STAT_STAGE); PREPARE_STAT_BUFFER(gBattleTextBuff1, i + 1); @@ -3166,9 +3172,9 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) case HOLD_EFFECT_RESTORE_STATS: for (i = 0; i < NUM_BATTLE_STATS; i++) { - if (gBattleMons[battlerId].statStages[i] < 6) + if (gBattleMons[battlerId].statStages[i] < DEFAULT_STAT_STAGE) { - gBattleMons[battlerId].statStages[i] = 6; + gBattleMons[battlerId].statStages[i] = DEFAULT_STAT_STAGE; effect = ITEM_STATS_CHANGE; } } diff --git a/src/pokemon.c b/src/pokemon.c index 80e93c5685..6561e653b0 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -1868,21 +1868,21 @@ const u8 gPPUpGetMask[] = {0x03, 0x0c, 0x30, 0xc0}; // Masks for getting PP Up c const u8 gPPUpSetMask[] = {0xfc, 0xf3, 0xcf, 0x3f}; // Masks for setting PP Up count const u8 gPPUpAddMask[] = {0x01, 0x04, 0x10, 0x40}; // Values added to PP Up count -const u8 gStatStageRatios[][2] = +const u8 gStatStageRatios[MAX_STAT_STAGE + 1][2] = { - {10, 40}, // -6 + {10, 40}, // -6, MIN_STAT_STAGE {10, 35}, // -5 {10, 30}, // -4 {10, 25}, // -3 {10, 20}, // -2 {10, 15}, // -1 - {10, 10}, // 0 + {10, 10}, // 0, DEFAULT_STAT_STAGE {15, 10}, // +1 {20, 10}, // +2 {25, 10}, // +3 {30, 10}, // +4 {35, 10}, // +5 - {40, 10}, // +6 + {40, 10}, // +6, MAX_STAT_STAGE }; static const u16 sDeoxysBaseStats[] = @@ -3199,7 +3199,7 @@ s32 CalculateBaseDamage(struct BattlePokemon *attacker, struct BattlePokemon *de { if (gCritMultiplier == 2) { - if (attacker->statStages[STAT_ATK] > 6) + if (attacker->statStages[STAT_ATK] > DEFAULT_STAT_STAGE) APPLY_STAT_MOD(damage, attacker, attack, STAT_ATK) else damage = attack; @@ -3212,7 +3212,7 @@ s32 CalculateBaseDamage(struct BattlePokemon *attacker, struct BattlePokemon *de if (gCritMultiplier == 2) { - if (defender->statStages[STAT_DEF] < 6) + if (defender->statStages[STAT_DEF] < DEFAULT_STAT_STAGE) APPLY_STAT_MOD(damageHelper, defender, defense, STAT_DEF) else damageHelper = defense; @@ -3249,7 +3249,7 @@ s32 CalculateBaseDamage(struct BattlePokemon *attacker, struct BattlePokemon *de { if (gCritMultiplier == 2) { - if (attacker->statStages[STAT_SPATK] > 6) + if (attacker->statStages[STAT_SPATK] > DEFAULT_STAT_STAGE) APPLY_STAT_MOD(damage, attacker, spAttack, STAT_SPATK) else damage = spAttack; @@ -3262,7 +3262,7 @@ s32 CalculateBaseDamage(struct BattlePokemon *attacker, struct BattlePokemon *de if (gCritMultiplier == 2) { - if (defender->statStages[STAT_SPDEF] < 6) + if (defender->statStages[STAT_SPDEF] < DEFAULT_STAT_STAGE) APPLY_STAT_MOD(damageHelper, defender, spDefense, STAT_SPDEF) else damageHelper = spDefense; @@ -4624,8 +4624,8 @@ void CopyPlayerPartyMonToBattleData(u8 battlerId, u8 partyIndex) hpSwitchout = &gBattleStruct->hpOnSwitchout[GetBattlerSide(battlerId)]; *hpSwitchout = gBattleMons[battlerId].hp; - for (i = 0; i < 8; i++) - gBattleMons[battlerId].statStages[i] = 6; + for (i = 0; i < NUM_BATTLE_STATS; i++) + gBattleMons[battlerId].statStages[i] = DEFAULT_STAT_STAGE; gBattleMons[battlerId].status2 = 0; sub_803FA70(battlerId); @@ -4728,49 +4728,49 @@ bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 mov retVal = FALSE; } if ((itemEffect[cmdIndex] & ITEM0_X_ATTACK) - && gBattleMons[gActiveBattler].statStages[STAT_ATK] < 12) + && gBattleMons[gActiveBattler].statStages[STAT_ATK] < MAX_STAT_STAGE) { gBattleMons[gActiveBattler].statStages[STAT_ATK] += itemEffect[cmdIndex] & ITEM0_X_ATTACK; - if (gBattleMons[gActiveBattler].statStages[STAT_ATK] > 12) - gBattleMons[gActiveBattler].statStages[STAT_ATK] = 12; + if (gBattleMons[gActiveBattler].statStages[STAT_ATK] > MAX_STAT_STAGE) + gBattleMons[gActiveBattler].statStages[STAT_ATK] = MAX_STAT_STAGE; retVal = FALSE; } break; // in-battle stat boosting effects case 1: if ((itemEffect[cmdIndex] & ITEM1_X_DEFEND) - && gBattleMons[gActiveBattler].statStages[STAT_DEF] < 12) + && gBattleMons[gActiveBattler].statStages[STAT_DEF] < MAX_STAT_STAGE) { gBattleMons[gActiveBattler].statStages[STAT_DEF] += (itemEffect[cmdIndex] & ITEM1_X_DEFEND) >> 4; - if (gBattleMons[gActiveBattler].statStages[STAT_DEF] > 12) - gBattleMons[gActiveBattler].statStages[STAT_DEF] = 12; + if (gBattleMons[gActiveBattler].statStages[STAT_DEF] > MAX_STAT_STAGE) + gBattleMons[gActiveBattler].statStages[STAT_DEF] = MAX_STAT_STAGE; retVal = FALSE; } if ((itemEffect[cmdIndex] & ITEM1_X_SPEED) - && gBattleMons[gActiveBattler].statStages[STAT_SPEED] < 12) + && gBattleMons[gActiveBattler].statStages[STAT_SPEED] < MAX_STAT_STAGE) { gBattleMons[gActiveBattler].statStages[STAT_SPEED] += itemEffect[cmdIndex] & ITEM1_X_SPEED; - if (gBattleMons[gActiveBattler].statStages[STAT_SPEED] > 12) - gBattleMons[gActiveBattler].statStages[STAT_SPEED] = 12; + if (gBattleMons[gActiveBattler].statStages[STAT_SPEED] > MAX_STAT_STAGE) + gBattleMons[gActiveBattler].statStages[STAT_SPEED] = MAX_STAT_STAGE; retVal = FALSE; } break; // more stat boosting effects case 2: if ((itemEffect[cmdIndex] & ITEM2_X_ACCURACY) - && gBattleMons[gActiveBattler].statStages[STAT_ACC] < 12) + && gBattleMons[gActiveBattler].statStages[STAT_ACC] < MAX_STAT_STAGE) { gBattleMons[gActiveBattler].statStages[STAT_ACC] += (itemEffect[cmdIndex] & ITEM2_X_ACCURACY) >> 4; - if (gBattleMons[gActiveBattler].statStages[STAT_ACC] > 12) - gBattleMons[gActiveBattler].statStages[STAT_ACC] = 12; + if (gBattleMons[gActiveBattler].statStages[STAT_ACC] > MAX_STAT_STAGE) + gBattleMons[gActiveBattler].statStages[STAT_ACC] = MAX_STAT_STAGE; retVal = FALSE; } if ((itemEffect[cmdIndex] & ITEM2_X_SPATK) - && gBattleMons[gActiveBattler].statStages[STAT_SPATK] < 12) + && gBattleMons[gActiveBattler].statStages[STAT_SPATK] < MAX_STAT_STAGE) { gBattleMons[gActiveBattler].statStages[STAT_SPATK] += itemEffect[cmdIndex] & ITEM2_X_SPATK; - if (gBattleMons[gActiveBattler].statStages[STAT_SPATK] > 12) - gBattleMons[gActiveBattler].statStages[STAT_SPATK] = 12; + if (gBattleMons[gActiveBattler].statStages[STAT_SPATK] > MAX_STAT_STAGE) + gBattleMons[gActiveBattler].statStages[STAT_SPATK] = MAX_STAT_STAGE; retVal = FALSE; } break; From 463d79c7c1b945db53b1d4278e3e05a65bbe1ee1 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Fri, 7 Aug 2020 02:00:41 -0400 Subject: [PATCH 046/101] Start documenting naming screen --- .../naming_screen/{0.pal => keyboard.pal} | 0 .../{keyboard_button.png => page_button.png} | Bin graphics/naming_screen/{1.pal => unused.pal} | 0 include/global.h | 1 + include/graphics.h | 6 +- include/naming_screen.h | 81 +- include/text_window.h | 2 +- src/battle_records.c | 2 +- src/dodrio_berry_picking.c | 2 +- src/egg_hatch.c | 2 +- src/frontier_pass.c | 4 +- src/graphics.c | 7 +- src/hall_of_fame.c | 2 +- src/main_menu.c | 2 +- src/mevent_801BAAC.c | 4 +- src/mystery_gift.c | 2 +- src/naming_screen.c | 1442 +++++++++-------- src/pokemon_storage_system.c | 4 +- src/text_window.c | 6 +- src/tv.c | 4 +- 20 files changed, 832 insertions(+), 741 deletions(-) rename graphics/naming_screen/{0.pal => keyboard.pal} (100%) rename graphics/naming_screen/{keyboard_button.png => page_button.png} (100%) rename graphics/naming_screen/{1.pal => unused.pal} (100%) diff --git a/graphics/naming_screen/0.pal b/graphics/naming_screen/keyboard.pal similarity index 100% rename from graphics/naming_screen/0.pal rename to graphics/naming_screen/keyboard.pal diff --git a/graphics/naming_screen/keyboard_button.png b/graphics/naming_screen/page_button.png similarity index 100% rename from graphics/naming_screen/keyboard_button.png rename to graphics/naming_screen/page_button.png diff --git a/graphics/naming_screen/1.pal b/graphics/naming_screen/unused.pal similarity index 100% rename from graphics/naming_screen/1.pal rename to graphics/naming_screen/unused.pal diff --git a/include/global.h b/include/global.h index 9612a25f02..478c9f69a7 100644 --- a/include/global.h +++ b/include/global.h @@ -102,6 +102,7 @@ #define TEST_BUTTON(field, button) ({(field) & (button);}) #define JOY_NEW(button) TEST_BUTTON(gMain.newKeys, button) #define JOY_HELD(button) TEST_BUTTON(gMain.heldKeys, button) +#define JOY_REPEAT(button) TEST_BUTTON(gMain.newAndRepeatedKeys, button) #define S16TOPOSFLOAT(val) \ ({ \ diff --git a/include/graphics.h b/include/graphics.h index 106798892f..7675df2673 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -4074,11 +4074,11 @@ extern const u8 gUnknown_08DD4620[]; extern const u8 gUnknown_08DD46E0[]; extern const u8 gUnknown_08DD47A0[]; extern const u8 gNamingScreenRWindow_Gfx[]; -extern const u8 gNamingScreenKeyboardButton_Gfx[]; +extern const u8 gNamingScreenPageButton_Gfx[]; extern const u8 gNamingScreenROptions_Gfx[]; extern const u8 gNamingScreenCursor_Gfx[]; -extern const u8 gNamingScreenRightPointingTriangleTiles[]; -extern const u8 gNamingScreenUnderscoreTiles[]; +extern const u8 gNamingScreenInputArrow_Gfx[]; +extern const u8 gNamingScreenUnderscore_Gfx[]; extern const u32 gUnknown_08D9BA44[]; diff --git a/include/naming_screen.h b/include/naming_screen.h index 7d32abcd31..93527640e5 100644 --- a/include/naming_screen.h +++ b/include/naming_screen.h @@ -3,91 +3,14 @@ #include "main.h" -#define KBEVENT_NONE 0 -#define KBEVENT_PRESSED_A 5 -#define KBEVENT_PRESSED_B 6 -#define KBEVENT_PRESSED_SELECT 8 -#define KBEVENT_PRESSED_START 9 - -#define KBROW_COUNT 4 - -enum -{ - KBPAGE_LETTERS_LOWER, - KBPAGE_LETTERS_UPPER, - KBPAGE_SYMBOLS, - KBPAGE_COUNT, -}; - -enum -{ +enum { NAMING_SCREEN_PLAYER, NAMING_SCREEN_BOX, NAMING_SCREEN_CAUGHT_MON, - NAMING_SCREEN_3, + NAMING_SCREEN_NICKNAME, NAMING_SCREEN_WALDA, }; -struct NamingScreenTemplate -{ - u8 copyExistingString; - u8 maxChars; - u8 iconFunction; - u8 addGenderIcon; - u8 initialPage; - u8 unused; - const u8 *title; -}; - -struct NamingScreenData { - /*0x0*/ u8 tilemapBuffer1[0x800]; - /*0x800*/ u8 tilemapBuffer2[0x800]; - /*0x800*/ u8 tilemapBuffer3[0x800]; - /*0x1800*/ u8 textBuffer[0x10]; - /*0x1810*/ u8 tileBuffer[0x600]; - /*0x1E10*/ u8 state; - /*0x1E11*/ u8 windows[5]; - /*0x1E16*/ u16 inputCharBaseXPos; - /*0x1E18*/ u16 bg1vOffset; - /*0x1E1A*/ u16 bg2vOffset; - /*0x1E1C*/ u16 bg1Priority; - /*0x1E1E*/ u16 bg2Priority; - /*0x1E20*/ u8 bgToReveal; - /*0x1E21*/ u8 bgToHide; - /*0x1E22*/ u8 currentPage; - /*0x1E23*/ u8 cursorSpriteId; - /*0x1E24*/ u8 selectBtnFrameSpriteId; - /*0x1E25*/ u8 keyRepeatStartDelayCopy; - /*0x1E28*/ const struct NamingScreenTemplate *template; - /*0x1E2C*/ u8 templateNum; - /*0x1E30*/ u8 *destBuffer; - /*0x1E34*/ u16 monSpecies; - /*0x1E36*/ u16 monGender; - /*0x1E38*/ u32 monPersonality; - /*0x1E3C*/ MainCallback returnCallback; -}; - - -enum -{ - MAIN_STATE_BEGIN_FADE_IN, - MAIN_STATE_WAIT_FADE_IN, - MAIN_STATE_HANDLE_INPUT, - MAIN_STATE_MOVE_TO_OK_BUTTON, - MAIN_STATE_START_PAGE_SWAP, - MAIN_STATE_WAIT_PAGE_SWAP, - MAIN_STATE_6, - MAIN_STATE_UPDATE_SENT_TO_PC_MESSAGE, - MAIN_STATE_BEGIN_FADE_OUT, -}; - -enum -{ - INPUT_STATE_DISABLED, - INPUT_STATE_ENABLED, - INPUT_STATE_2, -}; - void DoNamingScreen(u8 templateNum, u8 *destBuffer, u16 monSpecies, u16 monGender, u32 monPersonality, MainCallback returnCallback); #endif // GUARD_NAMING_SCREEN_H diff --git a/include/text_window.h b/include/text_window.h index 501597aa23..7bdcacd17c 100644 --- a/include/text_window.h +++ b/include/text_window.h @@ -20,7 +20,7 @@ void LoadUserWindowBorderGfx_(u8 windowId, u16 destOffset, u8 palOffset); void DrawTextBorderOuter(u8 windowId, u16 tileNum, u8 palNum); void DrawTextBorderInner(u8 windowId, u16 tileNum, u8 palNum); void rbox_fill_rectangle(u8 windowId); -const u16 *stdpal_get(u8 id); +const u16 *GetTextWindowPalette(u8 id); const u16 *GetOverworldTextboxPalettePtr(void); void sub_8098C6C(u8 bg, u16 destOffset, u8 palOffset); diff --git a/src/battle_records.c b/src/battle_records.c index ccd16e2193..c6363a6eda 100644 --- a/src/battle_records.c +++ b/src/battle_records.c @@ -494,7 +494,7 @@ static void CB2_ShowTrainerHillRecords(void) break; case 3: LoadTrainerHillRecordsWindowGfx(3); - LoadPalette(stdpal_get(0), 0xF0, 0x20); + LoadPalette(GetTextWindowPalette(0), 0xF0, 0x20); gMain.state++; break; case 4: diff --git a/src/dodrio_berry_picking.c b/src/dodrio_berry_picking.c index 5f249abad2..f3963ca278 100644 --- a/src/dodrio_berry_picking.c +++ b/src/dodrio_berry_picking.c @@ -4657,7 +4657,7 @@ static bool32 sub_802A8E8(void) return FALSE; break; case 5: - LoadPalette(stdpal_get(3), 0xD0, 0x20); + LoadPalette(GetTextWindowPalette(3), 0xD0, 0x20); break; default: gUnknown_02022CF8->unk3018 = 0; diff --git a/src/egg_hatch.c b/src/egg_hatch.c index db25dbbb85..3ccc7ebf84 100644 --- a/src/egg_hatch.c +++ b/src/egg_hatch.c @@ -672,7 +672,7 @@ static void CB2_EggHatch_1(void) species = GetMonData(&gPlayerParty[sEggHatchData->eggPartyID], MON_DATA_SPECIES); gender = GetMonGender(&gPlayerParty[sEggHatchData->eggPartyID]); personality = GetMonData(&gPlayerParty[sEggHatchData->eggPartyID], MON_DATA_PERSONALITY, 0); - DoNamingScreen(3, gStringVar3, species, gender, personality, EggHatchSetMonNickname); + DoNamingScreen(NAMING_SCREEN_NICKNAME, gStringVar3, species, gender, personality, EggHatchSetMonNickname); break; case 1: case -1: diff --git a/src/frontier_pass.c b/src/frontier_pass.c index 757205656b..024a954d18 100644 --- a/src/frontier_pass.c +++ b/src/frontier_pass.c @@ -735,7 +735,7 @@ static bool32 InitFrontierPass(void) case 8: LoadPalette(gUnknown_08DE07C8[0], 0, 0x1A0); LoadPalette(gUnknown_08DE07C8[1 + sPassData->trainerStars], 0x10, 0x20); - LoadPalette(stdpal_get(0), 0xF0, 0x20); + LoadPalette(GetTextWindowPalette(0), 0xF0, 0x20); sub_80C629C(); sub_80C6104(sPassData->cursorArea, sPassData->previousCursorArea); if (sPassData->unkE == 1 || sPassData->unkE == 2) @@ -1378,7 +1378,7 @@ static bool32 InitFrontierMap(void) if (FreeTempTileDataBuffersIfPossible()) return FALSE; LoadPalette(gUnknown_08DE07C8[0], 0, 0x1A0); - LoadPalette(stdpal_get(0), 0xF0, 0x20); + LoadPalette(GetTextWindowPalette(0), 0xF0, 0x20); CopyToBgTilemapBuffer(2, gUnknown_08570E00, 0, 0); CopyBgTilemapBufferToVram(2); break; diff --git a/src/graphics.c b/src/graphics.c index b774c5ad21..b857b8d70a 100644 --- a/src/graphics.c +++ b/src/graphics.c @@ -1435,10 +1435,9 @@ const u32 gNamingScreenMenu_Gfx[] = INCBIN_U32("graphics/naming_screen/menu.4bpp const u8 gNamingScreenRWindow_Gfx[] = INCBIN_U8("graphics/naming_screen/rwindow.4bpp"); const u8 gNamingScreenROptions_Gfx[] = INCBIN_U8("graphics/naming_screen/roptions.4bpp"); const u8 gNamingScreenCursor_Gfx[] = INCBIN_U8("graphics/naming_screen/cursor.4bpp"); -const u8 gNamingScreenKeyboardButton_Gfx[] = INCBIN_U8("graphics/naming_screen/keyboard_button.4bpp"); - -const u8 gNamingScreenRightPointingTriangleTiles[] = INCBIN_U8("graphics/naming_screen/right_pointing_triangle.4bpp"); -const u8 gNamingScreenUnderscoreTiles[] = INCBIN_U8("graphics/naming_screen/underscore.4bpp"); +const u8 gNamingScreenPageButton_Gfx[] = INCBIN_U8("graphics/naming_screen/page_button.4bpp"); +const u8 gNamingScreenInputArrow_Gfx[] = INCBIN_U8("graphics/naming_screen/right_pointing_triangle.4bpp"); +const u8 gNamingScreenUnderscore_Gfx[] = INCBIN_U8("graphics/naming_screen/underscore.4bpp"); const u32 gUnknown_08DD4544[] = INCBIN_U32("graphics/unknown/unknown_DD4544.bin.lz"); const u32 gUnknown_08DD4620[] = INCBIN_U32("graphics/unknown/unknown_DD4620.bin.lz"); diff --git a/src/hall_of_fame.c b/src/hall_of_fame.c index f4c971b0b8..19217ae85f 100644 --- a/src/hall_of_fame.c +++ b/src/hall_of_fame.c @@ -702,7 +702,7 @@ static void Task_Hof_DisplayPlayer(u8 taskId) gTasks[taskId].tPlayerSpriteID = CreateTrainerPicSprite(PlayerGenderToFrontTrainerPicId_Debug(gSaveBlock2Ptr->playerGender, TRUE), 1, 120, 72, 6, 0xFFFF); AddWindow(&sHof_WindowTemplate); LoadWindowGfx(1, gSaveBlock2Ptr->optionsWindowFrameType, 0x21D, 0xD0); - LoadPalette(stdpal_get(1), 0xE0, 0x20); + LoadPalette(GetTextWindowPalette(1), 0xE0, 0x20); gTasks[taskId].tFrameCount = 120; gTasks[taskId].func = Task_Hof_WaitAndPrintPlayerInfo; } diff --git a/src/main_menu.c b/src/main_menu.c index 781d7f85ca..a4de99207b 100644 --- a/src/main_menu.c +++ b/src/main_menu.c @@ -1609,7 +1609,7 @@ static void Task_NewGameBirchSpeech_StartNamingScreen(u8 taskId) FreeAndDestroyMonPicSprite(gTasks[taskId].tLotadSpriteId); NewGameBirchSpeech_SetDefaultPlayerName(Random() % 20); DestroyTask(taskId); - DoNamingScreen(0, gSaveBlock2Ptr->playerName, gSaveBlock2Ptr->playerGender, 0, 0, CB2_NewGameBirchSpeech_ReturnFromNamingScreen); + DoNamingScreen(NAMING_SCREEN_PLAYER, gSaveBlock2Ptr->playerName, gSaveBlock2Ptr->playerGender, 0, 0, CB2_NewGameBirchSpeech_ReturnFromNamingScreen); } } diff --git a/src/mevent_801BAAC.c b/src/mevent_801BAAC.c index 1bfac23d14..847449c450 100644 --- a/src/mevent_801BAAC.c +++ b/src/mevent_801BAAC.c @@ -208,7 +208,7 @@ s32 FadeToWonderCardMenu(void) case 3: if (FreeTempTileDataBuffersIfPossible()) return 0; - LoadPalette(stdpal_get(1), 0x20, 0x20); + LoadPalette(GetTextWindowPalette(1), 0x20, 0x20); gPaletteFade.bufferTransferDisabled = TRUE; LoadPalette(sWonderCardData->unk_0170->pal, 0x10, 0x20); LZ77UnCompWram(sWonderCardData->unk_0170->map, sWonderCardData->buffer_045C); @@ -607,7 +607,7 @@ s32 FadeToWonderNewsMenu(void) case 3: if (FreeTempTileDataBuffersIfPossible()) return 0; - LoadPalette(stdpal_get(1), 0x20, 0x20); + LoadPalette(GetTextWindowPalette(1), 0x20, 0x20); gPaletteFade.bufferTransferDisabled = TRUE; LoadPalette(sWonderNewsData->unk_01BC->pal, 0x10, 0x20); LZ77UnCompWram(sWonderNewsData->unk_01BC->map, sWonderNewsData->buffer_03A4); diff --git a/src/mystery_gift.c b/src/mystery_gift.c index 9672fe0ec6..e6b311f0ae 100644 --- a/src/mystery_gift.c +++ b/src/mystery_gift.c @@ -410,7 +410,7 @@ bool32 HandleMysteryGiftOrEReaderSetup(s32 mg_or_ereader) break; case 1: LoadPalette(gUnkTextboxBorderPal, 0, 0x20); - LoadPalette(stdpal_get(2), 0xd0, 0x20); + LoadPalette(GetTextWindowPalette(2), 0xd0, 0x20); Menu_LoadStdPalAt(0xC0); LoadUserWindowBorderGfx(0, 0xA, 0xE0); LoadUserWindowBorderGfx_(0, 0x1, 0xF0); diff --git a/src/naming_screen.c b/src/naming_screen.c index ab38db7453..da5a7f1211 100644 --- a/src/naming_screen.c +++ b/src/naming_screen.c @@ -28,7 +28,142 @@ #include "constants/event_objects.h" #include "constants/rgb.h" -EWRAM_DATA static struct NamingScreenData *gNamingScreenData = NULL; +enum { + INPUT_NONE, + INPUT_DPAD_UP, + INPUT_DPAD_DOWN, + INPUT_DPAD_LEFT, + INPUT_DPAD_RIGHT, + INPUT_A_BUTTON, + INPUT_B_BUTTON, + INPUT_LR_BUTTON, + INPUT_SELECT, + INPUT_START, +}; + +#define KBROW_COUNT 4 +#define KBCOL_COUNT 8 + +enum { + GFXTAG_BACK_BUTTON, + GFXTAG_OK_BUTTON, + GFXTAG_PAGE_SWITCH_BG, + GFXTAG_PAGE_SWITCH_BUTTON, + GFXTAG_PAGE_SWITCH_UPPER, + GFXTAG_PAGE_SWITCH_LOWER, + GFXTAG_PAGE_SWITCH_OTHERS, + GFXTAG_CURSOR, + GFXTAG_CURSOR_SQUISHED, + GFXTAG_CURSOR_FILLED, + GFXTAG_INPUT_ARROW, + GFXTAG_UNDERSCORE, +}; + +enum { + PALTAG_PC_ICON, + PALTAG_1, + PALTAG_2, + PALTAG_3, + PALTAG_PAGE_SWITCH, + PALTAG_CURSOR, + PALTAG_BACK_BUTTON, + PALTAG_OK_BUTTON, +}; + +enum { + WIN_KB_PAGE_1, // Which of these two windows is in front is cycled as the player swaps + WIN_KB_PAGE_2, // Initiall WIN_KB_PAGE_1 is in front, with WIN_KB_PAGE_2 on deck + WIN_TEXT_ENTRY, + WIN_TEXT_ENTRY_BOX, + WIN_BANNER, + WIN_COUNT, +}; + +enum +{ + KBPAGE_LETTERS_LOWER, + KBPAGE_LETTERS_UPPER, + KBPAGE_SYMBOLS, + KBPAGE_COUNT, +}; + +enum +{ + KEY_ROLE_CHAR, + KEY_ROLE_PAGE, + KEY_ROLE_BACKSPACE, + KEY_ROLE_OK, +}; + +enum +{ + BUTTON_PAGE, + BUTTON_BACK, + BUTTON_OK, + BUTTON_COUNT, +}; + +enum +{ + STATE_BEGIN_FADE_IN, + STATE_WAIT_FADE_IN, + STATE_HANDLE_INPUT, + STATE_MOVE_TO_OK_BUTTON, + STATE_START_PAGE_SWAP, + STATE_WAIT_PAGE_SWAP, + STATE_6, + STATE_UPDATE_SENT_TO_PC_MESSAGE, + STATE_BEGIN_FADE_OUT, +}; + +enum +{ + INPUT_STATE_DISABLED, + INPUT_STATE_ENABLED, + INPUT_STATE_2, +}; + +struct NamingScreenTemplate +{ + u8 copyExistingString; + u8 maxChars; + u8 iconFunction; + u8 addGenderIcon; + u8 initialPage; + u8 unused; + const u8 *title; +}; + +struct NamingScreenData +{ + u8 tilemapBuffer1[0x800]; + u8 tilemapBuffer2[0x800]; + u8 tilemapBuffer3[0x800]; + u8 textBuffer[16]; + u8 tileBuffer[0x600]; + u8 state; + u8 windows[WIN_COUNT]; + u16 inputCharBaseXPos; + u16 bg1vOffset; + u16 bg2vOffset; + u16 bg1Priority; + u16 bg2Priority; + u8 bgToReveal; + u8 bgToHide; + u8 currentPage; + u8 cursorSpriteId; + u8 selectBtnFrameSpriteId; + u8 keyRepeatStartDelayCopy; + const struct NamingScreenTemplate *template; + u8 templateNum; + u8 *destBuffer; + u16 monSpecies; + u16 monGender; + u32 monPersonality; + MainCallback returnCallback; +}; + +EWRAM_DATA static struct NamingScreenData *sNamingScreen = NULL; extern u16 gKeyRepeatStartDelay; // extern text @@ -40,10 +175,10 @@ extern const u8 gText_TellHimTheWords[]; // start of .rodata -static const u8 gSpriteImage_858BBF8[] = INCBIN_U8("graphics/naming_screen/pc_icon/0.4bpp"); -static const u8 gSpriteImage_858BCB8[] = INCBIN_U8("graphics/naming_screen/pc_icon/1.4bpp"); -static const u16 gUnknown_0858BD78[] = INCBIN_U16("graphics/naming_screen/0.gbapal"); -static const u16 gUnknown_0858BD98[] = INCBIN_U16("graphics/naming_screen/1.gbapal"); +static const u8 sPCIconOn_Gfx[] = INCBIN_U8("graphics/naming_screen/pc_icon/0.4bpp"); +static const u8 sPCIconOff_Gfx[] = INCBIN_U8("graphics/naming_screen/pc_icon/1.4bpp"); +static const u16 sKeyboard_Pal[] = INCBIN_U16("graphics/naming_screen/keyboard.gbapal"); +static const u16 sUnused_Pal[] = INCBIN_U16("graphics/naming_screen/unused.gbapal"); static const u8 *const sTransferredToPCMessages[] = { @@ -55,7 +190,7 @@ static const u8 *const sTransferredToPCMessages[] = static const u8 sText_AlphabetUpperLower[] = _("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz!"); -static const struct BgTemplate gUnknown_0858BE00[] = +static const struct BgTemplate sBgTemplates[] = { { .bg = 0, @@ -83,9 +218,9 @@ static const struct BgTemplate gUnknown_0858BE00[] = } }; -static const struct WindowTemplate gUnknown_0858BE10[] = +static const struct WindowTemplate sWindowTemplates[WIN_COUNT + 1] = { - { + [WIN_KB_PAGE_1] = { .bg = 1, .tilemapLeft = 3, .tilemapTop = 10, @@ -94,7 +229,7 @@ static const struct WindowTemplate gUnknown_0858BE10[] = .paletteNum = 10, .baseBlock = 0x030 }, - { + [WIN_KB_PAGE_2] = { .bg = 2, .tilemapLeft = 3, .tilemapTop = 10, @@ -103,7 +238,7 @@ static const struct WindowTemplate gUnknown_0858BE10[] = .paletteNum = 10, .baseBlock = 0x0C8 }, - { + [WIN_TEXT_ENTRY] = { .bg = 3, .tilemapLeft = 8, .tilemapTop = 6, @@ -112,7 +247,7 @@ static const struct WindowTemplate gUnknown_0858BE10[] = .paletteNum = 10, .baseBlock = 0x030 }, - { + [WIN_TEXT_ENTRY_BOX] = { .bg = 3, .tilemapLeft = 8, .tilemapTop = 4, @@ -121,7 +256,7 @@ static const struct WindowTemplate gUnknown_0858BE10[] = .paletteNum = 10, .baseBlock = 0x052 }, - { + [WIN_BANNER] = { .bg = 0, .tilemapLeft = 0, .tilemapTop = 0, @@ -133,124 +268,146 @@ static const struct WindowTemplate gUnknown_0858BE10[] = DUMMY_WIN_TEMPLATE }; -static const u8 gUnknown_0858BE40[] = __("abcdef .ghijkl ,mnopqrs tuvwxyz ABCDEF .GHIJKL ,MNOPQRS TUVWXYZ 01234 56789 !?♂♀/- …“”‘' "); +// This handles what characters get inserted when a key is pressed +// The keys shown on the keyboard are handled separately by sNamingScreenKeyboardText +static const u8 sKeyboardChars[KBPAGE_COUNT * KBROW_COUNT * KBCOL_COUNT] = __( + "abcdef ." + "ghijkl ," + "mnopqrs " + "tuvwxyz " + "ABCDEF ." + "GHIJKL ," + "MNOPQRS " + "TUVWXYZ " + "01234 " + "56789 " + "!?♂♀/- " + "…“”‘' "); -static const u8 gUnknown_0858BEA0[] = { 8, 8, 6 }; -static const u8 gUnknown_0858BEA3[] = { 0, 12, 24, 56, 68, 80, 92, 123, 0, 12, 24, 56, 68, 80, 92, 123, 0, 22, 44, 66, 88, 110, 0, 0 }; +static const u8 sPageColumnCounts[KBPAGE_COUNT] = { + [KBPAGE_LETTERS_LOWER] = KBCOL_COUNT, + [KBPAGE_LETTERS_UPPER] = KBCOL_COUNT, + [KBPAGE_SYMBOLS] = 6 +}; +static const u8 sPageColumnXPos[KBPAGE_COUNT * KBCOL_COUNT] = { + 0, 12, 24, 56, 68, 80, 92, 123, // KBPAGE_LETTERS_LOWER + 0, 12, 24, 56, 68, 80, 92, 123, // KBPAGE_LETTERS_UPPER + 0, 22, 44, 66, 88, 110 // KBPAGE_SYMBOLS +}; // forward declarations static const struct NamingScreenTemplate *const sNamingScreenTemplates[]; -static const struct SubspriteTable gUnknown_0858C050[]; -static const struct SubspriteTable gUnknown_0858C058[]; -static const struct SubspriteTable gUnknown_0858C070[]; -static const struct SubspriteTable gUnknown_0858C078[]; -static const struct SpriteTemplate gUnknown_0858C0C0; -static const struct SpriteTemplate gUnknown_0858C0D8; -static const struct SpriteTemplate gUnknown_0858C0F0; -static const struct SpriteTemplate gUnknown_0858C108; -static const struct SpriteTemplate gUnknown_0858C120; -static const struct SpriteTemplate gUnknown_0858C138; +static const struct SubspriteTable sSubspriteTable_PageSwitchBg[]; +static const struct SubspriteTable sSubspriteTable_PageSwitchText[]; +static const struct SubspriteTable sSubspriteTable_Button[]; +static const struct SubspriteTable sSubspriteTable_PCIcon[]; +static const struct SpriteTemplate sSpriteTemplate_PageSwitchBg; +static const struct SpriteTemplate sSpriteTemplate_PageSwitchButton; +static const struct SpriteTemplate sSpriteTemplate_PageSwitchText; +static const struct SpriteTemplate sSpriteTemplate_BackButton; +static const struct SpriteTemplate sSpriteTemplate_OkButton; +static const struct SpriteTemplate sSpriteTemplate_Cursor; static const struct SpriteTemplate sSpriteTemplate_InputArrow; static const struct SpriteTemplate sSpriteTemplate_Underscore; -static const struct SpriteTemplate gUnknown_0858C180; +static const struct SpriteTemplate sSpriteTemplate_PCIcon; static const u8* const sNamingScreenKeyboardText[KBPAGE_COUNT][KBROW_COUNT]; -static const struct SpriteSheet gUnknown_0858C1C8[]; -static const struct SpritePalette gUnknown_0858C230[]; +static const struct SpriteSheet sSpriteSheets[]; +static const struct SpritePalette sSpritePalettes[]; -static void C2_NamingScreen(void); +static void CB2_LoadNamingScreen(void); static void NamingScreen_Init(void); static void NamingScreen_InitBGs(void); -static void sub_80E3194(void); -static void sub_80E31B0(u8 taskId); -static bool8 MainState_BeginFadeIn(void); +static void CreateNamingScreenTask(void); +static void Task_NamingScreen(u8 taskId); +static bool8 MainState_FadeIn(void); static bool8 MainState_WaitFadeIn(void); static bool8 MainState_HandleInput(void); static bool8 MainState_MoveToOKButton(void); static bool8 MainState_6(void); -static bool8 MainState_BeginFadeInOut(void); -static bool8 MainState_WaitFadeOutAndExit(void); +static bool8 MainState_FadeOut(void); +static bool8 MainState_Exit(void); static void DisplaySentToPCMessage(void); -static bool8 sub_80E3604(void); +static bool8 MainState_7(void); static bool8 MainState_StartPageSwap(void); static bool8 MainState_WaitPageSwap(void); static void StartPageSwapAnim(void); static void Task_HandlePageSwapAnim(u8); static bool8 IsPageSwapAnimNotInProgress(void); -static void sub_80E3948(u8, u8, u8); -static void Task_80E39BC(u8); -static u16 sub_80E3A74(u8); -static void sub_80E3AE8(u8); -static void sub_80E3B10(struct Task *, u8, u8); -static void sub_80E3CC8(void); -static void CursorInit(void); +static void TryStartButtonFlash(u8, bool8, bool8); +static void Task_UpdateButtonFlash(u8); +static u16 GetButtonPalOffset(u8); +static void RestoreButtonColor(u8); +static void StartButtonFlash(struct Task *, u8, bool8); +static void CreateSprites(void); +static void CreateCursorSprite(void); static void SetCursorPos(s16, s16); static void GetCursorPos(s16 *x, s16 *y); static void MoveCursorToOKButton(void); -static void sub_80E3E3C(u8); -static void sub_80E3E94(u8); +static void SetCursorInvisibility(u8); +static void SetCursorFlashing(bool8); static u8 IsCursorAnimFinished(void); static u8 GetCurrentPageColumnCount(void); static void CreatePageSwitcherSprites(void); static void sub_80E4050(void); static void sub_80E41B8(u8, struct Sprite *, struct Sprite *); static void CreateBackOkSprites(void); -static void CreateUnderscoreSprites(void); +static void CreateTextEntrySprites(void); static void CreateInputTargetIcon(void); static u8 HandleKeyboardEvent(void); -static u8 sub_80E45E0(void); +static u8 SwitchKeyboardPage(void); static u8 GetInputEvent(void); static void SetInputState(u8); -static void sub_80E4964(void); -static u8 GetTextCaretPosition(void); +static void DrawTextEntryBox(void); +static u8 GetTextEntryPosition(void); static void DeleteTextCharacter(void); -static bool8 sub_80E4B54(void); -static void AddTextCharacter(u8); -static void sub_80E4BE4(void); -static void choose_name_or_words_screen_load_bg_tile_patterns(void); -static void sub_80E4CB8(void); -static void choose_name_or_words_screen_apply_bg_pals(void); -static void sub_80E4CF8(u8, const void *); -static void nullsub_10(u8, u8); -static void sub_80E4D10(void); -static void sub_80E4DE4(u8, u8); -static void sub_80E4E5C(void); -static void sub_80E4EF0(void); -static void sub_80E4F58(void); -static void NamingScreen_TurnOffScreen(void); -static void NamingScreen_InitDisplayMode(void); +static bool8 AddTextCharacter(void); +static void BufferCharacter(u8); +static void SaveInputText(void); +static void LoadGfx(void); +static void CreateHelperTasks(void); +static void LoadPalettes(void); +static void DrawBgTilemap(u8, const void *); +static void NamingScreen_Dummy(u8, u8); +static void DrawTextEntry(void); +static void PrintKeyboardKeys(u8, u8); +static void DrawKeyboardPageOnDeck(void); +static void PrintControls(void); +static void CB2_NamingScreen(void); +static void NamingScreen_ResetVHBlank(void); +static void NamingScreen_SetVBlank(void); static void VBlankCB_NamingScreen(void); -static void sub_80E501C(void); -static bool8 IsLetter(u8); +static void NamingScreen_ShowBgs(void); +static bool8 IsWideLetter(u8); void DoNamingScreen(u8 templateNum, u8 *destBuffer, u16 monSpecies, u16 monGender, u32 monPersonality, MainCallback returnCallback) { - gNamingScreenData = Alloc(sizeof(struct NamingScreenData)); - if (!gNamingScreenData) + sNamingScreen = Alloc(sizeof(struct NamingScreenData)); + if (!sNamingScreen) { SetMainCallback2(returnCallback); } else { - gNamingScreenData->templateNum = templateNum; - gNamingScreenData->monSpecies = monSpecies; - gNamingScreenData->monGender = monGender; - gNamingScreenData->monPersonality = monPersonality; - gNamingScreenData->destBuffer = destBuffer; - gNamingScreenData->returnCallback = returnCallback; + sNamingScreen->templateNum = templateNum; + sNamingScreen->monSpecies = monSpecies; + sNamingScreen->monGender = monGender; + sNamingScreen->monPersonality = monPersonality; + sNamingScreen->destBuffer = destBuffer; + sNamingScreen->returnCallback = returnCallback; - if (templateNum == 0) + if (templateNum == NAMING_SCREEN_PLAYER) StartTimer1(); - SetMainCallback2(C2_NamingScreen); + SetMainCallback2(CB2_LoadNamingScreen); } } -static void C2_NamingScreen(void) +static void CB2_LoadNamingScreen(void) { switch (gMain.state) { case 0: - NamingScreen_TurnOffScreen(); + NamingScreen_ResetVHBlank(); NamingScreen_Init(); gMain.state++; break; @@ -272,44 +429,44 @@ static void C2_NamingScreen(void) gMain.state++; break; case 5: - choose_name_or_words_screen_apply_bg_pals(); + LoadPalettes(); gMain.state++; break; case 6: - choose_name_or_words_screen_load_bg_tile_patterns(); + LoadGfx(); gMain.state++; break; case 7: - sub_80E3CC8(); + CreateSprites(); UpdatePaletteFade(); - sub_80E501C(); + NamingScreen_ShowBgs(); gMain.state++; break; default: - sub_80E4CB8(); - sub_80E3194(); + CreateHelperTasks(); + CreateNamingScreenTask(); break; } } static void NamingScreen_Init(void) { - gNamingScreenData->state = 0; - gNamingScreenData->bg1vOffset = 0; - gNamingScreenData->bg2vOffset = 0; - gNamingScreenData->bg1Priority = BGCNT_PRIORITY(1); - gNamingScreenData->bg2Priority = BGCNT_PRIORITY(2); - gNamingScreenData->bgToReveal = 0; - gNamingScreenData->bgToHide = 1; - gNamingScreenData->template = sNamingScreenTemplates[gNamingScreenData->templateNum]; - gNamingScreenData->currentPage = gNamingScreenData->template->initialPage; - gNamingScreenData->inputCharBaseXPos = (240 - gNamingScreenData->template->maxChars * 8) / 2 + 6; - if (gNamingScreenData->templateNum == 4) - gNamingScreenData->inputCharBaseXPos += 11; - gNamingScreenData->keyRepeatStartDelayCopy = gKeyRepeatStartDelay; - memset(gNamingScreenData->textBuffer, 0xFF, sizeof(gNamingScreenData->textBuffer)); - if (gNamingScreenData->template->copyExistingString != 0) - StringCopy(gNamingScreenData->textBuffer, gNamingScreenData->destBuffer); + sNamingScreen->state = 0; + sNamingScreen->bg1vOffset = 0; + sNamingScreen->bg2vOffset = 0; + sNamingScreen->bg1Priority = BGCNT_PRIORITY(1); + sNamingScreen->bg2Priority = BGCNT_PRIORITY(2); + sNamingScreen->bgToReveal = 0; + sNamingScreen->bgToHide = 1; + sNamingScreen->template = sNamingScreenTemplates[sNamingScreen->templateNum]; + sNamingScreen->currentPage = sNamingScreen->template->initialPage; + sNamingScreen->inputCharBaseXPos = (240 - sNamingScreen->template->maxChars * 8) / 2 + 6; + if (sNamingScreen->templateNum == NAMING_SCREEN_WALDA) + sNamingScreen->inputCharBaseXPos += 11; + sNamingScreen->keyRepeatStartDelayCopy = gKeyRepeatStartDelay; + memset(sNamingScreen->textBuffer, 0xFF, sizeof(sNamingScreen->textBuffer)); + if (sNamingScreen->template->copyExistingString) + StringCopy(sNamingScreen->textBuffer, sNamingScreen->destBuffer); gKeyRepeatStartDelay = 16; } @@ -321,7 +478,7 @@ static void sub_80E2FA4(void) if (gSprites[i].inUse) gSprites[i].invisible = FALSE; } - sub_80E3E3C(0); + SetCursorInvisibility(FALSE); } static void NamingScreen_InitBGs(void) @@ -334,7 +491,7 @@ static void NamingScreen_InitBGs(void) SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0); ResetBgsAndClearDma3BusyFlags(0); - InitBgsFromTemplates(0, gUnknown_0858BE00, 4); + InitBgsFromTemplates(0, sBgTemplates, ARRAY_COUNT(sBgTemplates)); ChangeBgX(0, 0, 0); ChangeBgY(0, 0, 0); @@ -348,36 +505,36 @@ static void NamingScreen_InitBGs(void) InitStandardTextBoxWindows(); InitTextBoxGfxAndPrinters(); - for (i = 0; i < 5; i++) - gNamingScreenData->windows[i] = AddWindow(&gUnknown_0858BE10[i]); + for (i = 0; i < WIN_COUNT; i++) + sNamingScreen->windows[i] = AddWindow(&sWindowTemplates[i]); SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_1D_MAP | DISPCNT_OBJ_ON); SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_BG2); - SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0xC, 0x8)); + SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(12, 8)); - SetBgTilemapBuffer(1, gNamingScreenData->tilemapBuffer1); - SetBgTilemapBuffer(2, gNamingScreenData->tilemapBuffer2); - SetBgTilemapBuffer(3, gNamingScreenData->tilemapBuffer3); + SetBgTilemapBuffer(1, sNamingScreen->tilemapBuffer1); + SetBgTilemapBuffer(2, sNamingScreen->tilemapBuffer2); + SetBgTilemapBuffer(3, sNamingScreen->tilemapBuffer3); FillBgTilemapBufferRect_Palette0(1, 0, 0, 0, 0x20, 0x20); FillBgTilemapBufferRect_Palette0(2, 0, 0, 0, 0x20, 0x20); FillBgTilemapBufferRect_Palette0(3, 0, 0, 0, 0x20, 0x20); } -static void sub_80E3194(void) +static void CreateNamingScreenTask(void) { - CreateTask(sub_80E31B0, 2); - SetMainCallback2(sub_80E4F58); + CreateTask(Task_NamingScreen, 2); + SetMainCallback2(CB2_NamingScreen); } -static void sub_80E31B0(u8 taskId) +static void Task_NamingScreen(u8 taskId) { - switch (gNamingScreenData->state) + switch (sNamingScreen->state) { case 0: - MainState_BeginFadeIn(); + MainState_FadeIn(); sub_80E2FA4(); - NamingScreen_InitDisplayMode(); + NamingScreen_SetVBlank(); break; case 1: MainState_WaitFadeIn(); @@ -399,13 +556,13 @@ static void sub_80E31B0(u8 taskId) MainState_6(); break; case 7: - sub_80E3604(); + MainState_7(); break; case 8: - MainState_BeginFadeInOut(); + MainState_FadeOut(); break; case 9: - MainState_WaitFadeOutAndExit(); + MainState_Exit(); break; } } @@ -438,33 +595,33 @@ static u8 sub_80E3244(u8 a1) static u8 sub_80E3254(void) { - return sPageOrderUpperFirst[gNamingScreenData->currentPage]; + return sPageOrderUpperFirst[sNamingScreen->currentPage]; } static u8 sub_80E3274(void) { - return sPageOrderSymbolsFirst[gNamingScreenData->currentPage]; + return sPageOrderSymbolsFirst[sNamingScreen->currentPage]; } -static bool8 MainState_BeginFadeIn(void) +static bool8 MainState_FadeIn(void) { - sub_80E4CF8(3, gUnknown_08DD4544); - gNamingScreenData->currentPage = KBPAGE_LETTERS_UPPER; - sub_80E4CF8(2, gUnknown_08DD46E0); - sub_80E4CF8(1, gUnknown_08DD4620); - sub_80E4DE4(gNamingScreenData->windows[1], KBPAGE_LETTERS_LOWER); - sub_80E4DE4(gNamingScreenData->windows[0], KBPAGE_LETTERS_UPPER); - nullsub_10(2, KBPAGE_LETTERS_LOWER); - nullsub_10(1, KBPAGE_LETTERS_UPPER); - sub_80E4D10(); - sub_80E4964(); - sub_80E4EF0(); + DrawBgTilemap(3, gUnknown_08DD4544); + sNamingScreen->currentPage = KBPAGE_LETTERS_UPPER; + DrawBgTilemap(2, gUnknown_08DD46E0); + DrawBgTilemap(1, gUnknown_08DD4620); + PrintKeyboardKeys(sNamingScreen->windows[WIN_KB_PAGE_2], KBPAGE_LETTERS_LOWER); + PrintKeyboardKeys(sNamingScreen->windows[WIN_KB_PAGE_1], KBPAGE_LETTERS_UPPER); + NamingScreen_Dummy(2, KBPAGE_LETTERS_LOWER); + NamingScreen_Dummy(1, KBPAGE_LETTERS_UPPER); + DrawTextEntry(); + DrawTextEntryBox(); + PrintControls(); CopyBgTilemapBufferToVram(1); CopyBgTilemapBufferToVram(2); CopyBgTilemapBufferToVram(3); BlendPalettes(-1, 16, 0); BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); - gNamingScreenData->state++; + sNamingScreen->state++; return FALSE; } @@ -473,8 +630,8 @@ static bool8 MainState_WaitFadeIn(void) if (!gPaletteFade.active) { SetInputState(INPUT_STATE_ENABLED); - sub_80E3E94(1); - gNamingScreenData->state++; + SetCursorFlashing(TRUE); + sNamingScreen->state++; } return FALSE; } @@ -490,48 +647,48 @@ static bool8 MainState_MoveToOKButton(void) { SetInputState(INPUT_STATE_ENABLED); MoveCursorToOKButton(); - gNamingScreenData->state = MAIN_STATE_HANDLE_INPUT; + sNamingScreen->state = STATE_HANDLE_INPUT; } return FALSE; } static bool8 MainState_6(void) { - sub_80E4BE4(); + SaveInputText(); SetInputState(INPUT_STATE_DISABLED); - sub_80E3E94(0); - sub_80E3948(3, 0, 1); - if (gNamingScreenData->templateNum == NAMING_SCREEN_CAUGHT_MON && - CalculatePlayerPartyCount() >= 6) + SetCursorFlashing(FALSE); + TryStartButtonFlash(BUTTON_COUNT, FALSE, TRUE); + if (sNamingScreen->templateNum == NAMING_SCREEN_CAUGHT_MON && + CalculatePlayerPartyCount() >= PARTY_SIZE) { DisplaySentToPCMessage(); - gNamingScreenData->state = MAIN_STATE_UPDATE_SENT_TO_PC_MESSAGE; + sNamingScreen->state = STATE_UPDATE_SENT_TO_PC_MESSAGE; return FALSE; } else { - gNamingScreenData->state = MAIN_STATE_BEGIN_FADE_OUT; + sNamingScreen->state = STATE_BEGIN_FADE_OUT; return TRUE; //Exit the naming screen } } -static bool8 MainState_BeginFadeInOut(void) +static bool8 MainState_FadeOut(void) { BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); - gNamingScreenData->state++; + sNamingScreen->state++; return FALSE; } -static bool8 MainState_WaitFadeOutAndExit(void) +static bool8 MainState_Exit(void) { if (!gPaletteFade.active) { - if (gNamingScreenData->templateNum == NAMING_SCREEN_PLAYER) + if (sNamingScreen->templateNum == NAMING_SCREEN_PLAYER) SeedRngAndSetTrainerId(); - SetMainCallback2(gNamingScreenData->returnCallback); - DestroyTask(FindTaskIdByFunc(sub_80E31B0)); + SetMainCallback2(sNamingScreen->returnCallback); + DestroyTask(FindTaskIdByFunc(Task_NamingScreen)); FreeAllWindowBuffers(); - FREE_AND_SET_NULL(gNamingScreenData); + FREE_AND_SET_NULL(sNamingScreen); } return FALSE; } @@ -543,12 +700,12 @@ static void DisplaySentToPCMessage(void) if (!IsDestinationBoxFull()) { StringCopy(gStringVar1, GetBoxNamePtr(VarGet(VAR_PC_BOX_TO_SEND_MON))); - StringCopy(gStringVar2, gNamingScreenData->destBuffer); + StringCopy(gStringVar2, sNamingScreen->destBuffer); } else { StringCopy(gStringVar1, GetBoxNamePtr(VarGet(VAR_PC_BOX_TO_SEND_MON))); - StringCopy(gStringVar2, gNamingScreenData->destBuffer); + StringCopy(gStringVar2, sNamingScreen->destBuffer); StringCopy(gStringVar3, GetBoxNamePtr(GetPCBoxToSendMon())); stringToDisplay = 2; } @@ -563,12 +720,12 @@ static void DisplaySentToPCMessage(void) CopyWindowToVram(0, 3); } -static bool8 sub_80E3604(void) +static bool8 MainState_7(void) { RunTextPrinters(); - if (!IsTextPrinterActive(0) && (gMain.newKeys & A_BUTTON)) - gNamingScreenData->state = MAIN_STATE_BEGIN_FADE_OUT; + if (!IsTextPrinterActive(0) && JOY_NEW(A_BUTTON)) + sNamingScreen->state = STATE_BEGIN_FADE_OUT; return FALSE; } @@ -578,10 +735,10 @@ static bool8 MainState_StartPageSwap(void) SetInputState(INPUT_STATE_DISABLED); sub_80E4050(); StartPageSwapAnim(); - sub_80E3E3C(1); - sub_80E3948(0, 0, 1); + SetCursorInvisibility(TRUE); + TryStartButtonFlash(BUTTON_PAGE, FALSE, TRUE); PlaySE(SE_WIN_OPEN); - gNamingScreenData->state = MAIN_STATE_WAIT_PAGE_SWAP; + sNamingScreen->state = STATE_WAIT_PAGE_SWAP; return FALSE; } @@ -597,9 +754,9 @@ static bool8 MainState_WaitPageSwap(void) GetCursorPos(&cursorX, &cursorY); var3 = (cursorX == GetCurrentPageColumnCount()); - gNamingScreenData->state = MAIN_STATE_HANDLE_INPUT; - gNamingScreenData->currentPage++; - gNamingScreenData->currentPage %= 3; + sNamingScreen->state = STATE_HANDLE_INPUT; + sNamingScreen->currentPage++; + sNamingScreen->currentPage %= 3; if (var3) { @@ -612,9 +769,9 @@ static bool8 MainState_WaitPageSwap(void) } SetCursorPos(cursorX, cursorY); - sub_80E4E5C(); + DrawKeyboardPageOnDeck(); SetInputState(INPUT_STATE_ENABLED); - sub_80E3E3C(0); + SetCursorInvisibility(FALSE); } return FALSE; } @@ -662,8 +819,8 @@ static bool8 IsPageSwapAnimNotInProgress(void) static bool8 PageSwapAnimState_Init(struct Task *task) { - gNamingScreenData->bg1vOffset = 0; - gNamingScreenData->bg2vOffset = 0; + sNamingScreen->bg1vOffset = 0; + sNamingScreen->bg2vOffset = 0; task->tState++; return 0; } @@ -672,19 +829,19 @@ static bool8 PageSwapAnimState_1(struct Task *task) { u16 *const arr[] = { - &gNamingScreenData->bg2vOffset, - &gNamingScreenData->bg1vOffset + &sNamingScreen->bg2vOffset, + &sNamingScreen->bg1vOffset }; task->tFrameCount += 4; - *arr[gNamingScreenData->bgToReveal] = Sin(task->tFrameCount, 40); - *arr[gNamingScreenData->bgToHide] = Sin((task->tFrameCount + 128) & 0xFF, 40); + *arr[sNamingScreen->bgToReveal] = Sin(task->tFrameCount, 40); + *arr[sNamingScreen->bgToHide] = Sin((task->tFrameCount + 128) & 0xFF, 40); if (task->tFrameCount >= 64) { - u8 temp = gNamingScreenData->bg1Priority; //Why u8 and not u16? + u8 temp = sNamingScreen->bg1Priority; //Why u8 and not u16? - gNamingScreenData->bg1Priority = gNamingScreenData->bg2Priority; - gNamingScreenData->bg2Priority = temp; + sNamingScreen->bg1Priority = sNamingScreen->bg2Priority; + sNamingScreen->bg2Priority = temp; task->tState++; } return 0; @@ -694,19 +851,19 @@ static bool8 PageSwapAnimState_2(struct Task *task) { u16 *const arr[] = { - &gNamingScreenData->bg2vOffset, - &gNamingScreenData->bg1vOffset + &sNamingScreen->bg2vOffset, + &sNamingScreen->bg1vOffset }; task->tFrameCount += 4; - *arr[gNamingScreenData->bgToReveal] = Sin(task->tFrameCount, 40); - *arr[gNamingScreenData->bgToHide] = Sin((task->tFrameCount + 128) & 0xFF, 40); + *arr[sNamingScreen->bgToReveal] = Sin(task->tFrameCount, 40); + *arr[sNamingScreen->bgToHide] = Sin((task->tFrameCount + 128) & 0xFF, 40); if (task->tFrameCount >= 128) { - u8 temp = gNamingScreenData->bgToReveal; + u8 temp = sNamingScreen->bgToReveal; - gNamingScreenData->bgToReveal = gNamingScreenData->bgToHide; - gNamingScreenData->bgToHide = temp; + sNamingScreen->bgToReveal = sNamingScreen->bgToHide; + sNamingScreen->bgToHide = temp; task->tState++; } return 0; @@ -725,69 +882,73 @@ static bool8 PageSwapAnimState_Done(struct Task *task) // //-------------------------------------------------- -static void sub_80E3920(void) +#define tButtonId data[0] +#define tColor data[3] + +static void CreateButtonFlashTask(void) { u8 taskId; - taskId = CreateTask(Task_80E39BC, 3); - gTasks[taskId].data[0] = 3; + taskId = CreateTask(Task_UpdateButtonFlash, 3); + gTasks[taskId].tButtonId = BUTTON_COUNT; } -static void sub_80E3948(u8 a, u8 b, u8 c) +static void TryStartButtonFlash(u8 button, bool8 b, bool8 c) { - struct Task *task = &gTasks[FindTaskIdByFunc(Task_80E39BC)]; + struct Task *task = &gTasks[FindTaskIdByFunc(Task_UpdateButtonFlash)]; - if (a == task->data[0] && c == 0) + if (button == task->tButtonId && !c) { task->data[1] = b; - task->data[2] = 1; + task->data[2] = TRUE; return; } - if (a == 3 && task->data[1] == 0 && c == 0) + if (button == BUTTON_COUNT && !task->data[1] && !c) return; - if (task->data[0] != 3) - sub_80E3AE8(task->data[0]); - sub_80E3B10(task, a, b); + + if (task->tButtonId != BUTTON_COUNT) + RestoreButtonColor(task->tButtonId); + + StartButtonFlash(task, button, b); } -static void Task_80E39BC(u8 taskId) +static void Task_UpdateButtonFlash(u8 taskId) { struct Task *task = &gTasks[taskId]; - if (task->data[0] == 3 || task->data[2] == 0) + if (task->tButtonId == BUTTON_COUNT || !task->data[2]) return; - MultiplyInvertedPaletteRGBComponents(sub_80E3A74(task->data[0]), task->data[3], task->data[3], task->data[3]); - if (task->data[5] != 0) - { - task->data[5]--; - if (task->data[5] != 0) - return; - } + + MultiplyInvertedPaletteRGBComponents(GetButtonPalOffset(task->tButtonId), task->tColor, task->tColor, task->tColor); + + if (task->data[5] && --task->data[5]) + return; + task->data[5] = 2; if (task->data[4] >= 0) { - if (task->data[3] < 14) + if (task->tColor < 14) { - task->data[3] += task->data[4]; + task->tColor += task->data[4]; task->data[6] += task->data[4]; } else { - task->data[3] = 16; + task->tColor = 16; task->data[6]++; } } else { - task->data[3] += task->data[4]; + task->tColor += task->data[4]; task->data[6] += task->data[4]; } - if (task->data[3] == 16 && task->data[6] == 22) + if (task->tColor == 16 && task->data[6] == 22) { task->data[4] = -4; } - else if (task->data[3] == 0) + else if (task->tColor == 0) { task->data[2] = task->data[1]; task->data[4] = 2; @@ -795,45 +956,50 @@ static void Task_80E39BC(u8 taskId) } } -static u16 sub_80E3A74(u8 a) +static u16 GetButtonPalOffset(u8 button) { - const u16 arr[] = + const u16 palOffsets[] = { - IndexOfSpritePaletteTag(4) * 16 + 0x10E, - IndexOfSpritePaletteTag(6) * 16 + 0x10E, - IndexOfSpritePaletteTag(7) * 16 + 0x10E, - IndexOfSpritePaletteTag(7) * 16 + 0x101, + [BUTTON_PAGE] = IndexOfSpritePaletteTag(PALTAG_PAGE_SWITCH) * 16 + 0x10E, + [BUTTON_BACK] = IndexOfSpritePaletteTag(PALTAG_BACK_BUTTON) * 16 + 0x10E, + [BUTTON_OK] = IndexOfSpritePaletteTag(PALTAG_OK_BUTTON) * 16 + 0x10E, + [BUTTON_COUNT] = IndexOfSpritePaletteTag(PALTAG_OK_BUTTON) * 16 + 0x101, }; - return arr[a]; + return palOffsets[button]; } -static void sub_80E3AE8(u8 a) +static void RestoreButtonColor(u8 button) { - u16 index = sub_80E3A74(a); - + u16 index = GetButtonPalOffset(button); gPlttBufferFaded[index] = gPlttBufferUnfaded[index]; } -static void sub_80E3B10(struct Task *task, u8 b, u8 c) +static void StartButtonFlash(struct Task *task, u8 button, bool8 c) { - task->data[0] = b; + task->tButtonId = button; task->data[1] = c; - task->data[2] = 1; - task->data[3] = 4; + task->data[2] = TRUE; + task->tColor = 4; task->data[4] = 2; task->data[5] = 0; task->data[6] = 4; } -static void sub_80E3B30(struct Sprite *sprite) +#undef tButtonId +#undef tColor + +#define tInvisible data[4] & 0x00FF +#define tFlashing data[4] & 0xFF00 + +static void SpriteCB_Cursor(struct Sprite *sprite) { if (sprite->animEnded) StartSpriteAnim(sprite, 0); - sprite->invisible = (sprite->data[4] & 0xFF); + sprite->invisible = sprite->tInvisible; if (sprite->data[0] == GetCurrentPageColumnCount()) sprite->invisible = TRUE; - if (sprite->invisible || (sprite->data[4] & 0xFF00) == 0 + if (sprite->invisible || !(sprite->tFlashing) || sprite->data[0] != sprite->data[2] || sprite->data[1] != sprite->data[3]) { sprite->data[5] = 0; @@ -848,34 +1014,40 @@ static void sub_80E3B30(struct Sprite *sprite) sprite->data[6] = -sprite->data[6]; sprite->data[7] = 2; } - if ((sprite->data[4] & 0xFF00) != 0) + if (sprite->tFlashing) { s8 gb = sprite->data[5]; s8 r = sprite->data[5] >> 1; - u16 index = IndexOfSpritePaletteTag(5) * 16 + 0x0101; + u16 index = IndexOfSpritePaletteTag(PALTAG_CURSOR) * 16 + 0x0101; MultiplyInvertedPaletteRGBComponents(index, r, gb, gb); } } -static void sub_80E3C20(struct Sprite *sprite) -{ - const s16 arr[] = {0, -4, -2, -1}; +#define sDelay data[0] +#define sXPosId data[1] - if (sprite->data[0] == 0 || --sprite->data[0] == 0) +static void SpriteCB_InputArrow(struct Sprite *sprite) +{ + const s16 x[] = {0, -4, -2, -1}; + + if (sprite->sDelay == 0 || --sprite->sDelay == 0) { - sprite->data[0] = 8; - sprite->data[1] = (sprite->data[1] + 1) & 3; + sprite->sDelay = 8; + sprite->sXPosId = (sprite->sXPosId + 1) & (ARRAY_COUNT(x) - 1); } - sprite->pos2.x = arr[sprite->data[1]]; + sprite->pos2.x = x[sprite->sXPosId]; } -static void sub_80E3C6C(struct Sprite *sprite) +#undef sDelay +#undef sXPosId + +static void SpriteCB_Underscore(struct Sprite *sprite) { const s16 arr[] = {2, 3, 2, 1}; u8 var; - var = GetTextCaretPosition(); + var = GetTextEntryPosition(); if (var != (u8)sprite->data[0]) { sprite->pos2.y = 0; @@ -894,36 +1066,32 @@ static void sub_80E3C6C(struct Sprite *sprite) } } -//-------------------------------------------------- -// Cursor -//-------------------------------------------------- - -static void sub_80E3CC8(void) +static void CreateSprites(void) { - CursorInit(); + CreateCursorSprite(); CreatePageSwitcherSprites(); CreateBackOkSprites(); - CreateUnderscoreSprites(); + CreateTextEntrySprites(); CreateInputTargetIcon(); } -static void CursorInit(void) +static void CreateCursorSprite(void) { - gNamingScreenData->cursorSpriteId = CreateSprite(&gUnknown_0858C138, 38, 88, 1); - sub_80E3E3C(1); - gSprites[gNamingScreenData->cursorSpriteId].oam.priority = 1; - gSprites[gNamingScreenData->cursorSpriteId].oam.objMode = ST_OAM_OBJ_BLEND; - gSprites[gNamingScreenData->cursorSpriteId].data[6] = 1; - gSprites[gNamingScreenData->cursorSpriteId].data[6] = 2; + sNamingScreen->cursorSpriteId = CreateSprite(&sSpriteTemplate_Cursor, 38, 88, 1); + SetCursorInvisibility(TRUE); + gSprites[sNamingScreen->cursorSpriteId].oam.priority = 1; + gSprites[sNamingScreen->cursorSpriteId].oam.objMode = ST_OAM_OBJ_BLEND; + gSprites[sNamingScreen->cursorSpriteId].data[6] = 1; + gSprites[sNamingScreen->cursorSpriteId].data[6] = 2; SetCursorPos(0, 0); } static void SetCursorPos(s16 x, s16 y) { - struct Sprite *cursorSprite = &gSprites[gNamingScreenData->cursorSpriteId]; + struct Sprite *cursorSprite = &gSprites[sNamingScreen->cursorSpriteId]; - if (x < gUnknown_0858BEA0[sub_80E3274()]) - cursorSprite->pos1.x = gUnknown_0858BEA3[x + sub_80E3274() * 8] + 38; + if (x < sPageColumnCounts[sub_80E3274()]) + cursorSprite->pos1.x = sPageColumnXPos[x + sub_80E3274() * KBCOL_COUNT] + 38; else cursorSprite->pos1.x = 0; @@ -936,7 +1104,7 @@ static void SetCursorPos(s16 x, s16 y) static void GetCursorPos(s16 *x, s16 *y) { - struct Sprite *cursorSprite = &gSprites[gNamingScreenData->cursorSpriteId]; + struct Sprite *cursorSprite = &gSprites[sNamingScreen->cursorSpriteId]; *x = cursorSprite->data[0]; *y = cursorSprite->data[1]; @@ -947,38 +1115,30 @@ static void MoveCursorToOKButton(void) SetCursorPos(GetCurrentPageColumnCount(), 2); } -static void sub_80E3E3C(u8 a) +static void SetCursorInvisibility(bool8 invisible) { - gSprites[gNamingScreenData->cursorSpriteId].data[4] &= -256; - gSprites[gNamingScreenData->cursorSpriteId].data[4] |= a; - StartSpriteAnim(&gSprites[gNamingScreenData->cursorSpriteId], 0); + gSprites[sNamingScreen->cursorSpriteId].data[4] &= 0xFF00; + gSprites[sNamingScreen->cursorSpriteId].data[4] |= invisible; + StartSpriteAnim(&gSprites[sNamingScreen->cursorSpriteId], 0); } -static void sub_80E3E94(u8 a) +static void SetCursorFlashing(bool8 flashing) { - gSprites[gNamingScreenData->cursorSpriteId].data[4] &= 0xFF; - gSprites[gNamingScreenData->cursorSpriteId].data[4] |= a << 8; + gSprites[sNamingScreen->cursorSpriteId].data[4] &= 0xFF; + gSprites[sNamingScreen->cursorSpriteId].data[4] |= flashing << 8; } -static void sub_80E3ED8(void) +static void SquishCursor(void) { - StartSpriteAnim(&gSprites[gNamingScreenData->cursorSpriteId], 1); + StartSpriteAnim(&gSprites[sNamingScreen->cursorSpriteId], 1); } static bool8 IsCursorAnimFinished(void) { - return gSprites[gNamingScreenData->cursorSpriteId].animEnded; + return gSprites[sNamingScreen->cursorSpriteId].animEnded; } -enum -{ - KEY_ROLE_CHAR, - KEY_ROLE_PAGE, - KEY_ROLE_BACKSPACE, - KEY_ROLE_OK, -}; - -static const u8 sKeyRoles[] = {KEY_ROLE_PAGE, KEY_ROLE_BACKSPACE, KEY_ROLE_OK}; +static const u8 sButtonKeyRoles[] = {KEY_ROLE_PAGE, KEY_ROLE_BACKSPACE, KEY_ROLE_OK}; static u8 GetKeyRoleAtCursorPos(void) { @@ -989,42 +1149,43 @@ static u8 GetKeyRoleAtCursorPos(void) if (cursorX < GetCurrentPageColumnCount()) return KEY_ROLE_CHAR; else - return sKeyRoles[cursorY]; + return sButtonKeyRoles[cursorY]; } +// If the cursor's x is equal to the column count, cursor is in the button column static u8 GetCurrentPageColumnCount(void) { - return gUnknown_0858BEA0[sub_80E3274()]; + return sPageColumnCounts[sub_80E3274()]; } static void CreatePageSwitcherSprites(void) { - u8 spriteId1; - u8 spriteId2; - u8 spriteId3; + u8 bgSpriteId; + u8 textSpriteId; + u8 buttonSpriteId; - spriteId1 = CreateSprite(&gUnknown_0858C0C0, 0xCC, 0x58, 0); - gNamingScreenData->selectBtnFrameSpriteId = spriteId1; - SetSubspriteTables(&gSprites[spriteId1], gUnknown_0858C050); - gSprites[spriteId1].invisible = TRUE; + bgSpriteId = CreateSprite(&sSpriteTemplate_PageSwitchBg, 204, 88, 0); + sNamingScreen->selectBtnFrameSpriteId = bgSpriteId; + SetSubspriteTables(&gSprites[bgSpriteId], sSubspriteTable_PageSwitchBg); + gSprites[bgSpriteId].invisible = TRUE; - spriteId2 = CreateSprite(&gUnknown_0858C0F0, 0xCC, 0x54, 1); - gSprites[spriteId1].data[6] = spriteId2; - SetSubspriteTables(&gSprites[spriteId2], gUnknown_0858C058); - gSprites[spriteId2].invisible = TRUE; + textSpriteId = CreateSprite(&sSpriteTemplate_PageSwitchText, 204, 84, 1); + gSprites[bgSpriteId].data[6] = textSpriteId; + SetSubspriteTables(&gSprites[textSpriteId], sSubspriteTable_PageSwitchText); + gSprites[textSpriteId].invisible = TRUE; - spriteId3 = CreateSprite(&gUnknown_0858C0D8, 0xCC, 0x53, 2); - gSprites[spriteId3].oam.priority = 1; - gSprites[spriteId1].data[7] = spriteId3; - gSprites[spriteId3].invisible = TRUE; + buttonSpriteId = CreateSprite(&sSpriteTemplate_PageSwitchButton, 204, 83, 2); + gSprites[buttonSpriteId].oam.priority = 1; + gSprites[bgSpriteId].data[7] = buttonSpriteId; + gSprites[buttonSpriteId].invisible = TRUE; } static void sub_80E4050(void) { - struct Sprite *sprite = &gSprites[gNamingScreenData->selectBtnFrameSpriteId]; + struct Sprite *sprite = &gSprites[sNamingScreen->selectBtnFrameSpriteId]; sprite->data[0] = 2; - sprite->data[1] = gNamingScreenData->currentPage; + sprite->data[1] = sNamingScreen->currentPage; } static u8 sub_80E40AC(struct Sprite *); @@ -1032,7 +1193,7 @@ static u8 sub_80E4100(struct Sprite *); static u8 sub_80E4104(struct Sprite *); static u8 sub_80E4178(struct Sprite *); -static u8 (*const gUnknown_0858BEE8[])(struct Sprite *) = +static u8 (*const sPageSwitchSpriteFuncs[])(struct Sprite *) = { sub_80E40AC, sub_80E4100, @@ -1040,9 +1201,9 @@ static u8 (*const gUnknown_0858BEE8[])(struct Sprite *) = sub_80E4178, }; -static void sub_80E4084(struct Sprite *sprite) +static void SpriteCB_PageSwitch(struct Sprite *sprite) { - while (gUnknown_0858BEE8[sprite->data[0]](sprite) != 0); + while (sPageSwitchSpriteFuncs[sprite->data[0]](sprite) != 0); } static u8 sub_80E40AC(struct Sprite *sprite) @@ -1050,7 +1211,7 @@ static u8 sub_80E40AC(struct Sprite *sprite) struct Sprite *sprite1 = &gSprites[sprite->data[6]]; struct Sprite *sprite2 = &gSprites[sprite->data[7]]; - sub_80E41B8(sub_80E3244(gNamingScreenData->currentPage), sprite1, sprite2); + sub_80E41B8(sub_80E3244(sNamingScreen->currentPage), sprite1, sprite2); sprite->data[0]++; return 0; } @@ -1090,8 +1251,17 @@ static u8 sub_80E4178(struct Sprite *sprite) return 0; } -static const u16 gUnknown_0858BEF8[] = {1, 3, 2}; -static const u16 gUnknown_0858BEFE[] = {4, 6, 5}; +static const u16 gUnknown_0858BEF8[] = { + PALTAG_1, + PALTAG_3, + PALTAG_2 +}; + +static const u16 gUnknown_0858BEFE[] = { + GFXTAG_PAGE_SWITCH_UPPER, + GFXTAG_PAGE_SWITCH_OTHERS, + GFXTAG_PAGE_SWITCH_LOWER +}; static void sub_80E41B8(u8 a, struct Sprite *b, struct Sprite *c) { @@ -1106,29 +1276,29 @@ static void CreateBackOkSprites(void) { u8 spriteId; - spriteId = CreateSprite(&gUnknown_0858C108, 0xCC, 0x74, 0); - SetSubspriteTables(&gSprites[spriteId], gUnknown_0858C070); + spriteId = CreateSprite(&sSpriteTemplate_BackButton, 204, 116, 0); + SetSubspriteTables(&gSprites[spriteId], sSubspriteTable_Button); gSprites[spriteId].invisible = TRUE; - spriteId = CreateSprite(&gUnknown_0858C120, 0xCC, 0x8C, 0); - SetSubspriteTables(&gSprites[spriteId], gUnknown_0858C070); + spriteId = CreateSprite(&sSpriteTemplate_OkButton, 204, 140, 0); + SetSubspriteTables(&gSprites[spriteId], sSubspriteTable_Button); gSprites[spriteId].invisible = TRUE; } -static void CreateUnderscoreSprites(void) +static void CreateTextEntrySprites(void) { u8 spriteId; s16 xPos; u8 i; - xPos = gNamingScreenData->inputCharBaseXPos - 5; - spriteId = CreateSprite(&sSpriteTemplate_InputArrow, xPos, 0x38, 0); + xPos = sNamingScreen->inputCharBaseXPos - 5; + spriteId = CreateSprite(&sSpriteTemplate_InputArrow, xPos, 56, 0); gSprites[spriteId].oam.priority = 3; gSprites[spriteId].invisible = TRUE; - xPos = gNamingScreenData->inputCharBaseXPos; - for (i = 0; i < gNamingScreenData->template->maxChars; i++, xPos += 8) + xPos = sNamingScreen->inputCharBaseXPos; + for (i = 0; i < sNamingScreen->template->maxChars; i++, xPos += 8) { - spriteId = CreateSprite(&sSpriteTemplate_Underscore, xPos + 3, 0x3C, 0); + spriteId = CreateSprite(&sSpriteTemplate_Underscore, xPos + 3, 60, 0); gSprites[spriteId].oam.priority = 3; gSprites[spriteId].data[0] = i; gSprites[spriteId].invisible = TRUE; @@ -1139,27 +1309,27 @@ static void CreateUnderscoreSprites(void) // Icon creation (the thing you're naming or giving input to) //-------------------------------------------------- -static void TaskDummy2(void); +static void NamingScreen_NoIcon(void); static void NamingScreen_CreatePlayerIcon(void); static void NamingScreen_CreatePCIcon(void); static void NamingScreen_CreateMonIcon(void); -static void NamingScreen_CreateWandaDadIcon(void); +static void NamingScreen_CreateWaldaDadIcon(void); static void (*const sIconFunctions[])(void) = { - TaskDummy2, + NamingScreen_NoIcon, NamingScreen_CreatePlayerIcon, NamingScreen_CreatePCIcon, NamingScreen_CreateMonIcon, - NamingScreen_CreateWandaDadIcon, + NamingScreen_CreateWaldaDadIcon, }; static void CreateInputTargetIcon(void) { - sIconFunctions[gNamingScreenData->template->iconFunction](); + sIconFunctions[sNamingScreen->template->iconFunction](); } -static void TaskDummy2(void) +static void NamingScreen_NoIcon(void) { } @@ -1169,8 +1339,8 @@ static void NamingScreen_CreatePlayerIcon(void) u8 rivalGfxId; u8 spriteId; - rivalGfxId = GetRivalAvatarGraphicsIdByStateIdAndGender(0, gNamingScreenData->monSpecies); - spriteId = AddPseudoObjectEvent(rivalGfxId, SpriteCallbackDummy, 0x38, 0x25, 0); + rivalGfxId = GetRivalAvatarGraphicsIdByStateIdAndGender(0, sNamingScreen->monSpecies); + spriteId = AddPseudoObjectEvent(rivalGfxId, SpriteCallbackDummy, 56, 37, 0); gSprites[spriteId].oam.priority = 3; StartSpriteAnim(&gSprites[spriteId], 4); } @@ -1179,8 +1349,8 @@ static void NamingScreen_CreatePCIcon(void) { u8 spriteId; - spriteId = CreateSprite(&gUnknown_0858C180, 0x38, 0x29, 0); - SetSubspriteTables(&gSprites[spriteId], gUnknown_0858C078); + spriteId = CreateSprite(&sSpriteTemplate_PCIcon, 56, 41, 0); + SetSubspriteTables(&gSprites[spriteId], sSubspriteTable_PCIcon); gSprites[spriteId].oam.priority = 3; } @@ -1189,15 +1359,15 @@ static void NamingScreen_CreateMonIcon(void) u8 spriteId; LoadMonIconPalettes(); - spriteId = CreateMonIcon(gNamingScreenData->monSpecies, SpriteCallbackDummy, 0x38, 0x28, 0, gNamingScreenData->monPersonality, 1); + spriteId = CreateMonIcon(sNamingScreen->monSpecies, SpriteCallbackDummy, 56, 40, 0, sNamingScreen->monPersonality, 1); gSprites[spriteId].oam.priority = 3; } -static void NamingScreen_CreateWandaDadIcon(void) +static void NamingScreen_CreateWaldaDadIcon(void) { u8 spriteId; - spriteId = AddPseudoObjectEvent(OBJ_EVENT_GFX_MAN_1, SpriteCallbackDummy, 0x38, 0x25, 0); + spriteId = AddPseudoObjectEvent(OBJ_EVENT_GFX_MAN_1, SpriteCallbackDummy, 56, 37, 0); gSprites[spriteId].oam.priority = 3; StartSpriteAnim(&gSprites[spriteId], 4); } @@ -1213,10 +1383,10 @@ static bool8 KeyboardKeyHandler_OK(u8); static bool8 (*const sKeyboardKeyHandlers[])(u8) = { - KeyboardKeyHandler_Character, - KeyboardKeyHandler_Page, - KeyboardKeyHandler_Backspace, - KeyboardKeyHandler_OK, + [KEY_ROLE_CHAR] = KeyboardKeyHandler_Character, + [KEY_ROLE_PAGE] = KeyboardKeyHandler_Page, + [KEY_ROLE_BACKSPACE] = KeyboardKeyHandler_Backspace, + [KEY_ROLE_OK] = KeyboardKeyHandler_OK, }; static bool8 HandleKeyboardEvent(void) @@ -1224,16 +1394,16 @@ static bool8 HandleKeyboardEvent(void) u8 event = GetInputEvent(); u8 keyRole = GetKeyRoleAtCursorPos(); - if (event == KBEVENT_PRESSED_SELECT) + if (event == INPUT_SELECT) { - return sub_80E45E0(); + return SwitchKeyboardPage(); } - else if (event == KBEVENT_PRESSED_B) + else if (event == INPUT_B_BUTTON) { DeleteTextCharacter(); return FALSE; } - else if (event == KBEVENT_PRESSED_START) + else if (event == INPUT_START) { MoveCursorToOKButton(); return FALSE; @@ -1246,16 +1416,16 @@ static bool8 HandleKeyboardEvent(void) static bool8 KeyboardKeyHandler_Character(u8 event) { - sub_80E3948(3, 0, 0); - if (event == KBEVENT_PRESSED_A) + TryStartButtonFlash(BUTTON_COUNT, FALSE, FALSE); + if (event == INPUT_A_BUTTON) { - bool8 var = sub_80E4B54(); + bool8 textFull = AddTextCharacter(); - sub_80E3ED8(); - if (var) + SquishCursor(); + if (textFull) { SetInputState(INPUT_STATE_2); - gNamingScreenData->state = MAIN_STATE_MOVE_TO_OK_BUTTON; + sNamingScreen->state = STATE_MOVE_TO_OK_BUTTON; } } return FALSE; @@ -1263,37 +1433,37 @@ static bool8 KeyboardKeyHandler_Character(u8 event) static bool8 KeyboardKeyHandler_Page(u8 event) { - sub_80E3948(0, 1, 0); - if (event == KBEVENT_PRESSED_A) - return sub_80E45E0(); + TryStartButtonFlash(BUTTON_PAGE, TRUE, FALSE); + if (event == INPUT_A_BUTTON) + return SwitchKeyboardPage(); else return FALSE; } static bool8 KeyboardKeyHandler_Backspace(u8 event) { - sub_80E3948(1, 1, 0); - if (event == KBEVENT_PRESSED_A) + TryStartButtonFlash(BUTTON_BACK, TRUE, FALSE); + if (event == INPUT_A_BUTTON) DeleteTextCharacter(); return FALSE; } static bool8 KeyboardKeyHandler_OK(u8 event) { - sub_80E3948(2, 1, 0); - if (event == KBEVENT_PRESSED_A) + TryStartButtonFlash(BUTTON_OK, TRUE, FALSE); + if (event == INPUT_A_BUTTON) { PlaySE(SE_SELECT); - gNamingScreenData->state = MAIN_STATE_6; + sNamingScreen->state = STATE_6; return TRUE; } else return FALSE; } -static bool8 sub_80E45E0(void) +static bool8 SwitchKeyboardPage(void) { - gNamingScreenData->state = MAIN_STATE_START_PAGE_SWAP; + sNamingScreen->state = STATE_START_PAGE_SWAP; return TRUE; } @@ -1301,16 +1471,9 @@ static bool8 sub_80E45E0(void) // Input handling //-------------------------------------------------- -enum -{ - FNKEY_CASE, - FNKEY_BACK, - FNKEY_OK, -}; - #define tState data[0] #define tKeyboardEvent data[1] -#define tKbFunctionKey data[2] +#define tButtonId data[2] static void InputState_Disabled(struct Task *); @@ -1327,7 +1490,7 @@ static void (*const sInputStateFuncs[])(struct Task *) = static void Task_HandleInput(u8); static void HandleDpadMovement(struct Task *); -static void InputInit(void) +static void CreateInputHandlerTask(void) { CreateTask(Task_HandleInput, 1); } @@ -1353,116 +1516,120 @@ static void Task_HandleInput(u8 taskId) static void InputState_Disabled(struct Task *task) { - task->tKeyboardEvent = 0; + task->tKeyboardEvent = INPUT_NONE; } static void InputState_Enabled(struct Task *task) { - task->tKeyboardEvent = 0; + task->tKeyboardEvent = INPUT_NONE; - if (gMain.newKeys & A_BUTTON) - task->tKeyboardEvent = KBEVENT_PRESSED_A; - else if (gMain.newKeys & B_BUTTON) - task->tKeyboardEvent = KBEVENT_PRESSED_B; - else if (gMain.newKeys & SELECT_BUTTON) - task->tKeyboardEvent = KBEVENT_PRESSED_SELECT; - else if (gMain.newKeys & START_BUTTON) - task->tKeyboardEvent = KBEVENT_PRESSED_START; + if (JOY_NEW(A_BUTTON)) + task->tKeyboardEvent = INPUT_A_BUTTON; + else if (JOY_NEW(B_BUTTON)) + task->tKeyboardEvent = INPUT_B_BUTTON; + else if (JOY_NEW(SELECT_BUTTON)) + task->tKeyboardEvent = INPUT_SELECT; + else if (JOY_NEW(START_BUTTON)) + task->tKeyboardEvent = INPUT_START; else HandleDpadMovement(task); } static void InputState_2(struct Task *task) { - task->tKeyboardEvent = 0; + task->tKeyboardEvent = INPUT_NONE; } static void HandleDpadMovement(struct Task *task) { const s16 sDpadDeltaX[] = { - 0, //none - 0, //up - 0, //down - -1, //left - 1 //right + [INPUT_NONE] = 0, + [INPUT_DPAD_UP] = 0, + [INPUT_DPAD_DOWN] = 0, + [INPUT_DPAD_LEFT] = -1, + [INPUT_DPAD_RIGHT] = 1 }; const s16 sDpadDeltaY[] = { - 0, //none - -1, //up - 1, //down - 0, //left - 0 //right + [INPUT_NONE] = 0, + [INPUT_DPAD_UP] = -1, + [INPUT_DPAD_DOWN] = 1, + [INPUT_DPAD_LEFT] = 0, + [INPUT_DPAD_RIGHT] = 0 }; - const s16 s4RowTo3RowTableY[] = {0, 1, 1, 2}; + const s16 sKeyRowToButtonRow[KBROW_COUNT] = {0, 1, 1, 2}; const s16 gUnknown_0858BF50[] = {0, 0, 3}; s16 cursorX; s16 cursorY; - u16 dpadDir; + u16 input; s16 prevCursorX; GetCursorPos(&cursorX, &cursorY); - dpadDir = 0; - if (gMain.newAndRepeatedKeys & DPAD_UP) - dpadDir = 1; - if (gMain.newAndRepeatedKeys & DPAD_DOWN) - dpadDir = 2; - if (gMain.newAndRepeatedKeys & DPAD_LEFT) - dpadDir = 3; - if (gMain.newAndRepeatedKeys & DPAD_RIGHT) - dpadDir = 4; + input = INPUT_NONE; + if (JOY_REPEAT(DPAD_UP)) + input = INPUT_DPAD_UP; + if (JOY_REPEAT(DPAD_DOWN)) + input = INPUT_DPAD_DOWN; + if (JOY_REPEAT(DPAD_LEFT)) + input = INPUT_DPAD_LEFT; + if (JOY_REPEAT(DPAD_RIGHT)) + input = INPUT_DPAD_RIGHT; - //Get new cursor position + // Get new cursor position prevCursorX = cursorX; - cursorX += sDpadDeltaX[dpadDir]; - cursorY += sDpadDeltaY[dpadDir]; + cursorX += sDpadDeltaX[input]; + cursorY += sDpadDeltaY[input]; - //Wrap cursor position in the X direction + // Wrap cursor position in the X direction if (cursorX < 0) cursorX = GetCurrentPageColumnCount(); if (cursorX > GetCurrentPageColumnCount()) cursorX = 0; - //Handle cursor movement in X direction - if (sDpadDeltaX[dpadDir] != 0) + + // Handle moving on/off the button column + if (sDpadDeltaX[input] != 0) { if (cursorX == GetCurrentPageColumnCount()) { - //We are now on the last column - task->tKbFunctionKey = cursorY; - cursorY = s4RowTo3RowTableY[cursorY]; + // Moved onto button column + task->tButtonId = cursorY; + cursorY = sKeyRowToButtonRow[cursorY]; } else if (prevCursorX == GetCurrentPageColumnCount()) { + // Moved off button column if (cursorY == 1) - cursorY = task->tKbFunctionKey; + cursorY = task->tButtonId; else cursorY = gUnknown_0858BF50[cursorY]; } } + // Wrap cursor position in the y direction if (cursorX == GetCurrentPageColumnCount()) { - //There are only 3 keys on the last column, unlike the others, - //so wrap Y accordingly + // There are only 3 keys in the button column + // so wrap Y accordingly if (cursorY < 0) - cursorY = 2; - if (cursorY > 2) + cursorY = BUTTON_COUNT - 1; + if (cursorY >= BUTTON_COUNT) cursorY = 0; + if (cursorY == 0) - task->tKbFunctionKey = FNKEY_BACK; - else if (cursorY == 2) - task->tKbFunctionKey = FNKEY_OK; + task->tButtonId = BUTTON_BACK; + else if (cursorY == BUTTON_COUNT - 1) + task->tButtonId = BUTTON_OK; } else { if (cursorY < 0) - cursorY = 3; - if (cursorY > 3) + cursorY = KBROW_COUNT - 1; + if (cursorY > KBROW_COUNT - 1) cursorY = 0; } SetCursorPos(cursorX, cursorY); @@ -1470,55 +1637,55 @@ static void HandleDpadMovement(struct Task *task) #undef tState #undef tKeyboardEvent -#undef tKbFunctionKey +#undef tButtonId -static void sub_80E4894(void) +static void DrawNormalTextEntryBox(void) { - FillWindowPixelBuffer(gNamingScreenData->windows[3], PIXEL_FILL(1)); - AddTextPrinterParameterized(gNamingScreenData->windows[3], 1, gNamingScreenData->template->title, 8, 1, 0, 0); - PutWindowTilemap(gNamingScreenData->windows[3]); + FillWindowPixelBuffer(sNamingScreen->windows[WIN_TEXT_ENTRY_BOX], PIXEL_FILL(1)); + AddTextPrinterParameterized(sNamingScreen->windows[WIN_TEXT_ENTRY_BOX], 1, sNamingScreen->template->title, 8, 1, 0, 0); + PutWindowTilemap(sNamingScreen->windows[WIN_TEXT_ENTRY_BOX]); } -static void sub_80E48E8(void) +static void DrawMonTextEntryBox(void) { - u8 buffer[0x20]; + u8 buffer[32]; - StringCopy(buffer, gSpeciesNames[gNamingScreenData->monSpecies]); - StringAppendN(buffer, gNamingScreenData->template->title, 15); - FillWindowPixelBuffer(gNamingScreenData->windows[3], PIXEL_FILL(1)); - AddTextPrinterParameterized(gNamingScreenData->windows[3], 1, buffer, 8, 1, 0, 0); - PutWindowTilemap(gNamingScreenData->windows[3]); + StringCopy(buffer, gSpeciesNames[sNamingScreen->monSpecies]); + StringAppendN(buffer, sNamingScreen->template->title, 15); + FillWindowPixelBuffer(sNamingScreen->windows[WIN_TEXT_ENTRY_BOX], PIXEL_FILL(1)); + AddTextPrinterParameterized(sNamingScreen->windows[WIN_TEXT_ENTRY_BOX], 1, buffer, 8, 1, 0, 0); + PutWindowTilemap(sNamingScreen->windows[WIN_TEXT_ENTRY_BOX]); } -static void (*const gUnknown_0858BF58[])(void) = +static void (*const sDrawTextEntryBoxFuncs[])(void) = { - sub_80E4894, - sub_80E4894, - sub_80E48E8, - sub_80E48E8, - sub_80E4894, + [NAMING_SCREEN_PLAYER] = DrawNormalTextEntryBox, + [NAMING_SCREEN_BOX] = DrawNormalTextEntryBox, + [NAMING_SCREEN_CAUGHT_MON] = DrawMonTextEntryBox, + [NAMING_SCREEN_NICKNAME] = DrawMonTextEntryBox, + [NAMING_SCREEN_WALDA] = DrawNormalTextEntryBox, }; -static void sub_80E4964(void) +static void DrawTextEntryBox(void) { - gUnknown_0858BF58[gNamingScreenData->templateNum](); + sDrawTextEntryBoxFuncs[sNamingScreen->templateNum](); } -static void TaskDummy3(void); -static void sub_80E49BC(void); +static void DummyGenderIcon(void); +static void DrawGenderIcon(void); -static void (*const gUnknown_0858BF6C[])(void) = +static void (*const sDrawGenderIconFuncs[])(void) = { - TaskDummy3, - sub_80E49BC, + [FALSE] = DummyGenderIcon, + [TRUE] = DrawGenderIcon, }; -static void sub_80E498C(void) +static void TryDrawGenderIcon(void) { - gUnknown_0858BF6C[gNamingScreenData->template->addGenderIcon](); + sDrawGenderIconFuncs[sNamingScreen->template->addGenderIcon](); } -static void TaskDummy3(void) +static void DummyGenderIcon(void) { } @@ -1529,49 +1696,48 @@ static const u8 sGenderColors[2][3] = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_LIGHT_RED, TEXT_COLOR_RED} }; -static void sub_80E49BC(void) +static void DrawGenderIcon(void) { - u8 genderSymbol[2]; + u8 text[2]; bool8 isFemale = FALSE; - StringCopy(genderSymbol, gText_MaleSymbol); - - if (gNamingScreenData->monGender != MON_GENDERLESS) + StringCopy(text, gText_MaleSymbol); + if (sNamingScreen->monGender != MON_GENDERLESS) { - if (gNamingScreenData->monGender == MON_FEMALE) + if (sNamingScreen->monGender == MON_FEMALE) { - StringCopy(genderSymbol, gText_FemaleSymbol); + StringCopy(text, gText_FemaleSymbol); isFemale = TRUE; } - AddTextPrinterParameterized3(gNamingScreenData->windows[2], 1, 0x68, 1, sGenderColors[isFemale], -1, genderSymbol); + AddTextPrinterParameterized3(sNamingScreen->windows[WIN_TEXT_ENTRY], 1, 0x68, 1, sGenderColors[isFemale], -1, text); } } -static u8 GetCharAtKeyboardPos(s16 a, s16 b) +static u8 GetCharAtKeyboardPos(s16 x, s16 y) { - return gUnknown_0858BE40[a + b * 8 + sub_80E3274() * 32]; + return sKeyboardChars[x + y * KBCOL_COUNT + sub_80E3274() * KBCOL_COUNT * KBROW_COUNT]; } -static u8 GetTextCaretPosition(void) +static u8 GetTextEntryPosition(void) { u8 i; - for (i = 0; i < gNamingScreenData->template->maxChars; i++) + for (i = 0; i < sNamingScreen->template->maxChars; i++) { - if (gNamingScreenData->textBuffer[i] == EOS) + if (sNamingScreen->textBuffer[i] == EOS) return i; } - return gNamingScreenData->template->maxChars - 1; + return sNamingScreen->template->maxChars - 1; } static u8 GetPreviousTextCaretPosition(void) { s8 i; - for (i = gNamingScreenData->template->maxChars - 1; i > 0; i--) + for (i = sNamingScreen->template->maxChars - 1; i > 0; i--) { - if (gNamingScreenData->textBuffer[i] != EOS) + if (sNamingScreen->textBuffer[i] != EOS) return i; } return 0; @@ -1583,109 +1749,109 @@ static void DeleteTextCharacter(void) u8 var2; index = GetPreviousTextCaretPosition(); - gNamingScreenData->textBuffer[index] = 0; - sub_80E4D10(); + sNamingScreen->textBuffer[index] = 0; + DrawTextEntry(); CopyBgTilemapBufferToVram(3); - gNamingScreenData->textBuffer[index] = EOS; + sNamingScreen->textBuffer[index] = EOS; var2 = GetKeyRoleAtCursorPos(); if (var2 == 0 || var2 == 2) - sub_80E3948(1, 0, 1); + TryStartButtonFlash(BUTTON_BACK, FALSE, TRUE); PlaySE(SE_BOWA); } -static bool8 sub_80E4B54(void) +// Returns TRUE if the text entry is now full +static bool8 AddTextCharacter(void) { s16 x; s16 y; GetCursorPos(&x, &y); - AddTextCharacter(GetCharAtKeyboardPos(x, y)); - sub_80E4D10(); + BufferCharacter(GetCharAtKeyboardPos(x, y)); + DrawTextEntry(); CopyBgTilemapBufferToVram(3); PlaySE(SE_SELECT); - if (GetPreviousTextCaretPosition() != gNamingScreenData->template->maxChars - 1) + if (GetPreviousTextCaretPosition() != sNamingScreen->template->maxChars - 1) return FALSE; else return TRUE; } -static void AddTextCharacter(u8 ch) +static void BufferCharacter(u8 ch) { - u8 index = GetTextCaretPosition(); - - gNamingScreenData->textBuffer[index] = ch; + u8 index = GetTextEntryPosition(); + sNamingScreen->textBuffer[index] = ch; } -static void sub_80E4BE4(void) +static void SaveInputText(void) { u8 i; - for (i = 0; i < gNamingScreenData->template->maxChars; i++) + for (i = 0; i < sNamingScreen->template->maxChars; i++) { - if (gNamingScreenData->textBuffer[i] != CHAR_SPACE && gNamingScreenData->textBuffer[i] != EOS) + if (sNamingScreen->textBuffer[i] != CHAR_SPACE && sNamingScreen->textBuffer[i] != EOS) { - StringCopyN(gNamingScreenData->destBuffer, gNamingScreenData->textBuffer, gNamingScreenData->template->maxChars + 1); + StringCopyN(sNamingScreen->destBuffer, sNamingScreen->textBuffer, sNamingScreen->template->maxChars + 1); break; } } } -static void choose_name_or_words_screen_load_bg_tile_patterns(void) +static void LoadGfx(void) { - LZ77UnCompWram(gNamingScreenMenu_Gfx, gNamingScreenData->tileBuffer); - LoadBgTiles(1, gNamingScreenData->tileBuffer, 0x600, 0); - LoadBgTiles(2, gNamingScreenData->tileBuffer, 0x600, 0); - LoadBgTiles(3, gNamingScreenData->tileBuffer, 0x600, 0); - LoadSpriteSheets(gUnknown_0858C1C8); - LoadSpritePalettes(gUnknown_0858C230); + LZ77UnCompWram(gNamingScreenMenu_Gfx, sNamingScreen->tileBuffer); + LoadBgTiles(1, sNamingScreen->tileBuffer, sizeof(sNamingScreen->tileBuffer), 0); + LoadBgTiles(2, sNamingScreen->tileBuffer, sizeof(sNamingScreen->tileBuffer), 0); + LoadBgTiles(3, sNamingScreen->tileBuffer, sizeof(sNamingScreen->tileBuffer), 0); + LoadSpriteSheets(sSpriteSheets); + LoadSpritePalettes(sSpritePalettes); } -static void sub_80E4CB8(void) +static void CreateHelperTasks(void) { - InputInit(); - sub_80E3920(); + CreateInputHandlerTask(); + CreateButtonFlashTask(); } -static void choose_name_or_words_screen_apply_bg_pals(void) +static void LoadPalettes(void) { LoadPalette(gNamingScreenMenu_Pal, 0, 0xC0); - LoadPalette(gUnknown_0858BD78, 0xA0, sizeof(gUnknown_0858BD78)); - LoadPalette(stdpal_get(2), 0xB0, 0x20); + LoadPalette(sKeyboard_Pal, 0xA0, sizeof(sKeyboard_Pal)); + LoadPalette(GetTextWindowPalette(2), 0xB0, 0x20); } -static void sub_80E4CF8(u8 bg, const void *src) +static void DrawBgTilemap(u8 bg, const void *src) { CopyToBgTilemapBuffer(bg, src, 0, 0); } -static void nullsub_10(u8 a1, u8 page) +static void NamingScreen_Dummy(u8 bg, u8 page) { } -static void sub_80E4D10(void) +static void DrawTextEntry(void) { u8 i; u8 temp[2]; - u16 unk2; - u8 maxChars = gNamingScreenData->template->maxChars; - u16 unk = gNamingScreenData->inputCharBaseXPos - 0x40; + u16 extraWidth; + u8 maxChars = sNamingScreen->template->maxChars; + u16 x = sNamingScreen->inputCharBaseXPos - 0x40; - FillWindowPixelBuffer(gNamingScreenData->windows[2], PIXEL_FILL(1)); + FillWindowPixelBuffer(sNamingScreen->windows[WIN_TEXT_ENTRY], PIXEL_FILL(1)); for (i = 0; i < maxChars; i++) { - temp[0] = gNamingScreenData->textBuffer[i]; + temp[0] = sNamingScreen->textBuffer[i]; temp[1] = gText_ExpandedPlaceholder_Empty[0]; - unk2 = (IsLetter(temp[0]) == TRUE) ? 2 : 0; + extraWidth = (IsWideLetter(temp[0]) == TRUE) ? 2 : 0; - AddTextPrinterParameterized(gNamingScreenData->windows[2], 1, temp, i * 8 + unk + unk2, 1, 0xFF, NULL); + AddTextPrinterParameterized(sNamingScreen->windows[WIN_TEXT_ENTRY], 1, temp, i * 8 + x + extraWidth, 1, 0xFF, NULL); } - sub_80E498C(); - CopyWindowToVram(gNamingScreenData->windows[2], 2); - PutWindowTilemap(gNamingScreenData->windows[2]); + TryDrawGenderIcon(); + CopyWindowToVram(sNamingScreen->windows[WIN_TEXT_ENTRY], 2); + PutWindowTilemap(sNamingScreen->windows[WIN_TEXT_ENTRY]); } struct TextColor // Needed because of alignment @@ -1704,77 +1870,77 @@ static const struct TextColor sTextColorStruct = static const u8 sFillValues[KBPAGE_COUNT] = { - [KBPAGE_LETTERS_LOWER] = PIXEL_FILL(0xE), - [KBPAGE_LETTERS_UPPER] = PIXEL_FILL(0xD), - [KBPAGE_SYMBOLS] = PIXEL_FILL(0xF) + [KBPAGE_LETTERS_LOWER] = PIXEL_FILL(14), + [KBPAGE_LETTERS_UPPER] = PIXEL_FILL(13), + [KBPAGE_SYMBOLS] = PIXEL_FILL(15) }; static const u8 *const sKeyboardTextColors[KBPAGE_COUNT] = { [KBPAGE_LETTERS_LOWER] = sTextColorStruct.colors[1], [KBPAGE_LETTERS_UPPER] = sTextColorStruct.colors[0], - [KBPAGE_SYMBOLS] = sTextColorStruct.colors[2] + [KBPAGE_SYMBOLS] = sTextColorStruct.colors[2] }; -static void sub_80E4DE4(u8 window, u8 page) +static void PrintKeyboardKeys(u8 window, u8 page) { u8 i; FillWindowPixelBuffer(window, sFillValues[page]); for (i = 0; i < KBROW_COUNT; i++) - { AddTextPrinterParameterized3(window, 1, 0, i * 16 + 1, sKeyboardTextColors[page], 0, sNamingScreenKeyboardText[page][i]); - } PutWindowTilemap(window); } -static const u8 *const gUnknown_0858BF98[] = +static const u8 *const sKeyboardPageTilemaps[] = { - gUnknown_08DD4620, - gUnknown_08DD46E0, - gUnknown_08DD47A0 + [KBPAGE_LETTERS_LOWER] = gUnknown_08DD4620, // upper + [KBPAGE_LETTERS_UPPER] = gUnknown_08DD46E0, // lower + [KBPAGE_SYMBOLS] = gUnknown_08DD47A0 // symbols }; -static void sub_80E4E5C(void) +// There are always 2 keyboard pages drawn, the current page and the one that will shown next if the player switches +// When the page switch is complete this function invisibly replaces the old page with the new next one +static void DrawKeyboardPageOnDeck(void) { - u8 unk1; - u8 unk2; - u8 unk3; + u8 bg; + u8 bg_; + u8 windowId; u8 bg1Priority = GetGpuReg(REG_OFFSET_BG1CNT) & 3; u8 bg2Priority = GetGpuReg(REG_OFFSET_BG2CNT) & 3; if (bg1Priority > bg2Priority) { - unk1 = 1; - unk2 = 1; - unk3 = gNamingScreenData->windows[0]; + bg = 1; + bg_ = 1; + windowId = sNamingScreen->windows[WIN_KB_PAGE_1]; } else { - unk1 = 2; - unk2 = 2; - unk3 = gNamingScreenData->windows[1]; + bg = 2; + bg_ = 2; + windowId = sNamingScreen->windows[WIN_KB_PAGE_2]; } - sub_80E4CF8(unk1, gUnknown_0858BF98[gNamingScreenData->currentPage]); - sub_80E4DE4(unk3, sub_80E3254()); - nullsub_10(unk1, sub_80E3254()); - CopyBgTilemapBufferToVram(unk2); + DrawBgTilemap(bg, sKeyboardPageTilemaps[sNamingScreen->currentPage]); + PrintKeyboardKeys(windowId, sub_80E3254()); + NamingScreen_Dummy(bg, sub_80E3254()); + CopyBgTilemapBufferToVram(bg_); } -static void sub_80E4EF0(void) +static void PrintControls(void) { const u8 color[3] = { TEXT_DYNAMIC_COLOR_6, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY }; - FillWindowPixelBuffer(gNamingScreenData->windows[4], PIXEL_FILL(15)); - AddTextPrinterParameterized3(gNamingScreenData->windows[4], 0, 2, 1, color, 0, gText_MoveOkBack); - PutWindowTilemap(gNamingScreenData->windows[4]); - CopyWindowToVram(gNamingScreenData->windows[4], 3); + FillWindowPixelBuffer(sNamingScreen->windows[WIN_BANNER], PIXEL_FILL(15)); + AddTextPrinterParameterized3(sNamingScreen->windows[WIN_BANNER], 0, 2, 1, color, 0, gText_MoveOkBack); + PutWindowTilemap(sNamingScreen->windows[WIN_BANNER]); + CopyWindowToVram(sNamingScreen->windows[WIN_BANNER], 3); } -static void sub_80E4F58(void) +static void CB2_NamingScreen(void) { RunTasks(); AnimateSprites(); @@ -1782,13 +1948,13 @@ static void sub_80E4F58(void) UpdatePaletteFade(); } -static void NamingScreen_TurnOffScreen(void) +static void NamingScreen_ResetVHBlank(void) { SetVBlankCallback(NULL); SetHBlankCallback(NULL); } -static void NamingScreen_InitDisplayMode(void) +static void NamingScreen_SetVBlank(void) { SetVBlankCallback(VBlankCB_NamingScreen); } @@ -1798,15 +1964,15 @@ static void VBlankCB_NamingScreen(void) LoadOam(); ProcessSpriteCopyRequests(); TransferPlttBuffer(); - SetGpuReg(REG_OFFSET_BG1VOFS, gNamingScreenData->bg1vOffset); - SetGpuReg(REG_OFFSET_BG2VOFS, gNamingScreenData->bg2vOffset); + SetGpuReg(REG_OFFSET_BG1VOFS, sNamingScreen->bg1vOffset); + SetGpuReg(REG_OFFSET_BG2VOFS, sNamingScreen->bg2vOffset); SetGpuReg(REG_OFFSET_BG1CNT, GetGpuReg(REG_OFFSET_BG1CNT) & 0xFFFC); - SetGpuRegBits(REG_OFFSET_BG1CNT, gNamingScreenData->bg1Priority); + SetGpuRegBits(REG_OFFSET_BG1CNT, sNamingScreen->bg1Priority); SetGpuReg(REG_OFFSET_BG2CNT, GetGpuReg(REG_OFFSET_BG2CNT) & 0xFFFC); - SetGpuRegBits(REG_OFFSET_BG2CNT, gNamingScreenData->bg2Priority); + SetGpuRegBits(REG_OFFSET_BG2CNT, sNamingScreen->bg2Priority); } -static void sub_80E501C(void) +static void NamingScreen_ShowBgs(void) { ShowBg(0); ShowBg(1); @@ -1814,7 +1980,8 @@ static void sub_80E501C(void) ShowBg(3); } -static bool8 IsLetter(u8 character) +// Always false (presumably for non-latin languages) +static bool8 IsWideLetter(u8 character) { u8 i; @@ -1826,69 +1993,70 @@ static bool8 IsLetter(u8 character) return FALSE; } -static void sub_80E5074(void) +// Debug? Unused, and arguments aren't sensible for non-player screens. +static void Debug_NamingScreenPlayer(void) { - DoNamingScreen(0, gSaveBlock2Ptr->playerName, gSaveBlock2Ptr->playerGender, 0, 0, CB2_ReturnToFieldWithOpenMenu); + DoNamingScreen(NAMING_SCREEN_PLAYER, gSaveBlock2Ptr->playerName, gSaveBlock2Ptr->playerGender, 0, 0, CB2_ReturnToFieldWithOpenMenu); } -static void sub_80E509C(void) +static void Debug_NamingScreenBox(void) { - DoNamingScreen(1, gSaveBlock2Ptr->playerName, gSaveBlock2Ptr->playerGender, 0, 0, CB2_ReturnToFieldWithOpenMenu); + DoNamingScreen(NAMING_SCREEN_BOX, gSaveBlock2Ptr->playerName, gSaveBlock2Ptr->playerGender, 0, 0, CB2_ReturnToFieldWithOpenMenu); } -static void sub_80E50C4(void) +static void Debug_NamingScreenCaughtMon(void) { - DoNamingScreen(2, gSaveBlock2Ptr->playerName, gSaveBlock2Ptr->playerGender, 0, 0, CB2_ReturnToFieldWithOpenMenu); + DoNamingScreen(NAMING_SCREEN_CAUGHT_MON, gSaveBlock2Ptr->playerName, gSaveBlock2Ptr->playerGender, 0, 0, CB2_ReturnToFieldWithOpenMenu); } -static void sub_80E50EC(void) +static void Debug_NamingScreenNickname(void) { - DoNamingScreen(3, gSaveBlock2Ptr->playerName, gSaveBlock2Ptr->playerGender, 0, 0, CB2_ReturnToFieldWithOpenMenu); + DoNamingScreen(NAMING_SCREEN_NICKNAME, gSaveBlock2Ptr->playerName, gSaveBlock2Ptr->playerGender, 0, 0, CB2_ReturnToFieldWithOpenMenu); } //-------------------------------------------------- // Forward-declared variables //-------------------------------------------------- -static const struct NamingScreenTemplate playerNamingScreenTemplate = +static const struct NamingScreenTemplate sPlayerNamingScreenTemplate = { - .copyExistingString = 0, + .copyExistingString = FALSE, .maxChars = 7, .iconFunction = 1, - .addGenderIcon = 0, + .addGenderIcon = FALSE, .initialPage = KBPAGE_LETTERS_UPPER, .unused = 35, .title = gText_YourName, }; -static const struct NamingScreenTemplate pcBoxNamingTemplate = +static const struct NamingScreenTemplate sPCBoxNamingTemplate = { - .copyExistingString = 0, + .copyExistingString = FALSE, .maxChars = 8, .iconFunction = 2, - .addGenderIcon = 0, + .addGenderIcon = FALSE, .initialPage = KBPAGE_LETTERS_UPPER, .unused = 19, .title = gText_BoxName, }; -static const struct NamingScreenTemplate monNamingScreenTemplate = +static const struct NamingScreenTemplate sMonNamingScreenTemplate = { - .copyExistingString = 0, + .copyExistingString = FALSE, .maxChars = 10, .iconFunction = 3, - .addGenderIcon = 1, + .addGenderIcon = TRUE, .initialPage = KBPAGE_LETTERS_UPPER, .unused = 35, .title = gText_PkmnsNickname, }; -static const struct NamingScreenTemplate wandaWordsScreenTemplate = +static const struct NamingScreenTemplate sWaldaWordsScreenTemplate = { - .copyExistingString = 1, + .copyExistingString = TRUE, .maxChars = 15, .iconFunction = 4, - .addGenderIcon = 0, + .addGenderIcon = FALSE, .initialPage = KBPAGE_LETTERS_UPPER, .unused = 11, .title = gText_TellHimTheWords, @@ -1896,14 +2064,14 @@ static const struct NamingScreenTemplate wandaWordsScreenTemplate = static const struct NamingScreenTemplate *const sNamingScreenTemplates[] = { - &playerNamingScreenTemplate, - &pcBoxNamingTemplate, - &monNamingScreenTemplate, - &monNamingScreenTemplate, - &wandaWordsScreenTemplate, + [NAMING_SCREEN_PLAYER] = &sPlayerNamingScreenTemplate, + [NAMING_SCREEN_BOX] = &sPCBoxNamingTemplate, + [NAMING_SCREEN_CAUGHT_MON] = &sMonNamingScreenTemplate, + [NAMING_SCREEN_NICKNAME] = &sMonNamingScreenTemplate, + [NAMING_SCREEN_WALDA] = &sWaldaWordsScreenTemplate, }; -const struct OamData gOamData_858BFEC = +static const struct OamData sOam_8x8 = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -1917,7 +2085,7 @@ const struct OamData gOamData_858BFEC = .paletteNum = 0, }; -const struct OamData gOamData_858BFF4 = +static const struct OamData sOam_16x16 = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -1931,7 +2099,7 @@ const struct OamData gOamData_858BFF4 = .paletteNum = 0, }; -const struct OamData gOamData_858BFFC = +static const struct OamData sOam_32x16 = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -1945,7 +2113,7 @@ const struct OamData gOamData_858BFFC = .paletteNum = 0, }; -static const struct Subsprite gUnknown_0858C004[] = +static const struct Subsprite sSubsprites_PageSwitchBg[] = { { .x = -20, @@ -2013,7 +2181,7 @@ static const struct Subsprite gUnknown_0858C004[] = } }; -static const struct Subsprite gUnknown_0858C024[] = +static const struct Subsprite sSubsprites_PageSwitchText[] = { { .x = -12, @@ -2033,7 +2201,7 @@ static const struct Subsprite gUnknown_0858C024[] = } }; -static const struct Subsprite gUnknown_0858C02C[] = +static const struct Subsprite sSubsprites_Button[] = { { .x = -20, @@ -2085,7 +2253,7 @@ static const struct Subsprite gUnknown_0858C02C[] = } }; -static const struct Subsprite gUnknown_0858C044[] = +static const struct Subsprite sSubsprites_PCIcon[] = { { .x = -8, @@ -2113,32 +2281,32 @@ static const struct Subsprite gUnknown_0858C044[] = } }; -static const struct SubspriteTable gUnknown_0858C050[] = +static const struct SubspriteTable sSubspriteTable_PageSwitchBg[] = { - {ARRAY_COUNT(gUnknown_0858C004), gUnknown_0858C004} + {ARRAY_COUNT(sSubsprites_PageSwitchBg), sSubsprites_PageSwitchBg} }; -static const struct SubspriteTable gUnknown_0858C058[] = +static const struct SubspriteTable sSubspriteTable_PageSwitchText[] = { - {ARRAY_COUNT(gUnknown_0858C024), gUnknown_0858C024}, - {ARRAY_COUNT(gUnknown_0858C024), gUnknown_0858C024}, - {ARRAY_COUNT(gUnknown_0858C024), gUnknown_0858C024} + {ARRAY_COUNT(sSubsprites_PageSwitchText), sSubsprites_PageSwitchText}, + {ARRAY_COUNT(sSubsprites_PageSwitchText), sSubsprites_PageSwitchText}, + {ARRAY_COUNT(sSubsprites_PageSwitchText), sSubsprites_PageSwitchText} }; -static const struct SubspriteTable gUnknown_0858C070[] = +static const struct SubspriteTable sSubspriteTable_Button[] = { - {ARRAY_COUNT(gUnknown_0858C02C), gUnknown_0858C02C} + {ARRAY_COUNT(sSubsprites_Button), sSubsprites_Button} }; -static const struct SubspriteTable gUnknown_0858C078[] = +static const struct SubspriteTable sSubspriteTable_PCIcon[] = { - {ARRAY_COUNT(gUnknown_0858C044), gUnknown_0858C044} + {ARRAY_COUNT(sSubsprites_PCIcon), sSubsprites_PCIcon} }; -static const struct SpriteFrameImage gUnknown_0858C080[] = +static const struct SpriteFrameImage sImageTable_PCIcon[] = { - {gSpriteImage_858BBF8, sizeof(gSpriteImage_858BBF8)}, - {gSpriteImage_858BCB8, sizeof(gSpriteImage_858BCB8)}, + {sPCIconOn_Gfx, sizeof(sPCIconOn_Gfx)}, + {sPCIconOff_Gfx, sizeof(sPCIconOff_Gfx)}, }; static const union AnimCmd gSpriteAnim_858C090[] = @@ -2154,7 +2322,7 @@ static const union AnimCmd gSpriteAnim_858C098[] = ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_858C0A4[] = +static const union AnimCmd sAnim_PCIcon[] = { ANIMCMD_FRAME(0, 2), ANIMCMD_FRAME(1, 2), @@ -2172,106 +2340,106 @@ static const union AnimCmd *const gSpriteAnimTable_858C0B4[] = gSpriteAnim_858C098 }; -static const union AnimCmd *const gSpriteAnimTable_858C0BC[] = +static const union AnimCmd *const sAnims_PCIcon[] = { - gSpriteAnim_858C0A4 + sAnim_PCIcon }; -static const struct SpriteTemplate gUnknown_0858C0C0 = +static const struct SpriteTemplate sSpriteTemplate_PageSwitchBg = { - .tileTag = 0x0002, - .paletteTag = 0x0004, - .oam = &gOamData_858BFEC, + .tileTag = GFXTAG_PAGE_SWITCH_BG, + .paletteTag = PALTAG_PAGE_SWITCH, + .oam = &sOam_8x8, .anims = gSpriteAnimTable_858C0B0, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80E4084 + .callback = SpriteCB_PageSwitch }; -static const struct SpriteTemplate gUnknown_0858C0D8 = +static const struct SpriteTemplate sSpriteTemplate_PageSwitchButton = { - .tileTag = 0x0003, - .paletteTag = 0x0001, - .oam = &gOamData_858BFFC, + .tileTag = GFXTAG_PAGE_SWITCH_BUTTON, + .paletteTag = PALTAG_1, + .oam = &sOam_32x16, .anims = gSpriteAnimTable_858C0B0, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct SpriteTemplate gUnknown_0858C0F0 = +static const struct SpriteTemplate sSpriteTemplate_PageSwitchText = { - .tileTag = 0x0004, - .paletteTag = 0x0004, - .oam = &gOamData_858BFEC, + .tileTag = GFXTAG_PAGE_SWITCH_UPPER, + .paletteTag = PALTAG_PAGE_SWITCH, + .oam = &sOam_8x8, .anims = gSpriteAnimTable_858C0B0, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct SpriteTemplate gUnknown_0858C108 = +static const struct SpriteTemplate sSpriteTemplate_BackButton = { - .tileTag = 0x0000, - .paletteTag = 0x0006, - .oam = &gOamData_858BFEC, + .tileTag = GFXTAG_BACK_BUTTON, + .paletteTag = PALTAG_BACK_BUTTON, + .oam = &sOam_8x8, .anims = gSpriteAnimTable_858C0B0, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct SpriteTemplate gUnknown_0858C120 = +static const struct SpriteTemplate sSpriteTemplate_OkButton = { - .tileTag = 0x0001, - .paletteTag = 0x0007, - .oam = &gOamData_858BFEC, + .tileTag = GFXTAG_OK_BUTTON, + .paletteTag = PALTAG_OK_BUTTON, + .oam = &sOam_8x8, .anims = gSpriteAnimTable_858C0B0, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct SpriteTemplate gUnknown_0858C138 = +static const struct SpriteTemplate sSpriteTemplate_Cursor = { - .tileTag = 0x0007, - .paletteTag = 0x0005, - .oam = &gOamData_858BFF4, + .tileTag = GFXTAG_CURSOR, + .paletteTag = PALTAG_CURSOR, + .oam = &sOam_16x16, .anims = gSpriteAnimTable_858C0B4, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80E3B30 + .callback = SpriteCB_Cursor }; static const struct SpriteTemplate sSpriteTemplate_InputArrow = { - .tileTag = 0x000A, - .paletteTag = 0x0003, - .oam = &gOamData_858BFEC, + .tileTag = GFXTAG_INPUT_ARROW, + .paletteTag = PALTAG_3, + .oam = &sOam_8x8, .anims = gSpriteAnimTable_858C0B0, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80E3C20 + .callback = SpriteCB_InputArrow }; static const struct SpriteTemplate sSpriteTemplate_Underscore = { - .tileTag = 0x000B, - .paletteTag = 0x0003, - .oam = &gOamData_858BFEC, + .tileTag = GFXTAG_UNDERSCORE, + .paletteTag = PALTAG_3, + .oam = &sOam_8x8, .anims = gSpriteAnimTable_858C0B0, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80E3C6C + .callback = SpriteCB_Underscore }; -static const struct SpriteTemplate gUnknown_0858C180 = +static const struct SpriteTemplate sSpriteTemplate_PCIcon = { .tileTag = 0xFFFF, - .paletteTag = 0x0000, - .oam = &gOamData_858BFEC, - .anims = gSpriteAnimTable_858C0BC, - .images = gUnknown_0858C080, + .paletteTag = PALTAG_PC_ICON, + .oam = &sOam_8x8, + .anims = sAnims_PCIcon, + .images = sImageTable_PCIcon, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; @@ -2301,34 +2469,34 @@ static const u8* const sNamingScreenKeyboardText[KBPAGE_COUNT][KBROW_COUNT] = }, }; -static const struct SpriteSheet gUnknown_0858C1C8[] = +static const struct SpriteSheet sSpriteSheets[] = { - {gNamingScreenRWindow_Gfx + 0x280, 0x1E0, 0x0000}, - {gNamingScreenRWindow_Gfx + 0x460, 0x1E0, 0x0001}, - {gNamingScreenRWindow_Gfx, 0x280, 0x0002}, - {gNamingScreenKeyboardButton_Gfx + 0x20, 0x100, 0x0003}, - {gNamingScreenROptions_Gfx, 0x060, 0x0004}, - {gNamingScreenROptions_Gfx + 0xA0, 0x060, 0x0005}, - {gNamingScreenROptions_Gfx + 0x140, 0x060, 0x0006}, - {gNamingScreenCursor_Gfx, 0x080, 0x0007}, - {gNamingScreenCursor_Gfx + 0xA0, 0x080, 0x0008}, - {gNamingScreenCursor_Gfx + 0x140, 0x080, 0x0009}, - {gNamingScreenRightPointingTriangleTiles, 0x020, 0x000A}, - {gNamingScreenUnderscoreTiles, 0x020, 0x000B}, - {NULL} + {gNamingScreenRWindow_Gfx + 0x280, 0x1E0, GFXTAG_BACK_BUTTON}, + {gNamingScreenRWindow_Gfx + 0x460, 0x1E0, GFXTAG_OK_BUTTON}, + {gNamingScreenRWindow_Gfx, 0x280, GFXTAG_PAGE_SWITCH_BG}, + {gNamingScreenPageButton_Gfx + 0x20, 0x100, GFXTAG_PAGE_SWITCH_BUTTON}, + {gNamingScreenROptions_Gfx, 0x060, GFXTAG_PAGE_SWITCH_UPPER}, + {gNamingScreenROptions_Gfx + 0xA0, 0x060, GFXTAG_PAGE_SWITCH_LOWER}, + {gNamingScreenROptions_Gfx + 0x140, 0x060, GFXTAG_PAGE_SWITCH_OTHERS}, + {gNamingScreenCursor_Gfx, 0x080, GFXTAG_CURSOR}, + {gNamingScreenCursor_Gfx + 0xA0, 0x080, GFXTAG_CURSOR_SQUISHED}, + {gNamingScreenCursor_Gfx + 0x140, 0x080, GFXTAG_CURSOR_FILLED}, + {gNamingScreenInputArrow_Gfx, 0x020, GFXTAG_INPUT_ARROW}, + {gNamingScreenUnderscore_Gfx, 0x020, GFXTAG_UNDERSCORE}, + {} }; -static const struct SpritePalette gUnknown_0858C230[] = +static const struct SpritePalette sSpritePalettes[] = { - {gNamingScreenMenu_Pal, 0x0000}, - {gNamingScreenMenu_Pal + 0x10, 0x0001}, - {gNamingScreenMenu_Pal + 0x20, 0x0002}, - {gNamingScreenMenu_Pal + 0x30, 0x0003}, - {gNamingScreenMenu_Pal + 0x40, 0x0004}, - {gNamingScreenMenu_Pal + 0x50, 0x0005}, - {gNamingScreenMenu_Pal + 0x40, 0x0006}, - {gNamingScreenMenu_Pal + 0x40, 0x0007}, - {NULL} + {gNamingScreenMenu_Pal, PALTAG_PC_ICON}, + {gNamingScreenMenu_Pal + 0x10, PALTAG_1}, // upper switch button + {gNamingScreenMenu_Pal + 0x20, PALTAG_2}, // lower switch button + {gNamingScreenMenu_Pal + 0x30, PALTAG_3}, // symbols switch button + {gNamingScreenMenu_Pal + 0x40, PALTAG_PAGE_SWITCH}, + {gNamingScreenMenu_Pal + 0x50, PALTAG_CURSOR}, + {gNamingScreenMenu_Pal + 0x40, PALTAG_BACK_BUTTON}, + {gNamingScreenMenu_Pal + 0x40, PALTAG_OK_BUTTON}, + {} }; diff --git a/src/pokemon_storage_system.c b/src/pokemon_storage_system.c index 59dc0acced..2efac0b8c7 100644 --- a/src/pokemon_storage_system.c +++ b/src/pokemon_storage_system.c @@ -8097,7 +8097,7 @@ static bool8 sub_80D0344(void) if (!IsDma3ManagerBusyWithBgCopy()) { sub_80CFE84(); - LoadPalette(stdpal_get(3), 0xD0, 0x20); + LoadPalette(GetTextWindowPalette(3), 0xD0, 0x20); ShowBg(0); return FALSE; } @@ -8203,7 +8203,7 @@ static bool8 sub_80D04C8(void) case 3: if (!IsDma3ManagerBusyWithBgCopy()) { - LoadPalette(stdpal_get(3), 0xD0, 0x20); + LoadPalette(GetTextWindowPalette(3), 0xD0, 0x20); sub_80CFE84(); ShowBg(0); return FALSE; diff --git a/src/text_window.c b/src/text_window.c index 98fc09e877..864bd08316 100644 --- a/src/text_window.c +++ b/src/text_window.c @@ -49,7 +49,7 @@ static const u16 sTextWindowFrame18_Pal[] = INCBIN_U16("graphics/text_window/18. static const u16 sTextWindowFrame19_Pal[] = INCBIN_U16("graphics/text_window/19.gbapal"); static const u16 sTextWindowFrame20_Pal[] = INCBIN_U16("graphics/text_window/20.gbapal"); -static const u16 sUnknown_0851017C[][16] = +static const u16 sTextWindowPalettes[][16] = { INCBIN_U16("graphics/text_window/message_box.gbapal"), INCBIN_U16("graphics/text_window/text_pal1.gbapal"), @@ -160,7 +160,7 @@ void rbox_fill_rectangle(u8 windowId) FillBgTilemapBufferRect(bgLayer, 0, tilemapLeft - 1, tilemapTop - 1, width + 2, height + 2, 0x11); } -const u16 *stdpal_get(u8 id) +const u16 *GetTextWindowPalette(u8 id) { switch (id) { @@ -182,7 +182,7 @@ const u16 *stdpal_get(u8 id) break; } - return (const u16 *)(sUnknown_0851017C) + id; + return (const u16 *)(sTextWindowPalettes) + id; } const u16 *GetOverworldTextboxPalettePtr(void) diff --git a/src/tv.c b/src/tv.c index 0e419a99f3..0444912f0c 100644 --- a/src/tv.c +++ b/src/tv.c @@ -3442,7 +3442,7 @@ void ChangePokemonNickname(void) GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_NICKNAME, gStringVar3); GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_NICKNAME, gStringVar2); - DoNamingScreen(3, gStringVar2, GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_SPECIES, NULL), GetMonGender(&gPlayerParty[gSpecialVar_0x8004]), GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_PERSONALITY, NULL), ChangePokemonNickname_CB); + DoNamingScreen(NAMING_SCREEN_NICKNAME, gStringVar2, GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_SPECIES, NULL), GetMonGender(&gPlayerParty[gSpecialVar_0x8004]), GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_PERSONALITY, NULL), ChangePokemonNickname_CB); } void ChangePokemonNickname_CB(void) @@ -3458,7 +3458,7 @@ void ChangeBoxPokemonNickname(void) boxMon = GetBoxedMonPtr(gSpecialVar_MonBoxId, gSpecialVar_MonBoxPos); GetBoxMonData(boxMon, MON_DATA_NICKNAME, gStringVar3); GetBoxMonData(boxMon, MON_DATA_NICKNAME, gStringVar2); - DoNamingScreen(3, gStringVar2, GetBoxMonData(boxMon, MON_DATA_SPECIES, NULL), GetBoxMonGender(boxMon), GetBoxMonData(boxMon, MON_DATA_PERSONALITY, NULL), ChangeBoxPokemonNickname_CB); + DoNamingScreen(NAMING_SCREEN_NICKNAME, gStringVar2, GetBoxMonData(boxMon, MON_DATA_SPECIES, NULL), GetBoxMonGender(boxMon), GetBoxMonData(boxMon, MON_DATA_PERSONALITY, NULL), ChangeBoxPokemonNickname_CB); } void ChangeBoxPokemonNickname_CB(void) From 82e322bb96e4f7ecd59d536bdb8315edab61f9b6 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Fri, 7 Aug 2020 20:09:57 -0400 Subject: [PATCH 047/101] Finish documenting naming screen --- .../background.bin} | Bin ..._pointing_triangle.png => input_arrow.png} | Bin .../keyboard_lower.bin} | Bin .../keyboard_symbols.bin} | Bin .../keyboard_upper.bin} | Bin .../naming_screen/pc_icon/{0.png => off.png} | Bin .../naming_screen/pc_icon/{1.png => on.png} | Bin include/graphics.h | 8 +- src/graphics.c | 11 +- src/naming_screen.c | 770 ++++++++++-------- 10 files changed, 428 insertions(+), 361 deletions(-) rename graphics/{unknown/unknown_DD4544.bin => naming_screen/background.bin} (100%) rename graphics/naming_screen/{right_pointing_triangle.png => input_arrow.png} (100%) rename graphics/{unknown/unknown_DD46E0.bin => naming_screen/keyboard_lower.bin} (100%) rename graphics/{unknown/unknown_DD47A0.bin => naming_screen/keyboard_symbols.bin} (100%) rename graphics/{unknown/unknown_DD4620.bin => naming_screen/keyboard_upper.bin} (100%) rename graphics/naming_screen/pc_icon/{0.png => off.png} (100%) rename graphics/naming_screen/pc_icon/{1.png => on.png} (100%) diff --git a/graphics/unknown/unknown_DD4544.bin b/graphics/naming_screen/background.bin similarity index 100% rename from graphics/unknown/unknown_DD4544.bin rename to graphics/naming_screen/background.bin diff --git a/graphics/naming_screen/right_pointing_triangle.png b/graphics/naming_screen/input_arrow.png similarity index 100% rename from graphics/naming_screen/right_pointing_triangle.png rename to graphics/naming_screen/input_arrow.png diff --git a/graphics/unknown/unknown_DD46E0.bin b/graphics/naming_screen/keyboard_lower.bin similarity index 100% rename from graphics/unknown/unknown_DD46E0.bin rename to graphics/naming_screen/keyboard_lower.bin diff --git a/graphics/unknown/unknown_DD47A0.bin b/graphics/naming_screen/keyboard_symbols.bin similarity index 100% rename from graphics/unknown/unknown_DD47A0.bin rename to graphics/naming_screen/keyboard_symbols.bin diff --git a/graphics/unknown/unknown_DD4620.bin b/graphics/naming_screen/keyboard_upper.bin similarity index 100% rename from graphics/unknown/unknown_DD4620.bin rename to graphics/naming_screen/keyboard_upper.bin diff --git a/graphics/naming_screen/pc_icon/0.png b/graphics/naming_screen/pc_icon/off.png similarity index 100% rename from graphics/naming_screen/pc_icon/0.png rename to graphics/naming_screen/pc_icon/off.png diff --git a/graphics/naming_screen/pc_icon/1.png b/graphics/naming_screen/pc_icon/on.png similarity index 100% rename from graphics/naming_screen/pc_icon/1.png rename to graphics/naming_screen/pc_icon/on.png diff --git a/include/graphics.h b/include/graphics.h index 7675df2673..1aa24d0524 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -4069,10 +4069,10 @@ extern const u8 gHealthboxElementsGfxTable[][32]; extern const u16 gNamingScreenMenu_Pal[]; extern const u32 gNamingScreenMenu_Gfx[]; -extern const u32 gUnknown_08DD4544[]; -extern const u8 gUnknown_08DD4620[]; -extern const u8 gUnknown_08DD46E0[]; -extern const u8 gUnknown_08DD47A0[]; +extern const u32 gNamingScreenBackground_Tilemap[]; +extern const u8 gNamingScreenKeyboardUpper_Tilemap[]; +extern const u8 gNamingScreenKeyboardLower_Tilemap[]; +extern const u8 gNamingScreenKeyboardSymbols_Tilemap[]; extern const u8 gNamingScreenRWindow_Gfx[]; extern const u8 gNamingScreenPageButton_Gfx[]; extern const u8 gNamingScreenROptions_Gfx[]; diff --git a/src/graphics.c b/src/graphics.c index b857b8d70a..50bf3e0887 100644 --- a/src/graphics.c +++ b/src/graphics.c @@ -1436,13 +1436,12 @@ const u8 gNamingScreenRWindow_Gfx[] = INCBIN_U8("graphics/naming_screen/rwindow. const u8 gNamingScreenROptions_Gfx[] = INCBIN_U8("graphics/naming_screen/roptions.4bpp"); const u8 gNamingScreenCursor_Gfx[] = INCBIN_U8("graphics/naming_screen/cursor.4bpp"); const u8 gNamingScreenPageButton_Gfx[] = INCBIN_U8("graphics/naming_screen/page_button.4bpp"); -const u8 gNamingScreenInputArrow_Gfx[] = INCBIN_U8("graphics/naming_screen/right_pointing_triangle.4bpp"); +const u8 gNamingScreenInputArrow_Gfx[] = INCBIN_U8("graphics/naming_screen/input_arrow.4bpp"); const u8 gNamingScreenUnderscore_Gfx[] = INCBIN_U8("graphics/naming_screen/underscore.4bpp"); - -const u32 gUnknown_08DD4544[] = INCBIN_U32("graphics/unknown/unknown_DD4544.bin.lz"); -const u32 gUnknown_08DD4620[] = INCBIN_U32("graphics/unknown/unknown_DD4620.bin.lz"); -const u32 gUnknown_08DD46E0[] = INCBIN_U32("graphics/unknown/unknown_DD46E0.bin.lz"); -const u32 gUnknown_08DD47A0[] = INCBIN_U32("graphics/unknown/unknown_DD47A0.bin.lz"); +const u32 gNamingScreenBackground_Tilemap[] = INCBIN_U32("graphics/naming_screen/background.bin.lz"); +const u32 gNamingScreenKeyboardUpper_Tilemap[] = INCBIN_U32("graphics/naming_screen/keyboard_upper.bin.lz"); +const u32 gNamingScreenKeyboardLower_Tilemap[] = INCBIN_U32("graphics/naming_screen/keyboard_lower.bin.lz"); +const u32 gNamingScreenKeyboardSymbols_Tilemap[] = INCBIN_U32("graphics/naming_screen/keyboard_symbols.bin.lz"); // union room chat const u16 gUnionRoomChat_Background_Pal[] = INCBIN_U16("graphics/union_room_chat/background.gbapal"); diff --git a/src/naming_screen.c b/src/naming_screen.c index da5a7f1211..4ed9d78d0c 100644 --- a/src/naming_screen.c +++ b/src/naming_screen.c @@ -47,11 +47,11 @@ enum { enum { GFXTAG_BACK_BUTTON, GFXTAG_OK_BUTTON, - GFXTAG_PAGE_SWITCH_BG, - GFXTAG_PAGE_SWITCH_BUTTON, - GFXTAG_PAGE_SWITCH_UPPER, - GFXTAG_PAGE_SWITCH_LOWER, - GFXTAG_PAGE_SWITCH_OTHERS, + GFXTAG_PAGE_SWAP_FRAME, + GFXTAG_PAGE_SWAP_BUTTON, + GFXTAG_PAGE_SWAP_UPPER, + GFXTAG_PAGE_SWAP_LOWER, + GFXTAG_PAGE_SWAP_OTHERS, GFXTAG_CURSOR, GFXTAG_CURSOR_SQUISHED, GFXTAG_CURSOR_FILLED, @@ -61,10 +61,10 @@ enum { enum { PALTAG_PC_ICON, - PALTAG_1, - PALTAG_2, - PALTAG_3, - PALTAG_PAGE_SWITCH, + PALTAG_PAGE_SWAP_UPPER, + PALTAG_PAGE_SWAP_LOWER, + PALTAG_PAGE_SWAP_OTHERS, + PALTAG_PAGE_SWAP, PALTAG_CURSOR, PALTAG_BACK_BUTTON, PALTAG_OK_BUTTON, @@ -72,55 +72,70 @@ enum { enum { WIN_KB_PAGE_1, // Which of these two windows is in front is cycled as the player swaps - WIN_KB_PAGE_2, // Initiall WIN_KB_PAGE_1 is in front, with WIN_KB_PAGE_2 on deck + WIN_KB_PAGE_2, // Initially WIN_KB_PAGE_1 is in front, with WIN_KB_PAGE_2 on deck WIN_TEXT_ENTRY, WIN_TEXT_ENTRY_BOX, WIN_BANNER, WIN_COUNT, }; -enum -{ - KBPAGE_LETTERS_LOWER, - KBPAGE_LETTERS_UPPER, +// The constants for the pages are needlessly complicated because GF didn't keep the indexing order consistent +// This set is used for sNamingScreen->currentPage. It uses the order that the pages are cycled in +enum { KBPAGE_SYMBOLS, - KBPAGE_COUNT, + KBPAGE_LETTERS_UPPER, + KBPAGE_LETTERS_LOWER, + KBPAGE_COUNT, }; -enum -{ +// This set is used for initializing a page's keyboard text and getting its number of columns +enum { + KEYBOARD_LETTERS_LOWER, + KEYBOARD_LETTERS_UPPER, + KEYBOARD_SYMBOLS, +}; + +// This set is used for getting the gfx/pal tags of the page's swap button +enum { + PAGE_SWAP_UPPER, + PAGE_SWAP_OTHERS, + PAGE_SWAP_LOWER, +}; + +enum { KEY_ROLE_CHAR, KEY_ROLE_PAGE, KEY_ROLE_BACKSPACE, KEY_ROLE_OK, }; -enum -{ +enum { BUTTON_PAGE, BUTTON_BACK, BUTTON_OK, BUTTON_COUNT, }; -enum -{ - STATE_BEGIN_FADE_IN, +// states for Task_NamingScreen +enum { + STATE_FADE_IN, STATE_WAIT_FADE_IN, STATE_HANDLE_INPUT, STATE_MOVE_TO_OK_BUTTON, STATE_START_PAGE_SWAP, STATE_WAIT_PAGE_SWAP, - STATE_6, - STATE_UPDATE_SENT_TO_PC_MESSAGE, - STATE_BEGIN_FADE_OUT, + STATE_PRESSED_OK, + STATE_WAIT_SENT_TO_PC_MESSAGE, + STATE_FADE_OUT, + STATE_EXIT, }; +// sates for Task_HandleInput enum { INPUT_STATE_DISABLED, INPUT_STATE_ENABLED, - INPUT_STATE_2, + INPUT_STATE_OVERRIDE, }; struct NamingScreenTemplate @@ -152,7 +167,7 @@ struct NamingScreenData u8 bgToHide; u8 currentPage; u8 cursorSpriteId; - u8 selectBtnFrameSpriteId; + u8 swapBtnFrameSpriteId; u8 keyRepeatStartDelayCopy; const struct NamingScreenTemplate *template; u8 templateNum; @@ -175,8 +190,8 @@ extern const u8 gText_TellHimTheWords[]; // start of .rodata -static const u8 sPCIconOn_Gfx[] = INCBIN_U8("graphics/naming_screen/pc_icon/0.4bpp"); -static const u8 sPCIconOff_Gfx[] = INCBIN_U8("graphics/naming_screen/pc_icon/1.4bpp"); +static const u8 sPCIconOff_Gfx[] = INCBIN_U8("graphics/naming_screen/pc_icon/off.4bpp"); +static const u8 sPCIconOn_Gfx[] = INCBIN_U8("graphics/naming_screen/pc_icon/on.4bpp"); static const u16 sKeyboard_Pal[] = INCBIN_U16("graphics/naming_screen/keyboard.gbapal"); static const u16 sUnused_Pal[] = INCBIN_U16("graphics/naming_screen/unused.gbapal"); @@ -285,25 +300,25 @@ static const u8 sKeyboardChars[KBPAGE_COUNT * KBROW_COUNT * KBCOL_COUNT] = __( "…“”‘' "); static const u8 sPageColumnCounts[KBPAGE_COUNT] = { - [KBPAGE_LETTERS_LOWER] = KBCOL_COUNT, - [KBPAGE_LETTERS_UPPER] = KBCOL_COUNT, - [KBPAGE_SYMBOLS] = 6 + [KEYBOARD_LETTERS_LOWER] = KBCOL_COUNT, + [KEYBOARD_LETTERS_UPPER] = KBCOL_COUNT, + [KEYBOARD_SYMBOLS] = 6 }; static const u8 sPageColumnXPos[KBPAGE_COUNT * KBCOL_COUNT] = { - 0, 12, 24, 56, 68, 80, 92, 123, // KBPAGE_LETTERS_LOWER - 0, 12, 24, 56, 68, 80, 92, 123, // KBPAGE_LETTERS_UPPER - 0, 22, 44, 66, 88, 110 // KBPAGE_SYMBOLS + 0, 12, 24, 56, 68, 80, 92, 123, // KEYBOARD_LETTERS_LOWER + 0, 12, 24, 56, 68, 80, 92, 123, // KEYBOARD_LETTERS_UPPER + 0, 22, 44, 66, 88, 110 // KEYBOARD_SYMBOLS }; // forward declarations static const struct NamingScreenTemplate *const sNamingScreenTemplates[]; -static const struct SubspriteTable sSubspriteTable_PageSwitchBg[]; -static const struct SubspriteTable sSubspriteTable_PageSwitchText[]; +static const struct SubspriteTable sSubspriteTable_PageSwapFrame[]; +static const struct SubspriteTable sSubspriteTable_PageSwapText[]; static const struct SubspriteTable sSubspriteTable_Button[]; static const struct SubspriteTable sSubspriteTable_PCIcon[]; -static const struct SpriteTemplate sSpriteTemplate_PageSwitchBg; -static const struct SpriteTemplate sSpriteTemplate_PageSwitchButton; -static const struct SpriteTemplate sSpriteTemplate_PageSwitchText; +static const struct SpriteTemplate sSpriteTemplate_PageSwapFrame; +static const struct SpriteTemplate sSpriteTemplate_PageSwapButton; +static const struct SpriteTemplate sSpriteTemplate_PageSwapText; static const struct SpriteTemplate sSpriteTemplate_BackButton; static const struct SpriteTemplate sSpriteTemplate_OkButton; static const struct SpriteTemplate sSpriteTemplate_Cursor; @@ -323,11 +338,11 @@ static bool8 MainState_FadeIn(void); static bool8 MainState_WaitFadeIn(void); static bool8 MainState_HandleInput(void); static bool8 MainState_MoveToOKButton(void); -static bool8 MainState_6(void); +static bool8 MainState_PressedOKButton(void); static bool8 MainState_FadeOut(void); static bool8 MainState_Exit(void); static void DisplaySentToPCMessage(void); -static bool8 MainState_7(void); +static bool8 MainState_WaitSentToPCMessage(void); static bool8 MainState_StartPageSwap(void); static bool8 MainState_WaitPageSwap(void); static void StartPageSwapAnim(void); @@ -347,14 +362,14 @@ static void SetCursorInvisibility(u8); static void SetCursorFlashing(bool8); static u8 IsCursorAnimFinished(void); static u8 GetCurrentPageColumnCount(void); -static void CreatePageSwitcherSprites(void); -static void sub_80E4050(void); -static void sub_80E41B8(u8, struct Sprite *, struct Sprite *); +static void CreatePageSwapButtonSprites(void); +static void StartPageSwapButtonAnim(void); +static void SetPageSwapButtonGfx(u8, struct Sprite *, struct Sprite *); static void CreateBackOkSprites(void); static void CreateTextEntrySprites(void); static void CreateInputTargetIcon(void); static u8 HandleKeyboardEvent(void); -static u8 SwitchKeyboardPage(void); +static u8 SwapKeyboardPage(void); static u8 GetInputEvent(void); static void SetInputState(u8); static void DrawTextEntryBox(void); @@ -373,8 +388,8 @@ static void PrintKeyboardKeys(u8, u8); static void DrawKeyboardPageOnDeck(void); static void PrintControls(void); static void CB2_NamingScreen(void); -static void NamingScreen_ResetVHBlank(void); -static void NamingScreen_SetVBlank(void); +static void ResetVHBlank(void); +static void SetVBlank(void); static void VBlankCB_NamingScreen(void); static void NamingScreen_ShowBgs(void); static bool8 IsWideLetter(u8); @@ -407,7 +422,7 @@ static void CB2_LoadNamingScreen(void) switch (gMain.state) { case 0: - NamingScreen_ResetVHBlank(); + ResetVHBlank(); NamingScreen_Init(); gMain.state++; break; @@ -451,7 +466,7 @@ static void CB2_LoadNamingScreen(void) static void NamingScreen_Init(void) { - sNamingScreen->state = 0; + sNamingScreen->state = STATE_FADE_IN; sNamingScreen->bg1vOffset = 0; sNamingScreen->bg2vOffset = 0; sNamingScreen->bg1Priority = BGCNT_PRIORITY(1); @@ -464,13 +479,13 @@ static void NamingScreen_Init(void) if (sNamingScreen->templateNum == NAMING_SCREEN_WALDA) sNamingScreen->inputCharBaseXPos += 11; sNamingScreen->keyRepeatStartDelayCopy = gKeyRepeatStartDelay; - memset(sNamingScreen->textBuffer, 0xFF, sizeof(sNamingScreen->textBuffer)); + memset(sNamingScreen->textBuffer, EOS, sizeof(sNamingScreen->textBuffer)); if (sNamingScreen->template->copyExistingString) StringCopy(sNamingScreen->textBuffer, sNamingScreen->destBuffer); gKeyRepeatStartDelay = 16; } -static void sub_80E2FA4(void) +static void SetSpritesVisible(void) { u8 i; for (i = 0; i < MAX_SPRITES; i++) @@ -531,88 +546,89 @@ static void Task_NamingScreen(u8 taskId) { switch (sNamingScreen->state) { - case 0: + case STATE_FADE_IN: MainState_FadeIn(); - sub_80E2FA4(); - NamingScreen_SetVBlank(); + SetSpritesVisible(); + SetVBlank(); break; - case 1: + case STATE_WAIT_FADE_IN: MainState_WaitFadeIn(); break; - case 2: + case STATE_HANDLE_INPUT: MainState_HandleInput(); break; - case 3: + case STATE_MOVE_TO_OK_BUTTON: MainState_MoveToOKButton(); MainState_HandleInput(); break; - case 4: + case STATE_START_PAGE_SWAP: MainState_StartPageSwap(); break; - case 5: + case STATE_WAIT_PAGE_SWAP: MainState_WaitPageSwap(); break; - case 6: - MainState_6(); + case STATE_PRESSED_OK: + MainState_PressedOKButton(); break; - case 7: - MainState_7(); + case STATE_WAIT_SENT_TO_PC_MESSAGE: + MainState_WaitSentToPCMessage(); break; - case 8: + case STATE_FADE_OUT: MainState_FadeOut(); break; - case 9: + case STATE_EXIT: MainState_Exit(); break; } } -static const u8 sPageOrderLowerFirst[] = +// Which gfx/pal to load for the swap page button +static const u8 sPageToNextGfxId[KBPAGE_COUNT] = { - KBPAGE_LETTERS_LOWER, - KBPAGE_SYMBOLS, - KBPAGE_LETTERS_UPPER + [KBPAGE_SYMBOLS] = PAGE_SWAP_UPPER, + [KBPAGE_LETTERS_UPPER] = PAGE_SWAP_LOWER, + [KBPAGE_LETTERS_LOWER] = PAGE_SWAP_OTHERS }; -static const u8 sPageOrderUpperFirst[] = +static const u8 sPageToNextKeyboardId[KBPAGE_COUNT] = { - KBPAGE_LETTERS_UPPER, - KBPAGE_LETTERS_LOWER, - KBPAGE_SYMBOLS + [KBPAGE_SYMBOLS] = KEYBOARD_LETTERS_UPPER, + [KBPAGE_LETTERS_UPPER] = KEYBOARD_LETTERS_LOWER, + [KBPAGE_LETTERS_LOWER] = KEYBOARD_SYMBOLS }; -static const u8 sPageOrderSymbolsFirst[] = +static const u8 sPageToKeyboardId[KBPAGE_COUNT] = { - KBPAGE_SYMBOLS, - KBPAGE_LETTERS_UPPER, - KBPAGE_LETTERS_LOWER + [KBPAGE_SYMBOLS] = KEYBOARD_SYMBOLS, + [KBPAGE_LETTERS_UPPER] = KEYBOARD_LETTERS_UPPER, + [KBPAGE_LETTERS_LOWER] = KEYBOARD_LETTERS_LOWER }; -static u8 sub_80E3244(u8 a1) +static u8 PageToNextGfxId(u8 page) { - return sPageOrderLowerFirst[a1]; + return sPageToNextGfxId[page]; } -static u8 sub_80E3254(void) +static u8 CurrentPageToNextKeyboardId(void) { - return sPageOrderUpperFirst[sNamingScreen->currentPage]; + return sPageToNextKeyboardId[sNamingScreen->currentPage]; } -static u8 sub_80E3274(void) +static u8 CurrentPageToKeyboardId(void) { - return sPageOrderSymbolsFirst[sNamingScreen->currentPage]; + return sPageToKeyboardId[sNamingScreen->currentPage]; } static bool8 MainState_FadeIn(void) { - DrawBgTilemap(3, gUnknown_08DD4544); + DrawBgTilemap(3, gNamingScreenBackground_Tilemap); sNamingScreen->currentPage = KBPAGE_LETTERS_UPPER; - DrawBgTilemap(2, gUnknown_08DD46E0); - DrawBgTilemap(1, gUnknown_08DD4620); - PrintKeyboardKeys(sNamingScreen->windows[WIN_KB_PAGE_2], KBPAGE_LETTERS_LOWER); - PrintKeyboardKeys(sNamingScreen->windows[WIN_KB_PAGE_1], KBPAGE_LETTERS_UPPER); - NamingScreen_Dummy(2, KBPAGE_LETTERS_LOWER); - NamingScreen_Dummy(1, KBPAGE_LETTERS_UPPER); + DrawBgTilemap(2, gNamingScreenKeyboardLower_Tilemap); + DrawBgTilemap(1, gNamingScreenKeyboardUpper_Tilemap); + PrintKeyboardKeys(sNamingScreen->windows[WIN_KB_PAGE_2], KEYBOARD_LETTERS_LOWER); + PrintKeyboardKeys(sNamingScreen->windows[WIN_KB_PAGE_1], KEYBOARD_LETTERS_UPPER); + NamingScreen_Dummy(2, KEYBOARD_LETTERS_LOWER); + NamingScreen_Dummy(1, KEYBOARD_LETTERS_UPPER); DrawTextEntry(); DrawTextEntryBox(); PrintControls(); @@ -652,23 +668,23 @@ static bool8 MainState_MoveToOKButton(void) return FALSE; } -static bool8 MainState_6(void) +static bool8 MainState_PressedOKButton(void) { SaveInputText(); SetInputState(INPUT_STATE_DISABLED); SetCursorFlashing(FALSE); TryStartButtonFlash(BUTTON_COUNT, FALSE, TRUE); - if (sNamingScreen->templateNum == NAMING_SCREEN_CAUGHT_MON && - CalculatePlayerPartyCount() >= PARTY_SIZE) + if (sNamingScreen->templateNum == NAMING_SCREEN_CAUGHT_MON + && CalculatePlayerPartyCount() >= PARTY_SIZE) { DisplaySentToPCMessage(); - sNamingScreen->state = STATE_UPDATE_SENT_TO_PC_MESSAGE; + sNamingScreen->state = STATE_WAIT_SENT_TO_PC_MESSAGE; return FALSE; } else { - sNamingScreen->state = STATE_BEGIN_FADE_OUT; - return TRUE; //Exit the naming screen + sNamingScreen->state = STATE_FADE_OUT; + return TRUE; } } @@ -720,12 +736,11 @@ static void DisplaySentToPCMessage(void) CopyWindowToVram(0, 3); } -static bool8 MainState_7(void) +static bool8 MainState_WaitSentToPCMessage(void) { RunTextPrinters(); - if (!IsTextPrinterActive(0) && JOY_NEW(A_BUTTON)) - sNamingScreen->state = STATE_BEGIN_FADE_OUT; + sNamingScreen->state = STATE_FADE_OUT; return FALSE; } @@ -733,7 +748,7 @@ static bool8 MainState_7(void) static bool8 MainState_StartPageSwap(void) { SetInputState(INPUT_STATE_DISABLED); - sub_80E4050(); + StartPageSwapButtonAnim(); StartPageSwapAnim(); SetCursorInvisibility(TRUE); TryStartButtonFlash(BUTTON_PAGE, FALSE, TRUE); @@ -746,19 +761,19 @@ static bool8 MainState_WaitPageSwap(void) { s16 cursorX; s16 cursorY; - bool32 var3; + bool32 onLastColumn; if (IsPageSwapAnimNotInProgress()) { GetCursorPos(&cursorX, &cursorY); - var3 = (cursorX == GetCurrentPageColumnCount()); + onLastColumn = (cursorX == GetCurrentPageColumnCount()); sNamingScreen->state = STATE_HANDLE_INPUT; sNamingScreen->currentPage++; - sNamingScreen->currentPage %= 3; + sNamingScreen->currentPage %= KBPAGE_COUNT; - if (var3) + if (onLastColumn) { cursorX = GetCurrentPageColumnCount(); } @@ -827,15 +842,15 @@ static bool8 PageSwapAnimState_Init(struct Task *task) static bool8 PageSwapAnimState_1(struct Task *task) { - u16 *const arr[] = + u16 *const vOffsets[] = { &sNamingScreen->bg2vOffset, &sNamingScreen->bg1vOffset }; task->tFrameCount += 4; - *arr[sNamingScreen->bgToReveal] = Sin(task->tFrameCount, 40); - *arr[sNamingScreen->bgToHide] = Sin((task->tFrameCount + 128) & 0xFF, 40); + *vOffsets[sNamingScreen->bgToReveal] = Sin(task->tFrameCount, 40); + *vOffsets[sNamingScreen->bgToHide] = Sin((task->tFrameCount + 128) & 0xFF, 40); if (task->tFrameCount >= 64) { u8 temp = sNamingScreen->bg1Priority; //Why u8 and not u16? @@ -849,15 +864,15 @@ static bool8 PageSwapAnimState_1(struct Task *task) static bool8 PageSwapAnimState_2(struct Task *task) { - u16 *const arr[] = + u16 *const vOffsets[] = { &sNamingScreen->bg2vOffset, &sNamingScreen->bg1vOffset }; task->tFrameCount += 4; - *arr[sNamingScreen->bgToReveal] = Sin(task->tFrameCount, 40); - *arr[sNamingScreen->bgToHide] = Sin((task->tFrameCount + 128) & 0xFF, 40); + *vOffsets[sNamingScreen->bgToReveal] = Sin(task->tFrameCount, 40); + *vOffsets[sNamingScreen->bgToHide] = Sin((task->tFrameCount + 128) & 0xFF, 40); if (task->tFrameCount >= 128) { u8 temp = sNamingScreen->bgToReveal; @@ -882,8 +897,13 @@ static bool8 PageSwapAnimState_Done(struct Task *task) // //-------------------------------------------------- -#define tButtonId data[0] -#define tColor data[3] +#define tButtonId data[0] +#define tKeepFlashing data[1] +#define tAllowFlash data[2] +#define tColor data[3] +#define tColorIncr data[4] +#define tColorDelay data[5] +#define tColorDelta data[6] static void CreateButtonFlashTask(void) { @@ -893,74 +913,74 @@ static void CreateButtonFlashTask(void) gTasks[taskId].tButtonId = BUTTON_COUNT; } -static void TryStartButtonFlash(u8 button, bool8 b, bool8 c) +static void TryStartButtonFlash(u8 button, bool8 keepFlashing, bool8 interruptCurFlash) { struct Task *task = &gTasks[FindTaskIdByFunc(Task_UpdateButtonFlash)]; - if (button == task->tButtonId && !c) + if (button == task->tButtonId && !interruptCurFlash) { - task->data[1] = b; - task->data[2] = TRUE; + task->tKeepFlashing = keepFlashing; + task->tAllowFlash = TRUE; return; } - if (button == BUTTON_COUNT && !task->data[1] && !c) + if (button == BUTTON_COUNT && !task->tKeepFlashing && !interruptCurFlash) return; if (task->tButtonId != BUTTON_COUNT) RestoreButtonColor(task->tButtonId); - StartButtonFlash(task, button, b); + StartButtonFlash(task, button, keepFlashing); } static void Task_UpdateButtonFlash(u8 taskId) { struct Task *task = &gTasks[taskId]; - if (task->tButtonId == BUTTON_COUNT || !task->data[2]) + if (task->tButtonId == BUTTON_COUNT || !task->tAllowFlash) return; MultiplyInvertedPaletteRGBComponents(GetButtonPalOffset(task->tButtonId), task->tColor, task->tColor, task->tColor); - if (task->data[5] && --task->data[5]) + if (task->tColorDelay && --task->tColorDelay) return; - task->data[5] = 2; - if (task->data[4] >= 0) + task->tColorDelay = 2; + if (task->tColorIncr >= 0) { if (task->tColor < 14) { - task->tColor += task->data[4]; - task->data[6] += task->data[4]; + task->tColor += task->tColorIncr; + task->tColorDelta += task->tColorIncr; } else { task->tColor = 16; - task->data[6]++; + task->tColorDelta++; } } else { - task->tColor += task->data[4]; - task->data[6] += task->data[4]; + task->tColor += task->tColorIncr; + task->tColorDelta += task->tColorIncr; } - if (task->tColor == 16 && task->data[6] == 22) + if (task->tColor == 16 && task->tColorDelta == 22) { - task->data[4] = -4; + task->tColorIncr = -4; } else if (task->tColor == 0) { - task->data[2] = task->data[1]; - task->data[4] = 2; - task->data[6] = 0; + task->tAllowFlash = task->tKeepFlashing; + task->tColorIncr = 2; + task->tColorDelta = 0; } } static u16 GetButtonPalOffset(u8 button) { - const u16 palOffsets[] = + const u16 palOffsets[BUTTON_COUNT + 1] = { - [BUTTON_PAGE] = IndexOfSpritePaletteTag(PALTAG_PAGE_SWITCH) * 16 + 0x10E, + [BUTTON_PAGE] = IndexOfSpritePaletteTag(PALTAG_PAGE_SWAP) * 16 + 0x10E, [BUTTON_BACK] = IndexOfSpritePaletteTag(PALTAG_BACK_BUTTON) * 16 + 0x10E, [BUTTON_OK] = IndexOfSpritePaletteTag(PALTAG_OK_BUTTON) * 16 + 0x10E, [BUTTON_COUNT] = IndexOfSpritePaletteTag(PALTAG_OK_BUTTON) * 16 + 0x101, @@ -975,49 +995,64 @@ static void RestoreButtonColor(u8 button) gPlttBufferFaded[index] = gPlttBufferUnfaded[index]; } -static void StartButtonFlash(struct Task *task, u8 button, bool8 c) +static void StartButtonFlash(struct Task *task, u8 button, bool8 keepFlashing) { task->tButtonId = button; - task->data[1] = c; - task->data[2] = TRUE; + task->tKeepFlashing = keepFlashing; + task->tAllowFlash = TRUE; task->tColor = 4; - task->data[4] = 2; - task->data[5] = 0; - task->data[6] = 4; + task->tColorIncr = 2; + task->tColorDelay = 0; + task->tColorDelta = 4; } #undef tButtonId #undef tColor -#define tInvisible data[4] & 0x00FF -#define tFlashing data[4] & 0xFF00 +// Sprite data for the the cursor +#define sX data[0] +#define sY data[1] +#define sPrevX data[2] +#define sPrevY data[3] +#define sInvisible data[4] & 0x00FF +#define sFlashing data[4] & 0xFF00 +#define sColor data[5] +#define sColorIncr data[6] +#define sColorDelay data[7] static void SpriteCB_Cursor(struct Sprite *sprite) { if (sprite->animEnded) StartSpriteAnim(sprite, 0); - sprite->invisible = sprite->tInvisible; - if (sprite->data[0] == GetCurrentPageColumnCount()) + + // Hide cursor when on button column + sprite->invisible = sprite->sInvisible; + if (sprite->sX == GetCurrentPageColumnCount()) sprite->invisible = TRUE; - if (sprite->invisible || !(sprite->tFlashing) - || sprite->data[0] != sprite->data[2] || sprite->data[1] != sprite->data[3]) + + if (sprite->invisible + || !(sprite->sFlashing) + || sprite->sX != sprite->sPrevX + || sprite->sY != sprite->sPrevY) { - sprite->data[5] = 0; - sprite->data[6] = 2; - sprite->data[7] = 2; + sprite->sColor = 0; + sprite->sColorIncr = 2; + sprite->sColorDelay = 2; } - sprite->data[7]--; - if (sprite->data[7] == 0) + + sprite->sColorDelay--; + if (sprite->sColorDelay == 0) { - sprite->data[5] += sprite->data[6]; - if (sprite->data[5] == 16 || sprite->data[5] == 0) - sprite->data[6] = -sprite->data[6]; - sprite->data[7] = 2; + sprite->sColor += sprite->sColorIncr; + if (sprite->sColor == 16 || sprite->sColor == 0) + sprite->sColorIncr = -sprite->sColorIncr; + sprite->sColorDelay = 2; } - if (sprite->tFlashing) + + if (sprite->sFlashing) { - s8 gb = sprite->data[5]; - s8 r = sprite->data[5] >> 1; + s8 gb = sprite->sColor; + s8 r = sprite->sColor >> 1; u16 index = IndexOfSpritePaletteTag(PALTAG_CURSOR) * 16 + 0x0101; MultiplyInvertedPaletteRGBComponents(index, r, gb, gb); @@ -1042,34 +1077,42 @@ static void SpriteCB_InputArrow(struct Sprite *sprite) #undef sDelay #undef sXPosId +#define sId data[0] // set in CreateTextEntrySprites +#define sYPosId data[1] +#define sDelay data[2] + static void SpriteCB_Underscore(struct Sprite *sprite) { - const s16 arr[] = {2, 3, 2, 1}; - u8 var; + const s16 y[] = {2, 3, 2, 1}; + u8 pos; - var = GetTextEntryPosition(); - if (var != (u8)sprite->data[0]) + pos = GetTextEntryPosition(); + if (pos != (u8)sprite->sId) { sprite->pos2.y = 0; - sprite->data[1] = 0; - sprite->data[2] = 0; + sprite->sYPosId = 0; + sprite->sDelay = 0; } else { - sprite->pos2.y = arr[sprite->data[1]]; - sprite->data[2]++; - if (sprite->data[2] > 8) + sprite->pos2.y = y[sprite->sYPosId]; + sprite->sDelay++; + if (sprite->sDelay > 8) { - sprite->data[1] = (sprite->data[1] + 1) & 3; - sprite->data[2] = 0; + sprite->sYPosId = (sprite->sYPosId + 1) & (ARRAY_COUNT(y) - 1); + sprite->sDelay = 0; } } } +#undef sId +#undef sYPosId +#undef sDelay + static void CreateSprites(void) { CreateCursorSprite(); - CreatePageSwitcherSprites(); + CreatePageSwapButtonSprites(); CreateBackOkSprites(); CreateTextEntrySprites(); CreateInputTargetIcon(); @@ -1081,8 +1124,8 @@ static void CreateCursorSprite(void) SetCursorInvisibility(TRUE); gSprites[sNamingScreen->cursorSpriteId].oam.priority = 1; gSprites[sNamingScreen->cursorSpriteId].oam.objMode = ST_OAM_OBJ_BLEND; - gSprites[sNamingScreen->cursorSpriteId].data[6] = 1; - gSprites[sNamingScreen->cursorSpriteId].data[6] = 2; + gSprites[sNamingScreen->cursorSpriteId].sColorIncr = 1; // ? immediately overwritten + gSprites[sNamingScreen->cursorSpriteId].sColorIncr = 2; SetCursorPos(0, 0); } @@ -1090,24 +1133,24 @@ static void SetCursorPos(s16 x, s16 y) { struct Sprite *cursorSprite = &gSprites[sNamingScreen->cursorSpriteId]; - if (x < sPageColumnCounts[sub_80E3274()]) - cursorSprite->pos1.x = sPageColumnXPos[x + sub_80E3274() * KBCOL_COUNT] + 38; + if (x < sPageColumnCounts[CurrentPageToKeyboardId()]) + cursorSprite->pos1.x = sPageColumnXPos[x + CurrentPageToKeyboardId() * KBCOL_COUNT] + 38; else cursorSprite->pos1.x = 0; cursorSprite->pos1.y = y * 16 + 88; - cursorSprite->data[2] = cursorSprite->data[0]; - cursorSprite->data[3] = cursorSprite->data[1]; - cursorSprite->data[0] = x; - cursorSprite->data[1] = y; + cursorSprite->sPrevX = cursorSprite->sX; + cursorSprite->sPrevY = cursorSprite->sY; + cursorSprite->sX = x; + cursorSprite->sY = y; } static void GetCursorPos(s16 *x, s16 *y) { struct Sprite *cursorSprite = &gSprites[sNamingScreen->cursorSpriteId]; - *x = cursorSprite->data[0]; - *y = cursorSprite->data[1]; + *x = cursorSprite->sX; + *y = cursorSprite->sY; } static void MoveCursorToOKButton(void) @@ -1118,14 +1161,14 @@ static void MoveCursorToOKButton(void) static void SetCursorInvisibility(bool8 invisible) { gSprites[sNamingScreen->cursorSpriteId].data[4] &= 0xFF00; - gSprites[sNamingScreen->cursorSpriteId].data[4] |= invisible; + gSprites[sNamingScreen->cursorSpriteId].data[4] |= invisible; // sInvisible StartSpriteAnim(&gSprites[sNamingScreen->cursorSpriteId], 0); } static void SetCursorFlashing(bool8 flashing) { gSprites[sNamingScreen->cursorSpriteId].data[4] &= 0xFF; - gSprites[sNamingScreen->cursorSpriteId].data[4] |= flashing << 8; + gSprites[sNamingScreen->cursorSpriteId].data[4] |= flashing << 8; // sFlashing } static void SquishCursor(void) @@ -1155,122 +1198,140 @@ static u8 GetKeyRoleAtCursorPos(void) // If the cursor's x is equal to the column count, cursor is in the button column static u8 GetCurrentPageColumnCount(void) { - return sPageColumnCounts[sub_80E3274()]; + return sPageColumnCounts[CurrentPageToKeyboardId()]; } -static void CreatePageSwitcherSprites(void) +#undef sX +#undef sY +#undef sPrevX +#undef sPrevY +#undef sInvisible +#undef sFlashing +#undef sColor +#undef sColorIncr +#undef sColorDelay + +static bool8 PageSwapSprite_Init(struct Sprite *); +static bool8 PageSwapSprite_Idle(struct Sprite *); +static bool8 PageSwapSprite_SlideOff(struct Sprite *); +static bool8 PageSwapSprite_SlideOn(struct Sprite *); + +#define sState data[0] +#define sPage data[1] +#define sTextSpriteId data[6] +#define sButtonSpriteId data[7] + +static void CreatePageSwapButtonSprites(void) { - u8 bgSpriteId; + u8 frameSpriteId; u8 textSpriteId; u8 buttonSpriteId; - bgSpriteId = CreateSprite(&sSpriteTemplate_PageSwitchBg, 204, 88, 0); - sNamingScreen->selectBtnFrameSpriteId = bgSpriteId; - SetSubspriteTables(&gSprites[bgSpriteId], sSubspriteTable_PageSwitchBg); - gSprites[bgSpriteId].invisible = TRUE; + frameSpriteId = CreateSprite(&sSpriteTemplate_PageSwapFrame, 204, 88, 0); + sNamingScreen->swapBtnFrameSpriteId = frameSpriteId; + SetSubspriteTables(&gSprites[frameSpriteId], sSubspriteTable_PageSwapFrame); + gSprites[frameSpriteId].invisible = TRUE; - textSpriteId = CreateSprite(&sSpriteTemplate_PageSwitchText, 204, 84, 1); - gSprites[bgSpriteId].data[6] = textSpriteId; - SetSubspriteTables(&gSprites[textSpriteId], sSubspriteTable_PageSwitchText); + textSpriteId = CreateSprite(&sSpriteTemplate_PageSwapText, 204, 84, 1); + gSprites[frameSpriteId].sTextSpriteId = textSpriteId; + SetSubspriteTables(&gSprites[textSpriteId], sSubspriteTable_PageSwapText); gSprites[textSpriteId].invisible = TRUE; - buttonSpriteId = CreateSprite(&sSpriteTemplate_PageSwitchButton, 204, 83, 2); + buttonSpriteId = CreateSprite(&sSpriteTemplate_PageSwapButton, 204, 83, 2); gSprites[buttonSpriteId].oam.priority = 1; - gSprites[bgSpriteId].data[7] = buttonSpriteId; + gSprites[frameSpriteId].sButtonSpriteId = buttonSpriteId; gSprites[buttonSpriteId].invisible = TRUE; } -static void sub_80E4050(void) +static void StartPageSwapButtonAnim(void) { - struct Sprite *sprite = &gSprites[sNamingScreen->selectBtnFrameSpriteId]; + struct Sprite *sprite = &gSprites[sNamingScreen->swapBtnFrameSpriteId]; - sprite->data[0] = 2; - sprite->data[1] = sNamingScreen->currentPage; + sprite->sState = 2; // go to PageSwapSprite_SlideOff + sprite->sPage = sNamingScreen->currentPage; } -static u8 sub_80E40AC(struct Sprite *); -static u8 sub_80E4100(struct Sprite *); -static u8 sub_80E4104(struct Sprite *); -static u8 sub_80E4178(struct Sprite *); - -static u8 (*const sPageSwitchSpriteFuncs[])(struct Sprite *) = +static u8 (*const sPageSwapSpriteFuncs[])(struct Sprite *) = { - sub_80E40AC, - sub_80E4100, - sub_80E4104, - sub_80E4178, + PageSwapSprite_Init, + PageSwapSprite_Idle, + PageSwapSprite_SlideOff, + PageSwapSprite_SlideOn, }; -static void SpriteCB_PageSwitch(struct Sprite *sprite) +static void SpriteCB_PageSwap(struct Sprite *sprite) { - while (sPageSwitchSpriteFuncs[sprite->data[0]](sprite) != 0); + while (sPageSwapSpriteFuncs[sprite->sState](sprite)); } -static u8 sub_80E40AC(struct Sprite *sprite) +static bool8 PageSwapSprite_Init(struct Sprite *sprite) { - struct Sprite *sprite1 = &gSprites[sprite->data[6]]; - struct Sprite *sprite2 = &gSprites[sprite->data[7]]; + struct Sprite *text = &gSprites[sprite->sTextSpriteId]; + struct Sprite *button = &gSprites[sprite->sButtonSpriteId]; - sub_80E41B8(sub_80E3244(sNamingScreen->currentPage), sprite1, sprite2); - sprite->data[0]++; - return 0; + SetPageSwapButtonGfx(PageToNextGfxId(sNamingScreen->currentPage), text, button); + sprite->sState++; + return FALSE; } -static u8 sub_80E4100(struct Sprite *sprite) +static bool8 PageSwapSprite_Idle(struct Sprite *sprite) { - return 0; + return FALSE; } -static u8 sub_80E4104(struct Sprite *sprite) +static bool8 PageSwapSprite_SlideOff(struct Sprite *sprite) { - struct Sprite *r4 = &gSprites[sprite->data[6]]; - struct Sprite *r5 = &gSprites[sprite->data[7]]; + struct Sprite *text = &gSprites[sprite->sTextSpriteId]; + struct Sprite *button = &gSprites[sprite->sButtonSpriteId]; - r4->pos2.y++; - if (r4->pos2.y > 7) + text->pos2.y++; + if (text->pos2.y > 7) { - sprite->data[0]++; - r4->pos2.y = -4; - r4->invisible = TRUE; - sub_80E41B8(sub_80E3244(((u8)sprite->data[1] + 1) % 3), r4, r5); + sprite->sState++; + text->pos2.y = -4; + text->invisible = TRUE; + SetPageSwapButtonGfx(PageToNextGfxId(((u8)sprite->sPage + 1) % KBPAGE_COUNT), text, button); } - return 0; + return FALSE; } -static u8 sub_80E4178(struct Sprite *sprite) +static bool8 PageSwapSprite_SlideOn(struct Sprite *sprite) { - struct Sprite *r2 = &gSprites[sprite->data[6]]; + struct Sprite *text = &gSprites[sprite->sTextSpriteId]; - r2->invisible = FALSE; - r2->pos2.y++; - if (r2->pos2.y >= 0) + text->invisible = FALSE; + text->pos2.y++; + if (text->pos2.y >= 0) { - r2->pos2.y = 0; - sprite->data[0] = 1; + text->pos2.y = 0; + sprite->sState = 1; // go to PageSwapSprite_Idle } - return 0; + return FALSE; } -static const u16 gUnknown_0858BEF8[] = { - PALTAG_1, - PALTAG_3, - PALTAG_2 +static const u16 sPageSwapPalTags[] = { + [PAGE_SWAP_UPPER] = PALTAG_PAGE_SWAP_UPPER, + [PAGE_SWAP_OTHERS] = PALTAG_PAGE_SWAP_OTHERS, + [PAGE_SWAP_LOWER] = PALTAG_PAGE_SWAP_LOWER }; -static const u16 gUnknown_0858BEFE[] = { - GFXTAG_PAGE_SWITCH_UPPER, - GFXTAG_PAGE_SWITCH_OTHERS, - GFXTAG_PAGE_SWITCH_LOWER +static const u16 sPageSwapGfxTags[] = { + [PAGE_SWAP_UPPER] = GFXTAG_PAGE_SWAP_UPPER, + [PAGE_SWAP_OTHERS] = GFXTAG_PAGE_SWAP_OTHERS, + [PAGE_SWAP_LOWER] = GFXTAG_PAGE_SWAP_LOWER }; -static void sub_80E41B8(u8 a, struct Sprite *b, struct Sprite *c) +static void SetPageSwapButtonGfx(u8 page, struct Sprite *text, struct Sprite *button) { - c->oam.paletteNum = IndexOfSpritePaletteTag(gUnknown_0858BEF8[a]); - b->sheetTileStart = GetSpriteTileStartByTag(gUnknown_0858BEFE[a]); - b->subspriteTableNum = a; + button->oam.paletteNum = IndexOfSpritePaletteTag(sPageSwapPalTags[page]); + text->sheetTileStart = GetSpriteTileStartByTag(sPageSwapGfxTags[page]); + text->subspriteTableNum = page; } -// +#undef sState +#undef sPage +#undef sTextSpriteId +#undef sButtonSpriteId static void CreateBackOkSprites(void) { @@ -1391,77 +1452,77 @@ static bool8 (*const sKeyboardKeyHandlers[])(u8) = static bool8 HandleKeyboardEvent(void) { - u8 event = GetInputEvent(); + u8 input = GetInputEvent(); u8 keyRole = GetKeyRoleAtCursorPos(); - if (event == INPUT_SELECT) + if (input == INPUT_SELECT) { - return SwitchKeyboardPage(); + return SwapKeyboardPage(); } - else if (event == INPUT_B_BUTTON) + else if (input == INPUT_B_BUTTON) { DeleteTextCharacter(); return FALSE; } - else if (event == INPUT_START) + else if (input == INPUT_START) { MoveCursorToOKButton(); return FALSE; } else { - return sKeyboardKeyHandlers[keyRole](event); + return sKeyboardKeyHandlers[keyRole](input); } } -static bool8 KeyboardKeyHandler_Character(u8 event) +static bool8 KeyboardKeyHandler_Character(u8 input) { TryStartButtonFlash(BUTTON_COUNT, FALSE, FALSE); - if (event == INPUT_A_BUTTON) + if (input == INPUT_A_BUTTON) { bool8 textFull = AddTextCharacter(); SquishCursor(); if (textFull) { - SetInputState(INPUT_STATE_2); + SetInputState(INPUT_STATE_OVERRIDE); sNamingScreen->state = STATE_MOVE_TO_OK_BUTTON; } } return FALSE; } -static bool8 KeyboardKeyHandler_Page(u8 event) +static bool8 KeyboardKeyHandler_Page(u8 input) { TryStartButtonFlash(BUTTON_PAGE, TRUE, FALSE); - if (event == INPUT_A_BUTTON) - return SwitchKeyboardPage(); + if (input == INPUT_A_BUTTON) + return SwapKeyboardPage(); else return FALSE; } -static bool8 KeyboardKeyHandler_Backspace(u8 event) +static bool8 KeyboardKeyHandler_Backspace(u8 input) { TryStartButtonFlash(BUTTON_BACK, TRUE, FALSE); - if (event == INPUT_A_BUTTON) + if (input == INPUT_A_BUTTON) DeleteTextCharacter(); return FALSE; } -static bool8 KeyboardKeyHandler_OK(u8 event) +static bool8 KeyboardKeyHandler_OK(u8 input) { TryStartButtonFlash(BUTTON_OK, TRUE, FALSE); - if (event == INPUT_A_BUTTON) + if (input == INPUT_A_BUTTON) { PlaySE(SE_SELECT); - sNamingScreen->state = STATE_6; + sNamingScreen->state = STATE_PRESSED_OK; return TRUE; } else return FALSE; } -static bool8 SwitchKeyboardPage(void) +static bool8 SwapKeyboardPage(void) { sNamingScreen->state = STATE_START_PAGE_SWAP; return TRUE; @@ -1476,15 +1537,15 @@ static bool8 SwitchKeyboardPage(void) #define tButtonId data[2] -static void InputState_Disabled(struct Task *); -static void InputState_Enabled(struct Task *); -static void InputState_2(struct Task *); +static void Input_Disabled(struct Task *); +static void Input_Enabled(struct Task *); +static void Input_Override(struct Task *); -static void (*const sInputStateFuncs[])(struct Task *) = +static void (*const sInputFuncs[])(struct Task *) = { - InputState_Disabled, - InputState_Enabled, - InputState_2, + [INPUT_STATE_DISABLED] = Input_Disabled, + [INPUT_STATE_ENABLED] = Input_Enabled, + [INPUT_STATE_OVERRIDE] = Input_Override, }; static void Task_HandleInput(u8); @@ -1511,15 +1572,15 @@ static void SetInputState(u8 state) static void Task_HandleInput(u8 taskId) { - sInputStateFuncs[gTasks[taskId].tState](&gTasks[taskId]); + sInputFuncs[gTasks[taskId].tState](&gTasks[taskId]); } -static void InputState_Disabled(struct Task *task) +static void Input_Disabled(struct Task *task) { task->tKeyboardEvent = INPUT_NONE; } -static void InputState_Enabled(struct Task *task) +static void Input_Enabled(struct Task *task) { task->tKeyboardEvent = INPUT_NONE; @@ -1535,7 +1596,7 @@ static void InputState_Enabled(struct Task *task) HandleDpadMovement(task); } -static void InputState_2(struct Task *task) +static void Input_Override(struct Task *task) { task->tKeyboardEvent = INPUT_NONE; } @@ -1561,7 +1622,7 @@ static void HandleDpadMovement(struct Task *task) }; const s16 sKeyRowToButtonRow[KBROW_COUNT] = {0, 1, 1, 2}; - const s16 gUnknown_0858BF50[] = {0, 0, 3}; + const s16 sButtonRowToKeyRow[BUTTON_COUNT] = {0, 0, 3}; s16 cursorX; s16 cursorY; @@ -1597,16 +1658,19 @@ static void HandleDpadMovement(struct Task *task) if (cursorX == GetCurrentPageColumnCount()) { // Moved onto button column + // Save cursor pos in tButtonId for moving back onto keys task->tButtonId = cursorY; cursorY = sKeyRowToButtonRow[cursorY]; } else if (prevCursorX == GetCurrentPageColumnCount()) { // Moved off button column - if (cursorY == 1) + // If you're on the middle button, go to the row that + // the cursor was on previously (saved in tButtonId above) + if (cursorY == BUTTON_COUNT / 2) cursorY = task->tButtonId; else - cursorY = gUnknown_0858BF50[cursorY]; + cursorY = sButtonRowToKeyRow[cursorY]; } } @@ -1715,7 +1779,7 @@ static void DrawGenderIcon(void) static u8 GetCharAtKeyboardPos(s16 x, s16 y) { - return sKeyboardChars[x + y * KBCOL_COUNT + sub_80E3274() * KBCOL_COUNT * KBROW_COUNT]; + return sKeyboardChars[x + y * KBCOL_COUNT + CurrentPageToKeyboardId() * KBCOL_COUNT * KBROW_COUNT]; } @@ -1746,15 +1810,18 @@ static u8 GetPreviousTextCaretPosition(void) static void DeleteTextCharacter(void) { u8 index; - u8 var2; + u8 keyRole; index = GetPreviousTextCaretPosition(); sNamingScreen->textBuffer[index] = 0; DrawTextEntry(); CopyBgTilemapBufferToVram(3); sNamingScreen->textBuffer[index] = EOS; - var2 = GetKeyRoleAtCursorPos(); - if (var2 == 0 || var2 == 2) + keyRole = GetKeyRoleAtCursorPos(); + + // The below flashes the Back key once on delete + // It incorrectly leaves the Back key 1 shade lighter than its default + if (keyRole == KEY_ROLE_CHAR || keyRole == KEY_ROLE_BACKSPACE) TryStartButtonFlash(BUTTON_BACK, FALSE, TRUE); PlaySE(SE_BOWA); } @@ -1870,16 +1937,16 @@ static const struct TextColor sTextColorStruct = static const u8 sFillValues[KBPAGE_COUNT] = { - [KBPAGE_LETTERS_LOWER] = PIXEL_FILL(14), - [KBPAGE_LETTERS_UPPER] = PIXEL_FILL(13), - [KBPAGE_SYMBOLS] = PIXEL_FILL(15) + [KEYBOARD_LETTERS_LOWER] = PIXEL_FILL(14), + [KEYBOARD_LETTERS_UPPER] = PIXEL_FILL(13), + [KEYBOARD_SYMBOLS] = PIXEL_FILL(15) }; static const u8 *const sKeyboardTextColors[KBPAGE_COUNT] = { - [KBPAGE_LETTERS_LOWER] = sTextColorStruct.colors[1], - [KBPAGE_LETTERS_UPPER] = sTextColorStruct.colors[0], - [KBPAGE_SYMBOLS] = sTextColorStruct.colors[2] + [KEYBOARD_LETTERS_LOWER] = sTextColorStruct.colors[1], + [KEYBOARD_LETTERS_UPPER] = sTextColorStruct.colors[0], + [KEYBOARD_SYMBOLS] = sTextColorStruct.colors[2] }; static void PrintKeyboardKeys(u8 window, u8 page) @@ -1894,15 +1961,15 @@ static void PrintKeyboardKeys(u8 window, u8 page) PutWindowTilemap(window); } -static const u8 *const sKeyboardPageTilemaps[] = +static const u8 *const sNextKeyboardPageTilemaps[] = { - [KBPAGE_LETTERS_LOWER] = gUnknown_08DD4620, // upper - [KBPAGE_LETTERS_UPPER] = gUnknown_08DD46E0, // lower - [KBPAGE_SYMBOLS] = gUnknown_08DD47A0 // symbols + [KBPAGE_SYMBOLS] = gNamingScreenKeyboardUpper_Tilemap, + [KBPAGE_LETTERS_UPPER] = gNamingScreenKeyboardLower_Tilemap, // lower + [KBPAGE_LETTERS_LOWER] = gNamingScreenKeyboardSymbols_Tilemap // symbols }; -// There are always 2 keyboard pages drawn, the current page and the one that will shown next if the player switches -// When the page switch is complete this function invisibly replaces the old page with the new next one +// There are always 2 keyboard pages drawn, the current page and the one that will shown next if the player swaps +// When the page swap is complete this function invisibly replaces the old page with the new next one static void DrawKeyboardPageOnDeck(void) { u8 bg; @@ -1924,9 +1991,9 @@ static void DrawKeyboardPageOnDeck(void) windowId = sNamingScreen->windows[WIN_KB_PAGE_2]; } - DrawBgTilemap(bg, sKeyboardPageTilemaps[sNamingScreen->currentPage]); - PrintKeyboardKeys(windowId, sub_80E3254()); - NamingScreen_Dummy(bg, sub_80E3254()); + DrawBgTilemap(bg, sNextKeyboardPageTilemaps[sNamingScreen->currentPage]); + PrintKeyboardKeys(windowId, CurrentPageToNextKeyboardId()); + NamingScreen_Dummy(bg, CurrentPageToNextKeyboardId()); CopyBgTilemapBufferToVram(bg_); } @@ -1948,13 +2015,13 @@ static void CB2_NamingScreen(void) UpdatePaletteFade(); } -static void NamingScreen_ResetVHBlank(void) +static void ResetVHBlank(void) { SetVBlankCallback(NULL); SetHBlankCallback(NULL); } -static void NamingScreen_SetVBlank(void) +static void SetVBlank(void) { SetVBlankCallback(VBlankCB_NamingScreen); } @@ -2018,6 +2085,7 @@ static void Debug_NamingScreenNickname(void) // Forward-declared variables //-------------------------------------------------- +// Initial pages below are pointless, they're overwritten with KBPAGE_LETTERS_UPPER in MainState_FadeIn() static const struct NamingScreenTemplate sPlayerNamingScreenTemplate = { .copyExistingString = FALSE, @@ -2113,7 +2181,7 @@ static const struct OamData sOam_32x16 = .paletteNum = 0, }; -static const struct Subsprite sSubsprites_PageSwitchBg[] = +static const struct Subsprite sSubsprites_PageSwapFrame[] = { { .x = -20, @@ -2181,7 +2249,7 @@ static const struct Subsprite sSubsprites_PageSwitchBg[] = } }; -static const struct Subsprite sSubsprites_PageSwitchText[] = +static const struct Subsprite sSubsprites_PageSwapText[] = { { .x = -12, @@ -2281,16 +2349,16 @@ static const struct Subsprite sSubsprites_PCIcon[] = } }; -static const struct SubspriteTable sSubspriteTable_PageSwitchBg[] = +static const struct SubspriteTable sSubspriteTable_PageSwapFrame[] = { - {ARRAY_COUNT(sSubsprites_PageSwitchBg), sSubsprites_PageSwitchBg} + {ARRAY_COUNT(sSubsprites_PageSwapFrame), sSubsprites_PageSwapFrame} }; -static const struct SubspriteTable sSubspriteTable_PageSwitchText[] = +static const struct SubspriteTable sSubspriteTable_PageSwapText[] = { - {ARRAY_COUNT(sSubsprites_PageSwitchText), sSubsprites_PageSwitchText}, - {ARRAY_COUNT(sSubsprites_PageSwitchText), sSubsprites_PageSwitchText}, - {ARRAY_COUNT(sSubsprites_PageSwitchText), sSubsprites_PageSwitchText} + {ARRAY_COUNT(sSubsprites_PageSwapText), sSubsprites_PageSwapText}, + {ARRAY_COUNT(sSubsprites_PageSwapText), sSubsprites_PageSwapText}, + {ARRAY_COUNT(sSubsprites_PageSwapText), sSubsprites_PageSwapText} }; static const struct SubspriteTable sSubspriteTable_Button[] = @@ -2305,17 +2373,17 @@ static const struct SubspriteTable sSubspriteTable_PCIcon[] = static const struct SpriteFrameImage sImageTable_PCIcon[] = { - {sPCIconOn_Gfx, sizeof(sPCIconOn_Gfx)}, {sPCIconOff_Gfx, sizeof(sPCIconOff_Gfx)}, + {sPCIconOn_Gfx, sizeof(sPCIconOn_Gfx)}, }; -static const union AnimCmd gSpriteAnim_858C090[] = +static const union AnimCmd sAnim_Loop[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_JUMP(0) }; -static const union AnimCmd gSpriteAnim_858C098[] = +static const union AnimCmd sAnim_CursorSquish[] = { ANIMCMD_FRAME(4, 8), ANIMCMD_FRAME(8, 8), @@ -2329,15 +2397,15 @@ static const union AnimCmd sAnim_PCIcon[] = ANIMCMD_JUMP(0) }; -static const union AnimCmd *const gSpriteAnimTable_858C0B0[] = +static const union AnimCmd *const sAnims_Loop[] = { - gSpriteAnim_858C090 + sAnim_Loop }; -static const union AnimCmd *const gSpriteAnimTable_858C0B4[] = +static const union AnimCmd *const sAnims_Cursor[] = { - gSpriteAnim_858C090, - gSpriteAnim_858C098 + sAnim_Loop, + sAnim_CursorSquish }; static const union AnimCmd *const sAnims_PCIcon[] = @@ -2345,34 +2413,34 @@ static const union AnimCmd *const sAnims_PCIcon[] = sAnim_PCIcon }; -static const struct SpriteTemplate sSpriteTemplate_PageSwitchBg = +static const struct SpriteTemplate sSpriteTemplate_PageSwapFrame = { - .tileTag = GFXTAG_PAGE_SWITCH_BG, - .paletteTag = PALTAG_PAGE_SWITCH, + .tileTag = GFXTAG_PAGE_SWAP_FRAME, + .paletteTag = PALTAG_PAGE_SWAP, .oam = &sOam_8x8, - .anims = gSpriteAnimTable_858C0B0, + .anims = sAnims_Loop, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = SpriteCB_PageSwitch + .callback = SpriteCB_PageSwap }; -static const struct SpriteTemplate sSpriteTemplate_PageSwitchButton = +static const struct SpriteTemplate sSpriteTemplate_PageSwapButton = { - .tileTag = GFXTAG_PAGE_SWITCH_BUTTON, - .paletteTag = PALTAG_1, + .tileTag = GFXTAG_PAGE_SWAP_BUTTON, + .paletteTag = PALTAG_PAGE_SWAP_UPPER, .oam = &sOam_32x16, - .anims = gSpriteAnimTable_858C0B0, + .anims = sAnims_Loop, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct SpriteTemplate sSpriteTemplate_PageSwitchText = +static const struct SpriteTemplate sSpriteTemplate_PageSwapText = { - .tileTag = GFXTAG_PAGE_SWITCH_UPPER, - .paletteTag = PALTAG_PAGE_SWITCH, + .tileTag = GFXTAG_PAGE_SWAP_UPPER, + .paletteTag = PALTAG_PAGE_SWAP, .oam = &sOam_8x8, - .anims = gSpriteAnimTable_858C0B0, + .anims = sAnims_Loop, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy @@ -2383,7 +2451,7 @@ static const struct SpriteTemplate sSpriteTemplate_BackButton = .tileTag = GFXTAG_BACK_BUTTON, .paletteTag = PALTAG_BACK_BUTTON, .oam = &sOam_8x8, - .anims = gSpriteAnimTable_858C0B0, + .anims = sAnims_Loop, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy @@ -2394,7 +2462,7 @@ static const struct SpriteTemplate sSpriteTemplate_OkButton = .tileTag = GFXTAG_OK_BUTTON, .paletteTag = PALTAG_OK_BUTTON, .oam = &sOam_8x8, - .anims = gSpriteAnimTable_858C0B0, + .anims = sAnims_Loop, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy @@ -2405,7 +2473,7 @@ static const struct SpriteTemplate sSpriteTemplate_Cursor = .tileTag = GFXTAG_CURSOR, .paletteTag = PALTAG_CURSOR, .oam = &sOam_16x16, - .anims = gSpriteAnimTable_858C0B4, + .anims = sAnims_Cursor, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCB_Cursor @@ -2414,9 +2482,9 @@ static const struct SpriteTemplate sSpriteTemplate_Cursor = static const struct SpriteTemplate sSpriteTemplate_InputArrow = { .tileTag = GFXTAG_INPUT_ARROW, - .paletteTag = PALTAG_3, + .paletteTag = PALTAG_PAGE_SWAP_OTHERS, .oam = &sOam_8x8, - .anims = gSpriteAnimTable_858C0B0, + .anims = sAnims_Loop, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCB_InputArrow @@ -2425,9 +2493,9 @@ static const struct SpriteTemplate sSpriteTemplate_InputArrow = static const struct SpriteTemplate sSpriteTemplate_Underscore = { .tileTag = GFXTAG_UNDERSCORE, - .paletteTag = PALTAG_3, + .paletteTag = PALTAG_PAGE_SWAP_OTHERS, .oam = &sOam_8x8, - .anims = gSpriteAnimTable_858C0B0, + .anims = sAnims_Loop, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCB_Underscore @@ -2446,21 +2514,21 @@ static const struct SpriteTemplate sSpriteTemplate_PCIcon = static const u8* const sNamingScreenKeyboardText[KBPAGE_COUNT][KBROW_COUNT] = { - [KBPAGE_LETTERS_LOWER] = + [KEYBOARD_LETTERS_LOWER] = { gText_NamingScreenKeyboard_abcdef, gText_NamingScreenKeyboard_ghijkl, gText_NamingScreenKeyboard_mnopqrs, gText_NamingScreenKeyboard_tuvwxyz }, - [KBPAGE_LETTERS_UPPER] = + [KEYBOARD_LETTERS_UPPER] = { gText_NamingScreenKeyboard_ABCDEF, gText_NamingScreenKeyboard_GHIJKL, gText_NamingScreenKeyboard_MNOPQRS, gText_NamingScreenKeyboard_TUVWXYZ }, - [KBPAGE_SYMBOLS] = + [KEYBOARD_SYMBOLS] = { gText_NamingScreenKeyboard_01234, gText_NamingScreenKeyboard_56789, @@ -2473,11 +2541,11 @@ static const struct SpriteSheet sSpriteSheets[] = { {gNamingScreenRWindow_Gfx + 0x280, 0x1E0, GFXTAG_BACK_BUTTON}, {gNamingScreenRWindow_Gfx + 0x460, 0x1E0, GFXTAG_OK_BUTTON}, - {gNamingScreenRWindow_Gfx, 0x280, GFXTAG_PAGE_SWITCH_BG}, - {gNamingScreenPageButton_Gfx + 0x20, 0x100, GFXTAG_PAGE_SWITCH_BUTTON}, - {gNamingScreenROptions_Gfx, 0x060, GFXTAG_PAGE_SWITCH_UPPER}, - {gNamingScreenROptions_Gfx + 0xA0, 0x060, GFXTAG_PAGE_SWITCH_LOWER}, - {gNamingScreenROptions_Gfx + 0x140, 0x060, GFXTAG_PAGE_SWITCH_OTHERS}, + {gNamingScreenRWindow_Gfx, 0x280, GFXTAG_PAGE_SWAP_FRAME}, + {gNamingScreenPageButton_Gfx + 0x20, 0x100, GFXTAG_PAGE_SWAP_BUTTON}, + {gNamingScreenROptions_Gfx, 0x060, GFXTAG_PAGE_SWAP_UPPER}, + {gNamingScreenROptions_Gfx + 0xA0, 0x060, GFXTAG_PAGE_SWAP_LOWER}, + {gNamingScreenROptions_Gfx + 0x140, 0x060, GFXTAG_PAGE_SWAP_OTHERS}, {gNamingScreenCursor_Gfx, 0x080, GFXTAG_CURSOR}, {gNamingScreenCursor_Gfx + 0xA0, 0x080, GFXTAG_CURSOR_SQUISHED}, {gNamingScreenCursor_Gfx + 0x140, 0x080, GFXTAG_CURSOR_FILLED}, @@ -2489,10 +2557,10 @@ static const struct SpriteSheet sSpriteSheets[] = static const struct SpritePalette sSpritePalettes[] = { {gNamingScreenMenu_Pal, PALTAG_PC_ICON}, - {gNamingScreenMenu_Pal + 0x10, PALTAG_1}, // upper switch button - {gNamingScreenMenu_Pal + 0x20, PALTAG_2}, // lower switch button - {gNamingScreenMenu_Pal + 0x30, PALTAG_3}, // symbols switch button - {gNamingScreenMenu_Pal + 0x40, PALTAG_PAGE_SWITCH}, + {gNamingScreenMenu_Pal + 0x10, PALTAG_PAGE_SWAP_UPPER}, + {gNamingScreenMenu_Pal + 0x20, PALTAG_PAGE_SWAP_LOWER}, + {gNamingScreenMenu_Pal + 0x30, PALTAG_PAGE_SWAP_OTHERS}, + {gNamingScreenMenu_Pal + 0x40, PALTAG_PAGE_SWAP}, {gNamingScreenMenu_Pal + 0x50, PALTAG_CURSOR}, {gNamingScreenMenu_Pal + 0x40, PALTAG_BACK_BUTTON}, {gNamingScreenMenu_Pal + 0x40, PALTAG_OK_BUTTON}, From e947729d650e3ce7f675c667d8e7e45b47d58922 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Mon, 10 Aug 2020 13:48:16 -0400 Subject: [PATCH 048/101] Start documenting use_pokeblock --- .../use_screen/graph_data.bin} | Bin .../use_screen/mon_frame.bin} | Bin .../use_screen/mon_frame.png} | Bin .../use_screen/mon_frame_pal.bin} | Bin .../{86231E8.pal => condition/graph_data.pal} | 0 graphics/pokenav/{ => condition}/pokeball.png | Bin .../{ => condition}/pokeball_placeholder.png | Bin graphics/pokenav/{ => condition}/sparkle.png | Bin include/menu_specialized.h | 12 +- src/graphics.c | 1 - src/menu_specialized.c | 82 +- src/pokenav_conditions_2.c | 28 +- src/use_pokeblock.c | 1173 +++++++++-------- 13 files changed, 662 insertions(+), 634 deletions(-) rename graphics/{interface/85DFC0C.bin => pokeblock/use_screen/graph_data.bin} (100%) rename graphics/{interface/85DFB60.bin => pokeblock/use_screen/mon_frame.bin} (100%) rename graphics/{interface/85DFA80.png => pokeblock/use_screen/mon_frame.png} (100%) rename graphics/{interface/85DFA60.bin => pokeblock/use_screen/mon_frame_pal.bin} (100%) rename graphics/pokenav/{86231E8.pal => condition/graph_data.pal} (100%) rename graphics/pokenav/{ => condition}/pokeball.png (100%) rename graphics/pokenav/{ => condition}/pokeball_placeholder.png (100%) rename graphics/pokenav/{ => condition}/sparkle.png (100%) diff --git a/graphics/interface/85DFC0C.bin b/graphics/pokeblock/use_screen/graph_data.bin similarity index 100% rename from graphics/interface/85DFC0C.bin rename to graphics/pokeblock/use_screen/graph_data.bin diff --git a/graphics/interface/85DFB60.bin b/graphics/pokeblock/use_screen/mon_frame.bin similarity index 100% rename from graphics/interface/85DFB60.bin rename to graphics/pokeblock/use_screen/mon_frame.bin diff --git a/graphics/interface/85DFA80.png b/graphics/pokeblock/use_screen/mon_frame.png similarity index 100% rename from graphics/interface/85DFA80.png rename to graphics/pokeblock/use_screen/mon_frame.png diff --git a/graphics/interface/85DFA60.bin b/graphics/pokeblock/use_screen/mon_frame_pal.bin similarity index 100% rename from graphics/interface/85DFA60.bin rename to graphics/pokeblock/use_screen/mon_frame_pal.bin diff --git a/graphics/pokenav/86231E8.pal b/graphics/pokenav/condition/graph_data.pal similarity index 100% rename from graphics/pokenav/86231E8.pal rename to graphics/pokenav/condition/graph_data.pal diff --git a/graphics/pokenav/pokeball.png b/graphics/pokenav/condition/pokeball.png similarity index 100% rename from graphics/pokenav/pokeball.png rename to graphics/pokenav/condition/pokeball.png diff --git a/graphics/pokenav/pokeball_placeholder.png b/graphics/pokenav/condition/pokeball_placeholder.png similarity index 100% rename from graphics/pokenav/pokeball_placeholder.png rename to graphics/pokenav/condition/pokeball_placeholder.png diff --git a/graphics/pokenav/sparkle.png b/graphics/pokenav/condition/sparkle.png similarity index 100% rename from graphics/pokenav/sparkle.png rename to graphics/pokenav/condition/sparkle.png diff --git a/include/menu_specialized.h b/include/menu_specialized.h index 14a2464680..8b78c17346 100644 --- a/include/menu_specialized.h +++ b/include/menu_specialized.h @@ -55,12 +55,12 @@ bool8 sub_81D3150(s16 *var); bool8 sub_81D3178(struct UnknownStruct_81D1ED4 *arg0, s16 *arg1); bool8 sub_81D31A4(struct UnknownStruct_81D1ED4 *arg0, s16 *arg1); void sub_81D31D0(struct SpriteSheet *sheet, struct SpriteTemplate *template, struct SpritePalette *pal); -void sub_81D321C(struct SpriteSheet *sheets, struct SpriteTemplate * template, struct SpritePalette *pals); -void sub_81D32B0(struct SpriteSheet *sheet, struct SpritePalette *pal); -void sub_81D3464(struct Sprite **sprites); -void sub_81D3480(struct Sprite **sprites, u8 arg1, u8 arg2); -void sub_81D3520(struct Sprite **sprites); -void sub_81D354C(struct Sprite **sprites); +void LoadConditionSelectionIcons(struct SpriteSheet *sheets, struct SpriteTemplate * template, struct SpritePalette *pals); +void LoadConditionSparkle(struct SpriteSheet *sheet, struct SpritePalette *pal); +void ResetConditionSparkleSprites(struct Sprite **sprites); +void CreateConditionSparkleSprites(struct Sprite **sprites, u8 arg1, u8 arg2); +void DestroyConditionSparkleSprites(struct Sprite **sprites); +void FreeConditionSparkles(struct Sprite **sprites); void DrawLevelUpWindowPg1(u16 windowId, u16 *statsBefore, u16 *statsAfter, u8 bgClr, u8 fgClr, u8 shadowClr); void DrawLevelUpWindowPg2(u16 windowId, u16 *currStats, u8 bgClr, u8 fgClr, u8 shadowClr); void GetMonLevelUpWindowStats(struct Pokemon *mon, u16 *currStats); diff --git a/src/graphics.c b/src/graphics.c index b774c5ad21..242d327eb0 100644 --- a/src/graphics.c +++ b/src/graphics.c @@ -1313,7 +1313,6 @@ const u16 gContestResults_Tilemap[] = INCBIN_U16("graphics/contest/results_scree // pokenav const u16 gPokenavCondition_Pal[] = INCBIN_U16("graphics/pokenav/condition.gbapal"); - const u32 gPokenavCondition_Gfx[] = INCBIN_U32("graphics/pokenav/condition.4bpp.lz"); const u32 gPokenavCondition_Tilemap[] = INCBIN_U32("graphics/pokenav/condition.bin.lz"); diff --git a/src/menu_specialized.c b/src/menu_specialized.c index b7dd1f33af..b623bada3c 100644 --- a/src/menu_specialized.c +++ b/src/menu_specialized.c @@ -27,6 +27,8 @@ #include "constants/species.h" #include "gba/io_reg.h" +#define TAG_CONDITION_SPARKLE 104 + extern const struct CompressedSpriteSheet gMonFrontPicTable[]; EWRAM_DATA static u8 sUnknown_0203CF48[3] = {0}; @@ -38,7 +40,7 @@ static void sub_81D2634(struct UnknownStruct_81D1ED4 *a0); static void MoveRelearnerCursorCallback(s32 itemIndex, bool8 onInit, struct ListMenu *list); static void nullsub_79(void); static void sub_81D3408(struct Sprite *sprite); -static void sub_81D3564(struct Sprite *sprite); +static void SpriteCB_ConditionSparkle(struct Sprite *sprite); static void sub_81D35E8(struct Sprite *sprite); static const struct WindowTemplate sUnknown_086253E8[] = @@ -1096,10 +1098,10 @@ bool8 sub_81D31A4(struct UnknownStruct_81D1ED4 *arg0, s16 *arg1) return ((var1 != 0) || (var2 != 0)); } -static const u32 gUnknown_08625560[] = INCBIN_U32("graphics/pokenav/pokeball.4bpp"); -static const u32 gUnknown_08625660[] = INCBIN_U32("graphics/pokenav/pokeball_placeholder.4bpp"); -static const u16 gUnknown_08625680[] = INCBIN_U16("graphics/pokenav/sparkle.gbapal"); -static const u32 gUnknown_086256A0[] = INCBIN_U32("graphics/pokenav/sparkle.4bpp"); +static const u32 sConditionPokeball_Gfx[] = INCBIN_U32("graphics/pokenav/condition/pokeball.4bpp"); +static const u32 sConditionPokeballPlaceholder_Gfx[] = INCBIN_U32("graphics/pokenav/condition/pokeball_placeholder.4bpp"); +static const u16 sConditionSparkle_Gfx[] = INCBIN_U16("graphics/pokenav/condition/sparkle.gbapal"); +static const u32 sConditionSparkle_Pal[] = INCBIN_U32("graphics/pokenav/condition/sparkle.4bpp"); static const struct OamData sOamData_8625A20 = { @@ -1175,14 +1177,14 @@ void sub_81D31D0(struct SpriteSheet *sheet, struct SpriteTemplate *template, str *pal = dataPal; } -void sub_81D321C(struct SpriteSheet *sheets, struct SpriteTemplate * template, struct SpritePalette *pals) +void LoadConditionSelectionIcons(struct SpriteSheet *sheets, struct SpriteTemplate * template, struct SpritePalette *pals) { u8 i; struct SpriteSheet dataSheets[] = { - {gUnknown_08625560, 0x100, 101}, - {gUnknown_08625660, 0x20, 103}, + {sConditionPokeball_Gfx, 0x100, 101}, + {sConditionPokeballPlaceholder_Gfx, 0x20, 103}, {gPokenavConditionCancel_Gfx, 0x100, 102}, {}, }; @@ -1214,10 +1216,10 @@ void sub_81D321C(struct SpriteSheet *sheets, struct SpriteTemplate * template, s *(pals++) = dataPals[i]; } -void sub_81D32B0(struct SpriteSheet *sheet, struct SpritePalette *pal) +void LoadConditionSparkle(struct SpriteSheet *sheet, struct SpritePalette *pal) { - struct SpriteSheet dataSheet = {gUnknown_086256A0, 0x380, 104}; - struct SpritePalette dataPal = {gUnknown_08625680, 104}; + struct SpriteSheet dataSheet = {sConditionSparkle_Pal, 0x380, TAG_CONDITION_SPARKLE}; + struct SpritePalette dataPal = {sConditionSparkle_Gfx, TAG_CONDITION_SPARKLE}; *sheet = dataSheet; *pal = dataPal; @@ -1241,7 +1243,7 @@ static void sub_81D32F4(struct Sprite *sprite) } } -static const struct OamData sOamData_8625AD0 = +static const struct OamData sOam_ConditionSparkle = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -1253,7 +1255,7 @@ static const struct OamData sOamData_8625AD0 = .priority = 0, }; -static const union AnimCmd sSpriteAnim_8625AD8[] = +static const union AnimCmd sAnim_ConditionSparkle[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_FRAME(4, 5), @@ -1265,38 +1267,38 @@ static const union AnimCmd sSpriteAnim_8625AD8[] = ANIMCMD_END }; -static const union AnimCmd *const sSpriteAnimTable_8625AF8[] = +static const union AnimCmd *const sAnims_ConditionSparkle[] = { - sSpriteAnim_8625AD8, - sSpriteAnim_8625AD8 + 2, + sAnim_ConditionSparkle, + sAnim_ConditionSparkle + 2, }; // unused static const union AnimCmd *const sSpriteAnimTable_8625B00[] = { - sSpriteAnim_8625AD8 + 4, - sSpriteAnim_8625AD8 + 6, + sAnim_ConditionSparkle + 4, + sAnim_ConditionSparkle + 6, }; // unused static const union AnimCmd *const sSpriteAnimTable_8625B08[] = { - sSpriteAnim_8625AD8 + 8, - sSpriteAnim_8625AD8 + 10, + sAnim_ConditionSparkle + 8, + sAnim_ConditionSparkle + 10, }; // unused static const union AnimCmd *const *const sUnknown_08625B10 = sSpriteAnimTable_8625B08; -const struct SpriteTemplate gUnknown_08625B14 = +static const struct SpriteTemplate sSpriteTemplate_ConditionSparkle = { - .tileTag = 104, - .paletteTag = 104, - .oam = &sOamData_8625AD0, - .anims = sSpriteAnimTable_8625AF8, + .tileTag = TAG_CONDITION_SPARKLE, + .paletteTag = TAG_CONDITION_SPARKLE, + .oam = &sOam_ConditionSparkle, + .anims = sAnims_ConditionSparkle, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_81D3564, + .callback = SpriteCB_ConditionSparkle, }; static const s16 gUnknown_08625B2C[][2] = @@ -1313,7 +1315,7 @@ static const s16 gUnknown_08625B2C[][2] = {-20, -28}, }; -void sub_81D3314(struct Sprite *sprite) +static void sub_81D3314(struct Sprite *sprite) { struct Sprite *sprite2 = &gSprites[sprite->data[4]]; @@ -1329,7 +1331,7 @@ void sub_81D3314(struct Sprite *sprite) } } -void sub_81D338C(u8 arg0, u8 arg1, struct Sprite **sprites) +static void sub_81D338C(u8 arg0, u8 arg1, struct Sprite **sprites) { u16 i; @@ -1343,7 +1345,7 @@ void sub_81D338C(u8 arg0, u8 arg1, struct Sprite **sprites) sprites[i]->data[3] = i; if (arg1 == 0 || arg0 != 9) { - sprites[i]->callback = sub_81D3564; + sprites[i]->callback = SpriteCB_ConditionSparkle; } else { @@ -1364,12 +1366,12 @@ static void sub_81D3408(struct Sprite *sprite) for (i = 0; i < sprite->data[2] + 1; i++) { gSprites[id].data[1] = (gSprites[id].data[0] * 16) + 1; - gSprites[id].callback = sub_81D3564; + gSprites[id].callback = SpriteCB_ConditionSparkle; id = gSprites[id].data[5]; } } -void sub_81D3464(struct Sprite **sprites) +void ResetConditionSparkleSprites(struct Sprite **sprites) { u8 i; @@ -1377,14 +1379,14 @@ void sub_81D3464(struct Sprite **sprites) sprites[i] = NULL; } -void sub_81D3480(struct Sprite **sprites, u8 arg1, u8 arg2) +void CreateConditionSparkleSprites(struct Sprite **sprites, u8 arg1, u8 _count) { u16 i, spriteId, firstSpriteId = 0; - u8 count = arg2; + u8 count = _count; for (i = 0; i < count + 1; i++) { - spriteId = CreateSprite(&gUnknown_08625B14, 0, 0, 0); + spriteId = CreateSprite(&sSpriteTemplate_ConditionSparkle, 0, 0, 0); if (spriteId != MAX_SPRITES) { sprites[i] = &gSprites[spriteId]; @@ -1405,7 +1407,7 @@ void sub_81D3480(struct Sprite **sprites, u8 arg1, u8 arg2) sub_81D338C(count, 1, sprites); } -void sub_81D3520(struct Sprite **sprites) +void DestroyConditionSparkleSprites(struct Sprite **sprites) { u16 i; @@ -1423,14 +1425,14 @@ void sub_81D3520(struct Sprite **sprites) } } -void sub_81D354C(struct Sprite **sprites) +void FreeConditionSparkles(struct Sprite **sprites) { - sub_81D3520(sprites); - FreeSpriteTilesByTag(104); - FreeSpritePaletteByTag(104); + DestroyConditionSparkleSprites(sprites); + FreeSpriteTilesByTag(TAG_CONDITION_SPARKLE); + FreeSpritePaletteByTag(TAG_CONDITION_SPARKLE); } -static void sub_81D3564(struct Sprite *sprite) +static void SpriteCB_ConditionSparkle(struct Sprite *sprite) { if (sprite->data[1] != 0) { diff --git a/src/pokenav_conditions_2.c b/src/pokenav_conditions_2.c index 65a85aa7ec..ad769adcf5 100644 --- a/src/pokenav_conditions_2.c +++ b/src/pokenav_conditions_2.c @@ -24,7 +24,7 @@ u32 sub_81CE700(s32); BSS_DATA u8 gUnknown_030012BC; -const u16 gUnknown_086231E8[] = INCBIN_U16("graphics/pokenav/86231E8.gbapal"); +const u16 gConditionGraphData_Pal[] = INCBIN_U16("graphics/pokenav/condition/graph_data.gbapal"); const u16 gUnknown_08623208[] = INCBIN_U16("graphics/pokenav/8623208.gbapal"); const u32 gUnknown_08623228[] = INCBIN_U32("graphics/pokenav/8623228.4bpp.lz"); const u32 gUnknown_0862323C[] = INCBIN_U32("graphics/pokenav/862323C.bin.lz"); @@ -236,7 +236,7 @@ u32 sub_81CDE94(s32 state) LZ77UnCompVram(gUnknown_0862323C, structPtr->tilemapBuffers[2]); SetBgTilemapBuffer(2, structPtr->tilemapBuffers[2]); CopyBgTilemapBufferToVram(2); - CopyPaletteIntoBufferUnfaded(gUnknown_086231E8, 0x30, 0x20); + CopyPaletteIntoBufferUnfaded(gConditionGraphData_Pal, 0x30, 0x20); sub_81D21DC(2); return LT_INC_AND_PAUSE; case 5: @@ -325,9 +325,9 @@ u32 sub_81CDE94(s32 state) case 20: if (!sub_81D3178(sub_81CDC70(), &structPtr->unk1814)) { - sub_81D3464(structPtr->unk28e0); + ResetConditionSparkleSprites(structPtr->unk28e0); if (sub_81CDD5C() == TRUE || sub_81CDC60() != sub_81CDC50()) - sub_81D3480(structPtr->unk28e0, structPtr->unk1816, sub_81CDDB0()); + CreateConditionSparkleSprites(structPtr->unk28e0, structPtr->unk1816, sub_81CDDB0()); return LT_FINISH; } @@ -345,7 +345,7 @@ u32 sub_81CE2D0(s32 state) { case 0: sub_81CEEC8(); - sub_81D3520(structPtr->unk28e0); + DestroyConditionSparkleSprites(structPtr->unk28e0); return 1; case 1: if (sub_81D31A4(sub_81CDC70(), &structPtr->unk1814)) @@ -360,7 +360,7 @@ u32 sub_81CE2D0(s32 state) case 3: if (IsPaletteFadeActive() || MainMenuLoopedTaskIsBusy()) return 2; - sub_81D354C(structPtr->unk28e0); + FreeConditionSparkles(structPtr->unk28e0); HideBg(1); HideBg(2); HideBg(3); @@ -385,7 +385,7 @@ u32 sub_81CE37C(s32 state) return 1; case 2: sub_81CD548(2); - sub_81D3520(structPtr->unk28e0); + DestroyConditionSparkleSprites(structPtr->unk28e0); return 1; case 3: sub_81D2074(unkPtr); @@ -414,11 +414,11 @@ u32 sub_81CE37C(s32 state) unkPtr = sub_81CDC70(); if (!sub_81D3178(unkPtr, &structPtr->unk1814)) { - sub_81D3464(structPtr->unk28e0); + ResetConditionSparkleSprites(structPtr->unk28e0); if (sub_81CDD5C() != TRUE && sub_81CDC60() == sub_81CDC50()) return 1; - sub_81D3480(structPtr->unk28e0, structPtr->unk1816, sub_81CDDB0()); + CreateConditionSparkleSprites(structPtr->unk28e0, structPtr->unk1816, sub_81CDDB0()); return 1; } return 2; @@ -461,8 +461,8 @@ u32 sub_81CE4D8(s32 state) case 8: if (!sub_81D3178(sub_81CDC70(), &structPtr->unk1814)) { - sub_81D3464(structPtr->unk28e0); - sub_81D3480(structPtr->unk28e0, structPtr->unk1816, sub_81CDDB0()); + ResetConditionSparkleSprites(structPtr->unk28e0); + CreateConditionSparkleSprites(structPtr->unk28e0, structPtr->unk1816, sub_81CDDB0()); return 1; } return 2; @@ -485,7 +485,7 @@ u32 sub_81CE5E4(s32 state) return 1; case 2: sub_81CD548(2); - sub_81D3520(structPtr->unk28e0); + DestroyConditionSparkleSprites(structPtr->unk28e0); return 1; case 3: if (!sub_81D31A4(sub_81CDC70(), &structPtr->unk1814)) @@ -663,7 +663,7 @@ void sub_81CE9E4(void) u16 i, spriteId; struct Pokenav7Struct *structPtr = GetSubstructPtr(0xC); - sub_81D321C(sprSheets, &sprTemplate, sprPals); + LoadConditionSelectionIcons(sprSheets, &sprTemplate, sprPals); if (sub_81CDD5C() == TRUE) { structPtr->monMarks.baseTileTag = 0x6A; @@ -728,7 +728,7 @@ void sub_81CE9E4(void) } } - sub_81D32B0(&sprSheet, &sprPals[0]); + LoadConditionSparkle(&sprSheet, &sprPals[0]); LoadSpriteSheet(&sprSheet); sprPals[1].data = NULL; Pokenav_AllocAndLoadPalettes(sprPals); diff --git a/src/use_pokeblock.c b/src/use_pokeblock.c index 5079edb379..72490bde2f 100644 --- a/src/use_pokeblock.c +++ b/src/use_pokeblock.c @@ -24,54 +24,73 @@ #include "pokemon_summary_screen.h" #include "item_menu.h" -struct UsePokeblockSubStruct +/* + This file handles the pokeblock screen where the player + chooses which pokemon to give a pokeblock to. The subsequent + scene of feeding the pokeblock to the pokemon is handled by + pokeblock_feed.c, and the rest of the pokeblock menu (and + other pokeblock-related functions) are in pokeblock.c +*/ + +enum { + WIN_NAME, + WIN_NATURE, + WIN_TEXT, + WIN_COUNT +}; + +struct UsePokeblockSession { - /*0x00*/ void (*field_0)(void); - /*0x04*/ void (*callback)(void); + /*0x00*/ void (*callback)(void); + /*0x04*/ void (*exitCallback)(void); /*0x08*/ struct Pokeblock *pokeblock; /*0x0C*/ struct Pokemon *mon; /*0x10*/ u8 stringBuffer[0x40]; - /*0x50*/ u8 field_50; - /*0x51*/ u8 field_51; + /*0x50*/ u8 mainState; + /*0x51*/ u8 field_51; // unused /*0x52*/ u8 field_52; /*0x53*/ u8 field_53; - /*0x54*/ u8 field_54; - /*0x55*/ u8 field_55; + /*0x54*/ u8 numEnhancements; + /*0x55*/ u8 field_55; // unused /*0x56*/ u8 field_56; - /*0x57*/ u8 field_57[5]; - /*0x5C*/ u8 field_5c[5]; - /*0x61*/ u8 field_61[5]; - /*0x66*/ s16 field_66[5]; - /*0x70*/ u8 field_70; - /*0x71*/ u8 field_71; - /*0x74*/ u8 (*unk74)(void); - /*0x78*/ u8 unk78; - /*0x79*/ u8 filler79[0x1]; - /*0x7A*/ u8 field_7A[0x22]; + /*0x57*/ u8 field_57[FLAVOR_COUNT]; + /*0x5C*/ u8 field_5c[FLAVOR_COUNT]; + /*0x61*/ u8 field_61[FLAVOR_COUNT]; + /*0x66*/ s16 field_66[FLAVOR_COUNT]; + /*0x70*/ u8 field_70; // mon id + 1 + /*0x71*/ u8 field_71; // mon id + /*0x74*/ u8 (*unk74)(void); // selection handler + /*0x78*/ u8 helperState; + /*0x79*/ u8 filler79[1]; // unused + /*0x7A*/ u8 field_7A[0x22]; // nature text buffer }; -struct Unk7FB8 +// This struct is identical to PokenavMonList, the struct used for managing lists of pokemon in the pokenav +// Given that this screen is essentially duplicated in the poknav, this struct was probably the same one with +// a more general name/purpose +// TODO: Once the pokenav conditions screens are documented, resolve the above +struct UsePokeblockMenuPokemon { - u8 unk0; - u8 unk1; - u16 unk2; + u8 boxId; // Because this screen is never used for the PC this is always set to TOTAL_BOXES_COUNT to refer to party + u8 monId; + u16 data; // never read }; -struct UsePokeblockStruct +struct UsePokeblockMenu { - /*0x0000*/ u8 filler0[4]; - /*0x0000*/ u16 field_4[6][0x40]; - /*0x0304*/ u8 field_304[3][0x2000]; - /*0x6304*/ u8 filler_6304[0x1000]; + /*0x0000*/ u8 filler0[4]; // unused + /*0x0000*/ u16 field_4[6][0x40]; // pal buffer + /*0x0304*/ u8 field_304[3][0x2000]; // sheet buffer + /*0x6304*/ u8 filler_6304[0x1000]; // unused? /*0x7304*/ u8 tilemapBuffer[BG_SCREEN_SIZE + 2]; - /*0x7B06*/ u8 field_7B06[7]; - /*0x7B0E*/ s16 field_7B0E; - /*0x7B10*/ u8 field_7B10; - /*0x7B12*/ u16 field_7B12; - /*0x7B12*/ u16 field_7B14; + /*0x7B06*/ u8 field_7B06[7]; // sprite ids + /*0x7B0E*/ s16 field_7B0E; // x pos? + /*0x7B10*/ u8 field_7B10; // sprite id? + /*0x7B12*/ u16 field_7B12; // pal + /*0x7B12*/ u16 field_7B14; // sheet /*0x7B12*/ u8 *field_7B18; - /*0x7B1C*/ struct Sprite *field_7B1C[10]; - /*0x7B44*/ struct Sprite *field_7B44[2]; + /*0x7B1C*/ struct Sprite *sparkles[10]; + /*0x7B44*/ struct Sprite *condition[2]; /*0x7B4C*/ u8 field_7B4C; /*0x7B4D*/ u8 field_7B4D[3][24]; /*0x7B95*/ u8 field_7B95[3][64]; @@ -81,86 +100,78 @@ struct UsePokeblockStruct /*0x7FB4*/ s8 field_7FB4; /*0x7FB5*/ s8 field_7FB5; /*0x7FB6*/ s8 field_7FB6; - /*0x7FB8*/ struct Unk7FB8 field_7FB8[6]; - /*0x7FD0*/ struct UsePokeblockSubStruct info; + /*0x7FB8*/ struct UsePokeblockMenuPokemon party[PARTY_SIZE]; + /*0x7FD0*/ struct UsePokeblockSession info; }; -#define TAG_TILE_CONDITION_UP_DOWN 0 -#define TAG_PAL_CONDITION_UP_DOWN 0 -#define TAG_PAL_POKEBLOCK_CONDITION 1 +#define TAG_UP_DOWN 0 +#define TAG_CONDITION 1 -extern void sub_81D21DC(u8); - -// this file's functions -void sub_816636C(void (*func)(void)); -void sub_8166380(void); -void sub_816631C(void); -void sub_81662C0(void); -void sub_8166564(void); -void sub_8166304(void); -void sub_81668F8(void); -void sub_8167420(void); -void sub_8167760(void); -u8 sub_81672E4(u8 arg0); +static void SetUsePokeblockCallback(void (*func)(void)); +static void LoadUsePokeblockMenu(void); +static void sub_816631C(void); +static void sub_81662C0(void); +static void ShowUsePokeblockMenu(void); +static void sub_8166304(void); +static void sub_81668F8(void); +static void sub_8167420(void); +static void sub_8167760(void); +static u8 GetNumNonEggPartyMons(u8); static bool8 sub_8168328(void); -bool8 sub_8167930(void); -void sub_8167608(u8 arg0); -void sub_8167BA0(u16 arg0, u8 copyToVramMode); -void sub_8166634(void); +static bool8 LoadUsePokeblockGfx(void); +static void sub_8167608(u8); +static void UpdateMonInfoText(u16, bool8); +static void UsePokeblockMenu(void); static void sub_8167CA0(bool8); -void sub_8166BEC(void); -void sub_8166D44(void); -s8 sub_8166DE4(void); -bool8 IsSheenMaxed(void); -void sub_8166F50(void); -void sub_816681C(void); -void sub_8166F94(void); -u8 sub_81672A4(u8 a0); -void sub_8166A34(void); -void sub_8167104(void); -void sub_8167338(void); -void sub_81681F4(u8); -void sub_8166E24(void); -bool8 sub_8166EDC(void); -void Pokeblock_BufferEnhancedStatText(u8 *dest, u8 statId, s16 a2); -void Pokeblock_MenuWindowTextPrint(const u8 *message); -void sub_8167184(struct Pokeblock *, struct Pokemon *); -void sub_81673DC(struct Sprite *sprite); -void sub_81674BC(void); -void sub_816753C(s16, u8); +static void CloseUsePokeblockMenu(void); +static void AskUsePokeblock(void); +static s8 HandleAskUsePokeblockInput(void); +static bool8 IsSheenMaxed(void); +static void PrintWontEatAnymore(void); +static void FeedPokeblockToMon(void); +static void EraseMenuWindow(void); +static u8 sub_81672A4(u8); +static void sub_8166A34(void); +static void sub_8167104(void); +static void sub_8167338(void); +static void sub_81681F4(u8); +static void sub_8166E24(void); +static bool8 sub_8166EDC(void); +static void BufferEnhancedStatText(u8 *, u8, s16); +static void PrintMenuWindowText(const u8 *); +static void sub_8167184(struct Pokeblock *, struct Pokemon *); +static void sub_81673DC(struct Sprite *); +static void sub_81674BC(void); +static void sub_816753C(s16, u8); static u8 sub_8167EA4(void); static u8 sub_8167FA4(void); static u8 sub_8168048(void); -void sub_8168180(struct Sprite *sprite); -void sub_81681B4(struct Sprite *sprite); -void sub_8168168(struct Sprite *sprite); -void sub_8168374(struct Sprite *sprite); +static void sub_8168180(struct Sprite *); +static void sub_81681B4(struct Sprite *); +static void sub_8168168(struct Sprite *); +static void sub_8168374(struct Sprite *); -extern const u16 gUnknown_086231E8[]; +extern const u16 gConditionGraphData_Pal[]; extern const u16 gUnknown_08623208[]; -extern const struct SpritePalette gSpritePalette_085DFDB8; -extern const struct SpriteTemplate gSpriteTemplate_085DFDA0; -// ram variables -EWRAM_DATA struct UsePokeblockSubStruct *gUnknown_0203BC90 = NULL; -EWRAM_DATA void (*gUnknown_0203BC94)(void) = NULL; -EWRAM_DATA struct Pokeblock *gUnknown_0203BC98 = NULL; +// The below 3 are saved for returning to the screen after feeding a pokeblock to a mon +// so that the rest of the data can be freed +static EWRAM_DATA struct UsePokeblockSession *sInfo = NULL; +static EWRAM_DATA void (*sExitCallback)(void) = NULL; +static EWRAM_DATA struct Pokeblock *sPokeblock = NULL; EWRAM_DATA u8 gPokeblockMonId = 0; EWRAM_DATA s16 gPokeblockGain = 0; -EWRAM_DATA u8 *gUnknown_0203BCA0 = NULL; -EWRAM_DATA u8 *gUnknown_0203BCA4 = NULL; -EWRAM_DATA u8 *gUnknown_0203BCA8 = NULL; -EWRAM_DATA struct UsePokeblockStruct *gUnknown_0203BCAC = NULL; +static EWRAM_DATA u8 *sGraph_Tilemap = NULL; +static EWRAM_DATA u8 *sGraph_Gfx = NULL; +static EWRAM_DATA u8 *sMonFrame_TilemapPtr = NULL; +static EWRAM_DATA struct UsePokeblockMenu *sMenu = NULL; -// const rom data -// todo: make it static once the file is decompiled +static const u32 sMonFrame_Pal[] = INCBIN_U32("graphics/pokeblock/use_screen/mon_frame_pal.bin"); // TODO: convert to .pal +static const u32 sMonFrame_Gfx[] = INCBIN_U32("graphics/pokeblock/use_screen/mon_frame.4bpp"); +static const u32 sMonFrame_Tilemap[] = INCBIN_U32("graphics/pokeblock/use_screen/mon_frame.bin"); +static const u32 sGraphData_Tilemap[] = INCBIN_U32("graphics/pokeblock/use_screen/graph_data.bin"); -const u32 gUnknown_085DFA60[] = INCBIN_U32("graphics/interface/85DFA60.bin"); -const u32 gUnknown_085DFA80[] = INCBIN_U32("graphics/interface/85DFA80.4bpp"); -const u32 gUnknown_085DFB60[] = INCBIN_U32("graphics/interface/85DFB60.bin"); -const u32 gUnknown_085DFC0C[] = INCBIN_U32("graphics/interface/85DFC0C.bin"); - -const u32 gUnknown_085DFCB0[] = +static const u32 gUnknown_085DFCB0[] = { MON_DATA_COOL, MON_DATA_TOUGH, @@ -169,13 +180,13 @@ const u32 gUnknown_085DFCB0[] = MON_DATA_BEAUTY }; -const u8 gUnknown_085DFCC4[] = +static const u8 sFlavors[FLAVOR_COUNT] = { - 0, // Spicy/Cool - 4, // Dry/Beauty - 3, // Sweet/Cute - 2, // Bitter/Smart - 1 // Sour/Tough + FLAVOR_SPICY, + FLAVOR_SOUR, + FLAVOR_BITTER, + FLAVOR_SWEET, + FLAVOR_DRY }; static const u8 sNatureTextColors[] = @@ -185,7 +196,7 @@ static const u8 sNatureTextColors[] = TEXT_COLOR_WHITE }; -const struct BgTemplate gUnknown_085DFCCC[4] = +static const struct BgTemplate sBgTemplates[4] = { { .bg = 0, @@ -225,50 +236,50 @@ const struct BgTemplate gUnknown_085DFCCC[4] = } }; -const struct WindowTemplate gUnknown_085DFCDC[] = +static const struct WindowTemplate sWindowTemplates[WIN_COUNT + 1] = { - { + [WIN_NAME] = { .bg = 0, - .tilemapLeft = 0xD, + .tilemapLeft = 13, .tilemapTop = 1, - .width = 0xD, + .width = 13, .height = 4, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 1 }, - { + [WIN_NATURE] = { .bg = 0, .tilemapLeft = 0, - .tilemapTop = 0xE, - .width = 0xB, + .tilemapTop = 14, + .width = 11, .height = 2, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x35 }, - { + [WIN_TEXT] = { .bg = 0, .tilemapLeft = 1, - .tilemapTop = 0x11, - .width = 0x1C, + .tilemapTop = 17, + .width = 28, .height = 2, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x4B }, DUMMY_WIN_TEMPLATE }; -const struct WindowTemplate sUsePokeblockYesNoWinTemplate = +static const struct WindowTemplate sUsePokeblockYesNoWinTemplate = { .bg = 0, - .tilemapLeft = 0x18, - .tilemapTop = 0xB, + .tilemapLeft = 24, + .tilemapTop = 11, .width = 5, .height = 4, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x83 }; -const u8 *const sContestStatNames[] = +static const u8 *const sContestStatNames[] = { gText_Coolness, gText_Toughness, @@ -277,17 +288,17 @@ const u8 *const sContestStatNames[] = gText_Beauty3 }; -const struct SpriteSheet gSpriteSheet_ConditionUpDown = +static const struct SpriteSheet sSpriteSheet_UpDown = { - gUsePokeblockUpDown_Gfx, 0x200, TAG_TILE_CONDITION_UP_DOWN + gUsePokeblockUpDown_Gfx, 0x200, TAG_UP_DOWN }; -const struct SpritePalette gSpritePalette_ConditionUpDown = +static const struct SpritePalette sSpritePalette_UpDown = { - gUsePokeblockUpDown_Pal, TAG_PAL_CONDITION_UP_DOWN + gUsePokeblockUpDown_Pal, TAG_UP_DOWN }; -const s16 gUnknown_085DFD28[][2] = +static const s16 gUnknown_085DFD28[][2] = { {0x9C, 0x24}, {0x75, 0x3B}, @@ -296,7 +307,7 @@ const s16 gUnknown_085DFD28[][2] = {0xC5, 0x3B} }; -const struct OamData gOamData_085DFD3C = +static const struct OamData sOam_UpDown = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -310,36 +321,36 @@ const struct OamData gOamData_085DFD3C = .paletteNum = 0, }; -const union AnimCmd gSpriteAnim_085DFD44[] = +static const union AnimCmd sAnim_Up[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_END }; -const union AnimCmd gSpriteAnim_085DFD4C[] = +static const union AnimCmd sAnim_Down[] = { ANIMCMD_FRAME(8, 5), ANIMCMD_END }; -const union AnimCmd *const gSpriteAnimTable_085DFD54[] = +static const union AnimCmd *const sAnims_UpDown[] = { - gSpriteAnim_085DFD44, - gSpriteAnim_085DFD4C + sAnim_Up, + sAnim_Down }; -const struct SpriteTemplate gSpriteTemplate_085DFD5C = +static const struct SpriteTemplate sSpriteTemplate_UpDown = { - .tileTag = 0, - .paletteTag = 0, - .oam = &gOamData_085DFD3C, - .anims = gSpriteAnimTable_085DFD54, + .tileTag = TAG_UP_DOWN, + .paletteTag = TAG_UP_DOWN, + .oam = &sOam_UpDown, + .anims = sAnims_UpDown, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy, }; -const struct OamData gOamData_085DFD74 = +static const struct OamData sOam_Condition = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -353,84 +364,85 @@ const struct OamData gOamData_085DFD74 = .paletteNum = 0, }; -const union AnimCmd gSpriteAnim_085DFD7C[] = +static const union AnimCmd gSpriteAnim_085DFD7C[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_END }; -const union AnimCmd gSpriteAnim_085DFD84[] = +static const union AnimCmd gSpriteAnim_085DFD84[] = { ANIMCMD_FRAME(32, 5), ANIMCMD_END }; -const union AnimCmd gSpriteAnim_085DFD8C[] = +static const union AnimCmd gSpriteAnim_085DFD8C[] = { ANIMCMD_FRAME(64, 5), ANIMCMD_END }; -const union AnimCmd *const gSpriteAnimTable_085DFD94[] = +static const union AnimCmd *const sAnims_Condition[] = { gSpriteAnim_085DFD7C, gSpriteAnim_085DFD84, gSpriteAnim_085DFD8C }; -const struct SpriteTemplate gSpriteTemplate_085DFDA0 = +static const struct SpriteTemplate sSpriteTemplate_Condition = { - .tileTag = 1, - .paletteTag = 1, - .oam = &gOamData_085DFD74, - .anims = gSpriteAnimTable_085DFD94, + .tileTag = TAG_CONDITION, + .paletteTag = TAG_CONDITION, + .oam = &sOam_Condition, + .anims = sAnims_Condition, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = sub_8168374, }; -const struct SpritePalette gSpritePalette_085DFDB8 = +static const struct SpritePalette sSpritePalette_Condition = { - gUsePokeblockCondition_Pal, TAG_PAL_POKEBLOCK_CONDITION + gUsePokeblockCondition_Pal, TAG_CONDITION }; -// code +// When first opening the selection screen void ChooseMonToGivePokeblock(struct Pokeblock *pokeblock, void (*callback)(void)) { - gUnknown_0203BCAC = AllocZeroed(sizeof(*gUnknown_0203BCAC)); - gUnknown_0203BC90 = &gUnknown_0203BCAC->info; - gUnknown_0203BC90->pokeblock = pokeblock; - gUnknown_0203BC90->callback = callback; - sub_816636C(sub_8166380); + sMenu = AllocZeroed(sizeof(*sMenu)); + sInfo = &sMenu->info; + sInfo->pokeblock = pokeblock; + sInfo->exitCallback = callback; + SetUsePokeblockCallback(LoadUsePokeblockMenu); SetMainCallback2(sub_816631C); } -void CB2_ReturnAndChooseMonToGivePokeblock(void) +// When returning to the selection screen after feeding a pokeblock to a mon +static void CB2_ReturnAndChooseMonToGivePokeblock(void) { - gUnknown_0203BCAC = AllocZeroed(sizeof(*gUnknown_0203BCAC)); - gUnknown_0203BC90 = &gUnknown_0203BCAC->info; - gUnknown_0203BC90->pokeblock = gUnknown_0203BC98; - gUnknown_0203BC90->callback = gUnknown_0203BC94; - gPokeblockMonId = sub_81672E4(gPokeblockMonId); - gUnknown_0203BC90->field_56 = gPokeblockMonId < 4 ? 0 : 1; - sub_816636C(sub_8166380); + sMenu = AllocZeroed(sizeof(*sMenu)); + sInfo = &sMenu->info; + sInfo->pokeblock = sPokeblock; + sInfo->exitCallback = sExitCallback; + gPokeblockMonId = GetNumNonEggPartyMons(gPokeblockMonId); + sInfo->field_56 = gPokeblockMonId < 4 ? 0 : 1; + SetUsePokeblockCallback(LoadUsePokeblockMenu); SetMainCallback2(sub_81662C0); } -void sub_81662C0(void) +static void sub_81662C0(void) { - gUnknown_0203BC90->field_0(); + sInfo->callback(); AnimateSprites(); BuildOamBuffer(); UpdatePaletteFade(); - if (gUnknown_0203BC90->field_0 == sub_8166564) + if (sInfo->callback == ShowUsePokeblockMenu) { - gUnknown_0203BC90->field_50 = 0; + sInfo->mainState = 0; SetMainCallback2(sub_8166304); } } -void sub_8166304(void) +static void sub_8166304(void) { sub_81668F8(); AnimateSprites(); @@ -438,242 +450,255 @@ void sub_8166304(void) UpdatePaletteFade(); } -void sub_816631C(void) +static void sub_816631C(void) { - gUnknown_0203BC90->field_0(); + sInfo->callback(); AnimateSprites(); BuildOamBuffer(); RunTextPrinters(); UpdatePaletteFade(); } -void sub_8166340(void) +static void VBlankCB_UsePokeblock(void) { LoadOam(); ProcessSpriteCopyRequests(); TransferPlttBuffer(); - sub_81D2108(&gUnknown_0203BCAC->field_7C58); + sub_81D2108(&sMenu->field_7C58); ScanlineEffect_InitHBlankDmaTransfer(); } -void sub_816636C(void (*func)(void)) +static void SetUsePokeblockCallback(void (*func)(void)) { - gUnknown_0203BC90->field_0 = func; - gUnknown_0203BC90->field_50 = 0; + sInfo->callback = func; + sInfo->mainState = 0; } -void sub_8166380(void) +static void LoadUsePokeblockMenu(void) { - switch (gUnknown_0203BC90->field_50) + switch (sInfo->mainState) { case 0: - gUnknown_0203BCAC->field_7B10 = 0xFF; - sub_81D1ED4(&gUnknown_0203BCAC->field_7C58); - gUnknown_0203BC90->field_50++; + sMenu->field_7B10 = 0xFF; + sub_81D1ED4(&sMenu->field_7C58); + sInfo->mainState++; break; case 1: ResetSpriteData(); FreeAllSpritePalettes(); - gUnknown_0203BC90->field_50++; + sInfo->mainState++; break; case 2: SetVBlankCallback(NULL); CpuFill32(0, (void*)(VRAM), VRAM_SIZE); - gUnknown_0203BC90->field_50++; + sInfo->mainState++; break; case 3: ResetBgsAndClearDma3BusyFlags(0); - InitBgsFromTemplates(0, gUnknown_085DFCCC, ARRAY_COUNT(gUnknown_085DFCCC)); - InitWindows(gUnknown_085DFCDC); + InitBgsFromTemplates(0, sBgTemplates, ARRAY_COUNT(sBgTemplates)); + InitWindows(sWindowTemplates); DeactivateAllTextPrinters(); LoadUserWindowBorderGfx(0, 0x97, 0xE0); - gUnknown_0203BC90->field_50++; + sInfo->mainState++; break; case 4: - gUnknown_0203BC90->field_50++; + sInfo->mainState++; break; case 5: if (!sub_8168328()) - gUnknown_0203BC90->field_50++; + sInfo->mainState++; break; case 6: gKeyRepeatStartDelay = 20; sub_8167420(); - gUnknown_0203BC90->field_50++; + sInfo->mainState++; break; case 7: - if (!sub_8167930()) - gUnknown_0203BC90->field_50++; + if (!LoadUsePokeblockGfx()) + sInfo->mainState++; break; case 8: sub_8167608(0); sub_8167760(); - gUnknown_0203BC90->field_50++; + sInfo->mainState++; break; case 9: - if (!sub_81D312C(&gUnknown_0203BCAC->field_7B0E)) - gUnknown_0203BC90->field_50++; + if (!sub_81D312C(&sMenu->field_7B0E)) + sInfo->mainState++; break; case 10: - gUnknown_0203BC90->field_50++; + sInfo->mainState++; break; case 11: - sub_81D2754(gUnknown_0203BCAC->field_7C58.unk0[0], gUnknown_0203BCAC->field_7C58.unk14[0]); - sub_81D20AC(&gUnknown_0203BCAC->field_7C58); - gUnknown_0203BC90->field_50++; + sub_81D2754(sMenu->field_7C58.unk0[0], sMenu->field_7C58.unk14[0]); + sub_81D20AC(&sMenu->field_7C58); + sInfo->mainState++; break; case 12: - if (!sub_81D20BC(&gUnknown_0203BCAC->field_7C58)) + if (!sub_81D20BC(&sMenu->field_7C58)) { - sub_81D1F84(&gUnknown_0203BCAC->field_7C58, gUnknown_0203BCAC->field_7C58.unk14[0], gUnknown_0203BCAC->field_7C58.unk14[0]); - gUnknown_0203BC90->field_50++; + sub_81D1F84(&sMenu->field_7C58, sMenu->field_7C58.unk14[0], sMenu->field_7C58.unk14[0]); + sInfo->mainState++; } break; case 13: - sub_81D2230(&gUnknown_0203BCAC->field_7C58); - gUnknown_0203BC90->field_50++; + sub_81D2230(&sMenu->field_7C58); + sInfo->mainState++; break; case 14: - PutWindowTilemap(0); - PutWindowTilemap(1); - sub_8167BA0(0, 1); - gUnknown_0203BC90->field_50++; + PutWindowTilemap(WIN_NAME); + PutWindowTilemap(WIN_NATURE); + UpdateMonInfoText(0, TRUE); + sInfo->mainState++; break; case 15: - sub_816636C(sub_8166564); + SetUsePokeblockCallback(ShowUsePokeblockMenu); break; } } -void sub_8166564(void) +static void ShowUsePokeblockMenu(void) { - switch (gUnknown_0203BC90->field_50) + switch (sInfo->mainState) { case 0: BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); - SetVBlankCallback(sub_8166340); + SetVBlankCallback(VBlankCB_UsePokeblock); ShowBg(0); ShowBg(1); ShowBg(3); ShowBg(2); - gUnknown_0203BC90->field_50++; + sInfo->mainState++; break; case 1: if (!gPaletteFade.active) { - sub_81D3464(gUnknown_0203BCAC->field_7B1C); - if (gUnknown_0203BCAC->info.field_71 != gUnknown_0203BCAC->info.field_70 - 1) + ResetConditionSparkleSprites(sMenu->sparkles); + if (sMenu->info.field_71 != sMenu->info.field_70 - 1) { - u8 var0 = gUnknown_0203BCAC->unk7FB0[gUnknown_0203BCAC->field_7FB3]; - sub_81D3480(gUnknown_0203BCAC->field_7B1C, gUnknown_0203BCAC->field_7B10, var0); + u8 var0 = sMenu->unk7FB0[sMenu->field_7FB3]; + CreateConditionSparkleSprites(sMenu->sparkles, sMenu->field_7B10, var0); } - sub_816636C(sub_8166634); + SetUsePokeblockCallback(UsePokeblockMenu); } break; } } -void sub_8166634(void) +enum { + STATE_HANDLE_INPUT, + STATE_UPDATE_SELECTION, + STATE_2, // unused state + STATE_CLOSE, + STATE_4, // unused state + STATE_CONFIRM_SELECTION, + STATE_HANDLE_CONFIRMATION, + STATE_WAIT_MSG, +}; + +static void UsePokeblockMenu(void) { u8 var; - switch (gUnknown_0203BC90->field_50) + switch (sInfo->mainState) { - case 0: - if (gMain.heldKeys & DPAD_UP) + case STATE_HANDLE_INPUT: + if (JOY_HELD(DPAD_UP)) { PlaySE(SE_SELECT); sub_8167CA0(TRUE); - sub_81D3520(gUnknown_0203BCAC->field_7B1C); - gUnknown_0203BC90->field_50 = 1; + DestroyConditionSparkleSprites(sMenu->sparkles); + sInfo->mainState = STATE_UPDATE_SELECTION; } - else if (gMain.heldKeys & DPAD_DOWN) + else if (JOY_HELD(DPAD_DOWN)) { PlaySE(SE_SELECT); sub_8167CA0(FALSE); - sub_81D3520(gUnknown_0203BCAC->field_7B1C); - gUnknown_0203BC90->field_50 = 1; + DestroyConditionSparkleSprites(sMenu->sparkles); + sInfo->mainState = STATE_UPDATE_SELECTION; } - else if (gMain.newKeys & B_BUTTON) + else if (JOY_NEW(B_BUTTON)) { PlaySE(SE_SELECT); - gUnknown_0203BC90->field_50 = 3; + sInfo->mainState = STATE_CLOSE; } - else if (gMain.newKeys & A_BUTTON) + else if (JOY_NEW(A_BUTTON)) { PlaySE(SE_SELECT); - if (gUnknown_0203BCAC->info.field_71 == gUnknown_0203BCAC->info.field_70 - 1) - gUnknown_0203BC90->field_50 = 3; + + // If last item, selected Cancel. Otherwise selected mon + if (sMenu->info.field_71 == sMenu->info.field_70 - 1) + sInfo->mainState = STATE_CLOSE; else - gUnknown_0203BC90->field_50 = 5; + sInfo->mainState = STATE_CONFIRM_SELECTION; } break; - case 1: - var = gUnknown_0203BCAC->info.unk74(); + case STATE_UPDATE_SELECTION: + var = sMenu->info.unk74(); if (!var) - gUnknown_0203BC90->field_50 = var; + sInfo->mainState = STATE_HANDLE_INPUT; break; - case 2: + case STATE_2: break; - case 3: - sub_816636C(sub_8166BEC); + case STATE_CLOSE: + SetUsePokeblockCallback(CloseUsePokeblockMenu); break; - case 4: + case STATE_4: break; - case 5: - sub_8166D44(); - gUnknown_0203BC90->field_50++; + case STATE_CONFIRM_SELECTION: + AskUsePokeblock(); + sInfo->mainState++; break; - case 6: - switch (sub_8166DE4()) + case STATE_HANDLE_CONFIRMATION: + switch (HandleAskUsePokeblockInput()) { - case 1: - case -1: - gUnknown_0203BC90->field_50 = 0; + case 1: // NO + case MENU_B_PRESSED: + sInfo->mainState = STATE_HANDLE_INPUT; break; - case 0: + case 0: // YES if (IsSheenMaxed()) { - sub_8166F50(); - gUnknown_0203BC90->field_50 = 7; + PrintWontEatAnymore(); + sInfo->mainState = STATE_WAIT_MSG; } else { - sub_816636C(sub_816681C); + SetUsePokeblockCallback(FeedPokeblockToMon); } break; } break; - case 7: - if (gMain.newKeys & (A_BUTTON | B_BUTTON)) + case STATE_WAIT_MSG: + if (JOY_NEW(A_BUTTON | B_BUTTON)) { - sub_8166F94(); - gUnknown_0203BC90->field_50 = 0; + EraseMenuWindow(); + sInfo->mainState = STATE_HANDLE_INPUT; } break; } } -void sub_816681C(void) +static void FeedPokeblockToMon(void) { - switch (gUnknown_0203BC90->field_50) + switch (sInfo->mainState) { case 0: - gPokeblockMonId = sub_81672A4(gUnknown_0203BCAC->info.field_71); - gUnknown_0203BC94 = gUnknown_0203BC90->callback; - gUnknown_0203BC98 = gUnknown_0203BC90->pokeblock; + gPokeblockMonId = sub_81672A4(sMenu->info.field_71); + sExitCallback = sInfo->exitCallback; + sPokeblock = sInfo->pokeblock; BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); - gUnknown_0203BC90->field_50++; + sInfo->mainState++; break; case 1: if (!gPaletteFade.active) { SetVBlankCallback(NULL); - FREE_AND_SET_NULL(gUnknown_0203BCA0); - FREE_AND_SET_NULL(gUnknown_0203BCA4); - FREE_AND_SET_NULL(gUnknown_0203BCA8); - FREE_AND_SET_NULL(gUnknown_0203BCAC); + FREE_AND_SET_NULL(sGraph_Tilemap); + FREE_AND_SET_NULL(sGraph_Gfx); + FREE_AND_SET_NULL(sMonFrame_TilemapPtr); + FREE_AND_SET_NULL(sMenu); FreeAllWindowBuffers(); gMain.savedCallback = CB2_ReturnAndChooseMonToGivePokeblock; CB2_PreparePokeblockFeedScene(); @@ -682,184 +707,184 @@ void sub_816681C(void) } } -void sub_81668F8(void) +static void sub_81668F8(void) { u16 var; - switch (gUnknown_0203BC90->field_50) + switch (sInfo->mainState) { case 0: - if (gUnknown_0203BCAC->info.field_71 != gPokeblockMonId) + if (sMenu->info.field_71 != gPokeblockMonId) { - sub_8167CA0(gUnknown_0203BC90->field_56); - gUnknown_0203BC90->field_50++; + sub_8167CA0(sInfo->field_56); + sInfo->mainState++; } else { - gUnknown_0203BC90->field_50 = 3; + sInfo->mainState = 3; } break; case 1: - var = gUnknown_0203BCAC->info.unk74(); + var = sMenu->info.unk74(); if (!var) - gUnknown_0203BC90->field_50 = var; + sInfo->mainState = var; break; case 2: break; case 3: BlendPalettes(0xFFFFFFFF, 16, RGB_BLACK); - gUnknown_0203BC90->field_50++; + sInfo->mainState++; break; case 4: ShowBg(0); ShowBg(1); ShowBg(3); ShowBg(2); - gUnknown_0203BC90->field_50++; + sInfo->mainState++; break; case 5: - SetVBlankCallback(sub_8166340); + SetVBlankCallback(VBlankCB_UsePokeblock); BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); - gUnknown_0203BC90->field_50++; + sInfo->mainState++; break; case 6: if (!gPaletteFade.active) { - sub_81D3464(gUnknown_0203BCAC->field_7B1C); - sub_816636C(sub_8166A34); + ResetConditionSparkleSprites(sMenu->sparkles); + SetUsePokeblockCallback(sub_8166A34); SetMainCallback2(sub_816631C); } break; } } -void sub_8166A34(void) +static void sub_8166A34(void) { u8 var; - switch (gUnknown_0203BC90->field_50) + switch (sInfo->mainState) { case 0: - gUnknown_0203BC90->mon = gPlayerParty; - gUnknown_0203BC90->mon += gUnknown_0203BCAC->field_7FB8[gUnknown_0203BCAC->info.field_71].unk1; - sub_81D3520(gUnknown_0203BCAC->field_7B1C); - gUnknown_0203BC90->field_50++; + sInfo->mon = gPlayerParty; + sInfo->mon += sMenu->party[sMenu->info.field_71].monId; + DestroyConditionSparkleSprites(sMenu->sparkles); + sInfo->mainState++; break; case 1: - if (gMain.newKeys & (A_BUTTON | B_BUTTON)) - gUnknown_0203BC90->field_50++; + if (JOY_NEW(A_BUTTON | B_BUTTON)) + sInfo->mainState++; break; case 2: sub_8167104(); - sub_81D2754(gUnknown_0203BC90->field_5c, gUnknown_0203BCAC->field_7C58.unk14[3]); - sub_81D1F84(&gUnknown_0203BCAC->field_7C58, gUnknown_0203BCAC->field_7C58.unk14[gUnknown_0203BCAC->field_7FB3], gUnknown_0203BCAC->field_7C58.unk14[3]); + sub_81D2754(sInfo->field_5c, sMenu->field_7C58.unk14[3]); + sub_81D1F84(&sMenu->field_7C58, sMenu->field_7C58.unk14[sMenu->field_7FB3], sMenu->field_7C58.unk14[3]); sub_8167338(); - gUnknown_0203BC90->field_50++; + sInfo->mainState++; break; case 3: - var = sub_81D2074(&gUnknown_0203BCAC->field_7C58); + var = sub_81D2074(&sMenu->field_7C58); if (!var) { - sub_81681F4(sub_81672A4(gUnknown_0203BCAC->info.field_71)); - if (gUnknown_0203BCAC->info.field_71 != gUnknown_0203BCAC->info.field_70 - 1) + sub_81681F4(sub_81672A4(sMenu->info.field_71)); + if (sMenu->info.field_71 != sMenu->info.field_70 - 1) { - u8 var0 = gUnknown_0203BCAC->unk7FB0[gUnknown_0203BCAC->field_7FB3]; - sub_81D3480(gUnknown_0203BCAC->field_7B1C, gUnknown_0203BCAC->field_7B10, var0); + u8 var0 = sMenu->unk7FB0[sMenu->field_7FB3]; + CreateConditionSparkleSprites(sMenu->sparkles, sMenu->field_7B10, var0); } - gUnknown_0203BC90->field_52 = 0; - gUnknown_0203BC90->field_50++; + sInfo->field_52 = 0; + sInfo->mainState++; } break; case 4: - if (++gUnknown_0203BC90->field_52 > 16) + if (++sInfo->field_52 > 16) { sub_8166E24(); - gUnknown_0203BC90->field_50++; + sInfo->mainState++; } break; case 5: - if (gMain.newKeys & (A_BUTTON | B_BUTTON) && !sub_8166EDC()) + if (JOY_NEW(A_BUTTON | B_BUTTON) && !sub_8166EDC()) { TryClearPokeblock((u8)gSpecialVar_ItemId); - sub_816636C(sub_8166BEC); + SetUsePokeblockCallback(CloseUsePokeblockMenu); } break; } } -void sub_8166BEC(void) +static void CloseUsePokeblockMenu(void) { u8 i, var; - switch (gUnknown_0203BC90->field_50) + switch (sInfo->mainState) { case 0: BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); - gUnknown_0203BC90->field_50++; + sInfo->mainState++; break; case 1: if (!gPaletteFade.active) - gUnknown_0203BC90->field_50 = 2; + sInfo->mainState = 2; break; case 2: gScanlineEffect.state = 3; ScanlineEffect_InitHBlankDmaTransfer(); - gUnknown_0203BC90->field_50++; + sInfo->mainState++; break; case 3: - SetMainCallback2(gUnknown_0203BC90->callback); - sub_81D354C(gUnknown_0203BCAC->field_7B1C); - for (i = 0; i < 7; i++) - DestroySprite(&gSprites[gUnknown_0203BCAC->field_7B06[i]]); + SetMainCallback2(sInfo->exitCallback); + FreeConditionSparkles(sMenu->sparkles); + for (i = 0; i < ARRAY_COUNT(sMenu->field_7B06); i++) + DestroySprite(&gSprites[sMenu->field_7B06[i]]); - FreeSpriteTilesByTag(0); - FreeSpriteTilesByTag(1); - FreeSpritePaletteByTag(0); - FreeSpritePaletteByTag(1); + FreeSpriteTilesByTag(TAG_UP_DOWN); + FreeSpriteTilesByTag(TAG_CONDITION); + FreeSpritePaletteByTag(TAG_UP_DOWN); + FreeSpritePaletteByTag(TAG_CONDITION); - for (i = 0; i < 2; i++) - DestroySprite(gUnknown_0203BCAC->field_7B44[i]); + for (i = 0; i < ARRAY_COUNT(sMenu->condition); i++) + DestroySprite(sMenu->condition[i]); - if (gUnknown_0203BCAC->field_7B10 != 0xFF) - DestroySprite(&gSprites[gUnknown_0203BCAC->field_7B10]); + if (sMenu->field_7B10 != 0xFF) + DestroySprite(&gSprites[sMenu->field_7B10]); SetVBlankCallback(NULL); - FREE_AND_SET_NULL(gUnknown_0203BCA0); - FREE_AND_SET_NULL(gUnknown_0203BCA4); - FREE_AND_SET_NULL(gUnknown_0203BCA8); - FREE_AND_SET_NULL(gUnknown_0203BCAC); + FREE_AND_SET_NULL(sGraph_Tilemap); + FREE_AND_SET_NULL(sGraph_Gfx); + FREE_AND_SET_NULL(sMonFrame_TilemapPtr); + FREE_AND_SET_NULL(sMenu); FreeAllWindowBuffers(); break; } } -void sub_8166D44(void) +static void AskUsePokeblock(void) { u8 stringBuffer[0x40]; - GetMonData(&gPlayerParty[sub_81672A4(gUnknown_0203BCAC->info.field_71)], MON_DATA_NICKNAME, stringBuffer); + GetMonData(&gPlayerParty[sub_81672A4(sMenu->info.field_71)], MON_DATA_NICKNAME, stringBuffer); StringGetEnd10(stringBuffer); StringAppend(stringBuffer, gText_GetsAPokeBlockQuestion); StringCopy(gStringVar4, stringBuffer); - FillWindowPixelBuffer(2, 17); - DrawTextBorderOuter(2, 151, 14); - AddTextPrinterParameterized(2, 1, gStringVar4, 0, 1, 0, NULL); - PutWindowTilemap(2); - CopyWindowToVram(2, 3); + FillWindowPixelBuffer(WIN_TEXT, 17); + DrawTextBorderOuter(WIN_TEXT, 151, 14); + AddTextPrinterParameterized(WIN_TEXT, 1, gStringVar4, 0, 1, 0, NULL); + PutWindowTilemap(WIN_TEXT); + CopyWindowToVram(WIN_TEXT, 3); CreateYesNoMenu(&sUsePokeblockYesNoWinTemplate, 151, 14, 0); } -s8 sub_8166DE4(void) +static s8 HandleAskUsePokeblockInput(void) { s8 menuItem = Menu_ProcessInputNoWrapClearOnChoose(); switch (menuItem) { - case 0: + case 0: // YES break; case MENU_B_PRESSED: - case 1: + case 1: // NO PlaySE(SE_SELECT); rbox_fill_rectangle(2); ClearWindowTilemap(2); @@ -869,84 +894,84 @@ s8 sub_8166DE4(void) return menuItem; } -void sub_8166E24(void) +static void sub_8166E24(void) { - DrawTextBorderOuter(2, 151, 14); - FillWindowPixelBuffer(2, 17); + DrawTextBorderOuter(WIN_TEXT, 151, 14); + FillWindowPixelBuffer(WIN_TEXT, 17); - for (gUnknown_0203BC90->field_53 = 0; gUnknown_0203BC90->field_53 < 5; gUnknown_0203BC90->field_53++) + for (sInfo->field_53 = 0; sInfo->field_53 < FLAVOR_COUNT; sInfo->field_53++) { - if (gUnknown_0203BC90->field_61[gUnknown_0203BC90->field_53] != 0) + if (sInfo->field_61[sInfo->field_53] != 0) break; } - if (gUnknown_0203BC90->field_53 < 5) - Pokeblock_BufferEnhancedStatText(gStringVar4, gUnknown_0203BC90->field_53, gUnknown_0203BC90->field_61[gUnknown_0203BC90->field_53]); + if (sInfo->field_53 < FLAVOR_COUNT) + BufferEnhancedStatText(gStringVar4, sInfo->field_53, sInfo->field_61[sInfo->field_53]); else - Pokeblock_BufferEnhancedStatText(gStringVar4, gUnknown_0203BC90->field_53, 0); + BufferEnhancedStatText(gStringVar4, sInfo->field_53, 0); - Pokeblock_MenuWindowTextPrint(gStringVar4); - PutWindowTilemap(2); - CopyWindowToVram(2, 3); + PrintMenuWindowText(gStringVar4); + PutWindowTilemap(WIN_TEXT); + CopyWindowToVram(WIN_TEXT, 3); } -bool8 sub_8166EDC(void) +static bool8 sub_8166EDC(void) { - FillWindowPixelBuffer(2, 17); + FillWindowPixelBuffer(WIN_TEXT, 17); while (1) { - gUnknown_0203BC90->field_53++; - if (gUnknown_0203BC90->field_53 < 5) + sInfo->field_53++; + if (sInfo->field_53 < FLAVOR_COUNT) { - if (gUnknown_0203BC90->field_61[gUnknown_0203BC90->field_53] != 0) + if (sInfo->field_61[sInfo->field_53] != 0) break; } else { - gUnknown_0203BC90->field_53 = 5; + sInfo->field_53 = FLAVOR_COUNT; return FALSE; } } - Pokeblock_BufferEnhancedStatText(gStringVar4, gUnknown_0203BC90->field_53, gUnknown_0203BC90->field_61[gUnknown_0203BC90->field_53]); - Pokeblock_MenuWindowTextPrint(gStringVar4); - CopyWindowToVram(2, 2); + BufferEnhancedStatText(gStringVar4, sInfo->field_53, sInfo->field_61[sInfo->field_53]); + PrintMenuWindowText(gStringVar4); + CopyWindowToVram(WIN_TEXT, 2); return TRUE; } -void sub_8166F50(void) +static void PrintWontEatAnymore(void) { - FillWindowPixelBuffer(2, 17); - DrawTextBorderOuter(2, 151, 14); - AddTextPrinterParameterized(2, 1, gText_WontEatAnymore, 0, 1, 0, NULL); - PutWindowTilemap(2); - CopyWindowToVram(2, 3); + FillWindowPixelBuffer(WIN_TEXT, 17); + DrawTextBorderOuter(WIN_TEXT, 151, 14); + AddTextPrinterParameterized(WIN_TEXT, 1, gText_WontEatAnymore, 0, 1, 0, NULL); + PutWindowTilemap(WIN_TEXT); + CopyWindowToVram(WIN_TEXT, 3); } -void sub_8166F94(void) +static void EraseMenuWindow(void) { - rbox_fill_rectangle(2); - ClearWindowTilemap(2); - CopyWindowToVram(2, 3); + rbox_fill_rectangle(WIN_TEXT); + ClearWindowTilemap(WIN_TEXT); + CopyWindowToVram(WIN_TEXT, 3); } -void Pokeblock_MenuWindowTextPrint(const u8 *message) +static void PrintMenuWindowText(const u8 *message) { - AddTextPrinterParameterized(2, 1, gStringVar4, 0, 1, 0, NULL); + AddTextPrinterParameterized(WIN_TEXT, 1, gStringVar4, 0, 1, 0, NULL); } -void Pokeblock_BufferEnhancedStatText(u8 *dest, u8 statId, s16 a2) +static void BufferEnhancedStatText(u8 *dest, u8 statId, s16 enhancement) { - switch (a2) + switch (enhancement) { - case 1 ... 32767: - a2 = 0; + case 1 ... 32767: // if > 0 + enhancement = 0; // fallthrough - case -32768 ... -1: - if (a2) - dest[(u16)a2] += 0; // something you can't imagine + case -32768 ... -1: // if < 0 + if (enhancement) + dest[(u16)enhancement] += 0; // something you can't imagine StringCopy(dest, sContestStatNames[statId]); StringAppend(dest, gText_WasEnhanced); break; @@ -956,7 +981,7 @@ void Pokeblock_BufferEnhancedStatText(u8 *dest, u8 statId, s16 a2) } } -void Pokeblock_GetMonContestStats(struct Pokemon *mon, u8 *data) +static void GetMonConditions(struct Pokemon *mon, u8 *data) { u16 i; @@ -964,7 +989,7 @@ void Pokeblock_GetMonContestStats(struct Pokemon *mon, u8 *data) data[i] = GetMonData(mon, gUnknown_085DFCB0[i]); } -void sub_8167054(struct Pokeblock *pokeblock, struct Pokemon *mon) +static void sub_8167054(struct Pokeblock *pokeblock, struct Pokemon *mon) { u16 i; s16 cstat; @@ -973,10 +998,10 @@ void sub_8167054(struct Pokeblock *pokeblock, struct Pokemon *mon) if (GetMonData(mon, MON_DATA_SHEEN) != 255) { sub_8167184(pokeblock, mon); - for (i = 0; i < 5; i++) + for (i = 0; i < FLAVOR_COUNT; i++) { data = GetMonData(mon, gUnknown_085DFCB0[i]); - cstat = data + gUnknown_0203BC90->field_66[i]; + cstat = data + sInfo->field_66[i]; if (cstat < 0) cstat = 0; if (cstat > 255) @@ -994,28 +1019,28 @@ void sub_8167054(struct Pokeblock *pokeblock, struct Pokemon *mon) } } -void sub_8167104(void) +static void sub_8167104(void) { u16 i; struct Pokemon *mon = gPlayerParty; - mon += gUnknown_0203BCAC->unk7FB0[gUnknown_0203BCAC->info.field_71 * 4 + 9]; + mon += sMenu->unk7FB0[sMenu->info.field_71 * 4 + 9]; - Pokeblock_GetMonContestStats(mon, gUnknown_0203BC90->field_57); - sub_8167054(gUnknown_0203BC90->pokeblock, mon); - Pokeblock_GetMonContestStats(mon, gUnknown_0203BC90->field_5c); - for (i = 0; i < 5; i++) - gUnknown_0203BC90->field_61[i] = gUnknown_0203BC90->field_5c[i] - gUnknown_0203BC90->field_57[i]; + GetMonConditions(mon, sInfo->field_57); + sub_8167054(sInfo->pokeblock, mon); + GetMonConditions(mon, sInfo->field_5c); + for (i = 0; i < FLAVOR_COUNT; i++) + sInfo->field_61[i] = sInfo->field_5c[i] - sInfo->field_57[i]; } -void sub_8167184(struct Pokeblock *pokeblock, struct Pokemon *mon) +static void sub_8167184(struct Pokeblock *pokeblock, struct Pokemon *mon) { s8 i, direction, taste; - gUnknown_0203BC90->field_66[0] = pokeblock->spicy; - gUnknown_0203BC90->field_66[1] = pokeblock->sour; - gUnknown_0203BC90->field_66[2] = pokeblock->bitter; - gUnknown_0203BC90->field_66[3] = pokeblock->sweet; - gUnknown_0203BC90->field_66[4] = pokeblock->dry; + sInfo->field_66[0] = pokeblock->spicy; + sInfo->field_66[1] = pokeblock->sour; + sInfo->field_66[2] = pokeblock->bitter; + sInfo->field_66[3] = pokeblock->sweet; + sInfo->field_66[4] = pokeblock->dry; if (gPokeblockGain > 0) direction = 1; @@ -1024,24 +1049,24 @@ void sub_8167184(struct Pokeblock *pokeblock, struct Pokemon *mon) else return; - for (i = 0; i < 5; i++) + for (i = 0; i < FLAVOR_COUNT; i++) { - s16 amount = gUnknown_0203BC90->field_66[i]; + s16 amount = sInfo->field_66[i]; s8 boost = amount / 10; if (amount % 10 >= 5) // round to the nearest boost++; - taste = GetMonFlavorRelation(mon, gUnknown_085DFCC4[i]); + taste = GetMonFlavorRelation(mon, sFlavors[i]); if (taste == direction) - gUnknown_0203BC90->field_66[i] += boost * taste; + sInfo->field_66[i] += boost * taste; } } -bool8 IsSheenMaxed(void) +static bool8 IsSheenMaxed(void) { - if (GetBoxOrPartyMonData(gUnknown_0203BCAC->field_7FB8[gUnknown_0203BCAC->info.field_71].unk0, - gUnknown_0203BCAC->field_7FB8[gUnknown_0203BCAC->info.field_71].unk1, + if (GetBoxOrPartyMonData(sMenu->party[sMenu->info.field_71].boxId, + sMenu->party[sMenu->info.field_71].monId, MON_DATA_SHEEN, NULL) == 255) return TRUE; @@ -1049,7 +1074,7 @@ bool8 IsSheenMaxed(void) return FALSE; } -u8 sub_81672A4(u8 a0) +static u8 sub_81672A4(u8 a0) { u8 i; @@ -1066,7 +1091,8 @@ u8 sub_81672A4(u8 a0) return 0; } -u8 sub_81672E4(u8 partyCount) +// TODO: Update +static u8 GetNumNonEggPartyMons(u8 partyCount) { u8 i, numEggs; @@ -1079,36 +1105,37 @@ u8 sub_81672E4(u8 partyCount) return partyCount - numEggs; } -u8 sub_8167324(u8 a0) +// Unused +static u8 sub_8167324(u8 a0) { return sub_81672A4(a0); } -void sub_8167338(void) +static void sub_8167338(void) { u16 i, spriteId; - LoadSpriteSheet(&gSpriteSheet_ConditionUpDown); - LoadSpritePalette(&gSpritePalette_ConditionUpDown); - gUnknown_0203BC90->field_54 = 0; + LoadSpriteSheet(&sSpriteSheet_UpDown); + LoadSpritePalette(&sSpritePalette_UpDown); + sInfo->numEnhancements = 0; - for (i = 0; i < 5; i++) + for (i = 0; i < FLAVOR_COUNT; i++) { - if (gUnknown_0203BC90->field_61[i] != 0) + if (sInfo->field_61[i] != 0) { - spriteId = CreateSprite(&gSpriteTemplate_085DFD5C, gUnknown_085DFD28[i][0], gUnknown_085DFD28[i][1], 0); + spriteId = CreateSprite(&sSpriteTemplate_UpDown, gUnknown_085DFD28[i][0], gUnknown_085DFD28[i][1], 0); if (spriteId != MAX_SPRITES) { - if (gUnknown_0203BC90->field_61[i] != 0) + if (sInfo->field_61[i] != 0) gSprites[spriteId].callback = sub_81673DC; - gUnknown_0203BC90->field_54++; + sInfo->numEnhancements++; } } } } -void sub_81673DC(struct Sprite *sprite) +static void sub_81673DC(struct Sprite *sprite) { if (sprite->data[0] < 6) sprite->pos2.y -= 2; @@ -1118,11 +1145,11 @@ void sub_81673DC(struct Sprite *sprite) if (++sprite->data[0] > 60) { DestroySprite(sprite); - gUnknown_0203BC90->field_54--; + sInfo->numEnhancements--; } } -void sub_8167420(void) +static void sub_8167420(void) { u16 i; u16 numMons; @@ -1131,91 +1158,91 @@ void sub_8167420(void) { if (!GetMonData(&gPlayerParty[i], MON_DATA_IS_EGG)) { - gUnknown_0203BCAC->field_7FB8[numMons].unk0 = 14; - gUnknown_0203BCAC->field_7FB8[numMons].unk1 = i; - gUnknown_0203BCAC->field_7FB8[numMons].unk2 = 0; + sMenu->party[numMons].boxId = TOTAL_BOXES_COUNT; + sMenu->party[numMons].monId = i; + sMenu->party[numMons].data = 0; numMons++; } } - gUnknown_0203BCAC->info.field_71 = 0; - gUnknown_0203BCAC->info.field_70 = numMons + 1; + sMenu->info.field_71 = 0; + sMenu->info.field_70 = numMons + 1; sub_81674BC(); } -void sub_81674BC(void) +static void sub_81674BC(void) { s16 var, var2; - sub_816753C(gUnknown_0203BCAC->info.field_71, 0); - gUnknown_0203BCAC->field_7FB3 = 0; - gUnknown_0203BCAC->field_7FB4 = 1; - gUnknown_0203BCAC->field_7FB5 = 2; + sub_816753C(sMenu->info.field_71, 0); + sMenu->field_7FB3 = 0; + sMenu->field_7FB4 = 1; + sMenu->field_7FB5 = 2; - var = gUnknown_0203BCAC->info.field_71 + 1; - if (var >= gUnknown_0203BCAC->info.field_70) + var = sMenu->info.field_71 + 1; + if (var >= sMenu->info.field_70) var = 0; - var2 = gUnknown_0203BCAC->info.field_71 - 1; + var2 = sMenu->info.field_71 - 1; if (var2 < 0) - var2 = gUnknown_0203BCAC->info.field_70 - 1; + var2 = sMenu->info.field_70 - 1; sub_816753C(var, 1); sub_816753C(var2, 2); } -void sub_816753C(s16 id1, u8 id2) +static void sub_816753C(s16 id1, u8 id2) { - u8 boxId = gUnknown_0203BCAC->field_7FB8[id1].unk0; - u8 monId = gUnknown_0203BCAC->field_7FB8[id1].unk1; - u8 r6 = gUnknown_0203BCAC->info.field_70; + u8 boxId = sMenu->party[id1].boxId; + u8 monId = sMenu->party[id1].monId; + u8 r6 = sMenu->info.field_70; bool8 r8 = FALSE; - sub_81D2ED4(gUnknown_0203BCAC->field_7B4D[id2], gUnknown_0203BCAC->field_7B95[id2], boxId, monId, id1, r6, r8); - sub_81D2F78(&gUnknown_0203BCAC->field_7C58, gUnknown_0203BCAC->unk7FB0, boxId, monId, id1, id2, r6, r8); - sub_81D3094(gUnknown_0203BCAC->field_304[id2], gUnknown_0203BCAC->field_4[id2], boxId, monId, id1, r6, r8); + sub_81D2ED4(sMenu->field_7B4D[id2], sMenu->field_7B95[id2], boxId, monId, id1, r6, r8); + sub_81D2F78(&sMenu->field_7C58, sMenu->unk7FB0, boxId, monId, id1, id2, r6, r8); + sub_81D3094(sMenu->field_304[id2], sMenu->field_4[id2], boxId, monId, id1, r6, r8); } -void sub_8167608(u8 arg0) +static void sub_8167608(u8 arg0) { u8 spriteId; struct SpriteTemplate spriteTemplate; struct SpriteSheet spriteSheet; struct SpritePalette spritePal; - if (gUnknown_0203BCAC->field_7B10 == 0xFF) + if (sMenu->field_7B10 == 0xFF) { sub_81D31D0(&spriteSheet, &spriteTemplate, &spritePal); - spriteSheet.data = gUnknown_0203BCAC->field_304[arg0]; - spritePal.data = gUnknown_0203BCAC->field_4[arg0]; - gUnknown_0203BCAC->field_7B12 = LoadSpritePalette(&spritePal); - gUnknown_0203BCAC->field_7B14 = LoadSpriteSheet(&spriteSheet); + spriteSheet.data = sMenu->field_304[arg0]; + spritePal.data = sMenu->field_4[arg0]; + sMenu->field_7B12 = LoadSpritePalette(&spritePal); + sMenu->field_7B14 = LoadSpriteSheet(&spriteSheet); spriteId = CreateSprite(&spriteTemplate, 38, 104, 0); - gUnknown_0203BCAC->field_7B10 = spriteId; + sMenu->field_7B10 = spriteId; if (spriteId == MAX_SPRITES) { FreeSpriteTilesByTag(100); FreeSpritePaletteByTag(100); - gUnknown_0203BCAC->field_7B10 = 0xFF; + sMenu->field_7B10 = 0xFF; } else { - gUnknown_0203BCAC->field_7B10 = spriteId; - gSprites[gUnknown_0203BCAC->field_7B10].callback = sub_8168168; - gSprites[gUnknown_0203BCAC->field_7B10].pos2.y -= 34; - gUnknown_0203BCAC->field_7B18 = (void*)(OBJ_VRAM0 + (gUnknown_0203BCAC->field_7B14 * 32)); - gUnknown_0203BCAC->field_7B12 = (gUnknown_0203BCAC->field_7B12 * 16) + 0x100; + sMenu->field_7B10 = spriteId; + gSprites[sMenu->field_7B10].callback = sub_8168168; + gSprites[sMenu->field_7B10].pos2.y -= 34; + sMenu->field_7B18 = (void*)(OBJ_VRAM0 + (sMenu->field_7B14 * 32)); + sMenu->field_7B12 = (sMenu->field_7B12 * 16) + 0x100; } } else { - do {} while(0); // Surprised to see something like this? It's a very neat trick for generating the same assembly. It has no practical purpose, feel free to remove it. - DmaCopy16Defvars(3, gUnknown_0203BCAC->field_304[arg0], gUnknown_0203BCAC->field_7B18, 0x800); - LoadPalette(gUnknown_0203BCAC->field_4[arg0], gUnknown_0203BCAC->field_7B12, 32); + do {} while(0); // Only needed to match, feel free to remove. + DmaCopy16Defvars(3, sMenu->field_304[arg0], sMenu->field_7B18, 0x800); + LoadPalette(sMenu->field_4[arg0], sMenu->field_7B12, 32); } } -void sub_8167760(void) +static void sub_8167760(void) { u16 i, spriteId; struct SpriteSheet spriteSheets[4]; @@ -1224,22 +1251,22 @@ void sub_8167760(void) struct SpriteSheet spriteSheet2; struct SpritePalette spritePal2; - sub_81D321C(spriteSheets, &spriteTemplate, spritePals); + LoadConditionSelectionIcons(spriteSheets, &spriteTemplate, spritePals); LoadSpriteSheets(spriteSheets); LoadSpritePalettes(spritePals); - for (i = 0; i < gUnknown_0203BCAC->info.field_70 - 1; i++) + for (i = 0; i < sMenu->info.field_70 - 1; i++) { spriteId = CreateSprite(&spriteTemplate, 226, (i * 20) + 8, 0); if (spriteId != MAX_SPRITES) { - gUnknown_0203BCAC->field_7B06[i] = spriteId; + sMenu->field_7B06[i] = spriteId; gSprites[spriteId].data[0] = i; gSprites[spriteId].callback = sub_8168180; } else { - gUnknown_0203BCAC->field_7B06[i] = -1; + sMenu->field_7B06[i] = -1; } } @@ -1249,12 +1276,12 @@ void sub_8167760(void) spriteId = CreateSprite(&spriteTemplate, 230, (i * 20) + 8, 0); if (spriteId != MAX_SPRITES) { - gUnknown_0203BCAC->field_7B06[i] = spriteId; + sMenu->field_7B06[i] = spriteId; gSprites[spriteId].oam.size = 0; } else { - gUnknown_0203BCAC->field_7B06[i] = -1; + sMenu->field_7B06[i] = -1; } } @@ -1263,23 +1290,23 @@ void sub_8167760(void) spriteId = CreateSprite(&spriteTemplate, 222, (i * 20) + 8, 0); if (spriteId != MAX_SPRITES) { - gUnknown_0203BCAC->field_7B06[i] = spriteId; + sMenu->field_7B06[i] = spriteId; gSprites[spriteId].oam.shape = SPRITE_SHAPE(32x16); gSprites[spriteId].oam.size = SPRITE_SIZE(32x16); } else { - gUnknown_0203BCAC->field_7B06[i] = -1; + sMenu->field_7B06[i] = -1; } - sub_81D32B0(&spriteSheet2, &spritePal2); + LoadConditionSparkle(&spriteSheet2, &spritePal2); LoadSpriteSheet(&spriteSheet2); LoadSpritePalette(&spritePal2); } -bool8 sub_8167930(void) +static bool8 LoadUsePokeblockGfx(void) { - switch (gUnknown_0203BCAC->info.unk78) + switch (sMenu->info.helperState) { case 0: ChangeBgX(0, 0, 0); @@ -1290,88 +1317,88 @@ bool8 sub_8167930(void) ChangeBgY(2, 0, 0); ChangeBgX(3, 0, 0); ChangeBgY(3, 136 << 6, 0); - SetGpuReg(REG_OFFSET_DISPCNT, 28736); - SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG2|BLDCNT_EFFECT_BLEND|BLDCNT_TGT2_BG1); + SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_1D_MAP | DISPCNT_OBJ_ON | DISPCNT_WIN0_ON | DISPCNT_WIN1_ON); + SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG2 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG1); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(11, 4)); break; case 1: - gUnknown_0203BCA4 = Alloc(6656); - gUnknown_0203BCA0 = Alloc(1280); - gUnknown_0203BCA8 = Alloc(1280); + sGraph_Gfx = Alloc(6656); + sGraph_Tilemap = Alloc(1280); + sMonFrame_TilemapPtr = Alloc(1280); break; case 2: - LZ77UnCompVram(gUnknown_085DFB60, gUnknown_0203BCA8); + LZ77UnCompVram(sMonFrame_Tilemap, sMonFrame_TilemapPtr); break; case 3: - LoadBgTiles(3, gUnknown_085DFA80, 224, 0); + LoadBgTiles(3, sMonFrame_Gfx, 224, 0); break; case 4: - LoadBgTilemap(3, gUnknown_0203BCA8, 1280, 0); + LoadBgTilemap(3, sMonFrame_TilemapPtr, 1280, 0); break; case 5: - LoadPalette(gUnknown_085DFA60, 208, 32); - gUnknown_0203BCAC->field_7B0E = 0xFFB0; + LoadPalette(sMonFrame_Pal, 208, 32); + sMenu->field_7B0E = -80; break; case 6: - LZ77UnCompVram(gUsePokeblockGraph_Gfx, gUnknown_0203BCA4); + LZ77UnCompVram(gUsePokeblockGraph_Gfx, sGraph_Gfx); break; case 7: - LZ77UnCompVram(gUsePokeblockGraph_Tilemap, gUnknown_0203BCA0); + LZ77UnCompVram(gUsePokeblockGraph_Tilemap, sGraph_Tilemap); LoadPalette(gUsePokeblockGraph_Pal, 32, 32); break; case 8: - LoadBgTiles(1, gUnknown_0203BCA4, 6656, 160 << 2); + LoadBgTiles(1, sGraph_Gfx, 6656, 160 << 2); break; case 9: - SetBgTilemapBuffer(1, gUnknown_0203BCA0); + SetBgTilemapBuffer(1, sGraph_Tilemap); CopyToBgTilemapBufferRect(1, gUsePokeblockNatureWin_Pal, 0, 13, 12, 4); CopyBgTilemapBufferToVram(1); break; case 10: - LZ77UnCompVram(gUnknown_085DFC0C, gUnknown_0203BCAC->tilemapBuffer); + LZ77UnCompVram(sGraphData_Tilemap, sMenu->tilemapBuffer); break; case 11: - LoadBgTilemap(2, gUnknown_0203BCAC->tilemapBuffer, 1280, 0); - LoadPalette(gUnknown_086231E8, 48, 32); + LoadBgTilemap(2, sMenu->tilemapBuffer, 1280, 0); + LoadPalette(gConditionGraphData_Pal, 48, 32); LoadPalette(gUnknown_08623208, 240, 32); sub_81D21DC(2); break; default: - gUnknown_0203BCAC->info.unk78 = 0; + sMenu->info.helperState = 0; return FALSE; } - gUnknown_0203BCAC->info.unk78++; + sMenu->info.helperState++; return TRUE; } -void sub_8167BA0(u16 arg0, u8 copyToVramMode) +static void UpdateMonInfoText(u16 arg0, bool8 firstPrint) { u8 partyIndex; u8 nature; u8 *str; - FillWindowPixelBuffer(0, PIXEL_FILL(0)); - FillWindowPixelBuffer(1, PIXEL_FILL(0)); - if (gUnknown_0203BCAC->info.field_71 != gUnknown_0203BCAC->info.field_70 - 1) + FillWindowPixelBuffer(WIN_NAME, PIXEL_FILL(0)); + FillWindowPixelBuffer(WIN_NATURE, PIXEL_FILL(0)); + if (sMenu->info.field_71 != sMenu->info.field_70 - 1) { - AddTextPrinterParameterized(0, 1, gUnknown_0203BCAC->field_7B95[arg0], 0, 1, 0, NULL); - partyIndex = sub_81672A4(gUnknown_0203BCAC->info.field_71); + AddTextPrinterParameterized(WIN_NAME, 1, sMenu->field_7B95[arg0], 0, 1, 0, NULL); + partyIndex = sub_81672A4(sMenu->info.field_71); nature = GetNature(&gPlayerParty[partyIndex]); - str = StringCopy(gUnknown_0203BCAC->info.field_7A, gText_NatureSlash); + str = StringCopy(sMenu->info.field_7A, gText_NatureSlash); str = StringCopy(str, gNatureNamePointers[nature]); - AddTextPrinterParameterized3(1, 1, 2, 1, sNatureTextColors, 0, gUnknown_0203BCAC->info.field_7A); + AddTextPrinterParameterized3(WIN_NATURE, 1, 2, 1, sNatureTextColors, 0, sMenu->info.field_7A); } - if (copyToVramMode) + if (firstPrint) { - CopyWindowToVram(0, 3); - CopyWindowToVram(1, 3); + CopyWindowToVram(WIN_NAME, 3); + CopyWindowToVram(WIN_NATURE, 3); } else { - CopyWindowToVram(0, 2); - CopyWindowToVram(1, 2); + CopyWindowToVram(WIN_NAME, 2); + CopyWindowToVram(WIN_NATURE, 2); } } @@ -1381,86 +1408,86 @@ static void sub_8167CA0(bool8 arg0) bool32 r8, r4; if (arg0) - var0 = gUnknown_0203BCAC->field_7FB5; + var0 = sMenu->field_7FB5; else - var0 = gUnknown_0203BCAC->field_7FB4; + var0 = sMenu->field_7FB4; sub_81D1F84( - &gUnknown_0203BCAC->field_7C58, - gUnknown_0203BCAC->field_7C58.unk14[gUnknown_0203BCAC->field_7FB3], - gUnknown_0203BCAC->field_7C58.unk14[var0]); + &sMenu->field_7C58, + sMenu->field_7C58.unk14[sMenu->field_7FB3], + sMenu->field_7C58.unk14[var0]); - r8 = (gUnknown_0203BCAC->info.field_71 ^ (gUnknown_0203BCAC->info.field_70 - 1)) ? 1 : 0; + r8 = (sMenu->info.field_71 ^ (sMenu->info.field_70 - 1)) ? 1 : 0; if (arg0) { - gUnknown_0203BCAC->field_7FB5 = gUnknown_0203BCAC->field_7FB4; - gUnknown_0203BCAC->field_7FB4 = gUnknown_0203BCAC->field_7FB3; - gUnknown_0203BCAC->field_7FB3 = var0; - gUnknown_0203BCAC->field_7FB6 = gUnknown_0203BCAC->field_7FB5; + sMenu->field_7FB5 = sMenu->field_7FB4; + sMenu->field_7FB4 = sMenu->field_7FB3; + sMenu->field_7FB3 = var0; + sMenu->field_7FB6 = sMenu->field_7FB5; - gUnknown_0203BCAC->info.field_71 = (gUnknown_0203BCAC->info.field_71 == 0) - ? gUnknown_0203BCAC->info.field_70 - 1 - : gUnknown_0203BCAC->info.field_71 - 1; + sMenu->info.field_71 = (sMenu->info.field_71 == 0) + ? sMenu->info.field_70 - 1 + : sMenu->info.field_71 - 1; - gUnknown_0203BCAC->field_7B4C = (gUnknown_0203BCAC->info.field_71 == 0) - ? gUnknown_0203BCAC->info.field_70 - 1 - : gUnknown_0203BCAC->info.field_71 - 1; + sMenu->field_7B4C = (sMenu->info.field_71 == 0) + ? sMenu->info.field_70 - 1 + : sMenu->info.field_71 - 1; } else { - gUnknown_0203BCAC->field_7FB4 = gUnknown_0203BCAC->field_7FB5; - gUnknown_0203BCAC->field_7FB5 = gUnknown_0203BCAC->field_7FB3; - gUnknown_0203BCAC->field_7FB3 = var0; - gUnknown_0203BCAC->field_7FB6 = gUnknown_0203BCAC->field_7FB4; + sMenu->field_7FB4 = sMenu->field_7FB5; + sMenu->field_7FB5 = sMenu->field_7FB3; + sMenu->field_7FB3 = var0; + sMenu->field_7FB6 = sMenu->field_7FB4; - gUnknown_0203BCAC->info.field_71 = (gUnknown_0203BCAC->info.field_71 < gUnknown_0203BCAC->info.field_70 - 1) - ? gUnknown_0203BCAC->info.field_71 + 1 + sMenu->info.field_71 = (sMenu->info.field_71 < sMenu->info.field_70 - 1) + ? sMenu->info.field_71 + 1 : 0; - gUnknown_0203BCAC->field_7B4C = (gUnknown_0203BCAC->info.field_71 < gUnknown_0203BCAC->info.field_70 - 1) - ? gUnknown_0203BCAC->info.field_71 + 1 + sMenu->field_7B4C = (sMenu->info.field_71 < sMenu->info.field_70 - 1) + ? sMenu->info.field_71 + 1 : 0; } - r4 = (gUnknown_0203BCAC->info.field_71 ^ (gUnknown_0203BCAC->info.field_70 - 1)) ? 1 : 0; - sub_81D3520(gUnknown_0203BCAC->field_7B1C); + r4 = (sMenu->info.field_71 ^ (sMenu->info.field_70 - 1)) ? 1 : 0; + DestroyConditionSparkleSprites(sMenu->sparkles); if (!r8) - gUnknown_0203BCAC->info.unk74 = sub_8167EA4; + sMenu->info.unk74 = sub_8167EA4; else if (!r4) - gUnknown_0203BCAC->info.unk74 = sub_8167FA4; + sMenu->info.unk74 = sub_8167FA4; else - gUnknown_0203BCAC->info.unk74 = sub_8168048; + sMenu->info.unk74 = sub_8168048; } static u8 sub_8167EA4(void) { - switch (gUnknown_0203BCAC->info.unk78) + switch (sMenu->info.helperState) { case 0: - sub_8167608(gUnknown_0203BCAC->field_7FB3); - gUnknown_0203BCAC->info.unk78++; + sub_8167608(sMenu->field_7FB3); + sMenu->info.helperState++; break; case 1: - sub_8167BA0(gUnknown_0203BCAC->field_7FB3, 0); - gUnknown_0203BCAC->info.unk78++; + UpdateMonInfoText(sMenu->field_7FB3, FALSE); + sMenu->info.helperState++; break; case 2: - if (!sub_81D3178(&gUnknown_0203BCAC->field_7C58, &gUnknown_0203BCAC->field_7B0E)) + if (!sub_81D3178(&sMenu->field_7C58, &sMenu->field_7B0E)) { - sub_816753C(gUnknown_0203BCAC->field_7B4C, gUnknown_0203BCAC->field_7FB6); - gUnknown_0203BCAC->info.unk78++; + sub_816753C(sMenu->field_7B4C, sMenu->field_7FB6); + sMenu->info.helperState++; } break; case 3: - sub_81D3464(gUnknown_0203BCAC->field_7B1C); - if (gUnknown_0203BCAC->info.field_71 != gUnknown_0203BCAC->info.field_70 - 1) + ResetConditionSparkleSprites(sMenu->sparkles); + if (sMenu->info.field_71 != sMenu->info.field_70 - 1) { - u8 var0 = gUnknown_0203BCAC->unk7FB0[gUnknown_0203BCAC->field_7FB3]; - sub_81D3480(gUnknown_0203BCAC->field_7B1C, gUnknown_0203BCAC->field_7B10, var0); + u8 var0 = sMenu->unk7FB0[sMenu->field_7FB3]; + CreateConditionSparkleSprites(sMenu->sparkles, sMenu->field_7B10, var0); } - gUnknown_0203BCAC->info.unk78 = 0; + sMenu->info.helperState = 0; return FALSE; } @@ -1469,22 +1496,22 @@ static u8 sub_8167EA4(void) static u8 sub_8167FA4(void) { - switch (gUnknown_0203BCAC->info.unk78) + switch (sMenu->info.helperState) { case 0: - if (!sub_81D31A4(&gUnknown_0203BCAC->field_7C58, &gUnknown_0203BCAC->field_7B0E)) - gUnknown_0203BCAC->info.unk78++; + if (!sub_81D31A4(&sMenu->field_7C58, &sMenu->field_7B0E)) + sMenu->info.helperState++; break; case 1: - sub_8167BA0(gUnknown_0203BCAC->field_7FB3, 0); - gUnknown_0203BCAC->info.unk78++; + UpdateMonInfoText(sMenu->field_7FB3, FALSE); + sMenu->info.helperState++; break; case 2: - sub_816753C(gUnknown_0203BCAC->field_7B4C, gUnknown_0203BCAC->field_7FB6); - gUnknown_0203BCAC->info.unk78++; + sub_816753C(sMenu->field_7B4C, sMenu->field_7FB6); + sMenu->info.helperState++; break; case 3: - gUnknown_0203BCAC->info.unk78 = 0; + sMenu->info.helperState = 0; return FALSE; } @@ -1493,68 +1520,68 @@ static u8 sub_8167FA4(void) static u8 sub_8168048(void) { - switch (gUnknown_0203BCAC->info.unk78) + switch (sMenu->info.helperState) { case 0: - sub_81D2074(&gUnknown_0203BCAC->field_7C58); - if (!sub_81D3150(&gUnknown_0203BCAC->field_7B0E)) + sub_81D2074(&sMenu->field_7C58); + if (!sub_81D3150(&sMenu->field_7B0E)) { - sub_8167608(gUnknown_0203BCAC->field_7FB3); - gUnknown_0203BCAC->info.unk78++; + sub_8167608(sMenu->field_7FB3); + sMenu->info.helperState++; } break; case 1: - sub_8167BA0(gUnknown_0203BCAC->field_7FB3, 0); - gUnknown_0203BCAC->info.unk78++; + UpdateMonInfoText(sMenu->field_7FB3, FALSE); + sMenu->info.helperState++; break; case 2: - if (!sub_81D3178(&gUnknown_0203BCAC->field_7C58, &gUnknown_0203BCAC->field_7B0E)) + if (!sub_81D3178(&sMenu->field_7C58, &sMenu->field_7B0E)) { - sub_816753C(gUnknown_0203BCAC->field_7B4C, gUnknown_0203BCAC->field_7FB6); - gUnknown_0203BCAC->info.unk78++; + sub_816753C(sMenu->field_7B4C, sMenu->field_7FB6); + sMenu->info.helperState++; } break; case 3: - sub_81D3464(gUnknown_0203BCAC->field_7B1C); - if (gUnknown_0203BCAC->info.field_71 != gUnknown_0203BCAC->info.field_70 - 1) + ResetConditionSparkleSprites(sMenu->sparkles); + if (sMenu->info.field_71 != sMenu->info.field_70 - 1) { - u8 var0 = gUnknown_0203BCAC->unk7FB0[gUnknown_0203BCAC->field_7FB3]; - sub_81D3480(gUnknown_0203BCAC->field_7B1C, gUnknown_0203BCAC->field_7B10, var0); + u8 var0 = sMenu->unk7FB0[sMenu->field_7FB3]; + CreateConditionSparkleSprites(sMenu->sparkles, sMenu->field_7B10, var0); } - gUnknown_0203BCAC->info.unk78 = 0; + sMenu->info.helperState = 0; return FALSE; } return TRUE; } -void sub_8168168(struct Sprite *sprite) +static void sub_8168168(struct Sprite *sprite) { - sprite->pos1.x = gUnknown_0203BCAC->field_7B0E + 38; + sprite->pos1.x = sMenu->field_7B0E + 38; } -void sub_8168180(struct Sprite *sprite) +static void sub_8168180(struct Sprite *sprite) { - if (sprite->data[0] == gUnknown_0203BCAC->info.field_71) + if (sprite->data[0] == sMenu->info.field_71) StartSpriteAnim(sprite, 0); else StartSpriteAnim(sprite, 1); } -void sub_81681B4(struct Sprite *sprite) +static void sub_81681B4(struct Sprite *sprite) { - if (gUnknown_0203BCAC->info.field_71 == gUnknown_0203BCAC->info.field_70 - 1) + if (sMenu->info.field_71 == sMenu->info.field_70 - 1) sprite->oam.paletteNum = IndexOfSpritePaletteTag(101); else sprite->oam.paletteNum = IndexOfSpritePaletteTag(102); } -void sub_81681F4(u8 monIndex) +static void sub_81681F4(u8 monIndex) { u8 sheen = GetMonData(&gPlayerParty[monIndex], MON_DATA_SHEEN); - gUnknown_0203BCAC->unk7FB0[gUnknown_0203BCAC->field_7FB3] = (sheen != 255) + sMenu->unk7FB0[sMenu->field_7FB3] = (sheen != 255) ? sheen / 29 : 9; } @@ -1564,10 +1591,10 @@ static void sub_8168248(void) struct CompressedSpriteSheet spriteSheet; struct SpritePalette spritePalette; - spritePalette = gSpritePalette_085DFDB8; + spritePalette = sSpritePalette_Condition; spriteSheet.data = gUsePokeblockCondition_Gfx; spriteSheet.size = 0x800; - spriteSheet.tag = 1; + spriteSheet.tag = TAG_CONDITION; LoadCompressedSpriteSheet(&spriteSheet); LoadSpritePalette(&spritePalette); } @@ -1578,8 +1605,8 @@ static void sub_8168294(void) s16 xDiff, xStart; int yStart = 17; int var = 8; - struct Sprite **sprites = gUnknown_0203BCAC->field_7B44; - const struct SpriteTemplate *template = &gSpriteTemplate_085DFDA0; + struct Sprite **sprites = sMenu->condition; + const struct SpriteTemplate *template = &sSpriteTemplate_Condition; for (i = 0, xDiff = 64, xStart = -96; i < 2; i++) { @@ -1597,22 +1624,22 @@ static void sub_8168294(void) static bool8 sub_8168328(void) { - switch (gUnknown_0203BCAC->info.unk78) + switch (sMenu->info.helperState) { case 0: sub_8168248(); - gUnknown_0203BCAC->info.unk78++; + sMenu->info.helperState++; return TRUE; case 1: sub_8168294(); - gUnknown_0203BCAC->info.unk78 = 0; + sMenu->info.helperState = 0; return FALSE; } return FALSE; } -void sub_8168374(struct Sprite *sprite) +static void sub_8168374(struct Sprite *sprite) { s16 prevX = sprite->pos1.x; From 4bf43311f0b2cf78cb69b71485fce61ed8c21786 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Mon, 10 Aug 2020 17:09:17 -0400 Subject: [PATCH 049/101] Remove redundant parens --- src/roulette.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/roulette.c b/src/roulette.c index b3e07233a7..4ca892912a 100644 --- a/src/roulette.c +++ b/src/roulette.c @@ -1515,7 +1515,7 @@ static void Task_HandleBetGridInput(u8 taskId) if (JOY_NEW(A_BUTTON)) { - if ((sRoulette->hitFlags & sGridSelections[gTasks[taskId].tSelectionId].flag)) + if (sRoulette->hitFlags & sGridSelections[gTasks[taskId].tSelectionId].flag) { // Ball has already landed on this space PlaySE(SE_BOO); From ceac2d547c1b2fb8b0129ced38dbad3c3dfce970 Mon Sep 17 00:00:00 2001 From: PokeCodec Date: Sun, 9 Aug 2020 17:09:55 -0400 Subject: [PATCH 050/101] Remove fakematch --- src/battle_anim_flying.c | 544 +++++++++++++++++++-------------------- 1 file changed, 263 insertions(+), 281 deletions(-) diff --git a/src/battle_anim_flying.c b/src/battle_anim_flying.c index 5179c13648..f188f2c8f7 100644 --- a/src/battle_anim_flying.c +++ b/src/battle_anim_flying.c @@ -536,17 +536,16 @@ static void AnimFlyBallAttack_Step(struct Sprite *sprite) void DestroyAnimSpriteAfterTimer(struct Sprite *sprite) { - if (sprite->data[0]-- <= 0) + if (sprite->data[0]-- > 0) + return; + if (sprite->oam.affineMode & ST_OAM_AFFINE_ON_MASK) { - if (sprite->oam.affineMode & ST_OAM_AFFINE_ON_MASK) - { - FreeOamMatrix(sprite->oam.matrixNum); - sprite->oam.affineMode = ST_OAM_AFFINE_OFF; - } - - DestroySprite(sprite); - gAnimVisualTaskCount--; + FreeOamMatrix(sprite->oam.matrixNum); + sprite->oam.affineMode = ST_OAM_AFFINE_OFF; } + + DestroySprite(sprite); + gAnimVisualTaskCount--; } struct FeatherDanceData @@ -570,30 +569,27 @@ struct FeatherDanceData static void AnimFallingFeather(struct Sprite *sprite) { u8 battler, matrixNum, sinIndex; - s16 spriteCoord, sinVal; + s16 sinVal; struct FeatherDanceData *data = (struct FeatherDanceData *)sprite->data; - if (gBattleAnimArgs[7] & 0x100) - battler = gBattleAnimAttacker; - else - battler = gBattleAnimTarget; + battler = (gBattleAnimArgs[7] & 0x100) ? gBattleAnimAttacker : gBattleAnimTarget; if (GetBattlerSide(battler) == B_SIDE_PLAYER) gBattleAnimArgs[0] = -gBattleAnimArgs[0]; sprite->pos1.x = GetBattlerSpriteCoord(battler, BATTLER_COORD_ATTR_HEIGHT) + gBattleAnimArgs[0]; - spriteCoord = GetBattlerSpriteCoord(battler, BATTLER_COORD_ATTR_WIDTH); - sprite->pos1.y = spriteCoord + gBattleAnimArgs[1]; + sinVal = GetBattlerSpriteCoord(battler, BATTLER_COORD_ATTR_WIDTH); + sprite->pos1.y = sinVal + gBattleAnimArgs[1]; - data->unk8 = sprite->pos1.y << 8; - data->unkE_1 = spriteCoord + gBattleAnimArgs[6]; + data->unk8 = (u16)(sprite->pos1.y) << 8; + data->unkE_1 = (u16)(sinVal + gBattleAnimArgs[6]); data->unk0_0c = 1; - data->unk2 = gBattleAnimArgs[2] & 0xFF; - data->unkA = (gBattleAnimArgs[2] >> 8) & 0xFF; + data->unk2 = (u16)(gBattleAnimArgs[2] & 0xFF); + data->unkA = (u16)((gBattleAnimArgs[2] >> 8) & 0xFF) ; data->unk4 = gBattleAnimArgs[3]; - data->unk6 = gBattleAnimArgs[4]; - *(u16*)(data->unkC) = gBattleAnimArgs[5]; + data->unk6 = (u16)gBattleAnimArgs[4]; + *(u16*)(data->unkC) = (u16)gBattleAnimArgs[5]; if (data->unk2 >= 64 && data->unk2 <= 191) { @@ -628,27 +624,16 @@ static void AnimFallingFeather(struct Sprite *sprite) } } - data->unk0_1 = data->unk2 >> 6; - sprite->pos2.x = (gSineTable[data->unk2] * data->unkC[0]) >> 8; + data->unk0_1 = data->unk2/64; + sprite->pos2.x = (gSineTable[data->unk2] * (s32)data->unkC[0]) >> 8; matrixNum = sprite->oam.matrixNum; sinIndex = (-sprite->pos2.x >> 1) + data->unkA; sinVal = gSineTable[sinIndex]; gOamMatrices[matrixNum].a = gOamMatrices[matrixNum].d = gSineTable[sinIndex + 64]; - // The comparison below is completely pointless. 'sprite' is sure to be a valid pointer and - // both the 'if' and 'else' parts are exactly the same. - // The only reason for this is making sure the compiler generates the exact ASM. - if (sprite) - { - gOamMatrices[matrixNum].b = sinVal; - gOamMatrices[matrixNum].c = -sinVal; - } - else - { - gOamMatrices[matrixNum].b = sinVal; - gOamMatrices[matrixNum].c = -sinVal; - } + gOamMatrices[matrixNum].b = sinVal; + gOamMatrices[matrixNum].c = -sinVal; sprite->callback = sub_810E520; } @@ -665,242 +650,239 @@ static void sub_810E520(struct Sprite *sprite) data->unk0_0a = 0; data->unk1 = 0; } + return; } - else + + switch (data->unk2 / 64) { - switch (data->unk2 / 64) + case 0: + if ((u8)data->unk0_1 == 1) // this must be cast to u8 { - case 0: - if (data->unk0_1 << 24 >> 24 == 1) // the shifts have to be here - { - data->unk0_0d = 1; - data->unk0_0a = 1; - data->unk1 = 0; - } - else if (data->unk0_1 << 24 >> 24 == 3) - { - data->unk0_0b ^= 1; - data->unk0_0a = 1; - data->unk1 = 0; - } - else if (data->unk0_0d) - { - sprite->hFlip ^= 1; - sprite->animNum = sprite->hFlip; - sprite->animBeginning = TRUE; - sprite->animEnded = FALSE; - if (data->unk0_0c) - { - if (!IsContest()) - { - if (!data->unkE_0) - { - sprite->oam.priority--; - data->unkE_0 ^= 1; - } - else - { - sprite->oam.priority++; - data->unkE_0 ^= 1; - } - } - else - { - if (!data->unkE_0) - { - sprite->subpriority -= 12; - data->unkE_0 ^= 1; - } - else - { - sprite->subpriority += 12; - data->unkE_0 ^= 1; - } - } - } - data->unk0_0d = 0; - data->unk2; - } - data->unk0_1 = 0; - break; - case 1: - if (data->unk0_1 << 24 >> 24 == 0) - { - data->unk0_0d = 1; - data->unk0_0a = 1; - data->unk1 = 0; - } - else if (data->unk0_1 << 24 >> 24 == 2) - { - data->unk0_0a = 1; - data->unk1 = 0; - } - else if (data->unk0_0d) - { - sprite->hFlip ^= 1; - sprite->animNum = sprite->hFlip; - sprite->animBeginning = TRUE; - sprite->animEnded = FALSE; - if (data->unk0_0c) - { - if (!IsContest()) - { - if (!data->unkE_0) - { - sprite->oam.priority--; - data->unkE_0 ^= 1; - } - else - { - sprite->oam.priority++; - data->unkE_0 ^= 1; - } - } - else - { - if (!data->unkE_0) - { - sprite->subpriority -= 12; - data->unkE_0 ^= 1; - } - else - { - sprite->subpriority += 12; - data->unkE_0 ^= 1; - } - } - } - data->unk0_0d = 0; - } - data->unk0_1 = 1; - break; - case 2: - if (data->unk0_1 << 24 >> 24 == 3) - { - data->unk0_0d = 1; - data->unk0_0a = 1; - data->unk1 = 0; - } - else if (data->unk0_1 << 24 >> 24 == 1) - { - data->unk0_0a = 1; - data->unk1 = 0; - } - else if (data->unk0_0d) - { - sprite->hFlip ^= 1; - sprite->animNum = sprite->hFlip; - sprite->animBeginning = TRUE; - sprite->animEnded = FALSE; - if (data->unk0_0c) - { - if (!IsContest()) - { - if (!data->unkE_0) - { - sprite->oam.priority--; - data->unkE_0 ^= 1; - } - else - { - sprite->oam.priority++; - data->unkE_0 ^= 1; - } - } - else - { - if (!data->unkE_0) - { - sprite->subpriority -= 12; - data->unkE_0 ^= 1; - } - else - { - sprite->subpriority += 12; - data->unkE_0 ^= 1; - } - } - } - data->unk0_0d = 0; - } - data->unk0_1 = 2; - break; - case 3: - if (data->unk0_1 << 24 >> 24 == 2) - { - data->unk0_0d = 1; - } - else if (data->unk0_1 << 24 >> 24 == 0) - { - data->unk0_0b ^= 1; - data->unk0_0a = 1; - data->unk1 = 0; - } - else if (data->unk0_0d) - { - sprite->hFlip ^= 1; - sprite->animNum = sprite->hFlip; - sprite->animBeginning = TRUE; - sprite->animEnded = FALSE; - if (data->unk0_0c) - { - if (!IsContest()) - { - if (!data->unkE_0) - { - sprite->oam.priority--; - data->unkE_0 ^= 1; - } - else - { - sprite->oam.priority++; - data->unkE_0 ^= 1; - } - } - else - { - if (!data->unkE_0) - { - sprite->subpriority -= 12; - data->unkE_0 ^= 1; - } - else - { - sprite->subpriority += 12; - data->unkE_0 ^= 1; - } - } - } - data->unk0_0d = 0; - } - data->unk0_1 = 3; - break; + data->unk0_0d = 1; + data->unk0_0a = 1; + data->unk1 = 0; } - #ifndef NONMATCHING - asm("":::"r8"); - #endif - sprite->pos2.x = (data->unkC[data->unk0_0b] * gSineTable[data->unk2]) >> 8; - matrixNum = sprite->oam.matrixNum; - - sinIndex = (-sprite->pos2.x >> 1) + data->unkA; - sinVal = gSineTable[sinIndex]; - - gOamMatrices[matrixNum].a = gOamMatrices[matrixNum].d = gSineTable[sinIndex + 64]; - gOamMatrices[matrixNum].b = sinVal; - gOamMatrices[matrixNum].c = -sinVal; - - data->unk8 += data->unk6; - sprite->pos1.y = data->unk8 >> 8; - if (data->unk4 & 0x8000) - data->unk2 = (data->unk2 - (data->unk4 & 0x7FFF)) & 0xFF; - else - data->unk2 = (data->unk2 + (data->unk4 & 0x7FFF)) & 0xFF; - - if (sprite->pos1.y + sprite->pos2.y >= data->unkE_1) + else if ((u8)data->unk0_1 == 3) { - sprite->data[0] = 0; - sprite->callback = DestroyAnimSpriteAfterTimer; + data->unk0_0b ^= 1; + data->unk0_0a = 1; + data->unk1 = 0; } + else if (data->unk0_0d) + { + sprite->hFlip ^= 1; + sprite->animNum = sprite->hFlip; + sprite->animBeginning = TRUE; + sprite->animEnded = FALSE; + if (data->unk0_0c) + { + if (!IsContest()) + { + if (!data->unkE_0) + { + sprite->oam.priority--; + data->unkE_0 ^= 1; + } + else + { + sprite->oam.priority++; + data->unkE_0 ^= 1; + } + } + else + { + if (!data->unkE_0) + { + sprite->subpriority -= 12; + data->unkE_0 ^= 1; + } + else + { + sprite->subpriority += 12; + data->unkE_0 ^= 1; + } + } + } + data->unk0_0d = 0; + data->unk2; + } + data->unk0_1 = 0; + break; + case 1: + if ((u8)data->unk0_1 == 0) + { + data->unk0_0d = 1; + data->unk0_0a = 1; + data->unk1 = 0; + } + else if ((u8)data->unk0_1 == 2) + { + data->unk0_0a = 1; + data->unk1 = 0; + } + else if (data->unk0_0d) + { + sprite->hFlip ^= 1; + sprite->animNum = sprite->hFlip; + sprite->animBeginning = TRUE; + sprite->animEnded = FALSE; + if (data->unk0_0c) + { + if (!IsContest()) + { + if (!data->unkE_0) + { + sprite->oam.priority--; + data->unkE_0 ^= 1; + } + else + { + sprite->oam.priority++; + data->unkE_0 ^= 1; + } + } + else + { + if (!data->unkE_0) + { + sprite->subpriority -= 12; + data->unkE_0 ^= 1; + } + else + { + sprite->subpriority += 12; + data->unkE_0 ^= 1; + } + } + } + data->unk0_0d = 0; + } + data->unk0_1 = 1; + break; + case 2: + if ((u8)data->unk0_1 == 3) + { + data->unk0_0d = 1; + data->unk0_0a = 1; + data->unk1 = 0; + } + else if ((u8)data->unk0_1 == 1) + { + data->unk0_0a = 1; + data->unk1 = 0; + } + else if (data->unk0_0d) + { + sprite->hFlip ^= 1; + sprite->animNum = sprite->hFlip; + sprite->animBeginning = TRUE; + sprite->animEnded = FALSE; + if (data->unk0_0c) + { + if (!IsContest()) + { + if (!data->unkE_0) + { + sprite->oam.priority--; + data->unkE_0 ^= 1; + } + else + { + sprite->oam.priority++; + data->unkE_0 ^= 1; + } + } + else + { + if (!data->unkE_0) + { + sprite->subpriority -= 12; + data->unkE_0 ^= 1; + } + else + { + sprite->subpriority += 12; + data->unkE_0 ^= 1; + } + } + } + data->unk0_0d = 0; + } + data->unk0_1 = 2; + break; + case 3: + if ((u8)data->unk0_1 == 2) + { + data->unk0_0d = 1; + } + else if ((u8)data->unk0_1 == 0) + { + data->unk0_0b ^= 1; + data->unk0_0a = 1; + data->unk1 = 0; + } + else if (data->unk0_0d) + { + sprite->hFlip ^= 1; + sprite->animNum = sprite->hFlip; + sprite->animBeginning = TRUE; + sprite->animEnded = FALSE; + if (data->unk0_0c) + { + if (!IsContest()) + { + if (!data->unkE_0) + { + sprite->oam.priority--; + data->unkE_0 ^= 1; + } + else + { + sprite->oam.priority++; + data->unkE_0 ^= 1; + } + } + else + { + if (!data->unkE_0) + { + sprite->subpriority -= 12; + data->unkE_0 ^= 1; + } + else + { + sprite->subpriority += 12; + data->unkE_0 ^= 1; + } + } + } + data->unk0_0d = 0; + } + data->unk0_1 = 3; + break; + } + + sprite->pos2.x = ((s32)(data->unkC[data->unk0_0b]) * gSineTable[data->unk2]) >> 8; + matrixNum = sprite->oam.matrixNum; + + sinIndex = ((-sprite->pos2.x >> 1) + data->unkA); + sinVal = gSineTable[sinIndex]; + + gOamMatrices[matrixNum].a = gOamMatrices[matrixNum].d = gSineTable[sinIndex + 64]; + gOamMatrices[matrixNum].b = sinVal; + gOamMatrices[matrixNum].c = -sinVal; + + data->unk8 += data->unk6; + sprite->pos1.y = (s16)(data->unk8 >> 8); + if (data->unk4 & 0x8000) + data->unk2 = (data->unk2 - (data->unk4 & 0x7FFF)) & 0xFF; + else + data->unk2 = (data->unk2 + (data->unk4 & 0x7FFF)) & 0xFF; + + if (sprite->pos1.y + sprite->pos2.y >= data->unkE_1) + { + sprite->data[0] = 0; + sprite->callback = DestroyAnimSpriteAfterTimer; } } @@ -944,20 +926,20 @@ static void sub_810EB40(struct Sprite *sprite) { sprite->pos2.x += sprite->data[1] >> 8; - if (++sprite->data[0] == 6) + if (sprite->data[0]++ == 5) { sprite->data[0] = 0; sprite->pos2.x = 0; StartSpriteAnim(sprite, 0); } - if (--sprite->data[7] == -1) + if (sprite->data[7]-- == 0) DestroyAnimSprite(sprite); } void AnimTask_DrillPeckHitSplats(u8 task) { - if (!(gTasks[task].data[0] % 32)) + if ((gTasks[task].data[0] % 32) == 0) { gAnimVisualTaskCount++; @@ -1060,8 +1042,8 @@ static void AnimDiveBall_Step2(struct Sprite *sprite) static void AnimDiveWaterSplash(struct Sprite *sprite) { - u32 matrixNum; - int t1, t2; + u8 matrixNum; + s32 t1, t2; switch (sprite->data[0]) { @@ -1083,7 +1065,7 @@ static void AnimDiveWaterSplash(struct Sprite *sprite) sprite->data[0]++; break; case 1: - if (sprite->data[2] <= 11) + if (sprite->data[2] < 12) sprite->data[1] -= 40; else sprite->data[1] += 40; @@ -1091,7 +1073,7 @@ static void AnimDiveWaterSplash(struct Sprite *sprite) sprite->data[2]++; TrySetSpriteRotScale(sprite, 0, 256, sprite->data[1], 0); - + matrixNum = sprite->oam.matrixNum; t1 = 15616; @@ -1115,8 +1097,8 @@ static void AnimDiveWaterSplash(struct Sprite *sprite) // Launches a water droplet away from the specified battler. Used by Astonish and Dive static void AnimSprayWaterDroplet(struct Sprite *sprite) { - int v1 = 0x1ff & Random2(); - int v2 = 0x7f & Random2(); + const u16 v1 = Random2() & 0x1ff; + const u16 v2 = Random2() & 0x07f; if (v1 % 2) sprite->data[0] = 736 + v1; @@ -1160,13 +1142,13 @@ static void AnimSprayWaterDroplet_Step(struct Sprite *sprite) sprite->pos2.y -= sprite->data[1] >> 8; } - sprite->data[0] = sprite->data[0]; + sprite->data[0] -= 0; // Needed to Match sprite->data[1] -= 32; if (sprite->data[0] < 0) sprite->data[0] = 0; - if (++sprite->data[3] == 31) + if (sprite->data[3]++ == 30) DestroyAnimSprite(sprite); } @@ -1212,7 +1194,7 @@ static void AnimSkyAttackBird(struct Sprite *sprite) sprite->data[7] = ((posy - sprite->pos1.y) << 4) / 12; rotation = ArcTan2Neg(posx - sprite->pos1.x, posy - sprite->pos1.y); - rotation += 49152; + rotation -= 16384; TrySetSpriteRotScale(sprite, 1, 0x100, 0x100, rotation); @@ -1236,12 +1218,12 @@ void unref_sub_810F184(u8 taskId) { if (gBattleAnimArgs[0] == 0) { - u8 spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER); + const u8 spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER); gSprites[spriteId].invisible = TRUE; } else { - u8 spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER); + const u8 spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER); gSprites[spriteId].invisible = FALSE; } DestroyAnimVisualTask(taskId); From 35c6e85e2031571ee775ccc113f156266cd68b4d Mon Sep 17 00:00:00 2001 From: PokeCodec Date: Sun, 9 Aug 2020 19:24:06 -0400 Subject: [PATCH 051/101] cleanup --- src/battle_anim_flying.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/battle_anim_flying.c b/src/battle_anim_flying.c index f188f2c8f7..b4454b2e71 100644 --- a/src/battle_anim_flying.c +++ b/src/battle_anim_flying.c @@ -380,21 +380,18 @@ static void AnimTask_AnimateGustTornadoPalette_Step(u8 taskId) { u8 data2; u16 temp; - int i, base; if (gTasks[taskId].data[10]++ == gTasks[taskId].data[1]) { + int i, base; gTasks[taskId].data[10] = 0; data2 = gTasks[taskId].data[2]; temp = gPlttBufferFaded[16 * data2 + 0x108]; i = 7; base = data2 * 16; - do - { + for (; i > 0; --i) gPlttBufferFaded[base + 0x101 + i] = gPlttBufferFaded[base + 0x100 + i]; - i--; - } while (i > 0); gPlttBufferFaded[base + 0x101] = temp; } From 7e593d37bb59d3fc015af441a1b3669fc494de84 Mon Sep 17 00:00:00 2001 From: PokeCodec Date: Fri, 7 Aug 2020 19:18:51 -0400 Subject: [PATCH 052/101] 2 --- src/berry_crush.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/berry_crush.c b/src/berry_crush.c index cf4c99f5a7..ff544a01d8 100755 --- a/src/berry_crush.c +++ b/src/berry_crush.c @@ -3271,7 +3271,7 @@ static void BerryCrush_SetPaletteFadeParams(u8 *params, bool8 communicateAfter, void sub_8024644(u8 *r0, u32 r1, u32 r2, u32 r3, u32 r5) { - u8 sp[4]; + u8 sp[2]; 0[(u16 *)sp] = r3; r0[0] = r1; From cc4255d4c064384cf3516441e340b6377c99de3d Mon Sep 17 00:00:00 2001 From: GriffinR Date: Mon, 10 Aug 2020 23:50:49 -0400 Subject: [PATCH 053/101] Add some charmap constant usage --- charmap.txt | 8 +- gflib/string_util.c | 169 +++++++++++---------- gflib/text.c | 222 ++++++++++++++-------------- gflib/text.h | 59 ++++++-- src/battle_controller_player.c | 12 +- src/battle_message.c | 2 +- src/battle_script_commands.c | 8 +- src/data/union_room.h | 12 +- src/dynamic_placeholder_text_util.c | 2 +- src/international_string_util.c | 2 +- src/link_rfu_3.c | 6 +- src/mauville_old_man.c | 2 +- src/menu_specialized.c | 42 +++--- src/pokeblock.c | 4 +- src/pokedex.c | 2 +- src/pokemon_storage_system.c | 34 ++--- src/pokemon_summary_screen.c | 6 +- src/pokenav_conditions_1.c | 44 +++--- src/pokenav_conditions_2.c | 8 +- src/pokenav_conditions_3.c | 2 +- src/pokenav_ribbons_1.c | 2 +- src/pokenav_ribbons_2.c | 2 +- src/strings.c | 76 +++++----- src/union_room_chat.c | 14 +- src/unk_text_util_2.c | 36 ++--- 25 files changed, 404 insertions(+), 372 deletions(-) diff --git a/charmap.txt b/charmap.txt index 3a34bada56..c96202a096 100644 --- a/charmap.txt +++ b/charmap.txt @@ -405,7 +405,7 @@ B_BUFF3 = FD 34 NAME_END = FC 00 @ special 0xF7 character -SPECIAL_F7 = F7 +DYNAMIC = F7 @ more text functions @@ -415,15 +415,15 @@ SHADOW = FC 03 @ same as fc 01 COLOR_HIGHLIGHT_SHADOW = FC 04 @ takes 3 bytes PALETTE = FC 05 @ used in credits SIZE = FC 06 @ note that anything other than "SMALL" is invalid -UNKNOWN_7 = FC 07 +RESET_SIZE = FC 07 PAUSE = FC 08 @ manually print the wait byte after this, havent mapped them PAUSE_UNTIL_PRESS = FC 09 WAIT_SE = FC 0A PLAY_BGM = FC 0B ESCAPE = FC 0C SHIFT_TEXT = FC 0D -UNKNOWN_E = FC 0E -UNKNOWN_F = FC 0F +SHIFT_DOWN = FC 0E +FILL_WINDOW = FC 0F PLAY_SE = FC 10 CLEAR = FC 11 SKIP = FC 12 diff --git a/gflib/string_util.c b/gflib/string_util.c index db972a8ed3..92f8eea5af 100644 --- a/gflib/string_util.c +++ b/gflib/string_util.c @@ -342,50 +342,61 @@ u8 *StringExpandPlaceholders(u8 *dest, const u8 *src) switch (c) { - case PLACEHOLDER_BEGIN: - placeholderId = *src++; - expandedString = GetExpandedPlaceholder(placeholderId); - dest = StringExpandPlaceholders(dest, expandedString); - break; - case EXT_CTRL_CODE_BEGIN: - *dest++ = c; - c = *src++; - *dest++ = c; + case PLACEHOLDER_BEGIN: + placeholderId = *src++; + expandedString = GetExpandedPlaceholder(placeholderId); + dest = StringExpandPlaceholders(dest, expandedString); + break; + case EXT_CTRL_CODE_BEGIN: + *dest++ = c; + c = *src++; + *dest++ = c; - switch (c) - { - case 0x07: - case 0x09: - case 0x0F: - case 0x15: - case 0x16: - case 0x17: - case 0x18: - break; - case 0x04: - *dest++ = *src++; - case 0x0B: - *dest++ = *src++; - default: - *dest++ = *src++; - } + switch (c) + { + case EXT_CTRL_CODE_RESET_SIZE: + case EXT_CTRL_CODE_PAUSE_UNTIL_PRESS: + case EXT_CTRL_CODE_FILL_WINDOW: + case EXT_CTRL_CODE_JPN: + case EXT_CTRL_CODE_ENG: + case EXT_CTRL_CODE_PAUSE_MUSIC: + case EXT_CTRL_CODE_RESUME_MUSIC: break; - case EOS: - *dest = EOS; - return dest; - case CHAR_PROMPT_SCROLL: - case CHAR_PROMPT_CLEAR: - case CHAR_NEWLINE: + case EXT_CTRL_CODE_COLOR_HIGHLIGHT_SHADOW: + *dest++ = *src++; + case EXT_CTRL_CODE_PLAY_BGM: + *dest++ = *src++; default: - *dest++ = c; + *dest++ = *src++; + } + break; + case EOS: + *dest = EOS; + return dest; + case CHAR_PROMPT_SCROLL: + case CHAR_PROMPT_CLEAR: + case CHAR_NEWLINE: + default: + *dest++ = c; } } } u8 *StringBraille(u8 *dest, const u8 *src) { - u8 setBrailleFont[] = { EXT_CTRL_CODE_BEGIN, 0x06, 0x06, EOS }; - u8 gotoLine2[] = { CHAR_NEWLINE, EXT_CTRL_CODE_BEGIN, 0x0E, 0x02, EOS }; + const u8 setBrailleFont[] = { + EXT_CTRL_CODE_BEGIN, + EXT_CTRL_CODE_SIZE, + 6, + EOS + }; + const u8 gotoLine2[] = { + CHAR_NEWLINE, + EXT_CTRL_CODE_BEGIN, + EXT_CTRL_CODE_SHIFT_DOWN, + 2, + EOS + }; dest = StringCopy(dest, setBrailleFont); @@ -395,16 +406,16 @@ u8 *StringBraille(u8 *dest, const u8 *src) switch (c) { - case EOS: - *dest = c; - return dest; - case CHAR_NEWLINE: - dest = StringCopy(dest, gotoLine2); - break; - default: - *dest++ = c; - *dest++ = c + 0x40; - break; + case EOS: + *dest = c; + return dest; + case CHAR_NEWLINE: + dest = StringCopy(dest, gotoLine2); + break; + default: + *dest++ = c; + *dest++ = c + 0x40; + break; } } } @@ -564,7 +575,7 @@ u8 *StringCopyN_Multibyte(u8 *dest, u8 *src, u32 n) else { *dest++ = *src++; - if (*(src - 1) == CHAR_SPECIAL_F9) + if (*(src - 1) == CHAR_EXTRA_SYMBOL) *dest++ = *src++; } } @@ -579,7 +590,7 @@ u32 StringLength_Multibyte(const u8 *str) while (*str != EOS) { - if (*str == CHAR_SPECIAL_F9) + if (*str == CHAR_EXTRA_SYMBOL) str++; str++; length++; @@ -596,15 +607,15 @@ u8 *WriteColorChangeControlCode(u8 *dest, u32 colorType, u8 color) switch (colorType) { case 0: - *dest = 1; + *dest = EXT_CTRL_CODE_COLOR; dest++; break; case 1: - *dest = 3; + *dest = EXT_CTRL_CODE_SHADOW; dest++; break; case 2: - *dest = 2; + *dest = EXT_CTRL_CODE_HIGHLIGHT; dest++; break; } @@ -619,7 +630,7 @@ bool32 IsStringJapanese(u8 *str) { while (*str != EOS) { - if (*str <= 0xA0) + if (*str < CHAR_0) if (*str != CHAR_SPACE) return TRUE; str++; @@ -634,7 +645,7 @@ bool32 sub_800924C(u8 *str, s32 n) for (i = 0; *str != EOS && i < n; i++) { - if (*str <= 0xA0) + if (*str < CHAR_0) if (*str != CHAR_SPACE) return TRUE; str++; @@ -647,31 +658,31 @@ u8 GetExtCtrlCodeLength(u8 code) { static const u8 lengths[] = { - 1, - 2, - 2, - 2, - 4, - 2, - 2, - 1, - 2, - 1, - 1, - 3, - 2, - 2, - 2, - 1, - 3, - 2, - 2, - 2, - 2, - 1, - 1, - 1, - 1, + [0] = 1, + [EXT_CTRL_CODE_COLOR] = 2, + [EXT_CTRL_CODE_HIGHLIGHT] = 2, + [EXT_CTRL_CODE_SHADOW] = 2, + [EXT_CTRL_CODE_COLOR_HIGHLIGHT_SHADOW] = 4, + [EXT_CTRL_CODE_PALETTE] = 2, + [EXT_CTRL_CODE_SIZE] = 2, + [EXT_CTRL_CODE_RESET_SIZE] = 1, + [EXT_CTRL_CODE_PAUSE] = 2, + [EXT_CTRL_CODE_PAUSE_UNTIL_PRESS] = 1, + [EXT_CTRL_CODE_WAIT_SE] = 1, + [EXT_CTRL_CODE_PLAY_BGM] = 3, + [EXT_CTRL_CODE_ESCAPE] = 2, + [EXT_CTRL_CODE_SHIFT_TEXT] = 2, + [EXT_CTRL_CODE_SHIFT_DOWN] = 2, + [EXT_CTRL_CODE_FILL_WINDOW] = 1, + [EXT_CTRL_CODE_PLAY_SE] = 3, + [EXT_CTRL_CODE_CLEAR] = 2, + [EXT_CTRL_CODE_SKIP] = 2, + [EXT_CTRL_CODE_CLEAR_TO] = 2, + [EXT_CTRL_CODE_MIN_LETTER_SPACING] = 2, + [EXT_CTRL_CODE_JPN] = 1, + [EXT_CTRL_CODE_ENG] = 1, + [EXT_CTRL_CODE_PAUSE_MUSIC] = 1, + [EXT_CTRL_CODE_RESUME_MUSIC] = 1, }; u8 length = 0; @@ -734,7 +745,7 @@ void ConvertInternationalString(u8 *s, u8 language) StripExtCtrlCodes(s); i = StringLength(s); s[i++] = EXT_CTRL_CODE_BEGIN; - s[i++] = 22; + s[i++] = EXT_CTRL_CODE_ENG; s[i++] = EOS; i--; @@ -746,7 +757,7 @@ void ConvertInternationalString(u8 *s, u8 language) } s[0] = EXT_CTRL_CODE_BEGIN; - s[1] = 21; + s[1] = EXT_CTRL_CODE_JPN; } } diff --git a/gflib/text.c b/gflib/text.c index 6e5af0e125..5d407e5e4c 100644 --- a/gflib/text.c +++ b/gflib/text.c @@ -67,19 +67,19 @@ const struct GlyphWidthFunc gGlyphWidthFuncs[] = const struct KeypadIcon gKeypadIcons[] = { - { 0x0, 0x8, 0xC }, - { 0x1, 0x8, 0xC }, - { 0x2, 0x10, 0xC }, - { 0x4, 0x10, 0xC }, - { 0x6, 0x18, 0xC }, - { 0x9, 0x18, 0xC }, - { 0xC, 0x8, 0xC }, - { 0xD, 0x8, 0xC }, - { 0xE, 0x8, 0xC }, - { 0xF, 0x8, 0xC }, - { 0x20, 0x8, 0xC }, - { 0x21, 0x8, 0xC }, - { 0x22, 0x8, 0xC } + [CHAR_A_BUTTON] = { 0x0, 0x8, 0xC }, + [CHAR_B_BUTTON] = { 0x1, 0x8, 0xC }, + [CHAR_L_BUTTON] = { 0x2, 0x10, 0xC }, + [CHAR_R_BUTTON] = { 0x4, 0x10, 0xC }, + [CHAR_START_BUTTON] = { 0x6, 0x18, 0xC }, + [CHAR_SELECT_BUTTON] = { 0x9, 0x18, 0xC }, + [CHAR_DPAD_UP] = { 0xC, 0x8, 0xC }, + [CHAR_DPAD_DOWN] = { 0xD, 0x8, 0xC }, + [CHAR_DPAD_LEFT] = { 0xE, 0x8, 0xC }, + [CHAR_DPAD_RIGHT] = { 0xF, 0x8, 0xC }, + [CHAR_DPAD_UPDOWN] = { 0x20, 0x8, 0xC }, + [CHAR_DPAD_LEFTRIGHT] = { 0x21, 0x8, 0xC }, + [CHAR_DPAD_NONE] = { 0x22, 0x8, 0xC } }; const u8 gKeypadIconTiles[] = INCBIN_U8("graphics/fonts/keypad_icons.4bpp"); @@ -1609,22 +1609,22 @@ u16 RenderText(struct TextPrinter *textPrinter) textPrinter->printerTemplate.currentChar++; switch (currChar) { - case 1: + case EXT_CTRL_CODE_COLOR: textPrinter->printerTemplate.fgColor = *textPrinter->printerTemplate.currentChar; textPrinter->printerTemplate.currentChar++; GenerateFontHalfRowLookupTable(textPrinter->printerTemplate.fgColor, textPrinter->printerTemplate.bgColor, textPrinter->printerTemplate.shadowColor); return 2; - case 2: + case EXT_CTRL_CODE_HIGHLIGHT: textPrinter->printerTemplate.bgColor = *textPrinter->printerTemplate.currentChar; textPrinter->printerTemplate.currentChar++; GenerateFontHalfRowLookupTable(textPrinter->printerTemplate.fgColor, textPrinter->printerTemplate.bgColor, textPrinter->printerTemplate.shadowColor); return 2; - case 3: + case EXT_CTRL_CODE_SHADOW: textPrinter->printerTemplate.shadowColor = *textPrinter->printerTemplate.currentChar; textPrinter->printerTemplate.currentChar++; GenerateFontHalfRowLookupTable(textPrinter->printerTemplate.fgColor, textPrinter->printerTemplate.bgColor, textPrinter->printerTemplate.shadowColor); return 2; - case 4: + case EXT_CTRL_CODE_COLOR_HIGHLIGHT_SHADOW: textPrinter->printerTemplate.fgColor = *textPrinter->printerTemplate.currentChar; textPrinter->printerTemplate.currentChar++; textPrinter->printerTemplate.bgColor = *textPrinter->printerTemplate.currentChar; @@ -1633,63 +1633,63 @@ u16 RenderText(struct TextPrinter *textPrinter) textPrinter->printerTemplate.currentChar++; GenerateFontHalfRowLookupTable(textPrinter->printerTemplate.fgColor, textPrinter->printerTemplate.bgColor, textPrinter->printerTemplate.shadowColor); return 2; - case 5: + case EXT_CTRL_CODE_PALETTE: textPrinter->printerTemplate.currentChar++; return 2; - case 6: + case EXT_CTRL_CODE_SIZE: subStruct->glyphId = *textPrinter->printerTemplate.currentChar; textPrinter->printerTemplate.currentChar++; return 2; - case EXT_CTRL_CODE_UNKNOWN_7: + case EXT_CTRL_CODE_RESET_SIZE: return 2; - case 8: + case EXT_CTRL_CODE_PAUSE: textPrinter->delayCounter = *textPrinter->printerTemplate.currentChar; textPrinter->printerTemplate.currentChar++; textPrinter->state = 6; return 2; - case 9: + case EXT_CTRL_CODE_PAUSE_UNTIL_PRESS: textPrinter->state = 1; if (gTextFlags.autoScroll) subStruct->autoScrollDelay = 0; return 3; - case 10: + case EXT_CTRL_CODE_WAIT_SE: textPrinter->state = 5; return 3; - case 11: + case EXT_CTRL_CODE_PLAY_BGM: currChar = *textPrinter->printerTemplate.currentChar; textPrinter->printerTemplate.currentChar++; currChar |= *textPrinter->printerTemplate.currentChar << 8; textPrinter->printerTemplate.currentChar++; PlayBGM(currChar); return 2; - case 12: + case EXT_CTRL_CODE_ESCAPE: currChar = *textPrinter->printerTemplate.currentChar | 0x100; textPrinter->printerTemplate.currentChar++; break; - case 16: + case EXT_CTRL_CODE_PLAY_SE: currChar = *textPrinter->printerTemplate.currentChar; textPrinter->printerTemplate.currentChar++; currChar |= (*textPrinter->printerTemplate.currentChar << 8); textPrinter->printerTemplate.currentChar++; PlaySE(currChar); return 2; - case 13: + case EXT_CTRL_CODE_SHIFT_TEXT: textPrinter->printerTemplate.currentX = textPrinter->printerTemplate.x + *textPrinter->printerTemplate.currentChar; textPrinter->printerTemplate.currentChar++; return 2; - case 14: + case EXT_CTRL_CODE_SHIFT_DOWN: textPrinter->printerTemplate.currentY = textPrinter->printerTemplate.y + *textPrinter->printerTemplate.currentChar; textPrinter->printerTemplate.currentChar++; return 2; - case 15: + case EXT_CTRL_CODE_FILL_WINDOW: FillWindowPixelBuffer(textPrinter->printerTemplate.windowId, PIXEL_FILL(textPrinter->printerTemplate.bgColor)); textPrinter->printerTemplate.currentX = textPrinter->printerTemplate.x; textPrinter->printerTemplate.currentY = textPrinter->printerTemplate.y; return 2; - case 23: + case EXT_CTRL_CODE_PAUSE_MUSIC: m4aMPlayStop(&gMPlayInfo_BGM); return 2; - case 24: + case EXT_CTRL_CODE_RESUME_MUSIC: m4aMPlayContinue(&gMPlayInfo_BGM); return 2; case EXT_CTRL_CODE_CLEAR: @@ -1702,7 +1702,7 @@ u16 RenderText(struct TextPrinter *textPrinter) return 0; } return 2; - case 18: + case EXT_CTRL_CODE_SKIP: textPrinter->printerTemplate.currentX = *textPrinter->printerTemplate.currentChar + textPrinter->printerTemplate.x; textPrinter->printerTemplate.currentChar++; return 2; @@ -1739,11 +1739,11 @@ u16 RenderText(struct TextPrinter *textPrinter) textPrinter->state = 3; TextPrinterInitDownArrowCounters(textPrinter); return 3; - case CHAR_SPECIAL_F9: + case CHAR_EXTRA_SYMBOL: currChar = *textPrinter->printerTemplate.currentChar | 0x100; textPrinter->printerTemplate.currentChar++; break; - case CHAR_SPECIAL_F8: + case CHAR_KEYPAD_ICON: currChar = *textPrinter->printerTemplate.currentChar++; gUnknown_03002F90.unk80 = DrawKeypadIcon(textPrinter->printerTemplate.windowId, currChar, textPrinter->printerTemplate.currentX, textPrinter->printerTemplate.currentY); textPrinter->printerTemplate.currentX += gUnknown_03002F90.unk80 + textPrinter->printerTemplate.letterSpacing; @@ -1891,45 +1891,45 @@ u32 GetStringWidthFixedWidthFont(const u8 *str, u8 fontId, u8 letterSpacing) temp2 = strLocal[strPos++]; switch (temp2) { - case 0x4: + case EXT_CTRL_CODE_COLOR_HIGHLIGHT_SHADOW: ++strPos; - case 0xB: - case 0x10: + case EXT_CTRL_CODE_PLAY_BGM: + case EXT_CTRL_CODE_PLAY_SE: ++strPos; - case 0x1: - case 0x2: - case 0x3: - case 0x5: - case 0x6: - case 0x8: - case 0xC: - case 0xD: - case 0xE: - case 0x11: - case 0x12: - case 0x13: - case 0x14: + case EXT_CTRL_CODE_COLOR: + case EXT_CTRL_CODE_HIGHLIGHT: + case EXT_CTRL_CODE_SHADOW: + case EXT_CTRL_CODE_PALETTE: + case EXT_CTRL_CODE_SIZE: + case EXT_CTRL_CODE_PAUSE: + case EXT_CTRL_CODE_ESCAPE: + case EXT_CTRL_CODE_SHIFT_TEXT: + case EXT_CTRL_CODE_SHIFT_DOWN: + case EXT_CTRL_CODE_CLEAR: + case EXT_CTRL_CODE_SKIP: + case EXT_CTRL_CODE_CLEAR_TO: + case EXT_CTRL_CODE_MIN_LETTER_SPACING: ++strPos; break; - case EXT_CTRL_CODE_UNKNOWN_7: - case 0x9: - case 0xA: - case 0xF: + case EXT_CTRL_CODE_RESET_SIZE: + case EXT_CTRL_CODE_PAUSE_UNTIL_PRESS: + case EXT_CTRL_CODE_WAIT_SE: + case EXT_CTRL_CODE_FILL_WINDOW: case EXT_CTRL_CODE_JPN: case EXT_CTRL_CODE_ENG: default: break; } break; - case CHAR_SPECIAL_F7: + case CHAR_DYNAMIC: case PLACEHOLDER_BEGIN: ++strPos; break; case CHAR_PROMPT_SCROLL: case CHAR_PROMPT_CLEAR: break; - case CHAR_SPECIAL_F8: - case CHAR_SPECIAL_F9: + case CHAR_KEYPAD_ICON: + case CHAR_EXTRA_SYMBOL: ++strPos; default: ++width; @@ -1999,19 +1999,19 @@ s32 GetStringWidth(u8 fontId, const u8 *str, s16 letterSpacing) case PLACEHOLDER_BEGIN: switch (*++str) { - case 0x2: + case PLACEHOLDER_ID_STRING_VAR_1: bufferPointer = gStringVar1; break; - case 0x3: + case PLACEHOLDER_ID_STRING_VAR_2: bufferPointer = gStringVar2; break; - case 0x4: + case PLACEHOLDER_ID_STRING_VAR_3: bufferPointer = gStringVar3; break; default: return 0; } - case CHAR_SPECIAL_F7: + case CHAR_DYNAMIC: if (bufferPointer == NULL) bufferPointer = DynamicPlaceholderTextUtil_GetPlaceholderPtr(*++str); while (*bufferPointer != EOS) @@ -2035,40 +2035,40 @@ s32 GetStringWidth(u8 fontId, const u8 *str, s16 letterSpacing) case EXT_CTRL_CODE_BEGIN: switch (*++str) { - case 0x4: + case EXT_CTRL_CODE_COLOR_HIGHLIGHT_SHADOW: ++str; - case 0xB: - case 0x10: + case EXT_CTRL_CODE_PLAY_BGM: + case EXT_CTRL_CODE_PLAY_SE: ++str; - case 0x1: - case 0x2: - case 0x3: - case 0x5: - case 0x8: - case 0xC: - case 0xD: - case 0xE: + case EXT_CTRL_CODE_COLOR: + case EXT_CTRL_CODE_HIGHLIGHT: + case EXT_CTRL_CODE_SHADOW: + case EXT_CTRL_CODE_PALETTE: + case EXT_CTRL_CODE_PAUSE: + case EXT_CTRL_CODE_ESCAPE: + case EXT_CTRL_CODE_SHIFT_TEXT: + case EXT_CTRL_CODE_SHIFT_DOWN: ++str; break; - case 0x6: + case EXT_CTRL_CODE_SIZE: func = GetFontWidthFunc(*++str); if (func == NULL) return 0; if (letterSpacing == -1) localLetterSpacing = GetFontAttribute(*str, FONTATTR_LETTER_SPACING); break; - case 0x11: + case EXT_CTRL_CODE_CLEAR: glyphWidth = *++str; lineWidth += glyphWidth; break; - case 0x12: + case EXT_CTRL_CODE_SKIP: lineWidth = *++str; break; - case 0x13: + case EXT_CTRL_CODE_CLEAR_TO: if (*++str > lineWidth) lineWidth = *str; break; - case 0x14: + case EXT_CTRL_CODE_MIN_LETTER_SPACING: minGlyphWidth = *++str; break; case EXT_CTRL_CODE_JPN: @@ -2077,17 +2077,17 @@ s32 GetStringWidth(u8 fontId, const u8 *str, s16 letterSpacing) case EXT_CTRL_CODE_ENG: isJapanese = 0; break; - case EXT_CTRL_CODE_UNKNOWN_7: - case 0x9: - case 0xA: - case 0xF: + case EXT_CTRL_CODE_RESET_SIZE: + case EXT_CTRL_CODE_PAUSE_UNTIL_PRESS: + case EXT_CTRL_CODE_WAIT_SE: + case EXT_CTRL_CODE_FILL_WINDOW: default: break; } break; - case CHAR_SPECIAL_F8: - case CHAR_SPECIAL_F9: - if (*str == CHAR_SPECIAL_F9) + case CHAR_KEYPAD_ICON: + case CHAR_EXTRA_SYMBOL: + if (*str == CHAR_EXTRA_SYMBOL) glyphWidth = func(*++str | 0x100, isJapanese); else glyphWidth = GetKeypadIconWidth(*++str); @@ -2146,11 +2146,11 @@ u8 RenderTextFont9(u8 *pixels, u8 fontId, u8 *str) SaveTextColors(&colorBackup[0], &colorBackup[1], &colorBackup[2]); - fgColor = 1; - bgColor = 0; - shadowColor = 3; + fgColor = TEXT_COLOR_WHITE; + bgColor = TEXT_COLOR_TRANSPARENT; + shadowColor = TEXT_COLOR_LIGHT_GREY; - GenerateFontHalfRowLookupTable(1, 0, 3); + GenerateFontHalfRowLookupTable(TEXT_COLOR_WHITE, TEXT_COLOR_TRANSPARENT, TEXT_COLOR_LIGHT_GREY); strLocal = str; strPos = 0; @@ -2163,54 +2163,54 @@ u8 RenderTextFont9(u8 *pixels, u8 fontId, u8 *str) temp2 = strLocal[strPos++]; switch (temp2) { - case 0x4: + case EXT_CTRL_CODE_COLOR_HIGHLIGHT_SHADOW: fgColor = strLocal[strPos++]; bgColor = strLocal[strPos++]; shadowColor = strLocal[strPos++]; GenerateFontHalfRowLookupTable(fgColor, bgColor, shadowColor); continue; - case 0x1: + case EXT_CTRL_CODE_COLOR: fgColor = strLocal[strPos++]; GenerateFontHalfRowLookupTable(fgColor, bgColor, shadowColor); continue; - case 0x2: + case EXT_CTRL_CODE_HIGHLIGHT: bgColor = strLocal[strPos++]; GenerateFontHalfRowLookupTable(fgColor, bgColor, shadowColor); continue; - case 0x3: + case EXT_CTRL_CODE_SHADOW: shadowColor = strLocal[strPos++]; GenerateFontHalfRowLookupTable(fgColor, bgColor, shadowColor); continue; - case 0x6: + case EXT_CTRL_CODE_SIZE: fontId = strLocal[strPos++]; break; - case 0xB: - case 0x10: + case EXT_CTRL_CODE_PLAY_BGM: + case EXT_CTRL_CODE_PLAY_SE: ++strPos; - case 0x5: - case 0x8: - case 0xC: - case 0xD: - case 0xE: - case 0x11: - case 0x12: - case 0x13: - case 0x14: + case EXT_CTRL_CODE_PALETTE: + case EXT_CTRL_CODE_PAUSE: + case EXT_CTRL_CODE_ESCAPE: + case EXT_CTRL_CODE_SHIFT_TEXT: + case EXT_CTRL_CODE_SHIFT_DOWN: + case EXT_CTRL_CODE_CLEAR: + case EXT_CTRL_CODE_SKIP: + case EXT_CTRL_CODE_CLEAR_TO: + case EXT_CTRL_CODE_MIN_LETTER_SPACING: ++strPos; break; - case EXT_CTRL_CODE_UNKNOWN_7: - case 0x9: - case 0xA: - case 0xF: + case EXT_CTRL_CODE_RESET_SIZE: + case EXT_CTRL_CODE_PAUSE_UNTIL_PRESS: + case EXT_CTRL_CODE_WAIT_SE: + case EXT_CTRL_CODE_FILL_WINDOW: case EXT_CTRL_CODE_JPN: case EXT_CTRL_CODE_ENG: default: continue; } break; - case CHAR_SPECIAL_F7: - case CHAR_SPECIAL_F8: - case CHAR_SPECIAL_F9: + case CHAR_DYNAMIC: + case CHAR_KEYPAD_ICON: + case CHAR_EXTRA_SYMBOL: case PLACEHOLDER_BEGIN: ++strPos; break; diff --git a/gflib/text.h b/gflib/text.h index 5b317600ea..ba74cde6e1 100644 --- a/gflib/text.h +++ b/gflib/text.h @@ -169,9 +169,9 @@ #define CHAR_a_DIAERESIS 0xF4 #define CHAR_o_DIAERESIS 0xF5 #define CHAR_u_DIAERESIS 0xF6 -#define CHAR_SPECIAL_F7 0xF7 -#define CHAR_SPECIAL_F8 0xF8 -#define CHAR_SPECIAL_F9 0xF9 +#define CHAR_DYNAMIC 0xF7 +#define CHAR_KEYPAD_ICON 0xF8 +#define CHAR_EXTRA_SYMBOL 0xF9 #define CHAR_PROMPT_SCROLL 0xFA // waits for button press and scrolls dialog #define CHAR_PROMPT_CLEAR 0xFB // waits for button press and clears dialog #define EXT_CTRL_CODE_BEGIN 0xFC // extended control code @@ -179,7 +179,22 @@ #define CHAR_NEWLINE 0xFE #define EOS 0xFF // end of string -// Special F9 chars +// CHAR_KEYPAD_ICON chars +#define CHAR_A_BUTTON 0x00 +#define CHAR_B_BUTTON 0x01 +#define CHAR_L_BUTTON 0x02 +#define CHAR_R_BUTTON 0x03 +#define CHAR_START_BUTTON 0x04 +#define CHAR_SELECT_BUTTON 0x05 +#define CHAR_DPAD_UP 0x06 +#define CHAR_DPAD_DOWN 0x07 +#define CHAR_DPAD_LEFT 0x08 +#define CHAR_DPAD_RIGHT 0x09 +#define CHAR_DPAD_UPDOWN 0x0A +#define CHAR_DPAD_LEFTRIGHT 0x0B +#define CHAR_DPAD_NONE 0x0C + +// CHAR_EXTRA_SYMBOL chars #define CHAR_UP_ARROW_2 0x00 #define CHAR_DOWN_ARROW_2 0x01 #define CHAR_LEFT_ARROW_2 0x02 @@ -191,18 +206,30 @@ #define CHAR_NO 0x08 #define CHAR_UNDERSCORE 0x09 -#define EXT_CTRL_CODE_COLOR 0x1 -#define EXT_CTRL_CODE_HIGHLIGHT 0x2 -#define EXT_CTRL_CODE_SHADOW 0x3 -// -#define EXT_CTRL_CODE_UNKNOWN_7 0x7 -// -#define EXT_CTRL_CODE_CLEAR 0x11 -// -#define EXT_CTRL_CODE_CLEAR_TO 0x13 -#define EXT_CTRL_CODE_MIN_LETTER_SPACING 0x14 -#define EXT_CTRL_CODE_JPN 0x15 -#define EXT_CTRL_CODE_ENG 0x16 +#define EXT_CTRL_CODE_COLOR 0x01 +#define EXT_CTRL_CODE_HIGHLIGHT 0x02 +#define EXT_CTRL_CODE_SHADOW 0x03 +#define EXT_CTRL_CODE_COLOR_HIGHLIGHT_SHADOW 0x04 +#define EXT_CTRL_CODE_PALETTE 0x05 +#define EXT_CTRL_CODE_SIZE 0x06 +#define EXT_CTRL_CODE_RESET_SIZE 0x07 +#define EXT_CTRL_CODE_PAUSE 0x08 +#define EXT_CTRL_CODE_PAUSE_UNTIL_PRESS 0x09 +#define EXT_CTRL_CODE_WAIT_SE 0x0A +#define EXT_CTRL_CODE_PLAY_BGM 0x0B +#define EXT_CTRL_CODE_ESCAPE 0x0C +#define EXT_CTRL_CODE_SHIFT_TEXT 0x0D +#define EXT_CTRL_CODE_SHIFT_DOWN 0x0E +#define EXT_CTRL_CODE_FILL_WINDOW 0x0F +#define EXT_CTRL_CODE_PLAY_SE 0x10 +#define EXT_CTRL_CODE_CLEAR 0x11 +#define EXT_CTRL_CODE_SKIP 0x12 +#define EXT_CTRL_CODE_CLEAR_TO 0x13 +#define EXT_CTRL_CODE_MIN_LETTER_SPACING 0x14 +#define EXT_CTRL_CODE_JPN 0x15 +#define EXT_CTRL_CODE_ENG 0x16 +#define EXT_CTRL_CODE_PAUSE_MUSIC 0x17 +#define EXT_CTRL_CODE_RESUME_MUSIC 0x18 #define TEXT_COLOR_TRANSPARENT 0x0 #define TEXT_COLOR_WHITE 0x1 diff --git a/src/battle_controller_player.c b/src/battle_controller_player.c index fd18c31879..1dd0914e47 100644 --- a/src/battle_controller_player.c +++ b/src/battle_controller_player.c @@ -1468,8 +1468,7 @@ static void MoveSelectionDisplayPpNumber(void) SetPpNumbersPaletteInMoveSelection(); moveInfo = (struct ChooseMoveStruct*)(&gBattleBufferA[gActiveBattler][4]); txtPtr = ConvertIntToDecimalStringN(gDisplayedStringBattle, moveInfo->currentPp[gMoveSelectionCursor[gActiveBattler]], STR_CONV_MODE_RIGHT_ALIGN, 2); - txtPtr[0] = CHAR_SLASH; - txtPtr++; + *(txtPtr)++ = CHAR_SLASH; ConvertIntToDecimalStringN(txtPtr, moveInfo->maxPp[gMoveSelectionCursor[gActiveBattler]], STR_CONV_MODE_RIGHT_ALIGN, 2); BattlePutTextOnWindow(gDisplayedStringBattle, 9); @@ -1481,12 +1480,9 @@ static void MoveSelectionDisplayMoveType(void) struct ChooseMoveStruct *moveInfo = (struct ChooseMoveStruct*)(&gBattleBufferA[gActiveBattler][4]); txtPtr = StringCopy(gDisplayedStringBattle, gText_MoveInterfaceType); - txtPtr[0] = EXT_CTRL_CODE_BEGIN; - txtPtr++; - txtPtr[0] = 6; - txtPtr++; - txtPtr[0] = 1; - txtPtr++; + *(txtPtr)++ = EXT_CTRL_CODE_BEGIN; + *(txtPtr)++ = EXT_CTRL_CODE_SIZE; + *(txtPtr)++ = 1; StringCopy(txtPtr, gTypeNames[gBattleMoves[moveInfo->moves[gMoveSelectionCursor[gActiveBattler]]].type]); BattlePutTextOnWindow(gDisplayedStringBattle, 10); diff --git a/src/battle_message.c b/src/battle_message.c index 2fba578dc0..14eba28ab3 100644 --- a/src/battle_message.c +++ b/src/battle_message.c @@ -2756,7 +2756,7 @@ u32 BattleStringExpandPlaceholders(const u8 *src, u8 *dst) { dst[dstID] = EXT_CTRL_CODE_BEGIN; dstID++; - dst[dstID] = 9; + dst[dstID] = EXT_CTRL_CODE_PAUSE_UNTIL_PRESS; dstID++; } } diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 6ccefd7be5..5c1b1e3707 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -6340,15 +6340,13 @@ static void PutLevelAndGenderOnLvlUpBox(void) AddTextPrinter(&printerTemplate, 0xFF, NULL); txtPtr = gStringVar4; - gStringVar4[0] = CHAR_SPECIAL_F9; - txtPtr++; - txtPtr[0] = CHAR_LV_2; - txtPtr++; + *(txtPtr)++ = CHAR_EXTRA_SYMBOL; + *(txtPtr)++ = CHAR_LV_2; var = (u32)(txtPtr); txtPtr = ConvertIntToDecimalStringN(txtPtr, monLevel, STR_CONV_MODE_LEFT_ALIGN, 3); var = (u32)(txtPtr) - var; - txtPtr = StringFill(txtPtr, 0x77, 4 - var); + txtPtr = StringFill(txtPtr, CHAR_UNK_SPACER, 4 - var); if (monGender != MON_GENDERLESS) { diff --git a/src/data/union_room.h b/src/data/union_room.h index 7049787665..be7bfae71e 100644 --- a/src/data/union_room.h +++ b/src/data/union_room.h @@ -222,7 +222,7 @@ static const u8 *const sAwaitingResponseTexts[] = { ALIGNED(4) const u8 sText_ShowTrainerCard[] = _("The other TRAINER showed\nyou their TRAINER CARD.\pWould you like to show your\nTRAINER CARD?"); ALIGNED(4) const u8 sText_BattleChallenge[] = _("The other TRAINER challenges you\nto battle.\pWill you accept the battle\nchallenge?"); ALIGNED(4) const u8 sText_ChatInvitation[] = _("The other TRAINER invites you\nto chat.\pWill you accept the chat\ninvitation?"); -ALIGNED(4) const u8 sText_OfferToTradeMon[] = _("There is an offer to trade your\nregistered Lv. {SPECIAL_F7 0x00} {SPECIAL_F7 0x01}\pin exchange for a\nLv. {SPECIAL_F7 0x02} {SPECIAL_F7 0x03}.\pWill you accept this trade\noffer?"); +ALIGNED(4) const u8 sText_OfferToTradeMon[] = _("There is an offer to trade your\nregistered Lv. {DYNAMIC 0} {DYNAMIC 1}\pin exchange for a\nLv. {DYNAMIC 2} {DYNAMIC 3}.\pWill you accept this trade\noffer?"); ALIGNED(4) const u8 sText_OfferToTradeEgg[] = _("There is an offer to trade your\nregistered EGG.\lWill you accept this trade offer?"); ALIGNED(4) const u8 sText_ChatDropped[] = _("The chat has been dropped.\p"); ALIGNED(4) const u8 sText_OfferDeclined1[] = _("You declined the offer.\p"); @@ -567,17 +567,17 @@ static const u8 *const sCardColorTexts[] = { sText_ItsGoldCard }; -ALIGNED(4) const u8 sText_TrainerCardInfoPage1[] = _("This is {SPECIAL_F7 0x00} {SPECIAL_F7 0x01}'s\nTRAINER CARD…\l{SPECIAL_F7 0x02}\pPOKéDEX: {SPECIAL_F7 0x03}\nTIME: {SPECIAL_F7 0x04}:{SPECIAL_F7 0x05}\p"); -ALIGNED(4) const u8 sText_TrainerCardInfoPage2[] = _("BATTLES: WINS: {SPECIAL_F7 0x00} LOSSES: {SPECIAL_F7 0x02}\nTRADES: {SPECIAL_F7 0x03}\p“{SPECIAL_F7 0x04} {SPECIAL_F7 0x05}\n{SPECIAL_F7 0x06} {SPECIAL_F7 0x07}”\p"); -ALIGNED(4) const u8 sText_GladToMeetYouMale[] = _("{SPECIAL_F7 0x01}: Glad to have met you!{PAUSE 60}"); -ALIGNED(4) const u8 sText_GladToMeetYouFemale[] = _("{SPECIAL_F7 0x01}: Glad to meet you!{PAUSE 60}"); +ALIGNED(4) const u8 sText_TrainerCardInfoPage1[] = _("This is {DYNAMIC 0} {DYNAMIC 1}'s\nTRAINER CARD…\l{DYNAMIC 2}\pPOKéDEX: {DYNAMIC 3}\nTIME: {DYNAMIC 4}:{DYNAMIC 5}\p"); +ALIGNED(4) const u8 sText_TrainerCardInfoPage2[] = _("BATTLES: WINS: {DYNAMIC 0} LOSSES: {DYNAMIC 2}\nTRADES: {DYNAMIC 3}\p“{DYNAMIC 4} {DYNAMIC 5}\n{DYNAMIC 6} {DYNAMIC 7}”\p"); +ALIGNED(4) const u8 sText_GladToMeetYouMale[] = _("{DYNAMIC 1}: Glad to have met you!{PAUSE 60}"); +ALIGNED(4) const u8 sText_GladToMeetYouFemale[] = _("{DYNAMIC 1}: Glad to meet you!{PAUSE 60}"); const u8 *const sGladToMeetYouTexts[GENDER_COUNT] = { sText_GladToMeetYouMale, sText_GladToMeetYouFemale }; -ALIGNED(4) const u8 sText_FinishedCheckingPlayersTrainerCard[] = _("Finished checking {SPECIAL_F7 0x01}'s\nTRAINER CARD.{PAUSE 60}"); +ALIGNED(4) const u8 sText_FinishedCheckingPlayersTrainerCard[] = _("Finished checking {DYNAMIC 1}'s\nTRAINER CARD.{PAUSE 60}"); static const u8 *const sLinkGroupActivityNameTexts[] = { [ACTIVITY_NONE] = sText_EmptyString, diff --git a/src/dynamic_placeholder_text_util.c b/src/dynamic_placeholder_text_util.c index bdfcf66537..1ec0c1e06b 100644 --- a/src/dynamic_placeholder_text_util.c +++ b/src/dynamic_placeholder_text_util.c @@ -32,7 +32,7 @@ u8 *DynamicPlaceholderTextUtil_ExpandPlaceholders(u8 *dest, const u8 *src) { while (*src != EOS) { - if (*src != CHAR_SPECIAL_F7) + if (*src != CHAR_DYNAMIC) { *dest++ = *src++; } diff --git a/src/international_string_util.c b/src/international_string_util.c index ec5057359f..23ca6c0816 100644 --- a/src/international_string_util.c +++ b/src/international_string_util.c @@ -136,7 +136,7 @@ void PadNameString(u8 *dest, u8 padChar) while (length < PLAYER_NAME_LENGTH - 1) { dest[length] = EXT_CTRL_CODE_BEGIN; - dest[length + 1] = EXT_CTRL_CODE_UNKNOWN_7; + dest[length + 1] = EXT_CTRL_CODE_RESET_SIZE; length += 2; } } diff --git a/src/link_rfu_3.c b/src/link_rfu_3.c index c53e1c59e8..db1ba8b43c 100644 --- a/src/link_rfu_3.c +++ b/src/link_rfu_3.c @@ -220,9 +220,9 @@ static const u8 sWireless_RSEtoASCIITable[256] = { [CHAR_y] = 'y', [CHAR_z] = 'z', 0x20, 0x20, 0x2b, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, - [CHAR_SPECIAL_F7] = ' ', - [CHAR_SPECIAL_F8] = ' ', - [CHAR_SPECIAL_F9] = ' ', + [CHAR_DYNAMIC] = ' ', + [CHAR_KEYPAD_ICON] = ' ', + [CHAR_EXTRA_SYMBOL] = ' ', [CHAR_PROMPT_SCROLL] = ' ', [CHAR_PROMPT_CLEAR] = ' ', [EXT_CTRL_CODE_BEGIN] = ' ', diff --git a/src/mauville_old_man.c b/src/mauville_old_man.c index bbf0f8972d..af68c61169 100644 --- a/src/mauville_old_man.c +++ b/src/mauville_old_man.c @@ -220,7 +220,7 @@ static void PrepareSongText(void) if (lineNum == 0) { *(wordEnd++) = EXT_CTRL_CODE_BEGIN; - *(wordEnd++) = 15; + *(wordEnd++) = EXT_CTRL_CODE_FILL_WINDOW; } } } diff --git a/src/menu_specialized.c b/src/menu_specialized.c index b7dd1f33af..ecef9982ba 100644 --- a/src/menu_specialized.c +++ b/src/menu_specialized.c @@ -884,10 +884,10 @@ static u8 *sub_81D2CD0(u8 *dst, u16 boxId, u16 monId) u8 *str; *(dst++) = EXT_CTRL_CODE_BEGIN; - *(dst++) = 4; - *(dst++) = 8; - *(dst++) = 0; - *(dst++) = 9; + *(dst++) = EXT_CTRL_CODE_COLOR_HIGHLIGHT_SHADOW; + *(dst++) = TEXT_COLOR_BLUE; + *(dst++) = TEXT_COLOR_TRANSPARENT; + *(dst++) = TEXT_COLOR_LIGHT_BLUE; if (GetBoxOrPartyMonData(boxId, monId, MON_DATA_IS_EGG, NULL)) { return StringCopyPadded(dst, gText_EggNickname, 0, 12); @@ -920,8 +920,8 @@ static u8 *sub_81D2CD0(u8 *dst, u16 boxId, u16 monId) ; *(str++) = EXT_CTRL_CODE_BEGIN; - *(str++) = 0x12; - *(str++) = 0x3C; + *(str++) = EXT_CTRL_CODE_SKIP; + *(str++) = 60; switch (gender) { @@ -931,30 +931,30 @@ static u8 *sub_81D2CD0(u8 *dst, u16 boxId, u16 monId) case MON_MALE: *(str++) = EXT_CTRL_CODE_BEGIN; *(str++) = EXT_CTRL_CODE_COLOR; - *(str++) = 4; + *(str++) = TEXT_COLOR_RED; *(str++) = EXT_CTRL_CODE_BEGIN; - *(str++) = 3; - *(str++) = 5; + *(str++) = EXT_CTRL_CODE_SHADOW; + *(str++) = TEXT_COLOR_LIGHT_RED; *(str++) = CHAR_MALE; break; case MON_FEMALE: *(str++) = EXT_CTRL_CODE_BEGIN; *(str++) = EXT_CTRL_CODE_COLOR; - *(str++) = 6; + *(str++) = TEXT_COLOR_GREEN; *(str++) = EXT_CTRL_CODE_BEGIN; - *(str++) = 3; - *(str++) = 7; + *(str++) = EXT_CTRL_CODE_SHADOW; + *(str++) = TEXT_COLOR_LIGHT_GREEN; *(str++) = CHAR_FEMALE; break; } *(str++) = EXT_CTRL_CODE_BEGIN; - *(str++) = 4; - *(str++) = 8; - *(str++) = 0; - *(str++) = 9; + *(str++) = EXT_CTRL_CODE_COLOR_HIGHLIGHT_SHADOW; + *(str++) = TEXT_COLOR_BLUE; + *(str++) = TEXT_COLOR_TRANSPARENT; + *(str++) = TEXT_COLOR_LIGHT_BLUE; *(str++) = CHAR_SLASH; - *(str++) = CHAR_SPECIAL_F9; + *(str++) = CHAR_EXTRA_SYMBOL; *(str++) = CHAR_LV_2; str = ConvertIntToDecimalStringN(str, level, STR_CONV_MODE_LEFT_ALIGN, 3); *(str++) = CHAR_SPACE; @@ -989,10 +989,10 @@ void sub_81D2ED4(u8 *dst, u8 *nameDst, u16 boxId, u16 monId, u16 arg5, u16 arg6, { sub_81D2CD0(nameDst, boxId, monId); dst[0] = EXT_CTRL_CODE_BEGIN; - dst[1] = 4; - dst[2] = 8; - dst[3] = 0; - dst[4] = 9; + dst[1] = EXT_CTRL_CODE_COLOR_HIGHLIGHT_SHADOW; + dst[2] = TEXT_COLOR_BLUE; + dst[3] = TEXT_COLOR_TRANSPARENT; + dst[4] = TEXT_COLOR_LIGHT_BLUE; if (boxId == TOTAL_BOXES_COUNT) // Party mon. { sub_81D2E7C(dst + 5, gText_InParty, 8); diff --git a/src/pokeblock.c b/src/pokeblock.c index f654e07829..025adf875f 100644 --- a/src/pokeblock.c +++ b/src/pokeblock.c @@ -725,8 +725,8 @@ static void PutPokeblockListMenuString(u8 *dst, u16 pkblId) u8 *txtPtr = StringCopy(dst, gPokeblockNames[pkblock->color]); *(txtPtr++) = EXT_CTRL_CODE_BEGIN; - *(txtPtr++) = 0x12; - *(txtPtr++) = 0x57; + *(txtPtr++) = EXT_CTRL_CODE_SKIP; + *(txtPtr++) = 87; ConvertIntToDecimalStringN(gStringVar1, GetHighestPokeblocksFlavorLevel(pkblock), STR_CONV_MODE_LEFT_ALIGN, 3); StringExpandPlaceholders(txtPtr, gText_LvVar1); diff --git a/src/pokedex.c b/src/pokedex.c index 777cc52cd6..2a6a336334 100644 --- a/src/pokedex.c +++ b/src/pokedex.c @@ -4145,7 +4145,7 @@ static void PrintMonHeight(u16 height, u8 left, u8 top) inches = (inches - (feet * 120)) / 10; buffer[i++] = EXT_CTRL_CODE_BEGIN; - buffer[i++] = 0x13; + buffer[i++] = EXT_CTRL_CODE_CLEAR_TO; if (feet / 10 == 0) { buffer[i++] = 18; diff --git a/src/pokemon_storage_system.c b/src/pokemon_storage_system.c index 59dc0acced..115c369afb 100644 --- a/src/pokemon_storage_system.c +++ b/src/pokemon_storage_system.c @@ -6869,36 +6869,36 @@ static void SetCursorMonData(void *pokemon, u8 mode) txtPtr = sPSSData->cursorMonGenderLvlText; *(txtPtr)++ = EXT_CTRL_CODE_BEGIN; - *(txtPtr)++ = 4; + *(txtPtr)++ = EXT_CTRL_CODE_COLOR_HIGHLIGHT_SHADOW; switch (gender) { case MON_MALE: - *(txtPtr)++ = 4; - *(txtPtr)++ = 1; - *(txtPtr)++ = 5; + *(txtPtr)++ = TEXT_COLOR_RED; + *(txtPtr)++ = TEXT_COLOR_WHITE; + *(txtPtr)++ = TEXT_COLOR_LIGHT_RED; *(txtPtr)++ = CHAR_MALE; break; case MON_FEMALE: - *(txtPtr)++ = 6; - *(txtPtr)++ = 1; - *(txtPtr)++ = 7; + *(txtPtr)++ = TEXT_COLOR_GREEN; + *(txtPtr)++ = TEXT_COLOR_WHITE; + *(txtPtr)++ = TEXT_COLOR_LIGHT_GREEN; *(txtPtr)++ = CHAR_FEMALE; break; default: - *(txtPtr)++ = 2; - *(txtPtr)++ = 1; - *(txtPtr)++ = 3; - *(txtPtr)++ = 0x77; + *(txtPtr)++ = TEXT_COLOR_DARK_GREY; + *(txtPtr)++ = TEXT_COLOR_WHITE; + *(txtPtr)++ = TEXT_COLOR_LIGHT_GREY; + *(txtPtr)++ = CHAR_UNK_SPACER; break; } *(txtPtr++) = EXT_CTRL_CODE_BEGIN; - *(txtPtr++) = 4; - *(txtPtr++) = 2; - *(txtPtr++) = 1; - *(txtPtr++) = 3; - *(txtPtr++) = 0; - *(txtPtr++) = CHAR_SPECIAL_F9; + *(txtPtr++) = EXT_CTRL_CODE_COLOR_HIGHLIGHT_SHADOW; + *(txtPtr++) = TEXT_COLOR_DARK_GREY; + *(txtPtr++) = TEXT_COLOR_WHITE; + *(txtPtr++) = TEXT_COLOR_LIGHT_GREY; + *(txtPtr++) = CHAR_SPACE; + *(txtPtr++) = CHAR_EXTRA_SYMBOL; *(txtPtr++) = CHAR_LV_2; txtPtr = ConvertIntToDecimalStringN(txtPtr, sPSSData->cursorMonLevel, STR_CONV_MODE_LEFT_ALIGN, 3); diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index a3efe09d72..2e79952220 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -709,9 +709,9 @@ static void (*const sTextPrinterTasks[])(u8 taskId) = static const u8 sMemoNatureTextColor[] = _("{COLOR LIGHT_RED}{SHADOW GREEN}"); static const u8 sMemoMiscTextColor[] = _("{COLOR WHITE}{SHADOW DARK_GREY}"); // This is also affected by palettes, apparently -static const u8 sStatsLeftColumnLayout[] = _("{SPECIAL_F7 0x00}/{SPECIAL_F7 0x01}\n{SPECIAL_F7 0x02}\n{SPECIAL_F7 0x03}"); -static const u8 sStatsRightColumnLayout[] = _("{SPECIAL_F7 0x00}\n{SPECIAL_F7 0x01}\n{SPECIAL_F7 0x02}"); -static const u8 sMovesPPLayout[] = _("{PP}{SPECIAL_F7 0x00}/{SPECIAL_F7 0x01}"); +static const u8 sStatsLeftColumnLayout[] = _("{DYNAMIC 0}/{DYNAMIC 1}\n{DYNAMIC 2}\n{DYNAMIC 3}"); +static const u8 sStatsRightColumnLayout[] = _("{DYNAMIC 0}\n{DYNAMIC 1}\n{DYNAMIC 2}"); +static const u8 sMovesPPLayout[] = _("{PP}{DYNAMIC 0}/{DYNAMIC 1}"); #define TAG_MOVE_SELECTOR 30000 #define TAG_MON_STATUS 30001 diff --git a/src/pokenav_conditions_1.c b/src/pokenav_conditions_1.c index 84e2a96825..7184271ea3 100644 --- a/src/pokenav_conditions_1.c +++ b/src/pokenav_conditions_1.c @@ -337,10 +337,10 @@ u8 *sub_81CD624(u8 *str, u16 id, bool8 arg3) boxId = unkPtr->unk4[id].boxId; monId = unkPtr->unk4[id].monId; *(str++) = EXT_CTRL_CODE_BEGIN; - *(str++) = 4; - *(str++) = 8; - *(str++) = 0; - *(str++) = 9; + *(str++) = EXT_CTRL_CODE_COLOR_HIGHLIGHT_SHADOW; + *(str++) = TEXT_COLOR_BLUE; + *(str++) = TEXT_COLOR_TRANSPARENT; + *(str++) = TEXT_COLOR_LIGHT_BLUE; if (GetBoxOrPartyMonData(boxId, monId, MON_DATA_IS_EGG, NULL)) return StringCopyPadded(str, gText_EggNickname, CHAR_SPACE, 12); @@ -368,40 +368,40 @@ u8 *sub_81CD624(u8 *str, u16 id, bool8 arg3) (str_++); *(str_++) = EXT_CTRL_CODE_BEGIN; - *(str_++) = 0x12; - *(str_++) = 0x3C; + *(str_++) = EXT_CTRL_CODE_SKIP; + *(str_++) = 60; switch (gender) { default: - *(str_++) = 0x77; + *(str_++) = CHAR_UNK_SPACER; break; case MON_MALE: *(str_++) = EXT_CTRL_CODE_BEGIN; *(str_++) = EXT_CTRL_CODE_COLOR; - *(str_++) = 4; + *(str_++) = TEXT_COLOR_RED; *(str_++) = EXT_CTRL_CODE_BEGIN; - *(str_++) = 3; - *(str_++) = 5; + *(str_++) = EXT_CTRL_CODE_SHADOW; + *(str_++) = TEXT_COLOR_LIGHT_RED; *(str_++) = CHAR_MALE; break; case MON_FEMALE: *(str_++) = EXT_CTRL_CODE_BEGIN; *(str_++) = EXT_CTRL_CODE_COLOR; - *(str_++) = 6; + *(str_++) = TEXT_COLOR_GREEN; *(str_++) = EXT_CTRL_CODE_BEGIN; - *(str_++) = 3; - *(str_++) = 7; + *(str_++) = EXT_CTRL_CODE_SHADOW; + *(str_++) = TEXT_COLOR_LIGHT_GREEN; *(str_++) = CHAR_FEMALE; break; } *(str_++) = EXT_CTRL_CODE_BEGIN; - *(str_++) = 4; - *(str_++) = 8; - *(str_++) = 0; - *(str_++) = 9; + *(str_++) = EXT_CTRL_CODE_COLOR_HIGHLIGHT_SHADOW; + *(str_++) = TEXT_COLOR_BLUE; + *(str_++) = TEXT_COLOR_TRANSPARENT; + *(str_++) = TEXT_COLOR_LIGHT_BLUE; *(str_++) = CHAR_SLASH; - *(str_++) = CHAR_SPECIAL_F9; + *(str_++) = CHAR_EXTRA_SYMBOL; *(str_++) = CHAR_LV_2; txtPtr = str_; str_ = ConvertIntToDecimalStringN(str_, level, STR_CONV_MODE_LEFT_ALIGN, 3); @@ -429,10 +429,10 @@ void sub_81CD824(s16 arg0, u8 arg1) sub_81CD624(structPtr->unk6368[arg1], arg0, FALSE); boxId = unkPtr->unk4[arg0].boxId; structPtr->unk6320[arg1][0] = EXT_CTRL_CODE_BEGIN; - structPtr->unk6320[arg1][1] = 4; - structPtr->unk6320[arg1][2] = 8; - structPtr->unk6320[arg1][3] = 0; - structPtr->unk6320[arg1][4] = 9; + structPtr->unk6320[arg1][1] = EXT_CTRL_CODE_COLOR_HIGHLIGHT_SHADOW; + structPtr->unk6320[arg1][2] = TEXT_COLOR_BLUE; + structPtr->unk6320[arg1][3] = TEXT_COLOR_TRANSPARENT; + structPtr->unk6320[arg1][4] = TEXT_COLOR_LIGHT_BLUE; if (boxId == TOTAL_BOXES_COUNT) sub_81CD5CC(&structPtr->unk6320[arg1][5], gText_InParty, 8); else diff --git a/src/pokenav_conditions_2.c b/src/pokenav_conditions_2.c index 65a85aa7ec..32e673aa43 100644 --- a/src/pokenav_conditions_2.c +++ b/src/pokenav_conditions_2.c @@ -581,10 +581,10 @@ bool32 sub_81CE754(u8 a0, u16 a1, bool8 a2) str = sub_81CDD24(a1); AddTextPrinterParameterized(structPtr->unk1820, 1, str, 0, 17, 0, NULL); text[0] = EXT_CTRL_CODE_BEGIN; - text[1] = 4; - text[2] = 8; - text[3] = 0; - text[4] = 9; + text[1] = EXT_CTRL_CODE_COLOR_HIGHLIGHT_SHADOW; + text[2] = TEXT_COLOR_BLUE; + text[3] = TEXT_COLOR_TRANSPARENT; + text[4] = TEXT_COLOR_LIGHT_BLUE; StringCopy(text + 5, gText_Number2); AddTextPrinterParameterized(structPtr->unk1821, 1, text, 4, 1, 0, NULL); ConvertIntToDecimalStringN(text + 5, sub_81CDD48(), STR_CONV_MODE_RIGHT_ALIGN, 4); diff --git a/src/pokenav_conditions_3.c b/src/pokenav_conditions_3.c index 7a48b92342..eea4aa397c 100644 --- a/src/pokenav_conditions_3.c +++ b/src/pokenav_conditions_3.c @@ -707,7 +707,7 @@ static void sub_81CF8E4(struct PokenavMonList * item, u8 * dest) } s = StringCopy(gStringVar1, genderStr); *s++ = CHAR_SLASH; - *s++ = CHAR_SPECIAL_F9; + *s++ = CHAR_EXTRA_SYMBOL; *s++ = CHAR_LV_2; ConvertIntToDecimalStringN(s, level, STR_CONV_MODE_LEFT_ALIGN, 3); sub_81DB494(dest, 1, gStringVar1, 40); diff --git a/src/pokenav_ribbons_1.c b/src/pokenav_ribbons_1.c index ffc049c47d..aad0053a8d 100644 --- a/src/pokenav_ribbons_1.c +++ b/src/pokenav_ribbons_1.c @@ -724,7 +724,7 @@ static void BufferRibbonMonInfoText(struct PokenavMonList * item0, u8 * dest) s = StringCopy(gStringVar1, genderStr); *s++ = CHAR_SLASH; - *s++ = CHAR_SPECIAL_F9; + *s++ = CHAR_EXTRA_SYMBOL; *s++ = CHAR_LV_2; ConvertIntToDecimalStringN(s, level, STR_CONV_MODE_LEFT_ALIGN, 3); dest = sub_81DB494(dest, 1, gStringVar1, 54); diff --git a/src/pokenav_ribbons_2.c b/src/pokenav_ribbons_2.c index bb61164724..e5a89acad3 100644 --- a/src/pokenav_ribbons_2.c +++ b/src/pokenav_ribbons_2.c @@ -836,7 +836,7 @@ void sub_81D0FF0(struct PokenavSub14 *structPtr) txtPtr = StringCopy(gStringVar1, genderTxt); *(txtPtr++) = CHAR_SLASH; - *(txtPtr++) = CHAR_SPECIAL_F9; + *(txtPtr++) = CHAR_EXTRA_SYMBOL; *(txtPtr++) = CHAR_LV_2; ConvertIntToDecimalStringN(txtPtr, level, STR_CONV_MODE_LEFT_ALIGN, 3); AddTextPrinterParameterized(windowId, 1, gStringVar1, 60, 1, TEXT_SPEED_FF, NULL); diff --git a/src/strings.c b/src/strings.c index 2ea06c1ad1..07361ba60f 100644 --- a/src/strings.c +++ b/src/strings.c @@ -512,14 +512,14 @@ const u8 gText_EggWillTakeSomeTime[] = _("What will hatch from this?\nIt will ta const u8 gText_EggWillHatchSoon[] = _("It moves occasionally.\nIt should hatch soon."); const u8 gText_EggAboutToHatch[] = _("It's making sounds.\nIt's about to hatch!"); const u8 gText_HMMovesCantBeForgotten2[] = _("HM moves can't be\nforgotten now."); -const u8 gText_XNatureMetAtYZ[] = _("{SPECIAL_F7 0x00}{SPECIAL_F7 0x02}{SPECIAL_F7 0x01}{SPECIAL_F7 0x05} nature,\nmet at {LV_2}{SPECIAL_F7 0x00}{SPECIAL_F7 0x03}{SPECIAL_F7 0x01},\n{SPECIAL_F7 0x00}{SPECIAL_F7 0x04}{SPECIAL_F7 0x01}."); -const u8 gText_XNatureHatchedAtYZ[] = _("{SPECIAL_F7 0x00}{SPECIAL_F7 0x02}{SPECIAL_F7 0x01}{SPECIAL_F7 0x05} nature,\nhatched at {LV_2}{SPECIAL_F7 0x00}{SPECIAL_F7 0x03}{SPECIAL_F7 0x01},\n{SPECIAL_F7 0x00}{SPECIAL_F7 0x04}{SPECIAL_F7 0x01}."); -const u8 gText_XNatureObtainedInTrade[] = _("{SPECIAL_F7 0x00}{SPECIAL_F7 0x02}{SPECIAL_F7 0x01}{SPECIAL_F7 0x05} nature,\nobtained in a trade."); -const u8 gText_XNatureFatefulEncounter[] = _("{SPECIAL_F7 0x00}{SPECIAL_F7 0x02}{SPECIAL_F7 0x01}{SPECIAL_F7 0x05} nature,\nobtained in a fateful\nencounter at {LV_2}{SPECIAL_F7 0x00}{SPECIAL_F7 0x03}{SPECIAL_F7 0x01}."); -const u8 gText_XNatureProbablyMetAt[] = _("{SPECIAL_F7 0x00}{SPECIAL_F7 0x02}{SPECIAL_F7 0x01}{SPECIAL_F7 0x05} nature,\nprobably met at {LV_2}{SPECIAL_F7 0x00}{SPECIAL_F7 0x03}{SPECIAL_F7 0x01},\n{SPECIAL_F7 0x00}{SPECIAL_F7 0x04}{SPECIAL_F7 0x01}."); -const u8 gText_XNature[] = _("{SPECIAL_F7 0x00}{SPECIAL_F7 0x02}{SPECIAL_F7 0x01}{SPECIAL_F7 0x05} nature"); -const u8 gText_XNatureMetSomewhereAt[] = _("{SPECIAL_F7 0x00}{SPECIAL_F7 0x02}{SPECIAL_F7 0x01}{SPECIAL_F7 0x05} nature,\nmet somewhere at {LV_2}{SPECIAL_F7 0x00}{SPECIAL_F7 0x03}{SPECIAL_F7 0x01}."); -const u8 gText_XNatureHatchedSomewhereAt[] = _("{SPECIAL_F7 0x00}{SPECIAL_F7 0x02}{SPECIAL_F7 0x01}{SPECIAL_F7 0x05} nature,\nhatched somewhere at {LV_2}{SPECIAL_F7 0x00}{SPECIAL_F7 0x03}{SPECIAL_F7 0x01}."); +const u8 gText_XNatureMetAtYZ[] = _("{DYNAMIC 0}{DYNAMIC 2}{DYNAMIC 1}{DYNAMIC 5} nature,\nmet at {LV_2}{DYNAMIC 0}{DYNAMIC 3}{DYNAMIC 1},\n{DYNAMIC 0}{DYNAMIC 4}{DYNAMIC 1}."); +const u8 gText_XNatureHatchedAtYZ[] = _("{DYNAMIC 0}{DYNAMIC 2}{DYNAMIC 1}{DYNAMIC 5} nature,\nhatched at {LV_2}{DYNAMIC 0}{DYNAMIC 3}{DYNAMIC 1},\n{DYNAMIC 0}{DYNAMIC 4}{DYNAMIC 1}."); +const u8 gText_XNatureObtainedInTrade[] = _("{DYNAMIC 0}{DYNAMIC 2}{DYNAMIC 1}{DYNAMIC 5} nature,\nobtained in a trade."); +const u8 gText_XNatureFatefulEncounter[] = _("{DYNAMIC 0}{DYNAMIC 2}{DYNAMIC 1}{DYNAMIC 5} nature,\nobtained in a fateful\nencounter at {LV_2}{DYNAMIC 0}{DYNAMIC 3}{DYNAMIC 1}."); +const u8 gText_XNatureProbablyMetAt[] = _("{DYNAMIC 0}{DYNAMIC 2}{DYNAMIC 1}{DYNAMIC 5} nature,\nprobably met at {LV_2}{DYNAMIC 0}{DYNAMIC 3}{DYNAMIC 1},\n{DYNAMIC 0}{DYNAMIC 4}{DYNAMIC 1}."); +const u8 gText_XNature[] = _("{DYNAMIC 0}{DYNAMIC 2}{DYNAMIC 1}{DYNAMIC 5} nature"); +const u8 gText_XNatureMetSomewhereAt[] = _("{DYNAMIC 0}{DYNAMIC 2}{DYNAMIC 1}{DYNAMIC 5} nature,\nmet somewhere at {LV_2}{DYNAMIC 0}{DYNAMIC 3}{DYNAMIC 1}."); +const u8 gText_XNatureHatchedSomewhereAt[] = _("{DYNAMIC 0}{DYNAMIC 2}{DYNAMIC 1}{DYNAMIC 5} nature,\nhatched somewhere at {LV_2}{DYNAMIC 0}{DYNAMIC 3}{DYNAMIC 1}."); const u8 gText_OddEggFoundByCouple[] = _("An odd POKéMON EGG found\nby the DAY CARE couple."); const u8 gText_PeculiarEggNicePlace[] = _("A peculiar POKéMON EGG\nobtained at the nice place."); const u8 gText_PeculiarEggTrade[] = _("A peculiar POKéMON EGG\nobtained in a trade."); @@ -861,14 +861,14 @@ const u8 gText_ExitFromBox[] = _("Exit from the BOX?"); const u8 gText_WhatDoYouWantToDo[] = _("What do you want to do?"); const u8 gText_PleasePickATheme[] = _("Please pick a theme."); const u8 gText_PickTheWallpaper[] = _("Pick the wallpaper."); -const u8 gText_PkmnIsSelected[] = _("{SPECIAL_F7 0x00} is selected."); +const u8 gText_PkmnIsSelected[] = _("{DYNAMIC 0} is selected."); const u8 gText_JumpToWhichBox[] = _("Jump to which BOX?"); const u8 gText_DepositInWhichBox[] = _("Deposit in which BOX?"); -const u8 gText_PkmnWasDeposited[] = _("{SPECIAL_F7 0x00} was deposited."); +const u8 gText_PkmnWasDeposited[] = _("{DYNAMIC 0} was deposited."); const u8 gText_BoxIsFull2[] = _("The BOX is full."); const u8 gText_ReleaseThisPokemon[] = _("Release this POKéMON?"); -const u8 gText_PkmnWasReleased[] = _("{SPECIAL_F7 0x00} was released."); -const u8 gText_ByeByePkmn[] = _("Bye-bye, {SPECIAL_F7 0x00}!"); +const u8 gText_PkmnWasReleased[] = _("{DYNAMIC 0} was released."); +const u8 gText_ByeByePkmn[] = _("Bye-bye, {DYNAMIC 0}!"); const u8 gText_MarkYourPkmn[] = _("Mark your POKéMON."); const u8 gText_ThatsYourLastPkmn[] = _("That's your last POKéMON!"); const u8 gText_YourPartysFull[] = _("Your party's full!"); @@ -876,7 +876,7 @@ const u8 gText_YoureHoldingAPkmn[] = _("You're holding a POKéMON!"); const u8 gText_WhichOneWillYouTake[] = _("Which one will you take?"); const u8 gText_YouCantReleaseAnEgg[] = _("You can't release an EGG."); const u8 gText_ContinueBoxOperations[] = _("Continue BOX operations?"); -const u8 gText_PkmnCameBack[] = _("{SPECIAL_F7 0x00} came back!"); +const u8 gText_PkmnCameBack[] = _("{DYNAMIC 0} came back!"); const u8 gText_WasItWorriedAboutYou[] = _("Was it worried about you?"); const u8 gText_FourEllipsesExclamation[] = _("… … … … !"); const u8 gText_PleaseRemoveTheMail[] = _("Please remove the MAIL."); @@ -884,8 +884,8 @@ const u8 gText_GiveToAPkmn[] = _("GIVE to a POKéMON?"); const u8 gText_PlacedItemInBag[] = _("Placed item in the BAG."); const u8 gText_BagIsFull2[] = _("The BAG is full."); const u8 gText_PutItemInBag[] = _("Put this item in the BAG?"); -const u8 gText_ItemIsNowHeld[] = _("{SPECIAL_F7 0x00} is now held."); -const u8 gText_ChangedToNewItem[] = _("Changed to {SPECIAL_F7 0x00}."); +const u8 gText_ItemIsNowHeld[] = _("{DYNAMIC 0} is now held."); +const u8 gText_ChangedToNewItem[] = _("Changed to {DYNAMIC 0}."); const u8 gText_MailCantBeStored[] = _("MAIL can't be stored!"); const u8 gPCText_Cancel[] = _("CANCEL"); const u8 gPCText_Store[] = _("STORE"); @@ -981,18 +981,18 @@ const u8 gText_TrainerCloseBy[] = _("That TRAINER is close by.\nTalk to the TRAI const u8 gText_InParty[] = _("IN PARTY"); const u8 gText_Number2[] = _("No. "); const u8 gText_Ribbons[] = _("RIBBONS"); // Unused -const u8 gText_PokemonMaleLv[] = _("{SPECIAL_F7 0x00}{COLOR_HIGHLIGHT_SHADOW LIGHT_RED WHITE GREEN}♂{COLOR_HIGHLIGHT_SHADOW DARK_GREY WHITE LIGHT_GREY}/{LV}{SPECIAL_F7 0x01}"); // Unused -const u8 gText_PokemonFemaleLv[] = _("{SPECIAL_F7 0x00}{COLOR_HIGHLIGHT_SHADOW LIGHT_GREEN WHITE BLUE}♀{COLOR_HIGHLIGHT_SHADOW DARK_GREY WHITE LIGHT_GREY}/{LV}{SPECIAL_F7 0x01}"); // Unused -const u8 gText_PokemonNoGenderLv[] = _("{SPECIAL_F7 0x00}/{LV}{SPECIAL_F7 0x01}"); // Unused +const u8 gText_PokemonMaleLv[] = _("{DYNAMIC 0}{COLOR_HIGHLIGHT_SHADOW LIGHT_RED WHITE GREEN}♂{COLOR_HIGHLIGHT_SHADOW DARK_GREY WHITE LIGHT_GREY}/{LV}{DYNAMIC 1}"); // Unused +const u8 gText_PokemonFemaleLv[] = _("{DYNAMIC 0}{COLOR_HIGHLIGHT_SHADOW LIGHT_GREEN WHITE BLUE}♀{COLOR_HIGHLIGHT_SHADOW DARK_GREY WHITE LIGHT_GREY}/{LV}{DYNAMIC 1}"); // Unused +const u8 gText_PokemonNoGenderLv[] = _("{DYNAMIC 0}/{LV}{DYNAMIC 1}"); // Unused const u8 gText_Unknown[] = _("UNKNOWN"); const u8 gText_Call[] = _("CALL"); const u8 gText_Check[] = _("CHECK"); const u8 gText_Cancel6[] = _("CANCEL"); -const u8 gText_NumberF700[] = _("No. {SPECIAL_F7 0x00}"); -const u8 gText_RibbonsF700[] = _("RIBBONS {SPECIAL_F7 0x00}"); -const u8 gText_PokemonMaleLv2[] = _("{SPECIAL_F7 0x00}{COLOR_HIGHLIGHT_SHADOW LIGHT_RED WHITE GREEN}♂{COLOR_HIGHLIGHT_SHADOW DARK_GREY WHITE LIGHT_GREY}/{LV}{SPECIAL_F7 0x01}{SPECIAL_F7 0x02}"); // Unused -const u8 gText_PokemonFemaleLv2[] = _("{SPECIAL_F7 0x00}{COLOR_HIGHLIGHT_SHADOW LIGHT_GREEN WHITE BLUE}♀{COLOR_HIGHLIGHT_SHADOW DARK_GREY WHITE LIGHT_GREY}/{LV}{SPECIAL_F7 0x01}{SPECIAL_F7 0x02}"); // Unused -const u8 gText_PokemonNoGenderLv2[] = _("{SPECIAL_F7 0x00}/{LV}{SPECIAL_F7 0x01}{SPECIAL_F7 0x02}"); // Unused +const u8 gText_NumberF700[] = _("No. {DYNAMIC 0}"); +const u8 gText_RibbonsF700[] = _("RIBBONS {DYNAMIC 0}"); +const u8 gText_PokemonMaleLv2[] = _("{DYNAMIC 0}{COLOR_HIGHLIGHT_SHADOW LIGHT_RED WHITE GREEN}♂{COLOR_HIGHLIGHT_SHADOW DARK_GREY WHITE LIGHT_GREY}/{LV}{DYNAMIC 1}{DYNAMIC 2}"); // Unused +const u8 gText_PokemonFemaleLv2[] = _("{DYNAMIC 0}{COLOR_HIGHLIGHT_SHADOW LIGHT_GREEN WHITE BLUE}♀{COLOR_HIGHLIGHT_SHADOW DARK_GREY WHITE LIGHT_GREY}/{LV}{DYNAMIC 1}{DYNAMIC 2}"); // Unused +const u8 gText_PokemonNoGenderLv2[] = _("{DYNAMIC 0}/{LV}{DYNAMIC 1}{DYNAMIC 2}"); // Unused const u8 gText_CombineFourWordsOrPhrases[] = _("Combine four words or phrases"); const u8 gText_AndMakeYourProfile[] = _("and make your profile."); const u8 gText_CombineSixWordsOrPhrases[] = _("Combine six words or phrases"); @@ -1063,7 +1063,7 @@ const u8 gText_ApprenticesPhrase[] = _("Apprentice's phrase"); const u8 gText_Questionnaire[] = _("QUESTIONNAIRE"); const u8 gText_YouCannotQuitHere[] = _("You cannot quit here."); const u8 gText_SectionMustBeCompleted[] = _("This section must be completed."); -const u8 gText_F700sQuiz[] = _("{SPECIAL_F7 0x00}'s quiz"); +const u8 gText_F700sQuiz[] = _("{DYNAMIC 0}'s quiz"); const u8 gText_Lady[] = _("Lady"); const u8 gText_AfterYouHaveReadTheQuiz[] = _("After you have read the quiz"); const u8 gText_QuestionPressTheAButton[] = _("question, press the A Button."); @@ -1255,16 +1255,16 @@ const u8 gText_QuitChatting[] = _("Quit chatting?"); const u8 gText_RegisterTextWhere[] = _("Register text where?"); const u8 gText_RegisterTextHere[] = _("Register text here?"); const u8 gText_InputText[] = _("Input text."); -const u8 gText_F700JoinedChat[] = _("{SPECIAL_F7 0x00} joined the chat!"); -const u8 gText_F700LeftChat[] = _("{SPECIAL_F7 0x00} left the chat."); -const u8 gJPText_PlayersXPokemon[] = _("{SPECIAL_F7 0x00}の{SPECIAL_F7 0x01}ひきめ:"); // Unused -const u8 gJPText_PlayersXPokmonDoesNotExist[] = _("{SPECIAL_F7 0x00}の{SPECIAL_F7 0x01}ひきめは いません"); // Unused +const u8 gText_F700JoinedChat[] = _("{DYNAMIC 0} joined the chat!"); +const u8 gText_F700LeftChat[] = _("{DYNAMIC 0} left the chat."); +const u8 gJPText_PlayersXPokemon[] = _("{DYNAMIC 0}の{DYNAMIC 1}ひきめ:"); // Unused +const u8 gJPText_PlayersXPokmonDoesNotExist[] = _("{DYNAMIC 0}の{DYNAMIC 1}ひきめは いません"); // Unused const u8 gText_ExitingChat[] = _("Exiting the chat…"); -const u8 gText_LeaderLeftEndingChat[] = _("The LEADER, {SPECIAL_F7 0x00}, has\nleft, ending the chat."); +const u8 gText_LeaderLeftEndingChat[] = _("The LEADER, {DYNAMIC 0}, has\nleft, ending the chat."); const u8 gText_RegisteredTextChangedOKToSave[] = _("The registered text has been changed.\nIs it okay to save the game?"); const u8 gText_AlreadySavedFile_Chat[] = _("There is already a saved file.\nIs it okay to overwrite it?"); const u8 gText_SavingDontTurnOff_Chat[] = _("SAVING…\nDON'T TURN OFF THE POWER."); -const u8 gText_PlayerSavedGame_Chat[] = _("{SPECIAL_F7 0x00} saved the game."); +const u8 gText_PlayerSavedGame_Chat[] = _("{DYNAMIC 0} saved the game."); const u8 gText_IfLeaderLeavesChatEnds[] = _("If the LEADER leaves, the chat\nwill end. Is that okay?"); const u8 gText_Hello[] = _("HELLO"); const u8 gText_Pokemon2[] = _("POKéMON"); @@ -1301,8 +1301,8 @@ ALIGNED(4) const u8 gText_YouHaveNoBerries[] = _("You have no BERRIES.\nThe game ALIGNED(4) const u8 gText_MemberDroppedOut[] = _("A member dropped out.\nThe game will be canceled."); ALIGNED(4) const u8 gText_TimesUpNoGoodPowder[] = _("Time's up.\pGood BERRY POWDER could not be\nmade…\p"); ALIGNED(4) const u8 gText_CommunicationStandby2[] = _("Communication standby…"); -ALIGNED(4) const u8 gText_1DotBlueF700[] = _("1. {COLOR BLUE}{SHADOW LIGHT_BLUE}{SPECIAL_F7 0x00}"); -ALIGNED(4) const u8 gText_1DotF700[] = _("1. {SPECIAL_F7 0x00}"); +ALIGNED(4) const u8 gText_1DotBlueF700[] = _("1. {COLOR BLUE}{SHADOW LIGHT_BLUE}{DYNAMIC 0}"); +ALIGNED(4) const u8 gText_1DotF700[] = _("1. {DYNAMIC 0}"); ALIGNED(4) const u8 gText_SpaceTimes2[] = _(" time(s)"); ALIGNED(4) const u8 gText_XDotY[] = _("{STR_VAR_1}.{STR_VAR_2}"); ALIGNED(4) const u8 gText_Var1Berry[] = _("{STR_VAR_1} BERRY"); @@ -1375,7 +1375,7 @@ const u8 gText_2Colon[] = _("2:"); const u8 gText_3Colon[] = _("3:"); const u8 gText_4Colon[] = _("4:"); const u8 gText_5Colon[] = _("5:"); -const u8 gText_FirstPlacePrize[] = _("The first-place winner gets\nthis {SPECIAL_F7 0x00}!"); +const u8 gText_FirstPlacePrize[] = _("The first-place winner gets\nthis {DYNAMIC 0}!"); const u8 gText_CantHoldAnyMore[] = _("You can't hold any more!"); const u8 gText_FilledStorageSpace[] = _("It filled its storage space."); const u8 gText_WantToPlayAgain[] = _("Want to play again?"); @@ -1388,7 +1388,7 @@ const u8 gText_PkmnJumpRecords[] = _("POKéMON JUMP RECORDS"); const u8 gText_JumpsInARow[] = _("Jumps in a row:"); const u8 gText_BestScore2[] = _("Best score:"); const u8 gText_ExcellentsInARow[] = _("EXCELLENTS in a row:"); -const u8 gText_AwesomeWonF701F700[] = _("Awesome score! You've\nwon {SPECIAL_F7 0x01} {SPECIAL_F7 0x00}!"); +const u8 gText_AwesomeWonF701F700[] = _("Awesome score! You've\nwon {DYNAMIC 1} {DYNAMIC 0}!"); const u8 gText_FilledStorageSpace2[] = _("It filled its storage space."); const u8 gText_CantHoldMore[] = _("You can't hold any more!"); const u8 gText_WantToPlayAgain2[] = _("Want to play again?"); @@ -1645,10 +1645,10 @@ const u8 gText_PeopleTrading[] = _("People trading:"); const u8 gText_PeopleBattling[] = _("People battling:"); const u8 gText_PeopleInUnionRoom[] = _("People in the UNION ROOM:"); const u8 gText_PeopleCommunicating[] = _("People communicating:"); -const u8 gText_F700Players[] = _("{SPECIAL_F7 0} players"); -const u8 gText_F701Players[] = _("{SPECIAL_F7 1} players"); -const u8 gText_F702Players[] = _("{SPECIAL_F7 2} players"); -const u8 gText_F703Players[] = _("{SPECIAL_F7 3} players"); +const u8 gText_F700Players[] = _("{DYNAMIC 0} players"); +const u8 gText_F701Players[] = _("{DYNAMIC 1} players"); +const u8 gText_F702Players[] = _("{DYNAMIC 2} players"); +const u8 gText_F703Players[] = _("{DYNAMIC 3} players"); const u8 *const gTextTable_Players[] = { gText_F700Players, diff --git a/src/union_room_chat.c b/src/union_room_chat.c index fefb285a85..c656063a2a 100755 --- a/src/union_room_chat.c +++ b/src/union_room_chat.c @@ -1646,7 +1646,7 @@ static void AppendTextToMessage(void) charsStr = sUnionRoomKeyboardText[sChat->currentPage][sChat->currentRow]; for (i = 0; i < sChat->currentCol; i++) { - if (*charsStr == CHAR_SPECIAL_F9) + if (*charsStr == CHAR_EXTRA_SYMBOL) charsStr++; charsStr++; } @@ -1670,7 +1670,7 @@ static void AppendTextToMessage(void) str = GetEndOfMessagePtr(); while (--strLength != -1 && sChat->bufferCursorPos < MAX_MESSAGE_LENGTH) { - if (*charsStr == CHAR_SPECIAL_F9) + if (*charsStr == CHAR_EXTRA_SYMBOL) { *str = *charsStr; charsStr++; @@ -1705,7 +1705,7 @@ static void SwitchCaseOfLastMessageCharacter(void) sChat->lastBufferCursorPos = sChat->bufferCursorPos - 1; str = GetLastCharOfMessagePtr(); - if (*str != CHAR_SPECIAL_F9) + if (*str != CHAR_EXTRA_SYMBOL) { character = sCaseToggleTable[*str]; if (character) @@ -1763,7 +1763,7 @@ static u8 *GetLastCharOfMessagePtr(void) while (*currChar != EOS) { lastChar = currChar; - if (*currChar == CHAR_SPECIAL_F9) + if (*currChar == CHAR_EXTRA_SYMBOL) currChar++; currChar++; } @@ -1784,7 +1784,7 @@ static u16 GetNumOverflowCharsInMessage(void) strLength -= 10; for (i = 0; i < strLength; i++) { - if (*str == CHAR_SPECIAL_F9) + if (*str == CHAR_EXTRA_SYMBOL) str++; str++; @@ -1925,7 +1925,7 @@ static u8 *GetLimitedMessageStartPtr(void) u8 *str = sChat->messageEntryBuffer; for (i = 0; i < numChars; i++) { - if (*str == CHAR_SPECIAL_F9) + if (*str == CHAR_EXTRA_SYMBOL) *str++; str++; @@ -1942,7 +1942,7 @@ static u16 GetLimitedMessageStartPos(void) u8 *str = sChat->messageEntryBuffer; for (count = 0, i = 0; i < numChars; count++, i++) { - if (*str == CHAR_SPECIAL_F9) + if (*str == CHAR_EXTRA_SYMBOL) str++; str++; diff --git a/src/unk_text_util_2.c b/src/unk_text_util_2.c index a0b1281a45..2ff8c65070 100644 --- a/src/unk_text_util_2.c +++ b/src/unk_text_util_2.c @@ -57,19 +57,19 @@ u16 Font6Func(struct TextPrinter *textPrinter) char_ = *textPrinter->printerTemplate.currentChar++; switch (char_) { - case 1: + case EXT_CTRL_CODE_COLOR: textPrinter->printerTemplate.fgColor = *textPrinter->printerTemplate.currentChar++; GenerateFontHalfRowLookupTable(textPrinter->printerTemplate.fgColor, textPrinter->printerTemplate.bgColor, textPrinter->printerTemplate.shadowColor); return 2; - case 2: + case EXT_CTRL_CODE_HIGHLIGHT: textPrinter->printerTemplate.bgColor = *textPrinter->printerTemplate.currentChar++; GenerateFontHalfRowLookupTable(textPrinter->printerTemplate.fgColor, textPrinter->printerTemplate.bgColor, textPrinter->printerTemplate.shadowColor); return 2; - case 3: + case EXT_CTRL_CODE_SHADOW: textPrinter->printerTemplate.shadowColor = *textPrinter->printerTemplate.currentChar++; GenerateFontHalfRowLookupTable(textPrinter->printerTemplate.fgColor, textPrinter->printerTemplate.bgColor, textPrinter->printerTemplate.shadowColor); return 2; - case 4: + case EXT_CTRL_CODE_COLOR_HIGHLIGHT_SHADOW: textPrinter->printerTemplate.fgColor = *textPrinter->printerTemplate.currentChar; textPrinter->printerTemplate.bgColor = *++textPrinter->printerTemplate.currentChar; textPrinter->printerTemplate.shadowColor = *++textPrinter->printerTemplate.currentChar; @@ -77,43 +77,43 @@ u16 Font6Func(struct TextPrinter *textPrinter) GenerateFontHalfRowLookupTable(textPrinter->printerTemplate.fgColor, textPrinter->printerTemplate.bgColor, textPrinter->printerTemplate.shadowColor); return 2; - case 5: + case EXT_CTRL_CODE_PALETTE: textPrinter->printerTemplate.currentChar++; return 2; - case 6: + case EXT_CTRL_CODE_SIZE: subStruct->glyphId = *textPrinter->printerTemplate.currentChar; textPrinter->printerTemplate.currentChar++; return 2; - case 7: + case EXT_CTRL_CODE_RESET_SIZE: return 2; - case 8: + case EXT_CTRL_CODE_PAUSE: textPrinter->delayCounter = *textPrinter->printerTemplate.currentChar++; textPrinter->state = 6; return 2; - case 9: + case EXT_CTRL_CODE_PAUSE_UNTIL_PRESS: textPrinter->state = 1; if (gTextFlags.autoScroll) { subStruct->autoScrollDelay = 0; } return 3; - case 10: + case EXT_CTRL_CODE_WAIT_SE: textPrinter->state = 5; return 3; - case 11: - case 16: + case EXT_CTRL_CODE_PLAY_BGM: + case EXT_CTRL_CODE_PLAY_SE: textPrinter->printerTemplate.currentChar += 2; return 2; - case 12: + case EXT_CTRL_CODE_ESCAPE: char_ = *++textPrinter->printerTemplate.currentChar; break; - case 13: + case EXT_CTRL_CODE_SHIFT_TEXT: textPrinter->printerTemplate.currentX = textPrinter->printerTemplate.x + *textPrinter->printerTemplate.currentChar++; return 2; - case 14: + case EXT_CTRL_CODE_SHIFT_DOWN: textPrinter->printerTemplate.currentY = textPrinter->printerTemplate.y + *textPrinter->printerTemplate.currentChar++; return 2; - case 15: + case EXT_CTRL_CODE_FILL_WINDOW: FillWindowPixelBuffer(textPrinter->printerTemplate.windowId, PIXEL_FILL(textPrinter->printerTemplate.bgColor)); return 2; } @@ -126,10 +126,10 @@ u16 Font6Func(struct TextPrinter *textPrinter) textPrinter->state = 3; TextPrinterInitDownArrowCounters(textPrinter); return 3; - case 0xF9: + case CHAR_EXTRA_SYMBOL: char_ = *textPrinter->printerTemplate.currentChar++| 0x100; break; - case 0xF8: + case CHAR_KEYPAD_ICON: textPrinter->printerTemplate.currentChar++; return 0; } From 4f615b65e686c0958517fdd7c87cb0b6b29c1653 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Mon, 10 Aug 2020 17:05:42 -0400 Subject: [PATCH 054/101] Continue documenting use_pokeblock --- gflib/text.h | 36 +- graphics/pokenav/{ => condition}/cancel.pal | 0 graphics/pokenav/{ => condition}/cancel.png | Bin .../{condition.bin => condition/graph.bin} | Bin .../{condition.png => condition/graph.png} | Bin graphics/pokenav/{ => condition}/marker.png | Bin .../{8623208.pal => condition/text.pal} | 0 include/menu_specialized.h | 18 +- src/graphics.c | 14 +- src/menu_specialized.c | 139 ++-- src/pokenav_conditions_2.c | 8 +- src/use_pokeblock.c | 670 +++++++++--------- 12 files changed, 466 insertions(+), 419 deletions(-) rename graphics/pokenav/{ => condition}/cancel.pal (100%) rename graphics/pokenav/{ => condition}/cancel.png (100%) rename graphics/pokenav/{condition.bin => condition/graph.bin} (100%) rename graphics/pokenav/{condition.png => condition/graph.png} (100%) rename graphics/pokenav/{ => condition}/marker.png (100%) rename graphics/pokenav/{8623208.pal => condition/text.pal} (100%) diff --git a/gflib/text.h b/gflib/text.h index 5b317600ea..e5bb2c87a7 100644 --- a/gflib/text.h +++ b/gflib/text.h @@ -191,18 +191,30 @@ #define CHAR_NO 0x08 #define CHAR_UNDERSCORE 0x09 -#define EXT_CTRL_CODE_COLOR 0x1 -#define EXT_CTRL_CODE_HIGHLIGHT 0x2 -#define EXT_CTRL_CODE_SHADOW 0x3 -// -#define EXT_CTRL_CODE_UNKNOWN_7 0x7 -// -#define EXT_CTRL_CODE_CLEAR 0x11 -// -#define EXT_CTRL_CODE_CLEAR_TO 0x13 -#define EXT_CTRL_CODE_MIN_LETTER_SPACING 0x14 -#define EXT_CTRL_CODE_JPN 0x15 -#define EXT_CTRL_CODE_ENG 0x16 +#define EXT_CTRL_CODE_COLOR 0x1 +#define EXT_CTRL_CODE_HIGHLIGHT 0x2 +#define EXT_CTRL_CODE_SHADOW 0x3 +#define EXT_CTRL_CODE_COLOR_HIGHLIGHT_SHADOW 0x4 +#define EXT_CTRL_CODE_PALETTE 0x5 +#define EXT_CTRL_CODE_SIZE 0x6 +#define EXT_CTRL_CODE_UNKNOWN_7 0x7 +#define EXT_CTRL_CODE_PAUSE 0x8 +#define EXT_CTRL_CODE_PAUSE_UNTIL_PRESS 0x9 +#define EXT_CTRL_CODE_WAIT_SE 0xA +#define EXT_CTRL_CODE_PLAY_BGM 0xB +#define EXT_CTRL_CODE_ESCAPE 0xC +#define EXT_CTRL_CODE_SHIFT_TEXT 0xD +#define EXT_CTRL_CODE_UNKNOWN_E 0xE +#define EXT_CTRL_CODE_UNKNOWN_F 0xF +#define EXT_CTRL_CODE_PLAY_SE 0x10 +#define EXT_CTRL_CODE_CLEAR 0x11 +#define EXT_CTRL_CODE_SKIP 0x12 +#define EXT_CTRL_CODE_CLEAR_TO 0x13 +#define EXT_CTRL_CODE_MIN_LETTER_SPACING 0x14 +#define EXT_CTRL_CODE_JPN 0x15 +#define EXT_CTRL_CODE_ENG 0x16 +#define EXT_CTRL_CODE_PAUSE_MUSIC 0x17 +#define EXT_CTRL_CODE_RESUME_MUSIC 0x18 #define TEXT_COLOR_TRANSPARENT 0x0 #define TEXT_COLOR_WHITE 0x1 diff --git a/graphics/pokenav/cancel.pal b/graphics/pokenav/condition/cancel.pal similarity index 100% rename from graphics/pokenav/cancel.pal rename to graphics/pokenav/condition/cancel.pal diff --git a/graphics/pokenav/cancel.png b/graphics/pokenav/condition/cancel.png similarity index 100% rename from graphics/pokenav/cancel.png rename to graphics/pokenav/condition/cancel.png diff --git a/graphics/pokenav/condition.bin b/graphics/pokenav/condition/graph.bin similarity index 100% rename from graphics/pokenav/condition.bin rename to graphics/pokenav/condition/graph.bin diff --git a/graphics/pokenav/condition.png b/graphics/pokenav/condition/graph.png similarity index 100% rename from graphics/pokenav/condition.png rename to graphics/pokenav/condition/graph.png diff --git a/graphics/pokenav/marker.png b/graphics/pokenav/condition/marker.png similarity index 100% rename from graphics/pokenav/marker.png rename to graphics/pokenav/condition/marker.png diff --git a/graphics/pokenav/8623208.pal b/graphics/pokenav/condition/text.pal similarity index 100% rename from graphics/pokenav/8623208.pal rename to graphics/pokenav/condition/text.pal diff --git a/include/menu_specialized.h b/include/menu_specialized.h index 8b78c17346..334635f177 100644 --- a/include/menu_specialized.h +++ b/include/menu_specialized.h @@ -6,6 +6,14 @@ #include "list_menu.h" #include "pokemon.h" +#define TAG_SPMENU_CONDITION_MON 100 +#define TAG_SPMENU_CONDITION_BALL 101 +#define TAG_SPMENU_CONDITION_CANCEL 102 +#define TAG_SPMENU_CONDITION_BALL_PLACEHOLDER 103 +#define TAG_SPMENU_CONDITION_SPARKLE 104 + +#define MAX_CONDITION_SPARKLES 10 + struct UnknownSubStruct_81D1ED4 { u16 unk0; @@ -47,18 +55,18 @@ void MoveRelearnerCreateYesNoMenu(void); u8 LoadMoveRelearnerMovesList(const struct ListMenuItem *items, u16 numChoices); void InitMoveRelearnerWindows(bool8 useContextWindow); s32 GetBoxOrPartyMonData(u16 boxId, u16 monId, s32 request, u8 *dst); -void sub_81D2ED4(u8 *dst, u8 *nameDst, u16 boxId, u16 monId, u16 arg5, u16 arg6, bool8 arg7); -void sub_81D2F78(struct UnknownStruct_81D1ED4 *arg0, u8 *sheen, u16 boxId, u16 monId, u16 arg5, u16 id, u16 arg7, bool8 arg8); -void sub_81D3094(void *tilesDst, void *palDst, u16 boxId, u16 monId, u16 arg5, u16 arg6, bool8 arg7); +void GetConditionMenuMonNameAndLocString(u8 *locationDst, u8 *nameDst, u16 boxId, u16 monId, u16 partyId, u16 numMons, bool8 excludesCancel); +void GetConditionMenuMonConditions(struct UnknownStruct_81D1ED4 *arg0, u8 *sheen, u16 boxId, u16 monId, u16 partyId, u16 id, u16 numMons, bool8 excludesCancel); +void GetConditionMenuMonGfx(void *tilesDst, void *palDst, u16 boxId, u16 monId, u16 partyId, u16 numMons, bool8 excludesCancel); bool8 sub_81D312C(s16 *var); bool8 sub_81D3150(s16 *var); bool8 sub_81D3178(struct UnknownStruct_81D1ED4 *arg0, s16 *arg1); bool8 sub_81D31A4(struct UnknownStruct_81D1ED4 *arg0, s16 *arg1); -void sub_81D31D0(struct SpriteSheet *sheet, struct SpriteTemplate *template, struct SpritePalette *pal); +void LoadConditionMonPicTemplate(struct SpriteSheet *sheet, struct SpriteTemplate *template, struct SpritePalette *pal); void LoadConditionSelectionIcons(struct SpriteSheet *sheets, struct SpriteTemplate * template, struct SpritePalette *pals); void LoadConditionSparkle(struct SpriteSheet *sheet, struct SpritePalette *pal); void ResetConditionSparkleSprites(struct Sprite **sprites); -void CreateConditionSparkleSprites(struct Sprite **sprites, u8 arg1, u8 arg2); +void CreateConditionSparkleSprites(struct Sprite **sprites, u8 monSpriteId, u8 count); void DestroyConditionSparkleSprites(struct Sprite **sprites); void FreeConditionSparkles(struct Sprite **sprites); void DrawLevelUpWindowPg1(u16 windowId, u16 *statsBefore, u16 *statsAfter, u8 bgClr, u8 fgClr, u8 shadowClr); diff --git a/src/graphics.c b/src/graphics.c index 242d327eb0..c3f75b323d 100644 --- a/src/graphics.c +++ b/src/graphics.c @@ -1312,9 +1312,9 @@ const u16 gContestResults_Tilemap[] = INCBIN_U16("graphics/contest/results_scree // pokenav -const u16 gPokenavCondition_Pal[] = INCBIN_U16("graphics/pokenav/condition.gbapal"); -const u32 gPokenavCondition_Gfx[] = INCBIN_U32("graphics/pokenav/condition.4bpp.lz"); -const u32 gPokenavCondition_Tilemap[] = INCBIN_U32("graphics/pokenav/condition.bin.lz"); +const u16 gPokenavCondition_Pal[] = INCBIN_U16("graphics/pokenav/condition/graph.gbapal"); +const u32 gPokenavCondition_Gfx[] = INCBIN_U32("graphics/pokenav/condition/graph.4bpp.lz"); +const u32 gPokenavCondition_Tilemap[] = INCBIN_U32("graphics/pokenav/condition/graph.bin.lz"); const u16 gPokenavOptions_Tilemap[] = INCBIN_U16("graphics/pokenav/options/options.bin"); const u32 gPokenavOptions_Gfx[] = INCBIN_U32("graphics/pokenav/options/options.4bpp.lz"); @@ -1345,11 +1345,11 @@ const u32 gPokenavMessageBox_Tilemap[] = INCBIN_U32("graphics/pokenav/message.bi const u16 gRegionMapCityZoomTiles_Pal[] = INCBIN_U16("graphics/pokenav/zoom_tiles.gbapal"); const u32 gRegionMapCityZoomText_Gfx[] = INCBIN_U32("graphics/pokenav/city_zoom_text.4bpp.lz"); -const u16 gPokenavConditionCancel_Pal[] = INCBIN_U16("graphics/pokenav/cancel.gbapal"); -const u8 gPokenavConditionCancel_Gfx[] = INCBIN_U8("graphics/pokenav/cancel.4bpp"); +const u16 gPokenavConditionCancel_Pal[] = INCBIN_U16("graphics/pokenav/condition/cancel.gbapal"); +const u8 gPokenavConditionCancel_Gfx[] = INCBIN_U8("graphics/pokenav/condition/cancel.4bpp"); -const u16 gPokenavConditionMarker_Pal[] = INCBIN_U16("graphics/pokenav/marker.gbapal"); -const u8 gPokenavConditionMarker_Gfx[] = INCBIN_U8("graphics/pokenav/marker.4bpp"); +const u16 gPokenavConditionMarker_Pal[] = INCBIN_U16("graphics/pokenav/condition/marker.gbapal"); +const u8 gPokenavConditionMarker_Gfx[] = INCBIN_U8("graphics/pokenav/condition/marker.4bpp"); const u16 gBerryBlenderMiscPalette[] = INCBIN_U16("graphics/berry_blender/misc.gbapal"); diff --git a/src/menu_specialized.c b/src/menu_specialized.c index b623bada3c..05ff97edb1 100644 --- a/src/menu_specialized.c +++ b/src/menu_specialized.c @@ -23,12 +23,11 @@ #include "text_window.h" #include "trig.h" #include "window.h" +#include "constants/berry.h" #include "constants/songs.h" #include "constants/species.h" #include "gba/io_reg.h" -#define TAG_CONDITION_SPARKLE 104 - extern const struct CompressedSpriteSheet gMonFrontPicTable[]; EWRAM_DATA static u8 sUnknown_0203CF48[3] = {0}; @@ -879,17 +878,18 @@ s32 GetBoxOrPartyMonData(u16 boxId, u16 monId, s32 request, u8 *dst) return ret; } -static u8 *sub_81D2CD0(u8 *dst, u16 boxId, u16 monId) +// Gets the name/gender/level string for the condition menu +static u8 *GetConditionMenuMonString(u8 *dst, u16 boxId, u16 monId) { u16 species, level, gender; struct BoxPokemon *boxMon; u8 *str; *(dst++) = EXT_CTRL_CODE_BEGIN; - *(dst++) = 4; - *(dst++) = 8; - *(dst++) = 0; - *(dst++) = 9; + *(dst++) = EXT_CTRL_CODE_COLOR_HIGHLIGHT_SHADOW; + *(dst++) = TEXT_COLOR_BLUE; + *(dst++) = TEXT_COLOR_TRANSPARENT; + *(dst++) = TEXT_COLOR_LIGHT_BLUE; if (GetBoxOrPartyMonData(boxId, monId, MON_DATA_IS_EGG, NULL)) { return StringCopyPadded(dst, gText_EggNickname, 0, 12); @@ -922,8 +922,8 @@ static u8 *sub_81D2CD0(u8 *dst, u16 boxId, u16 monId) ; *(str++) = EXT_CTRL_CODE_BEGIN; - *(str++) = 0x12; - *(str++) = 0x3C; + *(str++) = EXT_CTRL_CODE_SKIP; + *(str++) = 60; switch (gender) { @@ -933,28 +933,28 @@ static u8 *sub_81D2CD0(u8 *dst, u16 boxId, u16 monId) case MON_MALE: *(str++) = EXT_CTRL_CODE_BEGIN; *(str++) = EXT_CTRL_CODE_COLOR; - *(str++) = 4; + *(str++) = TEXT_COLOR_RED; *(str++) = EXT_CTRL_CODE_BEGIN; - *(str++) = 3; - *(str++) = 5; + *(str++) = EXT_CTRL_CODE_SHADOW; + *(str++) = TEXT_COLOR_LIGHT_RED; *(str++) = CHAR_MALE; break; case MON_FEMALE: *(str++) = EXT_CTRL_CODE_BEGIN; *(str++) = EXT_CTRL_CODE_COLOR; - *(str++) = 6; + *(str++) = TEXT_COLOR_GREEN; *(str++) = EXT_CTRL_CODE_BEGIN; - *(str++) = 3; - *(str++) = 7; + *(str++) = EXT_CTRL_CODE_SHADOW; + *(str++) = TEXT_COLOR_LIGHT_GREEN; *(str++) = CHAR_FEMALE; break; } *(str++) = EXT_CTRL_CODE_BEGIN; - *(str++) = 4; - *(str++) = 8; - *(str++) = 0; - *(str++) = 9; + *(str++) = EXT_CTRL_CODE_COLOR_HIGHLIGHT_SHADOW; + *(str++) = TEXT_COLOR_BLUE; + *(str++) = TEXT_COLOR_TRANSPARENT; + *(str++) = TEXT_COLOR_LIGHT_BLUE; *(str++) = CHAR_SLASH; *(str++) = CHAR_SPECIAL_F9; *(str++) = CHAR_LV_2; @@ -966,7 +966,8 @@ static u8 *sub_81D2CD0(u8 *dst, u16 boxId, u16 monId) } } -static u8 *sub_81D2E7C(u8 *dst, const u8 *src, s16 n) +// Buffers the string in src to dest up to n chars. If src is less than n chars, fill with spaces +static u8 *BufferConditionMenuSpacedStringN(u8 *dst, const u8 *src, s16 n) { while (*src != EOS) { @@ -980,50 +981,53 @@ static u8 *sub_81D2E7C(u8 *dst, const u8 *src, s16 n) return dst; } -void sub_81D2ED4(u8 *dst, u8 *nameDst, u16 boxId, u16 monId, u16 arg5, u16 arg6, bool8 arg7) +void GetConditionMenuMonNameAndLocString(u8 *locationDst, u8 *nameDst, u16 boxId, u16 monId, u16 partyId, u16 numMons, bool8 excludesCancel) { u16 i; - if (!arg7) - arg6--; + // In this and the below 2 functions, numMons can be passed as the number of menu selections (which includes Cancel) + // To indicate that the Cancel needs to be subtracted they pass an additional bool + // Unclear why they didn't just subtract 1 when it gets passed instead + if (!excludesCancel) + numMons--; - if (arg5 != arg6) + if (partyId != numMons) { - sub_81D2CD0(nameDst, boxId, monId); - dst[0] = EXT_CTRL_CODE_BEGIN; - dst[1] = 4; - dst[2] = 8; - dst[3] = 0; - dst[4] = 9; + GetConditionMenuMonString(nameDst, boxId, monId); + locationDst[0] = EXT_CTRL_CODE_BEGIN; + locationDst[1] = EXT_CTRL_CODE_COLOR_HIGHLIGHT_SHADOW; + locationDst[2] = TEXT_COLOR_BLUE; + locationDst[3] = TEXT_COLOR_TRANSPARENT; + locationDst[4] = TEXT_COLOR_LIGHT_BLUE; if (boxId == TOTAL_BOXES_COUNT) // Party mon. { - sub_81D2E7C(dst + 5, gText_InParty, 8); + BufferConditionMenuSpacedStringN(&locationDst[5], gText_InParty, 8); } else { boxId++;boxId--; // Again...Someone fix this maybe? - sub_81D2E7C(dst + 5, GetBoxNamePtr(boxId), 8); + BufferConditionMenuSpacedStringN(&locationDst[5], GetBoxNamePtr(boxId), 8); } } else { - for (i = 0; i < 12; i++) + for (i = 0; i < POKEMON_NAME_LENGTH + 2; i++) nameDst[i] = CHAR_SPACE; nameDst[i] = EOS; for (i = 0; i < 8; i++) - dst[i] = CHAR_SPACE; - dst[i] = EOS; + locationDst[i] = CHAR_SPACE; + locationDst[i] = EOS; } } -void sub_81D2F78(struct UnknownStruct_81D1ED4 *arg0, u8 *sheen, u16 boxId, u16 monId, u16 arg5, u16 id, u16 arg7, bool8 arg8) +void GetConditionMenuMonConditions(struct UnknownStruct_81D1ED4 *arg0, u8 *sheen, u16 boxId, u16 monId, u16 partyId, u16 id, u16 numMons, bool8 excludesCancel) { u16 i; - if (!arg8) - arg7--; + if (!excludesCancel) + numMons--; - if (arg5 != arg7) + if (partyId != numMons) { arg0->unk0[id][0] = GetBoxOrPartyMonData(boxId, monId, MON_DATA_COOL, NULL); arg0->unk0[id][1] = GetBoxOrPartyMonData(boxId, monId, MON_DATA_TOUGH, NULL); @@ -1039,7 +1043,7 @@ void sub_81D2F78(struct UnknownStruct_81D1ED4 *arg0, u8 *sheen, u16 boxId, u16 m } else { - for (i = 0; i < 5; i++) + for (i = 0; i < FLAVOR_COUNT; i++) { arg0->unk0[id][i] = 0; arg0->unk14[id][i].unk0 = 155; @@ -1048,12 +1052,12 @@ void sub_81D2F78(struct UnknownStruct_81D1ED4 *arg0, u8 *sheen, u16 boxId, u16 m } } -void sub_81D3094(void *tilesDst, void *palDst, u16 boxId, u16 monId, u16 arg5, u16 arg6, bool8 arg7) +void GetConditionMenuMonGfx(void *tilesDst, void *palDst, u16 boxId, u16 monId, u16 partyId, u16 numMons, bool8 excludesCancel) { - if (!arg7) - arg6--; + if (!excludesCancel) + numMons--; - if (arg5 != arg6) + if (partyId != numMons) { u16 species = GetBoxOrPartyMonData(boxId, monId, MON_DATA_SPECIES2, NULL); u32 trainerId = GetBoxOrPartyMonData(boxId, monId, MON_DATA_OT_ID, NULL); @@ -1155,14 +1159,15 @@ static const union AnimCmd *const sSpriteAnimTable_8625A40[] = sSpriteAnim_8625A38 }; -void sub_81D31D0(struct SpriteSheet *sheet, struct SpriteTemplate *template, struct SpritePalette *pal) +// Just loads the generic data, up to the caller to load the actual sheet/pal for the specific mon +void LoadConditionMonPicTemplate(struct SpriteSheet *sheet, struct SpriteTemplate *template, struct SpritePalette *pal) { - struct SpriteSheet dataSheet = {NULL, 0x800, 100}; + struct SpriteSheet dataSheet = {NULL, 0x800, TAG_SPMENU_CONDITION_MON}; struct SpriteTemplate dataTemplate = { - .tileTag = 100, - .paletteTag = 100, + .tileTag = TAG_SPMENU_CONDITION_MON, + .paletteTag = TAG_SPMENU_CONDITION_MON, .oam = &sOamData_8625A20, .anims = gDummySpriteAnimTable, .images = NULL, @@ -1170,7 +1175,7 @@ void sub_81D31D0(struct SpriteSheet *sheet, struct SpriteTemplate *template, str .callback = SpriteCallbackDummy, }; - struct SpritePalette dataPal = {NULL, 100}; + struct SpritePalette dataPal = {NULL, TAG_SPMENU_CONDITION_MON}; *sheet = dataSheet; *template = dataTemplate; @@ -1183,23 +1188,23 @@ void LoadConditionSelectionIcons(struct SpriteSheet *sheets, struct SpriteTempla struct SpriteSheet dataSheets[] = { - {sConditionPokeball_Gfx, 0x100, 101}, - {sConditionPokeballPlaceholder_Gfx, 0x20, 103}, - {gPokenavConditionCancel_Gfx, 0x100, 102}, + {sConditionPokeball_Gfx, 0x100, TAG_SPMENU_CONDITION_BALL}, + {sConditionPokeballPlaceholder_Gfx, 0x20, TAG_SPMENU_CONDITION_BALL_PLACEHOLDER}, + {gPokenavConditionCancel_Gfx, 0x100, TAG_SPMENU_CONDITION_CANCEL}, {}, }; struct SpritePalette dataPals[] = { - {gPokenavConditionCancel_Pal, 101}, - {gPokenavConditionCancel_Pal + 16, 102}, + {gPokenavConditionCancel_Pal, TAG_SPMENU_CONDITION_BALL}, + {gPokenavConditionCancel_Pal + 16, TAG_SPMENU_CONDITION_CANCEL}, {}, }; struct SpriteTemplate dataTemplate = { - .tileTag = 101, - .paletteTag = 101, + .tileTag = TAG_SPMENU_CONDITION_BALL, + .paletteTag = TAG_SPMENU_CONDITION_BALL, .oam = &sOamData_8625A28, .anims = sSpriteAnimTable_8625A40, .images = NULL, @@ -1218,8 +1223,8 @@ void LoadConditionSelectionIcons(struct SpriteSheet *sheets, struct SpriteTempla void LoadConditionSparkle(struct SpriteSheet *sheet, struct SpritePalette *pal) { - struct SpriteSheet dataSheet = {sConditionSparkle_Pal, 0x380, TAG_CONDITION_SPARKLE}; - struct SpritePalette dataPal = {sConditionSparkle_Gfx, TAG_CONDITION_SPARKLE}; + struct SpriteSheet dataSheet = {sConditionSparkle_Pal, 0x380, TAG_SPMENU_CONDITION_SPARKLE}; + struct SpritePalette dataPal = {sConditionSparkle_Gfx, TAG_SPMENU_CONDITION_SPARKLE}; *sheet = dataSheet; *pal = dataPal; @@ -1292,8 +1297,8 @@ static const union AnimCmd *const *const sUnknown_08625B10 = sSpriteAnimTable_86 static const struct SpriteTemplate sSpriteTemplate_ConditionSparkle = { - .tileTag = TAG_CONDITION_SPARKLE, - .paletteTag = TAG_CONDITION_SPARKLE, + .tileTag = TAG_SPMENU_CONDITION_SPARKLE, + .paletteTag = TAG_SPMENU_CONDITION_SPARKLE, .oam = &sOam_ConditionSparkle, .anims = sAnims_ConditionSparkle, .images = NULL, @@ -1335,7 +1340,7 @@ static void sub_81D338C(u8 arg0, u8 arg1, struct Sprite **sprites) { u16 i; - for (i = 0; i < 10; i++) + for (i = 0; i < MAX_CONDITION_SPARKLES; i++) { if (sprites[i] != NULL) { @@ -1375,11 +1380,11 @@ void ResetConditionSparkleSprites(struct Sprite **sprites) { u8 i; - for (i = 0; i < 10; i++) + for (i = 0; i < MAX_CONDITION_SPARKLES; i++) sprites[i] = NULL; } -void CreateConditionSparkleSprites(struct Sprite **sprites, u8 arg1, u8 _count) +void CreateConditionSparkleSprites(struct Sprite **sprites, u8 monSpriteId, u8 _count) { u16 i, spriteId, firstSpriteId = 0; u8 count = _count; @@ -1391,7 +1396,7 @@ void CreateConditionSparkleSprites(struct Sprite **sprites, u8 arg1, u8 _count) { sprites[i] = &gSprites[spriteId]; sprites[i]->invisible = TRUE; - sprites[i]->data[4] = arg1; + sprites[i]->data[4] = monSpriteId; if (i != 0) sprites[i - 1]->data[5] = spriteId; else @@ -1411,7 +1416,7 @@ void DestroyConditionSparkleSprites(struct Sprite **sprites) { u16 i; - for (i = 0; i < 10; i++) + for (i = 0; i < MAX_CONDITION_SPARKLES; i++) { if (sprites[i] != NULL) { @@ -1428,8 +1433,8 @@ void DestroyConditionSparkleSprites(struct Sprite **sprites) void FreeConditionSparkles(struct Sprite **sprites) { DestroyConditionSparkleSprites(sprites); - FreeSpriteTilesByTag(TAG_CONDITION_SPARKLE); - FreeSpritePaletteByTag(TAG_CONDITION_SPARKLE); + FreeSpriteTilesByTag(TAG_SPMENU_CONDITION_SPARKLE); + FreeSpritePaletteByTag(TAG_SPMENU_CONDITION_SPARKLE); } static void SpriteCB_ConditionSparkle(struct Sprite *sprite) diff --git a/src/pokenav_conditions_2.c b/src/pokenav_conditions_2.c index ad769adcf5..764d5c63fb 100644 --- a/src/pokenav_conditions_2.c +++ b/src/pokenav_conditions_2.c @@ -25,7 +25,7 @@ u32 sub_81CE700(s32); BSS_DATA u8 gUnknown_030012BC; const u16 gConditionGraphData_Pal[] = INCBIN_U16("graphics/pokenav/condition/graph_data.gbapal"); -const u16 gUnknown_08623208[] = INCBIN_U16("graphics/pokenav/8623208.gbapal"); +const u16 gConditionText_Pal[] = INCBIN_U16("graphics/pokenav/condition/text.gbapal"); const u32 gUnknown_08623228[] = INCBIN_U32("graphics/pokenav/8623228.4bpp.lz"); const u32 gUnknown_0862323C[] = INCBIN_U32("graphics/pokenav/862323C.bin.lz"); const u16 gUnknown_08623338[] = INCBIN_U16("graphics/pokenav/8623338.gbapal"); @@ -134,7 +134,7 @@ struct Pokenav7Struct u8 unk1823; struct PokemonMarkMenu monMarks; struct Sprite *unk28dc; - struct Sprite *unk28e0[10]; + struct Sprite *unk28e0[MAX_CONDITION_SPARKLES]; u8 unk2908; u8 filler2[0x38ac - 0x2909]; }; @@ -226,7 +226,7 @@ u32 sub_81CDE94(s32 state) CopyBgTilemapBufferToVram(3); CopyPaletteIntoBufferUnfaded(gPokenavCondition_Pal, 0x10, 0x20); - CopyPaletteIntoBufferUnfaded(gUnknown_08623208, 0xF0, 0x20); + CopyPaletteIntoBufferUnfaded(gConditionText_Pal, 0xF0, 0x20); structPtr->unk1814 = -80; return LT_INC_AND_PAUSE; case 4: @@ -804,7 +804,7 @@ void sub_81CED30(u8 var) if (structPtr->unk1816 == 0xFF) { - sub_81D31D0(&sprSheet, &sprTemplate, &sprPal); + LoadConditionMonPicTemplate(&sprSheet, &sprTemplate, &sprPal); sprSheet.data = sub_81CDCB4(var); sprPal.data = sub_81CDCD4(var); structPtr->unk1818 = LoadSpritePalette(&sprPal); diff --git a/src/use_pokeblock.c b/src/use_pokeblock.c index 72490bde2f..30d5315146 100644 --- a/src/use_pokeblock.c +++ b/src/use_pokeblock.c @@ -25,9 +25,9 @@ #include "item_menu.h" /* - This file handles the pokeblock screen where the player - chooses which pokemon to give a pokeblock to. The subsequent - scene of feeding the pokeblock to the pokemon is handled by + This file handles the screen where the player chooses + which pokemon to give a pokeblock to. The subsequent scene + of feeding the pokeblock to the pokemon is handled by pokeblock_feed.c, and the rest of the pokeblock menu (and other pokeblock-related functions) are in pokeblock.c */ @@ -39,30 +39,37 @@ enum { WIN_COUNT }; +#define TAG_UP_DOWN 0 +#define TAG_CONDITION 1 + +// At any one time, the currently selected mon and its two adjacent neighbors can be loaded +// IDs to refer to one of these 3 are called "load id" in this file +#define NUM_SELECTIONS_LOADED 3 + struct UsePokeblockSession { - /*0x00*/ void (*callback)(void); - /*0x04*/ void (*exitCallback)(void); - /*0x08*/ struct Pokeblock *pokeblock; - /*0x0C*/ struct Pokemon *mon; - /*0x10*/ u8 stringBuffer[0x40]; - /*0x50*/ u8 mainState; - /*0x51*/ u8 field_51; // unused - /*0x52*/ u8 field_52; - /*0x53*/ u8 field_53; - /*0x54*/ u8 numEnhancements; - /*0x55*/ u8 field_55; // unused - /*0x56*/ u8 field_56; - /*0x57*/ u8 field_57[FLAVOR_COUNT]; - /*0x5C*/ u8 field_5c[FLAVOR_COUNT]; - /*0x61*/ u8 field_61[FLAVOR_COUNT]; - /*0x66*/ s16 field_66[FLAVOR_COUNT]; - /*0x70*/ u8 field_70; // mon id + 1 - /*0x71*/ u8 field_71; // mon id - /*0x74*/ u8 (*unk74)(void); // selection handler - /*0x78*/ u8 helperState; - /*0x79*/ u8 filler79[1]; // unused - /*0x7A*/ u8 field_7A[0x22]; // nature text buffer + void (*callback)(void); + void (*exitCallback)(void); + struct Pokeblock *pokeblock; + struct Pokemon *mon; + u8 stringBuffer[64]; + u8 mainState; + u8 unused_1; + u8 timer; + u8 statId; + u8 numEnhancements; + u8 unused_2; + bool8 monInTopHalf; + u8 conditionsPreBlock[FLAVOR_COUNT]; + u8 conditionsPostBlock[FLAVOR_COUNT]; + u8 enhancements[FLAVOR_COUNT]; + s16 pokeblockStatBoosts[FLAVOR_COUNT]; + u8 numSelections; // num in party + 1 (for Cancel) + u8 curSelection; + bool8 (*loadNewSelection)(void); + u8 helperState; + u8 unused_3; + u8 natureText[34]; }; // This struct is identical to PokenavMonList, the struct used for managing lists of pokemon in the pokenav @@ -79,50 +86,47 @@ struct UsePokeblockMenuPokemon struct UsePokeblockMenu { /*0x0000*/ u8 filler0[4]; // unused - /*0x0000*/ u16 field_4[6][0x40]; // pal buffer - /*0x0304*/ u8 field_304[3][0x2000]; // sheet buffer + /*0x0000*/ u16 partyPalettes[PARTY_SIZE][0x40]; + /*0x0304*/ u8 partySheets[NUM_SELECTIONS_LOADED][0x2000]; /*0x6304*/ u8 filler_6304[0x1000]; // unused? /*0x7304*/ u8 tilemapBuffer[BG_SCREEN_SIZE + 2]; - /*0x7B06*/ u8 field_7B06[7]; // sprite ids - /*0x7B0E*/ s16 field_7B0E; // x pos? - /*0x7B10*/ u8 field_7B10; // sprite id? - /*0x7B12*/ u16 field_7B12; // pal - /*0x7B12*/ u16 field_7B14; // sheet - /*0x7B12*/ u8 *field_7B18; - /*0x7B1C*/ struct Sprite *sparkles[10]; + /*0x7B06*/ u8 selectionIconSpriteIds[PARTY_SIZE + 1]; + /*0x7B0E*/ s16 curMonXOffset; + /*0x7B10*/ u8 curMonSpriteId; + /*0x7B12*/ u16 curMonPalette; + /*0x7B12*/ u16 curMonSheet; + /*0x7B12*/ u8 *curMonTileStart; + /*0x7B1C*/ struct Sprite *sparkles[MAX_CONDITION_SPARKLES]; /*0x7B44*/ struct Sprite *condition[2]; /*0x7B4C*/ u8 field_7B4C; - /*0x7B4D*/ u8 field_7B4D[3][24]; - /*0x7B95*/ u8 field_7B95[3][64]; + /*0x7B4D*/ u8 locationStrings[NUM_SELECTIONS_LOADED][24]; // Gets an "in party" or "in box #" string that never gets printed + /*0x7B95*/ u8 monNameStrings[NUM_SELECTIONS_LOADED][64]; /*0x7C58*/ struct UnknownStruct_81D1ED4 field_7C58; - /*0x7FB0*/ u8 unk7FB0[3]; - /*0x7FB3*/ s8 field_7FB3; - /*0x7FB4*/ s8 field_7FB4; - /*0x7FB5*/ s8 field_7FB5; - /*0x7FB6*/ s8 field_7FB6; + /*0x7FB0*/ u8 numSparkles[NUM_SELECTIONS_LOADED]; + /*0x7FB3*/ s8 curLoadId; + /*0x7FB4*/ s8 nextLoadId; + /*0x7FB5*/ s8 prevLoadId; + /*0x7FB6*/ s8 toLoadId; /*0x7FB8*/ struct UsePokeblockMenuPokemon party[PARTY_SIZE]; /*0x7FD0*/ struct UsePokeblockSession info; }; -#define TAG_UP_DOWN 0 -#define TAG_CONDITION 1 - static void SetUsePokeblockCallback(void (*func)(void)); static void LoadUsePokeblockMenu(void); -static void sub_816631C(void); -static void sub_81662C0(void); +static void CB2_UsePokeblockMenu(void); +static void CB2_ReturnToUsePokeblockMenu(void); static void ShowUsePokeblockMenu(void); -static void sub_8166304(void); -static void sub_81668F8(void); -static void sub_8167420(void); -static void sub_8167760(void); +static void CB2_ShowUsePokeblockMenuForResults(void); +static void ShowUsePokeblockMenuForResults(void); +static void LoadPartyInfo(void); +static void LoadAndCreateSelectionIcons(void); static u8 GetNumNonEggPartyMons(u8); -static bool8 sub_8168328(void); -static bool8 LoadUsePokeblockGfx(void); -static void sub_8167608(u8); +static bool8 LoadConditionTitle(void); +static bool8 LoadUsePokeblockMenuGfx(void); +static void UpdateMonPic(u8); static void UpdateMonInfoText(u16, bool8); static void UsePokeblockMenu(void); -static void sub_8167CA0(bool8); +static void UpdateSelection(bool8); static void CloseUsePokeblockMenu(void); static void AskUsePokeblock(void); static s8 HandleAskUsePokeblockInput(void); @@ -130,29 +134,29 @@ static bool8 IsSheenMaxed(void); static void PrintWontEatAnymore(void); static void FeedPokeblockToMon(void); static void EraseMenuWindow(void); -static u8 sub_81672A4(u8); -static void sub_8166A34(void); -static void sub_8167104(void); -static void sub_8167338(void); -static void sub_81681F4(u8); -static void sub_8166E24(void); -static bool8 sub_8166EDC(void); +static u8 GetPartyIdFromSelectionId(u8); +static void ShowPokeblockResults(void); +static void CalculateConditionEnhancements(void); +static void LoadAndCreateUpDownSprites(void); +static void CalculateNumAdditionalSparkles(u8); +static void PrintFirstEnhancement(void); +static bool8 TryPrintNextEnhancement(void); static void BufferEnhancedStatText(u8 *, u8, s16); static void PrintMenuWindowText(const u8 *); -static void sub_8167184(struct Pokeblock *, struct Pokemon *); -static void sub_81673DC(struct Sprite *); -static void sub_81674BC(void); -static void sub_816753C(s16, u8); -static u8 sub_8167EA4(void); -static u8 sub_8167FA4(void); -static u8 sub_8168048(void); -static void sub_8168180(struct Sprite *); -static void sub_81681B4(struct Sprite *); -static void sub_8168168(struct Sprite *); -static void sub_8168374(struct Sprite *); +static void CalculatePokeblockEffectiveness(struct Pokeblock *, struct Pokemon *); +static void SpriteCB_UpDown(struct Sprite *); +static void LoadInitialMonInfo(void); +static void LoadMonInfo(s16, u8); +static bool8 LoadNewSelection_CancelToMon(void); +static bool8 LoadNewSelection_MonToCancel(void); +static bool8 LoadNewSelection_MonToMon(void); +static void SpriteCB_SelectionIconPokeball(struct Sprite *); +static void SpriteCB_SelectionIconCancel(struct Sprite *); +static void SpriteCB_MonPic(struct Sprite *); +static void SpriteCB_Condition(struct Sprite *); extern const u16 gConditionGraphData_Pal[]; -extern const u16 gUnknown_08623208[]; +extern const u16 gConditionText_Pal[]; // The below 3 are saved for returning to the screen after feeding a pokeblock to a mon // so that the rest of the data can be freed @@ -171,7 +175,9 @@ static const u32 sMonFrame_Gfx[] = INCBIN_U32("graphics/pokeblock/use_screen/mon static const u32 sMonFrame_Tilemap[] = INCBIN_U32("graphics/pokeblock/use_screen/mon_frame.bin"); static const u32 sGraphData_Tilemap[] = INCBIN_U32("graphics/pokeblock/use_screen/graph_data.bin"); -static const u32 gUnknown_085DFCB0[] = +// For some reason the condition/flavors aren't listed in order in this file +// Normally they would go Cool/Spicy, Beauty/Dry, Cute/Sweet, Smart/Bitter, Tough/Sour +static const u32 sMonDataConditions[FLAVOR_COUNT] = { MON_DATA_COOL, MON_DATA_TOUGH, @@ -298,13 +304,13 @@ static const struct SpritePalette sSpritePalette_UpDown = gUsePokeblockUpDown_Pal, TAG_UP_DOWN }; -static const s16 gUnknown_085DFD28[][2] = +static const s16 sUpDownCoordsOnGraph[FLAVOR_COUNT][2] = { - {0x9C, 0x24}, - {0x75, 0x3B}, - {0x75, 0x76}, - {0xC5, 0x76}, - {0xC5, 0x3B} + {156, 36}, + {117, 59}, + {117, 118}, + {197, 118}, + {197, 59} }; static const struct OamData sOam_UpDown = @@ -397,7 +403,7 @@ static const struct SpriteTemplate sSpriteTemplate_Condition = .anims = sAnims_Condition, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8168374, + .callback = SpriteCB_Condition, }; static const struct SpritePalette sSpritePalette_Condition = @@ -413,7 +419,7 @@ void ChooseMonToGivePokeblock(struct Pokeblock *pokeblock, void (*callback)(void sInfo->pokeblock = pokeblock; sInfo->exitCallback = callback; SetUsePokeblockCallback(LoadUsePokeblockMenu); - SetMainCallback2(sub_816631C); + SetMainCallback2(CB2_UsePokeblockMenu); } // When returning to the selection screen after feeding a pokeblock to a mon @@ -424,12 +430,12 @@ static void CB2_ReturnAndChooseMonToGivePokeblock(void) sInfo->pokeblock = sPokeblock; sInfo->exitCallback = sExitCallback; gPokeblockMonId = GetNumNonEggPartyMons(gPokeblockMonId); - sInfo->field_56 = gPokeblockMonId < 4 ? 0 : 1; + sInfo->monInTopHalf = (gPokeblockMonId <= PARTY_SIZE / 2) ? FALSE : TRUE; SetUsePokeblockCallback(LoadUsePokeblockMenu); - SetMainCallback2(sub_81662C0); + SetMainCallback2(CB2_ReturnToUsePokeblockMenu); } -static void sub_81662C0(void) +static void CB2_ReturnToUsePokeblockMenu(void) { sInfo->callback(); AnimateSprites(); @@ -438,19 +444,19 @@ static void sub_81662C0(void) if (sInfo->callback == ShowUsePokeblockMenu) { sInfo->mainState = 0; - SetMainCallback2(sub_8166304); + SetMainCallback2(CB2_ShowUsePokeblockMenuForResults); } } -static void sub_8166304(void) +static void CB2_ShowUsePokeblockMenuForResults(void) { - sub_81668F8(); + ShowUsePokeblockMenuForResults(); AnimateSprites(); BuildOamBuffer(); UpdatePaletteFade(); } -static void sub_816631C(void) +static void CB2_UsePokeblockMenu(void) { sInfo->callback(); AnimateSprites(); @@ -459,7 +465,7 @@ static void sub_816631C(void) UpdatePaletteFade(); } -static void VBlankCB_UsePokeblock(void) +static void VBlankCB_UsePokeblockMenu(void) { LoadOam(); ProcessSpriteCopyRequests(); @@ -479,7 +485,7 @@ static void LoadUsePokeblockMenu(void) switch (sInfo->mainState) { case 0: - sMenu->field_7B10 = 0xFF; + sMenu->curMonSpriteId = 0xFF; sub_81D1ED4(&sMenu->field_7C58); sInfo->mainState++; break; @@ -505,25 +511,25 @@ static void LoadUsePokeblockMenu(void) sInfo->mainState++; break; case 5: - if (!sub_8168328()) + if (!LoadConditionTitle()) sInfo->mainState++; break; case 6: gKeyRepeatStartDelay = 20; - sub_8167420(); + LoadPartyInfo(); sInfo->mainState++; break; case 7: - if (!LoadUsePokeblockGfx()) + if (!LoadUsePokeblockMenuGfx()) sInfo->mainState++; break; case 8: - sub_8167608(0); - sub_8167760(); + UpdateMonPic(0); + LoadAndCreateSelectionIcons(); sInfo->mainState++; break; case 9: - if (!sub_81D312C(&sMenu->field_7B0E)) + if (!sub_81D312C(&sMenu->curMonXOffset)) sInfo->mainState++; break; case 10: @@ -563,7 +569,7 @@ static void ShowUsePokeblockMenu(void) { case 0: BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); - SetVBlankCallback(VBlankCB_UsePokeblock); + SetVBlankCallback(VBlankCB_UsePokeblockMenu); ShowBg(0); ShowBg(1); ShowBg(3); @@ -574,10 +580,10 @@ static void ShowUsePokeblockMenu(void) if (!gPaletteFade.active) { ResetConditionSparkleSprites(sMenu->sparkles); - if (sMenu->info.field_71 != sMenu->info.field_70 - 1) + if (sMenu->info.curSelection != sMenu->info.numSelections - 1) { - u8 var0 = sMenu->unk7FB0[sMenu->field_7FB3]; - CreateConditionSparkleSprites(sMenu->sparkles, sMenu->field_7B10, var0); + u8 numSparkles = sMenu->numSparkles[sMenu->curLoadId]; + CreateConditionSparkleSprites(sMenu->sparkles, sMenu->curMonSpriteId, numSparkles); } SetUsePokeblockCallback(UsePokeblockMenu); @@ -599,7 +605,7 @@ enum { static void UsePokeblockMenu(void) { - u8 var; + bool8 loading; switch (sInfo->mainState) { @@ -607,14 +613,14 @@ static void UsePokeblockMenu(void) if (JOY_HELD(DPAD_UP)) { PlaySE(SE_SELECT); - sub_8167CA0(TRUE); + UpdateSelection(TRUE); DestroyConditionSparkleSprites(sMenu->sparkles); sInfo->mainState = STATE_UPDATE_SELECTION; } else if (JOY_HELD(DPAD_DOWN)) { PlaySE(SE_SELECT); - sub_8167CA0(FALSE); + UpdateSelection(FALSE); DestroyConditionSparkleSprites(sMenu->sparkles); sInfo->mainState = STATE_UPDATE_SELECTION; } @@ -628,15 +634,15 @@ static void UsePokeblockMenu(void) PlaySE(SE_SELECT); // If last item, selected Cancel. Otherwise selected mon - if (sMenu->info.field_71 == sMenu->info.field_70 - 1) + if (sMenu->info.curSelection == sMenu->info.numSelections - 1) sInfo->mainState = STATE_CLOSE; else sInfo->mainState = STATE_CONFIRM_SELECTION; } break; case STATE_UPDATE_SELECTION: - var = sMenu->info.unk74(); - if (!var) + loading = sMenu->info.loadNewSelection(); + if (!loading) sInfo->mainState = STATE_HANDLE_INPUT; break; case STATE_2: @@ -685,7 +691,7 @@ static void FeedPokeblockToMon(void) switch (sInfo->mainState) { case 0: - gPokeblockMonId = sub_81672A4(sMenu->info.field_71); + gPokeblockMonId = GetPartyIdFromSelectionId(sMenu->info.curSelection); sExitCallback = sInfo->exitCallback; sPokeblock = sInfo->pokeblock; BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); @@ -707,16 +713,16 @@ static void FeedPokeblockToMon(void) } } -static void sub_81668F8(void) +static void ShowUsePokeblockMenuForResults(void) { - u16 var; + bool8 loading; switch (sInfo->mainState) { case 0: - if (sMenu->info.field_71 != gPokeblockMonId) + if (sMenu->info.curSelection != gPokeblockMonId) { - sub_8167CA0(sInfo->field_56); + UpdateSelection(sInfo->monInTopHalf); sInfo->mainState++; } else @@ -725,9 +731,9 @@ static void sub_81668F8(void) } break; case 1: - var = sMenu->info.unk74(); - if (!var) - sInfo->mainState = var; + loading = sMenu->info.loadNewSelection(); + if (!loading) + sInfo->mainState = 0; break; case 2: break; @@ -743,7 +749,7 @@ static void sub_81668F8(void) sInfo->mainState++; break; case 5: - SetVBlankCallback(VBlankCB_UsePokeblock); + SetVBlankCallback(VBlankCB_UsePokeblockMenu); BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); sInfo->mainState++; break; @@ -751,14 +757,14 @@ static void sub_81668F8(void) if (!gPaletteFade.active) { ResetConditionSparkleSprites(sMenu->sparkles); - SetUsePokeblockCallback(sub_8166A34); - SetMainCallback2(sub_816631C); + SetUsePokeblockCallback(ShowPokeblockResults); + SetMainCallback2(CB2_UsePokeblockMenu); } break; } } -static void sub_8166A34(void) +static void ShowPokeblockResults(void) { u8 var; @@ -766,7 +772,7 @@ static void sub_8166A34(void) { case 0: sInfo->mon = gPlayerParty; - sInfo->mon += sMenu->party[sMenu->info.field_71].monId; + sInfo->mon += sMenu->party[sMenu->info.curSelection].monId; DestroyConditionSparkleSprites(sMenu->sparkles); sInfo->mainState++; break; @@ -775,36 +781,36 @@ static void sub_8166A34(void) sInfo->mainState++; break; case 2: - sub_8167104(); - sub_81D2754(sInfo->field_5c, sMenu->field_7C58.unk14[3]); - sub_81D1F84(&sMenu->field_7C58, sMenu->field_7C58.unk14[sMenu->field_7FB3], sMenu->field_7C58.unk14[3]); - sub_8167338(); + CalculateConditionEnhancements(); + sub_81D2754(sInfo->conditionsPostBlock, sMenu->field_7C58.unk14[3]); + sub_81D1F84(&sMenu->field_7C58, sMenu->field_7C58.unk14[sMenu->curLoadId], sMenu->field_7C58.unk14[3]); + LoadAndCreateUpDownSprites(); sInfo->mainState++; break; case 3: var = sub_81D2074(&sMenu->field_7C58); if (!var) { - sub_81681F4(sub_81672A4(sMenu->info.field_71)); - if (sMenu->info.field_71 != sMenu->info.field_70 - 1) + CalculateNumAdditionalSparkles(GetPartyIdFromSelectionId(sMenu->info.curSelection)); + if (sMenu->info.curSelection != sMenu->info.numSelections - 1) { - u8 var0 = sMenu->unk7FB0[sMenu->field_7FB3]; - CreateConditionSparkleSprites(sMenu->sparkles, sMenu->field_7B10, var0); + u8 numSparkles = sMenu->numSparkles[sMenu->curLoadId]; + CreateConditionSparkleSprites(sMenu->sparkles, sMenu->curMonSpriteId, numSparkles); } - sInfo->field_52 = 0; + sInfo->timer = 0; sInfo->mainState++; } break; case 4: - if (++sInfo->field_52 > 16) + if (++sInfo->timer > 16) { - sub_8166E24(); + PrintFirstEnhancement(); sInfo->mainState++; } break; case 5: - if (JOY_NEW(A_BUTTON | B_BUTTON) && !sub_8166EDC()) + if (JOY_NEW(A_BUTTON | B_BUTTON) && !TryPrintNextEnhancement()) { TryClearPokeblock((u8)gSpecialVar_ItemId); SetUsePokeblockCallback(CloseUsePokeblockMenu); @@ -815,7 +821,7 @@ static void sub_8166A34(void) static void CloseUsePokeblockMenu(void) { - u8 i, var; + u8 i; switch (sInfo->mainState) { @@ -835,8 +841,8 @@ static void CloseUsePokeblockMenu(void) case 3: SetMainCallback2(sInfo->exitCallback); FreeConditionSparkles(sMenu->sparkles); - for (i = 0; i < ARRAY_COUNT(sMenu->field_7B06); i++) - DestroySprite(&gSprites[sMenu->field_7B06[i]]); + for (i = 0; i < ARRAY_COUNT(sMenu->selectionIconSpriteIds); i++) + DestroySprite(&gSprites[sMenu->selectionIconSpriteIds[i]]); FreeSpriteTilesByTag(TAG_UP_DOWN); FreeSpriteTilesByTag(TAG_CONDITION); @@ -846,8 +852,8 @@ static void CloseUsePokeblockMenu(void) for (i = 0; i < ARRAY_COUNT(sMenu->condition); i++) DestroySprite(sMenu->condition[i]); - if (sMenu->field_7B10 != 0xFF) - DestroySprite(&gSprites[sMenu->field_7B10]); + if (sMenu->curMonSpriteId != 0xFF) + DestroySprite(&gSprites[sMenu->curMonSpriteId]); SetVBlankCallback(NULL); FREE_AND_SET_NULL(sGraph_Tilemap); @@ -863,7 +869,7 @@ static void AskUsePokeblock(void) { u8 stringBuffer[0x40]; - GetMonData(&gPlayerParty[sub_81672A4(sMenu->info.field_71)], MON_DATA_NICKNAME, stringBuffer); + GetMonData(&gPlayerParty[GetPartyIdFromSelectionId(sMenu->info.curSelection)], MON_DATA_NICKNAME, stringBuffer); StringGetEnd10(stringBuffer); StringAppend(stringBuffer, gText_GetsAPokeBlockQuestion); StringCopy(gStringVar4, stringBuffer); @@ -894,47 +900,47 @@ static s8 HandleAskUsePokeblockInput(void) return menuItem; } -static void sub_8166E24(void) +static void PrintFirstEnhancement(void) { DrawTextBorderOuter(WIN_TEXT, 151, 14); FillWindowPixelBuffer(WIN_TEXT, 17); - for (sInfo->field_53 = 0; sInfo->field_53 < FLAVOR_COUNT; sInfo->field_53++) + for (sInfo->statId = 0; sInfo->statId < FLAVOR_COUNT; sInfo->statId++) { - if (sInfo->field_61[sInfo->field_53] != 0) + if (sInfo->enhancements[sInfo->statId] != 0) break; } - if (sInfo->field_53 < FLAVOR_COUNT) - BufferEnhancedStatText(gStringVar4, sInfo->field_53, sInfo->field_61[sInfo->field_53]); + if (sInfo->statId < FLAVOR_COUNT) + BufferEnhancedStatText(gStringVar4, sInfo->statId, sInfo->enhancements[sInfo->statId]); else - BufferEnhancedStatText(gStringVar4, sInfo->field_53, 0); + BufferEnhancedStatText(gStringVar4, sInfo->statId, 0); PrintMenuWindowText(gStringVar4); PutWindowTilemap(WIN_TEXT); CopyWindowToVram(WIN_TEXT, 3); } -static bool8 sub_8166EDC(void) +static bool8 TryPrintNextEnhancement(void) { FillWindowPixelBuffer(WIN_TEXT, 17); while (1) { - sInfo->field_53++; - if (sInfo->field_53 < FLAVOR_COUNT) + sInfo->statId++; + if (sInfo->statId < FLAVOR_COUNT) { - if (sInfo->field_61[sInfo->field_53] != 0) + if (sInfo->enhancements[sInfo->statId] != 0) break; } else { - sInfo->field_53 = FLAVOR_COUNT; + sInfo->statId = FLAVOR_COUNT; return FALSE; } } - BufferEnhancedStatText(gStringVar4, sInfo->field_53, sInfo->field_61[sInfo->field_53]); + BufferEnhancedStatText(gStringVar4, sInfo->statId, sInfo->enhancements[sInfo->statId]); PrintMenuWindowText(gStringVar4); CopyWindowToVram(WIN_TEXT, 2); @@ -985,11 +991,11 @@ static void GetMonConditions(struct Pokemon *mon, u8 *data) { u16 i; - for (i = 0; i < 5; i++) - data[i] = GetMonData(mon, gUnknown_085DFCB0[i]); + for (i = 0; i < FLAVOR_COUNT; i++) + data[i] = GetMonData(mon, sMonDataConditions[i]); } -static void sub_8167054(struct Pokeblock *pokeblock, struct Pokemon *mon) +static void UpdateMonConditions(struct Pokeblock *pokeblock, struct Pokemon *mon) { u16 i; s16 cstat; @@ -997,17 +1003,17 @@ static void sub_8167054(struct Pokeblock *pokeblock, struct Pokemon *mon) if (GetMonData(mon, MON_DATA_SHEEN) != 255) { - sub_8167184(pokeblock, mon); + CalculatePokeblockEffectiveness(pokeblock, mon); for (i = 0; i < FLAVOR_COUNT; i++) { - data = GetMonData(mon, gUnknown_085DFCB0[i]); - cstat = data + sInfo->field_66[i]; + data = GetMonData(mon, sMonDataConditions[i]); + cstat = data + sInfo->pokeblockStatBoosts[i]; if (cstat < 0) cstat = 0; if (cstat > 255) cstat = 255; data = cstat; - SetMonData(mon, gUnknown_085DFCB0[i], &data); + SetMonData(mon, sMonDataConditions[i], &data); } cstat = (u8)(GetMonData(mon, MON_DATA_SHEEN)) + pokeblock->feel; @@ -1019,28 +1025,28 @@ static void sub_8167054(struct Pokeblock *pokeblock, struct Pokemon *mon) } } -static void sub_8167104(void) +static void CalculateConditionEnhancements(void) { u16 i; struct Pokemon *mon = gPlayerParty; - mon += sMenu->unk7FB0[sMenu->info.field_71 * 4 + 9]; + mon += sMenu->party[sMenu->info.curSelection].monId; - GetMonConditions(mon, sInfo->field_57); - sub_8167054(sInfo->pokeblock, mon); - GetMonConditions(mon, sInfo->field_5c); + GetMonConditions(mon, sInfo->conditionsPreBlock); + UpdateMonConditions(sInfo->pokeblock, mon); + GetMonConditions(mon, sInfo->conditionsPostBlock); for (i = 0; i < FLAVOR_COUNT; i++) - sInfo->field_61[i] = sInfo->field_5c[i] - sInfo->field_57[i]; + sInfo->enhancements[i] = sInfo->conditionsPostBlock[i] - sInfo->conditionsPreBlock[i]; } -static void sub_8167184(struct Pokeblock *pokeblock, struct Pokemon *mon) +static void CalculatePokeblockEffectiveness(struct Pokeblock *pokeblock, struct Pokemon *mon) { s8 i, direction, taste; - sInfo->field_66[0] = pokeblock->spicy; - sInfo->field_66[1] = pokeblock->sour; - sInfo->field_66[2] = pokeblock->bitter; - sInfo->field_66[3] = pokeblock->sweet; - sInfo->field_66[4] = pokeblock->dry; + sInfo->pokeblockStatBoosts[0] = pokeblock->spicy; + sInfo->pokeblockStatBoosts[1] = pokeblock->sour; + sInfo->pokeblockStatBoosts[2] = pokeblock->bitter; + sInfo->pokeblockStatBoosts[3] = pokeblock->sweet; + sInfo->pokeblockStatBoosts[4] = pokeblock->dry; if (gPokeblockGain > 0) direction = 1; @@ -1051,7 +1057,7 @@ static void sub_8167184(struct Pokeblock *pokeblock, struct Pokemon *mon) for (i = 0; i < FLAVOR_COUNT; i++) { - s16 amount = sInfo->field_66[i]; + s16 amount = sInfo->pokeblockStatBoosts[i]; s8 boost = amount / 10; if (amount % 10 >= 5) // round to the nearest @@ -1059,14 +1065,14 @@ static void sub_8167184(struct Pokeblock *pokeblock, struct Pokemon *mon) taste = GetMonFlavorRelation(mon, sFlavors[i]); if (taste == direction) - sInfo->field_66[i] += boost * taste; + sInfo->pokeblockStatBoosts[i] += boost * taste; } } static bool8 IsSheenMaxed(void) { - if (GetBoxOrPartyMonData(sMenu->party[sMenu->info.field_71].boxId, - sMenu->party[sMenu->info.field_71].monId, + if (GetBoxOrPartyMonData(sMenu->party[sMenu->info.curSelection].boxId, + sMenu->party[sMenu->info.curSelection].monId, MON_DATA_SHEEN, NULL) == 255) return TRUE; @@ -1074,7 +1080,7 @@ static bool8 IsSheenMaxed(void) return FALSE; } -static u8 sub_81672A4(u8 a0) +static u8 GetPartyIdFromSelectionId(u8 selectionId) { u8 i; @@ -1082,9 +1088,9 @@ static u8 sub_81672A4(u8 a0) { if (!GetMonData(&gPlayerParty[i], MON_DATA_IS_EGG)) { - if (a0 == 0) + if (selectionId == 0) return i; - a0--; + selectionId--; } } @@ -1106,12 +1112,12 @@ static u8 GetNumNonEggPartyMons(u8 partyCount) } // Unused -static u8 sub_8167324(u8 a0) +static u8 GetPartyIdFromSelectionId_(u8 selectionId) { - return sub_81672A4(a0); + return GetPartyIdFromSelectionId(selectionId); } -static void sub_8167338(void) +static void LoadAndCreateUpDownSprites(void) { u16 i, spriteId; @@ -1121,21 +1127,20 @@ static void sub_8167338(void) for (i = 0; i < FLAVOR_COUNT; i++) { - if (sInfo->field_61[i] != 0) + if (sInfo->enhancements[i] != 0) { - spriteId = CreateSprite(&sSpriteTemplate_UpDown, gUnknown_085DFD28[i][0], gUnknown_085DFD28[i][1], 0); + spriteId = CreateSprite(&sSpriteTemplate_UpDown, sUpDownCoordsOnGraph[i][0], sUpDownCoordsOnGraph[i][1], 0); if (spriteId != MAX_SPRITES) { - if (sInfo->field_61[i] != 0) - gSprites[spriteId].callback = sub_81673DC; - + if (sInfo->enhancements[i] != 0) // Always true here + gSprites[spriteId].callback = SpriteCB_UpDown; sInfo->numEnhancements++; } } } } -static void sub_81673DC(struct Sprite *sprite) +static void SpriteCB_UpDown(struct Sprite *sprite) { if (sprite->data[0] < 6) sprite->pos2.y -= 2; @@ -1149,7 +1154,7 @@ static void sub_81673DC(struct Sprite *sprite) } } -static void sub_8167420(void) +static void LoadPartyInfo(void) { u16 i; u16 numMons; @@ -1165,84 +1170,84 @@ static void sub_8167420(void) } } - sMenu->info.field_71 = 0; - sMenu->info.field_70 = numMons + 1; - sub_81674BC(); + sMenu->info.curSelection = 0; + sMenu->info.numSelections = numMons + 1; + LoadInitialMonInfo(); } -static void sub_81674BC(void) +static void LoadInitialMonInfo(void) { - s16 var, var2; + s16 nextSelection, prevSelection; - sub_816753C(sMenu->info.field_71, 0); - sMenu->field_7FB3 = 0; - sMenu->field_7FB4 = 1; - sMenu->field_7FB5 = 2; + LoadMonInfo(sMenu->info.curSelection, 0); + sMenu->curLoadId = 0; + sMenu->nextLoadId = 1; + sMenu->prevLoadId = 2; - var = sMenu->info.field_71 + 1; - if (var >= sMenu->info.field_70) - var = 0; + nextSelection = sMenu->info.curSelection + 1; + if (nextSelection >= sMenu->info.numSelections) + nextSelection = 0; - var2 = sMenu->info.field_71 - 1; - if (var2 < 0) - var2 = sMenu->info.field_70 - 1; + prevSelection = sMenu->info.curSelection - 1; + if (prevSelection < 0) + prevSelection = sMenu->info.numSelections - 1; - sub_816753C(var, 1); - sub_816753C(var2, 2); + LoadMonInfo(nextSelection, 1); + LoadMonInfo(prevSelection, 2); } -static void sub_816753C(s16 id1, u8 id2) +static void LoadMonInfo(s16 partyId, u8 loadId) { - u8 boxId = sMenu->party[id1].boxId; - u8 monId = sMenu->party[id1].monId; - u8 r6 = sMenu->info.field_70; - bool8 r8 = FALSE; + u8 boxId = sMenu->party[partyId].boxId; + u8 monId = sMenu->party[partyId].monId; + u8 numSelections = sMenu->info.numSelections; + bool8 excludesCancel = FALSE; // whether or not numSelections excludes Cancel from the count - sub_81D2ED4(sMenu->field_7B4D[id2], sMenu->field_7B95[id2], boxId, monId, id1, r6, r8); - sub_81D2F78(&sMenu->field_7C58, sMenu->unk7FB0, boxId, monId, id1, id2, r6, r8); - sub_81D3094(sMenu->field_304[id2], sMenu->field_4[id2], boxId, monId, id1, r6, r8); + GetConditionMenuMonNameAndLocString(sMenu->locationStrings[loadId], sMenu->monNameStrings[loadId], boxId, monId, partyId, numSelections, excludesCancel); + GetConditionMenuMonConditions(&sMenu->field_7C58, sMenu->numSparkles, boxId, monId, partyId, loadId, numSelections, excludesCancel); + GetConditionMenuMonGfx(sMenu->partySheets[loadId], sMenu->partyPalettes[loadId], boxId, monId, partyId, numSelections, excludesCancel); } -static void sub_8167608(u8 arg0) +static void UpdateMonPic(u8 loadId) { u8 spriteId; struct SpriteTemplate spriteTemplate; struct SpriteSheet spriteSheet; struct SpritePalette spritePal; - if (sMenu->field_7B10 == 0xFF) + if (sMenu->curMonSpriteId == 0xFF) { - sub_81D31D0(&spriteSheet, &spriteTemplate, &spritePal); - spriteSheet.data = sMenu->field_304[arg0]; - spritePal.data = sMenu->field_4[arg0]; - sMenu->field_7B12 = LoadSpritePalette(&spritePal); - sMenu->field_7B14 = LoadSpriteSheet(&spriteSheet); + LoadConditionMonPicTemplate(&spriteSheet, &spriteTemplate, &spritePal); + spriteSheet.data = sMenu->partySheets[loadId]; + spritePal.data = sMenu->partyPalettes[loadId]; + sMenu->curMonPalette = LoadSpritePalette(&spritePal); + sMenu->curMonSheet = LoadSpriteSheet(&spriteSheet); spriteId = CreateSprite(&spriteTemplate, 38, 104, 0); - sMenu->field_7B10 = spriteId; + sMenu->curMonSpriteId = spriteId; if (spriteId == MAX_SPRITES) { - FreeSpriteTilesByTag(100); - FreeSpritePaletteByTag(100); - sMenu->field_7B10 = 0xFF; + FreeSpriteTilesByTag(TAG_SPMENU_CONDITION_MON); + FreeSpritePaletteByTag(TAG_SPMENU_CONDITION_MON); + sMenu->curMonSpriteId = 0xFF; } else { - sMenu->field_7B10 = spriteId; - gSprites[sMenu->field_7B10].callback = sub_8168168; - gSprites[sMenu->field_7B10].pos2.y -= 34; - sMenu->field_7B18 = (void*)(OBJ_VRAM0 + (sMenu->field_7B14 * 32)); - sMenu->field_7B12 = (sMenu->field_7B12 * 16) + 0x100; + sMenu->curMonSpriteId = spriteId; + gSprites[sMenu->curMonSpriteId].callback = SpriteCB_MonPic; + gSprites[sMenu->curMonSpriteId].pos2.y -= 34; + sMenu->curMonTileStart = (void*)(OBJ_VRAM0 + (sMenu->curMonSheet * 32)); + sMenu->curMonPalette = (sMenu->curMonPalette * 16) + 0x100; } } else { do {} while(0); // Only needed to match, feel free to remove. - DmaCopy16Defvars(3, sMenu->field_304[arg0], sMenu->field_7B18, 0x800); - LoadPalette(sMenu->field_4[arg0], sMenu->field_7B12, 32); + DmaCopy16Defvars(3, sMenu->partySheets[loadId], sMenu->curMonTileStart, 0x800); + LoadPalette(sMenu->partyPalettes[loadId], sMenu->curMonPalette, 32); } } -static void sub_8167760(void) +static void LoadAndCreateSelectionIcons(void) { u16 i, spriteId; struct SpriteSheet spriteSheets[4]; @@ -1255,48 +1260,51 @@ static void sub_8167760(void) LoadSpriteSheets(spriteSheets); LoadSpritePalettes(spritePals); - for (i = 0; i < sMenu->info.field_70 - 1; i++) + // Fill pokeball selection icons up to number in party + for (i = 0; i < sMenu->info.numSelections - 1; i++) { spriteId = CreateSprite(&spriteTemplate, 226, (i * 20) + 8, 0); if (spriteId != MAX_SPRITES) { - sMenu->field_7B06[i] = spriteId; + sMenu->selectionIconSpriteIds[i] = spriteId; gSprites[spriteId].data[0] = i; - gSprites[spriteId].callback = sub_8168180; + gSprites[spriteId].callback = SpriteCB_SelectionIconPokeball; } else { - sMenu->field_7B06[i] = -1; + sMenu->selectionIconSpriteIds[i] = -1; } } - spriteTemplate.tileTag = 103; - for (; i < 6; i++) + // Fill placeholder icons for remaining (empty) party slots + spriteTemplate.tileTag = TAG_SPMENU_CONDITION_BALL_PLACEHOLDER; + for (; i < PARTY_SIZE; i++) { spriteId = CreateSprite(&spriteTemplate, 230, (i * 20) + 8, 0); if (spriteId != MAX_SPRITES) { - sMenu->field_7B06[i] = spriteId; + sMenu->selectionIconSpriteIds[i] = spriteId; gSprites[spriteId].oam.size = 0; } else { - sMenu->field_7B06[i] = -1; + sMenu->selectionIconSpriteIds[i] = -1; } } - spriteTemplate.tileTag = 102; - spriteTemplate.callback = sub_81681B4; + // Add cancel selection icon at bottom + spriteTemplate.tileTag = TAG_SPMENU_CONDITION_CANCEL; + spriteTemplate.callback = SpriteCB_SelectionIconCancel; spriteId = CreateSprite(&spriteTemplate, 222, (i * 20) + 8, 0); if (spriteId != MAX_SPRITES) { - sMenu->field_7B06[i] = spriteId; + sMenu->selectionIconSpriteIds[i] = spriteId; gSprites[spriteId].oam.shape = SPRITE_SHAPE(32x16); gSprites[spriteId].oam.size = SPRITE_SIZE(32x16); } else { - sMenu->field_7B06[i] = -1; + sMenu->selectionIconSpriteIds[i] = -1; } LoadConditionSparkle(&spriteSheet2, &spritePal2); @@ -1304,7 +1312,7 @@ static void sub_8167760(void) LoadSpritePalette(&spritePal2); } -static bool8 LoadUsePokeblockGfx(void) +static bool8 LoadUsePokeblockMenuGfx(void) { switch (sMenu->info.helperState) { @@ -1337,7 +1345,7 @@ static bool8 LoadUsePokeblockGfx(void) break; case 5: LoadPalette(sMonFrame_Pal, 208, 32); - sMenu->field_7B0E = -80; + sMenu->curMonXOffset = -80; break; case 6: LZ77UnCompVram(gUsePokeblockGraph_Gfx, sGraph_Gfx); @@ -1360,7 +1368,7 @@ static bool8 LoadUsePokeblockGfx(void) case 11: LoadBgTilemap(2, sMenu->tilemapBuffer, 1280, 0); LoadPalette(gConditionGraphData_Pal, 48, 32); - LoadPalette(gUnknown_08623208, 240, 32); + LoadPalette(gConditionText_Pal, 240, 32); sub_81D21DC(2); break; default: @@ -1372,7 +1380,7 @@ static bool8 LoadUsePokeblockGfx(void) return TRUE; } -static void UpdateMonInfoText(u16 arg0, bool8 firstPrint) +static void UpdateMonInfoText(u16 loadId, bool8 firstPrint) { u8 partyIndex; u8 nature; @@ -1380,14 +1388,14 @@ static void UpdateMonInfoText(u16 arg0, bool8 firstPrint) FillWindowPixelBuffer(WIN_NAME, PIXEL_FILL(0)); FillWindowPixelBuffer(WIN_NATURE, PIXEL_FILL(0)); - if (sMenu->info.field_71 != sMenu->info.field_70 - 1) + if (sMenu->info.curSelection != sMenu->info.numSelections - 1) { - AddTextPrinterParameterized(WIN_NAME, 1, sMenu->field_7B95[arg0], 0, 1, 0, NULL); - partyIndex = sub_81672A4(sMenu->info.field_71); + AddTextPrinterParameterized(WIN_NAME, 1, sMenu->monNameStrings[loadId], 0, 1, 0, NULL); + partyIndex = GetPartyIdFromSelectionId(sMenu->info.curSelection); nature = GetNature(&gPlayerParty[partyIndex]); - str = StringCopy(sMenu->info.field_7A, gText_NatureSlash); + str = StringCopy(sMenu->info.natureText, gText_NatureSlash); str = StringCopy(str, gNatureNamePointers[nature]); - AddTextPrinterParameterized3(WIN_NATURE, 1, 2, 1, sNatureTextColors, 0, sMenu->info.field_7A); + AddTextPrinterParameterized3(WIN_NATURE, 1, 2, 1, sNatureTextColors, 0, sMenu->info.natureText); } if (firstPrint) @@ -1402,89 +1410,99 @@ static void UpdateMonInfoText(u16 arg0, bool8 firstPrint) } } -static void sub_8167CA0(bool8 arg0) +static void UpdateSelection(bool8 up) { - u16 var0; - bool32 r8, r4; + u16 newLoadId; + bool32 startedOnMon, endedOnMon; - if (arg0) - var0 = sMenu->field_7FB5; + if (up) + newLoadId = sMenu->prevLoadId; else - var0 = sMenu->field_7FB4; + newLoadId = sMenu->nextLoadId; sub_81D1F84( &sMenu->field_7C58, - sMenu->field_7C58.unk14[sMenu->field_7FB3], - sMenu->field_7C58.unk14[var0]); + sMenu->field_7C58.unk14[sMenu->curLoadId], + sMenu->field_7C58.unk14[newLoadId]); - r8 = (sMenu->info.field_71 ^ (sMenu->info.field_70 - 1)) ? 1 : 0; - if (arg0) + if (sMenu->info.curSelection == sMenu->info.numSelections - 1) + startedOnMon = FALSE; // moving off of Cancel + else + startedOnMon = TRUE; + + if (up) { - sMenu->field_7FB5 = sMenu->field_7FB4; - sMenu->field_7FB4 = sMenu->field_7FB3; - sMenu->field_7FB3 = var0; - sMenu->field_7FB6 = sMenu->field_7FB5; + sMenu->prevLoadId = sMenu->nextLoadId; // temporarily store nextLoadId, prevLoadId no longer needed + sMenu->nextLoadId = sMenu->curLoadId; + sMenu->curLoadId = newLoadId; + sMenu->toLoadId = sMenu->prevLoadId; // next load will be the mon that's one up from new selection - sMenu->info.field_71 = (sMenu->info.field_71 == 0) - ? sMenu->info.field_70 - 1 - : sMenu->info.field_71 - 1; + // Check for wrap to bottom of list + sMenu->info.curSelection = (sMenu->info.curSelection == 0) + ? sMenu->info.numSelections - 1 + : sMenu->info.curSelection - 1; - sMenu->field_7B4C = (sMenu->info.field_71 == 0) - ? sMenu->info.field_70 - 1 - : sMenu->info.field_71 - 1; + sMenu->field_7B4C = (sMenu->info.curSelection == 0) + ? sMenu->info.numSelections - 1 + : sMenu->info.curSelection - 1; } else { - sMenu->field_7FB4 = sMenu->field_7FB5; - sMenu->field_7FB5 = sMenu->field_7FB3; - sMenu->field_7FB3 = var0; - sMenu->field_7FB6 = sMenu->field_7FB4; + sMenu->nextLoadId = sMenu->prevLoadId; // temporarily store prevLoadId, nextLoadId no longer needed + sMenu->prevLoadId = sMenu->curLoadId; + sMenu->curLoadId = newLoadId; + sMenu->toLoadId = sMenu->nextLoadId; // next load will be the mon that's one down from new selection - sMenu->info.field_71 = (sMenu->info.field_71 < sMenu->info.field_70 - 1) - ? sMenu->info.field_71 + 1 + // Check for wrap to top of list + sMenu->info.curSelection = (sMenu->info.curSelection < sMenu->info.numSelections - 1) + ? sMenu->info.curSelection + 1 : 0; - sMenu->field_7B4C = (sMenu->info.field_71 < sMenu->info.field_70 - 1) - ? sMenu->info.field_71 + 1 + sMenu->field_7B4C = (sMenu->info.curSelection < sMenu->info.numSelections - 1) + ? sMenu->info.curSelection + 1 : 0; } - r4 = (sMenu->info.field_71 ^ (sMenu->info.field_70 - 1)) ? 1 : 0; + if (sMenu->info.curSelection == sMenu->info.numSelections - 1) + endedOnMon = FALSE; // moving onto Cancel + else + endedOnMon = TRUE; + DestroyConditionSparkleSprites(sMenu->sparkles); - if (!r8) - sMenu->info.unk74 = sub_8167EA4; - else if (!r4) - sMenu->info.unk74 = sub_8167FA4; + if (!startedOnMon) + sMenu->info.loadNewSelection = LoadNewSelection_CancelToMon; + else if (!endedOnMon) + sMenu->info.loadNewSelection = LoadNewSelection_MonToCancel; else - sMenu->info.unk74 = sub_8168048; + sMenu->info.loadNewSelection = LoadNewSelection_MonToMon; } -static u8 sub_8167EA4(void) +static bool8 LoadNewSelection_CancelToMon(void) { switch (sMenu->info.helperState) { case 0: - sub_8167608(sMenu->field_7FB3); + UpdateMonPic(sMenu->curLoadId); sMenu->info.helperState++; break; case 1: - UpdateMonInfoText(sMenu->field_7FB3, FALSE); + UpdateMonInfoText(sMenu->curLoadId, FALSE); sMenu->info.helperState++; break; case 2: - if (!sub_81D3178(&sMenu->field_7C58, &sMenu->field_7B0E)) + if (!sub_81D3178(&sMenu->field_7C58, &sMenu->curMonXOffset)) { - sub_816753C(sMenu->field_7B4C, sMenu->field_7FB6); + LoadMonInfo(sMenu->field_7B4C, sMenu->toLoadId); sMenu->info.helperState++; } break; case 3: ResetConditionSparkleSprites(sMenu->sparkles); - if (sMenu->info.field_71 != sMenu->info.field_70 - 1) + if (sMenu->info.curSelection != sMenu->info.numSelections - 1) { - u8 var0 = sMenu->unk7FB0[sMenu->field_7FB3]; - CreateConditionSparkleSprites(sMenu->sparkles, sMenu->field_7B10, var0); + u8 numSparkles = sMenu->numSparkles[sMenu->curLoadId]; + CreateConditionSparkleSprites(sMenu->sparkles, sMenu->curMonSpriteId, numSparkles); } sMenu->info.helperState = 0; @@ -1494,20 +1512,20 @@ static u8 sub_8167EA4(void) return TRUE; } -static u8 sub_8167FA4(void) +static bool8 LoadNewSelection_MonToCancel(void) { switch (sMenu->info.helperState) { case 0: - if (!sub_81D31A4(&sMenu->field_7C58, &sMenu->field_7B0E)) + if (!sub_81D31A4(&sMenu->field_7C58, &sMenu->curMonXOffset)) sMenu->info.helperState++; break; case 1: - UpdateMonInfoText(sMenu->field_7FB3, FALSE); + UpdateMonInfoText(sMenu->curLoadId, FALSE); sMenu->info.helperState++; break; case 2: - sub_816753C(sMenu->field_7B4C, sMenu->field_7FB6); + LoadMonInfo(sMenu->field_7B4C, sMenu->toLoadId); sMenu->info.helperState++; break; case 3: @@ -1518,35 +1536,35 @@ static u8 sub_8167FA4(void) return TRUE; } -static u8 sub_8168048(void) +static bool8 LoadNewSelection_MonToMon(void) { switch (sMenu->info.helperState) { case 0: sub_81D2074(&sMenu->field_7C58); - if (!sub_81D3150(&sMenu->field_7B0E)) + if (!sub_81D3150(&sMenu->curMonXOffset)) { - sub_8167608(sMenu->field_7FB3); + UpdateMonPic(sMenu->curLoadId); sMenu->info.helperState++; } break; case 1: - UpdateMonInfoText(sMenu->field_7FB3, FALSE); + UpdateMonInfoText(sMenu->curLoadId, FALSE); sMenu->info.helperState++; break; case 2: - if (!sub_81D3178(&sMenu->field_7C58, &sMenu->field_7B0E)) + if (!sub_81D3178(&sMenu->field_7C58, &sMenu->curMonXOffset)) { - sub_816753C(sMenu->field_7B4C, sMenu->field_7FB6); + LoadMonInfo(sMenu->field_7B4C, sMenu->toLoadId); sMenu->info.helperState++; } break; case 3: ResetConditionSparkleSprites(sMenu->sparkles); - if (sMenu->info.field_71 != sMenu->info.field_70 - 1) + if (sMenu->info.curSelection != sMenu->info.numSelections - 1) { - u8 var0 = sMenu->unk7FB0[sMenu->field_7FB3]; - CreateConditionSparkleSprites(sMenu->sparkles, sMenu->field_7B10, var0); + u8 numSparkles = sMenu->numSparkles[sMenu->curLoadId]; + CreateConditionSparkleSprites(sMenu->sparkles, sMenu->curMonSpriteId, numSparkles); } sMenu->info.helperState = 0; @@ -1556,37 +1574,40 @@ static u8 sub_8168048(void) return TRUE; } -static void sub_8168168(struct Sprite *sprite) +static void SpriteCB_MonPic(struct Sprite *sprite) { - sprite->pos1.x = sMenu->field_7B0E + 38; + sprite->pos1.x = sMenu->curMonXOffset + 38; } -static void sub_8168180(struct Sprite *sprite) +static void SpriteCB_SelectionIconPokeball(struct Sprite *sprite) { - if (sprite->data[0] == sMenu->info.field_71) + if (sprite->data[0] == sMenu->info.curSelection) StartSpriteAnim(sprite, 0); else StartSpriteAnim(sprite, 1); } -static void sub_81681B4(struct Sprite *sprite) +static void SpriteCB_SelectionIconCancel(struct Sprite *sprite) { - if (sMenu->info.field_71 == sMenu->info.field_70 - 1) - sprite->oam.paletteNum = IndexOfSpritePaletteTag(101); + if (sMenu->info.curSelection == sMenu->info.numSelections - 1) + sprite->oam.paletteNum = IndexOfSpritePaletteTag(TAG_SPMENU_CONDITION_BALL); else - sprite->oam.paletteNum = IndexOfSpritePaletteTag(102); + sprite->oam.paletteNum = IndexOfSpritePaletteTag(TAG_SPMENU_CONDITION_CANCEL); } -static void sub_81681F4(u8 monIndex) +// Calculate the max id for sparkles/stars that appear around the pokemon on the condition screen +// All pokemon start with 1 sparkle (added by CreateConditionSparkleSprites), so the number here +1 +// is the total number of sparkles that appear +static void CalculateNumAdditionalSparkles(u8 monIndex) { u8 sheen = GetMonData(&gPlayerParty[monIndex], MON_DATA_SHEEN); - sMenu->unk7FB0[sMenu->field_7FB3] = (sheen != 255) - ? sheen / 29 - : 9; + sMenu->numSparkles[sMenu->curLoadId] = (sheen != 255) + ? sheen / (255 / (MAX_CONDITION_SPARKLES - 1) + 1) + : MAX_CONDITION_SPARKLES - 1; } -static void sub_8168248(void) +static void LoadConditionGfx(void) { struct CompressedSpriteSheet spriteSheet; struct SpritePalette spritePalette; @@ -1599,7 +1620,7 @@ static void sub_8168248(void) LoadSpritePalette(&spritePalette); } -static void sub_8168294(void) +static void CreateConditionSprite(void) { u16 i; s16 xDiff, xStart; @@ -1622,16 +1643,16 @@ static void sub_8168294(void) } } -static bool8 sub_8168328(void) +static bool8 LoadConditionTitle(void) { switch (sMenu->info.helperState) { case 0: - sub_8168248(); + LoadConditionGfx(); sMenu->info.helperState++; return TRUE; case 1: - sub_8168294(); + CreateConditionSprite(); sMenu->info.helperState = 0; return FALSE; } @@ -1639,7 +1660,8 @@ static bool8 sub_8168328(void) return FALSE; } -static void sub_8168374(struct Sprite *sprite) +// Literally the word "Condition", the title block that appears over the mon icon +static void SpriteCB_Condition(struct Sprite *sprite) { s16 prevX = sprite->pos1.x; From 70851d908347d1c7c8970b7bf1c1ccb0b2ca9c00 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Tue, 11 Aug 2020 15:45:58 -0400 Subject: [PATCH 055/101] Add MAP_SCRIPT descriptions --- include/constants/map_scripts.h | 35 +++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/include/constants/map_scripts.h b/include/constants/map_scripts.h index 26de3ebc67..68d3609551 100644 --- a/include/constants/map_scripts.h +++ b/include/constants/map_scripts.h @@ -1,6 +1,41 @@ #ifndef GUARD_CONSTANTS_MAP_SCRIPTS_H #define GUARD_CONSTANTS_MAP_SCRIPTS_H +/* + IDs for special scripts that can be run for a particular map. + For the functions that handle when they are run, see these constants' uses in src/script.c + + Below describes when a script of this kind will be called, and what it typically does. + They are numbered in the order that they will be called when entering a map (from a warp or camera transition). + NOTE: These descriptions are just of what they generally do, not what they always or have to do + + 3. ON_LOAD: Run after the layout is loaded (but not drawn yet). + Almost exclusively used to set metatiles on the map before it's first drawn + + 6. ON_FRAME_TABLE: Run every frame after the map has faded in, before player input is processed. + This is a table of scripts that each run if their condition is satisfied. + Used to trigger an event, such as the player exiting the cable car or the SS Tidal sailor announcing progress + + 2. ON_TRANSITION: Run during the transition to the map + Used to set map-specific flags/vars, update object positions/movement types, set weather, etc + + 5. ON_WARP_INTO_MAP_TABLE: Run after the map's objects are loaded. + This is a table of scripts that each run if their condition is satisfied. + Used to add objects to the scene or update something about the player as they warp in (e.g. their facing dir or visibility) + Note that ON_TRANSITION may also handle object visibility, but would do so by modifying a flag or var + + 4. ON_RESUME: Run at the end of map load, and again any time upon returning to field (e.g. exiting the Bag menu, or finishing a battle) + Used to hide defeated static pokemon, or maintain some map state (e.g. the Trainer Hill timer, or the cycling road challenge) + In some maps this takes the metatile setting job of ON_LOAD + + 1. ON_DIVE_WARP: Run after the player chooses to dive/emerge. + Only used once, to determine whether or not the player should emerge in the Sealed Chamber + + x. ON_RETURN_TO_FIELD: Run exlusively upon returning to the field, shortly after ON_RESUME (as opposed to ON_RESUME, which also runs once on entering the map) + Used rarely, when something must only happen on reload (e.g. making sure Mew is above the grass after battling it on Faraway Island) + +*/ + #define MAP_SCRIPT_ON_LOAD 1 #define MAP_SCRIPT_ON_FRAME_TABLE 2 #define MAP_SCRIPT_ON_TRANSITION 3 From 4e20e2a3eac3ad5a1202689a937ae2a8a045ded4 Mon Sep 17 00:00:00 2001 From: PokeCodec Date: Mon, 3 Aug 2020 14:21:51 -0400 Subject: [PATCH 056/101] Match CopyGlyphToWindow --- gflib/text.c | 729 +-------------------------------------------------- 1 file changed, 11 insertions(+), 718 deletions(-) diff --git a/gflib/text.c b/gflib/text.c index 5d407e5e4c..f4b5444e8b 100644 --- a/gflib/text.c +++ b/gflib/text.c @@ -462,13 +462,10 @@ u8 GetLastTextColor(u8 colorType) } } -#ifdef NONMATCHING - #define GLYPH_COPY(fromY_, toY_, fromX_, toX_, unk) \ { \ - u32 i, j, *ptr, toY, fromX, toX, r5, toOrr, bits; \ + u32 i, j, *ptr, toY, fromX, toX, r5, bits; \ u8 *dst; \ - \ j = fromX_; \ i = fromY_; \ ptr = unk; \ @@ -478,27 +475,29 @@ u8 GetLastTextColor(u8 colorType) \ for (; i < toY; i++) \ { \ + asm("":::"sl"); \ r5 = *(ptr++); \ for (j = fromX; j < toX; j++) \ { \ - toOrr = r5 & 0xF; \ + const u32 toOrr = r5 & 0xF; \ if (toOrr) \ { \ - dst = windowTiles + ((j / 8) * 32) + ((j & 7) / 2) + ((i / 8) * widthOffset) + ((i & 7) * 4); \ + dst = windowTiles + ((j >> 3) * 32) + ((j & 7) >> 1) + ((i >> 3) * widthOffset) + ((i & 7) * 4); \ bits = ((j & 1) << 2); \ - *dst = ((toOrr << bits) | (*dst & (0xF0 >> bits))); \ + *dst = (toOrr << bits) | ((0xF0 >> bits) & *dst); \ } \ r5 >>= 4; \ } \ } \ } + void CopyGlyphToWindow(struct TextPrinter *textPrinter) { struct Window *win; struct WindowTemplate *winTempl; struct Struct_03002F90 *unkStruct; - u32 currX, widthOffset, currY; + u32 currX, currY, widthOffset; s32 r4, r0; u8 *windowTiles; @@ -519,9 +518,9 @@ void CopyGlyphToWindow(struct TextPrinter *textPrinter) windowTiles = win->tileData; widthOffset = winTempl->width * 32; - if (r4 <= 8) + if (r4 < 9) { - if (r0 <= 8) + if (r0 < 9) { GLYPH_COPY(currY, currY + r0, currX, currX + r4, unkStruct->unk0); } @@ -536,9 +535,9 @@ void CopyGlyphToWindow(struct TextPrinter *textPrinter) } else { - if (r0 <= 8) + u32 temp; + if (r0 < 9) { - u32 temp; GLYPH_COPY(currY, currY + r0, currX, currX + 8, unkStruct->unk0); temp = currX + 8; @@ -546,7 +545,6 @@ void CopyGlyphToWindow(struct TextPrinter *textPrinter) } else { - u32 temp; GLYPH_COPY(currY, currY + 8, currX, currX + 8, unkStruct->unk0); temp = currX + 8; @@ -563,711 +561,6 @@ void CopyGlyphToWindow(struct TextPrinter *textPrinter) } } } -#else -NAKED -void CopyGlyphToWindow(struct TextPrinter *x) -{ - asm("push {r4-r7,lr}\n\ - mov r7, r10\n\ - mov r6, r9\n\ - mov r5, r8\n\ - push {r5-r7}\n\ - sub sp, #0x8C\n\ - add r3, r0, #0\n\ - ldrb r1, [r3, #0x4]\n\ - lsl r0, r1, #1\n\ - add r0, r1\n\ - lsl r0, #2\n\ - ldr r1, =gWindows\n\ - add r1, r0, r1\n\ - add r2, r1, #0\n\ - ldrb r7, [r1, #0x3]\n\ - lsl r0, r7, #3\n\ - ldrb r6, [r3, #0x8]\n\ - sub r4, r0, r6\n\ - ldr r5, =gUnknown_03002F90\n\ - add r0, r5, #0\n\ - add r0, #0x80\n\ - ldrb r0, [r0]\n\ - cmp r4, r0\n\ - ble _08004DD2\n\ - add r4, r0, #0\n\ -_08004DD2:\n\ - ldrb r0, [r1, #0x4]\n\ - lsl r0, #3\n\ - ldrb r3, [r3, #0x9]\n\ - sub r0, r3\n\ - add r1, r5, #0\n\ - add r1, #0x81\n\ - ldrb r1, [r1]\n\ - cmp r0, r1\n\ - ble _08004DE6\n\ - add r0, r1, #0\n\ -_08004DE6:\n\ - str r6, [sp]\n\ - mov r8, r3\n\ - add r3, r5, #0\n\ - ldr r2, [r2, #0x8]\n\ - mov r9, r2\n\ - lsl r1, r7, #5\n\ - str r1, [sp, #0x4]\n\ - cmp r4, #0x8\n\ - ble _08004DFA\n\ - b _08004F94\n\ -_08004DFA:\n\ - cmp r0, #0x8\n\ - bgt _08004E84\n\ - mov r1, r8\n\ - str r3, [sp, #0x8]\n\ - add r2, r6, #0\n\ - add r2, r4\n\ - mov r8, r2\n\ - add r0, r1, r0\n\ - str r0, [sp, #0xC]\n\ - str r6, [sp, #0x10]\n\ - cmp r1, r0\n\ - bcc _08004E14\n\ - b _080052AA\n\ -_08004E14:\n\ - ldr r3, [sp, #0x8]\n\ - ldm r3!, {r5}\n\ - str r3, [sp, #0x8]\n\ - ldr r4, [sp, #0x10]\n\ - add r0, r1, #0x1\n\ - mov r10, r0\n\ - cmp r4, r8\n\ - bcs _08004E72\n\ - mov r2, #0x7\n\ - mov r12, r2\n\ - lsr r0, r1, #3\n\ - ldr r2, [sp, #0x4]\n\ - add r3, r0, #0\n\ - mul r3, r2\n\ - add r7, r3, #0\n\ - mov r3, r12\n\ - and r1, r3\n\ - lsl r6, r1, #2\n\ -_08004E38:\n\ - add r3, r5, #0\n\ - mov r0, #0xF\n\ - and r3, r0\n\ - cmp r3, #0\n\ - beq _08004E6A\n\ - lsr r2, r4, #3\n\ - lsl r2, #5\n\ - add r2, r9\n\ - add r0, r4, #0\n\ - mov r1, r12\n\ - and r0, r1\n\ - lsr r0, #1\n\ - add r2, r0\n\ - add r2, r7\n\ - add r2, r6\n\ - mov r1, #0x1\n\ - and r1, r4\n\ - lsl r1, #2\n\ - lsl r3, r1\n\ - mov r0, #0xF0\n\ - asr r0, r1\n\ - ldrb r1, [r2]\n\ - and r0, r1\n\ - orr r3, r0\n\ - strb r3, [r2]\n\ -_08004E6A:\n\ - lsr r5, #4\n\ - add r4, #0x1\n\ - cmp r4, r8\n\ - bcc _08004E38\n\ -_08004E72:\n\ - mov r1, r10\n\ - ldr r2, [sp, #0xC]\n\ - cmp r1, r2\n\ - bcc _08004E14\n\ - b _080052AA\n\ - .pool\n\ -_08004E84:\n\ - mov r1, r8\n\ - str r3, [sp, #0x14]\n\ - ldr r3, [sp]\n\ - add r3, r4\n\ - mov r12, r3\n\ - add r2, r1, #0\n\ - add r2, #0x8\n\ - str r2, [sp, #0x18]\n\ - ldr r3, [sp]\n\ - str r3, [sp, #0x1C]\n\ - mov r2, r12\n\ - str r2, [sp, #0x74]\n\ - ldr r3, [sp, #0x18]\n\ - str r3, [sp, #0x88]\n\ - sub r0, #0x8\n\ - str r0, [sp, #0x80]\n\ - cmp r1, r3\n\ - bcs _08004F0E\n\ -_08004EA8:\n\ - ldr r0, [sp, #0x14]\n\ - ldm r0!, {r5}\n\ - str r0, [sp, #0x14]\n\ - ldr r4, [sp, #0x1C]\n\ - add r2, r1, #0x1\n\ - mov r8, r2\n\ - cmp r4, r12\n\ - bcs _08004F06\n\ - mov r3, #0x7\n\ - mov r10, r3\n\ - lsr r0, r1, #3\n\ - ldr r3, [sp, #0x4]\n\ - add r2, r0, #0\n\ - mul r2, r3\n\ - add r7, r2, #0\n\ - mov r0, r10\n\ - and r1, r0\n\ - lsl r6, r1, #2\n\ -_08004ECC:\n\ - add r3, r5, #0\n\ - mov r1, #0xF\n\ - and r3, r1\n\ - cmp r3, #0\n\ - beq _08004EFE\n\ - lsr r2, r4, #3\n\ - lsl r2, #5\n\ - add r2, r9\n\ - add r0, r4, #0\n\ - mov r1, r10\n\ - and r0, r1\n\ - lsr r0, #1\n\ - add r2, r0\n\ - add r2, r7\n\ - add r2, r6\n\ - mov r1, #0x1\n\ - and r1, r4\n\ - lsl r1, #2\n\ - lsl r3, r1\n\ - mov r0, #0xF0\n\ - asr r0, r1\n\ - ldrb r1, [r2]\n\ - and r0, r1\n\ - orr r3, r0\n\ - strb r3, [r2]\n\ -_08004EFE:\n\ - lsr r5, #4\n\ - add r4, #0x1\n\ - cmp r4, r12\n\ - bcc _08004ECC\n\ -_08004F06:\n\ - mov r1, r8\n\ - ldr r2, [sp, #0x18]\n\ - cmp r1, r2\n\ - bcc _08004EA8\n\ -_08004F0E:\n\ - ldr r1, [sp, #0x88]\n\ - ldr r3, =gUnknown_03002F90 + 0x40\n\ - str r3, [sp, #0x20]\n\ - ldr r0, [sp, #0x74]\n\ - mov r8, r0\n\ - ldr r2, [sp, #0x80]\n\ - add r2, r1, r2\n\ - str r2, [sp, #0x24]\n\ - ldr r3, [sp]\n\ - str r3, [sp, #0x28]\n\ - cmp r1, r2\n\ - bcc _08004F28\n\ - b _080052AA\n\ -_08004F28:\n\ - ldr r0, [sp, #0x20]\n\ - ldm r0!, {r5}\n\ - str r0, [sp, #0x20]\n\ - ldr r4, [sp, #0x28]\n\ - add r2, r1, #0x1\n\ - mov r10, r2\n\ - cmp r4, r8\n\ - bcs _08004F86\n\ - mov r3, #0x7\n\ - mov r12, r3\n\ - lsr r0, r1, #3\n\ - ldr r3, [sp, #0x4]\n\ - add r2, r0, #0\n\ - mul r2, r3\n\ - add r7, r2, #0\n\ - mov r0, r12\n\ - and r1, r0\n\ - lsl r6, r1, #2\n\ -_08004F4C:\n\ - add r3, r5, #0\n\ - mov r1, #0xF\n\ - and r3, r1\n\ - cmp r3, #0\n\ - beq _08004F7E\n\ - lsr r2, r4, #3\n\ - lsl r2, #5\n\ - add r2, r9\n\ - add r0, r4, #0\n\ - mov r1, r12\n\ - and r0, r1\n\ - lsr r0, #1\n\ - add r2, r0\n\ - add r2, r7\n\ - add r2, r6\n\ - mov r1, #0x1\n\ - and r1, r4\n\ - lsl r1, #2\n\ - lsl r3, r1\n\ - mov r0, #0xF0\n\ - asr r0, r1\n\ - ldrb r1, [r2]\n\ - and r0, r1\n\ - orr r3, r0\n\ - strb r3, [r2]\n\ -_08004F7E:\n\ - lsr r5, #4\n\ - add r4, #0x1\n\ - cmp r4, r8\n\ - bcc _08004F4C\n\ -_08004F86:\n\ - mov r1, r10\n\ - ldr r2, [sp, #0x24]\n\ - cmp r1, r2\n\ - bcc _08004F28\n\ - b _080052AA\n\ - .pool\n\ -_08004F94:\n\ - cmp r0, #0x8\n\ - ble _08004F9A\n\ - b _080050A4\n\ -_08004F9A:\n\ - mov r1, r8\n\ - str r3, [sp, #0x2C]\n\ - ldr r3, [sp]\n\ - add r3, #0x8\n\ - mov r12, r3\n\ - add r0, r8\n\ - str r0, [sp, #0x30]\n\ - ldr r0, [sp]\n\ - str r0, [sp, #0x34]\n\ - ldr r2, [sp, #0x30]\n\ - str r2, [sp, #0x78]\n\ - str r3, [sp, #0x84]\n\ - sub r4, #0x8\n\ - str r4, [sp, #0x7C]\n\ - cmp r8, r2\n\ - bcs _0800501C\n\ -_08004FBA:\n\ - ldr r0, [sp, #0x2C]\n\ - ldm r0!, {r5}\n\ - str r0, [sp, #0x2C]\n\ - ldr r4, [sp, #0x34]\n\ - add r2, r1, #0x1\n\ - mov r10, r2\n\ - cmp r4, r12\n\ - bcs _08005014\n\ - lsr r0, r1, #3\n\ - ldr r2, [sp, #0x4]\n\ - add r3, r0, #0\n\ - mul r3, r2\n\ - add r7, r3, #0\n\ - mov r3, #0x7\n\ - and r1, r3\n\ - lsl r6, r1, #2\n\ -_08004FDA:\n\ - add r3, r5, #0\n\ - mov r0, #0xF\n\ - and r3, r0\n\ - cmp r3, #0\n\ - beq _0800500C\n\ - lsr r2, r4, #3\n\ - lsl r2, #5\n\ - add r2, r9\n\ - add r0, r4, #0\n\ - mov r1, #0x7\n\ - and r0, r1\n\ - lsr r0, #1\n\ - add r2, r0\n\ - add r2, r7\n\ - add r2, r6\n\ - mov r1, #0x1\n\ - and r1, r4\n\ - lsl r1, #2\n\ - lsl r3, r1\n\ - mov r0, #0xF0\n\ - asr r0, r1\n\ - ldrb r1, [r2]\n\ - and r0, r1\n\ - orr r3, r0\n\ - strb r3, [r2]\n\ -_0800500C:\n\ - lsr r5, #4\n\ - add r4, #0x1\n\ - cmp r4, r12\n\ - bcc _08004FDA\n\ -_08005014:\n\ - mov r1, r10\n\ - ldr r2, [sp, #0x30]\n\ - cmp r1, r2\n\ - bcc _08004FBA\n\ -_0800501C:\n\ - mov r1, r8\n\ - ldr r3, =gUnknown_03002F90 + 0x20\n\ - str r3, [sp, #0x38]\n\ - ldr r0, [sp, #0x84]\n\ - ldr r2, [sp, #0x7C]\n\ - add r0, r2\n\ - mov r8, r0\n\ - ldr r3, [sp, #0x78]\n\ - str r3, [sp, #0x3C]\n\ - ldr r0, [sp, #0x84]\n\ - str r0, [sp, #0x40]\n\ - cmp r1, r3\n\ - bcc _08005038\n\ - b _080052AA\n\ -_08005038:\n\ - ldr r2, [sp, #0x38]\n\ - ldm r2!, {r5}\n\ - str r2, [sp, #0x38]\n\ - ldr r4, [sp, #0x40]\n\ - add r3, r1, #0x1\n\ - mov r10, r3\n\ - cmp r4, r8\n\ - bcs _08005096\n\ - mov r0, #0x7\n\ - mov r12, r0\n\ - lsr r0, r1, #3\n\ - ldr r3, [sp, #0x4]\n\ - add r2, r0, #0\n\ - mul r2, r3\n\ - add r7, r2, #0\n\ - mov r0, r12\n\ - and r1, r0\n\ - lsl r6, r1, #2\n\ -_0800505C:\n\ - add r3, r5, #0\n\ - mov r1, #0xF\n\ - and r3, r1\n\ - cmp r3, #0\n\ - beq _0800508E\n\ - lsr r2, r4, #3\n\ - lsl r2, #5\n\ - add r2, r9\n\ - add r0, r4, #0\n\ - mov r1, r12\n\ - and r0, r1\n\ - lsr r0, #1\n\ - add r2, r0\n\ - add r2, r7\n\ - add r2, r6\n\ - mov r1, #0x1\n\ - and r1, r4\n\ - lsl r1, #2\n\ - lsl r3, r1\n\ - mov r0, #0xF0\n\ - asr r0, r1\n\ - ldrb r1, [r2]\n\ - and r0, r1\n\ - orr r3, r0\n\ - strb r3, [r2]\n\ -_0800508E:\n\ - lsr r5, #4\n\ - add r4, #0x1\n\ - cmp r4, r8\n\ - bcc _0800505C\n\ -_08005096:\n\ - mov r1, r10\n\ - ldr r2, [sp, #0x3C]\n\ - cmp r1, r2\n\ - bcc _08005038\n\ - b _080052AA\n\ - .pool\n\ -_080050A4:\n\ - mov r1, r8\n\ - str r5, [sp, #0x44]\n\ - ldr r3, [sp]\n\ - add r3, #0x8\n\ - mov r12, r3\n\ - mov r2, r8\n\ - add r2, #0x8\n\ - str r2, [sp, #0x48]\n\ - ldr r3, [sp]\n\ - str r3, [sp, #0x4C]\n\ - str r2, [sp, #0x88]\n\ - sub r0, #0x8\n\ - str r0, [sp, #0x80]\n\ - mov r0, r12\n\ - str r0, [sp, #0x84]\n\ - sub r4, #0x8\n\ - str r4, [sp, #0x7C]\n\ - cmp r8, r2\n\ - bcs _0800512C\n\ -_080050CA:\n\ - ldr r2, [sp, #0x44]\n\ - ldm r2!, {r5}\n\ - str r2, [sp, #0x44]\n\ - ldr r4, [sp, #0x4C]\n\ - add r3, r1, #0x1\n\ - mov r10, r3\n\ - cmp r4, r12\n\ - bcs _08005124\n\ - lsr r0, r1, #3\n\ - ldr r3, [sp, #0x4]\n\ - add r2, r0, #0\n\ - mul r2, r3\n\ - add r7, r2, #0\n\ - mov r0, #0x7\n\ - and r1, r0\n\ - lsl r6, r1, #2\n\ -_080050EA:\n\ - add r3, r5, #0\n\ - mov r1, #0xF\n\ - and r3, r1\n\ - cmp r3, #0\n\ - beq _0800511C\n\ - lsr r2, r4, #3\n\ - lsl r2, #5\n\ - add r2, r9\n\ - add r0, r4, #0\n\ - mov r1, #0x7\n\ - and r0, r1\n\ - lsr r0, #1\n\ - add r2, r0\n\ - add r2, r7\n\ - add r2, r6\n\ - mov r1, #0x1\n\ - and r1, r4\n\ - lsl r1, #2\n\ - lsl r3, r1\n\ - mov r0, #0xF0\n\ - asr r0, r1\n\ - ldrb r1, [r2]\n\ - and r0, r1\n\ - orr r3, r0\n\ - strb r3, [r2]\n\ -_0800511C:\n\ - lsr r5, #4\n\ - add r4, #0x1\n\ - cmp r4, r12\n\ - bcc _080050EA\n\ -_08005124:\n\ - mov r1, r10\n\ - ldr r2, [sp, #0x48]\n\ - cmp r1, r2\n\ - bcc _080050CA\n\ -_0800512C:\n\ - mov r1, r8\n\ - ldr r3, =gUnknown_03002F90 + 0x20\n\ - str r3, [sp, #0x50]\n\ - ldr r0, [sp, #0x84]\n\ - ldr r2, [sp, #0x7C]\n\ - add r0, r2\n\ - mov r8, r0\n\ - ldr r3, [sp, #0x88]\n\ - str r3, [sp, #0x54]\n\ - ldr r0, [sp, #0x84]\n\ - str r0, [sp, #0x58]\n\ - cmp r1, r3\n\ - bcs _080051AC\n\ -_08005146:\n\ - ldr r2, [sp, #0x50]\n\ - ldm r2!, {r5}\n\ - str r2, [sp, #0x50]\n\ - ldr r4, [sp, #0x58]\n\ - add r3, r1, #0x1\n\ - mov r10, r3\n\ - cmp r4, r8\n\ - bcs _080051A4\n\ - mov r0, #0x7\n\ - mov r12, r0\n\ - lsr r0, r1, #3\n\ - ldr r3, [sp, #0x4]\n\ - add r2, r0, #0\n\ - mul r2, r3\n\ - add r7, r2, #0\n\ - mov r0, r12\n\ - and r1, r0\n\ - lsl r6, r1, #2\n\ -_0800516A:\n\ - add r3, r5, #0\n\ - mov r1, #0xF\n\ - and r3, r1\n\ - cmp r3, #0\n\ - beq _0800519C\n\ - lsr r2, r4, #3\n\ - lsl r2, #5\n\ - add r2, r9\n\ - add r0, r4, #0\n\ - mov r1, r12\n\ - and r0, r1\n\ - lsr r0, #1\n\ - add r2, r0\n\ - add r2, r7\n\ - add r2, r6\n\ - mov r1, #0x1\n\ - and r1, r4\n\ - lsl r1, #2\n\ - lsl r3, r1\n\ - mov r0, #0xF0\n\ - asr r0, r1\n\ - ldrb r1, [r2]\n\ - and r0, r1\n\ - orr r3, r0\n\ - strb r3, [r2]\n\ -_0800519C:\n\ - lsr r5, #4\n\ - add r4, #0x1\n\ - cmp r4, r8\n\ - bcc _0800516A\n\ -_080051A4:\n\ - mov r1, r10\n\ - ldr r2, [sp, #0x54]\n\ - cmp r1, r2\n\ - bcc _08005146\n\ -_080051AC:\n\ - ldr r1, [sp, #0x88]\n\ - ldr r3, =gUnknown_03002F90 + 0x40\n\ - str r3, [sp, #0x5C]\n\ - ldr r0, [sp, #0x84]\n\ - mov r8, r0\n\ - ldr r2, [sp, #0x80]\n\ - add r2, r1, r2\n\ - str r2, [sp, #0x60]\n\ - ldr r3, [sp]\n\ - str r3, [sp, #0x64]\n\ - cmp r1, r2\n\ - bcs _0800522A\n\ -_080051C4:\n\ - ldr r0, [sp, #0x5C]\n\ - ldm r0!, {r5}\n\ - str r0, [sp, #0x5C]\n\ - ldr r4, [sp, #0x64]\n\ - add r2, r1, #0x1\n\ - mov r10, r2\n\ - cmp r4, r8\n\ - bcs _08005222\n\ - mov r3, #0x7\n\ - mov r12, r3\n\ - lsr r0, r1, #3\n\ - ldr r3, [sp, #0x4]\n\ - add r2, r0, #0\n\ - mul r2, r3\n\ - add r7, r2, #0\n\ - mov r0, r12\n\ - and r1, r0\n\ - lsl r6, r1, #2\n\ -_080051E8:\n\ - add r3, r5, #0\n\ - mov r1, #0xF\n\ - and r3, r1\n\ - cmp r3, #0\n\ - beq _0800521A\n\ - lsr r2, r4, #3\n\ - lsl r2, #5\n\ - add r2, r9\n\ - add r0, r4, #0\n\ - mov r1, r12\n\ - and r0, r1\n\ - lsr r0, #1\n\ - add r2, r0\n\ - add r2, r7\n\ - add r2, r6\n\ - mov r1, #0x1\n\ - and r1, r4\n\ - lsl r1, #2\n\ - lsl r3, r1\n\ - mov r0, #0xF0\n\ - asr r0, r1\n\ - ldrb r1, [r2]\n\ - and r0, r1\n\ - orr r3, r0\n\ - strb r3, [r2]\n\ -_0800521A:\n\ - lsr r5, #4\n\ - add r4, #0x1\n\ - cmp r4, r8\n\ - bcc _080051E8\n\ -_08005222:\n\ - mov r1, r10\n\ - ldr r2, [sp, #0x60]\n\ - cmp r1, r2\n\ - bcc _080051C4\n\ -_0800522A:\n\ - ldr r4, [sp, #0x84]\n\ - ldr r1, [sp, #0x88]\n\ - ldr r3, =gUnknown_03002F90 + 0x60\n\ - str r3, [sp, #0x68]\n\ - ldr r0, [sp, #0x7C]\n\ - add r0, r4\n\ - mov r8, r0\n\ - ldr r2, [sp, #0x80]\n\ - add r2, r1, r2\n\ - str r2, [sp, #0x6C]\n\ - str r4, [sp, #0x70]\n\ - cmp r1, r2\n\ - bcs _080052AA\n\ -_08005244:\n\ - ldr r3, [sp, #0x68]\n\ - ldm r3!, {r5}\n\ - str r3, [sp, #0x68]\n\ - ldr r4, [sp, #0x70]\n\ - add r0, r1, #0x1\n\ - mov r10, r0\n\ - cmp r4, r8\n\ - bcs _080052A2\n\ - mov r2, #0x7\n\ - mov r12, r2\n\ - lsr r0, r1, #3\n\ - ldr r2, [sp, #0x4]\n\ - add r3, r0, #0\n\ - mul r3, r2\n\ - add r7, r3, #0\n\ - mov r3, r12\n\ - and r1, r3\n\ - lsl r6, r1, #2\n\ -_08005268:\n\ - add r3, r5, #0\n\ - mov r0, #0xF\n\ - and r3, r0\n\ - cmp r3, #0\n\ - beq _0800529A\n\ - lsr r2, r4, #3\n\ - lsl r2, #5\n\ - add r2, r9\n\ - add r0, r4, #0\n\ - mov r1, r12\n\ - and r0, r1\n\ - lsr r0, #1\n\ - add r2, r0\n\ - add r2, r7\n\ - add r2, r6\n\ - mov r1, #0x1\n\ - and r1, r4\n\ - lsl r1, #2\n\ - lsl r3, r1\n\ - mov r0, #0xF0\n\ - asr r0, r1\n\ - ldrb r1, [r2]\n\ - and r0, r1\n\ - orr r3, r0\n\ - strb r3, [r2]\n\ -_0800529A:\n\ - lsr r5, #4\n\ - add r4, #0x1\n\ - cmp r4, r8\n\ - bcc _08005268\n\ -_080052A2:\n\ - mov r1, r10\n\ - ldr r2, [sp, #0x6C]\n\ - cmp r1, r2\n\ - bcc _08005244\n\ -_080052AA:\n\ - add sp, #0x8C\n\ - pop {r3-r5}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - mov r10, r5\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .pool"); -} -#endif // NONMATCHING - void ClearTextSpan(struct TextPrinter *textPrinter, u32 width) { struct Window *window; From f33737ae97f44c3139cf13f4f028df48b94f69c8 Mon Sep 17 00:00:00 2001 From: PokeCodec Date: Wed, 12 Aug 2020 12:40:10 -0400 Subject: [PATCH 057/101] bool8 --- gflib/text.c | 54 +++++++++++++++++++++++----------------------------- gflib/text.h | 4 ++-- 2 files changed, 26 insertions(+), 32 deletions(-) diff --git a/gflib/text.c b/gflib/text.c index 5d407e5e4c..9eebd35d03 100644 --- a/gflib/text.c +++ b/gflib/text.c @@ -21,7 +21,7 @@ static u16 gLastTextFgColor; static u16 gLastTextShadowColor; const struct FontInfo *gFonts; -u8 gUnknown_03002F84; +bool8 gUnknown_03002F84; struct Struct_03002F90 gUnknown_03002F90; TextFlags gTextFlags; @@ -205,7 +205,7 @@ bool16 AddTextPrinter(struct TextPrinterTemplate *printerTemplate, u8 speed, voi CopyWindowToVram(gTempTextPrinter.printerTemplate.windowId, 2); gTextPrinters[printerTemplate->windowId].active = 0; } - gUnknown_03002F84 = 0; + gUnknown_03002F84 = FALSE; return TRUE; } @@ -213,7 +213,7 @@ void RunTextPrinters(void) { int i; - if (gUnknown_03002F84 == 0) + if (!gUnknown_03002F84) { for (i = 0; i < NUM_TEXT_PRINTERS; ++i) { @@ -1299,7 +1299,7 @@ u16 Font0Func(struct TextPrinter *textPrinter) { struct TextPrinterSubStruct *subStruct = (struct TextPrinterSubStruct *)(&textPrinter->subStructFields); - if (subStruct->hasGlyphIdBeenSet == FALSE) + if (!subStruct->hasGlyphIdBeenSet) { subStruct->glyphId = 0; subStruct->hasGlyphIdBeenSet = TRUE; @@ -1311,7 +1311,7 @@ u16 Font1Func(struct TextPrinter *textPrinter) { struct TextPrinterSubStruct *subStruct = (struct TextPrinterSubStruct *)(&textPrinter->subStructFields); - if (subStruct->hasGlyphIdBeenSet == FALSE) + if (!subStruct->hasGlyphIdBeenSet) { subStruct->glyphId = 1; subStruct->hasGlyphIdBeenSet = TRUE; @@ -1323,7 +1323,7 @@ u16 Font2Func(struct TextPrinter *textPrinter) { struct TextPrinterSubStruct *subStruct = (struct TextPrinterSubStruct *)(&textPrinter->subStructFields); - if (subStruct->hasGlyphIdBeenSet == FALSE) + if (!subStruct->hasGlyphIdBeenSet) { subStruct->glyphId = 2; subStruct->hasGlyphIdBeenSet = TRUE; @@ -1335,7 +1335,7 @@ u16 Font3Func(struct TextPrinter *textPrinter) { struct TextPrinterSubStruct *subStruct = (struct TextPrinterSubStruct *)(&textPrinter->subStructFields); - if (subStruct->hasGlyphIdBeenSet == FALSE) + if (!subStruct->hasGlyphIdBeenSet) { subStruct->glyphId = 3; subStruct->hasGlyphIdBeenSet = TRUE; @@ -1347,7 +1347,7 @@ u16 Font4Func(struct TextPrinter *textPrinter) { struct TextPrinterSubStruct *subStruct = (struct TextPrinterSubStruct *)(&textPrinter->subStructFields); - if (subStruct->hasGlyphIdBeenSet == FALSE) + if (!subStruct->hasGlyphIdBeenSet) { subStruct->glyphId = 4; subStruct->hasGlyphIdBeenSet = TRUE; @@ -1359,7 +1359,7 @@ u16 Font5Func(struct TextPrinter *textPrinter) { struct TextPrinterSubStruct *subStruct = (struct TextPrinterSubStruct *)(&textPrinter->subStructFields); - if (subStruct->hasGlyphIdBeenSet == FALSE) + if (!subStruct->hasGlyphIdBeenSet) { subStruct->glyphId = 5; subStruct->hasGlyphIdBeenSet = TRUE; @@ -1371,7 +1371,7 @@ u16 Font7Func(struct TextPrinter *textPrinter) { struct TextPrinterSubStruct *subStruct = (struct TextPrinterSubStruct *)(&textPrinter->subStructFields); - if (subStruct->hasGlyphIdBeenSet == FALSE) + if (!subStruct->hasGlyphIdBeenSet) { subStruct->glyphId = 7; subStruct->hasGlyphIdBeenSet = TRUE; @@ -1383,7 +1383,7 @@ u16 Font8Func(struct TextPrinter *textPrinter) { struct TextPrinterSubStruct *subStruct = (struct TextPrinterSubStruct *)(&textPrinter->subStructFields); - if (subStruct->hasGlyphIdBeenSet == FALSE) + if (!subStruct->hasGlyphIdBeenSet) { subStruct->glyphId = 8; subStruct->hasGlyphIdBeenSet = TRUE; @@ -1395,7 +1395,7 @@ void TextPrinterInitDownArrowCounters(struct TextPrinter *textPrinter) { struct TextPrinterSubStruct *subStruct = (struct TextPrinterSubStruct *)(&textPrinter->subStructFields); - if (gTextFlags.autoScroll == 1) + if (gTextFlags.autoScroll == TRUE) { subStruct->autoScrollDelay = 0; } @@ -1411,7 +1411,7 @@ void TextPrinterDrawDownArrow(struct TextPrinter *textPrinter) struct TextPrinterSubStruct *subStruct = (struct TextPrinterSubStruct *)(&textPrinter->subStructFields); const u8 *arrowTiles; - if (gTextFlags.autoScroll == 0) + if (!gTextFlags.autoScroll) { if (subStruct->downArrowDelay != 0) { @@ -1487,7 +1487,7 @@ bool8 TextPrinterWaitAutoMode(struct TextPrinter *textPrinter) bool16 TextPrinterWaitWithDownArrow(struct TextPrinter *textPrinter) { bool8 result = FALSE; - if (gTextFlags.autoScroll != 0) + if (gTextFlags.autoScroll) { result = TextPrinterWaitAutoMode(textPrinter); } @@ -1506,17 +1506,14 @@ bool16 TextPrinterWaitWithDownArrow(struct TextPrinter *textPrinter) bool16 TextPrinterWait(struct TextPrinter *textPrinter) { bool16 result = FALSE; - if (gTextFlags.autoScroll != 0) + if (gTextFlags.autoScroll) { result = TextPrinterWaitAutoMode(textPrinter); } - else + else if (gMain.newKeys & (A_BUTTON | B_BUTTON)) { - if (gMain.newKeys & (A_BUTTON | B_BUTTON)) - { - result = TRUE; - PlaySE(SE_SELECT); - } + result = TRUE; + PlaySE(SE_SELECT); } return result; } @@ -1532,7 +1529,7 @@ void DrawDownArrow(u8 windowId, u16 x, u16 y, u8 bgColor, bool8 drawArrow, u8 *c else { FillWindowPixelRect(windowId, (bgColor << 4) | bgColor, x, y, 0x8, 0x10); - if (drawArrow == 0) + if (!drawArrow) { switch (gTextFlags.useAlternateDownArrow) { @@ -1724,10 +1721,10 @@ u16 RenderText(struct TextPrinter *textPrinter) textPrinter->minLetterSpacing = *textPrinter->printerTemplate.currentChar++; return 2; case EXT_CTRL_CODE_JPN: - textPrinter->japanese = 1; + textPrinter->japanese = TRUE; return 2; case EXT_CTRL_CODE_ENG: - textPrinter->japanese = 0; + textPrinter->japanese = FALSE; return 2; } break; @@ -1788,13 +1785,10 @@ u16 RenderText(struct TextPrinter *textPrinter) textPrinter->printerTemplate.currentX += width; } } + else if (textPrinter->japanese) + textPrinter->printerTemplate.currentX += (gUnknown_03002F90.unk80 + textPrinter->printerTemplate.letterSpacing); else - { - if (textPrinter->japanese) - textPrinter->printerTemplate.currentX += (gUnknown_03002F90.unk80 + textPrinter->printerTemplate.letterSpacing); - else - textPrinter->printerTemplate.currentX += gUnknown_03002F90.unk80; - } + textPrinter->printerTemplate.currentX += gUnknown_03002F90.unk80; return 0; case 1: if (TextPrinterWait(textPrinter)) diff --git a/gflib/text.h b/gflib/text.h index ba74cde6e1..0d0f3341de 100644 --- a/gflib/text.h +++ b/gflib/text.h @@ -322,7 +322,7 @@ struct TextPrinter u8 delayCounter; u8 scrollDistance; u8 minLetterSpacing; // 0x20 - u8 japanese; + bool8 japanese; }; struct FontInfo @@ -372,7 +372,7 @@ struct Struct_03002F90 extern TextFlags gTextFlags; -extern u8 gUnknown_03002F84; +extern bool8 gUnknown_03002F84; extern struct Struct_03002F90 gUnknown_03002F90; void SetFontsPointer(const struct FontInfo *fonts); From f6efbe38bfd7365ffdace6e82f5160563473efd7 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Wed, 12 Aug 2020 11:44:39 -0400 Subject: [PATCH 058/101] Clean up use_pokeblock doc, some menu_specialized --- include/menu_specialized.h | 45 ++-- include/pokenav.h | 2 +- src/menu_specialized.c | 425 +++++++++++++++++++------------------ src/pokenav_conditions_1.c | 4 +- src/pokenav_conditions_2.c | 24 +-- src/use_pokeblock.c | 162 +++++++------- 6 files changed, 333 insertions(+), 329 deletions(-) diff --git a/include/menu_specialized.h b/include/menu_specialized.h index 334635f177..242e1c6b2f 100644 --- a/include/menu_specialized.h +++ b/include/menu_specialized.h @@ -5,12 +5,13 @@ #include "player_pc.h" #include "list_menu.h" #include "pokemon.h" +#include "constants/berry.h" -#define TAG_SPMENU_CONDITION_MON 100 -#define TAG_SPMENU_CONDITION_BALL 101 -#define TAG_SPMENU_CONDITION_CANCEL 102 -#define TAG_SPMENU_CONDITION_BALL_PLACEHOLDER 103 -#define TAG_SPMENU_CONDITION_SPARKLE 104 +#define TAG_CONDITION_MON 100 +#define TAG_CONDITION_BALL 101 +#define TAG_CONDITION_CANCEL 102 +#define TAG_CONDITION_BALL_PLACEHOLDER 103 +#define TAG_CONDITION_SPARKLE 104 #define MAX_CONDITION_SPARKLES 10 @@ -20,12 +21,12 @@ struct UnknownSubStruct_81D1ED4 u16 unk2; }; -struct UnknownStruct_81D1ED4 +struct ConditionGraph { - /*0x000*/ u8 unk0[4][5]; - /*0x014*/ struct UnknownSubStruct_81D1ED4 unk14[4][5]; - /*0x064*/ struct UnknownSubStruct_81D1ED4 unk64[10][5]; - /*0x12C*/ struct UnknownSubStruct_81D1ED4 unk12C[5]; + /*0x000*/ u8 unk0[4][FLAVOR_COUNT]; + /*0x014*/ struct UnknownSubStruct_81D1ED4 unk14[4][FLAVOR_COUNT]; + /*0x064*/ struct UnknownSubStruct_81D1ED4 unk64[10][FLAVOR_COUNT]; + /*0x12C*/ struct UnknownSubStruct_81D1ED4 unk12C[FLAVOR_COUNT]; /*0x140*/ u16 unk140[66][2]; /*0x248*/ u16 unk248[66][2]; /*0x350*/ u16 unk350; @@ -40,15 +41,15 @@ u8 sub_81D1DC0(struct PlayerPCItemPageStruct *page); void sub_81D1E90(struct PlayerPCItemPageStruct *page); void sub_81D1EC0(void); void sub_81D1D04(u8 a0); -void sub_81D1ED4(struct UnknownStruct_81D1ED4 *a0); -void sub_81D2108(struct UnknownStruct_81D1ED4 *arg0); +void sub_81D1ED4(struct ConditionGraph *graph); +void sub_81D2108(struct ConditionGraph *graph); void sub_81D21DC(u8 bg); -void sub_81D20AC(struct UnknownStruct_81D1ED4 *arg0); -void sub_81D2230(struct UnknownStruct_81D1ED4 *arg0); -bool8 sub_81D20BC(struct UnknownStruct_81D1ED4 *arg0); -bool32 sub_81D2074(struct UnknownStruct_81D1ED4 *a0); +void sub_81D20AC(struct ConditionGraph *graph); +void sub_81D2230(struct ConditionGraph *graph); +bool8 sub_81D20BC(struct ConditionGraph *graph); +bool32 TransitionConditionGraph(struct ConditionGraph *graph); void sub_81D2754(u8 *arg0, struct UnknownSubStruct_81D1ED4 *arg1); -void sub_81D1F84(struct UnknownStruct_81D1ED4 *arg0, struct UnknownSubStruct_81D1ED4 *arg1, struct UnknownSubStruct_81D1ED4 *arg2); +void sub_81D1F84(struct ConditionGraph *graph, struct UnknownSubStruct_81D1ED4 *arg1, struct UnknownSubStruct_81D1ED4 *arg2); void MoveRelearnerPrintText(u8 *str); bool16 MoveRelearnerRunTextPrinters(void); void MoveRelearnerCreateYesNoMenu(void); @@ -56,12 +57,12 @@ u8 LoadMoveRelearnerMovesList(const struct ListMenuItem *items, u16 numChoices); void InitMoveRelearnerWindows(bool8 useContextWindow); s32 GetBoxOrPartyMonData(u16 boxId, u16 monId, s32 request, u8 *dst); void GetConditionMenuMonNameAndLocString(u8 *locationDst, u8 *nameDst, u16 boxId, u16 monId, u16 partyId, u16 numMons, bool8 excludesCancel); -void GetConditionMenuMonConditions(struct UnknownStruct_81D1ED4 *arg0, u8 *sheen, u16 boxId, u16 monId, u16 partyId, u16 id, u16 numMons, bool8 excludesCancel); +void GetConditionMenuMonConditions(struct ConditionGraph *graph, u8 *sheen, u16 boxId, u16 monId, u16 partyId, u16 id, u16 numMons, bool8 excludesCancel); void GetConditionMenuMonGfx(void *tilesDst, void *palDst, u16 boxId, u16 monId, u16 partyId, u16 numMons, bool8 excludesCancel); -bool8 sub_81D312C(s16 *var); -bool8 sub_81D3150(s16 *var); -bool8 sub_81D3178(struct UnknownStruct_81D1ED4 *arg0, s16 *arg1); -bool8 sub_81D31A4(struct UnknownStruct_81D1ED4 *arg0, s16 *arg1); +bool8 MoveConditionMonOnscreen(s16 *x); +bool8 MoveConditionMonOffscreen(s16 *x); +bool8 TryUpdateConditionMonTransitionOn(struct ConditionGraph *graph, s16 *x); +bool8 TryUpdateConditionMonTransitionOff(struct ConditionGraph *graph, s16 *x); void LoadConditionMonPicTemplate(struct SpriteSheet *sheet, struct SpriteTemplate *template, struct SpritePalette *pal); void LoadConditionSelectionIcons(struct SpriteSheet *sheets, struct SpriteTemplate * template, struct SpritePalette *pals); void LoadConditionSparkle(struct SpriteSheet *sheet, struct SpritePalette *pal); diff --git a/include/pokenav.h b/include/pokenav.h index 3eafe9af2c..ac916f3ba8 100644 --- a/include/pokenav.h +++ b/include/pokenav.h @@ -391,7 +391,7 @@ u32 sub_81CD070(void); void sub_81CD1C0(void); bool32 sub_81CD3C4(void); bool32 sub_81CDD5C(void); -struct UnknownStruct_81D1ED4 *sub_81CDC70(void); +struct ConditionGraph *sub_81CDC70(void); u16 sub_81CDC60(void); u16 sub_81CDC50(void); u8 sub_81CDDB0(void); diff --git a/src/menu_specialized.c b/src/menu_specialized.c index 05ff97edb1..cdaa32a982 100644 --- a/src/menu_specialized.c +++ b/src/menu_specialized.c @@ -34,13 +34,13 @@ EWRAM_DATA static u8 sUnknown_0203CF48[3] = {0}; EWRAM_DATA static struct ListMenuItem *sUnknown_0203CF4C = NULL; static void sub_81D1E7C(s32 itemIndex, bool8 onInit, struct ListMenu *list); -static void sub_81D24A4(struct UnknownStruct_81D1ED4 *a0); -static void sub_81D2634(struct UnknownStruct_81D1ED4 *a0); +static void sub_81D24A4(struct ConditionGraph *a0); +static void sub_81D2634(struct ConditionGraph *a0); static void MoveRelearnerCursorCallback(s32 itemIndex, bool8 onInit, struct ListMenu *list); static void nullsub_79(void); -static void sub_81D3408(struct Sprite *sprite); +static void SetNextConditionSparkle(struct Sprite *sprite); static void SpriteCB_ConditionSparkle(struct Sprite *sprite); -static void sub_81D35E8(struct Sprite *sprite); +static void ShowAllConditionSparkles(struct Sprite *sprite); static const struct WindowTemplate sUnknown_086253E8[] = { @@ -80,7 +80,7 @@ static const u8 sPlayerNameTextColors[] = static const u8 sEmptyItemName[] = _(""); -static const struct ScanlineEffectParams sUnknown_08625404 = +static const struct ScanlineEffectParams sConditionGraphScanline = { .dmaDest = (void*)REG_ADDR_WIN0H, .dmaControl = SCANLINE_EFFECT_DMACNT_32BIT, @@ -320,11 +320,11 @@ void sub_81D1EC0(void) Free(sUnknown_0203CF4C); } -void sub_81D1ED4(struct UnknownStruct_81D1ED4 *a0) +void sub_81D1ED4(struct ConditionGraph *a0) { u8 i, j; - for (j = 0; j < 5; j++) + for (j = 0; j < FLAVOR_COUNT; j++) { for (i = 0; i < 10; i++) { @@ -346,7 +346,7 @@ void sub_81D1ED4(struct UnknownStruct_81D1ED4 *a0) a0->unk352 = 0; } -void sub_81D1F84(struct UnknownStruct_81D1ED4 *arg0, struct UnknownSubStruct_81D1ED4 *arg1, struct UnknownSubStruct_81D1ED4 *arg2) +void sub_81D1F84(struct ConditionGraph *graph, struct UnknownSubStruct_81D1ED4 *arg1, struct UnknownSubStruct_81D1ED4 *arg2) { u16 i, j; s32 r5, r6; @@ -357,30 +357,30 @@ void sub_81D1F84(struct UnknownStruct_81D1ED4 *arg0, struct UnknownSubStruct_81D r6 = ((arg2[i].unk0 - arg1[i].unk0) << 8) / 10; for (j = 0; j < 9; j++) { - arg0->unk64[j][i].unk0 = (r5 >> 8) + ((r5 >> 7) & 1); + graph->unk64[j][i].unk0 = (r5 >> 8) + ((r5 >> 7) & 1); r5 += r6; } - arg0->unk64[j][i].unk0 = arg2[i].unk0; + graph->unk64[j][i].unk0 = arg2[i].unk0; r5 = arg1[i].unk2 << 8; r6 = ((arg2[i].unk2 - arg1[i].unk2) << 8) / 10; for (j = 0; j < 9; j++) { - arg0->unk64[j][i].unk2 = (r5 >> 8) + ((r5 >> 7) & 1); + graph->unk64[j][i].unk2 = (r5 >> 8) + ((r5 >> 7) & 1); r5 += r6; } - arg0->unk64[j][i].unk2 = arg2[i].unk2; + graph->unk64[j][i].unk2 = arg2[i].unk2; } - arg0->unk352 = 0; + graph->unk352 = 0; } -bool32 sub_81D2074(struct UnknownStruct_81D1ED4 *a0) +bool32 TransitionConditionGraph(struct ConditionGraph *graph) { - if (a0->unk352 < 10) + if (graph->unk352 < 10) { - sub_81D2230(a0); - return (++a0->unk352 != 10); + sub_81D2230(graph); + return (++graph->unk352 != 10); } else { @@ -388,48 +388,48 @@ bool32 sub_81D2074(struct UnknownStruct_81D1ED4 *a0) } } -void sub_81D20AC(struct UnknownStruct_81D1ED4 *a0) +void sub_81D20AC(struct ConditionGraph *a0) { a0->unk355 = 0; } -bool8 sub_81D20BC(struct UnknownStruct_81D1ED4 *arg0) +bool8 sub_81D20BC(struct ConditionGraph *graph) { struct ScanlineEffectParams params; - switch (arg0->unk355) + switch (graph->unk355) { case 0: ScanlineEffect_Clear(); - arg0->unk355++; + graph->unk355++; return TRUE; case 1: - params = sUnknown_08625404; + params = sConditionGraphScanline; ScanlineEffect_SetParams(params); - arg0->unk355++; + graph->unk355++; return FALSE; default: return FALSE; } } -void sub_81D2108(struct UnknownStruct_81D1ED4 *arg0) +void sub_81D2108(struct ConditionGraph *graph) { u16 i; - if (arg0->unk354 == 0) + if (graph->unk354 == 0) return; - sub_81D24A4(arg0); - sub_81D2634(arg0); + sub_81D24A4(graph); + sub_81D2634(graph); for (i = 0; i < 66; i++) { - gScanlineEffectRegBuffers[1][(i + 55) * 2] = gScanlineEffectRegBuffers[0][(i + 55) * 2] = (arg0->unk140[i][0] << 8) | (arg0->unk140[i][1]); - gScanlineEffectRegBuffers[1][(i + 55) * 2 + 1] = gScanlineEffectRegBuffers[0][(i + 55) * 2 + 1] = (arg0->unk248[i][0] << 8) | (arg0->unk248[i][1]); + gScanlineEffectRegBuffers[1][(i + 55) * 2] = gScanlineEffectRegBuffers[0][(i + 55) * 2] = (graph->unk140[i][0] << 8) | (graph->unk140[i][1]); + gScanlineEffectRegBuffers[1][(i + 55) * 2 + 1] = gScanlineEffectRegBuffers[0][(i + 55) * 2 + 1] = (graph->unk248[i][0] << 8) | (graph->unk248[i][1]); } - arg0->unk354 = 0; + graph->unk354 = 0; } void sub_81D21DC(u8 bg) @@ -442,24 +442,24 @@ void sub_81D21DC(u8 bg) // Unset the WINOUT flag for the bg. flags = (WINOUT_WIN01_BG_ALL | WINOUT_WIN01_OBJ) & ~(1 << bg); - SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(0, 0xF0)); - SetGpuReg(REG_OFFSET_WIN1H, WIN_RANGE(0, 0x9B)); - SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(0x38, 0x79)); - SetGpuReg(REG_OFFSET_WIN1V, WIN_RANGE(0x38, 0x79)); + SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE( 0, DISPLAY_WIDTH)); + SetGpuReg(REG_OFFSET_WIN1H, WIN_RANGE( 0, 155)); + SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(56, 121)); + SetGpuReg(REG_OFFSET_WIN1V, WIN_RANGE(56, 121)); SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG_ALL | WININ_WIN1_OBJ | WININ_WIN1_CLR); SetGpuReg(REG_OFFSET_WINOUT, flags); } -void sub_81D2230(struct UnknownStruct_81D1ED4 *arg0) +void sub_81D2230(struct ConditionGraph *graph) { u16 i; - for (i = 0; i < 5; i++) - arg0->unk12C[i] = arg0->unk64[arg0->unk352][i]; + for (i = 0; i < FLAVOR_COUNT; i++) + graph->unk12C[i] = graph->unk64[graph->unk352][i]; - arg0->unk354 = 1; + graph->unk354 = 1; } -static void sub_81D2278(struct UnknownStruct_81D1ED4 *arg0, u16 *arg1, struct UnknownSubStruct_81D1ED4 *arg2, struct UnknownSubStruct_81D1ED4 *arg3, u8 arg4, u16 *arg5) +static void sub_81D2278(struct ConditionGraph *graph, u16 *arg1, struct UnknownSubStruct_81D1ED4 *arg2, struct UnknownSubStruct_81D1ED4 *arg3, u8 arg4, u16 *arg5) { u16 i, r8, r10, r0, var_30; u16 *ptr; @@ -510,8 +510,8 @@ static void sub_81D2278(struct UnknownStruct_81D1ED4 *arg0, u16 *arg1, struct Un break; } - arg0->unk350 = r10 + i; - arg1 += (arg0->unk350 - 56) * 2; + graph->unk350 = r10 + i; + arg1 += (graph->unk350 - 56) * 2; for (; i < r8; i++) { arg1[arg4] = (r4 >> 10) + ((r4 >> 9) & 1) + arg4; @@ -536,8 +536,8 @@ static void sub_81D2278(struct UnknownStruct_81D1ED4 *arg0, u16 *arg1, struct Un arg1 += 2; } - arg0->unk350 = r10 + i; - arg5 += (arg0->unk350 - 56) * 2; + graph->unk350 = r10 + i; + arg5 += (graph->unk350 - 56) * 2; for (; i < r8; i++) { arg5[arg4] = (r4 >> 10) + ((r4 >> 9) & 1) + arg4; @@ -549,7 +549,7 @@ static void sub_81D2278(struct UnknownStruct_81D1ED4 *arg0, u16 *arg1, struct Un } else { - arg0->unk350 = r10; + graph->unk350 = r10; arg1 += (r10 - 56) * 2; arg5 += (r10 - 56) * 2; arg1[1] = arg2->unk0 + 1; @@ -561,87 +561,87 @@ static void sub_81D2278(struct UnknownStruct_81D1ED4 *arg0, u16 *arg1, struct Un ptr[arg4] = arg4 + var_30; } -static void sub_81D24A4(struct UnknownStruct_81D1ED4 *arg0) +static void sub_81D24A4(struct ConditionGraph *graph) { u16 i, r6, varMax; - if (arg0->unk12C[0].unk2 < arg0->unk12C[1].unk2) + if (graph->unk12C[0].unk2 < graph->unk12C[1].unk2) { - r6 = arg0->unk12C[0].unk2; - sub_81D2278(arg0, arg0->unk140[0], &arg0->unk12C[0], &arg0->unk12C[1], 1, NULL); + r6 = graph->unk12C[0].unk2; + sub_81D2278(graph, graph->unk140[0], &graph->unk12C[0], &graph->unk12C[1], 1, NULL); } else { - r6 = arg0->unk12C[1].unk2; - sub_81D2278(arg0, arg0->unk140[0], &arg0->unk12C[1], &arg0->unk12C[0], 0, NULL); + r6 = graph->unk12C[1].unk2; + sub_81D2278(graph, graph->unk140[0], &graph->unk12C[1], &graph->unk12C[0], 0, NULL); } - sub_81D2278(arg0, arg0->unk140[0], &arg0->unk12C[1], &arg0->unk12C[2], 1, NULL); + sub_81D2278(graph, graph->unk140[0], &graph->unk12C[1], &graph->unk12C[2], 1, NULL); - i = (arg0->unk12C[2].unk2 <= arg0->unk12C[3].unk2); - sub_81D2278(arg0, arg0->unk140[0], &arg0->unk12C[2], &arg0->unk12C[3], i, arg0->unk248[0]); + i = (graph->unk12C[2].unk2 <= graph->unk12C[3].unk2); + sub_81D2278(graph, graph->unk140[0], &graph->unk12C[2], &graph->unk12C[3], i, graph->unk248[0]); for (i = 56; i < r6; i++) { - arg0->unk140[i - 56][0] = 0; - arg0->unk140[i - 56][1] = 0; + graph->unk140[i - 56][0] = 0; + graph->unk140[i - 56][1] = 0; } - for (i = arg0->unk12C[0].unk2; i <= arg0->unk350; i++) - arg0->unk140[i - 56][0] = 155; + for (i = graph->unk12C[0].unk2; i <= graph->unk350; i++) + graph->unk140[i - 56][0] = 155; - varMax = max(arg0->unk350, arg0->unk12C[2].unk2); + varMax = max(graph->unk350, graph->unk12C[2].unk2); for (i = varMax + 1; i < 122; i++) { - arg0->unk140[i - 56][0] = 0; - arg0->unk140[i - 56][1] = 0; + graph->unk140[i - 56][0] = 0; + graph->unk140[i - 56][1] = 0; } for (i = 56; i < 122; i++) { - if (arg0->unk140[i - 56][0] == 0 && arg0->unk140[i - 56][1] != 0) - arg0->unk140[i - 56][0] = 155; + if (graph->unk140[i - 56][0] == 0 && graph->unk140[i - 56][1] != 0) + graph->unk140[i - 56][0] = 155; } } -static void sub_81D2634(struct UnknownStruct_81D1ED4 *arg0) +static void sub_81D2634(struct ConditionGraph *graph) { s32 i, r6, varMax; - if (arg0->unk12C[0].unk2 < arg0->unk12C[4].unk2) + if (graph->unk12C[0].unk2 < graph->unk12C[4].unk2) { - r6 = arg0->unk12C[0].unk2; - sub_81D2278(arg0, arg0->unk248[0], &arg0->unk12C[0], &arg0->unk12C[4], 0, NULL); + r6 = graph->unk12C[0].unk2; + sub_81D2278(graph, graph->unk248[0], &graph->unk12C[0], &graph->unk12C[4], 0, NULL); } else { - r6 = arg0->unk12C[4].unk2; - sub_81D2278(arg0, arg0->unk248[0], &arg0->unk12C[4], &arg0->unk12C[0], 1, NULL); + r6 = graph->unk12C[4].unk2; + sub_81D2278(graph, graph->unk248[0], &graph->unk12C[4], &graph->unk12C[0], 1, NULL); } - sub_81D2278(arg0, arg0->unk248[0], &arg0->unk12C[4], &arg0->unk12C[3], 0, NULL); + sub_81D2278(graph, graph->unk248[0], &graph->unk12C[4], &graph->unk12C[3], 0, NULL); for (i = 56; i < r6; i++) { - arg0->unk140[i + 10][0] = 0; - arg0->unk140[i + 10][1] = 0; + graph->unk140[i + 10][0] = 0; + graph->unk140[i + 10][1] = 0; } - for (i = arg0->unk12C[0].unk2; i <= arg0->unk350; i++) - arg0->unk140[i + 10][1] = 155; + for (i = graph->unk12C[0].unk2; i <= graph->unk350; i++) + graph->unk140[i + 10][1] = 155; - varMax = max(arg0->unk350, arg0->unk12C[3].unk2 + 1); + varMax = max(graph->unk350, graph->unk12C[3].unk2 + 1); for (i = varMax; i < 122; i++) { - arg0->unk140[i + 10][0] = 0; - arg0->unk140[i + 10][1] = 0; + graph->unk140[i + 10][0] = 0; + graph->unk140[i + 10][1] = 0; } for (i = 0; i < 66; i++) { - if (arg0->unk248[i][0] >= arg0->unk248[i][1]) + if (graph->unk248[i][0] >= graph->unk248[i][1]) { - arg0->unk248[i][1] = 0; - arg0->unk248[i][0] = 0; + graph->unk248[i][1] = 0; + graph->unk248[i][0] = 0; } } } @@ -985,7 +985,7 @@ void GetConditionMenuMonNameAndLocString(u8 *locationDst, u8 *nameDst, u16 boxId { u16 i; - // In this and the below 2 functions, numMons can be passed as the number of menu selections (which includes Cancel) + // In this and the below 2 functions, numMons is passed as the number of menu selections (which includes Cancel) // To indicate that the Cancel needs to be subtracted they pass an additional bool // Unclear why they didn't just subtract 1 when it gets passed instead if (!excludesCancel) @@ -1020,7 +1020,7 @@ void GetConditionMenuMonNameAndLocString(u8 *locationDst, u8 *nameDst, u16 boxId } } -void GetConditionMenuMonConditions(struct UnknownStruct_81D1ED4 *arg0, u8 *sheen, u16 boxId, u16 monId, u16 partyId, u16 id, u16 numMons, bool8 excludesCancel) +void GetConditionMenuMonConditions(struct ConditionGraph *graph, u8 *sheen, u16 boxId, u16 monId, u16 partyId, u16 id, u16 numMons, bool8 excludesCancel) { u16 i; @@ -1029,25 +1029,25 @@ void GetConditionMenuMonConditions(struct UnknownStruct_81D1ED4 *arg0, u8 *sheen if (partyId != numMons) { - arg0->unk0[id][0] = GetBoxOrPartyMonData(boxId, monId, MON_DATA_COOL, NULL); - arg0->unk0[id][1] = GetBoxOrPartyMonData(boxId, monId, MON_DATA_TOUGH, NULL); - arg0->unk0[id][2] = GetBoxOrPartyMonData(boxId, monId, MON_DATA_SMART, NULL); - arg0->unk0[id][3] = GetBoxOrPartyMonData(boxId, monId, MON_DATA_CUTE, NULL); - arg0->unk0[id][4] = GetBoxOrPartyMonData(boxId, monId, MON_DATA_BEAUTY, NULL); + graph->unk0[id][0] = GetBoxOrPartyMonData(boxId, monId, MON_DATA_COOL, NULL); + graph->unk0[id][1] = GetBoxOrPartyMonData(boxId, monId, MON_DATA_TOUGH, NULL); + graph->unk0[id][2] = GetBoxOrPartyMonData(boxId, monId, MON_DATA_SMART, NULL); + graph->unk0[id][3] = GetBoxOrPartyMonData(boxId, monId, MON_DATA_CUTE, NULL); + graph->unk0[id][4] = GetBoxOrPartyMonData(boxId, monId, MON_DATA_BEAUTY, NULL); sheen[id] = (GetBoxOrPartyMonData(boxId, monId, MON_DATA_SHEEN, NULL) != 0xFF) ? GetBoxOrPartyMonData(boxId, monId, MON_DATA_SHEEN, NULL) / 29u : 9; - sub_81D2754(arg0->unk0[id], arg0->unk14[id]); + sub_81D2754(graph->unk0[id], graph->unk14[id]); } else { for (i = 0; i < FLAVOR_COUNT; i++) { - arg0->unk0[id][i] = 0; - arg0->unk14[id][i].unk0 = 155; - arg0->unk14[id][i].unk2 = 91; + graph->unk0[id][i] = 0; + graph->unk14[id][i].unk0 = 155; + graph->unk14[id][i].unk2 = 91; } } } @@ -1068,38 +1068,38 @@ void GetConditionMenuMonGfx(void *tilesDst, void *palDst, u16 boxId, u16 monId, } } -bool8 sub_81D312C(s16 *var) +bool8 MoveConditionMonOnscreen(s16 *x) { - *var += 24; - if (*var > 0) - *var = 0; + *x += 24; + if (*x > 0) + *x = 0; - return (*var != 0); + return (*x != 0); } -bool8 sub_81D3150(s16 *var) +bool8 MoveConditionMonOffscreen(s16 *x) { - *var -= 24; - if (*var < -80) - *var = -80; + *x -= 24; + if (*x < -80) + *x = -80; - return (*var != -80); + return (*x != -80); } -bool8 sub_81D3178(struct UnknownStruct_81D1ED4 *arg0, s16 *arg1) +bool8 TryUpdateConditionMonTransitionOn(struct ConditionGraph *graph, s16 *x) { - bool8 var1 = sub_81D2074(arg0); - bool8 var2 = sub_81D312C(arg1); + bool8 graphUpdating = TransitionConditionGraph(graph); + bool8 monUpdating = MoveConditionMonOnscreen(x); - return ((var1 != 0) || (var2 != 0)); + return (graphUpdating || monUpdating); } -bool8 sub_81D31A4(struct UnknownStruct_81D1ED4 *arg0, s16 *arg1) +bool8 TryUpdateConditionMonTransitionOff(struct ConditionGraph *graph, s16 *x) { - bool8 var1 = sub_81D2074(arg0); - bool8 var2 = sub_81D3150(arg1); + bool8 graphUpdating = TransitionConditionGraph(graph); + bool8 monUpdating = MoveConditionMonOffscreen(x); - return ((var1 != 0) || (var2 != 0)); + return (graphUpdating || monUpdating); } static const u32 sConditionPokeball_Gfx[] = INCBIN_U32("graphics/pokenav/condition/pokeball.4bpp"); @@ -1107,7 +1107,7 @@ static const u32 sConditionPokeballPlaceholder_Gfx[] = INCBIN_U32("graphics/poke static const u16 sConditionSparkle_Gfx[] = INCBIN_U16("graphics/pokenav/condition/sparkle.gbapal"); static const u32 sConditionSparkle_Pal[] = INCBIN_U32("graphics/pokenav/condition/sparkle.4bpp"); -static const struct OamData sOamData_8625A20 = +static const struct OamData sOam_ConditionMonPic = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -1124,7 +1124,7 @@ static const struct OamData sOamData_8625A20 = .affineParam = 0 }; -static const struct OamData sOamData_8625A28 = +static const struct OamData sOam_ConditionSelectionIcon = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -1141,41 +1141,41 @@ static const struct OamData sOamData_8625A28 = .affineParam = 0 }; -static const union AnimCmd sSpriteAnim_8625A30[] = +static const union AnimCmd sAnim_ConditionSelectionIcon_Selected[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_END }; -static const union AnimCmd sSpriteAnim_8625A38[] = +static const union AnimCmd sAnim_ConditionSelectionIcon_Unselected[] = { ANIMCMD_FRAME(4, 5), ANIMCMD_END }; -static const union AnimCmd *const sSpriteAnimTable_8625A40[] = +static const union AnimCmd *const sAnims_ConditionSelectionIcon[] = { - sSpriteAnim_8625A30, - sSpriteAnim_8625A38 + sAnim_ConditionSelectionIcon_Selected, + sAnim_ConditionSelectionIcon_Unselected }; // Just loads the generic data, up to the caller to load the actual sheet/pal for the specific mon void LoadConditionMonPicTemplate(struct SpriteSheet *sheet, struct SpriteTemplate *template, struct SpritePalette *pal) { - struct SpriteSheet dataSheet = {NULL, 0x800, TAG_SPMENU_CONDITION_MON}; + struct SpriteSheet dataSheet = {NULL, 0x800, TAG_CONDITION_MON}; struct SpriteTemplate dataTemplate = { - .tileTag = TAG_SPMENU_CONDITION_MON, - .paletteTag = TAG_SPMENU_CONDITION_MON, - .oam = &sOamData_8625A20, + .tileTag = TAG_CONDITION_MON, + .paletteTag = TAG_CONDITION_MON, + .oam = &sOam_ConditionMonPic, .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy, }; - struct SpritePalette dataPal = {NULL, TAG_SPMENU_CONDITION_MON}; + struct SpritePalette dataPal = {NULL, TAG_CONDITION_MON}; *sheet = dataSheet; *template = dataTemplate; @@ -1188,25 +1188,26 @@ void LoadConditionSelectionIcons(struct SpriteSheet *sheets, struct SpriteTempla struct SpriteSheet dataSheets[] = { - {sConditionPokeball_Gfx, 0x100, TAG_SPMENU_CONDITION_BALL}, - {sConditionPokeballPlaceholder_Gfx, 0x20, TAG_SPMENU_CONDITION_BALL_PLACEHOLDER}, - {gPokenavConditionCancel_Gfx, 0x100, TAG_SPMENU_CONDITION_CANCEL}, + {sConditionPokeball_Gfx, 0x100, TAG_CONDITION_BALL}, + {sConditionPokeballPlaceholder_Gfx, 0x20, TAG_CONDITION_BALL_PLACEHOLDER}, + {gPokenavConditionCancel_Gfx, 0x100, TAG_CONDITION_CANCEL}, {}, }; struct SpritePalette dataPals[] = { - {gPokenavConditionCancel_Pal, TAG_SPMENU_CONDITION_BALL}, - {gPokenavConditionCancel_Pal + 16, TAG_SPMENU_CONDITION_CANCEL}, + {gPokenavConditionCancel_Pal, TAG_CONDITION_BALL}, + {gPokenavConditionCancel_Pal + 16, TAG_CONDITION_CANCEL}, {}, }; + // Tag is overwritten for the other selection icons struct SpriteTemplate dataTemplate = { - .tileTag = TAG_SPMENU_CONDITION_BALL, - .paletteTag = TAG_SPMENU_CONDITION_BALL, - .oam = &sOamData_8625A28, - .anims = sSpriteAnimTable_8625A40, + .tileTag = TAG_CONDITION_BALL, + .paletteTag = TAG_CONDITION_BALL, + .oam = &sOam_ConditionSelectionIcon, + .anims = sAnims_ConditionSelectionIcon, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy, @@ -1221,30 +1222,37 @@ void LoadConditionSelectionIcons(struct SpriteSheet *sheets, struct SpriteTempla *(pals++) = dataPals[i]; } +#define sSparkleId data[0] +#define sDelayTimer data[1] +#define sNumExtraSparkles data[2] +#define sCurSparkleId data[3] +#define sMonSpriteId data[4] +#define sNextSparkleSpriteId data[5] + void LoadConditionSparkle(struct SpriteSheet *sheet, struct SpritePalette *pal) { - struct SpriteSheet dataSheet = {sConditionSparkle_Pal, 0x380, TAG_SPMENU_CONDITION_SPARKLE}; - struct SpritePalette dataPal = {sConditionSparkle_Gfx, TAG_SPMENU_CONDITION_SPARKLE}; + struct SpriteSheet dataSheet = {sConditionSparkle_Pal, 0x380, TAG_CONDITION_SPARKLE}; + struct SpritePalette dataPal = {sConditionSparkle_Gfx, TAG_CONDITION_SPARKLE}; *sheet = dataSheet; *pal = dataPal; } -static void sub_81D32D4(struct Sprite *sprite) +static void SpriteCB_ConditionSparkle_DoNextAfterDelay(struct Sprite *sprite) { - if (++sprite->data[1] > 60) + if (++sprite->sDelayTimer > 60) { - sprite->data[1] = 0; - sub_81D3408(sprite); + sprite->sDelayTimer = 0; + SetNextConditionSparkle(sprite); } } -static void sub_81D32F4(struct Sprite *sprite) +static void SpriteCB_ConditionSparkle_WaitForAllAnim(struct Sprite *sprite) { if (sprite->animEnded) { - sprite->data[1] = 0; - sprite->callback = sub_81D32D4; + sprite->sDelayTimer = 0; + sprite->callback = SpriteCB_ConditionSparkle_DoNextAfterDelay; } } @@ -1274,31 +1282,19 @@ static const union AnimCmd sAnim_ConditionSparkle[] = static const union AnimCmd *const sAnims_ConditionSparkle[] = { - sAnim_ConditionSparkle, - sAnim_ConditionSparkle + 2, + &sAnim_ConditionSparkle[0], // Only this entry is used + &sAnim_ConditionSparkle[2], + &sAnim_ConditionSparkle[4], + &sAnim_ConditionSparkle[6], + &sAnim_ConditionSparkle[8], // Here below OOB, will crash if used + &sAnim_ConditionSparkle[10], + &sAnim_ConditionSparkle[12], }; -// unused -static const union AnimCmd *const sSpriteAnimTable_8625B00[] = -{ - sAnim_ConditionSparkle + 4, - sAnim_ConditionSparkle + 6, -}; - -// unused -static const union AnimCmd *const sSpriteAnimTable_8625B08[] = -{ - sAnim_ConditionSparkle + 8, - sAnim_ConditionSparkle + 10, -}; - -// unused -static const union AnimCmd *const *const sUnknown_08625B10 = sSpriteAnimTable_8625B08; - static const struct SpriteTemplate sSpriteTemplate_ConditionSparkle = { - .tileTag = TAG_SPMENU_CONDITION_SPARKLE, - .paletteTag = TAG_SPMENU_CONDITION_SPARKLE, + .tileTag = TAG_CONDITION_SPARKLE, + .paletteTag = TAG_CONDITION_SPARKLE, .oam = &sOam_ConditionSparkle, .anims = sAnims_ConditionSparkle, .images = NULL, @@ -1306,37 +1302,37 @@ static const struct SpriteTemplate sSpriteTemplate_ConditionSparkle = .callback = SpriteCB_ConditionSparkle, }; -static const s16 gUnknown_08625B2C[][2] = +static const s16 sConditionSparkleCoords[MAX_CONDITION_SPARKLES][2] = { - {0, -35}, - {20, -28}, - {33, -10}, - {33, 10}, - {20, 28}, - {0, 35}, - {-20, 28}, - {-33, 10}, - {-33, -10}, - {-20, -28}, + { 0, -35}, + { 20, -28}, + { 33, -10}, + { 33, 10}, + { 20, 28}, + { 0, 35}, + {-20, 28}, + {-33, 10}, + {-33, -10}, + {-20, -28}, }; -static void sub_81D3314(struct Sprite *sprite) +static void SetConditionSparklePosition(struct Sprite *sprite) { - struct Sprite *sprite2 = &gSprites[sprite->data[4]]; + struct Sprite *mon = &gSprites[sprite->sMonSpriteId]; - if (sprite2 != NULL) + if (mon != NULL) { - sprite->pos1.x = sprite2->pos1.x + sprite2->pos2.x + gUnknown_08625B2C[sprite->data[0]][0]; - sprite->pos1.y = sprite2->pos1.y + sprite2->pos2.y + gUnknown_08625B2C[sprite->data[0]][1]; + sprite->pos1.x = mon->pos1.x + mon->pos2.x + sConditionSparkleCoords[sprite->sSparkleId][0]; + sprite->pos1.y = mon->pos1.y + mon->pos2.y + sConditionSparkleCoords[sprite->sSparkleId][1]; } else { - sprite->pos1.x = gUnknown_08625B2C[sprite->data[0]][0] + 40; - sprite->pos1.y = gUnknown_08625B2C[sprite->data[0]][1] + 104; + sprite->pos1.x = sConditionSparkleCoords[sprite->sSparkleId][0] + 40; + sprite->pos1.y = sConditionSparkleCoords[sprite->sSparkleId][1] + 104; } } -static void sub_81D338C(u8 arg0, u8 arg1, struct Sprite **sprites) +static void InitConditionSparkles(u8 count, bool8 allowFirstShowAll, struct Sprite **sprites) { u16 i; @@ -1344,35 +1340,34 @@ static void sub_81D338C(u8 arg0, u8 arg1, struct Sprite **sprites) { if (sprites[i] != NULL) { - sprites[i]->data[0] = i; - sprites[i]->data[1] = (i * 16) + 1; - sprites[i]->data[2] = arg0; - sprites[i]->data[3] = i; - if (arg1 == 0 || arg0 != 9) + sprites[i]->sSparkleId = i; + sprites[i]->sDelayTimer = (i * 16) + 1; + sprites[i]->sNumExtraSparkles = count; + sprites[i]->sCurSparkleId = i; + if (!allowFirstShowAll || count != MAX_CONDITION_SPARKLES - 1) { sprites[i]->callback = SpriteCB_ConditionSparkle; } else { - sub_81D3314(sprites[i]); - sub_81D35E8(sprites[i]); - sprites[i]->callback = sub_81D32F4; + SetConditionSparklePosition(sprites[i]); + ShowAllConditionSparkles(sprites[i]); + sprites[i]->callback = SpriteCB_ConditionSparkle_WaitForAllAnim; sprites[i]->invisible = FALSE; } } } } -static void sub_81D3408(struct Sprite *sprite) +static void SetNextConditionSparkle(struct Sprite *sprite) { u16 i; - u8 id = sprite->data[5]; - - for (i = 0; i < sprite->data[2] + 1; i++) + u8 id = sprite->sNextSparkleSpriteId; + for (i = 0; i < sprite->sNumExtraSparkles + 1; i++) { - gSprites[id].data[1] = (gSprites[id].data[0] * 16) + 1; + gSprites[id].sDelayTimer = (gSprites[id].sSparkleId * 16) + 1; gSprites[id].callback = SpriteCB_ConditionSparkle; - id = gSprites[id].data[5]; + id = gSprites[id].sNextSparkleSpriteId; } } @@ -1396,9 +1391,9 @@ void CreateConditionSparkleSprites(struct Sprite **sprites, u8 monSpriteId, u8 _ { sprites[i] = &gSprites[spriteId]; sprites[i]->invisible = TRUE; - sprites[i]->data[4] = monSpriteId; + sprites[i]->sMonSpriteId = monSpriteId; if (i != 0) - sprites[i - 1]->data[5] = spriteId; + sprites[i - 1]->sNextSparkleSpriteId = spriteId; else firstSpriteId = spriteId; } @@ -1408,8 +1403,8 @@ void CreateConditionSparkleSprites(struct Sprite **sprites, u8 monSpriteId, u8 _ } } - sprites[count]->data[5] = firstSpriteId; - sub_81D338C(count, 1, sprites); + sprites[count]->sNextSparkleSpriteId = firstSpriteId; + InitConditionSparkles(count, TRUE, sprites); } void DestroyConditionSparkleSprites(struct Sprite **sprites) @@ -1433,35 +1428,38 @@ void DestroyConditionSparkleSprites(struct Sprite **sprites) void FreeConditionSparkles(struct Sprite **sprites) { DestroyConditionSparkleSprites(sprites); - FreeSpriteTilesByTag(TAG_SPMENU_CONDITION_SPARKLE); - FreeSpritePaletteByTag(TAG_SPMENU_CONDITION_SPARKLE); + FreeSpriteTilesByTag(TAG_CONDITION_SPARKLE); + FreeSpritePaletteByTag(TAG_CONDITION_SPARKLE); } static void SpriteCB_ConditionSparkle(struct Sprite *sprite) { - if (sprite->data[1] != 0) + // Delay, then do sparkle anim + if (sprite->sDelayTimer != 0) { - if (--sprite->data[1] != 0) + if (--sprite->sDelayTimer != 0) return; SeekSpriteAnim(sprite, 0); sprite->invisible = FALSE; } - sub_81D3314(sprite); + SetConditionSparklePosition(sprite); + + // Set up next sparkle if (sprite->animEnded) { sprite->invisible = TRUE; - if (sprite->data[3] == sprite->data[2]) + if (sprite->sCurSparkleId == sprite->sNumExtraSparkles) { - if (sprite->data[3] == 9) + if (sprite->sCurSparkleId == MAX_CONDITION_SPARKLES - 1) { - sub_81D35E8(sprite); - sprite->callback = sub_81D32F4; + ShowAllConditionSparkles(sprite); + sprite->callback = SpriteCB_ConditionSparkle_WaitForAllAnim; } else { - sprite->callback = sub_81D32D4; + sprite->callback = SpriteCB_ConditionSparkle_DoNextAfterDelay; } } else @@ -1471,18 +1469,25 @@ static void SpriteCB_ConditionSparkle(struct Sprite *sprite) } } -static void sub_81D35E8(struct Sprite *sprite) +static void ShowAllConditionSparkles(struct Sprite *sprite) { - u8 i, id = sprite->data[5]; + u8 i, id = sprite->sNextSparkleSpriteId; - for (i = 0; i < sprite->data[2] + 1; i++) + for (i = 0; i < sprite->sNumExtraSparkles + 1; i++) { SeekSpriteAnim(&gSprites[id], 0); gSprites[id].invisible = FALSE; - id = gSprites[id].data[5]; + id = gSprites[id].sNextSparkleSpriteId; } } +#undef sSparkleId +#undef sDelayTimer +#undef sNumExtraSparkles +#undef sCurSparkleId +#undef sMonSpriteId +#undef sNextSparkleSpriteId + static const u8 *const sLvlUpStatStrings[NUM_STATS] = { gText_MaxHP, diff --git a/src/pokenav_conditions_1.c b/src/pokenav_conditions_1.c index 84e2a96825..84e7615336 100644 --- a/src/pokenav_conditions_1.c +++ b/src/pokenav_conditions_1.c @@ -25,7 +25,7 @@ struct PokenavSub11 u8 fill2[0x6320 - 0x6308]; u8 unk6320[3][24]; u8 unk6368[3][64]; - struct UnknownStruct_81D1ED4 unk6428; + struct ConditionGraph unk6428; u8 unk6780[3]; u8 unk6783[3]; s8 unk6786; @@ -546,7 +546,7 @@ u16 sub_81CDC60(void) return unkPtr->unk2; } -struct UnknownStruct_81D1ED4 *sub_81CDC70(void) +struct ConditionGraph *sub_81CDC70(void) { struct PokenavSub11 *structPtr = GetSubstructPtr(11); return &structPtr->unk6428; diff --git a/src/pokenav_conditions_2.c b/src/pokenav_conditions_2.c index 764d5c63fb..cd1ca0aa51 100644 --- a/src/pokenav_conditions_2.c +++ b/src/pokenav_conditions_2.c @@ -323,7 +323,7 @@ u32 sub_81CDE94(s32 state) sub_81CEE74(TRUE); return LT_INC_AND_PAUSE; case 20: - if (!sub_81D3178(sub_81CDC70(), &structPtr->unk1814)) + if (!TryUpdateConditionMonTransitionOn(sub_81CDC70(), &structPtr->unk1814)) { ResetConditionSparkleSprites(structPtr->unk28e0); if (sub_81CDD5C() == TRUE || sub_81CDC60() != sub_81CDC50()) @@ -348,7 +348,7 @@ u32 sub_81CE2D0(s32 state) DestroyConditionSparkleSprites(structPtr->unk28e0); return 1; case 1: - if (sub_81D31A4(sub_81CDC70(), &structPtr->unk1814)) + if (TryUpdateConditionMonTransitionOff(sub_81CDC70(), &structPtr->unk1814)) return 2; sub_81CEE74(FALSE); return 1; @@ -373,7 +373,7 @@ u32 sub_81CE2D0(s32 state) u32 sub_81CE37C(s32 state) { struct Pokenav7Struct *structPtr = GetSubstructPtr(0xC); - struct UnknownStruct_81D1ED4 *unkPtr = sub_81CDC70(); + struct ConditionGraph *unkPtr = sub_81CDC70(); switch (state) { @@ -388,10 +388,10 @@ u32 sub_81CE37C(s32 state) DestroyConditionSparkleSprites(structPtr->unk28e0); return 1; case 3: - sub_81D2074(unkPtr); + TransitionConditionGraph(unkPtr); return 1; case 4: - if (!sub_81D3150(&structPtr->unk1814)) + if (!MoveConditionMonOffscreen(&structPtr->unk1814)) { sub_81CED30(sub_81CDC84()); return 1; @@ -412,7 +412,7 @@ u32 sub_81CE37C(s32 state) return 2; case 9: unkPtr = sub_81CDC70(); - if (!sub_81D3178(unkPtr, &structPtr->unk1814)) + if (!TryUpdateConditionMonTransitionOn(unkPtr, &structPtr->unk1814)) { ResetConditionSparkleSprites(structPtr->unk28e0); if (sub_81CDD5C() != TRUE && sub_81CDC60() == sub_81CDC50()) @@ -459,7 +459,7 @@ u32 sub_81CE4D8(s32 state) return 1; return 2; case 8: - if (!sub_81D3178(sub_81CDC70(), &structPtr->unk1814)) + if (!TryUpdateConditionMonTransitionOn(sub_81CDC70(), &structPtr->unk1814)) { ResetConditionSparkleSprites(structPtr->unk28e0); CreateConditionSparkleSprites(structPtr->unk28e0, structPtr->unk1816, sub_81CDDB0()); @@ -488,7 +488,7 @@ u32 sub_81CE5E4(s32 state) DestroyConditionSparkleSprites(structPtr->unk28e0); return 1; case 3: - if (!sub_81D31A4(sub_81CDC70(), &structPtr->unk1814)) + if (!TryUpdateConditionMonTransitionOff(sub_81CDC70(), &structPtr->unk1814)) return 1; return 2; case 4: @@ -834,7 +834,7 @@ void sub_81CED30(u8 var) void sub_81CEE44(void) { - struct UnknownStruct_81D1ED4 *unk = sub_81CDC70(); + struct ConditionGraph *unk = sub_81CDC70(); LoadOam(); ProcessSpriteCopyRequests(); TransferPlttBuffer(); @@ -857,17 +857,17 @@ void sub_81CEE74(bool8 showBg) void sub_81CEE90(void) { - struct UnknownStruct_81D1ED4 *unk = sub_81CDC70(); + struct ConditionGraph *unk = sub_81CDC70(); u8 id = sub_81CDC84(); gUnknown_030012BC = id; sub_81D1F84(unk, unk->unk14[3], unk->unk14[id]); - sub_81D2074(unk); + TransitionConditionGraph(unk); } void sub_81CEEC8(void) { - struct UnknownStruct_81D1ED4 *unk = sub_81CDC70(); + struct ConditionGraph *unk = sub_81CDC70(); if (sub_81CDD5C() || sub_81CDC60() != sub_81CDC50() - 1) sub_81D1F84(unk, unk->unk14[sub_81CDC84()], unk->unk14[3]); diff --git a/src/use_pokeblock.c b/src/use_pokeblock.c index 30d5315146..ebb237d544 100644 --- a/src/use_pokeblock.c +++ b/src/use_pokeblock.c @@ -54,21 +54,21 @@ struct UsePokeblockSession struct Pokemon *mon; u8 stringBuffer[64]; u8 mainState; - u8 unused_1; + u8 unused1; u8 timer; u8 statId; u8 numEnhancements; - u8 unused_2; + u8 unused2; bool8 monInTopHalf; - u8 conditionsPreBlock[FLAVOR_COUNT]; - u8 conditionsPostBlock[FLAVOR_COUNT]; + u8 conditionsBeforeBlock[FLAVOR_COUNT]; + u8 conditionsAfterBlock[FLAVOR_COUNT]; u8 enhancements[FLAVOR_COUNT]; s16 pokeblockStatBoosts[FLAVOR_COUNT]; u8 numSelections; // num in party + 1 (for Cancel) u8 curSelection; bool8 (*loadNewSelection)(void); u8 helperState; - u8 unused_3; + u8 unused3; u8 natureText[34]; }; @@ -85,30 +85,30 @@ struct UsePokeblockMenuPokemon struct UsePokeblockMenu { - /*0x0000*/ u8 filler0[4]; // unused - /*0x0000*/ u16 partyPalettes[PARTY_SIZE][0x40]; - /*0x0304*/ u8 partySheets[NUM_SELECTIONS_LOADED][0x2000]; - /*0x6304*/ u8 filler_6304[0x1000]; // unused? - /*0x7304*/ u8 tilemapBuffer[BG_SCREEN_SIZE + 2]; - /*0x7B06*/ u8 selectionIconSpriteIds[PARTY_SIZE + 1]; - /*0x7B0E*/ s16 curMonXOffset; - /*0x7B10*/ u8 curMonSpriteId; - /*0x7B12*/ u16 curMonPalette; - /*0x7B12*/ u16 curMonSheet; - /*0x7B12*/ u8 *curMonTileStart; - /*0x7B1C*/ struct Sprite *sparkles[MAX_CONDITION_SPARKLES]; - /*0x7B44*/ struct Sprite *condition[2]; - /*0x7B4C*/ u8 field_7B4C; - /*0x7B4D*/ u8 locationStrings[NUM_SELECTIONS_LOADED][24]; // Gets an "in party" or "in box #" string that never gets printed - /*0x7B95*/ u8 monNameStrings[NUM_SELECTIONS_LOADED][64]; - /*0x7C58*/ struct UnknownStruct_81D1ED4 field_7C58; - /*0x7FB0*/ u8 numSparkles[NUM_SELECTIONS_LOADED]; - /*0x7FB3*/ s8 curLoadId; - /*0x7FB4*/ s8 nextLoadId; - /*0x7FB5*/ s8 prevLoadId; - /*0x7FB6*/ s8 toLoadId; - /*0x7FB8*/ struct UsePokeblockMenuPokemon party[PARTY_SIZE]; - /*0x7FD0*/ struct UsePokeblockSession info; + u32 unused; + u16 partyPalettes[PARTY_SIZE][0x40]; + u8 partySheets[NUM_SELECTIONS_LOADED][0x2000]; + u8 unusedBuffer[0x1000]; + u8 tilemapBuffer[BG_SCREEN_SIZE + 2]; + u8 selectionIconSpriteIds[PARTY_SIZE + 1]; + s16 curMonXOffset; + u8 curMonSpriteId; + u16 curMonPalette; + u16 curMonSheet; + u8 *curMonTileStart; + struct Sprite *sparkles[MAX_CONDITION_SPARKLES]; + struct Sprite *condition[2]; + u8 toLoadSelection; + u8 locationStrings[NUM_SELECTIONS_LOADED][24]; // Gets an "in party" or "in box #" string that never gets printed + u8 monNameStrings[NUM_SELECTIONS_LOADED][64]; + struct ConditionGraph graph; + u8 numSparkles[NUM_SELECTIONS_LOADED]; + s8 curLoadId; + s8 nextLoadId; + s8 prevLoadId; + s8 toLoadId; + struct UsePokeblockMenuPokemon party[PARTY_SIZE]; + struct UsePokeblockSession info; }; static void SetUsePokeblockCallback(void (*func)(void)); @@ -120,7 +120,7 @@ static void CB2_ShowUsePokeblockMenuForResults(void); static void ShowUsePokeblockMenuForResults(void); static void LoadPartyInfo(void); static void LoadAndCreateSelectionIcons(void); -static u8 GetNumNonEggPartyMons(u8); +static u8 GetSelectionIdFromPartyId(u8); static bool8 LoadConditionTitle(void); static bool8 LoadUsePokeblockMenuGfx(void); static void UpdateMonPic(u8); @@ -170,13 +170,13 @@ static EWRAM_DATA u8 *sGraph_Gfx = NULL; static EWRAM_DATA u8 *sMonFrame_TilemapPtr = NULL; static EWRAM_DATA struct UsePokeblockMenu *sMenu = NULL; -static const u32 sMonFrame_Pal[] = INCBIN_U32("graphics/pokeblock/use_screen/mon_frame_pal.bin"); // TODO: convert to .pal +static const u32 sMonFrame_Pal[] = INCBIN_U32("graphics/pokeblock/use_screen/mon_frame_pal.bin"); static const u32 sMonFrame_Gfx[] = INCBIN_U32("graphics/pokeblock/use_screen/mon_frame.4bpp"); static const u32 sMonFrame_Tilemap[] = INCBIN_U32("graphics/pokeblock/use_screen/mon_frame.bin"); static const u32 sGraphData_Tilemap[] = INCBIN_U32("graphics/pokeblock/use_screen/graph_data.bin"); -// For some reason the condition/flavors aren't listed in order in this file -// Normally they would go Cool/Spicy, Beauty/Dry, Cute/Sweet, Smart/Bitter, Tough/Sour +// The condition/flavors aren't listed in their normal order in this file, they're listed as shown on the graph going counter-clockwise +// Normally they would go Cool/Spicy, Beauty/Dry, Cute/Sweet, Smart/Bitter, Tough/Sour (also graph order, but clockwise) static const u32 sMonDataConditions[FLAVOR_COUNT] = { MON_DATA_COOL, @@ -370,19 +370,19 @@ static const struct OamData sOam_Condition = .paletteNum = 0, }; -static const union AnimCmd gSpriteAnim_085DFD7C[] = +static const union AnimCmd sAnim_Condition_0[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_085DFD84[] = +static const union AnimCmd sAnim_Condition_1[] = { ANIMCMD_FRAME(32, 5), ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_085DFD8C[] = +static const union AnimCmd sAnim_Condition_2[] = { ANIMCMD_FRAME(64, 5), ANIMCMD_END @@ -390,9 +390,9 @@ static const union AnimCmd gSpriteAnim_085DFD8C[] = static const union AnimCmd *const sAnims_Condition[] = { - gSpriteAnim_085DFD7C, - gSpriteAnim_085DFD84, - gSpriteAnim_085DFD8C + sAnim_Condition_0, + sAnim_Condition_1, + sAnim_Condition_2 }; static const struct SpriteTemplate sSpriteTemplate_Condition = @@ -429,7 +429,7 @@ static void CB2_ReturnAndChooseMonToGivePokeblock(void) sInfo = &sMenu->info; sInfo->pokeblock = sPokeblock; sInfo->exitCallback = sExitCallback; - gPokeblockMonId = GetNumNonEggPartyMons(gPokeblockMonId); + gPokeblockMonId = GetSelectionIdFromPartyId(gPokeblockMonId); sInfo->monInTopHalf = (gPokeblockMonId <= PARTY_SIZE / 2) ? FALSE : TRUE; SetUsePokeblockCallback(LoadUsePokeblockMenu); SetMainCallback2(CB2_ReturnToUsePokeblockMenu); @@ -470,7 +470,7 @@ static void VBlankCB_UsePokeblockMenu(void) LoadOam(); ProcessSpriteCopyRequests(); TransferPlttBuffer(); - sub_81D2108(&sMenu->field_7C58); + sub_81D2108(&sMenu->graph); ScanlineEffect_InitHBlankDmaTransfer(); } @@ -486,7 +486,7 @@ static void LoadUsePokeblockMenu(void) { case 0: sMenu->curMonSpriteId = 0xFF; - sub_81D1ED4(&sMenu->field_7C58); + sub_81D1ED4(&sMenu->graph); sInfo->mainState++; break; case 1: @@ -529,26 +529,26 @@ static void LoadUsePokeblockMenu(void) sInfo->mainState++; break; case 9: - if (!sub_81D312C(&sMenu->curMonXOffset)) + if (!MoveConditionMonOnscreen(&sMenu->curMonXOffset)) sInfo->mainState++; break; case 10: sInfo->mainState++; break; case 11: - sub_81D2754(sMenu->field_7C58.unk0[0], sMenu->field_7C58.unk14[0]); - sub_81D20AC(&sMenu->field_7C58); + sub_81D2754(sMenu->graph.unk0[0], sMenu->graph.unk14[0]); + sub_81D20AC(&sMenu->graph); sInfo->mainState++; break; case 12: - if (!sub_81D20BC(&sMenu->field_7C58)) + if (!sub_81D20BC(&sMenu->graph)) { - sub_81D1F84(&sMenu->field_7C58, sMenu->field_7C58.unk14[0], sMenu->field_7C58.unk14[0]); + sub_81D1F84(&sMenu->graph, sMenu->graph.unk14[0], sMenu->graph.unk14[0]); sInfo->mainState++; } break; case 13: - sub_81D2230(&sMenu->field_7C58); + sub_81D2230(&sMenu->graph); sInfo->mainState++; break; case 14: @@ -782,13 +782,13 @@ static void ShowPokeblockResults(void) break; case 2: CalculateConditionEnhancements(); - sub_81D2754(sInfo->conditionsPostBlock, sMenu->field_7C58.unk14[3]); - sub_81D1F84(&sMenu->field_7C58, sMenu->field_7C58.unk14[sMenu->curLoadId], sMenu->field_7C58.unk14[3]); + sub_81D2754(sInfo->conditionsAfterBlock, sMenu->graph.unk14[3]); + sub_81D1F84(&sMenu->graph, sMenu->graph.unk14[sMenu->curLoadId], sMenu->graph.unk14[3]); LoadAndCreateUpDownSprites(); sInfo->mainState++; break; case 3: - var = sub_81D2074(&sMenu->field_7C58); + var = TransitionConditionGraph(&sMenu->graph); if (!var) { CalculateNumAdditionalSparkles(GetPartyIdFromSelectionId(sMenu->info.curSelection)); @@ -995,7 +995,7 @@ static void GetMonConditions(struct Pokemon *mon, u8 *data) data[i] = GetMonData(mon, sMonDataConditions[i]); } -static void UpdateMonConditions(struct Pokeblock *pokeblock, struct Pokemon *mon) +static void AddPokeblockToConditions(struct Pokeblock *pokeblock, struct Pokemon *mon) { u16 i; s16 cstat; @@ -1031,11 +1031,11 @@ static void CalculateConditionEnhancements(void) struct Pokemon *mon = gPlayerParty; mon += sMenu->party[sMenu->info.curSelection].monId; - GetMonConditions(mon, sInfo->conditionsPreBlock); - UpdateMonConditions(sInfo->pokeblock, mon); - GetMonConditions(mon, sInfo->conditionsPostBlock); + GetMonConditions(mon, sInfo->conditionsBeforeBlock); + AddPokeblockToConditions(sInfo->pokeblock, mon); + GetMonConditions(mon, sInfo->conditionsAfterBlock); for (i = 0; i < FLAVOR_COUNT; i++) - sInfo->enhancements[i] = sInfo->conditionsPostBlock[i] - sInfo->conditionsPreBlock[i]; + sInfo->enhancements[i] = sInfo->conditionsAfterBlock[i] - sInfo->conditionsBeforeBlock[i]; } static void CalculatePokeblockEffectiveness(struct Pokeblock *pokeblock, struct Pokemon *mon) @@ -1097,18 +1097,17 @@ static u8 GetPartyIdFromSelectionId(u8 selectionId) return 0; } -// TODO: Update -static u8 GetNumNonEggPartyMons(u8 partyCount) +// Eggs are not viewable on the condition screen, so count how many are skipped over to reach the party id +static u8 GetSelectionIdFromPartyId(u8 partyId) { u8 i, numEggs; - - for (i = 0, numEggs = 0; i < partyCount; i++) + for (i = 0, numEggs = 0; i < partyId; i++) { if (GetMonData(&gPlayerParty[i], MON_DATA_IS_EGG)) numEggs++; } - return partyCount - numEggs; + return partyId - numEggs; } // Unused @@ -1204,7 +1203,7 @@ static void LoadMonInfo(s16 partyId, u8 loadId) bool8 excludesCancel = FALSE; // whether or not numSelections excludes Cancel from the count GetConditionMenuMonNameAndLocString(sMenu->locationStrings[loadId], sMenu->monNameStrings[loadId], boxId, monId, partyId, numSelections, excludesCancel); - GetConditionMenuMonConditions(&sMenu->field_7C58, sMenu->numSparkles, boxId, monId, partyId, loadId, numSelections, excludesCancel); + GetConditionMenuMonConditions(&sMenu->graph, sMenu->numSparkles, boxId, monId, partyId, loadId, numSelections, excludesCancel); GetConditionMenuMonGfx(sMenu->partySheets[loadId], sMenu->partyPalettes[loadId], boxId, monId, partyId, numSelections, excludesCancel); } @@ -1226,8 +1225,8 @@ static void UpdateMonPic(u8 loadId) sMenu->curMonSpriteId = spriteId; if (spriteId == MAX_SPRITES) { - FreeSpriteTilesByTag(TAG_SPMENU_CONDITION_MON); - FreeSpritePaletteByTag(TAG_SPMENU_CONDITION_MON); + FreeSpriteTilesByTag(TAG_CONDITION_MON); + FreeSpritePaletteByTag(TAG_CONDITION_MON); sMenu->curMonSpriteId = 0xFF; } else @@ -1277,7 +1276,7 @@ static void LoadAndCreateSelectionIcons(void) } // Fill placeholder icons for remaining (empty) party slots - spriteTemplate.tileTag = TAG_SPMENU_CONDITION_BALL_PLACEHOLDER; + spriteTemplate.tileTag = TAG_CONDITION_BALL_PLACEHOLDER; for (; i < PARTY_SIZE; i++) { spriteId = CreateSprite(&spriteTemplate, 230, (i * 20) + 8, 0); @@ -1293,7 +1292,7 @@ static void LoadAndCreateSelectionIcons(void) } // Add cancel selection icon at bottom - spriteTemplate.tileTag = TAG_SPMENU_CONDITION_CANCEL; + spriteTemplate.tileTag = TAG_CONDITION_CANCEL; spriteTemplate.callback = SpriteCB_SelectionIconCancel; spriteId = CreateSprite(&spriteTemplate, 222, (i * 20) + 8, 0); if (spriteId != MAX_SPRITES) @@ -1420,10 +1419,7 @@ static void UpdateSelection(bool8 up) else newLoadId = sMenu->nextLoadId; - sub_81D1F84( - &sMenu->field_7C58, - sMenu->field_7C58.unk14[sMenu->curLoadId], - sMenu->field_7C58.unk14[newLoadId]); + sub_81D1F84(&sMenu->graph, sMenu->graph.unk14[sMenu->curLoadId], sMenu->graph.unk14[newLoadId]); if (sMenu->info.curSelection == sMenu->info.numSelections - 1) startedOnMon = FALSE; // moving off of Cancel @@ -1442,7 +1438,7 @@ static void UpdateSelection(bool8 up) ? sMenu->info.numSelections - 1 : sMenu->info.curSelection - 1; - sMenu->field_7B4C = (sMenu->info.curSelection == 0) + sMenu->toLoadSelection = (sMenu->info.curSelection == 0) ? sMenu->info.numSelections - 1 : sMenu->info.curSelection - 1; } @@ -1458,7 +1454,7 @@ static void UpdateSelection(bool8 up) ? sMenu->info.curSelection + 1 : 0; - sMenu->field_7B4C = (sMenu->info.curSelection < sMenu->info.numSelections - 1) + sMenu->toLoadSelection = (sMenu->info.curSelection < sMenu->info.numSelections - 1) ? sMenu->info.curSelection + 1 : 0; } @@ -1491,9 +1487,10 @@ static bool8 LoadNewSelection_CancelToMon(void) sMenu->info.helperState++; break; case 2: - if (!sub_81D3178(&sMenu->field_7C58, &sMenu->curMonXOffset)) + if (!TryUpdateConditionMonTransitionOn(&sMenu->graph, &sMenu->curMonXOffset)) { - LoadMonInfo(sMenu->field_7B4C, sMenu->toLoadId); + // Load the new adjacent pokemon (not the one being shown) + LoadMonInfo(sMenu->toLoadSelection, sMenu->toLoadId); sMenu->info.helperState++; } break; @@ -1517,7 +1514,7 @@ static bool8 LoadNewSelection_MonToCancel(void) switch (sMenu->info.helperState) { case 0: - if (!sub_81D31A4(&sMenu->field_7C58, &sMenu->curMonXOffset)) + if (!TryUpdateConditionMonTransitionOff(&sMenu->graph, &sMenu->curMonXOffset)) sMenu->info.helperState++; break; case 1: @@ -1525,7 +1522,7 @@ static bool8 LoadNewSelection_MonToCancel(void) sMenu->info.helperState++; break; case 2: - LoadMonInfo(sMenu->field_7B4C, sMenu->toLoadId); + LoadMonInfo(sMenu->toLoadSelection, sMenu->toLoadId); sMenu->info.helperState++; break; case 3: @@ -1541,8 +1538,8 @@ static bool8 LoadNewSelection_MonToMon(void) switch (sMenu->info.helperState) { case 0: - sub_81D2074(&sMenu->field_7C58); - if (!sub_81D3150(&sMenu->curMonXOffset)) + TransitionConditionGraph(&sMenu->graph); + if (!MoveConditionMonOffscreen(&sMenu->curMonXOffset)) { UpdateMonPic(sMenu->curLoadId); sMenu->info.helperState++; @@ -1553,9 +1550,10 @@ static bool8 LoadNewSelection_MonToMon(void) sMenu->info.helperState++; break; case 2: - if (!sub_81D3178(&sMenu->field_7C58, &sMenu->curMonXOffset)) + if (!TryUpdateConditionMonTransitionOn(&sMenu->graph, &sMenu->curMonXOffset)) { - LoadMonInfo(sMenu->field_7B4C, sMenu->toLoadId); + // Load the new adjacent pokemon (not the one being shown) + LoadMonInfo(sMenu->toLoadSelection, sMenu->toLoadId); sMenu->info.helperState++; } break; @@ -1590,9 +1588,9 @@ static void SpriteCB_SelectionIconPokeball(struct Sprite *sprite) static void SpriteCB_SelectionIconCancel(struct Sprite *sprite) { if (sMenu->info.curSelection == sMenu->info.numSelections - 1) - sprite->oam.paletteNum = IndexOfSpritePaletteTag(TAG_SPMENU_CONDITION_BALL); + sprite->oam.paletteNum = IndexOfSpritePaletteTag(TAG_CONDITION_BALL); else - sprite->oam.paletteNum = IndexOfSpritePaletteTag(TAG_SPMENU_CONDITION_CANCEL); + sprite->oam.paletteNum = IndexOfSpritePaletteTag(TAG_CONDITION_CANCEL); } // Calculate the max id for sparkles/stars that appear around the pokemon on the condition screen From fa4d31ba969f95e47b592d64e979fc66e475146a Mon Sep 17 00:00:00 2001 From: GriffinR Date: Wed, 12 Aug 2020 19:53:08 -0400 Subject: [PATCH 059/101] Fix newline warning --- gflib/text.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gflib/text.c b/gflib/text.c index d46ac7c0e9..5722d5a438 100644 --- a/gflib/text.c +++ b/gflib/text.c @@ -475,7 +475,7 @@ u8 GetLastTextColor(u8 colorType) \ for (; i < toY; i++) \ { \ - asm("":::"sl"); \ + asm("":::"sl"); \ r5 = *(ptr++); \ for (j = fromX; j < toX; j++) \ { \ From 96ef73f88152e5e58f101b41680280d7beaf12d5 Mon Sep 17 00:00:00 2001 From: PokeCodec Date: Wed, 12 Aug 2020 19:58:58 -0400 Subject: [PATCH 060/101] removed stray line --- src/battle_anim_flying.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/battle_anim_flying.c b/src/battle_anim_flying.c index b4454b2e71..3fc4f20f26 100644 --- a/src/battle_anim_flying.c +++ b/src/battle_anim_flying.c @@ -701,7 +701,6 @@ static void sub_810E520(struct Sprite *sprite) } } data->unk0_0d = 0; - data->unk2; } data->unk0_1 = 0; break; From 4911849723195b1b7228a28bb294072070376b2e Mon Sep 17 00:00:00 2001 From: GriffinR Date: Thu, 13 Aug 2020 03:09:47 -0400 Subject: [PATCH 061/101] Document link contest connection --- common_syms/link.txt | 6 +- include/contest.h | 4 +- include/contest_link.h | 23 +++-- include/link.h | 22 ++--- include/link_rfu.h | 20 ++-- src/battle_controller_player.c | 4 +- src/battle_main.c | 14 +-- src/battle_tower.c | 4 +- src/berry_blender.c | 16 +-- src/berry_crush.c | 30 +++--- src/cable_club.c | 28 +++--- src/contest.c | 35 ++++--- src/contest_link.c | 66 +++++++------ src/contest_link_util.c | 133 +++++++++++++------------ src/contest_util.c | 107 ++++++++++---------- src/dodrio_berry_picking.c | 8 +- src/ereader_screen.c | 4 +- src/field_screen_effect.c | 6 +- src/field_specials.c | 4 +- src/link.c | 156 +++++++++++++++--------------- src/link_rfu_2.c | 109 +++++++++++---------- src/mystery_event_menu.c | 4 +- src/mystery_gift.c | 4 +- src/pokemon_jump.c | 2 +- src/record_mixing.c | 6 +- src/save.c | 6 +- src/script_pokemon_util_80F87D8.c | 2 +- src/trade.c | 46 ++++----- src/trainer_card.c | 2 +- src/union_room.c | 22 ++--- src/union_room_battle.c | 4 +- src/union_room_chat.c | 6 +- 32 files changed, 458 insertions(+), 445 deletions(-) diff --git a/common_syms/link.txt b/common_syms/link.txt index 37c16a557f..4118d1eb4b 100644 --- a/common_syms/link.txt +++ b/common_syms/link.txt @@ -12,9 +12,9 @@ gRecvCmds gLinkStatus gLinkDummy1 gLinkDummy2 -gUnknown_030030EC -gUnknown_030030F0 -gUnknown_030030F4 +gReadyToExitStandby +gReadyToCloseLink +gReadyCloseLinkType gSuppressLinkErrorMessage gWirelessCommType gSavedLinkPlayerCount diff --git a/include/contest.h b/include/contest.h index 1cad717058..5808cb9250 100644 --- a/include/contest.h +++ b/include/contest.h @@ -322,7 +322,7 @@ extern u8 gContestMonPartyIndex; extern u8 gContestPlayerMonIndex; extern u8 gContestantTurnOrder[CONTESTANT_COUNT]; extern u8 gLinkContestFlags; -extern u8 gUnknown_02039F2B; +extern u8 gContestLinkLeaderIndex; extern u16 gSpecialVar_ContestCategory; extern u16 gSpecialVar_ContestRank; extern u8 gNumLinkContestPlayers; @@ -342,7 +342,7 @@ void CreateContestMonFromParty(u8 partyIndex); void SetContestants(u8 contestType, u8 rank); void SetLinkAIContestants(u8 contestType, u8 rank, bool32 isPostgame); u8 GetContestEntryEligibility(struct Pokemon *pkmn); -void sub_80DB09C(u8 contestCategory); +void CalculateRound1Points(u8 contestCategory); bool8 IsSpeciesNotUnown(u16 species); bool8 Contest_IsMonsTurnDisabled(u8 a); void SaveLinkContestResults(void); diff --git a/include/contest_link.h b/include/contest_link.h index 52b7ee330f..02eb2f11d8 100644 --- a/include/contest_link.h +++ b/include/contest_link.h @@ -1,24 +1,23 @@ #ifndef GUARD_CONTEST_LINK_H #define GUARD_CONTEST_LINK_H -void sub_80FCC88(u8); void sub_80FCC88(u8); void Task_LinkContest_CommunicateFinalStandings(u8); -void sub_80FC580(u8); -void sub_80FC6BC(u8); -void sub_80FC804(u8); -void sub_80FCE48(u8); -void sub_80FC894(u8); -void Task_LinkContest_CommunicateMonIdxs(u8 taskId); -void sub_81D9DE4(u8 taskId); +void Task_LinkContest_Init(u8); +void Task_LinkContest_CommunicateMonsRS(u8); +void Task_LinkContest_CommunicateRngRS(u8); +void Task_LinkContest_CommunicateLeaderIdsRS(u8); +void Task_LinkContest_CommunicateCategoryRS(u8); +void Task_LinkContest_CommunicateMonIdxs(u8); +void Task_LinkContest_StartCommunicationEm(u8); void Task_LinkContest_CommunicateRound1Points(u8); void Task_LinkContest_CommunicateTurnOrder(u8); -void sub_80F8714(u8); -bool32 sub_80FC670(s16 *); +void Task_LinkContest_FinalizeConnection(u8); +void Task_LinkContest_CommunicateMoveSelections(u8); +bool32 LinkContest_TryLinkStandby(s16 *); bool32 LinkContest_SendBlock(void *, u16); bool8 LinkContest_GetBlockReceivedFromAllPlayers(void); bool8 LinkContest_GetBlockReceived(u8); -u8 sub_80F86E0(u8 *); -void Task_LinkContest_CommunicateMoveSelections(u8 taskId); +u8 LinkContest_GetLeaderIndex(u8 *); #endif //GUARD_CONTEST_LINK_H diff --git a/include/link.h b/include/link.h index 25e62ff1e1..de10bb8dcf 100644 --- a/include/link.h +++ b/include/link.h @@ -49,11 +49,11 @@ (((status) & LINK_STAT_ERRORS) >> LINK_STAT_ERRORS_SHIFT) #define LINKCMD_SEND_LINK_TYPE 0x2222 -#define LINKCMD_0x2FFE 0x2FFE +#define LINKCMD_READY_EXIT_STANDBY 0x2FFE #define LINKCMD_SEND_HELD_KEYS 0x4444 #define LINKCMD_0x5555 0x5555 #define LINKCMD_0x5566 0x5566 -#define LINKCMD_0x5FFF 0x5FFF +#define LINKCMD_READY_CLOSE_LINK 0x5FFF #define LINKCMD_0x6666 0x6666 #define LINKCMD_0x7777 0x7777 #define LINKCMD_CONT_BLOCK 0x8888 @@ -64,7 +64,7 @@ #define LINKCMD_INIT_BLOCK 0xBBBB #define LINKCMD_READY_CANCEL_TRADE 0xBBCC #define LINKCMD_SEND_HELD_KEYS_2 0xCAFE -#define LINKCMD_0xCCCC 0xCCCC +#define LINKCMD_SEND_BLOCK_REQ 0xCCCC #define LINKCMD_START_TRADE 0xCCDD #define LINKCMD_CONFIRM_FINISH_TRADE 0xDCBA #define LINKCMD_SET_MONS_TO_TRADE 0xDDDD @@ -273,11 +273,11 @@ bool32 InUnionRoom(void); void LoadWirelessStatusIndicatorSpriteGfx(void); bool8 IsLinkTaskFinished(void); void CreateWirelessStatusIndicatorSprite(u8, u8); -void sub_800ADF8(void); +void SetLinkStandbyCallback(void); void SetWirelessCommType1(void); void CheckShouldAdvanceLinkState(void); u8 IsLinkMaster(void); -void sub_800AC34(void); +void SetCloseLinkCallback(void); bool8 HandleLinkConnection(void); void SetLinkDebugValues(u32 seed, u32 flags); void sub_800A418(void); @@ -305,9 +305,9 @@ extern u16 gLinkHeldKeys; extern u32 gLinkStatus; extern u8 gUnknown_030030E4; extern u8 gUnknown_030030E8; -extern u8 gUnknown_030030EC[MAX_LINK_PLAYERS]; -extern u8 gUnknown_030030F0[MAX_LINK_PLAYERS]; -extern u16 gUnknown_030030F4; +extern bool8 gReadyToExitStandby[MAX_LINK_PLAYERS]; +extern bool8 gReadyToCloseLink[MAX_LINK_PLAYERS]; +extern u16 gReadyCloseLinkType; extern u8 gSuppressLinkErrorMessage; extern u8 gWirelessCommType; extern bool8 gSavedLinkPlayerCount; @@ -334,15 +334,15 @@ bool32 LinkDummy_Return2(void); void SetLocalLinkPlayerId(u8); u8 GetSavedPlayerCount(void); void sub_8009FAC(void); -bool8 sub_800A4D8(u8 a0); +bool8 SendBlockRequest(u8 type); u8 GetLinkPlayerCountAsBitFlags(void); u8 sub_800A0C8(s32, s32); u8 GetSavedLinkPlayerCountAsBitFlags(void); -void sub_800AD10(void); +void SetCloseLinkCallbackHandleJP(void); void CheckLinkPlayersMatchSaved(void); void StartSendingKeysToLink(void); bool8 DoesLinkPlayerCountMatchSaved(void); -void sub_800ABF4(u16 a0); +void SetCloseLinkCallbackAndType(u16 type); bool32 IsSendingKeysToLink(void); u32 GetLinkRecvQueueLength(void); diff --git a/include/link_rfu.h b/include/link_rfu.h index eede41d601..4d00039eb9 100644 --- a/include/link_rfu.h +++ b/include/link_rfu.h @@ -8,11 +8,11 @@ #define RFU_COMMAND_0x4400 0x4400 #define RFU_COMMAND_0x8800 0x8800 #define RFU_COMMAND_0x8900 0x8900 -#define RFU_COMMAND_0xA100 0xA100 +#define RFU_COMMAND_SEND_BLOCK_REQ 0xA100 #define RFU_COMMAND_0x7700 0x7700 #define RFU_COMMAND_0x7800 0x7800 -#define RFU_COMMAND_0x6600 0x6600 -#define RFU_COMMAND_0x5F00 0x5F00 +#define RFU_COMMAND_READY_EXIT_STANDBY 0x6600 +#define RFU_COMMAND_READY_CLOSE_LINK 0x5F00 #define RFU_COMMAND_0x2F00 0x2F00 #define RFU_COMMAND_0xBE00 0xBE00 #define RFU_COMMAND_0xEE00 0xEE00 @@ -125,7 +125,7 @@ struct GFRfuManager /* 0x012 */ u16 unk_12; /* 0x014 */ u8 unk_14[RFU_CHILD_MAX][14]; /* 0x04c */ u8 unk_4c[14]; - /* 0x05a */ u8 unk_5a; + /* 0x05a */ u8 blockRequestType; /* 0x05b */ u8 unk_5b; /* 0x05c */ bool8 blockReceived[MAX_RFU_PLAYERS]; /* 0x061 */ bool8 numBlocksReceived[MAX_RFU_PLAYERS]; @@ -134,14 +134,14 @@ struct GFRfuManager /* 0x068 */ u8 filler_68[4]; /* 0x06c */ struct RfuBlockSend sendBlock; /* 0x080 */ struct RfuBlockSend recvBlock[MAX_RFU_PLAYERS]; - /* 0x0e4 */ u8 unk_e4[5]; - /* 0x0e9 */ u8 unk_e9[5]; + /* 0x0e4 */ bool8 readyCloseLink[MAX_RFU_PLAYERS]; + /* 0x0e9 */ bool8 readyExitStandby[MAX_RFU_PLAYERS]; /* 0x0ee */ vu8 errorState; /* 0x0ef */ bool8 isShuttingDown; /* 0x0f0 */ u8 linkLossRecoveryState; /* 0x0f1 */ u8 status; /* 0x0f2 */ u16 unk_f2[6]; - /* 0x0fe */ u16 unk_fe; + /* 0x0fe */ u16 resendExitStandbyTimer; /* 0x100 */ u16 unk_100; /* 0x102 */ u8 unk_102; /* 0x103 */ u8 filler_103[0x10A - 0x103]; @@ -203,11 +203,11 @@ bool32 Rfu_InitBlockSend(const u8 *src, size_t size); void ClearLinkRfuCallback(void); u8 Rfu_GetLinkPlayerCount(void); u8 Rfu_GetMultiplayerId(void); -bool8 sub_8010100(u8 a0); +bool8 Rfu_SendBlockRequest(u8 type); bool8 IsLinkRfuTaskFinished(void); bool8 Rfu_IsMaster(void); -void task_add_05_task_del_08FA224_when_no_RfuFunc(void); -void sub_8010434(void); +void Rfu_SetCloseLinkCallback(void); +void Rfu_SetLinkStandbyCallback(void); void ResetLinkRfuGFLayer(void); void UpdateWirelessStatusIndicatorSprite(void); void InitRFU(void); diff --git a/src/battle_controller_player.c b/src/battle_controller_player.c index 6dd9cd2f48..1dc81f1a9d 100644 --- a/src/battle_controller_player.c +++ b/src/battle_controller_player.c @@ -886,9 +886,9 @@ void sub_80587B0(void) if (IsLinkTaskFinished()) { if (gWirelessCommType == 0) - sub_800AC34(); + SetCloseLinkCallback(); else - sub_800ADF8(); + SetLinkStandbyCallback(); gBattlerControllerFuncs[gActiveBattler] = sub_80586F8; } diff --git a/src/battle_main.c b/src/battle_main.c index dd31e12d54..72890d6da2 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -1484,9 +1484,9 @@ static void CB2_PreInitMultiBattle(void) { gBattleCommunication[MULTIUSE_STATE]++; if (gWirelessCommType) - sub_800ADF8(); + SetLinkStandbyCallback(); else - sub_800AC34(); + SetCloseLinkCallback(); } break; case 3: @@ -2368,7 +2368,7 @@ static void sub_8038F34(void) case 6: if (IsLinkTaskFinished() == TRUE) { - sub_800ADF8(); + SetLinkStandbyCallback(); BattlePutTextOnWindow(gText_LinkStandby3, 0); gBattleCommunication[MULTIUSE_STATE]++; } @@ -2382,7 +2382,7 @@ static void sub_8038F34(void) break; case 8: if (!gWirelessCommType) - sub_800AC34(); + SetCloseLinkCallback(); gBattleCommunication[MULTIUSE_STATE]++; break; case 9: @@ -2556,7 +2556,7 @@ static void sub_803939C(void) HandleBattleWindow(0x18, 8, 0x1D, 0xD, WINDOW_CLEAR); if (gMain.field_439_x4) { - sub_800ADF8(); + SetLinkStandbyCallback(); BattlePutTextOnWindow(gText_LinkStandby3, 0); } gBattleCommunication[MULTIUSE_STATE]++; @@ -2566,7 +2566,7 @@ static void sub_803939C(void) if (--gBattleCommunication[1] == 0) { if (gMain.field_439_x4 && !gWirelessCommType) - sub_800AC34(); + SetCloseLinkCallback(); gBattleCommunication[MULTIUSE_STATE]++; } break; @@ -2605,7 +2605,7 @@ static void sub_803939C(void) { if (gMain.field_439_x4) { - sub_800ADF8(); + SetLinkStandbyCallback(); BattlePutTextOnWindow(gText_LinkStandby3, 0); } gBattleCommunication[MULTIUSE_STATE]++; diff --git a/src/battle_tower.c b/src/battle_tower.c index 4695d9aa08..7377a6798b 100644 --- a/src/battle_tower.c +++ b/src/battle_tower.c @@ -2627,7 +2627,7 @@ static void LoadLinkMultiOpponentsData(void) } break; case 4: - sub_800AC34(); + SetCloseLinkCallback(); gSpecialVar_Result = 5; break; case 5: @@ -2644,7 +2644,7 @@ static void LoadLinkMultiOpponentsData(void) static void sub_8164DCC(void) { if (gWirelessCommType != 0) - sub_800AC34(); + SetCloseLinkCallback(); } static void SetMultiPartnerGfx(void) diff --git a/src/berry_blender.c b/src/berry_blender.c index a2a96c0892..14a1ffff80 100644 --- a/src/berry_blender.c +++ b/src/berry_blender.c @@ -1230,7 +1230,7 @@ static void sub_8080018(void) sBerryBlenderData->field_114 = 0; Blender_CopyBerryData(&sBerryBlenderData->blendedBerries[0], gSpecialVar_ItemId); memcpy(gBlockSendBuffer, &sBerryBlenderData->blendedBerries[0], sizeof(struct BlenderBerry)); - sub_800ADF8(); + SetLinkStandbyCallback(); sBerryBlenderData->framesToWait = 0; break; case 9: @@ -1238,7 +1238,7 @@ static void sub_8080018(void) { ResetBlockReceivedFlags(); if (GetMultiplayerId() == 0) - sub_800A4D8(4); + SendBlockRequest(4); sBerryBlenderData->mainState++; } break; @@ -1332,7 +1332,7 @@ static void sub_8080018(void) sBerryBlenderData->mainState++; break; case 19: - sub_800ADF8(); + SetLinkStandbyCallback(); sBerryBlenderData->mainState++; break; case 20: @@ -2587,7 +2587,7 @@ static bool8 LinkPlayAgainHandleSaving(void) switch (sBerryBlenderData->field_1A0) { case 0: - sub_800ADF8(); + SetLinkStandbyCallback(); sBerryBlenderData->field_1A0 = 1; sBerryBlenderData->framesToWait = 0; break; @@ -2606,7 +2606,7 @@ static bool8 LinkPlayAgainHandleSaving(void) case 3: if (++sBerryBlenderData->framesToWait == 10) { - sub_800ADF8(); + SetLinkStandbyCallback(); sBerryBlenderData->field_1A0++; } break; @@ -2682,7 +2682,7 @@ static void CB2_HandlePlayerLinkPlayAgainChoice(void) break; case 5: Blender_PrintText(&sBerryBlenderData->textState, gText_SavingDontTurnOff2, 0); - sub_800ADF8(); + SetLinkStandbyCallback(); sBerryBlenderData->gameEndState++; break; case 6: @@ -2702,7 +2702,7 @@ static void CB2_HandlePlayerLinkPlayAgainChoice(void) break; case 8: sBerryBlenderData->gameEndState++; - sub_800ADF8(); + SetLinkStandbyCallback(); break; case 9: if (IsLinkTaskFinished()) @@ -2732,7 +2732,7 @@ static void CB2_HandlePlayerLinkPlayAgainChoice(void) case 11: if (++sBerryBlenderData->framesToWait > 30) { - sub_800AC34(); + SetCloseLinkCallback(); sBerryBlenderData->gameEndState++; } break; diff --git a/src/berry_crush.c b/src/berry_crush.c index 90a299a747..42199e757b 100755 --- a/src/berry_crush.c +++ b/src/berry_crush.c @@ -1125,7 +1125,7 @@ int sub_802130C(void) switch (var0->unkC) { case 0: - sub_8010434(); + Rfu_SetLinkStandbyCallback(); break; case 1: if (!IsLinkTaskFinished()) @@ -2027,7 +2027,7 @@ static u32 sub_8022CB0(struct BerryCrushGame *r4, u8 *r5) r4->unkC = 3; return 0; case 1: - sub_8010434(); + Rfu_SetLinkStandbyCallback(); ++r4->unkC; return 0; case 2: @@ -2110,7 +2110,7 @@ static u32 sub_8022E5C(struct BerryCrushGame *r4, __attribute__((unused)) u8 *r1 switch (r4->unkC) { case 0: - sub_8010434(); + Rfu_SetLinkStandbyCallback(); break; case 1: if (IsLinkTaskFinished()) @@ -2167,7 +2167,7 @@ static u32 sub_8022F1C(struct BerryCrushGame *r5, u8 *r2) sub_8022BEC(3, 1, NULL); return 0; case 1: - sub_8010434(); + Rfu_SetLinkStandbyCallback(); break; case 2: if (!IsLinkTaskFinished()) @@ -2213,7 +2213,7 @@ static u32 sub_8023070(struct BerryCrushGame *r4, __attribute__((unused)) u8 *r { case 0: sub_80214A8(r4, &r4->unk138); - sub_8010434(); + Rfu_SetLinkStandbyCallback(); break; case 1: if (!IsLinkTaskFinished()) @@ -2233,7 +2233,7 @@ static u32 sub_8023070(struct BerryCrushGame *r4, __attribute__((unused)) u8 *r return 0; r4->unk138.unk38[r4->unk138.unk0] = NULL; ++r4->unk138.unk0; - sub_8010434(); + Rfu_SetLinkStandbyCallback(); break; case 4: if (!IsLinkTaskFinished()) @@ -2247,7 +2247,7 @@ static u32 sub_8023070(struct BerryCrushGame *r4, __attribute__((unused)) u8 *r break; case 5: sub_80216A8(r4, &r4->unk138); - sub_8010434(); + Rfu_SetLinkStandbyCallback(); break; case 6: if (!IsLinkTaskFinished()) @@ -2295,7 +2295,7 @@ static u32 sub_80231B8(struct BerryCrushGame *r4, __attribute__((unused)) u8 *r SetGpuReg(REG_OFFSET_BG0VOFS, 0); SetGpuReg(REG_OFFSET_BG2VOFS, 0); SetGpuReg(REG_OFFSET_BG3VOFS, 0); - sub_8010434(); + Rfu_SetLinkStandbyCallback(); break; case 3: if (!IsLinkTaskFinished()) @@ -2323,7 +2323,7 @@ static u32 sub_80232EC(struct BerryCrushGame *r4, __attribute__((unused)) u8 *r return 0; // fallthrough case 0: - sub_8010434(); + Rfu_SetLinkStandbyCallback(); break; case 3: if (!IsLinkTaskFinished()) @@ -2703,7 +2703,7 @@ static u32 sub_8023A30(struct BerryCrushGame *r4, __attribute__((unused)) u8 *r1 case 4: if (!sub_80218D4(r4, &r4->unk138)) return 0; - sub_8010434(); + Rfu_SetLinkStandbyCallback(); r4->unk10 = 0; break; case 5: @@ -2737,7 +2737,7 @@ static u32 sub_8023BC0(struct BerryCrushGame *r5, u8 *r6) case 2: if (!sub_80218D4(r5, &r5->unk138)) return 0; - sub_8010434(); + Rfu_SetLinkStandbyCallback(); r5->unk10 = 0; SetGpuReg(REG_OFFSET_BG0VOFS, 0); SetGpuReg(REG_OFFSET_BG2VOFS, 0); @@ -3005,7 +3005,7 @@ static u32 sub_8024134(struct BerryCrushGame *r5, u8 *r4) r5->unkC = 0; return 0; case 1: - sub_8010434(); + Rfu_SetLinkStandbyCallback(); break; case 2: if (!IsLinkTaskFinished()) @@ -3084,7 +3084,7 @@ static u32 sub_80242E0(struct BerryCrushGame *r4, __attribute__((unused)) u8 *r1 switch (r4->unkC) { case 0: - sub_8010434(); + Rfu_SetLinkStandbyCallback(); break; case 1: if (!IsLinkTaskFinished()) @@ -3184,12 +3184,12 @@ static u32 sub_8024508(struct BerryCrushGame *r5, __attribute__((unused)) u8 *r1 switch (r5->unkC) { case 0: - sub_8010434(); + Rfu_SetLinkStandbyCallback(); break; case 1: if (!IsLinkTaskFinished()) return 0; - sub_800AC34(); + SetCloseLinkCallback(); break; case 2: if (gReceivedRemoteLinkPlayers != 0) diff --git a/src/cable_club.c b/src/cable_club.c index 15e4683902..b6fba361e9 100644 --- a/src/cable_club.c +++ b/src/cable_club.c @@ -203,7 +203,7 @@ static void sub_80B2600(u8 taskId) gTasks[taskId].data[0]++; if (gTasks[taskId].data[0] == 10) { - sub_800A4D8(2); + SendBlockRequest(2); DestroyTask(taskId); } } @@ -357,7 +357,7 @@ static void Task_LinkupExchangeDataWithLeader(u8 taskId) if (gSpecialVar_Result == LINKUP_DIFF_SELECTIONS || gSpecialVar_Result == LINKUP_WRONG_NUM_PLAYERS) { - sub_800AC34(); + SetCloseLinkCallback(); HideFieldMessageBox(); gTasks[taskId].func = Task_StopLinkup; } @@ -392,7 +392,7 @@ static void Task_LinkupCheckStatusAfterConfirm(u8 taskId) { if (!Link_AnyPartnersPlayingRubyOrSapphire()) { - sub_800AC34(); + SetCloseLinkCallback(); HideFieldMessageBox(); gTasks[taskId].func = Task_StopLinkup; } @@ -405,7 +405,7 @@ static void Task_LinkupCheckStatusAfterConfirm(u8 taskId) } else if (gSpecialVar_Result == LINKUP_DIFF_SELECTIONS) { - sub_800AC34(); + SetCloseLinkCallback(); HideFieldMessageBox(); gTasks[taskId].func = Task_StopLinkup; } @@ -426,7 +426,7 @@ static void Task_LinkupCheckStatusAfterConfirm(u8 taskId) card->monSpecies[0] = GetMonData(&gPlayerParty[gSelectedOrderFromParty[0] - 1], MON_DATA_SPECIES, NULL); card->monSpecies[1] = GetMonData(&gPlayerParty[gSelectedOrderFromParty[1] - 1], MON_DATA_SPECIES, NULL); gTasks[taskId].func = Task_LinkupAwaitTrainerCardData; - sub_800A4D8(2); + SendBlockRequest(2); } } @@ -481,7 +481,7 @@ static void FinishLinkup(u16 *linkupStatus, u32 taskId) { // Unsuccessful battle tower linkup *linkupStatus = LINKUP_FAILED_BATTLE_TOWER; - sub_800AC34(); + SetCloseLinkCallback(); gTasks[taskId].func = Task_StopLinkup; } else @@ -503,7 +503,7 @@ static void FinishLinkup(u16 *linkupStatus, u32 taskId) else { // Unsuccessful linkup - sub_800AC34(); + SetCloseLinkCallback(); gTasks[taskId].func = Task_StopLinkup; } } @@ -686,7 +686,7 @@ static void Task_ValidateMixingGameLanguage(u8 taskId) if (mixingForeignGames) { gSpecialVar_Result = LINKUP_FOREIGN_GAME; - sub_800AD10(); + SetCloseLinkCallbackHandleJP(); gTasks[taskId].tState = 1; return; } @@ -856,7 +856,7 @@ static void Task_StartWiredCableClubBattle(u8 taskId) task->tState++; break; case 3: - sub_800AC34(); + SetCloseLinkCallback(); task->tState++; break; case 4: @@ -919,7 +919,7 @@ static void Task_StartWirelessCableClubBattle(u8 taskId) tState = 5; break; case 5: - sub_800ADF8(); + SetLinkStandbyCallback(); tState = 6; break; case 6: @@ -974,7 +974,7 @@ static void CB2_ReturnFromUnionRoomBattle(void) } else { - sub_800AC34(); + SetCloseLinkCallback(); gMain.state = 1; } break; @@ -1113,7 +1113,7 @@ static void Task_StartWiredTrade(u8 taskId) gSelectedTradeMonPositions[TRADE_PLAYER] = 0; gSelectedTradeMonPositions[TRADE_PARTNER] = 0; m4aMPlayAllStop(); - sub_800AC34(); + SetCloseLinkCallback(); task->tState++; break; case 3: @@ -1146,7 +1146,7 @@ static void Task_StartWirelessTrade(u8 taskId) gSelectedTradeMonPositions[TRADE_PLAYER] = 0; gSelectedTradeMonPositions[TRADE_PARTNER] = 0; m4aMPlayAllStop(); - sub_800ADF8(); + SetLinkStandbyCallback(); tState++; break; case 3: @@ -1264,7 +1264,7 @@ static void sub_80B3AAC(u8 taskId) // Unused static void sub_80B3AD0(u8 taskId) { - sub_800AC34(); + SetCloseLinkCallback(); gTasks[taskId].func = sub_80B3AAC; } diff --git a/src/contest.c b/src/contest.c index b90f894980..ab3897fa15 100644 --- a/src/contest.c +++ b/src/contest.c @@ -69,7 +69,7 @@ static void Task_EndCommunicateMoveSelections(u8 taskId); static void Task_HideMoveSelectScreen(u8 taskId); static void Task_HideApplauseMeterForAppealStart(u8 taskId); static void Task_WaitHideApplauseMeterForAppealStart(u8 taskId); -static void sub_80D8A88(u8 taskId); +static void Task_AppealSetup(u8 taskId); static void Task_DoAppeals(u8 taskId); static void sub_80DA110(u8); static void sub_80DA134(struct Sprite *); @@ -94,7 +94,7 @@ static void Task_CommunicateFinalStandings(u8); static void Task_EndCommunicateFinalStandings(u8); static void Task_ContestReturnToField(u8); static void FieldCB_ContestReturnToField(void); -static bool8 sub_80DA8A4(void); +static bool8 IsPlayerLinkLeader(void); static void PrintContestantTrainerName(u8); static void PrintContestantTrainerNameWithColor(u8 a0, u8 a1); static void PrintContestantMonName(u8); @@ -250,7 +250,7 @@ EWRAM_DATA u8 gContestantTurnOrder[CONTESTANT_COUNT] = {0}; EWRAM_DATA u8 gLinkContestFlags = 0; // Bit 0: Is a link contest // Bit 1: Link contest uses wireless adapter -EWRAM_DATA u8 gUnknown_02039F2B = 0; +EWRAM_DATA u8 gContestLinkLeaderIndex = 0; EWRAM_DATA u16 gSpecialVar_ContestCategory = 0; EWRAM_DATA u16 gSpecialVar_ContestRank = 0; EWRAM_DATA u8 gNumLinkContestPlayers = 0; @@ -1118,7 +1118,7 @@ static void Task_TryStartLinkContest(u8 taskId) case 1: if (IsLinkTaskFinished()) { - sub_800ADF8(); + SetLinkStandbyCallback(); gTasks[taskId].data[0]++; } return; @@ -1566,16 +1566,16 @@ static void Task_HideApplauseMeterForAppealStart(u8 taskId) static void Task_WaitHideApplauseMeterForAppealStart(u8 taskId) { if (!eContest.applauseMeterIsMoving && !eContest.sliderHeartsAnimating) - gTasks[taskId].func = sub_80D8A88; + gTasks[taskId].func = Task_AppealSetup; } -static void sub_80D8A88(u8 taskId) +static void Task_AppealSetup(u8 taskId) { if (++gTasks[taskId].data[0] > 19) { eContest.turnNumber = 0; eContest.unk1921C = gRngValue; - if ((gLinkContestFlags & LINK_CONTEST_FLAG_IS_LINK) && sub_80DA8A4()) + if ((gLinkContestFlags & LINK_CONTEST_FLAG_IS_LINK) && IsPlayerLinkLeader()) { s32 i; @@ -1611,7 +1611,7 @@ static void Task_DoAppeals(u8 taskId) u8 taskId2; eContest.unk1920B_2 = 1; - if (sub_80DA8A4()) + if (IsPlayerLinkLeader()) sub_80DD080(eContest.currentContestant); taskId2 = CreateTask(sub_80FCC88, 0); SetTaskFuncWithFollowupFunc(taskId2, sub_80FCC88, sub_80DA110); @@ -2339,7 +2339,7 @@ static void sub_80DA198(u8 taskId) u8 taskId2; eContest.unk1920B_2 = 1; - if (sub_80DA8A4()) + if (IsPlayerLinkLeader()) { RankContestants(); SetAttentionLevels(); @@ -2619,9 +2619,9 @@ static void TryPutPlayerLast(void) gContestPlayerMonIndex = CONTESTANT_COUNT - 1; } -static bool8 sub_80DA8A4(void) +static bool8 IsPlayerLinkLeader(void) { - if (gContestPlayerMonIndex == gUnknown_02039F2B) + if (gContestPlayerMonIndex == gContestLinkLeaderIndex) return TRUE; return FALSE; } @@ -2902,7 +2902,7 @@ static void PrintContestantMonNameWithColor(u8 contestant, u8 color) Contest_PrintTextToBg0WindowAt(gContestantTurnOrder[contestant], gDisplayedStringBattle, 5, 1, 7); } -static u16 sub_80DAFE0(u8 who, u8 contestCategory) +static u16 CalculateContestantRound1Points(u8 who, u8 contestCategory) { u8 statMain; u8 statSub1; @@ -2940,12 +2940,12 @@ static u16 sub_80DAFE0(u8 who, u8 contestCategory) return statMain + (statSub1 + statSub2 + gContestMons[who].sheen) / 2; } -void sub_80DB09C(u8 contestCategory) +void CalculateRound1Points(u8 contestCategory) { s32 i; for (i = 0; i < CONTESTANT_COUNT; i++) - gContestMonRound1Points[i] = sub_80DAFE0(i, contestCategory); + gContestMonRound1Points[i] = CalculateContestantRound1Points(i, contestCategory); } static u8 sub_80DB0C4(void) @@ -4252,13 +4252,12 @@ static void sub_80DD080(u8 contestant) u16 move; u8 effect; u8 rnd; - bool8 r8; + bool8 canUseTurn; s32 i; eContestantStatus[contestant].appeal2 = 0; eContestantStatus[contestant].appeal1 = 0; - r8 = ContestantCanUseTurn(contestant); - if (!r8) + if (!ContestantCanUseTurn(contestant)) return; move = eContestantStatus[contestant].currMove; @@ -4974,7 +4973,7 @@ static void sub_80DE4A8(u8 taskId) u8 taskId2; eContest.unk1920B_2 = 1; - if (sub_80DA8A4()) + if (IsPlayerLinkLeader()) sub_80DBAA0(); taskId2 = CreateTask(sub_80FCC88, 0); SetTaskFuncWithFollowupFunc(taskId2, sub_80FCC88, sub_80DA110); diff --git a/src/contest_link.c b/src/contest_link.c index 172a2b2ba9..aff24052aa 100644 --- a/src/contest_link.c +++ b/src/contest_link.c @@ -9,8 +9,8 @@ #include "contest_link.h" #include "constants/flags.h" -static void sub_80FC5C0(u8); -static void sub_80FC5DC(u8); +static void Task_LinkContest_StartInitFlags(u8); +static void Task_LinkContest_InitFlags(u8); #define tState data[0] #define tCategory data[9] @@ -52,7 +52,7 @@ bool8 LinkContest_GetBlockReceivedFromAllPlayers(void) } } -void sub_80FC580(u8 taskId) +void Task_LinkContest_Init(u8 taskId) { u8 i; @@ -60,15 +60,15 @@ void sub_80FC580(u8 taskId) gBlockRecvBuffer[i][0] = 0xFF; gTasks[taskId].tState = 0; - gTasks[taskId].func = sub_80FC5C0; + gTasks[taskId].func = Task_LinkContest_StartInitFlags; } -static void sub_80FC5C0(u8 taskId) +static void Task_LinkContest_StartInitFlags(u8 taskId) { - gTasks[taskId].func = sub_80FC5DC; + gTasks[taskId].func = Task_LinkContest_InitFlags; } -static void sub_80FC5DC(u8 taskId) +static void Task_LinkContest_InitFlags(u8 taskId) { int i; @@ -91,8 +91,9 @@ static void sub_80FC5DC(u8 taskId) SwitchTaskToFollowupFunc(taskId); } -bool32 sub_80FC670(s16 *state) +bool32 LinkContest_TryLinkStandby(s16 *state) { + // Skip standby for RS cabled links if (gLinkContestFlags & LINK_CONTEST_FLAG_HAS_RS_PLAYER) return TRUE; @@ -101,7 +102,7 @@ bool32 sub_80FC670(s16 *state) case 0: if (IsLinkTaskFinished()) { - sub_800ADF8(); + SetLinkStandbyCallback(); (*state)++; } return FALSE; @@ -116,16 +117,17 @@ bool32 sub_80FC670(s16 *state) } } -void sub_80FC6BC(u8 taskId) +void Task_LinkContest_CommunicateMonsRS(u8 taskId) { int i; - if (!sub_80FC670(&gTasks[taskId].data[12])) + if (!LinkContest_TryLinkStandby(&gTasks[taskId].data[12])) return; switch (gTasks[taskId].tState) { case 0: + // Send players mon if (GetMultiplayerId() == 0) { if (IsLinkTaskFinished()) @@ -141,6 +143,7 @@ void sub_80FC6BC(u8 taskId) } break; case 1: + // Wait for other players data if (LinkContest_GetBlockReceivedFromAllPlayers()) { for (i = 0; i < gNumLinkContestPlayers; i++) @@ -153,9 +156,10 @@ void sub_80FC6BC(u8 taskId) } break; case 10: + // Only if leader. Request other players data if (++gTasks[taskId].tTimer > 300) { - sub_800A4D8(2); + SendBlockRequest(2); gTasks[taskId].tState = 1; } break; @@ -168,7 +172,7 @@ void sub_80FC6BC(u8 taskId) } } -void sub_80FC804(u8 taskId) +void Task_LinkContest_CommunicateRngRS(u8 taskId) { switch (gTasks[taskId].tState) { @@ -198,11 +202,11 @@ void sub_80FC804(u8 taskId) } } -void sub_80FC894(u8 taskId) +void Task_LinkContest_CommunicateCategoryRS(u8 taskId) { int i; - if (!sub_80FC670(&gTasks[taskId].data[12])) + if (!LinkContest_TryLinkStandby(&gTasks[taskId].data[12])) return; switch (gTasks[taskId].tState) @@ -231,7 +235,7 @@ void sub_80FC894(u8 taskId) case 10: if (++gTasks[taskId].tTimer > 10) { - sub_800A4D8(2); + SendBlockRequest(2); gTasks[taskId].tState = 1; } break; @@ -311,7 +315,7 @@ void Task_LinkContest_CommunicateFinalStandings(u8 taskId) case 1: if (LinkContest_GetBlockReceivedFromAllPlayers()) { - memcpy(gContestMonTotalPoints, gBlockRecvBuffer[gUnknown_02039F2B], sizeof(gContestMonTotalPoints)); + memcpy(gContestMonTotalPoints, gBlockRecvBuffer[gContestLinkLeaderIndex], sizeof(gContestMonTotalPoints)); gTasks[taskId].tState++; } break; @@ -335,7 +339,7 @@ void Task_LinkContest_CommunicateFinalStandings(u8 taskId) case 4: if (LinkContest_GetBlockReceivedFromAllPlayers()) { - memcpy(gContestMonAppealPointTotals, gBlockRecvBuffer[gUnknown_02039F2B], sizeof(gContestMonAppealPointTotals)); + memcpy(gContestMonAppealPointTotals, gBlockRecvBuffer[gContestLinkLeaderIndex], sizeof(gContestMonAppealPointTotals)); gTasks[taskId].tState++; } break; @@ -349,7 +353,7 @@ void Task_LinkContest_CommunicateFinalStandings(u8 taskId) case 7: if (LinkContest_GetBlockReceivedFromAllPlayers()) { - memcpy(gContestMonRound2Points, gBlockRecvBuffer[gUnknown_02039F2B], sizeof(gContestMonRound2Points)); + memcpy(gContestMonRound2Points, gBlockRecvBuffer[gContestLinkLeaderIndex], sizeof(gContestMonRound2Points)); gTasks[taskId].tState++; } break; @@ -363,7 +367,7 @@ void Task_LinkContest_CommunicateFinalStandings(u8 taskId) case 10: if (LinkContest_GetBlockReceivedFromAllPlayers()) { - memcpy(gContestFinalStandings, gBlockRecvBuffer[gUnknown_02039F2B], sizeof(gContestFinalStandings)); + memcpy(gContestFinalStandings, gBlockRecvBuffer[gContestLinkLeaderIndex], sizeof(gContestFinalStandings)); gTasks[taskId].tState++; } break; @@ -388,7 +392,7 @@ void sub_80FCC88(u8 taskId) case 1: if (LinkContest_GetBlockReceivedFromAllPlayers()) { - memcpy(eContestantStatus, gBlockRecvBuffer[gUnknown_02039F2B], CONTESTANT_COUNT * sizeof(struct ContestantStatus)); + memcpy(eContestantStatus, gBlockRecvBuffer[gContestLinkLeaderIndex], CONTESTANT_COUNT * sizeof(struct ContestantStatus)); gTasks[taskId].tState++; } break; @@ -412,7 +416,7 @@ void sub_80FCC88(u8 taskId) case 4: if (LinkContest_GetBlockReceivedFromAllPlayers()) { - memcpy(gContestResources->field_8, gBlockRecvBuffer[gUnknown_02039F2B], sizeof(struct UnknownContestStruct7)); + memcpy(gContestResources->field_8, gBlockRecvBuffer[gContestLinkLeaderIndex], sizeof(struct UnknownContestStruct7)); gTasks[taskId].tState++; } break; @@ -426,7 +430,7 @@ void sub_80FCC88(u8 taskId) case 7: if (LinkContest_GetBlockReceivedFromAllPlayers()) { - memcpy(gContestResources->field_10, gBlockRecvBuffer[gUnknown_02039F2B], sizeof(struct UnknownContestStruct5)); + memcpy(gContestResources->field_10, gBlockRecvBuffer[gContestLinkLeaderIndex], sizeof(struct UnknownContestStruct5)); gTasks[taskId].tState++; } break; @@ -440,7 +444,7 @@ void sub_80FCC88(u8 taskId) case 10: if (LinkContest_GetBlockReceivedFromAllPlayers()) { - memcpy(gContestantTurnOrder, gBlockRecvBuffer[gUnknown_02039F2B], sizeof(gContestantTurnOrder)); + memcpy(gContestantTurnOrder, gBlockRecvBuffer[gContestLinkLeaderIndex], sizeof(gContestantTurnOrder)); gTasks[taskId].tState++; } break; @@ -451,11 +455,11 @@ void sub_80FCC88(u8 taskId) } } -void sub_80FCE48(u8 taskId) +void Task_LinkContest_CommunicateLeaderIdsRS(u8 taskId) { int i; - if (!sub_80FC670(&gTasks[taskId].data[12])) + if (!LinkContest_TryLinkStandby(&gTasks[taskId].data[12])) return; switch (gTasks[taskId].tState) @@ -484,7 +488,7 @@ void sub_80FCE48(u8 taskId) case 10: if (++gTasks[taskId].tTimer > 10) { - sub_800A4D8(2); + SendBlockRequest(2); gTasks[taskId].tState = 1; } break; @@ -499,7 +503,7 @@ void sub_80FCE48(u8 taskId) void Task_LinkContest_CommunicateRound1Points(u8 taskId) { - if (!sub_80FC670(&gTasks[taskId].data[12])) + if (!LinkContest_TryLinkStandby(&gTasks[taskId].data[12])) return; switch (gTasks[taskId].tState) @@ -514,7 +518,7 @@ void Task_LinkContest_CommunicateRound1Points(u8 taskId) case 1: if (LinkContest_GetBlockReceivedFromAllPlayers()) { - memcpy(gContestMonRound1Points, gBlockRecvBuffer[gUnknown_02039F2B], sizeof(gContestMonRound1Points)); + memcpy(gContestMonRound1Points, gBlockRecvBuffer[gContestLinkLeaderIndex], sizeof(gContestMonRound1Points)); gTasks[taskId].tState++; } break; @@ -528,7 +532,7 @@ void Task_LinkContest_CommunicateRound1Points(u8 taskId) void Task_LinkContest_CommunicateTurnOrder(u8 taskId) { - if (!sub_80FC670(&gTasks[taskId].data[12])) + if (!LinkContest_TryLinkStandby(&gTasks[taskId].data[12])) return; switch (gTasks[taskId].tState) @@ -543,7 +547,7 @@ void Task_LinkContest_CommunicateTurnOrder(u8 taskId) case 1: if (LinkContest_GetBlockReceivedFromAllPlayers()) { - memcpy(gContestantTurnOrder, gBlockRecvBuffer[gUnknown_02039F2B], sizeof(gContestantTurnOrder)); + memcpy(gContestantTurnOrder, gBlockRecvBuffer[gContestLinkLeaderIndex], sizeof(gContestantTurnOrder)); gTasks[taskId].tState++; } break; diff --git a/src/contest_link_util.c b/src/contest_link_util.c index 02c94f0baf..31ffb5fdb3 100644 --- a/src/contest_link_util.c +++ b/src/contest_link_util.c @@ -6,21 +6,31 @@ #include "random.h" #include "task.h" -static void sub_81D9F14(u8); -static void sub_81D9F30(u8); -static void sub_81D9F4C(u8); -static void sub_81D9F68(u8); -static void sub_81DA10C(u8); -static void sub_81DA138(u8); -static void sub_81DA160(u8); -static void sub_81DA244(u8); -static void sub_81DA2E8(u8); -static void sub_81DA3B8(u8); -static void sub_81DA488(u8); +/* + The functions in this file handle preliminary communication + for Emerald-only link contests. If the link contest has an RS + player linked, none of these functions are used. + + The equivalent functions for RS-linked contests are spread + between contest_link.c and contest_util.c, and are suffixed RS + instead of Em +*/ + +static void Task_LinkContest_CommunicateMonsEm(u8); +static void Task_LinkContest_StartCommunicateRngEm(u8); +static void Task_LinkContest_CommunicateRngEm(u8); +static void Task_LinkContest_StartCommunicateLeaderIdsEm(u8); +static void Task_LinkContest_CommunicateLeaderIdsEm(u8); +static void Task_LinkContest_StartCommunicateCategoryEm(u8); +static void Task_LinkContest_CommunicateCategoryEm(u8); +static void Task_LinkContest_SetUpContestEm(u8); +static void Task_LinkContest_CommunicateAIMonsEm(u8); +static void Task_LinkContest_CalculateRound1Em(u8); +static void Task_LinkContest_CalculateTurnOrderEm(u8); #define tCategory data[9] -void sub_81D9DE4(u8 taskId) +void Task_LinkContest_StartCommunicationEm(u8 taskId) { int gameCleared; @@ -47,57 +57,51 @@ void sub_81D9DE4(u8 taskId) gContestMons[gContestPlayerMonIndex].highestRank = gHighestRibbonRank; gameCleared = FlagGet(FLAG_SYS_GAME_CLEAR) > 0; gContestMons[gContestPlayerMonIndex].gameCleared = gameCleared; - SetTaskFuncWithFollowupFunc(taskId, sub_81DA160, sub_81D9F14); + SetTaskFuncWithFollowupFunc(taskId, Task_LinkContest_CommunicateMonsEm, Task_LinkContest_StartCommunicateRngEm); } -static void sub_81D9F14(u8 taskId) +static void Task_LinkContest_StartCommunicateRngEm(u8 taskId) { - SetTaskFuncWithFollowupFunc(taskId, sub_81DA244, sub_81D9F30); + SetTaskFuncWithFollowupFunc(taskId, Task_LinkContest_CommunicateRngEm, Task_LinkContest_StartCommunicateLeaderIdsEm); } -static void sub_81D9F30(u8 taskId) +static void Task_LinkContest_StartCommunicateLeaderIdsEm(u8 taskId) { - SetTaskFuncWithFollowupFunc(taskId, sub_81DA2E8, sub_81D9F4C); + SetTaskFuncWithFollowupFunc(taskId, Task_LinkContest_CommunicateLeaderIdsEm, Task_LinkContest_StartCommunicateCategoryEm); } -static void sub_81D9F4C(u8 taskId) +static void Task_LinkContest_StartCommunicateCategoryEm(u8 taskId) { - SetTaskFuncWithFollowupFunc(taskId, sub_81DA3B8, sub_81D9F68); + SetTaskFuncWithFollowupFunc(taskId, Task_LinkContest_CommunicateCategoryEm, Task_LinkContest_SetUpContestEm); } -static void sub_81D9F68(u8 taskId) +static void Task_LinkContest_SetUpContestEm(u8 taskId) { u8 i; u8 rank; int gameCleared; - u8 contestCategories[CONTESTANT_COUNT]; - u8 data2[CONTESTANT_COUNT]; + u8 categories[CONTESTANT_COUNT]; + u8 leaderIds[CONTESTANT_COUNT]; - memset(contestCategories, 0, sizeof(contestCategories)); - memset(data2, 0, sizeof(data2)); + memset(categories, 0, sizeof(categories)); + memset(leaderIds, 0, sizeof(leaderIds)); for (i = 0; i < gNumLinkContestPlayers; i++) - contestCategories[i] = gTasks[taskId].data[i + 1]; + categories[i] = gTasks[taskId].data[i + 1]; // Ensure all players are doing the same category - i = 0; - if (i < gNumLinkContestPlayers) - { - while (++i < gNumLinkContestPlayers) - { - if (contestCategories[0] != contestCategories[i]) - break; - } - } + for (i = 0; i < gNumLinkContestPlayers && categories[0] == categories[i]; i++) + ; if (i == gNumLinkContestPlayers) - gSpecialVar_0x8004 = FALSE; + gSpecialVar_0x8004 = FALSE; // Category choices the same else - gSpecialVar_0x8004 = TRUE; + gSpecialVar_0x8004 = TRUE; // Category choices differ for (i = 0; i < gNumLinkContestPlayers; i++) - data2[i] = gTasks[taskId].data[i + 5]; + leaderIds[i] = gTasks[taskId].data[i + 5]; + // If < 4 players and player is leader, set AI contestants based on rank and game clear if (gNumLinkContestPlayers != CONTESTANT_COUNT && GetMultiplayerId() == 0) { rank = gContestMons[0].highestRank; @@ -110,43 +114,45 @@ static void sub_81D9F68(u8 taskId) if (rank) rank--; - gameCleared = 1; + gameCleared = TRUE; for (i = 0; i < gNumLinkContestPlayers; i++) { if (!gContestMons[i].gameCleared) { - gameCleared = 0; + gameCleared = FALSE; break; } } - SetLinkAIContestants(contestCategories[0], rank, gameCleared); + SetLinkAIContestants(categories[0], rank, gameCleared); } - gUnknown_02039F2B = sub_80F86E0(data2); + // Assign link leader. After initial communication all players will read data only from them + gContestLinkLeaderIndex = LinkContest_GetLeaderIndex(leaderIds); + if (gNumLinkContestPlayers < CONTESTANT_COUNT) - SetTaskFuncWithFollowupFunc(taskId, sub_81DA488, sub_81DA10C); + SetTaskFuncWithFollowupFunc(taskId, Task_LinkContest_CommunicateAIMonsEm, Task_LinkContest_CalculateRound1Em); else - gTasks[taskId].func = sub_81DA10C; + gTasks[taskId].func = Task_LinkContest_CalculateRound1Em; } -static void sub_81DA10C(u8 taskId) +static void Task_LinkContest_CalculateRound1Em(u8 taskId) { - sub_80DB09C(gSpecialVar_ContestCategory); - SetTaskFuncWithFollowupFunc(taskId, Task_LinkContest_CommunicateRound1Points, sub_81DA138); + CalculateRound1Points(gSpecialVar_ContestCategory); + SetTaskFuncWithFollowupFunc(taskId, Task_LinkContest_CommunicateRound1Points, Task_LinkContest_CalculateTurnOrderEm); } -static void sub_81DA138(u8 taskId) +static void Task_LinkContest_CalculateTurnOrderEm(u8 taskId) { SortContestants(FALSE); - SetTaskFuncWithFollowupFunc(taskId, Task_LinkContest_CommunicateTurnOrder, sub_80F8714); + SetTaskFuncWithFollowupFunc(taskId, Task_LinkContest_CommunicateTurnOrder, Task_LinkContest_FinalizeConnection); } -static void sub_81DA160(u8 taskId) +static void Task_LinkContest_CommunicateMonsEm(u8 taskId) { int i; - if (!sub_80FC670(&gTasks[taskId].data[12])) + if (!LinkContest_TryLinkStandby(&gTasks[taskId].data[12])) return; switch (gTasks[taskId].data[0]) @@ -178,9 +184,9 @@ static void sub_81DA160(u8 taskId) } } -static void sub_81DA244(u8 taskId) +static void Task_LinkContest_CommunicateRngEm(u8 taskId) { - if (!sub_80FC670(&gTasks[taskId].data[12])) + if (!LinkContest_TryLinkStandby(&gTasks[taskId].data[12])) return; switch (gTasks[taskId].data[0]) @@ -193,6 +199,7 @@ static void sub_81DA244(u8 taskId) case 0: if (GetMultiplayerId() == 0) { + // Only the leader sends the RNG seed if (!IsLinkTaskFinished()) return; @@ -201,10 +208,12 @@ static void sub_81DA244(u8 taskId) } else { + // Other link members skip to waiting gTasks[taskId].data[0]++; } break; case 1: + // Wait to receive RNG data if (LinkContest_GetBlockReceived(0)) { memcpy(&gRngValue, gBlockRecvBuffer[0], sizeof(gRngValue)); @@ -215,13 +224,13 @@ static void sub_81DA244(u8 taskId) } } -static void sub_81DA2E8(u8 taskId) +static void Task_LinkContest_CommunicateLeaderIdsEm(u8 taskId) { int i; - u16 data[4]; - u16 var0; + u16 data[CONTESTANT_COUNT]; + u16 leaderId; - if (!sub_80FC670(&gTasks[taskId].data[12])) + if (!LinkContest_TryLinkStandby(&gTasks[taskId].data[12])) return; switch (gTasks[taskId].data[0]) @@ -234,8 +243,8 @@ static void sub_81DA2E8(u8 taskId) case 0: if (IsLinkTaskFinished()) { - var0 = 0x6E; - if (LinkContest_SendBlock(&var0, sizeof(var0)) == 1) + leaderId = 0x6E; + if (LinkContest_SendBlock(&leaderId, sizeof(leaderId)) == 1) gTasks[taskId].data[0]++; } break; @@ -254,13 +263,13 @@ static void sub_81DA2E8(u8 taskId) } } -static void sub_81DA3B8(u8 taskId) +static void Task_LinkContest_CommunicateCategoryEm(u8 taskId) { int i; u16 data[CONTESTANT_COUNT]; u16 category; - if (!sub_80FC670(&gTasks[taskId].data[12])) + if (!LinkContest_TryLinkStandby(&gTasks[taskId].data[12])) return; switch (gTasks[taskId].data[0]) @@ -293,11 +302,11 @@ static void sub_81DA3B8(u8 taskId) } } -static void sub_81DA488(u8 taskId) +static void Task_LinkContest_CommunicateAIMonsEm(u8 taskId) { int i; - if (!sub_80FC670(&gTasks[taskId].data[12])) + if (!LinkContest_TryLinkStandby(&gTasks[taskId].data[12])) return; switch (gTasks[taskId].data[0]) diff --git a/src/contest_util.c b/src/contest_util.c index 1fd3e04826..23b9dcaaa9 100644 --- a/src/contest_util.c +++ b/src/contest_util.c @@ -151,14 +151,14 @@ static void Task_CreateConfetti(u8); static void SpriteCB_TextBoxSlideIn(struct Sprite *); static void SpriteCB_TextBoxSlideOut(struct Sprite *); static void SpriteCB_EndTextBoxSlideIn(struct Sprite *); -static void sub_80F8508(u8); -static void sub_80F8568(u8); -static void sub_80F8584(u8); -static void sub_80F85A0(u8); -static void sub_80F85BC(u8); -static void sub_80F86B8(u8); -static void sub_80F878C(u8); -static void sub_80F87B4(u8); +static void Task_StartCommunication(u8); +static void Task_StartCommunicateRngRS(u8); +static void Task_StartCommunicateLeaderIdsRS(u8); +static void Task_StartCommunicateCategoryRS(u8); +static void Task_LinkContest_SetUpContestRS(u8); +static void Task_LinkContest_CalculateTurnOrderRS(u8); +static void Task_LinkContest_Disconnect(u8); +static void Task_LinkContest_WaitDisconnect(u8); static void SpriteCB_Confetti(struct Sprite *sprite); static const u16 sUnknown_0858D6B0[] = INCBIN_U16("graphics/unknown/unknown_58D6B0.gbapal"); @@ -602,7 +602,7 @@ static void Task_ShowContestResults(u8 taskId) case 2: if (IsLinkTaskFinished()) { - sub_800ADF8(); + SetLinkStandbyCallback(); gTasks[taskId].tState++; } return; @@ -975,7 +975,7 @@ static void Task_TryDisconnectLinkPartners(u8 taskId) if (!gTasks[taskId].data[10]) { ShowLinkResultsTextBox(gText_CommunicationStandby); - sub_800AC34(); + SetCloseLinkCallback(); gTasks[taskId].func = Task_WaitForLinkPartnersDisconnect; } } @@ -2207,7 +2207,7 @@ void TryEnterContestMon(void) if (eligibility) { SetContestants(gSpecialVar_ContestCategory, gSpecialVar_ContestRank); - sub_80DB09C(gSpecialVar_ContestCategory); + CalculateRound1Points(gSpecialVar_ContestCategory); } gSpecialVar_Result = eligibility; @@ -2409,103 +2409,102 @@ void ContestLinkTransfer(u8 category) { u8 newTaskId; ScriptContext2_Enable(); - newTaskId = CreateTask(sub_80FC580, 0); - SetTaskFuncWithFollowupFunc(newTaskId, sub_80FC580, sub_80F8508); + newTaskId = CreateTask(Task_LinkContest_Init, 0); + SetTaskFuncWithFollowupFunc(newTaskId, Task_LinkContest_Init, Task_StartCommunication); gTasks[newTaskId].data[9] = category; } -static void sub_80F8508(u8 taskId) +static void Task_StartCommunication(u8 taskId) { if (gLinkContestFlags & LINK_CONTEST_FLAG_HAS_RS_PLAYER) { CreateContestMonFromParty(gContestMonPartyIndex); - SetTaskFuncWithFollowupFunc(taskId, sub_80FC6BC, sub_80F8568); + SetTaskFuncWithFollowupFunc(taskId, Task_LinkContest_CommunicateMonsRS, Task_StartCommunicateRngRS); } else { CreateContestMonFromParty(gContestMonPartyIndex); - gTasks[taskId].func = sub_81D9DE4; + gTasks[taskId].func = Task_LinkContest_StartCommunicationEm; } } -static void sub_80F8568(u8 taskId) +static void Task_StartCommunicateRngRS(u8 taskId) { - SetTaskFuncWithFollowupFunc(taskId, sub_80FC804, sub_80F8584); + SetTaskFuncWithFollowupFunc(taskId, Task_LinkContest_CommunicateRngRS, Task_StartCommunicateLeaderIdsRS); } -static void sub_80F8584(u8 taskId) +static void Task_StartCommunicateLeaderIdsRS(u8 taskId) { - SetTaskFuncWithFollowupFunc(taskId, sub_80FCE48, sub_80F85A0); + SetTaskFuncWithFollowupFunc(taskId, Task_LinkContest_CommunicateLeaderIdsRS, Task_StartCommunicateCategoryRS); } -static void sub_80F85A0(u8 taskId) +static void Task_StartCommunicateCategoryRS(u8 taskId) { - SetTaskFuncWithFollowupFunc(taskId, sub_80FC894, sub_80F85BC); + SetTaskFuncWithFollowupFunc(taskId, Task_LinkContest_CommunicateCategoryRS, Task_LinkContest_SetUpContestRS); } -static void sub_80F85BC(u8 taskId) +static void Task_LinkContest_SetUpContestRS(u8 taskId) { u8 i; - u8 sp0[4]; - u8 sp4[4]; + u8 categories[CONTESTANT_COUNT]; + u8 leaderIds[CONTESTANT_COUNT]; - memset(sp0, 0, sizeof(sp0)); - memset(sp4, 0, sizeof(sp4)); + memset(categories, 0, sizeof(categories)); + memset(leaderIds, 0, sizeof(leaderIds)); for (i = 0; i < gNumLinkContestPlayers; i++) - sp0[i] = gTasks[taskId].data[i + 1]; + categories[i] = gTasks[taskId].data[i + 1]; - for (i = 0; i < gNumLinkContestPlayers;) - { - i++; - if (i >= gNumLinkContestPlayers || sp0[0] != sp0[i]) - break; - } + // Ensure all players are doing the same category + for (i = 0; i < gNumLinkContestPlayers && categories[0] == categories[i]; i++) + ; if (i == gNumLinkContestPlayers) - gSpecialVar_0x8004 = 0; + gSpecialVar_0x8004 = FALSE; // Category choices the same else - gSpecialVar_0x8004 = 1; + gSpecialVar_0x8004 = TRUE; // Category choices differ for (i = 0; i < gNumLinkContestPlayers; i++) - sp4[i] = gTasks[taskId].data[i + 5]; + leaderIds[i] = gTasks[taskId].data[i + 5]; - gUnknown_02039F2B = sub_80F86E0(sp4); - sub_80DB09C(gSpecialVar_ContestCategory); - SetTaskFuncWithFollowupFunc(taskId, Task_LinkContest_CommunicateRound1Points, sub_80F86B8); + gContestLinkLeaderIndex = LinkContest_GetLeaderIndex(leaderIds); + CalculateRound1Points(gSpecialVar_ContestCategory); + SetTaskFuncWithFollowupFunc(taskId, Task_LinkContest_CommunicateRound1Points, Task_LinkContest_CalculateTurnOrderRS); } -static void sub_80F86B8(u8 taskId) +static void Task_LinkContest_CalculateTurnOrderRS(u8 taskId) { SortContestants(FALSE); - SetTaskFuncWithFollowupFunc(taskId, Task_LinkContest_CommunicateTurnOrder, sub_80F8714); + SetTaskFuncWithFollowupFunc(taskId, Task_LinkContest_CommunicateTurnOrder, Task_LinkContest_FinalizeConnection); } -u8 sub_80F86E0(u8 *arg0) +u8 LinkContest_GetLeaderIndex(u8 *ids) { int i; - u8 result = 0; + u8 leaderIdx = 0; for (i = 1; i < gNumLinkContestPlayers; i++) { - if (arg0[result] < arg0[i]) - result = i; + if (ids[leaderIdx] < ids[i]) + leaderIdx = i; } - return result; + return leaderIdx; } -void sub_80F8714(u8 taskId) +void Task_LinkContest_FinalizeConnection(u8 taskId) { int i; - if (gSpecialVar_0x8004 == 1) + if (gSpecialVar_0x8004 == TRUE) { + // Link partner data doesn't agree, disconnect if (IsLinkTaskFinished()) - gTasks[taskId].func = sub_80F878C; + gTasks[taskId].func = Task_LinkContest_Disconnect; } else { + // Succesfully connected for (i = 0; i < CONTESTANT_COUNT; i++) StringGetEnd10(gContestMons[i].nickname); @@ -2516,13 +2515,13 @@ void sub_80F8714(u8 taskId) } } -static void sub_80F878C(u8 taskId) +static void Task_LinkContest_Disconnect(u8 taskId) { - sub_800AC34(); - gTasks[taskId].func = sub_80F87B4; + SetCloseLinkCallback(); + gTasks[taskId].func = Task_LinkContest_WaitDisconnect; } -static void sub_80F87B4(u8 taskId) +static void Task_LinkContest_WaitDisconnect(u8 taskId) { if (!gReceivedRemoteLinkPlayers) { diff --git a/src/dodrio_berry_picking.c b/src/dodrio_berry_picking.c index 3ca7a1cf77..fc132943c2 100644 --- a/src/dodrio_berry_picking.c +++ b/src/dodrio_berry_picking.c @@ -558,7 +558,7 @@ static void sub_8024BC8(u8 taskId) case 2: if (!sub_802A770()) { - sub_8010434(); + Rfu_SetLinkStandbyCallback(); gUnknown_02022C98->unk0C++; } break; @@ -671,7 +671,7 @@ static void sub_8024E38(void) gUnknown_02022C98->unk10++; break; case 1: - sub_8010434(); + Rfu_SetLinkStandbyCallback(); gUnknown_02022C98->unk10++; break; case 2: @@ -690,7 +690,7 @@ static void sub_8024E38(void) case 4: if (++gUnknown_02022C98->unk30 > 5) { - sub_8010434(); + Rfu_SetLinkStandbyCallback(); gUnknown_02022C98->unk10++; } break; @@ -1081,7 +1081,7 @@ static void sub_8025644(void) switch (gUnknown_02022C98->unk10) { case 0: - sub_800AC34(); + SetCloseLinkCallback(); sub_80292E0(7); gUnknown_02022C98->unk10++; break; diff --git a/src/ereader_screen.c b/src/ereader_screen.c index 26f7eb6793..823e03dd44 100755 --- a/src/ereader_screen.c +++ b/src/ereader_screen.c @@ -192,7 +192,7 @@ static u32 sub_81D4EE4(u8 *arg0, u16 *arg1) } break; case 4: - sub_800ABF4(0); + SetCloseLinkCallbackAndType(0); *arg0 = 5; break; case 5: @@ -403,7 +403,7 @@ static void sub_81D5084(u8 taskId) break; case 15: data->unkE = EReader_IsReceivedDataValid((struct EReaderTrainerHillSet *)gDecompressionBuffer); - sub_800ABF4(data->unkE); + SetCloseLinkCallbackAndType(data->unkE); data->unk8 = 16; break; case 16: diff --git a/src/field_screen_effect.c b/src/field_screen_effect.c index 53057fc31d..183bd67fa5 100644 --- a/src/field_screen_effect.c +++ b/src/field_screen_effect.c @@ -197,7 +197,7 @@ static void Task_ReturnToFieldWirelessLink(u8 taskId) switch (task->data[0]) { case 0: - sub_800ADF8(); + SetLinkStandbyCallback(); task->data[0]++; break; case 1: @@ -230,7 +230,7 @@ void Task_ReturnToFieldRecordMixing(u8 taskId) switch (task->data[0]) { case 0: - sub_800ADF8(); + SetLinkStandbyCallback(); task->data[0]++; break; case 1: @@ -623,7 +623,7 @@ static void Task_ReturnToWorldFromLinkRoom(u8 taskId) case 1: if (!PaletteFadeActive() && BGMusicStopped()) { - sub_800AC34(); + SetCloseLinkCallback(); data[0]++; } break; diff --git a/src/field_specials.c b/src/field_specials.c index e806440f75..db82f35b4a 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -3865,7 +3865,7 @@ static void Task_LinkRetireStatusWithBattleTowerPartner(u8 taskId) case 7: if (IsLinkTaskFinished() == 1) { - sub_800ADF8(); + SetLinkStandbyCallback(); gTasks[taskId].data[0]++; } break; @@ -3878,7 +3878,7 @@ static void Task_LinkRetireStatusWithBattleTowerPartner(u8 taskId) case 9: if (gWirelessCommType == 0) { - sub_800AC34(); + SetCloseLinkCallback(); } gBattleTypeFlags = sBattleTowerMultiBattleTypeFlags; EnableBothScriptContexts(); diff --git a/src/link.c b/src/link.c index e04e5e29d6..62a9e41511 100644 --- a/src/link.c +++ b/src/link.c @@ -75,9 +75,9 @@ u16 gRecvCmds[MAX_RFU_PLAYERS][CMD_LENGTH]; u32 gLinkStatus; bool8 gLinkDummy1; // Never read bool8 gLinkDummy2; // Never read -bool8 gUnknown_030030EC[MAX_LINK_PLAYERS]; -bool8 gUnknown_030030F0[MAX_LINK_PLAYERS]; -u16 gUnknown_030030F4; +bool8 gReadyToExitStandby[MAX_LINK_PLAYERS]; +bool8 gReadyToCloseLink[MAX_LINK_PLAYERS]; +u16 gReadyCloseLinkType; // Never read u8 gSuppressLinkErrorMessage; bool8 gWirelessCommType; bool8 gSavedLinkPlayerCount; @@ -114,7 +114,7 @@ EWRAM_DATA struct { u8 lastSendQueueCount; u8 unk_06; } sLinkErrorBuffer = {}; -static EWRAM_DATA u16 sUnknown_02022B08 = 0; +static EWRAM_DATA u16 sReadyCloseLinkAttempts = 0; // never read static EWRAM_DATA void *sLinkErrorBgTilemapBuffer = NULL; // Static ROM declarations @@ -135,12 +135,12 @@ static void LinkTest_prnthex(u32 pos, u8 a0, u8 a1, u8 a2); static void LinkCB_RequestPlayerDataExchange(void); static void Task_PrintTestData(u8 taskId); -static void sub_800AC80(void); -static void sub_800ACAC(void); -static void sub_800AD5C(void); -static void sub_800AD88(void); -static void sub_800AE30(void); -static void sub_800AE5C(void); +static void LinkCB_ReadyCloseLink(void); +static void LinkCB_WaitCloseLink(void); +static void LinkCB_ReadyCloseLinkWithJP(void); +static void LinkCB_WaitCloseLinkWithJP(void); +static void LinkCB_Standby(void); +static void LinkCB_StandbyForAll(void); static void CheckErrorStatus(void); static void CB2_PrintErrorMessage(void); @@ -379,7 +379,7 @@ void OpenLink(void) sDummy1 = FALSE; gLinkDummy2 = FALSE; gLinkDummy1 = FALSE; - gUnknown_030030F4 = 0; + gReadyCloseLinkType = 0; CreateTask(Task_TriggerHandshake, 2); } else @@ -390,8 +390,8 @@ void OpenLink(void) for (i = 0; i < MAX_LINK_PLAYERS; i++) { gRemoteLinkPlayersNotReceived[i] = TRUE; - gUnknown_030030F0[i] = FALSE; - gUnknown_030030EC[i] = FALSE; + gReadyToCloseLink[i] = FALSE; + gReadyToExitStandby[i] = FALSE; } } @@ -467,7 +467,7 @@ static void LinkTestProcessKeyInput(void) } if (gMain.newKeys & SELECT_BUTTON) { - sub_800AC34(); + SetCloseLinkCallback(); } if (gLinkTestDebugValuesEnabled) { @@ -630,16 +630,16 @@ static void ProcessRecvCmds(u8 unused) } } break; - case LINKCMD_0x5FFF: - gUnknown_030030F0[i] = TRUE; + case LINKCMD_READY_CLOSE_LINK: + gReadyToCloseLink[i] = TRUE; break; - case LINKCMD_0x2FFE: - gUnknown_030030EC[i] = TRUE; + case LINKCMD_READY_EXIT_STANDBY: + gReadyToExitStandby[i] = TRUE; break; case LINKCMD_0xAAAA: sub_800A418(); break; - case LINKCMD_0xCCCC: + case LINKCMD_SEND_BLOCK_REQ: SendBlock(0, sBlockRequests[gRecvCmds[i][1]].address, sBlockRequests[gRecvCmds[i][1]].size); break; case LINKCMD_SEND_HELD_KEYS_2: @@ -657,8 +657,8 @@ static void BuildSendCmd(u16 command) gSendCmd[0] = LINKCMD_SEND_LINK_TYPE; gSendCmd[1] = gLinkType; break; - case LINKCMD_0x2FFE: - gSendCmd[0] = LINKCMD_0x2FFE; + case LINKCMD_READY_EXIT_STANDBY: + gSendCmd[0] = LINKCMD_READY_EXIT_STANDBY; break; case LINKCMD_SEND_HELD_KEYS: gSendCmd[0] = LINKCMD_SEND_HELD_KEYS; @@ -694,13 +694,13 @@ static void BuildSendCmd(u16 command) gSendCmd[0] = LINKCMD_0xAAAB; gSendCmd[1] = gSpecialVar_ItemId; break; - case LINKCMD_0xCCCC: - gSendCmd[0] = LINKCMD_0xCCCC; + case LINKCMD_SEND_BLOCK_REQ: + gSendCmd[0] = LINKCMD_SEND_BLOCK_REQ; gSendCmd[1] = gBlockRequestType; break; - case LINKCMD_0x5FFF: - gSendCmd[0] = LINKCMD_0x5FFF; - gSendCmd[1] = gUnknown_030030F4; + case LINKCMD_READY_CLOSE_LINK: + gSendCmd[0] = LINKCMD_READY_CLOSE_LINK; + gSendCmd[1] = gReadyCloseLinkType; break; case LINKCMD_0x5566: gSendCmd[0] = LINKCMD_0x5566; @@ -1065,16 +1065,16 @@ bool8 SendBlock(u8 unused, const void *src, u16 size) return InitBlockSend(src, size); } -bool8 sub_800A4D8(u8 a0) +bool8 SendBlockRequest(u8 blockReqType) { if (gWirelessCommType == TRUE) { - return sub_8010100(a0); + return Rfu_SendBlockRequest(blockReqType); } if (gLinkCallback == NULL) { - gBlockRequestType = a0; - BuildSendCmd(LINKCMD_0xCCCC); + gBlockRequestType = blockReqType; + BuildSendCmd(LINKCMD_SEND_BLOCK_REQ); return TRUE; } return FALSE; @@ -1423,70 +1423,70 @@ static u8 GetDummy2(void) return sDummy2; } -void sub_800ABF4(u16 a0) +void SetCloseLinkCallbackAndType(u16 type) { if (gWirelessCommType == TRUE) { - task_add_05_task_del_08FA224_when_no_RfuFunc(); + Rfu_SetCloseLinkCallback(); } else { if (gLinkCallback == NULL) { - gLinkCallback = sub_800AC80; + gLinkCallback = LinkCB_ReadyCloseLink; gLinkDummy1 = FALSE; - gUnknown_030030F4 = a0; + gReadyCloseLinkType = type; } } } -void sub_800AC34(void) +void SetCloseLinkCallback(void) { if (gWirelessCommType == TRUE) { - task_add_05_task_del_08FA224_when_no_RfuFunc(); + Rfu_SetCloseLinkCallback(); } else { if (gLinkCallback != NULL) { - sUnknown_02022B08++; + sReadyCloseLinkAttempts++; } else { - gLinkCallback = sub_800AC80; + gLinkCallback = LinkCB_ReadyCloseLink; gLinkDummy1 = FALSE; - gUnknown_030030F4 = 0; + gReadyCloseLinkType = 0; } } } -static void sub_800AC80(void) +static void LinkCB_ReadyCloseLink(void) { if (gLastRecvQueueCount == 0) { - BuildSendCmd(LINKCMD_0x5FFF); - gLinkCallback = sub_800ACAC; + BuildSendCmd(LINKCMD_READY_CLOSE_LINK); + gLinkCallback = LinkCB_WaitCloseLink; } } -static void sub_800ACAC(void) +static void LinkCB_WaitCloseLink(void) { int i; unsigned count; - u8 linkPlayerCount; - linkPlayerCount = GetLinkPlayerCount(); + // Wait for all players to be ready + u8 linkPlayerCount = GetLinkPlayerCount(); count = 0; for (i = 0; i < linkPlayerCount; i++) { - if (gUnknown_030030F0[i]) - { + if (gReadyToCloseLink[i]) count++; - } } + if (count == linkPlayerCount) { + // All ready, close link gBattleTypeFlags &= ~BATTLE_TYPE_20; gLinkVSyncDisabled = TRUE; CloseLink(); @@ -1495,37 +1495,38 @@ static void sub_800ACAC(void) } } -void sub_800AD10(void) +// Used instead of SetCloseLinkCallback when disconnecting from an attempt to link with a foreign game +void SetCloseLinkCallbackHandleJP(void) { if (gWirelessCommType == TRUE) { - task_add_05_task_del_08FA224_when_no_RfuFunc(); + Rfu_SetCloseLinkCallback(); } else { if (gLinkCallback != NULL) { - sUnknown_02022B08++; + sReadyCloseLinkAttempts++; } else { - gLinkCallback = sub_800AD5C; + gLinkCallback = LinkCB_ReadyCloseLinkWithJP; gLinkDummy1 = FALSE; - gUnknown_030030F4 = 0; + gReadyCloseLinkType = 0; } } } -static void sub_800AD5C(void) +static void LinkCB_ReadyCloseLinkWithJP(void) { if (gLastRecvQueueCount == 0) { - BuildSendCmd(LINKCMD_0x5FFF); - gLinkCallback = sub_800AD88; + BuildSendCmd(LINKCMD_READY_CLOSE_LINK); + gLinkCallback = LinkCB_WaitCloseLinkWithJP; } } -static void sub_800AD88(void) +static void LinkCB_WaitCloseLinkWithJP(void) { int i; unsigned count; @@ -1533,19 +1534,21 @@ static void sub_800AD88(void) linkPlayerCount = GetLinkPlayerCount(); count = 0; + + // Wait for all non-foreign players to be ready for (i = 0; i < linkPlayerCount; i++) { + // Rather than communicate with the foreign game + // just assume they're ready to disconnect if (gLinkPlayers[i].language == LANGUAGE_JAPANESE) - { count++; - } - else if (gUnknown_030030F0[i]) - { + else if (gReadyToCloseLink[i]) count++; - } } + if (count == linkPlayerCount) { + // All ready, close link gBattleTypeFlags &= ~BATTLE_TYPE_20; gLinkVSyncDisabled = TRUE; CloseLink(); @@ -1554,50 +1557,47 @@ static void sub_800AD88(void) } } -void sub_800ADF8(void) +void SetLinkStandbyCallback(void) { if (gWirelessCommType == TRUE) { - sub_8010434(); + Rfu_SetLinkStandbyCallback(); } else { if (gLinkCallback == NULL) { - gLinkCallback = sub_800AE30; + gLinkCallback = LinkCB_Standby; } gLinkDummy1 = FALSE; } } -static void sub_800AE30(void) +static void LinkCB_Standby(void) { if (gLastRecvQueueCount == 0) { - BuildSendCmd(LINKCMD_0x2FFE); - gLinkCallback = sub_800AE5C; + BuildSendCmd(LINKCMD_READY_EXIT_STANDBY); + gLinkCallback = LinkCB_StandbyForAll; } } -static void sub_800AE5C(void) +static void LinkCB_StandbyForAll(void) { u8 i; - u8 linkPlayerCount; - - linkPlayerCount = GetLinkPlayerCount(); + u8 linkPlayerCount = GetLinkPlayerCount(); for (i = 0; i < linkPlayerCount; i++) { - if (!gUnknown_030030EC[i]) - { + if (!gReadyToExitStandby[i]) break; - } } + + // If true, all players ready to exit standby if (i == linkPlayerCount) { for (i = 0; i < MAX_LINK_PLAYERS; i++) - { - gUnknown_030030EC[i] = FALSE; - } + gReadyToExitStandby[i] = FALSE; + gLinkCallback = NULL; } } diff --git a/src/link_rfu_2.c b/src/link_rfu_2.c index 34e9f719bf..3372aa766f 100644 --- a/src/link_rfu_2.c +++ b/src/link_rfu_2.c @@ -148,10 +148,7 @@ static const u8 sUnknown_082ED6A5[] = { 0, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0 }; -static const struct { - u8 *buffer; - u32 size; -} sUnknown_082ED6B8[] = { +static const struct BlockRequest sBlockRequests[] = { { gBlockSendBuffer, 200 }, { gBlockSendBuffer, 200 }, { gBlockSendBuffer, 100 }, @@ -1072,15 +1069,15 @@ static void RfuHandleReceiveCommand(u8 unused) } } break; - case RFU_COMMAND_0xA100: - Rfu_InitBlockSend(sUnknown_082ED6B8[gRecvCmds[i][1]].buffer, (u16)sUnknown_082ED6B8[gRecvCmds[i][1]].size); + case RFU_COMMAND_SEND_BLOCK_REQ: + Rfu_InitBlockSend(sBlockRequests[gRecvCmds[i][1]].address, (u16)sBlockRequests[gRecvCmds[i][1]].size); break; - case RFU_COMMAND_0x5F00: - Rfu.unk_e4[i] = 1; + case RFU_COMMAND_READY_CLOSE_LINK: + Rfu.readyCloseLink[i] = TRUE; break; - case RFU_COMMAND_0x6600: + case RFU_COMMAND_READY_EXIT_STANDBY: if (Rfu.unk_100 == gRecvCmds[i][1]) - Rfu.unk_e9[i] = 1; + Rfu.readyExitStandby[i] = TRUE; break; case RFU_COMMAND_0xED00: if (Rfu.parentChild == MODE_CHILD) @@ -1194,9 +1191,9 @@ static void RfuPrepareSendBuffer(u16 command) gSendCmd[1] = Rfu.sendBlock.count; gSendCmd[2] = Rfu.sendBlock.owner + 0x80; break; - case RFU_COMMAND_0xA100: + case RFU_COMMAND_SEND_BLOCK_REQ: if (AreNoPlayersReceiving()) - gSendCmd[1] = Rfu.unk_5a; + gSendCmd[1] = Rfu.blockRequestType; break; case RFU_COMMAND_0x7700: case RFU_COMMAND_0x7800: @@ -1207,8 +1204,8 @@ static void RfuPrepareSendBuffer(u16 command) for (i = 0; i < RFU_CHILD_MAX; i++) buff[i] = Rfu.linkPlayerIdx[i]; break; - case RFU_COMMAND_0x6600: - case RFU_COMMAND_0x5F00: + case RFU_COMMAND_READY_EXIT_STANDBY: + case RFU_COMMAND_READY_CLOSE_LINK: gSendCmd[1] = Rfu.unk_100; break; case RFU_COMMAND_0x4400: @@ -1327,10 +1324,10 @@ static void SendLastBlock(void) Rfu.callback = NULL; } -bool8 sub_8010100(u8 blockRequestType) +bool8 Rfu_SendBlockRequest(u8 type) { - Rfu.unk_5a = blockRequestType; - RfuPrepareSendBuffer(RFU_COMMAND_0xA100); + Rfu.blockRequestType = type; + RfuPrepareSendBuffer(RFU_COMMAND_SEND_BLOCK_REQ); return TRUE; } @@ -1343,14 +1340,14 @@ static void sub_801011C(void) Rfu.callback = NULL; } -static void sub_8010148(void) +static void DisconnectRfu(void) { rfu_REQ_disconnect(gRfuLinkStatus->connSlotFlag | gRfuLinkStatus->linkLossSlotFlag); rfu_waitREQComplete(); sub_801011C(); } -static void sub_8010168(void) +static void TryDisconnectRfu(void) { if (Rfu.parentChild == MODE_CHILD) { @@ -1358,7 +1355,7 @@ static void sub_8010168(void) Rfu.unk_ce4 = 2; } else - Rfu.callback = sub_8010148; + Rfu.callback = DisconnectRfu; } void LinkRfu_FatalError(void) @@ -1368,131 +1365,137 @@ void LinkRfu_FatalError(void) Rfu.unk_ce3 = gRfuLinkStatus->connSlotFlag | gRfuLinkStatus->linkLossSlotFlag; } -static void sub_80101CC(void) +// RFU equivalent of LinkCB_WaitCloseLink +static void WaitAllReadyToCloseLink(void) { s32 i; u8 playerCount = Rfu.playerCount; s32 count = 0; + // Wait for all players to be ready for (i = 0; i < MAX_RFU_PLAYERS; i++) { - if (Rfu.unk_e4[i]) + if (Rfu.readyCloseLink[i]) count++; } if (count == playerCount) { + // All ready, close link gBattleTypeFlags &= ~BATTLE_TYPE_20; if (Rfu.parentChild == MODE_CHILD) { Rfu.errorState = 3; - sub_8010168(); + TryDisconnectRfu(); } else - Rfu.callback = sub_8010168; + Rfu.callback = TryDisconnectRfu; } } -static void sub_801022C(void) +static void SendReadyCloseLink(void) { if (gSendCmd[0] == 0 && Rfu.unk_ce8 == 0) { - RfuPrepareSendBuffer(RFU_COMMAND_0x5F00); - Rfu.callback = sub_80101CC; + RfuPrepareSendBuffer(RFU_COMMAND_READY_CLOSE_LINK); + Rfu.callback = WaitAllReadyToCloseLink; } } -static void sub_8010264(u8 taskId) +static void Task_TryReadyCloseLink(u8 taskId) { if (Rfu.callback == NULL) { Rfu.unk_cd9 = 1; - Rfu.callback = sub_801022C; + Rfu.callback = SendReadyCloseLink; DestroyTask(taskId); } } -void task_add_05_task_del_08FA224_when_no_RfuFunc(void) +void Rfu_SetCloseLinkCallback(void) { - if (!FuncIsActiveTask(sub_8010264)) - CreateTask(sub_8010264, 5); + if (!FuncIsActiveTask(Task_TryReadyCloseLink)) + CreateTask(Task_TryReadyCloseLink, 5); } -static void sub_80102B8(void) +static void SendReadyExitStandbyUntilAllReady(void) { u8 playerCount; u8 i; if (GetMultiplayerId() != 0) { - if (Rfu.recvQueue.count == 0 && Rfu.unk_fe > 60) + if (Rfu.recvQueue.count == 0 && Rfu.resendExitStandbyTimer > 60) { - RfuPrepareSendBuffer(RFU_COMMAND_0x6600); - Rfu.unk_fe = 0; + RfuPrepareSendBuffer(RFU_COMMAND_READY_EXIT_STANDBY); + Rfu.resendExitStandbyTimer = 0; } } playerCount = GetLinkPlayerCount(); for (i = 0; i < playerCount; i++) { - if (Rfu.unk_e9[i] == 0) + if (!Rfu.readyExitStandby[i]) break; } if (i == playerCount) { for (i = 0; i < MAX_RFU_PLAYERS; i++) - Rfu.unk_e9[i] = 0; + Rfu.readyExitStandby[i] = FALSE; Rfu.unk_100++; Rfu.callback = NULL; } - Rfu.unk_fe++; + Rfu.resendExitStandbyTimer++; } -static void sub_8010358(void) +static void LinkLeaderReadyToExitStandby(void) { if (Rfu.recvQueue.count == 0 && gSendCmd[0] == 0) { - RfuPrepareSendBuffer(RFU_COMMAND_0x6600); - Rfu.callback = sub_80102B8; + RfuPrepareSendBuffer(RFU_COMMAND_READY_EXIT_STANDBY); + Rfu.callback = SendReadyExitStandbyUntilAllReady; } } -static void sub_8010390(void) +// RFU equivalent of LinkCB_Standby and LinkCB_StandbyForAll +static void Rfu_LinkStandby(void) { u8 i; u8 playerCount; if (GetMultiplayerId() != 0) { + // Not link leader, send exit standby when ready if (Rfu.recvQueue.count == 0 && gSendCmd[0] == 0) { - RfuPrepareSendBuffer(RFU_COMMAND_0x6600); - Rfu.callback = sub_80102B8; + RfuPrepareSendBuffer(RFU_COMMAND_READY_EXIT_STANDBY); + Rfu.callback = SendReadyExitStandbyUntilAllReady; } } else { + // Link leader, wait for all members to send exit ready playerCount = GetLinkPlayerCount(); for (i = 1; i < playerCount; i++) { - if (Rfu.unk_e9[i] == 0) + if (!Rfu.readyExitStandby[i]) break; } if (i == playerCount) { if (Rfu.recvQueue.count == 0 && gSendCmd[0] == 0) { - RfuPrepareSendBuffer(RFU_COMMAND_0x6600); - Rfu.callback = sub_8010358; + RfuPrepareSendBuffer(RFU_COMMAND_READY_EXIT_STANDBY); + Rfu.callback = LinkLeaderReadyToExitStandby; } } } } -void sub_8010434(void) +void Rfu_SetLinkStandbyCallback(void) { if (Rfu.callback == NULL) { - Rfu.callback = sub_8010390; - Rfu.unk_fe = 0; + Rfu.callback = Rfu_LinkStandby; + Rfu.resendExitStandbyTimer = 0; } } @@ -1724,8 +1727,8 @@ static void sub_801084C(u8 taskId) { if (AreNoPlayersReceiving()) { - Rfu.unk_5a = 0; - RfuPrepareSendBuffer(RFU_COMMAND_0xA100); + Rfu.blockRequestType = 0; + RfuPrepareSendBuffer(RFU_COMMAND_SEND_BLOCK_REQ); gTasks[taskId].data[0]++; } } diff --git a/src/mystery_event_menu.c b/src/mystery_event_menu.c index 04902dee87..032cc33403 100644 --- a/src/mystery_event_menu.c +++ b/src/mystery_event_menu.c @@ -208,7 +208,7 @@ static void CB2_MysteryEventMenu(void) { if (GetLinkPlayerDataExchangeStatusTimed(2, 2) == EXCHANGE_DIFF_SELECTIONS) { - sub_800AC34(); + SetCloseLinkCallback(); GetEventLoadMessage(gStringVar4, 1); PrintMysteryMenuText(0, gStringVar4, 1, 2, 1); gMain.state = 13; @@ -249,7 +249,7 @@ static void CB2_MysteryEventMenu(void) gMain.state++; break; case 10: - sub_800AC34(); + SetCloseLinkCallback(); gMain.state++; break; case 11: diff --git a/src/mystery_gift.c b/src/mystery_gift.c index 9672fe0ec6..b8ae470a9a 100644 --- a/src/mystery_gift.c +++ b/src/mystery_gift.c @@ -1284,7 +1284,7 @@ void task00_mystery_gift(u8 taskId) switch (mevent_client_do_exec(&data->curPromptWindowId)) { case 6: - task_add_05_task_del_08FA224_when_no_RfuFunc(); + Rfu_SetCloseLinkCallback(); data->prevPromptWindowId = data->curPromptWindowId; data->state = 13; break; @@ -1647,7 +1647,7 @@ void task00_mystery_gift(u8 taskId) } break; case 33: - task_add_05_task_del_08FA224_when_no_RfuFunc(); + Rfu_SetCloseLinkCallback(); StringCopy(gStringVar1, gLinkPlayers[1].name); data->state = 34; break; diff --git a/src/pokemon_jump.c b/src/pokemon_jump.c index 33ddee1b50..c5f4ef1a4b 100755 --- a/src/pokemon_jump.c +++ b/src/pokemon_jump.c @@ -1463,7 +1463,7 @@ static bool32 sub_802BC60(void) case 4: if (!gPaletteFade.active) { - sub_800AC34(); + SetCloseLinkCallback(); gUnknown_02022CFC->unkA++; } break; diff --git a/src/record_mixing.c b/src/record_mixing.c index 075bc6aee1..a4229b91e8 100644 --- a/src/record_mixing.c +++ b/src/record_mixing.c @@ -501,7 +501,7 @@ static void Task_SendPacket(u8 taskId) break; case 1: if (GetMultiplayerId() == 0) - sub_800A4D8(1); + SendBlockRequest(1); task->data[0]++; break; case 2: @@ -973,7 +973,7 @@ static void Task_DoRecordMixing(u8 taskId) case 4: // Wait 10 frames if (++task->data[1] > 10) { - sub_800AC34(); + SetCloseLinkCallback(); task->data[0] ++; } break; @@ -1005,7 +1005,7 @@ static void Task_DoRecordMixing(u8 taskId) } break; case 8: - sub_800ADF8(); + SetLinkStandbyCallback(); task->data[0] ++; break; case 9: diff --git a/src/save.c b/src/save.c index 09e1b7aae4..3ae2f6fd53 100644 --- a/src/save.c +++ b/src/save.c @@ -912,7 +912,7 @@ void Task_LinkSave(u8 taskId) tState = 1; break; case 1: - sub_800ADF8(); + SetLinkStandbyCallback(); tState = 2; break; case 2: @@ -949,7 +949,7 @@ void Task_LinkSave(u8 taskId) case 7: if (!tPartialSave) ClearContinueGameWarpStatus2(); - sub_800ADF8(); + SetLinkStandbyCallback(); tState = 8; break; case 8: @@ -960,7 +960,7 @@ void Task_LinkSave(u8 taskId) } break; case 9: - sub_800ADF8(); + SetLinkStandbyCallback(); tState = 10; break; case 10: diff --git a/src/script_pokemon_util_80F87D8.c b/src/script_pokemon_util_80F87D8.c index 89029210bb..b151b56509 100755 --- a/src/script_pokemon_util_80F87D8.c +++ b/src/script_pokemon_util_80F87D8.c @@ -472,7 +472,7 @@ static void Task_LinkContestWaitForConnection(u8 taskId) case 0: if (IsLinkTaskFinished()) { - sub_800ADF8(); + SetLinkStandbyCallback(); gTasks[taskId].data[0]++; } break; diff --git a/src/trade.c b/src/trade.c index 3a0f07ac68..17967733a1 100644 --- a/src/trade.c +++ b/src/trade.c @@ -246,9 +246,9 @@ static bool8 SendLinkData(const void *linkData, u32 size) } } -static void sub_80771AC(u8 a0) +static void RequestLinkData(u8 type) { - sub_800A4D8(a0); + SendBlockRequest(type); } static bool32 sub_80771BC(void) @@ -295,9 +295,9 @@ static bool32 IsWirelessTrade(void) return FALSE; } -static void sub_8077288(u8 unused) +static void SetTradeLinkStandbyCallback(u8 unused) { - sub_800ADF8(); + SetLinkStandbyCallback(); } static bool32 _IsLinkTaskFinished(void) @@ -445,7 +445,7 @@ static void CB2_CreateTradeMenu(void) if (gWirelessCommType) { sub_801048C(TRUE); - sub_800ADF8(); + SetLinkStandbyCallback(); } } break; @@ -825,7 +825,7 @@ static void LinkTradeWaitForFade(void) } else { - sub_800ABF4(32); + SetCloseLinkCallbackAndType(32); sTradeMenuData->tradeMenuFunc = TRADEMENUFUNC_START_LINK_TRADE; } } @@ -983,7 +983,7 @@ static bool8 BufferTradeParties(void) case 3: if (id == 0) { - sub_80771AC(1); + RequestLinkData(1); } sTradeMenuData->bufferPartyState++; break; @@ -1002,7 +1002,7 @@ static bool8 BufferTradeParties(void) case 7: if (id == 0) { - sub_80771AC(1); + RequestLinkData(1); } sTradeMenuData->bufferPartyState++; break; @@ -1021,7 +1021,7 @@ static bool8 BufferTradeParties(void) case 11: if (id == 0) { - sub_80771AC(1); + RequestLinkData(1); } sTradeMenuData->bufferPartyState++; break; @@ -1040,7 +1040,7 @@ static bool8 BufferTradeParties(void) case 15: if (id == 0) { - sub_80771AC(3); + RequestLinkData(3); } sTradeMenuData->bufferPartyState++; break; @@ -1059,7 +1059,7 @@ static bool8 BufferTradeParties(void) case 19: if (id == 0) { - sub_80771AC(4); + RequestLinkData(4); } sTradeMenuData->bufferPartyState++; break; @@ -1652,11 +1652,11 @@ static void CancelTrade_1(void) { if (gWirelessCommType) { - sub_800ADF8(); + SetLinkStandbyCallback(); } else { - sub_800ABF4(12); + SetCloseLinkCallbackAndType(12); } sTradeMenuData->tradeMenuFunc = TRADEMENUFUNC_CANCEL_TRADE_2; @@ -1692,7 +1692,7 @@ static void LinkTradeWaitForQueue(void) { if (!sub_801048C(FALSE) && GetNumQueuedActions() == 0) { - sub_800ADF8(); + SetLinkStandbyCallback(); sTradeMenuData->tradeMenuFunc = TRADEMENUFUNC_START_LINK_TRADE; } } @@ -4566,7 +4566,7 @@ static void CB2_SaveAndEndTrade(void) DrawTextOnTradeWindow(0, gStringVar4, 0); break; case 1: - sub_8077288(0); + SetTradeLinkStandbyCallback(0); gMain.state = 100; sTradeData->timer = 0; break; @@ -4644,7 +4644,7 @@ static void CB2_SaveAndEndTrade(void) case 41: if (sTradeData->timer == 0) { - sub_8077288(1); + SetTradeLinkStandbyCallback(1); gMain.state = 42; } else @@ -4663,7 +4663,7 @@ static void CB2_SaveAndEndTrade(void) if (++sTradeData->timer > 60) { gMain.state++; - sub_8077288(2); + SetTradeLinkStandbyCallback(2); } break; case 6: @@ -4685,11 +4685,11 @@ static void CB2_SaveAndEndTrade(void) { if (gWirelessCommType && gMain.savedCallback == CB2_StartCreateTradeMenu) { - sub_8077288(3); + SetTradeLinkStandbyCallback(3); } else { - sub_800AC34(); + SetCloseLinkCallback(); } gMain.state++; } @@ -4902,7 +4902,7 @@ static void CB2_SaveAndEndWirelessTrade(void) DrawTextOnTradeWindow(0, gStringVar4, 0); break; case 1: - sub_8077288(0); + SetTradeLinkStandbyCallback(0); gMain.state = 2; sTradeData->timer = 0; break; @@ -4950,7 +4950,7 @@ static void CB2_SaveAndEndWirelessTrade(void) case 7: if (sTradeData->timer == 0) { - sub_8077288(1); + SetTradeLinkStandbyCallback(1); gMain.state = 8; } else @@ -4969,7 +4969,7 @@ static void CB2_SaveAndEndWirelessTrade(void) if (++sTradeData->timer > 60) { gMain.state++; - sub_8077288(2); + SetTradeLinkStandbyCallback(2); } break; case 10: @@ -4983,7 +4983,7 @@ static void CB2_SaveAndEndWirelessTrade(void) case 11: if (!gPaletteFade.active && IsBGMStopped() == TRUE) { - sub_8077288(3); + SetTradeLinkStandbyCallback(3); gMain.state = 12; } break; diff --git a/src/trainer_card.c b/src/trainer_card.c index fb92dc336e..3a9dbba8ab 100755 --- a/src/trainer_card.c +++ b/src/trainer_card.c @@ -498,7 +498,7 @@ static void Task_TrainerCard(u8 taskId) } break; case STATE_WAIT_LINK_PARTNER: - sub_800AC34(); + SetCloseLinkCallback(); DrawDialogueFrame(0, 1); AddTextPrinterParameterized(0, 1, gText_WaitingTrainerFinishReading, 0, 1, 255, 0); CopyWindowToVram(0, 3); diff --git a/src/union_room.c b/src/union_room.c index 1ef8cd4cb0..f2c35ac8e9 100644 --- a/src/union_room.c +++ b/src/union_room.c @@ -1483,7 +1483,7 @@ static void Task_ExchangeCards(u8 taskId) { case 0: if (GetMultiplayerId() == 0) - sub_800A4D8(2); + SendBlockRequest(2); gTasks[taskId].data[0]++; break; case 1: @@ -1759,7 +1759,7 @@ static void Task_RunScriptAndFadeToActivity(u8 taskId) } else { - sub_800ADF8(); + SetLinkStandbyCallback(); data[0] = 3; } } @@ -1795,7 +1795,7 @@ static void Task_RunScriptAndFadeToActivity(u8 taskId) DestroyTask(taskId); break; case 7: - sub_800AC34(); + SetCloseLinkCallback(); data[0] = 8; break; case 8: @@ -2018,7 +2018,7 @@ static void Task_MEvent_Leader(u8 taskId) Free(data->field_8); Free(data->field_0); Free(data->field_4); - sub_800ADF8(); + SetLinkStandbyCallback(); data->state++; break; case 17: @@ -2188,7 +2188,7 @@ static void Task_CardOrNewsWithFriend(u8 taskId) break; case 11: data->state++; - sub_800ADF8(); + SetLinkStandbyCallback(); break; case 12: if (IsLinkTaskFinished()) @@ -2367,7 +2367,7 @@ static void Task_CardOrNewsOverWireless(u8 taskId) break; case 13: data->state++; - sub_800ADF8(); + SetLinkStandbyCallback(); break; case 14: if (IsLinkTaskFinished()) @@ -2714,7 +2714,7 @@ static void Task_RunUnionRoom(u8 taskId) } break; case UR_STATE_REQUEST_DECLINED: - sub_800AC34(); + SetCloseLinkCallback(); uroom->state = UR_STATE_CANCEL_REQUEST_PRINT_MSG; break; case UR_STATE_SEND_TRADE_REQUST: @@ -2763,7 +2763,7 @@ static void Task_RunUnionRoom(u8 taskId) if (PrintOnTextbox(&uroom->textState, gStringVar4)) { uroom->state = UR_STATE_WAIT_FINISH_READING_CARD; - sub_800ADF8(); + SetLinkStandbyCallback(); uroom->partnerYesNoResponse = 0; uroom->recvActivityRequest[0] = 0; } @@ -2940,7 +2940,7 @@ static void Task_RunUnionRoom(u8 taskId) } break; case UR_STATE_DECLINE_ACTIVITY_REQUEST: - sub_800AC34(); + SetCloseLinkCallback(); uroom->state = UR_STATE_CANCEL_REQUEST_PRINT_MSG; break; case UR_STATE_CANCEL_REQUEST_PRINT_MSG: @@ -2962,7 +2962,7 @@ static void Task_RunUnionRoom(u8 taskId) ScheduleFieldMessageWithFollowupState(UR_STATE_START_ACTIVITY_LINK, gStringVar4); break; case UR_STATE_START_ACTIVITY_LINK: - sub_800ADF8(); + SetLinkStandbyCallback(); uroom->state = UR_STATE_START_ACTIVITY_WAIT_FOR_LINK; break; case UR_STATE_START_ACTIVITY_WAIT_FOR_LINK: @@ -3231,7 +3231,7 @@ static bool32 UnionRoom_HandleContactFromOtherPlayer(struct WirelessLink_URoom * else if (id == 2) // No activity { uroom->state = UR_STATE_CANCEL_REQUEST_PRINT_MSG; - sub_800AC34(); + SetCloseLinkCallback(); return FALSE; } } diff --git a/src/union_room_battle.c b/src/union_room_battle.c index 4b2aa0bb12..b9ddd74a75 100644 --- a/src/union_room_battle.c +++ b/src/union_room_battle.c @@ -174,7 +174,7 @@ void CB2_UnionRoomBattle(void) } else { - sub_800AC34(); + SetCloseLinkCallback(); if (gBlockRecvBuffer[GetMultiplayerId()][0] == (ACTIVITY_DECLINE | IN_UNION_ROOM)) { gMain.state = 6; @@ -190,7 +190,7 @@ void CB2_UnionRoomBattle(void) case 50: if (!UpdatePaletteFade()) { - sub_800ADF8(); + SetLinkStandbyCallback(); gMain.state++; } break; diff --git a/src/union_room_chat.c b/src/union_room_chat.c index fefb285a85..0e7cacf318 100755 --- a/src/union_room_chat.c +++ b/src/union_room_chat.c @@ -1267,7 +1267,7 @@ static void Chat_Exit(void) case 5: if (IsLinkTaskFinished() && !sub_8011A9C()) { - sub_800AC34(); + SetCloseLinkCallback(); sChat->exitDelayTimer = 0; sChat->funcState++; } @@ -1302,7 +1302,7 @@ static void Chat_Drop(void) case 1: if (!IsDisplaySubtaskActive(0) && IsLinkTaskFinished() && !sub_8011A9C()) { - sub_800AC34(); + SetCloseLinkCallback(); sChat->exitDelayTimer = 0; sChat->funcState++; } @@ -1348,7 +1348,7 @@ static void Chat_Disbanded(void) case 2: if (IsDisplaySubtaskActive(0) != TRUE && IsLinkTaskFinished() && !sub_8011A9C()) { - sub_800AC34(); + SetCloseLinkCallback(); sChat->exitDelayTimer = 0; sChat->funcState++; } From 3779422489e81c139ece633e1b6409b06d228d7c Mon Sep 17 00:00:00 2001 From: GriffinR Date: Thu, 13 Aug 2020 17:42:12 -0400 Subject: [PATCH 062/101] Split contest funcs from script_pokemon_util --- data/maps/ContestHall/scripts.inc | 4 +- data/scripts/contest_hall.inc | 2 +- data/specials.inc | 6 +- include/contest_util.h | 3 + include/script_pokemon_80F8.h | 10 - include/script_pokemon_util.h | 11 + include/script_pokemon_util_80F87D8.h | 9 - ld_script.txt | 4 +- src/battle_dome.c | 2 +- src/battle_setup.c | 2 +- src/cable_club.c | 2 +- src/contest.c | 1 - src/contest_util.c | 487 +++++++++++++++++ src/frontier_util.c | 2 +- src/overworld.c | 2 +- src/post_battle_event_funcs.c | 2 +- src/scrcmd.c | 4 +- src/script_pokemon_util.c | 225 ++++++++ src/script_pokemon_util_80F87D8.c | 726 -------------------------- src/trainer_card.c | 2 +- src/union_room.c | 2 +- 21 files changed, 744 insertions(+), 764 deletions(-) delete mode 100644 include/script_pokemon_80F8.h create mode 100644 include/script_pokemon_util.h delete mode 100644 include/script_pokemon_util_80F87D8.h create mode 100755 src/script_pokemon_util.c delete mode 100755 src/script_pokemon_util_80F87D8.c diff --git a/data/maps/ContestHall/scripts.inc b/data/maps/ContestHall/scripts.inc index 33e074e8ab..f9c3f4794d 100644 --- a/data/maps/ContestHall/scripts.inc +++ b/data/maps/ContestHall/scripts.inc @@ -18,7 +18,7 @@ ContestHall_OnTransition: @ 823B79F ContestHall_EventScript_ReadyContestMusic:: @ 823B7AF call ContestHall_EventScript_TryWaitForLink - special ScriptGetMultiplayerId + special GetContestMultiplayerId compare VAR_RESULT, 0 call_if_eq ContestHall_EventScript_SaveContestMusicPlayer1 compare VAR_RESULT, 1 @@ -136,7 +136,7 @@ ContestHall_EventScript_SetRandomAudience7:: @ 823B8ED ContestHall_EventScript_GetRandomAudienceGfxId:: @ 823B8F8 setvar VAR_RESULT, 32 - special ScriptRandom + special GenerateContestRand addvar VAR_RESULT, 1 switch VAR_RESULT case 1, ContestHall_EventScript_RandomAudienceNinjaBoy diff --git a/data/scripts/contest_hall.inc b/data/scripts/contest_hall.inc index 48fd2e293c..d08267c8e4 100644 --- a/data/scripts/contest_hall.inc +++ b/data/scripts/contest_hall.inc @@ -526,7 +526,7 @@ ContestHall_EventScript_AudienceHeartEmotes:: @ 827A34F ContestHall_EventScript_DisplayHearts:: @ 827A3E5 setvar VAR_RESULT, 8 - special ScriptRandom + special GenerateContestRand compare VAR_RESULT, 0 call_if_eq ContestHall_EventScript_TryDisplayHeartAudienceMember1 compare VAR_RESULT, 1 diff --git a/data/specials.inc b/data/specials.inc index 0f78f981f5..a9f648aab4 100644 --- a/data/specials.inc +++ b/data/specials.inc @@ -149,7 +149,7 @@ gSpecials:: @ 81DBA64 def_special SaveMuseumContestPainting def_special DoesContestCategoryHaveWinner def_special CountPlayerContestPaintings - def_special ShowContestWinner + def_special ShowContestWinnerPainting def_special MauvilleGymSetDefaultBarriers def_special MauvilleGymPressSwitch def_special ShowFieldMessageStringVar4 @@ -336,7 +336,7 @@ gSpecials:: @ 81DBA64 def_special BattleSetup_StartLatiBattle def_special SetRoute119Weather def_special SetRoute123Weather - def_special ScriptGetMultiplayerId + def_special GetContestMultiplayerId def_special ScriptGetPartyMonSpecies def_special IsSelectedMonEgg def_special TryInitBattleTowerAwardManObjectEvent @@ -350,7 +350,7 @@ gSpecials:: @ 81DBA64 def_special BufferLottoTicketNumber def_special TryHideBattleTowerReporter def_special DoesPartyHaveEnigmaBerry - def_special ScriptRandom + def_special GenerateContestRand def_special SetChampionSaveWarp def_special TryPutTreasureInvestigatorsOnAir def_special TryPutLotteryWinnerReportOnAir diff --git a/include/contest_util.h b/include/contest_util.h index d0021153d5..76f9ae522a 100644 --- a/include/contest_util.h +++ b/include/contest_util.h @@ -7,5 +7,8 @@ void StartContest(void); void BufferContestantMonSpecies(void); void ShowContestResults(void); void ContestLinkTransfer(u8); +void ShowContestWinnerPainting(void); +u16 GetContestRand(void); +u8 CountPlayerContestPaintings(void); #endif // GUARD_CONTEST_UTIL_H diff --git a/include/script_pokemon_80F8.h b/include/script_pokemon_80F8.h deleted file mode 100644 index 8dd7ed0c0f..0000000000 --- a/include/script_pokemon_80F8.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef GUARD_SCRIPTPOKE80F8_H -#define GUARD_SCRIPTPOKE80F8_H - -void ShowContestWinner(void); -u8 ScriptGiveMon(u16, u8, u16, u32, u32, u8); -u8 ScriptGiveEgg(u16); -void CreateScriptedWildMon(u16, u8, u16); -void ScriptSetMonMoveSlot(u8, u16, u8); - -#endif diff --git a/include/script_pokemon_util.h b/include/script_pokemon_util.h new file mode 100644 index 0000000000..120c28a637 --- /dev/null +++ b/include/script_pokemon_util.h @@ -0,0 +1,11 @@ +#ifndef GUARD_SCRIPT_POKEMON_UTIL +#define GUARD_SCRIPT_POKEMON_UTIL + +u8 ScriptGiveMon(u16, u8, u16, u32, u32, u8); +u8 ScriptGiveEgg(u16); +void CreateScriptedWildMon(u16, u8, u16); +void ScriptSetMonMoveSlot(u8, u16, u8); +void ReducePlayerPartyToSelectedMons(void); +void HealPlayerParty(void); + +#endif // GUARD_SCRIPT_POKEMON_UTIL diff --git a/include/script_pokemon_util_80F87D8.h b/include/script_pokemon_util_80F87D8.h deleted file mode 100644 index 7c246b7453..0000000000 --- a/include/script_pokemon_util_80F87D8.h +++ /dev/null @@ -1,9 +0,0 @@ -#ifndef GUARD_SCRIPT_POKEMON_UTIL_80F87D8_H -#define GUARD_SCRIPT_POKEMON_UTIL_80F87D8_H - -u16 GetContestRand(void); -void ReducePlayerPartyToSelectedMons(void); -void HealPlayerParty(void); -u8 CountPlayerContestPaintings(void); - -#endif // GUARD_SCRIPT_POKEMON_UTIL_80F87D8_H diff --git a/ld_script.txt b/ld_script.txt index 0e7e2f2346..6b14dc1899 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -170,7 +170,7 @@ SECTIONS { src/secret_base.o(.text); src/tv.o(.text); src/contest_util.o(.text); - src/script_pokemon_util_80F87D8.o(.text); + src/script_pokemon_util.o(.text); src/field_poison.o(.text); src/pokemon_size_record.o(.text); src/fldeff_misc.o(.text); @@ -545,7 +545,7 @@ SECTIONS { src/secret_base.o(.rodata); src/tv.o(.rodata); src/contest_util.o(.rodata); - src/script_pokemon_util_80F87D8.o(.rodata); + src/script_pokemon_util.o(.rodata); src/pokemon_size_record.o(.rodata) src/fldeff_misc.o(.rodata); src/field_special_scene.o(.rodata); diff --git a/src/battle_dome.c b/src/battle_dome.c index 6f3d111ba5..9e687f1311 100644 --- a/src/battle_dome.c +++ b/src/battle_dome.c @@ -29,7 +29,7 @@ #include "international_string_util.h" #include "trainer_pokemon_sprites.h" #include "scanline_effect.h" -#include "script_pokemon_util_80F87D8.h" +#include "script_pokemon_util.h" #include "graphics.h" #include "constants/battle_dome.h" #include "constants/frontier_util.h" diff --git a/src/battle_setup.c b/src/battle_setup.c index 40e36d302e..b6b97ea905 100644 --- a/src/battle_setup.c +++ b/src/battle_setup.c @@ -12,7 +12,7 @@ #include "fieldmap.h" #include "random.h" #include "starter_choose.h" -#include "script_pokemon_80F8.h" +#include "script_pokemon_util.h" #include "palette.h" #include "window.h" #include "event_object_movement.h" diff --git a/src/cable_club.c b/src/cable_club.c index b6fba361e9..982bd9fd3c 100644 --- a/src/cable_club.c +++ b/src/cable_club.c @@ -20,7 +20,7 @@ #include "union_room.h" #include "mevent2.h" #include "script.h" -#include "script_pokemon_util_80F87D8.h" +#include "script_pokemon_util.h" #include "sound.h" #include "start_menu.h" #include "string_util.h" diff --git a/src/contest.c b/src/contest.c index ab3897fa15..8ff696699d 100644 --- a/src/contest.c +++ b/src/contest.c @@ -40,7 +40,6 @@ #include "strings.h" #include "contest_effect.h" #include "contest_link.h" -#include "script_pokemon_util_80F87D8.h" #include "international_string_util.h" #include "data.h" #include "constants/rgb.h" diff --git a/src/contest_util.c b/src/contest_util.c index 23b9dcaaa9..50845b7072 100644 --- a/src/contest_util.c +++ b/src/contest_util.c @@ -6,10 +6,12 @@ #include "contest.h" #include "contest_util.h" #include "contest_link.h" +#include "contest_painting.h" #include "data.h" #include "decompress.h" #include "dma3.h" #include "event_data.h" +#include "event_object_movement.h" #include "field_specials.h" #include "gpu_regs.h" #include "graphics.h" @@ -27,6 +29,7 @@ #include "save.h" #include "scanline_effect.h" #include "script.h" +#include "script_menu.h" #include "sound.h" #include "string_util.h" #include "strings.h" @@ -36,6 +39,7 @@ #include "tv.h" #include "util.h" #include "window.h" +#include "constants/event_objects.h" #include "constants/field_specials.h" #include "constants/game_stat.h" #include "constants/rgb.h" @@ -160,6 +164,13 @@ static void Task_LinkContest_CalculateTurnOrderRS(u8); static void Task_LinkContest_Disconnect(u8); static void Task_LinkContest_WaitDisconnect(u8); static void SpriteCB_Confetti(struct Sprite *sprite); +static void Task_ShowContestEntryMonPic(u8 taskId); +static void Task_LinkContestWaitForConnection(u8 taskId); + +extern const u16 gObjectEventPalette8[]; +extern const u16 gObjectEventPalette17[]; +extern const u16 gObjectEventPalette33[]; +extern const u16 gObjectEventPalette34[]; static const u16 sUnknown_0858D6B0[] = INCBIN_U16("graphics/unknown/unknown_58D6B0.gbapal"); static const u8 sUnknown_0858D6D0[] = INCBIN_U8("graphics/unknown/unknown_58D6D0.4bpp"); @@ -2530,3 +2541,479 @@ static void Task_LinkContest_WaitDisconnect(u8 taskId) EnableBothScriptContexts(); } } + +void SetContestTrainerGfxIds(void) +{ + gSaveBlock1Ptr->vars[VAR_OBJ_GFX_ID_0 - VARS_START] = gContestMons[0].trainerGfxId; + gSaveBlock1Ptr->vars[VAR_OBJ_GFX_ID_1 - VARS_START] = gContestMons[1].trainerGfxId; + gSaveBlock1Ptr->vars[VAR_OBJ_GFX_ID_2 - VARS_START] = gContestMons[2].trainerGfxId; +} + +// Unused +void sub_80F8814(void) +{ + u16 var1; + u8 var0 = gSpecialVar_0x8005; + switch (var0) + { + case 0: + var1 = 3; + break; + case 1: + var1 = 4; + break; + case 2: + var1 = 5; + break; + default: + var1 = 100; + break; + } + + gSpecialVar_0x8004 = var1; +} + +void BufferContestTrainerAndMonNames(void) +{ + BufferContestantTrainerName(); + BufferContestantMonNickname(); + BufferContestantMonSpecies(); +} + +// Unused +void DoesContestCategoryHaveWinner(void) +{ + int contestWinner; + switch (gSpecialVar_ContestCategory) + { + case CONTEST_CATEGORY_COOL: + contestWinner = 8; + break; + case CONTEST_CATEGORY_BEAUTY: + contestWinner = 9; + break; + case CONTEST_CATEGORY_CUTE: + contestWinner = 10; + break; + case CONTEST_CATEGORY_SMART: + contestWinner = 11; + break; + case CONTEST_CATEGORY_TOUGH: + default: + contestWinner = 12; + break; + } + + if (gSaveBlock1Ptr->contestWinners[contestWinner].species == SPECIES_NONE) + gSpecialVar_0x8004 = FALSE; + else + gSpecialVar_0x8004 = TRUE; +} + +void SaveMuseumContestPainting(void) +{ + sub_80DEDA8(0xFF); +} + +void ShouldReadyContestArtist(void) +{ + if (gContestFinalStandings[gContestPlayerMonIndex] == 0 + && gSpecialVar_ContestRank == CONTEST_RANK_MASTER + && gContestMonTotalPoints[gContestPlayerMonIndex] >= 800) + { + gSpecialVar_0x8004 = TRUE; + } + else + { + gSpecialVar_0x8004 = FALSE; + } +} + +u8 CountPlayerContestPaintings(void) +{ + int i; + u8 count = 0; + + for (i = 0; i < 5; i++) + { + if (gSaveBlock1Ptr->contestWinners[8 + i].species) + count++; + } + + return count; +} + +// Unused +void sub_80F8970(void) +{ + s16 conditions[CONTESTANT_COUNT]; + int i, j; + s16 condition; + s8 var0; + u8 var2; + u8 r8; + u8 r7; + + for (i = 0; i < CONTESTANT_COUNT; i++) + conditions[i] = gContestMonRound1Points[i]; + + for (i = 0; i < CONTESTANT_COUNT - 1; i++) + { + for (j = CONTESTANT_COUNT - 1; j > i; j--) + { + if (conditions[j - 1] < conditions[j]) + { + int temp; + SWAP(conditions[j], conditions[j - 1], temp) + } + } + } + + condition = conditions[gSpecialVar_0x8006]; + var0 = 0; + r8 = 0; + for (i = 0; i < CONTESTANT_COUNT; i++) + { + if (conditions[i] == condition) + { + var0++; + if (i == gSpecialVar_0x8006) + r8 = var0; + } + } + + for (i = 0; i < CONTESTANT_COUNT; i++) + { + if (conditions[i] == condition) + break; + } + + r7 = i; + var2 = r8; + for (i = 0; i < CONTESTANT_COUNT; i++) + { + if (condition == gContestMonRound1Points[i]) + { + if (var2 == 1) + break; + var2--; + } + } + + StringCopy(gStringVar1, gContestMons[i].nickname); + StringCopy(gStringVar2, gContestMons[i].trainerName); + sub_81DB5AC(gStringVar2); + + if (var0 == 1) + gSpecialVar_0x8006 = r7; + else if (r8 == var0) + gSpecialVar_0x8006 = r7; + else + gSpecialVar_0x8006 = r7 + 4; +} + +static void ExitContestWinnerPainting(void) +{ + SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic); +} + +void ShowContestWinnerPainting(void) +{ + SetMainCallback2(CB2_ContestPainting); + gMain.savedCallback = ExitContestWinnerPainting; +} + +void SetLinkContestPlayerGfx(void) +{ + int i; + + if (gLinkContestFlags & LINK_CONTEST_FLAG_IS_LINK) + { + for (i = 0; i < gNumLinkContestPlayers; i++) + { + int version = (u8)gLinkPlayers[i].version; + if (version == VERSION_RUBY || version == VERSION_SAPPHIRE) + { + if (gLinkPlayers[i].gender == MALE) + gContestMons[i].trainerGfxId = OBJ_EVENT_GFX_LINK_RS_BRENDAN; + else + gContestMons[i].trainerGfxId = OBJ_EVENT_GFX_LINK_RS_MAY; + } + } + + VarSet(VAR_OBJ_GFX_ID_0, gContestMons[0].trainerGfxId); + VarSet(VAR_OBJ_GFX_ID_1, gContestMons[1].trainerGfxId); + VarSet(VAR_OBJ_GFX_ID_2, gContestMons[2].trainerGfxId); + VarSet(VAR_OBJ_GFX_ID_3, gContestMons[3].trainerGfxId); + } +} + +void LoadLinkContestPlayerPalettes(void) +{ + int i; + u8 objectEventId; + int version; + struct Sprite *sprite; + static const u8 sContestantLocalIds[CONTESTANT_COUNT] = { 3, 4, 5, 14 }; + + gReservedSpritePaletteCount = 12; + if (gLinkContestFlags & LINK_CONTEST_FLAG_IS_LINK) + { + for (i = 0; i < gNumLinkContestPlayers; i++) + { + objectEventId = GetObjectEventIdByLocalIdAndMap(sContestantLocalIds[i], gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup); + sprite = &gSprites[gObjectEvents[objectEventId].spriteId]; + sprite->oam.paletteNum = 6 + i; + version = (u8)gLinkPlayers[i].version; + if (version == VERSION_RUBY || version == VERSION_SAPPHIRE) + { + if (gLinkPlayers[i].gender == MALE) + LoadPalette(gObjectEventPalette33, 0x160 + i * 0x10, 0x20); + else + LoadPalette(gObjectEventPalette34, 0x160 + i * 0x10, 0x20); + } + else + { + if (gLinkPlayers[i].gender == MALE) + LoadPalette(gObjectEventPalette8, 0x160 + i * 0x10, 0x20); + else + LoadPalette(gObjectEventPalette17, 0x160 + i * 0x10, 0x20); + } + } + } +} + +bool8 GiveMonArtistRibbon(void) +{ + u8 hasArtistRibbon; + + hasArtistRibbon = GetMonData(&gPlayerParty[gContestMonPartyIndex], MON_DATA_ARTIST_RIBBON); + if (!hasArtistRibbon + && gContestFinalStandings[gContestPlayerMonIndex] == 0 + && gSpecialVar_ContestRank == CONTEST_RANK_MASTER + && gContestMonTotalPoints[gContestPlayerMonIndex] >= 800) + { + hasArtistRibbon = 1; + SetMonData(&gPlayerParty[gContestMonPartyIndex], MON_DATA_ARTIST_RIBBON, &hasArtistRibbon); + if (GetRibbonCount(&gPlayerParty[gContestMonPartyIndex]) > NUM_CUTIES_RIBBONS) + TryPutSpotTheCutiesOnAir(&gPlayerParty[gContestMonPartyIndex], MON_DATA_ARTIST_RIBBON); + + return TRUE; + } + else + { + return FALSE; + } +} + +bool8 IsContestDebugActive(void) +{ + return FALSE; // gUnknown_0203856C in pokeruby +} + +void ShowContestEntryMonPic(void) +{ + const struct CompressedSpritePalette *palette; + u32 personality, otId; + u16 species; + u8 spriteId; + u8 taskId; + u8 left, top; + + if (FindTaskIdByFunc(Task_ShowContestEntryMonPic) == 0xFF) + { + AllocateMonSpritesGfx(); + left = 10; + top = 3; + species = gContestMons[gSpecialVar_0x8006].species; + personality = gContestMons[gSpecialVar_0x8006].personality; + otId = gContestMons[gSpecialVar_0x8006].otId; + taskId = CreateTask(Task_ShowContestEntryMonPic, 0x50); + gTasks[taskId].data[0] = 0; + gTasks[taskId].data[1] = species; + if (gSpecialVar_0x8006 == gContestPlayerMonIndex) + HandleLoadSpecialPokePic_2(&gMonFrontPicTable[species], gMonSpritesGfxPtr->sprites[1], species, personality); + else + HandleLoadSpecialPokePic_DontHandleDeoxys(&gMonFrontPicTable[species], gMonSpritesGfxPtr->sprites[1], species, personality); + + palette = GetMonSpritePalStructFromOtIdPersonality(species, otId, personality); + LoadCompressedSpritePalette(palette); + SetMultiuseSpriteTemplateToPokemon(species, 1); + gMultiuseSpriteTemplate.paletteTag = palette->tag; + spriteId = CreateSprite(&gMultiuseSpriteTemplate, (left + 1) * 8 + 32, (top * 8) + 40, 0); + + if (gLinkContestFlags & LINK_CONTEST_FLAG_IS_LINK) + { + if (!(gLinkContestFlags & LINK_CONTEST_FLAG_HAS_RS_PLAYER)) + DoMonFrontSpriteAnimation(&gSprites[spriteId], species, FALSE, 0); + } + else + { + DoMonFrontSpriteAnimation(&gSprites[spriteId], species, FALSE, 0); + } + + gTasks[taskId].data[2] = spriteId; + gTasks[taskId].data[3] = left; + gTasks[taskId].data[4] = top; + gSprites[spriteId].callback = SpriteCallbackDummy; + gSprites[spriteId].oam.priority = 0; + } +} + +void HideContestEntryMonPic(void) +{ + u8 taskId = FindTaskIdByFunc(Task_ShowContestEntryMonPic); + if (taskId != 0xFF) + { + gTasks[taskId].data[0]++; + FreeMonSpritesGfx(); + } +} + +static void Task_ShowContestEntryMonPic(u8 taskId) +{ + struct Task *task = &gTasks[taskId]; + struct Sprite *sprite; + + switch(task->data[0]) + { + case 0: + task->data[0]++; + break; + case 1: + task->data[5] = CreateWindowFromRect(10, 3, 8, 8); + SetStandardWindowBorderStyle(task->data[5], 1); + task->data[0]++; + break; + case 2: + break; + case 3: + sprite = &gSprites[task->data[2]]; + FreeSpritePaletteByTag(GetSpritePaletteTagByPaletteNum(sprite->oam.paletteNum)); + + if(sprite->oam.affineMode) + FreeOamMatrix(sprite->oam.matrixNum); + + DestroySprite(sprite); + task->data[0]++; + break; + case 4: + ClearToTransparentAndRemoveWindow(gTasks[taskId].data[5]); + DestroyTask(taskId); + break; + } +} + +void GetContestMultiplayerId(void) +{ + if ((gLinkContestFlags & LINK_CONTEST_FLAG_IS_LINK) + && gNumLinkContestPlayers == CONTESTANT_COUNT + && !(gLinkContestFlags & LINK_CONTEST_FLAG_IS_WIRELESS)) + gSpecialVar_Result = GetMultiplayerId(); + else + gSpecialVar_Result = MAX_LINK_PLAYERS; +} + +void GenerateContestRand(void) +{ + u16 random; + u16 *result; + + if (gLinkContestFlags & LINK_CONTEST_FLAG_IS_LINK) + { + gContestRngValue = ISO_RANDOMIZE1(gContestRngValue); + random = gContestRngValue >> 16; + result = &gSpecialVar_Result; + } + else + { + result = &gSpecialVar_Result; + random = Random(); + } + *result = random % *result; +} + +u16 GetContestRand(void) +{ + gContestRngValue = ISO_RANDOMIZE1(gContestRngValue); + return gContestRngValue >> 16; +} + +bool8 LinkContestWaitForConnection(void) +{ + if (gLinkContestFlags & LINK_CONTEST_FLAG_IS_WIRELESS) + { + CreateTask(Task_LinkContestWaitForConnection, 5); + return TRUE; + } + else + { + return FALSE; + } +} + +static void Task_LinkContestWaitForConnection(u8 taskId) +{ + switch (gTasks[taskId].data[0]) + { + case 0: + if (IsLinkTaskFinished()) + { + SetLinkStandbyCallback(); + gTasks[taskId].data[0]++; + } + break; + case 1: + gTasks[taskId].data[0]++; + break; + default: + if (IsLinkTaskFinished() == 1) + { + EnableBothScriptContexts(); + DestroyTask(taskId); + } + break; + } +} + +void LinkContestTryShowWirelessIndicator(void) +{ + if (gLinkContestFlags & LINK_CONTEST_FLAG_IS_WIRELESS) + { + if (gReceivedRemoteLinkPlayers) + { + LoadWirelessStatusIndicatorSpriteGfx(); + CreateWirelessStatusIndicatorSprite(8, 8); + } + } +} + +void LinkContestTryHideWirelessIndicator(void) +{ + if (gLinkContestFlags & LINK_CONTEST_FLAG_IS_WIRELESS) + { + if (gReceivedRemoteLinkPlayers) + DestroyWirelessStatusIndicatorSprite(); + } +} + +bool8 IsContestWithRSPlayer(void) +{ + if (gLinkContestFlags & LINK_CONTEST_FLAG_HAS_RS_PLAYER) + return TRUE; + else + return FALSE; +} + +void ClearLinkContestFlags(void) +{ + gLinkContestFlags = 0; +} + +bool8 IsWirelessContest(void) +{ + if (gLinkContestFlags & LINK_CONTEST_FLAG_IS_WIRELESS) + return TRUE; + else + return FALSE; +} diff --git a/src/frontier_util.c b/src/frontier_util.c index 668771375d..c741a64fea 100644 --- a/src/frontier_util.c +++ b/src/frontier_util.c @@ -7,7 +7,7 @@ #include "battle_tower.h" #include "field_specials.h" #include "battle.h" -#include "script_pokemon_util_80F87D8.h" +#include "script_pokemon_util.h" #include "main.h" #include "window.h" #include "menu.h" diff --git a/src/overworld.c b/src/overworld.c index ea0d633bcf..1d9f704300 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -44,7 +44,7 @@ #include "save.h" #include "save_location.h" #include "script.h" -#include "script_pokemon_util_80F87D8.h" +#include "script_pokemon_util.h" #include "secret_base.h" #include "sound.h" #include "start_menu.h" diff --git a/src/post_battle_event_funcs.c b/src/post_battle_event_funcs.c index 4fa5d1b21a..afafca0cad 100644 --- a/src/post_battle_event_funcs.c +++ b/src/post_battle_event_funcs.c @@ -5,7 +5,7 @@ #include "hall_of_fame.h" #include "load_save.h" #include "overworld.h" -#include "script_pokemon_util_80F87D8.h" +#include "script_pokemon_util.h" #include "tv.h" #include "constants/heal_locations.h" #include "constants/flags.h" diff --git a/src/scrcmd.c b/src/scrcmd.c index 4a7f4ea735..8155887843 100644 --- a/src/scrcmd.c +++ b/src/scrcmd.c @@ -38,7 +38,7 @@ #include "script.h" #include "script_menu.h" #include "script_movement.h" -#include "script_pokemon_80F8.h" +#include "script_pokemon_util.h" #include "shop.h" #include "slot_machine.h" #include "sound.h" @@ -1474,7 +1474,7 @@ bool8 ScrCmd_showcontestwinner(struct ScriptContext *ctx) if (contestWinnerId != CONTEST_WINNER_ARTIST) SetContestWinnerForPainting(contestWinnerId); - ShowContestWinner(); + ShowContestWinnerPainting(); ScriptContext1_Stop(); return TRUE; } diff --git a/src/script_pokemon_util.c b/src/script_pokemon_util.c new file mode 100755 index 0000000000..3546ed1269 --- /dev/null +++ b/src/script_pokemon_util.c @@ -0,0 +1,225 @@ +#include "global.h" +#include "battle.h" +#include "battle_gfx_sfx_util.h" +#include "berry.h" +#include "data.h" +#include "daycare.h" +#include "decompress.h" +#include "event_data.h" +#include "international_string_util.h" +#include "link.h" +#include "link_rfu.h" +#include "main.h" +#include "menu.h" +#include "overworld.h" +#include "palette.h" +#include "party_menu.h" +#include "pokedex.h" +#include "pokemon.h" +#include "random.h" +#include "script.h" +#include "sprite.h" +#include "string_util.h" +#include "tv.h" +#include "constants/items.h" +#include "constants/species.h" +#include "constants/tv.h" +#include "constants/vars.h" +#include "constants/battle_frontier.h" + +static void CB2_ReturnFromChooseHalfParty(void); +static void CB2_ReturnFromChooseBattleFrontierParty(void); + +void HealPlayerParty(void) +{ + u8 i, j; + u8 ppBonuses; + u8 arg[4]; + + // restore HP. + for(i = 0; i < gPlayerPartyCount; i++) + { + u16 maxHP = GetMonData(&gPlayerParty[i], MON_DATA_MAX_HP); + arg[0] = maxHP; + arg[1] = maxHP >> 8; + SetMonData(&gPlayerParty[i], MON_DATA_HP, arg); + ppBonuses = GetMonData(&gPlayerParty[i], MON_DATA_PP_BONUSES); + + // restore PP. + for(j = 0; j < MAX_MON_MOVES; j++) + { + arg[0] = CalculatePPWithBonus(GetMonData(&gPlayerParty[i], MON_DATA_MOVE1 + j), ppBonuses, j); + SetMonData(&gPlayerParty[i], MON_DATA_PP1 + j, arg); + } + + // since status is u32, the four 0 assignments here are probably for safety to prevent undefined data from reaching SetMonData. + arg[0] = 0; + arg[1] = 0; + arg[2] = 0; + arg[3] = 0; + SetMonData(&gPlayerParty[i], MON_DATA_STATUS, arg); + } +} + +u8 ScriptGiveMon(u16 species, u8 level, u16 item, u32 unused1, u32 unused2, u8 unused3) +{ + u16 nationalDexNum; + int sentToPc; + u8 heldItem[2]; + struct Pokemon mon; + + CreateMon(&mon, species, level, 32, 0, 0, OT_ID_PLAYER_ID, 0); + heldItem[0] = item; + heldItem[1] = item >> 8; + SetMonData(&mon, MON_DATA_HELD_ITEM, heldItem); + sentToPc = GiveMonToPlayer(&mon); + nationalDexNum = SpeciesToNationalPokedexNum(species); + + switch(sentToPc) + { + case 0: + case 1: + GetSetPokedexFlag(nationalDexNum, FLAG_SET_SEEN); + GetSetPokedexFlag(nationalDexNum, FLAG_SET_CAUGHT); + break; + } + return sentToPc; +} + +u8 ScriptGiveEgg(u16 species) +{ + struct Pokemon mon; + u8 isEgg; + + CreateEgg(&mon, species, TRUE); + isEgg = TRUE; + SetMonData(&mon, MON_DATA_IS_EGG, &isEgg); + + return GiveMonToPlayer(&mon); +} + +void HasEnoughMonsForDoubleBattle(void) +{ + switch (GetMonsStateToDoubles()) + { + case PLAYER_HAS_TWO_USABLE_MONS: + gSpecialVar_Result = PLAYER_HAS_TWO_USABLE_MONS; + break; + case PLAYER_HAS_ONE_MON: + gSpecialVar_Result = PLAYER_HAS_ONE_MON; + break; + case PLAYER_HAS_ONE_USABLE_MON: + gSpecialVar_Result = PLAYER_HAS_ONE_USABLE_MON; + break; + } +} + +static bool8 CheckPartyMonHasHeldItem(u16 item) +{ + int i; + + for(i = 0; i < PARTY_SIZE; i++) + { + u16 species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2); + if (species != SPECIES_NONE && species != SPECIES_EGG && GetMonData(&gPlayerParty[i], MON_DATA_HELD_ITEM) == item) + return TRUE; + } + return FALSE; +} + +bool8 DoesPartyHaveEnigmaBerry(void) +{ + bool8 hasItem = CheckPartyMonHasHeldItem(ITEM_ENIGMA_BERRY); + if (hasItem == TRUE) + GetBerryNameByBerryType(ItemIdToBerryType(ITEM_ENIGMA_BERRY), gStringVar1); + + return hasItem; +} + +void CreateScriptedWildMon(u16 species, u8 level, u16 item) +{ + u8 heldItem[2]; + + ZeroEnemyPartyMons(); + CreateMon(&gEnemyParty[0], species, level, 32, 0, 0, OT_ID_PLAYER_ID, 0); + if (item) + { + heldItem[0] = item; + heldItem[1] = item >> 8; + SetMonData(&gEnemyParty[0], MON_DATA_HELD_ITEM, heldItem); + } +} + +void ScriptSetMonMoveSlot(u8 monIndex, u16 move, u8 slot) +{ + if (monIndex > PARTY_SIZE) + monIndex = gPlayerPartyCount - 1; + + SetMonMoveSlot(&gPlayerParty[monIndex], move, slot); +} + +// Note: When control returns to the event script, gSpecialVar_Result will be +// TRUE if the party selection was successful. +void ChooseHalfPartyForBattle(void) +{ + gMain.savedCallback = CB2_ReturnFromChooseHalfParty; + VarSet(VAR_FRONTIER_FACILITY, FACILITY_MULTI_OR_EREADER); + InitChooseHalfPartyForBattle(0); +} + +static void CB2_ReturnFromChooseHalfParty(void) +{ + switch (gSelectedOrderFromParty[0]) + { + case 0: + gSpecialVar_Result = FALSE; + break; + default: + gSpecialVar_Result = TRUE; + break; + } + + SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic); +} + +void ChoosePartyForBattleFrontier(void) +{ + gMain.savedCallback = CB2_ReturnFromChooseBattleFrontierParty; + InitChooseHalfPartyForBattle(gSpecialVar_0x8004 + 1); +} + +static void CB2_ReturnFromChooseBattleFrontierParty(void) +{ + switch (gSelectedOrderFromParty[0]) + { + case 0: + gSpecialVar_Result = FALSE; + break; + default: + gSpecialVar_Result = TRUE; + break; + } + + SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic); +} + +void ReducePlayerPartyToSelectedMons(void) +{ + struct Pokemon party[MAX_FRONTIER_PARTY_SIZE]; + int i; + + CpuFill32(0, party, sizeof party); + + // copy the selected pokemon according to the order. + for (i = 0; i < MAX_FRONTIER_PARTY_SIZE; i++) + if (gSelectedOrderFromParty[i]) // as long as the order keeps going (did the player select 1 mon? 2? 3?), do not stop + party[i] = gPlayerParty[gSelectedOrderFromParty[i] - 1]; // index is 0 based, not literal + + CpuFill32(0, gPlayerParty, sizeof gPlayerParty); + + // overwrite the first 4 with the order copied to. + for (i = 0; i < MAX_FRONTIER_PARTY_SIZE; i++) + gPlayerParty[i] = party[i]; + + CalculatePlayerPartyCount(); +} diff --git a/src/script_pokemon_util_80F87D8.c b/src/script_pokemon_util_80F87D8.c deleted file mode 100755 index b151b56509..0000000000 --- a/src/script_pokemon_util_80F87D8.c +++ /dev/null @@ -1,726 +0,0 @@ -#include "global.h" -#include "battle.h" -#include "battle_gfx_sfx_util.h" -#include "berry.h" -#include "contest.h" -#include "contest_util.h" -#include "contest_painting.h" -#include "data.h" -#include "daycare.h" -#include "decompress.h" -#include "event_data.h" -#include "event_object_movement.h" -#include "international_string_util.h" -#include "link.h" -#include "link_rfu.h" -#include "main.h" -#include "menu.h" -#include "overworld.h" -#include "palette.h" -#include "party_menu.h" -#include "pokedex.h" -#include "pokemon.h" -#include "random.h" -#include "script.h" -#include "script_menu.h" -#include "sprite.h" -#include "string_util.h" -#include "tv.h" -#include "constants/event_objects.h" -#include "constants/items.h" -#include "constants/species.h" -#include "constants/tv.h" -#include "constants/vars.h" -#include "constants/battle_frontier.h" - -extern const u16 gObjectEventPalette8[]; -extern const u16 gObjectEventPalette17[]; -extern const u16 gObjectEventPalette33[]; -extern const u16 gObjectEventPalette34[]; - -static const u8 gUnknown_0858D8EC[] = { 3, 4, 5, 14 }; - -static void Task_ShowContestEntryMonPic(u8 taskId); -static void Task_LinkContestWaitForConnection(u8 taskId); -static void CB2_ReturnFromChooseHalfParty(void); -static void CB2_ReturnFromChooseBattleFrontierParty(void); - -void SetContestTrainerGfxIds(void) -{ - gSaveBlock1Ptr->vars[VAR_OBJ_GFX_ID_0 - VARS_START] = gContestMons[0].trainerGfxId; - gSaveBlock1Ptr->vars[VAR_OBJ_GFX_ID_1 - VARS_START] = gContestMons[1].trainerGfxId; - gSaveBlock1Ptr->vars[VAR_OBJ_GFX_ID_2 - VARS_START] = gContestMons[2].trainerGfxId; -} - -// Unused -void sub_80F8814(void) -{ - u16 var1; - u8 var0 = gSpecialVar_0x8005; - switch (var0) - { - case 0: - var1 = 3; - break; - case 1: - var1 = 4; - break; - case 2: - var1 = 5; - break; - default: - var1 = 100; - break; - } - - gSpecialVar_0x8004 = var1; -} - -void BufferContestTrainerAndMonNames(void) -{ - BufferContestantTrainerName(); - BufferContestantMonNickname(); - BufferContestantMonSpecies(); -} - -// Unused -void DoesContestCategoryHaveWinner(void) -{ - int contestWinner; - switch (gSpecialVar_ContestCategory) - { - case CONTEST_CATEGORY_COOL: - contestWinner = 8; - break; - case CONTEST_CATEGORY_BEAUTY: - contestWinner = 9; - break; - case CONTEST_CATEGORY_CUTE: - contestWinner = 10; - break; - case CONTEST_CATEGORY_SMART: - contestWinner = 11; - break; - case CONTEST_CATEGORY_TOUGH: - default: - contestWinner = 12; - break; - } - - if (gSaveBlock1Ptr->contestWinners[contestWinner].species == SPECIES_NONE) - gSpecialVar_0x8004 = FALSE; - else - gSpecialVar_0x8004 = TRUE; -} - -void SaveMuseumContestPainting(void) -{ - sub_80DEDA8(0xFF); -} - -void ShouldReadyContestArtist(void) -{ - if (gContestFinalStandings[gContestPlayerMonIndex] == 0 - && gSpecialVar_ContestRank == CONTEST_RANK_MASTER - && gContestMonTotalPoints[gContestPlayerMonIndex] >= 800) - { - gSpecialVar_0x8004 = TRUE; - } - else - { - gSpecialVar_0x8004 = FALSE; - } -} - -u8 CountPlayerContestPaintings(void) -{ - int i; - u8 count = 0; - - for (i = 0; i < 5; i++) - { - if (gSaveBlock1Ptr->contestWinners[8 + i].species) - count++; - } - - return count; -} - -// Unused -void sub_80F8970(void) -{ - s16 conditions[CONTESTANT_COUNT]; - int i, j; - s16 condition; - s8 var0; - u8 var2; - u8 r8; - u8 r7; - - for (i = 0; i < CONTESTANT_COUNT; i++) - conditions[i] = gContestMonRound1Points[i]; - - for (i = 0; i < CONTESTANT_COUNT - 1; i++) - { - for (j = CONTESTANT_COUNT - 1; j > i; j--) - { - if (conditions[j - 1] < conditions[j]) - { - int temp; - SWAP(conditions[j], conditions[j - 1], temp) - } - } - } - - condition = conditions[gSpecialVar_0x8006]; - var0 = 0; - r8 = 0; - for (i = 0; i < CONTESTANT_COUNT; i++) - { - if (conditions[i] == condition) - { - var0++; - if (i == gSpecialVar_0x8006) - r8 = var0; - } - } - - for (i = 0; i < CONTESTANT_COUNT; i++) - { - if (conditions[i] == condition) - break; - } - - r7 = i; - var2 = r8; - for (i = 0; i < CONTESTANT_COUNT; i++) - { - if (condition == gContestMonRound1Points[i]) - { - if (var2 == 1) - break; - var2--; - } - } - - StringCopy(gStringVar1, gContestMons[i].nickname); - StringCopy(gStringVar2, gContestMons[i].trainerName); - sub_81DB5AC(gStringVar2); - - if (var0 == 1) - gSpecialVar_0x8006 = r7; - else if (r8 == var0) - gSpecialVar_0x8006 = r7; - else - gSpecialVar_0x8006 = r7 + 4; -} - -static void ShowContestWinnerCleanup(void) -{ - SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic); -} - -void ShowContestWinner(void) -{ - /* - if(gUnknown_0203856C) - { - sub_80AAF30(); - gBattleStruct->unk15DDF = 1; - gBattleStruct->unk15DDE = sub_80B2C4C(254, 0); - Contest_SaveWinner(3); - gUnknown_0203856C = 0; - } - */ - - SetMainCallback2(CB2_ContestPainting); - gMain.savedCallback = ShowContestWinnerCleanup; -} - -void SetLinkContestPlayerGfx(void) -{ - int i; - - if (gLinkContestFlags & LINK_CONTEST_FLAG_IS_LINK) - { - for (i = 0; i < gNumLinkContestPlayers; i++) - { - int version = (u8)gLinkPlayers[i].version; - if (version == VERSION_RUBY || version == VERSION_SAPPHIRE) - { - if (gLinkPlayers[i].gender == MALE) - gContestMons[i].trainerGfxId = OBJ_EVENT_GFX_LINK_RS_BRENDAN; - else - gContestMons[i].trainerGfxId = OBJ_EVENT_GFX_LINK_RS_MAY; - } - } - - VarSet(VAR_OBJ_GFX_ID_0, gContestMons[0].trainerGfxId); - VarSet(VAR_OBJ_GFX_ID_1, gContestMons[1].trainerGfxId); - VarSet(VAR_OBJ_GFX_ID_2, gContestMons[2].trainerGfxId); - VarSet(VAR_OBJ_GFX_ID_3, gContestMons[3].trainerGfxId); - } -} - -void LoadLinkContestPlayerPalettes(void) -{ - int i; - u8 objectEventId; - int version; - struct Sprite *sprite; - - gReservedSpritePaletteCount = 12; - if (gLinkContestFlags & LINK_CONTEST_FLAG_IS_LINK) - { - for (i = 0; i < gNumLinkContestPlayers; i++) - { - objectEventId = GetObjectEventIdByLocalIdAndMap(gUnknown_0858D8EC[i], gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup); - sprite = &gSprites[gObjectEvents[objectEventId].spriteId]; - sprite->oam.paletteNum = 6 + i; - version = (u8)gLinkPlayers[i].version; - if (version == VERSION_RUBY || version == VERSION_SAPPHIRE) - { - if (gLinkPlayers[i].gender == MALE) - LoadPalette(gObjectEventPalette33, 0x160 + i * 0x10, 0x20); - else - LoadPalette(gObjectEventPalette34, 0x160 + i * 0x10, 0x20); - } - else - { - if (gLinkPlayers[i].gender == MALE) - LoadPalette(gObjectEventPalette8, 0x160 + i * 0x10, 0x20); - else - LoadPalette(gObjectEventPalette17, 0x160 + i * 0x10, 0x20); - } - } - } -} - -u8 GiveMonArtistRibbon(void) -{ - u8 hasArtistRibbon; - - hasArtistRibbon = GetMonData(&gPlayerParty[gContestMonPartyIndex], MON_DATA_ARTIST_RIBBON); - if (!hasArtistRibbon - && gContestFinalStandings[gContestPlayerMonIndex] == 0 - && gSpecialVar_ContestRank == CONTEST_RANK_MASTER - && gContestMonTotalPoints[gContestPlayerMonIndex] >= 800) - { - hasArtistRibbon = 1; - SetMonData(&gPlayerParty[gContestMonPartyIndex], MON_DATA_ARTIST_RIBBON, &hasArtistRibbon); - if (GetRibbonCount(&gPlayerParty[gContestMonPartyIndex]) > NUM_CUTIES_RIBBONS) - TryPutSpotTheCutiesOnAir(&gPlayerParty[gContestMonPartyIndex], MON_DATA_ARTIST_RIBBON); - - return 1; - } - else - { - return 0; - } -} - -bool8 IsContestDebugActive(void) -{ - return FALSE; // gUnknown_0203856C in pokeruby -} - -void ShowContestEntryMonPic(void) -{ - const struct CompressedSpritePalette *palette; - u32 personality, otId; - u16 species; - u8 spriteId; - u8 taskId; - u8 left, top; - - if (FindTaskIdByFunc(Task_ShowContestEntryMonPic) == 0xFF) - { - AllocateMonSpritesGfx(); - left = 10; - top = 3; - species = gContestMons[gSpecialVar_0x8006].species; - personality = gContestMons[gSpecialVar_0x8006].personality; - otId = gContestMons[gSpecialVar_0x8006].otId; - taskId = CreateTask(Task_ShowContestEntryMonPic, 0x50); - gTasks[taskId].data[0] = 0; - gTasks[taskId].data[1] = species; - if (gSpecialVar_0x8006 == gContestPlayerMonIndex) - HandleLoadSpecialPokePic_2(&gMonFrontPicTable[species], gMonSpritesGfxPtr->sprites[1], species, personality); - else - HandleLoadSpecialPokePic_DontHandleDeoxys(&gMonFrontPicTable[species], gMonSpritesGfxPtr->sprites[1], species, personality); - - palette = GetMonSpritePalStructFromOtIdPersonality(species, otId, personality); - LoadCompressedSpritePalette(palette); - SetMultiuseSpriteTemplateToPokemon(species, 1); - gMultiuseSpriteTemplate.paletteTag = palette->tag; - spriteId = CreateSprite(&gMultiuseSpriteTemplate, (left + 1) * 8 + 32, (top * 8) + 40, 0); - - if (gLinkContestFlags & LINK_CONTEST_FLAG_IS_LINK) - { - if (!(gLinkContestFlags & LINK_CONTEST_FLAG_HAS_RS_PLAYER)) - DoMonFrontSpriteAnimation(&gSprites[spriteId], species, FALSE, 0); - } - else - { - DoMonFrontSpriteAnimation(&gSprites[spriteId], species, FALSE, 0); - } - - gTasks[taskId].data[2] = spriteId; - gTasks[taskId].data[3] = left; - gTasks[taskId].data[4] = top; - gSprites[spriteId].callback = SpriteCallbackDummy; - gSprites[spriteId].oam.priority = 0; - } -} - -void HideContestEntryMonPic(void) -{ - u8 taskId = FindTaskIdByFunc(Task_ShowContestEntryMonPic); - if (taskId != 0xFF) - { - gTasks[taskId].data[0]++; - FreeMonSpritesGfx(); - } -} - -static void Task_ShowContestEntryMonPic(u8 taskId) -{ - struct Task *task = &gTasks[taskId]; - struct Sprite *sprite; - - switch(task->data[0]) - { - case 0: - task->data[0]++; - break; - case 1: - task->data[5] = CreateWindowFromRect(10, 3, 8, 8); - SetStandardWindowBorderStyle(task->data[5], 1); - task->data[0]++; - break; - case 2: - break; - case 3: - sprite = &gSprites[task->data[2]]; - FreeSpritePaletteByTag(GetSpritePaletteTagByPaletteNum(sprite->oam.paletteNum)); - - if(sprite->oam.affineMode) - FreeOamMatrix(sprite->oam.matrixNum); - - DestroySprite(sprite); - task->data[0]++; - break; - case 4: - ClearToTransparentAndRemoveWindow(gTasks[taskId].data[5]); - DestroyTask(taskId); - break; - } -} - -void ScriptGetMultiplayerId(void) -{ - if ((gLinkContestFlags & LINK_CONTEST_FLAG_IS_LINK) - && gNumLinkContestPlayers == CONTESTANT_COUNT - && !(gLinkContestFlags & LINK_CONTEST_FLAG_IS_WIRELESS)) - gSpecialVar_Result = GetMultiplayerId(); - else - gSpecialVar_Result = MAX_LINK_PLAYERS; -} - -void ScriptRandom(void) -{ - u16 random; - u16 *scriptPtr; - - if (gLinkContestFlags & LINK_CONTEST_FLAG_IS_LINK) - { - gContestRngValue = ISO_RANDOMIZE1(gContestRngValue); - random = gContestRngValue >> 16; - scriptPtr = &gSpecialVar_Result; - } - else - { - scriptPtr = &gSpecialVar_Result; - random = Random(); - } - *scriptPtr = random % *scriptPtr; -} - -u16 GetContestRand(void) -{ - gContestRngValue = ISO_RANDOMIZE1(gContestRngValue); - return gContestRngValue >> 16; -} - -bool8 LinkContestWaitForConnection(void) -{ - if (gLinkContestFlags & LINK_CONTEST_FLAG_IS_WIRELESS) - { - CreateTask(Task_LinkContestWaitForConnection, 5); - return TRUE; - } - else - { - return FALSE; - } -} - -static void Task_LinkContestWaitForConnection(u8 taskId) -{ - switch (gTasks[taskId].data[0]) - { - case 0: - if (IsLinkTaskFinished()) - { - SetLinkStandbyCallback(); - gTasks[taskId].data[0]++; - } - break; - case 1: - gTasks[taskId].data[0]++; - break; - default: - if (IsLinkTaskFinished() == 1) - { - EnableBothScriptContexts(); - DestroyTask(taskId); - } - break; - } -} - -void LinkContestTryShowWirelessIndicator(void) -{ - if (gLinkContestFlags & LINK_CONTEST_FLAG_IS_WIRELESS) - { - if (gReceivedRemoteLinkPlayers) - { - LoadWirelessStatusIndicatorSpriteGfx(); - CreateWirelessStatusIndicatorSprite(8, 8); - } - } -} - -void LinkContestTryHideWirelessIndicator(void) -{ - if (gLinkContestFlags & LINK_CONTEST_FLAG_IS_WIRELESS) - { - if (gReceivedRemoteLinkPlayers) - DestroyWirelessStatusIndicatorSprite(); - } -} - -bool8 IsContestWithRSPlayer(void) -{ - if (gLinkContestFlags & LINK_CONTEST_FLAG_HAS_RS_PLAYER) - return TRUE; - else - return FALSE; -} - -void ClearLinkContestFlags(void) -{ - gLinkContestFlags = 0; -} - -bool8 IsWirelessContest(void) -{ - if (gLinkContestFlags & LINK_CONTEST_FLAG_IS_WIRELESS) - return TRUE; - else - return FALSE; -} - -void HealPlayerParty(void) -{ - u8 i, j; - u8 ppBonuses; - u8 arg[4]; - - // restore HP. - for(i = 0; i < gPlayerPartyCount; i++) - { - u16 maxHP = GetMonData(&gPlayerParty[i], MON_DATA_MAX_HP); - arg[0] = maxHP; - arg[1] = maxHP >> 8; - SetMonData(&gPlayerParty[i], MON_DATA_HP, arg); - ppBonuses = GetMonData(&gPlayerParty[i], MON_DATA_PP_BONUSES); - - // restore PP. - for(j = 0; j < MAX_MON_MOVES; j++) - { - arg[0] = CalculatePPWithBonus(GetMonData(&gPlayerParty[i], MON_DATA_MOVE1 + j), ppBonuses, j); - SetMonData(&gPlayerParty[i], MON_DATA_PP1 + j, arg); - } - - // since status is u32, the four 0 assignments here are probably for safety to prevent undefined data from reaching SetMonData. - arg[0] = 0; - arg[1] = 0; - arg[2] = 0; - arg[3] = 0; - SetMonData(&gPlayerParty[i], MON_DATA_STATUS, arg); - } -} - -u8 ScriptGiveMon(u16 species, u8 level, u16 item, u32 unused1, u32 unused2, u8 unused3) -{ - u16 nationalDexNum; - int sentToPc; - u8 heldItem[2]; - struct Pokemon mon; - - CreateMon(&mon, species, level, 32, 0, 0, OT_ID_PLAYER_ID, 0); - heldItem[0] = item; - heldItem[1] = item >> 8; - SetMonData(&mon, MON_DATA_HELD_ITEM, heldItem); - sentToPc = GiveMonToPlayer(&mon); - nationalDexNum = SpeciesToNationalPokedexNum(species); - - switch(sentToPc) - { - case 0: - case 1: - GetSetPokedexFlag(nationalDexNum, FLAG_SET_SEEN); - GetSetPokedexFlag(nationalDexNum, FLAG_SET_CAUGHT); - break; - } - return sentToPc; -} - -u8 ScriptGiveEgg(u16 species) -{ - struct Pokemon mon; - u8 isEgg; - - CreateEgg(&mon, species, TRUE); - isEgg = TRUE; - SetMonData(&mon, MON_DATA_IS_EGG, &isEgg); - - return GiveMonToPlayer(&mon); -} - -void HasEnoughMonsForDoubleBattle(void) -{ - switch (GetMonsStateToDoubles()) - { - case PLAYER_HAS_TWO_USABLE_MONS: - gSpecialVar_Result = PLAYER_HAS_TWO_USABLE_MONS; - break; - case PLAYER_HAS_ONE_MON: - gSpecialVar_Result = PLAYER_HAS_ONE_MON; - break; - case PLAYER_HAS_ONE_USABLE_MON: - gSpecialVar_Result = PLAYER_HAS_ONE_USABLE_MON; - break; - } -} - -static bool8 CheckPartyMonHasHeldItem(u16 item) -{ - int i; - - for(i = 0; i < PARTY_SIZE; i++) - { - u16 species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2); - if (species != SPECIES_NONE && species != SPECIES_EGG && GetMonData(&gPlayerParty[i], MON_DATA_HELD_ITEM) == item) - return TRUE; - } - return FALSE; -} - -bool8 DoesPartyHaveEnigmaBerry(void) -{ - bool8 hasItem = CheckPartyMonHasHeldItem(ITEM_ENIGMA_BERRY); - if (hasItem == TRUE) - GetBerryNameByBerryType(ItemIdToBerryType(ITEM_ENIGMA_BERRY), gStringVar1); - - return hasItem; -} - -void CreateScriptedWildMon(u16 species, u8 level, u16 item) -{ - u8 heldItem[2]; - - ZeroEnemyPartyMons(); - CreateMon(&gEnemyParty[0], species, level, 32, 0, 0, OT_ID_PLAYER_ID, 0); - if (item) - { - heldItem[0] = item; - heldItem[1] = item >> 8; - SetMonData(&gEnemyParty[0], MON_DATA_HELD_ITEM, heldItem); - } -} - -void ScriptSetMonMoveSlot(u8 monIndex, u16 move, u8 slot) -{ - if (monIndex > PARTY_SIZE) - monIndex = gPlayerPartyCount - 1; - - SetMonMoveSlot(&gPlayerParty[monIndex], move, slot); -} - -// Note: When control returns to the event script, gSpecialVar_Result will be -// TRUE if the party selection was successful. -void ChooseHalfPartyForBattle(void) -{ - gMain.savedCallback = CB2_ReturnFromChooseHalfParty; - VarSet(VAR_FRONTIER_FACILITY, FACILITY_MULTI_OR_EREADER); - InitChooseHalfPartyForBattle(0); -} - -static void CB2_ReturnFromChooseHalfParty(void) -{ - switch (gSelectedOrderFromParty[0]) - { - case 0: - gSpecialVar_Result = FALSE; - break; - default: - gSpecialVar_Result = TRUE; - break; - } - - SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic); -} - -void ChoosePartyForBattleFrontier(void) -{ - gMain.savedCallback = CB2_ReturnFromChooseBattleFrontierParty; - InitChooseHalfPartyForBattle(gSpecialVar_0x8004 + 1); -} - -static void CB2_ReturnFromChooseBattleFrontierParty(void) -{ - switch (gSelectedOrderFromParty[0]) - { - case 0: - gSpecialVar_Result = FALSE; - break; - default: - gSpecialVar_Result = TRUE; - break; - } - - SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic); -} - -void ReducePlayerPartyToSelectedMons(void) -{ - struct Pokemon party[MAX_FRONTIER_PARTY_SIZE]; - int i; - - CpuFill32(0, party, sizeof party); - - // copy the selected pokemon according to the order. - for (i = 0; i < MAX_FRONTIER_PARTY_SIZE; i++) - if (gSelectedOrderFromParty[i]) // as long as the order keeps going (did the player select 1 mon? 2? 3?), do not stop - party[i] = gPlayerParty[gSelectedOrderFromParty[i] - 1]; // index is 0 based, not literal - - CpuFill32(0, gPlayerParty, sizeof gPlayerParty); - - // overwrite the first 4 with the order copied to. - for (i = 0; i < MAX_FRONTIER_PARTY_SIZE; i++) - gPlayerParty[i] = party[i]; - - CalculatePlayerPartyCount(); -} diff --git a/src/trainer_card.c b/src/trainer_card.c index 3a9dbba8ab..44b018a7b9 100755 --- a/src/trainer_card.c +++ b/src/trainer_card.c @@ -25,7 +25,7 @@ #include "graphics.h" #include "pokemon_icon.h" #include "trainer_pokemon_sprites.h" -#include "script_pokemon_util_80F87D8.h" +#include "contest_util.h" #include "constants/songs.h" #include "constants/flags.h" #include "constants/game_stat.h" diff --git a/src/union_room.c b/src/union_room.c index f2c35ac8e9..639420d719 100644 --- a/src/union_room.c +++ b/src/union_room.c @@ -32,7 +32,7 @@ #include "random.h" #include "save_location.h" #include "script.h" -#include "script_pokemon_util_80F87D8.h" +#include "script_pokemon_util.h" #include "sound.h" #include "start_menu.h" #include "string_util.h" From 35dca16a3d365563e3d0ef74fc30b586817de35c Mon Sep 17 00:00:00 2001 From: PokeCodec Date: Thu, 13 Aug 2020 21:18:46 -0400 Subject: [PATCH 063/101] matching --- src/battle_anim_water.c | 448 +++------------------------------------- 1 file changed, 30 insertions(+), 418 deletions(-) diff --git a/src/battle_anim_water.c b/src/battle_anim_water.c index fa2f38c4bf..12f37dbba2 100644 --- a/src/battle_anim_water.c +++ b/src/battle_anim_water.c @@ -798,17 +798,21 @@ static void AnimSmallBubblePair_Step(struct Sprite *sprite) DestroyAnimSprite(sprite); } -#ifdef NONMATCHING void AnimTask_CreateSurfWave(u8 taskId) { struct BattleAnimBgData animBg; u8 taskId2; + u16 *x, *y; //These pointers are needed to match - SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG1 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_ALL); - SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0, 16)); + x = &gBattle_BG1_X; + y = &gBattle_BG1_Y; + + SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_ALL | BLDCNT_TGT1_BG1); + SetGpuReg(REG_OFFSET_BLDALPHA, (16 << 8)); SetAnimBgAttribute(1, BG_ANIM_PRIORITY, 1); SetAnimBgAttribute(1, BG_ANIM_SCREEN_SIZE, 1); sub_80A6B30(&animBg); + if (!IsContest()) { SetAnimBgAttribute(1, BG_ANIM_CHAR_BASE_BLOCK, 1); @@ -833,30 +837,30 @@ void AnimTask_CreateSurfWave(u8 taskId) gTasks[taskId2].data[2] = 0x1000; if (IsContest()) { - gBattle_BG1_X = -80; - gBattle_BG1_Y = -48; + *x = -80; + *y = -48; gTasks[taskId].data[0] = 2; gTasks[taskId].data[1] = 1; gTasks[taskId2].data[3] = 0; } else if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_OPPONENT) { - gBattle_BG1_X = -224; - gBattle_BG1_Y = 256; + *x = -224; + *y = 256; gTasks[taskId].data[0] = 2; gTasks[taskId].data[1] = -1; gTasks[taskId2].data[3] = 1; } else { - gBattle_BG1_X = 0; - gBattle_BG1_Y = -48; + *x = 0; + *y = -48; gTasks[taskId].data[0] = -2; gTasks[taskId].data[1] = 1; gTasks[taskId2].data[3] = 0; } - SetGpuReg(REG_OFFSET_BG1HOFS, gBattle_BG1_X); - SetGpuReg(REG_OFFSET_BG1VOFS, gBattle_BG1_Y); + SetGpuReg(REG_OFFSET_BG1HOFS, *x); + SetGpuReg(REG_OFFSET_BG1VOFS, *y); if (gTasks[taskId2].data[3] == 0) { gTasks[taskId2].data[4] = 48; @@ -870,245 +874,16 @@ void AnimTask_CreateSurfWave(u8 taskId) gTasks[taskId].data[6] = 1; gTasks[taskId].func = AnimTask_CreateSurfWave_Step1; } -#else -NAKED -void AnimTask_CreateSurfWave(u8 taskId) -{ - asm_unified("push {r4-r7,lr}\n\ - mov r7, r10\n\ - mov r6, r9\n\ - mov r5, r8\n\ - push {r5-r7}\n\ - sub sp, 0x10\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - mov r10, r0\n\ - ldr r1, =0x00003f42\n\ - movs r0, 0x50\n\ - bl SetGpuReg\n\ - movs r1, 0x80\n\ - lsls r1, 5\n\ - movs r0, 0x52\n\ - bl SetGpuReg\n\ - movs r0, 0x1\n\ - movs r1, 0x4\n\ - movs r2, 0x1\n\ - bl SetAnimBgAttribute\n\ - movs r0, 0x1\n\ - movs r1, 0\n\ - movs r2, 0x1\n\ - bl SetAnimBgAttribute\n\ - mov r0, sp\n\ - bl sub_80A6B30\n\ - bl IsContest\n\ - lsls r0, 24\n\ - cmp r0, 0\n\ - bne _081079E0\n\ - movs r0, 0x1\n\ - movs r1, 0x3\n\ - movs r2, 0x1\n\ - bl SetAnimBgAttribute\n\ - ldr r0, =gBattleAnimAttacker\n\ - ldrb r0, [r0]\n\ - bl GetBattlerSide\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - cmp r0, 0x1\n\ - bne _081079D0\n\ - mov r0, sp\n\ - ldrb r0, [r0, 0x9]\n\ - ldr r1, =gBattleAnimBgTilemap_SurfOpponent\n\ - bl AnimLoadCompressedBgTilemap\n\ - b _081079EA\n\ - .pool\n\ -_081079D0:\n\ - mov r0, sp\n\ - ldrb r0, [r0, 0x9]\n\ - ldr r1, =gBattleAnimBgTilemap_SurfPlayer\n\ - bl AnimLoadCompressedBgTilemap\n\ - b _081079EA\n\ - .pool\n\ -_081079E0:\n\ - ldr r1, =gBattleAnimBgTilemap_SurfContest\n\ - mov r0, sp\n\ - movs r2, 0x1\n\ - bl AnimLoadCompressedBgTilemapHandleContest\n\ -_081079EA:\n\ - mov r0, sp\n\ - ldrb r0, [r0, 0x9]\n\ - ldr r1, =gBattleAnimBgImage_Surf\n\ - mov r2, sp\n\ - ldrh r2, [r2, 0xA]\n\ - bl AnimLoadCompressedBgGfx\n\ - ldr r0, =gBattleAnimArgs\n\ - movs r1, 0\n\ - ldrsh r0, [r0, r1]\n\ - cmp r0, 0\n\ - bne _08107A24\n\ - ldr r0, =gBattleAnimBgPalette_Surf\n\ - mov r1, sp\n\ - ldrb r1, [r1, 0x8]\n\ - lsls r1, 4\n\ - movs r2, 0x20\n\ - bl LoadCompressedPalette\n\ - b _08107A32\n\ - .pool\n\ -_08107A24:\n\ - ldr r0, =gBattleAnimBackgroundImageMuddyWater_Pal\n\ - mov r1, sp\n\ - ldrb r1, [r1, 0x8]\n\ - lsls r1, 4\n\ - movs r2, 0x20\n\ - bl LoadCompressedPalette\n\ -_08107A32:\n\ - ldr r0, =AnimTask_SurfWaveScanlineEffect\n\ - ldr r4, =gTasks\n\ - mov r2, r10\n\ - lsls r5, r2, 2\n\ - adds r1, r5, r2\n\ - lsls r1, 3\n\ - adds r6, r1, r4\n\ - ldrb r1, [r6, 0x7]\n\ - adds r1, 0x1\n\ - lsls r1, 24\n\ - lsrs r1, 24\n\ - bl CreateTask\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - mov r8, r0\n\ - movs r0, 0\n\ - mov r9, r0\n\ - mov r1, r8\n\ - strh r1, [r6, 0x26]\n\ - mov r2, r8\n\ - lsls r0, r2, 2\n\ - add r0, r8\n\ - lsls r0, 3\n\ - adds r7, r0, r4\n\ - mov r0, r9\n\ - strh r0, [r7, 0x8]\n\ - movs r0, 0x80\n\ - lsls r0, 5\n\ - strh r0, [r7, 0xA]\n\ - strh r0, [r7, 0xC]\n\ - bl IsContest\n\ - lsls r0, 24\n\ - lsrs r4, r0, 24\n\ - cmp r4, 0\n\ - beq _08107AB4\n\ - ldr r1, =0x0000ffb0\n\ - adds r0, r1, 0\n\ - ldr r2, =gBattle_BG1_X\n\ - strh r0, [r2]\n\ - adds r1, 0x20\n\ - adds r0, r1, 0\n\ - ldr r2, =gBattle_BG1_Y\n\ - strh r0, [r2]\n\ - movs r0, 0x2\n\ - strh r0, [r6, 0x8]\n\ - movs r0, 0x1\n\ - strh r0, [r6, 0xA]\n\ - mov r0, r9\n\ - strh r0, [r7, 0xE]\n\ - b _08107B0E\n\ - .pool\n\ -_08107AB4:\n\ - ldr r0, =gBattleAnimAttacker\n\ - ldrb r0, [r0]\n\ - bl GetBattlerSide\n\ - lsls r0, 24\n\ - lsrs r1, r0, 24\n\ - cmp r1, 0x1\n\ - bne _08107AF8\n\ - ldr r2, =0x0000ff20\n\ - adds r0, r2, 0\n\ - ldr r2, =gBattle_BG1_X\n\ - strh r0, [r2]\n\ - movs r2, 0x80\n\ - lsls r2, 1\n\ - adds r0, r2, 0\n\ - ldr r2, =gBattle_BG1_Y\n\ - strh r0, [r2]\n\ - movs r0, 0x2\n\ - strh r0, [r6, 0x8]\n\ - ldr r0, =0x0000ffff\n\ - strh r0, [r6, 0xA]\n\ - strh r1, [r7, 0xE]\n\ - b _08107B0E\n\ - .pool\n\ -_08107AF8:\n\ - ldr r0, =gBattle_BG1_X\n\ - strh r4, [r0]\n\ - ldr r1, =0x0000ffd0\n\ - adds r0, r1, 0\n\ - ldr r2, =gBattle_BG1_Y\n\ - strh r0, [r2]\n\ - ldr r0, =0x0000fffe\n\ - strh r0, [r6, 0x8]\n\ - movs r0, 0x1\n\ - strh r0, [r6, 0xA]\n\ - strh r4, [r7, 0xE]\n\ -_08107B0E:\n\ - ldr r0, =gBattle_BG1_X\n\ - ldrh r1, [r0]\n\ - movs r0, 0x14\n\ - bl SetGpuReg\n\ - ldr r2, =gBattle_BG1_Y\n\ - ldrh r1, [r2]\n\ - movs r0, 0x16\n\ - bl SetGpuReg\n\ - ldr r1, =gTasks\n\ - mov r2, r8\n\ - lsls r0, r2, 2\n\ - add r0, r8\n\ - lsls r0, 3\n\ - adds r1, r0, r1\n\ - movs r2, 0xE\n\ - ldrsh r0, [r1, r2]\n\ - cmp r0, 0\n\ - bne _08107B54\n\ - movs r0, 0x30\n\ - strh r0, [r1, 0x10]\n\ - movs r0, 0x70\n\ - b _08107B58\n\ - .pool\n\ -_08107B54:\n\ - movs r0, 0\n\ - strh r0, [r1, 0x10]\n\ -_08107B58:\n\ - strh r0, [r1, 0x12]\n\ - ldr r1, =gTasks\n\ - mov r2, r10\n\ - adds r0, r5, r2\n\ - lsls r0, 3\n\ - adds r0, r1\n\ - movs r1, 0x1\n\ - strh r1, [r0, 0x14]\n\ - ldr r1, =AnimTask_CreateSurfWave_Step1\n\ - str r1, [r0]\n\ - add sp, 0x10\n\ - pop {r3-r5}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - mov r10, r5\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .pool\n"); -} -#endif -#ifdef NONMATCHING static void AnimTask_CreateSurfWave_Step1(u8 taskId) { - struct BattleAnimBgData animBg; - u8 i; u16 rgbBuffer; - u16 *BGptrX = &gBattle_BG1_X; - u16 *BGptrY = &gBattle_BG1_Y; - s16 unkUse; - u32 palOffset; - u16 palNum; + u8 i; + u16 *BGptrX, *BGptrY; + struct BattleAnimBgData animBg; + + BGptrX = &gBattle_BG1_X; + BGptrY = &gBattle_BG1_Y; *BGptrX += gTasks[taskId].data[0]; *BGptrY += gTasks[taskId].data[1]; @@ -1116,29 +891,26 @@ static void AnimTask_CreateSurfWave_Step1(u8 taskId) gTasks[taskId].data[2] += gTasks[taskId].data[1]; if (++gTasks[taskId].data[5] == 4) { - rgbBuffer = gPlttBufferFaded[animBg.paletteId * 16 + 7]; - for (i = 6; i != 0; i--) + rgbBuffer = gPlttBufferFaded[16 * animBg.paletteId + 7]; + for (i = 6; i != 0; i--) // i > 0 generates the exact same code in this context { - palNum = animBg.paletteId * 16; - palOffset = 1 + i; - gPlttBufferFaded[palNum + palOffset] = gPlttBufferFaded[palNum + palOffset - 1]; + gPlttBufferFaded[16 * animBg.paletteId + 1 + i] = gPlttBufferFaded[16 * animBg.paletteId + 1 + i - 1]; // 1 + i - 1 is needed to match for some bizarre reason } - gPlttBufferFaded[animBg.paletteId * 16 + 1] = rgbBuffer; + gPlttBufferFaded[16 * animBg.paletteId + 1] = rgbBuffer; gTasks[taskId].data[5] = 0; } if (++gTasks[taskId].data[6] > 1) { gTasks[taskId].data[6] = 0; - unkUse = ++gTasks[taskId].data[3]; - if (unkUse <= 13) + if (++gTasks[taskId].data[3] < 14) { - gTasks[gTasks[taskId].data[15]].data[1] = unkUse | ((16 - unkUse) * 256); + gTasks[gTasks[taskId].data[15]].data[1] = (s16)((gTasks[taskId].data[3]) | ((16 - gTasks[taskId].data[3]) << 8)); gTasks[taskId].data[4]++; } if (gTasks[taskId].data[3] > 54) { - unkUse = --gTasks[taskId].data[4]; - gTasks[gTasks[taskId].data[15]].data[1] = unkUse | ((16 - unkUse) * 256); + gTasks[taskId].data[4]--; + gTasks[gTasks[taskId].data[15]].data[1] = (s16)((gTasks[taskId].data[4]) | ((16 - gTasks[taskId].data[4]) << 8)); } } if (!(gTasks[gTasks[taskId].data[15]].data[1] & 0x1F)) @@ -1147,167 +919,7 @@ static void AnimTask_CreateSurfWave_Step1(u8 taskId) gTasks[taskId].func = AnimTask_CreateSurfWave_Step2; } } -#else -NAKED -static void AnimTask_CreateSurfWave_Step1(u8 taskId) -{ - asm_unified("push {r4-r7,lr}\n\ - sub sp, 0x10\n\ - lsls r0, 24\n\ - lsrs r5, r0, 24\n\ - ldr r1, =gBattle_BG1_X\n\ - ldr r2, =gBattle_BG1_Y\n\ - ldr r0, =gTasks\n\ - lsls r4, r5, 2\n\ - adds r4, r5\n\ - lsls r4, 3\n\ - adds r4, r0\n\ - ldrh r0, [r4, 0x8]\n\ - ldrh r3, [r1]\n\ - adds r0, r3\n\ - strh r0, [r1]\n\ - ldrh r0, [r4, 0xA]\n\ - ldrh r1, [r2]\n\ - adds r0, r1\n\ - strh r0, [r2]\n\ - mov r0, sp\n\ - bl sub_80A6B30\n\ - ldrh r0, [r4, 0xA]\n\ - ldrh r3, [r4, 0xC]\n\ - adds r0, r3\n\ - strh r0, [r4, 0xC]\n\ - ldrh r0, [r4, 0x12]\n\ - adds r0, 0x1\n\ - strh r0, [r4, 0x12]\n\ - lsls r0, 16\n\ - asrs r0, 16\n\ - cmp r0, 0x4\n\ - bne _08107C18\n\ - ldr r1, =gPlttBufferFaded\n\ - mov r0, sp\n\ - ldrb r0, [r0, 0x8]\n\ - lsls r0, 4\n\ - adds r0, 0x7\n\ - lsls r0, 1\n\ - adds r0, r1\n\ - ldrh r6, [r0]\n\ - movs r2, 0x6\n\ - adds r7, r1, 0\n\ - adds r3, r7, 0\n\ - mov r4, sp\n\ -_08107BDE:\n\ - ldrb r0, [r4, 0x8]\n\ - lsls r0, 4\n\ - adds r1, r2, 0x1\n\ - adds r0, r1\n\ - lsls r1, r0, 1\n\ - adds r1, r3\n\ - subs r0, 0x1\n\ - lsls r0, 1\n\ - adds r0, r3\n\ - ldrh r0, [r0]\n\ - strh r0, [r1]\n\ - subs r0, r2, 0x1\n\ - lsls r0, 24\n\ - lsrs r2, r0, 24\n\ - cmp r2, 0\n\ - bne _08107BDE\n\ - mov r0, sp\n\ - ldrb r0, [r0, 0x8]\n\ - lsls r0, 4\n\ - adds r0, 0x1\n\ - lsls r0, 1\n\ - adds r0, r7\n\ - strh r6, [r0]\n\ - ldr r1, =gTasks\n\ - lsls r0, r5, 2\n\ - adds r0, r5\n\ - lsls r0, 3\n\ - adds r0, r1\n\ - strh r2, [r0, 0x12]\n\ -_08107C18:\n\ - ldr r1, =gTasks\n\ - lsls r2, r5, 2\n\ - adds r0, r2, r5\n\ - lsls r0, 3\n\ - adds r3, r0, r1\n\ - ldrh r0, [r3, 0x14]\n\ - adds r0, 0x1\n\ - strh r0, [r3, 0x14]\n\ - lsls r0, 16\n\ - asrs r0, 16\n\ - adds r4, r1, 0\n\ - adds r6, r2, 0\n\ - cmp r0, 0x1\n\ - ble _08107C86\n\ - movs r0, 0\n\ - strh r0, [r3, 0x14]\n\ - ldrh r0, [r3, 0xE]\n\ - adds r2, r0, 0x1\n\ - strh r2, [r3, 0xE]\n\ - lsls r0, r2, 16\n\ - asrs r0, 16\n\ - cmp r0, 0xD\n\ - bgt _08107C62\n\ - movs r1, 0x26\n\ - ldrsh r0, [r3, r1]\n\ - lsls r1, r0, 2\n\ - adds r1, r0\n\ - lsls r1, 3\n\ - adds r1, r4\n\ - movs r0, 0x10\n\ - subs r0, r2\n\ - lsls r0, 8\n\ - orrs r2, r0\n\ - strh r2, [r1, 0xA]\n\ - ldrh r0, [r3, 0x10]\n\ - adds r0, 0x1\n\ - strh r0, [r3, 0x10]\n\ -_08107C62:\n\ - movs r1, 0xE\n\ - ldrsh r0, [r3, r1]\n\ - cmp r0, 0x36\n\ - ble _08107C86\n\ - ldrh r2, [r3, 0x10]\n\ - subs r2, 0x1\n\ - strh r2, [r3, 0x10]\n\ - movs r1, 0x26\n\ - ldrsh r0, [r3, r1]\n\ - lsls r1, r0, 2\n\ - adds r1, r0\n\ - lsls r1, 3\n\ - adds r1, r4\n\ - movs r0, 0x10\n\ - subs r0, r2\n\ - lsls r0, 8\n\ - orrs r2, r0\n\ - strh r2, [r1, 0xA]\n\ -_08107C86:\n\ - adds r0, r6, r5\n\ - lsls r0, 3\n\ - adds r2, r0, r4\n\ - movs r3, 0x26\n\ - ldrsh r1, [r2, r3]\n\ - lsls r0, r1, 2\n\ - adds r0, r1\n\ - lsls r0, 3\n\ - adds r0, r4\n\ - ldrh r0, [r0, 0xA]\n\ - movs r3, 0x1F\n\ - ands r3, r0\n\ - cmp r3, 0\n\ - bne _08107CA8\n\ - strh r3, [r2, 0x8]\n\ - ldr r0, =AnimTask_CreateSurfWave_Step2\n\ - str r0, [r2]\n\ -_08107CA8:\n\ - add sp, 0x10\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .pool\n"); -} -#endif + static void AnimTask_CreateSurfWave_Step2(u8 taskId) { From d3e00cadccb20566b9a4239b398ec9aad33c8f91 Mon Sep 17 00:00:00 2001 From: PokeCodec Date: Fri, 14 Aug 2020 18:08:16 -0400 Subject: [PATCH 064/101] Enum Time --- gflib/text.c | 10 +++++----- gflib/text.h | 7 +++++++ 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/gflib/text.c b/gflib/text.c index 5722d5a438..07fd23109f 100644 --- a/gflib/text.c +++ b/gflib/text.c @@ -451,11 +451,11 @@ u8 GetLastTextColor(u8 colorType) { switch (colorType) { - case 0: + case COLOR_FOREGROUND: return gLastTextFgColor; - case 2: + case COLOR_BACKGROUND: return gLastTextBgColor; - case 1: + case COLOR_SHADOW: return gLastTextShadowColor; default: return 0; @@ -482,8 +482,8 @@ u8 GetLastTextColor(u8 colorType) const u32 toOrr = r5 & 0xF; \ if (toOrr) \ { \ - dst = windowTiles + ((j >> 3) * 32) + ((j & 7) >> 1) + ((i >> 3) * widthOffset) + ((i & 7) * 4); \ - bits = ((j & 1) << 2); \ + dst = windowTiles + ((j / 8) * 32) + ((j & 7) >> 1) + ((i / 8) * widthOffset) + ((i & 7) * 4); \ + bits = ((j & 1) * 4); \ *dst = (toOrr << bits) | ((0xF0 >> bits) & *dst); \ } \ r5 >>= 4; \ diff --git a/gflib/text.h b/gflib/text.h index 0d0f3341de..0829d748f3 100644 --- a/gflib/text.h +++ b/gflib/text.h @@ -269,6 +269,13 @@ #define TEXT_SPEED_FF 0xFF +enum +{ + COLOR_FOREGROUND, + COLOR_SHADOW, + COLOR_BACKGROUND +}; + enum { FONTATTR_MAX_LETTER_WIDTH, From c42c1ab8c1aaab06350ba71ceb5b89db42d3d851 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Thu, 13 Aug 2020 19:10:23 -0400 Subject: [PATCH 065/101] Document contest appeal --- .../unknown_587C30.pal => contest/text.pal} | 0 include/contest.h | 70 +- src/battle_anim.c | 8 +- src/battle_anim_dark.c | 2 +- src/battle_anim_effects_3.c | 18 +- src/battle_anim_mons.c | 30 +- src/battle_anim_sound_tasks.c | 6 +- src/battle_anim_utility_funcs.c | 6 +- src/battle_gfx_sfx_util.c | 8 +- src/contest.c | 2056 +++++++++-------- src/contest_ai.c | 2 +- src/contest_effect.c | 2 +- src/contest_util.c | 12 +- 13 files changed, 1203 insertions(+), 1017 deletions(-) rename graphics/{unknown/unknown_587C30.pal => contest/text.pal} (100%) diff --git a/graphics/unknown/unknown_587C30.pal b/graphics/contest/text.pal similarity index 100% rename from graphics/unknown/unknown_587C30.pal rename to graphics/contest/text.pal diff --git a/include/contest.h b/include/contest.h index 5808cb9250..c5c674fdc0 100644 --- a/include/contest.h +++ b/include/contest.h @@ -123,15 +123,15 @@ struct Shared1A004 u8 savedJunk[0x800]; }; -struct ContestStruct_field_18 +struct ContestMoveAnimData { u16 species; - u16 unk2; - u8 unk4_0:1; - u8 unk5; - u32 unk8; - u32 unkC; - u32 unk10; + u16 targetSpecies; + bool8 hasTargetAnim:1; + u8 contestant; + u32 personality; + u32 otId; + u32 targetPersonality; }; struct Contest @@ -143,29 +143,29 @@ struct Contest bool16 unk1920A_1:1; bool16 unk1920A_2:1; bool16 unk1920A_3:1; - bool16 unk1920A_4:1; + bool16 waitForJudgeSpeechBubble:1; bool16 isShowingApplauseMeter:1; bool16 applauseMeterIsMoving:1; - bool16 unk1920A_7:1; - bool16 unk1920B_0:1; + bool16 animatingAudience:1; + bool16 waitForAudienceBlend:1; bool16 sliderHeartsAnimating:1; // When the slider heart is appearing/disappearing - bool16 unk1920B_2:1; + bool16 waitForLink:1; u8 mainTaskId; u8 unk1920D[4]; - u8 unk19211; + u8 judgeAttentionTaskId; u8 unk19212; u8 filler19213; u8 turnNumber; u8 currentContestant; - u8 unk19216; // sprite ID + u8 judgeSpeechBubbleSpriteId; s8 applauseLevel; u8 prevTurnOrder[CONTESTANT_COUNT]; - u32 unk1921C; // saved RNG value? + u32 unusedRng; u16 moveHistory[CONTEST_NUM_APPEALS][CONTESTANT_COUNT]; u8 excitementHistory[CONTEST_NUM_APPEALS][CONTESTANT_COUNT]; u8 applauseMeterSpriteId; u8 contestSetupState; - u8 unk1925E; + u8 moveAnimTurnCount; }; struct ContestantStatus @@ -177,7 +177,7 @@ struct ContestantStatus u16 prevMove; u8 moveCategory; u8 ranking:2; - u8 unkB_2:2; + u8 unused1:2; u8 moveRepeatCount:3; bool8 noMoreTurns:1; // used a one-time move? bool8 nervous:1; @@ -203,18 +203,18 @@ struct ContestantStatus u8 effectStringId; // status action? u8 effectStringId2; bool8 repeatedMove:1; - bool8 unused:1; + bool8 unused2:1; bool8 repeatedPrevMove:1; // never read bool8 unk15_3:1; bool8 hasJudgesAttention:1; bool8 judgesAttentionWasRemoved:1; - bool8 unk15_6:1; - u8 unk16; + bool8 usedComboMove:1; + bool8 completedCombo; u8 unk17; u8 unk18; u8 nextTurnOrder; // turn position u8 attentionLevel; // How much the Pokemon "stood out" - u8 unk1B; + u8 contestantAnimTarget; }; struct UnknownContestStruct7 @@ -246,7 +246,7 @@ struct ContestAIInfo struct UnknownContestStruct5 { - s8 bits_0; // current move excitement? + s8 moveExcitement; u8 excitementFrozen:1; u8 excitementFreezer:3; s8 unk2; @@ -256,17 +256,17 @@ struct UnknownContestStruct4 { u8 sliderHeartSpriteId; u8 nextTurnSpriteId; - u8 sliderUpdating:1; - u8 unk2_1:1; - u8 unk2_2:1; + bool8 sliderUpdating:1; + bool8 boxBlinking:1; + bool8 updatingAppealHearts:1; }; -struct UnknownContestStruct6 +struct ContestFinalStandings { - s32 unk0; - s32 unk4; - s32 unk8; - s32 unkC; + s32 totalPoints; + s32 round1Points; + s32 random; + s32 contestant; }; struct ContestResourcesField1C @@ -292,12 +292,12 @@ struct ContestResources struct ContestAIInfo *aiData; struct UnknownContestStruct5 *field_10; struct UnknownContestStruct4 *field_14; - struct ContestStruct_field_18 *field_18; + struct ContestMoveAnimData *moveAnim; struct ContestResourcesField1C * field_1c; struct ContestResourcesField20 * field_20; u8 * contestBgTilemaps[CONTESTANT_COUNT]; - void * field_34; - void * field_38; + void * boxBlinkTiles1; + void * boxBlinkTiles2; void * field_3c; }; @@ -307,8 +307,8 @@ struct ContestResources #define eContestAI (*gContestResources->aiData) #define eContestResources10 (*gContestResources->field_10) #define eContestResources14 (*gContestResources->field_14) -#define eUnzippedContestAudienceGfx (gHeap + 0x18000) -#define eUnknownHeap19000 (gHeap + 0x19000) +#define eUnzippedContestAudience_Gfx (gHeap + 0x18000) +#define eContestAudienceFrame2_Gfx (gHeap + 0x19000) #define eContestDebugMode (gHeap[0x1a000]) #define eUnknownHeap1A004 (*(struct Shared1A004 *)(gHeap + 0x1a004)) @@ -352,7 +352,7 @@ void SetContestantEffectStringID2(u8 a, u8 b); void SetStartledString(u8 contestant, u8 jam); void MakeContestantNervous(u8 p); s8 Contest_GetMoveExcitement(u16 move); -bool8 sub_80DE1E8(u8 a); +bool8 IsContestantAllowedToCombo(u8 contestant); void Contest_PrintTextToBg0WindowAt(u32 windowId, u8 *currChar, s32 x, s32 y, s32 fontId); void ResetContestLinkResults(void); bool8 sub_80DEDA8(u8 a); diff --git a/src/battle_anim.c b/src/battle_anim.c index 32a917cb4d..874ac935b5 100644 --- a/src/battle_anim.c +++ b/src/battle_anim.c @@ -1849,8 +1849,8 @@ void LaunchBattleAnimation(const u8 *const animsTable[], u16 tableId, bool8 isMo } else { - for (i = 0; i < 4; i++) - gAnimBattlerSpecies[i] = gContestResources->field_18->species; + for (i = 0; i < CONTESTANT_COUNT; i++) + gAnimBattlerSpecies[i] = gContestResources->moveAnim->species; } if (!isMoveAnim) @@ -2311,7 +2311,7 @@ void MoveBattlerSpriteToBG(u8 battlerId, bool8 toBG_2, bool8 setSpriteInvisible) battlerSpriteId = gBattlerSpriteIds[battlerId]; gBattle_BG1_X = -(gSprites[battlerSpriteId].pos1.x + gSprites[battlerSpriteId].pos2.x) + 0x20; - if (IsContest() && IsSpeciesNotUnown(gContestResources->field_18->species)) + if (IsContest() && IsSpeciesNotUnown(gContestResources->moveAnim->species)) gBattle_BG1_X--; gBattle_BG1_Y = -(gSprites[battlerSpriteId].pos1.y + gSprites[battlerSpriteId].pos2.y) + 0x20; @@ -2369,7 +2369,7 @@ static void sub_80A46A0(void) struct BattleAnimBgData animBg; u16 *ptr; - if (IsSpeciesNotUnown(gContestResources->field_18->species)) + if (IsSpeciesNotUnown(gContestResources->moveAnim->species)) { sub_80A6B30(&animBg); ptr = animBg.bgTilemap; diff --git a/src/battle_anim_dark.c b/src/battle_anim_dark.c index dc3e8c83c0..faa5884a59 100644 --- a/src/battle_anim_dark.c +++ b/src/battle_anim_dark.c @@ -849,7 +849,7 @@ void AnimTask_MetallicShine(u8 taskId) if (IsContest()) { - species = gContestResources->field_18->species; + species = gContestResources->moveAnim->species; } else { diff --git a/src/battle_anim_effects_3.c b/src/battle_anim_effects_3.c index fd68bbd37b..afdc900494 100755 --- a/src/battle_anim_effects_3.c +++ b/src/battle_anim_effects_3.c @@ -2297,7 +2297,7 @@ void AnimTask_TransformMon(u8 taskId) LoadBgTiles(1, animBg.bgTiles, 0x800, animBg.tilesOffset); if (IsContest()) { - if (IsSpeciesNotUnown(gContestResources->field_18->species) != IsSpeciesNotUnown(gContestResources->field_18->unk2)) + if (IsSpeciesNotUnown(gContestResources->moveAnim->species) != IsSpeciesNotUnown(gContestResources->moveAnim->targetSpecies)) { bgTilemap = (u16 *)animBg.bgTilemap; for (i = 0; i < 8; i++) @@ -2319,7 +2319,7 @@ void AnimTask_TransformMon(u8 taskId) } } - if (IsSpeciesNotUnown(gContestResources->field_18->unk2)) + if (IsSpeciesNotUnown(gContestResources->moveAnim->targetSpecies)) gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].affineAnims = gUnknown_082FF6C0; else gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].affineAnims = gUnknown_082FF694; @@ -3196,10 +3196,10 @@ void AnimTask_RolePlaySilhouette(u8 taskId) GetAnimBattlerSpriteId(ANIM_ATTACKER); if (IsContest()) { - isBackPic = 1; - personality = gContestResources->field_18->unk10; - otId = gContestResources->field_18->unkC; - species = gContestResources->field_18->unk2; + isBackPic = TRUE; + personality = gContestResources->moveAnim->targetPersonality; + otId = gContestResources->moveAnim->otId; + species = gContestResources->moveAnim->targetSpecies; xOffset = 20; priority = GetBattlerSpriteBGPriority(gBattleAnimAttacker); } @@ -5031,9 +5031,9 @@ void AnimTask_SnatchOpposingMonMove(u8 taskId) case 1: if (IsContest()) { - personality = gContestResources->field_18->unk8; - otId = gContestResources->field_18->unkC; - species = gContestResources->field_18->species; + personality = gContestResources->moveAnim->personality; + otId = gContestResources->moveAnim->otId; + species = gContestResources->moveAnim->species; subpriority = GetBattlerSpriteSubpriority(gBattleAnimAttacker); isBackPic = 0; x = -32; diff --git a/src/battle_anim_mons.c b/src/battle_anim_mons.c index e5a866999c..d9993ab953 100644 --- a/src/battle_anim_mons.c +++ b/src/battle_anim_mons.c @@ -141,10 +141,10 @@ u8 GetBattlerSpriteCoord(u8 battlerId, u8 coordType) default: if (IsContest()) { - if (gContestResources->field_18->unk4_0) - species = gContestResources->field_18->unk2; + if (gContestResources->moveAnim->hasTargetAnim) + species = gContestResources->moveAnim->targetSpecies; else - species = gContestResources->field_18->species; + species = gContestResources->moveAnim->species; } else { @@ -189,10 +189,10 @@ u8 GetBattlerYDelta(u8 battlerId, u16 species) { if (IsContest()) { - if (gContestResources->field_18->unk4_0) - personality = gContestResources->field_18->unk10; + if (gContestResources->moveAnim->hasTargetAnim) + personality = gContestResources->moveAnim->targetPersonality; else - personality = gContestResources->field_18->unk8; + personality = gContestResources->moveAnim->personality; } else { @@ -306,10 +306,10 @@ u8 GetBattlerSpriteCoord2(u8 battlerId, u8 coordType) { if (IsContest()) { - if (gContestResources->field_18->unk4_0) - species = gContestResources->field_18->unk2; + if (gContestResources->moveAnim->hasTargetAnim) + species = gContestResources->moveAnim->targetSpecies; else - species = gContestResources->field_18->species; + species = gContestResources->moveAnim->species; } else { @@ -1851,7 +1851,7 @@ static u16 GetBattlerYDeltaFromSpriteId(u8 spriteId) { if (IsContest()) { - species = gContestResources->field_18->species; + species = gContestResources->moveAnim->species; return gMonBackPicCoords[species].y_offset; } else @@ -2103,15 +2103,15 @@ s16 GetBattlerSpriteCoordAttr(u8 battlerId, u8 attr) if (IsContest()) { - if (gContestResources->field_18->unk4_0) + if (gContestResources->moveAnim->hasTargetAnim) { - species = gContestResources->field_18->unk2; - personality = gContestResources->field_18->unk10; + species = gContestResources->moveAnim->targetSpecies; + personality = gContestResources->moveAnim->targetPersonality; } else { - species = gContestResources->field_18->species; - personality = gContestResources->field_18->unk8; + species = gContestResources->moveAnim->species; + personality = gContestResources->moveAnim->personality; } if (species == SPECIES_UNOWN) { diff --git a/src/battle_anim_sound_tasks.c b/src/battle_anim_sound_tasks.c index 8efc987b8e..71c81235af 100644 --- a/src/battle_anim_sound_tasks.c +++ b/src/battle_anim_sound_tasks.c @@ -134,7 +134,7 @@ void SoundTask_PlayCryHighPitch(u8 taskId) if (IsContest()) { if (gBattleAnimArgs[0] == ANIM_ATTACKER) - species = gContestResources->field_18->species; + species = gContestResources->moveAnim->species; else DestroyAnimVisualTask(taskId); // UB: function should return upon destroying task. } @@ -180,7 +180,7 @@ void SoundTask_PlayDoubleCry(u8 taskId) if (IsContest()) { if (gBattleAnimArgs[0] == ANIM_ATTACKER) - species = gContestResources->field_18->species; + species = gContestResources->moveAnim->species; else DestroyAnimVisualTask(taskId); // UB: function should return upon destroying task. } @@ -284,7 +284,7 @@ void SoundTask_PlayCryWithEcho(u8 taskId) pan = BattleAnimAdjustPanning(SOUND_PAN_ATTACKER); if (IsContest()) - species = gContestResources->field_18->species; + species = gContestResources->moveAnim->species; else species = gAnimBattlerSpecies[gBattleAnimAttacker]; diff --git a/src/battle_anim_utility_funcs.c b/src/battle_anim_utility_funcs.c index dcef7d4830..0e6d0bebd4 100644 --- a/src/battle_anim_utility_funcs.c +++ b/src/battle_anim_utility_funcs.c @@ -318,7 +318,7 @@ void AnimTask_DrawFallingWhiteLinesOnAttacker(u8 taskId) if (IsContest()) { - species = gContestResources->field_18->species; + species = gContestResources->moveAnim->species; } else { @@ -440,7 +440,7 @@ static void sub_8116F04(u8 taskId) if (IsContest()) { - sAnimStatsChangeData->species = gContestResources->field_18->species; + sAnimStatsChangeData->species = gContestResources->moveAnim->species; } else { @@ -810,7 +810,7 @@ void sub_8117854(u8 taskId, int unused, u16 arg2, u8 battler1, u8 arg4, u8 arg5, if (IsContest()) { - species = gContestResources->field_18->species; + species = gContestResources->moveAnim->species; } else { diff --git a/src/battle_gfx_sfx_util.c b/src/battle_gfx_sfx_util.c index 50001cebe6..e0530407c9 100644 --- a/src/battle_gfx_sfx_util.c +++ b/src/battle_gfx_sfx_util.c @@ -874,14 +874,14 @@ void HandleSpeciesGfxDataChange(u8 battlerAtk, u8 battlerDef, bool8 notTransform if (IsContest()) { position = 0; - targetSpecies = gContestResources->field_18->unk2; - personalityValue = gContestResources->field_18->unk8; - otId = gContestResources->field_18->unkC; + targetSpecies = gContestResources->moveAnim->targetSpecies; + personalityValue = gContestResources->moveAnim->personality; + otId = gContestResources->moveAnim->otId; HandleLoadSpecialPokePic_DontHandleDeoxys(&gMonBackPicTable[targetSpecies], gMonSpritesGfxPtr->sprites[0], targetSpecies, - gContestResources->field_18->unk10); + gContestResources->moveAnim->targetPersonality); } else { diff --git a/src/contest.c b/src/contest.c index 8ff696699d..743b5fe863 100644 --- a/src/contest.c +++ b/src/contest.c @@ -51,10 +51,10 @@ static void Task_StartContestWaitFade(u8 taskId); static void Task_TryStartLinkContest(u8 taskId); static void Task_CommunicateMonIdxs(u8 taskId); static void Task_EndCommunicateMonIdxs(u8 taskId); -static void sub_80D7DE8(u8 taskId); +static void Task_ReadyStartLinkContest(u8 taskId); static bool8 SetupContestGraphics(u8 *stateVar); -static void sub_80D80C8(u8 taskId); -static void sub_80D8108(u8 taskId); +static void Task_WaitToRaiseCurtainAtStart(u8 taskId); +static void Task_RaiseCurtainAtStart(u8 taskId); static void VBlankCB_Contest(void); static void CB2_ContestMain(void); static void Task_DisplayAppealNumberText(u8 taskId); @@ -70,24 +70,24 @@ static void Task_HideApplauseMeterForAppealStart(u8 taskId); static void Task_WaitHideApplauseMeterForAppealStart(u8 taskId); static void Task_AppealSetup(u8 taskId); static void Task_DoAppeals(u8 taskId); -static void sub_80DA110(u8); -static void sub_80DA134(struct Sprite *); -static void sub_80DA164(struct Sprite *); -static void sub_80DA198(u8); -static void sub_80DA25C(u8); -static void sub_80DA28C(u8); -static void sub_80DA31C(u8); +static void Task_EndWaitForLink(u8); +static void SpriteCB_MonSlideIn(struct Sprite *); +static void SpriteCB_MonSlideOut(struct Sprite *); +static void Task_FinishRoundOfAppeals(u8); +static void Task_ReadyUpdateHeartSliders(u8); +static void Task_UpdateHeartSliders(u8); +static void Task_WaitForHeartSliders(u8); static void sub_80DA348(u8); static void sub_80DA38C(u8); -static void sub_80DA3CC(u8); -static void sub_80DA464(u8); -static void sub_80DA49C(u8); -static void sub_80DA4CC(u8); -static void sub_80DA51C(u8); -static void sub_80DA5B4(u8); +static void Task_PrintRoundResultText(u8); +static void Task_ReUpdateHeartSliders(u8); +static void Task_WaitForHeartSlidersAgain(u8); +static void Task_DropCurtainAtRoundEnd(u8); +static void Task_TryStartNextRoundOfAppeals(u8); +static void Task_StartNewRoundOfAppeals(u8); static void Task_EndAppeals(u8); static void Task_WaitForOutOfTimeMsg(u8); -static void Task_CoverAppealPanelForEnd(u8); +static void Task_DropCurtainAtAppealsEnd(u8); static void Task_TryCommunicateFinalStandings(u8); static void Task_CommunicateFinalStandings(u8); static void Task_EndCommunicateFinalStandings(u8); @@ -98,8 +98,8 @@ static void PrintContestantTrainerName(u8); static void PrintContestantTrainerNameWithColor(u8 a0, u8 a1); static void PrintContestantMonName(u8); static void PrintContestantMonNameWithColor(u8, u8); -static u8 sub_80DB0C4(void); -static u8 sub_80DB120(void); +static u8 CreateJudgeSprite(void); +static u8 CreateJudgeSpeechBubbleSprite(void); static u8 CreateContestantSprite(u16, u32, u32, u32); static void PrintContestMoveDescription(u16); static u16 SanitizeSpecies(u16); @@ -112,44 +112,44 @@ static void CreateSliderHeartSprites(void); static void SetBottomSliderHeartsInvisibility(bool8); static void CreateNextTurnSprites(void); static void CreateApplauseMeterSprite(void); -static void sub_80DC5E8(void); +static void CreateJudgeAttentionEyeTask(void); static void sub_80DC7EC(void); static void ContestDebugDoPrint(void); static void DrawContestantWindows(void); static void ApplyNextTurnOrder(void); -static void StartMoveApplauseMeterOnscreen(void); -static void TryMoveApplauseMeterOffscreen(void); -static void sub_80DE224(void); -static void sub_80DE350(void); -static void sub_80DE424(u8); +static void SlideApplauseMeterIn(void); +static void SlideApplauseMeterOut(void); +static void SetBgForCurtainDrop(void); +static void UpdateContestantBoxOrder(void); +static void Task_StartDropCurtainAtRoundEnd(u8); static void AnimateSliderHearts(u8); -static void sub_80DEA20(void); +static void CreateInvisibleBattleTargetSprite(void); static void Contest_StartTextPrinter(const u8 *, u32); static void ContestBG_FillBoxWithIncrementingTile(u8, u16, u8, u8, u8, u8, u8, s16); static bool32 Contest_RunTextPrinters(void); static void Contest_SetBgCopyFlags(u32 flagIndex); static void CalculateFinalScores(void); -static void sub_80DD080(u8); -static void sub_80DE9DC(u8); -static void sub_80DCBE8(u8, u8); -static u8 sub_80DC9EC(u8); +static void CalculateAppealMoveImpact(u8); +static void SetMoveAnimAttackerData(u8); +static void BlinkContestantBox(u8, u8); +static u8 CreateContestantBoxBlinkSprites(u8); static u16 SanitizeMove(u16); -static void sub_80DE864(u8); -static void SelectContestMoveBankTarget(u16); -static void sub_80DE9B0(u8); -static void sub_80DC674(u8); -static void sub_80DE12C(void); -static void sub_80DD45C(u8, u8); -static void sub_80DD720(u8); -static void sub_80DE008(bool8); -static u8 sub_80DC028(s16, s16, u8); -static bool8 sub_80DB5B8(u8, u8); -static bool8 sub_80DB798(u8); -static void sub_80DB884(void); -static void sub_80DC9B4(u8); -static void sub_80DDED0(s8, s8); +static void SetMoveSpecificAnimData(u8); +static void SetMoveTargetPosition(u16); +static void ClearMoveAnimData(u8); +static void StopFlashJudgeAttentionEye(u8); +static void DrawUnnervedSymbols(void); +static void PrintAppealMoveResultText(u8, u8); +static void DoJudgeSpeechBubble(u8); +static void ShowHideNextTurnGfx(bool8); +static u8 UpdateAppealHearts(s16, s16, u8); +static bool8 UpdateConditionStars(u8, u8); +static bool8 DrawStatusSymbol(u8); +static void DrawStatusSymbols(void); +static void StartStopFlashJudgeAttentionEye(u8); +static void BlendAudienceBackground(s8, s8); static void ShowAndUpdateApplauseMeter(s8 unused); -static void sub_80DDE0C(void); +static void AnimateAudience(void); static void UpdateApplauseMeter(void); static void RankContestants(void); static void SetAttentionLevels(void); @@ -159,30 +159,30 @@ static void ContestBG_FillBoxWithTile(u8, u16, u8, u8, u8, u8, u8); static void Contest_PrintTextToBg0WindowStd(u32, const u8 *); static s16 GetContestantRound2Points(u8); static void DetermineFinalStandings(void); -static bool8 sub_80DBF30(s32, s32, struct UnknownContestStruct6 *); -static void sub_80DC0F4(u8); +static bool8 DidContestantPlaceHigher(s32, s32, struct ContestFinalStandings *); +static void Task_UpdateAppealHearts(u8); static void SpriteCB_UpdateHeartSlider(struct Sprite *); -static void sub_80DC728(u8); -static void sub_80DC6A4(u8); +static void Task_FlashJudgeAttentionEye(u8); +static void Task_StopFlashJudgeAttentionEye(u8); static void sub_80DC8D0(u8); static void sub_80DC81C(u8); static void sub_80DC87C(u8); -static void sub_80DCC84(struct Sprite *); -static void sub_80DCCD8(struct Sprite *sprite); +static void SpriteCB_BlinkContestantBox(struct Sprite *); +static void SpriteCB_EndBlinkContestantBox(struct Sprite *sprite); static u8 StartApplauseOverflowAnimation(void); static void Task_ApplauseOverflowAnimation(u8); -static void Task_MoveApplauseMeterOnscreen(u8); -static void Task_MoveApplauseMeterOffscreen(u8); +static void Task_SlideApplauseMeterIn(u8); +static void Task_SlideApplauseMeterOut(u8); static void Task_ShowAndUpdateApplauseMeter(u8); -static void sub_80DDE30(u8); -static void sub_80DDF80(u8); +static void Task_AnimateAudience(u8); +static void Task_BlendAudienceBackground(u8); static const u8 *GetTurnOrderNumberGfx(u8); -static void sub_80DE464(u8); -static void sub_80DE4A8(u8); -static void sub_80DE5F4(u8); -static void sub_80DE65C(u8); +static void Task_UpdateCurtainDropAtRoundEnd(u8); +static void Task_ResetForNextRound(u8); +static void Task_WaitRaiseCurtainAtRoundEnd(u8); +static void Task_StartRaiseCurtainAtRoundEnd(u8); static void Task_WaitForSliderHeartAnim(u8); -static void sub_80DEA5C(void); +static void SetBattleTargetSpritePosition(void); static void sub_80DF250(void); static void sub_80DF4F8(void); static void sub_80DF080(u8); @@ -195,41 +195,64 @@ static void SwapMoveDescAndContestTilemaps(void); // Contestant 0 will use palette color 10, contestant 1 will use color 11, etc. #define CONTESTANT_TEXT_COLOR_START 10 -enum -{ +enum { // The "{Pokemon Name} / {Trainer Name}" windows. - CONTEST_WINDOW_CONTESTANT0_NAME, - CONTEST_WINDOW_CONTESTANT1_NAME, - CONTEST_WINDOW_CONTESTANT2_NAME, - CONTEST_WINDOW_CONTESTANT3_NAME, - CONTEST_WINDOW_GENERAL_TEXT, + WIN_CONTESTANT0_NAME, + WIN_CONTESTANT1_NAME, + WIN_CONTESTANT2_NAME, + WIN_CONTESTANT3_NAME, + WIN_GENERAL_TEXT, // The available moves, from top to bottom - CONTEST_WINDOW_MOVE0, - CONTEST_WINDOW_MOVE1, - CONTEST_WINDOW_MOVE2, - CONTEST_WINDOW_MOVE3, + WIN_MOVE0, + WIN_MOVE1, + WIN_MOVE2, + WIN_MOVE3, // The small "/" character between the move category and the // appeal/jam display - CONTEST_WINDOW_SLASH, - CONTEST_WINDOW_MOVE_DESCRIPTION + WIN_SLASH, + WIN_MOVE_DESCRIPTION }; -#define MOVE_WINDOWS_START CONTEST_WINDOW_MOVE0 +enum { + JUDGE_SYMBOL_SWIRL, + JUDGE_SYMBOL_SWIRL_UNUSED, + JUDGE_SYMBOL_ONE_EXCLAMATION, + JUDGE_SYMBOL_TWO_EXCLAMATIONS, + JUDGE_SYMBOL_NUMBER_ONE_UNUSED, + JUDGE_SYMBOL_NUMBER_ONE, + JUDGE_SYMBOL_NUMBER_FOUR, + JUDGE_SYMBOL_QUESTION_MARK, + JUDGE_SYMBOL_STAR, +}; + +enum { + STAT_SYMBOL_CIRCLE, + STAT_SYMBOL_WAVE, + STAT_SYMBOL_X, + STAT_SYMBOL_SWIRL, + STAT_SYMBOL_SQUARE, +}; + +#define MOVE_WINDOWS_START WIN_MOVE0 #define TAG_CONTEST_SYMBOLS_PAL 0xABE0 +#define TAG_JUDGE_SYMBOLS_GFX 0xABE0 +#define TAG_FACES_GFX 0xABE1 +#define TAG_APPLAUSE_METER 0xABE2 -#define TAG_JUDGE_SYMBOLS_GFX 0xABE0 -#define TAG_FACES_GFX 0xABE1 -#define TAG_APPLAUSE_METER 0xABE2 - -#define TAG_SLIDER_HEART 0x4E20 - +#define TAG_SLIDER_HEART 0x4E20 +#define TAG_JUDGE 0x4E21 #define TAG_NEXT_TURN_PAL 0x4E22 #define TAG_NEXT_TURN_1_GFX 0x4E22 #define TAG_NEXT_TURN_2_GFX 0x4E23 #define TAG_NEXT_TURN_3_GFX 0x4E24 #define TAG_NEXT_TURN_4_GFX 0x4E25 +#define TAG_BLINK_EFFECT_CONTESTANT0 0x80E8 +#define TAG_BLINK_EFFECT_CONTESTANT1 0x80E9 +#define TAG_BLINK_EFFECT_CONTESTANT2 0x80EA +#define TAG_BLINK_EFFECT_CONTESTANT3 0x80EB + enum { SLIDER_HEART_ANIM_NORMAL, SLIDER_HEART_ANIM_DISAPPEAR, @@ -490,20 +513,20 @@ static const struct SpriteTemplate sSpriteTemplate_Faces = .callback = SpriteCallbackDummy }; -static const struct CompressedSpriteSheet sApplauseMeterSpriteSheet = +static const struct CompressedSpriteSheet sSpriteSheet_ApplauseMeter = { .data = gContestApplauseGfx, .size = 0x400, .tag = TAG_APPLAUSE_METER }; -static const struct SpritePalette sApplauseMeterPalette = +static const struct SpritePalette sSpritePalette_ApplauseMeter = { .data = gContestPal, .tag = TAG_APPLAUSE_METER }; -static const struct OamData sApplauseMeterOamData = +static const struct OamData sOam_ApplauseMeter = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -517,18 +540,18 @@ static const struct OamData sApplauseMeterOamData = .paletteNum = 0, }; -static const struct SpriteTemplate sApplauseMeterSpriteTemplate = +static const struct SpriteTemplate sSpriteTemplate_ApplauseMeter = { .tileTag = TAG_APPLAUSE_METER, .paletteTag = TAG_APPLAUSE_METER, - .oam = &sApplauseMeterOamData, + .oam = &sOam_ApplauseMeter, .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -const struct OamData gOamData_8587BE0 = +const struct OamData sOam_Judge = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -542,22 +565,22 @@ const struct OamData gOamData_8587BE0 = .paletteNum = 2, }; -const struct SpriteTemplate gSpriteTemplate_8587BE8 = +const struct SpriteTemplate sSpriteTemplate_Judge = { - .tileTag = 0x4E21, - .paletteTag = 0x4E21, - .oam = &gOamData_8587BE0, + .tileTag = TAG_JUDGE, + .paletteTag = TAG_JUDGE, + .oam = &sOam_Judge, .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -const struct CompressedSpriteSheet gUnknown_08587C00 = +const struct CompressedSpriteSheet sSpriteSheet_Judge = { .data = gContestJudgeGfx, .size = 0x800, - .tag = 0x4E21 + .tag = TAG_JUDGE }; static const struct CompressedSpriteSheet sSpriteSheet_JudgeSymbols = @@ -567,13 +590,13 @@ static const struct CompressedSpriteSheet sSpriteSheet_JudgeSymbols = .tag = TAG_JUDGE_SYMBOLS_GFX }; -const struct CompressedSpritePalette gUnknown_08587C10 = +const struct CompressedSpritePalette sSpritePalette_JudgeSymbols = { .data = gContest3Pal, .tag = TAG_CONTEST_SYMBOLS_PAL }; -const struct SpriteTemplate gSpriteTemplate_8587C18 = +const struct SpriteTemplate sSpriteTemplate_JudgeSpeechBubble = { .tileTag = TAG_JUDGE_SYMBOLS_GFX, .paletteTag = TAG_CONTEST_SYMBOLS_PAL, @@ -584,7 +607,7 @@ const struct SpriteTemplate gSpriteTemplate_8587C18 = .callback = SpriteCallbackDummy }; -const u16 gUnknown_08587C30[] = INCBIN_U16("graphics/unknown/unknown_587C30.gbapal"); +static const u16 sText_Pal[] = INCBIN_U16("graphics/contest/text.gbapal"); #include "data/contest_text_tables.h" @@ -630,7 +653,7 @@ static const struct BgTemplate sContestBgTemplates[] = static const struct WindowTemplate sContestWindowTemplates[] = { - [CONTEST_WINDOW_CONTESTANT0_NAME] = { + [WIN_CONTESTANT0_NAME] = { .bg = 0, .tilemapLeft = 18, .tilemapTop = 0, @@ -639,7 +662,7 @@ static const struct WindowTemplate sContestWindowTemplates[] = .paletteNum = 0xF, .baseBlock = 0x200 }, - [CONTEST_WINDOW_CONTESTANT1_NAME] = { + [WIN_CONTESTANT1_NAME] = { .bg = 0, .tilemapLeft = 18, .tilemapTop = 5, @@ -648,7 +671,7 @@ static const struct WindowTemplate sContestWindowTemplates[] = .paletteNum = 0xF, .baseBlock = 0x218 }, - [CONTEST_WINDOW_CONTESTANT2_NAME] = { + [WIN_CONTESTANT2_NAME] = { .bg = 0, .tilemapLeft = 18, .tilemapTop = 10, @@ -657,7 +680,7 @@ static const struct WindowTemplate sContestWindowTemplates[] = .paletteNum = 0xF, .baseBlock = 0x230 }, - [CONTEST_WINDOW_CONTESTANT3_NAME] = { + [WIN_CONTESTANT3_NAME] = { .bg = 0, .tilemapLeft = 18, .tilemapTop = 15, @@ -666,7 +689,7 @@ static const struct WindowTemplate sContestWindowTemplates[] = .paletteNum = 0xF, .baseBlock = 0x248 }, - [CONTEST_WINDOW_GENERAL_TEXT] = { + [WIN_GENERAL_TEXT] = { .bg = 0, .tilemapLeft = 1, .tilemapTop = 15, @@ -675,7 +698,7 @@ static const struct WindowTemplate sContestWindowTemplates[] = .paletteNum = 0xF, .baseBlock = 0x260 }, - [CONTEST_WINDOW_MOVE0] = { + [WIN_MOVE0] = { .bg = 0, .tilemapLeft = 1, .tilemapTop = 31, @@ -684,7 +707,7 @@ static const struct WindowTemplate sContestWindowTemplates[] = .paletteNum = 0xF, .baseBlock = 0x2A4 }, - [CONTEST_WINDOW_MOVE1] = { + [WIN_MOVE1] = { .bg = 0, .tilemapLeft = 1, .tilemapTop = 33, @@ -693,7 +716,7 @@ static const struct WindowTemplate sContestWindowTemplates[] = .paletteNum = 0xF, .baseBlock = 0x2B6 }, - [CONTEST_WINDOW_MOVE2] = { + [WIN_MOVE2] = { .bg = 0, .tilemapLeft = 1, .tilemapTop = 35, @@ -702,7 +725,7 @@ static const struct WindowTemplate sContestWindowTemplates[] = .paletteNum = 0xF, .baseBlock = 0x2C8 }, - [CONTEST_WINDOW_MOVE3] = { + [WIN_MOVE3] = { .bg = 0, .tilemapLeft = 1, .tilemapTop = 37, @@ -711,7 +734,7 @@ static const struct WindowTemplate sContestWindowTemplates[] = .paletteNum = 0xF, .baseBlock = 0x2DA }, - [CONTEST_WINDOW_SLASH] = { + [WIN_SLASH] = { .bg = 0, .tilemapLeft = 16, .tilemapTop = 31, @@ -720,7 +743,7 @@ static const struct WindowTemplate sContestWindowTemplates[] = .paletteNum = 0xF, .baseBlock = 0x2EC }, - [CONTEST_WINDOW_MOVE_DESCRIPTION] = { + [WIN_MOVE_DESCRIPTION] = { .bg = 0, .tilemapLeft = 11, .tilemapTop = 35, @@ -734,52 +757,52 @@ static const struct WindowTemplate sContestWindowTemplates[] = #include "data/contest_opponents.h" -static const struct CompressedSpriteSheet sUnknown_08589904[] = +static const struct CompressedSpriteSheet sSpriteSheets_ContestantsTurnBlinkEffect[CONTESTANT_COUNT] = { { .data = gBlankGfxCompressed, .size = 0x1000, - .tag = 0x80E8 + .tag = TAG_BLINK_EFFECT_CONTESTANT0 }, { .data = gBlankGfxCompressed, .size = 0x1000, - .tag = 0x80E9 + .tag = TAG_BLINK_EFFECT_CONTESTANT1 }, { .data = gBlankGfxCompressed, .size = 0x1000, - .tag = 0x80EA + .tag = TAG_BLINK_EFFECT_CONTESTANT2 }, { .data = gBlankGfxCompressed, .size = 0x1000, - .tag = 0x80EB + .tag = TAG_BLINK_EFFECT_CONTESTANT3 } }; // Yup this is super dangerous but that's how it is here -static const struct SpritePalette sUnknown_08589924[] = +static const struct SpritePalette sSpritePalettes_ContestantsTurnBlinkEffect[CONTESTANT_COUNT] = { { .data = (u16*)(gHeap + 0x1A0A4), - .tag = 0x80E8 + .tag = TAG_BLINK_EFFECT_CONTESTANT0 }, { .data = (u16*)(gHeap + 0x1A0C4), - .tag = 0x80E9 + .tag = TAG_BLINK_EFFECT_CONTESTANT1 }, { .data = (u16*)(gHeap + 0x1A0E4), - .tag = 0x80EA + .tag = TAG_BLINK_EFFECT_CONTESTANT2 }, { .data = (u16*)(gHeap + 0x1A104), - .tag = 0x80EB + .tag = TAG_BLINK_EFFECT_CONTESTANT3 } }; -const struct OamData gOamData_8589944 = +const struct OamData sOam_ContestantsTurnBlinkEffect = { .y = 0, .affineMode = ST_OAM_AFFINE_DOUBLE, @@ -794,13 +817,13 @@ const struct OamData gOamData_8589944 = .affineParam = 0, }; -const union AffineAnimCmd gSpriteAffineAnim_858994C[] = +const union AffineAnimCmd sAffineAnim_ContestantsTurnBlinkEffect_0[] = { AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0), AFFINEANIMCMD_END }; -const union AffineAnimCmd gSpriteAffineAnim_858995C[] = +const union AffineAnimCmd sAffineAnim_ContestantsTurnBlinkEffect_1[] = { AFFINEANIMCMD_FRAME(3, 3, 0, 15), AFFINEANIMCMD_FRAME(-3, -3, 0, 15), @@ -809,59 +832,89 @@ const union AffineAnimCmd gSpriteAffineAnim_858995C[] = AFFINEANIMCMD_END }; -const union AffineAnimCmd *const gSpriteAffineAnimTable_8589984[] = +const union AffineAnimCmd *const sAffineAnims_ContestantsTurnBlinkEffect[] = { - gSpriteAffineAnim_858994C, - gSpriteAffineAnim_858995C + sAffineAnim_ContestantsTurnBlinkEffect_0, + sAffineAnim_ContestantsTurnBlinkEffect_1 }; -const struct SpriteTemplate gSpriteTemplate_858998C[] = +const struct SpriteTemplate sSpriteTemplates_ContestantsTurnBlinkEffect[CONTESTANT_COUNT] = { { - .tileTag = 0x80E8, - .paletteTag = 0x80E8, - .oam = &gOamData_8589944, + .tileTag = TAG_BLINK_EFFECT_CONTESTANT0, + .paletteTag = TAG_BLINK_EFFECT_CONTESTANT0, + .oam = &sOam_ContestantsTurnBlinkEffect, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gSpriteAffineAnimTable_8589984, + .affineAnims = sAffineAnims_ContestantsTurnBlinkEffect, .callback = SpriteCallbackDummy }, { - .tileTag = 0x80E9, - .paletteTag = 0x80E9, - .oam = &gOamData_8589944, + .tileTag = TAG_BLINK_EFFECT_CONTESTANT1, + .paletteTag = TAG_BLINK_EFFECT_CONTESTANT1, + .oam = &sOam_ContestantsTurnBlinkEffect, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gSpriteAffineAnimTable_8589984, + .affineAnims = sAffineAnims_ContestantsTurnBlinkEffect, .callback = SpriteCallbackDummy }, { - .tileTag = 0x80EA, - .paletteTag = 0x80EA, - .oam = &gOamData_8589944, + .tileTag = TAG_BLINK_EFFECT_CONTESTANT2, + .paletteTag = TAG_BLINK_EFFECT_CONTESTANT2, + .oam = &sOam_ContestantsTurnBlinkEffect, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gSpriteAffineAnimTable_8589984, + .affineAnims = sAffineAnims_ContestantsTurnBlinkEffect, .callback = SpriteCallbackDummy }, { - .tileTag = 0x80EB, - .paletteTag = 0x80EB, - .oam = &gOamData_8589944, + .tileTag = TAG_BLINK_EFFECT_CONTESTANT3, + .paletteTag = TAG_BLINK_EFFECT_CONTESTANT3, + .oam = &sOam_ContestantsTurnBlinkEffect, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gSpriteAffineAnimTable_8589984, + .affineAnims = sAffineAnims_ContestantsTurnBlinkEffect, .callback = SpriteCallbackDummy } }; -const s8 gContestExcitementTable[][5] = +static const s8 gContestExcitementTable[CONTEST_CATEGORIES_COUNT][CONTEST_CATEGORIES_COUNT] = { - { 1, 0, -1, -1, 0}, - { 0, 1, 0, -1, -1}, - {-1, 0, 1, 0, -1}, - {-1, -1, 0, 1, 0}, - { 0, -1, -1, 0, 1} + [CONTEST_CATEGORY_COOL] = { + [CONTEST_CATEGORY_COOL] = +1, + [CONTEST_CATEGORY_BEAUTY] = 0, + [CONTEST_CATEGORY_CUTE] = -1, + [CONTEST_CATEGORY_SMART] = -1, + [CONTEST_CATEGORY_TOUGH] = 0 + }, + [CONTEST_CATEGORY_BEAUTY] = { + [CONTEST_CATEGORY_COOL] = 0, + [CONTEST_CATEGORY_BEAUTY] = +1, + [CONTEST_CATEGORY_CUTE] = 0, + [CONTEST_CATEGORY_SMART] = -1, + [CONTEST_CATEGORY_TOUGH] = -1 + }, + [CONTEST_CATEGORY_CUTE] = { + [CONTEST_CATEGORY_COOL] = -1, + [CONTEST_CATEGORY_BEAUTY] = 0, + [CONTEST_CATEGORY_CUTE] = +1, + [CONTEST_CATEGORY_SMART] = 0, + [CONTEST_CATEGORY_TOUGH] = -1 + }, + [CONTEST_CATEGORY_SMART] = { + [CONTEST_CATEGORY_COOL] = -1, + [CONTEST_CATEGORY_BEAUTY] = -1, + [CONTEST_CATEGORY_CUTE] = 0, + [CONTEST_CATEGORY_SMART] = +1, + [CONTEST_CATEGORY_TOUGH] = 0 + }, + [CONTEST_CATEGORY_TOUGH] = { + [CONTEST_CATEGORY_COOL] = 0, + [CONTEST_CATEGORY_BEAUTY] = -1, + [CONTEST_CATEGORY_CUTE] = -1, + [CONTEST_CATEGORY_SMART] = 0, + [CONTEST_CATEGORY_TOUGH] = +1 + } }; static void TaskDummy1(u8 taskId) @@ -948,7 +1001,7 @@ static void LoadContestPalettes(void) { s32 i; - LoadPalette(gUnknown_08587C30, 0xf0, 0x20); + LoadPalette(sText_Pal, 0xf0, 0x20); FillPalette(RGB_BLACK, 0, 2); for (i = 10; i < 14; i++) LoadPalette(gPlttBufferUnfaded + 241, 240 + i, 2); @@ -1002,15 +1055,15 @@ static void AllocContestResources(void) gContestResources->aiData = AllocZeroed(sizeof(struct ContestAIInfo)); gContestResources->field_10 = AllocZeroed(sizeof(struct UnknownContestStruct5) * CONTESTANT_COUNT); gContestResources->field_14 = AllocZeroed(sizeof(struct UnknownContestStruct4) * CONTESTANT_COUNT); - gContestResources->field_18 = AllocZeroed(sizeof(struct ContestStruct_field_18)); + gContestResources->moveAnim = AllocZeroed(sizeof(struct ContestMoveAnimData)); gContestResources->field_1c = AllocZeroed(sizeof(struct ContestResourcesField1C) * CONTESTANT_COUNT); gContestResources->field_20 = AllocZeroed(sizeof(struct ContestResourcesField20)); gContestResources->contestBgTilemaps[0] = AllocZeroed(0x1000); gContestResources->contestBgTilemaps[1] = AllocZeroed(0x1000); gContestResources->contestBgTilemaps[2] = AllocZeroed(0x1000); gContestResources->contestBgTilemaps[3] = AllocZeroed(0x1000); - gContestResources->field_34 = AllocZeroed(0x800); - gContestResources->field_38 = AllocZeroed(0x800); + gContestResources->boxBlinkTiles1 = AllocZeroed(0x800); + gContestResources->boxBlinkTiles2 = AllocZeroed(0x800); gContestResources->field_3c = AllocZeroed(0x2000); gUnknown_0202305C = gContestResources->field_3c; gUnknown_02023060 = gContestResources->contestBgTilemaps[1]; @@ -1024,15 +1077,15 @@ static void FreeContestResources(void) FREE_AND_SET_NULL(gContestResources->aiData); FREE_AND_SET_NULL(gContestResources->field_10); FREE_AND_SET_NULL(gContestResources->field_14); - FREE_AND_SET_NULL(gContestResources->field_18); + FREE_AND_SET_NULL(gContestResources->moveAnim); FREE_AND_SET_NULL(gContestResources->field_1c); FREE_AND_SET_NULL(gContestResources->field_20); FREE_AND_SET_NULL(gContestResources->contestBgTilemaps[0]); FREE_AND_SET_NULL(gContestResources->contestBgTilemaps[1]); FREE_AND_SET_NULL(gContestResources->contestBgTilemaps[2]); FREE_AND_SET_NULL(gContestResources->contestBgTilemaps[3]); - FREE_AND_SET_NULL(gContestResources->field_34); - FREE_AND_SET_NULL(gContestResources->field_38); + FREE_AND_SET_NULL(gContestResources->boxBlinkTiles1); + FREE_AND_SET_NULL(gContestResources->boxBlinkTiles2); FREE_AND_SET_NULL(gContestResources->field_3c); FREE_AND_SET_NULL(gContestResources); gUnknown_0202305C = NULL; @@ -1076,7 +1129,7 @@ void CB2_StartContest(void) } break; case 3: - sub_80DE224(); + SetBgForCurtainDrop(); gBattle_BG1_X = 0; gBattle_BG1_Y = 0; BeginFastPaletteFade(2); @@ -1102,6 +1155,8 @@ static void Task_StartContestWaitFade(u8 taskId) } } +// If this is a link contest try to start communication +// Otherwise skip ahead static void Task_TryStartLinkContest(u8 taskId) { if (gLinkContestFlags & LINK_CONTEST_FLAG_IS_LINK) @@ -1141,7 +1196,7 @@ static void Task_TryStartLinkContest(u8 taskId) } else { - gTasks[taskId].func = sub_80D80C8; + gTasks[taskId].func = Task_WaitToRaiseCurtainAtStart; } } @@ -1153,10 +1208,10 @@ static void Task_CommunicateMonIdxs(u8 taskId) static void Task_EndCommunicateMonIdxs(u8 taskId) { gTasks[taskId].data[0] = 1; - gTasks[taskId].func = sub_80D7DE8; + gTasks[taskId].func = Task_ReadyStartLinkContest; } -static void sub_80D7DE8(u8 taskId) +static void Task_ReadyStartLinkContest(u8 taskId) { // data[0] always 1 here gTasks[taskId].data[0]--; @@ -1164,7 +1219,7 @@ static void sub_80D7DE8(u8 taskId) { GetMultiplayerId(); // unused return value DestroyTask(taskId); - gTasks[eContest.mainTaskId].func = sub_80D80C8; + gTasks[eContest.mainTaskId].func = Task_WaitToRaiseCurtainAtStart; gRngValue = gContestRngValue; } } @@ -1187,7 +1242,7 @@ static bool8 SetupContestGraphics(u8 *stateVar) break; case 2: LZDecompressVram(gContestAudienceGfx, (void *)(BG_SCREEN_ADDR(4))); - DmaCopyLarge32(3, (void *)(BG_SCREEN_ADDR(4)), eUnzippedContestAudienceGfx, 0x2000, 0x1000); + DmaCopyLarge32(3, (void *)(BG_SCREEN_ADDR(4)), eUnzippedContestAudience_Gfx, 0x2000, 0x1000); break; case 3: CopyToBgTilemapBuffer(3, gOldContestGfx, 0, 0); @@ -1212,21 +1267,23 @@ static bool8 SetupContestGraphics(u8 *stateVar) DrawContestantWindows(); FillContestantWindowBgs(); SwapMoveDescAndContestTilemaps(); - eContest.unk19216 = sub_80DB120(); + eContest.judgeSpeechBubbleSpriteId = CreateJudgeSpeechBubbleSprite(); CreateSliderHeartSprites(); CreateNextTurnSprites(); CreateApplauseMeterSprite(); - sub_80DC5E8(); + CreateJudgeAttentionEyeTask(); sub_80DC7EC(); gBattlerPositions[0] = B_POSITION_PLAYER_LEFT; gBattlerPositions[1] = B_POSITION_OPPONENT_LEFT; gBattlerPositions[2] = B_POSITION_OPPONENT_RIGHT; gBattlerPositions[3] = B_POSITION_PLAYER_RIGHT; gBattleTypeFlags = 0; - gBattlerAttacker = 2; - gBattlerTarget = 3; - gBattlerSpriteIds[gBattlerAttacker] = sub_80DB0C4(); - sub_80DEA20(); + gBattlerAttacker = B_POSITION_PLAYER_RIGHT; + gBattlerTarget = B_POSITION_OPPONENT_RIGHT; + // Unclear why judge sprite is assigned here + // Overwritten in APPEALSTATE_SLIDE_MON_IN with the attacking contest mon + gBattlerSpriteIds[gBattlerAttacker] = CreateJudgeSprite(); + CreateInvisibleBattleTargetSprite(); CopyBgTilemapBufferToVram(3); CopyBgTilemapBufferToVram(2); CopyBgTilemapBufferToVram(1); @@ -1244,18 +1301,18 @@ static bool8 SetupContestGraphics(u8 *stateVar) return FALSE; } -static void sub_80D80C8(u8 taskId) +static void Task_WaitToRaiseCurtainAtStart(u8 taskId) { gPaletteFade.bufferTransferDisabled = FALSE; if (!gPaletteFade.active) { gTasks[taskId].data[0] = 0; gTasks[taskId].data[1] = 0; - gTasks[taskId].func = sub_80D8108; + gTasks[taskId].func = Task_RaiseCurtainAtStart; } } -static void sub_80D8108(u8 taskId) +static void Task_RaiseCurtainAtStart(u8 taskId) { switch (gTasks[taskId].data[0]) { @@ -1273,7 +1330,7 @@ static void sub_80D8108(u8 taskId) gTasks[taskId].data[0]++; break; case 2: - sub_80DE350(); + UpdateContestantBoxOrder(); gTasks[taskId].data[0]++; break; case 3: @@ -1284,7 +1341,7 @@ static void sub_80D8108(u8 taskId) ((struct BgCnt *)&bg2Cnt)->priority = 0; SetGpuReg(REG_OFFSET_BG0CNT, bg0Cnt); SetGpuReg(REG_OFFSET_BG2CNT, bg2Cnt); - StartMoveApplauseMeterOnscreen(); + SlideApplauseMeterIn(); gTasks[taskId].data[0]++; break; } @@ -1397,17 +1454,18 @@ static void Task_ShowMoveSelectScreen(u8 taskId) u8 *moveNameBuffer = moveName; if (eContestantStatus[gContestPlayerMonIndex].prevMove != MOVE_NONE - && sub_80DE1E8(gContestPlayerMonIndex) - && AreMovesContestCombo(eContestantStatus[gContestPlayerMonIndex].prevMove, move) != 0 + && IsContestantAllowedToCombo(gContestPlayerMonIndex) + && AreMovesContestCombo(eContestantStatus[gContestPlayerMonIndex].prevMove, move) && eContestantStatus[gContestPlayerMonIndex].hasJudgesAttention) { + // Highlight the text because it's a combo move moveNameBuffer = StringCopy(moveName, gText_ColorLightShadowDarkGrey); } else if (move != MOVE_NONE && eContestantStatus[gContestPlayerMonIndex].prevMove == move && gContestMoves[move].effect != CONTEST_EFFECT_REPETITION_NOT_BORING) { - // Gray the text because it is a repeated move + // Gray the text because it's a repeated move moveNameBuffer = StringCopy(moveName, gText_ColorBlue); } moveNameBuffer = StringCopy(moveNameBuffer, gMoveNames[move]); @@ -1555,7 +1613,7 @@ static void Task_HideApplauseMeterForAppealStart(u8 taskId) gTasks[taskId].data[0] = 0; if (++gTasks[taskId].data[1] == 2) { - TryMoveApplauseMeterOffscreen(); + SlideApplauseMeterOut(); AnimateSliderHearts(SLIDER_HEART_ANIM_DISAPPEAR); gTasks[taskId].func = Task_WaitHideApplauseMeterForAppealStart; } @@ -1568,12 +1626,79 @@ static void Task_WaitHideApplauseMeterForAppealStart(u8 taskId) gTasks[taskId].func = Task_AppealSetup; } +enum { + APPEALSTATE_START_TURN, + APPEALSTATE_1, + APPEALSTATE_2, + APPEALSTATE_SLIDE_MON_IN, + APPEALSTATE_WAIT_SLIDE_MON, + APPEALSTATE_PRINT_USED_MOVE_MSG, + APPEALSTATE_WAIT_USED_MOVE_MSG, + APPEALSTATE_MOVE_ANIM, + APPEALSTATE_WAIT_MOVE_ANIM, + APPEALSTATE_MOVE_ANIM_MULTITURN, + APPEALSTATE_SLIDE_MON_OUT, + APPEALSTATE_FREE_MON_SPRITE, + APPEALSTATE_UPDATE_MOVE_USERS_HEARTS, + APPEALSTATE_WAIT_MOVE_USERS_HEARTS, + APPEALSTATE_PRINT_COMBO_MSG, + APPEALSTATE_TRY_UPDATE_HEARTS_FROM_COMBO, + APPEALSTATE_WAIT_HEARTS_FROM_COMBO, + APPEALSTATE_CHECK_REPEATED_MOVE, + APPEALSTATE_WAIT_HEARTS_FROM_REPEAT, + APPEALSTATE_UPDATE_HEARTS_FROM_REPEAT, + APPEALSTATE_START_TURN_END_DELAY, + APPEALSTATE_TURN_END_DELAY, + APPEALSTATE_START_NEXT_TURN, + APPEALSTATE_TRY_PRINT_MOVE_RESULT, + APPEALSTATE_WAIT_MOVE_RESULT_MSG, + APPEALSTATE_UPDATE_OPPONENTS, + APPEALSTATE_UPDATE_OPPONENT, + APPEALSTATE_WAIT_OPPONENT_RESPONSE_MSG, + APPEALSTATE_UPDATE_OPPONENT_HEARTS, + APPEALSTATE_WAIT_OPPONENT_HEARTS, + APPEALSTATE_UPDATE_OPPONENT_STATUS, + APPEALSTATE_PRINT_SKIP_TURN_MSG, + APPEALSTATE_WAIT_SKIP_TURN_MSG, + APPEALSTATE_PRINT_TOO_NERVOUS_MSG, + APPEALSTATE_WAIT_TOO_NERVOUS_MSG, + APPEALSTATE_TRY_JUDGE_STAR, + APPEALSTATE_WAIT_JUDGE_STAR, + APPEALSTATE_UPDATE_MOVE_USERS_STARS, + APPEALSTATE_WAIT_MOVE_USERS_STARS, + APPEALSTATE_UPDATE_OPPONENT_STARS, + APPEALSTATE_WAIT_OPPONENT_STARS, + APPEALSTATE_UPDATE_CROWD, + APPEALSTATE_42, // Unused state + APPEALSTATE_WAIT_EXCITEMENT_HEARTS, + APPEALSTATE_44, // Unused state + APPEALSTATE_WAIT_JUDGE_COMBO, + APPEALSTATE_WAIT_JUDGE_REPEATED_MOVE, + APPEALSTATE_TRY_SHOW_NEXT_TURN_GFX, + APPEALSTATE_CHECK_TURN_ORDER_MOD, + APPEALSTATE_WAIT_JUDGE_TURN_ORDER, + APPEALSTATE_UPDATE_MOVE_USERS_STATUS, + APPEALSTATE_TRY_PRINT_SKIP_NEXT_TURN_MSG, + APPEALSTATE_WAIT_SKIP_NEXT_TURN_MSG, + APPEALSTATE_DO_CROWD_UNEXCITED, + APPEALSTATE_DO_CROWD_EXCITED, + APPEALSTATE_SLIDE_APPLAUSE_OUT, + APPEALSTATE_WAIT_SLIDE_APPLAUSE, + APPEALSTATE_PRINT_CROWD_WATCHES_MSG, + APPEALSTATE_PRINT_MON_MOVE_IGNORED_MSG, + APPEALSTATE_WAIT_MON_MOVE_IGNORED_MSG, +}; + +#define tState data[0] +#define tMonSpriteId data[2] +#define tCounter data[10] + static void Task_AppealSetup(u8 taskId) { if (++gTasks[taskId].data[0] > 19) { eContest.turnNumber = 0; - eContest.unk1921C = gRngValue; + eContest.unusedRng = gRngValue; if ((gLinkContestFlags & LINK_CONTEST_FLAG_IS_LINK) && IsPlayerLinkLeader()) { s32 i; @@ -1583,500 +1708,511 @@ static void Task_AppealSetup(u8 taskId) eContestantStatus[gNumLinkContestPlayers + i].currMove = GetChosenMove(gNumLinkContestPlayers + i); } } - gTasks[taskId].data[0] = 0; + gTasks[taskId].tState = APPEALSTATE_START_TURN; gTasks[taskId].func = Task_DoAppeals; } } -#define tState data[0] - static void Task_DoAppeals(u8 taskId) { u8 spriteId; s32 i; - u8 r6 = eContest.currentContestant; + u8 contestant = eContest.currentContestant; s8 r3; switch (gTasks[taskId].tState) { - case 0: + case APPEALSTATE_START_TURN: ContestDebugDoPrint(); for (i = 0; eContest.turnNumber != gContestResources->field_8->turnOrder[i]; i++) ; eContest.currentContestant = i; - r6 = eContest.currentContestant; + contestant = eContest.currentContestant; if (gLinkContestFlags & LINK_CONTEST_FLAG_IS_LINK) { u8 taskId2; - eContest.unk1920B_2 = 1; + eContest.waitForLink = TRUE; if (IsPlayerLinkLeader()) - sub_80DD080(eContest.currentContestant); + CalculateAppealMoveImpact(eContest.currentContestant); taskId2 = CreateTask(sub_80FCC88, 0); - SetTaskFuncWithFollowupFunc(taskId2, sub_80FCC88, sub_80DA110); + SetTaskFuncWithFollowupFunc(taskId2, sub_80FCC88, Task_EndWaitForLink); ContestPrintLinkStandby(); - gTasks[taskId].tState = 1; + gTasks[taskId].tState = APPEALSTATE_1; } else { - sub_80DD080(eContest.currentContestant); - gTasks[taskId].tState = 2; + CalculateAppealMoveImpact(eContest.currentContestant); + gTasks[taskId].tState = APPEALSTATE_2; } return; - case 1: - if (!eContest.unk1920B_2) - gTasks[taskId].tState = 2; + case APPEALSTATE_1: + if (!eContest.waitForLink) + gTasks[taskId].tState = APPEALSTATE_2; return; - case 2: - sub_80DF080(r6); + case APPEALSTATE_2: + sub_80DF080(contestant); ContestDebugPrintBitStrings(); - if (eContestantStatus[r6].numTurnsSkipped != 0 - || eContestantStatus[r6].noMoreTurns) + if (eContestantStatus[contestant].numTurnsSkipped != 0 + || eContestantStatus[contestant].noMoreTurns) { - gTasks[taskId].tState = 31; + gTasks[taskId].tState = APPEALSTATE_PRINT_SKIP_TURN_MSG; } else { ContestClearGeneralTextWindow(); - gTasks[taskId].data[10] = 0; - gTasks[taskId].tState = 3; + gTasks[taskId].tCounter = 0; + gTasks[taskId].tState = APPEALSTATE_SLIDE_MON_IN; } return; - case 3: + case APPEALSTATE_SLIDE_MON_IN: for (i = 0; i < CONTESTANT_COUNT; i++) gBattleMonForms[i] = 0; - memset(gContestResources->field_18, 0, sizeof(*gContestResources->field_18)); - sub_80DE9DC(eContest.currentContestant); + memset(gContestResources->moveAnim, 0, sizeof(*gContestResources->moveAnim)); + SetMoveAnimAttackerData(eContest.currentContestant); spriteId = CreateContestantSprite( gContestMons[eContest.currentContestant].species, gContestMons[eContest.currentContestant].otId, gContestMons[eContest.currentContestant].personality, eContest.currentContestant); gSprites[spriteId].pos2.x = 120; - gSprites[spriteId].callback = sub_80DA134; - gTasks[taskId].data[2] = spriteId; + gSprites[spriteId].callback = SpriteCB_MonSlideIn; + gTasks[taskId].tMonSpriteId = spriteId; gBattlerSpriteIds[gBattlerAttacker] = spriteId; - sub_80DCBE8(sub_80DC9EC(eContest.currentContestant), FALSE); - gTasks[taskId].tState = 4; + BlinkContestantBox(CreateContestantBoxBlinkSprites(eContest.currentContestant), FALSE); + gTasks[taskId].tState = APPEALSTATE_WAIT_SLIDE_MON; return; - case 4: - spriteId = gTasks[taskId].data[2]; + case APPEALSTATE_WAIT_SLIDE_MON: + spriteId = gTasks[taskId].tMonSpriteId; if (gSprites[spriteId].callback == SpriteCallbackDummy) { - if (!gContestResources->field_14[r6].unk2_1) - gTasks[taskId].tState = 5; + // Once mon has slid in, also wait for box to finish blinking + if (!gContestResources->field_14[contestant].boxBlinking) + gTasks[taskId].tState = APPEALSTATE_PRINT_USED_MOVE_MSG; } return; - case 5: - if (eContestantStatus[r6].nervous) + case APPEALSTATE_PRINT_USED_MOVE_MSG: + if (eContestantStatus[contestant].nervous) { - gTasks[taskId].tState = 33; + gTasks[taskId].tState = APPEALSTATE_PRINT_TOO_NERVOUS_MSG; } else { ContestClearGeneralTextWindow(); - StringCopy(gStringVar1, gContestMons[r6].nickname); - if (eContestantStatus[r6].currMove < MOVES_COUNT) - StringCopy(gStringVar2, gMoveNames[eContestantStatus[r6].currMove]); + StringCopy(gStringVar1, gContestMons[contestant].nickname); + if (eContestantStatus[contestant].currMove < MOVES_COUNT) + StringCopy(gStringVar2, gMoveNames[eContestantStatus[contestant].currMove]); else - StringCopy(gStringVar2, sInvalidContestMoveNames[eContestantStatus[r6].moveCategory]); + StringCopy(gStringVar2, sInvalidContestMoveNames[eContestantStatus[contestant].moveCategory]); StringExpandPlaceholders(gStringVar4, gText_MonAppealedWithMove); Contest_StartTextPrinter(gStringVar4, 1); - gTasks[taskId].tState = 6; + gTasks[taskId].tState = APPEALSTATE_WAIT_USED_MOVE_MSG; } return; - case 6: + case APPEALSTATE_WAIT_USED_MOVE_MSG: if (!Contest_RunTextPrinters()) { - eContest.unk1925E = 0; - gTasks[taskId].tState = 7; + eContest.moveAnimTurnCount = 0; + gTasks[taskId].tState = APPEALSTATE_MOVE_ANIM; } return; - case 7: + case APPEALSTATE_MOVE_ANIM: { u16 move = SanitizeMove(eContestantStatus[eContest.currentContestant].currMove); - - sub_80DE864(eContest.currentContestant); - sub_80DE9DC(eContest.currentContestant); - SelectContestMoveBankTarget(move); + SetMoveSpecificAnimData(eContest.currentContestant); + SetMoveAnimAttackerData(eContest.currentContestant); + SetMoveTargetPosition(move); DoMoveAnim(move); - gTasks[taskId].tState = 8; + gTasks[taskId].tState = APPEALSTATE_WAIT_MOVE_ANIM; } return; - case 8: + case APPEALSTATE_WAIT_MOVE_ANIM: gAnimScriptCallback(); if (!gAnimScriptActive) { - sub_80DE9B0(r6); - if (eContest.unk1925E != 0) + ClearMoveAnimData(contestant); + if (eContest.moveAnimTurnCount != 0) { - gTasks[taskId].data[10] = 0; - gTasks[taskId].tState = 9; + gTasks[taskId].tCounter = 0; + gTasks[taskId].tState = APPEALSTATE_MOVE_ANIM_MULTITURN; } else { - if (!eContestantStatus[r6].hasJudgesAttention) - sub_80DC674(r6); - sub_80DE12C(); - gTasks[taskId].tState = 23; + if (!eContestantStatus[contestant].hasJudgesAttention) + StopFlashJudgeAttentionEye(contestant); + DrawUnnervedSymbols(); + gTasks[taskId].tState = APPEALSTATE_TRY_PRINT_MOVE_RESULT; } } return; - case 9: - if (gTasks[taskId].data[10]++ > 30) + case APPEALSTATE_MOVE_ANIM_MULTITURN: + if (gTasks[taskId].tCounter++ > 30) { - gTasks[taskId].data[10] = 0; - gTasks[taskId].tState = 7; + gTasks[taskId].tCounter = 0; + gTasks[taskId].tState = APPEALSTATE_MOVE_ANIM; } return; - case 23: + case APPEALSTATE_TRY_PRINT_MOVE_RESULT: gTasks[taskId].data[1] = 0; - if (eContestantStatus[r6].effectStringId != CONTEST_STRING_NONE) + if (eContestantStatus[contestant].effectStringId != CONTEST_STRING_NONE) { - sub_80DD45C(r6, eContestantStatus[r6].effectStringId); - eContestantStatus[r6].effectStringId = CONTEST_STRING_NONE; - gTasks[taskId].tState = 24; + PrintAppealMoveResultText(contestant, eContestantStatus[contestant].effectStringId); + eContestantStatus[contestant].effectStringId = CONTEST_STRING_NONE; + gTasks[taskId].tState = APPEALSTATE_WAIT_MOVE_RESULT_MSG; } else { - if (eContestantStatus[r6].effectStringId2 != CONTEST_STRING_NONE) + if (eContestantStatus[contestant].effectStringId2 != CONTEST_STRING_NONE) { for (i = 0; i < CONTESTANT_COUNT; i++) { - if (i != r6 && eContestantStatus[i].effectStringId != CONTEST_STRING_NONE) + if (i != contestant && eContestantStatus[i].effectStringId != CONTEST_STRING_NONE) break; } - if (i == 4) + if (i == CONTESTANT_COUNT) { - sub_80DD45C(r6, eContestantStatus[r6].effectStringId2); - eContestantStatus[r6].effectStringId2 = CONTEST_STRING_NONE; - gTasks[taskId].tState = 24; + PrintAppealMoveResultText(contestant, eContestantStatus[contestant].effectStringId2); + eContestantStatus[contestant].effectStringId2 = CONTEST_STRING_NONE; + gTasks[taskId].tState = APPEALSTATE_WAIT_MOVE_RESULT_MSG; } else { - gTasks[taskId].tState = 48; + gTasks[taskId].tState = APPEALSTATE_CHECK_TURN_ORDER_MOD; } } else { - gTasks[taskId].tState = 48; + gTasks[taskId].tState = APPEALSTATE_CHECK_TURN_ORDER_MOD; } } return; - case 24: + case APPEALSTATE_WAIT_MOVE_RESULT_MSG: if (!Contest_RunTextPrinters()) - gTasks[taskId].tState = 23; + gTasks[taskId].tState = APPEALSTATE_TRY_PRINT_MOVE_RESULT; return; - case 48: - if (eContestantStatus[r6].turnOrderModAction == 1) + case APPEALSTATE_CHECK_TURN_ORDER_MOD: + if (eContestantStatus[contestant].turnOrderModAction == 1) { - sub_80DD720(5); + DoJudgeSpeechBubble(JUDGE_SYMBOL_NUMBER_ONE); } - else if (eContestantStatus[r6].turnOrderModAction == 2) + else if (eContestantStatus[contestant].turnOrderModAction == 2) { - sub_80DD720(6); + DoJudgeSpeechBubble(JUDGE_SYMBOL_NUMBER_FOUR); } - else if (eContestantStatus[r6].turnOrderModAction == 3) + else if (eContestantStatus[contestant].turnOrderModAction == 3) { - sub_80DD720(7); + DoJudgeSpeechBubble(JUDGE_SYMBOL_QUESTION_MARK); } else { - gTasks[taskId].tState = 47; + gTasks[taskId].tState = APPEALSTATE_TRY_SHOW_NEXT_TURN_GFX; return; } - gTasks[taskId].tState = 49; + gTasks[taskId].tState = APPEALSTATE_WAIT_JUDGE_TURN_ORDER; return; - case 49: - if (!eContest.unk1920A_4) - gTasks[taskId].tState = 47; + case APPEALSTATE_WAIT_JUDGE_TURN_ORDER: + if (!eContest.waitForJudgeSpeechBubble) + gTasks[taskId].tState = APPEALSTATE_TRY_SHOW_NEXT_TURN_GFX; return; - case 47: - sub_80DE008(TRUE); - gTasks[taskId].tState = 12; + case APPEALSTATE_TRY_SHOW_NEXT_TURN_GFX: + ShowHideNextTurnGfx(TRUE); + gTasks[taskId].tState = APPEALSTATE_UPDATE_MOVE_USERS_HEARTS; return; - case 12: - sub_80DC028(0, eContestantStatus[r6].appeal2, r6); - gTasks[taskId].tState = 13; + case APPEALSTATE_UPDATE_MOVE_USERS_HEARTS: + UpdateAppealHearts(0, eContestantStatus[contestant].appeal2, contestant); + gTasks[taskId].tState = APPEALSTATE_WAIT_MOVE_USERS_HEARTS; return; - case 13: - if (!gContestResources->field_14[eContest.currentContestant].unk2_2) - gTasks[taskId].tState = 35; + case APPEALSTATE_WAIT_MOVE_USERS_HEARTS: + if (!gContestResources->field_14[eContest.currentContestant].updatingAppealHearts) + gTasks[taskId].tState = APPEALSTATE_TRY_JUDGE_STAR; return; - case 35: - if (eContestantStatus[r6].conditionMod == 1) - sub_80DD720(8); - gTasks[taskId].tState = 36; + case APPEALSTATE_TRY_JUDGE_STAR: + if (eContestantStatus[contestant].conditionMod == 1) + DoJudgeSpeechBubble(JUDGE_SYMBOL_STAR); + gTasks[taskId].tState = APPEALSTATE_WAIT_JUDGE_STAR; return; - case 36: - if (!eContest.unk1920A_4) - gTasks[taskId].tState = 37; + case APPEALSTATE_WAIT_JUDGE_STAR: + if (!eContest.waitForJudgeSpeechBubble) + gTasks[taskId].tState = APPEALSTATE_UPDATE_MOVE_USERS_STARS; return; - case 37: - if (sub_80DB5B8(r6, 1)) + case APPEALSTATE_UPDATE_MOVE_USERS_STARS: + if (UpdateConditionStars(contestant, TRUE)) { - gTasks[taskId].data[10] = 0; - gTasks[taskId].tState = 38; + gTasks[taskId].tCounter = 0; + gTasks[taskId].tState = APPEALSTATE_WAIT_MOVE_USERS_STARS; } else { - gTasks[taskId].tState = 50; + gTasks[taskId].tState = APPEALSTATE_UPDATE_MOVE_USERS_STATUS; } return; - case 38: - if (++gTasks[taskId].data[10] > 20) + case APPEALSTATE_WAIT_MOVE_USERS_STARS: + if (++gTasks[taskId].tCounter > 20) { - gTasks[taskId].data[10] = 0; - gTasks[taskId].tState = 50; + gTasks[taskId].tCounter = 0; + gTasks[taskId].tState = APPEALSTATE_UPDATE_MOVE_USERS_STATUS; } return; - case 50: - if (sub_80DB798(r6)) + case APPEALSTATE_UPDATE_MOVE_USERS_STATUS: + if (DrawStatusSymbol(contestant)) PlaySE(SE_C_PASI); - gTasks[taskId].tState = 25; + gTasks[taskId].tState = APPEALSTATE_UPDATE_OPPONENTS; return; - case 25: + case APPEALSTATE_UPDATE_OPPONENTS: gTasks[taskId].data[1] = 0; - gTasks[taskId].tState = 26; + gTasks[taskId].tState = APPEALSTATE_UPDATE_OPPONENT; return; - case 26: + case APPEALSTATE_UPDATE_OPPONENT: { - s32 r2 = 0; + // Update each other contestant as a result of this move appeal + s32 j = 0; - r3 = 0; + r3 = FALSE; // Can't get this to use local variable. Should be "needsUpdate" for (i = gTasks[taskId].data[1]; i < CONTESTANT_COUNT; i++) { - r3 = 0; - for (r2 = 0; r2 < CONTESTANT_COUNT; r2++) + r3 = FALSE; + for (j = 0; j < CONTESTANT_COUNT; j++) { - if (r2 != r6 && gContestantTurnOrder[r2] == i - && eContestantStatus[r2].effectStringId != CONTEST_STRING_NONE) + if (j != contestant && gContestantTurnOrder[j] == i + && eContestantStatus[j].effectStringId != CONTEST_STRING_NONE) { - r3 = 1; + r3 = TRUE; break; } } - if (r3 != 0) + if (r3) break; } if (r3) { - gTasks[taskId].data[1] = gContestantTurnOrder[r2]; - sub_80DD45C(r2, eContestantStatus[r2].effectStringId); - eContestantStatus[r2].effectStringId = CONTEST_STRING_NONE; - gTasks[taskId].tState = 27; + // Update contestant + gTasks[taskId].data[1] = gContestantTurnOrder[j]; + PrintAppealMoveResultText(j, eContestantStatus[j].effectStringId); + eContestantStatus[j].effectStringId = CONTEST_STRING_NONE; + gTasks[taskId].tState = APPEALSTATE_WAIT_OPPONENT_RESPONSE_MSG; } else { + // Done updating contestants gTasks[taskId].data[1] = 0; - gTasks[taskId].data[10] = 0; - gTasks[taskId].tState = 51; - sub_80DB884(); + gTasks[taskId].tCounter = 0; + gTasks[taskId].tState = APPEALSTATE_TRY_PRINT_SKIP_NEXT_TURN_MSG; + DrawStatusSymbols(); } } return; - case 27: + case APPEALSTATE_WAIT_OPPONENT_RESPONSE_MSG: + // Wait for contestants response to current appeal + // i.e. "Contestant managed to avert its gaze" if (!Contest_RunTextPrinters()) - gTasks[taskId].tState = 28; + gTasks[taskId].tState = APPEALSTATE_UPDATE_OPPONENT_HEARTS; return; - case 28: + case APPEALSTATE_UPDATE_OPPONENT_HEARTS: for (i = 0; gTasks[taskId].data[1] != gContestantTurnOrder[i]; i++) ; - sub_80DC028(eContestantStatus[i].appeal2 + eContestantStatus[i].jam, -eContestantStatus[i].jam, i); - gTasks[taskId].tState = 29; + UpdateAppealHearts(eContestantStatus[i].appeal2 + eContestantStatus[i].jam, -eContestantStatus[i].jam, i); + gTasks[taskId].tState = APPEALSTATE_WAIT_OPPONENT_HEARTS; return; - case 29: + case APPEALSTATE_WAIT_OPPONENT_HEARTS: for (i = 0; gTasks[taskId].data[1] != gContestantTurnOrder[i]; i++) ; - if (!gContestResources->field_14[i].unk2_2) - gTasks[taskId].tState = 39; + if (!gContestResources->field_14[i].updatingAppealHearts) + gTasks[taskId].tState = APPEALSTATE_UPDATE_OPPONENT_STARS; return; - case 39: + case APPEALSTATE_UPDATE_OPPONENT_STARS: for (i = 0; gTasks[taskId].data[1] != gContestantTurnOrder[i]; i++) ; - if (sub_80DB5B8(i, 1)) + if (UpdateConditionStars(i, TRUE)) { - gTasks[taskId].data[10] = 0; - gTasks[taskId].tState = 40; + gTasks[taskId].tCounter = 0; + gTasks[taskId].tState = APPEALSTATE_WAIT_OPPONENT_STARS; } else { - gTasks[taskId].tState = 30; + gTasks[taskId].tState = APPEALSTATE_UPDATE_OPPONENT_STATUS; } return; - case 40: - if (++gTasks[taskId].data[10] > 20) + case APPEALSTATE_WAIT_OPPONENT_STARS: + if (++gTasks[taskId].tCounter > 20) { - gTasks[taskId].data[10] = 0; - gTasks[taskId].tState = 30; + gTasks[taskId].tCounter = 0; + gTasks[taskId].tState = APPEALSTATE_UPDATE_OPPONENT_STATUS; } return; - case 30: + case APPEALSTATE_UPDATE_OPPONENT_STATUS: for (i = 0; i < CONTESTANT_COUNT; i++) { if (gContestantTurnOrder[i] == gTasks[taskId].data[1]) break; } - if (sub_80DB798(i)) + if (DrawStatusSymbol(i)) PlaySE(SE_C_PASI); else PlaySE(SE_C_SYU); if (eContestantStatus[i].judgesAttentionWasRemoved) { - sub_80DC674(i); - eContestantStatus[i].judgesAttentionWasRemoved = 0; + StopFlashJudgeAttentionEye(i); + eContestantStatus[i].judgesAttentionWasRemoved = FALSE; } gTasks[taskId].data[1]++; - gTasks[taskId].tState = 26; + gTasks[taskId].tState = APPEALSTATE_UPDATE_OPPONENT; return; - case 51: - if (gTasks[taskId].data[10]++ > 9) + case APPEALSTATE_TRY_PRINT_SKIP_NEXT_TURN_MSG: + if (gTasks[taskId].tCounter++ > 9) { - gTasks[taskId].data[10] = 0; - if (eContestantStatus[r6].numTurnsSkipped != 0 - || eContestantStatus[r6].turnSkipped) + gTasks[taskId].tCounter = 0; + if (eContestantStatus[contestant].numTurnsSkipped != 0 + || eContestantStatus[contestant].turnSkipped) { ContestClearGeneralTextWindow(); - StringCopy(gStringVar1, gContestMons[r6].nickname); + StringCopy(gStringVar1, gContestMons[contestant].nickname); StringExpandPlaceholders(gStringVar4, gText_MonCantAppealNextTurn); Contest_StartTextPrinter(gStringVar4, 1); } - gTasks[taskId].tState = 52; + gTasks[taskId].tState = APPEALSTATE_WAIT_SKIP_NEXT_TURN_MSG; } return; - case 52: + case APPEALSTATE_WAIT_SKIP_NEXT_TURN_MSG: if (!Contest_RunTextPrinters()) { - if (!eContestantStatus[r6].unk15_6) - gTasks[taskId].tState = 17; + if (!eContestantStatus[contestant].usedComboMove) + gTasks[taskId].tState = APPEALSTATE_CHECK_REPEATED_MOVE; else - gTasks[taskId].tState = 14; + gTasks[taskId].tState = APPEALSTATE_PRINT_COMBO_MSG; } return; - case 14: - r3 = eContestantStatus[r6].unk16; - if (eContestantStatus[r6].unk16 != 0) + case APPEALSTATE_PRINT_COMBO_MSG: + { + s8 completedCombo = eContestantStatus[contestant].completedCombo; + if (eContestantStatus[contestant].completedCombo) { + // Finished combo + + // Looks like there were originally meant to be move combos of + // different effectivenesses. completedCombo however is only ever 0 or 1, + // so in here only "Went over well" will ever be used ContestClearGeneralTextWindow(); - if (r3 == 1) + if (completedCombo == 1) Contest_StartTextPrinter(gText_AppealComboWentOverWell, TRUE); - else if (r3 == 2) + else if (completedCombo == 2) Contest_StartTextPrinter(gText_AppealComboWentOverVeryWell, TRUE); else Contest_StartTextPrinter(gText_AppealComboWentOverExcellently, TRUE); - sub_80DD720(3); - gTasks[taskId].data[10] = 0; - gTasks[taskId].tState = 45; + + DoJudgeSpeechBubble(JUDGE_SYMBOL_TWO_EXCLAMATIONS); + gTasks[taskId].tCounter = 0; + gTasks[taskId].tState = APPEALSTATE_WAIT_JUDGE_COMBO; } else { + // Started combo ContestClearGeneralTextWindow(); - StringCopy(gStringVar1, gContestMons[r6].nickname); + StringCopy(gStringVar1, gContestMons[contestant].nickname); StringExpandPlaceholders(gStringVar4, gText_JudgeLookedAtMonExpectantly); Contest_StartTextPrinter(gStringVar4, 1); - sub_80DD720(2); - gTasks[taskId].data[10] = 0; - gTasks[taskId].tState = 45; + DoJudgeSpeechBubble(JUDGE_SYMBOL_ONE_EXCLAMATION); + gTasks[taskId].tCounter = 0; + gTasks[taskId].tState = APPEALSTATE_WAIT_JUDGE_COMBO; } return; - case 45: - if (!eContest.unk1920A_4) + } + case APPEALSTATE_WAIT_JUDGE_COMBO: + if (!eContest.waitForJudgeSpeechBubble) { - sub_80DC9B4(eContest.currentContestant); - gTasks[taskId].tState = 15; + StartStopFlashJudgeAttentionEye(eContest.currentContestant); + gTasks[taskId].tState = APPEALSTATE_TRY_UPDATE_HEARTS_FROM_COMBO; } return; - case 15: + case APPEALSTATE_TRY_UPDATE_HEARTS_FROM_COMBO: if (!Contest_RunTextPrinters()) { - if (++gTasks[taskId].data[10] > 50) + if (++gTasks[taskId].tCounter > 50) { - if (!eContestantStatus[r6].hasJudgesAttention) + if (!eContestantStatus[contestant].hasJudgesAttention) { - sub_80DC028( - eContestantStatus[r6].appeal2, - eContestantStatus[r6].unk17, - r6); - eContestantStatus[r6].appeal2 += eContestantStatus[r6].unk17; + UpdateAppealHearts( + eContestantStatus[contestant].appeal2, + eContestantStatus[contestant].unk17, + contestant); + eContestantStatus[contestant].appeal2 += eContestantStatus[contestant].unk17; } - gTasks[taskId].tState = 16; + gTasks[taskId].tState = APPEALSTATE_WAIT_HEARTS_FROM_COMBO; } } return; - case 16: - if (!gContestResources->field_14[r6].unk2_2) + case APPEALSTATE_WAIT_HEARTS_FROM_COMBO: + if (!gContestResources->field_14[contestant].updatingAppealHearts) { - gTasks[taskId].data[10] = 0; - gTasks[taskId].tState = 17; + gTasks[taskId].tCounter = 0; + gTasks[taskId].tState = APPEALSTATE_CHECK_REPEATED_MOVE; } return; - case 17: - if (eContestantStatus[r6].repeatedMove) + case APPEALSTATE_CHECK_REPEATED_MOVE: + if (eContestantStatus[contestant].repeatedMove) { ContestClearGeneralTextWindow(); - StringCopy(gStringVar1, gContestMons[r6].nickname); + StringCopy(gStringVar1, gContestMons[contestant].nickname); StringExpandPlaceholders(gStringVar4, gText_RepeatedAppeal); Contest_StartTextPrinter(gStringVar4, TRUE); - gTasks[taskId].data[10] = 0; - sub_80DD720(0); - gTasks[taskId].tState = 46; + gTasks[taskId].tCounter = 0; + DoJudgeSpeechBubble(JUDGE_SYMBOL_SWIRL); + gTasks[taskId].tState = APPEALSTATE_WAIT_JUDGE_REPEATED_MOVE; } else { - gTasks[taskId].tState = 41; + gTasks[taskId].tState = APPEALSTATE_UPDATE_CROWD; } return; - case 46: - if (!eContest.unk1920A_4) - gTasks[taskId].tState = 19; + case APPEALSTATE_WAIT_JUDGE_REPEATED_MOVE: + if (!eContest.waitForJudgeSpeechBubble) + gTasks[taskId].tState = APPEALSTATE_UPDATE_HEARTS_FROM_REPEAT; return; - case 19: + case APPEALSTATE_UPDATE_HEARTS_FROM_REPEAT: if (!Contest_RunTextPrinters()) { - sub_80DC028(eContestantStatus[r6].appeal2, -eContestantStatus[r6].unk18, r6); - eContestantStatus[r6].appeal2 -= eContestantStatus[r6].unk18; - gTasks[taskId].tState = 18; + UpdateAppealHearts(eContestantStatus[contestant].appeal2, -eContestantStatus[contestant].unk18, contestant); + eContestantStatus[contestant].appeal2 -= eContestantStatus[contestant].unk18; + gTasks[taskId].tState = APPEALSTATE_WAIT_HEARTS_FROM_REPEAT; } return; - case 18: + case APPEALSTATE_WAIT_HEARTS_FROM_REPEAT: ContestDebugDoPrint(); - if (!gContestResources->field_14[r6].unk2_2) + if (!gContestResources->field_14[contestant].updatingAppealHearts) { - gTasks[taskId].data[10] = 0; + gTasks[taskId].tCounter = 0; ContestClearGeneralTextWindow(); - gTasks[taskId].tState = 41; + gTasks[taskId].tState = APPEALSTATE_UPDATE_CROWD; } return; - case 41: - if (gContestResources->field_10->excitementFrozen && r6 != gContestResources->field_10->excitementFreezer) + case APPEALSTATE_UPDATE_CROWD: + if (gContestResources->field_10->excitementFrozen && contestant != gContestResources->field_10->excitementFreezer) { - gTasks[taskId].tState = 57; + gTasks[taskId].tState = APPEALSTATE_PRINT_CROWD_WATCHES_MSG; } else { - r3 = gContestResources->field_10->bits_0; - if (eContestantStatus[r6].overrideCategoryExcitementMod) + r3 = gContestResources->field_10->moveExcitement; // Can't get this to use local variable. Should be "moveExcitement" + if (eContestantStatus[contestant].overrideCategoryExcitementMod) { r3 = 1; - StringCopy(gStringVar3, gMoveNames[eContestantStatus[r6].currMove]); + StringCopy(gStringVar3, gMoveNames[eContestantStatus[contestant].currMove]); } else { - StringCopy(gStringVar3, sContestConditions[gContestMoves[eContestantStatus[r6].currMove].contestCategory]); - } - if (r3 > 0) - { - if (eContestantStatus[r6].repeatedMove) - r3 = 0; + StringCopy(gStringVar3, sContestConditions[gContestMoves[eContestantStatus[contestant].currMove].contestCategory]); } + + if (r3 > 0 && eContestantStatus[contestant].repeatedMove) + r3 = 0; + ContestClearGeneralTextWindow(); - StringCopy(gStringVar1, gContestMons[r6].nickname); + StringCopy(gStringVar1, gContestMons[contestant].nickname); eContest.applauseLevel += r3; if (eContest.applauseLevel < 0) eContest.applauseLevel = 0; if (r3 == 0) { - gTasks[taskId].tState = 55; + gTasks[taskId].tState = APPEALSTATE_SLIDE_APPLAUSE_OUT; } else { @@ -2087,28 +2223,28 @@ static void Task_DoAppeals(u8 taskId) else StringExpandPlaceholders(gStringVar4, gText_MonsXGotTheCrowdGoing); Contest_StartTextPrinter(gStringVar4, 1); - gTasks[taskId].data[10] = 0; + gTasks[taskId].tCounter = 0; gTasks[taskId].data[11] = 0; if (r3 < 0) - gTasks[taskId].tState = 53; + gTasks[taskId].tState = APPEALSTATE_DO_CROWD_UNEXCITED; else - gTasks[taskId].tState = 54; + gTasks[taskId].tState = APPEALSTATE_DO_CROWD_EXCITED; } } return; - case 53: - switch (gTasks[taskId].data[10]) + case APPEALSTATE_DO_CROWD_UNEXCITED: + switch (gTasks[taskId].tCounter) { case 0: - sub_80DDED0(-1, 1); + BlendAudienceBackground(-1, 1); PlayFanfare(MUS_ME_ZANNEN); - gTasks[taskId].data[10]++; + gTasks[taskId].tCounter++; break; case 1: - if (!eContest.unk1920B_0 && !Contest_RunTextPrinters()) + if (!eContest.waitForAudienceBlend && !Contest_RunTextPrinters()) { ShowAndUpdateApplauseMeter(-1); - gTasks[taskId].data[10]++; + gTasks[taskId].tCounter++; } break; case 2: @@ -2117,38 +2253,38 @@ static void Task_DoAppeals(u8 taskId) if (gTasks[taskId].data[11]++ > 29) { gTasks[taskId].data[11] = 0; - sub_80DDED0(-1, -1); - gTasks[taskId].data[10]++; + BlendAudienceBackground(-1, -1); + gTasks[taskId].tCounter++; } } break; case 3: if (!gPaletteFade.active) { - gTasks[taskId].data[10] = 0; + gTasks[taskId].tCounter = 0; gTasks[taskId].data[11] = 0; - gTasks[taskId].tState = 43; + gTasks[taskId].tState = APPEALSTATE_WAIT_EXCITEMENT_HEARTS; } break; } return; - case 54: - switch (gTasks[taskId].data[10]) + case APPEALSTATE_DO_CROWD_EXCITED: + switch (gTasks[taskId].tCounter) { case 0: if (!Contest_RunTextPrinters()) { - sub_80DDED0(1, 1); - gTasks[taskId].data[10]++; + BlendAudienceBackground(1, 1); + gTasks[taskId].tCounter++; } break; case 1: - if (!eContest.unk1920B_0) + if (!eContest.waitForAudienceBlend) { - sub_80DDE0C(); + AnimateAudience(); PlaySE(SE_W227B); ShowAndUpdateApplauseMeter(1); - gTasks[taskId].data[10]++; + gTasks[taskId].tCounter++; } break; case 2: @@ -2157,83 +2293,83 @@ static void Task_DoAppeals(u8 taskId) if (gTasks[taskId].data[11]++ > 29) { gTasks[taskId].data[11] = 0; - sub_80DC028(eContestantStatus[r6].appeal2, gContestResources->field_10->unk2, r6); - eContestantStatus[r6].appeal2 += gContestResources->field_10->unk2; - gTasks[taskId].data[10]++; + UpdateAppealHearts(eContestantStatus[contestant].appeal2, gContestResources->field_10->unk2, contestant); + eContestantStatus[contestant].appeal2 += gContestResources->field_10->unk2; + gTasks[taskId].tCounter++; } } break; case 3: - if (!gContestResources->field_14[r6].unk2_2) + if (!gContestResources->field_14[contestant].updatingAppealHearts) { - if (!eContest.unk1920A_7) + if (!eContest.animatingAudience) { - sub_80DDED0(1, -1); - gTasks[taskId].data[10]++; + BlendAudienceBackground(1, -1); + gTasks[taskId].tCounter++; } } break; case 4: if (!gPaletteFade.active) { - gTasks[taskId].data[10] = 0; + gTasks[taskId].tCounter = 0; gTasks[taskId].data[11] = 0; - gTasks[taskId].tState = 43; + gTasks[taskId].tState = APPEALSTATE_WAIT_EXCITEMENT_HEARTS; } break; } return; - case 43: - if (!gContestResources->field_14[r6].unk2_2) + case APPEALSTATE_WAIT_EXCITEMENT_HEARTS: + if (!gContestResources->field_14[contestant].updatingAppealHearts) { ContestClearGeneralTextWindow(); - gTasks[taskId].tState = 55; + gTasks[taskId].tState = APPEALSTATE_SLIDE_APPLAUSE_OUT; } return; - case 57: + case APPEALSTATE_PRINT_CROWD_WATCHES_MSG: ContestClearGeneralTextWindow(); StringCopy(gStringVar3, gContestMons[gContestResources->field_10->excitementFreezer].nickname); - StringCopy(gStringVar1, gContestMons[r6].nickname); - StringCopy(gStringVar2, gMoveNames[eContestantStatus[r6].currMove]); + StringCopy(gStringVar1, gContestMons[contestant].nickname); + StringCopy(gStringVar2, gMoveNames[eContestantStatus[contestant].currMove]); StringExpandPlaceholders(gStringVar4, gText_CrowdContinuesToWatchMon); Contest_StartTextPrinter(gStringVar4, TRUE); - gTasks[taskId].tState = 58; + gTasks[taskId].tState = APPEALSTATE_PRINT_MON_MOVE_IGNORED_MSG; return; - case 58: + case APPEALSTATE_PRINT_MON_MOVE_IGNORED_MSG: if (!Contest_RunTextPrinters()) { ContestClearGeneralTextWindow(); StringExpandPlaceholders(gStringVar4, gText_MonsMoveIsIgnored); Contest_StartTextPrinter(gStringVar4, TRUE); - gTasks[taskId].tState = 59; + gTasks[taskId].tState = APPEALSTATE_WAIT_MON_MOVE_IGNORED_MSG; } return; - case 59: + case APPEALSTATE_WAIT_MON_MOVE_IGNORED_MSG: if (!Contest_RunTextPrinters()) { ContestClearGeneralTextWindow(); - gTasks[taskId].tState = 55; + gTasks[taskId].tState = APPEALSTATE_SLIDE_APPLAUSE_OUT; } return; - case 33: - if (eContestantStatus[r6].hasJudgesAttention) - eContestantStatus[r6].hasJudgesAttention = 0; - sub_80DC9B4(r6); - StringCopy(gStringVar1, gContestMons[r6].nickname); - StringCopy(gStringVar2, gMoveNames[eContestantStatus[r6].currMove]); + case APPEALSTATE_PRINT_TOO_NERVOUS_MSG: + if (eContestantStatus[contestant].hasJudgesAttention) + eContestantStatus[contestant].hasJudgesAttention = FALSE; + StartStopFlashJudgeAttentionEye(contestant); + StringCopy(gStringVar1, gContestMons[contestant].nickname); + StringCopy(gStringVar2, gMoveNames[eContestantStatus[contestant].currMove]); StringExpandPlaceholders(gStringVar4, gText_MonWasTooNervousToMove); Contest_StartTextPrinter(gStringVar4, TRUE); - gTasks[taskId].tState = 34; + gTasks[taskId].tState = APPEALSTATE_WAIT_TOO_NERVOUS_MSG; return; - case 34: + case APPEALSTATE_WAIT_TOO_NERVOUS_MSG: if (!Contest_RunTextPrinters()) - gTasks[taskId].tState = 55; + gTasks[taskId].tState = APPEALSTATE_SLIDE_APPLAUSE_OUT; return; - case 55: - TryMoveApplauseMeterOffscreen(); - gTasks[taskId].tState = 56; + case APPEALSTATE_SLIDE_APPLAUSE_OUT: + SlideApplauseMeterOut(); + gTasks[taskId].tState = APPEALSTATE_WAIT_SLIDE_APPLAUSE; return; - case 56: + case APPEALSTATE_WAIT_SLIDE_APPLAUSE: if (!eContest.applauseMeterIsMoving) { if (eContest.applauseLevel > 4) @@ -2241,68 +2377,68 @@ static void Task_DoAppeals(u8 taskId) eContest.applauseLevel = 0; UpdateApplauseMeter(); } - gTasks[taskId].tState = 10; + gTasks[taskId].tState = APPEALSTATE_SLIDE_MON_OUT; } return; - case 10: - spriteId = gTasks[taskId].data[2]; - gSprites[spriteId].callback = sub_80DA164; - gTasks[taskId].tState = 11; + case APPEALSTATE_SLIDE_MON_OUT: + spriteId = gTasks[taskId].tMonSpriteId; + gSprites[spriteId].callback = SpriteCB_MonSlideOut; + gTasks[taskId].tState = APPEALSTATE_FREE_MON_SPRITE; return; - case 11: - spriteId = gTasks[taskId].data[2]; + case APPEALSTATE_FREE_MON_SPRITE: + spriteId = gTasks[taskId].tMonSpriteId; if (gSprites[spriteId].invisible) { FreeSpriteOamMatrix(&gSprites[spriteId]); DestroySprite(&gSprites[spriteId]); - gTasks[taskId].tState = 20; + gTasks[taskId].tState = APPEALSTATE_START_TURN_END_DELAY; } return; - case 20: - gTasks[taskId].data[10] = 0; - gTasks[taskId].tState = 21; + case APPEALSTATE_START_TURN_END_DELAY: + gTasks[taskId].tCounter = 0; + gTasks[taskId].tState = APPEALSTATE_TURN_END_DELAY; return; - case 31: + case APPEALSTATE_PRINT_SKIP_TURN_MSG: ContestClearGeneralTextWindow(); - StringCopy(gStringVar1, gContestMons[r6].nickname); + StringCopy(gStringVar1, gContestMons[contestant].nickname); StringExpandPlaceholders(gStringVar4, gText_MonWasWatchingOthers); Contest_StartTextPrinter(gStringVar4, TRUE); - gTasks[taskId].tState = 32; + gTasks[taskId].tState = APPEALSTATE_WAIT_SKIP_TURN_MSG; return; - case 32: + case APPEALSTATE_WAIT_SKIP_TURN_MSG: if (!Contest_RunTextPrinters()) - gTasks[taskId].tState = 21; + gTasks[taskId].tState = APPEALSTATE_TURN_END_DELAY; return; - case 21: - if (++gTasks[taskId].data[10] > 29) + case APPEALSTATE_TURN_END_DELAY: + if (++gTasks[taskId].tCounter > 29) { - gTasks[taskId].data[10] = 0; - gTasks[taskId].tState = 22; + gTasks[taskId].tCounter = 0; + gTasks[taskId].tState = APPEALSTATE_START_NEXT_TURN; } return; - case 22: + case APPEALSTATE_START_NEXT_TURN: if (++eContest.turnNumber == CONTESTANT_COUNT) { gTasks[taskId].tState = 0; gTasks[taskId].data[1] = 0; - gTasks[taskId].data[2] = 0; - gTasks[taskId].func = sub_80DA198; + gTasks[taskId].tMonSpriteId = 0; + gTasks[taskId].func = Task_FinishRoundOfAppeals; } else { - gTasks[taskId].tState = 0; + gTasks[taskId].tState = APPEALSTATE_START_TURN; } return; } } -static void sub_80DA110(u8 taskId) +static void Task_EndWaitForLink(u8 taskId) { - eContest.unk1920B_2 = 0; + eContest.waitForLink = FALSE; DestroyTask(taskId); } -static void sub_80DA134(struct Sprite *sprite) +static void SpriteCB_MonSlideIn(struct Sprite *sprite) { if (sprite->pos2.x != 0) { @@ -2318,7 +2454,7 @@ static void sub_80DA134(struct Sprite *sprite) } } -static void sub_80DA164(struct Sprite *sprite) +static void SpriteCB_MonSlideOut(struct Sprite *sprite) { sprite->pos2.x -= 6; if (sprite->pos1.x + sprite->pos2.x < -32) @@ -2328,7 +2464,7 @@ static void sub_80DA164(struct Sprite *sprite) } } -static void sub_80DA198(u8 taskId) +static void Task_FinishRoundOfAppeals(u8 taskId) { switch (gTasks[taskId].data[0]) { @@ -2337,14 +2473,14 @@ static void sub_80DA198(u8 taskId) { u8 taskId2; - eContest.unk1920B_2 = 1; + eContest.waitForLink = TRUE; if (IsPlayerLinkLeader()) { RankContestants(); SetAttentionLevels(); } taskId2 = CreateTask(sub_80FCC88, 0); - SetTaskFuncWithFollowupFunc(taskId2, sub_80FCC88, sub_80DA110); + SetTaskFuncWithFollowupFunc(taskId2, sub_80FCC88, Task_EndWaitForLink); ContestPrintLinkStandby(); gTasks[taskId].data[0] = 1; } @@ -2356,25 +2492,25 @@ static void sub_80DA198(u8 taskId) } break; case 1: - if (!eContest.unk1920B_2) + if (!eContest.waitForLink) gTasks[taskId].data[0] = 2; break; case 2: gTasks[taskId].data[0] = 0; - gTasks[taskId].func = sub_80DA25C; + gTasks[taskId].func = Task_ReadyUpdateHeartSliders; break; } } -static void sub_80DA25C(u8 taskId) +static void Task_ReadyUpdateHeartSliders(u8 taskId) { - sub_80DE008(FALSE); + ShowHideNextTurnGfx(FALSE); gTasks[taskId].data[0] = 0; gTasks[taskId].data[1] = 0; - gTasks[taskId].func = sub_80DA28C; + gTasks[taskId].func = Task_UpdateHeartSliders; } -static void sub_80DA28C(u8 taskId) +static void Task_UpdateHeartSliders(u8 taskId) { switch (gTasks[taskId].data[0]) { @@ -2400,12 +2536,12 @@ static void sub_80DA28C(u8 taskId) UpdateHeartSliders(); gTasks[taskId].data[0] = 0; gTasks[taskId].data[1] = 0; - gTasks[taskId].func = sub_80DA31C; + gTasks[taskId].func = Task_WaitForHeartSliders; break; } } -static void sub_80DA31C(u8 taskId) +static void Task_WaitForHeartSliders(u8 taskId) { if (SlidersDoneUpdating()) gTasks[taskId].func = sub_80DA348; @@ -2425,11 +2561,11 @@ static void sub_80DA38C(u8 taskId) { gTasks[taskId].data[0] = 0; if (--gTasks[taskId].data[1] == 0) - gTasks[taskId].func = sub_80DA3CC; + gTasks[taskId].func = Task_PrintRoundResultText; } } -static void sub_80DA3CC(u8 taskId) +static void Task_PrintRoundResultText(u8 taskId) { if (gTasks[taskId].data[0] == 0) { @@ -2446,44 +2582,44 @@ static void sub_80DA3CC(u8 taskId) if (!Contest_RunTextPrinters()) { gTasks[taskId].data[0] = 0; - gTasks[taskId].func = sub_80DA464; + gTasks[taskId].func = Task_ReUpdateHeartSliders; ContestDebugDoPrint(); } } } -static void sub_80DA464(u8 taskId) +static void Task_ReUpdateHeartSliders(u8 taskId) { if (gTasks[taskId].data[0]++ > 29) { gTasks[taskId].data[0] = 0; - UpdateHeartSliders(); - gTasks[taskId].func = sub_80DA49C; + UpdateHeartSliders(); // ? Sliders have already been updated + gTasks[taskId].func = Task_WaitForHeartSlidersAgain; } } -static void sub_80DA49C(u8 taskId) +static void Task_WaitForHeartSlidersAgain(u8 taskId) { if (SlidersDoneUpdating()) { gTasks[taskId].data[0] = 0; - gTasks[taskId].func = sub_80DA4CC; + gTasks[taskId].func = Task_DropCurtainAtRoundEnd; } } -static void sub_80DA4CC(u8 taskId) +static void Task_DropCurtainAtRoundEnd(u8 taskId) { - sub_80DE224(); - gTasks[taskId].func = sub_80DE424; + SetBgForCurtainDrop(); + gTasks[taskId].func = Task_StartDropCurtainAtRoundEnd; } -static void sub_80DA4F4(u8 taskId) +static void Task_UpdateContestantBoxOrder(u8 taskId) { - sub_80DE350(); - gTasks[taskId].func = sub_80DA51C; + UpdateContestantBoxOrder(); + gTasks[taskId].func = Task_TryStartNextRoundOfAppeals; } -static void sub_80DA51C(u8 taskId) +static void Task_TryStartNextRoundOfAppeals(u8 taskId) { vu16 sp0 = GetGpuReg(REG_OFFSET_BG0CNT); vu16 sp2 = GetGpuReg(REG_OFFSET_BG2CNT); @@ -2498,12 +2634,12 @@ static void sub_80DA51C(u8 taskId) } else { - StartMoveApplauseMeterOnscreen(); - gTasks[taskId].func = sub_80DA5B4; + SlideApplauseMeterIn(); + gTasks[taskId].func = Task_StartNewRoundOfAppeals; } } -static void sub_80DA5B4(u8 taskId) +static void Task_StartNewRoundOfAppeals(u8 taskId) { if (!eContest.applauseMeterIsMoving) gTasks[taskId].func = Task_DisplayAppealNumberText; @@ -2538,16 +2674,16 @@ static void Task_WaitForOutOfTimeMsg(u8 taskId) { if (!Contest_RunTextPrinters()) { - sub_80DE224(); + SetBgForCurtainDrop(); gBattle_BG1_X = 0; gBattle_BG1_Y = 160; PlaySE12WithPanning(SE_C_MAKU_D, 0); gTasks[taskId].data[0] = 0; - gTasks[taskId].func = Task_CoverAppealPanelForEnd; + gTasks[taskId].func = Task_DropCurtainAtAppealsEnd; } } -static void Task_CoverAppealPanelForEnd(u8 taskId) +static void Task_DropCurtainAtAppealsEnd(u8 taskId) { gBattle_BG1_Y -= 7; if ((s16)gBattle_BG1_Y < 0) @@ -2947,25 +3083,25 @@ void CalculateRound1Points(u8 contestCategory) gContestMonRound1Points[i] = CalculateContestantRound1Points(i, contestCategory); } -static u8 sub_80DB0C4(void) +static u8 CreateJudgeSprite(void) { u8 spriteId; - LoadCompressedSpriteSheet(&gUnknown_08587C00); + LoadCompressedSpriteSheet(&sSpriteSheet_Judge); LoadCompressedPalette(gContest2Pal, 0x110, 32); - spriteId = CreateSprite(&gSpriteTemplate_8587BE8, 112, 36, 30); + spriteId = CreateSprite(&sSpriteTemplate_Judge, 112, 36, 30); gSprites[spriteId].oam.paletteNum = 1; gSprites[spriteId].callback = SpriteCallbackDummy; return spriteId; } -static u8 sub_80DB120(void) +static u8 CreateJudgeSpeechBubbleSprite(void) { u8 spriteId; LoadCompressedSpriteSheet(&sSpriteSheet_JudgeSymbols); - LoadCompressedSpritePalette(&gUnknown_08587C10); - spriteId = CreateSprite(&gSpriteTemplate_8587C18, 96, 10, 29); + LoadCompressedSpritePalette(&sSpritePalette_JudgeSymbols); + spriteId = CreateSprite(&sSpriteTemplate_JudgeSpeechBubble, 96, 10, 29); gSprites[spriteId].invisible = TRUE; gSprites[spriteId].data[0] = gSprites[spriteId].oam.tileNum; return spriteId; @@ -2977,9 +3113,9 @@ static u8 CreateContestantSprite(u16 species, u32 otId, u32 personality, u32 ind species = SanitizeSpecies(species); if (index == gContestPlayerMonIndex) - HandleLoadSpecialPokePic_2(gMonBackPicTable + species, gMonSpritesGfxPtr->sprites[0], species, personality); + HandleLoadSpecialPokePic_2(&gMonBackPicTable[species], gMonSpritesGfxPtr->sprites[0], species, personality); else - HandleLoadSpecialPokePic_DontHandleDeoxys(gMonBackPicTable + species, gMonSpritesGfxPtr->sprites[0], species, personality); + HandleLoadSpecialPokePic_DontHandleDeoxys(&gMonBackPicTable[species], gMonSpritesGfxPtr->sprites[0], species, personality); LoadCompressedPalette(GetMonSpritePalFromSpeciesAndPersonality(species, otId, personality), 0x120, 0x20); SetMultiuseSpriteTemplateToPokemon(species, 0); @@ -3017,27 +3153,28 @@ static void SwapMoveDescAndContestTilemaps(void) CpuCopy16(gContestResources->contestBgTilemaps[2], gContestResources->contestBgTilemaps[2] + 0x500, 32 * 20); } -static u16 sub_80DB2EC(u16 a0, u8 a1) +// Functionally unused +static u16 GetMoveEffectSymbolTileOffset(u16 move, u8 contestant) { - u16 var; + u16 offset; - switch (gContestEffects[gContestMoves[a0].effect].effectType) + switch (gContestEffects[gContestMoves[move].effect].effectType) { case 0: case 1: case 8: - var = 0x9082; + offset = 0x9082; break; case 2: case 3: - var = 0x9088; + offset = 0x9088; break; default: - var = 0x9086; + offset = 0x9086; break; } - var += 0x9000 + (a1 << 12); - return var; + offset += 0x9000 + (contestant << 12); + return offset; } static void PrintContestMoveDescription(u16 a) @@ -3084,53 +3221,54 @@ static void PrintContestMoveDescription(u16 a) // Empty hearts ContestBG_FillBoxWithTile(0, 0x5014, 0x15, 0x20, numHearts, 0x01, 0x11); - FillWindowPixelBuffer(CONTEST_WINDOW_MOVE_DESCRIPTION, PIXEL_FILL(0)); - Contest_PrintTextToBg0WindowStd(CONTEST_WINDOW_MOVE_DESCRIPTION, gContestEffectDescriptionPointers[gContestMoves[a].effect]); - Contest_PrintTextToBg0WindowStd(CONTEST_WINDOW_SLASH, gText_Slash); + FillWindowPixelBuffer(WIN_MOVE_DESCRIPTION, PIXEL_FILL(0)); + Contest_PrintTextToBg0WindowStd(WIN_MOVE_DESCRIPTION, gContestEffectDescriptionPointers[gContestMoves[a].effect]); + Contest_PrintTextToBg0WindowStd(WIN_SLASH, gText_Slash); } -static void sub_80DB4E0(u16 move, u8 b) +static void DrawMoveEffectSymbol(u16 move, u8 contestant) { - u8 r7 = gContestantTurnOrder[b] * 5 + 2; + u8 contestantOffset = gContestantTurnOrder[contestant] * 5 + 2; - if (!Contest_IsMonsTurnDisabled(b) && move != MOVE_NONE) + if (!Contest_IsMonsTurnDisabled(contestant) && move != MOVE_NONE) { - u16 tile = sub_80DB2EC(move, b); + u16 tile = GetMoveEffectSymbolTileOffset(move, contestant); - ContestBG_FillBoxWithIncrementingTile(0, tile, 20, r7, 2, 1, 17, 1); - ContestBG_FillBoxWithIncrementingTile(0, tile + 16, 20, r7 + 1, 2, 1, 17, 1); + ContestBG_FillBoxWithIncrementingTile(0, tile, 20, contestantOffset, 2, 1, 17, 1); + ContestBG_FillBoxWithIncrementingTile(0, tile + 16, 20, contestantOffset + 1, 2, 1, 17, 1); } else { - ContestBG_FillBoxWithTile(0, 0, 20, r7, 2, 2, 17); + ContestBG_FillBoxWithTile(0, 0, 20, contestantOffset, 2, 2, 17); } } -static void sub_80DB584(void) +// Unused +static void DrawMoveEffectSymbols(void) { s32 i; for (i = 0; i < CONTESTANT_COUNT; i++) - sub_80DB4E0(eContestantStatus[i].currMove, i); + DrawMoveEffectSymbol(eContestantStatus[i].currMove, i); } -static u16 sub_80DB5B0(void) +static u16 GetStarTileOffset(void) { return 0x2034; } -static bool8 sub_80DB5B8(u8 contestantIdx, bool8 resetMod) +static bool8 UpdateConditionStars(u8 contestantIdx, bool8 resetMod) { - u8 r6; - s32 r4; + u8 contestantOffset; + s32 numStars; if (eContestantStatus[contestantIdx].conditionMod == 0) return FALSE; - r6 = gContestantTurnOrder[contestantIdx] * 5 + 2; - r4 = eContestantStatus[contestantIdx].condition / 10; + contestantOffset = gContestantTurnOrder[contestantIdx] * 5 + 2; + numStars = eContestantStatus[contestantIdx].condition / 10; if (eContestantStatus[contestantIdx].conditionMod == 1) { - ContestBG_FillBoxWithTile(0, sub_80DB5B0(), 19, r6, 1, r4, 17); + ContestBG_FillBoxWithTile(0, GetStarTileOffset(), 19, contestantOffset, 1, numStars, 17); if (resetMod) { PlaySE(SE_EXPMAX); @@ -3139,7 +3277,7 @@ static bool8 sub_80DB5B8(u8 contestantIdx, bool8 resetMod) } else { - ContestBG_FillBoxWithTile(0, 0, 19, r6 + r4, 1, 3 - r4, 17); + ContestBG_FillBoxWithTile(0, 0, 19, contestantOffset + numStars, 1, 3 - numStars, 17); if (resetMod) { PlaySE(SE_FU_ZAKU2); @@ -3149,86 +3287,90 @@ static bool8 sub_80DB5B8(u8 contestantIdx, bool8 resetMod) return TRUE; } -static void sub_80DB69C(void) +static void DrawConditionStars(void) { s32 i; - s32 r6; + s32 numStars; for (i = 0; i < CONTESTANT_COUNT; i++) { - u8 r4 = gContestantTurnOrder[i] * 5 + 2; - u16 r5 = sub_80DB5B0(); + u8 contestantOffset = gContestantTurnOrder[i] * 5 + 2; + u16 starOffset = GetStarTileOffset(); - r6 = eContestantStatus[i].condition / 10; - ContestBG_FillBoxWithTile(0, r5, 19, r4, 1, r6, 17); - ContestBG_FillBoxWithTile(0, 0, 19, r4 + r6, 1, 3 - r6, 17); + numStars = eContestantStatus[i].condition / 10; + ContestBG_FillBoxWithTile(0, starOffset, 19, contestantOffset, 1, numStars, 17); + ContestBG_FillBoxWithTile(0, 0, 19, contestantOffset + numStars, 1, 3 - numStars, 17); } } -static u16 sub_80DB748(u8 status) +static u16 GetStatusSymbolTileOffset(u8 status) { - u16 var = 0; + u16 offset = 0; switch (status) { - case 0: - var = 0x80; + case STAT_SYMBOL_CIRCLE: // For resistant + offset = 0x80; break; - case 1: - var = 0x84; + case STAT_SYMBOL_WAVE: // For nervous + offset = 0x84; break; - case 2: - var = 0x86; + case STAT_SYMBOL_X: // For turn skipped + offset = 0x86; break; - case 3: - var = 0x88; + case STAT_SYMBOL_SWIRL: // For jammed/unnerved + offset = 0x88; break; - case 4: - var = 0x82; + case STAT_SYMBOL_SQUARE: // Never used + offset = 0x82; break; } - var += 0x9000; - return var; + offset += 0x9000; + return offset; } -static bool8 sub_80DB798(u8 a) +static bool8 DrawStatusSymbol(u8 contestant) { - bool8 r9 = TRUE; - u16 r8 = 0; - u8 r7 = gContestantTurnOrder[a] * 5 + 2; + bool8 statused = TRUE; + u16 symbolOffset = 0; + u8 contestantOffset = gContestantTurnOrder[contestant] * 5 + 2; - if (eContestantStatus[a].resistant || eContestantStatus[a].immune || eContestantStatus[a].jamSafetyCount != 0 || eContestantStatus[a].jamReduction != 0) - r8 = sub_80DB748(0); - else if (eContestantStatus[a].nervous) - r8 = sub_80DB748(1); - else if (eContestantStatus[a].numTurnsSkipped != 0 || eContestantStatus[a].noMoreTurns) - r8 = sub_80DB748(2); + if (eContestantStatus[contestant].resistant + || eContestantStatus[contestant].immune + || eContestantStatus[contestant].jamSafetyCount != 0 + || eContestantStatus[contestant].jamReduction != 0) + symbolOffset = GetStatusSymbolTileOffset(STAT_SYMBOL_CIRCLE); + else if (eContestantStatus[contestant].nervous) + symbolOffset = GetStatusSymbolTileOffset(STAT_SYMBOL_WAVE); + else if (eContestantStatus[contestant].numTurnsSkipped != 0 || eContestantStatus[contestant].noMoreTurns) + symbolOffset = GetStatusSymbolTileOffset(STAT_SYMBOL_X); else - r9 = FALSE; - if (r9) + statused = FALSE; + + if (statused) { - ContestBG_FillBoxWithIncrementingTile(0, r8, 20, r7, 2, 1, 17, 1); - ContestBG_FillBoxWithIncrementingTile(0, r8 + 16, 20, r7 + 1, 2, 1, 17, 1); + ContestBG_FillBoxWithIncrementingTile(0, symbolOffset, 20, contestantOffset, 2, 1, 17, 1); + ContestBG_FillBoxWithIncrementingTile(0, symbolOffset + 16, 20, contestantOffset + 1, 2, 1, 17, 1); } else { - ContestBG_FillBoxWithTile(0, 0, 20, r7, 2, 2, 17); + ContestBG_FillBoxWithTile(0, 0, 20, contestantOffset, 2, 2, 17); } - return r9; + return statused; } -static void sub_80DB884(void) +static void DrawStatusSymbols(void) { s32 i; for (i = 0; i < CONTESTANT_COUNT; i++) - sub_80DB798(i); + DrawStatusSymbol(i); } static void ContestClearGeneralTextWindow(void) { - FillWindowPixelBuffer(CONTEST_WINDOW_GENERAL_TEXT, PIXEL_FILL(0)); - CopyWindowToVram(CONTEST_WINDOW_GENERAL_TEXT, 2); + FillWindowPixelBuffer(WIN_GENERAL_TEXT, PIXEL_FILL(0)); + CopyWindowToVram(WIN_GENERAL_TEXT, 2); Contest_SetBgCopyFlags(0); } @@ -3271,16 +3413,14 @@ static void RankContestants(void) } // Sort the point totals using bubble-sort. - for (i = 0; i < 3; i++) + for (i = 0; i < CONTESTANT_COUNT - 1; i++) { - for (j = 3; j > i; j--) + for (j = CONTESTANT_COUNT - 1; j > i; j--) { if (arr[j - 1] < arr[j]) { - u16 temp = arr[j]; - - arr[j] = arr[j - 1]; - arr[j - 1] = temp; + u16 temp; + SWAP(arr[j], arr[j - 1], temp); } } } @@ -3342,7 +3482,7 @@ static bool8 ContestantCanUseTurn(u8 contestant) return TRUE; } -static void sub_80DBAA0(void) +static void ResetContestantStatuses(void) { s32 i; @@ -3420,18 +3560,17 @@ static s16 GetContestantRound2Points(u8 contestant) static void DetermineFinalStandings(void) { u16 randomOrdering[CONTESTANT_COUNT] = {0}; - struct UnknownContestStruct6 sp8[CONTESTANT_COUNT]; + struct ContestFinalStandings standings[CONTESTANT_COUNT]; s32 i; - s32 j; + // Seed random order in case of ties for (i = 0; i < CONTESTANT_COUNT; i++) { - s32 r2; - + s32 j; randomOrdering[i] = Random(); - for (r2 = 0; r2 < i; r2++) + for (j = 0; j < i; j++) { - if (randomOrdering[i] == randomOrdering[r2]) + if (randomOrdering[i] == randomOrdering[j]) { i--; break; @@ -3439,42 +3578,47 @@ static void DetermineFinalStandings(void) } } + // Init data for ranking contestants for (i = 0; i < CONTESTANT_COUNT; i++) { - sp8[i].unk0 = gContestMonTotalPoints[i]; - sp8[i].unk4 = gContestMonRound1Points[i]; - sp8[i].unk8 = randomOrdering[i]; - sp8[i].unkC = i; + standings[i].totalPoints = gContestMonTotalPoints[i]; + standings[i].round1Points = gContestMonRound1Points[i]; + standings[i].random = randomOrdering[i]; + standings[i].contestant = i; } - for (i = 0; i < 3; i++) + // Rank contestants + for (i = 0; i < CONTESTANT_COUNT - 1; i++) { - for (j = 3; j > i; j--) + s32 j; + for (j = CONTESTANT_COUNT - 1; j > i; j--) { - if (sub_80DBF30(j - 1, j, sp8)) + if (DidContestantPlaceHigher(j - 1, j, standings)) { - struct UnknownContestStruct6 temp; + // Swap contestants in array + struct ContestFinalStandings temp; - temp.unk0 = sp8[j - 1].unk0; - temp.unk4 = sp8[j - 1].unk4; - temp.unk8 = sp8[j - 1].unk8; - temp.unkC = sp8[j - 1].unkC; + temp.totalPoints = standings[j - 1].totalPoints; + temp.round1Points = standings[j - 1].round1Points; + temp.random = standings[j - 1].random; + temp.contestant = standings[j - 1].contestant; - sp8[j - 1].unk0 = sp8[j].unk0; - sp8[j - 1].unk4 = sp8[j].unk4; - sp8[j - 1].unk8 = sp8[j].unk8; - sp8[j - 1].unkC = sp8[j].unkC; + standings[j - 1].totalPoints = standings[j].totalPoints; + standings[j - 1].round1Points = standings[j].round1Points; + standings[j - 1].random = standings[j].random; + standings[j - 1].contestant = standings[j].contestant; - sp8[j].unk0 = temp.unk0; - sp8[j].unk4 = temp.unk4; - sp8[j].unk8 = temp.unk8; - sp8[j].unkC = temp.unkC; + standings[j].totalPoints = temp.totalPoints; + standings[j].round1Points = temp.round1Points; + standings[j].random = temp.random; + standings[j].contestant = temp.contestant; } } } + // Assign placements. i is the placing (0 is 1st, 1 is 2nd...) for (i = 0; i < CONTESTANT_COUNT; i++) - gContestFinalStandings[sp8[i].unkC] = i; + gContestFinalStandings[standings[i].contestant] = i; } void SaveLinkContestResults(void) @@ -3488,19 +3632,22 @@ void SaveLinkContestResults(void) } } -static bool8 sub_80DBF30(s32 a, s32 b, struct UnknownContestStruct6 *c) +static bool8 DidContestantPlaceHigher(s32 a, s32 b, struct ContestFinalStandings *standings) { bool8 retVal; - if (c[a].unk0 < c[b].unk0) + // Rank contestants first based on total points + if (standings[a].totalPoints < standings[b].totalPoints) retVal = TRUE; - else if (c[a].unk0 > c[b].unk0) + else if (standings[a].totalPoints > standings[b].totalPoints) retVal = FALSE; - else if (c[a].unk4 < c[b].unk4) + // If tied, rank on round 1 points + else if (standings[a].round1Points < standings[b].round1Points) retVal = TRUE; - else if (c[a].unk4 > c[b].unk4) + else if (standings[a].round1Points > standings[b].round1Points) retVal = FALSE; - else if (c[a].unk8 < c[b].unk8) + // If tied again, choose randomly + else if (standings[a].random < standings[b].random) retVal = TRUE; else retVal = FALSE; @@ -3520,147 +3667,161 @@ static void FillContestantWindowBgs(void) int i; for(i = 0; i < CONTESTANT_COUNT; i++) - { ContestBG_FillBoxWithTile(0, 0, 0x16, 2 + i * 5, 8, 2, 0x11); - } } -static u16 sub_80DBFC8(u8 a) +static u16 GetAppealHeartTileOffset(u8 contestant) { - u16 var; + u16 offset; - if (a == 0) - var = 0x5011; - else if (a == 1) - var = 0x6011; - else if (a == 2) - var = 0x7011; + if (contestant == 0) + offset = 0x5011; + else if (contestant == 1) + offset = 0x6011; + else if (contestant == 2) + offset = 0x7011; else - var = 0x8011; - return var + 1; + offset = 0x8011; + return offset + 1; } -static s8 sub_80DBFFC(s16 a) +static s8 GetNumHeartsFromAppealPoints(s16 appeal) { - s8 retVal = a / 10; + s8 hearts = appeal / 10; - if (retVal > 16) - retVal = 16; - else if (retVal < -16) - retVal = -16; - return retVal; + if (hearts > 16) + hearts = 16; + else if (hearts < -16) + hearts = -16; + return hearts; } -static u8 sub_80DC028(s16 a, s16 b, u8 c) +#define tNumHearts data[0] +#define tHeartsDelta data[1] +#define tHeartsSign data[2] +#define tContestant data[3] +#define tDelayTimer data[10] + +static u8 UpdateAppealHearts(s16 startAppeal, s16 endAppeal, u8 contestant) { u8 taskId; - s8 r4; - s8 r5; + s8 startHearts; + s8 heartsDelta; - gContestResources->field_14[c].unk2_2 = 1; - taskId = CreateTask(sub_80DC0F4, 20); - r4 = sub_80DBFFC(a); - r5 = sub_80DBFFC(a + b) - r4; - sub_80DBFC8(c); // unused return value - gTasks[taskId].data[0] = abs(r4); - gTasks[taskId].data[1] = r5; - if (r4 > 0 || (r4 == 0 && r5 > 0)) - gTasks[taskId].data[2] = 1; + gContestResources->field_14[contestant].updatingAppealHearts = TRUE; + taskId = CreateTask(Task_UpdateAppealHearts, 20); + startHearts = GetNumHeartsFromAppealPoints(startAppeal); + heartsDelta = GetNumHeartsFromAppealPoints(startAppeal + endAppeal) - startHearts; + GetAppealHeartTileOffset(contestant); // unused return value + gTasks[taskId].tNumHearts = abs(startHearts); + gTasks[taskId].tHeartsDelta = heartsDelta; + if (startHearts > 0 || (startHearts == 0 && heartsDelta > 0)) + gTasks[taskId].tHeartsSign = 1; else - gTasks[taskId].data[2] = -1; - gTasks[taskId].data[3] = c; + gTasks[taskId].tHeartsSign = -1; + gTasks[taskId].tContestant = contestant; return taskId; } -static void sub_80DC0F4(u8 taskId) +static void Task_UpdateAppealHearts(u8 taskId) { - u8 r7 = gTasks[taskId].data[3]; - s16 r3 = gTasks[taskId].data[0]; - s16 r1 = gTasks[taskId].data[1]; + u8 contestant = gTasks[taskId].tContestant; + s16 startHearts = gTasks[taskId].tNumHearts; + s16 heartsDelta = gTasks[taskId].tHeartsDelta; - if (++gTasks[taskId].data[10] > 14) + if (++gTasks[taskId].tDelayTimer > 14) { - u16 r6; - u8 r5; - u8 r10; - u8 r11; + u16 heartOffset; + u8 newNumHearts; + u8 pitchMod; + bool8 onSecondLine; - gTasks[taskId].data[10] = 0; - if (gTasks[taskId].data[1] == 0) + gTasks[taskId].tDelayTimer = 0; + if (gTasks[taskId].tHeartsDelta == 0) { + // No more hearts to add/remove, end DestroyTask(taskId); - gContestResources->field_14[r7].unk2_2 = 0; + gContestResources->field_14[contestant].updatingAppealHearts = FALSE; return; } - else if (r3 == 0) + else if (startHearts == 0) { - if (r1 < 0) + if (heartsDelta < 0) { - r6 = sub_80DBFC8(r7) + 2; - gTasks[taskId].data[1]++; + // Losing hearts, get black heart offset + heartOffset = GetAppealHeartTileOffset(contestant) + 2; + gTasks[taskId].tHeartsDelta++; } else { - r6 = sub_80DBFC8(r7); - gTasks[taskId].data[1]--; + // Gaining hearts, get red heart offset + heartOffset = GetAppealHeartTileOffset(contestant); + gTasks[taskId].tHeartsDelta--; } - r5 = gTasks[taskId].data[0]++; + newNumHearts = gTasks[taskId].tNumHearts++; } else { - if (gTasks[taskId].data[2] < 0) + if (gTasks[taskId].tHeartsSign < 0) { - if (r1 < 0) + // Hearts currently black (negative) + if (heartsDelta < 0) { - r5 = gTasks[taskId].data[0]++; - gTasks[taskId].data[1]++; - r6 = sub_80DBFC8(r7) + 2; + // Losing points, add black heart + newNumHearts = gTasks[taskId].tNumHearts++; + gTasks[taskId].tHeartsDelta++; + heartOffset = GetAppealHeartTileOffset(contestant) + 2; } else { - r5 = --gTasks[taskId].data[0]; - r6 = 0; - gTasks[taskId].data[1]--; + // Gaining points, remove black heart + newNumHearts = --gTasks[taskId].tNumHearts; + heartOffset = 0; + gTasks[taskId].tHeartsDelta--; } } else { - if (r1 < 0) + // Hearts currently red (positive) + if (heartsDelta < 0) { - r5 = --gTasks[taskId].data[0]; - r6 = 0; - gTasks[taskId].data[1]++; + // Losing points, remove red heart + newNumHearts = --gTasks[taskId].tNumHearts; + heartOffset = 0; + gTasks[taskId].tHeartsDelta++; } else { - r5 = gTasks[taskId].data[0]++; - gTasks[taskId].data[1]--; - r6 = sub_80DBFC8(r7); + // Gaining points, add red heart + newNumHearts = gTasks[taskId].tNumHearts++; + gTasks[taskId].tHeartsDelta--; + heartOffset = GetAppealHeartTileOffset(contestant); } } } - r10 = r5; - r11 = 0; + pitchMod = newNumHearts; + onSecondLine = FALSE; - if (r5 > 7) + // Check if wrapping to second line of hearts + if (newNumHearts > 7) { - r11 = 1; - r5-= 8; + onSecondLine = TRUE; + newNumHearts -= 8; } - ContestBG_FillBoxWithTile(0, r6, r5 + 22, gContestantTurnOrder[r7] * 5 + 2 + r11, 1, 1, 17); - if (r1 > 0) + ContestBG_FillBoxWithTile(0, heartOffset, newNumHearts + 22, gContestantTurnOrder[contestant] * 5 + 2 + onSecondLine, 1, 1, 17); + if (heartsDelta > 0) { PlaySE(SE_C_GAJI); m4aMPlayImmInit(&gMPlayInfo_SE1); - m4aMPlayPitchControl(&gMPlayInfo_SE1, 0xFFFF, r10 * 256); + m4aMPlayPitchControl(&gMPlayInfo_SE1, 0xFFFF, pitchMod * 256); } else { PlaySE(SE_BOO); } - if (!r11 && !r5 && !r6) - gTasks[taskId].data[2] = -gTasks[taskId].data[2]; + if (!onSecondLine && newNumHearts == 0 && heartOffset == 0) + gTasks[taskId].tHeartsSign = -gTasks[taskId].tHeartsSign; } } @@ -3759,7 +3920,7 @@ static void SetBottomSliderHeartsInvisibility(bool8 invisible) for (i = 0; i < CONTESTANT_COUNT; i++) { - // The contestants that go 3rd and 4th should be moved + // Skip the top two contestants sliders if (gContestantTurnOrder[i] > 1) { if (!invisible) @@ -3791,73 +3952,72 @@ static void CreateApplauseMeterSprite(void) { u8 spriteId; - LoadCompressedSpriteSheet(&sApplauseMeterSpriteSheet); - LoadSpritePalette(&sApplauseMeterPalette); - spriteId = CreateSprite(&sApplauseMeterSpriteTemplate, 30, 44, 1); + LoadCompressedSpriteSheet(&sSpriteSheet_ApplauseMeter); + LoadSpritePalette(&sSpritePalette_ApplauseMeter); + spriteId = CreateSprite(&sSpriteTemplate_ApplauseMeter, 30, 44, 1); gSprites[spriteId].invisible = TRUE; eContest.applauseMeterSpriteId = spriteId; } -static void sub_80DC5E8(void) +static void CreateJudgeAttentionEyeTask(void) { u8 i; - u8 taskId = CreateTask(sub_80DC728, 30); + u8 taskId = CreateTask(Task_FlashJudgeAttentionEye, 30); - eContest.unk19211 = taskId; + eContest.judgeAttentionTaskId = taskId; for (i = 0; i < CONTESTANT_COUNT; i++) gTasks[taskId].data[i * 4] = 0xFF; } -static void sub_80DC630(u8 a) +static void StartFlashJudgeAttentionEye(u8 contestant) { - gTasks[eContest.unk19211].data[a * 4 + 0] = 0; - gTasks[eContest.unk19211].data[a * 4 + 1] = 0; + gTasks[eContest.judgeAttentionTaskId].data[contestant * 4 + 0] = 0; + gTasks[eContest.judgeAttentionTaskId].data[contestant * 4 + 1] = 0; } -static void sub_80DC674(u8 a) +static void StopFlashJudgeAttentionEye(u8 contestant) { - u8 taskId = CreateTask(sub_80DC6A4, 31); - - gTasks[taskId].data[0] = a; + u8 taskId = CreateTask(Task_StopFlashJudgeAttentionEye, 31); + gTasks[taskId].data[0] = contestant; } -static void sub_80DC6A4(u8 taskId) +static void Task_StopFlashJudgeAttentionEye(u8 taskId) { - u8 r4 = gTasks[taskId].data[0]; + u8 contestant = gTasks[taskId].data[0]; - if (gTasks[eContest.unk19211].data[r4 * 4 + 0] == 0 - || gTasks[eContest.unk19211].data[r4 * 4 + 0] == 0xFF) + if (gTasks[eContest.judgeAttentionTaskId].data[contestant * 4 + 0] == 0 + || gTasks[eContest.judgeAttentionTaskId].data[contestant * 4 + 0] == 0xFF) { - gTasks[eContest.unk19211].data[r4 * 4 + 0] = 0xFF; - gTasks[eContest.unk19211].data[r4 * 4 + 1] = 0; - BlendPalette((eContest.prevTurnOrder[r4] + MOVE_WINDOWS_START) * 16 + 6, 2, 0, RGB(31, 31, 18)); + gTasks[eContest.judgeAttentionTaskId].data[contestant * 4 + 0] = 0xFF; + gTasks[eContest.judgeAttentionTaskId].data[contestant * 4 + 1] = 0; + BlendPalette((eContest.prevTurnOrder[contestant] + MOVE_WINDOWS_START) * 16 + 6, 2, 0, RGB(31, 31, 18)); DestroyTask(taskId); } } -static void sub_80DC728(u8 taskId) +static void Task_FlashJudgeAttentionEye(u8 taskId) { u8 i; for (i = 0; i < CONTESTANT_COUNT; i++) { - u8 r3 = i * 4; + u8 offset = i * 4; - if (gTasks[taskId].data[r3 + 0] != 0xFF) + if (gTasks[taskId].data[offset + 0] != 0xFF) { - if (gTasks[taskId].data[r3 + 1] == 0) - gTasks[taskId].data[r3 + 0]++; + if (gTasks[taskId].data[offset + 1] == 0) + gTasks[taskId].data[offset + 0]++; else - gTasks[taskId].data[r3 + 0]--; + gTasks[taskId].data[offset + 0]--; - if (gTasks[taskId].data[r3 + 0] == 16 - || gTasks[taskId].data[r3 + 0] == 0) - gTasks[taskId].data[r3 + 1] ^= 1; + if (gTasks[taskId].data[offset + 0] == 16 + || gTasks[taskId].data[offset + 0] == 0) + gTasks[taskId].data[offset + 1] ^= 1; BlendPalette( (eContest.prevTurnOrder[i] + MOVE_WINDOWS_START) * 16 + 6, 2, - gTasks[taskId].data[r3 + 0], + gTasks[taskId].data[offset + 0], RGB(31, 31, 18)); } } @@ -3911,69 +4071,69 @@ static void sub_80DC8D0(u8 taskId) for (i = 0; i < CONTESTANT_COUNT; i++) { - u8 r3 = i * 4; + u8 idx = i * 4; - if (gTasks[taskId].data[r3 + 0] != 0xFF) + if (gTasks[taskId].data[idx + 0] != 0xFF) { - if (++gTasks[taskId].data[r3 + 2] > 2) + if (++gTasks[taskId].data[idx + 2] > 2) { - gTasks[taskId].data[r3 + 2] = 0; + gTasks[taskId].data[idx + 2] = 0; - if (gTasks[taskId].data[r3 + 1] == 0) - gTasks[taskId].data[r3 + 0]++; + if (gTasks[taskId].data[idx + 1] == 0) + gTasks[taskId].data[idx + 0]++; else - gTasks[taskId].data[r3 + 0]--; + gTasks[taskId].data[idx + 0]--; - if (gTasks[taskId].data[r3 + 0] == 16 - || gTasks[taskId].data[r3 + 0] == 0) - gTasks[taskId].data[r3 + 1] ^= 1; + if (gTasks[taskId].data[idx + 0] == 16 + || gTasks[taskId].data[idx + 0] == 0) + gTasks[taskId].data[idx + 1] ^= 1; - BlendPalette((i + MOVE_WINDOWS_START) * 16 + 10, 1, gTasks[taskId].data[r3 + 0], RGB(31, 31, 18)); - BlendPalette((i + MOVE_WINDOWS_START) * 16 + 12 + i, 1, gTasks[taskId].data[r3 + 0], RGB(31, 31, 18)); + BlendPalette((i + MOVE_WINDOWS_START) * 16 + 10, 1, gTasks[taskId].data[idx + 0], RGB(31, 31, 18)); + BlendPalette((i + MOVE_WINDOWS_START) * 16 + 12 + i, 1, gTasks[taskId].data[idx + 0], RGB(31, 31, 18)); } } } } -static void sub_80DC9B4(u8 contestant) +static void StartStopFlashJudgeAttentionEye(u8 contestant) { if (eContestantStatus[contestant].hasJudgesAttention) - sub_80DC630(contestant); + StartFlashJudgeAttentionEye(contestant); else - sub_80DC674(contestant); + StopFlashJudgeAttentionEye(contestant); } -static u8 sub_80DC9EC(u8 contestant) +static u8 CreateContestantBoxBlinkSprites(u8 contestant) { u8 spriteId1, spriteId2; u8 x = gContestantTurnOrder[contestant] * 40 + 32; - LoadCompressedSpriteSheet(&sUnknown_08589904[contestant]); - LoadSpritePalette(&sUnknown_08589924[contestant]); - spriteId1 = CreateSprite(&gSpriteTemplate_858998C[contestant], 184, x, 29); - spriteId2 = CreateSprite(&gSpriteTemplate_858998C[contestant], 248, x, 29); + LoadCompressedSpriteSheet(&sSpriteSheets_ContestantsTurnBlinkEffect[contestant]); + LoadSpritePalette(&sSpritePalettes_ContestantsTurnBlinkEffect[contestant]); + spriteId1 = CreateSprite(&sSpriteTemplates_ContestantsTurnBlinkEffect[contestant], 184, x, 29); + spriteId2 = CreateSprite(&sSpriteTemplates_ContestantsTurnBlinkEffect[contestant], 248, x, 29); gSprites[spriteId2].oam.tileNum += 64; CopySpriteTiles(0, 3, (void *)VRAM, (u16 *)(BG_SCREEN_ADDR(28) + gContestantTurnOrder[contestant] * 5 * 64 + 0x26), - gContestResources->field_34); + gContestResources->boxBlinkTiles1); CopySpriteTiles(0, 3, (void *)VRAM, (u16 *)(BG_SCREEN_ADDR(28) + gContestantTurnOrder[contestant] * 5 * 64 + 0x36), - gContestResources->field_38); + gContestResources->boxBlinkTiles2); - CpuFill32(0, gContestResources->field_34 + 0x500, 0x300); - CpuFill32(0, gContestResources->field_38 + 0x500, 0x300); + CpuFill32(0, gContestResources->boxBlinkTiles1 + 0x500, 0x300); + CpuFill32(0, gContestResources->boxBlinkTiles2 + 0x500, 0x300); - RequestDma3Copy(gContestResources->field_34, + RequestDma3Copy(gContestResources->boxBlinkTiles1, (u8 *)(VRAM + 0x10000 + gSprites[spriteId1].oam.tileNum * 32), 0x800, 1); - RequestDma3Copy(gContestResources->field_38, + RequestDma3Copy(gContestResources->boxBlinkTiles2, (u8 *)(VRAM + 0x10000 + gSprites[spriteId2].oam.tileNum * 32), 0x800, 1); @@ -3987,7 +4147,7 @@ static u8 sub_80DC9EC(u8 contestant) return spriteId1; } -static void sub_80DCB78(u8 spriteId) +static void DestroyContestantBoxBlinkSprites(u8 spriteId) { u8 spriteId2 = gSprites[spriteId].data[0]; @@ -3996,55 +4156,56 @@ static void sub_80DCB78(u8 spriteId) DestroySpriteAndFreeResources(&gSprites[spriteId]); } -static void sub_80DCBB4(void) +static void SetBlendForContestantBoxBlink(void) { SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(7, 9)); } -static void sub_80DCBD0(void) +static void ResetBlendForContestantBoxBlink(void) { SetGpuReg(REG_OFFSET_BLDCNT, 0); SetGpuReg(REG_OFFSET_BLDALPHA, 0); } -static void sub_80DCBE8(u8 a, bool8 b) +// To indicate whose turn is up +static void BlinkContestantBox(u8 spriteId, bool8 b) { - u8 r5; + u8 spriteId2; - sub_80DCBB4(); - gContestResources->field_14[gSprites[a].data[1]].unk2_1 = 1; - r5 = gSprites[a].data[0]; - StartSpriteAffineAnim(&gSprites[a], 1); - StartSpriteAffineAnim(&gSprites[r5], 1); - gSprites[a].callback = sub_80DCC84; - gSprites[r5].callback = SpriteCallbackDummy; + SetBlendForContestantBoxBlink(); + gContestResources->field_14[gSprites[spriteId].data[1]].boxBlinking = TRUE; + spriteId2 = gSprites[spriteId].data[0]; + StartSpriteAffineAnim(&gSprites[spriteId], 1); + StartSpriteAffineAnim(&gSprites[spriteId2], 1); + gSprites[spriteId].callback = SpriteCB_BlinkContestantBox; + gSprites[spriteId2].callback = SpriteCallbackDummy; if (b == FALSE) PlaySE(SE_C_PIKON); else PlaySE(SE_PC_LOGIN); } -static void sub_80DCC84(struct Sprite *sprite) +static void SpriteCB_BlinkContestantBox(struct Sprite *sprite) { if (sprite->affineAnimEnded) { - u8 r1 = sprite->data[0]; + u8 spriteId2 = sprite->data[0]; - if (gSprites[r1].affineAnimEnded) + if (gSprites[spriteId2].affineAnimEnded) { sprite->invisible = TRUE; - gSprites[r1].invisible = TRUE; - sprite->callback = sub_80DCCD8; + gSprites[spriteId2].invisible = TRUE; + sprite->callback = SpriteCB_EndBlinkContestantBox; } } } -static void sub_80DCCD8(struct Sprite *sprite) +static void SpriteCB_EndBlinkContestantBox(struct Sprite *sprite) { - gContestResources->field_14[sprite->data[1]].unk2_1 = 0; - sub_80DCB78(sprite->data[0]); - sub_80DCBD0(); + gContestResources->field_14[sprite->data[1]].boxBlinking = FALSE; + DestroyContestantBoxBlinkSprites(sprite->data[0]); + ResetBlendForContestantBoxBlink(); } // Unused. @@ -4246,7 +4407,7 @@ static void DrawContestantWindows(void) DrawContestantWindowText(); } -static void sub_80DD080(u8 contestant) +static void CalculateAppealMoveImpact(u8 contestant) { u16 move; u8 effect; @@ -4286,7 +4447,7 @@ static void sub_80DD080(u8 contestant) if (eContestantStatus[contestant].hasJudgesAttention && !AreMovesContestCombo(eContestantStatus[contestant].prevMove, eContestantStatus[contestant].currMove)) - eContestantStatus[contestant].hasJudgesAttention = 0; + eContestantStatus[contestant].hasJudgesAttention = FALSE; gContestEffectFuncs[effect](); @@ -4297,30 +4458,30 @@ static void sub_80DD080(u8 contestant) else eContestantStatus[contestant].appeal2 += eContestantStatus[contestant].condition; - eContestantStatus[contestant].unk16 = 0; - eContestantStatus[contestant].unk15_6 = FALSE; - if (sub_80DE1E8(contestant)) + eContestantStatus[contestant].completedCombo = FALSE; + eContestantStatus[contestant].usedComboMove = FALSE; + if (IsContestantAllowedToCombo(contestant)) { - bool8 usedCombo = AreMovesContestCombo(eContestantStatus[contestant].prevMove, eContestantStatus[contestant].currMove); + bool8 completedCombo = AreMovesContestCombo(eContestantStatus[contestant].prevMove, eContestantStatus[contestant].currMove); - if (usedCombo && eContestantStatus[contestant].hasJudgesAttention) + if (completedCombo && eContestantStatus[contestant].hasJudgesAttention) { - eContestantStatus[contestant].unk16 = usedCombo; - eContestantStatus[contestant].unk15_6 = TRUE; - eContestantStatus[contestant].hasJudgesAttention = 0; - eContestantStatus[contestant].unk17 = eContestantStatus[contestant].appeal1 * eContestantStatus[contestant].unk16; + eContestantStatus[contestant].completedCombo = completedCombo; + eContestantStatus[contestant].usedComboMove = TRUE; + eContestantStatus[contestant].hasJudgesAttention = FALSE; + eContestantStatus[contestant].unk17 = eContestantStatus[contestant].appeal1 * eContestantStatus[contestant].completedCombo; eContestantStatus[contestant].unk15_3 = TRUE; } else { if (gContestMoves[eContestantStatus[contestant].currMove].comboStarterId != 0) { - eContestantStatus[contestant].hasJudgesAttention = 1; - eContestantStatus[contestant].unk15_6 = TRUE; + eContestantStatus[contestant].hasJudgesAttention = TRUE; + eContestantStatus[contestant].usedComboMove = TRUE; } else { - eContestantStatus[contestant].hasJudgesAttention = 0; + eContestantStatus[contestant].hasJudgesAttention = FALSE; } } } @@ -4329,17 +4490,17 @@ static void sub_80DD080(u8 contestant) if (eContestantStatus[contestant].nervous) { - eContestantStatus[contestant].hasJudgesAttention = 0; + eContestantStatus[contestant].hasJudgesAttention = FALSE; eContestantStatus[contestant].appeal2 = 0; eContestantStatus[contestant].appeal1 = 0; } - eContestResources10.bits_0 = Contest_GetMoveExcitement(eContestantStatus[contestant].currMove); + eContestResources10.moveExcitement = Contest_GetMoveExcitement(eContestantStatus[contestant].currMove); if (eContestantStatus[contestant].overrideCategoryExcitementMod) - eContestResources10.bits_0 = 1; + eContestResources10.moveExcitement = 1; - if (eContestResources10.bits_0 > 0) + if (eContestResources10.moveExcitement > 0) { - if (eContest.applauseLevel + eContestResources10.bits_0 > 4) + if (eContest.applauseLevel + eContestResources10.moveExcitement > 4) eContestResources10.unk2 = 60; else eContestResources10.unk2 = 10; @@ -4349,9 +4510,12 @@ static void sub_80DD080(u8 contestant) eContestResources10.unk2 = 0; } + // Transform and Role Play require a visible target mon + // so randomly choose a contestant to be the "target" rnd = Random() % (CONTESTANT_COUNT - 1); for (i = 0; i < CONTESTANT_COUNT; i++) { + // Target can't be the attacker if (i != contestant) { if (rnd == 0) @@ -4359,7 +4523,7 @@ static void sub_80DD080(u8 contestant) rnd--; } } - eContestantStatus[contestant].unk1B = i; + eContestantStatus[contestant].contestantAnimTarget = i; } void SetContestantEffectStringID(u8 a, u8 b) @@ -4386,7 +4550,7 @@ void SetStartledString(u8 contestant, u8 jam) SetContestantEffectStringID(contestant, CONTEST_STRING_LOOKED_DOWN); } -static void sub_80DD45C(u8 contestant, u8 stringId) +static void PrintAppealMoveResultText(u8 contestant, u8 stringId) { StringCopy(gStringVar1, gContestMons[contestant].nickname); StringCopy(gStringVar2, gMoveNames[eContestantStatus[contestant].currMove]); @@ -4489,53 +4653,53 @@ static void ApplyNextTurnOrder(void) } } -static void sub_80DD6DC(struct Sprite *sprite) +static void SpriteCB_JudgeSpeechBubble(struct Sprite *sprite) { if (sprite->data[1]++ > 84) { sprite->data[1] = 0; sprite->invisible = TRUE; sprite->callback = SpriteCallbackDummy; - eContest.unk1920A_4 = 0; + eContest.waitForJudgeSpeechBubble = FALSE; } } -static void sub_80DD720(u8 a) +static void DoJudgeSpeechBubble(u8 symbolId) { - u8 spriteId = eContest.unk19216; + u8 spriteId = eContest.judgeSpeechBubbleSpriteId; - switch (a) + switch (symbolId) { - case 0: - case 1: + case JUDGE_SYMBOL_SWIRL: + case JUDGE_SYMBOL_SWIRL_UNUSED: gSprites[spriteId].oam.tileNum = gSprites[spriteId].data[0]; PlaySE(SE_HAZURE); break; - case 2: + case JUDGE_SYMBOL_ONE_EXCLAMATION: gSprites[spriteId].oam.tileNum = gSprites[spriteId].data[0] + 4; PlaySE(SE_SEIKAI); break; - case 3: + case JUDGE_SYMBOL_TWO_EXCLAMATIONS: gSprites[spriteId].oam.tileNum = gSprites[spriteId].data[0] + 8; PlaySE(SE_SEIKAI); break; - case 4: + case JUDGE_SYMBOL_NUMBER_ONE_UNUSED: // Identical to JUDGE_SYMBOL_NUMBER_ONE gSprites[spriteId].oam.tileNum = gSprites[spriteId].data[0] + 12; PlaySE(SE_TK_WARPIN); break; - case 5: // exactly the same as case 4 + case JUDGE_SYMBOL_NUMBER_ONE: gSprites[spriteId].oam.tileNum = gSprites[spriteId].data[0] + 12; PlaySE(SE_TK_WARPIN); break; - case 6: + case JUDGE_SYMBOL_NUMBER_FOUR: gSprites[spriteId].oam.tileNum = gSprites[spriteId].data[0] + 16; PlaySE(SE_TK_WARPIN); break; - case 8: + case JUDGE_SYMBOL_STAR: gSprites[spriteId].oam.tileNum = gSprites[spriteId].data[0] + 24; PlaySE(SE_W215); break; - case 7: + case JUDGE_SYMBOL_QUESTION_MARK: default: gSprites[spriteId].oam.tileNum = gSprites[spriteId].data[0] + 20; PlaySE(SE_TK_WARPIN); @@ -4543,8 +4707,8 @@ static void sub_80DD720(u8 a) } gSprites[spriteId].data[1] = 0; gSprites[spriteId].invisible = FALSE; - gSprites[spriteId].callback = sub_80DD6DC; - eContest.unk1920A_4 = 1; + gSprites[spriteId].callback = SpriteCB_JudgeSpeechBubble; + eContest.waitForJudgeSpeechBubble = TRUE; } static void UpdateApplauseMeter(void) @@ -4611,15 +4775,15 @@ static void Task_ApplauseOverflowAnimation(u8 taskId) } } -static void StartMoveApplauseMeterOnscreen(void) +static void SlideApplauseMeterIn(void) { - CreateTask(Task_MoveApplauseMeterOnscreen, 10); + CreateTask(Task_SlideApplauseMeterIn, 10); gSprites[eContest.applauseMeterSpriteId].pos2.x = -70; gSprites[eContest.applauseMeterSpriteId].invisible = FALSE; eContest.applauseMeterIsMoving = TRUE; } -static void Task_MoveApplauseMeterOnscreen(u8 taskId) +static void Task_SlideApplauseMeterIn(u8 taskId) { struct Sprite *sprite = &gSprites[eContest.applauseMeterSpriteId]; @@ -4635,7 +4799,7 @@ static void Task_MoveApplauseMeterOnscreen(u8 taskId) } } -static void TryMoveApplauseMeterOffscreen(void) +static void SlideApplauseMeterOut(void) { if (gSprites[eContest.applauseMeterSpriteId].invisible == TRUE) { @@ -4643,13 +4807,13 @@ static void TryMoveApplauseMeterOffscreen(void) } else { - CreateTask(Task_MoveApplauseMeterOffscreen, 10); + CreateTask(Task_SlideApplauseMeterOut, 10); gSprites[eContest.applauseMeterSpriteId].pos2.x = 0; eContest.applauseMeterIsMoving = TRUE; } } -static void Task_MoveApplauseMeterOffscreen(u8 taskId) +static void Task_SlideApplauseMeterOut(u8 taskId) { struct Sprite *sprite = &gSprites[eContest.applauseMeterSpriteId]; @@ -4679,7 +4843,7 @@ static void Task_ShowAndUpdateApplauseMeter(u8 taskId) switch (gTasks[taskId].data[10]) { case 0: - StartMoveApplauseMeterOnscreen(); + SlideApplauseMeterIn(); gTasks[taskId].data[10]++; break; case 1: @@ -4713,111 +4877,133 @@ static void ShowApplauseMeterNoAnim(void) gSprites[eContest.applauseMeterSpriteId].invisible = TRUE; } -static void sub_80DDE0C(void) +#define tDelay data[10] +#define tFrame data[11] +#define tCycles data[12] + +static void AnimateAudience(void) { - CreateTask(sub_80DDE30, 15); - eContest.unk1920A_7 = 1; + CreateTask(Task_AnimateAudience, 15); + eContest.animatingAudience = TRUE; } -static void sub_80DDE30(u8 taskId) +static void Task_AnimateAudience(u8 taskId) { - if (gTasks[taskId].data[10]++ > 6) + if (gTasks[taskId].tDelay++ > 6) { - gTasks[taskId].data[10] = 0; - if (gTasks[taskId].data[11] == 0) + gTasks[taskId].tDelay = 0; + if (gTasks[taskId].tFrame == 0) { - RequestDma3Copy(eUnknownHeap19000, (void *)(BG_SCREEN_ADDR(4)), 0x1000, 1); + RequestDma3Copy(eContestAudienceFrame2_Gfx, (void *)(BG_SCREEN_ADDR(4)), 0x1000, 1); } else { - RequestDma3Copy(eUnzippedContestAudienceGfx, (void *)(BG_SCREEN_ADDR(4)), 0x1000, 1); - gTasks[taskId].data[12]++; + RequestDma3Copy(eUnzippedContestAudience_Gfx, (void *)(BG_SCREEN_ADDR(4)), 0x1000, 1); + gTasks[taskId].tCycles++; } - gTasks[taskId].data[11] ^= 1; + gTasks[taskId].tFrame ^= 1; - if (gTasks[taskId].data[12] == 9) + if (gTasks[taskId].tCycles == 9) { - eContest.unk1920A_7 = 0; + eContest.animatingAudience = FALSE; DestroyTask(taskId); } } } -#define tBlendColor data[0] -#define tBlendCoeff data[1] +#undef tDelay +#undef tFrame +#undef tCycles -static void sub_80DDED0(s8 a, s8 b) +#define tBlendColor data[0] +#define tBlendCoeff data[1] +#define tBlendDir data[2] +#define tTargetBlendCoeff data[3] +#define tBlendDelay data[10] + +static void BlendAudienceBackground(s8 excitementDir, s8 blendDir) { - u8 taskId = CreateTask(sub_80DDF80, 10); + u8 taskId = CreateTask(Task_BlendAudienceBackground, 10); u16 blendColor; u8 blendCoeff; - u8 r3; + u8 targetBlendCoeff; - if (a > 0) + if (excitementDir > 0) { blendColor = RGB(30, 27, 8); - if (b > 0) + if (blendDir > 0) { + // Blend to yellow (amount depends on applause meter) blendCoeff = 0; - r3 = eContest.applauseLevel * 3; + targetBlendCoeff = eContest.applauseLevel * 3; } else { + // Blend back to original blendCoeff = eContest.applauseLevel * 3; - r3 = 0; + targetBlendCoeff = 0; } } else { - blendColor = 0; - if (b > 0) + blendColor = RGB_BLACK; + if (blendDir > 0) { + // Blend to black blendCoeff = 0; - r3 = 12; + targetBlendCoeff = 12; } else { + // Black back to original blendCoeff = 12; - r3 = 0; + targetBlendCoeff = 0; } } gTasks[taskId].tBlendColor = blendColor; gTasks[taskId].tBlendCoeff = blendCoeff; - gTasks[taskId].data[2] = b; - gTasks[taskId].data[3] = r3; - eContest.unk1920B_0 = 0; + gTasks[taskId].tBlendDir = blendDir; + gTasks[taskId].tTargetBlendCoeff = targetBlendCoeff; + // Because this isn't set to TRUE here, the main task doesn't wait for the color blend + // Unclear if this was intentional or not (perhaps waiting added too much delay). In any case it does nothing now + eContest.waitForAudienceBlend = FALSE; + } -static void sub_80DDF80(u8 taskId) +static void Task_BlendAudienceBackground(u8 taskId) { - if (gTasks[taskId].data[10]++ >= 0) + if (gTasks[taskId].tBlendDelay++ >= 0) { - gTasks[taskId].data[10] = 0; - if (gTasks[taskId].data[2] > 0) + gTasks[taskId].tBlendDelay = 0; + if (gTasks[taskId].tBlendDir > 0) gTasks[taskId].tBlendCoeff++; else gTasks[taskId].tBlendCoeff--; + BlendPalette(17, 1, gTasks[taskId].tBlendCoeff, gTasks[taskId].tBlendColor); BlendPalette(26, 1, gTasks[taskId].tBlendCoeff, gTasks[taskId].tBlendColor); - if (gTasks[taskId].tBlendCoeff == gTasks[taskId].data[3]) + + if (gTasks[taskId].tBlendCoeff == gTasks[taskId].tTargetBlendCoeff) { DestroyTask(taskId); - eContest.unk1920B_0 = 0; + eContest.waitForAudienceBlend = FALSE; } } } #undef tBlendColor #undef tBlendCoeff +#undef tTargetBlendCoeff +#undef tBlendDelay -static void sub_80DE008(bool8 a) +static void ShowHideNextTurnGfx(bool8 show) { s32 i; for (i = 0; i < CONTESTANT_COUNT; i++) { - if (eContestantStatus[i].turnOrderMod != 0 && a) + if (eContestantStatus[i].turnOrderMod != 0 && show) { CpuCopy32(GetTurnOrderNumberGfx(i), (void *)(VRAM + 0x10000 + (gSprites[gContestResources->field_14[i].nextTurnSpriteId].oam.tileNum + 6) * 32), 32); gSprites[gContestResources->field_14[i].nextTurnSpriteId].pos1.y = sNextTurnSpriteYPositions[gContestantTurnOrder[i]]; @@ -4838,25 +5024,25 @@ static const u8 *GetTurnOrderNumberGfx(u8 contestant) return gContestNextTurnNumbersGfx + eContestantStatus[contestant].nextTurnOrder * 32; } -static void sub_80DE12C(void) +static void DrawUnnervedSymbols(void) { s32 i = 0; for (i = 0; i < CONTESTANT_COUNT; i++) { if (eContestResources8.unnervedPokes[i] != 0 && !Contest_IsMonsTurnDisabled(i)) { - u32 r6 = gContestantTurnOrder[i] * 5 + 2; - u16 var = sub_80DB748(3); + u32 contestantOffset = gContestantTurnOrder[i] * 5 + 2; + u16 symbolOffset = GetStatusSymbolTileOffset(STAT_SYMBOL_SWIRL); - ContestBG_FillBoxWithIncrementingTile(0, var, 20, r6, 2, 1, 17, 1); - var += 16; - ContestBG_FillBoxWithIncrementingTile(0, var, 20, r6 + 1, 2, 1, 17, 1); + ContestBG_FillBoxWithIncrementingTile(0, symbolOffset, 20, contestantOffset, 2, 1, 17, 1); + symbolOffset += 16; + ContestBG_FillBoxWithIncrementingTile(0, symbolOffset, 20, contestantOffset + 1, 2, 1, 17, 1); PlaySE(SE_C_PASI); } } } -bool8 sub_80DE1E8(u8 contestant) +bool8 IsContestantAllowedToCombo(u8 contestant) { if (eContestantStatus[contestant].repeatedMove || eContestantStatus[contestant].nervous) return FALSE; @@ -4864,7 +5050,7 @@ bool8 sub_80DE1E8(u8 contestant) return TRUE; } -static void sub_80DE224(void) +static void SetBgForCurtainDrop(void) { s32 i; u16 bg0Cnt, bg1Cnt, bg2Cnt; @@ -4902,7 +5088,7 @@ static void sub_80DE224(void) } } -static void sub_80DE350(void) +static void UpdateContestantBoxOrder(void) { s32 i; u16 bg1Cnt; @@ -4928,15 +5114,15 @@ static void sub_80DE350(void) } } -static void sub_80DE424(u8 taskId) +static void Task_StartDropCurtainAtRoundEnd(u8 taskId) { gBattle_BG1_X = 0; gBattle_BG1_Y = DISPLAY_HEIGHT; PlaySE12WithPanning(SE_C_MAKU_D, 0); - gTasks[taskId].func = sub_80DE464; + gTasks[taskId].func = Task_UpdateCurtainDropAtRoundEnd; } -static void sub_80DE464(u8 taskId) +static void Task_UpdateCurtainDropAtRoundEnd(u8 taskId) { if ((s16)(gBattle_BG1_Y -= 7) < 0) gBattle_BG1_Y = 0; @@ -4945,11 +5131,11 @@ static void sub_80DE464(u8 taskId) gTasks[taskId].data[0] = 0; gTasks[taskId].data[1] = 0; gTasks[taskId].data[2] = 0; - gTasks[taskId].func = sub_80DE4A8; + gTasks[taskId].func = Task_ResetForNextRound; } } -static void sub_80DE4A8(u8 taskId) +static void Task_ResetForNextRound(u8 taskId) { s32 i; @@ -4960,9 +5146,9 @@ static void sub_80DE4A8(u8 taskId) eContest.prevTurnOrder[i] = gContestantTurnOrder[i]; FillContestantWindowBgs(); sub_80DC864(); - sub_80DB69C(); + DrawConditionStars(); DrawContestantWindows(); - sub_80DE008(TRUE); + ShowHideNextTurnGfx(TRUE); UpdateSliderHeartSpriteYPositions(); gTasks[taskId].data[0] = 1; break; @@ -4971,40 +5157,40 @@ static void sub_80DE4A8(u8 taskId) { u8 taskId2; - eContest.unk1920B_2 = 1; + eContest.waitForLink = TRUE; if (IsPlayerLinkLeader()) - sub_80DBAA0(); + ResetContestantStatuses(); taskId2 = CreateTask(sub_80FCC88, 0); - SetTaskFuncWithFollowupFunc(taskId2, sub_80FCC88, sub_80DA110); + SetTaskFuncWithFollowupFunc(taskId2, sub_80FCC88, Task_EndWaitForLink); ContestPrintLinkStandby(); gTasks[taskId].data[0] = 2; } else { - sub_80DBAA0(); + ResetContestantStatuses(); gTasks[taskId].data[0] = 3; } break; case 2: - if (!eContest.unk1920B_2) + if (!eContest.waitForLink) gTasks[taskId].data[0] = 3; break; case 3: - sub_80DB884(); + DrawStatusSymbols(); SwapMoveDescAndContestTilemaps(); gTasks[taskId].data[0] = 0; - gTasks[taskId].func = sub_80DE5F4; + gTasks[taskId].func = Task_WaitRaiseCurtainAtRoundEnd; break; } } -static void sub_80DE5C0(u8 taskId) +static void Task_UpdateRaiseCurtainAtRoundEnd(u8 taskId) { if ((s16)(gBattle_BG1_Y += 7) > DISPLAY_HEIGHT) - gTasks[taskId].func = sub_80DA4F4; + gTasks[taskId].func = Task_UpdateContestantBoxOrder; } -static void sub_80DE5F4(u8 taskId) +static void Task_WaitRaiseCurtainAtRoundEnd(u8 taskId) { if (gTasks[taskId].data[2] < 10) { @@ -5025,7 +5211,7 @@ static void sub_80DE5F4(u8 taskId) { gTasks[taskId].data[1] = 0; gTasks[taskId].data[2] = 0; - gTasks[taskId].func = sub_80DE65C; + gTasks[taskId].func = Task_StartRaiseCurtainAtRoundEnd; } else { @@ -5035,7 +5221,7 @@ static void sub_80DE5F4(u8 taskId) } } -static void sub_80DE65C(u8 taskId) +static void Task_StartRaiseCurtainAtRoundEnd(u8 taskId) { if (gTasks[taskId].data[2] < 10) { @@ -5045,7 +5231,7 @@ static void sub_80DE65C(u8 taskId) { gTasks[taskId].data[2] = 0; PlaySE12WithPanning(SE_C_MAKU_U, 0); - gTasks[taskId].func = sub_80DE5C0; + gTasks[taskId].func = Task_UpdateRaiseCurtainAtRoundEnd; } } @@ -5106,14 +5292,14 @@ static u16 SanitizeSpecies(u16 species) return species; } -static void sub_80DE864(u8 a) +static void SetMoveSpecificAnimData(u8 contestant) { s32 i; - u16 move = SanitizeMove(eContestantStatus[a].currMove); - u16 species = SanitizeSpecies(gContestMons[a].species); - u8 r5_2; + u16 move = SanitizeMove(eContestantStatus[contestant].currMove); + u16 species = SanitizeSpecies(gContestMons[contestant].species); + u8 targetContestant; - memset(&gContestResources->field_18->species, 0, 20); + memset(&gContestResources->moveAnim->species, 0, 20); ClearBattleAnimationVars(); for (i = 0; i < CONTESTANT_COUNT; i++) gBattleMonForms[i] = 0; @@ -5127,10 +5313,10 @@ static void sub_80DE864(u8 a) break; case MOVE_TRANSFORM: case MOVE_ROLE_PLAY: - r5_2 = eContestantStatus[a].unk1B; - gContestResources->field_18->unk2 = SanitizeSpecies(gContestMons[r5_2].species); - gContestResources->field_18->unk10 = gContestMons[r5_2].personality; - gContestResources->field_18->unk4_0 = 1; + targetContestant = eContestantStatus[contestant].contestantAnimTarget; + gContestResources->moveAnim->targetSpecies = SanitizeSpecies(gContestMons[targetContestant].species); + gContestResources->moveAnim->targetPersonality = gContestMons[targetContestant].personality; + gContestResources->moveAnim->hasTargetAnim = TRUE; break; case MOVE_RETURN: gAnimFriendship = MAX_FRIENDSHIP; @@ -5142,9 +5328,9 @@ static void sub_80DE864(u8 a) case MOVE_RAZOR_WIND: case MOVE_SKULL_BASH: case MOVE_SKY_ATTACK: - if (eContest.unk1925E == 0) + if (eContest.moveAnimTurnCount == 0) { - eContest.unk1925E = 2; + eContest.moveAnimTurnCount = 2; gAnimMoveTurn = 0; } else @@ -5153,56 +5339,56 @@ static void sub_80DE864(u8 a) } break; } - sub_80DEA5C(); + SetBattleTargetSpritePosition(); } -static void sub_80DE9B0(u8 unused) +static void ClearMoveAnimData(u8 contestant) { - memset(gContestResources->field_18, 0, sizeof(struct ContestStruct_field_18)); - if (eContest.unk1925E != 0) - eContest.unk1925E--; + memset(gContestResources->moveAnim, 0, sizeof(struct ContestMoveAnimData)); + if (eContest.moveAnimTurnCount != 0) + eContest.moveAnimTurnCount--; } -static void sub_80DE9DC(u8 contestant) +static void SetMoveAnimAttackerData(u8 contestant) { - gContestResources->field_18->unk5 = contestant; - gContestResources->field_18->species = SanitizeSpecies(gContestMons[contestant].species); - gContestResources->field_18->unk8 = gContestMons[contestant].personality; - gContestResources->field_18->unkC = gContestMons[contestant].otId; + gContestResources->moveAnim->contestant = contestant; + gContestResources->moveAnim->species = SanitizeSpecies(gContestMons[contestant].species); + gContestResources->moveAnim->personality = gContestMons[contestant].personality; + gContestResources->moveAnim->otId = gContestMons[contestant].otId; } -static void sub_80DEA20(void) +static void CreateInvisibleBattleTargetSprite(void) { - gBattlerSpriteIds[3] = CreateInvisibleSpriteWithCallback(SpriteCallbackDummy); + gBattlerSpriteIds[B_POSITION_OPPONENT_RIGHT] = CreateInvisibleSpriteWithCallback(SpriteCallbackDummy); InitSpriteAffineAnim(&gSprites[gBattlerSpriteIds[gBattlerTarget]]); - sub_80DEA5C(); + SetBattleTargetSpritePosition(); } -static void sub_80DEA5C(void) +static void SetBattleTargetSpritePosition(void) { - struct Sprite *sprite = &gSprites[gBattlerSpriteIds[3]]; + struct Sprite *sprite = &gSprites[gBattlerSpriteIds[B_POSITION_OPPONENT_RIGHT]]; sprite->pos2.x = 0; sprite->pos2.y = 0; - sprite->pos1.x = GetBattlerSpriteCoord(3, 0); - sprite->pos1.y = GetBattlerSpriteCoord(3, 1); + sprite->pos1.x = GetBattlerSpriteCoord(B_POSITION_OPPONENT_RIGHT, BATTLER_COORD_X); + sprite->pos1.y = GetBattlerSpriteCoord(B_POSITION_OPPONENT_RIGHT, BATTLER_COORD_Y); sprite->invisible = TRUE; } -static void SelectContestMoveBankTarget(u16 move) +static void SetMoveTargetPosition(u16 move) { switch (gBattleMoves[move].target) { case MOVE_TARGET_USER_OR_SELECTED: case MOVE_TARGET_USER: - gBattlerTarget = 2; + gBattlerTarget = B_POSITION_PLAYER_RIGHT; break; case MOVE_TARGET_SELECTED: case MOVE_TARGET_RANDOM: case MOVE_TARGET_BOTH: case MOVE_TARGET_FOES_AND_ALLY: default: - gBattlerTarget = 3; + gBattlerTarget = B_POSITION_OPPONENT_RIGHT; break; } } @@ -5430,7 +5616,7 @@ static void sub_80DF080(u8 contestant) s32 i; if (!gContestResources->field_10->excitementFrozen - && gContestResources->field_10->bits_0 > 0 + && gContestResources->field_10->moveExcitement > 0 && !eContestantStatus[contestant].repeatedMove) { gContestResources->field_1c[contestant].unkC |= 1; @@ -5441,14 +5627,14 @@ static void sub_80DF080(u8 contestant) gContestResources->field_1c[contestant].unkC |= 2; if (!gContestResources->field_10->excitementFrozen - && gContestResources->field_10->bits_0 != 0 + && gContestResources->field_10->moveExcitement != 0 && gContestResources->field_10->unk2 == 60) { gContestResources->field_1c[contestant].unkC |= 4; } - if (eContestantStatus[contestant].unk15_6 - && eContestantStatus[contestant].unk16 != 0) + if (eContestantStatus[contestant].usedComboMove + && eContestantStatus[contestant].completedCombo) { gContestResources->field_1c[contestant].unkC |= 8; } @@ -5479,7 +5665,7 @@ static void sub_80DF080(u8 contestant) if (eContest.applauseLevel == 4 && !gContestResources->field_10->excitementFrozen - && gContestResources->field_10->bits_0 < 0) + && gContestResources->field_10->moveExcitement < 0) { gContestResources->field_1c[contestant].unkD |= 0x20; } diff --git a/src/contest_ai.c b/src/contest_ai.c index 7585cac692..45fd761f5f 100644 --- a/src/contest_ai.c +++ b/src/contest_ai.c @@ -1200,7 +1200,7 @@ static void ContestAICmd_get_used_combo_starter(void) u16 result = FALSE; u8 contestant = GetContestantIdByTurn(gAIScriptPtr[1]); - if (sub_80DE1E8(contestant)) + if (IsContestantAllowedToCombo(contestant)) result = gContestMoves[eContestantStatus[contestant].prevMove].comboStarterId ? TRUE : FALSE; eContestAI.scriptResult = result; diff --git a/src/contest_effect.c b/src/contest_effect.c index 809aecbed0..17384ec901 100644 --- a/src/contest_effect.c +++ b/src/contest_effect.c @@ -423,7 +423,7 @@ static void ContestEffect_MakeFollowingMonsNervous(void) } for (i = 0; i < CONTESTANT_COUNT; i++) { - if (eContestantStatus[i].hasJudgesAttention && sub_80DE1E8(i)) + if (eContestantStatus[i].hasJudgesAttention && IsContestantAllowedToCombo(i)) oddsMod[i] = gComboStarterLookupTable[gContestMoves[eContestantStatus[i].prevMove].comboStarterId] * 10; else oddsMod[i] = 0; diff --git a/src/contest_util.c b/src/contest_util.c index 50845b7072..d8ca6e50d1 100644 --- a/src/contest_util.c +++ b/src/contest_util.c @@ -122,8 +122,8 @@ static void CB2_ShowContestResults(void); static void VBlankCB_ShowContestResults(void); static void Task_SlideContestResultsBg(u8); static void Task_WaitForLinkPartnersBeforeResults(u8); -static void sub_80F5F14(u8); -static void sub_80F5F30(u8); +static void Task_CommunicateMonIdxsForResults(u8); +static void Task_WaitForLinkPartnerMonIdxs(u8); static void Task_AnnouncePreliminaryResults(u8); static void Task_FlashStarsAndHearts(u8); static void Task_ShowPreliminaryResults(u8); @@ -657,17 +657,17 @@ static void Task_WaitForLinkPartnersBeforeResults(u8 taskId) { if (gReceivedRemoteLinkPlayers) { - CreateTask(sub_80F5F14, 0); + CreateTask(Task_CommunicateMonIdxsForResults, 0); gTasks[taskId].func = TaskDummy; } } -static void sub_80F5F14(u8 taskId) +static void Task_CommunicateMonIdxsForResults(u8 taskId) { - SetTaskFuncWithFollowupFunc(taskId, Task_LinkContest_CommunicateMonIdxs, sub_80F5F30); + SetTaskFuncWithFollowupFunc(taskId, Task_LinkContest_CommunicateMonIdxs, Task_WaitForLinkPartnerMonIdxs); } -static void sub_80F5F30(u8 taskId) +static void Task_WaitForLinkPartnerMonIdxs(u8 taskId) { if (IsLinkTaskFinished()) { From 9f4525666dca0576f7192528faea81b9ad6e2ea5 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Sat, 15 Aug 2020 14:33:08 -0400 Subject: [PATCH 066/101] Document misc contest --- include/contest.h | 82 ++++----- include/contest_link.h | 2 +- src/contest.c | 260 ++++++++++++++-------------- src/contest_ai.c | 4 +- src/contest_effect.c | 382 ++++++++++++++++++++--------------------- src/contest_link.c | 52 +++--- 6 files changed, 393 insertions(+), 389 deletions(-) diff --git a/include/contest.h b/include/contest.h index c5c674fdc0..208604f4a7 100644 --- a/include/contest.h +++ b/include/contest.h @@ -9,9 +9,9 @@ enum CONTEST_DEBUG_MODE_OFF, // Prints the totalPoints value for each contestant. CONTEST_DEBUG_MODE_PRINT_POINT_TOTAL, - // Prints the ContestResourcesField1C::unk_C value as a bitstring for each contestant. + // Prints the ContestTV::unk_C value as a bitstring for each contestant. CONTEST_DEBUG_MODE_PRINT_UNK_C, - // Prints the ContestResourcesField1C::unk_D value as a bitstring for each contestant. + // Prints the ContestTV::unk_D value as a bitstring for each contestant. CONTEST_DEBUG_MODE_PRINT_UNK_D }; @@ -90,29 +90,29 @@ enum { struct ContestPokemon { - /*0x00*/ u16 species; - /*0x02*/ u8 nickname[POKEMON_NAME_LENGTH + 1]; - /*0x0D*/ u8 trainerName[PLAYER_NAME_LENGTH + 1]; - /*0x15*/ u8 trainerGfxId; - /*0x18*/ u32 aiChecks; - /*0x1C*/ u8 whichRank:2; // 0x1 0x2 - u8 aiPool_Cool:1; // 0x4 - u8 aiPool_Beauty:1; // 0x8 - u8 aiPool_Cute:1; // 0x10 - u8 aiPool_Smart:1; // 0x20 - u8 aiPool_Tough:1; // 0x40 - /*0x1E*/ u16 moves[MAX_MON_MOVES]; // moves - /*0x26*/ u8 cool; // cool - /*0x27*/ u8 beauty; // beauty - /*0x28*/ u8 cute; // cute - /*0x29*/ u8 smart; // smart - /*0x2A*/ u8 tough; // tough - /*0x2B*/ u8 sheen; // sheen + u16 species; + u8 nickname[POKEMON_NAME_LENGTH + 1]; + u8 trainerName[PLAYER_NAME_LENGTH + 1]; + u8 trainerGfxId; + u32 aiChecks; + u8 whichRank:2; + u8 aiPool_Cool:1; + u8 aiPool_Beauty:1; + u8 aiPool_Cute:1; + u8 aiPool_Smart:1; + u8 aiPool_Tough:1; + u16 moves[MAX_MON_MOVES]; + u8 cool; + u8 beauty; + u8 cute; + u8 smart; + u8 tough; + u8 sheen; u8 highestRank; bool8 gameCleared; - /*0x2C*/ u8 unk2C[10]; - /*0x38*/ u32 personality; // personality - /*0x3C*/ u32 otId; // otId + u8 unk2C[10]; + u32 personality; + u32 otId; }; struct Shared1A004 @@ -210,14 +210,14 @@ struct ContestantStatus bool8 judgesAttentionWasRemoved:1; bool8 usedComboMove:1; bool8 completedCombo; - u8 unk17; + u8 comboAppealBonus; u8 unk18; u8 nextTurnOrder; // turn position u8 attentionLevel; // How much the Pokemon "stood out" u8 contestantAnimTarget; }; -struct UnknownContestStruct7 +struct ContestAppealMoveResults { u8 turnOrder[CONTESTANT_COUNT]; s16 jam; @@ -244,15 +244,15 @@ struct ContestAIInfo /*0x41*/ u8 contestantId; }; -struct UnknownContestStruct5 +struct ContestExcitement { s8 moveExcitement; - u8 excitementFrozen:1; - u8 excitementFreezer:3; - s8 unk2; + u8 frozen:1; + u8 freezer:3; + s8 excitementAppealBonus; }; -struct UnknownContestStruct4 +struct ContestGraphicsState { u8 sliderHeartSpriteId; u8 nextTurnSpriteId; @@ -269,7 +269,7 @@ struct ContestFinalStandings s32 contestant; }; -struct ContestResourcesField1C +struct ContestTV { u16 unk0[5]; s16 unkA; @@ -279,22 +279,22 @@ struct ContestResourcesField1C u8 unkE_2:1; }; -struct ContestResourcesField20 +struct ContestUnused { - u8 filler_00[0x0C]; + u8 filler[12]; }; struct ContestResources { struct Contest *contest; struct ContestantStatus *status; - struct UnknownContestStruct7 *field_8; + struct ContestAppealMoveResults *appealResults; struct ContestAIInfo *aiData; - struct UnknownContestStruct5 *field_10; - struct UnknownContestStruct4 *field_14; + struct ContestExcitement *excitement; + struct ContestGraphicsState *gfxState; struct ContestMoveAnimData *moveAnim; - struct ContestResourcesField1C * field_1c; - struct ContestResourcesField20 * field_20; + struct ContestTV *tv; + struct ContestUnused * unused; u8 * contestBgTilemaps[CONTESTANT_COUNT]; void * boxBlinkTiles1; void * boxBlinkTiles2; @@ -303,10 +303,10 @@ struct ContestResources #define eContest (*gContestResources->contest) #define eContestantStatus (gContestResources->status) -#define eContestResources8 (*gContestResources->field_8) +#define eContestAppealResults (*gContestResources->appealResults) #define eContestAI (*gContestResources->aiData) -#define eContestResources10 (*gContestResources->field_10) -#define eContestResources14 (*gContestResources->field_14) +#define eContestExcitement (*gContestResources->excitement) +#define eContestGfxState (gContestResources->gfxState) #define eUnzippedContestAudience_Gfx (gHeap + 0x18000) #define eContestAudienceFrame2_Gfx (gHeap + 0x19000) #define eContestDebugMode (gHeap[0x1a000]) diff --git a/include/contest_link.h b/include/contest_link.h index 02eb2f11d8..cd26825246 100644 --- a/include/contest_link.h +++ b/include/contest_link.h @@ -1,7 +1,7 @@ #ifndef GUARD_CONTEST_LINK_H #define GUARD_CONTEST_LINK_H -void sub_80FCC88(u8); +void Task_LinkContest_CommunicateAppealsState(u8); void Task_LinkContest_CommunicateFinalStandings(u8); void Task_LinkContest_Init(u8); void Task_LinkContest_CommunicateMonsRS(u8); diff --git a/src/contest.c b/src/contest.c index 743b5fe863..49b408a1a8 100644 --- a/src/contest.c +++ b/src/contest.c @@ -1027,10 +1027,10 @@ static void InitContestResources(void) eContestantStatus[i].effectStringId = CONTEST_STRING_NONE; eContestantStatus[i].effectStringId2 = CONTEST_STRING_NONE; } - eContestResources8 = (struct UnknownContestStruct7){}; + eContestAppealResults = (struct ContestAppealMoveResults){}; eContestAI = (struct ContestAIInfo){}; - *gContestResources->field_10 = (struct UnknownContestStruct5){}; - memset(gContestResources->field_14, 0, CONTESTANT_COUNT * sizeof(struct UnknownContestStruct4)); + *gContestResources->excitement = (struct ContestExcitement){}; + memset(eContestGfxState, 0, CONTESTANT_COUNT * sizeof(struct ContestGraphicsState)); if (!(gLinkContestFlags & LINK_CONTEST_FLAG_IS_LINK)) SortContestants(FALSE); @@ -1043,7 +1043,7 @@ static void InitContestResources(void) // Calling this here while all the nextTurnOrder values are 0xFF will actually // just reverse the turn order. ApplyNextTurnOrder(); - memset(gContestResources->field_1c, 0, sizeof(*gContestResources->field_1c) * CONTESTANT_COUNT); + memset(gContestResources->tv, 0, sizeof(*gContestResources->tv) * CONTESTANT_COUNT); } static void AllocContestResources(void) @@ -1051,13 +1051,13 @@ static void AllocContestResources(void) gContestResources = AllocZeroed(sizeof(struct ContestResources)); gContestResources->contest = AllocZeroed(sizeof(struct Contest)); gContestResources->status = AllocZeroed(sizeof(struct ContestantStatus) * CONTESTANT_COUNT); - gContestResources->field_8 = AllocZeroed(sizeof(struct UnknownContestStruct7)); + gContestResources->appealResults = AllocZeroed(sizeof(struct ContestAppealMoveResults)); gContestResources->aiData = AllocZeroed(sizeof(struct ContestAIInfo)); - gContestResources->field_10 = AllocZeroed(sizeof(struct UnknownContestStruct5) * CONTESTANT_COUNT); - gContestResources->field_14 = AllocZeroed(sizeof(struct UnknownContestStruct4) * CONTESTANT_COUNT); + gContestResources->excitement = AllocZeroed(sizeof(struct ContestExcitement) * CONTESTANT_COUNT); + gContestResources->gfxState = AllocZeroed(sizeof(struct ContestGraphicsState) * CONTESTANT_COUNT); gContestResources->moveAnim = AllocZeroed(sizeof(struct ContestMoveAnimData)); - gContestResources->field_1c = AllocZeroed(sizeof(struct ContestResourcesField1C) * CONTESTANT_COUNT); - gContestResources->field_20 = AllocZeroed(sizeof(struct ContestResourcesField20)); + gContestResources->tv = AllocZeroed(sizeof(struct ContestTV) * CONTESTANT_COUNT); + gContestResources->unused = AllocZeroed(sizeof(struct ContestUnused)); gContestResources->contestBgTilemaps[0] = AllocZeroed(0x1000); gContestResources->contestBgTilemaps[1] = AllocZeroed(0x1000); gContestResources->contestBgTilemaps[2] = AllocZeroed(0x1000); @@ -1073,13 +1073,13 @@ static void FreeContestResources(void) { FREE_AND_SET_NULL(gContestResources->contest); FREE_AND_SET_NULL(gContestResources->status); - FREE_AND_SET_NULL(gContestResources->field_8); + FREE_AND_SET_NULL(gContestResources->appealResults); FREE_AND_SET_NULL(gContestResources->aiData); - FREE_AND_SET_NULL(gContestResources->field_10); - FREE_AND_SET_NULL(gContestResources->field_14); + FREE_AND_SET_NULL(gContestResources->excitement); + FREE_AND_SET_NULL(gContestResources->gfxState); FREE_AND_SET_NULL(gContestResources->moveAnim); - FREE_AND_SET_NULL(gContestResources->field_1c); - FREE_AND_SET_NULL(gContestResources->field_20); + FREE_AND_SET_NULL(gContestResources->tv); + FREE_AND_SET_NULL(gContestResources->unused); FREE_AND_SET_NULL(gContestResources->contestBgTilemaps[0]); FREE_AND_SET_NULL(gContestResources->contestBgTilemaps[1]); FREE_AND_SET_NULL(gContestResources->contestBgTilemaps[2]); @@ -1724,7 +1724,7 @@ static void Task_DoAppeals(u8 taskId) { case APPEALSTATE_START_TURN: ContestDebugDoPrint(); - for (i = 0; eContest.turnNumber != gContestResources->field_8->turnOrder[i]; i++) + for (i = 0; eContest.turnNumber != eContestAppealResults.turnOrder[i]; i++) ; eContest.currentContestant = i; contestant = eContest.currentContestant; @@ -1735,8 +1735,8 @@ static void Task_DoAppeals(u8 taskId) eContest.waitForLink = TRUE; if (IsPlayerLinkLeader()) CalculateAppealMoveImpact(eContest.currentContestant); - taskId2 = CreateTask(sub_80FCC88, 0); - SetTaskFuncWithFollowupFunc(taskId2, sub_80FCC88, Task_EndWaitForLink); + taskId2 = CreateTask(Task_LinkContest_CommunicateAppealsState, 0); + SetTaskFuncWithFollowupFunc(taskId2, Task_LinkContest_CommunicateAppealsState, Task_EndWaitForLink); ContestPrintLinkStandby(); gTasks[taskId].tState = APPEALSTATE_1; } @@ -1787,7 +1787,7 @@ static void Task_DoAppeals(u8 taskId) if (gSprites[spriteId].callback == SpriteCallbackDummy) { // Once mon has slid in, also wait for box to finish blinking - if (!gContestResources->field_14[contestant].boxBlinking) + if (!eContestGfxState[contestant].boxBlinking) gTasks[taskId].tState = APPEALSTATE_PRINT_USED_MOVE_MSG; } return; @@ -1923,7 +1923,7 @@ static void Task_DoAppeals(u8 taskId) gTasks[taskId].tState = APPEALSTATE_WAIT_MOVE_USERS_HEARTS; return; case APPEALSTATE_WAIT_MOVE_USERS_HEARTS: - if (!gContestResources->field_14[eContest.currentContestant].updatingAppealHearts) + if (!eContestGfxState[eContest.currentContestant].updatingAppealHearts) gTasks[taskId].tState = APPEALSTATE_TRY_JUDGE_STAR; return; case APPEALSTATE_TRY_JUDGE_STAR: @@ -2016,7 +2016,7 @@ static void Task_DoAppeals(u8 taskId) case APPEALSTATE_WAIT_OPPONENT_HEARTS: for (i = 0; gTasks[taskId].data[1] != gContestantTurnOrder[i]; i++) ; - if (!gContestResources->field_14[i].updatingAppealHearts) + if (!eContestGfxState[i].updatingAppealHearts) gTasks[taskId].tState = APPEALSTATE_UPDATE_OPPONENT_STARS; return; case APPEALSTATE_UPDATE_OPPONENT_STARS: @@ -2132,16 +2132,16 @@ static void Task_DoAppeals(u8 taskId) { UpdateAppealHearts( eContestantStatus[contestant].appeal2, - eContestantStatus[contestant].unk17, + eContestantStatus[contestant].comboAppealBonus, contestant); - eContestantStatus[contestant].appeal2 += eContestantStatus[contestant].unk17; + eContestantStatus[contestant].appeal2 += eContestantStatus[contestant].comboAppealBonus; } gTasks[taskId].tState = APPEALSTATE_WAIT_HEARTS_FROM_COMBO; } } return; case APPEALSTATE_WAIT_HEARTS_FROM_COMBO: - if (!gContestResources->field_14[contestant].updatingAppealHearts) + if (!eContestGfxState[contestant].updatingAppealHearts) { gTasks[taskId].tCounter = 0; gTasks[taskId].tState = APPEALSTATE_CHECK_REPEATED_MOVE; @@ -2177,7 +2177,7 @@ static void Task_DoAppeals(u8 taskId) return; case APPEALSTATE_WAIT_HEARTS_FROM_REPEAT: ContestDebugDoPrint(); - if (!gContestResources->field_14[contestant].updatingAppealHearts) + if (!eContestGfxState[contestant].updatingAppealHearts) { gTasks[taskId].tCounter = 0; ContestClearGeneralTextWindow(); @@ -2185,13 +2185,13 @@ static void Task_DoAppeals(u8 taskId) } return; case APPEALSTATE_UPDATE_CROWD: - if (gContestResources->field_10->excitementFrozen && contestant != gContestResources->field_10->excitementFreezer) + if (eContestExcitement.frozen && contestant != eContestExcitement.freezer) { gTasks[taskId].tState = APPEALSTATE_PRINT_CROWD_WATCHES_MSG; } else { - r3 = gContestResources->field_10->moveExcitement; // Can't get this to use local variable. Should be "moveExcitement" + r3 = eContestExcitement.moveExcitement; // Can't get this to use local variable. Should be "moveExcitement" if (eContestantStatus[contestant].overrideCategoryExcitementMod) { r3 = 1; @@ -2293,14 +2293,14 @@ static void Task_DoAppeals(u8 taskId) if (gTasks[taskId].data[11]++ > 29) { gTasks[taskId].data[11] = 0; - UpdateAppealHearts(eContestantStatus[contestant].appeal2, gContestResources->field_10->unk2, contestant); - eContestantStatus[contestant].appeal2 += gContestResources->field_10->unk2; + UpdateAppealHearts(eContestantStatus[contestant].appeal2, eContestExcitement.excitementAppealBonus, contestant); + eContestantStatus[contestant].appeal2 += eContestExcitement.excitementAppealBonus; gTasks[taskId].tCounter++; } } break; case 3: - if (!gContestResources->field_14[contestant].updatingAppealHearts) + if (!eContestGfxState[contestant].updatingAppealHearts) { if (!eContest.animatingAudience) { @@ -2320,7 +2320,7 @@ static void Task_DoAppeals(u8 taskId) } return; case APPEALSTATE_WAIT_EXCITEMENT_HEARTS: - if (!gContestResources->field_14[contestant].updatingAppealHearts) + if (!eContestGfxState[contestant].updatingAppealHearts) { ContestClearGeneralTextWindow(); gTasks[taskId].tState = APPEALSTATE_SLIDE_APPLAUSE_OUT; @@ -2328,7 +2328,7 @@ static void Task_DoAppeals(u8 taskId) return; case APPEALSTATE_PRINT_CROWD_WATCHES_MSG: ContestClearGeneralTextWindow(); - StringCopy(gStringVar3, gContestMons[gContestResources->field_10->excitementFreezer].nickname); + StringCopy(gStringVar3, gContestMons[eContestExcitement.freezer].nickname); StringCopy(gStringVar1, gContestMons[contestant].nickname); StringCopy(gStringVar2, gMoveNames[eContestantStatus[contestant].currMove]); StringExpandPlaceholders(gStringVar4, gText_CrowdContinuesToWatchMon); @@ -2479,8 +2479,8 @@ static void Task_FinishRoundOfAppeals(u8 taskId) RankContestants(); SetAttentionLevels(); } - taskId2 = CreateTask(sub_80FCC88, 0); - SetTaskFuncWithFollowupFunc(taskId2, sub_80FCC88, Task_EndWaitForLink); + taskId2 = CreateTask(Task_LinkContest_CommunicateAppealsState, 0); + SetTaskFuncWithFollowupFunc(taskId2, Task_LinkContest_CommunicateAppealsState, Task_EndWaitForLink); ContestPrintLinkStandby(); gTasks[taskId].data[0] = 1; } @@ -3526,7 +3526,7 @@ static void ResetContestantStatuses(void) eContest.excitementHistory[eContest.appealNumber][i] = Contest_GetMoveExcitement(eContestantStatus[i].currMove); eContestantStatus[i].currMove = MOVE_NONE; } - eContestResources10.excitementFrozen = 0; + eContestExcitement.frozen = FALSE; } bool8 Contest_IsMonsTurnDisabled(u8 contestant) @@ -3702,16 +3702,16 @@ static s8 GetNumHeartsFromAppealPoints(s16 appeal) #define tContestant data[3] #define tDelayTimer data[10] -static u8 UpdateAppealHearts(s16 startAppeal, s16 endAppeal, u8 contestant) +static u8 UpdateAppealHearts(s16 startAppeal, s16 appealDelta, u8 contestant) { u8 taskId; s8 startHearts; s8 heartsDelta; - gContestResources->field_14[contestant].updatingAppealHearts = TRUE; + eContestGfxState[contestant].updatingAppealHearts = TRUE; taskId = CreateTask(Task_UpdateAppealHearts, 20); startHearts = GetNumHeartsFromAppealPoints(startAppeal); - heartsDelta = GetNumHeartsFromAppealPoints(startAppeal + endAppeal) - startHearts; + heartsDelta = GetNumHeartsFromAppealPoints(startAppeal + appealDelta) - startHearts; GetAppealHeartTileOffset(contestant); // unused return value gTasks[taskId].tNumHearts = abs(startHearts); gTasks[taskId].tHeartsDelta = heartsDelta; @@ -3741,7 +3741,7 @@ static void Task_UpdateAppealHearts(u8 taskId) { // No more hearts to add/remove, end DestroyTask(taskId); - gContestResources->field_14[contestant].updatingAppealHearts = FALSE; + eContestGfxState[contestant].updatingAppealHearts = FALSE; return; } else if (startHearts == 0) @@ -3834,7 +3834,7 @@ static void CreateSliderHeartSprites(void) { u8 y = sSliderHeartYPositions[gContestantTurnOrder[i]]; - gContestResources->field_14[i].sliderHeartSpriteId = CreateSprite(&sSpriteTemplate_SliderHeart, 180, y, 1); + eContestGfxState[i].sliderHeartSpriteId = CreateSprite(&sSpriteTemplate_SliderHeart, 180, y, 1); } } @@ -3847,8 +3847,8 @@ static void UpdateHeartSlider(u8 contestant) u8 spriteId; s16 slideTarget; - gContestResources->field_14[contestant].sliderUpdating = TRUE; - spriteId = gContestResources->field_14[contestant].sliderHeartSpriteId; + eContestGfxState[contestant].sliderUpdating = TRUE; + spriteId = eContestGfxState[contestant].sliderHeartSpriteId; slideTarget = eContestantStatus[contestant].pointTotal / 10 * 2; if (slideTarget > 56) slideTarget = 56; @@ -3878,7 +3878,7 @@ static bool8 SlidersDoneUpdating(void) for (i = 0; i < CONTESTANT_COUNT; i++) { - if (gContestResources->field_14[i].sliderUpdating) + if (eContestGfxState[i].sliderUpdating) break; } if (i == CONTESTANT_COUNT) @@ -3891,7 +3891,7 @@ static void SpriteCB_UpdateHeartSlider(struct Sprite *sprite) { if (sprite->pos2.x == sprite->sTargetX) { - gContestResources->field_14[sprite->sContestant].sliderUpdating = FALSE; + eContestGfxState[sprite->sContestant].sliderUpdating = FALSE; sprite->callback = SpriteCallbackDummy; } else @@ -3910,7 +3910,7 @@ static void UpdateSliderHeartSpriteYPositions(void) s32 i; for (i = 0; i < CONTESTANT_COUNT; i++) - gSprites[gContestResources->field_14[i].sliderHeartSpriteId].pos1.y = sSliderHeartYPositions[gContestantTurnOrder[i]]; + gSprites[eContestGfxState[i].sliderHeartSpriteId].pos1.y = sSliderHeartYPositions[gContestantTurnOrder[i]]; } // Used to hide (or subsequently reshow) the bottom two slider hearts that get hidden by text windows by moving them offscreen @@ -3924,9 +3924,9 @@ static void SetBottomSliderHeartsInvisibility(bool8 invisible) if (gContestantTurnOrder[i] > 1) { if (!invisible) - gSprites[gContestResources->field_14[i].sliderHeartSpriteId].pos1.x = 180; + gSprites[eContestGfxState[i].sliderHeartSpriteId].pos1.x = 180; else - gSprites[gContestResources->field_14[i].sliderHeartSpriteId].pos1.x = 256; + gSprites[eContestGfxState[i].sliderHeartSpriteId].pos1.x = 256; } } } @@ -3939,12 +3939,12 @@ static void CreateNextTurnSprites(void) for (i = 0; i < CONTESTANT_COUNT; i++) { LoadCompressedSpriteSheet(&sSpriteSheet_NextTurn[i]); - gContestResources->field_14[i].nextTurnSpriteId = CreateSprite(&sSpriteTemplates_NextTurn[i], + eContestGfxState[i].nextTurnSpriteId = CreateSprite(&sSpriteTemplates_NextTurn[i], 204, sNextTurnSpriteYPositions[gContestantTurnOrder[i]], 0); - SetSubspriteTables(&gSprites[gContestResources->field_14[i].nextTurnSpriteId], sSubspriteTable_NextTurn); - gSprites[gContestResources->field_14[i].nextTurnSpriteId].invisible = TRUE; + SetSubspriteTables(&gSprites[eContestGfxState[i].nextTurnSpriteId], sSubspriteTable_NextTurn); + gSprites[eContestGfxState[i].nextTurnSpriteId].invisible = TRUE; } } @@ -4174,7 +4174,7 @@ static void BlinkContestantBox(u8 spriteId, bool8 b) u8 spriteId2; SetBlendForContestantBoxBlink(); - gContestResources->field_14[gSprites[spriteId].data[1]].boxBlinking = TRUE; + eContestGfxState[gSprites[spriteId].data[1]].boxBlinking = TRUE; spriteId2 = gSprites[spriteId].data[0]; StartSpriteAffineAnim(&gSprites[spriteId], 1); StartSpriteAffineAnim(&gSprites[spriteId2], 1); @@ -4203,7 +4203,7 @@ static void SpriteCB_BlinkContestantBox(struct Sprite *sprite) static void SpriteCB_EndBlinkContestantBox(struct Sprite *sprite) { - gContestResources->field_14[sprite->data[1]].boxBlinking = FALSE; + eContestGfxState[sprite->data[1]].boxBlinking = FALSE; DestroyContestantBoxBlinkSprites(sprite->data[0]); ResetBlendForContestantBoxBlink(); } @@ -4435,14 +4435,14 @@ static void CalculateAppealMoveImpact(u8 contestant) } eContestantStatus[contestant].appeal1 = gContestEffects[effect].appeal; eContestantStatus[contestant].appeal2 = eContestantStatus[contestant].appeal1; - eContestResources8.jam = gContestEffects[effect].jam; - eContestResources8.jam2 = eContestResources8.jam; + eContestAppealResults.jam = gContestEffects[effect].jam; + eContestAppealResults.jam2 = eContestAppealResults.jam; - eContestResources8.contestant = contestant; + eContestAppealResults.contestant = contestant; for (i = 0; i < CONTESTANT_COUNT; i++) { eContestantStatus[i].jam = 0; - eContestResources8.unnervedPokes[i] = 0; + eContestAppealResults.unnervedPokes[i] = 0; } if (eContestantStatus[contestant].hasJudgesAttention @@ -4469,7 +4469,7 @@ static void CalculateAppealMoveImpact(u8 contestant) eContestantStatus[contestant].completedCombo = completedCombo; eContestantStatus[contestant].usedComboMove = TRUE; eContestantStatus[contestant].hasJudgesAttention = FALSE; - eContestantStatus[contestant].unk17 = eContestantStatus[contestant].appeal1 * eContestantStatus[contestant].completedCombo; + eContestantStatus[contestant].comboAppealBonus = eContestantStatus[contestant].appeal1 * eContestantStatus[contestant].completedCombo; eContestantStatus[contestant].unk15_3 = TRUE; } else @@ -4494,20 +4494,20 @@ static void CalculateAppealMoveImpact(u8 contestant) eContestantStatus[contestant].appeal2 = 0; eContestantStatus[contestant].appeal1 = 0; } - eContestResources10.moveExcitement = Contest_GetMoveExcitement(eContestantStatus[contestant].currMove); + eContestExcitement.moveExcitement = Contest_GetMoveExcitement(eContestantStatus[contestant].currMove); if (eContestantStatus[contestant].overrideCategoryExcitementMod) - eContestResources10.moveExcitement = 1; + eContestExcitement.moveExcitement = 1; - if (eContestResources10.moveExcitement > 0) + if (eContestExcitement.moveExcitement > 0) { - if (eContest.applauseLevel + eContestResources10.moveExcitement > 4) - eContestResources10.unk2 = 60; + if (eContest.applauseLevel + eContestExcitement.moveExcitement > 4) + eContestExcitement.excitementAppealBonus = 60; else - eContestResources10.unk2 = 10; + eContestExcitement.excitementAppealBonus = 10; } else { - eContestResources10.unk2 = 0; + eContestExcitement.excitementAppealBonus = 0; } // Transform and Role Play require a visible target mon @@ -4554,13 +4554,13 @@ static void PrintAppealMoveResultText(u8 contestant, u8 stringId) { StringCopy(gStringVar1, gContestMons[contestant].nickname); StringCopy(gStringVar2, gMoveNames[eContestantStatus[contestant].currMove]); - if (gContestMoves[eContestantStatus[eContestResources8.contestant].currMove].contestCategory == CONTEST_CATEGORY_COOL) + if (gContestMoves[eContestantStatus[eContestAppealResults.contestant].currMove].contestCategory == CONTEST_CATEGORY_COOL) StringCopy(gStringVar3, gText_Contest_Shyness); - else if (gContestMoves[eContestantStatus[eContestResources8.contestant].currMove].contestCategory == CONTEST_CATEGORY_BEAUTY) + else if (gContestMoves[eContestantStatus[eContestAppealResults.contestant].currMove].contestCategory == CONTEST_CATEGORY_BEAUTY) StringCopy(gStringVar3, gText_Contest_Anxiety); - else if (gContestMoves[eContestantStatus[eContestResources8.contestant].currMove].contestCategory == CONTEST_CATEGORY_CUTE) + else if (gContestMoves[eContestantStatus[eContestAppealResults.contestant].currMove].contestCategory == CONTEST_CATEGORY_CUTE) StringCopy(gStringVar3, gText_Contest_Laziness); - else if (gContestMoves[eContestantStatus[eContestResources8.contestant].currMove].contestCategory == CONTEST_CATEGORY_SMART) + else if (gContestMoves[eContestantStatus[eContestAppealResults.contestant].currMove].contestCategory == CONTEST_CATEGORY_SMART) StringCopy(gStringVar3, gText_Contest_Hesitancy); else StringCopy(gStringVar3, gText_Contest_Fear); @@ -4646,7 +4646,7 @@ static void ApplyNextTurnOrder(void) for (i = 0; i < CONTESTANT_COUNT; i++) { - eContestResources8.turnOrder[i] = newTurnOrder[i]; + eContestAppealResults.turnOrder[i] = newTurnOrder[i]; eContestantStatus[i].nextTurnOrder = 0xFF; eContestantStatus[i].turnOrderMod = 0; gContestantTurnOrder[i] = newTurnOrder[i]; @@ -5005,13 +5005,13 @@ static void ShowHideNextTurnGfx(bool8 show) { if (eContestantStatus[i].turnOrderMod != 0 && show) { - CpuCopy32(GetTurnOrderNumberGfx(i), (void *)(VRAM + 0x10000 + (gSprites[gContestResources->field_14[i].nextTurnSpriteId].oam.tileNum + 6) * 32), 32); - gSprites[gContestResources->field_14[i].nextTurnSpriteId].pos1.y = sNextTurnSpriteYPositions[gContestantTurnOrder[i]]; - gSprites[gContestResources->field_14[i].nextTurnSpriteId].invisible = FALSE; + CpuCopy32(GetTurnOrderNumberGfx(i), (void *)(VRAM + 0x10000 + (gSprites[eContestGfxState[i].nextTurnSpriteId].oam.tileNum + 6) * 32), 32); + gSprites[eContestGfxState[i].nextTurnSpriteId].pos1.y = sNextTurnSpriteYPositions[gContestantTurnOrder[i]]; + gSprites[eContestGfxState[i].nextTurnSpriteId].invisible = FALSE; } else { - gSprites[gContestResources->field_14[i].nextTurnSpriteId].invisible = TRUE; + gSprites[eContestGfxState[i].nextTurnSpriteId].invisible = TRUE; } } } @@ -5029,7 +5029,7 @@ static void DrawUnnervedSymbols(void) s32 i = 0; for (i = 0; i < CONTESTANT_COUNT; i++) { - if (eContestResources8.unnervedPokes[i] != 0 && !Contest_IsMonsTurnDisabled(i)) + if (eContestAppealResults.unnervedPokes[i] != 0 && !Contest_IsMonsTurnDisabled(i)) { u32 contestantOffset = gContestantTurnOrder[i] * 5 + 2; u16 symbolOffset = GetStatusSymbolTileOffset(STAT_SYMBOL_SWIRL); @@ -5083,8 +5083,8 @@ static void SetBgForCurtainDrop(void) for (i = 0; i < CONTESTANT_COUNT; i++) { - gSprites[gContestResources->field_14[i].sliderHeartSpriteId].oam.priority = 1; - gSprites[gContestResources->field_14[i].nextTurnSpriteId].oam.priority = 1; + gSprites[eContestGfxState[i].sliderHeartSpriteId].oam.priority = 1; + gSprites[eContestGfxState[i].nextTurnSpriteId].oam.priority = 1; } } @@ -5109,8 +5109,8 @@ static void UpdateContestantBoxOrder(void) for (i = 0; i < CONTESTANT_COUNT; i++) { - gSprites[gContestResources->field_14[i].sliderHeartSpriteId].oam.priority = 0; - gSprites[gContestResources->field_14[i].nextTurnSpriteId].oam.priority = 0; + gSprites[eContestGfxState[i].sliderHeartSpriteId].oam.priority = 0; + gSprites[eContestGfxState[i].nextTurnSpriteId].oam.priority = 0; } } @@ -5160,8 +5160,8 @@ static void Task_ResetForNextRound(u8 taskId) eContest.waitForLink = TRUE; if (IsPlayerLinkLeader()) ResetContestantStatuses(); - taskId2 = CreateTask(sub_80FCC88, 0); - SetTaskFuncWithFollowupFunc(taskId2, sub_80FCC88, Task_EndWaitForLink); + taskId2 = CreateTask(Task_LinkContest_CommunicateAppealsState, 0); + SetTaskFuncWithFollowupFunc(taskId2, Task_LinkContest_CommunicateAppealsState, Task_EndWaitForLink); ContestPrintLinkStandby(); gTasks[taskId].data[0] = 2; } @@ -5244,13 +5244,13 @@ static void AnimateSliderHearts(u8 animId) for (i = 0; i < CONTESTANT_COUNT; i++) { - gSprites[gContestResources->field_14[i].sliderHeartSpriteId].oam.matrixNum = AllocOamMatrix(); - gSprites[gContestResources->field_14[i].sliderHeartSpriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL; - StartSpriteAffineAnim(&gSprites[gContestResources->field_14[i].sliderHeartSpriteId], animId); + gSprites[eContestGfxState[i].sliderHeartSpriteId].oam.matrixNum = AllocOamMatrix(); + gSprites[eContestGfxState[i].sliderHeartSpriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL; + StartSpriteAffineAnim(&gSprites[eContestGfxState[i].sliderHeartSpriteId], animId); if (animId == SLIDER_HEART_ANIM_APPEAR) { - AnimateSprite(&gSprites[gContestResources->field_14[i].sliderHeartSpriteId]); - gSprites[gContestResources->field_14[i].sliderHeartSpriteId].invisible = FALSE; + AnimateSprite(&gSprites[eContestGfxState[i].sliderHeartSpriteId]); + gSprites[eContestGfxState[i].sliderHeartSpriteId].invisible = FALSE; } } taskId = CreateTask(Task_WaitForSliderHeartAnim, 5); @@ -5262,15 +5262,15 @@ static void Task_WaitForSliderHeartAnim(u8 taskId) { s32 i; - if (gSprites[gContestResources->field_14[0].sliderHeartSpriteId].affineAnimEnded) + if (gSprites[eContestGfxState[0].sliderHeartSpriteId].affineAnimEnded) { if ((u8)gTasks[taskId].tAnimId == SLIDER_HEART_ANIM_DISAPPEAR) { for (i = 0; i < CONTESTANT_COUNT; i++) - gSprites[gContestResources->field_14[i].sliderHeartSpriteId].invisible = TRUE; + gSprites[eContestGfxState[i].sliderHeartSpriteId].invisible = TRUE; } for (i = 0; i < CONTESTANT_COUNT; i++) - FreeSpriteOamMatrix(&gSprites[gContestResources->field_14[i].sliderHeartSpriteId]); + FreeSpriteOamMatrix(&gSprites[eContestGfxState[i].sliderHeartSpriteId]); eContest.sliderHeartsAnimating = FALSE; DestroyTask(taskId); } @@ -5615,59 +5615,59 @@ static void sub_80DF080(u8 contestant) { s32 i; - if (!gContestResources->field_10->excitementFrozen - && gContestResources->field_10->moveExcitement > 0 + if (!eContestExcitement.frozen + && eContestExcitement.moveExcitement > 0 && !eContestantStatus[contestant].repeatedMove) { - gContestResources->field_1c[contestant].unkC |= 1; - gContestResources->field_1c[contestant].unkE_2 = 1; + gContestResources->tv[contestant].unkC |= 1; + gContestResources->tv[contestant].unkE_2 = 1; } if (eContestantStatus[contestant].nervous) - gContestResources->field_1c[contestant].unkC |= 2; + gContestResources->tv[contestant].unkC |= 2; - if (!gContestResources->field_10->excitementFrozen - && gContestResources->field_10->moveExcitement != 0 - && gContestResources->field_10->unk2 == 60) + if (!eContestExcitement.frozen + && eContestExcitement.moveExcitement != 0 + && eContestExcitement.excitementAppealBonus == 60) { - gContestResources->field_1c[contestant].unkC |= 4; + gContestResources->tv[contestant].unkC |= 4; } if (eContestantStatus[contestant].usedComboMove && eContestantStatus[contestant].completedCombo) { - gContestResources->field_1c[contestant].unkC |= 8; + gContestResources->tv[contestant].unkC |= 8; } for (i = 0; i < CONTESTANT_COUNT; i++) { if (i != contestant && eContestantStatus[i].jam != 0) { - gContestResources->field_1c[contestant].unkC |= 0x10; - gContestResources->field_1c[i].unkC |= 0x40; + gContestResources->tv[contestant].unkC |= 0x10; + gContestResources->tv[i].unkC |= 0x40; } } if (eContestantStatus[contestant].numTurnsSkipped != 0 || eContestantStatus[contestant].noMoreTurns) { - gContestResources->field_1c[contestant].unkC |= 0x20; + gContestResources->tv[contestant].unkC |= 0x20; } else if (!eContestantStatus[contestant].nervous) { - gContestResources->field_1c[contestant].unkC |= 0x80; - gContestResources->field_1c[contestant].unkE_1 = 1; - gContestResources->field_1c[contestant].unk0[eContest.appealNumber] = eContestantStatus[contestant].currMove; + gContestResources->tv[contestant].unkC |= 0x80; + gContestResources->tv[contestant].unkE_1 = 1; + gContestResources->tv[contestant].unk0[eContest.appealNumber] = eContestantStatus[contestant].currMove; } if (eContestantStatus[contestant].repeatedMove) - gContestResources->field_1c[contestant].unkD |= 2; + gContestResources->tv[contestant].unkD |= 2; if (eContest.applauseLevel == 4 - && !gContestResources->field_10->excitementFrozen - && gContestResources->field_10->moveExcitement < 0) + && !eContestExcitement.frozen + && eContestExcitement.moveExcitement < 0) { - gContestResources->field_1c[contestant].unkD |= 0x20; + gContestResources->tv[contestant].unkD |= 0x20; } } @@ -5694,14 +5694,14 @@ static void sub_80DF250(void) r1 = i; } - gContestResources->field_1c[r1].unkD |= 1; + gContestResources->tv[r1].unkD |= 1; for (i = 0; i < CONTESTANT_COUNT; i++) { if (i != var_38 && gContestMonTotalPoints[var_38] - gContestMonTotalPoints[i] <= 50) - gContestResources->field_1c[i].unkD |= 4; + gContestResources->tv[i].unkD |= 4; - if (!gContestResources->field_1c[i].unkE_2) - gContestResources->field_1c[i].unkD |= 8; + if (!gContestResources->tv[i].unkE_2) + gContestResources->tv[i].unkD |= 8; for (j = 0; j < CONTESTANT_COUNT; j++) { @@ -5709,7 +5709,7 @@ static void sub_80DF250(void) break; } if (j == 4 && gContestFinalStandings[i] != 0) - gContestResources->field_1c[i].unkD |= 0x10; + gContestResources->tv[i].unkD |= 0x10; r12 = FALSE; r8 = FALSE; @@ -5721,10 +5721,10 @@ static void sub_80DF250(void) r8 = TRUE; } if (!r12 && !r8) - gContestResources->field_1c[i].unkD |= 0x40; + gContestResources->tv[i].unkD |= 0x40; - if (!gContestResources->field_1c[i].unkE_1) - gContestResources->field_1c[i].unkD |= 0x80; + if (!gContestResources->tv[i].unkE_1) + gContestResources->tv[i].unkD |= 0x80; } for (i = 0; i < 5; i++) @@ -5737,15 +5737,15 @@ static void sub_80DF250(void) for (i = 0; i < 5; i++) { - if (gContestResources->field_1c[var_38].unk0[i] != 0) + if (gContestResources->tv[var_38].unk0[i] != 0) { for (j = 0; j < 5; j++) { - if (gContestResources->field_1c[var_38].unk0[i] != sp0[j]) + if (gContestResources->tv[var_38].unk0[i] != sp0[j]) { if (sp0[j] == 0) { - sp0[j] = gContestResources->field_1c[var_38].unk0[i]; + sp0[j] = gContestResources->tv[var_38].unk0[i]; spC[j]++; } } @@ -5775,7 +5775,7 @@ static void sub_80DF250(void) } } - gContestResources->field_1c[var_38].unkA = sp14[Random() % count]; + gContestResources->tv[var_38].unkA = sp14[Random() % count]; } static void sub_80DF4F8(void) @@ -5812,7 +5812,7 @@ static void sub_80DF4F8(void) r10++; } - bits = gContestResources->field_1c[r7].unkC; + bits = gContestResources->tv[r7].unkC; count = 0; for (i = 0; i < 8; bits >>= 1, i++) { @@ -5821,7 +5821,7 @@ static void sub_80DF4F8(void) } r5 = Random() % count; - bits = gContestResources->field_1c[r7].unkC; + bits = gContestResources->tv[r7].unkC; count = 0; r2 = 0; for (i = 0; i < 8; bits >>= 1, r2++, i++) @@ -5837,13 +5837,13 @@ static void sub_80DF4F8(void) if (r7 == 0) { sp0[0] = 1; - r4 = gContestResources->field_1c[1].unkD; + r4 = gContestResources->tv[1].unkD; i = 2; } else { sp0[0] = 0; - r4 = gContestResources->field_1c[0].unkD; + r4 = gContestResources->tv[0].unkD; i = 1; } @@ -5852,13 +5852,13 @@ static void sub_80DF4F8(void) { if (i != r7) { - if (r4 < gContestResources->field_1c[i].unkD) + if (r4 < gContestResources->tv[i].unkD) { sp0[0] = i; - r4 = gContestResources->field_1c[i].unkD; + r4 = gContestResources->tv[i].unkD; r5 = 1; } - else if (r4 == gContestResources->field_1c[i].unkD) + else if (r4 == gContestResources->tv[i].unkD) { sp0[r5] = i; r5++; @@ -5870,7 +5870,7 @@ static void sub_80DF4F8(void) r2 = 0x80; for (i = 0; i < 8; r2 >>= 1, i++) { - r4 = gContestResources->field_1c[r6].unkD & r2; + r4 = gContestResources->tv[r6].unkD & r2; if (r4) break; } @@ -5878,7 +5878,7 @@ static void sub_80DF4F8(void) ContestLiveUpdates_BeforeInterview_1(r9); ContestLiveUpdates_BeforeInterview_2(r10); ContestLiveUpdates_BeforeInterview_3(var); - ContestLiveUpdates_BeforeInterview_4(gContestResources->field_1c[r7].unkA); + ContestLiveUpdates_BeforeInterview_4(gContestResources->tv[r7].unkA); ContestLiveUpdates_BeforeInterview_5(r4, r6); } @@ -5932,7 +5932,7 @@ static void ContestDebugPrintBitStrings(void) { txtPtr = StringCopy(text1, gText_CDot); Contest_PrintTextToBg0WindowAt(gContestantTurnOrder[i], text1, 5, 1, 7); - bits = gContestResources->field_1c[i].unkC; + bits = gContestResources->tv[i].unkC; for (j = 7; j > -1; j--) // Weird loop. { txtPtr = ConvertIntToDecimalStringN(txtPtr, bits & 1, STR_CONV_MODE_LEFT_ALIGN, 1); @@ -5952,7 +5952,7 @@ static void ContestDebugPrintBitStrings(void) for (i = 0; i < CONTESTANT_COUNT; i++) { StringCopy(text1, gText_BDot); - bits = gContestResources->field_1c[i].unkD; + bits = gContestResources->tv[i].unkD; txtPtr = &text1[2]; for (j = 7; j > -1; j--) // Weird loop. { diff --git a/src/contest_ai.c b/src/contest_ai.c index 45fd761f5f..b5e91c3149 100644 --- a/src/contest_ai.c +++ b/src/contest_ai.c @@ -384,7 +384,7 @@ static u8 GetContestantIdByTurn(u8 turn) int i; for (i = 0; i < CONTESTANT_COUNT; i++) - if (eContestResources8.turnOrder[i] == turn) + if (eContestAppealResults.turnOrder[i] == turn) break; return i; @@ -498,7 +498,7 @@ static void ContestAICmd_if_excitement_not_eq(void) static void ContestAICmd_get_user_order(void) { - eContestAI.scriptResult = eContestResources8.turnOrder[eContestAI.contestantId]; + eContestAI.scriptResult = eContestAppealResults.turnOrder[eContestAI.contestantId]; gAIScriptPtr += 1; } diff --git a/src/contest_effect.c b/src/contest_effect.c index 17384ec901..cba9b97450 100644 --- a/src/contest_effect.c +++ b/src/contest_effect.c @@ -82,98 +82,98 @@ static void ContestEffect_HighlyAppealing(void) // After this move, the user is more easily startled. static void ContestEffect_UserMoreEasilyStartled(void) { - eContestantStatus[eContestResources8.contestant].moreEasilyStartled = TRUE; - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_MORE_CONSCIOUS); + eContestantStatus[eContestAppealResults.contestant].moreEasilyStartled = TRUE; + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_MORE_CONSCIOUS); } // Makes a great appeal, but allows no more to the end. static void ContestEffect_GreatAppealButNoMoreMoves(void) { - eContestantStatus[eContestResources8.contestant].exploded = TRUE; - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_NO_APPEAL); + eContestantStatus[eContestAppealResults.contestant].exploded = TRUE; + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_NO_APPEAL); } // Can be used repeatedly without boring the JUDGE. static void ContestEffect_RepetitionNotBoring(void) { - eContestantStatus[eContestResources8.contestant].usedRepeatableMove = TRUE; - eContestantStatus[eContestResources8.contestant].repeatedMove = FALSE; - eContestantStatus[eContestResources8.contestant].moveRepeatCount = 0; + eContestantStatus[eContestAppealResults.contestant].usedRepeatableMove = TRUE; + eContestantStatus[eContestAppealResults.contestant].repeatedMove = FALSE; + eContestantStatus[eContestAppealResults.contestant].moveRepeatCount = 0; } // Can avoid being startled by others once. static void ContestEffect_AvoidStartleOnce(void) { - eContestantStatus[eContestResources8.contestant].jamSafetyCount = 1; - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_SETTLE_DOWN); + eContestantStatus[eContestAppealResults.contestant].jamSafetyCount = 1; + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_SETTLE_DOWN); } // Can avoid being startled by others. static void ContestEffect_AvoidStartle(void) { - eContestantStatus[eContestResources8.contestant].immune = TRUE; - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_OBLIVIOUS_TO_OTHERS); + eContestantStatus[eContestAppealResults.contestant].immune = TRUE; + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_OBLIVIOUS_TO_OTHERS); } // Can avoid being startled by others a little. static void ContestEffect_AvoidStartleSlightly(void) { - eContestantStatus[eContestResources8.contestant].jamReduction = 20; - SetContestantEffectStringID(eContestResources8.contestant,CONTEST_STRING_LESS_AWARE); + eContestantStatus[eContestAppealResults.contestant].jamReduction = 20; + SetContestantEffectStringID(eContestAppealResults.contestant,CONTEST_STRING_LESS_AWARE); } // After this move, the user is less likely to be startled. static void ContestEffect_UserLessEasilyStartled(void) { - eContestantStatus[eContestResources8.contestant].resistant = TRUE; - SetContestantEffectStringID(eContestResources8.contestant,CONTEST_STRING_STOPPED_CARING); + eContestantStatus[eContestAppealResults.contestant].resistant = TRUE; + SetContestantEffectStringID(eContestAppealResults.contestant,CONTEST_STRING_STOPPED_CARING); } // Slightly startles the POKéMON in front. static void ContestEffect_StartleFrontMon(void) { u8 idx = 0; - u8 a = eContestResources8.contestant; + u8 a = eContestAppealResults.contestant; - if (eContestResources8.turnOrder[a] != 0) { + if (eContestAppealResults.turnOrder[a] != 0) { int i; for (i = 0; i < CONTESTANT_COUNT; i++) { - if (eContestResources8.turnOrder[a] - 1 == eContestResources8.turnOrder[i]) + if (eContestAppealResults.turnOrder[a] - 1 == eContestAppealResults.turnOrder[i]) break; } - eContestResources8.jamQueue[0] = i; - eContestResources8.jamQueue[1] = 0xFF; + eContestAppealResults.jamQueue[0] = i; + eContestAppealResults.jamQueue[1] = 0xFF; idx = WasAtLeastOneOpponentJammed(); } if (idx == 0) - SetContestantEffectStringID2(eContestResources8.contestant, CONTEST_STRING_MESSED_UP2); - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_ATTEMPT_STARTLE); + SetContestantEffectStringID2(eContestAppealResults.contestant, CONTEST_STRING_MESSED_UP2); + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_ATTEMPT_STARTLE); } // Slightly startles those that have made appeals. static void ContestEffect_StartlePrevMons(void) { u8 idx = 0; - u8 contestant = eContestResources8.contestant; + u8 contestant = eContestAppealResults.contestant; - if (eContestResources8.turnOrder[contestant] != 0) + if (eContestAppealResults.turnOrder[contestant] != 0) { int i, j; for (i = 0, j = 0; i < CONTESTANT_COUNT; i++) { - if (eContestResources8.turnOrder[contestant] > eContestResources8.turnOrder[i]) - eContestResources8.jamQueue[j++] = i; + if (eContestAppealResults.turnOrder[contestant] > eContestAppealResults.turnOrder[i]) + eContestAppealResults.jamQueue[j++] = i; } - eContestResources8.jamQueue[j] = 0xFF; + eContestAppealResults.jamQueue[j] = 0xFF; idx = WasAtLeastOneOpponentJammed(); } if (idx == 0) - SetContestantEffectStringID2(eContestResources8.contestant, CONTEST_STRING_MESSED_UP2); - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_ATTEMPT_STARTLE); + SetContestantEffectStringID2(eContestAppealResults.contestant, CONTEST_STRING_MESSED_UP2); + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_ATTEMPT_STARTLE); } // Startles the POKéMON that appealed before the user. @@ -189,7 +189,7 @@ static void ContestEffect_StartlePrevMon2(void) else jam = 60; - eContestResources8.jam = jam; + eContestAppealResults.jam = jam; ContestEffect_StartleFrontMon(); } @@ -197,8 +197,8 @@ static void ContestEffect_StartlePrevMon2(void) static void ContestEffect_StartlePrevMons2(void) { u8 numStartled = 0; - u8 contestant = eContestResources8.contestant; - u8 turnOrder = eContestResources8.turnOrder[contestant]; + u8 contestant = eContestAppealResults.contestant; + u8 turnOrder = eContestAppealResults.turnOrder[contestant]; if (turnOrder != 0) { @@ -206,12 +206,12 @@ static void ContestEffect_StartlePrevMons2(void) for (i = 0; i < 4; i++) { - if (eContestResources8.turnOrder[contestant] > eContestResources8.turnOrder[i]) + if (eContestAppealResults.turnOrder[contestant] > eContestAppealResults.turnOrder[i]) { u8 rval, jam; - eContestResources8.jamQueue[0] = i; - eContestResources8.jamQueue[1] = 0xFF; + eContestAppealResults.jamQueue[0] = i; + eContestAppealResults.jamQueue[1] = 0xFF; rval = Random() % 10; if (rval == 0) @@ -227,31 +227,31 @@ static void ContestEffect_StartlePrevMons2(void) else jam = 60; - eContestResources8.jam = jam; + eContestAppealResults.jam = jam; if (WasAtLeastOneOpponentJammed()) numStartled++; } } } - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_ATTEMPT_STARTLE); + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_ATTEMPT_STARTLE); if (numStartled == 0) - SetContestantEffectStringID2(eContestResources8.contestant, CONTEST_STRING_MESSED_UP2); + SetContestantEffectStringID2(eContestAppealResults.contestant, CONTEST_STRING_MESSED_UP2); } // Shifts the JUDGE's attention from others. static void ContestEffect_ShiftJudgeAttention(void) { bool32 hitAny = FALSE; - u8 contestant = eContestResources8.contestant; + u8 contestant = eContestAppealResults.contestant; - if (eContestResources8.turnOrder[eContestResources8.contestant] != 0) + if (eContestAppealResults.turnOrder[eContestAppealResults.contestant] != 0) { int i; for (i = 0; i < 4; i++) { - if (eContestResources8.turnOrder[contestant] > eContestResources8.turnOrder[i] && + if (eContestAppealResults.turnOrder[contestant] > eContestAppealResults.turnOrder[i] && eContestantStatus[i].hasJudgesAttention && CanUnnerveContestant(i)) { @@ -262,10 +262,10 @@ static void ContestEffect_ShiftJudgeAttention(void) } } } - SetContestantEffectStringID(eContestResources8.contestant,CONTEST_STRING_DAZZLE_ATTEMPT); + SetContestantEffectStringID(eContestAppealResults.contestant,CONTEST_STRING_DAZZLE_ATTEMPT); if (!hitAny) { - SetContestantEffectStringID2(eContestResources8.contestant, CONTEST_STRING_MESSED_UP2); + SetContestantEffectStringID2(eContestAppealResults.contestant, CONTEST_STRING_MESSED_UP2); } } @@ -273,81 +273,81 @@ static void ContestEffect_ShiftJudgeAttention(void) static void ContestEffect_StartleMonWithJudgesAttention(void) { u8 numStartled = 0; - u8 contestant = eContestResources8.contestant; + u8 contestant = eContestAppealResults.contestant; - if (eContestResources8.turnOrder[eContestResources8.contestant] != 0) + if (eContestAppealResults.turnOrder[eContestAppealResults.contestant] != 0) { int i; for (i = 0; i < 4; i++) { - if (eContestResources8.turnOrder[contestant] > eContestResources8.turnOrder[i]) + if (eContestAppealResults.turnOrder[contestant] > eContestAppealResults.turnOrder[i]) { if (eContestantStatus[i].hasJudgesAttention) - eContestResources8.jam = 50; + eContestAppealResults.jam = 50; else - eContestResources8.jam = 10; - eContestResources8.jamQueue[0] = i; - eContestResources8.jamQueue[1] = 0xFF; + eContestAppealResults.jam = 10; + eContestAppealResults.jamQueue[0] = i; + eContestAppealResults.jamQueue[1] = 0xFF; if (WasAtLeastOneOpponentJammed()) numStartled++; } } } - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_ATTEMPT_STARTLE); + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_ATTEMPT_STARTLE); if (numStartled == 0) - SetContestantEffectStringID2(eContestResources8.contestant, CONTEST_STRING_MESSED_UP2); + SetContestantEffectStringID2(eContestAppealResults.contestant, CONTEST_STRING_MESSED_UP2); } // Jams the others, and misses one turn of appeals. static void ContestEffect_JamsOthersButMissOneTurn(void) { - eContestantStatus[eContestResources8.contestant].turnSkipped = TRUE; + eContestantStatus[eContestAppealResults.contestant].turnSkipped = TRUE; ContestEffect_StartlePrevMons(); - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_ATTEMPT_STARTLE); + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_ATTEMPT_STARTLE); } // Startles POKéMON that made a same-type appeal. static void ContestEffect_StartleMonsSameTypeAppeal(void) { - u16 move = eContestantStatus[eContestResources8.contestant].currMove; + u16 move = eContestantStatus[eContestAppealResults.contestant].currMove; JamByMoveCategory(gContestMoves[move].contestCategory); - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_ATTEMPT_STARTLE); + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_ATTEMPT_STARTLE); } // Badly startles POKéMON that made COOL appeals. static void ContestEffect_StartleMonsCoolAppeal(void) { JamByMoveCategory(CONTEST_CATEGORY_COOL); - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_ATTEMPT_STARTLE); + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_ATTEMPT_STARTLE); } // Badly startles POKéMON that made BEAUTY appeals. static void ContestEffect_StartleMonsBeautyAppeal(void) { JamByMoveCategory(CONTEST_CATEGORY_BEAUTY); - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_ATTEMPT_STARTLE); + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_ATTEMPT_STARTLE); } // Badly startles POKéMON that made CUTE appeals. static void ContestEffect_StartleMonsCuteAppeal(void) { JamByMoveCategory(CONTEST_CATEGORY_CUTE); - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_ATTEMPT_STARTLE); + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_ATTEMPT_STARTLE); } // Badly startles POKéMON that made SMART appeals. static void ContestEffect_StartleMonsSmartAppeal(void) { JamByMoveCategory(CONTEST_CATEGORY_SMART); - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_ATTEMPT_STARTLE); + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_ATTEMPT_STARTLE); } // Badly startles POKéMON that made TOUGH appeals. static void ContestEffect_StartleMonsToughAppeal(void) { JamByMoveCategory(CONTEST_CATEGORY_TOUGH); - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_ATTEMPT_STARTLE); + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_ATTEMPT_STARTLE); } // Makes one POKéMON after the user nervous. @@ -355,13 +355,13 @@ static void ContestEffect_MakeFollowingMonNervous(void) { bool32 hitAny = FALSE; - if (eContestResources8.turnOrder[eContestResources8.contestant] != 3) + if (eContestAppealResults.turnOrder[eContestAppealResults.contestant] != 3) { int i; for (i = 0; i < 4; i++) { - if (eContestResources8.turnOrder[eContestResources8.contestant] + 1 == eContestResources8.turnOrder[i]) + if (eContestAppealResults.turnOrder[eContestAppealResults.contestant] + 1 == eContestAppealResults.turnOrder[i]) { if (CanUnnerveContestant(i)) { @@ -377,9 +377,9 @@ static void ContestEffect_MakeFollowingMonNervous(void) } } } - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_UNNERVE_ATTEMPT); + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_UNNERVE_ATTEMPT); if (!hitAny) - SetContestantEffectStringID2(eContestResources8.contestant, CONTEST_STRING_MESSED_UP2); + SetContestantEffectStringID2(eContestAppealResults.contestant, CONTEST_STRING_MESSED_UP2); } // Makes all POKéMON after the user nervous. @@ -396,7 +396,7 @@ static void ContestEffect_MakeFollowingMonsNervous(void) memset(contestantIds, 0xFF, ARRAY_COUNT(contestantIds)); for (i = 0, numAfter = 0; i < CONTESTANT_COUNT; i++) { - if (eContestResources8.turnOrder[eContestResources8.contestant] < eContestResources8.turnOrder[i] && + if (eContestAppealResults.turnOrder[eContestAppealResults.contestant] < eContestAppealResults.turnOrder[i] && !eContestantStatus[i].nervous && !Contest_IsMonsTurnDisabled(i)) contestantIds[numAfter++] = i; } @@ -457,12 +457,12 @@ static void ContestEffect_MakeFollowingMonsNervous(void) SetContestantEffectStringID(contestantIds[i], CONTEST_STRING_UNAFFECTED); numUnnerved++; } - eContestResources8.unnervedPokes[contestantIds[i]] = 1; + eContestAppealResults.unnervedPokes[contestantIds[i]] = 1; } } - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_UNNERVE_WAITING); + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_UNNERVE_WAITING); if (numUnnerved == 0) - SetContestantEffectStringID2(eContestResources8.contestant, CONTEST_STRING_MESSED_UP2); + SetContestantEffectStringID2(eContestAppealResults.contestant, CONTEST_STRING_MESSED_UP2); } // Worsens the condition of those that made appeals. @@ -473,7 +473,7 @@ static void ContestEffect_WorsenConditionOfPrevMons(void) for (i = 0; i < CONTESTANT_COUNT; i++) { - if (eContestResources8.turnOrder[eContestResources8.contestant] > eContestResources8.turnOrder[i] && + if (eContestAppealResults.turnOrder[eContestAppealResults.contestant] > eContestAppealResults.turnOrder[i] && eContestantStatus[i].condition > 0 && CanUnnerveContestant(i)) { @@ -484,9 +484,9 @@ static void ContestEffect_WorsenConditionOfPrevMons(void) } } - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_TAUNT_WELL); + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_TAUNT_WELL); if (numHit == 0) - SetContestantEffectStringID2(eContestResources8.contestant, CONTEST_STRING_IGNORED); + SetContestantEffectStringID2(eContestAppealResults.contestant, CONTEST_STRING_IGNORED); } // Badly startles POKéMON in good condition. @@ -497,42 +497,42 @@ static void ContestEffect_BadlyStartlesMonsInGoodCondition(void) for (i = 0; i < CONTESTANT_COUNT; i++) { - if (eContestResources8.turnOrder[eContestResources8.contestant] > eContestResources8.turnOrder[i]) + if (eContestAppealResults.turnOrder[eContestAppealResults.contestant] > eContestAppealResults.turnOrder[i]) { if (eContestantStatus[i].condition > 0) - eContestResources8.jam = 40; + eContestAppealResults.jam = 40; else - eContestResources8.jam = 10; - eContestResources8.jamQueue[0] = i; - eContestResources8.jamQueue[1] = 0xFF; + eContestAppealResults.jam = 10; + eContestAppealResults.jamQueue[0] = i; + eContestAppealResults.jamQueue[1] = 0xFF; if (WasAtLeastOneOpponentJammed()) numHit++; } } - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_JAM_WELL); + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_JAM_WELL); if (numHit == 0) - SetContestantEffectStringID2(eContestResources8.contestant, CONTEST_STRING_IGNORED); + SetContestantEffectStringID2(eContestAppealResults.contestant, CONTEST_STRING_IGNORED); } // The appeal works great if performed first. static void ContestEffect_BetterIfFirst(void) { - if (gContestantTurnOrder[eContestResources8.contestant] == 0) + if (gContestantTurnOrder[eContestAppealResults.contestant] == 0) { - u16 move = eContestantStatus[eContestResources8.contestant].currMove; - eContestantStatus[eContestResources8.contestant].appeal2 += 2 * gContestEffects[gContestMoves[move].effect].appeal; - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_HUSTLE_STANDOUT); + u16 move = eContestantStatus[eContestAppealResults.contestant].currMove; + eContestantStatus[eContestAppealResults.contestant].appeal2 += 2 * gContestEffects[gContestMoves[move].effect].appeal; + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_HUSTLE_STANDOUT); } } // The appeal works great if performed last. static void ContestEffect_BetterIfLast(void) { - if (gContestantTurnOrder[eContestResources8.contestant] == 3) + if (gContestantTurnOrder[eContestAppealResults.contestant] == 3) { - u16 move = eContestantStatus[eContestResources8.contestant].currMove; - eContestantStatus[eContestResources8.contestant].appeal2 += 2 * gContestEffects[gContestMoves[move].effect].appeal; - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_WORK_HARD_UNNOTICED); + u16 move = eContestantStatus[eContestAppealResults.contestant].currMove; + eContestantStatus[eContestAppealResults.contestant].appeal2 += 2 * gContestEffects[gContestMoves[move].effect].appeal; + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_WORK_HARD_UNNOTICED); } } @@ -544,22 +544,22 @@ static void ContestEffect_AppealAsGoodAsPrevOnes(void) for (i = 0, appealSum = 0; i < CONTESTANT_COUNT; i++) { - if (eContestResources8.turnOrder[eContestResources8.contestant] > eContestResources8.turnOrder[i]) + if (eContestAppealResults.turnOrder[eContestAppealResults.contestant] > eContestAppealResults.turnOrder[i]) appealSum += eContestantStatus[i].appeal2; } if (appealSum < 0) appealSum = 0; - if (eContestResources8.turnOrder[eContestResources8.contestant] == 0 || appealSum == 0) + if (eContestAppealResults.turnOrder[eContestAppealResults.contestant] == 0 || appealSum == 0) { - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_APPEAL_NOT_WELL); + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_APPEAL_NOT_WELL); } else { - eContestantStatus[eContestResources8.contestant].appeal2 += appealSum / 2; - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_WORK_BEFORE); + eContestantStatus[eContestAppealResults.contestant].appeal2 += appealSum / 2; + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_WORK_BEFORE); } - eContestantStatus[eContestResources8.contestant].appeal2 = RoundTowardsZero(eContestantStatus[eContestResources8.contestant].appeal2); + eContestantStatus[eContestAppealResults.contestant].appeal2 = RoundTowardsZero(eContestantStatus[eContestAppealResults.contestant].appeal2); } // Makes the appeal as good as the one before it. @@ -567,42 +567,42 @@ static void ContestEffect_AppealAsGoodAsPrevOne(void) { s16 appeal = 0; - if (eContestResources8.turnOrder[eContestResources8.contestant] != 0) + if (eContestAppealResults.turnOrder[eContestAppealResults.contestant] != 0) { int i; for (i = 0; i < CONTESTANT_COUNT; i++) { - if (eContestResources8.turnOrder[eContestResources8.contestant] - 1 == eContestResources8.turnOrder[i]) + if (eContestAppealResults.turnOrder[eContestAppealResults.contestant] - 1 == eContestAppealResults.turnOrder[i]) appeal = eContestantStatus[i].appeal2; } } - if (eContestResources8.turnOrder[eContestResources8.contestant] == 0 || appeal <= 0) + if (eContestAppealResults.turnOrder[eContestAppealResults.contestant] == 0 || appeal <= 0) { - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_APPEAL_NOT_WELL2); + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_APPEAL_NOT_WELL2); } else { - eContestantStatus[eContestResources8.contestant].appeal2 += appeal; - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_WORK_PRECEDING); + eContestantStatus[eContestAppealResults.contestant].appeal2 += appeal; + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_WORK_PRECEDING); } } // The appeal works better the later it is performed. static void ContestEffect_BetterWhenLater(void) { - u8 whichTurn = eContestResources8.turnOrder[eContestResources8.contestant]; + u8 whichTurn = eContestAppealResults.turnOrder[eContestAppealResults.contestant]; if (whichTurn == 0) - eContestantStatus[eContestResources8.contestant].appeal2 = 10; + eContestantStatus[eContestAppealResults.contestant].appeal2 = 10; else - eContestantStatus[eContestResources8.contestant].appeal2 = 20 * whichTurn; + eContestantStatus[eContestAppealResults.contestant].appeal2 = 20 * whichTurn; if (whichTurn == 0) - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_APPEAL_NOT_SHOWN_WELL); + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_APPEAL_NOT_SHOWN_WELL); else if (whichTurn == 1) - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_APPEAL_SLIGHTLY_WELL); + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_APPEAL_SLIGHTLY_WELL); else if (whichTurn == 2) - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_APPEAL_PRETTY_WELL); + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_APPEAL_PRETTY_WELL); else - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_APPEAL_EXCELLENTLY); + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_APPEAL_EXCELLENTLY); } // The appeal's quality varies depending on its timing. @@ -614,31 +614,31 @@ static void ContestEffect_QualityDependsOnTiming(void) if (rval < 3) { appeal = 10; - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_APPEAL_NOT_VERY_WELL); + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_APPEAL_NOT_VERY_WELL); } else if (rval < 6) { appeal = 20; - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_APPEAL_SLIGHTLY_WELL2); + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_APPEAL_SLIGHTLY_WELL2); } else if (rval < 8) { appeal = 40; - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_APPEAL_PRETTY_WELL2); + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_APPEAL_PRETTY_WELL2); } else if (rval < 9) { appeal = 60; - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_APPEAL_VERY_WELL); + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_APPEAL_VERY_WELL); } else { appeal = 80; - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_APPEAL_EXCELLENTLY2); + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_APPEAL_EXCELLENTLY2); } - eContestantStatus[eContestResources8.contestant].appeal2 = appeal; + eContestantStatus[eContestAppealResults.contestant].appeal2 = appeal; } static void ContestEffect_BetterIfSameType(void) { - s8 turnOrder = eContestResources8.turnOrder[eContestResources8.contestant]; + s8 turnOrder = eContestAppealResults.turnOrder[eContestAppealResults.contestant]; s8 i = turnOrder - 1, j; u16 move; @@ -649,7 +649,7 @@ static void ContestEffect_BetterIfSameType(void) { for (j = 0; j < CONTESTANT_COUNT; j++) { - if (eContestResources8.turnOrder[j] == i) + if (eContestAppealResults.turnOrder[j] == i) break; } if (eContestantStatus[j].noMoreTurns || eContestantStatus[j].nervous || eContestantStatus[j].numTurnsSkipped) @@ -663,29 +663,29 @@ static void ContestEffect_BetterIfSameType(void) } } - move = eContestantStatus[eContestResources8.contestant].currMove; + move = eContestantStatus[eContestAppealResults.contestant].currMove; if (gContestMoves[move].contestCategory == gContestMoves[eContestantStatus[j].currMove].contestCategory) { - eContestantStatus[eContestResources8.contestant].appeal2 += gContestEffects[gContestMoves[move].effect].appeal * 2; - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_SAME_TYPE_GOOD); + eContestantStatus[eContestAppealResults.contestant].appeal2 += gContestEffects[gContestMoves[move].effect].appeal * 2; + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_SAME_TYPE_GOOD); } } // Works well if different in type than the one before. static void ContestEffect_BetterIfDiffType(void) { - if (eContestResources8.turnOrder[eContestResources8.contestant] != 0) + if (eContestAppealResults.turnOrder[eContestAppealResults.contestant] != 0) { - u16 move = eContestantStatus[eContestResources8.contestant].currMove; + u16 move = eContestantStatus[eContestAppealResults.contestant].currMove; int i; for (i = 0; i < CONTESTANT_COUNT; i++) { - if (eContestResources8.turnOrder[eContestResources8.contestant] - 1 == eContestResources8.turnOrder[i] && + if (eContestAppealResults.turnOrder[eContestAppealResults.contestant] - 1 == eContestAppealResults.turnOrder[i] && gContestMoves[move].contestCategory != gContestMoves[eContestantStatus[i].currMove].contestCategory) { - eContestantStatus[eContestResources8.contestant].appeal2 += gContestEffects[gContestMoves[move].effect].appeal * 2; - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_DIFF_TYPE_GOOD); + eContestantStatus[eContestAppealResults.contestant].appeal2 += gContestEffects[gContestMoves[move].effect].appeal * 2; + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_DIFF_TYPE_GOOD); break; } } @@ -695,23 +695,23 @@ static void ContestEffect_BetterIfDiffType(void) // Affected by how well the appeal in front goes. static void ContestEffect_AffectedByPrevAppeal(void) { - if (eContestResources8.turnOrder[eContestResources8.contestant] != 0) + if (eContestAppealResults.turnOrder[eContestAppealResults.contestant] != 0) { int i; for (i = 0; i < CONTESTANT_COUNT; i++) { - if (eContestResources8.turnOrder[eContestResources8.contestant] - 1 == eContestResources8.turnOrder[i]) + if (eContestAppealResults.turnOrder[eContestAppealResults.contestant] - 1 == eContestAppealResults.turnOrder[i]) { - if (eContestantStatus[eContestResources8.contestant].appeal2 > eContestantStatus[i].appeal2) + if (eContestantStatus[eContestAppealResults.contestant].appeal2 > eContestantStatus[i].appeal2) { - eContestantStatus[eContestResources8.contestant].appeal2 *= 2; - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_STOOD_OUT_AS_MUCH); + eContestantStatus[eContestAppealResults.contestant].appeal2 *= 2; + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_STOOD_OUT_AS_MUCH); } - else if (eContestantStatus[eContestResources8.contestant].appeal2 < eContestantStatus[i].appeal2) + else if (eContestantStatus[eContestAppealResults.contestant].appeal2 < eContestantStatus[i].appeal2) { - eContestantStatus[eContestResources8.contestant].appeal2 = 0; - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_NOT_AS_WELL); + eContestantStatus[eContestAppealResults.contestant].appeal2 = 0; + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_NOT_AS_WELL); } } } @@ -721,26 +721,26 @@ static void ContestEffect_AffectedByPrevAppeal(void) // Ups the user's condition. Helps prevent nervousness. static void ContestEffect_ImproveConditionPreventNervousness(void) { - if (eContestantStatus[eContestResources8.contestant].condition < 30) + if (eContestantStatus[eContestAppealResults.contestant].condition < 30) { - eContestantStatus[eContestResources8.contestant].condition += 10; - eContestantStatus[eContestResources8.contestant].conditionMod = 1; - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_CONDITION_ROSE); + eContestantStatus[eContestAppealResults.contestant].condition += 10; + eContestantStatus[eContestAppealResults.contestant].conditionMod = 1; + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_CONDITION_ROSE); } else { - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_NO_CONDITION_IMPROVE); + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_NO_CONDITION_IMPROVE); } } // The appeal works well if the user's condition is good. static void ContestEffect_BetterWithGoodCondition(void) { - eContestantStatus[eContestResources8.contestant].appealTripleCondition = TRUE; - if (eContestantStatus[eContestResources8.contestant].condition != 0) - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_HOT_STATUS); + eContestantStatus[eContestAppealResults.contestant].appealTripleCondition = TRUE; + if (eContestantStatus[eContestAppealResults.contestant].condition != 0) + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_HOT_STATUS); else - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_BAD_CONDITION_WEAK_APPEAL); + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_BAD_CONDITION_WEAK_APPEAL); } // The next appeal can be made earlier next turn. @@ -755,13 +755,13 @@ static void ContestEffect_NextAppealEarlier(void) for (i = 0; i < CONTESTANT_COUNT; i++) turnOrder[i] = eContestantStatus[i].nextTurnOrder; - turnOrder[eContestResources8.contestant] = 0xFF; + turnOrder[eContestAppealResults.contestant] = 0xFF; for (i = 0; i < CONTESTANT_COUNT; i++) { for (j = 0; j < CONTESTANT_COUNT; j++) { - if (j != eContestResources8.contestant && + if (j != eContestAppealResults.contestant && i == turnOrder[j] && turnOrder[j] == eContestantStatus[j].nextTurnOrder) { @@ -773,15 +773,15 @@ static void ContestEffect_NextAppealEarlier(void) break; } - turnOrder[eContestResources8.contestant] = 0; - eContestantStatus[eContestResources8.contestant].turnOrderMod = 1; + turnOrder[eContestAppealResults.contestant] = 0; + eContestantStatus[eContestAppealResults.contestant].turnOrderMod = 1; for (i = 0; i < CONTESTANT_COUNT; i++) { eContestantStatus[i].nextTurnOrder = turnOrder[i]; } - eContestantStatus[eContestResources8.contestant].turnOrderModAction = 1; - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_MOVE_UP_LINE); + eContestantStatus[eContestAppealResults.contestant].turnOrderModAction = 1; + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_MOVE_UP_LINE); } } @@ -797,13 +797,13 @@ static void ContestEffect_NextAppealLater(void) for (i = 0; i < CONTESTANT_COUNT; i++) turnOrder[i] = eContestantStatus[i].nextTurnOrder; - turnOrder[eContestResources8.contestant] = 0xFF; + turnOrder[eContestAppealResults.contestant] = 0xFF; for (i = CONTESTANT_COUNT - 1; i > -1; i--) { for (j = 0; j < CONTESTANT_COUNT; j++) { - if (j != eContestResources8.contestant && + if (j != eContestAppealResults.contestant && i == turnOrder[j] && turnOrder[j] == eContestantStatus[j].nextTurnOrder) { @@ -815,15 +815,15 @@ static void ContestEffect_NextAppealLater(void) break; } - turnOrder[eContestResources8.contestant] = CONTESTANT_COUNT - 1; - eContestantStatus[eContestResources8.contestant].turnOrderMod = 1; + turnOrder[eContestAppealResults.contestant] = CONTESTANT_COUNT - 1; + eContestantStatus[eContestAppealResults.contestant].turnOrderMod = 1; for (i = 0; i < CONTESTANT_COUNT; i++) { eContestantStatus[i].nextTurnOrder = turnOrder[i]; } - eContestantStatus[eContestResources8.contestant].turnOrderModAction = 2; - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_MOVE_BACK_LINE); + eContestantStatus[eContestAppealResults.contestant].turnOrderModAction = 2; + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_MOVE_BACK_LINE); } } @@ -874,17 +874,17 @@ static void ContestEffect_ScrambleNextTurnOrder(void) eContestantStatus[i].nextTurnOrder = turnOrder[i]; eContestantStatus[i].turnOrderMod = 2; } - eContestantStatus[eContestResources8.contestant].turnOrderModAction = 3; - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_SCRAMBLE_ORDER); + eContestantStatus[eContestAppealResults.contestant].turnOrderModAction = 3; + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_SCRAMBLE_ORDER); } } // An appeal that excites the audience in any CONTEST. static void ContestEffect_ExciteAudienceInAnyContest(void) { - if (gContestMoves[eContestantStatus[eContestResources8.contestant].currMove].contestCategory != gSpecialVar_ContestCategory) + if (gContestMoves[eContestantStatus[eContestAppealResults.contestant].currMove].contestCategory != gSpecialVar_ContestCategory) { - eContestantStatus[eContestResources8.contestant].overrideCategoryExcitementMod = TRUE; + eContestantStatus[eContestAppealResults.contestant].overrideCategoryExcitementMod = TRUE; } } @@ -896,24 +896,24 @@ static void ContestEffect_BadlyStartleMonsWithGoodAppeals(void) for (i = 0; i < CONTESTANT_COUNT; i++) { - if (eContestResources8.turnOrder[eContestResources8.contestant] > eContestResources8.turnOrder[i]) + if (eContestAppealResults.turnOrder[eContestAppealResults.contestant] > eContestAppealResults.turnOrder[i]) { if (eContestantStatus[i].appeal2 > 0) { - eContestResources8.jam = eContestantStatus[i].appeal2 / 2; - eContestResources8.jam = RoundUp(eContestResources8.jam); + eContestAppealResults.jam = eContestantStatus[i].appeal2 / 2; + eContestAppealResults.jam = RoundUp(eContestAppealResults.jam); } else - eContestResources8.jam = 10; - eContestResources8.jamQueue[0] = i; - eContestResources8.jamQueue[1] = 0xFF; + eContestAppealResults.jam = 10; + eContestAppealResults.jamQueue[0] = i; + eContestAppealResults.jamQueue[1] = 0xFF; if (WasAtLeastOneOpponentJammed()) numJammed++; } } if (numJammed == 0) - SetContestantEffectStringID2(eContestResources8.contestant, CONTEST_STRING_MESSED_UP2); - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_ATTEMPT_STARTLE); + SetContestantEffectStringID2(eContestAppealResults.contestant, CONTEST_STRING_MESSED_UP2); + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_ATTEMPT_STARTLE); } // The appeal works best the more the crowd is excited. @@ -924,39 +924,39 @@ static void ContestEffect_BetterWhenAudienceExcited(void) if (eContest.applauseLevel == 0) { appeal = 10; - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_APPEAL_NOT_VERY_WELL); + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_APPEAL_NOT_VERY_WELL); } else if (eContest.applauseLevel == 1) { appeal = 20; - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_APPEAL_SLIGHTLY_WELL2); + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_APPEAL_SLIGHTLY_WELL2); } else if (eContest.applauseLevel == 2) { appeal = 30; - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_APPEAL_PRETTY_WELL2); + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_APPEAL_PRETTY_WELL2); } else if (eContest.applauseLevel == 3) { appeal = 50; - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_APPEAL_VERY_WELL); + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_APPEAL_VERY_WELL); } else { appeal = 60; - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_APPEAL_EXCELLENTLY2); + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_APPEAL_EXCELLENTLY2); } - eContestantStatus[eContestResources8.contestant].appeal2 = appeal; + eContestantStatus[eContestAppealResults.contestant].appeal2 = appeal; } // Temporarily stops the crowd from growing excited. static void ContestEffect_DontExciteAudience(void) { - if (!eContestResources10.excitementFrozen) + if (!eContestExcitement.frozen) { - eContestResources10.excitementFrozen = TRUE; - eContestResources10.excitementFreezer = eContestResources8.contestant; - SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_ATTRACTED_ATTENTION); + eContestExcitement.frozen = TRUE; + eContestExcitement.freezer = eContestAppealResults.contestant; + SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_ATTRACTED_ATTENTION); } } @@ -967,26 +967,26 @@ static void JamByMoveCategory(u8 category) for (i = 0; i < CONTESTANT_COUNT; i++) { - if (eContestResources8.turnOrder[eContestResources8.contestant] > eContestResources8.turnOrder[i]) + if (eContestAppealResults.turnOrder[eContestAppealResults.contestant] > eContestAppealResults.turnOrder[i]) { if (category == gContestMoves[eContestantStatus[i].currMove].contestCategory) - eContestResources8.jam = 40; + eContestAppealResults.jam = 40; else - eContestResources8.jam = 10; - eContestResources8.jamQueue[0] = i; - eContestResources8.jamQueue[1] = 0xFF; + eContestAppealResults.jam = 10; + eContestAppealResults.jamQueue[0] = i; + eContestAppealResults.jamQueue[1] = 0xFF; if (WasAtLeastOneOpponentJammed()) numJammed++; } } if (numJammed == 0) - SetContestantEffectStringID2(eContestResources8.contestant, CONTEST_STRING_MESSED_UP2); + SetContestantEffectStringID2(eContestAppealResults.contestant, CONTEST_STRING_MESSED_UP2); } static bool8 CanUnnerveContestant(u8 i) { - eContestResources8.unnervedPokes[i] = 1; + eContestAppealResults.unnervedPokes[i] = 1; if (eContestantStatus[i].immune) { SetContestantEffectStringID(i, CONTEST_STRING_AVOID_SEEING); @@ -1013,32 +1013,32 @@ static bool8 WasAtLeastOneOpponentJammed(void) s16 jamBuffer[CONTESTANT_COUNT] = {0}; int i; - for (i = 0; eContestResources8.jamQueue[i] != 0xFF; i++) + for (i = 0; eContestAppealResults.jamQueue[i] != 0xFF; i++) { - u8 contestant = eContestResources8.jamQueue[i]; + u8 contestant = eContestAppealResults.jamQueue[i]; if (CanUnnerveContestant(contestant)) { - eContestResources8.jam2 = eContestResources8.jam; + eContestAppealResults.jam2 = eContestAppealResults.jam; if (eContestantStatus[contestant].moreEasilyStartled) - eContestResources8.jam2 *= 2; + eContestAppealResults.jam2 *= 2; if (eContestantStatus[contestant].resistant) { - eContestResources8.jam2 = 10; + eContestAppealResults.jam2 = 10; SetContestantEffectStringID(contestant, CONTEST_STRING_LITTLE_DISTRACTED); } else { - eContestResources8.jam2 -= eContestantStatus[contestant].jamReduction; - if (eContestResources8.jam2 <= 0) + eContestAppealResults.jam2 -= eContestantStatus[contestant].jamReduction; + if (eContestAppealResults.jam2 <= 0) { - eContestResources8.jam2 = 0; + eContestAppealResults.jam2 = 0; SetContestantEffectStringID(contestant, CONTEST_STRING_NOT_FAZED); } else { - JamContestant(contestant, eContestResources8.jam2); - SetStartledString(contestant, eContestResources8.jam2); - jamBuffer[contestant] = eContestResources8.jam2; + JamContestant(contestant, eContestAppealResults.jam2); + SetStartledString(contestant, eContestAppealResults.jam2); + jamBuffer[contestant] = eContestAppealResults.jam2; } } } diff --git a/src/contest_link.c b/src/contest_link.c index aff24052aa..1716d6a21d 100644 --- a/src/contest_link.c +++ b/src/contest_link.c @@ -12,9 +12,13 @@ static void Task_LinkContest_StartInitFlags(u8); static void Task_LinkContest_InitFlags(u8); -#define tState data[0] -#define tCategory data[9] -#define tTimer data[11] +#define tState data[0] +#define tDelayTimer data[1] +#define tCategories(i) data[(i) + 1] +#define tLeaderIds(i) data[(i) + 5] +#define tCategory data[9] +#define tTimer data[11] +#define tStandbyState data[12] bool32 LinkContest_SendBlock(void *src, u16 size) { @@ -121,7 +125,7 @@ void Task_LinkContest_CommunicateMonsRS(u8 taskId) { int i; - if (!LinkContest_TryLinkStandby(&gTasks[taskId].data[12])) + if (!LinkContest_TryLinkStandby(&gTasks[taskId].tStandbyState)) return; switch (gTasks[taskId].tState) @@ -166,7 +170,7 @@ void Task_LinkContest_CommunicateMonsRS(u8 taskId) default: gTasks[taskId].tState = 0; gTasks[taskId].tTimer = 0; - gTasks[taskId].data[12] = 0; + gTasks[taskId].tStandbyState = 0; SwitchTaskToFollowupFunc(taskId); break; } @@ -206,7 +210,7 @@ void Task_LinkContest_CommunicateCategoryRS(u8 taskId) { int i; - if (!LinkContest_TryLinkStandby(&gTasks[taskId].data[12])) + if (!LinkContest_TryLinkStandby(&gTasks[taskId].tStandbyState)) return; switch (gTasks[taskId].tState) @@ -227,7 +231,7 @@ void Task_LinkContest_CommunicateCategoryRS(u8 taskId) if (LinkContest_GetBlockReceivedFromAllPlayers()) { for (i = 0; i < gNumLinkContestPlayers; i++) - gTasks[taskId].data[i + 1] = gBlockRecvBuffer[i][0]; + gTasks[taskId].tCategories(i) = gBlockRecvBuffer[i][0]; gTasks[taskId].tState++; } @@ -242,7 +246,7 @@ void Task_LinkContest_CommunicateCategoryRS(u8 taskId) default: gTasks[taskId].tState = 0; gTasks[taskId].tTimer = 0; - gTasks[taskId].data[12] = 0; + gTasks[taskId].tStandbyState = 0; SwitchTaskToFollowupFunc(taskId); break; } @@ -323,9 +327,9 @@ void Task_LinkContest_CommunicateFinalStandings(u8 taskId) case 5: case 8: case 11: - if (gTasks[taskId].data[1]++ > 10) + if (gTasks[taskId].tDelayTimer++ > 10) { - gTasks[taskId].data[1] = 0; + gTasks[taskId].tDelayTimer = 0; gTasks[taskId].tState++; } break; @@ -378,7 +382,7 @@ void Task_LinkContest_CommunicateFinalStandings(u8 taskId) } } -void sub_80FCC88(u8 taskId) +void Task_LinkContest_CommunicateAppealsState(u8 taskId) { switch (gTasks[taskId].tState) { @@ -400,37 +404,37 @@ void sub_80FCC88(u8 taskId) case 5: case 8: case 11: - if (gTasks[taskId].data[1]++ > 10) + if (gTasks[taskId].tDelayTimer++ > 10) { - gTasks[taskId].data[1] = 0; + gTasks[taskId].tDelayTimer = 0; gTasks[taskId].tState++; } break; case 3: if (IsLinkTaskFinished()) { - if (LinkContest_SendBlock(gContestResources->field_8, sizeof(struct UnknownContestStruct7)) == 1) + if (LinkContest_SendBlock(gContestResources->appealResults, sizeof(struct ContestAppealMoveResults)) == 1) gTasks[taskId].tState++; } break; case 4: if (LinkContest_GetBlockReceivedFromAllPlayers()) { - memcpy(gContestResources->field_8, gBlockRecvBuffer[gContestLinkLeaderIndex], sizeof(struct UnknownContestStruct7)); + memcpy(gContestResources->appealResults, gBlockRecvBuffer[gContestLinkLeaderIndex], sizeof(struct ContestAppealMoveResults)); gTasks[taskId].tState++; } break; case 6: if (IsLinkTaskFinished()) { - if (LinkContest_SendBlock(gContestResources->field_10, sizeof(struct UnknownContestStruct5)) == 1) + if (LinkContest_SendBlock(gContestResources->excitement, sizeof(struct ContestExcitement)) == 1) gTasks[taskId].tState++; } break; case 7: if (LinkContest_GetBlockReceivedFromAllPlayers()) { - memcpy(gContestResources->field_10, gBlockRecvBuffer[gContestLinkLeaderIndex], sizeof(struct UnknownContestStruct5)); + memcpy(gContestResources->excitement, gBlockRecvBuffer[gContestLinkLeaderIndex], sizeof(struct ContestExcitement)); gTasks[taskId].tState++; } break; @@ -459,7 +463,7 @@ void Task_LinkContest_CommunicateLeaderIdsRS(u8 taskId) { int i; - if (!LinkContest_TryLinkStandby(&gTasks[taskId].data[12])) + if (!LinkContest_TryLinkStandby(&gTasks[taskId].tStandbyState)) return; switch (gTasks[taskId].tState) @@ -480,7 +484,7 @@ void Task_LinkContest_CommunicateLeaderIdsRS(u8 taskId) if (LinkContest_GetBlockReceivedFromAllPlayers()) { for (i = 0; i < CONTESTANT_COUNT; i++) - gTasks[taskId].data[i + 5] = gBlockRecvBuffer[i][0]; + gTasks[taskId].tLeaderIds(i) = gBlockRecvBuffer[i][0]; gTasks[taskId].tState++; } @@ -495,7 +499,7 @@ void Task_LinkContest_CommunicateLeaderIdsRS(u8 taskId) default: gTasks[taskId].tState = 0; gTasks[taskId].tTimer = 0; - gTasks[taskId].data[12] = 0; + gTasks[taskId].tStandbyState = 0; SwitchTaskToFollowupFunc(taskId); break; } @@ -503,7 +507,7 @@ void Task_LinkContest_CommunicateLeaderIdsRS(u8 taskId) void Task_LinkContest_CommunicateRound1Points(u8 taskId) { - if (!LinkContest_TryLinkStandby(&gTasks[taskId].data[12])) + if (!LinkContest_TryLinkStandby(&gTasks[taskId].tStandbyState)) return; switch (gTasks[taskId].tState) @@ -524,7 +528,7 @@ void Task_LinkContest_CommunicateRound1Points(u8 taskId) break; default: gTasks[taskId].tState = 0; - gTasks[taskId].data[12] = 0; + gTasks[taskId].tStandbyState = 0; SwitchTaskToFollowupFunc(taskId); break; } @@ -532,7 +536,7 @@ void Task_LinkContest_CommunicateRound1Points(u8 taskId) void Task_LinkContest_CommunicateTurnOrder(u8 taskId) { - if (!LinkContest_TryLinkStandby(&gTasks[taskId].data[12])) + if (!LinkContest_TryLinkStandby(&gTasks[taskId].tStandbyState)) return; switch (gTasks[taskId].tState) @@ -553,7 +557,7 @@ void Task_LinkContest_CommunicateTurnOrder(u8 taskId) break; default: gTasks[taskId].tState = 0; - gTasks[taskId].data[12] = 0; + gTasks[taskId].tStandbyState = 0; SwitchTaskToFollowupFunc(taskId); break; } From e98e4652fd252edfde79155d21ee55a80a1f94ce Mon Sep 17 00:00:00 2001 From: GriffinR Date: Sun, 16 Aug 2020 05:07:44 -0400 Subject: [PATCH 067/101] Document contest live updates --- data/text/tv.inc | 66 ++-- include/constants/tv.h | 54 +++ include/contest.h | 27 +- include/event_scripts.h | 66 ++-- include/global.tv.h | 20 +- include/tv.h | 10 +- src/contest.c | 418 ++++++++++++----------- src/tv.c | 729 ++++++++++++++++++++-------------------- 8 files changed, 732 insertions(+), 658 deletions(-) diff --git a/data/text/tv.inc b/data/text/tv.inc index 63a1eff652..6f678d8244 100644 --- a/data/text/tv.inc +++ b/data/text/tv.inc @@ -2436,7 +2436,7 @@ gTVSafariFanClubText10:: @ 08289D33 .string "and make the challenge yourself!\p" .string "Until next time, cheerio!$" -gTVContestLiveUpdatesText00:: @ 08289DD6 +ContestLiveUpdates_Text_Intro:: @ 08289DD6 .string "“POKéMON CONTEST LIVE UPDATES!”\p" .string "MC: Thanks for joining us!\p" .string "We're live from the just-ended\n" @@ -2455,117 +2455,117 @@ gTVContestLiveUpdatesText00:: @ 08289DD6 .string "MC: Let's hear what the fans have\n" .string "to say about this CONTEST.$" -gTVContestLiveUpdatesText01:: @ 08289F53 +ContestLiveUpdates_Text_WonBothRounds:: @ 08289F53 .string "Spectator: The {STR_VAR_2} was tops in\n" .string "both primary and secondary judging!\p" .string "That {STR_VAR_2} will keep winning!$" -gTVContestLiveUpdatesText02:: @ 08289FB0 +ContestLiveUpdates_Text_BetterRound2:: @ 08289FB0 .string "Spectator: The {STR_VAR_2} didn't do\n" .string "well in the primary judging, but it\l" .string "cleaned up in the secondary judging!\p" .string "It was a miraculous comeback\n" .string "for that {STR_VAR_2}. Yippee!$" -gTVContestLiveUpdatesText03:: @ 0828A047 +ContestLiveUpdates_Text_EqualRounds:: @ 0828A047 .string "Spectator: The {STR_VAR_2} remained\n" .string "consistent throughout both primary\l" .string "and secondary judging.\p" .string "{STR_VAR_3} and the {STR_VAR_2},\n" .string "they're no ordinary combo!$" -gTVContestLiveUpdatesText04:: @ 0828A0C6 +ContestLiveUpdates_Text_BetterRound1:: @ 0828A0C6 .string "Spectator: In terms of being {STR_VAR_1},\n" .string "that {STR_VAR_2} was outstanding.\p" .string "I hope it makes better appeals\n" .string "next time, though.$" -gTVContestLiveUpdatesText05:: @ 0828A132 +ContestLiveUpdates_Text_GotNervous:: @ 0828A132 .string "Spectator: When the {STR_VAR_2} got\n" .string "nervous, I couldn't stop myself from\l" .string "shouting encouragement.\p" .string "I'd like to say this to that\n" .string "{STR_VAR_2}, “Congratulations!”$" -gTVContestLiveUpdatesText06:: @ 0828A1BE +ContestLiveUpdates_Text_StartledFoes:: @ 0828A1BE .string "Spectator: That {STR_VAR_2}'s appeal\n" .string "startled even me!\p" .string "{STR_VAR_2}, you were awesome!$" -gTVContestLiveUpdatesText07:: @ 0828A202 +ContestLiveUpdates_Text_UsedCombo:: @ 0828A202 .string "Spectator: That {STR_VAR_2}'s combo\n" .string "appeal was stunning!\p" .string "It's shaken me to the core!$" -gTVContestLiveUpdatesText08:: @ 0828A24E +ContestLiveUpdates_Text_ExcitingAppeal:: @ 0828A24E .string "Spectator: The winning {STR_VAR_2}'s\n" .string "appeal got my heart pounding!$" -gTVContestLiveUpdatesText09:: @ 0828A288 +ContestLiveUpdates_Text_WasCool:: @ 0828A288 .string "{STR_VAR_2}!\n" .string "You were cool!$" -gTVContestLiveUpdatesText10:: @ 0828A29B +ContestLiveUpdates_Text_WasBeautiful:: @ 0828A29B .string "{STR_VAR_2}!\n" .string "You were beautiful!$" -gTVContestLiveUpdatesText11:: @ 0828A2B3 +ContestLiveUpdates_Text_WasCute:: @ 0828A2B3 .string "{STR_VAR_2}!\n" .string "You were cute!$" -gTVContestLiveUpdatesText12:: @ 0828A2C6 +ContestLiveUpdates_Text_WasSmart:: @ 0828A2C6 .string "{STR_VAR_2}!\n" .string "You were smart!$" -gTVContestLiveUpdatesText13:: @ 0828A2DA +ContestLiveUpdates_Text_WasTough:: @ 0828A2DA .string "{STR_VAR_2}!\n" .string "You were tough!$" -gTVContestLiveUpdatesText14:: @ 0828A2EE +ContestLiveUpdates_Text_VeryExcitingAppeal:: @ 0828A2EE .string "Spectator: The winning {STR_VAR_2}'s\n" .string "appeal still has my heart pounding!$" -gTVContestLiveUpdatesText15:: @ 0828A32E +ContestLiveUpdates_Text_VeryCool:: @ 0828A32E .string "{STR_VAR_2}!\n" .string "You're the last word in cool!$" -gTVContestLiveUpdatesText16:: @ 0828A350 +ContestLiveUpdates_Text_VeryBeautiful:: @ 0828A350 .string "{STR_VAR_2}!\n" .string "You're the most beautiful!$" -gTVContestLiveUpdatesText17:: @ 0828A36F +ContestLiveUpdates_Text_VeryCute:: @ 0828A36F .string "{STR_VAR_2}!\n" .string "You're simply the cutest!$" -gTVContestLiveUpdatesText18:: @ 0828A38D +ContestLiveUpdates_Text_VerySmart:: @ 0828A38D .string "{STR_VAR_2}!\n" .string "You're the smartest among the smart!$" -gTVContestLiveUpdatesText19:: @ 0828A3B6 +ContestLiveUpdates_Text_VeryTough:: @ 0828A3B6 .string "{STR_VAR_2}!\n" .string "You're the toughest of the tough!$" -gTVContestLiveUpdatesText20:: @ 0828A3DC +ContestLiveUpdates_Text_TookBreak:: @ 0828A3DC .string "Spectator: Even when the {STR_VAR_2}\n" .string "took a break from making appeals,\l" .string "I couldn't take my eyes off it.\p" .string "I'm captivated by that {STR_VAR_2}.$" -gTVContestLiveUpdatesText21:: @ 0828A455 +ContestLiveUpdates_Text_GotStartled:: @ 0828A455 .string "Spectator: When the {STR_VAR_2} was\n" .string "startled by another POKéMON's appeal,\l" .string "I was close to tears.\p" .string "{STR_VAR_2}, you were resilient!\n" .string "Way to go!$" -gTVContestLiveUpdatesText22:: @ 0828A4CF +ContestLiveUpdates_Text_MoveWonderful:: @ 0828A4CF .string "Spectator: Oh…\n" .string "That {STR_VAR_2}'s {STR_VAR_3}!\l" .string "{STR_VAR_2}'s {STR_VAR_3}!\l" .string "{STR_VAR_2}'s {STR_VAR_3}!\l" .string "How could it be so wonderful?$" -gTVContestLiveUpdatesText23:: @ 0828A51C +ContestLiveUpdates_Text_TalkAboutAnotherMon:: @ 0828A51C .string "MC: Well, there you have it. This place\n" .string "is full of the {STR_VAR_1}'s fans!\p" .string "I should also mention that another\n" @@ -2573,20 +2573,20 @@ gTVContestLiveUpdatesText23:: @ 0828A51C .string "caught my eye.\p" .string "{STR_VAR_2}'s {STR_VAR_3}…$" -gTVContestLiveUpdatesText24:: @ 0828A5AC +ContestLiveUpdates_Text_FailedToAppeal:: @ 0828A5AC .string "It failed to make a single appeal during\n" .string "secondary judging out of nervousness.\p" .string "Next time, I would like to see this\n" .string "{STR_VAR_1} make even one appeal.$" -gTVContestLiveUpdatesText25:: @ 0828A638 +ContestLiveUpdates_Text_LastInBothRounds:: @ 0828A638 .string "It came dead last in both primary\n" .string "and secondary judging.\p" .string "I hope that {STR_VAR_1} will retrain this\n" .string "{STR_VAR_2} and erase the shame of\l" .string "this undisputed last-place finish.$" -gTVContestLiveUpdatesText26:: @ 0828A6CF +ContestLiveUpdates_Text_NotExcitingEnough:: @ 0828A6CF .string "It failed to take advantage of\n" .string "the audience's excitement and make\l" .string "an appropriate appeal.\p" @@ -2594,7 +2594,7 @@ gTVContestLiveUpdatesText26:: @ 0828A6CF .string "a feel for the audience and whip their\l" .string "excitement to a fever pitch next time.$" -gTVContestLiveUpdatesText27:: @ 0828A797 +ContestLiveUpdates_Text_LostAfterWinningRound1:: @ 0828A797 .string "While finishing first in the primary\n" .string "judging, its appeals in the secondary\l" .string "judging failed to click.\p" @@ -2603,14 +2603,14 @@ gTVContestLiveUpdatesText27:: @ 0828A797 .string "I'm sure {STR_VAR_1} is studying how to\n" .string "make more effective appeals now.$" -gTVContestLiveUpdatesText28:: @ 0828A86D +ContestLiveUpdates_Text_NeverExciting:: @ 0828A86D .string "The audience never got excited by its\n" .string "appeals during the secondary judging.\p" .string "We hope it will stop worrying about\n" .string "other POKéMON and learn to pitch\l" .string "its appeals to the audience more.$" -gTVContestLiveUpdatesText29:: @ 0828A920 +ContestLiveUpdates_Text_LostBySmallMargin:: @ 0828A920 .string "It lost to {STR_VAR_1}'s {STR_VAR_2}\n" .string "by only a small margin.\p" .string "It must be heartbreaking to come\n" @@ -2618,7 +2618,7 @@ gTVContestLiveUpdatesText29:: @ 0828A920 .string "I wouldn't be surprised if {STR_VAR_3}\n" .string "were weeping over this outcome.$" -gTVContestLiveUpdatesText30:: @ 0828A9CC +ContestLiveUpdates_Text_RepeatedAppeals:: @ 0828A9CC .string "It disappointed the JUDGE by\n" .string "repeating the same appeals.\p" .string "It's an unforgivable error in any\n" @@ -2626,14 +2626,14 @@ gTVContestLiveUpdatesText30:: @ 0828A9CC .string "{STR_VAR_1} should feel guilty for\n" .string "this sorry showing.$" -gTVContestLiveUpdatesText31:: @ 0828AA74 +ContestLiveUpdates_Text_ValiantEffortButLost:: @ 0828AA74 .string "{STR_VAR_1} turned in a valiant effort,\n" .string "but…\p" .string "It was all for naught, finishing last.\p" .string "{STR_VAR_1} should learn from this loss\n" .string "and put the knowledge to good use.$" -gTVContestLiveUpdatesText32:: @ 0828AB01 +ContestLiveUpdates_Text_Outro:: @ 0828AB01 .string "I'd like to end this program with our\n" .string "usual farewell to the winners.\p" .string "This time, it's {STR_VAR_1} and\n" diff --git a/include/constants/tv.h b/include/constants/tv.h index 6f686f7276..4b5f9115b4 100644 --- a/include/constants/tv.h +++ b/include/constants/tv.h @@ -133,5 +133,59 @@ #define NUM_SECRET_BASE_FLAGS 32 // by definition, bitfield of 2 u16s +// TV Show states for Pokemon Contest Live Updates +#define CONTESTLIVE_STATE_INTRO 0 +#define CONTESTLIVE_STATE_WON_BOTH_ROUNDS 1 +#define CONTESTLIVE_STATE_BETTER_ROUND2 2 +#define CONTESTLIVE_STATE_EQUAL_ROUNDS 3 +#define CONTESTLIVE_STATE_BETTER_ROUND1 4 +#define CONTESTLIVE_STATE_GOT_NERVOUS 5 +#define CONTESTLIVE_STATE_STARTLED_OTHER 6 +#define CONTESTLIVE_STATE_USED_COMBO 7 +#define CONTESTLIVE_STATE_EXCITING_APPEAL 8 +#define CONTESTLIVE_STATE_COOL 9 +#define CONTESTLIVE_STATE_BEAUTIFUL 10 +#define CONTESTLIVE_STATE_CUTE 11 +#define CONTESTLIVE_STATE_SMART 12 +#define CONTESTLIVE_STATE_TOUGH 13 +#define CONTESTLIVE_STATE_VERY_EXCITING_APPEAL 14 +#define CONTESTLIVE_STATE_VERY_COOL 15 +#define CONTESTLIVE_STATE_VERY_BEAUTIFUL 16 +#define CONTESTLIVE_STATE_VERY_CUTE 17 +#define CONTESTLIVE_STATE_VERY_SMART 18 +#define CONTESTLIVE_STATE_VERY_TOUGH 19 +#define CONTESTLIVE_STATE_TOOK_BREAK 20 +#define CONTESTLIVE_STATE_GOT_STARTLED 21 +#define CONTESTLIVE_STATE_USED_MOVE 22 +#define CONTESTLIVE_STATE_TALK_ABOUT_LOSER 23 +#define CONTESTLIVE_STATE_NO_APPEALS 24 +#define CONTESTLIVE_STATE_LAST_BOTH 25 +#define CONTESTLIVE_STATE_NOT_EXCITING_ENOUGH 26 +#define CONTESTLIVE_STATE_LOST_AFTER_ROUND1_WIN 27 +#define CONTESTLIVE_STATE_NO_EXCITING_APPEALS 28 +#define CONTESTLIVE_STATE_LOST_SMALL_MARGIN 29 +#define CONTESTLIVE_STATE_REPEATED_APPEALS 30 +#define CONTESTLIVE_STATE_LOST 31 +#define CONTESTLIVE_STATE_OUTRO 32 + +// Flags used to comment on winner +#define CONTESTLIVE_FLAG_EXCITING_APPEAL (1 << 0) +#define CONTESTLIVE_FLAG_GOT_NERVOUS (1 << 1) +#define CONTESTLIVE_FLAG_MAXED_EXCITEMENT (1 << 2) +#define CONTESTLIVE_FLAG_USED_COMBO (1 << 3) +#define CONTESTLIVE_FLAG_STARTLED_OTHER (1 << 4) +#define CONTESTLIVE_FLAG_SKIPPED_TURN (1 << 5) +#define CONTESTLIVE_FLAG_GOT_STARTLED (1 << 6) +#define CONTESTLIVE_FLAG_MADE_APPEAL (1 << 7) + +// Flags used to comment on loser +#define CONTESTLIVE_FLAG_LOST (1 << 0) +#define CONTESTLIVE_FLAG_REPEATED_MOVE (1 << 1) +#define CONTESTLIVE_FLAG_LOST_SMALL_MARGIN (1 << 2) +#define CONTESTLIVE_FLAG_NO_EXCITEMENT (1 << 3) +#define CONTESTLIVE_FLAG_BLEW_LEAD (1 << 4) +#define CONTESTLIVE_FLAG_MISSED_EXCITEMENT (1 << 5) +#define CONTESTLIVE_FLAG_LAST_BOTH_ROUNDS (1 << 6) +#define CONTESTLIVE_FLAG_NO_APPEALS (1 << 7) #endif //GUARD_CONSTANTS_TV_H diff --git a/include/contest.h b/include/contest.h index 208604f4a7..834aba4024 100644 --- a/include/contest.h +++ b/include/contest.h @@ -4,17 +4,6 @@ #include "palette.h" #include "constants/contest.h" -enum -{ - CONTEST_DEBUG_MODE_OFF, - // Prints the totalPoints value for each contestant. - CONTEST_DEBUG_MODE_PRINT_POINT_TOTAL, - // Prints the ContestTV::unk_C value as a bitstring for each contestant. - CONTEST_DEBUG_MODE_PRINT_UNK_C, - // Prints the ContestTV::unk_D value as a bitstring for each contestant. - CONTEST_DEBUG_MODE_PRINT_UNK_D -}; - enum { CONTEST_STRING_MORE_CONSCIOUS, @@ -153,7 +142,7 @@ struct Contest u8 mainTaskId; u8 unk1920D[4]; u8 judgeAttentionTaskId; - u8 unk19212; + u8 blendTaskId; u8 filler19213; u8 turnNumber; u8 currentContestant; @@ -211,7 +200,7 @@ struct ContestantStatus bool8 usedComboMove:1; bool8 completedCombo; u8 comboAppealBonus; - u8 unk18; + u8 repeatJam; u8 nextTurnOrder; // turn position u8 attentionLevel; // How much the Pokemon "stood out" u8 contestantAnimTarget; @@ -271,12 +260,12 @@ struct ContestFinalStandings struct ContestTV { - u16 unk0[5]; - s16 unkA; - u8 unkC; - u8 unkD; - u8 unkE_1:1; - u8 unkE_2:1; + u16 appeals[CONTEST_NUM_APPEALS]; + s16 move; + u8 winnerFlags; + u8 loserFlags; + u8 madeAppeal:1; + u8 madeExcitingAppeal:1; }; struct ContestUnused diff --git a/include/event_scripts.h b/include/event_scripts.h index d147dd4f1d..6ec9107a75 100644 --- a/include/event_scripts.h +++ b/include/event_scripts.h @@ -294,39 +294,39 @@ extern const u8 gTVSafariFanClubText07[]; extern const u8 gTVSafariFanClubText08[]; extern const u8 gTVSafariFanClubText09[]; extern const u8 gTVSafariFanClubText10[]; -extern const u8 gTVContestLiveUpdatesText00[]; -extern const u8 gTVContestLiveUpdatesText01[]; -extern const u8 gTVContestLiveUpdatesText02[]; -extern const u8 gTVContestLiveUpdatesText03[]; -extern const u8 gTVContestLiveUpdatesText04[]; -extern const u8 gTVContestLiveUpdatesText05[]; -extern const u8 gTVContestLiveUpdatesText06[]; -extern const u8 gTVContestLiveUpdatesText07[]; -extern const u8 gTVContestLiveUpdatesText08[]; -extern const u8 gTVContestLiveUpdatesText09[]; -extern const u8 gTVContestLiveUpdatesText10[]; -extern const u8 gTVContestLiveUpdatesText11[]; -extern const u8 gTVContestLiveUpdatesText12[]; -extern const u8 gTVContestLiveUpdatesText13[]; -extern const u8 gTVContestLiveUpdatesText14[]; -extern const u8 gTVContestLiveUpdatesText15[]; -extern const u8 gTVContestLiveUpdatesText16[]; -extern const u8 gTVContestLiveUpdatesText17[]; -extern const u8 gTVContestLiveUpdatesText18[]; -extern const u8 gTVContestLiveUpdatesText19[]; -extern const u8 gTVContestLiveUpdatesText20[]; -extern const u8 gTVContestLiveUpdatesText21[]; -extern const u8 gTVContestLiveUpdatesText22[]; -extern const u8 gTVContestLiveUpdatesText23[]; -extern const u8 gTVContestLiveUpdatesText24[]; -extern const u8 gTVContestLiveUpdatesText25[]; -extern const u8 gTVContestLiveUpdatesText26[]; -extern const u8 gTVContestLiveUpdatesText27[]; -extern const u8 gTVContestLiveUpdatesText28[]; -extern const u8 gTVContestLiveUpdatesText29[]; -extern const u8 gTVContestLiveUpdatesText30[]; -extern const u8 gTVContestLiveUpdatesText31[]; -extern const u8 gTVContestLiveUpdatesText32[]; +extern const u8 ContestLiveUpdates_Text_Intro[]; +extern const u8 ContestLiveUpdates_Text_WonBothRounds[]; +extern const u8 ContestLiveUpdates_Text_BetterRound2[]; +extern const u8 ContestLiveUpdates_Text_EqualRounds[]; +extern const u8 ContestLiveUpdates_Text_BetterRound1[]; +extern const u8 ContestLiveUpdates_Text_GotNervous[]; +extern const u8 ContestLiveUpdates_Text_StartledFoes[]; +extern const u8 ContestLiveUpdates_Text_UsedCombo[]; +extern const u8 ContestLiveUpdates_Text_ExcitingAppeal[]; +extern const u8 ContestLiveUpdates_Text_WasCool[]; +extern const u8 ContestLiveUpdates_Text_WasBeautiful[]; +extern const u8 ContestLiveUpdates_Text_WasCute[]; +extern const u8 ContestLiveUpdates_Text_WasSmart[]; +extern const u8 ContestLiveUpdates_Text_WasTough[]; +extern const u8 ContestLiveUpdates_Text_VeryExcitingAppeal[]; +extern const u8 ContestLiveUpdates_Text_VeryCool[]; +extern const u8 ContestLiveUpdates_Text_VeryBeautiful[]; +extern const u8 ContestLiveUpdates_Text_VeryCute[]; +extern const u8 ContestLiveUpdates_Text_VerySmart[]; +extern const u8 ContestLiveUpdates_Text_VeryTough[]; +extern const u8 ContestLiveUpdates_Text_TookBreak[]; +extern const u8 ContestLiveUpdates_Text_GotStartled[]; +extern const u8 ContestLiveUpdates_Text_MoveWonderful[]; +extern const u8 ContestLiveUpdates_Text_TalkAboutAnotherMon[]; +extern const u8 ContestLiveUpdates_Text_FailedToAppeal[]; +extern const u8 ContestLiveUpdates_Text_LastInBothRounds[]; +extern const u8 ContestLiveUpdates_Text_NotExcitingEnough[]; +extern const u8 ContestLiveUpdates_Text_LostAfterWinningRound1[]; +extern const u8 ContestLiveUpdates_Text_NeverExciting[]; +extern const u8 ContestLiveUpdates_Text_LostBySmallMargin[]; +extern const u8 ContestLiveUpdates_Text_RepeatedAppeals[]; +extern const u8 ContestLiveUpdates_Text_ValiantEffortButLost[]; +extern const u8 ContestLiveUpdates_Text_Outro[]; extern const u8 gTVPokemonBattleUpdateText00[]; extern const u8 gTVPokemonBattleUpdateText01[]; extern const u8 gTVPokemonBattleUpdateText02[]; diff --git a/include/global.tv.h b/include/global.tv.h index ba1c3c37ee..b211052e05 100644 --- a/include/global.tv.h +++ b/include/global.tv.h @@ -124,18 +124,18 @@ typedef union // size = 0x24 struct { /*0x00*/ u8 kind; /*0x01*/ bool8 active; - /*0x02*/ u16 winningSpecies; - /*0x04*/ u8 winningTrainerName[8]; - /*0x0C*/ u8 appealFlags2; - /*0x0D*/ u8 round1Rank; - /*0x0e*/ u8 round2Rank; - /*0x0f*/ u8 appealFlags1; + /*0x02*/ u16 losingSpecies; + /*0x04*/ u8 losingTrainerName[8]; + /*0x0C*/ u8 loserAppealFlag; + /*0x0D*/ u8 round1Placing; + /*0x0e*/ u8 round2Placing; + /*0x0f*/ u8 winnerAppealFlag; /*0x10*/ u16 move; - /*0x12*/ u16 species; - /*0x14*/ u8 playerName[8]; + /*0x12*/ u16 winningSpecies; + /*0x14*/ u8 winningTrainerName[8]; /*0x1C*/ u8 category; - /*0x1D*/ u8 language; - /*0x1E*/ u8 winningTrainerLanguage; + /*0x1D*/ u8 winningTrainerLanguage; + /*0x1E*/ u8 losingTrainerLanguage; } contestLiveUpdates; // TVSHOW_3_CHEERS_FOR_POKEBLOCKS diff --git a/include/tv.h b/include/tv.h index 8e9233c2bd..4b5aceb559 100644 --- a/include/tv.h +++ b/include/tv.h @@ -59,11 +59,11 @@ void SaveRecordedItemPurchasesForTVShow(void); bool8 ShouldAirFrontierTVShow(void); void sub_80EE8C8(u16 winStreak, u8 facilityAndMode); void BravoTrainerPokemonProfile_BeforeInterview2(u8 contestStandingPlace); -void ContestLiveUpdates_BeforeInterview_1(u8 a0); -void ContestLiveUpdates_BeforeInterview_2(u8 a0); -void ContestLiveUpdates_BeforeInterview_3(u8 a0); -void ContestLiveUpdates_BeforeInterview_4(u16 a0); -void ContestLiveUpdates_BeforeInterview_5(u8 a0, u8 a1); +void ContestLiveUpdates_Init(u8 round1Placing); +void ContestLiveUpdates_SetRound2Placing(u8 round2Placing); +void ContestLiveUpdates_SetWinnerAppealFlag(u8 flag); +void ContestLiveUpdates_SetWinnerMoveUsed(u16 move); +void ContestLiveUpdates_SetLoserData(u8 flag, u8 loser); void ResetGabbyAndTy(void); #endif //GUARD_TV_H diff --git a/src/contest.c b/src/contest.c index 49b408a1a8..d734b9eb4d 100644 --- a/src/contest.c +++ b/src/contest.c @@ -2,12 +2,6 @@ #include "gpu_regs.h" #include "bg.h" #include "malloc.h" -#include "constants/items.h" -#include "constants/event_objects.h" -#include "constants/moves.h" -#include "constants/songs.h" -#include "constants/species.h" -#include "constants/flags.h" #include "battle.h" #include "battle_anim.h" #include "contest.h" @@ -42,8 +36,15 @@ #include "contest_link.h" #include "international_string_util.h" #include "data.h" -#include "constants/rgb.h" #include "contest_ai.h" +#include "constants/event_objects.h" +#include "constants/flags.h" +#include "constants/items.h" +#include "constants/moves.h" +#include "constants/rgb.h" +#include "constants/songs.h" +#include "constants/species.h" +#include "constants/tv.h" // This file's functions. static void LoadContestPalettes(void); @@ -113,7 +114,7 @@ static void SetBottomSliderHeartsInvisibility(bool8); static void CreateNextTurnSprites(void); static void CreateApplauseMeterSprite(void); static void CreateJudgeAttentionEyeTask(void); -static void sub_80DC7EC(void); +static void CreateUnusedBlendTask(void); static void ContestDebugDoPrint(void); static void DrawContestantWindows(void); static void ApplyNextTurnOrder(void); @@ -164,9 +165,9 @@ static void Task_UpdateAppealHearts(u8); static void SpriteCB_UpdateHeartSlider(struct Sprite *); static void Task_FlashJudgeAttentionEye(u8); static void Task_StopFlashJudgeAttentionEye(u8); -static void sub_80DC8D0(u8); -static void sub_80DC81C(u8); -static void sub_80DC87C(u8); +static void Task_UnusedBlend(u8); +static void InitUnusedBlendTaskData(u8); +static void UpdateBlendTaskContestantData(u8); static void SpriteCB_BlinkContestantBox(struct Sprite *); static void SpriteCB_EndBlinkContestantBox(struct Sprite *sprite); static u8 StartApplauseOverflowAnimation(void); @@ -183,9 +184,9 @@ static void Task_WaitRaiseCurtainAtRoundEnd(u8); static void Task_StartRaiseCurtainAtRoundEnd(u8); static void Task_WaitForSliderHeartAnim(u8); static void SetBattleTargetSpritePosition(void); -static void sub_80DF250(void); -static void sub_80DF4F8(void); -static void sub_80DF080(u8); +static void CalculateContestLiveUpdateData(void); +static void SetConestLiveUpdateTVData(void); +static void SetContestLiveUpdateFlags(u8); static void ContestDebugPrintBitStrings(void); static void StripPlayerNameForLinkContest(u8 *); static void StripMonNameForLinkContest(u8 *, s32); @@ -233,6 +234,13 @@ enum { STAT_SYMBOL_SQUARE, }; +enum { + CONTEST_DEBUG_MODE_OFF, + CONTEST_DEBUG_MODE_PRINT_POINT_TOTAL, + CONTEST_DEBUG_MODE_PRINT_WINNER_FLAGS, + CONTEST_DEBUG_MODE_PRINT_LOSER_FLAGS +}; + #define MOVE_WINDOWS_START WIN_MOVE0 #define TAG_CONTEST_SYMBOLS_PAL 0xABE0 @@ -964,9 +972,9 @@ void LoadContestBgAfterMoveAnim(void) LoadContestPalettes(); for (i = 0; i < CONTESTANT_COUNT; i++) { - u32 contestantWindowId = MOVE_WINDOWS_START + i; + u32 contestantWindowId = 5 + i; - LoadPalette(eUnknownHeap1A004.cachedWindowPalettes[contestantWindowId], 16 * (MOVE_WINDOWS_START + gContestantTurnOrder[i]), sizeof((eUnknownHeap1A004.cachedWindowPalettes[contestantWindowId]))); + LoadPalette(eUnknownHeap1A004.cachedWindowPalettes[contestantWindowId], 16 * (5 + gContestantTurnOrder[i]), sizeof((eUnknownHeap1A004.cachedWindowPalettes[contestantWindowId]))); } } @@ -1257,9 +1265,9 @@ static bool8 SetupContestGraphics(u8 *stateVar) case 5: LoadCompressedPalette(gOldContestPalette, 0, 0x200); CpuCopy32(gPlttBufferUnfaded + 128, tempPalette1, 16 * sizeof(u16)); - CpuCopy32(gPlttBufferUnfaded + (MOVE_WINDOWS_START + gContestPlayerMonIndex) * 16, tempPalette2, 16 * sizeof(u16)); + CpuCopy32(gPlttBufferUnfaded + (5 + gContestPlayerMonIndex) * 16, tempPalette2, 16 * sizeof(u16)); CpuCopy32(tempPalette2, gPlttBufferUnfaded + 128, 16 * sizeof(u16)); - CpuCopy32(tempPalette1, gPlttBufferUnfaded + (MOVE_WINDOWS_START + gContestPlayerMonIndex) * 16, 16 * sizeof(u16)); + CpuCopy32(tempPalette1, gPlttBufferUnfaded + (5 + gContestPlayerMonIndex) * 16, 16 * sizeof(u16)); DmaCopy32Defvars(3, gPlttBufferUnfaded, eUnknownHeap1A004.cachedWindowPalettes, sizeof(eUnknownHeap1A004.cachedWindowPalettes)); LoadContestPalettes(); break; @@ -1272,7 +1280,7 @@ static bool8 SetupContestGraphics(u8 *stateVar) CreateNextTurnSprites(); CreateApplauseMeterSprite(); CreateJudgeAttentionEyeTask(); - sub_80DC7EC(); + CreateUnusedBlendTask(); gBattlerPositions[0] = B_POSITION_PLAYER_LEFT; gBattlerPositions[1] = B_POSITION_OPPONENT_LEFT; gBattlerPositions[2] = B_POSITION_OPPONENT_RIGHT; @@ -1591,7 +1599,7 @@ static void Task_HideMoveSelectScreen(u8 taskId) gBattle_BG2_Y = 0; SetBottomSliderHeartsInvisibility(FALSE); - for (i = 0; i < CONTESTANT_COUNT; i++) + for (i = 0; i < MAX_MON_MOVES; i++) { FillWindowPixelBuffer(MOVE_WINDOWS_START + i, PIXEL_FILL(0)); PutWindowTilemap(MOVE_WINDOWS_START + i); @@ -1751,7 +1759,7 @@ static void Task_DoAppeals(u8 taskId) gTasks[taskId].tState = APPEALSTATE_2; return; case APPEALSTATE_2: - sub_80DF080(contestant); + SetContestLiveUpdateFlags(contestant); ContestDebugPrintBitStrings(); if (eContestantStatus[contestant].numTurnsSkipped != 0 || eContestantStatus[contestant].noMoreTurns) @@ -2170,8 +2178,8 @@ static void Task_DoAppeals(u8 taskId) case APPEALSTATE_UPDATE_HEARTS_FROM_REPEAT: if (!Contest_RunTextPrinters()) { - UpdateAppealHearts(eContestantStatus[contestant].appeal2, -eContestantStatus[contestant].unk18, contestant); - eContestantStatus[contestant].appeal2 -= eContestantStatus[contestant].unk18; + UpdateAppealHearts(eContestantStatus[contestant].appeal2, -eContestantStatus[contestant].repeatJam, contestant); + eContestantStatus[contestant].appeal2 -= eContestantStatus[contestant].repeatJam; gTasks[taskId].tState = APPEALSTATE_WAIT_HEARTS_FROM_REPEAT; } return; @@ -2659,8 +2667,8 @@ static void Task_EndAppeals(u8 taskId) BravoTrainerPokemonProfile_BeforeInterview1(eContestantStatus[gContestPlayerMonIndex].prevMove); else { - sub_80DF250(); - sub_80DF4F8(); + CalculateContestLiveUpdateData(); + SetConestLiveUpdateTVData(); ContestDebugPrintBitStrings(); } gContestRngValue = gRngValue; @@ -3990,7 +3998,7 @@ static void Task_StopFlashJudgeAttentionEye(u8 taskId) { gTasks[eContest.judgeAttentionTaskId].data[contestant * 4 + 0] = 0xFF; gTasks[eContest.judgeAttentionTaskId].data[contestant * 4 + 1] = 0; - BlendPalette((eContest.prevTurnOrder[contestant] + MOVE_WINDOWS_START) * 16 + 6, 2, 0, RGB(31, 31, 18)); + BlendPalette((eContest.prevTurnOrder[contestant] + 5) * 16 + 6, 2, 0, RGB(31, 31, 18)); DestroyTask(taskId); } } @@ -4014,58 +4022,62 @@ static void Task_FlashJudgeAttentionEye(u8 taskId) || gTasks[taskId].data[offset + 0] == 0) gTasks[taskId].data[offset + 1] ^= 1; - BlendPalette( - (eContest.prevTurnOrder[i] + MOVE_WINDOWS_START) * 16 + 6, - 2, - gTasks[taskId].data[offset + 0], - RGB(31, 31, 18)); + BlendPalette((eContest.prevTurnOrder[i] + 5) * 16 + 6, 2, gTasks[taskId].data[offset + 0], RGB(31, 31, 18)); } } } -static void sub_80DC7EC(void) +// Note: While the below task is run for the entire Appeals portion of the contest, +// because data[i * 4] is always 0xFF it never does anything +// If turned on by setting that data between 0 and 16, it blends +// an odd selection of palette colors (e.g. the text box, the appeal hearts +// for only one contestant, the heart outlines in the move selection box, etc) +// Given the similarities, it's possible this was an incorrect attempt +// at something similar to what CreateJudgeAttentionEyeTask does +static void CreateUnusedBlendTask(void) { s32 i; - eContest.unk19212 = CreateTask(sub_80DC8D0, 30); + eContest.blendTaskId = CreateTask(Task_UnusedBlend, 30); for (i = 0; i < CONTESTANT_COUNT; i++) - sub_80DC81C(i); + InitUnusedBlendTaskData(i); } -static void sub_80DC81C(u8 contestant) +static void InitUnusedBlendTaskData(u8 contestant) { - gTasks[eContest.unk19212].data[contestant * 4 + 0] = 0xFF; - gTasks[eContest.unk19212].data[contestant * 4 + 1] = 0; + gTasks[eContest.blendTaskId].data[contestant * 4] = 0xFF; + gTasks[eContest.blendTaskId].data[contestant * 4 + 1] = 0; } -static void sub_80DC864(void) +static void UpdateBlendTaskContestantsData(void) { s32 i; for (i = 0; i < CONTESTANT_COUNT; i++) - sub_80DC87C(i); + UpdateBlendTaskContestantData(i); } -static void sub_80DC87C(u8 contestant) +static void UpdateBlendTaskContestantData(u8 contestant) { - u32 windowId1; - u32 windowId2; + u32 palOffset1; + u32 palOffset2; - sub_80DC81C(contestant); + InitUnusedBlendTaskData(contestant); - windowId1 = contestant + MOVE_WINDOWS_START; + palOffset1 = contestant + 5; DmaCopy16Defvars(3, - gPlttBufferUnfaded + windowId1 * 16 + 10, - gPlttBufferFaded + windowId1 * 16 + 10, + gPlttBufferUnfaded + palOffset1 * 16 + 10, + gPlttBufferFaded + palOffset1 * 16 + 10, 2); - windowId2 = (contestant + MOVE_WINDOWS_START) * 16 + 12 + contestant; + palOffset2 = (contestant + 5) * 16 + 12 + contestant; DmaCopy16Defvars(3, - gPlttBufferUnfaded + windowId2, - gPlttBufferFaded + windowId2, + gPlttBufferUnfaded + palOffset2, + gPlttBufferFaded + palOffset2, 2); } -static void sub_80DC8D0(u8 taskId) +// See comments on CreateUnusedBlendTask +static void Task_UnusedBlend(u8 taskId) { u8 i; @@ -4073,23 +4085,24 @@ static void sub_80DC8D0(u8 taskId) { u8 idx = i * 4; - if (gTasks[taskId].data[idx + 0] != 0xFF) + // Below is never true + if (gTasks[taskId].data[idx] != 0xFF) { if (++gTasks[taskId].data[idx + 2] > 2) { gTasks[taskId].data[idx + 2] = 0; if (gTasks[taskId].data[idx + 1] == 0) - gTasks[taskId].data[idx + 0]++; + gTasks[taskId].data[idx]++; else - gTasks[taskId].data[idx + 0]--; + gTasks[taskId].data[idx]--; - if (gTasks[taskId].data[idx + 0] == 16 - || gTasks[taskId].data[idx + 0] == 0) + if (gTasks[taskId].data[idx] == 16 + || gTasks[taskId].data[idx] == 0) gTasks[taskId].data[idx + 1] ^= 1; - BlendPalette((i + MOVE_WINDOWS_START) * 16 + 10, 1, gTasks[taskId].data[idx + 0], RGB(31, 31, 18)); - BlendPalette((i + MOVE_WINDOWS_START) * 16 + 12 + i, 1, gTasks[taskId].data[idx + 0], RGB(31, 31, 18)); + BlendPalette((i + 5) * 16 + 10, 1, gTasks[taskId].data[idx + 0], RGB(31, 31, 18)); + BlendPalette((i + 5) * 16 + 12 + i, 1, gTasks[taskId].data[idx + 0], RGB(31, 31, 18)); } } } @@ -4241,8 +4254,8 @@ static void ContestDebugDoPrint(void) { case CONTEST_DEBUG_MODE_OFF: break; - case CONTEST_DEBUG_MODE_PRINT_UNK_C: - case CONTEST_DEBUG_MODE_PRINT_UNK_D: + case CONTEST_DEBUG_MODE_PRINT_WINNER_FLAGS: + case CONTEST_DEBUG_MODE_PRINT_LOSER_FLAGS: ContestDebugPrintBitStrings(); break; // The only other possible value is 1, which is only set by ContestDebugTogglePointTotal. @@ -4401,8 +4414,8 @@ static void DrawContestantWindows(void) for (i = 0; i < CONTESTANT_COUNT; i++) { - s32 windowId = i + MOVE_WINDOWS_START; - LoadPalette(eUnknownHeap1A004.cachedWindowPalettes[windowId], (gContestantTurnOrder[i] + MOVE_WINDOWS_START) * 16, sizeof(eUnknownHeap1A004.cachedWindowPalettes[0])); + s32 windowId = i + 5; + LoadPalette(eUnknownHeap1A004.cachedWindowPalettes[windowId], (gContestantTurnOrder[i] + 5) * 16, sizeof(eUnknownHeap1A004.cachedWindowPalettes[0])); } DrawContestantWindowText(); } @@ -4486,7 +4499,7 @@ static void CalculateAppealMoveImpact(u8 contestant) } } if (eContestantStatus[contestant].repeatedMove) - eContestantStatus[contestant].unk18 = (eContestantStatus[contestant].moveRepeatCount + 1) * 10; + eContestantStatus[contestant].repeatJam = (eContestantStatus[contestant].moveRepeatCount + 1) * 10; if (eContestantStatus[contestant].nervous) { @@ -5145,7 +5158,7 @@ static void Task_ResetForNextRound(u8 taskId) for (i = 0; i < CONTESTANT_COUNT; i++) eContest.prevTurnOrder[i] = gContestantTurnOrder[i]; FillContestantWindowBgs(); - sub_80DC864(); + UpdateBlendTaskContestantsData(); DrawConditionStars(); DrawContestantWindows(); ShowHideNextTurnGfx(TRUE); @@ -5393,12 +5406,12 @@ static void SetMoveTargetPosition(u16 move) } } -static void Contest_PrintTextToBg0WindowStd(u32 a, const u8 *b) +static void Contest_PrintTextToBg0WindowStd(u32 windowId, const u8 *b) { struct TextPrinterTemplate printerTemplate; printerTemplate.currentChar = b; - printerTemplate.windowId = a; + printerTemplate.windowId = windowId; printerTemplate.fontId = 1; printerTemplate.x = 0; printerTemplate.y = 1; @@ -5412,7 +5425,7 @@ static void Contest_PrintTextToBg0WindowStd(u32 a, const u8 *b) printerTemplate.shadowColor = 8; AddTextPrinter(&printerTemplate, 0, 0); - PutWindowTilemap(a); + PutWindowTilemap(windowId); Contest_SetBgCopyFlags(0); } @@ -5610,8 +5623,7 @@ void ClearContestWinnerPicsInContestHall(void) gSaveBlock1Ptr->contestWinners[i] = gUnknown_08587FA4[i]; } -// The functions below are probably related to Contests in TV. -static void sub_80DF080(u8 contestant) +static void SetContestLiveUpdateFlags(u8 contestant) { s32 i; @@ -5619,278 +5631,292 @@ static void sub_80DF080(u8 contestant) && eContestExcitement.moveExcitement > 0 && !eContestantStatus[contestant].repeatedMove) { - gContestResources->tv[contestant].unkC |= 1; - gContestResources->tv[contestant].unkE_2 = 1; + gContestResources->tv[contestant].winnerFlags |= CONTESTLIVE_FLAG_EXCITING_APPEAL; + gContestResources->tv[contestant].madeExcitingAppeal = TRUE; } if (eContestantStatus[contestant].nervous) - gContestResources->tv[contestant].unkC |= 2; + gContestResources->tv[contestant].winnerFlags |= CONTESTLIVE_FLAG_GOT_NERVOUS; if (!eContestExcitement.frozen && eContestExcitement.moveExcitement != 0 && eContestExcitement.excitementAppealBonus == 60) { - gContestResources->tv[contestant].unkC |= 4; + gContestResources->tv[contestant].winnerFlags |= CONTESTLIVE_FLAG_MAXED_EXCITEMENT; } if (eContestantStatus[contestant].usedComboMove && eContestantStatus[contestant].completedCombo) { - gContestResources->tv[contestant].unkC |= 8; + gContestResources->tv[contestant].winnerFlags |= CONTESTLIVE_FLAG_USED_COMBO; } for (i = 0; i < CONTESTANT_COUNT; i++) { if (i != contestant && eContestantStatus[i].jam != 0) { - gContestResources->tv[contestant].unkC |= 0x10; - gContestResources->tv[i].unkC |= 0x40; + gContestResources->tv[contestant].winnerFlags |= CONTESTLIVE_FLAG_STARTLED_OTHER; + gContestResources->tv[i].winnerFlags |= CONTESTLIVE_FLAG_GOT_STARTLED; } } if (eContestantStatus[contestant].numTurnsSkipped != 0 || eContestantStatus[contestant].noMoreTurns) { - gContestResources->tv[contestant].unkC |= 0x20; + gContestResources->tv[contestant].winnerFlags |= CONTESTLIVE_FLAG_SKIPPED_TURN; } else if (!eContestantStatus[contestant].nervous) { - gContestResources->tv[contestant].unkC |= 0x80; - gContestResources->tv[contestant].unkE_1 = 1; - gContestResources->tv[contestant].unk0[eContest.appealNumber] = eContestantStatus[contestant].currMove; + gContestResources->tv[contestant].winnerFlags |= CONTESTLIVE_FLAG_MADE_APPEAL; + gContestResources->tv[contestant].madeAppeal = TRUE; + gContestResources->tv[contestant].appeals[eContest.appealNumber] = eContestantStatus[contestant].currMove; } if (eContestantStatus[contestant].repeatedMove) - gContestResources->tv[contestant].unkD |= 2; + gContestResources->tv[contestant].loserFlags |= CONTESTLIVE_FLAG_REPEATED_MOVE; if (eContest.applauseLevel == 4 && !eContestExcitement.frozen && eContestExcitement.moveExcitement < 0) { - gContestResources->tv[contestant].unkD |= 0x20; + gContestResources->tv[contestant].loserFlags |= CONTESTLIVE_FLAG_MISSED_EXCITEMENT; } } -static void sub_80DF250(void) +static void CalculateContestLiveUpdateData(void) { - u8 r1; + u8 loser; s32 i, j; - bool32 r12, r8; - u16 sp0[6]; - u8 spC[6]; - u16 sp14[5]; - u8 var_38; - u8 r3; - u8 count; + bool32 notLastInRound1, notLastInRound2; + u16 appealMoves[CONTEST_NUM_APPEALS + 1]; + u8 numMoveUses[CONTEST_NUM_APPEALS + 1]; + u16 moveCandidates[CONTEST_NUM_APPEALS]; + u8 winner; + u8 mostUses; + u8 numMoveCandidates; - r1 = 0; - var_38 = 0; + loser = 0; + winner = 0; + // Get loser/winner ids for (i = 0; i < CONTESTANT_COUNT; i++) { if (gContestFinalStandings[i] == 0) - var_38 = i; - else if (gContestFinalStandings[i] == 3) - r1 = i; + winner = i; + else if (gContestFinalStandings[i] == CONTESTANT_COUNT - 1) + loser = i; } - gContestResources->tv[r1].unkD |= 1; + // Set flags for commenting on loser + gContestResources->tv[loser].loserFlags |= CONTESTLIVE_FLAG_LOST; for (i = 0; i < CONTESTANT_COUNT; i++) { - if (i != var_38 && gContestMonTotalPoints[var_38] - gContestMonTotalPoints[i] <= 50) - gContestResources->tv[i].unkD |= 4; + if (i != winner && gContestMonTotalPoints[winner] - gContestMonTotalPoints[i] <= 50) + gContestResources->tv[i].loserFlags |= CONTESTLIVE_FLAG_LOST_SMALL_MARGIN; - if (!gContestResources->tv[i].unkE_2) - gContestResources->tv[i].unkD |= 8; + if (!gContestResources->tv[i].madeExcitingAppeal) + gContestResources->tv[i].loserFlags |= CONTESTLIVE_FLAG_NO_EXCITEMENT; for (j = 0; j < CONTESTANT_COUNT; j++) { if (gContestMonRound1Points[i] < gContestMonRound1Points[j]) break; } - if (j == 4 && gContestFinalStandings[i] != 0) - gContestResources->tv[i].unkD |= 0x10; + if (j == CONTESTANT_COUNT && gContestFinalStandings[i] != 0) + gContestResources->tv[i].loserFlags |= CONTESTLIVE_FLAG_BLEW_LEAD; - r12 = FALSE; - r8 = FALSE; + notLastInRound1 = FALSE; + notLastInRound2 = FALSE; for (j = 0; j < CONTESTANT_COUNT; j++) { if (gContestMonRound1Points[i] > gContestMonRound1Points[j]) - r12 = TRUE; + notLastInRound1 = TRUE; if (gContestMonRound2Points[i] > gContestMonRound2Points[j]) - r8 = TRUE; + notLastInRound2 = TRUE; } - if (!r12 && !r8) - gContestResources->tv[i].unkD |= 0x40; + if (!notLastInRound1 && !notLastInRound2) + gContestResources->tv[i].loserFlags |= CONTESTLIVE_FLAG_LAST_BOTH_ROUNDS; - if (!gContestResources->tv[i].unkE_1) - gContestResources->tv[i].unkD |= 0x80; + if (!gContestResources->tv[i].madeAppeal) + gContestResources->tv[i].loserFlags |= CONTESTLIVE_FLAG_NO_APPEALS; } - for (i = 0; i < 5; i++) + // Get what moves the winner used and how many times they used them + for (i = 0; i < CONTEST_NUM_APPEALS; i++) { - sp0[i] = 0; - spC[i] = 0; + appealMoves[i] = MOVE_NONE; + numMoveUses[i] = 0; } - sp0[5] = 0xFFFF; - spC[5] = 0; + appealMoves[CONTEST_NUM_APPEALS] = 0xFFFF; + numMoveUses[CONTEST_NUM_APPEALS] = 0; - for (i = 0; i < 5; i++) + for (i = 0; i < CONTEST_NUM_APPEALS; i++) { - if (gContestResources->tv[var_38].unk0[i] != 0) + if (gContestResources->tv[winner].appeals[i] != MOVE_NONE) { - for (j = 0; j < 5; j++) + for (j = 0; j < CONTEST_NUM_APPEALS; j++) { - if (gContestResources->tv[var_38].unk0[i] != sp0[j]) + if (gContestResources->tv[winner].appeals[i] != appealMoves[j]) { - if (sp0[j] == 0) + if (appealMoves[j] == MOVE_NONE) { - sp0[j] = gContestResources->tv[var_38].unk0[i]; - spC[j]++; + appealMoves[j] = gContestResources->tv[winner].appeals[i]; + numMoveUses[j]++; } } else { - spC[j]++; + numMoveUses[j]++; } } } } - sp14[0] = sp0[0]; - r3 = spC[0]; - count = 0; - for (i = 1; sp0[i] != 0xFFFF; i++) + // Choose an appeal move to comment on for the winner (most commonly used) + moveCandidates[0] = appealMoves[0]; + mostUses = numMoveUses[0]; + numMoveCandidates = 0; + for (i = 1; appealMoves[i] != 0xFFFF; i++) { - if (r3 < spC[i]) + if (mostUses < numMoveUses[i]) { - sp14[0] = sp0[i]; - r3 = spC[i]; - count = 1; + moveCandidates[0] = appealMoves[i]; + mostUses = numMoveUses[i]; + numMoveCandidates = 1; } - else if (r3 == spC[i]) + else if (mostUses == numMoveUses[i]) { - sp14[count] = sp0[i]; - count++; + moveCandidates[numMoveCandidates] = appealMoves[i]; + numMoveCandidates++; } } - gContestResources->tv[var_38].unkA = sp14[Random() % count]; + gContestResources->tv[winner].move = moveCandidates[Random() % numMoveCandidates]; } -static void sub_80DF4F8(void) +static void SetConestLiveUpdateTVData(void) { s32 i; - u32 bits; - u8 r7; - u8 r9, r10; + u32 flags; + u8 winner; + u8 round1Placing, round2Placing; u8 count; - u8 r5; - u8 r2; - u16 var; - u8 r4; - u8 r6; - u8 sp0[4]; + u8 randAction; + u8 numLoserCandidates; + u8 flagId; + u16 winnerFlag; + u8 loserFlag; + u8 loser; + u8 loserCandidates[CONTESTANT_COUNT - 1]; + // Players mon didn't win, don't generate show if (gContestFinalStandings[gContestPlayerMonIndex] != 0) return; - r7 = 0; + // Get winner id (unnecessary, we now know it's gContestPlayerMonIndex) + winner = 0; for (i = 0; i < CONTESTANT_COUNT; i++) { if (gContestFinalStandings[i] == 0) - r7 = i; + winner = i; } - r9 = 0; - r10 = 0; + // Get winner's placement in Round 1 and 2 + round1Placing = 0; + round2Placing = 0; for (i = 0; i < CONTESTANT_COUNT; i++) { - if (gContestMonRound1Points[r7] < gContestMonRound1Points[i]) - r9++; - if (gContestMonRound2Points[r7] < gContestMonRound2Points[i]) - r10++; + if (gContestMonRound1Points[winner] < gContestMonRound1Points[i]) + round1Placing++; + if (gContestMonRound2Points[winner] < gContestMonRound2Points[i]) + round2Placing++; } - bits = gContestResources->tv[r7].unkC; + // Count how many TV comment-worthy actions the winner took + flags = gContestResources->tv[winner].winnerFlags; count = 0; - for (i = 0; i < 8; bits >>= 1, i++) + for (i = 0; i < 8; flags >>= 1, i++) { - if (bits & 1) + if (flags & 1) count++; } - r5 = Random() % count; - bits = gContestResources->tv[r7].unkC; + // Randomly choose one of these actions to comment on + randAction = Random() % count; + flags = gContestResources->tv[winner].winnerFlags; count = 0; - r2 = 0; - for (i = 0; i < 8; bits >>= 1, r2++, i++) + flagId = 0; + for (i = 0; i < 8; flags >>= 1, flagId++, i++) { - if (!(bits & 1)) + if (!(flags & 1)) continue; - if (r5 == count) + if (randAction == count) break; count++; } + winnerFlag = 1 << flagId; - var = 1 << r2; - if (r7 == 0) + // Pick a losing player with the highest severity of bad actions to comment on + if (winner == 0) { - sp0[0] = 1; - r4 = gContestResources->tv[1].unkD; + loserCandidates[0] = 1; + loserFlag = gContestResources->tv[1].loserFlags; i = 2; } else { - sp0[0] = 0; - r4 = gContestResources->tv[0].unkD; + loserCandidates[0] = 0; + loserFlag = gContestResources->tv[0].loserFlags; i = 1; } - r5 = 1; + numLoserCandidates = 1; for (; i < CONTESTANT_COUNT; i++) { - if (i != r7) + if (i != winner) { - if (r4 < gContestResources->tv[i].unkD) + if (loserFlag < gContestResources->tv[i].loserFlags) { - sp0[0] = i; - r4 = gContestResources->tv[i].unkD; - r5 = 1; + // Losing player currently has the worst (highest) set of flags, only candidate + loserCandidates[0] = i; + loserFlag = gContestResources->tv[i].loserFlags; + numLoserCandidates = 1; } - else if (r4 == gContestResources->tv[i].unkD) + else if (loserFlag == gContestResources->tv[i].loserFlags) { - sp0[r5] = i; - r5++; + // Tie, increment number of loser candidates + loserCandidates[numLoserCandidates] = i; + numLoserCandidates++; } } } + loser = loserCandidates[Random() % numLoserCandidates]; - r6 = sp0[Random() % r5]; - r2 = 0x80; - for (i = 0; i < 8; r2 >>= 1, i++) + // Choose the "worst" action to comment on (flag with highest value) + flagId = CONTESTLIVE_FLAG_NO_APPEALS; + for (i = 0; i < 8; flagId >>= 1, i++) { - r4 = gContestResources->tv[r6].unkD & r2; - if (r4) + loserFlag = gContestResources->tv[loser].loserFlags & flagId; + if (loserFlag) break; } - ContestLiveUpdates_BeforeInterview_1(r9); - ContestLiveUpdates_BeforeInterview_2(r10); - ContestLiveUpdates_BeforeInterview_3(var); - ContestLiveUpdates_BeforeInterview_4(gContestResources->tv[r7].unkA); - ContestLiveUpdates_BeforeInterview_5(r4, r6); + ContestLiveUpdates_Init(round1Placing); + ContestLiveUpdates_SetRound2Placing(round2Placing); + ContestLiveUpdates_SetWinnerAppealFlag(winnerFlag); + ContestLiveUpdates_SetWinnerMoveUsed(gContestResources->tv[winner].move); + ContestLiveUpdates_SetLoserData(loserFlag, loser); } // Unused -void ContestDebugToggleBitfields(bool8 showUnkD) +void ContestDebugToggleBitfields(bool8 loserFlags) { if (eContestDebugMode == CONTEST_DEBUG_MODE_OFF) { - if (!showUnkD) - eContestDebugMode = CONTEST_DEBUG_MODE_PRINT_UNK_C; + if (!loserFlags) + eContestDebugMode = CONTEST_DEBUG_MODE_PRINT_WINNER_FLAGS; else - eContestDebugMode = CONTEST_DEBUG_MODE_PRINT_UNK_D; + eContestDebugMode = CONTEST_DEBUG_MODE_PRINT_LOSER_FLAGS; } else { @@ -5920,19 +5946,19 @@ static void ContestDebugPrintBitStrings(void) if (!gEnableContestDebugging) return; - if (eContestDebugMode != CONTEST_DEBUG_MODE_PRINT_UNK_C && eContestDebugMode != CONTEST_DEBUG_MODE_PRINT_UNK_D) + if (eContestDebugMode != CONTEST_DEBUG_MODE_PRINT_WINNER_FLAGS && eContestDebugMode != CONTEST_DEBUG_MODE_PRINT_LOSER_FLAGS) return; for (i = 0; i < CONTESTANT_COUNT; i++) FillWindowPixelBuffer(i, PIXEL_FILL(0)); - if (eContestDebugMode == CONTEST_DEBUG_MODE_PRINT_UNK_C) + if (eContestDebugMode == CONTEST_DEBUG_MODE_PRINT_WINNER_FLAGS) { for (i = 0; i < CONTESTANT_COUNT; i++) { txtPtr = StringCopy(text1, gText_CDot); Contest_PrintTextToBg0WindowAt(gContestantTurnOrder[i], text1, 5, 1, 7); - bits = gContestResources->tv[i].unkC; + bits = gContestResources->tv[i].winnerFlags; for (j = 7; j > -1; j--) // Weird loop. { txtPtr = ConvertIntToDecimalStringN(txtPtr, bits & 1, STR_CONV_MODE_LEFT_ALIGN, 1); @@ -5947,12 +5973,12 @@ static void ContestDebugPrintBitStrings(void) Contest_PrintTextToBg0WindowAt(gContestantTurnOrder[i], text1 + j, 55, 1, 7); } } - else + else // CONTEST_DEBUG_MODE_PRINT_LOSER_FLAGS { for (i = 0; i < CONTESTANT_COUNT; i++) { StringCopy(text1, gText_BDot); - bits = gContestResources->tv[i].unkD; + bits = gContestResources->tv[i].loserFlags; txtPtr = &text1[2]; for (j = 7; j > -1; j--) // Weird loop. { diff --git a/src/tv.c b/src/tv.c index b3722e87a2..a3458b72f1 100644 --- a/src/tv.c +++ b/src/tv.c @@ -387,39 +387,39 @@ static const u8 *const sTVBravoTrainerBattleTowerTextGroup[] = { }; static const u8 *const sTVContestLiveUpdatesTextGroup[] = { - gTVContestLiveUpdatesText00, - gTVContestLiveUpdatesText01, - gTVContestLiveUpdatesText02, - gTVContestLiveUpdatesText03, - gTVContestLiveUpdatesText04, - gTVContestLiveUpdatesText05, - gTVContestLiveUpdatesText06, - gTVContestLiveUpdatesText07, - gTVContestLiveUpdatesText08, - gTVContestLiveUpdatesText09, - gTVContestLiveUpdatesText10, - gTVContestLiveUpdatesText11, - gTVContestLiveUpdatesText12, - gTVContestLiveUpdatesText13, - gTVContestLiveUpdatesText14, - gTVContestLiveUpdatesText15, - gTVContestLiveUpdatesText16, - gTVContestLiveUpdatesText17, - gTVContestLiveUpdatesText18, - gTVContestLiveUpdatesText19, - gTVContestLiveUpdatesText20, - gTVContestLiveUpdatesText21, - gTVContestLiveUpdatesText22, - gTVContestLiveUpdatesText23, - gTVContestLiveUpdatesText24, - gTVContestLiveUpdatesText25, - gTVContestLiveUpdatesText26, - gTVContestLiveUpdatesText27, - gTVContestLiveUpdatesText28, - gTVContestLiveUpdatesText29, - gTVContestLiveUpdatesText30, - gTVContestLiveUpdatesText31, - gTVContestLiveUpdatesText32 + [CONTESTLIVE_STATE_INTRO] = ContestLiveUpdates_Text_Intro, + [CONTESTLIVE_STATE_WON_BOTH_ROUNDS] = ContestLiveUpdates_Text_WonBothRounds, + [CONTESTLIVE_STATE_BETTER_ROUND2] = ContestLiveUpdates_Text_BetterRound2, + [CONTESTLIVE_STATE_EQUAL_ROUNDS] = ContestLiveUpdates_Text_EqualRounds, + [CONTESTLIVE_STATE_BETTER_ROUND1] = ContestLiveUpdates_Text_BetterRound1, + [CONTESTLIVE_STATE_GOT_NERVOUS] = ContestLiveUpdates_Text_GotNervous, + [CONTESTLIVE_STATE_STARTLED_OTHER] = ContestLiveUpdates_Text_StartledFoes, + [CONTESTLIVE_STATE_USED_COMBO] = ContestLiveUpdates_Text_UsedCombo, + [CONTESTLIVE_STATE_EXCITING_APPEAL] = ContestLiveUpdates_Text_ExcitingAppeal, + [CONTESTLIVE_STATE_COOL] = ContestLiveUpdates_Text_WasCool, + [CONTESTLIVE_STATE_BEAUTIFUL] = ContestLiveUpdates_Text_WasBeautiful, + [CONTESTLIVE_STATE_CUTE] = ContestLiveUpdates_Text_WasCute, + [CONTESTLIVE_STATE_SMART] = ContestLiveUpdates_Text_WasSmart, + [CONTESTLIVE_STATE_TOUGH] = ContestLiveUpdates_Text_WasTough, + [CONTESTLIVE_STATE_VERY_EXCITING_APPEAL] = ContestLiveUpdates_Text_VeryExcitingAppeal, + [CONTESTLIVE_STATE_VERY_COOL] = ContestLiveUpdates_Text_VeryCool, + [CONTESTLIVE_STATE_VERY_BEAUTIFUL] = ContestLiveUpdates_Text_VeryBeautiful, + [CONTESTLIVE_STATE_VERY_CUTE] = ContestLiveUpdates_Text_VeryCute, + [CONTESTLIVE_STATE_VERY_SMART] = ContestLiveUpdates_Text_VerySmart, + [CONTESTLIVE_STATE_VERY_TOUGH] = ContestLiveUpdates_Text_VeryTough, + [CONTESTLIVE_STATE_TOOK_BREAK] = ContestLiveUpdates_Text_TookBreak, + [CONTESTLIVE_STATE_GOT_STARTLED] = ContestLiveUpdates_Text_GotStartled, + [CONTESTLIVE_STATE_USED_MOVE] = ContestLiveUpdates_Text_MoveWonderful, + [CONTESTLIVE_STATE_TALK_ABOUT_LOSER] = ContestLiveUpdates_Text_TalkAboutAnotherMon, + [CONTESTLIVE_STATE_NO_APPEALS] = ContestLiveUpdates_Text_FailedToAppeal, + [CONTESTLIVE_STATE_LAST_BOTH] = ContestLiveUpdates_Text_LastInBothRounds, + [CONTESTLIVE_STATE_NOT_EXCITING_ENOUGH] = ContestLiveUpdates_Text_NotExcitingEnough, + [CONTESTLIVE_STATE_LOST_AFTER_ROUND1_WIN] = ContestLiveUpdates_Text_LostAfterWinningRound1, + [CONTESTLIVE_STATE_NO_EXCITING_APPEALS] = ContestLiveUpdates_Text_NeverExciting, + [CONTESTLIVE_STATE_LOST_SMALL_MARGIN] = ContestLiveUpdates_Text_LostBySmallMargin, + [CONTESTLIVE_STATE_REPEATED_APPEALS] = ContestLiveUpdates_Text_RepeatedAppeals, + [CONTESTLIVE_STATE_LOST] = ContestLiveUpdates_Text_ValiantEffortButLost, + [CONTESTLIVE_STATE_OUTRO] = ContestLiveUpdates_Text_Outro }; static const u8 *const sTVPokemonBattleUpdateTextGroup[] = { @@ -1268,19 +1268,19 @@ static void InterviewAfter_ContestLiveUpdates(void) show2 = &gSaveBlock1Ptr->tvShows[sCurTVShowSlot]; show2->contestLiveUpdates.kind = TVSHOW_CONTEST_LIVE_UPDATES; show2->contestLiveUpdates.active = TRUE; - StringCopy(show2->contestLiveUpdates.playerName, gSaveBlock2Ptr->playerName); + StringCopy(show2->contestLiveUpdates.winningTrainerName, gSaveBlock2Ptr->playerName); // Show only begins running if player won, so always load players name show2->contestLiveUpdates.category = gSpecialVar_ContestCategory; - show2->contestLiveUpdates.species = GetMonData(&gPlayerParty[gContestMonPartyIndex], MON_DATA_SPECIES, NULL); - show2->contestLiveUpdates.winningSpecies = show->contestLiveUpdates.winningSpecies; - show2->contestLiveUpdates.appealFlags2 = show->contestLiveUpdates.appealFlags2; - show2->contestLiveUpdates.round1Rank = show->contestLiveUpdates.round1Rank; - show2->contestLiveUpdates.round2Rank = show->contestLiveUpdates.round2Rank; + show2->contestLiveUpdates.winningSpecies = GetMonData(&gPlayerParty[gContestMonPartyIndex], MON_DATA_SPECIES, NULL); + show2->contestLiveUpdates.losingSpecies = show->contestLiveUpdates.losingSpecies; + show2->contestLiveUpdates.loserAppealFlag = show->contestLiveUpdates.loserAppealFlag; + show2->contestLiveUpdates.round1Placing = show->contestLiveUpdates.round1Placing; + show2->contestLiveUpdates.round2Placing = show->contestLiveUpdates.round2Placing; show2->contestLiveUpdates.move = show->contestLiveUpdates.move; - show2->contestLiveUpdates.appealFlags1 = show->contestLiveUpdates.appealFlags1; - StringCopy(show2->contestLiveUpdates.winningTrainerName, show->contestLiveUpdates.winningTrainerName); + show2->contestLiveUpdates.winnerAppealFlag = show->contestLiveUpdates.winnerAppealFlag; + StringCopy(show2->contestLiveUpdates.losingTrainerName, show->contestLiveUpdates.losingTrainerName); tv_store_id_2x(show2); - show2->contestLiveUpdates.language = gGameLanguage; - show2->contestLiveUpdates.winningTrainerLanguage = show->contestLiveUpdates.winningTrainerLanguage; + show2->contestLiveUpdates.winningTrainerLanguage = gGameLanguage; + show2->contestLiveUpdates.losingTrainerLanguage = show->contestLiveUpdates.losingTrainerLanguage; DeleteTVShowInArrayByIdx(gSaveBlock1Ptr->tvShows, LAST_TVSHOW_IDX); } } @@ -1399,7 +1399,7 @@ void PutFanClubSpecialOnTheAir(void) } } -void ContestLiveUpdates_BeforeInterview_1(u8 a0) +void ContestLiveUpdates_Init(u8 round1Placing) { TVShow *show; @@ -1408,12 +1408,12 @@ void ContestLiveUpdates_BeforeInterview_1(u8 a0) if (sCurTVShowSlot != -1) { show = &gSaveBlock1Ptr->tvShows[LAST_TVSHOW_IDX]; - show->contestLiveUpdates.round1Rank = a0; + show->contestLiveUpdates.round1Placing = round1Placing; show->contestLiveUpdates.kind = TVSHOW_CONTEST_LIVE_UPDATES; } } -void ContestLiveUpdates_BeforeInterview_2(u8 a0) +void ContestLiveUpdates_SetRound2Placing(u8 round2Placing) { TVShow *show; @@ -1421,11 +1421,11 @@ void ContestLiveUpdates_BeforeInterview_2(u8 a0) sCurTVShowSlot = FindEmptyTVSlotWithinFirstFiveShowsOfArray(gSaveBlock1Ptr->tvShows); if (sCurTVShowSlot != -1) { - show->contestLiveUpdates.round2Rank = a0; + show->contestLiveUpdates.round2Placing = round2Placing; } } -void ContestLiveUpdates_BeforeInterview_3(u8 a0) +void ContestLiveUpdates_SetWinnerAppealFlag(u8 flag) { TVShow *show; @@ -1433,11 +1433,11 @@ void ContestLiveUpdates_BeforeInterview_3(u8 a0) sCurTVShowSlot = FindEmptyTVSlotWithinFirstFiveShowsOfArray(gSaveBlock1Ptr->tvShows); if (sCurTVShowSlot != -1) { - show->contestLiveUpdates.appealFlags1 = a0; + show->contestLiveUpdates.winnerAppealFlag = flag; } } -void ContestLiveUpdates_BeforeInterview_4(u16 a0) +void ContestLiveUpdates_SetWinnerMoveUsed(u16 move) { TVShow *show; @@ -1445,11 +1445,11 @@ void ContestLiveUpdates_BeforeInterview_4(u16 a0) sCurTVShowSlot = FindEmptyTVSlotWithinFirstFiveShowsOfArray(gSaveBlock1Ptr->tvShows); if (sCurTVShowSlot != -1) { - show->contestLiveUpdates.move = a0; + show->contestLiveUpdates.move = move; } } -void ContestLiveUpdates_BeforeInterview_5(u8 a0, u8 a1) +void ContestLiveUpdates_SetLoserData(u8 flag, u8 loser) { TVShow *show; @@ -1457,21 +1457,21 @@ void ContestLiveUpdates_BeforeInterview_5(u8 a0, u8 a1) sCurTVShowSlot = FindEmptyTVSlotWithinFirstFiveShowsOfArray(gSaveBlock1Ptr->tvShows); if (sCurTVShowSlot != -1) { - show->contestLiveUpdates.winningSpecies = gContestMons[a1].species; - StringCopy(show->contestLiveUpdates.winningTrainerName, gContestMons[a1].trainerName); - StripExtCtrlCodes(show->contestLiveUpdates.winningTrainerName); - show->contestLiveUpdates.appealFlags2 = a0; - if (a1 + 1 > gNumLinkContestPlayers) + show->contestLiveUpdates.losingSpecies = gContestMons[loser].species; + StringCopy(show->contestLiveUpdates.losingTrainerName, gContestMons[loser].trainerName); + StripExtCtrlCodes(show->contestLiveUpdates.losingTrainerName); + show->contestLiveUpdates.loserAppealFlag = flag; + if (loser + 1 > gNumLinkContestPlayers) { - show->contestLiveUpdates.winningTrainerLanguage = gLinkPlayers[0].language; + show->contestLiveUpdates.losingTrainerLanguage = gLinkPlayers[0].language; } - else if (gGameLanguage == LANGUAGE_JAPANESE || gLinkPlayers[a1].language == LANGUAGE_JAPANESE) + else if (gGameLanguage == LANGUAGE_JAPANESE || gLinkPlayers[loser].language == LANGUAGE_JAPANESE) { - show->contestLiveUpdates.winningTrainerLanguage = LANGUAGE_JAPANESE; + show->contestLiveUpdates.losingTrainerLanguage = LANGUAGE_JAPANESE; } else { - show->contestLiveUpdates.winningTrainerLanguage = gLinkPlayers[a1].language; + show->contestLiveUpdates.losingTrainerLanguage = gLinkPlayers[loser].language; } } } @@ -3810,10 +3810,10 @@ static void sub_80F0708(void) // FIXME: register allocation shenanigans switch (gSaveBlock1Ptr->tvShows[i].common.kind) { case TVSHOW_CONTEST_LIVE_UPDATES: - j = (&gSaveBlock1Ptr->tvShows[i])->contestLiveUpdates.species; - sub_80F0B24(j, i); j = (&gSaveBlock1Ptr->tvShows[i])->contestLiveUpdates.winningSpecies; sub_80F0B24(j, i); + j = (&gSaveBlock1Ptr->tvShows[i])->contestLiveUpdates.losingSpecies; + sub_80F0B24(j, i); break; case TVSHOW_3_CHEERS_FOR_POKEBLOCKS: break; @@ -4307,8 +4307,8 @@ static void sub_80F12A4(TVShow *shows) curShow->bravoTrainerTower.pokemonNameLanguage = TV_GetStringLanguage(curShow->bravoTrainerTower.pokemonName); break; case TVSHOW_CONTEST_LIVE_UPDATES: - curShow->contestLiveUpdates.language = TV_GetStringLanguage(curShow->contestLiveUpdates.playerName); curShow->contestLiveUpdates.winningTrainerLanguage = TV_GetStringLanguage(curShow->contestLiveUpdates.winningTrainerName); + curShow->contestLiveUpdates.losingTrainerLanguage = TV_GetStringLanguage(curShow->contestLiveUpdates.losingTrainerName); break; case TVSHOW_3_CHEERS_FOR_POKEBLOCKS: curShow->threeCheers.language = TV_GetStringLanguage(curShow->threeCheers.playerName); @@ -5173,6 +5173,12 @@ static void DoTVShowPokemonNewsMassOutbreak(void) ShowFieldMessage(sTVMassOutbreakTextGroup[sTVShowState]); } +// TV Show that plays after a Link Contest. +// First talks about the winner and something they did, then about a losing player and something they did +// The show is only generated when the player wins, but can be record mixed to other games +// Each state buffers any needed data for a message to print from sTVContestLiveUpdatesTextGroup +// Many cases in this function are identical, and its size can be reduced a good deal by collapsing them +// Can't get this to match while collapsing them though static void DoTVShowPokemonContestLiveUpdates(void) { TVShow *show; @@ -5183,339 +5189,338 @@ static void DoTVShowPokemonContestLiveUpdates(void) state = sTVShowState; switch (state) { - case 0: - BufferContestName(gStringVar1, show->contestLiveUpdates.category); - StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); - TVShowConvertInternationalString(gStringVar3, show->contestLiveUpdates.playerName, show->contestLiveUpdates.language); - if (show->contestLiveUpdates.round1Rank == show->contestLiveUpdates.round2Rank) + case CONTESTLIVE_STATE_INTRO: + BufferContestName(gStringVar1, show->contestLiveUpdates.category); + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.winningSpecies]); + TVShowConvertInternationalString(gStringVar3, show->contestLiveUpdates.winningTrainerName, show->contestLiveUpdates.winningTrainerLanguage); + if (show->contestLiveUpdates.round1Placing == show->contestLiveUpdates.round2Placing) + { + if (show->contestLiveUpdates.round1Placing == 0) { - if (show->contestLiveUpdates.round1Rank == 0) - { - sTVShowState = 1; - } - else - { - sTVShowState = 3; - } - } - else if (show->contestLiveUpdates.round1Rank > show->contestLiveUpdates.round2Rank) - { - sTVShowState = 2; + sTVShowState = CONTESTLIVE_STATE_WON_BOTH_ROUNDS; } else { - sTVShowState = 4; + sTVShowState = CONTESTLIVE_STATE_EQUAL_ROUNDS; } + } + else if (show->contestLiveUpdates.round1Placing > show->contestLiveUpdates.round2Placing) + { + sTVShowState = CONTESTLIVE_STATE_BETTER_ROUND2; + } + else + { + sTVShowState = CONTESTLIVE_STATE_BETTER_ROUND1; + } + break; + case CONTESTLIVE_STATE_WON_BOTH_ROUNDS: + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.winningSpecies]); + switch (show->contestLiveUpdates.winnerAppealFlag) + { + case CONTESTLIVE_FLAG_EXCITING_APPEAL: + sTVShowState = CONTESTLIVE_STATE_EXCITING_APPEAL; break; - case 1: - StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); - switch (show->contestLiveUpdates.appealFlags1) - { - case 0x01: - sTVShowState = 8; - break; - case 0x02: - sTVShowState = 5; - break; - case 0x04: - sTVShowState = 14; - break; - case 0x08: - sTVShowState = 7; - break; - case 0x10: - sTVShowState = 6; - break; - case 0x20: - sTVShowState = 20; - break; - case 0x40: - sTVShowState = 21; - break; - case 0x80: - sTVShowState = 22; - break; - } + case CONTESTLIVE_FLAG_GOT_NERVOUS: + sTVShowState = CONTESTLIVE_STATE_GOT_NERVOUS; break; - case 2: - StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); - switch (show->contestLiveUpdates.appealFlags1) - { - case 0x01: - sTVShowState = 8; - break; - case 0x02: - sTVShowState = 5; - break; - case 0x04: - sTVShowState = 14; - break; - case 0x08: - sTVShowState = 7; - break; - case 0x10: - sTVShowState = 6; - break; - case 0x20: - sTVShowState = 20; - break; - case 0x40: - sTVShowState = 21; - break; - case 0x80: - sTVShowState = 22; - break; - } + case CONTESTLIVE_FLAG_MAXED_EXCITEMENT: + sTVShowState = CONTESTLIVE_STATE_VERY_EXCITING_APPEAL; break; - case 3: - StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); - TVShowConvertInternationalString(gStringVar3, show->contestLiveUpdates.playerName, show->contestLiveUpdates.language); - switch (show->contestLiveUpdates.appealFlags1) - { - case 0x01: - sTVShowState = 8; - break; - case 0x02: - sTVShowState = 5; - break; - case 0x04: - sTVShowState = 14; - break; - case 0x08: - sTVShowState = 7; - break; - case 0x10: - sTVShowState = 6; - break; - case 0x20: - sTVShowState = 20; - break; - case 0x40: - sTVShowState = 21; - break; - case 0x80: - sTVShowState = 22; - break; - } + case CONTESTLIVE_FLAG_USED_COMBO: + sTVShowState = CONTESTLIVE_STATE_USED_COMBO; break; - case 4: - switch (show->contestLiveUpdates.category) - { - case 0: - StringCopy(gStringVar1, gText_Cool); - break; - case 1: - StringCopy(gStringVar1, gText_Beauty); - break; - case 2: - StringCopy(gStringVar1, gText_Cute); - break; - case 3: - StringCopy(gStringVar1, gText_Smart); - break; - case 4: - StringCopy(gStringVar1, gText_Tough); - break; - } - StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); - switch (show->contestLiveUpdates.appealFlags1) - { - case 0x01: - sTVShowState = 8; - break; - case 0x02: - sTVShowState = 5; - break; - case 0x04: - sTVShowState = 14; - break; - case 0x08: - sTVShowState = 7; - break; - case 0x10: - sTVShowState = 6; - break; - case 0x20: - sTVShowState = 20; - break; - case 0x40: - sTVShowState = 21; - break; - case 0x80: - sTVShowState = 22; - break; - } + case CONTESTLIVE_FLAG_STARTLED_OTHER: + sTVShowState = CONTESTLIVE_STATE_STARTLED_OTHER; break; - case 5: - StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); - sTVShowState = 23; + case CONTESTLIVE_FLAG_SKIPPED_TURN: + sTVShowState = CONTESTLIVE_STATE_TOOK_BREAK; break; - case 6: - StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); - sTVShowState = 23; + case CONTESTLIVE_FLAG_GOT_STARTLED: + sTVShowState = CONTESTLIVE_STATE_GOT_STARTLED; break; - case 7: - StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); - sTVShowState = 23; + case CONTESTLIVE_FLAG_MADE_APPEAL: + sTVShowState = CONTESTLIVE_STATE_USED_MOVE; break; - case 8: - StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); - switch (show->contestLiveUpdates.category) - { - case 0: - sTVShowState = 9; - break; - case 1: - sTVShowState = 10; - break; - case 2: - sTVShowState = 11; - break; - case 3: - sTVShowState = 12; - break; - case 4: - sTVShowState = 13; - break; - } + } + break; + case CONTESTLIVE_STATE_BETTER_ROUND2: + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.winningSpecies]); + switch (show->contestLiveUpdates.winnerAppealFlag) + { + case CONTESTLIVE_FLAG_EXCITING_APPEAL: + sTVShowState = CONTESTLIVE_STATE_EXCITING_APPEAL; break; - case 9: - StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); - sTVShowState = 23; + case CONTESTLIVE_FLAG_GOT_NERVOUS: + sTVShowState = CONTESTLIVE_STATE_GOT_NERVOUS; break; - case 10: - StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); - sTVShowState = 23; + case CONTESTLIVE_FLAG_MAXED_EXCITEMENT: + sTVShowState = CONTESTLIVE_STATE_VERY_EXCITING_APPEAL; break; - case 11: - StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); - sTVShowState = 23; + case CONTESTLIVE_FLAG_USED_COMBO: + sTVShowState = CONTESTLIVE_STATE_USED_COMBO; break; - case 12: - StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); - sTVShowState = 23; + case CONTESTLIVE_FLAG_STARTLED_OTHER: + sTVShowState = CONTESTLIVE_STATE_STARTLED_OTHER; break; - case 13: - StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); - sTVShowState = 23; + case CONTESTLIVE_FLAG_SKIPPED_TURN: + sTVShowState = CONTESTLIVE_STATE_TOOK_BREAK; break; - case 14: - StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); - switch (show->contestLiveUpdates.category) - { - case 0: - sTVShowState = 15; - break; - case 1: - sTVShowState = 16; - break; - case 2: - sTVShowState = 17; - break; - case 3: - sTVShowState = 18; - break; - case 4: - sTVShowState = 19; - break; - } + case CONTESTLIVE_FLAG_GOT_STARTLED: + sTVShowState = CONTESTLIVE_STATE_GOT_STARTLED; break; - case 15: - StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); - sTVShowState = 23; + case CONTESTLIVE_FLAG_MADE_APPEAL: + sTVShowState = CONTESTLIVE_STATE_USED_MOVE; break; - case 16: - StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); - sTVShowState = 23; + } + break; + case CONTESTLIVE_STATE_EQUAL_ROUNDS: + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.winningSpecies]); + TVShowConvertInternationalString(gStringVar3, show->contestLiveUpdates.winningTrainerName, show->contestLiveUpdates.winningTrainerLanguage); + switch (show->contestLiveUpdates.winnerAppealFlag) + { + case CONTESTLIVE_FLAG_EXCITING_APPEAL: + sTVShowState = CONTESTLIVE_STATE_EXCITING_APPEAL; break; - case 17: - StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); - sTVShowState = 23; + case CONTESTLIVE_FLAG_GOT_NERVOUS: + sTVShowState = CONTESTLIVE_STATE_GOT_NERVOUS; break; - case 18: - StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); - sTVShowState = 23; + case CONTESTLIVE_FLAG_MAXED_EXCITEMENT: + sTVShowState = CONTESTLIVE_STATE_VERY_EXCITING_APPEAL; break; - case 19: - StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); - sTVShowState = 23; + case CONTESTLIVE_FLAG_USED_COMBO: + sTVShowState = CONTESTLIVE_STATE_USED_COMBO; break; - case 20: - StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); - sTVShowState = 23; + case CONTESTLIVE_FLAG_STARTLED_OTHER: + sTVShowState = CONTESTLIVE_STATE_STARTLED_OTHER; break; - case 21: - StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); - sTVShowState = 23; + case CONTESTLIVE_FLAG_SKIPPED_TURN: + sTVShowState = CONTESTLIVE_STATE_TOOK_BREAK; break; - case 22: - StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); - StringCopy(gStringVar3, gMoveNames[show->contestLiveUpdates.move]); - sTVShowState = 23; + case CONTESTLIVE_FLAG_GOT_STARTLED: + sTVShowState = CONTESTLIVE_STATE_GOT_STARTLED; break; - case 23: - StringCopy(gStringVar1, gSpeciesNames[show->contestLiveUpdates.species]); - TVShowConvertInternationalString(gStringVar2, show->contestLiveUpdates.winningTrainerName, show->contestLiveUpdates.winningTrainerLanguage); - StringCopy(gStringVar3, gSpeciesNames[show->contestLiveUpdates.winningSpecies]); - switch (show->contestLiveUpdates.appealFlags2) - { - case 0x01: - sTVShowState = 31; - break; - case 0x02: - sTVShowState = 30; - break; - case 0x04: - sTVShowState = 29; - break; - case 0x08: - sTVShowState = 28; - break; - case 0x10: - sTVShowState = 27; - break; - case 0x20: - sTVShowState = 26; - break; - case 0x40: - sTVShowState = 25; - break; - case 0x80: - sTVShowState = 24; - break; - } + case CONTESTLIVE_FLAG_MADE_APPEAL: + sTVShowState = CONTESTLIVE_STATE_USED_MOVE; break; - case 24: - StringCopy(gStringVar1, gSpeciesNames[show->contestLiveUpdates.winningSpecies]); - sTVShowState = 32; + } + break; + case CONTESTLIVE_STATE_BETTER_ROUND1: + switch (show->contestLiveUpdates.category) + { + case CONTEST_CATEGORY_COOL: + StringCopy(gStringVar1, gText_Cool); break; - case 25: - TVShowConvertInternationalString(gStringVar1, show->contestLiveUpdates.winningTrainerName, show->contestLiveUpdates.winningTrainerLanguage); - StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.winningSpecies]); - sTVShowState = 32; + case CONTEST_CATEGORY_BEAUTY: + StringCopy(gStringVar1, gText_Beauty); break; - case 28: - sTVShowState = 32; + case CONTEST_CATEGORY_CUTE: + StringCopy(gStringVar1, gText_Cute); break; - case 29: - TVShowConvertInternationalString(gStringVar1, show->contestLiveUpdates.playerName, show->contestLiveUpdates.language); - StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); - TVShowConvertInternationalString(gStringVar3, show->contestLiveUpdates.winningTrainerName, show->contestLiveUpdates.winningTrainerLanguage); - sTVShowState = 32; + case CONTEST_CATEGORY_SMART: + StringCopy(gStringVar1, gText_Smart); break; - case 26: - case 27: - case 30: - case 31: - TVShowConvertInternationalString(gStringVar1, show->contestLiveUpdates.winningTrainerName, show->contestLiveUpdates.winningTrainerLanguage); - sTVShowState = 32; + case CONTEST_CATEGORY_TOUGH: + StringCopy(gStringVar1, gText_Tough); break; - case 32: - - TVShowConvertInternationalString(gStringVar1, show->contestLiveUpdates.playerName, show->contestLiveUpdates.language); - StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); - TVShowDone(); + } + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.winningSpecies]); + switch (show->contestLiveUpdates.winnerAppealFlag) + { + case CONTESTLIVE_FLAG_EXCITING_APPEAL: + sTVShowState = CONTESTLIVE_STATE_EXCITING_APPEAL; break; + case CONTESTLIVE_FLAG_GOT_NERVOUS: + sTVShowState = CONTESTLIVE_STATE_GOT_NERVOUS; + break; + case CONTESTLIVE_FLAG_MAXED_EXCITEMENT: + sTVShowState = CONTESTLIVE_STATE_VERY_EXCITING_APPEAL; + break; + case CONTESTLIVE_FLAG_USED_COMBO: + sTVShowState = CONTESTLIVE_STATE_USED_COMBO; + break; + case CONTESTLIVE_FLAG_STARTLED_OTHER: + sTVShowState = CONTESTLIVE_STATE_STARTLED_OTHER; + break; + case CONTESTLIVE_FLAG_SKIPPED_TURN: + sTVShowState = CONTESTLIVE_STATE_TOOK_BREAK; + break; + case CONTESTLIVE_FLAG_GOT_STARTLED: + sTVShowState = CONTESTLIVE_STATE_GOT_STARTLED; + break; + case CONTESTLIVE_FLAG_MADE_APPEAL: + sTVShowState = CONTESTLIVE_STATE_USED_MOVE; + break; + } + break; + case CONTESTLIVE_STATE_GOT_NERVOUS: + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.winningSpecies]); + sTVShowState = CONTESTLIVE_STATE_TALK_ABOUT_LOSER; + break; + case CONTESTLIVE_STATE_STARTLED_OTHER: + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.winningSpecies]); + sTVShowState = CONTESTLIVE_STATE_TALK_ABOUT_LOSER; + break; + case CONTESTLIVE_STATE_USED_COMBO: + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.winningSpecies]); + sTVShowState = CONTESTLIVE_STATE_TALK_ABOUT_LOSER; + break; + case CONTESTLIVE_STATE_EXCITING_APPEAL: + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.winningSpecies]); + switch (show->contestLiveUpdates.category) + { + case CONTEST_CATEGORY_COOL: + sTVShowState = CONTESTLIVE_STATE_COOL; + break; + case CONTEST_CATEGORY_BEAUTY: + sTVShowState = CONTESTLIVE_STATE_BEAUTIFUL; + break; + case CONTEST_CATEGORY_CUTE: + sTVShowState = CONTESTLIVE_STATE_CUTE; + break; + case CONTEST_CATEGORY_SMART: + sTVShowState = CONTESTLIVE_STATE_SMART; + break; + case CONTEST_CATEGORY_TOUGH: + sTVShowState = CONTESTLIVE_STATE_TOUGH; + break; + } + break; + case CONTESTLIVE_STATE_COOL: + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.winningSpecies]); + sTVShowState = CONTESTLIVE_STATE_TALK_ABOUT_LOSER; + break; + case CONTESTLIVE_STATE_BEAUTIFUL: + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.winningSpecies]); + sTVShowState = CONTESTLIVE_STATE_TALK_ABOUT_LOSER; + break; + case CONTESTLIVE_STATE_CUTE: + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.winningSpecies]); + sTVShowState = CONTESTLIVE_STATE_TALK_ABOUT_LOSER; + break; + case CONTESTLIVE_STATE_SMART: + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.winningSpecies]); + sTVShowState = CONTESTLIVE_STATE_TALK_ABOUT_LOSER; + break; + case CONTESTLIVE_STATE_TOUGH: + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.winningSpecies]); + sTVShowState = CONTESTLIVE_STATE_TALK_ABOUT_LOSER; + break; + case CONTESTLIVE_STATE_VERY_EXCITING_APPEAL: + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.winningSpecies]); + switch (show->contestLiveUpdates.category) + { + case CONTEST_CATEGORY_COOL: + sTVShowState = CONTESTLIVE_STATE_VERY_COOL; + break; + case CONTEST_CATEGORY_BEAUTY: + sTVShowState = CONTESTLIVE_STATE_VERY_BEAUTIFUL; + break; + case CONTEST_CATEGORY_CUTE: + sTVShowState = CONTESTLIVE_STATE_VERY_CUTE; + break; + case CONTEST_CATEGORY_SMART: + sTVShowState = CONTESTLIVE_STATE_VERY_SMART; + break; + case CONTEST_CATEGORY_TOUGH: + sTVShowState = CONTESTLIVE_STATE_VERY_TOUGH; + break; + } + break; + case CONTESTLIVE_STATE_VERY_COOL: + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.winningSpecies]); + sTVShowState = CONTESTLIVE_STATE_TALK_ABOUT_LOSER; + break; + case CONTESTLIVE_STATE_VERY_BEAUTIFUL: + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.winningSpecies]); + sTVShowState = CONTESTLIVE_STATE_TALK_ABOUT_LOSER; + break; + case CONTESTLIVE_STATE_VERY_CUTE: + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.winningSpecies]); + sTVShowState = CONTESTLIVE_STATE_TALK_ABOUT_LOSER; + break; + case CONTESTLIVE_STATE_VERY_SMART: + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.winningSpecies]); + sTVShowState = CONTESTLIVE_STATE_TALK_ABOUT_LOSER; + break; + case CONTESTLIVE_STATE_VERY_TOUGH: + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.winningSpecies]); + sTVShowState = CONTESTLIVE_STATE_TALK_ABOUT_LOSER; + break; + case CONTESTLIVE_STATE_TOOK_BREAK: + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.winningSpecies]); + sTVShowState = CONTESTLIVE_STATE_TALK_ABOUT_LOSER; + break; + case CONTESTLIVE_STATE_GOT_STARTLED: + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.winningSpecies]); + sTVShowState = CONTESTLIVE_STATE_TALK_ABOUT_LOSER; + break; + case CONTESTLIVE_STATE_USED_MOVE: + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.winningSpecies]); + StringCopy(gStringVar3, gMoveNames[show->contestLiveUpdates.move]); + sTVShowState = CONTESTLIVE_STATE_TALK_ABOUT_LOSER; + break; + case CONTESTLIVE_STATE_TALK_ABOUT_LOSER: + StringCopy(gStringVar1, gSpeciesNames[show->contestLiveUpdates.winningSpecies]); + TVShowConvertInternationalString(gStringVar2, show->contestLiveUpdates.losingTrainerName, show->contestLiveUpdates.losingTrainerLanguage); + StringCopy(gStringVar3, gSpeciesNames[show->contestLiveUpdates.losingSpecies]); + switch (show->contestLiveUpdates.loserAppealFlag) + { + case CONTESTLIVE_FLAG_LOST: + sTVShowState = CONTESTLIVE_STATE_LOST; + break; + case CONTESTLIVE_FLAG_REPEATED_MOVE: + sTVShowState = CONTESTLIVE_STATE_REPEATED_APPEALS; + break; + case CONTESTLIVE_FLAG_LOST_SMALL_MARGIN: + sTVShowState = CONTESTLIVE_STATE_LOST_SMALL_MARGIN; + break; + case CONTESTLIVE_FLAG_NO_EXCITEMENT: + sTVShowState = CONTESTLIVE_STATE_NO_EXCITING_APPEALS; + break; + case CONTESTLIVE_FLAG_BLEW_LEAD: + sTVShowState = CONTESTLIVE_STATE_LOST_AFTER_ROUND1_WIN; + break; + case CONTESTLIVE_FLAG_MISSED_EXCITEMENT: + sTVShowState = CONTESTLIVE_STATE_NOT_EXCITING_ENOUGH; + break; + case CONTESTLIVE_FLAG_LAST_BOTH_ROUNDS: + sTVShowState = CONTESTLIVE_STATE_LAST_BOTH; + break; + case CONTESTLIVE_FLAG_NO_APPEALS: + sTVShowState = CONTESTLIVE_STATE_NO_APPEALS; + break; + } + break; + case CONTESTLIVE_STATE_NO_APPEALS: + StringCopy(gStringVar1, gSpeciesNames[show->contestLiveUpdates.losingSpecies]); + sTVShowState = CONTESTLIVE_STATE_OUTRO; + break; + case CONTESTLIVE_STATE_LAST_BOTH: + TVShowConvertInternationalString(gStringVar1, show->contestLiveUpdates.losingTrainerName, show->contestLiveUpdates.losingTrainerLanguage); + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.losingSpecies]); + sTVShowState = CONTESTLIVE_STATE_OUTRO; + break; + case CONTESTLIVE_STATE_NO_EXCITING_APPEALS: + sTVShowState = CONTESTLIVE_STATE_OUTRO; + break; + case CONTESTLIVE_STATE_LOST_SMALL_MARGIN: + TVShowConvertInternationalString(gStringVar1, show->contestLiveUpdates.winningTrainerName, show->contestLiveUpdates.winningTrainerLanguage); + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.winningSpecies]); + TVShowConvertInternationalString(gStringVar3, show->contestLiveUpdates.losingTrainerName, show->contestLiveUpdates.losingTrainerLanguage); + sTVShowState = CONTESTLIVE_STATE_OUTRO; + break; + case CONTESTLIVE_STATE_NOT_EXCITING_ENOUGH: + case CONTESTLIVE_STATE_LOST_AFTER_ROUND1_WIN: + case CONTESTLIVE_STATE_REPEATED_APPEALS: + case CONTESTLIVE_STATE_LOST: + TVShowConvertInternationalString(gStringVar1, show->contestLiveUpdates.losingTrainerName, show->contestLiveUpdates.losingTrainerLanguage); + sTVShowState = CONTESTLIVE_STATE_OUTRO; + break; + case CONTESTLIVE_STATE_OUTRO: + TVShowConvertInternationalString(gStringVar1, show->contestLiveUpdates.winningTrainerName, show->contestLiveUpdates.winningTrainerLanguage); + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.winningSpecies]); + TVShowDone(); + break; } ShowFieldMessage(sTVContestLiveUpdatesTextGroup[state]); } From 2749948eebe65aa8b55738d820e4a0252dd45c1a Mon Sep 17 00:00:00 2001 From: GriffinR Date: Sun, 16 Aug 2020 05:52:17 -0400 Subject: [PATCH 068/101] Clean up contest doc --- data/contest_ai_scripts.s | 6 +- include/constants/contest.h | 27 ----- include/contest.h | 22 ++-- src/contest.c | 201 ++++++++++++++++++----------------- src/contest_effect.c | 40 +++---- src/data/contest_opponents.h | 36 +++---- 6 files changed, 152 insertions(+), 180 deletions(-) diff --git a/data/contest_ai_scripts.s b/data/contest_ai_scripts.s index 4938a8c93c..4a0bed8175 100644 --- a/data/contest_ai_scripts.s +++ b/data/contest_ai_scripts.s @@ -6,8 +6,6 @@ .section script_data, "aw", %progbits -@ TODO - enum_start enum MON_1 enum MON_2 @@ -52,7 +50,7 @@ gContestAIChecks:: @ 82DE350 @ Unreferenced AI routine to encourage moves that improve condition on the first @ appeal. Additionally, it checks the turn order of the user and the effect -@ type, but the code is buggy and doesnt affect the score. +@ type, but the code is buggy and doesn't affect the score. if_appeal_num_not_eq 0, ContestUnreferenced_80 if_effect_not_eq CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, ContestUnreferenced_80 score +10 @@ -67,7 +65,7 @@ ContestUnreferenced_0D: ContestUnreferenced_end: end -@ Unreferenced AI routine that doesnt make much sense. +@ Unreferenced AI routine that doesn't make much sense. if_appeal_num_eq 0, ContestUnreferenced_0F_1 if_appeal_num_eq 1, ContestUnreferenced_0F_2 if_appeal_num_eq 2, ContestUnreferenced_0F_3 diff --git a/include/constants/contest.h b/include/constants/contest.h index a10354169b..5ec4c4f694 100644 --- a/include/constants/contest.h +++ b/include/constants/contest.h @@ -52,33 +52,6 @@ #define CONTEST_AI_CHECK_ORDER (1 << 4) #define CONTEST_AI_CHECK_GOOD_MOVE (1 << 5) #define CONTEST_AI_ERRATIC (1 << 6) -#define CONTEST_AI_DUMMY_1 (1 << 7) -#define CONTEST_AI_DUMMY_2 (1 << 8) -#define CONTEST_AI_DUMMY_3 (1 << 9) -#define CONTEST_AI_DUMMY_4 (1 << 10) -#define CONTEST_AI_DUMMY_5 (1 << 11) -#define CONTEST_AI_DUMMY_6 (1 << 12) -#define CONTEST_AI_DUMMY_7 (1 << 13) -#define CONTEST_AI_DUMMY_8 (1 << 14) -#define CONTEST_AI_DUMMY_9 (1 << 15) -#define CONTEST_AI_DUMMY_10 (1 << 16) -#define CONTEST_AI_DUMMY_11 (1 << 17) -#define CONTEST_AI_DUMMY_12 (1 << 18) -#define CONTEST_AI_DUMMY_13 (1 << 19) -#define CONTEST_AI_DUMMY_14 (1 << 20) -#define CONTEST_AI_DUMMY_15 (1 << 21) -#define CONTEST_AI_DUMMY_16 (1 << 22) -#define CONTEST_AI_DUMMY_17 (1 << 23) -#define CONTEST_AI_DUMMY_18 (1 << 24) -#define CONTEST_AI_DUMMY_19 (1 << 25) -#define CONTEST_AI_DUMMY_20 (1 << 26) -#define CONTEST_AI_DUMMY_21 (1 << 27) -#define CONTEST_AI_DUMMY_22 (1 << 28) -#define CONTEST_AI_DUMMY_23 (1 << 29) -#define CONTEST_AI_DUMMY_24 (1 << 30) -#define CONTEST_AI_DUMMY_25 (1 << 31) -#define CONTEST_AI_ALL (CONTEST_AI_CHECK_BAD_MOVE | CONTEST_AI_CHECK_COMBO | CONTEST_AI_CHECK_BORING | CONTEST_AI_CHECK_EXCITEMENT | CONTEST_AI_CHECK_ORDER | CONTEST_AI_CHECK_GOOD_MOVE | CONTEST_AI_ERRATIC) -#define CONTEST_AI_DUMMIES_1 (CONTEST_AI_DUMMY_1 | CONTEST_AI_DUMMY_2 | CONTEST_AI_DUMMY_3 | CONTEST_AI_DUMMY_4 | CONTEST_AI_DUMMY_5) #define CONTEST_EFFECT_HIGHLY_APPEALING 0 #define CONTEST_EFFECT_USER_MORE_EASILY_STARTLED 1 diff --git a/include/contest.h b/include/contest.h index 834aba4024..e4cda6e259 100644 --- a/include/contest.h +++ b/include/contest.h @@ -127,11 +127,11 @@ struct Contest { u8 playerMoveChoice; u8 appealNumber; - u8 unused2[CONTESTANT_COUNT]; - bool16 unk1920A_0:1; // Task active flags? - bool16 unk1920A_1:1; - bool16 unk1920A_2:1; - bool16 unk1920A_3:1; + u8 unk[CONTESTANT_COUNT]; // never read + bool16 unused1:1; + bool16 unused2:1; + bool16 unused3:1; + bool16 unused4:1; bool16 waitForJudgeSpeechBubble:1; bool16 isShowingApplauseMeter:1; bool16 applauseMeterIsMoving:1; @@ -140,10 +140,10 @@ struct Contest bool16 sliderHeartsAnimating:1; // When the slider heart is appearing/disappearing bool16 waitForLink:1; u8 mainTaskId; - u8 unk1920D[4]; + u8 filler1[4]; u8 judgeAttentionTaskId; u8 blendTaskId; - u8 filler19213; + u8 filler2; u8 turnNumber; u8 currentContestant; u8 judgeSpeechBubbleSpriteId; @@ -159,8 +159,8 @@ struct Contest struct ContestantStatus { - s16 appeal1; // move appeal? - s16 appeal2; // final appeal after end of turn, maybe? + s16 baseAppeal; + s16 appeal; s16 pointTotal; u16 currMove; u16 prevMove; @@ -264,8 +264,8 @@ struct ContestTV s16 move; u8 winnerFlags; u8 loserFlags; - u8 madeAppeal:1; - u8 madeExcitingAppeal:1; + bool8 madeAppeal:1; + bool8 madeExcitingAppeal:1; }; struct ContestUnused diff --git a/src/contest.c b/src/contest.c index d734b9eb4d..97d9cfda7d 100644 --- a/src/contest.c +++ b/src/contest.c @@ -79,7 +79,7 @@ static void Task_ReadyUpdateHeartSliders(u8); static void Task_UpdateHeartSliders(u8); static void Task_WaitForHeartSliders(u8); static void sub_80DA348(u8); -static void sub_80DA38C(u8); +static void Task_WaitPrintRoundResult(u8); static void Task_PrintRoundResultText(u8); static void Task_ReUpdateHeartSliders(u8); static void Task_WaitForHeartSlidersAgain(u8); @@ -267,6 +267,70 @@ enum { SLIDER_HEART_ANIM_APPEAR, }; +// States for Task_DoAppeals +enum { + APPEALSTATE_START_TURN, + APPEALSTATE_WAIT_LINK, + APPEALSTATE_CHECK_SKIP_TURN, + APPEALSTATE_SLIDE_MON_IN, + APPEALSTATE_WAIT_SLIDE_MON, + APPEALSTATE_PRINT_USED_MOVE_MSG, + APPEALSTATE_WAIT_USED_MOVE_MSG, + APPEALSTATE_MOVE_ANIM, + APPEALSTATE_WAIT_MOVE_ANIM, + APPEALSTATE_MOVE_ANIM_MULTITURN, + APPEALSTATE_SLIDE_MON_OUT, + APPEALSTATE_FREE_MON_SPRITE, + APPEALSTATE_UPDATE_MOVE_USERS_HEARTS, + APPEALSTATE_WAIT_MOVE_USERS_HEARTS, + APPEALSTATE_PRINT_COMBO_MSG, + APPEALSTATE_TRY_UPDATE_HEARTS_FROM_COMBO, + APPEALSTATE_WAIT_HEARTS_FROM_COMBO, + APPEALSTATE_CHECK_REPEATED_MOVE, + APPEALSTATE_WAIT_HEARTS_FROM_REPEAT, + APPEALSTATE_UPDATE_HEARTS_FROM_REPEAT, + APPEALSTATE_START_TURN_END_DELAY, + APPEALSTATE_TURN_END_DELAY, + APPEALSTATE_START_NEXT_TURN, + APPEALSTATE_TRY_PRINT_MOVE_RESULT, + APPEALSTATE_WAIT_MOVE_RESULT_MSG, + APPEALSTATE_UPDATE_OPPONENTS, + APPEALSTATE_UPDATE_OPPONENT, + APPEALSTATE_WAIT_OPPONENT_RESPONSE_MSG, + APPEALSTATE_UPDATE_OPPONENT_HEARTS, + APPEALSTATE_WAIT_OPPONENT_HEARTS, + APPEALSTATE_UPDATE_OPPONENT_STATUS, + APPEALSTATE_PRINT_SKIP_TURN_MSG, + APPEALSTATE_WAIT_SKIP_TURN_MSG, + APPEALSTATE_PRINT_TOO_NERVOUS_MSG, + APPEALSTATE_WAIT_TOO_NERVOUS_MSG, + APPEALSTATE_TRY_JUDGE_STAR, + APPEALSTATE_WAIT_JUDGE_STAR, + APPEALSTATE_UPDATE_MOVE_USERS_STARS, + APPEALSTATE_WAIT_MOVE_USERS_STARS, + APPEALSTATE_UPDATE_OPPONENT_STARS, + APPEALSTATE_WAIT_OPPONENT_STARS, + APPEALSTATE_UPDATE_CROWD, + APPEALSTATE_42, // Unused state + APPEALSTATE_WAIT_EXCITEMENT_HEARTS, + APPEALSTATE_44, // Unused state + APPEALSTATE_WAIT_JUDGE_COMBO, + APPEALSTATE_WAIT_JUDGE_REPEATED_MOVE, + APPEALSTATE_TRY_SHOW_NEXT_TURN_GFX, + APPEALSTATE_CHECK_TURN_ORDER_MOD, + APPEALSTATE_WAIT_JUDGE_TURN_ORDER, + APPEALSTATE_UPDATE_MOVE_USERS_STATUS, + APPEALSTATE_TRY_PRINT_SKIP_NEXT_TURN_MSG, + APPEALSTATE_WAIT_SKIP_NEXT_TURN_MSG, + APPEALSTATE_DO_CROWD_UNEXCITED, + APPEALSTATE_DO_CROWD_EXCITED, + APPEALSTATE_SLIDE_APPLAUSE_OUT, + APPEALSTATE_WAIT_SLIDE_APPLAUSE, + APPEALSTATE_PRINT_CROWD_WATCHES_MSG, + APPEALSTATE_PRINT_MON_MOVE_IGNORED_MSG, + APPEALSTATE_WAIT_MON_MOVE_IGNORED_MSG, +}; + // EWRAM vars. EWRAM_DATA struct ContestPokemon gContestMons[CONTESTANT_COUNT] = {0}; EWRAM_DATA s16 gContestMonRound1Points[CONTESTANT_COUNT] = {0}; // "Round 1" points are based on condition @@ -1023,7 +1087,7 @@ static void InitContestResources(void) eContest = (struct Contest){}; for (i = 0; i < CONTESTANT_COUNT; i++) { - eContest.unused2[i] = 0xFF; + eContest.unk[i] = 0xFF; } for (i = 0; i < CONTESTANT_COUNT; i++) { @@ -1163,7 +1227,7 @@ static void Task_StartContestWaitFade(u8 taskId) } } -// If this is a link contest try to start communication +// If this is a link contest try to start appeals communication // Otherwise skip ahead static void Task_TryStartLinkContest(u8 taskId) { @@ -1634,69 +1698,6 @@ static void Task_WaitHideApplauseMeterForAppealStart(u8 taskId) gTasks[taskId].func = Task_AppealSetup; } -enum { - APPEALSTATE_START_TURN, - APPEALSTATE_1, - APPEALSTATE_2, - APPEALSTATE_SLIDE_MON_IN, - APPEALSTATE_WAIT_SLIDE_MON, - APPEALSTATE_PRINT_USED_MOVE_MSG, - APPEALSTATE_WAIT_USED_MOVE_MSG, - APPEALSTATE_MOVE_ANIM, - APPEALSTATE_WAIT_MOVE_ANIM, - APPEALSTATE_MOVE_ANIM_MULTITURN, - APPEALSTATE_SLIDE_MON_OUT, - APPEALSTATE_FREE_MON_SPRITE, - APPEALSTATE_UPDATE_MOVE_USERS_HEARTS, - APPEALSTATE_WAIT_MOVE_USERS_HEARTS, - APPEALSTATE_PRINT_COMBO_MSG, - APPEALSTATE_TRY_UPDATE_HEARTS_FROM_COMBO, - APPEALSTATE_WAIT_HEARTS_FROM_COMBO, - APPEALSTATE_CHECK_REPEATED_MOVE, - APPEALSTATE_WAIT_HEARTS_FROM_REPEAT, - APPEALSTATE_UPDATE_HEARTS_FROM_REPEAT, - APPEALSTATE_START_TURN_END_DELAY, - APPEALSTATE_TURN_END_DELAY, - APPEALSTATE_START_NEXT_TURN, - APPEALSTATE_TRY_PRINT_MOVE_RESULT, - APPEALSTATE_WAIT_MOVE_RESULT_MSG, - APPEALSTATE_UPDATE_OPPONENTS, - APPEALSTATE_UPDATE_OPPONENT, - APPEALSTATE_WAIT_OPPONENT_RESPONSE_MSG, - APPEALSTATE_UPDATE_OPPONENT_HEARTS, - APPEALSTATE_WAIT_OPPONENT_HEARTS, - APPEALSTATE_UPDATE_OPPONENT_STATUS, - APPEALSTATE_PRINT_SKIP_TURN_MSG, - APPEALSTATE_WAIT_SKIP_TURN_MSG, - APPEALSTATE_PRINT_TOO_NERVOUS_MSG, - APPEALSTATE_WAIT_TOO_NERVOUS_MSG, - APPEALSTATE_TRY_JUDGE_STAR, - APPEALSTATE_WAIT_JUDGE_STAR, - APPEALSTATE_UPDATE_MOVE_USERS_STARS, - APPEALSTATE_WAIT_MOVE_USERS_STARS, - APPEALSTATE_UPDATE_OPPONENT_STARS, - APPEALSTATE_WAIT_OPPONENT_STARS, - APPEALSTATE_UPDATE_CROWD, - APPEALSTATE_42, // Unused state - APPEALSTATE_WAIT_EXCITEMENT_HEARTS, - APPEALSTATE_44, // Unused state - APPEALSTATE_WAIT_JUDGE_COMBO, - APPEALSTATE_WAIT_JUDGE_REPEATED_MOVE, - APPEALSTATE_TRY_SHOW_NEXT_TURN_GFX, - APPEALSTATE_CHECK_TURN_ORDER_MOD, - APPEALSTATE_WAIT_JUDGE_TURN_ORDER, - APPEALSTATE_UPDATE_MOVE_USERS_STATUS, - APPEALSTATE_TRY_PRINT_SKIP_NEXT_TURN_MSG, - APPEALSTATE_WAIT_SKIP_NEXT_TURN_MSG, - APPEALSTATE_DO_CROWD_UNEXCITED, - APPEALSTATE_DO_CROWD_EXCITED, - APPEALSTATE_SLIDE_APPLAUSE_OUT, - APPEALSTATE_WAIT_SLIDE_APPLAUSE, - APPEALSTATE_PRINT_CROWD_WATCHES_MSG, - APPEALSTATE_PRINT_MON_MOVE_IGNORED_MSG, - APPEALSTATE_WAIT_MON_MOVE_IGNORED_MSG, -}; - #define tState data[0] #define tMonSpriteId data[2] #define tCounter data[10] @@ -1746,19 +1747,19 @@ static void Task_DoAppeals(u8 taskId) taskId2 = CreateTask(Task_LinkContest_CommunicateAppealsState, 0); SetTaskFuncWithFollowupFunc(taskId2, Task_LinkContest_CommunicateAppealsState, Task_EndWaitForLink); ContestPrintLinkStandby(); - gTasks[taskId].tState = APPEALSTATE_1; + gTasks[taskId].tState = APPEALSTATE_WAIT_LINK; } else { CalculateAppealMoveImpact(eContest.currentContestant); - gTasks[taskId].tState = APPEALSTATE_2; + gTasks[taskId].tState = APPEALSTATE_CHECK_SKIP_TURN; } return; - case APPEALSTATE_1: + case APPEALSTATE_WAIT_LINK: if (!eContest.waitForLink) - gTasks[taskId].tState = APPEALSTATE_2; + gTasks[taskId].tState = APPEALSTATE_CHECK_SKIP_TURN; return; - case APPEALSTATE_2: + case APPEALSTATE_CHECK_SKIP_TURN: SetContestLiveUpdateFlags(contestant); ContestDebugPrintBitStrings(); if (eContestantStatus[contestant].numTurnsSkipped != 0 @@ -1927,7 +1928,7 @@ static void Task_DoAppeals(u8 taskId) gTasks[taskId].tState = APPEALSTATE_UPDATE_MOVE_USERS_HEARTS; return; case APPEALSTATE_UPDATE_MOVE_USERS_HEARTS: - UpdateAppealHearts(0, eContestantStatus[contestant].appeal2, contestant); + UpdateAppealHearts(0, eContestantStatus[contestant].appeal, contestant); gTasks[taskId].tState = APPEALSTATE_WAIT_MOVE_USERS_HEARTS; return; case APPEALSTATE_WAIT_MOVE_USERS_HEARTS: @@ -2018,7 +2019,7 @@ static void Task_DoAppeals(u8 taskId) case APPEALSTATE_UPDATE_OPPONENT_HEARTS: for (i = 0; gTasks[taskId].data[1] != gContestantTurnOrder[i]; i++) ; - UpdateAppealHearts(eContestantStatus[i].appeal2 + eContestantStatus[i].jam, -eContestantStatus[i].jam, i); + UpdateAppealHearts(eContestantStatus[i].appeal + eContestantStatus[i].jam, -eContestantStatus[i].jam, i); gTasks[taskId].tState = APPEALSTATE_WAIT_OPPONENT_HEARTS; return; case APPEALSTATE_WAIT_OPPONENT_HEARTS: @@ -2139,10 +2140,10 @@ static void Task_DoAppeals(u8 taskId) if (!eContestantStatus[contestant].hasJudgesAttention) { UpdateAppealHearts( - eContestantStatus[contestant].appeal2, + eContestantStatus[contestant].appeal, eContestantStatus[contestant].comboAppealBonus, contestant); - eContestantStatus[contestant].appeal2 += eContestantStatus[contestant].comboAppealBonus; + eContestantStatus[contestant].appeal += eContestantStatus[contestant].comboAppealBonus; } gTasks[taskId].tState = APPEALSTATE_WAIT_HEARTS_FROM_COMBO; } @@ -2178,8 +2179,8 @@ static void Task_DoAppeals(u8 taskId) case APPEALSTATE_UPDATE_HEARTS_FROM_REPEAT: if (!Contest_RunTextPrinters()) { - UpdateAppealHearts(eContestantStatus[contestant].appeal2, -eContestantStatus[contestant].repeatJam, contestant); - eContestantStatus[contestant].appeal2 -= eContestantStatus[contestant].repeatJam; + UpdateAppealHearts(eContestantStatus[contestant].appeal, -eContestantStatus[contestant].repeatJam, contestant); + eContestantStatus[contestant].appeal -= eContestantStatus[contestant].repeatJam; gTasks[taskId].tState = APPEALSTATE_WAIT_HEARTS_FROM_REPEAT; } return; @@ -2301,8 +2302,8 @@ static void Task_DoAppeals(u8 taskId) if (gTasks[taskId].data[11]++ > 29) { gTasks[taskId].data[11] = 0; - UpdateAppealHearts(eContestantStatus[contestant].appeal2, eContestExcitement.excitementAppealBonus, contestant); - eContestantStatus[contestant].appeal2 += eContestExcitement.excitementAppealBonus; + UpdateAppealHearts(eContestantStatus[contestant].appeal, eContestExcitement.excitementAppealBonus, contestant); + eContestantStatus[contestant].appeal += eContestExcitement.excitementAppealBonus; gTasks[taskId].tCounter++; } } @@ -2560,10 +2561,10 @@ static void sub_80DA348(u8 taskId) DmaCopy32Defvars(3, eUnknownHeap1A004.unk18204, gPlttBufferUnfaded, PLTT_BUFFER_SIZE * 2); gTasks[taskId].data[0] = 0; gTasks[taskId].data[1] = 2; - gTasks[taskId].func = sub_80DA38C; + gTasks[taskId].func = Task_WaitPrintRoundResult; } -static void sub_80DA38C(u8 taskId) +static void Task_WaitPrintRoundResult(u8 taskId) { if (++gTasks[taskId].data[0] > 2) { @@ -3416,7 +3417,7 @@ static void RankContestants(void) for (i = 0; i < CONTESTANT_COUNT; i++) { - eContestantStatus[i].pointTotal += eContestantStatus[i].appeal2; + eContestantStatus[i].pointTotal += eContestantStatus[i].appeal; arr[i] = eContestantStatus[i].pointTotal; } @@ -3467,13 +3468,13 @@ static void SetAttentionLevels(void) if (eContestantStatus[i].currMove == MOVE_NONE) attentionLevel = 5; - else if (eContestantStatus[i].appeal2 <= 0) + else if (eContestantStatus[i].appeal <= 0) attentionLevel = 0; - else if (eContestantStatus[i].appeal2 < 30) + else if (eContestantStatus[i].appeal < 30) attentionLevel = 1; - else if (eContestantStatus[i].appeal2 < 60) + else if (eContestantStatus[i].appeal < 60) attentionLevel = 2; - else if (eContestantStatus[i].appeal2 < 80) + else if (eContestantStatus[i].appeal < 80) attentionLevel = 3; else attentionLevel = 4; @@ -3496,8 +3497,8 @@ static void ResetContestantStatuses(void) for (i = 0; i < CONTESTANT_COUNT; i++) { - eContestantStatus[i].appeal2 = 0; - eContestantStatus[i].appeal1 = 0; + eContestantStatus[i].appeal = 0; + eContestantStatus[i].baseAppeal = 0; eContestantStatus[i].jamSafetyCount = 0; if (eContestantStatus[i].numTurnsSkipped > 0) eContestantStatus[i].numTurnsSkipped--; @@ -4278,9 +4279,9 @@ static void ContestDebugDoPrint(void) } for (i = 0; i < CONTESTANT_COUNT; i++) { - value = eContestantStatus[i].appeal2; + value = eContestantStatus[i].appeal; txtPtr = text; - if (eContestantStatus[i].appeal2 < 0) + if (eContestantStatus[i].appeal < 0) { value *= -1; txtPtr = StringCopy(txtPtr, gText_OneDash); @@ -4428,8 +4429,8 @@ static void CalculateAppealMoveImpact(u8 contestant) bool8 canUseTurn; s32 i; - eContestantStatus[contestant].appeal2 = 0; - eContestantStatus[contestant].appeal1 = 0; + eContestantStatus[contestant].appeal = 0; + eContestantStatus[contestant].baseAppeal = 0; if (!ContestantCanUseTurn(contestant)) return; @@ -4446,8 +4447,8 @@ static void CalculateAppealMoveImpact(u8 contestant) { eContestantStatus[contestant].moveRepeatCount = 0; } - eContestantStatus[contestant].appeal1 = gContestEffects[effect].appeal; - eContestantStatus[contestant].appeal2 = eContestantStatus[contestant].appeal1; + eContestantStatus[contestant].baseAppeal = gContestEffects[effect].appeal; + eContestantStatus[contestant].appeal = eContestantStatus[contestant].baseAppeal; eContestAppealResults.jam = gContestEffects[effect].jam; eContestAppealResults.jam2 = eContestAppealResults.jam; @@ -4465,11 +4466,11 @@ static void CalculateAppealMoveImpact(u8 contestant) gContestEffectFuncs[effect](); if (eContestantStatus[contestant].conditionMod == 1) - eContestantStatus[contestant].appeal2 += eContestantStatus[contestant].condition - 10; + eContestantStatus[contestant].appeal += eContestantStatus[contestant].condition - 10; else if (eContestantStatus[contestant].appealTripleCondition) - eContestantStatus[contestant].appeal2 += eContestantStatus[contestant].condition * 3; + eContestantStatus[contestant].appeal += eContestantStatus[contestant].condition * 3; else - eContestantStatus[contestant].appeal2 += eContestantStatus[contestant].condition; + eContestantStatus[contestant].appeal += eContestantStatus[contestant].condition; eContestantStatus[contestant].completedCombo = FALSE; eContestantStatus[contestant].usedComboMove = FALSE; @@ -4482,7 +4483,7 @@ static void CalculateAppealMoveImpact(u8 contestant) eContestantStatus[contestant].completedCombo = completedCombo; eContestantStatus[contestant].usedComboMove = TRUE; eContestantStatus[contestant].hasJudgesAttention = FALSE; - eContestantStatus[contestant].comboAppealBonus = eContestantStatus[contestant].appeal1 * eContestantStatus[contestant].completedCombo; + eContestantStatus[contestant].comboAppealBonus = eContestantStatus[contestant].baseAppeal * eContestantStatus[contestant].completedCombo; eContestantStatus[contestant].unk15_3 = TRUE; } else @@ -4504,8 +4505,8 @@ static void CalculateAppealMoveImpact(u8 contestant) if (eContestantStatus[contestant].nervous) { eContestantStatus[contestant].hasJudgesAttention = FALSE; - eContestantStatus[contestant].appeal2 = 0; - eContestantStatus[contestant].appeal1 = 0; + eContestantStatus[contestant].appeal = 0; + eContestantStatus[contestant].baseAppeal = 0; } eContestExcitement.moveExcitement = Contest_GetMoveExcitement(eContestantStatus[contestant].currMove); if (eContestantStatus[contestant].overrideCategoryExcitementMod) diff --git a/src/contest_effect.c b/src/contest_effect.c index cba9b97450..037da5e11d 100644 --- a/src/contest_effect.c +++ b/src/contest_effect.c @@ -520,7 +520,7 @@ static void ContestEffect_BetterIfFirst(void) if (gContestantTurnOrder[eContestAppealResults.contestant] == 0) { u16 move = eContestantStatus[eContestAppealResults.contestant].currMove; - eContestantStatus[eContestAppealResults.contestant].appeal2 += 2 * gContestEffects[gContestMoves[move].effect].appeal; + eContestantStatus[eContestAppealResults.contestant].appeal += 2 * gContestEffects[gContestMoves[move].effect].appeal; SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_HUSTLE_STANDOUT); } } @@ -531,7 +531,7 @@ static void ContestEffect_BetterIfLast(void) if (gContestantTurnOrder[eContestAppealResults.contestant] == 3) { u16 move = eContestantStatus[eContestAppealResults.contestant].currMove; - eContestantStatus[eContestAppealResults.contestant].appeal2 += 2 * gContestEffects[gContestMoves[move].effect].appeal; + eContestantStatus[eContestAppealResults.contestant].appeal += 2 * gContestEffects[gContestMoves[move].effect].appeal; SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_WORK_HARD_UNNOTICED); } } @@ -545,7 +545,7 @@ static void ContestEffect_AppealAsGoodAsPrevOnes(void) for (i = 0, appealSum = 0; i < CONTESTANT_COUNT; i++) { if (eContestAppealResults.turnOrder[eContestAppealResults.contestant] > eContestAppealResults.turnOrder[i]) - appealSum += eContestantStatus[i].appeal2; + appealSum += eContestantStatus[i].appeal; } if (appealSum < 0) appealSum = 0; @@ -556,10 +556,10 @@ static void ContestEffect_AppealAsGoodAsPrevOnes(void) } else { - eContestantStatus[eContestAppealResults.contestant].appeal2 += appealSum / 2; + eContestantStatus[eContestAppealResults.contestant].appeal += appealSum / 2; SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_WORK_BEFORE); } - eContestantStatus[eContestAppealResults.contestant].appeal2 = RoundTowardsZero(eContestantStatus[eContestAppealResults.contestant].appeal2); + eContestantStatus[eContestAppealResults.contestant].appeal = RoundTowardsZero(eContestantStatus[eContestAppealResults.contestant].appeal); } // Makes the appeal as good as the one before it. @@ -573,7 +573,7 @@ static void ContestEffect_AppealAsGoodAsPrevOne(void) for (i = 0; i < CONTESTANT_COUNT; i++) { if (eContestAppealResults.turnOrder[eContestAppealResults.contestant] - 1 == eContestAppealResults.turnOrder[i]) - appeal = eContestantStatus[i].appeal2; + appeal = eContestantStatus[i].appeal; } } if (eContestAppealResults.turnOrder[eContestAppealResults.contestant] == 0 || appeal <= 0) @@ -582,7 +582,7 @@ static void ContestEffect_AppealAsGoodAsPrevOne(void) } else { - eContestantStatus[eContestAppealResults.contestant].appeal2 += appeal; + eContestantStatus[eContestAppealResults.contestant].appeal += appeal; SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_WORK_PRECEDING); } } @@ -592,9 +592,9 @@ static void ContestEffect_BetterWhenLater(void) { u8 whichTurn = eContestAppealResults.turnOrder[eContestAppealResults.contestant]; if (whichTurn == 0) - eContestantStatus[eContestAppealResults.contestant].appeal2 = 10; + eContestantStatus[eContestAppealResults.contestant].appeal = 10; else - eContestantStatus[eContestAppealResults.contestant].appeal2 = 20 * whichTurn; + eContestantStatus[eContestAppealResults.contestant].appeal = 20 * whichTurn; if (whichTurn == 0) SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_APPEAL_NOT_SHOWN_WELL); else if (whichTurn == 1) @@ -633,7 +633,7 @@ static void ContestEffect_QualityDependsOnTiming(void) appeal = 80; SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_APPEAL_EXCELLENTLY2); } - eContestantStatus[eContestAppealResults.contestant].appeal2 = appeal; + eContestantStatus[eContestAppealResults.contestant].appeal = appeal; } static void ContestEffect_BetterIfSameType(void) @@ -666,7 +666,7 @@ static void ContestEffect_BetterIfSameType(void) move = eContestantStatus[eContestAppealResults.contestant].currMove; if (gContestMoves[move].contestCategory == gContestMoves[eContestantStatus[j].currMove].contestCategory) { - eContestantStatus[eContestAppealResults.contestant].appeal2 += gContestEffects[gContestMoves[move].effect].appeal * 2; + eContestantStatus[eContestAppealResults.contestant].appeal += gContestEffects[gContestMoves[move].effect].appeal * 2; SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_SAME_TYPE_GOOD); } } @@ -684,7 +684,7 @@ static void ContestEffect_BetterIfDiffType(void) if (eContestAppealResults.turnOrder[eContestAppealResults.contestant] - 1 == eContestAppealResults.turnOrder[i] && gContestMoves[move].contestCategory != gContestMoves[eContestantStatus[i].currMove].contestCategory) { - eContestantStatus[eContestAppealResults.contestant].appeal2 += gContestEffects[gContestMoves[move].effect].appeal * 2; + eContestantStatus[eContestAppealResults.contestant].appeal += gContestEffects[gContestMoves[move].effect].appeal * 2; SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_DIFF_TYPE_GOOD); break; } @@ -703,14 +703,14 @@ static void ContestEffect_AffectedByPrevAppeal(void) { if (eContestAppealResults.turnOrder[eContestAppealResults.contestant] - 1 == eContestAppealResults.turnOrder[i]) { - if (eContestantStatus[eContestAppealResults.contestant].appeal2 > eContestantStatus[i].appeal2) + if (eContestantStatus[eContestAppealResults.contestant].appeal > eContestantStatus[i].appeal) { - eContestantStatus[eContestAppealResults.contestant].appeal2 *= 2; + eContestantStatus[eContestAppealResults.contestant].appeal *= 2; SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_STOOD_OUT_AS_MUCH); } - else if (eContestantStatus[eContestAppealResults.contestant].appeal2 < eContestantStatus[i].appeal2) + else if (eContestantStatus[eContestAppealResults.contestant].appeal < eContestantStatus[i].appeal) { - eContestantStatus[eContestAppealResults.contestant].appeal2 = 0; + eContestantStatus[eContestAppealResults.contestant].appeal = 0; SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_NOT_AS_WELL); } } @@ -898,9 +898,9 @@ static void ContestEffect_BadlyStartleMonsWithGoodAppeals(void) { if (eContestAppealResults.turnOrder[eContestAppealResults.contestant] > eContestAppealResults.turnOrder[i]) { - if (eContestantStatus[i].appeal2 > 0) + if (eContestantStatus[i].appeal > 0) { - eContestAppealResults.jam = eContestantStatus[i].appeal2 / 2; + eContestAppealResults.jam = eContestantStatus[i].appeal / 2; eContestAppealResults.jam = RoundUp(eContestAppealResults.jam); } else @@ -946,7 +946,7 @@ static void ContestEffect_BetterWhenAudienceExcited(void) appeal = 60; SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_APPEAL_EXCELLENTLY2); } - eContestantStatus[eContestAppealResults.contestant].appeal2 = appeal; + eContestantStatus[eContestAppealResults.contestant].appeal = appeal; } // Temporarily stops the crowd from growing excited. @@ -1054,7 +1054,7 @@ static bool8 WasAtLeastOneOpponentJammed(void) static void JamContestant(u8 i, u8 jam) { - eContestantStatus[i].appeal2 -= jam; + eContestantStatus[i].appeal -= jam; eContestantStatus[i].jam += jam; } diff --git a/src/data/contest_opponents.h b/src/data/contest_opponents.h index e77223d95e..53868fc84f 100644 --- a/src/data/contest_opponents.h +++ b/src/data/contest_opponents.h @@ -183,7 +183,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("POOCHY"), .trainerName = _("JIMMY"), .trainerGfxId = OBJ_EVENT_GFX_BOY_1, - .aiChecks = CONTEST_AI_ALL | CONTEST_AI_DUMMIES_1 | CONTEST_AI_DUMMY_20 | CONTEST_AI_DUMMY_21, + .aiChecks = 0xC000FFF, .whichRank = CONTEST_RANK_NORMAL, .aiPool_Cool = TRUE, .aiPool_Beauty = FALSE, @@ -211,7 +211,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("MUSILLE"), .trainerName = _("EDITH"), .trainerGfxId = OBJ_EVENT_GFX_GIRL_1, - .aiChecks = CONTEST_AI_ALL | CONTEST_AI_DUMMIES_1 | CONTEST_AI_DUMMY_19 | CONTEST_AI_DUMMY_25, + .aiChecks = 0x82000FFF, .whichRank = CONTEST_RANK_NORMAL, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, @@ -239,7 +239,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("DUSTER"), .trainerName = _("EVAN"), .trainerGfxId = OBJ_EVENT_GFX_LITTLE_BOY, - .aiChecks = CONTEST_AI_ALL | CONTEST_AI_DUMMIES_1 | CONTEST_AI_DUMMY_18 | CONTEST_AI_DUMMY_23, + .aiChecks = 0x21000FFF, .whichRank = CONTEST_RANK_NORMAL, .aiPool_Cool = FALSE, .aiPool_Beauty = TRUE, @@ -603,7 +603,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("BULBY"), .trainerName = _("AGATHA"), .trainerGfxId = OBJ_EVENT_GFX_WOMAN_2, - .aiChecks = CONTEST_AI_ALL | CONTEST_AI_DUMMY_1 | CONTEST_AI_DUMMY_2 | CONTEST_AI_DUMMY_3 | CONTEST_AI_DUMMY_4 | CONTEST_AI_DUMMY_5 | CONTEST_AI_DUMMY_20 | CONTEST_AI_DUMMY_21, + .aiChecks = 0xC000FFF, .whichRank = CONTEST_RANK_NORMAL, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, @@ -631,7 +631,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("FUTTERBE"), .trainerName = _("BEAU"), .trainerGfxId = OBJ_EVENT_GFX_HEX_MANIAC, - .aiChecks = CONTEST_AI_ALL | CONTEST_AI_DUMMIES_1 | CONTEST_AI_DUMMY_19 | CONTEST_AI_DUMMY_25, + .aiChecks = 0x82000FFF, .whichRank = CONTEST_RANK_NORMAL, .aiPool_Cool = FALSE, .aiPool_Beauty = TRUE, @@ -659,7 +659,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("PIDEOT"), .trainerName = _("KAY"), .trainerGfxId = OBJ_EVENT_GFX_WOMAN_5, - .aiChecks = CONTEST_AI_ALL | CONTEST_AI_DUMMIES_1 | CONTEST_AI_DUMMY_18 | CONTEST_AI_DUMMY_23, + .aiChecks = 0x21000FFF, .whichRank = CONTEST_RANK_NORMAL, .aiPool_Cool = TRUE, .aiPool_Beauty = TRUE, @@ -883,7 +883,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("DUODO"), .trainerName = _("BOBBY"), .trainerGfxId = OBJ_EVENT_GFX_RUNNING_TRIATHLETE_M, - .aiChecks = CONTEST_AI_ALL | CONTEST_AI_DUMMIES_1 | CONTEST_AI_DUMMY_19 | CONTEST_AI_DUMMY_25, + .aiChecks = 0x82000FFF, .whichRank = CONTEST_RANK_SUPER, .aiPool_Cool = TRUE, .aiPool_Beauty = TRUE, @@ -1275,7 +1275,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("BROWLO"), .trainerName = _("LUKE"), .trainerGfxId = OBJ_EVENT_GFX_FAT_MAN, - .aiChecks = CONTEST_AI_ALL | CONTEST_AI_DUMMY_1 | CONTEST_AI_DUMMY_2 | CONTEST_AI_DUMMY_3 | CONTEST_AI_DUMMY_4 | CONTEST_AI_DUMMY_5 | CONTEST_AI_DUMMY_20 | CONTEST_AI_DUMMY_21, + .aiChecks = 0xC000FFF, .whichRank = CONTEST_RANK_SUPER, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, @@ -1303,7 +1303,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("FETCHIN"), .trainerName = _("RAUL"), .trainerGfxId = OBJ_EVENT_GFX_MAN_5, - .aiChecks = CONTEST_AI_ALL | CONTEST_AI_DUMMIES_1 | CONTEST_AI_DUMMY_19 | CONTEST_AI_DUMMY_25, + .aiChecks = 0x82000FFF, .whichRank = CONTEST_RANK_SUPER, .aiPool_Cool = TRUE, .aiPool_Beauty = FALSE, @@ -1331,7 +1331,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("SEELEY"), .trainerName = _("JADA"), .trainerGfxId = OBJ_EVENT_GFX_WOMAN_2, - .aiChecks = CONTEST_AI_ALL | CONTEST_AI_DUMMIES_1 | CONTEST_AI_DUMMY_18 | CONTEST_AI_DUMMY_23, + .aiChecks = 0x21000FFF, .whichRank = CONTEST_RANK_SUPER, .aiPool_Cool = FALSE, .aiPool_Beauty = TRUE, @@ -1555,7 +1555,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("SHIFTY"), .trainerName = _("CLAUDIA"), .trainerGfxId = OBJ_EVENT_GFX_GIRL_1, - .aiChecks = CONTEST_AI_ALL | CONTEST_AI_DUMMIES_1 | CONTEST_AI_DUMMY_19 | CONTEST_AI_DUMMY_25, + .aiChecks = 0x82000FFF, .whichRank = CONTEST_RANK_HYPER, .aiPool_Cool = TRUE, .aiPool_Beauty = TRUE, @@ -1947,7 +1947,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("EGGSOR"), .trainerName = _("GRACIE"), .trainerGfxId = OBJ_EVENT_GFX_PICNICKER, - .aiChecks = CONTEST_AI_ALL | CONTEST_AI_DUMMY_1 | CONTEST_AI_DUMMY_2 | CONTEST_AI_DUMMY_3 | CONTEST_AI_DUMMY_4 | CONTEST_AI_DUMMY_5 | CONTEST_AI_DUMMY_20 | CONTEST_AI_DUMMY_21, + .aiChecks = 0xC000FFF, .whichRank = CONTEST_RANK_HYPER, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, @@ -1975,7 +1975,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("CUBIN"), .trainerName = _("COLTIN"), .trainerGfxId = OBJ_EVENT_GFX_MAN_4, - .aiChecks = CONTEST_AI_ALL | CONTEST_AI_DUMMIES_1 | CONTEST_AI_DUMMY_19 | CONTEST_AI_DUMMY_25, + .aiChecks = 0x82000FFF, .whichRank = CONTEST_RANK_HYPER, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, @@ -2003,7 +2003,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("HITMON"), .trainerName = _("ELLIE"), .trainerGfxId = OBJ_EVENT_GFX_EXPERT_F, - .aiChecks = CONTEST_AI_ALL | CONTEST_AI_DUMMIES_1 | CONTEST_AI_DUMMY_18 | CONTEST_AI_DUMMY_23, + .aiChecks = 0x21000FFF, .whichRank = CONTEST_RANK_HYPER, .aiPool_Cool = TRUE, .aiPool_Beauty = FALSE, @@ -2227,7 +2227,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("LOUDERD"), .trainerName = _("RALPH"), .trainerGfxId = OBJ_EVENT_GFX_EXPERT_M, - .aiChecks = CONTEST_AI_ALL | CONTEST_AI_DUMMIES_1 | CONTEST_AI_DUMMY_19 | CONTEST_AI_DUMMY_25, + .aiChecks = 0x82000FFF, .whichRank = CONTEST_RANK_MASTER, .aiPool_Cool = TRUE, .aiPool_Beauty = FALSE, @@ -2619,7 +2619,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("GAREN"), .trainerName = _("CAMILE"), .trainerGfxId = OBJ_EVENT_GFX_HEX_MANIAC, - .aiChecks = CONTEST_AI_ALL | CONTEST_AI_DUMMY_1 | CONTEST_AI_DUMMY_2 | CONTEST_AI_DUMMY_3 | CONTEST_AI_DUMMY_4 | CONTEST_AI_DUMMY_5 | CONTEST_AI_DUMMY_20 | CONTEST_AI_DUMMY_21, + .aiChecks = 0xC000FFF, .whichRank = CONTEST_RANK_MASTER, .aiPool_Cool = TRUE, .aiPool_Beauty = FALSE, @@ -2647,7 +2647,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("GONPOR"), .trainerName = _("MARTIN"), .trainerGfxId = OBJ_EVENT_GFX_SCIENTIST_1, - .aiChecks = CONTEST_AI_ALL | CONTEST_AI_DUMMIES_1 | CONTEST_AI_DUMMY_19 | CONTEST_AI_DUMMY_25, + .aiChecks = 0x82000FFF, .whichRank = CONTEST_RANK_MASTER, .aiPool_Cool = TRUE, .aiPool_Beauty = TRUE, @@ -2675,7 +2675,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("DRITE"), .trainerName = _("SERGIO"), .trainerGfxId = OBJ_EVENT_GFX_BOY_1, - .aiChecks = CONTEST_AI_ALL | CONTEST_AI_DUMMIES_1 | CONTEST_AI_DUMMY_18 | CONTEST_AI_DUMMY_23, + .aiChecks = 0x21000FFF, .whichRank = CONTEST_RANK_MASTER, .aiPool_Cool = TRUE, .aiPool_Beauty = FALSE, From 337ab9c7a22c019784bba69ef4c30995470c9c64 Mon Sep 17 00:00:00 2001 From: PokeCodec Date: Sun, 16 Aug 2020 12:25:44 -0400 Subject: [PATCH 069/101] match --- src/link_rfu_3.c | 82 +++++------------------------------------------- 1 file changed, 8 insertions(+), 74 deletions(-) diff --git a/src/link_rfu_3.c b/src/link_rfu_3.c index db1ba8b43c..c4c000a6e2 100644 --- a/src/link_rfu_3.c +++ b/src/link_rfu_3.c @@ -623,105 +623,39 @@ static void ASCIIToPkmnStr(u8 *pkmnStr, const u8 *asciiStr) pkmnStr[i] = EOS; } -#ifdef NONMATCHING static u8 GetConnectedChildStrength(u8 maxFlags) { u8 flagCount = 0; - u32 flags = gRfuLinkStatus->connSlotFlag; + u8 flags = gRfuLinkStatus->connSlotFlag; u8 i; if (gRfuLinkStatus->parentChild == MODE_PARENT) { - for (i = 0; i < 4; flags >>= 1, i++) + for (i = 0; i < 4; i++) { if (flags & 1) { if (maxFlags == flagCount + 1) + { return gRfuLinkStatus->strength[i]; + break; // This break is needed to match + } flagCount++; } + flags >>= 1; } } else { - for (i = 0; i < 4; flags >>= 1, i++) + for (i = 0; i < 4; i++) { if (flags & 1) return gRfuLinkStatus->strength[i]; + flags >>= 1; } } return 0; } -#else -NAKED -static u8 GetConnectedChildStrength(u8 maxFlags) -{ - asm_unified("\tpush {r4-r7,lr}\n" - "\tlsls r0, 24\n" - "\tlsrs r5, r0, 24\n" - "\tmovs r6, 0\n" - "\tldr r0, =gRfuLinkStatus\n" - "\tldr r4, [r0]\n" - "\tldrb r2, [r4, 0x2]\n" - "\tldrb r1, [r4]\n" - "\tadds r7, r0, 0\n" - "\tcmp r1, 0x1\n" - "\tbne _0800DD72\n" - "\tmovs r3, 0\n" - "\tands r1, r2\n" - "\tcmp r1, 0\n" - "\tbeq _0800DD4E\n" - "\tcmp r5, 0x1\n" - "\tbne _0800DD48\n" - "\tldrb r0, [r4, 0xA]\n" - "\tb _0800DD8C\n" - "\t.pool\n" - "_0800DD48:\n" - "\tadds r0, r6, 0x1\n" - "\tlsls r0, 24\n" - "\tlsrs r6, r0, 24\n" - "_0800DD4E:\n" - "\tlsrs r2, 1\n" - "\tadds r0, r3, 0x1\n" - "\tlsls r0, 24\n" - "\tlsrs r3, r0, 24\n" - "\tcmp r3, 0x3\n" - "\tbhi _0800DD8A\n" - "\tmovs r0, 0x1\n" - "\tands r0, r2\n" - "\tcmp r0, 0\n" - "\tbeq _0800DD4E\n" - "\tadds r0, r6, 0x1\n" - "\tcmp r5, r0\n" - "\tbne _0800DD48\n" - "_0800DD68:\n" - "\tldr r0, [r7]\n" - "\tadds r0, 0xA\n" - "\tadds r0, r3\n" - "\tldrb r0, [r0]\n" - "\tb _0800DD8C\n" - "_0800DD72:\n" - "\tmovs r3, 0\n" - "\tmovs r1, 0x1\n" - "_0800DD76:\n" - "\tadds r0, r2, 0\n" - "\tands r0, r1\n" - "\tcmp r0, 0\n" - "\tbne _0800DD68\n" - "\tlsrs r2, 1\n" - "\tadds r0, r3, 0x1\n" - "\tlsls r0, 24\n" - "\tlsrs r3, r0, 24\n" - "\tcmp r3, 0x3\n" - "\tbls _0800DD76\n" - "_0800DD8A:\n" - "\tmovs r0, 0\n" - "_0800DD8C:\n" - "\tpop {r4-r7}\n" - "\tpop {r1}\n" - "\tbx r1"); -} -#endif void InitHostRFUtgtGname(struct GFtgtGname *data, u8 activity, bool32 started, s32 child_sprite_genders) { From 19cf1b9770d8ec98aec3100a1aa1b9399a8c54bf Mon Sep 17 00:00:00 2001 From: GriffinR Date: Tue, 18 Aug 2020 07:30:18 -0400 Subject: [PATCH 070/101] Fix ContestPokemon offset-named field --- include/contest.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/contest.h b/include/contest.h index e4cda6e259..9a4b3425d8 100644 --- a/include/contest.h +++ b/include/contest.h @@ -99,7 +99,7 @@ struct ContestPokemon u8 sheen; u8 highestRank; bool8 gameCleared; - u8 unk2C[10]; + u8 unused[10]; u32 personality; u32 otId; }; From 0e7f634b00f904ac29088f3b7fdac0c51999be2d Mon Sep 17 00:00:00 2001 From: GriffinR Date: Tue, 18 Aug 2020 08:11:25 -0400 Subject: [PATCH 071/101] Wrap asm statements in NONMATCHING --- gflib/text.c | 6 +++--- src/battle_tent.c | 6 +++++- src/battle_tower.c | 8 ++++++-- src/battle_transition.c | 4 +++- src/data/graphics/pokemon.h | 3 ++- src/dewford_trend.c | 4 +++- src/frontier_pass.c | 4 +++- src/graphics.c | 26 ++++++++++++-------------- src/librfu_intr.c | 6 +++++- src/m4a.c | 4 +++- src/pokemon.c | 4 +++- src/pokemon_animation.c | 6 +++++- src/record_mixing.c | 8 ++++++-- 13 files changed, 59 insertions(+), 30 deletions(-) diff --git a/gflib/text.c b/gflib/text.c index 07fd23109f..636fe50a97 100644 --- a/gflib/text.c +++ b/gflib/text.c @@ -475,15 +475,15 @@ u8 GetLastTextColor(u8 colorType) \ for (; i < toY; i++) \ { \ - asm("":::"sl"); \ + asm("":::"sl"); /* NONMATCHING */ \ r5 = *(ptr++); \ for (j = fromX; j < toX; j++) \ { \ const u32 toOrr = r5 & 0xF; \ if (toOrr) \ { \ - dst = windowTiles + ((j / 8) * 32) + ((j & 7) >> 1) + ((i / 8) * widthOffset) + ((i & 7) * 4); \ - bits = ((j & 1) * 4); \ + dst = windowTiles + ((j / 8) * 32) + ((j & 7) >> 1) + ((i / 8) * widthOffset) + ((i & 7) * 4); \ + bits = ((j & 1) * 4); \ *dst = (toOrr << bits) | ((0xF0 >> bits) & *dst); \ } \ r5 >>= 4; \ diff --git a/src/battle_tent.c b/src/battle_tent.c index b2db0e39cf..0a03fc1675 100644 --- a/src/battle_tent.c +++ b/src/battle_tent.c @@ -355,7 +355,11 @@ static void GenerateOpponentMons(void) { u16 trainerId; s32 i, j, k; - register const u16 *monSet asm("r9"); // Fix me. Compiler insists on moving that variable into stack. + #ifndef NONMATCHING + register const u16 *monSet asm("r9"); // Fix me. Compiler insists on moving that variable into stack. + #else + const u16 *monSet; + #endif u16 species[FRONTIER_PARTY_SIZE]; u16 heldItems[FRONTIER_PARTY_SIZE]; s32 monId = 0; diff --git a/src/battle_tower.c b/src/battle_tower.c index 8fcea11230..81c542d1cd 100644 --- a/src/battle_tower.c +++ b/src/battle_tower.c @@ -1466,7 +1466,9 @@ u8 GetFrontierOpponentClass(u16 trainerId) else { trainerClass = gFacilityClassToTrainerClass[gSaveBlock2Ptr->frontier.towerRecords[trainerId - TRAINER_RECORD_MIXING_FRIEND].facilityClass]; - asm(""); + #ifndef NONMATCHING + asm(""); + #endif } } else @@ -1478,7 +1480,9 @@ u8 GetFrontierOpponentClass(u16 trainerId) else { trainerClass = gFacilityClassToTrainerClass[gApprentices[gSaveBlock2Ptr->apprentices[trainerId - TRAINER_RECORD_MIXING_APPRENTICE].id].facilityClass]; - asm(""); + #ifndef NONMATCHING + asm(""); + #endif } } diff --git a/src/battle_transition.c b/src/battle_transition.c index 2ffa28645d..b0cdbd93af 100644 --- a/src/battle_transition.c +++ b/src/battle_transition.c @@ -3974,7 +3974,9 @@ static bool8 Phase2_FrontierLogoWave_Func4(struct Task *task) for (i = 0; i < 160; i++, var6 += var8) { s16 index = var6 / 256; - asm(""); + #ifndef NONMATCHING + asm(""); + #endif gScanlineEffectRegBuffers[0][i] = sTransitionStructPtr->field_16 + Sin(index, amplitude); } diff --git a/src/data/graphics/pokemon.h b/src/data/graphics/pokemon.h index fd4d8b95d4..bce0b7a217 100644 --- a/src/data/graphics/pokemon.h +++ b/src/data/graphics/pokemon.h @@ -2698,7 +2698,8 @@ const u8 gMonIcon_Deoxys[] = INCBIN_U8("graphics/pokemon/deoxys/icon.4bpp"); const u8 gMonIcon_DeoxysSpeed[] = INCBIN_U8("graphics/pokemon/deoxys/icon_speed.4bpp"); const u8 gMonIcon_DeoxysSpeedWide[] = INCBIN_U8("graphics/unused/deoxys_speed_icon_wide.4bpp"); -asm(".space 0x6800"); +// Probably the leftover space from the other Deoxys forms +static const u8 sEmpty[0x6800] = {0}; const u16 gUnknown_D437F8[] = INCBIN_U16("graphics/unknown/unknown_D437F8.bin"); diff --git a/src/dewford_trend.c b/src/dewford_trend.c index 9c5e69d993..e3b98859ce 100644 --- a/src/dewford_trend.c +++ b/src/dewford_trend.c @@ -225,7 +225,9 @@ void TrendyPhraseIsOld(void) if (gSaveBlock1Ptr->easyChatPairs[0].unk0_0 - gSaveBlock1Ptr->easyChatPairs[1].unk0_0 < 2) { - asm("":::"r2"); //Force the compiler to store address of gSaveBlock1 in r3 instead of r2 + #ifndef NONMATCHING + asm("":::"r2"); //Force the compiler to store address of gSaveBlock1 in r3 instead of r2 + #endif if (!gSaveBlock1Ptr->easyChatPairs[0].unk1_6 && gSaveBlock1Ptr->easyChatPairs[1].unk1_6) result = 1; } diff --git a/src/frontier_pass.c b/src/frontier_pass.c index 024a954d18..adc02f90bb 100644 --- a/src/frontier_pass.c +++ b/src/frontier_pass.c @@ -1239,7 +1239,9 @@ static void sub_80C6104(u8 cursorArea, u8 previousCursorArea) if (!var) { - asm("":::"r4"); + #ifndef NONMATCHING + asm("":::"r4"); + #endif if (previousCursorArea == CURSOR_AREA_NOTHING || previousCursorArea > CURSOR_AREA_CANCEL) return; } diff --git a/src/graphics.c b/src/graphics.c index e0b2774d62..83b1b55d90 100644 --- a/src/graphics.c +++ b/src/graphics.c @@ -987,8 +987,7 @@ const u16 gTilesetAnims_BattleDomePals0_1[] = INCBIN_U16("graphics/battle_fronti const u16 gTilesetAnims_BattleDomePals0_2[] = INCBIN_U16("graphics/battle_frontier/dome_anim3.gbapal"); const u16 gTilesetAnims_BattleDomePals0_3[] = INCBIN_U16("graphics/battle_frontier/dome_anim4.gbapal"); -// 8D856C0 -asm(".2byte 0x013F, 0x0119, 0x0113, 0x010E"); // unused? +static const u16 sUnused0[] = {0x13F, 0x119, 0x113, 0x10E}; const u16 gUnknown_08D856C8[] = INCBIN_U16("graphics/battle_frontier/pyramid_light.gbapal"); // unfaded pal for the player light in battle pyramid @@ -1362,17 +1361,17 @@ const u8 gBerryBlenderMarubatsuTiles[] = INCBIN_U8("graphics/berry_blender/marub const u8 gBerryBlenderParticlesTiles[] = INCBIN_U8("graphics/berry_blender/particles.4bpp"); -asm(".space 0x120"); +static const u8 sEmpty0[0x120] = {0}; const u8 gBerryBlenderCountdownNumbersTiles[] = INCBIN_U8("graphics/berry_blender/countdown_numbers.4bpp"); const u8 gBerryBlenderStartTiles[] = INCBIN_U8("graphics/berry_blender/start.4bpp"); -asm(".space 0x200"); +static const u8 sEmpty1[0x200] = {0}; const u8 gBerryBlenderArrowTiles[] = INCBIN_U8("graphics/berry_blender/arrow.4bpp"); -asm(".space 0x2C0"); +static const u8 sEmpty2[0x2C0] = {0}; const u16 gEasyChatCursor_Pal[] = INCBIN_U16("graphics/easy_chat/cursor.gbapal"); const u32 gEasyChatCursor_Gfx[] = INCBIN_U32("graphics/easy_chat/cursor.4bpp.lz"); @@ -1481,8 +1480,7 @@ const u16 gTradeGba_Pal[] = INCBIN_U16("graphics/link/gba.gbapal"); const u16 gTradeGba2_Pal[] = INCBIN_U16("graphics/link/gba_pal2.gbapal"); const u8 gTradeGba_Gfx[] = INCBIN_U8("graphics/link/gba.4bpp"); -// 8DD8760 -asm(".space 0x20"); //blank palette?? +static const u16 sEmptyPal[16] = {0}; #include "data/graphics/berry_fix.h" @@ -1564,10 +1562,10 @@ const u32 gUnknown_08DE34B8[] = INCBIN_U32("graphics/berry_crusher/tiles.4bpp.lz const u32 gUnknown_08DE3FD4[] = INCBIN_U32("graphics/berry_crusher/tiles.bin.lz"); // random garbage at the end. -asm(".space 0x54BAC \n\ - .byte 0x0D, 0x00, 0x58, 0x02 \n\ - .space 0x1145 \n\ - .byte 0x02 \n\ - .space 0x3242 \n\ - .byte 0x40 \n\ - .space 0x13"); +static const u8 sEmpty3[0x54BAC] = {0}; +static const u8 sUnused1[] = {0x0D, 0x00, 0x58, 0x02}; +static const u8 sEmpty4[0x1145] = {0}; +static const u8 sUnused2[] = {0x02}; +static const u8 sEmpty5[0x3242] = {0}; +static const u8 sUnused3[] = {0x40}; +static const u8 sEmpty6[0x13] = {0}; diff --git a/src/librfu_intr.c b/src/librfu_intr.c index 23962a937c..1361be40ec 100644 --- a/src/librfu_intr.c +++ b/src/librfu_intr.c @@ -148,7 +148,11 @@ static void sio32intr_clock_slave(void) { u32 regSIODATA32; u32 r0; - register u32 reqLen asm("r2"); + #ifndef NONMATCHING + register u32 reqLen asm("r2"); + #else + u32 reqLen; + #endif gSTWIStatus->timerActive = 0; STWI_set_timer_in_RAM(100); diff --git a/src/m4a.c b/src/m4a.c index 267a72657d..11a4525eab 100644 --- a/src/m4a.c +++ b/src/m4a.c @@ -904,7 +904,9 @@ void CgbModVol(struct CgbChannel *chan) // Force chan->rightVolume and chan->leftVolume to be read from memory again, // even though there is no reason to do so. // The command line option "-fno-gcse" achieves the same result as this. - asm("" : : : "memory"); + #ifndef NONMATCHING + asm("" : : : "memory"); + #endif chan->eg = (u32)(chan->rightVolume + chan->leftVolume) >> 4; if (chan->eg > 15) diff --git a/src/pokemon.c b/src/pokemon.c index 44b5e55bbe..1adc7b1c4f 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -6814,7 +6814,9 @@ static void sub_806F160(struct Unknown_806F160_Struct* structPtr) structPtr->templates[i] = gUnknown_08329D98[i]; for (j = 0; j < structPtr->field_1; j++) { - asm(""); + #ifndef NONMATCHING + asm(""); + #endif structPtr->frameImages[i * structPtr->field_1 + j].data = &structPtr->byteArrays[i][j * 0x800]; } structPtr->templates[i].images = &structPtr->frameImages[i * structPtr->field_1]; diff --git a/src/pokemon_animation.c b/src/pokemon_animation.c index a388be39a5..37abb90e9d 100644 --- a/src/pokemon_animation.c +++ b/src/pokemon_animation.c @@ -2884,7 +2884,11 @@ static void sub_8181C2C(struct Sprite *sprite) } else { - register s32 var asm("r4") = sUnknown_03001240[sprite->data[0]].field_8; + #ifndef NONMATCHING + register s32 var asm("r4") = sUnknown_03001240[sprite->data[0]].field_8; + #else + s32 var = sUnknown_03001240[sprite->data[0]].field_8; + #endif sprite->pos2.x = (var << 3) * (counter % 128) / 128 - (sUnknown_03001240[sprite->data[0]].field_8 * 8); sprite->pos2.y = -(Sin(counter % 128, 8)); diff --git a/src/record_mixing.c b/src/record_mixing.c index ad8b5693ca..ccdaabdd1c 100644 --- a/src/record_mixing.c +++ b/src/record_mixing.c @@ -872,8 +872,12 @@ static void ReceiveDaycareMailData(struct RecordMixingDayCareMail *src, size_t r var2 = sub_80E7A9C(&_src->mail[1]); if (!var1 && var2) { - register u8 one asm("r0") = 1; // boo, a fakematch - sp24[j][1] = one; + #ifndef NONMATCHING + register u8 one asm("r0") = 1; // boo, a fakematch + sp24[j][1] = one; + #else + sp24[j][1] = 1; + #endif } else if ((var1 && var2) || (!var1 && !var2)) { From fa29ff98a342f4f434b96d4e04f47e25ca865512 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Tue, 18 Aug 2020 11:38:50 -0400 Subject: [PATCH 072/101] Add condition mod constants --- include/contest.h | 7 +++++++ src/contest.c | 16 ++++++++-------- src/contest_effect.c | 4 ++-- 3 files changed, 17 insertions(+), 10 deletions(-) diff --git a/include/contest.h b/include/contest.h index 9a4b3425d8..d008b8fce1 100644 --- a/include/contest.h +++ b/include/contest.h @@ -77,6 +77,13 @@ enum { CONTEST_FILTER_ONLY_POSTGAME }; +// Constants for changing in-contest Condition (the stars that appear during appeals) +enum { + CONDITION_NO_CHANGE, + CONDITION_GAIN, + CONDITION_LOSE, +}; + struct ContestPokemon { u16 species; diff --git a/src/contest.c b/src/contest.c index de00018310..a015c5bab3 100644 --- a/src/contest.c +++ b/src/contest.c @@ -1935,7 +1935,7 @@ static void Task_DoAppeals(u8 taskId) gTasks[taskId].tState = APPEALSTATE_TRY_JUDGE_STAR; return; case APPEALSTATE_TRY_JUDGE_STAR: - if (eContestantStatus[contestant].conditionMod == 1) + if (eContestantStatus[contestant].conditionMod == CONDITION_GAIN) DoJudgeSpeechBubble(JUDGE_SYMBOL_STAR); gTasks[taskId].tState = APPEALSTATE_WAIT_JUDGE_STAR; return; @@ -3270,26 +3270,26 @@ static bool8 UpdateConditionStars(u8 contestantIdx, bool8 resetMod) u8 contestantOffset; s32 numStars; - if (eContestantStatus[contestantIdx].conditionMod == 0) + if (eContestantStatus[contestantIdx].conditionMod == CONDITION_NO_CHANGE) return FALSE; contestantOffset = gContestantTurnOrder[contestantIdx] * 5 + 2; numStars = eContestantStatus[contestantIdx].condition / 10; - if (eContestantStatus[contestantIdx].conditionMod == 1) + if (eContestantStatus[contestantIdx].conditionMod == CONDITION_GAIN) { ContestBG_FillBoxWithTile(0, GetStarTileOffset(), 19, contestantOffset, 1, numStars, 17); if (resetMod) { PlaySE(SE_EXPMAX); - eContestantStatus[contestantIdx].conditionMod = 0; + eContestantStatus[contestantIdx].conditionMod = CONDITION_NO_CHANGE; } } - else + else // CONDITION_LOSE { ContestBG_FillBoxWithTile(0, 0, 19, contestantOffset + numStars, 1, 3 - numStars, 17); if (resetMod) { PlaySE(SE_FU_ZAKU2); - eContestantStatus[contestantIdx].conditionMod = 0; + eContestantStatus[contestantIdx].conditionMod = CONDITION_NO_CHANGE; } } return TRUE; @@ -3510,7 +3510,7 @@ static void ResetContestantStatuses(void) eContestantStatus[i].nervous = FALSE; eContestantStatus[i].effectStringId = CONTEST_STRING_NONE; eContestantStatus[i].effectStringId2 = CONTEST_STRING_NONE; - eContestantStatus[i].conditionMod = 0; + eContestantStatus[i].conditionMod = CONDITION_NO_CHANGE; eContestantStatus[i].repeatedPrevMove = eContestantStatus[i].repeatedMove; eContestantStatus[i].repeatedMove = FALSE; eContestantStatus[i].turnOrderModAction = 0; @@ -4464,7 +4464,7 @@ static void CalculateAppealMoveImpact(u8 contestant) gContestEffectFuncs[effect](); - if (eContestantStatus[contestant].conditionMod == 1) + if (eContestantStatus[contestant].conditionMod == CONDITION_GAIN) eContestantStatus[contestant].appeal += eContestantStatus[contestant].condition - 10; else if (eContestantStatus[contestant].appealTripleCondition) eContestantStatus[contestant].appeal += eContestantStatus[contestant].condition * 3; diff --git a/src/contest_effect.c b/src/contest_effect.c index 037da5e11d..8d1bbb2987 100644 --- a/src/contest_effect.c +++ b/src/contest_effect.c @@ -478,7 +478,7 @@ static void ContestEffect_WorsenConditionOfPrevMons(void) CanUnnerveContestant(i)) { eContestantStatus[i].condition = 0; - eContestantStatus[i].conditionMod = 2; + eContestantStatus[i].conditionMod = CONDITION_LOSE; SetContestantEffectStringID(i, CONTEST_STRING_REGAINED_FORM); numHit++; } @@ -724,7 +724,7 @@ static void ContestEffect_ImproveConditionPreventNervousness(void) if (eContestantStatus[eContestAppealResults.contestant].condition < 30) { eContestantStatus[eContestAppealResults.contestant].condition += 10; - eContestantStatus[eContestAppealResults.contestant].conditionMod = 1; + eContestantStatus[eContestAppealResults.contestant].conditionMod = CONDITION_GAIN; SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_CONDITION_ROSE); } else From 3ba8cabd80f7769b0903088a7d9429bd4a46edaf Mon Sep 17 00:00:00 2001 From: GriffinR Date: Tue, 18 Aug 2020 15:56:44 -0400 Subject: [PATCH 073/101] Fix Brenday typo --- data/maps/Route110/scripts.inc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/data/maps/Route110/scripts.inc b/data/maps/Route110/scripts.inc index 02c13f4d9a..7cdb547edb 100644 --- a/data/maps/Route110/scripts.inc +++ b/data/maps/Route110/scripts.inc @@ -448,7 +448,7 @@ Route110_EventScript_MayDefeated:: @ 81EF84A end Route110_EventScript_BrendanBattle:: @ 81EF865 - msgbox Route110_Text_BrendayLetsBattle, MSGBOX_DEFAULT + msgbox Route110_Text_BrendanLetsBattle, MSGBOX_DEFAULT switch VAR_STARTER_MON case 0, Route110_EventScript_BrendanBattleTreecko case 1, Route110_EventScript_BrendanBattleTorchic @@ -814,7 +814,7 @@ Route110_Text_MayExplainItemfinder: @ 81EFD58 .string "me, but I think you should train a lot\l" .string "harder for the next time.$" -Route110_Text_BrendayLetsBattle: @ 81EFE3F +Route110_Text_BrendanLetsBattle: @ 81EFE3F .string "BRENDAN: Hey, {PLAYER}.\n" .string "So this is where you were.\l" .string "How's it going?\p" From 503dafd2104c400f3dbe0494d4a97d06b82267ab Mon Sep 17 00:00:00 2001 From: GriffinR Date: Tue, 18 Aug 2020 17:51:41 -0400 Subject: [PATCH 074/101] Fix wallys parents misnamed as uncle/aunt --- data/maps/PetalburgCity/map.json | 6 +- data/maps/PetalburgCity/scripts.inc | 14 +-- data/maps/PetalburgCity_Gym/map.json | 2 +- data/maps/PetalburgCity_Gym/scripts.inc | 116 +++++++++--------- data/maps/PetalburgCity_WallysHouse/map.json | 4 +- .../PetalburgCity_WallysHouse/scripts.inc | 12 +- data/scripts/new_game.inc | 4 +- include/constants/flags.h | 6 +- 8 files changed, 82 insertions(+), 82 deletions(-) diff --git a/data/maps/PetalburgCity/map.json b/data/maps/PetalburgCity/map.json index 03c0950ca1..faec3eea1f 100644 --- a/data/maps/PetalburgCity/map.json +++ b/data/maps/PetalburgCity/map.json @@ -35,8 +35,8 @@ "movement_range_y": 1, "trainer_type": "TRAINER_TYPE_NONE", "trainer_sight_or_berry_tree_id": "0", - "script": "PetalburgCity_EventScript_WallyAunt", - "flag": "FLAG_HIDE_PETALBURG_CITY_WALLYS_AUNT" + "script": "PetalburgCity_EventScript_WallysMom", + "flag": "FLAG_HIDE_PETALBURG_CITY_WALLYS_MOM" }, { "graphics_id": "OBJ_EVENT_GFX_WALLY", @@ -88,7 +88,7 @@ "trainer_type": "TRAINER_TYPE_NONE", "trainer_sight_or_berry_tree_id": "0", "script": "0x0", - "flag": "FLAG_HIDE_PETALBURG_CITY_WALLYS_UNCLE" + "flag": "FLAG_HIDE_PETALBURG_CITY_WALLYS_DAD" }, { "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", diff --git a/data/maps/PetalburgCity/scripts.inc b/data/maps/PetalburgCity/scripts.inc index b7df048579..558eac64e8 100644 --- a/data/maps/PetalburgCity/scripts.inc +++ b/data/maps/PetalburgCity/scripts.inc @@ -1,6 +1,6 @@ .set LOCALID_WALLY, 2 .set LOCALID_BOY, 3 -.set LOCALID_WALLYS_UNCLE, 5 +.set LOCALID_WALLYS_DAD, 5 .set LOCALID_GYM_BOY, 8 .set LOCALID_SCOTT, 9 @@ -68,17 +68,17 @@ PetalburgCity_EventScript_WallyTutorial:: @ 81DC32E PetalburgCity_EventScript_WalkToWallyHouse:: @ 81DC390 lockall setflag FLAG_HIDE_MAP_NAME_POPUP - applymovement LOCALID_WALLYS_UNCLE, PetalburgCity_Movement_WalkToWallyHouseUncle + applymovement LOCALID_WALLYS_DAD, PetalburgCity_Movement_WalkToWallyHouseWallysDad applymovement OBJ_EVENT_ID_PLAYER, PetalburgCity_Movement_WalkToWallyHousePlayer waitmovement 0 setvar VAR_0x8004, 7 setvar VAR_0x8005, 5 opendoor VAR_0x8004, VAR_0x8005 waitdooranim - applymovement LOCALID_WALLYS_UNCLE, PetalburgCity_Movement_WalkInsideHouseUncle + applymovement LOCALID_WALLYS_DAD, PetalburgCity_Movement_WalkInsideHouseWallysDad applymovement OBJ_EVENT_ID_PLAYER, PetalburgCity_Movement_WalkInsideHousePlayer waitmovement 0 - setflag FLAG_HIDE_PETALBURG_CITY_WALLYS_UNCLE + setflag FLAG_HIDE_PETALBURG_CITY_WALLYS_DAD hideobjectat OBJ_EVENT_ID_PLAYER, MAP_PETALBURG_CITY closedoor VAR_0x8004, VAR_0x8005 waitdooranim @@ -100,7 +100,7 @@ PetalburgCity_EventScript_Boy:: @ 81DC3E6 release end -PetalburgCity_EventScript_WallyAunt:: @ 81DC3FD +PetalburgCity_EventScript_WallysMom:: @ 81DC3FD msgbox PetalburgCity_Text_WhereIsWally, MSGBOX_NPC end @@ -129,7 +129,7 @@ PetalburgCity_Movement_WalkInsideHousePlayer: @ 81DC418 walk_up step_end -PetalburgCity_Movement_WalkToWallyHouseUncle: @ 81DC41B +PetalburgCity_Movement_WalkToWallyHouseWallysDad: @ 81DC41B delay_8 walk_down walk_down @@ -149,7 +149,7 @@ PetalburgCity_Movement_WalkToWallyHouseUncle: @ 81DC41B walk_up step_end -PetalburgCity_Movement_WalkInsideHouseUncle: @ 81DC42D +PetalburgCity_Movement_WalkInsideHouseWallysDad: @ 81DC42D walk_up set_invisible step_end diff --git a/data/maps/PetalburgCity_Gym/map.json b/data/maps/PetalburgCity_Gym/map.json index ca074547ff..f38463a19c 100644 --- a/data/maps/PetalburgCity_Gym/map.json +++ b/data/maps/PetalburgCity_Gym/map.json @@ -155,7 +155,7 @@ "trainer_type": "TRAINER_TYPE_NONE", "trainer_sight_or_berry_tree_id": "0", "script": "0x0", - "flag": "FLAG_HIDE_PETALBURG_GYM_WALLYS_UNCLE" + "flag": "FLAG_HIDE_PETALBURG_GYM_WALLYS_DAD" } ], "warp_events": [ diff --git a/data/maps/PetalburgCity_Gym/scripts.inc b/data/maps/PetalburgCity_Gym/scripts.inc index 5df31917f8..c8e14a13fd 100644 --- a/data/maps/PetalburgCity_Gym/scripts.inc +++ b/data/maps/PetalburgCity_Gym/scripts.inc @@ -1,6 +1,6 @@ .set LOCALID_NORMAN, 1 .set LOCALID_WALLY, 10 -.set LOCALID_WALLYS_UNCLE, 11 +.set LOCALID_WALLYS_DAD, 11 PetalburgCity_Gym_MapScripts:: @ 8204889 map_script MAP_SCRIPT_ON_LOAD, PetalburgCity_Gym_OnLoad @@ -213,7 +213,7 @@ PetalburgCity_Gym_EventScript_BeginWallyTutorial:: @ 8204AAC compare VAR_0x8008, 3 call_if_eq PetalburgCity_Gym_EventScript_ExitGymWithWallyEast removeobject LOCALID_WALLY - setflag FLAG_HIDE_PETALBURG_CITY_WALLYS_AUNT + setflag FLAG_HIDE_PETALBURG_CITY_WALLYS_MOM setvar VAR_PETALBURG_GYM_STATE, 1 setvar VAR_PETALBURG_CITY_STATE, 2 clearflag FLAG_HIDE_PETALBURG_CITY_WALLY @@ -433,11 +433,11 @@ PetalburgCity_Gym_EventScript_NormanBattle:: @ 8204E3B delay 40 playse SE_DOOR delay 10 - addobject LOCALID_WALLYS_UNCLE + addobject LOCALID_WALLYS_DAD switch VAR_FACING - case DIR_NORTH, PetalburgCity_Gym_EventScript_WallysUncleArrivesNorth - case DIR_WEST, PetalburgCity_Gym_EventScript_WallysUncleArrivesWest - case DIR_EAST, PetalburgCity_Gym_EventScript_WallysUncleArrivesEast + case DIR_NORTH, PetalburgCity_Gym_EventScript_WallysDadArrivesNorth + case DIR_WEST, PetalburgCity_Gym_EventScript_WallysDadArrivesWest + case DIR_EAST, PetalburgCity_Gym_EventScript_WallysDadArrivesEast end PetalburgCity_Gym_EventScript_GiveFacade:: @ 8204ED2 @@ -448,119 +448,119 @@ PetalburgCity_Gym_EventScript_GiveFacade:: @ 8204ED2 msgbox PetalburgCity_Gym_Text_ExplainFacade, MSGBOX_DEFAULT return -PetalburgCity_Gym_EventScript_WallysUncleArrivesNorth:: @ 8204EF5 +PetalburgCity_Gym_EventScript_WallysDadArrivesNorth:: @ 8204EF5 setvar VAR_0x8008, 1 - goto PetalburgCity_Gym_EventScript_WallysUncleArrives + goto PetalburgCity_Gym_EventScript_WallysDadArrives -PetalburgCity_Gym_EventScript_WallysUncleArrivesEast:: @ 8204EFF +PetalburgCity_Gym_EventScript_WallysDadArrivesEast:: @ 8204EFF setvar VAR_0x8008, 2 - goto PetalburgCity_Gym_EventScript_WallysUncleArrives + goto PetalburgCity_Gym_EventScript_WallysDadArrives -PetalburgCity_Gym_EventScript_WallysUncleArrivesWest:: @ 8204F09 +PetalburgCity_Gym_EventScript_WallysDadArrivesWest:: @ 8204F09 setvar VAR_0x8008, 3 - goto PetalburgCity_Gym_EventScript_WallysUncleArrives + goto PetalburgCity_Gym_EventScript_WallysDadArrives -PetalburgCity_Gym_EventScript_WallysUncleArrives:: @ 8204F13 - applymovement LOCALID_WALLYS_UNCLE, PetalburgCity_Gym_Movement_WallysUncleEnterGym +PetalburgCity_Gym_EventScript_WallysDadArrives:: @ 8204F13 + applymovement LOCALID_WALLYS_DAD, PetalburgCity_Gym_Movement_WallysDadEnterGym waitmovement 0 playse SE_PIN - applymovement LOCALID_WALLYS_UNCLE, Common_Movement_ExclamationMark + applymovement LOCALID_WALLYS_DAD, Common_Movement_ExclamationMark waitmovement 0 - applymovement LOCALID_WALLYS_UNCLE, Common_Movement_Delay48 + applymovement LOCALID_WALLYS_DAD, Common_Movement_Delay48 waitmovement 0 delay 10 compare VAR_0x8008, 1 - call_if_eq PetalburgCity_Gym_EventScript_WallysUncleApproachPlayerNorth + call_if_eq PetalburgCity_Gym_EventScript_WallysDadApproachPlayerNorth compare VAR_0x8008, 2 - call_if_eq PetalburgCity_Gym_EventScript_WallysUncleApproachPlayerEast + call_if_eq PetalburgCity_Gym_EventScript_WallysDadApproachPlayerEast compare VAR_0x8008, 3 - call_if_eq PetalburgCity_Gym_EventScript_WallysUncleApproachPlayerWest + call_if_eq PetalburgCity_Gym_EventScript_WallysDadApproachPlayerWest msgbox PetalburgCity_Gym_Text_PleaseComeWithMe, MSGBOX_DEFAULT closemessage delay 20 compare VAR_0x8008, 1 - call_if_eq PetalburgCity_Gym_EventScript_WallysUncleFaceNormanNorth + call_if_eq PetalburgCity_Gym_EventScript_WallysDadFaceNormanNorth compare VAR_0x8008, 2 - call_if_eq PetalburgCity_Gym_EventScript_WallysUncleFaceNormanEast + call_if_eq PetalburgCity_Gym_EventScript_WallysDadFaceNormanEast compare VAR_0x8008, 3 - call_if_eq PetalburgCity_Gym_EventScript_WallysUncleFaceNormanWest + call_if_eq PetalburgCity_Gym_EventScript_WallysDadFaceNormanWest msgbox PetalburgCity_Gym_Text_LetMeBorrowPlayer, MSGBOX_DEFAULT closemessage setflag FLAG_DONT_TRANSITION_MUSIC playbgm MUS_TSURETEK, 0 compare VAR_0x8008, 1 - call_if_eq PetalburgCity_Gym_EventScript_ExitGymWithWallysUncleNorth + call_if_eq PetalburgCity_Gym_EventScript_ExitGymWithWallysDadNorth compare VAR_0x8008, 2 - call_if_eq PetalburgCity_Gym_EventScript_ExitGymWithWallysUncleEast + call_if_eq PetalburgCity_Gym_EventScript_ExitGymWithWallysDadEast compare VAR_0x8008, 3 - call_if_eq PetalburgCity_Gym_EventScript_ExitGymWithWallysUncleWest - removeobject LOCALID_WALLYS_UNCLE + call_if_eq PetalburgCity_Gym_EventScript_ExitGymWithWallysDadWest + removeobject LOCALID_WALLYS_DAD setvar VAR_PETALBURG_CITY_STATE, 4 - clearflag FLAG_HIDE_PETALBURG_CITY_WALLYS_UNCLE + clearflag FLAG_HIDE_PETALBURG_CITY_WALLYS_DAD warp MAP_PETALBURG_CITY, 255, 15, 8 waitstate release end -PetalburgCity_Gym_EventScript_WallysUncleFaceNormanNorth:: @ 8204FCC - applymovement LOCALID_WALLYS_UNCLE, Common_Movement_WalkInPlaceFastestUp +PetalburgCity_Gym_EventScript_WallysDadFaceNormanNorth:: @ 8204FCC + applymovement LOCALID_WALLYS_DAD, Common_Movement_WalkInPlaceFastestUp waitmovement 0 return -PetalburgCity_Gym_EventScript_WallysUncleFaceNormanEast:: @ 8204FD7 - applymovement LOCALID_WALLYS_UNCLE, Common_Movement_WalkInPlaceFastestRight +PetalburgCity_Gym_EventScript_WallysDadFaceNormanEast:: @ 8204FD7 + applymovement LOCALID_WALLYS_DAD, Common_Movement_WalkInPlaceFastestRight waitmovement 0 return -PetalburgCity_Gym_EventScript_WallysUncleFaceNormanWest:: @ 8204FE2 - applymovement LOCALID_WALLYS_UNCLE, Common_Movement_WalkInPlaceFastestLeft +PetalburgCity_Gym_EventScript_WallysDadFaceNormanWest:: @ 8204FE2 + applymovement LOCALID_WALLYS_DAD, Common_Movement_WalkInPlaceFastestLeft waitmovement 0 return -PetalburgCity_Gym_EventScript_WallysUncleApproachPlayerNorth:: @ 8204FED - applymovement LOCALID_WALLYS_UNCLE, PetalburgCity_Gym_Movement_WallysUncleApproachPlayerNorth +PetalburgCity_Gym_EventScript_WallysDadApproachPlayerNorth:: @ 8204FED + applymovement LOCALID_WALLYS_DAD, PetalburgCity_Gym_Movement_WallysDadApproachPlayerNorth waitmovement 0 applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFastestLeft applymovement LOCALID_NORMAN, Common_Movement_WalkInPlaceFastestLeft waitmovement 0 return -PetalburgCity_Gym_EventScript_WallysUncleApproachPlayerEast:: @ 8205009 - applymovement LOCALID_WALLYS_UNCLE, PetalburgCity_Gym_Movement_WallysUncleApproachPlayerEast +PetalburgCity_Gym_EventScript_WallysDadApproachPlayerEast:: @ 8205009 + applymovement LOCALID_WALLYS_DAD, PetalburgCity_Gym_Movement_WallysDadApproachPlayerEast waitmovement 0 applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFastestDown applymovement LOCALID_NORMAN, Common_Movement_WalkInPlaceFastestDown waitmovement 0 return -PetalburgCity_Gym_EventScript_WallysUncleApproachPlayerWest:: @ 8205025 - applymovement LOCALID_WALLYS_UNCLE, PetalburgCity_Gym_Movement_WallysUncleApproachPlayerWest +PetalburgCity_Gym_EventScript_WallysDadApproachPlayerWest:: @ 8205025 + applymovement LOCALID_WALLYS_DAD, PetalburgCity_Gym_Movement_WallysDadApproachPlayerWest waitmovement 0 applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFastestDown applymovement LOCALID_NORMAN, Common_Movement_WalkInPlaceFastestDown waitmovement 0 return -PetalburgCity_Gym_EventScript_ExitGymWithWallysUncleNorth:: @ 8205041 - applymovement LOCALID_WALLYS_UNCLE, PetalburgCity_Gym_Movement_WallysUncleExitNorth +PetalburgCity_Gym_EventScript_ExitGymWithWallysDadNorth:: @ 8205041 + applymovement LOCALID_WALLYS_DAD, PetalburgCity_Gym_Movement_WallysDadExitNorth applymovement LOCALID_NORMAN, Common_Movement_WalkInPlaceFastestDown - applymovement OBJ_EVENT_ID_PLAYER, PetalburgCity_Gym_Movement_PlayerExitWithWallysUncleNorth + applymovement OBJ_EVENT_ID_PLAYER, PetalburgCity_Gym_Movement_PlayerExitWithWallysDadNorth waitmovement 0 return -PetalburgCity_Gym_EventScript_ExitGymWithWallysUncleEast:: @ 820505A - applymovement LOCALID_WALLYS_UNCLE, PetalburgCity_Gym_Movement_WallysUncleExitEast - applymovement OBJ_EVENT_ID_PLAYER, PetalburgCity_Gym_Movement_PlayerExitWithWallysUncleEast +PetalburgCity_Gym_EventScript_ExitGymWithWallysDadEast:: @ 820505A + applymovement LOCALID_WALLYS_DAD, PetalburgCity_Gym_Movement_WallysDadExitEast + applymovement OBJ_EVENT_ID_PLAYER, PetalburgCity_Gym_Movement_PlayerExitWithWallysDadEast waitmovement 0 return -PetalburgCity_Gym_EventScript_ExitGymWithWallysUncleWest:: @ 820506C - applymovement LOCALID_WALLYS_UNCLE, PetalburgCity_Gym_Movement_WallysUncleExitWest - applymovement OBJ_EVENT_ID_PLAYER, PetalburgCity_Gym_Movement_PlayerExitWithWallysUncleWest +PetalburgCity_Gym_EventScript_ExitGymWithWallysDadWest:: @ 820506C + applymovement LOCALID_WALLYS_DAD, PetalburgCity_Gym_Movement_WallysDadExitWest + applymovement OBJ_EVENT_ID_PLAYER, PetalburgCity_Gym_Movement_PlayerExitWithWallysDadWest waitmovement 0 return -PetalburgCity_Gym_Movement_WallysUncleExitNorth: @ 820507E +PetalburgCity_Gym_Movement_WallysDadExitNorth: @ 820507E walk_down walk_down walk_left @@ -573,7 +573,7 @@ PetalburgCity_Gym_Movement_WallysUncleExitNorth: @ 820507E set_invisible step_end -PetalburgCity_Gym_Movement_WallysUncleExitEast: @ 8205089 +PetalburgCity_Gym_Movement_WallysDadExitEast: @ 8205089 walk_down walk_down walk_left @@ -586,7 +586,7 @@ PetalburgCity_Gym_Movement_WallysUncleExitEast: @ 8205089 set_invisible step_end -PetalburgCity_Gym_Movement_WallysUncleExitWest: @ 8205094 +PetalburgCity_Gym_Movement_WallysDadExitWest: @ 8205094 walk_down walk_down walk_left @@ -601,7 +601,7 @@ PetalburgCity_Gym_Movement_WallysUncleExitWest: @ 8205094 set_invisible step_end -PetalburgCity_Gym_Movement_PlayerExitWithWallysUncleNorth: @ 82050A1 +PetalburgCity_Gym_Movement_PlayerExitWithWallysDadNorth: @ 82050A1 delay_16 walk_down walk_down @@ -611,7 +611,7 @@ PetalburgCity_Gym_Movement_PlayerExitWithWallysUncleNorth: @ 82050A1 walk_down step_end -PetalburgCity_Gym_Movement_PlayerExitWithWallysUncleEast: @ 82050A9 +PetalburgCity_Gym_Movement_PlayerExitWithWallysDadEast: @ 82050A9 delay_16 walk_down walk_down @@ -621,7 +621,7 @@ PetalburgCity_Gym_Movement_PlayerExitWithWallysUncleEast: @ 82050A9 walk_down step_end -PetalburgCity_Gym_Movement_PlayerExitWithWallysUncleWest: @ 82050B1 +PetalburgCity_Gym_Movement_PlayerExitWithWallysDadWest: @ 82050B1 delay_16 walk_down walk_down @@ -633,7 +633,7 @@ PetalburgCity_Gym_Movement_PlayerExitWithWallysUncleWest: @ 82050B1 walk_down step_end -PetalburgCity_Gym_Movement_WallysUncleEnterGym: @ 82050BB +PetalburgCity_Gym_Movement_WallysDadEnterGym: @ 82050BB walk_up delay_8 walk_in_place_fastest_right @@ -643,7 +643,7 @@ PetalburgCity_Gym_Movement_WallysUncleEnterGym: @ 82050BB walk_in_place_fastest_up step_end -PetalburgCity_Gym_Movement_WallysUncleApproachPlayerNorth: @ 82050C3 +PetalburgCity_Gym_Movement_WallysDadApproachPlayerNorth: @ 82050C3 walk_right walk_right walk_up @@ -652,7 +652,7 @@ PetalburgCity_Gym_Movement_WallysUncleApproachPlayerNorth: @ 82050C3 walk_in_place_fastest_right step_end -PetalburgCity_Gym_Movement_WallysUncleApproachPlayerEast: @ 82050CA +PetalburgCity_Gym_Movement_WallysDadApproachPlayerEast: @ 82050CA walk_right walk_right walk_up @@ -660,7 +660,7 @@ PetalburgCity_Gym_Movement_WallysUncleApproachPlayerEast: @ 82050CA walk_up step_end -PetalburgCity_Gym_Movement_WallysUncleApproachPlayerWest: @ 82050D0 +PetalburgCity_Gym_Movement_WallysDadApproachPlayerWest: @ 82050D0 walk_right walk_right walk_up diff --git a/data/maps/PetalburgCity_WallysHouse/map.json b/data/maps/PetalburgCity_WallysHouse/map.json index 172cf3e2ef..c0efbeb67a 100644 --- a/data/maps/PetalburgCity_WallysHouse/map.json +++ b/data/maps/PetalburgCity_WallysHouse/map.json @@ -24,7 +24,7 @@ "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", "trainer_sight_or_berry_tree_id": "0", - "script": "PetalburgCity_WallysHouse_EventScript_WallyUncle", + "script": "PetalburgCity_WallysHouse_EventScript_WallysDad", "flag": "0" }, { @@ -37,7 +37,7 @@ "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", "trainer_sight_or_berry_tree_id": "0", - "script": "PetalburgCity_WallysHouse_EventScript_WallyAunt", + "script": "PetalburgCity_WallysHouse_EventScript_WallysMom", "flag": "0" } ], diff --git a/data/maps/PetalburgCity_WallysHouse/scripts.inc b/data/maps/PetalburgCity_WallysHouse/scripts.inc index a46f5d78d9..1e4e75987f 100644 --- a/data/maps/PetalburgCity_WallysHouse/scripts.inc +++ b/data/maps/PetalburgCity_WallysHouse/scripts.inc @@ -1,4 +1,4 @@ -.set LOCALID_WALLYS_UNCLE, 1 +.set LOCALID_WALLYS_DAD, 1 PetalburgCity_WallysHouse_MapScripts:: @ 8204229 map_script MAP_SCRIPT_ON_FRAME_TABLE, PetalburgCity_WallysHouse_OnFrame @@ -6,12 +6,12 @@ PetalburgCity_WallysHouse_MapScripts:: @ 8204229 .byte 0 PetalburgCity_WallysHouse_OnWarp: @ 8204234 - map_script_2 VAR_PETALBURG_CITY_STATE, 4, PetalburgCity_WallysHouse_EventScript_PlayerUncleFaceEachOther + map_script_2 VAR_PETALBURG_CITY_STATE, 4, PetalburgCity_WallysHouse_EventScript_PlayerWallysDadFaceEachOther .2byte 0 -PetalburgCity_WallysHouse_EventScript_PlayerUncleFaceEachOther:: @ 820423E +PetalburgCity_WallysHouse_EventScript_PlayerWallysDadFaceEachOther:: @ 820423E turnobject OBJ_EVENT_ID_PLAYER, DIR_EAST - turnobject LOCALID_WALLYS_UNCLE, DIR_WEST + turnobject LOCALID_WALLYS_DAD, DIR_WEST end PetalburgCity_WallysHouse_OnFrame: @ 8204247 @@ -28,7 +28,7 @@ PetalburgCity_WallysHouse_EventScript_GiveHM03Surf:: @ 8204251 releaseall end -PetalburgCity_WallysHouse_EventScript_WallyUncle:: @ 8204278 +PetalburgCity_WallysHouse_EventScript_WallysDad:: @ 8204278 lock faceplayer goto_if_set FLAG_DEFEATED_WALLY_VICTORY_ROAD, PetalburgCity_WallysHouse_EventScript_DefeatedWallyInVictoryRoad @@ -54,7 +54,7 @@ PetalburgCity_WallysHouse_EventScript_PlayedWithWally:: @ 82042B6 release end -PetalburgCity_WallysHouse_EventScript_WallyAunt:: @ 82042C0 +PetalburgCity_WallysHouse_EventScript_WallysMom:: @ 82042C0 lock faceplayer goto_if_set FLAG_RECEIVED_HM03, PetalburgCity_WallysHouse_EventScript_ReceivedHM03Surf diff --git a/data/scripts/new_game.inc b/data/scripts/new_game.inc index 3c68dfa13d..f723379729 100644 --- a/data/scripts/new_game.inc +++ b/data/scripts/new_game.inc @@ -115,7 +115,7 @@ EventScript_ResetAllMapFlags:: @ 82715DE setflag FLAG_HIDE_LILYCOVE_MUSEUM_PATRON_4 setflag FLAG_HIDE_LILYCOVE_MUSEUM_TOURISTS setflag FLAG_HIDE_PETALBURG_GYM_GREETER - setflag FLAG_HIDE_PETALBURG_GYM_WALLYS_UNCLE + setflag FLAG_HIDE_PETALBURG_GYM_WALLYS_DAD setflag FLAG_HIDE_LITTLEROOT_TOWN_BRENDANS_HOUSE_BRENDAN setflag FLAG_HIDE_LITTLEROOT_TOWN_MAYS_HOUSE_MAY setflag FLAG_HIDE_LITTLEROOT_TOWN_BRENDANS_HOUSE_RIVAL_BEDROOM @@ -142,7 +142,7 @@ EventScript_ResetAllMapFlags:: @ 82715DE setflag FLAG_HIDE_VERDANTURF_TOWN_WANDAS_HOUSE_WALLYS_UNCLE setflag FLAG_HIDE_VERDANTURF_TOWN_WANDAS_HOUSE_WANDA setflag FLAG_HIDE_VERDANTURF_TOWN_SCOTT - setflag FLAG_HIDE_PETALBURG_CITY_WALLYS_UNCLE + setflag FLAG_HIDE_PETALBURG_CITY_WALLYS_DAD setflag FLAG_HIDE_PETALBURG_GYM_WALLY setflag FLAG_HIDE_SLATEPORT_CITY_STERNS_SHIPYARD_MR_BRINEY setflag FLAG_HIDE_SEAFLOOR_CAVERN_ROOM_9_ARCHIE diff --git a/include/constants/flags.h b/include/constants/flags.h index 485dd3058c..2490a6244f 100644 --- a/include/constants/flags.h +++ b/include/constants/flags.h @@ -768,7 +768,7 @@ #define FLAG_HIDE_PETALBURG_WOODS_AQUA_GRUNT 0x2D5 #define FLAG_HIDE_PETALBURG_CITY_WALLY 0x2D6 #define FLAG_HIDE_MOSSDEEP_CITY_STEVENS_HOUSE_INVISIBLE_NINJA_BOY 0x2D7 -#define FLAG_HIDE_PETALBURG_CITY_WALLYS_AUNT 0x2D8 +#define FLAG_HIDE_PETALBURG_CITY_WALLYS_MOM 0x2D8 #define FLAG_UNUSED_0x2D9 0x2D9 // Unused Flag @@ -866,13 +866,13 @@ #define FLAG_HIDE_AQUA_HIDEOUT_1F_GRUNT_1_BLOCKING_ENTRANCE 0x335 #define FLAG_HIDE_AQUA_HIDEOUT_1F_GRUNT_2_BLOCKING_ENTRANCE 0x336 #define FLAG_HIDE_MOSSDEEP_CITY_TEAM_MAGMA 0x337 -#define FLAG_HIDE_PETALBURG_GYM_WALLYS_UNCLE 0x338 +#define FLAG_HIDE_PETALBURG_GYM_WALLYS_DAD 0x338 #define FLAG_HIDE_LEGEND_MON_CAVE_OF_ORIGIN 0x339 // Unused, leftover from R/S #define FLAG_HIDE_SOOTOPOLIS_CITY_ARCHIE 0x33A #define FLAG_HIDE_SOOTOPOLIS_CITY_MAXIE 0x33B #define FLAG_HIDE_SEAFLOOR_CAVERN_ROOM_9_ARCHIE 0x33C #define FLAG_HIDE_SEAFLOOR_CAVERN_ROOM_9_MAXIE 0x33D -#define FLAG_HIDE_PETALBURG_CITY_WALLYS_UNCLE 0x33E +#define FLAG_HIDE_PETALBURG_CITY_WALLYS_DAD 0x33E #define FLAG_HIDE_SEAFLOOR_CAVERN_ROOM_9_MAGMA_GRUNTS 0x33F #define FLAG_HIDE_LILYCOVE_CONTEST_HALL_BLEND_MASTER 0x340 #define FLAG_HIDE_GRANITE_CAVE_STEVEN 0x341 From 7d3b68a27bd6c211790e35ac9957158b911c2ad7 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Tue, 18 Aug 2020 17:51:51 -0400 Subject: [PATCH 075/101] Fix Champinship typo --- include/battle_message.h | 2 +- src/battle_message.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/include/battle_message.h b/include/battle_message.h index a3f2636e59..011a1cb0c7 100644 --- a/include/battle_message.h +++ b/include/battle_message.h @@ -274,7 +274,7 @@ extern const u8 gText_PkmnGettingPumped[]; extern const u8 gText_PkmnShroudedInMist[]; extern const u8 gText_PkmnsXPreventsSwitching[]; extern const u8 gText_TheGreatNewHope[]; -extern const u8 gText_WillChampinshipDreamComeTrue[]; +extern const u8 gText_WillChampionshipDreamComeTrue[]; extern const u8 gText_AFormerChampion[]; extern const u8 gText_ThePreviousChampion[]; extern const u8 gText_TheUnbeatenChampion[]; diff --git a/src/battle_message.c b/src/battle_message.c index 14eba28ab3..191fffb016 100644 --- a/src/battle_message.c +++ b/src/battle_message.c @@ -1285,7 +1285,7 @@ const u8 *const gRoundsStringTable[DOME_ROUNDS_COUNT] = }; const u8 gText_TheGreatNewHope[] = _("The great new hope!\p"); -const u8 gText_WillChampinshipDreamComeTrue[] = _("Will the championship dream come true?!\p"); +const u8 gText_WillChampionshipDreamComeTrue[] = _("Will the championship dream come true?!\p"); const u8 gText_AFormerChampion[] = _("A former CHAMPION!\p"); const u8 gText_ThePreviousChampion[] = _("The previous CHAMPION!\p"); const u8 gText_TheUnbeatenChampion[] = _("The unbeaten CHAMPION!\p"); From e27975afaae8604ce397f09b6a75185cc2c84342 Mon Sep 17 00:00:00 2001 From: PokeCodec Date: Sun, 16 Aug 2020 13:14:35 -0400 Subject: [PATCH 076/101] Match battle script commands by correcting a function and the pokemon struct --- include/battle.h | 22 +-- include/constants/battle.h | 2 +- src/battle_script_commands.c | 322 ++--------------------------------- 3 files changed, 25 insertions(+), 321 deletions(-) diff --git a/include/battle.h b/include/battle.h index 7da0401885..78e7b809a2 100644 --- a/include/battle.h +++ b/include/battle.h @@ -124,22 +124,22 @@ struct ProtectStruct u32 flinchImmobility:1; u32 notFirstStrike:1; u32 palaceUnableToUseMove:1; - u32 physicalDmg; - u32 specialDmg; + s32 physicalDmg; + s32 specialDmg; u8 physicalBattlerId; u8 specialBattlerId; }; struct SpecialStatus { - u8 statLowered:1; - u8 lightningRodRedirected:1; - u8 restoredBattlerSprite: 1; - u8 intimidatedMon:1; - u8 traced:1; - u8 ppNotAffectedByPressure:1; - u8 flag40:1; - u8 focusBanded:1; + u32 statLowered:1; + u32 lightningRodRedirected:1; + u32 restoredBattlerSprite: 1; + u32 intimidatedMon:1; + u32 traced:1; + u32 ppNotAffectedByPressure:1; + u32 flag40:1; + u32 focusBanded:1; s32 dmg; s32 physicalDmg; s32 specialDmg; @@ -254,7 +254,7 @@ struct BattleResults u16 playerMon2Species; // 0x26 u16 caughtMonSpecies; // 0x28 u8 caughtMonNick[POKEMON_NAME_LENGTH + 1]; // 0x2A - u8 filler35[1]; // 0x35 + u8 filler35; // 0x35 u8 catchAttempts[11]; // 0x36 }; diff --git a/include/constants/battle.h b/include/constants/battle.h index 8b860e3848..fa8f422c4b 100644 --- a/include/constants/battle.h +++ b/include/constants/battle.h @@ -186,7 +186,7 @@ #define HITMARKER_x4000000 (1 << 26) #define HITMARKER_CHARGING (1 << 27) #define HITMARKER_FAINTED(battler) (gBitTable[battler] << 28) -#define HITMARKER_FAINTED2(battler) (1 << (28 + battler)) +#define HITMARKER_FAINTED2(battler) ((1 << 28) << battler) // Per-side statuses that affect an entire party #define SIDE_STATUS_REFLECT (1 << 0) diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 5c1b1e3707..b2e02b2876 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -3489,7 +3489,6 @@ static void Cmd_getexp(void) } } -#ifdef NONMATCHING static void Cmd_unknown_24(void) { u16 HP_count = 0; @@ -3521,7 +3520,9 @@ static void Cmd_unknown_24(void) if (HP_count == 0) gBattleOutcome |= B_OUTCOME_LOST; - for (HP_count = 0, i = 0; i < PARTY_SIZE; i++) + HP_count = 0; + + for (i = 0; i < PARTY_SIZE; i++) { if (GetMonData(&gEnemyParty[i], MON_DATA_SPECIES) && !GetMonData(&gEnemyParty[i], MON_DATA_IS_EGG) && (!(gBattleTypeFlags & BATTLE_TYPE_ARENA) || !(gBattleStruct->arenaLostOpponentMons & gBitTable[i]))) @@ -3535,33 +3536,31 @@ static void Cmd_unknown_24(void) if (gBattleOutcome == 0 && (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000))) { - s32 foundPlayer; - s32 foundOpponent; - - // Impossible to decompile loops. - for (foundPlayer = 0, i = 0; i < gBattlersCount; i += 2) + s32 foundPlayer = 0, foundOpponent; + for (i = 0; i < gBattlersCount; i += 2) { - if (HITMARKER_FAINTED2(i) & gHitMarker && !gSpecialStatuses[i].flag40) + if ((gHitMarker & HITMARKER_FAINTED2(i)) && (!gSpecialStatuses[i].flag40)) foundPlayer++; } - for (foundOpponent = 0, i = 1; i < gBattlersCount; i += 2) + foundOpponent = 0; + for (i = 1; i < gBattlersCount; i += 2) { - if (HITMARKER_FAINTED2(i) & gHitMarker && !gSpecialStatuses[i].flag40) + if ((gHitMarker & HITMARKER_FAINTED2(i)) && (!gSpecialStatuses[i].flag40)) foundOpponent++; } if (gBattleTypeFlags & BATTLE_TYPE_MULTI) { if (foundOpponent + foundPlayer > 1) - gBattlescriptCurrInstr = T2_READ_PTR(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = (u8*) T2_READ_32(gBattlescriptCurrInstr + 1); else gBattlescriptCurrInstr += 5; } else { if (foundOpponent != 0 && foundPlayer != 0) - gBattlescriptCurrInstr = T2_READ_PTR(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = (u8*) T2_READ_32(gBattlescriptCurrInstr + 1); else gBattlescriptCurrInstr += 5; } @@ -3571,301 +3570,6 @@ static void Cmd_unknown_24(void) gBattlescriptCurrInstr += 5; } } -#else -NAKED -static void Cmd_unknown_24(void) -{ - asm("\n\ - .syntax unified\n\ - push {r4-r7,lr}\n\ - mov r7, r8\n\ - push {r7}\n\ - movs r6, 0\n\ - ldr r0, =gBattleControllerExecFlags\n\ - ldr r0, [r0]\n\ - cmp r0, 0\n\ - beq _0804ACE2\n\ - b _0804AF22\n\ - _0804ACE2:\n\ - ldr r0, =gBattleTypeFlags\n\ - ldr r0, [r0]\n\ - movs r1, 0x80\n\ - lsls r1, 15\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _0804AD48\n\ - ldr r0, =gPartnerTrainerId\n\ - ldrh r1, [r0]\n\ - ldr r0, =0x00000c03\n\ - cmp r1, r0\n\ - bne _0804AD48\n\ - movs r5, 0\n\ - _0804ACFC:\n\ - movs r0, 0x64\n\ - adds r1, r5, 0\n\ - muls r1, r0\n\ - ldr r0, =gPlayerParty\n\ - adds r4, r1, r0\n\ - adds r0, r4, 0\n\ - movs r1, 0xB\n\ - bl GetMonData\n\ - cmp r0, 0\n\ - beq _0804AD2C\n\ - adds r0, r4, 0\n\ - movs r1, 0x2D\n\ - bl GetMonData\n\ - cmp r0, 0\n\ - bne _0804AD2C\n\ - adds r0, r4, 0\n\ - movs r1, 0x39\n\ - bl GetMonData\n\ - adds r0, r6, r0\n\ - lsls r0, 16\n\ - lsrs r6, r0, 16\n\ - _0804AD2C:\n\ - adds r5, 0x1\n\ - cmp r5, 0x2\n\ - ble _0804ACFC\n\ - b _0804ADA8\n\ - .pool\n\ - _0804AD48:\n\ - movs r5, 0\n\ - _0804AD4A:\n\ - movs r0, 0x64\n\ - adds r1, r5, 0\n\ - muls r1, r0\n\ - ldr r0, =gPlayerParty\n\ - adds r4, r1, r0\n\ - adds r0, r4, 0\n\ - movs r1, 0xB\n\ - bl GetMonData\n\ - cmp r0, 0\n\ - beq _0804ADA2\n\ - adds r0, r4, 0\n\ - movs r1, 0x2D\n\ - bl GetMonData\n\ - cmp r0, 0\n\ - bne _0804ADA2\n\ - ldr r0, =gBattleTypeFlags\n\ - ldr r0, [r0]\n\ - movs r1, 0x80\n\ - lsls r1, 11\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _0804AD94\n\ - ldr r0, =gBattleStruct\n\ - ldr r0, [r0]\n\ - movs r1, 0xA8\n\ - lsls r1, 2\n\ - adds r0, r1\n\ - ldrb r1, [r0]\n\ - ldr r2, =gBitTable\n\ - lsls r0, r5, 2\n\ - adds r0, r2\n\ - ldr r0, [r0]\n\ - ands r1, r0\n\ - cmp r1, 0\n\ - bne _0804ADA2\n\ - _0804AD94:\n\ - adds r0, r4, 0\n\ - movs r1, 0x39\n\ - bl GetMonData\n\ - adds r0, r6, r0\n\ - lsls r0, 16\n\ - lsrs r6, r0, 16\n\ - _0804ADA2:\n\ - adds r5, 0x1\n\ - cmp r5, 0x5\n\ - ble _0804AD4A\n\ - _0804ADA8:\n\ - cmp r6, 0\n\ - bne _0804ADB6\n\ - ldr r0, =gBattleOutcome\n\ - ldrb r1, [r0]\n\ - movs r2, 0x2\n\ - orrs r1, r2\n\ - strb r1, [r0]\n\ - _0804ADB6:\n\ - movs r6, 0\n\ - movs r5, 0\n\ - _0804ADBA:\n\ - movs r0, 0x64\n\ - adds r1, r5, 0\n\ - muls r1, r0\n\ - ldr r0, =gEnemyParty\n\ - adds r4, r1, r0\n\ - adds r0, r4, 0\n\ - movs r1, 0xB\n\ - bl GetMonData\n\ - cmp r0, 0\n\ - beq _0804AE10\n\ - adds r0, r4, 0\n\ - movs r1, 0x2D\n\ - bl GetMonData\n\ - cmp r0, 0\n\ - bne _0804AE10\n\ - ldr r0, =gBattleTypeFlags\n\ - ldr r0, [r0]\n\ - movs r1, 0x80\n\ - lsls r1, 11\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _0804AE02\n\ - ldr r0, =gBattleStruct\n\ - ldr r0, [r0]\n\ - ldr r1, =0x000002a1\n\ - adds r0, r1\n\ - ldrb r1, [r0]\n\ - ldr r2, =gBitTable\n\ - lsls r0, r5, 2\n\ - adds r0, r2\n\ - ldr r0, [r0]\n\ - ands r1, r0\n\ - cmp r1, 0\n\ - bne _0804AE10\n\ - _0804AE02:\n\ - adds r0, r4, 0\n\ - movs r1, 0x39\n\ - bl GetMonData\n\ - adds r0, r6, r0\n\ - lsls r0, 16\n\ - lsrs r6, r0, 16\n\ - _0804AE10:\n\ - adds r5, 0x1\n\ - cmp r5, 0x5\n\ - ble _0804ADBA\n\ - ldr r2, =gBattleOutcome\n\ - cmp r6, 0\n\ - bne _0804AE24\n\ - ldrb r0, [r2]\n\ - movs r1, 0x1\n\ - orrs r0, r1\n\ - strb r0, [r2]\n\ - _0804AE24:\n\ - ldrb r0, [r2]\n\ - cmp r0, 0\n\ - bne _0804AF1A\n\ - ldr r0, =gBattleTypeFlags\n\ - ldr r1, [r0]\n\ - ldr r2, =0x02000002\n\ - ands r1, r2\n\ - mov r8, r0\n\ - cmp r1, 0\n\ - beq _0804AF1A\n\ - movs r3, 0\n\ - movs r5, 0\n\ - ldr r0, =gBattlersCount\n\ - ldrb r1, [r0]\n\ - mov r12, r0\n\ - ldr r7, =gBattlescriptCurrInstr\n\ - cmp r3, r1\n\ - bge _0804AE70\n\ - ldr r0, =gHitMarker\n\ - movs r6, 0x80\n\ - lsls r6, 21\n\ - ldr r4, [r0]\n\ - adds r2, r1, 0\n\ - ldr r1, =gSpecialStatuses\n\ - _0804AE54:\n\ - adds r0, r6, 0\n\ - lsls r0, r5\n\ - ands r0, r4\n\ - cmp r0, 0\n\ - beq _0804AE68\n\ - ldrb r0, [r1]\n\ - lsls r0, 25\n\ - cmp r0, 0\n\ - blt _0804AE68\n\ - adds r3, 0x1\n\ - _0804AE68:\n\ - adds r1, 0x28\n\ - adds r5, 0x2\n\ - cmp r5, r2\n\ - blt _0804AE54\n\ - _0804AE70:\n\ - movs r2, 0\n\ - movs r5, 0x1\n\ - mov r4, r12\n\ - ldrb r1, [r4]\n\ - cmp r5, r1\n\ - bge _0804AEAA\n\ - ldr r0, =gHitMarker\n\ - movs r4, 0x80\n\ - lsls r4, 21\n\ - mov r12, r4\n\ - ldr r6, [r0]\n\ - ldr r0, =gSpecialStatuses\n\ - adds r4, r1, 0\n\ - adds r1, r0, 0\n\ - adds r1, 0x14\n\ - _0804AE8E:\n\ - mov r0, r12\n\ - lsls r0, r5\n\ - ands r0, r6\n\ - cmp r0, 0\n\ - beq _0804AEA2\n\ - ldrb r0, [r1]\n\ - lsls r0, 25\n\ - cmp r0, 0\n\ - blt _0804AEA2\n\ - adds r2, 0x1\n\ - _0804AEA2:\n\ - adds r1, 0x28\n\ - adds r5, 0x2\n\ - cmp r5, r4\n\ - blt _0804AE8E\n\ - _0804AEAA:\n\ - mov r1, r8\n\ - ldr r0, [r1]\n\ - movs r1, 0x40\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _0804AEF0\n\ - adds r0, r2, r3\n\ - cmp r0, 0x1\n\ - bgt _0804AEF8\n\ - b _0804AF12\n\ - .pool\n\ - _0804AEF0:\n\ - cmp r2, 0\n\ - beq _0804AF12\n\ - cmp r3, 0\n\ - beq _0804AF12\n\ - _0804AEF8:\n\ - ldr r2, [r7]\n\ - ldrb r1, [r2, 0x1]\n\ - ldrb r0, [r2, 0x2]\n\ - lsls r0, 8\n\ - adds r1, r0\n\ - ldrb r0, [r2, 0x3]\n\ - lsls r0, 16\n\ - adds r1, r0\n\ - ldrb r0, [r2, 0x4]\n\ - lsls r0, 24\n\ - adds r1, r0\n\ - str r1, [r7]\n\ - b _0804AF22\n\ - _0804AF12:\n\ - ldr r0, [r7]\n\ - adds r0, 0x5\n\ - str r0, [r7]\n\ - b _0804AF22\n\ - _0804AF1A:\n\ - ldr r1, =gBattlescriptCurrInstr\n\ - ldr r0, [r1]\n\ - adds r0, 0x5\n\ - str r0, [r1]\n\ - _0804AF22:\n\ - pop {r3}\n\ - mov r8, r3\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .pool\n\ - .syntax divided"); -} - -#endif // NONMATCHING static void MoveValuesCleanUp(void) { @@ -5831,8 +5535,8 @@ static void Cmd_hitanimation(void) static u32 GetTrainerMoneyToGive(u16 trainerId) { u32 i = 0; - u32 lastMonLevel = 0; - u32 moneyReward = 0; + u32 moneyReward; + u8 lastMonLevel = 0; if (trainerId == TRAINER_SECRET_BASE) { From 30142411799650c17367ce4652269e8ecca7ceef Mon Sep 17 00:00:00 2001 From: GriffinR Date: Thu, 20 Aug 2020 18:02:00 -0400 Subject: [PATCH 077/101] Give songs meaningful english names --- berry_fix/charmap.txt | 894 +++---- berry_fix/payload/charmap.txt | 894 +++---- charmap.txt | 894 +++---- data/battle_anim_scripts.s | 2194 ++++++++--------- data/battle_scripts_1.s | 14 +- data/battle_scripts_2.s | 10 +- data/event_scripts.s | 8 +- .../AbandonedShip_CaptainsOffice/map.json | 2 +- data/maps/AbandonedShip_Corridors_1F/map.json | 2 +- .../maps/AbandonedShip_Corridors_B1F/map.json | 2 +- data/maps/AbandonedShip_Deck/map.json | 2 +- .../map.json | 2 +- .../AbandonedShip_HiddenFloorRooms/map.json | 2 +- data/maps/AbandonedShip_Room_B1F/map.json | 2 +- data/maps/AbandonedShip_Rooms2_1F/map.json | 2 +- data/maps/AbandonedShip_Rooms2_B1F/map.json | 2 +- data/maps/AbandonedShip_Rooms_1F/map.json | 2 +- data/maps/AbandonedShip_Rooms_B1F/map.json | 2 +- data/maps/AbandonedShip_Underwater1/map.json | 2 +- data/maps/AbandonedShip_Underwater2/map.json | 2 +- data/maps/AlteringCave/map.json | 2 +- data/maps/AncientTomb/map.json | 2 +- data/maps/AquaHideout_1F/map.json | 2 +- data/maps/AquaHideout_B1F/map.json | 2 +- data/maps/AquaHideout_B2F/map.json | 2 +- data/maps/AquaHideout_UnusedRubyMap1/map.json | 2 +- data/maps/AquaHideout_UnusedRubyMap2/map.json | 2 +- data/maps/AquaHideout_UnusedRubyMap3/map.json | 2 +- data/maps/ArtisanCave_1F/map.json | 2 +- data/maps/ArtisanCave_B1F/map.json | 2 +- data/maps/BattleColosseum_2P/map.json | 2 +- data/maps/BattleColosseum_4P/map.json | 2 +- .../scripts.inc | 20 +- .../scripts.inc | 28 +- .../map.json | 2 +- .../BattleFrontier_BattleDomeLobby/map.json | 2 +- .../scripts.inc | 2 +- .../scripts.inc | 4 +- .../scripts.inc | 4 +- .../scripts.inc | 6 +- .../map.json | 2 +- .../BattleFrontier_BattlePikeLobby/map.json | 2 +- .../scripts.inc | 2 +- .../map.json | 2 +- .../map.json | 2 +- .../scripts.inc | 18 +- .../map.json | 2 +- .../map.json | 2 +- .../scripts.inc | 2 +- .../map.json | 2 +- .../scripts.inc | 8 +- .../scripts.inc | 12 +- .../map.json | 2 +- .../scripts.inc | 6 +- .../map.json | 2 +- .../map.json | 2 +- .../BattleFrontier_BattleTowerLobby/map.json | 2 +- .../scripts.inc | 2 +- .../map.json | 2 +- .../scripts.inc | 2 +- .../map.json | 2 +- .../map.json | 2 +- .../map.json | 2 +- .../scripts.inc | 4 +- data/maps/BattleFrontier_Lounge1/map.json | 2 +- data/maps/BattleFrontier_Lounge2/map.json | 2 +- data/maps/BattleFrontier_Lounge3/map.json | 2 +- data/maps/BattleFrontier_Lounge3/scripts.inc | 2 +- data/maps/BattleFrontier_Lounge4/map.json | 2 +- data/maps/BattleFrontier_Lounge5/map.json | 2 +- data/maps/BattleFrontier_Lounge6/map.json | 2 +- data/maps/BattleFrontier_Lounge7/map.json | 2 +- data/maps/BattleFrontier_Lounge8/map.json | 2 +- data/maps/BattleFrontier_Lounge9/map.json | 2 +- data/maps/BattleFrontier_Mart/map.json | 2 +- .../BattleFrontier_OutsideEast/scripts.inc | 4 +- .../BattleFrontier_PokemonCenter_1F/map.json | 2 +- .../BattleFrontier_PokemonCenter_2F/map.json | 2 +- data/maps/BattleFrontier_RankingHall/map.json | 2 +- .../BattleFrontier_ReceptionGate/map.json | 2 +- .../BattleFrontier_ReceptionGate/scripts.inc | 2 +- data/maps/BattleFrontier_ScottsHouse/map.json | 2 +- data/maps/BirthIsland_Exterior/scripts.inc | 2 +- data/maps/CaveOfOrigin_1F/map.json | 2 +- data/maps/CaveOfOrigin_B1F/scripts.inc | 2 +- data/maps/CaveOfOrigin_Entrance/map.json | 2 +- .../map.json | 2 +- .../map.json | 2 +- .../map.json | 2 +- data/maps/ContestHall/map.json | 2 +- data/maps/ContestHall/scripts.inc | 10 +- data/maps/ContestHallBeauty/map.json | 2 +- data/maps/ContestHallCool/map.json | 2 +- data/maps/ContestHallCute/map.json | 2 +- data/maps/ContestHallSmart/map.json | 2 +- data/maps/ContestHallTough/map.json | 2 +- data/maps/DesertRuins/map.json | 2 +- data/maps/DesertUnderpass/map.json | 2 +- data/maps/DewfordTown/map.json | 2 +- data/maps/DewfordTown_Gym/map.json | 2 +- data/maps/DewfordTown_Gym/scripts.inc | 16 +- data/maps/DewfordTown_Hall/map.json | 2 +- data/maps/DewfordTown_House1/map.json | 2 +- data/maps/DewfordTown_House2/map.json | 2 +- .../DewfordTown_PokemonCenter_1F/map.json | 2 +- .../DewfordTown_PokemonCenter_2F/map.json | 2 +- data/maps/EverGrandeCity/map.json | 2 +- .../EverGrandeCity_ChampionsRoom/map.json | 2 +- .../EverGrandeCity_ChampionsRoom/scripts.inc | 6 +- data/maps/EverGrandeCity_DrakesRoom/map.json | 2 +- .../EverGrandeCity_DrakesRoom/scripts.inc | 2 +- data/maps/EverGrandeCity_GlaciasRoom/map.json | 2 +- .../EverGrandeCity_GlaciasRoom/scripts.inc | 2 +- data/maps/EverGrandeCity_Hall1/map.json | 2 +- data/maps/EverGrandeCity_Hall2/map.json | 2 +- data/maps/EverGrandeCity_Hall3/map.json | 2 +- data/maps/EverGrandeCity_Hall4/map.json | 2 +- data/maps/EverGrandeCity_Hall5/map.json | 2 +- data/maps/EverGrandeCity_HallOfFame/map.json | 2 +- data/maps/EverGrandeCity_PhoebesRoom/map.json | 2 +- .../EverGrandeCity_PhoebesRoom/scripts.inc | 2 +- .../EverGrandeCity_PokemonCenter_1F/map.json | 2 +- .../scripts.inc | 2 +- .../EverGrandeCity_PokemonCenter_2F/map.json | 2 +- .../EverGrandeCity_PokemonLeague_1F/map.json | 2 +- .../scripts.inc | 4 +- .../EverGrandeCity_PokemonLeague_2F/map.json | 2 +- data/maps/EverGrandeCity_SidneysRoom/map.json | 2 +- .../EverGrandeCity_SidneysRoom/scripts.inc | 2 +- data/maps/FallarborTown/map.json | 2 +- .../map.json | 2 +- .../scripts.inc | 8 +- .../FallarborTown_BattleTentCorridor/map.json | 2 +- .../FallarborTown_BattleTentLobby/map.json | 2 +- .../FallarborTown_BattleTentLobby/scripts.inc | 2 +- data/maps/FallarborTown_CozmosHouse/map.json | 2 +- data/maps/FallarborTown_Mart/map.json | 2 +- .../map.json | 2 +- .../FallarborTown_PokemonCenter_1F/map.json | 2 +- .../scripts.inc | 2 +- .../FallarborTown_PokemonCenter_2F/map.json | 2 +- data/maps/FarawayIsland_Entrance/map.json | 2 +- data/maps/FarawayIsland_Interior/map.json | 2 +- data/maps/FieryPath/map.json | 2 +- data/maps/FortreeCity/map.json | 2 +- data/maps/FortreeCity_DecorationShop/map.json | 2 +- data/maps/FortreeCity_Gym/map.json | 2 +- data/maps/FortreeCity_Gym/scripts.inc | 2 +- data/maps/FortreeCity_House1/map.json | 2 +- data/maps/FortreeCity_House2/map.json | 2 +- data/maps/FortreeCity_House3/map.json | 2 +- data/maps/FortreeCity_House4/map.json | 2 +- data/maps/FortreeCity_House5/map.json | 2 +- data/maps/FortreeCity_Mart/map.json | 2 +- .../FortreeCity_PokemonCenter_1F/map.json | 2 +- .../FortreeCity_PokemonCenter_2F/map.json | 2 +- data/maps/GraniteCave_1F/map.json | 2 +- data/maps/GraniteCave_B1F/map.json | 2 +- data/maps/GraniteCave_B2F/map.json | 2 +- data/maps/GraniteCave_StevensRoom/map.json | 2 +- data/maps/GraniteCave_StevensRoom/scripts.inc | 4 +- data/maps/IslandCave/map.json | 2 +- data/maps/IslandCave/scripts.inc | 2 +- data/maps/JaggedPass/map.json | 2 +- data/maps/JaggedPass/scripts.inc | 2 +- data/maps/LavaridgeTown/map.json | 2 +- data/maps/LavaridgeTown/scripts.inc | 6 +- data/maps/LavaridgeTown_Gym_1F/map.json | 2 +- data/maps/LavaridgeTown_Gym_1F/scripts.inc | 2 +- data/maps/LavaridgeTown_Gym_B1F/map.json | 2 +- data/maps/LavaridgeTown_HerbShop/map.json | 2 +- data/maps/LavaridgeTown_House/map.json | 2 +- data/maps/LavaridgeTown_Mart/map.json | 2 +- .../LavaridgeTown_PokemonCenter_1F/map.json | 2 +- .../LavaridgeTown_PokemonCenter_2F/map.json | 2 +- data/maps/LilycoveCity/map.json | 2 +- data/maps/LilycoveCity/scripts.inc | 4 +- data/maps/LilycoveCity_ContestHall/map.json | 2 +- data/maps/LilycoveCity_ContestLobby/map.json | 2 +- .../LilycoveCity_ContestLobby/scripts.inc | 12 +- .../LilycoveCity_CoveLilyMotel_1F/map.json | 2 +- .../LilycoveCity_CoveLilyMotel_2F/map.json | 2 +- .../LilycoveCity_CoveLilyMotel_2F/scripts.inc | 2 +- .../map.json | 2 +- .../map.json | 2 +- .../scripts.inc | 6 +- .../LilycoveCity_DepartmentStore_1F/map.json | 2 +- .../LilycoveCity_DepartmentStore_2F/map.json | 2 +- .../LilycoveCity_DepartmentStore_3F/map.json | 2 +- .../LilycoveCity_DepartmentStore_4F/map.json | 2 +- .../LilycoveCity_DepartmentStore_5F/map.json | 2 +- data/maps/LilycoveCity_Harbor/map.json | 2 +- data/maps/LilycoveCity_House1/map.json | 2 +- data/maps/LilycoveCity_House2/map.json | 2 +- data/maps/LilycoveCity_House3/map.json | 2 +- data/maps/LilycoveCity_House4/map.json | 2 +- .../LilycoveCity_LilycoveMuseum_1F/map.json | 2 +- .../LilycoveCity_LilycoveMuseum_2F/map.json | 2 +- .../LilycoveCity_MoveDeletersHouse/map.json | 2 +- .../scripts.inc | 2 +- .../LilycoveCity_PokemonCenter_1F/map.json | 2 +- .../LilycoveCity_PokemonCenter_2F/map.json | 2 +- .../map.json | 2 +- data/maps/LilycoveCity_UnusedMart/map.json | 2 +- data/maps/LittlerootTown/map.json | 2 +- data/maps/LittlerootTown/scripts.inc | 4 +- .../LittlerootTown_BrendansHouse_1F/map.json | 2 +- .../scripts.inc | 6 +- .../LittlerootTown_BrendansHouse_2F/map.json | 2 +- .../scripts.inc | 2 +- .../maps/LittlerootTown_MaysHouse_1F/map.json | 2 +- .../LittlerootTown_MaysHouse_1F/scripts.inc | 6 +- .../maps/LittlerootTown_MaysHouse_2F/map.json | 2 +- .../LittlerootTown_MaysHouse_2F/scripts.inc | 2 +- .../map.json | 2 +- .../scripts.inc | 18 +- data/maps/MagmaHideout_1F/map.json | 2 +- data/maps/MagmaHideout_2F_1R/map.json | 2 +- data/maps/MagmaHideout_2F_2R/map.json | 2 +- data/maps/MagmaHideout_2F_3R/map.json | 2 +- data/maps/MagmaHideout_3F_1R/map.json | 2 +- data/maps/MagmaHideout_3F_2R/map.json | 2 +- data/maps/MagmaHideout_3F_3R/map.json | 2 +- data/maps/MagmaHideout_4F/map.json | 2 +- data/maps/MagmaHideout_4F/scripts.inc | 8 +- data/maps/MarineCave_End/map.json | 2 +- data/maps/MarineCave_Entrance/map.json | 2 +- data/maps/MauvilleCity/map.json | 2 +- data/maps/MauvilleCity/scripts.inc | 2 +- data/maps/MauvilleCity_BikeShop/map.json | 2 +- data/maps/MauvilleCity_GameCorner/map.json | 2 +- data/maps/MauvilleCity_GameCorner/scripts.inc | 22 +- data/maps/MauvilleCity_Gym/map.json | 2 +- data/maps/MauvilleCity_Gym/scripts.inc | 6 +- data/maps/MauvilleCity_House1/map.json | 2 +- data/maps/MauvilleCity_House2/map.json | 2 +- data/maps/MauvilleCity_Mart/map.json | 2 +- .../MauvilleCity_PokemonCenter_1F/map.json | 2 +- .../MauvilleCity_PokemonCenter_2F/map.json | 2 +- data/maps/MeteorFalls_1F_1R/map.json | 2 +- data/maps/MeteorFalls_1F_1R/scripts.inc | 4 +- data/maps/MeteorFalls_1F_2R/map.json | 2 +- data/maps/MeteorFalls_B1F_1R/map.json | 2 +- data/maps/MeteorFalls_B1F_2R/map.json | 2 +- data/maps/MeteorFalls_StevensCave/map.json | 2 +- data/maps/MirageTower_1F/map.json | 2 +- data/maps/MirageTower_2F/map.json | 2 +- data/maps/MirageTower_3F/map.json | 2 +- data/maps/MirageTower_4F/map.json | 2 +- data/maps/MossdeepCity/map.json | 2 +- data/maps/MossdeepCity_GameCorner_1F/map.json | 2 +- .../maps/MossdeepCity_GameCorner_B1F/map.json | 2 +- data/maps/MossdeepCity_Gym/map.json | 2 +- data/maps/MossdeepCity_Gym/scripts.inc | 24 +- data/maps/MossdeepCity_House1/map.json | 2 +- data/maps/MossdeepCity_House2/map.json | 2 +- data/maps/MossdeepCity_House3/map.json | 2 +- data/maps/MossdeepCity_House4/map.json | 2 +- data/maps/MossdeepCity_Mart/map.json | 2 +- .../MossdeepCity_PokemonCenter_1F/map.json | 2 +- .../MossdeepCity_PokemonCenter_2F/map.json | 2 +- .../maps/MossdeepCity_SpaceCenter_1F/map.json | 2 +- .../maps/MossdeepCity_SpaceCenter_2F/map.json | 2 +- .../MossdeepCity_SpaceCenter_2F/scripts.inc | 2 +- data/maps/MossdeepCity_StevensHouse/map.json | 2 +- .../MossdeepCity_StevensHouse/scripts.inc | 2 +- data/maps/MtChimney/map.json | 2 +- data/maps/MtChimney/scripts.inc | 2 +- data/maps/MtChimney_CableCarStation/map.json | 2 +- data/maps/MtPyre_1F/map.json | 2 +- data/maps/MtPyre_2F/map.json | 2 +- data/maps/MtPyre_3F/map.json | 2 +- data/maps/MtPyre_4F/map.json | 2 +- data/maps/MtPyre_5F/map.json | 2 +- data/maps/MtPyre_6F/map.json | 2 +- data/maps/MtPyre_Exterior/map.json | 2 +- data/maps/MtPyre_Summit/map.json | 2 +- data/maps/MtPyre_Summit/scripts.inc | 2 +- data/maps/NavelRock_B1F/map.json | 2 +- data/maps/NavelRock_Bottom/map.json | 2 +- data/maps/NavelRock_Bottom/scripts.inc | 4 +- data/maps/NavelRock_Down01/map.json | 2 +- data/maps/NavelRock_Down02/map.json | 2 +- data/maps/NavelRock_Down03/map.json | 2 +- data/maps/NavelRock_Down04/map.json | 2 +- data/maps/NavelRock_Down05/map.json | 2 +- data/maps/NavelRock_Down06/map.json | 2 +- data/maps/NavelRock_Down07/map.json | 2 +- data/maps/NavelRock_Down08/map.json | 2 +- data/maps/NavelRock_Down09/map.json | 2 +- data/maps/NavelRock_Down10/map.json | 2 +- data/maps/NavelRock_Down11/map.json | 2 +- data/maps/NavelRock_Entrance/map.json | 2 +- data/maps/NavelRock_Exterior/map.json | 2 +- data/maps/NavelRock_Fork/map.json | 2 +- data/maps/NavelRock_Harbor/map.json | 2 +- data/maps/NavelRock_Top/map.json | 2 +- data/maps/NavelRock_Up1/map.json | 2 +- data/maps/NavelRock_Up2/map.json | 2 +- data/maps/NavelRock_Up3/map.json | 2 +- data/maps/NavelRock_Up4/map.json | 2 +- data/maps/NewMauville_Entrance/map.json | 2 +- data/maps/NewMauville_Entrance/scripts.inc | 2 +- data/maps/NewMauville_Inside/map.json | 2 +- data/maps/OldaleTown/map.json | 2 +- data/maps/OldaleTown/scripts.inc | 2 +- data/maps/OldaleTown_House1/map.json | 2 +- data/maps/OldaleTown_House2/map.json | 2 +- data/maps/OldaleTown_Mart/map.json | 2 +- .../maps/OldaleTown_PokemonCenter_1F/map.json | 2 +- .../maps/OldaleTown_PokemonCenter_2F/map.json | 2 +- data/maps/PacifidlogTown/map.json | 2 +- data/maps/PacifidlogTown_House1/map.json | 2 +- data/maps/PacifidlogTown_House2/map.json | 2 +- data/maps/PacifidlogTown_House3/map.json | 2 +- data/maps/PacifidlogTown_House4/map.json | 2 +- data/maps/PacifidlogTown_House5/map.json | 2 +- .../PacifidlogTown_PokemonCenter_1F/map.json | 2 +- .../PacifidlogTown_PokemonCenter_2F/map.json | 2 +- data/maps/PetalburgCity/map.json | 2 +- data/maps/PetalburgCity/scripts.inc | 4 +- data/maps/PetalburgCity_Gym/map.json | 2 +- data/maps/PetalburgCity_Gym/scripts.inc | 6 +- data/maps/PetalburgCity_House1/map.json | 2 +- data/maps/PetalburgCity_House2/map.json | 2 +- data/maps/PetalburgCity_Mart/map.json | 2 +- .../PetalburgCity_PokemonCenter_1F/map.json | 2 +- .../PetalburgCity_PokemonCenter_2F/map.json | 2 +- data/maps/PetalburgCity_WallysHouse/map.json | 2 +- data/maps/PetalburgWoods/map.json | 2 +- data/maps/PetalburgWoods/scripts.inc | 4 +- data/maps/RecordCorner/map.json | 2 +- data/maps/Route101/map.json | 2 +- data/maps/Route101/scripts.inc | 2 +- data/maps/Route102/map.json | 2 +- data/maps/Route103/map.json | 2 +- data/maps/Route103/scripts.inc | 10 +- data/maps/Route104/map.json | 2 +- data/maps/Route104/scripts.inc | 10 +- data/maps/Route104_MrBrineysHouse/map.json | 2 +- .../Route104_PrettyPetalFlowerShop/map.json | 2 +- data/maps/Route104_Prototype/map.json | 2 +- .../map.json | 2 +- data/maps/Route105/map.json | 2 +- data/maps/Route106/map.json | 2 +- data/maps/Route107/map.json | 2 +- data/maps/Route108/map.json | 2 +- data/maps/Route109/map.json | 2 +- data/maps/Route109_SeashoreHouse/map.json | 2 +- data/maps/Route110/map.json | 2 +- data/maps/Route110/scripts.inc | 6 +- .../map.json | 2 +- .../map.json | 2 +- .../maps/Route110_TrickHouseCorridor/map.json | 2 +- data/maps/Route110_TrickHouseEnd/map.json | 2 +- data/maps/Route110_TrickHouseEnd/scripts.inc | 4 +- .../maps/Route110_TrickHouseEntrance/map.json | 2 +- .../Route110_TrickHouseEntrance/scripts.inc | 6 +- data/maps/Route110_TrickHousePuzzle1/map.json | 2 +- data/maps/Route110_TrickHousePuzzle2/map.json | 2 +- data/maps/Route110_TrickHousePuzzle3/map.json | 2 +- data/maps/Route110_TrickHousePuzzle4/map.json | 2 +- data/maps/Route110_TrickHousePuzzle5/map.json | 2 +- .../Route110_TrickHousePuzzle5/scripts.inc | 4 +- data/maps/Route110_TrickHousePuzzle6/map.json | 2 +- data/maps/Route110_TrickHousePuzzle7/map.json | 2 +- .../Route110_TrickHousePuzzle7/scripts.inc | 30 +- data/maps/Route110_TrickHousePuzzle8/map.json | 2 +- data/maps/Route111/map.json | 2 +- data/maps/Route111/scripts.inc | 6 +- data/maps/Route111_OldLadysRestStop/map.json | 2 +- .../Route111_WinstrateFamilysHouse/map.json | 2 +- data/maps/Route112/map.json | 2 +- data/maps/Route112_CableCarStation/map.json | 2 +- data/maps/Route113/map.json | 2 +- data/maps/Route113_GlassWorkshop/map.json | 2 +- data/maps/Route114/map.json | 2 +- .../maps/Route114_FossilManiacsHouse/map.json | 2 +- .../Route114_FossilManiacsTunnel/map.json | 2 +- data/maps/Route114_LanettesHouse/map.json | 2 +- data/maps/Route115/map.json | 2 +- data/maps/Route116/map.json | 2 +- .../maps/Route116_TunnelersRestHouse/map.json | 2 +- data/maps/Route117/map.json | 2 +- data/maps/Route117_PokemonDayCare/map.json | 2 +- data/maps/Route118/map.json | 2 +- data/maps/Route118/scripts.inc | 2 +- data/maps/Route119/map.json | 2 +- data/maps/Route119/scripts.inc | 4 +- data/maps/Route119_House/map.json | 2 +- .../Route119_WeatherInstitute_1F/map.json | 2 +- .../Route119_WeatherInstitute_2F/map.json | 2 +- .../Route119_WeatherInstitute_2F/scripts.inc | 2 +- data/maps/Route120/map.json | 2 +- data/maps/Route121/map.json | 2 +- data/maps/Route121/scripts.inc | 2 +- .../maps/Route121_SafariZoneEntrance/map.json | 2 +- .../Route121_SafariZoneEntrance/scripts.inc | 4 +- data/maps/Route122/map.json | 2 +- data/maps/Route123/map.json | 2 +- data/maps/Route123_BerryMastersHouse/map.json | 2 +- data/maps/Route124/map.json | 2 +- .../map.json | 2 +- data/maps/Route125/map.json | 2 +- data/maps/Route126/map.json | 2 +- data/maps/Route127/map.json | 2 +- data/maps/Route128/map.json | 2 +- data/maps/Route129/map.json | 2 +- data/maps/Route130/map.json | 2 +- data/maps/Route131/map.json | 2 +- data/maps/Route132/map.json | 2 +- data/maps/Route133/map.json | 2 +- data/maps/Route134/map.json | 2 +- data/maps/RustboroCity/map.json | 2 +- data/maps/RustboroCity/scripts.inc | 22 +- data/maps/RustboroCity_CuttersHouse/map.json | 2 +- data/maps/RustboroCity_DevonCorp_1F/map.json | 2 +- data/maps/RustboroCity_DevonCorp_2F/map.json | 2 +- .../RustboroCity_DevonCorp_2F/scripts.inc | 4 +- data/maps/RustboroCity_DevonCorp_3F/map.json | 2 +- .../RustboroCity_DevonCorp_3F/scripts.inc | 4 +- data/maps/RustboroCity_Flat1_1F/map.json | 2 +- data/maps/RustboroCity_Flat1_2F/map.json | 2 +- data/maps/RustboroCity_Flat2_1F/map.json | 2 +- data/maps/RustboroCity_Flat2_2F/map.json | 2 +- data/maps/RustboroCity_Flat2_3F/map.json | 2 +- data/maps/RustboroCity_Gym/map.json | 2 +- data/maps/RustboroCity_Gym/scripts.inc | 2 +- data/maps/RustboroCity_House1/map.json | 2 +- data/maps/RustboroCity_House2/map.json | 2 +- data/maps/RustboroCity_House3/map.json | 2 +- data/maps/RustboroCity_Mart/map.json | 2 +- .../RustboroCity_PokemonCenter_1F/map.json | 2 +- .../RustboroCity_PokemonCenter_2F/map.json | 2 +- data/maps/RustboroCity_PokemonSchool/map.json | 2 +- data/maps/RusturfTunnel/map.json | 2 +- data/maps/RusturfTunnel/scripts.inc | 2 +- data/maps/SSTidalCorridor/map.json | 2 +- data/maps/SSTidalCorridor/scripts.inc | 16 +- data/maps/SSTidalLowerDeck/map.json | 2 +- data/maps/SSTidalRooms/map.json | 2 +- data/maps/SafariZone_North/map.json | 2 +- data/maps/SafariZone_Northeast/map.json | 2 +- data/maps/SafariZone_Northwest/map.json | 2 +- data/maps/SafariZone_RestHouse/map.json | 2 +- data/maps/SafariZone_South/map.json | 2 +- data/maps/SafariZone_Southeast/map.json | 2 +- data/maps/SafariZone_Southwest/map.json | 2 +- data/maps/ScorchedSlab/map.json | 2 +- data/maps/SeafloorCavern_Entrance/map.json | 2 +- data/maps/SeafloorCavern_Room1/map.json | 2 +- data/maps/SeafloorCavern_Room2/map.json | 2 +- data/maps/SeafloorCavern_Room3/map.json | 2 +- data/maps/SeafloorCavern_Room4/map.json | 2 +- data/maps/SeafloorCavern_Room5/map.json | 2 +- data/maps/SeafloorCavern_Room6/map.json | 2 +- data/maps/SeafloorCavern_Room7/map.json | 2 +- data/maps/SeafloorCavern_Room8/map.json | 2 +- data/maps/SeafloorCavern_Room9/map.json | 2 +- data/maps/SeafloorCavern_Room9/scripts.inc | 8 +- data/maps/SealedChamber_InnerRoom/map.json | 2 +- data/maps/SealedChamber_InnerRoom/scripts.inc | 2 +- data/maps/SealedChamber_OuterRoom/map.json | 2 +- data/maps/SecretBase_BlueCave1/map.json | 2 +- data/maps/SecretBase_BlueCave2/map.json | 2 +- data/maps/SecretBase_BlueCave3/map.json | 2 +- data/maps/SecretBase_BlueCave4/map.json | 2 +- data/maps/SecretBase_BrownCave1/map.json | 2 +- data/maps/SecretBase_BrownCave2/map.json | 2 +- data/maps/SecretBase_BrownCave3/map.json | 2 +- data/maps/SecretBase_BrownCave4/map.json | 2 +- data/maps/SecretBase_RedCave1/map.json | 2 +- data/maps/SecretBase_RedCave2/map.json | 2 +- data/maps/SecretBase_RedCave3/map.json | 2 +- data/maps/SecretBase_RedCave4/map.json | 2 +- data/maps/SecretBase_Shrub1/map.json | 2 +- data/maps/SecretBase_Shrub2/map.json | 2 +- data/maps/SecretBase_Shrub3/map.json | 2 +- data/maps/SecretBase_Shrub4/map.json | 2 +- data/maps/SecretBase_Tree1/map.json | 2 +- data/maps/SecretBase_Tree2/map.json | 2 +- data/maps/SecretBase_Tree3/map.json | 2 +- data/maps/SecretBase_Tree4/map.json | 2 +- data/maps/SecretBase_YellowCave1/map.json | 2 +- data/maps/SecretBase_YellowCave2/map.json | 2 +- data/maps/SecretBase_YellowCave3/map.json | 2 +- data/maps/SecretBase_YellowCave4/map.json | 2 +- .../ShoalCave_HighTideEntranceRoom/map.json | 2 +- .../maps/ShoalCave_HighTideInnerRoom/map.json | 2 +- .../ShoalCave_LowTideEntranceRoom/map.json | 2 +- data/maps/ShoalCave_LowTideIceRoom/map.json | 2 +- data/maps/ShoalCave_LowTideInnerRoom/map.json | 2 +- data/maps/ShoalCave_LowTideLowerRoom/map.json | 2 +- .../maps/ShoalCave_LowTideStairsRoom/map.json | 2 +- data/maps/SkyPillar_1F/map.json | 2 +- data/maps/SkyPillar_2F/map.json | 2 +- data/maps/SkyPillar_3F/map.json | 2 +- data/maps/SkyPillar_4F/map.json | 2 +- data/maps/SkyPillar_5F/map.json | 2 +- data/maps/SkyPillar_Entrance/map.json | 2 +- data/maps/SkyPillar_Outside/map.json | 2 +- data/maps/SkyPillar_Outside/scripts.inc | 2 +- data/maps/SkyPillar_Top/map.json | 2 +- data/maps/SlateportCity/map.json | 2 +- data/maps/SlateportCity/scripts.inc | 6 +- .../map.json | 2 +- .../SlateportCity_BattleTentCorridor/map.json | 2 +- .../scripts.inc | 2 +- .../SlateportCity_BattleTentLobby/map.json | 2 +- .../SlateportCity_BattleTentLobby/scripts.inc | 2 +- data/maps/SlateportCity_Harbor/map.json | 2 +- data/maps/SlateportCity_Harbor/scripts.inc | 2 +- data/maps/SlateportCity_House/map.json | 2 +- data/maps/SlateportCity_Mart/map.json | 2 +- .../SlateportCity_NameRatersHouse/map.json | 2 +- .../SlateportCity_OceanicMuseum_1F/map.json | 2 +- .../scripts.inc | 4 +- .../SlateportCity_OceanicMuseum_2F/map.json | 2 +- .../scripts.inc | 4 +- .../SlateportCity_PokemonCenter_1F/map.json | 2 +- .../SlateportCity_PokemonCenter_2F/map.json | 2 +- .../SlateportCity_PokemonFanClub/map.json | 2 +- .../SlateportCity_SternsShipyard_1F/map.json | 2 +- .../SlateportCity_SternsShipyard_2F/map.json | 2 +- data/maps/SootopolisCity/map.json | 2 +- data/maps/SootopolisCity/scripts.inc | 6 +- data/maps/SootopolisCity_Gym_1F/map.json | 2 +- data/maps/SootopolisCity_Gym_1F/scripts.inc | 10 +- data/maps/SootopolisCity_Gym_B1F/map.json | 2 +- data/maps/SootopolisCity_House1/map.json | 2 +- data/maps/SootopolisCity_House2/map.json | 2 +- data/maps/SootopolisCity_House3/map.json | 2 +- data/maps/SootopolisCity_House4/map.json | 2 +- data/maps/SootopolisCity_House5/map.json | 2 +- data/maps/SootopolisCity_House6/map.json | 2 +- data/maps/SootopolisCity_House7/map.json | 2 +- .../map.json | 2 +- data/maps/SootopolisCity_Mart/map.json | 2 +- .../map.json | 2 +- .../map.json | 2 +- .../SootopolisCity_PokemonCenter_1F/map.json | 2 +- .../SootopolisCity_PokemonCenter_2F/map.json | 2 +- data/maps/SouthernIsland_Exterior/map.json | 2 +- data/maps/SouthernIsland_Interior/map.json | 2 +- data/maps/TerraCave_End/map.json | 2 +- data/maps/TerraCave_Entrance/map.json | 2 +- data/maps/TradeCenter/map.json | 2 +- data/maps/TrainerHill_1F/map.json | 2 +- data/maps/TrainerHill_2F/map.json | 2 +- data/maps/TrainerHill_3F/map.json | 2 +- data/maps/TrainerHill_4F/map.json | 2 +- data/maps/TrainerHill_Elevator/map.json | 2 +- data/maps/TrainerHill_Entrance/map.json | 2 +- data/maps/TrainerHill_Entrance/scripts.inc | 2 +- data/maps/TrainerHill_Roof/map.json | 2 +- data/maps/TrainerHill_Roof/scripts.inc | 2 +- data/maps/Underwater1/map.json | 2 +- data/maps/Underwater2/map.json | 2 +- data/maps/Underwater3/map.json | 2 +- data/maps/Underwater4/map.json | 2 +- data/maps/Underwater5/map.json | 2 +- data/maps/Underwater6/map.json | 2 +- data/maps/Underwater7/map.json | 2 +- data/maps/Underwater_MarineCave/map.json | 2 +- data/maps/Underwater_Route134/map.json | 2 +- data/maps/Underwater_SeafloorCavern/map.json | 2 +- data/maps/Underwater_SealedChamber/map.json | 2 +- data/maps/Underwater_SootopolisCity/map.json | 2 +- data/maps/UnionRoom/map.json | 2 +- .../UnknownLinkContestRoom_25_29/map.json | 2 +- .../UnknownLinkContestRoom_25_30/map.json | 2 +- .../UnknownLinkContestRoom_25_31/map.json | 2 +- .../UnknownLinkContestRoom_25_32/map.json | 2 +- .../UnknownLinkContestRoom_25_33/map.json | 2 +- .../UnknownLinkContestRoom_25_34/map.json | 2 +- data/maps/VerdanturfTown/map.json | 2 +- .../map.json | 2 +- .../scripts.inc | 2 +- .../map.json | 2 +- .../VerdanturfTown_BattleTentLobby/map.json | 2 +- .../scripts.inc | 2 +- .../map.json | 2 +- data/maps/VerdanturfTown_House/map.json | 2 +- data/maps/VerdanturfTown_Mart/map.json | 2 +- .../VerdanturfTown_PokemonCenter_1F/map.json | 2 +- .../VerdanturfTown_PokemonCenter_2F/map.json | 2 +- data/maps/VerdanturfTown_WandasHouse/map.json | 2 +- data/maps/VictoryRoad_1F/map.json | 2 +- data/maps/VictoryRoad_B1F/map.json | 2 +- data/maps/VictoryRoad_B2F/map.json | 2 +- data/scripts/berry_tree.inc | 2 +- data/scripts/cable_club.inc | 22 +- data/scripts/cave_hole.inc | 4 +- data/scripts/contest_hall.inc | 16 +- data/scripts/day_care.inc | 4 +- data/scripts/elite_four.inc | 2 +- data/scripts/lilycove_lady.inc | 8 +- data/scripts/mevent_pichu.inc | 2 +- data/scripts/obtain_item.inc | 6 +- data/scripts/players_house.inc | 8 +- data/scripts/safari_zone.inc | 4 +- data/scripts/secret_base.inc | 6 +- data/scripts/std_msgbox.inc | 2 +- data/scripts/trainer_script.inc | 2 +- include/constants/songs.h | 1075 ++++---- ld_script.txt | 894 +++---- songs.mk | 678 ++--- sound/song_table.inc | 952 +++---- .../{mus_dan02.mid => mus_abandoned_ship.mid} | Bin ...mus_ooame.mid => mus_abnormal_weather.mid} | Bin ...s_ajito.mid => mus_aqua_magma_hideout.mid} | Bin ...{mus_me_tama.mid => mus_awaken_legend.mid} | Bin .../{mus_b_dome1.mid => mus_b_dome_lobby.mid} | Bin .../midi/{mus_b_tube.mid => mus_b_pike.mid} | Bin .../{mus_pyramid.mid => mus_b_pyramid.mid} | Bin ..._pyramid_top.mid => mus_b_pyramid_top.mid} | Bin sound/songs/midi/mus_b_tower.mid | Bin 8503 -> 11709 bytes sound/songs/midi/mus_b_tower_rs.mid | Bin 0 -> 8503 bytes .../{mus_odamaki.mid => mus_birch_lab.mid} | Bin .../{mus_pcc.mid => mus_c_comm_center.mid} | Bin ...s_suikun.mid => mus_c_vs_legend_beast.mid} | Bin .../{mus_ropeway.mid => mus_cable_car.mid} | Bin .../midi/{mus_kachi22.mid => mus_caught.mid} | Bin .../{mus_dan03.mid => mus_cave_of_origin.mid} | Bin .../{mus_contest0.mid => mus_contest.mid} | Bin ...mus_conlobby.mid => mus_contest_lobby.mid} | Bin ...{mus_con_k.mid => mus_contest_results.mid} | Bin ...mus_con_fan.mid => mus_contest_winner.mid} | Bin .../{mus_thankfor.mid => mus_credits.mid} | Bin .../{mus_hightown.mid => mus_dewford.mid} | Bin .../{mus_aqa_0.mid => mus_encounter_aqua.mid} | Bin ..._boy_sup.mid => mus_encounter_brendan.mid} | Bin ...s_daigo.mid => mus_encounter_champion.mid} | Bin ...koii.mid => mus_encounter_cooltrainer.mid} | Bin ...ennou.mid => mus_encounter_elite_four.mid} | Bin ...s_girleye.mid => mus_encounter_female.mid} | Bin ...s_test.mid => mus_encounter_gentleman.mid} | Bin ...s_syoujoeye.mid => mus_encounter_girl.mid} | Bin ...yasii.mid => mus_encounter_hex_maniac.mid} | Bin ...s_yama_eye.mid => mus_encounter_hiker.mid} | Bin ...er_v.mid => mus_encounter_interviewer.mid} | Bin .../{mus_mgm0.mid => mus_encounter_magma.mid} | Bin ...{mus_boyeye.mid => mus_encounter_male.mid} | Bin ...mus_girl_sup.mid => mus_encounter_may.mid} | Bin ...hageshii.mid => mus_encounter_psychic.mid} | Bin ..._swimeye.mid => mus_encounter_swimmer.mid} | Bin ...mus_hutago.mid => mus_encounter_twins.mid} | Bin .../{mus_rainbow.mid => mus_ever_grande.mid} | Bin .../{mus_shinka.mid => mus_evolution.mid} | Bin ..._me_shinka.mid => mus_evolution_intro.mid} | Bin .../midi/{mus_fanfa5.mid => mus_evolved.mid} | Bin .../{mus_tonekusa.mid => mus_fallarbor.mid} | Bin .../{mus_tsuretek.mid => mus_follow_me.mid} | Bin .../{mus_machi_s3.mid => mus_fortree.mid} | Bin .../{mus_casino.mid => mus_game_corner.mid} | Bin .../midi/{mus_nibi.mid => mus_gsc_pewter.mid} | Bin .../{mus_field13.mid => mus_gsc_route38.mid} | Bin sound/songs/midi/{mus_gim.mid => mus_gym.mid} | Bin .../{mus_dendou.mid => mus_hall_of_fame.mid} | Bin ..._eikou_r.mid => mus_hall_of_fame_room.mid} | Bin .../midi/{mus_me_asa.mid => mus_heal.mid} | Bin .../midi/{mus_event0.mid => mus_help.mid} | Bin .../midi/{mus_demo1.mid => mus_intro.mid} | Bin ...{mus_t_battle.mid => mus_intro_battle.mid} | Bin .../midi/{mus_fanfa1.mid => mus_level_up.mid} | Bin .../midi/{mus_minamo.mid => mus_lilycove.mid} | Bin ...us_bijyutu.mid => mus_lilycove_museum.mid} | Bin ...{mus_test1.mid => mus_link_contest_p1.mid} | Bin ...{mus_test2.mid => mus_link_contest_p2.mid} | Bin ...{mus_test3.mid => mus_link_contest_p3.mid} | Bin ...{mus_test4.mid => mus_link_contest_p4.mid} | Bin .../{mus_mishiro.mid => mus_littleroot.mid} | Bin ...us_tetsuji.mid => mus_littleroot_test.mid} | Bin ...mus_me_wasure.mid => mus_move_deleted.mid} | Bin .../{mus_tozan.mid => mus_mt_chimney.mid} | Bin .../{mus_m_dungon.mid => mus_mt_pyre.mid} | Bin ...s_machupi.mid => mus_mt_pyre_exterior.mid} | Bin ...e_pointget.mid => mus_obtain_b_points.mid} | Bin ...{mus_me_bachi.mid => mus_obtain_badge.mid} | Bin ...mus_me_kinomi.mid => mus_obtain_berry.mid} | Bin .../{mus_fanfa4.mid => mus_obtain_item.mid} | Bin ...me_symbolget.mid => mus_obtain_symbol.mid} | Bin .../{mus_me_waza.mid => mus_obtain_tmhm.mid} | Bin ...us_fune_kan.mid => mus_oceanic_museum.mid} | Bin .../midi/{mus_machi_s4.mid => mus_oldale.mid} | Bin .../{mus_machi_s2.mid => mus_petalburg.mid} | Bin ...{mus_dan01.mid => mus_petalburg_woods.mid} | Bin .../{mus_pokecen.mid => mus_poke_center.mid} | Bin .../{mus_friendly.mid => mus_poke_mart.mid} | Bin ...uu_kourin.mid => mus_rayquaza_appears.mid} | Bin ...re_eye.mid => mus_register_match_call.mid} | Bin ...rg_kinomikui.mid => mus_rg_berry_pick.mid} | Bin ...mus_rg_get_yasei.mid => mus_rg_caught.mid} | Bin ...us_rg_fan6.mid => mus_rg_caught_intro.mid} | Bin ...mus_rg_tamamusi.mid => mus_rg_celadon.mid} | Bin .../{mus_rg_guren.mid => mus_rg_cinnabar.mid} | Bin .../{mus_rg_ending.mid => mus_rg_credits.mid} | Bin ...{mus_rg_fan2.mid => mus_rg_dex_rating.mid} | Bin ...g_shounen.mid => mus_rg_encounter_boy.mid} | Bin ...deoeye.mid => mus_rg_encounter_deoxys.mid} | Bin ...g_shoujo.mid => mus_rg_encounter_girl.mid} | Bin ...ye.mid => mus_rg_encounter_gym_leader.mid} | Bin ..._rival1.mid => mus_rg_encounter_rival.mid} | Bin ...rocket.mid => mus_rg_encounter_rocket.mid} | Bin ...{mus_rg_annai.mid => mus_rg_follow_me.mid} | Bin .../{mus_rg_hanada.mid => mus_rg_fuchsia.mid} | Bin ...mus_rg_slot.mid => mus_rg_game_corner.mid} | Bin ..._rg_titlerog.mid => mus_rg_game_freak.mid} | Bin ..._rg_dendou.mid => mus_rg_hall_of_fame.mid} | Bin .../{mus_rg_kaihuku.mid => mus_rg_heal.mid} | Bin ...mus_rg_demo.mid => mus_rg_intro_fight.mid} | Bin ...mus_rg_purin.mid => mus_rg_jigglypuff.mid} | Bin .../{mus_rg_shion.mid => mus_rg_lavender.mid} | Bin ...mus_rg_otsukimi.mid => mus_rg_mt_moon.mid} | Bin ..._okurimono.mid => mus_rg_mystery_gift.mid} | Bin ...s_rg_network.mid => mus_rg_net_center.mid} | Bin ...g_seibetu.mid => mus_rg_new_game_exit.mid} | Bin ...sousa.mid => mus_rg_new_game_instruct.mid} | Bin ...sekaikan.mid => mus_rg_new_game_intro.mid} | Bin .../{mus_rg_ohkido.mid => mus_rg_oak.mid} | Bin .../{mus_rg_kenkyu.mid => mus_rg_oak_lab.mid} | Bin ...rg_fan5.mid => mus_rg_obtain_key_item.mid} | Bin .../{mus_rg_masara.mid => mus_rg_pallet.mid} | Bin .../{mus_rg_nana123.mid => mus_rg_pewter.mid} | Bin .../{mus_me_rg_photo.mid => mus_rg_photo.mid} | Bin ..._rg_pokecen.mid => mus_rg_poke_center.mid} | Bin ...s_rg_pokefue.mid => mus_rg_poke_flute.mid} | Bin .../{mus_rg_jump.mid => mus_rg_poke_jump.mid} | Bin ..._pokeyashi.mid => mus_rg_poke_mansion.mid} | Bin ...s_rg_p_tower.mid => mus_rg_poke_tower.mid} | Bin ...us_rg_rival2.mid => mus_rg_rival_exit.mid} | Bin ...rg_ajito.mid => mus_rg_rocket_hideout.mid} | Bin .../{mus_rg_load01.mid => mus_rg_route1.mid} | Bin .../{mus_rg_load03.mid => mus_rg_route11.mid} | Bin ...{mus_rg_opening.mid => mus_rg_route24.mid} | Bin .../{mus_rg_load02.mid => mus_rg_route3.mid} | Bin .../{mus_rg_nibi.mid => mus_rg_sevii_123.mid} | Bin ...{mus_rg_nana45.mid => mus_rg_sevii_45.mid} | Bin ...{mus_rg_nana67.mid => mus_rg_sevii_67.mid} | Bin ..._nanadungeon.mid => mus_rg_sevii_cave.mid} | Bin ...nanaiseki.mid => mus_rg_sevii_dungeon.mid} | Bin ...g_nanashima.mid => mus_rg_sevii_route.mid} | Bin .../{mus_rg_shiruhu.mid => mus_rg_silph.mid} | Bin ..._slowmasara.mid => mus_rg_slow_pallet.mid} | Bin ...{mus_rg_santoan.mid => mus_rg_ss_anne.mid} | Bin .../{mus_rg_naminori.mid => mus_rg_surf.mid} | Bin ..._tvnoize.mid => mus_rg_teachy_tv_menu.mid} | Bin ...oshie_tv.mid => mus_rg_teachy_tv_show.mid} | Bin ...g_t_tower.mid => mus_rg_trainer_tower.mid} | Bin ...mus_rg_union.mid => mus_rg_union_room.mid} | Bin ...s_rg_kuchiba.mid => mus_rg_vermillion.mid} | Bin ...chi3.mid => mus_rg_victory_gym_leader.mid} | Bin ...rg_champ_r.mid => mus_rg_victory_road.mid} | Bin ...win_tre.mid => mus_rg_victory_trainer.mid} | Bin ...mus_kachi2.mid => mus_rg_victory_wild.mid} | Bin ..._t_mori.mid => mus_rg_viridian_forest.mid} | Bin ..._rg_vs_last.mid => mus_rg_vs_champion.mid} | Bin ...mus_rg_vs_deo.mid => mus_rg_vs_deoxys.mid} | Bin ...rg_vs_gym.mid => mus_rg_vs_gym_leader.mid} | Bin ...mus_rg_vs_den.mid => mus_rg_vs_legend.mid} | Bin ...us_rg_vs_myu2.mid => mus_rg_vs_mewtwo.mid} | Bin ...s_rg_vs_tore.mid => mus_rg_vs_trainer.mid} | Bin ...mus_rg_vs_yasei.mid => mus_rg_vs_wild.mid} | Bin .../{mus_bd_time.mid => mus_roulette.mid} | Bin .../midi/{mus_dooro1.mid => mus_route101.mid} | Bin .../{mus_nextroad.mid => mus_route104.mid} | Bin .../{mus_dooro_x1.mid => mus_route110.mid} | Bin .../{mus_ashroad.mid => mus_route111.mid} | Bin .../{mus_kazanbai.mid => mus_route113.mid} | Bin .../{mus_granroad.mid => mus_route119.mid} | Bin .../{mus_dooro_x3.mid => mus_route120.mid} | Bin .../{mus_dooro_x4.mid => mus_route122.mid} | Bin .../midi/{mus_gotown.mid => mus_rustboro.mid} | Bin .../{mus_safari.mid => mus_safari_zone.mid} | Bin .../midi/{mus_m_boat.mid => mus_sailing.mid} | Bin sound/songs/midi/mus_sattower.mid | Bin 11709 -> 0 bytes .../midi/{mus_p_school.mid => mus_school.mid} | Bin ...us_maborosi.mid => mus_sealed_chamber.mid} | Bin .../{mus_finecity.mid => mus_slateport.mid} | Bin ...mus_me_b_big.mid => mus_slots_jackpot.mid} | Bin .../{mus_me_b_small.mid => mus_slots_win.mid} | Bin .../{mus_runecity.mid => mus_sootopolis.mid} | Bin .../midi/{mus_naminori.mid => mus_surf.mid} | Bin .../midi/{mus_title3.mid => mus_title.mid} | Bin .../{mus_me_zannen.mid => mus_too_bad.mid} | Bin .../{mus_karakuri.mid => mus_trick_house.mid} | Bin .../{mus_deepdeep.mid => mus_underwater.mid} | Bin .../{mus_gomachi0.mid => mus_verdanturf.mid} | Bin ..._kachi4.mid => mus_victory_aqua_magma.mid} | Bin ...win_gym.mid => mus_victory_gym_leader.mid} | Bin ...{mus_kachi5.mid => mus_victory_league.mid} | Bin .../{mus_c_road.mid => mus_victory_road.mid} | Bin ...mus_kachi1.mid => mus_victory_trainer.mid} | Bin ..._rg_win_yasei.mid => mus_victory_wild.mid} | Bin ...mus_battle31.mid => mus_vs_aqua_magma.mid} | Bin ...tle30.mid => mus_vs_aqua_magma_leader.mid} | Bin .../{mus_battle33.mid => mus_vs_champion.mid} | Bin ...mus_battle38.mid => mus_vs_elite_four.mid} | Bin ...vs_front.mid => mus_vs_frontier_brain.mid} | Bin ...mus_battle32.mid => mus_vs_gym_leader.mid} | Bin ...battle34.mid => mus_vs_kyogre_groudon.mid} | Bin .../{mus_vs_rekku.mid => mus_vs_rayquaza.mid} | Bin .../{mus_battle36.mid => mus_vs_regi.mid} | Bin .../{mus_battle35.mid => mus_vs_rival.mid} | Bin .../{mus_battle20.mid => mus_vs_trainer.mid} | Bin .../{mus_battle27.mid => mus_vs_wild.mid} | Bin ...mus_hideri.mid => mus_weather_groudon.mid} | Bin .../midi/{se_dendou.mid => se_applause.mid} | Bin .../{se_hantei1.mid => se_arena_timeup1.mid} | Bin .../{se_hantei2.mid => se_arena_timeup2.mid} | Bin sound/songs/midi/{se_bowa.mid => se_ball.mid} | Bin .../midi/{se_kon.mid => se_ball_bounce_1.mid} | Bin .../{se_kon2.mid => se_ball_bounce_2.mid} | Bin .../{se_kon3.mid => se_ball_bounce_3.mid} | Bin .../{se_kon4.mid => se_ball_bounce_4.mid} | Bin .../midi/{se_bowa2.mid => se_ball_open.mid} | Bin .../midi/{se_nageru.mid => se_ball_throw.mid} | Bin .../{se_suikomu.mid => se_ball_trade.mid} | Bin .../{se_tb_kon.mid => se_ball_tray_ball.mid} | Bin ...se_tb_start.mid => se_ball_tray_enter.mid} | Bin .../{se_tb_kara.mid => se_ball_tray_exit.mid} | Bin .../{se_fuusen2.mid => se_balloon_blue.mid} | Bin .../{se_fuusen1.mid => se_balloon_red.mid} | Bin .../{se_fuusen3.mid => se_balloon_yellow.mid} | Bin sound/songs/midi/{se_ban.mid => se_bang.mid} | Bin .../{se_moter.mid => se_berry_blender.mid} | Bin .../{se_jitensya.mid => se_bike_bell.mid} | Bin .../{se_jite_pyoko.mid => se_bike_hop.mid} | Bin ...{se_toy_kabe.mid => se_breakable_door.mid} | Bin .../midi/{se_hashi.mid => se_bridge_walk.mid} | Bin .../midi/{se_tk_kasya.mid => se_click.mid} | Bin ...aku2.mid => se_contest_condition_lose.mid} | Bin ...maku_d.mid => se_contest_curtain_fall.mid} | Bin ...maku_u.mid => se_contest_curtain_rise.mid} | Bin .../{se_c_gaji.mid => se_contest_heart.mid} | Bin ..._c_pasi.mid => se_contest_icon_change.mid} | Bin ...se_c_syu.mid => se_contest_icon_clear.mid} | Bin ...e_c_pikon.mid => se_contest_mons_turn.mid} | Bin .../{se_jyuni.mid => se_contest_place.mid} | Bin .../{se_z_search.mid => se_dex_search.mid} | Bin .../midi/{se_pinpon.mid => se_ding_dong.mid} | Bin .../midi/{se_t_ooame.mid => se_downpour.mid} | Bin ...{se_t_ooame_e.mid => se_downpour_stop.mid} | Bin .../midi/{se_kouka_m.mid => se_effective.mid} | Bin .../midi/{se_tamago.mid => se_egg_hatch.mid} | Bin .../midi/{se_elebeta.mid => se_elevator.mid} | Bin .../midi/{se_esuka.mid => se_escalator.mid} | Bin .../songs/midi/{se_kaidan.mid => se_exit.mid} | Bin .../midi/{se_expmax.mid => se_exp_max.mid} | Bin .../midi/{se_hazure.mid => se_failure.mid} | Bin .../midi/{se_poke_dead.mid => se_faint.mid} | Bin .../midi/{se_ru_hyuu.mid => se_fall.mid} | Bin .../midi/{se_doku.mid => se_field_poison.mid} | Bin .../songs/midi/{se_nigeru.mid => se_flee.mid} | Bin .../{se_bidoro.mid => se_glass_flute.mid} | Bin .../{se_ru_gasyan.mid => se_ice_break.mid} | Bin .../midi/{se_ru_bari.mid => se_ice_crack.mid} | Bin .../{se_ru_gashin.mid => se_ice_stairs.mid} | Bin .../{se_op_basyu.mid => se_intro_blast.mid} | Bin .../midi/{se_daugi.mid => se_itemfinder.mid} | Bin ..._zuzuzu.mid => se_lavaridge_fall_warp.mid} | Bin .../songs/midi/{se_dansa.mid => se_ledge.mid} | Bin .../midi/{se_hinsi.mid => se_low_health.mid} | Bin .../songs/midi/{se_w020.mid => se_m_bind.mid} | Bin .../{se_w004.mid => se_m_comet_punch.mid} | Bin .../songs/midi/{se_w015.mid => se_m_cut.mid} | Bin .../{se_w003.mid => se_m_double_slap.mid} | Bin .../midi/{se_w007.mid => se_m_fire_punch.mid} | Bin .../songs/midi/{se_w019.mid => se_m_fly.mid} | Bin .../songs/midi/{se_w016.mid => se_m_gust.mid} | Bin .../midi/{se_w016b.mid => se_m_gust2.mid} | Bin .../midi/{se_w029.mid => se_m_headbutt.mid} | Bin .../{se_w030.mid => se_m_horn_attack.mid} | Bin .../midi/{se_w026.mid => se_m_jump_kick.mid} | Bin .../songs/midi/{se_w043.mid => se_m_leer.mid} | Bin .../midi/{se_w025.mid => se_m_mega_kick.mid} | Bin .../{se_w025b.mid => se_m_mega_kick2.mid} | Bin .../midi/{se_w006.mid => se_m_pay_day.mid} | Bin .../midi/{se_w013.mid => se_m_razor_wind.mid} | Bin .../{se_w013b.mid => se_m_razor_wind2.mid} | Bin .../{se_w028.mid => se_m_sand_attack.mid} | Bin .../midi/{se_w010.mid => se_m_scratch.mid} | Bin .../{se_w014.mid => se_m_swords_dance.mid} | Bin .../midi/{se_w039.mid => se_m_tail_whip.mid} | Bin .../midi/{se_w036.mid => se_m_take_down.mid} | Bin .../midi/{se_w011.mid => se_m_vicegrip.mid} | Bin .../{se_w017.mid => se_m_wing_attack.mid} | Bin .../{se_toy_dango.mid => se_mud_ball.mid} | Bin .../midi/{se_bt_start.mid => se_mugshot.mid} | Bin .../{se_kouka_l.mid => se_not_effective.mid} | Bin .../midi/{se_toy_a.mid => se_note_a.mid} | Bin .../midi/{se_toy_b.mid => se_note_b.mid} | Bin .../midi/{se_toy_c.mid => se_note_c.mid} | Bin .../{se_toy_c1.mid => se_note_c_high.mid} | Bin .../midi/{se_toy_d.mid => se_note_d.mid} | Bin .../midi/{se_toy_e.mid => se_note_e.mid} | Bin .../midi/{se_toy_f.mid => se_note_f.mid} | Bin .../midi/{se_toy_g.mid => se_note_g.mid} | Bin sound/songs/midi/{se_tama.mid => se_orb.mid} | Bin ...curtain1.mid => se_pike_curtain_close.mid} | Bin ...e_curtain.mid => se_pike_curtain_open.mid} | Bin .../{se_toreeye.mid => se_pokenav_call.mid} | Bin ...{se_toreoff.mid => se_pokenav_hang_up.mid} | Bin .../{se_pn_off.mid => se_pokenav_off.mid} | Bin .../midi/{se_pn_on.mid => se_pokenav_on.mid} | Bin .../songs/midi/{se_mizu.mid => se_puddle.mid} | Bin .../midi/{se_t_koame.mid => se_rain.mid} | Bin .../{se_t_koame_e.mid => se_rain_stop.mid} | Bin .../midi/{se_tu_saa.mid => se_repel.mid} | Bin .../{se_rg_bag1.mid => se_rg_bag_cursor.mid} | Bin .../{se_rg_bag2.mid => se_rg_bag_pocket.mid} | Bin ...se_rg_getting.mid => se_rg_ball_click.mid} | Bin .../{se_rg_card1.mid => se_rg_card_flip.mid} | Bin ...e_rg_card2.mid => se_rg_card_flipping.mid} | Bin .../{se_rg_card3.mid => se_rg_card_open.mid} | Bin ...se_rg_deomov.mid => se_rg_deoxys_move.mid} | Bin .../midi/{se_rg_w_door.mid => se_rg_door.mid} | Bin ...se_rg_help_cl.mid => se_rg_help_close.mid} | Bin ...se_rg_help_ng.mid => se_rg_help_error.mid} | Bin ...{se_rg_help_op.mid => se_rg_help_open.mid} | Bin ...wamiss.mid => se_rg_poke_jump_failure.mid} | Bin ...ellent.mid => se_rg_poke_jump_success.mid} | Bin ...e_rg_kiteki.mid => se_rg_ss_anne_horn.mid} | Bin .../{se_hi_turun.mid => se_rotating_gate.mid} | Bin .../{se_tamakoro.mid => se_roulette_ball.mid} | Bin ...e_tamakoro_e.mid => se_roulette_ball2.mid} | Bin .../midi/{se_reapoke.mid => se_shiny.mid} | Bin .../midi/{se_naminori.mid => se_ship.mid} | Bin sound/songs/midi/{se_regi.mid => se_shop.mid} | Bin .../{se_jido_doa.mid => se_sliding_door.mid} | Bin .../midi/{se_seikai.mid => se_success.mid} | Bin .../{se_ussoki.mid => se_sudowoodo_shake.mid} | Bin ...{se_kouka_h.mid => se_super_effective.mid} | Bin .../midi/{se_mu_pachi.mid => se_switch.mid} | Bin ..._basabasa.mid => se_taillow_wing_flap.mid} | Bin .../midi/{se_t_kami.mid => se_thunder.mid} | Bin .../midi/{se_t_kami2.mid => se_thunder2.mid} | Bin .../{se_t_ame.mid => se_thunderstorm.mid} | Bin ...e_t_ame_e.mid => se_thunderstorm_stop.mid} | Bin .../{se_track_door.mid => se_truck_door.mid} | Bin .../{se_track_move.mid => se_truck_move.mid} | Bin .../{se_track_stop.mid => se_truck_stop.mid} | Bin ...se_track_haiki.mid => se_truck_unload.mid} | Bin .../midi/{se_ki_gasyan.mid => se_unlock.mid} | Bin .../midi/{se_kaifuku.mid => se_use_item.mid} | Bin .../midi/{se_jihanki.mid => se_vend.mid} | Bin .../midi/{se_tk_warpin.mid => se_warp_in.mid} | Bin .../{se_tk_warpout.mid => se_warp_out.mid} | Bin sound/songs/{se_z_page.s => se_dex_page.s} | 36 +- sound/songs/se_dex_scroll.s | 46 + sound/songs/{se_w071.s => se_m_absorb.s} | 50 +- sound/songs/{se_w071b.s => se_m_absorb_2.s} | 44 +- sound/songs/{se_w151.s => se_m_acid_armor.s} | 36 +- sound/songs/{se_w213.s => se_m_attract.s} | 44 +- sound/songs/{se_w213b.s => se_m_attract2.s} | 44 +- sound/songs/se_m_barrier.s | 276 +++ sound/songs/{se_w226.s => se_m_baton_pass.s} | 68 +- sound/songs/se_m_belly_drum.s | 72 + sound/songs/{se_w044.s => se_m_bite.s} | 44 +- sound/songs/{se_w059.s => se_m_blizzard.s} | 50 +- sound/songs/se_m_blizzard2.s | 72 + sound/songs/{se_w155.s => se_m_bonemerang.s} | 36 +- sound/songs/{se_w280.s => se_m_brick_break.s} | 44 +- sound/songs/{se_w145.s => se_m_bubble.s} | 36 +- sound/songs/se_m_bubble2.s | 60 + sound/songs/{se_w145c.s => se_m_bubble3.s} | 36 +- sound/songs/{se_w062.s => se_m_bubble_beam.s} | 72 +- sound/songs/se_m_bubble_beam2.s | 131 + sound/songs/{se_w268.s => se_m_charge.s} | 64 +- sound/songs/{se_w204.s => se_m_charm.s} | 58 +- sound/songs/{se_w109.s => se_m_confuse_ray.s} | 36 +- .../songs/{se_w322.s => se_m_cosmic_power.s} | 44 +- sound/songs/{se_w152.s => se_m_crabhammer.s} | 36 +- sound/songs/{se_w197.s => se_m_detect.s} | 36 +- sound/songs/{se_w091.s => se_m_dig.s} | 36 +- sound/songs/{se_w291.s => se_m_dive.s} | 60 +- sound/songs/se_m_dizzy_punch.s | 79 + sound/songs/se_m_double_team.s | 71 + sound/songs/se_m_dragon_rage.s | 150 ++ sound/songs/{se_w089.s => se_m_earthquake.s} | 152 +- sound/songs/se_m_ember.s | 61 + sound/songs/{se_w227.s => se_m_encore.s} | 36 +- sound/songs/{se_w227b.s => se_m_encore2.s} | 84 +- sound/songs/{se_w153.s => se_m_explosion.s} | 50 +- .../songs/{se_w185.s => se_m_faint_attack.s} | 36 +- sound/songs/se_m_flame_wheel.s | 124 + sound/songs/se_m_flame_wheel2.s | 99 + .../songs/{se_w053.s => se_m_flamethrower.s} | 76 +- sound/songs/se_m_flatter.s | 67 + sound/songs/{se_w202.s => se_m_giga_drain.s} | 36 +- .../songs/{se_w320.s => se_m_grasswhistle.s} | 60 +- sound/songs/{se_w258.s => se_m_hail.s} | 44 +- sound/songs/{se_w231.s => se_m_harden.s} | 44 +- sound/songs/{se_w114.s => se_m_haze.s} | 140 +- sound/songs/{se_w215.s => se_m_heal_bell.s} | 36 +- sound/songs/{se_w257.s => se_m_heat_wave.s} | 104 +- sound/songs/{se_w056.s => se_m_hydro_pump.s} | 72 +- sound/songs/{se_w063.s => se_m_hyper_beam.s} | 48 +- .../songs/{se_w063b.s => se_m_hyper_beam2.s} | 48 +- sound/songs/{se_w196.s => se_m_icy_wind.s} | 44 +- sound/songs/{se_w122.s => se_m_lick.s} | 52 +- sound/songs/{se_w199.s => se_m_lock_on.s} | 36 +- sound/songs/{se_w118.s => se_m_metronome.s} | 36 +- sound/songs/{se_w208.s => se_m_milk_drink.s} | 66 +- sound/songs/{se_w107.s => se_m_minimize.s} | 52 +- sound/songs/{se_w054.s => se_m_mist.s} | 60 +- sound/songs/{se_w236.s => se_m_moonlight.s} | 76 +- sound/songs/{se_w234.s => se_m_morning_sun.s} | 44 +- sound/songs/{se_w171.s => se_m_nightmare.s} | 44 +- sound/songs/se_m_perish_song.s | 221 ++ sound/songs/{se_w080.s => se_m_petal_dance.s} | 44 +- sound/songs/se_m_poison_powder.s | 58 + sound/songs/{se_w060.s => se_m_psybeam.s} | 84 +- sound/songs/{se_w060b.s => se_m_psybeam2.s} | 106 +- sound/songs/se_m_rain_dance.s | 116 + sound/songs/{se_w115.s => se_m_reflect.s} | 164 +- sound/songs/{se_w179.s => se_m_reversal.s} | 116 +- sound/songs/{se_w088.s => se_m_rock_throw.s} | 36 +- sound/songs/se_m_sacred_fire.s | 105 + sound/songs/se_m_sacred_fire2.s | 180 ++ sound/songs/{se_w328.s => se_m_sand_tomb.s} | 70 +- sound/songs/{se_w201.s => se_m_sandstorm.s} | 84 +- sound/songs/{se_w103.s => se_m_screech.s} | 62 +- sound/songs/se_m_self_destruct.s | 74 + sound/songs/{se_w047.s => se_m_sing.s} | 120 +- sound/songs/se_m_sketch.s | 68 + sound/songs/se_m_sky_uppercut.s | 103 + sound/songs/{se_w173.s => se_m_snore.s} | 68 +- sound/songs/{se_w076.s => se_m_solar_beam.s} | 58 +- sound/songs/{se_w255.s => se_m_spit_up.s} | 44 +- .../{se_w287b.s => se_m_stat_decrease.s} | 44 +- .../songs/{se_w287.s => se_m_stat_increase.s} | 44 +- sound/songs/{se_w070.s => se_m_strength.s} | 44 +- sound/songs/{se_w081.s => se_m_string_shot.s} | 48 +- .../songs/{se_w081b.s => se_m_string_shot2.s} | 50 +- sound/songs/{se_w048.s => se_m_supersonic.s} | 80 +- sound/songs/{se_w057.s => se_m_surf.s} | 58 +- sound/songs/se_m_swagger.s | 77 + sound/songs/{se_w207b.s => se_m_swagger2.s} | 36 +- sound/songs/{se_w230.s => se_m_sweet_scent.s} | 106 +- sound/songs/{se_w129.s => se_m_swift.s} | 66 +- .../songs/{se_w298.s => se_m_teeter_dance.s} | 44 +- sound/songs/{se_w100.s => se_m_teleport.s} | 52 +- .../songs/{se_w086.s => se_m_thunder_wave.s} | 54 +- sound/songs/{se_w085.s => se_m_thunderbolt.s} | 54 +- .../songs/{se_w085b.s => se_m_thunderbolt2.s} | 44 +- sound/songs/{se_w092.s => se_m_toxic.s} | 36 +- sound/songs/{se_w161.s => se_m_tri_attack.s} | 62 +- .../songs/{se_w161b.s => se_m_tri_attack2.s} | 52 +- sound/songs/{se_w239.s => se_m_twister.s} | 96 +- sound/songs/{se_w253.s => se_m_uproar.s} | 52 +- sound/songs/se_m_vital_throw.s | 75 + .../songs/{se_w233b.s => se_m_vital_throw2.s} | 52 +- sound/songs/{se_w127.s => se_m_waterfall.s} | 64 +- sound/songs/{se_w250.s => se_m_whirlpool.s} | 50 +- sound/songs/{se_w281.s => se_m_yawn.s} | 56 +- sound/songs/se_w052.s | 61 - sound/songs/se_w059b.s | 72 - sound/songs/se_w062b.s | 131 - sound/songs/se_w077.s | 58 - sound/songs/se_w082.s | 150 -- sound/songs/se_w104.s | 71 - sound/songs/se_w112.s | 276 --- sound/songs/se_w120.s | 74 - sound/songs/se_w145b.s | 60 - sound/songs/se_w146.s | 79 - sound/songs/se_w166.s | 68 - sound/songs/se_w172.s | 124 - sound/songs/se_w172b.s | 99 - sound/songs/se_w187.s | 72 - sound/songs/se_w195.s | 221 -- sound/songs/se_w207.s | 77 - sound/songs/se_w221.s | 105 - sound/songs/se_w221b.s | 180 -- sound/songs/se_w233.s | 75 - sound/songs/se_w240.s | 116 - sound/songs/se_w260.s | 67 - sound/songs/se_w327.s | 103 - sound/songs/se_z_scroll.s | 46 - src/agb_flash.c | 2 +- src/battle_anim_effects_1.c | 10 +- src/battle_anim_effects_2.c | 6 +- src/battle_anim_effects_3.c | 20 +- src/battle_anim_electric.c | 2 +- src/battle_anim_fire.c | 2 +- src/battle_anim_ghost.c | 4 +- src/battle_anim_psychic.c | 2 +- src/battle_anim_rock.c | 4 +- src/battle_anim_special.c | 24 +- src/battle_anim_utility_funcs.c | 4 +- src/battle_arena.c | 8 +- src/battle_bg.c | 2 +- src/battle_controller_link_opponent.c | 2 +- src/battle_controller_link_partner.c | 2 +- src/battle_controller_opponent.c | 2 +- src/battle_controller_player.c | 8 +- src/battle_controller_player_partner.c | 2 +- src/battle_controller_recorded_opponent.c | 2 +- src/battle_controller_recorded_player.c | 2 +- src/battle_gfx_sfx_util.c | 8 +- src/battle_interface.c | 6 +- src/battle_main.c | 20 +- src/battle_message.c | 22 +- src/battle_script_commands.c | 14 +- src/battle_setup.c | 44 +- src/battle_transition.c | 2 +- src/berry_blender.c | 22 +- src/berry_crush.c | 18 +- src/bike.c | 2 +- src/braille_puzzles.c | 10 +- src/cable_car.c | 2 +- src/cable_club.c | 8 +- src/contest.c | 44 +- src/contest_util.c | 6 +- src/credits.c | 2 +- src/decoration.c | 2 +- src/dodrio_berry_picking.c | 38 +- src/easy_chat.c | 4 +- src/egg_hatch.c | 16 +- src/ereader_screen.c | 4 +- src/evolution_graphics.c | 10 +- src/evolution_scene.c | 20 +- src/field_control_avatar.c | 4 +- src/field_door.c | 4 +- src/field_effect.c | 30 +- src/field_effect_helpers.c | 4 +- src/field_player_avatar.c | 16 +- src/field_screen_effect.c | 18 +- src/field_special_scene.c | 8 +- src/field_specials.c | 16 +- src/field_tasks.c | 8 +- src/field_weather.c | 12 +- src/field_weather_effect.c | 10 +- src/fldeff_cut.c | 4 +- src/fldeff_flash.c | 2 +- src/fldeff_misc.c | 38 +- src/fldeff_rocksmash.c | 2 +- src/fldeff_softboiled.c | 4 +- src/fldeff_sweetscent.c | 2 +- src/frontier_pass.c | 6 +- src/hall_of_fame.c | 4 +- src/intro.c | 6 +- src/item_menu.c | 4 +- src/item_use.c | 8 +- src/main_menu.c | 2 +- src/match_call.c | 4 +- src/minigame_countdown.c | 12 +- src/mirage_tower.c | 2 +- src/move_relearner.c | 4 +- src/mystery_gift.c | 4 +- src/naming_screen.c | 2 +- src/overworld.c | 36 +- src/party_menu.c | 30 +- src/pokeball.c | 20 +- src/pokedex.c | 42 +- src/pokedex_area_screen.c | 2 +- src/pokemon.c | 28 +- src/pokemon_jump.c | 12 +- src/pokemon_storage_system.c | 18 +- src/pokemon_summary_screen.c | 4 +- src/pokenav_main_menu.c | 2 +- src/pokenav_match_call_1.c | 2 +- src/pokenav_match_call_2.c | 4 +- src/pokenav_menu_handler_1.c | 6 +- src/pokenav_menu_handler_2.c | 4 +- src/rayquaza_scene.c | 18 +- src/record_mixing.c | 4 +- src/reset_rtc_screen.c | 2 +- src/rotating_gate.c | 4 +- src/roulette.c | 32 +- src/shop.c | 2 +- src/slot_machine.c | 22 +- src/sound.c | 36 +- src/strings.c | 6 +- src/title_screen.c | 2 +- src/trade.c | 42 +- src/trainer_card.c | 12 +- src/union_room.c | 10 +- 1178 files changed, 10482 insertions(+), 10477 deletions(-) rename sound/songs/midi/{mus_dan02.mid => mus_abandoned_ship.mid} (100%) rename sound/songs/midi/{mus_ooame.mid => mus_abnormal_weather.mid} (100%) rename sound/songs/midi/{mus_ajito.mid => mus_aqua_magma_hideout.mid} (100%) rename sound/songs/midi/{mus_me_tama.mid => mus_awaken_legend.mid} (100%) rename sound/songs/midi/{mus_b_dome1.mid => mus_b_dome_lobby.mid} (100%) rename sound/songs/midi/{mus_b_tube.mid => mus_b_pike.mid} (100%) rename sound/songs/midi/{mus_pyramid.mid => mus_b_pyramid.mid} (100%) rename sound/songs/midi/{mus_pyramid_top.mid => mus_b_pyramid_top.mid} (100%) create mode 100644 sound/songs/midi/mus_b_tower_rs.mid rename sound/songs/midi/{mus_odamaki.mid => mus_birch_lab.mid} (100%) rename sound/songs/midi/{mus_pcc.mid => mus_c_comm_center.mid} (100%) rename sound/songs/midi/{mus_suikun.mid => mus_c_vs_legend_beast.mid} (100%) rename sound/songs/midi/{mus_ropeway.mid => mus_cable_car.mid} (100%) rename sound/songs/midi/{mus_kachi22.mid => mus_caught.mid} (100%) rename sound/songs/midi/{mus_dan03.mid => mus_cave_of_origin.mid} (100%) rename sound/songs/midi/{mus_contest0.mid => mus_contest.mid} (100%) rename sound/songs/midi/{mus_conlobby.mid => mus_contest_lobby.mid} (100%) rename sound/songs/midi/{mus_con_k.mid => mus_contest_results.mid} (100%) rename sound/songs/midi/{mus_con_fan.mid => mus_contest_winner.mid} (100%) rename sound/songs/midi/{mus_thankfor.mid => mus_credits.mid} (100%) rename sound/songs/midi/{mus_hightown.mid => mus_dewford.mid} (100%) rename sound/songs/midi/{mus_aqa_0.mid => mus_encounter_aqua.mid} (100%) rename sound/songs/midi/{mus_boy_sup.mid => mus_encounter_brendan.mid} (100%) rename sound/songs/midi/{mus_daigo.mid => mus_encounter_champion.mid} (100%) rename sound/songs/midi/{mus_kakkoii.mid => mus_encounter_cooltrainer.mid} (100%) rename sound/songs/midi/{mus_sitennou.mid => mus_encounter_elite_four.mid} (100%) rename sound/songs/midi/{mus_girleye.mid => mus_encounter_female.mid} (100%) rename sound/songs/midi/{mus_test.mid => mus_encounter_gentleman.mid} (100%) rename sound/songs/midi/{mus_syoujoeye.mid => mus_encounter_girl.mid} (100%) rename sound/songs/midi/{mus_ayasii.mid => mus_encounter_hex_maniac.mid} (100%) rename sound/songs/midi/{mus_yama_eye.mid => mus_encounter_hiker.mid} (100%) rename sound/songs/midi/{mus_inter_v.mid => mus_encounter_interviewer.mid} (100%) rename sound/songs/midi/{mus_mgm0.mid => mus_encounter_magma.mid} (100%) rename sound/songs/midi/{mus_boyeye.mid => mus_encounter_male.mid} (100%) rename sound/songs/midi/{mus_girl_sup.mid => mus_encounter_may.mid} (100%) rename sound/songs/midi/{mus_hageshii.mid => mus_encounter_psychic.mid} (100%) rename sound/songs/midi/{mus_swimeye.mid => mus_encounter_swimmer.mid} (100%) rename sound/songs/midi/{mus_hutago.mid => mus_encounter_twins.mid} (100%) rename sound/songs/midi/{mus_rainbow.mid => mus_ever_grande.mid} (100%) rename sound/songs/midi/{mus_shinka.mid => mus_evolution.mid} (100%) rename sound/songs/midi/{mus_me_shinka.mid => mus_evolution_intro.mid} (100%) rename sound/songs/midi/{mus_fanfa5.mid => mus_evolved.mid} (100%) rename sound/songs/midi/{mus_tonekusa.mid => mus_fallarbor.mid} (100%) rename sound/songs/midi/{mus_tsuretek.mid => mus_follow_me.mid} (100%) rename sound/songs/midi/{mus_machi_s3.mid => mus_fortree.mid} (100%) rename sound/songs/midi/{mus_casino.mid => mus_game_corner.mid} (100%) rename sound/songs/midi/{mus_nibi.mid => mus_gsc_pewter.mid} (100%) rename sound/songs/midi/{mus_field13.mid => mus_gsc_route38.mid} (100%) rename sound/songs/midi/{mus_gim.mid => mus_gym.mid} (100%) rename sound/songs/midi/{mus_dendou.mid => mus_hall_of_fame.mid} (100%) rename sound/songs/midi/{mus_eikou_r.mid => mus_hall_of_fame_room.mid} (100%) rename sound/songs/midi/{mus_me_asa.mid => mus_heal.mid} (100%) rename sound/songs/midi/{mus_event0.mid => mus_help.mid} (100%) rename sound/songs/midi/{mus_demo1.mid => mus_intro.mid} (100%) rename sound/songs/midi/{mus_t_battle.mid => mus_intro_battle.mid} (100%) rename sound/songs/midi/{mus_fanfa1.mid => mus_level_up.mid} (100%) rename sound/songs/midi/{mus_minamo.mid => mus_lilycove.mid} (100%) rename sound/songs/midi/{mus_bijyutu.mid => mus_lilycove_museum.mid} (100%) rename sound/songs/midi/{mus_test1.mid => mus_link_contest_p1.mid} (100%) rename sound/songs/midi/{mus_test2.mid => mus_link_contest_p2.mid} (100%) rename sound/songs/midi/{mus_test3.mid => mus_link_contest_p3.mid} (100%) rename sound/songs/midi/{mus_test4.mid => mus_link_contest_p4.mid} (100%) rename sound/songs/midi/{mus_mishiro.mid => mus_littleroot.mid} (100%) rename sound/songs/midi/{mus_tetsuji.mid => mus_littleroot_test.mid} (100%) rename sound/songs/midi/{mus_me_wasure.mid => mus_move_deleted.mid} (100%) rename sound/songs/midi/{mus_tozan.mid => mus_mt_chimney.mid} (100%) rename sound/songs/midi/{mus_m_dungon.mid => mus_mt_pyre.mid} (100%) rename sound/songs/midi/{mus_machupi.mid => mus_mt_pyre_exterior.mid} (100%) rename sound/songs/midi/{mus_me_pointget.mid => mus_obtain_b_points.mid} (100%) rename sound/songs/midi/{mus_me_bachi.mid => mus_obtain_badge.mid} (100%) rename sound/songs/midi/{mus_me_kinomi.mid => mus_obtain_berry.mid} (100%) rename sound/songs/midi/{mus_fanfa4.mid => mus_obtain_item.mid} (100%) rename sound/songs/midi/{mus_me_symbolget.mid => mus_obtain_symbol.mid} (100%) rename sound/songs/midi/{mus_me_waza.mid => mus_obtain_tmhm.mid} (100%) rename sound/songs/midi/{mus_fune_kan.mid => mus_oceanic_museum.mid} (100%) rename sound/songs/midi/{mus_machi_s4.mid => mus_oldale.mid} (100%) rename sound/songs/midi/{mus_machi_s2.mid => mus_petalburg.mid} (100%) rename sound/songs/midi/{mus_dan01.mid => mus_petalburg_woods.mid} (100%) rename sound/songs/midi/{mus_pokecen.mid => mus_poke_center.mid} (100%) rename sound/songs/midi/{mus_friendly.mid => mus_poke_mart.mid} (100%) rename sound/songs/midi/{mus_rekkuu_kourin.mid => mus_rayquaza_appears.mid} (100%) rename sound/songs/midi/{mus_me_tore_eye.mid => mus_register_match_call.mid} (100%) rename sound/songs/midi/{mus_rg_kinomikui.mid => mus_rg_berry_pick.mid} (100%) rename sound/songs/midi/{mus_rg_get_yasei.mid => mus_rg_caught.mid} (100%) rename sound/songs/midi/{mus_rg_fan6.mid => mus_rg_caught_intro.mid} (100%) rename sound/songs/midi/{mus_rg_tamamusi.mid => mus_rg_celadon.mid} (100%) rename sound/songs/midi/{mus_rg_guren.mid => mus_rg_cinnabar.mid} (100%) rename sound/songs/midi/{mus_rg_ending.mid => mus_rg_credits.mid} (100%) rename sound/songs/midi/{mus_rg_fan2.mid => mus_rg_dex_rating.mid} (100%) rename sound/songs/midi/{mus_rg_shounen.mid => mus_rg_encounter_boy.mid} (100%) rename sound/songs/midi/{mus_rg_deoeye.mid => mus_rg_encounter_deoxys.mid} (100%) rename sound/songs/midi/{mus_rg_shoujo.mid => mus_rg_encounter_girl.mid} (100%) rename sound/songs/midi/{mus_rg_exeye.mid => mus_rg_encounter_gym_leader.mid} (100%) rename sound/songs/midi/{mus_rg_rival1.mid => mus_rg_encounter_rival.mid} (100%) rename sound/songs/midi/{mus_rg_rocket.mid => mus_rg_encounter_rocket.mid} (100%) rename sound/songs/midi/{mus_rg_annai.mid => mus_rg_follow_me.mid} (100%) rename sound/songs/midi/{mus_rg_hanada.mid => mus_rg_fuchsia.mid} (100%) rename sound/songs/midi/{mus_rg_slot.mid => mus_rg_game_corner.mid} (100%) rename sound/songs/midi/{mus_rg_titlerog.mid => mus_rg_game_freak.mid} (100%) rename sound/songs/midi/{mus_rg_dendou.mid => mus_rg_hall_of_fame.mid} (100%) rename sound/songs/midi/{mus_rg_kaihuku.mid => mus_rg_heal.mid} (100%) rename sound/songs/midi/{mus_rg_demo.mid => mus_rg_intro_fight.mid} (100%) rename sound/songs/midi/{mus_rg_purin.mid => mus_rg_jigglypuff.mid} (100%) rename sound/songs/midi/{mus_rg_shion.mid => mus_rg_lavender.mid} (100%) rename sound/songs/midi/{mus_rg_otsukimi.mid => mus_rg_mt_moon.mid} (100%) rename sound/songs/midi/{mus_rg_okurimono.mid => mus_rg_mystery_gift.mid} (100%) rename sound/songs/midi/{mus_rg_network.mid => mus_rg_net_center.mid} (100%) rename sound/songs/midi/{mus_rg_seibetu.mid => mus_rg_new_game_exit.mid} (100%) rename sound/songs/midi/{mus_rg_sousa.mid => mus_rg_new_game_instruct.mid} (100%) rename sound/songs/midi/{mus_rg_sekaikan.mid => mus_rg_new_game_intro.mid} (100%) rename sound/songs/midi/{mus_rg_ohkido.mid => mus_rg_oak.mid} (100%) rename sound/songs/midi/{mus_rg_kenkyu.mid => mus_rg_oak_lab.mid} (100%) rename sound/songs/midi/{mus_rg_fan5.mid => mus_rg_obtain_key_item.mid} (100%) rename sound/songs/midi/{mus_rg_masara.mid => mus_rg_pallet.mid} (100%) rename sound/songs/midi/{mus_rg_nana123.mid => mus_rg_pewter.mid} (100%) rename sound/songs/midi/{mus_me_rg_photo.mid => mus_rg_photo.mid} (100%) rename sound/songs/midi/{mus_rg_pokecen.mid => mus_rg_poke_center.mid} (100%) rename sound/songs/midi/{mus_rg_pokefue.mid => mus_rg_poke_flute.mid} (100%) rename sound/songs/midi/{mus_rg_jump.mid => mus_rg_poke_jump.mid} (100%) rename sound/songs/midi/{mus_rg_pokeyashi.mid => mus_rg_poke_mansion.mid} (100%) rename sound/songs/midi/{mus_rg_p_tower.mid => mus_rg_poke_tower.mid} (100%) rename sound/songs/midi/{mus_rg_rival2.mid => mus_rg_rival_exit.mid} (100%) rename sound/songs/midi/{mus_rg_ajito.mid => mus_rg_rocket_hideout.mid} (100%) rename sound/songs/midi/{mus_rg_load01.mid => mus_rg_route1.mid} (100%) rename sound/songs/midi/{mus_rg_load03.mid => mus_rg_route11.mid} (100%) rename sound/songs/midi/{mus_rg_opening.mid => mus_rg_route24.mid} (100%) rename sound/songs/midi/{mus_rg_load02.mid => mus_rg_route3.mid} (100%) rename sound/songs/midi/{mus_rg_nibi.mid => mus_rg_sevii_123.mid} (100%) rename sound/songs/midi/{mus_rg_nana45.mid => mus_rg_sevii_45.mid} (100%) rename sound/songs/midi/{mus_rg_nana67.mid => mus_rg_sevii_67.mid} (100%) rename sound/songs/midi/{mus_rg_nanadungeon.mid => mus_rg_sevii_cave.mid} (100%) rename sound/songs/midi/{mus_rg_nanaiseki.mid => mus_rg_sevii_dungeon.mid} (100%) rename sound/songs/midi/{mus_rg_nanashima.mid => mus_rg_sevii_route.mid} (100%) rename sound/songs/midi/{mus_rg_shiruhu.mid => mus_rg_silph.mid} (100%) rename sound/songs/midi/{mus_rg_slowmasara.mid => mus_rg_slow_pallet.mid} (100%) rename sound/songs/midi/{mus_rg_santoan.mid => mus_rg_ss_anne.mid} (100%) rename sound/songs/midi/{mus_rg_naminori.mid => mus_rg_surf.mid} (100%) rename sound/songs/midi/{mus_rg_tvnoize.mid => mus_rg_teachy_tv_menu.mid} (100%) rename sound/songs/midi/{mus_rg_oshie_tv.mid => mus_rg_teachy_tv_show.mid} (100%) rename sound/songs/midi/{mus_rg_t_tower.mid => mus_rg_trainer_tower.mid} (100%) rename sound/songs/midi/{mus_rg_union.mid => mus_rg_union_room.mid} (100%) rename sound/songs/midi/{mus_rg_kuchiba.mid => mus_rg_vermillion.mid} (100%) rename sound/songs/midi/{mus_kachi3.mid => mus_rg_victory_gym_leader.mid} (100%) rename sound/songs/midi/{mus_rg_champ_r.mid => mus_rg_victory_road.mid} (100%) rename sound/songs/midi/{mus_rg_win_tre.mid => mus_rg_victory_trainer.mid} (100%) rename sound/songs/midi/{mus_kachi2.mid => mus_rg_victory_wild.mid} (100%) rename sound/songs/midi/{mus_rg_t_mori.mid => mus_rg_viridian_forest.mid} (100%) rename sound/songs/midi/{mus_rg_vs_last.mid => mus_rg_vs_champion.mid} (100%) rename sound/songs/midi/{mus_rg_vs_deo.mid => mus_rg_vs_deoxys.mid} (100%) rename sound/songs/midi/{mus_rg_vs_gym.mid => mus_rg_vs_gym_leader.mid} (100%) rename sound/songs/midi/{mus_rg_vs_den.mid => mus_rg_vs_legend.mid} (100%) rename sound/songs/midi/{mus_rg_vs_myu2.mid => mus_rg_vs_mewtwo.mid} (100%) rename sound/songs/midi/{mus_rg_vs_tore.mid => mus_rg_vs_trainer.mid} (100%) rename sound/songs/midi/{mus_rg_vs_yasei.mid => mus_rg_vs_wild.mid} (100%) rename sound/songs/midi/{mus_bd_time.mid => mus_roulette.mid} (100%) rename sound/songs/midi/{mus_dooro1.mid => mus_route101.mid} (100%) rename sound/songs/midi/{mus_nextroad.mid => mus_route104.mid} (100%) rename sound/songs/midi/{mus_dooro_x1.mid => mus_route110.mid} (100%) rename sound/songs/midi/{mus_ashroad.mid => mus_route111.mid} (100%) rename sound/songs/midi/{mus_kazanbai.mid => mus_route113.mid} (100%) rename sound/songs/midi/{mus_granroad.mid => mus_route119.mid} (100%) rename sound/songs/midi/{mus_dooro_x3.mid => mus_route120.mid} (100%) rename sound/songs/midi/{mus_dooro_x4.mid => mus_route122.mid} (100%) rename sound/songs/midi/{mus_gotown.mid => mus_rustboro.mid} (100%) rename sound/songs/midi/{mus_safari.mid => mus_safari_zone.mid} (100%) rename sound/songs/midi/{mus_m_boat.mid => mus_sailing.mid} (100%) delete mode 100644 sound/songs/midi/mus_sattower.mid rename sound/songs/midi/{mus_p_school.mid => mus_school.mid} (100%) rename sound/songs/midi/{mus_maborosi.mid => mus_sealed_chamber.mid} (100%) rename sound/songs/midi/{mus_finecity.mid => mus_slateport.mid} (100%) rename sound/songs/midi/{mus_me_b_big.mid => mus_slots_jackpot.mid} (100%) rename sound/songs/midi/{mus_me_b_small.mid => mus_slots_win.mid} (100%) rename sound/songs/midi/{mus_runecity.mid => mus_sootopolis.mid} (100%) rename sound/songs/midi/{mus_naminori.mid => mus_surf.mid} (100%) rename sound/songs/midi/{mus_title3.mid => mus_title.mid} (100%) rename sound/songs/midi/{mus_me_zannen.mid => mus_too_bad.mid} (100%) rename sound/songs/midi/{mus_karakuri.mid => mus_trick_house.mid} (100%) rename sound/songs/midi/{mus_deepdeep.mid => mus_underwater.mid} (100%) rename sound/songs/midi/{mus_gomachi0.mid => mus_verdanturf.mid} (100%) rename sound/songs/midi/{mus_kachi4.mid => mus_victory_aqua_magma.mid} (100%) rename sound/songs/midi/{mus_rg_win_gym.mid => mus_victory_gym_leader.mid} (100%) rename sound/songs/midi/{mus_kachi5.mid => mus_victory_league.mid} (100%) rename sound/songs/midi/{mus_c_road.mid => mus_victory_road.mid} (100%) rename sound/songs/midi/{mus_kachi1.mid => mus_victory_trainer.mid} (100%) rename sound/songs/midi/{mus_rg_win_yasei.mid => mus_victory_wild.mid} (100%) rename sound/songs/midi/{mus_battle31.mid => mus_vs_aqua_magma.mid} (100%) rename sound/songs/midi/{mus_battle30.mid => mus_vs_aqua_magma_leader.mid} (100%) rename sound/songs/midi/{mus_battle33.mid => mus_vs_champion.mid} (100%) rename sound/songs/midi/{mus_battle38.mid => mus_vs_elite_four.mid} (100%) rename sound/songs/midi/{mus_vs_front.mid => mus_vs_frontier_brain.mid} (100%) rename sound/songs/midi/{mus_battle32.mid => mus_vs_gym_leader.mid} (100%) rename sound/songs/midi/{mus_battle34.mid => mus_vs_kyogre_groudon.mid} (100%) rename sound/songs/midi/{mus_vs_rekku.mid => mus_vs_rayquaza.mid} (100%) rename sound/songs/midi/{mus_battle36.mid => mus_vs_regi.mid} (100%) rename sound/songs/midi/{mus_battle35.mid => mus_vs_rival.mid} (100%) rename sound/songs/midi/{mus_battle20.mid => mus_vs_trainer.mid} (100%) rename sound/songs/midi/{mus_battle27.mid => mus_vs_wild.mid} (100%) rename sound/songs/midi/{mus_hideri.mid => mus_weather_groudon.mid} (100%) rename sound/songs/midi/{se_dendou.mid => se_applause.mid} (100%) rename sound/songs/midi/{se_hantei1.mid => se_arena_timeup1.mid} (100%) rename sound/songs/midi/{se_hantei2.mid => se_arena_timeup2.mid} (100%) rename sound/songs/midi/{se_bowa.mid => se_ball.mid} (100%) rename sound/songs/midi/{se_kon.mid => se_ball_bounce_1.mid} (100%) rename sound/songs/midi/{se_kon2.mid => se_ball_bounce_2.mid} (100%) rename sound/songs/midi/{se_kon3.mid => se_ball_bounce_3.mid} (100%) rename sound/songs/midi/{se_kon4.mid => se_ball_bounce_4.mid} (100%) rename sound/songs/midi/{se_bowa2.mid => se_ball_open.mid} (100%) rename sound/songs/midi/{se_nageru.mid => se_ball_throw.mid} (100%) rename sound/songs/midi/{se_suikomu.mid => se_ball_trade.mid} (100%) rename sound/songs/midi/{se_tb_kon.mid => se_ball_tray_ball.mid} (100%) rename sound/songs/midi/{se_tb_start.mid => se_ball_tray_enter.mid} (100%) rename sound/songs/midi/{se_tb_kara.mid => se_ball_tray_exit.mid} (100%) rename sound/songs/midi/{se_fuusen2.mid => se_balloon_blue.mid} (100%) rename sound/songs/midi/{se_fuusen1.mid => se_balloon_red.mid} (100%) rename sound/songs/midi/{se_fuusen3.mid => se_balloon_yellow.mid} (100%) rename sound/songs/midi/{se_ban.mid => se_bang.mid} (100%) rename sound/songs/midi/{se_moter.mid => se_berry_blender.mid} (100%) rename sound/songs/midi/{se_jitensya.mid => se_bike_bell.mid} (100%) rename sound/songs/midi/{se_jite_pyoko.mid => se_bike_hop.mid} (100%) rename sound/songs/midi/{se_toy_kabe.mid => se_breakable_door.mid} (100%) rename sound/songs/midi/{se_hashi.mid => se_bridge_walk.mid} (100%) rename sound/songs/midi/{se_tk_kasya.mid => se_click.mid} (100%) rename sound/songs/midi/{se_fu_zaku2.mid => se_contest_condition_lose.mid} (100%) rename sound/songs/midi/{se_c_maku_d.mid => se_contest_curtain_fall.mid} (100%) rename sound/songs/midi/{se_c_maku_u.mid => se_contest_curtain_rise.mid} (100%) rename sound/songs/midi/{se_c_gaji.mid => se_contest_heart.mid} (100%) rename sound/songs/midi/{se_c_pasi.mid => se_contest_icon_change.mid} (100%) rename sound/songs/midi/{se_c_syu.mid => se_contest_icon_clear.mid} (100%) rename sound/songs/midi/{se_c_pikon.mid => se_contest_mons_turn.mid} (100%) rename sound/songs/midi/{se_jyuni.mid => se_contest_place.mid} (100%) rename sound/songs/midi/{se_z_search.mid => se_dex_search.mid} (100%) rename sound/songs/midi/{se_pinpon.mid => se_ding_dong.mid} (100%) rename sound/songs/midi/{se_t_ooame.mid => se_downpour.mid} (100%) rename sound/songs/midi/{se_t_ooame_e.mid => se_downpour_stop.mid} (100%) rename sound/songs/midi/{se_kouka_m.mid => se_effective.mid} (100%) rename sound/songs/midi/{se_tamago.mid => se_egg_hatch.mid} (100%) rename sound/songs/midi/{se_elebeta.mid => se_elevator.mid} (100%) rename sound/songs/midi/{se_esuka.mid => se_escalator.mid} (100%) rename sound/songs/midi/{se_kaidan.mid => se_exit.mid} (100%) rename sound/songs/midi/{se_expmax.mid => se_exp_max.mid} (100%) rename sound/songs/midi/{se_hazure.mid => se_failure.mid} (100%) rename sound/songs/midi/{se_poke_dead.mid => se_faint.mid} (100%) rename sound/songs/midi/{se_ru_hyuu.mid => se_fall.mid} (100%) rename sound/songs/midi/{se_doku.mid => se_field_poison.mid} (100%) rename sound/songs/midi/{se_nigeru.mid => se_flee.mid} (100%) rename sound/songs/midi/{se_bidoro.mid => se_glass_flute.mid} (100%) rename sound/songs/midi/{se_ru_gasyan.mid => se_ice_break.mid} (100%) rename sound/songs/midi/{se_ru_bari.mid => se_ice_crack.mid} (100%) rename sound/songs/midi/{se_ru_gashin.mid => se_ice_stairs.mid} (100%) rename sound/songs/midi/{se_op_basyu.mid => se_intro_blast.mid} (100%) rename sound/songs/midi/{se_daugi.mid => se_itemfinder.mid} (100%) rename sound/songs/midi/{se_fu_zuzuzu.mid => se_lavaridge_fall_warp.mid} (100%) rename sound/songs/midi/{se_dansa.mid => se_ledge.mid} (100%) rename sound/songs/midi/{se_hinsi.mid => se_low_health.mid} (100%) rename sound/songs/midi/{se_w020.mid => se_m_bind.mid} (100%) rename sound/songs/midi/{se_w004.mid => se_m_comet_punch.mid} (100%) rename sound/songs/midi/{se_w015.mid => se_m_cut.mid} (100%) rename sound/songs/midi/{se_w003.mid => se_m_double_slap.mid} (100%) rename sound/songs/midi/{se_w007.mid => se_m_fire_punch.mid} (100%) rename sound/songs/midi/{se_w019.mid => se_m_fly.mid} (100%) rename sound/songs/midi/{se_w016.mid => se_m_gust.mid} (100%) rename sound/songs/midi/{se_w016b.mid => se_m_gust2.mid} (100%) rename sound/songs/midi/{se_w029.mid => se_m_headbutt.mid} (100%) rename sound/songs/midi/{se_w030.mid => se_m_horn_attack.mid} (100%) rename sound/songs/midi/{se_w026.mid => se_m_jump_kick.mid} (100%) rename sound/songs/midi/{se_w043.mid => se_m_leer.mid} (100%) rename sound/songs/midi/{se_w025.mid => se_m_mega_kick.mid} (100%) rename sound/songs/midi/{se_w025b.mid => se_m_mega_kick2.mid} (100%) rename sound/songs/midi/{se_w006.mid => se_m_pay_day.mid} (100%) rename sound/songs/midi/{se_w013.mid => se_m_razor_wind.mid} (100%) rename sound/songs/midi/{se_w013b.mid => se_m_razor_wind2.mid} (100%) rename sound/songs/midi/{se_w028.mid => se_m_sand_attack.mid} (100%) rename sound/songs/midi/{se_w010.mid => se_m_scratch.mid} (100%) rename sound/songs/midi/{se_w014.mid => se_m_swords_dance.mid} (100%) rename sound/songs/midi/{se_w039.mid => se_m_tail_whip.mid} (100%) rename sound/songs/midi/{se_w036.mid => se_m_take_down.mid} (100%) rename sound/songs/midi/{se_w011.mid => se_m_vicegrip.mid} (100%) rename sound/songs/midi/{se_w017.mid => se_m_wing_attack.mid} (100%) rename sound/songs/midi/{se_toy_dango.mid => se_mud_ball.mid} (100%) rename sound/songs/midi/{se_bt_start.mid => se_mugshot.mid} (100%) rename sound/songs/midi/{se_kouka_l.mid => se_not_effective.mid} (100%) rename sound/songs/midi/{se_toy_a.mid => se_note_a.mid} (100%) rename sound/songs/midi/{se_toy_b.mid => se_note_b.mid} (100%) rename sound/songs/midi/{se_toy_c.mid => se_note_c.mid} (100%) rename sound/songs/midi/{se_toy_c1.mid => se_note_c_high.mid} (100%) rename sound/songs/midi/{se_toy_d.mid => se_note_d.mid} (100%) rename sound/songs/midi/{se_toy_e.mid => se_note_e.mid} (100%) rename sound/songs/midi/{se_toy_f.mid => se_note_f.mid} (100%) rename sound/songs/midi/{se_toy_g.mid => se_note_g.mid} (100%) rename sound/songs/midi/{se_tama.mid => se_orb.mid} (100%) rename sound/songs/midi/{se_curtain1.mid => se_pike_curtain_close.mid} (100%) rename sound/songs/midi/{se_curtain.mid => se_pike_curtain_open.mid} (100%) rename sound/songs/midi/{se_toreeye.mid => se_pokenav_call.mid} (100%) rename sound/songs/midi/{se_toreoff.mid => se_pokenav_hang_up.mid} (100%) rename sound/songs/midi/{se_pn_off.mid => se_pokenav_off.mid} (100%) rename sound/songs/midi/{se_pn_on.mid => se_pokenav_on.mid} (100%) rename sound/songs/midi/{se_mizu.mid => se_puddle.mid} (100%) rename sound/songs/midi/{se_t_koame.mid => se_rain.mid} (100%) rename sound/songs/midi/{se_t_koame_e.mid => se_rain_stop.mid} (100%) rename sound/songs/midi/{se_tu_saa.mid => se_repel.mid} (100%) rename sound/songs/midi/{se_rg_bag1.mid => se_rg_bag_cursor.mid} (100%) rename sound/songs/midi/{se_rg_bag2.mid => se_rg_bag_pocket.mid} (100%) rename sound/songs/midi/{se_rg_getting.mid => se_rg_ball_click.mid} (100%) rename sound/songs/midi/{se_rg_card1.mid => se_rg_card_flip.mid} (100%) rename sound/songs/midi/{se_rg_card2.mid => se_rg_card_flipping.mid} (100%) rename sound/songs/midi/{se_rg_card3.mid => se_rg_card_open.mid} (100%) rename sound/songs/midi/{se_rg_deomov.mid => se_rg_deoxys_move.mid} (100%) rename sound/songs/midi/{se_rg_w_door.mid => se_rg_door.mid} (100%) rename sound/songs/midi/{se_rg_help_cl.mid => se_rg_help_close.mid} (100%) rename sound/songs/midi/{se_rg_help_ng.mid => se_rg_help_error.mid} (100%) rename sound/songs/midi/{se_rg_help_op.mid => se_rg_help_open.mid} (100%) rename sound/songs/midi/{se_rg_nawamiss.mid => se_rg_poke_jump_failure.mid} (100%) rename sound/songs/midi/{se_rg_excellent.mid => se_rg_poke_jump_success.mid} (100%) rename sound/songs/midi/{se_rg_kiteki.mid => se_rg_ss_anne_horn.mid} (100%) rename sound/songs/midi/{se_hi_turun.mid => se_rotating_gate.mid} (100%) rename sound/songs/midi/{se_tamakoro.mid => se_roulette_ball.mid} (100%) rename sound/songs/midi/{se_tamakoro_e.mid => se_roulette_ball2.mid} (100%) rename sound/songs/midi/{se_reapoke.mid => se_shiny.mid} (100%) rename sound/songs/midi/{se_naminori.mid => se_ship.mid} (100%) rename sound/songs/midi/{se_regi.mid => se_shop.mid} (100%) rename sound/songs/midi/{se_jido_doa.mid => se_sliding_door.mid} (100%) rename sound/songs/midi/{se_seikai.mid => se_success.mid} (100%) rename sound/songs/midi/{se_ussoki.mid => se_sudowoodo_shake.mid} (100%) rename sound/songs/midi/{se_kouka_h.mid => se_super_effective.mid} (100%) rename sound/songs/midi/{se_mu_pachi.mid => se_switch.mid} (100%) rename sound/songs/midi/{se_basabasa.mid => se_taillow_wing_flap.mid} (100%) rename sound/songs/midi/{se_t_kami.mid => se_thunder.mid} (100%) rename sound/songs/midi/{se_t_kami2.mid => se_thunder2.mid} (100%) rename sound/songs/midi/{se_t_ame.mid => se_thunderstorm.mid} (100%) rename sound/songs/midi/{se_t_ame_e.mid => se_thunderstorm_stop.mid} (100%) rename sound/songs/midi/{se_track_door.mid => se_truck_door.mid} (100%) rename sound/songs/midi/{se_track_move.mid => se_truck_move.mid} (100%) rename sound/songs/midi/{se_track_stop.mid => se_truck_stop.mid} (100%) rename sound/songs/midi/{se_track_haiki.mid => se_truck_unload.mid} (100%) rename sound/songs/midi/{se_ki_gasyan.mid => se_unlock.mid} (100%) rename sound/songs/midi/{se_kaifuku.mid => se_use_item.mid} (100%) rename sound/songs/midi/{se_jihanki.mid => se_vend.mid} (100%) rename sound/songs/midi/{se_tk_warpin.mid => se_warp_in.mid} (100%) rename sound/songs/midi/{se_tk_warpout.mid => se_warp_out.mid} (100%) rename sound/songs/{se_z_page.s => se_dex_page.s} (53%) create mode 100644 sound/songs/se_dex_scroll.s rename sound/songs/{se_w071.s => se_m_absorb.s} (50%) rename sound/songs/{se_w071b.s => se_m_absorb_2.s} (77%) rename sound/songs/{se_w151.s => se_m_acid_armor.s} (85%) rename sound/songs/{se_w213.s => se_m_attract.s} (72%) rename sound/songs/{se_w213b.s => se_m_attract2.s} (72%) create mode 100644 sound/songs/se_m_barrier.s rename sound/songs/{se_w226.s => se_m_baton_pass.s} (64%) create mode 100644 sound/songs/se_m_belly_drum.s rename sound/songs/{se_w044.s => se_m_bite.s} (70%) rename sound/songs/{se_w059.s => se_m_blizzard.s} (62%) create mode 100644 sound/songs/se_m_blizzard2.s rename sound/songs/{se_w155.s => se_m_bonemerang.s} (51%) rename sound/songs/{se_w280.s => se_m_brick_break.s} (64%) rename sound/songs/{se_w145.s => se_m_bubble.s} (55%) create mode 100644 sound/songs/se_m_bubble2.s rename sound/songs/{se_w145c.s => se_m_bubble3.s} (57%) rename sound/songs/{se_w062.s => se_m_bubble_beam.s} (62%) create mode 100644 sound/songs/se_m_bubble_beam2.s rename sound/songs/{se_w268.s => se_m_charge.s} (71%) rename sound/songs/{se_w204.s => se_m_charm.s} (55%) rename sound/songs/{se_w109.s => se_m_confuse_ray.s} (74%) rename sound/songs/{se_w322.s => se_m_cosmic_power.s} (80%) rename sound/songs/{se_w152.s => se_m_crabhammer.s} (53%) rename sound/songs/{se_w197.s => se_m_detect.s} (71%) rename sound/songs/{se_w091.s => se_m_dig.s} (63%) rename sound/songs/{se_w291.s => se_m_dive.s} (64%) create mode 100644 sound/songs/se_m_dizzy_punch.s create mode 100644 sound/songs/se_m_double_team.s create mode 100644 sound/songs/se_m_dragon_rage.s rename sound/songs/{se_w089.s => se_m_earthquake.s} (61%) create mode 100644 sound/songs/se_m_ember.s rename sound/songs/{se_w227.s => se_m_encore.s} (55%) rename sound/songs/{se_w227b.s => se_m_encore2.s} (59%) rename sound/songs/{se_w153.s => se_m_explosion.s} (65%) rename sound/songs/{se_w185.s => se_m_faint_attack.s} (66%) create mode 100644 sound/songs/se_m_flame_wheel.s create mode 100644 sound/songs/se_m_flame_wheel2.s rename sound/songs/{se_w053.s => se_m_flamethrower.s} (60%) create mode 100644 sound/songs/se_m_flatter.s rename sound/songs/{se_w202.s => se_m_giga_drain.s} (65%) rename sound/songs/{se_w320.s => se_m_grasswhistle.s} (58%) rename sound/songs/{se_w258.s => se_m_hail.s} (69%) rename sound/songs/{se_w231.s => se_m_harden.s} (57%) rename sound/songs/{se_w114.s => se_m_haze.s} (53%) rename sound/songs/{se_w215.s => se_m_heal_bell.s} (65%) rename sound/songs/{se_w257.s => se_m_heat_wave.s} (55%) rename sound/songs/{se_w056.s => se_m_hydro_pump.s} (50%) rename sound/songs/{se_w063.s => se_m_hyper_beam.s} (55%) rename sound/songs/{se_w063b.s => se_m_hyper_beam2.s} (66%) rename sound/songs/{se_w196.s => se_m_icy_wind.s} (55%) rename sound/songs/{se_w122.s => se_m_lick.s} (70%) rename sound/songs/{se_w199.s => se_m_lock_on.s} (62%) rename sound/songs/{se_w118.s => se_m_metronome.s} (65%) rename sound/songs/{se_w208.s => se_m_milk_drink.s} (58%) rename sound/songs/{se_w107.s => se_m_minimize.s} (73%) rename sound/songs/{se_w054.s => se_m_mist.s} (54%) rename sound/songs/{se_w236.s => se_m_moonlight.s} (73%) rename sound/songs/{se_w234.s => se_m_morning_sun.s} (72%) rename sound/songs/{se_w171.s => se_m_nightmare.s} (76%) create mode 100644 sound/songs/se_m_perish_song.s rename sound/songs/{se_w080.s => se_m_petal_dance.s} (80%) create mode 100644 sound/songs/se_m_poison_powder.s rename sound/songs/{se_w060.s => se_m_psybeam.s} (52%) rename sound/songs/{se_w060b.s => se_m_psybeam2.s} (59%) create mode 100644 sound/songs/se_m_rain_dance.s rename sound/songs/{se_w115.s => se_m_reflect.s} (51%) rename sound/songs/{se_w179.s => se_m_reversal.s} (70%) rename sound/songs/{se_w088.s => se_m_rock_throw.s} (58%) create mode 100644 sound/songs/se_m_sacred_fire.s create mode 100644 sound/songs/se_m_sacred_fire2.s rename sound/songs/{se_w328.s => se_m_sand_tomb.s} (69%) rename sound/songs/{se_w201.s => se_m_sandstorm.s} (73%) rename sound/songs/{se_w103.s => se_m_screech.s} (56%) create mode 100644 sound/songs/se_m_self_destruct.s rename sound/songs/{se_w047.s => se_m_sing.s} (51%) create mode 100644 sound/songs/se_m_sketch.s create mode 100644 sound/songs/se_m_sky_uppercut.s rename sound/songs/{se_w173.s => se_m_snore.s} (50%) rename sound/songs/{se_w076.s => se_m_solar_beam.s} (68%) rename sound/songs/{se_w255.s => se_m_spit_up.s} (63%) rename sound/songs/{se_w287b.s => se_m_stat_decrease.s} (84%) rename sound/songs/{se_w287.s => se_m_stat_increase.s} (85%) rename sound/songs/{se_w070.s => se_m_strength.s} (62%) rename sound/songs/{se_w081.s => se_m_string_shot.s} (50%) rename sound/songs/{se_w081b.s => se_m_string_shot2.s} (69%) rename sound/songs/{se_w048.s => se_m_supersonic.s} (58%) rename sound/songs/{se_w057.s => se_m_surf.s} (59%) create mode 100644 sound/songs/se_m_swagger.s rename sound/songs/{se_w207b.s => se_m_swagger2.s} (53%) rename sound/songs/{se_w230.s => se_m_sweet_scent.s} (51%) rename sound/songs/{se_w129.s => se_m_swift.s} (56%) rename sound/songs/{se_w298.s => se_m_teeter_dance.s} (70%) rename sound/songs/{se_w100.s => se_m_teleport.s} (74%) rename sound/songs/{se_w086.s => se_m_thunder_wave.s} (57%) rename sound/songs/{se_w085.s => se_m_thunderbolt.s} (62%) rename sound/songs/{se_w085b.s => se_m_thunderbolt2.s} (60%) rename sound/songs/{se_w092.s => se_m_toxic.s} (71%) rename sound/songs/{se_w161.s => se_m_tri_attack.s} (50%) rename sound/songs/{se_w161b.s => se_m_tri_attack2.s} (64%) rename sound/songs/{se_w239.s => se_m_twister.s} (60%) rename sound/songs/{se_w253.s => se_m_uproar.s} (53%) create mode 100644 sound/songs/se_m_vital_throw.s rename sound/songs/{se_w233b.s => se_m_vital_throw2.s} (60%) rename sound/songs/{se_w127.s => se_m_waterfall.s} (62%) rename sound/songs/{se_w250.s => se_m_whirlpool.s} (65%) rename sound/songs/{se_w281.s => se_m_yawn.s} (66%) delete mode 100644 sound/songs/se_w052.s delete mode 100644 sound/songs/se_w059b.s delete mode 100644 sound/songs/se_w062b.s delete mode 100644 sound/songs/se_w077.s delete mode 100644 sound/songs/se_w082.s delete mode 100644 sound/songs/se_w104.s delete mode 100644 sound/songs/se_w112.s delete mode 100644 sound/songs/se_w120.s delete mode 100644 sound/songs/se_w145b.s delete mode 100644 sound/songs/se_w146.s delete mode 100644 sound/songs/se_w166.s delete mode 100644 sound/songs/se_w172.s delete mode 100644 sound/songs/se_w172b.s delete mode 100644 sound/songs/se_w187.s delete mode 100644 sound/songs/se_w195.s delete mode 100644 sound/songs/se_w207.s delete mode 100644 sound/songs/se_w221.s delete mode 100644 sound/songs/se_w221b.s delete mode 100644 sound/songs/se_w233.s delete mode 100644 sound/songs/se_w240.s delete mode 100644 sound/songs/se_w260.s delete mode 100644 sound/songs/se_w327.s delete mode 100644 sound/songs/se_z_scroll.s diff --git a/berry_fix/charmap.txt b/berry_fix/charmap.txt index 94eabe8bce..e6184b8e1a 100644 --- a/berry_fix/charmap.txt +++ b/berry_fix/charmap.txt @@ -454,7 +454,7 @@ DYNAMIC_COLOR6 = 0F @ cerulean @ sound and music MUS_DUMMY = 00 00 -SE_KAIFUKU = 01 00 +SE_USE_ITEM = 01 00 SE_PC_LOGIN = 02 00 SE_PC_OFF = 03 00 SE_PC_ON = 04 00 @@ -462,476 +462,476 @@ SE_SELECT = 05 00 SE_WIN_OPEN = 06 00 SE_WALL_HIT = 07 00 SE_DOOR = 08 00 -SE_KAIDAN = 09 00 -SE_DANSA = 0A 00 -SE_JITENSYA = 0B 00 -SE_KOUKA_L = 0C 00 -SE_KOUKA_M = 0D 00 -SE_KOUKA_H = 0E 00 -SE_BOWA2 = 0F 00 -SE_POKE_DEAD = 10 00 -SE_NIGERU = 11 00 -SE_JIDO_DOA = 12 00 -SE_NAMINORI = 13 00 -SE_BAN = 14 00 +SE_EXIT = 09 00 +SE_LEDGE = 0A 00 +SE_BIKE_BELL = 0B 00 +SE_NOT_EFFECTIVE = 0C 00 +SE_EFFECTIVE = 0D 00 +SE_SUPER_EFFECTIVE = 0E 00 +SE_BALL_OPEN = 0F 00 +SE_FAINT = 10 00 +SE_FLEE = 11 00 +SE_SLIDING_DOOR = 12 00 +SE_SHIP = 13 00 +SE_BANG = 14 00 SE_PIN = 15 00 SE_BOO = 16 00 -SE_BOWA = 17 00 -SE_JYUNI = 18 00 +SE_BALL = 17 00 +SE_CONTEST_PLACE = 18 00 SE_A = 19 00 SE_I = 1A 00 SE_U = 1B 00 SE_E = 1C 00 SE_O = 1D 00 SE_N = 1E 00 -SE_SEIKAI = 1F 00 -SE_HAZURE = 20 00 +SE_SUCCESS = 1F 00 +SE_FAILURE = 20 00 SE_EXP = 21 00 -SE_JITE_PYOKO = 22 00 -SE_MU_PACHI = 23 00 -SE_TK_KASYA = 24 00 +SE_BIKE_HOP = 22 00 +SE_SWITCH = 23 00 +SE_CLICK = 24 00 SE_FU_ZAKU = 25 00 -SE_FU_ZAKU2 = 26 00 -SE_FU_ZUZUZU = 27 00 -SE_RU_GASHIN = 28 00 -SE_RU_GASYAN = 29 00 -SE_RU_BARI = 2A 00 -SE_RU_HYUU = 2B 00 -SE_KI_GASYAN = 2C 00 -SE_TK_WARPIN = 2D 00 -SE_TK_WARPOUT = 2E 00 -SE_TU_SAA = 2F 00 -SE_HI_TURUN = 30 00 -SE_TRACK_MOVE = 31 00 -SE_TRACK_STOP = 32 00 -SE_TRACK_HAIKI = 33 00 -SE_TRACK_DOOR = 34 00 -SE_MOTER = 35 00 +SE_CONTEST_CONDITION_LOSE = 26 00 +SE_LAVARIDGE_FALL_WARP = 27 00 +SE_ICE_STAIRS = 28 00 +SE_ICE_BREAK = 29 00 +SE_ICE_CRACK = 2A 00 +SE_FALL = 2B 00 +SE_UNLOCK = 2C 00 +SE_WARP_IN = 2D 00 +SE_WARP_OUT = 2E 00 +SE_REPEL = 2F 00 +SE_ROTATING_GATE = 30 00 +SE_TRUCK_MOVE = 31 00 +SE_TRUCK_STOP = 32 00 +SE_TRUCK_UNLOAD = 33 00 +SE_TRUCK_DOOR = 34 00 +SE_BERRY_BLENDER = 35 00 SE_CARD = 36 00 SE_SAVE = 37 00 -SE_KON = 38 00 -SE_KON2 = 39 00 -SE_KON3 = 3A 00 -SE_KON4 = 3B 00 -SE_SUIKOMU = 3C 00 -SE_NAGERU = 3D 00 -SE_TOY_C = 3E 00 -SE_TOY_D = 3F 00 -SE_TOY_E = 40 00 -SE_TOY_F = 41 00 -SE_TOY_G = 42 00 -SE_TOY_A = 43 00 -SE_TOY_B = 44 00 -SE_TOY_C1 = 45 00 -SE_MIZU = 46 00 -SE_HASHI = 47 00 -SE_DAUGI = 48 00 -SE_PINPON = 49 00 -SE_FUUSEN1 = 4A 00 -SE_FUUSEN2 = 4B 00 -SE_FUUSEN3 = 4C 00 -SE_TOY_KABE = 4D 00 -SE_TOY_DANGO = 4E 00 -SE_DOKU = 4F 00 -SE_ESUKA = 50 00 -SE_T_AME = 51 00 -SE_T_AME_E = 52 00 -SE_T_OOAME = 53 00 -SE_T_OOAME_E = 54 00 -SE_T_KOAME = 55 00 -SE_T_KOAME_E = 56 00 -SE_T_KAMI = 57 00 -SE_T_KAMI2 = 58 00 -SE_ELEBETA = 59 00 -SE_HINSI = 5A 00 -SE_EXPMAX = 5B 00 -SE_TAMAKORO = 5C 00 -SE_TAMAKORO_E = 5D 00 -SE_BASABASA = 5E 00 -SE_REGI = 5F 00 -SE_C_GAJI = 60 00 -SE_C_MAKU_U = 61 00 -SE_C_MAKU_D = 62 00 -SE_C_PASI = 63 00 -SE_C_SYU = 64 00 -SE_C_PIKON = 65 00 -SE_REAPOKE = 66 00 -SE_OP_BASYU = 67 00 -SE_BT_START = 68 00 -SE_DENDOU = 69 00 -SE_JIHANKI = 6A 00 -SE_TAMA = 6B 00 -SE_Z_SCROLL = 6C 00 -SE_Z_PAGE = 6D 00 -SE_PN_ON = 6E 00 -SE_PN_OFF = 6F 00 -SE_Z_SEARCH = 70 00 -SE_TAMAGO = 71 00 -SE_TB_START = 72 00 -SE_TB_KON = 73 00 -SE_TB_KARA = 74 00 -SE_BIDORO = 75 00 -SE_W085 = 76 00 -SE_W085B = 77 00 -SE_W231 = 78 00 -SE_W171 = 79 00 -SE_W233 = 7A 00 -SE_W233B = 7B 00 -SE_W145 = 7C 00 -SE_W145B = 7D 00 -SE_W145C = 7E 00 -SE_W240 = 7F 00 -SE_W015 = 80 00 -SE_W081 = 81 00 -SE_W081B = 82 00 -SE_W088 = 83 00 -SE_W016 = 84 00 -SE_W016B = 85 00 -SE_W003 = 86 00 -SE_W104 = 87 00 -SE_W013 = 88 00 -SE_W196 = 89 00 -SE_W086 = 8A 00 -SE_W004 = 8B 00 -SE_W025 = 8C 00 -SE_W025B = 8D 00 -SE_W152 = 8E 00 -SE_W026 = 8F 00 -SE_W172 = 90 00 -SE_W172B = 91 00 -SE_W053 = 92 00 -SE_W007 = 93 00 -SE_W092 = 94 00 -SE_W221 = 95 00 -SE_W221B = 96 00 -SE_W052 = 97 00 -SE_W036 = 98 00 -SE_W059 = 99 00 -SE_W059B = 9A 00 -SE_W010 = 9B 00 -SE_W011 = 9C 00 -SE_W017 = 9D 00 -SE_W019 = 9E 00 -SE_W028 = 9F 00 -SE_W013B = A0 00 -SE_W044 = A1 00 -SE_W029 = A2 00 -SE_W057 = A3 00 -SE_W056 = A4 00 -SE_W250 = A5 00 -SE_W030 = A6 00 -SE_W039 = A7 00 -SE_W054 = A8 00 -SE_W077 = A9 00 -SE_W020 = AA 00 -SE_W082 = AB 00 -SE_W047 = AC 00 -SE_W195 = AD 00 -SE_W006 = AE 00 -SE_W091 = AF 00 -SE_W146 = B0 00 -SE_W120 = B1 00 -SE_W153 = B2 00 -SE_W071B = B3 00 -SE_W071 = B4 00 -SE_W103 = B5 00 -SE_W062 = B6 00 -SE_W062B = B7 00 -SE_W048 = B8 00 -SE_W187 = B9 00 -SE_W118 = BA 00 -SE_W155 = BB 00 -SE_W122 = BC 00 -SE_W060 = BD 00 -SE_W185 = BE 00 -SE_W014 = BF 00 -SE_W043 = C0 00 -SE_W207 = C1 00 -SE_W207B = C2 00 -SE_W215 = C3 00 -SE_W109 = C4 00 -SE_W173 = C5 00 -SE_W280 = C6 00 -SE_W202 = C7 00 -SE_W060B = C8 00 -SE_W076 = C9 00 -SE_W080 = CA 00 -SE_W100 = CB 00 -SE_W107 = CC 00 -SE_W166 = CD 00 -SE_W129 = CE 00 -SE_W115 = CF 00 -SE_W112 = D0 00 -SE_W197 = D1 00 -SE_W199 = D2 00 -SE_W236 = D3 00 -SE_W204 = D4 00 -SE_W268 = D5 00 -SE_W070 = D6 00 -SE_W063 = D7 00 -SE_W127 = D8 00 -SE_W179 = D9 00 -SE_W151 = DA 00 -SE_W201 = DB 00 -SE_W161 = DC 00 -SE_W161B = DD 00 -SE_W227 = DE 00 -SE_W227B = DF 00 -SE_W226 = E0 00 -SE_W208 = E1 00 -SE_W213 = E2 00 -SE_W213B = E3 00 -SE_W234 = E4 00 -SE_W260 = E5 00 -SE_W328 = E6 00 -SE_W320 = E7 00 -SE_W255 = E8 00 -SE_W291 = E9 00 -SE_W089 = EA 00 -SE_W239 = EB 00 -SE_W230 = EC 00 -SE_W281 = ED 00 -SE_W327 = EE 00 -SE_W287 = EF 00 -SE_W257 = F0 00 -SE_W253 = F1 00 -SE_W258 = F2 00 -SE_W322 = F3 00 -SE_W298 = F4 00 -SE_W287B = F5 00 -SE_W114 = F6 00 -SE_W063B = F7 00 -SE_RG_W_DOOR = F8 00 -SE_RG_CARD1 = F9 00 -SE_RG_CARD2 = FA 00 -SE_RG_CARD3 = FB 00 -SE_RG_BAG1 = FC 00 -SE_RG_BAG2 = FD 00 -SE_RG_GETTING = FE 00 +SE_BALL_BOUNCE_1 = 38 00 +SE_BALL_BOUNCE_2 = 39 00 +SE_BALL_BOUNCE_3 = 3A 00 +SE_BALL_BOUNCE_4 = 3B 00 +SE_BALL_TRADE = 3C 00 +SE_BALL_THROW = 3D 00 +SE_NOTE_C = 3E 00 +SE_NOTE_D = 3F 00 +SE_NOTE_E = 40 00 +SE_NOTE_F = 41 00 +SE_NOTE_G = 42 00 +SE_NOTE_A = 43 00 +SE_NOTE_B = 44 00 +SE_NOTE_C_HIGH = 45 00 +SE_PUDDLE = 46 00 +SE_BRIDGE_WALK = 47 00 +SE_ITEMFINDER = 48 00 +SE_DING_DONG = 49 00 +SE_BALLOON_RED = 4A 00 +SE_BALLOON_BLUE = 4B 00 +SE_BALLOON_YELLOW = 4C 00 +SE_BREAKABLE_DOOR = 4D 00 +SE_MUD_BALL = 4E 00 +SE_FIELD_POISON = 4F 00 +SE_ESCALATOR = 50 00 +SE_THUNDERSTORM = 51 00 +SE_THUNDERSTORM_STOP = 52 00 +SE_DOWNPOUR = 53 00 +SE_DOWNPOUR_STOP = 54 00 +SE_RAIN = 55 00 +SE_RAIN_STOP = 56 00 +SE_THUNDER = 57 00 +SE_THUNDER2 = 58 00 +SE_ELEVATOR = 59 00 +SE_LOW_HEALTH = 5A 00 +SE_EXP_MAX = 5B 00 +SE_ROULETTE_BALL = 5C 00 +SE_ROULETTE_BALL2 = 5D 00 +SE_TAILLOW_WING_FLAP = 5E 00 +SE_SHOP = 5F 00 +SE_CONTEST_HEART = 60 00 +SE_CONTEST_CURTAIN_RISE = 61 00 +SE_CONTEST_CURTAIN_FALL = 62 00 +SE_CONTEST_ICON_CHANGE = 63 00 +SE_CONTEST_ICON_CLEAR = 64 00 +SE_CONTEST_MONS_TURN = 65 00 +SE_SHINY = 66 00 +SE_INTRO_BLAST = 67 00 +SE_MUGSHOT = 68 00 +SE_APPLAUSE = 69 00 +SE_VEND = 6A 00 +SE_ORB = 6B 00 +SE_DEX_SCROLL = 6C 00 +SE_DEX_PAGE = 6D 00 +SE_POKENAV_ON = 6E 00 +SE_POKENAV_OFF = 6F 00 +SE_DEX_SEARCH = 70 00 +SE_EGG_HATCH = 71 00 +SE_BALL_TRAY_ENTER = 72 00 +SE_BALL_TRAY_BALL = 73 00 +SE_BALL_TRAY_EXIT = 74 00 +SE_GLASS_FLUTE = 75 00 +SE_M_THUNDERBOLT = 76 00 +SE_M_THUNDERBOLT2 = 77 00 +SE_M_HARDEN = 78 00 +SE_M_NIGHTMARE = 79 00 +SE_M_VITAL_THROW = 7A 00 +SE_M_VITAL_THROW2 = 7B 00 +SE_M_BUBBLE = 7C 00 +SE_M_BUBBLE2 = 7D 00 +SE_M_BUBBLE3 = 7E 00 +SE_M_RAIN_DANCE = 7F 00 +SE_M_CUT = 80 00 +SE_M_STRING_SHOT = 81 00 +SE_M_STRING_SHOT2 = 82 00 +SE_M_ROCK_THROW = 83 00 +SE_M_GUST = 84 00 +SE_M_GUST2 = 85 00 +SE_M_DOUBLE_SLAP = 86 00 +SE_M_DOUBLE_TEAM = 87 00 +SE_M_RAZOR_WIND = 88 00 +SE_M_ICY_WIND = 89 00 +SE_M_THUNDER_WAVE = 8A 00 +SE_M_COMET_PUNCH = 8B 00 +SE_M_MEGA_KICK = 8C 00 +SE_M_MEGA_KICK2 = 8D 00 +SE_M_CRABHAMMER = 8E 00 +SE_M_JUMP_KICK = 8F 00 +SE_M_FLAME_WHEEL = 90 00 +SE_M_FLAME_WHEEL2 = 91 00 +SE_M_FLAMETHROWER = 92 00 +SE_M_FIRE_PUNCH = 93 00 +SE_M_TOXIC = 94 00 +SE_M_SACRED_FIRE = 95 00 +SE_M_SACRED_FIRE2 = 96 00 +SE_M_EMBER = 97 00 +SE_M_TAKE_DOWN = 98 00 +SE_M_BLIZZARD = 99 00 +SE_M_BLIZZARD2 = 9A 00 +SE_M_SCRATCH = 9B 00 +SE_M_VICEGRIP = 9C 00 +SE_M_WING_ATTACK = 9D 00 +SE_M_FLY = 9E 00 +SE_M_SAND_ATTACK = 9F 00 +SE_M_RAZOR_WIND2 = A0 00 +SE_M_BITE = A1 00 +SE_M_HEADBUTT = A2 00 +SE_M_SURF = A3 00 +SE_M_HYDRO_PUMP = A4 00 +SE_M_WHIRLPOOL = A5 00 +SE_M_HORN_ATTACK = A6 00 +SE_M_TAIL_WHIP = A7 00 +SE_M_MIST = A8 00 +SE_M_POISON_POWDER = A9 00 +SE_M_BIND = AA 00 +SE_M_DRAGON_RAGE = AB 00 +SE_M_SING = AC 00 +SE_M_PERISH_SONG = AD 00 +SE_M_PAY_DAY = AE 00 +SE_M_DIG = AF 00 +SE_M_DIZZY_PUNCH = B0 00 +SE_M_SELF_DESTRUCT = B1 00 +SE_M_EXPLOSION = B2 00 +SE_M_ABSORB_2 = B3 00 +SE_M_ABSORB = B4 00 +SE_M_SCREECH = B5 00 +SE_M_BUBBLE_BEAM = B6 00 +SE_M_BUBBLE_BEAM2 = B7 00 +SE_M_SUPERSONIC = B8 00 +SE_M_BELLY_DRUM = B9 00 +SE_M_METRONOME = BA 00 +SE_M_BONEMERANG = BB 00 +SE_M_LICK = BC 00 +SE_M_PSYBEAM = BD 00 +SE_M_FAINT_ATTACK = BE 00 +SE_M_SWORDS_DANCE = BF 00 +SE_M_LEER = C0 00 +SE_M_SWAGGER = C1 00 +SE_M_SWAGGER2 = C2 00 +SE_M_HEAL_BELL = C3 00 +SE_M_CONFUSE_RAY = C4 00 +SE_M_SNORE = C5 00 +SE_M_BRICK_BREAK = C6 00 +SE_M_GIGA_DRAIN = C7 00 +SE_M_PSYBEAM2 = C8 00 +SE_M_SOLAR_BEAM = C9 00 +SE_M_PETAL_DANCE = CA 00 +SE_M_TELEPORT = CB 00 +SE_M_MINIMIZE = CC 00 +SE_M_SKETCH = CD 00 +SE_M_SWIFT = CE 00 +SE_M_REFLECT = CF 00 +SE_M_BARRIER = D0 00 +SE_M_DETECT = D1 00 +SE_M_LOCK_ON = D2 00 +SE_M_MOONLIGHT = D3 00 +SE_M_CHARM = D4 00 +SE_M_CHARGE = D5 00 +SE_M_STRENGTH = D6 00 +SE_M_HYPER_BEAM = D7 00 +SE_M_WATERFALL = D8 00 +SE_M_REVERSAL = D9 00 +SE_M_ACID_ARMOR = DA 00 +SE_M_SANDSTORM = DB 00 +SE_M_TRI_ATTACK = DC 00 +SE_M_TRI_ATTACK2 = DD 00 +SE_M_ENCORE = DE 00 +SE_M_ENCORE2 = DF 00 +SE_M_BATON_PASS = E0 00 +SE_M_MILK_DRINK = E1 00 +SE_M_ATTRACT = E2 00 +SE_M_ATTRACT2 = E3 00 +SE_M_MORNING_SUN = E4 00 +SE_M_FLATTER = E5 00 +SE_M_SAND_TOMB = E6 00 +SE_M_GRASSWHISTLE = E7 00 +SE_M_SPIT_UP = E8 00 +SE_M_DIVE = E9 00 +SE_M_EARTHQUAKE = EA 00 +SE_M_TWISTER = EB 00 +SE_M_SWEET_SCENT = EC 00 +SE_M_YAWN = ED 00 +SE_M_SKY_UPPERCUT = EE 00 +SE_M_STAT_INCREASE = EF 00 +SE_M_HEAT_WAVE = F0 00 +SE_M_UPROAR = F1 00 +SE_M_HAIL = F2 00 +SE_M_COSMIC_POWER = F3 00 +SE_M_TEETER_DANCE = F4 00 +SE_M_STAT_DECREASE = F5 00 +SE_M_HAZE = F6 00 +SE_M_HYPER_BEAM2 = F7 00 +SE_RG_DOOR = F8 00 +SE_RG_CARD_FLIP = F9 00 +SE_RG_CARD_FLIPPING = FA 00 +SE_RG_CARD_OPEN = FB 00 +SE_RG_BAG_CURSOR = FC 00 +SE_RG_BAG_POCKET = FD 00 +SE_RG_BALL_CLICK = FE 00 SE_RG_SHOP = FF 00 -SE_RG_KITEKI = 00 01 -SE_RG_HELP_OP = 01 01 -SE_RG_HELP_CL = 02 01 -SE_RG_HELP_NG = 03 01 -SE_RG_DEOMOV = 04 01 -SE_RG_EXCELLENT = 05 01 -SE_RG_NAWAMISS = 06 01 -SE_TOREEYE = 07 01 -SE_TOREOFF = 08 01 -SE_HANTEI1 = 09 01 -SE_HANTEI2 = 0A 01 -SE_CURTAIN = 0B 01 -SE_CURTAIN1 = 0C 01 -SE_USSOKI = 0D 01 -MUS_TETSUJI = 5E 01 -MUS_FIELD13 = 5F 01 -MUS_KACHI22 = 60 01 -MUS_KACHI2 = 61 01 -MUS_KACHI3 = 62 01 -MUS_KACHI5 = 63 01 -MUS_PCC = 64 01 -MUS_NIBI = 65 01 -MUS_SUIKUN = 66 01 -MUS_DOORO1 = 67 01 -MUS_DOORO_X1 = 68 01 -MUS_DOORO_X3 = 69 01 -MUS_MACHI_S2 = 6A 01 -MUS_MACHI_S4 = 6B 01 -MUS_GIM = 6C 01 -MUS_NAMINORI = 6D 01 -MUS_DAN01 = 6E 01 -MUS_FANFA1 = 6F 01 -MUS_ME_ASA = 70 01 -MUS_ME_BACHI = 71 01 -MUS_FANFA4 = 72 01 -MUS_FANFA5 = 73 01 -MUS_ME_WAZA = 74 01 -MUS_BIJYUTU = 75 01 -MUS_DOORO_X4 = 76 01 -MUS_FUNE_KAN = 77 01 -MUS_ME_SHINKA = 78 01 -MUS_SHINKA = 79 01 -MUS_ME_WASURE = 7A 01 -MUS_SYOUJOEYE = 7B 01 -MUS_BOYEYE = 7C 01 -MUS_DAN02 = 7D 01 -MUS_MACHI_S3 = 7E 01 -MUS_ODAMAKI = 7F 01 -MUS_B_TOWER = 80 01 -MUS_SWIMEYE = 81 01 -MUS_DAN03 = 82 01 -MUS_ME_KINOMI = 83 01 -MUS_ME_TAMA = 84 01 -MUS_ME_B_BIG = 85 01 -MUS_ME_B_SMALL = 86 01 -MUS_ME_ZANNEN = 87 01 -MUS_BD_TIME = 88 01 -MUS_TEST1 = 89 01 -MUS_TEST2 = 8A 01 -MUS_TEST3 = 8B 01 -MUS_TEST4 = 8C 01 -MUS_TEST = 8D 01 -MUS_GOMACHI0 = 8E 01 -MUS_GOTOWN = 8F 01 -MUS_POKECEN = 90 01 -MUS_NEXTROAD = 91 01 -MUS_GRANROAD = 92 01 +SE_RG_SS_ANNE_HORN = 00 01 +SE_RG_HELP_OPEN = 01 01 +SE_RG_HELP_CLOSE = 02 01 +SE_RG_HELP_ERROR = 03 01 +SE_RG_DEOXYS_MOVE = 04 01 +SE_RG_POKE_JUMP_SUCCESS = 05 01 +SE_RG_POKE_JUMP_FAILURE = 06 01 +SE_POKENAV_CALL = 07 01 +SE_POKENAV_HANG_UP = 08 01 +SE_ARENA_TIMEUP1 = 09 01 +SE_ARENA_TIMEUP2 = 0A 01 +SE_PIKE_CURTAIN_OPEN = 0B 01 +SE_PIKE_CURTAIN_CLOSE = 0C 01 +SE_SUDOWOODO_SHAKE = 0D 01 +MUS_LITTLEROOT_TEST = 5E 01 +MUS_GSC_ROUTE38 = 5F 01 +MUS_CAUGHT = 60 01 +MUS_VICTORY_WILD = 61 01 +MUS_VICTORY_GYM_LEADER = 62 01 +MUS_VICTORY_LEAGUE = 63 01 +MUS_C_COMM_CENTER = 64 01 +MUS_GSC_PEWTER = 65 01 +MUS_C_VS_LEGEND_BEAST = 66 01 +MUS_ROUTE101 = 67 01 +MUS_ROUTE110 = 68 01 +MUS_ROUTE120 = 69 01 +MUS_PETALBURG = 6A 01 +MUS_OLDALE = 6B 01 +MUS_GYM = 6C 01 +MUS_SURF = 6D 01 +MUS_PETALBURG_WOODS = 6E 01 +MUS_LEVEL_UP = 6F 01 +MUS_HEAL = 70 01 +MUS_OBTAIN_BADGE = 71 01 +MUS_OBTAIN_ITEM = 72 01 +MUS_EVOLVED = 73 01 +MUS_OBTAIN_TMHM = 74 01 +MUS_LILYCOVE_MUSEUM = 75 01 +MUS_ROUTE122 = 76 01 +MUS_OCEANIC_MUSEUM = 77 01 +MUS_EVOLUTION_INTRO = 78 01 +MUS_EVOLUTION = 79 01 +MUS_MOVE_DELETED = 7A 01 +MUS_ENCOUNTER_GIRL = 7B 01 +MUS_ENCOUNTER_MALE = 7C 01 +MUS_ABANDONED_SHIP = 7D 01 +MUS_FORTREE = 7E 01 +MUS_BIRCH_LAB = 7F 01 +MUS_B_TOWER_RS = 80 01 +MUS_ENCOUNTER_SWIMMER = 81 01 +MUS_CAVE_OF_ORIGIN = 82 01 +MUS_OBTAIN_BERRY = 83 01 +MUS_AWAKEN_LEGEND = 84 01 +MUS_SLOTS_JACKPOT = 85 01 +MUS_SLOTS_WIN = 86 01 +MUS_TOO_BAD = 87 01 +MUS_ROULETTE = 88 01 +MUS_LINK_CONTEST_P1 = 89 01 +MUS_LINK_CONTEST_P2 = 8A 01 +MUS_LINK_CONTEST_P3 = 8B 01 +MUS_LINK_CONTEST_P4 = 8C 01 +MUS_ENCOUNTER_GENTLEMAN = 8D 01 +MUS_VERDANTURF = 8E 01 +MUS_RUSTBORO = 8F 01 +MUS_POKE_CENTER = 90 01 +MUS_ROUTE104 = 91 01 +MUS_ROUTE119 = 92 01 MUS_CYCLING = 93 01 -MUS_FRIENDLY = 94 01 -MUS_MISHIRO = 95 01 -MUS_TOZAN = 96 01 -MUS_GIRLEYE = 97 01 -MUS_MINAMO = 98 01 -MUS_ASHROAD = 99 01 -MUS_EVENT0 = 9A 01 -MUS_DEEPDEEP = 9B 01 -MUS_KACHI1 = 9C 01 -MUS_TITLE3 = 9D 01 -MUS_DEMO1 = 9E 01 -MUS_GIRL_SUP = 9F 01 -MUS_HAGESHII = A0 01 -MUS_KAKKOII = A1 01 -MUS_KAZANBAI = A2 01 -MUS_AQA_0 = A3 01 -MUS_TSURETEK = A4 01 -MUS_BOY_SUP = A5 01 -MUS_RAINBOW = A6 01 -MUS_AYASII = A7 01 -MUS_KACHI4 = A8 01 -MUS_ROPEWAY = A9 01 -MUS_CASINO = AA 01 -MUS_HIGHTOWN = AB 01 -MUS_SAFARI = AC 01 -MUS_C_ROAD = AD 01 -MUS_AJITO = AE 01 -MUS_M_BOAT = AF 01 -MUS_M_DUNGON = B0 01 -MUS_FINECITY = B1 01 -MUS_MACHUPI = B2 01 -MUS_P_SCHOOL = B3 01 -MUS_DENDOU = B4 01 -MUS_TONEKUSA = B5 01 -MUS_MABOROSI = B6 01 -MUS_CON_FAN = B7 01 -MUS_CONTEST0 = B8 01 -MUS_MGM0 = B9 01 -MUS_T_BATTLE = BA 01 -MUS_OOAME = BB 01 -MUS_HIDERI = BC 01 -MUS_RUNECITY = BD 01 -MUS_CON_K = BE 01 -MUS_EIKOU_R = BF 01 -MUS_KARAKURI = C0 01 -MUS_HUTAGO = C1 01 -MUS_SITENNOU = C2 01 -MUS_YAMA_EYE = C3 01 -MUS_CONLOBBY = C4 01 -MUS_INTER_V = C5 01 -MUS_DAIGO = C6 01 -MUS_THANKFOR = C7 01 +MUS_POKE_MART = 94 01 +MUS_LITTLEROOT = 95 01 +MUS_MT_CHIMNEY = 96 01 +MUS_ENCOUNTER_FEMALE = 97 01 +MUS_LILYCOVE = 98 01 +MUS_ROUTE111 = 99 01 +MUS_HELP = 9A 01 +MUS_UNDERWATER = 9B 01 +MUS_VICTORY_TRAINER = 9C 01 +MUS_TITLE = 9D 01 +MUS_INTRO = 9E 01 +MUS_ENCOUNTER_MAY = 9F 01 +MUS_ENCOUNTER_PSYCHIC = A0 01 +MUS_ENCOUNTER_COOLTRAINER = A1 01 +MUS_ROUTE113 = A2 01 +MUS_ENCOUNTER_AQUA = A3 01 +MUS_FOLLOW_ME = A4 01 +MUS_ENCOUNTER_BRENDAN = A5 01 +MUS_EVER_GRANDE = A6 01 +MUS_ENCOUNTER_HEX_MANIAC = A7 01 +MUS_VICTORY_AQUA_MAGMA = A8 01 +MUS_CABLE_CAR = A9 01 +MUS_GAME_CORNER = AA 01 +MUS_DEWFORD = AB 01 +MUS_SAFARI_ZONE = AC 01 +MUS_VICTORY_ROAD = AD 01 +MUS_AQUA_MAGMA_HIDEOUT = AE 01 +MUS_SAILING = AF 01 +MUS_MT_PYRE = B0 01 +MUS_SLATEPORT = B1 01 +MUS_MT_PYRE_EXTERIOR = B2 01 +MUS_SCHOOL = B3 01 +MUS_HALL_OF_FAME = B4 01 +MUS_FALLARBOR = B5 01 +MUS_SEALED_CHAMBER = B6 01 +MUS_CONTEST_WINNER = B7 01 +MUS_CONTEST = B8 01 +MUS_ENCOUNTER_MAGMA = B9 01 +MUS_INTRO_BATTLE = BA 01 +MUS_ABNORMAL_WEATHER = BB 01 +MUS_WEATHER_GROUDON = BC 01 +MUS_SOOTOPOLIS = BD 01 +MUS_CONTEST_RESULTS = BE 01 +MUS_HALL_OF_FAME_ROOM = BF 01 +MUS_TRICK_HOUSE = C0 01 +MUS_ENCOUNTER_TWINS = C1 01 +MUS_ENCOUNTER_ELITE_FOUR = C2 01 +MUS_ENCOUNTER_HIKER = C3 01 +MUS_CONTEST_LOBBY = C4 01 +MUS_ENCOUNTER_INTERVIEWER = C5 01 +MUS_ENCOUNTER_CHAMPION = C6 01 +MUS_CREDITS = C7 01 MUS_END = C8 01 MUS_B_FRONTIER = C9 01 MUS_B_ARENA = CA 01 -MUS_ME_POINTGET = CB 01 -MUS_ME_TORE_EYE = CC 01 -MUS_PYRAMID = CD 01 -MUS_PYRAMID_TOP = CE 01 +MUS_OBTAIN_B_POINTS = CB 01 +MUS_REGISTER_MATCH_CALL = CC 01 +MUS_B_PYRAMID = CD 01 +MUS_B_PYRAMID_TOP = CE 01 MUS_B_PALACE = CF 01 -MUS_REKKUU_KOURIN = D0 01 -MUS_SATTOWER = D1 01 -MUS_ME_SYMBOLGET = D2 01 +MUS_RAYQUAZA_APPEARS = D0 01 +MUS_B_TOWER = D1 01 +MUS_OBTAIN_SYMBOL = D2 01 MUS_B_DOME = D3 01 -MUS_B_TUBE = D4 01 +MUS_B_PIKE = D4 01 MUS_B_FACTORY = D5 01 -MUS_VS_REKKU = D6 01 -MUS_VS_FRONT = D7 01 +MUS_VS_RAYQUAZA = D6 01 +MUS_VS_FRONTIER_BRAIN = D7 01 MUS_VS_MEW = D8 01 -MUS_B_DOME1 = D9 01 -MUS_BATTLE27 = DA 01 -MUS_BATTLE31 = DB 01 -MUS_BATTLE20 = DC 01 -MUS_BATTLE32 = DD 01 -MUS_BATTLE33 = DE 01 -MUS_BATTLE36 = DF 01 -MUS_BATTLE34 = E0 01 -MUS_BATTLE35 = E1 01 -MUS_BATTLE38 = E2 01 -MUS_BATTLE30 = E3 01 -MUS_RG_ANNAI = E4 01 -MUS_RG_SLOT = E5 01 -MUS_RG_AJITO = E6 01 +MUS_B_DOME_LOBBY = D9 01 +MUS_VS_WILD = DA 01 +MUS_VS_AQUA_MAGMA = DB 01 +MUS_VS_TRAINER = DC 01 +MUS_VS_GYM_LEADER = DD 01 +MUS_VS_CHAMPION = DE 01 +MUS_VS_REGI = DF 01 +MUS_VS_KYOGRE_GROUDON = E0 01 +MUS_VS_RIVAL = E1 01 +MUS_VS_ELITE_FOUR = E2 01 +MUS_VS_AQUA_MAGMA_LEADER = E3 01 +MUS_RG_FOLLOW_ME = E4 01 +MUS_RG_GAME_CORNER = E5 01 +MUS_RG_ROCKET_HIDEOUT = E6 01 MUS_RG_GYM = E7 01 -MUS_RG_PURIN = E8 01 -MUS_RG_DEMO = E9 01 +MUS_RG_JIGGLYPUFF = E8 01 +MUS_RG_INTRO_FIGHT = E9 01 MUS_RG_TITLE = EA 01 -MUS_RG_GUREN = EB 01 -MUS_RG_SHION = EC 01 -MUS_RG_KAIHUKU = ED 01 +MUS_RG_CINNABAR = EB 01 +MUS_RG_LAVENDER = EC 01 +MUS_RG_HEAL = ED 01 MUS_RG_CYCLING = EE 01 -MUS_RG_ROCKET = EF 01 -MUS_RG_SHOUJO = F0 01 -MUS_RG_SHOUNEN = F1 01 -MUS_RG_DENDOU = F2 01 -MUS_RG_T_MORI = F3 01 -MUS_RG_OTSUKIMI = F4 01 -MUS_RG_POKEYASHI = F5 01 -MUS_RG_ENDING = F6 01 -MUS_RG_LOAD01 = F7 01 -MUS_RG_OPENING = F8 01 -MUS_RG_LOAD02 = F9 01 -MUS_RG_LOAD03 = FA 01 -MUS_RG_CHAMP_R = FB 01 -MUS_RG_VS_GYM = FC 01 -MUS_RG_VS_TORE = FD 01 -MUS_RG_VS_YASEI = FE 01 -MUS_RG_VS_LAST = FF 01 -MUS_RG_MASARA = 00 02 -MUS_RG_KENKYU = 01 02 -MUS_RG_OHKIDO = 02 02 -MUS_RG_POKECEN = 03 02 -MUS_RG_SANTOAN = 04 02 -MUS_RG_NAMINORI = 05 02 -MUS_RG_P_TOWER = 06 02 -MUS_RG_SHIRUHU = 07 02 -MUS_RG_HANADA = 08 02 -MUS_RG_TAMAMUSI = 09 02 -MUS_RG_WIN_TRE = 0A 02 -MUS_RG_WIN_YASEI = 0B 02 -MUS_RG_WIN_GYM = 0C 02 -MUS_RG_KUCHIBA = 0D 02 -MUS_RG_NIBI = 0E 02 -MUS_RG_RIVAL1 = 0F 02 -MUS_RG_RIVAL2 = 10 02 -MUS_RG_FAN2 = 11 02 -MUS_RG_FAN5 = 12 02 -MUS_RG_FAN6 = 13 02 -MUS_ME_RG_PHOTO = 14 02 -MUS_RG_TITLEROG = 15 02 -MUS_RG_GET_YASEI = 16 02 -MUS_RG_SOUSA = 17 02 -MUS_RG_SEKAIKAN = 18 02 -MUS_RG_SEIBETU = 19 02 -MUS_RG_JUMP = 1A 02 -MUS_RG_UNION = 1B 02 -MUS_RG_NETWORK = 1C 02 -MUS_RG_OKURIMONO = 1D 02 -MUS_RG_KINOMIKUI = 1E 02 -MUS_RG_NANADUNGEON = 1F 02 -MUS_RG_OSHIE_TV = 20 02 -MUS_RG_NANASHIMA = 21 02 -MUS_RG_NANAISEKI = 22 02 -MUS_RG_NANA123 = 23 02 -MUS_RG_NANA45 = 24 02 -MUS_RG_NANA67 = 25 02 -MUS_RG_POKEFUE = 26 02 -MUS_RG_VS_DEO = 27 02 -MUS_RG_VS_MYU2 = 28 02 -MUS_RG_VS_DEN = 29 02 -MUS_RG_EXEYE = 2A 02 -MUS_RG_DEOEYE = 2B 02 -MUS_RG_T_TOWER = 2C 02 -MUS_RG_SLOWMASARA = 2D 02 -MUS_RG_TVNOIZE = 2E 02 +MUS_RG_ENCOUNTER_ROCKET = EF 01 +MUS_RG_ENCOUNTER_GIRL = F0 01 +MUS_RG_ENCOUNTER_BOY = F1 01 +MUS_RG_HALL_OF_FAME = F2 01 +MUS_RG_VIRIDIAN_FOREST = F3 01 +MUS_RG_MT_MOON = F4 01 +MUS_RG_POKE_MANSION = F5 01 +MUS_RG_CREDITS = F6 01 +MUS_RG_ROUTE1 = F7 01 +MUS_RG_ROUTE24 = F8 01 +MUS_RG_ROUTE3 = F9 01 +MUS_RG_ROUTE11 = FA 01 +MUS_RG_VICTORY_ROAD = FB 01 +MUS_RG_VS_GYM_LEADER = FC 01 +MUS_RG_VS_TRAINER = FD 01 +MUS_RG_VS_WILD = FE 01 +MUS_RG_VS_CHAMPION = FF 01 +MUS_RG_PALLET = 00 02 +MUS_RG_OAK_LAB = 01 02 +MUS_RG_OAK = 02 02 +MUS_RG_POKE_CENTER = 03 02 +MUS_RG_SS_ANNE = 04 02 +MUS_RG_SURF = 05 02 +MUS_RG_POKE_TOWER = 06 02 +MUS_RG_SILPH = 07 02 +MUS_RG_FUCHSIA = 08 02 +MUS_RG_CELADON = 09 02 +MUS_RG_VICTORY_TRAINER = 0A 02 +MUS_RG_VICTORY_WILD = 0B 02 +MUS_RG_VICTORY_GYM_LEADER = 0C 02 +MUS_RG_VERMILLION = 0D 02 +MUS_RG_PEWTER = 0E 02 +MUS_RG_ENCOUNTER_RIVAL = 0F 02 +MUS_RG_RIVAL_EXIT = 10 02 +MUS_RG_DEX_RATING = 11 02 +MUS_RG_OBTAIN_KEY_ITEM = 12 02 +MUS_RG_CAUGHT_INTRO = 13 02 +MUS_RG_PHOTO = 14 02 +MUS_RG_GAME_FREAK = 15 02 +MUS_RG_CAUGHT = 16 02 +MUS_RG_NEW_GAME_INSTRUCT = 17 02 +MUS_RG_NEW_GAME_INTRO = 18 02 +MUS_RG_NEW_GAME_EXIT = 19 02 +MUS_RG_POKE_JUMP = 1A 02 +MUS_RG_UNION_ROOM = 1B 02 +MUS_RG_NET_CENTER = 1C 02 +MUS_RG_MYSTERY_GIFT = 1D 02 +MUS_RG_BERRY_PICK = 1E 02 +MUS_RG_SEVII_CAVE = 1F 02 +MUS_RG_TEACHY_TV_SHOW = 20 02 +MUS_RG_SEVII_ROUTE = 21 02 +MUS_RG_SEVII_DUNGEON = 22 02 +MUS_RG_SEVII_123 = 23 02 +MUS_RG_SEVII_45 = 24 02 +MUS_RG_SEVII_67 = 25 02 +MUS_RG_POKE_FLUTE = 26 02 +MUS_RG_VS_DEOXYS = 27 02 +MUS_RG_VS_MEWTWO = 28 02 +MUS_RG_VS_LEGEND = 29 02 +MUS_RG_ENCOUNTER_GYM_LEADER = 2A 02 +MUS_RG_ENCOUNTER_DEOXYS = 2B 02 +MUS_RG_TRAINER_TOWER = 2C 02 +MUS_RG_SLOW_PALLET = 2D 02 +MUS_RG_TEACHY_TV_MENU = 2E 02 PH_TRAP_BLEND = 2F 02 PH_TRAP_HELD = 30 02 PH_TRAP_SOLO = 31 02 diff --git a/berry_fix/payload/charmap.txt b/berry_fix/payload/charmap.txt index 94eabe8bce..e6184b8e1a 100644 --- a/berry_fix/payload/charmap.txt +++ b/berry_fix/payload/charmap.txt @@ -454,7 +454,7 @@ DYNAMIC_COLOR6 = 0F @ cerulean @ sound and music MUS_DUMMY = 00 00 -SE_KAIFUKU = 01 00 +SE_USE_ITEM = 01 00 SE_PC_LOGIN = 02 00 SE_PC_OFF = 03 00 SE_PC_ON = 04 00 @@ -462,476 +462,476 @@ SE_SELECT = 05 00 SE_WIN_OPEN = 06 00 SE_WALL_HIT = 07 00 SE_DOOR = 08 00 -SE_KAIDAN = 09 00 -SE_DANSA = 0A 00 -SE_JITENSYA = 0B 00 -SE_KOUKA_L = 0C 00 -SE_KOUKA_M = 0D 00 -SE_KOUKA_H = 0E 00 -SE_BOWA2 = 0F 00 -SE_POKE_DEAD = 10 00 -SE_NIGERU = 11 00 -SE_JIDO_DOA = 12 00 -SE_NAMINORI = 13 00 -SE_BAN = 14 00 +SE_EXIT = 09 00 +SE_LEDGE = 0A 00 +SE_BIKE_BELL = 0B 00 +SE_NOT_EFFECTIVE = 0C 00 +SE_EFFECTIVE = 0D 00 +SE_SUPER_EFFECTIVE = 0E 00 +SE_BALL_OPEN = 0F 00 +SE_FAINT = 10 00 +SE_FLEE = 11 00 +SE_SLIDING_DOOR = 12 00 +SE_SHIP = 13 00 +SE_BANG = 14 00 SE_PIN = 15 00 SE_BOO = 16 00 -SE_BOWA = 17 00 -SE_JYUNI = 18 00 +SE_BALL = 17 00 +SE_CONTEST_PLACE = 18 00 SE_A = 19 00 SE_I = 1A 00 SE_U = 1B 00 SE_E = 1C 00 SE_O = 1D 00 SE_N = 1E 00 -SE_SEIKAI = 1F 00 -SE_HAZURE = 20 00 +SE_SUCCESS = 1F 00 +SE_FAILURE = 20 00 SE_EXP = 21 00 -SE_JITE_PYOKO = 22 00 -SE_MU_PACHI = 23 00 -SE_TK_KASYA = 24 00 +SE_BIKE_HOP = 22 00 +SE_SWITCH = 23 00 +SE_CLICK = 24 00 SE_FU_ZAKU = 25 00 -SE_FU_ZAKU2 = 26 00 -SE_FU_ZUZUZU = 27 00 -SE_RU_GASHIN = 28 00 -SE_RU_GASYAN = 29 00 -SE_RU_BARI = 2A 00 -SE_RU_HYUU = 2B 00 -SE_KI_GASYAN = 2C 00 -SE_TK_WARPIN = 2D 00 -SE_TK_WARPOUT = 2E 00 -SE_TU_SAA = 2F 00 -SE_HI_TURUN = 30 00 -SE_TRACK_MOVE = 31 00 -SE_TRACK_STOP = 32 00 -SE_TRACK_HAIKI = 33 00 -SE_TRACK_DOOR = 34 00 -SE_MOTER = 35 00 +SE_CONTEST_CONDITION_LOSE = 26 00 +SE_LAVARIDGE_FALL_WARP = 27 00 +SE_ICE_STAIRS = 28 00 +SE_ICE_BREAK = 29 00 +SE_ICE_CRACK = 2A 00 +SE_FALL = 2B 00 +SE_UNLOCK = 2C 00 +SE_WARP_IN = 2D 00 +SE_WARP_OUT = 2E 00 +SE_REPEL = 2F 00 +SE_ROTATING_GATE = 30 00 +SE_TRUCK_MOVE = 31 00 +SE_TRUCK_STOP = 32 00 +SE_TRUCK_UNLOAD = 33 00 +SE_TRUCK_DOOR = 34 00 +SE_BERRY_BLENDER = 35 00 SE_CARD = 36 00 SE_SAVE = 37 00 -SE_KON = 38 00 -SE_KON2 = 39 00 -SE_KON3 = 3A 00 -SE_KON4 = 3B 00 -SE_SUIKOMU = 3C 00 -SE_NAGERU = 3D 00 -SE_TOY_C = 3E 00 -SE_TOY_D = 3F 00 -SE_TOY_E = 40 00 -SE_TOY_F = 41 00 -SE_TOY_G = 42 00 -SE_TOY_A = 43 00 -SE_TOY_B = 44 00 -SE_TOY_C1 = 45 00 -SE_MIZU = 46 00 -SE_HASHI = 47 00 -SE_DAUGI = 48 00 -SE_PINPON = 49 00 -SE_FUUSEN1 = 4A 00 -SE_FUUSEN2 = 4B 00 -SE_FUUSEN3 = 4C 00 -SE_TOY_KABE = 4D 00 -SE_TOY_DANGO = 4E 00 -SE_DOKU = 4F 00 -SE_ESUKA = 50 00 -SE_T_AME = 51 00 -SE_T_AME_E = 52 00 -SE_T_OOAME = 53 00 -SE_T_OOAME_E = 54 00 -SE_T_KOAME = 55 00 -SE_T_KOAME_E = 56 00 -SE_T_KAMI = 57 00 -SE_T_KAMI2 = 58 00 -SE_ELEBETA = 59 00 -SE_HINSI = 5A 00 -SE_EXPMAX = 5B 00 -SE_TAMAKORO = 5C 00 -SE_TAMAKORO_E = 5D 00 -SE_BASABASA = 5E 00 -SE_REGI = 5F 00 -SE_C_GAJI = 60 00 -SE_C_MAKU_U = 61 00 -SE_C_MAKU_D = 62 00 -SE_C_PASI = 63 00 -SE_C_SYU = 64 00 -SE_C_PIKON = 65 00 -SE_REAPOKE = 66 00 -SE_OP_BASYU = 67 00 -SE_BT_START = 68 00 -SE_DENDOU = 69 00 -SE_JIHANKI = 6A 00 -SE_TAMA = 6B 00 -SE_Z_SCROLL = 6C 00 -SE_Z_PAGE = 6D 00 -SE_PN_ON = 6E 00 -SE_PN_OFF = 6F 00 -SE_Z_SEARCH = 70 00 -SE_TAMAGO = 71 00 -SE_TB_START = 72 00 -SE_TB_KON = 73 00 -SE_TB_KARA = 74 00 -SE_BIDORO = 75 00 -SE_W085 = 76 00 -SE_W085B = 77 00 -SE_W231 = 78 00 -SE_W171 = 79 00 -SE_W233 = 7A 00 -SE_W233B = 7B 00 -SE_W145 = 7C 00 -SE_W145B = 7D 00 -SE_W145C = 7E 00 -SE_W240 = 7F 00 -SE_W015 = 80 00 -SE_W081 = 81 00 -SE_W081B = 82 00 -SE_W088 = 83 00 -SE_W016 = 84 00 -SE_W016B = 85 00 -SE_W003 = 86 00 -SE_W104 = 87 00 -SE_W013 = 88 00 -SE_W196 = 89 00 -SE_W086 = 8A 00 -SE_W004 = 8B 00 -SE_W025 = 8C 00 -SE_W025B = 8D 00 -SE_W152 = 8E 00 -SE_W026 = 8F 00 -SE_W172 = 90 00 -SE_W172B = 91 00 -SE_W053 = 92 00 -SE_W007 = 93 00 -SE_W092 = 94 00 -SE_W221 = 95 00 -SE_W221B = 96 00 -SE_W052 = 97 00 -SE_W036 = 98 00 -SE_W059 = 99 00 -SE_W059B = 9A 00 -SE_W010 = 9B 00 -SE_W011 = 9C 00 -SE_W017 = 9D 00 -SE_W019 = 9E 00 -SE_W028 = 9F 00 -SE_W013B = A0 00 -SE_W044 = A1 00 -SE_W029 = A2 00 -SE_W057 = A3 00 -SE_W056 = A4 00 -SE_W250 = A5 00 -SE_W030 = A6 00 -SE_W039 = A7 00 -SE_W054 = A8 00 -SE_W077 = A9 00 -SE_W020 = AA 00 -SE_W082 = AB 00 -SE_W047 = AC 00 -SE_W195 = AD 00 -SE_W006 = AE 00 -SE_W091 = AF 00 -SE_W146 = B0 00 -SE_W120 = B1 00 -SE_W153 = B2 00 -SE_W071B = B3 00 -SE_W071 = B4 00 -SE_W103 = B5 00 -SE_W062 = B6 00 -SE_W062B = B7 00 -SE_W048 = B8 00 -SE_W187 = B9 00 -SE_W118 = BA 00 -SE_W155 = BB 00 -SE_W122 = BC 00 -SE_W060 = BD 00 -SE_W185 = BE 00 -SE_W014 = BF 00 -SE_W043 = C0 00 -SE_W207 = C1 00 -SE_W207B = C2 00 -SE_W215 = C3 00 -SE_W109 = C4 00 -SE_W173 = C5 00 -SE_W280 = C6 00 -SE_W202 = C7 00 -SE_W060B = C8 00 -SE_W076 = C9 00 -SE_W080 = CA 00 -SE_W100 = CB 00 -SE_W107 = CC 00 -SE_W166 = CD 00 -SE_W129 = CE 00 -SE_W115 = CF 00 -SE_W112 = D0 00 -SE_W197 = D1 00 -SE_W199 = D2 00 -SE_W236 = D3 00 -SE_W204 = D4 00 -SE_W268 = D5 00 -SE_W070 = D6 00 -SE_W063 = D7 00 -SE_W127 = D8 00 -SE_W179 = D9 00 -SE_W151 = DA 00 -SE_W201 = DB 00 -SE_W161 = DC 00 -SE_W161B = DD 00 -SE_W227 = DE 00 -SE_W227B = DF 00 -SE_W226 = E0 00 -SE_W208 = E1 00 -SE_W213 = E2 00 -SE_W213B = E3 00 -SE_W234 = E4 00 -SE_W260 = E5 00 -SE_W328 = E6 00 -SE_W320 = E7 00 -SE_W255 = E8 00 -SE_W291 = E9 00 -SE_W089 = EA 00 -SE_W239 = EB 00 -SE_W230 = EC 00 -SE_W281 = ED 00 -SE_W327 = EE 00 -SE_W287 = EF 00 -SE_W257 = F0 00 -SE_W253 = F1 00 -SE_W258 = F2 00 -SE_W322 = F3 00 -SE_W298 = F4 00 -SE_W287B = F5 00 -SE_W114 = F6 00 -SE_W063B = F7 00 -SE_RG_W_DOOR = F8 00 -SE_RG_CARD1 = F9 00 -SE_RG_CARD2 = FA 00 -SE_RG_CARD3 = FB 00 -SE_RG_BAG1 = FC 00 -SE_RG_BAG2 = FD 00 -SE_RG_GETTING = FE 00 +SE_BALL_BOUNCE_1 = 38 00 +SE_BALL_BOUNCE_2 = 39 00 +SE_BALL_BOUNCE_3 = 3A 00 +SE_BALL_BOUNCE_4 = 3B 00 +SE_BALL_TRADE = 3C 00 +SE_BALL_THROW = 3D 00 +SE_NOTE_C = 3E 00 +SE_NOTE_D = 3F 00 +SE_NOTE_E = 40 00 +SE_NOTE_F = 41 00 +SE_NOTE_G = 42 00 +SE_NOTE_A = 43 00 +SE_NOTE_B = 44 00 +SE_NOTE_C_HIGH = 45 00 +SE_PUDDLE = 46 00 +SE_BRIDGE_WALK = 47 00 +SE_ITEMFINDER = 48 00 +SE_DING_DONG = 49 00 +SE_BALLOON_RED = 4A 00 +SE_BALLOON_BLUE = 4B 00 +SE_BALLOON_YELLOW = 4C 00 +SE_BREAKABLE_DOOR = 4D 00 +SE_MUD_BALL = 4E 00 +SE_FIELD_POISON = 4F 00 +SE_ESCALATOR = 50 00 +SE_THUNDERSTORM = 51 00 +SE_THUNDERSTORM_STOP = 52 00 +SE_DOWNPOUR = 53 00 +SE_DOWNPOUR_STOP = 54 00 +SE_RAIN = 55 00 +SE_RAIN_STOP = 56 00 +SE_THUNDER = 57 00 +SE_THUNDER2 = 58 00 +SE_ELEVATOR = 59 00 +SE_LOW_HEALTH = 5A 00 +SE_EXP_MAX = 5B 00 +SE_ROULETTE_BALL = 5C 00 +SE_ROULETTE_BALL2 = 5D 00 +SE_TAILLOW_WING_FLAP = 5E 00 +SE_SHOP = 5F 00 +SE_CONTEST_HEART = 60 00 +SE_CONTEST_CURTAIN_RISE = 61 00 +SE_CONTEST_CURTAIN_FALL = 62 00 +SE_CONTEST_ICON_CHANGE = 63 00 +SE_CONTEST_ICON_CLEAR = 64 00 +SE_CONTEST_MONS_TURN = 65 00 +SE_SHINY = 66 00 +SE_INTRO_BLAST = 67 00 +SE_MUGSHOT = 68 00 +SE_APPLAUSE = 69 00 +SE_VEND = 6A 00 +SE_ORB = 6B 00 +SE_DEX_SCROLL = 6C 00 +SE_DEX_PAGE = 6D 00 +SE_POKENAV_ON = 6E 00 +SE_POKENAV_OFF = 6F 00 +SE_DEX_SEARCH = 70 00 +SE_EGG_HATCH = 71 00 +SE_BALL_TRAY_ENTER = 72 00 +SE_BALL_TRAY_BALL = 73 00 +SE_BALL_TRAY_EXIT = 74 00 +SE_GLASS_FLUTE = 75 00 +SE_M_THUNDERBOLT = 76 00 +SE_M_THUNDERBOLT2 = 77 00 +SE_M_HARDEN = 78 00 +SE_M_NIGHTMARE = 79 00 +SE_M_VITAL_THROW = 7A 00 +SE_M_VITAL_THROW2 = 7B 00 +SE_M_BUBBLE = 7C 00 +SE_M_BUBBLE2 = 7D 00 +SE_M_BUBBLE3 = 7E 00 +SE_M_RAIN_DANCE = 7F 00 +SE_M_CUT = 80 00 +SE_M_STRING_SHOT = 81 00 +SE_M_STRING_SHOT2 = 82 00 +SE_M_ROCK_THROW = 83 00 +SE_M_GUST = 84 00 +SE_M_GUST2 = 85 00 +SE_M_DOUBLE_SLAP = 86 00 +SE_M_DOUBLE_TEAM = 87 00 +SE_M_RAZOR_WIND = 88 00 +SE_M_ICY_WIND = 89 00 +SE_M_THUNDER_WAVE = 8A 00 +SE_M_COMET_PUNCH = 8B 00 +SE_M_MEGA_KICK = 8C 00 +SE_M_MEGA_KICK2 = 8D 00 +SE_M_CRABHAMMER = 8E 00 +SE_M_JUMP_KICK = 8F 00 +SE_M_FLAME_WHEEL = 90 00 +SE_M_FLAME_WHEEL2 = 91 00 +SE_M_FLAMETHROWER = 92 00 +SE_M_FIRE_PUNCH = 93 00 +SE_M_TOXIC = 94 00 +SE_M_SACRED_FIRE = 95 00 +SE_M_SACRED_FIRE2 = 96 00 +SE_M_EMBER = 97 00 +SE_M_TAKE_DOWN = 98 00 +SE_M_BLIZZARD = 99 00 +SE_M_BLIZZARD2 = 9A 00 +SE_M_SCRATCH = 9B 00 +SE_M_VICEGRIP = 9C 00 +SE_M_WING_ATTACK = 9D 00 +SE_M_FLY = 9E 00 +SE_M_SAND_ATTACK = 9F 00 +SE_M_RAZOR_WIND2 = A0 00 +SE_M_BITE = A1 00 +SE_M_HEADBUTT = A2 00 +SE_M_SURF = A3 00 +SE_M_HYDRO_PUMP = A4 00 +SE_M_WHIRLPOOL = A5 00 +SE_M_HORN_ATTACK = A6 00 +SE_M_TAIL_WHIP = A7 00 +SE_M_MIST = A8 00 +SE_M_POISON_POWDER = A9 00 +SE_M_BIND = AA 00 +SE_M_DRAGON_RAGE = AB 00 +SE_M_SING = AC 00 +SE_M_PERISH_SONG = AD 00 +SE_M_PAY_DAY = AE 00 +SE_M_DIG = AF 00 +SE_M_DIZZY_PUNCH = B0 00 +SE_M_SELF_DESTRUCT = B1 00 +SE_M_EXPLOSION = B2 00 +SE_M_ABSORB_2 = B3 00 +SE_M_ABSORB = B4 00 +SE_M_SCREECH = B5 00 +SE_M_BUBBLE_BEAM = B6 00 +SE_M_BUBBLE_BEAM2 = B7 00 +SE_M_SUPERSONIC = B8 00 +SE_M_BELLY_DRUM = B9 00 +SE_M_METRONOME = BA 00 +SE_M_BONEMERANG = BB 00 +SE_M_LICK = BC 00 +SE_M_PSYBEAM = BD 00 +SE_M_FAINT_ATTACK = BE 00 +SE_M_SWORDS_DANCE = BF 00 +SE_M_LEER = C0 00 +SE_M_SWAGGER = C1 00 +SE_M_SWAGGER2 = C2 00 +SE_M_HEAL_BELL = C3 00 +SE_M_CONFUSE_RAY = C4 00 +SE_M_SNORE = C5 00 +SE_M_BRICK_BREAK = C6 00 +SE_M_GIGA_DRAIN = C7 00 +SE_M_PSYBEAM2 = C8 00 +SE_M_SOLAR_BEAM = C9 00 +SE_M_PETAL_DANCE = CA 00 +SE_M_TELEPORT = CB 00 +SE_M_MINIMIZE = CC 00 +SE_M_SKETCH = CD 00 +SE_M_SWIFT = CE 00 +SE_M_REFLECT = CF 00 +SE_M_BARRIER = D0 00 +SE_M_DETECT = D1 00 +SE_M_LOCK_ON = D2 00 +SE_M_MOONLIGHT = D3 00 +SE_M_CHARM = D4 00 +SE_M_CHARGE = D5 00 +SE_M_STRENGTH = D6 00 +SE_M_HYPER_BEAM = D7 00 +SE_M_WATERFALL = D8 00 +SE_M_REVERSAL = D9 00 +SE_M_ACID_ARMOR = DA 00 +SE_M_SANDSTORM = DB 00 +SE_M_TRI_ATTACK = DC 00 +SE_M_TRI_ATTACK2 = DD 00 +SE_M_ENCORE = DE 00 +SE_M_ENCORE2 = DF 00 +SE_M_BATON_PASS = E0 00 +SE_M_MILK_DRINK = E1 00 +SE_M_ATTRACT = E2 00 +SE_M_ATTRACT2 = E3 00 +SE_M_MORNING_SUN = E4 00 +SE_M_FLATTER = E5 00 +SE_M_SAND_TOMB = E6 00 +SE_M_GRASSWHISTLE = E7 00 +SE_M_SPIT_UP = E8 00 +SE_M_DIVE = E9 00 +SE_M_EARTHQUAKE = EA 00 +SE_M_TWISTER = EB 00 +SE_M_SWEET_SCENT = EC 00 +SE_M_YAWN = ED 00 +SE_M_SKY_UPPERCUT = EE 00 +SE_M_STAT_INCREASE = EF 00 +SE_M_HEAT_WAVE = F0 00 +SE_M_UPROAR = F1 00 +SE_M_HAIL = F2 00 +SE_M_COSMIC_POWER = F3 00 +SE_M_TEETER_DANCE = F4 00 +SE_M_STAT_DECREASE = F5 00 +SE_M_HAZE = F6 00 +SE_M_HYPER_BEAM2 = F7 00 +SE_RG_DOOR = F8 00 +SE_RG_CARD_FLIP = F9 00 +SE_RG_CARD_FLIPPING = FA 00 +SE_RG_CARD_OPEN = FB 00 +SE_RG_BAG_CURSOR = FC 00 +SE_RG_BAG_POCKET = FD 00 +SE_RG_BALL_CLICK = FE 00 SE_RG_SHOP = FF 00 -SE_RG_KITEKI = 00 01 -SE_RG_HELP_OP = 01 01 -SE_RG_HELP_CL = 02 01 -SE_RG_HELP_NG = 03 01 -SE_RG_DEOMOV = 04 01 -SE_RG_EXCELLENT = 05 01 -SE_RG_NAWAMISS = 06 01 -SE_TOREEYE = 07 01 -SE_TOREOFF = 08 01 -SE_HANTEI1 = 09 01 -SE_HANTEI2 = 0A 01 -SE_CURTAIN = 0B 01 -SE_CURTAIN1 = 0C 01 -SE_USSOKI = 0D 01 -MUS_TETSUJI = 5E 01 -MUS_FIELD13 = 5F 01 -MUS_KACHI22 = 60 01 -MUS_KACHI2 = 61 01 -MUS_KACHI3 = 62 01 -MUS_KACHI5 = 63 01 -MUS_PCC = 64 01 -MUS_NIBI = 65 01 -MUS_SUIKUN = 66 01 -MUS_DOORO1 = 67 01 -MUS_DOORO_X1 = 68 01 -MUS_DOORO_X3 = 69 01 -MUS_MACHI_S2 = 6A 01 -MUS_MACHI_S4 = 6B 01 -MUS_GIM = 6C 01 -MUS_NAMINORI = 6D 01 -MUS_DAN01 = 6E 01 -MUS_FANFA1 = 6F 01 -MUS_ME_ASA = 70 01 -MUS_ME_BACHI = 71 01 -MUS_FANFA4 = 72 01 -MUS_FANFA5 = 73 01 -MUS_ME_WAZA = 74 01 -MUS_BIJYUTU = 75 01 -MUS_DOORO_X4 = 76 01 -MUS_FUNE_KAN = 77 01 -MUS_ME_SHINKA = 78 01 -MUS_SHINKA = 79 01 -MUS_ME_WASURE = 7A 01 -MUS_SYOUJOEYE = 7B 01 -MUS_BOYEYE = 7C 01 -MUS_DAN02 = 7D 01 -MUS_MACHI_S3 = 7E 01 -MUS_ODAMAKI = 7F 01 -MUS_B_TOWER = 80 01 -MUS_SWIMEYE = 81 01 -MUS_DAN03 = 82 01 -MUS_ME_KINOMI = 83 01 -MUS_ME_TAMA = 84 01 -MUS_ME_B_BIG = 85 01 -MUS_ME_B_SMALL = 86 01 -MUS_ME_ZANNEN = 87 01 -MUS_BD_TIME = 88 01 -MUS_TEST1 = 89 01 -MUS_TEST2 = 8A 01 -MUS_TEST3 = 8B 01 -MUS_TEST4 = 8C 01 -MUS_TEST = 8D 01 -MUS_GOMACHI0 = 8E 01 -MUS_GOTOWN = 8F 01 -MUS_POKECEN = 90 01 -MUS_NEXTROAD = 91 01 -MUS_GRANROAD = 92 01 +SE_RG_SS_ANNE_HORN = 00 01 +SE_RG_HELP_OPEN = 01 01 +SE_RG_HELP_CLOSE = 02 01 +SE_RG_HELP_ERROR = 03 01 +SE_RG_DEOXYS_MOVE = 04 01 +SE_RG_POKE_JUMP_SUCCESS = 05 01 +SE_RG_POKE_JUMP_FAILURE = 06 01 +SE_POKENAV_CALL = 07 01 +SE_POKENAV_HANG_UP = 08 01 +SE_ARENA_TIMEUP1 = 09 01 +SE_ARENA_TIMEUP2 = 0A 01 +SE_PIKE_CURTAIN_OPEN = 0B 01 +SE_PIKE_CURTAIN_CLOSE = 0C 01 +SE_SUDOWOODO_SHAKE = 0D 01 +MUS_LITTLEROOT_TEST = 5E 01 +MUS_GSC_ROUTE38 = 5F 01 +MUS_CAUGHT = 60 01 +MUS_VICTORY_WILD = 61 01 +MUS_VICTORY_GYM_LEADER = 62 01 +MUS_VICTORY_LEAGUE = 63 01 +MUS_C_COMM_CENTER = 64 01 +MUS_GSC_PEWTER = 65 01 +MUS_C_VS_LEGEND_BEAST = 66 01 +MUS_ROUTE101 = 67 01 +MUS_ROUTE110 = 68 01 +MUS_ROUTE120 = 69 01 +MUS_PETALBURG = 6A 01 +MUS_OLDALE = 6B 01 +MUS_GYM = 6C 01 +MUS_SURF = 6D 01 +MUS_PETALBURG_WOODS = 6E 01 +MUS_LEVEL_UP = 6F 01 +MUS_HEAL = 70 01 +MUS_OBTAIN_BADGE = 71 01 +MUS_OBTAIN_ITEM = 72 01 +MUS_EVOLVED = 73 01 +MUS_OBTAIN_TMHM = 74 01 +MUS_LILYCOVE_MUSEUM = 75 01 +MUS_ROUTE122 = 76 01 +MUS_OCEANIC_MUSEUM = 77 01 +MUS_EVOLUTION_INTRO = 78 01 +MUS_EVOLUTION = 79 01 +MUS_MOVE_DELETED = 7A 01 +MUS_ENCOUNTER_GIRL = 7B 01 +MUS_ENCOUNTER_MALE = 7C 01 +MUS_ABANDONED_SHIP = 7D 01 +MUS_FORTREE = 7E 01 +MUS_BIRCH_LAB = 7F 01 +MUS_B_TOWER_RS = 80 01 +MUS_ENCOUNTER_SWIMMER = 81 01 +MUS_CAVE_OF_ORIGIN = 82 01 +MUS_OBTAIN_BERRY = 83 01 +MUS_AWAKEN_LEGEND = 84 01 +MUS_SLOTS_JACKPOT = 85 01 +MUS_SLOTS_WIN = 86 01 +MUS_TOO_BAD = 87 01 +MUS_ROULETTE = 88 01 +MUS_LINK_CONTEST_P1 = 89 01 +MUS_LINK_CONTEST_P2 = 8A 01 +MUS_LINK_CONTEST_P3 = 8B 01 +MUS_LINK_CONTEST_P4 = 8C 01 +MUS_ENCOUNTER_GENTLEMAN = 8D 01 +MUS_VERDANTURF = 8E 01 +MUS_RUSTBORO = 8F 01 +MUS_POKE_CENTER = 90 01 +MUS_ROUTE104 = 91 01 +MUS_ROUTE119 = 92 01 MUS_CYCLING = 93 01 -MUS_FRIENDLY = 94 01 -MUS_MISHIRO = 95 01 -MUS_TOZAN = 96 01 -MUS_GIRLEYE = 97 01 -MUS_MINAMO = 98 01 -MUS_ASHROAD = 99 01 -MUS_EVENT0 = 9A 01 -MUS_DEEPDEEP = 9B 01 -MUS_KACHI1 = 9C 01 -MUS_TITLE3 = 9D 01 -MUS_DEMO1 = 9E 01 -MUS_GIRL_SUP = 9F 01 -MUS_HAGESHII = A0 01 -MUS_KAKKOII = A1 01 -MUS_KAZANBAI = A2 01 -MUS_AQA_0 = A3 01 -MUS_TSURETEK = A4 01 -MUS_BOY_SUP = A5 01 -MUS_RAINBOW = A6 01 -MUS_AYASII = A7 01 -MUS_KACHI4 = A8 01 -MUS_ROPEWAY = A9 01 -MUS_CASINO = AA 01 -MUS_HIGHTOWN = AB 01 -MUS_SAFARI = AC 01 -MUS_C_ROAD = AD 01 -MUS_AJITO = AE 01 -MUS_M_BOAT = AF 01 -MUS_M_DUNGON = B0 01 -MUS_FINECITY = B1 01 -MUS_MACHUPI = B2 01 -MUS_P_SCHOOL = B3 01 -MUS_DENDOU = B4 01 -MUS_TONEKUSA = B5 01 -MUS_MABOROSI = B6 01 -MUS_CON_FAN = B7 01 -MUS_CONTEST0 = B8 01 -MUS_MGM0 = B9 01 -MUS_T_BATTLE = BA 01 -MUS_OOAME = BB 01 -MUS_HIDERI = BC 01 -MUS_RUNECITY = BD 01 -MUS_CON_K = BE 01 -MUS_EIKOU_R = BF 01 -MUS_KARAKURI = C0 01 -MUS_HUTAGO = C1 01 -MUS_SITENNOU = C2 01 -MUS_YAMA_EYE = C3 01 -MUS_CONLOBBY = C4 01 -MUS_INTER_V = C5 01 -MUS_DAIGO = C6 01 -MUS_THANKFOR = C7 01 +MUS_POKE_MART = 94 01 +MUS_LITTLEROOT = 95 01 +MUS_MT_CHIMNEY = 96 01 +MUS_ENCOUNTER_FEMALE = 97 01 +MUS_LILYCOVE = 98 01 +MUS_ROUTE111 = 99 01 +MUS_HELP = 9A 01 +MUS_UNDERWATER = 9B 01 +MUS_VICTORY_TRAINER = 9C 01 +MUS_TITLE = 9D 01 +MUS_INTRO = 9E 01 +MUS_ENCOUNTER_MAY = 9F 01 +MUS_ENCOUNTER_PSYCHIC = A0 01 +MUS_ENCOUNTER_COOLTRAINER = A1 01 +MUS_ROUTE113 = A2 01 +MUS_ENCOUNTER_AQUA = A3 01 +MUS_FOLLOW_ME = A4 01 +MUS_ENCOUNTER_BRENDAN = A5 01 +MUS_EVER_GRANDE = A6 01 +MUS_ENCOUNTER_HEX_MANIAC = A7 01 +MUS_VICTORY_AQUA_MAGMA = A8 01 +MUS_CABLE_CAR = A9 01 +MUS_GAME_CORNER = AA 01 +MUS_DEWFORD = AB 01 +MUS_SAFARI_ZONE = AC 01 +MUS_VICTORY_ROAD = AD 01 +MUS_AQUA_MAGMA_HIDEOUT = AE 01 +MUS_SAILING = AF 01 +MUS_MT_PYRE = B0 01 +MUS_SLATEPORT = B1 01 +MUS_MT_PYRE_EXTERIOR = B2 01 +MUS_SCHOOL = B3 01 +MUS_HALL_OF_FAME = B4 01 +MUS_FALLARBOR = B5 01 +MUS_SEALED_CHAMBER = B6 01 +MUS_CONTEST_WINNER = B7 01 +MUS_CONTEST = B8 01 +MUS_ENCOUNTER_MAGMA = B9 01 +MUS_INTRO_BATTLE = BA 01 +MUS_ABNORMAL_WEATHER = BB 01 +MUS_WEATHER_GROUDON = BC 01 +MUS_SOOTOPOLIS = BD 01 +MUS_CONTEST_RESULTS = BE 01 +MUS_HALL_OF_FAME_ROOM = BF 01 +MUS_TRICK_HOUSE = C0 01 +MUS_ENCOUNTER_TWINS = C1 01 +MUS_ENCOUNTER_ELITE_FOUR = C2 01 +MUS_ENCOUNTER_HIKER = C3 01 +MUS_CONTEST_LOBBY = C4 01 +MUS_ENCOUNTER_INTERVIEWER = C5 01 +MUS_ENCOUNTER_CHAMPION = C6 01 +MUS_CREDITS = C7 01 MUS_END = C8 01 MUS_B_FRONTIER = C9 01 MUS_B_ARENA = CA 01 -MUS_ME_POINTGET = CB 01 -MUS_ME_TORE_EYE = CC 01 -MUS_PYRAMID = CD 01 -MUS_PYRAMID_TOP = CE 01 +MUS_OBTAIN_B_POINTS = CB 01 +MUS_REGISTER_MATCH_CALL = CC 01 +MUS_B_PYRAMID = CD 01 +MUS_B_PYRAMID_TOP = CE 01 MUS_B_PALACE = CF 01 -MUS_REKKUU_KOURIN = D0 01 -MUS_SATTOWER = D1 01 -MUS_ME_SYMBOLGET = D2 01 +MUS_RAYQUAZA_APPEARS = D0 01 +MUS_B_TOWER = D1 01 +MUS_OBTAIN_SYMBOL = D2 01 MUS_B_DOME = D3 01 -MUS_B_TUBE = D4 01 +MUS_B_PIKE = D4 01 MUS_B_FACTORY = D5 01 -MUS_VS_REKKU = D6 01 -MUS_VS_FRONT = D7 01 +MUS_VS_RAYQUAZA = D6 01 +MUS_VS_FRONTIER_BRAIN = D7 01 MUS_VS_MEW = D8 01 -MUS_B_DOME1 = D9 01 -MUS_BATTLE27 = DA 01 -MUS_BATTLE31 = DB 01 -MUS_BATTLE20 = DC 01 -MUS_BATTLE32 = DD 01 -MUS_BATTLE33 = DE 01 -MUS_BATTLE36 = DF 01 -MUS_BATTLE34 = E0 01 -MUS_BATTLE35 = E1 01 -MUS_BATTLE38 = E2 01 -MUS_BATTLE30 = E3 01 -MUS_RG_ANNAI = E4 01 -MUS_RG_SLOT = E5 01 -MUS_RG_AJITO = E6 01 +MUS_B_DOME_LOBBY = D9 01 +MUS_VS_WILD = DA 01 +MUS_VS_AQUA_MAGMA = DB 01 +MUS_VS_TRAINER = DC 01 +MUS_VS_GYM_LEADER = DD 01 +MUS_VS_CHAMPION = DE 01 +MUS_VS_REGI = DF 01 +MUS_VS_KYOGRE_GROUDON = E0 01 +MUS_VS_RIVAL = E1 01 +MUS_VS_ELITE_FOUR = E2 01 +MUS_VS_AQUA_MAGMA_LEADER = E3 01 +MUS_RG_FOLLOW_ME = E4 01 +MUS_RG_GAME_CORNER = E5 01 +MUS_RG_ROCKET_HIDEOUT = E6 01 MUS_RG_GYM = E7 01 -MUS_RG_PURIN = E8 01 -MUS_RG_DEMO = E9 01 +MUS_RG_JIGGLYPUFF = E8 01 +MUS_RG_INTRO_FIGHT = E9 01 MUS_RG_TITLE = EA 01 -MUS_RG_GUREN = EB 01 -MUS_RG_SHION = EC 01 -MUS_RG_KAIHUKU = ED 01 +MUS_RG_CINNABAR = EB 01 +MUS_RG_LAVENDER = EC 01 +MUS_RG_HEAL = ED 01 MUS_RG_CYCLING = EE 01 -MUS_RG_ROCKET = EF 01 -MUS_RG_SHOUJO = F0 01 -MUS_RG_SHOUNEN = F1 01 -MUS_RG_DENDOU = F2 01 -MUS_RG_T_MORI = F3 01 -MUS_RG_OTSUKIMI = F4 01 -MUS_RG_POKEYASHI = F5 01 -MUS_RG_ENDING = F6 01 -MUS_RG_LOAD01 = F7 01 -MUS_RG_OPENING = F8 01 -MUS_RG_LOAD02 = F9 01 -MUS_RG_LOAD03 = FA 01 -MUS_RG_CHAMP_R = FB 01 -MUS_RG_VS_GYM = FC 01 -MUS_RG_VS_TORE = FD 01 -MUS_RG_VS_YASEI = FE 01 -MUS_RG_VS_LAST = FF 01 -MUS_RG_MASARA = 00 02 -MUS_RG_KENKYU = 01 02 -MUS_RG_OHKIDO = 02 02 -MUS_RG_POKECEN = 03 02 -MUS_RG_SANTOAN = 04 02 -MUS_RG_NAMINORI = 05 02 -MUS_RG_P_TOWER = 06 02 -MUS_RG_SHIRUHU = 07 02 -MUS_RG_HANADA = 08 02 -MUS_RG_TAMAMUSI = 09 02 -MUS_RG_WIN_TRE = 0A 02 -MUS_RG_WIN_YASEI = 0B 02 -MUS_RG_WIN_GYM = 0C 02 -MUS_RG_KUCHIBA = 0D 02 -MUS_RG_NIBI = 0E 02 -MUS_RG_RIVAL1 = 0F 02 -MUS_RG_RIVAL2 = 10 02 -MUS_RG_FAN2 = 11 02 -MUS_RG_FAN5 = 12 02 -MUS_RG_FAN6 = 13 02 -MUS_ME_RG_PHOTO = 14 02 -MUS_RG_TITLEROG = 15 02 -MUS_RG_GET_YASEI = 16 02 -MUS_RG_SOUSA = 17 02 -MUS_RG_SEKAIKAN = 18 02 -MUS_RG_SEIBETU = 19 02 -MUS_RG_JUMP = 1A 02 -MUS_RG_UNION = 1B 02 -MUS_RG_NETWORK = 1C 02 -MUS_RG_OKURIMONO = 1D 02 -MUS_RG_KINOMIKUI = 1E 02 -MUS_RG_NANADUNGEON = 1F 02 -MUS_RG_OSHIE_TV = 20 02 -MUS_RG_NANASHIMA = 21 02 -MUS_RG_NANAISEKI = 22 02 -MUS_RG_NANA123 = 23 02 -MUS_RG_NANA45 = 24 02 -MUS_RG_NANA67 = 25 02 -MUS_RG_POKEFUE = 26 02 -MUS_RG_VS_DEO = 27 02 -MUS_RG_VS_MYU2 = 28 02 -MUS_RG_VS_DEN = 29 02 -MUS_RG_EXEYE = 2A 02 -MUS_RG_DEOEYE = 2B 02 -MUS_RG_T_TOWER = 2C 02 -MUS_RG_SLOWMASARA = 2D 02 -MUS_RG_TVNOIZE = 2E 02 +MUS_RG_ENCOUNTER_ROCKET = EF 01 +MUS_RG_ENCOUNTER_GIRL = F0 01 +MUS_RG_ENCOUNTER_BOY = F1 01 +MUS_RG_HALL_OF_FAME = F2 01 +MUS_RG_VIRIDIAN_FOREST = F3 01 +MUS_RG_MT_MOON = F4 01 +MUS_RG_POKE_MANSION = F5 01 +MUS_RG_CREDITS = F6 01 +MUS_RG_ROUTE1 = F7 01 +MUS_RG_ROUTE24 = F8 01 +MUS_RG_ROUTE3 = F9 01 +MUS_RG_ROUTE11 = FA 01 +MUS_RG_VICTORY_ROAD = FB 01 +MUS_RG_VS_GYM_LEADER = FC 01 +MUS_RG_VS_TRAINER = FD 01 +MUS_RG_VS_WILD = FE 01 +MUS_RG_VS_CHAMPION = FF 01 +MUS_RG_PALLET = 00 02 +MUS_RG_OAK_LAB = 01 02 +MUS_RG_OAK = 02 02 +MUS_RG_POKE_CENTER = 03 02 +MUS_RG_SS_ANNE = 04 02 +MUS_RG_SURF = 05 02 +MUS_RG_POKE_TOWER = 06 02 +MUS_RG_SILPH = 07 02 +MUS_RG_FUCHSIA = 08 02 +MUS_RG_CELADON = 09 02 +MUS_RG_VICTORY_TRAINER = 0A 02 +MUS_RG_VICTORY_WILD = 0B 02 +MUS_RG_VICTORY_GYM_LEADER = 0C 02 +MUS_RG_VERMILLION = 0D 02 +MUS_RG_PEWTER = 0E 02 +MUS_RG_ENCOUNTER_RIVAL = 0F 02 +MUS_RG_RIVAL_EXIT = 10 02 +MUS_RG_DEX_RATING = 11 02 +MUS_RG_OBTAIN_KEY_ITEM = 12 02 +MUS_RG_CAUGHT_INTRO = 13 02 +MUS_RG_PHOTO = 14 02 +MUS_RG_GAME_FREAK = 15 02 +MUS_RG_CAUGHT = 16 02 +MUS_RG_NEW_GAME_INSTRUCT = 17 02 +MUS_RG_NEW_GAME_INTRO = 18 02 +MUS_RG_NEW_GAME_EXIT = 19 02 +MUS_RG_POKE_JUMP = 1A 02 +MUS_RG_UNION_ROOM = 1B 02 +MUS_RG_NET_CENTER = 1C 02 +MUS_RG_MYSTERY_GIFT = 1D 02 +MUS_RG_BERRY_PICK = 1E 02 +MUS_RG_SEVII_CAVE = 1F 02 +MUS_RG_TEACHY_TV_SHOW = 20 02 +MUS_RG_SEVII_ROUTE = 21 02 +MUS_RG_SEVII_DUNGEON = 22 02 +MUS_RG_SEVII_123 = 23 02 +MUS_RG_SEVII_45 = 24 02 +MUS_RG_SEVII_67 = 25 02 +MUS_RG_POKE_FLUTE = 26 02 +MUS_RG_VS_DEOXYS = 27 02 +MUS_RG_VS_MEWTWO = 28 02 +MUS_RG_VS_LEGEND = 29 02 +MUS_RG_ENCOUNTER_GYM_LEADER = 2A 02 +MUS_RG_ENCOUNTER_DEOXYS = 2B 02 +MUS_RG_TRAINER_TOWER = 2C 02 +MUS_RG_SLOW_PALLET = 2D 02 +MUS_RG_TEACHY_TV_MENU = 2E 02 PH_TRAP_BLEND = 2F 02 PH_TRAP_HELD = 30 02 PH_TRAP_SOLO = 31 02 diff --git a/charmap.txt b/charmap.txt index c96202a096..045ad26947 100644 --- a/charmap.txt +++ b/charmap.txt @@ -458,7 +458,7 @@ DYNAMIC_COLOR6 = 0F @ cerulean @ sound and music MUS_DUMMY = 00 00 -SE_KAIFUKU = 01 00 +SE_USE_ITEM = 01 00 SE_PC_LOGIN = 02 00 SE_PC_OFF = 03 00 SE_PC_ON = 04 00 @@ -466,476 +466,476 @@ SE_SELECT = 05 00 SE_WIN_OPEN = 06 00 SE_WALL_HIT = 07 00 SE_DOOR = 08 00 -SE_KAIDAN = 09 00 -SE_DANSA = 0A 00 -SE_JITENSYA = 0B 00 -SE_KOUKA_L = 0C 00 -SE_KOUKA_M = 0D 00 -SE_KOUKA_H = 0E 00 -SE_BOWA2 = 0F 00 -SE_POKE_DEAD = 10 00 -SE_NIGERU = 11 00 -SE_JIDO_DOA = 12 00 -SE_NAMINORI = 13 00 -SE_BAN = 14 00 +SE_EXIT = 09 00 +SE_LEDGE = 0A 00 +SE_BIKE_BELL = 0B 00 +SE_NOT_EFFECTIVE = 0C 00 +SE_EFFECTIVE = 0D 00 +SE_SUPER_EFFECTIVE = 0E 00 +SE_BALL_OPEN = 0F 00 +SE_FAINT = 10 00 +SE_FLEE = 11 00 +SE_SLIDING_DOOR = 12 00 +SE_SHIP = 13 00 +SE_BANG = 14 00 SE_PIN = 15 00 SE_BOO = 16 00 -SE_BOWA = 17 00 -SE_JYUNI = 18 00 +SE_BALL = 17 00 +SE_CONTEST_PLACE = 18 00 SE_A = 19 00 SE_I = 1A 00 SE_U = 1B 00 SE_E = 1C 00 SE_O = 1D 00 SE_N = 1E 00 -SE_SEIKAI = 1F 00 -SE_HAZURE = 20 00 +SE_SUCCESS = 1F 00 +SE_FAILURE = 20 00 SE_EXP = 21 00 -SE_JITE_PYOKO = 22 00 -SE_MU_PACHI = 23 00 -SE_TK_KASYA = 24 00 +SE_BIKE_HOP = 22 00 +SE_SWITCH = 23 00 +SE_CLICK = 24 00 SE_FU_ZAKU = 25 00 -SE_FU_ZAKU2 = 26 00 -SE_FU_ZUZUZU = 27 00 -SE_RU_GASHIN = 28 00 -SE_RU_GASYAN = 29 00 -SE_RU_BARI = 2A 00 -SE_RU_HYUU = 2B 00 -SE_KI_GASYAN = 2C 00 -SE_TK_WARPIN = 2D 00 -SE_TK_WARPOUT = 2E 00 -SE_TU_SAA = 2F 00 -SE_HI_TURUN = 30 00 -SE_TRACK_MOVE = 31 00 -SE_TRACK_STOP = 32 00 -SE_TRACK_HAIKI = 33 00 -SE_TRACK_DOOR = 34 00 -SE_MOTER = 35 00 +SE_CONTEST_CONDITION_LOSE = 26 00 +SE_LAVARIDGE_FALL_WARP = 27 00 +SE_ICE_STAIRS = 28 00 +SE_ICE_BREAK = 29 00 +SE_ICE_CRACK = 2A 00 +SE_FALL = 2B 00 +SE_UNLOCK = 2C 00 +SE_WARP_IN = 2D 00 +SE_WARP_OUT = 2E 00 +SE_REPEL = 2F 00 +SE_ROTATING_GATE = 30 00 +SE_TRUCK_MOVE = 31 00 +SE_TRUCK_STOP = 32 00 +SE_TRUCK_UNLOAD = 33 00 +SE_TRUCK_DOOR = 34 00 +SE_BERRY_BLENDER = 35 00 SE_CARD = 36 00 SE_SAVE = 37 00 -SE_KON = 38 00 -SE_KON2 = 39 00 -SE_KON3 = 3A 00 -SE_KON4 = 3B 00 -SE_SUIKOMU = 3C 00 -SE_NAGERU = 3D 00 -SE_TOY_C = 3E 00 -SE_TOY_D = 3F 00 -SE_TOY_E = 40 00 -SE_TOY_F = 41 00 -SE_TOY_G = 42 00 -SE_TOY_A = 43 00 -SE_TOY_B = 44 00 -SE_TOY_C1 = 45 00 -SE_MIZU = 46 00 -SE_HASHI = 47 00 -SE_DAUGI = 48 00 -SE_PINPON = 49 00 -SE_FUUSEN1 = 4A 00 -SE_FUUSEN2 = 4B 00 -SE_FUUSEN3 = 4C 00 -SE_TOY_KABE = 4D 00 -SE_TOY_DANGO = 4E 00 -SE_DOKU = 4F 00 -SE_ESUKA = 50 00 -SE_T_AME = 51 00 -SE_T_AME_E = 52 00 -SE_T_OOAME = 53 00 -SE_T_OOAME_E = 54 00 -SE_T_KOAME = 55 00 -SE_T_KOAME_E = 56 00 -SE_T_KAMI = 57 00 -SE_T_KAMI2 = 58 00 -SE_ELEBETA = 59 00 -SE_HINSI = 5A 00 -SE_EXPMAX = 5B 00 -SE_TAMAKORO = 5C 00 -SE_TAMAKORO_E = 5D 00 -SE_BASABASA = 5E 00 -SE_REGI = 5F 00 -SE_C_GAJI = 60 00 -SE_C_MAKU_U = 61 00 -SE_C_MAKU_D = 62 00 -SE_C_PASI = 63 00 -SE_C_SYU = 64 00 -SE_C_PIKON = 65 00 -SE_REAPOKE = 66 00 -SE_OP_BASYU = 67 00 -SE_BT_START = 68 00 -SE_DENDOU = 69 00 -SE_JIHANKI = 6A 00 -SE_TAMA = 6B 00 -SE_Z_SCROLL = 6C 00 -SE_Z_PAGE = 6D 00 -SE_PN_ON = 6E 00 -SE_PN_OFF = 6F 00 -SE_Z_SEARCH = 70 00 -SE_TAMAGO = 71 00 -SE_TB_START = 72 00 -SE_TB_KON = 73 00 -SE_TB_KARA = 74 00 -SE_BIDORO = 75 00 -SE_W085 = 76 00 -SE_W085B = 77 00 -SE_W231 = 78 00 -SE_W171 = 79 00 -SE_W233 = 7A 00 -SE_W233B = 7B 00 -SE_W145 = 7C 00 -SE_W145B = 7D 00 -SE_W145C = 7E 00 -SE_W240 = 7F 00 -SE_W015 = 80 00 -SE_W081 = 81 00 -SE_W081B = 82 00 -SE_W088 = 83 00 -SE_W016 = 84 00 -SE_W016B = 85 00 -SE_W003 = 86 00 -SE_W104 = 87 00 -SE_W013 = 88 00 -SE_W196 = 89 00 -SE_W086 = 8A 00 -SE_W004 = 8B 00 -SE_W025 = 8C 00 -SE_W025B = 8D 00 -SE_W152 = 8E 00 -SE_W026 = 8F 00 -SE_W172 = 90 00 -SE_W172B = 91 00 -SE_W053 = 92 00 -SE_W007 = 93 00 -SE_W092 = 94 00 -SE_W221 = 95 00 -SE_W221B = 96 00 -SE_W052 = 97 00 -SE_W036 = 98 00 -SE_W059 = 99 00 -SE_W059B = 9A 00 -SE_W010 = 9B 00 -SE_W011 = 9C 00 -SE_W017 = 9D 00 -SE_W019 = 9E 00 -SE_W028 = 9F 00 -SE_W013B = A0 00 -SE_W044 = A1 00 -SE_W029 = A2 00 -SE_W057 = A3 00 -SE_W056 = A4 00 -SE_W250 = A5 00 -SE_W030 = A6 00 -SE_W039 = A7 00 -SE_W054 = A8 00 -SE_W077 = A9 00 -SE_W020 = AA 00 -SE_W082 = AB 00 -SE_W047 = AC 00 -SE_W195 = AD 00 -SE_W006 = AE 00 -SE_W091 = AF 00 -SE_W146 = B0 00 -SE_W120 = B1 00 -SE_W153 = B2 00 -SE_W071B = B3 00 -SE_W071 = B4 00 -SE_W103 = B5 00 -SE_W062 = B6 00 -SE_W062B = B7 00 -SE_W048 = B8 00 -SE_W187 = B9 00 -SE_W118 = BA 00 -SE_W155 = BB 00 -SE_W122 = BC 00 -SE_W060 = BD 00 -SE_W185 = BE 00 -SE_W014 = BF 00 -SE_W043 = C0 00 -SE_W207 = C1 00 -SE_W207B = C2 00 -SE_W215 = C3 00 -SE_W109 = C4 00 -SE_W173 = C5 00 -SE_W280 = C6 00 -SE_W202 = C7 00 -SE_W060B = C8 00 -SE_W076 = C9 00 -SE_W080 = CA 00 -SE_W100 = CB 00 -SE_W107 = CC 00 -SE_W166 = CD 00 -SE_W129 = CE 00 -SE_W115 = CF 00 -SE_W112 = D0 00 -SE_W197 = D1 00 -SE_W199 = D2 00 -SE_W236 = D3 00 -SE_W204 = D4 00 -SE_W268 = D5 00 -SE_W070 = D6 00 -SE_W063 = D7 00 -SE_W127 = D8 00 -SE_W179 = D9 00 -SE_W151 = DA 00 -SE_W201 = DB 00 -SE_W161 = DC 00 -SE_W161B = DD 00 -SE_W227 = DE 00 -SE_W227B = DF 00 -SE_W226 = E0 00 -SE_W208 = E1 00 -SE_W213 = E2 00 -SE_W213B = E3 00 -SE_W234 = E4 00 -SE_W260 = E5 00 -SE_W328 = E6 00 -SE_W320 = E7 00 -SE_W255 = E8 00 -SE_W291 = E9 00 -SE_W089 = EA 00 -SE_W239 = EB 00 -SE_W230 = EC 00 -SE_W281 = ED 00 -SE_W327 = EE 00 -SE_W287 = EF 00 -SE_W257 = F0 00 -SE_W253 = F1 00 -SE_W258 = F2 00 -SE_W322 = F3 00 -SE_W298 = F4 00 -SE_W287B = F5 00 -SE_W114 = F6 00 -SE_W063B = F7 00 -SE_RG_W_DOOR = F8 00 -SE_RG_CARD1 = F9 00 -SE_RG_CARD2 = FA 00 -SE_RG_CARD3 = FB 00 -SE_RG_BAG1 = FC 00 -SE_RG_BAG2 = FD 00 -SE_RG_GETTING = FE 00 +SE_BALL_BOUNCE_1 = 38 00 +SE_BALL_BOUNCE_2 = 39 00 +SE_BALL_BOUNCE_3 = 3A 00 +SE_BALL_BOUNCE_4 = 3B 00 +SE_BALL_TRADE = 3C 00 +SE_BALL_THROW = 3D 00 +SE_NOTE_C = 3E 00 +SE_NOTE_D = 3F 00 +SE_NOTE_E = 40 00 +SE_NOTE_F = 41 00 +SE_NOTE_G = 42 00 +SE_NOTE_A = 43 00 +SE_NOTE_B = 44 00 +SE_NOTE_C_HIGH = 45 00 +SE_PUDDLE = 46 00 +SE_BRIDGE_WALK = 47 00 +SE_ITEMFINDER = 48 00 +SE_DING_DONG = 49 00 +SE_BALLOON_RED = 4A 00 +SE_BALLOON_BLUE = 4B 00 +SE_BALLOON_YELLOW = 4C 00 +SE_BREAKABLE_DOOR = 4D 00 +SE_MUD_BALL = 4E 00 +SE_FIELD_POISON = 4F 00 +SE_ESCALATOR = 50 00 +SE_THUNDERSTORM = 51 00 +SE_THUNDERSTORM_STOP = 52 00 +SE_DOWNPOUR = 53 00 +SE_DOWNPOUR_STOP = 54 00 +SE_RAIN = 55 00 +SE_RAIN_STOP = 56 00 +SE_THUNDER = 57 00 +SE_THUNDER2 = 58 00 +SE_ELEVATOR = 59 00 +SE_LOW_HEALTH = 5A 00 +SE_EXP_MAX = 5B 00 +SE_ROULETTE_BALL = 5C 00 +SE_ROULETTE_BALL2 = 5D 00 +SE_TAILLOW_WING_FLAP = 5E 00 +SE_SHOP = 5F 00 +SE_CONTEST_HEART = 60 00 +SE_CONTEST_CURTAIN_RISE = 61 00 +SE_CONTEST_CURTAIN_FALL = 62 00 +SE_CONTEST_ICON_CHANGE = 63 00 +SE_CONTEST_ICON_CLEAR = 64 00 +SE_CONTEST_MONS_TURN = 65 00 +SE_SHINY = 66 00 +SE_INTRO_BLAST = 67 00 +SE_MUGSHOT = 68 00 +SE_APPLAUSE = 69 00 +SE_VEND = 6A 00 +SE_ORB = 6B 00 +SE_DEX_SCROLL = 6C 00 +SE_DEX_PAGE = 6D 00 +SE_POKENAV_ON = 6E 00 +SE_POKENAV_OFF = 6F 00 +SE_DEX_SEARCH = 70 00 +SE_EGG_HATCH = 71 00 +SE_BALL_TRAY_ENTER = 72 00 +SE_BALL_TRAY_BALL = 73 00 +SE_BALL_TRAY_EXIT = 74 00 +SE_GLASS_FLUTE = 75 00 +SE_M_THUNDERBOLT = 76 00 +SE_M_THUNDERBOLT2 = 77 00 +SE_M_HARDEN = 78 00 +SE_M_NIGHTMARE = 79 00 +SE_M_VITAL_THROW = 7A 00 +SE_M_VITAL_THROW2 = 7B 00 +SE_M_BUBBLE = 7C 00 +SE_M_BUBBLE2 = 7D 00 +SE_M_BUBBLE3 = 7E 00 +SE_M_RAIN_DANCE = 7F 00 +SE_M_CUT = 80 00 +SE_M_STRING_SHOT = 81 00 +SE_M_STRING_SHOT2 = 82 00 +SE_M_ROCK_THROW = 83 00 +SE_M_GUST = 84 00 +SE_M_GUST2 = 85 00 +SE_M_DOUBLE_SLAP = 86 00 +SE_M_DOUBLE_TEAM = 87 00 +SE_M_RAZOR_WIND = 88 00 +SE_M_ICY_WIND = 89 00 +SE_M_THUNDER_WAVE = 8A 00 +SE_M_COMET_PUNCH = 8B 00 +SE_M_MEGA_KICK = 8C 00 +SE_M_MEGA_KICK2 = 8D 00 +SE_M_CRABHAMMER = 8E 00 +SE_M_JUMP_KICK = 8F 00 +SE_M_FLAME_WHEEL = 90 00 +SE_M_FLAME_WHEEL2 = 91 00 +SE_M_FLAMETHROWER = 92 00 +SE_M_FIRE_PUNCH = 93 00 +SE_M_TOXIC = 94 00 +SE_M_SACRED_FIRE = 95 00 +SE_M_SACRED_FIRE2 = 96 00 +SE_M_EMBER = 97 00 +SE_M_TAKE_DOWN = 98 00 +SE_M_BLIZZARD = 99 00 +SE_M_BLIZZARD2 = 9A 00 +SE_M_SCRATCH = 9B 00 +SE_M_VICEGRIP = 9C 00 +SE_M_WING_ATTACK = 9D 00 +SE_M_FLY = 9E 00 +SE_M_SAND_ATTACK = 9F 00 +SE_M_RAZOR_WIND2 = A0 00 +SE_M_BITE = A1 00 +SE_M_HEADBUTT = A2 00 +SE_M_SURF = A3 00 +SE_M_HYDRO_PUMP = A4 00 +SE_M_WHIRLPOOL = A5 00 +SE_M_HORN_ATTACK = A6 00 +SE_M_TAIL_WHIP = A7 00 +SE_M_MIST = A8 00 +SE_M_POISON_POWDER = A9 00 +SE_M_BIND = AA 00 +SE_M_DRAGON_RAGE = AB 00 +SE_M_SING = AC 00 +SE_M_PERISH_SONG = AD 00 +SE_M_PAY_DAY = AE 00 +SE_M_DIG = AF 00 +SE_M_DIZZY_PUNCH = B0 00 +SE_M_SELF_DESTRUCT = B1 00 +SE_M_EXPLOSION = B2 00 +SE_M_ABSORB_2 = B3 00 +SE_M_ABSORB = B4 00 +SE_M_SCREECH = B5 00 +SE_M_BUBBLE_BEAM = B6 00 +SE_M_BUBBLE_BEAM2 = B7 00 +SE_M_SUPERSONIC = B8 00 +SE_M_BELLY_DRUM = B9 00 +SE_M_METRONOME = BA 00 +SE_M_BONEMERANG = BB 00 +SE_M_LICK = BC 00 +SE_M_PSYBEAM = BD 00 +SE_M_FAINT_ATTACK = BE 00 +SE_M_SWORDS_DANCE = BF 00 +SE_M_LEER = C0 00 +SE_M_SWAGGER = C1 00 +SE_M_SWAGGER2 = C2 00 +SE_M_HEAL_BELL = C3 00 +SE_M_CONFUSE_RAY = C4 00 +SE_M_SNORE = C5 00 +SE_M_BRICK_BREAK = C6 00 +SE_M_GIGA_DRAIN = C7 00 +SE_M_PSYBEAM2 = C8 00 +SE_M_SOLAR_BEAM = C9 00 +SE_M_PETAL_DANCE = CA 00 +SE_M_TELEPORT = CB 00 +SE_M_MINIMIZE = CC 00 +SE_M_SKETCH = CD 00 +SE_M_SWIFT = CE 00 +SE_M_REFLECT = CF 00 +SE_M_BARRIER = D0 00 +SE_M_DETECT = D1 00 +SE_M_LOCK_ON = D2 00 +SE_M_MOONLIGHT = D3 00 +SE_M_CHARM = D4 00 +SE_M_CHARGE = D5 00 +SE_M_STRENGTH = D6 00 +SE_M_HYPER_BEAM = D7 00 +SE_M_WATERFALL = D8 00 +SE_M_REVERSAL = D9 00 +SE_M_ACID_ARMOR = DA 00 +SE_M_SANDSTORM = DB 00 +SE_M_TRI_ATTACK = DC 00 +SE_M_TRI_ATTACK2 = DD 00 +SE_M_ENCORE = DE 00 +SE_M_ENCORE2 = DF 00 +SE_M_BATON_PASS = E0 00 +SE_M_MILK_DRINK = E1 00 +SE_M_ATTRACT = E2 00 +SE_M_ATTRACT2 = E3 00 +SE_M_MORNING_SUN = E4 00 +SE_M_FLATTER = E5 00 +SE_M_SAND_TOMB = E6 00 +SE_M_GRASSWHISTLE = E7 00 +SE_M_SPIT_UP = E8 00 +SE_M_DIVE = E9 00 +SE_M_EARTHQUAKE = EA 00 +SE_M_TWISTER = EB 00 +SE_M_SWEET_SCENT = EC 00 +SE_M_YAWN = ED 00 +SE_M_SKY_UPPERCUT = EE 00 +SE_M_STAT_INCREASE = EF 00 +SE_M_HEAT_WAVE = F0 00 +SE_M_UPROAR = F1 00 +SE_M_HAIL = F2 00 +SE_M_COSMIC_POWER = F3 00 +SE_M_TEETER_DANCE = F4 00 +SE_M_STAT_DECREASE = F5 00 +SE_M_HAZE = F6 00 +SE_M_HYPER_BEAM2 = F7 00 +SE_RG_DOOR = F8 00 +SE_RG_CARD_FLIP = F9 00 +SE_RG_CARD_FLIPPING = FA 00 +SE_RG_CARD_OPEN = FB 00 +SE_RG_BAG_CURSOR = FC 00 +SE_RG_BAG_POCKET = FD 00 +SE_RG_BALL_CLICK = FE 00 SE_RG_SHOP = FF 00 -SE_RG_KITEKI = 00 01 -SE_RG_HELP_OP = 01 01 -SE_RG_HELP_CL = 02 01 -SE_RG_HELP_NG = 03 01 -SE_RG_DEOMOV = 04 01 -SE_RG_EXCELLENT = 05 01 -SE_RG_NAWAMISS = 06 01 -SE_TOREEYE = 07 01 -SE_TOREOFF = 08 01 -SE_HANTEI1 = 09 01 -SE_HANTEI2 = 0A 01 -SE_CURTAIN = 0B 01 -SE_CURTAIN1 = 0C 01 -SE_USSOKI = 0D 01 -MUS_TETSUJI = 5E 01 -MUS_FIELD13 = 5F 01 -MUS_KACHI22 = 60 01 -MUS_KACHI2 = 61 01 -MUS_KACHI3 = 62 01 -MUS_KACHI5 = 63 01 -MUS_PCC = 64 01 -MUS_NIBI = 65 01 -MUS_SUIKUN = 66 01 -MUS_DOORO1 = 67 01 -MUS_DOORO_X1 = 68 01 -MUS_DOORO_X3 = 69 01 -MUS_MACHI_S2 = 6A 01 -MUS_MACHI_S4 = 6B 01 -MUS_GIM = 6C 01 -MUS_NAMINORI = 6D 01 -MUS_DAN01 = 6E 01 -MUS_FANFA1 = 6F 01 -MUS_ME_ASA = 70 01 -MUS_ME_BACHI = 71 01 -MUS_FANFA4 = 72 01 -MUS_FANFA5 = 73 01 -MUS_ME_WAZA = 74 01 -MUS_BIJYUTU = 75 01 -MUS_DOORO_X4 = 76 01 -MUS_FUNE_KAN = 77 01 -MUS_ME_SHINKA = 78 01 -MUS_SHINKA = 79 01 -MUS_ME_WASURE = 7A 01 -MUS_SYOUJOEYE = 7B 01 -MUS_BOYEYE = 7C 01 -MUS_DAN02 = 7D 01 -MUS_MACHI_S3 = 7E 01 -MUS_ODAMAKI = 7F 01 -MUS_B_TOWER = 80 01 -MUS_SWIMEYE = 81 01 -MUS_DAN03 = 82 01 -MUS_ME_KINOMI = 83 01 -MUS_ME_TAMA = 84 01 -MUS_ME_B_BIG = 85 01 -MUS_ME_B_SMALL = 86 01 -MUS_ME_ZANNEN = 87 01 -MUS_BD_TIME = 88 01 -MUS_TEST1 = 89 01 -MUS_TEST2 = 8A 01 -MUS_TEST3 = 8B 01 -MUS_TEST4 = 8C 01 -MUS_TEST = 8D 01 -MUS_GOMACHI0 = 8E 01 -MUS_GOTOWN = 8F 01 -MUS_POKECEN = 90 01 -MUS_NEXTROAD = 91 01 -MUS_GRANROAD = 92 01 +SE_RG_SS_ANNE_HORN = 00 01 +SE_RG_HELP_OPEN = 01 01 +SE_RG_HELP_CLOSE = 02 01 +SE_RG_HELP_ERROR = 03 01 +SE_RG_DEOXYS_MOVE = 04 01 +SE_RG_POKE_JUMP_SUCCESS = 05 01 +SE_RG_POKE_JUMP_FAILURE = 06 01 +SE_POKENAV_CALL = 07 01 +SE_POKENAV_HANG_UP = 08 01 +SE_ARENA_TIMEUP1 = 09 01 +SE_ARENA_TIMEUP2 = 0A 01 +SE_PIKE_CURTAIN_OPEN = 0B 01 +SE_PIKE_CURTAIN_CLOSE = 0C 01 +SE_SUDOWOODO_SHAKE = 0D 01 +MUS_LITTLEROOT_TEST = 5E 01 +MUS_GSC_ROUTE38 = 5F 01 +MUS_CAUGHT = 60 01 +MUS_VICTORY_WILD = 61 01 +MUS_VICTORY_GYM_LEADER = 62 01 +MUS_VICTORY_LEAGUE = 63 01 +MUS_C_COMM_CENTER = 64 01 +MUS_GSC_PEWTER = 65 01 +MUS_C_VS_LEGEND_BEAST = 66 01 +MUS_ROUTE101 = 67 01 +MUS_ROUTE110 = 68 01 +MUS_ROUTE120 = 69 01 +MUS_PETALBURG = 6A 01 +MUS_OLDALE = 6B 01 +MUS_GYM = 6C 01 +MUS_SURF = 6D 01 +MUS_PETALBURG_WOODS = 6E 01 +MUS_LEVEL_UP = 6F 01 +MUS_HEAL = 70 01 +MUS_OBTAIN_BADGE = 71 01 +MUS_OBTAIN_ITEM = 72 01 +MUS_EVOLVED = 73 01 +MUS_OBTAIN_TMHM = 74 01 +MUS_LILYCOVE_MUSEUM = 75 01 +MUS_ROUTE122 = 76 01 +MUS_OCEANIC_MUSEUM = 77 01 +MUS_EVOLUTION_INTRO = 78 01 +MUS_EVOLUTION = 79 01 +MUS_MOVE_DELETED = 7A 01 +MUS_ENCOUNTER_GIRL = 7B 01 +MUS_ENCOUNTER_MALE = 7C 01 +MUS_ABANDONED_SHIP = 7D 01 +MUS_FORTREE = 7E 01 +MUS_BIRCH_LAB = 7F 01 +MUS_B_TOWER_RS = 80 01 +MUS_ENCOUNTER_SWIMMER = 81 01 +MUS_CAVE_OF_ORIGIN = 82 01 +MUS_OBTAIN_BERRY = 83 01 +MUS_AWAKEN_LEGEND = 84 01 +MUS_SLOTS_JACKPOT = 85 01 +MUS_SLOTS_WIN = 86 01 +MUS_TOO_BAD = 87 01 +MUS_ROULETTE = 88 01 +MUS_LINK_CONTEST_P1 = 89 01 +MUS_LINK_CONTEST_P2 = 8A 01 +MUS_LINK_CONTEST_P3 = 8B 01 +MUS_LINK_CONTEST_P4 = 8C 01 +MUS_ENCOUNTER_GENTLEMAN = 8D 01 +MUS_VERDANTURF = 8E 01 +MUS_RUSTBORO = 8F 01 +MUS_POKE_CENTER = 90 01 +MUS_ROUTE104 = 91 01 +MUS_ROUTE119 = 92 01 MUS_CYCLING = 93 01 -MUS_FRIENDLY = 94 01 -MUS_MISHIRO = 95 01 -MUS_TOZAN = 96 01 -MUS_GIRLEYE = 97 01 -MUS_MINAMO = 98 01 -MUS_ASHROAD = 99 01 -MUS_EVENT0 = 9A 01 -MUS_DEEPDEEP = 9B 01 -MUS_KACHI1 = 9C 01 -MUS_TITLE3 = 9D 01 -MUS_DEMO1 = 9E 01 -MUS_GIRL_SUP = 9F 01 -MUS_HAGESHII = A0 01 -MUS_KAKKOII = A1 01 -MUS_KAZANBAI = A2 01 -MUS_AQA_0 = A3 01 -MUS_TSURETEK = A4 01 -MUS_BOY_SUP = A5 01 -MUS_RAINBOW = A6 01 -MUS_AYASII = A7 01 -MUS_KACHI4 = A8 01 -MUS_ROPEWAY = A9 01 -MUS_CASINO = AA 01 -MUS_HIGHTOWN = AB 01 -MUS_SAFARI = AC 01 -MUS_C_ROAD = AD 01 -MUS_AJITO = AE 01 -MUS_M_BOAT = AF 01 -MUS_M_DUNGON = B0 01 -MUS_FINECITY = B1 01 -MUS_MACHUPI = B2 01 -MUS_P_SCHOOL = B3 01 -MUS_DENDOU = B4 01 -MUS_TONEKUSA = B5 01 -MUS_MABOROSI = B6 01 -MUS_CON_FAN = B7 01 -MUS_CONTEST0 = B8 01 -MUS_MGM0 = B9 01 -MUS_T_BATTLE = BA 01 -MUS_OOAME = BB 01 -MUS_HIDERI = BC 01 -MUS_RUNECITY = BD 01 -MUS_CON_K = BE 01 -MUS_EIKOU_R = BF 01 -MUS_KARAKURI = C0 01 -MUS_HUTAGO = C1 01 -MUS_SITENNOU = C2 01 -MUS_YAMA_EYE = C3 01 -MUS_CONLOBBY = C4 01 -MUS_INTER_V = C5 01 -MUS_DAIGO = C6 01 -MUS_THANKFOR = C7 01 +MUS_POKE_MART = 94 01 +MUS_LITTLEROOT = 95 01 +MUS_MT_CHIMNEY = 96 01 +MUS_ENCOUNTER_FEMALE = 97 01 +MUS_LILYCOVE = 98 01 +MUS_ROUTE111 = 99 01 +MUS_HELP = 9A 01 +MUS_UNDERWATER = 9B 01 +MUS_VICTORY_TRAINER = 9C 01 +MUS_TITLE = 9D 01 +MUS_INTRO = 9E 01 +MUS_ENCOUNTER_MAY = 9F 01 +MUS_ENCOUNTER_PSYCHIC = A0 01 +MUS_ENCOUNTER_COOLTRAINER = A1 01 +MUS_ROUTE113 = A2 01 +MUS_ENCOUNTER_AQUA = A3 01 +MUS_FOLLOW_ME = A4 01 +MUS_ENCOUNTER_BRENDAN = A5 01 +MUS_EVER_GRANDE = A6 01 +MUS_ENCOUNTER_HEX_MANIAC = A7 01 +MUS_VICTORY_AQUA_MAGMA = A8 01 +MUS_CABLE_CAR = A9 01 +MUS_GAME_CORNER = AA 01 +MUS_DEWFORD = AB 01 +MUS_SAFARI_ZONE = AC 01 +MUS_VICTORY_ROAD = AD 01 +MUS_AQUA_MAGMA_HIDEOUT = AE 01 +MUS_SAILING = AF 01 +MUS_MT_PYRE = B0 01 +MUS_SLATEPORT = B1 01 +MUS_MT_PYRE_EXTERIOR = B2 01 +MUS_SCHOOL = B3 01 +MUS_HALL_OF_FAME = B4 01 +MUS_FALLARBOR = B5 01 +MUS_SEALED_CHAMBER = B6 01 +MUS_CONTEST_WINNER = B7 01 +MUS_CONTEST = B8 01 +MUS_ENCOUNTER_MAGMA = B9 01 +MUS_INTRO_BATTLE = BA 01 +MUS_ABNORMAL_WEATHER = BB 01 +MUS_WEATHER_GROUDON = BC 01 +MUS_SOOTOPOLIS = BD 01 +MUS_CONTEST_RESULTS = BE 01 +MUS_HALL_OF_FAME_ROOM = BF 01 +MUS_TRICK_HOUSE = C0 01 +MUS_ENCOUNTER_TWINS = C1 01 +MUS_ENCOUNTER_ELITE_FOUR = C2 01 +MUS_ENCOUNTER_HIKER = C3 01 +MUS_CONTEST_LOBBY = C4 01 +MUS_ENCOUNTER_INTERVIEWER = C5 01 +MUS_ENCOUNTER_CHAMPION = C6 01 +MUS_CREDITS = C7 01 MUS_END = C8 01 MUS_B_FRONTIER = C9 01 MUS_B_ARENA = CA 01 -MUS_ME_POINTGET = CB 01 -MUS_ME_TORE_EYE = CC 01 -MUS_PYRAMID = CD 01 -MUS_PYRAMID_TOP = CE 01 +MUS_OBTAIN_B_POINTS = CB 01 +MUS_REGISTER_MATCH_CALL = CC 01 +MUS_B_PYRAMID = CD 01 +MUS_B_PYRAMID_TOP = CE 01 MUS_B_PALACE = CF 01 -MUS_REKKUU_KOURIN = D0 01 -MUS_SATTOWER = D1 01 -MUS_ME_SYMBOLGET = D2 01 +MUS_RAYQUAZA_APPEARS = D0 01 +MUS_B_TOWER = D1 01 +MUS_OBTAIN_SYMBOL = D2 01 MUS_B_DOME = D3 01 -MUS_B_TUBE = D4 01 +MUS_B_PIKE = D4 01 MUS_B_FACTORY = D5 01 -MUS_VS_REKKU = D6 01 -MUS_VS_FRONT = D7 01 +MUS_VS_RAYQUAZA = D6 01 +MUS_VS_FRONTIER_BRAIN = D7 01 MUS_VS_MEW = D8 01 -MUS_B_DOME1 = D9 01 -MUS_BATTLE27 = DA 01 -MUS_BATTLE31 = DB 01 -MUS_BATTLE20 = DC 01 -MUS_BATTLE32 = DD 01 -MUS_BATTLE33 = DE 01 -MUS_BATTLE36 = DF 01 -MUS_BATTLE34 = E0 01 -MUS_BATTLE35 = E1 01 -MUS_BATTLE38 = E2 01 -MUS_BATTLE30 = E3 01 -MUS_RG_ANNAI = E4 01 -MUS_RG_SLOT = E5 01 -MUS_RG_AJITO = E6 01 +MUS_B_DOME_LOBBY = D9 01 +MUS_VS_WILD = DA 01 +MUS_VS_AQUA_MAGMA = DB 01 +MUS_VS_TRAINER = DC 01 +MUS_VS_GYM_LEADER = DD 01 +MUS_VS_CHAMPION = DE 01 +MUS_VS_REGI = DF 01 +MUS_VS_KYOGRE_GROUDON = E0 01 +MUS_VS_RIVAL = E1 01 +MUS_VS_ELITE_FOUR = E2 01 +MUS_VS_AQUA_MAGMA_LEADER = E3 01 +MUS_RG_FOLLOW_ME = E4 01 +MUS_RG_GAME_CORNER = E5 01 +MUS_RG_ROCKET_HIDEOUT = E6 01 MUS_RG_GYM = E7 01 -MUS_RG_PURIN = E8 01 -MUS_RG_DEMO = E9 01 +MUS_RG_JIGGLYPUFF = E8 01 +MUS_RG_INTRO_FIGHT = E9 01 MUS_RG_TITLE = EA 01 -MUS_RG_GUREN = EB 01 -MUS_RG_SHION = EC 01 -MUS_RG_KAIHUKU = ED 01 +MUS_RG_CINNABAR = EB 01 +MUS_RG_LAVENDER = EC 01 +MUS_RG_HEAL = ED 01 MUS_RG_CYCLING = EE 01 -MUS_RG_ROCKET = EF 01 -MUS_RG_SHOUJO = F0 01 -MUS_RG_SHOUNEN = F1 01 -MUS_RG_DENDOU = F2 01 -MUS_RG_T_MORI = F3 01 -MUS_RG_OTSUKIMI = F4 01 -MUS_RG_POKEYASHI = F5 01 -MUS_RG_ENDING = F6 01 -MUS_RG_LOAD01 = F7 01 -MUS_RG_OPENING = F8 01 -MUS_RG_LOAD02 = F9 01 -MUS_RG_LOAD03 = FA 01 -MUS_RG_CHAMP_R = FB 01 -MUS_RG_VS_GYM = FC 01 -MUS_RG_VS_TORE = FD 01 -MUS_RG_VS_YASEI = FE 01 -MUS_RG_VS_LAST = FF 01 -MUS_RG_MASARA = 00 02 -MUS_RG_KENKYU = 01 02 -MUS_RG_OHKIDO = 02 02 -MUS_RG_POKECEN = 03 02 -MUS_RG_SANTOAN = 04 02 -MUS_RG_NAMINORI = 05 02 -MUS_RG_P_TOWER = 06 02 -MUS_RG_SHIRUHU = 07 02 -MUS_RG_HANADA = 08 02 -MUS_RG_TAMAMUSI = 09 02 -MUS_RG_WIN_TRE = 0A 02 -MUS_RG_WIN_YASEI = 0B 02 -MUS_RG_WIN_GYM = 0C 02 -MUS_RG_KUCHIBA = 0D 02 -MUS_RG_NIBI = 0E 02 -MUS_RG_RIVAL1 = 0F 02 -MUS_RG_RIVAL2 = 10 02 -MUS_RG_FAN2 = 11 02 -MUS_RG_FAN5 = 12 02 -MUS_RG_FAN6 = 13 02 -MUS_ME_RG_PHOTO = 14 02 -MUS_RG_TITLEROG = 15 02 -MUS_RG_GET_YASEI = 16 02 -MUS_RG_SOUSA = 17 02 -MUS_RG_SEKAIKAN = 18 02 -MUS_RG_SEIBETU = 19 02 -MUS_RG_JUMP = 1A 02 -MUS_RG_UNION = 1B 02 -MUS_RG_NETWORK = 1C 02 -MUS_RG_OKURIMONO = 1D 02 -MUS_RG_KINOMIKUI = 1E 02 -MUS_RG_NANADUNGEON = 1F 02 -MUS_RG_OSHIE_TV = 20 02 -MUS_RG_NANASHIMA = 21 02 -MUS_RG_NANAISEKI = 22 02 -MUS_RG_NANA123 = 23 02 -MUS_RG_NANA45 = 24 02 -MUS_RG_NANA67 = 25 02 -MUS_RG_POKEFUE = 26 02 -MUS_RG_VS_DEO = 27 02 -MUS_RG_VS_MYU2 = 28 02 -MUS_RG_VS_DEN = 29 02 -MUS_RG_EXEYE = 2A 02 -MUS_RG_DEOEYE = 2B 02 -MUS_RG_T_TOWER = 2C 02 -MUS_RG_SLOWMASARA = 2D 02 -MUS_RG_TVNOIZE = 2E 02 +MUS_RG_ENCOUNTER_ROCKET = EF 01 +MUS_RG_ENCOUNTER_GIRL = F0 01 +MUS_RG_ENCOUNTER_BOY = F1 01 +MUS_RG_HALL_OF_FAME = F2 01 +MUS_RG_VIRIDIAN_FOREST = F3 01 +MUS_RG_MT_MOON = F4 01 +MUS_RG_POKE_MANSION = F5 01 +MUS_RG_CREDITS = F6 01 +MUS_RG_ROUTE1 = F7 01 +MUS_RG_ROUTE24 = F8 01 +MUS_RG_ROUTE3 = F9 01 +MUS_RG_ROUTE11 = FA 01 +MUS_RG_VICTORY_ROAD = FB 01 +MUS_RG_VS_GYM_LEADER = FC 01 +MUS_RG_VS_TRAINER = FD 01 +MUS_RG_VS_WILD = FE 01 +MUS_RG_VS_CHAMPION = FF 01 +MUS_RG_PALLET = 00 02 +MUS_RG_OAK_LAB = 01 02 +MUS_RG_OAK = 02 02 +MUS_RG_POKE_CENTER = 03 02 +MUS_RG_SS_ANNE = 04 02 +MUS_RG_SURF = 05 02 +MUS_RG_POKE_TOWER = 06 02 +MUS_RG_SILPH = 07 02 +MUS_RG_FUCHSIA = 08 02 +MUS_RG_CELADON = 09 02 +MUS_RG_VICTORY_TRAINER = 0A 02 +MUS_RG_VICTORY_WILD = 0B 02 +MUS_RG_VICTORY_GYM_LEADER = 0C 02 +MUS_RG_VERMILLION = 0D 02 +MUS_RG_PEWTER = 0E 02 +MUS_RG_ENCOUNTER_RIVAL = 0F 02 +MUS_RG_RIVAL_EXIT = 10 02 +MUS_RG_DEX_RATING = 11 02 +MUS_RG_OBTAIN_KEY_ITEM = 12 02 +MUS_RG_CAUGHT_INTRO = 13 02 +MUS_RG_PHOTO = 14 02 +MUS_RG_GAME_FREAK = 15 02 +MUS_RG_CAUGHT = 16 02 +MUS_RG_NEW_GAME_INSTRUCT = 17 02 +MUS_RG_NEW_GAME_INTRO = 18 02 +MUS_RG_NEW_GAME_EXIT = 19 02 +MUS_RG_POKE_JUMP = 1A 02 +MUS_RG_UNION_ROOM = 1B 02 +MUS_RG_NET_CENTER = 1C 02 +MUS_RG_MYSTERY_GIFT = 1D 02 +MUS_RG_BERRY_PICK = 1E 02 +MUS_RG_SEVII_CAVE = 1F 02 +MUS_RG_TEACHY_TV_SHOW = 20 02 +MUS_RG_SEVII_ROUTE = 21 02 +MUS_RG_SEVII_DUNGEON = 22 02 +MUS_RG_SEVII_123 = 23 02 +MUS_RG_SEVII_45 = 24 02 +MUS_RG_SEVII_67 = 25 02 +MUS_RG_POKE_FLUTE = 26 02 +MUS_RG_VS_DEOXYS = 27 02 +MUS_RG_VS_MEWTWO = 28 02 +MUS_RG_VS_LEGEND = 29 02 +MUS_RG_ENCOUNTER_GYM_LEADER = 2A 02 +MUS_RG_ENCOUNTER_DEOXYS = 2B 02 +MUS_RG_TRAINER_TOWER = 2C 02 +MUS_RG_SLOW_PALLET = 2D 02 +MUS_RG_TEACHY_TV_MENU = 2E 02 PH_TRAP_BLEND = 2F 02 PH_TRAP_HELD = 30 02 PH_TRAP_SOLO = 31 02 diff --git a/data/battle_anim_scripts.s b/data/battle_anim_scripts.s index cacb1c4438..89da7b9a5c 100644 --- a/data/battle_anim_scripts.s +++ b/data/battle_anim_scripts.s @@ -426,7 +426,7 @@ Move_POUND: loadspritegfx ANIM_TAG_IMPACT monbg ANIM_TARGET setalpha 12, 8 - playsewithpan SE_W003, SOUND_PAN_TARGET + playsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 2 createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 6, 1 waitforvisualfinish @@ -441,7 +441,7 @@ Move_DOUBLE_SLAP: choosetwoturnanim DoubleSlapLeft, DoubleSlapRight DoubleSlapContinue: createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 6, 1 - playsewithpan SE_W003, SOUND_PAN_TARGET + playsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_TARGET blendoff @@ -456,7 +456,7 @@ DoubleSlapRight: Move_POISON_POWDER: loadspritegfx ANIM_TAG_POISON_POWDER loadspritegfx ANIM_TAG_POISON_BUBBLE - loopsewithpan SE_W077, SOUND_PAN_TARGET, 10, 6 + loopsewithpan SE_M_POISON_POWDER, SOUND_PAN_TARGET, 10, 6 createsprite gPoisonPowderParticleSpriteTemplate, ANIM_TARGET, 2, -30, -22, 117, 80, 5, 1 createsprite gPoisonPowderParticleSpriteTemplate, ANIM_TARGET, 2, 10, -22, 117, 80, -5, 1 createsprite gPoisonPowderParticleSpriteTemplate, ANIM_TARGET, 2, -25, -22, 117, 112, 5, 3 @@ -480,7 +480,7 @@ Move_POISON_POWDER: Move_STUN_SPORE: loadspritegfx ANIM_TAG_STUN_SPORE - loopsewithpan SE_W077, SOUND_PAN_TARGET, 10, 6 + loopsewithpan SE_M_POISON_POWDER, SOUND_PAN_TARGET, 10, 6 createsprite gStunSporeParticleSpriteTemplate, ANIM_TARGET, 2, -30, -22, 117, 80, 5, 1 createsprite gStunSporeParticleSpriteTemplate, ANIM_TARGET, 2, 10, -22, 117, 80, -5, 1 createsprite gStunSporeParticleSpriteTemplate, ANIM_TARGET, 2, -25, -22, 117, 112, 5, 3 @@ -504,7 +504,7 @@ Move_STUN_SPORE: Move_SLEEP_POWDER: loadspritegfx ANIM_TAG_SLEEP_POWDER - loopsewithpan SE_W077, SOUND_PAN_TARGET, 10, 6 + loopsewithpan SE_M_POISON_POWDER, SOUND_PAN_TARGET, 10, 6 createsprite gSleepPowderParticleSpriteTemplate, ANIM_TARGET, 2, -30, -22, 117, 80, 5, 1 createsprite gSleepPowderParticleSpriteTemplate, ANIM_TARGET, 2, 10, -22, 117, 80, -5, 1 createsprite gSleepPowderParticleSpriteTemplate, ANIM_TARGET, 2, -25, -22, 117, 112, 5, 3 @@ -531,21 +531,21 @@ Move_SWIFT: loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER setalpha 12, 8 - playsewithpan SE_W129, SOUND_PAN_ATTACKER + playsewithpan SE_M_SWIFT, SOUND_PAN_ATTACKER createsprite gSwiftStarSpriteTemplate, ANIM_TARGET, 3, 20, -10, 20, 0, 22, 20, 1 delay 5 - playsewithpan SE_W129, SOUND_PAN_ATTACKER + playsewithpan SE_M_SWIFT, SOUND_PAN_ATTACKER createsprite gSwiftStarSpriteTemplate, ANIM_TARGET, 3, 20, -10, 20, 5, 22, -18, 1 delay 5 - playsewithpan SE_W129, SOUND_PAN_ATTACKER + playsewithpan SE_M_SWIFT, SOUND_PAN_ATTACKER createsprite gSwiftStarSpriteTemplate, ANIM_TARGET, 3, 20, -10, 20, -10, 22, 15, 1 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 18, 1 createvisualtask AnimTask_ShakeMon2, 2, ANIM_DEF_PARTNER, 2, 0, 18, 1 delay 5 - playsewithpan SE_W129, SOUND_PAN_ATTACKER + playsewithpan SE_M_SWIFT, SOUND_PAN_ATTACKER createsprite gSwiftStarSpriteTemplate, ANIM_TARGET, 3, 20, -10, 20, 0, 22, -20, 1 delay 5 - playsewithpan SE_W129, SOUND_PAN_ATTACKER + playsewithpan SE_M_SWIFT, SOUND_PAN_ATTACKER createsprite gSwiftStarSpriteTemplate, ANIM_TARGET, 3, 20, -10, 20, 0, 22, 12, 1 delay 5 waitforvisualfinish @@ -557,20 +557,20 @@ Move_STRENGTH: loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER setalpha 12, 8 - playsewithpan SE_W036, SOUND_PAN_ATTACKER + playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_ATTACKER createvisualtask AnimTask_ShakeAndSinkMon, 5, ANIM_ATTACKER, 2, 0, 96, 30 waitforvisualfinish delay 10 createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 4 createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_TARGET, 18, 6, 2, 4 delay 4 - playsewithpan SE_W025B, SOUND_PAN_TARGET + playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 16, 12, ANIM_TARGET, 1 delay 4 - playsewithpan SE_W025B, SOUND_PAN_TARGET + playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, -16, -12, ANIM_TARGET, 1 delay 4 - playsewithpan SE_W025B, SOUND_PAN_TARGET + playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 3, 4, ANIM_TARGET, 1 waitforvisualfinish createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 8, 1 @@ -587,7 +587,7 @@ Move_TACKLE: delay 6 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 2 createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 6, 1 - playsewithpan SE_W004, SOUND_PAN_TARGET + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_TARGET blendoff @@ -597,14 +597,14 @@ Move_BODY_SLAM: loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER setalpha 12, 8 - playsewithpan SE_W036, SOUND_PAN_ATTACKER + playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_ATTACKER createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 6, 1, ANIM_ATTACKER waitforvisualfinish delay 11 createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 0, 26, 0, 0, 5 delay 6 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 4, -10, 0, ANIM_TARGET, 0 - loopsewithpan SE_W025B, SOUND_PAN_TARGET, 10, 2 + loopsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET, 10, 2 delay 1 createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 1, -28, 0, 0, 3 waitforvisualfinish @@ -636,7 +636,7 @@ Move_SUPERSONIC: blendoff end SupersonicRing: - playsewithpan SE_W048, SOUND_PAN_ATTACKER + playsewithpan SE_M_SUPERSONIC, SOUND_PAN_ATTACKER createsprite gSupersonicRingSpriteTemplate, ANIM_TARGET, 2, 16, 0, 0, 0, 30, 0 delay 2 return @@ -651,7 +651,7 @@ Move_SCREECH: waitforvisualfinish end ScreechRing: - playsewithpan SE_W103, SOUND_PAN_ATTACKER + playsewithpan SE_M_SCREECH, SOUND_PAN_ATTACKER createsprite gScreechRingSpriteTemplate, ANIM_TARGET, 2, 16, 0, 0, 0, 30, 0 delay 2 return @@ -661,31 +661,31 @@ Move_FLAME_WHEEL: monbg ANIM_DEF_PARTNER monbgprio_2A ANIM_TARGET createsprite gFireSpiralOutwardSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 56, 0 - playsewithpan SE_W172, SOUND_PAN_ATTACKER + playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER delay 2 createsprite gFireSpiralOutwardSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 56, 4 - playsewithpan SE_W172, SOUND_PAN_ATTACKER + playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER delay 2 createsprite gFireSpiralOutwardSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 56, 8 - playsewithpan SE_W172, SOUND_PAN_ATTACKER + playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER delay 2 createsprite gFireSpiralOutwardSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 56, 12 - playsewithpan SE_W172, SOUND_PAN_ATTACKER + playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER delay 2 createsprite gFireSpiralOutwardSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 56, 16 - playsewithpan SE_W172, SOUND_PAN_ATTACKER + playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER delay 2 createsprite gFireSpiralOutwardSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 56, 20 - playsewithpan SE_W172, SOUND_PAN_ATTACKER + playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER delay 2 createsprite gFireSpiralOutwardSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 56, 24 - playsewithpan SE_W172, SOUND_PAN_ATTACKER + playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER waitforvisualfinish createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 0, 24, 0, 0, 6 delay 4 createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 5, 0, 8, 1 createvisualtask AnimTask_BlendMonInAndOut, 3, ANIM_TARGET, RGB_RED, 12, 1, 1 - playsewithpan SE_W172B, SOUND_PAN_TARGET + playsewithpan SE_M_FLAME_WHEEL2, SOUND_PAN_TARGET call FireSpreadEffect delay 7 createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 9 @@ -704,22 +704,22 @@ Move_PIN_MISSILE: monbg ANIM_TARGET monbgprio_28 ANIM_TARGET setalpha 12, 8 - playsewithpan SE_W026, SOUND_PAN_ATTACKER + playsewithpan SE_M_JUMP_KICK, SOUND_PAN_ATTACKER createsprite gPinMissileSpriteTemplate, ANIM_ATTACKER, 2, 20, -8, -8, -8, 20, -32 delay 15 createsprite gPinMissileSpriteTemplate, ANIM_ATTACKER, 2, 20, -8, 8, 8, 20, -40 delay 4 - playsewithpan SE_W030, SOUND_PAN_TARGET + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, -8, -8, ANIM_TARGET, 2 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 3, 0, 2, 1 delay 9 createsprite gPinMissileSpriteTemplate, ANIM_ATTACKER, 2, 20, -8, 0, 0, 20, -32 delay 4 - playsewithpan SE_W030, SOUND_PAN_TARGET + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 8, 8, ANIM_TARGET, 2 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 3, 0, 2, 1 delay 14 - playsewithpan SE_W030, SOUND_PAN_TARGET + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, ANIM_TARGET, 2 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 3, 0, 2, 1 waitforvisualfinish @@ -733,22 +733,22 @@ Move_ICICLE_SPEAR: monbg ANIM_TARGET monbgprio_28 ANIM_TARGET setalpha 12, 8 - playsewithpan SE_W196, SOUND_PAN_ATTACKER + playsewithpan SE_M_ICY_WIND, SOUND_PAN_ATTACKER createsprite gIcicleSpearSpriteTemplate, ANIM_ATTACKER, 2, 20, -8, -8, -8, 20, -32 delay 15 createsprite gIcicleSpearSpriteTemplate, ANIM_ATTACKER, 2, 20, -8, 8, 8, 20, -40 delay 4 - playsewithpan SE_W030, SOUND_PAN_TARGET + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, -8, -8, ANIM_TARGET, 2 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 3, 0, 2, 1 delay 9 createsprite gIcicleSpearSpriteTemplate, ANIM_ATTACKER, 2, 20, -8, 0, 0, 20, -32 delay 4 - playsewithpan SE_W030, SOUND_PAN_TARGET + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 8, 8, ANIM_TARGET, 2 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 3, 0, 2, 1 delay 14 - playsewithpan SE_W030, SOUND_PAN_TARGET + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, ANIM_TARGET, 2 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 3, 0, 2, 1 waitforvisualfinish @@ -764,7 +764,7 @@ Move_TAKE_DOWN: delay 35 createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 1, RGB_BLACK, 10, 0, 0 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 4, -10, 0, ANIM_TARGET, 0 - playsewithpan SE_W025B, SOUND_PAN_TARGET + playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET delay 1 createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 1, -16, 0, 0, 4 waitforvisualfinish @@ -781,19 +781,19 @@ Move_TAKE_DOWN: Move_DOUBLE_EDGE: loadspritegfx ANIM_TAG_IMPACT - playsewithpan SE_W129, SOUND_PAN_ATTACKER + playsewithpan SE_M_SWIFT, SOUND_PAN_ATTACKER createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 2, 4, 2, RGB_WHITE, 10, 0, 0 waitforvisualfinish delay 10 - playsewithpan SE_W207, SOUND_PAN_ATTACKER - waitplaysewithpan SE_W207, SOUND_PAN_ATTACKER, 8 + playsewithpan SE_M_SWAGGER, SOUND_PAN_ATTACKER + waitplaysewithpan SE_M_SWAGGER, SOUND_PAN_ATTACKER, 8 createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_ATTACKER, 18, 6, 2, 4 waitforvisualfinish createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 0, 16, 16, RGB_WHITE createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 0, 20, 0, 0, 4 delay 3 waitforvisualfinish - playsewithpan SE_W025B, SOUND_PAN_TARGET + playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 4, -10, 0, ANIM_TARGET, 0 createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 1, -32, 0, 0, 3 waitforvisualfinish @@ -819,12 +819,12 @@ Move_POISON_STING: monbg ANIM_TARGET monbgprio_28 ANIM_TARGET setalpha 12, 8 - playsewithpan SE_W013B, SOUND_PAN_ATTACKER + playsewithpan SE_M_RAZOR_WIND2, SOUND_PAN_ATTACKER createsprite gLinearStingerSpriteTemplate, ANIM_TARGET, 2, 20, 0, -8, 0, 20 waitforvisualfinish createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, ANIM_TARGET, 2 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 5, 1 - playsewithpan SE_W030, SOUND_PAN_TARGET + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET waitforvisualfinish call PoisonBubblesEffect waitforvisualfinish @@ -838,13 +838,13 @@ Move_TWINEEDLE: monbg ANIM_TARGET monbgprio_28 ANIM_TARGET setalpha 12, 8 - loopsewithpan SE_W013B, SOUND_PAN_ATTACKER, 6, 2 + loopsewithpan SE_M_RAZOR_WIND2, SOUND_PAN_ATTACKER, 6, 2 createsprite gLinearStingerSpriteTemplate, ANIM_TARGET, 2, 10, -4, 0, -4, 20 createsprite gLinearStingerSpriteTemplate, ANIM_TARGET, 2, 20, 12, 10, 12, 20 delay 20 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 5, 1 createsprite gHandleInvertHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, -4, 1, 3 - loopsewithpan SE_W030, SOUND_PAN_TARGET, 5, 2 + loopsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET, 5, 2 delay 1 createsprite gHandleInvertHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 10, 12, 1, 3 waitforvisualfinish @@ -854,7 +854,7 @@ Move_TWINEEDLE: Move_FIRE_BLAST: loadspritegfx ANIM_TAG_SMALL_EMBER - createsoundtask sub_8158B30, SE_W172, SE_W172B + createsoundtask sub_8158B30, SE_M_FLAME_WHEEL, SE_M_FLAME_WHEEL2 call FireBlastRing call FireBlastRing call FireBlastRing @@ -902,29 +902,29 @@ FireBlastCross: Move_LEECH_SEED: loadspritegfx ANIM_TAG_SEED - playsewithpan SE_W077, SOUND_PAN_ATTACKER + playsewithpan SE_M_POISON_POWDER, SOUND_PAN_ATTACKER createsprite gLeechSeedSpriteTemplate, ANIM_TARGET, 2, 15, 0, 0, 24, 35, -32 delay 8 - playsewithpan SE_W077, SOUND_PAN_ATTACKER + playsewithpan SE_M_POISON_POWDER, SOUND_PAN_ATTACKER createsprite gLeechSeedSpriteTemplate, ANIM_TARGET, 2, 15, 0, -16, 24, 35, -40 delay 8 - playsewithpan SE_W077, SOUND_PAN_ATTACKER + playsewithpan SE_M_POISON_POWDER, SOUND_PAN_ATTACKER createsprite gLeechSeedSpriteTemplate, ANIM_TARGET, 2, 15, 0, 16, 24, 35, -37 delay 12 - loopsewithpan SE_W039, SOUND_PAN_TARGET, 10, 8 + loopsewithpan SE_M_TAIL_WHIP, SOUND_PAN_TARGET, 10, 8 waitforvisualfinish end Move_EMBER: loadspritegfx ANIM_TAG_SMALL_EMBER - loopsewithpan SE_W052, SOUND_PAN_ATTACKER, 5, 2 + loopsewithpan SE_M_EMBER, SOUND_PAN_ATTACKER, 5, 2 createsprite gEmberSpriteTemplate, ANIM_TARGET, 2, 20, 0, -16, 24, 20, 1 delay 4 createsprite gEmberSpriteTemplate, ANIM_TARGET, 2, 20, 0, 0, 24, 20, 1 delay 4 createsprite gEmberSpriteTemplate, ANIM_TARGET, 2, 20, 0, 16, 24, 20, 1 delay 16 - playsewithpan SE_W172, SOUND_PAN_TARGET + playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_TARGET call EmberFireHit call EmberFireHit call EmberFireHit @@ -942,7 +942,7 @@ Move_MEGA_PUNCH: delay 2 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 0, 0, 16, RGB_BLACK setalpha 12, 8 - playsewithpan SE_W025, SOUND_PAN_TARGET + playsewithpan SE_M_MEGA_KICK, SOUND_PAN_TARGET createsprite gMegaPunchKickSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 0, 50 createvisualtask AnimTask_BlendBattleAnimPal, 10, 4, 2, 0, 7, RGB_WHITE delay 50 @@ -951,7 +951,7 @@ Move_MEGA_PUNCH: createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 4, 0, 22, 1 createvisualtask AnimTask_BlendBattleAnimPal, 10, 4, 2, 0, 0, RGB_WHITE createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 1, RGB_BLACK, 8, 0, 0 - playsewithpan SE_W233B, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_TARGET blendoff @@ -985,11 +985,11 @@ Move_MEGA_KICK: delay 2 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 0, 0, 16, RGB_BLACK setalpha 12, 8 - playsewithpan SE_W025, SOUND_PAN_TARGET + playsewithpan SE_M_MEGA_KICK, SOUND_PAN_TARGET createsprite gMegaPunchKickSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 1, 50 createvisualtask AnimTask_BlendBattleAnimPal, 10, 4, 2, 0, 7, RGB_WHITE delay 50 - playsewithpan SE_W025B, SOUND_PAN_TARGET + playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET call SetImpactBackground createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 0 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 4, 0, 22, 1 @@ -1011,7 +1011,7 @@ Move_COMET_PUNCH: choosetwoturnanim CometPunchLeft, CometPunchRight CometPunchContinue: createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 6, 1 - playsewithpan SE_W004, SOUND_PAN_TARGET + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_TARGET blendoff @@ -1041,7 +1041,7 @@ Move_SONIC_BOOM: blendoff end SonicBoomProjectile: - playsewithpan SE_W013B, SOUND_PAN_ATTACKER + playsewithpan SE_M_RAZOR_WIND2, SOUND_PAN_ATTACKER createsprite gSonicBoomSpriteTemplate, ANIM_TARGET, 2, 16, 0, 0, 0, 15 delay 4 return @@ -1057,7 +1057,7 @@ Move_THUNDER_SHOCK: waitforvisualfinish delay 10 createvisualtask AnimTask_ElectricBolt, 5, 0, -44, 0 - playsewithpan SE_W085, SOUND_PAN_TARGET + playsewithpan SE_M_THUNDERBOLT, SOUND_PAN_TARGET delay 9 createvisualtask AnimTask_BlendBattleAnimPal, 10, 4, 0, 0, 13, RGB_BLACK waitforvisualfinish @@ -1079,13 +1079,13 @@ Move_THUNDERBOLT: waitforvisualfinish delay 10 createvisualtask AnimTask_ElectricBolt, 5, 24, -52, 0 - playsewithpan SE_W085, SOUND_PAN_TARGET + playsewithpan SE_M_THUNDERBOLT, SOUND_PAN_TARGET delay 7 createvisualtask AnimTask_ElectricBolt, 5, -24, -52, 0 - playsewithpan SE_W085, SOUND_PAN_TARGET + playsewithpan SE_M_THUNDERBOLT, SOUND_PAN_TARGET delay 7 createvisualtask AnimTask_ElectricBolt, 5, 0, -60, 1 - playsewithpan SE_W085, SOUND_PAN_TARGET + playsewithpan SE_M_THUNDERBOLT, SOUND_PAN_TARGET delay 9 createvisualtask AnimTask_BlendBattleAnimPal, 10, 4, 0, 0, 13, RGB_BLACK waitforvisualfinish @@ -1101,7 +1101,7 @@ Move_THUNDERBOLT: createsprite gSparkElectricityFlashingSpriteTemplate, ANIM_TARGET, 4, 0, 0, 16, 44, 96, 40, 1, -32765 createsprite gSparkElectricityFlashingSpriteTemplate, ANIM_TARGET, 4, 0, 0, 16, 44, 160, 40, 0, -32765 createsprite gSparkElectricityFlashingSpriteTemplate, ANIM_TARGET, 4, 0, 0, 16, 44, 224, 40, 2, -32765 - playsewithpan SE_W063, SOUND_PAN_TARGET + playsewithpan SE_M_HYPER_BEAM, SOUND_PAN_TARGET delay 0 createvisualtask AnimTask_BlendBattleAnimPal, 10, 1, 0, 2, 2, RGB_BLACK delay 6 @@ -1112,7 +1112,7 @@ Move_THUNDERBOLT: createvisualtask AnimTask_BlendBattleAnimPal, 10, 1, 0, 6, 6, RGB_BLACK waitforvisualfinish delay 20 - waitplaysewithpan SE_W085B, SOUND_PAN_TARGET, 19 + waitplaysewithpan SE_M_THUNDERBOLT2, SOUND_PAN_TARGET, 19 call ElectricityEffect waitforvisualfinish delay 20 @@ -1128,9 +1128,9 @@ Move_THUNDER_WAVE: waitforvisualfinish delay 10 createvisualtask AnimTask_ElectricBolt, 5, 0, -48, 0 - playsewithpan SE_W086, SOUND_PAN_TARGET + playsewithpan SE_M_THUNDER_WAVE, SOUND_PAN_TARGET delay 20 - loopsewithpan SE_W085B, SOUND_PAN_TARGET, 10, 4 + loopsewithpan SE_M_THUNDERBOLT2, SOUND_PAN_TARGET, 10, 4 createsprite gThunderWaveSpriteTemplate, ANIM_TARGET, 2, -16, -16 delay 4 createsprite gThunderWaveSpriteTemplate, ANIM_TARGET, 2, -16, 0 @@ -1156,23 +1156,23 @@ BeatUpLeft: createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, -20, -20, ANIM_TARGET, 2 createsprite gFistFootSpriteTemplate, ANIM_TARGET, 3, -20, -12, 8, 1, 0 createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 6, 1 - playsewithpan SE_W233B, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET delay 8 createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, 8, 0, ANIM_TARGET, 2 createsprite gFistFootSpriteTemplate, ANIM_TARGET, 3, 8, 8, 8, 1, 0 createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 6, 1 - playsewithpan SE_W233B, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET goto BeatUpContinue BeatUpRight: createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, 12, -20, ANIM_TARGET, 2 createsprite gFistFootSpriteTemplate, ANIM_TARGET, 3, 12, -12, 8, 1, 0 createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 6, 1 - playsewithpan SE_W233B, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET delay 8 createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, -12, 0, ANIM_TARGET, 2 createsprite gFistFootSpriteTemplate, ANIM_TARGET, 3, -12, 8, 8, 1, 0 createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 6, 1 - playsewithpan SE_W233B, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET goto BeatUpContinue Move_STOMP: @@ -1180,19 +1180,19 @@ Move_STOMP: loadspritegfx ANIM_TAG_IMPACT monbg ANIM_TARGET setalpha 12, 8 - playsewithpan SE_W104, SOUND_PAN_TARGET + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_TARGET createsprite gStompFootSpriteTemplate, ANIM_ATTACKER, 3, 0, -32, 15 delay 19 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, -8, ANIM_TARGET, 1 createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 0, 4, 9, 1 - playsewithpan SE_W025B, SOUND_PAN_TARGET + playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_TARGET blendoff end Move_TAIL_WHIP: - loopsewithpan SE_W039, SOUND_PAN_ATTACKER, 24, 3 + loopsewithpan SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER, 24, 3 createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_ATTACKER, 12, 4, 2, 3 waitforvisualfinish end @@ -1201,7 +1201,7 @@ Move_CUT: loadspritegfx ANIM_TAG_CUT monbg ANIM_TARGET setalpha 12, 8 - playsewithpan SE_W015, SOUND_PAN_TARGET + playsewithpan SE_M_CUT, SOUND_PAN_TARGET createsprite gCuttingSliceSpriteTemplate, ANIM_ATTACKER, 2, 40, -32, 0 delay 5 createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 0, 3, 10, 1 @@ -1213,14 +1213,14 @@ Move_CUT: Move_HIDDEN_POWER: loadspritegfx ANIM_TAG_RED_ORB - playsewithpan SE_W036, SOUND_PAN_ATTACKER + playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_ATTACKER createvisualtask AnimTask_ScaleMonAndRestore, 5, -7, -7, 11, ANIM_ATTACKER, 0 waitforvisualfinish delay 30 createvisualtask AnimTask_BlendMonInAndOut, 5, ANIM_ATTACKER, RGB(31, 31, 19), 12, 5, 1 delay 4 createvisualtask AnimTask_ScaleMonAndRestore, 5, -7, -7, 11, ANIM_ATTACKER, 0 - playsewithpan SE_W179, SOUND_PAN_ATTACKER + playsewithpan SE_M_REVERSAL, SOUND_PAN_ATTACKER createsprite gHiddenPowerOrbSpriteTemplate, ANIM_ATTACKER, 2, 26, 0 createsprite gHiddenPowerOrbSpriteTemplate, ANIM_ATTACKER, 2, 26, 42 createsprite gHiddenPowerOrbSpriteTemplate, ANIM_ATTACKER, 2, 26, 84 @@ -1229,7 +1229,7 @@ Move_HIDDEN_POWER: createsprite gHiddenPowerOrbSpriteTemplate, ANIM_ATTACKER, 2, 26, 210 delay 52 setarg 7, 0xFFFF - playsewithpan SE_W115, SOUND_PAN_ATTACKER + playsewithpan SE_M_REFLECT, SOUND_PAN_ATTACKER createvisualtask AnimTask_ScaleMonAndRestore, 5, -7, -7, 11, ANIM_ATTACKER, 0 createsprite gHiddenPowerOrbScatterSpriteTemplate, ANIM_TARGET, 2, 0 createsprite gHiddenPowerOrbScatterSpriteTemplate, ANIM_TARGET, 2, 32 @@ -1245,13 +1245,13 @@ Move_REVERSAL: loadspritegfx ANIM_TAG_BLUE_ORB loadspritegfx ANIM_TAG_HANDS_AND_FEET loadspritegfx ANIM_TAG_IMPACT - playsewithpan SE_W197, SOUND_PAN_ATTACKER + playsewithpan SE_M_DETECT, SOUND_PAN_ATTACKER createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 3, RGB_WHITE, 8, 0, 0 waitforvisualfinish delay 30 createvisualtask AnimTask_BlendColorCycle, 2, 31, 3, 2, 0, 10, RGB_WHITE delay 10 - playsewithpan SE_W179, SOUND_PAN_ATTACKER + playsewithpan SE_M_REVERSAL, SOUND_PAN_ATTACKER createsprite gReversalOrbSpriteTemplate, ANIM_ATTACKER, 2, 26, 0 createsprite gReversalOrbSpriteTemplate, ANIM_ATTACKER, 2, 26, 42 createsprite gReversalOrbSpriteTemplate, ANIM_ATTACKER, 2, 26, 84 @@ -1262,7 +1262,7 @@ Move_REVERSAL: delay 20 createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 6, 4 delay 8 - playsewithpan SE_W233B, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 1, RGB_WHITE, 8, 0, 0 createsprite gFistFootSpriteTemplate, ANIM_TARGET, 4, 0, 0, 10, 1, 0 createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, ANIM_TARGET, 1 @@ -1286,12 +1286,12 @@ PursuitContinue: waitbgfadein end PursuitNormal: - playsewithpan SE_W004, SOUND_PAN_TARGET + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, ANIM_TARGET, 2 createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 5, FALSE, 1, 6, 1, 0 goto PursuitContinue PursuitOnSwitchout: - playsewithpan SE_W004, SOUND_PAN_TARGET + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, ANIM_TARGET, 1 createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 5, FALSE, 1, 6, 1, 0 goto PursuitContinue @@ -1304,7 +1304,7 @@ Move_SPIKE_CANNON: setalpha 12, 8 createvisualtask AnimTask_WindUpLunge, 5, ANIM_ATTACKER, -4, 0, 4, 6, 8, 4 waitforvisualfinish - loopsewithpan SE_W013B, SOUND_PAN_ATTACKER, 5, 3 + loopsewithpan SE_M_RAZOR_WIND2, SOUND_PAN_ATTACKER, 5, 3 createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 5 createsprite gLinearStingerSpriteTemplate, ANIM_ATTACKER, 2, 10, -8, -8, -8, 20 createsprite gLinearStingerSpriteTemplate, ANIM_ATTACKER, 2, 18, 0, 0, 0, 20 @@ -1314,7 +1314,7 @@ Move_SPIKE_CANNON: createsprite gHandleInvertHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 1, 2 createsprite gHandleInvertHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 8, 8, 1, 2 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 3, 0, 7, 1 - loopsewithpan SE_W030, SOUND_PAN_TARGET, 5, 3 + loopsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET, 5, 3 waitforvisualfinish clearmonbg ANIM_TARGET blendoff @@ -1324,7 +1324,7 @@ Move_SWORDS_DANCE: loadspritegfx ANIM_TAG_SWORD monbg ANIM_ATTACKER setalpha 12, 8 - playsewithpan SE_W014, SOUND_PAN_ATTACKER + playsewithpan SE_M_SWORDS_DANCE, SOUND_PAN_ATTACKER createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_ATTACKER, 16, 6, 1, 4 createsprite gSwordsDanceBladeSpriteTemplate, ANIM_ATTACKER, 2, 0, 0 delay 22 @@ -1340,12 +1340,12 @@ Move_PSYCH_UP: monbg ANIM_ATK_PARTNER createvisualtask AnimTask_BlendColorCycleExclude, 2, 1, 2, 6, 1, 11, RGB_BLACK setalpha 12, 8 - loopsewithpan SE_W060B, SOUND_PAN_ATTACKER, 5, 10 + loopsewithpan SE_M_PSYBEAM2, SOUND_PAN_ATTACKER, 5, 10 createsprite gPsychUpSpiralSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 0, 0 createvisualtask AnimTask_SwayMon, 5, 0, 5, 2560, 8, ANIM_ATTACKER delay 127 delay 4 - playsewithpan SE_W060, SOUND_PAN_ATTACKER + playsewithpan SE_M_PSYBEAM, SOUND_PAN_ATTACKER createvisualtask AnimTask_ScaleMonAndRestore, 5, -5, -5, 10, ANIM_ATTACKER, 1 createvisualtask AnimTask_BlendBattleAnimPal, 9, 2, 2, 10, 0, RGB_YELLOW delay 30 @@ -1363,7 +1363,7 @@ Move_DIZZY_PUNCH: call DizzyPunchLunge createsprite gFistFootSpriteTemplate, ANIM_TARGET, 5, 16, 8, 20, 1, 0 createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 4, 16, 0, ANIM_TARGET, 1 - playsewithpan SE_W004, SOUND_PAN_TARGET + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET createsprite gDizzyPunchDuckSpriteTemplate, ANIM_TARGET, 3, 16, 8, 160, -32 createsprite gDizzyPunchDuckSpriteTemplate, ANIM_TARGET, 3, 16, 8, -256, -40 createsprite gDizzyPunchDuckSpriteTemplate, ANIM_TARGET, 3, 16, 8, 128, -16 @@ -1374,7 +1374,7 @@ Move_DIZZY_PUNCH: call DizzyPunchLunge createsprite gFistFootSpriteTemplate, ANIM_TARGET, 5, -16, -8, 20, 1, 0 createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 4, -16, -16, ANIM_TARGET, 1 - playsewithpan SE_W233B, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET createsprite gDizzyPunchDuckSpriteTemplate, ANIM_TARGET, 3, -16, -8, 160, -32 createsprite gDizzyPunchDuckSpriteTemplate, ANIM_TARGET, 3, -16, -8, -256, -40 createsprite gDizzyPunchDuckSpriteTemplate, ANIM_TARGET, 3, -16, -8, 128, -16 @@ -1393,7 +1393,7 @@ DizzyPunchLunge: Move_FIRE_SPIN: loadspritegfx ANIM_TAG_SMALL_EMBER - playsewithpan SE_W221B, SOUND_PAN_TARGET + playsewithpan SE_M_SACRED_FIRE2, SOUND_PAN_TARGET createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 2, 47, 1 call FireSpinEffect call FireSpinEffect @@ -1420,7 +1420,7 @@ Move_FURY_CUTTER: loadspritegfx ANIM_TAG_CUT monbg ANIM_TARGET setalpha 12, 8 - playsewithpan SE_W013, SOUND_PAN_TARGET + playsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET createvisualtask AnimTask_IsFuryCutterHitRight, 2 jumpretfalse FuryCutterLeft goto FuryCutterRight @@ -1468,19 +1468,19 @@ Move_SELF_DESTRUCT: createvisualtask AnimTask_BlendBattleAnimPal, 10, 2, 1, 9, 0, RGB_RED end SelfDestructExplode: - playsewithpan SE_W120, SOUND_PAN_ATTACKER + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_ATTACKER createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 0, 1 delay 6 - playsewithpan SE_W120, SOUND_PAN_ATTACKER + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_ATTACKER createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, 24, -24, 0, 1 delay 6 - playsewithpan SE_W120, SOUND_PAN_ATTACKER + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_ATTACKER createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, -16, 16, 0, 1 delay 6 - playsewithpan SE_W120, SOUND_PAN_ATTACKER + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_ATTACKER createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, -24, -12, 0, 1 delay 6 - playsewithpan SE_W120, SOUND_PAN_ATTACKER + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_ATTACKER createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, 16, 16, 0, 1 delay 6 return @@ -1490,12 +1490,12 @@ Move_SLAM: loadspritegfx ANIM_TAG_IMPACT monbg ANIM_TARGET setalpha 12, 8 - playsewithpan SE_W004, SOUND_PAN_ATTACKER + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_ATTACKER createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 0, 20, 3, 0, 4 delay 1 createsprite gSlamHitSpriteTemplate, ANIM_ATTACKER, 2, 0, 0 delay 3 - playsewithpan SE_W025B, SOUND_PAN_TARGET + playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, ANIM_TARGET, 1 createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 1, -12, 10, 0, 3 createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 5 @@ -1511,10 +1511,10 @@ Move_SLAM: Move_VINE_WHIP: loadspritegfx ANIM_TAG_WHIP_HIT - playsewithpan SE_W026, SOUND_PAN_ATTACKER + playsewithpan SE_M_JUMP_KICK, SOUND_PAN_ATTACKER createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 4, 6 delay 6 - playsewithpan SE_W010, SOUND_PAN_TARGET + playsewithpan SE_M_SCRATCH, SOUND_PAN_TARGET createsprite gVineWhipSpriteTemplate, ANIM_TARGET, 2, 0, 0 delay 6 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 6, 1 @@ -1524,12 +1524,12 @@ Move_DRILL_PECK: loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_WHIRLWIND_LINES createsprite gBowMonSpriteTemplate, ANIM_ATTACKER, 2, 0 - playsewithpan SE_W029, SOUND_PAN_ATTACKER + playsewithpan SE_M_HEADBUTT, SOUND_PAN_ATTACKER waitforvisualfinish delay 2 createsprite gBowMonSpriteTemplate, ANIM_ATTACKER, 2, 1 delay 2 - loopsewithpan SE_W030, SOUND_PAN_TARGET, 4, 8 + loopsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET, 4, 8 createvisualtask AnimTask_DrillPeckHitSplats, 5 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 4, 0, 18, 1 waitforvisualfinish @@ -1547,28 +1547,28 @@ Move_WATERFALL: setalpha 12, 8 createvisualtask AnimTask_ShakeMon, 5, ANIM_ATTACKER, 0, 2, 23, 1 delay 5 - playsewithpan SE_W152, SOUND_PAN_ATTACKER + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_ATTACKER createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, 10, 10, 25, ANIM_ATTACKER delay 4 - playsewithpan SE_W152, SOUND_PAN_ATTACKER + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_ATTACKER createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, -15, 0, 25, ANIM_ATTACKER delay 4 - playsewithpan SE_W152, SOUND_PAN_ATTACKER + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_ATTACKER createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, 20, 10, 25, ANIM_ATTACKER delay 4 - playsewithpan SE_W152, SOUND_PAN_ATTACKER + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_ATTACKER createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, 0, -10, 25, ANIM_ATTACKER delay 4 - playsewithpan SE_W152, SOUND_PAN_ATTACKER + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_ATTACKER createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, -10, 15, 25, ANIM_ATTACKER delay 4 - playsewithpan SE_W152, SOUND_PAN_ATTACKER + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_ATTACKER createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, 25, 20, 25, ANIM_ATTACKER delay 4 - playsewithpan SE_W152, SOUND_PAN_ATTACKER + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_ATTACKER createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, -20, 20, 25, ANIM_ATTACKER delay 4 - playsewithpan SE_W152, SOUND_PAN_ATTACKER + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_ATTACKER createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, 12, 0, 25, ANIM_ATTACKER waitforvisualfinish delay 10 @@ -1581,7 +1581,7 @@ Move_WATERFALL: end RisingWaterHitEffect: - playsewithpan SE_W127, SOUND_PAN_TARGET + playsewithpan SE_M_WATERFALL, SOUND_PAN_TARGET createvisualtask AnimTask_ShakeMon2, 5, ANIM_TARGET, 4, 0, 17, 1 createsprite gWaterHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 20, ANIM_TARGET, 1 createsprite gSmallDriftingBubblesSpriteTemplate, ANIM_ATTACKER, 4, 0, 20 @@ -1636,26 +1636,26 @@ Move_EXPLOSION: createvisualtask AnimTask_BlendBattleAnimPal, 10, 1, 3, 16, 0, RGB_WHITE end Explosion1: - playsewithpan SE_W153, SOUND_PAN_ATTACKER + playsewithpan SE_M_EXPLOSION, SOUND_PAN_ATTACKER createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 0, 1 delay 6 - playsewithpan SE_W153, SOUND_PAN_ATTACKER + playsewithpan SE_M_EXPLOSION, SOUND_PAN_ATTACKER createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, 24, -24, 0, 1 delay 6 - playsewithpan SE_W153, SOUND_PAN_ATTACKER + playsewithpan SE_M_EXPLOSION, SOUND_PAN_ATTACKER createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, -16, 16, 0, 1 delay 6 - playsewithpan SE_W153, SOUND_PAN_ATTACKER + playsewithpan SE_M_EXPLOSION, SOUND_PAN_ATTACKER createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, -24, -12, 0, 1 delay 6 - playsewithpan SE_W153, SOUND_PAN_ATTACKER + playsewithpan SE_M_EXPLOSION, SOUND_PAN_ATTACKER createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, 16, 16, 0, 1 delay 6 return Move_DEFENSE_CURL: loadspritegfx ANIM_TAG_ECLIPSING_ORB - loopsewithpan SE_W161, SOUND_PAN_ATTACKER, 18, 3 + loopsewithpan SE_M_TRI_ATTACK, SOUND_PAN_ATTACKER, 18, 3 createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, ANIM_ATTACKER, 0 createvisualtask AnimTask_DefenseCurlDeformMon, 5 waitforvisualfinish @@ -1669,7 +1669,7 @@ Move_PROTECT: loadspritegfx ANIM_TAG_PROTECT monbg ANIM_ATK_PARTNER monbgprio_28 ANIM_ATTACKER - waitplaysewithpan SE_W115, SOUND_PAN_ATTACKER, 16 + waitplaysewithpan SE_M_REFLECT, SOUND_PAN_ATTACKER, 16 createsprite gProtectSpriteTemplate, ANIM_ATTACKER, 2, 24, 0, 90 waitforvisualfinish clearmonbg ANIM_ATK_PARTNER @@ -1681,7 +1681,7 @@ Move_DETECT: waitforvisualfinish createvisualtask AnimTask_BlendBattleAnimPal, 10, 2, 1, 0, 9, RGB_WHITE delay 18 - playsewithpan SE_W197, SOUND_PAN_ATTACKER + playsewithpan SE_M_DETECT, SOUND_PAN_ATTACKER createsprite gSpinningSparkleSpriteTemplate, ANIM_ATTACKER, 13, 20, -20 waitforvisualfinish delay 10 @@ -1706,15 +1706,15 @@ Frustration_Continue: blendoff end Frustration_Strongest: - playsewithpan SE_W082, SOUND_PAN_ATTACKER + playsewithpan SE_M_DRAGON_RAGE, SOUND_PAN_ATTACKER createvisualtask AnimTask_ShakeMon2, 5, ANIM_ATTACKER, 1, 0, 15, 1 createvisualtask AnimTask_BlendBattleAnimPal, 10, 2, 3, 0, 9, 31 waitforvisualfinish delay 20 - playsewithpan SE_W207B, SOUND_PAN_ATTACKER + playsewithpan SE_M_SWAGGER2, SOUND_PAN_ATTACKER createsprite gAngerMarkSpriteTemplate, ANIM_ATTACKER, 2, 0, 20, -28 waitforvisualfinish - playsewithpan SE_W207B, SOUND_PAN_ATTACKER + playsewithpan SE_M_SWAGGER2, SOUND_PAN_ATTACKER createsprite gAngerMarkSpriteTemplate, ANIM_ATTACKER, 2, 0, 20, -28 waitforvisualfinish delay 10 @@ -1722,65 +1722,65 @@ Frustration_Strongest: delay 5 createvisualtask AnimTask_ShakeMon2, 5, ANIM_TARGET, 4, 0, 30, 1 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, ANIM_TARGET, 0 - playsewithpan SE_W004, SOUND_PAN_TARGET + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET delay 5 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 24, 8, ANIM_TARGET, 0 - playsewithpan SE_W004, SOUND_PAN_TARGET + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET delay 5 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, -24, -16, ANIM_TARGET, 0 - playsewithpan SE_W004, SOUND_PAN_TARGET + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET delay 5 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 8, 4, ANIM_TARGET, 0 - playsewithpan SE_W004, SOUND_PAN_TARGET + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET delay 5 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, -16, 19, ANIM_TARGET, 0 - playsewithpan SE_W004, SOUND_PAN_TARGET + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET delay 5 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 18, -18, ANIM_TARGET, 0 - playsewithpan SE_W004, SOUND_PAN_TARGET + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET waitforvisualfinish createvisualtask AnimTask_BlendBattleAnimPal, 10, 2, 3, 9, 0, 31 goto Frustration_Continue Frustration_Strong: - playsewithpan SE_W082, SOUND_PAN_ATTACKER + playsewithpan SE_M_DRAGON_RAGE, SOUND_PAN_ATTACKER createvisualtask AnimTask_ShakeMon2, 5, ANIM_ATTACKER, 1, 0, 15, 1 createvisualtask AnimTask_BlendBattleAnimPal, 10, 2, 3, 0, 9, 31 waitforvisualfinish delay 20 - playsewithpan SE_W207B, SOUND_PAN_ATTACKER + playsewithpan SE_M_SWAGGER2, SOUND_PAN_ATTACKER createsprite gAngerMarkSpriteTemplate, ANIM_ATTACKER, 2, 0, 20, -28 waitforvisualfinish delay 5 createvisualtask AnimTask_StrongFrustrationGrowAndShrink, 5 delay 7 - playsewithpan SE_W004, SOUND_PAN_TARGET + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 8, ANIM_TARGET, 1 createvisualtask AnimTask_ShakeMon2, 5, ANIM_TARGET, 4, 0, 6, 1 delay 14 - playsewithpan SE_W004, SOUND_PAN_TARGET + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 12, -6, ANIM_TARGET, 1 createvisualtask AnimTask_ShakeMon2, 5, ANIM_TARGET, 4, 0, 6, 1 delay 14 - playsewithpan SE_W004, SOUND_PAN_TARGET + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, -12, -6, ANIM_TARGET, 1 createvisualtask AnimTask_ShakeMon2, 5, ANIM_TARGET, 4, 0, 6, 1 waitforvisualfinish createvisualtask AnimTask_BlendBattleAnimPal, 10, 2, 3, 9, 0, 31 goto Frustration_Continue Frustration_Medium: - playsewithpan SE_W207B, SOUND_PAN_ATTACKER + playsewithpan SE_M_SWAGGER2, SOUND_PAN_ATTACKER createsprite gAngerMarkSpriteTemplate, ANIM_ATTACKER, 2, 0, 20, -28 waitforvisualfinish delay 5 createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 4, 4 delay 6 - playsewithpan SE_W004, SOUND_PAN_TARGET + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 10, 4, ANIM_TARGET, 1 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 3, 0, 6, 1 waitforvisualfinish createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 4, 4 delay 6 - playsewithpan SE_W004, SOUND_PAN_TARGET + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -10, -4, ANIM_TARGET, 2 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 3, 0, 6, 1 goto Frustration_Continue @@ -1790,7 +1790,7 @@ Frustration_Weak: delay 10 createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 10, 2 delay 12 - playsewithpan SE_W004, SOUND_PAN_TARGET + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 2 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 1, 0, 6, 1 goto Frustration_Continue @@ -1799,14 +1799,14 @@ Move_SAFEGUARD: loadspritegfx ANIM_TAG_GUARD_RING monbg ANIM_ATK_PARTNER setalpha 8, 8 - playsewithpan SE_W208, SOUND_PAN_ATTACKER + playsewithpan SE_M_MILK_DRINK, SOUND_PAN_ATTACKER createsprite gGuardRingSpriteTemplate, ANIM_ATTACKER, 2 delay 4 createsprite gGuardRingSpriteTemplate, ANIM_ATTACKER, 2 delay 4 createsprite gGuardRingSpriteTemplate, ANIM_ATTACKER, 2 waitforvisualfinish - playsewithpan SE_REAPOKE, SOUND_PAN_ATTACKER + playsewithpan SE_SHINY, SOUND_PAN_ATTACKER createvisualtask AnimTask_BlendColorCycle, 2, 10, 0, 2, 0, 10, RGB_WHITE waitforvisualfinish clearmonbg ANIM_ATK_PARTNER @@ -1818,21 +1818,21 @@ Move_PAIN_SPLIT: createsprite gPainSplitProjectileSpriteTemplate, ANIM_ATTACKER, 2, -8, -42, ANIM_ATTACKER createsprite gPainSplitProjectileSpriteTemplate, ANIM_TARGET, 2, -8, -42, ANIM_TARGET delay 10 - playsewithpan SE_W207B, 0 + playsewithpan SE_M_SWAGGER2, 0 createvisualtask AnimTask_PainSplitMovement, 2, ANIM_ATTACKER, 0 createvisualtask AnimTask_PainSplitMovement, 2, ANIM_TARGET, 0 waitforvisualfinish createsprite gPainSplitProjectileSpriteTemplate, ANIM_ATTACKER, 2, -24, -42, ANIM_ATTACKER createsprite gPainSplitProjectileSpriteTemplate, ANIM_TARGET, 2, -24, -42, ANIM_TARGET delay 10 - playsewithpan SE_W207B, 0 + playsewithpan SE_M_SWAGGER2, 0 createvisualtask AnimTask_PainSplitMovement, 2, ANIM_ATTACKER, 1 createvisualtask AnimTask_PainSplitMovement, 2, ANIM_TARGET, 1 waitforvisualfinish createsprite gPainSplitProjectileSpriteTemplate, ANIM_ATTACKER, 2, 8, -42, ANIM_ATTACKER createsprite gPainSplitProjectileSpriteTemplate, ANIM_TARGET, 2, 8, -42, ANIM_TARGET delay 10 - playsewithpan SE_W207B, 0 + playsewithpan SE_M_SWAGGER2, 0 createvisualtask AnimTask_PainSplitMovement, 2, ANIM_ATTACKER, 2 createvisualtask AnimTask_PainSplitMovement, 2, ANIM_TARGET, 2 end @@ -1842,7 +1842,7 @@ Move_VICE_GRIP: loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER setalpha 12, 8 - playsewithpan SE_W011, SOUND_PAN_TARGET + playsewithpan SE_M_VICEGRIP, SOUND_PAN_TARGET createsprite gViceGripSpriteTemplate, ANIM_ATTACKER, 2, 0 createsprite gViceGripSpriteTemplate, ANIM_ATTACKER, 2, 1 delay 9 @@ -1860,7 +1860,7 @@ Move_GUILLOTINE: setalpha 12, 8 fadetobgfromset BG_GUILLOTINE_OPPONENT, BG_GUILLOTINE_PLAYER, BG_GUILLOTINE_CONTESTS waitbgfadein - playsewithpan SE_W011, SOUND_PAN_TARGET + playsewithpan SE_M_VICEGRIP, SOUND_PAN_TARGET createsprite gGuillotineSpriteTemplate, ANIM_ATTACKER, 2, 0 createsprite gGuillotineSpriteTemplate, ANIM_ATTACKER, 2, 1 createvisualtask AnimTask_BlendBattleAnimPal, 10, 4, 2, 0, 16, RGB_BLACK @@ -1870,7 +1870,7 @@ Move_GUILLOTINE: createvisualtask AnimTask_ShakeMon2, 5, ANIM_TARGET, 4, 0, 8, 1 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, ANIM_TARGET, 0 createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 1, RGB_BLACK, 8, 0, 0 - playsewithpan SE_W013, SOUND_PAN_TARGET + playsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff @@ -1884,10 +1884,10 @@ Move_PAY_DAY: monbg ANIM_TARGET monbgprio_28 ANIM_TARGET setalpha 12, 8 - playsewithpan SE_W013B, SOUND_PAN_ATTACKER + playsewithpan SE_M_RAZOR_WIND2, SOUND_PAN_ATTACKER createsprite gCoinThrowSpriteTemplate, ANIM_ATTACKER, 2, 20, 0, 0, 0, 1152 waitforvisualfinish - playsewithpan SE_W006, SOUND_PAN_TARGET + playsewithpan SE_M_PAY_DAY, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 1, 0, 0, ANIM_TARGET, 2 createsprite gFallingCoinSpriteTemplate, ANIM_ATTACKER, 2 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 1, 0, 6, 1 @@ -1898,7 +1898,7 @@ Move_PAY_DAY: Move_OUTRAGE: loadspritegfx ANIM_TAG_SMALL_EMBER - loopsewithpan SE_W082, SOUND_PAN_ATTACKER, 8, 3 + loopsewithpan SE_M_DRAGON_RAGE, SOUND_PAN_ATTACKER, 8, 3 createvisualtask AnimTask_BlendColorCycle, 2, 7, 2, 5, 3, 8, RGB(14, 13, 0) createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_ATTACKER, 12, 6, 5, 4 delay 0 @@ -1946,7 +1946,7 @@ Move_SPARK: loadspritegfx ANIM_TAG_SPARK_2 delay 0 createvisualtask AnimTask_BlendColorCycle, 2, 3, -31, 1, 5, 5, RGB(31, 31, 22) - playsewithpan SE_W085B, SOUND_PAN_ATTACKER + playsewithpan SE_M_THUNDERBOLT2, SOUND_PAN_ATTACKER createsprite gSparkElectricitySpriteTemplate, ANIM_ATTACKER, 0, 32, 24, 190, 12, ANIM_ATTACKER, 1, 0 delay 0 createsprite gSparkElectricitySpriteTemplate, ANIM_ATTACKER, 0, 80, 24, 22, 12, ANIM_ATTACKER, 1, 0 @@ -1955,7 +1955,7 @@ Move_SPARK: createvisualtask AnimTask_BlendColorCycle, 2, 3, -31, 1, 0, 0, RGB(31, 31, 22) delay 10 createvisualtask AnimTask_BlendColorCycle, 2, 3, -31, 1, 5, 5, RGB(31, 31, 22) - playsewithpan SE_W085B, SOUND_PAN_ATTACKER + playsewithpan SE_M_THUNDERBOLT2, SOUND_PAN_ATTACKER createsprite gSparkElectricitySpriteTemplate, ANIM_ATTACKER, 0, 100, 24, 60, 10, ANIM_ATTACKER, 1, 0 createsprite gSparkElectricitySpriteTemplate, ANIM_ATTACKER, 0, 170, 24, 42, 11, ANIM_ATTACKER, 1, 1 delay 0 @@ -1964,7 +1964,7 @@ Move_SPARK: createvisualtask AnimTask_BlendColorCycle, 2, 3, -31, 1, 0, 0, RGB(31, 31, 22) delay 20 createvisualtask AnimTask_BlendColorCycle, 2, 3, -31, 1, 7, 7, RGB(31, 31, 22) - playsewithpan SE_W085B, SOUND_PAN_ATTACKER + playsewithpan SE_M_THUNDERBOLT2, SOUND_PAN_ATTACKER createsprite gSparkElectricityFlashingSpriteTemplate, ANIM_ATTACKER, 4, 0, 0, 32, 12, 0, 20, 0, 0 createsprite gSparkElectricityFlashingSpriteTemplate, ANIM_ATTACKER, 4, 0, 0, 32, 12, 64, 20, 1, 0 createsprite gSparkElectricityFlashingSpriteTemplate, ANIM_ATTACKER, 4, 0, 0, 32, 12, 128, 20, 0, 0 @@ -1978,7 +1978,7 @@ Move_SPARK: createvisualtask AnimTask_BlendColorCycle, 2, 3, -31, 1, 0, 0, RGB(31, 31, 22) createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 4, 4 delay 4 - playsewithpan SE_W063, SOUND_PAN_TARGET + playsewithpan SE_M_HYPER_BEAM, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, ANIM_TARGET, 2 createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 6, 1 waitforvisualfinish @@ -1989,12 +1989,12 @@ Move_SPARK: Move_ATTRACT: loadspritegfx ANIM_TAG_RED_HEART - loopsewithpan SE_W204, SOUND_PAN_ATTACKER, 12, 3 + loopsewithpan SE_M_CHARM, SOUND_PAN_ATTACKER, 12, 3 createvisualtask AnimTask_SwayMon, 5, 0, 12, 4096, 4, ANIM_ATTACKER delay 15 createsprite gRedHeartProjectileSpriteTemplate, ANIM_TARGET, 3, 20, -8 waitforvisualfinish - playsewithpan SE_W213, SOUND_PAN_TARGET + playsewithpan SE_M_ATTRACT, SOUND_PAN_TARGET createsprite gRedHeartBurstSpriteTemplate, ANIM_TARGET, 3, 160, -32 createsprite gRedHeartBurstSpriteTemplate, ANIM_TARGET, 3, -256, -40 createsprite gRedHeartBurstSpriteTemplate, ANIM_TARGET, 3, 128, -16 @@ -2002,7 +2002,7 @@ Move_ATTRACT: createsprite gRedHeartBurstSpriteTemplate, ANIM_TARGET, 3, -128, -22 createsprite gRedHeartBurstSpriteTemplate, ANIM_TARGET, 3, -384, -31 waitforvisualfinish - waitplaysewithpan SE_W213B, 0, 15 + waitplaysewithpan SE_M_ATTRACT2, 0, 15 createvisualtask AnimTask_HeartsBackground, 5 createsprite gRedHeartRisingSpriteTemplate, ANIM_ATTACKER, 40, 16, 256, 0 createsprite gRedHeartRisingSpriteTemplate, ANIM_ATTACKER, 40, 224, 240, 15 @@ -2024,7 +2024,7 @@ Move_GROWTH: end GrowthEffect: createvisualtask AnimTask_BlendColorCycle, 2, 2, 0, 2, 0, 8, RGB_WHITE - playsewithpan SE_W036, SOUND_PAN_ATTACKER + playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_ATTACKER createvisualtask AnimTask_ScaleMonAndRestore, 5, -3, -3, 16, ANIM_ATTACKER, 0 return @@ -2037,12 +2037,12 @@ Move_WHIRLWIND: createsprite gWhirlwindLineSpriteTemplate, ANIM_ATTACKER, 2, 0, 24, ANIM_TARGET, 60, 4 createsprite gWhirlwindLineSpriteTemplate, ANIM_ATTACKER, 2, 0, 32, ANIM_TARGET, 60, 0 delay 5 - loopsewithpan SE_W104, SOUND_PAN_TARGET, 10, 4 + loopsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_TARGET, 10, 4 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 4, 0, 15, 1 delay 29 createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_TARGET, 12, 6, 1, 5 delay 7 - playsewithpan SE_W081, SOUND_PAN_TARGET + playsewithpan SE_M_STRING_SHOT, SOUND_PAN_TARGET createvisualtask AnimTask_SlideOffScreen, 5, ANIM_TARGET, 8 waitforvisualfinish end @@ -2057,7 +2057,7 @@ Move_CONFUSE_RAY: createsprite gConfuseRayBallBounceSpriteTemplate, ANIM_TARGET, 2, 28, 0, 288 waitforvisualfinish setalpha 8, 8 - playsewithpan SE_W081B, SOUND_PAN_TARGET + playsewithpan SE_M_STRING_SHOT2, SOUND_PAN_TARGET createsprite gConfuseRayBallSpiralSpriteTemplate, ANIM_TARGET, 2, 0, -16 waitforvisualfinish delay 0 @@ -2082,10 +2082,10 @@ Move_LOCK_ON: Move_MEAN_LOOK: loadspritegfx ANIM_TAG_EYE monbg ANIM_DEF_PARTNER - playsewithpan SE_W060, SOUND_PAN_ATTACKER + playsewithpan SE_M_PSYBEAM, SOUND_PAN_ATTACKER createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 0, 16, RGB_BLACK - loopsewithpan SE_W109, SOUND_PAN_TARGET, 15, 4 - waitplaysewithpan SE_W043, SOUND_PAN_TARGET, 85 + loopsewithpan SE_M_CONFUSE_RAY, SOUND_PAN_TARGET, 15, 4 + waitplaysewithpan SE_M_LEER, SOUND_PAN_TARGET, 85 createsprite gMeanLookEyeSpriteTemplate, ANIM_ATTACKER, 2 delay 120 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 2, 16, 0, RGB_BLACK @@ -2098,20 +2098,20 @@ Move_ROCK_THROW: loadspritegfx ANIM_TAG_ROCKS createsprite gShakeMonOrTerrainSpriteTemplate, ANIM_TARGET, 2, 6, 1, 15, 1 createsprite gFallingRockSpriteTemplate, ANIM_TARGET, 2, 0, 1, 0, 0 - playsewithpan SE_W088, SOUND_PAN_TARGET + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET delay 6 createsprite gFallingRockSpriteTemplate, ANIM_TARGET, 2, 19, 1, 10, 0 - playsewithpan SE_W088, SOUND_PAN_TARGET + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET delay 6 createsprite gFallingRockSpriteTemplate, ANIM_TARGET, 2, -23, 2, -10, 0 - playsewithpan SE_W088, SOUND_PAN_TARGET + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 0, 5, 20, 1 delay 6 createsprite gFallingRockSpriteTemplate, ANIM_TARGET, 2, -15, 1, -10, 0 - playsewithpan SE_W088, SOUND_PAN_TARGET + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET delay 6 createsprite gFallingRockSpriteTemplate, ANIM_TARGET, 2, 23, 2, 10, 0 - playsewithpan SE_W088, SOUND_PAN_TARGET + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET waitforvisualfinish end @@ -2120,16 +2120,16 @@ Move_ROCK_SLIDE: monbg ANIM_DEF_PARTNER createsprite gShakeMonOrTerrainSpriteTemplate, ANIM_ATTACKER, 2, 7, 1, 11, 1 createsprite gFallingRockSpriteTemplate, ANIM_TARGET, 2, -5, 1, -5, 1 - playsewithpan SE_W088, SOUND_PAN_TARGET + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET delay 2 createsprite gFallingRockSpriteTemplate, ANIM_TARGET, 2, 5, 0, 6, 1 - playsewithpan SE_W088, SOUND_PAN_TARGET + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET delay 2 createsprite gFallingRockSpriteTemplate, ANIM_TARGET, 2, 19, 1, 10, 1 - playsewithpan SE_W088, SOUND_PAN_TARGET + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET delay 2 createsprite gFallingRockSpriteTemplate, ANIM_TARGET, 2, -23, 2, -10, 1 - playsewithpan SE_W088, SOUND_PAN_TARGET + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 0, 5, 50, 1 createvisualtask AnimTask_ShakeMon, 2, ANIM_DEF_PARTNER, 0, 5, 50, 1 delay 2 @@ -2141,28 +2141,28 @@ Move_ROCK_SLIDE: RockSlideRocks: createsprite gFallingRockSpriteTemplate, ANIM_TARGET, 2, -20, 0, -10, 1 - playsewithpan SE_W088, SOUND_PAN_TARGET + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET delay 2 createsprite gFallingRockSpriteTemplate, ANIM_TARGET, 2, 28, 1, 10, 1 - playsewithpan SE_W088, SOUND_PAN_TARGET + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET delay 2 createsprite gFallingRockSpriteTemplate, ANIM_TARGET, 2, -10, 1, -5, 1 - playsewithpan SE_W088, SOUND_PAN_TARGET + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET delay 2 createsprite gFallingRockSpriteTemplate, ANIM_TARGET, 2, 10, 0, 6, 1 - playsewithpan SE_W088, SOUND_PAN_TARGET + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET delay 2 createsprite gFallingRockSpriteTemplate, ANIM_TARGET, 2, 24, 1, 10, 1 - playsewithpan SE_W088, SOUND_PAN_TARGET + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET delay 2 createsprite gFallingRockSpriteTemplate, ANIM_TARGET, 2, -32, 2, -10, 1 - playsewithpan SE_W088, SOUND_PAN_TARGET + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET delay 2 createsprite gFallingRockSpriteTemplate, ANIM_TARGET, 2, -20, 0, -10, 1 - playsewithpan SE_W088, SOUND_PAN_TARGET + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET delay 2 createsprite gFallingRockSpriteTemplate, ANIM_TARGET, 2, 30, 2, 10, 1 - playsewithpan SE_W088, SOUND_PAN_TARGET + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET delay 2 return @@ -2175,7 +2175,7 @@ Move_THIEF: setalpha 12, 8 createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 6, 4 delay 6 - playsewithpan SE_W233, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 2 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 1, 0, 8, 1 waitforvisualfinish @@ -2205,22 +2205,22 @@ Move_BUBBLE_BEAM: end BulbblebeamCreateBubbles: createsprite gWaterBubbleProjectileSpriteTemplate, ANIM_ATTACKER, 2, 18, 0, 35, 70, 0, 256, 50 - playsewithpan SE_W145, SOUND_PAN_ATTACKER + playsewithpan SE_M_BUBBLE, SOUND_PAN_ATTACKER delay 3 createsprite gWaterBubbleProjectileSpriteTemplate, ANIM_ATTACKER, 2, 18, 0, 20, 40, -10, 256, 50 - playsewithpan SE_W145, SOUND_PAN_ATTACKER + playsewithpan SE_M_BUBBLE, SOUND_PAN_ATTACKER delay 3 createsprite gWaterBubbleProjectileSpriteTemplate, ANIM_ATTACKER, 2, 18, 0, 10, -60, 0, 256, 50 - playsewithpan SE_W145, SOUND_PAN_ATTACKER + playsewithpan SE_M_BUBBLE, SOUND_PAN_ATTACKER delay 3 createsprite gWaterBubbleProjectileSpriteTemplate, ANIM_ATTACKER, 2, 18, 0, 15, -15, 10, 256, 50 - playsewithpan SE_W145, SOUND_PAN_ATTACKER + playsewithpan SE_M_BUBBLE, SOUND_PAN_ATTACKER delay 3 createsprite gWaterBubbleProjectileSpriteTemplate, ANIM_ATTACKER, 2, 18, 0, 30, 10, -10, 256, 50 - playsewithpan SE_W145, SOUND_PAN_ATTACKER + playsewithpan SE_M_BUBBLE, SOUND_PAN_ATTACKER delay 3 createsprite gWaterBubbleProjectileSpriteTemplate, ANIM_ATTACKER, 2, 18, 0, 25, -30, 10, 256, 50 - playsewithpan SE_W145, SOUND_PAN_ATTACKER + playsewithpan SE_M_BUBBLE, SOUND_PAN_ATTACKER delay 3 return @@ -2231,14 +2231,14 @@ Move_ICY_WIND: createvisualtask AnimTask_BlendBattleAnimPal, 10, 11, 4, 0, 4, RGB_BLACK fadetobg BG_ICE waitbgfadeout - playsewithpan SE_W196, 0 + playsewithpan SE_M_ICY_WIND, 0 waitbgfadein waitforvisualfinish - panse_1B SE_W016, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 + panse_1B SE_M_GUST, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 call IcyWindSwirlingSnowballs delay 5 call IcyWindSwirlingSnowballs - playsewithpan SE_W016B, SOUND_PAN_TARGET + playsewithpan SE_M_GUST2, SOUND_PAN_TARGET delay 55 call IceSpikesEffectLong waitforvisualfinish @@ -2263,12 +2263,12 @@ IcyWindSwirlingSnowballs: Move_SMOKESCREEN: loadspritegfx ANIM_TAG_BLACK_SMOKE loadspritegfx ANIM_TAG_BLACK_BALL - playsewithpan SE_W104, SOUND_PAN_ATTACKER + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER createsprite gBlackBallSpriteTemplate, ANIM_TARGET, 2, 20, 0, 0, 0, 35, -25 waitforvisualfinish createvisualtask AnimTask_SmokescreenImpact, 2 delay 2 - playsewithpan SE_W028, SOUND_PAN_TARGET + playsewithpan SE_M_SAND_ATTACK, SOUND_PAN_TARGET createsprite gBlackSmokeSpriteTemplate, ANIM_TARGET, 4, 0, -12, 104, 0, 75 createsprite gBlackSmokeSpriteTemplate, ANIM_TARGET, 4, 0, -12, 72, 1, 75 createsprite gBlackSmokeSpriteTemplate, ANIM_TARGET, 4, 0, -6, 56, 1, 75 @@ -2290,7 +2290,7 @@ Move_CONVERSION: monbgprio_28 ANIM_ATTACKER setalpha 16, 0 delay 0 - playsewithpan SE_W129, SOUND_PAN_ATTACKER + playsewithpan SE_M_SWIFT, SOUND_PAN_ATTACKER createsprite gConversionSpriteTemplate, ANIM_ATTACKER, 2, -24, -24 delay 3 createsprite gConversionSpriteTemplate, ANIM_ATTACKER, 2, -8, -24 @@ -2299,7 +2299,7 @@ Move_CONVERSION: delay 3 createsprite gConversionSpriteTemplate, ANIM_ATTACKER, 2, 24, -24 delay 3 - playsewithpan SE_W129, SOUND_PAN_ATTACKER + playsewithpan SE_M_SWIFT, SOUND_PAN_ATTACKER createsprite gConversionSpriteTemplate, ANIM_ATTACKER, 2, -24, -8 delay 3 createsprite gConversionSpriteTemplate, ANIM_ATTACKER, 2, -8, -8 @@ -2308,7 +2308,7 @@ Move_CONVERSION: delay 3 createsprite gConversionSpriteTemplate, ANIM_ATTACKER, 2, 24, -8 delay 3 - playsewithpan SE_W129, SOUND_PAN_ATTACKER + playsewithpan SE_M_SWIFT, SOUND_PAN_ATTACKER createsprite gConversionSpriteTemplate, ANIM_ATTACKER, 2, -24, 8 delay 3 createsprite gConversionSpriteTemplate, ANIM_ATTACKER, 2, -8, 8 @@ -2317,7 +2317,7 @@ Move_CONVERSION: delay 3 createsprite gConversionSpriteTemplate, ANIM_ATTACKER, 2, 24, 8 delay 3 - playsewithpan SE_W129, SOUND_PAN_ATTACKER + playsewithpan SE_M_SWIFT, SOUND_PAN_ATTACKER createsprite gConversionSpriteTemplate, ANIM_ATTACKER, 2, -24, 24 delay 3 createsprite gConversionSpriteTemplate, ANIM_ATTACKER, 2, -8, 24 @@ -2326,7 +2326,7 @@ Move_CONVERSION: delay 3 createsprite gConversionSpriteTemplate, ANIM_ATTACKER, 2, 24, 24 delay 20 - playsewithpan SE_W112, SOUND_PAN_ATTACKER + playsewithpan SE_M_BARRIER, SOUND_PAN_ATTACKER createvisualtask AnimTask_FlashAnimTagWithColor, 2, ANIM_TAG_CONVERSION, 1, 1, RGB(31, 31, 13), 12, 0, 0 delay 6 createvisualtask AnimTask_ConversionAlphaBlend, 5 @@ -2342,7 +2342,7 @@ Move_CONVERSION_2: monbgprio_2A ANIM_TARGET setalpha 0, 16 delay 0 - playsewithpan SE_W112, SOUND_PAN_TARGET + playsewithpan SE_M_BARRIER, SOUND_PAN_TARGET createsprite gConversion2SpriteTemplate, ANIM_ATTACKER, 2, -24, -24, 60 createsprite gConversion2SpriteTemplate, ANIM_ATTACKER, 2, -8, -24, 65 createsprite gConversion2SpriteTemplate, ANIM_ATTACKER, 2, 8, -24, 70 @@ -2361,21 +2361,21 @@ Move_CONVERSION_2: createsprite gConversion2SpriteTemplate, ANIM_ATTACKER, 2, 24, 24, 135 createvisualtask AnimTask_Conversion2AlphaBlend, 5 delay 60 - playsewithpan SE_W129, SOUND_PAN_TARGET + playsewithpan SE_M_SWIFT, SOUND_PAN_TARGET delay 10 - playsewithpan SE_W129, SOUND_PAN_TARGET + playsewithpan SE_M_SWIFT, SOUND_PAN_TARGET delay 10 - playsewithpan SE_W129, SOUND_PAN_TARGET + playsewithpan SE_M_SWIFT, SOUND_PAN_TARGET delay 10 - playsewithpan SE_W129, SOUND_PAN_TARGET + playsewithpan SE_M_SWIFT, SOUND_PAN_TARGET delay 10 - playsewithpan SE_W129, SOUND_PAN_TARGET + playsewithpan SE_M_SWIFT, SOUND_PAN_TARGET delay 10 - playsewithpan SE_W129, SOUND_PAN_TARGET + playsewithpan SE_M_SWIFT, SOUND_PAN_TARGET delay 10 - playsewithpan SE_W129, SOUND_PAN_TARGET + playsewithpan SE_M_SWIFT, SOUND_PAN_TARGET delay 10 - playsewithpan SE_W129, SOUND_PAN_TARGET + playsewithpan SE_M_SWIFT, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff @@ -2387,14 +2387,14 @@ Move_ROLLING_KICK: monbg ANIM_TARGET setalpha 12, 8 createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_ATTACKER, 18, 6, 1, 4 - playsewithpan SE_W104, SOUND_PAN_ATTACKER + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER delay 6 - playsewithpan SE_W104, SOUND_PAN_ATTACKER + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER waitforvisualfinish createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 0, 20, 0, 0, 4 createsprite gSlidingKickSpriteTemplate, ANIM_ATTACKER, 2, -24, 0, 48, 10, 160, 0 delay 5 - playsewithpan SE_W233B, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -8, 0, ANIM_TARGET, 2 createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 5, 0, 6, 1 waitforvisualfinish @@ -2406,7 +2406,7 @@ Move_ROLLING_KICK: Move_HEADBUTT: loadspritegfx ANIM_TAG_IMPACT createsprite gBowMonSpriteTemplate, ANIM_ATTACKER, 2, 0 - playsewithpan SE_W029, SOUND_PAN_ATTACKER + playsewithpan SE_M_HEADBUTT, SOUND_PAN_ATTACKER waitforvisualfinish delay 2 createsprite gBowMonSpriteTemplate, ANIM_ATTACKER, 2, 1 @@ -2415,7 +2415,7 @@ Move_HEADBUTT: createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 5, 0, 6, 1 createsprite gBowMonSpriteTemplate, ANIM_ATTACKER, 2, 2 createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, ANIM_TARGET, 1 - playsewithpan SE_W233B, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET waitforvisualfinish end @@ -2423,7 +2423,7 @@ Move_HORN_ATTACK: loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_HORN_HIT createsprite gBowMonSpriteTemplate, ANIM_ATTACKER, 2, 0 - playsewithpan SE_W029, SOUND_PAN_ATTACKER + playsewithpan SE_M_HEADBUTT, SOUND_PAN_ATTACKER waitforvisualfinish delay 2 createsprite gBowMonSpriteTemplate, ANIM_ATTACKER, 2, 1 @@ -2433,7 +2433,7 @@ Move_HORN_ATTACK: createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 5, 0, 6, 1 createsprite gBowMonSpriteTemplate, ANIM_ATTACKER, 2, 2 createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, ANIM_TARGET, 1 - playsewithpan SE_W030, SOUND_PAN_TARGET + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET waitforvisualfinish end @@ -2451,14 +2451,14 @@ FuryAttackRight: createsprite gHornHitSpriteTemplate, ANIM_TARGET, 4, 8, 8, 10 waitforvisualfinish createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, ANIM_TARGET, 1 - playsewithpan SE_W030, SOUND_PAN_TARGET + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET goto FuryAttackContinue FuryAttackLeft: createsprite gHornHitSpriteTemplate, ANIM_TARGET, 4, -8, -8, 10 waitforvisualfinish createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, ANIM_TARGET, 1 - playsewithpan SE_W030, SOUND_PAN_TARGET + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET goto FuryAttackContinue Move_HORN_DRILL: @@ -2472,47 +2472,47 @@ HornDrillContinue: waitbgfadein setalpha 12, 8 createsprite gBowMonSpriteTemplate, ANIM_ATTACKER, 2, 0 - playsewithpan SE_W029, SOUND_PAN_ATTACKER + playsewithpan SE_M_HEADBUTT, SOUND_PAN_ATTACKER waitforvisualfinish delay 2 createsprite gBowMonSpriteTemplate, ANIM_ATTACKER, 2, 1 createsprite gHornHitSpriteTemplate, ANIM_TARGET, 4, 0, 0, 12 waitforvisualfinish - playse SE_BAN + playse SE_BANG createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_ATTACKER, 2, 0, 40, 1 createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_TARGET, 10, 0, 40, 1 createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, ANIM_TARGET, 3 - playsewithpan SE_W030, SOUND_PAN_TARGET + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET delay 4 createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 2, ANIM_TARGET, 3 - playsewithpan SE_W030, SOUND_PAN_TARGET + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET delay 4 createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, -4, 3, ANIM_TARGET, 3 - playsewithpan SE_W030, SOUND_PAN_TARGET + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET delay 4 createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, -8, -5, ANIM_TARGET, 3 - playsewithpan SE_W030, SOUND_PAN_TARGET + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET delay 4 createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, 4, -12, ANIM_TARGET, 3 - playsewithpan SE_W030, SOUND_PAN_TARGET + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET delay 4 createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, 16, 0, ANIM_TARGET, 3 - playsewithpan SE_W030, SOUND_PAN_TARGET + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET delay 4 createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, 5, 18, ANIM_TARGET, 3 - playsewithpan SE_W030, SOUND_PAN_TARGET + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET delay 4 createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, -17, 12, ANIM_TARGET, 2 - playsewithpan SE_W030, SOUND_PAN_TARGET + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET delay 4 createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, -21, -15, ANIM_TARGET, 2 - playsewithpan SE_W030, SOUND_PAN_TARGET + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET delay 4 createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, 8, -27, ANIM_TARGET, 2 - playsewithpan SE_W030, SOUND_PAN_TARGET + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET delay 4 createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, 32, 0, ANIM_TARGET, 2 - playsewithpan SE_W030, SOUND_PAN_TARGET + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET delay 4 createsprite gBowMonSpriteTemplate, ANIM_ATTACKER, 2, 2 waitforvisualfinish @@ -2535,15 +2535,15 @@ Move_THRASH: createvisualtask AnimTask_ThrashMoveMonVertical, 2 createsprite gFistFootRandomPosSpriteTemplate, ANIM_TARGET, 3, 1, 10, 0 createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_TARGET, 4, 0, 7, 1 - playsewithpan SE_W004, SOUND_PAN_TARGET + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET delay 28 createsprite gFistFootRandomPosSpriteTemplate, ANIM_TARGET, 3, 1, 10, 1 createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_TARGET, 4, 0, 7, 1 - playsewithpan SE_W233B, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET delay 28 createsprite gFistFootRandomPosSpriteTemplate, ANIM_TARGET, 3, 1, 10, 3 createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_TARGET, 8, 0, 16, 1 - playsewithpan SE_W025B, SOUND_PAN_TARGET + playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET end Move_SING: @@ -2551,7 +2551,7 @@ Move_SING: monbg ANIM_DEF_PARTNER createvisualtask AnimTask_MusicNotesRainbowBlend, 2 waitforvisualfinish - panse_1B SE_W047, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 + panse_1B SE_M_SING, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 createsprite gWavyMusicNotesSpriteTemplate, ANIM_TARGET, 2, 7, 0, 12 delay 5 createsprite gWavyMusicNotesSpriteTemplate, ANIM_TARGET, 2, 6, 1, 12 @@ -2590,7 +2590,7 @@ Move_LOW_KICK: delay 4 createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, -8, 8, ANIM_TARGET, 2 createvisualtask AnimTask_RotateMonSpriteToSide, 2, 6, 384, 1, 2 - playsewithpan SE_W233B, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET waitforvisualfinish createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 1, 4 end @@ -2598,7 +2598,7 @@ Move_LOW_KICK: Move_EARTHQUAKE: createvisualtask AnimTask_HorizontalShake, 5, (MAX_BATTLERS_COUNT + 1), 10, 50 createvisualtask AnimTask_HorizontalShake, 5, MAX_BATTLERS_COUNT, 10, 50 - playsewithpan SE_W089, 0 + playsewithpan SE_M_EARTHQUAKE, 0 delay 10 createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 1, RGB_BLACK, 14, 0x7FFF, 14 delay 16 @@ -2609,7 +2609,7 @@ Move_FISSURE: loadspritegfx ANIM_TAG_MUD_SAND createvisualtask AnimTask_HorizontalShake, 3, (MAX_BATTLERS_COUNT + 1), 10, 50 createvisualtask AnimTask_HorizontalShake, 3, ANIM_TARGET, 10, 50 - playsewithpan SE_W089, SOUND_PAN_TARGET + playsewithpan SE_M_EARTHQUAKE, SOUND_PAN_TARGET delay 8 call FissureDirtPlumeFar delay 15 @@ -2637,7 +2637,7 @@ FissureDirtPlumeFar: createsprite gDirtPlumeSpriteTemplate, ANIM_TARGET, 2, 1, 0, 16, -16, -10, 24 createsprite gDirtPlumeSpriteTemplate, ANIM_TARGET, 2, 1, 1, 14, -52, -18, 24 createsprite gDirtPlumeSpriteTemplate, ANIM_TARGET, 2, 1, 1, 12, -32, -16, 24 - playsewithpan SE_W091, SOUND_PAN_TARGET + playsewithpan SE_M_DIG, SOUND_PAN_TARGET return FissureDirtPlumeClose: @@ -2645,7 +2645,7 @@ FissureDirtPlumeClose: createsprite gDirtPlumeSpriteTemplate, ANIM_TARGET, 2, 1, 0, 16, -38, -10, 24 createsprite gDirtPlumeSpriteTemplate, ANIM_TARGET, 2, 1, 1, 14, -20, -18, 24 createsprite gDirtPlumeSpriteTemplate, ANIM_TARGET, 2, 1, 1, 12, -36, -16, 24 - playsewithpan SE_W091, SOUND_PAN_TARGET + playsewithpan SE_M_DIG, SOUND_PAN_TARGET return Move_DIG: @@ -2684,7 +2684,7 @@ DigUnleash: delay 16 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -8, 0, ANIM_TARGET, 2 createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 5, 0, 6, 1 - playsewithpan SE_W025B, SOUND_PAN_ATTACKER + playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_ATTACKER clearmonbg ANIM_ATTACKER goto DigEnd DigThrowDirt: @@ -2692,16 +2692,16 @@ DigThrowDirt: createsprite gDirtPlumeSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 16, 4, -10, 18 createsprite gDirtPlumeSpriteTemplate, ANIM_ATTACKER, 2, 0, 1, 14, 4, -18, 18 createsprite gDirtPlumeSpriteTemplate, ANIM_ATTACKER, 2, 0, 1, 12, 4, -16, 18 - playsewithpan SE_W091, SOUND_PAN_ATTACKER + playsewithpan SE_M_DIG, SOUND_PAN_ATTACKER delay 32 return Move_MEDITATE: call SetPsychicBackground createvisualtask AnimTask_MeditateStretchAttacker, 2 - playsewithpan SE_W029, SOUND_PAN_ATTACKER + playsewithpan SE_M_HEADBUTT, SOUND_PAN_ATTACKER delay 16 - playsewithpan SE_W036, SOUND_PAN_ATTACKER + playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_ATTACKER waitforvisualfinish call UnsetPsychicBackground end @@ -2711,15 +2711,15 @@ Move_AGILITY: setalpha 12, 8 createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_ATTACKER, 24, 6, 4, 4 createvisualtask AnimTask_TraceMonBlended, 2, 0, 4, 7, 10 - playsewithpan SE_W104, SOUND_PAN_ATTACKER + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER delay 12 - playsewithpan SE_W104, SOUND_PAN_ATTACKER + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER delay 12 - playsewithpan SE_W104, SOUND_PAN_ATTACKER + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER delay 12 - playsewithpan SE_W104, SOUND_PAN_ATTACKER + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER delay 12 - playsewithpan SE_W104, SOUND_PAN_ATTACKER + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER delay 12 waitforvisualfinish clearmonbg ANIM_ATK_PARTNER @@ -2733,11 +2733,11 @@ Move_QUICK_ATTACK: setalpha 12, 8 createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_ATTACKER, 24, 6, 1, 5 createvisualtask AnimTask_TraceMonBlended, 2, 0, 4, 7, 3 - playsewithpan SE_W026, SOUND_PAN_ATTACKER + playsewithpan SE_M_JUMP_KICK, SOUND_PAN_ATTACKER delay 4 createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 5, 0, 6, 1 createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 4, 0, 0, ANIM_TARGET, 1 - playsewithpan SE_W233B, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_ATK_PARTNER blendoff @@ -2751,16 +2751,16 @@ Move_RAGE: setalpha 12, 8 createvisualtask AnimTask_BlendMonInAndOut, 3, ANIM_ATTACKER, RGB_RED, 10, 0, 2 createsprite gAngerMarkSpriteTemplate, ANIM_ATTACKER, 2, 0, -20, -28 - playsewithpan SE_W207B, SOUND_PAN_ATTACKER + playsewithpan SE_M_SWAGGER2, SOUND_PAN_ATTACKER delay 20 createsprite gAngerMarkSpriteTemplate, ANIM_ATTACKER, 2, 0, 20, -28 - playsewithpan SE_W207B, SOUND_PAN_ATTACKER + playsewithpan SE_M_SWAGGER2, SOUND_PAN_ATTACKER waitforvisualfinish createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 4, 6 delay 4 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 2 createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 2, TRUE, 1, 10, 1, 0 - playsewithpan SE_W233B, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_TARGET end @@ -2768,7 +2768,7 @@ Move_RAGE: Move_TELEPORT: call SetPsychicBackground createvisualtask AnimTask_Teleport, 2 - playsewithpan SE_W100, SOUND_PAN_ATTACKER + playsewithpan SE_M_TELEPORT, SOUND_PAN_ATTACKER delay 15 call UnsetPsychicBackground waitforvisualfinish @@ -2778,23 +2778,23 @@ Move_DOUBLE_TEAM: createvisualtask AnimTask_DoubleTeam, 2 setalpha 12, 8 monbg ANIM_ATK_PARTNER - playsewithpan SE_W104, SOUND_PAN_ATTACKER + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER delay 32 - playsewithpan SE_W104, SOUND_PAN_ATTACKER + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER delay 24 - playsewithpan SE_W104, SOUND_PAN_ATTACKER + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER delay 16 - playsewithpan SE_W104, SOUND_PAN_ATTACKER + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER delay 8 - playsewithpan SE_W104, SOUND_PAN_ATTACKER + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER delay 8 - playsewithpan SE_W104, SOUND_PAN_ATTACKER + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER delay 8 - playsewithpan SE_W104, SOUND_PAN_ATTACKER + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER delay 8 - playsewithpan SE_W104, SOUND_PAN_ATTACKER + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER delay 8 - playsewithpan SE_W104, SOUND_PAN_ATTACKER + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER waitforvisualfinish clearmonbg ANIM_ATK_PARTNER blendoff @@ -2804,7 +2804,7 @@ Move_DOUBLE_TEAM: Move_MINIMIZE: setalpha 10, 8 createvisualtask AnimTask_Minimize, 2 - loopsewithpan SE_W107, SOUND_PAN_ATTACKER, 34, 3 + loopsewithpan SE_M_MINIMIZE, SOUND_PAN_ATTACKER, 34, 3 waitforvisualfinish blendoff end @@ -2813,11 +2813,11 @@ Move_METRONOME: loadspritegfx ANIM_TAG_FINGER loadspritegfx ANIM_TAG_THOUGHT_BUBBLE createsprite gThoughtBubbleSpriteTemplate, ANIM_ATTACKER, 11, 0, 100 - playsewithpan SE_W118, SOUND_PAN_ATTACKER + playsewithpan SE_M_METRONOME, SOUND_PAN_ATTACKER delay 6 createsprite gMetronomeFingerSpriteTemplate, ANIM_ATTACKER, 12, 0 delay 24 - loopsewithpan SE_W039, SOUND_PAN_ATTACKER, 22, 3 + loopsewithpan SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER, 22, 3 waitforvisualfinish end @@ -2832,7 +2832,7 @@ SkullBashSetUp: goto SkullBashEnd SkullBashSetUpHeadDown: createsprite gSlideMonToOffsetAndBackSpriteTemplate, ANIM_ATTACKER, 2, ANIM_ATTACKER, -24, 0, 0, 10, 0 - playsewithpan SE_W036, SOUND_PAN_ATTACKER + playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_ATTACKER waitforvisualfinish createvisualtask AnimTask_RotateMonSpriteToSide, 2, 16, 96, 0, 2 waitforvisualfinish @@ -2842,14 +2842,14 @@ SkullBashSetUpHeadDown: SkullBashAttack: loadspritegfx ANIM_TAG_IMPACT createvisualtask AnimTask_SkullBashPosition, 2, 0 - playsewithpan SE_W036, SOUND_PAN_ATTACKER + playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_ATTACKER waitforvisualfinish - playse SE_BAN + playse SE_BANG createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 1, RGB_BLACK, 14, 0x7FFF, 14 createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_ATTACKER, 2, 0, 40, 1 createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_TARGET, 10, 0, 40, 1 createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 4, 0, 0, ANIM_TARGET, 0 - loopsewithpan SE_W025B, SOUND_PAN_TARGET, 8, 3 + loopsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET, 8, 3 waitforvisualfinish createvisualtask AnimTask_SkullBashPosition, 2, 1 goto SkullBashEnd @@ -2859,9 +2859,9 @@ Move_AMNESIA: call SetPsychicBackground delay 8 createsprite gQuestionMarkSpriteTemplate, ANIM_ATTACKER, 20 - playsewithpan SE_W118, SOUND_PAN_ATTACKER + playsewithpan SE_M_METRONOME, SOUND_PAN_ATTACKER delay 54 - loopsewithpan SE_W118, SOUND_PAN_ATTACKER, 16, 3 + loopsewithpan SE_M_METRONOME, SOUND_PAN_ATTACKER, 16, 3 waitforvisualfinish call UnsetPsychicBackground end @@ -2869,18 +2869,18 @@ Move_AMNESIA: Move_KINESIS: loadspritegfx ANIM_TAG_ALERT loadspritegfx ANIM_TAG_BENT_SPOON - playsewithpan SE_W060, SOUND_PAN_ATTACKER + playsewithpan SE_M_PSYBEAM, SOUND_PAN_ATTACKER call SetPsychicBackground createsprite gBentSpoonSpriteTemplate, ANIM_ATTACKER, 20 createsprite gKinesisZapEnergySpriteTemplate, ANIM_ATTACKER, 19, 32, -8, 0 createsprite gKinesisZapEnergySpriteTemplate, ANIM_ATTACKER, 19, 32, 16, 1 - loopsewithpan SE_W109, SOUND_PAN_ATTACKER, 21, 2 + loopsewithpan SE_M_CONFUSE_RAY, SOUND_PAN_ATTACKER, 21, 2 delay 60 - playsewithpan SE_W146, SOUND_PAN_ATTACKER + playsewithpan SE_M_DIZZY_PUNCH, SOUND_PAN_ATTACKER delay 30 - loopsewithpan SE_W146, SOUND_PAN_ATTACKER, 20, 2 + loopsewithpan SE_M_DIZZY_PUNCH, SOUND_PAN_ATTACKER, 20, 2 delay 70 - playsewithpan SE_W207B, SOUND_PAN_ATTACKER + playsewithpan SE_M_SWAGGER2, SOUND_PAN_ATTACKER waitforvisualfinish call UnsetPsychicBackground end @@ -2889,14 +2889,14 @@ Move_GLARE: loadspritegfx ANIM_TAG_SMALL_RED_EYE loadspritegfx ANIM_TAG_EYE_SPARKLE createvisualtask AnimTask_GlareEyeDots, 5, 0 - playsewithpan SE_W060B, SOUND_PAN_ATTACKER + playsewithpan SE_M_PSYBEAM2, SOUND_PAN_ATTACKER waitforvisualfinish createvisualtask AnimTask_BlendBattleAnimPal, 5, 1, 0, 0, 16, RGB_BLACK waitforvisualfinish createsprite gEyeSparkleSpriteTemplate, ANIM_ATTACKER, 0, -16, -8 createsprite gEyeSparkleSpriteTemplate, ANIM_ATTACKER, 0, 16, -8 createvisualtask AnimTask_ScaryFace, 5 - playsewithpan SE_W043, SOUND_PAN_ATTACKER + playsewithpan SE_M_LEER, SOUND_PAN_ATTACKER delay 2 createvisualtask AnimTask_ShakeTargetInPattern, 3, 20, 1, FALSE waitforvisualfinish @@ -2906,12 +2906,12 @@ Move_GLARE: Move_BARRAGE: loadspritegfx ANIM_TAG_RED_BALL createvisualtask AnimTask_BarrageBall, 3 - playsewithpan SE_W207, SOUND_PAN_ATTACKER + playsewithpan SE_M_SWAGGER, SOUND_PAN_ATTACKER delay 24 createsprite gShakeMonOrTerrainSpriteTemplate, ANIM_ATTACKER, 2, 8, 1, 40, 1 createvisualtask AnimTask_ShakeMon, 3, ANIM_TARGET, 0, 4, 20, 1 createvisualtask AnimTask_ShakeMon, 3, ANIM_DEF_PARTNER, 0, 4, 20, 1 - loopsewithpan SE_W070, SOUND_PAN_TARGET, 8, 2 + loopsewithpan SE_M_STRENGTH, SOUND_PAN_TARGET, 8, 2 end Move_SKY_ATTACK: @@ -2930,7 +2930,7 @@ SkyAttackSetUpAgainstOpponent: delay 12 createvisualtask AnimTask_BlendBattleAnimPal, 10, 2, 1, 8, 0, RGB_BLACK createvisualtask AnimTask_HorizontalShake, 5, ANIM_ATTACKER, 2, 16 - loopsewithpan SE_W287, SOUND_PAN_ATTACKER, 4, 8 + loopsewithpan SE_M_STAT_INCREASE, SOUND_PAN_ATTACKER, 4, 8 createvisualtask AnimTask_BlendBattleAnimPal, 10, 2, 1, 0, 15, RGB_WHITE delay 20 createvisualtask AnimTask_BlendBattleAnimPal, 10, 2, 1, 15, 0, RGB_WHITE @@ -2946,7 +2946,7 @@ SkyAttackSetUpAgainstPartner: delay 12 createvisualtask AnimTask_BlendBattleAnimPal, 10, 2, 1, 8, 0, RGB_BLACK createvisualtask AnimTask_HorizontalShake, 5, ANIM_ATTACKER, 2, 16 - playsewithpan SE_W287, SOUND_PAN_ATTACKER + playsewithpan SE_M_STAT_INCREASE, SOUND_PAN_ATTACKER delay 8 createvisualtask AnimTask_BlendBattleAnimPal, 10, 2, 1, 0, 15, RGB_WHITE delay 20 @@ -2966,11 +2966,11 @@ SkyAttackUnleash: delay 4 createvisualtask AnimTask_AttackerFadeToInvisible, 5, 0 waitforvisualfinish - createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_W327, SOUND_PAN_ATTACKER + createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_SKY_UPPERCUT, SOUND_PAN_ATTACKER createsprite gSkyAttackBirdSpriteTemplate, ANIM_TARGET, 2 delay 14 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 10, 0, 18, 1 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_W025B, SOUND_PAN_TARGET + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_MEGA_KICK2, SOUND_PAN_TARGET delay 20 createvisualtask AnimTask_AttackerFadeFromInvisible, 5, 1 delay 2 @@ -2981,7 +2981,7 @@ SkyAttackUnleash: goto SkyAttackEnd Move_FLASH: - playsewithpan SE_W043, SOUND_PAN_ATTACKER + playsewithpan SE_M_LEER, SOUND_PAN_ATTACKER createvisualtask AnimTask_Flash, 2 waitforvisualfinish end @@ -2989,7 +2989,7 @@ Move_FLASH: Move_SPLASH: createvisualtask AnimTask_Splash, 2, 0, 3 delay 8 - loopsewithpan SE_W039, SOUND_PAN_ATTACKER, 38, 3 + loopsewithpan SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER, 38, 3 waitforvisualfinish end @@ -2997,7 +2997,7 @@ Move_ACID_ARMOR: monbg ANIM_ATTACKER setalpha 15, 0 createvisualtask AnimTask_AcidArmor, 2, ANIM_ATTACKER - playsewithpan SE_W151, SOUND_PAN_ATTACKER + playsewithpan SE_M_ACID_ARMOR, SOUND_PAN_ATTACKER waitforvisualfinish blendoff clearmonbg ANIM_ATTACKER @@ -3013,7 +3013,7 @@ Move_SHARPEN: Move_SUPER_FANG: loadspritegfx ANIM_TAG_FANG_ATTACK createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_ATTACKER, 1, 0, 20, 1 - playsewithpan SE_W082, SOUND_PAN_ATTACKER + playsewithpan SE_M_DRAGON_RAGE, SOUND_PAN_ATTACKER waitforvisualfinish createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_ATTACKER, 3, 0, 48, 1 createvisualtask AnimTask_BlendMonInAndOut, 2, ANIM_ATTACKER, RGB(31, 6, 1), 12, 4, 1 @@ -3022,7 +3022,7 @@ Move_SUPER_FANG: createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 4, 4 delay 4 createsprite gSuperFangSpriteTemplate, ANIM_TARGET, 2 - playsewithpan SE_W044, SOUND_PAN_TARGET + playsewithpan SE_M_BITE, SOUND_PAN_TARGET delay 8 createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 1, RGB(31, 2, 2), 14, 0x7FFF, 14 createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 0, 7, 12, 1 @@ -3033,11 +3033,11 @@ Move_SUPER_FANG: Move_SLASH: loadspritegfx ANIM_TAG_SLASH createsprite gSlashSliceSpriteTemplate, ANIM_TARGET, 2, 1, -8, 0 - playsewithpan SE_W013, SOUND_PAN_TARGET + playsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET delay 4 createsprite gSlashSliceSpriteTemplate, ANIM_TARGET, 2, 1, 8, 0 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 4, 0, 18, 1 - playsewithpan SE_W013, SOUND_PAN_TARGET + playsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET waitforvisualfinish end @@ -3049,11 +3049,11 @@ Move_STRUGGLE: createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_ATTACKER, 3, 0, 12, 4 createsprite gMovementWavesSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 2 createsprite gMovementWavesSpriteTemplate, ANIM_ATTACKER, 2, 0, 1, 2 - loopsewithpan SE_W029, SOUND_PAN_ATTACKER, 12, 4 + loopsewithpan SE_M_HEADBUTT, SOUND_PAN_ATTACKER, 12, 4 waitforvisualfinish createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, ANIM_TARGET, 2 createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_TARGET, 3, 0, 6, 1 - playsewithpan SE_W025B, SOUND_PAN_TARGET + playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_TARGET blendoff @@ -3067,7 +3067,7 @@ Move_SKETCH: waitforvisualfinish clearmonbg ANIM_TARGET createvisualtask AnimTask_Splash, 2, 0, 2 - loopsewithpan SE_W039, SOUND_PAN_ATTACKER, 38, 2 + loopsewithpan SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER, 38, 2 end Move_NIGHTMARE: @@ -3077,7 +3077,7 @@ Move_NIGHTMARE: monbg ANIM_DEF_PARTNER createvisualtask AnimTask_NightmareClone, 2 createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 40, 1 - playsewithpan SE_W171, SOUND_PAN_TARGET + playsewithpan SE_M_NIGHTMARE, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_DEF_PARTNER restorebg @@ -3086,7 +3086,7 @@ Move_NIGHTMARE: NightmareInContest: createvisualtask AnimTask_BlendMonInAndOut, 2, ANIM_ATTACKER, RGB_WHITE, 10, 2, 1 createvisualtask AnimTask_ShakeMon, 2, ANIM_ATTACKER, 3, 0, 32, 1 - playsewithpan SE_W171, SOUND_PAN_TARGET + playsewithpan SE_M_NIGHTMARE, SOUND_PAN_TARGET waitforvisualfinish restorebg waitbgfadein @@ -3097,11 +3097,11 @@ Move_FLAIL: monbg ANIM_TARGET setalpha 12, 8 createvisualtask AnimTask_FlailMovement, 2, ANIM_ATTACKER - loopsewithpan SE_W029, SOUND_PAN_ATTACKER, 8, 2 + loopsewithpan SE_M_HEADBUTT, SOUND_PAN_ATTACKER, 8, 2 waitforvisualfinish createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGET, 3, ANIM_TARGET, 3 createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 2, FALSE, 1, 30, 1, 0 - playsewithpan SE_W025B, SOUND_PAN_TARGET + playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_TARGET blendoff @@ -3109,12 +3109,12 @@ Move_FLAIL: Move_SPITE: fadetobg BG_GHOST - playsewithpan SE_W060, SOUND_PAN_ATTACKER + playsewithpan SE_M_PSYBEAM, SOUND_PAN_ATTACKER waitbgfadein monbg ANIM_DEF_PARTNER createvisualtask AnimTask_BlendColorCycle, 2, 2, 2, 6, 0, 8, RGB_WHITE createvisualtask AnimTask_SpiteTargetShadow, 2 - loopsewithpan SE_W060, SOUND_PAN_TARGET, 20, 3 + loopsewithpan SE_M_PSYBEAM, SOUND_PAN_TARGET, 20, 3 waitforvisualfinish restorebg waitbgfadein @@ -3135,11 +3135,11 @@ MachPunchContinue: delay 0 setalpha 9, 8 createvisualtask AnimTask_AttackerPunchWithTrace, 2, RGB(8, 9, 28), 10 - playsewithpan SE_W026, SOUND_PAN_ATTACKER + playsewithpan SE_M_JUMP_KICK, SOUND_PAN_ATTACKER delay 6 createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, ANIM_TARGET, 1 createsprite gFistFootSpriteTemplate, ANIM_TARGET, 4, 0, 0, 8, 1, 0 - playsewithpan SE_W004, SOUND_PAN_TARGET + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 6, 1 waitforvisualfinish clearmonbg ANIM_ATK_PARTNER @@ -3160,13 +3160,13 @@ Move_FORESIGHT: setalpha 16, 0 createsprite gForesightMagnifyingGlassSpriteTemplate, ANIM_TARGET, 2, ANIM_TARGET delay 17 - loopsewithpan SE_W166, SOUND_PAN_TARGET, 16, 4 + loopsewithpan SE_M_SKETCH, SOUND_PAN_TARGET, 16, 4 delay 48 delay 24 - playsewithpan SE_W166, SOUND_PAN_TARGET + playsewithpan SE_M_SKETCH, SOUND_PAN_TARGET delay 10 createvisualtask AnimTask_BlendMonInAndOut, 5, ANIM_TARGET, RGB_WHITE, 12, 2, 1 - playsewithpan SE_W197, SOUND_PAN_TARGET + playsewithpan SE_M_DETECT, SOUND_PAN_TARGET waitforvisualfinish blendoff clearmonbg ANIM_DEF_PARTNER @@ -3175,16 +3175,16 @@ Move_FORESIGHT: Move_DESTINY_BOND: loadspritegfx ANIM_TAG_WHITE_SHADOW fadetobg BG_GHOST - playsewithpan SE_W060, SOUND_PAN_ATTACKER + playsewithpan SE_M_PSYBEAM, SOUND_PAN_ATTACKER waitbgfadein createvisualtask AnimTask_DestinyBondWhiteShadow, 5, 0, 48 - playsewithpan SE_W109, SOUND_PAN_ATTACKER + playsewithpan SE_M_CONFUSE_RAY, SOUND_PAN_ATTACKER delay 48 createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_ATTACKER, 2, 0, 24, 1 createvisualtask AnimTask_BlendBattleAnimPalExclude, 2, 6, 1, 0, 12, RGB(29, 29, 29) delay 24 createvisualtask AnimTask_BlendBattleAnimPalExclude, 2, 6, 1, 12, 0, RGB(29, 29, 29) - playsewithpan SE_W171, SOUND_PAN_TARGET + playsewithpan SE_M_NIGHTMARE, SOUND_PAN_TARGET waitforvisualfinish restorebg waitbgfadein @@ -3194,7 +3194,7 @@ Move_DESTINY_BOND: Move_ENDURE: loadspritegfx ANIM_TAG_FOCUS_ENERGY - playsewithpan SE_W082, SOUND_PAN_ATTACKER + playsewithpan SE_M_DRAGON_RAGE, SOUND_PAN_ATTACKER call EndureEffect delay 8 createvisualtask AnimTask_BlendColorCycle, 2, 2, 2, 2, 0, 11, RGB_RED @@ -3221,13 +3221,13 @@ Move_CHARM: loadspritegfx ANIM_TAG_MAGENTA_HEART createvisualtask AnimTask_RockMonBackAndForth, 5, ANIM_ATTACKER, 2, 0 createsprite gMagentaHeartSpriteTemplate, ANIM_ATTACKER, 3, 0, 20 - playsewithpan SE_W204, SOUND_PAN_ATTACKER + playsewithpan SE_M_CHARM, SOUND_PAN_ATTACKER delay 15 createsprite gMagentaHeartSpriteTemplate, ANIM_ATTACKER, 3, -20, 20 - playsewithpan SE_W204, SOUND_PAN_ATTACKER + playsewithpan SE_M_CHARM, SOUND_PAN_ATTACKER delay 15 createsprite gMagentaHeartSpriteTemplate, ANIM_ATTACKER, 3, 20, 20 - playsewithpan SE_W204, SOUND_PAN_ATTACKER + playsewithpan SE_M_CHARM, SOUND_PAN_ATTACKER waitforvisualfinish end @@ -3242,7 +3242,7 @@ Move_ROLLOUT: waitforvisualfinish createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 2, FALSE, 1, 30, 1, 0 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 4, 0, 0, ANIM_TARGET, 2 - playsewithpan SE_W025B, SOUND_PAN_TARGET + playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff @@ -3252,44 +3252,44 @@ Move_FALSE_SWIPE: loadspritegfx ANIM_TAG_SLASH_2 loadspritegfx ANIM_TAG_IMPACT createsprite gFalseSwipeSliceSpriteTemplate, ANIM_TARGET, 2 - playsewithpan SE_W233, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW, SOUND_PAN_TARGET delay 16 createsprite gFalseSwipePositionedSliceSpriteTemplate, ANIM_TARGET, 2, 0 - playsewithpan SE_W104, SOUND_PAN_TARGET + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_TARGET delay 2 createsprite gFalseSwipePositionedSliceSpriteTemplate, ANIM_TARGET, 2, 16 delay 2 createsprite gFalseSwipePositionedSliceSpriteTemplate, ANIM_TARGET, 2, 32 - playsewithpan SE_W104, SOUND_PAN_TARGET + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_TARGET delay 2 createsprite gFalseSwipePositionedSliceSpriteTemplate, ANIM_TARGET, 2, 48 delay 2 createsprite gFalseSwipePositionedSliceSpriteTemplate, ANIM_TARGET, 2, 64 - playsewithpan SE_W104, SOUND_PAN_TARGET + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_TARGET delay 2 createsprite gFalseSwipePositionedSliceSpriteTemplate, ANIM_TARGET, 2, 80 delay 2 waitforvisualfinish createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 5, 0, 6, 1 createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 4, 0, 0, ANIM_TARGET, 3 - playsewithpan SE_W004, SOUND_PAN_TARGET + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET end Move_SWAGGER: loadspritegfx ANIM_TAG_BREATH loadspritegfx ANIM_TAG_ANGER createvisualtask AnimTask_GrowAndShrink, 2 - playsewithpan SE_W207, SOUND_PAN_ATTACKER + playsewithpan SE_M_SWAGGER, SOUND_PAN_ATTACKER waitforvisualfinish createsprite gBreathPuffSpriteTemplate, ANIM_ATTACKER, 2 - loopsewithpan SE_W207, SOUND_PAN_ATTACKER, 4, 2 + loopsewithpan SE_M_SWAGGER, SOUND_PAN_ATTACKER, 4, 2 waitforvisualfinish delay 24 createsprite gAngerMarkSpriteTemplate, ANIM_TARGET, 2, 1, -20, -28 - playsewithpan SE_W207B, SOUND_PAN_TARGET + playsewithpan SE_M_SWAGGER2, SOUND_PAN_TARGET delay 12 createsprite gAngerMarkSpriteTemplate, ANIM_TARGET, 2, 1, 20, -28 - playsewithpan SE_W207B, SOUND_PAN_TARGET + playsewithpan SE_M_SWAGGER2, SOUND_PAN_TARGET waitforvisualfinish end @@ -3300,14 +3300,14 @@ Move_MILK_DRINK: monbg ANIM_TARGET createsprite gMilkBottleSpriteTemplate, ANIM_ATTACKER, 2 delay 40 - playsewithpan SE_W152, SOUND_PAN_ATTACKER + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_ATTACKER delay 12 - playsewithpan SE_W152, SOUND_PAN_ATTACKER + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_ATTACKER delay 20 - playsewithpan SE_W152, SOUND_PAN_ATTACKER + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_ATTACKER waitforvisualfinish createsprite gThinRingExpandingSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 1, 0 - playsewithpan SE_W208, SOUND_PAN_ATTACKER + playsewithpan SE_M_MILK_DRINK, SOUND_PAN_ATTACKER waitforvisualfinish clearmonbg ANIM_TARGET call HealingEffect2 @@ -3324,12 +3324,12 @@ MagnitudeEnd: MagnitudeRegular: createvisualtask AnimTask_HorizontalShake, 5, (MAX_BATTLERS_COUNT + 1), 0, 50 createvisualtask AnimTask_HorizontalShake, 5, MAX_BATTLERS_COUNT, 0, 50 - loopsewithpan SE_W070, SOUND_PAN_TARGET, 8, 10 + loopsewithpan SE_M_STRENGTH, SOUND_PAN_TARGET, 8, 10 goto MagnitudeEnd MagnitudeIntense: createvisualtask AnimTask_HorizontalShake, 5, (MAX_BATTLERS_COUNT + 1), 0, 50 createvisualtask AnimTask_HorizontalShake, 5, MAX_BATTLERS_COUNT, 0, 50 - loopsewithpan SE_W070, SOUND_PAN_TARGET, 8, 10 + loopsewithpan SE_M_STRENGTH, SOUND_PAN_TARGET, 8, 10 delay 10 createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 1, RGB_BLACK, 14, 0x7FFF, 14 delay 16 @@ -3342,15 +3342,15 @@ Move_RAPID_SPIN: monbg ANIM_ATTACKER createsprite gRapidSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 32, -32, 40, -2 createvisualtask AnimTask_RapinSpinMonElevation, 2, 0, 2, 0 - loopsewithpan SE_W013B, SOUND_PAN_ATTACKER, 8, 4 + loopsewithpan SE_M_RAZOR_WIND2, SOUND_PAN_ATTACKER, 8, 4 waitforvisualfinish createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, ANIM_TARGET, 2 createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 2, FALSE, 1, 10, 1, 0 - playsewithpan SE_W003, SOUND_PAN_TARGET + playsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET waitforvisualfinish delay 8 createvisualtask AnimTask_RapinSpinMonElevation, 2, 0, 2, 1 - loopsewithpan SE_W013B, SOUND_PAN_ATTACKER, 8, 4 + loopsewithpan SE_M_RAZOR_WIND2, SOUND_PAN_ATTACKER, 8, 4 waitforvisualfinish clearmonbg ANIM_ATTACKER end @@ -3364,7 +3364,7 @@ Move_MOONLIGHT: waitforvisualfinish createsprite gMoonSpriteTemplate, ANIM_ATTACKER, 2, 120, 56 createvisualtask AnimTask_AlphaFadeIn, 3, 0, 16, 16, 0, 1 - playsewithpan SE_W236, 0 + playsewithpan SE_M_MOONLIGHT, 0 delay 30 createsprite gMoonlightSparkleSpriteTemplate, ANIM_ATTACKER, 40, -12, 0 delay 30 @@ -3393,7 +3393,7 @@ ExtremeSpeedContinue: createvisualtask AnimTask_StartSlidingBg, 5, -2304, 0, 1, -1 waitbgfadein createvisualtask AnimTask_AttackerStretchAndDisappear, 2 - loopsewithpan SE_W013B, SOUND_PAN_ATTACKER, 8, 3 + loopsewithpan SE_M_RAZOR_WIND2, SOUND_PAN_ATTACKER, 8, 3 waitforvisualfinish delay 1 createvisualtask AnimTask_SetAttackerInvisibleWaitForSignal, 2 @@ -3402,19 +3402,19 @@ ExtremeSpeedContinue: delay 18 createvisualtask AnimTask_ExtremeSpeedImpact, 2 delay 2 - playsewithpan SE_W004, SOUND_PAN_TARGET + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET createsprite gMonEdgeHitSplatSpriteTemplate, ANIM_TARGET, 2, ANIM_TARGET, 0, -12, 3 delay 10 - playsewithpan SE_W004, SOUND_PAN_TARGET + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET createsprite gMonEdgeHitSplatSpriteTemplate, ANIM_TARGET, 2, ANIM_TARGET, 0, 12, 3 delay 10 - playsewithpan SE_W233B, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET createsprite gMonEdgeHitSplatSpriteTemplate, ANIM_TARGET, 2, ANIM_TARGET, 0, 0, 3 waitforvisualfinish createvisualtask AnimTask_SpeedDust, 2 delay 10 createvisualtask AnimTask_ExtremeSpeedMonReappear, 2 - loopsewithpan SE_W104, SOUND_PAN_ATTACKER, 8, 4 + loopsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER, 8, 4 waitforvisualfinish restorebg waitbgfadeout @@ -3436,19 +3436,19 @@ Move_UPROAR: monbg ANIM_DEF_PARTNER createvisualtask AnimTask_UproarDistortion, 2, 0 createsprite gUproarRingSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 0, 0, 31, 8 - playsewithpan SE_W253, SOUND_PAN_ATTACKER + playsewithpan SE_M_UPROAR, SOUND_PAN_ATTACKER createsprite gJaggedMusicNoteSpriteTemplate, ANIM_ATTACKER, 2, 0, 29, -12, 0 createsprite gJaggedMusicNoteSpriteTemplate, ANIM_ATTACKER, 2, 0, -12, -29, 1 delay 16 createvisualtask AnimTask_UproarDistortion, 2, 0 createsprite gUproarRingSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 0, 0, 31, 8 - playsewithpan SE_W253, SOUND_PAN_ATTACKER + playsewithpan SE_M_UPROAR, SOUND_PAN_ATTACKER createsprite gJaggedMusicNoteSpriteTemplate, ANIM_ATTACKER, 2, 0, 12, -29, 1 createsprite gJaggedMusicNoteSpriteTemplate, ANIM_ATTACKER, 2, 0, -29, -12, 0 delay 16 createvisualtask AnimTask_UproarDistortion, 2, 0 createsprite gUproarRingSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 0, 0, 31, 8 - playsewithpan SE_W253, SOUND_PAN_ATTACKER + playsewithpan SE_M_UPROAR, SOUND_PAN_ATTACKER createsprite gJaggedMusicNoteSpriteTemplate, ANIM_ATTACKER, 2, 0, 24, -24, 1 createsprite gJaggedMusicNoteSpriteTemplate, ANIM_ATTACKER, 2, 0, -24, -24, 0 waitforvisualfinish @@ -3460,7 +3460,7 @@ Move_HEAT_WAVE: createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_FLYING_DIRT, 0, 6, 6, RGB_RED createvisualtask AnimTask_LoadSandstormBackground, 5, TRUE createvisualtask AnimTask_BlendBackground, 6, 6, RGB_RED - panse_1B SE_W257, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 + panse_1B SE_M_HEAT_WAVE, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 delay 4 createvisualtask AnimTask_MoveHeatWaveTargets, 5 delay 12 @@ -3486,7 +3486,7 @@ Move_HAIL: createvisualtask AnimTask_BlendBattleAnimPal, 10, 1, 3, 0, 6, RGB_BLACK waitforvisualfinish createvisualtask AnimTask_Hail, 5 - loopsewithpan SE_W258, 0, 8, 10 + loopsewithpan SE_M_HAIL, 0, 8, 10 waitforvisualfinish createvisualtask AnimTask_BlendBattleAnimPal, 10, 1, 3, 6, 0, RGB_BLACK end @@ -3498,10 +3498,10 @@ Move_TORMENT: waitforvisualfinish createvisualtask AnimTask_BlendMonInAndOut, 2, ANIM_TARGET, RGB_RED, 10, 1, 1 createsprite gAngerMarkSpriteTemplate, ANIM_TARGET, 2, 1, -20, -28 - playsewithpan SE_W207B, SOUND_PAN_TARGET + playsewithpan SE_M_SWAGGER2, SOUND_PAN_TARGET delay 20 createsprite gAngerMarkSpriteTemplate, ANIM_TARGET, 2, 1, 20, -28 - playsewithpan SE_W207B, SOUND_PAN_TARGET + playsewithpan SE_M_SWAGGER2, SOUND_PAN_TARGET end Move_MEMENTO: @@ -3510,9 +3510,9 @@ Move_MEMENTO: createvisualtask AnimTask_InitMementoShadow, 2 delay 1 createvisualtask AnimTask_MoveAttackerMementoShadow, 5 - playsewithpan SE_W060, SOUND_PAN_ATTACKER + playsewithpan SE_M_PSYBEAM, SOUND_PAN_ATTACKER delay 48 - playsewithpan SE_W060B, SOUND_PAN_ATTACKER + playsewithpan SE_M_PSYBEAM2, SOUND_PAN_ATTACKER waitforvisualfinish createvisualtask sub_8114470, 2 delay 12 @@ -3520,7 +3520,7 @@ Move_MEMENTO: delay 1 monbg_22 ANIM_TARGET createvisualtask AnimTask_MoveTargetMementoShadow, 5 - playsewithpan SE_W060, SOUND_PAN_TARGET + playsewithpan SE_M_PSYBEAM, SOUND_PAN_TARGET waitforvisualfinish clearmonbg_23 ANIM_TARGET delay 1 @@ -3532,7 +3532,7 @@ Move_FACADE: loadspritegfx ANIM_TAG_SWEAT_DROP createvisualtask AnimTask_SquishAndSweatDroplets, 2, ANIM_ATTACKER, 3 createvisualtask AnimTask_FacadeColorBlend, 2, ANIM_ATTACKER, 72 - loopsewithpan SE_W207, SOUND_PAN_ATTACKER, 24, 3 + loopsewithpan SE_M_SWAGGER, SOUND_PAN_ATTACKER, 24, 3 end Move_SMELLING_SALT: @@ -3542,22 +3542,22 @@ Move_SMELLING_SALT: createsprite gSmellingSaltsHandSpriteTemplate, ANIM_TARGET, 2, ANIM_TARGET, 1, 2 delay 32 createvisualtask AnimTask_SmellingSaltsSquish, 3, ANIM_TARGET, 2 - loopsewithpan SE_W003, SOUND_PAN_TARGET, 12, 2 + loopsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET, 12, 2 waitforvisualfinish delay 4 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 6, 2 createsprite gSmellingSaltExclamationSpriteTemplate, ANIM_TARGET, 2, ANIM_TARGET, 8, 3 - loopsewithpan SE_W207B, SOUND_PAN_TARGET, 16, 3 + loopsewithpan SE_M_SWAGGER2, SOUND_PAN_TARGET, 16, 3 end Move_FOLLOW_ME: loadspritegfx ANIM_TAG_FINGER createsprite gFollowMeFingerSpriteTemplate, ANIM_ATTACKER, 2, 0 - playsewithpan SE_W039, SOUND_PAN_ATTACKER + playsewithpan SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER delay 18 - playsewithpan SE_W213, SOUND_PAN_ATTACKER + playsewithpan SE_M_ATTRACT, SOUND_PAN_ATTACKER delay 71 - loopsewithpan SE_W039, SOUND_PAN_ATTACKER, 22, 3 + loopsewithpan SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER, 22, 3 end Move_CHARGE: @@ -3569,26 +3569,26 @@ Move_CHARGE: createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 2, 0, 4, RGB_BLACK waitforvisualfinish createvisualtask AnimTask_ElectricChargingParticles, 2, ANIM_ATTACKER, 60, 2, 12 - playsewithpan SE_W268, SOUND_PAN_ATTACKER + playsewithpan SE_M_CHARGE, SOUND_PAN_ATTACKER delay 30 - playsewithpan SE_W268, SOUND_PAN_ATTACKER + playsewithpan SE_M_CHARGE, SOUND_PAN_ATTACKER delay 30 - playsewithpan SE_W268, SOUND_PAN_ATTACKER + playsewithpan SE_M_CHARGE, SOUND_PAN_ATTACKER createsprite gGrowingChargeOrbSpriteTemplate, ANIM_ATTACKER, 2, 0 delay 25 - playsewithpan SE_W268, SOUND_PAN_ATTACKER + playsewithpan SE_M_CHARGE, SOUND_PAN_ATTACKER delay 20 - playsewithpan SE_W268, SOUND_PAN_ATTACKER + playsewithpan SE_M_CHARGE, SOUND_PAN_ATTACKER delay 15 - playsewithpan SE_W268, SOUND_PAN_ATTACKER + playsewithpan SE_M_CHARGE, SOUND_PAN_ATTACKER delay 10 delay 6 - loopsewithpan SE_W268, SOUND_PAN_ATTACKER, 6, 5 + loopsewithpan SE_M_CHARGE, SOUND_PAN_ATTACKER, 6, 5 waitforvisualfinish createsprite gElectricPuffSpriteTemplate, ANIM_ATTACKER, 2, 0, 16, 16 delay 2 createsprite gElectricPuffSpriteTemplate, ANIM_ATTACKER, 2, 0, -16, -16 - playsewithpan SE_W085B, SOUND_PAN_ATTACKER + playsewithpan SE_M_THUNDERBOLT2, SOUND_PAN_ATTACKER waitforvisualfinish createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 4, 4, 0, RGB_BLACK clearmonbg ANIM_ATTACKER @@ -3600,19 +3600,19 @@ Move_TAUNT: loadspritegfx ANIM_TAG_THOUGHT_BUBBLE loadspritegfx ANIM_TAG_ANGER createsprite gThoughtBubbleSpriteTemplate, ANIM_ATTACKER, 11, 0, 45 - playsewithpan SE_W118, SOUND_PAN_ATTACKER + playsewithpan SE_M_METRONOME, SOUND_PAN_ATTACKER delay 6 createsprite gTauntFingerSpriteTemplate, ANIM_ATTACKER, 12, 0 delay 4 - loopsewithpan SE_W039, SOUND_PAN_ATTACKER, 16, 2 + loopsewithpan SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER, 16, 2 waitforvisualfinish delay 8 createsprite gAngerMarkSpriteTemplate, ANIM_TARGET, 2, 1, -20, -28 - playsewithpan SE_W207B, SOUND_PAN_TARGET + playsewithpan SE_M_SWAGGER2, SOUND_PAN_TARGET waitforvisualfinish delay 12 createsprite gAngerMarkSpriteTemplate, ANIM_TARGET, 2, 1, 20, -28 - playsewithpan SE_W207B, SOUND_PAN_TARGET + playsewithpan SE_M_SWAGGER2, SOUND_PAN_TARGET end Move_HELPING_HAND: @@ -3621,13 +3621,13 @@ Move_HELPING_HAND: createsprite gHelpingHandClapSpriteTemplate, ANIM_ATTACKER, 40, 0 createsprite gHelpingHandClapSpriteTemplate, ANIM_ATTACKER, 40, 1 delay 19 - playsewithpan SE_W227, 0 + playsewithpan SE_M_ENCORE, 0 createvisualtask AnimTask_ShakeMon2, 2, ANIM_ATK_PARTNER, 2, 0, 5, 1 delay 14 - playsewithpan SE_W227, 0 + playsewithpan SE_M_ENCORE, 0 createvisualtask AnimTask_ShakeMon2, 2, ANIM_ATK_PARTNER, 2, 0, 5, 1 delay 20 - playsewithpan SE_W227, 0 + playsewithpan SE_M_ENCORE, 0 createvisualtask AnimTask_ShakeMon2, 2, ANIM_ATK_PARTNER, 3, 0, 10, 1 createvisualtask AnimTask_BlendMonInAndOut, 2, ANIM_ATK_PARTNER, RGB_YELLOW, 12, 1, 1 end @@ -3637,16 +3637,16 @@ Move_ASSIST: createsprite gAssistPawprintSpriteTemplate, ANIM_ATTACKER, 50, 112, -16, 140, 128, 36 delay 2 createsprite gAssistPawprintSpriteTemplate, ANIM_ATTACKER, 50, 208, 128, -16, 48, 36 - playsewithpan SE_W010, 0 + playsewithpan SE_M_SCRATCH, 0 delay 2 createsprite gAssistPawprintSpriteTemplate, ANIM_ATTACKER, 50, -16, 112, 256, -16, 36 - playsewithpan SE_W010, 0 + playsewithpan SE_M_SCRATCH, 0 delay 2 createsprite gAssistPawprintSpriteTemplate, ANIM_ATTACKER, 50, 108, 128, 84, -16, 36 - playsewithpan SE_W010, 0 + playsewithpan SE_M_SCRATCH, 0 delay 2 createsprite gAssistPawprintSpriteTemplate, ANIM_ATTACKER, 50, -16, 56, 256, 56, 36 - playsewithpan SE_W010, 0 + playsewithpan SE_M_SCRATCH, 0 end Move_SUPERPOWER: @@ -3657,10 +3657,10 @@ Move_SUPERPOWER: monbgprio_28 ANIM_ATTACKER setalpha 12, 8 createsprite gSuperpowerOrbSpriteTemplate, ANIM_TARGET, 2, ANIM_ATTACKER - playsewithpan SE_W025, SOUND_PAN_ATTACKER + playsewithpan SE_M_MEGA_KICK, SOUND_PAN_ATTACKER delay 20 createsprite gShakeMonOrTerrainSpriteTemplate, ANIM_ATTACKER, 2, 4, 1, 180, 1 - createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_W089, 0 + createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_EARTHQUAKE, 0 delay 40 createsprite gSuperpowerRockSpriteTemplate, ANIM_ATTACKER, 41, 200, 96, 1, 120 delay 8 @@ -3673,10 +3673,10 @@ Move_SUPERPOWER: createsprite gSuperpowerRockSpriteTemplate, ANIM_ATTACKER, 41, 60, 288, 3, 88 delay 74 createsprite gSuperpowerFireballSpriteTemplate, ANIM_TARGET, 3, ANIM_ATTACKER - playsewithpan SE_W207, SOUND_PAN_ATTACKER + playsewithpan SE_M_SWAGGER, SOUND_PAN_ATTACKER delay 16 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 8, 0, 16, 1 - playsewithpan SE_W025B, SOUND_PAN_TARGET + playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_ATK_PARTNER blendoff @@ -3689,10 +3689,10 @@ Move_RECYCLE: setalpha 0, 16 delay 1 createsprite gRecycleSpriteTemplate, ANIM_ATTACKER, 2 - loopsewithpan SE_W036, SOUND_PAN_ATTACKER, 24, 3 + loopsewithpan SE_M_TAKE_DOWN, SOUND_PAN_ATTACKER, 24, 3 waitforvisualfinish createvisualtask AnimTask_BlendMonInAndOut, 5, ANIM_ATTACKER, RGB_WHITE, 12, 2, 1 - playsewithpan SE_W036, SOUND_PAN_ATTACKER + playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_ATTACKER waitforvisualfinish blendoff clearmonbg ANIM_ATTACKER @@ -3712,19 +3712,19 @@ BrickBreakNormal: delay 4 delay 1 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, -18, -18, ANIM_TARGET, 1 - playsewithpan SE_W233, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW, SOUND_PAN_TARGET delay 20 createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 3, 8 delay 5 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 18, 18, ANIM_TARGET, 1 - playsewithpan SE_W233, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW, SOUND_PAN_TARGET delay 20 createvisualtask AnimTask_WindUpLunge, 2, ANIM_ATTACKER, -24, 0, 24, 10, 24, 3 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 2, 0, 6, RGB_BLACK delay 37 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, ANIM_TARGET, 1 createsprite gFistFootSpriteTemplate, ANIM_ATTACKER, 4, 0, 0, 10, 1, 0 - playsewithpan SE_W233B, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET waitforvisualfinish createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 2, 6, 0, RGB_BLACK waitforvisualfinish @@ -3738,25 +3738,25 @@ BrickBreakShatteredWall: createsprite gBrickBreakWallSpriteTemplate, ANIM_ATTACKER, 3, ANIM_TARGET, 0, 0, 90, 10 delay 1 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, -18, -18, ANIM_TARGET, 1 - playsewithpan SE_W233, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW, SOUND_PAN_TARGET delay 20 createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 3, 8 delay 5 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 18, 18, ANIM_TARGET, 1 - playsewithpan SE_W233, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW, SOUND_PAN_TARGET delay 20 createvisualtask AnimTask_WindUpLunge, 2, ANIM_ATTACKER, -24, 0, 24, 10, 24, 3 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 2, 0, 6, RGB_BLACK delay 37 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, ANIM_TARGET, 1 createsprite gFistFootSpriteTemplate, ANIM_ATTACKER, 4, 0, 0, 10, 1, 0 - playsewithpan SE_W233B, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET waitforvisualfinish createsprite gBrickBreakWallShardSpriteTemplate, ANIM_ATTACKER, 2, ANIM_TARGET, 0, -8, -12 createsprite gBrickBreakWallShardSpriteTemplate, ANIM_ATTACKER, 2, ANIM_TARGET, 1, 8, -12 createsprite gBrickBreakWallShardSpriteTemplate, ANIM_ATTACKER, 2, ANIM_TARGET, 2, -8, 12 createsprite gBrickBreakWallShardSpriteTemplate, ANIM_ATTACKER, 2, ANIM_TARGET, 3, 8, 12 - playsewithpan SE_W280, SOUND_PAN_TARGET + playsewithpan SE_M_BRICK_BREAK, SOUND_PAN_TARGET waitforvisualfinish createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 2, 6, 0, RGB_BLACK waitforvisualfinish @@ -3766,33 +3766,33 @@ BrickBreakShatteredWall: Move_YAWN: loadspritegfx ANIM_TAG_PINK_CLOUD createvisualtask AnimTask_DeepInhale, 2, ANIM_ATTACKER - playsewithpan SE_W281, SOUND_PAN_ATTACKER + playsewithpan SE_M_YAWN, SOUND_PAN_ATTACKER waitforvisualfinish createsprite gYawnCloudSpriteTemplate, ANIM_TARGET, 5, 2 - playsewithpan SE_W255, SOUND_PAN_ATTACKER + playsewithpan SE_M_SPIT_UP, SOUND_PAN_ATTACKER delay 4 createsprite gYawnCloudSpriteTemplate, ANIM_TARGET, 5, 1 delay 4 createsprite gYawnCloudSpriteTemplate, ANIM_TARGET, 5, 0 waitforvisualfinish createvisualtask AnimTask_DeepInhale, 2, ANIM_TARGET - playsewithpan SE_W281, SOUND_PAN_TARGET + playsewithpan SE_M_YAWN, SOUND_PAN_TARGET end Move_ENDEAVOR: loadspritegfx ANIM_TAG_SWEAT_DROP loadspritegfx ANIM_TAG_IMPACT createvisualtask AnimTask_SquishAndSweatDroplets, 2, ANIM_ATTACKER, 2 - loopsewithpan SE_W039, SOUND_PAN_ATTACKER, 24, 2 + loopsewithpan SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER, 24, 2 createvisualtask AnimTask_BlendMonInAndOut, 5, ANIM_ATTACKER, RGB(31, 21, 0), 12, 1, 2 delay 6 createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 5, FALSE, 1, 8, 1, 0 createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, 12, -12, ANIM_TARGET, 2 - playsewithpan SE_W003, SOUND_PAN_TARGET + playsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET delay 24 createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 5, FALSE, 1, 8, 1, 0 createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, -12, 12, ANIM_TARGET, 2 - playsewithpan SE_W004, SOUND_PAN_TARGET + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET end Move_ERUPTION: @@ -3800,10 +3800,10 @@ Move_ERUPTION: createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 2, 0, 4, RGB_RED waitforvisualfinish createvisualtask AnimTask_EruptionLaunchRocks, 2 - waitplaysewithpan SE_W153, SOUND_PAN_ATTACKER, 60 + waitplaysewithpan SE_M_EXPLOSION, SOUND_PAN_ATTACKER, 60 waitforvisualfinish createvisualtask AnimTask_EruptionLaunchRocks, 2 - waitplaysewithpan SE_W153, SOUND_PAN_ATTACKER, 60 + waitplaysewithpan SE_M_EXPLOSION, SOUND_PAN_ATTACKER, 60 waitforvisualfinish delay 30 createsprite gEruptionFallingRockSpriteTemplate, ANIM_ATTACKER, 40, 200, -32, 0, 100, 0 @@ -3815,7 +3815,7 @@ Move_ERUPTION: delay 22 createvisualtask AnimTask_HorizontalShake, 5, (MAX_BATTLERS_COUNT + 1), 8, 60 createvisualtask AnimTask_HorizontalShake, 5, MAX_BATTLERS_COUNT, 8, 60 - loopsewithpan SE_W088, SOUND_PAN_TARGET, 16, 12 + loopsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET, 16, 12 delay 80 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 40, 31, 4, 4, 0, RGB_RED end @@ -3825,7 +3825,7 @@ Move_SKILL_SWAP: call SetPsychicBackground createvisualtask AnimTask_SkillSwap, 3, ANIM_TARGET createvisualtask AnimTask_BlendMonInAndOut, 5, ANIM_TARGET, RGB_WHITE, 12, 3, 1 - loopsewithpan SE_W179, SOUND_PAN_ATTACKER, 24, 3 + loopsewithpan SE_M_REVERSAL, SOUND_PAN_ATTACKER, 24, 3 delay 16 createvisualtask AnimTask_SkillSwap, 3, ANIM_ATTACKER createvisualtask AnimTask_BlendMonInAndOut, 5, ANIM_ATTACKER, RGB_WHITE, 12, 3, 1 @@ -3840,12 +3840,12 @@ Move_IMPRISON: monbg ANIM_DEF_PARTNER createvisualtask AnimTask_ImprisonOrbs, 5 delay 8 - loopsewithpan SE_W030, SOUND_PAN_ATTACKER, 8, 5 + loopsewithpan SE_M_HORN_ATTACK, SOUND_PAN_ATTACKER, 8, 5 waitforvisualfinish delay 4 createsprite gRedXSpriteTemplate, ANIM_ATTACKER, 5, ANIM_ATTACKER, 40 createvisualtask AnimTask_HorizontalShake, 5, MAX_BATTLERS_COUNT, 1, 10 - playsewithpan SE_W063, SOUND_PAN_ATTACKER + playsewithpan SE_M_HYPER_BEAM, SOUND_PAN_ATTACKER clearmonbg ANIM_DEF_PARTNER call UnsetPsychicBackground end @@ -3855,13 +3855,13 @@ Move_GRUDGE: monbg ANIM_ATTACKER monbgprio_29 fadetobg BG_GHOST - playsewithpan SE_W060, SOUND_PAN_ATTACKER + playsewithpan SE_M_PSYBEAM, SOUND_PAN_ATTACKER waitbgfadein createvisualtask AnimTask_GrudgeFlames, 3 - loopsewithpan SE_W052, SOUND_PAN_ATTACKER, 16, 4 + loopsewithpan SE_M_EMBER, SOUND_PAN_ATTACKER, 16, 4 delay 10 delay 80 - playsewithpan SE_W171, SOUND_PAN_TARGET + playsewithpan SE_M_NIGHTMARE, SOUND_PAN_TARGET waitforvisualfinish restorebg waitbgfadein @@ -3875,7 +3875,7 @@ Move_CAMOUFLAGE: createvisualtask AnimTask_SetCamouflageBlend, 5, 2, 3, 0, 14 delay 16 createvisualtask AnimTask_AttackerFadeToInvisible, 2, 4 - playsewithpan SE_W185, SOUND_PAN_ATTACKER + playsewithpan SE_M_FAINT_ATTACK, SOUND_PAN_ATTACKER waitforvisualfinish delay 8 createvisualtask AnimTask_SetCamouflageBlend, 5, 2, 0, 0, 0 @@ -3894,7 +3894,7 @@ Move_TAIL_GLOW: waitforvisualfinish createsprite gTailGlowOrbSpriteTemplate, ANIM_ATTACKER, 66, ANIM_ATTACKER delay 18 - loopsewithpan SE_W234, SOUND_PAN_ATTACKER, 16, 6 + loopsewithpan SE_M_MORNING_SUN, SOUND_PAN_ATTACKER, 16, 6 waitforvisualfinish createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 4, 4, 0, RGB_BLACK clearmonbg ANIM_ATTACKER @@ -3911,7 +3911,7 @@ Move_LUSTER_PURGE: waitbgfadein monbg ANIM_ATTACKER setalpha 12, 8 - playsewithpan SE_W076, SOUND_PAN_ATTACKER + playsewithpan SE_M_SOLAR_BEAM, SOUND_PAN_ATTACKER createsprite gLusterPurgeCircleSpriteTemplate, ANIM_ATTACKER, 41, 0, 0, 0, 0 delay 20 createvisualtask AnimTask_BlendBattleAnimPalExclude, 5, 5, 2, 0, 16, RGB_WHITEALPHA @@ -3920,22 +3920,22 @@ Move_LUSTER_PURGE: createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_IMPACT, 0, 12, 12, RGB(0, 0, 23) waitforvisualfinish createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGET, 3, 1, 2 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_W063, SOUND_PAN_TARGET + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_HYPER_BEAM, SOUND_PAN_TARGET delay 3 createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGET, 3, 1, 2 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_W063, SOUND_PAN_TARGET + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_HYPER_BEAM, SOUND_PAN_TARGET delay 3 createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGET, 3, 1, 2 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_W063, SOUND_PAN_TARGET + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_HYPER_BEAM, SOUND_PAN_TARGET delay 3 createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGET, 3, 1, 2 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_W063, SOUND_PAN_TARGET + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_HYPER_BEAM, SOUND_PAN_TARGET delay 3 createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGET, 3, 1, 2 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_W063, SOUND_PAN_TARGET + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_HYPER_BEAM, SOUND_PAN_TARGET delay 3 createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGET, 3, 1, 2 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_W063, SOUND_PAN_TARGET + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_HYPER_BEAM, SOUND_PAN_TARGET waitforvisualfinish createvisualtask AnimTask_BlendBattleAnimPalExclude, 5, 5, 2, 16, 0, RGB_WHITEALPHA createvisualtask AnimTask_HorizontalShake, 5, ANIM_TARGET, 5, 14 @@ -3949,14 +3949,14 @@ Move_MIST_BALL: loadspritegfx ANIM_TAG_SMALL_BUBBLES loadspritegfx ANIM_TAG_WHITE_FEATHER delay 0 - playsewithpan SE_W081, SOUND_PAN_ATTACKER + playsewithpan SE_M_STRING_SHOT, SOUND_PAN_ATTACKER createsprite gMistBallSpriteTemplate, ANIM_TARGET, 0, 0, 0, 0, 0, 30, 0 waitforvisualfinish - playsewithpan SE_W028, SOUND_PAN_TARGET + playsewithpan SE_M_SAND_ATTACK, SOUND_PAN_TARGET createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 5, 0, 10, 0 createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 1, 1, 1, RGB(23, 16, 31), 16, 0x7FFF, 16 delay 0 - playsewithpan SE_W114, 0 + playsewithpan SE_M_HAZE, 0 createvisualtask AnimTask_LoadMistTiles, 5 createvisualtask AnimTask_BlendBattleAnimPal, 10, 4, 3, 0, 16, RGB_WHITE delay 8 @@ -3969,7 +3969,7 @@ Move_FEATHER_DANCE: loadspritegfx ANIM_TAG_WHITE_FEATHER monbg ANIM_DEF_PARTNER monbgprio_29 - playsewithpan SE_W080, SOUND_PAN_TARGET + playsewithpan SE_M_PETAL_DANCE, SOUND_PAN_TARGET delay 0 createsprite gFallingFeatherSpriteTemplate, ANIM_TARGET, 0, 0, -16, 64, 2, 104, 11304, 32, 1 delay 6 @@ -3992,19 +3992,19 @@ Move_TEETER_DANCE: loadspritegfx ANIM_TAG_DUCK createvisualtask AnimTask_TeeterDanceMovement, 5 createsprite gFastFlyingMusicNotesSpriteTemplate, ANIM_ATTACKER, 2, 0, 16, -2 - playsewithpan SE_W298, SOUND_PAN_ATTACKER + playsewithpan SE_M_TEETER_DANCE, SOUND_PAN_ATTACKER delay 24 createsprite gFastFlyingMusicNotesSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, -2 - playsewithpan SE_W298, SOUND_PAN_ATTACKER + playsewithpan SE_M_TEETER_DANCE, SOUND_PAN_ATTACKER delay 24 createsprite gFastFlyingMusicNotesSpriteTemplate, ANIM_ATTACKER, 2, 0, -16, -2 - playsewithpan SE_W298, SOUND_PAN_ATTACKER + playsewithpan SE_M_TEETER_DANCE, SOUND_PAN_ATTACKER delay 24 createsprite gFastFlyingMusicNotesSpriteTemplate, ANIM_ATTACKER, 2, 1, -8, -2 - playsewithpan SE_W298, SOUND_PAN_ATTACKER + playsewithpan SE_M_TEETER_DANCE, SOUND_PAN_ATTACKER delay 24 createsprite gFastFlyingMusicNotesSpriteTemplate, ANIM_ATTACKER, 2, 2, 8, -2 - playsewithpan SE_W298, SOUND_PAN_ATTACKER + playsewithpan SE_M_TEETER_DANCE, SOUND_PAN_ATTACKER end Move_MUD_SPORT: @@ -4013,52 +4013,52 @@ Move_MUD_SPORT: delay 24 createsprite gMudsportMudSpriteTemplate, ANIM_TARGET, 2, 0, -4, -16 createsprite gMudsportMudSpriteTemplate, ANIM_TARGET, 2, 0, 4, -12 - playsewithpan SE_W091, SOUND_PAN_ATTACKER + playsewithpan SE_M_DIG, SOUND_PAN_ATTACKER delay 32 createsprite gMudsportMudSpriteTemplate, ANIM_TARGET, 2, 0, -3, -12 createsprite gMudsportMudSpriteTemplate, ANIM_TARGET, 2, 0, 5, -14 - playsewithpan SE_W091, SOUND_PAN_ATTACKER + playsewithpan SE_M_DIG, SOUND_PAN_ATTACKER delay 32 createsprite gMudsportMudSpriteTemplate, ANIM_TARGET, 2, 0, -5, -18 createsprite gMudsportMudSpriteTemplate, ANIM_TARGET, 2, 0, 3, -14 - playsewithpan SE_W091, SOUND_PAN_ATTACKER + playsewithpan SE_M_DIG, SOUND_PAN_ATTACKER delay 16 createsprite gMudsportMudSpriteTemplate, ANIM_TARGET, 2, 1, 220, 60 - waitplaysewithpan SE_W145B, 0, 15 + waitplaysewithpan SE_M_BUBBLE2, 0, 15 delay 2 createsprite gMudsportMudSpriteTemplate, ANIM_TARGET, 2, 1, 60, 100 - waitplaysewithpan SE_W145B, 0, 25 + waitplaysewithpan SE_M_BUBBLE2, 0, 25 delay 2 createsprite gMudsportMudSpriteTemplate, ANIM_TARGET, 2, 1, 140, 55 - waitplaysewithpan SE_W145B, 0, 14 + waitplaysewithpan SE_M_BUBBLE2, 0, 14 delay 2 createsprite gMudsportMudSpriteTemplate, ANIM_TARGET, 2, 1, 180, 50 - waitplaysewithpan SE_W145B, 0, 10 + waitplaysewithpan SE_M_BUBBLE2, 0, 10 delay 2 createsprite gMudsportMudSpriteTemplate, ANIM_TARGET, 2, 1, 20, 90 - waitplaysewithpan SE_W145B, 0, 22 + waitplaysewithpan SE_M_BUBBLE2, 0, 22 delay 2 createsprite gMudsportMudSpriteTemplate, ANIM_TARGET, 2, 1, 90, 90 - waitplaysewithpan SE_W145B, 0, 22 + waitplaysewithpan SE_M_BUBBLE2, 0, 22 delay 2 createsprite gMudsportMudSpriteTemplate, ANIM_TARGET, 2, 1, 160, 60 - waitplaysewithpan SE_W145B, 0, 15 + waitplaysewithpan SE_M_BUBBLE2, 0, 15 delay 2 createsprite gMudsportMudSpriteTemplate, ANIM_TARGET, 2, 1, 30, 90 - waitplaysewithpan SE_W145B, 0, 22 + waitplaysewithpan SE_M_BUBBLE2, 0, 22 delay 2 createsprite gMudsportMudSpriteTemplate, ANIM_TARGET, 2, 1, 120, 60 - waitplaysewithpan SE_W145B, 0, 15 + waitplaysewithpan SE_M_BUBBLE2, 0, 15 delay 2 createsprite gMudsportMudSpriteTemplate, ANIM_TARGET, 2, 1, 200, 40 - waitplaysewithpan SE_W145B, 0, 10 + waitplaysewithpan SE_M_BUBBLE2, 0, 10 end Move_NEEDLE_ARM: loadspritegfx ANIM_TAG_GREEN_SPIKE loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_HANDS_AND_FEET - loopsewithpan SE_W030, SOUND_PAN_TARGET, 2, 16 + loopsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET, 2, 16 createsprite gNeedleArmSpikeSpriteTemplate, ANIM_TARGET, 2, 1, 0, 0, -32, 16 delay 2 createsprite gNeedleArmSpikeSpriteTemplate, ANIM_TARGET, 2, 1, 0, 22, -22, 16 @@ -4086,7 +4086,7 @@ Move_NEEDLE_ARM: createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 4, 0, 18, 1 createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, ANIM_TARGET, 1 createsprite gFistFootSpriteTemplate, ANIM_TARGET, 4, 0, 0, 8, 1, 0 - playsewithpan SE_W233B, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET createsprite gNeedleArmSpikeSpriteTemplate, ANIM_TARGET, 2, 1, 1, 0, -24, 10 createsprite gNeedleArmSpikeSpriteTemplate, ANIM_TARGET, 2, 1, 1, 17, -17, 10 createsprite gNeedleArmSpikeSpriteTemplate, ANIM_TARGET, 2, 1, 1, 24, 0, 10 @@ -4100,7 +4100,7 @@ Move_NEEDLE_ARM: Move_SLACK_OFF: loadspritegfx ANIM_TAG_BLUE_STAR createvisualtask AnimTask_SlackOffSquish, 2, ANIM_ATTACKER - playsewithpan SE_W281, SOUND_PAN_ATTACKER + playsewithpan SE_M_YAWN, SOUND_PAN_ATTACKER waitforvisualfinish call HealingEffect waitforvisualfinish @@ -4117,18 +4117,18 @@ Move_CRUSH_CLAW: createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 18, 1 createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, -10, -10, 0 createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, -10, 10, 0 - playsewithpan SE_W013, SOUND_PAN_TARGET + playsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET delay 12 createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, 10, -10, 1 createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, 10, 10, 1 - playsewithpan SE_W013, SOUND_PAN_TARGET + playsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET waitforvisualfinish blendoff clearmonbg ANIM_TARGET end Move_AROMATHERAPY: - playsewithpan SE_W080, 0 + playsewithpan SE_M_PETAL_DANCE, 0 loadspritegfx ANIM_TAG_FLOWER loadspritegfx ANIM_TAG_THIN_RING loadspritegfx ANIM_TAG_SPARKLE_2 @@ -4152,15 +4152,15 @@ Move_AROMATHERAPY: delay 1 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 1, 0, 7, 0, RGB(13, 31, 12) delay 1 - playsewithpan SE_W287, SOUND_PAN_ATTACKER + playsewithpan SE_M_STAT_INCREASE, SOUND_PAN_ATTACKER createvisualtask AnimTask_StatusClearedEffect, 2, 1 waitforvisualfinish - playsewithpan SE_W234, SOUND_PAN_ATTACKER + playsewithpan SE_M_MORNING_SUN, SOUND_PAN_ATTACKER createsprite gSparklingStarsSpriteTemplate, ANIM_ATTACKER, 16, -15, 0, 0, 0, 32, 60, 1 delay 8 createsprite gSparklingStarsSpriteTemplate, ANIM_ATTACKER, 16, 12, -5, 0, 0, 32, 60, 1 waitforvisualfinish - playsewithpan SE_REAPOKE, SOUND_PAN_ATTACKER + playsewithpan SE_SHINY, SOUND_PAN_ATTACKER createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 43, 3, 10, 0, RGB(13, 31, 12) createsprite gBlendThinRingExpandingSpriteTemplate, ANIM_ATTACKER, 16, 0, 0, 0, 1 waitforvisualfinish @@ -4173,7 +4173,7 @@ Move_FAKE_TEARS: createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_SMALL_BUBBLES, 0, 4, 4, RGB(12, 11, 31) waitforvisualfinish createvisualtask AnimTask_RockMonBackAndForth, 5, ANIM_ATTACKER, 2, 1 - loopsewithpan SE_W039, SOUND_PAN_ATTACKER, 12, 4 + loopsewithpan SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER, 12, 4 delay 8 createsprite gTearDropSpriteTemplate, ANIM_ATTACKER, 2, 0, 0 createsprite gTearDropSpriteTemplate, ANIM_ATTACKER, 2, 0, 1 @@ -4199,7 +4199,7 @@ Move_AIR_CUTTER: delay 0 createvisualtask AnimTask_AirCutterProjectile, 2, 32, -24, 6 * 256, 2, 128 @ 6 * 256 == Q_8_8(6) waitforvisualfinish - playsewithpan SE_W015, SOUND_PAN_TARGET + playsewithpan SE_M_CUT, SOUND_PAN_TARGET createsprite gAirCutterSliceSpriteTemplate, ANIM_ATTACKER, 2, 40, -32, 0, 2 delay 5 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 8, 1 @@ -4215,15 +4215,15 @@ Move_ODOR_SLEUTH: createvisualtask AnimTask_OdorSleuthMovement, 5 delay 24 createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 3, 4 - playsewithpan SE_W207, SOUND_PAN_ATTACKER + playsewithpan SE_M_SWAGGER, SOUND_PAN_ATTACKER delay 6 createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 3, 4 - playsewithpan SE_W207, SOUND_PAN_ATTACKER + playsewithpan SE_M_SWAGGER, SOUND_PAN_ATTACKER waitforvisualfinish clearmonbg ANIM_TARGET delay 1 createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 1, RGB_WHITEALPHA, 16, -1, 0 - playsewithpan SE_W043, SOUND_PAN_ATTACKER + playsewithpan SE_M_LEER, SOUND_PAN_ATTACKER end Move_GRASS_WHISTLE: @@ -4232,7 +4232,7 @@ Move_GRASS_WHISTLE: waitforvisualfinish createvisualtask AnimTask_MusicNotesRainbowBlend, 2 waitforvisualfinish - panse_1B SE_W320, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 + panse_1B SE_M_GRASSWHISTLE, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 createsprite gWavyMusicNotesSpriteTemplate, ANIM_TARGET, 2, 7, 1, 0 delay 5 createsprite gWavyMusicNotesSpriteTemplate, ANIM_TARGET, 2, 6, 1, 0 @@ -4269,7 +4269,7 @@ Move_TICKLE: waitforvisualfinish createsprite gEyeSparkleSpriteTemplate, ANIM_ATTACKER, 0, -16, -8 createsprite gEyeSparkleSpriteTemplate, ANIM_ATTACKER, 0, 16, -8 - playsewithpan SE_W197, SOUND_PAN_ATTACKER + playsewithpan SE_M_DETECT, SOUND_PAN_ATTACKER waitforvisualfinish createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 2, 0, 16, 0, RGB_BLACK waitforvisualfinish @@ -4277,7 +4277,7 @@ Move_TICKLE: createvisualtask AnimTask_SwayMon, 3, 0, 6, 1280, 3, ANIM_ATTACKER delay 12 createvisualtask AnimTask_RockMonBackAndForth, 3, ANIM_TARGET, 6, 2 - loopsewithpan SE_W039, SOUND_PAN_TARGET, 8, 8 + loopsewithpan SE_M_TAIL_WHIP, SOUND_PAN_TARGET, 8, 8 waitforvisualfinish end @@ -4287,13 +4287,13 @@ Move_WATER_SPOUT: monbg ANIM_DEF_PARTNER setalpha 12, 8 createvisualtask AnimTask_WaterSpoutLaunch, 5 - playsewithpan SE_W029, SOUND_PAN_ATTACKER + playsewithpan SE_M_HEADBUTT, SOUND_PAN_ATTACKER delay 44 - playsewithpan SE_W291, SOUND_PAN_ATTACKER + playsewithpan SE_M_DIVE, SOUND_PAN_ATTACKER waitforvisualfinish delay 16 createvisualtask AnimTask_WaterSpoutRain, 5 - playsewithpan SE_W057, SOUND_PAN_TARGET + playsewithpan SE_M_SURF, SOUND_PAN_TARGET clearmonbg ANIM_DEF_PARTNER blendoff end @@ -4306,11 +4306,11 @@ Move_SHADOW_PUNCH: monbg ANIM_ATK_PARTNER setalpha 9, 8 createvisualtask AnimTask_AttackerPunchWithTrace, 2, RGB_BLACK, 13 - playsewithpan SE_W026, SOUND_PAN_ATTACKER + playsewithpan SE_M_JUMP_KICK, SOUND_PAN_ATTACKER delay 6 createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, ANIM_TARGET, 1 createsprite gFistFootSpriteTemplate, ANIM_TARGET, 4, 0, 0, 8, 1, 0 - playsewithpan SE_W004, SOUND_PAN_TARGET + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 6, 1 waitforvisualfinish clearmonbg ANIM_ATK_PARTNER @@ -4325,15 +4325,15 @@ Move_EXTRASENSORY: setalpha 12, 8 createvisualtask AnimTask_BlendMonInAndOut, 5, ANIM_ATTACKER, RGB(27, 27, 0), 12, 1, 1 createvisualtask AnimTask_ExtrasensoryDistortion, 5, 0 - playsewithpan SE_W020, SOUND_PAN_TARGET + playsewithpan SE_M_BIND, SOUND_PAN_TARGET waitforvisualfinish createvisualtask AnimTask_BlendMonInAndOut, 5, ANIM_ATTACKER, RGB(27, 27, 0), 12, 1, 1 createvisualtask AnimTask_ExtrasensoryDistortion, 5, 1 - playsewithpan SE_W020, SOUND_PAN_TARGET + playsewithpan SE_M_BIND, SOUND_PAN_TARGET waitforvisualfinish createvisualtask AnimTask_TransparentCloneGrowAndShrink, 5, ANIM_ATTACKER createvisualtask AnimTask_ExtrasensoryDistortion, 5, 2 - playsewithpan SE_W043, SOUND_PAN_ATTACKER + playsewithpan SE_M_LEER, SOUND_PAN_ATTACKER waitforvisualfinish blendoff clearmonbg ANIM_DEF_PARTNER @@ -4347,18 +4347,18 @@ Move_AERIAL_ACE: createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_ATTACKER, 24, 6, 1, 5 createvisualtask AnimTask_TraceMonBlended, 2, 0, 4, 7, 3 createsprite gCuttingSliceSpriteTemplate, ANIM_ATTACKER, 2, 40, -32, 0 - playsewithpan SE_W013B, SOUND_PAN_ATTACKER + playsewithpan SE_M_RAZOR_WIND2, SOUND_PAN_ATTACKER delay 5 createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 0, 3, 10, 1 createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 1, RGB_BLACK, 10, 0, 0 - playsewithpan SE_W013, SOUND_PAN_TARGET + playsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_TARGET blendoff end Move_IRON_DEFENSE: - loopsewithpan SE_REAPOKE, SOUND_PAN_ATTACKER, 28, 2 + loopsewithpan SE_SHINY, SOUND_PAN_ATTACKER, 28, 2 createvisualtask AnimTask_MetallicShine, 5, 0, 0, 0 createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 8, 2, RGB_WHITEALPHA, 14, -1, 0 waitforvisualfinish @@ -4367,7 +4367,7 @@ Move_IRON_DEFENSE: Move_BLOCK: loadspritegfx ANIM_TAG_X_SIGN createsprite gBlockXSpriteTemplate, ANIM_TARGET, 66 - playsewithpan SE_W207, SOUND_PAN_TARGET + playsewithpan SE_M_SWAGGER, SOUND_PAN_TARGET end Move_HOWL: @@ -4383,10 +4383,10 @@ Move_HOWL: Move_BULK_UP: loadspritegfx ANIM_TAG_BREATH createvisualtask AnimTask_GrowAndShrink, 2 - playsewithpan SE_W207, SOUND_PAN_ATTACKER + playsewithpan SE_M_SWAGGER, SOUND_PAN_ATTACKER waitforvisualfinish createsprite gBreathPuffSpriteTemplate, ANIM_ATTACKER, 2 - loopsewithpan SE_W207, SOUND_PAN_ATTACKER, 4, 2 + loopsewithpan SE_M_SWAGGER, SOUND_PAN_ATTACKER, 4, 2 waitforvisualfinish end @@ -4395,16 +4395,16 @@ Move_COVET: loadspritegfx ANIM_TAG_ITEM_BAG createvisualtask AnimTask_RockMonBackAndForth, 5, ANIM_ATTACKER, 2, 0 createsprite gMagentaHeartSpriteTemplate, ANIM_ATTACKER, 3, 0, 20 - playsewithpan SE_W204, SOUND_PAN_ATTACKER + playsewithpan SE_M_CHARM, SOUND_PAN_ATTACKER delay 15 createsprite gMagentaHeartSpriteTemplate, ANIM_ATTACKER, 3, -20, 20 - playsewithpan SE_W204, SOUND_PAN_ATTACKER + playsewithpan SE_M_CHARM, SOUND_PAN_ATTACKER delay 15 createsprite gMagentaHeartSpriteTemplate, ANIM_ATTACKER, 3, 20, 20 - playsewithpan SE_W204, SOUND_PAN_ATTACKER + playsewithpan SE_M_CHARM, SOUND_PAN_ATTACKER waitforvisualfinish createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 8, 1 - loopsewithpan SE_W146, SOUND_PAN_TARGET, 4, 3 + loopsewithpan SE_M_DIZZY_PUNCH, SOUND_PAN_TARGET, 4, 3 end Move_VOLT_TACKLE: @@ -4416,28 +4416,28 @@ Move_VOLT_TACKLE: createvisualtask AnimTask_BlendBattleAnimPal, 10, 1, 0, 0, 8, RGB_BLACK waitforvisualfinish createsprite gVoltTackleOrbSlideSpriteTemplate, ANIM_ATTACKER, 1 - playsewithpan SE_W268, SOUND_PAN_ATTACKER + playsewithpan SE_M_CHARGE, SOUND_PAN_ATTACKER waitforvisualfinish clearmonbg ANIM_ATTACKER blendoff delay 8 createvisualtask AnimTask_VoltTackleBolt, 5, 0 - playsewithpan SE_W085, SOUND_PAN_ATTACKER + playsewithpan SE_M_THUNDERBOLT, SOUND_PAN_ATTACKER waitforvisualfinish createvisualtask AnimTask_VoltTackleBolt, 5, 1 - playsewithpan SE_W085, SOUND_PAN_TARGET + playsewithpan SE_M_THUNDERBOLT, SOUND_PAN_TARGET waitforvisualfinish createvisualtask AnimTask_VoltTackleBolt, 5, 2 - playsewithpan SE_W085, SOUND_PAN_ATTACKER + playsewithpan SE_M_THUNDERBOLT, SOUND_PAN_ATTACKER waitforvisualfinish createvisualtask AnimTask_VoltTackleBolt, 5, 3 - playsewithpan SE_W085, SOUND_PAN_TARGET + playsewithpan SE_M_THUNDERBOLT, SOUND_PAN_TARGET waitforvisualfinish createvisualtask AnimTask_VoltTackleBolt, 5, 4 - playsewithpan SE_W085, SOUND_PAN_ATTACKER + playsewithpan SE_M_THUNDERBOLT, SOUND_PAN_ATTACKER delay 8 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 10, 0, 18, 1 - playsewithpan SE_W120, SOUND_PAN_TARGET + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET createsprite gElectricPuffSpriteTemplate, ANIM_ATTACKER, 2, 1, 16, 16 delay 2 createsprite gElectricPuffSpriteTemplate, ANIM_ATTACKER, 2, 1, -16, -16 @@ -4445,7 +4445,7 @@ Move_VOLT_TACKLE: createvisualtask AnimTask_VoltTackleAttackerReappear, 5 waitforvisualfinish createvisualtask AnimTask_ShakeMon2, 2, ANIM_ATTACKER, 3, 0, 9, 1 - playsewithpan SE_W085B, SOUND_PAN_ATTACKER + playsewithpan SE_M_THUNDERBOLT2, SOUND_PAN_ATTACKER createsprite gElectricPuffSpriteTemplate, ANIM_ATTACKER, 2, 0, 16, 16 delay 2 createsprite gElectricPuffSpriteTemplate, ANIM_ATTACKER, 2, 0, -16, -16 @@ -4458,13 +4458,13 @@ Move_WATER_SPORT: loadspritegfx ANIM_TAG_GLOWY_BLUE_ORB createvisualtask AnimTask_WaterSport, 5 delay 8 - playsewithpan SE_W057, SOUND_PAN_ATTACKER + playsewithpan SE_M_SURF, SOUND_PAN_ATTACKER delay 44 - playsewithpan SE_W057, SOUND_PAN_ATTACKER + playsewithpan SE_M_SURF, SOUND_PAN_ATTACKER delay 44 - playsewithpan SE_W057, SOUND_PAN_ATTACKER + playsewithpan SE_M_SURF, SOUND_PAN_ATTACKER delay 44 - panse_1B SE_W057, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 + panse_1B SE_M_SURF, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 end Move_CALM_MIND: @@ -4475,13 +4475,13 @@ Move_CALM_MIND: createvisualtask AnimTask_SetAllNonAttackersInvisiblity, 5, TRUE waitforvisualfinish createsprite gThinRingShrinkingSpriteTemplate, ANIM_ATTACKER, 40, 0, 0, 0, 0 - playsewithpan SE_W048, SOUND_PAN_ATTACKER + playsewithpan SE_M_SUPERSONIC, SOUND_PAN_ATTACKER delay 14 createsprite gThinRingShrinkingSpriteTemplate, ANIM_ATTACKER, 40, 0, 0, 0, 0 - playsewithpan SE_W048, SOUND_PAN_ATTACKER + playsewithpan SE_M_SUPERSONIC, SOUND_PAN_ATTACKER delay 14 createsprite gThinRingShrinkingSpriteTemplate, ANIM_ATTACKER, 40, 0, 0, 0, 0 - playsewithpan SE_W048, SOUND_PAN_ATTACKER + playsewithpan SE_M_SUPERSONIC, SOUND_PAN_ATTACKER waitforvisualfinish createvisualtask AnimTask_SetAllNonAttackersInvisiblity, 5, FALSE waitforvisualfinish @@ -4496,20 +4496,20 @@ Move_LEAF_BLADE: createvisualtask AnimTask_LeafBlade, 5 delay 2 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 8, 1 - playsewithpan SE_W015, SOUND_PAN_TARGET + playsewithpan SE_M_CUT, SOUND_PAN_TARGET delay 50 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 8, 1 - playsewithpan SE_W015, SOUND_PAN_TARGET + playsewithpan SE_M_CUT, SOUND_PAN_TARGET delay 50 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 8, 1 - playsewithpan SE_W015, SOUND_PAN_TARGET + playsewithpan SE_M_CUT, SOUND_PAN_TARGET waitforvisualfinish monbg ANIM_TARGET setalpha 12, 8 delay 12 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 8, 0, 18, 1 createsprite gCrossImpactSpriteTemplate, ANIM_TARGET, 2, 0, 0, 1, 36 - playsewithpan SE_W043, SOUND_PAN_TARGET + playsewithpan SE_M_LEER, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_TARGET blendoff @@ -4521,7 +4521,7 @@ Move_DRAGON_DANCE: monbgprio_28 ANIM_ATTACKER delay 1 createvisualtask AnimTask_DragonDanceWaver, 5 - playsewithpan SE_W100, SOUND_PAN_ATTACKER + playsewithpan SE_M_TELEPORT, SOUND_PAN_ATTACKER delay 8 createvisualtask AnimTask_BlendPalInAndOutByTag, 5, ANIM_TAG_HOLLOW_ORB, RGB(0, 0, 19), 14, 0, 3 createsprite gDragonDanceOrbSpriteTemplate, ANIM_ATTACKER, 2, 0 @@ -4531,9 +4531,9 @@ Move_DRAGON_DANCE: createsprite gDragonDanceOrbSpriteTemplate, ANIM_ATTACKER, 2, 170 createsprite gDragonDanceOrbSpriteTemplate, ANIM_ATTACKER, 2, 213 delay 30 - playsewithpan SE_W100, SOUND_PAN_ATTACKER + playsewithpan SE_M_TELEPORT, SOUND_PAN_ATTACKER delay 30 - playsewithpan SE_W100, SOUND_PAN_ATTACKER + playsewithpan SE_M_TELEPORT, SOUND_PAN_ATTACKER waitforvisualfinish clearmonbg ANIM_ATTACKER delay 1 @@ -4549,7 +4549,7 @@ Move_SHOCK_WAVE: createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 2, 0, 4, RGB_BLACK waitforvisualfinish createvisualtask AnimTask_ElectricChargingParticles, 2, ANIM_ATTACKER, 20, 0, 2 - playsewithpan SE_W268, SOUND_PAN_ATTACKER + playsewithpan SE_M_CHARGE, SOUND_PAN_ATTACKER delay 12 createsprite gGrowingShockWaveOrbSpriteTemplate, ANIM_ATTACKER, 2 delay 30 @@ -4557,7 +4557,7 @@ Move_SHOCK_WAVE: delay 12 waitforvisualfinish createvisualtask AnimTask_ShockWaveLightning, 5 - playsewithpan SE_W161B, SOUND_PAN_TARGET + playsewithpan SE_M_TRI_ATTACK2, SOUND_PAN_TARGET waitforvisualfinish createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 0, 6, 18, 1 createvisualtask AnimTask_BlendBattleAnimPal, 5, 1, 3, 16, 0, RGB_WHITE @@ -4570,7 +4570,7 @@ Move_SHOCK_WAVE: end Move_HARDEN: - loopsewithpan SE_W231, SOUND_PAN_ATTACKER, 28, 2 + loopsewithpan SE_M_HARDEN, SOUND_PAN_ATTACKER, 28, 2 createvisualtask AnimTask_MetallicShine, 5, 0, 0, 0 waitforvisualfinish end @@ -4582,27 +4582,27 @@ Move_BELLY_DRUM: waitforvisualfinish call BellyDrumRight createsprite gSlowFlyingMusicNotesSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 0, 0 - playsewithpan SE_W187, SOUND_PAN_ATTACKER + playsewithpan SE_M_BELLY_DRUM, SOUND_PAN_ATTACKER delay 15 call BellyDrumLeft createsprite gSlowFlyingMusicNotesSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 1, 0 - playsewithpan SE_W187, SOUND_PAN_ATTACKER + playsewithpan SE_M_BELLY_DRUM, SOUND_PAN_ATTACKER delay 15 call BellyDrumRight createsprite gSlowFlyingMusicNotesSpriteTemplate, ANIM_ATTACKER, 2, 0, 3, 3, 128 - playsewithpan SE_W187, SOUND_PAN_ATTACKER + playsewithpan SE_M_BELLY_DRUM, SOUND_PAN_ATTACKER delay 7 call BellyDrumLeft createsprite gSlowFlyingMusicNotesSpriteTemplate, ANIM_ATTACKER, 2, 1, 2, 0, 128 - playsewithpan SE_W187, SOUND_PAN_ATTACKER + playsewithpan SE_M_BELLY_DRUM, SOUND_PAN_ATTACKER delay 7 call BellyDrumRight createsprite gSlowFlyingMusicNotesSpriteTemplate, ANIM_ATTACKER, 2, 0, 1, 1, 0 - playsewithpan SE_W187, SOUND_PAN_ATTACKER + playsewithpan SE_M_BELLY_DRUM, SOUND_PAN_ATTACKER delay 7 call BellyDrumLeft createsprite gSlowFlyingMusicNotesSpriteTemplate, ANIM_ATTACKER, 2, 1, 0, 3, 0 - playsewithpan SE_W187, SOUND_PAN_ATTACKER + playsewithpan SE_M_BELLY_DRUM, SOUND_PAN_ATTACKER waitforvisualfinish createvisualtask AnimTask_MusicNotesClearRainbowBlend, 2 waitforvisualfinish @@ -4623,11 +4623,11 @@ Move_MIND_READER: loadspritegfx ANIM_TAG_OPENING_EYE loadspritegfx ANIM_TAG_ROUND_WHITE_HALO monbg ANIM_DEF_PARTNER - playsewithpan SE_W109, SOUND_PAN_TARGET + playsewithpan SE_M_CONFUSE_RAY, SOUND_PAN_TARGET createsprite gOpeningEyeSpriteTemplate, ANIM_ATTACKER, 5, 0, 0, 1, 0 createsprite gWhiteHaloSpriteTemplate, ANIM_ATTACKER, 5 delay 40 - playsewithpan SE_W043, SOUND_PAN_TARGET + playsewithpan SE_M_LEER, SOUND_PAN_TARGET createvisualtask AnimTask_BlendColorCycle, 2, 1, 1, 2, 0, 10, RGB_BLACK call MindReaderEyeSpikeEffect waitforvisualfinish @@ -4667,7 +4667,7 @@ Move_ICE_PUNCH: createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 0, 7, RGB_BLACK createvisualtask AnimTask_BlendBattleAnimPal, 10, 4, 2, 0, 9, RGB(12, 26, 31) delay 20 - playsewithpan SE_W081, SOUND_PAN_TARGET + playsewithpan SE_M_STRING_SHOT, SOUND_PAN_TARGET createsprite gIceCrystalSpiralInwardSmall, ANIM_ATTACKER, 2, 0 createsprite gIceCrystalSpiralInwardSmall, ANIM_ATTACKER, 2, 64 createsprite gIceCrystalSpiralInwardSmall, ANIM_ATTACKER, 2, 128 @@ -4680,7 +4680,7 @@ Move_ICE_PUNCH: delay 17 createsprite gFistFootSpriteTemplate, ANIM_ATTACKER, 4, 0, -10, 8, 1, 0 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, -10, ANIM_TARGET, 1 - playsewithpan SE_W004, SOUND_PAN_TARGET + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET delay 2 createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 5, 3, 1 waitforvisualfinish @@ -4696,7 +4696,7 @@ Move_ICE_PUNCH: end Move_REST: - playsewithpan SE_W173, SOUND_PAN_ATTACKER + playsewithpan SE_M_SNORE, SOUND_PAN_ATTACKER loadspritegfx ANIM_TAG_LETTER_Z createsprite gSleepLetterZSpriteTemplate, ANIM_ATTACKER, 2, 4, -10, 16, 0, 0 delay 20 @@ -4713,7 +4713,7 @@ Move_CONFUSION: createvisualtask AnimTask_ShakeMon2, 2, ANIM_ATTACKER, 1, 0, 10, 1 createvisualtask AnimTask_BlendColorCycle, 2, 2, 0, 2, 0, 8, RGB_WHITE waitforvisualfinish - playsewithpan SE_W048, SOUND_PAN_TARGET + playsewithpan SE_M_SUPERSONIC, SOUND_PAN_TARGET createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 15, 1 createvisualtask AnimTask_ScaleMonAndRestore, 5, -4, -4, 15, ANIM_TARGET, 1 waitforvisualfinish @@ -4730,7 +4730,7 @@ Move_PSYCHIC: createvisualtask AnimTask_ShakeMon2, 2, ANIM_ATTACKER, 1, 0, 10, 1 createvisualtask AnimTask_BlendColorCycle, 2, 2, 0, 2, 0, 8, RGB(31, 23, 0) waitforvisualfinish - loopsewithpan SE_W048, SOUND_PAN_TARGET, 10, 3 + loopsewithpan SE_M_SUPERSONIC, SOUND_PAN_TARGET, 10, 3 createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 5, 0, 15, 1 createvisualtask AnimTask_ScaleMonAndRestore, 5, -6, -6, 15, ANIM_TARGET, 1 waitforvisualfinish @@ -4749,10 +4749,10 @@ FutureSightContinue: end FutureSight: monbg ANIM_ATK_PARTNER - playsewithpan SE_W060, SOUND_PAN_ATTACKER + playsewithpan SE_M_PSYBEAM, SOUND_PAN_ATTACKER call SetPsychicBackground setalpha 8, 8 - playsewithpan SE_W048, SOUND_PAN_ATTACKER + playsewithpan SE_M_SUPERSONIC, SOUND_PAN_ATTACKER createvisualtask AnimTask_BlendColorCycle, 2, 2, 0, 2, 0, 8, RGB_WHITE createvisualtask AnimTask_ScaleMonAndRestore, 5, -4, -4, 15, ANIM_ATTACKER, 1 waitforvisualfinish @@ -4769,7 +4769,7 @@ Move_THUNDER: createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 2, 0, 16, RGB_BLACK delay 16 createvisualtask AnimTask_InvertScreenColor, 2, 257, 257, 257 - playsewithpan SE_W086, SOUND_PAN_TARGET + playsewithpan SE_M_THUNDER_WAVE, SOUND_PAN_TARGET delay 1 createsprite gLightningSpriteTemplate, ANIM_TARGET, 2, 16, -36 delay 1 @@ -4778,12 +4778,12 @@ Move_THUNDER: createsprite gLightningSpriteTemplate, ANIM_TARGET, 2, 16, 12 delay 20 createsprite gLightningSpriteTemplate, ANIM_TARGET, 6, -16, -32 - playsewithpan SE_W086, SOUND_PAN_TARGET + playsewithpan SE_M_THUNDER_WAVE, SOUND_PAN_TARGET delay 1 createsprite gLightningSpriteTemplate, ANIM_TARGET, 6, -16, -16 delay 1 createsprite gLightningSpriteTemplate, ANIM_TARGET, 6, -16, 16 - playsewithpan SE_W086, SOUND_PAN_TARGET + playsewithpan SE_M_THUNDER_WAVE, SOUND_PAN_TARGET delay 5 createvisualtask AnimTask_InvertScreenColor, 2, 257, 257, 257 delay 1 @@ -4798,7 +4798,7 @@ Move_THUNDER: createvisualtask AnimTask_InvertScreenColor, 2, 257, 257, 257 delay 1 createsprite gLightningSpriteTemplate, ANIM_TARGET, 2, 0, -32 - playsewithpan SE_W161B, SOUND_PAN_TARGET + playsewithpan SE_M_TRI_ATTACK2, SOUND_PAN_TARGET delay 1 createsprite gLightningSpriteTemplate, ANIM_TARGET, 2, 0, -16 delay 1 @@ -4826,7 +4826,7 @@ Move_THUNDER_PUNCH: setalpha 12, 8 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 2, 0, 16, RGB_BLACK waitforvisualfinish - playsewithpan SE_W004, SOUND_PAN_TARGET + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET createsprite gFistFootSpriteTemplate, ANIM_TARGET, 4, 0, 0, 8, 1, 0 createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, ANIM_TARGET, 1 delay 1 @@ -4838,7 +4838,7 @@ Move_THUNDER_PUNCH: delay 1 createsprite gLightningSpriteTemplate, ANIM_ATTACKER, 2, 0, 16 delay 1 - playsewithpan SE_W161B, SOUND_PAN_TARGET + playsewithpan SE_M_TRI_ATTACK2, SOUND_PAN_TARGET createvisualtask AnimTask_InvertScreenColor, 2, 257, 257, 257 delay 2 createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 0, 3, 15, 1 @@ -4854,7 +4854,7 @@ Move_THUNDER_PUNCH: Move_SACRED_FIRE: loadspritegfx ANIM_TAG_FIRE loadspritegfx ANIM_TAG_FIRE_PLUME - loopsewithpan SE_W221, SOUND_PAN_ATTACKER, 7, 5 + loopsewithpan SE_M_SACRED_FIRE, SOUND_PAN_ATTACKER, 7, 5 createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 2, -32, 0, 50, 5, -2, 0 delay 1 createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 66, -20, -10, 50, 5, -1, -1 @@ -4875,13 +4875,13 @@ Move_SACRED_FIRE: createvisualtask AnimTask_InvertScreenColor, 2, 257, 257, 257 delay 1 waitforvisualfinish - playsewithpan SE_W221B, SOUND_PAN_TARGET + playsewithpan SE_M_SACRED_FIRE2, SOUND_PAN_TARGET createsprite gLargeFlameSpriteTemplate, ANIM_TARGET, 2, -16, 0, 70, 16, 0, 1 delay 10 - playsewithpan SE_W221B, SOUND_PAN_TARGET + playsewithpan SE_M_SACRED_FIRE2, SOUND_PAN_TARGET createsprite gLargeFlameSpriteTemplate, ANIM_TARGET, 2, 0, 0, 70, 16, 0, 1 delay 10 - playsewithpan SE_W221B, SOUND_PAN_TARGET + playsewithpan SE_M_SACRED_FIRE2, SOUND_PAN_TARGET createsprite gLargeFlameSpriteTemplate, ANIM_TARGET, 2, 16, 0, 80, 16, 0, 1 delay 1 createvisualtask AnimTask_InvertScreenColor, 2, 257, 257, 257 @@ -4889,7 +4889,7 @@ Move_SACRED_FIRE: waitforvisualfinish createvisualtask AnimTask_InvertScreenColor, 2, 257, 257, 257 delay 1 - playsewithpan SE_W172B, SOUND_PAN_TARGET + playsewithpan SE_M_FLAME_WHEEL2, SOUND_PAN_TARGET createsprite gLargeFlameScatterSpriteTemplate, ANIM_TARGET, 2, 0, 0, 30, 30, -1, 0 delay 1 createsprite gLargeFlameScatterSpriteTemplate, ANIM_TARGET, 2, 0, 0, 30, 30, 0, 1 @@ -4912,7 +4912,7 @@ Move_SCRATCH: loadspritegfx ANIM_TAG_SCRATCH monbg ANIM_TARGET setalpha 12, 8 - playsewithpan SE_W010, SOUND_PAN_TARGET + playsewithpan SE_M_SCRATCH, SOUND_PAN_TARGET createsprite gScratchSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1, 0 createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 6, 1 waitforvisualfinish @@ -4925,7 +4925,7 @@ Move_DRAGON_BREATH: loadspritegfx ANIM_TAG_SMALL_EMBER monbg ANIM_DEF_PARTNER monbgprio_28 ANIM_TARGET - loopsewithpan SE_W172, SOUND_PAN_ATTACKER, 7, 7 + loopsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER, 7, 7 createsprite gDragonBreathFireSpriteTemplate, ANIM_TARGET, 2, 0, 0, 0, 0, 20 delay 2 createsprite gDragonBreathFireSpriteTemplate, ANIM_TARGET, 2, 0, 0, 0, 0, 20 @@ -5007,7 +5007,7 @@ Move_SNORE: blendoff end SnoreEffect: - playsewithpan SE_W173, SOUND_PAN_ATTACKER + playsewithpan SE_M_SNORE, SOUND_PAN_ATTACKER createvisualtask AnimTask_ScaleMonAndRestore, 5, -7, -7, 7, ANIM_ATTACKER, 1 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 4, 0, 7, 1 createsprite gShakeMonOrTerrainSpriteTemplate, ANIM_ATTACKER, 2, 6, 1, 14, 0, 0 @@ -5020,7 +5020,7 @@ Move_LIGHT_SCREEN: loadspritegfx ANIM_TAG_SPARKLE_3 loadspritegfx ANIM_TAG_GREEN_LIGHT_WALL setalpha 0, 16 - waitplaysewithpan SE_W115, SOUND_PAN_ATTACKER, 15 + waitplaysewithpan SE_M_REFLECT, SOUND_PAN_ATTACKER, 15 createsprite gLightScreenWallSpriteTemplate, ANIM_ATTACKER, 1, 40, 0, ANIM_TAG_GREEN_LIGHT_WALL delay 10 call SpecialScreenSparkle @@ -5049,7 +5049,7 @@ Move_MIRROR_COAT: setalpha 0, 16 createsprite gMirrorCoatWallSpriteTemplate, ANIM_ATTACKER, 1, 40, 0, ANIM_TAG_RED_LIGHT_WALL delay 10 - playsewithpan SE_W115, SOUND_PAN_ATTACKER + playsewithpan SE_M_REFLECT, SOUND_PAN_ATTACKER call SpecialScreenSparkle waitforvisualfinish delay 1 @@ -5060,7 +5060,7 @@ Move_REFLECT: loadspritegfx ANIM_TAG_SPARKLE_4 loadspritegfx ANIM_TAG_BLUE_LIGHT_WALL setalpha 0, 16 - waitplaysewithpan SE_W115, SOUND_PAN_ATTACKER, 15 + waitplaysewithpan SE_M_REFLECT, SOUND_PAN_ATTACKER, 15 createsprite gReflectWallSpriteTemplate, ANIM_ATTACKER, 1, 40, 0, ANIM_TAG_BLUE_LIGHT_WALL delay 20 createsprite gReflectSparkleSpriteTemplate, ANIM_ATTACKER, 2, 30, 0, ANIM_ATTACKER, 1 @@ -5076,7 +5076,7 @@ Move_REFLECT: Move_BARRIER: loadspritegfx ANIM_TAG_GRAY_LIGHT_WALL setalpha 0, 16 - waitplaysewithpan SE_W112, SOUND_PAN_ATTACKER, 15 + waitplaysewithpan SE_M_BARRIER, SOUND_PAN_ATTACKER, 15 createsprite gBarrierWallSpriteTemplate, ANIM_ATTACKER, 3, 40, 0, ANIM_TAG_GRAY_LIGHT_WALL waitforvisualfinish delay 1 @@ -5090,28 +5090,28 @@ Move_BUBBLE: setalpha 12, 8 delay 1 createsprite gWaterBubbleProjectileSpriteTemplate, ANIM_ATTACKER, 2, 18, 0, 15, -15, 10, 128, 100 - playsewithpan SE_W145, SOUND_PAN_ATTACKER - waitplaysewithpan SE_W145B, SOUND_PAN_TARGET, 100 + playsewithpan SE_M_BUBBLE, SOUND_PAN_ATTACKER + waitplaysewithpan SE_M_BUBBLE2, SOUND_PAN_TARGET, 100 delay 6 createsprite gWaterBubbleProjectileSpriteTemplate, ANIM_ATTACKER, 2, 18, 0, 35, 37, 40, 128, 100 - playsewithpan SE_W145, SOUND_PAN_ATTACKER - waitplaysewithpan SE_W145B, SOUND_PAN_TARGET, 100 + playsewithpan SE_M_BUBBLE, SOUND_PAN_ATTACKER + waitplaysewithpan SE_M_BUBBLE2, SOUND_PAN_TARGET, 100 delay 6 createsprite gWaterBubbleProjectileSpriteTemplate, ANIM_ATTACKER, 2, 18, 0, 10, -37, 30, 128, 100 - playsewithpan SE_W145, SOUND_PAN_ATTACKER - waitplaysewithpan SE_W145B, SOUND_PAN_TARGET, 100 + playsewithpan SE_M_BUBBLE, SOUND_PAN_ATTACKER + waitplaysewithpan SE_M_BUBBLE2, SOUND_PAN_TARGET, 100 delay 6 createsprite gWaterBubbleProjectileSpriteTemplate, ANIM_ATTACKER, 2, 18, 0, 30, 10, 15, 128, 100 - playsewithpan SE_W145, SOUND_PAN_ATTACKER - waitplaysewithpan SE_W145B, SOUND_PAN_TARGET, 100 + playsewithpan SE_M_BUBBLE, SOUND_PAN_ATTACKER + waitplaysewithpan SE_M_BUBBLE2, SOUND_PAN_TARGET, 100 delay 6 createsprite gWaterBubbleProjectileSpriteTemplate, ANIM_ATTACKER, 2, 18, 0, 20, 33, 20, 128, 100 - playsewithpan SE_W145, SOUND_PAN_ATTACKER - waitplaysewithpan SE_W145B, SOUND_PAN_TARGET, 100 + playsewithpan SE_M_BUBBLE, SOUND_PAN_ATTACKER + waitplaysewithpan SE_M_BUBBLE2, SOUND_PAN_TARGET, 100 delay 6 createsprite gWaterBubbleProjectileSpriteTemplate, ANIM_ATTACKER, 2, 18, 0, 25, -30, 10, 128, 100 - playsewithpan SE_W145, SOUND_PAN_ATTACKER - waitplaysewithpan SE_W145B, SOUND_PAN_TARGET, 100 + playsewithpan SE_M_BUBBLE, SOUND_PAN_ATTACKER + waitplaysewithpan SE_M_BUBBLE2, SOUND_PAN_TARGET, 100 waitforvisualfinish call WaterBubblesEffectLong waitforvisualfinish @@ -5124,7 +5124,7 @@ Move_SMOG: monbg ANIM_DEF_PARTNER monbgprio_29 setalpha 12, 8 - loopsewithpan SE_W054, SOUND_PAN_TARGET, 17, 10 + loopsewithpan SE_M_MIST, SOUND_PAN_TARGET, 17, 10 call SmogCloud call SmogCloud call SmogCloud @@ -5133,7 +5133,7 @@ Move_SMOG: call SmogCloud call SmogCloud delay 120 - loopsewithpan SE_W092, SOUND_PAN_TARGET, 18, 2 + loopsewithpan SE_M_TOXIC, SOUND_PAN_TARGET, 18, 2 createvisualtask AnimTask_BlendColorCycle, 2, 4, 2, 2, 0, 12, RGB(26, 0, 26) delay 10 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 15, 1 @@ -5152,7 +5152,7 @@ Move_FAINT_ATTACK: fadetobg BG_DARK waitbgfadein delay 0 - playsewithpan SE_W185, SOUND_PAN_ATTACKER + playsewithpan SE_M_FAINT_ATTACK, SOUND_PAN_ATTACKER createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_ATTACKER, 18, 6, 1, 3 createvisualtask AnimTask_AttackerFadeToInvisible, 2, 1 waitforvisualfinish @@ -5163,7 +5163,7 @@ Move_FAINT_ATTACK: setalpha 12, 8 monbg ANIM_TARGET delay 1 - playsewithpan SE_W233B, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 1 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 9, 1 waitforvisualfinish @@ -5187,7 +5187,7 @@ Move_SAND_ATTACK: monbg ANIM_ATK_PARTNER monbgprio_28 ANIM_ATTACKER setalpha 12, 8 - playsewithpan SE_W028, SOUND_PAN_ATTACKER + playsewithpan SE_M_SAND_ATTACK, SOUND_PAN_ATTACKER createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 0, -10, 0, 0, 3 waitforvisualfinish createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 2 @@ -5212,7 +5212,7 @@ SandAttackDirt: Move_MUD_SLAP: loadspritegfx ANIM_TAG_MUD_SAND - playsewithpan SE_W028, SOUND_PAN_ATTACKER + playsewithpan SE_M_SAND_ATTACK, SOUND_PAN_ATTACKER createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 0, -10, 0, 0, 3 waitforvisualfinish createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 2 @@ -5236,14 +5236,14 @@ MudSlapMud: Move_DRAGON_RAGE: loadspritegfx ANIM_TAG_SMALL_EMBER loadspritegfx ANIM_TAG_FIRE_PLUME - playsewithpan SE_W082, SOUND_PAN_ATTACKER + playsewithpan SE_M_DRAGON_RAGE, SOUND_PAN_ATTACKER createvisualtask AnimTask_ShakeMon, 5, ANIM_ATTACKER, 0, 2, 40, 1 waitforvisualfinish createsprite gSlideMonToOffsetSpriteTemplate, ANIM_TARGET, 2, 0, 15, 0, 0, 4 waitforvisualfinish createsprite gDragonRageFireSpitSpriteTemplate, ANIM_TARGET, 2, 30, 15, 0, 10, 10 waitforvisualfinish - loopsewithpan SE_W172B, SOUND_PAN_TARGET, 11, 3 + loopsewithpan SE_M_FLAME_WHEEL2, SOUND_PAN_TARGET, 11, 3 createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 3, 25, 1 createsprite gDragonRageFirePlumeSpriteTemplate, ANIM_TARGET, 66, 1, 5, 0 delay 1 @@ -5267,7 +5267,7 @@ Move_DRAGON_RAGE: Move_RAIN_DANCE: loadspritegfx ANIM_TAG_RAIN_DROPS - playsewithpan SE_W240, SOUND_PAN_ATTACKER + playsewithpan SE_M_RAIN_DANCE, SOUND_PAN_ATTACKER createvisualtask AnimTask_BlendBattleAnimPal, 10, 0x781, 2, 0, 4, RGB_BLACK waitforvisualfinish createvisualtask AnimTask_CreateRaindrops, 2, 0, 3, 120 @@ -5284,7 +5284,7 @@ Move_BITE: loadspritegfx ANIM_TAG_IMPACT monbg ANIM_TARGET setalpha 12, 8 - playsewithpan SE_W044, SOUND_PAN_TARGET + playsewithpan SE_M_BITE, SOUND_PAN_TARGET createsprite gSharpTeethSpriteTemplate, ANIM_ATTACKER, 2, 0, -32, 0, 0, 819, 10 createsprite gSharpTeethSpriteTemplate, ANIM_ATTACKER, 2, 0, 32, 4, 0, -819, 10 delay 10 @@ -5303,14 +5303,14 @@ Move_CRUNCH: fadetobg BG_DARK waitbgfadein setalpha 12, 8 - playsewithpan SE_W044, SOUND_PAN_TARGET + playsewithpan SE_M_BITE, SOUND_PAN_TARGET createsprite gSharpTeethSpriteTemplate, ANIM_ATTACKER, 2, -32, -32, 1, 819, 819, 10 createsprite gSharpTeethSpriteTemplate, ANIM_ATTACKER, 2, 32, 32, 5, -819, -819, 10 delay 10 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -8, 0, ANIM_TARGET, 1 createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 7, 5, 2 waitforvisualfinish - playsewithpan SE_W044, SOUND_PAN_TARGET + playsewithpan SE_M_BITE, SOUND_PAN_TARGET createsprite gSharpTeethSpriteTemplate, ANIM_ATTACKER, 2, 32, -32, 7, -819, 819, 10 createsprite gSharpTeethSpriteTemplate, ANIM_ATTACKER, 2, -32, 32, 3, 819, -819, 10 delay 10 @@ -5329,7 +5329,7 @@ Move_CLAMP: loadspritegfx ANIM_TAG_IMPACT monbg ANIM_TARGET setalpha 12, 8 - playsewithpan SE_W011, SOUND_PAN_TARGET + playsewithpan SE_M_VICEGRIP, SOUND_PAN_TARGET createsprite gClampJawSpriteTemplate, ANIM_ATTACKER, 2, -32, 0, 2, 819, 0, 10 createsprite gClampJawSpriteTemplate, ANIM_ATTACKER, 2, 32, 0, 6, -819, 0, 10 delay 10 @@ -5348,7 +5348,7 @@ Move_ICE_BEAM: loadspritegfx ANIM_TAG_ICE_CRYSTALS createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 0, 7, RGB_BLACK waitforvisualfinish - createsoundtask SoundTask_LoopSEAdjustPanning, SE_W062B, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, 4, 4, 0, 10 + createsoundtask SoundTask_LoopSEAdjustPanning, SE_M_BUBBLE_BEAM2, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, 4, 4, 0, 10 createsprite gIceBeamOuterCrystalSpriteTemplate, ANIM_ATTACKER, 2, 20, 12, 0, 12, 20 createsprite gIceBeamOuterCrystalSpriteTemplate, ANIM_ATTACKER, 2, 20, -12, 0, -12, 20 delay 1 @@ -5386,7 +5386,7 @@ IceBeamCreateCrystals: return Move_WITHDRAW: - playsewithpan SE_W029, SOUND_PAN_ATTACKER + playsewithpan SE_M_HEADBUTT, SOUND_PAN_ATTACKER createvisualtask AnimTask_Withdraw, 5 waitforvisualfinish end @@ -5395,7 +5395,7 @@ Move_AURORA_BEAM: loadspritegfx ANIM_TAG_RAINBOW_RINGS fadetobg BG_AURORA waitbgfadein - playsewithpan SE_W062, SOUND_PAN_ATTACKER + playsewithpan SE_M_BUBBLE_BEAM, SOUND_PAN_ATTACKER setarg 7, 0 createvisualtask AnimTask_RotateAuroraRingColors, 10, 130 call AuroraBeamCreateRings @@ -5404,7 +5404,7 @@ Move_AURORA_BEAM: call AuroraBeamCreateRings call AuroraBeamCreateRings setarg 7, 0xFFFF - createsoundtask SoundTask_LoopSEAdjustPanning, SE_W062B, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, 3, 6, 0, 10 + createsoundtask SoundTask_LoopSEAdjustPanning, SE_M_BUBBLE_BEAM2, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, 3, 6, 0, 10 createvisualtask AnimTask_ShakeMon2, 5, ANIM_TARGET, 2, 0, 40, 1 call AuroraBeamCreateRings call AuroraBeamCreateRings @@ -5437,7 +5437,7 @@ SolarBeamSetUp: monbg ANIM_ATK_PARTNER setalpha 12, 8 createvisualtask AnimTask_BlendColorCycle, 2, 2, 1, 4, 0, 11, RGB(31, 31, 11) - playsewithpan SE_W025, SOUND_PAN_ATTACKER + playsewithpan SE_M_MEGA_KICK, SOUND_PAN_ATTACKER call SolarBeamAbsorbEffect waitforvisualfinish clearmonbg ANIM_ATK_PARTNER @@ -5475,7 +5475,7 @@ SolarBeamAbsorbEffect: return SolarBeamUnleash: call SetSolarbeamBg - panse_1B SE_W076, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 + panse_1B SE_M_SOLAR_BEAM, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 createvisualtask AnimTask_CreateSmallSolarbeamOrbs, 5 createsprite gSolarbeamBigOrbSpriteTemplate, ANIM_TARGET, 3, 15, 0, 20, 0 delay 4 @@ -5527,10 +5527,10 @@ BlizzardContinue: createvisualtask AnimTask_StartSlidingBg, 5, -2304, 0, 1, -1 waitbgfadein waitforvisualfinish - panse_1B SE_W059, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 + panse_1B SE_M_BLIZZARD, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 call BlizzardIceCrystals call BlizzardIceCrystals - playsewithpan SE_W059B, SOUND_PAN_TARGET + playsewithpan SE_M_BLIZZARD2, SOUND_PAN_TARGET waitforvisualfinish call IceCrystalEffectLong waitforvisualfinish @@ -5573,10 +5573,10 @@ Move_POWDER_SNOW: monbg ANIM_DEF_PARTNER createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 1, 0, 3, RGB_BLACK waitforvisualfinish - panse_1B SE_W016, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 + panse_1B SE_M_GUST, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 call PowderSnowSnowballs call PowderSnowSnowballs - playsewithpan SE_W016B, SOUND_PAN_TARGET + playsewithpan SE_M_GUST2, SOUND_PAN_TARGET waitforvisualfinish waitsound call IceCrystalEffectLong @@ -5610,7 +5610,7 @@ Move_HYDRO_PUMP: setalpha 12, 8 createvisualtask AnimTask_ShakeMon, 5, ANIM_ATTACKER, 0, 2, 40, 1 delay 6 - panse_1B SE_W056, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 + panse_1B SE_M_HYDRO_PUMP, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 createvisualtask AnimTask_StartSinAnimTimer, 5, 100 call HydroPumpBeams call HydroPumpBeams @@ -5655,7 +5655,7 @@ Move_SIGNAL_BEAM: loadspritegfx ANIM_TAG_DUCK createvisualtask AnimTask_ShakeMon, 5, ANIM_ATTACKER, 0, 2, 25, 1 delay 6 - panse_1B SE_W062, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +1, 0 + panse_1B SE_M_BUBBLE_BEAM, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +1, 0 createvisualtask AnimTask_StartSinAnimTimer, 5, 100 call SignalBeamOrbs call SignalBeamOrbs @@ -5699,7 +5699,7 @@ Move_ABSORB: setalpha 12, 8 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 0, 4, RGB(13, 31, 12) waitforvisualfinish - playsewithpan SE_W071, SOUND_PAN_TARGET + playsewithpan SE_M_ABSORB, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 2 delay 2 createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 5, 5, 1 @@ -5717,28 +5717,28 @@ Move_ABSORB: end AbsorbEffect: - playsewithpan SE_W152, SOUND_PAN_TARGET + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, 5, 8, 26 delay 4 - playsewithpan SE_W152, SOUND_PAN_TARGET + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 10, -5, -8, 26 delay 4 - playsewithpan SE_W152, SOUND_PAN_TARGET + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, -5, 15, 16, 33 delay 4 - playsewithpan SE_W152, SOUND_PAN_TARGET + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, -15, -16, 36 delay 4 - playsewithpan SE_W152, SOUND_PAN_TARGET + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, 5, 8, 26 delay 4 - playsewithpan SE_W152, SOUND_PAN_TARGET + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 10, -5, -8, 26 delay 4 - playsewithpan SE_W152, SOUND_PAN_TARGET + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, -10, 20, 20, 39 delay 4 - playsewithpan SE_W152, SOUND_PAN_TARGET + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 5, -18, -20, 35 delay 4 return @@ -5752,7 +5752,7 @@ Move_MEGA_DRAIN: setalpha 12, 8 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 0, 8, RGB(13, 31, 12) waitforvisualfinish - playsewithpan SE_W071, SOUND_PAN_TARGET + playsewithpan SE_M_ABSORB, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 1 delay 2 createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 5, 5, 1 @@ -5770,35 +5770,35 @@ Move_MEGA_DRAIN: end MegaDrainAbsorbEffect: - playsewithpan SE_W145C, SOUND_PAN_TARGET + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, 5, 8, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 5, -18, -20, 35 delay 4 - playsewithpan SE_W145C, SOUND_PAN_TARGET + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 10, -5, -8, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, -10, 20, 20, 39 delay 4 - playsewithpan SE_W145C, SOUND_PAN_TARGET + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, -5, 15, 16, 33 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 10, -5, -8, 26 delay 4 - playsewithpan SE_W145C, SOUND_PAN_TARGET + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, -15, -16, 36 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, 5, 8, 26 delay 4 - playsewithpan SE_W145C, SOUND_PAN_TARGET + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, 5, 8, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, -15, -16, 36 delay 4 - playsewithpan SE_W145C, SOUND_PAN_TARGET + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 10, -5, -8, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, -5, 15, 16, 33 delay 4 - playsewithpan SE_W145C, SOUND_PAN_TARGET + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, -10, 20, 20, 39 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 10, -5, -8, 26 delay 4 - playsewithpan SE_W145C, SOUND_PAN_TARGET + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, 5, 8, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 5, -18, -20, 35 delay 4 @@ -5813,7 +5813,7 @@ Move_GIGA_DRAIN: setalpha 12, 8 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 0, 12, RGB(13, 31, 12) waitforvisualfinish - playsewithpan SE_W071, SOUND_PAN_TARGET + playsewithpan SE_M_ABSORB, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 0 delay 2 createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 5, 5, 1 @@ -5831,42 +5831,42 @@ Move_GIGA_DRAIN: end GigaDrainAbsorbEffect: - playsewithpan SE_W202, SOUND_PAN_TARGET + playsewithpan SE_M_GIGA_DRAIN, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, 5, 8, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 5, -18, -40, 35 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, -10, 20, 20, 39 delay 4 - playsewithpan SE_W202, SOUND_PAN_TARGET + playsewithpan SE_M_GIGA_DRAIN, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, 5, 28, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 10, -5, -8, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, -10, 20, 40, 39 delay 4 - playsewithpan SE_W202, SOUND_PAN_TARGET + playsewithpan SE_M_GIGA_DRAIN, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 10, -5, -8, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, -5, 15, 16, 33 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 10, -5, -32, 26 delay 4 - playsewithpan SE_W202, SOUND_PAN_TARGET + playsewithpan SE_M_GIGA_DRAIN, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, -15, -16, 36 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, 5, 8, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 10, -5, -8, 26 delay 4 - playsewithpan SE_W202, SOUND_PAN_TARGET + playsewithpan SE_M_GIGA_DRAIN, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, -5, 15, 16, 33 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, -15, -16, 36 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, 5, 8, 26 delay 4 - playsewithpan SE_W202, SOUND_PAN_TARGET + playsewithpan SE_M_GIGA_DRAIN, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, 5, 8, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, -5, 15, 16, 33 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 10, -5, -40, 26 delay 4 - playsewithpan SE_W202, SOUND_PAN_TARGET + playsewithpan SE_M_GIGA_DRAIN, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, -5, 15, 36, 33 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 10, -5, -8, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, -10, 20, 20, 39 delay 4 - playsewithpan SE_W202, SOUND_PAN_TARGET + playsewithpan SE_M_GIGA_DRAIN, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, 5, 8, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, 5, 8, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 5, -18, -20, 35 @@ -5886,7 +5886,7 @@ Move_LEECH_LIFE: createsprite gLeechLifeNeedleSpriteTemplate, ANIM_ATTACKER, 2, -20, 15, 12 waitforvisualfinish createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 2 - playsewithpan SE_W071, SOUND_PAN_TARGET + playsewithpan SE_M_ABSORB, SOUND_PAN_TARGET delay 2 createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 5, 5, 1 waitforvisualfinish @@ -5906,7 +5906,7 @@ Move_LEECH_LIFE: Move_SYNTHESIS: loadspritegfx ANIM_TAG_SPARKLE_2 createvisualtask AnimTask_BlendColorCycle, 2, 2, 2, 2, 0, 16, RGB(27, 31, 18) - playsewithpan SE_W025, SOUND_PAN_ATTACKER + playsewithpan SE_M_MEGA_KICK, SOUND_PAN_ATTACKER call GrantingStarsEffect waitforvisualfinish unloadspritegfx ANIM_TAG_SPARKLE_2 @@ -5928,22 +5928,22 @@ Move_TOXIC: end ToxicBubbles: createsprite gToxicBubbleSpriteTemplate, ANIM_TARGET, 2, -24, 16, 1, 1 - playsewithpan SE_W092, SOUND_PAN_TARGET + playsewithpan SE_M_TOXIC, SOUND_PAN_TARGET delay 15 createsprite gToxicBubbleSpriteTemplate, ANIM_TARGET, 2, 8, 16, 1, 1 - playsewithpan SE_W092, SOUND_PAN_TARGET + playsewithpan SE_M_TOXIC, SOUND_PAN_TARGET delay 15 createsprite gToxicBubbleSpriteTemplate, ANIM_TARGET, 2, -8, 16, 1, 1 - playsewithpan SE_W092, SOUND_PAN_TARGET + playsewithpan SE_M_TOXIC, SOUND_PAN_TARGET delay 15 createsprite gToxicBubbleSpriteTemplate, ANIM_TARGET, 2, 24, 16, 1, 1 - playsewithpan SE_W092, SOUND_PAN_TARGET + playsewithpan SE_M_TOXIC, SOUND_PAN_TARGET delay 15 return Move_SLUDGE: loadspritegfx ANIM_TAG_POISON_BUBBLE - playsewithpan SE_W145C, SOUND_PAN_ATTACKER + playsewithpan SE_M_BUBBLE3, SOUND_PAN_ATTACKER createsprite gSludgeProjectileSpriteTemplate, ANIM_TARGET, 2, 20, 0, 40, 0 waitforvisualfinish createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 3, 0, 5, 1 @@ -5970,19 +5970,19 @@ Move_SLUDGE_BOMB: createsprite gSludgeBombHitParticleSpriteTemplate, ANIM_TARGET, 2, -27, 44, 20 createsprite gSludgeBombHitParticleSpriteTemplate, ANIM_TARGET, 2, 39, -28, 20 createsprite gSludgeBombHitParticleSpriteTemplate, ANIM_TARGET, 2, -42, -42, 20 - playsewithpan SE_W091, SOUND_PAN_TARGET + playsewithpan SE_M_DIG, SOUND_PAN_TARGET delay 5 createsprite gSludgeBombHitParticleSpriteTemplate, ANIM_TARGET, 2, 0, 40, 20 createsprite gSludgeBombHitParticleSpriteTemplate, ANIM_TARGET, 2, -8, -44, 20 createsprite gSludgeBombHitParticleSpriteTemplate, ANIM_TARGET, 2, -46, -28, 20 createsprite gSludgeBombHitParticleSpriteTemplate, ANIM_TARGET, 2, 46, 9, 20 - playsewithpan SE_W091, SOUND_PAN_TARGET + playsewithpan SE_M_DIG, SOUND_PAN_TARGET delay 5 createsprite gSludgeBombHitParticleSpriteTemplate, ANIM_TARGET, 2, 42, 0, 20 createsprite gSludgeBombHitParticleSpriteTemplate, ANIM_TARGET, 2, -43, -12, 20 createsprite gSludgeBombHitParticleSpriteTemplate, ANIM_TARGET, 2, 16, -46, 20 createsprite gSludgeBombHitParticleSpriteTemplate, ANIM_TARGET, 2, -16, 44, 20 - playsewithpan SE_W091, SOUND_PAN_TARGET + playsewithpan SE_M_DIG, SOUND_PAN_TARGET delay 0 waitsound waitforvisualfinish @@ -5990,7 +5990,7 @@ Move_SLUDGE_BOMB: waitforvisualfinish end SludgeBombProjectile: - playsewithpan SE_W145C, SOUND_PAN_ATTACKER + playsewithpan SE_M_BUBBLE3, SOUND_PAN_ATTACKER createsprite gSludgeProjectileSpriteTemplate, ANIM_TARGET, 2, 20, 0, 40, 0 delay 3 return @@ -5999,31 +5999,31 @@ Move_ACID: loadspritegfx ANIM_TAG_POISON_BUBBLE monbg ANIM_DEF_PARTNER createsprite gAcidPoisonBubbleSpriteTemplate, ANIM_TARGET, 2, 20, 0, 40, 1, 0, 0 - playsewithpan SE_W145C, SOUND_PAN_ATTACKER + playsewithpan SE_M_BUBBLE3, SOUND_PAN_ATTACKER delay 5 createsprite gAcidPoisonBubbleSpriteTemplate, ANIM_TARGET, 2, 20, 0, 40, 1, 24, 0 - playsewithpan SE_W145C, SOUND_PAN_ATTACKER + playsewithpan SE_M_BUBBLE3, SOUND_PAN_ATTACKER delay 5 createsprite gAcidPoisonBubbleSpriteTemplate, ANIM_TARGET, 2, 20, 0, 40, 1, -24, 0 - playsewithpan SE_W145C, SOUND_PAN_ATTACKER + playsewithpan SE_M_BUBBLE3, SOUND_PAN_ATTACKER delay 15 createvisualtask AnimTask_ShakeMon2, 5, ANIM_TARGET, 2, 0, 10, 1 createvisualtask AnimTask_ShakeMon2, 5, ANIM_DEF_PARTNER, 2, 0, 10, 1 createvisualtask AnimTask_BlendColorCycle, 2, 20, 2, 2, 0, 12, RGB(30, 0, 31) createsprite gAcidPoisonDropletSpriteTemplate, ANIM_TARGET, 2, 0, -22, 0, 15, 55 - playsewithpan SE_W145, SOUND_PAN_TARGET + playsewithpan SE_M_BUBBLE, SOUND_PAN_TARGET delay 10 createsprite gAcidPoisonDropletSpriteTemplate, ANIM_TARGET, 2, -26, -24, 0, 15, 55 - playsewithpan SE_W145, SOUND_PAN_TARGET + playsewithpan SE_M_BUBBLE, SOUND_PAN_TARGET delay 10 createsprite gAcidPoisonDropletSpriteTemplate, ANIM_TARGET, 2, 15, -27, 0, 15, 50 - playsewithpan SE_W145, SOUND_PAN_TARGET + playsewithpan SE_M_BUBBLE, SOUND_PAN_TARGET delay 10 createsprite gAcidPoisonDropletSpriteTemplate, ANIM_TARGET, 2, -15, -17, 0, 10, 45 - playsewithpan SE_W145, SOUND_PAN_TARGET + playsewithpan SE_M_BUBBLE, SOUND_PAN_TARGET delay 10 createsprite gAcidPoisonDropletSpriteTemplate, ANIM_TARGET, 2, 27, -22, 0, 15, 50 - playsewithpan SE_W145, SOUND_PAN_TARGET + playsewithpan SE_M_BUBBLE, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_DEF_PARTNER end @@ -6034,14 +6034,14 @@ Move_BONEMERANG: monbg ANIM_DEF_PARTNER monbgprio_28 ANIM_TARGET setalpha 12, 8 - playsewithpan SE_W155, SOUND_PAN_ATTACKER + playsewithpan SE_M_BONEMERANG, SOUND_PAN_ATTACKER createsprite gBonemerangSpriteTemplate, ANIM_ATTACKER, 2 delay 20 - playsewithpan SE_W030, SOUND_PAN_TARGET + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 1 createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 5, 0, 5, 1 delay 17 - playsewithpan SE_W233, SOUND_PAN_ATTACKER + playsewithpan SE_M_VITAL_THROW, SOUND_PAN_ATTACKER createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 6, -4 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER @@ -6054,13 +6054,13 @@ Move_BONE_CLUB: monbg ANIM_DEF_PARTNER monbgprio_28 ANIM_TARGET setalpha 12, 8 - playsewithpan SE_W155, SOUND_PAN_TARGET + playsewithpan SE_M_BONEMERANG, SOUND_PAN_TARGET createsprite gSpinningBoneSpriteTemplate, ANIM_ATTACKER, 2, -42, -25, 0, 0, 15 delay 12 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 1 createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 5, 5, 1 createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 7, 5, 1, RGB_BLACK, 10, 0, 0 - playsewithpan SE_W233B, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff @@ -6071,12 +6071,12 @@ Move_BONE_RUSH: loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER setalpha 12, 8 - playsewithpan SE_W155, SOUND_PAN_TARGET + playsewithpan SE_M_BONEMERANG, SOUND_PAN_TARGET createsprite gSpinningBoneSpriteTemplate, ANIM_ATTACKER, 2, -42, -25, 0, 0, 15 delay 12 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 2 createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 3, 5, 1 - playsewithpan SE_W030, SOUND_PAN_TARGET + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff @@ -6085,15 +6085,15 @@ Move_BONE_RUSH: Move_SPIKES: loadspritegfx ANIM_TAG_SPIKES monbg ANIM_DEF_PARTNER - playsewithpan SE_W026, SOUND_PAN_ATTACKER - waitplaysewithpan SE_W030, SOUND_PAN_TARGET, 28 + playsewithpan SE_M_JUMP_KICK, SOUND_PAN_ATTACKER + waitplaysewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET, 28 createsprite gSpikesSpriteTemplate, ANIM_TARGET, 2, 20, 0, 0, 24, 30 delay 10 - playsewithpan SE_W026, SOUND_PAN_ATTACKER - waitplaysewithpan SE_W030, SOUND_PAN_TARGET, 28 + playsewithpan SE_M_JUMP_KICK, SOUND_PAN_ATTACKER + waitplaysewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET, 28 createsprite gSpikesSpriteTemplate, ANIM_TARGET, 2, 20, 0, -24, 24, 30 delay 10 - waitplaysewithpan SE_W030, SOUND_PAN_TARGET, 28 + waitplaysewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET, 28 createsprite gSpikesSpriteTemplate, ANIM_TARGET, 2, 20, 0, 24, 24, 30 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER @@ -6103,7 +6103,7 @@ Move_MEGAHORN: loadspritegfx ANIM_TAG_HORN_HIT_2 loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER - playsewithpan SE_W082, SOUND_PAN_ATTACKER + playsewithpan SE_M_DRAGON_RAGE, SOUND_PAN_ATTACKER jumpifcontest MegahornInContest fadetobg BG_DRILL waitbgfadeout @@ -6118,7 +6118,7 @@ MegahornContinue: delay 3 createsprite gMegahornHornSpriteTemplate, ANIM_ATTACKER, 3, -42, 25, 0, 0, 6 delay 4 - playsewithpan SE_W011, SOUND_PAN_TARGET + playsewithpan SE_M_VICEGRIP, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 0 createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 1, -16, 4, 1, 4 waitforvisualfinish @@ -6148,13 +6148,13 @@ Move_GUST: monbg ANIM_DEF_PARTNER monbgprio_28 ANIM_TARGET setalpha 12, 8 - playsewithpan SE_W016, SOUND_PAN_TARGET + playsewithpan SE_M_GUST, SOUND_PAN_TARGET createsprite gEllipticalGustSpriteTemplate, ANIM_ATTACKER, 2, 0, -16 createvisualtask AnimTask_AnimateGustTornadoPalette, 5, 1, 70 waitforvisualfinish createvisualtask AnimTask_ShakeMon2, 5, ANIM_TARGET, 1, 0, 7, 1 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 2 - playsewithpan SE_W016B, SOUND_PAN_TARGET + playsewithpan SE_M_GUST2, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff @@ -6166,7 +6166,7 @@ Move_WING_ATTACK: monbg ANIM_DEF_PARTNER monbgprio_28 ANIM_TARGET setalpha 12, 8 - loopsewithpan SE_W017, SOUND_PAN_ATTACKER, 20, 2 + loopsewithpan SE_M_WING_ATTACK, SOUND_PAN_ATTACKER, 20, 2 createvisualtask AnimTask_TranslateMonElliptical, 2, 0, 12, 4, 1, 4 createvisualtask AnimTask_AnimateGustTornadoPalette, 5, 1, 70 createsprite gGustToTargetSpriteTemplate, ANIM_ATTACKER, 2, -25, 0, 0, 0, 20 @@ -6176,7 +6176,7 @@ Move_WING_ATTACK: delay 17 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 16, 0, ANIM_TARGET, 1 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -16, 0, ANIM_TARGET, 1 - loopsewithpan SE_W003, SOUND_PAN_TARGET, 5, 2 + loopsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET, 5, 2 waitforvisualfinish createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 11 waitforvisualfinish @@ -6186,7 +6186,7 @@ Move_WING_ATTACK: Move_PECK: loadspritegfx ANIM_TAG_IMPACT - playsewithpan SE_W030, SOUND_PAN_TARGET + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET createvisualtask AnimTask_RotateMonToSideAndRestore, 2, 3, -768, ANIM_TARGET, 2 createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, -12, 0, ANIM_TARGET, 3 waitforvisualfinish @@ -6207,7 +6207,7 @@ Move_AEROBLAST: call AeroblastBeam waitforvisualfinish createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 0 - playsewithpan SE_W013, SOUND_PAN_TARGET + playsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff @@ -6215,19 +6215,19 @@ Move_AEROBLAST: call UnsetSkyBg end AeroblastBeam: - playsewithpan SE_W026, SOUND_PAN_ATTACKER + playsewithpan SE_M_JUMP_KICK, SOUND_PAN_ATTACKER createsprite gAirWaveCrescentSpriteTemplate, ANIM_ATTACKER, 2, 14, -12, 0, -12, 15, 0, 0 createsprite gAirWaveCrescentSpriteTemplate, ANIM_ATTACKER, 2, 26, 8, 12, 8, 15, 0, 0 delay 3 - playsewithpan SE_W026, SOUND_PAN_ATTACKER + playsewithpan SE_M_JUMP_KICK, SOUND_PAN_ATTACKER createsprite gAirWaveCrescentSpriteTemplate, ANIM_ATTACKER, 2, 14, -12, 0, -12, 15, 1, 0 createsprite gAirWaveCrescentSpriteTemplate, ANIM_ATTACKER, 2, 26, 8, 12, 8, 15, 1, 0 delay 3 - playsewithpan SE_W026, SOUND_PAN_ATTACKER + playsewithpan SE_M_JUMP_KICK, SOUND_PAN_ATTACKER createsprite gAirWaveCrescentSpriteTemplate, ANIM_ATTACKER, 2, 14, -12, 0, -12, 15, 2, 0 createsprite gAirWaveCrescentSpriteTemplate, ANIM_ATTACKER, 2, 26, 8, 12, 8, 15, 2, 0 delay 3 - playsewithpan SE_W026, SOUND_PAN_ATTACKER + playsewithpan SE_M_JUMP_KICK, SOUND_PAN_ATTACKER createsprite gAirWaveCrescentSpriteTemplate, ANIM_ATTACKER, 2, 14, -12, 0, -12, 15, 3, 0 createsprite gAirWaveCrescentSpriteTemplate, ANIM_ATTACKER, 2, 26, 8, 12, 8, 15, 3, 0 delay 3 @@ -6240,18 +6240,18 @@ Move_WATER_GUN: monbgprio_28 ANIM_TARGET setalpha 12, 8 createsprite gWaterGunProjectileSpriteTemplate, ANIM_ATTACKER, 2, 20, 0, 0, 0, 40, -25 - playsewithpan SE_W145, SOUND_PAN_ATTACKER + playsewithpan SE_M_BUBBLE, SOUND_PAN_ATTACKER waitforvisualfinish createvisualtask AnimTask_ShakeMon2, 5, ANIM_TARGET, 1, 0, 8, 1 createsprite gWaterHitSplatSpriteTemplate, ANIM_ATTACKER, 4, 0, 0, ANIM_TARGET, 2 createsprite gWaterGunDropletSpriteTemplate, ANIM_ATTACKER, 2, 0, -15, 0, 15, 55 - playsewithpan SE_W152, SOUND_PAN_TARGET + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_TARGET delay 10 createsprite gWaterGunDropletSpriteTemplate, ANIM_ATTACKER, 2, 15, -20, 0, 15, 50 - playsewithpan SE_W152, SOUND_PAN_TARGET + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_TARGET delay 10 createsprite gWaterGunDropletSpriteTemplate, ANIM_ATTACKER, 2, -15, -10, 0, 10, 45 - playsewithpan SE_W152, SOUND_PAN_TARGET + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff @@ -6263,7 +6263,7 @@ Move_CRABHAMMER: monbg ANIM_DEF_PARTNER setalpha 12, 8 createsprite gWaterHitSplatSpriteTemplate, ANIM_ATTACKER, 4, 0, 0, ANIM_TARGET, 0 - playsewithpan SE_W233B, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET delay 1 createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 1, RGB(13, 21, 31), 10, 0, 0 createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 1, -24, 0, 0, 4 @@ -6272,7 +6272,7 @@ Move_CRABHAMMER: waitforvisualfinish createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 1, 0, 4 waitforvisualfinish - loopsewithpan SE_W152, SOUND_PAN_TARGET, 20, 3 + loopsewithpan SE_M_CRABHAMMER, SOUND_PAN_TARGET, 20, 3 createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 4, 8, 1 createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, 10, 10, 20, ANIM_TARGET delay 4 @@ -6297,7 +6297,7 @@ Move_CRABHAMMER: Move_SURF: createvisualtask AnimTask_CreateSurfWave, 2, FALSE delay 24 - panse_1B SE_W057, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 + panse_1B SE_M_SURF, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 waitforvisualfinish end @@ -6309,7 +6309,7 @@ Move_FLAMETHROWER: createvisualtask AnimTask_ShakeMon, 5, ANIM_ATTACKER, 0, 2, 46, 1 delay 6 createvisualtask AnimTask_StartSinAnimTimer, 5, 100 - panse_1B SE_W053, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 + panse_1B SE_M_FLAMETHROWER, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 call FlamethrowerCreateFlames call FlamethrowerCreateFlames call FlamethrowerCreateFlames @@ -6337,7 +6337,7 @@ FlamethrowerCreateFlames: @ Also used by Sandstorm weather Move_SANDSTORM: loadspritegfx ANIM_TAG_FLYING_DIRT - playsewithpan SE_W201, 0 + playsewithpan SE_M_SANDSTORM, 0 createvisualtask AnimTask_LoadSandstormBackground, 5, FALSE delay 16 createsprite gFlyingSandCrescentSpriteTemplate, ANIM_ATTACKER, 40, 10, 2304, 96, 0 @@ -6362,7 +6362,7 @@ Move_WHIRLPOOL: setalpha 12, 8 delay 0 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 4, 2, 0, 7, RGB(0, 13, 23) - playsewithpan SE_W250, SOUND_PAN_TARGET + playsewithpan SE_M_WHIRLPOOL, SOUND_PAN_TARGET createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 2, 50, 1 call WhirlpoolEffect call WhirlpoolEffect @@ -6397,19 +6397,19 @@ FlyEnd: end FlySetUp: - playsewithpan SE_W019, SOUND_PAN_ATTACKER + playsewithpan SE_M_FLY, SOUND_PAN_ATTACKER createsprite gFlyBallUpSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 13, 336 goto FlyEnd FlyUnleash: monbg ANIM_DEF_PARTNER setalpha 12, 8 - playsewithpan SE_W104, SOUND_PAN_ATTACKER + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER createsprite gFlyBallAttackSpriteTemplate, ANIM_ATTACKER, 2, 20 delay 20 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 0 createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 6, 0, 8, 1 - playsewithpan SE_W013, SOUND_PAN_TARGET + playsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff @@ -6423,17 +6423,17 @@ BounceEnd: end BounceSetUp: - playsewithpan SE_W100, SOUND_PAN_ATTACKER + playsewithpan SE_M_TELEPORT, SOUND_PAN_ATTACKER createsprite gBounceBallShrinkSpriteTemplate, ANIM_ATTACKER, 2, 0, 0 goto BounceEnd BounceUnleash: monbg ANIM_DEF_PARTNER setalpha 12, 8 - playsewithpan SE_W207, SOUND_PAN_TARGET + playsewithpan SE_M_SWAGGER, SOUND_PAN_TARGET createsprite gBounceBallLandSpriteTemplate, ANIM_TARGET, 3 delay 7 - playsewithpan SE_W025B, SOUND_PAN_TARGET + playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, ANIM_TARGET, 0 createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 5, 11, 1 waitforvisualfinish @@ -6447,10 +6447,10 @@ Move_KARATE_CHOP: monbg ANIM_DEF_PARTNER monbgprio_28 ANIM_TARGET setalpha 12, 8 - playsewithpan SE_W104, SOUND_PAN_TARGET + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_TARGET createsprite gKarateChopSpriteTemplate, ANIM_ATTACKER, 2, -16, 0, 0, 0, 10, 1, 3, 0 waitforvisualfinish - playsewithpan SE_W004, SOUND_PAN_TARGET + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, ANIM_TARGET, 2 createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 4, 0, 6, 1 waitforvisualfinish @@ -6463,11 +6463,11 @@ Move_CROSS_CHOP: loadspritegfx ANIM_TAG_CROSS_IMPACT monbg ANIM_DEF_PARTNER setalpha 12, 8 - playsewithpan SE_W025, SOUND_PAN_TARGET + playsewithpan SE_M_MEGA_KICK, SOUND_PAN_TARGET createsprite gCrossChopHandSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 0 createsprite gCrossChopHandSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1 delay 40 - playsewithpan SE_W013, SOUND_PAN_TARGET + playsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 1, RGB_WHITE, 10, 0, 10 createsprite gCrossImpactSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 1, 20 createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 7, 0, 9, 1 @@ -6484,11 +6484,11 @@ Move_JUMP_KICK: createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 4, 4 delay 3 createsprite gJumpKickSpriteTemplate, ANIM_ATTACKER, 2, -16, 8, 0, 0, 10, ANIM_TARGET, 1, 1 - playsewithpan SE_W026, SOUND_PAN_TARGET + playsewithpan SE_M_JUMP_KICK, SOUND_PAN_TARGET waitforvisualfinish createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 1, 0, 0, ANIM_TARGET, 1 createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 5, 0, 7, 1 - playsewithpan SE_W004, SOUND_PAN_TARGET + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff @@ -6505,10 +6505,10 @@ Move_HI_JUMP_KICK: createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 3 delay 2 createsprite gJumpKickSpriteTemplate, ANIM_ATTACKER, 2, -16, 8, 0, 0, 10, ANIM_TARGET, 1, 1 - playsewithpan SE_W026, SOUND_PAN_TARGET + playsewithpan SE_M_JUMP_KICK, SOUND_PAN_TARGET waitforvisualfinish createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 1 - playsewithpan SE_W233B, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 1, -28, 0, 0, 3 delay 3 createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_TARGET, 3, 0, 11, 1 @@ -6527,7 +6527,7 @@ Move_DOUBLE_KICK: setalpha 12, 8 createsprite gFistFootRandomPosSpriteTemplate, ANIM_ATTACKER, 3, 1, 20, 1 createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 4, 0, 6, 1 - playsewithpan SE_W233B, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff @@ -6538,7 +6538,7 @@ Move_TRIPLE_KICK: loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER setalpha 12, 8 - playsewithpan SE_W233B, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET jumpifmoveturn 0, TripleKickLeft jumpifmoveturn 1, TripleKickRight goto TripleKickCenter @@ -6574,26 +6574,26 @@ Move_DYNAMIC_PUNCH: delay 1 monbg ANIM_DEF_PARTNER setalpha 12, 8 - playsewithpan SE_W233B, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET createsprite gFistFootSpriteTemplate, ANIM_TARGET, 3, 0, 0, 20, 1, 0 createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, ANIM_TARGET, 0 createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 5, 0, 7, 1 delay 1 waitsound - playsewithpan SE_W120, SOUND_PAN_TARGET + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET createvisualtask AnimTask_ShakeMon2, 5, ANIM_TARGET, 5, 0, 28, 1 createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 1, 1 delay 6 - playsewithpan SE_W120, SOUND_PAN_TARGET + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, 24, -24, 1, 1 delay 6 - playsewithpan SE_W120, SOUND_PAN_TARGET + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, -16, 16, 1, 1 delay 6 - playsewithpan SE_W120, SOUND_PAN_TARGET + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, -24, -12, 1, 1 delay 6 - playsewithpan SE_W120, SOUND_PAN_TARGET + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, 16, 16, 1, 1 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER @@ -6606,23 +6606,23 @@ Move_COUNTER: monbg ANIM_DEF_PARTNER setalpha 12, 8 createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_ATTACKER, 18, 6, 1, 4 - playsewithpan SE_W233, SOUND_PAN_ATTACKER + playsewithpan SE_M_VITAL_THROW, SOUND_PAN_ATTACKER waitforvisualfinish createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 0, 20, 0, 0, 4 delay 4 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -15, 18, ANIM_TARGET, 0 - playsewithpan SE_W233B, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET delay 1 createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 5, 0, 25, 1 createsprite gFistFootSpriteTemplate, ANIM_ATTACKER, 3, -15, 18, 8, 1, 0 delay 3 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, -4, ANIM_TARGET, 0 - playsewithpan SE_W233B, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET delay 1 createsprite gFistFootSpriteTemplate, ANIM_ATTACKER, 3, 0, -4, 8, 1, 0 delay 3 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 15, 9, ANIM_TARGET, 0 - playsewithpan SE_W233B, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET delay 1 createsprite gFistFootSpriteTemplate, ANIM_ATTACKER, 3, 15, 9, 8, 1, 0 delay 5 @@ -6636,13 +6636,13 @@ Move_VITAL_THROW: loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER setalpha 12, 8 - playsewithpan SE_W233, SOUND_PAN_ATTACKER + playsewithpan SE_M_VITAL_THROW, SOUND_PAN_ATTACKER createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_ATTACKER, 12, 4, 1, 2 waitforvisualfinish createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 0, 20, 0, 0, 4 delay 2 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, ANIM_TARGET, 1 - playsewithpan SE_W233B, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET delay 1 createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 1, -24, 0, 0, 4 waitforvisualfinish @@ -6664,10 +6664,10 @@ Move_ROCK_SMASH: delay 1 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, ANIM_TARGET, 1 createsprite gFistFootSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 8, 1, 0 - playsewithpan SE_W233B, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 5, 1 waitforvisualfinish - playsewithpan SE_W088, SOUND_PAN_TARGET + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET createsprite gRockFragmentSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 20, 24, 14, 2 createsprite gRockFragmentSpriteTemplate, ANIM_ATTACKER, 2, 5, 0, -20, 24, 14, 1 createsprite gRockFragmentSpriteTemplate, ANIM_ATTACKER, 2, 0, 5, 20, -24, 14, 2 @@ -6686,16 +6686,16 @@ Move_SUBMISSION: loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER setalpha 12, 8 - playsewithpan SE_W104, SOUND_PAN_ATTACKER - waitplaysewithpan SE_W004, SOUND_PAN_TARGET, 10 - waitplaysewithpan SE_W104, SOUND_PAN_ATTACKER, 20 - waitplaysewithpan SE_W004, SOUND_PAN_TARGET, 30 - waitplaysewithpan SE_W104, SOUND_PAN_ATTACKER, 40 - waitplaysewithpan SE_W004, SOUND_PAN_TARGET, 50 - waitplaysewithpan SE_W104, SOUND_PAN_ATTACKER, 60 - waitplaysewithpan SE_W004, SOUND_PAN_TARGET, 70 - waitplaysewithpan SE_W104, SOUND_PAN_ATTACKER, 80 - waitplaysewithpan SE_W004, SOUND_PAN_TARGET, 90 + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER + waitplaysewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET, 10 + waitplaysewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER, 20 + waitplaysewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET, 30 + waitplaysewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER, 40 + waitplaysewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET, 50 + waitplaysewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER, 60 + waitplaysewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET, 70 + waitplaysewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER, 80 + waitplaysewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET, 90 createvisualtask AnimTask_TranslateMonElliptical, 2, 0, -18, 6, 6, 4 createvisualtask AnimTask_TranslateMonElliptical, 2, 1, 18, 6, 6, 4 call SubmissionHit @@ -6722,7 +6722,7 @@ Move_SUNNY_DAY: setalpha 13, 3 createvisualtask AnimTask_BlendBattleAnimPal, 10, 0x781, 1, 0, 6, RGB_WHITE waitforvisualfinish - panse_26 SE_W080, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +1, 0 + panse_26 SE_M_PETAL_DANCE, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +1, 0 call SunnyDayLightRay call SunnyDayLightRay call SunnyDayLightRay @@ -6743,7 +6743,7 @@ Move_COTTON_SPORE: loadspritegfx ANIM_TAG_SPORE monbg ANIM_DEF_PARTNER monbgprio_28 ANIM_TARGET - loopsewithpan SE_W077, SOUND_PAN_TARGET, 18, 10 + loopsewithpan SE_M_POISON_POWDER, SOUND_PAN_TARGET, 18, 10 call CreateCottonSpores call CreateCottonSpores call CreateCottonSpores @@ -6765,7 +6765,7 @@ Move_SPORE: monbg ANIM_DEF_PARTNER setalpha 12, 8 createvisualtask AnimTask_SporeDoubleBattle, 2 - loopsewithpan SE_W077, SOUND_PAN_TARGET, 16, 11 + loopsewithpan SE_M_POISON_POWDER, SOUND_PAN_TARGET, 16, 11 call CreateSpore call CreateSpore call CreateSpore @@ -6789,7 +6789,7 @@ Move_PETAL_DANCE: loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER setalpha 12, 8 - playsewithpan SE_W080, SOUND_PAN_ATTACKER + playsewithpan SE_M_PETAL_DANCE, SOUND_PAN_ATTACKER createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_ATTACKER, 12, 6, 6, 3 createsprite gPetalDanceBigFlowerSpriteTemplate, ANIM_ATTACKER, 2, 0, -24, 8, 140 createsprite gPetalDanceSmallFlowerSpriteTemplate, ANIM_ATTACKER, 2, 16, -24, 8, 100 @@ -6811,7 +6811,7 @@ Move_PETAL_DANCE: waitforvisualfinish createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 0, 24, 0, 0, 5 delay 3 - playsewithpan SE_W025B, SOUND_PAN_TARGET + playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, ANIM_TARGET, 0 createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 6, 0, 8, 1 waitforvisualfinish @@ -6829,7 +6829,7 @@ Move_RAZOR_LEAF: monbg ANIM_DEF_PARTNER setalpha 12, 8 delay 1 - loopsewithpan SE_W077, SOUND_PAN_ATTACKER, 10, 5 + loopsewithpan SE_M_POISON_POWDER, SOUND_PAN_ATTACKER, 10, 5 createsprite gRazorLeafParticleSpriteTemplate, ANIM_ATTACKER, 2, -3, -2, 10 delay 2 createsprite gRazorLeafParticleSpriteTemplate, ANIM_ATTACKER, 2, -1, -1, 15 @@ -6850,11 +6850,11 @@ Move_RAZOR_LEAF: delay 2 createsprite gRazorLeafParticleSpriteTemplate, ANIM_ATTACKER, 2, -3, -5, 8 delay 60 - playsewithpan SE_W013B, SOUND_PAN_ATTACKER + playsewithpan SE_M_RAZOR_WIND2, SOUND_PAN_ATTACKER createsprite gRazorLeafCutterSpriteTemplate, ANIM_TARGET, 3, 20, -10, 20, 0, 22, 20, 1 createsprite gRazorLeafCutterSpriteTemplate, ANIM_TARGET, 3, 20, -10, 20, 0, 22, -20, 1 delay 20 - playsewithpan SE_W013, SOUND_PAN_TARGET + playsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 8, 1 createvisualtask AnimTask_ShakeMon2, 2, ANIM_DEF_PARTNER, 2, 0, 8, 1 waitforvisualfinish @@ -6878,7 +6878,7 @@ Move_ANCIENT_POWER: createsprite gAncientPowerRockSpriteTemplate, ANIM_ATTACKER, 2, 20, 32, -28, 60, 1 createsprite gAncientPowerRockSpriteTemplate, ANIM_ATTACKER, 2, 0, 32, -28, 30, 4 createvisualtask AnimTask_ShakeMon2, 2, ANIM_ATTACKER, 1, 0, 30, 1 - playsewithpan SE_W082, SOUND_PAN_ATTACKER + playsewithpan SE_M_DRAGON_RAGE, SOUND_PAN_ATTACKER delay 10 createsprite gAncientPowerRockSpriteTemplate, ANIM_ATTACKER, 2, 15, 32, -48, 25, 5 createsprite gAncientPowerRockSpriteTemplate, ANIM_ATTACKER, 2, -10, 32, -42, 30, 4 @@ -6888,7 +6888,7 @@ Move_ANCIENT_POWER: waitforvisualfinish createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 0, 16, 0, 0, 4 delay 3 - playsewithpan SE_W120, SOUND_PAN_TARGET + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, ANIM_TARGET, 1 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 3, 0, 6, 1 waitforvisualfinish @@ -6901,10 +6901,10 @@ Move_ANCIENT_POWER: Move_OCTAZOOKA: loadspritegfx ANIM_TAG_GRAY_SMOKE loadspritegfx ANIM_TAG_BLACK_BALL - playsewithpan SE_W025B, SOUND_PAN_ATTACKER + playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_ATTACKER createsprite gOctazookaBallSpriteTemplate, ANIM_TARGET, 2, 20, 0, 0, 0, 20, 0 waitforvisualfinish - playsewithpan SE_W120, SOUND_PAN_TARGET + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET createsprite gOctazookaSmokeSpriteTemplate, ANIM_TARGET, 2, 8, 8, 1, 0 delay 2 createsprite gOctazookaSmokeSpriteTemplate, ANIM_TARGET, 2, -8, -8, 1, 0 @@ -6919,7 +6919,7 @@ Move_MIST: loadspritegfx ANIM_TAG_MIST_CLOUD monbg ANIM_ATK_PARTNER setalpha 12, 8 - loopsewithpan SE_W054, SOUND_PAN_ATTACKER, 20, 15 + loopsewithpan SE_M_MIST, SOUND_PAN_ATTACKER, 20, 15 call MistCloud call MistCloud call MistCloud @@ -6941,7 +6941,7 @@ MistCloud: Move_HAZE: waitforvisualfinish - playsewithpan SE_W114, 0 + playsewithpan SE_M_HAZE, 0 createvisualtask AnimTask_HazeScrollingFog, 5 delay 30 createvisualtask AnimTask_BlendBattleAnimPal, 10, 0x780, 2, 0, 16, RGB_BLACK @@ -6960,14 +6960,14 @@ Move_FIRE_PUNCH: createsprite gFireSpiralInwardSpriteTemplate, ANIM_TARGET, 1, 64 createsprite gFireSpiralInwardSpriteTemplate, ANIM_TARGET, 1, 128 createsprite gFireSpiralInwardSpriteTemplate, ANIM_TARGET, 1, 196 - playsewithpan SE_W172, SOUND_PAN_TARGET + playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_TARGET waitforvisualfinish createsprite gFistFootSpriteTemplate, ANIM_TARGET, 3, 0, 0, 8, 1, 0 createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, ANIM_TARGET, 1 createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 0, 3, 15, 1 call FireSpreadEffect delay 4 - playsewithpan SE_W007, SOUND_PAN_TARGET + playsewithpan SE_M_FIRE_PUNCH, SOUND_PAN_TARGET waitforvisualfinish createvisualtask AnimTask_BlendBattleAnimPal, 10, 4, 0, 9, 0, RGB_RED waitforvisualfinish @@ -6990,7 +6990,7 @@ Move_LEER: monbg ANIM_ATTACKER monbgprio_28 ANIM_ATTACKER setalpha 8, 8 - playsewithpan SE_W043, SOUND_PAN_ATTACKER + playsewithpan SE_M_LEER, SOUND_PAN_ATTACKER createsprite gLeerSpriteTemplate, ANIM_ATTACKER, 2, 24, -12 createvisualtask AnimTask_ScaleMonAndRestore, 5, -5, -5, 10, ANIM_ATTACKER, 1 waitforvisualfinish @@ -7009,10 +7009,10 @@ Move_DREAM_EATER: loadspritegfx ANIM_TAG_BLUE_STAR monbg ANIM_DEF_PARTNER monbgprio_2A ANIM_TARGET - playsewithpan SE_W060, SOUND_PAN_ATTACKER + playsewithpan SE_M_PSYBEAM, SOUND_PAN_ATTACKER call SetPsychicBackground setalpha 8, 8 - playsewithpan SE_W107, SOUND_PAN_TARGET + playsewithpan SE_M_MINIMIZE, SOUND_PAN_TARGET createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 5, 0, 15, 1 createvisualtask AnimTask_ScaleMonAndRestore, 5, -6, -6, 15, ANIM_TARGET, 1 waitforvisualfinish @@ -7029,42 +7029,42 @@ Move_DREAM_EATER: call UnsetPsychicBackground end DreamEaterAbsorb: - playsewithpan SE_W207, SOUND_PAN_TARGET + playsewithpan SE_M_SWAGGER, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, 5, 8, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 5, -18, -40, 35 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, -10, 20, 20, 39 delay 4 - playsewithpan SE_W207, SOUND_PAN_TARGET + playsewithpan SE_M_SWAGGER, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, 5, 28, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 10, -5, -8, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, -10, 20, 40, 39 delay 4 - playsewithpan SE_W207, SOUND_PAN_TARGET + playsewithpan SE_M_SWAGGER, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 10, -5, -8, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, -5, 15, 16, 33 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 10, -5, -32, 26 delay 4 - playsewithpan SE_W207, SOUND_PAN_TARGET + playsewithpan SE_M_SWAGGER, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, -15, -16, 36 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, 5, 8, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 10, -5, -8, 26 delay 4 - playsewithpan SE_W207, SOUND_PAN_TARGET + playsewithpan SE_M_SWAGGER, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, -5, 15, 16, 33 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, -15, -16, 36 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, 5, 8, 26 delay 4 - playsewithpan SE_W207, SOUND_PAN_TARGET + playsewithpan SE_M_SWAGGER, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, 5, 8, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, -5, 15, 16, 33 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 10, -5, -40, 26 delay 4 - playsewithpan SE_W207, SOUND_PAN_TARGET + playsewithpan SE_M_SWAGGER, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, -5, 15, 36, 33 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 10, -5, -8, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, -10, 20, 20, 39 delay 4 - playsewithpan SE_W207, SOUND_PAN_TARGET + playsewithpan SE_M_SWAGGER, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, 5, 8, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, 5, 8, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 5, -18, -20, 35 @@ -7079,25 +7079,25 @@ Move_POISON_GAS: monbgprio_29 setalpha 12, 8 delay 0 - playsewithpan SE_W054, SOUND_PAN_ATTACKER + playsewithpan SE_M_MIST, SOUND_PAN_ATTACKER createsprite gPoisonGasCloudSpriteTemplate, ANIM_TARGET, 0, 64, 0, 0, -32, -6, 4192, 1072, 0 delay 4 - playsewithpan SE_W054, SOUND_PAN_ATTACKER + playsewithpan SE_M_MIST, SOUND_PAN_ATTACKER createsprite gPoisonGasCloudSpriteTemplate, ANIM_TARGET, 0, 64, 0, 0, -32, -6, 4192, 1072, 0 delay 4 - playsewithpan SE_W054, SOUND_PAN_ATTACKER + playsewithpan SE_M_MIST, SOUND_PAN_ATTACKER createsprite gPoisonGasCloudSpriteTemplate, ANIM_TARGET, 0, 64, 0, 0, -32, -6, 4192, 1072, 0 delay 4 - playsewithpan SE_W054, SOUND_PAN_ATTACKER + playsewithpan SE_M_MIST, SOUND_PAN_ATTACKER createsprite gPoisonGasCloudSpriteTemplate, ANIM_TARGET, 0, 64, 0, 0, -32, -6, 4192, 1072, 0 delay 4 - playsewithpan SE_W054, SOUND_PAN_ATTACKER + playsewithpan SE_M_MIST, SOUND_PAN_ATTACKER createsprite gPoisonGasCloudSpriteTemplate, ANIM_TARGET, 0, 64, 0, 0, -32, -6, 4192, 1072, 0 delay 4 - playsewithpan SE_W054, SOUND_PAN_ATTACKER + playsewithpan SE_M_MIST, SOUND_PAN_ATTACKER createsprite gPoisonGasCloudSpriteTemplate, ANIM_TARGET, 0, 64, 0, 0, -32, -6, 4192, 1072, 0 delay 40 - loopsewithpan SE_W054, SOUND_PAN_TARGET, 28, 6 + loopsewithpan SE_M_MIST, SOUND_PAN_TARGET, 28, 6 createvisualtask AnimTask_BlendColorCycle, 2, 4, 6, 2, 0, 12, RGB(26, 0, 26) waitforvisualfinish blendoff @@ -7110,7 +7110,7 @@ Move_BIND: goto BindWrap BindWrap: - playsewithpan SE_W020, SOUND_PAN_TARGET + playsewithpan SE_M_BIND, SOUND_PAN_TARGET call BindWrapSqueezeTarget call BindWrapSqueezeTarget waitforvisualfinish @@ -7126,9 +7126,9 @@ Move_WRAP: Move_PSYBEAM: loadspritegfx ANIM_TAG_GOLD_RING - playsewithpan SE_W060, SOUND_PAN_ATTACKER + playsewithpan SE_M_PSYBEAM, SOUND_PAN_ATTACKER call SetPsychicBackground - createsoundtask SoundTask_LoopSEAdjustPanning, SE_W060B, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, 3, 4, 0, 15 + createsoundtask SoundTask_LoopSEAdjustPanning, SE_M_PSYBEAM2, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, 3, 4, 0, 15 call PsybeamRings call PsybeamRings createvisualtask AnimTask_SwayMon, 5, 0, 6, 2048, 4, ANIM_TARGET @@ -7163,7 +7163,7 @@ Move_HYPNOSIS: call UnsetPsychicBackground end HypnosisRings: - playsewithpan SE_W048, SOUND_PAN_ATTACKER + playsewithpan SE_M_SUPERSONIC, SOUND_PAN_ATTACKER createsprite gGoldRingSpriteTemplate, ANIM_TARGET, 2, 0, 8, 0, 8, 27, 0 createsprite gGoldRingSpriteTemplate, ANIM_TARGET, 2, 16, -8, 0, -8, 27, 0 delay 6 @@ -7171,10 +7171,10 @@ HypnosisRings: Move_PSYWAVE: loadspritegfx ANIM_TAG_BLUE_RING - playsewithpan SE_W060, SOUND_PAN_ATTACKER + playsewithpan SE_M_PSYBEAM, SOUND_PAN_ATTACKER call SetPsychicBackground createvisualtask AnimTask_StartSinAnimTimer, 5, 100 - createsoundtask SoundTask_LoopSEAdjustPanning, SE_W100, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, 2, 9, 0, 10 + createsoundtask SoundTask_LoopSEAdjustPanning, SE_M_TELEPORT, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, 2, 9, 0, 10 call PsywaveRings call PsywaveRings createvisualtask AnimTask_BlendColorCycle, 2, 4, 1, 4, 0, 12, RGB(31, 18, 31) @@ -7196,7 +7196,7 @@ PsywaveRings: Move_ZAP_CANNON: loadspritegfx ANIM_TAG_BLACK_BALL_2 loadspritegfx ANIM_TAG_SPARK_2 - playsewithpan SE_W086, SOUND_PAN_ATTACKER + playsewithpan SE_M_THUNDER_WAVE, SOUND_PAN_ATTACKER createsprite gZapCannonBallSpriteTemplate, ANIM_TARGET, 3, 10, 0, 0, 0, 30, 0 createsprite gZapCannonSparkSpriteTemplate, ANIM_TARGET, 4, 10, 0, 16, 30, 0, 40, 0 createsprite gZapCannonSparkSpriteTemplate, ANIM_TARGET, 4, 10, 0, 16, 30, 64, 40, 1 @@ -7209,7 +7209,7 @@ Move_ZAP_CANNON: waitforvisualfinish createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 4, 0, 5, 1 delay 15 - waitplaysewithpan SE_W085B, SOUND_PAN_TARGET, 19 + waitplaysewithpan SE_M_THUNDERBOLT2, SOUND_PAN_TARGET, 19 call ElectricityEffect waitforvisualfinish end @@ -7217,13 +7217,13 @@ Move_ZAP_CANNON: Move_STEEL_WING: loadspritegfx ANIM_TAG_GUST loadspritegfx ANIM_TAG_IMPACT - loopsewithpan SE_W231, SOUND_PAN_ATTACKER, 28, 2 + loopsewithpan SE_M_HARDEN, SOUND_PAN_ATTACKER, 28, 2 createvisualtask AnimTask_MetallicShine, 5, 0, 0, 0 waitforvisualfinish monbg ANIM_DEF_PARTNER monbgprio_28 ANIM_TARGET setalpha 12, 8 - loopsewithpan SE_W017, SOUND_PAN_ATTACKER, 20, 2 + loopsewithpan SE_M_WING_ATTACK, SOUND_PAN_ATTACKER, 20, 2 createvisualtask AnimTask_TranslateMonElliptical, 2, 0, 12, 4, 1, 4 createvisualtask AnimTask_AnimateGustTornadoPalette, 5, 1, 70 createsprite gGustToTargetSpriteTemplate, ANIM_ATTACKER, 2, -25, 0, 0, 0, 20 @@ -7233,7 +7233,7 @@ Move_STEEL_WING: delay 17 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 16, 0, ANIM_TARGET, 1 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -16, 0, ANIM_TARGET, 1 - playsewithpan SE_W013, SOUND_PAN_TARGET + playsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET waitforvisualfinish createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 11 waitforvisualfinish @@ -7243,7 +7243,7 @@ Move_STEEL_WING: Move_IRON_TAIL: loadspritegfx ANIM_TAG_IMPACT - loopsewithpan SE_W231, SOUND_PAN_ATTACKER, 28, 2 + loopsewithpan SE_M_HARDEN, SOUND_PAN_ATTACKER, 28, 2 createvisualtask AnimTask_MetallicShine, 5, 1, 0, 0 waitforvisualfinish monbg ANIM_TARGET @@ -7252,7 +7252,7 @@ Move_IRON_TAIL: delay 6 createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, ANIM_TARGET, 2 createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 6, 1 - playsewithpan SE_W233B, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET waitforvisualfinish createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, ANIM_ATTACKER, 1 clearmonbg ANIM_TARGET @@ -7263,7 +7263,7 @@ Move_IRON_TAIL: Move_POISON_TAIL: loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_POISON_BUBBLE - loopsewithpan SE_W231, SOUND_PAN_ATTACKER, 28, 2 + loopsewithpan SE_M_HARDEN, SOUND_PAN_ATTACKER, 28, 2 createvisualtask AnimTask_MetallicShine, 5, 1, 1, RGB(24, 6, 23) waitforvisualfinish monbg ANIM_TARGET @@ -7272,7 +7272,7 @@ Move_POISON_TAIL: delay 6 createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, ANIM_TARGET, 2 createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 6, 1 - playsewithpan SE_W233B, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET waitforvisualfinish createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, ANIM_ATTACKER, 1 clearmonbg ANIM_TARGET @@ -7283,19 +7283,19 @@ Move_POISON_TAIL: Move_METAL_CLAW: loadspritegfx ANIM_TAG_CLAW_SLASH - loopsewithpan SE_W231, SOUND_PAN_ATTACKER, 28, 2 + loopsewithpan SE_M_HARDEN, SOUND_PAN_ATTACKER, 28, 2 createvisualtask AnimTask_MetallicShine, 5, 0, 0, 0 waitforvisualfinish createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 6, 4 delay 2 - playsewithpan SE_W013, SOUND_PAN_TARGET + playsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, -10, -10, 0 createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, -10, 10, 0 createsprite gShakeMonOrTerrainSpriteTemplate, ANIM_ATTACKER, 2, -4, 1, 10, 3, 1 delay 8 createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 6, 4 delay 2 - playsewithpan SE_W013, SOUND_PAN_TARGET + playsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, 10, -10, 1 createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, 10, 10, 1 createsprite gShakeMonOrTerrainSpriteTemplate, ANIM_ATTACKER, 2, -4, 1, 10, 3, 1 @@ -7305,11 +7305,11 @@ Move_METAL_CLAW: Move_NIGHT_SHADE: monbg ANIM_ATTACKER monbgprio_28 ANIM_ATTACKER - playsewithpan SE_W060, SOUND_PAN_ATTACKER + playsewithpan SE_M_PSYBEAM, SOUND_PAN_ATTACKER fadetobg BG_GHOST waitbgfadein delay 10 - playsewithpan SE_W043, SOUND_PAN_ATTACKER + playsewithpan SE_M_LEER, SOUND_PAN_ATTACKER createvisualtask AnimTask_NightShadeClone, 5, 85 delay 70 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 12, 1 @@ -7324,24 +7324,24 @@ Move_NIGHT_SHADE: Move_EGG_BOMB: loadspritegfx ANIM_TAG_EXPLOSION loadspritegfx ANIM_TAG_LARGE_FRESH_EGG - playsewithpan SE_W039, SOUND_PAN_ATTACKER + playsewithpan SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER createsprite gEggThrowSpriteTemplate, ANIM_TARGET, 2, 10, 0, 0, 0, 25, -32 waitforvisualfinish createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 4, 0, 16, 1 createsprite gExplosionSpriteTemplate, ANIM_TARGET, 4, 6, 5, 1, 0 - playsewithpan SE_W120, SOUND_PAN_TARGET + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET delay 3 createsprite gExplosionSpriteTemplate, ANIM_TARGET, 4, -16, -15, 1, 0 - playsewithpan SE_W120, SOUND_PAN_TARGET + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET delay 3 createsprite gExplosionSpriteTemplate, ANIM_TARGET, 4, 16, -5, 1, 0 - playsewithpan SE_W120, SOUND_PAN_TARGET + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET delay 3 createsprite gExplosionSpriteTemplate, ANIM_TARGET, 4, -12, 18, 1, 0 - playsewithpan SE_W120, SOUND_PAN_TARGET + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET delay 3 createsprite gExplosionSpriteTemplate, ANIM_TARGET, 4, 0, 5, 1, 0 - playsewithpan SE_W120, SOUND_PAN_TARGET + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET delay 3 waitforvisualfinish end @@ -7351,10 +7351,10 @@ Move_SHADOW_BALL: fadetobg BG_GHOST waitbgfadein delay 15 - createsoundtask SoundTask_LoopSEAdjustPanning, SE_W054, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, 5, 5, 0, 5 + createsoundtask SoundTask_LoopSEAdjustPanning, SE_M_MIST, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, 5, 5, 0, 5 createsprite gShadowBallSpriteTemplate, ANIM_TARGET, 2, 16, 16, 8 waitforvisualfinish - playsewithpan SE_W028, SOUND_PAN_TARGET + playsewithpan SE_M_SAND_ATTACK, SOUND_PAN_TARGET createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 4, 0, 8, 1 waitforvisualfinish restorebg @@ -7364,7 +7364,7 @@ Move_SHADOW_BALL: Move_LICK: loadspritegfx ANIM_TAG_LICK delay 15 - playsewithpan SE_W122, SOUND_PAN_TARGET + playsewithpan SE_M_LICK, SOUND_PAN_TARGET createsprite gLickSpriteTemplate, ANIM_TARGET, 2, 0, 0 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 1, 0, 16, 1 waitforvisualfinish @@ -7372,7 +7372,7 @@ Move_LICK: Move_FOCUS_ENERGY: loadspritegfx ANIM_TAG_FOCUS_ENERGY - playsewithpan SE_W082, SOUND_PAN_ATTACKER + playsewithpan SE_M_DRAGON_RAGE, SOUND_PAN_ATTACKER call EndureEffect delay 8 createvisualtask AnimTask_BlendColorCycle, 2, 2, 2, 2, 0, 11, RGB_WHITE @@ -7387,7 +7387,7 @@ Move_BIDE: choosetwoturnanim BideSetUp, BideUnleash end BideSetUp: - loopsewithpan SE_W036, SOUND_PAN_ATTACKER, 9, 2 + loopsewithpan SE_M_TAKE_DOWN, SOUND_PAN_ATTACKER, 9, 2 createvisualtask AnimTask_BlendColorCycle, 2, 2, 2, 2, 0, 11, RGB_RED createvisualtask AnimTask_ShakeMon2, 2, ANIM_ATTACKER, 1, 0, 32, 1 waitforvisualfinish @@ -7397,7 +7397,7 @@ BideUnleash: loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER setalpha 12, 8 - loopsewithpan SE_W036, SOUND_PAN_ATTACKER, 9, 2 + loopsewithpan SE_M_TAKE_DOWN, SOUND_PAN_ATTACKER, 9, 2 createvisualtask AnimTask_BlendBattleAnimPal, 10, 2, 2, 0, 11, RGB_RED createvisualtask AnimTask_ShakeMon2, 2, ANIM_ATTACKER, 1, 0, 32, 1 waitforvisualfinish @@ -7405,13 +7405,13 @@ BideUnleash: waitforvisualfinish createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_ATTACKER, 2, 0, 12, 1 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 3, 0, 16, 1 - playsewithpan SE_W004, SOUND_PAN_TARGET + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 1, 18, -8, ANIM_TARGET, 1 delay 5 - playsewithpan SE_W004, SOUND_PAN_TARGET + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 1, -18, 8, ANIM_TARGET, 1 delay 5 - playsewithpan SE_W004, SOUND_PAN_TARGET + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 1, -8, -5, ANIM_TARGET, 1 waitforvisualfinish delay 5 @@ -7430,7 +7430,7 @@ Move_STRING_SHOT: delay 0 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 5, 1, 2, 0, 9, RGB_BLACK waitforvisualfinish - loopsewithpan SE_W081, SOUND_PAN_ATTACKER, 9, 6 + loopsewithpan SE_M_STRING_SHOT, SOUND_PAN_ATTACKER, 9, 6 call StringShotThread call StringShotThread call StringShotThread @@ -7450,7 +7450,7 @@ Move_STRING_SHOT: call StringShotThread call StringShotThread waitforvisualfinish - playsewithpan SE_W081B, SOUND_PAN_TARGET + playsewithpan SE_M_STRING_SHOT2, SOUND_PAN_TARGET createsprite gStringWrapSpriteTemplate, ANIM_TARGET, 2, 0, 10 delay 4 createsprite gStringWrapSpriteTemplate, ANIM_TARGET, 2, 0, -2 @@ -7476,7 +7476,7 @@ Move_SPIDER_WEB: createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 5, 1, 2, 0, 9, RGB_BLACK waitforvisualfinish monbgprio_28 ANIM_TARGET - loopsewithpan SE_W081, SOUND_PAN_ATTACKER, 9, 6 + loopsewithpan SE_M_STRING_SHOT, SOUND_PAN_ATTACKER, 9, 6 call SpiderWebThread call SpiderWebThread call SpiderWebThread @@ -7492,7 +7492,7 @@ Move_SPIDER_WEB: call SpiderWebThread call SpiderWebThread waitforvisualfinish - playsewithpan SE_W081B, SOUND_PAN_TARGET + playsewithpan SE_M_STRING_SHOT2, SOUND_PAN_TARGET createsprite gSpiderWebSpriteTemplate, ANIM_ATTACKER, 2 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER @@ -7513,12 +7513,12 @@ RazorWindEnd: RazorWindSetUp: loadspritegfx ANIM_TAG_GUST - playsewithpan SE_W016, SOUND_PAN_ATTACKER + playsewithpan SE_M_GUST, SOUND_PAN_ATTACKER createsprite gRazorWindTornadoSpriteTemplate, ANIM_ATTACKER, 2, 32, 0, 16, 16, 0, 7, 40 createsprite gRazorWindTornadoSpriteTemplate, ANIM_ATTACKER, 2, 32, 0, 16, 16, 85, 7, 40 createsprite gRazorWindTornadoSpriteTemplate, ANIM_ATTACKER, 2, 32, 0, 16, 16, 170, 7, 40 waitforvisualfinish - playsewithpan SE_W016B, SOUND_PAN_ATTACKER + playsewithpan SE_M_GUST2, SOUND_PAN_ATTACKER goto RazorWindEnd RazorWindUnleash: @@ -7526,16 +7526,16 @@ RazorWindUnleash: loadspritegfx ANIM_TAG_IMPACT monbg ANIM_TARGET setalpha 12, 8 - playsewithpan SE_W013B, SOUND_PAN_ATTACKER + playsewithpan SE_M_RAZOR_WIND2, SOUND_PAN_ATTACKER createsprite gAirWaveCrescentSpriteTemplate, ANIM_ATTACKER, 2, 14, 8, 0, 0, 22, 2, 1 delay 2 - playsewithpan SE_W013B, SOUND_PAN_ATTACKER + playsewithpan SE_M_RAZOR_WIND2, SOUND_PAN_ATTACKER createsprite gAirWaveCrescentSpriteTemplate, ANIM_ATTACKER, 2, 14, -8, 16, 14, 22, 1, 1 delay 2 - playsewithpan SE_W013B, SOUND_PAN_ATTACKER + playsewithpan SE_M_RAZOR_WIND2, SOUND_PAN_ATTACKER createsprite gAirWaveCrescentSpriteTemplate, ANIM_ATTACKER, 2, 14, 12, -16, -14, 22, 0, 1 delay 17 - playsewithpan SE_W013, SOUND_PAN_TARGET + playsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 10, 1 createvisualtask AnimTask_ShakeMon2, 2, ANIM_DEF_PARTNER, 2, 0, 10, 1 waitforvisualfinish @@ -7548,11 +7548,11 @@ Move_DISABLE: monbg ANIM_TARGET monbgprio_28 ANIM_TARGET setalpha 8, 8 - playsewithpan SE_W197, SOUND_PAN_ATTACKER + playsewithpan SE_M_DETECT, SOUND_PAN_ATTACKER createsprite gSpinningSparkleSpriteTemplate, ANIM_ATTACKER, 13, 24, -16 waitforvisualfinish createvisualtask AnimTask_GrowAndGreyscale, 5 - loopsewithpan SE_W020, SOUND_PAN_TARGET, 15, 4 + loopsewithpan SE_M_BIND, SOUND_PAN_TARGET, 15, 4 waitforvisualfinish delay 1 clearmonbg ANIM_TARGET @@ -7564,7 +7564,7 @@ Move_RECOVER: loadspritegfx ANIM_TAG_BLUE_STAR monbg ANIM_ATK_PARTNER setalpha 12, 8 - loopsewithpan SE_W025, SOUND_PAN_ATTACKER, 13, 3 + loopsewithpan SE_M_MEGA_KICK, SOUND_PAN_ATTACKER, 13, 3 createvisualtask AnimTask_BlendColorCycle, 2, 2, 0, 6, 0, 11, RGB(31, 31, 11) call RecoverAbsorbEffect call RecoverAbsorbEffect @@ -7599,14 +7599,14 @@ Move_MIMIC: setalpha 11, 5 monbg_22 ANIM_DEF_PARTNER monbgprio_29 - panse_1B SE_W107, SOUND_PAN_TARGET, SOUND_PAN_ATTACKER, -3, 0 + panse_1B SE_M_MINIMIZE, SOUND_PAN_TARGET, SOUND_PAN_ATTACKER, -3, 0 createvisualtask AnimTask_ShrinkTargetCopy, 5, 128, 24 delay 15 createsprite gMimicOrbSpriteTemplate, ANIM_TARGET, 2, -12, 24 delay 10 setarg 7, 0xFFFF waitforvisualfinish - playsewithpan SE_W036, SOUND_PAN_ATTACKER + playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_ATTACKER createvisualtask AnimTask_BlendColorCycle, 2, 2, 0, 2, 0, 11, RGB_WHITE waitforvisualfinish clearmonbg_23 ANIM_DEF_PARTNER @@ -7615,7 +7615,7 @@ Move_MIMIC: Move_CONSTRICT: loadspritegfx ANIM_TAG_TENDRILS - loopsewithpan SE_W010, SOUND_PAN_TARGET, 6, 4 + loopsewithpan SE_M_SCRATCH, SOUND_PAN_TARGET, 6, 4 createsprite gConstrictBindingSpriteTemplate, ANIM_TARGET, 4, 0, 16, 0, 2 delay 7 createsprite gConstrictBindingSpriteTemplate, ANIM_TARGET, 3, 0, 0, 0, 2 @@ -7625,7 +7625,7 @@ Move_CONSTRICT: delay 8 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 3, 0, 6, 1 delay 20 - playsewithpan SE_W020, SOUND_PAN_TARGET + playsewithpan SE_M_BIND, SOUND_PAN_TARGET setarg 7, 0xFFFF waitforvisualfinish end @@ -7650,7 +7650,7 @@ CurseGhost: clearmonbg ANIM_ATK_PARTNER delay 1 monbg ANIM_DEF_PARTNER - playsewithpan SE_W171, SOUND_PAN_TARGET + playsewithpan SE_M_NIGHTMARE, SOUND_PAN_TARGET createsprite gCurseGhostSpriteTemplate, ANIM_TARGET, 2 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 14, 1 waitforvisualfinish @@ -7660,7 +7660,7 @@ CurseGhost: end CurseGhostShakeFromNail: createvisualtask AnimTask_ShakeMon2, 2, ANIM_ATTACKER, 4, 0, 10, 0 - playsewithpan SE_W020, SOUND_PAN_ATTACKER + playsewithpan SE_M_BIND, SOUND_PAN_ATTACKER return CurseStats: createvisualtask AnimTask_SwayMon, 5, 0, 10, 1536, 3, ANIM_ATTACKER @@ -7670,7 +7670,7 @@ CurseStats: waitforvisualfinish end CurseStats1: - playsewithpan SE_W082, SOUND_PAN_ATTACKER + playsewithpan SE_M_DRAGON_RAGE, SOUND_PAN_ATTACKER createvisualtask AnimTask_DrawFallingWhiteLinesOnAttacker, 5 createvisualtask AnimTask_BlendColorCycle, 5, 2, 4, 2, 0, 10, RGB_RED return @@ -7680,13 +7680,13 @@ Move_SOFT_BOILED: loadspritegfx ANIM_TAG_THIN_RING loadspritegfx ANIM_TAG_BLUE_STAR monbg ANIM_ATK_PARTNER - playsewithpan SE_W039, SOUND_PAN_ATTACKER + playsewithpan SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER createvisualtask AnimTask_ShakeMon, 2, ANIM_ATTACKER, 0, 2, 6, 1 createsprite gSoftBoiledEggSpriteTemplate, ANIM_ATTACKER, 4, 0, 16, 0 createsprite gSoftBoiledEggSpriteTemplate, ANIM_ATTACKER, 4, 0, 16, 1 delay 120 delay 7 - playsewithpan SE_W030, SOUND_PAN_ATTACKER + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_ATTACKER createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 10, 0, RGB(12, 24, 30) createsprite gThinRingExpandingSpriteTemplate, ANIM_ATTACKER, 3, 31, 16, 0, 1 delay 8 @@ -7731,14 +7731,14 @@ Move_HEAL_BELL: unloadspritegfx ANIM_TAG_MUSIC_NOTES_2 unloadspritegfx ANIM_TAG_THIN_RING loadspritegfx ANIM_TAG_SPARKLE_2 - playsewithpan SE_W234, SOUND_PAN_ATTACKER + playsewithpan SE_M_MORNING_SUN, SOUND_PAN_ATTACKER createsprite gSparklingStarsSpriteTemplate, ANIM_ATTACKER, 16, -15, 0, 0, 0, 32, 60, 1 delay 8 createsprite gSparklingStarsSpriteTemplate, ANIM_ATTACKER, 16, 12, -5, 0, 0, 32, 60, 1 waitforvisualfinish unloadspritegfx ANIM_TAG_SPARKLE_2 loadspritegfx ANIM_TAG_THIN_RING - playsewithpan SE_REAPOKE, SOUND_PAN_ATTACKER + playsewithpan SE_SHINY, SOUND_PAN_ATTACKER createvisualtask AnimTask_BlendBattleAnimPalExclude, 10, 4, 3, 10, 0, RGB(12, 24, 30) createvisualtask AnimTask_BlendBattleAnimPal, 10, 10, 3, 10, 0, RGB_WHITE createsprite gBlendThinRingExpandingSpriteTemplate, ANIM_ATTACKER, 16, 0, 0, 0, 1 @@ -7747,14 +7747,14 @@ HealBellRing: createvisualtask AnimTask_BlendBattleAnimPalExclude, 10, 4, 3, 8, 0, RGB(12, 24, 30) createvisualtask AnimTask_BlendBattleAnimPal, 10, 10, 3, 2, 10, RGB_WHITE createsprite gThinRingExpandingSpriteTemplate, ANIM_ATTACKER, 40, 0, -24, 0, 1 - playsewithpan SE_W215, SOUND_PAN_ATTACKER + playsewithpan SE_M_HEAL_BELL, SOUND_PAN_ATTACKER return Move_FAKE_OUT: - playsewithpan SE_W260, 0 + playsewithpan SE_M_FLATTER, 0 createvisualtask AnimTask_FakeOut, 5 waitforvisualfinish - playsewithpan SE_W166, SOUND_PAN_TARGET + playsewithpan SE_M_SKETCH, SOUND_PAN_TARGET createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 4, 0, 5, 1 createvisualtask AnimTask_StretchTargetUp, 3 waitforvisualfinish @@ -7764,17 +7764,17 @@ Move_FAKE_OUT: Move_SCARY_FACE: loadspritegfx ANIM_TAG_EYE_SPARKLE createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 27, 3, 0, 16, RGB_BLACK - playsewithpan SE_W060, SOUND_PAN_ATTACKER + playsewithpan SE_M_PSYBEAM, SOUND_PAN_ATTACKER waitforvisualfinish delay 10 - playsewithpan SE_W043, SOUND_PAN_ATTACKER + playsewithpan SE_M_LEER, SOUND_PAN_ATTACKER createvisualtask AnimTask_ScaryFace, 5 delay 13 createsprite gEyeSparkleSpriteTemplate, ANIM_ATTACKER, 0, -16, -8 createsprite gEyeSparkleSpriteTemplate, ANIM_ATTACKER, 0, 16, -8 waitforvisualfinish createvisualtask AnimTask_ShakeTargetInPattern, 3, 20, 1, FALSE - playsewithpan SE_W081B, SOUND_PAN_TARGET + playsewithpan SE_M_STRING_SHOT2, SOUND_PAN_TARGET createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 27, 3, 16, 0, RGB_BLACK waitforvisualfinish end @@ -7783,14 +7783,14 @@ Move_SWEET_KISS: loadspritegfx ANIM_TAG_RED_HEART loadspritegfx ANIM_TAG_ANGEL createsprite gAngelSpriteTemplate, ANIM_TARGET, 2, 16, -48 - playsewithpan SE_W215, SOUND_PAN_TARGET + playsewithpan SE_M_HEAL_BELL, SOUND_PAN_TARGET delay 23 - playsewithpan SE_W215, SOUND_PAN_TARGET + playsewithpan SE_M_HEAL_BELL, SOUND_PAN_TARGET delay 23 - playsewithpan SE_W215, SOUND_PAN_TARGET + playsewithpan SE_M_HEAL_BELL, SOUND_PAN_TARGET waitforvisualfinish createsprite gRedHeartBurstSpriteTemplate, ANIM_TARGET, 3, 160, -30 - playsewithpan SE_W213, SOUND_PAN_TARGET + playsewithpan SE_M_ATTRACT, SOUND_PAN_TARGET createsprite gRedHeartBurstSpriteTemplate, ANIM_TARGET, 3, -256, -42 createsprite gRedHeartBurstSpriteTemplate, ANIM_TARGET, 3, 128, -14 createsprite gRedHeartBurstSpriteTemplate, ANIM_TARGET, 3, 416, -38 @@ -7802,9 +7802,9 @@ Move_LOVELY_KISS: loadspritegfx ANIM_TAG_PINK_HEART loadspritegfx ANIM_TAG_DEVIL createsprite gDevilSpriteTemplate, ANIM_TARGET, 2, 0, -24 - playsewithpan SE_W060B, SOUND_PAN_TARGET + playsewithpan SE_M_PSYBEAM2, SOUND_PAN_TARGET waitforvisualfinish - playsewithpan SE_W213, SOUND_PAN_TARGET + playsewithpan SE_M_ATTRACT, SOUND_PAN_TARGET createsprite gPinkHeartSpriteTemplate, ANIM_TARGET, 3, -256, -42 createsprite gPinkHeartSpriteTemplate, ANIM_TARGET, 3, 128, -14 createsprite gPinkHeartSpriteTemplate, ANIM_TARGET, 3, 416, -38 @@ -7815,13 +7815,13 @@ Move_FURY_SWIPES: loadspritegfx ANIM_TAG_SWIPE createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 5, 5 delay 4 - playsewithpan SE_W010, SOUND_PAN_TARGET + playsewithpan SE_M_SCRATCH, SOUND_PAN_TARGET createsprite gFurySwipesSpriteTemplate, ANIM_TARGET, 2, 16, 0, 1 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 3, 0, 5, 1 delay 10 createsprite gHorizontalLungeSpriteTemplate, ANIM_TARGET, 2, 5, 5 delay 4 - playsewithpan SE_W010, SOUND_PAN_TARGET + playsewithpan SE_M_SCRATCH, SOUND_PAN_TARGET createsprite gFurySwipesSpriteTemplate, ANIM_TARGET, 2, -16, 0, 0 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 4, 0, 7, 1 end @@ -7830,28 +7830,28 @@ Move_INGRAIN: loadspritegfx ANIM_TAG_ROOTS loadspritegfx ANIM_TAG_ORBS createsprite gIngrainRootSpriteTemplate, ANIM_ATTACKER, 2, 16, 26, -1, 2, 150 - playsewithpan SE_W010, SOUND_PAN_ATTACKER + playsewithpan SE_M_SCRATCH, SOUND_PAN_ATTACKER delay 10 createsprite gIngrainRootSpriteTemplate, ANIM_ATTACKER, 2, -32, 20, 1, 1, 140 - playsewithpan SE_W010, SOUND_PAN_ATTACKER + playsewithpan SE_M_SCRATCH, SOUND_PAN_ATTACKER delay 10 createsprite gIngrainRootSpriteTemplate, ANIM_ATTACKER, 2, 32, 22, 1, 0, 130 - playsewithpan SE_W010, SOUND_PAN_ATTACKER + playsewithpan SE_M_SCRATCH, SOUND_PAN_ATTACKER delay 10 createsprite gIngrainRootSpriteTemplate, ANIM_ATTACKER, 2, -16, 25, -1, 3, 120 - playsewithpan SE_W010, SOUND_PAN_ATTACKER + playsewithpan SE_M_SCRATCH, SOUND_PAN_ATTACKER delay 40 createsprite gIngrainOrbSpriteTemplate, ANIM_ATTACKER, 3, 32, 26, -1, 3, 30 delay 5 - playsewithpan SE_W145C, SOUND_PAN_ATTACKER + playsewithpan SE_M_BUBBLE3, SOUND_PAN_ATTACKER delay 5 createsprite gIngrainOrbSpriteTemplate, ANIM_ATTACKER, 3, -48, 20, 1, 2, 30 - playsewithpan SE_W145C, SOUND_PAN_ATTACKER + playsewithpan SE_M_BUBBLE3, SOUND_PAN_ATTACKER delay 5 - playsewithpan SE_W145C, SOUND_PAN_ATTACKER + playsewithpan SE_M_BUBBLE3, SOUND_PAN_ATTACKER delay 5 createsprite gIngrainOrbSpriteTemplate, ANIM_ATTACKER, 3, 48, 26, -2, 3, 18 - playsewithpan SE_W145C, SOUND_PAN_ATTACKER + playsewithpan SE_M_BUBBLE3, SOUND_PAN_ATTACKER delay 10 waitforvisualfinish end @@ -7860,13 +7860,13 @@ Move_PRESENT: loadspritegfx ANIM_TAG_ITEM_BAG createvisualtask AnimTask_IsHealingMove, 2 createsprite gPresentSpriteTemplate, ANIM_TARGET, 2, 0, -5, 10, 2, -1 - playsewithpan SE_W039, SOUND_PAN_ATTACKER + playsewithpan SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER delay 14 - playsewithpan SE_W145B, SOUND_PAN_ATTACKER + playsewithpan SE_M_BUBBLE2, SOUND_PAN_ATTACKER delay 14 - playsewithpan SE_W145B, 0 + playsewithpan SE_M_BUBBLE2, 0 delay 20 - playsewithpan SE_W145B, SOUND_PAN_TARGET + playsewithpan SE_M_BUBBLE2, SOUND_PAN_TARGET waitforvisualfinish jumpretfalse PresentDamage jumprettrue PresentHeal @@ -7874,26 +7874,26 @@ Move_PRESENT: PresentDamage: loadspritegfx ANIM_TAG_EXPLOSION - playsewithpan SE_W120, SOUND_PAN_TARGET + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET createsprite gExplosionSpriteTemplate, ANIM_TARGET, 3, 0, 0, 1, 1 delay 6 - playsewithpan SE_W120, SOUND_PAN_TARGET + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET createsprite gExplosionSpriteTemplate, ANIM_TARGET, 3, 24, -24, 1, 1 delay 6 - playsewithpan SE_W120, SOUND_PAN_TARGET + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET createsprite gExplosionSpriteTemplate, ANIM_TARGET, 3, -16, 16, 1, 1 delay 6 - playsewithpan SE_W120, SOUND_PAN_TARGET + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET createsprite gExplosionSpriteTemplate, ANIM_TARGET, 3, -24, -12, 1, 1 delay 6 - playsewithpan SE_W120, SOUND_PAN_TARGET + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET createsprite gExplosionSpriteTemplate, ANIM_TARGET, 3, 16, 16, 1, 1 end PresentHeal: loadspritegfx ANIM_TAG_GREEN_SPARKLE loadspritegfx ANIM_TAG_BLUE_STAR - playsewithpan SE_W234, SOUND_PAN_TARGET + playsewithpan SE_M_MORNING_SUN, SOUND_PAN_TARGET createsprite gPresentHealParticleSpriteTemplate, ANIM_TARGET, 4, -16, 32, -3, 1 delay 3 createsprite gPresentHealParticleSpriteTemplate, ANIM_TARGET, 4, 16, 32, -3, -1 @@ -7918,7 +7918,7 @@ PresentHeal: Move_BATON_PASS: loadspritegfx ANIM_TAG_POKEBALL - playsewithpan SE_W226, SOUND_PAN_ATTACKER + playsewithpan SE_M_BATON_PASS, SOUND_PAN_ATTACKER createvisualtask AnimTask_BlendColorCycle, 2, 31, 1, 2, 0, 11, RGB(31, 22, 30) createsprite gBatonPassPokeballSpriteTemplate, ANIM_ATTACKER, 2 end @@ -7943,7 +7943,7 @@ Move_PERISH_SONG: createsprite gPerishSongMusicNoteSpriteTemplate, ANIM_ATTACKER, 4, 15, 0, 240 createsprite gPerishSongMusicNote2SpriteTemplate, ANIM_ATTACKER, 4, 15, 0, 0 delay 20 - panse_1B SE_W195, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 + panse_1B SE_M_PERISH_SONG, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 delay 80 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 0, 16, RGB_BLACK createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, 4, 0 @@ -7964,21 +7964,21 @@ Move_SLEEP_TALK: createvisualtask AnimTask_SwayMon, 5, 0, 4, 4096, 2, ANIM_ATTACKER delay 20 createsprite gLetterZSpriteTemplate, ANIM_TARGET, 2, 0, 20, 5, -1 - playsewithpan SE_W173, SOUND_PAN_ATTACKER + playsewithpan SE_M_SNORE, SOUND_PAN_ATTACKER delay 6 createsprite gLetterZSpriteTemplate, ANIM_TARGET, 2, 0, 20, 5, -1 delay 6 createsprite gLetterZSpriteTemplate, ANIM_TARGET, 2, 0, 20, 5, -1 delay 20 createsprite gLetterZSpriteTemplate, ANIM_TARGET, 2, 0, 20, 5, -5 - playsewithpan SE_W173, SOUND_PAN_ATTACKER + playsewithpan SE_M_SNORE, SOUND_PAN_ATTACKER delay 6 createsprite gLetterZSpriteTemplate, ANIM_TARGET, 2, 0, 20, 5, -5 delay 6 createsprite gLetterZSpriteTemplate, ANIM_TARGET, 2, 0, 20, 5, -5 delay 20 createsprite gLetterZSpriteTemplate, ANIM_TARGET, 2, 0, 20, 5, -3 - playsewithpan SE_W173, SOUND_PAN_ATTACKER + playsewithpan SE_M_SNORE, SOUND_PAN_ATTACKER delay 6 createsprite gLetterZSpriteTemplate, ANIM_TARGET, 2, 0, 20, 5, -3 delay 6 @@ -7988,7 +7988,7 @@ Move_SLEEP_TALK: Move_HYPER_FANG: loadspritegfx ANIM_TAG_FANG_ATTACK - playsewithpan SE_W044, SOUND_PAN_TARGET + playsewithpan SE_M_BITE, SOUND_PAN_TARGET delay 1 delay 2 createvisualtask AnimTask_IsContest, 2 @@ -8001,7 +8001,7 @@ HyperFangContinue: createsprite gFangSpriteTemplate, ANIM_TARGET, 2 waitbgfadein createvisualtask AnimTask_ShakeMon, 3, ANIM_TARGET, 0, 10, 10, 1 - playsewithpan SE_W043, SOUND_PAN_TARGET + playsewithpan SE_M_LEER, SOUND_PAN_TARGET delay 20 restorebg waitbgfadein @@ -8020,17 +8020,17 @@ HyperFangInContest: Move_TRI_ATTACK: loadspritegfx ANIM_TAG_TRI_ATTACK_TRIANGLE createsprite gTriAttackTriangleSpriteTemplate, ANIM_TARGET, 2, 16, 0 - playsewithpan SE_W161, SOUND_PAN_ATTACKER + playsewithpan SE_M_TRI_ATTACK, SOUND_PAN_ATTACKER delay 20 - playsewithpan SE_W161, SOUND_PAN_ATTACKER + playsewithpan SE_M_TRI_ATTACK, SOUND_PAN_ATTACKER delay 20 - createsoundtask SoundTask_LoopSEAdjustPanning, SE_W161, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, 5, 6, 0, 7 + createsoundtask SoundTask_LoopSEAdjustPanning, SE_M_TRI_ATTACK, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, 5, 6, 0, 7 waitforvisualfinish createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 2, 0, 16, RGB_BLACK delay 16 loadspritegfx ANIM_TAG_FIRE createsprite gLargeFlameScatterSpriteTemplate, ANIM_TARGET, 2, 0, 0, 30, 30, -1, 0 - playsewithpan SE_W172B, SOUND_PAN_TARGET + playsewithpan SE_M_FLAME_WHEEL2, SOUND_PAN_TARGET createsprite gLargeFlameScatterSpriteTemplate, ANIM_TARGET, 2, 0, 0, 30, 30, 0, 1 delay 1 createsprite gLargeFlameScatterSpriteTemplate, ANIM_TARGET, 2, 0, 0, 30, 30, -1, -1 @@ -8049,7 +8049,7 @@ Move_TRI_ATTACK: waitforvisualfinish loadspritegfx ANIM_TAG_LIGHTNING createvisualtask AnimTask_InvertScreenColor, 2, 257, 257, 257 - playsewithpan SE_W161B, SOUND_PAN_TARGET + playsewithpan SE_M_TRI_ATTACK2, SOUND_PAN_TARGET createsprite gLightningSpriteTemplate, ANIM_TARGET, 2, 0, -48 delay 1 createsprite gLightningSpriteTemplate, ANIM_TARGET, 2, 0, -16 @@ -8071,8 +8071,8 @@ Move_WILL_O_WISP: loadspritegfx ANIM_TAG_WISP_ORB monbg ANIM_DEF_PARTNER monbgprio_2A ANIM_TARGET - playsewithpan SE_W052, SOUND_PAN_ATTACKER - waitplaysewithpan SE_W052, SOUND_PAN_ATTACKER, 10 + playsewithpan SE_M_EMBER, SOUND_PAN_ATTACKER + waitplaysewithpan SE_M_EMBER, SOUND_PAN_ATTACKER, 10 createvisualtask SoundTask_AdjustPanningVar, 2, SOUND_PAN_ATTACKER, SOUND_PAN_ATTACKER, 1, 0 createsprite gWillOWispOrbSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 0 delay 3 @@ -8085,7 +8085,7 @@ Move_WILL_O_WISP: createvisualtask SoundTask_AdjustPanningVar, 2, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, 2, 0 waitforvisualfinish monbgprio_29 - playsewithpan SE_W172B, SOUND_PAN_TARGET + playsewithpan SE_M_FLAME_WHEEL2, SOUND_PAN_TARGET createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 4, 0, 13, 1 createsprite gWillOWispFireSpriteTemplate, ANIM_ATTACKER, 2, 0 createsprite gWillOWispFireSpriteTemplate, ANIM_ATTACKER, 2, 42 @@ -8109,7 +8109,7 @@ Move_ENCORE: createsprite gClappingHand2SpriteTemplate, ANIM_ATTACKER, 3, -2, 0, 0, 0, 9 createsprite gClappingHand2SpriteTemplate, ANIM_ATTACKER, 3, 2, 0, 1, 0, 9 delay 16 - createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_W227B, SOUND_PAN_TARGET + createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_ENCORE2, SOUND_PAN_TARGET createvisualtask AnimTask_SwayMon, 5, 1, 8, 1536, 5, ANIM_TARGET waitforvisualfinish createvisualtask AnimTask_HardwarePaletteFade, 2, 248, 3, 10, 0, 1 @@ -8123,23 +8123,23 @@ Move_TRICK: createsprite gTrickBagSpriteTemplate, ANIM_ATTACKER, 2, -40, 80 createsprite gTrickBagSpriteTemplate, ANIM_ATTACKER, 2, -40, 208 delay 16 - playsewithpan SE_W166, 0 + playsewithpan SE_M_SKETCH, 0 createvisualtask AnimTask_StretchTargetUp, 3 createvisualtask AnimTask_StretchAttackerUp, 3 delay 30 - playsewithpan SE_W104, 0 + playsewithpan SE_M_DOUBLE_TEAM, 0 delay 24 - playsewithpan SE_W104, 0 + playsewithpan SE_M_DOUBLE_TEAM, 0 delay 16 - playsewithpan SE_W104, 0 + playsewithpan SE_M_DOUBLE_TEAM, 0 delay 16 - playsewithpan SE_W104, 0 + playsewithpan SE_M_DOUBLE_TEAM, 0 delay 16 - playsewithpan SE_W104, 0 + playsewithpan SE_M_DOUBLE_TEAM, 0 delay 16 - playsewithpan SE_W104, 0 + playsewithpan SE_M_DOUBLE_TEAM, 0 delay 16 - playsewithpan SE_W213, 0 + playsewithpan SE_M_ATTRACT, 0 createvisualtask AnimTask_ShakeMon, 3, ANIM_ATTACKER, 5, 0, 7, 2 createvisualtask AnimTask_ShakeMon, 3, ANIM_TARGET, 5, 0, 7, 2 waitforvisualfinish @@ -8150,11 +8150,11 @@ Move_WISH: loadspritegfx ANIM_TAG_SPARKLE_2 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 0, 10, RGB_BLACK waitforvisualfinish - panse_27 SE_W115, SOUND_PAN_TARGET, SOUND_PAN_ATTACKER, -3, 0 + panse_27 SE_M_REFLECT, SOUND_PAN_TARGET, SOUND_PAN_ATTACKER, -3, 0 createsprite gWishStarSpriteTemplate, ANIM_ATTACKER, 40 waitforvisualfinish delay 60 - loopsewithpan SE_W215, SOUND_PAN_ATTACKER, 16, 3 + loopsewithpan SE_M_HEAL_BELL, SOUND_PAN_ATTACKER, 16, 3 call GrantingStarsEffect waitforvisualfinish createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 10, 0, RGB_BLACK @@ -8163,7 +8163,7 @@ Move_WISH: Move_STOCKPILE: loadspritegfx ANIM_TAG_GRAY_ORB - playsewithpan SE_W025, SOUND_PAN_ATTACKER + playsewithpan SE_M_MEGA_KICK, SOUND_PAN_ATTACKER createvisualtask AnimTask_BlendColorCycle, 2, 2, 8, 1, 0, 12, RGB_WHITE createvisualtask AnimTask_StockpileDeformMon, 5 call StockpileAbsorb @@ -8193,11 +8193,11 @@ StockpileAbsorb: Move_SPIT_UP: loadspritegfx ANIM_TAG_RED_ORB_2 loadspritegfx ANIM_TAG_IMPACT - playsewithpan SE_W036, SOUND_PAN_ATTACKER + playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_ATTACKER createvisualtask AnimTask_SpitUpDeformMon, 5 createvisualtask AnimTask_ShakeMon2, 2, ANIM_ATTACKER, 1, 0, 8, 2 delay 45 - playsewithpan SE_W255, SOUND_PAN_ATTACKER + playsewithpan SE_M_SPIT_UP, SOUND_PAN_ATTACKER delay 3 createsprite gSpitUpOrbSpriteTemplate, ANIM_ATTACKER, 2, 0, 12 createsprite gSpitUpOrbSpriteTemplate, ANIM_ATTACKER, 2, 32, 12 @@ -8213,10 +8213,10 @@ Move_SPIT_UP: SpitUpContinue: delay 5 createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 2, FALSE, 1, 8, 1, 0 - playsewithpan SE_W003, SOUND_PAN_TARGET + playsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, -12, 10, ANIM_TARGET, 1 delay 5 - playsewithpan SE_W003, SOUND_PAN_TARGET + playsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, 12, -10, ANIM_TARGET, 1 waitforvisualfinish end @@ -8240,11 +8240,11 @@ SpitUpStrongest: Move_SWALLOW: loadspritegfx ANIM_TAG_BLUE_ORB loadspritegfx ANIM_TAG_BLUE_STAR - playsewithpan SE_W036, SOUND_PAN_ATTACKER + playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_ATTACKER createvisualtask AnimTask_SwallowDeformMon, 5 createvisualtask AnimTask_ShakeMon2, 2, ANIM_ATTACKER, 1, 0, 8, 2 delay 38 - playsewithpan SE_W255, SOUND_PAN_ATTACKER + playsewithpan SE_M_SPIT_UP, SOUND_PAN_ATTACKER createvisualtask AnimTask_ShakeMon2, 2, ANIM_ATTACKER, 2, 0, 12, 1 call SwallowEffect jumpifmoveturn 2, SwallowGood @@ -8275,8 +8275,8 @@ SwallowBest: Move_TRANSFORM: monbg ANIM_ATTACKER - playsewithpan SE_W100, SOUND_PAN_ATTACKER - waitplaysewithpan SE_W107, SOUND_PAN_ATTACKER, 48 + playsewithpan SE_M_TELEPORT, SOUND_PAN_ATTACKER + waitplaysewithpan SE_M_MINIMIZE, SOUND_PAN_ATTACKER, 48 createvisualtask AnimTask_TransformMon, 2, 0 waitforvisualfinish clearmonbg ANIM_ATTACKER @@ -8316,7 +8316,7 @@ MorningSunStar: Move_SWEET_SCENT: loadspritegfx ANIM_TAG_PINK_PETAL - playsewithpan SE_W230, SOUND_PAN_ATTACKER + playsewithpan SE_M_SWEET_SCENT, SOUND_PAN_ATTACKER createsprite gSweetScentPetalSpriteTemplate, ANIM_ATTACKER, 2, 100, 0, 100 delay 25 setpan 0 @@ -8357,11 +8357,11 @@ Move_HYPER_BEAM: createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 4, 0, 16, RGB_BLACK waitforvisualfinish delay 10 - playsewithpan SE_W063, SOUND_PAN_ATTACKER + playsewithpan SE_M_HYPER_BEAM, SOUND_PAN_ATTACKER createvisualtask AnimTask_ShakeMon2, 2, ANIM_ATTACKER, 1, 0, 4, 1 waitforvisualfinish delay 30 - createsoundtask SoundTask_LoopSEAdjustPanning, SE_W063B, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, 1, 15, 0, 5 + createsoundtask SoundTask_LoopSEAdjustPanning, SE_M_HYPER_BEAM2, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, 1, 15, 0, 5 createvisualtask AnimTask_ShakeMon, 2, ANIM_ATTACKER, 0, 4, 50, 1 createvisualtask AnimTask_FlashAnimTagWithColor, 2, ANIM_TAG_ORBS, 1, 12, RGB(31, 0, 0), 16, 0, 0 call HyperBeamOrbs @@ -8405,7 +8405,7 @@ HyperBeamOrbs: Move_FLATTER: loadspritegfx ANIM_TAG_SPOTLIGHT loadspritegfx ANIM_TAG_CONFETTI - createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_W227B, SOUND_PAN_TARGET + createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_ENCORE2, SOUND_PAN_TARGET createvisualtask AnimTask_CreateSpotlight, 2 createvisualtask AnimTask_HardwarePaletteFade, 2, 248, 3, 0, 10, 0 waitforvisualfinish @@ -8415,7 +8415,7 @@ Move_FLATTER: delay 10 createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 5, 2, ANIM_TARGET delay 0 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_W260, SOUND_PAN_ATTACKER + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_FLATTER, SOUND_PAN_ATTACKER call CreateFlatterConfetti call CreateFlatterConfetti call CreateFlatterConfetti @@ -8436,7 +8436,7 @@ Move_FLATTER: call CreateFlatterConfetti call CreateFlatterConfetti delay 5 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_W260, SOUND_PAN_TARGET + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_FLATTER, SOUND_PAN_TARGET waitforvisualfinish createvisualtask AnimTask_HardwarePaletteFade, 2, 248, 3, 10, 0, 1 waitforvisualfinish @@ -8452,8 +8452,8 @@ Move_ROLE_PLAY: createvisualtask AnimTask_BlendBattleAnimPal, 10, 4, 2, 0, 16, RGB_WHITE createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 2, 0, 10, RGB_BLACK waitforvisualfinish - playsewithpan SE_W161, SOUND_PAN_ATTACKER - waitplaysewithpan SE_W197, SOUND_PAN_ATTACKER, 30 + playsewithpan SE_M_TRI_ATTACK, SOUND_PAN_ATTACKER + waitplaysewithpan SE_M_DETECT, SOUND_PAN_ATTACKER, 30 createvisualtask AnimTask_RolePlaySilhouette, 2 waitforvisualfinish clearmonbg ANIM_ATK_PARTNER @@ -8465,13 +8465,13 @@ Move_ROLE_PLAY: Move_REFRESH: loadspritegfx ANIM_TAG_THIN_RING loadspritegfx ANIM_TAG_SPARKLE_2 - playsewithpan SE_W287, SOUND_PAN_ATTACKER + playsewithpan SE_M_STAT_INCREASE, SOUND_PAN_ATTACKER createvisualtask AnimTask_StatusClearedEffect, 2, 0 waitforvisualfinish - playsewithpan SE_W234, SOUND_PAN_ATTACKER + playsewithpan SE_M_MORNING_SUN, SOUND_PAN_ATTACKER call GrantingStarsEffect waitforvisualfinish - playsewithpan SE_REAPOKE, SOUND_PAN_ATTACKER + playsewithpan SE_SHINY, SOUND_PAN_ATTACKER createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 10, 0, RGB(12, 24, 30) createsprite gThinRingExpandingSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 0, 0 end @@ -8482,11 +8482,11 @@ Move_BLAZE_KICK: loadspritegfx ANIM_TAG_SMALL_EMBER monbg ANIM_TARGET setalpha 12, 8 - playsewithpan SE_W172, SOUND_PAN_TARGET + playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_TARGET createsprite gSpinningHandOrFootSpriteTemplate, ANIM_TARGET, 3, 0, 0, 1, 30 createvisualtask AnimTask_BlendBattleAnimPal, 10, 4, 2, 0, 7, RGB_WHITE delay 30 - playsewithpan SE_W007, SOUND_PAN_TARGET + playsewithpan SE_M_FIRE_PUNCH, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, ANIM_TARGET, 0 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 3, 0, 14, 1 createvisualtask AnimTask_BlendBattleAnimPal, 10, 4, 2, 0, 0, RGB_WHITE @@ -8521,7 +8521,7 @@ Move_SAND_TOMB: loadspritegfx ANIM_TAG_MUD_SAND createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 4, 2, 0, 7, RGB(19, 17, 0) createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 2, 43, 1 - playsewithpan SE_W328, SOUND_PAN_TARGET + playsewithpan SE_M_SAND_TOMB, SOUND_PAN_TARGET call SandTombSwirlingDirt call SandTombSwirlingDirt call SandTombSwirlingDirt @@ -8548,14 +8548,14 @@ SandTombSwirlingDirt: Move_SHEER_COLD: fadetobg BG_ICE waitbgfadeout - playsewithpan SE_W196, 0 + playsewithpan SE_M_ICY_WIND, 0 waitbgfadein loadspritegfx ANIM_TAG_ICE_CUBE monbg ANIM_DEF_PARTNER monbgprio_28 ANIM_TARGET setalpha 12, 8 createvisualtask AnimTask_FrozenIceCube, 2 - waitplaysewithpan SE_W258, SOUND_PAN_TARGET, 17 + waitplaysewithpan SE_M_HAIL, SOUND_PAN_TARGET, 17 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff @@ -8572,11 +8572,11 @@ Move_ARM_THRUST: delay 6 createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 4, 3 delay 4 - playsewithpan SE_W207, SOUND_PAN_TARGET + playsewithpan SE_M_SWAGGER, SOUND_PAN_TARGET createsprite gArmThrustHandSpriteTemplate, ANIM_TARGET, 2, 10, -8, 14, 3 waitforvisualfinish createvisualtask AnimTask_RotateMonSpriteToSide, 5, 8, 5, 0, 1 - playsewithpan SE_W003, SOUND_PAN_TARGET + playsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET choosetwoturnanim ArmThrustRight, ArmThrustLeft ArmThrustContinue: createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 4, 0, 6, 1 @@ -8591,7 +8591,7 @@ ArmThrustLeft: goto ArmThrustContinue Move_MUDDY_WATER: - panse_1B SE_W250, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 + panse_1B SE_M_WHIRLPOOL, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 createvisualtask AnimTask_CreateSurfWave, 2, TRUE waitforvisualfinish end @@ -8624,7 +8624,7 @@ Move_BULLET_SEED: Move_DRAGON_CLAW: loadspritegfx ANIM_TAG_SMALL_EMBER loadspritegfx ANIM_TAG_CLAW_SLASH - playsewithpan SE_W221B, SOUND_PAN_ATTACKER + playsewithpan SE_M_SACRED_FIRE2, SOUND_PAN_ATTACKER createvisualtask AnimTask_BlendBattleAnimPal, 10, 2, 4, 0, 8, RGB(31, 19, 0) createvisualtask AnimTask_ShakeMon, 5, ANIM_ATTACKER, 0, 2, 15, 1 call DragonClawFireSpiral @@ -8632,7 +8632,7 @@ Move_DRAGON_CLAW: createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 6, 4 createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 28, 528, 30, 13, 50, ANIM_ATTACKER delay 2 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_W013, SOUND_PAN_TARGET + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_RAZOR_WIND, SOUND_PAN_TARGET createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, -10, -10, 0 createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, -10, 10, 0 createsprite gShakeMonOrTerrainSpriteTemplate, ANIM_ATTACKER, 2, -4, 1, 10, 3, 1 @@ -8645,7 +8645,7 @@ Move_DRAGON_CLAW: createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 6, 4 createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 28, 512, 25, 16, 46, ANIM_ATTACKER delay 2 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_W013, SOUND_PAN_TARGET + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_RAZOR_WIND, SOUND_PAN_TARGET createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, 10, -10, 1 createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, 10, 10, 1 createsprite gShakeMonOrTerrainSpriteTemplate, ANIM_ATTACKER, 2, -4, 1, 10, 3, 1 @@ -8689,7 +8689,7 @@ Move_MUD_SHOT: createvisualtask AnimTask_ShakeMon, 5, ANIM_ATTACKER, 0, 2, 46, 1 delay 6 createvisualtask AnimTask_StartSinAnimTimer, 5, 100 - panse_1B SE_W250, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +1, 0 + panse_1B SE_M_WHIRLPOOL, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +1, 0 call MudShotOrbs call MudShotOrbs call MudShotOrbs @@ -8717,7 +8717,7 @@ Move_METEOR_MASH: loadspritegfx ANIM_TAG_GOLD_STARS loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_HANDS_AND_FEET - panse_1B SE_W112, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +3, 0 + panse_1B SE_M_BARRIER, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +3, 0 fadetobg BG_COSMIC waitbgfadein waitforvisualfinish @@ -8728,7 +8728,7 @@ Move_METEOR_MASH: createsprite gSpinningHandOrFootSpriteTemplate, ANIM_TARGET, 3, 0, 0, 0, 30 createsprite gMeteorMashStarSpriteTemplate, ANIM_TARGET, 3, -80, -64, 40, 32, 30 delay 20 - playsewithpan SE_W233B, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, ANIM_TARGET, 1 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 5, 0, 20, 1 waitforvisualfinish @@ -8742,7 +8742,7 @@ Move_REVENGE: loadspritegfx ANIM_TAG_PURPLE_SCRATCH monbg ANIM_TARGET setalpha 12, 8 - playsewithpan SE_W036, SOUND_PAN_ATTACKER + playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_ATTACKER createsprite gRevengeSmallScratchSpriteTemplate, ANIM_ATTACKER, 2, 10, -10 waitforvisualfinish createvisualtask AnimTask_BlendColorCycle, 2, 2, 0, 4, 2, 8, RGB_RED @@ -8751,17 +8751,17 @@ Move_REVENGE: loadspritegfx ANIM_TAG_PURPLE_SWIPE createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 6, 4 delay 4 - playsewithpan SE_W207, SOUND_PAN_TARGET + playsewithpan SE_M_SWAGGER, SOUND_PAN_TARGET createsprite gRevengeBigScratchSpriteTemplate, ANIM_TARGET, 2, 10, -10 waitforvisualfinish unloadspritegfx ANIM_TAG_PURPLE_SWIPE loadspritegfx ANIM_TAG_IMPACT createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 3, 0, 10, 1 createsprite gPersistHitSplatSpriteTemplate, ANIM_TARGET, 3, -10, -8, ANIM_TARGET, 1, 8 - playsewithpan SE_W233B, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET delay 8 createsprite gPersistHitSplatSpriteTemplate, ANIM_TARGET, 3, 10, 8, ANIM_TARGET, 1, 8 - playsewithpan SE_W025B, SOUND_PAN_TARGET + playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_TARGET blendoff @@ -8770,7 +8770,7 @@ Move_REVENGE: Move_POISON_FANG: loadspritegfx ANIM_TAG_FANG_ATTACK loadspritegfx ANIM_TAG_POISON_BUBBLE - playsewithpan SE_W044, SOUND_PAN_TARGET + playsewithpan SE_M_BITE, SOUND_PAN_TARGET createsprite gFangSpriteTemplate, ANIM_TARGET, 2 delay 10 createvisualtask AnimTask_ShakeMon, 3, ANIM_TARGET, 3, 0, 10, 1 @@ -8781,7 +8781,7 @@ Move_POISON_FANG: end Move_SUBSTITUTE: - playsewithpan SE_W213, SOUND_PAN_ATTACKER + playsewithpan SE_M_ATTRACT, SOUND_PAN_ATTACKER createvisualtask AnimTask_MonToSubstitute, 2 end @@ -8794,50 +8794,50 @@ Move_FRENZY_PLANT: createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 1, 2, 0, 5, RGB_BLACK waitforvisualfinish createsprite gFrenzyPlantRootSpriteTemplate, ANIM_ATTACKER, 2, 10, 8, 2, 0, 0, 100 - playsewithpan SE_W010, SOUND_PAN_ATTACKER + playsewithpan SE_M_SCRATCH, SOUND_PAN_ATTACKER delay 5 createsprite gFrenzyPlantRootSpriteTemplate, ANIM_ATTACKER, 2, 20, -8, -2, 0, 1, 95 - playsewithpan SE_W010, -43 + playsewithpan SE_M_SCRATCH, -43 delay 5 createsprite gFrenzyPlantRootSpriteTemplate, ANIM_ATTACKER, 2, 30, 8, -4, 0, 0, 90 - playsewithpan SE_W010, -22 + playsewithpan SE_M_SCRATCH, -22 delay 5 createsprite gFrenzyPlantRootSpriteTemplate, ANIM_ATTACKER, 2, 40, -8, 4, 0, 1, 85 - playsewithpan SE_W010, 0 + playsewithpan SE_M_SCRATCH, 0 delay 5 createsprite gFrenzyPlantRootSpriteTemplate, ANIM_ATTACKER, 2, 50, 8, 0, 0, 0, 85 - playsewithpan SE_W010, +21 + playsewithpan SE_M_SCRATCH, +21 delay 5 createsprite gFrenzyPlantRootSpriteTemplate, ANIM_ATTACKER, 2, 60, -8, -2, 0, 1, 85 - playsewithpan SE_W010, +42 + playsewithpan SE_M_SCRATCH, +42 delay 5 createsprite gFrenzyPlantRootSpriteTemplate, ANIM_ATTACKER, 2, 75, 8, 0, 0, 0, 85 - playsewithpan SE_W010, SOUND_PAN_TARGET + playsewithpan SE_M_SCRATCH, SOUND_PAN_TARGET delay 5 createsprite gFrenzyPlantRootSpriteTemplate, ANIM_ATTACKER, 2, 85, 16, 6, 0, 3, 80 - playsewithpan SE_W010, SOUND_PAN_TARGET + playsewithpan SE_M_SCRATCH, SOUND_PAN_TARGET delay 5 createsprite gFrenzyPlantRootSpriteTemplate, ANIM_ATTACKER, 2, 85, -16, -6, 0, 2, 75 - playsewithpan SE_W010, SOUND_PAN_TARGET + playsewithpan SE_M_SCRATCH, SOUND_PAN_TARGET delay 5 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -10, -10, ANIM_TARGET, 3 - playsewithpan SE_W003, SOUND_PAN_TARGET + playsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET createvisualtask AnimTask_ShakeMon, 3, ANIM_TARGET, 8, 0, 20, 1 delay 3 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 10, 8, ANIM_TARGET, 3 - playsewithpan SE_W003, SOUND_PAN_TARGET + playsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET delay 3 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 10, -3, ANIM_TARGET, 2 - playsewithpan SE_W003, SOUND_PAN_TARGET + playsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET delay 3 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -3, 1, ANIM_TARGET, 2 - playsewithpan SE_W003, SOUND_PAN_TARGET + playsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET delay 2 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -10, 1, ANIM_TARGET, 1 - playsewithpan SE_W003, SOUND_PAN_TARGET + playsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET delay 2 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 10, ANIM_TARGET, 1 - playsewithpan SE_W003, SOUND_PAN_TARGET + playsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET waitforvisualfinish createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 1, 2, 5, 0, RGB_BLACK waitforvisualfinish @@ -8860,7 +8860,7 @@ Move_METAL_SOUND: waitforvisualfinish end MetalSoundRings: - panse_1B SE_W103, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 + panse_1B SE_M_SCREECH, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 createsprite gMetalSoundSpriteTemplate, ANIM_TARGET, 2, 16, 0, 0, 0, 30, 0 delay 2 return @@ -8883,20 +8883,20 @@ FocusPunchContinue: waitbgfadein monbg ANIM_DEF_PARTNER setalpha 12, 8 - playsewithpan SE_W207, SOUND_PAN_TARGET + playsewithpan SE_M_SWAGGER, SOUND_PAN_TARGET createsprite gFocusPunchFistSpriteTemplate, ANIM_TARGET, 2 delay 10 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -10, -8, ANIM_TARGET, 0 createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 8, 0, 24, 1 delay 8 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 10, 2, ANIM_TARGET, 0 - playsewithpan SE_W233B, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET delay 8 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 10, -6, ANIM_TARGET, 0 - playsewithpan SE_W233B, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET delay 8 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 8, ANIM_TARGET, 0 - playsewithpan SE_W025B, SOUND_PAN_TARGET + playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET waitforvisualfinish restorebg waitbgfadein @@ -8930,94 +8930,94 @@ ReturnContinue: end ReturnWeak: createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 16, 1, ANIM_ATTACKER - createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_W039, SOUND_PAN_ATTACKER + createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER waitforvisualfinish createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 16, 1, ANIM_ATTACKER - createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_W039, SOUND_PAN_ATTACKER + createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER delay 5 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -10, -8, ANIM_TARGET, 2 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_W004, SOUND_PAN_TARGET + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_COMET_PUNCH, SOUND_PAN_TARGET goto ReturnContinue ReturnMedium: createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 6, 1, ANIM_ATTACKER - createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_W039, SOUND_PAN_ATTACKER + createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER waitforvisualfinish createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 6, 1, ANIM_ATTACKER - createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_W039, SOUND_PAN_ATTACKER + createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER waitforvisualfinish delay 11 createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 5, 4 delay 6 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, ANIM_TARGET, 2 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_W025B, SOUND_PAN_TARGET + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_MEGA_KICK2, SOUND_PAN_TARGET goto ReturnContinue ReturnStrong: createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 6, 1, ANIM_ATTACKER - createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_W039, SOUND_PAN_ATTACKER + createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER waitforvisualfinish createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 6, 1, ANIM_ATTACKER - createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_W039, SOUND_PAN_ATTACKER + createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER waitforvisualfinish createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 6, 1, ANIM_ATTACKER - createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_W039, SOUND_PAN_ATTACKER + createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER waitforvisualfinish createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 6, 1, ANIM_ATTACKER - createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_W039, SOUND_PAN_ATTACKER + createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER waitforvisualfinish createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -10, -8, ANIM_TARGET, 2 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_W233B, SOUND_PAN_TARGET + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_VITAL_THROW2, SOUND_PAN_TARGET createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 6, 0, 8, 1 delay 8 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 10, 10, ANIM_TARGET, 2 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_W233B, SOUND_PAN_TARGET + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_VITAL_THROW2, SOUND_PAN_TARGET createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 6, 0, 8, 1 delay 8 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 3, -5, ANIM_TARGET, 2 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_W233B, SOUND_PAN_TARGET + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_VITAL_THROW2, SOUND_PAN_TARGET createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 6, 0, 8, 1 delay 8 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -5, 3, ANIM_TARGET, 2 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_W233B, SOUND_PAN_TARGET + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_VITAL_THROW2, SOUND_PAN_TARGET createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 6, 0, 8, 1 goto ReturnContinue ReturnStrongest: createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 0, 0, 6, RGB_BLACK waitforvisualfinish createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 16, 1, ANIM_ATTACKER - createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_W039, SOUND_PAN_ATTACKER + createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER delay 8 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 3, -5, ANIM_TARGET, 2 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_W233B, SOUND_PAN_TARGET + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_VITAL_THROW2, SOUND_PAN_TARGET waitforvisualfinish createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 12, 1, ANIM_ATTACKER - createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_W039, SOUND_PAN_ATTACKER + createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER delay 5 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -10, -8, ANIM_TARGET, 2 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_W233B, SOUND_PAN_TARGET + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_VITAL_THROW2, SOUND_PAN_TARGET createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 6, 0, 8, 1 waitforvisualfinish delay 4 createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 8, 1, ANIM_ATTACKER - createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_W039, SOUND_PAN_ATTACKER + createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER delay 5 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -10, -8, ANIM_TARGET, 2 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_W233B, SOUND_PAN_TARGET + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_VITAL_THROW2, SOUND_PAN_TARGET createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 6, 0, 8, 1 waitforvisualfinish delay 2 createvisualtask AnimTask_TraceMonBlended, 2, 0, 4, 5, 1 createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 4, 1, ANIM_ATTACKER - createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_W039, SOUND_PAN_ATTACKER + createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -10, -8, ANIM_TARGET, 2 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_W233B, SOUND_PAN_TARGET + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_VITAL_THROW2, SOUND_PAN_TARGET createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 6, 0, 8, 1 createvisualtask AnimTask_TraceMonBlended, 2, 0, 4, 5, 1 waitforvisualfinish createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 4, 2, ANIM_ATTACKER - createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_W039, SOUND_PAN_ATTACKER + createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER delay 5 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -10, -8, ANIM_TARGET, 2 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_W233B, SOUND_PAN_TARGET + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_VITAL_THROW2, SOUND_PAN_TARGET createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 6, 0, 8, 1 createvisualtask AnimTask_TraceMonBlended, 2, 0, 4, 5, 1 waitforvisualfinish @@ -9026,25 +9026,25 @@ ReturnStrongest: call ReturnStrongestHit call ReturnStrongestHit createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -10, -8, ANIM_TARGET, 0 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_W025B, SOUND_PAN_TARGET + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_MEGA_KICK2, SOUND_PAN_TARGET createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 8, 0, 24, 1 delay 6 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 10, 10, ANIM_TARGET, 0 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_W025B, SOUND_PAN_TARGET + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_MEGA_KICK2, SOUND_PAN_TARGET delay 6 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 3, -5, ANIM_TARGET, 0 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_W025B, SOUND_PAN_TARGET + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_MEGA_KICK2, SOUND_PAN_TARGET delay 6 createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -5, 3, ANIM_TARGET, 0 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_W025B, SOUND_PAN_TARGET + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_MEGA_KICK2, SOUND_PAN_TARGET waitforvisualfinish createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 0, 6, 0, RGB_BLACK goto ReturnContinue ReturnStrongestHit: createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 4, 3, ANIM_ATTACKER - createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_W039, SOUND_PAN_ATTACKER + createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 2 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_W233B, SOUND_PAN_TARGET + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_VITAL_THROW2, SOUND_PAN_TARGET createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 6, 0, 8, 1 createvisualtask AnimTask_TraceMonBlended, 2, 0, 4, 5, 1 waitforvisualfinish @@ -9052,8 +9052,8 @@ ReturnStrongestHit: Move_COSMIC_POWER: loadspritegfx ANIM_TAG_SPARKLE_2 - createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_W322, 0 - playsewithpan SE_W322, 0 + createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_COSMIC_POWER, 0 + playsewithpan SE_M_COSMIC_POWER, 0 createvisualtask AnimTask_BlendNonAttackerPalettes, 2, 0, 0, 15, RGB_BLACK waitforvisualfinish fadetobg BG_COSMIC @@ -9061,7 +9061,7 @@ Move_COSMIC_POWER: createvisualtask AnimTask_StartSlidingBg, 2, 0, 128, 0, -1 waitbgfadein delay 70 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_W234, SOUND_PAN_ATTACKER + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_MORNING_SUN, SOUND_PAN_ATTACKER createsprite gGrantingStarsSpriteTemplate, ANIM_ATTACKER, 2, -15, 0, 0, 0, 32, 60 delay 8 createsprite gGrantingStarsSpriteTemplate, ANIM_ATTACKER, 2, 12, -5, 0, 0, 32, 60 @@ -9080,7 +9080,7 @@ Move_BLAST_BURN: loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER setalpha 12, 8 - playsewithpan SE_W221, SOUND_PAN_ATTACKER + playsewithpan SE_M_SACRED_FIRE, SOUND_PAN_ATTACKER createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 2, -32, 0, 24, 0, 0, 0 createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 2, -20, -10, 24, 0, 0, 0 createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 66, 0, -16, 24, 0, 0, 0 @@ -9090,7 +9090,7 @@ Move_BLAST_BURN: createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 2, 0, 16, 24, 0, 0, 0 createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 2, -20, 10, 24, 0, 0, 0 delay 25 - playsewithpan SE_W172B, SOUND_PAN_ATTACKER + playsewithpan SE_M_FLAME_WHEEL2, SOUND_PAN_ATTACKER createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 2, -64, 0, 24, 0, 0, 0 createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 6, -40, -20, 24, 0, 0, 0 createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 70, 0, -32, 24, 0, 0, 0 @@ -9102,7 +9102,7 @@ Move_BLAST_BURN: createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 2, -40, 20, 24, 0, 0, 0 createvisualtask AnimTask_InvertScreenColor, 2, 257, 257, 257 delay 25 - playsewithpan SE_W172B, SOUND_PAN_ATTACKER + playsewithpan SE_M_FLAME_WHEEL2, SOUND_PAN_ATTACKER createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 2, -96, 0, 24, 0, 0, 0 createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 6, -60, -30, 24, 0, 0, 0 createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 70, 0, -48, 24, 0, 0, 0 @@ -9128,24 +9128,24 @@ Move_ROCK_TOMB: createsprite gRockTombRockSpriteTemplate, ANIM_TARGET, 2, 20, 12, 64, 114, 0 delay 8 createvisualtask AnimTask_ShakeBattleTerrain, 2, 0, 2, 3, 1 - playsewithpan SE_W070, SOUND_PAN_TARGET + playsewithpan SE_M_STRENGTH, SOUND_PAN_TARGET delay 8 createsprite gRockTombRockSpriteTemplate, ANIM_TARGET, 2, -20, 12, 64, 98, 0 delay 8 createvisualtask AnimTask_ShakeBattleTerrain, 2, 0, 2, 3, 1 - playsewithpan SE_W070, SOUND_PAN_TARGET + playsewithpan SE_M_STRENGTH, SOUND_PAN_TARGET delay 8 createsprite gRockTombRockSpriteTemplate, ANIM_TARGET, 66, 3, 6, 64, 82, 0 delay 8 createvisualtask AnimTask_ShakeBattleTerrain, 2, 0, 2, 3, 1 - playsewithpan SE_W070, SOUND_PAN_TARGET + playsewithpan SE_M_STRENGTH, SOUND_PAN_TARGET delay 8 createsprite gRockTombRockSpriteTemplate, ANIM_TARGET, 2, -3, 13, 64, 66, 0 delay 8 createvisualtask AnimTask_ShakeBattleTerrain, 2, 0, 2, 3, 1 - playsewithpan SE_W070, SOUND_PAN_TARGET + playsewithpan SE_M_STRENGTH, SOUND_PAN_TARGET delay 24 - playsewithpan SE_W063, SOUND_PAN_TARGET + playsewithpan SE_M_HYPER_BEAM, SOUND_PAN_TARGET createsprite gRedXSpriteTemplate, ANIM_TARGET, 5, ANIM_TARGET, 50 createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 3, 0, 20, 1 createvisualtask AnimTask_ShakeBattleTerrain, 2, 2, 0, 10, 1 @@ -9154,8 +9154,8 @@ Move_ROCK_TOMB: Move_SILVER_WIND: loadspritegfx ANIM_TAG_SPARKLE_6 - panse_1B SE_W016, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 - playsewithpan SE_W234, 0 + panse_1B SE_M_GUST, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 + playsewithpan SE_M_MORNING_SUN, 0 delay 0 monbg ANIM_DEF_PARTNER monbgprio_29 @@ -9194,7 +9194,7 @@ SilverWindContinue: createsprite gSilverWindSmallSparkSpriteTemplate, ANIM_TARGET, 66, -4, 16, 0, 6, 1, 2, 1 createsprite gSilverWindSmallSparkSpriteTemplate, ANIM_TARGET, 66, -16, 12, 192, 5, 2, 3, 1 waitforvisualfinish - playsewithpan SE_W016B, SOUND_PAN_TARGET + playsewithpan SE_M_GUST2, SOUND_PAN_TARGET clearmonbg ANIM_DEF_PARTNER delay 0 restorebg @@ -9210,7 +9210,7 @@ SilverWindOnPlayer: goto SilverWindContinue Move_SNATCH: - playsewithpan SE_W036, SOUND_PAN_ATTACKER + playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_ATTACKER createvisualtask AnimTask_WindUpLunge, 5, ANIM_ATTACKER, -12, 4, 10, 10, 12, 6 end @@ -9220,10 +9220,10 @@ Move_DIVE: choosetwoturnanim DiveSetUp, DiveAttack DiveSetUp: loadspritegfx ANIM_TAG_ROUND_SHADOW - playsewithpan SE_W029, SOUND_PAN_ATTACKER + playsewithpan SE_M_HEADBUTT, SOUND_PAN_ATTACKER createsprite gDiveBallSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 13, 336 waitforvisualfinish - playsewithpan SE_W291, SOUND_PAN_ATTACKER + playsewithpan SE_M_DIVE, SOUND_PAN_ATTACKER createsprite gDiveWaterSplashSpriteTemplate, ANIM_ATTACKER, 3, 0 call DiveSetUpWaterDroplets call DiveSetUpWaterDroplets @@ -9240,7 +9240,7 @@ DiveAttack: loadspritegfx ANIM_TAG_SMALL_BUBBLES monbg ANIM_DEF_PARTNER setalpha 12, 8 - playsewithpan SE_W153, SOUND_PAN_TARGET + playsewithpan SE_M_EXPLOSION, SOUND_PAN_TARGET createsprite gDiveWaterSplashSpriteTemplate, ANIM_TARGET, 3, 1 call DiveAttackWaterDroplets call DiveAttackWaterDroplets @@ -9264,11 +9264,11 @@ Move_ROCK_BLAST: loadspritegfx ANIM_TAG_IMPACT createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 4, 6 delay 3 - playsewithpan SE_W207, SOUND_PAN_ATTACKER + playsewithpan SE_M_SWAGGER, SOUND_PAN_ATTACKER createsprite gRockBlastRockSpriteTemplate, ANIM_TARGET, 2, 16, 0, 0, 0, 25, 257 waitforvisualfinish createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, ANIM_TARGET, 1 - playsewithpan SE_W088, SOUND_PAN_TARGET + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET createsprite gRockFragmentSpriteTemplate, ANIM_TARGET, 2, 0, 0, 20, 24, 14, 2 createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 5, 1 createsprite gRockFragmentSpriteTemplate, ANIM_TARGET, 2, 5, 0, -20, 24, 14, 1 @@ -9290,13 +9290,13 @@ Move_OVERHEAT: delay 1 createvisualtask AnimTask_CopyPalFadedToUnfaded, 5, 0 delay 1 - playsewithpan SE_W082, SOUND_PAN_ATTACKER + playsewithpan SE_M_DRAGON_RAGE, SOUND_PAN_ATTACKER createvisualtask AnimTask_CopyPalUnfadedToBackup, 5, 1, 0 delay 1 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 2, 1, 0, 13, RGB(28, 0, 0) createvisualtask AnimTask_ShakeMon, 5, ANIM_ATTACKER, 2, 0, 15, 1 waitforvisualfinish - playsewithpan SE_W172B, SOUND_PAN_ATTACKER + playsewithpan SE_M_FLAME_WHEEL2, SOUND_PAN_ATTACKER createsprite gOverheatFlameSpriteTemplate, ANIM_ATTACKER, 2, 1, 0, 30, 25, -20 createsprite gOverheatFlameSpriteTemplate, ANIM_ATTACKER, 2, 1, 32, 30, 25, -20 createsprite gOverheatFlameSpriteTemplate, ANIM_ATTACKER, 2, 1, 64, 30, 25, -20 @@ -9326,17 +9326,17 @@ Move_OVERHEAT: delay 5 waitforvisualfinish createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, -5, 3, ANIM_TARGET, 0 - playsewithpan SE_W007, SOUND_PAN_TARGET + playsewithpan SE_M_FIRE_PUNCH, SOUND_PAN_TARGET createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 10, 0, 25, 1 delay 6 createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 8, -5, ANIM_TARGET, 0 - playsewithpan SE_W007, SOUND_PAN_TARGET + playsewithpan SE_M_FIRE_PUNCH, SOUND_PAN_TARGET delay 8 createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 10, 10, ANIM_TARGET, 0 - playsewithpan SE_W007, SOUND_PAN_TARGET + playsewithpan SE_M_FIRE_PUNCH, SOUND_PAN_TARGET delay 8 createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, ANIM_TARGET, 0 - playsewithpan SE_W007, SOUND_PAN_TARGET + playsewithpan SE_M_FIRE_PUNCH, SOUND_PAN_TARGET createvisualtask AnimTask_CopyPalFadedToUnfaded, 5, 1 delay 1 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 2, -1, 0, 13, RGB(18, 18, 18) @@ -9363,12 +9363,12 @@ Move_HYDRO_CANNON: loadspritegfx ANIM_TAG_WATER_IMPACT monbg ANIM_DEF_PARTNER setalpha 12, 8 - playsewithpan SE_W057, SOUND_PAN_ATTACKER + playsewithpan SE_M_SURF, SOUND_PAN_ATTACKER createsprite gHydroCannonChargeSpriteTemplate, ANIM_TARGET, 2 delay 10 createvisualtask AnimTask_InvertScreenColor, 2, 257, 257, 257 delay 30 - panse_1B SE_W056, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 + panse_1B SE_M_HYDRO_PUMP, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 call HydroCannonBeam createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 10, 0, 40, 1 createsprite gWaterHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, ANIM_TARGET, 0 @@ -9402,11 +9402,11 @@ HydroCannonBeam: Move_ASTONISH: loadspritegfx ANIM_TAG_SWEAT_BEAD - playsewithpan SE_W227, SOUND_PAN_ATTACKER + playsewithpan SE_M_ENCORE, SOUND_PAN_ATTACKER createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 4, 6 delay 25 createsprite gSprayWaterDropletSpriteTemplate, ANIM_TARGET, 5, 0, 1 - playsewithpan SE_W166, SOUND_PAN_TARGET + playsewithpan SE_M_SKETCH, SOUND_PAN_TARGET createsprite gSprayWaterDropletSpriteTemplate, ANIM_TARGET, 5, 1, 1 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 4, 0, 5, 1 createvisualtask AnimTask_StretchTargetUp, 3 @@ -9425,7 +9425,7 @@ Move_SEISMIC_TOSS: fadetobg BG_IN_AIR waitbgfadeout createvisualtask AnimTask_MoveSeismicTossBg, 3 - playsewithpan SE_W327, 0 + playsewithpan SE_M_SKY_UPPERCUT, 0 waitbgfadein waitforvisualfinish createvisualtask AnimTask_SeismicTossBgAccelerateDownAtEnd, 3 @@ -9463,7 +9463,7 @@ SeismicTossStrong: goto SeismicTossContinue SeismicTossRockScatter1: createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, -10, -8, ANIM_TARGET, 1 - playsewithpan SE_W070, SOUND_PAN_TARGET + playsewithpan SE_M_STRENGTH, SOUND_PAN_TARGET createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 0, 3, 5, 1 createsprite gRockScatterSpriteTemplate, ANIM_TARGET, 2, -12, 27, 2, 3 createsprite gRockScatterSpriteTemplate, ANIM_TARGET, 2, 8, 28, 3, 4 @@ -9472,7 +9472,7 @@ SeismicTossRockScatter1: return SeismicTossRockScatter2: createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 10, -8, ANIM_TARGET, 1 - playsewithpan SE_W088, SOUND_PAN_TARGET + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 0, 3, 5, 1 createsprite gRockScatterSpriteTemplate, ANIM_TARGET, 2, -12, 32, 3, 4 createsprite gRockScatterSpriteTemplate, ANIM_TARGET, 2, 8, 31, 2, 2 @@ -9483,7 +9483,7 @@ SeismicTossRockScatter2: Move_MAGIC_COAT: loadspritegfx ANIM_TAG_ORANGE_LIGHT_WALL setalpha 0, 16 - waitplaysewithpan SE_W112, SOUND_PAN_ATTACKER, 15 + waitplaysewithpan SE_M_BARRIER, SOUND_PAN_ATTACKER, 15 createsprite gMagicCoatWallSpriteTemplate, ANIM_ATTACKER, 3, 40, 0, ANIM_TAG_ORANGE_LIGHT_WALL waitforvisualfinish delay 1 @@ -9495,7 +9495,7 @@ Move_WATER_PULSE: loadspritegfx ANIM_TAG_BLUE_RING_2 monbg ANIM_TARGET monbgprio_28 ANIM_TARGET - playsewithpan SE_W145C, SOUND_PAN_ATTACKER + playsewithpan SE_M_BUBBLE3, SOUND_PAN_ATTACKER createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 0, 0, 7, RGB(0, 25, 28) delay 10 createsprite gWaterPulseBubbleSpriteTemplate, ANIM_ATTACKER, 66, 100, 100, 8, 1, 20, 40, 0 @@ -9503,15 +9503,15 @@ Move_WATER_PULSE: createsprite gWaterPulseBubbleSpriteTemplate, ANIM_ATTACKER, 66, 200, 80, 8, 1, 40, 20, 0 createsprite gWaterPulseBubbleSpriteTemplate, ANIM_ATTACKER, 66, 80, 60, 10, 3, 20, 50, 0 createsprite gWaterPulseBubbleSpriteTemplate, ANIM_ATTACKER, 66, 140, 100, 16, 1, 20, 30, 1 - playsewithpan SE_W145C, SOUND_PAN_TARGET + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET waitforvisualfinish - playsewithpan SE_W202, SOUND_PAN_ATTACKER + playsewithpan SE_M_GIGA_DRAIN, SOUND_PAN_ATTACKER createsprite gWaterPulseRingSpriteTemplate, ANIM_TARGET, 2, 0, 0, 40, 15 delay 5 - playsewithpan SE_W202, SOUND_PAN_ATTACKER + playsewithpan SE_M_GIGA_DRAIN, SOUND_PAN_ATTACKER createsprite gWaterPulseRingSpriteTemplate, ANIM_TARGET, 2, 0, 0, 40, 15 delay 5 - playsewithpan SE_W202, SOUND_PAN_ATTACKER + playsewithpan SE_M_GIGA_DRAIN, SOUND_PAN_ATTACKER createsprite gWaterPulseRingSpriteTemplate, ANIM_TARGET, 2, 0, 0, 40, 15 delay 13 createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 0, 8, 18, 1 @@ -9535,13 +9535,13 @@ Move_PSYCHO_BOOST: setalpha 8, 8 delay 10 createvisualtask AnimTask_ShakeMon, 2, ANIM_ATTACKER, 3, 0, 240, 0 - loopsewithpan SE_W060B, SOUND_PAN_ATTACKER, 14, 10 + loopsewithpan SE_M_PSYBEAM2, SOUND_PAN_ATTACKER, 14, 10 createsprite gPsychoBoostOrbSpriteTemplate, ANIM_ATTACKER, 2 delay 110 - loopsewithpan SE_W060B, SOUND_PAN_ATTACKER, 7, 10 + loopsewithpan SE_M_PSYBEAM2, SOUND_PAN_ATTACKER, 7, 10 waitforvisualfinish createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, -8, 1, 24, 1 - playsewithpan SE_W043, SOUND_PAN_TARGET + playsewithpan SE_M_LEER, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_ATK_PARTNER blendoff @@ -9553,12 +9553,12 @@ Move_KNOCK_OFF: loadspritegfx ANIM_TAG_IMPACT createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 4, 6 delay 4 - playsewithpan SE_W233, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW, SOUND_PAN_TARGET createsprite gKnockOffStrikeSpriteTemplate, ANIM_TARGET, 2, -16, -16 delay 8 createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 5, 1, RGB_WHITE, 10, 0, 0 createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, ANIM_TARGET, 2 - playsewithpan SE_W004, SOUND_PAN_TARGET + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 1, -12, 10, 0, 3 createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 5 delay 3 @@ -9577,7 +9577,7 @@ Move_DOOM_DESIRE: createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 0, 4, RGB_BLACK waitforvisualfinish setalpha 8, 8 - playsewithpan SE_W060, SOUND_PAN_ATTACKER + playsewithpan SE_M_PSYBEAM, SOUND_PAN_ATTACKER createvisualtask AnimTask_ScaleMonAndRestore, 5, -4, -4, 15, ANIM_ATTACKER, 1 waitforvisualfinish delay 20 @@ -9594,7 +9594,7 @@ Move_SKY_UPPERCUT: monbgprio_28 ANIM_TARGET fadetobg BG_IN_AIR waitbgfadeout - playsewithpan SE_W327, SOUND_PAN_ATTACKER + playsewithpan SE_M_SKY_UPPERCUT, SOUND_PAN_ATTACKER createvisualtask AnimTask_MoveSkyUppercutBg, 5, 55 waitbgfadein setalpha 12, 8 @@ -9602,20 +9602,20 @@ Move_SKY_UPPERCUT: createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 0, 28, 0, 0, 5 delay 4 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 4, 0, 6, 1 - playsewithpan SE_W233B, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, -28, 28, ANIM_TARGET, 1 delay 1 - playsewithpan SE_W233B, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, -15, 8, ANIM_TARGET, 1 - playsewithpan SE_W233B, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET delay 1 - playsewithpan SE_W233B, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, -5, -12, ANIM_TARGET, 1 delay 1 - playsewithpan SE_W233B, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, -32, ANIM_TARGET, 1 delay 1 - playsewithpan SE_W233B, SOUND_PAN_TARGET + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 5, -52, ANIM_TARGET, 1 createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 1, -26, 16, 1, 4 delay 4 @@ -9651,7 +9651,7 @@ Move_TWISTER: loadspritegfx ANIM_TAG_ROCKS monbg ANIM_DEF_PARTNER monbgprio_28 ANIM_TARGET - playsewithpan SE_W239, SOUND_PAN_TARGET + playsewithpan SE_M_TWISTER, SOUND_PAN_TARGET createsprite gTwisterLeafSpriteTemplate, ANIM_TARGET, 2, 120, 70, 5, 70, 30 delay 1 createsprite gTwisterLeafSpriteTemplate, ANIM_TARGET, 2, 115, 55, 6, 60, 25 @@ -9674,18 +9674,18 @@ Move_TWISTER: createsprite gTwisterLeafSpriteTemplate, ANIM_TARGET, 2, 110, 10, 8, 32, 20 waitforvisualfinish createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, -32, -16, ANIM_TARGET, 3 - playsewithpan SE_W004, SOUND_PAN_TARGET + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_TARGET, 3, 0, 12, 1 createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_DEF_PARTNER, 3, 0, 12, 1 delay 4 createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGET, 3, 1, 3 - playsewithpan SE_W004, SOUND_PAN_TARGET + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET delay 4 createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGET, 3, 1, 3 - playsewithpan SE_W004, SOUND_PAN_TARGET + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET delay 4 createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 32, 20, ANIM_TARGET, 3 - playsewithpan SE_W004, SOUND_PAN_TARGET + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff @@ -9698,7 +9698,7 @@ Move_MAGICAL_LEAF: monbg ANIM_DEF_PARTNER setalpha 12, 8 delay 1 - loopsewithpan SE_W077, SOUND_PAN_ATTACKER, 10, 5 + loopsewithpan SE_M_POISON_POWDER, SOUND_PAN_ATTACKER, 10, 5 createvisualtask AnimTask_CycleMagicalLeafPal, 5 createsprite gRazorLeafParticleSpriteTemplate, ANIM_ATTACKER, 2, -3, -2, 10 delay 2 @@ -9720,11 +9720,11 @@ Move_MAGICAL_LEAF: delay 2 createsprite gRazorLeafParticleSpriteTemplate, ANIM_ATTACKER, 2, -3, -5, 8 delay 60 - playsewithpan SE_W013B, SOUND_PAN_ATTACKER + playsewithpan SE_M_RAZOR_WIND2, SOUND_PAN_ATTACKER createsprite gRazorLeafCutterSpriteTemplate, ANIM_TARGET, 3, 20, -10, 20, 0, 32, 20, 0 createsprite gRazorLeafCutterSpriteTemplate, ANIM_TARGET, 3, 20, -10, 20, 0, 32, -20, 0 delay 30 - playsewithpan SE_W013, SOUND_PAN_TARGET + playsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 4, -10, -4, ANIM_TARGET, 2 createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 4, 10, 4, ANIM_TARGET, 2 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 8, 1 @@ -9741,10 +9741,10 @@ Move_ICE_BALL: createvisualtask AnimTask_GetIceBallCounter, 5, 0 jumpargeq 0, 4, IceBallSetIceBg IceBallContinue: - playsewithpan SE_W196, SOUND_PAN_ATTACKER + playsewithpan SE_M_ICY_WIND, SOUND_PAN_ATTACKER createsprite gIceBallChunkSpriteTemplate, ANIM_TARGET, 2, 15, 0, -12, -16, 30, -40 delay 28 - playsewithpan SE_W280, SOUND_PAN_TARGET + playsewithpan SE_M_BRICK_BREAK, SOUND_PAN_TARGET createvisualtask AnimTask_GetIceBallCounter, 5, 0 jumpargeq 0, 0, IceBallWeakest jumpargeq 0, 1, IceBallWeak @@ -9829,11 +9829,11 @@ Move_WEATHER_BALL: loadspritegfx ANIM_TAG_WEATHER_BALL createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 8, 1, ANIM_ATTACKER delay 8 - playsewithpan SE_W207, SOUND_PAN_ATTACKER + playsewithpan SE_M_SWAGGER, SOUND_PAN_ATTACKER createsprite gWeatherBallUpSpriteTemplate, ANIM_ATTACKER, 2 waitforvisualfinish delay 15 - playsewithpan SE_W197, 0 + playsewithpan SE_M_DETECT, 0 createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 5, 1, RGB_WHITE, 10, 0, 0 waitforvisualfinish createvisualtask AnimTask_GetWeather, 2 @@ -9847,7 +9847,7 @@ WeatherBallNormal: loadspritegfx ANIM_TAG_IMPACT createsprite gWeatherBallNormalDownSpriteTemplate, ANIM_TARGET, 2, -30, -100, 25, 1, 0, 0 waitforvisualfinish - playsewithpan SE_W025B, SOUND_PAN_TARGET + playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 4, -10, 0, ANIM_TARGET, 2 createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 0, 3, 8, 1 waitforvisualfinish @@ -9855,45 +9855,45 @@ WeatherBallNormal: WeatherBallFire: loadspritegfx ANIM_TAG_SMALL_EMBER createsprite gWeatherBallFireDownSpriteTemplate, ANIM_TARGET, 2, -30, -100, 25, 1, 40, 10 - playsewithpan SE_W172, SOUND_PAN_TARGET + playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_TARGET delay 10 createsprite gWeatherBallFireDownSpriteTemplate, ANIM_TARGET, 2, -30, -100, 25, 1, -40, 20 - playsewithpan SE_W172, SOUND_PAN_TARGET + playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_TARGET delay 10 createsprite gWeatherBallFireDownSpriteTemplate, ANIM_TARGET, 2, -30, -100, 25, 1, 0, 0 - playsewithpan SE_W172, SOUND_PAN_TARGET + playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_TARGET waitforvisualfinish - playsewithpan SE_W172B, SOUND_PAN_TARGET + playsewithpan SE_M_FLAME_WHEEL2, SOUND_PAN_TARGET createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 0, 3, 8, 1 waitforvisualfinish end WeatherBallWater: loadspritegfx ANIM_TAG_SMALL_BUBBLES createsprite gWeatherBallWaterDownSpriteTemplate, ANIM_TARGET, 2, -30, -100, 25, 1, 50, 10 - playsewithpan SE_W152, SOUND_PAN_TARGET + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_TARGET delay 8 createsprite gWeatherBallWaterDownSpriteTemplate, ANIM_TARGET, 2, -30, -100, 25, 1, -20, 20 - playsewithpan SE_W152, SOUND_PAN_TARGET + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_TARGET delay 13 createsprite gWeatherBallWaterDownSpriteTemplate, ANIM_TARGET, 2, -30, -100, 25, 1, 0, 0 - playsewithpan SE_W152, SOUND_PAN_TARGET + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_TARGET waitforvisualfinish createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 0, 3, 8, 1 - playsewithpan SE_W202, SOUND_PAN_TARGET + playsewithpan SE_M_GIGA_DRAIN, SOUND_PAN_TARGET waitforvisualfinish end WeatherBallSandstorm: loadspritegfx ANIM_TAG_ROCKS createsprite gWeatherBallRockDownSpriteTemplate, ANIM_TARGET, 2, -30, -100, 25, 1, 30, 0 - playsewithpan SE_W088, SOUND_PAN_TARGET + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET delay 5 createsprite gWeatherBallRockDownSpriteTemplate, ANIM_TARGET, 2, -30, -100, 25, 1, -40, 20 - playsewithpan SE_W088, SOUND_PAN_TARGET + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET delay 14 createsprite gWeatherBallRockDownSpriteTemplate, ANIM_TARGET, 2, -30, -100, 25, 1, 0, 0 - playsewithpan SE_W088, SOUND_PAN_TARGET + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET waitforvisualfinish - playsewithpan SE_W070, SOUND_PAN_TARGET + playsewithpan SE_M_STRENGTH, SOUND_PAN_TARGET createsprite gRockScatterSpriteTemplate, ANIM_TARGET, 2, -12, 27, 2, 3 createsprite gRockScatterSpriteTemplate, ANIM_TARGET, 2, 8, 28, 3, 4 createsprite gRockScatterSpriteTemplate, ANIM_TARGET, 2, -4, 30, 2, 3 @@ -9905,16 +9905,16 @@ WeatherBallIce: loadspritegfx ANIM_TAG_HAIL loadspritegfx ANIM_TAG_ICE_CRYSTALS createsprite gWeatherBallIceDownSpriteTemplate, ANIM_TARGET, 2, -30, -100, 25, 25, -40, 20 - playsewithpan SE_W258, SOUND_PAN_TARGET + playsewithpan SE_M_HAIL, SOUND_PAN_TARGET delay 10 createsprite gWeatherBallIceDownSpriteTemplate, ANIM_TARGET, 2, -30, -100, 25, 25, 40, 0 - playsewithpan SE_W258, SOUND_PAN_TARGET + playsewithpan SE_M_HAIL, SOUND_PAN_TARGET delay 10 createsprite gWeatherBallIceDownSpriteTemplate, ANIM_TARGET, 2, -30, -100, 25, 25, 0, 0 - playsewithpan SE_W258, SOUND_PAN_TARGET + playsewithpan SE_M_HAIL, SOUND_PAN_TARGET waitforvisualfinish createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 8, 1 - playsewithpan SE_W196, SOUND_PAN_TARGET + playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET call IceCrystalEffectShort waitforvisualfinish end @@ -9923,7 +9923,7 @@ Move_COUNT: loadspritegfx ANIM_TAG_IMPACT monbg ANIM_TARGET setalpha 12, 8 - playsewithpan SE_W003, SOUND_PAN_TARGET + playsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 2 createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 6, 1 waitforvisualfinish @@ -9933,64 +9933,64 @@ Move_COUNT: IceCrystalEffectShort: createsprite gIceCrystalHitLargeSpriteTemplate, ANIM_TARGET, 2, -10, -10, 0 - playsewithpan SE_W196, SOUND_PAN_TARGET + playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET delay 4 createsprite gIceCrystalHitSmallSpriteTemplate, ANIM_TARGET, 2, 10, 20, 0 - playsewithpan SE_W196, SOUND_PAN_TARGET + playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET delay 4 createsprite gIceCrystalHitLargeSpriteTemplate, ANIM_TARGET, 2, -5, 10, 0 - playsewithpan SE_W196, SOUND_PAN_TARGET + playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET delay 4 createsprite gIceCrystalHitSmallSpriteTemplate, ANIM_TARGET, 2, 17, -12, 0 - playsewithpan SE_W196, SOUND_PAN_TARGET + playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET delay 4 createsprite gIceCrystalHitSmallSpriteTemplate, ANIM_TARGET, 2, -15, 15, 0 - playsewithpan SE_W196, SOUND_PAN_TARGET + playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET delay 4 createsprite gIceCrystalHitSmallSpriteTemplate, ANIM_TARGET, 2, 0, 0, 0 - playsewithpan SE_W196, SOUND_PAN_TARGET + playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET delay 4 createsprite gIceCrystalHitLargeSpriteTemplate, ANIM_TARGET, 2, 20, 2, 0 - playsewithpan SE_W196, SOUND_PAN_TARGET + playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET return IceCrystalEffectLong: createsprite gIceCrystalHitLargeSpriteTemplate, ANIM_TARGET, 2, -10, -10, 1 - playsewithpan SE_W196, SOUND_PAN_TARGET + playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET delay 4 createsprite gIceCrystalHitSmallSpriteTemplate, ANIM_TARGET, 2, 10, 20, 1 - playsewithpan SE_W196, SOUND_PAN_TARGET + playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET delay 4 createsprite gIceCrystalHitLargeSpriteTemplate, ANIM_TARGET, 2, -29, 0, 1 - playsewithpan SE_W196, SOUND_PAN_TARGET + playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET delay 4 createsprite gIceCrystalHitSmallSpriteTemplate, ANIM_TARGET, 2, 29, -20, 1 - playsewithpan SE_W196, SOUND_PAN_TARGET + playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET delay 4 createsprite gIceCrystalHitLargeSpriteTemplate, ANIM_TARGET, 2, -5, 10, 1 - playsewithpan SE_W196, SOUND_PAN_TARGET + playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET delay 4 createsprite gIceCrystalHitSmallSpriteTemplate, ANIM_TARGET, 2, 17, -12, 1 - playsewithpan SE_W196, SOUND_PAN_TARGET + playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET delay 4 createsprite gIceCrystalHitLargeSpriteTemplate, ANIM_TARGET, 2, -20, 0, 1 - playsewithpan SE_W196, SOUND_PAN_TARGET + playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET delay 4 createsprite gIceCrystalHitSmallSpriteTemplate, ANIM_TARGET, 2, -15, 15, 1 - playsewithpan SE_W196, SOUND_PAN_TARGET + playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET delay 4 createsprite gIceCrystalHitSmallSpriteTemplate, ANIM_TARGET, 2, 26, -5, 1 - playsewithpan SE_W196, SOUND_PAN_TARGET + playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET delay 4 createsprite gIceCrystalHitSmallSpriteTemplate, ANIM_TARGET, 2, 0, 0, 1 - playsewithpan SE_W196, SOUND_PAN_TARGET + playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET delay 4 createsprite gIceCrystalHitLargeSpriteTemplate, ANIM_TARGET, 2, 20, 2, 1 - playsewithpan SE_W196, SOUND_PAN_TARGET + playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET return IceSpikesEffectShort: @ Unused - loopsewithpan SE_W196, SOUND_PAN_TARGET, 6, 4 + loopsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET, 6, 4 createsprite gIceGroundSpikeSpriteTemplate, ANIM_TARGET, 2, 0, 24, 0 delay 4 createsprite gIceGroundSpikeSpriteTemplate, ANIM_TARGET, 2, 8, 24, 0 @@ -10007,7 +10007,7 @@ IceSpikesEffectShort: @ Unused return IceSpikesEffectLong: - loopsewithpan SE_W196, SOUND_PAN_TARGET, 6, 4 + loopsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET, 6, 4 createsprite gIceGroundSpikeSpriteTemplate, ANIM_TARGET, 2, 0, 24, 1 delay 4 createsprite gIceGroundSpikeSpriteTemplate, ANIM_TARGET, 2, 8, 24, 1 @@ -10037,7 +10037,7 @@ GrantingStarsEffect: return HealingEffect: - playsewithpan SE_W071B, SOUND_PAN_ATTACKER + playsewithpan SE_M_ABSORB_2, SOUND_PAN_ATTACKER createsprite gHealingBlueStarSpriteTemplate, ANIM_ATTACKER, 2, 0, -5, 0, 0 delay 7 createsprite gHealingBlueStarSpriteTemplate, ANIM_ATTACKER, 2, -15, 10, 0, 0 @@ -10049,7 +10049,7 @@ HealingEffect: return HealingEffect2: - playsewithpan SE_W071B, SOUND_PAN_TARGET + playsewithpan SE_M_ABSORB_2, SOUND_PAN_TARGET createsprite gHealingBlueStarSpriteTemplate, ANIM_TARGET, 2, 0, -5, 1, 0 delay 7 createsprite gHealingBlueStarSpriteTemplate, ANIM_TARGET, 2, -15, 10, 1, 0 @@ -10062,72 +10062,72 @@ HealingEffect2: PoisonBubblesEffect: createsprite gPoisonBubbleSpriteTemplate, ANIM_TARGET, 2, 10, 10, 0 - playsewithpan SE_W092, SOUND_PAN_TARGET + playsewithpan SE_M_TOXIC, SOUND_PAN_TARGET delay 6 createsprite gPoisonBubbleSpriteTemplate, ANIM_TARGET, 2, 20, -20, 0 - playsewithpan SE_W092, SOUND_PAN_TARGET + playsewithpan SE_M_TOXIC, SOUND_PAN_TARGET delay 6 createsprite gPoisonBubbleSpriteTemplate, ANIM_TARGET, 2, -20, 15, 0 - playsewithpan SE_W092, SOUND_PAN_TARGET + playsewithpan SE_M_TOXIC, SOUND_PAN_TARGET delay 6 createsprite gPoisonBubbleSpriteTemplate, ANIM_TARGET, 2, 0, 0, 0 - playsewithpan SE_W092, SOUND_PAN_TARGET + playsewithpan SE_M_TOXIC, SOUND_PAN_TARGET delay 6 createsprite gPoisonBubbleSpriteTemplate, ANIM_TARGET, 2, -20, -20, 0 - playsewithpan SE_W092, SOUND_PAN_TARGET + playsewithpan SE_M_TOXIC, SOUND_PAN_TARGET delay 6 createsprite gPoisonBubbleSpriteTemplate, ANIM_TARGET, 2, 16, -8, 0 - playsewithpan SE_W092, SOUND_PAN_TARGET + playsewithpan SE_M_TOXIC, SOUND_PAN_TARGET return WaterBubblesEffectShort: createsprite gWaterBubbleSpriteTemplate, ANIM_ATTACKER, 2, 10, 10, 0 - playsewithpan SE_W145C, SOUND_PAN_TARGET + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET delay 6 createsprite gWaterBubbleSpriteTemplate, ANIM_ATTACKER, 2, 20, -20, 0 - playsewithpan SE_W145C, SOUND_PAN_TARGET + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET delay 6 createsprite gWaterBubbleSpriteTemplate, ANIM_ATTACKER, 2, -20, 15, 0 - playsewithpan SE_W145C, SOUND_PAN_TARGET + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET delay 6 createsprite gWaterBubbleSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 0 - playsewithpan SE_W145C, SOUND_PAN_TARGET + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET delay 6 createsprite gWaterBubbleSpriteTemplate, ANIM_ATTACKER, 2, -20, -20, 0 - playsewithpan SE_W145C, SOUND_PAN_TARGET + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET delay 6 createsprite gWaterBubbleSpriteTemplate, ANIM_ATTACKER, 2, 16, -8, 0 - playsewithpan SE_W145C, SOUND_PAN_TARGET + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET return WaterBubblesEffectLong: createsprite gWaterBubbleSpriteTemplate, ANIM_ATTACKER, 2, 10, 10, 1 - playsewithpan SE_W145C, SOUND_PAN_TARGET + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET delay 6 createsprite gWaterBubbleSpriteTemplate, ANIM_ATTACKER, 2, -28, -10, 1 - playsewithpan SE_W145C, SOUND_PAN_TARGET + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET delay 6 createsprite gWaterBubbleSpriteTemplate, ANIM_ATTACKER, 2, 20, -20, 1 - playsewithpan SE_W145C, SOUND_PAN_TARGET + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET delay 6 createsprite gWaterBubbleSpriteTemplate, ANIM_ATTACKER, 2, -20, 15, 1 - playsewithpan SE_W145C, SOUND_PAN_TARGET + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET delay 6 createsprite gWaterBubbleSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1 - playsewithpan SE_W145C, SOUND_PAN_TARGET + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET delay 6 createsprite gWaterBubbleSpriteTemplate, ANIM_ATTACKER, 2, 27, 8, 1 - playsewithpan SE_W145C, SOUND_PAN_TARGET + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET delay 6 createsprite gWaterBubbleSpriteTemplate, ANIM_ATTACKER, 2, -20, -20, 1 - playsewithpan SE_W145C, SOUND_PAN_TARGET + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET delay 6 createsprite gWaterBubbleSpriteTemplate, ANIM_ATTACKER, 2, 16, -8, 1 - playsewithpan SE_W145C, SOUND_PAN_TARGET + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET return ElectricityEffect: - playsewithpan SE_W085B, SOUND_PAN_TARGET + playsewithpan SE_M_THUNDERBOLT2, SOUND_PAN_TARGET createsprite gElectricitySpriteTemplate, ANIM_TARGET, 2, 5, 0, 5, 0 delay 2 createsprite gElectricitySpriteTemplate, ANIM_TARGET, 2, -5, 10, 5, 1 @@ -10146,7 +10146,7 @@ ElectricityEffect: return ConfusionEffect: - loopsewithpan SE_W146, SOUND_PAN_TARGET, 13, 6 + loopsewithpan SE_M_DIZZY_PUNCH, SOUND_PAN_TARGET, 13, 6 createsprite gConfusionDuckSpriteTemplate, ANIM_TARGET, 2, 0, -15, 0, 3, 90 createsprite gConfusionDuckSpriteTemplate, ANIM_TARGET, 2, 0, -15, 51, 3, 90 createsprite gConfusionDuckSpriteTemplate, ANIM_TARGET, 2, 0, -15, 102, 3, 90 @@ -10214,7 +10214,7 @@ UnsetSolarbeamBg: return Status_Poison: - loopsewithpan SE_W092, SOUND_PAN_TARGET, 13, 6 + loopsewithpan SE_M_TOXIC, SOUND_PAN_TARGET, 13, 6 createvisualtask AnimTask_ShakeMon2, 2, ANIM_ATTACKER, 1, 0, 18, 2 createvisualtask AnimTask_BlendColorCycle, 2, 2, 2, 2, 0, 12, RGB(30, 0, 31) end @@ -10226,7 +10226,7 @@ Status_Confusion: Status_Burn: loadspritegfx ANIM_TAG_SMALL_EMBER - playsewithpan SE_W172, SOUND_PAN_TARGET + playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_TARGET call BurnFlame call BurnFlame call BurnFlame @@ -10239,19 +10239,19 @@ BurnFlame: Status_Infatuation: loadspritegfx ANIM_TAG_MAGENTA_HEART - playsewithpan SE_W204, SOUND_PAN_ATTACKER + playsewithpan SE_M_CHARM, SOUND_PAN_ATTACKER createsprite gMagentaHeartSpriteTemplate, ANIM_ATTACKER, 3, 0, 20 delay 15 - playsewithpan SE_W204, SOUND_PAN_ATTACKER + playsewithpan SE_M_CHARM, SOUND_PAN_ATTACKER createsprite gMagentaHeartSpriteTemplate, ANIM_ATTACKER, 3, -20, 20 delay 15 - playsewithpan SE_W204, SOUND_PAN_ATTACKER + playsewithpan SE_M_CHARM, SOUND_PAN_ATTACKER createsprite gMagentaHeartSpriteTemplate, ANIM_ATTACKER, 3, 20, 20 end Status_Sleep: loadspritegfx ANIM_TAG_LETTER_Z - playsewithpan SE_W173, SOUND_PAN_ATTACKER + playsewithpan SE_M_SNORE, SOUND_PAN_ATTACKER createsprite gSleepLetterZSpriteTemplate, ANIM_ATTACKER, 2, 4, -10, 16, 0, 0 delay 30 createsprite gSleepLetterZSpriteTemplate, ANIM_ATTACKER, 2, 4, -10, 16, 0, 0 @@ -10264,11 +10264,11 @@ Status_Paralysis: end Status_Freeze: - playsewithpan SE_W196, 0 + playsewithpan SE_M_ICY_WIND, 0 loadspritegfx ANIM_TAG_ICE_CUBE monbg ANIM_DEF_PARTNER monbgprio_28 ANIM_TARGET - waitplaysewithpan SE_W258, SOUND_PAN_TARGET, 17 + waitplaysewithpan SE_M_HAIL, SOUND_PAN_TARGET, 17 createvisualtask AnimTask_FrozenIceCube, 2 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER @@ -10277,7 +10277,7 @@ Status_Freeze: Status_Curse: loadspritegfx ANIM_TAG_GHOSTLY_SPIRIT monbg ANIM_DEF_PARTNER - playsewithpan SE_W171, SOUND_PAN_TARGET + playsewithpan SE_M_NIGHTMARE, SOUND_PAN_TARGET createsprite gCurseGhostSpriteTemplate, ANIM_TARGET, 2 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 14, 1 waitforvisualfinish @@ -10287,7 +10287,7 @@ Status_Curse: Status_Nightmare: loadspritegfx ANIM_TAG_DEVIL monbg ANIM_DEF_PARTNER - playsewithpan SE_W171, SOUND_PAN_TARGET + playsewithpan SE_M_NIGHTMARE, SOUND_PAN_TARGET createsprite gNightmareDevilSpriteTemplate, ANIM_TARGET, 2 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 14, 1 waitforvisualfinish @@ -10300,8 +10300,8 @@ General_CastformChange: goto CastformChangeContinue CastformChangeContinue: monbg ANIM_ATTACKER - playsewithpan SE_W100, SOUND_PAN_ATTACKER - waitplaysewithpan SE_W107, SOUND_PAN_ATTACKER, 48 + playsewithpan SE_M_TELEPORT, SOUND_PAN_ATTACKER + waitplaysewithpan SE_M_MINIMIZE, SOUND_PAN_ATTACKER, 48 createvisualtask AnimTask_TransformMon, 2, 1 waitforvisualfinish clearmonbg ANIM_ATTACKER @@ -10336,10 +10336,10 @@ General_PokeblockThrow: createvisualtask AnimTask_SetAttackerTargetLeftPos, 2, 0 createvisualtask AnimTask_LoadPokeblockGfx, 2 delay 0 - waitplaysewithpan SE_W026, SOUND_PAN_ATTACKER, 22 + waitplaysewithpan SE_M_JUMP_KICK, SOUND_PAN_ATTACKER, 22 createsprite gPokeblockSpriteTemplate, ANIM_TARGET, 3, -18, 12, 0, 32 delay 50 - loopsewithpan SE_W039, SOUND_PAN_TARGET, 19, 2 + loopsewithpan SE_M_TAIL_WHIP, SOUND_PAN_TARGET, 19, 2 createvisualtask AnimTask_SwayMon, 5, 1, 8, 1536, 2, ANIM_TARGET waitforvisualfinish createvisualtask AnimTask_FreePokeblockGfx, 2 @@ -10359,7 +10359,7 @@ General_TurnTrap: goto Status_BindWrap Status_BindWrap: loadspritegfx ANIM_TAG_TENDRILS - loopsewithpan SE_W010, SOUND_PAN_TARGET, 6, 2 + loopsewithpan SE_M_SCRATCH, SOUND_PAN_TARGET, 6, 2 createsprite gConstrictBindingSpriteTemplate, ANIM_TARGET, 4, 0, 16, 0, 1 delay 7 createsprite gConstrictBindingSpriteTemplate, ANIM_TARGET, 2, 0, 8, 1, 1 @@ -10367,13 +10367,13 @@ Status_BindWrap: createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 8, 1 delay 20 setarg 7, 0xFFFF - playsewithpan SE_W020, SOUND_PAN_TARGET + playsewithpan SE_M_BIND, SOUND_PAN_TARGET waitforvisualfinish end Status_FireSpin: loadspritegfx ANIM_TAG_SMALL_EMBER - playsewithpan SE_W221B, SOUND_PAN_TARGET + playsewithpan SE_M_SACRED_FIRE2, SOUND_PAN_TARGET createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 2, 30, 1 call FireSpinEffect call FireSpinEffect @@ -10388,7 +10388,7 @@ Status_Whirlpool: setalpha 12, 8 delay 0 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 4, 2, 0, 7, RGB(0, 13, 23) - playsewithpan SE_W250, SOUND_PAN_TARGET + playsewithpan SE_M_WHIRLPOOL, SOUND_PAN_TARGET createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 2, 30, 1 call WhirlpoolEffect call WhirlpoolEffect @@ -10404,7 +10404,7 @@ Status_Clamp: loadspritegfx ANIM_TAG_IMPACT monbg ANIM_TARGET setalpha 12, 8 - playsewithpan SE_W011, SOUND_PAN_TARGET + playsewithpan SE_M_VICEGRIP, SOUND_PAN_TARGET createsprite gClampJawSpriteTemplate, ANIM_ATTACKER, 2, -32, 0, 2, 819, 0, 10 createsprite gClampJawSpriteTemplate, ANIM_ATTACKER, 2, 32, 0, 6, -819, 0, 10 delay 10 @@ -10420,7 +10420,7 @@ Status_SandTomb: loadspritegfx ANIM_TAG_MUD_SAND createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 4, 2, 0, 7, RGB(19, 17, 0) createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 2, 30, 1 - playsewithpan SE_W328, SOUND_PAN_TARGET + playsewithpan SE_M_SAND_TOMB, SOUND_PAN_TARGET call SandTombSwirlingDirt call SandTombSwirlingDirt delay 22 @@ -10433,19 +10433,19 @@ General_HeldItemEffect: loadspritegfx ANIM_TAG_THIN_RING loadspritegfx ANIM_TAG_SPARKLE_2 delay 0 - playsewithpan SE_W036, SOUND_PAN_ATTACKER + playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_ATTACKER createvisualtask AnimTask_RotateMonToSideAndRestore, 2, 16, 128, ANIM_ATTACKER, 2 waitforvisualfinish - playsewithpan SE_W036, SOUND_PAN_ATTACKER + playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_ATTACKER createvisualtask AnimTask_RotateMonToSideAndRestore, 2, 16, 128, ANIM_ATTACKER, 2 waitforvisualfinish - playsewithpan SE_W036, SOUND_PAN_ATTACKER + playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_ATTACKER createvisualtask AnimTask_RotateMonToSideAndRestore, 2, 16, 128, ANIM_ATTACKER, 2 waitforvisualfinish - playsewithpan SE_W234, SOUND_PAN_ATTACKER + playsewithpan SE_M_MORNING_SUN, SOUND_PAN_ATTACKER call GrantingStarsEffect waitforvisualfinish - playsewithpan SE_REAPOKE, SOUND_PAN_ATTACKER + playsewithpan SE_SHINY, SOUND_PAN_ATTACKER createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 2, 3, 7, 0, RGB(17, 31, 25) createsprite gThinRingExpandingSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 0, 0 waitforvisualfinish @@ -10456,23 +10456,23 @@ General_SmokeballEscape: monbg ANIM_ATTACKER setalpha 12, 4 delay 0 - playsewithpan SE_BOWA2, SOUND_PAN_TARGET + playsewithpan SE_BALL_OPEN, SOUND_PAN_TARGET createsprite gSmokeBallEscapeCloudSpriteTemplate, ANIM_TARGET, 0, 0, 32, 28, 30 delay 4 - playsewithpan SE_BOWA2, SOUND_PAN_TARGET + playsewithpan SE_BALL_OPEN, SOUND_PAN_TARGET createsprite gSmokeBallEscapeCloudSpriteTemplate, ANIM_ATTACKER, 127, 2, 12, 20, 30 delay 12 - playsewithpan SE_BOWA2, SOUND_PAN_TARGET + playsewithpan SE_BALL_OPEN, SOUND_PAN_TARGET createsprite gSmokeBallEscapeCloudSpriteTemplate, ANIM_ATTACKER, 126, 2, -28, 4, 30 delay 12 - playsewithpan SE_BOWA2, SOUND_PAN_TARGET + playsewithpan SE_BALL_OPEN, SOUND_PAN_TARGET createsprite gSmokeBallEscapeCloudSpriteTemplate, ANIM_ATTACKER, 124, 2, 14, -20, 30 delay 4 - playsewithpan SE_BOWA2, SOUND_PAN_TARGET + playsewithpan SE_BALL_OPEN, SOUND_PAN_TARGET createvisualtask AnimTask_AttackerFadeToInvisible, 2, 2 createsprite gSmokeBallEscapeCloudSpriteTemplate, ANIM_ATTACKER, 123, 3, 4, 4, 30 delay 14 - playsewithpan SE_BOWA2, SOUND_PAN_TARGET + playsewithpan SE_BALL_OPEN, SOUND_PAN_TARGET createsprite gSmokeBallEscapeCloudSpriteTemplate, ANIM_ATTACKER, 122, 3, -14, 18, 46 delay 0 createsprite gSmokeBallEscapeCloudSpriteTemplate, ANIM_ATTACKER, 121, 3, 14, -14, 46 @@ -10491,7 +10491,7 @@ General_SmokeballEscape: General_FocusBand: createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 2, 7, 0, 9, RGB_RED - playsewithpan SE_W082, SOUND_PAN_ATTACKER + playsewithpan SE_M_DRAGON_RAGE, SOUND_PAN_ATTACKER createvisualtask AnimTask_SlideMonForFocusBand, 5, 30, 128, 0, 1, 2, 0, 1 waitforvisualfinish createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 2, 4, 9, 0, RGB_RED @@ -10502,7 +10502,7 @@ General_FocusBand: General_Rain: loadspritegfx ANIM_TAG_RAIN_DROPS - playsewithpan SE_W240, SOUND_PAN_ATTACKER + playsewithpan SE_M_RAIN_DANCE, SOUND_PAN_ATTACKER createvisualtask AnimTask_BlendBattleAnimPal, 10, 0x781, 2, 0, 4, RGB_BLACK waitforvisualfinish createvisualtask AnimTask_CreateRaindrops, 2, 0, 3, 60 @@ -10531,7 +10531,7 @@ General_MonHit: loadspritegfx ANIM_TAG_IMPACT monbg ANIM_TARGET setalpha 12, 8 - playsewithpan SE_W003, SOUND_PAN_TARGET + playsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 2 createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 6, 1 waitforvisualfinish @@ -10562,22 +10562,22 @@ SnatchMoveContinue: call SnatchMoveTrySwapToSubstitute end SnatchOpposingMonMove: - playsewithpan SE_W104, SOUND_PAN_ATTACKER + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER createvisualtask AnimTask_SnatchOpposingMonMove, 2 goto SnatchMoveContinue SnatchPartnerMonMove: - playsewithpan SE_W104, SOUND_PAN_ATTACKER + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER createvisualtask AnimTask_SnatchPartnerMove, 2 goto SnatchMoveContinue General_FutureSightHit: createvisualtask AnimTask_SetAnimTargetToBattlerTarget, 2 monbg ANIM_DEF_PARTNER - playsewithpan SE_W060, SOUND_PAN_ATTACKER + playsewithpan SE_M_PSYBEAM, SOUND_PAN_ATTACKER call SetPsychicBackground setalpha 8, 8 - playsewithpan SE_W048, SOUND_PAN_TARGET - waitplaysewithpan SE_W048, SOUND_PAN_TARGET, 8 + playsewithpan SE_M_SUPERSONIC, SOUND_PAN_TARGET + waitplaysewithpan SE_M_SUPERSONIC, SOUND_PAN_TARGET, 8 createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 4, 0, 15, 1 createvisualtask AnimTask_ScaleMonAndRestore, 5, -5, -5, 15, ANIM_TARGET, 1 waitforvisualfinish @@ -10598,26 +10598,26 @@ General_DoomDesireHit: delay 10 createvisualtask AnimTask_DoomDesireLightBeam, 5 delay 9 - playsewithpan SE_W109, SOUND_PAN_ATTACKER + playsewithpan SE_M_CONFUSE_RAY, SOUND_PAN_ATTACKER delay 9 - playsewithpan SE_W109, 0 + playsewithpan SE_M_CONFUSE_RAY, 0 delay 9 - playsewithpan SE_W109, SOUND_PAN_TARGET + playsewithpan SE_M_CONFUSE_RAY, SOUND_PAN_TARGET delay 25 createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_TARGET, 10, 0, 20, 1 - playsewithpan SE_W120, SOUND_PAN_TARGET + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 1, 1 delay 6 - playsewithpan SE_W120, SOUND_PAN_TARGET + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, 24, -24, 1, 1 delay 6 - playsewithpan SE_W120, SOUND_PAN_TARGET + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, -16, 16, 1, 1 delay 6 - playsewithpan SE_W120, SOUND_PAN_TARGET + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, -24, -12, 1, 1 delay 6 - playsewithpan SE_W120, SOUND_PAN_TARGET + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, 16, 16, 1, 1 waitforvisualfinish createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 16, 0, RGB_WHITE @@ -10626,7 +10626,7 @@ General_DoomDesireHit: General_FocusPunchSetUp: loadspritegfx ANIM_TAG_FOCUS_ENERGY - playsewithpan SE_W082, SOUND_PAN_ATTACKER + playsewithpan SE_M_DRAGON_RAGE, SOUND_PAN_ATTACKER call EndureEffect delay 8 createvisualtask AnimTask_BlendColorCycle, 2, 2, 2, 2, 0, 11, RGB_RED @@ -10660,7 +10660,7 @@ General_WishHeal: loadspritegfx ANIM_TAG_SPARKLE_2 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 0, 10, RGB_BLACK waitforvisualfinish - playsewithpan SE_W025, SOUND_PAN_ATTACKER + playsewithpan SE_M_MEGA_KICK, SOUND_PAN_ATTACKER call GrantingStarsEffect waitforvisualfinish unloadspritegfx ANIM_TAG_SPARKLE_2 @@ -10694,7 +10694,7 @@ SnatchMoveSwapMonForSubstitute: @ Healthbox blue flash effect on level up Special_LevelUp: - playsewithpan SE_EXPMAX, 0 + playsewithpan SE_EXP_MAX, 0 createvisualtask AnimTask_LoadHealthboxPalsForLevelUp, 2 delay 0 createvisualtask AnimTask_FlashHealthboxOnLevelUp, 5, 0, 0 @@ -10717,7 +10717,7 @@ Special_SwitchOutOpponentMon: Special_BallThrow: createvisualtask AnimTask_LoadBallGfx, 2 delay 0 - playsewithpan SE_NAGERU, 0 + playsewithpan SE_BALL_THROW, 0 createvisualtask AnimTask_ThrowBall, 2 createvisualtask AnimTask_IsBallBlockedByTrainer, 2 jumpreteq -1, BallThrowTrainerBlock @@ -10731,7 +10731,7 @@ BallThrowTrainerBlock: monbg ANIM_DEF_PARTNER setalpha 12, 8 delay 0 - playsewithpan SE_W003, SOUND_PAN_TARGET + playsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, -4, -20, ANIM_TARGET, 2 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index f0c0a7ea85..873425c638 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -3165,7 +3165,7 @@ BattleScript_Pausex20:: return BattleScript_LevelUp:: - fanfare MUS_FANFA1 + fanfare MUS_LEVEL_UP printstring STRINGID_PKMNGREWTOLV setbyte sLVLBOX_STATE, 0x0 drawlvlupbox @@ -3193,7 +3193,7 @@ BattleScript_ForgotAndLearnedNewMove:: printstring STRINGID_ANDELLIPSIS BattleScript_LearnedNewMove:: buffermovetolearn - fanfare MUS_FANFA1 + fanfare MUS_LEVEL_UP printstring STRINGID_PKMNLEARNEDMOVE waitmessage 0x40 updatechoicemoveonlvlup BS_ATTACKER @@ -4459,9 +4459,9 @@ BattleScript_PalaceEndFlavorText:: BattleScript_ArenaTurnBeginning:: waitcry BS_ATTACKER volumedown - playse SE_HANTEI1 + playse SE_ARENA_TIMEUP1 pause 0x8 - playse SE_HANTEI1 + playse SE_ARENA_TIMEUP1 various14 BS_ATTACKER arenajudmengtstring 8 arenawaitmessage 8 @@ -4471,7 +4471,7 @@ BattleScript_ArenaTurnBeginning:: end2 BattleScript_82DB8E0:: @ Unused battlescript - playse SE_PINPON + playse SE_DING_DONG various14 BS_ATTACKER arenajudmengtstring BS_TARGET arenawaitmessage BS_TARGET @@ -4485,9 +4485,9 @@ BattleScript_ArenaDoJudgment:: makevisible BS_OPPONENT1 waitstate volumedown - playse SE_HANTEI1 + playse SE_ARENA_TIMEUP1 pause 0x8 - playse SE_HANTEI1 + playse SE_ARENA_TIMEUP1 pause 0x40 various14 BS_ATTACKER arenajudmengtstring 1 diff --git a/data/battle_scripts_2.s b/data/battle_scripts_2.s index 316b4df25b..caa6cddac9 100644 --- a/data/battle_scripts_2.s +++ b/data/battle_scripts_2.s @@ -118,7 +118,7 @@ BattleScript_PlayerUsesItem:: BattleScript_OpponentUsesHealItem:: printstring STRINGID_EMPTYSTRING3 pause 0x30 - playse SE_KAIFUKU + playse SE_USE_ITEM printstring STRINGID_TRAINER1USEDITEM waitmessage 0x40 useitemonopponent @@ -135,7 +135,7 @@ BattleScript_OpponentUsesHealItem:: BattleScript_OpponentUsesStatusCureItem:: printstring STRINGID_EMPTYSTRING3 pause 0x30 - playse SE_KAIFUKU + playse SE_USE_ITEM printstring STRINGID_TRAINER1USEDITEM waitmessage 0x40 useitemonopponent @@ -149,7 +149,7 @@ BattleScript_OpponentUsesStatusCureItem:: BattleScript_OpponentUsesXItem:: printstring STRINGID_EMPTYSTRING3 pause 0x30 - playse SE_KAIFUKU + playse SE_USE_ITEM printstring STRINGID_TRAINER1USEDITEM waitmessage 0x40 useitemonopponent @@ -162,7 +162,7 @@ BattleScript_OpponentUsesXItem:: BattleScript_OpponentUsesGuardSpecs:: printstring STRINGID_EMPTYSTRING3 pause 0x30 - playse SE_KAIFUKU + playse SE_USE_ITEM printstring STRINGID_TRAINER1USEDITEM waitmessage 0x40 useitemonopponent @@ -173,7 +173,7 @@ BattleScript_OpponentUsesGuardSpecs:: finishaction BattleScript_RunByUsingItem:: - playse SE_NIGERU + playse SE_FLEE setbyte gBattleOutcome, B_OUTCOME_RAN finishturn diff --git a/data/event_scripts.s b/data/event_scripts.s index 058de953be..f8348d0b08 100644 --- a/data/event_scripts.s +++ b/data/event_scripts.s @@ -713,13 +713,13 @@ Common_EventScript_SetAbnormalWeather:: @ 827207A return Common_EventScript_PlayGymBadgeFanfare:: @ 827207E - playfanfare MUS_ME_BACHI + playfanfare MUS_OBTAIN_BADGE waitfanfare return Common_EventScript_OutOfCenterPartyHeal:: @ 8272083 fadescreen FADE_TO_BLACK - playfanfare MUS_ME_ASA + playfanfare MUS_HEAL waitfanfare special HealPlayerParty fadescreen FADE_FROM_BLACK @@ -736,7 +736,7 @@ EventScript_RegionMap:: @ 827208F Common_EventScript_PlayBrineysBoatMusic:: @ 82720A0 setflag FLAG_DONT_TRANSITION_MUSIC - playbgm MUS_M_BOAT, 0 + playbgm MUS_SAILING, 0 return Common_EventScript_StopBrineysBoatMusic:: @ 82720A8 @@ -820,7 +820,7 @@ Common_EventScript_NameReceivedPartyMon:: @ 82723DD Common_EventScript_PlayerHandedOverTheItem:: @ 82723E4 bufferitemname 0, VAR_0x8004 - playfanfare MUS_ME_WAZA + playfanfare MUS_OBTAIN_TMHM message gText_PlayerHandedOverTheItem waitmessage waitfanfare diff --git a/data/maps/AbandonedShip_CaptainsOffice/map.json b/data/maps/AbandonedShip_CaptainsOffice/map.json index 320bbb0d19..e4522dfca1 100644 --- a/data/maps/AbandonedShip_CaptainsOffice/map.json +++ b/data/maps/AbandonedShip_CaptainsOffice/map.json @@ -2,7 +2,7 @@ "id": "MAP_ABANDONED_SHIP_CAPTAINS_OFFICE", "name": "AbandonedShip_CaptainsOffice", "layout": "LAYOUT_ABANDONED_SHIP_CAPTAINS_OFFICE", - "music": "MUS_DAN02", + "music": "MUS_ABANDONED_SHIP", "region_map_section": "MAPSEC_ABANDONED_SHIP", "requires_flash": false, "weather": "WEATHER_SHADE", diff --git a/data/maps/AbandonedShip_Corridors_1F/map.json b/data/maps/AbandonedShip_Corridors_1F/map.json index 13ccd41cdb..94f42d6546 100644 --- a/data/maps/AbandonedShip_Corridors_1F/map.json +++ b/data/maps/AbandonedShip_Corridors_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_ABANDONED_SHIP_CORRIDORS_1F", "name": "AbandonedShip_Corridors_1F", "layout": "LAYOUT_ABANDONED_SHIP_CORRIDORS_1F", - "music": "MUS_DAN02", + "music": "MUS_ABANDONED_SHIP", "region_map_section": "MAPSEC_ABANDONED_SHIP", "requires_flash": false, "weather": "WEATHER_SHADE", diff --git a/data/maps/AbandonedShip_Corridors_B1F/map.json b/data/maps/AbandonedShip_Corridors_B1F/map.json index d024bb953b..c65e58ca59 100644 --- a/data/maps/AbandonedShip_Corridors_B1F/map.json +++ b/data/maps/AbandonedShip_Corridors_B1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_ABANDONED_SHIP_CORRIDORS_B1F", "name": "AbandonedShip_Corridors_B1F", "layout": "LAYOUT_ABANDONED_SHIP_CORRIDORS_B1F", - "music": "MUS_DAN02", + "music": "MUS_ABANDONED_SHIP", "region_map_section": "MAPSEC_ABANDONED_SHIP", "requires_flash": false, "weather": "WEATHER_SHADE", diff --git a/data/maps/AbandonedShip_Deck/map.json b/data/maps/AbandonedShip_Deck/map.json index 781dfa1937..d50e015f31 100644 --- a/data/maps/AbandonedShip_Deck/map.json +++ b/data/maps/AbandonedShip_Deck/map.json @@ -2,7 +2,7 @@ "id": "MAP_ABANDONED_SHIP_DECK", "name": "AbandonedShip_Deck", "layout": "LAYOUT_ABANDONED_SHIP_DECK", - "music": "MUS_DAN02", + "music": "MUS_ABANDONED_SHIP", "region_map_section": "MAPSEC_ABANDONED_SHIP", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/AbandonedShip_HiddenFloorCorridors/map.json b/data/maps/AbandonedShip_HiddenFloorCorridors/map.json index 22c63c0924..e0cba2d6af 100644 --- a/data/maps/AbandonedShip_HiddenFloorCorridors/map.json +++ b/data/maps/AbandonedShip_HiddenFloorCorridors/map.json @@ -2,7 +2,7 @@ "id": "MAP_ABANDONED_SHIP_HIDDEN_FLOOR_CORRIDORS", "name": "AbandonedShip_HiddenFloorCorridors", "layout": "LAYOUT_ABANDONED_SHIP_HIDDEN_FLOOR_CORRIDORS", - "music": "MUS_DAN02", + "music": "MUS_ABANDONED_SHIP", "region_map_section": "MAPSEC_ABANDONED_SHIP", "requires_flash": false, "weather": "WEATHER_SHADE", diff --git a/data/maps/AbandonedShip_HiddenFloorRooms/map.json b/data/maps/AbandonedShip_HiddenFloorRooms/map.json index c41f9a7c75..b81c33c843 100644 --- a/data/maps/AbandonedShip_HiddenFloorRooms/map.json +++ b/data/maps/AbandonedShip_HiddenFloorRooms/map.json @@ -2,7 +2,7 @@ "id": "MAP_ABANDONED_SHIP_HIDDEN_FLOOR_ROOMS", "name": "AbandonedShip_HiddenFloorRooms", "layout": "LAYOUT_ABANDONED_SHIP_HIDDEN_FLOOR_ROOMS", - "music": "MUS_DAN02", + "music": "MUS_ABANDONED_SHIP", "region_map_section": "MAPSEC_ABANDONED_SHIP", "requires_flash": false, "weather": "WEATHER_SHADE", diff --git a/data/maps/AbandonedShip_Room_B1F/map.json b/data/maps/AbandonedShip_Room_B1F/map.json index aa0800faaf..f5d14ac595 100644 --- a/data/maps/AbandonedShip_Room_B1F/map.json +++ b/data/maps/AbandonedShip_Room_B1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_ABANDONED_SHIP_ROOM_B1F", "name": "AbandonedShip_Room_B1F", "layout": "LAYOUT_ABANDONED_SHIP_ROOM_B1F", - "music": "MUS_DAN02", + "music": "MUS_ABANDONED_SHIP", "region_map_section": "MAPSEC_ABANDONED_SHIP", "requires_flash": false, "weather": "WEATHER_SHADE", diff --git a/data/maps/AbandonedShip_Rooms2_1F/map.json b/data/maps/AbandonedShip_Rooms2_1F/map.json index b4f923500b..b854220965 100644 --- a/data/maps/AbandonedShip_Rooms2_1F/map.json +++ b/data/maps/AbandonedShip_Rooms2_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_ABANDONED_SHIP_ROOMS2_1F", "name": "AbandonedShip_Rooms2_1F", "layout": "LAYOUT_ABANDONED_SHIP_ROOMS2_1F", - "music": "MUS_DAN02", + "music": "MUS_ABANDONED_SHIP", "region_map_section": "MAPSEC_ABANDONED_SHIP", "requires_flash": false, "weather": "WEATHER_SHADE", diff --git a/data/maps/AbandonedShip_Rooms2_B1F/map.json b/data/maps/AbandonedShip_Rooms2_B1F/map.json index 16abfbdc28..5768a9a955 100644 --- a/data/maps/AbandonedShip_Rooms2_B1F/map.json +++ b/data/maps/AbandonedShip_Rooms2_B1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_ABANDONED_SHIP_ROOMS2_B1F", "name": "AbandonedShip_Rooms2_B1F", "layout": "LAYOUT_ABANDONED_SHIP_ROOMS2_B1F", - "music": "MUS_DAN02", + "music": "MUS_ABANDONED_SHIP", "region_map_section": "MAPSEC_ABANDONED_SHIP", "requires_flash": false, "weather": "WEATHER_SHADE", diff --git a/data/maps/AbandonedShip_Rooms_1F/map.json b/data/maps/AbandonedShip_Rooms_1F/map.json index 9655f75cee..3fae6f96e9 100644 --- a/data/maps/AbandonedShip_Rooms_1F/map.json +++ b/data/maps/AbandonedShip_Rooms_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_ABANDONED_SHIP_ROOMS_1F", "name": "AbandonedShip_Rooms_1F", "layout": "LAYOUT_ABANDONED_SHIP_ROOMS_1F", - "music": "MUS_DAN02", + "music": "MUS_ABANDONED_SHIP", "region_map_section": "MAPSEC_ABANDONED_SHIP", "requires_flash": false, "weather": "WEATHER_SHADE", diff --git a/data/maps/AbandonedShip_Rooms_B1F/map.json b/data/maps/AbandonedShip_Rooms_B1F/map.json index eacd70a104..d69b431576 100644 --- a/data/maps/AbandonedShip_Rooms_B1F/map.json +++ b/data/maps/AbandonedShip_Rooms_B1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_ABANDONED_SHIP_ROOMS_B1F", "name": "AbandonedShip_Rooms_B1F", "layout": "LAYOUT_ABANDONED_SHIP_ROOMS_B1F", - "music": "MUS_DAN02", + "music": "MUS_ABANDONED_SHIP", "region_map_section": "MAPSEC_ABANDONED_SHIP", "requires_flash": false, "weather": "WEATHER_SHADE", diff --git a/data/maps/AbandonedShip_Underwater1/map.json b/data/maps/AbandonedShip_Underwater1/map.json index 5b22735285..7a2f9cd156 100644 --- a/data/maps/AbandonedShip_Underwater1/map.json +++ b/data/maps/AbandonedShip_Underwater1/map.json @@ -2,7 +2,7 @@ "id": "MAP_ABANDONED_SHIP_UNDERWATER1", "name": "AbandonedShip_Underwater1", "layout": "LAYOUT_ABANDONED_SHIP_UNDERWATER1", - "music": "MUS_DEEPDEEP", + "music": "MUS_UNDERWATER", "region_map_section": "MAPSEC_ABANDONED_SHIP", "requires_flash": false, "weather": "WEATHER_UNDERWATER_BUBBLES", diff --git a/data/maps/AbandonedShip_Underwater2/map.json b/data/maps/AbandonedShip_Underwater2/map.json index 5032eb4fcd..072ec34f44 100644 --- a/data/maps/AbandonedShip_Underwater2/map.json +++ b/data/maps/AbandonedShip_Underwater2/map.json @@ -2,7 +2,7 @@ "id": "MAP_ABANDONED_SHIP_UNDERWATER2", "name": "AbandonedShip_Underwater2", "layout": "LAYOUT_ABANDONED_SHIP_UNDERWATER2", - "music": "MUS_DEEPDEEP", + "music": "MUS_UNDERWATER", "region_map_section": "MAPSEC_ABANDONED_SHIP", "requires_flash": false, "weather": "WEATHER_UNDERWATER_BUBBLES", diff --git a/data/maps/AlteringCave/map.json b/data/maps/AlteringCave/map.json index df36f588df..f6b0acc10f 100644 --- a/data/maps/AlteringCave/map.json +++ b/data/maps/AlteringCave/map.json @@ -2,7 +2,7 @@ "id": "MAP_ALTERING_CAVE", "name": "AlteringCave", "layout": "LAYOUT_ALTERING_CAVE", - "music": "MUS_RG_NANADUNGEON", + "music": "MUS_RG_SEVII_CAVE", "region_map_section": "MAPSEC_ALTERING_CAVE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/AncientTomb/map.json b/data/maps/AncientTomb/map.json index da955f23a4..06254e1f98 100644 --- a/data/maps/AncientTomb/map.json +++ b/data/maps/AncientTomb/map.json @@ -2,7 +2,7 @@ "id": "MAP_ANCIENT_TOMB", "name": "AncientTomb", "layout": "LAYOUT_ANCIENT_TOMB", - "music": "MUS_MABOROSI", + "music": "MUS_SEALED_CHAMBER", "region_map_section": "MAPSEC_ANCIENT_TOMB", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/AquaHideout_1F/map.json b/data/maps/AquaHideout_1F/map.json index 2f440bec65..6b9145add5 100644 --- a/data/maps/AquaHideout_1F/map.json +++ b/data/maps/AquaHideout_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_AQUA_HIDEOUT_1F", "name": "AquaHideout_1F", "layout": "LAYOUT_AQUA_HIDEOUT_1F", - "music": "MUS_AJITO", + "music": "MUS_AQUA_MAGMA_HIDEOUT", "region_map_section": "MAPSEC_AQUA_HIDEOUT", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/AquaHideout_B1F/map.json b/data/maps/AquaHideout_B1F/map.json index 80b5c1d272..0b4cb83171 100644 --- a/data/maps/AquaHideout_B1F/map.json +++ b/data/maps/AquaHideout_B1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_AQUA_HIDEOUT_B1F", "name": "AquaHideout_B1F", "layout": "LAYOUT_AQUA_HIDEOUT_B1F", - "music": "MUS_AJITO", + "music": "MUS_AQUA_MAGMA_HIDEOUT", "region_map_section": "MAPSEC_AQUA_HIDEOUT", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/AquaHideout_B2F/map.json b/data/maps/AquaHideout_B2F/map.json index e33af3c9a0..d5697bfcd5 100644 --- a/data/maps/AquaHideout_B2F/map.json +++ b/data/maps/AquaHideout_B2F/map.json @@ -2,7 +2,7 @@ "id": "MAP_AQUA_HIDEOUT_B2F", "name": "AquaHideout_B2F", "layout": "LAYOUT_AQUA_HIDEOUT_B2F", - "music": "MUS_AJITO", + "music": "MUS_AQUA_MAGMA_HIDEOUT", "region_map_section": "MAPSEC_AQUA_HIDEOUT", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/AquaHideout_UnusedRubyMap1/map.json b/data/maps/AquaHideout_UnusedRubyMap1/map.json index b641e80d1d..a2aefc63b3 100644 --- a/data/maps/AquaHideout_UnusedRubyMap1/map.json +++ b/data/maps/AquaHideout_UnusedRubyMap1/map.json @@ -2,7 +2,7 @@ "id": "MAP_AQUA_HIDEOUT_UNUSED_RUBY_MAP1", "name": "AquaHideout_UnusedRubyMap1", "layout": "LAYOUT_AQUA_HIDEOUT_UNUSED_RUBY_MAP1", - "music": "MUS_AJITO", + "music": "MUS_AQUA_MAGMA_HIDEOUT", "region_map_section": "MAPSEC_AQUA_HIDEOUT", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/AquaHideout_UnusedRubyMap2/map.json b/data/maps/AquaHideout_UnusedRubyMap2/map.json index 6690e52592..50175b5d50 100644 --- a/data/maps/AquaHideout_UnusedRubyMap2/map.json +++ b/data/maps/AquaHideout_UnusedRubyMap2/map.json @@ -2,7 +2,7 @@ "id": "MAP_AQUA_HIDEOUT_UNUSED_RUBY_MAP2", "name": "AquaHideout_UnusedRubyMap2", "layout": "LAYOUT_AQUA_HIDEOUT_UNUSED_RUBY_MAP2", - "music": "MUS_AJITO", + "music": "MUS_AQUA_MAGMA_HIDEOUT", "region_map_section": "MAPSEC_AQUA_HIDEOUT", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/AquaHideout_UnusedRubyMap3/map.json b/data/maps/AquaHideout_UnusedRubyMap3/map.json index d1a9d68437..b26c4c1ae9 100644 --- a/data/maps/AquaHideout_UnusedRubyMap3/map.json +++ b/data/maps/AquaHideout_UnusedRubyMap3/map.json @@ -2,7 +2,7 @@ "id": "MAP_AQUA_HIDEOUT_UNUSED_RUBY_MAP3", "name": "AquaHideout_UnusedRubyMap3", "layout": "LAYOUT_AQUA_HIDEOUT_UNUSED_RUBY_MAP3", - "music": "MUS_AJITO", + "music": "MUS_AQUA_MAGMA_HIDEOUT", "region_map_section": "MAPSEC_AQUA_HIDEOUT", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/ArtisanCave_1F/map.json b/data/maps/ArtisanCave_1F/map.json index f9bd9bc65a..0d315b8ee8 100644 --- a/data/maps/ArtisanCave_1F/map.json +++ b/data/maps/ArtisanCave_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_ARTISAN_CAVE_1F", "name": "ArtisanCave_1F", "layout": "LAYOUT_ARTISAN_CAVE_1F", - "music": "MUS_DAN01", + "music": "MUS_PETALBURG_WOODS", "region_map_section": "MAPSEC_ARTISAN_CAVE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/ArtisanCave_B1F/map.json b/data/maps/ArtisanCave_B1F/map.json index debe5b3073..07a897bb95 100644 --- a/data/maps/ArtisanCave_B1F/map.json +++ b/data/maps/ArtisanCave_B1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_ARTISAN_CAVE_B1F", "name": "ArtisanCave_B1F", "layout": "LAYOUT_ARTISAN_CAVE_B1F", - "music": "MUS_DAN01", + "music": "MUS_PETALBURG_WOODS", "region_map_section": "MAPSEC_ARTISAN_CAVE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/BattleColosseum_2P/map.json b/data/maps/BattleColosseum_2P/map.json index c0d8036a7c..3c9887a65f 100644 --- a/data/maps/BattleColosseum_2P/map.json +++ b/data/maps/BattleColosseum_2P/map.json @@ -2,7 +2,7 @@ "id": "MAP_BATTLE_COLOSSEUM_2P", "name": "BattleColosseum_2P", "layout": "LAYOUT_BATTLE_COLOSSEUM_2P", - "music": "MUS_RAINBOW", + "music": "MUS_EVER_GRANDE", "region_map_section": "MAPSEC_DYNAMIC", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/BattleColosseum_4P/map.json b/data/maps/BattleColosseum_4P/map.json index 4a7e250bef..a6eddc9a87 100644 --- a/data/maps/BattleColosseum_4P/map.json +++ b/data/maps/BattleColosseum_4P/map.json @@ -2,7 +2,7 @@ "id": "MAP_BATTLE_COLOSSEUM_4P", "name": "BattleColosseum_4P", "layout": "LAYOUT_BATTLE_COLOSSEUM_4P", - "music": "MUS_RAINBOW", + "music": "MUS_EVER_GRANDE", "region_map_section": "MAPSEC_DYNAMIC", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/BattleFrontier_BattleArenaBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleArenaBattleRoom/scripts.inc index c3b4154ba8..5badc62d07 100644 --- a/data/maps/BattleFrontier_BattleArenaBattleRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattleArenaBattleRoom/scripts.inc @@ -66,7 +66,7 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_AnnounceTrainers:: @ 825752E applymovement LOCALID_OPPONENT, BattleFrontier_BattleArenaBattleRoom_Movement_OpponentEnter waitmovement 0 applymovement LOCALID_ANNOUNCER, BattleFrontier_BattleArenaBattleRoom_Movement_JumpInPlaceDown - playse SE_W187 + playse SE_M_BELLY_DRUM waitse waitmovement 0 msgbox BattleFrontier_BattleArenaBattleRoom_Text_PlayerStepForward, MSGBOX_DEFAULT @@ -74,7 +74,7 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_AnnounceTrainers:: @ 825752E applymovement LOCALID_PLAYER, BattleFrontier_BattleArenaBattleRoom_Movement_PlayerStepForward waitmovement 0 applymovement LOCALID_ANNOUNCER, BattleFrontier_BattleArenaBattleRoom_Movement_JumpInPlaceDown - playse SE_W187 + playse SE_M_BELLY_DRUM waitse waitmovement 0 arena_gettrainername @@ -83,7 +83,7 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_AnnounceTrainers:: @ 825752E applymovement LOCALID_OPPONENT, BattleFrontier_BattleArenaBattleRoom_Movement_OpponentStepForward waitmovement 0 applymovement LOCALID_ANNOUNCER, BattleFrontier_BattleArenaBattleRoom_Movement_JumpInPlaceDown - playse SE_W187 + playse SE_M_BELLY_DRUM waitse waitmovement 0 msgbox BattleFrontier_BattleArenaBattleRoom_Text_SetKOTourneyBegin, MSGBOX_DEFAULT @@ -103,7 +103,7 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_DeclareOpponentWinner:: @ 82575 applymovement LOCALID_BLACK_BELT_2, BattleFrontier_BattleArenaBattleRoom_Movement_JumpInPlaceDown applymovement LOCALID_BLACK_BELT_3, BattleFrontier_BattleArenaBattleRoom_Movement_JumpInPlaceUp applymovement LOCALID_BLACK_BELT_4, BattleFrontier_BattleArenaBattleRoom_Movement_JumpInPlaceUp - playse SE_W173 + playse SE_M_SNORE waitse waitmovement 0 arena_gettrainername @@ -131,7 +131,7 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_DefeatedOpponent:: @ 8257630 special LoadPlayerParty special SavePlayerParty frontier_setpartyorder FRONTIER_PARTY_SIZE - playfanfare MUS_ME_ASA + playfanfare MUS_HEAL waitfanfare special HealPlayerParty BattleFrontier_BattleArenaBattleRoom_EventScript_AskReadyForOpponent:: @ 82576B0 @@ -286,7 +286,7 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_BattleGreta:: @ 8257961 applymovement LOCALID_ATTENDANT, BattleFrontier_BattleArenaBattleRoom_Movement_WalkInPlaceRight waitmovement 0 applymovement LOCALID_ANNOUNCER, BattleFrontier_BattleArenaBattleRoom_Movement_JumpInPlaceDown - playse SE_W187 + playse SE_M_BELLY_DRUM waitse waitmovement 0 msgbox BattleFrontier_BattleArenaBattleRoom_Text_PlayerStepForward, MSGBOX_DEFAULT @@ -294,7 +294,7 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_BattleGreta:: @ 8257961 applymovement LOCALID_PLAYER, BattleFrontier_BattleArenaBattleRoom_Movement_PlayerStepForwardLong waitmovement 0 applymovement LOCALID_ANNOUNCER, BattleFrontier_BattleArenaBattleRoom_Movement_JumpInPlaceDown - playse SE_W187 + playse SE_M_BELLY_DRUM waitse waitmovement 0 msgbox BattleFrontier_BattleArenaBattleRoom_Text_MakeWayForGreta, MSGBOX_DEFAULT @@ -336,7 +336,7 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_DefeatedGretaSilver:: @ 8257A5C applymovement LOCALID_OPPONENT, BattleFrontier_BattleArenaBattleRoom_Movement_OpponentStepForwardLong waitmovement 0 msgbox BattleFrontier_BattleArenaBattleRoom_Text_GretaYoureToughAfterAll, MSGBOX_DEFAULT - playfanfare MUS_ME_SYMBOLGET + playfanfare MUS_OBTAIN_SYMBOL message BattleFrontier_BattleArenaBattleRoom_Text_ReceivedGutsSymbol waitmessage waitfanfare @@ -373,7 +373,7 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_DefeatedGretaGold:: @ 8257B15 applymovement LOCALID_OPPONENT, BattleFrontier_BattleArenaBattleRoom_Movement_OpponentStepForwardLong waitmovement 0 msgbox BattleFrontier_BattleArenaBattleRoom_Text_GretaBlownAway, MSGBOX_DEFAULT - playfanfare MUS_ME_SYMBOLGET + playfanfare MUS_OBTAIN_SYMBOL message BattleFrontier_BattleArenaBattleRoom_Text_GutsSymbolTookGoldenShine waitmessage waitfanfare @@ -406,7 +406,7 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_DeclarePlayerWinner:: @ 8257BA9 applymovement LOCALID_BLACK_BELT_2, BattleFrontier_BattleArenaBattleRoom_Movement_JumpInPlaceDown applymovement LOCALID_BLACK_BELT_3, BattleFrontier_BattleArenaBattleRoom_Movement_JumpInPlaceUp applymovement LOCALID_BLACK_BELT_4, BattleFrontier_BattleArenaBattleRoom_Movement_JumpInPlaceUp - playse SE_BAN + playse SE_BANG waitse waitmovement 0 msgbox BattleFrontier_BattleArenaBattleRoom_Text_WinnerIsPlayer, MSGBOX_DEFAULT diff --git a/data/maps/BattleFrontier_BattleDomeBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleDomeBattleRoom/scripts.inc index 78665edc1d..b01d5314bb 100644 --- a/data/maps/BattleFrontier_BattleDomeBattleRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattleDomeBattleRoom/scripts.inc @@ -67,7 +67,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_PlayerEnter:: @ 824BD4E BattleFrontier_BattleDomeBattleRoom_EventScript_PlayerEnterForTucker:: @ 824BD5A applymovement LOCALID_PLAYER, BattleFrontier_BattleDomeBattleRoom_Movement_PlayerEnterForTucker BattleFrontier_BattleDomeBattleRoom_EventScript_AudienceReactToPlayer:: @ 824BD61 - playse SE_W227B + playse SE_M_ENCORE2 call BattleFrontier_BattleDomeBattleRoom_EventScript_AudienceLookAround waitmovement 0 compare VAR_TEMP_F, DOME_FINAL @@ -95,7 +95,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_BattleOpponent:: @ 824BD82 BattleFrontier_BattleDomeBattleRoom_EventScript_Draw:: @ 824BDF7 msgbox BattleFrontier_BattleDomeBattleRoom_Text_RefereeDecisionPleaseWait, MSGBOX_DEFAULT closemessage - playse SE_W227B + playse SE_M_ENCORE2 call BattleFrontier_BattleDomeBattleRoom_EventScript_AudienceLookAround delay 60 applymovement LOCALID_REFEREE, BattleFrontier_BattleDomeBattleRoom_Movement_RefereeEnter @@ -120,7 +120,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_LostToOpponent:: @ 824BE4F call_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_OpponentWonDraw compare VAR_TEMP_2, DRAW_TUCKER call_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_TuckerWonDraw - playse SE_W227B + playse SE_M_ENCORE2 call BattleFrontier_BattleDomeBattleRoom_EventScript_AudienceLookAround delay 60 BattleFrontier_BattleDomeBattleRoom_EventScript_LostTourney:: @ 824BE8D @@ -153,7 +153,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_DefeatedOpponent:: @ 824BEE0 call_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_PlayerWon compare VAR_TEMP_2, DRAW_TRAINER call_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_PlayerWonDraw - playse SE_W227B + playse SE_M_ENCORE2 call BattleFrontier_BattleDomeBattleRoom_EventScript_AudienceLookAround delay 60 dome_getroundtext @@ -180,7 +180,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_WonLvOpenTourney:: @ 824BF96 msgbox BattleFrontier_BattleDomeBattleRoom_Text_PlayerIsLvOpenChamp, MSGBOX_DEFAULT BattleFrontier_BattleDomeBattleRoom_EventScript_CelebrateWin:: @ 824BF9E special DoDomeConfetti - playse SE_W227B + playse SE_M_ENCORE2 call BattleFrontier_BattleDomeBattleRoom_EventScript_AudienceLookAround delay 60 frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_WON @@ -361,25 +361,25 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_TuckerEnter:: @ 824C211 applymovement LOCALID_AUDIENCE_TWIN, BattleFrontier_BattleDomeBattleRoom_Movement_AudienceTwinJump applymovement LOCALID_ANNOUNCER, BattleFrontier_BattleDomeBattleRoom_Movement_AnnouncerMoveForTuckerEntrance applymovement LOCALID_OPPONENT, BattleFrontier_BattleDomeBattleRoom_Movement_TuckerEnterAndDance - playse SE_W227B + playse SE_M_ENCORE2 call BattleFrontier_BattleDomeBattleRoom_EventScript_AudienceLookAround waitse - playse SE_W227B + playse SE_M_ENCORE2 call BattleFrontier_BattleDomeBattleRoom_EventScript_AudienceLookAround waitse - playse SE_W227B + playse SE_M_ENCORE2 call BattleFrontier_BattleDomeBattleRoom_EventScript_AudienceLookAround waitse - playse SE_W227B + playse SE_M_ENCORE2 call BattleFrontier_BattleDomeBattleRoom_EventScript_AudienceLookAround waitse - playse SE_W227B + playse SE_M_ENCORE2 call BattleFrontier_BattleDomeBattleRoom_EventScript_AudienceLookAround waitse waitmovement 0 message BattleFrontier_BattleDomeBattleRoom_Text_SpectatorTuckerChant waitmessage - playse SE_W227B + playse SE_M_ENCORE2 call BattleFrontier_BattleDomeBattleRoom_EventScript_AudienceLookAround waitse switch VAR_TEMP_E @@ -407,7 +407,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_BattleTuckerSilver:: @ 824C2B9 applymovement LOCALID_OPPONENT, BattleFrontier_BattleDomeBattleRoom_Movement_TuckerApproachPlayer waitmovement 0 msgbox BattleFrontier_BattleDomeBattleRoom_Text_SeeYourFrontierPass, MSGBOX_DEFAULT - playfanfare MUS_ME_SYMBOLGET + playfanfare MUS_OBTAIN_SYMBOL message BattleFrontier_BattleDomeBattleRoom_Text_ReceivedTacticsSymbol waitmessage waitfanfare @@ -437,7 +437,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_BattleTuckerGold:: @ 824C373 applymovement LOCALID_OPPONENT, BattleFrontier_BattleDomeBattleRoom_Movement_TuckerApproachPlayer waitmovement 0 msgbox BattleFrontier_BattleDomeBattleRoom_Text_NeverLostWhenPowerUnleashed, MSGBOX_DEFAULT - playfanfare MUS_ME_SYMBOLGET + playfanfare MUS_OBTAIN_SYMBOL message BattleFrontier_BattleDomeBattleRoom_Text_TacticsSymbolTookGoldenShine waitmessage waitfanfare @@ -456,7 +456,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_DoTuckerBattle:: @ 824C400 BattleFrontier_BattleDomeBattleRoom_EventScript_LostToTucker:: @ 824C420 msgbox BattleFrontier_BattleDomeBattleRoom_Text_WinnerIsTucker, MSGBOX_DEFAULT - playse SE_W227B + playse SE_M_ENCORE2 call BattleFrontier_BattleDomeBattleRoom_EventScript_AudienceLookAround waitse goto BattleFrontier_BattleDomeBattleRoom_EventScript_LostTourney diff --git a/data/maps/BattleFrontier_BattleDomeCorridor/map.json b/data/maps/BattleFrontier_BattleDomeCorridor/map.json index 5b661ce6a1..89fc022c58 100644 --- a/data/maps/BattleFrontier_BattleDomeCorridor/map.json +++ b/data/maps/BattleFrontier_BattleDomeCorridor/map.json @@ -2,7 +2,7 @@ "id": "MAP_BATTLE_FRONTIER_BATTLE_DOME_CORRIDOR", "name": "BattleFrontier_BattleDomeCorridor", "layout": "LAYOUT_BATTLE_FRONTIER_BATTLE_DOME_CORRIDOR", - "music": "MUS_B_DOME1", + "music": "MUS_B_DOME_LOBBY", "region_map_section": "MAPSEC_BATTLE_FRONTIER", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/BattleFrontier_BattleDomeLobby/map.json b/data/maps/BattleFrontier_BattleDomeLobby/map.json index 35caadbc07..e550bbaf55 100644 --- a/data/maps/BattleFrontier_BattleDomeLobby/map.json +++ b/data/maps/BattleFrontier_BattleDomeLobby/map.json @@ -2,7 +2,7 @@ "id": "MAP_BATTLE_FRONTIER_BATTLE_DOME_LOBBY", "name": "BattleFrontier_BattleDomeLobby", "layout": "LAYOUT_BATTLE_FRONTIER_BATTLE_DOME_LOBBY", - "music": "MUS_B_DOME1", + "music": "MUS_B_DOME_LOBBY", "region_map_section": "MAPSEC_BATTLE_FRONTIER", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/BattleFrontier_BattleDomePreBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleDomePreBattleRoom/scripts.inc index 0d67792b95..977a0bcae2 100644 --- a/data/maps/BattleFrontier_BattleDomePreBattleRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattleDomePreBattleRoom/scripts.inc @@ -224,7 +224,7 @@ BattleFrontier_BattleDomePreBattleRoom_EventScript_ReturnFromBattle:: @ 824B5C7 msgbox BattleFrontier_BattleDomePreBattleRoom_Text_RestoreMonsToFullHealth, MSGBOX_DEFAULT special LoadPlayerParty frontier_setpartyorder FRONTIER_PARTY_SIZE - playfanfare MUS_ME_ASA + playfanfare MUS_HEAL waitfanfare special HealPlayerParty call BattleFrontier_BattleDomePreBattleRoom_EventScript_RoundCompleteMessage diff --git a/data/maps/BattleFrontier_BattleFactoryBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleFactoryBattleRoom/scripts.inc index ee7a724d19..f15f6542ef 100644 --- a/data/maps/BattleFrontier_BattleFactoryBattleRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattleFactoryBattleRoom/scripts.inc @@ -150,7 +150,7 @@ BattleFrontier_BattleFactoryBattleRoom_EventScript_DefeatedNolandSilver:: @ 825B closemessage applymovement LOCALID_PLAYER, BattleFrontier_BattleFactoryBattleRoom_Movement_PlayerApproachNoland waitmovement 0 - playfanfare MUS_ME_SYMBOLGET + playfanfare MUS_OBTAIN_SYMBOL message BattleFrontier_BattleFactoryBattleRoom_Text_ReceivedKnowledgeSymbol waitmessage waitfanfare @@ -179,7 +179,7 @@ BattleFrontier_BattleFactoryBattleRoom_EventScript_DefeatedNolandGold:: @ 825B09 waitmessage applymovement LOCALID_PLAYER, BattleFrontier_BattleFactoryBattleRoom_Movement_PlayerApproachNoland waitmovement 0 - playfanfare MUS_ME_SYMBOLGET + playfanfare MUS_OBTAIN_SYMBOL message BattleFrontier_BattleFactoryBattleRoom_Text_KnowledgeSymbolTookGoldenShine waitmessage waitfanfare diff --git a/data/maps/BattleFrontier_BattleFactoryPreBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleFactoryPreBattleRoom/scripts.inc index 0491c925a0..48d2bcc3ad 100644 --- a/data/maps/BattleFrontier_BattleFactoryPreBattleRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattleFactoryPreBattleRoom/scripts.inc @@ -62,13 +62,13 @@ BattleFrontier_BattleFactoryPreBattleRoom_EventScript_ReturnToRoomFromBattle:: @ factory_setopponentmons factory_resethelditems msgbox BattleFrontier_BattleFactoryPreBattleRoom_Text_LetUsRestoreMons, MSGBOX_DEFAULT - playfanfare MUS_ME_ASA + playfanfare MUS_HEAL waitfanfare special HealPlayerParty frontier_getbrainstatus compare VAR_RESULT, FRONTIER_BRAIN_NOT_READY goto_if_eq BattleFrontier_BattleFactoryPreBattleRoom_EventScript_AskReadyForRegularOpponent - playse SE_TOREEYE + playse SE_POKENAV_CALL waitse msgbox BattleFrontier_BattleFactoryPreBattleRoom_Text_WaitFewMoments, MSGBOX_DEFAULT closemessage diff --git a/data/maps/BattleFrontier_BattlePalaceBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattlePalaceBattleRoom/scripts.inc index f1ea064d64..43db81321b 100644 --- a/data/maps/BattleFrontier_BattlePalaceBattleRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattlePalaceBattleRoom/scripts.inc @@ -89,7 +89,7 @@ BattleFrontier_BattlePalaceBattleRoom_EventScript_DefeatedOpponent:: @ 824F911 special LoadPlayerParty special SavePlayerParty frontier_setpartyorder FRONTIER_PARTY_SIZE - playfanfare MUS_ME_ASA + playfanfare MUS_HEAL waitfanfare special HealPlayerParty BattleFrontier_BattlePalaceBattleRoom_EventScript_AskReadyForOpponent:: @ 824F98A @@ -245,7 +245,7 @@ BattleFrontier_BattlePalaceBattleRoom_EventScript_DefeatedSpenserSilver:: @ 824F applymovement LOCALID_PLAYER, BattleFrontier_BattlePalaceBattleRoom_Movement_FaceUp applymovement LOCALID_ATTENDANT, BattleFrontier_BattlePalaceBattleRoom_Movement_FaceDown msgbox BattleFrontier_BattlePalaceBattleRoom_Text_LetsSeeFrontierPass, MSGBOX_DEFAULT - playfanfare MUS_ME_SYMBOLGET + playfanfare MUS_OBTAIN_SYMBOL message BattleFrontier_BattlePalaceBattleRoom_Text_ReceivedSpiritsSymbol waitmessage waitfanfare @@ -280,7 +280,7 @@ BattleFrontier_BattlePalaceBattleRoom_EventScript_DefeatedSpenserGold:: @ 824FD8 applymovement LOCALID_PLAYER, BattleFrontier_BattlePalaceBattleRoom_Movement_FaceUp applymovement LOCALID_ATTENDANT, BattleFrontier_BattlePalaceBattleRoom_Movement_FaceDown msgbox BattleFrontier_BattlePalaceBattleRoom_Text_HurryWithFrontierPass, MSGBOX_DEFAULT - playfanfare MUS_ME_SYMBOLGET + playfanfare MUS_OBTAIN_SYMBOL message BattleFrontier_BattlePalaceBattleRoom_Text_SpiritsSymbolTookGoldenShine waitmessage waitfanfare diff --git a/data/maps/BattleFrontier_BattlePikeCorridor/map.json b/data/maps/BattleFrontier_BattlePikeCorridor/map.json index 8780bb0d39..1a5faadeab 100644 --- a/data/maps/BattleFrontier_BattlePikeCorridor/map.json +++ b/data/maps/BattleFrontier_BattlePikeCorridor/map.json @@ -2,7 +2,7 @@ "id": "MAP_BATTLE_FRONTIER_BATTLE_PIKE_CORRIDOR", "name": "BattleFrontier_BattlePikeCorridor", "layout": "LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_CORRIDOR", - "music": "MUS_B_TUBE", + "music": "MUS_B_PIKE", "region_map_section": "MAPSEC_BATTLE_FRONTIER", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/BattleFrontier_BattlePikeLobby/map.json b/data/maps/BattleFrontier_BattlePikeLobby/map.json index 3ce985ebc9..2ca2ce4852 100644 --- a/data/maps/BattleFrontier_BattlePikeLobby/map.json +++ b/data/maps/BattleFrontier_BattlePikeLobby/map.json @@ -2,7 +2,7 @@ "id": "MAP_BATTLE_FRONTIER_BATTLE_PIKE_LOBBY", "name": "BattleFrontier_BattlePikeLobby", "layout": "LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_LOBBY", - "music": "MUS_B_TUBE", + "music": "MUS_B_PIKE", "region_map_section": "MAPSEC_BATTLE_FRONTIER", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/BattleFrontier_BattlePikeLobby/scripts.inc b/data/maps/BattleFrontier_BattlePikeLobby/scripts.inc index c1d3fc9744..f322c4784d 100644 --- a/data/maps/BattleFrontier_BattlePikeLobby/scripts.inc +++ b/data/maps/BattleFrontier_BattlePikeLobby/scripts.inc @@ -265,7 +265,7 @@ BattleFrontier_BattlePikeLobby_EventScript_ExitRules:: @ 825BB47 end BattleFrontier_BattlePike_EventScript_CloseCurtain:: @ 825BB49 - playse SE_CURTAIN + playse SE_PIKE_CURTAIN_OPEN special CloseBattlePikeCurtain waitstate waitse diff --git a/data/maps/BattleFrontier_BattlePikeRoomFinal/map.json b/data/maps/BattleFrontier_BattlePikeRoomFinal/map.json index 5d8067edc2..5a53ad19c9 100644 --- a/data/maps/BattleFrontier_BattlePikeRoomFinal/map.json +++ b/data/maps/BattleFrontier_BattlePikeRoomFinal/map.json @@ -2,7 +2,7 @@ "id": "MAP_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_FINAL", "name": "BattleFrontier_BattlePikeRoomFinal", "layout": "LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_FINAL", - "music": "MUS_B_TUBE", + "music": "MUS_B_PIKE", "region_map_section": "MAPSEC_BATTLE_FRONTIER", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/BattleFrontier_BattlePikeRoomNormal/map.json b/data/maps/BattleFrontier_BattlePikeRoomNormal/map.json index fcaac560e4..82414ac6a3 100644 --- a/data/maps/BattleFrontier_BattlePikeRoomNormal/map.json +++ b/data/maps/BattleFrontier_BattlePikeRoomNormal/map.json @@ -2,7 +2,7 @@ "id": "MAP_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_NORMAL", "name": "BattleFrontier_BattlePikeRoomNormal", "layout": "LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_NORMAL", - "music": "MUS_B_TUBE", + "music": "MUS_B_PIKE", "region_map_section": "MAPSEC_BATTLE_FRONTIER", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/BattleFrontier_BattlePikeRoomNormal/scripts.inc b/data/maps/BattleFrontier_BattlePikeRoomNormal/scripts.inc index 327b6463cc..35e76a66d8 100644 --- a/data/maps/BattleFrontier_BattlePikeRoomNormal/scripts.inc +++ b/data/maps/BattleFrontier_BattlePikeRoomNormal/scripts.inc @@ -83,7 +83,7 @@ BattleFrontier_BattlePikeRoomNormal_EventScript_WonHardBattle:: @ 825D285 lock faceplayer msgbox BattleFrontier_BattlePikeRoomNormal_Text_RestoreToFullHealth, MSGBOX_DEFAULT - playfanfare MUS_ME_ASA + playfanfare MUS_HEAL waitfanfare special HealPlayerParty msgbox BattleFrontier_BattlePikeRoomNormal_Text_EnjoyRestOfChallenge2, MSGBOX_DEFAULT @@ -111,7 +111,7 @@ BattleFrontier_BattlePikeRoomNormal_EventScript_LucyEnter:: @ 825D2FB applymovement OBJ_EVENT_ID_CAMERA, BattleFrontier_BattlePikeRoomNormal_Movement_CameraPanUp applymovement LOCALID_OBJ_1, BattleFrontier_BattlePikeRoomNormal_Movement_HealNPCExitForLucy waitmovement 0 - playse SE_CURTAIN + playse SE_PIKE_CURTAIN_OPEN call BattleFrontier_BattlePikeRoomNormal_EventScript_SetCurtainTilesLittleClosed delay 4 call BattleFrontier_BattlePikeRoomNormal_EventScript_SetCurtainTilesMostlyClosed @@ -120,7 +120,7 @@ BattleFrontier_BattlePikeRoomNormal_EventScript_LucyEnter:: @ 825D2FB delay 4 waitse delay 60 - playse SE_CURTAIN1 + playse SE_PIKE_CURTAIN_CLOSE delay 65 call BattleFrontier_BattlePikeRoomNormal_EventScript_SetCurtainTilesMostlyClosed showobjectat LOCALID_OBJ_0, MAP_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_NORMAL @@ -154,7 +154,7 @@ BattleFrontier_BattlePikeRoomNormal_EventScript_DefeatedLucySilver:: @ 825D3DA goto_if_ne BattleFrontier_BattlePikeRoomNormal_EventScript_DefeatedLucy msgbox BattleFrontier_BattlePikeRoomNormal_Text_LucyShowMeFrontierPass, MSGBOX_DEFAULT waitmessage - playfanfare MUS_ME_SYMBOLGET + playfanfare MUS_OBTAIN_SYMBOL message BattleFrontier_BattlePikeRoomNormal_Text_ReceivedLuckSymbol waitmessage waitfanfare @@ -182,7 +182,7 @@ BattleFrontier_BattlePikeRoomNormal_EventScript_DefeatedLucyGold:: @ 825D460 goto_if_eq BattleFrontier_BattlePikeRoomNormal_EventScript_DefeatedLucy msgbox BattleFrontier_BattlePikeRoomNormal_Text_LucyFrontierPass, MSGBOX_DEFAULT waitmessage - playfanfare MUS_ME_SYMBOLGET + playfanfare MUS_OBTAIN_SYMBOL message BattleFrontier_BattlePikeRoomNormal_Text_LuckSymbolTookGoldenShine waitmessage waitfanfare @@ -211,14 +211,14 @@ BattleFrontier_BattlePikeRoomNormal_EventScript_PreQueenNoHeal:: @ 825D4DC BattleFrontier_BattlePikeRoomNormal_EventScript_PreQueenHealOneMon:: @ 825D4EA msgbox BattleFrontier_BattlePikeRoomNormal_Text_ChoseRoomHealOne, MSGBOX_DEFAULT - playfanfare MUS_ME_ASA + playfanfare MUS_HEAL waitfanfare goto BattleFrontier_BattlePikeRoomNormal_EventScript_LucyEnter end BattleFrontier_BattlePikeRoomNormal_EventScript_PreQueenHealTwoMons:: @ 825D4FC msgbox BattleFrontier_BattlePikeRoomNormal_Text_ChoseRoomHealTwo, MSGBOX_DEFAULT - playfanfare MUS_ME_ASA + playfanfare MUS_HEAL waitfanfare goto BattleFrontier_BattlePikeRoomNormal_EventScript_LucyEnter end @@ -230,7 +230,7 @@ BattleFrontier_BattlePikeRoomNormal_EventScript_EnterFullHealRoom:: @ 825D50E waitmovement 0 message BattleFrontier_BattlePikeRoomNormal_Text_WillRestoreToFullHealth waitmessage - playfanfare MUS_ME_ASA + playfanfare MUS_HEAL waitfanfare special HealPlayerParty msgbox BattleFrontier_BattlePikeRoomNormal_Text_EnjoyRestOfChallenge, MSGBOX_DEFAULT @@ -573,7 +573,7 @@ BattleFrontier_BattlePikeRoomNormal_EventScript_HealNPC:: @ 825D83E call_if_eq BattleFrontier_BattlePikeRoomNormal_EventScript_WillRestoreTwoMons compare VAR_RESULT, 1 call_if_eq BattleFrontier_BattlePikeRoomNormal_EventScript_WillRestoreOneMon - playfanfare MUS_ME_ASA + playfanfare MUS_HEAL waitfanfare msgbox BattleFrontier_BattlePikeRoomNormal_Text_BestOfLuckFarewell, MSGBOX_DEFAULT closemessage diff --git a/data/maps/BattleFrontier_BattlePikeRoomWildMons/map.json b/data/maps/BattleFrontier_BattlePikeRoomWildMons/map.json index 433bff6302..f74d548875 100644 --- a/data/maps/BattleFrontier_BattlePikeRoomWildMons/map.json +++ b/data/maps/BattleFrontier_BattlePikeRoomWildMons/map.json @@ -2,7 +2,7 @@ "id": "MAP_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_WILD_MONS", "name": "BattleFrontier_BattlePikeRoomWildMons", "layout": "LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_WILD_MONS", - "music": "MUS_B_TUBE", + "music": "MUS_B_PIKE", "region_map_section": "MAPSEC_BATTLE_FRONTIER", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/BattleFrontier_BattlePikeThreePathRoom/map.json b/data/maps/BattleFrontier_BattlePikeThreePathRoom/map.json index 005e285d4d..536e02a898 100644 --- a/data/maps/BattleFrontier_BattlePikeThreePathRoom/map.json +++ b/data/maps/BattleFrontier_BattlePikeThreePathRoom/map.json @@ -2,7 +2,7 @@ "id": "MAP_BATTLE_FRONTIER_BATTLE_PIKE_THREE_PATH_ROOM", "name": "BattleFrontier_BattlePikeThreePathRoom", "layout": "LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_THREE_PATH_ROOM", - "music": "MUS_B_TUBE", + "music": "MUS_B_PIKE", "region_map_section": "MAPSEC_BATTLE_FRONTIER", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/BattleFrontier_BattlePyramidFloor/scripts.inc b/data/maps/BattleFrontier_BattlePyramidFloor/scripts.inc index f590ff8900..4f378c4e57 100644 --- a/data/maps/BattleFrontier_BattlePyramidFloor/scripts.inc +++ b/data/maps/BattleFrontier_BattlePyramidFloor/scripts.inc @@ -33,7 +33,7 @@ BattleFrontier_BattlePyramidFloor_EventScript_ShowMapName:: @ 8252A8F end BattleFrontier_BattlePyramidFloor_EventScript_PlayPyramidMusic:: @ 8252A98 - playbgm MUS_PYRAMID, 0 + playbgm MUS_B_PYRAMID, 0 setvar VAR_TEMP_E, 1 end diff --git a/data/maps/BattleFrontier_BattlePyramidLobby/map.json b/data/maps/BattleFrontier_BattlePyramidLobby/map.json index 98b62f580f..56736628fa 100644 --- a/data/maps/BattleFrontier_BattlePyramidLobby/map.json +++ b/data/maps/BattleFrontier_BattlePyramidLobby/map.json @@ -2,7 +2,7 @@ "id": "MAP_BATTLE_FRONTIER_BATTLE_PYRAMID_LOBBY", "name": "BattleFrontier_BattlePyramidLobby", "layout": "LAYOUT_BATTLE_FRONTIER_BATTLE_PYRAMID_LOBBY", - "music": "MUS_PYRAMID", + "music": "MUS_B_PYRAMID", "region_map_section": "MAPSEC_BATTLE_FRONTIER", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/BattleFrontier_BattlePyramidLobby/scripts.inc b/data/maps/BattleFrontier_BattlePyramidLobby/scripts.inc index 6c17ca02a9..fc33a8c911 100644 --- a/data/maps/BattleFrontier_BattlePyramidLobby/scripts.inc +++ b/data/maps/BattleFrontier_BattlePyramidLobby/scripts.inc @@ -32,7 +32,7 @@ BattleFrontier_BattlePyramidLobby_EventScript_QuitWithoutSaving:: @ 8250768 lockall message BattleFrontier_BattlePyramidLobby_Text_DidntSaveBeforeQuittingTakeBag waitmessage - playse SE_EXPMAX + playse SE_EXP_MAX waitse closemessage pyramid_set PYRAMID_DATA_WIN_STREAK, 0 @@ -63,7 +63,7 @@ BattleFrontier_BattlePyramidLobby_EventScript_GiveBattlePoints:: @ 82507DA special HealPlayerParty message BattleFrontier_BattlePyramidLobby_Text_UsedBattleBagWillBeKept waitmessage - playse SE_EXPMAX + playse SE_EXP_MAX waitse msgbox BattleFrontier_BattlePyramidLobby_Text_GiveYouTheseBattlePoints, MSGBOX_DEFAULT frontier_givepoints @@ -88,7 +88,7 @@ BattleFrontier_BattlePyramidLobby_EventScript_LostChallenge:: @ 8250852 lockall message BattleFrontier_BattlePyramidLobby_Text_DisappointingHereIsBag waitmessage - playse SE_EXPMAX + playse SE_EXP_MAX waitse message BattleFrontier_BattlePyramidLobby_Text_RecordResultsWait waitmessage @@ -388,7 +388,7 @@ BattleFrontier_BattlePyramidLobby_EventScript_ReceiveNewBattleBag:: @ 8250D94 BattleFrontier_BattlePyramidLobby_EventScript_ReceiveBattleBag:: @ 8250D9C message BattleFrontier_BattlePyramidLobby_Text_ExchangedBagForBattleBag waitmessage - playse SE_EXPMAX + playse SE_EXP_MAX waitse msgbox BattleFrontier_BattlePyramidLobby_Text_StepOnFloorPanel, MSGBOX_DEFAULT closemessage diff --git a/data/maps/BattleFrontier_BattlePyramidTop/scripts.inc b/data/maps/BattleFrontier_BattlePyramidTop/scripts.inc index 7aee4512de..076fae158e 100644 --- a/data/maps/BattleFrontier_BattlePyramidTop/scripts.inc +++ b/data/maps/BattleFrontier_BattlePyramidTop/scripts.inc @@ -53,7 +53,7 @@ BattleFrontier_BattlePyramidTop_OnFrame: @ 825516E .2byte 0 BattleFrontier_BattlePyramidTop_EventScript_PlayPyramidMusic:: @ 8255180 - playbgm MUS_PYRAMID_TOP, 0 + playbgm MUS_B_PYRAMID_TOP, 0 setvar VAR_TEMP_E, 1 end @@ -88,7 +88,7 @@ BattleFrontier_BattlePyramidTop_EventScript_Attendant:: @ 82551D0 waitmovement 0 message BattleFrontier_BattlePyramidTop_Text_PlayerConqueredPyramid waitmessage - playfanfare MUS_ME_POINTGET + playfanfare MUS_OBTAIN_B_POINTS waitfanfare closemessage BattleFrontier_BattlePyramidTop_EventScript_WarpToLobbyWon:: @ 825521A @@ -136,7 +136,7 @@ BattleFrontier_BattlePyramidTop_EventScript_BrandonHeardSilverSpeech:: @ 82552D0 BattleFrontier_BattlePyramidTop_EventScript_BattleBrandonSilver:: @ 82552DA msgbox BattleFrontier_BattlePyramidTop_Text_BringCourageToOurBattle, MSGBOX_DEFAULT call BattleFrontier_BattlePyramidTop_EventScript_DoBrandonBattle - playbgm MUS_PYRAMID_TOP, 0 + playbgm MUS_B_PYRAMID_TOP, 0 compare VAR_RESULT, 1 goto_if_eq BattleFrontier_BattlePyramidTop_EventScript_DefeatedBrandonSilver goto BattleFrontier_BattlePyramid_EventScript_WarpToLobbyLost @@ -146,7 +146,7 @@ BattleFrontier_BattlePyramidTop_EventScript_DefeatedBrandonSilver:: @ 82552FB compare VAR_RESULT, 0 goto_if_ne BattleFrontier_BattlePyramidTop_EventScript_WarpToLobbyWon msgbox BattleFrontier_BattlePyramidTop_Text_BrandonFrontierPassPlease, MSGBOX_DEFAULT - playfanfare MUS_ME_SYMBOLGET + playfanfare MUS_OBTAIN_SYMBOL message BattleFrontier_BattlePyramidTop_Text_ReceivedBraveSymbol waitmessage waitfanfare @@ -176,7 +176,7 @@ BattleFrontier_BattlePyramidTop_EventScript_BrandonHeardGoldSpeech:: @ 8255388 BattleFrontier_BattlePyramidTop_EventScript_BattleBrandonGold:: @ 8255392 msgbox BattleFrontier_BattlePyramidTop_Text_EverythingYouHave, MSGBOX_DEFAULT call BattleFrontier_BattlePyramidTop_EventScript_DoBrandonBattle - playbgm MUS_PYRAMID_TOP, 0 + playbgm MUS_B_PYRAMID_TOP, 0 compare VAR_RESULT, 1 goto_if_eq BattleFrontier_BattlePyramidTop_EventScript_DefeatedBrandonGold goto BattleFrontier_BattlePyramid_EventScript_WarpToLobbyLost @@ -186,7 +186,7 @@ BattleFrontier_BattlePyramidTop_EventScript_DefeatedBrandonGold:: @ 82553B3 compare VAR_RESULT, 2 goto_if_eq BattleFrontier_BattlePyramidTop_EventScript_WarpToLobbyWon msgbox BattleFrontier_BattlePyramidTop_Text_BrandonRemarkableHaveThis, MSGBOX_DEFAULT - playfanfare MUS_ME_SYMBOLGET + playfanfare MUS_OBTAIN_SYMBOL message BattleFrontier_BattlePyramidTop_Text_BraveSymbolTookGoldenShine waitmessage waitfanfare diff --git a/data/maps/BattleFrontier_BattleTowerBattleRoom/map.json b/data/maps/BattleFrontier_BattleTowerBattleRoom/map.json index 157c9c83fa..7cb154d8da 100644 --- a/data/maps/BattleFrontier_BattleTowerBattleRoom/map.json +++ b/data/maps/BattleFrontier_BattleTowerBattleRoom/map.json @@ -2,7 +2,7 @@ "id": "MAP_BATTLE_FRONTIER_BATTLE_TOWER_BATTLE_ROOM", "name": "BattleFrontier_BattleTowerBattleRoom", "layout": "LAYOUT_BATTLE_FRONTIER_BATTLE_TOWER_BATTLE_ROOM", - "music": "MUS_SATTOWER", + "music": "MUS_B_TOWER", "region_map_section": "MAPSEC_BATTLE_FRONTIER", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/BattleFrontier_BattleTowerBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleTowerBattleRoom/scripts.inc index bc12c14f44..493588b4dd 100644 --- a/data/maps/BattleFrontier_BattleTowerBattleRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattleTowerBattleRoom/scripts.inc @@ -69,7 +69,7 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_DefeatedOpponent:: @ 8241C2F applymovement OBJ_EVENT_ID_PLAYER, BattleFrontier_BattleTowerBattleRoom_Movement_PlayerFaceAttendant waitmovement 0 msgbox BattleFrontier_BattleTowerBattleRoom_Text_RestoreMonsToFullHealth, MSGBOX_DEFAULT - playfanfare MUS_ME_ASA + playfanfare MUS_HEAL waitfanfare special HealPlayerParty BattleFrontier_BattleTowerBattleRoom_EventScript_AskReadyForOpponent:: @ 8241C8F @@ -272,7 +272,7 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_DefeatedAnabelSilver:: @ 824204 compare VAR_RESULT, 0 goto_if_ne BattleFrontier_BattleTowerBattleRoom_EventScript_WarpToLobbyWon msgbox BattleFrontier_BattleTowerBattleRoom_Text_AnabelTalentShallBeRecognized, MSGBOX_DEFAULT - playfanfare MUS_ME_SYMBOLGET + playfanfare MUS_OBTAIN_SYMBOL message BattleFrontier_BattleTowerBattleRoom_Text_ReceivedAbilitySymbol waitmessage waitfanfare @@ -299,7 +299,7 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_DefeatedAnabelGold:: @ 82420CF compare VAR_RESULT, 2 goto_if_eq BattleFrontier_BattleTowerBattleRoom_EventScript_WarpToLobbyWon msgbox BattleFrontier_BattleTowerBattleRoom_Text_AnabelCongratsYourPassPlease, MSGBOX_DEFAULT - playfanfare MUS_ME_SYMBOLGET + playfanfare MUS_OBTAIN_SYMBOL message BattleFrontier_BattleTowerBattleRoom_Text_AbilitySymbolTookGoldenShine waitmessage waitfanfare diff --git a/data/maps/BattleFrontier_BattleTowerCorridor/map.json b/data/maps/BattleFrontier_BattleTowerCorridor/map.json index fad1320346..10d5ca7f71 100644 --- a/data/maps/BattleFrontier_BattleTowerCorridor/map.json +++ b/data/maps/BattleFrontier_BattleTowerCorridor/map.json @@ -2,7 +2,7 @@ "id": "MAP_BATTLE_FRONTIER_BATTLE_TOWER_CORRIDOR", "name": "BattleFrontier_BattleTowerCorridor", "layout": "LAYOUT_BATTLE_FRONTIER_BATTLE_TOWER_CORRIDOR", - "music": "MUS_SATTOWER", + "music": "MUS_B_TOWER", "region_map_section": "MAPSEC_BATTLE_FRONTIER", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/BattleFrontier_BattleTowerElevator/map.json b/data/maps/BattleFrontier_BattleTowerElevator/map.json index 3538a04696..f74dce2336 100644 --- a/data/maps/BattleFrontier_BattleTowerElevator/map.json +++ b/data/maps/BattleFrontier_BattleTowerElevator/map.json @@ -2,7 +2,7 @@ "id": "MAP_BATTLE_FRONTIER_BATTLE_TOWER_ELEVATOR", "name": "BattleFrontier_BattleTowerElevator", "layout": "LAYOUT_BATTLE_ELEVATOR", - "music": "MUS_SATTOWER", + "music": "MUS_B_TOWER", "region_map_section": "MAPSEC_BATTLE_FRONTIER", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/BattleFrontier_BattleTowerLobby/map.json b/data/maps/BattleFrontier_BattleTowerLobby/map.json index 516a900385..3135c48fe4 100644 --- a/data/maps/BattleFrontier_BattleTowerLobby/map.json +++ b/data/maps/BattleFrontier_BattleTowerLobby/map.json @@ -2,7 +2,7 @@ "id": "MAP_BATTLE_FRONTIER_BATTLE_TOWER_LOBBY", "name": "BattleFrontier_BattleTowerLobby", "layout": "LAYOUT_BATTLE_FRONTIER_BATTLE_TOWER_LOBBY", - "music": "MUS_SATTOWER", + "music": "MUS_B_TOWER", "region_map_section": "MAPSEC_BATTLE_FRONTIER", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc b/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc index 4b1f196e3f..c1174cf066 100644 --- a/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc +++ b/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc @@ -81,7 +81,7 @@ BattleFrontier_BattleTowerLobby_EventScript_GiveRibbons:: @ 823E780 goto_if_eq BattleFrontier_BattleTowerLobby_EventScript_GiveBattlePoints message BattleFrontier_BattleTowerLobby_Text_HereAreSomeRibbons waitmessage - playfanfare MUS_FANFA4 + playfanfare MUS_OBTAIN_ITEM waitfanfare msgbox BattleFrontier_BattleTowerLobby_Text_PutRibbonOnMons, MSGBOX_DEFAULT BattleFrontier_BattleTowerLobby_EventScript_GiveBattlePoints:: @ 823E7A5 diff --git a/data/maps/BattleFrontier_BattleTowerMultiBattleRoom/map.json b/data/maps/BattleFrontier_BattleTowerMultiBattleRoom/map.json index 0faeed92cd..e48bcefd1b 100644 --- a/data/maps/BattleFrontier_BattleTowerMultiBattleRoom/map.json +++ b/data/maps/BattleFrontier_BattleTowerMultiBattleRoom/map.json @@ -2,7 +2,7 @@ "id": "MAP_BATTLE_FRONTIER_BATTLE_TOWER_MULTI_BATTLE_ROOM", "name": "BattleFrontier_BattleTowerMultiBattleRoom", "layout": "LAYOUT_BATTLE_FRONTIER_BATTLE_TOWER_BATTLE_ROOM", - "music": "MUS_SATTOWER", + "music": "MUS_B_TOWER", "region_map_section": "MAPSEC_BATTLE_FRONTIER", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/BattleFrontier_BattleTowerMultiBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleTowerMultiBattleRoom/scripts.inc index d764419fdb..f4de372322 100644 --- a/data/maps/BattleFrontier_BattleTowerMultiBattleRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattleTowerMultiBattleRoom/scripts.inc @@ -144,7 +144,7 @@ BattleFrontier_BattleTowerMultiBattleRoom_EventScript_RestoreParty:: @ 8249121 frontier_setpartyorder FRONTIER_MULTI_PARTY_SIZE compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_LINK_MULTIS call_if_eq BattleFrontier_BattleTowerMultiBattleRoom_EventScript_249514 - playfanfare MUS_ME_ASA + playfanfare MUS_HEAL waitfanfare special HealPlayerParty BattleFrontier_BattleTowerMultiBattleRoom_EventScript_AskReadyForOpponents:: @ 8249143 diff --git a/data/maps/BattleFrontier_BattleTowerMultiCorridor/map.json b/data/maps/BattleFrontier_BattleTowerMultiCorridor/map.json index 3bb2a04b49..36b4ecd46e 100644 --- a/data/maps/BattleFrontier_BattleTowerMultiCorridor/map.json +++ b/data/maps/BattleFrontier_BattleTowerMultiCorridor/map.json @@ -2,7 +2,7 @@ "id": "MAP_BATTLE_FRONTIER_BATTLE_TOWER_MULTI_CORRIDOR", "name": "BattleFrontier_BattleTowerMultiCorridor", "layout": "LAYOUT_BATTLE_FRONTIER_BATTLE_TOWER_MULTI_CORRIDOR", - "music": "MUS_SATTOWER", + "music": "MUS_B_TOWER", "region_map_section": "MAPSEC_BATTLE_FRONTIER", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/BattleFrontier_BattleTowerMultiPartnerRoom/map.json b/data/maps/BattleFrontier_BattleTowerMultiPartnerRoom/map.json index 610c99713a..c48458344f 100644 --- a/data/maps/BattleFrontier_BattleTowerMultiPartnerRoom/map.json +++ b/data/maps/BattleFrontier_BattleTowerMultiPartnerRoom/map.json @@ -2,7 +2,7 @@ "id": "MAP_BATTLE_FRONTIER_BATTLE_TOWER_MULTI_PARTNER_ROOM", "name": "BattleFrontier_BattleTowerMultiPartnerRoom", "layout": "LAYOUT_BATTLE_FRONTIER_BATTLE_TOWER_MULTI_PARTNER_ROOM", - "music": "MUS_SATTOWER", + "music": "MUS_B_TOWER", "region_map_section": "MAPSEC_BATTLE_FRONTIER", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/BattleFrontier_ExchangeServiceCorner/map.json b/data/maps/BattleFrontier_ExchangeServiceCorner/map.json index 77742a116f..50c6a90a9f 100644 --- a/data/maps/BattleFrontier_ExchangeServiceCorner/map.json +++ b/data/maps/BattleFrontier_ExchangeServiceCorner/map.json @@ -2,7 +2,7 @@ "id": "MAP_BATTLE_FRONTIER_EXCHANGE_SERVICE_CORNER", "name": "BattleFrontier_ExchangeServiceCorner", "layout": "LAYOUT_BATTLE_FRONTIER_EXCHANGE_SERVICE_CORNER", - "music": "MUS_B_TOWER", + "music": "MUS_B_TOWER_RS", "region_map_section": "MAPSEC_BATTLE_FRONTIER", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/BattleFrontier_ExchangeServiceCorner/scripts.inc b/data/maps/BattleFrontier_ExchangeServiceCorner/scripts.inc index f0fb42bb49..b7dfe19fa0 100644 --- a/data/maps/BattleFrontier_ExchangeServiceCorner/scripts.inc +++ b/data/maps/BattleFrontier_ExchangeServiceCorner/scripts.inc @@ -42,7 +42,7 @@ BattleFrontier_ExchangeServiceCorner_EventScript_TryGiveDecor:: @ 825F0E5 special TakeFrontierBattlePoints adddecoration VAR_0x8009 special UpdateBattlePointsWindow - playse SE_REGI + playse SE_SHOP msgbox BattleFrontier_ExchangeServiceCorner_Text_WellSendItToPC, MSGBOX_DEFAULT compare VAR_TEMP_2, EXCHANGE_CORNER_DECOR1_CLERK goto_if_eq BattleFrontier_ExchangeServiceCorner_EventScript_ChooseDecor1 @@ -63,7 +63,7 @@ BattleFrontier_ExchangeServiceCorner_EventScript_TryGiveItem:: @ 825F12A special TakeFrontierBattlePoints additem VAR_0x8009 special UpdateBattlePointsWindow - playse SE_REGI + playse SE_SHOP msgbox BattleFrontier_ExchangeServiceCorner_Text_HereIsYourPrize, MSGBOX_DEFAULT compare VAR_TEMP_2, EXCHANGE_CORNER_VITAMIN_CLERK goto_if_eq BattleFrontier_ExchangeServiceCorner_EventScript_ChooseVitamin diff --git a/data/maps/BattleFrontier_Lounge1/map.json b/data/maps/BattleFrontier_Lounge1/map.json index 2086ce78ed..a650e3ce7a 100644 --- a/data/maps/BattleFrontier_Lounge1/map.json +++ b/data/maps/BattleFrontier_Lounge1/map.json @@ -2,7 +2,7 @@ "id": "MAP_BATTLE_FRONTIER_LOUNGE1", "name": "BattleFrontier_Lounge1", "layout": "LAYOUT_BATTLE_FRONTIER_LOUNGE2", - "music": "MUS_B_TOWER", + "music": "MUS_B_TOWER_RS", "region_map_section": "MAPSEC_BATTLE_FRONTIER", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/BattleFrontier_Lounge2/map.json b/data/maps/BattleFrontier_Lounge2/map.json index 11a5498af3..856e2d395c 100644 --- a/data/maps/BattleFrontier_Lounge2/map.json +++ b/data/maps/BattleFrontier_Lounge2/map.json @@ -2,7 +2,7 @@ "id": "MAP_BATTLE_FRONTIER_LOUNGE2", "name": "BattleFrontier_Lounge2", "layout": "LAYOUT_BATTLE_FRONTIER_LOUNGE1", - "music": "MUS_B_TOWER", + "music": "MUS_B_TOWER_RS", "region_map_section": "MAPSEC_BATTLE_FRONTIER", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/BattleFrontier_Lounge3/map.json b/data/maps/BattleFrontier_Lounge3/map.json index 68d60c70ee..58aee4d419 100644 --- a/data/maps/BattleFrontier_Lounge3/map.json +++ b/data/maps/BattleFrontier_Lounge3/map.json @@ -2,7 +2,7 @@ "id": "MAP_BATTLE_FRONTIER_LOUNGE3", "name": "BattleFrontier_Lounge3", "layout": "LAYOUT_BATTLE_FRONTIER_LOUNGE2", - "music": "MUS_B_TOWER", + "music": "MUS_B_TOWER_RS", "region_map_section": "MAPSEC_BATTLE_FRONTIER", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/BattleFrontier_Lounge3/scripts.inc b/data/maps/BattleFrontier_Lounge3/scripts.inc index e892ad3eab..bc85d92d0f 100644 --- a/data/maps/BattleFrontier_Lounge3/scripts.inc +++ b/data/maps/BattleFrontier_Lounge3/scripts.inc @@ -74,7 +74,7 @@ BattleFrontier_Lounge3_EventScript_PlaceBet:: @ 8261E75 special TakeFrontierBattlePoints setvar VAR_FRONTIER_GAMBLER_STATE, FRONTIER_GAMBLER_PLACED_BET special UpdateBattlePointsWindow - playse SE_REGI + playse SE_SHOP msgbox BattleFrontier_Lounge3_Text_ThanksOffYouGo, MSGBOX_DEFAULT goto BattleFrontier_Lounge3_EventScript_FinishBet end diff --git a/data/maps/BattleFrontier_Lounge4/map.json b/data/maps/BattleFrontier_Lounge4/map.json index 9ac2466be4..c82c51dce3 100644 --- a/data/maps/BattleFrontier_Lounge4/map.json +++ b/data/maps/BattleFrontier_Lounge4/map.json @@ -2,7 +2,7 @@ "id": "MAP_BATTLE_FRONTIER_LOUNGE4", "name": "BattleFrontier_Lounge4", "layout": "LAYOUT_BATTLE_FRONTIER_LOUNGE2", - "music": "MUS_B_TOWER", + "music": "MUS_B_TOWER_RS", "region_map_section": "MAPSEC_BATTLE_FRONTIER", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/BattleFrontier_Lounge5/map.json b/data/maps/BattleFrontier_Lounge5/map.json index e0c2ff7478..a8650cfd61 100644 --- a/data/maps/BattleFrontier_Lounge5/map.json +++ b/data/maps/BattleFrontier_Lounge5/map.json @@ -2,7 +2,7 @@ "id": "MAP_BATTLE_FRONTIER_LOUNGE5", "name": "BattleFrontier_Lounge5", "layout": "LAYOUT_BATTLE_FRONTIER_LOUNGE1", - "music": "MUS_B_TOWER", + "music": "MUS_B_TOWER_RS", "region_map_section": "MAPSEC_BATTLE_FRONTIER", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/BattleFrontier_Lounge6/map.json b/data/maps/BattleFrontier_Lounge6/map.json index 85b9bd615d..36027a47e7 100644 --- a/data/maps/BattleFrontier_Lounge6/map.json +++ b/data/maps/BattleFrontier_Lounge6/map.json @@ -2,7 +2,7 @@ "id": "MAP_BATTLE_FRONTIER_LOUNGE6", "name": "BattleFrontier_Lounge6", "layout": "LAYOUT_BATTLE_FRONTIER_LOUNGE2", - "music": "MUS_B_TOWER", + "music": "MUS_B_TOWER_RS", "region_map_section": "MAPSEC_BATTLE_FRONTIER", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/BattleFrontier_Lounge7/map.json b/data/maps/BattleFrontier_Lounge7/map.json index a2e795ae8c..36cf3a8829 100644 --- a/data/maps/BattleFrontier_Lounge7/map.json +++ b/data/maps/BattleFrontier_Lounge7/map.json @@ -2,7 +2,7 @@ "id": "MAP_BATTLE_FRONTIER_LOUNGE7", "name": "BattleFrontier_Lounge7", "layout": "LAYOUT_BATTLE_FRONTIER_LOUNGE2", - "music": "MUS_B_TOWER", + "music": "MUS_B_TOWER_RS", "region_map_section": "MAPSEC_BATTLE_FRONTIER", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/BattleFrontier_Lounge8/map.json b/data/maps/BattleFrontier_Lounge8/map.json index 794a83014e..0736d3b5c5 100644 --- a/data/maps/BattleFrontier_Lounge8/map.json +++ b/data/maps/BattleFrontier_Lounge8/map.json @@ -2,7 +2,7 @@ "id": "MAP_BATTLE_FRONTIER_LOUNGE8", "name": "BattleFrontier_Lounge8", "layout": "LAYOUT_BATTLE_FRONTIER_LOUNGE2", - "music": "MUS_B_TOWER", + "music": "MUS_B_TOWER_RS", "region_map_section": "MAPSEC_BATTLE_FRONTIER", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/BattleFrontier_Lounge9/map.json b/data/maps/BattleFrontier_Lounge9/map.json index 0be08a1d53..d73ad0e92a 100644 --- a/data/maps/BattleFrontier_Lounge9/map.json +++ b/data/maps/BattleFrontier_Lounge9/map.json @@ -2,7 +2,7 @@ "id": "MAP_BATTLE_FRONTIER_LOUNGE9", "name": "BattleFrontier_Lounge9", "layout": "LAYOUT_BATTLE_FRONTIER_LOUNGE2", - "music": "MUS_B_TOWER", + "music": "MUS_B_TOWER_RS", "region_map_section": "MAPSEC_BATTLE_FRONTIER", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/BattleFrontier_Mart/map.json b/data/maps/BattleFrontier_Mart/map.json index 01f3352d6c..10dc2cb1b1 100644 --- a/data/maps/BattleFrontier_Mart/map.json +++ b/data/maps/BattleFrontier_Mart/map.json @@ -2,7 +2,7 @@ "id": "MAP_BATTLE_FRONTIER_MART", "name": "BattleFrontier_Mart", "layout": "LAYOUT_MART", - "music": "MUS_FRIENDLY", + "music": "MUS_POKE_MART", "region_map_section": "MAPSEC_BATTLE_FRONTIER", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/BattleFrontier_OutsideEast/scripts.inc b/data/maps/BattleFrontier_OutsideEast/scripts.inc index 6995e405e4..8e891dd32c 100644 --- a/data/maps/BattleFrontier_OutsideEast/scripts.inc +++ b/data/maps/BattleFrontier_OutsideEast/scripts.inc @@ -108,7 +108,7 @@ BattleFrontier_OutsideEast_EventScript_Sudowoodo:: @ 8242CEA lock faceplayer waitse - playse SE_USSOKI + playse SE_SUDOWOODO_SHAKE applymovement LOCALID_SUDOWOODO, BattleFrontier_OutsideEast_Movement_SudowoodoShake waitmovement 0 release @@ -120,7 +120,7 @@ BattleFrontier_OutsideEast_EventScript_WaterSudowoodo:: @ 8242CFC special DoWateringBerryTreeAnim waitstate waitse - playse SE_USSOKI + playse SE_SUDOWOODO_SHAKE applymovement LOCALID_SUDOWOODO, BattleFrontier_OutsideEast_Movement_SudowoodoShake waitmovement 0 msgbox gText_Sudowoodo_Attacked, MSGBOX_DEFAULT diff --git a/data/maps/BattleFrontier_PokemonCenter_1F/map.json b/data/maps/BattleFrontier_PokemonCenter_1F/map.json index 28a50f8af4..b4b16ba940 100644 --- a/data/maps/BattleFrontier_PokemonCenter_1F/map.json +++ b/data/maps/BattleFrontier_PokemonCenter_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_BATTLE_FRONTIER_POKEMON_CENTER_1F", "name": "BattleFrontier_PokemonCenter_1F", "layout": "LAYOUT_POKEMON_CENTER_1F", - "music": "MUS_POKECEN", + "music": "MUS_POKE_CENTER", "region_map_section": "MAPSEC_BATTLE_FRONTIER", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/BattleFrontier_PokemonCenter_2F/map.json b/data/maps/BattleFrontier_PokemonCenter_2F/map.json index 98aa2be351..cb31916490 100644 --- a/data/maps/BattleFrontier_PokemonCenter_2F/map.json +++ b/data/maps/BattleFrontier_PokemonCenter_2F/map.json @@ -2,7 +2,7 @@ "id": "MAP_BATTLE_FRONTIER_POKEMON_CENTER_2F", "name": "BattleFrontier_PokemonCenter_2F", "layout": "LAYOUT_POKEMON_CENTER_2F", - "music": "MUS_POKECEN", + "music": "MUS_POKE_CENTER", "region_map_section": "MAPSEC_BATTLE_FRONTIER", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/BattleFrontier_RankingHall/map.json b/data/maps/BattleFrontier_RankingHall/map.json index 8e179efda1..5ac9f66995 100644 --- a/data/maps/BattleFrontier_RankingHall/map.json +++ b/data/maps/BattleFrontier_RankingHall/map.json @@ -2,7 +2,7 @@ "id": "MAP_BATTLE_FRONTIER_RANKING_HALL", "name": "BattleFrontier_RankingHall", "layout": "LAYOUT_BATTLE_FRONTIER_RANKING_HALL", - "music": "MUS_BIJYUTU", + "music": "MUS_LILYCOVE_MUSEUM", "region_map_section": "MAPSEC_BATTLE_FRONTIER", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/BattleFrontier_ReceptionGate/map.json b/data/maps/BattleFrontier_ReceptionGate/map.json index 59f7862dc8..44c71ccd1e 100644 --- a/data/maps/BattleFrontier_ReceptionGate/map.json +++ b/data/maps/BattleFrontier_ReceptionGate/map.json @@ -2,7 +2,7 @@ "id": "MAP_BATTLE_FRONTIER_RECEPTION_GATE", "name": "BattleFrontier_ReceptionGate", "layout": "LAYOUT_BATTLE_FRONTIER_RECEPTION_GATE", - "music": "MUS_B_TOWER", + "music": "MUS_B_TOWER_RS", "region_map_section": "MAPSEC_BATTLE_FRONTIER", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/BattleFrontier_ReceptionGate/scripts.inc b/data/maps/BattleFrontier_ReceptionGate/scripts.inc index 495ad165fa..28f53de086 100644 --- a/data/maps/BattleFrontier_ReceptionGate/scripts.inc +++ b/data/maps/BattleFrontier_ReceptionGate/scripts.inc @@ -33,7 +33,7 @@ BattleFrontier_ReceptionGate_EventScript_FirstTimeEntering:: @ 82661F3 BattleFrontier_ReceptionGate_EventScript_ScottScene:: @ 8266229 msgbox BattleFrontier_ReceptionGate_Text_WelcomeToBattleFrontier, MSGBOX_DEFAULT msgbox BattleFrontier_ReceptionGate_Text_IssueFrontierPass, MSGBOX_DEFAULT - playfanfare MUS_FANFA4 + playfanfare MUS_OBTAIN_ITEM message BattleFrontier_ReceptionGate_Text_ObtainedFrontierPass waitfanfare waitmessage diff --git a/data/maps/BattleFrontier_ScottsHouse/map.json b/data/maps/BattleFrontier_ScottsHouse/map.json index a227117493..74393db0b2 100644 --- a/data/maps/BattleFrontier_ScottsHouse/map.json +++ b/data/maps/BattleFrontier_ScottsHouse/map.json @@ -2,7 +2,7 @@ "id": "MAP_BATTLE_FRONTIER_SCOTTS_HOUSE", "name": "BattleFrontier_ScottsHouse", "layout": "LAYOUT_BATTLE_FRONTIER_SCOTTS_HOUSE", - "music": "MUS_B_TOWER", + "music": "MUS_B_TOWER_RS", "region_map_section": "MAPSEC_BATTLE_FRONTIER", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/BirthIsland_Exterior/scripts.inc b/data/maps/BirthIsland_Exterior/scripts.inc index 5c06e6f3a8..16a1c74885 100644 --- a/data/maps/BirthIsland_Exterior/scripts.inc +++ b/data/maps/BirthIsland_Exterior/scripts.inc @@ -72,7 +72,7 @@ BirthIsland_Exterior_EventScript_Deoxys:: @ 8267FC1 setfieldeffectargument 1, 58 setfieldeffectargument 2, 26 dofieldeffect FLDEFF_DESTROY_DEOXYS_ROCK - playbgm MUS_RG_DEOEYE, 0 + playbgm MUS_RG_ENCOUNTER_DEOXYS, 0 waitfieldeffect FLDEFF_DESTROY_DEOXYS_ROCK addobject LOCALID_DEOXYS applymovement LOCALID_DEOXYS, BirthIsland_Exterior_Movement_DeoxysApproach diff --git a/data/maps/CaveOfOrigin_1F/map.json b/data/maps/CaveOfOrigin_1F/map.json index 36af5ca312..17da439077 100644 --- a/data/maps/CaveOfOrigin_1F/map.json +++ b/data/maps/CaveOfOrigin_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_CAVE_OF_ORIGIN_1F", "name": "CaveOfOrigin_1F", "layout": "LAYOUT_CAVE_OF_ORIGIN_1F", - "music": "MUS_DAN03", + "music": "MUS_CAVE_OF_ORIGIN", "region_map_section": "MAPSEC_CAVE_OF_ORIGIN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/CaveOfOrigin_B1F/scripts.inc b/data/maps/CaveOfOrigin_B1F/scripts.inc index ea8d6cec83..db267aaaa3 100644 --- a/data/maps/CaveOfOrigin_B1F/scripts.inc +++ b/data/maps/CaveOfOrigin_B1F/scripts.inc @@ -51,7 +51,7 @@ CaveOfOrigin_B1F_EventScript_DontRemember:: @ 8235842 CaveOfOrigin_B1F_EventScript_AtSkyPillar:: @ 823584D msgbox CaveOfOrigin_B1F_Text_WellHeadToSkyPillar, MSGBOX_DEFAULT closemessage - playse SE_KAIDAN + playse SE_EXIT fadescreenspeed FADE_TO_BLACK, 4 setflag FLAG_WALLACE_GOES_TO_SKY_PILLAR setvar VAR_SOOTOPOLIS_CITY_STATE, 3 diff --git a/data/maps/CaveOfOrigin_Entrance/map.json b/data/maps/CaveOfOrigin_Entrance/map.json index 78a8e58e08..f45f47f992 100644 --- a/data/maps/CaveOfOrigin_Entrance/map.json +++ b/data/maps/CaveOfOrigin_Entrance/map.json @@ -2,7 +2,7 @@ "id": "MAP_CAVE_OF_ORIGIN_ENTRANCE", "name": "CaveOfOrigin_Entrance", "layout": "LAYOUT_CAVE_OF_ORIGIN_ENTRANCE", - "music": "MUS_DAN03", + "music": "MUS_CAVE_OF_ORIGIN", "region_map_section": "MAPSEC_CAVE_OF_ORIGIN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/CaveOfOrigin_UnusedRubySapphireMap1/map.json b/data/maps/CaveOfOrigin_UnusedRubySapphireMap1/map.json index f27b15b855..8b05ac536e 100644 --- a/data/maps/CaveOfOrigin_UnusedRubySapphireMap1/map.json +++ b/data/maps/CaveOfOrigin_UnusedRubySapphireMap1/map.json @@ -2,7 +2,7 @@ "id": "MAP_CAVE_OF_ORIGIN_UNUSED_RUBY_SAPPHIRE_MAP1", "name": "CaveOfOrigin_UnusedRubySapphireMap1", "layout": "LAYOUT_CAVE_OF_ORIGIN_UNUSED_RUBY_SAPPHIRE_MAP1", - "music": "MUS_DAN03", + "music": "MUS_CAVE_OF_ORIGIN", "region_map_section": "MAPSEC_CAVE_OF_ORIGIN", "requires_flash": true, "weather": "WEATHER_NONE", diff --git a/data/maps/CaveOfOrigin_UnusedRubySapphireMap2/map.json b/data/maps/CaveOfOrigin_UnusedRubySapphireMap2/map.json index 5a377947c6..9a3d098103 100644 --- a/data/maps/CaveOfOrigin_UnusedRubySapphireMap2/map.json +++ b/data/maps/CaveOfOrigin_UnusedRubySapphireMap2/map.json @@ -2,7 +2,7 @@ "id": "MAP_CAVE_OF_ORIGIN_UNUSED_RUBY_SAPPHIRE_MAP2", "name": "CaveOfOrigin_UnusedRubySapphireMap2", "layout": "LAYOUT_CAVE_OF_ORIGIN_UNUSED_RUBY_SAPPHIRE_MAP2", - "music": "MUS_DAN03", + "music": "MUS_CAVE_OF_ORIGIN", "region_map_section": "MAPSEC_CAVE_OF_ORIGIN", "requires_flash": true, "weather": "WEATHER_FOG_HORIZONTAL", diff --git a/data/maps/CaveOfOrigin_UnusedRubySapphireMap3/map.json b/data/maps/CaveOfOrigin_UnusedRubySapphireMap3/map.json index 85f82b8860..9456f40129 100644 --- a/data/maps/CaveOfOrigin_UnusedRubySapphireMap3/map.json +++ b/data/maps/CaveOfOrigin_UnusedRubySapphireMap3/map.json @@ -2,7 +2,7 @@ "id": "MAP_CAVE_OF_ORIGIN_UNUSED_RUBY_SAPPHIRE_MAP3", "name": "CaveOfOrigin_UnusedRubySapphireMap3", "layout": "LAYOUT_CAVE_OF_ORIGIN_UNUSED_RUBY_SAPPHIRE_MAP3", - "music": "MUS_DAN03", + "music": "MUS_CAVE_OF_ORIGIN", "region_map_section": "MAPSEC_CAVE_OF_ORIGIN", "requires_flash": true, "weather": "WEATHER_FOG_HORIZONTAL", diff --git a/data/maps/ContestHall/map.json b/data/maps/ContestHall/map.json index 4f8254662d..842c57968d 100644 --- a/data/maps/ContestHall/map.json +++ b/data/maps/ContestHall/map.json @@ -2,7 +2,7 @@ "id": "MAP_CONTEST_HALL", "name": "ContestHall", "layout": "LAYOUT_CONTEST_HALL", - "music": "MUS_CONTEST0", + "music": "MUS_CONTEST", "region_map_section": "MAPSEC_DYNAMIC", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/ContestHall/scripts.inc b/data/maps/ContestHall/scripts.inc index f9c3f4794d..abde00cc2f 100644 --- a/data/maps/ContestHall/scripts.inc +++ b/data/maps/ContestHall/scripts.inc @@ -32,23 +32,23 @@ ContestHall_EventScript_ReadyContestMusic:: @ 823B7AF return ContestHall_EventScript_SaveContestMusicPlayer1:: @ 823B7EF - savebgm MUS_TEST1 + savebgm MUS_LINK_CONTEST_P1 return ContestHall_EventScript_SaveContestMusicPlayer2:: @ 823B7F3 - savebgm MUS_TEST2 + savebgm MUS_LINK_CONTEST_P2 return ContestHall_EventScript_SaveContestMusicPlayer3:: @ 823B7F7 - savebgm MUS_TEST3 + savebgm MUS_LINK_CONTEST_P3 return ContestHall_EventScript_SaveContestMusicPlayer4:: @ 823B7FB - savebgm MUS_TEST4 + savebgm MUS_LINK_CONTEST_P4 return ContestHall_EventScript_SaveContestMusic:: @ 823B7FF - savebgm MUS_CONTEST0 + savebgm MUS_CONTEST return ContestHall_OnResume: @ 823B803 diff --git a/data/maps/ContestHallBeauty/map.json b/data/maps/ContestHallBeauty/map.json index f0cb9168f6..c0ba03bd32 100644 --- a/data/maps/ContestHallBeauty/map.json +++ b/data/maps/ContestHallBeauty/map.json @@ -2,7 +2,7 @@ "id": "MAP_CONTEST_HALL_BEAUTY", "name": "ContestHallBeauty", "layout": "LAYOUT_CONTEST_HALL_BEAUTY", - "music": "MUS_CONTEST0", + "music": "MUS_CONTEST", "region_map_section": "MAPSEC_DYNAMIC", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/ContestHallCool/map.json b/data/maps/ContestHallCool/map.json index 4d1aa639ec..0cd6e1e2ad 100644 --- a/data/maps/ContestHallCool/map.json +++ b/data/maps/ContestHallCool/map.json @@ -2,7 +2,7 @@ "id": "MAP_CONTEST_HALL_COOL", "name": "ContestHallCool", "layout": "LAYOUT_CONTEST_HALL_COOL", - "music": "MUS_CONTEST0", + "music": "MUS_CONTEST", "region_map_section": "MAPSEC_DYNAMIC", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/ContestHallCute/map.json b/data/maps/ContestHallCute/map.json index 4b81a31925..e525390707 100644 --- a/data/maps/ContestHallCute/map.json +++ b/data/maps/ContestHallCute/map.json @@ -2,7 +2,7 @@ "id": "MAP_CONTEST_HALL_CUTE", "name": "ContestHallCute", "layout": "LAYOUT_CONTEST_HALL_CUTE", - "music": "MUS_CONTEST0", + "music": "MUS_CONTEST", "region_map_section": "MAPSEC_DYNAMIC", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/ContestHallSmart/map.json b/data/maps/ContestHallSmart/map.json index 42d16f9114..2cbc841bd7 100644 --- a/data/maps/ContestHallSmart/map.json +++ b/data/maps/ContestHallSmart/map.json @@ -2,7 +2,7 @@ "id": "MAP_CONTEST_HALL_SMART", "name": "ContestHallSmart", "layout": "LAYOUT_CONTEST_HALL_SMART", - "music": "MUS_CONTEST0", + "music": "MUS_CONTEST", "region_map_section": "MAPSEC_DYNAMIC", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/ContestHallTough/map.json b/data/maps/ContestHallTough/map.json index 4e460cd988..15dbb27b2a 100644 --- a/data/maps/ContestHallTough/map.json +++ b/data/maps/ContestHallTough/map.json @@ -2,7 +2,7 @@ "id": "MAP_CONTEST_HALL_TOUGH", "name": "ContestHallTough", "layout": "LAYOUT_CONTEST_HALL_TOUGH", - "music": "MUS_CONTEST0", + "music": "MUS_CONTEST", "region_map_section": "MAPSEC_DYNAMIC", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/DesertRuins/map.json b/data/maps/DesertRuins/map.json index 7e59053b74..c87df0deee 100644 --- a/data/maps/DesertRuins/map.json +++ b/data/maps/DesertRuins/map.json @@ -2,7 +2,7 @@ "id": "MAP_DESERT_RUINS", "name": "DesertRuins", "layout": "LAYOUT_DESERT_RUINS", - "music": "MUS_MABOROSI", + "music": "MUS_SEALED_CHAMBER", "region_map_section": "MAPSEC_DESERT_RUINS", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/DesertUnderpass/map.json b/data/maps/DesertUnderpass/map.json index 56d293411f..20db733818 100644 --- a/data/maps/DesertUnderpass/map.json +++ b/data/maps/DesertUnderpass/map.json @@ -2,7 +2,7 @@ "id": "MAP_DESERT_UNDERPASS", "name": "DesertUnderpass", "layout": "LAYOUT_DESERT_UNDERPASS", - "music": "MUS_TOZAN", + "music": "MUS_MT_CHIMNEY", "region_map_section": "MAPSEC_DESERT_UNDERPASS", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/DewfordTown/map.json b/data/maps/DewfordTown/map.json index 501e68523f..8beb5add70 100644 --- a/data/maps/DewfordTown/map.json +++ b/data/maps/DewfordTown/map.json @@ -2,7 +2,7 @@ "id": "MAP_DEWFORD_TOWN", "name": "DewfordTown", "layout": "LAYOUT_DEWFORD_TOWN", - "music": "MUS_HIGHTOWN", + "music": "MUS_DEWFORD", "region_map_section": "MAPSEC_DEWFORD_TOWN", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/DewfordTown_Gym/map.json b/data/maps/DewfordTown_Gym/map.json index 41e7112a0e..f28550f6ea 100644 --- a/data/maps/DewfordTown_Gym/map.json +++ b/data/maps/DewfordTown_Gym/map.json @@ -2,7 +2,7 @@ "id": "MAP_DEWFORD_TOWN_GYM", "name": "DewfordTown_Gym", "layout": "LAYOUT_DEWFORD_TOWN_GYM", - "music": "MUS_GIM", + "music": "MUS_GYM", "region_map_section": "MAPSEC_DEWFORD_TOWN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/DewfordTown_Gym/scripts.inc b/data/maps/DewfordTown_Gym/scripts.inc index 98acc97dc6..f671840454 100644 --- a/data/maps/DewfordTown_Gym/scripts.inc +++ b/data/maps/DewfordTown_Gym/scripts.inc @@ -80,43 +80,43 @@ DewfordTown_Gym_EventScript_NoLightChange:: @ 81FC71A @ NOTE: A little confusingly, a larger animateflash param value is a smaller flash radius DewfordTown_Gym_EventScript_AnimateFlash1Trainer:: @ 81FC71B - playse SE_MU_PACHI + playse SE_SWITCH animateflash 6 call DewfordTown_Gym_EventScript_SetFlashRadius return DewfordTown_Gym_EventScript_AnimateFlash2Trainers:: @ 81FC726 - playse SE_MU_PACHI + playse SE_SWITCH animateflash 5 call DewfordTown_Gym_EventScript_SetFlashRadius return DewfordTown_Gym_EventScript_AnimateFlash3Trainers:: @ 81FC731 - playse SE_MU_PACHI + playse SE_SWITCH animateflash 4 call DewfordTown_Gym_EventScript_SetFlashRadius return DewfordTown_Gym_EventScript_AnimateFlash4Trainers:: @ 81FC73C - playse SE_MU_PACHI + playse SE_SWITCH animateflash 3 call DewfordTown_Gym_EventScript_SetFlashRadius return DewfordTown_Gym_EventScript_AnimateFlash5Trainers:: @ 81FC747 - playse SE_MU_PACHI + playse SE_SWITCH animateflash 2 call DewfordTown_Gym_EventScript_SetFlashRadius return DewfordTown_Gym_EventScript_AnimateFlash6Trainers:: @ 81FC752 - playse SE_MU_PACHI + playse SE_SWITCH animateflash 1 call DewfordTown_Gym_EventScript_SetFlashRadius return DewfordTown_Gym_EventScript_AnimateFlashFullBrightness:: @ 81FC75D - playse SE_MU_PACHI + playse SE_SWITCH animateflash 0 call DewfordTown_Gym_EventScript_SetFlashRadius return @@ -169,7 +169,7 @@ DewfordTown_Gym_EventScript_BrawlyDefeated:: @ 81FC7F7 call DewfordTown_Gym_EventScript_GiveBulkUp closemessage delay 30 - playfanfare MUS_ME_TORE_EYE + playfanfare MUS_REGISTER_MATCH_CALL msgbox DewfordTown_Gym_Text_RegisteredBrawly, MSGBOX_DEFAULT waitfanfare closemessage diff --git a/data/maps/DewfordTown_Hall/map.json b/data/maps/DewfordTown_Hall/map.json index 6612db14b4..24cde4ea17 100644 --- a/data/maps/DewfordTown_Hall/map.json +++ b/data/maps/DewfordTown_Hall/map.json @@ -2,7 +2,7 @@ "id": "MAP_DEWFORD_TOWN_HALL", "name": "DewfordTown_Hall", "layout": "LAYOUT_DEWFORD_TOWN_HALL", - "music": "MUS_HIGHTOWN", + "music": "MUS_DEWFORD", "region_map_section": "MAPSEC_DEWFORD_TOWN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/DewfordTown_House1/map.json b/data/maps/DewfordTown_House1/map.json index 7877a984f2..fd53469b90 100644 --- a/data/maps/DewfordTown_House1/map.json +++ b/data/maps/DewfordTown_House1/map.json @@ -2,7 +2,7 @@ "id": "MAP_DEWFORD_TOWN_HOUSE1", "name": "DewfordTown_House1", "layout": "LAYOUT_HOUSE3", - "music": "MUS_HIGHTOWN", + "music": "MUS_DEWFORD", "region_map_section": "MAPSEC_DEWFORD_TOWN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/DewfordTown_House2/map.json b/data/maps/DewfordTown_House2/map.json index 319bbed724..4384f37670 100644 --- a/data/maps/DewfordTown_House2/map.json +++ b/data/maps/DewfordTown_House2/map.json @@ -2,7 +2,7 @@ "id": "MAP_DEWFORD_TOWN_HOUSE2", "name": "DewfordTown_House2", "layout": "LAYOUT_HOUSE4", - "music": "MUS_HIGHTOWN", + "music": "MUS_DEWFORD", "region_map_section": "MAPSEC_DEWFORD_TOWN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/DewfordTown_PokemonCenter_1F/map.json b/data/maps/DewfordTown_PokemonCenter_1F/map.json index 480bc5556c..131c930929 100644 --- a/data/maps/DewfordTown_PokemonCenter_1F/map.json +++ b/data/maps/DewfordTown_PokemonCenter_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_DEWFORD_TOWN_POKEMON_CENTER_1F", "name": "DewfordTown_PokemonCenter_1F", "layout": "LAYOUT_POKEMON_CENTER_1F", - "music": "MUS_POKECEN", + "music": "MUS_POKE_CENTER", "region_map_section": "MAPSEC_DEWFORD_TOWN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/DewfordTown_PokemonCenter_2F/map.json b/data/maps/DewfordTown_PokemonCenter_2F/map.json index 8de59b2a30..56add50537 100644 --- a/data/maps/DewfordTown_PokemonCenter_2F/map.json +++ b/data/maps/DewfordTown_PokemonCenter_2F/map.json @@ -2,7 +2,7 @@ "id": "MAP_DEWFORD_TOWN_POKEMON_CENTER_2F", "name": "DewfordTown_PokemonCenter_2F", "layout": "LAYOUT_POKEMON_CENTER_2F", - "music": "MUS_POKECEN", + "music": "MUS_POKE_CENTER", "region_map_section": "MAPSEC_DEWFORD_TOWN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/EverGrandeCity/map.json b/data/maps/EverGrandeCity/map.json index 5f67720e6d..9db9c8febb 100644 --- a/data/maps/EverGrandeCity/map.json +++ b/data/maps/EverGrandeCity/map.json @@ -2,7 +2,7 @@ "id": "MAP_EVER_GRANDE_CITY", "name": "EverGrandeCity", "layout": "LAYOUT_EVER_GRANDE_CITY", - "music": "MUS_RAINBOW", + "music": "MUS_EVER_GRANDE", "region_map_section": "MAPSEC_EVER_GRANDE_CITY", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/EverGrandeCity_ChampionsRoom/map.json b/data/maps/EverGrandeCity_ChampionsRoom/map.json index ded3a305f1..34fb96e460 100644 --- a/data/maps/EverGrandeCity_ChampionsRoom/map.json +++ b/data/maps/EverGrandeCity_ChampionsRoom/map.json @@ -2,7 +2,7 @@ "id": "MAP_EVER_GRANDE_CITY_CHAMPIONS_ROOM", "name": "EverGrandeCity_ChampionsRoom", "layout": "LAYOUT_EVER_GRANDE_CITY_CHAMPIONS_ROOM", - "music": "MUS_C_ROAD", + "music": "MUS_VICTORY_ROAD", "region_map_section": "MAPSEC_EVER_GRANDE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/EverGrandeCity_ChampionsRoom/scripts.inc b/data/maps/EverGrandeCity_ChampionsRoom/scripts.inc index 5ef3a946ee..d41c10d0a0 100644 --- a/data/maps/EverGrandeCity_ChampionsRoom/scripts.inc +++ b/data/maps/EverGrandeCity_ChampionsRoom/scripts.inc @@ -42,7 +42,7 @@ EverGrandeCity_ChampionsRoom_Movement_PlayerApproachWallace: @ 8228A42 step_end EverGrandeCity_ChampionsRoom_EventScript_Wallace:: @ 8228A45 - playbgm MUS_DAIGO, 0 + playbgm MUS_ENCOUNTER_CHAMPION, 0 msgbox EverGrandeCity_ChampionsRoom_Text_IntroSpeech, MSGBOX_DEFAULT trainerbattle_no_intro TRAINER_WALLACE, EverGrandeCity_ChampionsRoom_Text_Defeat goto EverGrandeCity_ChampionsRoom_EventScript_Defeated @@ -71,11 +71,11 @@ EverGrandeCity_ChampionsRoom_EventScript_Defeated:: @ 8228A61 end EverGrandeCity_ChampionsRoom_EventScript_PlayMayMusic:: @ 8228ABC - playbgm MUS_GIRL_SUP, 0 + playbgm MUS_ENCOUNTER_MAY, 0 return EverGrandeCity_ChampionsRoom_EventScript_PlayBrendanMusic:: @ 8228AC1 - playbgm MUS_BOY_SUP, 0 + playbgm MUS_ENCOUNTER_BRENDAN, 0 return EverGrandeCity_ChampionsRoom_EventScript_MayAdvice:: @ 8228AC6 diff --git a/data/maps/EverGrandeCity_DrakesRoom/map.json b/data/maps/EverGrandeCity_DrakesRoom/map.json index 9b54a5e5b4..b7bcd49665 100644 --- a/data/maps/EverGrandeCity_DrakesRoom/map.json +++ b/data/maps/EverGrandeCity_DrakesRoom/map.json @@ -2,7 +2,7 @@ "id": "MAP_EVER_GRANDE_CITY_DRAKES_ROOM", "name": "EverGrandeCity_DrakesRoom", "layout": "LAYOUT_EVER_GRANDE_CITY_DRAKES_ROOM", - "music": "MUS_C_ROAD", + "music": "MUS_VICTORY_ROAD", "region_map_section": "MAPSEC_EVER_GRANDE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/EverGrandeCity_DrakesRoom/scripts.inc b/data/maps/EverGrandeCity_DrakesRoom/scripts.inc index b9debf676d..feb65d149a 100644 --- a/data/maps/EverGrandeCity_DrakesRoom/scripts.inc +++ b/data/maps/EverGrandeCity_DrakesRoom/scripts.inc @@ -42,7 +42,7 @@ EverGrandeCity_DrakesRoom_EventScript_Drake:: @ 82286F3 lock faceplayer goto_if_set FLAG_DEFEATED_ELITE_4_DRAKE, EverGrandeCity_DrakesRoom_EventScript_PostBattleSpeech - playbgm MUS_SITENNOU, 0 + playbgm MUS_ENCOUNTER_ELITE_FOUR, 0 msgbox EverGrandeCity_DrakesRoom_Text_IntroSpeech, MSGBOX_DEFAULT trainerbattle_no_intro TRAINER_DRAKE, EverGrandeCity_DrakesRoom_Text_Defeat goto EverGrandeCity_DrakesRoom_EventScript_Defeated diff --git a/data/maps/EverGrandeCity_GlaciasRoom/map.json b/data/maps/EverGrandeCity_GlaciasRoom/map.json index 21c50192bd..86a840d13a 100644 --- a/data/maps/EverGrandeCity_GlaciasRoom/map.json +++ b/data/maps/EverGrandeCity_GlaciasRoom/map.json @@ -2,7 +2,7 @@ "id": "MAP_EVER_GRANDE_CITY_GLACIAS_ROOM", "name": "EverGrandeCity_GlaciasRoom", "layout": "LAYOUT_EVER_GRANDE_CITY_GLACIAS_ROOM", - "music": "MUS_C_ROAD", + "music": "MUS_VICTORY_ROAD", "region_map_section": "MAPSEC_EVER_GRANDE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/EverGrandeCity_GlaciasRoom/scripts.inc b/data/maps/EverGrandeCity_GlaciasRoom/scripts.inc index 6e6254faa9..ff04a752ab 100644 --- a/data/maps/EverGrandeCity_GlaciasRoom/scripts.inc +++ b/data/maps/EverGrandeCity_GlaciasRoom/scripts.inc @@ -41,7 +41,7 @@ EverGrandeCity_GlaciasRoom_EventScript_Glacia:: @ 8228469 lock faceplayer goto_if_set FLAG_DEFEATED_ELITE_4_GLACIA, EverGrandeCity_GlaciasRoom_EventScript_PostBattleSpeech - playbgm MUS_SITENNOU, 0 + playbgm MUS_ENCOUNTER_ELITE_FOUR, 0 msgbox EverGrandeCity_GlaciasRoom_Text_IntroSpeech, MSGBOX_DEFAULT trainerbattle_no_intro TRAINER_GLACIA, EverGrandeCity_GlaciasRoom_Text_Defeat goto EverGrandeCity_GlaciasRoom_EventScript_Defeated diff --git a/data/maps/EverGrandeCity_Hall1/map.json b/data/maps/EverGrandeCity_Hall1/map.json index 692e7ff7ca..426b9f6e45 100644 --- a/data/maps/EverGrandeCity_Hall1/map.json +++ b/data/maps/EverGrandeCity_Hall1/map.json @@ -2,7 +2,7 @@ "id": "MAP_EVER_GRANDE_CITY_HALL1", "name": "EverGrandeCity_Hall1", "layout": "LAYOUT_EVER_GRANDE_CITY_SHORT_HALL", - "music": "MUS_C_ROAD", + "music": "MUS_VICTORY_ROAD", "region_map_section": "MAPSEC_EVER_GRANDE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/EverGrandeCity_Hall2/map.json b/data/maps/EverGrandeCity_Hall2/map.json index ea1203725c..3535734e95 100644 --- a/data/maps/EverGrandeCity_Hall2/map.json +++ b/data/maps/EverGrandeCity_Hall2/map.json @@ -2,7 +2,7 @@ "id": "MAP_EVER_GRANDE_CITY_HALL2", "name": "EverGrandeCity_Hall2", "layout": "LAYOUT_EVER_GRANDE_CITY_SHORT_HALL", - "music": "MUS_C_ROAD", + "music": "MUS_VICTORY_ROAD", "region_map_section": "MAPSEC_EVER_GRANDE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/EverGrandeCity_Hall3/map.json b/data/maps/EverGrandeCity_Hall3/map.json index 327b28399b..b7fe8f4ecd 100644 --- a/data/maps/EverGrandeCity_Hall3/map.json +++ b/data/maps/EverGrandeCity_Hall3/map.json @@ -2,7 +2,7 @@ "id": "MAP_EVER_GRANDE_CITY_HALL3", "name": "EverGrandeCity_Hall3", "layout": "LAYOUT_EVER_GRANDE_CITY_SHORT_HALL", - "music": "MUS_C_ROAD", + "music": "MUS_VICTORY_ROAD", "region_map_section": "MAPSEC_EVER_GRANDE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/EverGrandeCity_Hall4/map.json b/data/maps/EverGrandeCity_Hall4/map.json index ff91999e01..b0501cd38b 100644 --- a/data/maps/EverGrandeCity_Hall4/map.json +++ b/data/maps/EverGrandeCity_Hall4/map.json @@ -2,7 +2,7 @@ "id": "MAP_EVER_GRANDE_CITY_HALL4", "name": "EverGrandeCity_Hall4", "layout": "LAYOUT_EVER_GRANDE_CITY_HALL4", - "music": "MUS_C_ROAD", + "music": "MUS_VICTORY_ROAD", "region_map_section": "MAPSEC_EVER_GRANDE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/EverGrandeCity_Hall5/map.json b/data/maps/EverGrandeCity_Hall5/map.json index 562e11565b..1f6705f3a4 100644 --- a/data/maps/EverGrandeCity_Hall5/map.json +++ b/data/maps/EverGrandeCity_Hall5/map.json @@ -2,7 +2,7 @@ "id": "MAP_EVER_GRANDE_CITY_HALL5", "name": "EverGrandeCity_Hall5", "layout": "LAYOUT_EVER_GRANDE_CITY_SHORT_HALL", - "music": "MUS_C_ROAD", + "music": "MUS_VICTORY_ROAD", "region_map_section": "MAPSEC_EVER_GRANDE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/EverGrandeCity_HallOfFame/map.json b/data/maps/EverGrandeCity_HallOfFame/map.json index 04b68237d1..e09190eb96 100644 --- a/data/maps/EverGrandeCity_HallOfFame/map.json +++ b/data/maps/EverGrandeCity_HallOfFame/map.json @@ -2,7 +2,7 @@ "id": "MAP_EVER_GRANDE_CITY_HALL_OF_FAME", "name": "EverGrandeCity_HallOfFame", "layout": "LAYOUT_EVER_GRANDE_CITY_HALL_OF_FAME", - "music": "MUS_EIKOU_R", + "music": "MUS_HALL_OF_FAME_ROOM", "region_map_section": "MAPSEC_EVER_GRANDE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/EverGrandeCity_PhoebesRoom/map.json b/data/maps/EverGrandeCity_PhoebesRoom/map.json index 5716b3ef1b..09c6dd40e2 100644 --- a/data/maps/EverGrandeCity_PhoebesRoom/map.json +++ b/data/maps/EverGrandeCity_PhoebesRoom/map.json @@ -2,7 +2,7 @@ "id": "MAP_EVER_GRANDE_CITY_PHOEBES_ROOM", "name": "EverGrandeCity_PhoebesRoom", "layout": "LAYOUT_EVER_GRANDE_CITY_PHOEBES_ROOM", - "music": "MUS_C_ROAD", + "music": "MUS_VICTORY_ROAD", "region_map_section": "MAPSEC_EVER_GRANDE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/EverGrandeCity_PhoebesRoom/scripts.inc b/data/maps/EverGrandeCity_PhoebesRoom/scripts.inc index 891b3c56ea..e98bf4eb36 100644 --- a/data/maps/EverGrandeCity_PhoebesRoom/scripts.inc +++ b/data/maps/EverGrandeCity_PhoebesRoom/scripts.inc @@ -41,7 +41,7 @@ EverGrandeCity_PhoebesRoom_EventScript_Phoebe:: @ 82281CB lock faceplayer goto_if_set FLAG_DEFEATED_ELITE_4_PHOEBE, EverGrandeCity_PhoebesRoom_EventScript_PostBattleSpeech - playbgm MUS_SITENNOU, 0 + playbgm MUS_ENCOUNTER_ELITE_FOUR, 0 msgbox EverGrandeCity_PhoebesRoom_Text_IntroSpeech, MSGBOX_DEFAULT trainerbattle_no_intro TRAINER_PHOEBE, EverGrandeCity_PhoebesRoom_Text_Defeat goto EverGrandeCity_PhoebesRoom_EventScript_Defeated diff --git a/data/maps/EverGrandeCity_PokemonCenter_1F/map.json b/data/maps/EverGrandeCity_PokemonCenter_1F/map.json index 85a2c677bb..196ebd0f24 100644 --- a/data/maps/EverGrandeCity_PokemonCenter_1F/map.json +++ b/data/maps/EverGrandeCity_PokemonCenter_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_EVER_GRANDE_CITY_POKEMON_CENTER_1F", "name": "EverGrandeCity_PokemonCenter_1F", "layout": "LAYOUT_POKEMON_CENTER_1F", - "music": "MUS_POKECEN", + "music": "MUS_POKE_CENTER", "region_map_section": "MAPSEC_EVER_GRANDE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/EverGrandeCity_PokemonCenter_1F/scripts.inc b/data/maps/EverGrandeCity_PokemonCenter_1F/scripts.inc index 3b6d94249f..a6cf1b74e5 100644 --- a/data/maps/EverGrandeCity_PokemonCenter_1F/scripts.inc +++ b/data/maps/EverGrandeCity_PokemonCenter_1F/scripts.inc @@ -45,7 +45,7 @@ EverGrandeCity_PokemonCenter_1F_EventScript_Scott:: @ 8229A79 call_if_eq EverGrandeCity_PokemonCenter_1F_EventScript_ScottExit addvar VAR_SCOTT_STATE, 1 setflag FLAG_MET_SCOTT_IN_EVERGRANDE - playse SE_KAIDAN + playse SE_EXIT waitse removeobject LOCALID_SCOTT release diff --git a/data/maps/EverGrandeCity_PokemonCenter_2F/map.json b/data/maps/EverGrandeCity_PokemonCenter_2F/map.json index 7dfa712a6a..b734f9ad56 100644 --- a/data/maps/EverGrandeCity_PokemonCenter_2F/map.json +++ b/data/maps/EverGrandeCity_PokemonCenter_2F/map.json @@ -2,7 +2,7 @@ "id": "MAP_EVER_GRANDE_CITY_POKEMON_CENTER_2F", "name": "EverGrandeCity_PokemonCenter_2F", "layout": "LAYOUT_POKEMON_CENTER_2F", - "music": "MUS_POKECEN", + "music": "MUS_POKE_CENTER", "region_map_section": "MAPSEC_EVER_GRANDE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/EverGrandeCity_PokemonLeague_1F/map.json b/data/maps/EverGrandeCity_PokemonLeague_1F/map.json index 6b0c0be80b..f76febc010 100644 --- a/data/maps/EverGrandeCity_PokemonLeague_1F/map.json +++ b/data/maps/EverGrandeCity_PokemonLeague_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_EVER_GRANDE_CITY_POKEMON_LEAGUE_1F", "name": "EverGrandeCity_PokemonLeague_1F", "layout": "LAYOUT_EVER_GRANDE_CITY_POKEMON_LEAGUE_1F", - "music": "MUS_POKECEN", + "music": "MUS_POKE_CENTER", "region_map_section": "MAPSEC_EVER_GRANDE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/EverGrandeCity_PokemonLeague_1F/scripts.inc b/data/maps/EverGrandeCity_PokemonLeague_1F/scripts.inc index cf824b8e88..5eed4faa69 100644 --- a/data/maps/EverGrandeCity_PokemonLeague_1F/scripts.inc +++ b/data/maps/EverGrandeCity_PokemonLeague_1F/scripts.inc @@ -68,7 +68,7 @@ EverGrandeCity_PokemonLeague_1F_EventScript_DoorGuard:: @ 8229636 applymovement LOCALID_GUARD_2, EverGrandeCity_PokemonLeague_1F_Movement_RightGuardOutOfWay waitmovement 0 delay 10 - playfanfare MUS_ME_BACHI + playfanfare MUS_OBTAIN_BADGE message EverGrandeCity_PokemonLeague_1F_Text_GoForth waitmessage waitfanfare @@ -90,7 +90,7 @@ EverGrandeCity_PokemonLeague_1F_EventScript_PlayerMoveToFrontFromLeft:: @ 82296A return EverGrandeCity_PokemonLeague_1F_EventScript_NotAllBadges:: @ 82296AE - playse SE_HAZURE + playse SE_FAILURE msgbox EverGrandeCity_PokemonLeague_1F_Text_HaventObtainedAllBadges, MSGBOX_DEFAULT releaseall end diff --git a/data/maps/EverGrandeCity_PokemonLeague_2F/map.json b/data/maps/EverGrandeCity_PokemonLeague_2F/map.json index 8289458b0b..a4b5cb1f2b 100644 --- a/data/maps/EverGrandeCity_PokemonLeague_2F/map.json +++ b/data/maps/EverGrandeCity_PokemonLeague_2F/map.json @@ -2,7 +2,7 @@ "id": "MAP_EVER_GRANDE_CITY_POKEMON_LEAGUE_2F", "name": "EverGrandeCity_PokemonLeague_2F", "layout": "LAYOUT_POKEMON_CENTER_2F", - "music": "MUS_POKECEN", + "music": "MUS_POKE_CENTER", "region_map_section": "MAPSEC_EVER_GRANDE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/EverGrandeCity_SidneysRoom/map.json b/data/maps/EverGrandeCity_SidneysRoom/map.json index 39cdea6cea..dc84d36d6d 100644 --- a/data/maps/EverGrandeCity_SidneysRoom/map.json +++ b/data/maps/EverGrandeCity_SidneysRoom/map.json @@ -2,7 +2,7 @@ "id": "MAP_EVER_GRANDE_CITY_SIDNEYS_ROOM", "name": "EverGrandeCity_SidneysRoom", "layout": "LAYOUT_EVER_GRANDE_CITY_SIDNEYS_ROOM", - "music": "MUS_C_ROAD", + "music": "MUS_VICTORY_ROAD", "region_map_section": "MAPSEC_EVER_GRANDE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/EverGrandeCity_SidneysRoom/scripts.inc b/data/maps/EverGrandeCity_SidneysRoom/scripts.inc index 9bc9757896..717651b262 100644 --- a/data/maps/EverGrandeCity_SidneysRoom/scripts.inc +++ b/data/maps/EverGrandeCity_SidneysRoom/scripts.inc @@ -47,7 +47,7 @@ EverGrandeCity_SidneysRoom_EventScript_Sidney:: @ 8227F64 lock faceplayer goto_if_set FLAG_DEFEATED_ELITE_4_SIDNEY, EverGrandeCity_SidneysRoom_EventScript_PostBattleSpeech - playbgm MUS_SITENNOU, 0 + playbgm MUS_ENCOUNTER_ELITE_FOUR, 0 msgbox EverGrandeCity_SidneysRoom_Text_IntroSpeech, MSGBOX_DEFAULT trainerbattle_no_intro TRAINER_SIDNEY, EverGrandeCity_SidneysRoom_Text_Defeat goto EverGrandeCity_SidneysRoom_EventScript_Defeated diff --git a/data/maps/FallarborTown/map.json b/data/maps/FallarborTown/map.json index 54809f977e..74355a870f 100644 --- a/data/maps/FallarborTown/map.json +++ b/data/maps/FallarborTown/map.json @@ -2,7 +2,7 @@ "id": "MAP_FALLARBOR_TOWN", "name": "FallarborTown", "layout": "LAYOUT_FALLARBOR_TOWN", - "music": "MUS_TONEKUSA", + "music": "MUS_FALLARBOR", "region_map_section": "MAPSEC_FALLARBOR_TOWN", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/FallarborTown_BattleTentBattleRoom/map.json b/data/maps/FallarborTown_BattleTentBattleRoom/map.json index adf6dfd943..7b702dc0e5 100644 --- a/data/maps/FallarborTown_BattleTentBattleRoom/map.json +++ b/data/maps/FallarborTown_BattleTentBattleRoom/map.json @@ -2,7 +2,7 @@ "id": "MAP_FALLARBOR_TOWN_BATTLE_TENT_BATTLE_ROOM", "name": "FallarborTown_BattleTentBattleRoom", "layout": "LAYOUT_BATTLE_TENT_BATTLE_ROOM", - "music": "MUS_B_TOWER", + "music": "MUS_B_TOWER_RS", "region_map_section": "MAPSEC_FALLARBOR_TOWN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/FallarborTown_BattleTentBattleRoom/scripts.inc b/data/maps/FallarborTown_BattleTentBattleRoom/scripts.inc index feb8f49e10..fd1f278608 100644 --- a/data/maps/FallarborTown_BattleTentBattleRoom/scripts.inc +++ b/data/maps/FallarborTown_BattleTentBattleRoom/scripts.inc @@ -52,7 +52,7 @@ FallarborTown_BattleTentBattleRoom_EventScript_NextOpponentEnter:: @ 820090F applymovement LOCALID_OPPONENT, FallarborTown_BattleTentBattleRoom_Movement_OpponentEnter waitmovement 0 applymovement LOCALID_ATTENDANT, FallarborTown_BattleTentBattleRoom_Movement_AttendantJump - playse SE_W187 + playse SE_M_BELLY_DRUM waitse waitmovement 0 msgbox BattleFrontier_BattleArenaBattleRoom_Text_SetKOTourneyBegin, MSGBOX_DEFAULT @@ -63,7 +63,7 @@ FallarborTown_BattleTentBattleRoom_EventScript_NextOpponentEnter:: @ 820090F switch VAR_RESULT case 1, FallarborTown_BattleTentBattleRoom_EventScript_DefeatedOpponent applymovement LOCALID_ATTENDANT, FallarborTown_BattleTentBattleRoom_Movement_AttendantJump - playse SE_W173 + playse SE_M_SNORE waitse waitmovement 0 fallarbortent_getopponentname @@ -76,7 +76,7 @@ FallarborTown_BattleTentBattleRoom_EventScript_WarpToLobbyLost:: @ 820097E FallarborTown_BattleTentBattleRoom_EventScript_DefeatedOpponent:: @ 820099C applymovement LOCALID_ATTENDANT, FallarborTown_BattleTentBattleRoom_Movement_AttendantJump - playse SE_BAN + playse SE_BANG waitse waitmovement 0 msgbox BattleFrontier_BattleArenaBattleRoom_Text_WinnerIsPlayer, MSGBOX_DEFAULT @@ -98,7 +98,7 @@ FallarborTown_BattleTentBattleRoom_EventScript_IncrementBattleNum:: @ 82009B3 special LoadPlayerParty special SavePlayerParty frontier_setpartyorder FRONTIER_PARTY_SIZE - playfanfare MUS_ME_ASA + playfanfare MUS_HEAL waitfanfare special HealPlayerParty FallarborTown_BattleTentBattleRoom_EventScript_AskContinueChallenge:: @ 8200A2A diff --git a/data/maps/FallarborTown_BattleTentCorridor/map.json b/data/maps/FallarborTown_BattleTentCorridor/map.json index 3bda444842..c086a32880 100644 --- a/data/maps/FallarborTown_BattleTentCorridor/map.json +++ b/data/maps/FallarborTown_BattleTentCorridor/map.json @@ -2,7 +2,7 @@ "id": "MAP_FALLARBOR_TOWN_BATTLE_TENT_CORRIDOR", "name": "FallarborTown_BattleTentCorridor", "layout": "LAYOUT_BATTLE_TENT_CORRIDOR", - "music": "MUS_B_TOWER", + "music": "MUS_B_TOWER_RS", "region_map_section": "MAPSEC_FALLARBOR_TOWN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/FallarborTown_BattleTentLobby/map.json b/data/maps/FallarborTown_BattleTentLobby/map.json index 58a1463e9b..a796a3f105 100644 --- a/data/maps/FallarborTown_BattleTentLobby/map.json +++ b/data/maps/FallarborTown_BattleTentLobby/map.json @@ -2,7 +2,7 @@ "id": "MAP_FALLARBOR_TOWN_BATTLE_TENT_LOBBY", "name": "FallarborTown_BattleTentLobby", "layout": "LAYOUT_BATTLE_TENT_LOBBY", - "music": "MUS_B_TOWER", + "music": "MUS_B_TOWER_RS", "region_map_section": "MAPSEC_FALLARBOR_TOWN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/FallarborTown_BattleTentLobby/scripts.inc b/data/maps/FallarborTown_BattleTentLobby/scripts.inc index 54248e4021..0a6a4f16cd 100644 --- a/data/maps/FallarborTown_BattleTentLobby/scripts.inc +++ b/data/maps/FallarborTown_BattleTentLobby/scripts.inc @@ -55,7 +55,7 @@ FallarborTown_BattleTentLobby_EventScript_GivePrize:: @ 81FFF27 frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0 message FallarborTown_BattleTentLobby_Text_ReceivedPrize waitmessage - playfanfare MUS_FANFA4 + playfanfare MUS_OBTAIN_ITEM waitfanfare msgbox FallarborTown_BattleTentLobby_Text_AwaitAnotherChallenge2, MSGBOX_DEFAULT closemessage diff --git a/data/maps/FallarborTown_CozmosHouse/map.json b/data/maps/FallarborTown_CozmosHouse/map.json index a1ed478853..a7ae1f90df 100644 --- a/data/maps/FallarborTown_CozmosHouse/map.json +++ b/data/maps/FallarborTown_CozmosHouse/map.json @@ -2,7 +2,7 @@ "id": "MAP_FALLARBOR_TOWN_COZMOS_HOUSE", "name": "FallarborTown_CozmosHouse", "layout": "LAYOUT_HOUSE1", - "music": "MUS_TONEKUSA", + "music": "MUS_FALLARBOR", "region_map_section": "MAPSEC_FALLARBOR_TOWN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/FallarborTown_Mart/map.json b/data/maps/FallarborTown_Mart/map.json index 29040bcd77..77c5df9762 100644 --- a/data/maps/FallarborTown_Mart/map.json +++ b/data/maps/FallarborTown_Mart/map.json @@ -2,7 +2,7 @@ "id": "MAP_FALLARBOR_TOWN_MART", "name": "FallarborTown_Mart", "layout": "LAYOUT_MART", - "music": "MUS_FRIENDLY", + "music": "MUS_POKE_MART", "region_map_section": "MAPSEC_FALLARBOR_TOWN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/FallarborTown_MoveRelearnersHouse/map.json b/data/maps/FallarborTown_MoveRelearnersHouse/map.json index 220b6cb8ee..ce3f3a3dde 100644 --- a/data/maps/FallarborTown_MoveRelearnersHouse/map.json +++ b/data/maps/FallarborTown_MoveRelearnersHouse/map.json @@ -2,7 +2,7 @@ "id": "MAP_FALLARBOR_TOWN_MOVE_RELEARNERS_HOUSE", "name": "FallarborTown_MoveRelearnersHouse", "layout": "LAYOUT_HOUSE2", - "music": "MUS_TONEKUSA", + "music": "MUS_FALLARBOR", "region_map_section": "MAPSEC_FALLARBOR_TOWN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/FallarborTown_PokemonCenter_1F/map.json b/data/maps/FallarborTown_PokemonCenter_1F/map.json index 5f85478dcc..cb06908290 100644 --- a/data/maps/FallarborTown_PokemonCenter_1F/map.json +++ b/data/maps/FallarborTown_PokemonCenter_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_FALLARBOR_TOWN_POKEMON_CENTER_1F", "name": "FallarborTown_PokemonCenter_1F", "layout": "LAYOUT_POKEMON_CENTER_1F", - "music": "MUS_POKECEN", + "music": "MUS_POKE_CENTER", "region_map_section": "MAPSEC_FALLARBOR_TOWN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/FallarborTown_PokemonCenter_1F/scripts.inc b/data/maps/FallarborTown_PokemonCenter_1F/scripts.inc index c65cf5d4ea..e7967046db 100644 --- a/data/maps/FallarborTown_PokemonCenter_1F/scripts.inc +++ b/data/maps/FallarborTown_PokemonCenter_1F/scripts.inc @@ -50,7 +50,7 @@ FallarborTown_PokemonCenter_1F_EventScript_LanetteExitWest:: @ 8200C38 end FallarborTown_PokemonCenter_1F_EventScript_LanetteExited:: @ 8200C48 - playse SE_JIDO_DOA + playse SE_SLIDING_DOOR removeobject LOCALID_LANETTE clearflag FLAG_HIDE_LANETTES_HOUSE_LANETTE release diff --git a/data/maps/FallarborTown_PokemonCenter_2F/map.json b/data/maps/FallarborTown_PokemonCenter_2F/map.json index 202485ea09..ada498a426 100644 --- a/data/maps/FallarborTown_PokemonCenter_2F/map.json +++ b/data/maps/FallarborTown_PokemonCenter_2F/map.json @@ -2,7 +2,7 @@ "id": "MAP_FALLARBOR_TOWN_POKEMON_CENTER_2F", "name": "FallarborTown_PokemonCenter_2F", "layout": "LAYOUT_POKEMON_CENTER_2F", - "music": "MUS_POKECEN", + "music": "MUS_POKE_CENTER", "region_map_section": "MAPSEC_FALLARBOR_TOWN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/FarawayIsland_Entrance/map.json b/data/maps/FarawayIsland_Entrance/map.json index 6898f5b244..d3c6056a0a 100644 --- a/data/maps/FarawayIsland_Entrance/map.json +++ b/data/maps/FarawayIsland_Entrance/map.json @@ -2,7 +2,7 @@ "id": "MAP_FARAWAY_ISLAND_ENTRANCE", "name": "FarawayIsland_Entrance", "layout": "LAYOUT_FARAWAY_ISLAND_ENTRANCE", - "music": "MUS_DAN02", + "music": "MUS_ABANDONED_SHIP", "region_map_section": "MAPSEC_FARAWAY_ISLAND", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/FarawayIsland_Interior/map.json b/data/maps/FarawayIsland_Interior/map.json index 4f427e8a49..1ec092fbe7 100644 --- a/data/maps/FarawayIsland_Interior/map.json +++ b/data/maps/FarawayIsland_Interior/map.json @@ -2,7 +2,7 @@ "id": "MAP_FARAWAY_ISLAND_INTERIOR", "name": "FarawayIsland_Interior", "layout": "LAYOUT_FARAWAY_ISLAND_INTERIOR", - "music": "MUS_DAN02", + "music": "MUS_ABANDONED_SHIP", "region_map_section": "MAPSEC_FARAWAY_ISLAND", "requires_flash": false, "weather": "WEATHER_SHADE", diff --git a/data/maps/FieryPath/map.json b/data/maps/FieryPath/map.json index 424596c0c2..ef11990d85 100644 --- a/data/maps/FieryPath/map.json +++ b/data/maps/FieryPath/map.json @@ -2,7 +2,7 @@ "id": "MAP_FIERY_PATH", "name": "FieryPath", "layout": "LAYOUT_FIERY_PATH", - "music": "MUS_DAN01", + "music": "MUS_PETALBURG_WOODS", "region_map_section": "MAPSEC_FIERY_PATH", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/FortreeCity/map.json b/data/maps/FortreeCity/map.json index 062d0808a3..86d43693ac 100644 --- a/data/maps/FortreeCity/map.json +++ b/data/maps/FortreeCity/map.json @@ -2,7 +2,7 @@ "id": "MAP_FORTREE_CITY", "name": "FortreeCity", "layout": "LAYOUT_FORTREE_CITY", - "music": "MUS_MACHI_S3", + "music": "MUS_FORTREE", "region_map_section": "MAPSEC_FORTREE_CITY", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/FortreeCity_DecorationShop/map.json b/data/maps/FortreeCity_DecorationShop/map.json index f5af152af1..59b707a953 100644 --- a/data/maps/FortreeCity_DecorationShop/map.json +++ b/data/maps/FortreeCity_DecorationShop/map.json @@ -2,7 +2,7 @@ "id": "MAP_FORTREE_CITY_DECORATION_SHOP", "name": "FortreeCity_DecorationShop", "layout": "LAYOUT_FORTREE_CITY_DECORATION_SHOP", - "music": "MUS_MACHI_S3", + "music": "MUS_FORTREE", "region_map_section": "MAPSEC_FORTREE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/FortreeCity_Gym/map.json b/data/maps/FortreeCity_Gym/map.json index fcaf1a036e..0db326d07e 100644 --- a/data/maps/FortreeCity_Gym/map.json +++ b/data/maps/FortreeCity_Gym/map.json @@ -2,7 +2,7 @@ "id": "MAP_FORTREE_CITY_GYM", "name": "FortreeCity_Gym", "layout": "LAYOUT_FORTREE_CITY_GYM", - "music": "MUS_GIM", + "music": "MUS_GYM", "region_map_section": "MAPSEC_FORTREE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/FortreeCity_Gym/scripts.inc b/data/maps/FortreeCity_Gym/scripts.inc index f209ceefa8..688c116459 100644 --- a/data/maps/FortreeCity_Gym/scripts.inc +++ b/data/maps/FortreeCity_Gym/scripts.inc @@ -37,7 +37,7 @@ FortreeCity_Gym_EventScript_WinonaDefeated:: @ 82165FD call FortreeCity_Gym_EventScript_GiveAerialAce closemessage delay 30 - playfanfare MUS_ME_TORE_EYE + playfanfare MUS_REGISTER_MATCH_CALL msgbox FortreeCity_Gym_Text_RegisteredWinona, MSGBOX_DEFAULT waitfanfare closemessage diff --git a/data/maps/FortreeCity_House1/map.json b/data/maps/FortreeCity_House1/map.json index ae35cf6016..cef2030931 100644 --- a/data/maps/FortreeCity_House1/map.json +++ b/data/maps/FortreeCity_House1/map.json @@ -2,7 +2,7 @@ "id": "MAP_FORTREE_CITY_HOUSE1", "name": "FortreeCity_House1", "layout": "LAYOUT_FORTREE_CITY_HOUSE1", - "music": "MUS_MACHI_S3", + "music": "MUS_FORTREE", "region_map_section": "MAPSEC_FORTREE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/FortreeCity_House2/map.json b/data/maps/FortreeCity_House2/map.json index dcd8f30cd0..fed6a9f65a 100644 --- a/data/maps/FortreeCity_House2/map.json +++ b/data/maps/FortreeCity_House2/map.json @@ -2,7 +2,7 @@ "id": "MAP_FORTREE_CITY_HOUSE2", "name": "FortreeCity_House2", "layout": "LAYOUT_FORTREE_CITY_HOUSE2", - "music": "MUS_MACHI_S3", + "music": "MUS_FORTREE", "region_map_section": "MAPSEC_FORTREE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/FortreeCity_House3/map.json b/data/maps/FortreeCity_House3/map.json index e96be4174c..f7c47ede12 100644 --- a/data/maps/FortreeCity_House3/map.json +++ b/data/maps/FortreeCity_House3/map.json @@ -2,7 +2,7 @@ "id": "MAP_FORTREE_CITY_HOUSE3", "name": "FortreeCity_House3", "layout": "LAYOUT_FORTREE_CITY_HOUSE1", - "music": "MUS_MACHI_S3", + "music": "MUS_FORTREE", "region_map_section": "MAPSEC_FORTREE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/FortreeCity_House4/map.json b/data/maps/FortreeCity_House4/map.json index 6996600568..a01772eeaf 100644 --- a/data/maps/FortreeCity_House4/map.json +++ b/data/maps/FortreeCity_House4/map.json @@ -2,7 +2,7 @@ "id": "MAP_FORTREE_CITY_HOUSE4", "name": "FortreeCity_House4", "layout": "LAYOUT_FORTREE_CITY_HOUSE2", - "music": "MUS_MACHI_S3", + "music": "MUS_FORTREE", "region_map_section": "MAPSEC_FORTREE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/FortreeCity_House5/map.json b/data/maps/FortreeCity_House5/map.json index 32fcefe2ba..b1577e6486 100644 --- a/data/maps/FortreeCity_House5/map.json +++ b/data/maps/FortreeCity_House5/map.json @@ -2,7 +2,7 @@ "id": "MAP_FORTREE_CITY_HOUSE5", "name": "FortreeCity_House5", "layout": "LAYOUT_FORTREE_CITY_HOUSE1", - "music": "MUS_MACHI_S3", + "music": "MUS_FORTREE", "region_map_section": "MAPSEC_FORTREE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/FortreeCity_Mart/map.json b/data/maps/FortreeCity_Mart/map.json index a52ece8b21..61ab4cefd4 100644 --- a/data/maps/FortreeCity_Mart/map.json +++ b/data/maps/FortreeCity_Mart/map.json @@ -2,7 +2,7 @@ "id": "MAP_FORTREE_CITY_MART", "name": "FortreeCity_Mart", "layout": "LAYOUT_MART", - "music": "MUS_FRIENDLY", + "music": "MUS_POKE_MART", "region_map_section": "MAPSEC_FORTREE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/FortreeCity_PokemonCenter_1F/map.json b/data/maps/FortreeCity_PokemonCenter_1F/map.json index 16c5fe8b67..d593490333 100644 --- a/data/maps/FortreeCity_PokemonCenter_1F/map.json +++ b/data/maps/FortreeCity_PokemonCenter_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_FORTREE_CITY_POKEMON_CENTER_1F", "name": "FortreeCity_PokemonCenter_1F", "layout": "LAYOUT_POKEMON_CENTER_1F", - "music": "MUS_POKECEN", + "music": "MUS_POKE_CENTER", "region_map_section": "MAPSEC_FORTREE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/FortreeCity_PokemonCenter_2F/map.json b/data/maps/FortreeCity_PokemonCenter_2F/map.json index fdd9ee79df..1859bf131c 100644 --- a/data/maps/FortreeCity_PokemonCenter_2F/map.json +++ b/data/maps/FortreeCity_PokemonCenter_2F/map.json @@ -2,7 +2,7 @@ "id": "MAP_FORTREE_CITY_POKEMON_CENTER_2F", "name": "FortreeCity_PokemonCenter_2F", "layout": "LAYOUT_POKEMON_CENTER_2F", - "music": "MUS_POKECEN", + "music": "MUS_POKE_CENTER", "region_map_section": "MAPSEC_FORTREE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/GraniteCave_1F/map.json b/data/maps/GraniteCave_1F/map.json index a4c2bf0ff0..ff60d726b7 100644 --- a/data/maps/GraniteCave_1F/map.json +++ b/data/maps/GraniteCave_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_GRANITE_CAVE_1F", "name": "GraniteCave_1F", "layout": "LAYOUT_GRANITE_CAVE_1F", - "music": "MUS_DAN01", + "music": "MUS_PETALBURG_WOODS", "region_map_section": "MAPSEC_GRANITE_CAVE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/GraniteCave_B1F/map.json b/data/maps/GraniteCave_B1F/map.json index 103220612e..be2f5ae013 100644 --- a/data/maps/GraniteCave_B1F/map.json +++ b/data/maps/GraniteCave_B1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_GRANITE_CAVE_B1F", "name": "GraniteCave_B1F", "layout": "LAYOUT_GRANITE_CAVE_B1F", - "music": "MUS_DAN01", + "music": "MUS_PETALBURG_WOODS", "region_map_section": "MAPSEC_GRANITE_CAVE", "requires_flash": true, "weather": "WEATHER_NONE", diff --git a/data/maps/GraniteCave_B2F/map.json b/data/maps/GraniteCave_B2F/map.json index c3f6fbf9a3..bf58a40e3a 100644 --- a/data/maps/GraniteCave_B2F/map.json +++ b/data/maps/GraniteCave_B2F/map.json @@ -2,7 +2,7 @@ "id": "MAP_GRANITE_CAVE_B2F", "name": "GraniteCave_B2F", "layout": "LAYOUT_GRANITE_CAVE_B2F", - "music": "MUS_DAN01", + "music": "MUS_PETALBURG_WOODS", "region_map_section": "MAPSEC_GRANITE_CAVE", "requires_flash": true, "weather": "WEATHER_NONE", diff --git a/data/maps/GraniteCave_StevensRoom/map.json b/data/maps/GraniteCave_StevensRoom/map.json index 934a8320e6..0705303782 100644 --- a/data/maps/GraniteCave_StevensRoom/map.json +++ b/data/maps/GraniteCave_StevensRoom/map.json @@ -2,7 +2,7 @@ "id": "MAP_GRANITE_CAVE_STEVENS_ROOM", "name": "GraniteCave_StevensRoom", "layout": "LAYOUT_GRANITE_CAVE_STEVENS_ROOM", - "music": "MUS_DAN01", + "music": "MUS_PETALBURG_WOODS", "region_map_section": "MAPSEC_GRANITE_CAVE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/GraniteCave_StevensRoom/scripts.inc b/data/maps/GraniteCave_StevensRoom/scripts.inc index 7d0b275a59..650177b955 100644 --- a/data/maps/GraniteCave_StevensRoom/scripts.inc +++ b/data/maps/GraniteCave_StevensRoom/scripts.inc @@ -17,7 +17,7 @@ GraniteCave_StevensRoom_EventScript_Steven:: @ 822DC7B msgbox GraniteCave_StevensRoom_Text_CouldBecomeChampionLetsRegister, MSGBOX_DEFAULT closemessage delay 30 - playfanfare MUS_ME_TORE_EYE + playfanfare MUS_REGISTER_MATCH_CALL msgbox GraniteCave_StevensRoom_Text_RegisteredSteven, MSGBOX_DEFAULT waitfanfare closemessage @@ -33,7 +33,7 @@ GraniteCave_StevensRoom_EventScript_Steven:: @ 822DC7B call_if_eq GraniteCave_StevensRoom_EventScript_StevenExitWestEast compare VAR_FACING, DIR_EAST call_if_eq GraniteCave_StevensRoom_EventScript_StevenExitWestEast - playse SE_KAIDAN + playse SE_EXIT removeobject LOCALID_STEVEN release end diff --git a/data/maps/IslandCave/map.json b/data/maps/IslandCave/map.json index 0cb71092d7..7c540411f5 100644 --- a/data/maps/IslandCave/map.json +++ b/data/maps/IslandCave/map.json @@ -2,7 +2,7 @@ "id": "MAP_ISLAND_CAVE", "name": "IslandCave", "layout": "LAYOUT_ISLAND_CAVE", - "music": "MUS_MABOROSI", + "music": "MUS_SEALED_CHAMBER", "region_map_section": "MAPSEC_ISLAND_CAVE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/IslandCave/scripts.inc b/data/maps/IslandCave/scripts.inc index 8587e62c21..56643a5040 100644 --- a/data/maps/IslandCave/scripts.inc +++ b/data/maps/IslandCave/scripts.inc @@ -46,7 +46,7 @@ IslandCave_EventScript_OpenRegiEntrance:: @ 8238EAF setmetatile 8, 20, METATILE_Cave_SealedChamberEntrance_BottomMid, 0 setmetatile 9, 20, METATILE_Cave_SealedChamberEntrance_BottomRight, 1 special DrawWholeMapView - playse SE_BAN + playse SE_BANG setflag FLAG_SYS_BRAILLE_REGICE_COMPLETED end diff --git a/data/maps/JaggedPass/map.json b/data/maps/JaggedPass/map.json index eeac79e15e..d7e7d5e2e3 100644 --- a/data/maps/JaggedPass/map.json +++ b/data/maps/JaggedPass/map.json @@ -2,7 +2,7 @@ "id": "MAP_JAGGED_PASS", "name": "JaggedPass", "layout": "LAYOUT_JAGGED_PASS", - "music": "MUS_DAN01", + "music": "MUS_PETALBURG_WOODS", "region_map_section": "MAPSEC_JAGGED_PASS", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/JaggedPass/scripts.inc b/data/maps/JaggedPass/scripts.inc index eacc7835e3..c7fc95676a 100644 --- a/data/maps/JaggedPass/scripts.inc +++ b/data/maps/JaggedPass/scripts.inc @@ -58,7 +58,7 @@ JaggedPass_EventScript_OpenMagmaHideout:: @ 82306BB setvar VAR_0x8007, 3 @ shake delay special ShakeCamera waitstate - playse SE_KOUKA_M + playse SE_EFFECTIVE setmetatile 16, 17, METATILE_Lavaridge_CaveEntrance_Top, 1 setmetatile 16, 18, METATILE_Lavaridge_CaveEntrance_Bottom, 0 special DrawWholeMapView diff --git a/data/maps/LavaridgeTown/map.json b/data/maps/LavaridgeTown/map.json index 1ab9f60cff..54bda6ca32 100644 --- a/data/maps/LavaridgeTown/map.json +++ b/data/maps/LavaridgeTown/map.json @@ -2,7 +2,7 @@ "id": "MAP_LAVARIDGE_TOWN", "name": "LavaridgeTown", "layout": "LAYOUT_LAVARIDGE_TOWN", - "music": "MUS_MACHI_S4", + "music": "MUS_OLDALE", "region_map_section": "MAPSEC_LAVARIDGE_TOWN", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/LavaridgeTown/scripts.inc b/data/maps/LavaridgeTown/scripts.inc index 47c5482a6a..1f9fe421d6 100644 --- a/data/maps/LavaridgeTown/scripts.inc +++ b/data/maps/LavaridgeTown/scripts.inc @@ -105,11 +105,11 @@ LavaridgeTown_EventScript_RivalExit:: @ 81EA5FF end LavaridgeTown_EventScript_PlayMayMusic:: @ 81EA630 - playbgm MUS_GIRL_SUP, 1 + playbgm MUS_ENCOUNTER_MAY, 1 return LavaridgeTown_EventScript_PlayBrendanMusic:: @ 81EA635 - playbgm MUS_BOY_SUP, 1 + playbgm MUS_ENCOUNTER_BRENDAN, 1 return LavaridgeTown_EventScript_RivalNoticePlayer:: @ 81EA63A @@ -258,7 +258,7 @@ LavaridgeTown_EventScript_EggWoman:: @ 81EA744 goto_if_eq LavaridgeTown_EventScript_NoRoomForEgg msgbox LavaridgeTown_Text_HopeYoullWalkPlentyWithEgg, MSGBOX_DEFAULT setflag FLAG_RECEIVED_LAVARIDGE_EGG - playfanfare MUS_FANFA4 + playfanfare MUS_OBTAIN_ITEM message LavaridgeTown_Text_ReceivedTheEgg waitfanfare giveegg SPECIES_WYNAUT diff --git a/data/maps/LavaridgeTown_Gym_1F/map.json b/data/maps/LavaridgeTown_Gym_1F/map.json index 49b4ef2fd1..2f624a2f91 100644 --- a/data/maps/LavaridgeTown_Gym_1F/map.json +++ b/data/maps/LavaridgeTown_Gym_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_LAVARIDGE_TOWN_GYM_1F", "name": "LavaridgeTown_Gym_1F", "layout": "LAYOUT_LAVARIDGE_TOWN_GYM_1F", - "music": "MUS_GIM", + "music": "MUS_GYM", "region_map_section": "MAPSEC_LAVARIDGE_TOWN", "requires_flash": false, "weather": "WEATHER_FOG_HORIZONTAL", diff --git a/data/maps/LavaridgeTown_Gym_1F/scripts.inc b/data/maps/LavaridgeTown_Gym_1F/scripts.inc index 3747d854d7..df95a0b4b8 100644 --- a/data/maps/LavaridgeTown_Gym_1F/scripts.inc +++ b/data/maps/LavaridgeTown_Gym_1F/scripts.inc @@ -76,7 +76,7 @@ LavaridgeTown_Gym_1F_EventScript_FlanneryDefeated:: @ 81FE7C1 call LavaridgeTown_Gym_1F_EventScript_GiveOverheat closemessage delay 30 - playfanfare MUS_ME_TORE_EYE + playfanfare MUS_REGISTER_MATCH_CALL msgbox LavaridgeTown_Gym_1F_Text_RegisteredFlannery, MSGBOX_DEFAULT waitfanfare closemessage diff --git a/data/maps/LavaridgeTown_Gym_B1F/map.json b/data/maps/LavaridgeTown_Gym_B1F/map.json index 0b1e81445a..bbcdbcbe18 100644 --- a/data/maps/LavaridgeTown_Gym_B1F/map.json +++ b/data/maps/LavaridgeTown_Gym_B1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_LAVARIDGE_TOWN_GYM_B1F", "name": "LavaridgeTown_Gym_B1F", "layout": "LAYOUT_LAVARIDGE_TOWN_GYM_B1F", - "music": "MUS_GIM", + "music": "MUS_GYM", "region_map_section": "MAPSEC_LAVARIDGE_TOWN", "requires_flash": false, "weather": "WEATHER_FOG_HORIZONTAL", diff --git a/data/maps/LavaridgeTown_HerbShop/map.json b/data/maps/LavaridgeTown_HerbShop/map.json index e76a98f645..6be35b7292 100644 --- a/data/maps/LavaridgeTown_HerbShop/map.json +++ b/data/maps/LavaridgeTown_HerbShop/map.json @@ -2,7 +2,7 @@ "id": "MAP_LAVARIDGE_TOWN_HERB_SHOP", "name": "LavaridgeTown_HerbShop", "layout": "LAYOUT_LAVARIDGE_TOWN_HERB_SHOP", - "music": "MUS_MACHI_S4", + "music": "MUS_OLDALE", "region_map_section": "MAPSEC_LAVARIDGE_TOWN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/LavaridgeTown_House/map.json b/data/maps/LavaridgeTown_House/map.json index 5827399bdf..2a8d5362cf 100644 --- a/data/maps/LavaridgeTown_House/map.json +++ b/data/maps/LavaridgeTown_House/map.json @@ -2,7 +2,7 @@ "id": "MAP_LAVARIDGE_TOWN_HOUSE", "name": "LavaridgeTown_House", "layout": "LAYOUT_HOUSE3", - "music": "MUS_MACHI_S4", + "music": "MUS_OLDALE", "region_map_section": "MAPSEC_LAVARIDGE_TOWN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/LavaridgeTown_Mart/map.json b/data/maps/LavaridgeTown_Mart/map.json index 8099a5463c..5c871785d1 100644 --- a/data/maps/LavaridgeTown_Mart/map.json +++ b/data/maps/LavaridgeTown_Mart/map.json @@ -2,7 +2,7 @@ "id": "MAP_LAVARIDGE_TOWN_MART", "name": "LavaridgeTown_Mart", "layout": "LAYOUT_MART", - "music": "MUS_FRIENDLY", + "music": "MUS_POKE_MART", "region_map_section": "MAPSEC_LAVARIDGE_TOWN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/LavaridgeTown_PokemonCenter_1F/map.json b/data/maps/LavaridgeTown_PokemonCenter_1F/map.json index 1542b7b50f..42cf11aede 100644 --- a/data/maps/LavaridgeTown_PokemonCenter_1F/map.json +++ b/data/maps/LavaridgeTown_PokemonCenter_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_LAVARIDGE_TOWN_POKEMON_CENTER_1F", "name": "LavaridgeTown_PokemonCenter_1F", "layout": "LAYOUT_LAVARIDGE_TOWN_POKEMON_CENTER_1F", - "music": "MUS_POKECEN", + "music": "MUS_POKE_CENTER", "region_map_section": "MAPSEC_LAVARIDGE_TOWN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/LavaridgeTown_PokemonCenter_2F/map.json b/data/maps/LavaridgeTown_PokemonCenter_2F/map.json index eb68b0bb51..72a5f688b1 100644 --- a/data/maps/LavaridgeTown_PokemonCenter_2F/map.json +++ b/data/maps/LavaridgeTown_PokemonCenter_2F/map.json @@ -2,7 +2,7 @@ "id": "MAP_LAVARIDGE_TOWN_POKEMON_CENTER_2F", "name": "LavaridgeTown_PokemonCenter_2F", "layout": "LAYOUT_POKEMON_CENTER_2F", - "music": "MUS_POKECEN", + "music": "MUS_POKE_CENTER", "region_map_section": "MAPSEC_LAVARIDGE_TOWN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/LilycoveCity/map.json b/data/maps/LilycoveCity/map.json index 8d35fc0c6b..a13904ca9a 100644 --- a/data/maps/LilycoveCity/map.json +++ b/data/maps/LilycoveCity/map.json @@ -2,7 +2,7 @@ "id": "MAP_LILYCOVE_CITY", "name": "LilycoveCity", "layout": "LAYOUT_LILYCOVE_CITY", - "music": "MUS_MINAMO", + "music": "MUS_LILYCOVE", "region_map_section": "MAPSEC_LILYCOVE_CITY", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/LilycoveCity/scripts.inc b/data/maps/LilycoveCity/scripts.inc index b8f0cd5661..0c94bce626 100644 --- a/data/maps/LilycoveCity/scripts.inc +++ b/data/maps/LilycoveCity/scripts.inc @@ -241,7 +241,7 @@ LilycoveCity_EventScript_Rival:: @ 81E2DDE end LilycoveCity_EventScript_May:: @ 81E2DF8 - playbgm MUS_GIRL_SUP, 1 + playbgm MUS_ENCOUNTER_MAY, 1 call_if_set FLAG_DECLINED_RIVAL_BATTLE_LILYCOVE, LilycoveCity_EventScript_MayAskToBattleAgain call_if_unset FLAG_DECLINED_RIVAL_BATTLE_LILYCOVE, LilycoveCity_EventScript_MayAskToBattle compare VAR_RESULT, NO @@ -270,7 +270,7 @@ LilycoveCity_EventScript_DeclineMayBattle:: @ 81E2E5A end LilycoveCity_EventScript_Brendan:: @ 81E2E6B - playbgm MUS_BOY_SUP, 1 + playbgm MUS_ENCOUNTER_BRENDAN, 1 call_if_set FLAG_DECLINED_RIVAL_BATTLE_LILYCOVE, LilycoveCity_EventScript_BrendanAskToBattleAgain call_if_unset FLAG_DECLINED_RIVAL_BATTLE_LILYCOVE, LilycoveCity_EventScript_BrendanAskToBattle compare VAR_RESULT, NO diff --git a/data/maps/LilycoveCity_ContestHall/map.json b/data/maps/LilycoveCity_ContestHall/map.json index bddb6d7c1d..e8151c832f 100644 --- a/data/maps/LilycoveCity_ContestHall/map.json +++ b/data/maps/LilycoveCity_ContestHall/map.json @@ -2,7 +2,7 @@ "id": "MAP_LILYCOVE_CITY_CONTEST_HALL", "name": "LilycoveCity_ContestHall", "layout": "LAYOUT_LILYCOVE_CITY_CONTEST_HALL", - "music": "MUS_CONLOBBY", + "music": "MUS_CONTEST_LOBBY", "region_map_section": "MAPSEC_LILYCOVE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/LilycoveCity_ContestLobby/map.json b/data/maps/LilycoveCity_ContestLobby/map.json index eb7ebf9077..ac5346dc4f 100644 --- a/data/maps/LilycoveCity_ContestLobby/map.json +++ b/data/maps/LilycoveCity_ContestLobby/map.json @@ -2,7 +2,7 @@ "id": "MAP_LILYCOVE_CITY_CONTEST_LOBBY", "name": "LilycoveCity_ContestLobby", "layout": "LAYOUT_LILYCOVE_CITY_CONTEST_LOBBY", - "music": "MUS_CONLOBBY", + "music": "MUS_CONTEST_LOBBY", "region_map_section": "MAPSEC_LILYCOVE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/LilycoveCity_ContestLobby/scripts.inc b/data/maps/LilycoveCity_ContestLobby/scripts.inc index 6b71c5125b..51c38e3f4e 100644 --- a/data/maps/LilycoveCity_ContestLobby/scripts.inc +++ b/data/maps/LilycoveCity_ContestLobby/scripts.inc @@ -99,7 +99,7 @@ LilycoveCity_ContestLobby_EventScript_ReceivedArtistRibbon:: @ 821A314 applymovement LOCALID_ARTIST, LilycoveCity_ContestLobby_Movement_ArtistReturnToPlayer waitmovement 0 msgbox LilycoveCity_ContestLobby_Text_TakeMementoOfPainting, MSGBOX_DEFAULT - playfanfare MUS_FANFA4 + playfanfare MUS_OBTAIN_ITEM msgbox LilycoveCity_ContestLobby_Text_ReceivedARibbon, MSGBOX_DEFAULT waitfanfare msgbox LilycoveCity_ContestLobby_Text_PutTheRibbonOnMon, MSGBOX_DEFAULT @@ -272,7 +272,7 @@ LilycoveCity_ContestLobby_EventScript_ReceivedLinkArtistRibbon:: @ 821A4E4 applymovement LOCALID_ARTIST_LINK, LilycoveCity_ContestLobby_Movement_LinkArtistReturnToPlayer waitmovement 0 msgbox LilycoveCity_ContestLobby_Text_TakeMementoOfPainting, MSGBOX_DEFAULT - playfanfare MUS_FANFA4 + playfanfare MUS_OBTAIN_ITEM msgbox LilycoveCity_ContestLobby_Text_ReceivedARibbon, MSGBOX_DEFAULT waitfanfare msgbox LilycoveCity_ContestLobby_Text_PutTheRibbonOnMon, MSGBOX_DEFAULT @@ -417,13 +417,13 @@ LilycoveCity_ContestLobby_EventScript_LeadToContestHall:: @ 821A670 lockall applymovement LOCALID_RECEPTIONIST, LilycoveCity_ContestLobby_Movement_ReceptionistApproachCounter waitmovement 0 - playse SE_HASHI + playse SE_BRIDGE_WALK setmetatile 12, 2, METATILE_Contest_WallShadow, 1 setmetatile 12, 3, METATILE_Contest_FloorShadow, 1 special DrawWholeMapView applymovement LOCALID_RECEPTIONIST, LilycoveCity_ContestLobby_Movement_ReceptionistExitCounter waitmovement 0 - playse SE_HASHI + playse SE_BRIDGE_WALK setmetatile 12, 2, METATILE_Contest_CounterFlap_Top, 1 setmetatile 12, 3, METATILE_Contest_CounterFlap_Bottom, 1 special DrawWholeMapView @@ -938,13 +938,13 @@ LilycoveCity_ContestLobby_EventScript_LeadToLinkContestHall:: @ 821AC49 closemessage applymovement LOCALID_LINK_RECEPTIONIST, LilycoveCity_ContestLobby_Movement_LinkReceptionistApproachCounter waitmovement 0 - playse SE_HASHI + playse SE_BRIDGE_WALK setmetatile 17, 2, METATILE_Contest_WallShadow, 1 setmetatile 17, 3, METATILE_Contest_FloorShadow, 1 special DrawWholeMapView applymovement LOCALID_LINK_RECEPTIONIST, LilycoveCity_ContestLobby_Movement_LinkReceptionistExitCounter waitmovement 0 - playse SE_HASHI + playse SE_BRIDGE_WALK setmetatile 17, 2, METATILE_Contest_CounterFlap_Top, 1 setmetatile 17, 3, METATILE_Contest_CounterFlap_Bottom, 1 special DrawWholeMapView diff --git a/data/maps/LilycoveCity_CoveLilyMotel_1F/map.json b/data/maps/LilycoveCity_CoveLilyMotel_1F/map.json index ba65638772..4b18e22c18 100644 --- a/data/maps/LilycoveCity_CoveLilyMotel_1F/map.json +++ b/data/maps/LilycoveCity_CoveLilyMotel_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_LILYCOVE_CITY_COVE_LILY_MOTEL_1F", "name": "LilycoveCity_CoveLilyMotel_1F", "layout": "LAYOUT_LILYCOVE_CITY_COVE_LILY_MOTEL_1F", - "music": "MUS_MINAMO", + "music": "MUS_LILYCOVE", "region_map_section": "MAPSEC_LILYCOVE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/LilycoveCity_CoveLilyMotel_2F/map.json b/data/maps/LilycoveCity_CoveLilyMotel_2F/map.json index ff84a3bf7b..f55770b88c 100644 --- a/data/maps/LilycoveCity_CoveLilyMotel_2F/map.json +++ b/data/maps/LilycoveCity_CoveLilyMotel_2F/map.json @@ -2,7 +2,7 @@ "id": "MAP_LILYCOVE_CITY_COVE_LILY_MOTEL_2F", "name": "LilycoveCity_CoveLilyMotel_2F", "layout": "LAYOUT_LILYCOVE_CITY_COVE_LILY_MOTEL_2F", - "music": "MUS_MINAMO", + "music": "MUS_LILYCOVE", "region_map_section": "MAPSEC_LILYCOVE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/LilycoveCity_CoveLilyMotel_2F/scripts.inc b/data/maps/LilycoveCity_CoveLilyMotel_2F/scripts.inc index 7878e791a9..9d3520be56 100644 --- a/data/maps/LilycoveCity_CoveLilyMotel_2F/scripts.inc +++ b/data/maps/LilycoveCity_CoveLilyMotel_2F/scripts.inc @@ -18,7 +18,7 @@ LilycoveCity_CoveLilyMotel_2F_EventScript_ShowMeCompletedDex:: @ 82186F9 LilycoveCity_CoveLilyMotel_2F_EventScript_AllHoennMonsFanfare:: @ 8218702 setflag FLAG_TEMP_2 - playfanfare MUS_FANFA4 + playfanfare MUS_OBTAIN_ITEM waitfanfare goto LilycoveCity_CoveLilyMotel_2F_EventScript_ShowDiploma end diff --git a/data/maps/LilycoveCity_DepartmentStoreElevator/map.json b/data/maps/LilycoveCity_DepartmentStoreElevator/map.json index 989cf65efb..9a3c43308f 100644 --- a/data/maps/LilycoveCity_DepartmentStoreElevator/map.json +++ b/data/maps/LilycoveCity_DepartmentStoreElevator/map.json @@ -2,7 +2,7 @@ "id": "MAP_LILYCOVE_CITY_DEPARTMENT_STORE_ELEVATOR", "name": "LilycoveCity_DepartmentStoreElevator", "layout": "LAYOUT_LILYCOVE_CITY_DEPARTMENT_STORE_ELEVATOR", - "music": "MUS_MINAMO", + "music": "MUS_LILYCOVE", "region_map_section": "MAPSEC_LILYCOVE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/LilycoveCity_DepartmentStoreRooftop/map.json b/data/maps/LilycoveCity_DepartmentStoreRooftop/map.json index 856c06bd40..deb7ad0446 100644 --- a/data/maps/LilycoveCity_DepartmentStoreRooftop/map.json +++ b/data/maps/LilycoveCity_DepartmentStoreRooftop/map.json @@ -2,7 +2,7 @@ "id": "MAP_LILYCOVE_CITY_DEPARTMENT_STORE_ROOFTOP", "name": "LilycoveCity_DepartmentStoreRooftop", "layout": "LAYOUT_LILYCOVE_CITY_DEPARTMENT_STORE_ROOFTOP", - "music": "MUS_MINAMO", + "music": "MUS_LILYCOVE", "region_map_section": "MAPSEC_LILYCOVE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/LilycoveCity_DepartmentStoreRooftop/scripts.inc b/data/maps/LilycoveCity_DepartmentStoreRooftop/scripts.inc index 12cb4727c3..8d7459b3c3 100644 --- a/data/maps/LilycoveCity_DepartmentStoreRooftop/scripts.inc +++ b/data/maps/LilycoveCity_DepartmentStoreRooftop/scripts.inc @@ -145,7 +145,7 @@ LilycoveCity_DepartmentStoreRooftop_EventScript_TryBuyDrink:: @ 822032F call_if_eq LilycoveCity_DepartmentStoreRooftop_EventScript_RemoveMoneyLemonade updatemoneybox 0, 0 bufferitemname 0, VAR_TEMP_0 - playse SE_JIHANKI + playse SE_VEND msgbox LilycoveCity_DepartmentStoreRooftop_Text_CanOfDrinkDroppedDown, MSGBOX_DEFAULT additem VAR_TEMP_0 bufferitemname 1, VAR_TEMP_0 @@ -157,7 +157,7 @@ LilycoveCity_DepartmentStoreRooftop_EventScript_TryBuyDrink:: @ 822032F checkitemspace VAR_TEMP_0, 1 compare VAR_RESULT, FALSE goto_if_eq LilycoveCity_DepartmentStoreRooftop_EventScript_NoRoomForDrink - playse SE_JIHANKI + playse SE_VEND msgbox LilycoveCity_DepartmentStoreRooftop_Text_ExtraCanOfDrinkDroppedDown, MSGBOX_DEFAULT additem VAR_TEMP_0 bufferitemname 1, VAR_TEMP_0 @@ -169,7 +169,7 @@ LilycoveCity_DepartmentStoreRooftop_EventScript_TryBuyDrink:: @ 822032F checkitemspace VAR_TEMP_0, 1 compare VAR_RESULT, 0 goto_if_eq LilycoveCity_DepartmentStoreRooftop_EventScript_NoRoomForDrink - playse SE_JIHANKI + playse SE_VEND msgbox LilycoveCity_DepartmentStoreRooftop_Text_ExtraCanOfDrinkDroppedDown, MSGBOX_DEFAULT additem VAR_TEMP_0 bufferitemname 1, VAR_TEMP_0 diff --git a/data/maps/LilycoveCity_DepartmentStore_1F/map.json b/data/maps/LilycoveCity_DepartmentStore_1F/map.json index 9efcdb13a3..758e063f6d 100644 --- a/data/maps/LilycoveCity_DepartmentStore_1F/map.json +++ b/data/maps/LilycoveCity_DepartmentStore_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_LILYCOVE_CITY_DEPARTMENT_STORE_1F", "name": "LilycoveCity_DepartmentStore_1F", "layout": "LAYOUT_LILYCOVE_CITY_DEPARTMENT_STORE_1F", - "music": "MUS_MINAMO", + "music": "MUS_LILYCOVE", "region_map_section": "MAPSEC_LILYCOVE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/LilycoveCity_DepartmentStore_2F/map.json b/data/maps/LilycoveCity_DepartmentStore_2F/map.json index 7a1e8bf04d..ebef46ae58 100644 --- a/data/maps/LilycoveCity_DepartmentStore_2F/map.json +++ b/data/maps/LilycoveCity_DepartmentStore_2F/map.json @@ -2,7 +2,7 @@ "id": "MAP_LILYCOVE_CITY_DEPARTMENT_STORE_2F", "name": "LilycoveCity_DepartmentStore_2F", "layout": "LAYOUT_LILYCOVE_CITY_DEPARTMENT_STORE_2F", - "music": "MUS_FRIENDLY", + "music": "MUS_POKE_MART", "region_map_section": "MAPSEC_LILYCOVE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/LilycoveCity_DepartmentStore_3F/map.json b/data/maps/LilycoveCity_DepartmentStore_3F/map.json index e95c8173f0..c911b9d265 100644 --- a/data/maps/LilycoveCity_DepartmentStore_3F/map.json +++ b/data/maps/LilycoveCity_DepartmentStore_3F/map.json @@ -2,7 +2,7 @@ "id": "MAP_LILYCOVE_CITY_DEPARTMENT_STORE_3F", "name": "LilycoveCity_DepartmentStore_3F", "layout": "LAYOUT_LILYCOVE_CITY_DEPARTMENT_STORE_3F", - "music": "MUS_FRIENDLY", + "music": "MUS_POKE_MART", "region_map_section": "MAPSEC_LILYCOVE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/LilycoveCity_DepartmentStore_4F/map.json b/data/maps/LilycoveCity_DepartmentStore_4F/map.json index d57963ac75..c6291ec2c7 100644 --- a/data/maps/LilycoveCity_DepartmentStore_4F/map.json +++ b/data/maps/LilycoveCity_DepartmentStore_4F/map.json @@ -2,7 +2,7 @@ "id": "MAP_LILYCOVE_CITY_DEPARTMENT_STORE_4F", "name": "LilycoveCity_DepartmentStore_4F", "layout": "LAYOUT_LILYCOVE_CITY_DEPARTMENT_STORE_4F", - "music": "MUS_FRIENDLY", + "music": "MUS_POKE_MART", "region_map_section": "MAPSEC_LILYCOVE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/LilycoveCity_DepartmentStore_5F/map.json b/data/maps/LilycoveCity_DepartmentStore_5F/map.json index d92404b983..6123c1c78b 100644 --- a/data/maps/LilycoveCity_DepartmentStore_5F/map.json +++ b/data/maps/LilycoveCity_DepartmentStore_5F/map.json @@ -2,7 +2,7 @@ "id": "MAP_LILYCOVE_CITY_DEPARTMENT_STORE_5F", "name": "LilycoveCity_DepartmentStore_5F", "layout": "LAYOUT_LILYCOVE_CITY_DEPARTMENT_STORE_5F", - "music": "MUS_FRIENDLY", + "music": "MUS_POKE_MART", "region_map_section": "MAPSEC_LILYCOVE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/LilycoveCity_Harbor/map.json b/data/maps/LilycoveCity_Harbor/map.json index b5238ac206..491d426243 100644 --- a/data/maps/LilycoveCity_Harbor/map.json +++ b/data/maps/LilycoveCity_Harbor/map.json @@ -2,7 +2,7 @@ "id": "MAP_LILYCOVE_CITY_HARBOR", "name": "LilycoveCity_Harbor", "layout": "LAYOUT_HARBOR", - "music": "MUS_MINAMO", + "music": "MUS_LILYCOVE", "region_map_section": "MAPSEC_LILYCOVE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/LilycoveCity_House1/map.json b/data/maps/LilycoveCity_House1/map.json index 85ea994c5e..bd6850f5a7 100644 --- a/data/maps/LilycoveCity_House1/map.json +++ b/data/maps/LilycoveCity_House1/map.json @@ -2,7 +2,7 @@ "id": "MAP_LILYCOVE_CITY_HOUSE1", "name": "LilycoveCity_House1", "layout": "LAYOUT_HOUSE1", - "music": "MUS_MINAMO", + "music": "MUS_LILYCOVE", "region_map_section": "MAPSEC_LILYCOVE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/LilycoveCity_House2/map.json b/data/maps/LilycoveCity_House2/map.json index 719a63067b..5c208c852b 100644 --- a/data/maps/LilycoveCity_House2/map.json +++ b/data/maps/LilycoveCity_House2/map.json @@ -2,7 +2,7 @@ "id": "MAP_LILYCOVE_CITY_HOUSE2", "name": "LilycoveCity_House2", "layout": "LAYOUT_LILYCOVE_CITY_HOUSE2", - "music": "MUS_MINAMO", + "music": "MUS_LILYCOVE", "region_map_section": "MAPSEC_LILYCOVE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/LilycoveCity_House3/map.json b/data/maps/LilycoveCity_House3/map.json index 3b4212c1a3..0331372c9a 100644 --- a/data/maps/LilycoveCity_House3/map.json +++ b/data/maps/LilycoveCity_House3/map.json @@ -2,7 +2,7 @@ "id": "MAP_LILYCOVE_CITY_HOUSE3", "name": "LilycoveCity_House3", "layout": "LAYOUT_HOUSE2", - "music": "MUS_MINAMO", + "music": "MUS_LILYCOVE", "region_map_section": "MAPSEC_LILYCOVE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/LilycoveCity_House4/map.json b/data/maps/LilycoveCity_House4/map.json index e086b2d455..7a1571abf7 100644 --- a/data/maps/LilycoveCity_House4/map.json +++ b/data/maps/LilycoveCity_House4/map.json @@ -2,7 +2,7 @@ "id": "MAP_LILYCOVE_CITY_HOUSE4", "name": "LilycoveCity_House4", "layout": "LAYOUT_HOUSE1", - "music": "MUS_MINAMO", + "music": "MUS_LILYCOVE", "region_map_section": "MAPSEC_LILYCOVE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/LilycoveCity_LilycoveMuseum_1F/map.json b/data/maps/LilycoveCity_LilycoveMuseum_1F/map.json index 8e56058215..09875fddcc 100644 --- a/data/maps/LilycoveCity_LilycoveMuseum_1F/map.json +++ b/data/maps/LilycoveCity_LilycoveMuseum_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_LILYCOVE_CITY_LILYCOVE_MUSEUM_1F", "name": "LilycoveCity_LilycoveMuseum_1F", "layout": "LAYOUT_LILYCOVE_CITY_LILYCOVE_MUSEUM_1F", - "music": "MUS_BIJYUTU", + "music": "MUS_LILYCOVE_MUSEUM", "region_map_section": "MAPSEC_LILYCOVE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/LilycoveCity_LilycoveMuseum_2F/map.json b/data/maps/LilycoveCity_LilycoveMuseum_2F/map.json index 7c3c144c83..76d30eb68b 100644 --- a/data/maps/LilycoveCity_LilycoveMuseum_2F/map.json +++ b/data/maps/LilycoveCity_LilycoveMuseum_2F/map.json @@ -2,7 +2,7 @@ "id": "MAP_LILYCOVE_CITY_LILYCOVE_MUSEUM_2F", "name": "LilycoveCity_LilycoveMuseum_2F", "layout": "LAYOUT_LILYCOVE_CITY_LILYCOVE_MUSEUM_2F", - "music": "MUS_BIJYUTU", + "music": "MUS_LILYCOVE_MUSEUM", "region_map_section": "MAPSEC_LILYCOVE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/LilycoveCity_MoveDeletersHouse/map.json b/data/maps/LilycoveCity_MoveDeletersHouse/map.json index caed79705d..814719a9cf 100644 --- a/data/maps/LilycoveCity_MoveDeletersHouse/map.json +++ b/data/maps/LilycoveCity_MoveDeletersHouse/map.json @@ -2,7 +2,7 @@ "id": "MAP_LILYCOVE_CITY_MOVE_DELETERS_HOUSE", "name": "LilycoveCity_MoveDeletersHouse", "layout": "LAYOUT_HOUSE2", - "music": "MUS_MINAMO", + "music": "MUS_LILYCOVE", "region_map_section": "MAPSEC_LILYCOVE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/LilycoveCity_MoveDeletersHouse/scripts.inc b/data/maps/LilycoveCity_MoveDeletersHouse/scripts.inc index 6e7f9c580d..1a27e3b8f1 100644 --- a/data/maps/LilycoveCity_MoveDeletersHouse/scripts.inc +++ b/data/maps/LilycoveCity_MoveDeletersHouse/scripts.inc @@ -45,7 +45,7 @@ LilycoveCity_MoveDeletersHouse_EventScript_TryForgetMove:: @ 821EAB0 compare VAR_RESULT, TRUE goto_if_eq LilycoveCity_MoveDeletersHouse_EventScript_LastMonWithSurf special MoveDeleterForgetMove - playfanfare MUS_ME_WASURE + playfanfare MUS_MOVE_DELETED waitfanfare msgbox LilycoveCity_MoveDeletersHouse_Text_MonHasForgottenMove, MSGBOX_DEFAULT releaseall diff --git a/data/maps/LilycoveCity_PokemonCenter_1F/map.json b/data/maps/LilycoveCity_PokemonCenter_1F/map.json index 625904e41e..daaec11913 100644 --- a/data/maps/LilycoveCity_PokemonCenter_1F/map.json +++ b/data/maps/LilycoveCity_PokemonCenter_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_LILYCOVE_CITY_POKEMON_CENTER_1F", "name": "LilycoveCity_PokemonCenter_1F", "layout": "LAYOUT_POKEMON_CENTER_1F", - "music": "MUS_POKECEN", + "music": "MUS_POKE_CENTER", "region_map_section": "MAPSEC_LILYCOVE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/LilycoveCity_PokemonCenter_2F/map.json b/data/maps/LilycoveCity_PokemonCenter_2F/map.json index a82cc515a2..b9c8e1302c 100644 --- a/data/maps/LilycoveCity_PokemonCenter_2F/map.json +++ b/data/maps/LilycoveCity_PokemonCenter_2F/map.json @@ -2,7 +2,7 @@ "id": "MAP_LILYCOVE_CITY_POKEMON_CENTER_2F", "name": "LilycoveCity_PokemonCenter_2F", "layout": "LAYOUT_POKEMON_CENTER_2F", - "music": "MUS_POKECEN", + "music": "MUS_POKE_CENTER", "region_map_section": "MAPSEC_LILYCOVE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/LilycoveCity_PokemonTrainerFanClub/map.json b/data/maps/LilycoveCity_PokemonTrainerFanClub/map.json index 820bf34c4a..7d5c42034e 100644 --- a/data/maps/LilycoveCity_PokemonTrainerFanClub/map.json +++ b/data/maps/LilycoveCity_PokemonTrainerFanClub/map.json @@ -2,7 +2,7 @@ "id": "MAP_LILYCOVE_CITY_POKEMON_TRAINER_FAN_CLUB", "name": "LilycoveCity_PokemonTrainerFanClub", "layout": "LAYOUT_LILYCOVE_CITY_POKEMON_TRAINER_FAN_CLUB", - "music": "MUS_MINAMO", + "music": "MUS_LILYCOVE", "region_map_section": "MAPSEC_LILYCOVE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/LilycoveCity_UnusedMart/map.json b/data/maps/LilycoveCity_UnusedMart/map.json index 65c9b2295c..696674bf13 100644 --- a/data/maps/LilycoveCity_UnusedMart/map.json +++ b/data/maps/LilycoveCity_UnusedMart/map.json @@ -2,7 +2,7 @@ "id": "MAP_LILYCOVE_CITY_UNUSED_MART", "name": "LilycoveCity_UnusedMart", "layout": "LAYOUT_MART", - "music": "MUS_FRIENDLY", + "music": "MUS_POKE_MART", "region_map_section": "MAPSEC_LILYCOVE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/LittlerootTown/map.json b/data/maps/LittlerootTown/map.json index f0c5694d8c..5335dd66eb 100644 --- a/data/maps/LittlerootTown/map.json +++ b/data/maps/LittlerootTown/map.json @@ -2,7 +2,7 @@ "id": "MAP_LITTLEROOT_TOWN", "name": "LittlerootTown", "layout": "LAYOUT_LITTLEROOT_TOWN", - "music": "MUS_MISHIRO", + "music": "MUS_LITTLEROOT", "region_map_section": "MAPSEC_LITTLEROOT_TOWN", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/LittlerootTown/scripts.inc b/data/maps/LittlerootTown/scripts.inc index 347a805e80..ba58323096 100644 --- a/data/maps/LittlerootTown/scripts.inc +++ b/data/maps/LittlerootTown/scripts.inc @@ -147,7 +147,7 @@ LittlerootTown_EventScript_StepOffTruckFemale:: @ 81E7EF9 LittlerootTown_EventScript_GoInsideWithMom:: @ 81E7F17 delay 15 - playse SE_DANSA + playse SE_LEDGE applymovement OBJ_EVENT_ID_PLAYER, LittlerootTown_Movement_PlayerStepOffTruck waitmovement 0 opendoor VAR_0x8004, VAR_0x8005 @@ -950,7 +950,7 @@ LittlerootTown_EventScript_SetReceivedRunningShoes:: @ 81E8686 LittlerootTown_EventScript_GiveRunningShoes:: @ 81E8693 msgbox LittlerootTown_Text_WearTheseRunningShoes, MSGBOX_DEFAULT - playfanfare MUS_FANFA4 + playfanfare MUS_OBTAIN_ITEM message LittlerootTown_Text_SwitchShoesWithRunningShoes waitfanfare setflag FLAG_RECEIVED_RUNNING_SHOES diff --git a/data/maps/LittlerootTown_BrendansHouse_1F/map.json b/data/maps/LittlerootTown_BrendansHouse_1F/map.json index 9911e293a9..3929b2e0cf 100644 --- a/data/maps/LittlerootTown_BrendansHouse_1F/map.json +++ b/data/maps/LittlerootTown_BrendansHouse_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_LITTLEROOT_TOWN_BRENDANS_HOUSE_1F", "name": "LittlerootTown_BrendansHouse_1F", "layout": "LAYOUT_LITTLEROOT_TOWN_BRENDANS_HOUSE_1F", - "music": "MUS_MISHIRO", + "music": "MUS_LITTLEROOT", "region_map_section": "MAPSEC_LITTLEROOT_TOWN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/LittlerootTown_BrendansHouse_1F/scripts.inc b/data/maps/LittlerootTown_BrendansHouse_1F/scripts.inc index 65ff3ab98a..ee677fbff8 100644 --- a/data/maps/LittlerootTown_BrendansHouse_1F/scripts.inc +++ b/data/maps/LittlerootTown_BrendansHouse_1F/scripts.inc @@ -147,7 +147,7 @@ LittlerootTown_BrendansHouse_1F_EventScript_MeetRival2:: @ 81F78D6 end LittlerootTown_BrendansHouse_1F_EventScript_MeetRival:: @ 81F78E2 - playse SE_KAIDAN + playse SE_EXIT delay 10 addobject LOCALID_RIVAL delay 30 @@ -158,7 +158,7 @@ LittlerootTown_BrendansHouse_1F_EventScript_MeetRival:: @ 81F78E2 waitmovement 0 compare VAR_0x8008, 1 call_if_ne LittlerootTown_BrendansHouse_1F_EventScript_PlayerFaceBrendan - playbgm MUS_BOY_SUP, 1 + playbgm MUS_ENCOUNTER_BRENDAN, 1 compare VAR_0x8008, 0 call_if_eq LittlerootTown_BrendansHouse_1F_EventScript_BrendanApproachPlayer0 compare VAR_0x8008, 1 @@ -173,7 +173,7 @@ LittlerootTown_BrendansHouse_1F_EventScript_MeetRival:: @ 81F78E2 call_if_eq LittlerootTown_BrendansHouse_1F_EventScript_BrendanGoUpstairs1 compare VAR_0x8008, 2 call_if_eq LittlerootTown_BrendansHouse_1F_EventScript_BrendanGoUpstairs2 - playse SE_KAIDAN + playse SE_EXIT removeobject LOCALID_RIVAL setflag FLAG_HIDE_LITTLEROOT_TOWN_BRENDANS_HOUSE_BRENDAN setflag FLAG_HIDE_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F_POKE_BALL diff --git a/data/maps/LittlerootTown_BrendansHouse_2F/map.json b/data/maps/LittlerootTown_BrendansHouse_2F/map.json index 9cfdec8fed..03e2dcd829 100644 --- a/data/maps/LittlerootTown_BrendansHouse_2F/map.json +++ b/data/maps/LittlerootTown_BrendansHouse_2F/map.json @@ -2,7 +2,7 @@ "id": "MAP_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F", "name": "LittlerootTown_BrendansHouse_2F", "layout": "LAYOUT_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F", - "music": "MUS_MISHIRO", + "music": "MUS_LITTLEROOT", "region_map_section": "MAPSEC_LITTLEROOT_TOWN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/LittlerootTown_BrendansHouse_2F/scripts.inc b/data/maps/LittlerootTown_BrendansHouse_2F/scripts.inc index 7af4580c37..ab6f55af5d 100644 --- a/data/maps/LittlerootTown_BrendansHouse_2F/scripts.inc +++ b/data/maps/LittlerootTown_BrendansHouse_2F/scripts.inc @@ -74,7 +74,7 @@ LittlerootTown_BrendansHouse_2F_EventScript_MeetBrendan:: @ 81F8497 applymovement LOCALID_RIVAL, Common_Movement_Delay48 waitmovement 0 delay 10 - playbgm MUS_BOY_SUP, 1 + playbgm MUS_ENCOUNTER_BRENDAN, 1 compare VAR_FACING, DIR_NORTH call_if_eq LittlerootTown_BrendansHouse_2F_EventScript_MeetBrendanNorth compare VAR_FACING, DIR_SOUTH diff --git a/data/maps/LittlerootTown_MaysHouse_1F/map.json b/data/maps/LittlerootTown_MaysHouse_1F/map.json index 5e3a5aecd1..7396651813 100644 --- a/data/maps/LittlerootTown_MaysHouse_1F/map.json +++ b/data/maps/LittlerootTown_MaysHouse_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_LITTLEROOT_TOWN_MAYS_HOUSE_1F", "name": "LittlerootTown_MaysHouse_1F", "layout": "LAYOUT_LITTLEROOT_TOWN_MAYS_HOUSE_1F", - "music": "MUS_MISHIRO", + "music": "MUS_LITTLEROOT", "region_map_section": "MAPSEC_LITTLEROOT_TOWN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/LittlerootTown_MaysHouse_1F/scripts.inc b/data/maps/LittlerootTown_MaysHouse_1F/scripts.inc index 958951dc99..1e1bb0e119 100644 --- a/data/maps/LittlerootTown_MaysHouse_1F/scripts.inc +++ b/data/maps/LittlerootTown_MaysHouse_1F/scripts.inc @@ -181,7 +181,7 @@ LittlerootTown_MaysHouse_1F_EventScript_MeetRival2:: @ 81F8A7F end LittlerootTown_MaysHouse_1F_EventScript_MeetRival:: @ 81F8A8B - playse SE_KAIDAN + playse SE_EXIT delay 10 addobject LOCALID_RIVAL delay 30 @@ -192,7 +192,7 @@ LittlerootTown_MaysHouse_1F_EventScript_MeetRival:: @ 81F8A8B waitmovement 0 compare VAR_0x8008, 1 call_if_ne LittlerootTown_MaysHouse_1F_EventScript_PlayerFaceMay - playbgm MUS_GIRL_SUP, 1 + playbgm MUS_ENCOUNTER_MAY, 1 compare VAR_0x8008, 0 call_if_eq LittlerootTown_MaysHouse_1F_EventScript_MayApproachPlayer0 compare VAR_0x8008, 1 @@ -207,7 +207,7 @@ LittlerootTown_MaysHouse_1F_EventScript_MeetRival:: @ 81F8A8B call_if_eq LittlerootTown_MaysHouse_1F_EventScript_MayGoUpstairs1 compare VAR_0x8008, 2 call_if_eq LittlerootTown_MaysHouse_1F_EventScript_MayGoUpstairs2 - playse SE_KAIDAN + playse SE_EXIT removeobject LOCALID_RIVAL setflag FLAG_HIDE_LITTLEROOT_TOWN_MAYS_HOUSE_MAY setflag FLAG_HIDE_LITTLEROOT_TOWN_MAYS_HOUSE_2F_POKE_BALL diff --git a/data/maps/LittlerootTown_MaysHouse_2F/map.json b/data/maps/LittlerootTown_MaysHouse_2F/map.json index 54b4e7c7e8..1fa2ff01d9 100644 --- a/data/maps/LittlerootTown_MaysHouse_2F/map.json +++ b/data/maps/LittlerootTown_MaysHouse_2F/map.json @@ -2,7 +2,7 @@ "id": "MAP_LITTLEROOT_TOWN_MAYS_HOUSE_2F", "name": "LittlerootTown_MaysHouse_2F", "layout": "LAYOUT_LITTLEROOT_TOWN_MAYS_HOUSE_2F", - "music": "MUS_MISHIRO", + "music": "MUS_LITTLEROOT", "region_map_section": "MAPSEC_LITTLEROOT_TOWN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/LittlerootTown_MaysHouse_2F/scripts.inc b/data/maps/LittlerootTown_MaysHouse_2F/scripts.inc index 7c943e0e28..dd22ed670b 100644 --- a/data/maps/LittlerootTown_MaysHouse_2F/scripts.inc +++ b/data/maps/LittlerootTown_MaysHouse_2F/scripts.inc @@ -74,7 +74,7 @@ LittlerootTown_MaysHouse_2F_EventScript_MeetMay:: @ 81F934A applymovement LOCALID_RIVAL, Common_Movement_Delay48 waitmovement 0 delay 10 - playbgm MUS_GIRL_SUP, 1 + playbgm MUS_ENCOUNTER_MAY, 1 compare VAR_FACING, DIR_NORTH call_if_eq LittlerootTown_MaysHouse_2F_EventScript_MeetMayNorth compare VAR_FACING, DIR_SOUTH diff --git a/data/maps/LittlerootTown_ProfessorBirchsLab/map.json b/data/maps/LittlerootTown_ProfessorBirchsLab/map.json index 629516c256..deee3e2643 100644 --- a/data/maps/LittlerootTown_ProfessorBirchsLab/map.json +++ b/data/maps/LittlerootTown_ProfessorBirchsLab/map.json @@ -2,7 +2,7 @@ "id": "MAP_LITTLEROOT_TOWN_PROFESSOR_BIRCHS_LAB", "name": "LittlerootTown_ProfessorBirchsLab", "layout": "LAYOUT_LITTLEROOT_TOWN_PROFESSOR_BIRCHS_LAB", - "music": "MUS_ODAMAKI", + "music": "MUS_BIRCH_LAB", "region_map_section": "MAPSEC_LITTLEROOT_TOWN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/LittlerootTown_ProfessorBirchsLab/scripts.inc b/data/maps/LittlerootTown_ProfessorBirchsLab/scripts.inc index 7886bda187..bc03be7b2f 100644 --- a/data/maps/LittlerootTown_ProfessorBirchsLab/scripts.inc +++ b/data/maps/LittlerootTown_ProfessorBirchsLab/scripts.inc @@ -120,7 +120,7 @@ LittlerootTown_ProfessorBirchsLab_EventScript_GiveStarterEvent:: @ 81F9DDB bufferleadmonspeciesname 0 message LittlerootTown_ProfessorBirchsLab_Text_LikeYouToHavePokemon waitmessage - playfanfare MUS_FANFA4 + playfanfare MUS_OBTAIN_ITEM waitfanfare msgbox LittlerootTown_ProfessorBirchsLab_Text_WhyNotGiveNicknameToMon, MSGBOX_YESNO compare VAR_RESULT, YES @@ -183,13 +183,13 @@ LittlerootTown_ProfessorBirchsLab_EventScript_UpgradeToNationalDex:: @ 81F9E80 applymovement LOCALID_BIRCH, LittlerootTown_ProfessorBirchsLab_Movement_BirchRetrievePokedexes waitmovement 0 delay 20 - playse SE_TK_KASYA + playse SE_CLICK delay 10 - playse SE_TK_KASYA + playse SE_CLICK delay 10 - playse SE_TK_KASYA + playse SE_CLICK delay 10 - playse SE_TK_KASYA + playse SE_CLICK delay 20 applymovement LOCALID_RIVAL, Common_Movement_WalkInPlaceFastestRight applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFastestLeft @@ -208,7 +208,7 @@ LittlerootTown_ProfessorBirchsLab_EventScript_UpgradeToNationalDex:: @ 81F9E80 applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFastestUp waitmovement 0 msgbox LittlerootTown_ProfessorBirchsLab_Text_OkayAllDone, MSGBOX_DEFAULT - playfanfare MUS_FANFA4 + playfanfare MUS_OBTAIN_ITEM message LittlerootTown_ProfessorBirchsLab_Text_PokedexUpgradedToNational waitmessage waitfanfare @@ -492,7 +492,7 @@ LittlerootTown_ProfessorBirchsLab_EventScript_ReceivedChikorita:: @ 81FA23F end LittlerootTown_ProfessorBirchsLab_EventScript_ReceivedJohtoStarter:: @ 81FA24F - playfanfare MUS_FANFA4 + playfanfare MUS_OBTAIN_ITEM message LittlerootTown_ProfessorBirchsLab_Text_ReceivedJohtoStarter waitmessage waitfanfare @@ -536,7 +536,7 @@ EventScript_RegisterProfBirch:: @ 81FA2D2 msgbox MatchCall_Text_BirchRegisterCall, MSGBOX_DEFAULT closemessage delay 30 - playfanfare MUS_ME_TORE_EYE + playfanfare MUS_REGISTER_MATCH_CALL msgbox MatchCall_Text_RegisteredBirch, MSGBOX_DEFAULT waitfanfare closemessage @@ -587,7 +587,7 @@ LittlerootTown_ProfessorBirchsLab_EventScript_BrendanGivePokeBalls:: @ 81FA37F return LittlerootTown_ProfessorBirchsLab_EventScript_ReceivePokedex:: @ 81FA3AC - playfanfare MUS_FANFA4 + playfanfare MUS_OBTAIN_ITEM message LittlerootTown_ProfessorBirchsLab_Text_ReceivedPokedex waitfanfare setflag FLAG_SYS_POKEDEX_GET diff --git a/data/maps/MagmaHideout_1F/map.json b/data/maps/MagmaHideout_1F/map.json index 8865cff2f9..fe5513e3f8 100644 --- a/data/maps/MagmaHideout_1F/map.json +++ b/data/maps/MagmaHideout_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_MAGMA_HIDEOUT_1F", "name": "MagmaHideout_1F", "layout": "LAYOUT_MAGMA_HIDEOUT_1F", - "music": "MUS_AJITO", + "music": "MUS_AQUA_MAGMA_HIDEOUT", "region_map_section": "MAPSEC_MAGMA_HIDEOUT", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MagmaHideout_2F_1R/map.json b/data/maps/MagmaHideout_2F_1R/map.json index 1d7d2958d9..a5c52683cb 100644 --- a/data/maps/MagmaHideout_2F_1R/map.json +++ b/data/maps/MagmaHideout_2F_1R/map.json @@ -2,7 +2,7 @@ "id": "MAP_MAGMA_HIDEOUT_2F_1R", "name": "MagmaHideout_2F_1R", "layout": "LAYOUT_MAGMA_HIDEOUT_2F_1R", - "music": "MUS_AJITO", + "music": "MUS_AQUA_MAGMA_HIDEOUT", "region_map_section": "MAPSEC_MAGMA_HIDEOUT", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MagmaHideout_2F_2R/map.json b/data/maps/MagmaHideout_2F_2R/map.json index 38f492421c..4aa6896f6e 100644 --- a/data/maps/MagmaHideout_2F_2R/map.json +++ b/data/maps/MagmaHideout_2F_2R/map.json @@ -2,7 +2,7 @@ "id": "MAP_MAGMA_HIDEOUT_2F_2R", "name": "MagmaHideout_2F_2R", "layout": "LAYOUT_MAGMA_HIDEOUT_2F_2R", - "music": "MUS_AJITO", + "music": "MUS_AQUA_MAGMA_HIDEOUT", "region_map_section": "MAPSEC_MAGMA_HIDEOUT", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MagmaHideout_2F_3R/map.json b/data/maps/MagmaHideout_2F_3R/map.json index fbed237819..51a4daf263 100644 --- a/data/maps/MagmaHideout_2F_3R/map.json +++ b/data/maps/MagmaHideout_2F_3R/map.json @@ -2,7 +2,7 @@ "id": "MAP_MAGMA_HIDEOUT_2F_3R", "name": "MagmaHideout_2F_3R", "layout": "LAYOUT_MAGMA_HIDEOUT_2F_3R", - "music": "MUS_AJITO", + "music": "MUS_AQUA_MAGMA_HIDEOUT", "region_map_section": "MAPSEC_MAGMA_HIDEOUT", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MagmaHideout_3F_1R/map.json b/data/maps/MagmaHideout_3F_1R/map.json index 082b1d4c6f..edf4cfa218 100644 --- a/data/maps/MagmaHideout_3F_1R/map.json +++ b/data/maps/MagmaHideout_3F_1R/map.json @@ -2,7 +2,7 @@ "id": "MAP_MAGMA_HIDEOUT_3F_1R", "name": "MagmaHideout_3F_1R", "layout": "LAYOUT_MAGMA_HIDEOUT_3F_1R", - "music": "MUS_AJITO", + "music": "MUS_AQUA_MAGMA_HIDEOUT", "region_map_section": "MAPSEC_MAGMA_HIDEOUT", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MagmaHideout_3F_2R/map.json b/data/maps/MagmaHideout_3F_2R/map.json index 3bf22b2e08..70c6bfb973 100644 --- a/data/maps/MagmaHideout_3F_2R/map.json +++ b/data/maps/MagmaHideout_3F_2R/map.json @@ -2,7 +2,7 @@ "id": "MAP_MAGMA_HIDEOUT_3F_2R", "name": "MagmaHideout_3F_2R", "layout": "LAYOUT_MAGMA_HIDEOUT_3F_2R", - "music": "MUS_AJITO", + "music": "MUS_AQUA_MAGMA_HIDEOUT", "region_map_section": "MAPSEC_MAGMA_HIDEOUT", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MagmaHideout_3F_3R/map.json b/data/maps/MagmaHideout_3F_3R/map.json index 38a5342c39..824f5cb746 100644 --- a/data/maps/MagmaHideout_3F_3R/map.json +++ b/data/maps/MagmaHideout_3F_3R/map.json @@ -2,7 +2,7 @@ "id": "MAP_MAGMA_HIDEOUT_3F_3R", "name": "MagmaHideout_3F_3R", "layout": "LAYOUT_MAGMA_HIDEOUT_3F_3R", - "music": "MUS_AJITO", + "music": "MUS_AQUA_MAGMA_HIDEOUT", "region_map_section": "MAPSEC_MAGMA_HIDEOUT", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MagmaHideout_4F/map.json b/data/maps/MagmaHideout_4F/map.json index 0dec87a139..d38e85fdf8 100644 --- a/data/maps/MagmaHideout_4F/map.json +++ b/data/maps/MagmaHideout_4F/map.json @@ -2,7 +2,7 @@ "id": "MAP_MAGMA_HIDEOUT_4F", "name": "MagmaHideout_4F", "layout": "LAYOUT_MAGMA_HIDEOUT_4F", - "music": "MUS_AJITO", + "music": "MUS_AQUA_MAGMA_HIDEOUT", "region_map_section": "MAPSEC_MAGMA_HIDEOUT", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MagmaHideout_4F/scripts.inc b/data/maps/MagmaHideout_4F/scripts.inc index ffca9c75ff..50382f44e3 100644 --- a/data/maps/MagmaHideout_4F/scripts.inc +++ b/data/maps/MagmaHideout_4F/scripts.inc @@ -11,17 +11,17 @@ MagmaHideout_4F_MapScripts:: @ 823A55F MagmaHideout_4F_EventScript_Maxie:: @ 823A560 lockall - playbgm MUS_MGM0, 0 + playbgm MUS_ENCOUNTER_MAGMA, 0 msgbox MagmaHideout_4F_Text_MaxieAwakenGroudon, MSGBOX_DEFAULT closemessage delay 20 setvar VAR_RESULT, 1 - playse SE_W197 + playse SE_M_DETECT dofieldeffectsparkle 18, 42, 0 waitfieldeffect FLDEFF_SPARKLE setvar VAR_RESULT, 1 - playfanfare MUS_ME_TAMA - playse SE_TAMA + playfanfare MUS_AWAKEN_LEGEND + playse SE_ORB special DoOrbEffect applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFastestUp waitmovement 0 diff --git a/data/maps/MarineCave_End/map.json b/data/maps/MarineCave_End/map.json index 7f382b0880..d2e506a147 100644 --- a/data/maps/MarineCave_End/map.json +++ b/data/maps/MarineCave_End/map.json @@ -2,7 +2,7 @@ "id": "MAP_MARINE_CAVE_END", "name": "MarineCave_End", "layout": "LAYOUT_MARINE_CAVE_END", - "music": "MUS_DAN01", + "music": "MUS_PETALBURG_WOODS", "region_map_section": "MAPSEC_MARINE_CAVE", "requires_flash": false, "weather": "WEATHER_FOG_HORIZONTAL", diff --git a/data/maps/MarineCave_Entrance/map.json b/data/maps/MarineCave_Entrance/map.json index 541ccddc6c..f815ca0699 100644 --- a/data/maps/MarineCave_Entrance/map.json +++ b/data/maps/MarineCave_Entrance/map.json @@ -2,7 +2,7 @@ "id": "MAP_MARINE_CAVE_ENTRANCE", "name": "MarineCave_Entrance", "layout": "LAYOUT_MARINE_CAVE_ENTRANCE", - "music": "MUS_DAN01", + "music": "MUS_PETALBURG_WOODS", "region_map_section": "MAPSEC_MARINE_CAVE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MauvilleCity/map.json b/data/maps/MauvilleCity/map.json index 096edafe3e..cf3d5f8a1c 100644 --- a/data/maps/MauvilleCity/map.json +++ b/data/maps/MauvilleCity/map.json @@ -2,7 +2,7 @@ "id": "MAP_MAUVILLE_CITY", "name": "MauvilleCity", "layout": "LAYOUT_MAUVILLE_CITY", - "music": "MUS_GOTOWN", + "music": "MUS_RUSTBORO", "region_map_section": "MAPSEC_MAUVILLE_CITY", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/MauvilleCity/scripts.inc b/data/maps/MauvilleCity/scripts.inc index 701c36159b..7107f4754a 100644 --- a/data/maps/MauvilleCity/scripts.inc +++ b/data/maps/MauvilleCity/scripts.inc @@ -460,7 +460,7 @@ MauvilleCity_EventScript_RegisterWallyCall:: @ 81DF7BA pokenavcall MauvilleCity_Text_WallyPokenavCall waitmessage delay 30 - playfanfare MUS_ME_TORE_EYE + playfanfare MUS_REGISTER_MATCH_CALL msgbox MauvilleCity_Text_RegisteredWally, MSGBOX_DEFAULT waitfanfare closemessage diff --git a/data/maps/MauvilleCity_BikeShop/map.json b/data/maps/MauvilleCity_BikeShop/map.json index 44d09d8836..217d3be26e 100644 --- a/data/maps/MauvilleCity_BikeShop/map.json +++ b/data/maps/MauvilleCity_BikeShop/map.json @@ -2,7 +2,7 @@ "id": "MAP_MAUVILLE_CITY_BIKE_SHOP", "name": "MauvilleCity_BikeShop", "layout": "LAYOUT_MAUVILLE_CITY_BIKE_SHOP", - "music": "MUS_GOTOWN", + "music": "MUS_RUSTBORO", "region_map_section": "MAPSEC_MAUVILLE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MauvilleCity_GameCorner/map.json b/data/maps/MauvilleCity_GameCorner/map.json index 1493cda23e..2564596bab 100644 --- a/data/maps/MauvilleCity_GameCorner/map.json +++ b/data/maps/MauvilleCity_GameCorner/map.json @@ -2,7 +2,7 @@ "id": "MAP_MAUVILLE_CITY_GAME_CORNER", "name": "MauvilleCity_GameCorner", "layout": "LAYOUT_MAUVILLE_CITY_GAME_CORNER", - "music": "MUS_CASINO", + "music": "MUS_GAME_CORNER", "region_map_section": "MAPSEC_MAUVILLE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MauvilleCity_GameCorner/scripts.inc b/data/maps/MauvilleCity_GameCorner/scripts.inc index 46c61a017b..ad3f7a407f 100644 --- a/data/maps/MauvilleCity_GameCorner/scripts.inc +++ b/data/maps/MauvilleCity_GameCorner/scripts.inc @@ -53,7 +53,7 @@ MauvilleCity_GameCorner_EventScript_Buy50Coins:: @ 820FC33 removemoney COINS_PRICE_50, 0 updatemoneybox 0, 0 updatecoinsbox 1, 6 - playse SE_REGI + playse SE_SHOP msgbox MauvilleCity_GameCorner_Text_ThankYouHereAreYourCoins, MSGBOX_DEFAULT hidemoneybox hidecoinsbox 0, 5 @@ -71,7 +71,7 @@ MauvilleCity_GameCorner_EventScript_Buy500Coins:: @ 820FC75 removemoney COINS_PRICE_500, 0 updatemoneybox 0, 0 updatecoinsbox 1, 6 - playse SE_REGI + playse SE_SHOP msgbox MauvilleCity_GameCorner_Text_ThankYouHereAreYourCoins, MSGBOX_DEFAULT hidemoneybox hidecoinsbox 0, 5 @@ -172,7 +172,7 @@ MauvilleCity_GameCorner_EventScript_BuyTreeckoDoll:: @ 820FDCB removecoins DOLL_COINS adddecoration DECOR_TREECKO_DOLL updatecoinsbox 1, 1 - playse SE_REGI + playse SE_SHOP msgbox MauvilleCity_GameCorner_Text_SendToYourHomePC, MSGBOX_DEFAULT goto MauvilleCity_GameCorner_EventScript_ReturnToChooseDollPrize end @@ -188,7 +188,7 @@ MauvilleCity_GameCorner_EventScript_BuyTorchicDoll:: @ 820FE05 removecoins DOLL_COINS adddecoration DECOR_TORCHIC_DOLL updatecoinsbox 1, 1 - playse SE_REGI + playse SE_SHOP msgbox MauvilleCity_GameCorner_Text_SendToYourHomePC, MSGBOX_DEFAULT goto MauvilleCity_GameCorner_EventScript_ReturnToChooseDollPrize end @@ -204,7 +204,7 @@ MauvilleCity_GameCorner_EventScript_BuyMudkipDoll:: @ 820FE3F removecoins DOLL_COINS adddecoration DECOR_MUDKIP_DOLL updatecoinsbox 1, 1 - playse SE_REGI + playse SE_SHOP msgbox MauvilleCity_GameCorner_Text_SendToYourHomePC, MSGBOX_DEFAULT goto MauvilleCity_GameCorner_EventScript_ReturnToChooseDollPrize end @@ -312,7 +312,7 @@ MauvilleCity_GameCorner_EventScript_BuyTM32:: @ 820FFDD removecoins TM32_COINS additem ITEM_TM32 updatecoinsbox 1, 1 - playse SE_REGI + playse SE_SHOP msgbox MauvilleCity_GameCorner_Text_HereYouGo, MSGBOX_DEFAULT goto MauvilleCity_GameCorner_EventScript_ReturnToChooseTMPrize end @@ -327,7 +327,7 @@ MauvilleCity_GameCorner_EventScript_BuyTM29:: @ 8210017 removecoins TM29_COINS additem ITEM_TM29 updatecoinsbox 1, 1 - playse SE_REGI + playse SE_SHOP msgbox MauvilleCity_GameCorner_Text_HereYouGo, MSGBOX_DEFAULT goto MauvilleCity_GameCorner_EventScript_ReturnToChooseTMPrize end @@ -342,7 +342,7 @@ MauvilleCity_GameCorner_EventScript_BuyTM35:: @ 8210051 removecoins TM35_COINS additem ITEM_TM35 updatecoinsbox 1, 1 - playse SE_REGI + playse SE_SHOP msgbox MauvilleCity_GameCorner_Text_HereYouGo, MSGBOX_DEFAULT goto MauvilleCity_GameCorner_EventScript_ReturnToChooseTMPrize end @@ -357,7 +357,7 @@ MauvilleCity_GameCorner_EventScript_BuyTM24:: @ 821008B removecoins TM24_COINS additem ITEM_TM24 updatecoinsbox 1, 1 - playse SE_REGI + playse SE_SHOP msgbox MauvilleCity_GameCorner_Text_HereYouGo, MSGBOX_DEFAULT goto MauvilleCity_GameCorner_EventScript_ReturnToChooseTMPrize end @@ -372,7 +372,7 @@ MauvilleCity_GameCorner_EventScript_BuyTM13:: @ 82100C5 removecoins TM13_COINS additem ITEM_TM13 updatecoinsbox 1, 1 - playse SE_REGI + playse SE_SHOP msgbox MauvilleCity_GameCorner_Text_HereYouGo, MSGBOX_DEFAULT goto MauvilleCity_GameCorner_EventScript_ReturnToChooseTMPrize end @@ -481,7 +481,7 @@ MauvilleCity_GameCorner_EventScript_TryGive20Coins:: @ 821023D setflag FLAG_RECEIVED_20_COINS addcoins 20 msgbox MauvilleCity_GameCorner_Text_LuckOnlyLastSoLongTakeCoins, MSGBOX_DEFAULT - playse SE_REGI + playse SE_SHOP goto MauvilleCity_GameCorner_EventScript_PokefanMNormal end diff --git a/data/maps/MauvilleCity_Gym/map.json b/data/maps/MauvilleCity_Gym/map.json index 50122e216a..2451c6cd67 100644 --- a/data/maps/MauvilleCity_Gym/map.json +++ b/data/maps/MauvilleCity_Gym/map.json @@ -2,7 +2,7 @@ "id": "MAP_MAUVILLE_CITY_GYM", "name": "MauvilleCity_Gym", "layout": "LAYOUT_MAUVILLE_CITY_GYM", - "music": "MUS_GIM", + "music": "MUS_GYM", "region_map_section": "MAPSEC_MAUVILLE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MauvilleCity_Gym/scripts.inc b/data/maps/MauvilleCity_Gym/scripts.inc index edf0a31291..3fa7dc8c94 100644 --- a/data/maps/MauvilleCity_Gym/scripts.inc +++ b/data/maps/MauvilleCity_Gym/scripts.inc @@ -101,11 +101,11 @@ MauvilleCity_Gym_EventScript_WattsonDefeated:: @ 820DF2B call Common_EventScript_SetGymTrainers special MauvilleGymDeactivatePuzzle special DrawWholeMapView - playse SE_KI_GASYAN + playse SE_UNLOCK call MauvilleCity_Gym_EventScript_GiveShockWave closemessage delay 30 - playfanfare MUS_ME_TORE_EYE + playfanfare MUS_REGISTER_MATCH_CALL msgbox MauvilleCity_Gym_Text_RegisteredWattson, MSGBOX_DEFAULT waitfanfare closemessage @@ -185,7 +185,7 @@ MauvilleCity_Gym_EventScript_PressFloorSwitch:: @ 820E08D special MauvilleGymSetDefaultBarriers special MauvilleGymPressSwitch special DrawWholeMapView - playse SE_KI_GASYAN + playse SE_UNLOCK goto_if_set FLAG_MAUVILLE_GYM_BARRIERS_STATE, MauvilleCity_Gym_EventScript_ClearBarriersAltState goto_if_unset FLAG_MAUVILLE_GYM_BARRIERS_STATE, MauvilleCity_Gym_EventScript_SetBarriersAltState releaseall diff --git a/data/maps/MauvilleCity_House1/map.json b/data/maps/MauvilleCity_House1/map.json index 4f203bce67..019ae6f09a 100644 --- a/data/maps/MauvilleCity_House1/map.json +++ b/data/maps/MauvilleCity_House1/map.json @@ -2,7 +2,7 @@ "id": "MAP_MAUVILLE_CITY_HOUSE1", "name": "MauvilleCity_House1", "layout": "LAYOUT_HOUSE2", - "music": "MUS_GOTOWN", + "music": "MUS_RUSTBORO", "region_map_section": "MAPSEC_MAUVILLE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MauvilleCity_House2/map.json b/data/maps/MauvilleCity_House2/map.json index 5c092f1c76..009befbab8 100644 --- a/data/maps/MauvilleCity_House2/map.json +++ b/data/maps/MauvilleCity_House2/map.json @@ -2,7 +2,7 @@ "id": "MAP_MAUVILLE_CITY_HOUSE2", "name": "MauvilleCity_House2", "layout": "LAYOUT_HOUSE1", - "music": "MUS_GOTOWN", + "music": "MUS_RUSTBORO", "region_map_section": "MAPSEC_MAUVILLE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MauvilleCity_Mart/map.json b/data/maps/MauvilleCity_Mart/map.json index 2dcdd906e1..ee4091ee1a 100644 --- a/data/maps/MauvilleCity_Mart/map.json +++ b/data/maps/MauvilleCity_Mart/map.json @@ -2,7 +2,7 @@ "id": "MAP_MAUVILLE_CITY_MART", "name": "MauvilleCity_Mart", "layout": "LAYOUT_MART", - "music": "MUS_FRIENDLY", + "music": "MUS_POKE_MART", "region_map_section": "MAPSEC_MAUVILLE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MauvilleCity_PokemonCenter_1F/map.json b/data/maps/MauvilleCity_PokemonCenter_1F/map.json index 50e5d3c9f8..9feb04be9d 100644 --- a/data/maps/MauvilleCity_PokemonCenter_1F/map.json +++ b/data/maps/MauvilleCity_PokemonCenter_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_MAUVILLE_CITY_POKEMON_CENTER_1F", "name": "MauvilleCity_PokemonCenter_1F", "layout": "LAYOUT_POKEMON_CENTER_1F", - "music": "MUS_POKECEN", + "music": "MUS_POKE_CENTER", "region_map_section": "MAPSEC_MAUVILLE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MauvilleCity_PokemonCenter_2F/map.json b/data/maps/MauvilleCity_PokemonCenter_2F/map.json index da8f19255f..3f616938b7 100644 --- a/data/maps/MauvilleCity_PokemonCenter_2F/map.json +++ b/data/maps/MauvilleCity_PokemonCenter_2F/map.json @@ -2,7 +2,7 @@ "id": "MAP_MAUVILLE_CITY_POKEMON_CENTER_2F", "name": "MauvilleCity_PokemonCenter_2F", "layout": "LAYOUT_POKEMON_CENTER_2F", - "music": "MUS_POKECEN", + "music": "MUS_POKE_CENTER", "region_map_section": "MAPSEC_MAUVILLE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MeteorFalls_1F_1R/map.json b/data/maps/MeteorFalls_1F_1R/map.json index 45cf5803eb..f177410e27 100644 --- a/data/maps/MeteorFalls_1F_1R/map.json +++ b/data/maps/MeteorFalls_1F_1R/map.json @@ -2,7 +2,7 @@ "id": "MAP_METEOR_FALLS_1F_1R", "name": "MeteorFalls_1F_1R", "layout": "LAYOUT_METEOR_FALLS_1F_1R", - "music": "MUS_DAN03", + "music": "MUS_CAVE_OF_ORIGIN", "region_map_section": "MAPSEC_METEOR_FALLS", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MeteorFalls_1F_1R/scripts.inc b/data/maps/MeteorFalls_1F_1R/scripts.inc index 56deaa353f..c942e230ec 100644 --- a/data/maps/MeteorFalls_1F_1R/scripts.inc +++ b/data/maps/MeteorFalls_1F_1R/scripts.inc @@ -21,7 +21,7 @@ MeteorFalls_1F_1R_EventScript_OpenStevensCave:: @ 822BD3A MeteorFalls_1F_1R_EventScript_MagmaStealsMeteoriteScene:: @ 822BD5F lockall - playbgm MUS_MGM0, 0 + playbgm MUS_ENCOUNTER_MAGMA, 0 applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_FaceDown waitmovement 0 delay 30 @@ -50,7 +50,7 @@ MeteorFalls_1F_1R_EventScript_MagmaStealsMeteoriteScene:: @ 822BD5F addobject LOCALID_ARCHIE addobject LOCALID_AQUA_GRUNT_1 addobject LOCALID_AQUA_GRUNT_2 - playbgm MUS_AQA_0, 0 + playbgm MUS_ENCOUNTER_AQUA, 0 applymovement LOCALID_ARCHIE, MeteorFalls_1F_1R_Movement_ArchieArrive applymovement LOCALID_AQUA_GRUNT_1, MeteorFalls_1F_1R_Movement_AquaGrunt1Arrive applymovement LOCALID_AQUA_GRUNT_2, MeteorFalls_1F_1R_Movement_AquaGrunt2Arrive diff --git a/data/maps/MeteorFalls_1F_2R/map.json b/data/maps/MeteorFalls_1F_2R/map.json index ea585829f7..49e001c886 100644 --- a/data/maps/MeteorFalls_1F_2R/map.json +++ b/data/maps/MeteorFalls_1F_2R/map.json @@ -2,7 +2,7 @@ "id": "MAP_METEOR_FALLS_1F_2R", "name": "MeteorFalls_1F_2R", "layout": "LAYOUT_METEOR_FALLS_1F_2R", - "music": "MUS_DAN03", + "music": "MUS_CAVE_OF_ORIGIN", "region_map_section": "MAPSEC_METEOR_FALLS", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MeteorFalls_B1F_1R/map.json b/data/maps/MeteorFalls_B1F_1R/map.json index 2db212dfaa..6cba2ec487 100644 --- a/data/maps/MeteorFalls_B1F_1R/map.json +++ b/data/maps/MeteorFalls_B1F_1R/map.json @@ -2,7 +2,7 @@ "id": "MAP_METEOR_FALLS_B1F_1R", "name": "MeteorFalls_B1F_1R", "layout": "LAYOUT_METEOR_FALLS_B1F_1R", - "music": "MUS_DAN03", + "music": "MUS_CAVE_OF_ORIGIN", "region_map_section": "MAPSEC_METEOR_FALLS", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MeteorFalls_B1F_2R/map.json b/data/maps/MeteorFalls_B1F_2R/map.json index e318acfbc0..57276d86db 100644 --- a/data/maps/MeteorFalls_B1F_2R/map.json +++ b/data/maps/MeteorFalls_B1F_2R/map.json @@ -2,7 +2,7 @@ "id": "MAP_METEOR_FALLS_B1F_2R", "name": "MeteorFalls_B1F_2R", "layout": "LAYOUT_METEOR_FALLS_B1F_2R", - "music": "MUS_DAN03", + "music": "MUS_CAVE_OF_ORIGIN", "region_map_section": "MAPSEC_METEOR_FALLS", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MeteorFalls_StevensCave/map.json b/data/maps/MeteorFalls_StevensCave/map.json index 7b1f7439e8..01b05d3081 100644 --- a/data/maps/MeteorFalls_StevensCave/map.json +++ b/data/maps/MeteorFalls_StevensCave/map.json @@ -2,7 +2,7 @@ "id": "MAP_METEOR_FALLS_STEVENS_CAVE", "name": "MeteorFalls_StevensCave", "layout": "LAYOUT_METEOR_FALLS_STEVENS_CAVE", - "music": "MUS_DAN03", + "music": "MUS_CAVE_OF_ORIGIN", "region_map_section": "MAPSEC_METEOR_FALLS", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MirageTower_1F/map.json b/data/maps/MirageTower_1F/map.json index 91e15cc39c..bb79300067 100644 --- a/data/maps/MirageTower_1F/map.json +++ b/data/maps/MirageTower_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_MIRAGE_TOWER_1F", "name": "MirageTower_1F", "layout": "LAYOUT_MIRAGE_TOWER_1F", - "music": "MUS_TOZAN", + "music": "MUS_MT_CHIMNEY", "region_map_section": "MAPSEC_MIRAGE_TOWER", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MirageTower_2F/map.json b/data/maps/MirageTower_2F/map.json index 5e9769db6c..bf45616753 100644 --- a/data/maps/MirageTower_2F/map.json +++ b/data/maps/MirageTower_2F/map.json @@ -2,7 +2,7 @@ "id": "MAP_MIRAGE_TOWER_2F", "name": "MirageTower_2F", "layout": "LAYOUT_MIRAGE_TOWER_2F", - "music": "MUS_TOZAN", + "music": "MUS_MT_CHIMNEY", "region_map_section": "MAPSEC_MIRAGE_TOWER", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MirageTower_3F/map.json b/data/maps/MirageTower_3F/map.json index 2692de62a9..6ccbf46784 100644 --- a/data/maps/MirageTower_3F/map.json +++ b/data/maps/MirageTower_3F/map.json @@ -2,7 +2,7 @@ "id": "MAP_MIRAGE_TOWER_3F", "name": "MirageTower_3F", "layout": "LAYOUT_MIRAGE_TOWER_3F", - "music": "MUS_TOZAN", + "music": "MUS_MT_CHIMNEY", "region_map_section": "MAPSEC_MIRAGE_TOWER", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MirageTower_4F/map.json b/data/maps/MirageTower_4F/map.json index 03ecc06479..a153fbb2ac 100644 --- a/data/maps/MirageTower_4F/map.json +++ b/data/maps/MirageTower_4F/map.json @@ -2,7 +2,7 @@ "id": "MAP_MIRAGE_TOWER_4F", "name": "MirageTower_4F", "layout": "LAYOUT_MIRAGE_TOWER_4F", - "music": "MUS_TOZAN", + "music": "MUS_MT_CHIMNEY", "region_map_section": "MAPSEC_MIRAGE_TOWER", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MossdeepCity/map.json b/data/maps/MossdeepCity/map.json index d360959a12..ff8ae1b616 100644 --- a/data/maps/MossdeepCity/map.json +++ b/data/maps/MossdeepCity/map.json @@ -2,7 +2,7 @@ "id": "MAP_MOSSDEEP_CITY", "name": "MossdeepCity", "layout": "LAYOUT_MOSSDEEP_CITY", - "music": "MUS_GOTOWN", + "music": "MUS_RUSTBORO", "region_map_section": "MAPSEC_MOSSDEEP_CITY", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/MossdeepCity_GameCorner_1F/map.json b/data/maps/MossdeepCity_GameCorner_1F/map.json index 6188b4f37a..14b89fe424 100644 --- a/data/maps/MossdeepCity_GameCorner_1F/map.json +++ b/data/maps/MossdeepCity_GameCorner_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_MOSSDEEP_CITY_GAME_CORNER_1F", "name": "MossdeepCity_GameCorner_1F", "layout": "LAYOUT_MOSSDEEP_CITY_GAME_CORNER_1F", - "music": "MUS_GOTOWN", + "music": "MUS_RUSTBORO", "region_map_section": "MAPSEC_MOSSDEEP_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MossdeepCity_GameCorner_B1F/map.json b/data/maps/MossdeepCity_GameCorner_B1F/map.json index 7ea92448c0..180bd703a4 100644 --- a/data/maps/MossdeepCity_GameCorner_B1F/map.json +++ b/data/maps/MossdeepCity_GameCorner_B1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_MOSSDEEP_CITY_GAME_CORNER_B1F", "name": "MossdeepCity_GameCorner_B1F", "layout": "LAYOUT_MOSSDEEP_CITY_GAME_CORNER_B1F", - "music": "MUS_GOTOWN", + "music": "MUS_RUSTBORO", "region_map_section": "MAPSEC_MOSSDEEP_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MossdeepCity_Gym/map.json b/data/maps/MossdeepCity_Gym/map.json index fa40995659..9b63a0c081 100644 --- a/data/maps/MossdeepCity_Gym/map.json +++ b/data/maps/MossdeepCity_Gym/map.json @@ -2,7 +2,7 @@ "id": "MAP_MOSSDEEP_CITY_GYM", "name": "MossdeepCity_Gym", "layout": "LAYOUT_MOSSDEEP_CITY_GYM", - "music": "MUS_GIM", + "music": "MUS_GYM", "region_map_section": "MAPSEC_MOSSDEEP_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MossdeepCity_Gym/scripts.inc b/data/maps/MossdeepCity_Gym/scripts.inc index d8bff6dd1e..0e6487e16a 100644 --- a/data/maps/MossdeepCity_Gym/scripts.inc +++ b/data/maps/MossdeepCity_Gym/scripts.inc @@ -81,7 +81,7 @@ MossdeepCity_Gym_EventScript_TateAndLizaDefeated:: @ 82208D1 call MossdeepCity_Gym_EventScript_GiveCalmMind closemessage delay 30 - playfanfare MUS_ME_TORE_EYE + playfanfare MUS_REGISTER_MATCH_CALL msgbox MossdeepCity_Gym_Text_RegisteredTateAndLiza, MSGBOX_DEFAULT waitfanfare closemessage @@ -126,7 +126,7 @@ MossdeepCity_Gym_EventScript_Switch1:: @ 8220999 MossdeepCity_Gym_EventScript_DrawMapAfterSwitchUsed:: @ 82209C8 special DrawWholeMapView - playse SE_TK_KASYA + playse SE_CLICK releaseall end @@ -308,9 +308,9 @@ MossdeepCity_Gym_EventScript_GymStatue:: @ 8220C5D end MossdeepCity_Gym_EventScript_YellowFloorSwitch:: @ 8220C67 - playse SE_MU_PACHI + playse SE_SWITCH waitse - playse SE_TU_SAA + playse SE_REPEL initrotatingtilepuzzle FALSE moverotatingtileobjects 0 waitmovement 0 @@ -320,9 +320,9 @@ MossdeepCity_Gym_EventScript_YellowFloorSwitch:: @ 8220C67 end MossdeepCity_Gym_EventScript_BlueFloorSwitch:: @ 8220C7D - playse SE_MU_PACHI + playse SE_SWITCH waitse - playse SE_TU_SAA + playse SE_REPEL initrotatingtilepuzzle FALSE moverotatingtileobjects 1 waitmovement 0 @@ -332,9 +332,9 @@ MossdeepCity_Gym_EventScript_BlueFloorSwitch:: @ 8220C7D end MossdeepCity_Gym_EventScript_GreenFloorSwitch:: @ 8220C93 - playse SE_MU_PACHI + playse SE_SWITCH waitse - playse SE_TU_SAA + playse SE_REPEL initrotatingtilepuzzle FALSE moverotatingtileobjects 2 waitmovement 0 @@ -344,9 +344,9 @@ MossdeepCity_Gym_EventScript_GreenFloorSwitch:: @ 8220C93 end MossdeepCity_Gym_EventScript_PurpleFloorSwitch:: @ 8220CA9 - playse SE_MU_PACHI + playse SE_SWITCH waitse - playse SE_TU_SAA + playse SE_REPEL initrotatingtilepuzzle FALSE moverotatingtileobjects 3 waitmovement 0 @@ -356,9 +356,9 @@ MossdeepCity_Gym_EventScript_PurpleFloorSwitch:: @ 8220CA9 end MossdeepCity_Gym_EventScript_RedFloorSwitch:: @ 8220CBF - playse SE_MU_PACHI + playse SE_SWITCH waitse - playse SE_TU_SAA + playse SE_REPEL initrotatingtilepuzzle FALSE moverotatingtileobjects 4 waitmovement 0 diff --git a/data/maps/MossdeepCity_House1/map.json b/data/maps/MossdeepCity_House1/map.json index f57f4df18b..f4338078e4 100644 --- a/data/maps/MossdeepCity_House1/map.json +++ b/data/maps/MossdeepCity_House1/map.json @@ -2,7 +2,7 @@ "id": "MAP_MOSSDEEP_CITY_HOUSE1", "name": "MossdeepCity_House1", "layout": "LAYOUT_HOUSE2", - "music": "MUS_GOTOWN", + "music": "MUS_RUSTBORO", "region_map_section": "MAPSEC_MOSSDEEP_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MossdeepCity_House2/map.json b/data/maps/MossdeepCity_House2/map.json index 9a9a081731..e7990bad99 100644 --- a/data/maps/MossdeepCity_House2/map.json +++ b/data/maps/MossdeepCity_House2/map.json @@ -2,7 +2,7 @@ "id": "MAP_MOSSDEEP_CITY_HOUSE2", "name": "MossdeepCity_House2", "layout": "LAYOUT_HOUSE1", - "music": "MUS_GOTOWN", + "music": "MUS_RUSTBORO", "region_map_section": "MAPSEC_MOSSDEEP_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MossdeepCity_House3/map.json b/data/maps/MossdeepCity_House3/map.json index c6cfaf0979..a0587ca0ab 100644 --- a/data/maps/MossdeepCity_House3/map.json +++ b/data/maps/MossdeepCity_House3/map.json @@ -2,7 +2,7 @@ "id": "MAP_MOSSDEEP_CITY_HOUSE3", "name": "MossdeepCity_House3", "layout": "LAYOUT_HOUSE2", - "music": "MUS_GOTOWN", + "music": "MUS_RUSTBORO", "region_map_section": "MAPSEC_MOSSDEEP_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MossdeepCity_House4/map.json b/data/maps/MossdeepCity_House4/map.json index b4b77372d9..0c7e0a1122 100644 --- a/data/maps/MossdeepCity_House4/map.json +++ b/data/maps/MossdeepCity_House4/map.json @@ -2,7 +2,7 @@ "id": "MAP_MOSSDEEP_CITY_HOUSE4", "name": "MossdeepCity_House4", "layout": "LAYOUT_HOUSE_WITH_BED", - "music": "MUS_GOTOWN", + "music": "MUS_RUSTBORO", "region_map_section": "MAPSEC_MOSSDEEP_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MossdeepCity_Mart/map.json b/data/maps/MossdeepCity_Mart/map.json index 83218e7e1e..37885b7524 100644 --- a/data/maps/MossdeepCity_Mart/map.json +++ b/data/maps/MossdeepCity_Mart/map.json @@ -2,7 +2,7 @@ "id": "MAP_MOSSDEEP_CITY_MART", "name": "MossdeepCity_Mart", "layout": "LAYOUT_MART", - "music": "MUS_FRIENDLY", + "music": "MUS_POKE_MART", "region_map_section": "MAPSEC_MOSSDEEP_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MossdeepCity_PokemonCenter_1F/map.json b/data/maps/MossdeepCity_PokemonCenter_1F/map.json index 7516324625..ac3b51e8f9 100644 --- a/data/maps/MossdeepCity_PokemonCenter_1F/map.json +++ b/data/maps/MossdeepCity_PokemonCenter_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_MOSSDEEP_CITY_POKEMON_CENTER_1F", "name": "MossdeepCity_PokemonCenter_1F", "layout": "LAYOUT_POKEMON_CENTER_1F", - "music": "MUS_POKECEN", + "music": "MUS_POKE_CENTER", "region_map_section": "MAPSEC_MOSSDEEP_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MossdeepCity_PokemonCenter_2F/map.json b/data/maps/MossdeepCity_PokemonCenter_2F/map.json index 9206cf844c..7fa6566979 100644 --- a/data/maps/MossdeepCity_PokemonCenter_2F/map.json +++ b/data/maps/MossdeepCity_PokemonCenter_2F/map.json @@ -2,7 +2,7 @@ "id": "MAP_MOSSDEEP_CITY_POKEMON_CENTER_2F", "name": "MossdeepCity_PokemonCenter_2F", "layout": "LAYOUT_POKEMON_CENTER_2F", - "music": "MUS_POKECEN", + "music": "MUS_POKE_CENTER", "region_map_section": "MAPSEC_MOSSDEEP_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MossdeepCity_SpaceCenter_1F/map.json b/data/maps/MossdeepCity_SpaceCenter_1F/map.json index 32b5ff4897..0f50696657 100644 --- a/data/maps/MossdeepCity_SpaceCenter_1F/map.json +++ b/data/maps/MossdeepCity_SpaceCenter_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_MOSSDEEP_CITY_SPACE_CENTER_1F", "name": "MossdeepCity_SpaceCenter_1F", "layout": "LAYOUT_MOSSDEEP_CITY_SPACE_CENTER_1F", - "music": "MUS_GOTOWN", + "music": "MUS_RUSTBORO", "region_map_section": "MAPSEC_MOSSDEEP_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MossdeepCity_SpaceCenter_2F/map.json b/data/maps/MossdeepCity_SpaceCenter_2F/map.json index 7e01d7f1a7..8990aa0759 100644 --- a/data/maps/MossdeepCity_SpaceCenter_2F/map.json +++ b/data/maps/MossdeepCity_SpaceCenter_2F/map.json @@ -2,7 +2,7 @@ "id": "MAP_MOSSDEEP_CITY_SPACE_CENTER_2F", "name": "MossdeepCity_SpaceCenter_2F", "layout": "LAYOUT_MOSSDEEP_CITY_SPACE_CENTER_2F", - "music": "MUS_GOTOWN", + "music": "MUS_RUSTBORO", "region_map_section": "MAPSEC_MOSSDEEP_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc b/data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc index 6c9d4a9056..62550d7c63 100644 --- a/data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc +++ b/data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc @@ -204,7 +204,7 @@ MossdeepCity_SpaceCenter_2F_EventScript_Steven:: @ 8223F7A msgbox MossdeepCity_SpaceCenter_2F_Text_MaxieUseFuelToEruptVolcano, MSGBOX_DEFAULT closemessage delay 30 - playse SE_KOUKA_L + playse SE_NOT_EFFECTIVE switch VAR_FACING case DIR_SOUTH, MossdeepCity_SpaceCenter_2F_EventScript_StevenFightMovementSouth applymovement LOCALID_STEVEN, MossdeepCity_SpaceCenter_2F_Movement_StevenFight diff --git a/data/maps/MossdeepCity_StevensHouse/map.json b/data/maps/MossdeepCity_StevensHouse/map.json index 81eefbd94f..cad7609d31 100644 --- a/data/maps/MossdeepCity_StevensHouse/map.json +++ b/data/maps/MossdeepCity_StevensHouse/map.json @@ -2,7 +2,7 @@ "id": "MAP_MOSSDEEP_CITY_STEVENS_HOUSE", "name": "MossdeepCity_StevensHouse", "layout": "LAYOUT_MOSSDEEP_CITY_STEVENS_HOUSE", - "music": "MUS_GOTOWN", + "music": "MUS_RUSTBORO", "region_map_section": "MAPSEC_MOSSDEEP_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MossdeepCity_StevensHouse/scripts.inc b/data/maps/MossdeepCity_StevensHouse/scripts.inc index 0017f553d2..1d384efe1f 100644 --- a/data/maps/MossdeepCity_StevensHouse/scripts.inc +++ b/data/maps/MossdeepCity_StevensHouse/scripts.inc @@ -123,7 +123,7 @@ MossdeepCity_StevensHouse_EventScript_BeldumTransferredToPC:: @ 82228E0 MossdeepCity_StevensHouse_EventScript_ReceivedBeldumFanfare:: @ 82228EB bufferspeciesname 1, SPECIES_BELDUM removeobject LOCALID_BELDUM_BALL - playfanfare MUS_FANFA4 + playfanfare MUS_OBTAIN_ITEM message MossdeepCity_StevensHouse_Text_ObtainedBeldum waitmessage waitfanfare diff --git a/data/maps/MtChimney/map.json b/data/maps/MtChimney/map.json index 7e95b291c8..7083ff7de1 100644 --- a/data/maps/MtChimney/map.json +++ b/data/maps/MtChimney/map.json @@ -2,7 +2,7 @@ "id": "MAP_MT_CHIMNEY", "name": "MtChimney", "layout": "LAYOUT_MT_CHIMNEY", - "music": "MUS_TOZAN", + "music": "MUS_MT_CHIMNEY", "region_map_section": "MAPSEC_MT_CHIMNEY", "requires_flash": false, "weather": "WEATHER_VOLCANIC_ASH", diff --git a/data/maps/MtChimney/scripts.inc b/data/maps/MtChimney/scripts.inc index 42ebce0f9e..c633d93135 100644 --- a/data/maps/MtChimney/scripts.inc +++ b/data/maps/MtChimney/scripts.inc @@ -40,7 +40,7 @@ MtChimney_EventScript_ArchieBusyFighting:: @ 822EE02 MtChimney_EventScript_Maxie:: @ 822EE0B lockall - playbgm MUS_MGM0, 0 + playbgm MUS_ENCOUNTER_MAGMA, 0 msgbox MtChimney_Text_MeteoriteWillActivateVolcano, MSGBOX_DEFAULT applymovement LOCALID_MAXIE, Common_Movement_FacePlayer waitmovement 0 diff --git a/data/maps/MtChimney_CableCarStation/map.json b/data/maps/MtChimney_CableCarStation/map.json index 3926f24447..410bc0c2e6 100644 --- a/data/maps/MtChimney_CableCarStation/map.json +++ b/data/maps/MtChimney_CableCarStation/map.json @@ -2,7 +2,7 @@ "id": "MAP_MT_CHIMNEY_CABLE_CAR_STATION", "name": "MtChimney_CableCarStation", "layout": "LAYOUT_CABLE_CAR_STATION", - "music": "MUS_DOORO_X1", + "music": "MUS_ROUTE110", "region_map_section": "MAPSEC_MT_CHIMNEY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MtPyre_1F/map.json b/data/maps/MtPyre_1F/map.json index 153a14a927..248bd65304 100644 --- a/data/maps/MtPyre_1F/map.json +++ b/data/maps/MtPyre_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_MT_PYRE_1F", "name": "MtPyre_1F", "layout": "LAYOUT_MT_PYRE_1F", - "music": "MUS_M_DUNGON", + "music": "MUS_MT_PYRE", "region_map_section": "MAPSEC_MT_PYRE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MtPyre_2F/map.json b/data/maps/MtPyre_2F/map.json index 69e7b1e187..0668bcf788 100644 --- a/data/maps/MtPyre_2F/map.json +++ b/data/maps/MtPyre_2F/map.json @@ -2,7 +2,7 @@ "id": "MAP_MT_PYRE_2F", "name": "MtPyre_2F", "layout": "LAYOUT_MT_PYRE_2F", - "music": "MUS_M_DUNGON", + "music": "MUS_MT_PYRE", "region_map_section": "MAPSEC_MT_PYRE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MtPyre_3F/map.json b/data/maps/MtPyre_3F/map.json index 08c5945143..35c6c1b04b 100644 --- a/data/maps/MtPyre_3F/map.json +++ b/data/maps/MtPyre_3F/map.json @@ -2,7 +2,7 @@ "id": "MAP_MT_PYRE_3F", "name": "MtPyre_3F", "layout": "LAYOUT_MT_PYRE_3F", - "music": "MUS_M_DUNGON", + "music": "MUS_MT_PYRE", "region_map_section": "MAPSEC_MT_PYRE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MtPyre_4F/map.json b/data/maps/MtPyre_4F/map.json index f9658c6cf9..d326bff72b 100644 --- a/data/maps/MtPyre_4F/map.json +++ b/data/maps/MtPyre_4F/map.json @@ -2,7 +2,7 @@ "id": "MAP_MT_PYRE_4F", "name": "MtPyre_4F", "layout": "LAYOUT_MT_PYRE_4F", - "music": "MUS_M_DUNGON", + "music": "MUS_MT_PYRE", "region_map_section": "MAPSEC_MT_PYRE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MtPyre_5F/map.json b/data/maps/MtPyre_5F/map.json index 93cc0013e2..fb7c3f2f84 100644 --- a/data/maps/MtPyre_5F/map.json +++ b/data/maps/MtPyre_5F/map.json @@ -2,7 +2,7 @@ "id": "MAP_MT_PYRE_5F", "name": "MtPyre_5F", "layout": "LAYOUT_MT_PYRE_5F", - "music": "MUS_M_DUNGON", + "music": "MUS_MT_PYRE", "region_map_section": "MAPSEC_MT_PYRE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MtPyre_6F/map.json b/data/maps/MtPyre_6F/map.json index 1291d6356d..dc2e7f9b00 100644 --- a/data/maps/MtPyre_6F/map.json +++ b/data/maps/MtPyre_6F/map.json @@ -2,7 +2,7 @@ "id": "MAP_MT_PYRE_6F", "name": "MtPyre_6F", "layout": "LAYOUT_MT_PYRE_6F", - "music": "MUS_M_DUNGON", + "music": "MUS_MT_PYRE", "region_map_section": "MAPSEC_MT_PYRE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MtPyre_Exterior/map.json b/data/maps/MtPyre_Exterior/map.json index 67a0dac6ec..58c865305f 100644 --- a/data/maps/MtPyre_Exterior/map.json +++ b/data/maps/MtPyre_Exterior/map.json @@ -2,7 +2,7 @@ "id": "MAP_MT_PYRE_EXTERIOR", "name": "MtPyre_Exterior", "layout": "LAYOUT_MT_PYRE_EXTERIOR", - "music": "MUS_MACHUPI", + "music": "MUS_MT_PYRE_EXTERIOR", "region_map_section": "MAPSEC_MT_PYRE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/MtPyre_Summit/map.json b/data/maps/MtPyre_Summit/map.json index 87a1ad9776..aa3341f8ac 100644 --- a/data/maps/MtPyre_Summit/map.json +++ b/data/maps/MtPyre_Summit/map.json @@ -2,7 +2,7 @@ "id": "MAP_MT_PYRE_SUMMIT", "name": "MtPyre_Summit", "layout": "LAYOUT_MT_PYRE_SUMMIT", - "music": "MUS_MACHUPI", + "music": "MUS_MT_PYRE_EXTERIOR", "region_map_section": "MAPSEC_MT_PYRE", "requires_flash": false, "weather": "WEATHER_FOG_HORIZONTAL", diff --git a/data/maps/MtPyre_Summit/scripts.inc b/data/maps/MtPyre_Summit/scripts.inc index 9daf02f5bf..c2692ff20d 100644 --- a/data/maps/MtPyre_Summit/scripts.inc +++ b/data/maps/MtPyre_Summit/scripts.inc @@ -39,7 +39,7 @@ MtPyre_Summit_EventScript_TeamAquaTrigger2:: @ 8232030 end MtPyre_Summit_EventScript_TeamAquaExits:: @ 823203C - playbgm MUS_AQA_0, 0 + playbgm MUS_ENCOUNTER_AQUA, 0 applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_FaceUp waitmovement 0 applymovement LOCALID_ARCHIE, Common_Movement_WalkInPlaceFastestDown diff --git a/data/maps/NavelRock_B1F/map.json b/data/maps/NavelRock_B1F/map.json index f7d969e21b..8e366fc165 100644 --- a/data/maps/NavelRock_B1F/map.json +++ b/data/maps/NavelRock_B1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_NAVEL_ROCK_B1F", "name": "NavelRock_B1F", "layout": "LAYOUT_NAVEL_ROCK_B1F", - "music": "MUS_RG_NANADUNGEON", + "music": "MUS_RG_SEVII_CAVE", "region_map_section": "MAPSEC_NAVEL_ROCK", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/NavelRock_Bottom/map.json b/data/maps/NavelRock_Bottom/map.json index 1db5649bc3..13d6762006 100644 --- a/data/maps/NavelRock_Bottom/map.json +++ b/data/maps/NavelRock_Bottom/map.json @@ -2,7 +2,7 @@ "id": "MAP_NAVEL_ROCK_BOTTOM", "name": "NavelRock_Bottom", "layout": "LAYOUT_NAVEL_ROCK_BOTTOM", - "music": "MUS_RG_NANADUNGEON", + "music": "MUS_RG_SEVII_CAVE", "region_map_section": "MAPSEC_NAVEL_ROCK", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/NavelRock_Bottom/scripts.inc b/data/maps/NavelRock_Bottom/scripts.inc index f0c73b1f82..9c438fc5cf 100644 --- a/data/maps/NavelRock_Bottom/scripts.inc +++ b/data/maps/NavelRock_Bottom/scripts.inc @@ -35,14 +35,14 @@ NavelRock_Bottom_EventScript_Lugia:: @ 82692A2 faceplayer waitse delay 20 - playse SE_T_AME_E + playse SE_THUNDERSTORM_STOP setvar VAR_0x8004, 0 @ vertical pan setvar VAR_0x8005, 3 @ horizontal pan setvar VAR_0x8006, 4 @ num shakes setvar VAR_0x8007, 2 @ shake delay special ShakeCamera delay 30 - playse SE_T_AME_E + playse SE_THUNDERSTORM_STOP setvar VAR_0x8004, 0 @ vertical pan setvar VAR_0x8005, 3 @ horizontal pan setvar VAR_0x8006, 4 @ num shakes diff --git a/data/maps/NavelRock_Down01/map.json b/data/maps/NavelRock_Down01/map.json index 1c47e450ea..6749969204 100644 --- a/data/maps/NavelRock_Down01/map.json +++ b/data/maps/NavelRock_Down01/map.json @@ -2,7 +2,7 @@ "id": "MAP_NAVEL_ROCK_DOWN01", "name": "NavelRock_Down01", "layout": "LAYOUT_NAVEL_ROCK_LADDER_ROOM1", - "music": "MUS_RG_NANADUNGEON", + "music": "MUS_RG_SEVII_CAVE", "region_map_section": "MAPSEC_NAVEL_ROCK", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/NavelRock_Down02/map.json b/data/maps/NavelRock_Down02/map.json index aaae333c3c..7c75a1b036 100644 --- a/data/maps/NavelRock_Down02/map.json +++ b/data/maps/NavelRock_Down02/map.json @@ -2,7 +2,7 @@ "id": "MAP_NAVEL_ROCK_DOWN02", "name": "NavelRock_Down02", "layout": "LAYOUT_NAVEL_ROCK_LADDER_ROOM2", - "music": "MUS_RG_NANADUNGEON", + "music": "MUS_RG_SEVII_CAVE", "region_map_section": "MAPSEC_NAVEL_ROCK", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/NavelRock_Down03/map.json b/data/maps/NavelRock_Down03/map.json index 60acdc6681..936ebab778 100644 --- a/data/maps/NavelRock_Down03/map.json +++ b/data/maps/NavelRock_Down03/map.json @@ -2,7 +2,7 @@ "id": "MAP_NAVEL_ROCK_DOWN03", "name": "NavelRock_Down03", "layout": "LAYOUT_NAVEL_ROCK_LADDER_ROOM1", - "music": "MUS_RG_NANADUNGEON", + "music": "MUS_RG_SEVII_CAVE", "region_map_section": "MAPSEC_NAVEL_ROCK", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/NavelRock_Down04/map.json b/data/maps/NavelRock_Down04/map.json index edfc400e70..585ee75380 100644 --- a/data/maps/NavelRock_Down04/map.json +++ b/data/maps/NavelRock_Down04/map.json @@ -2,7 +2,7 @@ "id": "MAP_NAVEL_ROCK_DOWN04", "name": "NavelRock_Down04", "layout": "LAYOUT_NAVEL_ROCK_LADDER_ROOM2", - "music": "MUS_RG_NANADUNGEON", + "music": "MUS_RG_SEVII_CAVE", "region_map_section": "MAPSEC_NAVEL_ROCK", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/NavelRock_Down05/map.json b/data/maps/NavelRock_Down05/map.json index f4d31fdff0..1099d9caab 100644 --- a/data/maps/NavelRock_Down05/map.json +++ b/data/maps/NavelRock_Down05/map.json @@ -2,7 +2,7 @@ "id": "MAP_NAVEL_ROCK_DOWN05", "name": "NavelRock_Down05", "layout": "LAYOUT_NAVEL_ROCK_LADDER_ROOM1", - "music": "MUS_RG_NANADUNGEON", + "music": "MUS_RG_SEVII_CAVE", "region_map_section": "MAPSEC_NAVEL_ROCK", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/NavelRock_Down06/map.json b/data/maps/NavelRock_Down06/map.json index ef20800f3a..7fb26f293a 100644 --- a/data/maps/NavelRock_Down06/map.json +++ b/data/maps/NavelRock_Down06/map.json @@ -2,7 +2,7 @@ "id": "MAP_NAVEL_ROCK_DOWN06", "name": "NavelRock_Down06", "layout": "LAYOUT_NAVEL_ROCK_LADDER_ROOM2", - "music": "MUS_RG_NANADUNGEON", + "music": "MUS_RG_SEVII_CAVE", "region_map_section": "MAPSEC_NAVEL_ROCK", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/NavelRock_Down07/map.json b/data/maps/NavelRock_Down07/map.json index 0019d726f2..36896f3068 100644 --- a/data/maps/NavelRock_Down07/map.json +++ b/data/maps/NavelRock_Down07/map.json @@ -2,7 +2,7 @@ "id": "MAP_NAVEL_ROCK_DOWN07", "name": "NavelRock_Down07", "layout": "LAYOUT_NAVEL_ROCK_LADDER_ROOM1", - "music": "MUS_RG_NANADUNGEON", + "music": "MUS_RG_SEVII_CAVE", "region_map_section": "MAPSEC_NAVEL_ROCK", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/NavelRock_Down08/map.json b/data/maps/NavelRock_Down08/map.json index 17d50c0ede..f9945f49f8 100644 --- a/data/maps/NavelRock_Down08/map.json +++ b/data/maps/NavelRock_Down08/map.json @@ -2,7 +2,7 @@ "id": "MAP_NAVEL_ROCK_DOWN08", "name": "NavelRock_Down08", "layout": "LAYOUT_NAVEL_ROCK_LADDER_ROOM2", - "music": "MUS_RG_NANADUNGEON", + "music": "MUS_RG_SEVII_CAVE", "region_map_section": "MAPSEC_NAVEL_ROCK", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/NavelRock_Down09/map.json b/data/maps/NavelRock_Down09/map.json index 49713ffc3f..38b2fdae82 100644 --- a/data/maps/NavelRock_Down09/map.json +++ b/data/maps/NavelRock_Down09/map.json @@ -2,7 +2,7 @@ "id": "MAP_NAVEL_ROCK_DOWN09", "name": "NavelRock_Down09", "layout": "LAYOUT_NAVEL_ROCK_LADDER_ROOM1", - "music": "MUS_RG_NANADUNGEON", + "music": "MUS_RG_SEVII_CAVE", "region_map_section": "MAPSEC_NAVEL_ROCK", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/NavelRock_Down10/map.json b/data/maps/NavelRock_Down10/map.json index d736db5d9d..7ea3bfa3bf 100644 --- a/data/maps/NavelRock_Down10/map.json +++ b/data/maps/NavelRock_Down10/map.json @@ -2,7 +2,7 @@ "id": "MAP_NAVEL_ROCK_DOWN10", "name": "NavelRock_Down10", "layout": "LAYOUT_NAVEL_ROCK_LADDER_ROOM2", - "music": "MUS_RG_NANADUNGEON", + "music": "MUS_RG_SEVII_CAVE", "region_map_section": "MAPSEC_NAVEL_ROCK", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/NavelRock_Down11/map.json b/data/maps/NavelRock_Down11/map.json index ac45da8a20..da05c7e6b6 100644 --- a/data/maps/NavelRock_Down11/map.json +++ b/data/maps/NavelRock_Down11/map.json @@ -2,7 +2,7 @@ "id": "MAP_NAVEL_ROCK_DOWN11", "name": "NavelRock_Down11", "layout": "LAYOUT_NAVEL_ROCK_LADDER_ROOM1", - "music": "MUS_RG_NANADUNGEON", + "music": "MUS_RG_SEVII_CAVE", "region_map_section": "MAPSEC_NAVEL_ROCK", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/NavelRock_Entrance/map.json b/data/maps/NavelRock_Entrance/map.json index 66d462f5fd..ab14b2da12 100644 --- a/data/maps/NavelRock_Entrance/map.json +++ b/data/maps/NavelRock_Entrance/map.json @@ -2,7 +2,7 @@ "id": "MAP_NAVEL_ROCK_ENTRANCE", "name": "NavelRock_Entrance", "layout": "LAYOUT_NAVEL_ROCK_ENTRANCE", - "music": "MUS_RG_NANADUNGEON", + "music": "MUS_RG_SEVII_CAVE", "region_map_section": "MAPSEC_NAVEL_ROCK", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/NavelRock_Exterior/map.json b/data/maps/NavelRock_Exterior/map.json index 8527705c16..13927b6b6f 100644 --- a/data/maps/NavelRock_Exterior/map.json +++ b/data/maps/NavelRock_Exterior/map.json @@ -2,7 +2,7 @@ "id": "MAP_NAVEL_ROCK_EXTERIOR", "name": "NavelRock_Exterior", "layout": "LAYOUT_NAVEL_ROCK_EXTERIOR", - "music": "MUS_RG_NANASHIMA", + "music": "MUS_RG_SEVII_ROUTE", "region_map_section": "MAPSEC_NAVEL_ROCK", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/NavelRock_Fork/map.json b/data/maps/NavelRock_Fork/map.json index a5301bd6b5..a8929208f2 100644 --- a/data/maps/NavelRock_Fork/map.json +++ b/data/maps/NavelRock_Fork/map.json @@ -2,7 +2,7 @@ "id": "MAP_NAVEL_ROCK_FORK", "name": "NavelRock_Fork", "layout": "LAYOUT_NAVEL_ROCK_FORK", - "music": "MUS_RG_NANADUNGEON", + "music": "MUS_RG_SEVII_CAVE", "region_map_section": "MAPSEC_NAVEL_ROCK", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/NavelRock_Harbor/map.json b/data/maps/NavelRock_Harbor/map.json index 62308d149f..34e1391086 100644 --- a/data/maps/NavelRock_Harbor/map.json +++ b/data/maps/NavelRock_Harbor/map.json @@ -2,7 +2,7 @@ "id": "MAP_NAVEL_ROCK_HARBOR", "name": "NavelRock_Harbor", "layout": "LAYOUT_ISLAND_HARBOR", - "music": "MUS_RG_NANASHIMA", + "music": "MUS_RG_SEVII_ROUTE", "region_map_section": "MAPSEC_NAVEL_ROCK", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/NavelRock_Top/map.json b/data/maps/NavelRock_Top/map.json index 8669e746fb..c062027264 100644 --- a/data/maps/NavelRock_Top/map.json +++ b/data/maps/NavelRock_Top/map.json @@ -2,7 +2,7 @@ "id": "MAP_NAVEL_ROCK_TOP", "name": "NavelRock_Top", "layout": "LAYOUT_NAVEL_ROCK_TOP", - "music": "MUS_RG_NANADUNGEON", + "music": "MUS_RG_SEVII_CAVE", "region_map_section": "MAPSEC_NAVEL_ROCK", "requires_flash": false, "weather": "WEATHER_SHADE", diff --git a/data/maps/NavelRock_Up1/map.json b/data/maps/NavelRock_Up1/map.json index 01dfcaffa9..ee744ff4bc 100644 --- a/data/maps/NavelRock_Up1/map.json +++ b/data/maps/NavelRock_Up1/map.json @@ -2,7 +2,7 @@ "id": "MAP_NAVEL_ROCK_UP1", "name": "NavelRock_Up1", "layout": "LAYOUT_NAVEL_ROCK_LADDER_ROOM1", - "music": "MUS_RG_NANADUNGEON", + "music": "MUS_RG_SEVII_CAVE", "region_map_section": "MAPSEC_NAVEL_ROCK", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/NavelRock_Up2/map.json b/data/maps/NavelRock_Up2/map.json index 0233edb782..aa24703294 100644 --- a/data/maps/NavelRock_Up2/map.json +++ b/data/maps/NavelRock_Up2/map.json @@ -2,7 +2,7 @@ "id": "MAP_NAVEL_ROCK_UP2", "name": "NavelRock_Up2", "layout": "LAYOUT_NAVEL_ROCK_LADDER_ROOM2", - "music": "MUS_RG_NANADUNGEON", + "music": "MUS_RG_SEVII_CAVE", "region_map_section": "MAPSEC_NAVEL_ROCK", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/NavelRock_Up3/map.json b/data/maps/NavelRock_Up3/map.json index c12438fc94..2629eafb1e 100644 --- a/data/maps/NavelRock_Up3/map.json +++ b/data/maps/NavelRock_Up3/map.json @@ -2,7 +2,7 @@ "id": "MAP_NAVEL_ROCK_UP3", "name": "NavelRock_Up3", "layout": "LAYOUT_NAVEL_ROCK_LADDER_ROOM1", - "music": "MUS_RG_NANADUNGEON", + "music": "MUS_RG_SEVII_CAVE", "region_map_section": "MAPSEC_NAVEL_ROCK", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/NavelRock_Up4/map.json b/data/maps/NavelRock_Up4/map.json index 4cdcba842c..4060a52a7d 100644 --- a/data/maps/NavelRock_Up4/map.json +++ b/data/maps/NavelRock_Up4/map.json @@ -2,7 +2,7 @@ "id": "MAP_NAVEL_ROCK_UP4", "name": "NavelRock_Up4", "layout": "LAYOUT_NAVEL_ROCK_LADDER_ROOM2", - "music": "MUS_RG_NANADUNGEON", + "music": "MUS_RG_SEVII_CAVE", "region_map_section": "MAPSEC_NAVEL_ROCK", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/NewMauville_Entrance/map.json b/data/maps/NewMauville_Entrance/map.json index 71650200ba..d66c5b13b2 100644 --- a/data/maps/NewMauville_Entrance/map.json +++ b/data/maps/NewMauville_Entrance/map.json @@ -2,7 +2,7 @@ "id": "MAP_NEW_MAUVILLE_ENTRANCE", "name": "NewMauville_Entrance", "layout": "LAYOUT_NEW_MAUVILLE_ENTRANCE", - "music": "MUS_M_DUNGON", + "music": "MUS_MT_PYRE", "region_map_section": "MAPSEC_NEW_MAUVILLE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/NewMauville_Entrance/scripts.inc b/data/maps/NewMauville_Entrance/scripts.inc index 6d7d731de4..d398a03ead 100644 --- a/data/maps/NewMauville_Entrance/scripts.inc +++ b/data/maps/NewMauville_Entrance/scripts.inc @@ -40,7 +40,7 @@ NewMauville_Entrance_EventScript_Door:: @ 82372FF setmetatile 4, 1, METATILE_Facility_NewMauvilleDoor_Open_Tile4, 0 setmetatile 5, 1, METATILE_Facility_NewMauvilleDoor_Open_Tile5, 1 special DrawWholeMapView - playse SE_BAN + playse SE_BANG setvar VAR_NEW_MAUVILLE_STATE, 1 releaseall end diff --git a/data/maps/NewMauville_Inside/map.json b/data/maps/NewMauville_Inside/map.json index 16127d6994..eea1190685 100644 --- a/data/maps/NewMauville_Inside/map.json +++ b/data/maps/NewMauville_Inside/map.json @@ -2,7 +2,7 @@ "id": "MAP_NEW_MAUVILLE_INSIDE", "name": "NewMauville_Inside", "layout": "LAYOUT_NEW_MAUVILLE_INSIDE", - "music": "MUS_M_DUNGON", + "music": "MUS_MT_PYRE", "region_map_section": "MAPSEC_NEW_MAUVILLE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/OldaleTown/map.json b/data/maps/OldaleTown/map.json index b16fb4044a..ee6101ff6c 100644 --- a/data/maps/OldaleTown/map.json +++ b/data/maps/OldaleTown/map.json @@ -2,7 +2,7 @@ "id": "MAP_OLDALE_TOWN", "name": "OldaleTown", "layout": "LAYOUT_OLDALE_TOWN", - "music": "MUS_MACHI_S4", + "music": "MUS_OLDALE", "region_map_section": "MAPSEC_OLDALE_TOWN", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/OldaleTown/scripts.inc b/data/maps/OldaleTown/scripts.inc index aeb0c3dbd4..f99c65d2c0 100644 --- a/data/maps/OldaleTown/scripts.inc +++ b/data/maps/OldaleTown/scripts.inc @@ -43,7 +43,7 @@ OldaleTown_EventScript_MartEmployee:: @ 81E8EFC goto_if_set FLAG_RECEIVED_POTION_OLDALE, OldaleTown_EventScript_ExplainPotion goto_if_set FLAG_TEMP_1, OldaleTown_EventScript_ExplainPotion setflag FLAG_TEMP_1 - playbgm MUS_TSURETEK, 0 + playbgm MUS_FOLLOW_ME, 0 msgbox OldaleTown_Text_IWorkAtPokemonMart, MSGBOX_DEFAULT closemessage switch VAR_FACING diff --git a/data/maps/OldaleTown_House1/map.json b/data/maps/OldaleTown_House1/map.json index 9702949262..cd64357dc8 100644 --- a/data/maps/OldaleTown_House1/map.json +++ b/data/maps/OldaleTown_House1/map.json @@ -2,7 +2,7 @@ "id": "MAP_OLDALE_TOWN_HOUSE1", "name": "OldaleTown_House1", "layout": "LAYOUT_HOUSE1", - "music": "MUS_MACHI_S4", + "music": "MUS_OLDALE", "region_map_section": "MAPSEC_OLDALE_TOWN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/OldaleTown_House2/map.json b/data/maps/OldaleTown_House2/map.json index 52c775f15b..2347fc29aa 100644 --- a/data/maps/OldaleTown_House2/map.json +++ b/data/maps/OldaleTown_House2/map.json @@ -2,7 +2,7 @@ "id": "MAP_OLDALE_TOWN_HOUSE2", "name": "OldaleTown_House2", "layout": "LAYOUT_HOUSE2", - "music": "MUS_MACHI_S4", + "music": "MUS_OLDALE", "region_map_section": "MAPSEC_OLDALE_TOWN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/OldaleTown_Mart/map.json b/data/maps/OldaleTown_Mart/map.json index cba6b012c1..6922235418 100644 --- a/data/maps/OldaleTown_Mart/map.json +++ b/data/maps/OldaleTown_Mart/map.json @@ -2,7 +2,7 @@ "id": "MAP_OLDALE_TOWN_MART", "name": "OldaleTown_Mart", "layout": "LAYOUT_MART", - "music": "MUS_FRIENDLY", + "music": "MUS_POKE_MART", "region_map_section": "MAPSEC_OLDALE_TOWN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/OldaleTown_PokemonCenter_1F/map.json b/data/maps/OldaleTown_PokemonCenter_1F/map.json index 1c979098e3..46ee3f9bd1 100644 --- a/data/maps/OldaleTown_PokemonCenter_1F/map.json +++ b/data/maps/OldaleTown_PokemonCenter_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_OLDALE_TOWN_POKEMON_CENTER_1F", "name": "OldaleTown_PokemonCenter_1F", "layout": "LAYOUT_POKEMON_CENTER_1F", - "music": "MUS_POKECEN", + "music": "MUS_POKE_CENTER", "region_map_section": "MAPSEC_OLDALE_TOWN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/OldaleTown_PokemonCenter_2F/map.json b/data/maps/OldaleTown_PokemonCenter_2F/map.json index de1b0a7715..fdeb28c069 100644 --- a/data/maps/OldaleTown_PokemonCenter_2F/map.json +++ b/data/maps/OldaleTown_PokemonCenter_2F/map.json @@ -2,7 +2,7 @@ "id": "MAP_OLDALE_TOWN_POKEMON_CENTER_2F", "name": "OldaleTown_PokemonCenter_2F", "layout": "LAYOUT_POKEMON_CENTER_2F", - "music": "MUS_POKECEN", + "music": "MUS_POKE_CENTER", "region_map_section": "MAPSEC_OLDALE_TOWN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/PacifidlogTown/map.json b/data/maps/PacifidlogTown/map.json index fdf43d1ace..51fc772a92 100644 --- a/data/maps/PacifidlogTown/map.json +++ b/data/maps/PacifidlogTown/map.json @@ -2,7 +2,7 @@ "id": "MAP_PACIFIDLOG_TOWN", "name": "PacifidlogTown", "layout": "LAYOUT_PACIFIDLOG_TOWN", - "music": "MUS_MINAMO", + "music": "MUS_LILYCOVE", "region_map_section": "MAPSEC_PACIFIDLOG_TOWN", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/PacifidlogTown_House1/map.json b/data/maps/PacifidlogTown_House1/map.json index b6db1c9237..a494819a5d 100644 --- a/data/maps/PacifidlogTown_House1/map.json +++ b/data/maps/PacifidlogTown_House1/map.json @@ -2,7 +2,7 @@ "id": "MAP_PACIFIDLOG_TOWN_HOUSE1", "name": "PacifidlogTown_House1", "layout": "LAYOUT_PACIFIDLOG_TOWN_HOUSE1", - "music": "MUS_MINAMO", + "music": "MUS_LILYCOVE", "region_map_section": "MAPSEC_PACIFIDLOG_TOWN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/PacifidlogTown_House2/map.json b/data/maps/PacifidlogTown_House2/map.json index ceeadd9a63..027442b4ba 100644 --- a/data/maps/PacifidlogTown_House2/map.json +++ b/data/maps/PacifidlogTown_House2/map.json @@ -2,7 +2,7 @@ "id": "MAP_PACIFIDLOG_TOWN_HOUSE2", "name": "PacifidlogTown_House2", "layout": "LAYOUT_PACIFIDLOG_TOWN_HOUSE2", - "music": "MUS_MINAMO", + "music": "MUS_LILYCOVE", "region_map_section": "MAPSEC_PACIFIDLOG_TOWN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/PacifidlogTown_House3/map.json b/data/maps/PacifidlogTown_House3/map.json index 34d9ddad27..17f99cea13 100644 --- a/data/maps/PacifidlogTown_House3/map.json +++ b/data/maps/PacifidlogTown_House3/map.json @@ -2,7 +2,7 @@ "id": "MAP_PACIFIDLOG_TOWN_HOUSE3", "name": "PacifidlogTown_House3", "layout": "LAYOUT_PACIFIDLOG_TOWN_HOUSE1", - "music": "MUS_MINAMO", + "music": "MUS_LILYCOVE", "region_map_section": "MAPSEC_PACIFIDLOG_TOWN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/PacifidlogTown_House4/map.json b/data/maps/PacifidlogTown_House4/map.json index cd8dfc52ff..4c4cdb15b1 100644 --- a/data/maps/PacifidlogTown_House4/map.json +++ b/data/maps/PacifidlogTown_House4/map.json @@ -2,7 +2,7 @@ "id": "MAP_PACIFIDLOG_TOWN_HOUSE4", "name": "PacifidlogTown_House4", "layout": "LAYOUT_PACIFIDLOG_TOWN_HOUSE2", - "music": "MUS_MINAMO", + "music": "MUS_LILYCOVE", "region_map_section": "MAPSEC_PACIFIDLOG_TOWN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/PacifidlogTown_House5/map.json b/data/maps/PacifidlogTown_House5/map.json index e1d6f42892..ac93845024 100644 --- a/data/maps/PacifidlogTown_House5/map.json +++ b/data/maps/PacifidlogTown_House5/map.json @@ -2,7 +2,7 @@ "id": "MAP_PACIFIDLOG_TOWN_HOUSE5", "name": "PacifidlogTown_House5", "layout": "LAYOUT_PACIFIDLOG_TOWN_HOUSE1", - "music": "MUS_MINAMO", + "music": "MUS_LILYCOVE", "region_map_section": "MAPSEC_PACIFIDLOG_TOWN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/PacifidlogTown_PokemonCenter_1F/map.json b/data/maps/PacifidlogTown_PokemonCenter_1F/map.json index 20d00fecbb..50baa2b7c1 100644 --- a/data/maps/PacifidlogTown_PokemonCenter_1F/map.json +++ b/data/maps/PacifidlogTown_PokemonCenter_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_PACIFIDLOG_TOWN_POKEMON_CENTER_1F", "name": "PacifidlogTown_PokemonCenter_1F", "layout": "LAYOUT_POKEMON_CENTER_1F", - "music": "MUS_POKECEN", + "music": "MUS_POKE_CENTER", "region_map_section": "MAPSEC_PACIFIDLOG_TOWN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/PacifidlogTown_PokemonCenter_2F/map.json b/data/maps/PacifidlogTown_PokemonCenter_2F/map.json index 97b48ef2e6..1837ab55cb 100644 --- a/data/maps/PacifidlogTown_PokemonCenter_2F/map.json +++ b/data/maps/PacifidlogTown_PokemonCenter_2F/map.json @@ -2,7 +2,7 @@ "id": "MAP_PACIFIDLOG_TOWN_POKEMON_CENTER_2F", "name": "PacifidlogTown_PokemonCenter_2F", "layout": "LAYOUT_POKEMON_CENTER_2F", - "music": "MUS_POKECEN", + "music": "MUS_POKE_CENTER", "region_map_section": "MAPSEC_PACIFIDLOG_TOWN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/PetalburgCity/map.json b/data/maps/PetalburgCity/map.json index faec3eea1f..d9587cdbb9 100644 --- a/data/maps/PetalburgCity/map.json +++ b/data/maps/PetalburgCity/map.json @@ -2,7 +2,7 @@ "id": "MAP_PETALBURG_CITY", "name": "PetalburgCity", "layout": "LAYOUT_PETALBURG_CITY", - "music": "MUS_MACHI_S2", + "music": "MUS_PETALBURG", "region_map_section": "MAPSEC_PETALBURG_CITY", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/PetalburgCity/scripts.inc b/data/maps/PetalburgCity/scripts.inc index 558eac64e8..ab77e18e0b 100644 --- a/data/maps/PetalburgCity/scripts.inc +++ b/data/maps/PetalburgCity/scripts.inc @@ -27,7 +27,7 @@ PetalburgCity_EventScript_MoveGymBoyToWestEntrance:: @ 81DC307 PetalburgCity_EventScript_DisableMapNameAndMusic:: @ 81DC30F setflag FLAG_HIDE_MAP_NAME_POPUP - savebgm MUS_TSURETEK + savebgm MUS_FOLLOW_ME return PetalburgCity_EventScript_SetGymDoorsUnlocked:: @ 81DC316 @@ -271,7 +271,7 @@ PetalburgCity_EventScript_ShowGymToPlayer3:: @ 81DC4BE PetalburgCity_EventScript_ShowGymToPlayer:: @ 81DC4CA applymovement LOCALID_GYM_BOY, Common_Movement_FacePlayer waitmovement 0 - playbgm MUS_TSURETEK, 0 + playbgm MUS_FOLLOW_ME, 0 playse SE_PIN applymovement LOCALID_GYM_BOY, Common_Movement_ExclamationMark waitmovement 0 diff --git a/data/maps/PetalburgCity_Gym/map.json b/data/maps/PetalburgCity_Gym/map.json index f38463a19c..307708fc19 100644 --- a/data/maps/PetalburgCity_Gym/map.json +++ b/data/maps/PetalburgCity_Gym/map.json @@ -2,7 +2,7 @@ "id": "MAP_PETALBURG_CITY_GYM", "name": "PetalburgCity_Gym", "layout": "LAYOUT_PETALBURG_CITY_GYM", - "music": "MUS_GIM", + "music": "MUS_GYM", "region_map_section": "MAPSEC_PETALBURG_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/PetalburgCity_Gym/scripts.inc b/data/maps/PetalburgCity_Gym/scripts.inc index c8e14a13fd..2bdd5320fb 100644 --- a/data/maps/PetalburgCity_Gym/scripts.inc +++ b/data/maps/PetalburgCity_Gym/scripts.inc @@ -91,7 +91,7 @@ PetalburgCity_Gym_EventScript_ReturnFromWallyTutorial:: @ 82049A4 applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFastestDown applymovement LOCALID_WALLY, PetalburgCity_Gym_Movement_WallyExitGym waitmovement 0 - playse SE_KAIDAN + playse SE_EXIT removeobject LOCALID_WALLY setflag FLAG_HIDE_PETALBURG_CITY_WALLY delay 30 @@ -203,7 +203,7 @@ PetalburgCity_Gym_EventScript_BeginWallyTutorial:: @ 8204AAC msgbox PetalburgCity_Gym_Text_WouldYouReallyComeWithMe, MSGBOX_DEFAULT closemessage setflag FLAG_DONT_TRANSITION_MUSIC - playbgm MUS_TSURETEK, 0 + playbgm MUS_FOLLOW_ME, 0 compare VAR_0x8008, 0 call_if_eq PetalburgCity_Gym_EventScript_ExitGymWithWallySouth compare VAR_0x8008, 1 @@ -487,7 +487,7 @@ PetalburgCity_Gym_EventScript_WallysDadArrives:: @ 8204F13 msgbox PetalburgCity_Gym_Text_LetMeBorrowPlayer, MSGBOX_DEFAULT closemessage setflag FLAG_DONT_TRANSITION_MUSIC - playbgm MUS_TSURETEK, 0 + playbgm MUS_FOLLOW_ME, 0 compare VAR_0x8008, 1 call_if_eq PetalburgCity_Gym_EventScript_ExitGymWithWallysDadNorth compare VAR_0x8008, 2 diff --git a/data/maps/PetalburgCity_House1/map.json b/data/maps/PetalburgCity_House1/map.json index 46121f67c6..54bd3303f0 100644 --- a/data/maps/PetalburgCity_House1/map.json +++ b/data/maps/PetalburgCity_House1/map.json @@ -2,7 +2,7 @@ "id": "MAP_PETALBURG_CITY_HOUSE1", "name": "PetalburgCity_House1", "layout": "LAYOUT_HOUSE1", - "music": "MUS_MACHI_S2", + "music": "MUS_PETALBURG", "region_map_section": "MAPSEC_PETALBURG_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/PetalburgCity_House2/map.json b/data/maps/PetalburgCity_House2/map.json index 8f40ec3e4e..4a5436b97c 100644 --- a/data/maps/PetalburgCity_House2/map.json +++ b/data/maps/PetalburgCity_House2/map.json @@ -2,7 +2,7 @@ "id": "MAP_PETALBURG_CITY_HOUSE2", "name": "PetalburgCity_House2", "layout": "LAYOUT_HOUSE_WITH_BED", - "music": "MUS_MACHI_S2", + "music": "MUS_PETALBURG", "region_map_section": "MAPSEC_PETALBURG_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/PetalburgCity_Mart/map.json b/data/maps/PetalburgCity_Mart/map.json index a263e30366..a55e27293c 100644 --- a/data/maps/PetalburgCity_Mart/map.json +++ b/data/maps/PetalburgCity_Mart/map.json @@ -2,7 +2,7 @@ "id": "MAP_PETALBURG_CITY_MART", "name": "PetalburgCity_Mart", "layout": "LAYOUT_MART", - "music": "MUS_FRIENDLY", + "music": "MUS_POKE_MART", "region_map_section": "MAPSEC_PETALBURG_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/PetalburgCity_PokemonCenter_1F/map.json b/data/maps/PetalburgCity_PokemonCenter_1F/map.json index 29ba086f27..1fd6e972b9 100644 --- a/data/maps/PetalburgCity_PokemonCenter_1F/map.json +++ b/data/maps/PetalburgCity_PokemonCenter_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_PETALBURG_CITY_POKEMON_CENTER_1F", "name": "PetalburgCity_PokemonCenter_1F", "layout": "LAYOUT_POKEMON_CENTER_1F", - "music": "MUS_POKECEN", + "music": "MUS_POKE_CENTER", "region_map_section": "MAPSEC_PETALBURG_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/PetalburgCity_PokemonCenter_2F/map.json b/data/maps/PetalburgCity_PokemonCenter_2F/map.json index 2fd4bf21a1..8eb89d2083 100644 --- a/data/maps/PetalburgCity_PokemonCenter_2F/map.json +++ b/data/maps/PetalburgCity_PokemonCenter_2F/map.json @@ -2,7 +2,7 @@ "id": "MAP_PETALBURG_CITY_POKEMON_CENTER_2F", "name": "PetalburgCity_PokemonCenter_2F", "layout": "LAYOUT_POKEMON_CENTER_2F", - "music": "MUS_POKECEN", + "music": "MUS_POKE_CENTER", "region_map_section": "MAPSEC_PETALBURG_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/PetalburgCity_WallysHouse/map.json b/data/maps/PetalburgCity_WallysHouse/map.json index c0efbeb67a..0b8007a918 100644 --- a/data/maps/PetalburgCity_WallysHouse/map.json +++ b/data/maps/PetalburgCity_WallysHouse/map.json @@ -2,7 +2,7 @@ "id": "MAP_PETALBURG_CITY_WALLYS_HOUSE", "name": "PetalburgCity_WallysHouse", "layout": "LAYOUT_HOUSE2", - "music": "MUS_MACHI_S2", + "music": "MUS_PETALBURG", "region_map_section": "MAPSEC_PETALBURG_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/PetalburgWoods/map.json b/data/maps/PetalburgWoods/map.json index cc9004737f..fa97b5dd16 100644 --- a/data/maps/PetalburgWoods/map.json +++ b/data/maps/PetalburgWoods/map.json @@ -2,7 +2,7 @@ "id": "MAP_PETALBURG_WOODS", "name": "PetalburgWoods", "layout": "LAYOUT_PETALBURG_WOODS", - "music": "MUS_DAN01", + "music": "MUS_PETALBURG_WOODS", "region_map_section": "MAPSEC_PETALBURG_WOODS", "requires_flash": false, "weather": "WEATHER_SHADE", diff --git a/data/maps/PetalburgWoods/scripts.inc b/data/maps/PetalburgWoods/scripts.inc index 292c2dfacf..dbdb66b0b8 100644 --- a/data/maps/PetalburgWoods/scripts.inc +++ b/data/maps/PetalburgWoods/scripts.inc @@ -11,7 +11,7 @@ PetalburgWoods_EventScript_DevonResearcherLeft:: @ 822DFD7 waitmovement 0 msgbox PetalburgWoods_Text_HaveYouSeenShroomish, MSGBOX_DEFAULT closemessage - playbgm MUS_AQA_0, 0 + playbgm MUS_ENCOUNTER_AQUA, 0 applymovement LOCALID_GRUNT, PetalburgWoods_Movement_AquaEntrance waitmovement 0 msgbox PetalburgWoods_Text_IWasGoingToAmbushYou, MSGBOX_DEFAULT @@ -48,7 +48,7 @@ PetalburgWoods_EventScript_DevonResearcherRight:: @ 822E079 waitmovement 0 msgbox PetalburgWoods_Text_HaveYouSeenShroomish, MSGBOX_DEFAULT closemessage - playbgm MUS_AQA_0, 0 + playbgm MUS_ENCOUNTER_AQUA, 0 applymovement LOCALID_GRUNT, PetalburgWoods_Movement_AquaEntrance waitmovement 0 msgbox PetalburgWoods_Text_IWasGoingToAmbushYou, MSGBOX_DEFAULT diff --git a/data/maps/RecordCorner/map.json b/data/maps/RecordCorner/map.json index f3466eea81..083f444452 100644 --- a/data/maps/RecordCorner/map.json +++ b/data/maps/RecordCorner/map.json @@ -2,7 +2,7 @@ "id": "MAP_RECORD_CORNER", "name": "RecordCorner", "layout": "LAYOUT_RECORD_CORNER", - "music": "MUS_RAINBOW", + "music": "MUS_EVER_GRANDE", "region_map_section": "MAPSEC_DYNAMIC", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/Route101/map.json b/data/maps/Route101/map.json index e08c4fe5a1..34dc92841c 100644 --- a/data/maps/Route101/map.json +++ b/data/maps/Route101/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE101", "name": "Route101", "layout": "LAYOUT_ROUTE101", - "music": "MUS_DOORO1", + "music": "MUS_ROUTE101", "region_map_section": "MAPSEC_ROUTE_101", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/Route101/scripts.inc b/data/maps/Route101/scripts.inc index 647c9ee16b..66ce4abc8f 100644 --- a/data/maps/Route101/scripts.inc +++ b/data/maps/Route101/scripts.inc @@ -21,7 +21,7 @@ Route101_EventScript_HideMapNamePopup:: @ 81EBCD5 Route101_EventScript_StartBirchRescue:: @ 81EBCDE lockall - playbgm MUS_EVENT0, 1 + playbgm MUS_HELP, 1 msgbox Route101_Text_HelpMe, MSGBOX_DEFAULT closemessage setobjectxy LOCALID_BIRCH, 0, 15 diff --git a/data/maps/Route102/map.json b/data/maps/Route102/map.json index 43e327d015..fc9adee3bf 100644 --- a/data/maps/Route102/map.json +++ b/data/maps/Route102/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE102", "name": "Route102", "layout": "LAYOUT_ROUTE102", - "music": "MUS_DOORO1", + "music": "MUS_ROUTE101", "region_map_section": "MAPSEC_ROUTE_102", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/Route103/map.json b/data/maps/Route103/map.json index 599d0447f1..4b91f913b8 100644 --- a/data/maps/Route103/map.json +++ b/data/maps/Route103/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE103", "name": "Route103", "layout": "LAYOUT_ROUTE103", - "music": "MUS_DOORO1", + "music": "MUS_ROUTE101", "region_map_section": "MAPSEC_ROUTE_103", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/Route103/scripts.inc b/data/maps/Route103/scripts.inc index df8c3b628e..965b5ff5cd 100644 --- a/data/maps/Route103/scripts.inc +++ b/data/maps/Route103/scripts.inc @@ -31,7 +31,7 @@ Route103_EventScript_Rival:: @ 81EC3C1 Route103_EventScript_RivalMay:: @ 81EC3DA msgbox Route103_Text_MayRoute103Pokemon, MSGBOX_DEFAULT closemessage - playbgm MUS_GIRL_SUP, 1 + playbgm MUS_ENCOUNTER_MAY, 1 applymovement LOCALID_RIVAL, Common_Movement_FacePlayer waitmovement 0 applymovement LOCALID_RIVAL, Common_Movement_ExclamationMark @@ -48,7 +48,7 @@ Route103_EventScript_RivalMay:: @ 81EC3DA Route103_EventScript_RivalBrendan:: @ 81EC434 msgbox Route103_Text_BrendanRoute103Pokemon, MSGBOX_DEFAULT closemessage - playbgm MUS_BOY_SUP, 1 + playbgm MUS_ENCOUNTER_BRENDAN, 1 applymovement LOCALID_RIVAL, Common_Movement_FacePlayer waitmovement 0 applymovement LOCALID_RIVAL, Common_Movement_ExclamationMark @@ -115,7 +115,7 @@ Route103_EventScript_RivalExitFacingNorth:: @ 81EC53D applymovement OBJ_EVENT_ID_PLAYER, Route103_Movement_WatchRivalExitFacingNorth applymovement LOCALID_RIVAL, Route103_Movement_RivalExitFacingNorth1 waitmovement 0 - playse SE_DANSA + playse SE_LEDGE applymovement LOCALID_RIVAL, Route103_EventScript_RivalExitFacingNorth2 waitmovement 0 goto Route103_EventScript_RivalEnd @@ -125,7 +125,7 @@ Route103_EventScript_RivalExitFacingEastOrWest:: @ 81EC561 applymovement OBJ_EVENT_ID_PLAYER, Route103_Movement_WatchRivalExitFacingEastOrWest applymovement LOCALID_RIVAL, Route103_Movement_RivalExit1 waitmovement 0 - playse SE_DANSA + playse SE_LEDGE applymovement LOCALID_RIVAL, Route103_Movement_RivalExit2 waitmovement 0 goto Route103_EventScript_RivalEnd @@ -134,7 +134,7 @@ Route103_EventScript_RivalExitFacingEastOrWest:: @ 81EC561 Route103_EventScript_RivalExitFacingSouth:: @ 81EC585 applymovement LOCALID_RIVAL, Route103_Movement_RivalExit1 waitmovement 0 - playse SE_DANSA + playse SE_LEDGE applymovement LOCALID_RIVAL, Route103_Movement_RivalExit2 waitmovement 0 goto Route103_EventScript_RivalEnd diff --git a/data/maps/Route104/map.json b/data/maps/Route104/map.json index 99b8ffeb39..69e5faf27b 100644 --- a/data/maps/Route104/map.json +++ b/data/maps/Route104/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE104", "name": "Route104", "layout": "LAYOUT_ROUTE104", - "music": "MUS_NEXTROAD", + "music": "MUS_ROUTE104", "region_map_section": "MAPSEC_ROUTE_104", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/Route104/scripts.inc b/data/maps/Route104/scripts.inc index ff90038871..d1faca53a7 100644 --- a/data/maps/Route104/scripts.inc +++ b/data/maps/Route104/scripts.inc @@ -84,11 +84,11 @@ Route104_EventScript_PlayRivalMusic:: @ 81ECD11 return Route104_EventScript_PlayMayMusic:: @ 81ECD29 - playbgm MUS_GIRL_SUP, 1 + playbgm MUS_ENCOUNTER_MAY, 1 return Route104_EventScript_PlayBrendanMusic:: @ 81ECD2E - playbgm MUS_BOY_SUP, 1 + playbgm MUS_ENCOUNTER_BRENDAN, 1 return Route104_EventScript_RivalEncounter:: @ 81ECD33 @@ -106,7 +106,7 @@ Route104_EventScript_MayEncounter:: @ 81ECD4B msgbox Route104_Text_MayWeShouldRegister, MSGBOX_DEFAULT closemessage delay 30 - playfanfare MUS_ME_TORE_EYE + playfanfare MUS_REGISTER_MATCH_CALL msgbox Route104_Text_RegisteredMay, MSGBOX_DEFAULT waitfanfare closemessage @@ -195,7 +195,7 @@ Route104_EventScript_BrendanEncounter:: @ 81ECE6F msgbox Route104_Text_BrendanWeShouldRegister, MSGBOX_DEFAULT closemessage delay 30 - playfanfare MUS_ME_TORE_EYE + playfanfare MUS_REGISTER_MATCH_CALL msgbox Route104_Text_RegisteredBrendan, MSGBOX_DEFAULT waitfanfare closemessage @@ -387,7 +387,7 @@ Route104_EventScript_SailToDewfordDadCalls:: @ 81ED0EF pokenavcall Route104_Text_DadPokenavCall waitmessage delay 30 - playfanfare MUS_ME_TORE_EYE + playfanfare MUS_REGISTER_MATCH_CALL msgbox Route104_Text_RegisteredDadInPokenav, MSGBOX_DEFAULT waitfanfare closemessage diff --git a/data/maps/Route104_MrBrineysHouse/map.json b/data/maps/Route104_MrBrineysHouse/map.json index e027c520e9..ae4ffc7911 100644 --- a/data/maps/Route104_MrBrineysHouse/map.json +++ b/data/maps/Route104_MrBrineysHouse/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE104_MR_BRINEYS_HOUSE", "name": "Route104_MrBrineysHouse", "layout": "LAYOUT_ROUTE104_MR_BRINEYS_HOUSE", - "music": "MUS_MACHI_S2", + "music": "MUS_PETALBURG", "region_map_section": "MAPSEC_ROUTE_104", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/Route104_PrettyPetalFlowerShop/map.json b/data/maps/Route104_PrettyPetalFlowerShop/map.json index 511f1cf7c0..ec18b1ded9 100644 --- a/data/maps/Route104_PrettyPetalFlowerShop/map.json +++ b/data/maps/Route104_PrettyPetalFlowerShop/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE104_PRETTY_PETAL_FLOWER_SHOP", "name": "Route104_PrettyPetalFlowerShop", "layout": "LAYOUT_ROUTE104_PRETTY_PETAL_FLOWER_SHOP", - "music": "MUS_MACHI_S2", + "music": "MUS_PETALBURG", "region_map_section": "MAPSEC_ROUTE_104", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/Route104_Prototype/map.json b/data/maps/Route104_Prototype/map.json index d1210f4f19..a15458bf67 100644 --- a/data/maps/Route104_Prototype/map.json +++ b/data/maps/Route104_Prototype/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE104_PROTOTYPE", "name": "Route104_Prototype", "layout": "LAYOUT_ROUTE104_PROTOTYPE", - "music": "MUS_NEXTROAD", + "music": "MUS_ROUTE104", "region_map_section": "MAPSEC_ROUTE_104", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/Route104_PrototypePrettyPetalFlowerShop/map.json b/data/maps/Route104_PrototypePrettyPetalFlowerShop/map.json index e65913f304..7abd76e3d4 100644 --- a/data/maps/Route104_PrototypePrettyPetalFlowerShop/map.json +++ b/data/maps/Route104_PrototypePrettyPetalFlowerShop/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE104_PROTOTYPE_PRETTY_PETAL_FLOWER_SHOP", "name": "Route104_PrototypePrettyPetalFlowerShop", "layout": "LAYOUT_ROUTE104_PRETTY_PETAL_FLOWER_SHOP", - "music": "MUS_NEXTROAD", + "music": "MUS_ROUTE104", "region_map_section": "MAPSEC_ROUTE_104", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/Route105/map.json b/data/maps/Route105/map.json index 76f11b3bd9..bb6c7a6534 100644 --- a/data/maps/Route105/map.json +++ b/data/maps/Route105/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE105", "name": "Route105", "layout": "LAYOUT_ROUTE105", - "music": "MUS_NEXTROAD", + "music": "MUS_ROUTE104", "region_map_section": "MAPSEC_ROUTE_105", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/Route106/map.json b/data/maps/Route106/map.json index 3076088122..c28d593a7f 100644 --- a/data/maps/Route106/map.json +++ b/data/maps/Route106/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE106", "name": "Route106", "layout": "LAYOUT_ROUTE106", - "music": "MUS_NEXTROAD", + "music": "MUS_ROUTE104", "region_map_section": "MAPSEC_ROUTE_106", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/Route107/map.json b/data/maps/Route107/map.json index 3768551a34..ddc0f14598 100644 --- a/data/maps/Route107/map.json +++ b/data/maps/Route107/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE107", "name": "Route107", "layout": "LAYOUT_ROUTE107", - "music": "MUS_NEXTROAD", + "music": "MUS_ROUTE104", "region_map_section": "MAPSEC_ROUTE_107", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/Route108/map.json b/data/maps/Route108/map.json index 36b2009647..21acfd6cae 100644 --- a/data/maps/Route108/map.json +++ b/data/maps/Route108/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE108", "name": "Route108", "layout": "LAYOUT_ROUTE108", - "music": "MUS_NEXTROAD", + "music": "MUS_ROUTE104", "region_map_section": "MAPSEC_ROUTE_108", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/Route109/map.json b/data/maps/Route109/map.json index f6b1a46cd8..2ddcc4530b 100644 --- a/data/maps/Route109/map.json +++ b/data/maps/Route109/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE109", "name": "Route109", "layout": "LAYOUT_ROUTE109", - "music": "MUS_NEXTROAD", + "music": "MUS_ROUTE104", "region_map_section": "MAPSEC_ROUTE_109", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/Route109_SeashoreHouse/map.json b/data/maps/Route109_SeashoreHouse/map.json index 6a86e8c246..0a8164ba7c 100644 --- a/data/maps/Route109_SeashoreHouse/map.json +++ b/data/maps/Route109_SeashoreHouse/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE109_SEASHORE_HOUSE", "name": "Route109_SeashoreHouse", "layout": "LAYOUT_ROUTE109_SEASHORE_HOUSE", - "music": "MUS_HIGHTOWN", + "music": "MUS_DEWFORD", "region_map_section": "MAPSEC_ROUTE_109", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/Route110/map.json b/data/maps/Route110/map.json index 5e15be18c3..bb5df5eb4a 100644 --- a/data/maps/Route110/map.json +++ b/data/maps/Route110/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE110", "name": "Route110", "layout": "LAYOUT_ROUTE110", - "music": "MUS_DOORO_X1", + "music": "MUS_ROUTE110", "region_map_section": "MAPSEC_ROUTE_110", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/Route110/scripts.inc b/data/maps/Route110/scripts.inc index 7cdb547edb..50f3d1f48c 100644 --- a/data/maps/Route110/scripts.inc +++ b/data/maps/Route110/scripts.inc @@ -410,11 +410,11 @@ Route110_EventScript_RivalScene:: @ 81EF76E end Route110_EventScript_PlayMayMusic:: @ 81EF7E1 - playbgm MUS_GIRL_SUP, 1 + playbgm MUS_ENCOUNTER_MAY, 1 return Route110_EventScript_PlayBrendanMusic:: @ 81EF7E6 - playbgm MUS_BOY_SUP, 1 + playbgm MUS_ENCOUNTER_BRENDAN, 1 return Route110_EventScript_MayBattle:: @ 81EF7EB @@ -648,7 +648,7 @@ Route110_EventScript_BirchScene:: @ 81EF9F7 msgbox Route110_Text_HeardYouInstallMatchCall, MSGBOX_DEFAULT closemessage delay 30 - playfanfare MUS_ME_TORE_EYE + playfanfare MUS_REGISTER_MATCH_CALL msgbox Route110_Text_RegisteredBirchInPokenav, MSGBOX_DEFAULT waitfanfare closemessage diff --git a/data/maps/Route110_SeasideCyclingRoadNorthEntrance/map.json b/data/maps/Route110_SeasideCyclingRoadNorthEntrance/map.json index cd9fd8060b..0d382f2754 100644 --- a/data/maps/Route110_SeasideCyclingRoadNorthEntrance/map.json +++ b/data/maps/Route110_SeasideCyclingRoadNorthEntrance/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE110_SEASIDE_CYCLING_ROAD_NORTH_ENTRANCE", "name": "Route110_SeasideCyclingRoadNorthEntrance", "layout": "LAYOUT_ROUTE110_SEASIDE_CYCLING_ROAD_ENTRANCE", - "music": "MUS_FINECITY", + "music": "MUS_SLATEPORT", "region_map_section": "MAPSEC_ROUTE_110", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/Route110_SeasideCyclingRoadSouthEntrance/map.json b/data/maps/Route110_SeasideCyclingRoadSouthEntrance/map.json index 01c200b02d..12cd26adae 100644 --- a/data/maps/Route110_SeasideCyclingRoadSouthEntrance/map.json +++ b/data/maps/Route110_SeasideCyclingRoadSouthEntrance/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE110_SEASIDE_CYCLING_ROAD_SOUTH_ENTRANCE", "name": "Route110_SeasideCyclingRoadSouthEntrance", "layout": "LAYOUT_ROUTE110_SEASIDE_CYCLING_ROAD_ENTRANCE", - "music": "MUS_FINECITY", + "music": "MUS_SLATEPORT", "region_map_section": "MAPSEC_ROUTE_110", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/Route110_TrickHouseCorridor/map.json b/data/maps/Route110_TrickHouseCorridor/map.json index fb9c25c08b..5d6ddb5561 100644 --- a/data/maps/Route110_TrickHouseCorridor/map.json +++ b/data/maps/Route110_TrickHouseCorridor/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE110_TRICK_HOUSE_CORRIDOR", "name": "Route110_TrickHouseCorridor", "layout": "LAYOUT_ROUTE110_TRICK_HOUSE_CORRIDOR", - "music": "MUS_KARAKURI", + "music": "MUS_TRICK_HOUSE", "region_map_section": "MAPSEC_ROUTE_110", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/Route110_TrickHouseEnd/map.json b/data/maps/Route110_TrickHouseEnd/map.json index 6f6f3fcc78..c82d871fbd 100644 --- a/data/maps/Route110_TrickHouseEnd/map.json +++ b/data/maps/Route110_TrickHouseEnd/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE110_TRICK_HOUSE_END", "name": "Route110_TrickHouseEnd", "layout": "LAYOUT_ROUTE110_TRICK_HOUSE_END", - "music": "MUS_KARAKURI", + "music": "MUS_TRICK_HOUSE", "region_map_section": "MAPSEC_ROUTE_110", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/Route110_TrickHouseEnd/scripts.inc b/data/maps/Route110_TrickHouseEnd/scripts.inc index 7e6f6a5bfd..0852b4e334 100644 --- a/data/maps/Route110_TrickHouseEnd/scripts.inc +++ b/data/maps/Route110_TrickHouseEnd/scripts.inc @@ -194,7 +194,7 @@ Route110_TrickHouseEnd_EventScript_GiveBlueTent:: @ 826AFC7 Route110_TrickHouseEnd_EventScript_TrickMasterExit:: @ 826AFCF applymovement LOCALID_TRICK_MASTER, Route110_TrickHouse_Movement_TrickMasterSpin waitmovement 0 - playse SE_W153 + playse SE_M_EXPLOSION applymovement LOCALID_TRICK_MASTER, Route110_TrickHouse_Movement_TrickMasterJumpAway waitmovement 0 removeobject LOCALID_TRICK_MASTER @@ -242,7 +242,7 @@ Route110_TrickHouseEnd_EventScript_TrickMasterExitTrigger:: @ 826B041 delay 20 applymovement LOCALID_TRICK_MASTER, Route110_TrickHouseEnd_Movement_TrickMasterSurprise waitmovement 0 - playse SE_W153 + playse SE_M_EXPLOSION applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFastestDown waitmovement 0 msgbox Route110_TrickHouseEnd_Text_YoureIgnoringMe, MSGBOX_DEFAULT diff --git a/data/maps/Route110_TrickHouseEntrance/map.json b/data/maps/Route110_TrickHouseEntrance/map.json index 499cf26e08..5895ae7884 100644 --- a/data/maps/Route110_TrickHouseEntrance/map.json +++ b/data/maps/Route110_TrickHouseEntrance/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE110_TRICK_HOUSE_ENTRANCE", "name": "Route110_TrickHouseEntrance", "layout": "LAYOUT_ROUTE110_TRICK_HOUSE_ENTRANCE", - "music": "MUS_KARAKURI", + "music": "MUS_TRICK_HOUSE", "region_map_section": "MAPSEC_ROUTE_110", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/Route110_TrickHouseEntrance/scripts.inc b/data/maps/Route110_TrickHouseEntrance/scripts.inc index 98b06a94f2..adfcf6bbc4 100644 --- a/data/maps/Route110_TrickHouseEntrance/scripts.inc +++ b/data/maps/Route110_TrickHouseEntrance/scripts.inc @@ -223,7 +223,7 @@ Route110_TrickHouseEntrance_EventScript_BeginChallenge:: @ 8269CF8 delay 20 applymovement LOCALID_TRICK_MASTER, Route110_TrickHouse_Movement_TrickMasterSpin waitmovement 0 - playse SE_W153 + playse SE_M_EXPLOSION applymovement LOCALID_TRICK_MASTER, Route110_TrickHouse_Movement_TrickMasterJumpAway waitmovement 0 removeobject LOCALID_TRICK_MASTER @@ -480,7 +480,7 @@ Route110_TrickHouseEntrance_EventScript_ReceivedTent:: @ 826A09A waitmovement 0 applymovement LOCALID_TRICK_MASTER, Route110_TrickHouse_Movement_TrickMasterSpin waitmovement 0 - playse SE_W153 + playse SE_M_EXPLOSION applymovement LOCALID_TRICK_MASTER, Route110_TrickHouse_Movement_TrickMasterJumpAway waitmovement 0 removeobject LOCALID_TRICK_MASTER @@ -711,7 +711,7 @@ Route110_TrickHousePuzzle_EventScript_ReadScrollAgain:: @ 826A3DB end Route110_TrickHousePuzzle_EventScript_FoundScroll:: @ 826A3E5 - playfanfare MUS_FANFA4 + playfanfare MUS_OBTAIN_ITEM message Route110_TrickHousePuzzle_Text_FoundAScroll waitfanfare msgbox Route110_TrickHousePuzzle_Text_MemorizedSecretCode, MSGBOX_DEFAULT diff --git a/data/maps/Route110_TrickHousePuzzle1/map.json b/data/maps/Route110_TrickHousePuzzle1/map.json index 087057163d..42a416b51f 100644 --- a/data/maps/Route110_TrickHousePuzzle1/map.json +++ b/data/maps/Route110_TrickHousePuzzle1/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE110_TRICK_HOUSE_PUZZLE1", "name": "Route110_TrickHousePuzzle1", "layout": "LAYOUT_ROUTE110_TRICK_HOUSE_PUZZLE1", - "music": "MUS_KARAKURI", + "music": "MUS_TRICK_HOUSE", "region_map_section": "MAPSEC_ROUTE_110", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/Route110_TrickHousePuzzle2/map.json b/data/maps/Route110_TrickHousePuzzle2/map.json index f2c96756be..2b3ca9b2e3 100644 --- a/data/maps/Route110_TrickHousePuzzle2/map.json +++ b/data/maps/Route110_TrickHousePuzzle2/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE110_TRICK_HOUSE_PUZZLE2", "name": "Route110_TrickHousePuzzle2", "layout": "LAYOUT_ROUTE110_TRICK_HOUSE_PUZZLE2", - "music": "MUS_KARAKURI", + "music": "MUS_TRICK_HOUSE", "region_map_section": "MAPSEC_ROUTE_110", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/Route110_TrickHousePuzzle3/map.json b/data/maps/Route110_TrickHousePuzzle3/map.json index 389391b87b..ba01c6b334 100644 --- a/data/maps/Route110_TrickHousePuzzle3/map.json +++ b/data/maps/Route110_TrickHousePuzzle3/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE110_TRICK_HOUSE_PUZZLE3", "name": "Route110_TrickHousePuzzle3", "layout": "LAYOUT_ROUTE110_TRICK_HOUSE_PUZZLE3", - "music": "MUS_KARAKURI", + "music": "MUS_TRICK_HOUSE", "region_map_section": "MAPSEC_ROUTE_110", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/Route110_TrickHousePuzzle4/map.json b/data/maps/Route110_TrickHousePuzzle4/map.json index ad00f12ac0..8e8348c953 100644 --- a/data/maps/Route110_TrickHousePuzzle4/map.json +++ b/data/maps/Route110_TrickHousePuzzle4/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE110_TRICK_HOUSE_PUZZLE4", "name": "Route110_TrickHousePuzzle4", "layout": "LAYOUT_ROUTE110_TRICK_HOUSE_PUZZLE4", - "music": "MUS_KARAKURI", + "music": "MUS_TRICK_HOUSE", "region_map_section": "MAPSEC_ROUTE_110", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/Route110_TrickHousePuzzle5/map.json b/data/maps/Route110_TrickHousePuzzle5/map.json index ee074b37d1..9eba5d7f84 100644 --- a/data/maps/Route110_TrickHousePuzzle5/map.json +++ b/data/maps/Route110_TrickHousePuzzle5/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE110_TRICK_HOUSE_PUZZLE5", "name": "Route110_TrickHousePuzzle5", "layout": "LAYOUT_ROUTE110_TRICK_HOUSE_PUZZLE5", - "music": "MUS_KARAKURI", + "music": "MUS_TRICK_HOUSE", "region_map_section": "MAPSEC_ROUTE_110", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/Route110_TrickHousePuzzle5/scripts.inc b/data/maps/Route110_TrickHousePuzzle5/scripts.inc index 419fa28316..36162f42f7 100644 --- a/data/maps/Route110_TrickHousePuzzle5/scripts.inc +++ b/data/maps/Route110_TrickHousePuzzle5/scripts.inc @@ -454,7 +454,7 @@ Route110_TrickHousePuzzle5_EventScript_Mechadoll5Quiz3:: @ 826D12F Route110_TrickHousePuzzle5_EventScript_IncorrectAnswer:: @ 826D152 waitse - playse SE_HAZURE + playse SE_FAILURE msgbox Route110_TrickHousePuzzle5_Text_DisappointmentError, MSGBOX_DEFAULT applymovement LOCALID_MECHADOLL_1, Route110_TrickHousePuzzle5_Movement_MechadollShake applymovement LOCALID_MECHADOLL_2, Route110_TrickHousePuzzle5_Movement_MechadollShake @@ -472,7 +472,7 @@ Route110_TrickHousePuzzle5_EventScript_IncorrectAnswer:: @ 826D152 Route110_TrickHousePuzzle5_EventScript_CorrectAnswer:: @ 826D1A0 waitse - playse SE_SEIKAI + playse SE_SUCCESS goto Route110_TrickHousePuzzle5_EventScript_CorrectGoThrough end diff --git a/data/maps/Route110_TrickHousePuzzle6/map.json b/data/maps/Route110_TrickHousePuzzle6/map.json index bec9d12b3a..ff6e3e7f31 100644 --- a/data/maps/Route110_TrickHousePuzzle6/map.json +++ b/data/maps/Route110_TrickHousePuzzle6/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE110_TRICK_HOUSE_PUZZLE6", "name": "Route110_TrickHousePuzzle6", "layout": "LAYOUT_ROUTE110_TRICK_HOUSE_PUZZLE6", - "music": "MUS_KARAKURI", + "music": "MUS_TRICK_HOUSE", "region_map_section": "MAPSEC_ROUTE_110", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/Route110_TrickHousePuzzle7/map.json b/data/maps/Route110_TrickHousePuzzle7/map.json index 12afd07ec5..f5976bdefa 100644 --- a/data/maps/Route110_TrickHousePuzzle7/map.json +++ b/data/maps/Route110_TrickHousePuzzle7/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE110_TRICK_HOUSE_PUZZLE7", "name": "Route110_TrickHousePuzzle7", "layout": "LAYOUT_ROUTE110_TRICK_HOUSE_PUZZLE7", - "music": "MUS_KARAKURI", + "music": "MUS_TRICK_HOUSE", "region_map_section": "MAPSEC_ROUTE_110", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/Route110_TrickHousePuzzle7/scripts.inc b/data/maps/Route110_TrickHousePuzzle7/scripts.inc index 6b75593893..b0cbd38139 100644 --- a/data/maps/Route110_TrickHousePuzzle7/scripts.inc +++ b/data/maps/Route110_TrickHousePuzzle7/scripts.inc @@ -125,7 +125,7 @@ Route110_TrickHousePuzzle7_EventScript_Switch1:: @ 826E1FE call_if_unset FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_1, Route110_TrickHousePuzzle7_EventScript_SetSwitch1MetatilesOn call_if_set FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_1, Route110_TrickHousePuzzle7_EventScript_SetSwitch1MetatilesOff special DrawWholeMapView - playse SE_TK_KASYA + playse SE_CLICK goto_if_unset FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_1, Route110_TrickHousePuzzle7_EventScript_SetSwitch1On goto_if_set FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_1, Route110_TrickHousePuzzle7_EventScript_SetSwitch1Off end @@ -136,7 +136,7 @@ Route110_TrickHousePuzzle7_EventScript_Switch2:: @ 826E22D call_if_unset FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_2, Route110_TrickHousePuzzle7_EventScript_SetSwitch2MetatilesOn call_if_set FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_2, Route110_TrickHousePuzzle7_EventScript_SetSwitch2MetatilesOff special DrawWholeMapView - playse SE_TK_KASYA + playse SE_CLICK goto_if_unset FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_2, Route110_TrickHousePuzzle7_EventScript_SetSwitch2On goto_if_set FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_2, Route110_TrickHousePuzzle7_EventScript_SetSwitch2Off end @@ -147,7 +147,7 @@ Route110_TrickHousePuzzle7_EventScript_Switch3:: @ 826E25C call_if_unset FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_3, Route110_TrickHousePuzzle7_EventScript_SetSwitch3MetatilesOn call_if_set FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_3, Route110_TrickHousePuzzle7_EventScript_SetSwitch3MetatilesOff special DrawWholeMapView - playse SE_TK_KASYA + playse SE_CLICK goto_if_unset FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_3, Route110_TrickHousePuzzle7_EventScript_SetSwitch3On goto_if_set FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_3, Route110_TrickHousePuzzle7_EventScript_SetSwitch3Off end @@ -158,7 +158,7 @@ Route110_TrickHousePuzzle7_EventScript_Switch4:: @ 826E28B call_if_unset FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_4, Route110_TrickHousePuzzle7_EventScript_SetSwitch4MetatilesOn call_if_set FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_4, Route110_TrickHousePuzzle7_EventScript_SetSwitch4MetatilesOff special DrawWholeMapView - playse SE_TK_KASYA + playse SE_CLICK goto_if_unset FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_4, Route110_TrickHousePuzzle7_EventScript_SetSwitch4On goto_if_set FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_4, Route110_TrickHousePuzzle7_EventScript_SetSwitch4Off end @@ -169,7 +169,7 @@ Route110_TrickHousePuzzle7_EventScript_Switch5:: @ 826E2BA call_if_unset FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_5, Route110_TrickHousePuzzle7_EventScript_SetSwitch5MetatilesOn call_if_set FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_5, Route110_TrickHousePuzzle7_EventScript_SetSwitch5MetatilesOff special DrawWholeMapView - playse SE_TK_KASYA + playse SE_CLICK goto_if_unset FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_5, Route110_TrickHousePuzzle7_EventScript_SetSwitch5On goto_if_set FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_5, Route110_TrickHousePuzzle7_EventScript_SetSwitch5Off end @@ -227,9 +227,9 @@ Route110_TrickHousePuzzle7_EventScript_SetSwitch5Off:: @ 826E316 @ From here is where the new, actually used puzzle scripts begin Route110_TrickHousePuzzle7_EventScript_YellowButton:: @ 826E31B - playse SE_MU_PACHI + playse SE_SWITCH waitse - playse SE_TU_SAA + playse SE_REPEL initrotatingtilepuzzle TRUE moverotatingtileobjects 0 waitmovement 0 @@ -239,9 +239,9 @@ Route110_TrickHousePuzzle7_EventScript_YellowButton:: @ 826E31B end Route110_TrickHousePuzzle7_EventScript_BlueButton:: @ 826E331 - playse SE_MU_PACHI + playse SE_SWITCH waitse - playse SE_TU_SAA + playse SE_REPEL initrotatingtilepuzzle TRUE moverotatingtileobjects 1 waitmovement 0 @@ -251,9 +251,9 @@ Route110_TrickHousePuzzle7_EventScript_BlueButton:: @ 826E331 end Route110_TrickHousePuzzle7_EventScript_GreenButton:: @ 826E347 - playse SE_MU_PACHI + playse SE_SWITCH waitse - playse SE_TU_SAA + playse SE_REPEL initrotatingtilepuzzle TRUE moverotatingtileobjects 2 waitmovement 0 @@ -263,9 +263,9 @@ Route110_TrickHousePuzzle7_EventScript_GreenButton:: @ 826E347 end Route110_TrickHousePuzzle7_EventScript_PurpleButton:: @ 826E35D - playse SE_MU_PACHI + playse SE_SWITCH waitse - playse SE_TU_SAA + playse SE_REPEL initrotatingtilepuzzle TRUE moverotatingtileobjects 3 waitmovement 0 @@ -276,9 +276,9 @@ Route110_TrickHousePuzzle7_EventScript_PurpleButton:: @ 826E35D @ Unused Route110_TrickHousePuzzle7_EventScript_RedButton:: @ 826E373 - playse SE_MU_PACHI + playse SE_SWITCH waitse - playse SE_TU_SAA + playse SE_REPEL initrotatingtilepuzzle TRUE moverotatingtileobjects 4 waitmovement 0 diff --git a/data/maps/Route110_TrickHousePuzzle8/map.json b/data/maps/Route110_TrickHousePuzzle8/map.json index 3a1bc8caf5..bfb106eb66 100644 --- a/data/maps/Route110_TrickHousePuzzle8/map.json +++ b/data/maps/Route110_TrickHousePuzzle8/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE110_TRICK_HOUSE_PUZZLE8", "name": "Route110_TrickHousePuzzle8", "layout": "LAYOUT_ROUTE110_TRICK_HOUSE_PUZZLE8", - "music": "MUS_KARAKURI", + "music": "MUS_TRICK_HOUSE", "region_map_section": "MAPSEC_ROUTE_110", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/Route111/map.json b/data/maps/Route111/map.json index 938dbcff10..014ac084cc 100644 --- a/data/maps/Route111/map.json +++ b/data/maps/Route111/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE111", "name": "Route111", "layout": "LAYOUT_ROUTE111", - "music": "MUS_DOORO_X1", + "music": "MUS_ROUTE110", "region_map_section": "MAPSEC_ROUTE_111", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/Route111/scripts.inc b/data/maps/Route111/scripts.inc index 281dddf0c6..322c9a2b72 100644 --- a/data/maps/Route111/scripts.inc +++ b/data/maps/Route111/scripts.inc @@ -126,7 +126,7 @@ Route111_EventScript_MirageTowerDisappear:: @ 81F0E60 special StartMirageTowerShake waitstate delay 24 - playse SE_RU_HYUU + playse SE_FALL addobject LOCALID_PLAYER_FALLING special StartPlayerDescendMirageTower waitstate @@ -268,14 +268,14 @@ Route111_Movement_PushRightFromRoute: @ 81F0FAE Route111_EventScript_SunTrigger:: @ 81F0FB0 setweather WEATHER_SUNNY - fadenewbgm MUS_DOORO_X1 + fadenewbgm MUS_ROUTE110 doweather setvar VAR_TEMP_3, 0 end Route111_EventScript_SandstormTrigger:: @ 81F0FBD setweather WEATHER_SANDSTORM - fadenewbgm MUS_ASHROAD + fadenewbgm MUS_ROUTE111 doweather end diff --git a/data/maps/Route111_OldLadysRestStop/map.json b/data/maps/Route111_OldLadysRestStop/map.json index 679b535221..419e4c2ee0 100644 --- a/data/maps/Route111_OldLadysRestStop/map.json +++ b/data/maps/Route111_OldLadysRestStop/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE111_OLD_LADYS_REST_STOP", "name": "Route111_OldLadysRestStop", "layout": "LAYOUT_HOUSE3", - "music": "MUS_GOTOWN", + "music": "MUS_RUSTBORO", "region_map_section": "MAPSEC_ROUTE_111", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/Route111_WinstrateFamilysHouse/map.json b/data/maps/Route111_WinstrateFamilysHouse/map.json index ec5afd93aa..f889359712 100644 --- a/data/maps/Route111_WinstrateFamilysHouse/map.json +++ b/data/maps/Route111_WinstrateFamilysHouse/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE111_WINSTRATE_FAMILYS_HOUSE", "name": "Route111_WinstrateFamilysHouse", "layout": "LAYOUT_HOUSE2", - "music": "MUS_GOTOWN", + "music": "MUS_RUSTBORO", "region_map_section": "MAPSEC_ROUTE_111", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/Route112/map.json b/data/maps/Route112/map.json index 37f0a38dfa..d4d650857f 100644 --- a/data/maps/Route112/map.json +++ b/data/maps/Route112/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE112", "name": "Route112", "layout": "LAYOUT_ROUTE112", - "music": "MUS_DOORO_X1", + "music": "MUS_ROUTE110", "region_map_section": "MAPSEC_ROUTE_112", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/Route112_CableCarStation/map.json b/data/maps/Route112_CableCarStation/map.json index a59df37cbd..7adae98f7b 100644 --- a/data/maps/Route112_CableCarStation/map.json +++ b/data/maps/Route112_CableCarStation/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE112_CABLE_CAR_STATION", "name": "Route112_CableCarStation", "layout": "LAYOUT_CABLE_CAR_STATION", - "music": "MUS_DOORO_X1", + "music": "MUS_ROUTE110", "region_map_section": "MAPSEC_ROUTE_112", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/Route113/map.json b/data/maps/Route113/map.json index df1b352236..8d9d740280 100644 --- a/data/maps/Route113/map.json +++ b/data/maps/Route113/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE113", "name": "Route113", "layout": "LAYOUT_ROUTE113", - "music": "MUS_KAZANBAI", + "music": "MUS_ROUTE113", "region_map_section": "MAPSEC_ROUTE_113", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/Route113_GlassWorkshop/map.json b/data/maps/Route113_GlassWorkshop/map.json index 1d5deabd0f..924fbd85dd 100644 --- a/data/maps/Route113_GlassWorkshop/map.json +++ b/data/maps/Route113_GlassWorkshop/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE113_GLASS_WORKSHOP", "name": "Route113_GlassWorkshop", "layout": "LAYOUT_HOUSE4", - "music": "MUS_GOTOWN", + "music": "MUS_RUSTBORO", "region_map_section": "MAPSEC_ROUTE_113", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/Route114/map.json b/data/maps/Route114/map.json index 48bafee08e..37edf509d0 100644 --- a/data/maps/Route114/map.json +++ b/data/maps/Route114/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE114", "name": "Route114", "layout": "LAYOUT_ROUTE114", - "music": "MUS_DOORO_X1", + "music": "MUS_ROUTE110", "region_map_section": "MAPSEC_ROUTE_114", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/Route114_FossilManiacsHouse/map.json b/data/maps/Route114_FossilManiacsHouse/map.json index 19d87c3534..dd21ff77f2 100644 --- a/data/maps/Route114_FossilManiacsHouse/map.json +++ b/data/maps/Route114_FossilManiacsHouse/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE114_FOSSIL_MANIACS_HOUSE", "name": "Route114_FossilManiacsHouse", "layout": "LAYOUT_ROUTE114_FOSSIL_MANIACS_HOUSE", - "music": "MUS_TONEKUSA", + "music": "MUS_FALLARBOR", "region_map_section": "MAPSEC_ROUTE_114", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/Route114_FossilManiacsTunnel/map.json b/data/maps/Route114_FossilManiacsTunnel/map.json index 3384df5237..9a8ac70c94 100644 --- a/data/maps/Route114_FossilManiacsTunnel/map.json +++ b/data/maps/Route114_FossilManiacsTunnel/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE114_FOSSIL_MANIACS_TUNNEL", "name": "Route114_FossilManiacsTunnel", "layout": "LAYOUT_ROUTE114_FOSSIL_MANIACS_TUNNEL", - "music": "MUS_TONEKUSA", + "music": "MUS_FALLARBOR", "region_map_section": "MAPSEC_ROUTE_114", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/Route114_LanettesHouse/map.json b/data/maps/Route114_LanettesHouse/map.json index 2a444d06a7..fcb8edfc99 100644 --- a/data/maps/Route114_LanettesHouse/map.json +++ b/data/maps/Route114_LanettesHouse/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE114_LANETTES_HOUSE", "name": "Route114_LanettesHouse", "layout": "LAYOUT_ROUTE114_LANETTES_HOUSE", - "music": "MUS_TONEKUSA", + "music": "MUS_FALLARBOR", "region_map_section": "MAPSEC_ROUTE_114", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/Route115/map.json b/data/maps/Route115/map.json index 0be264375a..2d0dbdbaa9 100644 --- a/data/maps/Route115/map.json +++ b/data/maps/Route115/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE115", "name": "Route115", "layout": "LAYOUT_ROUTE115", - "music": "MUS_NEXTROAD", + "music": "MUS_ROUTE104", "region_map_section": "MAPSEC_ROUTE_115", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/Route116/map.json b/data/maps/Route116/map.json index 6c2be79809..247a4b7b15 100644 --- a/data/maps/Route116/map.json +++ b/data/maps/Route116/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE116", "name": "Route116", "layout": "LAYOUT_ROUTE116", - "music": "MUS_NEXTROAD", + "music": "MUS_ROUTE104", "region_map_section": "MAPSEC_ROUTE_116", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/Route116_TunnelersRestHouse/map.json b/data/maps/Route116_TunnelersRestHouse/map.json index 8ced24aa7b..b83971532a 100644 --- a/data/maps/Route116_TunnelersRestHouse/map.json +++ b/data/maps/Route116_TunnelersRestHouse/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE116_TUNNELERS_REST_HOUSE", "name": "Route116_TunnelersRestHouse", "layout": "LAYOUT_ROUTE116_TUNNELERS_REST_HOUSE", - "music": "MUS_GOTOWN", + "music": "MUS_RUSTBORO", "region_map_section": "MAPSEC_ROUTE_116", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/Route117/map.json b/data/maps/Route117/map.json index 655c430483..d2f45e256f 100644 --- a/data/maps/Route117/map.json +++ b/data/maps/Route117/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE117", "name": "Route117", "layout": "LAYOUT_ROUTE117", - "music": "MUS_DOORO_X1", + "music": "MUS_ROUTE110", "region_map_section": "MAPSEC_ROUTE_117", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/Route117_PokemonDayCare/map.json b/data/maps/Route117_PokemonDayCare/map.json index 141dd44ca7..5b51aa9589 100644 --- a/data/maps/Route117_PokemonDayCare/map.json +++ b/data/maps/Route117_PokemonDayCare/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE117_POKEMON_DAY_CARE", "name": "Route117_PokemonDayCare", "layout": "LAYOUT_ROUTE117_POKEMON_DAY_CARE", - "music": "MUS_GOTOWN", + "music": "MUS_RUSTBORO", "region_map_section": "MAPSEC_ROUTE_117", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/Route118/map.json b/data/maps/Route118/map.json index 09df9a05a8..7b541e629e 100644 --- a/data/maps/Route118/map.json +++ b/data/maps/Route118/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE118", "name": "Route118", "layout": "LAYOUT_ROUTE118", - "music": "MUS_ROUTE_118", + "music": "MUS_ROUTE118", "region_map_section": "MAPSEC_ROUTE_118", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/Route118/scripts.inc b/data/maps/Route118/scripts.inc index 1a34ad96cd..0197508bb2 100644 --- a/data/maps/Route118/scripts.inc +++ b/data/maps/Route118/scripts.inc @@ -97,7 +97,7 @@ Route118_EventScript_StevenTrigger2:: @ 81F3EC4 end Route118_EventScript_StevenTrigger:: @ 81F3EE4 - playse SE_DANSA + playse SE_LEDGE applymovement LOCALID_STEVEN, Route118_Movement_StevenJumpLedge waitmovement 0 delay 30 diff --git a/data/maps/Route119/map.json b/data/maps/Route119/map.json index 1ad1ca45ac..fa6391a34e 100644 --- a/data/maps/Route119/map.json +++ b/data/maps/Route119/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE119", "name": "Route119", "layout": "LAYOUT_ROUTE119", - "music": "MUS_GRANROAD", + "music": "MUS_ROUTE119", "region_map_section": "MAPSEC_ROUTE_119", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/Route119/scripts.inc b/data/maps/Route119/scripts.inc index 2800126f62..734934d170 100644 --- a/data/maps/Route119/scripts.inc +++ b/data/maps/Route119/scripts.inc @@ -74,11 +74,11 @@ Route119_EventScript_RivalEncounter:: @ 81F4488 end Route119_EventScript_PlayMayMusic:: @ 81F4501 - playbgm MUS_GIRL_SUP, 1 + playbgm MUS_ENCOUNTER_MAY, 1 return Route119_EventScript_PlayBrendanMusic:: @ 81F4506 - playbgm MUS_BOY_SUP, 1 + playbgm MUS_ENCOUNTER_BRENDAN, 1 return Route119_EventScript_BattleMay:: @ 81F450B diff --git a/data/maps/Route119_House/map.json b/data/maps/Route119_House/map.json index 6478404e29..0225f1cd39 100644 --- a/data/maps/Route119_House/map.json +++ b/data/maps/Route119_House/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE119_HOUSE", "name": "Route119_House", "layout": "LAYOUT_HOUSE1", - "music": "MUS_GOTOWN", + "music": "MUS_RUSTBORO", "region_map_section": "MAPSEC_ROUTE_119", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/Route119_WeatherInstitute_1F/map.json b/data/maps/Route119_WeatherInstitute_1F/map.json index f1a3b0f99e..9a9e238823 100644 --- a/data/maps/Route119_WeatherInstitute_1F/map.json +++ b/data/maps/Route119_WeatherInstitute_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE119_WEATHER_INSTITUTE_1F", "name": "Route119_WeatherInstitute_1F", "layout": "LAYOUT_ROUTE119_WEATHER_INSTITUTE_1F", - "music": "MUS_GOTOWN", + "music": "MUS_RUSTBORO", "region_map_section": "MAPSEC_ROUTE_119", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/Route119_WeatherInstitute_2F/map.json b/data/maps/Route119_WeatherInstitute_2F/map.json index a6dc3dfee4..e2e5ebb8a9 100644 --- a/data/maps/Route119_WeatherInstitute_2F/map.json +++ b/data/maps/Route119_WeatherInstitute_2F/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE119_WEATHER_INSTITUTE_2F", "name": "Route119_WeatherInstitute_2F", "layout": "LAYOUT_ROUTE119_WEATHER_INSTITUTE_2F", - "music": "MUS_GOTOWN", + "music": "MUS_RUSTBORO", "region_map_section": "MAPSEC_ROUTE_119", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/Route119_WeatherInstitute_2F/scripts.inc b/data/maps/Route119_WeatherInstitute_2F/scripts.inc index 7e2c156069..85d9d928fb 100644 --- a/data/maps/Route119_WeatherInstitute_2F/scripts.inc +++ b/data/maps/Route119_WeatherInstitute_2F/scripts.inc @@ -124,7 +124,7 @@ Route119_WeatherInstitute_2F_EventScript_SendCastformToPC:: @ 82700D0 end Route119_WeatherInstitute_2F_EventScript_ReceivedCastformFanfare:: @ 82700DB - playfanfare MUS_FANFA4 + playfanfare MUS_OBTAIN_ITEM message Route119_WeatherInstitute_2F_Text_PlayerReceivedCastform waitmessage waitfanfare diff --git a/data/maps/Route120/map.json b/data/maps/Route120/map.json index 2f0f736a26..8a7e56ddc3 100644 --- a/data/maps/Route120/map.json +++ b/data/maps/Route120/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE120", "name": "Route120", "layout": "LAYOUT_ROUTE120", - "music": "MUS_DOORO_X3", + "music": "MUS_ROUTE120", "region_map_section": "MAPSEC_ROUTE_120", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/Route121/map.json b/data/maps/Route121/map.json index f4b4f5e842..e956f62514 100644 --- a/data/maps/Route121/map.json +++ b/data/maps/Route121/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE121", "name": "Route121", "layout": "LAYOUT_ROUTE121", - "music": "MUS_DOORO_X3", + "music": "MUS_ROUTE120", "region_map_section": "MAPSEC_ROUTE_121", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/Route121/scripts.inc b/data/maps/Route121/scripts.inc index 1a7591a934..fdc191ea82 100644 --- a/data/maps/Route121/scripts.inc +++ b/data/maps/Route121/scripts.inc @@ -19,7 +19,7 @@ Route121_EventScript_SafariZoneSign:: @ 81F5E0F Route121_EventScript_AquaGruntsMoveOut:: @ 81F5E18 lockall - playbgm MUS_AQA_0, 0 + playbgm MUS_ENCOUNTER_AQUA, 0 applymovement LOCALID_GRUNT_2, Common_Movement_WalkInPlaceRight waitmovement 0 msgbox Route121_Text_OkayMoveOutToMtPyre, MSGBOX_DEFAULT diff --git a/data/maps/Route121_SafariZoneEntrance/map.json b/data/maps/Route121_SafariZoneEntrance/map.json index 35516142e0..231d3b4a7a 100644 --- a/data/maps/Route121_SafariZoneEntrance/map.json +++ b/data/maps/Route121_SafariZoneEntrance/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE121_SAFARI_ZONE_ENTRANCE", "name": "Route121_SafariZoneEntrance", "layout": "LAYOUT_ROUTE121_SAFARI_ZONE_ENTRANCE", - "music": "MUS_MACHI_S3", + "music": "MUS_FORTREE", "region_map_section": "MAPSEC_ROUTE_121", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/Route121_SafariZoneEntrance/scripts.inc b/data/maps/Route121_SafariZoneEntrance/scripts.inc index 549f227724..a87a374d2a 100644 --- a/data/maps/Route121_SafariZoneEntrance/scripts.inc +++ b/data/maps/Route121_SafariZoneEntrance/scripts.inc @@ -64,12 +64,12 @@ Route121_SafariZoneEntrance_EventScript_TryEnterSafariZone:: @ 822BC48 checkmoney 500, 0 compare VAR_RESULT, 0 goto_if_eq Route121_SafariZoneEntrance_EventScript_NotEnoughMoney - playse SE_REGI + playse SE_SHOP msgbox Route121_SafariZoneEntrance_Text_ThatWillBe500Please, MSGBOX_DEFAULT removemoney 500, 0 updatemoneybox 0, 0 msgbox Route121_SafariZoneEntrance_Text_HereAreYourSafariBalls, MSGBOX_DEFAULT - playfanfare MUS_FANFA4 + playfanfare MUS_OBTAIN_ITEM message Route121_SafariZoneEntrance_Text_Received30SafariBalls waitfanfare msgbox Route121_SafariZoneEntrance_Text_PleaseEnjoyYourself, MSGBOX_DEFAULT diff --git a/data/maps/Route122/map.json b/data/maps/Route122/map.json index 39481f9d75..8c92133471 100644 --- a/data/maps/Route122/map.json +++ b/data/maps/Route122/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE122", "name": "Route122", "layout": "LAYOUT_ROUTE122", - "music": "MUS_DOORO_X4", + "music": "MUS_ROUTE122", "region_map_section": "MAPSEC_ROUTE_122", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/Route123/map.json b/data/maps/Route123/map.json index 4a18635324..1bd25310a1 100644 --- a/data/maps/Route123/map.json +++ b/data/maps/Route123/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE123", "name": "Route123", "layout": "LAYOUT_ROUTE123", - "music": "MUS_DOORO_X4", + "music": "MUS_ROUTE122", "region_map_section": "MAPSEC_ROUTE_123", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/Route123_BerryMastersHouse/map.json b/data/maps/Route123_BerryMastersHouse/map.json index ef72c04ab7..488ee97b50 100644 --- a/data/maps/Route123_BerryMastersHouse/map.json +++ b/data/maps/Route123_BerryMastersHouse/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE123_BERRY_MASTERS_HOUSE", "name": "Route123_BerryMastersHouse", "layout": "LAYOUT_HOUSE2", - "music": "MUS_GOTOWN", + "music": "MUS_RUSTBORO", "region_map_section": "MAPSEC_ROUTE_123", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/Route124/map.json b/data/maps/Route124/map.json index 80d44f1558..cb075d29a1 100644 --- a/data/maps/Route124/map.json +++ b/data/maps/Route124/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE124", "name": "Route124", "layout": "LAYOUT_ROUTE124", - "music": "MUS_DOORO_X3", + "music": "MUS_ROUTE120", "region_map_section": "MAPSEC_ROUTE_124", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/Route124_DivingTreasureHuntersHouse/map.json b/data/maps/Route124_DivingTreasureHuntersHouse/map.json index fc6890729b..a9c16cd22e 100644 --- a/data/maps/Route124_DivingTreasureHuntersHouse/map.json +++ b/data/maps/Route124_DivingTreasureHuntersHouse/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE124_DIVING_TREASURE_HUNTERS_HOUSE", "name": "Route124_DivingTreasureHuntersHouse", "layout": "LAYOUT_ROUTE124_DIVING_TREASURE_HUNTERS_HOUSE", - "music": "MUS_MINAMO", + "music": "MUS_LILYCOVE", "region_map_section": "MAPSEC_ROUTE_124", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/Route125/map.json b/data/maps/Route125/map.json index c83abccd2c..984a554e4b 100644 --- a/data/maps/Route125/map.json +++ b/data/maps/Route125/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE125", "name": "Route125", "layout": "LAYOUT_ROUTE125", - "music": "MUS_DOORO_X3", + "music": "MUS_ROUTE120", "region_map_section": "MAPSEC_ROUTE_125", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/Route126/map.json b/data/maps/Route126/map.json index 3f1aa7dc74..60b4390668 100644 --- a/data/maps/Route126/map.json +++ b/data/maps/Route126/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE126", "name": "Route126", "layout": "LAYOUT_ROUTE126", - "music": "MUS_DOORO_X3", + "music": "MUS_ROUTE120", "region_map_section": "MAPSEC_ROUTE_126", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/Route127/map.json b/data/maps/Route127/map.json index 7908f94b0b..0e6d78da7f 100644 --- a/data/maps/Route127/map.json +++ b/data/maps/Route127/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE127", "name": "Route127", "layout": "LAYOUT_ROUTE127", - "music": "MUS_DOORO_X3", + "music": "MUS_ROUTE120", "region_map_section": "MAPSEC_ROUTE_127", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/Route128/map.json b/data/maps/Route128/map.json index 9d9b003bab..d8fbb249ab 100644 --- a/data/maps/Route128/map.json +++ b/data/maps/Route128/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE128", "name": "Route128", "layout": "LAYOUT_ROUTE128", - "music": "MUS_DOORO_X3", + "music": "MUS_ROUTE120", "region_map_section": "MAPSEC_ROUTE_128", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/Route129/map.json b/data/maps/Route129/map.json index 0c47261cf2..ca814b465d 100644 --- a/data/maps/Route129/map.json +++ b/data/maps/Route129/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE129", "name": "Route129", "layout": "LAYOUT_ROUTE129", - "music": "MUS_GRANROAD", + "music": "MUS_ROUTE119", "region_map_section": "MAPSEC_ROUTE_129", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/Route130/map.json b/data/maps/Route130/map.json index 91fcc7755b..7b4cf047c9 100644 --- a/data/maps/Route130/map.json +++ b/data/maps/Route130/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE130", "name": "Route130", "layout": "LAYOUT_ROUTE130", - "music": "MUS_GRANROAD", + "music": "MUS_ROUTE119", "region_map_section": "MAPSEC_ROUTE_130", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/Route131/map.json b/data/maps/Route131/map.json index 03922e25ee..3599ae556b 100644 --- a/data/maps/Route131/map.json +++ b/data/maps/Route131/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE131", "name": "Route131", "layout": "LAYOUT_ROUTE131", - "music": "MUS_GRANROAD", + "music": "MUS_ROUTE119", "region_map_section": "MAPSEC_ROUTE_131", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/Route132/map.json b/data/maps/Route132/map.json index 0f2d76d101..1d3d9efd0a 100644 --- a/data/maps/Route132/map.json +++ b/data/maps/Route132/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE132", "name": "Route132", "layout": "LAYOUT_ROUTE132", - "music": "MUS_GRANROAD", + "music": "MUS_ROUTE119", "region_map_section": "MAPSEC_ROUTE_132", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/Route133/map.json b/data/maps/Route133/map.json index 66047152c5..80e64638b3 100644 --- a/data/maps/Route133/map.json +++ b/data/maps/Route133/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE133", "name": "Route133", "layout": "LAYOUT_ROUTE133", - "music": "MUS_GRANROAD", + "music": "MUS_ROUTE119", "region_map_section": "MAPSEC_ROUTE_133", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/Route134/map.json b/data/maps/Route134/map.json index 9960b3c146..dd642a8e15 100644 --- a/data/maps/Route134/map.json +++ b/data/maps/Route134/map.json @@ -2,7 +2,7 @@ "id": "MAP_ROUTE134", "name": "Route134", "layout": "LAYOUT_ROUTE134", - "music": "MUS_GRANROAD", + "music": "MUS_ROUTE119", "region_map_section": "MAPSEC_ROUTE_134", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/RustboroCity/map.json b/data/maps/RustboroCity/map.json index 3d2232b9ad..445bc51899 100644 --- a/data/maps/RustboroCity/map.json +++ b/data/maps/RustboroCity/map.json @@ -2,7 +2,7 @@ "id": "MAP_RUSTBORO_CITY", "name": "RustboroCity", "layout": "LAYOUT_RUSTBORO_CITY", - "music": "MUS_GOTOWN", + "music": "MUS_RUSTBORO", "region_map_section": "MAPSEC_RUSTBORO_CITY", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/RustboroCity/scripts.inc b/data/maps/RustboroCity/scripts.inc index 477b0d6584..7b1f4a3d81 100644 --- a/data/maps/RustboroCity/scripts.inc +++ b/data/maps/RustboroCity/scripts.inc @@ -43,7 +43,7 @@ RustboroCity_EventScript_ScientistAddMatchCall:: @ 81E0715 setvar VAR_ROUTE104_STATE, 1 applymovement OBJ_EVENT_ID_PLAYER, RustboroCity_Movement_PlayerWalkDown waitmovement 0 - playse SE_KAIDAN + playse SE_EXIT delay 10 addobject LOCALID_SCIENTIST applymovement LOCALID_SCIENTIST, RustboroCity_Movement_ScientistApproachPlayer @@ -62,13 +62,13 @@ RustboroCity_EventScript_ScientistAddMatchCall:: @ 81E0715 setflag FLAG_HAS_MATCH_CALL applymovement LOCALID_SCIENTIST, Common_Movement_WalkInPlaceFastestLeft waitmovement 0 - playse SE_TK_KASYA + playse SE_CLICK delay 10 - playse SE_TK_KASYA + playse SE_CLICK delay 10 - playse SE_TK_KASYA + playse SE_CLICK delay 10 - playse SE_TK_KASYA + playse SE_CLICK delay 20 applymovement LOCALID_SCIENTIST, Common_Movement_WalkInPlaceFastestDown waitmovement 0 @@ -103,7 +103,7 @@ RustboroCity_EventScript_MatchCallTutorial:: @ 81E07BD closemessage applymovement LOCALID_SCIENTIST, RustboroCity_Movement_ScientistLeave waitmovement 0 - playse SE_KAIDAN + playse SE_EXIT removeobject LOCALID_SCIENTIST setflag FLAG_HIDE_RUSTBORO_CITY_SCIENTIST setvar VAR_RUSTBORO_CITY_STATE, 7 @@ -294,7 +294,7 @@ RustboroCity_EventScript_StolenGoodsTrigger4:: @ 81E09B6 RustboroCity_EventScript_StolenGoodsScene:: @ 81E09CD msgbox RustboroCity_Text_OutOfTheWay, MSGBOX_DEFAULT closemessage - playbgm MUS_AQA_0, 0 + playbgm MUS_ENCOUNTER_AQUA, 0 addobject LOCALID_GRUNT addobject LOCALID_DEVON_EMPLOYEE applymovement LOCALID_GRUNT, RustboroCity_Movement_GruntEscape @@ -706,11 +706,11 @@ RustboroCity_EventScript_PlayRivalMusic:: @ 81E0DD1 return RustboroCity_EventScript_PlayMayMusic:: @ 81E0DE9 - playbgm MUS_GIRL_SUP, 1 + playbgm MUS_ENCOUNTER_MAY, 1 return RustboroCity_EventScript_PlayBrendanMusic:: @ 81E0DEE - playbgm MUS_BOY_SUP, 1 + playbgm MUS_ENCOUNTER_BRENDAN, 1 return RustboroCity_EventScript_RivalTrigger0:: @ 81E0DF3 @@ -856,7 +856,7 @@ RustboroCity_EventScript_MayEncounter:: @ 81E100B msgbox RustboroCity_Text_MayHiLetsRegister, MSGBOX_DEFAULT closemessage delay 30 - playfanfare MUS_ME_TORE_EYE + playfanfare MUS_REGISTER_MATCH_CALL msgbox RustboroCity_Text_RegisteredMay, MSGBOX_DEFAULT waitfanfare closemessage @@ -927,7 +927,7 @@ RustboroCity_EventScript_BrendanEncounter:: @ 81E1114 msgbox RustboroCity_Text_BrendanHiLetsRegister, MSGBOX_DEFAULT closemessage delay 30 - playfanfare MUS_ME_TORE_EYE + playfanfare MUS_REGISTER_MATCH_CALL msgbox RustboroCity_Text_RegisteredBrendan, MSGBOX_DEFAULT waitfanfare closemessage diff --git a/data/maps/RustboroCity_CuttersHouse/map.json b/data/maps/RustboroCity_CuttersHouse/map.json index cc19403eaa..081799cd17 100644 --- a/data/maps/RustboroCity_CuttersHouse/map.json +++ b/data/maps/RustboroCity_CuttersHouse/map.json @@ -2,7 +2,7 @@ "id": "MAP_RUSTBORO_CITY_CUTTERS_HOUSE", "name": "RustboroCity_CuttersHouse", "layout": "LAYOUT_RUSTBORO_CITY_CUTTERS_HOUSE", - "music": "MUS_GOTOWN", + "music": "MUS_RUSTBORO", "region_map_section": "MAPSEC_RUSTBORO_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/RustboroCity_DevonCorp_1F/map.json b/data/maps/RustboroCity_DevonCorp_1F/map.json index 3cf7152c94..714f15506c 100644 --- a/data/maps/RustboroCity_DevonCorp_1F/map.json +++ b/data/maps/RustboroCity_DevonCorp_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_RUSTBORO_CITY_DEVON_CORP_1F", "name": "RustboroCity_DevonCorp_1F", "layout": "LAYOUT_RUSTBORO_CITY_DEVON_CORP_1F", - "music": "MUS_GOTOWN", + "music": "MUS_RUSTBORO", "region_map_section": "MAPSEC_RUSTBORO_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/RustboroCity_DevonCorp_2F/map.json b/data/maps/RustboroCity_DevonCorp_2F/map.json index 9bc987949b..95a931e94f 100644 --- a/data/maps/RustboroCity_DevonCorp_2F/map.json +++ b/data/maps/RustboroCity_DevonCorp_2F/map.json @@ -2,7 +2,7 @@ "id": "MAP_RUSTBORO_CITY_DEVON_CORP_2F", "name": "RustboroCity_DevonCorp_2F", "layout": "LAYOUT_RUSTBORO_CITY_DEVON_CORP_2F", - "music": "MUS_GOTOWN", + "music": "MUS_RUSTBORO", "region_map_section": "MAPSEC_RUSTBORO_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/RustboroCity_DevonCorp_2F/scripts.inc b/data/maps/RustboroCity_DevonCorp_2F/scripts.inc index e33fb2d0f9..eb22fcc43a 100644 --- a/data/maps/RustboroCity_DevonCorp_2F/scripts.inc +++ b/data/maps/RustboroCity_DevonCorp_2F/scripts.inc @@ -194,7 +194,7 @@ RustboroCity_DevonCorp_2F_EventScript_TransferLileepToPC:: @ 8211AB9 RustboroCity_DevonCorp_2F_EventScript_ReceivedLileepFanfare:: @ 8211AC4 bufferspeciesname 1, SPECIES_LILEEP - playfanfare MUS_FANFA4 + playfanfare MUS_OBTAIN_ITEM message RustboroCity_DevonCorp_2F_Text_ReceivedMonFromResearcher waitmessage waitfanfare @@ -243,7 +243,7 @@ RustboroCity_DevonCorp_2F_EventScript_TransferAnorithToPC:: @ 8211B5C RustboroCity_DevonCorp_2F_EventScript_ReceivedAnorithFanfare:: @ 8211B67 bufferspeciesname 1, SPECIES_ANORITH - playfanfare MUS_FANFA4 + playfanfare MUS_OBTAIN_ITEM message RustboroCity_DevonCorp_2F_Text_ReceivedMonFromResearcher waitmessage waitfanfare diff --git a/data/maps/RustboroCity_DevonCorp_3F/map.json b/data/maps/RustboroCity_DevonCorp_3F/map.json index d92e4272e0..a31a49dd30 100644 --- a/data/maps/RustboroCity_DevonCorp_3F/map.json +++ b/data/maps/RustboroCity_DevonCorp_3F/map.json @@ -2,7 +2,7 @@ "id": "MAP_RUSTBORO_CITY_DEVON_CORP_3F", "name": "RustboroCity_DevonCorp_3F", "layout": "LAYOUT_RUSTBORO_CITY_DEVON_CORP_3F", - "music": "MUS_GOTOWN", + "music": "MUS_RUSTBORO", "region_map_section": "MAPSEC_RUSTBORO_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/RustboroCity_DevonCorp_3F/scripts.inc b/data/maps/RustboroCity_DevonCorp_3F/scripts.inc index d24b4e902f..34a31c692d 100644 --- a/data/maps/RustboroCity_DevonCorp_3F/scripts.inc +++ b/data/maps/RustboroCity_DevonCorp_3F/scripts.inc @@ -39,7 +39,7 @@ RustboroCity_DevonCorp_3F_EventScript_MeetPresident:: @ 821246E waitmovement 0 msgbox RustboroCity_DevonCorp_3F_Text_WordWithPresidentComeWithMe, MSGBOX_DEFAULT closemessage - playbgm MUS_TSURETEK, 0 + playbgm MUS_FOLLOW_ME, 0 applymovement LOCALID_DEVON_EMPLOYEE, RustboroCity_DevonCorp_3F_Movement_LeadPlayerToPresident applymovement OBJ_EVENT_ID_PLAYER, RustboroCity_DevonCorp_3F_Movement_PlayerFollowToPresident waitmovement 0 @@ -52,7 +52,7 @@ RustboroCity_DevonCorp_3F_EventScript_MeetPresident:: @ 821246E msgbox RustboroCity_DevonCorp_3F_Text_MrStoneIHaveFavor, MSGBOX_DEFAULT giveitem ITEM_LETTER msgbox RustboroCity_DevonCorp_3F_Text_MrStoneWantYouToHaveThis, MSGBOX_DEFAULT - playfanfare MUS_FANFA4 + playfanfare MUS_OBTAIN_ITEM message RustboroCity_DevonCorp_3F_Text_ReceivedPokenav waitfanfare setflag FLAG_SYS_POKENAV_GET diff --git a/data/maps/RustboroCity_Flat1_1F/map.json b/data/maps/RustboroCity_Flat1_1F/map.json index 31341e0b7e..d4ddfb2f6c 100644 --- a/data/maps/RustboroCity_Flat1_1F/map.json +++ b/data/maps/RustboroCity_Flat1_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_RUSTBORO_CITY_FLAT1_1F", "name": "RustboroCity_Flat1_1F", "layout": "LAYOUT_RUSTBORO_CITY_FLAT1_1F", - "music": "MUS_GOTOWN", + "music": "MUS_RUSTBORO", "region_map_section": "MAPSEC_RUSTBORO_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/RustboroCity_Flat1_2F/map.json b/data/maps/RustboroCity_Flat1_2F/map.json index 454a0f1b5f..3756411d72 100644 --- a/data/maps/RustboroCity_Flat1_2F/map.json +++ b/data/maps/RustboroCity_Flat1_2F/map.json @@ -2,7 +2,7 @@ "id": "MAP_RUSTBORO_CITY_FLAT1_2F", "name": "RustboroCity_Flat1_2F", "layout": "LAYOUT_RUSTBORO_CITY_FLAT1_2F", - "music": "MUS_GOTOWN", + "music": "MUS_RUSTBORO", "region_map_section": "MAPSEC_RUSTBORO_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/RustboroCity_Flat2_1F/map.json b/data/maps/RustboroCity_Flat2_1F/map.json index 29494765c5..5379567ff8 100644 --- a/data/maps/RustboroCity_Flat2_1F/map.json +++ b/data/maps/RustboroCity_Flat2_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_RUSTBORO_CITY_FLAT2_1F", "name": "RustboroCity_Flat2_1F", "layout": "LAYOUT_RUSTBORO_CITY_FLAT2_1F", - "music": "MUS_GOTOWN", + "music": "MUS_RUSTBORO", "region_map_section": "MAPSEC_RUSTBORO_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/RustboroCity_Flat2_2F/map.json b/data/maps/RustboroCity_Flat2_2F/map.json index 8f3e659cdd..1ba0bbbba2 100644 --- a/data/maps/RustboroCity_Flat2_2F/map.json +++ b/data/maps/RustboroCity_Flat2_2F/map.json @@ -2,7 +2,7 @@ "id": "MAP_RUSTBORO_CITY_FLAT2_2F", "name": "RustboroCity_Flat2_2F", "layout": "LAYOUT_RUSTBORO_CITY_FLAT2_2F", - "music": "MUS_GOTOWN", + "music": "MUS_RUSTBORO", "region_map_section": "MAPSEC_RUSTBORO_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/RustboroCity_Flat2_3F/map.json b/data/maps/RustboroCity_Flat2_3F/map.json index 927ff6c344..da911f0045 100644 --- a/data/maps/RustboroCity_Flat2_3F/map.json +++ b/data/maps/RustboroCity_Flat2_3F/map.json @@ -2,7 +2,7 @@ "id": "MAP_RUSTBORO_CITY_FLAT2_3F", "name": "RustboroCity_Flat2_3F", "layout": "LAYOUT_RUSTBORO_CITY_FLAT2_3F", - "music": "MUS_GOTOWN", + "music": "MUS_RUSTBORO", "region_map_section": "MAPSEC_RUSTBORO_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/RustboroCity_Gym/map.json b/data/maps/RustboroCity_Gym/map.json index e473c3e1ba..36ae306abe 100644 --- a/data/maps/RustboroCity_Gym/map.json +++ b/data/maps/RustboroCity_Gym/map.json @@ -2,7 +2,7 @@ "id": "MAP_RUSTBORO_CITY_GYM", "name": "RustboroCity_Gym", "layout": "LAYOUT_RUSTBORO_CITY_GYM", - "music": "MUS_GIM", + "music": "MUS_GYM", "region_map_section": "MAPSEC_RUSTBORO_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/RustboroCity_Gym/scripts.inc b/data/maps/RustboroCity_Gym/scripts.inc index ce6fdb127b..6d9895fe50 100644 --- a/data/maps/RustboroCity_Gym/scripts.inc +++ b/data/maps/RustboroCity_Gym/scripts.inc @@ -96,7 +96,7 @@ RustboroCity_Gym_EventScript_RegisterRoxanne:: @ 821307B pokenavcall RustboroCity_Gym_Text_RoxanneRegisterCall waitmessage delay 30 - playfanfare MUS_ME_TORE_EYE + playfanfare MUS_REGISTER_MATCH_CALL msgbox RustboroCity_Gym_Text_RegisteredRoxanne, MSGBOX_DEFAULT waitfanfare closemessage diff --git a/data/maps/RustboroCity_House1/map.json b/data/maps/RustboroCity_House1/map.json index 85b4ee2b1d..a57b1a693c 100644 --- a/data/maps/RustboroCity_House1/map.json +++ b/data/maps/RustboroCity_House1/map.json @@ -2,7 +2,7 @@ "id": "MAP_RUSTBORO_CITY_HOUSE1", "name": "RustboroCity_House1", "layout": "LAYOUT_RUSTBORO_CITY_HOUSE1", - "music": "MUS_GOTOWN", + "music": "MUS_RUSTBORO", "region_map_section": "MAPSEC_RUSTBORO_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/RustboroCity_House2/map.json b/data/maps/RustboroCity_House2/map.json index dd30ff71ce..fdaed84fc0 100644 --- a/data/maps/RustboroCity_House2/map.json +++ b/data/maps/RustboroCity_House2/map.json @@ -2,7 +2,7 @@ "id": "MAP_RUSTBORO_CITY_HOUSE2", "name": "RustboroCity_House2", "layout": "LAYOUT_RUSTBORO_CITY_HOUSE", - "music": "MUS_GOTOWN", + "music": "MUS_RUSTBORO", "region_map_section": "MAPSEC_RUSTBORO_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/RustboroCity_House3/map.json b/data/maps/RustboroCity_House3/map.json index 3a757de8b1..491550a2c0 100644 --- a/data/maps/RustboroCity_House3/map.json +++ b/data/maps/RustboroCity_House3/map.json @@ -2,7 +2,7 @@ "id": "MAP_RUSTBORO_CITY_HOUSE3", "name": "RustboroCity_House3", "layout": "LAYOUT_RUSTBORO_CITY_HOUSE", - "music": "MUS_GOTOWN", + "music": "MUS_RUSTBORO", "region_map_section": "MAPSEC_RUSTBORO_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/RustboroCity_Mart/map.json b/data/maps/RustboroCity_Mart/map.json index 423fbb4e7b..1a5b4549f0 100644 --- a/data/maps/RustboroCity_Mart/map.json +++ b/data/maps/RustboroCity_Mart/map.json @@ -2,7 +2,7 @@ "id": "MAP_RUSTBORO_CITY_MART", "name": "RustboroCity_Mart", "layout": "LAYOUT_MART", - "music": "MUS_FRIENDLY", + "music": "MUS_POKE_MART", "region_map_section": "MAPSEC_RUSTBORO_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/RustboroCity_PokemonCenter_1F/map.json b/data/maps/RustboroCity_PokemonCenter_1F/map.json index e6c3326786..633626c4cb 100644 --- a/data/maps/RustboroCity_PokemonCenter_1F/map.json +++ b/data/maps/RustboroCity_PokemonCenter_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_RUSTBORO_CITY_POKEMON_CENTER_1F", "name": "RustboroCity_PokemonCenter_1F", "layout": "LAYOUT_POKEMON_CENTER_1F", - "music": "MUS_POKECEN", + "music": "MUS_POKE_CENTER", "region_map_section": "MAPSEC_RUSTBORO_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/RustboroCity_PokemonCenter_2F/map.json b/data/maps/RustboroCity_PokemonCenter_2F/map.json index dbdaddfc62..912e4b263e 100644 --- a/data/maps/RustboroCity_PokemonCenter_2F/map.json +++ b/data/maps/RustboroCity_PokemonCenter_2F/map.json @@ -2,7 +2,7 @@ "id": "MAP_RUSTBORO_CITY_POKEMON_CENTER_2F", "name": "RustboroCity_PokemonCenter_2F", "layout": "LAYOUT_POKEMON_CENTER_2F", - "music": "MUS_POKECEN", + "music": "MUS_POKE_CENTER", "region_map_section": "MAPSEC_RUSTBORO_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/RustboroCity_PokemonSchool/map.json b/data/maps/RustboroCity_PokemonSchool/map.json index af9b02d988..e299248a0b 100644 --- a/data/maps/RustboroCity_PokemonSchool/map.json +++ b/data/maps/RustboroCity_PokemonSchool/map.json @@ -2,7 +2,7 @@ "id": "MAP_RUSTBORO_CITY_POKEMON_SCHOOL", "name": "RustboroCity_PokemonSchool", "layout": "LAYOUT_RUSTBORO_CITY_POKEMON_SCHOOL", - "music": "MUS_P_SCHOOL", + "music": "MUS_SCHOOL", "region_map_section": "MAPSEC_RUSTBORO_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/RusturfTunnel/map.json b/data/maps/RusturfTunnel/map.json index 0d6ae7d9bf..d8531c879e 100644 --- a/data/maps/RusturfTunnel/map.json +++ b/data/maps/RusturfTunnel/map.json @@ -2,7 +2,7 @@ "id": "MAP_RUSTURF_TUNNEL", "name": "RusturfTunnel", "layout": "LAYOUT_RUSTURF_TUNNEL", - "music": "MUS_DAN01", + "music": "MUS_PETALBURG_WOODS", "region_map_section": "MAPSEC_RUSTURF_TUNNEL", "requires_flash": false, "weather": "WEATHER_FOG_HORIZONTAL", diff --git a/data/maps/RusturfTunnel/scripts.inc b/data/maps/RusturfTunnel/scripts.inc index a342135bf0..17a229ab54 100644 --- a/data/maps/RusturfTunnel/scripts.inc +++ b/data/maps/RusturfTunnel/scripts.inc @@ -316,7 +316,7 @@ RusturfTunnel_EventScript_Peeko:: @ 822D0AF RusturfTunnel_EventScript_Grunt:: @ 822D0C2 lock faceplayer - playbgm MUS_AQA_0, 0 + playbgm MUS_ENCOUNTER_AQUA, 0 msgbox RusturfTunnel_Text_GruntIntro, MSGBOX_DEFAULT trainerbattle_no_intro TRAINER_GRUNT_RUSTURF_TUNNEL, RusturfTunnel_Text_GruntDefeat msgbox RusturfTunnel_Text_GruntTakePackage, MSGBOX_DEFAULT diff --git a/data/maps/SSTidalCorridor/map.json b/data/maps/SSTidalCorridor/map.json index dc65b24432..7356e1fe00 100644 --- a/data/maps/SSTidalCorridor/map.json +++ b/data/maps/SSTidalCorridor/map.json @@ -2,7 +2,7 @@ "id": "MAP_SS_TIDAL_CORRIDOR", "name": "SSTidalCorridor", "layout": "LAYOUT_SS_TIDAL_CORRIDOR", - "music": "MUS_M_BOAT", + "music": "MUS_SAILING", "region_map_section": "MAPSEC_DYNAMIC", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SSTidalCorridor/scripts.inc b/data/maps/SSTidalCorridor/scripts.inc index a055c65484..b6fa7428e0 100644 --- a/data/maps/SSTidalCorridor/scripts.inc +++ b/data/maps/SSTidalCorridor/scripts.inc @@ -17,7 +17,7 @@ SSTidalCorridor_EventScript_DepartSlateportForLilycove:: @ 823BFFF special SetSSTidalFlag setvar VAR_SS_TIDAL_STATE, SS_TIDAL_DEPART_SLATEPORT lockall - playse SE_PINPON + playse SE_DING_DONG msgbox SSTidal_Text_FastCurrentsHopeYouEnjoyVoyage, MSGBOX_DEFAULT releaseall end @@ -25,7 +25,7 @@ SSTidalCorridor_EventScript_DepartSlateportForLilycove:: @ 823BFFF SSTidalCorridor_EventScript_DepartLilycoveForSlateport:: @ 823C015 setvar VAR_SS_TIDAL_STATE, SS_TIDAL_DEPART_LILYCOVE lockall - playse SE_PINPON + playse SE_DING_DONG msgbox SSTidal_Text_HopeYouEnjoyVoyage, MSGBOX_DEFAULT releaseall end @@ -33,14 +33,14 @@ SSTidalCorridor_EventScript_DepartLilycoveForSlateport:: @ 823C015 SSTidalRooms_EventScript_HalfwayToSlateport:: @ 823C028 special SetSSTidalFlag setvar VAR_SS_TIDAL_STATE, SS_TIDAL_HALFWAY_SLATEPORT - playse SE_PINPON + playse SE_DING_DONG msgbox SSTidal_Text_FastCurrentsHopeYouEnjoyVoyage, MSGBOX_DEFAULT return SSTidalRooms_EventScript_ArrivedInLilycove:: @ 823C03C special ResetSSTidalFlag setvar VAR_SS_TIDAL_STATE, SS_TIDAL_LAND_LILYCOVE - playse SE_PINPON + playse SE_DING_DONG msgbox SSTidal_Text_MadeLandInLilycove, MSGBOX_DEFAULT return @@ -55,7 +55,7 @@ SSTidalCorridor_EventScript_HalfwayToLilycove:: @ 823C067 special ResetSSTidalFlag setvar VAR_SS_TIDAL_STATE, SS_TIDAL_HALFWAY_LILYCOVE lockall - playse SE_PINPON + playse SE_DING_DONG msgbox SSTidal_Text_HopeYouEnjoyVoyage, MSGBOX_DEFAULT releaseall end @@ -64,7 +64,7 @@ SSTidalCorridor_EventScript_ArrivedInSlateport:: @ 823C07D special ResetSSTidalFlag setvar VAR_SS_TIDAL_STATE, SS_TIDAL_LAND_SLATEPORT lockall - playse SE_PINPON + playse SE_DING_DONG msgbox SSTidal_Text_MadeLandInSlateport, MSGBOX_DEFAULT releaseall end @@ -72,7 +72,7 @@ SSTidalCorridor_EventScript_ArrivedInSlateport:: @ 823C07D SSTidalRooms_EventScript_ArrivedInSlateport:: @ 823C093 special ResetSSTidalFlag setvar VAR_SS_TIDAL_STATE, SS_TIDAL_LAND_SLATEPORT - playse SE_PINPON + playse SE_DING_DONG msgbox SSTidal_Text_MadeLandInSlateport, MSGBOX_DEFAULT return @@ -204,7 +204,7 @@ SSTidalCorridor_EventScript_ScottScene:: @ 823C219 applymovement LOCALID_SAILOR, SSTidalCorridor_Movement_SailorMoveForScott applymovement LOCALID_SCOTT, SSTidalCorridor_Movement_ScottExit waitmovement 0 - playse SE_KAIDAN + playse SE_EXIT waitse removeobject LOCALID_SCOTT applymovement LOCALID_SAILOR, SSTidalCorridor_Movement_SailorReturn diff --git a/data/maps/SSTidalLowerDeck/map.json b/data/maps/SSTidalLowerDeck/map.json index 25a24c1b94..79331001af 100644 --- a/data/maps/SSTidalLowerDeck/map.json +++ b/data/maps/SSTidalLowerDeck/map.json @@ -2,7 +2,7 @@ "id": "MAP_SS_TIDAL_LOWER_DECK", "name": "SSTidalLowerDeck", "layout": "LAYOUT_SS_TIDAL_LOWER_DECK", - "music": "MUS_M_BOAT", + "music": "MUS_SAILING", "region_map_section": "MAPSEC_DYNAMIC", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SSTidalRooms/map.json b/data/maps/SSTidalRooms/map.json index 32fe402459..fd65d5ce26 100644 --- a/data/maps/SSTidalRooms/map.json +++ b/data/maps/SSTidalRooms/map.json @@ -2,7 +2,7 @@ "id": "MAP_SS_TIDAL_ROOMS", "name": "SSTidalRooms", "layout": "LAYOUT_SS_TIDAL_ROOMS", - "music": "MUS_M_BOAT", + "music": "MUS_SAILING", "region_map_section": "MAPSEC_DYNAMIC", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SafariZone_North/map.json b/data/maps/SafariZone_North/map.json index baccf04658..2419587d81 100644 --- a/data/maps/SafariZone_North/map.json +++ b/data/maps/SafariZone_North/map.json @@ -2,7 +2,7 @@ "id": "MAP_SAFARI_ZONE_NORTH", "name": "SafariZone_North", "layout": "LAYOUT_SAFARI_ZONE_NORTH", - "music": "MUS_SAFARI", + "music": "MUS_SAFARI_ZONE", "region_map_section": "MAPSEC_SAFARI_ZONE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SafariZone_Northeast/map.json b/data/maps/SafariZone_Northeast/map.json index 7855417f19..9104031072 100644 --- a/data/maps/SafariZone_Northeast/map.json +++ b/data/maps/SafariZone_Northeast/map.json @@ -2,7 +2,7 @@ "id": "MAP_SAFARI_ZONE_NORTHEAST", "name": "SafariZone_Northeast", "layout": "LAYOUT_SAFARI_ZONE_NORTHEAST", - "music": "MUS_SAFARI", + "music": "MUS_SAFARI_ZONE", "region_map_section": "MAPSEC_SAFARI_ZONE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SafariZone_Northwest/map.json b/data/maps/SafariZone_Northwest/map.json index 3974f00ded..1e27def2cd 100644 --- a/data/maps/SafariZone_Northwest/map.json +++ b/data/maps/SafariZone_Northwest/map.json @@ -2,7 +2,7 @@ "id": "MAP_SAFARI_ZONE_NORTHWEST", "name": "SafariZone_Northwest", "layout": "LAYOUT_SAFARI_ZONE_NORTHWEST", - "music": "MUS_SAFARI", + "music": "MUS_SAFARI_ZONE", "region_map_section": "MAPSEC_SAFARI_ZONE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SafariZone_RestHouse/map.json b/data/maps/SafariZone_RestHouse/map.json index cae90c79d0..e03b024ae9 100644 --- a/data/maps/SafariZone_RestHouse/map.json +++ b/data/maps/SafariZone_RestHouse/map.json @@ -2,7 +2,7 @@ "id": "MAP_SAFARI_ZONE_REST_HOUSE", "name": "SafariZone_RestHouse", "layout": "LAYOUT_SAFARI_ZONE_REST_HOUSE", - "music": "MUS_SAFARI", + "music": "MUS_SAFARI_ZONE", "region_map_section": "MAPSEC_SAFARI_ZONE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SafariZone_South/map.json b/data/maps/SafariZone_South/map.json index 78ab47f721..562b85b9e4 100644 --- a/data/maps/SafariZone_South/map.json +++ b/data/maps/SafariZone_South/map.json @@ -2,7 +2,7 @@ "id": "MAP_SAFARI_ZONE_SOUTH", "name": "SafariZone_South", "layout": "LAYOUT_SAFARI_ZONE_SOUTH", - "music": "MUS_SAFARI", + "music": "MUS_SAFARI_ZONE", "region_map_section": "MAPSEC_SAFARI_ZONE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SafariZone_Southeast/map.json b/data/maps/SafariZone_Southeast/map.json index 174014f3e9..723e874cc9 100644 --- a/data/maps/SafariZone_Southeast/map.json +++ b/data/maps/SafariZone_Southeast/map.json @@ -2,7 +2,7 @@ "id": "MAP_SAFARI_ZONE_SOUTHEAST", "name": "SafariZone_Southeast", "layout": "LAYOUT_SAFARI_ZONE_SOUTHEAST", - "music": "MUS_SAFARI", + "music": "MUS_SAFARI_ZONE", "region_map_section": "MAPSEC_SAFARI_ZONE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SafariZone_Southwest/map.json b/data/maps/SafariZone_Southwest/map.json index 95017668e8..42faf1f50a 100644 --- a/data/maps/SafariZone_Southwest/map.json +++ b/data/maps/SafariZone_Southwest/map.json @@ -2,7 +2,7 @@ "id": "MAP_SAFARI_ZONE_SOUTHWEST", "name": "SafariZone_Southwest", "layout": "LAYOUT_SAFARI_ZONE_SOUTHWEST", - "music": "MUS_SAFARI", + "music": "MUS_SAFARI_ZONE", "region_map_section": "MAPSEC_SAFARI_ZONE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/ScorchedSlab/map.json b/data/maps/ScorchedSlab/map.json index 86e06c2685..e90f1f5c1f 100644 --- a/data/maps/ScorchedSlab/map.json +++ b/data/maps/ScorchedSlab/map.json @@ -2,7 +2,7 @@ "id": "MAP_SCORCHED_SLAB", "name": "ScorchedSlab", "layout": "LAYOUT_SCORCHED_SLAB", - "music": "MUS_DAN01", + "music": "MUS_PETALBURG_WOODS", "region_map_section": "MAPSEC_SCORCHED_SLAB", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SeafloorCavern_Entrance/map.json b/data/maps/SeafloorCavern_Entrance/map.json index bc79a5f012..a80fce6c1a 100644 --- a/data/maps/SeafloorCavern_Entrance/map.json +++ b/data/maps/SeafloorCavern_Entrance/map.json @@ -2,7 +2,7 @@ "id": "MAP_SEAFLOOR_CAVERN_ENTRANCE", "name": "SeafloorCavern_Entrance", "layout": "LAYOUT_SEAFLOOR_CAVERN_ENTRANCE", - "music": "MUS_TOZAN", + "music": "MUS_MT_CHIMNEY", "region_map_section": "MAPSEC_SEAFLOOR_CAVERN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SeafloorCavern_Room1/map.json b/data/maps/SeafloorCavern_Room1/map.json index 0e6bd1bad0..2caa79414b 100644 --- a/data/maps/SeafloorCavern_Room1/map.json +++ b/data/maps/SeafloorCavern_Room1/map.json @@ -2,7 +2,7 @@ "id": "MAP_SEAFLOOR_CAVERN_ROOM1", "name": "SeafloorCavern_Room1", "layout": "LAYOUT_SEAFLOOR_CAVERN_ROOM1", - "music": "MUS_TOZAN", + "music": "MUS_MT_CHIMNEY", "region_map_section": "MAPSEC_SEAFLOOR_CAVERN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SeafloorCavern_Room2/map.json b/data/maps/SeafloorCavern_Room2/map.json index 1391cc3959..bfdd30499b 100644 --- a/data/maps/SeafloorCavern_Room2/map.json +++ b/data/maps/SeafloorCavern_Room2/map.json @@ -2,7 +2,7 @@ "id": "MAP_SEAFLOOR_CAVERN_ROOM2", "name": "SeafloorCavern_Room2", "layout": "LAYOUT_SEAFLOOR_CAVERN_ROOM2", - "music": "MUS_TOZAN", + "music": "MUS_MT_CHIMNEY", "region_map_section": "MAPSEC_SEAFLOOR_CAVERN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SeafloorCavern_Room3/map.json b/data/maps/SeafloorCavern_Room3/map.json index e40bcbcf5b..478e108be2 100644 --- a/data/maps/SeafloorCavern_Room3/map.json +++ b/data/maps/SeafloorCavern_Room3/map.json @@ -2,7 +2,7 @@ "id": "MAP_SEAFLOOR_CAVERN_ROOM3", "name": "SeafloorCavern_Room3", "layout": "LAYOUT_SEAFLOOR_CAVERN_ROOM3", - "music": "MUS_TOZAN", + "music": "MUS_MT_CHIMNEY", "region_map_section": "MAPSEC_SEAFLOOR_CAVERN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SeafloorCavern_Room4/map.json b/data/maps/SeafloorCavern_Room4/map.json index 80de38537a..9ea3528a31 100644 --- a/data/maps/SeafloorCavern_Room4/map.json +++ b/data/maps/SeafloorCavern_Room4/map.json @@ -2,7 +2,7 @@ "id": "MAP_SEAFLOOR_CAVERN_ROOM4", "name": "SeafloorCavern_Room4", "layout": "LAYOUT_SEAFLOOR_CAVERN_ROOM4", - "music": "MUS_TOZAN", + "music": "MUS_MT_CHIMNEY", "region_map_section": "MAPSEC_SEAFLOOR_CAVERN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SeafloorCavern_Room5/map.json b/data/maps/SeafloorCavern_Room5/map.json index 9d6ca9e6af..415e2a718f 100644 --- a/data/maps/SeafloorCavern_Room5/map.json +++ b/data/maps/SeafloorCavern_Room5/map.json @@ -2,7 +2,7 @@ "id": "MAP_SEAFLOOR_CAVERN_ROOM5", "name": "SeafloorCavern_Room5", "layout": "LAYOUT_SEAFLOOR_CAVERN_ROOM5", - "music": "MUS_TOZAN", + "music": "MUS_MT_CHIMNEY", "region_map_section": "MAPSEC_SEAFLOOR_CAVERN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SeafloorCavern_Room6/map.json b/data/maps/SeafloorCavern_Room6/map.json index eb4c7f9d9e..598f4a0427 100644 --- a/data/maps/SeafloorCavern_Room6/map.json +++ b/data/maps/SeafloorCavern_Room6/map.json @@ -2,7 +2,7 @@ "id": "MAP_SEAFLOOR_CAVERN_ROOM6", "name": "SeafloorCavern_Room6", "layout": "LAYOUT_SEAFLOOR_CAVERN_ROOM6", - "music": "MUS_TOZAN", + "music": "MUS_MT_CHIMNEY", "region_map_section": "MAPSEC_SEAFLOOR_CAVERN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SeafloorCavern_Room7/map.json b/data/maps/SeafloorCavern_Room7/map.json index 0f135d36a1..243a1f9d1a 100644 --- a/data/maps/SeafloorCavern_Room7/map.json +++ b/data/maps/SeafloorCavern_Room7/map.json @@ -2,7 +2,7 @@ "id": "MAP_SEAFLOOR_CAVERN_ROOM7", "name": "SeafloorCavern_Room7", "layout": "LAYOUT_SEAFLOOR_CAVERN_ROOM7", - "music": "MUS_TOZAN", + "music": "MUS_MT_CHIMNEY", "region_map_section": "MAPSEC_SEAFLOOR_CAVERN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SeafloorCavern_Room8/map.json b/data/maps/SeafloorCavern_Room8/map.json index 90cd3ae7a0..7c5d5c8200 100644 --- a/data/maps/SeafloorCavern_Room8/map.json +++ b/data/maps/SeafloorCavern_Room8/map.json @@ -2,7 +2,7 @@ "id": "MAP_SEAFLOOR_CAVERN_ROOM8", "name": "SeafloorCavern_Room8", "layout": "LAYOUT_SEAFLOOR_CAVERN_ROOM8", - "music": "MUS_TOZAN", + "music": "MUS_MT_CHIMNEY", "region_map_section": "MAPSEC_SEAFLOOR_CAVERN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SeafloorCavern_Room9/map.json b/data/maps/SeafloorCavern_Room9/map.json index cd52634882..94ef88e849 100644 --- a/data/maps/SeafloorCavern_Room9/map.json +++ b/data/maps/SeafloorCavern_Room9/map.json @@ -2,7 +2,7 @@ "id": "MAP_SEAFLOOR_CAVERN_ROOM9", "name": "SeafloorCavern_Room9", "layout": "LAYOUT_SEAFLOOR_CAVERN_ROOM9", - "music": "MUS_TOZAN", + "music": "MUS_MT_CHIMNEY", "region_map_section": "MAPSEC_SEAFLOOR_CAVERN", "requires_flash": false, "weather": "WEATHER_FOG_HORIZONTAL", diff --git a/data/maps/SeafloorCavern_Room9/scripts.inc b/data/maps/SeafloorCavern_Room9/scripts.inc index 6672519367..63c5853c35 100644 --- a/data/maps/SeafloorCavern_Room9/scripts.inc +++ b/data/maps/SeafloorCavern_Room9/scripts.inc @@ -18,7 +18,7 @@ SeafloorCavern_Room9_EventScript_ArchieAwakenKyogre:: @ 8234DC9 waitmovement 0 applymovement OBJ_EVENT_ID_PLAYER, SeafloorCavern_Room9_Movement_Delay32 waitmovement 0 - playbgm MUS_AQA_0, 0 + playbgm MUS_ENCOUNTER_AQUA, 0 msgbox SeafloorCavern_Room9_Text_ArchieHoldItRightThere, MSGBOX_DEFAULT closemessage addobject VAR_0x8004 @@ -43,13 +43,13 @@ SeafloorCavern_Room9_EventScript_ArchieAwakenKyogre:: @ 8234DC9 special WaitWeather waitstate setvar VAR_RESULT, 1 - playse SE_W197 + playse SE_M_DETECT dofieldeffectsparkle 16, 42, 0 waitfieldeffect FLDEFF_SPARKLE closemessage setvar VAR_RESULT, 0 - playfanfare MUS_ME_TAMA - playse SE_TAMA + playfanfare MUS_AWAKEN_LEGEND + playse SE_ORB special DoOrbEffect applymovement VAR_0x8004, Common_Movement_WalkInPlaceFastestUp applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFastestUp diff --git a/data/maps/SealedChamber_InnerRoom/map.json b/data/maps/SealedChamber_InnerRoom/map.json index febf5defac..1f8e741d8f 100644 --- a/data/maps/SealedChamber_InnerRoom/map.json +++ b/data/maps/SealedChamber_InnerRoom/map.json @@ -2,7 +2,7 @@ "id": "MAP_SEALED_CHAMBER_INNER_ROOM", "name": "SealedChamber_InnerRoom", "layout": "LAYOUT_SEALED_CHAMBER_INNER_ROOM", - "music": "MUS_MABOROSI", + "music": "MUS_SEALED_CHAMBER", "region_map_section": "MAPSEC_SEALED_CHAMBER", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SealedChamber_InnerRoom/scripts.inc b/data/maps/SealedChamber_InnerRoom/scripts.inc index 15c98e57e5..c31bb7efce 100644 --- a/data/maps/SealedChamber_InnerRoom/scripts.inc +++ b/data/maps/SealedChamber_InnerRoom/scripts.inc @@ -11,7 +11,7 @@ SealedChamber_InnerRoom_EventScript_BrailleBackWall:: @ 82391F8 compare VAR_RESULT, FALSE goto_if_eq SealedChamber_InnerRoom_EventScript_NoEffect fadeoutbgm 0 - playse SE_TRACK_MOVE + playse SE_TRUCK_MOVE special DoSealedChamberShakingEffect1 waitstate delay 40 diff --git a/data/maps/SealedChamber_OuterRoom/map.json b/data/maps/SealedChamber_OuterRoom/map.json index 88694940b5..e16350d7e7 100644 --- a/data/maps/SealedChamber_OuterRoom/map.json +++ b/data/maps/SealedChamber_OuterRoom/map.json @@ -2,7 +2,7 @@ "id": "MAP_SEALED_CHAMBER_OUTER_ROOM", "name": "SealedChamber_OuterRoom", "layout": "LAYOUT_SEALED_CHAMBER_OUTER_ROOM", - "music": "MUS_MABOROSI", + "music": "MUS_SEALED_CHAMBER", "region_map_section": "MAPSEC_SEALED_CHAMBER", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SecretBase_BlueCave1/map.json b/data/maps/SecretBase_BlueCave1/map.json index 8690a8aadc..3fb6157cca 100644 --- a/data/maps/SecretBase_BlueCave1/map.json +++ b/data/maps/SecretBase_BlueCave1/map.json @@ -3,7 +3,7 @@ "name": "SecretBase_BlueCave1", "shared_scripts_map": "SecretBase", "layout": "LAYOUT_SECRET_BASE_BLUE_CAVE1", - "music": "MUS_MACHI_S3", + "music": "MUS_FORTREE", "region_map_section": "MAPSEC_SECRET_BASE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SecretBase_BlueCave2/map.json b/data/maps/SecretBase_BlueCave2/map.json index feee5c585d..ca15e39f18 100644 --- a/data/maps/SecretBase_BlueCave2/map.json +++ b/data/maps/SecretBase_BlueCave2/map.json @@ -3,7 +3,7 @@ "name": "SecretBase_BlueCave2", "shared_scripts_map": "SecretBase", "layout": "LAYOUT_SECRET_BASE_BLUE_CAVE2", - "music": "MUS_MACHI_S3", + "music": "MUS_FORTREE", "region_map_section": "MAPSEC_SECRET_BASE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SecretBase_BlueCave3/map.json b/data/maps/SecretBase_BlueCave3/map.json index c26af7cba7..356b4894d4 100644 --- a/data/maps/SecretBase_BlueCave3/map.json +++ b/data/maps/SecretBase_BlueCave3/map.json @@ -3,7 +3,7 @@ "name": "SecretBase_BlueCave3", "shared_scripts_map": "SecretBase", "layout": "LAYOUT_SECRET_BASE_BLUE_CAVE3", - "music": "MUS_MACHI_S3", + "music": "MUS_FORTREE", "region_map_section": "MAPSEC_SECRET_BASE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SecretBase_BlueCave4/map.json b/data/maps/SecretBase_BlueCave4/map.json index 3dc34e1884..078bada8e6 100644 --- a/data/maps/SecretBase_BlueCave4/map.json +++ b/data/maps/SecretBase_BlueCave4/map.json @@ -3,7 +3,7 @@ "name": "SecretBase_BlueCave4", "shared_scripts_map": "SecretBase", "layout": "LAYOUT_SECRET_BASE_BLUE_CAVE4", - "music": "MUS_MACHI_S3", + "music": "MUS_FORTREE", "region_map_section": "MAPSEC_SECRET_BASE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SecretBase_BrownCave1/map.json b/data/maps/SecretBase_BrownCave1/map.json index 0671d40a3d..6f2dc92f24 100644 --- a/data/maps/SecretBase_BrownCave1/map.json +++ b/data/maps/SecretBase_BrownCave1/map.json @@ -3,7 +3,7 @@ "name": "SecretBase_BrownCave1", "shared_scripts_map": "SecretBase", "layout": "LAYOUT_SECRET_BASE_BROWN_CAVE1", - "music": "MUS_MACHI_S3", + "music": "MUS_FORTREE", "region_map_section": "MAPSEC_SECRET_BASE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SecretBase_BrownCave2/map.json b/data/maps/SecretBase_BrownCave2/map.json index 5fc3df0e50..11559c12fb 100644 --- a/data/maps/SecretBase_BrownCave2/map.json +++ b/data/maps/SecretBase_BrownCave2/map.json @@ -3,7 +3,7 @@ "name": "SecretBase_BrownCave2", "shared_scripts_map": "SecretBase", "layout": "LAYOUT_SECRET_BASE_BROWN_CAVE2", - "music": "MUS_MACHI_S3", + "music": "MUS_FORTREE", "region_map_section": "MAPSEC_SECRET_BASE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SecretBase_BrownCave3/map.json b/data/maps/SecretBase_BrownCave3/map.json index 29a27ad397..c2dbb7fc45 100644 --- a/data/maps/SecretBase_BrownCave3/map.json +++ b/data/maps/SecretBase_BrownCave3/map.json @@ -3,7 +3,7 @@ "name": "SecretBase_BrownCave3", "shared_scripts_map": "SecretBase", "layout": "LAYOUT_SECRET_BASE_BROWN_CAVE3", - "music": "MUS_MACHI_S3", + "music": "MUS_FORTREE", "region_map_section": "MAPSEC_SECRET_BASE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SecretBase_BrownCave4/map.json b/data/maps/SecretBase_BrownCave4/map.json index 05d9fff3ef..e7147ae85d 100644 --- a/data/maps/SecretBase_BrownCave4/map.json +++ b/data/maps/SecretBase_BrownCave4/map.json @@ -3,7 +3,7 @@ "name": "SecretBase_BrownCave4", "shared_scripts_map": "SecretBase", "layout": "LAYOUT_SECRET_BASE_BROWN_CAVE4", - "music": "MUS_MACHI_S3", + "music": "MUS_FORTREE", "region_map_section": "MAPSEC_SECRET_BASE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SecretBase_RedCave1/map.json b/data/maps/SecretBase_RedCave1/map.json index 8a3be38be9..fd264fc6cf 100644 --- a/data/maps/SecretBase_RedCave1/map.json +++ b/data/maps/SecretBase_RedCave1/map.json @@ -3,7 +3,7 @@ "name": "SecretBase_RedCave1", "shared_scripts_map": "SecretBase", "layout": "LAYOUT_SECRET_BASE_RED_CAVE1", - "music": "MUS_MACHI_S3", + "music": "MUS_FORTREE", "region_map_section": "MAPSEC_SECRET_BASE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SecretBase_RedCave2/map.json b/data/maps/SecretBase_RedCave2/map.json index 71c64bb775..b60b3bbff2 100644 --- a/data/maps/SecretBase_RedCave2/map.json +++ b/data/maps/SecretBase_RedCave2/map.json @@ -3,7 +3,7 @@ "name": "SecretBase_RedCave2", "shared_scripts_map": "SecretBase", "layout": "LAYOUT_SECRET_BASE_RED_CAVE2", - "music": "MUS_MACHI_S3", + "music": "MUS_FORTREE", "region_map_section": "MAPSEC_SECRET_BASE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SecretBase_RedCave3/map.json b/data/maps/SecretBase_RedCave3/map.json index e30c50b466..079837a621 100644 --- a/data/maps/SecretBase_RedCave3/map.json +++ b/data/maps/SecretBase_RedCave3/map.json @@ -3,7 +3,7 @@ "name": "SecretBase_RedCave3", "shared_scripts_map": "SecretBase", "layout": "LAYOUT_SECRET_BASE_RED_CAVE3", - "music": "MUS_MACHI_S3", + "music": "MUS_FORTREE", "region_map_section": "MAPSEC_SECRET_BASE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SecretBase_RedCave4/map.json b/data/maps/SecretBase_RedCave4/map.json index d1abb1a74b..10fbbfeb0d 100644 --- a/data/maps/SecretBase_RedCave4/map.json +++ b/data/maps/SecretBase_RedCave4/map.json @@ -3,7 +3,7 @@ "name": "SecretBase_RedCave4", "shared_scripts_map": "SecretBase", "layout": "LAYOUT_SECRET_BASE_RED_CAVE4", - "music": "MUS_MACHI_S3", + "music": "MUS_FORTREE", "region_map_section": "MAPSEC_SECRET_BASE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SecretBase_Shrub1/map.json b/data/maps/SecretBase_Shrub1/map.json index 5dba2b1435..e0d1015cbb 100644 --- a/data/maps/SecretBase_Shrub1/map.json +++ b/data/maps/SecretBase_Shrub1/map.json @@ -3,7 +3,7 @@ "name": "SecretBase_Shrub1", "shared_scripts_map": "SecretBase", "layout": "LAYOUT_SECRET_BASE_SHRUB1", - "music": "MUS_MACHI_S3", + "music": "MUS_FORTREE", "region_map_section": "MAPSEC_SECRET_BASE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SecretBase_Shrub2/map.json b/data/maps/SecretBase_Shrub2/map.json index cdd5b1e00b..879b7464e9 100644 --- a/data/maps/SecretBase_Shrub2/map.json +++ b/data/maps/SecretBase_Shrub2/map.json @@ -3,7 +3,7 @@ "name": "SecretBase_Shrub2", "shared_scripts_map": "SecretBase", "layout": "LAYOUT_SECRET_BASE_SHRUB2", - "music": "MUS_MACHI_S3", + "music": "MUS_FORTREE", "region_map_section": "MAPSEC_SECRET_BASE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SecretBase_Shrub3/map.json b/data/maps/SecretBase_Shrub3/map.json index cbdb08664e..6751a74147 100644 --- a/data/maps/SecretBase_Shrub3/map.json +++ b/data/maps/SecretBase_Shrub3/map.json @@ -3,7 +3,7 @@ "name": "SecretBase_Shrub3", "shared_scripts_map": "SecretBase", "layout": "LAYOUT_SECRET_BASE_SHRUB3", - "music": "MUS_MACHI_S3", + "music": "MUS_FORTREE", "region_map_section": "MAPSEC_SECRET_BASE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SecretBase_Shrub4/map.json b/data/maps/SecretBase_Shrub4/map.json index 3a7caee6be..c193b8348e 100644 --- a/data/maps/SecretBase_Shrub4/map.json +++ b/data/maps/SecretBase_Shrub4/map.json @@ -3,7 +3,7 @@ "name": "SecretBase_Shrub4", "shared_scripts_map": "SecretBase", "layout": "LAYOUT_SECRET_BASE_SHRUB4", - "music": "MUS_MACHI_S3", + "music": "MUS_FORTREE", "region_map_section": "MAPSEC_SECRET_BASE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SecretBase_Tree1/map.json b/data/maps/SecretBase_Tree1/map.json index f9430cf0df..cd0cad5f08 100644 --- a/data/maps/SecretBase_Tree1/map.json +++ b/data/maps/SecretBase_Tree1/map.json @@ -3,7 +3,7 @@ "name": "SecretBase_Tree1", "shared_scripts_map": "SecretBase", "layout": "LAYOUT_SECRET_BASE_TREE1", - "music": "MUS_MACHI_S3", + "music": "MUS_FORTREE", "region_map_section": "MAPSEC_SECRET_BASE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SecretBase_Tree2/map.json b/data/maps/SecretBase_Tree2/map.json index 79b1928b18..1ac393a158 100644 --- a/data/maps/SecretBase_Tree2/map.json +++ b/data/maps/SecretBase_Tree2/map.json @@ -3,7 +3,7 @@ "name": "SecretBase_Tree2", "shared_scripts_map": "SecretBase", "layout": "LAYOUT_SECRET_BASE_TREE2", - "music": "MUS_MACHI_S3", + "music": "MUS_FORTREE", "region_map_section": "MAPSEC_SECRET_BASE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SecretBase_Tree3/map.json b/data/maps/SecretBase_Tree3/map.json index 9454cea0b7..b7eec22440 100644 --- a/data/maps/SecretBase_Tree3/map.json +++ b/data/maps/SecretBase_Tree3/map.json @@ -3,7 +3,7 @@ "name": "SecretBase_Tree3", "shared_scripts_map": "SecretBase", "layout": "LAYOUT_SECRET_BASE_TREE3", - "music": "MUS_MACHI_S3", + "music": "MUS_FORTREE", "region_map_section": "MAPSEC_SECRET_BASE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SecretBase_Tree4/map.json b/data/maps/SecretBase_Tree4/map.json index 8f9b0ebf7d..0e068ec94d 100644 --- a/data/maps/SecretBase_Tree4/map.json +++ b/data/maps/SecretBase_Tree4/map.json @@ -3,7 +3,7 @@ "name": "SecretBase_Tree4", "shared_scripts_map": "SecretBase", "layout": "LAYOUT_SECRET_BASE_TREE4", - "music": "MUS_MACHI_S3", + "music": "MUS_FORTREE", "region_map_section": "MAPSEC_SECRET_BASE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SecretBase_YellowCave1/map.json b/data/maps/SecretBase_YellowCave1/map.json index 2bdf097c9a..1d873bfe29 100644 --- a/data/maps/SecretBase_YellowCave1/map.json +++ b/data/maps/SecretBase_YellowCave1/map.json @@ -3,7 +3,7 @@ "name": "SecretBase_YellowCave1", "shared_scripts_map": "SecretBase", "layout": "LAYOUT_SECRET_BASE_YELLOW_CAVE1", - "music": "MUS_MACHI_S3", + "music": "MUS_FORTREE", "region_map_section": "MAPSEC_SECRET_BASE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SecretBase_YellowCave2/map.json b/data/maps/SecretBase_YellowCave2/map.json index 79d4e6950c..af2e957bc6 100644 --- a/data/maps/SecretBase_YellowCave2/map.json +++ b/data/maps/SecretBase_YellowCave2/map.json @@ -3,7 +3,7 @@ "name": "SecretBase_YellowCave2", "shared_scripts_map": "SecretBase", "layout": "LAYOUT_SECRET_BASE_YELLOW_CAVE2", - "music": "MUS_MACHI_S3", + "music": "MUS_FORTREE", "region_map_section": "MAPSEC_SECRET_BASE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SecretBase_YellowCave3/map.json b/data/maps/SecretBase_YellowCave3/map.json index 29ea865cad..d78aa28628 100644 --- a/data/maps/SecretBase_YellowCave3/map.json +++ b/data/maps/SecretBase_YellowCave3/map.json @@ -3,7 +3,7 @@ "name": "SecretBase_YellowCave3", "shared_scripts_map": "SecretBase", "layout": "LAYOUT_SECRET_BASE_YELLOW_CAVE3", - "music": "MUS_MACHI_S3", + "music": "MUS_FORTREE", "region_map_section": "MAPSEC_SECRET_BASE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SecretBase_YellowCave4/map.json b/data/maps/SecretBase_YellowCave4/map.json index df2db85bd9..0ca4bc4d32 100644 --- a/data/maps/SecretBase_YellowCave4/map.json +++ b/data/maps/SecretBase_YellowCave4/map.json @@ -3,7 +3,7 @@ "name": "SecretBase_YellowCave4", "shared_scripts_map": "SecretBase", "layout": "LAYOUT_SECRET_BASE_YELLOW_CAVE4", - "music": "MUS_MACHI_S3", + "music": "MUS_FORTREE", "region_map_section": "MAPSEC_SECRET_BASE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/ShoalCave_HighTideEntranceRoom/map.json b/data/maps/ShoalCave_HighTideEntranceRoom/map.json index 8dec3b1e28..9d3c5156b6 100644 --- a/data/maps/ShoalCave_HighTideEntranceRoom/map.json +++ b/data/maps/ShoalCave_HighTideEntranceRoom/map.json @@ -2,7 +2,7 @@ "id": "MAP_SHOAL_CAVE_HIGH_TIDE_ENTRANCE_ROOM", "name": "ShoalCave_HighTideEntranceRoom", "layout": "LAYOUT_SHOAL_CAVE_HIGH_TIDE_ENTRANCE_ROOM", - "music": "MUS_M_DUNGON", + "music": "MUS_MT_PYRE", "region_map_section": "MAPSEC_SHOAL_CAVE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/ShoalCave_HighTideInnerRoom/map.json b/data/maps/ShoalCave_HighTideInnerRoom/map.json index 280397a932..2f183d3ae5 100644 --- a/data/maps/ShoalCave_HighTideInnerRoom/map.json +++ b/data/maps/ShoalCave_HighTideInnerRoom/map.json @@ -2,7 +2,7 @@ "id": "MAP_SHOAL_CAVE_HIGH_TIDE_INNER_ROOM", "name": "ShoalCave_HighTideInnerRoom", "layout": "LAYOUT_SHOAL_CAVE_HIGH_TIDE_INNER_ROOM", - "music": "MUS_M_DUNGON", + "music": "MUS_MT_PYRE", "region_map_section": "MAPSEC_SHOAL_CAVE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/ShoalCave_LowTideEntranceRoom/map.json b/data/maps/ShoalCave_LowTideEntranceRoom/map.json index c357ad5d73..ba71e10856 100644 --- a/data/maps/ShoalCave_LowTideEntranceRoom/map.json +++ b/data/maps/ShoalCave_LowTideEntranceRoom/map.json @@ -2,7 +2,7 @@ "id": "MAP_SHOAL_CAVE_LOW_TIDE_ENTRANCE_ROOM", "name": "ShoalCave_LowTideEntranceRoom", "layout": "LAYOUT_SHOAL_CAVE_LOW_TIDE_ENTRANCE_ROOM", - "music": "MUS_M_DUNGON", + "music": "MUS_MT_PYRE", "region_map_section": "MAPSEC_SHOAL_CAVE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/ShoalCave_LowTideIceRoom/map.json b/data/maps/ShoalCave_LowTideIceRoom/map.json index d8ecab059c..ea4f0cedf4 100644 --- a/data/maps/ShoalCave_LowTideIceRoom/map.json +++ b/data/maps/ShoalCave_LowTideIceRoom/map.json @@ -2,7 +2,7 @@ "id": "MAP_SHOAL_CAVE_LOW_TIDE_ICE_ROOM", "name": "ShoalCave_LowTideIceRoom", "layout": "LAYOUT_SHOAL_CAVE_LOW_TIDE_ICE_ROOM", - "music": "MUS_M_DUNGON", + "music": "MUS_MT_PYRE", "region_map_section": "MAPSEC_SHOAL_CAVE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/ShoalCave_LowTideInnerRoom/map.json b/data/maps/ShoalCave_LowTideInnerRoom/map.json index 1d0f44e0e5..bf172e8b4e 100644 --- a/data/maps/ShoalCave_LowTideInnerRoom/map.json +++ b/data/maps/ShoalCave_LowTideInnerRoom/map.json @@ -2,7 +2,7 @@ "id": "MAP_SHOAL_CAVE_LOW_TIDE_INNER_ROOM", "name": "ShoalCave_LowTideInnerRoom", "layout": "LAYOUT_SHOAL_CAVE_LOW_TIDE_INNER_ROOM", - "music": "MUS_M_DUNGON", + "music": "MUS_MT_PYRE", "region_map_section": "MAPSEC_SHOAL_CAVE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/ShoalCave_LowTideLowerRoom/map.json b/data/maps/ShoalCave_LowTideLowerRoom/map.json index 40adf38ccd..719841ec0d 100644 --- a/data/maps/ShoalCave_LowTideLowerRoom/map.json +++ b/data/maps/ShoalCave_LowTideLowerRoom/map.json @@ -2,7 +2,7 @@ "id": "MAP_SHOAL_CAVE_LOW_TIDE_LOWER_ROOM", "name": "ShoalCave_LowTideLowerRoom", "layout": "LAYOUT_SHOAL_CAVE_LOW_TIDE_LOWER_ROOM", - "music": "MUS_M_DUNGON", + "music": "MUS_MT_PYRE", "region_map_section": "MAPSEC_SHOAL_CAVE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/ShoalCave_LowTideStairsRoom/map.json b/data/maps/ShoalCave_LowTideStairsRoom/map.json index a2ea91b5b1..4207c95843 100644 --- a/data/maps/ShoalCave_LowTideStairsRoom/map.json +++ b/data/maps/ShoalCave_LowTideStairsRoom/map.json @@ -2,7 +2,7 @@ "id": "MAP_SHOAL_CAVE_LOW_TIDE_STAIRS_ROOM", "name": "ShoalCave_LowTideStairsRoom", "layout": "LAYOUT_SHOAL_CAVE_LOW_TIDE_STAIRS_ROOM", - "music": "MUS_M_DUNGON", + "music": "MUS_MT_PYRE", "region_map_section": "MAPSEC_SHOAL_CAVE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SkyPillar_1F/map.json b/data/maps/SkyPillar_1F/map.json index 17528b619d..6ce499be2f 100644 --- a/data/maps/SkyPillar_1F/map.json +++ b/data/maps/SkyPillar_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_SKY_PILLAR_1F", "name": "SkyPillar_1F", "layout": "LAYOUT_SKY_PILLAR_1F", - "music": "MUS_TOZAN", + "music": "MUS_MT_CHIMNEY", "region_map_section": "MAPSEC_SKY_PILLAR", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SkyPillar_2F/map.json b/data/maps/SkyPillar_2F/map.json index 1430f9dc7a..7b534c2f75 100644 --- a/data/maps/SkyPillar_2F/map.json +++ b/data/maps/SkyPillar_2F/map.json @@ -2,7 +2,7 @@ "id": "MAP_SKY_PILLAR_2F", "name": "SkyPillar_2F", "layout": "LAYOUT_SKY_PILLAR_2F", - "music": "MUS_TOZAN", + "music": "MUS_MT_CHIMNEY", "region_map_section": "MAPSEC_SKY_PILLAR", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SkyPillar_3F/map.json b/data/maps/SkyPillar_3F/map.json index ddec299b5f..c05324f109 100644 --- a/data/maps/SkyPillar_3F/map.json +++ b/data/maps/SkyPillar_3F/map.json @@ -2,7 +2,7 @@ "id": "MAP_SKY_PILLAR_3F", "name": "SkyPillar_3F", "layout": "LAYOUT_SKY_PILLAR_3F", - "music": "MUS_TOZAN", + "music": "MUS_MT_CHIMNEY", "region_map_section": "MAPSEC_SKY_PILLAR", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SkyPillar_4F/map.json b/data/maps/SkyPillar_4F/map.json index 9c12a20712..7b5ad062e3 100644 --- a/data/maps/SkyPillar_4F/map.json +++ b/data/maps/SkyPillar_4F/map.json @@ -2,7 +2,7 @@ "id": "MAP_SKY_PILLAR_4F", "name": "SkyPillar_4F", "layout": "LAYOUT_SKY_PILLAR_4F", - "music": "MUS_TOZAN", + "music": "MUS_MT_CHIMNEY", "region_map_section": "MAPSEC_SKY_PILLAR", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SkyPillar_5F/map.json b/data/maps/SkyPillar_5F/map.json index 2638cb92c0..5be104fb0f 100644 --- a/data/maps/SkyPillar_5F/map.json +++ b/data/maps/SkyPillar_5F/map.json @@ -2,7 +2,7 @@ "id": "MAP_SKY_PILLAR_5F", "name": "SkyPillar_5F", "layout": "LAYOUT_SKY_PILLAR_5F", - "music": "MUS_TOZAN", + "music": "MUS_MT_CHIMNEY", "region_map_section": "MAPSEC_SKY_PILLAR", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SkyPillar_Entrance/map.json b/data/maps/SkyPillar_Entrance/map.json index 709f0af8d4..c880da6ea9 100644 --- a/data/maps/SkyPillar_Entrance/map.json +++ b/data/maps/SkyPillar_Entrance/map.json @@ -2,7 +2,7 @@ "id": "MAP_SKY_PILLAR_ENTRANCE", "name": "SkyPillar_Entrance", "layout": "LAYOUT_SKY_PILLAR_ENTRANCE", - "music": "MUS_TOZAN", + "music": "MUS_MT_CHIMNEY", "region_map_section": "MAPSEC_SKY_PILLAR", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SkyPillar_Outside/map.json b/data/maps/SkyPillar_Outside/map.json index 35721fd41a..b0d4e198b4 100644 --- a/data/maps/SkyPillar_Outside/map.json +++ b/data/maps/SkyPillar_Outside/map.json @@ -2,7 +2,7 @@ "id": "MAP_SKY_PILLAR_OUTSIDE", "name": "SkyPillar_Outside", "layout": "LAYOUT_SKY_PILLAR_OUTSIDE", - "music": "MUS_TOZAN", + "music": "MUS_MT_CHIMNEY", "region_map_section": "MAPSEC_SKY_PILLAR", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SkyPillar_Outside/scripts.inc b/data/maps/SkyPillar_Outside/scripts.inc index 60a1702abc..2e0495bcaa 100644 --- a/data/maps/SkyPillar_Outside/scripts.inc +++ b/data/maps/SkyPillar_Outside/scripts.inc @@ -81,7 +81,7 @@ SkyPillar_Outside_EventScript_WallaceScene:: @ 8239304 delay 30 msgbox SkyPillar_Outside_Text_GotToGoBackForSootopolis, MSGBOX_DEFAULT closemessage - playse SE_KAIDAN + playse SE_EXIT fadescreenswapbuffers FADE_TO_BLACK clearflag FLAG_HIDE_MAP_NAME_POPUP setvar VAR_SOOTOPOLIS_CITY_STATE, 4 diff --git a/data/maps/SkyPillar_Top/map.json b/data/maps/SkyPillar_Top/map.json index 8da3ca5254..90301c53bf 100644 --- a/data/maps/SkyPillar_Top/map.json +++ b/data/maps/SkyPillar_Top/map.json @@ -2,7 +2,7 @@ "id": "MAP_SKY_PILLAR_TOP", "name": "SkyPillar_Top", "layout": "LAYOUT_SKY_PILLAR_TOP", - "music": "MUS_TOZAN", + "music": "MUS_MT_CHIMNEY", "region_map_section": "MAPSEC_SKY_PILLAR", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SlateportCity/map.json b/data/maps/SlateportCity/map.json index 40ebfbc119..6ffed4b454 100644 --- a/data/maps/SlateportCity/map.json +++ b/data/maps/SlateportCity/map.json @@ -2,7 +2,7 @@ "id": "MAP_SLATEPORT_CITY", "name": "SlateportCity", "layout": "LAYOUT_SLATEPORT_CITY", - "music": "MUS_FINECITY", + "music": "MUS_SLATEPORT", "region_map_section": "MAPSEC_SLATEPORT_CITY", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/SlateportCity/scripts.inc b/data/maps/SlateportCity/scripts.inc index 055e13565b..983ce97969 100644 --- a/data/maps/SlateportCity/scripts.inc +++ b/data/maps/SlateportCity/scripts.inc @@ -91,7 +91,7 @@ SlateportCity_EventScript_ScottScene:: @ 81DCD1C msgbox SlateportCity_Text_LetsRegisterEachOther, MSGBOX_DEFAULT closemessage delay 30 - playfanfare MUS_ME_TORE_EYE + playfanfare MUS_REGISTER_MATCH_CALL msgbox SlateportCity_Text_RegisteredScott, MSGBOX_DEFAULT waitfanfare closemessage @@ -170,7 +170,7 @@ SlateportCity_EventScript_EffortRibbonWoman:: @ 81DCDE4 compare VAR_RESULT, FALSE call_if_eq SlateportCity_EventScript_MonEVsNotMaxed msgbox SlateportCity_Text_PleaseGiveItThisEffortRibbon, MSGBOX_DEFAULT - playfanfare MUS_FANFA4 + playfanfare MUS_OBTAIN_ITEM message SlateportCity_Text_ReceivedEffortRibbon waitfanfare msgbox SlateportCity_Text_PutEffortRibbonOnMon, MSGBOX_DEFAULT @@ -603,7 +603,7 @@ SlateportCity_EventScript_CaptStern:: @ 81DD1F8 applymovement LOCALID_CAPT_STERN, Common_Movement_WalkInPlaceFastestUp waitmovement 0 msgbox SlateportCity_Text_OhPlayerWeMadeDiscovery, MSGBOX_DEFAULT - playbgm MUS_AQA_0, 0 + playbgm MUS_ENCOUNTER_AQUA, 0 msgbox SlateportCity_Text_AquaWillAssumeControlOfSubmarine, MSGBOX_DEFAULT applymovement LOCALID_COOK, Common_Movement_WalkInPlaceFastestLeft applymovement LOCALID_FAT_MAN, Common_Movement_WalkInPlaceFastestLeft diff --git a/data/maps/SlateportCity_BattleTentBattleRoom/map.json b/data/maps/SlateportCity_BattleTentBattleRoom/map.json index 4bc1ea9f15..27cce84b49 100644 --- a/data/maps/SlateportCity_BattleTentBattleRoom/map.json +++ b/data/maps/SlateportCity_BattleTentBattleRoom/map.json @@ -2,7 +2,7 @@ "id": "MAP_SLATEPORT_CITY_BATTLE_TENT_BATTLE_ROOM", "name": "SlateportCity_BattleTentBattleRoom", "layout": "LAYOUT_BATTLE_TENT_BATTLE_ROOM", - "music": "MUS_B_TOWER", + "music": "MUS_B_TOWER_RS", "region_map_section": "MAPSEC_SLATEPORT_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SlateportCity_BattleTentCorridor/map.json b/data/maps/SlateportCity_BattleTentCorridor/map.json index e285ccdb1d..c9cd4b1a71 100644 --- a/data/maps/SlateportCity_BattleTentCorridor/map.json +++ b/data/maps/SlateportCity_BattleTentCorridor/map.json @@ -2,7 +2,7 @@ "id": "MAP_SLATEPORT_CITY_BATTLE_TENT_CORRIDOR", "name": "SlateportCity_BattleTentCorridor", "layout": "LAYOUT_BATTLE_TENT_CORRIDOR", - "music": "MUS_B_TOWER", + "music": "MUS_B_TOWER_RS", "region_map_section": "MAPSEC_SLATEPORT_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SlateportCity_BattleTentCorridor/scripts.inc b/data/maps/SlateportCity_BattleTentCorridor/scripts.inc index 85a95ded86..c018f54b9d 100644 --- a/data/maps/SlateportCity_BattleTentCorridor/scripts.inc +++ b/data/maps/SlateportCity_BattleTentCorridor/scripts.inc @@ -60,7 +60,7 @@ SlateportCity_BattleTentCorridor_EventScript_ReturnToRoomFromBattle:: @ 8208EEE factory_setopponentmons factory_resethelditems msgbox BattleFrontier_BattleFactoryPreBattleRoom_Text_LetUsRestoreMons, MSGBOX_DEFAULT - playfanfare MUS_ME_ASA + playfanfare MUS_HEAL waitfanfare special HealPlayerParty SlateportCity_BattleTentCorridor_EventScript_AskReadyForOpponent:: @ 8208F0D diff --git a/data/maps/SlateportCity_BattleTentLobby/map.json b/data/maps/SlateportCity_BattleTentLobby/map.json index e2c4395919..efd03e1e28 100644 --- a/data/maps/SlateportCity_BattleTentLobby/map.json +++ b/data/maps/SlateportCity_BattleTentLobby/map.json @@ -2,7 +2,7 @@ "id": "MAP_SLATEPORT_CITY_BATTLE_TENT_LOBBY", "name": "SlateportCity_BattleTentLobby", "layout": "LAYOUT_BATTLE_TENT_LOBBY", - "music": "MUS_B_TOWER", + "music": "MUS_B_TOWER_RS", "region_map_section": "MAPSEC_SLATEPORT_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SlateportCity_BattleTentLobby/scripts.inc b/data/maps/SlateportCity_BattleTentLobby/scripts.inc index 20f3c3e075..bdc8eb05f9 100644 --- a/data/maps/SlateportCity_BattleTentLobby/scripts.inc +++ b/data/maps/SlateportCity_BattleTentLobby/scripts.inc @@ -53,7 +53,7 @@ SlateportCity_BattleTentLobby_EventScript_GivePrize:: @ 82087E9 frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0 message BattleFrontier_BattleTowerLobby_Text_ReceivedPrize @ Odd that it uses Tower's instead of Factory's or its own waitmessage - playfanfare MUS_FANFA4 + playfanfare MUS_OBTAIN_ITEM waitfanfare goto SlateportCity_BattleTentLobby_EventScript_EndGivePrize diff --git a/data/maps/SlateportCity_Harbor/map.json b/data/maps/SlateportCity_Harbor/map.json index 19bb83a069..17d3c8940f 100644 --- a/data/maps/SlateportCity_Harbor/map.json +++ b/data/maps/SlateportCity_Harbor/map.json @@ -2,7 +2,7 @@ "id": "MAP_SLATEPORT_CITY_HARBOR", "name": "SlateportCity_Harbor", "layout": "LAYOUT_HARBOR", - "music": "MUS_FINECITY", + "music": "MUS_SLATEPORT", "region_map_section": "MAPSEC_SLATEPORT_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SlateportCity_Harbor/scripts.inc b/data/maps/SlateportCity_Harbor/scripts.inc index 5d8dad1db2..644911ea63 100644 --- a/data/maps/SlateportCity_Harbor/scripts.inc +++ b/data/maps/SlateportCity_Harbor/scripts.inc @@ -21,7 +21,7 @@ SlateportCity_Harbor_EventScript_ShowSSTidal:: @ 820C9A5 return SlateportCity_Harbor_EventScript_ReadyAquaEscapeScene:: @ 820C9A9 - savebgm MUS_AQA_0 + savebgm MUS_ENCOUNTER_AQUA setobjectxyperm LOCALID_CAPT_STERN, 12, 13 setobjectmovementtype LOCALID_CAPT_STERN, MOVEMENT_TYPE_FACE_LEFT setflag FLAG_HIDE_SLATEPORT_CITY_HARBOR_PATRONS diff --git a/data/maps/SlateportCity_House/map.json b/data/maps/SlateportCity_House/map.json index d1bdfa1e3d..5ccc92566e 100644 --- a/data/maps/SlateportCity_House/map.json +++ b/data/maps/SlateportCity_House/map.json @@ -2,7 +2,7 @@ "id": "MAP_SLATEPORT_CITY_HOUSE", "name": "SlateportCity_House", "layout": "LAYOUT_HOUSE2", - "music": "MUS_FINECITY", + "music": "MUS_SLATEPORT", "region_map_section": "MAPSEC_SLATEPORT_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SlateportCity_Mart/map.json b/data/maps/SlateportCity_Mart/map.json index 8c5924ce83..45d3225553 100644 --- a/data/maps/SlateportCity_Mart/map.json +++ b/data/maps/SlateportCity_Mart/map.json @@ -2,7 +2,7 @@ "id": "MAP_SLATEPORT_CITY_MART", "name": "SlateportCity_Mart", "layout": "LAYOUT_MART", - "music": "MUS_FRIENDLY", + "music": "MUS_POKE_MART", "region_map_section": "MAPSEC_SLATEPORT_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SlateportCity_NameRatersHouse/map.json b/data/maps/SlateportCity_NameRatersHouse/map.json index a1728f78a5..c0a94fd69e 100644 --- a/data/maps/SlateportCity_NameRatersHouse/map.json +++ b/data/maps/SlateportCity_NameRatersHouse/map.json @@ -2,7 +2,7 @@ "id": "MAP_SLATEPORT_CITY_NAME_RATERS_HOUSE", "name": "SlateportCity_NameRatersHouse", "layout": "LAYOUT_HOUSE_WITH_BED", - "music": "MUS_FINECITY", + "music": "MUS_SLATEPORT", "region_map_section": "MAPSEC_SLATEPORT_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SlateportCity_OceanicMuseum_1F/map.json b/data/maps/SlateportCity_OceanicMuseum_1F/map.json index 00b2e8912e..7748f54384 100644 --- a/data/maps/SlateportCity_OceanicMuseum_1F/map.json +++ b/data/maps/SlateportCity_OceanicMuseum_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_SLATEPORT_CITY_OCEANIC_MUSEUM_1F", "name": "SlateportCity_OceanicMuseum_1F", "layout": "LAYOUT_SLATEPORT_CITY_OCEANIC_MUSEUM_1F", - "music": "MUS_FUNE_KAN", + "music": "MUS_OCEANIC_MUSEUM", "region_map_section": "MAPSEC_SLATEPORT_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SlateportCity_OceanicMuseum_1F/scripts.inc b/data/maps/SlateportCity_OceanicMuseum_1F/scripts.inc index 8af4af40c0..90c9b93b79 100644 --- a/data/maps/SlateportCity_OceanicMuseum_1F/scripts.inc +++ b/data/maps/SlateportCity_OceanicMuseum_1F/scripts.inc @@ -37,7 +37,7 @@ SlateportCity_OceanicMuseum_1F_EventScript_CheckMoneyForFee:: @ 820ADE8 checkmoney 50, 0 compare VAR_RESULT, FALSE goto_if_eq SlateportCity_OceanicMuseum_1F_EventScript_NotEnoughMoney - playse SE_REGI + playse SE_SHOP removemoney 50, 0 updatemoneybox 0, 0 msgbox SlateportCity_OceanicMuseum_1F_Text_PleaseEnjoyYourself, MSGBOX_DEFAULT @@ -191,7 +191,7 @@ SlateportCity_OceanicMuseum_1F_EventScript_FamiliarGruntExitWestEast:: @ 820AF93 SlateportCity_OceanicMuseum_1F_EventScript_FamiliarGruntExited:: @ 820AFAA setflag FLAG_HIDE_SLATEPORT_CITY_OCEANIC_MUSEUM_FAMILIAR_AQUA_GRUNT - playse SE_KAIDAN + playse SE_EXIT removeobject LOCALID_FAMILIAR_GRUNT release end diff --git a/data/maps/SlateportCity_OceanicMuseum_2F/map.json b/data/maps/SlateportCity_OceanicMuseum_2F/map.json index af23dffefb..7b78802e33 100644 --- a/data/maps/SlateportCity_OceanicMuseum_2F/map.json +++ b/data/maps/SlateportCity_OceanicMuseum_2F/map.json @@ -2,7 +2,7 @@ "id": "MAP_SLATEPORT_CITY_OCEANIC_MUSEUM_2F", "name": "SlateportCity_OceanicMuseum_2F", "layout": "LAYOUT_SLATEPORT_CITY_OCEANIC_MUSEUM_2F", - "music": "MUS_FUNE_KAN", + "music": "MUS_OCEANIC_MUSEUM", "region_map_section": "MAPSEC_SLATEPORT_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SlateportCity_OceanicMuseum_2F/scripts.inc b/data/maps/SlateportCity_OceanicMuseum_2F/scripts.inc index 8efd464c41..bba75dbd1e 100644 --- a/data/maps/SlateportCity_OceanicMuseum_2F/scripts.inc +++ b/data/maps/SlateportCity_OceanicMuseum_2F/scripts.inc @@ -11,7 +11,7 @@ SlateportCity_OceanicMuseum_2F_EventScript_CaptStern:: @ 820BB00 faceplayer msgbox SlateportCity_OceanicMuseum_2F_Text_ThankYouForTheParts, MSGBOX_DEFAULT closemessage - playbgm MUS_AQA_0, 1 + playbgm MUS_ENCOUNTER_AQUA, 1 addobject LOCALID_GRUNT_1 applymovement LOCALID_GRUNT_1, SlateportCity_OceanicMuseum_2F_Movement_FirstGruntEnter waitmovement 0 @@ -81,7 +81,7 @@ SlateportCity_OceanicMuseum_2F_EventScript_CaptStern:: @ 820BB00 msgbox SlateportCity_OceanicMuseum_2F_Text_SternIveGotToGo, MSGBOX_DEFAULT closemessage fadescreen FADE_TO_BLACK - playfanfare MUS_ME_ASA + playfanfare MUS_HEAL waitfanfare special HealPlayerParty removeobject LOCALID_CAPT_STERN diff --git a/data/maps/SlateportCity_PokemonCenter_1F/map.json b/data/maps/SlateportCity_PokemonCenter_1F/map.json index fe730efd70..91132909a1 100644 --- a/data/maps/SlateportCity_PokemonCenter_1F/map.json +++ b/data/maps/SlateportCity_PokemonCenter_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_SLATEPORT_CITY_POKEMON_CENTER_1F", "name": "SlateportCity_PokemonCenter_1F", "layout": "LAYOUT_POKEMON_CENTER_1F", - "music": "MUS_POKECEN", + "music": "MUS_POKE_CENTER", "region_map_section": "MAPSEC_SLATEPORT_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SlateportCity_PokemonCenter_2F/map.json b/data/maps/SlateportCity_PokemonCenter_2F/map.json index d2204dabce..74b5ee63c3 100644 --- a/data/maps/SlateportCity_PokemonCenter_2F/map.json +++ b/data/maps/SlateportCity_PokemonCenter_2F/map.json @@ -2,7 +2,7 @@ "id": "MAP_SLATEPORT_CITY_POKEMON_CENTER_2F", "name": "SlateportCity_PokemonCenter_2F", "layout": "LAYOUT_POKEMON_CENTER_2F", - "music": "MUS_POKECEN", + "music": "MUS_POKE_CENTER", "region_map_section": "MAPSEC_SLATEPORT_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SlateportCity_PokemonFanClub/map.json b/data/maps/SlateportCity_PokemonFanClub/map.json index ae27c318b4..b1e4b0f8bf 100644 --- a/data/maps/SlateportCity_PokemonFanClub/map.json +++ b/data/maps/SlateportCity_PokemonFanClub/map.json @@ -2,7 +2,7 @@ "id": "MAP_SLATEPORT_CITY_POKEMON_FAN_CLUB", "name": "SlateportCity_PokemonFanClub", "layout": "LAYOUT_SLATEPORT_CITY_POKEMON_FAN_CLUB", - "music": "MUS_FINECITY", + "music": "MUS_SLATEPORT", "region_map_section": "MAPSEC_SLATEPORT_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SlateportCity_SternsShipyard_1F/map.json b/data/maps/SlateportCity_SternsShipyard_1F/map.json index 45e5f57346..66cdd6a1df 100644 --- a/data/maps/SlateportCity_SternsShipyard_1F/map.json +++ b/data/maps/SlateportCity_SternsShipyard_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_SLATEPORT_CITY_STERNS_SHIPYARD_1F", "name": "SlateportCity_SternsShipyard_1F", "layout": "LAYOUT_SLATEPORT_CITY_STERNS_SHIPYARD_1F", - "music": "MUS_FINECITY", + "music": "MUS_SLATEPORT", "region_map_section": "MAPSEC_SLATEPORT_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SlateportCity_SternsShipyard_2F/map.json b/data/maps/SlateportCity_SternsShipyard_2F/map.json index 452c3f47a8..1b89b2bfa4 100644 --- a/data/maps/SlateportCity_SternsShipyard_2F/map.json +++ b/data/maps/SlateportCity_SternsShipyard_2F/map.json @@ -2,7 +2,7 @@ "id": "MAP_SLATEPORT_CITY_STERNS_SHIPYARD_2F", "name": "SlateportCity_SternsShipyard_2F", "layout": "LAYOUT_SLATEPORT_CITY_STERNS_SHIPYARD_2F", - "music": "MUS_FINECITY", + "music": "MUS_SLATEPORT", "region_map_section": "MAPSEC_SLATEPORT_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SootopolisCity/map.json b/data/maps/SootopolisCity/map.json index 41e5cf61ab..d4c71db612 100644 --- a/data/maps/SootopolisCity/map.json +++ b/data/maps/SootopolisCity/map.json @@ -2,7 +2,7 @@ "id": "MAP_SOOTOPOLIS_CITY", "name": "SootopolisCity", "layout": "LAYOUT_SOOTOPOLIS_CITY", - "music": "MUS_RUNECITY", + "music": "MUS_SOOTOPOLIS", "region_map_section": "MAPSEC_SOOTOPOLIS_CITY", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/SootopolisCity/scripts.inc b/data/maps/SootopolisCity/scripts.inc index 2979f104de..6ef9c3d57b 100644 --- a/data/maps/SootopolisCity/scripts.inc +++ b/data/maps/SootopolisCity/scripts.inc @@ -531,7 +531,7 @@ SootopolisCity_EventScript_RayquazaSceneFromPokeCenter:: @ 81E5C1E setvar VAR_0x8004, 1 special Script_DoRayquazaScene waitstate - playse SE_T_KAMI + playse SE_THUNDER special SpawnCameraObject applymovement OBJ_EVENT_ID_CAMERA, SootopolisCity_Movement_PanUp waitmovement 0 @@ -562,7 +562,7 @@ SootopolisCity_EventScript_RayquazaSceneFromPokeCenter:: @ 81E5C1E clearflag FLAG_SYS_WEATHER_CTRL setvar VAR_SKY_PILLAR_STATE, 3 clearflag FLAG_LEGENDARIES_IN_SOOTOPOLIS - fadenewbgm MUS_RUNECITY + fadenewbgm MUS_SOOTOPOLIS delay 120 clearflag FLAG_HIDE_MAP_NAME_POPUP warpsootopolislegend MAP_SOOTOPOLIS_CITY, 255, 43, 32 @@ -615,7 +615,7 @@ SootopolisCity_EventScript_RayquazaSceneFromDive:: @ 81E5CCE clearflag FLAG_SYS_WEATHER_CTRL setvar VAR_SKY_PILLAR_STATE, 2 clearflag FLAG_LEGENDARIES_IN_SOOTOPOLIS - fadenewbgm MUS_NAMINORI + fadenewbgm MUS_SURF delay 120 clearflag FLAG_HIDE_MAP_NAME_POPUP warpsootopolislegend MAP_SOOTOPOLIS_CITY, 255, 29, 53 diff --git a/data/maps/SootopolisCity_Gym_1F/map.json b/data/maps/SootopolisCity_Gym_1F/map.json index 72d7c2d2b3..46baea29d2 100644 --- a/data/maps/SootopolisCity_Gym_1F/map.json +++ b/data/maps/SootopolisCity_Gym_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_SOOTOPOLIS_CITY_GYM_1F", "name": "SootopolisCity_Gym_1F", "layout": "LAYOUT_SOOTOPOLIS_CITY_GYM_1F", - "music": "MUS_GIM", + "music": "MUS_GYM", "region_map_section": "MAPSEC_SOOTOPOLIS_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SootopolisCity_Gym_1F/scripts.inc b/data/maps/SootopolisCity_Gym_1F/scripts.inc index 66588ba08b..ae5bfd1084 100644 --- a/data/maps/SootopolisCity_Gym_1F/scripts.inc +++ b/data/maps/SootopolisCity_Gym_1F/scripts.inc @@ -46,7 +46,7 @@ SootopolisCity_Gym_1F_OnFrame: @ 8224ECB SootopolisCity_Gym_1F_EventScript_UnlockFirstStairs:: @ 8224EED addvar VAR_ICE_STEP_COUNT, 1 delay 40 - playse SE_RU_GASHIN + playse SE_ICE_STAIRS call SootopolisCity_Gym_1F_EventScript_CheckSetStairMetatiles special DrawWholeMapView end @@ -54,7 +54,7 @@ SootopolisCity_Gym_1F_EventScript_UnlockFirstStairs:: @ 8224EED SootopolisCity_Gym_1F_EventScript_UnlockSecondStairs:: @ 8224F01 addvar VAR_ICE_STEP_COUNT, 1 delay 40 - playse SE_RU_GASHIN + playse SE_ICE_STAIRS call SootopolisCity_Gym_1F_EventScript_CheckSetStairMetatiles special DrawWholeMapView end @@ -62,7 +62,7 @@ SootopolisCity_Gym_1F_EventScript_UnlockSecondStairs:: @ 8224F01 SootopolisCity_Gym_1F_EventScript_UnlockThirdStairs:: @ 8224F15 addvar VAR_ICE_STEP_COUNT, 1 delay 40 - playse SE_RU_GASHIN + playse SE_ICE_STAIRS call SootopolisCity_Gym_1F_EventScript_CheckSetStairMetatiles special DrawWholeMapView end @@ -72,7 +72,7 @@ SootopolisCity_Gym_1F_EventScript_FallThroughIce:: @ 8224F29 delay 20 applymovement OBJ_EVENT_ID_PLAYER, SootopolisCity_Gym_1F_Movement_FallThroughIce waitmovement 0 - playse SE_RU_HYUU + playse SE_FALL delay 60 warphole MAP_SOOTOPOLIS_CITY_GYM_B1F waitstate @@ -110,7 +110,7 @@ SootopolisCity_Gym_1F_EventScript_JuanDefeated:: @ 8224F82 call SootopolisCity_Gym_1F_EventScript_GiveWaterPulse closemessage delay 30 - playfanfare MUS_ME_TORE_EYE + playfanfare MUS_REGISTER_MATCH_CALL msgbox SootopolisCity_Gym_1F_Text_RegisteredJuan, MSGBOX_DEFAULT waitfanfare closemessage diff --git a/data/maps/SootopolisCity_Gym_B1F/map.json b/data/maps/SootopolisCity_Gym_B1F/map.json index 5706139f2f..3badb1c526 100644 --- a/data/maps/SootopolisCity_Gym_B1F/map.json +++ b/data/maps/SootopolisCity_Gym_B1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_SOOTOPOLIS_CITY_GYM_B1F", "name": "SootopolisCity_Gym_B1F", "layout": "LAYOUT_SOOTOPOLIS_CITY_GYM_B1F", - "music": "MUS_GIM", + "music": "MUS_GYM", "region_map_section": "MAPSEC_SOOTOPOLIS_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SootopolisCity_House1/map.json b/data/maps/SootopolisCity_House1/map.json index 9db373ceda..26c47c4323 100644 --- a/data/maps/SootopolisCity_House1/map.json +++ b/data/maps/SootopolisCity_House1/map.json @@ -2,7 +2,7 @@ "id": "MAP_SOOTOPOLIS_CITY_HOUSE1", "name": "SootopolisCity_House1", "layout": "LAYOUT_SOOTOPOLIS_CITY_HOUSE1", - "music": "MUS_RUNECITY", + "music": "MUS_SOOTOPOLIS", "region_map_section": "MAPSEC_SOOTOPOLIS_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SootopolisCity_House2/map.json b/data/maps/SootopolisCity_House2/map.json index 6ffeb11f8e..3fe0baf484 100644 --- a/data/maps/SootopolisCity_House2/map.json +++ b/data/maps/SootopolisCity_House2/map.json @@ -2,7 +2,7 @@ "id": "MAP_SOOTOPOLIS_CITY_HOUSE2", "name": "SootopolisCity_House2", "layout": "LAYOUT_SOOTOPOLIS_CITY_HOUSE2", - "music": "MUS_RUNECITY", + "music": "MUS_SOOTOPOLIS", "region_map_section": "MAPSEC_SOOTOPOLIS_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SootopolisCity_House3/map.json b/data/maps/SootopolisCity_House3/map.json index d6cb1f09b6..00d82637e3 100644 --- a/data/maps/SootopolisCity_House3/map.json +++ b/data/maps/SootopolisCity_House3/map.json @@ -2,7 +2,7 @@ "id": "MAP_SOOTOPOLIS_CITY_HOUSE3", "name": "SootopolisCity_House3", "layout": "LAYOUT_SOOTOPOLIS_CITY_HOUSE3", - "music": "MUS_RUNECITY", + "music": "MUS_SOOTOPOLIS", "region_map_section": "MAPSEC_SOOTOPOLIS_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SootopolisCity_House4/map.json b/data/maps/SootopolisCity_House4/map.json index 7ff8d9182f..e811785d00 100644 --- a/data/maps/SootopolisCity_House4/map.json +++ b/data/maps/SootopolisCity_House4/map.json @@ -2,7 +2,7 @@ "id": "MAP_SOOTOPOLIS_CITY_HOUSE4", "name": "SootopolisCity_House4", "layout": "LAYOUT_SOOTOPOLIS_CITY_HOUSE1", - "music": "MUS_RUNECITY", + "music": "MUS_SOOTOPOLIS", "region_map_section": "MAPSEC_SOOTOPOLIS_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SootopolisCity_House5/map.json b/data/maps/SootopolisCity_House5/map.json index 2a335e4bbd..6b25c5af69 100644 --- a/data/maps/SootopolisCity_House5/map.json +++ b/data/maps/SootopolisCity_House5/map.json @@ -2,7 +2,7 @@ "id": "MAP_SOOTOPOLIS_CITY_HOUSE5", "name": "SootopolisCity_House5", "layout": "LAYOUT_SOOTOPOLIS_CITY_HOUSE2", - "music": "MUS_RUNECITY", + "music": "MUS_SOOTOPOLIS", "region_map_section": "MAPSEC_SOOTOPOLIS_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SootopolisCity_House6/map.json b/data/maps/SootopolisCity_House6/map.json index e6b37ca19c..365503e8fa 100644 --- a/data/maps/SootopolisCity_House6/map.json +++ b/data/maps/SootopolisCity_House6/map.json @@ -2,7 +2,7 @@ "id": "MAP_SOOTOPOLIS_CITY_HOUSE6", "name": "SootopolisCity_House6", "layout": "LAYOUT_SOOTOPOLIS_CITY_HOUSE3", - "music": "MUS_RUNECITY", + "music": "MUS_SOOTOPOLIS", "region_map_section": "MAPSEC_SOOTOPOLIS_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SootopolisCity_House7/map.json b/data/maps/SootopolisCity_House7/map.json index 5f66d082ad..47d98c9145 100644 --- a/data/maps/SootopolisCity_House7/map.json +++ b/data/maps/SootopolisCity_House7/map.json @@ -2,7 +2,7 @@ "id": "MAP_SOOTOPOLIS_CITY_HOUSE7", "name": "SootopolisCity_House7", "layout": "LAYOUT_SOOTOPOLIS_CITY_HOUSE1", - "music": "MUS_RUNECITY", + "music": "MUS_SOOTOPOLIS", "region_map_section": "MAPSEC_SOOTOPOLIS_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SootopolisCity_LotadAndSeedotHouse/map.json b/data/maps/SootopolisCity_LotadAndSeedotHouse/map.json index d02aec2bb9..143fdf9f23 100644 --- a/data/maps/SootopolisCity_LotadAndSeedotHouse/map.json +++ b/data/maps/SootopolisCity_LotadAndSeedotHouse/map.json @@ -2,7 +2,7 @@ "id": "MAP_SOOTOPOLIS_CITY_LOTAD_AND_SEEDOT_HOUSE", "name": "SootopolisCity_LotadAndSeedotHouse", "layout": "LAYOUT_SOOTOPOLIS_CITY_LOTAD_AND_SEEDOT_HOUSE", - "music": "MUS_RUNECITY", + "music": "MUS_SOOTOPOLIS", "region_map_section": "MAPSEC_SOOTOPOLIS_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SootopolisCity_Mart/map.json b/data/maps/SootopolisCity_Mart/map.json index e7433e7171..55686a14fc 100644 --- a/data/maps/SootopolisCity_Mart/map.json +++ b/data/maps/SootopolisCity_Mart/map.json @@ -2,7 +2,7 @@ "id": "MAP_SOOTOPOLIS_CITY_MART", "name": "SootopolisCity_Mart", "layout": "LAYOUT_MART", - "music": "MUS_FRIENDLY", + "music": "MUS_POKE_MART", "region_map_section": "MAPSEC_SOOTOPOLIS_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SootopolisCity_MysteryEventsHouse_1F/map.json b/data/maps/SootopolisCity_MysteryEventsHouse_1F/map.json index 9ccd91d9b5..a7fa187602 100644 --- a/data/maps/SootopolisCity_MysteryEventsHouse_1F/map.json +++ b/data/maps/SootopolisCity_MysteryEventsHouse_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_SOOTOPOLIS_CITY_MYSTERY_EVENTS_HOUSE_1F", "name": "SootopolisCity_MysteryEventsHouse_1F", "layout": "LAYOUT_SOOTOPOLIS_CITY_MYSTERY_EVENTS_HOUSE_1F", - "music": "MUS_RUNECITY", + "music": "MUS_SOOTOPOLIS", "region_map_section": "MAPSEC_SOOTOPOLIS_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SootopolisCity_MysteryEventsHouse_B1F/map.json b/data/maps/SootopolisCity_MysteryEventsHouse_B1F/map.json index 3911f3e2b8..82885ebcc8 100644 --- a/data/maps/SootopolisCity_MysteryEventsHouse_B1F/map.json +++ b/data/maps/SootopolisCity_MysteryEventsHouse_B1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_SOOTOPOLIS_CITY_MYSTERY_EVENTS_HOUSE_B1F", "name": "SootopolisCity_MysteryEventsHouse_B1F", "layout": "LAYOUT_SOOTOPOLIS_CITY_MYSTERY_EVENTS_HOUSE_B1F", - "music": "MUS_RUNECITY", + "music": "MUS_SOOTOPOLIS", "region_map_section": "MAPSEC_SOOTOPOLIS_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SootopolisCity_PokemonCenter_1F/map.json b/data/maps/SootopolisCity_PokemonCenter_1F/map.json index 2330f08eaf..8dac70dea1 100644 --- a/data/maps/SootopolisCity_PokemonCenter_1F/map.json +++ b/data/maps/SootopolisCity_PokemonCenter_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_SOOTOPOLIS_CITY_POKEMON_CENTER_1F", "name": "SootopolisCity_PokemonCenter_1F", "layout": "LAYOUT_POKEMON_CENTER_1F", - "music": "MUS_POKECEN", + "music": "MUS_POKE_CENTER", "region_map_section": "MAPSEC_SOOTOPOLIS_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SootopolisCity_PokemonCenter_2F/map.json b/data/maps/SootopolisCity_PokemonCenter_2F/map.json index ca779dd4b7..fd85b236b5 100644 --- a/data/maps/SootopolisCity_PokemonCenter_2F/map.json +++ b/data/maps/SootopolisCity_PokemonCenter_2F/map.json @@ -2,7 +2,7 @@ "id": "MAP_SOOTOPOLIS_CITY_POKEMON_CENTER_2F", "name": "SootopolisCity_PokemonCenter_2F", "layout": "LAYOUT_POKEMON_CENTER_2F", - "music": "MUS_POKECEN", + "music": "MUS_POKE_CENTER", "region_map_section": "MAPSEC_SOOTOPOLIS_CITY", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SouthernIsland_Exterior/map.json b/data/maps/SouthernIsland_Exterior/map.json index 67ee0fd3c7..8fe4bcf292 100644 --- a/data/maps/SouthernIsland_Exterior/map.json +++ b/data/maps/SouthernIsland_Exterior/map.json @@ -2,7 +2,7 @@ "id": "MAP_SOUTHERN_ISLAND_EXTERIOR", "name": "SouthernIsland_Exterior", "layout": "LAYOUT_SOUTHERN_ISLAND_EXTERIOR", - "music": "MUS_DAN02", + "music": "MUS_ABANDONED_SHIP", "region_map_section": "MAPSEC_SOUTHERN_ISLAND", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/SouthernIsland_Interior/map.json b/data/maps/SouthernIsland_Interior/map.json index 14530c995e..179ab1997d 100644 --- a/data/maps/SouthernIsland_Interior/map.json +++ b/data/maps/SouthernIsland_Interior/map.json @@ -2,7 +2,7 @@ "id": "MAP_SOUTHERN_ISLAND_INTERIOR", "name": "SouthernIsland_Interior", "layout": "LAYOUT_SOUTHERN_ISLAND_INTERIOR", - "music": "MUS_DAN02", + "music": "MUS_ABANDONED_SHIP", "region_map_section": "MAPSEC_SOUTHERN_ISLAND", "requires_flash": false, "weather": "WEATHER_SHADE", diff --git a/data/maps/TerraCave_End/map.json b/data/maps/TerraCave_End/map.json index c7dfeeb3dd..b186bddb28 100644 --- a/data/maps/TerraCave_End/map.json +++ b/data/maps/TerraCave_End/map.json @@ -2,7 +2,7 @@ "id": "MAP_TERRA_CAVE_END", "name": "TerraCave_End", "layout": "LAYOUT_TERRA_CAVE_END", - "music": "MUS_DAN01", + "music": "MUS_PETALBURG_WOODS", "region_map_section": "MAPSEC_TERRA_CAVE", "requires_flash": false, "weather": "WEATHER_FOG_HORIZONTAL", diff --git a/data/maps/TerraCave_Entrance/map.json b/data/maps/TerraCave_Entrance/map.json index 9a96504871..1ddc768e27 100644 --- a/data/maps/TerraCave_Entrance/map.json +++ b/data/maps/TerraCave_Entrance/map.json @@ -2,7 +2,7 @@ "id": "MAP_TERRA_CAVE_ENTRANCE", "name": "TerraCave_Entrance", "layout": "LAYOUT_TERRA_CAVE_ENTRANCE", - "music": "MUS_DAN01", + "music": "MUS_PETALBURG_WOODS", "region_map_section": "MAPSEC_TERRA_CAVE", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/TradeCenter/map.json b/data/maps/TradeCenter/map.json index d0ed8e5247..0d3dd5477b 100644 --- a/data/maps/TradeCenter/map.json +++ b/data/maps/TradeCenter/map.json @@ -2,7 +2,7 @@ "id": "MAP_TRADE_CENTER", "name": "TradeCenter", "layout": "LAYOUT_TRADE_CENTER", - "music": "MUS_RAINBOW", + "music": "MUS_EVER_GRANDE", "region_map_section": "MAPSEC_DYNAMIC", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/TrainerHill_1F/map.json b/data/maps/TrainerHill_1F/map.json index 30f80b810c..d14bbb2938 100644 --- a/data/maps/TrainerHill_1F/map.json +++ b/data/maps/TrainerHill_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_TRAINER_HILL_1F", "name": "TrainerHill_1F", "layout": "LAYOUT_TRAINER_HILL_1F", - "music": "MUS_B_TOWER", + "music": "MUS_B_TOWER_RS", "region_map_section": "MAPSEC_TRAINER_HILL", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/TrainerHill_2F/map.json b/data/maps/TrainerHill_2F/map.json index e94948c33c..a4c9bca7dc 100644 --- a/data/maps/TrainerHill_2F/map.json +++ b/data/maps/TrainerHill_2F/map.json @@ -2,7 +2,7 @@ "id": "MAP_TRAINER_HILL_2F", "name": "TrainerHill_2F", "layout": "LAYOUT_TRAINER_HILL_2F", - "music": "MUS_B_TOWER", + "music": "MUS_B_TOWER_RS", "region_map_section": "MAPSEC_TRAINER_HILL", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/TrainerHill_3F/map.json b/data/maps/TrainerHill_3F/map.json index 6e3ef9c510..069ca83ac5 100644 --- a/data/maps/TrainerHill_3F/map.json +++ b/data/maps/TrainerHill_3F/map.json @@ -2,7 +2,7 @@ "id": "MAP_TRAINER_HILL_3F", "name": "TrainerHill_3F", "layout": "LAYOUT_TRAINER_HILL_3F", - "music": "MUS_B_TOWER", + "music": "MUS_B_TOWER_RS", "region_map_section": "MAPSEC_TRAINER_HILL", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/TrainerHill_4F/map.json b/data/maps/TrainerHill_4F/map.json index 2b62322e93..f195d9e93a 100644 --- a/data/maps/TrainerHill_4F/map.json +++ b/data/maps/TrainerHill_4F/map.json @@ -2,7 +2,7 @@ "id": "MAP_TRAINER_HILL_4F", "name": "TrainerHill_4F", "layout": "LAYOUT_TRAINER_HILL_4F", - "music": "MUS_B_TOWER", + "music": "MUS_B_TOWER_RS", "region_map_section": "MAPSEC_TRAINER_HILL", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/TrainerHill_Elevator/map.json b/data/maps/TrainerHill_Elevator/map.json index dc259fde0f..3d56ff4761 100644 --- a/data/maps/TrainerHill_Elevator/map.json +++ b/data/maps/TrainerHill_Elevator/map.json @@ -2,7 +2,7 @@ "id": "MAP_TRAINER_HILL_ELEVATOR", "name": "TrainerHill_Elevator", "layout": "LAYOUT_BATTLE_ELEVATOR", - "music": "MUS_B_TOWER", + "music": "MUS_B_TOWER_RS", "region_map_section": "MAPSEC_TRAINER_HILL", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/TrainerHill_Entrance/map.json b/data/maps/TrainerHill_Entrance/map.json index ed85405c1e..b2c20d050d 100644 --- a/data/maps/TrainerHill_Entrance/map.json +++ b/data/maps/TrainerHill_Entrance/map.json @@ -2,7 +2,7 @@ "id": "MAP_TRAINER_HILL_ENTRANCE", "name": "TrainerHill_Entrance", "layout": "LAYOUT_TRAINER_HILL_ENTRANCE", - "music": "MUS_B_TOWER", + "music": "MUS_B_TOWER_RS", "region_map_section": "MAPSEC_TRAINER_HILL", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/TrainerHill_Entrance/scripts.inc b/data/maps/TrainerHill_Entrance/scripts.inc index 077709053d..b5b0f716ca 100644 --- a/data/maps/TrainerHill_Entrance/scripts.inc +++ b/data/maps/TrainerHill_Entrance/scripts.inc @@ -69,7 +69,7 @@ TrainerHill_Entrance_EventScript_ExitElevator:: @ 8268160 waitmovement 0 setmetatile 17, 10, METATILE_TrainerHill_CounterDoor, 1 special DrawWholeMapView - playse SE_TK_KASYA + playse SE_CLICK waitse setvar VAR_TEMP_D, 0 releaseall diff --git a/data/maps/TrainerHill_Roof/map.json b/data/maps/TrainerHill_Roof/map.json index 244214ad3d..16020a762a 100644 --- a/data/maps/TrainerHill_Roof/map.json +++ b/data/maps/TrainerHill_Roof/map.json @@ -2,7 +2,7 @@ "id": "MAP_TRAINER_HILL_ROOF", "name": "TrainerHill_Roof", "layout": "LAYOUT_TRAINER_HILL_ROOF", - "music": "MUS_B_TOWER", + "music": "MUS_B_TOWER_RS", "region_map_section": "MAPSEC_TRAINER_HILL", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/TrainerHill_Roof/scripts.inc b/data/maps/TrainerHill_Roof/scripts.inc index e4e2cbb49e..e239ed0105 100644 --- a/data/maps/TrainerHill_Roof/scripts.inc +++ b/data/maps/TrainerHill_Roof/scripts.inc @@ -22,7 +22,7 @@ TrainerHill_Roof_EventScript_GivePrize:: @ 8268FF2 case 2, TrainerHill_Roof_EventScript_CheckFinalTime TrainerHill_Roof_EventScript_ReceivePrize:: @ 8269020 msgbox TrainerHill_Roof_Text_HaveTheMostMarvelousGift, MSGBOX_DEFAULT - playfanfare MUS_FANFA1 + playfanfare MUS_LEVEL_UP message gText_ObtainedTheItem waitfanfare waitmessage diff --git a/data/maps/Underwater1/map.json b/data/maps/Underwater1/map.json index cc77e951d3..71752745d2 100644 --- a/data/maps/Underwater1/map.json +++ b/data/maps/Underwater1/map.json @@ -2,7 +2,7 @@ "id": "MAP_UNDERWATER1", "name": "Underwater1", "layout": "LAYOUT_UNDERWATER1", - "music": "MUS_DEEPDEEP", + "music": "MUS_UNDERWATER", "region_map_section": "MAPSEC_UNDERWATER_124", "requires_flash": false, "weather": "WEATHER_UNDERWATER_BUBBLES", diff --git a/data/maps/Underwater2/map.json b/data/maps/Underwater2/map.json index f402f8ea8e..5ecdc402ac 100644 --- a/data/maps/Underwater2/map.json +++ b/data/maps/Underwater2/map.json @@ -2,7 +2,7 @@ "id": "MAP_UNDERWATER2", "name": "Underwater2", "layout": "LAYOUT_UNDERWATER2", - "music": "MUS_DEEPDEEP", + "music": "MUS_UNDERWATER", "region_map_section": "MAPSEC_UNDERWATER_125", "requires_flash": false, "weather": "WEATHER_UNDERWATER_BUBBLES", diff --git a/data/maps/Underwater3/map.json b/data/maps/Underwater3/map.json index 69af7637fc..43df933a0d 100644 --- a/data/maps/Underwater3/map.json +++ b/data/maps/Underwater3/map.json @@ -2,7 +2,7 @@ "id": "MAP_UNDERWATER3", "name": "Underwater3", "layout": "LAYOUT_UNDERWATER3", - "music": "MUS_DEEPDEEP", + "music": "MUS_UNDERWATER", "region_map_section": "MAPSEC_UNDERWATER_126", "requires_flash": false, "weather": "WEATHER_UNDERWATER_BUBBLES", diff --git a/data/maps/Underwater4/map.json b/data/maps/Underwater4/map.json index 1569233020..4b0fc6d3ba 100644 --- a/data/maps/Underwater4/map.json +++ b/data/maps/Underwater4/map.json @@ -2,7 +2,7 @@ "id": "MAP_UNDERWATER4", "name": "Underwater4", "layout": "LAYOUT_UNDERWATER4", - "music": "MUS_DEEPDEEP", + "music": "MUS_UNDERWATER", "region_map_section": "MAPSEC_UNDERWATER_127", "requires_flash": false, "weather": "WEATHER_UNDERWATER_BUBBLES", diff --git a/data/maps/Underwater5/map.json b/data/maps/Underwater5/map.json index c50b8be533..909591f115 100644 --- a/data/maps/Underwater5/map.json +++ b/data/maps/Underwater5/map.json @@ -2,7 +2,7 @@ "id": "MAP_UNDERWATER5", "name": "Underwater5", "layout": "LAYOUT_UNDERWATER5", - "music": "MUS_DEEPDEEP", + "music": "MUS_UNDERWATER", "region_map_section": "MAPSEC_UNDERWATER_129", "requires_flash": false, "weather": "WEATHER_UNDERWATER_BUBBLES", diff --git a/data/maps/Underwater6/map.json b/data/maps/Underwater6/map.json index 971f2755c2..2a021f77f2 100644 --- a/data/maps/Underwater6/map.json +++ b/data/maps/Underwater6/map.json @@ -2,7 +2,7 @@ "id": "MAP_UNDERWATER6", "name": "Underwater6", "layout": "LAYOUT_UNDERWATER6", - "music": "MUS_DEEPDEEP", + "music": "MUS_UNDERWATER", "region_map_section": "MAPSEC_UNDERWATER_TERRA_CAVE", "requires_flash": false, "weather": "WEATHER_UNDERWATER_BUBBLES", diff --git a/data/maps/Underwater7/map.json b/data/maps/Underwater7/map.json index cf33280fe4..5155fc6ba8 100644 --- a/data/maps/Underwater7/map.json +++ b/data/maps/Underwater7/map.json @@ -2,7 +2,7 @@ "id": "MAP_UNDERWATER7", "name": "Underwater7", "layout": "LAYOUT_UNDERWATER7", - "music": "MUS_DEEPDEEP", + "music": "MUS_UNDERWATER", "region_map_section": "MAPSEC_UNDERWATER_UNK1", "requires_flash": false, "weather": "WEATHER_UNDERWATER_BUBBLES", diff --git a/data/maps/Underwater_MarineCave/map.json b/data/maps/Underwater_MarineCave/map.json index c12531e484..c053fb1210 100644 --- a/data/maps/Underwater_MarineCave/map.json +++ b/data/maps/Underwater_MarineCave/map.json @@ -2,7 +2,7 @@ "id": "MAP_UNDERWATER_MARINE_CAVE", "name": "Underwater_MarineCave", "layout": "LAYOUT_UNDERWATER_MARINE_CAVE", - "music": "MUS_DAN01", + "music": "MUS_PETALBURG_WOODS", "region_map_section": "MAPSEC_UNDERWATER_MARINE_CAVE", "requires_flash": false, "weather": "WEATHER_UNDERWATER_BUBBLES", diff --git a/data/maps/Underwater_Route134/map.json b/data/maps/Underwater_Route134/map.json index dd5117aa4f..74526bc4dc 100644 --- a/data/maps/Underwater_Route134/map.json +++ b/data/maps/Underwater_Route134/map.json @@ -2,7 +2,7 @@ "id": "MAP_UNDERWATER_ROUTE134", "name": "Underwater_Route134", "layout": "LAYOUT_UNDERWATER_ROUTE134", - "music": "MUS_DEEPDEEP", + "music": "MUS_UNDERWATER", "region_map_section": "MAPSEC_UNDERWATER_SEALED_CHAMBER", "requires_flash": false, "weather": "WEATHER_UNDERWATER_BUBBLES", diff --git a/data/maps/Underwater_SeafloorCavern/map.json b/data/maps/Underwater_SeafloorCavern/map.json index 90201d3b73..efcb3c2915 100644 --- a/data/maps/Underwater_SeafloorCavern/map.json +++ b/data/maps/Underwater_SeafloorCavern/map.json @@ -2,7 +2,7 @@ "id": "MAP_UNDERWATER_SEAFLOOR_CAVERN", "name": "Underwater_SeafloorCavern", "layout": "LAYOUT_UNDERWATER_SEAFLOOR_CAVERN", - "music": "MUS_DEEPDEEP", + "music": "MUS_UNDERWATER", "region_map_section": "MAPSEC_UNDERWATER_128", "requires_flash": false, "weather": "WEATHER_UNDERWATER_BUBBLES", diff --git a/data/maps/Underwater_SealedChamber/map.json b/data/maps/Underwater_SealedChamber/map.json index 98bbcc8503..5f3b990559 100644 --- a/data/maps/Underwater_SealedChamber/map.json +++ b/data/maps/Underwater_SealedChamber/map.json @@ -2,7 +2,7 @@ "id": "MAP_UNDERWATER_SEALED_CHAMBER", "name": "Underwater_SealedChamber", "layout": "LAYOUT_UNDERWATER_SEALED_CHAMBER", - "music": "MUS_DEEPDEEP", + "music": "MUS_UNDERWATER", "region_map_section": "MAPSEC_UNDERWATER_SEALED_CHAMBER", "requires_flash": false, "weather": "WEATHER_UNDERWATER_BUBBLES", diff --git a/data/maps/Underwater_SootopolisCity/map.json b/data/maps/Underwater_SootopolisCity/map.json index cc2d66ff21..90e5e97fc2 100644 --- a/data/maps/Underwater_SootopolisCity/map.json +++ b/data/maps/Underwater_SootopolisCity/map.json @@ -2,7 +2,7 @@ "id": "MAP_UNDERWATER_SOOTOPOLIS_CITY", "name": "Underwater_SootopolisCity", "layout": "LAYOUT_UNDERWATER_SOOTOPOLIS_CITY", - "music": "MUS_DEEPDEEP", + "music": "MUS_UNDERWATER", "region_map_section": "MAPSEC_UNDERWATER_SOOTOPOLIS", "requires_flash": false, "weather": "WEATHER_UNDERWATER_BUBBLES", diff --git a/data/maps/UnionRoom/map.json b/data/maps/UnionRoom/map.json index 1ee2041373..3d19cd55fc 100644 --- a/data/maps/UnionRoom/map.json +++ b/data/maps/UnionRoom/map.json @@ -2,7 +2,7 @@ "id": "MAP_UNION_ROOM", "name": "UnionRoom", "layout": "LAYOUT_UNION_ROOM", - "music": "MUS_RAINBOW", + "music": "MUS_EVER_GRANDE", "region_map_section": "MAPSEC_DYNAMIC", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/UnknownLinkContestRoom_25_29/map.json b/data/maps/UnknownLinkContestRoom_25_29/map.json index cf60772593..72ed407eed 100644 --- a/data/maps/UnknownLinkContestRoom_25_29/map.json +++ b/data/maps/UnknownLinkContestRoom_25_29/map.json @@ -2,7 +2,7 @@ "id": "MAP_UNKNOWN_LINK_CONTEST_ROOM_25_29", "name": "UnknownLinkContestRoom_25_29", "layout": "LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_29", - "music": "MUS_NIBI", + "music": "MUS_GSC_PEWTER", "region_map_section": "MAPSEC_DYNAMIC", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/UnknownLinkContestRoom_25_30/map.json b/data/maps/UnknownLinkContestRoom_25_30/map.json index c51109ee9c..cd4d6fddd8 100644 --- a/data/maps/UnknownLinkContestRoom_25_30/map.json +++ b/data/maps/UnknownLinkContestRoom_25_30/map.json @@ -2,7 +2,7 @@ "id": "MAP_UNKNOWN_LINK_CONTEST_ROOM_25_30", "name": "UnknownLinkContestRoom_25_30", "layout": "LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_30", - "music": "MUS_NIBI", + "music": "MUS_GSC_PEWTER", "region_map_section": "MAPSEC_DYNAMIC", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/UnknownLinkContestRoom_25_31/map.json b/data/maps/UnknownLinkContestRoom_25_31/map.json index 27b5503820..975ec382d7 100644 --- a/data/maps/UnknownLinkContestRoom_25_31/map.json +++ b/data/maps/UnknownLinkContestRoom_25_31/map.json @@ -2,7 +2,7 @@ "id": "MAP_UNKNOWN_LINK_CONTEST_ROOM_25_31", "name": "UnknownLinkContestRoom_25_31", "layout": "LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_31", - "music": "MUS_NIBI", + "music": "MUS_GSC_PEWTER", "region_map_section": "MAPSEC_DYNAMIC", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/UnknownLinkContestRoom_25_32/map.json b/data/maps/UnknownLinkContestRoom_25_32/map.json index 0c20ee1f83..d2d673adc3 100644 --- a/data/maps/UnknownLinkContestRoom_25_32/map.json +++ b/data/maps/UnknownLinkContestRoom_25_32/map.json @@ -2,7 +2,7 @@ "id": "MAP_UNKNOWN_LINK_CONTEST_ROOM_25_32", "name": "UnknownLinkContestRoom_25_32", "layout": "LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_32", - "music": "MUS_NIBI", + "music": "MUS_GSC_PEWTER", "region_map_section": "MAPSEC_DYNAMIC", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/UnknownLinkContestRoom_25_33/map.json b/data/maps/UnknownLinkContestRoom_25_33/map.json index aee753f225..f73ffe22e1 100644 --- a/data/maps/UnknownLinkContestRoom_25_33/map.json +++ b/data/maps/UnknownLinkContestRoom_25_33/map.json @@ -2,7 +2,7 @@ "id": "MAP_UNKNOWN_LINK_CONTEST_ROOM_25_33", "name": "UnknownLinkContestRoom_25_33", "layout": "LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_33", - "music": "MUS_NIBI", + "music": "MUS_GSC_PEWTER", "region_map_section": "MAPSEC_DYNAMIC", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/UnknownLinkContestRoom_25_34/map.json b/data/maps/UnknownLinkContestRoom_25_34/map.json index ebd07e9fae..f5ddbbe5ae 100644 --- a/data/maps/UnknownLinkContestRoom_25_34/map.json +++ b/data/maps/UnknownLinkContestRoom_25_34/map.json @@ -2,7 +2,7 @@ "id": "MAP_UNKNOWN_LINK_CONTEST_ROOM_25_34", "name": "UnknownLinkContestRoom_25_34", "layout": "LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_34", - "music": "MUS_NIBI", + "music": "MUS_GSC_PEWTER", "region_map_section": "MAPSEC_DYNAMIC", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/VerdanturfTown/map.json b/data/maps/VerdanturfTown/map.json index c4b736f80a..94d140c05e 100644 --- a/data/maps/VerdanturfTown/map.json +++ b/data/maps/VerdanturfTown/map.json @@ -2,7 +2,7 @@ "id": "MAP_VERDANTURF_TOWN", "name": "VerdanturfTown", "layout": "LAYOUT_VERDANTURF_TOWN", - "music": "MUS_GOMACHI0", + "music": "MUS_VERDANTURF", "region_map_section": "MAPSEC_VERDANTURF_TOWN", "requires_flash": false, "weather": "WEATHER_SUNNY", diff --git a/data/maps/VerdanturfTown_BattleTentBattleRoom/map.json b/data/maps/VerdanturfTown_BattleTentBattleRoom/map.json index 9ed2441ddf..72eca1d95c 100644 --- a/data/maps/VerdanturfTown_BattleTentBattleRoom/map.json +++ b/data/maps/VerdanturfTown_BattleTentBattleRoom/map.json @@ -2,7 +2,7 @@ "id": "MAP_VERDANTURF_TOWN_BATTLE_TENT_BATTLE_ROOM", "name": "VerdanturfTown_BattleTentBattleRoom", "layout": "LAYOUT_VERDANTURF_TOWN_BATTLE_TENT_BATTLE_ROOM", - "music": "MUS_B_TOWER", + "music": "MUS_B_TOWER_RS", "region_map_section": "MAPSEC_VERDANTURF_TOWN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/VerdanturfTown_BattleTentBattleRoom/scripts.inc b/data/maps/VerdanturfTown_BattleTentBattleRoom/scripts.inc index 86b5f3ec1e..ad77cdf5fc 100644 --- a/data/maps/VerdanturfTown_BattleTentBattleRoom/scripts.inc +++ b/data/maps/VerdanturfTown_BattleTentBattleRoom/scripts.inc @@ -78,7 +78,7 @@ VerdanturfTown_BattleTentBattleRoom_EventScript_DefeatedOpponent:: @ 82023C8 special LoadPlayerParty special SavePlayerParty frontier_setpartyorder FRONTIER_PARTY_SIZE - playfanfare MUS_ME_ASA + playfanfare MUS_HEAL waitfanfare special HealPlayerParty diff --git a/data/maps/VerdanturfTown_BattleTentCorridor/map.json b/data/maps/VerdanturfTown_BattleTentCorridor/map.json index 0209c02d9d..2b875b9009 100644 --- a/data/maps/VerdanturfTown_BattleTentCorridor/map.json +++ b/data/maps/VerdanturfTown_BattleTentCorridor/map.json @@ -2,7 +2,7 @@ "id": "MAP_VERDANTURF_TOWN_BATTLE_TENT_CORRIDOR", "name": "VerdanturfTown_BattleTentCorridor", "layout": "LAYOUT_BATTLE_TENT_CORRIDOR", - "music": "MUS_B_TOWER", + "music": "MUS_B_TOWER_RS", "region_map_section": "MAPSEC_VERDANTURF_TOWN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/VerdanturfTown_BattleTentLobby/map.json b/data/maps/VerdanturfTown_BattleTentLobby/map.json index cc294e47db..d4a8ccfa57 100644 --- a/data/maps/VerdanturfTown_BattleTentLobby/map.json +++ b/data/maps/VerdanturfTown_BattleTentLobby/map.json @@ -2,7 +2,7 @@ "id": "MAP_VERDANTURF_TOWN_BATTLE_TENT_LOBBY", "name": "VerdanturfTown_BattleTentLobby", "layout": "LAYOUT_BATTLE_TENT_LOBBY", - "music": "MUS_B_TOWER", + "music": "MUS_B_TOWER_RS", "region_map_section": "MAPSEC_VERDANTURF_TOWN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/VerdanturfTown_BattleTentLobby/scripts.inc b/data/maps/VerdanturfTown_BattleTentLobby/scripts.inc index 7a3aa605ca..f7a03b1ec9 100644 --- a/data/maps/VerdanturfTown_BattleTentLobby/scripts.inc +++ b/data/maps/VerdanturfTown_BattleTentLobby/scripts.inc @@ -55,7 +55,7 @@ VerdanturfTown_BattleTentLobby_EventScript_GivePrize:: @ 8201791 frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0 message BattleFrontier_BattleDomeLobby_Text_ReceivedPrize @ Odd that it used Dome's copy instead of Palace's waitmessage - playfanfare MUS_FANFA4 + playfanfare MUS_OBTAIN_ITEM waitfanfare msgbox VerdanturfTown_BattleTentLobby_Text_ReturnFortified, MSGBOX_DEFAULT closemessage diff --git a/data/maps/VerdanturfTown_FriendshipRatersHouse/map.json b/data/maps/VerdanturfTown_FriendshipRatersHouse/map.json index 7aaedcd233..7fa3104261 100644 --- a/data/maps/VerdanturfTown_FriendshipRatersHouse/map.json +++ b/data/maps/VerdanturfTown_FriendshipRatersHouse/map.json @@ -2,7 +2,7 @@ "id": "MAP_VERDANTURF_TOWN_FRIENDSHIP_RATERS_HOUSE", "name": "VerdanturfTown_FriendshipRatersHouse", "layout": "LAYOUT_HOUSE2", - "music": "MUS_GOMACHI0", + "music": "MUS_VERDANTURF", "region_map_section": "MAPSEC_VERDANTURF_TOWN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/VerdanturfTown_House/map.json b/data/maps/VerdanturfTown_House/map.json index bcc51079f5..d552e914a7 100644 --- a/data/maps/VerdanturfTown_House/map.json +++ b/data/maps/VerdanturfTown_House/map.json @@ -2,7 +2,7 @@ "id": "MAP_VERDANTURF_TOWN_HOUSE", "name": "VerdanturfTown_House", "layout": "LAYOUT_HOUSE1", - "music": "MUS_GOMACHI0", + "music": "MUS_VERDANTURF", "region_map_section": "MAPSEC_VERDANTURF_TOWN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/VerdanturfTown_Mart/map.json b/data/maps/VerdanturfTown_Mart/map.json index 96fa213664..b8183646ca 100644 --- a/data/maps/VerdanturfTown_Mart/map.json +++ b/data/maps/VerdanturfTown_Mart/map.json @@ -2,7 +2,7 @@ "id": "MAP_VERDANTURF_TOWN_MART", "name": "VerdanturfTown_Mart", "layout": "LAYOUT_MART", - "music": "MUS_FRIENDLY", + "music": "MUS_POKE_MART", "region_map_section": "MAPSEC_VERDANTURF_TOWN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/VerdanturfTown_PokemonCenter_1F/map.json b/data/maps/VerdanturfTown_PokemonCenter_1F/map.json index 74f3e342be..8e3fc3e286 100644 --- a/data/maps/VerdanturfTown_PokemonCenter_1F/map.json +++ b/data/maps/VerdanturfTown_PokemonCenter_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_VERDANTURF_TOWN_POKEMON_CENTER_1F", "name": "VerdanturfTown_PokemonCenter_1F", "layout": "LAYOUT_POKEMON_CENTER_1F", - "music": "MUS_POKECEN", + "music": "MUS_POKE_CENTER", "region_map_section": "MAPSEC_VERDANTURF_TOWN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/VerdanturfTown_PokemonCenter_2F/map.json b/data/maps/VerdanturfTown_PokemonCenter_2F/map.json index d7a51eba7b..2edb6602db 100644 --- a/data/maps/VerdanturfTown_PokemonCenter_2F/map.json +++ b/data/maps/VerdanturfTown_PokemonCenter_2F/map.json @@ -2,7 +2,7 @@ "id": "MAP_VERDANTURF_TOWN_POKEMON_CENTER_2F", "name": "VerdanturfTown_PokemonCenter_2F", "layout": "LAYOUT_POKEMON_CENTER_2F", - "music": "MUS_POKECEN", + "music": "MUS_POKE_CENTER", "region_map_section": "MAPSEC_VERDANTURF_TOWN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/VerdanturfTown_WandasHouse/map.json b/data/maps/VerdanturfTown_WandasHouse/map.json index 08b5348c7d..43a5b9c441 100644 --- a/data/maps/VerdanturfTown_WandasHouse/map.json +++ b/data/maps/VerdanturfTown_WandasHouse/map.json @@ -2,7 +2,7 @@ "id": "MAP_VERDANTURF_TOWN_WANDAS_HOUSE", "name": "VerdanturfTown_WandasHouse", "layout": "LAYOUT_VERDANTURF_TOWN_WANDAS_HOUSE", - "music": "MUS_GOMACHI0", + "music": "MUS_VERDANTURF", "region_map_section": "MAPSEC_VERDANTURF_TOWN", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/VictoryRoad_1F/map.json b/data/maps/VictoryRoad_1F/map.json index d0ff9e4406..5f3271c89e 100644 --- a/data/maps/VictoryRoad_1F/map.json +++ b/data/maps/VictoryRoad_1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_VICTORY_ROAD_1F", "name": "VictoryRoad_1F", "layout": "LAYOUT_VICTORY_ROAD_1F", - "music": "MUS_C_ROAD", + "music": "MUS_VICTORY_ROAD", "region_map_section": "MAPSEC_VICTORY_ROAD", "requires_flash": false, "weather": "WEATHER_NONE", diff --git a/data/maps/VictoryRoad_B1F/map.json b/data/maps/VictoryRoad_B1F/map.json index 9a387aa522..6e290ce6de 100644 --- a/data/maps/VictoryRoad_B1F/map.json +++ b/data/maps/VictoryRoad_B1F/map.json @@ -2,7 +2,7 @@ "id": "MAP_VICTORY_ROAD_B1F", "name": "VictoryRoad_B1F", "layout": "LAYOUT_VICTORY_ROAD_B1F", - "music": "MUS_C_ROAD", + "music": "MUS_VICTORY_ROAD", "region_map_section": "MAPSEC_VICTORY_ROAD", "requires_flash": true, "weather": "WEATHER_NONE", diff --git a/data/maps/VictoryRoad_B2F/map.json b/data/maps/VictoryRoad_B2F/map.json index 7e59f9f272..6ee56389f7 100644 --- a/data/maps/VictoryRoad_B2F/map.json +++ b/data/maps/VictoryRoad_B2F/map.json @@ -2,7 +2,7 @@ "id": "MAP_VICTORY_ROAD_B2F", "name": "VictoryRoad_B2F", "layout": "LAYOUT_VICTORY_ROAD_B2F", - "music": "MUS_C_ROAD", + "music": "MUS_VICTORY_ROAD", "region_map_section": "MAPSEC_VICTORY_ROAD", "requires_flash": true, "weather": "WEATHER_NONE", diff --git a/data/scripts/berry_tree.inc b/data/scripts/berry_tree.inc index 1e121678ee..fe10af4b3d 100644 --- a/data/scripts/berry_tree.inc +++ b/data/scripts/berry_tree.inc @@ -122,7 +122,7 @@ BerryTree_EventScript_PickBerry:: @ 8274448 special IncrementDailyPickedBerries special ObjectEventInteractionRemoveBerryTree message BerryTree_Text_PickedTheBerry - playfanfare MUS_ME_KINOMI + playfanfare MUS_OBTAIN_BERRY waitmessage waitfanfare waitbuttonpress diff --git a/data/scripts/cable_club.inc b/data/scripts/cable_club.inc index 66cf74f0a9..b81fbb4d54 100644 --- a/data/scripts/cable_club.inc +++ b/data/scripts/cable_club.inc @@ -132,7 +132,7 @@ CableClub_EventScript_ExitLinkRoom:: @ 8276C85 call CableClub_EventScript_CloseLinkAndExitLinkRoom call CableClub_EventScript_CloseDirectCornerBarrier special DrawWholeMapView - playse SE_TK_KASYA + playse SE_CLICK erasebox 0, 0, 29, 19 releaseall end @@ -142,7 +142,7 @@ CableClub_EventScript_ExitMinigameRoom:: @ 8276C9D call CableClub_EventScript_CloseLinkAndExitLinkRoom call EventScript_CloseMossdeepGameCornerBarrier special DrawWholeMapView - playse SE_TK_KASYA + playse SE_CLICK erasebox 0, 0, 29, 19 releaseall end @@ -165,7 +165,7 @@ CableClub_EventScript_ExitTradeCenter:: @ 8276CE7 call CableClub_EventScript_PlayerExitTradeCenter call CableClub_EventScript_CloseDirectCornerBarrier special DrawWholeMapView - playse SE_TK_KASYA + playse SE_CLICK erasebox 0, 0, 29, 19 releaseall end @@ -187,7 +187,7 @@ CableClub_EventScript_ExitRecordCorner:: @ 8276D2C call CableClub_EventScript_PlayerExitRecordCorner call CableClub_EventScript_CloseDirectCornerBarrier special DrawWholeMapView - playse SE_TK_KASYA + playse SE_CLICK erasebox 0, 0, 29, 19 releaseall end @@ -209,7 +209,7 @@ CableClub_EventScript_ExitUnionRoom:: @ 8276D6C call CableClub_EventScript_PlayerExitUnionRoom call CableClub_EventScript_CloseUnionRoomBarrier special DrawWholeMapView - playse SE_TK_KASYA + playse SE_CLICK erasebox 0, 0, 29, 19 releaseall end @@ -372,7 +372,7 @@ CableClub_EventScript_EnterColosseum:: @ 8276FBD waitmessage call CableClub_EventScript_OpenDirectCornerBarrier special DrawWholeMapView - playse SE_TK_KASYA + playse SE_CLICK delay 60 applymovement VAR_LAST_TALKED, Movement_AttendantFaceLeft waitmovement 0 @@ -477,7 +477,7 @@ CableClub_EventScript_EnterTradeCenter:: @ 827713A waitmessage call CableClub_EventScript_OpenDirectCornerBarrier special DrawWholeMapView - playse SE_TK_KASYA + playse SE_CLICK delay 60 applymovement VAR_LAST_TALKED, Movement_AttendantFaceLeft waitmovement 0 @@ -552,7 +552,7 @@ CableClub_EventScript_EnterRecordCorner:: @ 827724C waitmessage call CableClub_EventScript_OpenDirectCornerBarrier special DrawWholeMapView - playse SE_TK_KASYA + playse SE_CLICK delay 60 applymovement VAR_LAST_TALKED, Movement_AttendantFaceLeft waitmovement 0 @@ -955,7 +955,7 @@ CableClub_EventScript_EnterUnionRoom:: @ 827759F copyvar VAR_CABLE_CLUB_STATE, VAR_0x8004 call CableClub_EventScript_OpenUnionRoomBarrier special DrawWholeMapView - playse SE_TK_KASYA + playse SE_CLICK delay 60 applymovement VAR_LAST_TALKED, Movement_AttendantFaceLeft waitmovement 0 @@ -1285,7 +1285,7 @@ CableClub_EventScript_EnterWirelessLinkRoom:: @ 8277B3A copyvar VAR_0x8007, VAR_LAST_TALKED call CableClub_EventScript_OpenDirectCornerBarrier special DrawWholeMapView - playse SE_TK_KASYA + playse SE_CLICK delay 60 applymovement VAR_LAST_TALKED, Movement_AttendantFaceLeft waitmovement 0 @@ -1481,7 +1481,7 @@ MossdeepCity_GameCorner_1F_EventScript_EnterMinigameRoom:: @ 8277E0E copyvar VAR_0x8007, VAR_LAST_TALKED call EventScript_OpenMossdeepGameCornerBarrier special DrawWholeMapView - playse SE_TK_KASYA + playse SE_CLICK delay 60 applymovement VAR_LAST_TALKED, Movement_AttendantFaceLeft waitmovement 0 diff --git a/data/scripts/cave_hole.inc b/data/scripts/cave_hole.inc index b55c932ee5..1cc3340049 100644 --- a/data/scripts/cave_hole.inc +++ b/data/scripts/cave_hole.inc @@ -11,7 +11,7 @@ EventScript_FallDownHole:: @ 82A8337 delay 20 applymovement OBJ_EVENT_ID_PLAYER, Movement_SetInvisible waitmovement 0 - playse SE_RU_HYUU + playse SE_FALL delay 60 warphole MAP_UNDEFINED waitstate @@ -22,7 +22,7 @@ EventScript_FallDownHoleMtPyre:: @ 82A8350 delay 20 applymovement OBJ_EVENT_ID_PLAYER, Movement_SetInvisible waitmovement 0 - playse SE_RU_HYUU + playse SE_FALL delay 60 special DoFallWarp waitstate diff --git a/data/scripts/contest_hall.inc b/data/scripts/contest_hall.inc index 984e1b93b4..1ef723c375 100644 --- a/data/scripts/contest_hall.inc +++ b/data/scripts/contest_hall.inc @@ -401,13 +401,13 @@ ContestHall_EventScript_ShowContestMonPic:: @ 827A1D2 call ContestHall_EventScript_TryWaitForLink call ContestHall_EventScript_CheckIfContestWithRSPlayer addobject LOCALID_POKEBALL - playse SE_DANSA + playse SE_LEDGE lockall applymovement VAR_0x800B, ContestHall_Movement_ContestantDelay32 waitmovement 0 releaseall addvar VAR_0x8006, -1 - playse SE_BOWA2 + playse SE_BALL_OPEN special ShowContestEntryMonPic call ContestHall_EventScript_EntryXTrainersMon return @@ -427,7 +427,7 @@ ContestHall_EventScript_EntryXTrainersMonLink:: @ 827A229 ContestHall_EventScript_AudienceVote:: @ 827A230 call ContestHall_EventScript_AudienceWillVote call ContestHall_EventScript_VotingUnderWay - playse SE_W227B + playse SE_M_ENCORE2 waitmessage call ContestHall_EventScript_AudienceLookAround applymovement LOCALID_MC, ContestHall_Movement_MCFaceJudge2 @@ -481,7 +481,7 @@ ContestHall_EventScript_AudienceReactToContestant:: @ 827A2D5 call ContestHall_EventScript_TryWaitForLink applymovement LOCALID_MC, ContestHall_Movement_AudienceMemberLookLeft waitmovement 0 - playse SE_W227B + playse SE_M_ENCORE2 call ContestHall_EventScript_VObjectAudienceLookAround applymovement LOCALID_AUDIENCE_5, ContestHall_Movement_AudienceMemberLookRight applymovement LOCALID_AUDIENCE_2, ContestHall_Movement_AudienceMemberLookDown @@ -916,7 +916,7 @@ ContestHall_EventScript_ContestResults:: @ 827A8A5 setvar VAR_TEMP_9, 1 showcontestresults setvar VAR_TEMP_9, 0 - playbgm MUS_CON_FAN, 0 + playbgm MUS_CONTEST_WINNER, 0 return ContestHall_EventScript_ThatsItForJudging:: @ 827A8FB @@ -1005,7 +1005,7 @@ ContestHall_EventScript_CongratulateWinner:: @ 827A9D4 call ContestHall_EventScript_CongratsWinner applymovement VAR_TEMP_3, ContestHall_Movement_WinningPlayerWalkUp waitmovement 0 - playse SE_W227B + playse SE_M_ENCORE2 setvar VAR_TEMP_1, 0 return @@ -1117,7 +1117,7 @@ ContestHall_EventScript_GiveWinnerPrize:: @ 827AB36 releaseall call ContestHall_EventScript_WinnerApproachForPrize call ContestHall_EventScript_GivePrizeIfWinner - playse SE_W227B + playse SE_M_ENCORE2 setvar VAR_TEMP_1, 0 call ContestHall_EventScript_AudienceLookAround delay 30 @@ -1266,7 +1266,7 @@ ContestHall_EventScript_ReceiveContestRibbon:: @ 827ACDF setflag FLAG_SYS_RIBBON_GET lockall msgbox ContestHall_Text_ConferRibbonAsPrize, MSGBOX_DEFAULT - playfanfare MUS_FANFA4 + playfanfare MUS_OBTAIN_ITEM msgbox ContestHall_Text_ReceivedRibbon, MSGBOX_DEFAULT waitfanfare special BufferContestWinnerMonName diff --git a/data/scripts/day_care.inc b/data/scripts/day_care.inc index 87995581fa..ea85525105 100644 --- a/data/scripts/day_care.inc +++ b/data/scripts/day_care.inc @@ -38,7 +38,7 @@ Route117_EventScript_DaycareAcceptEgg:: @ 8291C83 Route117_EventScript_DaycareReceiveEgg:: @ 8291C9D message Route117_Text_ReceivedEgg - playfanfare MUS_FANFA1 + playfanfare MUS_LEVEL_UP waitfanfare waitbuttonpress msgbox Route117_Text_TakeGoodCareOfIt, MSGBOX_DEFAULT @@ -217,7 +217,7 @@ Route117_PokemonDayCare_EventScript_RetrieveMon:: @ 8291EE2 waitmovement 0 specialvar VAR_RESULT, TakePokemonFromDaycare special SubtractMoneyFromVar0x8005 - playse SE_REGI + playse SE_SHOP msgbox Route117_PokemonDayCare_Text_HeresYourMon, MSGBOX_DEFAULT waitse playmoncry VAR_RESULT, 0 diff --git a/data/scripts/elite_four.inc b/data/scripts/elite_four.inc index 3b395de21b..f4eb6393b8 100644 --- a/data/scripts/elite_four.inc +++ b/data/scripts/elite_four.inc @@ -20,7 +20,7 @@ PokemonLeague_EliteFour_SetAdvanceToNextRoomMetatiles:: @ 82723F8 PokemonLeague_EliteFour_EventScript_WalkInCloseDoor:: @ 8272475 applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkUp6 waitmovement 0 - playse SE_TRACK_DOOR + playse SE_TRUCK_DOOR setmetatile 5, 12, METATILE_EliteFour_EntryDoor_ClosedTop, 1 setmetatile 6, 12, METATILE_EliteFour_EntryDoor_ClosedTop, 1 setmetatile 7, 12, METATILE_EliteFour_EntryDoor_ClosedTop, 1 diff --git a/data/scripts/lilycove_lady.inc b/data/scripts/lilycove_lady.inc index 7f629e5dbd..40ead8e585 100644 --- a/data/scripts/lilycove_lady.inc +++ b/data/scripts/lilycove_lady.inc @@ -259,9 +259,9 @@ LilycoveCity_PokemonCenter_1F_EventScript_SubmitQuizResponse:: @ 82A8689 end LilycoveCity_PokemonCenter_1F_EventScript_CorrectResponse:: @ 82A86B0 - playse SE_SEIKAI + playse SE_SUCCESS delay 10 - playse SE_SEIKAI + playse SE_SUCCESS msgbox LilycoveCity_PokemonCenter_1F_Text_YouGotItRight, MSGBOX_DEFAULT goto LilycoveCity_PokemonCenter_1F_EventScript_ReadyGivePrize end @@ -269,9 +269,9 @@ LilycoveCity_PokemonCenter_1F_EventScript_CorrectResponse:: @ 82A86B0 LilycoveCity_PokemonCenter_1F_EventScript_IncorrectResponse:: @ 82A86C7 special BufferQuizCorrectAnswer special BufferQuizPrizeName - playse SE_HAZURE + playse SE_FAILURE delay 10 - playse SE_HAZURE + playse SE_FAILURE msgbox LilycoveCity_PokemonCenter_1F_Text_WrongTheCorrectAnswerIs, MSGBOX_DEFAULT msgbox LilycoveCity_PokemonCenter_1F_Text_IGetToKeepPrize, MSGBOX_DEFAULT goto LilycoveCity_PokemonCenter_1F_EventScript_AskMakeQuiz diff --git a/data/scripts/mevent_pichu.inc b/data/scripts/mevent_pichu.inc index cc947e396d..c51558e9e3 100644 --- a/data/scripts/mevent_pichu.inc +++ b/data/scripts/mevent_pichu.inc @@ -14,7 +14,7 @@ SurfPichu_GiveIfPossible: @ 8674D4C vmessage sText_MysteryGiftEgg waitmessage waitbuttonpress - playfanfare MUS_FANFA4 + playfanfare MUS_OBTAIN_ITEM waitfanfare release end diff --git a/data/scripts/obtain_item.inc b/data/scripts/obtain_item.inc index 3afd92588a..19f57d9d52 100644 --- a/data/scripts/obtain_item.inc +++ b/data/scripts/obtain_item.inc @@ -65,11 +65,11 @@ EventScript_NoRoomForItem:: @ 8271BA9 return EventScript_PlayFanfareObtainedItem:: @ 8271BAF - playfanfare MUS_FANFA4 + playfanfare MUS_OBTAIN_ITEM return EventScript_PlayFanfareObtainedTMHM:: @ 8271BB3 - playfanfare MUS_ME_WAZA + playfanfare MUS_OBTAIN_TMHM return Std_ObtainDecoration:: @ 8271BB7 @@ -87,7 +87,7 @@ EventScript_ObtainDecorationMessage:: @ 8271BC5 return EventScript_ObtainedDecor:: @ 8271BE0 - playfanfare MUS_FANFA4 + playfanfare MUS_OBTAIN_ITEM message gText_ObtainedTheDecor waitfanfare msgbox gText_TheDecorWasTransferredToThePC, MSGBOX_DEFAULT diff --git a/data/scripts/players_house.inc b/data/scripts/players_house.inc index 440f47a6ae..684b27e71e 100644 --- a/data/scripts/players_house.inc +++ b/data/scripts/players_house.inc @@ -73,7 +73,7 @@ PlayersHouse_2F_EventScript_WallClock:: @ 8292799 call_if_eq PlayersHouse_2F_EventScript_MomComesUpstairsMale compare VAR_RESULT, FEMALE call_if_eq PlayersHouse_2F_EventScript_MomComesUpstairsFemale - playse SE_KAIDAN + playse SE_EXIT removeobject VAR_0x8008 releaseall end @@ -159,7 +159,7 @@ PlayersHouse_1F_EventScript_PetalburgGymReportMale:: @ 829286D call PlayersHouse_1F_EventScript_MomNoticeGymBroadcast applymovement OBJ_EVENT_ID_PLAYER, PlayersHouse_1F_Movement_PlayerApproachTVForGymMale waitmovement 0 - playbgm MUS_INTER_V, 0 + playbgm MUS_ENCOUNTER_INTERVIEWER, 0 msgbox PlayersHouse_1F_Text_MaybeDadWillBeOn, MSGBOX_DEFAULT closemessage applymovement VAR_0x8005, PlayersHouse_1F_Movement_MomMakeRoomToSeeTVMale @@ -184,7 +184,7 @@ PlayersHouse_1F_EventScript_PetalburgGymReportFemale:: @ 82928DC call PlayersHouse_1F_EventScript_MomNoticeGymBroadcast applymovement OBJ_EVENT_ID_PLAYER, PlayersHouse_1F_Movement_PlayerApproachTVForGymFemale waitmovement 0 - playbgm MUS_INTER_V, 0 + playbgm MUS_ENCOUNTER_INTERVIEWER, 0 msgbox PlayersHouse_1F_Text_MaybeDadWillBeOn, MSGBOX_DEFAULT closemessage applymovement VAR_0x8005, PlayersHouse_1F_Movement_MomMakeRoomToSeeTVFemale @@ -334,7 +334,7 @@ PlayersHouse_1F_EventScript_TryRegisterMom:: @ 8292A19 msgbox PlayersHouse_1F_Text_IsThatAPokenav, MSGBOX_DEFAULT closemessage delay 30 - playfanfare MUS_ME_TORE_EYE + playfanfare MUS_REGISTER_MATCH_CALL msgbox PlayersHouse_1F_Text_RegisteredMom, MSGBOX_DEFAULT waitfanfare closemessage diff --git a/data/scripts/safari_zone.inc b/data/scripts/safari_zone.inc index 6a811d9354..d04a16b587 100644 --- a/data/scripts/safari_zone.inc +++ b/data/scripts/safari_zone.inc @@ -24,7 +24,7 @@ SafariZone_EventScript_Retire:: @ 82A4B85 SafariZone_EventScript_TimesUp:: @ 82A4B8A lockall - playse SE_PINPON + playse SE_DING_DONG message SafariZone_Text_TimesUp waitmessage waitbuttonpress @@ -33,7 +33,7 @@ SafariZone_EventScript_TimesUp:: @ 82A4B8A SafariZone_EventScript_OutOfBalls:: @ 82A4B9B lockall - playse SE_PINPON + playse SE_DING_DONG message SafariZone_Text_OutOfBalls waitmessage waitbuttonpress diff --git a/data/scripts/secret_base.inc b/data/scripts/secret_base.inc index 0de890aa60..132bdd19ca 100644 --- a/data/scripts/secret_base.inc +++ b/data/scripts/secret_base.inc @@ -144,7 +144,7 @@ SecretBase_EventScript_ShrubEnter:: @ 8275B4D SecretBase_EventScript_InitSecretBase:: @ 8275B5B closemessage - playse SE_KAIDAN + playse SE_EXIT setvar VAR_INIT_SECRET_BASE, 0 setflag FLAG_DECORATION_0 special SetPlayerSecretBase @@ -164,7 +164,7 @@ SecretBase_EventScript_FirstEntrance:: @ 8275B81 compare VAR_RESULT, YES goto_if_eq SecretBase_EventScript_SetAsBase closemessage - playse SE_KAIDAN + playse SE_EXIT special ClearAndLeaveSecretBase end @@ -183,7 +183,7 @@ SecretBase_Movement_275BB4: @ 8275BB4 SecretBase_EventScript_Enter:: @ 8275BB7 lockall setvar VAR_INIT_SECRET_BASE, 1 - playse SE_KAIDAN + playse SE_EXIT special IsCurSecretBaseOwnedByAnotherPlayer compare VAR_RESULT, FALSE goto_if_eq SecretBase_EventScript_EnterPlayersBase diff --git a/data/scripts/std_msgbox.inc b/data/scripts/std_msgbox.inc index 1d82bb381b..10b46700e7 100644 --- a/data/scripts/std_msgbox.inc +++ b/data/scripts/std_msgbox.inc @@ -29,7 +29,7 @@ Std_MsgboxYesNo: @ 8271332 Std_MsgboxGetPoints: @ 827133C message 0x0 - playfanfare MUS_ME_POINTGET + playfanfare MUS_OBTAIN_B_POINTS waitfanfare waitmessage return diff --git a/data/scripts/trainer_script.inc b/data/scripts/trainer_script.inc index 59577e8a8a..c77e628ee5 100644 --- a/data/scripts/trainer_script.inc +++ b/data/scripts/trainer_script.inc @@ -3,7 +3,7 @@ Std_RegisteredInMatchCall:: @ 82742C9 buffertrainername 1, VAR_0x8000 closemessage delay 30 - playfanfare MUS_ME_TORE_EYE + playfanfare MUS_REGISTER_MATCH_CALL msgbox gText_RegisteredTrainerinPokeNav, MSGBOX_DEFAULT waitfanfare closemessage diff --git a/include/constants/songs.h b/include/constants/songs.h index b44c9f7a8b..129cd44a27 100644 --- a/include/constants/songs.h +++ b/include/constants/songs.h @@ -1,543 +1,548 @@ #ifndef GUARD_CONSTANTS_SONGS_H #define GUARD_CONSTANTS_SONGS_H -#define MUS_DUMMY 0 -#define SE_KAIFUKU 1 // Healing Item -#define SE_PC_LOGIN 2 // PC Logon -#define SE_PC_OFF 3 // PC Shutdown -#define SE_PC_ON 4 // PC Startup -#define SE_SELECT 5 // Cursor Selection -#define SE_WIN_OPEN 6 // Start Menu -#define SE_WALL_HIT 7 // Wall Bump -#define SE_DOOR 8 // Opening Door -#define SE_KAIDAN 9 // Stairs -#define SE_DANSA 10 // Ledge -#define SE_JITENSYA 11 // Bicycle Bell -#define SE_KOUKA_L 12 // Not Very Effective -#define SE_KOUKA_M 13 // Normal Effectiveness -#define SE_KOUKA_H 14 // Super Effective -#define SE_BOWA2 15 // Pokémon Withdrawal -#define SE_POKE_DEAD 16 // Pokémon Fainted -#define SE_NIGERU 17 // Flee from Wild Battle -#define SE_JIDO_DOA 18 // Pokémon Center Door -#define SE_NAMINORI 19 // Briney's Ship -#define SE_BAN 20 // Bang -#define SE_PIN 21 // Exclamation Bubble -#define SE_BOO 22 // Contest Jam -#define SE_BOWA 23 // Giving Poké Ball to Nurse, Poké Ball Wiggle -#define SE_JYUNI 24 // Places in Contest Appearing -#define SE_A 25 // Bard A -#define SE_I 26 // Bard I -#define SE_U 27 // Bard U -#define SE_E 28 // Bard E -#define SE_O 29 // Bard O -#define SE_N 30 // Bard N -#define SE_SEIKAI 31 // Success -#define SE_HAZURE 32 // Failure -#define SE_EXP 33 // Exp. Bar -#define SE_JITE_PYOKO 34 // Bunny Hop -#define SE_MU_PACHI 35 -#define SE_TK_KASYA 36 // Mossdeep Gym/Trick House Switch -#define SE_FU_ZAKU 37 -#define SE_FU_ZAKU2 38 -#define SE_FU_ZUZUZU 39 // Lavaridge Gym Warp -#define SE_RU_GASHIN 40 // Sootopolis Gym - Stairs Appear -#define SE_RU_GASYAN 41 // Sootopolis Gym - Ice Breaking -#define SE_RU_BARI 42 // Sootopolis Gym - Walking on Ice -#define SE_RU_HYUU 43 // Falling Down -#define SE_KI_GASYAN 44 -#define SE_TK_WARPIN 45 // Warp In -#define SE_TK_WARPOUT 46 // Warp Out -#define SE_TU_SAA 47 // Repel -#define SE_HI_TURUN 48 // Moving Obstacle in Fortree Gym -#define SE_TRACK_MOVE 49 // Moving Truck -#define SE_TRACK_STOP 50 // Moving Truck Stop -#define SE_TRACK_HAIKI 51 // Moving Truck Unload -#define SE_TRACK_DOOR 52 // Moving Truck Door -#define SE_MOTER 53 -#define SE_CARD 54 -#define SE_SAVE 55 // Save -#define SE_KON 56 // Poké Ball Bounce 1 -#define SE_KON2 57 // Poké Ball Bounce 2 -#define SE_KON3 58 // Poké Ball Bounce 3 -#define SE_KON4 59 // Poké Ball Bounce 4 -#define SE_SUIKOMU 60 // Poké Ball Trade -#define SE_NAGERU 61 // Poké Ball Throw -#define SE_TOY_C 62 // Note C -#define SE_TOY_D 63 // Note D -#define SE_TOY_E 64 // Note E -#define SE_TOY_F 65 // Note F -#define SE_TOY_G 66 // Note G -#define SE_TOY_A 67 // Note A -#define SE_TOY_B 68 // Note B -#define SE_TOY_C1 69 // Note High C -#define SE_MIZU 70 // Puddle -#define SE_HASHI 71 // Boardwalk -#define SE_DAUGI 72 // Slots Credits -#define SE_PINPON 73 // Ding-dong! -#define SE_FUUSEN1 74 // Red Balloon -#define SE_FUUSEN2 75 // Blue Balloon -#define SE_FUUSEN3 76 // Yellow Balloon -#define SE_TOY_KABE 77 // Breakable Door -#define SE_TOY_DANGO 78 // Mud Ball -#define SE_DOKU 79 // Overworld Poison Damage -#define SE_ESUKA 80 // Escalator -#define SE_T_AME 81 // Rain -#define SE_T_AME_E 82 // Rain Stop -#define SE_T_OOAME 83 // Heavy Rain -#define SE_T_OOAME_E 84 // Heavy Rain Stop -#define SE_T_KOAME 85 // Light Rain -#define SE_T_KOAME_E 86 // Light Rain Stop -#define SE_T_KAMI 87 // Thunder -#define SE_T_KAMI2 88 // Thunder 2 -#define SE_ELEBETA 89 // Elevator -#define SE_HINSI 90 // Low Health -#define SE_EXPMAX 91 // Exp. Max -#define SE_TAMAKORO 92 // Roulette Ball -#define SE_TAMAKORO_E 93 // Roulette Ball 2 -#define SE_BASABASA 94 -#define SE_REGI 95 // Cash Register -#define SE_C_GAJI 96 // Contest Hearts -#define SE_C_MAKU_U 97 // Contest Curtain rise -#define SE_C_MAKU_D 98 // Contest Curtain fall -#define SE_C_PASI 99 -#define SE_C_SYU 100 -#define SE_C_PIKON 101 // Pokémon Appears in Contest -#define SE_REAPOKE 102 // Shiny Pokémon -#define SE_OP_BASYU 103 // Opening Movie -> Title Screen whoosh -#define SE_BT_START 104 // Battle Mugshot whoosh -#define SE_DENDOU 105 // Audience Cheering -#define SE_JIHANKI 106 // Vending Machine -#define SE_TAMA 107 // Orb Used -#define SE_Z_SCROLL 108 // Pokédex Scrolling -#define SE_Z_PAGE 109 // Pokédex Page -#define SE_PN_ON 110 // PokéNav On -#define SE_PN_OFF 111 // PokéNav Off -#define SE_Z_SEARCH 112 // Pokédex Search -#define SE_TAMAGO 113 // Egg hatch -#define SE_TB_START 114 // Battle - Poké Ball Tray slide in -#define SE_TB_KON 115 // Battle - Poké Ball Tray ball sound -#define SE_TB_KARA 116 // Battle - Poké Ball Tray slide out -#define SE_BIDORO 117 -#define SE_W085 118 // Thunderbolt -#define SE_W085B 119 // Thunderbolt 2 -#define SE_W231 120 // Harden -#define SE_W171 121 // Nightmare -#define SE_W233 122 // Vital Throw -#define SE_W233B 123 // Vital Throw 2 -#define SE_W145 124 // Bubble -#define SE_W145B 125 // Bubble 2 -#define SE_W145C 126 // Bubble 3 -#define SE_W240 127 // Rain Dance -#define SE_W015 128 // Cut -#define SE_W081 129 // String Shot -#define SE_W081B 130 // String Shot 2 -#define SE_W088 131 // Rock Throw -#define SE_W016 132 // Gust -#define SE_W016B 133 // Gust 2 -#define SE_W003 134 // DoubleSlap -#define SE_W104 135 // Double Team -#define SE_W013 136 // Razor Wind -#define SE_W196 137 // Icy Wind -#define SE_W086 138 // Thunder Wave -#define SE_W004 139 // Comet Punch -#define SE_W025 140 // Mega Kick -#define SE_W025B 141 // Mega Kick 2 -#define SE_W152 142 // Crabhammer -#define SE_W026 143 // Jump Kick -#define SE_W172 144 // Flame Wheel -#define SE_W172B 145 // Flame Wheel 2 -#define SE_W053 146 // Flamethrower -#define SE_W007 147 // Fire Punch -#define SE_W092 148 // Toxic -#define SE_W221 149 // Sacred Fire -#define SE_W221B 150 // Sacred Fire 2 -#define SE_W052 151 // Ember -#define SE_W036 152 // Take Down -#define SE_W059 153 // Blizzard -#define SE_W059B 154 // Blizzard 2 -#define SE_W010 155 // Scratch -#define SE_W011 156 // Vicegrip -#define SE_W017 157 // Wing Attack -#define SE_W019 158 // Fly -#define SE_W028 159 // Sand-Attack -#define SE_W013B 160 // Razor Wind 2 -#define SE_W044 161 // Bite -#define SE_W029 162 // Headbutt -#define SE_W057 163 // Surf -#define SE_W056 164 // Hydro Pump -#define SE_W250 165 // Whirlpool -#define SE_W030 166 // Horn Attack -#define SE_W039 167 // Tail Whip -#define SE_W054 168 // Mist -#define SE_W077 169 // PoisonPowder -#define SE_W020 170 // Bind -#define SE_W082 171 // Dragon Rage -#define SE_W047 172 // Sing -#define SE_W195 173 // Perish Song -#define SE_W006 174 // Pay Day -#define SE_W091 175 // Dig -#define SE_W146 176 // Dizzy Punch -#define SE_W120 177 // Self-Destruct -#define SE_W153 178 // Explosion -#define SE_W071B 179 // Absorb 2 -#define SE_W071 180 // Absorb -#define SE_W103 181 // Screech -#define SE_W062 182 // BubbleBeam -#define SE_W062B 183 // BubbleBeam 2 -#define SE_W048 184 // Supersonic -#define SE_W187 185 // Belly Drum -#define SE_W118 186 // Metronome -#define SE_W155 187 // Bonemerang -#define SE_W122 188 // Lick -#define SE_W060 189 // Psybeam -#define SE_W185 190 // Faint Attack -#define SE_W014 191 // Swords Dance -#define SE_W043 192 // Leer -#define SE_W207 193 // Swagger -#define SE_W207B 194 // Swagger 2 -#define SE_W215 195 // Heal Bell -#define SE_W109 196 // Confuse Ray -#define SE_W173 197 // Snore -#define SE_W280 198 // Brick Break -#define SE_W202 199 // Giga Drain -#define SE_W060B 200 // Psybeam 2 -#define SE_W076 201 // SolarBeam -#define SE_W080 202 // Petal Dance -#define SE_W100 203 // Teleport -#define SE_W107 204 // Minimize -#define SE_W166 205 // Sketch -#define SE_W129 206 // Swift -#define SE_W115 207 // Reflect -#define SE_W112 208 // Barrier -#define SE_W197 209 // Detect -#define SE_W199 210 // Lock-On -#define SE_W236 211 // Moonlight -#define SE_W204 212 // Charm -#define SE_W268 213 // Charge -#define SE_W070 214 // Strength -#define SE_W063 215 // Hyper Beam -#define SE_W127 216 // Waterfall -#define SE_W179 217 // Reversal -#define SE_W151 218 // Acid Armor -#define SE_W201 219 // Sandstorm -#define SE_W161 220 // Tri-Attack -#define SE_W161B 221 // Tri-Attack 2 -#define SE_W227 222 // Encore -#define SE_W227B 223 // Encore 2 -#define SE_W226 224 // Baton Pass -#define SE_W208 225 // Milk Drink -#define SE_W213 226 // Attract -#define SE_W213B 227 // Attract 2 -#define SE_W234 228 // Morning Sun -#define SE_W260 229 // Flatter -#define SE_W328 230 // Sand Tomb -#define SE_W320 231 // GrassWhistle -#define SE_W255 232 // Spit Up -#define SE_W291 233 // Dive -#define SE_W089 234 // Earthquake -#define SE_W239 235 // Twister -#define SE_W230 236 // Sweet Scent -#define SE_W281 237 // Yawn -#define SE_W327 238 // Sky Uppercut -#define SE_W287 239 // Stat Increased -#define SE_W257 240 // Heat Wave -#define SE_W253 241 // Uproar -#define SE_W258 242 // Hail -#define SE_W322 243 // Cosmic Power -#define SE_W298 244 // Teeter Dance -#define SE_W287B 245 // Stat Decreased -#define SE_W114 246 // Haze -#define SE_W063B 247 // Hyper Beam 2 -// FRLG SFX below -#define SE_RG_W_DOOR 248 // Door -#define SE_RG_CARD1 249 // Trainer Card 1 -#define SE_RG_CARD2 250 // Trainer Card 2 -#define SE_RG_CARD3 251 // Trainer Card 3 -#define SE_RG_BAG1 252 // Bag Scroll -#define SE_RG_BAG2 253 // Bag Pocket Change -#define SE_RG_GETTING 254 -#define SE_RG_SHOP 255 // Cash Register -#define SE_RG_KITEKI 256 // S.S. Anne Horn -#define SE_RG_HELP_OP 257 // Help Menu Open -#define SE_RG_HELP_CL 258 // Help Menu Close -#define SE_RG_HELP_NG 259 // Help Menu Error -#define SE_RG_DEOMOV 260 // Deoxys Moves -#define SE_RG_EXCELLENT 261 -#define SE_RG_NAWAMISS 262 -// end FRLG SFX -#define SE_TOREEYE 263 // Trainer's Eye Call -#define SE_TOREOFF 264 // Trainer's Eye Hang Up -#define SE_HANTEI1 265 // Battle Arena Time's Up 1 -#define SE_HANTEI2 266 // Battle Arena Time's Up 2 -#define SE_CURTAIN 267 // Battle Pike Curtain Open -#define SE_CURTAIN1 268 // Battle Pike Curtain Close -#define SE_USSOKI 269 // Sudowoodo +// Original JP names listed on right, along with any additional notes -#define MUS_TETSUJI 350 // Littleroot Town Test 'TETSUJI' -#define MUS_FIELD13 351 // GSC - Route 38 -#define MUS_KACHI22 352 // Wild Pokémon Defeated -#define MUS_KACHI2 353 // Wild Pokémon Defeated with Intro -#define MUS_KACHI3 354 // Gym Leader Defeated -#define MUS_KACHI5 355 // Victory! Elite Four -#define MUS_PCC 356 // Crystal - Pokémon Communication Center -#define MUS_NIBI 357 // GSC - Viridian/Saffron/Pewter/etc -#define MUS_SUIKUN 358 // Crystal - Battle! Legendary Beasts -#define MUS_DOORO1 359 // Route 101 -#define MUS_DOORO_X1 360 // Route 110 -#define MUS_DOORO_X3 361 // Route 120 -#define MUS_MACHI_S2 362 // Petalburg City -#define MUS_MACHI_S4 363 // Oldale/Lavaridge Town -#define MUS_GIM 364 // Gym -#define MUS_NAMINORI 365 // Surfing -#define MUS_DAN01 366 // Caves and Darkness -#define MUS_FANFA1 367 // Level Up! -#define MUS_ME_ASA 368 // Pokémon Healed -#define MUS_ME_BACHI 369 // Obtained a Badge! -#define MUS_FANFA4 370 // Obtained an Item! -#define MUS_FANFA5 371 // Your Pokémon Just Evolved! -#define MUS_ME_WAZA 372 // Obtained a TM/HM! -#define MUS_BIJYUTU 373 // Lilycove Museum -#define MUS_DOORO_X4 374 // Route 122/Intro -#define MUS_FUNE_KAN 375 // Slateport Museum -#define MUS_ME_SHINKA 376 // Evolution Intro -#define MUS_SHINKA 377 // Evolution -#define MUS_ME_WASURE 378 // Move Deleted/Messed Up Appeal -#define MUS_SYOUJOEYE 379 // Encounter! Tuber -#define MUS_BOYEYE 380 // Encounter! Boy -#define MUS_DAN02 381 // Abandoned Ship/Southern Island -#define MUS_MACHI_S3 382 // Fortree City/Pacifidlog Town -#define MUS_ODAMAKI 383 // Professor Birch's Lab -#define MUS_B_TOWER 384 // Battle Tower (RS) -#define MUS_SWIMEYE 385 // Encounter! Swimmer -#define MUS_DAN03 386 // Meteor Falls/Cave of Origin -#define MUS_ME_KINOMI 387 // Obtained a Berry! -#define MUS_ME_TAMA 388 // Awakening the Super-Ancient Pokémon -#define MUS_ME_B_BIG 389 // Slots Jackpot! -#define MUS_ME_B_SMALL 390 // Slots Victory! -#define MUS_ME_ZANNEN 391 // Too bad! -#define MUS_BD_TIME 392 // Roulette! -#define MUS_TEST1 393 // Contest Test 1 -#define MUS_TEST2 394 // Contest Test 2 -#define MUS_TEST3 395 // Contest Test 3 -#define MUS_TEST4 396 // Contest Test 4 -#define MUS_TEST 397 // Encounter! Gentleman -#define MUS_GOMACHI0 398 // Verdanturf Town -#define MUS_GOTOWN 399 // Rustboro/Mauville/Mossdeep City -#define MUS_POKECEN 400 // Pokémon Center -#define MUS_NEXTROAD 401 // Route 104 -#define MUS_GRANROAD 402 // Route 119 -#define MUS_CYCLING 403 // Cycling -#define MUS_FRIENDLY 404 // Pokémart -#define MUS_MISHIRO 405 // Littleroot Town -#define MUS_TOZAN 406 // Sky Pillar -#define MUS_GIRLEYE 407 // Encounter! Girl -#define MUS_MINAMO 408 // Lilycove City -#define MUS_ASHROAD 409 // Route 111 -#define MUS_EVENT0 410 // Help me! -#define MUS_DEEPDEEP 411 // Underwater -#define MUS_KACHI1 412 // Victory! Trainer -#define MUS_TITLE3 413 // Title Screen -#define MUS_DEMO1 414 // Opening Movie -#define MUS_GIRL_SUP 415 // Encounter! May -#define MUS_HAGESHII 416 // Encounter! Biker -#define MUS_KAKKOII 417 // Encounter! Electric Trainer -#define MUS_KAZANBAI 418 // Route 113 -#define MUS_AQA_0 419 // Encounter! Team Aqua -#define MUS_TSURETEK 420 // Follow Me! -#define MUS_BOY_SUP 421 // Encounter! Brendan -#define MUS_RAINBOW 422 // Ever Grande City -#define MUS_AYASII 423 // Encounter! Psychic -#define MUS_KACHI4 424 // Victory! Aqua/Magma Grunt -#define MUS_ROPEWAY 425 // Cable Car -#define MUS_CASINO 426 // Game Corner -#define MUS_HIGHTOWN 427 // Dewford Town -#define MUS_SAFARI 428 // Safari Zone -#define MUS_C_ROAD 429 // Victory Road -#define MUS_AJITO 430 // Aqua/Magma Hideout -#define MUS_M_BOAT 431 // Sailing -#define MUS_M_DUNGON 432 // Mt. Pyre (Inside) -#define MUS_FINECITY 433 // Slateport City -#define MUS_MACHUPI 434 // Mt. Pyre (Outside) -#define MUS_P_SCHOOL 435 // Pokémon Trainer's School -#define MUS_DENDOU 436 // You're the Champion! -#define MUS_TONEKUSA 437 // Fallarbor Town -#define MUS_MABOROSI 438 // Sealed Chamber -#define MUS_CON_FAN 439 // Obtained a Contest Ribbon! -#define MUS_CONTEST0 440 // Pokémon Contest -#define MUS_MGM0 441 // Encounter! Team Magma -#define MUS_T_BATTLE 442 // Opening Battle -#define MUS_OOAME 443 // The Flood -#define MUS_HIDERI 444 // The Drought -#define MUS_RUNECITY 445 // Sootopolis City -#define MUS_CON_K 446 // Contest/Berry Blending Results -#define MUS_EIKOU_R 447 // Hall of Fame -#define MUS_KARAKURI 448 // Trick House -#define MUS_HUTAGO 449 // Encounter! Kid -#define MUS_SITENNOU 450 // Encounter! Elite Four -#define MUS_YAMA_EYE 451 // Encounter! Hiker -#define MUS_CONLOBBY 452 // Contest Lobby -#define MUS_INTER_V 453 // Encounter! Gabby and Ty -#define MUS_DAIGO 454 // Encounter! Wallace -#define MUS_THANKFOR 455 // Credits -#define MUS_END 456 // The End -#define MUS_B_FRONTIER 457 // Battle Frontier -#define MUS_B_ARENA 458 // Battle Arena -#define MUS_ME_POINTGET 459 // Obtained Battle Points! -#define MUS_ME_TORE_EYE 460 // Registered Trainer! -#define MUS_PYRAMID 461 // Battle Pyramid -#define MUS_PYRAMID_TOP 462 // Top of the Battle Pyramid -#define MUS_B_PALACE 463 // Battle Palace -#define MUS_REKKUU_KOURIN 464 // Rayquaza Enters -#define MUS_SATTOWER 465 // Battle Tower (Emerald) -#define MUS_ME_SYMBOLGET 466 // Obtained a Frontier Symbol! -#define MUS_B_DOME 467 // Battle Dome -#define MUS_B_TUBE 468 // Battle Pike -#define MUS_B_FACTORY 469 // Battle Factory -#define MUS_VS_REKKU 470 // Battle! Legendary Pokémon -#define MUS_VS_FRONT 471 // Battle! Frontier Brain -#define MUS_VS_MEW 472 // Battle! Mew -#define MUS_B_DOME1 473 // Battle Dome Lobby -#define MUS_BATTLE27 474 // Battle! Wild Pokémon -#define MUS_BATTLE31 475 // Battle! Team Aqua/Magma -#define MUS_BATTLE20 476 // Battle! Trainer -#define MUS_BATTLE32 477 // Battle! Gym Leader -#define MUS_BATTLE33 478 // Battle! Champion -#define MUS_BATTLE36 479 // Battle! Regi Trio -#define MUS_BATTLE34 480 // Battle! Legendary Pokémon (dupe) -#define MUS_BATTLE35 481 // Battle! Rival -#define MUS_BATTLE38 482 // Battle! Elite Four -#define MUS_BATTLE30 483 // Battle! Archie/Maxie -// FRLG Music Below -#define MUS_RG_ANNAI 484 // Follow Me! -#define MUS_RG_SLOT 485 // Game Corner -#define MUS_RG_AJITO 486 // Rocket Hideout -#define MUS_RG_GYM 487 // Gym -#define MUS_RG_PURIN 488 // Jigglypuff's Song -#define MUS_RG_DEMO 489 // Opening Movie -#define MUS_RG_TITLE 490 // Title Screen -#define MUS_RG_GUREN 491 // Cinnabar Island -#define MUS_RG_SHION 492 // Lavender Town -#define MUS_RG_KAIHUKU 493 // RBY Pokémon Center Healing -#define MUS_RG_CYCLING 494 // Cycling -#define MUS_RG_ROCKET 495 // Encounter! Team Rocket -#define MUS_RG_SHOUJO 496 // Encounter! Girl -#define MUS_RG_SHOUNEN 497 // Encounter! Boy -#define MUS_RG_DENDOU 498 // You're the Champion! -#define MUS_RG_T_MORI 499 // Viridian Forest -#define MUS_RG_OTSUKIMI 500 // Mt. Moon -#define MUS_RG_POKEYASHI 501 // Pokémon Mansion -#define MUS_RG_ENDING 502 // Credits -#define MUS_RG_LOAD01 503 // Route 1 -#define MUS_RG_OPENING 504 // Route 24/Intro -#define MUS_RG_LOAD02 505 // Route 3 -#define MUS_RG_LOAD03 506 // Route 11 -#define MUS_RG_CHAMP_R 507 // Victory Road/Indigo Plateau -#define MUS_RG_VS_GYM 508 // Battle! Gym Leader/Elite Four -#define MUS_RG_VS_TORE 509 // Battle! Trainer -#define MUS_RG_VS_YASEI 510 // Battle! Wild Pokémon -#define MUS_RG_VS_LAST 511 // Battle! Champion -#define MUS_RG_MASARA 512 // Pallet Town -#define MUS_RG_KENKYU 513 // Professor Oak's Lab -#define MUS_RG_OHKIDO 514 // Professor Oak's Theme -#define MUS_RG_POKECEN 515 // Pokémon Center -#define MUS_RG_SANTOAN 516 // S.S. Anne -#define MUS_RG_NAMINORI 517 // Surfing -#define MUS_RG_P_TOWER 518 // Pokémon Tower -#define MUS_RG_SHIRUHU 519 // Silph Co. -#define MUS_RG_HANADA 520 // Cerulean/Fuschia City -#define MUS_RG_TAMAMUSI 521 // Celadon City -#define MUS_RG_WIN_TRE 522 // Victory! Trainer -#define MUS_RG_WIN_YASEI 523 // Victory! Wild Pokémon -#define MUS_RG_WIN_GYM 524 // Victory! Gym Leader -#define MUS_RG_KUCHIBA 525 // Vermillion City -#define MUS_RG_NIBI 526 // Viridian/Saffron/Pewter City -#define MUS_RG_RIVAL1 527 // Encounter! Rival -#define MUS_RG_RIVAL2 528 // Rival's Exit -#define MUS_RG_FAN2 529 // Fanfare 2 -#define MUS_RG_FAN5 530 // Obtained a Starter! -#define MUS_RG_FAN6 531 // Pokémon Caught! (Used in Emerald) -#define MUS_ME_RG_PHOTO 532 // Trainer Photo -#define MUS_RG_TITLEROG 533 // Game Freak -#define MUS_RG_GET_YASEI 534 // Pokémon Caught Victory Theme -#define MUS_RG_SOUSA 535 // Starting Tutorial -#define MUS_RG_SEKAIKAN 536 // Starting Tutorial 2 -#define MUS_RG_SEIBETU 537 // Starting Tutorial 3 -#define MUS_RG_JUMP 538 // Pokemon Jump Minigame -#define MUS_RG_UNION 539 // Union Room -#define MUS_RG_NETWORK 540 // Network Center -#define MUS_RG_OKURIMONO 541 // Mystery Gift -#define MUS_RG_KINOMIKUI 542 // Dodrio Berry Picking -#define MUS_RG_NANADUNGEON 543 // Sevii Caves/Altering Cave (Mt. Moon) -#define MUS_RG_OSHIE_TV 544 // Follow Me! -#define MUS_RG_NANASHIMA 545 // Sevii Islands Routes (Lake of Rage) -#define MUS_RG_NANAISEKI 546 // Sevii Forests (Viridian Forest) -#define MUS_RG_NANA123 547 // Sevii Islands 1-3 (Viridian/Saffron/Pewter) -#define MUS_RG_NANA45 548 // Sevii Islands 4-5 (Azalea Town) -#define MUS_RG_NANA67 549 // Sevii Islands 6-7 (Violet City) -#define MUS_RG_POKEFUE 550 // Poké Flute -#define MUS_RG_VS_DEO 551 // Battle! Deoxys -#define MUS_RG_VS_MYU2 552 // Battle! Mewtwo -#define MUS_RG_VS_DEN 553 // Battle! Legendary Birds -#define MUS_RG_EXEYE 554 // Encounter! Gym Leader -#define MUS_RG_DEOEYE 555 // Encounter! Deoxys -#define MUS_RG_T_TOWER 556 // Trainer Tower (Gym) -#define MUS_RG_SLOWMASARA 557 // Pallet Town (Hall of Fame remix) -#define MUS_RG_TVNOIZE 558 // Teachy TV -#define PH_TRAP_BLEND 559 -#define PH_TRAP_HELD 560 -#define PH_TRAP_SOLO 561 -#define PH_FACE_BLEND 562 -#define PH_FACE_HELD 563 -#define PH_FACE_SOLO 564 -#define PH_CLOTH_BLEND 565 -#define PH_CLOTH_HELD 566 -#define PH_CLOTH_SOLO 567 -#define PH_DRESS_BLEND 568 -#define PH_DRESS_HELD 569 -#define PH_DRESS_SOLO 570 -#define PH_FLEECE_BLEND 571 -#define PH_FLEECE_HELD 572 -#define PH_FLEECE_SOLO 573 -#define PH_KIT_BLEND 574 -#define PH_KIT_HELD 575 -#define PH_KIT_SOLO 576 -#define PH_PRICE_BLEND 577 -#define PH_PRICE_HELD 578 -#define PH_PRICE_SOLO 579 -#define PH_LOT_BLEND 580 -#define PH_LOT_HELD 581 -#define PH_LOT_SOLO 582 -#define PH_GOAT_BLEND 583 -#define PH_GOAT_HELD 584 -#define PH_GOAT_SOLO 585 -#define PH_THOUGHT_BLEND 586 -#define PH_THOUGHT_HELD 587 -#define PH_THOUGHT_SOLO 588 -#define PH_CHOICE_BLEND 589 -#define PH_CHOICE_HELD 590 -#define PH_CHOICE_SOLO 591 -#define PH_MOUTH_BLEND 592 -#define PH_MOUTH_HELD 593 -#define PH_MOUTH_SOLO 594 -#define PH_FOOT_BLEND 595 -#define PH_FOOT_HELD 596 -#define PH_FOOT_SOLO 597 -#define PH_GOOSE_BLEND 598 -#define PH_GOOSE_HELD 599 -#define PH_GOOSE_SOLO 600 -#define PH_STRUT_BLEND 601 -#define PH_STRUT_HELD 602 -#define PH_STRUT_SOLO 603 -#define PH_CURE_BLEND 604 -#define PH_CURE_HELD 605 -#define PH_CURE_SOLO 606 -#define PH_NURSE_BLEND 607 -#define PH_NURSE_HELD 608 -#define PH_NURSE_SOLO 609 +#define MUS_DUMMY 0 // MUS_DUMMY +#define SE_USE_ITEM 1 // SE_KAIFUKU +#define SE_PC_LOGIN 2 // SE_PC_LOGIN +#define SE_PC_OFF 3 // SE_PC_OFF +#define SE_PC_ON 4 // SE_PC_ON +#define SE_SELECT 5 // SE_SELECT +#define SE_WIN_OPEN 6 // SE_WIN_OPEN +#define SE_WALL_HIT 7 // SE_WALL_HIT +#define SE_DOOR 8 // SE_DOOR +#define SE_EXIT 9 // SE_KAIDAN +#define SE_LEDGE 10 // SE_DANSA +#define SE_BIKE_BELL 11 // SE_JITENSYA +#define SE_NOT_EFFECTIVE 12 // SE_KOUKA_L +#define SE_EFFECTIVE 13 // SE_KOUKA_M +#define SE_SUPER_EFFECTIVE 14 // SE_KOUKA_H +#define SE_BALL_OPEN 15 // SE_BOWA2 +#define SE_FAINT 16 // SE_POKE_DEAD +#define SE_FLEE 17 // SE_NIGERU +#define SE_SLIDING_DOOR 18 // SE_JIDO_DOA +#define SE_SHIP 19 // SE_NAMINORI +#define SE_BANG 20 // SE_BAN +#define SE_PIN 21 // SE_PIN (General "good", commonly for "!") +#define SE_BOO 22 // SE_BOO (General "bad") +#define SE_BALL 23 // SE_BOWA (Giving Poké Ball to nurse, Poké Ball shake, etc) +#define SE_CONTEST_PLACE 24 // SE_JYUNI +#define SE_A 25 // SE_A (Bard sounds) +#define SE_I 26 // SE_I +#define SE_U 27 // SE_U +#define SE_E 28 // SE_E +#define SE_O 29 // SE_O +#define SE_N 30 // SE_N +#define SE_SUCCESS 31 // SE_SEIKAI +#define SE_FAILURE 32 // SE_HAZURE +#define SE_EXP 33 // SE_EXP +#define SE_BIKE_HOP 34 // SE_JITE_PYOKO +#define SE_SWITCH 35 // SE_MU_PACHI +#define SE_CLICK 36 // SE_TK_KASYA +#define SE_FU_ZAKU 37 // SE_FU_ZAKU (Unknown purpose, unused) +#define SE_CONTEST_CONDITION_LOSE 38 // SE_FU_ZAKU2 +#define SE_LAVARIDGE_FALL_WARP 39 // SE_FU_ZUZUZU +#define SE_ICE_STAIRS 40 // SE_RU_GASHIN +#define SE_ICE_BREAK 41 // SE_RU_GASYAN +#define SE_ICE_CRACK 42 // SE_RU_BARI +#define SE_FALL 43 // SE_RU_HYUU +#define SE_UNLOCK 44 // SE_KI_GASYAN +#define SE_WARP_IN 45 // SE_TK_WARPIN +#define SE_WARP_OUT 46 // SE_TK_WARPOUT +#define SE_REPEL 47 // SE_TU_SAA +#define SE_ROTATING_GATE 48 // SE_HI_TURUN +#define SE_TRUCK_MOVE 49 // SE_TRACK_MOVE +#define SE_TRUCK_STOP 50 // SE_TRACK_STOP +#define SE_TRUCK_UNLOAD 51 // SE_TRACK_HAIKI +#define SE_TRUCK_DOOR 52 // SE_TRACK_DOOR +#define SE_BERRY_BLENDER 53 // SE_MOTER +#define SE_CARD 54 // SE_CARD (Unused, different from the RS card SE) +#define SE_SAVE 55 // SE_SAVE +#define SE_BALL_BOUNCE_1 56 // SE_KON +#define SE_BALL_BOUNCE_2 57 // SE_KON2 +#define SE_BALL_BOUNCE_3 58 // SE_KON3 +#define SE_BALL_BOUNCE_4 59 // SE_KON4 +#define SE_BALL_TRADE 60 // SE_SUIKOMU +#define SE_BALL_THROW 61 // SE_NAGERU +#define SE_NOTE_C 62 // SE_TOY_C +#define SE_NOTE_D 63 // SE_TOY_D +#define SE_NOTE_E 64 // SE_TOY_E +#define SE_NOTE_F 65 // SE_TOY_F +#define SE_NOTE_G 66 // SE_TOY_G +#define SE_NOTE_A 67 // SE_TOY_A +#define SE_NOTE_B 68 // SE_TOY_B +#define SE_NOTE_C_HIGH 69 // SE_TOY_C1 +#define SE_PUDDLE 70 // SE_MIZU +#define SE_BRIDGE_WALK 71 // SE_HASHI +#define SE_ITEMFINDER 72 // SE_DAUGI +#define SE_DING_DONG 73 // SE_PINPON +#define SE_BALLOON_RED 74 // SE_FUUSEN1 +#define SE_BALLOON_BLUE 75 // SE_FUUSEN2 +#define SE_BALLOON_YELLOW 76 // SE_FUUSEN3 +#define SE_BREAKABLE_DOOR 77 // SE_TOY_KABE +#define SE_MUD_BALL 78 // SE_TOY_DANGO +#define SE_FIELD_POISON 79 // SE_DOKU +#define SE_ESCALATOR 80 // SE_ESUKA +#define SE_THUNDERSTORM 81 // SE_T_AME +#define SE_THUNDERSTORM_STOP 82 // SE_T_AME_E +#define SE_DOWNPOUR 83 // SE_T_OOAME +#define SE_DOWNPOUR_STOP 84 // SE_T_OOAME_E +#define SE_RAIN 85 // SE_T_KOAME +#define SE_RAIN_STOP 86 // SE_T_KOAME_E +#define SE_THUNDER 87 // SE_T_KAMI +#define SE_THUNDER2 88 // SE_T_KAMI2 +#define SE_ELEVATOR 89 // SE_ELEBETA +#define SE_LOW_HEALTH 90 // SE_HINSI +#define SE_EXP_MAX 91 // SE_EXPMAX +#define SE_ROULETTE_BALL 92 // SE_TAMAKORO +#define SE_ROULETTE_BALL2 93 // SE_TAMAKORO_E +#define SE_TAILLOW_WING_FLAP 94 // SE_BASABASA +#define SE_SHOP 95 // SE_REGI +#define SE_CONTEST_HEART 96 // SE_C_GAJI +#define SE_CONTEST_CURTAIN_RISE 97 // SE_C_MAKU_U +#define SE_CONTEST_CURTAIN_FALL 98 // SE_C_MAKU_D +#define SE_CONTEST_ICON_CHANGE 99 // SE_C_PASI +#define SE_CONTEST_ICON_CLEAR 100 // SE_C_SYU +#define SE_CONTEST_MONS_TURN 101 // SE_C_PIKON +#define SE_SHINY 102 // SE_REAPOKE +#define SE_INTRO_BLAST 103 // SE_OP_BASYU +#define SE_MUGSHOT 104 // SE_BT_START +#define SE_APPLAUSE 105 // SE_DENDOU +#define SE_VEND 106 // SE_JIHANKI +#define SE_ORB 107 // SE_TAMA +#define SE_DEX_SCROLL 108 // SE_Z_SCROLL +#define SE_DEX_PAGE 109 // SE_Z_PAGE +#define SE_POKENAV_ON 110 // SE_PN_ON +#define SE_POKENAV_OFF 111 // SE_PN_OFF +#define SE_DEX_SEARCH 112 // SE_Z_SEARCH +#define SE_EGG_HATCH 113 // SE_TAMAGO +#define SE_BALL_TRAY_ENTER 114 // SE_TB_START +#define SE_BALL_TRAY_BALL 115 // SE_TB_KON +#define SE_BALL_TRAY_EXIT 116 // SE_TB_KARA +#define SE_GLASS_FLUTE 117 // SE_BIDORO +// Move SFX +#define SE_M_THUNDERBOLT 118 // SE_W085 +#define SE_M_THUNDERBOLT2 119 // SE_W085B +#define SE_M_HARDEN 120 // SE_W231 +#define SE_M_NIGHTMARE 121 // SE_W171 +#define SE_M_VITAL_THROW 122 // SE_W233 +#define SE_M_VITAL_THROW2 123 // SE_W233B +#define SE_M_BUBBLE 124 // SE_W145 +#define SE_M_BUBBLE2 125 // SE_W145B +#define SE_M_BUBBLE3 126 // SE_W145C +#define SE_M_RAIN_DANCE 127 // SE_W240 +#define SE_M_CUT 128 // SE_W015 +#define SE_M_STRING_SHOT 129 // SE_W081 +#define SE_M_STRING_SHOT2 130 // SE_W081B +#define SE_M_ROCK_THROW 131 // SE_W088 +#define SE_M_GUST 132 // SE_W016 +#define SE_M_GUST2 133 // SE_W016B +#define SE_M_DOUBLE_SLAP 134 // SE_W003 +#define SE_M_DOUBLE_TEAM 135 // SE_W104 +#define SE_M_RAZOR_WIND 136 // SE_W013 +#define SE_M_ICY_WIND 137 // SE_W196 +#define SE_M_THUNDER_WAVE 138 // SE_W086 +#define SE_M_COMET_PUNCH 139 // SE_W004 +#define SE_M_MEGA_KICK 140 // SE_W025 +#define SE_M_MEGA_KICK2 141 // SE_W025B +#define SE_M_CRABHAMMER 142 // SE_W152 +#define SE_M_JUMP_KICK 143 // SE_W026 +#define SE_M_FLAME_WHEEL 144 // SE_W172 +#define SE_M_FLAME_WHEEL2 145 // SE_W172B +#define SE_M_FLAMETHROWER 146 // SE_W053 +#define SE_M_FIRE_PUNCH 147 // SE_W007 +#define SE_M_TOXIC 148 // SE_W092 +#define SE_M_SACRED_FIRE 149 // SE_W221 +#define SE_M_SACRED_FIRE2 150 // SE_W221B +#define SE_M_EMBER 151 // SE_W052 +#define SE_M_TAKE_DOWN 152 // SE_W036 +#define SE_M_BLIZZARD 153 // SE_W059 +#define SE_M_BLIZZARD2 154 // SE_W059B +#define SE_M_SCRATCH 155 // SE_W010 +#define SE_M_VICEGRIP 156 // SE_W011 +#define SE_M_WING_ATTACK 157 // SE_W017 +#define SE_M_FLY 158 // SE_W019 +#define SE_M_SAND_ATTACK 159 // SE_W028 +#define SE_M_RAZOR_WIND2 160 // SE_W013B +#define SE_M_BITE 161 // SE_W044 +#define SE_M_HEADBUTT 162 // SE_W029 +#define SE_M_SURF 163 // SE_W057 +#define SE_M_HYDRO_PUMP 164 // SE_W056 +#define SE_M_WHIRLPOOL 165 // SE_W250 +#define SE_M_HORN_ATTACK 166 // SE_W030 +#define SE_M_TAIL_WHIP 167 // SE_W039 +#define SE_M_MIST 168 // SE_W054 +#define SE_M_POISON_POWDER 169 // SE_W077 +#define SE_M_BIND 170 // SE_W020 +#define SE_M_DRAGON_RAGE 171 // SE_W082 +#define SE_M_SING 172 // SE_W047 +#define SE_M_PERISH_SONG 173 // SE_W195 +#define SE_M_PAY_DAY 174 // SE_W006 +#define SE_M_DIG 175 // SE_W091 +#define SE_M_DIZZY_PUNCH 176 // SE_W146 +#define SE_M_SELF_DESTRUCT 177 // SE_W120 +#define SE_M_EXPLOSION 178 // SE_W153 +#define SE_M_ABSORB_2 179 // SE_W071B +#define SE_M_ABSORB 180 // SE_W071 +#define SE_M_SCREECH 181 // SE_W103 +#define SE_M_BUBBLE_BEAM 182 // SE_W062 +#define SE_M_BUBBLE_BEAM2 183 // SE_W062B +#define SE_M_SUPERSONIC 184 // SE_W048 +#define SE_M_BELLY_DRUM 185 // SE_W187 +#define SE_M_METRONOME 186 // SE_W118 +#define SE_M_BONEMERANG 187 // SE_W155 +#define SE_M_LICK 188 // SE_W122 +#define SE_M_PSYBEAM 189 // SE_W060 +#define SE_M_FAINT_ATTACK 190 // SE_W185 +#define SE_M_SWORDS_DANCE 191 // SE_W014 +#define SE_M_LEER 192 // SE_W043 +#define SE_M_SWAGGER 193 // SE_W207 +#define SE_M_SWAGGER2 194 // SE_W207B +#define SE_M_HEAL_BELL 195 // SE_W215 +#define SE_M_CONFUSE_RAY 196 // SE_W109 +#define SE_M_SNORE 197 // SE_W173 +#define SE_M_BRICK_BREAK 198 // SE_W280 +#define SE_M_GIGA_DRAIN 199 // SE_W202 +#define SE_M_PSYBEAM2 200 // SE_W060B +#define SE_M_SOLAR_BEAM 201 // SE_W076 +#define SE_M_PETAL_DANCE 202 // SE_W080 +#define SE_M_TELEPORT 203 // SE_W100 +#define SE_M_MINIMIZE 204 // SE_W107 +#define SE_M_SKETCH 205 // SE_W166 +#define SE_M_SWIFT 206 // SE_W129 +#define SE_M_REFLECT 207 // SE_W115 +#define SE_M_BARRIER 208 // SE_W112 +#define SE_M_DETECT 209 // SE_W197 +#define SE_M_LOCK_ON 210 // SE_W199 +#define SE_M_MOONLIGHT 211 // SE_W236 +#define SE_M_CHARM 212 // SE_W204 +#define SE_M_CHARGE 213 // SE_W268 +#define SE_M_STRENGTH 214 // SE_W070 +#define SE_M_HYPER_BEAM 215 // SE_W063 +#define SE_M_WATERFALL 216 // SE_W127 +#define SE_M_REVERSAL 217 // SE_W179 +#define SE_M_ACID_ARMOR 218 // SE_W151 +#define SE_M_SANDSTORM 219 // SE_W201 +#define SE_M_TRI_ATTACK 220 // SE_W161 +#define SE_M_TRI_ATTACK2 221 // SE_W161B +#define SE_M_ENCORE 222 // SE_W227 +#define SE_M_ENCORE2 223 // SE_W227B +#define SE_M_BATON_PASS 224 // SE_W226 +#define SE_M_MILK_DRINK 225 // SE_W208 +#define SE_M_ATTRACT 226 // SE_W213 +#define SE_M_ATTRACT2 227 // SE_W213B +#define SE_M_MORNING_SUN 228 // SE_W234 +#define SE_M_FLATTER 229 // SE_W260 +#define SE_M_SAND_TOMB 230 // SE_W328 +#define SE_M_GRASSWHISTLE 231 // SE_W320 +#define SE_M_SPIT_UP 232 // SE_W255 +#define SE_M_DIVE 233 // SE_W291 +#define SE_M_EARTHQUAKE 234 // SE_W089 +#define SE_M_TWISTER 235 // SE_W239 +#define SE_M_SWEET_SCENT 236 // SE_W230 +#define SE_M_YAWN 237 // SE_W281 +#define SE_M_SKY_UPPERCUT 238 // SE_W327 +#define SE_M_STAT_INCREASE 239 // SE_W287 +#define SE_M_HEAT_WAVE 240 // SE_W257 +#define SE_M_UPROAR 241 // SE_W253 +#define SE_M_HAIL 242 // SE_W258 +#define SE_M_COSMIC_POWER 243 // SE_W322 +#define SE_M_TEETER_DANCE 244 // SE_W298 +#define SE_M_STAT_DECREASE 245 // SE_W287B +#define SE_M_HAZE 246 // SE_W114 +#define SE_M_HYPER_BEAM2 247 // SE_W063B +// FRLG SFX +#define SE_RG_DOOR 248 // SE_RG_W_DOOR +#define SE_RG_CARD_FLIP 249 // SE_RG_CARD1 +#define SE_RG_CARD_FLIPPING 250 // SE_RG_CARD2 +#define SE_RG_CARD_OPEN 251 // SE_RG_CARD3 +#define SE_RG_BAG_CURSOR 252 // SE_RG_BAG1 +#define SE_RG_BAG_POCKET 253 // SE_RG_BAG2 +#define SE_RG_BALL_CLICK 254 // SE_RG_GETTING +#define SE_RG_SHOP 255 // SE_RG_SHOP +#define SE_RG_SS_ANNE_HORN 256 // SE_RG_KITEKI +#define SE_RG_HELP_OPEN 257 // SE_RG_HELP_OP +#define SE_RG_HELP_CLOSE 258 // SE_RG_HELP_CL +#define SE_RG_HELP_ERROR 259 // SE_RG_HELP_NG +#define SE_RG_DEOXYS_MOVE 260 // SE_RG_DEOMOV +#define SE_RG_POKE_JUMP_SUCCESS 261 // SE_RG_EXCELLENT +#define SE_RG_POKE_JUMP_FAILURE 262 // SE_RG_NAWAMISS +// New Emerald SFX +#define SE_POKENAV_CALL 263 // SE_TOREEYE +#define SE_POKENAV_HANG_UP 264 // SE_TOREOFF +#define SE_ARENA_TIMEUP1 265 // SE_HANTEI1 +#define SE_ARENA_TIMEUP2 266 // SE_HANTEI2 +#define SE_PIKE_CURTAIN_OPEN 267 // SE_CURTAIN +#define SE_PIKE_CURTAIN_CLOSE 268 // SE_CURTAIN1 +#define SE_SUDOWOODO_SHAKE 269 // SE_USSOKI -#define MUS_ROUTE_118 0x7FFF // map is split into 2 music sections. controlled by GetCurrLocationDefaultMusic(). +// Music +#define MUS_LITTLEROOT_TEST 350 // MUS_TETSUJI +#define MUS_GSC_ROUTE38 351 // MUS_FIELD13 +#define MUS_CAUGHT 352 // MUS_KACHI22 +#define MUS_VICTORY_WILD 353 // MUS_KACHI2 +#define MUS_VICTORY_GYM_LEADER 354 // MUS_KACHI3 +#define MUS_VICTORY_LEAGUE 355 // MUS_KACHI5 +#define MUS_C_COMM_CENTER 356 // MUS_PCC +#define MUS_GSC_PEWTER 357 // MUS_NIBI +#define MUS_C_VS_LEGEND_BEAST 358 // MUS_SUIKUN +#define MUS_ROUTE101 359 // MUS_DOORO1 +#define MUS_ROUTE110 360 // MUS_DOORO_X1 +#define MUS_ROUTE120 361 // MUS_DOORO_X3 +#define MUS_PETALBURG 362 // MUS_MACHI_S2 +#define MUS_OLDALE 363 // MUS_MACHI_S4 +#define MUS_GYM 364 // MUS_GIM +#define MUS_SURF 365 // MUS_NAMINORI +#define MUS_PETALBURG_WOODS 366 // MUS_DAN01 +#define MUS_LEVEL_UP 367 // MUS_FANFA1 +#define MUS_HEAL 368 // MUS_ME_ASA +#define MUS_OBTAIN_BADGE 369 // MUS_ME_BACHI +#define MUS_OBTAIN_ITEM 370 // MUS_FANFA4 +#define MUS_EVOLVED 371 // MUS_FANFA5 +#define MUS_OBTAIN_TMHM 372 // MUS_ME_WAZA +#define MUS_LILYCOVE_MUSEUM 373 // MUS_BIJYUTU +#define MUS_ROUTE122 374 // MUS_DOORO_X4 +#define MUS_OCEANIC_MUSEUM 375 // MUS_FUNE_KAN +#define MUS_EVOLUTION_INTRO 376 // MUS_ME_SHINKA +#define MUS_EVOLUTION 377 // MUS_SHINKA +#define MUS_MOVE_DELETED 378 // MUS_ME_WASURE +#define MUS_ENCOUNTER_GIRL 379 // MUS_SYOUJOEYE +#define MUS_ENCOUNTER_MALE 380 // MUS_BOYEYE +#define MUS_ABANDONED_SHIP 381 // MUS_DAN02 +#define MUS_FORTREE 382 // MUS_MACHI_S3 +#define MUS_BIRCH_LAB 383 // MUS_ODAMAKI +#define MUS_B_TOWER_RS 384 // MUS_B_TOWER +#define MUS_ENCOUNTER_SWIMMER 385 // MUS_SWIMEYE +#define MUS_CAVE_OF_ORIGIN 386 // MUS_DAN03 +#define MUS_OBTAIN_BERRY 387 // MUS_ME_KINOMI +#define MUS_AWAKEN_LEGEND 388 // MUS_ME_TAMA +#define MUS_SLOTS_JACKPOT 389 // MUS_ME_B_BIG +#define MUS_SLOTS_WIN 390 // MUS_ME_B_SMALL +#define MUS_TOO_BAD 391 // MUS_ME_ZANNEN +#define MUS_ROULETTE 392 // MUS_BD_TIME +#define MUS_LINK_CONTEST_P1 393 // MUS_TEST1 +#define MUS_LINK_CONTEST_P2 394 // MUS_TEST2 +#define MUS_LINK_CONTEST_P3 395 // MUS_TEST3 +#define MUS_LINK_CONTEST_P4 396 // MUS_TEST4 +#define MUS_ENCOUNTER_GENTLEMAN 397 // MUS_TEST +#define MUS_VERDANTURF 398 // MUS_GOMACHI0 +#define MUS_RUSTBORO 399 // MUS_GOTOWN +#define MUS_POKE_CENTER 400 // MUS_POKECEN +#define MUS_ROUTE104 401 // MUS_NEXTROAD +#define MUS_ROUTE119 402 // MUS_GRANROAD +#define MUS_CYCLING 403 // MUS_CYCLING +#define MUS_POKE_MART 404 // MUS_FRIENDLY +#define MUS_LITTLEROOT 405 // MUS_MISHIRO +#define MUS_MT_CHIMNEY 406 // MUS_TOZAN +#define MUS_ENCOUNTER_FEMALE 407 // MUS_GIRLEYE +#define MUS_LILYCOVE 408 // MUS_MINAMO +#define MUS_ROUTE111 409 // MUS_ASHROAD +#define MUS_HELP 410 // MUS_EVENT0 +#define MUS_UNDERWATER 411 // MUS_DEEPDEEP +#define MUS_VICTORY_TRAINER 412 // MUS_KACHI1 +#define MUS_TITLE 413 // MUS_TITLE3 +#define MUS_INTRO 414 // MUS_DEMO1 +#define MUS_ENCOUNTER_MAY 415 // MUS_GIRL_SUP +#define MUS_ENCOUNTER_PSYCHIC 416 // MUS_HAGESHII +#define MUS_ENCOUNTER_COOLTRAINER 417 // MUS_KAKKOII +#define MUS_ROUTE113 418 // MUS_KAZANBAI +#define MUS_ENCOUNTER_AQUA 419 // MUS_AQA_0 +#define MUS_FOLLOW_ME 420 // MUS_TSURETEK +#define MUS_ENCOUNTER_BRENDAN 421 // MUS_BOY_SUP +#define MUS_EVER_GRANDE 422 // MUS_RAINBOW +#define MUS_ENCOUNTER_HEX_MANIAC 423 // MUS_AYASII +#define MUS_VICTORY_AQUA_MAGMA 424 // MUS_KACHI4 +#define MUS_CABLE_CAR 425 // MUS_ROPEWAY +#define MUS_GAME_CORNER 426 // MUS_CASINO +#define MUS_DEWFORD 427 // MUS_HIGHTOWN +#define MUS_SAFARI_ZONE 428 // MUS_SAFARI +#define MUS_VICTORY_ROAD 429 // MUS_C_ROAD +#define MUS_AQUA_MAGMA_HIDEOUT 430 // MUS_AJITO +#define MUS_SAILING 431 // MUS_M_BOAT +#define MUS_MT_PYRE 432 // MUS_M_DUNGON +#define MUS_SLATEPORT 433 // MUS_FINECITY +#define MUS_MT_PYRE_EXTERIOR 434 // MUS_MACHUPI +#define MUS_SCHOOL 435 // MUS_P_SCHOOL +#define MUS_HALL_OF_FAME 436 // MUS_DENDOU +#define MUS_FALLARBOR 437 // MUS_TONEKUSA +#define MUS_SEALED_CHAMBER 438 // MUS_MABOROSI +#define MUS_CONTEST_WINNER 439 // MUS_CON_FAN +#define MUS_CONTEST 440 // MUS_CONTEST0 +#define MUS_ENCOUNTER_MAGMA 441 // MUS_MGM0 +#define MUS_INTRO_BATTLE 442 // MUS_T_BATTLE +#define MUS_ABNORMAL_WEATHER 443 // MUS_OOAME (Replaces MUS_WEATHER_KYOGRE from R/S) +#define MUS_WEATHER_GROUDON 444 // MUS_HIDERI (Unused, from R/S) +#define MUS_SOOTOPOLIS 445 // MUS_RUNECITY +#define MUS_CONTEST_RESULTS 446 // MUS_CON_K +#define MUS_HALL_OF_FAME_ROOM 447 // MUS_EIKOU_R +#define MUS_TRICK_HOUSE 448 // MUS_KARAKURI +#define MUS_ENCOUNTER_TWINS 449 // MUS_HUTAGO +#define MUS_ENCOUNTER_ELITE_FOUR 450 // MUS_SITENNOU +#define MUS_ENCOUNTER_HIKER 451 // MUS_YAMA_EYE +#define MUS_CONTEST_LOBBY 452 // MUS_CONLOBBY +#define MUS_ENCOUNTER_INTERVIEWER 453 // MUS_INTER_V +#define MUS_ENCOUNTER_CHAMPION 454 // MUS_DAIGO +#define MUS_CREDITS 455 // MUS_THANKFOR +#define MUS_END 456 // MUS_END +#define MUS_B_FRONTIER 457 // MUS_B_FRONTIER +#define MUS_B_ARENA 458 // MUS_B_ARENA +#define MUS_OBTAIN_B_POINTS 459 // MUS_ME_POINTGET +#define MUS_REGISTER_MATCH_CALL 460 // MUS_ME_TORE_EYE +#define MUS_B_PYRAMID 461 // MUS_PYRAMID +#define MUS_B_PYRAMID_TOP 462 // MUS_PYRAMID_TOP +#define MUS_B_PALACE 463 // MUS_B_PALACE +#define MUS_RAYQUAZA_APPEARS 464 // MUS_REKKUU_KOURIN +#define MUS_B_TOWER 465 // MUS_SATTOWER +#define MUS_OBTAIN_SYMBOL 466 // MUS_ME_SYMBOLGET +#define MUS_B_DOME 467 // MUS_B_DOME +#define MUS_B_PIKE 468 // MUS_B_TUBE +#define MUS_B_FACTORY 469 // MUS_B_FACTORY +#define MUS_VS_RAYQUAZA 470 // MUS_VS_REKKU (Identical to MUS_VS_KYOGRE_GROUDON) +#define MUS_VS_FRONTIER_BRAIN 471 // MUS_VS_FRONT +#define MUS_VS_MEW 472 // MUS_VS_MEW +#define MUS_B_DOME_LOBBY 473 // MUS_B_DOME1 +#define MUS_VS_WILD 474 // MUS_BATTLE27 +#define MUS_VS_AQUA_MAGMA 475 // MUS_BATTLE31 +#define MUS_VS_TRAINER 476 // MUS_BATTLE20 +#define MUS_VS_GYM_LEADER 477 // MUS_BATTLE32 +#define MUS_VS_CHAMPION 478 // MUS_BATTLE33 +#define MUS_VS_REGI 479 // MUS_BATTLE36 +#define MUS_VS_KYOGRE_GROUDON 480 // MUS_BATTLE34 +#define MUS_VS_RIVAL 481 // MUS_BATTLE35 +#define MUS_VS_ELITE_FOUR 482 // MUS_BATTLE38 +#define MUS_VS_AQUA_MAGMA_LEADER 483 // MUS_BATTLE30 +// FRLG Music +#define MUS_RG_FOLLOW_ME 484 // MUS_RG_ANNAI +#define MUS_RG_GAME_CORNER 485 // MUS_RG_SLOT +#define MUS_RG_ROCKET_HIDEOUT 486 // MUS_RG_AJITO +#define MUS_RG_GYM 487 // MUS_RG_GYM +#define MUS_RG_JIGGLYPUFF 488 // MUS_RG_PURIN +#define MUS_RG_INTRO_FIGHT 489 // MUS_RG_DEMO +#define MUS_RG_TITLE 490 // MUS_RG_TITLE +#define MUS_RG_CINNABAR 491 // MUS_RG_GUREN +#define MUS_RG_LAVENDER 492 // MUS_RG_SHION +#define MUS_RG_HEAL 493 // MUS_RG_KAIHUKU +#define MUS_RG_CYCLING 494 // MUS_RG_CYCLING +#define MUS_RG_ENCOUNTER_ROCKET 495 // MUS_RG_ROCKET +#define MUS_RG_ENCOUNTER_GIRL 496 // MUS_RG_SHOUJO +#define MUS_RG_ENCOUNTER_BOY 497 // MUS_RG_SHOUNEN +#define MUS_RG_HALL_OF_FAME 498 // MUS_RG_DENDOU +#define MUS_RG_VIRIDIAN_FOREST 499 // MUS_RG_T_MORI +#define MUS_RG_MT_MOON 500 // MUS_RG_OTSUKIMI +#define MUS_RG_POKE_MANSION 501 // MUS_RG_POKEYASHI +#define MUS_RG_CREDITS 502 // MUS_RG_ENDING +#define MUS_RG_ROUTE1 503 // MUS_RG_LOAD01 +#define MUS_RG_ROUTE24 504 // MUS_RG_OPENING +#define MUS_RG_ROUTE3 505 // MUS_RG_LOAD02 +#define MUS_RG_ROUTE11 506 // MUS_RG_LOAD03 +#define MUS_RG_VICTORY_ROAD 507 // MUS_RG_CHAMP_R +#define MUS_RG_VS_GYM_LEADER 508 // MUS_RG_VS_GYM +#define MUS_RG_VS_TRAINER 509 // MUS_RG_VS_TORE +#define MUS_RG_VS_WILD 510 // MUS_RG_VS_YASEI +#define MUS_RG_VS_CHAMPION 511 // MUS_RG_VS_LAST +#define MUS_RG_PALLET 512 // MUS_RG_MASARA +#define MUS_RG_OAK_LAB 513 // MUS_RG_KENKYU +#define MUS_RG_OAK 514 // MUS_RG_OHKIDO +#define MUS_RG_POKE_CENTER 515 // MUS_RG_POKECEN +#define MUS_RG_SS_ANNE 516 // MUS_RG_SANTOAN +#define MUS_RG_SURF 517 // MUS_RG_NAMINORI +#define MUS_RG_POKE_TOWER 518 // MUS_RG_P_TOWER +#define MUS_RG_SILPH 519 // MUS_RG_SHIRUHU +#define MUS_RG_FUCHSIA 520 // MUS_RG_HANADA +#define MUS_RG_CELADON 521 // MUS_RG_TAMAMUSI +#define MUS_RG_VICTORY_TRAINER 522 // MUS_RG_WIN_TRE (Identical to MUS_VICTORY_TRAINER) +#define MUS_RG_VICTORY_WILD 523 // MUS_RG_WIN_YASEI (Identical to MUS_VICTORY_WILD) +#define MUS_RG_VICTORY_GYM_LEADER 524 // MUS_RG_WIN_GYM (Identical to MUS_VICTORY_GYM_LEADER) +#define MUS_RG_VERMILLION 525 // MUS_RG_KUCHIBA +#define MUS_RG_PEWTER 526 // MUS_RG_NIBI +#define MUS_RG_ENCOUNTER_RIVAL 527 // MUS_RG_RIVAL1 +#define MUS_RG_RIVAL_EXIT 528 // MUS_RG_RIVAL2 +#define MUS_RG_DEX_RATING 529 // MUS_RG_FAN2 +#define MUS_RG_OBTAIN_KEY_ITEM 530 // MUS_RG_FAN5 +#define MUS_RG_CAUGHT_INTRO 531 // MUS_RG_FAN6 +#define MUS_RG_PHOTO 532 // MUS_ME_RG_PHOTO +#define MUS_RG_GAME_FREAK 533 // MUS_RG_TITLEROG +#define MUS_RG_CAUGHT 534 // MUS_RG_GET_YASEI +#define MUS_RG_NEW_GAME_INSTRUCT 535 // MUS_RG_SOUSA +#define MUS_RG_NEW_GAME_INTRO 536 // MUS_RG_SEKAIKAN +#define MUS_RG_NEW_GAME_EXIT 537 // MUS_RG_SEIBETU +#define MUS_RG_POKE_JUMP 538 // MUS_RG_JUMP +#define MUS_RG_UNION_ROOM 539 // MUS_RG_UNION +#define MUS_RG_NET_CENTER 540 // MUS_RG_NETWORK +#define MUS_RG_MYSTERY_GIFT 541 // MUS_RG_OKURIMONO +#define MUS_RG_BERRY_PICK 542 // MUS_RG_KINOMIKUI +#define MUS_RG_SEVII_CAVE 543 // MUS_RG_NANADUNGEON (Identical to MUS_RG_MT_MOON) +#define MUS_RG_TEACHY_TV_SHOW 544 // MUS_RG_OSHIE_TV (Identical to MUS_RG_FOLLOW_ME) +#define MUS_RG_SEVII_ROUTE 545 // MUS_RG_NANASHIMA +#define MUS_RG_SEVII_DUNGEON 546 // MUS_RG_NANAISEKI (Identical to MUS_RG_VIRIDIAN_FOREST) +#define MUS_RG_SEVII_123 547 // MUS_RG_NANA123 (Identical to MUS_RG_PEWTER) +#define MUS_RG_SEVII_45 548 // MUS_RG_NANA45 +#define MUS_RG_SEVII_67 549 // MUS_RG_NANA67 +#define MUS_RG_POKE_FLUTE 550 // MUS_RG_POKEFUE +#define MUS_RG_VS_DEOXYS 551 // MUS_RG_VS_DEO +#define MUS_RG_VS_MEWTWO 552 // MUS_RG_VS_MYU2 +#define MUS_RG_VS_LEGEND 553 // MUS_RG_VS_DEN +#define MUS_RG_ENCOUNTER_GYM_LEADER 554 // MUS_RG_EXEYE +#define MUS_RG_ENCOUNTER_DEOXYS 555 // MUS_RG_DEOEYE +#define MUS_RG_TRAINER_TOWER 556 // MUS_RG_T_TOWER +#define MUS_RG_SLOW_PALLET 557 // MUS_RG_SLOWMASARA +#define MUS_RG_TEACHY_TV_MENU 558 // MUS_RG_TVNOIZE -#define MUS_NONE 0xFFFF +#define PH_TRAP_BLEND 559 +#define PH_TRAP_HELD 560 +#define PH_TRAP_SOLO 561 +#define PH_FACE_BLEND 562 +#define PH_FACE_HELD 563 +#define PH_FACE_SOLO 564 +#define PH_CLOTH_BLEND 565 +#define PH_CLOTH_HELD 566 +#define PH_CLOTH_SOLO 567 +#define PH_DRESS_BLEND 568 +#define PH_DRESS_HELD 569 +#define PH_DRESS_SOLO 570 +#define PH_FLEECE_BLEND 571 +#define PH_FLEECE_HELD 572 +#define PH_FLEECE_SOLO 573 +#define PH_KIT_BLEND 574 +#define PH_KIT_HELD 575 +#define PH_KIT_SOLO 576 +#define PH_PRICE_BLEND 577 +#define PH_PRICE_HELD 578 +#define PH_PRICE_SOLO 579 +#define PH_LOT_BLEND 580 +#define PH_LOT_HELD 581 +#define PH_LOT_SOLO 582 +#define PH_GOAT_BLEND 583 +#define PH_GOAT_HELD 584 +#define PH_GOAT_SOLO 585 +#define PH_THOUGHT_BLEND 586 +#define PH_THOUGHT_HELD 587 +#define PH_THOUGHT_SOLO 588 +#define PH_CHOICE_BLEND 589 +#define PH_CHOICE_HELD 590 +#define PH_CHOICE_SOLO 591 +#define PH_MOUTH_BLEND 592 +#define PH_MOUTH_HELD 593 +#define PH_MOUTH_SOLO 594 +#define PH_FOOT_BLEND 595 +#define PH_FOOT_HELD 596 +#define PH_FOOT_SOLO 597 +#define PH_GOOSE_BLEND 598 +#define PH_GOOSE_HELD 599 +#define PH_GOOSE_SOLO 600 +#define PH_STRUT_BLEND 601 +#define PH_STRUT_HELD 602 +#define PH_STRUT_SOLO 603 +#define PH_CURE_BLEND 604 +#define PH_CURE_HELD 605 +#define PH_CURE_SOLO 606 +#define PH_NURSE_BLEND 607 +#define PH_NURSE_HELD 608 +#define PH_NURSE_SOLO 609 + +#define MUS_ROUTE118 0x7FFF // Map is split into 2 music sections. controlled by GetCurrLocationDefaultMusic(). + +#define MUS_NONE 0xFFFF #endif // GUARD_CONSTANTS_SONGS_H diff --git a/ld_script.txt b/ld_script.txt index ba95289de6..52e6c7c7f5 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -698,7 +698,7 @@ SECTIONS { ALIGN(4) { sound/songs/midi/mus_dummy.o(.rodata); - sound/songs/midi/se_kaifuku.o(.rodata); + sound/songs/midi/se_use_item.o(.rodata); sound/songs/midi/se_pc_login.o(.rodata); sound/songs/midi/se_pc_off.o(.rodata); sound/songs/midi/se_pc_on.o(.rodata); @@ -706,476 +706,476 @@ SECTIONS { sound/songs/se_win_open.o(.rodata); sound/songs/se_wall_hit.o(.rodata); sound/songs/midi/se_door.o(.rodata); - sound/songs/midi/se_kaidan.o(.rodata); - sound/songs/midi/se_dansa.o(.rodata); - sound/songs/midi/se_jitensya.o(.rodata); - sound/songs/midi/se_kouka_l.o(.rodata); - sound/songs/midi/se_kouka_m.o(.rodata); - sound/songs/midi/se_kouka_h.o(.rodata); - sound/songs/midi/se_bowa2.o(.rodata); - sound/songs/midi/se_poke_dead.o(.rodata); - sound/songs/midi/se_nigeru.o(.rodata); - sound/songs/midi/se_jido_doa.o(.rodata); - sound/songs/midi/se_naminori.o(.rodata); - sound/songs/midi/se_ban.o(.rodata); + sound/songs/midi/se_exit.o(.rodata); + sound/songs/midi/se_ledge.o(.rodata); + sound/songs/midi/se_bike_bell.o(.rodata); + sound/songs/midi/se_not_effective.o(.rodata); + sound/songs/midi/se_effective.o(.rodata); + sound/songs/midi/se_super_effective.o(.rodata); + sound/songs/midi/se_ball_open.o(.rodata); + sound/songs/midi/se_faint.o(.rodata); + sound/songs/midi/se_flee.o(.rodata); + sound/songs/midi/se_sliding_door.o(.rodata); + sound/songs/midi/se_ship.o(.rodata); + sound/songs/midi/se_bang.o(.rodata); sound/songs/midi/se_pin.o(.rodata); sound/songs/midi/se_boo.o(.rodata); - sound/songs/midi/se_bowa.o(.rodata); - sound/songs/midi/se_jyuni.o(.rodata); + sound/songs/midi/se_ball.o(.rodata); + sound/songs/midi/se_contest_place.o(.rodata); sound/songs/midi/se_a.o(.rodata); sound/songs/midi/se_i.o(.rodata); sound/songs/midi/se_u.o(.rodata); sound/songs/midi/se_e.o(.rodata); sound/songs/midi/se_o.o(.rodata); sound/songs/midi/se_n.o(.rodata); - sound/songs/midi/se_seikai.o(.rodata); - sound/songs/midi/se_hazure.o(.rodata); + sound/songs/midi/se_success.o(.rodata); + sound/songs/midi/se_failure.o(.rodata); sound/songs/midi/se_exp.o(.rodata); - sound/songs/midi/se_jite_pyoko.o(.rodata); - sound/songs/midi/se_mu_pachi.o(.rodata); - sound/songs/midi/se_tk_kasya.o(.rodata); + sound/songs/midi/se_bike_hop.o(.rodata); + sound/songs/midi/se_switch.o(.rodata); + sound/songs/midi/se_click.o(.rodata); sound/songs/midi/se_fu_zaku.o(.rodata); - sound/songs/midi/se_fu_zaku2.o(.rodata); - sound/songs/midi/se_fu_zuzuzu.o(.rodata); - sound/songs/midi/se_ru_gashin.o(.rodata); - sound/songs/midi/se_ru_gasyan.o(.rodata); - sound/songs/midi/se_ru_bari.o(.rodata); - sound/songs/midi/se_ru_hyuu.o(.rodata); - sound/songs/midi/se_ki_gasyan.o(.rodata); - sound/songs/midi/se_tk_warpin.o(.rodata); - sound/songs/midi/se_tk_warpout.o(.rodata); - sound/songs/midi/se_tu_saa.o(.rodata); - sound/songs/midi/se_hi_turun.o(.rodata); - sound/songs/midi/se_track_move.o(.rodata); - sound/songs/midi/se_track_stop.o(.rodata); - sound/songs/midi/se_track_haiki.o(.rodata); - sound/songs/midi/se_track_door.o(.rodata); - sound/songs/midi/se_moter.o(.rodata); + sound/songs/midi/se_contest_condition_lose.o(.rodata); + sound/songs/midi/se_lavaridge_fall_warp.o(.rodata); + sound/songs/midi/se_ice_stairs.o(.rodata); + sound/songs/midi/se_ice_break.o(.rodata); + sound/songs/midi/se_ice_crack.o(.rodata); + sound/songs/midi/se_fall.o(.rodata); + sound/songs/midi/se_unlock.o(.rodata); + sound/songs/midi/se_warp_in.o(.rodata); + sound/songs/midi/se_warp_out.o(.rodata); + sound/songs/midi/se_repel.o(.rodata); + sound/songs/midi/se_rotating_gate.o(.rodata); + sound/songs/midi/se_truck_move.o(.rodata); + sound/songs/midi/se_truck_stop.o(.rodata); + sound/songs/midi/se_truck_unload.o(.rodata); + sound/songs/midi/se_truck_door.o(.rodata); + sound/songs/midi/se_berry_blender.o(.rodata); sound/songs/midi/se_card.o(.rodata); sound/songs/midi/se_save.o(.rodata); - sound/songs/midi/se_kon.o(.rodata); - sound/songs/midi/se_kon2.o(.rodata); - sound/songs/midi/se_kon3.o(.rodata); - sound/songs/midi/se_kon4.o(.rodata); - sound/songs/midi/se_suikomu.o(.rodata); - sound/songs/midi/se_nageru.o(.rodata); - sound/songs/midi/se_toy_c.o(.rodata); - sound/songs/midi/se_toy_d.o(.rodata); - sound/songs/midi/se_toy_e.o(.rodata); - sound/songs/midi/se_toy_f.o(.rodata); - sound/songs/midi/se_toy_g.o(.rodata); - sound/songs/midi/se_toy_a.o(.rodata); - sound/songs/midi/se_toy_b.o(.rodata); - sound/songs/midi/se_toy_c1.o(.rodata); - sound/songs/midi/se_mizu.o(.rodata); - sound/songs/midi/se_hashi.o(.rodata); - sound/songs/midi/se_daugi.o(.rodata); - sound/songs/midi/se_pinpon.o(.rodata); - sound/songs/midi/se_fuusen1.o(.rodata); - sound/songs/midi/se_fuusen2.o(.rodata); - sound/songs/midi/se_fuusen3.o(.rodata); - sound/songs/midi/se_toy_kabe.o(.rodata); - sound/songs/midi/se_toy_dango.o(.rodata); - sound/songs/midi/se_doku.o(.rodata); - sound/songs/midi/se_esuka.o(.rodata); - sound/songs/midi/se_t_ame.o(.rodata); - sound/songs/midi/se_t_ame_e.o(.rodata); - sound/songs/midi/se_t_ooame.o(.rodata); - sound/songs/midi/se_t_ooame_e.o(.rodata); - sound/songs/midi/se_t_koame.o(.rodata); - sound/songs/midi/se_t_koame_e.o(.rodata); - sound/songs/midi/se_t_kami.o(.rodata); - sound/songs/midi/se_t_kami2.o(.rodata); - sound/songs/midi/se_elebeta.o(.rodata); - sound/songs/midi/se_hinsi.o(.rodata); - sound/songs/midi/se_expmax.o(.rodata); - sound/songs/midi/se_tamakoro.o(.rodata); - sound/songs/midi/se_tamakoro_e.o(.rodata); - sound/songs/midi/se_basabasa.o(.rodata); - sound/songs/midi/se_regi.o(.rodata); - sound/songs/midi/se_c_gaji.o(.rodata); - sound/songs/midi/se_c_maku_u.o(.rodata); - sound/songs/midi/se_c_maku_d.o(.rodata); - sound/songs/midi/se_c_pasi.o(.rodata); - sound/songs/midi/se_c_syu.o(.rodata); - sound/songs/midi/se_c_pikon.o(.rodata); - sound/songs/midi/se_reapoke.o(.rodata); - sound/songs/midi/se_op_basyu.o(.rodata); - sound/songs/midi/se_bt_start.o(.rodata); - sound/songs/midi/se_dendou.o(.rodata); - sound/songs/midi/se_jihanki.o(.rodata); - sound/songs/midi/se_tama.o(.rodata); - sound/songs/se_z_scroll.o(.rodata); - sound/songs/se_z_page.o(.rodata); - sound/songs/midi/se_pn_on.o(.rodata); - sound/songs/midi/se_pn_off.o(.rodata); - sound/songs/midi/se_z_search.o(.rodata); - sound/songs/midi/se_tamago.o(.rodata); - sound/songs/midi/se_tb_start.o(.rodata); - sound/songs/midi/se_tb_kon.o(.rodata); - sound/songs/midi/se_tb_kara.o(.rodata); - sound/songs/midi/se_bidoro.o(.rodata); - sound/songs/se_w085.o(.rodata); - sound/songs/se_w085b.o(.rodata); - sound/songs/se_w231.o(.rodata); - sound/songs/se_w171.o(.rodata); - sound/songs/se_w233.o(.rodata); - sound/songs/se_w233b.o(.rodata); - sound/songs/se_w145.o(.rodata); - sound/songs/se_w145b.o(.rodata); - sound/songs/se_w145c.o(.rodata); - sound/songs/se_w240.o(.rodata); - sound/songs/midi/se_w015.o(.rodata); - sound/songs/se_w081.o(.rodata); - sound/songs/se_w081b.o(.rodata); - sound/songs/se_w088.o(.rodata); - sound/songs/midi/se_w016.o(.rodata); - sound/songs/midi/se_w016b.o(.rodata); - sound/songs/midi/se_w003.o(.rodata); - sound/songs/se_w104.o(.rodata); - sound/songs/midi/se_w013.o(.rodata); - sound/songs/se_w196.o(.rodata); - sound/songs/se_w086.o(.rodata); - sound/songs/midi/se_w004.o(.rodata); - sound/songs/midi/se_w025.o(.rodata); - sound/songs/midi/se_w025b.o(.rodata); - sound/songs/se_w152.o(.rodata); - sound/songs/midi/se_w026.o(.rodata); - sound/songs/se_w172.o(.rodata); - sound/songs/se_w172b.o(.rodata); - sound/songs/se_w053.o(.rodata); - sound/songs/midi/se_w007.o(.rodata); - sound/songs/se_w092.o(.rodata); - sound/songs/se_w221.o(.rodata); - sound/songs/se_w221b.o(.rodata); - sound/songs/se_w052.o(.rodata); - sound/songs/midi/se_w036.o(.rodata); - sound/songs/se_w059.o(.rodata); - sound/songs/se_w059b.o(.rodata); - sound/songs/midi/se_w010.o(.rodata); - sound/songs/midi/se_w011.o(.rodata); - sound/songs/midi/se_w017.o(.rodata); - sound/songs/midi/se_w019.o(.rodata); - sound/songs/midi/se_w028.o(.rodata); - sound/songs/midi/se_w013b.o(.rodata); - sound/songs/se_w044.o(.rodata); - sound/songs/midi/se_w029.o(.rodata); - sound/songs/se_w057.o(.rodata); - sound/songs/se_w056.o(.rodata); - sound/songs/se_w250.o(.rodata); - sound/songs/midi/se_w030.o(.rodata); - sound/songs/midi/se_w039.o(.rodata); - sound/songs/se_w054.o(.rodata); - sound/songs/se_w077.o(.rodata); - sound/songs/midi/se_w020.o(.rodata); - sound/songs/se_w082.o(.rodata); - sound/songs/se_w047.o(.rodata); - sound/songs/se_w195.o(.rodata); - sound/songs/midi/se_w006.o(.rodata); - sound/songs/se_w091.o(.rodata); - sound/songs/se_w146.o(.rodata); - sound/songs/se_w120.o(.rodata); - sound/songs/se_w153.o(.rodata); - sound/songs/se_w071b.o(.rodata); - sound/songs/se_w071.o(.rodata); - sound/songs/se_w103.o(.rodata); - sound/songs/se_w062.o(.rodata); - sound/songs/se_w062b.o(.rodata); - sound/songs/se_w048.o(.rodata); - sound/songs/se_w187.o(.rodata); - sound/songs/se_w118.o(.rodata); - sound/songs/se_w155.o(.rodata); - sound/songs/se_w122.o(.rodata); - sound/songs/se_w060.o(.rodata); - sound/songs/se_w185.o(.rodata); - sound/songs/midi/se_w014.o(.rodata); - sound/songs/midi/se_w043.o(.rodata); - sound/songs/se_w207.o(.rodata); - sound/songs/se_w207b.o(.rodata); - sound/songs/se_w215.o(.rodata); - sound/songs/se_w109.o(.rodata); - sound/songs/se_w173.o(.rodata); - sound/songs/se_w280.o(.rodata); - sound/songs/se_w202.o(.rodata); - sound/songs/se_w060b.o(.rodata); - sound/songs/se_w076.o(.rodata); - sound/songs/se_w080.o(.rodata); - sound/songs/se_w100.o(.rodata); - sound/songs/se_w107.o(.rodata); - sound/songs/se_w166.o(.rodata); - sound/songs/se_w129.o(.rodata); - sound/songs/se_w115.o(.rodata); - sound/songs/se_w112.o(.rodata); - sound/songs/se_w197.o(.rodata); - sound/songs/se_w199.o(.rodata); - sound/songs/se_w236.o(.rodata); - sound/songs/se_w204.o(.rodata); - sound/songs/se_w268.o(.rodata); - sound/songs/se_w070.o(.rodata); - sound/songs/se_w063.o(.rodata); - sound/songs/se_w127.o(.rodata); - sound/songs/se_w179.o(.rodata); - sound/songs/se_w151.o(.rodata); - sound/songs/se_w201.o(.rodata); - sound/songs/se_w161.o(.rodata); - sound/songs/se_w161b.o(.rodata); - sound/songs/se_w227.o(.rodata); - sound/songs/se_w227b.o(.rodata); - sound/songs/se_w226.o(.rodata); - sound/songs/se_w208.o(.rodata); - sound/songs/se_w213.o(.rodata); - sound/songs/se_w213b.o(.rodata); - sound/songs/se_w234.o(.rodata); - sound/songs/se_w260.o(.rodata); - sound/songs/se_w328.o(.rodata); - sound/songs/se_w320.o(.rodata); - sound/songs/se_w255.o(.rodata); - sound/songs/se_w291.o(.rodata); - sound/songs/se_w089.o(.rodata); - sound/songs/se_w239.o(.rodata); - sound/songs/se_w230.o(.rodata); - sound/songs/se_w281.o(.rodata); - sound/songs/se_w327.o(.rodata); - sound/songs/se_w287.o(.rodata); - sound/songs/se_w257.o(.rodata); - sound/songs/se_w253.o(.rodata); - sound/songs/se_w258.o(.rodata); - sound/songs/se_w322.o(.rodata); - sound/songs/se_w298.o(.rodata); - sound/songs/se_w287b.o(.rodata); - sound/songs/se_w114.o(.rodata); - sound/songs/se_w063b.o(.rodata); - sound/songs/midi/se_rg_w_door.o(.rodata); - sound/songs/midi/se_rg_card1.o(.rodata); - sound/songs/midi/se_rg_card2.o(.rodata); - sound/songs/midi/se_rg_card3.o(.rodata); - sound/songs/midi/se_rg_bag1.o(.rodata); - sound/songs/midi/se_rg_bag2.o(.rodata); - sound/songs/midi/se_rg_getting.o(.rodata); + sound/songs/midi/se_ball_bounce_1.o(.rodata); + sound/songs/midi/se_ball_bounce_2.o(.rodata); + sound/songs/midi/se_ball_bounce_3.o(.rodata); + sound/songs/midi/se_ball_bounce_4.o(.rodata); + sound/songs/midi/se_ball_trade.o(.rodata); + sound/songs/midi/se_ball_throw.o(.rodata); + sound/songs/midi/se_note_c.o(.rodata); + sound/songs/midi/se_note_d.o(.rodata); + sound/songs/midi/se_note_e.o(.rodata); + sound/songs/midi/se_note_f.o(.rodata); + sound/songs/midi/se_note_g.o(.rodata); + sound/songs/midi/se_note_a.o(.rodata); + sound/songs/midi/se_note_b.o(.rodata); + sound/songs/midi/se_note_c_high.o(.rodata); + sound/songs/midi/se_puddle.o(.rodata); + sound/songs/midi/se_bridge_walk.o(.rodata); + sound/songs/midi/se_itemfinder.o(.rodata); + sound/songs/midi/se_ding_dong.o(.rodata); + sound/songs/midi/se_balloon_red.o(.rodata); + sound/songs/midi/se_balloon_blue.o(.rodata); + sound/songs/midi/se_balloon_yellow.o(.rodata); + sound/songs/midi/se_breakable_door.o(.rodata); + sound/songs/midi/se_mud_ball.o(.rodata); + sound/songs/midi/se_field_poison.o(.rodata); + sound/songs/midi/se_escalator.o(.rodata); + sound/songs/midi/se_thunderstorm.o(.rodata); + sound/songs/midi/se_thunderstorm_stop.o(.rodata); + sound/songs/midi/se_downpour.o(.rodata); + sound/songs/midi/se_downpour_stop.o(.rodata); + sound/songs/midi/se_rain.o(.rodata); + sound/songs/midi/se_rain_stop.o(.rodata); + sound/songs/midi/se_thunder.o(.rodata); + sound/songs/midi/se_thunder2.o(.rodata); + sound/songs/midi/se_elevator.o(.rodata); + sound/songs/midi/se_low_health.o(.rodata); + sound/songs/midi/se_exp_max.o(.rodata); + sound/songs/midi/se_roulette_ball.o(.rodata); + sound/songs/midi/se_roulette_ball2.o(.rodata); + sound/songs/midi/se_taillow_wing_flap.o(.rodata); + sound/songs/midi/se_shop.o(.rodata); + sound/songs/midi/se_contest_heart.o(.rodata); + sound/songs/midi/se_contest_curtain_rise.o(.rodata); + sound/songs/midi/se_contest_curtain_fall.o(.rodata); + sound/songs/midi/se_contest_icon_change.o(.rodata); + sound/songs/midi/se_contest_icon_clear.o(.rodata); + sound/songs/midi/se_contest_mons_turn.o(.rodata); + sound/songs/midi/se_shiny.o(.rodata); + sound/songs/midi/se_intro_blast.o(.rodata); + sound/songs/midi/se_mugshot.o(.rodata); + sound/songs/midi/se_applause.o(.rodata); + sound/songs/midi/se_vend.o(.rodata); + sound/songs/midi/se_orb.o(.rodata); + sound/songs/se_dex_scroll.o(.rodata); + sound/songs/se_dex_page.o(.rodata); + sound/songs/midi/se_pokenav_on.o(.rodata); + sound/songs/midi/se_pokenav_off.o(.rodata); + sound/songs/midi/se_dex_search.o(.rodata); + sound/songs/midi/se_egg_hatch.o(.rodata); + sound/songs/midi/se_ball_tray_enter.o(.rodata); + sound/songs/midi/se_ball_tray_ball.o(.rodata); + sound/songs/midi/se_ball_tray_exit.o(.rodata); + sound/songs/midi/se_glass_flute.o(.rodata); + sound/songs/se_m_thunderbolt.o(.rodata); + sound/songs/se_m_thunderbolt2.o(.rodata); + sound/songs/se_m_harden.o(.rodata); + sound/songs/se_m_nightmare.o(.rodata); + sound/songs/se_m_vital_throw.o(.rodata); + sound/songs/se_m_vital_throw2.o(.rodata); + sound/songs/se_m_bubble.o(.rodata); + sound/songs/se_m_bubble2.o(.rodata); + sound/songs/se_m_bubble3.o(.rodata); + sound/songs/se_m_rain_dance.o(.rodata); + sound/songs/midi/se_m_cut.o(.rodata); + sound/songs/se_m_string_shot.o(.rodata); + sound/songs/se_m_string_shot2.o(.rodata); + sound/songs/se_m_rock_throw.o(.rodata); + sound/songs/midi/se_m_gust.o(.rodata); + sound/songs/midi/se_m_gust2.o(.rodata); + sound/songs/midi/se_m_double_slap.o(.rodata); + sound/songs/se_m_double_team.o(.rodata); + sound/songs/midi/se_m_razor_wind.o(.rodata); + sound/songs/se_m_icy_wind.o(.rodata); + sound/songs/se_m_thunder_wave.o(.rodata); + sound/songs/midi/se_m_comet_punch.o(.rodata); + sound/songs/midi/se_m_mega_kick.o(.rodata); + sound/songs/midi/se_m_mega_kick2.o(.rodata); + sound/songs/se_m_crabhammer.o(.rodata); + sound/songs/midi/se_m_jump_kick.o(.rodata); + sound/songs/se_m_flame_wheel.o(.rodata); + sound/songs/se_m_flame_wheel2.o(.rodata); + sound/songs/se_m_flamethrower.o(.rodata); + sound/songs/midi/se_m_fire_punch.o(.rodata); + sound/songs/se_m_toxic.o(.rodata); + sound/songs/se_m_sacred_fire.o(.rodata); + sound/songs/se_m_sacred_fire2.o(.rodata); + sound/songs/se_m_ember.o(.rodata); + sound/songs/midi/se_m_take_down.o(.rodata); + sound/songs/se_m_blizzard.o(.rodata); + sound/songs/se_m_blizzard2.o(.rodata); + sound/songs/midi/se_m_scratch.o(.rodata); + sound/songs/midi/se_m_vicegrip.o(.rodata); + sound/songs/midi/se_m_wing_attack.o(.rodata); + sound/songs/midi/se_m_fly.o(.rodata); + sound/songs/midi/se_m_sand_attack.o(.rodata); + sound/songs/midi/se_m_razor_wind2.o(.rodata); + sound/songs/se_m_bite.o(.rodata); + sound/songs/midi/se_m_headbutt.o(.rodata); + sound/songs/se_m_surf.o(.rodata); + sound/songs/se_m_hydro_pump.o(.rodata); + sound/songs/se_m_whirlpool.o(.rodata); + sound/songs/midi/se_m_horn_attack.o(.rodata); + sound/songs/midi/se_m_tail_whip.o(.rodata); + sound/songs/se_m_mist.o(.rodata); + sound/songs/se_m_poison_powder.o(.rodata); + sound/songs/midi/se_m_bind.o(.rodata); + sound/songs/se_m_dragon_rage.o(.rodata); + sound/songs/se_m_sing.o(.rodata); + sound/songs/se_m_perish_song.o(.rodata); + sound/songs/midi/se_m_pay_day.o(.rodata); + sound/songs/se_m_dig.o(.rodata); + sound/songs/se_m_dizzy_punch.o(.rodata); + sound/songs/se_m_self_destruct.o(.rodata); + sound/songs/se_m_explosion.o(.rodata); + sound/songs/se_m_absorb_2.o(.rodata); + sound/songs/se_m_absorb.o(.rodata); + sound/songs/se_m_screech.o(.rodata); + sound/songs/se_m_bubble_beam.o(.rodata); + sound/songs/se_m_bubble_beam2.o(.rodata); + sound/songs/se_m_supersonic.o(.rodata); + sound/songs/se_m_belly_drum.o(.rodata); + sound/songs/se_m_metronome.o(.rodata); + sound/songs/se_m_bonemerang.o(.rodata); + sound/songs/se_m_lick.o(.rodata); + sound/songs/se_m_psybeam.o(.rodata); + sound/songs/se_m_faint_attack.o(.rodata); + sound/songs/midi/se_m_swords_dance.o(.rodata); + sound/songs/midi/se_m_leer.o(.rodata); + sound/songs/se_m_swagger.o(.rodata); + sound/songs/se_m_swagger2.o(.rodata); + sound/songs/se_m_heal_bell.o(.rodata); + sound/songs/se_m_confuse_ray.o(.rodata); + sound/songs/se_m_snore.o(.rodata); + sound/songs/se_m_brick_break.o(.rodata); + sound/songs/se_m_giga_drain.o(.rodata); + sound/songs/se_m_psybeam2.o(.rodata); + sound/songs/se_m_solar_beam.o(.rodata); + sound/songs/se_m_petal_dance.o(.rodata); + sound/songs/se_m_teleport.o(.rodata); + sound/songs/se_m_minimize.o(.rodata); + sound/songs/se_m_sketch.o(.rodata); + sound/songs/se_m_swift.o(.rodata); + sound/songs/se_m_reflect.o(.rodata); + sound/songs/se_m_barrier.o(.rodata); + sound/songs/se_m_detect.o(.rodata); + sound/songs/se_m_lock_on.o(.rodata); + sound/songs/se_m_moonlight.o(.rodata); + sound/songs/se_m_charm.o(.rodata); + sound/songs/se_m_charge.o(.rodata); + sound/songs/se_m_strength.o(.rodata); + sound/songs/se_m_hyper_beam.o(.rodata); + sound/songs/se_m_waterfall.o(.rodata); + sound/songs/se_m_reversal.o(.rodata); + sound/songs/se_m_acid_armor.o(.rodata); + sound/songs/se_m_sandstorm.o(.rodata); + sound/songs/se_m_tri_attack.o(.rodata); + sound/songs/se_m_tri_attack2.o(.rodata); + sound/songs/se_m_encore.o(.rodata); + sound/songs/se_m_encore2.o(.rodata); + sound/songs/se_m_baton_pass.o(.rodata); + sound/songs/se_m_milk_drink.o(.rodata); + sound/songs/se_m_attract.o(.rodata); + sound/songs/se_m_attract2.o(.rodata); + sound/songs/se_m_morning_sun.o(.rodata); + sound/songs/se_m_flatter.o(.rodata); + sound/songs/se_m_sand_tomb.o(.rodata); + sound/songs/se_m_grasswhistle.o(.rodata); + sound/songs/se_m_spit_up.o(.rodata); + sound/songs/se_m_dive.o(.rodata); + sound/songs/se_m_earthquake.o(.rodata); + sound/songs/se_m_twister.o(.rodata); + sound/songs/se_m_sweet_scent.o(.rodata); + sound/songs/se_m_yawn.o(.rodata); + sound/songs/se_m_sky_uppercut.o(.rodata); + sound/songs/se_m_stat_increase.o(.rodata); + sound/songs/se_m_heat_wave.o(.rodata); + sound/songs/se_m_uproar.o(.rodata); + sound/songs/se_m_hail.o(.rodata); + sound/songs/se_m_cosmic_power.o(.rodata); + sound/songs/se_m_teeter_dance.o(.rodata); + sound/songs/se_m_stat_decrease.o(.rodata); + sound/songs/se_m_haze.o(.rodata); + sound/songs/se_m_hyper_beam2.o(.rodata); + sound/songs/midi/se_rg_door.o(.rodata); + sound/songs/midi/se_rg_card_flip.o(.rodata); + sound/songs/midi/se_rg_card_flipping.o(.rodata); + sound/songs/midi/se_rg_card_open.o(.rodata); + sound/songs/midi/se_rg_bag_cursor.o(.rodata); + sound/songs/midi/se_rg_bag_pocket.o(.rodata); + sound/songs/midi/se_rg_ball_click.o(.rodata); sound/songs/midi/se_rg_shop.o(.rodata); - sound/songs/midi/se_rg_kiteki.o(.rodata); - sound/songs/midi/se_rg_help_op.o(.rodata); - sound/songs/midi/se_rg_help_cl.o(.rodata); - sound/songs/midi/se_rg_help_ng.o(.rodata); - sound/songs/midi/se_rg_deomov.o(.rodata); - sound/songs/midi/se_rg_excellent.o(.rodata); - sound/songs/midi/se_rg_nawamiss.o(.rodata); - sound/songs/midi/se_toreeye.o(.rodata); - sound/songs/midi/se_toreoff.o(.rodata); - sound/songs/midi/se_hantei1.o(.rodata); - sound/songs/midi/se_hantei2.o(.rodata); - sound/songs/midi/se_curtain.o(.rodata); - sound/songs/midi/se_curtain1.o(.rodata); - sound/songs/midi/se_ussoki.o(.rodata); - sound/songs/midi/mus_tetsuji.o(.rodata); - sound/songs/midi/mus_field13.o(.rodata); - sound/songs/midi/mus_kachi22.o(.rodata); - sound/songs/midi/mus_kachi2.o(.rodata); - sound/songs/midi/mus_kachi3.o(.rodata); - sound/songs/midi/mus_kachi5.o(.rodata); - sound/songs/midi/mus_pcc.o(.rodata); - sound/songs/midi/mus_nibi.o(.rodata); - sound/songs/midi/mus_suikun.o(.rodata); - sound/songs/midi/mus_dooro1.o(.rodata); - sound/songs/midi/mus_dooro_x1.o(.rodata); - sound/songs/midi/mus_dooro_x3.o(.rodata); - sound/songs/midi/mus_machi_s2.o(.rodata); - sound/songs/midi/mus_machi_s4.o(.rodata); - sound/songs/midi/mus_gim.o(.rodata); - sound/songs/midi/mus_naminori.o(.rodata); - sound/songs/midi/mus_dan01.o(.rodata); - sound/songs/midi/mus_fanfa1.o(.rodata); - sound/songs/midi/mus_me_asa.o(.rodata); - sound/songs/midi/mus_me_bachi.o(.rodata); - sound/songs/midi/mus_fanfa4.o(.rodata); - sound/songs/midi/mus_fanfa5.o(.rodata); - sound/songs/midi/mus_me_waza.o(.rodata); - sound/songs/midi/mus_bijyutu.o(.rodata); - sound/songs/midi/mus_dooro_x4.o(.rodata); - sound/songs/midi/mus_fune_kan.o(.rodata); - sound/songs/midi/mus_me_shinka.o(.rodata); - sound/songs/midi/mus_shinka.o(.rodata); - sound/songs/midi/mus_me_wasure.o(.rodata); - sound/songs/midi/mus_syoujoeye.o(.rodata); - sound/songs/midi/mus_boyeye.o(.rodata); - sound/songs/midi/mus_dan02.o(.rodata); - sound/songs/midi/mus_machi_s3.o(.rodata); - sound/songs/midi/mus_odamaki.o(.rodata); - sound/songs/midi/mus_b_tower.o(.rodata); - sound/songs/midi/mus_swimeye.o(.rodata); - sound/songs/midi/mus_dan03.o(.rodata); - sound/songs/midi/mus_me_kinomi.o(.rodata); - sound/songs/midi/mus_me_tama.o(.rodata); - sound/songs/midi/mus_me_b_big.o(.rodata); - sound/songs/midi/mus_me_b_small.o(.rodata); - sound/songs/midi/mus_me_zannen.o(.rodata); - sound/songs/midi/mus_bd_time.o(.rodata); - sound/songs/midi/mus_test1.o(.rodata); - sound/songs/midi/mus_test2.o(.rodata); - sound/songs/midi/mus_test3.o(.rodata); - sound/songs/midi/mus_test4.o(.rodata); - sound/songs/midi/mus_test.o(.rodata); - sound/songs/midi/mus_gomachi0.o(.rodata); - sound/songs/midi/mus_gotown.o(.rodata); - sound/songs/midi/mus_pokecen.o(.rodata); - sound/songs/midi/mus_nextroad.o(.rodata); - sound/songs/midi/mus_granroad.o(.rodata); + sound/songs/midi/se_rg_ss_anne_horn.o(.rodata); + sound/songs/midi/se_rg_help_open.o(.rodata); + sound/songs/midi/se_rg_help_close.o(.rodata); + sound/songs/midi/se_rg_help_error.o(.rodata); + sound/songs/midi/se_rg_deoxys_move.o(.rodata); + sound/songs/midi/se_rg_poke_jump_success.o(.rodata); + sound/songs/midi/se_rg_poke_jump_failure.o(.rodata); + sound/songs/midi/se_pokenav_call.o(.rodata); + sound/songs/midi/se_pokenav_hang_up.o(.rodata); + sound/songs/midi/se_arena_timeup1.o(.rodata); + sound/songs/midi/se_arena_timeup2.o(.rodata); + sound/songs/midi/se_pike_curtain_open.o(.rodata); + sound/songs/midi/se_pike_curtain_close.o(.rodata); + sound/songs/midi/se_sudowoodo_shake.o(.rodata); + sound/songs/midi/mus_littleroot_test.o(.rodata); + sound/songs/midi/mus_gsc_route38.o(.rodata); + sound/songs/midi/mus_caught.o(.rodata); + sound/songs/midi/mus_victory_wild.o(.rodata); + sound/songs/midi/mus_victory_gym_leader.o(.rodata); + sound/songs/midi/mus_victory_league.o(.rodata); + sound/songs/midi/mus_c_comm_center.o(.rodata); + sound/songs/midi/mus_gsc_pewter.o(.rodata); + sound/songs/midi/mus_c_vs_legend_beast.o(.rodata); + sound/songs/midi/mus_route101.o(.rodata); + sound/songs/midi/mus_route110.o(.rodata); + sound/songs/midi/mus_route120.o(.rodata); + sound/songs/midi/mus_petalburg.o(.rodata); + sound/songs/midi/mus_oldale.o(.rodata); + sound/songs/midi/mus_gym.o(.rodata); + sound/songs/midi/mus_surf.o(.rodata); + sound/songs/midi/mus_petalburg_woods.o(.rodata); + sound/songs/midi/mus_level_up.o(.rodata); + sound/songs/midi/mus_heal.o(.rodata); + sound/songs/midi/mus_obtain_badge.o(.rodata); + sound/songs/midi/mus_obtain_item.o(.rodata); + sound/songs/midi/mus_evolved.o(.rodata); + sound/songs/midi/mus_obtain_tmhm.o(.rodata); + sound/songs/midi/mus_lilycove_museum.o(.rodata); + sound/songs/midi/mus_route122.o(.rodata); + sound/songs/midi/mus_oceanic_museum.o(.rodata); + sound/songs/midi/mus_evolution_intro.o(.rodata); + sound/songs/midi/mus_evolution.o(.rodata); + sound/songs/midi/mus_move_deleted.o(.rodata); + sound/songs/midi/mus_encounter_girl.o(.rodata); + sound/songs/midi/mus_encounter_male.o(.rodata); + sound/songs/midi/mus_abandoned_ship.o(.rodata); + sound/songs/midi/mus_fortree.o(.rodata); + sound/songs/midi/mus_birch_lab.o(.rodata); + sound/songs/midi/mus_b_tower_rs.o(.rodata); + sound/songs/midi/mus_encounter_swimmer.o(.rodata); + sound/songs/midi/mus_cave_of_origin.o(.rodata); + sound/songs/midi/mus_obtain_berry.o(.rodata); + sound/songs/midi/mus_awaken_legend.o(.rodata); + sound/songs/midi/mus_slots_jackpot.o(.rodata); + sound/songs/midi/mus_slots_win.o(.rodata); + sound/songs/midi/mus_too_bad.o(.rodata); + sound/songs/midi/mus_roulette.o(.rodata); + sound/songs/midi/mus_link_contest_p1.o(.rodata); + sound/songs/midi/mus_link_contest_p2.o(.rodata); + sound/songs/midi/mus_link_contest_p3.o(.rodata); + sound/songs/midi/mus_link_contest_p4.o(.rodata); + sound/songs/midi/mus_encounter_gentleman.o(.rodata); + sound/songs/midi/mus_verdanturf.o(.rodata); + sound/songs/midi/mus_rustboro.o(.rodata); + sound/songs/midi/mus_poke_center.o(.rodata); + sound/songs/midi/mus_route104.o(.rodata); + sound/songs/midi/mus_route119.o(.rodata); sound/songs/midi/mus_cycling.o(.rodata); - sound/songs/midi/mus_friendly.o(.rodata); - sound/songs/midi/mus_mishiro.o(.rodata); - sound/songs/midi/mus_tozan.o(.rodata); - sound/songs/midi/mus_girleye.o(.rodata); - sound/songs/midi/mus_minamo.o(.rodata); - sound/songs/midi/mus_ashroad.o(.rodata); - sound/songs/midi/mus_event0.o(.rodata); - sound/songs/midi/mus_deepdeep.o(.rodata); - sound/songs/midi/mus_kachi1.o(.rodata); - sound/songs/midi/mus_title3.o(.rodata); - sound/songs/midi/mus_demo1.o(.rodata); - sound/songs/midi/mus_girl_sup.o(.rodata); - sound/songs/midi/mus_hageshii.o(.rodata); - sound/songs/midi/mus_kakkoii.o(.rodata); - sound/songs/midi/mus_kazanbai.o(.rodata); - sound/songs/midi/mus_aqa_0.o(.rodata); - sound/songs/midi/mus_tsuretek.o(.rodata); - sound/songs/midi/mus_boy_sup.o(.rodata); - sound/songs/midi/mus_rainbow.o(.rodata); - sound/songs/midi/mus_ayasii.o(.rodata); - sound/songs/midi/mus_kachi4.o(.rodata); - sound/songs/midi/mus_ropeway.o(.rodata); - sound/songs/midi/mus_casino.o(.rodata); - sound/songs/midi/mus_hightown.o(.rodata); - sound/songs/midi/mus_safari.o(.rodata); - sound/songs/midi/mus_c_road.o(.rodata); - sound/songs/midi/mus_ajito.o(.rodata); - sound/songs/midi/mus_m_boat.o(.rodata); - sound/songs/midi/mus_m_dungon.o(.rodata); - sound/songs/midi/mus_finecity.o(.rodata); - sound/songs/midi/mus_machupi.o(.rodata); - sound/songs/midi/mus_p_school.o(.rodata); - sound/songs/midi/mus_dendou.o(.rodata); - sound/songs/midi/mus_tonekusa.o(.rodata); - sound/songs/midi/mus_maborosi.o(.rodata); - sound/songs/midi/mus_con_fan.o(.rodata); - sound/songs/midi/mus_contest0.o(.rodata); - sound/songs/midi/mus_mgm0.o(.rodata); - sound/songs/midi/mus_t_battle.o(.rodata); - sound/songs/midi/mus_ooame.o(.rodata); - sound/songs/midi/mus_hideri.o(.rodata); - sound/songs/midi/mus_runecity.o(.rodata); - sound/songs/midi/mus_con_k.o(.rodata); - sound/songs/midi/mus_eikou_r.o(.rodata); - sound/songs/midi/mus_karakuri.o(.rodata); - sound/songs/midi/mus_hutago.o(.rodata); - sound/songs/midi/mus_sitennou.o(.rodata); - sound/songs/midi/mus_yama_eye.o(.rodata); - sound/songs/midi/mus_conlobby.o(.rodata); - sound/songs/midi/mus_inter_v.o(.rodata); - sound/songs/midi/mus_daigo.o(.rodata); - sound/songs/midi/mus_thankfor.o(.rodata); + sound/songs/midi/mus_poke_mart.o(.rodata); + sound/songs/midi/mus_littleroot.o(.rodata); + sound/songs/midi/mus_mt_chimney.o(.rodata); + sound/songs/midi/mus_encounter_female.o(.rodata); + sound/songs/midi/mus_lilycove.o(.rodata); + sound/songs/midi/mus_route111.o(.rodata); + sound/songs/midi/mus_help.o(.rodata); + sound/songs/midi/mus_underwater.o(.rodata); + sound/songs/midi/mus_victory_trainer.o(.rodata); + sound/songs/midi/mus_title.o(.rodata); + sound/songs/midi/mus_intro.o(.rodata); + sound/songs/midi/mus_encounter_may.o(.rodata); + sound/songs/midi/mus_encounter_psychic.o(.rodata); + sound/songs/midi/mus_encounter_cooltrainer.o(.rodata); + sound/songs/midi/mus_route113.o(.rodata); + sound/songs/midi/mus_encounter_aqua.o(.rodata); + sound/songs/midi/mus_follow_me.o(.rodata); + sound/songs/midi/mus_encounter_brendan.o(.rodata); + sound/songs/midi/mus_ever_grande.o(.rodata); + sound/songs/midi/mus_encounter_hex_maniac.o(.rodata); + sound/songs/midi/mus_victory_aqua_magma.o(.rodata); + sound/songs/midi/mus_cable_car.o(.rodata); + sound/songs/midi/mus_game_corner.o(.rodata); + sound/songs/midi/mus_dewford.o(.rodata); + sound/songs/midi/mus_safari_zone.o(.rodata); + sound/songs/midi/mus_victory_road.o(.rodata); + sound/songs/midi/mus_aqua_magma_hideout.o(.rodata); + sound/songs/midi/mus_sailing.o(.rodata); + sound/songs/midi/mus_mt_pyre.o(.rodata); + sound/songs/midi/mus_slateport.o(.rodata); + sound/songs/midi/mus_mt_pyre_exterior.o(.rodata); + sound/songs/midi/mus_school.o(.rodata); + sound/songs/midi/mus_hall_of_fame.o(.rodata); + sound/songs/midi/mus_fallarbor.o(.rodata); + sound/songs/midi/mus_sealed_chamber.o(.rodata); + sound/songs/midi/mus_contest_winner.o(.rodata); + sound/songs/midi/mus_contest.o(.rodata); + sound/songs/midi/mus_encounter_magma.o(.rodata); + sound/songs/midi/mus_intro_battle.o(.rodata); + sound/songs/midi/mus_abnormal_weather.o(.rodata); + sound/songs/midi/mus_weather_groudon.o(.rodata); + sound/songs/midi/mus_sootopolis.o(.rodata); + sound/songs/midi/mus_contest_results.o(.rodata); + sound/songs/midi/mus_hall_of_fame_room.o(.rodata); + sound/songs/midi/mus_trick_house.o(.rodata); + sound/songs/midi/mus_encounter_twins.o(.rodata); + sound/songs/midi/mus_encounter_elite_four.o(.rodata); + sound/songs/midi/mus_encounter_hiker.o(.rodata); + sound/songs/midi/mus_contest_lobby.o(.rodata); + sound/songs/midi/mus_encounter_interviewer.o(.rodata); + sound/songs/midi/mus_encounter_champion.o(.rodata); + sound/songs/midi/mus_credits.o(.rodata); sound/songs/midi/mus_end.o(.rodata); sound/songs/midi/mus_b_frontier.o(.rodata); sound/songs/midi/mus_b_arena.o(.rodata); - sound/songs/midi/mus_me_pointget.o(.rodata); - sound/songs/midi/mus_me_tore_eye.o(.rodata); - sound/songs/midi/mus_pyramid.o(.rodata); - sound/songs/midi/mus_pyramid_top.o(.rodata); + sound/songs/midi/mus_obtain_b_points.o(.rodata); + sound/songs/midi/mus_register_match_call.o(.rodata); + sound/songs/midi/mus_b_pyramid.o(.rodata); + sound/songs/midi/mus_b_pyramid_top.o(.rodata); sound/songs/midi/mus_b_palace.o(.rodata); - sound/songs/midi/mus_rekkuu_kourin.o(.rodata); - sound/songs/midi/mus_sattower.o(.rodata); - sound/songs/midi/mus_me_symbolget.o(.rodata); + sound/songs/midi/mus_rayquaza_appears.o(.rodata); + sound/songs/midi/mus_b_tower.o(.rodata); + sound/songs/midi/mus_obtain_symbol.o(.rodata); sound/songs/midi/mus_b_dome.o(.rodata); - sound/songs/midi/mus_b_tube.o(.rodata); + sound/songs/midi/mus_b_pike.o(.rodata); sound/songs/midi/mus_b_factory.o(.rodata); - sound/songs/midi/mus_vs_rekku.o(.rodata); - sound/songs/midi/mus_vs_front.o(.rodata); + sound/songs/midi/mus_vs_rayquaza.o(.rodata); + sound/songs/midi/mus_vs_frontier_brain.o(.rodata); sound/songs/midi/mus_vs_mew.o(.rodata); - sound/songs/midi/mus_b_dome1.o(.rodata); - sound/songs/midi/mus_battle27.o(.rodata); - sound/songs/midi/mus_battle31.o(.rodata); - sound/songs/midi/mus_battle20.o(.rodata); - sound/songs/midi/mus_battle32.o(.rodata); - sound/songs/midi/mus_battle33.o(.rodata); - sound/songs/midi/mus_battle36.o(.rodata); - sound/songs/midi/mus_battle34.o(.rodata); - sound/songs/midi/mus_battle35.o(.rodata); - sound/songs/midi/mus_battle38.o(.rodata); - sound/songs/midi/mus_battle30.o(.rodata); - sound/songs/midi/mus_rg_annai.o(.rodata); - sound/songs/midi/mus_rg_slot.o(.rodata); - sound/songs/midi/mus_rg_ajito.o(.rodata); + sound/songs/midi/mus_b_dome_lobby.o(.rodata); + sound/songs/midi/mus_vs_wild.o(.rodata); + sound/songs/midi/mus_vs_aqua_magma.o(.rodata); + sound/songs/midi/mus_vs_trainer.o(.rodata); + sound/songs/midi/mus_vs_gym_leader.o(.rodata); + sound/songs/midi/mus_vs_champion.o(.rodata); + sound/songs/midi/mus_vs_regi.o(.rodata); + sound/songs/midi/mus_vs_kyogre_groudon.o(.rodata); + sound/songs/midi/mus_vs_rival.o(.rodata); + sound/songs/midi/mus_vs_elite_four.o(.rodata); + sound/songs/midi/mus_vs_aqua_magma_leader.o(.rodata); + sound/songs/midi/mus_rg_follow_me.o(.rodata); + sound/songs/midi/mus_rg_game_corner.o(.rodata); + sound/songs/midi/mus_rg_rocket_hideout.o(.rodata); sound/songs/midi/mus_rg_gym.o(.rodata); - sound/songs/midi/mus_rg_purin.o(.rodata); - sound/songs/midi/mus_rg_demo.o(.rodata); + sound/songs/midi/mus_rg_jigglypuff.o(.rodata); + sound/songs/midi/mus_rg_intro_fight.o(.rodata); sound/songs/midi/mus_rg_title.o(.rodata); - sound/songs/midi/mus_rg_guren.o(.rodata); - sound/songs/midi/mus_rg_shion.o(.rodata); - sound/songs/midi/mus_rg_kaihuku.o(.rodata); + sound/songs/midi/mus_rg_cinnabar.o(.rodata); + sound/songs/midi/mus_rg_lavender.o(.rodata); + sound/songs/midi/mus_rg_heal.o(.rodata); sound/songs/midi/mus_rg_cycling.o(.rodata); - sound/songs/midi/mus_rg_rocket.o(.rodata); - sound/songs/midi/mus_rg_shoujo.o(.rodata); - sound/songs/midi/mus_rg_shounen.o(.rodata); - sound/songs/midi/mus_rg_dendou.o(.rodata); - sound/songs/midi/mus_rg_t_mori.o(.rodata); - sound/songs/midi/mus_rg_otsukimi.o(.rodata); - sound/songs/midi/mus_rg_pokeyashi.o(.rodata); - sound/songs/midi/mus_rg_ending.o(.rodata); - sound/songs/midi/mus_rg_load01.o(.rodata); - sound/songs/midi/mus_rg_opening.o(.rodata); - sound/songs/midi/mus_rg_load02.o(.rodata); - sound/songs/midi/mus_rg_load03.o(.rodata); - sound/songs/midi/mus_rg_champ_r.o(.rodata); - sound/songs/midi/mus_rg_vs_gym.o(.rodata); - sound/songs/midi/mus_rg_vs_tore.o(.rodata); - sound/songs/midi/mus_rg_vs_yasei.o(.rodata); - sound/songs/midi/mus_rg_vs_last.o(.rodata); - sound/songs/midi/mus_rg_masara.o(.rodata); - sound/songs/midi/mus_rg_kenkyu.o(.rodata); - sound/songs/midi/mus_rg_ohkido.o(.rodata); - sound/songs/midi/mus_rg_pokecen.o(.rodata); - sound/songs/midi/mus_rg_santoan.o(.rodata); - sound/songs/midi/mus_rg_naminori.o(.rodata); - sound/songs/midi/mus_rg_p_tower.o(.rodata); - sound/songs/midi/mus_rg_shiruhu.o(.rodata); - sound/songs/midi/mus_rg_hanada.o(.rodata); - sound/songs/midi/mus_rg_tamamusi.o(.rodata); - sound/songs/midi/mus_rg_win_tre.o(.rodata); - sound/songs/midi/mus_rg_win_yasei.o(.rodata); - sound/songs/midi/mus_rg_win_gym.o(.rodata); - sound/songs/midi/mus_rg_kuchiba.o(.rodata); - sound/songs/midi/mus_rg_nibi.o(.rodata); - sound/songs/midi/mus_rg_rival1.o(.rodata); - sound/songs/midi/mus_rg_rival2.o(.rodata); - sound/songs/midi/mus_rg_fan2.o(.rodata); - sound/songs/midi/mus_rg_fan5.o(.rodata); - sound/songs/midi/mus_rg_fan6.o(.rodata); - sound/songs/midi/mus_me_rg_photo.o(.rodata); - sound/songs/midi/mus_rg_titlerog.o(.rodata); - sound/songs/midi/mus_rg_get_yasei.o(.rodata); - sound/songs/midi/mus_rg_sousa.o(.rodata); - sound/songs/midi/mus_rg_sekaikan.o(.rodata); - sound/songs/midi/mus_rg_seibetu.o(.rodata); - sound/songs/midi/mus_rg_jump.o(.rodata); - sound/songs/midi/mus_rg_union.o(.rodata); - sound/songs/midi/mus_rg_network.o(.rodata); - sound/songs/midi/mus_rg_okurimono.o(.rodata); - sound/songs/midi/mus_rg_kinomikui.o(.rodata); - sound/songs/midi/mus_rg_nanadungeon.o(.rodata); - sound/songs/midi/mus_rg_oshie_tv.o(.rodata); - sound/songs/midi/mus_rg_nanashima.o(.rodata); - sound/songs/midi/mus_rg_nanaiseki.o(.rodata); - sound/songs/midi/mus_rg_nana123.o(.rodata); - sound/songs/midi/mus_rg_nana45.o(.rodata); - sound/songs/midi/mus_rg_nana67.o(.rodata); - sound/songs/midi/mus_rg_pokefue.o(.rodata); - sound/songs/midi/mus_rg_vs_deo.o(.rodata); - sound/songs/midi/mus_rg_vs_myu2.o(.rodata); - sound/songs/midi/mus_rg_vs_den.o(.rodata); - sound/songs/midi/mus_rg_exeye.o(.rodata); - sound/songs/midi/mus_rg_deoeye.o(.rodata); - sound/songs/midi/mus_rg_t_tower.o(.rodata); - sound/songs/midi/mus_rg_slowmasara.o(.rodata); - sound/songs/midi/mus_rg_tvnoize.o(.rodata); + sound/songs/midi/mus_rg_encounter_rocket.o(.rodata); + sound/songs/midi/mus_rg_encounter_girl.o(.rodata); + sound/songs/midi/mus_rg_encounter_boy.o(.rodata); + sound/songs/midi/mus_rg_hall_of_fame.o(.rodata); + sound/songs/midi/mus_rg_viridian_forest.o(.rodata); + sound/songs/midi/mus_rg_mt_moon.o(.rodata); + sound/songs/midi/mus_rg_poke_mansion.o(.rodata); + sound/songs/midi/mus_rg_credits.o(.rodata); + sound/songs/midi/mus_rg_route1.o(.rodata); + sound/songs/midi/mus_rg_route24.o(.rodata); + sound/songs/midi/mus_rg_route3.o(.rodata); + sound/songs/midi/mus_rg_route11.o(.rodata); + sound/songs/midi/mus_rg_victory_road.o(.rodata); + sound/songs/midi/mus_rg_vs_gym_leader.o(.rodata); + sound/songs/midi/mus_rg_vs_trainer.o(.rodata); + sound/songs/midi/mus_rg_vs_wild.o(.rodata); + sound/songs/midi/mus_rg_vs_champion.o(.rodata); + sound/songs/midi/mus_rg_pallet.o(.rodata); + sound/songs/midi/mus_rg_oak_lab.o(.rodata); + sound/songs/midi/mus_rg_oak.o(.rodata); + sound/songs/midi/mus_rg_poke_center.o(.rodata); + sound/songs/midi/mus_rg_ss_anne.o(.rodata); + sound/songs/midi/mus_rg_surf.o(.rodata); + sound/songs/midi/mus_rg_poke_tower.o(.rodata); + sound/songs/midi/mus_rg_silph.o(.rodata); + sound/songs/midi/mus_rg_fuchsia.o(.rodata); + sound/songs/midi/mus_rg_celadon.o(.rodata); + sound/songs/midi/mus_rg_victory_trainer.o(.rodata); + sound/songs/midi/mus_rg_victory_wild.o(.rodata); + sound/songs/midi/mus_rg_victory_gym_leader.o(.rodata); + sound/songs/midi/mus_rg_vermillion.o(.rodata); + sound/songs/midi/mus_rg_pewter.o(.rodata); + sound/songs/midi/mus_rg_encounter_rival.o(.rodata); + sound/songs/midi/mus_rg_rival_exit.o(.rodata); + sound/songs/midi/mus_rg_dex_rating.o(.rodata); + sound/songs/midi/mus_rg_obtain_key_item.o(.rodata); + sound/songs/midi/mus_rg_caught_intro.o(.rodata); + sound/songs/midi/mus_rg_photo.o(.rodata); + sound/songs/midi/mus_rg_game_freak.o(.rodata); + sound/songs/midi/mus_rg_caught.o(.rodata); + sound/songs/midi/mus_rg_new_game_instruct.o(.rodata); + sound/songs/midi/mus_rg_new_game_intro.o(.rodata); + sound/songs/midi/mus_rg_new_game_exit.o(.rodata); + sound/songs/midi/mus_rg_poke_jump.o(.rodata); + sound/songs/midi/mus_rg_union_room.o(.rodata); + sound/songs/midi/mus_rg_net_center.o(.rodata); + sound/songs/midi/mus_rg_mystery_gift.o(.rodata); + sound/songs/midi/mus_rg_berry_pick.o(.rodata); + sound/songs/midi/mus_rg_sevii_cave.o(.rodata); + sound/songs/midi/mus_rg_teachy_tv_show.o(.rodata); + sound/songs/midi/mus_rg_sevii_route.o(.rodata); + sound/songs/midi/mus_rg_sevii_dungeon.o(.rodata); + sound/songs/midi/mus_rg_sevii_123.o(.rodata); + sound/songs/midi/mus_rg_sevii_45.o(.rodata); + sound/songs/midi/mus_rg_sevii_67.o(.rodata); + sound/songs/midi/mus_rg_poke_flute.o(.rodata); + sound/songs/midi/mus_rg_vs_deoxys.o(.rodata); + sound/songs/midi/mus_rg_vs_mewtwo.o(.rodata); + sound/songs/midi/mus_rg_vs_legend.o(.rodata); + sound/songs/midi/mus_rg_encounter_gym_leader.o(.rodata); + sound/songs/midi/mus_rg_encounter_deoxys.o(.rodata); + sound/songs/midi/mus_rg_trainer_tower.o(.rodata); + sound/songs/midi/mus_rg_slow_pallet.o(.rodata); + sound/songs/midi/mus_rg_teachy_tv_menu.o(.rodata); sound/songs/midi/ph_trap_blend.o(.rodata); sound/songs/midi/ph_trap_held.o(.rodata); sound/songs/midi/ph_trap_solo.o(.rodata); diff --git a/songs.mk b/songs.mk index e1007af21b..6d76eeeea5 100644 --- a/songs.mk +++ b/songs.mk @@ -3,16 +3,16 @@ STD_REVERB = 50 $(MID_BUILDDIR)/%.o: $(MID_SUBDIR)/%.s $(AS) $(ASFLAGS) -I sound -o $@ $< -$(MID_SUBDIR)/mus_ajito.s: %.s: %.mid +$(MID_SUBDIR)/mus_aqua_magma_hideout.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G076 -V084 -$(MID_SUBDIR)/mus_aqa_0.s: %.s: %.mid +$(MID_SUBDIR)/mus_encounter_aqua.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G065 -V086 -$(MID_SUBDIR)/mus_ashroad.s: %.s: %.mid +$(MID_SUBDIR)/mus_route111.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G055 -V076 -$(MID_SUBDIR)/mus_ayasii.s: %.s: %.mid +$(MID_SUBDIR)/mus_encounter_hex_maniac.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G069 -V078 $(MID_SUBDIR)/mus_b_arena.s: %.s: %.mid @@ -21,7 +21,7 @@ $(MID_SUBDIR)/mus_b_arena.s: %.s: %.mid $(MID_SUBDIR)/mus_b_dome.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G111 -V090 -$(MID_SUBDIR)/mus_b_dome1.s: %.s: %.mid +$(MID_SUBDIR)/mus_b_dome_lobby.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G111 -V056 $(MID_SUBDIR)/mus_b_factory.s: %.s: %.mid @@ -33,604 +33,604 @@ $(MID_SUBDIR)/mus_b_frontier.s: %.s: %.mid $(MID_SUBDIR)/mus_b_palace.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G108 -V105 -$(MID_SUBDIR)/mus_b_tower.s: %.s: %.mid +$(MID_SUBDIR)/mus_b_tower_rs.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G035 -V080 -$(MID_SUBDIR)/mus_b_tube.s: %.s: %.mid +$(MID_SUBDIR)/mus_b_pike.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G112 -V092 -$(MID_SUBDIR)/mus_battle20.s: %.s: %.mid +$(MID_SUBDIR)/mus_vs_trainer.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G119 -V080 -P1 -$(MID_SUBDIR)/mus_battle27.s: %.s: %.mid +$(MID_SUBDIR)/mus_vs_wild.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G117 -V080 -P1 -$(MID_SUBDIR)/mus_battle30.s: %.s: %.mid +$(MID_SUBDIR)/mus_vs_aqua_magma_leader.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G126 -V080 -P1 -$(MID_SUBDIR)/mus_battle31.s: %.s: %.mid +$(MID_SUBDIR)/mus_vs_aqua_magma.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G118 -V080 -P1 -$(MID_SUBDIR)/mus_battle32.s: %.s: %.mid +$(MID_SUBDIR)/mus_vs_gym_leader.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G120 -V080 -P1 -$(MID_SUBDIR)/mus_battle33.s: %.s: %.mid +$(MID_SUBDIR)/mus_vs_champion.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G121 -V080 -P1 -$(MID_SUBDIR)/mus_battle34.s: %.s: %.mid +$(MID_SUBDIR)/mus_vs_kyogre_groudon.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G123 -V080 -P1 -$(MID_SUBDIR)/mus_battle35.s: %.s: %.mid +$(MID_SUBDIR)/mus_vs_rival.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G124 -V080 -P1 -$(MID_SUBDIR)/mus_battle36.s: %.s: %.mid +$(MID_SUBDIR)/mus_vs_regi.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G122 -V080 -P1 -$(MID_SUBDIR)/mus_battle38.s: %.s: %.mid +$(MID_SUBDIR)/mus_vs_elite_four.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G125 -V080 -P1 -$(MID_SUBDIR)/mus_bd_time.s: %.s: %.mid +$(MID_SUBDIR)/mus_roulette.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G038 -V080 -$(MID_SUBDIR)/mus_bijyutu.s: %.s: %.mid +$(MID_SUBDIR)/mus_lilycove_museum.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G020 -V080 -$(MID_SUBDIR)/mus_boy_sup.s: %.s: %.mid +$(MID_SUBDIR)/mus_encounter_brendan.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G067 -V078 -$(MID_SUBDIR)/mus_boyeye.s: %.s: %.mid +$(MID_SUBDIR)/mus_encounter_male.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G028 -V080 -$(MID_SUBDIR)/mus_c_road.s: %.s: %.mid +$(MID_SUBDIR)/mus_victory_road.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G075 -V076 -$(MID_SUBDIR)/mus_casino.s: %.s: %.mid +$(MID_SUBDIR)/mus_game_corner.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G072 -V072 -$(MID_SUBDIR)/mus_con_fan.s: %.s: %.mid +$(MID_SUBDIR)/mus_contest_winner.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G085 -V100 -$(MID_SUBDIR)/mus_con_k.s: %.s: %.mid +$(MID_SUBDIR)/mus_contest_results.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G092 -V080 -$(MID_SUBDIR)/mus_conlobby.s: %.s: %.mid +$(MID_SUBDIR)/mus_contest_lobby.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G098 -V060 -$(MID_SUBDIR)/mus_contest0.s: %.s: %.mid +$(MID_SUBDIR)/mus_contest.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G086 -V088 $(MID_SUBDIR)/mus_cycling.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G049 -V083 -$(MID_SUBDIR)/mus_daigo.s: %.s: %.mid +$(MID_SUBDIR)/mus_encounter_champion.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G100 -V076 -$(MID_SUBDIR)/mus_dan01.s: %.s: %.mid +$(MID_SUBDIR)/mus_petalburg_woods.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G018 -V080 -$(MID_SUBDIR)/mus_dan02.s: %.s: %.mid +$(MID_SUBDIR)/mus_abandoned_ship.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G030 -V080 -$(MID_SUBDIR)/mus_dan03.s: %.s: %.mid +$(MID_SUBDIR)/mus_cave_of_origin.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G037 -V080 -$(MID_SUBDIR)/mus_deepdeep.s: %.s: %.mid +$(MID_SUBDIR)/mus_underwater.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G057 -V094 -$(MID_SUBDIR)/mus_demo1.s: %.s: %.mid +$(MID_SUBDIR)/mus_intro.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G060 -V090 -$(MID_SUBDIR)/mus_dendou.s: %.s: %.mid +$(MID_SUBDIR)/mus_hall_of_fame.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G082 -V078 -$(MID_SUBDIR)/mus_dooro_x1.s: %.s: %.mid +$(MID_SUBDIR)/mus_route110.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G010 -V080 -$(MID_SUBDIR)/mus_dooro_x3.s: %.s: %.mid +$(MID_SUBDIR)/mus_route120.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G014 -V080 -$(MID_SUBDIR)/mus_dooro_x4.s: %.s: %.mid +$(MID_SUBDIR)/mus_route122.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G021 -V080 -$(MID_SUBDIR)/mus_dooro1.s: %.s: %.mid +$(MID_SUBDIR)/mus_route101.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G011 -V080 $(MID_SUBDIR)/mus_dummy.s: %.s: %.mid $(MID) $< $@ -E -R40 -$(MID_SUBDIR)/mus_eikou_r.s: %.s: %.mid +$(MID_SUBDIR)/mus_hall_of_fame_room.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G093 -V080 $(MID_SUBDIR)/mus_end.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G102 -V036 -$(MID_SUBDIR)/mus_event0.s: %.s: %.mid +$(MID_SUBDIR)/mus_help.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G056 -V078 -$(MID_SUBDIR)/mus_fanfa1.s: %.s: %.mid +$(MID_SUBDIR)/mus_level_up.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G012 -V090 -P5 -$(MID_SUBDIR)/mus_fanfa4.s: %.s: %.mid +$(MID_SUBDIR)/mus_obtain_item.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G012 -V090 -P5 -$(MID_SUBDIR)/mus_fanfa5.s: %.s: %.mid +$(MID_SUBDIR)/mus_evolved.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G012 -V090 -P5 -$(MID_SUBDIR)/mus_field13.s: %.s: %.mid +$(MID_SUBDIR)/mus_gsc_route38.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -V080 -$(MID_SUBDIR)/mus_finecity.s: %.s: %.mid +$(MID_SUBDIR)/mus_slateport.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G079 -V070 -$(MID_SUBDIR)/mus_friendly.s: %.s: %.mid +$(MID_SUBDIR)/mus_poke_mart.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G050 -V085 -$(MID_SUBDIR)/mus_fune_kan.s: %.s: %.mid +$(MID_SUBDIR)/mus_oceanic_museum.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G023 -V080 -$(MID_SUBDIR)/mus_gim.s: %.s: %.mid +$(MID_SUBDIR)/mus_gym.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G013 -V080 -$(MID_SUBDIR)/mus_girl_sup.s: %.s: %.mid +$(MID_SUBDIR)/mus_encounter_may.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G061 -V078 -$(MID_SUBDIR)/mus_girleye.s: %.s: %.mid +$(MID_SUBDIR)/mus_encounter_female.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G053 -V072 -$(MID_SUBDIR)/mus_gomachi0.s: %.s: %.mid +$(MID_SUBDIR)/mus_verdanturf.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G044 -V090 -$(MID_SUBDIR)/mus_gotown.s: %.s: %.mid +$(MID_SUBDIR)/mus_rustboro.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G045 -V085 -$(MID_SUBDIR)/mus_granroad.s: %.s: %.mid +$(MID_SUBDIR)/mus_route119.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G048 -V096 -$(MID_SUBDIR)/mus_hageshii.s: %.s: %.mid +$(MID_SUBDIR)/mus_encounter_psychic.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G062 -V078 -$(MID_SUBDIR)/mus_hideri.s: %.s: %.mid +$(MID_SUBDIR)/mus_weather_groudon.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G090 -V050 -$(MID_SUBDIR)/mus_hightown.s: %.s: %.mid +$(MID_SUBDIR)/mus_dewford.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G073 -V078 -$(MID_SUBDIR)/mus_hutago.s: %.s: %.mid +$(MID_SUBDIR)/mus_encounter_twins.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G095 -V075 -$(MID_SUBDIR)/mus_inter_v.s: %.s: %.mid +$(MID_SUBDIR)/mus_encounter_interviewer.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G099 -V062 -$(MID_SUBDIR)/mus_kachi1.s: %.s: %.mid +$(MID_SUBDIR)/mus_victory_trainer.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G058 -V091 -$(MID_SUBDIR)/mus_kachi2.s: %.s: %.mid +$(MID_SUBDIR)/mus_victory_wild.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G025 -V080 -$(MID_SUBDIR)/mus_kachi3.s: %.s: %.mid +$(MID_SUBDIR)/mus_victory_gym_leader.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G024 -V080 -$(MID_SUBDIR)/mus_kachi4.s: %.s: %.mid +$(MID_SUBDIR)/mus_victory_aqua_magma.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G070 -V088 -$(MID_SUBDIR)/mus_kachi5.s: %.s: %.mid +$(MID_SUBDIR)/mus_victory_league.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G029 -V080 -$(MID_SUBDIR)/mus_kachi22.s: %.s: %.mid +$(MID_SUBDIR)/mus_caught.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G025 -V080 -$(MID_SUBDIR)/mus_kakkoii.s: %.s: %.mid +$(MID_SUBDIR)/mus_encounter_cooltrainer.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G063 -V086 -$(MID_SUBDIR)/mus_karakuri.s: %.s: %.mid +$(MID_SUBDIR)/mus_trick_house.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G094 -V070 -$(MID_SUBDIR)/mus_kazanbai.s: %.s: %.mid +$(MID_SUBDIR)/mus_route113.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G064 -V084 -$(MID_SUBDIR)/mus_m_boat.s: %.s: %.mid +$(MID_SUBDIR)/mus_sailing.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G077 -V086 -$(MID_SUBDIR)/mus_m_dungon.s: %.s: %.mid +$(MID_SUBDIR)/mus_mt_pyre.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G078 -V088 -$(MID_SUBDIR)/mus_maborosi.s: %.s: %.mid +$(MID_SUBDIR)/mus_sealed_chamber.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G084 -V100 -$(MID_SUBDIR)/mus_machi_s2.s: %.s: %.mid +$(MID_SUBDIR)/mus_petalburg.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G015 -V080 -$(MID_SUBDIR)/mus_machi_s3.s: %.s: %.mid +$(MID_SUBDIR)/mus_fortree.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G032 -V080 -$(MID_SUBDIR)/mus_machi_s4.s: %.s: %.mid +$(MID_SUBDIR)/mus_oldale.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G019 -V080 -$(MID_SUBDIR)/mus_machupi.s: %.s: %.mid +$(MID_SUBDIR)/mus_mt_pyre_exterior.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G080 -V080 -$(MID_SUBDIR)/mus_me_asa.s: %.s: %.mid +$(MID_SUBDIR)/mus_heal.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G012 -V090 -P5 -$(MID_SUBDIR)/mus_me_b_big.s: %.s: %.mid +$(MID_SUBDIR)/mus_slots_jackpot.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G012 -V090 -P5 -$(MID_SUBDIR)/mus_me_b_small.s: %.s: %.mid +$(MID_SUBDIR)/mus_slots_win.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G012 -V090 -P5 -$(MID_SUBDIR)/mus_me_bachi.s: %.s: %.mid +$(MID_SUBDIR)/mus_obtain_badge.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G012 -V090 -P5 -$(MID_SUBDIR)/mus_me_kinomi.s: %.s: %.mid +$(MID_SUBDIR)/mus_obtain_berry.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G012 -V090 -P5 -$(MID_SUBDIR)/mus_me_pointget.s: %.s: %.mid +$(MID_SUBDIR)/mus_obtain_b_points.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G103 -V090 -P5 -$(MID_SUBDIR)/mus_me_rg_photo.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_photo.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G180 -V100 -P5 -$(MID_SUBDIR)/mus_me_shinka.s: %.s: %.mid +$(MID_SUBDIR)/mus_evolution_intro.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G026 -V080 -$(MID_SUBDIR)/mus_me_symbolget.s: %.s: %.mid +$(MID_SUBDIR)/mus_obtain_symbol.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G103 -V100 -P5 -$(MID_SUBDIR)/mus_me_tama.s: %.s: %.mid +$(MID_SUBDIR)/mus_awaken_legend.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G012 -V090 -P5 -$(MID_SUBDIR)/mus_me_tore_eye.s: %.s: %.mid +$(MID_SUBDIR)/mus_register_match_call.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G105 -V090 -P5 -$(MID_SUBDIR)/mus_me_wasure.s: %.s: %.mid +$(MID_SUBDIR)/mus_move_deleted.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G012 -V090 -P5 -$(MID_SUBDIR)/mus_me_waza.s: %.s: %.mid +$(MID_SUBDIR)/mus_obtain_tmhm.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G012 -V090 -P5 -$(MID_SUBDIR)/mus_me_zannen.s: %.s: %.mid +$(MID_SUBDIR)/mus_too_bad.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G012 -V090 -P5 -$(MID_SUBDIR)/mus_mgm0.s: %.s: %.mid +$(MID_SUBDIR)/mus_encounter_magma.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G087 -V072 -$(MID_SUBDIR)/mus_minamo.s: %.s: %.mid +$(MID_SUBDIR)/mus_lilycove.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G054 -V085 -$(MID_SUBDIR)/mus_mishiro.s: %.s: %.mid +$(MID_SUBDIR)/mus_littleroot.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G051 -V100 -$(MID_SUBDIR)/mus_naminori.s: %.s: %.mid +$(MID_SUBDIR)/mus_surf.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G017 -V080 -$(MID_SUBDIR)/mus_nextroad.s: %.s: %.mid +$(MID_SUBDIR)/mus_route104.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G047 -V097 -$(MID_SUBDIR)/mus_nibi.s: %.s: %.mid +$(MID_SUBDIR)/mus_gsc_pewter.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -V080 -$(MID_SUBDIR)/mus_odamaki.s: %.s: %.mid +$(MID_SUBDIR)/mus_birch_lab.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G033 -V080 -$(MID_SUBDIR)/mus_ooame.s: %.s: %.mid +$(MID_SUBDIR)/mus_abnormal_weather.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G089 -V080 -$(MID_SUBDIR)/mus_p_school.s: %.s: %.mid +$(MID_SUBDIR)/mus_school.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G081 -V100 -$(MID_SUBDIR)/mus_pcc.s: %.s: %.mid +$(MID_SUBDIR)/mus_c_comm_center.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -V080 -$(MID_SUBDIR)/mus_pokecen.s: %.s: %.mid +$(MID_SUBDIR)/mus_poke_center.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G046 -V092 -$(MID_SUBDIR)/mus_pyramid.s: %.s: %.mid +$(MID_SUBDIR)/mus_b_pyramid.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G106 -V079 -$(MID_SUBDIR)/mus_pyramid_top.s: %.s: %.mid +$(MID_SUBDIR)/mus_b_pyramid_top.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G107 -V077 -$(MID_SUBDIR)/mus_rainbow.s: %.s: %.mid +$(MID_SUBDIR)/mus_ever_grande.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G068 -V086 -$(MID_SUBDIR)/mus_rekkuu_kourin.s: %.s: %.mid +$(MID_SUBDIR)/mus_rayquaza_appears.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G109 -V090 -$(MID_SUBDIR)/mus_rg_ajito.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_rocket_hideout.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G133 -V090 -$(MID_SUBDIR)/mus_rg_annai.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_follow_me.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G131 -V068 -$(MID_SUBDIR)/mus_rg_champ_r.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_victory_road.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G154 -V090 $(MID_SUBDIR)/mus_rg_cycling.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G141 -V090 -$(MID_SUBDIR)/mus_rg_demo.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_intro_fight.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G136 -V090 -$(MID_SUBDIR)/mus_rg_dendou.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_hall_of_fame.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G145 -V079 -$(MID_SUBDIR)/mus_rg_deoeye.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_encounter_deoxys.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G184 -V079 -$(MID_SUBDIR)/mus_rg_ending.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_credits.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G149 -V090 -$(MID_SUBDIR)/mus_rg_exeye.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_encounter_gym_leader.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G144 -V090 -$(MID_SUBDIR)/mus_rg_fan2.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_dex_rating.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G175 -V070 -P5 -$(MID_SUBDIR)/mus_rg_fan5.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_obtain_key_item.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G178 -V077 -P5 -$(MID_SUBDIR)/mus_rg_fan6.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_caught_intro.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G179 -V094 -P5 -$(MID_SUBDIR)/mus_rg_get_yasei.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_caught.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G170 -V100 -$(MID_SUBDIR)/mus_rg_guren.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_cinnabar.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G138 -V090 $(MID_SUBDIR)/mus_rg_gym.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G134 -V090 -$(MID_SUBDIR)/mus_rg_hanada.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_fuchsia.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G167 -V090 -$(MID_SUBDIR)/mus_rg_jump.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_poke_jump.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G132 -V090 -$(MID_SUBDIR)/mus_rg_kaihuku.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_heal.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G140 -V090 -$(MID_SUBDIR)/mus_rg_kenkyu.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_oak_lab.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G160 -V075 -$(MID_SUBDIR)/mus_rg_kinomikui.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_berry_pick.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G132 -V090 -$(MID_SUBDIR)/mus_rg_kuchiba.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_vermillion.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G172 -V090 -$(MID_SUBDIR)/mus_rg_load01.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_route1.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G150 -V079 -$(MID_SUBDIR)/mus_rg_load02.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_route3.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G152 -V083 -$(MID_SUBDIR)/mus_rg_load03.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_route11.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G153 -V090 -$(MID_SUBDIR)/mus_rg_masara.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_pallet.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G159 -V100 -$(MID_SUBDIR)/mus_rg_naminori.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_surf.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G164 -V071 -$(MID_SUBDIR)/mus_rg_nana45.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_sevii_45.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G188 -V084 -$(MID_SUBDIR)/mus_rg_nana67.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_sevii_67.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G189 -V084 -$(MID_SUBDIR)/mus_rg_nana123.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_sevii_123.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G173 -V084 -$(MID_SUBDIR)/mus_rg_nanadungeon.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_sevii_cave.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G147 -V090 -$(MID_SUBDIR)/mus_rg_nanaiseki.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_sevii_dungeon.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G146 -V090 -$(MID_SUBDIR)/mus_rg_nanashima.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_sevii_route.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G187 -V080 -$(MID_SUBDIR)/mus_rg_network.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_net_center.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G162 -V096 -$(MID_SUBDIR)/mus_rg_nibi.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_pewter.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G173 -V084 -$(MID_SUBDIR)/mus_rg_ohkido.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_oak.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G161 -V086 -$(MID_SUBDIR)/mus_rg_okurimono.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_mystery_gift.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G183 -V100 -$(MID_SUBDIR)/mus_rg_opening.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_route24.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G151 -V086 -$(MID_SUBDIR)/mus_rg_oshie_tv.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_teachy_tv_show.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G131 -V068 -$(MID_SUBDIR)/mus_rg_otsukimi.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_mt_moon.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G147 -V090 -$(MID_SUBDIR)/mus_rg_p_tower.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_poke_tower.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G165 -V090 -$(MID_SUBDIR)/mus_rg_pokecen.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_poke_center.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G162 -V096 -$(MID_SUBDIR)/mus_rg_pokefue.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_poke_flute.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G165 -V048 -P5 -$(MID_SUBDIR)/mus_rg_pokeyashi.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_poke_mansion.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G148 -V090 -$(MID_SUBDIR)/mus_rg_purin.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_jigglypuff.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G135 -V068 -P5 -$(MID_SUBDIR)/mus_rg_rival1.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_encounter_rival.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G174 -V079 -$(MID_SUBDIR)/mus_rg_rival2.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_rival_exit.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G174 -V079 -$(MID_SUBDIR)/mus_rg_rocket.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_encounter_rocket.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G142 -V096 -$(MID_SUBDIR)/mus_rg_santoan.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_ss_anne.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G163 -V090 -$(MID_SUBDIR)/mus_rg_seibetu.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_new_game_exit.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G182 -V088 -$(MID_SUBDIR)/mus_rg_sekaikan.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_new_game_intro.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G182 -V088 -$(MID_SUBDIR)/mus_rg_shion.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_lavender.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G139 -V090 -$(MID_SUBDIR)/mus_rg_shiruhu.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_silph.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G166 -V076 -$(MID_SUBDIR)/mus_rg_shoujo.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_encounter_girl.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G143 -V051 -$(MID_SUBDIR)/mus_rg_shounen.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_encounter_boy.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G144 -V090 -$(MID_SUBDIR)/mus_rg_slot.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_game_corner.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G132 -V090 -$(MID_SUBDIR)/mus_rg_slowmasara.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_slow_pallet.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G159 -V092 -$(MID_SUBDIR)/mus_rg_sousa.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_new_game_instruct.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G182 -V085 -$(MID_SUBDIR)/mus_rg_t_mori.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_viridian_forest.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G146 -V090 -$(MID_SUBDIR)/mus_rg_t_tower.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_trainer_tower.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G134 -V090 -$(MID_SUBDIR)/mus_rg_tamamusi.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_celadon.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G168 -V070 $(MID_SUBDIR)/mus_rg_title.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G137 -V090 -$(MID_SUBDIR)/mus_rg_titlerog.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_game_freak.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G181 -V075 -$(MID_SUBDIR)/mus_rg_tvnoize.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_teachy_tv_menu.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G186 -V059 -$(MID_SUBDIR)/mus_rg_union.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_union_room.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G132 -V090 -$(MID_SUBDIR)/mus_rg_vs_den.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_vs_legend.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G157 -V090 -$(MID_SUBDIR)/mus_rg_vs_deo.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_vs_deoxys.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G185 -V080 -$(MID_SUBDIR)/mus_rg_vs_gym.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_vs_gym_leader.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G155 -V090 -$(MID_SUBDIR)/mus_rg_vs_last.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_vs_champion.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G158 -V090 -$(MID_SUBDIR)/mus_rg_vs_myu2.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_vs_mewtwo.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G157 -V090 -$(MID_SUBDIR)/mus_rg_vs_tore.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_vs_trainer.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G156 -V090 -$(MID_SUBDIR)/mus_rg_vs_yasei.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_vs_wild.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G157 -V090 -$(MID_SUBDIR)/mus_rg_win_gym.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_victory_gym_leader.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G171 -V090 -$(MID_SUBDIR)/mus_rg_win_tre.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_victory_trainer.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G169 -V089 -$(MID_SUBDIR)/mus_rg_win_yasei.s: %.s: %.mid +$(MID_SUBDIR)/mus_rg_victory_wild.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G170 -V090 -$(MID_SUBDIR)/mus_ropeway.s: %.s: %.mid +$(MID_SUBDIR)/mus_cable_car.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G071 -V078 -$(MID_SUBDIR)/mus_runecity.s: %.s: %.mid +$(MID_SUBDIR)/mus_sootopolis.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G091 -V062 -$(MID_SUBDIR)/mus_safari.s: %.s: %.mid +$(MID_SUBDIR)/mus_safari_zone.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G074 -V082 -$(MID_SUBDIR)/mus_sattower.s: %.s: %.mid +$(MID_SUBDIR)/mus_b_tower.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G110 -V100 -$(MID_SUBDIR)/mus_shinka.s: %.s: %.mid +$(MID_SUBDIR)/mus_evolution.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G026 -V080 -$(MID_SUBDIR)/mus_sitennou.s: %.s: %.mid +$(MID_SUBDIR)/mus_encounter_elite_four.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G096 -V078 -$(MID_SUBDIR)/mus_suikun.s: %.s: %.mid +$(MID_SUBDIR)/mus_c_vs_legend_beast.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -V080 -$(MID_SUBDIR)/mus_swimeye.s: %.s: %.mid +$(MID_SUBDIR)/mus_encounter_swimmer.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G036 -V080 -$(MID_SUBDIR)/mus_syoujoeye.s: %.s: %.mid +$(MID_SUBDIR)/mus_encounter_girl.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G027 -V080 -$(MID_SUBDIR)/mus_t_battle.s: %.s: %.mid +$(MID_SUBDIR)/mus_intro_battle.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G088 -V088 -$(MID_SUBDIR)/mus_test.s: %.s: %.mid +$(MID_SUBDIR)/mus_encounter_gentleman.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G043 -V094 -$(MID_SUBDIR)/mus_test1.s: %.s: %.mid +$(MID_SUBDIR)/mus_link_contest_p1.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G039 -V079 -$(MID_SUBDIR)/mus_test2.s: %.s: %.mid +$(MID_SUBDIR)/mus_link_contest_p2.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G040 -V090 -$(MID_SUBDIR)/mus_test3.s: %.s: %.mid +$(MID_SUBDIR)/mus_link_contest_p3.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G041 -V075 -$(MID_SUBDIR)/mus_test4.s: %.s: %.mid +$(MID_SUBDIR)/mus_link_contest_p4.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G042 -V090 -$(MID_SUBDIR)/mus_tetsuji.s: %.s: %.mid +$(MID_SUBDIR)/mus_littleroot_test.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G034 -V099 -$(MID_SUBDIR)/mus_thankfor.s: %.s: %.mid +$(MID_SUBDIR)/mus_credits.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G101 -V100 -$(MID_SUBDIR)/mus_title3.s: %.s: %.mid +$(MID_SUBDIR)/mus_title.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G059 -V090 -$(MID_SUBDIR)/mus_tonekusa.s: %.s: %.mid +$(MID_SUBDIR)/mus_fallarbor.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G083 -V100 -$(MID_SUBDIR)/mus_tozan.s: %.s: %.mid +$(MID_SUBDIR)/mus_mt_chimney.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G052 -V078 -$(MID_SUBDIR)/mus_tsuretek.s: %.s: %.mid +$(MID_SUBDIR)/mus_follow_me.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G066 -V074 -$(MID_SUBDIR)/mus_vs_front.s: %.s: %.mid +$(MID_SUBDIR)/mus_vs_frontier_brain.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G115 -V090 -P1 $(MID_SUBDIR)/mus_vs_mew.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G116 -V090 -$(MID_SUBDIR)/mus_vs_rekku.s: %.s: %.mid +$(MID_SUBDIR)/mus_vs_rayquaza.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G114 -V080 -P1 -$(MID_SUBDIR)/mus_yama_eye.s: %.s: %.mid +$(MID_SUBDIR)/mus_encounter_hiker.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G097 -V076 $(MID_SUBDIR)/ph_choice_blend.s: %.s: %.mid @@ -789,64 +789,64 @@ $(MID_SUBDIR)/ph_trap_solo.s: %.s: %.mid $(MID_SUBDIR)/se_a.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V095 -P4 -$(MID_SUBDIR)/se_ban.s: %.s: %.mid +$(MID_SUBDIR)/se_bang.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P4 -$(MID_SUBDIR)/se_basabasa.s: %.s: %.mid +$(MID_SUBDIR)/se_taillow_wing_flap.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V105 -P5 -$(MID_SUBDIR)/se_bidoro.s: %.s: %.mid +$(MID_SUBDIR)/se_glass_flute.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V105 -P5 $(MID_SUBDIR)/se_boo.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V110 -P4 -$(MID_SUBDIR)/se_bowa.s: %.s: %.mid +$(MID_SUBDIR)/se_ball.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V070 -P4 -$(MID_SUBDIR)/se_bowa2.s: %.s: %.mid +$(MID_SUBDIR)/se_ball_open.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V100 -P5 -$(MID_SUBDIR)/se_bt_start.s: %.s: %.mid +$(MID_SUBDIR)/se_mugshot.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V090 -P5 -$(MID_SUBDIR)/se_c_gaji.s: %.s: %.mid +$(MID_SUBDIR)/se_contest_heart.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V090 -P5 -$(MID_SUBDIR)/se_c_maku_d.s: %.s: %.mid +$(MID_SUBDIR)/se_contest_curtain_fall.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V070 -P5 -$(MID_SUBDIR)/se_c_maku_u.s: %.s: %.mid +$(MID_SUBDIR)/se_contest_curtain_rise.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V070 -P5 -$(MID_SUBDIR)/se_c_pasi.s: %.s: %.mid +$(MID_SUBDIR)/se_contest_icon_change.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P5 -$(MID_SUBDIR)/se_c_pikon.s: %.s: %.mid +$(MID_SUBDIR)/se_contest_mons_turn.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V090 -P5 -$(MID_SUBDIR)/se_c_syu.s: %.s: %.mid +$(MID_SUBDIR)/se_contest_icon_clear.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V090 -P5 $(MID_SUBDIR)/se_card.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V100 -P4 -$(MID_SUBDIR)/se_curtain.s: %.s: %.mid +$(MID_SUBDIR)/se_pike_curtain_open.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G129 -P5 -$(MID_SUBDIR)/se_curtain1.s: %.s: %.mid +$(MID_SUBDIR)/se_pike_curtain_close.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G129 -P5 -$(MID_SUBDIR)/se_dansa.s: %.s: %.mid +$(MID_SUBDIR)/se_ledge.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V100 -P4 -$(MID_SUBDIR)/se_daugi.s: %.s: %.mid +$(MID_SUBDIR)/se_itemfinder.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V090 -P5 -$(MID_SUBDIR)/se_dendou.s: %.s: %.mid +$(MID_SUBDIR)/se_applause.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V100 -P5 -$(MID_SUBDIR)/se_doku.s: %.s: %.mid +$(MID_SUBDIR)/se_field_poison.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V110 -P5 $(MID_SUBDIR)/se_door.s: %.s: %.mid @@ -855,127 +855,127 @@ $(MID_SUBDIR)/se_door.s: %.s: %.mid $(MID_SUBDIR)/se_e.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V120 -P4 -$(MID_SUBDIR)/se_elebeta.s: %.s: %.mid +$(MID_SUBDIR)/se_elevator.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V100 -P4 -$(MID_SUBDIR)/se_esuka.s: %.s: %.mid +$(MID_SUBDIR)/se_escalator.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V100 -P4 $(MID_SUBDIR)/se_exp.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V080 -P5 -$(MID_SUBDIR)/se_expmax.s: %.s: %.mid +$(MID_SUBDIR)/se_exp_max.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V094 -P5 $(MID_SUBDIR)/se_fu_zaku.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V120 -P4 -$(MID_SUBDIR)/se_fu_zaku2.s: %.s: %.mid +$(MID_SUBDIR)/se_contest_condition_lose.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V110 -P4 -$(MID_SUBDIR)/se_fu_zuzuzu.s: %.s: %.mid +$(MID_SUBDIR)/se_lavaridge_fall_warp.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G127 -P4 -$(MID_SUBDIR)/se_fuusen1.s: %.s: %.mid +$(MID_SUBDIR)/se_balloon_red.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V105 -P4 -$(MID_SUBDIR)/se_fuusen2.s: %.s: %.mid +$(MID_SUBDIR)/se_balloon_blue.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V105 -P4 -$(MID_SUBDIR)/se_fuusen3.s: %.s: %.mid +$(MID_SUBDIR)/se_balloon_yellow.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V105 -P4 -$(MID_SUBDIR)/se_hantei1.s: %.s: %.mid +$(MID_SUBDIR)/se_arena_timeup1.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G129 -P5 -$(MID_SUBDIR)/se_hantei2.s: %.s: %.mid +$(MID_SUBDIR)/se_arena_timeup2.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G129 -P5 -$(MID_SUBDIR)/se_hashi.s: %.s: %.mid +$(MID_SUBDIR)/se_bridge_walk.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V095 -P4 -$(MID_SUBDIR)/se_hazure.s: %.s: %.mid +$(MID_SUBDIR)/se_failure.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V120 -P4 -$(MID_SUBDIR)/se_hi_turun.s: %.s: %.mid +$(MID_SUBDIR)/se_rotating_gate.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V090 -P4 -$(MID_SUBDIR)/se_hinsi.s: %.s: %.mid +$(MID_SUBDIR)/se_low_health.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V100 -P3 $(MID_SUBDIR)/se_i.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V120 -P4 -$(MID_SUBDIR)/se_jido_doa.s: %.s: %.mid +$(MID_SUBDIR)/se_sliding_door.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V095 -P4 -$(MID_SUBDIR)/se_jihanki.s: %.s: %.mid +$(MID_SUBDIR)/se_vend.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P4 -$(MID_SUBDIR)/se_jite_pyoko.s: %.s: %.mid +$(MID_SUBDIR)/se_bike_hop.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V090 -P4 -$(MID_SUBDIR)/se_jitensya.s: %.s: %.mid +$(MID_SUBDIR)/se_bike_bell.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V090 -P4 -$(MID_SUBDIR)/se_jyuni.s: %.s: %.mid +$(MID_SUBDIR)/se_contest_place.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V110 -P4 -$(MID_SUBDIR)/se_kaidan.s: %.s: %.mid +$(MID_SUBDIR)/se_exit.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V120 -P5 -$(MID_SUBDIR)/se_kaifuku.s: %.s: %.mid +$(MID_SUBDIR)/se_use_item.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V100 -P5 -$(MID_SUBDIR)/se_ki_gasyan.s: %.s: %.mid +$(MID_SUBDIR)/se_unlock.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V100 -P4 -$(MID_SUBDIR)/se_kon.s: %.s: %.mid +$(MID_SUBDIR)/se_ball_bounce_1.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V100 -P4 -$(MID_SUBDIR)/se_kon2.s: %.s: %.mid +$(MID_SUBDIR)/se_ball_bounce_2.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V100 -P4 -$(MID_SUBDIR)/se_kon3.s: %.s: %.mid +$(MID_SUBDIR)/se_ball_bounce_3.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V100 -P4 -$(MID_SUBDIR)/se_kon4.s: %.s: %.mid +$(MID_SUBDIR)/se_ball_bounce_4.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V100 -P4 -$(MID_SUBDIR)/se_kouka_h.s: %.s: %.mid +$(MID_SUBDIR)/se_super_effective.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V110 -P5 -$(MID_SUBDIR)/se_kouka_l.s: %.s: %.mid +$(MID_SUBDIR)/se_not_effective.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V110 -P5 -$(MID_SUBDIR)/se_kouka_m.s: %.s: %.mid +$(MID_SUBDIR)/se_effective.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V110 -P5 -$(MID_SUBDIR)/se_mizu.s: %.s: %.mid +$(MID_SUBDIR)/se_puddle.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V020 -P4 -$(MID_SUBDIR)/se_moter.s: %.s: %.mid +$(MID_SUBDIR)/se_berry_blender.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V090 -P4 -$(MID_SUBDIR)/se_mu_pachi.s: %.s: %.mid +$(MID_SUBDIR)/se_switch.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V100 -P4 $(MID_SUBDIR)/se_n.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -P4 -$(MID_SUBDIR)/se_nageru.s: %.s: %.mid +$(MID_SUBDIR)/se_ball_throw.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V120 -P5 -$(MID_SUBDIR)/se_naminori.s: %.s: %.mid +$(MID_SUBDIR)/se_ship.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V075 -P4 -$(MID_SUBDIR)/se_nigeru.s: %.s: %.mid +$(MID_SUBDIR)/se_flee.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V090 -P5 $(MID_SUBDIR)/se_o.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V120 -P4 -$(MID_SUBDIR)/se_op_basyu.s: %.s: %.mid +$(MID_SUBDIR)/se_intro_blast.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V100 -P5 $(MID_SUBDIR)/se_pc_login.s: %.s: %.mid @@ -990,275 +990,275 @@ $(MID_SUBDIR)/se_pc_on.s: %.s: %.mid $(MID_SUBDIR)/se_pin.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V060 -P4 -$(MID_SUBDIR)/se_pinpon.s: %.s: %.mid +$(MID_SUBDIR)/se_ding_dong.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V090 -P5 -$(MID_SUBDIR)/se_pn_off.s: %.s: %.mid +$(MID_SUBDIR)/se_pokenav_off.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V100 -P5 -$(MID_SUBDIR)/se_pn_on.s: %.s: %.mid +$(MID_SUBDIR)/se_pokenav_on.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V100 -P5 -$(MID_SUBDIR)/se_poke_dead.s: %.s: %.mid +$(MID_SUBDIR)/se_faint.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V110 -P5 -$(MID_SUBDIR)/se_reapoke.s: %.s: %.mid +$(MID_SUBDIR)/se_shiny.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V095 -P5 -$(MID_SUBDIR)/se_regi.s: %.s: %.mid +$(MID_SUBDIR)/se_shop.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V090 -P5 -$(MID_SUBDIR)/se_rg_bag1.s: %.s: %.mid +$(MID_SUBDIR)/se_rg_bag_cursor.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G129 -P5 -$(MID_SUBDIR)/se_rg_bag2.s: %.s: %.mid +$(MID_SUBDIR)/se_rg_bag_pocket.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G129 -P5 -$(MID_SUBDIR)/se_rg_card1.s: %.s: %.mid +$(MID_SUBDIR)/se_rg_card_flip.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G129 -P5 -$(MID_SUBDIR)/se_rg_card2.s: %.s: %.mid +$(MID_SUBDIR)/se_rg_card_flipping.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G129 -P5 -$(MID_SUBDIR)/se_rg_card3.s: %.s: %.mid +$(MID_SUBDIR)/se_rg_card_open.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G129 -V112 -P5 -$(MID_SUBDIR)/se_rg_deomov.s: %.s: %.mid +$(MID_SUBDIR)/se_rg_deoxys_move.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G129 -V080 -P5 -$(MID_SUBDIR)/se_rg_excellent.s: %.s: %.mid +$(MID_SUBDIR)/se_rg_poke_jump_success.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P5 -$(MID_SUBDIR)/se_rg_getting.s: %.s: %.mid +$(MID_SUBDIR)/se_rg_ball_click.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G129 -V100 -P5 -$(MID_SUBDIR)/se_rg_help_cl.s: %.s: %.mid +$(MID_SUBDIR)/se_rg_help_close.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G129 -V095 -P5 -$(MID_SUBDIR)/se_rg_help_ng.s: %.s: %.mid +$(MID_SUBDIR)/se_rg_help_error.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G129 -V125 -P5 -$(MID_SUBDIR)/se_rg_help_op.s: %.s: %.mid +$(MID_SUBDIR)/se_rg_help_open.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G129 -V096 -P5 -$(MID_SUBDIR)/se_rg_kiteki.s: %.s: %.mid +$(MID_SUBDIR)/se_rg_ss_anne_horn.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G129 -V096 -P5 -$(MID_SUBDIR)/se_rg_nawamiss.s: %.s: %.mid +$(MID_SUBDIR)/se_rg_poke_jump_failure.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G127 -P5 $(MID_SUBDIR)/se_rg_shop.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G129 -V080 -P5 -$(MID_SUBDIR)/se_rg_w_door.s: %.s: %.mid +$(MID_SUBDIR)/se_rg_door.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G129 -V100 -P5 -$(MID_SUBDIR)/se_ru_bari.s: %.s: %.mid +$(MID_SUBDIR)/se_ice_crack.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V100 -P4 -$(MID_SUBDIR)/se_ru_gashin.s: %.s: %.mid +$(MID_SUBDIR)/se_ice_stairs.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V090 -P4 -$(MID_SUBDIR)/se_ru_gasyan.s: %.s: %.mid +$(MID_SUBDIR)/se_ice_break.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V100 -P4 -$(MID_SUBDIR)/se_ru_hyuu.s: %.s: %.mid +$(MID_SUBDIR)/se_fall.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P4 $(MID_SUBDIR)/se_save.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V080 -P5 -$(MID_SUBDIR)/se_seikai.s: %.s: %.mid +$(MID_SUBDIR)/se_success.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V080 -P4 $(MID_SUBDIR)/se_select.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V080 -P5 -$(MID_SUBDIR)/se_suikomu.s: %.s: %.mid +$(MID_SUBDIR)/se_ball_trade.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V100 -P5 -$(MID_SUBDIR)/se_t_ame.s: %.s: %.mid +$(MID_SUBDIR)/se_thunderstorm.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V080 -P2 -$(MID_SUBDIR)/se_t_ame_e.s: %.s: %.mid +$(MID_SUBDIR)/se_thunderstorm_stop.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V080 -P2 -$(MID_SUBDIR)/se_t_kami.s: %.s: %.mid +$(MID_SUBDIR)/se_thunder.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P3 -$(MID_SUBDIR)/se_t_kami2.s: %.s: %.mid +$(MID_SUBDIR)/se_thunder2.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P3 -$(MID_SUBDIR)/se_t_koame.s: %.s: %.mid +$(MID_SUBDIR)/se_rain.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V080 -P2 -$(MID_SUBDIR)/se_t_koame_e.s: %.s: %.mid +$(MID_SUBDIR)/se_rain_stop.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V080 -P2 -$(MID_SUBDIR)/se_t_ooame.s: %.s: %.mid +$(MID_SUBDIR)/se_downpour.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V100 -P2 -$(MID_SUBDIR)/se_t_ooame_e.s: %.s: %.mid +$(MID_SUBDIR)/se_downpour_stop.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V100 -P2 -$(MID_SUBDIR)/se_tama.s: %.s: %.mid +$(MID_SUBDIR)/se_orb.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V100 -P5 -$(MID_SUBDIR)/se_tamago.s: %.s: %.mid +$(MID_SUBDIR)/se_egg_hatch.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V120 -P5 -$(MID_SUBDIR)/se_tamakoro.s: %.s: %.mid +$(MID_SUBDIR)/se_roulette_ball.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P2 -$(MID_SUBDIR)/se_tamakoro_e.s: %.s: %.mid +$(MID_SUBDIR)/se_roulette_ball2.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P2 -$(MID_SUBDIR)/se_tb_kara.s: %.s: %.mid +$(MID_SUBDIR)/se_ball_tray_exit.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V100 -P5 -$(MID_SUBDIR)/se_tb_kon.s: %.s: %.mid +$(MID_SUBDIR)/se_ball_tray_ball.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P5 -$(MID_SUBDIR)/se_tb_start.s: %.s: %.mid +$(MID_SUBDIR)/se_ball_tray_enter.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P5 -$(MID_SUBDIR)/se_tk_kasya.s: %.s: %.mid +$(MID_SUBDIR)/se_click.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V110 -P4 -$(MID_SUBDIR)/se_tk_warpin.s: %.s: %.mid +$(MID_SUBDIR)/se_warp_in.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V090 -P4 -$(MID_SUBDIR)/se_tk_warpout.s: %.s: %.mid +$(MID_SUBDIR)/se_warp_out.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V090 -P4 -$(MID_SUBDIR)/se_toreeye.s: %.s: %.mid +$(MID_SUBDIR)/se_pokenav_call.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G129 -V120 -P5 -$(MID_SUBDIR)/se_toreoff.s: %.s: %.mid +$(MID_SUBDIR)/se_pokenav_hang_up.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G129 -V110 -P5 -$(MID_SUBDIR)/se_toy_a.s: %.s: %.mid +$(MID_SUBDIR)/se_note_a.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P4 -$(MID_SUBDIR)/se_toy_b.s: %.s: %.mid +$(MID_SUBDIR)/se_note_b.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P4 -$(MID_SUBDIR)/se_toy_c.s: %.s: %.mid +$(MID_SUBDIR)/se_note_c.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P4 -$(MID_SUBDIR)/se_toy_c1.s: %.s: %.mid +$(MID_SUBDIR)/se_note_c_high.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P4 -$(MID_SUBDIR)/se_toy_d.s: %.s: %.mid +$(MID_SUBDIR)/se_note_d.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P4 -$(MID_SUBDIR)/se_toy_dango.s: %.s: %.mid +$(MID_SUBDIR)/se_mud_ball.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P4 -$(MID_SUBDIR)/se_toy_e.s: %.s: %.mid +$(MID_SUBDIR)/se_note_e.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P4 -$(MID_SUBDIR)/se_toy_f.s: %.s: %.mid +$(MID_SUBDIR)/se_note_f.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P4 -$(MID_SUBDIR)/se_toy_g.s: %.s: %.mid +$(MID_SUBDIR)/se_note_g.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P4 -$(MID_SUBDIR)/se_toy_kabe.s: %.s: %.mid +$(MID_SUBDIR)/se_breakable_door.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P4 -$(MID_SUBDIR)/se_track_door.s: %.s: %.mid +$(MID_SUBDIR)/se_truck_door.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P4 -$(MID_SUBDIR)/se_track_haiki.s: %.s: %.mid +$(MID_SUBDIR)/se_truck_unload.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G127 -P4 -$(MID_SUBDIR)/se_track_move.s: %.s: %.mid +$(MID_SUBDIR)/se_truck_move.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -P4 -$(MID_SUBDIR)/se_track_stop.s: %.s: %.mid +$(MID_SUBDIR)/se_truck_stop.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -P4 -$(MID_SUBDIR)/se_tu_saa.s: %.s: %.mid +$(MID_SUBDIR)/se_repel.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V090 -P4 $(MID_SUBDIR)/se_u.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -P4 -$(MID_SUBDIR)/se_ussoki.s: %.s: %.mid +$(MID_SUBDIR)/se_sudowoodo_shake.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G129 -V077 -P5 -$(MID_SUBDIR)/se_w003.s: %.s: %.mid +$(MID_SUBDIR)/se_m_double_slap.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P4 -$(MID_SUBDIR)/se_w004.s: %.s: %.mid +$(MID_SUBDIR)/se_m_comet_punch.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V120 -P4 -$(MID_SUBDIR)/se_w006.s: %.s: %.mid +$(MID_SUBDIR)/se_m_pay_day.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V095 -P4 -$(MID_SUBDIR)/se_w007.s: %.s: %.mid +$(MID_SUBDIR)/se_m_fire_punch.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P4 -$(MID_SUBDIR)/se_w010.s: %.s: %.mid +$(MID_SUBDIR)/se_m_scratch.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P4 -$(MID_SUBDIR)/se_w011.s: %.s: %.mid +$(MID_SUBDIR)/se_m_vicegrip.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P4 -$(MID_SUBDIR)/se_w013.s: %.s: %.mid +$(MID_SUBDIR)/se_m_razor_wind.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P4 -$(MID_SUBDIR)/se_w013b.s: %.s: %.mid +$(MID_SUBDIR)/se_m_razor_wind2.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V090 -P4 -$(MID_SUBDIR)/se_w014.s: %.s: %.mid +$(MID_SUBDIR)/se_m_swords_dance.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V100 -P4 -$(MID_SUBDIR)/se_w015.s: %.s: %.mid +$(MID_SUBDIR)/se_m_cut.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V120 -P4 -$(MID_SUBDIR)/se_w016.s: %.s: %.mid +$(MID_SUBDIR)/se_m_gust.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P4 -$(MID_SUBDIR)/se_w016b.s: %.s: %.mid +$(MID_SUBDIR)/se_m_gust2.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P4 -$(MID_SUBDIR)/se_w017.s: %.s: %.mid +$(MID_SUBDIR)/se_m_wing_attack.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V105 -P4 -$(MID_SUBDIR)/se_w019.s: %.s: %.mid +$(MID_SUBDIR)/se_m_fly.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P4 -$(MID_SUBDIR)/se_w020.s: %.s: %.mid +$(MID_SUBDIR)/se_m_bind.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V100 -P4 -$(MID_SUBDIR)/se_w025.s: %.s: %.mid +$(MID_SUBDIR)/se_m_mega_kick.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V090 -P4 -$(MID_SUBDIR)/se_w025b.s: %.s: %.mid +$(MID_SUBDIR)/se_m_mega_kick2.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P4 -$(MID_SUBDIR)/se_w026.s: %.s: %.mid +$(MID_SUBDIR)/se_m_jump_kick.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P4 -$(MID_SUBDIR)/se_w028.s: %.s: %.mid +$(MID_SUBDIR)/se_m_sand_attack.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P4 -$(MID_SUBDIR)/se_w029.s: %.s: %.mid +$(MID_SUBDIR)/se_m_headbutt.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P4 -$(MID_SUBDIR)/se_w030.s: %.s: %.mid +$(MID_SUBDIR)/se_m_horn_attack.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P4 -$(MID_SUBDIR)/se_w036.s: %.s: %.mid +$(MID_SUBDIR)/se_m_take_down.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V105 -P4 -$(MID_SUBDIR)/se_w039.s: %.s: %.mid +$(MID_SUBDIR)/se_m_tail_whip.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P4 -$(MID_SUBDIR)/se_w043.s: %.s: %.mid +$(MID_SUBDIR)/se_m_leer.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P4 -$(MID_SUBDIR)/se_z_search.s: %.s: %.mid +$(MID_SUBDIR)/se_dex_search.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G127 -v100 -P5 diff --git a/sound/song_table.inc b/sound/song_table.inc index 42e62b832f..a6695ee278 100644 --- a/sound/song_table.inc +++ b/sound/song_table.inc @@ -2,275 +2,275 @@ gSongTable:: @ 86B49F0 song mus_dummy, 0, 0 - song se_kaifuku, 1, 1 @ Healing Item - song se_pc_login, 1, 1 @ PC Login - song se_pc_off, 1, 1 @ PC Shutdown - song se_pc_on, 1, 1 @ PC Startup - song se_select, 2, 2 @ Cursor Selection - song se_win_open, 1, 1 @ Start Menu - song se_wall_hit, 2, 2 @ Wall Bump - song se_door, 1, 1 @ Opening Door - song se_kaidan, 1, 1 @ Stairs - song se_dansa, 1, 1 @ Ledge - song se_jitensya, 1, 1 @ Bicycle Bell - song se_kouka_l, 1, 1 @ Not Very Effective - song se_kouka_m, 1, 1 @ Normal Effectiveness - song se_kouka_h, 1, 1 @ Super Effective - song se_bowa2, 1, 1 @ Pokémon Withdrawal - song se_poke_dead, 1, 1 @ Pokémon Fainted - song se_nigeru, 1, 1 @ Flee from Wild Battle - song se_jido_doa, 1, 1 @ Pokémon Center Door - song se_naminori, 1, 1 @ Briney's Ship - song se_ban, 1, 1 @ Bang - song se_pin, 1, 1 @ Exclamation Bubble - song se_boo, 1, 1 @ Contest Jam - song se_bowa, 1, 1 @ Giving Poké Ball to Nurse, Poké Ball Wiggle - song se_jyuni, 2, 2 @ Contest - Rankings Revealed - song se_a, 1, 1 @ Bard A - song se_i, 1, 1 @ Bard I - song se_u, 1, 1 @ Bard U - song se_e, 1, 1 @ Bard E - song se_o, 1, 1 @ Bard O - song se_n, 1, 1 @ Bard N - song se_seikai, 1, 1 @ Success - song se_hazure, 1, 1 @ Failure - song se_exp, 1, 1 @ Exp. Bar - song se_jite_pyoko, 1, 1 @ Bunny Hop - song se_mu_pachi, 1, 1 @ Toggle Switch - song se_tk_kasya, 1, 1 @ Mossdeep Gym/Trick House Switch + song se_use_item, 1, 1 + song se_pc_login, 1, 1 + song se_pc_off, 1, 1 + song se_pc_on, 1, 1 + song se_select, 2, 2 + song se_win_open, 1, 1 + song se_wall_hit, 2, 2 + song se_door, 1, 1 + song se_exit, 1, 1 + song se_ledge, 1, 1 + song se_bike_bell, 1, 1 + song se_not_effective, 1, 1 + song se_effective, 1, 1 + song se_super_effective, 1, 1 + song se_ball_open, 1, 1 + song se_faint, 1, 1 + song se_flee, 1, 1 + song se_sliding_door, 1, 1 + song se_ship, 1, 1 + song se_bang, 1, 1 + song se_pin, 1, 1 + song se_boo, 1, 1 + song se_ball, 1, 1 + song se_contest_place, 2, 2 + song se_a, 1, 1 + song se_i, 1, 1 + song se_u, 1, 1 + song se_e, 1, 1 + song se_o, 1, 1 + song se_n, 1, 1 + song se_success, 1, 1 + song se_failure, 1, 1 + song se_exp, 1, 1 + song se_bike_hop, 1, 1 + song se_switch, 1, 1 + song se_click, 1, 1 song se_fu_zaku, 1, 1 - song se_fu_zaku2, 1, 1 - song se_fu_zuzuzu, 1, 1 @ Lavaridge Gym - Warp - song se_ru_gashin, 1, 1 @ Sootopolis Gym - Stairs Appear - song se_ru_gasyan, 1, 1 @ Sootopolis Gym - Ice Breaking - song se_ru_bari, 1, 1 @ Sootopolis Gym - Walking on Ice - song se_ru_hyuu, 1, 1 @ Falling Down a Hole - song se_ki_gasyan, 2, 2 - song se_tk_warpin, 1, 1 @ Warp In - song se_tk_warpout, 1, 1 @ Warp Out - song se_tu_saa, 1, 1 @ Repel - song se_hi_turun, 1, 1 @ Fortree Gym - Obstacle - song se_track_move, 1, 1 @ Moving Truck - song se_track_stop, 1, 1 @ Moving Truck Stop - song se_track_haiki, 2, 2 @ Moving Truck Unload - song se_track_door, 1, 1 @ Moving Truck Door - song se_moter, 2, 2 + song se_contest_condition_lose, 1, 1 + song se_lavaridge_fall_warp, 1, 1 + song se_ice_stairs, 1, 1 + song se_ice_break, 1, 1 + song se_ice_crack, 1, 1 + song se_fall, 1, 1 + song se_unlock, 2, 2 + song se_warp_in, 1, 1 + song se_warp_out, 1, 1 + song se_repel, 1, 1 + song se_rotating_gate, 1, 1 + song se_truck_move, 1, 1 + song se_truck_stop, 1, 1 + song se_truck_unload, 2, 2 + song se_truck_door, 1, 1 + song se_berry_blender, 2, 2 song se_card, 1, 1 - song se_save, 1, 1 @ Save - song se_kon, 1, 1 @ Poké Ball Bounce 1 - song se_kon2, 1, 1 @ Poké Ball Bounce 2 - song se_kon3, 1, 1 @ Poké Ball Bounce 3 - song se_kon4, 1, 1 @ Poké Ball Bounce 4 - song se_suikomu, 2, 2 @ Poké Ball Trade - song se_nageru, 1, 1 @ Poké Ball Throw - song se_toy_c, 2, 2 @ Note C - song se_toy_d, 2, 2 @ Note D - song se_toy_e, 2, 2 @ Note E - song se_toy_f, 2, 2 @ Note F - song se_toy_g, 2, 2 @ Note G - song se_toy_a, 2, 2 @ Note A - song se_toy_b, 2, 2 @ Note B - song se_toy_c1, 2, 2 @ Note High C - song se_mizu, 2, 2 @ Puddle - song se_hashi, 2, 2 @ Fortree Walkways - song se_daugi, 1, 1 @ Slots - Credits - song se_pinpon, 1, 1 @ Elevator - Reached Destination - song se_fuusen1, 2, 2 @ Red Balloon - song se_fuusen2, 2, 2 @ Blue Balloon - song se_fuusen3, 2, 2 @ Yellow Balloon - song se_toy_kabe, 2, 2 @ Breakable Door - song se_toy_dango, 2, 2 @ Mud Ball - song se_doku, 1, 1 @ Overworld - Poison Damage - song se_esuka, 1, 1 @ Escalator - song se_t_ame, 3, 3 @ Rain - song se_t_ame_e, 3, 3 @ Rain Stop - song se_t_ooame, 3, 3 @ Heavy Rain - song se_t_ooame_e, 3, 3 @ Heavy Rain Stop - song se_t_koame, 3, 3 @ Light Rain - song se_t_koame_e, 3, 3 @ Light Rain Stop - song se_t_kami, 1, 1 @ Thunder - song se_t_kami2, 1, 1 @ Thunder 2 - song se_elebeta, 1, 1 @ Elevator - song se_hinsi, 3, 3 @ Low Health - song se_expmax, 1, 1 @ Exp. Max - song se_tamakoro, 2, 2 @ Roulette Ball - song se_tamakoro_e, 2, 2 @ Roulette Ball 2 - song se_basabasa, 1, 1 @ Wing Attack - song se_regi, 1, 1 @ Cash Register - song se_c_gaji, 1, 1 @ Contest - Hearts - song se_c_maku_u, 1, 1 @ Contest - Curtain Rises - song se_c_maku_d, 1, 1 @ Contest - Curtain Falls - song se_c_pasi, 1, 1 @ Contest - Inflict Status - song se_c_syu, 1, 1 @ Contest - Pokémon Switches Out - song se_c_pikon, 1, 1 @ Contest - Pokémon Switches In - song se_reapoke, 1, 1 @ Shiny Pokémon - song se_op_basyu, 1, 1 @ Opening Movie -> Title Screen Transition - song se_bt_start, 1, 1 @ Battle Mugshot whoosh - song se_dendou, 1, 1 @ Audience Cheering - song se_jihanki, 1, 1 @ Vending Machine - song se_tama, 1, 1 @ Orb Used - song se_z_scroll, 1, 1 @ Pokédex Scrolling - song se_z_page, 1, 1 @ Pokédex Page - song se_pn_on, 1, 1 @ PokéNav On - song se_pn_off, 1, 1 @ PokéNav Off - song se_z_search, 1, 1 @ Pokédex Search - song se_tamago, 1, 1 @ Egg hatch - song se_tb_start, 1, 1 @ Battle - Poké Ball Tray slide in - song se_tb_kon, 1, 1 @ Battle - Poké Ball Tray ball sound - song se_tb_kara, 2, 2 @ Battle - Poké Ball Tray slide out - song se_bidoro, 1, 1 - song se_w085, 2, 2 @ Thunderbolt - song se_w085b, 1, 1 @ Thunderbolt 2 - song se_w231, 1, 1 @ Harden - song se_w171, 1, 1 @ Nightmare - song se_w233, 1, 1 @ Vital Throw - song se_w233b, 1, 1 @ Vital Throw 2 - song se_w145, 1, 1 @ Bubble - song se_w145b, 1, 1 @ Bubble 2 - song se_w145c, 1, 1 @ Bubble 3 - song se_w240, 1, 1 @ Rain Dance - song se_w015, 1, 1 @ Cut - song se_w081, 1, 1 @ String Shot - song se_w081b, 1, 1 @ String Shot 2 - song se_w088, 1, 1 @ Rock Throw - song se_w016, 2, 2 @ Gust - song se_w016b, 2, 2 @ Gust 2 - song se_w003, 1, 1 @ DoubleSlap - song se_w104, 1, 1 @ Double Team - song se_w013, 1, 1 @ Razor Wind - song se_w196, 1, 1 @ Icy Wind - song se_w086, 1, 1 @ Thunder Wave - song se_w004, 1, 1 @ Comet Punch - song se_w025, 1, 1 @ Mega Kick - song se_w025b, 1, 1 @ Mega Kick 2 - song se_w152, 1, 1 @ Crabhammer - song se_w026, 1, 1 @ Jump Kick - song se_w172, 1, 1 @ Flame Wheel - song se_w172b, 1, 1 @ Flame Wheel 2 - song se_w053, 1, 1 @ Flamethrower - song se_w007, 1, 1 @ Fire Punch - song se_w092, 1, 1 @ Toxic - song se_w221, 1, 1 @ Sacred Fire - song se_w221b, 2, 2 @ Sacred Fire 2 - song se_w052, 1, 1 @ Ember - song se_w036, 2, 2 @ Take Down - song se_w059, 1, 1 @ Blizzard - song se_w059b, 1, 1 @ Blizzard 2 - song se_w010, 1, 1 @ Scratch - song se_w011, 1, 1 @ Vicegrip - song se_w017, 1, 1 @ Wing Attack - song se_w019, 1, 1 @ Fly - song se_w028, 1, 1 @ Sand-Attack - song se_w013b, 1, 1 @ Razor Wind 2 - song se_w044, 1, 1 @ Bite - song se_w029, 1, 1 @ Headbutt - song se_w057, 1, 1 @ Surf - song se_w056, 1, 1 @ Hydro Pump - song se_w250, 1, 1 @ Whirlpool - song se_w030, 1, 1 @ Horn Attack - song se_w039, 2, 2 @ Tail Whip - song se_w054, 1, 1 @ Mist - song se_w077, 1, 1 @ PoisonPowder - song se_w020, 2, 2 @ Bind - song se_w082, 1, 1 @ Dragon Rage - song se_w047, 1, 1 @ Sing - song se_w195, 1, 1 @ Perish Song - song se_w006, 1, 1 @ Pay Day - song se_w091, 1, 1 @ Dig - song se_w146, 1, 1 @ Dizzy Punch - song se_w120, 1, 1 @ Self-Destruct - song se_w153, 1, 1 @ Explosion - song se_w071b, 1, 1 @ Absorb 2 - song se_w071, 1, 1 @ Absorb - song se_w103, 1, 1 @ Screech - song se_w062, 1, 1 @ BubbleBeam - song se_w062b, 1, 1 @ BubbleBeam 2 - song se_w048, 1, 1 @ Supersonic - song se_w187, 1, 1 @ Belly Drum - song se_w118, 1, 1 @ Metronome - song se_w155, 1, 1 @ Bonemerang - song se_w122, 1, 1 @ Lick - song se_w060, 1, 1 @ Psybeam - song se_w185, 1, 1 @ Faint Attack - song se_w014, 1, 1 @ Swords Dance - song se_w043, 1, 1 @ Leer - song se_w207, 1, 1 @ Swagger - song se_w207b, 1, 1 @ Swagger 2 - song se_w215, 1, 1 @ Heal Bell - song se_w109, 1, 1 @ Confuse Ray - song se_w173, 1, 1 @ Snore - song se_w280, 1, 1 @ Brick Break - song se_w202, 1, 1 @ Giga Drain - song se_w060b, 1, 1 @ Psybeam 2 - song se_w076, 2, 2 @ SolarBeam - song se_w080, 1, 1 @ Petal Dance - song se_w100, 1, 1 @ Teleport - song se_w107, 1, 1 @ Minimize - song se_w166, 1, 1 @ Sketch - song se_w129, 1, 1 @ Swift - song se_w115, 1, 1 @ Reflect - song se_w112, 1, 1 @ Barrier - song se_w197, 2, 2 @ Detect - song se_w199, 1, 1 @ Lock-On - song se_w236, 1, 1 @ Moonlight - song se_w204, 1, 1 @ Charm - song se_w268, 1, 1 @ Charge - song se_w070, 1, 1 @ Strength - song se_w063, 1, 1 @ Hyper Beam - song se_w127, 1, 1 @ Waterfall - song se_w179, 1, 1 @ Reversal - song se_w151, 1, 1 @ Acid Armor - song se_w201, 1, 1 @ Sandstorm - song se_w161, 1, 1 @ Tri-Attack - song se_w161b, 1, 1 @ Tri-Attack 2 - song se_w227, 1, 1 @ Encore - song se_w227b, 2, 2 @ Encore 2 - song se_w226, 1, 1 @ Baton Pass - song se_w208, 1, 1 @ Milk Drink - song se_w213, 1, 1 @ Attract - song se_w213b, 1, 1 @ Attract 2 - song se_w234, 1, 1 @ Morning Sun - song se_w260, 1, 1 @ Flatter - song se_w328, 1, 1 @ Sand Tomb - song se_w320, 1, 1 @ GrassWhistle - song se_w255, 1, 1 @ Spit Up - song se_w291, 1, 1 @ Dive - song se_w089, 2, 2 @ Earthquake - song se_w239, 2, 2 @ Twister - song se_w230, 1, 1 @ Sweet Scent - song se_w281, 1, 1 @ Yawn - song se_w327, 2, 2 @ Sky Uppercut - song se_w287, 1, 1 @ Stat Increased - song se_w257, 1, 1 @ Heat Wave - song se_w253, 1, 1 @ Uproar - song se_w258, 1, 1 @ Hail - song se_w322, 2, 2 @ Cosmic Power - song se_w298, 1, 1 @ Teeter Dance - song se_w287b, 1, 1 @ Stat Decreased - song se_w114, 1, 1 @ Haze - song se_w063b, 1, 1 @ Hyper Beam 2 - song se_rg_w_door, 1, 1 @ Door (FRLG) - song se_rg_card1, 1, 1 @ Trainer Card 1 (FRLG) - song se_rg_card2, 1, 1 @ Trainer Card 2 (FRLG) - song se_rg_card3, 1, 1 @ Trainer Card 3 (FRLG) - song se_rg_bag1, 1, 1 @ Bag Scroll (FRLG) - song se_rg_bag2, 1, 1 @ Bag Pocket Change (FRLG) - song se_rg_getting, 1, 1 - song se_rg_shop, 1, 1 @ Cash Register (FRLG) - song se_rg_kiteki, 1, 1 @ S.S. Anne Horn (FRLG) - song se_rg_help_op, 1, 1 @ Help Menu Open (FRLG) - song se_rg_help_cl, 1, 1 @ Help Menu Close (FRLG) - song se_rg_help_ng, 1, 1 @ Help Menu Error (FRLG) - song se_rg_deomov, 1, 1 @ Deoxys Moves - song se_rg_excellent, 1, 1 @ HP Restored (FRLG) - song se_rg_nawamiss, 1, 1 - song se_toreeye, 1, 1 @ Trainer's Eye Call - song se_toreoff, 1, 1 @ Trainer's Eye Hang Up - song se_hantei1, 1, 1 @ Battle Arena - Judgment 1 - song se_hantei2, 1, 1 @ Battle Arena - Judgment 2 - song se_curtain, 1, 1 @ Battle Pike - Curtain Opens - song se_curtain1, 1, 1 @ Battle Pike - Curtain Closes - song se_ussoki, 1, 1 @ Sudowoodo + song se_save, 1, 1 + song se_ball_bounce_1, 1, 1 + song se_ball_bounce_2, 1, 1 + song se_ball_bounce_3, 1, 1 + song se_ball_bounce_4, 1, 1 + song se_ball_trade, 2, 2 + song se_ball_throw, 1, 1 + song se_note_c, 2, 2 + song se_note_d, 2, 2 + song se_note_e, 2, 2 + song se_note_f, 2, 2 + song se_note_g, 2, 2 + song se_note_a, 2, 2 + song se_note_b, 2, 2 + song se_note_c_high, 2, 2 + song se_puddle, 2, 2 + song se_bridge_walk, 2, 2 + song se_itemfinder, 1, 1 + song se_ding_dong, 1, 1 + song se_balloon_red, 2, 2 + song se_balloon_blue, 2, 2 + song se_balloon_yellow, 2, 2 + song se_breakable_door, 2, 2 + song se_mud_ball, 2, 2 + song se_field_poison, 1, 1 + song se_escalator, 1, 1 + song se_thunderstorm, 3, 3 + song se_thunderstorm_stop, 3, 3 + song se_downpour, 3, 3 + song se_downpour_stop, 3, 3 + song se_rain, 3, 3 + song se_rain_stop, 3, 3 + song se_thunder, 1, 1 + song se_thunder2, 1, 1 + song se_elevator, 1, 1 + song se_low_health, 3, 3 + song se_exp_max, 1, 1 + song se_roulette_ball, 2, 2 + song se_roulette_ball2, 2, 2 + song se_taillow_wing_flap, 1, 1 + song se_shop, 1, 1 + song se_contest_heart, 1, 1 + song se_contest_curtain_rise, 1, 1 + song se_contest_curtain_fall, 1, 1 + song se_contest_icon_change, 1, 1 + song se_contest_icon_clear, 1, 1 + song se_contest_mons_turn, 1, 1 + song se_shiny, 1, 1 + song se_intro_blast, 1, 1 + song se_mugshot, 1, 1 + song se_applause, 1, 1 + song se_vend, 1, 1 + song se_orb, 1, 1 + song se_dex_scroll, 1, 1 + song se_dex_page, 1, 1 + song se_pokenav_on, 1, 1 + song se_pokenav_off, 1, 1 + song se_dex_search, 1, 1 + song se_egg_hatch, 1, 1 + song se_ball_tray_enter, 1, 1 + song se_ball_tray_ball, 1, 1 + song se_ball_tray_exit, 2, 2 + song se_glass_flute, 1, 1 + song se_m_thunderbolt, 2, 2 + song se_m_thunderbolt2, 1, 1 + song se_m_harden, 1, 1 + song se_m_nightmare, 1, 1 + song se_m_vital_throw, 1, 1 + song se_m_vital_throw2, 1, 1 + song se_m_bubble, 1, 1 + song se_m_bubble2, 1, 1 + song se_m_bubble3, 1, 1 + song se_m_rain_dance, 1, 1 + song se_m_cut, 1, 1 + song se_m_string_shot, 1, 1 + song se_m_string_shot2, 1, 1 + song se_m_rock_throw, 1, 1 + song se_m_gust, 2, 2 + song se_m_gust2, 2, 2 + song se_m_double_slap, 1, 1 + song se_m_double_team, 1, 1 + song se_m_razor_wind, 1, 1 + song se_m_icy_wind, 1, 1 + song se_m_thunder_wave, 1, 1 + song se_m_comet_punch, 1, 1 + song se_m_mega_kick, 1, 1 + song se_m_mega_kick2, 1, 1 + song se_m_crabhammer, 1, 1 + song se_m_jump_kick, 1, 1 + song se_m_flame_wheel, 1, 1 + song se_m_flame_wheel2, 1, 1 + song se_m_flamethrower, 1, 1 + song se_m_fire_punch, 1, 1 + song se_m_toxic, 1, 1 + song se_m_sacred_fire, 1, 1 + song se_m_sacred_fire2, 2, 2 + song se_m_ember, 1, 1 + song se_m_take_down, 2, 2 + song se_m_blizzard, 1, 1 + song se_m_blizzard2, 1, 1 + song se_m_scratch, 1, 1 + song se_m_vicegrip, 1, 1 + song se_m_wing_attack, 1, 1 + song se_m_fly, 1, 1 + song se_m_sand_attack, 1, 1 + song se_m_razor_wind2, 1, 1 + song se_m_bite, 1, 1 + song se_m_headbutt, 1, 1 + song se_m_surf, 1, 1 + song se_m_hydro_pump, 1, 1 + song se_m_whirlpool, 1, 1 + song se_m_horn_attack, 1, 1 + song se_m_tail_whip, 2, 2 + song se_m_mist, 1, 1 + song se_m_poison_powder, 1, 1 + song se_m_bind, 2, 2 + song se_m_dragon_rage, 1, 1 + song se_m_sing, 1, 1 + song se_m_perish_song, 1, 1 + song se_m_pay_day, 1, 1 + song se_m_dig, 1, 1 + song se_m_dizzy_punch, 1, 1 + song se_m_self_destruct, 1, 1 + song se_m_explosion, 1, 1 + song se_m_absorb_2, 1, 1 + song se_m_absorb, 1, 1 + song se_m_screech, 1, 1 + song se_m_bubble_beam, 1, 1 + song se_m_bubble_beam2, 1, 1 + song se_m_supersonic, 1, 1 + song se_m_belly_drum, 1, 1 + song se_m_metronome, 1, 1 + song se_m_bonemerang, 1, 1 + song se_m_lick, 1, 1 + song se_m_psybeam, 1, 1 + song se_m_faint_attack, 1, 1 + song se_m_swords_dance, 1, 1 + song se_m_leer, 1, 1 + song se_m_swagger, 1, 1 + song se_m_swagger2, 1, 1 + song se_m_heal_bell, 1, 1 + song se_m_confuse_ray, 1, 1 + song se_m_snore, 1, 1 + song se_m_brick_break, 1, 1 + song se_m_giga_drain, 1, 1 + song se_m_psybeam2, 1, 1 + song se_m_solar_beam, 2, 2 + song se_m_petal_dance, 1, 1 + song se_m_teleport, 1, 1 + song se_m_minimize, 1, 1 + song se_m_sketch, 1, 1 + song se_m_swift, 1, 1 + song se_m_reflect, 1, 1 + song se_m_barrier, 1, 1 + song se_m_detect, 2, 2 + song se_m_lock_on, 1, 1 + song se_m_moonlight, 1, 1 + song se_m_charm, 1, 1 + song se_m_charge, 1, 1 + song se_m_strength, 1, 1 + song se_m_hyper_beam, 1, 1 + song se_m_waterfall, 1, 1 + song se_m_reversal, 1, 1 + song se_m_acid_armor, 1, 1 + song se_m_sandstorm, 1, 1 + song se_m_tri_attack, 1, 1 + song se_m_tri_attack2, 1, 1 + song se_m_encore, 1, 1 + song se_m_encore2, 2, 2 + song se_m_baton_pass, 1, 1 + song se_m_milk_drink, 1, 1 + song se_m_attract, 1, 1 + song se_m_attract2, 1, 1 + song se_m_morning_sun, 1, 1 + song se_m_flatter, 1, 1 + song se_m_sand_tomb, 1, 1 + song se_m_grasswhistle, 1, 1 + song se_m_spit_up, 1, 1 + song se_m_dive, 1, 1 + song se_m_earthquake, 2, 2 + song se_m_twister, 2, 2 + song se_m_sweet_scent, 1, 1 + song se_m_yawn, 1, 1 + song se_m_sky_uppercut, 2, 2 + song se_m_stat_increase, 1, 1 + song se_m_heat_wave, 1, 1 + song se_m_uproar, 1, 1 + song se_m_hail, 1, 1 + song se_m_cosmic_power, 2, 2 + song se_m_teeter_dance, 1, 1 + song se_m_stat_decrease, 1, 1 + song se_m_haze, 1, 1 + song se_m_hyper_beam2, 1, 1 + song se_rg_door, 1, 1 + song se_rg_card_flip, 1, 1 + song se_rg_card_flipping, 1, 1 + song se_rg_card_open, 1, 1 + song se_rg_bag_cursor, 1, 1 + song se_rg_bag_pocket, 1, 1 + song se_rg_ball_click, 1, 1 + song se_rg_shop, 1, 1 + song se_rg_ss_anne_horn, 1, 1 + song se_rg_help_open, 1, 1 + song se_rg_help_close, 1, 1 + song se_rg_help_error, 1, 1 + song se_rg_deoxys_move, 1, 1 + song se_rg_poke_jump_success, 1, 1 + song se_rg_poke_jump_failure, 1, 1 + song se_pokenav_call, 1, 1 + song se_pokenav_hang_up, 1, 1 + song se_arena_timeup1, 1, 1 + song se_arena_timeup2, 1, 1 + song se_pike_curtain_open, 1, 1 + song se_pike_curtain_close, 1, 1 + song se_sudowoodo_shake, 1, 1 song dummy_song_header, 0, 0 song dummy_song_header, 0, 0 song dummy_song_header, 0, 0 @@ -351,215 +351,215 @@ gSongTable:: @ 86B49F0 song dummy_song_header, 0, 0 song dummy_song_header, 0, 0 song dummy_song_header, 0, 0 - song mus_tetsuji, 0, 0 @ Unused - TETSUJI - song mus_field13, 0, 0 @ Unused - Route 38 - song mus_kachi22, 0, 0 @ Victory! (Wild Pokémon) (No Intro) - song mus_kachi2, 0, 0 @ Victory! (Wild Pokémon) - song mus_kachi3, 0, 0 @ Victory! (Gym Leader) - song mus_kachi5, 0, 0 @ Victory! (Wallace) - song mus_pcc, 0, 0 @ Unused - Pokémon Center (2) - song mus_nibi, 0, 0 @ Unused - Viridian City - song mus_suikun, 0, 0 @ Unused - Battle! (Entei/Raikou/Suicune) - song mus_dooro1, 0, 0 @ Route 101 - song mus_dooro_x1, 0, 0 @ Route 110 - song mus_dooro_x3, 0, 0 @ Route 120 - song mus_machi_s2, 0, 0 @ Petalburg City - song mus_machi_s4, 0, 0 @ Oldale Town - song mus_gim, 0, 0 @ Pokémon Gym - song mus_naminori, 0, 0 @ Surf - song mus_dan01, 0, 0 @ Petalburg Woods - song mus_fanfa1, 2, 2 @ Level Up! - song mus_me_asa, 2, 2 @ Pokémon Healed - song mus_me_bachi, 2, 2 @ Obtained a Badge! - song mus_fanfa4, 2, 2 @ Obtained an Item! - song mus_fanfa5, 2, 2 @ Congratulations! Your Pokémon Evolved! - song mus_me_waza, 2, 2 @ Obtained a TM! - song mus_bijyutu, 0, 0 @ Museum - song mus_dooro_x4, 0, 0 @ Introductions - song mus_fune_kan, 0, 0 @ Oceanic Museum - song mus_me_shinka, 2, 2 @ Evolution (Intro) - song mus_shinka, 0, 0 @ Evolution - song mus_me_wasure, 2, 2 @ Move Deleted - song mus_syoujoeye, 0, 0 @ Trainers' Eyes Meet (Tuber♀) - song mus_boyeye, 0, 0 @ Trainers' Eyes Meet (Youngster) - song mus_dan02, 0, 0 @ Abandoned Ship - song mus_machi_s3, 0, 0 @ Fortree City - song mus_odamaki, 0, 0 @ Birch Pokémon Lab - song mus_b_tower, 0, 0 @ Battle Tower (RS) - song mus_swimeye, 0, 0 @ Trainers' Eyes Meet (Swimmer♀) - song mus_dan03, 0, 0 @ Cave of Origin - song mus_me_kinomi, 2, 2 @ Obtained a Berry! - song mus_me_tama, 2, 2 @ The Super-Ancient Pokémon Awaken! - song mus_me_b_big, 2, 2 @ Jackpot - song mus_me_b_small, 2, 2 @ Win - song mus_me_zannen, 2, 2 @ Lose - song mus_bd_time, 0, 0 @ Reel Time - song mus_test1, 0, 0 @ Pokémon Contest! (Multiplayer - Player 1) - song mus_test2, 0, 0 @ Pokémon Contest! (Multiplayer - Player 2) - song mus_test3, 0, 0 @ Pokémon Contest! (Multiplayer - Player 3) - song mus_test4, 0, 0 @ Pokémon Contest! (Multiplayer - Player 4) - song mus_test, 0, 0 @ Trainers' Eyes Meet (Gentleman) - song mus_gomachi0, 0, 0 @ Verdanturf Town - song mus_gotown, 0, 0 @ Rustboro City - song mus_pokecen, 0, 0 @ Pokémon Center - song mus_nextroad, 0, 0 @ Route 104 - song mus_granroad, 0, 0 @ Route 119 - song mus_cycling, 0, 0 @ Cycling - song mus_friendly, 0, 0 @ Poké Mart - song mus_mishiro, 0, 0 @ Littleroot Town - song mus_tozan, 0, 0 @ Mt. Chimney - song mus_girleye, 0, 0 @ Trainers' Eyes Meet (Lass) - song mus_minamo, 0, 0 @ Lilycove City - song mus_ashroad, 0, 0 @ Route 111 - song mus_event0, 0, 0 @ H-Help Me! - song mus_deepdeep, 0, 0 @ Dive - song mus_kachi1, 0, 0 @ Victory! (Trainer Battle) - song mus_title3, 0, 0 @ Title Screen - song mus_demo1, 0, 0 @ Opening Movie: Setting out on a Journey in the Hoenn Region - song mus_girl_sup, 0, 0 @ May - song mus_hageshii, 0, 0 @ Trainers' Eyes Meet (Psychic) - song mus_kakkoii, 0, 0 @ Trainers' Eyes Meet (Cooltrainer) - song mus_kazanbai, 0, 0 @ Route 113 - song mus_aqa_0, 0, 0 @ Team Aqua Appears! - song mus_tsuretek, 0, 0 @ Hurry Along - song mus_boy_sup, 0, 0 @ Brendan - song mus_rainbow, 0, 0 @ Evergrande City - song mus_ayasii, 0, 0 @ Trainers' Eyes Meet (Hex Maniac) - song mus_kachi4, 0, 0 @ Victory! (Team Aqua / Team Magma) - song mus_ropeway, 0, 0 @ Cable Car - song mus_casino, 0, 0 @ Game Corner - song mus_hightown, 0, 0 @ Dewford Town - song mus_safari, 0, 0 @ Safari Zone - song mus_c_road, 0, 0 @ Victory Road - song mus_ajito, 0, 0 @ Hideout - song mus_m_boat, 0, 0 @ Crossing the Sea - song mus_m_dungon, 0, 0 @ Mt. Pyre - song mus_finecity, 0, 0 @ Slateport City - song mus_machupi, 0, 0 @ Mt. Pyre Exterior - song mus_p_school, 0, 0 @ Trainers' School - song mus_dendou, 0, 0 @ The Hall of Fame - song mus_tonekusa, 0, 0 @ Fallarbor Town - song mus_maborosi, 0, 0 @ Sealed Chamber - song mus_con_fan, 0, 0 @ Contest Winner - song mus_contest0, 0, 0 @ Pokémon Contest! - song mus_mgm0, 0, 0 @ Team Magma Appears! - song mus_t_battle, 0, 0 @ Opening Movie: Double Battles - song mus_ooame, 0, 0 @ Heavy Rain - song mus_hideri, 0, 0 @ The Drought - song mus_runecity, 0, 0 @ Sootopolis City - song mus_con_k, 0, 0 @ Results Announcement - song mus_eikou_r, 0, 0 @ Room of Glory - song mus_karakuri, 0, 0 @ The Trick House - song mus_hutago, 0, 0 @ Twins - song mus_sitennou, 0, 0 @ The Elite Four Appear! - song mus_yama_eye, 0, 0 @ Trainers' Eyes Meet (Hiker) - song mus_conlobby, 0, 0 @ Contest Lobby - song mus_inter_v, 0, 0 @ Interviewers - song mus_daigo, 0, 0 @ Champion Wallace - song mus_thankfor, 0, 0 @ Ending Theme - song mus_end, 0, 0 @ The End - song mus_b_frontier, 0, 0 @ Battle Frontier - song mus_b_arena, 0, 0 @ Battle Arena - song mus_me_pointget, 2, 2 @ Obtained a Battle Point! - song mus_me_tore_eye, 2, 2 @ Registered Trainer! - song mus_pyramid, 0, 0 @ Battle Pyramid - song mus_pyramid_top, 0, 0 @ Battle Pyramid Summit - song mus_b_palace, 0, 0 @ Battle Palace - song mus_rekkuu_kourin, 0, 0 @ Rayquaza Enters! - song mus_sattower, 0, 0 @ Battle Tower - song mus_me_symbolget, 2, 2 @ Obtained a Frontier Symbol! - song mus_b_dome, 0, 0 @ Battle Dome - song mus_b_tube, 0, 0 @ Battle Pike - song mus_b_factory, 0, 0 @ Battle Factory - song mus_vs_rekku, 0, 0 @ Battle! (Rayquaza) - song mus_vs_front, 0, 0 @ Battle! (Frontier Brain) - song mus_vs_mew, 0, 0 @ Battle! (Mew) - song mus_b_dome1, 0, 0 @ Battle Dome Lobby - song mus_battle27, 0, 0 @ Battle! (Wild Pokémon) - song mus_battle31, 0, 0 @ Battle! (Team Aqua / Team Magma) - song mus_battle20, 0, 0 @ Battle! (Trainer Battle) - song mus_battle32, 0, 0 @ Battle! (Gym Leader) - song mus_battle33, 0, 0 @ Battle! (Champion Wallace) - song mus_battle36, 0, 0 @ Battle! (Regirock/Regice/Registeel) - song mus_battle34, 0, 0 @ Battle! (Groudon/Kyogre) - song mus_battle35, 0, 0 @ Battle! (Brendan/May/Steven) - song mus_battle38, 0, 0 @ Battle! (Elite Four) - song mus_battle30, 0, 0 @ Battle! (Team Aqua/Team Magma Leaders) - song mus_rg_annai, 0, 0 @ Guide (FRLG) - song mus_rg_slot, 0, 0 @ Rocket Game Corner (FRLG) - song mus_rg_ajito, 0, 0 @ Rocket Hideout (FRLG) - song mus_rg_gym, 0, 0 @ Pokémon Gym (FRLG) - song mus_rg_purin, 2, 2 @ Jigglypuff's Song (FRLG) - song mus_rg_demo, 0, 0 @ Opening Movie (FRLG) - song mus_rg_title, 0, 0 @ Title Screen (FRLG) - song mus_rg_guren, 0, 0 @ Cinnabar Island Theme (FRLG) - song mus_rg_shion, 0, 0 @ Lavender Town Theme (FRLG) - song mus_rg_kaihuku, 0, 0 @ Pokémon Healed (FRLG) - song mus_rg_cycling, 0, 0 @ Cycling (FRLG) - song mus_rg_rocket, 0, 0 @ A Trainer Appears (Bad Guy Version) (FRLG) - song mus_rg_shoujo, 0, 0 @ A Trainer Appears (Girl Version) (FRLG) - song mus_rg_shounen, 0, 0 @ A Trainer Appears (Boy Version) (FRLG) - song mus_rg_dendou, 0, 0 @ Hall of Fame (FRLG) - song mus_rg_t_mori, 0, 0 @ Viridian Forest (FRLG) - song mus_rg_otsukimi, 0, 0 @ Navel Rock - song mus_rg_pokeyashi, 0, 0 @ Pokémon Mansion (FRLG) - song mus_rg_ending, 0, 0 @ Ending Theme (FRLG) - song mus_rg_load01, 0, 0 @ Road to Viridian City: Leaving Pallet Town (FRLG) - song mus_rg_opening, 0, 0 @ Welcome to the World of Pokémon! (FRLG) - song mus_rg_load02, 0, 0 @ Road to Cerulean City: Leaving Mt. Moon (FRLG) - song mus_rg_load03, 0, 0 @ Road to Fuchsia City: Leaving Lavender Town (FRLG) - song mus_rg_champ_r, 0, 0 @ The Final Road (FRLG) - song mus_rg_vs_gym, 0, 0 @ Battle! (Gym Leader Battle) (FRLG) - song mus_rg_vs_tore, 0, 0 @ Battle! (Trainer Battle) (FRLG) - song mus_rg_vs_yasei, 0, 0 @ Battle! (Wild Pokémon) (FRLG) - song mus_rg_vs_last, 0, 0 @ Final Battle! (Rival) (FRLG) - song mus_rg_masara, 0, 0 @ Pallet Town Theme (FRLG) - song mus_rg_kenkyu, 0, 0 @ Professor Oak's Laboratory (FRLG) - song mus_rg_ohkido, 0, 0 @ Professor Oak (FRLG) - song mus_rg_pokecen, 0, 0 @ Pokémon Center (FRLG) - song mus_rg_santoan, 0, 0 @ The S.S. Anne (FRLG) - song mus_rg_naminori, 0, 0 @ The Sea (FRLG) - song mus_rg_p_tower, 0, 0 @ Pokémon Tower (FRLG) - song mus_rg_shiruhu, 0, 0 @ Silph Co. (FRLG) - song mus_rg_hanada, 0, 0 @ Fuchsia City Theme (FRLG) - song mus_rg_tamamusi, 0, 0 @ Celadon City Theme (FRLG) - song mus_rg_win_tre, 0, 0 @ Victory! (Trainer Battle) (FRLG) - song mus_rg_win_yasei, 0, 0 @ Victory! (Wild Pokémon) (FRLG) - song mus_rg_win_gym, 0, 0 @ Victory! (Gym Leader Battle) (FRLG) - song mus_rg_kuchiba, 0, 0 @ Vermillion City Theme (FRLG) - song mus_rg_nibi, 0, 0 @ Pewter City Theme (FRLG) - song mus_rg_rival1, 0, 0 @ A Rival Appears (FRLG) - song mus_rg_rival2, 0, 0 @ A Rival Appears (No Intro) (FRLG) - song mus_rg_fan2, 2, 2 @ Fanfare: Professor Oak's Evaluation (FRLG) - song mus_rg_fan5, 2, 2 @ Fanfare: Pokémon Obtained (FRLG) - song mus_rg_fan6, 2, 2 @ Fanfare: Pokémon Caught - song mus_me_rg_photo, 2, 2 @ Pokémon Printer (FRLG) - song mus_rg_titlerog, 0, 0 @ Game Freak Logo (FRLG) - song mus_rg_get_yasei, 0, 0 @ Fanfare: Pokémon Caught (No Intro) (FRLG) - song mus_rg_sousa, 0, 0 @ Game Tutorial (1) (FRLG) - song mus_rg_sekaikan, 0, 0 @ Game Tutorial (2) (FRLG) - song mus_rg_seibetu, 0, 0 @ Game Tutorial (3) (FRLG) - song mus_rg_jump, 0, 0 @ Pokémon Jump (FRLG) - song mus_rg_union, 0, 0 @ The Union Room (FRLG) - song mus_rg_network, 0, 0 @ Pokémon Net Center (FRLG) - song mus_rg_okurimono, 0, 0 @ Mystery Gift (FRLG) - song mus_rg_kinomikui, 0, 0 @ Dodrio Berry Picking (FRLG) - song mus_rg_nanadungeon, 0, 0 @ Mt. Ember (FRLG) - song mus_rg_oshie_tv, 0, 0 @ Teachy TV Lesson (FRLG) - song mus_rg_nanashima, 0, 0 @ Sevii Islands (FRLG) - song mus_rg_nanaiseki, 0, 0 @ Tanoby Chambers (FRLG) - song mus_rg_nana123, 0, 0 @ Sevii Islands: One, Two & Three Islands (FRLG) - song mus_rg_nana45, 0, 0 @ Sevii Islands: Four & Five Islands (FRLG) - song mus_rg_nana67, 0, 0 @ Sevii Islands: Six & Seven Islands (FRLG) - song mus_rg_pokefue, 2, 2 @ The Poké Flute (FRLG) - song mus_rg_vs_deo, 0, 0 @ Battle! (Deoxys) - song mus_rg_vs_myu2, 0, 0 @ Battle! (Mewtwo) (FRLG) - song mus_rg_vs_den, 0, 0 @ Battle! (Ho-Oh/Lugia) - song mus_rg_exeye, 0, 0 @ Tense Battle! (FRLG) - song mus_rg_deoeye, 0, 0 @ Deoxys Appears - song mus_rg_t_tower, 0, 0 @ Trainer Tower (FRLG) - song mus_rg_slowmasara, 0, 0 @ Epilogue (FRLG) - song mus_rg_tvnoize, 0, 0 @ Teachy TV Menu (FRLG) + song mus_littleroot_test, 0, 0 + song mus_gsc_route38, 0, 0 + song mus_caught, 0, 0 + song mus_victory_wild, 0, 0 + song mus_victory_gym_leader, 0, 0 + song mus_victory_league, 0, 0 + song mus_c_comm_center, 0, 0 + song mus_gsc_pewter, 0, 0 + song mus_c_vs_legend_beast, 0, 0 + song mus_route101, 0, 0 + song mus_route110, 0, 0 + song mus_route120, 0, 0 + song mus_petalburg, 0, 0 + song mus_oldale, 0, 0 + song mus_gym, 0, 0 + song mus_surf, 0, 0 + song mus_petalburg_woods, 0, 0 + song mus_level_up, 2, 2 + song mus_heal, 2, 2 + song mus_obtain_badge, 2, 2 + song mus_obtain_item, 2, 2 + song mus_evolved, 2, 2 + song mus_obtain_tmhm, 2, 2 + song mus_lilycove_museum, 0, 0 + song mus_route122, 0, 0 + song mus_oceanic_museum, 0, 0 + song mus_evolution_intro, 2, 2 + song mus_evolution, 0, 0 + song mus_move_deleted, 2, 2 + song mus_encounter_girl, 0, 0 + song mus_encounter_male, 0, 0 + song mus_abandoned_ship, 0, 0 + song mus_fortree, 0, 0 + song mus_birch_lab, 0, 0 + song mus_b_tower_rs, 0, 0 + song mus_encounter_swimmer, 0, 0 + song mus_cave_of_origin, 0, 0 + song mus_obtain_berry, 2, 2 + song mus_awaken_legend, 2, 2 + song mus_slots_jackpot, 2, 2 + song mus_slots_win, 2, 2 + song mus_too_bad, 2, 2 + song mus_roulette, 0, 0 + song mus_link_contest_p1, 0, 0 + song mus_link_contest_p2, 0, 0 + song mus_link_contest_p3, 0, 0 + song mus_link_contest_p4, 0, 0 + song mus_encounter_gentleman, 0, 0 + song mus_verdanturf, 0, 0 + song mus_rustboro, 0, 0 + song mus_poke_center, 0, 0 + song mus_route104, 0, 0 + song mus_route119, 0, 0 + song mus_cycling, 0, 0 + song mus_poke_mart, 0, 0 + song mus_littleroot, 0, 0 + song mus_mt_chimney, 0, 0 + song mus_encounter_female, 0, 0 + song mus_lilycove, 0, 0 + song mus_route111, 0, 0 + song mus_help, 0, 0 + song mus_underwater, 0, 0 + song mus_victory_trainer, 0, 0 + song mus_title, 0, 0 + song mus_intro, 0, 0 + song mus_encounter_may, 0, 0 + song mus_encounter_psychic, 0, 0 + song mus_encounter_cooltrainer, 0, 0 + song mus_route113, 0, 0 + song mus_encounter_aqua, 0, 0 + song mus_follow_me, 0, 0 + song mus_encounter_brendan, 0, 0 + song mus_ever_grande, 0, 0 + song mus_encounter_hex_maniac, 0, 0 + song mus_victory_aqua_magma, 0, 0 + song mus_cable_car, 0, 0 + song mus_game_corner, 0, 0 + song mus_dewford, 0, 0 + song mus_safari_zone, 0, 0 + song mus_victory_road, 0, 0 + song mus_aqua_magma_hideout, 0, 0 + song mus_sailing, 0, 0 + song mus_mt_pyre, 0, 0 + song mus_slateport, 0, 0 + song mus_mt_pyre_exterior, 0, 0 + song mus_school, 0, 0 + song mus_hall_of_fame, 0, 0 + song mus_fallarbor, 0, 0 + song mus_sealed_chamber, 0, 0 + song mus_contest_winner, 0, 0 + song mus_contest, 0, 0 + song mus_encounter_magma, 0, 0 + song mus_intro_battle, 0, 0 + song mus_abnormal_weather, 0, 0 + song mus_weather_groudon, 0, 0 + song mus_sootopolis, 0, 0 + song mus_contest_results, 0, 0 + song mus_hall_of_fame_room, 0, 0 + song mus_trick_house, 0, 0 + song mus_encounter_twins, 0, 0 + song mus_encounter_elite_four, 0, 0 + song mus_encounter_hiker, 0, 0 + song mus_contest_lobby, 0, 0 + song mus_encounter_interviewer, 0, 0 + song mus_encounter_champion, 0, 0 + song mus_credits, 0, 0 + song mus_end, 0, 0 + song mus_b_frontier, 0, 0 + song mus_b_arena, 0, 0 + song mus_obtain_b_points, 2, 2 + song mus_register_match_call, 2, 2 + song mus_b_pyramid, 0, 0 + song mus_b_pyramid_top, 0, 0 + song mus_b_palace, 0, 0 + song mus_rayquaza_appears, 0, 0 + song mus_b_tower, 0, 0 + song mus_obtain_symbol, 2, 2 + song mus_b_dome, 0, 0 + song mus_b_pike, 0, 0 + song mus_b_factory, 0, 0 + song mus_vs_rayquaza, 0, 0 + song mus_vs_frontier_brain, 0, 0 + song mus_vs_mew, 0, 0 + song mus_b_dome_lobby, 0, 0 + song mus_vs_wild, 0, 0 + song mus_vs_aqua_magma, 0, 0 + song mus_vs_trainer, 0, 0 + song mus_vs_gym_leader, 0, 0 + song mus_vs_champion, 0, 0 + song mus_vs_regi, 0, 0 + song mus_vs_kyogre_groudon, 0, 0 + song mus_vs_rival, 0, 0 + song mus_vs_elite_four, 0, 0 + song mus_vs_aqua_magma_leader, 0, 0 + song mus_rg_follow_me, 0, 0 + song mus_rg_game_corner, 0, 0 + song mus_rg_rocket_hideout, 0, 0 + song mus_rg_gym, 0, 0 + song mus_rg_jigglypuff, 2, 2 + song mus_rg_intro_fight, 0, 0 + song mus_rg_title, 0, 0 + song mus_rg_cinnabar, 0, 0 + song mus_rg_lavender, 0, 0 + song mus_rg_heal, 0, 0 + song mus_rg_cycling, 0, 0 + song mus_rg_encounter_rocket, 0, 0 + song mus_rg_encounter_girl, 0, 0 + song mus_rg_encounter_boy, 0, 0 + song mus_rg_hall_of_fame, 0, 0 + song mus_rg_viridian_forest, 0, 0 + song mus_rg_mt_moon, 0, 0 + song mus_rg_poke_mansion, 0, 0 + song mus_rg_credits, 0, 0 + song mus_rg_route1, 0, 0 + song mus_rg_route24, 0, 0 + song mus_rg_route3, 0, 0 + song mus_rg_route11, 0, 0 + song mus_rg_victory_road, 0, 0 + song mus_rg_vs_gym_leader, 0, 0 + song mus_rg_vs_trainer, 0, 0 + song mus_rg_vs_wild, 0, 0 + song mus_rg_vs_champion, 0, 0 + song mus_rg_pallet, 0, 0 + song mus_rg_oak_lab, 0, 0 + song mus_rg_oak, 0, 0 + song mus_rg_poke_center, 0, 0 + song mus_rg_ss_anne, 0, 0 + song mus_rg_surf, 0, 0 + song mus_rg_poke_tower, 0, 0 + song mus_rg_silph, 0, 0 + song mus_rg_fuchsia, 0, 0 + song mus_rg_celadon, 0, 0 + song mus_rg_victory_trainer, 0, 0 + song mus_rg_victory_wild, 0, 0 + song mus_rg_victory_gym_leader, 0, 0 + song mus_rg_vermillion, 0, 0 + song mus_rg_pewter, 0, 0 + song mus_rg_encounter_rival, 0, 0 + song mus_rg_rival_exit, 0, 0 + song mus_rg_dex_rating, 2, 2 + song mus_rg_obtain_key_item, 2, 2 + song mus_rg_caught_intro, 2, 2 + song mus_rg_photo, 2, 2 + song mus_rg_game_freak, 0, 0 + song mus_rg_caught, 0, 0 + song mus_rg_new_game_instruct, 0, 0 + song mus_rg_new_game_intro, 0, 0 + song mus_rg_new_game_exit, 0, 0 + song mus_rg_poke_jump, 0, 0 + song mus_rg_union_room, 0, 0 + song mus_rg_net_center, 0, 0 + song mus_rg_mystery_gift, 0, 0 + song mus_rg_berry_pick, 0, 0 + song mus_rg_sevii_cave, 0, 0 + song mus_rg_teachy_tv_show, 0, 0 + song mus_rg_sevii_route, 0, 0 + song mus_rg_sevii_dungeon, 0, 0 + song mus_rg_sevii_123, 0, 0 + song mus_rg_sevii_45, 0, 0 + song mus_rg_sevii_67, 0, 0 + song mus_rg_poke_flute, 2, 2 + song mus_rg_vs_deoxys, 0, 0 + song mus_rg_vs_mewtwo, 0, 0 + song mus_rg_vs_legend, 0, 0 + song mus_rg_encounter_gym_leader, 0, 0 + song mus_rg_encounter_deoxys, 0, 0 + song mus_rg_trainer_tower, 0, 0 + song mus_rg_slow_pallet, 0, 0 + song mus_rg_teachy_tv_menu, 0, 0 song ph_trap_blend, 2, 2 song ph_trap_held, 2, 2 song ph_trap_solo, 2, 2 diff --git a/sound/songs/midi/mus_dan02.mid b/sound/songs/midi/mus_abandoned_ship.mid similarity index 100% rename from sound/songs/midi/mus_dan02.mid rename to sound/songs/midi/mus_abandoned_ship.mid diff --git a/sound/songs/midi/mus_ooame.mid b/sound/songs/midi/mus_abnormal_weather.mid similarity index 100% rename from sound/songs/midi/mus_ooame.mid rename to sound/songs/midi/mus_abnormal_weather.mid diff --git a/sound/songs/midi/mus_ajito.mid b/sound/songs/midi/mus_aqua_magma_hideout.mid similarity index 100% rename from sound/songs/midi/mus_ajito.mid rename to sound/songs/midi/mus_aqua_magma_hideout.mid diff --git a/sound/songs/midi/mus_me_tama.mid b/sound/songs/midi/mus_awaken_legend.mid similarity index 100% rename from sound/songs/midi/mus_me_tama.mid rename to sound/songs/midi/mus_awaken_legend.mid diff --git a/sound/songs/midi/mus_b_dome1.mid b/sound/songs/midi/mus_b_dome_lobby.mid similarity index 100% rename from sound/songs/midi/mus_b_dome1.mid rename to sound/songs/midi/mus_b_dome_lobby.mid diff --git a/sound/songs/midi/mus_b_tube.mid b/sound/songs/midi/mus_b_pike.mid similarity index 100% rename from sound/songs/midi/mus_b_tube.mid rename to sound/songs/midi/mus_b_pike.mid diff --git a/sound/songs/midi/mus_pyramid.mid b/sound/songs/midi/mus_b_pyramid.mid similarity index 100% rename from sound/songs/midi/mus_pyramid.mid rename to sound/songs/midi/mus_b_pyramid.mid diff --git a/sound/songs/midi/mus_pyramid_top.mid b/sound/songs/midi/mus_b_pyramid_top.mid similarity index 100% rename from sound/songs/midi/mus_pyramid_top.mid rename to sound/songs/midi/mus_b_pyramid_top.mid diff --git a/sound/songs/midi/mus_b_tower.mid b/sound/songs/midi/mus_b_tower.mid index 8e0de896817fd70756b5d50df27588da47bf6160..a8294614f25266ac7f5264d1e5bf1a7f9d43c64f 100644 GIT binary patch literal 11709 zcmd5>-ESMm5nmqZTk3MK1tG18Bxr?(i6u*xXiJu5nGsK41S6UjtqPXiDk+f$NPq~4 zP`E%)6qRMmex^>6pWA<+uxO{xiPQGEkNt1l-^}jZm*m7v8lX>ev-_Lx+1cZ}3+uU4E&;W#eRb z5iTq$w_CgI-mAft#SP*S_Qw>qYxjj$-R2i@SxgEzyMwNAahv0cYH=C~FHl{(txX5d zPE7Aw{*Tc22UmaY>Q7kH2d-Xob={>>eU&qrT%k;sxYS-ho+pduxvmgl@g8D9>Wbt6 z+MvWm_K^J+a8z(Awd}|E5_?Sgn!r(lJ?LBL6uIp6HMY@hu2~%PH7oWRxF+nd49jcS z$g%wf{6M=T{7T3t?6iP`ZwbFj6vq?tXBjwtKEdw>>{2^Ye2qzd{;GoB=qT@fNPdiL zt{6>N>ekzQK)TDQE@i33`}P=Mf2HH!L%Vj{plwj_EKe;=@-3{hm%Lu)h-v+X(W9|_ z17c8XV4zfl_d(wWt%KrxMtpQ>Q$RiLDK8_-G!GZAsWH>7lcW@-<@U;)%lh%`liDz6RLhJ|%3EKTW9;5_TwKyF%Ob_5yziT((fEyhsK zd4W1{U>US@r3ED}1Rm}*Zlos>FxusNUQ#Gid_DeKeO*;YUdLXK$iUuQ!#%>~mOJI| zz{nBZk;>nj4cwhsg$>iFfxJz@wid_m>dH(vQMNVUV|| z5gK-{+4hh0lut1r*RtAZpIUC`;MOUeFu^c@Wac50JEb7DgBJjiS&lWKT1X5Hx4lN& zM7In|MXWPQkv-H-P;>DrHw4R)sYa|6ITBM%DC5qsN+}5IP$G!Mcy%$BH4Y%)A{;1) z1L7v`9PX(lk}WDd?duD^F8frGuPerZMQX8rZn@c@Xj|6sRq(hC_GUn55>(a&FTCJt zz~cobk`sOb>(tU&z7G4;`tg2$N`4;uC`}}n<;AX0(LWD+Njce{!#W)?@n85l*3A(# z`@%25J~Dn z(y6D8wS$TW7BDU_%-OTQjhd!wDw z&L|+G9S79O(j$FC?Oph^v~vNN%BHhZ0VYGadu}LPDRd_yb1tIrk(dAH+mMfJbiWt> zte%gn9^PzUH$Q)eR5;f0?~f@J4hQc2;RGEEXuV|DT}uZ-v+h4Xt$N-^DqIdq_i8NVc+SHZqL70wU2_c1cUIw<@Jo1hpeJ?~d4Y~dMaUDhIu zmFaoqsc;S$_#W*ogXb7GVmZ4OVXO>$I#}|4tHL&%!cQH}OcT%S!9{Vr^Lz|jgYKyl2%Sx_93a1NCH0HrvVLD`RqSH^}d$ROUH2Rq-PSFqtKWL8P0Lv^%1 zfU*yZ>_gZBr97^J0vq1K{w@zmfa`vA&5*tnXY(2G`LY`6-_IXI)jDacP@PvR0@;>z%x1Bq2I z!p}n&^=5|edE-$&Lc!SlL~&$zuIUZ^!21)^8thU>&4AMBod-pQpHIWHHvPg2Telr};9BZrsI33D zG^>Yrj+92c_YNjISeoo+VwWuyzGV5vtK!UP^U+a0cid{=<0i@LPF}C%b>JZBIW7l= z+B(uvF~h6|O6i#gMOu1ZfaXuHg>~>e2r#59PS(OE_V~bmf|Qrd5Nd)_Q`{)$;Y!YU zhE)4ut7?k9T79{5xT(asS#%&zT2M^do>#+^Os|D?@a!BW&YZ!?TDT0JCo(xVWSmIu4TWgvaQoC!#;K=rrY5hHd4YL+fmO|Cfc|BwiNKAJNOgWc0ESy{F{9 zQQw?aPfgnRRb?kY0(EUS_$G(-Ddknw{_1w=0mj!;jHmt8$)b6_ruJ`b7a!m%+Fu97 z_}RY$9LCyHeDU1B0~|j?UiM>riSVp%9XNglZlzOvfa_y_b&YN8udi7g^sQIyGwVA+ z9{#Ms4~)NrUlun2d9gD?ezI=~ze*IxQ}1)g0>{tLm-TxM@j*Yww>D{>bqyW&h`t(l zoyz|D?b1_y+0o+#{f?st3;L|1PZxB-;TY*tUQpS;^)e9l$@VwX$UNF0Q2VVf{HNOf zWn#X~<7brn0Q35(?sv7izZ{iP|5g3Ht)9UV`^u@*!R(g*Ob`3`nXrq)M|(M};y30l z&fo#&wAn4~;@HV9UbUa;A$J!OmX;1K2ktK3nLvw7FM(c4@R;U=jrQ?tn2a5eo}8=n zkk6_-{<1>m19EDJox&F(F=av{qxMV9aPO9!y{tuTck6pi`jY`g!9zr>&USH38$=+QqyD+VDoYcyK&HCK1Ca zZIVurj?TB_FbjxHw+$oOGZdBq+#oe3w8?>3l9F;^fldw<4EJ zB9iP~MPyfD`?A%F2+#?lmD}e$ez>1T`xMM-!P}<3DpEroEJ92VGhi_Wl1(P#B(X>wXN++6nVQQS2!tUx zTSnF=CA|V1TKt*kP@D5JH33(j^hr@q!bLWKi=JU`9*2vvA{3t)xP>jx_VF2mt0z>j zmS=xtP2};Bfg5QG6bFd)WY&;yW6Q2{o~~kz8ceV<1R@OQH;oaQE0C4^nB2O^vCJwQ z1AL23H|*@Di#B%;(C%_b5>rupz=sk(4EO?t`nxnOWsXsU*cqBeQ3L~=0r3D?M_ZM0 zZkdZMQX6RxFdM(c1MxGBlA|uYlZ~A%4`nS+p>t3f=>|F%w(@*(Xx$9uQqtc{&r;@W zZp;mGveZ)0_e_tT-CZ(g`d}$=@a!C;=%{D<{2MeqFf$y`9MYS!&rU?~aglKitFHlU z1Nx592F36?_IMf{G#VC{ruLSkb2ZyB^)PYz>6`I9uBgn-n69ym@Z$qNJ;LMB&N-$8 zN4K{7h5E<3`qEz60ez)79NTig#JA0d_(}04@xyJyDhgU!`Roe;EFn zL%{8G0ZJ}FNd?Q4PinMbtZ~;@O*@!U_)!U@nWRLre+i92i4!WVDf_XUX-3&M^tk>B z=%dyaxhb>;1&rUC4{`nvg%>^IkMOd8nVX#^Q7RGfYLpN1fnx3;2HQG5g(S(tt~oZG z7+F23`C?5XQ%K2(eyk?+8&6dZt5L~(I;@-ri6;>!yy3W_2KC8vt^#y%GYZ;RjLg}C z$Fq%_bND*N25nUQLKNF|2dr~AoS`EzdL%}V0EPcF4zqN0Ez&(2qes^qi~#2_OD}8~ zw5HaKJh`ypfOQTtlqNrYxuTihd6k)u2u&r-z#pLCDca+6?Sx?;%|r-C_s^++sedZ< zH~lC2x%qfrdEY`>+FhWalF6k=@8Y(Qk3zWzWd@v3wuPm? zTt&!Kg^S42iBWSlNvdF?$kKqajjVqw9e8}TYO*^N6iv06BFho|p4s87KA>{>)x zEBF)XNw^;t*VRQDhn2^Z7*msKXDc~bvy+ZpPfR)+%2nVZ=`>)vNcOLFFjzhDEwQujBx_pJP{~pv`SNTwvDw6CReSs6=e_lV*L{fvhpWRvT|#&X;R>Nwln+K= zk_xjfsR&7hHiRlgz##!k0!+Y$i@fL&`AE(u&b&wJbaoN<#gmt1v5G}0R&BUNs^Kiw zIaw#hIx&jxiKMTKMhrSe_H>MkmM>afL%xPQmh|~S`O13kVeki)3jE;Le(=5@%;{V> z^X9mZ*+@HV+!4ozn=f1QWov#gVa~iu`O*;cl-8LS?^405R41*Y8*JSsZb=)}*E6=2 zGejw^J&IhER8odO63Ohm&iLtK)~)ioRbFKts(K#We3+CsQQp)_wGrz`76X}-I*h$E z_O$XiE!81mnTFPuYu0j2>7k^pJVKO7G?rah%QWgT;kCe)&FJ#FwQRN$=XTf8^n_TH z?!TY~kKVpu6(y1;ckdGByEst+#Tmz|S}tn`Qd+^JDM7h-!o4n}`0n!lq8oh@1$$Cz&x8ZI0D!8iGL(NxO$2L|}y0gOiie7i;LVGT< z=R&)`mmPC%89n5qtcm!&w=ycJXm6#N2ap~ zaGtd}`oE*}Lw%T=esx)ig@ISHl?>SVFbE!3&Ob@1?HUC!qo1vm8-^m9MB;0LD< zA%Ekml(Y=-EF8o8G-zuD>e?@uxGybaHZI}D8n^~J-iEhT7Vhc&1kL%q_MINL-^QNg zcMV(vFD-=V6CP^53QCVw*_W^zU;}I}jOu#S;1YHd)IDzfc5+V7CC-c9E9kodUInje z9%=6EUPRAD(rNt4buJR$MdEhYw)!s+{{_}f9A0N-VT8Q-pa%+fD6=vekLsas)#KpS z=H-7CM;{+KrM9LT-kmAs^6 z`-^b8YnQy!w_o`JdbqH-N@9OB{cX@MpT*Gf3+wK*R$IwmecX#`! zE>D3Gl5)*Y9;0p2w(H!qsP5uqq}#%Do5!eS7%CZV={~P}9z0JMy5Uc7fBSA~jK8!4 z-ES_9P?yVHB1`zmFf(1DE|asL$eU?)_G|bp?N;Z!w0{$ncB|trzviv~!~AxaR;2Aa z`FD}yv%h-|JU1j>w_aeM$H1PGTVe!%<@Ol7H6)JY^7Y?TJAF5=;wQk$;H=O1Q)>)`kB-o zDc&T-V#od!G#=SRXy)^wOU4!TX} zi~XH|I5fZFOB!~9Y0FgV9O!|f-=Oo0G!b&_=hIjG-uwxFljoyX0qL$@9b|rb z%OKB3?-I!K(QAV|AMySooabYgywkT|`2u>lk9s9gs^|Qu!I|gSZWGQt$NO_|o{!$3 zyyN?opFt1LM;u2P&hyc$f;=C+7Rd7v$L;outn+;I2IU>!ue|g3WyL?3KbJRGzcu{k z`JlsXSHGycM|Fy)xF`5oL-!t|RB78~PM*|FM!JO-=`M4>NSAp%o{CMrQ`yh3pM`sx zC-~xh)2%XXZn{j#8D8Bg?$TPsKWRlb__J_+y~B+kiM*L!cOO>pTUx%#c_}qtm%8P+ zY+0B4QsT+R_oll)oxLUGxdq*QEtj;G<4GV-yW@51)9g>9-*AuVAHiQA^z^Nepu~|p z8R>RSn?d2QyIG?m}SfGF{H0_Qe z<`lI#MQtqhS9S{9Q+<`4Xoch>Brn794C`mu-wX5X=h@#2$Jrle-{Dv*uj}GE%lflt zKbo$cLd%raV*2qoQ5@H;tNT=>j}x;jS(KQMlbPeX=Zz0e%AxTg`#(zW&+{=nmi~Ja zd=oqkp4R;)`I6ytlci^6&-lf2>0;BRrV7%<8LB3u8^=FE{IX-)708NSj?*%CMzRo#fO>EojgUye*FeG4xuHR3x`j>SyY2M`q;v z_1|x)?eSaDr{gMbQEgAbr&JLP!SCKT=hgNEat!wN8IZx=&VwY{>ir0PzSftZ(eKVZ zZ||e+8P4;}$LRK*J;#mRJoZCve;lM__z`M942IihKK2cFIJl2J@!Op`S4fU;xzT~_8^LMUQKYK^r?88yG2hV`ApSO4&++6=MSWutOE@Zxxe<{A| z2fx(+)yaQ&-pYK&d&qe?ckfti%ln7=k5YdRZmoWC;+p@*6G|nxF8o5m-Tr~rb6=d$ za)apa)?fCFA61Jji>nqdTfAoRy2Tq7*CXWbeUKKxr`pF}mR v9(|s3FVx5R1Nm`Kx$oP5{B#9#sPn@5ARZ_W-*-GOsQVA?zwWb>%Z=`>)vNcOLFFjzhDEwQujBx_pJP{~pv`SNTwvDw6CReSs6=e_lV*L{fvhpWRvT|#&X;R>Nwln+K= zk_xjfsR&7hHiRlgz##!k0!+Y$i@fL&`AE(u&b&wJbaoN<#gmt1v5G}0R&BUNs^Kiw zIaw#hIx&jxiKMTKMhrSe_H>MkmM>afL%xPQmh|~S`O13kVeki)3jE;Le(=5@%;{V> z^X9mZ*+@HV+!4ozn=f1QWov#gVa~iu`O*;cl-8LS?^405R41*Y8*JSsZb=)}*E6=2 zGejw^J&IhER8odO63Ohm&iLtK)~)ioRbFKts(K#We3+CsQQp)_wGrz`76X}-I*h$E z_O$XiE!81mnTFPuYu0j2>7k^pJVKO7G?rah%QWgT;kCe)&FJ#FwQRN$=XTf8^n_TH z?!TY~kKVpu6(y1;ckdGByEst+#Tmz|S}tn`Qd+^JDM7h-!o4n}`0n!lq8oh@1$$Cz&x8ZI0D!8iGL(NxO$2L|}y0gOiie7i;LVGT< z=R&)`mmPC%89n5qtcm!&w=ycJXm6#N2ap~ zaGtd}`oE*}Lw%T=esx)ig@ISHl?>SVFbE!3&Ob@1?HUC!qo1vm8-^m9MB;0LD< zA%Ekml(Y=-EF8o8G-zuD>e?@uxGybaHZI}D8n^~J-iEhT7Vhc&1kL%q_MINL-^QNg zcMV(vFD-=V6CP^53QCVw*_W^zU;}I}jOu#S;1YHd)IDzfc5+V7CC-c9E9kodUInje z9%=6EUPRAD(rNt4buJR$MdEhYw)!s+{{_}f9A0N-VT8Q-pa%+fD6=vekLsas)#KpS z=H-7CM;{+KrM9LT-kmAs^6 z`-^b8YnQy!w_o`JdbqH-N@9OB{cX@MpT*Gf3+wK*R$IwmecX#`! zE>D3Gl5)*Y9;0p2w(H!qsP5uqq}#%Do5!eS7%CZV={~P}9z0JMy5Uc7fBSA~jK8!4 z-ES_9P?yVHB1`zmFf(1DE|asL$eU?)_G|bp?N;Z!w0{$ncB|trzviv~!~AxaR;2Aa z`FD}yv%h-|JU1j>w_aeM$H1PGTVe!%<@Ol7H6)JY^7Y?TJAF5=;wQk$;H=O1Q)>)`kB-o zDc&T-V#od!G#=SRXy)^wOU4!TX} zi~XH|I5fZFOB!~9Y0FgV9O!|f-=Oo0G!b&_=hIjG-uwxFljoyX0qL$@9b|rb z%OKB3?-I!K(QAV|AMySooabYgywkT|`2u>lk9s9gs^|Qu!I|gSZWGQt$NO_|o{!$3 zyyN?opFt1LM;u2P&hyc$f;=C+7Rd7v$L;outn+;I2IU>!ue|g3WyL?3KbJRGzcu{k z`JlsXSHGycM|Fy)xF`5oL-!t|RB78~PM*|FM!JO-=`M4>NSAp%o{CMrQ`yh3pM`sx zC-~xh)2%XXZn{j#8D8Bg?$TPsKWRlb__J_+y~B+kiM*L!cOO>pTUx%#c_}qtm%8P+ zY+0B4QsT+R_oll)oxLUGxdq*QEtj;G<4GV-yW@51)9g>9-*AuVAHiQA^z^Nepu~|p z8R>RSn?d2QyIG?m}SfGF{H0_Qe z<`lI#MQtqhS9S{9Q+<`4Xoch>Brn794C`mu-wX5X=h@#2$Jrle-{Dv*uj}GE%lflt zKbo$cLd%raV*2qoQ5@H;tNT=>j}x;jS(KQMlbPeX=Zz0e%AxTg`#(zW&+{=nmi~Ja zd=oqkp4R;)`I6ytlci^6&-lf2>0;BRrV7%<8LB3u8^=FE{IX-)708NSj?*%CMzRo#fO>EojgUye*FeG4xuHR3x`j>SyY2M`q;v z_1|x)?eSaDr{gMbQEgAbr&JLP!SCKT=hgNEat!wN8IZx=&VwY{>ir0PzSftZ(eKVZ zZ||e+8P4;}$LRK*J;#mRJoZCve;lM__z`M942IihKK2cFIJl2J@!Op`S4fU;xzT~_8^LMUQKYK^r?88yG2hV`ApSO4&++6=MSWutOE@Zxxe<{A| z2fx(+)yaQ&-pYK&d&qe?ckfti%ln7=k5YdRZmoWC;+p@*6G|nxF8o5m-Tr~rb6=d$ za)apa)?fCFA61Jji>nqdTfAoRy2Tq7*CXWbeUKKxr`pF}mR v9(|s3FVx5R1Nm`Kx$oP5{B#9#sPn@5ARZ_W-*-GOsQVA?zwWb>%-ESMm5nmqZTk3MK1tG18Bxr?(i6u*xXiJu5nGsK41S6UjtqPXiDk+f$NPq~4 zP`E%)6qRMmex^>6pWA<+uxO{xiPQGEkNt1l-^}jZm*m7v8lX>ev-_Lx+1cZ}3+uU4E&;W#eRb z5iTq$w_CgI-mAft#SP*S_Qw>qYxjj$-R2i@SxgEzyMwNAahv0cYH=C~FHl{(txX5d zPE7Aw{*Tc22UmaY>Q7kH2d-Xob={>>eU&qrT%k;sxYS-ho+pduxvmgl@g8D9>Wbt6 z+MvWm_K^J+a8z(Awd}|E5_?Sgn!r(lJ?LBL6uIp6HMY@hu2~%PH7oWRxF+nd49jcS z$g%wf{6M=T{7T3t?6iP`ZwbFj6vq?tXBjwtKEdw>>{2^Ye2qzd{;GoB=qT@fNPdiL zt{6>N>ekzQK)TDQE@i33`}P=Mf2HH!L%Vj{plwj_EKe;=@-3{hm%Lu)h-v+X(W9|_ z17c8XV4zfl_d(wWt%KrxMtpQ>Q$RiLDK8_-G!GZAsWH>7lcW@-<@U;)%lh%`liDz6RLhJ|%3EKTW9;5_TwKyF%Ob_5yziT((fEyhsK zd4W1{U>US@r3ED}1Rm}*Zlos>FxusNUQ#Gid_DeKeO*;YUdLXK$iUuQ!#%>~mOJI| zz{nBZk;>nj4cwhsg$>iFfxJz@wid_m>dH(vQMNVUV|| z5gK-{+4hh0lut1r*RtAZpIUC`;MOUeFu^c@Wac50JEb7DgBJjiS&lWKT1X5Hx4lN& zM7In|MXWPQkv-H-P;>DrHw4R)sYa|6ITBM%DC5qsN+}5IP$G!Mcy%$BH4Y%)A{;1) z1L7v`9PX(lk}WDd?duD^F8frGuPerZMQX8rZn@c@Xj|6sRq(hC_GUn55>(a&FTCJt zz~cobk`sOb>(tU&z7G4;`tg2$N`4;uC`}}n<;AX0(LWD+Njce{!#W)?@n85l*3A(# z`@%25J~Dn z(y6D8wS$TW7BDU_%-OTQjhd!wDw z&L|+G9S79O(j$FC?Oph^v~vNN%BHhZ0VYGadu}LPDRd_yb1tIrk(dAH+mMfJbiWt> zte%gn9^PzUH$Q)eR5;f0?~f@J4hQc2;RGEEXuV|DT}uZ-v+h4Xt$N-^DqIdq_i8NVc+SHZqL70wU2_c1cUIw<@Jo1hpeJ?~d4Y~dMaUDhIu zmFaoqsc;S$_#W*ogXb7GVmZ4OVXO>$I#}|4tHL&%!cQH}OcT%S!9{Vr^Lz|jgYKyl2%Sx_93a1NCH0HrvVLD`RqSH^}d$ROUH2Rq-PSFqtKWL8P0Lv^%1 zfU*yZ>_gZBr97^J0vq1K{w@zmfa`vA&5*tnXY(2G`LY`6-_IXI)jDacP@PvR0@;>z%x1Bq2I z!p}n&^=5|edE-$&Lc!SlL~&$zuIUZ^!21)^8thU>&4AMBod-pQpHIWHHvPg2Telr};9BZrsI33D zG^>Yrj+92c_YNjISeoo+VwWuyzGV5vtK!UP^U+a0cid{=<0i@LPF}C%b>JZBIW7l= z+B(uvF~h6|O6i#gMOu1ZfaXuHg>~>e2r#59PS(OE_V~bmf|Qrd5Nd)_Q`{)$;Y!YU zhE)4ut7?k9T79{5xT(asS#%&zT2M^do>#+^Os|D?@a!BW&YZ!?TDT0JCo(xVWSmIu4TWgvaQoC!#;K=rrY5hHd4YL+fmO|Cfc|BwiNKAJNOgWc0ESy{F{9 zQQw?aPfgnRRb?kY0(EUS_$G(-Ddknw{_1w=0mj!;jHmt8$)b6_ruJ`b7a!m%+Fu97 z_}RY$9LCyHeDU1B0~|j?UiM>riSVp%9XNglZlzOvfa_y_b&YN8udi7g^sQIyGwVA+ z9{#Ms4~)NrUlun2d9gD?ezI=~ze*IxQ}1)g0>{tLm-TxM@j*Yww>D{>bqyW&h`t(l zoyz|D?b1_y+0o+#{f?st3;L|1PZxB-;TY*tUQpS;^)e9l$@VwX$UNF0Q2VVf{HNOf zWn#X~<7brn0Q35(?sv7izZ{iP|5g3Ht)9UV`^u@*!R(g*Ob`3`nXrq)M|(M};y30l z&fo#&wAn4~;@HV9UbUa;A$J!OmX;1K2ktK3nLvw7FM(c4@R;U=jrQ?tn2a5eo}8=n zkk6_-{<1>m19EDJox&F(F=av{qxMV9aPO9!y{tuTck6pi`jY`g!9zr>&USH38$=+QqyD+VDoYcyK&HCK1Ca zZIVurj?TB_FbjxHw+$oOGZdBq+#oe3w8?>3l9F;^fldw<4EJ zB9iP~MPyfD`?A%F2+#?lmD}e$ez>1T`xMM-!P}<3DpEroEJ92VGhi_Wl1(P#B(X>wXN++6nVQQS2!tUx zTSnF=CA|V1TKt*kP@D5JH33(j^hr@q!bLWKi=JU`9*2vvA{3t)xP>jx_VF2mt0z>j zmS=xtP2};Bfg5QG6bFd)WY&;yW6Q2{o~~kz8ceV<1R@OQH;oaQE0C4^nB2O^vCJwQ z1AL23H|*@Di#B%;(C%_b5>rupz=sk(4EO?t`nxnOWsXsU*cqBeQ3L~=0r3D?M_ZM0 zZkdZMQX6RxFdM(c1MxGBlA|uYlZ~A%4`nS+p>t3f=>|F%w(@*(Xx$9uQqtc{&r;@W zZp;mGveZ)0_e_tT-CZ(g`d}$=@a!C;=%{D<{2MeqFf$y`9MYS!&rU?~aglKitFHlU z1Nx592F36?_IMf{G#VC{ruLSkb2ZyB^)PYz>6`I9uBgn-n69ym@Z$qNJ;LMB&N-$8 zN4K{7h5E<3`qEz60ez)79NTig#JA0d_(}04@xyJyDhgU!`Roe;EFn zL%{8G0ZJ}FNd?Q4PinMbtZ~;@O*@!U_)!U@nWRLre+i92i4!WVDf_XUX-3&M^tk>B z=%dyaxhb>;1&rUC4{`nvg%>^IkMOd8nVX#^Q7RGfYLpN1fnx3;2HQG5g(S(tt~oZG z7+F23`C?5XQ%K2(eyk?+8&6dZt5L~(I;@-ri6;>!yy3W_2KC8vt^#y%GYZ;RjLg}C z$Fq%_bND*N25nUQLKNF|2dr~AoS`EzdL%}V0EPcF4zqN0Ez&(2qes^qi~#2_OD}8~ zw5HaKJh`ypfOQTtlqNrYxuTihd6k)u2u&r-z#pLCDca+6?Sx?;%|r-C_s^++sedZ< zH~lC2x%qfrdEY`>+FhWalF6k=@8Y(Qk3zWzWd@v3wuPm? zTt&!Kg^S42iBWSlNvdF?$kKqajjVqw9e8}TYO*^N6iv06BFho|p4s87KA>{>)x zEBF)XNw^;t*VRQDhn2^Z7*msKXDc~bvy+ZpPfR)+%2nVpos2.y = Sin(sprite->data[0] + 0x80, 30 - sprite->data[1] * 8); if (sprite->pos2.y == 0) - PlaySE12WithPanning(SE_W145B, BattleAnimAdjustPanning(63)); + PlaySE12WithPanning(SE_M_BUBBLE2, BattleAnimAdjustPanning(63)); if (moveAlongLinearPath(sprite)) { sprite->pos2.y = 0; sprite->data[0] = 0; sprite->callback = AnimItemSteal_Step2; - PlaySE12WithPanning(SE_W145B, BattleAnimAdjustPanning(-64)); + PlaySE12WithPanning(SE_M_BUBBLE2, BattleAnimAdjustPanning(-64)); } } @@ -4260,7 +4260,7 @@ static void AnimLockOnTarget_Step1(struct Sprite* sprite) sprite->callback = StartAnimLinearTranslation; StoreSpriteCallbackInData6(sprite, AnimLockOnTarget_Step2); sprite->data[5] += 0x100; - PlaySE12WithPanning(SE_W199, BattleAnimAdjustPanning(63)); + PlaySE12WithPanning(SE_M_LOCK_ON, BattleAnimAdjustPanning(63)); break; } @@ -4346,7 +4346,7 @@ static void AnimLockOnTarget_Step4(struct Sprite* sprite) sprite->data[2]++; pal = sprite->oam.paletteNum; LoadPalette(&gPlttBufferUnfaded[0x108 + pal * 16], pal * 16 | 0x101, 4); - PlaySE12WithPanning(SE_W043, BattleAnimAdjustPanning(63)); + PlaySE12WithPanning(SE_M_LEER, BattleAnimAdjustPanning(63)); } else if (sprite->data[1] == 0) { @@ -4821,7 +4821,7 @@ static void AnimSharpenSphere_Step(struct Sprite* sprite) { sprite->data[4]++; if (!(sprite->data[4] & 1)) - PlaySE12WithPanning(SE_W207B, sprite->data[5]); + PlaySE12WithPanning(SE_M_SWAGGER2, sprite->data[5]); } sprite->data[0] = 0; diff --git a/src/battle_anim_effects_2.c b/src/battle_anim_effects_2.c index f7d1eea107..d891a4d016 100755 --- a/src/battle_anim_effects_2.c +++ b/src/battle_anim_effects_2.c @@ -1632,7 +1632,7 @@ static void AirCutterProjectileStep1(u8 taskId) gTasks[taskId].data[gTasks[taskId].data[1] + 13] = spriteId; gTasks[taskId].data[0] = gTasks[taskId].data[3]; gTasks[taskId].data[1]++; - PlaySE12WithPanning(SE_W059B, BattleAnimAdjustPanning(-63)); + PlaySE12WithPanning(SE_M_BLIZZARD2, BattleAnimAdjustPanning(-63)); if (gTasks[taskId].data[1] > 2) gTasks[taskId].func = AirCutterProjectileStep2; } @@ -1829,7 +1829,7 @@ static void AnimBulletSeed_Step1(struct Sprite *sprite) int i; u16 rand; s16* ptr; - PlaySE12WithPanning(SE_W030, BattleAnimAdjustPanning(63)); + PlaySE12WithPanning(SE_M_HORN_ATTACK, BattleAnimAdjustPanning(63)); sprite->pos1.x += sprite->pos2.x; sprite->pos1.y += sprite->pos2.y; sprite->pos2.y = 0; @@ -2502,7 +2502,7 @@ static void AnimPencil_Step(struct Sprite *sprite) sprite->pos1.y -= 1; sprite->data[2]++; if (sprite->data[2] % 10 == 0) - PlaySE12WithPanning(SE_W166, sprite->data[6]); + PlaySE12WithPanning(SE_M_SKETCH, sprite->data[6]); } sprite->data[4] += sprite->data[3]; if (sprite->data[4] > 31) diff --git a/src/battle_anim_effects_3.c b/src/battle_anim_effects_3.c index afdc900494..bad46f1445 100755 --- a/src/battle_anim_effects_3.c +++ b/src/battle_anim_effects_3.c @@ -1647,7 +1647,7 @@ static void AnimClappingHand_Step(struct Sprite *sprite) sprite->data[2]++; if (sprite->data[3] == 0) { - PlaySE1WithPanning(SE_W227, BattleAnimAdjustPanning(-64)); + PlaySE1WithPanning(SE_M_ENCORE, BattleAnimAdjustPanning(-64)); } } } @@ -1931,7 +1931,7 @@ static void TormentAttacker_Step(u8 taskId) y = task->data[3] + task->data[5]; spriteId = CreateSprite(&gThoughtBubbleSpriteTemplate, x, y, 6 - task->data[1]); - PlaySE12WithPanning(SE_W118, BattleAnimAdjustPanning(-64)); + PlaySE12WithPanning(SE_M_METRONOME, BattleAnimAdjustPanning(-64)); if (spriteId != MAX_SPRITES) { @@ -2412,7 +2412,7 @@ void AnimTask_MorningSunLightBeam(u8 taskId) gTasks[taskId].data[11] = gBattle_BG1_Y; gTasks[taskId].data[0]++; - PlaySE12WithPanning(SE_W234, BattleAnimAdjustPanning(-64)); + PlaySE12WithPanning(SE_M_MORNING_SUN, BattleAnimAdjustPanning(-64)); break; case 1: if (gTasks[taskId].data[4]++ > 0) @@ -2447,7 +2447,7 @@ void AnimTask_MorningSunLightBeam(u8 taskId) { gTasks[taskId].data[3] = 0; gTasks[taskId].data[0] = 1; - PlaySE12WithPanning(SE_W234, BattleAnimAdjustPanning(-64)); + PlaySE12WithPanning(SE_M_MORNING_SUN, BattleAnimAdjustPanning(-64)); } break; case 4: @@ -4769,7 +4769,7 @@ static void AnimTask_MonToSubstituteDoll(u8 taskId) if (gSprites[spriteId].pos2.y == 0) { - PlaySE12WithPanning(SE_W145B, BattleAnimAdjustPanning(-64)); + PlaySE12WithPanning(SE_M_BUBBLE2, BattleAnimAdjustPanning(-64)); gTasks[taskId].data[10] -= 0x800; gTasks[taskId].data[0]++; } @@ -4791,7 +4791,7 @@ static void AnimTask_MonToSubstituteDoll(u8 taskId) if (gSprites[spriteId].pos2.y == 0) { - PlaySE12WithPanning(SE_W145B, BattleAnimAdjustPanning(-64)); + PlaySE12WithPanning(SE_M_BUBBLE2, BattleAnimAdjustPanning(-64)); DestroyAnimVisualTask(taskId); } break; @@ -4828,7 +4828,7 @@ static void AnimBlockX_Step(struct Sprite *sprite) sprite->pos2.y += 10; if (sprite->pos2.y >= 0) { - PlaySE12WithPanning(SE_W166, BattleAnimAdjustPanning(63)); + PlaySE12WithPanning(SE_M_SKETCH, BattleAnimAdjustPanning(63)); sprite->pos2.y = 0; sprite->data[0]++; } @@ -4838,7 +4838,7 @@ static void AnimBlockX_Step(struct Sprite *sprite) sprite->pos2.y = -(gSineTable[sprite->data[1]] >> 3); if (sprite->data[1] > 0x7F) { - PlaySE12WithPanning(SE_W166, BattleAnimAdjustPanning(63)); + PlaySE12WithPanning(SE_M_SKETCH, BattleAnimAdjustPanning(63)); sprite->data[1] = 0; sprite->pos2.y = 0; sprite->data[0]++; @@ -4857,7 +4857,7 @@ static void AnimBlockX_Step(struct Sprite *sprite) case 3: if (++sprite->data[1] > 8) { - PlaySE12WithPanning(SE_W043, BattleAnimAdjustPanning(63)); + PlaySE12WithPanning(SE_M_LEER, BattleAnimAdjustPanning(63)); sprite->data[1] = 0; sprite->data[0]++; } @@ -5152,7 +5152,7 @@ static void sub_815FE80(struct Sprite *sprite) case 0: if (gBattleAnimArgs[7] == -1) { - PlaySE12WithPanning(SE_W233, BattleAnimAdjustPanning(63)); + PlaySE12WithPanning(SE_M_VITAL_THROW, BattleAnimAdjustPanning(63)); sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y) + 16; sprite->data[0] = -32; sprite->data[7]++; diff --git a/src/battle_anim_electric.c b/src/battle_anim_electric.c index c153dbc105..a57e88b03d 100644 --- a/src/battle_anim_electric.c +++ b/src/battle_anim_electric.c @@ -1242,7 +1242,7 @@ static bool8 sub_810B430(struct Task *task, u8 taskId) if (task->data[4] == 0 && task->data[5] > 0) { task->data[14] += task->data[15]; - PlaySE12WithPanning(SE_W085, task->data[14]); + PlaySE12WithPanning(SE_M_THUNDERBOLT, task->data[14]); } if ((task->data[5] < 0 && task->data[7] <= task->data[8]) diff --git a/src/battle_anim_fire.c b/src/battle_anim_fire.c index f02ecae194..c8402f727c 100644 --- a/src/battle_anim_fire.c +++ b/src/battle_anim_fire.c @@ -1136,7 +1136,7 @@ static void AnimWillOWispOrb_Step(struct Sprite *sprite) if ((initialData5 == 0 || initialData5 > 196) && newData5 > 0 && sprite->data[7] == 0) { - PlaySE12WithPanning(SE_W172, gAnimCustomPanning); + PlaySE12WithPanning(SE_M_FLAME_WHEEL, gAnimCustomPanning); } } else diff --git a/src/battle_anim_ghost.c b/src/battle_anim_ghost.c index b8de6b0e1f..632954351c 100644 --- a/src/battle_anim_ghost.c +++ b/src/battle_anim_ghost.c @@ -252,7 +252,7 @@ static void AnimConfuseRayBallBounce_Step1(struct Sprite *sprite) return; if (r0 <= 0) return; - PlaySE12WithPanning(SE_W109, gAnimCustomPanning); + PlaySE12WithPanning(SE_M_CONFUSE_RAY, gAnimCustomPanning); } static void AnimConfuseRayBallBounce_Step2(struct Sprite *sprite) @@ -271,7 +271,7 @@ static void AnimConfuseRayBallBounce_Step2(struct Sprite *sprite) if (r2 == 0 || r2 > 196) { if (r0 > 0) - PlaySE(SE_W109); + PlaySE(SE_M_CONFUSE_RAY); } if (sprite->data[6] == 0) diff --git a/src/battle_anim_psychic.c b/src/battle_anim_psychic.c index 25340f9c6a..3f451998c4 100644 --- a/src/battle_anim_psychic.c +++ b/src/battle_anim_psychic.c @@ -1137,7 +1137,7 @@ static void AnimPsychoBoost(struct Sprite *sprite) case 1: if (sprite->affineAnimEnded) { - PlaySE12WithPanning(SE_W100, BattleAnimAdjustPanning(-64)); + PlaySE12WithPanning(SE_M_TELEPORT, BattleAnimAdjustPanning(-64)); ChangeSpriteAffineAnim(sprite, 1); sprite->data[0]++; } diff --git a/src/battle_anim_rock.c b/src/battle_anim_rock.c index 436ac60a3d..29ba493463 100644 --- a/src/battle_anim_rock.c +++ b/src/battle_anim_rock.c @@ -631,7 +631,7 @@ static void AnimTask_Rollout_Step(u8 taskId) task->data[0]++; } - PlaySE12WithPanning(SE_W029, task->data[13]); + PlaySE12WithPanning(SE_M_HEADBUTT, task->data[13]); break; case 1: if (--task->data[11] == 0) @@ -661,7 +661,7 @@ static void AnimTask_Rollout_Step(u8 taskId) task->data[9] = 0; sub_8111214(task); task->data[13] += task->data[14]; - PlaySE12WithPanning(SE_W091, task->data[13]); + PlaySE12WithPanning(SE_M_DIG, task->data[13]); } if (--task->data[8] == 0) diff --git a/src/battle_anim_special.c b/src/battle_anim_special.c index bf0d1d438d..3deb2065e2 100755 --- a/src/battle_anim_special.c +++ b/src/battle_anim_special.c @@ -788,7 +788,7 @@ static void sub_8171030(u8 taskId) { if (gSprites[gBattlerSpriteIds[GetBattlerAtPosition(B_POSITION_PLAYER_LEFT)]].animCmdIndex == 1) { - PlaySE12WithPanning(SE_NAGERU, 0); + PlaySE12WithPanning(SE_BALL_THROW, 0); gSprites[gTasks[taskId].data[0]].callback = sub_8171104; CreateTask(sub_81710A8, 10); gTasks[taskId].func = sub_8170EF0; @@ -873,7 +873,7 @@ static void sub_8171240(struct Sprite *sprite) taskId = sprite->data[5]; if (++gTasks[taskId].data[1] == 11) - PlaySE(SE_SUIKOMU); + PlaySE(SE_BALL_TRADE); switch (gTasks[taskId].data[0]) { @@ -952,16 +952,16 @@ static void sub_81713D0(struct Sprite *sprite) switch (bounceCount) { case 1: - PlaySE(SE_KON); + PlaySE(SE_BALL_BOUNCE_1); break; case 2: - PlaySE(SE_KON2); + PlaySE(SE_BALL_BOUNCE_2); break; case 3: - PlaySE(SE_KON3); + PlaySE(SE_BALL_BOUNCE_3); break; default: - PlaySE(SE_KON4); + PlaySE(SE_BALL_BOUNCE_4); break; } } @@ -1005,7 +1005,7 @@ static void sub_81714D4(struct Sprite *sprite) StartSpriteAffineAnim(sprite, 1); gBattleSpritesDataPtr->animationData->field_C = 0; sprite->callback = sub_8171520; - PlaySE(SE_BOWA); + PlaySE(SE_BALL); } } @@ -1147,7 +1147,7 @@ static void sub_8171520(struct Sprite *sprite) else StartSpriteAffineAnim(sprite, 1); - PlaySE(SE_BOWA); + PlaySE(SE_BALL); } break; } @@ -1178,7 +1178,7 @@ static void sub_81717F8(struct Sprite *sprite) sprite->data[4]++; if (sprite->data[4] == 40) { - PlaySE(SE_RG_GETTING); + PlaySE(SE_RG_BALL_CLICK); BlendPalettes(0x10000 << sprite->oam.paletteNum, 6, RGB(0, 0, 0)); sub_81719EC(sprite); } @@ -1191,7 +1191,7 @@ static void sub_81717F8(struct Sprite *sprite) gDoingBattleAnim = 0; UpdateOamPriorityInAllHealthboxes(1); m4aMPlayAllStop(); - PlaySE(MUS_RG_FAN6); + PlaySE(MUS_RG_CAUGHT_INTRO); } else if (sprite->data[4] == 315) { @@ -1403,7 +1403,7 @@ u8 AnimateBallOpenParticles(u8 x, u8 y, u8 priority, u8 subpriority, u8 ballId) gTasks[taskId].data[3] = priority; gTasks[taskId].data[4] = subpriority; gTasks[taskId].data[15] = ballId; - PlaySE(SE_BOWA2); + PlaySE(SE_BALL_OPEN); return taskId; } @@ -2113,7 +2113,7 @@ static void sub_8172FEC(u8 taskId) else pan = 63; - PlaySE12WithPanning(SE_REAPOKE, pan); + PlaySE12WithPanning(SE_SHINY, pan); } } diff --git a/src/battle_anim_utility_funcs.c b/src/battle_anim_utility_funcs.c index ab2f422646..9790cf9eac 100644 --- a/src/battle_anim_utility_funcs.c +++ b/src/battle_anim_utility_funcs.c @@ -535,9 +535,9 @@ static void sub_81170EC(u8 taskId) gTasks[taskId].func = sub_81172EC; if (sAnimStatsChangeData->data[0] == 0) - PlaySE12WithPanning(SE_W287, BattleAnimAdjustPanning2(-64)); + PlaySE12WithPanning(SE_M_STAT_INCREASE, BattleAnimAdjustPanning2(-64)); else - PlaySE12WithPanning(SE_W287B, BattleAnimAdjustPanning2(-64)); + PlaySE12WithPanning(SE_M_STAT_DECREASE, BattleAnimAdjustPanning2(-64)); } static void sub_81172EC(u8 taskId) diff --git a/src/battle_arena.c b/src/battle_arena.c index 42a967fc64..0ffba49108 100644 --- a/src/battle_arena.c +++ b/src/battle_arena.c @@ -563,7 +563,7 @@ u8 BattleArena_ShowJudgmentWindow(u8 *state) } break; case 4: - PlaySE(SE_HANTEI1); + PlaySE(SE_ARENA_TIMEUP1); ShowJudgmentSprite(80, 40, ARENA_CATEGORY_MIND, B_POSITION_PLAYER_LEFT); ShowJudgmentSprite(160, 40, ARENA_CATEGORY_MIND, B_POSITION_OPPONENT_LEFT); BattleStringExpandPlaceholdersToDisplayedString(gText_Judgement); @@ -572,7 +572,7 @@ u8 BattleArena_ShowJudgmentWindow(u8 *state) ret = 1; break; case 5: - PlaySE(SE_HANTEI1); + PlaySE(SE_ARENA_TIMEUP1); ShowJudgmentSprite(80, 56, ARENA_CATEGORY_SKILL, B_POSITION_PLAYER_LEFT); ShowJudgmentSprite(160, 56, ARENA_CATEGORY_SKILL, B_POSITION_OPPONENT_LEFT); BattleStringExpandPlaceholdersToDisplayedString(gText_Judgement); @@ -581,7 +581,7 @@ u8 BattleArena_ShowJudgmentWindow(u8 *state) ret = 1; break; case 6: - PlaySE(SE_HANTEI1); + PlaySE(SE_ARENA_TIMEUP1); ShowJudgmentSprite(80, 72, ARENA_CATEGORY_BODY, B_POSITION_PLAYER_LEFT); ShowJudgmentSprite(160, 72, ARENA_CATEGORY_BODY, B_POSITION_OPPONENT_LEFT); BattleStringExpandPlaceholdersToDisplayedString(gText_Judgement); @@ -590,7 +590,7 @@ u8 BattleArena_ShowJudgmentWindow(u8 *state) ret = 1; break; case 7: - PlaySE(SE_HANTEI2); + PlaySE(SE_ARENA_TIMEUP2); if (gBattleTextBuff1[0] > gBattleTextBuff2[0]) { ret = 2; diff --git a/src/battle_bg.c b/src/battle_bg.c index 00c504bfd7..7c9b05b25c 100644 --- a/src/battle_bg.c +++ b/src/battle_bg.c @@ -1105,7 +1105,7 @@ void InitLinkBattleVsScreen(u8 taskId) if (gTasks[taskId].data[5] != 0) DrawLinkBattleVsScreenOutcomeText(); - PlaySE(SE_W231); + PlaySE(SE_M_HARDEN); DestroyTask(taskId); gSprites[gBattleStruct->linkBattleVsSpriteId_V].invisible = FALSE; gSprites[gBattleStruct->linkBattleVsSpriteId_S].invisible = FALSE; diff --git a/src/battle_controller_link_opponent.c b/src/battle_controller_link_opponent.c index ce22c605f0..9bc4713cd5 100644 --- a/src/battle_controller_link_opponent.c +++ b/src/battle_controller_link_opponent.c @@ -1357,7 +1357,7 @@ static void LinkOpponentHandleFaintAnimation(void) if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; - PlaySE12WithPanning(SE_POKE_DEAD, SOUND_PAN_TARGET); + PlaySE12WithPanning(SE_FAINT, SOUND_PAN_TARGET); gSprites[gBattlerSpriteIds[gActiveBattler]].callback = SpriteCB_FaintOpponentMon; gBattlerControllerFuncs[gActiveBattler] = sub_8064C14; } diff --git a/src/battle_controller_link_partner.c b/src/battle_controller_link_partner.c index ece4c24bc8..79f56aaed0 100644 --- a/src/battle_controller_link_partner.c +++ b/src/battle_controller_link_partner.c @@ -1179,7 +1179,7 @@ static void LinkPartnerHandleFaintAnimation(void) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); - PlaySE12WithPanning(SE_POKE_DEAD, SOUND_PAN_ATTACKER); + PlaySE12WithPanning(SE_FAINT, SOUND_PAN_ATTACKER); gSprites[gBattlerSpriteIds[gActiveBattler]].data[1] = 0; gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = 5; gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_8039C00; diff --git a/src/battle_controller_opponent.c b/src/battle_controller_opponent.c index daf2c260e4..a82351ed7a 100644 --- a/src/battle_controller_opponent.c +++ b/src/battle_controller_opponent.c @@ -1394,7 +1394,7 @@ static void OpponentHandleFaintAnimation(void) if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; - PlaySE12WithPanning(SE_POKE_DEAD, SOUND_PAN_TARGET); + PlaySE12WithPanning(SE_FAINT, SOUND_PAN_TARGET); gSprites[gBattlerSpriteIds[gActiveBattler]].callback = SpriteCB_FaintOpponentMon; gBattlerControllerFuncs[gActiveBattler] = sub_805FAC4; } diff --git a/src/battle_controller_player.c b/src/battle_controller_player.c index 08ce9f09c2..259b200357 100644 --- a/src/battle_controller_player.c +++ b/src/battle_controller_player.c @@ -853,7 +853,7 @@ static void sub_80586F8(void) { if (gReceivedRemoteLinkPlayers == 0) { - m4aSongNumStop(SE_HINSI); + m4aSongNumStop(SE_LOW_HEALTH); gMain.inBattle = 0; gMain.callback1 = gPreBattleCallback1; SetMainCallback2(sub_8038D64); @@ -866,7 +866,7 @@ static void sub_80586F8(void) { if (IsLinkTaskFinished()) { - m4aSongNumStop(SE_HINSI); + m4aSongNumStop(SE_LOW_HEALTH); gMain.inBattle = 0; gMain.callback1 = gPreBattleCallback1; SetMainCallback2(sub_8038D64); @@ -895,7 +895,7 @@ void sub_80587B0(void) } else { - m4aSongNumStop(SE_HINSI); + m4aSongNumStop(SE_LOW_HEALTH); gMain.inBattle = 0; gMain.callback1 = gPreBattleCallback1; SetMainCallback2(gMain.savedCallback); @@ -2392,7 +2392,7 @@ static void PlayerHandleFaintAnimation(void) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); - PlaySE12WithPanning(SE_POKE_DEAD, SOUND_PAN_ATTACKER); + PlaySE12WithPanning(SE_FAINT, SOUND_PAN_ATTACKER); gSprites[gBattlerSpriteIds[gActiveBattler]].data[1] = 0; gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = 5; gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_8039C00; diff --git a/src/battle_controller_player_partner.c b/src/battle_controller_player_partner.c index 21c1fdd5bc..fd66167468 100644 --- a/src/battle_controller_player_partner.c +++ b/src/battle_controller_player_partner.c @@ -1371,7 +1371,7 @@ static void PlayerPartnerHandleFaintAnimation(void) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); - PlaySE12WithPanning(SE_POKE_DEAD, SOUND_PAN_ATTACKER); + PlaySE12WithPanning(SE_FAINT, SOUND_PAN_ATTACKER); gSprites[gBattlerSpriteIds[gActiveBattler]].data[1] = 0; gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = 5; gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_8039C00; diff --git a/src/battle_controller_recorded_opponent.c b/src/battle_controller_recorded_opponent.c index 35383611bb..92e8d23867 100644 --- a/src/battle_controller_recorded_opponent.c +++ b/src/battle_controller_recorded_opponent.c @@ -1284,7 +1284,7 @@ static void RecordedOpponentHandleFaintAnimation(void) if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; - PlaySE12WithPanning(SE_POKE_DEAD, SOUND_PAN_TARGET); + PlaySE12WithPanning(SE_FAINT, SOUND_PAN_TARGET); gSprites[gBattlerSpriteIds[gActiveBattler]].callback = SpriteCB_FaintOpponentMon; gBattlerControllerFuncs[gActiveBattler] = sub_8186D58; } diff --git a/src/battle_controller_recorded_player.c b/src/battle_controller_recorded_player.c index 5f3b3ea65a..2362e3c847 100644 --- a/src/battle_controller_recorded_player.c +++ b/src/battle_controller_recorded_player.c @@ -1286,7 +1286,7 @@ static void RecordedPlayerHandleFaintAnimation(void) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); - PlaySE12WithPanning(SE_POKE_DEAD, -64); + PlaySE12WithPanning(SE_FAINT, -64); gSprites[gBattlerSpriteIds[gActiveBattler]].data[1] = 0; gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = 5; gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_8039C00; diff --git a/src/battle_gfx_sfx_util.c b/src/battle_gfx_sfx_util.c index 50a5f8ad5a..83818798a2 100644 --- a/src/battle_gfx_sfx_util.c +++ b/src/battle_gfx_sfx_util.c @@ -1058,7 +1058,7 @@ void HandleLowHpMusicChange(struct Pokemon *mon, u8 battlerId) if (!gBattleSpritesDataPtr->battlerData[battlerId].lowHpSong) { if (!gBattleSpritesDataPtr->battlerData[battlerId ^ BIT_FLANK].lowHpSong) - PlaySE(SE_HINSI); + PlaySE(SE_LOW_HEALTH); gBattleSpritesDataPtr->battlerData[battlerId].lowHpSong = 1; } } @@ -1067,12 +1067,12 @@ void HandleLowHpMusicChange(struct Pokemon *mon, u8 battlerId) gBattleSpritesDataPtr->battlerData[battlerId].lowHpSong = 0; if (!IsDoubleBattle()) { - m4aSongNumStop(SE_HINSI); + m4aSongNumStop(SE_LOW_HEALTH); return; } if (IsDoubleBattle() && !gBattleSpritesDataPtr->battlerData[battlerId ^ BIT_FLANK].lowHpSong) { - m4aSongNumStop(SE_HINSI); + m4aSongNumStop(SE_LOW_HEALTH); return; } } @@ -1086,7 +1086,7 @@ void BattleStopLowHpSound(void) if (IsDoubleBattle()) gBattleSpritesDataPtr->battlerData[playerBattler ^ BIT_FLANK].lowHpSong = 0; - m4aSongNumStop(SE_HINSI); + m4aSongNumStop(SE_LOW_HEALTH); } u8 GetMonHPBarLevel(struct Pokemon *mon) diff --git a/src/battle_interface.c b/src/battle_interface.c index 12273addb1..719af6a064 100644 --- a/src/battle_interface.c +++ b/src/battle_interface.c @@ -1649,7 +1649,7 @@ u8 CreatePartyStatusSummarySprites(u8 battlerId, struct HpAndStatus *partyInfo, gBattleSpritesDataPtr->animationData->field_9_x1C++; } - PlaySE12WithPanning(SE_TB_START, 0); + PlaySE12WithPanning(SE_BALL_TRAY_ENTER, 0); return taskId; } @@ -1852,9 +1852,9 @@ static void SpriteCB_StatusSummaryBallsOnBattleStart(struct Sprite *sprite) pan = SOUND_PAN_ATTACKER; if (sprite->data[7] != 0) - PlaySE2WithPanning(SE_TB_KARA, pan); + PlaySE2WithPanning(SE_BALL_TRAY_EXIT, pan); else - PlaySE1WithPanning(SE_TB_KON, pan); + PlaySE1WithPanning(SE_BALL_TRAY_BALL, pan); sprite->callback = SpriteCallbackDummy; } diff --git a/src/battle_main.c b/src/battle_main.c index 0ea19dfaa9..43ee1dde12 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -1869,7 +1869,7 @@ static void FreeRestoreBattleData(void) gScanlineEffect.state = 3; gMain.inBattle = 0; ZeroEnemyPartyMons(); - m4aSongNumStop(SE_HINSI); + m4aSongNumStop(SE_LOW_HEALTH); FreeMonSpritesGfx(); FreeBattleSpritesData(); FreeBattleResources(); @@ -2114,7 +2114,7 @@ void sub_8038B74(struct Sprite *sprite) { StartSpriteAffineAnim(sprite, 1); sprite->callback = sub_8038B04; - PlaySE(SE_BT_START); + PlaySE(SE_MUGSHOT); } static void sub_8038B94(u8 taskId) @@ -5019,9 +5019,9 @@ static void HandleEndTurn_BattleWon(void) gBattlescriptCurrInstr = BattleScript_FrontierTrainerBattleWon; if (gTrainerBattleOpponent_A == TRAINER_FRONTIER_BRAIN) - PlayBGM(MUS_KACHI3); + PlayBGM(MUS_VICTORY_GYM_LEADER); else - PlayBGM(MUS_KACHI1); + PlayBGM(MUS_VICTORY_TRAINER); } else if (gBattleTypeFlags & BATTLE_TYPE_TRAINER && !(gBattleTypeFlags & BATTLE_TYPE_LINK)) { @@ -5032,7 +5032,7 @@ static void HandleEndTurn_BattleWon(void) { case TRAINER_CLASS_ELITE_FOUR: case TRAINER_CLASS_CHAMPION: - PlayBGM(MUS_KACHI5); + PlayBGM(MUS_VICTORY_LEAGUE); break; case TRAINER_CLASS_TEAM_AQUA: case TRAINER_CLASS_TEAM_MAGMA: @@ -5040,13 +5040,13 @@ static void HandleEndTurn_BattleWon(void) case TRAINER_CLASS_AQUA_LEADER: case TRAINER_CLASS_MAGMA_ADMIN: case TRAINER_CLASS_MAGMA_LEADER: - PlayBGM(MUS_KACHI4); + PlayBGM(MUS_VICTORY_AQUA_MAGMA); break; case TRAINER_CLASS_LEADER: - PlayBGM(MUS_KACHI3); + PlayBGM(MUS_VICTORY_GYM_LEADER); break; default: - PlayBGM(MUS_KACHI1); + PlayBGM(MUS_VICTORY_TRAINER); break; } } @@ -5279,7 +5279,7 @@ static void ReturnFromBattleToOverworld(void) SetRoamerInactive(); } - m4aSongNumStop(SE_HINSI); + m4aSongNumStop(SE_LOW_HEALTH); SetMainCallback2(gMain.savedCallback); } @@ -5826,7 +5826,7 @@ static void HandleAction_GoNear(void) static void HandleAction_SafariZoneRun(void) { gBattlerAttacker = gBattlerByTurnOrder[gCurrentTurnActionNumber]; - PlaySE(SE_NIGERU); + PlaySE(SE_FLEE); gCurrentTurnActionNumber = gBattlersCount; gBattleOutcome = B_OUTCOME_RAN; } diff --git a/src/battle_message.c b/src/battle_message.c index 191fffb016..59ad0cee4d 100644 --- a/src/battle_message.c +++ b/src/battle_message.c @@ -315,23 +315,23 @@ static const u8 sText_StatsWontIncrease2[] = _("{B_ATK_NAME_WITH_PREFIX}'s stats static const u8 sText_StatsWontDecrease2[] = _("{B_DEF_NAME_WITH_PREFIX}'s stats won't\ngo any lower!"); static const u8 sText_CriticalHit[] = _("A critical hit!"); static const u8 sText_OneHitKO[] = _("It's a one-hit KO!"); -static const u8 sText_123Poof[] = _("{PAUSE 32}1, {PAUSE 15}2, and{PAUSE 15}… {PAUSE 15}… {PAUSE 15}… {PAUSE 15}{PLAY_SE SE_KON}Poof!\p"); +static const u8 sText_123Poof[] = _("{PAUSE 32}1, {PAUSE 15}2, and{PAUSE 15}… {PAUSE 15}… {PAUSE 15}… {PAUSE 15}{PLAY_SE SE_BALL_BOUNCE_1}Poof!\p"); static const u8 sText_AndEllipsis[] = _("And…\p"); static const u8 sText_HMMovesCantBeForgotten[] = _("HM moves can't be\nforgotten now.\p"); static const u8 sText_NotVeryEffective[] = _("It's not very effective…"); static const u8 sText_SuperEffective[] = _("It's super effective!"); -static const u8 sText_GotAwaySafely[] = _("{PLAY_SE SE_NIGERU}Got away safely!\p"); -static const u8 sText_PkmnFledUsingIts[] = _("{PLAY_SE SE_NIGERU}{B_ATK_NAME_WITH_PREFIX} fled\nusing its {B_LAST_ITEM}!\p"); -static const u8 sText_PkmnFledUsing[] = _("{PLAY_SE SE_NIGERU}{B_ATK_NAME_WITH_PREFIX} fled\nusing {B_ATK_ABILITY}!\p"); -static const u8 sText_WildPkmnFled[] = _("{PLAY_SE SE_NIGERU}Wild {B_BUFF1} fled!"); +static const u8 sText_GotAwaySafely[] = _("{PLAY_SE SE_FLEE}Got away safely!\p"); +static const u8 sText_PkmnFledUsingIts[] = _("{PLAY_SE SE_FLEE}{B_ATK_NAME_WITH_PREFIX} fled\nusing its {B_LAST_ITEM}!\p"); +static const u8 sText_PkmnFledUsing[] = _("{PLAY_SE SE_FLEE}{B_ATK_NAME_WITH_PREFIX} fled\nusing {B_ATK_ABILITY}!\p"); +static const u8 sText_WildPkmnFled[] = _("{PLAY_SE SE_FLEE}Wild {B_BUFF1} fled!"); static const u8 sText_PlayerDefeatedLinkTrainer[] = _("Player defeated\n{B_LINK_OPPONENT1_NAME}!"); static const u8 sText_TwoLinkTrainersDefeated[] = _("Player beat {B_LINK_OPPONENT1_NAME}\nand {B_LINK_OPPONENT2_NAME}!"); static const u8 sText_PlayerLostAgainstLinkTrainer[] = _("Player lost against\n{B_LINK_OPPONENT1_NAME}!"); static const u8 sText_PlayerLostToTwo[] = _("Player lost to {B_LINK_OPPONENT1_NAME}\nand {B_LINK_OPPONENT2_NAME}!"); static const u8 sText_PlayerBattledToDrawLinkTrainer[] = _("Player battled to a draw against\n{B_LINK_OPPONENT1_NAME}!"); static const u8 sText_PlayerBattledToDrawVsTwo[] = _("Player battled to a draw against\n{B_LINK_OPPONENT1_NAME} and {B_LINK_OPPONENT2_NAME}!"); -static const u8 sText_WildFled[] = _("{PLAY_SE SE_NIGERU}{B_LINK_OPPONENT1_NAME} fled!"); -static const u8 sText_TwoWildFled[] = _("{PLAY_SE SE_NIGERU}{B_LINK_OPPONENT1_NAME} and\n{B_LINK_OPPONENT2_NAME} fled!"); +static const u8 sText_WildFled[] = _("{PLAY_SE SE_FLEE}{B_LINK_OPPONENT1_NAME} fled!"); +static const u8 sText_TwoWildFled[] = _("{PLAY_SE SE_FLEE}{B_LINK_OPPONENT1_NAME} and\n{B_LINK_OPPONENT2_NAME} fled!"); static const u8 sText_NoRunningFromTrainers[] = _("No! There's no running\nfrom a TRAINER battle!\p"); static const u8 sText_CantEscape[] = _("Can't escape!\p"); static const u8 sText_DontLeaveBirch[] = _("PROF. BIRCH: Don't leave me like this!\p"); @@ -381,7 +381,7 @@ static const u8 sText_PkmnCuriousAboutX[] = _("{B_OPPONENT_MON1_NAME} is curious static const u8 sText_PkmnEnthralledByX[] = _("{B_OPPONENT_MON1_NAME} is enthralled by\nthe {B_BUFF1}!"); static const u8 sText_PkmnIgnoredX[] = _("{B_OPPONENT_MON1_NAME} completely ignored\nthe {B_BUFF1}!"); static const u8 sText_ThrewPokeblockAtPkmn[] = _("{B_PLAYER_NAME} threw a {POKEBLOCK}\nat the {B_OPPONENT_MON1_NAME}!"); -static const u8 sText_OutOfSafariBalls[] = _("{PLAY_SE SE_PINPON}ANNOUNCER: You're out of\nSAFARI BALLS! Game over!\p"); +static const u8 sText_OutOfSafariBalls[] = _("{PLAY_SE SE_DING_DONG}ANNOUNCER: You're out of\nSAFARI BALLS! Game over!\p"); static const u8 sText_OpponentMon1Appeared[] = _("{B_OPPONENT_MON1_NAME} appeared!\p"); static const u8 sText_WildPkmnAppeared[] = _("Wild {B_OPPONENT_MON1_NAME} appeared!\p"); static const u8 sText_WildPkmnAppeared2[] = _("Wild {B_OPPONENT_MON1_NAME} appeared!\p"); @@ -474,8 +474,8 @@ static const u8 sText_PkmnBrokeFree[] = _("Oh, no!\nThe POKéMON broke free!"); static const u8 sText_ItAppearedCaught[] = _("Aww!\nIt appeared to be caught!"); static const u8 sText_AarghAlmostHadIt[] = _("Aargh!\nAlmost had it!"); static const u8 sText_ShootSoClose[] = _("Shoot!\nIt was so close, too!"); -static const u8 sText_GotchaPkmnCaught[] = _("Gotcha!\n{B_OPPONENT_MON1_NAME} was caught!{WAIT_SE}{PLAY_BGM MUS_KACHI22}\p"); -static const u8 sText_GotchaPkmnCaught2[] = _("Gotcha!\n{B_OPPONENT_MON1_NAME} was caught!{WAIT_SE}{PLAY_BGM MUS_KACHI22}{PAUSE 127}"); +static const u8 sText_GotchaPkmnCaught[] = _("Gotcha!\n{B_OPPONENT_MON1_NAME} was caught!{WAIT_SE}{PLAY_BGM MUS_CAUGHT}\p"); +static const u8 sText_GotchaPkmnCaught2[] = _("Gotcha!\n{B_OPPONENT_MON1_NAME} was caught!{WAIT_SE}{PLAY_BGM MUS_CAUGHT}{PAUSE 127}"); static const u8 sText_GiveNicknameCaptured[] = _("Give a nickname to the\ncaptured {B_OPPONENT_MON1_NAME}?"); static const u8 sText_PkmnSentToPC[] = _("{B_OPPONENT_MON1_NAME} was sent to\n{B_PC_CREATOR_NAME} PC."); static const u8 sText_Someones[] = _("someone's"); @@ -1346,7 +1346,7 @@ static const u8 sText_QuestionForfeitMatch[] = _("Would you like to forfeit the static const u8 sText_ForfeitedMatch[] = _("{B_PLAYER_NAME} forfeited the match!"); static const u8 sText_Trainer1WinText[] = _("{B_TRAINER1_WIN_TEXT}"); static const u8 sText_Trainer2WinText[] = _("{B_TRAINER2_WIN_TEXT}"); -static const u8 sText_Trainer1Fled[] = _( "{PLAY_SE SE_NIGERU}{B_TRAINER1_CLASS} {B_TRAINER1_NAME} fled!"); +static const u8 sText_Trainer1Fled[] = _( "{PLAY_SE SE_FLEE}{B_TRAINER1_CLASS} {B_TRAINER1_NAME} fled!"); static const u8 sText_PlayerLostAgainstTrainer1[] = _("Player lost against\n{B_TRAINER1_CLASS} {B_TRAINER1_NAME}!"); static const u8 sText_PlayerBattledToDrawTrainer1[] = _("Player battled to a draw against\n{B_TRAINER1_CLASS} {B_TRAINER1_NAME}!"); const u8 gText_RecordBattleToPass[] = _("Would you like to record your battle\non your FRONTIER PASS?"); diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index b2e02b2876..a41d528450 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -1977,11 +1977,11 @@ static void Cmd_effectivenesssound(void) switch (gMoveResultFlags & (u8)(~(MOVE_RESULT_MISSED))) { case MOVE_RESULT_SUPER_EFFECTIVE: - BtlController_EmitPlaySE(0, SE_KOUKA_H); + BtlController_EmitPlaySE(0, SE_SUPER_EFFECTIVE); MarkBattlerForControllerExec(gActiveBattler); break; case MOVE_RESULT_NOT_VERY_EFFECTIVE: - BtlController_EmitPlaySE(0, SE_KOUKA_L); + BtlController_EmitPlaySE(0, SE_NOT_EFFECTIVE); MarkBattlerForControllerExec(gActiveBattler); break; case MOVE_RESULT_DOESNT_AFFECT_FOE: @@ -1994,17 +1994,17 @@ static void Cmd_effectivenesssound(void) default: if (gMoveResultFlags & MOVE_RESULT_SUPER_EFFECTIVE) { - BtlController_EmitPlaySE(0, SE_KOUKA_H); + BtlController_EmitPlaySE(0, SE_SUPER_EFFECTIVE); MarkBattlerForControllerExec(gActiveBattler); } else if (gMoveResultFlags & MOVE_RESULT_NOT_VERY_EFFECTIVE) { - BtlController_EmitPlaySE(0, SE_KOUKA_L); + BtlController_EmitPlaySE(0, SE_NOT_EFFECTIVE); MarkBattlerForControllerExec(gActiveBattler); } else if (!(gMoveResultFlags & (MOVE_RESULT_DOESNT_AFFECT_FOE | MOVE_RESULT_FAILED))) { - BtlController_EmitPlaySE(0, SE_KOUKA_M); + BtlController_EmitPlaySE(0, SE_EFFECTIVE); MarkBattlerForControllerExec(gActiveBattler); } break; @@ -3320,7 +3320,7 @@ static void Cmd_getexp(void) if (!(gBattleTypeFlags & BATTLE_TYPE_TRAINER) && gBattleMons[0].hp && !gBattleStruct->wildVictorySong) { BattleStopLowHpSound(); - PlayBGM(MUS_KACHI2); + PlayBGM(MUS_VICTORY_WILD); gBattleStruct->wildVictorySong++; } @@ -6428,7 +6428,7 @@ static void Cmd_various(void) gBattleOutcome = B_OUTCOME_MON_TELEPORTED; break; case VARIOUS_PLAY_TRAINER_DEFEATED_MUSIC: - BtlController_EmitPlayFanfareOrBGM(0, MUS_KACHI1, TRUE); + BtlController_EmitPlayFanfareOrBGM(0, MUS_VICTORY_TRAINER, TRUE); MarkBattlerForControllerExec(gActiveBattler); break; } diff --git a/src/battle_setup.c b/src/battle_setup.c index 0c0ef72d31..81c7295bca 100644 --- a/src/battle_setup.c +++ b/src/battle_setup.c @@ -518,22 +518,22 @@ void BattleSetup_StartLegendaryBattle(void) default: case SPECIES_GROUDON: gBattleTypeFlags |= BATTLE_TYPE_GROUDON; - CreateBattleStartTask(B_TRANSITION_GROUDON, MUS_BATTLE34); + CreateBattleStartTask(B_TRANSITION_GROUDON, MUS_VS_KYOGRE_GROUDON); break; case SPECIES_KYOGRE: gBattleTypeFlags |= BATTLE_TYPE_KYOGRE; - CreateBattleStartTask(B_TRANSITION_KYOGRE, MUS_BATTLE34); + CreateBattleStartTask(B_TRANSITION_KYOGRE, MUS_VS_KYOGRE_GROUDON); break; case SPECIES_RAYQUAZA: gBattleTypeFlags |= BATTLE_TYPE_RAYQUAZA; - CreateBattleStartTask(B_TRANSITION_RAYQUAZA, MUS_VS_REKKU); + CreateBattleStartTask(B_TRANSITION_RAYQUAZA, MUS_VS_RAYQUAZA); break; case SPECIES_DEOXYS: - CreateBattleStartTask(B_TRANSITION_BLUR, MUS_RG_VS_DEO); + CreateBattleStartTask(B_TRANSITION_BLUR, MUS_RG_VS_DEOXYS); break; case SPECIES_LUGIA: case SPECIES_HO_OH: - CreateBattleStartTask(B_TRANSITION_BLUR, MUS_RG_VS_DEN); + CreateBattleStartTask(B_TRANSITION_BLUR, MUS_RG_VS_LEGEND); break; case SPECIES_MEW: CreateBattleStartTask(B_TRANSITION_GRID_SQUARES, MUS_VS_MEW); @@ -553,9 +553,9 @@ void StartGroudonKyogreBattle(void) gBattleTypeFlags = BATTLE_TYPE_LEGENDARY | BATTLE_TYPE_KYOGRE_GROUDON; if (gGameVersion == VERSION_RUBY) - CreateBattleStartTask(B_TRANSITION_SHARDS, MUS_BATTLE34); // GROUDON + CreateBattleStartTask(B_TRANSITION_SHARDS, MUS_VS_KYOGRE_GROUDON); // GROUDON else - CreateBattleStartTask(B_TRANSITION_RIPPLE, MUS_BATTLE34); // KYOGRE + CreateBattleStartTask(B_TRANSITION_RIPPLE, MUS_VS_KYOGRE_GROUDON); // KYOGRE IncrementGameStat(GAME_STAT_TOTAL_BATTLES); IncrementGameStat(GAME_STAT_WILD_BATTLES); @@ -588,7 +588,7 @@ void StartRegiBattle(void) transitionId = B_TRANSITION_GRID_SQUARES; break; } - CreateBattleStartTask(transitionId, MUS_BATTLE36); + CreateBattleStartTask(transitionId, MUS_VS_REGI); IncrementGameStat(GAME_STAT_TOTAL_BATTLES); IncrementGameStat(GAME_STAT_WILD_BATTLES); @@ -1454,46 +1454,46 @@ void SetUpTrainerEncounterMusic(void) switch (GetTrainerEncounterMusicId(trainerId)) { case TRAINER_ENCOUNTER_MUSIC_MALE: - music = MUS_BOYEYE; + music = MUS_ENCOUNTER_MALE; break; case TRAINER_ENCOUNTER_MUSIC_FEMALE: - music = MUS_GIRLEYE; + music = MUS_ENCOUNTER_FEMALE; break; case TRAINER_ENCOUNTER_MUSIC_GIRL: - music = MUS_SYOUJOEYE; + music = MUS_ENCOUNTER_GIRL; break; case TRAINER_ENCOUNTER_MUSIC_INTENSE: - music = MUS_HAGESHII; + music = MUS_ENCOUNTER_PSYCHIC; break; case TRAINER_ENCOUNTER_MUSIC_COOL: - music = MUS_KAKKOII; + music = MUS_ENCOUNTER_COOLTRAINER; break; case TRAINER_ENCOUNTER_MUSIC_AQUA: - music = MUS_AQA_0; + music = MUS_ENCOUNTER_AQUA; break; case TRAINER_ENCOUNTER_MUSIC_MAGMA: - music = MUS_MGM0; + music = MUS_ENCOUNTER_MAGMA; break; case TRAINER_ENCOUNTER_MUSIC_SWIMMER: - music = MUS_SWIMEYE; + music = MUS_ENCOUNTER_SWIMMER; break; case TRAINER_ENCOUNTER_MUSIC_TWINS: - music = MUS_HUTAGO; + music = MUS_ENCOUNTER_TWINS; break; case TRAINER_ENCOUNTER_MUSIC_ELITE_FOUR: - music = MUS_SITENNOU; + music = MUS_ENCOUNTER_ELITE_FOUR; break; case TRAINER_ENCOUNTER_MUSIC_HIKER: - music = MUS_YAMA_EYE; + music = MUS_ENCOUNTER_HIKER; break; case TRAINER_ENCOUNTER_MUSIC_INTERVIEWER: - music = MUS_INTER_V; + music = MUS_ENCOUNTER_INTERVIEWER; break; case TRAINER_ENCOUNTER_MUSIC_RICH: - music = MUS_TEST; + music = MUS_ENCOUNTER_GENTLEMAN; break; default: - music = MUS_AYASII; + music = MUS_ENCOUNTER_HEX_MANIAC; } PlayNewMapMusic(music); } diff --git a/src/battle_transition.c b/src/battle_transition.c index 2ffa28645d..4a290cce7c 100644 --- a/src/battle_transition.c +++ b/src/battle_transition.c @@ -2227,7 +2227,7 @@ static bool8 Phase2_Mugshot_Func4(struct Task *task) SetTrainerPicSlideTable(task->tPlayerSpriteId, 1); IncrementTrainerPicState(task->tOpponentSpriteId); - PlaySE(SE_BT_START); + PlaySE(SE_MUGSHOT); sTransitionStructPtr->VBlank_DMA++; return FALSE; diff --git a/src/berry_blender.c b/src/berry_blender.c index 8d6f3a8fd2..399a9e7b8f 100644 --- a/src/berry_blender.c +++ b/src/berry_blender.c @@ -1058,7 +1058,7 @@ static void sub_807FD08(struct Sprite* sprite) if (++sprite->data[5] > 3) DestroySprite(sprite); else - PlaySE(SE_TB_KARA); + PlaySE(SE_BALL_TRAY_EXIT); } sprite->pos1.x = sprite->data[1]; sprite->pos1.y = sprite->data[2]; @@ -1295,7 +1295,7 @@ static void sub_8080018(void) { sBerryBlenderData->mainState++; sub_8082CB4(&sBerryBlenderData->bgAffineSrc); - PlaySE(SE_RU_HYUU); + PlaySE(SE_FALL); ShowBg(2); } break; @@ -1310,7 +1310,7 @@ static void sub_8080018(void) sBerryBlenderData->field_11A = 0x100; sBerryBlenderData->arrowPos = sUnknown_083399DC[sUnknown_083399E4[sBerryBlenderData->playersNo - 2]]; sBerryBlenderData->framesToWait = 0; - PlaySE(SE_TRACK_DOOR); + PlaySE(SE_TRUCK_DOOR); sub_808074C(); Blender_PrintPlayerNames(); } @@ -1582,7 +1582,7 @@ static void sub_80808D4(void) case 13: sBerryBlenderData->mainState++; sub_808074C(); - PlaySE(SE_RU_HYUU); + PlaySE(SE_FALL); sub_8082CB4(&sBerryBlenderData->bgAffineSrc); ShowBg(2); break; @@ -1597,7 +1597,7 @@ static void sub_80808D4(void) sBerryBlenderData->arrowPos = sUnknown_083399DC[sUnknown_083399E4[sBerryBlenderData->playersNo - 2]]; SetGpuRegBits(REG_OFFSET_BG2CNT, 2); sBerryBlenderData->framesToWait = 0; - PlaySE(SE_TRACK_DOOR); + PlaySE(SE_TRUCK_DOOR); Blender_PrintPlayerNames(); } sub_8082CB4(&sBerryBlenderData->bgAffineSrc); @@ -1648,7 +1648,7 @@ static void sub_80808D4(void) sBerryBlenderData->field_154 = GetCurrentMapMusic(); PlayBGM(MUS_CYCLING); - PlaySE(SE_MOTER); + PlaySE(SE_BERRY_BLENDER); Blender_ControlHitPitch(); break; } @@ -1873,17 +1873,17 @@ static void sub_8081288(u16 a0, u8 a1) { StartSpriteAnim(&gSprites[spriteId], 2); gSprites[spriteId].callback = sub_8082F9C; - PlaySE(SE_RU_GASHIN); + PlaySE(SE_ICE_STAIRS); } else if (a0 == 0x5432) { StartSpriteAnim(&gSprites[spriteId], 0); - PlaySE(SE_SEIKAI); + PlaySE(SE_SUCCESS); } else if (a0 == 0x2345) { StartSpriteAnim(&gSprites[spriteId], 1); - PlaySE(SE_HAZURE); + PlaySE(SE_FAILURE); } sub_8082E84(); } @@ -3025,7 +3025,7 @@ static void sub_8083010(struct Sprite* sprite) { sprite->data[1] = 88; sprite->data[0]++; - PlaySE(SE_KON); + PlaySE(SE_BALL_BOUNCE_1); } break; case 1: @@ -3567,7 +3567,7 @@ static void sub_8083F3C(u8 taskId) { if (gTasks[taskId].data[0] == 0) { - PlayFanfare(MUS_FANFA1); + PlayFanfare(MUS_LEVEL_UP); gTasks[taskId].data[0]++; } if (IsFanfareTaskInactive()) diff --git a/src/berry_crush.c b/src/berry_crush.c index 654a3b4e34..6269f0ad95 100755 --- a/src/berry_crush.c +++ b/src/berry_crush.c @@ -825,7 +825,7 @@ u32 sub_8020C0C(MainCallback callback) if (callback == CB2_ReturnToField) { gTextFlags.autoScroll = TRUE; - PlayNewMapMusic(MUS_POKECEN); + PlayNewMapMusic(MUS_POKE_CENTER); SetMainCallback1(CB1_Overworld); } @@ -1344,9 +1344,9 @@ void sub_80216E0(struct BerryCrushGame *arg0, struct BerryCrushGame_138 *arg1) else { if (sp4 == 1) - PlaySE(SE_TOY_DANGO); + PlaySE(SE_MUD_BALL); else - PlaySE(SE_TOY_KABE); + PlaySE(SE_BREAKABLE_DOOR); arg0->unk25_2 = 1; } @@ -2115,7 +2115,7 @@ static u32 sub_8022E5C(struct BerryCrushGame *r4, __attribute__((unused)) u8 *r1 case 1: if (IsLinkTaskFinished()) { - PlayNewMapMusic(MUS_RG_SLOT); + PlayNewMapMusic(MUS_RG_GAME_CORNER); sub_8022BEC(7, 1, NULL); r4->unk12 = 3; r4->unkC = 0; @@ -2226,7 +2226,7 @@ static u32 sub_8023070(struct BerryCrushGame *r4, __attribute__((unused)) u8 *r case 2: r4->unk138.unk38[r4->unk138.unk0]->callback = sub_8021608; r4->unk138.unk38[r4->unk138.unk0]->affineAnimPaused = FALSE; - PlaySE(SE_NAGERU); + PlaySE(SE_BALL_THROW); break; case 3: if (r4->unk138.unk38[r4->unk138.unk0]->callback == sub_8021608) @@ -2252,7 +2252,7 @@ static u32 sub_8023070(struct BerryCrushGame *r4, __attribute__((unused)) u8 *r case 6: if (!IsLinkTaskFinished()) return 0; - PlaySE(SE_RU_HYUU); + PlaySE(SE_FALL); sub_8022BEC(11, 1, NULL); r4->unk12 = 5; r4->unkC = 0; @@ -2274,7 +2274,7 @@ static u32 sub_80231B8(struct BerryCrushGame *r4, __attribute__((unused)) u8 *r r4->unk138.unk1 = 4; r4->unk138.unk0 = 0; r4->unk138.unk2 = gUnknown_082F326C[r4->unk138.unk1][0]; - PlaySE(SE_W070); + PlaySE(SE_M_STRENGTH); break; case 1: r4->unk2C = gUnknown_082F326C[r4->unk138.unk1][r4->unk138.unk0]; @@ -2667,7 +2667,7 @@ static u32 sub_8023A30(struct BerryCrushGame *r4, __attribute__((unused)) u8 *r1 { case 0: r4->unk12 = 8; - PlaySE(SE_W070); + PlaySE(SE_M_STRENGTH); BlendPalettes(0xFFFFFFFF, 8, RGB(31, 31, 0)); r4->unk138.unk0 = 2; break; @@ -2724,7 +2724,7 @@ static u32 sub_8023BC0(struct BerryCrushGame *r5, u8 *r6) { case 0: r5->unk12 = 9; - PlaySE(SE_HAZURE); + PlaySE(SE_FAILURE); BlendPalettes(0xFFFFFFFF, 8, RGB(31, 0, 0)); r5->unk138.unk0 = 4; break; diff --git a/src/bike.c b/src/bike.c index 5cdf066a9a..c4964b6272 100644 --- a/src/bike.c +++ b/src/bike.c @@ -659,7 +659,7 @@ static void AcroBikeTransition_SideJump(u8 direction) } } playerObjEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; - PlaySE(SE_JITE_PYOKO); + PlaySE(SE_BIKE_HOP); playerObjEvent->facingDirectionLocked = 1; PlayerSetAnimId(GetJumpMovementAction(direction), 2); } diff --git a/src/braille_puzzles.c b/src/braille_puzzles.c index 5dee9dd4b5..a1ea44e26e 100644 --- a/src/braille_puzzles.c +++ b/src/braille_puzzles.c @@ -93,7 +93,7 @@ void DoBrailleDigEffect(void) MapGridSetMetatileIdAt(17, 9, METATILE_Cave_SealedChamberEntrance_BottomMid); MapGridSetMetatileIdAt(18, 9, METATILE_Cave_SealedChamberEntrance_BottomRight | METATILE_COLLISION_MASK); DrawWholeMapView(); - PlaySE(SE_BAN); + PlaySE(SE_BANG); FlagSet(FLAG_SYS_BRAILLE_DIG); ScriptContext2_Disable(); } @@ -140,7 +140,7 @@ void DoBrailleRegirockEffect(void) MapGridSetMetatileIdAt(15, 27, 563); MapGridSetMetatileIdAt(16, 27, 3636); DrawWholeMapView(); - PlaySE(SE_BAN); + PlaySE(SE_BANG); FlagSet(FLAG_SYS_REGIROCK_PUZZLE_COMPLETED); ScriptContext2_Disable(); } @@ -186,7 +186,7 @@ void UseFlyAncientTomb_Finish(void) MapGridSetMetatileIdAt(15, 27, 563); MapGridSetMetatileIdAt(16, 27, 3636); DrawWholeMapView(); - PlaySE(SE_BAN); + PlaySE(SE_BANG); FlagSet(FLAG_SYS_REGISTEEL_PUZZLE_COMPLETED); ScriptContext2_Disable(); } @@ -286,7 +286,7 @@ void DoBrailleRegirockEffect(void) MapGridSetMetatileIdAt(15, 27, METATILE_Cave_SealedChamberEntrance_BottomMid); MapGridSetMetatileIdAt(16, 27, METATILE_Cave_SealedChamberEntrance_BottomRight | METATILE_COLLISION_MASK); DrawWholeMapView(); - PlaySE(SE_BAN); + PlaySE(SE_BANG); FlagSet(FLAG_SYS_REGIROCK_PUZZLE_COMPLETED); ScriptContext2_Disable(); } @@ -325,7 +325,7 @@ void DoBrailleRegisteelEffect(void) MapGridSetMetatileIdAt(15, 27, METATILE_Cave_SealedChamberEntrance_BottomMid); MapGridSetMetatileIdAt(16, 27, METATILE_Cave_SealedChamberEntrance_BottomRight | METATILE_COLLISION_MASK); DrawWholeMapView(); - PlaySE(SE_BAN); + PlaySE(SE_BANG); FlagSet(FLAG_SYS_REGISTEEL_PUZZLE_COMPLETED); ScriptContext2_Disable(); } diff --git a/src/cable_car.c b/src/cable_car.c index 94d9d0c665..fc161284ff 100644 --- a/src/cable_car.c +++ b/src/cable_car.c @@ -343,7 +343,7 @@ static void CableCarMainCallback_Setup(void) break; case 8: BeginNormalPaletteFade(0xFFFFFFFF, 3, 16, 0, RGB(0, 0, 0)); - FadeInNewBGM(MUS_ROPEWAY, 1); + FadeInNewBGM(MUS_CABLE_CAR, 1); sub_8150B6C(1); gMain.state++; break; diff --git a/src/cable_club.c b/src/cable_club.c index 982bd9fd3c..93f87ec9bd 100644 --- a/src/cable_club.c +++ b/src/cable_club.c @@ -865,9 +865,9 @@ static void Task_StartWiredCableClubBattle(u8 taskId) break; case 5: if (gLinkPlayers[0].trainerId & 1) - PlayMapChosenOrBattleBGM(MUS_BATTLE32); + PlayMapChosenOrBattleBGM(MUS_VS_GYM_LEADER); else - PlayMapChosenOrBattleBGM(MUS_BATTLE20); + PlayMapChosenOrBattleBGM(MUS_VS_TRAINER); SetLinkBattleTypeFlags(gSpecialVar_0x8004); CleanupOverworldWindowsAndTilemaps(); @@ -930,9 +930,9 @@ static void Task_StartWirelessCableClubBattle(u8 taskId) break; case 7: if (gLinkPlayers[0].trainerId & 1) - PlayMapChosenOrBattleBGM(MUS_BATTLE32); + PlayMapChosenOrBattleBGM(MUS_VS_GYM_LEADER); else - PlayMapChosenOrBattleBGM(MUS_BATTLE20); + PlayMapChosenOrBattleBGM(MUS_VS_TRAINER); gLinkPlayers[0].linkType = LINKTYPE_BATTLE; SetLinkBattleTypeFlags(gSpecialVar_0x8004); diff --git a/src/contest.c b/src/contest.c index a015c5bab3..e5bf62e754 100644 --- a/src/contest.c +++ b/src/contest.c @@ -1391,7 +1391,7 @@ static void Task_RaiseCurtainAtStart(u8 taskId) if (gTasks[taskId].data[1]++ <= 60) break; gTasks[taskId].data[1] = 0; - PlaySE12WithPanning(SE_C_MAKU_U, 0); + PlaySE12WithPanning(SE_CONTEST_CURTAIN_RISE, 0); gTasks[taskId].data[0]++; break; case 1: @@ -1963,7 +1963,7 @@ static void Task_DoAppeals(u8 taskId) return; case APPEALSTATE_UPDATE_MOVE_USERS_STATUS: if (DrawStatusSymbol(contestant)) - PlaySE(SE_C_PASI); + PlaySE(SE_CONTEST_ICON_CHANGE); gTasks[taskId].tState = APPEALSTATE_UPDATE_OPPONENTS; return; case APPEALSTATE_UPDATE_OPPONENTS: @@ -2054,9 +2054,9 @@ static void Task_DoAppeals(u8 taskId) break; } if (DrawStatusSymbol(i)) - PlaySE(SE_C_PASI); + PlaySE(SE_CONTEST_ICON_CHANGE); else - PlaySE(SE_C_SYU); + PlaySE(SE_CONTEST_ICON_CLEAR); if (eContestantStatus[i].judgesAttentionWasRemoved) { StopFlashJudgeAttentionEye(i); @@ -2245,7 +2245,7 @@ static void Task_DoAppeals(u8 taskId) { case 0: BlendAudienceBackground(-1, 1); - PlayFanfare(MUS_ME_ZANNEN); + PlayFanfare(MUS_TOO_BAD); gTasks[taskId].tCounter++; break; case 1: @@ -2290,7 +2290,7 @@ static void Task_DoAppeals(u8 taskId) if (!eContest.waitForAudienceBlend) { AnimateAudience(); - PlaySE(SE_W227B); + PlaySE(SE_M_ENCORE2); ShowAndUpdateApplauseMeter(1); gTasks[taskId].tCounter++; } @@ -2685,7 +2685,7 @@ static void Task_WaitForOutOfTimeMsg(u8 taskId) SetBgForCurtainDrop(); gBattle_BG1_X = 0; gBattle_BG1_Y = 160; - PlaySE12WithPanning(SE_C_MAKU_D, 0); + PlaySE12WithPanning(SE_CONTEST_CURTAIN_FALL, 0); gTasks[taskId].data[0] = 0; gTasks[taskId].func = Task_DropCurtainAtAppealsEnd; } @@ -3279,7 +3279,7 @@ static bool8 UpdateConditionStars(u8 contestantIdx, bool8 resetMod) ContestBG_FillBoxWithTile(0, GetStarTileOffset(), 19, contestantOffset, 1, numStars, 17); if (resetMod) { - PlaySE(SE_EXPMAX); + PlaySE(SE_EXP_MAX); eContestantStatus[contestantIdx].conditionMod = CONDITION_NO_CHANGE; } } @@ -3288,7 +3288,7 @@ static bool8 UpdateConditionStars(u8 contestantIdx, bool8 resetMod) ContestBG_FillBoxWithTile(0, 0, 19, contestantOffset + numStars, 1, 3 - numStars, 17); if (resetMod) { - PlaySE(SE_FU_ZAKU2); + PlaySE(SE_CONTEST_CONDITION_LOSE); eContestantStatus[contestantIdx].conditionMod = CONDITION_NO_CHANGE; } } @@ -3819,7 +3819,7 @@ static void Task_UpdateAppealHearts(u8 taskId) ContestBG_FillBoxWithTile(0, heartOffset, newNumHearts + 22, gContestantTurnOrder[contestant] * 5 + 2 + onSecondLine, 1, 1, 17); if (heartsDelta > 0) { - PlaySE(SE_C_GAJI); + PlaySE(SE_CONTEST_HEART); m4aMPlayImmInit(&gMPlayInfo_SE1); m4aMPlayPitchControl(&gMPlayInfo_SE1, 0xFFFF, pitchMod * 256); } @@ -4194,7 +4194,7 @@ static void BlinkContestantBox(u8 spriteId, bool8 b) gSprites[spriteId].callback = SpriteCB_BlinkContestantBox; gSprites[spriteId2].callback = SpriteCallbackDummy; if (b == FALSE) - PlaySE(SE_C_PIKON); + PlaySE(SE_CONTEST_MONS_TURN); else PlaySE(SE_PC_LOGIN); } @@ -4686,36 +4686,36 @@ static void DoJudgeSpeechBubble(u8 symbolId) case JUDGE_SYMBOL_SWIRL: case JUDGE_SYMBOL_SWIRL_UNUSED: gSprites[spriteId].oam.tileNum = gSprites[spriteId].data[0]; - PlaySE(SE_HAZURE); + PlaySE(SE_FAILURE); break; case JUDGE_SYMBOL_ONE_EXCLAMATION: gSprites[spriteId].oam.tileNum = gSprites[spriteId].data[0] + 4; - PlaySE(SE_SEIKAI); + PlaySE(SE_SUCCESS); break; case JUDGE_SYMBOL_TWO_EXCLAMATIONS: gSprites[spriteId].oam.tileNum = gSprites[spriteId].data[0] + 8; - PlaySE(SE_SEIKAI); + PlaySE(SE_SUCCESS); break; case JUDGE_SYMBOL_NUMBER_ONE_UNUSED: // Identical to JUDGE_SYMBOL_NUMBER_ONE gSprites[spriteId].oam.tileNum = gSprites[spriteId].data[0] + 12; - PlaySE(SE_TK_WARPIN); + PlaySE(SE_WARP_IN); break; case JUDGE_SYMBOL_NUMBER_ONE: gSprites[spriteId].oam.tileNum = gSprites[spriteId].data[0] + 12; - PlaySE(SE_TK_WARPIN); + PlaySE(SE_WARP_IN); break; case JUDGE_SYMBOL_NUMBER_FOUR: gSprites[spriteId].oam.tileNum = gSprites[spriteId].data[0] + 16; - PlaySE(SE_TK_WARPIN); + PlaySE(SE_WARP_IN); break; case JUDGE_SYMBOL_STAR: gSprites[spriteId].oam.tileNum = gSprites[spriteId].data[0] + 24; - PlaySE(SE_W215); + PlaySE(SE_M_HEAL_BELL); break; case JUDGE_SYMBOL_QUESTION_MARK: default: gSprites[spriteId].oam.tileNum = gSprites[spriteId].data[0] + 20; - PlaySE(SE_TK_WARPIN); + PlaySE(SE_WARP_IN); break; } gSprites[spriteId].data[1] = 0; @@ -5050,7 +5050,7 @@ static void DrawUnnervedSymbols(void) ContestBG_FillBoxWithIncrementingTile(0, symbolOffset, 20, contestantOffset, 2, 1, 17, 1); symbolOffset += 16; ContestBG_FillBoxWithIncrementingTile(0, symbolOffset, 20, contestantOffset + 1, 2, 1, 17, 1); - PlaySE(SE_C_PASI); + PlaySE(SE_CONTEST_ICON_CHANGE); } } } @@ -5131,7 +5131,7 @@ static void Task_StartDropCurtainAtRoundEnd(u8 taskId) { gBattle_BG1_X = 0; gBattle_BG1_Y = DISPLAY_HEIGHT; - PlaySE12WithPanning(SE_C_MAKU_D, 0); + PlaySE12WithPanning(SE_CONTEST_CURTAIN_FALL, 0); gTasks[taskId].func = Task_UpdateCurtainDropAtRoundEnd; } @@ -5243,7 +5243,7 @@ static void Task_StartRaiseCurtainAtRoundEnd(u8 taskId) else { gTasks[taskId].data[2] = 0; - PlaySE12WithPanning(SE_C_MAKU_U, 0); + PlaySE12WithPanning(SE_CONTEST_CURTAIN_RISE, 0); gTasks[taskId].func = Task_UpdateRaiseCurtainAtRoundEnd; } } diff --git a/src/contest_util.c b/src/contest_util.c index 00254248f8..c60e885f2e 100644 --- a/src/contest_util.c +++ b/src/contest_util.c @@ -533,7 +533,7 @@ static void CB2_StartShowContestResults(void) if (gLinkContestFlags & LINK_CONTEST_FLAG_IS_WIRELESS) gPaletteFade.bufferTransferDisabled = TRUE; else - PlayBGM(MUS_CON_K); + PlayBGM(MUS_CONTEST_RESULTS); SetVBlankCallback(VBlankCB_ShowContestResults); } @@ -619,7 +619,7 @@ static void Task_ShowContestResults(u8 taskId) case 3: if (IsLinkTaskFinished() == TRUE) { - PlayBGM(MUS_CON_K); + PlayBGM(MUS_CONTEST_RESULTS); gPaletteFade.bufferTransferDisabled = FALSE; gTasks[taskId].tState++; break; @@ -1796,7 +1796,7 @@ static void Task_DrawFinalStandingNumber(u8 taskId) WriteSequenceToBgTilemapBuffer(2, firstTileNum + 0x10, 1, gTasks[taskId].tMonIndex * 3 + 6, 2, 1, 17, 1); sContestResults->data->numStandingsPrinted++; DestroyTask(taskId); - PlaySE(SE_JYUNI); + PlaySE(SE_CONTEST_PLACE); } } } diff --git a/src/credits.c b/src/credits.c index 8fc8a1f887..020221f305 100644 --- a/src/credits.c +++ b/src/credits.c @@ -1239,7 +1239,7 @@ void CB2_StartCreditsSequence(void) BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); EnableInterrupts(INTR_FLAG_VBLANK); SetVBlankCallback(CreditsVBlankCallback); - m4aSongNumStart(MUS_THANKFOR); + m4aSongNumStart(MUS_CREDITS); SetMainCallback2(CB2_RunCreditsSequence); gUnknown_0203BCE5 = 0; sCreditsData = AllocZeroed(sizeof(struct CreditsData)); diff --git a/src/decoration.c b/src/decoration.c index f566cc7c92..40cccbe5ef 100644 --- a/src/decoration.c +++ b/src/decoration.c @@ -1623,7 +1623,7 @@ static void AttemptPlaceDecoration_(u8 taskId) } else { - PlaySE(SE_HAZURE); + PlaySE(SE_FAILURE); StringExpandPlaceholders(gStringVar4, gText_CantBePlacedHere); DisplayItemMessageOnField(taskId, gStringVar4, CantPlaceDecorationPrompt); } diff --git a/src/dodrio_berry_picking.c b/src/dodrio_berry_picking.c index 41d8aa4192..f44ecb31cd 100644 --- a/src/dodrio_berry_picking.c +++ b/src/dodrio_berry_picking.c @@ -467,7 +467,7 @@ void StartDodrioBerryPicking(u16 a0, void (*callback)(void)) sub_80273F0(); sub_8026B5C(gUnknown_02022C98->unk24, &gUnknown_02022C98->unk44, &gUnknown_02022C98->unk48); StopMapMusic(); - PlayNewMapMusic(MUS_RG_KINOMIKUI); + PlayNewMapMusic(MUS_RG_BERRY_PICK); } else { @@ -877,7 +877,7 @@ static void sub_8025198(void) if (WaitFanfare(TRUE)) { sub_8026240(6); - FadeOutAndPlayNewMapMusic(MUS_RG_WIN_YASEI, 4); + FadeOutAndPlayNewMapMusic(MUS_RG_VICTORY_WILD, 4); } break; } @@ -916,7 +916,7 @@ static void sub_8025230(void) if (WaitFanfare(TRUE)) { gUnknown_02022C98->unk114 = gUnknown_02022C98->unk4A[gUnknown_02022C98->multiplayerId][5]; sub_8026240(6); - FadeOutAndPlayNewMapMusic(MUS_RG_WIN_YASEI, 4); + FadeOutAndPlayNewMapMusic(MUS_RG_VICTORY_WILD, 4); } break; } @@ -1174,7 +1174,7 @@ static void sub_8025758(void) gUnknown_02022C98->unk10++; break; case 4: - PlayNewMapMusic(MUS_RG_KINOMIKUI); + PlayNewMapMusic(MUS_RG_BERRY_PICK); sub_8028E4C(); gUnknown_02022C98->unk10++; break; @@ -1458,8 +1458,8 @@ static void sub_8025F48(void) { if (gUnknown_02022C98->unk144 == 0) { - m4aSongNumStop(SE_SEIKAI); - PlaySE(SE_SEIKAI); + m4aSongNumStop(SE_SUCCESS); + PlaySE(SE_SUCCESS); gUnknown_02022C98->unk144 = 1; } } @@ -1480,7 +1480,7 @@ static void sub_8025F48(void) } else if (gUnknown_02022C98->unk154 == 1) { - PlayFanfareByFanfareNum(11); // MUS_ME_ZANNEN + PlayFanfareByFanfareNum(11); // MUS_TOO_BAD gUnknown_02022C98->unk154 = 2; } } @@ -1501,8 +1501,8 @@ static void sub_8026044(void) { if (gUnknown_02022C98->unk144 == 0) { - m4aSongNumStop(SE_SEIKAI); - PlaySE(SE_SEIKAI); + m4aSongNumStop(SE_SUCCESS); + PlaySE(SE_SUCCESS); gUnknown_02022C98->unk144 = 1; } } @@ -1522,7 +1522,7 @@ static void sub_8026044(void) { if (gUnknown_02022C98->unk148[r4] == 0) { - PlaySE(SE_FUUSEN1 + ptr->unk0[r4]); + PlaySE(SE_BALLOON_RED + ptr->unk0[r4]); gUnknown_02022C98->unk148[r4] = 1; } } @@ -1538,7 +1538,7 @@ static void sub_8026044(void) } else if (gUnknown_02022C98->unk154 == 1) { - PlayFanfareByFanfareNum(11); // MUS_ME_ZANNEN + PlayFanfareByFanfareNum(11); // MUS_TOO_BAD gUnknown_02022C98->unk154 = 2; } } @@ -1792,7 +1792,7 @@ static void sub_802671C(void) if (gUnknown_02022C98->unk148[i] == 0) { gUnknown_02022C98->unk148[i] = 1; - PlaySE(SE_FUUSEN1 + ptr->unk32CC.unk14.unk0[i]); + PlaySE(SE_BALLOON_RED + ptr->unk32CC.unk14.unk0[i]); } if (gUnknown_02022C98->unk40 < 10 || r10 == 1) { @@ -2359,19 +2359,19 @@ static void sub_8027554(void) { gUnknown_02022C98->unk31A0[gUnknown_02022C98->multiplayerId].unk2C.unk0 = 2; gUnknown_02022C98->unkB0[gUnknown_02022C98->multiplayerId] = 6; - PlaySE(SE_W204); + PlaySE(SE_M_CHARM); } else if (gMain.newKeys & DPAD_LEFT) { gUnknown_02022C98->unk31A0[gUnknown_02022C98->multiplayerId].unk2C.unk0 = 3; gUnknown_02022C98->unkB0[gUnknown_02022C98->multiplayerId] = 6; - PlaySE(SE_W204); + PlaySE(SE_M_CHARM); } else if (gMain.newKeys & DPAD_RIGHT) { gUnknown_02022C98->unk31A0[gUnknown_02022C98->multiplayerId].unk2C.unk0 = 1; gUnknown_02022C98->unkB0[gUnknown_02022C98->multiplayerId] = 6; - PlaySE(SE_W204); + PlaySE(SE_M_CHARM); } else { @@ -3450,7 +3450,7 @@ static u32 sub_80285AC(struct Sprite *sprite) u8 mod = (++sprite->data[1] / 13) % 4; if (sprite->data[1] % 13 == 0 && mod != 0) - PlaySE(SE_W204); + PlaySE(SE_M_CHARM); if (sprite->data[1] >= 104) { sprite->data[0] = 0; @@ -3567,7 +3567,7 @@ static bool32 sub_8028828(void) continue; gUnknown_02022CF4->unkC[i] = 1; gUnknown_02022CF4->unk16[i] = -16; - PlaySE(SE_TK_KASYA); + PlaySE(SE_CLICK); } sprite->pos1.y += gUnknown_02022CF4->unk16[i]; } @@ -4320,7 +4320,7 @@ static void sub_802988C(void) } break; case 9: - PlayNewMapMusic(MUS_FANFA1); + PlayNewMapMusic(MUS_LEVEL_UP); FillWindowPixelBuffer(gUnknown_02022CF8->unk3008[0], PIXEL_FILL(1)); FillWindowPixelBuffer(gUnknown_02022CF8->unk3008[1], PIXEL_FILL(1)); strWidth = GetStringWidth(1, gText_AnnouncingPrizes, -1); @@ -4354,7 +4354,7 @@ static void sub_802988C(void) PutWindowTilemap(gUnknown_02022CF8->unk3008[1]); } CopyBgTilemapBufferToVram(0); - FadeOutAndFadeInNewMapMusic(MUS_RG_WIN_YASEI, 20, 10); + FadeOutAndFadeInNewMapMusic(MUS_RG_VICTORY_WILD, 20, 10); gUnknown_02022CF8->state++; break; case 11: diff --git a/src/easy_chat.c b/src/easy_chat.c index c839c0070d..8e10445917 100644 --- a/src/easy_chat.c +++ b/src/easy_chat.c @@ -2023,7 +2023,7 @@ static int sub_811B368(void) { if (sEasyChatScreen->type == EASY_CHAT_TYPE_BARD_SONG) { - PlaySE(SE_HAZURE); + PlaySE(SE_FAILURE); return 0; } else @@ -2038,7 +2038,7 @@ static int sub_811B394(void) u16 easyChatWord = sub_811F578(sub_811B940()); if (sub_811BF88(easyChatWord)) { - PlaySE(SE_HAZURE); + PlaySE(SE_FAILURE); return 0; } else diff --git a/src/egg_hatch.c b/src/egg_hatch.c index 3ccc7ebf84..87f0a13fd5 100644 --- a/src/egg_hatch.c +++ b/src/egg_hatch.c @@ -578,10 +578,10 @@ static void Task_EggHatchPlayBGM(u8 taskID) PlayRainStoppingSoundEffect(); } if (gTasks[taskID].data[0] == 1) - PlayBGM(MUS_ME_SHINKA); + PlayBGM(MUS_EVOLUTION_INTRO); if (gTasks[taskID].data[0] > 60) { - PlayBGM(MUS_SHINKA); + PlayBGM(MUS_EVOLUTION); DestroyTask(taskID); // UB: task is destroyed, yet the value is incremented } @@ -637,7 +637,7 @@ static void CB2_EggHatch_1(void) GetMonNickname2(&gPlayerParty[sEggHatchData->eggPartyID], gStringVar1); StringExpandPlaceholders(gStringVar4, gText_HatchedFromEgg); EggHatchPrintMessage(sEggHatchData->windowId, gStringVar4, 0, 3, 0xFF); - PlayFanfare(MUS_FANFA5); + PlayFanfare(MUS_EVOLVED); sEggHatchData->CB2_state++; PutWindowTilemap(sEggHatchData->windowId); CopyWindowToVram(sEggHatchData->windowId, 3); @@ -716,7 +716,7 @@ static void SpriteCB_Egg_0(struct Sprite* sprite) sprite->pos2.x = Sin(sprite->data[1], 1); if (sprite->data[0] == 15) { - PlaySE(SE_BOWA); + PlaySE(SE_BALL); StartSpriteAnim(sprite, 1); CreateRandomEggShardSprite(); } @@ -739,7 +739,7 @@ static void SpriteCB_Egg_1(struct Sprite* sprite) sprite->pos2.x = Sin(sprite->data[1], 2); if (sprite->data[0] == 15) { - PlaySE(SE_BOWA); + PlaySE(SE_BALL); StartSpriteAnim(sprite, 2); } } @@ -766,13 +766,13 @@ static void SpriteCB_Egg_2(struct Sprite* sprite) sprite->pos2.x = Sin(sprite->data[1], 2); if (sprite->data[0] == 15) { - PlaySE(SE_BOWA); + PlaySE(SE_BALL); StartSpriteAnim(sprite, 2); CreateRandomEggShardSprite(); CreateRandomEggShardSprite(); } if (sprite->data[0] == 30) - PlaySE(SE_BOWA); + PlaySE(SE_BALL); } } } @@ -799,7 +799,7 @@ static void SpriteCB_Egg_4(struct Sprite* sprite) sprite->data[0]++; if (!gPaletteFade.active) { - PlaySE(SE_TAMAGO); + PlaySE(SE_EGG_HATCH); sprite->invisible = TRUE; sprite->callback = SpriteCB_Egg_5; sprite->data[0] = 0; diff --git a/src/ereader_screen.c b/src/ereader_screen.c index 823e03dd44..b4a9164b32 100755 --- a/src/ereader_screen.c +++ b/src/ereader_screen.c @@ -153,7 +153,7 @@ static u32 sub_81D4EE4(u8 *arg0, u16 *arg1) case 2: if (GetLinkPlayerCount_2() == 2) { - PlaySE(SE_PINPON); + PlaySE(SE_DING_DONG); CheckShouldAdvanceLinkState(); *arg1 = 0; *arg0 = 3; @@ -431,7 +431,7 @@ static void sub_81D5084(u8 taskId) if (sub_81D5064(&data->unk0, 120)) { AddTextPrinterToWindow1(gJPText_NewTrainerHasComeToHoenn); - PlayFanfare(MUS_FANFA4); + PlayFanfare(MUS_OBTAIN_ITEM); data->unk8 = 19; } break; diff --git a/src/evolution_graphics.c b/src/evolution_graphics.c index 849c676b35..28bbd4ef79 100644 --- a/src/evolution_graphics.c +++ b/src/evolution_graphics.c @@ -271,7 +271,7 @@ static void EvoTask_BeginPreSet1_FadeAndPlaySE(u8 taskID) gTasks[taskID].tFrameCounter = 0; BeginNormalPaletteFade(3 << gTasks[taskID].data[1], 0xA, 0, 0x10, RGB_WHITE); gTasks[taskID].func = EvoTask_CreatePreEvoSparkleSet1; - PlaySE(SE_W025); + PlaySE(SE_M_MEGA_KICK); } static void EvoTask_CreatePreEvoSparkleSet1(u8 taskID) @@ -311,7 +311,7 @@ static void EvoTask_BeginPreSparklesSet2(u8 taskID) SetEvoSparklesMatrices(); gTasks[taskID].tFrameCounter = 0; gTasks[taskID].func = EvoTask_CreatePreEvoSparklesSet2; - PlaySE(SE_W062B); + PlaySE(SE_M_BUBBLE_BEAM2); } static void EvoTask_CreatePreEvoSparklesSet2(u8 taskID) @@ -345,7 +345,7 @@ static void EvoTask_BeginPostSparklesSet1(u8 taskID) SetEvoSparklesMatrices(); gTasks[taskID].tFrameCounter = 0; gTasks[taskID].func = EvoTask_CreatePostEvoSparklesSet1; - PlaySE(SE_REAPOKE); + PlaySE(SE_SHINY); } static void EvoTask_CreatePostEvoSparklesSet1(u8 taskID) @@ -389,7 +389,7 @@ static void EvoTask_BeginPostSparklesSet2_AndFlash(u8 taskID) CpuSet(&gPlttBufferFaded[0x20], &gPlttBufferUnfaded[0x20], 0x30); BeginNormalPaletteFade(0xFFF9041C, 0, 0, 0x10, RGB_WHITE); // was 0xFFF9001C in R/S gTasks[taskID].func = EvoTask_CreatePostEvoSparklesSet2_AndFlash; - PlaySE(SE_W080); + PlaySE(SE_M_PETAL_DANCE); } static void EvoTask_CreatePostEvoSparklesSet2_AndFlash(u8 taskID) @@ -437,7 +437,7 @@ static void EvoTask_BeginPostSparklesSet2_AndFlash_Trade(u8 taskID) CpuSet(&gPlttBufferFaded[0x20], &gPlttBufferUnfaded[0x20], 0x30); BeginNormalPaletteFade(0xFFF90400, 0, 0, 0x10, RGB_WHITE); // was 0xFFFF0001 in R/S gTasks[taskID].func = EvoTask_CreatePostEvoSparklesSet2_AndFlash_Trade; - PlaySE(SE_W080); + PlaySE(SE_M_PETAL_DANCE); } static void EvoTask_CreatePostEvoSparklesSet2_AndFlash_Trade(u8 taskID) diff --git a/src/evolution_scene.c b/src/evolution_scene.c index 019d48416c..41d4900f7e 100644 --- a/src/evolution_scene.c +++ b/src/evolution_scene.c @@ -630,14 +630,14 @@ static void Task_EvolutionScene(u8 taskID) case 3: if (EvoScene_IsMonAnimFinished(sEvoStructPtr->preEvoSpriteID)) // wait for animation, play tu du SE { - PlaySE(MUS_ME_SHINKA); + PlaySE(MUS_EVOLUTION_INTRO); gTasks[taskID].tState++; } break; case 4: // play evolution music and fade screen black if (!IsSEPlaying()) { - PlayNewMapMusic(MUS_SHINKA); + PlayNewMapMusic(MUS_EVOLUTION); gTasks[taskID].tState++; BeginNormalPaletteFade(0x1C, 4, 0, 0x10, RGB_BLACK); } @@ -713,7 +713,7 @@ static void Task_EvolutionScene(u8 taskID) { StringExpandPlaceholders(gStringVar4, gText_CongratsPkmnEvolved); BattlePutTextOnWindow(gStringVar4, 0); - PlayBGM(MUS_FANFA5); + PlayBGM(MUS_EVOLVED); gTasks[taskID].tState++; SetMonData(mon, MON_DATA_SPECIES, (void*)(&gTasks[taskID].tPostEvoSpecies)); CalculateMonStats(mon); @@ -808,7 +808,7 @@ static void Task_EvolutionScene(u8 taskID) if (!IsTextPrinterActive(0) && !IsSEPlaying()) { BufferMoveToLearnIntoBattleTextBuff2(); - PlayFanfare(MUS_FANFA1); + PlayFanfare(MUS_LEVEL_UP); BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_PKMNLEARNEDMOVE - BATTLESTRINGS_ID_ADDER]); BattlePutTextOnWindow(gDisplayedStringBattle, 0); gTasks[taskID].tLearnsFirstMove = 0x40; // re-used as a counter @@ -998,15 +998,15 @@ static void Task_TradeEvolutionScene(u8 taskID) case 2: if (IsCryFinished()) { - m4aSongNumStop(MUS_SHINKA); - PlaySE(MUS_ME_SHINKA); + m4aSongNumStop(MUS_EVOLUTION); + PlaySE(MUS_EVOLUTION_INTRO); gTasks[taskID].tState++; } break; case 3: if (!IsSEPlaying()) { - PlayBGM(MUS_SHINKA); + PlayBGM(MUS_EVOLUTION); gTasks[taskID].tState++; BeginNormalPaletteFade(0x1C, 4, 0, 0x10, RGB_BLACK); } @@ -1076,7 +1076,7 @@ static void Task_TradeEvolutionScene(u8 taskID) { StringExpandPlaceholders(gStringVar4, gText_CongratsPkmnEvolved); DrawTextOnTradeWindow(0, gStringVar4, 1); - PlayFanfare(MUS_FANFA5); + PlayFanfare(MUS_EVOLVED); gTasks[taskID].tState++; SetMonData(mon, MON_DATA_SPECIES, (&gTasks[taskID].tPostEvoSpecies)); CalculateMonStats(mon); @@ -1109,7 +1109,7 @@ static void Task_TradeEvolutionScene(u8 taskID) } else { - PlayBGM(MUS_SHINKA); + PlayBGM(MUS_EVOLUTION); DrawTextOnTradeWindow(0, gText_CommunicationStandby5, 1); gTasks[taskID].tState++; } @@ -1153,7 +1153,7 @@ static void Task_TradeEvolutionScene(u8 taskID) if (!IsTextPrinterActive(0) && !IsSEPlaying()) { BufferMoveToLearnIntoBattleTextBuff2(); - PlayFanfare(MUS_FANFA1); + PlayFanfare(MUS_LEVEL_UP); BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_PKMNLEARNEDMOVE - BATTLESTRINGS_ID_ADDER]); DrawTextOnTradeWindow(0, gDisplayedStringBattle, 1); gTasks[taskID].tLearnsFirstMove = 0x40; // re-used as a counter diff --git a/src/field_control_avatar.c b/src/field_control_avatar.c index 3684b53e6d..fab14c5776 100644 --- a/src/field_control_avatar.c +++ b/src/field_control_avatar.c @@ -946,7 +946,7 @@ bool8 TryDoDiveWarp(struct MapPosition *position, u16 metatileBehavior) { StoreInitialPlayerAvatarState(); DoDiveWarp(); - PlaySE(SE_W291); + PlaySE(SE_M_DIVE); return TRUE; } } @@ -956,7 +956,7 @@ bool8 TryDoDiveWarp(struct MapPosition *position, u16 metatileBehavior) { StoreInitialPlayerAvatarState(); DoDiveWarp(); - PlaySE(SE_W291); + PlaySE(SE_M_DIVE); return TRUE; } } diff --git a/src/field_door.c b/src/field_door.c index e81c3dc4b7..4dcb07ccae 100644 --- a/src/field_door.c +++ b/src/field_door.c @@ -526,9 +526,9 @@ u32 GetDoorSoundEffect(u32 x, u32 y) if (sound == DOOR_SOUND_NORMAL) return SE_DOOR; else if (sound == DOOR_SOUND_SLIDING) - return SE_JIDO_DOA; + return SE_SLIDING_DOOR; else if (sound == DOOR_SOUND_ARENA) - return SE_TU_SAA; + return SE_REPEL; else return SE_DOOR; } diff --git a/src/field_effect.c b/src/field_effect.c index 582551a7ea..b64902c0ec 100644 --- a/src/field_effect.c +++ b/src/field_effect.c @@ -1141,7 +1141,7 @@ static void PokeballGlowEffect_PlaceBalls(struct Sprite *sprite) gSprites[spriteId].sEffectSpriteId = sprite->sSpriteId; sprite->sCounter++; sprite->sNumMons--; - PlaySE(SE_BOWA); + PlaySE(SE_BALL); } if (sprite->sNumMons == 0) { @@ -1160,7 +1160,7 @@ static void PokeballGlowEffect_TryPlaySe(struct Sprite *sprite) sprite->data[3] = 0; if (sprite->sPlayHealSe) { - PlayFanfare(MUS_ME_ASA); + PlayFanfare(MUS_HEAL); } } } @@ -1464,7 +1464,7 @@ static bool8 FallWarpEffect_StartFall(struct Task *task) task->tFallOffset = 1; task->tTotalFall = 0; gObjectEvents[gPlayerAvatar.objectEventId].invisible = FALSE; - PlaySE(SE_RU_HYUU); + PlaySE(SE_FALL); task->tState++; return FALSE; } @@ -1493,7 +1493,7 @@ static bool8 FallWarpEffect_Fall(struct Task *task) } if (sprite->pos2.y >= 0) { - PlaySE(SE_W070); + PlaySE(SE_M_STRENGTH); objectEvent->triggerGroundEffectsOnStop = 1; objectEvent->landingJump = 1; sprite->pos2.y = 0; @@ -1589,7 +1589,7 @@ static bool8 EscalatorWarpOut_WaitForPlayer(struct Task *task) { task->tState = 4; // jump to EscalatorWarpOut_Down_Ride } - PlaySE(SE_ESUKA); + PlaySE(SE_ESCALATOR); } return FALSE; } @@ -1978,7 +1978,7 @@ static bool8 LavaridgeGymB1FWarpEffect_Launch(struct Task *task, struct ObjectEv gFieldEffectArguments[2] = sprite->subpriority - 1; gFieldEffectArguments[3] = sprite->oam.priority; FieldEffectStart(FLDEFF_ASH_LAUNCH); - PlaySE(SE_W153); + PlaySE(SE_M_EXPLOSION); task->data[0]++; return TRUE; } @@ -2092,7 +2092,7 @@ static bool8 LavaridgeGymB1FWarpExitEffect_PopOut(struct Task *task, struct Obje task->data[0]++; objectEvent->invisible = FALSE; CameraObjectReset1(); - PlaySE(SE_W091); + PlaySE(SE_M_DIG); ObjectEventSetHeldMovement(objectEvent, GetJumpMovementAction(DIR_EAST)); } return FALSE; @@ -2163,7 +2163,7 @@ static bool8 LavaridgeGym1FWarpEffect_AshPuff(struct Task *task, struct ObjectEv { task->data[1]++; ObjectEventSetHeldMovement(objectEvent, GetWalkInPlaceFastestMovementAction(objectEvent->facingDirection)); - PlaySE(SE_FU_ZUZUZU); + PlaySE(SE_LAVARIDGE_FALL_WARP); } } return FALSE; @@ -2381,7 +2381,7 @@ static void TeleportWarpOutFieldEffect_SpinGround(struct Task *task) task->data[1] = 4; task->data[2] = 8; task->data[3] = 1; - PlaySE(SE_TK_WARPIN); + PlaySE(SE_WARP_IN); } } @@ -2472,7 +2472,7 @@ static void TeleportWarpInFieldEffect_Init(struct Task *task) task->data[2] = 1; task->data[14] = sprite->subspriteMode; task->data[15] = GetPlayerFacingDirection(); - PlaySE(SE_TK_WARPIN); + PlaySE(SE_WARP_IN); } } @@ -2974,7 +2974,7 @@ u8 FldEff_UseSurf(void) u8 taskId = CreateTask(Task_SurfFieldEffect, 0xff); gTasks[taskId].tMonId = gFieldEffectArguments[0]; Overworld_ClearSavedMusic(); - Overworld_ChangeMusicTo(MUS_NAMINORI); + Overworld_ChangeMusicTo(MUS_SURF); return FALSE; } @@ -3111,7 +3111,7 @@ u8 FldEff_NPCFlyOut(void) sprite->oam.priority = 1; sprite->callback = SpriteCB_NPCFlyOut; sprite->data[1] = gFieldEffectArguments[0]; - PlaySE(SE_W019); + PlaySE(SE_M_FLY); return spriteId; } @@ -3228,7 +3228,7 @@ static void FlyOutFieldEffect_BirdSwoopDown(struct Task *task) if ((task->tTimer == 0 || (--task->tTimer) == 0) && ObjectEventClearHeldMovementIfFinished(objectEvent)) { task->tState++; - PlaySE(SE_W019); + PlaySE(SE_M_FLY); StartFlyBirdSwoopDown(task->tBirdSpriteId); } } @@ -3692,7 +3692,7 @@ static void Task_DestroyDeoxysRock(u8 taskId) static void DestroyDeoxysRockEffect_CameraShake(s16* data, u8 taskId) { u8 newTaskId = CreateTask(Task_DeoxysRockCameraShake, 90); - PlaySE(SE_T_KAMI2); + PlaySE(SE_THUNDER2); tCameraTaskId = newTaskId; tState++; } @@ -3706,7 +3706,7 @@ static void DestroyDeoxysRockEffect_RockFragments(s16* data, u8 taskId) BlendPalettes(0x0000FFFF, 0x10, RGB_WHITE); BeginNormalPaletteFade(0x0000FFFF, 0, 0x10, 0, RGB_WHITE); CreateDeoxysRockFragments(sprite); - PlaySE(SE_T_KAMI); + PlaySE(SE_THUNDER); StartEndingDeoxysRockCameraShake(tCameraTaskId); tTimer = 0; tState++; diff --git a/src/field_effect_helpers.c b/src/field_effect_helpers.c index 6929485c47..886e023d1c 100755 --- a/src/field_effect_helpers.c +++ b/src/field_effect_helpers.c @@ -623,7 +623,7 @@ u32 FldEff_Splash(void) sprite->data[1] = gFieldEffectArguments[1]; sprite->data[2] = gFieldEffectArguments[2]; sprite->pos2.y = (graphicsInfo->height >> 1) - 4; - PlaySE(SE_MIZU); + PlaySE(SE_PUDDLE); } return 0; } @@ -733,7 +733,7 @@ static void UpdateFeetInFlowingWaterFieldEffect(struct Sprite *sprite) sprite->data[4] = objectEvent->currentCoords.y; if (!sprite->invisible) { - PlaySE(SE_MIZU); + PlaySE(SE_PUDDLE); } } } diff --git a/src/field_player_avatar.c b/src/field_player_avatar.c index 6ad92c2fb2..5fab2489bb 100644 --- a/src/field_player_avatar.c +++ b/src/field_player_avatar.c @@ -1021,7 +1021,7 @@ void PlayerTurnInPlace(u8 direction) void PlayerJumpLedge(u8 direction) { - PlaySE(SE_DANSA); + PlaySE(SE_LEDGE); PlayerSetAnimId(GetJump2MovementAction(direction), 8); } @@ -1055,28 +1055,28 @@ void PlayerEndWheelie(u8 direction) // wheelie hopping standing void PlayerStandingHoppingWheelie(u8 a) { - PlaySE(SE_JITE_PYOKO); + PlaySE(SE_BIKE_HOP); PlayerSetAnimId(GetAcroWheelieHopFaceDirectionMovementAction(a), 1); } // wheelie hopping moving void PlayerMovingHoppingWheelie(u8 a) { - PlaySE(SE_JITE_PYOKO); + PlaySE(SE_BIKE_HOP); PlayerSetAnimId(GetAcroWheelieHopDirectionMovementAction(a), 2); } // wheelie hopping ledge void PlayerLedgeHoppingWheelie(u8 a) { - PlaySE(SE_JITE_PYOKO); + PlaySE(SE_BIKE_HOP); PlayerSetAnimId(GetAcroWheelieJumpDirectionMovementAction(a), 8); } // acro turn jump void PlayerAcroTurnJump(u8 direction) { - PlaySE(SE_JITE_PYOKO); + PlaySE(SE_BIKE_HOP); PlayerSetAnimId(GetJumpInPlaceTurnAroundMovementAction(direction), 1); } @@ -1501,7 +1501,7 @@ static bool8 PushBoulder_Move(struct Task *task, struct ObjectEvent *playerObjec gFieldEffectArguments[2] = strengthObject->previousElevation; gFieldEffectArguments[3] = gSprites[strengthObject->spriteId].oam.priority; FieldEffectStart(FLDEFF_DUST); - PlaySE(SE_W070); + PlaySE(SE_M_STRENGTH); task->data[0]++; } return FALSE; @@ -1540,7 +1540,7 @@ static u8 PlayerAvatar_DoSecretBaseMatJump(struct Task *task, struct ObjectEvent gPlayerAvatar.preventStep = TRUE; if (ObjectEventClearHeldMovementIfFinished(objectEvent)) { - PlaySE(SE_DANSA); + PlaySE(SE_LEDGE); ObjectEventSetHeldMovement(objectEvent, GetJumpInPlaceMovementAction(objectEvent->facingDirection)); task->data[1]++; if (task->data[1] > 1) @@ -1574,7 +1574,7 @@ static bool8 PlayerAvatar_SecretBaseMatSpinStep0(struct Task *task, struct Objec task->data[1] = objectEvent->movementDirection; gPlayerAvatar.preventStep = TRUE; ScriptContext2_Enable(); - PlaySE(SE_TK_WARPIN); + PlaySE(SE_WARP_IN); return TRUE; } diff --git a/src/field_screen_effect.c b/src/field_screen_effect.c index 92ee8cad31..9becd21666 100644 --- a/src/field_screen_effect.c +++ b/src/field_screen_effect.c @@ -299,7 +299,7 @@ static void FieldCB_TeleportTileWarpExit(void) { Overworld_PlaySpecialMapMusic(); WarpFadeInScreen(); - PlaySE(SE_TK_WARPOUT); + PlaySE(SE_WARP_OUT); CreateTask(Task_TeleportTileWarpExit, 10); ScriptContext2_Enable(); } @@ -308,7 +308,7 @@ static void FieldCB_MossdeepGymWarpExit(void) { Overworld_PlaySpecialMapMusic(); WarpFadeInScreen(); - PlaySE(SE_TK_WARPOUT); + PlaySE(SE_WARP_OUT); CreateTask(Task_ExitNonDoor, 10); ScriptContext2_Enable(); SetObjectEventLoadFlag((~SKIP_OBJECT_EVENT_LOAD) & 0xF); @@ -487,7 +487,7 @@ void DoWarp(void) TryFadeOutOldMapMusic(); WarpFadeOutScreen(); PlayRainStoppingSoundEffect(); - PlaySE(SE_KAIDAN); + PlaySE(SE_EXIT); gFieldCallback = FieldCB_DefaultWarpExit; CreateTask(Task_WarpAndLoadMap, 10); } @@ -549,7 +549,7 @@ void DoTeleportTileWarp(void) ScriptContext2_Enable(); TryFadeOutOldMapMusic(); WarpFadeOutScreen(); - PlaySE(SE_TK_WARPIN); + PlaySE(SE_WARP_IN); CreateTask(Task_WarpAndLoadMap, 10); gFieldCallback = FieldCB_TeleportTileWarpExit; } @@ -561,7 +561,7 @@ void DoMossdeepGymWarp(void) SaveObjectEvents(); TryFadeOutOldMapMusic(); WarpFadeOutScreen(); - PlaySE(SE_TK_WARPIN); + PlaySE(SE_WARP_IN); CreateTask(Task_WarpAndLoadMap, 10); gFieldCallback = FieldCB_MossdeepGymWarpExit; } @@ -605,7 +605,7 @@ void DoCableClubWarp(void) ScriptContext2_Enable(); TryFadeOutOldMapMusic(); WarpFadeOutScreen(); - PlaySE(SE_KAIDAN); + PlaySE(SE_EXIT); CreateTask(Task_DoCableClubWarp, 10); } @@ -619,7 +619,7 @@ static void Task_ReturnToWorldFromLinkRoom(u8 taskId) ClearLinkCallback_2(); FadeScreen(FADE_TO_BLACK, 0); TryFadeOutOldMapMusic(); - PlaySE(SE_KAIDAN); + PlaySE(SE_EXIT); data[0]++; break; case 1: @@ -760,7 +760,7 @@ void DoContestHallWarp(void) TryFadeOutOldMapMusic(); WarpFadeOutScreen(); PlayRainStoppingSoundEffect(); - PlaySE(SE_KAIDAN); + PlaySE(SE_EXIT); gFieldCallback = FieldCB_WarpExitFadeFromBlack; CreateTask(Task_DoContestHallWarp, 10); } @@ -1028,7 +1028,7 @@ static void sub_80B01BC(u8 taskId) case 0: FreezeObjectEvents(); ScriptContext2_Enable(); - PlaySE(SE_TK_WARPIN); + PlaySE(SE_WARP_IN); sub_808D1C8(); task->data[0]++; break; diff --git a/src/field_special_scene.c b/src/field_special_scene.c index bb8e8b1d92..bd6c833afb 100644 --- a/src/field_special_scene.c +++ b/src/field_special_scene.c @@ -171,7 +171,7 @@ void Task_HandleTruckSequence(u8 taskId) data[1] = 0; // reset the timer. data[2] = CreateTask(Task_Truck1, 0xA); data[0] = 1; // run the next case. - PlaySE(SE_TRACK_MOVE); + PlaySE(SE_TRUCK_MOVE); } break; case 1: @@ -191,7 +191,7 @@ void Task_HandleTruckSequence(u8 taskId) DestroyTask(data[2]); data[3] = CreateTask(Task_Truck2, 0xA); data[0] = 3; - PlaySE(SE_TRACK_STOP); + PlaySE(SE_TRUCK_STOP); } break; case 3: @@ -206,7 +206,7 @@ void Task_HandleTruckSequence(u8 taskId) data[1]++; if (data[1] == 90) { - PlaySE(SE_TRACK_HAIKI); + PlaySE(SE_TRUCK_UNLOAD); data[1] = 0; data[0] = 5; } @@ -219,7 +219,7 @@ void Task_HandleTruckSequence(u8 taskId) MapGridSetMetatileIdAt(11, 9, METATILE_InsideOfTruck_ExitLight_Mid); MapGridSetMetatileIdAt(11, 10, METATILE_InsideOfTruck_ExitLight_Bottom); DrawWholeMapView(); - PlaySE(SE_TRACK_DOOR); + PlaySE(SE_TRUCK_DOOR); DestroyTask(taskId); ScriptContext2_Disable(); } diff --git a/src/field_specials.c b/src/field_specials.c index 7c6ef37d7b..c1fc92dbe2 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -827,7 +827,7 @@ void PetalburgGymSlideOpenRoomDoors(void) { sSlidingDoorNextFrameCounter = 0; sSlidingDoorFrame = 0; - PlaySE(SE_KI_GASYAN); + PlaySE(SE_UNLOCK); CreateTask(Task_PetalburgGymSlideOpenRoomDoors, 8); } @@ -1509,7 +1509,7 @@ void ShakeCamera(void) gTasks[taskId].delay = gSpecialVar_0x8007; gTasks[taskId].verticalPan = gSpecialVar_0x8004; SetCameraPanningCallback(NULL); - PlaySE(SE_W070); + PlaySE(SE_M_STRENGTH); } static void Task_ShakeCamera(u8 taskId) @@ -1880,7 +1880,7 @@ void MoveElevator(void) SetCameraPanningCallback(NULL); MoveElevatorWindowLights(floorDelta, data[6]); - PlaySE(SE_ELEBETA); + PlaySE(SE_ELEVATOR); } static void Task_MoveElevator(u8 taskId) @@ -1897,7 +1897,7 @@ static void Task_MoveElevator(u8 taskId) // arrived at floor if (data[2] == data[5]) { - PlaySE(SE_PINPON); + PlaySE(SE_DING_DONG); DestroyTask(taskId); EnableBothScriptContexts(); InstallCameraPanAheadCallback(); @@ -3438,9 +3438,9 @@ static void ChangeDeoxysRockLevel(u8 rockLevel) TryGetObjectEventIdByLocalIdAndMap(1, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, &objectEventId); if (rockLevel == 0) - PlaySE(SE_W109); + PlaySE(SE_M_CONFUSE_RAY); else - PlaySE(SE_RG_DEOMOV); + PlaySE(SE_RG_DEOXYS_MOVE); CreateTask(WaitForDeoxysRockMovement, 8); gFieldEffectArguments[0] = 1; @@ -3904,7 +3904,7 @@ void Script_DoRayquazaScene(void) void LoopWingFlapSE(void) { CreateTask(Task_LoopWingFlapSE, 8); - PlaySE(SE_W017); + PlaySE(SE_M_WING_ATTACK); } static void Task_LoopWingFlapSE(u8 taskId) @@ -3916,7 +3916,7 @@ static void Task_LoopWingFlapSE(u8 taskId) { playCount++; delay = 0; - PlaySE(SE_W017); + PlaySE(SE_M_WING_ATTACK); } if (playCount == gSpecialVar_0x8004 - 1) diff --git a/src/field_tasks.c b/src/field_tasks.c index 49b6fbdd8c..91b4558d5d 100644 --- a/src/field_tasks.c +++ b/src/field_tasks.c @@ -357,7 +357,7 @@ static void PacifidlogBridgePerStepCallback(u8 taskId) data[2] = x; data[3] = y; if (MetatileBehavior_IsPacifidlogLog(MapGridGetMetatileBehaviorAt(x, y))) - PlaySE(SE_MIZU); + PlaySE(SE_PUDDLE); } break; case 2: @@ -443,7 +443,7 @@ static void FortreeBridgePerStepCallback(u8 taskId) flag = 1; if (flag && (isFortreeBridgeCur == 1 || isFortreeBridgePrev == 1)) - PlaySE(SE_HASHI); + PlaySE(SE_BRIDGE_WALK); if (isFortreeBridgePrev) { @@ -583,7 +583,7 @@ static void SootopolisGymIcePerStepCallback(u8 taskId) { x = data[4]; y = data[5]; - PlaySE(SE_RU_BARI); + PlaySE(SE_ICE_CRACK); MapGridSetMetatileIdAt(x, y, METATILE_SootopolisGym_Ice_Cracked); CurrentMapDrawMetatileAt(x, y); MarkIcePuzzleCoordVisited(x - 7, y - 7); @@ -599,7 +599,7 @@ static void SootopolisGymIcePerStepCallback(u8 taskId) { x = data[4]; y = data[5]; - PlaySE(SE_RU_GASYAN); + PlaySE(SE_ICE_BREAK); MapGridSetMetatileIdAt(x, y, METATILE_SootopolisGym_Ice_Broken); CurrentMapDrawMetatileAt(x, y); data[1] = 1; diff --git a/src/field_weather.c b/src/field_weather.c index 684a86479a..25ee0582a2 100644 --- a/src/field_weather.c +++ b/src/field_weather.c @@ -1038,13 +1038,13 @@ void SetRainStrengthFromSoundEffect(u16 soundEffect) { switch (soundEffect) { - case SE_T_KOAME: + case SE_RAIN: gWeatherPtr->rainStrength = 0; break; - case SE_T_OOAME: + case SE_DOWNPOUR: gWeatherPtr->rainStrength = 1; break; - case SE_T_AME: + case SE_THUNDERSTORM: gWeatherPtr->rainStrength = 2; break; default: @@ -1062,14 +1062,14 @@ void PlayRainStoppingSoundEffect(void) switch (gWeatherPtr->rainStrength) { case 0: - PlaySE(SE_T_KOAME_E); + PlaySE(SE_RAIN_STOP); break; case 1: - PlaySE(SE_T_OOAME_E); + PlaySE(SE_DOWNPOUR_STOP); break; case 2: default: - PlaySE(SE_T_AME_E); + PlaySE(SE_THUNDERSTORM_STOP); break; } } diff --git a/src/field_weather_effect.c b/src/field_weather_effect.c index 26a7adf27c..320a106701 100644 --- a/src/field_weather_effect.c +++ b/src/field_weather_effect.c @@ -479,7 +479,7 @@ void Rain_InitVars(void) gWeatherPtr->targetRainSpriteCount = 10; gWeatherPtr->gammaTargetIndex = 3; gWeatherPtr->gammaStepDelay = 20; - SetRainStrengthFromSoundEffect(SE_T_KOAME); + SetRainStrengthFromSoundEffect(SE_RAIN); } void Rain_InitAll(void) @@ -1023,7 +1023,7 @@ void Thunderstorm_InitVars(void) gWeatherPtr->gammaStepDelay = 20; gWeatherPtr->weatherGfxLoaded = FALSE; // duplicate assignment gWeatherPtr->thunderTriggered = 0; - SetRainStrengthFromSoundEffect(SE_T_AME); + SetRainStrengthFromSoundEffect(SE_THUNDERSTORM); } void Thunderstorm_InitAll(void) @@ -1051,7 +1051,7 @@ void Downpour_InitVars(void) gWeatherPtr->gammaTargetIndex = 3; gWeatherPtr->gammaStepDelay = 20; gWeatherPtr->weatherGfxLoaded = FALSE; // duplicate assignment - SetRainStrengthFromSoundEffect(SE_T_OOAME); + SetRainStrengthFromSoundEffect(SE_DOWNPOUR); } void Downpour_InitAll(void) @@ -1220,9 +1220,9 @@ static void UpdateThunderSound(void) return; if (Random() & 1) - PlaySE(SE_T_KAMI); + PlaySE(SE_THUNDER); else - PlaySE(SE_T_KAMI2); + PlaySE(SE_THUNDER2); gWeatherPtr->thunderTriggered = 0; } diff --git a/src/fldeff_cut.c b/src/fldeff_cut.c index 34868342fb..785f7b426f 100644 --- a/src/fldeff_cut.c +++ b/src/fldeff_cut.c @@ -316,7 +316,7 @@ bool8 FldEff_CutGrass(void) s16 x, y; u8 i = 0; - PlaySE(SE_W015); + PlaySE(SE_M_CUT); PlayerGetDestCoords(&gPlayerFacingPosition.x, &gPlayerFacingPosition.y); for (i = 0; i < CUT_HYPER_AREA; i++) { @@ -639,7 +639,7 @@ void FixLongGrassMetatilesWindowBottom(s16 x, s16 y) static void StartCutTreeFieldEffect(void) { - PlaySE(SE_W015); + PlaySE(SE_M_CUT); FieldEffectActiveListRemove(FLDEFF_USE_CUT_ON_TREE); EnableBothScriptContexts(); } diff --git a/src/fldeff_flash.c b/src/fldeff_flash.c index 2d25928b8a..b2ddf31801 100644 --- a/src/fldeff_flash.c +++ b/src/fldeff_flash.c @@ -104,7 +104,7 @@ static void FieldCallback_Flash(void) static void FldEff_UseFlash(void) { - PlaySE(SE_W115); + PlaySE(SE_M_REFLECT); FlagSet(FLAG_SYS_USE_FLASH); ScriptContext1_SetupScript(EventScript_UseFlash); } diff --git a/src/fldeff_misc.c b/src/fldeff_misc.c index 6db44d7520..7eae8cfd12 100644 --- a/src/fldeff_misc.c +++ b/src/fldeff_misc.c @@ -618,7 +618,7 @@ bool8 FldEff_SecretPowerCave(void) static void SpriteCB_CaveEntranceInit(struct Sprite *sprite) { - PlaySE(SE_W088); + PlaySE(SE_M_ROCK_THROW); sprite->data[0] = 0; sprite->callback = SpriteCB_CaveEntranceOpen; @@ -691,7 +691,7 @@ bool8 FldEff_SecretPowerTree(void) static void SpriteCB_TreeEntranceInit(struct Sprite *sprite) { - PlaySE(SE_W010); + PlaySE(SE_M_SCRATCH); sprite->animNum = gFieldEffectArguments[7]; sprite->data[0] = 0; @@ -754,7 +754,7 @@ bool8 FldEff_SecretPowerShrub(void) static void SpriteCB_ShrubEntranceInit(struct Sprite *sprite) { - PlaySE(SE_W077); + PlaySE(SE_M_POISON_POWDER); sprite->data[0] = 0; sprite->callback = SpriteCB_ShrubEntranceOpen; @@ -888,16 +888,16 @@ static void DoBalloonSoundEffect(s16 metatileId) switch (metatileId) { case METATILE_SecretBase_RedBalloon: - PlaySE(SE_FUUSEN1); + PlaySE(SE_BALLOON_RED); break; case METATILE_SecretBase_BlueBalloon: - PlaySE(SE_FUUSEN2); + PlaySE(SE_BALLOON_BLUE); break; case METATILE_SecretBase_YellowBalloon: - PlaySE(SE_FUUSEN3); + PlaySE(SE_BALLOON_YELLOW); break; case METATILE_SecretBase_MudBall: - PlaySE(SE_TOY_DANGO); + PlaySE(SE_MUD_BALL); break; } } @@ -914,7 +914,7 @@ bool8 FldEff_Nop48(void) static void DoSecretBaseBreakableDoorEffect(s16 x, s16 y) { - PlaySE(SE_TOY_KABE); + PlaySE(SE_BREAKABLE_DOOR); MapGridSetMetatileIdAt(x, y, METATILE_SecretBase_BreakableDoor_BottomOpen); MapGridSetMetatileIdAt(x, y - 1, METATILE_SecretBase_BreakableDoor_TopOpen); CurrentMapDrawMetatileAt(x, y); @@ -959,28 +959,28 @@ static void Task_SecretBaseMusicNoteMatSound(u8 taskId) switch (gTasks[taskId].tMetatileID) { case METATILE_SecretBase_NoteMat_C_Low: - PlaySE(SE_TOY_C); + PlaySE(SE_NOTE_C); break; case METATILE_SecretBase_NoteMat_D: - PlaySE(SE_TOY_D); + PlaySE(SE_NOTE_D); break; case METATILE_SecretBase_NoteMat_E: - PlaySE(SE_TOY_E); + PlaySE(SE_NOTE_E); break; case METATILE_SecretBase_NoteMat_F: - PlaySE(SE_TOY_F); + PlaySE(SE_NOTE_F); break; case METATILE_SecretBase_NoteMat_G: - PlaySE(SE_TOY_G); + PlaySE(SE_NOTE_G); break; case METATILE_SecretBase_NoteMat_A: - PlaySE(SE_TOY_A); + PlaySE(SE_NOTE_A); break; case METATILE_SecretBase_NoteMat_B: - PlaySE(SE_TOY_B); + PlaySE(SE_NOTE_B); break; case METATILE_SecretBase_NoteMat_C_High: - PlaySE(SE_TOY_C1); + PlaySE(SE_NOTE_C_HIGH); break; } @@ -1006,7 +1006,7 @@ static void SpriteCB_GlitterMatSparkle(struct Sprite *sprite) sprite->data[0]++; if (sprite->data[0] == 8) - PlaySE(SE_W215); + PlaySE(SE_M_HEAL_BELL); if (sprite->data[0] >= 32) DestroySprite(sprite); @@ -1081,7 +1081,7 @@ bool8 FldEff_SandPillar(void) static void SpriteCB_SandPillar_BreakTop(struct Sprite *sprite) { - PlaySE(SE_W088); + PlaySE(SE_M_ROCK_THROW); if (MapGridGetMetatileIdAt(gFieldEffectArguments[5], gFieldEffectArguments[6] - 1) == METATILE_SecretBase_SandOrnament_TopWall) MapGridSetMetatileIdAt(gFieldEffectArguments[5], gFieldEffectArguments[6] - 1, METATILE_SecretBase_Wall_TopMid | METATILE_COLLISION_MASK); @@ -1226,7 +1226,7 @@ static void Task_FieldPoisonEffect(u8 taskId) void FldEffPoison_Start(void) { - PlaySE(SE_DOKU); + PlaySE(SE_FIELD_POISON); CreateTask(Task_FieldPoisonEffect, 80); } diff --git a/src/fldeff_rocksmash.c b/src/fldeff_rocksmash.c index 0c35ec74ed..6f4ce8002b 100644 --- a/src/fldeff_rocksmash.c +++ b/src/fldeff_rocksmash.c @@ -162,7 +162,7 @@ bool8 FldEff_UseRockSmash(void) // The actual rock smashing is handled by EventScript_SmashRock, so this function does very little static void FieldMove_RockSmash(void) { - PlaySE(SE_W088); + PlaySE(SE_M_ROCK_THROW); FieldEffectActiveListRemove(FLDEFF_USE_ROCK_SMASH); EnableBothScriptContexts(); } diff --git a/src/fldeff_softboiled.c b/src/fldeff_softboiled.c index bfa20cdbcb..3a38f67f02 100644 --- a/src/fldeff_softboiled.c +++ b/src/fldeff_softboiled.c @@ -61,13 +61,13 @@ void Task_TryUseSoftboiledOnPartyMon(u8 taskId) } // Take away Softboiled user's health first (-1) - PlaySE(SE_KAIFUKU); + PlaySE(SE_USE_ITEM); PartyMenuModifyHP(taskId, userPartyId, -1, GetMonData(&gPlayerParty[userPartyId], MON_DATA_MAX_HP)/5, Task_SoftboiledRestoreHealth); } static void Task_SoftboiledRestoreHealth(u8 taskId) { - PlaySE(SE_KAIFUKU); + PlaySE(SE_USE_ITEM); PartyMenuModifyHP(taskId, gPartyMenu.slotId2, 1, GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_MAX_HP)/5, Task_DisplayHPRestoredMessage); } diff --git a/src/fldeff_sweetscent.c b/src/fldeff_sweetscent.c index 1ee82674e3..a9d81501f3 100644 --- a/src/fldeff_sweetscent.c +++ b/src/fldeff_sweetscent.c @@ -51,7 +51,7 @@ static void StartSweetScentFieldEffect(void) { u8 taskId; - PlaySE(SE_W230); + PlaySE(SE_M_SWEET_SCENT); CpuFastSet(gPlttBufferUnfaded, gPaletteDecompressionBuffer, 0x100); CpuFastSet(gPlttBufferFaded, gPlttBufferUnfaded, 0x100); BeginNormalPaletteFade(~(1 << (gSprites[GetPlayerAvatarObjectId()].oam.paletteNum + 16)), 4, 0, 8, RGB_RED); diff --git a/src/frontier_pass.c b/src/frontier_pass.c index 024a954d18..8587777386 100644 --- a/src/frontier_pass.c +++ b/src/frontier_pass.c @@ -871,10 +871,10 @@ static void CB2_ReturnFromRecord(void) switch (InBattlePyramid()) { case 1: - PlayBGM(MUS_PYRAMID); + PlayBGM(MUS_B_PYRAMID); break; case 2: - PlayBGM(MUS_PYRAMID_TOP); + PlayBGM(MUS_B_PYRAMID_TOP); break; default: Overworld_PlaySpecialMapMusic(); @@ -1705,5 +1705,5 @@ static void HandleFrontierMapCursorMove(u8 direction) CopyWindowToVram(i, 3); CopyBgTilemapBufferToVram(0); - PlaySE(SE_Z_SCROLL); + PlaySE(SE_DEX_SCROLL); } diff --git a/src/hall_of_fame.c b/src/hall_of_fame.c index 19217ae85f..2b548dea26 100644 --- a/src/hall_of_fame.c +++ b/src/hall_of_fame.c @@ -396,7 +396,7 @@ static bool8 InitHallOfFameScreen(void) if (!gPaletteFade.active) { SetMainCallback2(CB2_HallOfFame); - PlayBGM(MUS_DENDOU); + PlayBGM(MUS_HALL_OF_FAME); return FALSE; } break; @@ -648,7 +648,7 @@ static void Task_Hof_PaletteFadeAndPrintWelcomeText(u8 taskId) } HallOfFame_PrintWelcomeText(0, 15); - PlaySE(SE_DENDOU); + PlaySE(SE_APPLAUSE); gTasks[taskId].tFrameCount = 400; gTasks[taskId].func = Task_Hof_DoConfetti; } diff --git a/src/intro.c b/src/intro.c index 72aefd737a..eca8b84b16 100644 --- a/src/intro.c +++ b/src/intro.c @@ -1129,7 +1129,7 @@ static void Task_IntroFadeIn(u8 taskId) SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG_ALL_ON | DISPCNT_OBJ_ON); gTasks[taskId].func = Task_IntroWaterDrops; gIntroFrameCounter = 0; - m4aSongNumStart(MUS_DEMO1); + m4aSongNumStart(MUS_INTRO); ResetSerial(); } @@ -1563,7 +1563,7 @@ static void Task_IntroLoadPart3Graphics(u8 taskId) SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_1 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG2_ON | DISPCNT_OBJ_ON); gTasks[taskId].func = Task_IntroSpinAndZoomPokeball; gIntroFrameCounter = 0; - m4aSongNumStart(MUS_T_BATTLE); + m4aSongNumStart(MUS_INTRO_BATTLE); } static void Task_IntroSpinAndZoomPokeball(u8 taskId) @@ -2355,7 +2355,7 @@ static void Task_IntroRayquazaGlowScene_1(u8 taskId) if (data[1] == 6) { spriteId = CreateSprite(&gIntroRayquazaHyperbeamSprite, 120, 88, 15); - PlaySE(SE_OP_BASYU); + PlaySE(SE_INTRO_BLAST); gSprites[spriteId].invisible = TRUE; gSprites[spriteId].data[3] = data[4]; data[0]++; diff --git a/src/item_menu.c b/src/item_menu.c index ae09ec7edf..c3ccd3d9df 100755 --- a/src/item_menu.c +++ b/src/item_menu.c @@ -1184,7 +1184,7 @@ void Task_BagMenu_HandleInput(u8 taskId) case LIST_CANCEL: if (gBagPositionStruct.location == ITEMMENULOCATION_BERRY_BLENDER_CRUSH) { - PlaySE(SE_HAZURE); + PlaySE(SE_FAILURE); break; } PlaySE(SE_SELECT); @@ -2085,7 +2085,7 @@ void sub_81AD8C8(u8 taskId) u16* scrollPos = &gBagPositionStruct.scrollPosition[gBagPositionStruct.pocket]; u16* cursorPos = &gBagPositionStruct.cursorPosition[gBagPositionStruct.pocket]; - PlaySE(SE_REGI); + PlaySE(SE_SHOP); RemoveBagItem(gSpecialVar_ItemId, tItemCount); AddMoney(&gSaveBlock1Ptr->money, (ItemId_GetPrice(gSpecialVar_ItemId) / 2) * tItemCount); DestroyListMenuTask(data[0], scrollPos, cursorPos); diff --git a/src/item_use.c b/src/item_use.c index 2c9ffaf32a..a9132ae5ef 100755 --- a/src/item_use.c +++ b/src/item_use.c @@ -328,7 +328,7 @@ static void Task_UseItemfinder(u8 taskId) } return; } - PlaySE(SE_DAUGI); + PlaySE(SE_ITEMFINDER); tItemfinderBeeps++; } tCounter = (tCounter + 1) & 0x1F; @@ -845,7 +845,7 @@ static void Task_StartUseRepel(u8 taskId) if (++data[8] > 7) { data[8] = 0; - PlaySE(SE_TU_SAA); + PlaySE(SE_REPEL); gTasks[taskId].func = Task_UseRepel; } } @@ -867,7 +867,7 @@ static void Task_UsedBlackWhiteFlute(u8 taskId) { if(++gTasks[taskId].data[8] > 7) { - PlaySE(SE_BIDORO); + PlaySE(SE_GLASS_FLUTE); if (!InBattlePyramid()) DisplayItemMessage(taskId, 1, gStringVar4, BagMenu_InitListsMenu); else @@ -969,7 +969,7 @@ static void Task_UseStatIncreaseItem(u8 taskId) { if(++gTasks[taskId].data[8] > 7) { - PlaySE(SE_KAIFUKU); + PlaySE(SE_USE_ITEM); RemoveBagItem(gSpecialVar_ItemId, 1); if (!InBattlePyramid()) DisplayItemMessage(taskId, 1, UseStatIncreaseItem(gSpecialVar_ItemId), Task_CloseStatIncreaseMessage); diff --git a/src/main_menu.c b/src/main_menu.c index a4de99207b..f4bf37ce18 100644 --- a/src/main_menu.c +++ b/src/main_menu.c @@ -1292,7 +1292,7 @@ static void Task_NewGameBirchSpeech_Init(u8 taskId) gTasks[taskId].tPlayerSpriteId = 0xFF; gTasks[taskId].data[3] = 0xFF; gTasks[taskId].tTimer = 0xD8; - PlayBGM(MUS_DOORO_X4); + PlayBGM(MUS_ROUTE122); ShowBg(0); ShowBg(1); } diff --git a/src/match_call.c b/src/match_call.c index 307b844136..2b3f6df8d6 100644 --- a/src/match_call.c +++ b/src/match_call.c @@ -1119,7 +1119,7 @@ static void StartMatchCall(void) sub_808BCF4(); } - PlaySE(SE_TOREEYE); + PlaySE(SE_POKENAV_CALL); CreateTask(ExecuteMatchCall, 1); } @@ -1257,7 +1257,7 @@ static bool32 sub_8196330(u8 taskId) { FillWindowPixelBuffer(taskData[2], PIXEL_FILL(8)); CopyWindowToVram(taskData[2], 2); - PlaySE(SE_TOREOFF); + PlaySE(SE_POKENAV_HANG_UP); return TRUE; } diff --git a/src/minigame_countdown.c b/src/minigame_countdown.c index be1c42e29c..f5ef09cac5 100644 --- a/src/minigame_countdown.c +++ b/src/minigame_countdown.c @@ -227,7 +227,7 @@ static void sub_802E938(struct Sprite *sprite) sprite->invisible = FALSE; case 1: case 2: - PlaySE(SE_KON); + PlaySE(SE_BALL_BOUNCE_1); StartSpriteAnim(sprite, sprite->data[2]); break; case 3: @@ -249,7 +249,7 @@ static void sub_802E938(struct Sprite *sprite) static void sub_802EA50(u8 taskId) { s16 *data = gTasks[taskId].data; - PlaySE(SE_KON); + PlaySE(SE_BALL_BOUNCE_1); gSprites[data[13]].callback = sub_802E938; gSprites[data[13]].invisible = FALSE; gTasks[taskId].data[0] = 3; @@ -350,7 +350,7 @@ static bool32 RunMinigameCountdownDigitsAnim(u8 spriteId) // fallthrough case 1: if (sprite->data[2] == 0) - PlaySE(SE_KON2); + PlaySE(SE_BALL_BOUNCE_2); if (++sprite->data[2] >= 20) { sprite->data[2] = 0; @@ -443,7 +443,7 @@ static void SpriteCB_Start(struct Sprite *sprite) sprite->pos2.y = data[5] >> 4; if (sprite->pos2.y >= 0) { - PlaySE(SE_KON2); + PlaySE(SE_BALL_BOUNCE_2); sprite->pos2.y = 0; data[0]++; } @@ -452,7 +452,7 @@ static void SpriteCB_Start(struct Sprite *sprite) data[1] += 12; if (data[1] >= 128) { - PlaySE(SE_KON2); + PlaySE(SE_BALL_BOUNCE_2); data[1] = 0; data[0]++; } @@ -463,7 +463,7 @@ static void SpriteCB_Start(struct Sprite *sprite) data[1] += 16; if (data[1] >= 128) { - PlaySE(SE_KON2); + PlaySE(SE_BALL_BOUNCE_2); data[1] = 0; data[0]++; } diff --git a/src/mirage_tower.c b/src/mirage_tower.c index 02cccf2a5b..fb3a0a3743 100644 --- a/src/mirage_tower.c +++ b/src/mirage_tower.c @@ -370,7 +370,7 @@ static void StartScreenShake(u8 yShakeOffset, u8 xShakeOffset, u8 numShakes, u8 gTasks[taskId].data[3] = shakeDelay; gTasks[taskId].data[4] = yShakeOffset; SetCameraPanningCallback(NULL); - PlaySE(SE_W070); + PlaySE(SE_M_STRENGTH); } static void DoScreenShake(u8 taskId) diff --git a/src/move_relearner.c b/src/move_relearner.c index 1c863804be..5f2123362a 100644 --- a/src/move_relearner.c +++ b/src/move_relearner.c @@ -713,13 +713,13 @@ static void DoMoveRelearnerMain(void) { FormatAndPrintText(gText_MoveRelearnerPkmnForgotMoveAndLearnedNew); sMoveRelearnerStruct->state = MENU_STATE_PRINT_TEXT_THEN_FANFARE; - PlayFanfare(MUS_FANFA1); + PlayFanfare(MUS_LEVEL_UP); } break; case MENU_STATE_PRINT_TEXT_THEN_FANFARE: if (!MoveRelearnerRunTextPrinters()) { - PlayFanfare(MUS_FANFA1); + PlayFanfare(MUS_LEVEL_UP); sMoveRelearnerStruct->state = MENU_STATE_WAIT_FOR_FANFARE; } break; diff --git a/src/mystery_gift.c b/src/mystery_gift.c index 7f1370a5e4..ca5ab1bafb 100644 --- a/src/mystery_gift.c +++ b/src/mystery_gift.c @@ -431,7 +431,7 @@ bool32 HandleMysteryGiftOrEReaderSetup(s32 mg_or_ereader) case 3: ShowBg(0); ShowBg(3); - PlayBGM(MUS_RG_OKURIMONO); + PlayBGM(MUS_RG_MYSTERY_GIFT); SetVBlankCallback(vblankcb_mystery_gift_e_reader_run); EnableInterrupts(INTR_FLAG_VBLANK | INTR_FLAG_VCOUNT | INTR_FLAG_TIMER3 | INTR_FLAG_SERIAL); return TRUE; @@ -1023,7 +1023,7 @@ static bool32 PrintMGSuccessMessage(u8 * state, const u8 * arg1, u16 * arg2) { AddTextPrinterToWindow1(arg1); } - PlayFanfare(MUS_FANFA4); + PlayFanfare(MUS_OBTAIN_ITEM); *arg2 = 0; (*state)++; break; diff --git a/src/naming_screen.c b/src/naming_screen.c index 4ed9d78d0c..be921078eb 100644 --- a/src/naming_screen.c +++ b/src/naming_screen.c @@ -1823,7 +1823,7 @@ static void DeleteTextCharacter(void) // It incorrectly leaves the Back key 1 shade lighter than its default if (keyRole == KEY_ROLE_CHAR || keyRole == KEY_ROLE_BACKSPACE) TryStartButtonFlash(BUTTON_BACK, FALSE, TRUE); - PlaySE(SE_BOWA); + PlaySE(SE_BALL); } // Returns TRUE if the text entry is now full diff --git a/src/overworld.c b/src/overworld.c index 2d838fc4d6..d18e3d3bc1 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -1076,11 +1076,11 @@ u16 GetLocationMusic(struct WarpData *warp) if (NoMusicInSotopolisWithLegendaries(warp) == TRUE) return 0xFFFF; else if (ShouldLegendaryMusicPlayAtLocation(warp) == TRUE) - return MUS_OOAME; + return MUS_ABNORMAL_WEATHER; else if (IsInflitratedSpaceCenter(warp) == TRUE) - return MUS_MGM0; + return MUS_ENCOUNTER_MAGMA; else if (IsInfiltratedWeatherInstitute(warp) == TRUE) - return MUS_TOZAN; + return MUS_MT_CHIMNEY; else return Overworld_GetMapHeaderByGroupAndId(warp->mapGroup, warp->mapNum)->music; } @@ -1093,26 +1093,26 @@ u16 GetCurrLocationDefaultMusic(void) if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(ROUTE111) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(ROUTE111) && GetSav1Weather() == WEATHER_SANDSTORM) - return MUS_ASHROAD; + return MUS_ROUTE111; music = GetLocationMusic(&gSaveBlock1Ptr->location); - if (music != MUS_ROUTE_118) + if (music != MUS_ROUTE118) { return music; } else { if (gSaveBlock1Ptr->pos.x < 24) - return MUS_DOORO_X1; + return MUS_ROUTE110; else - return MUS_GRANROAD; + return MUS_ROUTE119; } } u16 GetWarpDestinationMusic(void) { u16 music = GetLocationMusic(&sWarpDestination); - if (music != MUS_ROUTE_118) + if (music != MUS_ROUTE118) { return music; } @@ -1120,9 +1120,9 @@ u16 GetWarpDestinationMusic(void) { if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(MAUVILLE_CITY) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(MAUVILLE_CITY)) - return MUS_DOORO_X1; + return MUS_ROUTE110; else - return MUS_GRANROAD; + return MUS_ROUTE119; } } @@ -1135,14 +1135,14 @@ void Overworld_PlaySpecialMapMusic(void) { u16 music = GetCurrLocationDefaultMusic(); - if (music != MUS_OOAME && music != 0xFFFF) + if (music != MUS_ABNORMAL_WEATHER && music != 0xFFFF) { if (gSaveBlock1Ptr->savedMusic) music = gSaveBlock1Ptr->savedMusic; else if (GetCurrentMapType() == MAP_TYPE_UNDERWATER) - music = MUS_DEEPDEEP; + music = MUS_UNDERWATER; else if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_SURFING)) - music = MUS_NAMINORI; + music = MUS_SURF; } if (music != GetCurrentMapMusic()) @@ -1165,12 +1165,12 @@ static void TransitionMapMusic(void) { u16 newMusic = GetWarpDestinationMusic(); u16 currentMusic = GetCurrentMapMusic(); - if (newMusic != MUS_OOAME && newMusic != 0xFFFF) + if (newMusic != MUS_ABNORMAL_WEATHER && newMusic != 0xFFFF) { - if (currentMusic == MUS_DEEPDEEP || currentMusic == MUS_NAMINORI) + if (currentMusic == MUS_UNDERWATER || currentMusic == MUS_SURF) return; if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_SURFING)) - newMusic = MUS_NAMINORI; + newMusic = MUS_SURF; } if (newMusic != currentMusic) { @@ -1192,7 +1192,7 @@ void Overworld_ChangeMusicToDefault(void) void Overworld_ChangeMusicTo(u16 newMusic) { u16 currentMusic = GetCurrentMapMusic(); - if (currentMusic != newMusic && currentMusic != MUS_OOAME) + if (currentMusic != newMusic && currentMusic != MUS_ABNORMAL_WEATHER) FadeOutAndPlayNewMapMusic(newMusic, 8); } @@ -1211,7 +1211,7 @@ void TryFadeOutOldMapMusic(void) u16 warpMusic = GetWarpDestinationMusic(); if (FlagGet(FLAG_DONT_TRANSITION_MUSIC) != TRUE && warpMusic != GetCurrentMapMusic()) { - if (currentMusic == MUS_NAMINORI + if (currentMusic == MUS_SURF && VarGet(VAR_SKY_PILLAR_STATE) == 2 && gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(SOOTOPOLIS_CITY) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(SOOTOPOLIS_CITY) diff --git a/src/party_menu.c b/src/party_menu.c index f61cbc5e6e..7514cf545e 100755 --- a/src/party_menu.c +++ b/src/party_menu.c @@ -1294,7 +1294,7 @@ static bool8 IsSelectedMonNotEgg(u8 *slotPtr) { if (GetMonData(&gPlayerParty[*slotPtr], MON_DATA_IS_EGG) == TRUE) { - PlaySE(SE_HAZURE); + PlaySE(SE_FAILURE); return FALSE; } return TRUE; @@ -1305,7 +1305,7 @@ static void HandleChooseMonCancel(u8 taskId, s8 *slotPtr) switch (gPartyMenu.action) { case PARTY_ACTION_SEND_OUT: - PlaySE(SE_HAZURE); + PlaySE(SE_FAILURE); break; case PARTY_ACTION_SWITCH: case PARTY_ACTION_SOFTBOILED: @@ -1915,7 +1915,7 @@ static void TryEnterMonForMinigame(u8 taskId, u8 slot) } else { - PlaySE(SE_HAZURE); + PlaySE(SE_FAILURE); DisplayPartyMenuMessage(gText_PkmnCantParticipate, FALSE); ScheduleBgCopyTilemapToVram(2); gTasks[taskId].func = Task_ReturnToChooseMonAfterText; @@ -3471,7 +3471,7 @@ static void CursorCb_Enter(u8 taskId) } ConvertIntToDecimalStringN(gStringVar1, maxBattlers, STR_CONV_MODE_LEFT_ALIGN, 1); StringExpandPlaceholders(gStringVar4, gText_NoMoreThanVar1Pkmn); - PlaySE(SE_HAZURE); + PlaySE(SE_FAILURE); DisplayPartyMenuMessage(gStringVar4, TRUE); gTasks[taskId].func = Task_ReturnToChooseMonAfterText; } @@ -3538,7 +3538,7 @@ static void CursorCb_Register(u8 taskId) Task_ClosePartyMenu(taskId); return; } - PlaySE(SE_HAZURE); + PlaySE(SE_FAILURE); PartyMenuRemoveWindow(&sPartyMenuInternal->windowId[0]); PartyMenuRemoveWindow(&sPartyMenuInternal->windowId[1]); StringAppend(gStringVar4, gText_PauseUntilPress); @@ -3556,7 +3556,7 @@ static void CursorCb_Trade1(u8 taskId) if (stringId != UR_TRADE_MSG_NONE) { StringExpandPlaceholders(gStringVar4, sUnionRoomTradeMessages[stringId - 1]); - PlaySE(SE_HAZURE); + PlaySE(SE_FAILURE); PartyMenuRemoveWindow(&sPartyMenuInternal->windowId[0]); PartyMenuRemoveWindow(&sPartyMenuInternal->windowId[1]); StringAppend(gStringVar4, gText_PauseUntilPress); @@ -3595,7 +3595,7 @@ static void CursorCb_Trade2(u8 taskId) gTasks[taskId].func = Task_SpinTradeYesNo; return; } - PlaySE(SE_HAZURE); + PlaySE(SE_FAILURE); StringAppend(gStringVar4, gText_PauseUntilPress); DisplayPartyMenuMessage(gStringVar4, TRUE); gTasks[taskId].func = Task_ReturnToChooseMonAfterText; @@ -4355,13 +4355,13 @@ void ItemUseCB_Medicine(u8 taskId, TaskFunc task) gPartyMenuUseExitCallback = TRUE; if (!IsItemFlute(item)) { - PlaySE(SE_KAIFUKU); + PlaySE(SE_USE_ITEM); if (gPartyMenu.action != PARTY_ACTION_REUSABLE_ITEM) RemoveBagItem(item, 1); } else { - PlaySE(SE_BIDORO); + PlaySE(SE_GLASS_FLUTE); } SetPartyMonAilmentGfx(mon, &sPartyMenuBoxes[gPartyMenu.slotId]); if (gSprites[sPartyMenuBoxes[gPartyMenu.slotId].statusSpriteId].invisible) @@ -4426,7 +4426,7 @@ void ItemUseCB_ReduceEV(u8 taskId, TaskFunc task) else { gPartyMenuUseExitCallback = TRUE; - PlaySE(SE_KAIFUKU); + PlaySE(SE_USE_ITEM); RemoveBagItem(item, 1); GetMonNickname(mon, gStringVar1); ItemEffectToStatString(effectType, gStringVar2); @@ -4591,7 +4591,7 @@ static void TryUsePPItem(u8 taskId) { gPartyMenuUseExitCallback = TRUE; mon = &gPlayerParty[ptr->slotId]; - PlaySE(SE_KAIFUKU); + PlaySE(SE_USE_ITEM); RemoveBagItem(item, 1); move = GetMonData(mon, MON_DATA_MOVE1 + *moveSlot); StringCopy(gStringVar1, gMoveNames[move]); @@ -4715,7 +4715,7 @@ static void Task_DoLearnedMoveFanfareAfterText(u8 taskId) { if (IsPartyMenuTextPrinterActive() != TRUE) { - PlayFanfare(MUS_FANFA1); + PlayFanfare(MUS_LEVEL_UP); gTasks[taskId].func = Task_LearnNextMoveOrClosePartyMenu; } } @@ -5095,7 +5095,7 @@ static void UseSacredAsh(u8 taskId) return; } - PlaySE(SE_KAIFUKU); + PlaySE(SE_USE_ITEM); SetPartyMonAilmentGfx(mon, &sPartyMenuBoxes[gPartyMenu.slotId]); if (gSprites[sPartyMenuBoxes[gPartyMenu.slotId].statusSpriteId].invisible) DisplayPartyPokemonLevelCheck(mon, &sPartyMenuBoxes[gPartyMenu.slotId], 1); @@ -5596,7 +5596,7 @@ static void Task_ValidateChosenHalfParty(u8 taskId) if (msgId != 0xFF) { - PlaySE(SE_HAZURE); + PlaySE(SE_FAILURE); DisplayPartyMenuStdMessage(msgId); gTasks[taskId].func = Task_ContinueChoosingHalfParty; } @@ -6077,7 +6077,7 @@ static void Task_MultiPartnerPartySlideIn(u8 taskId) if (gMultiPartnerParty[i - MULTI_PARTY_SIZE].species != SPECIES_NONE) AnimateSelectedPartyIcon(sPartyMenuBoxes[i].monSpriteId, 0); } - PlaySE(SE_W231); // The Harden SE plays once the partners party mons have slid on screen + PlaySE(SE_M_HARDEN); // The Harden SE plays once the partners party mons have slid on screen gTasks[taskId].func = Task_WaitAfterMultiPartnerPartySlideIn; } } diff --git a/src/pokeball.c b/src/pokeball.c index 1a0561c33a..829d228631 100644 --- a/src/pokeball.c +++ b/src/pokeball.c @@ -406,7 +406,7 @@ static void Task_DoPokeballSendOutAnim(u8 taskId) gSprites[ballSpriteId].oam.affineParam = taskId; gTasks[taskId].tOpponentBattler = gBattlerTarget; gTasks[taskId].func = TaskDummy; - PlaySE(SE_NAGERU); + PlaySE(SE_BALL_THROW); } static void SpriteCB_TestBallThrow(struct Sprite *sprite) @@ -462,7 +462,7 @@ static void sub_807574C(struct Sprite *sprite) { sprite->data[5]++; if (sprite->data[5] == 11) - PlaySE(SE_SUIKOMU); + PlaySE(SE_BALL_TRADE); if (gSprites[gBattlerSpriteIds[sprite->sBattler]].affineAnimEnded) { StartSpriteAnim(sprite, 2); @@ -512,16 +512,16 @@ static void sub_8075838(struct Sprite *sprite) switch (sprite->data[3] >> 8) { case 1: - PlaySE(SE_KON); + PlaySE(SE_BALL_BOUNCE_1); break; case 2: - PlaySE(SE_KON2); + PlaySE(SE_BALL_BOUNCE_2); break; case 3: - PlaySE(SE_KON3); + PlaySE(SE_BALL_BOUNCE_3); break; default: - PlaySE(SE_KON4); + PlaySE(SE_BALL_BOUNCE_4); break; } } @@ -563,7 +563,7 @@ static void sub_8075930(struct Sprite *sprite) sprite->affineAnimPaused = TRUE; StartSpriteAffineAnim(sprite, 1); sprite->callback = sub_8075970; - PlaySE(SE_BOWA); + PlaySE(SE_BALL); } } @@ -632,7 +632,7 @@ static void sub_8075970(struct Sprite *sprite) StartSpriteAffineAnim(sprite, 2); else StartSpriteAffineAnim(sprite, 1); - PlaySE(SE_BOWA); + PlaySE(SE_BALL); } break; } @@ -879,7 +879,7 @@ static void sub_80760F8(struct Sprite *sprite) { gDoingBattleAnim = FALSE; m4aMPlayAllStop(); - PlaySE(MUS_FANFA5); + PlaySE(MUS_EVOLVED); } else if (sprite->data[4] == 315) { @@ -1148,7 +1148,7 @@ static void sub_807687C(struct Sprite *sprite) sprite->data[5]++; if (sprite->data[5] == 11) - PlaySE(SE_SUIKOMU); + PlaySE(SE_BALL_TRADE); r1 = sprite->data[0]; if (gSprites[r1].affineAnimEnded) { diff --git a/src/pokedex.c b/src/pokedex.c index 2a6a336334..a86c221538 100644 --- a/src/pokedex.c +++ b/src/pokedex.c @@ -1959,7 +1959,7 @@ static void Task_HandleSearchResultsStartMenuInput(u8 taskId) case 3: //BACK TO POKEDEX BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); gTasks[taskId].func = Task_ReturnToPokedexFromSearchResults; - PlaySE(SE_TRACK_DOOR); + PlaySE(SE_TRUCK_DOOR); break; case 4: //CLOSE POKEDEX BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); @@ -2596,7 +2596,7 @@ static u16 TryDoPokedexScroll(u16 selectedMon, u16 ignored) selectedMon = GetNextPosition(1, selectedMon, 0, sPokedexView->pokemonListCount - 1); CreateScrollingPokemonSprite(1, selectedMon); CreateMonListEntry(1, selectedMon, ignored); - PlaySE(SE_Z_SCROLL); + PlaySE(SE_DEX_SCROLL); } else if ((gMain.heldKeys & DPAD_DOWN) && (selectedMon < sPokedexView->pokemonListCount - 1)) { @@ -2604,7 +2604,7 @@ static u16 TryDoPokedexScroll(u16 selectedMon, u16 ignored) selectedMon = GetNextPosition(0, selectedMon, 0, sPokedexView->pokemonListCount - 1); CreateScrollingPokemonSprite(2, selectedMon); CreateMonListEntry(2, selectedMon, ignored); - PlaySE(SE_Z_SCROLL); + PlaySE(SE_DEX_SCROLL); } else if ((gMain.newKeys & DPAD_LEFT) && (selectedMon > 0)) { @@ -2615,7 +2615,7 @@ static u16 TryDoPokedexScroll(u16 selectedMon, u16 ignored) sPokedexView->pokeBallRotation += 16 * (selectedMon - startingPos); ClearMonSprites(); CreateMonSpritesAtPos(selectedMon, 0xE); - PlaySE(SE_Z_PAGE); + PlaySE(SE_DEX_PAGE); } else if ((gMain.newKeys & DPAD_RIGHT) && (selectedMon < sPokedexView->pokemonListCount - 1)) { @@ -2625,7 +2625,7 @@ static u16 TryDoPokedexScroll(u16 selectedMon, u16 ignored) sPokedexView->pokeBallRotation += 16 * (selectedMon - startingPos); ClearMonSprites(); CreateMonSpritesAtPos(selectedMon, 0xE); - PlaySE(SE_Z_PAGE); + PlaySE(SE_DEX_PAGE); } if (scrollDir == 0) @@ -3353,7 +3353,7 @@ static void Task_HandleInfoScreenInput(u8 taskId) // Scroll up/down BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); gTasks[taskId].func = Task_LoadInfoScreenWaitForFade; - PlaySE(SE_Z_SCROLL); + PlaySE(SE_DEX_SCROLL); return; } if (gMain.newKeys & B_BUTTON) @@ -3382,7 +3382,7 @@ static void Task_HandleInfoScreenInput(u8 taskId) case SIZE_SCREEN: if (!sPokedexListItem->owned) { - PlaySE(SE_HAZURE); + PlaySE(SE_FAILURE); } else { @@ -3406,7 +3406,7 @@ static void Task_HandleInfoScreenInput(u8 taskId) { sPokedexView->selectedScreen--; HighlightScreenSelectBarItem(sPokedexView->selectedScreen, 0xD); - PlaySE(SE_Z_PAGE); + PlaySE(SE_DEX_PAGE); return; } if (((gMain.newKeys & DPAD_RIGHT) @@ -3415,7 +3415,7 @@ static void Task_HandleInfoScreenInput(u8 taskId) { sPokedexView->selectedScreen++; HighlightScreenSelectBarItem(sPokedexView->selectedScreen, 0xD); - PlaySE(SE_Z_PAGE); + PlaySE(SE_DEX_PAGE); return; } } @@ -3654,7 +3654,7 @@ static void Task_HandleCryScreenInput(u8 taskId) m4aMPlayContinue(&gMPlayInfo_BGM); sPokedexView->screenSwitchState = 2; gTasks[taskId].func = Task_SwitchScreensFromCryScreen; - PlaySE(SE_Z_PAGE); + PlaySE(SE_DEX_PAGE); return; } if ((gMain.newKeys & DPAD_RIGHT) @@ -3662,7 +3662,7 @@ static void Task_HandleCryScreenInput(u8 taskId) { if (!sPokedexListItem->owned) { - PlaySE(SE_HAZURE); + PlaySE(SE_FAILURE); } else { @@ -3670,7 +3670,7 @@ static void Task_HandleCryScreenInput(u8 taskId) m4aMPlayContinue(&gMPlayInfo_BGM); sPokedexView->screenSwitchState = 3; gTasks[taskId].func = Task_SwitchScreensFromCryScreen; - PlaySE(SE_Z_PAGE); + PlaySE(SE_DEX_PAGE); } return; } @@ -3823,7 +3823,7 @@ static void Task_HandleSizeScreenInput(u8 taskId) BeginNormalPaletteFade(0xFFFFFFEB, 0, 0, 0x10, RGB_BLACK); sPokedexView->screenSwitchState = 2; gTasks[taskId].func = Task_SwitchScreensFromSizeScreen; - PlaySE(SE_Z_PAGE); + PlaySE(SE_DEX_PAGE); } } @@ -4936,7 +4936,7 @@ static void Task_HandleSearchTopBarInput(u8 taskId) } if ((gMain.newKeys & DPAD_LEFT) && gTasks[taskId].tTopBarItem > SEARCH_TOPBAR_SEARCH) { - PlaySE(SE_Z_PAGE); + PlaySE(SE_DEX_PAGE); gTasks[taskId].tTopBarItem--; HighlightSelectedSearchTopBarItem(gTasks[taskId].tTopBarItem); CopyWindowToVram(0, 2); @@ -4944,7 +4944,7 @@ static void Task_HandleSearchTopBarInput(u8 taskId) } if ((gMain.newKeys & DPAD_RIGHT) && gTasks[taskId].tTopBarItem < SEARCH_TOPBAR_CANCEL) { - PlaySE(SE_Z_PAGE); + PlaySE(SE_DEX_PAGE); gTasks[taskId].tTopBarItem++; HighlightSelectedSearchTopBarItem(gTasks[taskId].tTopBarItem); CopyWindowToVram(0, 2); @@ -4983,7 +4983,7 @@ static void Task_HandleSearchMenuInput(u8 taskId) if (gMain.newKeys & B_BUTTON) { - PlaySE(SE_BOWA); + PlaySE(SE_BALL); SetDefaultSearchModeAndOrder(taskId); gTasks[taskId].func = Task_SwitchToSearchMenuTopBar; return; @@ -5011,7 +5011,7 @@ static void Task_HandleSearchMenuInput(u8 taskId) { EraseAndPrintSearchTextBox(gText_SearchingPleaseWait); gTasks[taskId].func = Task_StartPokedexSearch; - PlaySE(SE_Z_SEARCH); + PlaySE(SE_DEX_SEARCH); CopyWindowToVram(0, 2); } } @@ -5076,12 +5076,12 @@ static void Task_WaitAndCompleteSearch(u8 taskId) { if (sPokedexView->pokemonListCount != 0) { - PlaySE(SE_SEIKAI); + PlaySE(SE_SUCCESS); EraseAndPrintSearchTextBox(gText_SearchCompleted); } else { - PlaySE(SE_HAZURE); + PlaySE(SE_FAILURE); EraseAndPrintSearchTextBox(gText_NoMatchingPkmnWereFound); } gTasks[taskId].func = Task_SearchCompleteWaitForInput; @@ -5105,7 +5105,7 @@ static void Task_SearchCompleteWaitForInput(u8 taskId) else { gTasks[taskId].func = Task_SwitchToSearchMenu; - PlaySE(SE_BOWA); + PlaySE(SE_BALL); } } } @@ -5156,7 +5156,7 @@ static void Task_HandleSearchParameterInput(u8 taskId) } if (gMain.newKeys & B_BUTTON) { - PlaySE(SE_BOWA); + PlaySE(SE_BALL); ClearSearchParameterBoxText(); DrawOrEraseSearchParameterBox(TRUE); *cursorPos = gTasks[taskId].tCursorPos; diff --git a/src/pokedex_area_screen.c b/src/pokedex_area_screen.c index 0232d4fc48..8450f85306 100755 --- a/src/pokedex_area_screen.c +++ b/src/pokedex_area_screen.c @@ -732,7 +732,7 @@ static void Task_HandlePokedexAreaScreenInput(u8 taskId) else if (gMain.newKeys & DPAD_RIGHT || (gMain.newKeys & R_BUTTON && gSaveBlock2Ptr->optionsButtonMode == OPTIONS_BUTTON_MODE_LR)) { gTasks[taskId].data[1] = 2; - PlaySE(SE_Z_PAGE); + PlaySE(SE_DEX_PAGE); } else return; diff --git a/src/pokemon.c b/src/pokemon.c index faf00a7bfa..75b5a03f2f 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -6253,11 +6253,11 @@ void ClearBattleMonForms(void) u16 GetBattleBGM(void) { if (gBattleTypeFlags & BATTLE_TYPE_KYOGRE_GROUDON) - return MUS_BATTLE34; + return MUS_VS_KYOGRE_GROUDON; else if (gBattleTypeFlags & BATTLE_TYPE_REGI) - return MUS_BATTLE36; + return MUS_VS_REGI; else if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) - return MUS_BATTLE20; + return MUS_VS_TRAINER; else if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) { u8 trainerClass; @@ -6273,24 +6273,24 @@ u16 GetBattleBGM(void) { case TRAINER_CLASS_AQUA_LEADER: case TRAINER_CLASS_MAGMA_LEADER: - return MUS_BATTLE30; + return MUS_VS_AQUA_MAGMA_LEADER; case TRAINER_CLASS_TEAM_AQUA: case TRAINER_CLASS_TEAM_MAGMA: case TRAINER_CLASS_AQUA_ADMIN: case TRAINER_CLASS_MAGMA_ADMIN: - return MUS_BATTLE31; + return MUS_VS_AQUA_MAGMA; case TRAINER_CLASS_LEADER: - return MUS_BATTLE32; + return MUS_VS_GYM_LEADER; case TRAINER_CLASS_CHAMPION: - return MUS_BATTLE33; + return MUS_VS_CHAMPION; case TRAINER_CLASS_PKMN_TRAINER_3: if (gBattleTypeFlags & BATTLE_TYPE_FRONTIER) - return MUS_BATTLE35; + return MUS_VS_RIVAL; if (!StringCompare(gTrainers[gTrainerBattleOpponent_A].trainerName, gText_BattleWallyName)) - return MUS_BATTLE20; - return MUS_BATTLE35; + return MUS_VS_TRAINER; + return MUS_VS_RIVAL; case TRAINER_CLASS_ELITE_FOUR: - return MUS_BATTLE38; + return MUS_VS_ELITE_FOUR; case TRAINER_CLASS_SALON_MAIDEN: case TRAINER_CLASS_DOME_ACE: case TRAINER_CLASS_PALACE_MAVEN: @@ -6298,13 +6298,13 @@ u16 GetBattleBGM(void) case TRAINER_CLASS_FACTORY_HEAD: case TRAINER_CLASS_PIKE_QUEEN: case TRAINER_CLASS_PYRAMID_KING: - return MUS_VS_FRONT; + return MUS_VS_FRONTIER_BRAIN; default: - return MUS_BATTLE20; + return MUS_VS_TRAINER; } } else - return MUS_BATTLE27; + return MUS_VS_WILD; } void PlayBattleBGM(void) diff --git a/src/pokemon_jump.c b/src/pokemon_jump.c index c5f4ef1a4b..96774c0bbb 100755 --- a/src/pokemon_jump.c +++ b/src/pokemon_jump.c @@ -576,7 +576,7 @@ static void sub_802ACA0(u8 taskId) case 2: if (!sub_802D0F0() && IsNotWaitingForBGMStop() == TRUE) { - FadeOutAndPlayNewMapMusic(MUS_RG_JUMP, 8); + FadeOutAndPlayNewMapMusic(MUS_RG_POKE_JUMP, 8); gUnknown_02022CFC->unk8++; } break; @@ -1721,7 +1721,7 @@ static void sub_802C1BC(void) gUnknown_02022CFC->unk83AC->unk10 = 0; } -static const u16 gUnknown_082FB654[] = {SE_REGI, SE_REAPOKE, SE_W234, SE_RG_EXCELLENT}; +static const u16 gUnknown_082FB654[] = {SE_SHOP, SE_SHINY, SE_M_MORNING_SUN, SE_RG_POKE_JUMP_SUCCESS}; static void sub_802C1DC(void) { @@ -1798,9 +1798,9 @@ static void sub_802C280(void) } if (whichSound & 0x2) - PlaySE(SE_RG_NAWAMISS); + PlaySE(SE_RG_POKE_JUMP_FAILURE); else if (whichSound & 0x1) - PlaySE(SE_DANSA); + PlaySE(SE_LEDGE); } static const s8 gUnknown_082FB65C[][48] = @@ -2702,7 +2702,7 @@ static void sub_802CDD4(struct Sprite *sprite) switch (sprite->data[0]) { case 0: - PlaySE(SE_JITE_PYOKO); + PlaySE(SE_BIKE_HOP); sprite->data[1] = 0; sprite->data[0]++; // fall through @@ -3275,7 +3275,7 @@ static void sub_802D7E8(u16 itemId, u16 quantity) gUnknown_02022D00->unk12 = sub_802DA9C(4, 8, 22, 4); AddTextPrinterParameterized(gUnknown_02022D00->unk12, 1, gUnknown_02022D00->strBuff, 0, 1, TEXT_SPEED_FF, NULL); CopyWindowToVram(gUnknown_02022D00->unk12, 2); - gUnknown_02022D00->unk14 = MUS_FANFA1; + gUnknown_02022D00->unk14 = MUS_LEVEL_UP; gUnknown_02022D00->unkD = 0; } diff --git a/src/pokemon_storage_system.c b/src/pokemon_storage_system.c index 5f2f5516b6..546f50dced 100644 --- a/src/pokemon_storage_system.c +++ b/src/pokemon_storage_system.c @@ -2576,7 +2576,7 @@ static void Cb_MainPSS(u8 taskId) sPSSData->state = 7; break; case 24: - PlaySE(SE_HAZURE); + PlaySE(SE_FAILURE); break; } break; @@ -2622,12 +2622,12 @@ static void Cb_MainPSS(u8 taskId) } break; case 4: - PlaySE(SE_HAZURE); + PlaySE(SE_FAILURE); PrintStorageActionText(PC_TEXT_LAST_POKE); sPSSData->state = 6; break; case 5: - PlaySE(SE_HAZURE); + PlaySE(SE_FAILURE); PrintStorageActionText(PC_TEXT_PLEASE_REMOVE_MAIL); sPSSData->state = 6; break; @@ -2843,17 +2843,17 @@ static void Cb_OnSelectedMon(u8 taskId) } break; case 3: - PlaySE(SE_HAZURE); + PlaySE(SE_FAILURE); PrintStorageActionText(PC_TEXT_LAST_POKE); sPSSData->state = 6; break; case 5: - PlaySE(SE_HAZURE); + PlaySE(SE_FAILURE); PrintStorageActionText(PC_TEXT_CANT_RELEASE_EGG); sPSSData->state = 6; break; case 4: - PlaySE(SE_HAZURE); + PlaySE(SE_FAILURE); PrintStorageActionText(PC_TEXT_PLEASE_REMOVE_MAIL); sPSSData->state = 6; break; @@ -3277,7 +3277,7 @@ static void Cb_ItemToBag(u8 taskId) case 0: if (!AddBagItem(sPSSData->cursorMonItem, 1)) { - PlaySE(SE_HAZURE); + PlaySE(SE_FAILURE); PrintStorageActionText(PC_TEXT_BAG_FULL); sPSSData->state = 3; } @@ -3742,7 +3742,7 @@ static void Cb_OnCloseBoxPressed(u8 taskId) case 0: if (IsMonBeingMoved()) { - PlaySE(SE_HAZURE); + PlaySE(SE_FAILURE); PrintStorageActionText(PC_TEXT_HOLDING_POKE); sPSSData->state = 1; } @@ -3803,7 +3803,7 @@ static void Cb_OnBPressed(u8 taskId) case 0: if (IsMonBeingMoved()) { - PlaySE(SE_HAZURE); + PlaySE(SE_FAILURE); PrintStorageActionText(PC_TEXT_HOLDING_POKE); sPSSData->state = 1; } diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index 2e79952220..d016c455c0 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -1903,7 +1903,7 @@ static void Task_HandleInput_MoveSelect(u8 taskId) } else { - PlaySE(SE_HAZURE); + PlaySE(SE_FAILURE); } } else if (gMain.newKeys & B_BUTTON) @@ -2191,7 +2191,7 @@ static void Task_HandleReplaceMoveInput(u8 taskId) } else { - PlaySE(SE_HAZURE); + PlaySE(SE_FAILURE); ShowCantForgetHMsWindow(taskId); } } diff --git a/src/pokenav_main_menu.c b/src/pokenav_main_menu.c index d9aae7e4ed..155e30939d 100644 --- a/src/pokenav_main_menu.c +++ b/src/pokenav_main_menu.c @@ -312,7 +312,7 @@ u32 PokenavMainMenuLoopedTaskIsActive(void) void ShutdownPokenav(void) { - PlaySE(SE_PN_OFF); + PlaySE(SE_POKENAV_OFF); sub_81CAADC(); BeginNormalPaletteFade(0xFFFFFFFF, -1, 0, 16, RGB_BLACK); } diff --git a/src/pokenav_match_call_1.c b/src/pokenav_match_call_1.c index 1e4239bbc3..2652593941 100755 --- a/src/pokenav_match_call_1.c +++ b/src/pokenav_match_call_1.c @@ -118,7 +118,7 @@ static u32 CB2_HandleMatchCallInput(struct Pokenav3Struct *state) else { // Cant exit Match Call menu before calling Mr Stone during tutorial - PlaySE(SE_HAZURE); + PlaySE(SE_FAILURE); } } diff --git a/src/pokenav_match_call_2.c b/src/pokenav_match_call_2.c index d03bad88b8..60091577e9 100755 --- a/src/pokenav_match_call_2.c +++ b/src/pokenav_match_call_2.c @@ -601,7 +601,7 @@ u32 DoMatchCallMessage(s32 taskState) return LT_PAUSE; PrintCallingDots(state); - PlaySE(SE_TOREEYE); + PlaySE(SE_POKENAV_CALL); state->unkE = 0; return LT_INC_AND_PAUSE; case 2: @@ -654,7 +654,7 @@ u32 sub_81CB888(s32 taskState) { case 0: if (!state->unkE) - PlaySE(SE_TOREOFF); + PlaySE(SE_POKENAV_HANG_UP); PlaySE(SE_SELECT); break; diff --git a/src/pokenav_menu_handler_1.c b/src/pokenav_menu_handler_1.c index bd33a21af3..d8d8e1509b 100644 --- a/src/pokenav_menu_handler_1.c +++ b/src/pokenav_menu_handler_1.c @@ -273,14 +273,14 @@ static u32 HandleMainMenuInputTutorial(struct Pokenav1Struct *state) } else { - PlaySE(SE_HAZURE); + PlaySE(SE_FAILURE); return POKENAV_MENU_FUNC_NONE; } } if (gMain.newKeys & B_BUTTON) { - PlaySE(SE_HAZURE); + PlaySE(SE_FAILURE); return POKENAV_MENU_FUNC_NONE; } @@ -298,7 +298,7 @@ static u32 HandleMainMenuInputEndTutorial(struct Pokenav1Struct *state) u32 menuItem = sMenuItems[state->menuType][state->cursorPos]; if (menuItem != POKENAV_MENUITEM_MATCH_CALL && menuItem != POKENAV_MENUITEM_SWITCH_OFF) { - PlaySE(SE_HAZURE); + PlaySE(SE_FAILURE); return POKENAV_MENU_FUNC_NONE; } else if (menuItem == POKENAV_MENUITEM_MATCH_CALL) diff --git a/src/pokenav_menu_handler_2.c b/src/pokenav_menu_handler_2.c index 86ad8c7446..2be92013f4 100644 --- a/src/pokenav_menu_handler_2.c +++ b/src/pokenav_menu_handler_2.c @@ -465,7 +465,7 @@ static u32 LoopedTask_OpenMenu(s32 state) PokenavFadeScreen(1); else { - PlaySE(SE_PN_ON); + PlaySE(SE_POKENAV_ON); PokenavFadeScreen(3); } switch (GetPokenavMenuType()) @@ -675,7 +675,7 @@ static u32 LoopedTask_SelectRibbonsNoWinners(s32 state) switch (state) { case 0: - PlaySE(SE_HAZURE); + PlaySE(SE_FAILURE); PrintNoRibbonWinners(); return LT_INC_AND_PAUSE; case 1: diff --git a/src/rayquaza_scene.c b/src/rayquaza_scene.c index 986a2d3a20..f47ab5e895 100644 --- a/src/rayquaza_scene.c +++ b/src/rayquaza_scene.c @@ -1565,7 +1565,7 @@ static void Task_DuoFightAnim(u8 taskId) BlendPalettes(-1, 0x10, 0); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, RGB_BLACK); SetVBlankCallback(VBlankCB_DuoFight); - PlaySE(SE_T_OOAME); + PlaySE(SE_DOWNPOUR); } static void sub_81D7228(u8 taskId) @@ -1670,14 +1670,14 @@ static void Task_HandleDuoFight(u8 taskId) static void sub_81D7438(void) { - PlaySE(SE_T_KAMI); + PlaySE(SE_THUNDER); sub_80A2C44(0x7FFF, 0, 0x10, 0, -1, 0, 0); sub_80A2C44(0xFFFF0000, 0, 0x10, 0, 0, 0, 1); } static void sub_81D7480(void) { - PlaySE(SE_T_KAMI); + PlaySE(SE_THUNDER); sub_80A2C44(0x7FFF, 0, 0x10, 0x10, -1, 0, 0); sub_80A2C44(0xFFFF0000, 0, 0x10, 0x10, 0, 0, 1); } @@ -1714,7 +1714,7 @@ static void sub_81D752C(u8 taskId) static void DuoFightEnd(u8 taskId, s8 palDelay) { - PlaySE(SE_T_OOAME_E); + PlaySE(SE_DOWNPOUR_STOP); BeginNormalPaletteFade(0xFFFFFFFF, palDelay, 0, 0x10, RGB_BLACK); gTasks[taskId].func = Task_DuoFightEnd; } @@ -1950,7 +1950,7 @@ static void sub_81D7E9C(void) static void Task_RayTakesFlightAnim(u8 taskId) { s16 *data = gTasks[taskId].data; - PlayNewMapMusic(MUS_REKKUU_KOURIN); + PlayNewMapMusic(MUS_RAYQUAZA_APPEARS); sub_81D7E10(); sub_81D7E9C(); SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_OBJ | BLDCNT_TGT2_BG1 | BLDCNT_EFFECT_BLEND); @@ -2358,7 +2358,7 @@ static void Task_HandleRayCharges(u8 taskId) s16 *data = gTasks[taskId].data; sub_81D8BB4(); if ((data[3] & 7) == 0 && data[0] <= 1 && data[1] <= 89) - PlaySE(SE_OP_BASYU); + PlaySE(SE_INTRO_BLAST); data[3]++; switch (data[0]) @@ -2777,7 +2777,7 @@ static void sub_81D9528(struct Sprite *sprite) } if (sprite->data[4] % 64 == 0) - PlaySE(SE_W250); + PlaySE(SE_M_WHIRLPOOL); sprite->data[4]++; } @@ -2802,7 +2802,7 @@ static void sub_81D961C(struct Sprite *sprite) { sub_81D97E0(sprite); if (sprite->data[4] == 0) - PlaySE(SE_BT_START); + PlaySE(SE_MUGSHOT); if (sprite->data[4] == -3) sub_81D9868(sprite, 2, 48, 16); } @@ -2900,7 +2900,7 @@ static void sub_81D98B4(u8 taskId) break; case 1: if (data[5] == 8) - PlaySE(SE_JIDO_DOA); + PlaySE(SE_SLIDING_DOOR); if (data[2] == 2) { data[0]++; diff --git a/src/record_mixing.c b/src/record_mixing.c index 1e9b0bcf74..b214701c21 100644 --- a/src/record_mixing.c +++ b/src/record_mixing.c @@ -302,7 +302,7 @@ static void Task_RecordMixing_SoundEffect(u8 taskId) { if (++gTasks[taskId].tCounter == 50) { - PlaySE(SE_W213); + PlaySE(SE_M_ATTRACT); gTasks[taskId].tCounter = 0; } } @@ -343,7 +343,7 @@ static void Task_RecordMixing_Main(u8 taskId) case 2: data[10] = CreateTask(Task_DoRecordMixing, 10); tState = 3; - PlaySE(SE_W226); + PlaySE(SE_M_BATON_PASS); break; case 3: // wait for Task_DoRecordMixing if (!gTasks[data[10]].isActive) diff --git a/src/reset_rtc_screen.c b/src/reset_rtc_screen.c index c948cde4cd..204eb6733b 100644 --- a/src/reset_rtc_screen.c +++ b/src/reset_rtc_screen.c @@ -611,7 +611,7 @@ static void Task_ResetRtcScreen(u8 taskId) if (TrySavingData(SAVE_NORMAL) == SAVE_STATUS_OK) { ShowMessage(gText_SaveCompleted); - PlaySE(SE_PINPON); + PlaySE(SE_DING_DONG); } else { diff --git a/src/rotating_gate.c b/src/rotating_gate.c index 340fc58dda..162eb3e6dc 100644 --- a/src/rotating_gate.c +++ b/src/rotating_gate.c @@ -776,7 +776,7 @@ static void SpriteCallback_RotatingGate(struct Sprite *sprite) if (GetPlayerSpeed() != 1) affineAnimation += 8; - PlaySE(SE_HI_TURUN); + PlaySE(SE_ROTATING_GATE); StartSpriteAffineAnim(sprite, affineAnimation); } else if (rotationDirection == ROTATE_CLOCKWISE) @@ -786,7 +786,7 @@ static void SpriteCallback_RotatingGate(struct Sprite *sprite) if (GetPlayerSpeed() != 1) affineAnimation += 8; - PlaySE(SE_HI_TURUN); + PlaySE(SE_ROTATING_GATE); StartSpriteAffineAnim(sprite, affineAnimation); } diff --git a/src/roulette.c b/src/roulette.c index 4ca892912a..a0d1a7dc01 100644 --- a/src/roulette.c +++ b/src/roulette.c @@ -1522,7 +1522,7 @@ static void Task_HandleBetGridInput(u8 taskId) } else { - m4aSongNumStart(SE_REGI); + m4aSongNumStart(SE_SHOP); gTasks[taskId].func = Task_PlaceBet; } } @@ -1679,7 +1679,7 @@ static void Task_RollBall(u8 taskId) gTasks[taskId].tBallNum++; gTasks[taskId].tTotalBallNum++; SetBallCounterNumLeft(BALLS_PER_ROUND - gTasks[taskId].tBallNum); - m4aSongNumStart(SE_TAMAKORO); + m4aSongNumStart(SE_ROULETTE_BALL); gTasks[taskId].func = Task_RecordBallHit; } @@ -1804,14 +1804,14 @@ static void Task_PrintSpinResult(u8 taskId) case 2: // never happens if (gTasks[taskId].tMultiplier == MAX_MULTIPLIER) { - PlayFanfare(MUS_ME_B_BIG); + PlayFanfare(MUS_SLOTS_JACKPOT); DrawStdWindowFrame(sTextWindowId, FALSE); AddTextPrinterParameterized(sTextWindowId, 1, Roulette_Text_Jackpot, 0, 1, TEXT_SPEED_FF, NULL); CopyWindowToVram(sTextWindowId, 3); } else { - PlayFanfare(MUS_ME_B_SMALL); + PlayFanfare(MUS_SLOTS_WIN); DrawStdWindowFrame(sTextWindowId, FALSE); AddTextPrinterParameterized(sTextWindowId, 1, Roulette_Text_ItsAHit, 0, 1, TEXT_SPEED_FF, NULL); CopyWindowToVram(sTextWindowId, 3); @@ -1819,7 +1819,7 @@ static void Task_PrintSpinResult(u8 taskId) break; case FALSE: default: - m4aSongNumStart(SE_HAZURE); + m4aSongNumStart(SE_FAILURE); DrawStdWindowFrame(sTextWindowId, FALSE); AddTextPrinterParameterized(sTextWindowId, 1, Roulette_Text_NothingDoing, 0, 1, TEXT_SPEED_FF, NULL); CopyWindowToVram(sTextWindowId, 3); @@ -3924,7 +3924,7 @@ static void HideWheelBalls(void) UpdateBallRelativeWheelAngle(sprite); \ sprite->sBallWheelAngle = (sprite->sBallWheelAngle / DEGREES_PER_SLOT) * DEGREES_PER_SLOT + 15; \ sprite->callback = SpriteCB_BallLandInSlot; \ - m4aSongNumStartOrChange(SE_HASHI); \ + m4aSongNumStartOrChange(SE_BRIDGE_WALK); \ } // "wheelAngle" and "sBallAngle" are relative to the screen (e.g. 180 degrees for either is always screen bottom) @@ -4136,7 +4136,7 @@ static void SpriteCB_UnstickBall_TaillowPickUp(struct Sprite *sprite) sprite->animEnded = FALSE; sprite->data[2] = 0; sprite->callback = SpriteCB_UnstickBall_TaillowDrop; - m4aSongNumStart(SE_NAGERU); + m4aSongNumStart(SE_BALL_THROW); } } } @@ -4203,7 +4203,7 @@ static void SpriteCB_RollBall_TryLandAdjacent(struct Sprite *sprite) { // Ball is stuck, need Shroomish/Taillow to clear ball sprite->animPaused = TRUE; - m4aSongNumStart(SE_KON); + m4aSongNumStart(SE_BALL_BOUNCE_1); SetBallStuck(sprite); } } @@ -4224,7 +4224,7 @@ static void SpriteCB_RollBall_TryLand(struct Sprite *sprite) // Space has already been landed on, try to fall into adjacent space u8 slotId; u32 fallRight; - m4aSongNumStart(SE_KON); + m4aSongNumStart(SE_BALL_BOUNCE_1); fallRight = Random() & 1; if (fallRight) { @@ -4319,7 +4319,7 @@ static void SpriteCB_RollBall_Fast(struct Sprite *sprite) if (sRoulette->ballDistToCenter > 60.0f) return; - m4aSongNumStartOrChange(SE_TAMAKORO_E); + m4aSongNumStartOrChange(SE_ROULETTE_BALL2); sRoulette->ballFallSpeed = -(20.0f / (float)(sRoulette->ballTravelDistMed)); sRoulette->ballAngleAccel = ((1.0f - sRoulette->ballAngleSpeed) / (float)(sRoulette->ballTravelDistMed)); sprite->animNum = 1; @@ -4573,7 +4573,7 @@ static void SpriteCB_ShroomishFall(struct Sprite *sprite) gSprites[sprite->sMonShadowSpriteId].data[1] = -2; gSprites[sprite->sBallShadowSpriteId].invisible = FALSE; gSprites[sprite->sBallShadowSpriteId].callback = SpriteCB_ShroomishShakeScreen; - m4aSongNumStart(SE_W070); + m4aSongNumStart(SE_M_STRENGTH); } } @@ -4596,7 +4596,7 @@ static void SpriteCB_Shroomish(struct Sprite *sprite) sprite->invisible = FALSE; sprite->data[7]++; - m4aSongNumStart(SE_RU_HYUU); + m4aSongNumStart(SE_FALL); sRoulette->shroomishShadowTimer = 1; sRoulette->shroomishShadowAlpha = sShroomishShadowAlphas[0]; } @@ -4643,7 +4643,7 @@ static void SpriteCB_Taillow_FlyAway(struct Sprite *sprite) sprite->callback = SpriteCallbackDummy; sprite->invisible = TRUE; sprite->animPaused = TRUE; - m4aSongNumStop(SE_BASABASA); + m4aSongNumStop(SE_TAILLOW_WING_FLAP); DestroySprite(sprite); FreeOamMatrix(gSprites[sRoulette->spriteIds[SPR_CLEAR_MON_SHADOW_1]].oam.matrixNum); DestroySprite(&gSprites[sRoulette->spriteIds[SPR_CLEAR_MON_SHADOW_1]]); @@ -4674,7 +4674,7 @@ static void SpriteCB_Taillow_PickUpBall(struct Sprite *sprite) } else { - m4aSongNumStart(SE_RU_HYUU); + m4aSongNumStart(SE_FALL); StartSpriteAnim(sprite, sRoulette->ball->sStuckOnWheelLeft + 4); sprite->callback = SpriteCB_Taillow_FlyAway; gSprites[sprite->sMonShadowSpriteId].affineAnimPaused = FALSE; @@ -4715,7 +4715,7 @@ static void SpriteCB_Taillow_FlyIn(struct Sprite *sprite) } else { - m4aSongNumStartOrChange(SE_BASABASA); + m4aSongNumStartOrChange(SE_TAILLOW_WING_FLAP); if (sRoulette->ball->sStuckOnWheelLeft == 0) PlayCry1(SPECIES_TAILLOW, 63); else @@ -4770,5 +4770,5 @@ static void SpriteCB_Taillow(struct Sprite *sprite) } gSprites[sprite->sMonShadowSpriteId].callback = SpriteCB_TaillowShadow_FlyIn; gSprites[sprite->sMonSpriteId].callback = SpriteCB_Taillow_FlyIn; - m4aSongNumStart(SE_RU_HYUU); + m4aSongNumStart(SE_FALL); } diff --git a/src/shop.c b/src/shop.c index 4fc44beee0..5cba2767db 100755 --- a/src/shop.c +++ b/src/shop.c @@ -1089,7 +1089,7 @@ static void BuyMenuSubtractMoney(u8 taskId) { IncrementGameStat(GAME_STAT_SHOPPED); RemoveMoney(&gSaveBlock1Ptr->money, gShopDataPtr->totalCost); - PlaySE(SE_REGI); + PlaySE(SE_SHOP); PrintMoneyAmountInMoneyBox(0, GetMoney(&gSaveBlock1Ptr->money), 0); if (gMartInfo.martType == MART_TYPE_NORMAL) diff --git a/src/slot_machine.c b/src/slot_machine.c index 8669b543b0..9d19fc9a72 100644 --- a/src/slot_machine.c +++ b/src/slot_machine.c @@ -1220,7 +1220,7 @@ static bool8 SlotAction_HandleBetInput(struct Task *task) sSlotMachine->coins -= (MAX_BET - sSlotMachine->bet); sSlotMachine->bet = MAX_BET; sSlotMachine->state = SLOT_ACTION_START_SPIN; - PlaySE(SE_REGI); + PlaySE(SE_SHOP); } else // you didn't have enough coins to bet the max { @@ -1232,7 +1232,7 @@ static bool8 SlotAction_HandleBetInput(struct Task *task) // Increase bet if (JOY_NEW(DPAD_DOWN) && sSlotMachine->coins != 0) { - PlaySE(SE_REGI); + PlaySE(SE_SHOP); LightenBetTiles(sSlotMachine->bet); sSlotMachine->coins--; sSlotMachine->bet++; @@ -1335,7 +1335,7 @@ static bool8 SlotAction_AwaitReelStop(struct Task *task) { if (JOY_NEW(A_BUTTON)) { - PlaySE(SE_JYUNI); + PlaySE(SE_CONTEST_PLACE); StopSlotReel(sSlotMachine->currReel); PressStopReelButton(sSlotMachine->currReel); sSlotMachine->state = SLOT_ACTION_AWAIT_ALL_REELS_STOP; @@ -1381,17 +1381,17 @@ static bool8 SlotAction_CheckMatches(struct Task *task) } if (sSlotMachine->matchedSymbols & ((1 << MATCHED_777_BLUE) | (1 << MATCHED_777_RED))) { - PlayFanfare(MUS_ME_B_BIG); + PlayFanfare(MUS_SLOTS_JACKPOT); CreateDigitalDisplayScene(DIG_DISPLAY_BONUS_BIG); } else if (sSlotMachine->matchedSymbols & (1 << MATCHED_777_MIXED)) { - PlayFanfare(MUS_ME_B_BIG); + PlayFanfare(MUS_SLOTS_JACKPOT); CreateDigitalDisplayScene(DIG_DISPLAY_BONUS_REG); } else { - PlayFanfare(MUS_ME_B_SMALL); + PlayFanfare(MUS_SLOTS_WIN); CreateDigitalDisplayScene(DIG_DISPLAY_WIN); } // if you matched 777... @@ -3098,7 +3098,7 @@ static void ReelTime_Init(struct Task *task) CreateReelTimeNumberGapSprite(); GetReeltimeDraw(); StopMapMusic(); - PlayNewMapMusic(MUS_BD_TIME); + PlayNewMapMusic(MUS_ROULETTE); } static void ReelTime_WindowEnter(struct Task *task) @@ -3240,7 +3240,7 @@ static void ReelTime_PikachuReact(struct Task *task) { task->data[4] = 0xa0; StartSpriteAnimIfDifferent(&gSprites[sSlotMachine->reelTimePikachuSpriteId], 5); - PlayFanfare(MUS_ME_ZANNEN); + PlayFanfare(MUS_TOO_BAD); } else { @@ -3252,7 +3252,7 @@ static void ReelTime_PikachuReact(struct Task *task) ResetPikaPowerBolts(); sSlotMachine->pikaPower = 0; } - PlayFanfare(MUS_ME_B_SMALL); + PlayFanfare(MUS_SLOTS_WIN); } } } @@ -3328,8 +3328,8 @@ static void ReelTime_ExplodeMachine(struct Task *task) task->data[4] = 4; task->data[5] = 0; StopMapMusic(); - PlayFanfare(MUS_ME_ZANNEN); - PlaySE(SE_W153); + PlayFanfare(MUS_TOO_BAD); + PlaySE(SE_M_EXPLOSION); } static void ReelTime_WaitExplode(struct Task *task) diff --git a/src/sound.c b/src/sound.c index dba4354dfe..361624b444 100644 --- a/src/sound.c +++ b/src/sound.c @@ -41,24 +41,24 @@ static void Task_DuckBGMForPokemonCry(u8 taskId); static void RestoreBGMVolumeAfterPokemonCry(void); static const struct Fanfare sFanfares[] = { - { MUS_FANFA1, 80 }, - { MUS_FANFA4, 160 }, - { MUS_FANFA5, 220 }, - { MUS_ME_WAZA, 220 }, - { MUS_ME_ASA, 160 }, - { MUS_ME_BACHI, 340 }, - { MUS_ME_WASURE, 180 }, - { MUS_ME_KINOMI, 120 }, - { MUS_ME_TAMA, 710 }, - { MUS_ME_B_BIG, 250 }, - { MUS_ME_B_SMALL, 150 }, - { MUS_ME_ZANNEN, 160 }, - { MUS_RG_POKEFUE, 450 }, - { MUS_RG_FAN5, 170 }, - { MUS_RG_FAN2, 196 }, - { MUS_ME_POINTGET, 313 }, - { MUS_ME_SYMBOLGET, 318 }, - { MUS_ME_TORE_EYE, 135 }, + { MUS_LEVEL_UP, 80 }, + { MUS_OBTAIN_ITEM, 160 }, + { MUS_EVOLVED, 220 }, + { MUS_OBTAIN_TMHM, 220 }, + { MUS_HEAL, 160 }, + { MUS_OBTAIN_BADGE, 340 }, + { MUS_MOVE_DELETED, 180 }, + { MUS_OBTAIN_BERRY, 120 }, + { MUS_AWAKEN_LEGEND, 710 }, + { MUS_SLOTS_JACKPOT, 250 }, + { MUS_SLOTS_WIN, 150 }, + { MUS_TOO_BAD, 160 }, + { MUS_RG_POKE_FLUTE, 450 }, + { MUS_RG_OBTAIN_KEY_ITEM, 170 }, + { MUS_RG_DEX_RATING, 196 }, + { MUS_OBTAIN_B_POINTS, 313 }, + { MUS_OBTAIN_SYMBOL, 318 }, + { MUS_REGISTER_MATCH_CALL, 135 }, }; #define CRY_VOLUME 120 // was 125 in R/S diff --git a/src/strings.c b/src/strings.c index 07361ba60f..fe5051d711 100644 --- a/src/strings.c +++ b/src/strings.c @@ -402,7 +402,7 @@ const u8 gText_PkmnNeedsToReplaceMove[] = _("{STR_VAR_1} wants to learn the\nmov const u8 gText_StopLearningMove2[] = _("Stop trying to teach\n{STR_VAR_2}?"); const u8 gText_MoveNotLearned[] = _("{STR_VAR_1} did not learn the\nmove {STR_VAR_2}.{PAUSE_UNTIL_PRESS}"); const u8 gText_WhichMoveToForget[] = _("Which move should be forgotten?{PAUSE_UNTIL_PRESS}"); -const u8 gText_12PoofForgotMove[] = _("1, {PAUSE 15}2, and{PAUSE 15}… {PAUSE 15}… {PAUSE 15}… {PAUSE 15}{PLAY_SE SE_KON}Poof!\p{STR_VAR_1} forgot how to\nuse {STR_VAR_2}.\pAnd…{PAUSE_UNTIL_PRESS}"); +const u8 gText_12PoofForgotMove[] = _("1, {PAUSE 15}2, and{PAUSE 15}… {PAUSE 15}… {PAUSE 15}… {PAUSE 15}{PLAY_SE SE_BALL_BOUNCE_1}Poof!\p{STR_VAR_1} forgot how to\nuse {STR_VAR_2}.\pAnd…{PAUSE_UNTIL_PRESS}"); const u8 gText_PkmnAlreadyKnows[] = _("{STR_VAR_1} already knows\n{STR_VAR_2}.{PAUSE_UNTIL_PRESS}"); const u8 gText_PkmnHPRestoredByVar2[] = _("{STR_VAR_1}'s HP was restored\nby {STR_VAR_2} point(s).{PAUSE_UNTIL_PRESS}"); const u8 gText_PkmnCuredOfPoison[] = _("{STR_VAR_1} was cured of its\npoisoning.{PAUSE_UNTIL_PRESS}"); @@ -1294,7 +1294,7 @@ const u8 gText_HatchedFromEgg[] = _("{STR_VAR_1} hatched from the EGG!"); const u8 gText_NicknameHatchPrompt[] = _("Would you like to nickname the newly\nhatched {STR_VAR_1}?"); ALIGNED(4) const u8 gText_ReadyToBerryCrush[] = _("Are you ready to BERRY-CRUSH?\nPlease pick a BERRY for use.\p"); ALIGNED(4) const u8 gText_WaitForAllChooseBerry[] = _("Please wait while each member\nchooses a BERRY."); -ALIGNED(4) const u8 gText_EndedWithXUnitsPowder[] = _("{PAUSE_MUSIC}{PLAY_BGM MUS_FANFA1}You ended up with {STR_VAR_1} units of\nsilky-smooth BERRY POWDER.{RESUME_MUSIC}\pYour total amount of BERRY POWDER\nis {STR_VAR_2}.\p"); +ALIGNED(4) const u8 gText_EndedWithXUnitsPowder[] = _("{PAUSE_MUSIC}{PLAY_BGM MUS_LEVEL_UP}You ended up with {STR_VAR_1} units of\nsilky-smooth BERRY POWDER.{RESUME_MUSIC}\pYour total amount of BERRY POWDER\nis {STR_VAR_2}.\p"); ALIGNED(4) const u8 gText_RecordingGameResults[] = _("Recording your game results in the\nsave file.\lPlease wait."); ALIGNED(4) const u8 gText_PlayBerryCrushAgain[] = _("Want to play BERRY CRUSH again?"); ALIGNED(4) const u8 gText_YouHaveNoBerries[] = _("You have no BERRIES.\nThe game will be canceled."); @@ -1745,7 +1745,7 @@ const u8 gText_MoveRelearnerTeachMoveConfirm[] = _("Teach {STR_VAR_2}?"); const u8 gText_MoveRelearnerPkmnLearnedMove[] = _("{STR_VAR_1} learned\n{STR_VAR_2}!"); const u8 gText_MoveRelearnerPkmnTryingToLearnMove[] = _("{STR_VAR_1} is trying to learn\n{STR_VAR_2}.\pBut {STR_VAR_1} can't learn more\nthan four moves.\pDelete an older move to make\nroom for {STR_VAR_2}?"); const u8 gText_MoveRelearnerStopTryingToTeachMove[] = _("Stop trying to teach\n{STR_VAR_2}?"); -const u8 gText_MoveRelearnerAndPoof[] = _("{PAUSE 32}1, {PAUSE 15}2, and {PAUSE 15}… {PAUSE 15}… {PAUSE 15}… {PAUSE 15}{PLAY_SE SE_KON}Poof!\p"); +const u8 gText_MoveRelearnerAndPoof[] = _("{PAUSE 32}1, {PAUSE 15}2, and {PAUSE 15}… {PAUSE 15}… {PAUSE 15}… {PAUSE 15}{PLAY_SE SE_BALL_BOUNCE_1}Poof!\p"); const u8 gText_MoveRelearnerPkmnForgotMoveAndLearnedNew[] = _("{STR_VAR_1} forgot {STR_VAR_3}.\pAnd…\p{STR_VAR_1} learned {STR_VAR_2}."); const u8 gText_MoveRelearnedPkmnDidNotLearnMove[] = _("{STR_VAR_1} did not learn the\nmove {STR_VAR_2}."); // Unused const u8 gText_MoveRelearnerGiveUp[] = _("Give up trying to teach a new\nmove to {STR_VAR_1}?"); diff --git a/src/title_screen.c b/src/title_screen.c index aa91351dfe..1086016856 100644 --- a/src/title_screen.c +++ b/src/title_screen.c @@ -609,7 +609,7 @@ void CB2_InitTitleScreen(void) | DISPCNT_OBJ_ON | DISPCNT_WIN0_ON | DISPCNT_OBJWIN_ON); - m4aSongNumStart(MUS_TITLE3); + m4aSongNumStart(MUS_TITLE); gMain.state = 5; break; case 5: diff --git a/src/trade.c b/src/trade.c index 17967733a1..6480f35949 100644 --- a/src/trade.c +++ b/src/trade.c @@ -570,7 +570,7 @@ static void CB2_CreateTradeMenu(void) sTradeMenuData->bg3hofs = 0; SetTradePartyMonsVisible(); gMain.state++; - PlayBGM(MUS_P_SCHOOL); + PlayBGM(MUS_SCHOOL); break; case 15: SetTradePartyLiveStatuses(TRADE_PARTNER); @@ -2573,7 +2573,7 @@ static void sub_807AA28(struct Sprite *sprite) { if (++sprite->data[0] == 10) { - PlaySE(SE_BOWA); + PlaySE(SE_BALL); sprite->data[0] = 0; } } @@ -2582,7 +2582,7 @@ static void sub_807AA4C(struct Sprite *sprite) { if (!sprite->invisible && ++sprite->data[0] == 10) { - PlaySE(SE_W207B); + PlaySE(SE_M_SWAGGER2); sprite->data[0] = 0; } } @@ -2620,7 +2620,7 @@ static void sub_807AB04(struct Sprite *sprite) { if (++sprite->data[0] == 15) { - PlaySE(SE_W107); + PlaySE(SE_M_MINIMIZE); sprite->data[0] = 0; } } @@ -3289,7 +3289,7 @@ static bool8 AnimateTradeSequenceCable(void) gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PLAYER]].pos2.y = gMonFrontPicCoords[sTradeData->monSpecies[TRADE_PLAYER]].y_offset; sTradeData->state++; sTradeData->cachedMapMusic = GetCurrentMapMusic(); - PlayNewMapMusic(MUS_SHINKA); + PlayNewMapMusic(MUS_EVOLUTION); break; case 1: if (sTradeData->bg2hofs > 0) @@ -3449,7 +3449,7 @@ static bool8 AnimateTradeSequenceCable(void) case 32: if (!gPaletteFade.active) { - PlaySE(SE_TK_WARPOUT); + PlaySE(SE_WARP_OUT); sTradeData->state++; } gSprites[sTradeData->unk_90].pos2.y -= 3; @@ -3503,7 +3503,7 @@ static bool8 AnimateTradeSequenceCable(void) gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PARTNER]].pos2.y += 3; if (gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PLAYER]].pos2.y < -160 && gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PLAYER]].pos2.y >= -163) { - PlaySE(SE_TK_WARPIN); + PlaySE(SE_WARP_IN); } if (gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PLAYER]].pos2.y < -222) { @@ -3600,7 +3600,7 @@ static bool8 AnimateTradeSequenceCable(void) DestroySprite(&gSprites[sTradeData->unk_91]); SetTradeSequenceBgGpuRegs(6); sTradeData->state++; - PlaySE(SE_W028); + PlaySE(SE_M_SAND_ATTACK); } break; case 51: @@ -3704,7 +3704,7 @@ static bool8 AnimateTradeSequenceCable(void) case 68: if (++sTradeData->timer == 10) { - PlayFanfare(MUS_FANFA5); + PlayFanfare(MUS_EVOLVED); } if (sTradeData->timer == 250) { @@ -3781,7 +3781,7 @@ static bool8 AnimateTradeSequenceWireless(void) gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PLAYER]].pos2.y = gMonFrontPicCoords[sTradeData->monSpecies[TRADE_PLAYER]].y_offset; sTradeData->state++; sTradeData->cachedMapMusic = GetCurrentMapMusic(); - PlayNewMapMusic(MUS_SHINKA); + PlayNewMapMusic(MUS_EVOLUTION); break; case 1: if (sTradeData->bg2hofs > 0) @@ -3946,7 +3946,7 @@ static bool8 AnimateTradeSequenceWireless(void) case 32: if (!gPaletteFade.active) { - PlaySE(SE_TK_WARPOUT); + PlaySE(SE_WARP_OUT); sTradeData->state++; } gSprites[sTradeData->unk_90].pos2.y -= 3; @@ -4001,7 +4001,7 @@ static bool8 AnimateTradeSequenceWireless(void) gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PARTNER]].pos2.y += 3; if (gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PLAYER]].pos2.y < -160 && gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PLAYER]].pos2.y >= -163) { - PlaySE(SE_TK_WARPIN); + PlaySE(SE_WARP_IN); } if (gSprites[sTradeData->pokePicSpriteIdxs[TRADE_PLAYER]].pos2.y < -222) { @@ -4116,7 +4116,7 @@ static bool8 AnimateTradeSequenceWireless(void) DestroySprite(&gSprites[sTradeData->unk_91]); SetTradeSequenceBgGpuRegs(6); sTradeData->state++; - PlaySE(SE_W028); + PlaySE(SE_M_SAND_ATTACK); } break; case 51: @@ -4219,7 +4219,7 @@ static bool8 AnimateTradeSequenceWireless(void) case 68: if (++sTradeData->timer == 10) { - PlayFanfare(MUS_FANFA5); + PlayFanfare(MUS_EVOLVED); } if (sTradeData->timer == 250) { @@ -4361,10 +4361,10 @@ static void sub_807E5D8(struct Sprite *sprite) { sprite->pos2.y += sTradeBallVerticalVelocityTable[sprite->data[0]]; if (sprite->data[0] == 22) - PlaySE(SE_KON); + PlaySE(SE_BALL_BOUNCE_1); if (++ sprite->data[0] == 44) { - PlaySE(SE_W025); + PlaySE(SE_M_MEGA_KICK); sprite->callback = sub_807E64C; sprite->data[0] = 0; BeginNormalPaletteFade(1 << (16 + sprite->oam.paletteNum), -1, 0, 16, RGB_WHITEALPHA); @@ -4394,17 +4394,17 @@ static void sub_807E6AC(struct Sprite *sprite) { sprite->data[2] ++; sprite->data[0] = 0x16; - PlaySE(SE_KON); + PlaySE(SE_BALL_BOUNCE_1); } } else { if (sprite->data[0] == 0x42) - PlaySE(SE_KON2); + PlaySE(SE_BALL_BOUNCE_2); if (sprite->data[0] == 0x5c) - PlaySE(SE_KON3); + PlaySE(SE_BALL_BOUNCE_3); if (sprite->data[0] == 0x6b) - PlaySE(SE_KON4); + PlaySE(SE_BALL_BOUNCE_4); sprite->pos2.y += sTradeBallVerticalVelocityTable[sprite->data[0]]; if (++sprite->data[0] == 0x6c) sprite->callback = SpriteCallbackDummy; @@ -4809,7 +4809,7 @@ static void Task_AnimateWirelessSignal(u8 taskId) } if (sWirelessSignalTiming[idx][0] == 0 && counter == 0) - PlaySE(SE_W215); + PlaySE(SE_M_HEAL_BELL); if (counter == sWirelessSignalTiming[idx][1]) { diff --git a/src/trainer_card.c b/src/trainer_card.c index c374fad07c..9d6838176f 100755 --- a/src/trainer_card.c +++ b/src/trainer_card.c @@ -422,7 +422,7 @@ static void Task_TrainerCard(u8 taskId) case 8: if (!UpdatePaletteFade() && !IsDma3ManagerBusyWithBgCopy()) { - PlaySE(SE_RG_CARD3); + PlaySE(SE_RG_CARD_OPEN); sData->mainState = STATE_HANDLE_INPUT_FRONT; } break; @@ -441,7 +441,7 @@ static void Task_TrainerCard(u8 taskId) if (gMain.newKeys & A_BUTTON) { FlipTrainerCard(); - PlaySE(SE_RG_CARD1); + PlaySE(SE_RG_CARD_FLIP); sData->mainState = STATE_WAIT_FLIP_TO_BACK; } else if (gMain.newKeys & B_BUTTON) @@ -460,7 +460,7 @@ static void Task_TrainerCard(u8 taskId) case STATE_WAIT_FLIP_TO_BACK: if (IsCardFlipTaskActive() && sub_8087598() != TRUE) { - PlaySE(SE_RG_CARD3); + PlaySE(SE_RG_CARD_OPEN); sData->mainState = STATE_HANDLE_INPUT_BACK; } break; @@ -480,7 +480,7 @@ static void Task_TrainerCard(u8 taskId) { FlipTrainerCard(); sData->mainState = STATE_WAIT_FLIP_TO_FRONT; - PlaySE(SE_RG_CARD1); + PlaySE(SE_RG_CARD_FLIP); } } else if (gMain.newKeys & A_BUTTON) @@ -518,7 +518,7 @@ static void Task_TrainerCard(u8 taskId) if (IsCardFlipTaskActive() && sub_8087598() != TRUE) { sData->mainState = STATE_HANDLE_INPUT_FRONT; - PlaySE(SE_RG_CARD3); + PlaySE(SE_RG_CARD_OPEN); } break; } @@ -1730,7 +1730,7 @@ static bool8 Task_SetCardFlipped(struct Task* task) sData->onBack ^= 1; task->tFlipState++; sData->allowDMACopy = TRUE; - PlaySE(SE_RG_CARD2); + PlaySE(SE_RG_CARD_FLIPPING); return FALSE; } diff --git a/src/union_room.c b/src/union_room.c index 639420d719..f79dd9cc41 100644 --- a/src/union_room.c +++ b/src/union_room.c @@ -1018,13 +1018,13 @@ static void Task_TryJoinLinkGroup(u8 taskId) // Trading is allowed, or not trading at all AskToJoinRfuGroup(data, id); data->state = LG_STATE_ASK_JOIN_GROUP; - PlaySE(SE_PN_ON); + PlaySE(SE_POKENAV_ON); } else { StringCopy(gStringVar4, sCantTransmitToTrainerTexts[readyStatus - 1]); data->state = LG_STATE_TRADE_NOT_READY; - PlaySE(SE_PN_ON); + PlaySE(SE_POKENAV_ON); } } else @@ -2118,7 +2118,7 @@ static void Task_CardOrNewsWithFriend(u8 taskId) RedrawListMenu(data->listTaskId); IntlConvPartnerUname7(gStringVar1, &data->field_0->arr[data->leaderId]); CreateTask_RfuReconnectWithParent(data->field_0->arr[data->leaderId].gname_uname.playerName, ReadAsU16(data->field_0->arr[data->leaderId].gname_uname.gname.unk_00.playerTrainerId)); - PlaySE(SE_PN_ON); + PlaySE(SE_POKENAV_ON); data->state = 4; } else @@ -2279,7 +2279,7 @@ static void Task_CardOrNewsOverWireless(u8 taskId) LoadWirelessStatusIndicatorSpriteGfx(); CreateWirelessStatusIndicatorSprite(0, 0); CreateTask_RfuReconnectWithParent(data->field_0->arr[0].gname_uname.playerName, ReadAsU16(data->field_0->arr[0].gname_uname.gname.unk_00.playerTrainerId)); - PlaySE(SE_PN_ON); + PlaySE(SE_POKENAV_ON); data->state = 4; } else @@ -2846,7 +2846,7 @@ static void Task_RunUnionRoom(u8 taskId) uroom->state = UR_STATE_START_ACTIVITY_FREE_UROOM; break; case UR_STATE_PLAYER_CONTACTED_YOU: - PlaySE(SE_PINPON); + PlaySE(SE_DING_DONG); sub_800EF7C(); uroom->state = UR_STATE_RECV_CONTACT_DATA; uroom->recvActivityRequest[0] = 0; From d356e35b648c6689155c9cbd2d23ea8bede8f097 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Thu, 20 Aug 2020 20:23:08 -0400 Subject: [PATCH 078/101] Fix incorrect pike curtain SE names --- berry_fix/charmap.txt | 4 ++-- berry_fix/payload/charmap.txt | 4 ++-- charmap.txt | 4 ++-- .../BattleFrontier_BattlePikeLobby/scripts.inc | 2 +- .../scripts.inc | 4 ++-- include/constants/songs.h | 4 ++-- ld_script.txt | 2 +- songs.mk | 4 ++-- sound/song_table.inc | 2 +- sound/songs/midi/se_pike_curtain_close.mid | Bin 418 -> 427 bytes sound/songs/midi/se_pike_curtain_open.mid | Bin 427 -> 418 bytes 11 files changed, 15 insertions(+), 15 deletions(-) diff --git a/berry_fix/charmap.txt b/berry_fix/charmap.txt index e6184b8e1a..efb88b8f4a 100644 --- a/berry_fix/charmap.txt +++ b/berry_fix/charmap.txt @@ -720,8 +720,8 @@ SE_POKENAV_CALL = 07 01 SE_POKENAV_HANG_UP = 08 01 SE_ARENA_TIMEUP1 = 09 01 SE_ARENA_TIMEUP2 = 0A 01 -SE_PIKE_CURTAIN_OPEN = 0B 01 -SE_PIKE_CURTAIN_CLOSE = 0C 01 +SE_PIKE_CURTAIN_CLOSE = 0B 01 +SE_PIKE_CURTAIN_OPEN = 0C 01 SE_SUDOWOODO_SHAKE = 0D 01 MUS_LITTLEROOT_TEST = 5E 01 MUS_GSC_ROUTE38 = 5F 01 diff --git a/berry_fix/payload/charmap.txt b/berry_fix/payload/charmap.txt index e6184b8e1a..efb88b8f4a 100644 --- a/berry_fix/payload/charmap.txt +++ b/berry_fix/payload/charmap.txt @@ -720,8 +720,8 @@ SE_POKENAV_CALL = 07 01 SE_POKENAV_HANG_UP = 08 01 SE_ARENA_TIMEUP1 = 09 01 SE_ARENA_TIMEUP2 = 0A 01 -SE_PIKE_CURTAIN_OPEN = 0B 01 -SE_PIKE_CURTAIN_CLOSE = 0C 01 +SE_PIKE_CURTAIN_CLOSE = 0B 01 +SE_PIKE_CURTAIN_OPEN = 0C 01 SE_SUDOWOODO_SHAKE = 0D 01 MUS_LITTLEROOT_TEST = 5E 01 MUS_GSC_ROUTE38 = 5F 01 diff --git a/charmap.txt b/charmap.txt index 045ad26947..23fe569d53 100644 --- a/charmap.txt +++ b/charmap.txt @@ -724,8 +724,8 @@ SE_POKENAV_CALL = 07 01 SE_POKENAV_HANG_UP = 08 01 SE_ARENA_TIMEUP1 = 09 01 SE_ARENA_TIMEUP2 = 0A 01 -SE_PIKE_CURTAIN_OPEN = 0B 01 -SE_PIKE_CURTAIN_CLOSE = 0C 01 +SE_PIKE_CURTAIN_CLOSE = 0B 01 +SE_PIKE_CURTAIN_OPEN = 0C 01 SE_SUDOWOODO_SHAKE = 0D 01 MUS_LITTLEROOT_TEST = 5E 01 MUS_GSC_ROUTE38 = 5F 01 diff --git a/data/maps/BattleFrontier_BattlePikeLobby/scripts.inc b/data/maps/BattleFrontier_BattlePikeLobby/scripts.inc index f322c4784d..3e6111f427 100644 --- a/data/maps/BattleFrontier_BattlePikeLobby/scripts.inc +++ b/data/maps/BattleFrontier_BattlePikeLobby/scripts.inc @@ -265,7 +265,7 @@ BattleFrontier_BattlePikeLobby_EventScript_ExitRules:: @ 825BB47 end BattleFrontier_BattlePike_EventScript_CloseCurtain:: @ 825BB49 - playse SE_PIKE_CURTAIN_OPEN + playse SE_PIKE_CURTAIN_CLOSE special CloseBattlePikeCurtain waitstate waitse diff --git a/data/maps/BattleFrontier_BattlePikeRoomNormal/scripts.inc b/data/maps/BattleFrontier_BattlePikeRoomNormal/scripts.inc index 35e76a66d8..4238dd3f37 100644 --- a/data/maps/BattleFrontier_BattlePikeRoomNormal/scripts.inc +++ b/data/maps/BattleFrontier_BattlePikeRoomNormal/scripts.inc @@ -111,7 +111,7 @@ BattleFrontier_BattlePikeRoomNormal_EventScript_LucyEnter:: @ 825D2FB applymovement OBJ_EVENT_ID_CAMERA, BattleFrontier_BattlePikeRoomNormal_Movement_CameraPanUp applymovement LOCALID_OBJ_1, BattleFrontier_BattlePikeRoomNormal_Movement_HealNPCExitForLucy waitmovement 0 - playse SE_PIKE_CURTAIN_OPEN + playse SE_PIKE_CURTAIN_CLOSE call BattleFrontier_BattlePikeRoomNormal_EventScript_SetCurtainTilesLittleClosed delay 4 call BattleFrontier_BattlePikeRoomNormal_EventScript_SetCurtainTilesMostlyClosed @@ -120,7 +120,7 @@ BattleFrontier_BattlePikeRoomNormal_EventScript_LucyEnter:: @ 825D2FB delay 4 waitse delay 60 - playse SE_PIKE_CURTAIN_CLOSE + playse SE_PIKE_CURTAIN_OPEN delay 65 call BattleFrontier_BattlePikeRoomNormal_EventScript_SetCurtainTilesMostlyClosed showobjectat LOCALID_OBJ_0, MAP_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_NORMAL diff --git a/include/constants/songs.h b/include/constants/songs.h index 129cd44a27..87bb741af3 100644 --- a/include/constants/songs.h +++ b/include/constants/songs.h @@ -273,8 +273,8 @@ #define SE_POKENAV_HANG_UP 264 // SE_TOREOFF #define SE_ARENA_TIMEUP1 265 // SE_HANTEI1 #define SE_ARENA_TIMEUP2 266 // SE_HANTEI2 -#define SE_PIKE_CURTAIN_OPEN 267 // SE_CURTAIN -#define SE_PIKE_CURTAIN_CLOSE 268 // SE_CURTAIN1 +#define SE_PIKE_CURTAIN_CLOSE 267 // SE_CURTAIN +#define SE_PIKE_CURTAIN_OPEN 268 // SE_CURTAIN1 #define SE_SUDOWOODO_SHAKE 269 // SE_USSOKI // Music diff --git a/ld_script.txt b/ld_script.txt index 52e6c7c7f5..9ed3e8a5eb 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -964,8 +964,8 @@ SECTIONS { sound/songs/midi/se_pokenav_hang_up.o(.rodata); sound/songs/midi/se_arena_timeup1.o(.rodata); sound/songs/midi/se_arena_timeup2.o(.rodata); - sound/songs/midi/se_pike_curtain_open.o(.rodata); sound/songs/midi/se_pike_curtain_close.o(.rodata); + sound/songs/midi/se_pike_curtain_open.o(.rodata); sound/songs/midi/se_sudowoodo_shake.o(.rodata); sound/songs/midi/mus_littleroot_test.o(.rodata); sound/songs/midi/mus_gsc_route38.o(.rodata); diff --git a/songs.mk b/songs.mk index 6d76eeeea5..8c500457ad 100644 --- a/songs.mk +++ b/songs.mk @@ -831,10 +831,10 @@ $(MID_SUBDIR)/se_contest_icon_clear.s: %.s: %.mid $(MID_SUBDIR)/se_card.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V100 -P4 -$(MID_SUBDIR)/se_pike_curtain_open.s: %.s: %.mid +$(MID_SUBDIR)/se_pike_curtain_close.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G129 -P5 -$(MID_SUBDIR)/se_pike_curtain_close.s: %.s: %.mid +$(MID_SUBDIR)/se_pike_curtain_open.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G129 -P5 $(MID_SUBDIR)/se_ledge.s: %.s: %.mid diff --git a/sound/song_table.inc b/sound/song_table.inc index a6695ee278..8ad178f925 100644 --- a/sound/song_table.inc +++ b/sound/song_table.inc @@ -268,8 +268,8 @@ gSongTable:: @ 86B49F0 song se_pokenav_hang_up, 1, 1 song se_arena_timeup1, 1, 1 song se_arena_timeup2, 1, 1 - song se_pike_curtain_open, 1, 1 song se_pike_curtain_close, 1, 1 + song se_pike_curtain_open, 1, 1 song se_sudowoodo_shake, 1, 1 song dummy_song_header, 0, 0 song dummy_song_header, 0, 0 diff --git a/sound/songs/midi/se_pike_curtain_close.mid b/sound/songs/midi/se_pike_curtain_close.mid index 0a40e158eddbf175ea02476e3389882d8ab22a2b..88c684318a460487471a7d04596042a9319002b7 100644 GIT binary patch delta 237 zcmZ3)yqbA}XuT4{{|FWqCJ7FP|AEY$;ZuZxTt;RHmqTX}!+(7S-;kng1_p+Q3>&x{ z7})ED52!J0U}R#Lpi{xLfsvi5L5G2H10y5D1Oq7FfB`5EP`(9} zZv#|6u~keEqT3+>VwwX3!^AbRtYEDZ&uMBiZs1~K02$}Q0a4%sGMPU$Y*4jU{JvfK&sVgQ-w!vRs?12Tb$nahEJy`Bf*6f=g&hK$<68$sd)Na8LwlQS6Y IS(tz-0Saz17XSbN diff --git a/sound/songs/midi/se_pike_curtain_open.mid b/sound/songs/midi/se_pike_curtain_open.mid index 88c684318a460487471a7d04596042a9319002b7..0a40e158eddbf175ea02476e3389882d8ab22a2b 100644 GIT binary patch delta 215 zcmZ3@yoh;%XtET;{|FXFW(f|4|AEXLI*V+86leGphX48uz9B`~3=9kp7!Ig0Y+z(! zn4nX^w1JVGsX>PU$Y*4jU{JvfK&sVgQ-w!vRs?12Tb$nahEJy`Bf*6f=g&hK$<68$sd)Na8LwlQS6Y IS(tz-0Saz17XSbN delta 237 zcmZ3)yqbA}XuT4{{|FWqCJ7FP|AEY$;ZuZxTt;RHmqTX}!+(7S-;kng1_p+Q3>&x{ z7})ED52!J0U}R#Lpi{xLfsvi5L5G2H10y5D1Oq7FfB`5EP`(9} zZv#|6u~keEqT3+>VwwX3!^AbRtYEDZ&uMBiZs1~K02$}Q0a4%sGM Date: Thu, 20 Aug 2020 21:03:24 -0400 Subject: [PATCH 079/101] Sync encounter musics with encounter music types --- berry_fix/charmap.txt | 8 ++++---- berry_fix/payload/charmap.txt | 8 ++++---- charmap.txt | 8 ++++---- include/constants/songs.h | 8 ++++---- ld_script.txt | 8 ++++---- songs.mk | 8 ++++---- sound/song_table.inc | 8 ++++---- ...unter_cooltrainer.mid => mus_encounter_cool.mid} | Bin ...ounter_psychic.mid => mus_encounter_intense.mid} | Bin ...counter_gentleman.mid => mus_encounter_rich.mid} | Bin ..._hex_maniac.mid => mus_encounter_suspicious.mid} | Bin src/battle_setup.c | 8 ++++---- 12 files changed, 32 insertions(+), 32 deletions(-) rename sound/songs/midi/{mus_encounter_cooltrainer.mid => mus_encounter_cool.mid} (100%) rename sound/songs/midi/{mus_encounter_psychic.mid => mus_encounter_intense.mid} (100%) rename sound/songs/midi/{mus_encounter_gentleman.mid => mus_encounter_rich.mid} (100%) rename sound/songs/midi/{mus_encounter_hex_maniac.mid => mus_encounter_suspicious.mid} (100%) diff --git a/berry_fix/charmap.txt b/berry_fix/charmap.txt index efb88b8f4a..09427dc8dc 100644 --- a/berry_fix/charmap.txt +++ b/berry_fix/charmap.txt @@ -770,7 +770,7 @@ MUS_LINK_CONTEST_P1 = 89 01 MUS_LINK_CONTEST_P2 = 8A 01 MUS_LINK_CONTEST_P3 = 8B 01 MUS_LINK_CONTEST_P4 = 8C 01 -MUS_ENCOUNTER_GENTLEMAN = 8D 01 +MUS_ENCOUNTER_RICH = 8D 01 MUS_VERDANTURF = 8E 01 MUS_RUSTBORO = 8F 01 MUS_POKE_CENTER = 90 01 @@ -789,14 +789,14 @@ MUS_VICTORY_TRAINER = 9C 01 MUS_TITLE = 9D 01 MUS_INTRO = 9E 01 MUS_ENCOUNTER_MAY = 9F 01 -MUS_ENCOUNTER_PSYCHIC = A0 01 -MUS_ENCOUNTER_COOLTRAINER = A1 01 +MUS_ENCOUNTER_INTENSE = A0 01 +MUS_ENCOUNTER_COOL = A1 01 MUS_ROUTE113 = A2 01 MUS_ENCOUNTER_AQUA = A3 01 MUS_FOLLOW_ME = A4 01 MUS_ENCOUNTER_BRENDAN = A5 01 MUS_EVER_GRANDE = A6 01 -MUS_ENCOUNTER_HEX_MANIAC = A7 01 +MUS_ENCOUNTER_SUSPICIOUS = A7 01 MUS_VICTORY_AQUA_MAGMA = A8 01 MUS_CABLE_CAR = A9 01 MUS_GAME_CORNER = AA 01 diff --git a/berry_fix/payload/charmap.txt b/berry_fix/payload/charmap.txt index efb88b8f4a..09427dc8dc 100644 --- a/berry_fix/payload/charmap.txt +++ b/berry_fix/payload/charmap.txt @@ -770,7 +770,7 @@ MUS_LINK_CONTEST_P1 = 89 01 MUS_LINK_CONTEST_P2 = 8A 01 MUS_LINK_CONTEST_P3 = 8B 01 MUS_LINK_CONTEST_P4 = 8C 01 -MUS_ENCOUNTER_GENTLEMAN = 8D 01 +MUS_ENCOUNTER_RICH = 8D 01 MUS_VERDANTURF = 8E 01 MUS_RUSTBORO = 8F 01 MUS_POKE_CENTER = 90 01 @@ -789,14 +789,14 @@ MUS_VICTORY_TRAINER = 9C 01 MUS_TITLE = 9D 01 MUS_INTRO = 9E 01 MUS_ENCOUNTER_MAY = 9F 01 -MUS_ENCOUNTER_PSYCHIC = A0 01 -MUS_ENCOUNTER_COOLTRAINER = A1 01 +MUS_ENCOUNTER_INTENSE = A0 01 +MUS_ENCOUNTER_COOL = A1 01 MUS_ROUTE113 = A2 01 MUS_ENCOUNTER_AQUA = A3 01 MUS_FOLLOW_ME = A4 01 MUS_ENCOUNTER_BRENDAN = A5 01 MUS_EVER_GRANDE = A6 01 -MUS_ENCOUNTER_HEX_MANIAC = A7 01 +MUS_ENCOUNTER_SUSPICIOUS = A7 01 MUS_VICTORY_AQUA_MAGMA = A8 01 MUS_CABLE_CAR = A9 01 MUS_GAME_CORNER = AA 01 diff --git a/charmap.txt b/charmap.txt index 23fe569d53..ca4db0fc73 100644 --- a/charmap.txt +++ b/charmap.txt @@ -774,7 +774,7 @@ MUS_LINK_CONTEST_P1 = 89 01 MUS_LINK_CONTEST_P2 = 8A 01 MUS_LINK_CONTEST_P3 = 8B 01 MUS_LINK_CONTEST_P4 = 8C 01 -MUS_ENCOUNTER_GENTLEMAN = 8D 01 +MUS_ENCOUNTER_RICH = 8D 01 MUS_VERDANTURF = 8E 01 MUS_RUSTBORO = 8F 01 MUS_POKE_CENTER = 90 01 @@ -793,14 +793,14 @@ MUS_VICTORY_TRAINER = 9C 01 MUS_TITLE = 9D 01 MUS_INTRO = 9E 01 MUS_ENCOUNTER_MAY = 9F 01 -MUS_ENCOUNTER_PSYCHIC = A0 01 -MUS_ENCOUNTER_COOLTRAINER = A1 01 +MUS_ENCOUNTER_INTENSE = A0 01 +MUS_ENCOUNTER_COOL = A1 01 MUS_ROUTE113 = A2 01 MUS_ENCOUNTER_AQUA = A3 01 MUS_FOLLOW_ME = A4 01 MUS_ENCOUNTER_BRENDAN = A5 01 MUS_EVER_GRANDE = A6 01 -MUS_ENCOUNTER_HEX_MANIAC = A7 01 +MUS_ENCOUNTER_SUSPICIOUS = A7 01 MUS_VICTORY_AQUA_MAGMA = A8 01 MUS_CABLE_CAR = A9 01 MUS_GAME_CORNER = AA 01 diff --git a/include/constants/songs.h b/include/constants/songs.h index 87bb741af3..a78ee6fafe 100644 --- a/include/constants/songs.h +++ b/include/constants/songs.h @@ -325,7 +325,7 @@ #define MUS_LINK_CONTEST_P2 394 // MUS_TEST2 #define MUS_LINK_CONTEST_P3 395 // MUS_TEST3 #define MUS_LINK_CONTEST_P4 396 // MUS_TEST4 -#define MUS_ENCOUNTER_GENTLEMAN 397 // MUS_TEST +#define MUS_ENCOUNTER_RICH 397 // MUS_TEST #define MUS_VERDANTURF 398 // MUS_GOMACHI0 #define MUS_RUSTBORO 399 // MUS_GOTOWN #define MUS_POKE_CENTER 400 // MUS_POKECEN @@ -344,14 +344,14 @@ #define MUS_TITLE 413 // MUS_TITLE3 #define MUS_INTRO 414 // MUS_DEMO1 #define MUS_ENCOUNTER_MAY 415 // MUS_GIRL_SUP -#define MUS_ENCOUNTER_PSYCHIC 416 // MUS_HAGESHII -#define MUS_ENCOUNTER_COOLTRAINER 417 // MUS_KAKKOII +#define MUS_ENCOUNTER_INTENSE 416 // MUS_HAGESHII +#define MUS_ENCOUNTER_COOL 417 // MUS_KAKKOII #define MUS_ROUTE113 418 // MUS_KAZANBAI #define MUS_ENCOUNTER_AQUA 419 // MUS_AQA_0 #define MUS_FOLLOW_ME 420 // MUS_TSURETEK #define MUS_ENCOUNTER_BRENDAN 421 // MUS_BOY_SUP #define MUS_EVER_GRANDE 422 // MUS_RAINBOW -#define MUS_ENCOUNTER_HEX_MANIAC 423 // MUS_AYASII +#define MUS_ENCOUNTER_SUSPICIOUS 423 // MUS_AYASII #define MUS_VICTORY_AQUA_MAGMA 424 // MUS_KACHI4 #define MUS_CABLE_CAR 425 // MUS_ROPEWAY #define MUS_GAME_CORNER 426 // MUS_CASINO diff --git a/ld_script.txt b/ld_script.txt index 9ed3e8a5eb..9be5e4db33 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -1014,7 +1014,7 @@ SECTIONS { sound/songs/midi/mus_link_contest_p2.o(.rodata); sound/songs/midi/mus_link_contest_p3.o(.rodata); sound/songs/midi/mus_link_contest_p4.o(.rodata); - sound/songs/midi/mus_encounter_gentleman.o(.rodata); + sound/songs/midi/mus_encounter_rich.o(.rodata); sound/songs/midi/mus_verdanturf.o(.rodata); sound/songs/midi/mus_rustboro.o(.rodata); sound/songs/midi/mus_poke_center.o(.rodata); @@ -1033,14 +1033,14 @@ SECTIONS { sound/songs/midi/mus_title.o(.rodata); sound/songs/midi/mus_intro.o(.rodata); sound/songs/midi/mus_encounter_may.o(.rodata); - sound/songs/midi/mus_encounter_psychic.o(.rodata); - sound/songs/midi/mus_encounter_cooltrainer.o(.rodata); + sound/songs/midi/mus_encounter_intense.o(.rodata); + sound/songs/midi/mus_encounter_cool.o(.rodata); sound/songs/midi/mus_route113.o(.rodata); sound/songs/midi/mus_encounter_aqua.o(.rodata); sound/songs/midi/mus_follow_me.o(.rodata); sound/songs/midi/mus_encounter_brendan.o(.rodata); sound/songs/midi/mus_ever_grande.o(.rodata); - sound/songs/midi/mus_encounter_hex_maniac.o(.rodata); + sound/songs/midi/mus_encounter_suspicious.o(.rodata); sound/songs/midi/mus_victory_aqua_magma.o(.rodata); sound/songs/midi/mus_cable_car.o(.rodata); sound/songs/midi/mus_game_corner.o(.rodata); diff --git a/songs.mk b/songs.mk index 8c500457ad..698f983ceb 100644 --- a/songs.mk +++ b/songs.mk @@ -12,7 +12,7 @@ $(MID_SUBDIR)/mus_encounter_aqua.s: %.s: %.mid $(MID_SUBDIR)/mus_route111.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G055 -V076 -$(MID_SUBDIR)/mus_encounter_hex_maniac.s: %.s: %.mid +$(MID_SUBDIR)/mus_encounter_suspicious.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G069 -V078 $(MID_SUBDIR)/mus_b_arena.s: %.s: %.mid @@ -186,7 +186,7 @@ $(MID_SUBDIR)/mus_rustboro.s: %.s: %.mid $(MID_SUBDIR)/mus_route119.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G048 -V096 -$(MID_SUBDIR)/mus_encounter_psychic.s: %.s: %.mid +$(MID_SUBDIR)/mus_encounter_intense.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G062 -V078 $(MID_SUBDIR)/mus_weather_groudon.s: %.s: %.mid @@ -219,7 +219,7 @@ $(MID_SUBDIR)/mus_victory_league.s: %.s: %.mid $(MID_SUBDIR)/mus_caught.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G025 -V080 -$(MID_SUBDIR)/mus_encounter_cooltrainer.s: %.s: %.mid +$(MID_SUBDIR)/mus_encounter_cool.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G063 -V086 $(MID_SUBDIR)/mus_trick_house.s: %.s: %.mid @@ -588,7 +588,7 @@ $(MID_SUBDIR)/mus_encounter_girl.s: %.s: %.mid $(MID_SUBDIR)/mus_intro_battle.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G088 -V088 -$(MID_SUBDIR)/mus_encounter_gentleman.s: %.s: %.mid +$(MID_SUBDIR)/mus_encounter_rich.s: %.s: %.mid $(MID) $< $@ -E -R$(STD_REVERB) -G043 -V094 $(MID_SUBDIR)/mus_link_contest_p1.s: %.s: %.mid diff --git a/sound/song_table.inc b/sound/song_table.inc index 8ad178f925..ef5b4b48ec 100644 --- a/sound/song_table.inc +++ b/sound/song_table.inc @@ -398,7 +398,7 @@ gSongTable:: @ 86B49F0 song mus_link_contest_p2, 0, 0 song mus_link_contest_p3, 0, 0 song mus_link_contest_p4, 0, 0 - song mus_encounter_gentleman, 0, 0 + song mus_encounter_rich, 0, 0 song mus_verdanturf, 0, 0 song mus_rustboro, 0, 0 song mus_poke_center, 0, 0 @@ -417,14 +417,14 @@ gSongTable:: @ 86B49F0 song mus_title, 0, 0 song mus_intro, 0, 0 song mus_encounter_may, 0, 0 - song mus_encounter_psychic, 0, 0 - song mus_encounter_cooltrainer, 0, 0 + song mus_encounter_intense, 0, 0 + song mus_encounter_cool, 0, 0 song mus_route113, 0, 0 song mus_encounter_aqua, 0, 0 song mus_follow_me, 0, 0 song mus_encounter_brendan, 0, 0 song mus_ever_grande, 0, 0 - song mus_encounter_hex_maniac, 0, 0 + song mus_encounter_suspicious, 0, 0 song mus_victory_aqua_magma, 0, 0 song mus_cable_car, 0, 0 song mus_game_corner, 0, 0 diff --git a/sound/songs/midi/mus_encounter_cooltrainer.mid b/sound/songs/midi/mus_encounter_cool.mid similarity index 100% rename from sound/songs/midi/mus_encounter_cooltrainer.mid rename to sound/songs/midi/mus_encounter_cool.mid diff --git a/sound/songs/midi/mus_encounter_psychic.mid b/sound/songs/midi/mus_encounter_intense.mid similarity index 100% rename from sound/songs/midi/mus_encounter_psychic.mid rename to sound/songs/midi/mus_encounter_intense.mid diff --git a/sound/songs/midi/mus_encounter_gentleman.mid b/sound/songs/midi/mus_encounter_rich.mid similarity index 100% rename from sound/songs/midi/mus_encounter_gentleman.mid rename to sound/songs/midi/mus_encounter_rich.mid diff --git a/sound/songs/midi/mus_encounter_hex_maniac.mid b/sound/songs/midi/mus_encounter_suspicious.mid similarity index 100% rename from sound/songs/midi/mus_encounter_hex_maniac.mid rename to sound/songs/midi/mus_encounter_suspicious.mid diff --git a/src/battle_setup.c b/src/battle_setup.c index 81c7295bca..3c20d9ffe5 100644 --- a/src/battle_setup.c +++ b/src/battle_setup.c @@ -1463,10 +1463,10 @@ void SetUpTrainerEncounterMusic(void) music = MUS_ENCOUNTER_GIRL; break; case TRAINER_ENCOUNTER_MUSIC_INTENSE: - music = MUS_ENCOUNTER_PSYCHIC; + music = MUS_ENCOUNTER_INTENSE; break; case TRAINER_ENCOUNTER_MUSIC_COOL: - music = MUS_ENCOUNTER_COOLTRAINER; + music = MUS_ENCOUNTER_COOL; break; case TRAINER_ENCOUNTER_MUSIC_AQUA: music = MUS_ENCOUNTER_AQUA; @@ -1490,10 +1490,10 @@ void SetUpTrainerEncounterMusic(void) music = MUS_ENCOUNTER_INTERVIEWER; break; case TRAINER_ENCOUNTER_MUSIC_RICH: - music = MUS_ENCOUNTER_GENTLEMAN; + music = MUS_ENCOUNTER_RICH; break; default: - music = MUS_ENCOUNTER_HEX_MANIAC; + music = MUS_ENCOUNTER_SUSPICIOUS; } PlayNewMapMusic(music); } From 469ec5f248ce3f3708940dfaedcb1b1c2d6d3380 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Fri, 21 Aug 2020 02:36:48 -0400 Subject: [PATCH 080/101] Document contest AI commands --- asm/macros/contest_ai_script.inc | 790 ++++++++++++++++++++++--------- data/contest_ai_scripts.s | 126 ++--- include/contest.h | 4 +- src/contest.c | 8 +- src/contest_ai.c | 713 ++++++++++++++-------------- src/contest_effect.c | 5 +- 6 files changed, 1004 insertions(+), 642 deletions(-) diff --git a/asm/macros/contest_ai_script.inc b/asm/macros/contest_ai_script.inc index 763c3d1c40..7a5d669f4a 100644 --- a/asm/macros/contest_ai_script.inc +++ b/asm/macros/contest_ai_script.inc @@ -1,6 +1,8 @@ +@ A large number of the Contest AI commands go unused, so their corresponding macros in this file are similarly unused + @ Add a positive/negative value to the score of the move being evaluated. - .macro score score + .macro score score:req .byte 0x00 .byte \score .endm @@ -9,36 +11,36 @@ .byte 0x01 .endm - .macro if_appeal_num_less_than param, addr + .macro if_appeal_num_less_than num:req, destination:req .byte 0x02 - .byte \param - .4byte \addr + .byte \num + .4byte \destination .endm - .macro if_appeal_num_more_than param, addr + .macro if_appeal_num_more_than num:req, destination:req .byte 0x03 - .byte \param - .4byte \addr + .byte \num + .4byte \destination .endm - .macro if_appeal_num_eq param, addr + .macro if_appeal_num_eq num:req, destination:req .byte 0x04 - .byte \param - .4byte \addr + .byte \num + .4byte \destination .endm - .macro if_appeal_num_not_eq param, addr + .macro if_appeal_num_not_eq num:req, destination:req .byte 0x05 - .byte \param - .4byte \addr + .byte \num + .4byte \destination .endm - .macro if_last_appeal addr:req - if_appeal_num_eq CONTEST_LAST_APPEAL, \addr + .macro if_last_appeal destination:req + if_appeal_num_eq CONTEST_LAST_APPEAL, \destination .endm - .macro if_not_last_appeal addr:req - if_appeal_num_not_eq CONTEST_LAST_APPEAL, \addr + .macro if_not_last_appeal destination:req + if_appeal_num_not_eq CONTEST_LAST_APPEAL, \destination .endm @ audience excitement @@ -47,28 +49,28 @@ .byte 0x06 .endm - .macro if_excitement_less_than param, addr + .macro if_excitement_less_than num:req, destination:req .byte 0x07 - .byte \param - .4byte \addr + .byte \num + .4byte \destination .endm - .macro if_excitement_more_than param, addr + .macro if_excitement_more_than num:req, destination:req .byte 0x08 - .byte \param - .4byte \addr + .byte \num + .4byte \destination .endm - .macro if_excitement_eq param, addr + .macro if_excitement_eq num:req, destination:req .byte 0x09 - .byte \param - .4byte \addr + .byte \num + .4byte \destination .endm - .macro if_excitement_not_eq param, addr + .macro if_excitement_not_eq num:req, destination:req .byte 0x0A - .byte \param - .4byte \addr + .byte \num + .4byte \destination .endm @ the order that the user goes in the current appeal @@ -77,28 +79,28 @@ .byte 0x0B .endm - .macro if_user_order_less_than param addr + .macro if_user_order_less_than num:req, destination:req .byte 0x0C - .byte \param - .4byte \addr + .byte \num + .4byte \destination .endm - .macro if_user_order_more_than param addr + .macro if_user_order_more_than num:req, destination:req .byte 0x0D - .byte \param - .4byte \addr + .byte \num + .4byte \destination .endm - .macro if_user_order_eq param addr + .macro if_user_order_eq num:req, destination:req .byte 0x0E - .byte \param - .4byte \addr + .byte \num + .4byte \destination .endm - .macro if_user_order_not_eq param addr + .macro if_user_order_not_eq num:req, destination:req .byte 0x0F - .byte \param - .4byte \addr + .byte \num + .4byte \destination .endm @ user condition @@ -107,40 +109,89 @@ .byte 0x10 .endm - .macro if_user_condition_less_than param, addr + .macro if_user_condition_less_than num:req, destination:req .byte 0x11 - .byte \param - .4byte \addr + .byte \num + .4byte \destination .endm - .macro if_user_condition_more_than param, addr + .macro if_user_condition_more_than num:req, destination:req .byte 0x12 - .byte \param - .4byte \addr + .byte \num + .4byte \destination .endm - .macro if_user_condition_eq param, addr + .macro if_user_condition_eq num:req, destination:req .byte 0x13 - .byte \param - .4byte \addr + .byte \num + .4byte \destination .endm - .macro if_user_condition_not_eq param, addr + .macro if_user_condition_not_eq num:req, destination:req .byte 0x14 - .byte \param - .4byte \addr + .byte \num + .4byte \destination .endm -@ 15 -@ 16 -@ 17 -@ 18 -@ 19 -@ 1A -@ 1B -@ 1C -@ 1D -@ 1E +@ appeal points + + .macro get_point_total + .byte 0x15 + .endm + + .macro if_points_less_than num:req, destination:req + .byte 0x16 + .byte \num + .4byte \destination + .endm + + .macro if_points_more_than num:req, destination:req + .byte 0x17 + .byte \num + .4byte \destination + .endm + + .macro if_points_eq num:req, destination:req + .byte 0x18 + .byte \num + .4byte \destination + .endm + + .macro if_points_not_eq num:req, destination:req + .byte 0x19 + .byte \num + .4byte \destination + .endm + +@ preliminary (pre-appeal) judging points + + .macro get_preliminary_points + .byte 0x1A + .endm + + .macro if_preliminary_points_less_than num:req, destination:req + .byte 0x1B + .byte \num + .4byte \destination + .endm + + .macro if_preliminary_points_more_than num:req, destination:req + .byte 0x1C + .byte \num + .4byte \destination + .endm + + .macro if_preliminary_points_eq num:req, destination:req + .byte 0x1D + .byte \num + .4byte \destination + .endm + + .macro if_preliminary_points_not_eq num:req, destination:req + .byte 0x1E + .byte \num + .4byte \destination + .endm @ contest type @@ -148,16 +199,16 @@ .byte 0x1F .endm - .macro if_contest_type_eq param, addr + .macro if_contest_type_eq type:req, destination:req .byte 0x20 - .byte \param - .4byte \addr + .byte \type + .4byte \destination .endm - .macro if_contest_type_not_eq param, addr + .macro if_contest_type_not_eq type:req, destination:req .byte 0x21 - .byte \param - .4byte \addr + .byte \type + .4byte \destination .endm @ move excitement (change in excitement due to move) @@ -166,28 +217,28 @@ .byte 0x22 .endm - .macro if_move_excitement_less_than param, addr + .macro if_move_excitement_less_than num:req, destination:req .byte 0x23 - .byte \param - .4byte \addr + .byte \num + .4byte \destination .endm - .macro if_move_excitement_more_than param, addr + .macro if_move_excitement_more_than num:req, destination:req .byte 0x24 - .byte \param - .4byte \addr + .byte \num + .4byte \destination .endm - .macro if_move_excitement_eq param, addr + .macro if_move_excitement_eq num:req, destination:req .byte 0x25 - .byte \param - .4byte \addr + .byte \num + .4byte \destination .endm - .macro if_move_excitement_not_eq param, addr + .macro if_move_excitement_not_eq num:req, destination:req .byte 0x26 - .byte \param - .4byte \addr + .byte \num + .4byte \destination .endm @ move effect @@ -196,16 +247,16 @@ .byte 0x27 .endm - .macro if_effect_eq param, addr + .macro if_effect_eq effect:req, destination:req .byte 0x28 - .byte \param - .4byte \addr + .byte \effect + .4byte \destination .endm - .macro if_effect_not_eq param, addr + .macro if_effect_not_eq effect:req, destination:req .byte 0x29 - .byte \param - .4byte \addr + .byte \effect + .4byte \destination .endm @ move effect type @@ -214,16 +265,16 @@ .byte 0x2A .endm - .macro if_effect_type_eq param, addr + .macro if_effect_type_eq type:req, destination:req .byte 0x2B - .byte \param - .4byte \addr + .byte \type + .4byte \destination .endm - .macro if_effect_type_not_eq param, addr + .macro if_effect_type_not_eq type:req, destination:req .byte 0x2C - .byte \param - .4byte \addr + .byte \type + .4byte \destination .endm @ whether the current move is the most appealing in the user's moveset @@ -232,23 +283,81 @@ .byte 0x2D .endm - .macro if_most_appealing_move addr + .macro if_most_appealing_move destination:req .byte 0x2E - .4byte \addr + .4byte \destination .endm -@ 2F -@ 30 -@ 31 -@ 32 -@ 33 -@ 34 -@ 35 -@ 36 -@ 37 -@ 38 -@ 39 -@ 3A +@ whether the current move is the most jamming in the user's moveset + + .macro check_most_jamming_move + .byte 0x2F + .endm + + .macro if_most_jamming_move destination:req + .byte 0x30 + .4bye \destination + .endm + +@ number of hearts the current move's appeal would provide + + .macro get_num_move_hearts + .byte 0x31 + .endm + + .macro if_num_move_hearts_less_than num:req, destination:req + .byte 0x32 + .byte \num + .4byte \destination + .endm + + .macro if_num_move_hearts_more_than num:req, destination:req + .byte 0x33 + .byte \num + .4byte \destination + .endm + + .macro if_num_move_hearts_eq num:req, destination:req + .byte 0x34 + .byte \num + .4byte \destination + .endm + + .macro if_num_move_hearts_not_eq num:req, destination:req + .byte 0x35 + .byte \num + .4byte \destination + .endm + +@ number of hearts the current move's jam would remove + + .macro get_num_move_jam_hearts + .byte 0x36 + .endm + + .macro if_num_move_jam_hearts_less_than num:req, destination:req + .byte 0x37 + .byte \num + .4byte \destination + .endm + + .macro if_num_move_jam_hearts_more_than num:req, destination:req + .byte 0x38 + .byte \num + .4byte \destination + .endm + + .macro if_num_move_jam_hearts_eq num:req, destination:req + .byte 0x39 + .byte \num + .4byte \destination + .endm + + .macro if_num_move_jam_hearts_not_eq num:req, destination:req + .byte 0x3A + .byte \num + .4byte \destination + .endm @ number of times current move has been used @@ -256,28 +365,28 @@ .byte 0x3B .endm - .macro if_move_used_count_less_than param, addr + .macro if_move_used_count_less_than num:req, destination:req .byte 0x3C - .byte \param - .4byte \addr + .byte \num + .4byte \destination .endm - .macro if_move_used_count_more_than param, addr + .macro if_move_used_count_more_than num:req, destination:req .byte 0x3D - .byte \param - .4byte \addr + .byte \num + .4byte \destination .endm - .macro if_move_used_count_eq param, addr + .macro if_move_used_count_eq num:req, destination:req .byte 0x3E - .byte \param - .4byte \addr + .byte \num + .4byte \destination .endm - .macro if_move_used_count_not_eq param, addr + .macro if_move_used_count_not_eq num:req, destination:req .byte 0x3F - .byte \param - .4byte \addr + .byte \num + .4byte \destination .endm @ whether the current move is a combo starter (with another move in the moveset) @@ -286,14 +395,14 @@ .byte 0x40 .endm - .macro if_combo_starter addr + .macro if_combo_starter destination:req .byte 0x41 - .4byte \addr + .4byte \destination .endm - .macro if_not_combo_starter addr + .macro if_not_combo_starter destination:req .byte 0x42 - .4byte \addr + .4byte \destination .endm @ whether the current move is a combo finisher (with another move in the moveset) @@ -302,14 +411,14 @@ .byte 0x43 .endm - .macro if_combo_finisher addr + .macro if_combo_finisher destination:req .byte 0x44 - .4byte \addr + .4byte \destination .endm - .macro if_not_combo_finisher addr + .macro if_not_combo_finisher destination:req .byte 0x45 - .4byte \addr + .4byte \destination .endm @ whether the current move would finish a combo @@ -318,170 +427,403 @@ .byte 0x46 .endm - .macro if_would_finish_combo addr + .macro if_would_finish_combo destination:req .byte 0x47 - .4byte \addr + .4byte \destination .endm - .macro if_would_not_finish_combo addr + .macro if_would_not_finish_combo destination:req .byte 0x48 - .4byte \addr + .4byte \destination .endm @ condition of mon (indexed by order) - .macro get_condition mon + .macro get_condition mon:req .byte 0x49 .byte \mon .endm - .macro if_condition_less_than mon, value, addr + .macro if_condition_less_than mon:req, num:req destination:req .byte 0x4A .byte \mon - .byte \value - .4byte \addr + .byte \num + .4byte \destination .endm - .macro if_condition_more_than mon, value, addr + .macro if_condition_more_than mon:req, num:req, destination:req .byte 0x4B .byte \mon - .byte \value - .4byte \addr + .byte \num + .4byte \destination .endm - .macro if_condition_eq mon, value, addr + .macro if_condition_eq mon:req, num:req, destination:req .byte 0x4C .byte \mon - .byte \value - .4byte \addr + .byte \num + .4byte \destination .endm - .macro if_condition_not_eq mon, value, addr + .macro if_condition_not_eq mon:req, num:req, destination:req .byte 0x4D .byte \mon - .byte \value - .4byte \addr + .byte \num + .4byte \destination .endm @ whether the mon used a combo starter move @ Even though this value is always 1 or 0 (i.e. TRUE/FALSE), @ there are less-than and greater-than comparison operations for some reason. - .macro get_used_combo_starter mon + .macro get_used_combo_starter mon:req .byte 0x4E .byte \mon .endm - .macro if_used_combo_starter_less_than mon, value, addr + .macro if_used_combo_starter_less_than mon:req, num:req, destination:req .byte 0x4F .byte \mon - .byte \value - .4byte \addr + .byte \num + .4byte \destination .endm - .macro if_used_combo_starter_more_than mon, value, addr + .macro if_used_combo_starter_more_than mon:req, num:req, destination:req .byte 0x50 .byte \mon - .byte \value - .4byte \addr + .byte \num + .4byte \destination .endm - .macro if_used_combo_starter_eq mon, value, addr + .macro if_used_combo_starter_eq mon:req, num:req, destination:req .byte 0x51 .byte \mon - .byte \value - .4byte \addr + .byte \num + .4byte \destination .endm - .macro if_used_combo_starter_not_eq mon, value, addr + .macro if_used_combo_starter_not_eq mon:req, num:req, destination:req .byte 0x52 .byte \mon - .byte \value - .4byte \addr + .byte \num + .4byte \destination .endm @ whether the mon can make an appeal - .macro check_can_participate mon + .macro check_can_participate mon:req .byte 0x53 .byte \mon .endm - .macro if_can_participate mon, addr + .macro if_can_participate mon:req, destination:req .byte 0x54 .byte \mon - .4byte \addr + .4byte \destination .endm - .macro if_cannot_participate mon, addr + .macro if_cannot_participate mon:req, destination:req .byte 0x55 .byte \mon - .4byte \addr + .4byte \destination .endm -@ 56 -@ 57 +@ whether the mon just completed a combo - .macro contest_58 param addr + .macro get_completed_combo mon:req + .byte 0x56 + .byte \mon + .4byte \destination + .endm + + .macro if_completed_combo mon:req, destination:req + .byte 0x57 + .byte \mon + .4byte \destination + .endm + + .macro if_not_completed_combo mon:req destination:req .byte 0x58 - .byte \param - .4byte \addr + .byte \mon + .4byte \destination .endm -@ 59 -@ 5A -@ 5B -@ 5C -@ 5D -@ 5E -@ 5F -@ 60 -@ 61 -@ 62 -@ 63 -@ 64 -@ 65 -@ 66 -@ 67 -@ 68 -@ 69 -@ 6A -@ 6B -@ 6C -@ 6D -@ 6E -@ 6F -@ 70 -@ 71 -@ 72 -@ 73 -@ 74 -@ 75 -@ 76 -@ 77 -@ 78 -@ 79 -@ 7A -@ 7B -@ 7C +@ comparing appeal points to another mon - .macro if_random param addr + .macro get_points_diff mon:req + .byte 0x59 + .byte \mon + .endm + + .macro if_points_more_than_mon mon:req, destination:req + .byte 0x5A + .byte \mon + .4byte \destination + .endm + + .macro if_points_less_than_mon mon:req, destination:req + .byte 0x5B + .byte \mon + .4byte \destination + .endm + + .macro if_points_eq_mon mon:req, destination:req + .byte 0x5C + .byte \mon + .4byte \destination + .endm + + .macro if_points_not_eq_mon mon:req, destination:req + .byte 0x5D + .byte \mon + .4byte \destination + .endm + +@ comparing preliminary judging points to another mon + + .macro get_preliminary_points_diff mon:req + .byte 0x5E + .byte \mon + .endm + + .macro if_preliminary_points_more_than_mon mon:req, destination:req + .byte 0x5F + .byte \mon + .4byte \destination + .endm + + .macro if_preliminary_points_less_than_mon mon:req, destination:req + .byte 0x60 + .byte \mon + .4byte \destination + .endm + + .macro if_preliminary_points_eq_mon mon:req, destination:req + .byte 0x61 + .byte \mon + .4byte \destination + .endm + + .macro if_preliminary_points_not_eq_mon mon:req, destination:req + .byte 0x62 + .byte \mon + .4byte \destination + .endm + +@ checking move history for move effect + + .macro get_used_moves_effect mon:req, round:req + .byte 0x63 + .byte \mon + .byte \round + .endm + + .macro if_used_moves_effect_less_than mon:req, round:req, effect:req, destination:req + .byte 0x64 + .byte \mon + .byte \round + .byte \effect + .4byte \destination + .endm + + .macro if_used_moves_effect_more_than mon:req, round:req, effect:req, destination:req + .byte 0x65 + .byte \mon + .byte \round + .byte \effect + .4byte \destination + .endm + + .macro if_used_moves_effect_eq mon:req, round:req, effect:req, destination:req + .byte 0x66 + .byte \mon + .byte \round + .byte \effect + .4byte \destination + .endm + + .macro if_used_moves_effect_not_eq mon:req, round:req, effect:req, destination:req + .byte 0x67 + .byte \mon + .byte \round + .byte \effect + .4byte \destination + .endm + +@ checking move history for excitement + + .macro get_used_moves_excitement mon:req, round:req + .byte 0x68 + .byte \mon + .byte \round + .endm + + .macro if_used_moves_excitement_less_than mon:req, round:req, num:req, destination:req + .byte 0x69 + .byte \mon + .byte \round + .byte \num + .4byte \destination + .endm + + .macro if_used_moves_excitement_more_than mon:req, round:req, num:req, destination:req + .byte 0x6A + .byte \mon + .byte \round + .byte \num + .4byte \destination + .endm + + .macro if_used_moves_excitement_eq mon:req, round:req, num:req, destination:req + .byte 0x6B + .byte \mon + .byte \round + .byte \num + .4byte \destination + .endm + + .macro if_used_moves_excitement_not_eq mon:req, round:req, num:req, destination:req + .byte 0x6C + .byte \mon + .byte \round + .byte \num + .4byte \destination + .endm + +@ checking move history for effect type + + .macro get_used_moves_effect_type mon:req, round:req + .byte 0x6D + .byte \mon + .byte \round + .endm + + .macro if_used_moves_effect_type_eq mon:req, round:req, type:req, destination:req + .byte 0x6E + .byte \mon + .byte \round + .byte \type + .4byte \destination + .endm + + .macro if_used_moves_effect_type_not_eq mon:req, round:req, type:req, destination:req + .byte 0x6F + .byte \mon + .byte \round + .byte \type + .4byte \destination + .endm + +@ generic commands + + .macro save_result varId:req + .byte 0x70 + .byte \varId + .endm + + .macro setvar varId:req, num:req + .byte 0x71 + .byte \varId + .2byte \num + .endm + + .macro add varId:req, num:req + .byte 0x72 + .byte \varId + .2byte \num + .endm + + .macro addvar varId1:req, varId2:req + .byte 0x73 + .byte \varId1 + .byte \varId2 + .endm + + @ Duplicate of above + .macro addvar_duplicate varId1:req, varId2:req + .byte 0x74 + .byte \varId1 + .byte \varId2 + .endm + + .macro if_less_than varId:req, num:req, destination:req + .byte 0x75 + .byte \varId + .2byte \num + .4byte \destination + .endm + + .macro if_greater_than varId:req, num:req, destination:req + .byte 0x76 + .byte \varId + .2byte \num + .4byte \destination + .endm + + .macro if_eq varId:req, num:req, destination:req + .byte 0x77 + .byte \varId + .2byte \num + .4byte \destination + .endm + + .macro if_not_eq varId:req, num:req, destination:req + .byte 0x78 + .byte \varId + .2byte \num + .4byte \destination + .endm + + .macro if_less_than_var varId1:req, varId2:req, destination:req + .byte 0x79 + .byte \varId1 + .byte \varId2 + .4byte \destination + .endm + + .macro if_greater_than_var varId1:req, varId2:req, destination:req + .byte 0x7A + .byte \varId1 + .byte \varId2 + .4byte \destination + .endm + + .macro if_eq_var varId1:req, varId2:req, destination:req + .byte 0x7B + .byte \varId1 + .byte \varId2 + .4byte \destination + .endm + + .macro if_not_eq_var varId1:req, varId2:req, destination:req + .byte 0x7C + .byte \varId1 + .byte \varId2 + .4byte \destination + .endm + + @ NOTE: Random is broken (see ContestAICmd_if_random_less_than) + .macro if_random_less_than num:req, destination:req .byte 0x7D - .byte \param - .4byte \addr + .byte \num + .4byte \destination .endm -@ 7E + .macro if_random_greater_than num:req, destination:req + .byte 0x7E + .byte \num + .4byte \destination + .endm - .macro jump addr + .macro goto destination:req .byte 0x7F - .4byte \addr + .4byte \destination .endm - .macro call addr + .macro call destination:req .byte 0x80 - .4byte \addr + .4byte \destination .endm .macro end @@ -492,21 +834,29 @@ .byte 0x82 .endm - .macro if_user_has_exciting_move addr + .macro if_user_has_exciting_move destination:req .byte 0x83 - .4byte \addr + .4byte \destination .endm - .macro if_user_doesnt_have_exciting_move addr + .macro if_user_doesnt_have_exciting_move destination:req .byte 0x84 - .4byte \addr + .4byte \destination .endm -@ 85 -@ 86 + .macro check_user_has_move move:req + .byte 0x85 + .2byte \move + .endm - .macro if_effect_in_user_moveset param addr + .macro if_user_has_move move:req, destination:req + .byte 0x86 + .2byte \move + .4byte \destination + .endm + + .macro if_effect_in_user_moveset effect:req, destination:req .byte 0x87 - .2byte \param - .4byte \addr + .2byte \effect + .4byte \destination .endm diff --git a/data/contest_ai_scripts.s b/data/contest_ai_scripts.s index 4a0bed8175..bb8d32f577 100644 --- a/data/contest_ai_scripts.s +++ b/data/contest_ai_scripts.s @@ -159,29 +159,29 @@ AI_contest09_081DC2AB: end AI_contest0F_1_081DC2AB: if_user_order_not_eq MON_1, AI_contest7D_1_081DC2AB - if_random 51, AI_end_081DC2AB + if_random_less_than 51, AI_end_081DC2AB score +20 end AI_contest7D_1_081DC2AB: - if_random 127, AI_end_081DC2AB + if_random_less_than 127, AI_end_081DC2AB score -10 end AI_contest0F_2_081DC2AB: if_user_order_not_eq MON_1, AI_contest7D_3_081DC2AB if_last_appeal AI_score_081DC2AB AI_contest7D_2_081DC2AB: - if_random 51, AI_end_081DC2AB + if_random_less_than 51, AI_end_081DC2AB score +10 end AI_score_081DC2AB: score +15 end AI_contest7D_3_081DC2AB: - if_random 127, AI_end_081DC2AB + if_random_less_than 127, AI_end_081DC2AB score +10 end AI_contest7D_4_081DC2AB: - if_random 127, AI_end_081DC2AB + if_random_less_than 127, AI_end_081DC2AB score +10 end AI_contest3D_081DC2AB: @@ -191,7 +191,7 @@ AI_contest3D_081DC2AB: score +30 end AI_contest7D_5_081DC2AB: - if_random 100, AI_end_081DC2AB + if_random_less_than 100, AI_end_081DC2AB score +10 end AI_contest29_081DC2AB: @@ -225,17 +225,17 @@ AI_score_081DC348: end AI_contest04_1_081DC348: if_last_appeal AI_contest7D_081DC348 - if_random 150, AI_end_081DC348 + if_random_less_than 150, AI_end_081DC348 score +10 end AI_contest04_2_081DC348: if_last_appeal AI_contest7D_081DC348 - if_random 125, AI_end_081DC348 + if_random_less_than 125, AI_end_081DC348 score +10 end AI_contest04_3_081DC348: if_last_appeal AI_contest7D_081DC348 - if_random 50, AI_end_081DC348 + if_random_less_than 50, AI_end_081DC348 score +10 end AI_contest04_4_081DC348: @@ -243,7 +243,7 @@ AI_contest04_4_081DC348: score +10 end AI_contest7D_081DC348: - if_random 125, AI_end_081DC348 + if_random_less_than 125, AI_end_081DC348 score -15 end AI_end_081DC348: @@ -276,11 +276,11 @@ ContestEffect39_score1: score +20 end ContestEffect39_score2: - if_random 125, ContestEffectEnd + if_random_less_than 125, ContestEffectEnd score +15 end ContestEffect39_score3: - if_random 125, ContestEffectEnd + if_random_less_than 125, ContestEffectEnd score +5 end ContestEffect39_score4: @@ -289,27 +289,27 @@ ContestEffect39_score4: ContestEffect40: if_effect_in_user_moveset CONTEST_EFFECT_BETTER_IF_FIRST, ContestEffectEnd - if_random 50, ContestEffectEnd + if_random_less_than 50, ContestEffectEnd score +20 end ContestEffect41: if_effect_in_user_moveset CONTEST_EFFECT_BETTER_IF_LAST, ContestEffectEnd - if_random 50, ContestEffectEnd + if_random_less_than 50, ContestEffectEnd score +20 end ContestEffect3: if_user_order_not_eq MON_4, ContestEffectEnd - if_random 50, ContestEffectEnd + if_random_less_than 50, ContestEffectEnd score +15 end if_last_appeal ContestEffect3_7D - if_random 220, ContestEffect3_score + if_random_less_than 220, ContestEffect3_score score +10 end ContestEffect3_7D: - if_random 20, ContestEffectEnd + if_random_less_than 20, ContestEffectEnd score +15 end ContestEffect3_score: @@ -319,7 +319,7 @@ ContestEffect3_score: ContestEffect38: if_effect_in_user_moveset CONTEST_EFFECT_BETTER_WITH_GOOD_CONDITION, ContestEffect38_contest04 if_user_condition_eq 3, ContestEffect38_score1 - if_random 50, ContestEffectEnd + if_random_less_than 50, ContestEffectEnd score +15 end ContestEffect38_score1: @@ -329,11 +329,11 @@ ContestEffect38_contest04: if_last_appeal ContestEffect38_score2 if_appeal_num_eq 0, ContestEffect38_random if_move_used_count_eq 1, ContestEffectEnd - if_random 125, ContestEffectEnd + if_random_less_than 125, ContestEffectEnd score +10 end ContestEffect38_random: - if_random 100, ContestEffectEnd + if_random_less_than 100, ContestEffectEnd score +10 end ContestEffect38_score2: @@ -350,7 +350,7 @@ ContestEffect47: score +10 end ContestEffect47_random: - if_random 127, ContestEffectEnd + if_random_less_than 127, ContestEffectEnd score +10 end @@ -385,7 +385,7 @@ ContestEffect32_score2: ContestEffect32_score3: if_cannot_participate MON_1, ContestEffect32_score4 score +5 - jump ContestEffect32_score4 + goto ContestEffect32_score4 end ContestEffect32_score4: if_cannot_participate MON_2, ContestEffectEnd @@ -394,12 +394,12 @@ ContestEffect32_score4: ContestEffect32_score5: if_cannot_participate MON_1, ContestEffect32_score6 score +5 - jump ContestEffect32_score6 + goto ContestEffect32_score6 end ContestEffect32_score6: if_cannot_participate MON_2, ContestEffect32_score7 score +5 - jump ContestEffect32_score7 + goto ContestEffect32_score7 end ContestEffect32_score7: if_cannot_participate MON_3, ContestEffectEnd @@ -416,25 +416,25 @@ ContestEffect46_05: if_excitement_eq 3, ContestEffect46_score3 end ContestEffect46_score1: - if_random 125, ContestEffectEnd + if_random_less_than 125, ContestEffectEnd score -15 end ContestEffect46_score2: - if_random 125, ContestEffectEnd + if_random_less_than 125, ContestEffectEnd score +20 end ContestEffect46_score3: - if_random 125, ContestEffectEnd + if_random_less_than 125, ContestEffectEnd score +15 end ContestEffect46_score4: - if_random 178, ContestEffectEnd + if_random_less_than 178, ContestEffectEnd score +10 end ContestEffect27: if_user_order_eq MON_1, ContestEffectEnd - jump ContestEffect27_55_1 + goto ContestEffect27_55_1 end ContestEffect27_55_1: if_cannot_participate MON_1, ContestEffect27_noscore @@ -444,17 +444,17 @@ ContestEffect27_55_1: if_condition_eq MON_1, 3, ContestEffect27_score3 end ContestEffect27_score1: - if_random 125, ContestEffect27_55_2 + if_random_less_than 125, ContestEffect27_55_2 score +5 if_user_order_more_than MON_2, ContestEffect27_55_2 end ContestEffect27_score2: - if_random 125, ContestEffect27_55_2 + if_random_less_than 125, ContestEffect27_55_2 score +10 if_user_order_more_than MON_2, ContestEffect27_55_2 end ContestEffect27_score3: - if_random 125, ContestEffect27_55_2 + if_random_less_than 125, ContestEffect27_55_2 score +15 if_user_order_more_than MON_2, ContestEffect27_55_2 end @@ -469,17 +469,17 @@ ContestEffect27_55_2: if_condition_eq MON_2, 3, ContestEffect27_score6 end ContestEffect27_score4: - if_random 125, ContestEffect27_55_3 + if_random_less_than 125, ContestEffect27_55_3 score +5 if_user_order_more_than MON_3, ContestEffect27_55_3 end ContestEffect27_score5: - if_random 125, ContestEffect27_55_3 + if_random_less_than 125, ContestEffect27_55_3 score +10 if_user_order_more_than MON_3, ContestEffect27_55_3 end ContestEffect27_score6: - if_random 125, ContestEffect27_55_3 + if_random_less_than 125, ContestEffect27_55_3 score +15 if_user_order_more_than MON_3, ContestEffect27_55_3 end @@ -494,15 +494,15 @@ ContestEffect27_55_3: if_condition_eq MON_3, 3, ContestEffect27_score9 end ContestEffect27_score7: - if_random 125, ContestEffectEnd + if_random_less_than 125, ContestEffectEnd score +5 end ContestEffect27_score8: - if_random 125, ContestEffectEnd + if_random_less_than 125, ContestEffectEnd score +10 end ContestEffect27_score9: - if_random 125, ContestEffectEnd + if_random_less_than 125, ContestEffectEnd score +15 end ContestEffect27_end: @@ -510,44 +510,44 @@ ContestEffect27_end: ContestEffect16or17: if_user_order_eq MON_1, ContestEffectEnd - jump ContestEffect16or17_55 + goto ContestEffect16or17_55 end ContestEffect16or17_55: if_cannot_participate MON_1, ContestEffect16or17_0E_1 if_used_combo_starter_eq MON_1, TRUE, ContestEffect16or17_0E_1 - if_random 125, ContestEffect16or17_0E_1 + if_random_less_than 125, ContestEffect16or17_0E_1 score +2 - contest_58 MON_1, ContestEffect16or17_0E_1 + if_not_completed_combo MON_1, ContestEffect16or17_0E_1 score +8 end ContestEffect16or17_0E_1: if_user_order_eq MON_2, ContestEffectEnd if_cannot_participate MON_2, ContestEffect16or17_0E_2 if_used_combo_starter_eq MON_2, TRUE, ContestEffect16or17_0E_2 - if_random 125, ContestEffect16or17_0E_2 + if_random_less_than 125, ContestEffect16or17_0E_2 score +2 - contest_58 MON_2, ContestEffect16or17_0E_2 + if_not_completed_combo MON_2, ContestEffect16or17_0E_2 score +8 end ContestEffect16or17_0E_2: if_user_order_eq MON_3, ContestEffectEnd if_cannot_participate MON_3, ContestEffectEnd if_used_combo_starter_eq MON_3, TRUE, ContestEffectEnd - if_random 125, ContestEffectEnd + if_random_less_than 125, ContestEffectEnd score +2 - contest_58 MON_3, ContestEffectEnd + if_not_completed_combo MON_3, ContestEffectEnd score +8 end ContestEffect_FollowingMonsNervous: if_user_order_eq MON_4, ContestEffectEnd - jump ContestEffect_FollowingMonsNervous_CheckMon4 + goto ContestEffect_FollowingMonsNervous_CheckMon4 end ContestEffect_FollowingMonsNervous_CheckMon4: if_cannot_participate MON_4, ContestEffect_FollowingMonsNervous_CheckMon3 if_used_combo_starter_eq MON_4, FALSE, ContestEffect_FollowingMonsNervous_CheckMon3 score +5 - if_random 125, ContestEffect16or17_0E_1 + if_random_less_than 125, ContestEffect16or17_0E_1 score +5 end ContestEffect_FollowingMonsNervous_CheckMon3: @@ -555,7 +555,7 @@ ContestEffect_FollowingMonsNervous_CheckMon3: if_cannot_participate MON_3, ContestEffect_FollowingMonsNervous_CheckMon2 if_used_combo_starter_eq MON_3, FALSE, ContestEffect_FollowingMonsNervous_CheckMon2 score +5 - if_random 125, ContestEffect16or17_0E_2 + if_random_less_than 125, ContestEffect16or17_0E_2 score +5 end ContestEffect_FollowingMonsNervous_CheckMon2: @@ -563,17 +563,17 @@ ContestEffect_FollowingMonsNervous_CheckMon2: if_cannot_participate MON_2, ContestEffectEnd if_used_combo_starter_eq MON_2, FALSE, ContestEffectEnd score +5 - if_random 125, ContestEffectEnd + if_random_less_than 125, ContestEffectEnd score +5 end ContestEffect18: if_last_appeal ContestEffect18_score1 - jump ContestEffect18_0E + goto ContestEffect18_0E end ContestEffect18_score1: score +5 - jump ContestEffect18_0E + goto ContestEffect18_0E end ContestEffect18_0E: if_user_order_eq MON_1, ContestEffect18_score2 @@ -585,15 +585,15 @@ ContestEffect18_score2: score -15 end ContestEffect18_random1: - if_random 125, ContestEffectEnd + if_random_less_than 125, ContestEffectEnd score -10 end ContestEffect18_random2: - if_random 125, ContestEffectEnd + if_random_less_than 125, ContestEffectEnd score +5 end ContestEffect18_random3: - if_random 125, ContestEffectEnd + if_random_less_than 125, ContestEffectEnd score +15 end @@ -607,7 +607,7 @@ AI_Erratic: if_contest_type_eq CONTEST_CATEGORY_TOUGH, Erratic_CuteSmartTough end Erratic_CuteSmartTough: - if_random 125, Erratic_NoScoreIncrease + if_random_less_than 125, Erratic_NoScoreIncrease score +10 end Erratic_NoScoreIncrease: @@ -772,23 +772,23 @@ ContestEffect2_2: if_last_appeal ContestEffect2_2_score5 end ContestEffect2_2_score1: - if_random 20, ContestEffectEnd2 + if_random_less_than 20, ContestEffectEnd2 score -15 end ContestEffect2_2_score2: - if_random 40, ContestEffectEnd2 + if_random_less_than 40, ContestEffectEnd2 score -15 end ContestEffect2_2_score3: - if_random 60, ContestEffectEnd2 + if_random_less_than 60, ContestEffectEnd2 score -15 end ContestEffect2_2_score4: - if_random 80, ContestEffectEnd2 + if_random_less_than 80, ContestEffectEnd2 score -15 end ContestEffect2_2_score5: - if_random 20, ContestEffectEnd2 + if_random_less_than 20, ContestEffectEnd2 score +20 end @@ -813,7 +813,7 @@ AI_score2_081DCA4C: score -15 end AI_random1_081DCA4C: - if_random 100, ContestEffectEnd2 + if_random_less_than 100, ContestEffectEnd2 score +10 end AI_effectcheck2_081DCA4C: @@ -824,7 +824,7 @@ AI_score3_081DCA4C: score -5 end AI_random2_081DCA4C: - if_random 125, ContestEffectEnd2 + if_random_less_than 125, ContestEffectEnd2 score +10 end AI_effectcheck3_081DCA4C: @@ -851,7 +851,7 @@ AI_score6_081DCA4C: score -10 end AI_random3_081DCA4C: - if_random 125, ContestEffectEnd2 + if_random_less_than 125, ContestEffectEnd2 score +10 end AI_score7_081DCA4C: diff --git a/include/contest.h b/include/contest.h index d008b8fce1..d53aec2129 100644 --- a/include/contest.h +++ b/include/contest.h @@ -201,7 +201,7 @@ struct ContestantStatus bool8 repeatedMove:1; bool8 unused2:1; bool8 repeatedPrevMove:1; // never read - bool8 unk15_3:1; + bool8 completedComboFlag:1; bool8 hasJudgesAttention:1; bool8 judgesAttentionWasRemoved:1; bool8 usedComboMove:1; @@ -234,7 +234,7 @@ struct ContestAIInfo /*0x10*/ u8 currentAICheck; /*0x14*/ u32 aiChecks; /*0x18*/ s16 scriptResult; - /*0x1A*/ s16 scriptArr[3]; + /*0x1A*/ s16 vars[3]; /*0x20*/ const u8 *stack[8]; /*0x40*/ u8 stackSize; /*0x41*/ u8 contestantId; diff --git a/src/contest.c b/src/contest.c index a015c5bab3..32a8675e58 100644 --- a/src/contest.c +++ b/src/contest.c @@ -3490,7 +3490,7 @@ static bool8 ContestantCanUseTurn(u8 contestant) return TRUE; } -static void ResetContestantStatuses(void) +static void SetContestantStatusesForNextRound(void) { s32 i; @@ -4483,7 +4483,7 @@ static void CalculateAppealMoveImpact(u8 contestant) eContestantStatus[contestant].usedComboMove = TRUE; eContestantStatus[contestant].hasJudgesAttention = FALSE; eContestantStatus[contestant].comboAppealBonus = eContestantStatus[contestant].baseAppeal * eContestantStatus[contestant].completedCombo; - eContestantStatus[contestant].unk15_3 = TRUE; + eContestantStatus[contestant].completedComboFlag = TRUE; // Redundant with completedCombo, used by AI } else { @@ -5172,7 +5172,7 @@ static void Task_ResetForNextRound(u8 taskId) eContest.waitForLink = TRUE; if (IsPlayerLinkLeader()) - ResetContestantStatuses(); + SetContestantStatusesForNextRound(); taskId2 = CreateTask(Task_LinkContest_CommunicateAppealsState, 0); SetTaskFuncWithFollowupFunc(taskId2, Task_LinkContest_CommunicateAppealsState, Task_EndWaitForLink); ContestPrintLinkStandby(); @@ -5180,7 +5180,7 @@ static void Task_ResetForNextRound(u8 taskId) } else { - ResetContestantStatuses(); + SetContestantStatusesForNextRound(); gTasks[taskId].data[0] = 3; } break; diff --git a/src/contest_ai.c b/src/contest_ai.c index b5e91c3149..4635539982 100644 --- a/src/contest_ai.c +++ b/src/contest_ai.c @@ -30,22 +30,22 @@ static void ContestAICmd_if_user_condition_less_than(void); static void ContestAICmd_if_user_condition_more_than(void); static void ContestAICmd_if_user_condition_eq(void); static void ContestAICmd_if_user_condition_not_eq(void); -static void ContestAICmd_unk_15(void); -static void ContestAICmd_unk_16(void); -static void ContestAICmd_unk_17(void); -static void ContestAICmd_unk_18(void); -static void ContestAICmd_unk_19(void); -static void ContestAICmd_unk_1A(void); -static void ContestAICmd_unk_1B(void); -static void ContestAICmd_unk_1C(void); -static void ContestAICmd_unk_1D(void); -static void ContestAICmd_unk_1E(void); +static void ContestAICmd_get_points(void); +static void ContestAICmd_if_points_less_than(void); +static void ContestAICmd_if_points_more_than(void); +static void ContestAICmd_if_points_eq(void); +static void ContestAICmd_if_points_not_eq(void); +static void ContestAICmd_get_preliminary_points(void); +static void ContestAICmd_if_preliminary_points_less_than(void); +static void ContestAICmd_if_preliminary_points_more_than(void); +static void ContestAICmd_if_preliminary_points_eq(void); +static void ContestAICmd_if_preliminary_points_not_eq(void); static void ContestAICmd_get_contest_type(void); static void ContestAICmd_if_contest_type_eq(void); static void ContestAICmd_if_contest_type_not_eq(void); static void ContestAICmd_get_move_excitement(void); static void ContestAICmd_if_move_excitement_less_than(void); -static void ContestAICmd_if_move_excitement_greater_than(void); +static void ContestAICmd_if_move_excitement_more_than(void); static void ContestAICmd_if_move_excitement_eq(void); static void ContestAICmd_if_move_excitement_not_eq(void); static void ContestAICmd_get_move_effect(void); @@ -56,18 +56,18 @@ static void ContestAICmd_if_move_effect_type_eq(void); static void ContestAICmd_if_move_effect_type_not_eq(void); static void ContestAICmd_check_most_appealing_move(void); static void ContestAICmd_if_most_appealing_move(void); -static void ContestAICmd_unk_2F(void); -static void ContestAICmd_unk_30(void); -static void ContestAICmd_unk_31(void); -static void ContestAICmd_unk_32(void); -static void ContestAICmd_unk_33(void); -static void ContestAICmd_unk_34(void); -static void ContestAICmd_unk_35(void); -static void ContestAICmd_unk_36(void); -static void ContestAICmd_unk_37(void); -static void ContestAICmd_unk_38(void); -static void ContestAICmd_unk_39(void); -static void ContestAICmd_unk_3A(void); +static void ContestAICmd_check_most_jamming_move(void); +static void ContestAICmd_if_most_jamming_move(void); +static void ContestAICmd_get_num_move_hearts(void); +static void ContestAICmd_if_num_move_hearts_less_than(void); +static void ContestAICmd_if_num_move_hearts_more_than(void); +static void ContestAICmd_if_num_move_hearts_eq(void); +static void ContestAICmd_if_num_move_hearts_not_eq(void); +static void ContestAICmd_get_num_move_jam_hearts(void); +static void ContestAICmd_if_num_move_jam_hearts_less_than(void); +static void ContestAICmd_if_num_move_jam_hearts_more_than(void); +static void ContestAICmd_if_num_move_jam_hearts_eq(void); +static void ContestAICmd_if_num_move_jam_hearts_not_eq(void); static void ContestAICmd_get_move_used_count(void); static void ContestAICmd_if_most_used_count_less_than(void); static void ContestAICmd_if_most_used_count_more_than(void); @@ -95,197 +95,197 @@ static void ContestAICmd_if_used_combo_starter_not_eq(void); static void ContestAICmd_check_can_participate(void); static void ContestAICmd_if_can_participate(void); static void ContestAICmd_if_cannot_participate(void); -static void ContestAICmd_get_val_812A188(void); -static void ContestAICmd_unk_57(void); -static void ContestAICmd_contest_58(void); -static void ContestAICmd_unk_59(void); -static void ContestAICmd_unk_5A(void); -static void ContestAICmd_unk_5B(void); -static void ContestAICmd_unk_5C(void); -static void ContestAICmd_unk_5D(void); -static void ContestAICmd_unk_5E(void); -static void ContestAICmd_unk_5F(void); -static void ContestAICmd_unk_60(void); -static void ContestAICmd_unk_61(void); -static void ContestAICmd_unk_62(void); -static void ContestAICmd_unk_63(void); -static void ContestAICmd_unk_64(void); -static void ContestAICmd_unk_65(void); -static void ContestAICmd_unk_66(void); -static void ContestAICmd_unk_67(void); -static void ContestAICmd_unk_68(void); -static void ContestAICmd_unk_69(void); -static void ContestAICmd_unk_6A(void); -static void ContestAICmd_unk_6B(void); -static void ContestAICmd_unk_6C(void); -static void ContestAICmd_unk_6D(void); -static void ContestAICmd_unk_6E(void); -static void ContestAICmd_unk_6F(void); -static void ContestAICmd_unk_70(void); -static void ContestAICmd_unk_71(void); -static void ContestAICmd_unk_72(void); -static void ContestAICmd_unk_73(void); -static void ContestAICmd_unk_74(void); -static void ContestAICmd_unk_75(void); -static void ContestAICmd_unk_76(void); -static void ContestAICmd_unk_77(void); -static void ContestAICmd_unk_78(void); -static void ContestAICmd_unk_79(void); -static void ContestAICmd_unk_7A(void); -static void ContestAICmd_unk_7B(void); -static void ContestAICmd_unk_7C(void); -static void ContestAICmd_if_random(void); -static void ContestAICmd_unk_7E(void); -static void ContestAICmd_jump(void); +static void ContestAICmd_get_completed_combo(void); +static void ContestAICmd_if_completed_combo(void); +static void ContestAICmd_if_not_completed_combo(void); +static void ContestAICmd_get_points_diff(void); +static void ContestAICmd_if_points_more_than_mon(void); +static void ContestAICmd_if_points_less_than_mon(void); +static void ContestAICmd_if_points_eq_mon(void); +static void ContestAICmd_if_points_not_eq_mon(void); +static void ContestAICmd_get_preliminary_points_diff(void); +static void ContestAICmd_if_preliminary_points_more_than_mon(void); +static void ContestAICmd_if_preliminary_points_less_than_mon(void); +static void ContestAICmd_if_preliminary_points_eq_mon(void); +static void ContestAICmd_if_preliminary_points_not_eq_mon(void); +static void ContestAICmd_get_used_moves_effect(void); +static void ContestAICmd_if_used_moves_effect_less_than(void); +static void ContestAICmd_if_used_moves_effect_more_than(void); +static void ContestAICmd_if_used_moves_effect_eq(void); +static void ContestAICmd_if_used_moves_effect_not_eq(void); +static void ContestAICmd_get_used_moves_excitement(void); +static void ContestAICmd_if_used_moves_excitement_less_than(void); +static void ContestAICmd_if_used_moves_excitement_more_than(void); +static void ContestAICmd_if_used_moves_excitement_eq(void); +static void ContestAICmd_if_used_moves_excitement_not_eq(void); +static void ContestAICmd_get_used_moves_effect_type(void); +static void ContestAICmd_if_used_moves_effect_type_eq(void); +static void ContestAICmd_if_used_moves_effect_type_not_eq(void); +static void ContestAICmd_save_result(void); +static void ContestAICmd_setvar(void); +static void ContestAICmd_add(void); +static void ContestAICmd_addvar(void); +static void ContestAICmd_addvar_duplicate(void); +static void ContestAICmd_if_less_than(void); +static void ContestAICmd_if_greater_than(void); +static void ContestAICmd_if_eq(void); +static void ContestAICmd_if_not_eq(void); +static void ContestAICmd_if_less_than_var(void); +static void ContestAICmd_if_greater_than_var(void); +static void ContestAICmd_if_eq_var(void); +static void ContestAICmd_if_not_eq_var(void); +static void ContestAICmd_if_random_less_than(void); +static void ContestAICmd_if_random_greater_than(void); +static void ContestAICmd_goto(void); static void ContestAICmd_call(void); static void ContestAICmd_end(void); static void ContestAICmd_check_user_has_exciting_move(void); static void ContestAICmd_if_user_has_exciting_move(void); static void ContestAICmd_if_user_doesnt_have_exciting_move(void); -static void ContestAICmd_unk_85(void); -static void ContestAICmd_unk_86(void); +static void ContestAICmd_check_user_has_move(void); +static void ContestAICmd_if_user_has_move(void); static void ContestAICmd_if_effect_in_user_moveset(void); typedef void (* ContestAICmdFunc)(void); static const ContestAICmdFunc sContestAICmdTable[] = { - ContestAICmd_score, // 0x00 - ContestAICmd_get_appeal_num, // 0x01 - ContestAICmd_if_appeal_num_less_than, // 0x02 - ContestAICmd_if_appeal_num_more_than, // 0x03 - ContestAICmd_if_appeal_num_eq, // 0x04 - ContestAICmd_if_appeal_num_not_eq, // 0x05 - ContestAICmd_get_excitement, // 0x06 - ContestAICmd_if_excitement_less_than, // 0x07 - ContestAICmd_if_excitement_more_than, // 0x08 - ContestAICmd_if_excitement_eq, // 0x09 - ContestAICmd_if_excitement_not_eq, // 0x0A - ContestAICmd_get_user_order, // 0x0B - ContestAICmd_if_user_order_less_than, // 0x0C - ContestAICmd_if_user_order_more_than, // 0x0D - ContestAICmd_if_user_order_eq, // 0x0E - ContestAICmd_if_user_order_not_eq, // 0x0F - ContestAICmd_get_user_condition, // 0x10 - ContestAICmd_if_user_condition_less_than, // 0x11 - ContestAICmd_if_user_condition_more_than, // 0x12 - ContestAICmd_if_user_condition_eq, // 0x13 - ContestAICmd_if_user_condition_not_eq, // 0x14 - ContestAICmd_unk_15, // 0x15 - ContestAICmd_unk_16, // 0x16 - ContestAICmd_unk_17, // 0x17 - ContestAICmd_unk_18, // 0x18 - ContestAICmd_unk_19, // 0x19 - ContestAICmd_unk_1A, // 0x1A - ContestAICmd_unk_1B, // 0x1B - ContestAICmd_unk_1C, // 0x1C - ContestAICmd_unk_1D, // 0x1D - ContestAICmd_unk_1E, // 0x1E - ContestAICmd_get_contest_type, // 0x1F - ContestAICmd_if_contest_type_eq, // 0x20 - ContestAICmd_if_contest_type_not_eq, // 0x21 - ContestAICmd_get_move_excitement, // 0x22 - ContestAICmd_if_move_excitement_less_than, // 0x23 - ContestAICmd_if_move_excitement_greater_than, // 0x24 - ContestAICmd_if_move_excitement_eq, // 0x25 - ContestAICmd_if_move_excitement_not_eq, // 0x26 - ContestAICmd_get_move_effect, // 0x27 - ContestAICmd_if_move_effect_eq, // 0x28 - ContestAICmd_if_move_effect_not_eq, // 0x29 - ContestAICmd_get_move_effect_type, // 0x2A - ContestAICmd_if_move_effect_type_eq, // 0x2B - ContestAICmd_if_move_effect_type_not_eq, // 0x2C - ContestAICmd_check_most_appealing_move, // 0x2D - ContestAICmd_if_most_appealing_move, // 0x2E - ContestAICmd_unk_2F, // 0x2F - ContestAICmd_unk_30, // 0x30 - ContestAICmd_unk_31, // 0x31 - ContestAICmd_unk_32, // 0x32 - ContestAICmd_unk_33, // 0x33 - ContestAICmd_unk_34, // 0x34 - ContestAICmd_unk_35, // 0x35 - ContestAICmd_unk_36, // 0x36 - ContestAICmd_unk_37, // 0x37 - ContestAICmd_unk_38, // 0x38 - ContestAICmd_unk_39, // 0x39 - ContestAICmd_unk_3A, // 0x3A - ContestAICmd_get_move_used_count, // 0x3B - ContestAICmd_if_most_used_count_less_than, // 0x3C - ContestAICmd_if_most_used_count_more_than, // 0x3D - ContestAICmd_if_most_used_count_eq, // 0x3E - ContestAICmd_if_most_used_count_not_eq, // 0x3F - ContestAICmd_check_combo_starter, // 0x40 - ContestAICmd_if_combo_starter, // 0x41 - ContestAICmd_if_not_combo_starter, // 0x42 - ContestAICmd_check_combo_finisher, // 0x43 - ContestAICmd_if_combo_finisher, // 0x44 - ContestAICmd_if_not_combo_finisher, // 0x45 - ContestAICmd_check_would_finish_combo, // 0x46 - ContestAICmd_if_would_finish_combo, // 0x47 - ContestAICmd_if_would_not_finish_combo, // 0x48 - ContestAICmd_get_condition, // 0x49 - ContestAICmd_if_condition_less_than, // 0x4A - ContestAICmd_if_condition_more_than, // 0x4B - ContestAICmd_if_condition_eq, // 0x4C - ContestAICmd_if_condition_not_eq, // 0x4D - ContestAICmd_get_used_combo_starter, // 0x4E - ContestAICmd_if_used_combo_starter_less_than, // 0x4F - ContestAICmd_if_used_combo_starter_more_than, // 0x50 - ContestAICmd_if_used_combo_starter_eq, // 0x51 - ContestAICmd_if_used_combo_starter_not_eq, // 0x52 - ContestAICmd_check_can_participate, // 0x53 - ContestAICmd_if_can_participate, // 0x54 - ContestAICmd_if_cannot_participate, // 0x55 - ContestAICmd_get_val_812A188, // 0x56 - ContestAICmd_unk_57, // 0x57 - ContestAICmd_contest_58, // 0x58 - ContestAICmd_unk_59, // 0x59 - ContestAICmd_unk_5A, // 0x5A - ContestAICmd_unk_5B, // 0x5B - ContestAICmd_unk_5C, // 0x5C - ContestAICmd_unk_5D, // 0x5D - ContestAICmd_unk_5E, // 0x5E - ContestAICmd_unk_5F, // 0x5F - ContestAICmd_unk_60, // 0x60 - ContestAICmd_unk_61, // 0x61 - ContestAICmd_unk_62, // 0x62 - ContestAICmd_unk_63, // 0x63 - ContestAICmd_unk_64, // 0x64 - ContestAICmd_unk_65, // 0x65 - ContestAICmd_unk_66, // 0x66 - ContestAICmd_unk_67, // 0x67 - ContestAICmd_unk_68, // 0x68 - ContestAICmd_unk_69, // 0x69 - ContestAICmd_unk_6A, // 0x6A - ContestAICmd_unk_6B, // 0x6B - ContestAICmd_unk_6C, // 0x6C - ContestAICmd_unk_6D, // 0x6D - ContestAICmd_unk_6E, // 0x6E - ContestAICmd_unk_6F, // 0x6F - ContestAICmd_unk_70, // 0x70 - ContestAICmd_unk_71, // 0x71 - ContestAICmd_unk_72, // 0x72 - ContestAICmd_unk_73, // 0x73 - ContestAICmd_unk_74, // 0x74 - ContestAICmd_unk_75, // 0x75 - ContestAICmd_unk_76, // 0x76 - ContestAICmd_unk_77, // 0x77 - ContestAICmd_unk_78, // 0x78 - ContestAICmd_unk_79, // 0x79 - ContestAICmd_unk_7A, // 0x7A - ContestAICmd_unk_7B, // 0x7B - ContestAICmd_unk_7C, // 0x7C - ContestAICmd_if_random, // 0x7D - ContestAICmd_unk_7E, // 0x7E - ContestAICmd_jump, // 0x7F - ContestAICmd_call, // 0x80 - ContestAICmd_end, // 0x81 - ContestAICmd_check_user_has_exciting_move, // 0x82 - ContestAICmd_if_user_has_exciting_move, // 0x83 - ContestAICmd_if_user_doesnt_have_exciting_move, // 0x84 - ContestAICmd_unk_85, // 0x85 - ContestAICmd_unk_86, // 0x86 - ContestAICmd_if_effect_in_user_moveset, // 0x87 + ContestAICmd_score, // 0x00 + ContestAICmd_get_appeal_num, // 0x01 + ContestAICmd_if_appeal_num_less_than, // 0x02 + ContestAICmd_if_appeal_num_more_than, // 0x03 + ContestAICmd_if_appeal_num_eq, // 0x04 + ContestAICmd_if_appeal_num_not_eq, // 0x05 + ContestAICmd_get_excitement, // 0x06 + ContestAICmd_if_excitement_less_than, // 0x07 + ContestAICmd_if_excitement_more_than, // 0x08 + ContestAICmd_if_excitement_eq, // 0x09 + ContestAICmd_if_excitement_not_eq, // 0x0A + ContestAICmd_get_user_order, // 0x0B + ContestAICmd_if_user_order_less_than, // 0x0C + ContestAICmd_if_user_order_more_than, // 0x0D + ContestAICmd_if_user_order_eq, // 0x0E + ContestAICmd_if_user_order_not_eq, // 0x0F + ContestAICmd_get_user_condition, // 0x10 + ContestAICmd_if_user_condition_less_than, // 0x11 + ContestAICmd_if_user_condition_more_than, // 0x12 + ContestAICmd_if_user_condition_eq, // 0x13 + ContestAICmd_if_user_condition_not_eq, // 0x14 + ContestAICmd_get_points, // 0x15 + ContestAICmd_if_points_less_than, // 0x16 + ContestAICmd_if_points_more_than, // 0x17 + ContestAICmd_if_points_eq, // 0x18 + ContestAICmd_if_points_not_eq, // 0x19 + ContestAICmd_get_preliminary_points, // 0x1A + ContestAICmd_if_preliminary_points_less_than, // 0x1B + ContestAICmd_if_preliminary_points_more_than, // 0x1C + ContestAICmd_if_preliminary_points_eq, // 0x1D + ContestAICmd_if_preliminary_points_not_eq, // 0x1E + ContestAICmd_get_contest_type, // 0x1F + ContestAICmd_if_contest_type_eq, // 0x20 + ContestAICmd_if_contest_type_not_eq, // 0x21 + ContestAICmd_get_move_excitement, // 0x22 + ContestAICmd_if_move_excitement_less_than, // 0x23 + ContestAICmd_if_move_excitement_more_than, // 0x24 + ContestAICmd_if_move_excitement_eq, // 0x25 + ContestAICmd_if_move_excitement_not_eq, // 0x26 + ContestAICmd_get_move_effect, // 0x27 + ContestAICmd_if_move_effect_eq, // 0x28 + ContestAICmd_if_move_effect_not_eq, // 0x29 + ContestAICmd_get_move_effect_type, // 0x2A + ContestAICmd_if_move_effect_type_eq, // 0x2B + ContestAICmd_if_move_effect_type_not_eq, // 0x2C + ContestAICmd_check_most_appealing_move, // 0x2D + ContestAICmd_if_most_appealing_move, // 0x2E + ContestAICmd_check_most_jamming_move, // 0x2F + ContestAICmd_if_most_jamming_move, // 0x30 + ContestAICmd_get_num_move_hearts, // 0x31 + ContestAICmd_if_num_move_hearts_less_than, // 0x32 + ContestAICmd_if_num_move_hearts_more_than, // 0x33 + ContestAICmd_if_num_move_hearts_eq, // 0x34 + ContestAICmd_if_num_move_hearts_not_eq, // 0x35 + ContestAICmd_get_num_move_jam_hearts, // 0x36 + ContestAICmd_if_num_move_jam_hearts_less_than, // 0x37 + ContestAICmd_if_num_move_jam_hearts_more_than, // 0x38 + ContestAICmd_if_num_move_jam_hearts_eq, // 0x39 + ContestAICmd_if_num_move_jam_hearts_not_eq, // 0x3A + ContestAICmd_get_move_used_count, // 0x3B + ContestAICmd_if_most_used_count_less_than, // 0x3C + ContestAICmd_if_most_used_count_more_than, // 0x3D + ContestAICmd_if_most_used_count_eq, // 0x3E + ContestAICmd_if_most_used_count_not_eq, // 0x3F + ContestAICmd_check_combo_starter, // 0x40 + ContestAICmd_if_combo_starter, // 0x41 + ContestAICmd_if_not_combo_starter, // 0x42 + ContestAICmd_check_combo_finisher, // 0x43 + ContestAICmd_if_combo_finisher, // 0x44 + ContestAICmd_if_not_combo_finisher, // 0x45 + ContestAICmd_check_would_finish_combo, // 0x46 + ContestAICmd_if_would_finish_combo, // 0x47 + ContestAICmd_if_would_not_finish_combo, // 0x48 + ContestAICmd_get_condition, // 0x49 + ContestAICmd_if_condition_less_than, // 0x4A + ContestAICmd_if_condition_more_than, // 0x4B + ContestAICmd_if_condition_eq, // 0x4C + ContestAICmd_if_condition_not_eq, // 0x4D + ContestAICmd_get_used_combo_starter, // 0x4E + ContestAICmd_if_used_combo_starter_less_than, // 0x4F + ContestAICmd_if_used_combo_starter_more_than, // 0x50 + ContestAICmd_if_used_combo_starter_eq, // 0x51 + ContestAICmd_if_used_combo_starter_not_eq, // 0x52 + ContestAICmd_check_can_participate, // 0x53 + ContestAICmd_if_can_participate, // 0x54 + ContestAICmd_if_cannot_participate, // 0x55 + ContestAICmd_get_completed_combo, // 0x56 + ContestAICmd_if_completed_combo, // 0x57 + ContestAICmd_if_not_completed_combo, // 0x58 + ContestAICmd_get_points_diff, // 0x59 + ContestAICmd_if_points_more_than_mon, // 0x5A + ContestAICmd_if_points_less_than_mon, // 0x5B + ContestAICmd_if_points_eq_mon, // 0x5C + ContestAICmd_if_points_not_eq_mon, // 0x5D + ContestAICmd_get_preliminary_points_diff, // 0x5E + ContestAICmd_if_preliminary_points_more_than_mon, // 0x5F + ContestAICmd_if_preliminary_points_less_than_mon, // 0x60 + ContestAICmd_if_preliminary_points_eq_mon, // 0x61 + ContestAICmd_if_preliminary_points_not_eq_mon, // 0x62 + ContestAICmd_get_used_moves_effect, // 0x63 + ContestAICmd_if_used_moves_effect_less_than, // 0x64 + ContestAICmd_if_used_moves_effect_more_than, // 0x65 + ContestAICmd_if_used_moves_effect_eq, // 0x66 + ContestAICmd_if_used_moves_effect_not_eq, // 0x67 + ContestAICmd_get_used_moves_excitement, // 0x68 + ContestAICmd_if_used_moves_excitement_less_than, // 0x69 + ContestAICmd_if_used_moves_excitement_more_than, // 0x6A + ContestAICmd_if_used_moves_excitement_eq, // 0x6B + ContestAICmd_if_used_moves_excitement_not_eq, // 0x6C + ContestAICmd_get_used_moves_effect_type, // 0x6D + ContestAICmd_if_used_moves_effect_type_eq, // 0x6E + ContestAICmd_if_used_moves_effect_type_not_eq, // 0x6F + ContestAICmd_save_result, // 0x70 + ContestAICmd_setvar, // 0x71 + ContestAICmd_add, // 0x72 + ContestAICmd_addvar, // 0x73 + ContestAICmd_addvar_duplicate, // 0x74 + ContestAICmd_if_less_than, // 0x75 + ContestAICmd_if_greater_than, // 0x76 + ContestAICmd_if_eq, // 0x77 + ContestAICmd_if_not_eq, // 0x78 + ContestAICmd_if_less_than_var, // 0x79 + ContestAICmd_if_greater_than_var, // 0x7A + ContestAICmd_if_eq_var, // 0x7B + ContestAICmd_if_not_eq_var, // 0x7C + ContestAICmd_if_random_less_than, // 0x7D + ContestAICmd_if_random_greater_than, // 0x7E + ContestAICmd_goto, // 0x7F + ContestAICmd_call, // 0x80 + ContestAICmd_end, // 0x81 + ContestAICmd_check_user_has_exciting_move, // 0x82 + ContestAICmd_if_user_has_exciting_move, // 0x83 + ContestAICmd_if_user_doesnt_have_exciting_move, // 0x84 + ContestAICmd_check_user_has_move, // 0x85 + ContestAICmd_if_user_has_move, // 0x86 + ContestAICmd_if_effect_in_user_moveset, // 0x87 }; static void ContestAI_DoAIProcessing(void); @@ -588,15 +588,15 @@ static void ContestAICmd_if_user_condition_not_eq(void) gAIScriptPtr += 5; } -static void ContestAICmd_unk_15(void) +static void ContestAICmd_get_points(void) { eContestAI.scriptResult = eContestantStatus[eContestAI.contestantId].pointTotal; gAIScriptPtr += 1; } -static void ContestAICmd_unk_16(void) +static void ContestAICmd_if_points_less_than(void) { - ContestAICmd_unk_15(); + ContestAICmd_get_points(); if (eContestAI.scriptResult < (s16)T1_READ_16(gAIScriptPtr + 0)) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2); @@ -604,9 +604,9 @@ static void ContestAICmd_unk_16(void) gAIScriptPtr += 6; } -static void ContestAICmd_unk_17(void) +static void ContestAICmd_if_points_more_than(void) { - ContestAICmd_unk_15(); + ContestAICmd_get_points(); if (eContestAI.scriptResult > (s16)T1_READ_16(gAIScriptPtr + 0)) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2); @@ -614,9 +614,9 @@ static void ContestAICmd_unk_17(void) gAIScriptPtr += 6; } -static void ContestAICmd_unk_18(void) +static void ContestAICmd_if_points_eq(void) { - ContestAICmd_unk_15(); + ContestAICmd_get_points(); if (eContestAI.scriptResult == (s16)T1_READ_16(gAIScriptPtr + 0)) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2); @@ -624,9 +624,9 @@ static void ContestAICmd_unk_18(void) gAIScriptPtr += 6; } -static void ContestAICmd_unk_19(void) +static void ContestAICmd_if_points_not_eq(void) { - ContestAICmd_unk_15(); + ContestAICmd_get_points(); if (eContestAI.scriptResult != (s16)T1_READ_16(gAIScriptPtr + 0)) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2); @@ -634,15 +634,15 @@ static void ContestAICmd_unk_19(void) gAIScriptPtr += 6; } -static void ContestAICmd_unk_1A(void) +static void ContestAICmd_get_preliminary_points(void) { eContestAI.scriptResult = gContestMonRound1Points[eContestAI.contestantId]; gAIScriptPtr += 1; } -static void ContestAICmd_unk_1B(void) +static void ContestAICmd_if_preliminary_points_less_than(void) { - ContestAICmd_unk_1A(); + ContestAICmd_get_preliminary_points(); if (eContestAI.scriptResult < (s16)T1_READ_16(gAIScriptPtr + 0)) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2); @@ -650,9 +650,9 @@ static void ContestAICmd_unk_1B(void) gAIScriptPtr += 6; } -static void ContestAICmd_unk_1C(void) +static void ContestAICmd_if_preliminary_points_more_than(void) { - ContestAICmd_unk_1A(); + ContestAICmd_get_preliminary_points(); if (eContestAI.scriptResult > (s16)T1_READ_16(gAIScriptPtr + 0)) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2); @@ -660,9 +660,9 @@ static void ContestAICmd_unk_1C(void) gAIScriptPtr += 6; } -static void ContestAICmd_unk_1D(void) +static void ContestAICmd_if_preliminary_points_eq(void) { - ContestAICmd_unk_1A(); + ContestAICmd_get_preliminary_points(); if (eContestAI.scriptResult == (s16)T1_READ_16(gAIScriptPtr + 0)) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2); @@ -670,9 +670,9 @@ static void ContestAICmd_unk_1D(void) gAIScriptPtr += 6; } -static void ContestAICmd_unk_1E(void) +static void ContestAICmd_if_preliminary_points_not_eq(void) { - ContestAICmd_unk_1A(); + ContestAICmd_get_preliminary_points(); if (eContestAI.scriptResult != (s16)T1_READ_16(gAIScriptPtr + 0)) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2); @@ -722,7 +722,7 @@ static void ContestAICmd_if_move_excitement_less_than(void) gAIScriptPtr += 5; } -static void ContestAICmd_if_move_excitement_greater_than(void) +static void ContestAICmd_if_move_excitement_more_than(void) { ContestAICmd_get_move_excitement(); @@ -839,7 +839,7 @@ static void ContestAICmd_if_most_appealing_move(void) gAIScriptPtr += 4; } -static void ContestAICmd_unk_2F(void) +static void ContestAICmd_check_most_jamming_move(void) { int i; u16 move = gContestMons[eContestAI.contestantId].moves[eContestAI.nextMoveIndex]; @@ -848,7 +848,7 @@ static void ContestAICmd_unk_2F(void) for (i = 0; i < MAX_MON_MOVES; i++) { u16 newMove = gContestMons[eContestAI.contestantId].moves[i]; - if (newMove != 0 && jam < gContestEffects[gContestMoves[newMove].effect].jam) + if (newMove != MOVE_NONE && jam < gContestEffects[gContestMoves[newMove].effect].jam) break; } @@ -860,9 +860,9 @@ static void ContestAICmd_unk_2F(void) gAIScriptPtr += 1; } -static void ContestAICmd_unk_30(void) +static void ContestAICmd_if_most_jamming_move(void) { - ContestAICmd_unk_2F(); + ContestAICmd_check_most_jamming_move(); if (eContestAI.scriptResult != FALSE) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); @@ -870,7 +870,7 @@ static void ContestAICmd_unk_30(void) gAIScriptPtr += 5; } -static void ContestAICmd_unk_31(void) +static void ContestAICmd_get_num_move_hearts(void) { u16 move = gContestMons[eContestAI.contestantId].moves[eContestAI.nextMoveIndex]; @@ -878,9 +878,9 @@ static void ContestAICmd_unk_31(void) gAIScriptPtr += 1; } -static void ContestAICmd_unk_32(void) +static void ContestAICmd_if_num_move_hearts_less_than(void) { - ContestAICmd_unk_31(); + ContestAICmd_get_num_move_hearts(); if (eContestAI.scriptResult < gAIScriptPtr[0]) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); @@ -888,9 +888,9 @@ static void ContestAICmd_unk_32(void) gAIScriptPtr += 5; } -static void ContestAICmd_unk_33(void) +static void ContestAICmd_if_num_move_hearts_more_than(void) { - ContestAICmd_unk_31(); + ContestAICmd_get_num_move_hearts(); if (eContestAI.scriptResult > gAIScriptPtr[0]) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); @@ -898,9 +898,9 @@ static void ContestAICmd_unk_33(void) gAIScriptPtr += 5; } -static void ContestAICmd_unk_34(void) +static void ContestAICmd_if_num_move_hearts_eq(void) { - ContestAICmd_unk_31(); + ContestAICmd_get_num_move_hearts(); if (eContestAI.scriptResult == gAIScriptPtr[0]) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); @@ -908,9 +908,9 @@ static void ContestAICmd_unk_34(void) gAIScriptPtr += 5; } -static void ContestAICmd_unk_35(void) +static void ContestAICmd_if_num_move_hearts_not_eq(void) { - ContestAICmd_unk_31(); + ContestAICmd_get_num_move_hearts(); if (eContestAI.scriptResult != gAIScriptPtr[0]) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); @@ -918,7 +918,7 @@ static void ContestAICmd_unk_35(void) gAIScriptPtr += 5; } -static void ContestAICmd_unk_36(void) +static void ContestAICmd_get_num_move_jam_hearts(void) { u16 move = gContestMons[eContestAI.contestantId].moves[eContestAI.nextMoveIndex]; @@ -926,9 +926,9 @@ static void ContestAICmd_unk_36(void) gAIScriptPtr += 1; } -static void ContestAICmd_unk_37(void) +static void ContestAICmd_if_num_move_jam_hearts_less_than(void) { - ContestAICmd_unk_36(); + ContestAICmd_get_num_move_jam_hearts(); if (eContestAI.scriptResult < gAIScriptPtr[0]) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); @@ -936,9 +936,9 @@ static void ContestAICmd_unk_37(void) gAIScriptPtr += 5; } -static void ContestAICmd_unk_38(void) +static void ContestAICmd_if_num_move_jam_hearts_more_than(void) { - ContestAICmd_unk_36(); + ContestAICmd_get_num_move_jam_hearts(); if (eContestAI.scriptResult > gAIScriptPtr[0]) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); @@ -946,9 +946,9 @@ static void ContestAICmd_unk_38(void) gAIScriptPtr += 5; } -static void ContestAICmd_unk_39(void) +static void ContestAICmd_if_num_move_jam_hearts_eq(void) { - ContestAICmd_unk_36(); + ContestAICmd_get_num_move_jam_hearts(); if (eContestAI.scriptResult == gAIScriptPtr[0]) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); @@ -956,9 +956,9 @@ static void ContestAICmd_unk_39(void) gAIScriptPtr += 5; } -static void ContestAICmd_unk_3A(void) +static void ContestAICmd_if_num_move_jam_hearts_not_eq(void) { - ContestAICmd_unk_36(); + ContestAICmd_get_num_move_jam_hearts(); if (eContestAI.scriptResult != gAIScriptPtr[0]) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); @@ -1050,7 +1050,7 @@ static void ContestAICmd_if_combo_starter(void) { ContestAICmd_check_combo_starter(); - if (eContestAI.scriptResult != 0) + if (eContestAI.scriptResult) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0); else gAIScriptPtr += 4; @@ -1060,7 +1060,7 @@ static void ContestAICmd_if_not_combo_starter(void) { ContestAICmd_check_combo_starter(); - if (eContestAI.scriptResult == 0) + if (!eContestAI.scriptResult) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0); else gAIScriptPtr += 4; @@ -1096,7 +1096,7 @@ static void ContestAICmd_if_combo_finisher(void) { ContestAICmd_check_combo_finisher(); - if (eContestAI.scriptResult != 0) + if (eContestAI.scriptResult) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0); else gAIScriptPtr += 4; @@ -1106,7 +1106,7 @@ static void ContestAICmd_if_not_combo_finisher(void) { ContestAICmd_check_combo_finisher(); - if (eContestAI.scriptResult == 0) + if (!eContestAI.scriptResult) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0); else gAIScriptPtr += 4; @@ -1131,7 +1131,7 @@ static void ContestAICmd_if_would_finish_combo(void) { ContestAICmd_check_would_finish_combo(); - if (eContestAI.scriptResult != 0) + if (eContestAI.scriptResult) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0); else gAIScriptPtr += 4; @@ -1141,7 +1141,7 @@ static void ContestAICmd_if_would_not_finish_combo(void) { ContestAICmd_check_would_finish_combo(); - if (eContestAI.scriptResult == 0) + if (!eContestAI.scriptResult) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0); else gAIScriptPtr += 4; @@ -1261,7 +1261,7 @@ static void ContestAICmd_if_can_participate(void) { ContestAICmd_check_can_participate(); - if (eContestAI.scriptResult != 0) + if (eContestAI.scriptResult) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0); else gAIScriptPtr += 4; @@ -1271,41 +1271,41 @@ static void ContestAICmd_if_cannot_participate(void) { ContestAICmd_check_can_participate(); - if (eContestAI.scriptResult == 0) + if (!eContestAI.scriptResult) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0); else gAIScriptPtr += 4; } -static void ContestAICmd_get_val_812A188(void) +static void ContestAICmd_get_completed_combo(void) { u8 contestant = GetContestantIdByTurn(gAIScriptPtr[1]); - eContestAI.scriptResult = eContestantStatus[contestant].unk15_3; + eContestAI.scriptResult = eContestantStatus[contestant].completedComboFlag; gAIScriptPtr += 2; } -static void ContestAICmd_unk_57(void) +static void ContestAICmd_if_completed_combo(void) { - ContestAICmd_get_val_812A188(); + ContestAICmd_get_completed_combo(); - if (eContestAI.scriptResult != 0) + if (eContestAI.scriptResult) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0); else gAIScriptPtr += 4; } -static void ContestAICmd_contest_58(void) +static void ContestAICmd_if_not_completed_combo(void) { - ContestAICmd_get_val_812A188(); + ContestAICmd_get_completed_combo(); - if (eContestAI.scriptResult == 0) + if (!eContestAI.scriptResult) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0); else gAIScriptPtr += 4; } -static void ContestAICmd_unk_59(void) +static void ContestAICmd_get_points_diff(void) { u8 contestant = GetContestantIdByTurn(gAIScriptPtr[1]); @@ -1313,9 +1313,9 @@ static void ContestAICmd_unk_59(void) gAIScriptPtr += 2; } -static void ContestAICmd_unk_5A(void) +static void ContestAICmd_if_points_more_than_mon(void) { - ContestAICmd_unk_59(); + ContestAICmd_get_points_diff(); if (eContestAI.scriptResult < 0) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0); @@ -1323,9 +1323,9 @@ static void ContestAICmd_unk_5A(void) gAIScriptPtr += 4; } -static void ContestAICmd_unk_5B(void) +static void ContestAICmd_if_points_less_than_mon(void) { - ContestAICmd_unk_59(); + ContestAICmd_get_points_diff(); if (eContestAI.scriptResult > 0) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0); @@ -1333,9 +1333,9 @@ static void ContestAICmd_unk_5B(void) gAIScriptPtr += 4; } -static void ContestAICmd_unk_5C(void) +static void ContestAICmd_if_points_eq_mon(void) { - ContestAICmd_unk_59(); + ContestAICmd_get_points_diff(); if (eContestAI.scriptResult == 0) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0); @@ -1343,9 +1343,9 @@ static void ContestAICmd_unk_5C(void) gAIScriptPtr += 4; } -static void ContestAICmd_unk_5D(void) +static void ContestAICmd_if_points_not_eq_mon(void) { - ContestAICmd_unk_59(); + ContestAICmd_get_points_diff(); if (eContestAI.scriptResult != 0) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0); @@ -1353,7 +1353,7 @@ static void ContestAICmd_unk_5D(void) gAIScriptPtr += 4; } -static void ContestAICmd_unk_5E(void) +static void ContestAICmd_get_preliminary_points_diff(void) { u8 contestant = GetContestantIdByTurn(gAIScriptPtr[1]); @@ -1361,9 +1361,9 @@ static void ContestAICmd_unk_5E(void) gAIScriptPtr += 2; } -static void ContestAICmd_unk_5F(void) +static void ContestAICmd_if_preliminary_points_more_than_mon(void) { - ContestAICmd_unk_5E(); + ContestAICmd_get_preliminary_points_diff(); if (eContestAI.scriptResult < 0) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0); @@ -1371,9 +1371,9 @@ static void ContestAICmd_unk_5F(void) gAIScriptPtr += 4; } -static void ContestAICmd_unk_60(void) +static void ContestAICmd_if_preliminary_points_less_than_mon(void) { - ContestAICmd_unk_5E(); + ContestAICmd_get_preliminary_points_diff(); if (eContestAI.scriptResult > 0) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0); @@ -1381,9 +1381,9 @@ static void ContestAICmd_unk_60(void) gAIScriptPtr += 4; } -static void ContestAICmd_unk_61(void) +static void ContestAICmd_if_preliminary_points_eq_mon(void) { - ContestAICmd_unk_5E(); + ContestAICmd_get_preliminary_points_diff(); if (eContestAI.scriptResult == 0) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0); @@ -1391,9 +1391,9 @@ static void ContestAICmd_unk_61(void) gAIScriptPtr += 4; } -static void ContestAICmd_unk_62(void) +static void ContestAICmd_if_preliminary_points_not_eq_mon(void) { - ContestAICmd_unk_5E(); + ContestAICmd_get_preliminary_points_diff(); if (eContestAI.scriptResult != 0) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0); @@ -1401,19 +1401,19 @@ static void ContestAICmd_unk_62(void) gAIScriptPtr += 4; } -static void ContestAICmd_unk_63(void) +static void ContestAICmd_get_used_moves_effect(void) { u8 contestant = GetContestantIdByTurn(gAIScriptPtr[1]); - u8 turn = gAIScriptPtr[2]; - u16 move = eContest.moveHistory[turn][contestant]; + u8 round = gAIScriptPtr[2]; + u16 move = eContest.moveHistory[round][contestant]; eContestAI.scriptResult = gContestMoves[move].effect; gAIScriptPtr += 3; } -static void ContestAICmd_unk_64(void) +static void ContestAICmd_if_used_moves_effect_less_than(void) { - ContestAICmd_unk_63(); + ContestAICmd_get_used_moves_effect(); if (eContestAI.scriptResult < gAIScriptPtr[0]) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); @@ -1421,9 +1421,9 @@ static void ContestAICmd_unk_64(void) gAIScriptPtr += 5; } -static void ContestAICmd_unk_65(void) +static void ContestAICmd_if_used_moves_effect_more_than(void) { - ContestAICmd_unk_63(); + ContestAICmd_get_used_moves_effect(); if (eContestAI.scriptResult > gAIScriptPtr[0]) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); @@ -1431,9 +1431,9 @@ static void ContestAICmd_unk_65(void) gAIScriptPtr += 5; } -static void ContestAICmd_unk_66(void) +static void ContestAICmd_if_used_moves_effect_eq(void) { - ContestAICmd_unk_63(); + ContestAICmd_get_used_moves_effect(); if (eContestAI.scriptResult == gAIScriptPtr[0]) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); @@ -1441,9 +1441,9 @@ static void ContestAICmd_unk_66(void) gAIScriptPtr += 5; } -static void ContestAICmd_unk_67(void) +static void ContestAICmd_if_used_moves_effect_not_eq(void) { - ContestAICmd_unk_63(); + ContestAICmd_get_used_moves_effect(); if (eContestAI.scriptResult != gAIScriptPtr[0]) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); @@ -1451,19 +1451,19 @@ static void ContestAICmd_unk_67(void) gAIScriptPtr += 5; } -static void ContestAICmd_unk_68(void) +static void ContestAICmd_get_used_moves_excitement(void) { u8 contestant = GetContestantIdByTurn(gAIScriptPtr[1]); - u8 turn = gAIScriptPtr[2]; - s8 result = eContest.excitementHistory[turn][contestant]; + u8 round = gAIScriptPtr[2]; + s8 result = eContest.excitementHistory[round][contestant]; eContestAI.scriptResult = result; gAIScriptPtr += 3; } -static void ContestAICmd_unk_69(void) +static void ContestAICmd_if_used_moves_excitement_less_than(void) { - ContestAICmd_unk_68(); + ContestAICmd_get_used_moves_excitement(); if (eContestAI.scriptResult < gAIScriptPtr[0]) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); @@ -1471,9 +1471,9 @@ static void ContestAICmd_unk_69(void) gAIScriptPtr += 5; } -static void ContestAICmd_unk_6A(void) +static void ContestAICmd_if_used_moves_excitement_more_than(void) { - ContestAICmd_unk_68(); + ContestAICmd_get_used_moves_excitement(); if (eContestAI.scriptResult > gAIScriptPtr[0]) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); @@ -1481,9 +1481,9 @@ static void ContestAICmd_unk_6A(void) gAIScriptPtr += 5; } -static void ContestAICmd_unk_6B(void) +static void ContestAICmd_if_used_moves_excitement_eq(void) { - ContestAICmd_unk_68(); + ContestAICmd_get_used_moves_excitement(); if (eContestAI.scriptResult == gAIScriptPtr[0]) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); @@ -1491,9 +1491,9 @@ static void ContestAICmd_unk_6B(void) gAIScriptPtr += 5; } -static void ContestAICmd_unk_6C(void) +static void ContestAICmd_if_used_moves_excitement_not_eq(void) { - ContestAICmd_unk_68(); + ContestAICmd_get_used_moves_excitement(); if (eContestAI.scriptResult != gAIScriptPtr[0]) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); @@ -1501,19 +1501,19 @@ static void ContestAICmd_unk_6C(void) gAIScriptPtr += 5; } -static void ContestAICmd_unk_6D(void) +static void ContestAICmd_get_used_moves_effect_type(void) { u8 contestant = GetContestantIdByTurn(gAIScriptPtr[1]); - u8 turn = gAIScriptPtr[2]; - u16 move = eContest.moveHistory[turn][contestant]; + u8 round = gAIScriptPtr[2]; + u16 move = eContest.moveHistory[round][contestant]; eContestAI.scriptResult = gContestEffects[gContestMoves[move].effect].effectType; gAIScriptPtr += 3; } -static void ContestAICmd_unk_6E(void) +static void ContestAICmd_if_used_moves_effect_type_eq(void) { - ContestAICmd_unk_6D(); + ContestAICmd_get_used_moves_effect_type(); if (eContestAI.scriptResult == gAIScriptPtr[0]) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); @@ -1521,9 +1521,9 @@ static void ContestAICmd_unk_6E(void) gAIScriptPtr += 5; } -static void ContestAICmd_unk_6F(void) +static void ContestAICmd_if_used_moves_effect_type_not_eq(void) { - ContestAICmd_unk_6D(); + ContestAICmd_get_used_moves_effect_type(); if (eContestAI.scriptResult != gAIScriptPtr[0]) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); @@ -1531,119 +1531,128 @@ static void ContestAICmd_unk_6F(void) gAIScriptPtr += 5; } -static void ContestAICmd_unk_70(void) +static void ContestAICmd_save_result(void) { - eContestAI.scriptArr[gAIScriptPtr[1]] = eContestAI.scriptResult; + eContestAI.vars[gAIScriptPtr[1]] = eContestAI.scriptResult; gAIScriptPtr += 2; } -static void ContestAICmd_unk_71(void) +static void ContestAICmd_setvar(void) { - eContestAI.scriptArr[gAIScriptPtr[1]] = T1_READ_16(gAIScriptPtr + 2); + eContestAI.vars[gAIScriptPtr[1]] = T1_READ_16(gAIScriptPtr + 2); gAIScriptPtr += 4; } -static void ContestAICmd_unk_72(void) +static void ContestAICmd_add(void) { // wtf? shouldn't T1_READ_16 work here? why the signed 8 load by gAIScriptPtr[2]? - eContestAI.scriptArr[gAIScriptPtr[1]] += ((s8)gAIScriptPtr[2] | gAIScriptPtr[3] << 8); + eContestAI.vars[gAIScriptPtr[1]] += ((s8)gAIScriptPtr[2] | gAIScriptPtr[3] << 8); gAIScriptPtr += 4; } -static void ContestAICmd_unk_73(void) +static void ContestAICmd_addvar(void) { - eContestAI.scriptArr[gAIScriptPtr[1]] += eContestAI.scriptArr[gAIScriptPtr[2]]; + eContestAI.vars[gAIScriptPtr[1]] += eContestAI.vars[gAIScriptPtr[2]]; gAIScriptPtr += 3; } -static void ContestAICmd_unk_74(void) +static void ContestAICmd_addvar_duplicate(void) { - eContestAI.scriptArr[gAIScriptPtr[1]] += eContestAI.scriptArr[gAIScriptPtr[2]]; + eContestAI.vars[gAIScriptPtr[1]] += eContestAI.vars[gAIScriptPtr[2]]; gAIScriptPtr += 3; } -static void ContestAICmd_unk_75(void) +static void ContestAICmd_if_less_than(void) { - if (eContestAI.scriptArr[gAIScriptPtr[1]] < T1_READ_16(gAIScriptPtr + 2)) + if (eContestAI.vars[gAIScriptPtr[1]] < T1_READ_16(gAIScriptPtr + 2)) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 4); else gAIScriptPtr += 8; } -static void ContestAICmd_unk_76(void) +static void ContestAICmd_if_greater_than(void) { - if (eContestAI.scriptArr[gAIScriptPtr[1]] > T1_READ_16(gAIScriptPtr + 2)) + if (eContestAI.vars[gAIScriptPtr[1]] > T1_READ_16(gAIScriptPtr + 2)) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 4); else gAIScriptPtr += 8; } -static void ContestAICmd_unk_77(void) +static void ContestAICmd_if_eq(void) { - if (eContestAI.scriptArr[gAIScriptPtr[1]] == T1_READ_16(gAIScriptPtr + 2)) + if (eContestAI.vars[gAIScriptPtr[1]] == T1_READ_16(gAIScriptPtr + 2)) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 4); else gAIScriptPtr += 8; } -static void ContestAICmd_unk_78(void) +static void ContestAICmd_if_not_eq(void) { - if (eContestAI.scriptArr[gAIScriptPtr[1]] != T1_READ_16(gAIScriptPtr + 2)) + if (eContestAI.vars[gAIScriptPtr[1]] != T1_READ_16(gAIScriptPtr + 2)) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 4); else gAIScriptPtr += 8; } -static void ContestAICmd_unk_79(void) +static void ContestAICmd_if_less_than_var(void) { - if (eContestAI.scriptArr[gAIScriptPtr[1]] < (eContestAI.scriptArr[gAIScriptPtr[2]])) + if (eContestAI.vars[gAIScriptPtr[1]] < (eContestAI.vars[gAIScriptPtr[2]])) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 3); else gAIScriptPtr += 7; } -static void ContestAICmd_unk_7A(void) +static void ContestAICmd_if_greater_than_var(void) { - if (eContestAI.scriptArr[gAIScriptPtr[1]] > (eContestAI.scriptArr[gAIScriptPtr[2]])) + if (eContestAI.vars[gAIScriptPtr[1]] > (eContestAI.vars[gAIScriptPtr[2]])) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 3); else gAIScriptPtr += 7; } -static void ContestAICmd_unk_7B(void) +static void ContestAICmd_if_eq_var(void) { - if (eContestAI.scriptArr[gAIScriptPtr[1]] == (eContestAI.scriptArr[gAIScriptPtr[2]])) + if (eContestAI.vars[gAIScriptPtr[1]] == (eContestAI.vars[gAIScriptPtr[2]])) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 3); else gAIScriptPtr += 7; } -static void ContestAICmd_unk_7C(void) +static void ContestAICmd_if_not_eq_var(void) { - if (eContestAI.scriptArr[gAIScriptPtr[1]] != (eContestAI.scriptArr[gAIScriptPtr[2]])) + if (eContestAI.vars[gAIScriptPtr[1]] != (eContestAI.vars[gAIScriptPtr[2]])) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 3); else gAIScriptPtr += 7; } -static void ContestAICmd_if_random(void) +// UB: Should just be comparing to gAIScriptPtr[1] in the functions below +// With the values passed to if_random_less_than this goes way OOB on vars +static void ContestAICmd_if_random_less_than(void) { - if ((Random() & 0xFF) < eContestAI.scriptArr[gAIScriptPtr[1]]) +#ifndef UBFIX + if ((Random() & 0xFF) < eContestAI.vars[gAIScriptPtr[1]]) +#else + if ((Random() & 0xFF) < gAIScriptPtr[1]) +#endif gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2); else gAIScriptPtr += 6; } -static void ContestAICmd_unk_7E(void) +static void ContestAICmd_if_random_greater_than(void) { - if ((Random() & 0xFF) > eContestAI.scriptArr[gAIScriptPtr[1]]) +#ifndef UBFIX + if (((Random()) & 0xFF) > eContestAI.vars[gAIScriptPtr[1]]) +#else + if (((Random()) & 0xFF) > gAIScriptPtr[1]) +#endif gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2); else gAIScriptPtr += 6; } -// jump -static void ContestAICmd_jump(void) +static void ContestAICmd_goto(void) { gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); } @@ -1704,7 +1713,7 @@ static void ContestAICmd_if_user_has_exciting_move(void) { ContestAICmd_check_user_has_exciting_move(); - if (eContestAI.scriptResult != 0) + if (eContestAI.scriptResult) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0); else gAIScriptPtr += 4; @@ -1714,37 +1723,37 @@ static void ContestAICmd_if_user_doesnt_have_exciting_move(void) { ContestAICmd_check_user_has_exciting_move(); - if (eContestAI.scriptResult == 0) + if (!eContestAI.scriptResult) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0); else gAIScriptPtr += 4; } -static void ContestAICmd_unk_85(void) +static void ContestAICmd_check_user_has_move(void) { - int result = 0; + int hasMove = FALSE; int i; - u16 arg = T1_READ_16(gAIScriptPtr + 1); + u16 targetMove = T1_READ_16(gAIScriptPtr + 1); for (i = 0; i < MAX_MON_MOVES; i++) { u16 move = gContestMons[eContestAI.contestantId].moves[i]; - if (move == arg) + if (move == targetMove) { - result = 1; + hasMove = TRUE; break; } } - eContestAI.scriptResult = result; + eContestAI.scriptResult = hasMove; gAIScriptPtr += 3; } -static void ContestAICmd_unk_86(void) +static void ContestAICmd_if_user_has_move(void) { - ContestAICmd_unk_85(); + ContestAICmd_check_user_has_move(); - if (eContestAI.scriptResult != 0) + if (eContestAI.scriptResult) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0); else gAIScriptPtr += 4; @@ -1752,9 +1761,9 @@ static void ContestAICmd_unk_86(void) static void ContestAICmd_if_effect_in_user_moveset(void) { - ContestAICmd_unk_85(); + ContestAICmd_check_user_has_move(); - if (eContestAI.scriptResult == 0) + if (!eContestAI.scriptResult) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0); else gAIScriptPtr += 4; diff --git a/src/contest_effect.c b/src/contest_effect.c index 8d1bbb2987..1fe21daaba 100644 --- a/src/contest_effect.c +++ b/src/contest_effect.c @@ -68,7 +68,10 @@ bool8 AreMovesContestCombo(u16 lastMove, u16 nextMove) if (lastMoveComboStarterId == 0) return FALSE; - else if (lastMoveComboStarterId == nextMoveComboMoves[0] || lastMoveComboStarterId == nextMoveComboMoves[1] || lastMoveComboStarterId == nextMoveComboMoves[2] || lastMoveComboStarterId == nextMoveComboMoves[3]) + else if (lastMoveComboStarterId == nextMoveComboMoves[0] + || lastMoveComboStarterId == nextMoveComboMoves[1] + || lastMoveComboStarterId == nextMoveComboMoves[2] + || lastMoveComboStarterId == nextMoveComboMoves[3]) return gComboStarterLookupTable[lastMoveComboStarterId]; else return FALSE; From fbb70b372743fca1c9323e0011a498e672d4707b Mon Sep 17 00:00:00 2001 From: GriffinR Date: Fri, 21 Aug 2020 14:47:55 -0400 Subject: [PATCH 081/101] Document contest AI scripts --- asm/macros/contest_ai_script.inc | 15 +- data/contest_ai_scripts.s | 1091 ++++++++++++++++-------------- include/constants/contest.h | 41 ++ include/contest.h | 6 +- src/contest.c | 4 +- src/contest_ai.c | 29 +- src/data/contest_moves.h | 96 +-- src/data/contest_opponents.h | 231 ++++--- 8 files changed, 824 insertions(+), 689 deletions(-) diff --git a/asm/macros/contest_ai_script.inc b/asm/macros/contest_ai_script.inc index 7a5d669f4a..9ab7184c3c 100644 --- a/asm/macros/contest_ai_script.inc +++ b/asm/macros/contest_ai_script.inc @@ -510,6 +510,14 @@ .4byte \destination .endm + .macro if_used_combo_starter mon:req, destination:req + if_used_combo_starter_eq \mon, TRUE, \destination + .endm + + .macro if_not_used_combo_starter mon:req, destination:req + if_used_combo_starter_eq \mon, FALSE, \destination + .endm + @ whether the mon can make an appeal .macro check_can_participate mon:req @@ -803,7 +811,7 @@ .4byte \destination .endm - @ NOTE: Random is broken (see ContestAICmd_if_random_less_than) + @ NOTE: The random commands are broken (see ContestAICmd_if_random_less_than) .macro if_random_less_than num:req, destination:req .byte 0x7D .byte \num @@ -844,6 +852,7 @@ .4byte \destination .endm + @ This is used incorrectly to check for an effect; see ContestAICmd_check_user_has_move .macro check_user_has_move move:req .byte 0x85 .2byte \move @@ -855,8 +864,8 @@ .4byte \destination .endm - .macro if_effect_in_user_moveset effect:req, destination:req + .macro if_user_doesnt_have_move move:req, destination:req .byte 0x87 - .2byte \effect + .2byte \move .4byte \destination .endm diff --git a/data/contest_ai_scripts.s b/data/contest_ai_scripts.s index bb8d32f577..e47ccb4c8b 100644 --- a/data/contest_ai_scripts.s +++ b/data/contest_ai_scripts.s @@ -13,848 +13,889 @@ enum MON_4 .align 2 -gContestAIChecks:: @ 82DE350 - .4byte AI_CheckForBadMove @ CONTEST_AI_CHECK_BAD_MOVE - .4byte AI_CheckForCombo @ CONTEST_AI_CHECK_COMBO +gContestAI_ScriptsTable:: @ 82DE350 + .4byte AI_CheckBadMove @ CONTEST_AI_CHECK_BAD_MOVE + .4byte AI_CheckCombo @ CONTEST_AI_CHECK_COMBO .4byte AI_CheckBoring @ CONTEST_AI_CHECK_BORING .4byte AI_CheckExcitement @ CONTEST_AI_CHECK_EXCITEMENT .4byte AI_CheckOrder @ CONTEST_AI_CHECK_ORDER - .4byte AI_CheckForGoodMove @ CONTEST_AI_CHECK_GOOD_MOVE + .4byte AI_CheckGoodMove @ CONTEST_AI_CHECK_GOOD_MOVE .4byte AI_Erratic @ CONTEST_AI_ERRATIC - .4byte AI_Nothing // 0x00000080 - .4byte AI_Nothing // 0x00000100 - .4byte AI_Nothing // 0x00000200 - .4byte AI_Nothing // 0x00000400 - .4byte AI_Nothing // 0x00000800 - .4byte AI_Nothing // 0x00001000 - .4byte AI_Nothing // 0x00002000 - .4byte AI_Nothing // 0x00004000 - .4byte AI_Nothing // 0x00008000 - .4byte AI_Nothing // 0x00010000 - .4byte AI_Nothing // 0x00020000 - .4byte AI_Nothing // 0x00040000 - .4byte AI_Nothing // 0x00080000 - .4byte AI_Nothing // 0x00100000 - .4byte AI_Nothing // 0x00200000 - .4byte AI_Nothing // 0x00400000 - .4byte AI_Nothing // 0x00800000 - .4byte AI_Nothing // 0x01000000 - .4byte AI_Nothing // 0x02000000 - .4byte AI_Nothing // 0x04000000 - .4byte AI_Nothing // 0x08000000 - .4byte AI_Nothing // 0x10000000 - .4byte AI_Nothing // 0x20000000 - .4byte AI_Nothing // 0x40000000 - .4byte AI_Nothing // 0x80000000 + .4byte AI_Nothing @ CONTEST_AI_DUMMY_1 + .4byte AI_Nothing @ CONTEST_AI_DUMMY_2 + .4byte AI_Nothing @ CONTEST_AI_DUMMY_3 + .4byte AI_Nothing @ CONTEST_AI_DUMMY_4 + .4byte AI_Nothing @ CONTEST_AI_DUMMY_5 + .4byte AI_Nothing @ CONTEST_AI_DUMMY_6 + .4byte AI_Nothing @ CONTEST_AI_DUMMY_7 + .4byte AI_Nothing @ CONTEST_AI_DUMMY_8 + .4byte AI_Nothing @ CONTEST_AI_DUMMY_9 + .4byte AI_Nothing @ CONTEST_AI_DUMMY_10 + .4byte AI_Nothing @ CONTEST_AI_DUMMY_11 + .4byte AI_Nothing @ CONTEST_AI_DUMMY_12 + .4byte AI_Nothing @ CONTEST_AI_DUMMY_13 + .4byte AI_Nothing @ CONTEST_AI_DUMMY_14 + .4byte AI_Nothing @ CONTEST_AI_DUMMY_15 + .4byte AI_Nothing @ CONTEST_AI_DUMMY_16 + .4byte AI_Nothing @ CONTEST_AI_DUMMY_17 + .4byte AI_Nothing @ CONTEST_AI_DUMMY_18 + .4byte AI_Nothing @ CONTEST_AI_DUMMY_19 + .4byte AI_Nothing @ CONTEST_AI_DUMMY_20 + .4byte AI_Nothing @ CONTEST_AI_DUMMY_21 + .4byte AI_Nothing @ CONTEST_AI_DUMMY_22 + .4byte AI_Nothing @ CONTEST_AI_DUMMY_23 + .4byte AI_Nothing @ CONTEST_AI_DUMMY_24 + .4byte AI_Nothing @ CONTEST_AI_DUMMY_25 -@ Unreferenced AI routine to encourage moves that improve condition on the first -@ appeal. Additionally, it checks the turn order of the user and the effect -@ type, but the code is buggy and doesn't affect the score. - if_appeal_num_not_eq 0, ContestUnreferenced_80 - if_effect_not_eq CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, ContestUnreferenced_80 +@ Unused. Encourages improving condition on the 1st appeal, or startling mons if the users turn is later +AI_CheckTiming: + if_appeal_num_not_eq 0, AI_CheckTiming_SkipCondition + if_effect_not_eq CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, AI_CheckTiming_SkipCondition score +10 -ContestUnreferenced_80: - call ContestUnreferenced_0D +AI_CheckTiming_SkipCondition: + call AI_CheckTiming_TryStartle end -ContestUnreferenced_0D: - if_user_order_more_than MON_2, ContestUnreferenced_end - if_effect_type_not_eq 2, ContestUnreferenced_end - if_effect_type_not_eq 3, ContestUnreferenced_end - score +10 @ unreachable -ContestUnreferenced_end: +AI_CheckTiming_TryStartle: + if_user_order_more_than MON_2, AI_CheckTiming_End + if_effect_type_not_eq CONTEST_EFFECT_TYPE_STARTLE_MON, AI_CheckTiming_End + if_effect_type_not_eq CONTEST_EFFECT_TYPE_STARTLE_MONS, AI_CheckTiming_End + score +10 +AI_CheckTiming_End: end -@ Unreferenced AI routine that doesn't make much sense. - if_appeal_num_eq 0, ContestUnreferenced_0F_1 - if_appeal_num_eq 1, ContestUnreferenced_0F_2 - if_appeal_num_eq 2, ContestUnreferenced_0F_3 - if_appeal_num_eq 3, ContestUnreferenced_0F_4 - if_last_appeal ContestUnreferenced_0F_5 +@ Unused, doesnt make much sense +@ Encourages using an avoid being startled move +@ The various appeal and turn checks are pointless, it will always encourage these moves +AI_AvoidStartle: + if_appeal_num_eq 0, AI_AvoidStartle_1stAppeal + if_appeal_num_eq 1, AI_AvoidStartle_2ndAppeal + if_appeal_num_eq 2, AI_AvoidStartle_3rdAppeal + if_appeal_num_eq 3, AI_AvoidStartle_4thAppeal + if_last_appeal AI_AvoidStartle_LastAppeal end -ContestUnreferenced_0F_1: - if_user_order_not_eq MON_1, ContestUnreferenced_2B_1 - if_user_order_not_eq MON_2, ContestUnreferenced_2B_2 - if_user_order_not_eq MON_3, ContestUnreferenced_2B_1 - if_user_order_not_eq MON_4, ContestUnreferenced_2B_1 +AI_AvoidStartle_1stAppeal: + if_user_order_not_eq MON_1, AI_AvoidStartle_EncourageIfAvoidMove + if_user_order_not_eq MON_2, AI_AvoidStartle_EncourageIfAvoidMove2 + if_user_order_not_eq MON_3, AI_AvoidStartle_EncourageIfAvoidMove + if_user_order_not_eq MON_4, AI_AvoidStartle_EncourageIfAvoidMove end -ContestUnreferenced_2B_1: - if_effect_type_eq 1, ContestUnreferenced_score +AI_AvoidStartle_EncourageIfAvoidMove: + if_effect_type_eq CONTEST_EFFECT_TYPE_AVOID_STARTLE, AI_AvoidStartle_Encourage end -ContestUnreferenced_2B_2: - if_effect_type_eq 1, ContestUnreferenced_score +AI_AvoidStartle_EncourageIfAvoidMove2: + if_effect_type_eq CONTEST_EFFECT_TYPE_AVOID_STARTLE, AI_AvoidStartle_Encourage end - if_effect_type_eq 1, ContestUnreferenced_score +AI_AvoidStartle_EncourageIfAvoidMove3: + if_effect_type_eq CONTEST_EFFECT_TYPE_AVOID_STARTLE, AI_AvoidStartle_Encourage end -ContestUnreferenced_0F_2: - if_user_order_not_eq MON_1, ContestUnreferenced_2B_1 - if_user_order_not_eq MON_2, ContestUnreferenced_2B_1 - if_user_order_not_eq MON_3, ContestUnreferenced_2B_1 - if_user_order_not_eq MON_4, ContestUnreferenced_2B_1 +AI_AvoidStartle_2ndAppeal: + if_user_order_not_eq MON_1, AI_AvoidStartle_EncourageIfAvoidMove + if_user_order_not_eq MON_2, AI_AvoidStartle_EncourageIfAvoidMove + if_user_order_not_eq MON_3, AI_AvoidStartle_EncourageIfAvoidMove + if_user_order_not_eq MON_4, AI_AvoidStartle_EncourageIfAvoidMove end -ContestUnreferenced_0F_3: - if_user_order_not_eq MON_1, ContestUnreferenced_2B_1 - if_user_order_not_eq MON_2, ContestUnreferenced_2B_1 - if_user_order_not_eq MON_3, ContestUnreferenced_2B_1 - if_user_order_not_eq MON_4, ContestUnreferenced_2B_1 +AI_AvoidStartle_3rdAppeal: + if_user_order_not_eq MON_1, AI_AvoidStartle_EncourageIfAvoidMove + if_user_order_not_eq MON_2, AI_AvoidStartle_EncourageIfAvoidMove + if_user_order_not_eq MON_3, AI_AvoidStartle_EncourageIfAvoidMove + if_user_order_not_eq MON_4, AI_AvoidStartle_EncourageIfAvoidMove end -ContestUnreferenced_0F_4: - if_user_order_not_eq MON_1, ContestUnreferenced_2B_1 - if_user_order_not_eq MON_2, ContestUnreferenced_2B_1 - if_user_order_not_eq MON_3, ContestUnreferenced_2B_1 - if_user_order_not_eq MON_4, ContestUnreferenced_2B_1 +AI_AvoidStartle_4thAppeal: + if_user_order_not_eq MON_1, AI_AvoidStartle_EncourageIfAvoidMove + if_user_order_not_eq MON_2, AI_AvoidStartle_EncourageIfAvoidMove + if_user_order_not_eq MON_3, AI_AvoidStartle_EncourageIfAvoidMove + if_user_order_not_eq MON_4, AI_AvoidStartle_EncourageIfAvoidMove end -ContestUnreferenced_0F_5: - if_user_order_not_eq MON_1, ContestUnreferenced_2B_1 - if_user_order_not_eq MON_2, ContestUnreferenced_2B_1 - if_user_order_not_eq MON_3, ContestUnreferenced_2B_1 - if_user_order_not_eq MON_4, ContestUnreferenced_2B_1 +AI_AvoidStartle_LastAppeal: + if_user_order_not_eq MON_1, AI_AvoidStartle_EncourageIfAvoidMove + if_user_order_not_eq MON_2, AI_AvoidStartle_EncourageIfAvoidMove + if_user_order_not_eq MON_3, AI_AvoidStartle_EncourageIfAvoidMove + if_user_order_not_eq MON_4, AI_AvoidStartle_EncourageIfAvoidMove end -ContestUnreferenced_score: - score +10 - end - - end - -@ Unreferenced AI routine to encourage the most appealing move. - if_most_appealing_move ContestUnreferenced_score2 - end -ContestUnreferenced_score2: +AI_AvoidStartle_Encourage: + score +10 + end +AI_AvoidStartle_End: + end + +@ Unused +AI_PreferMostAppealingMove: + if_most_appealing_move AI_PreferMostAppealingMove_Encourage + end +AI_PreferMostAppealingMove_Encourage: score +10 end +@ Discourages using the same move multiple times if it would get boring AI_CheckBoring: if_effect_eq CONTEST_EFFECT_REPETITION_NOT_BORING, AI_CheckBoring_NotBoring - if_move_used_count_eq 1, AI_CheckBoring_FirstRepeat - if_move_used_count_eq 2, AI_CheckBoring_SecondRepeat - if_move_used_count_eq 3, AI_CheckBoring_ThirdRepeat - if_move_used_count_eq 4, AI_CheckBoring_FourthRepeat + if_move_used_count_eq 1, AI_CheckBoring_1stRepeat + if_move_used_count_eq 2, AI_CheckBoring_2ndRepeat + if_move_used_count_eq 3, AI_CheckBoring_3rdRepeat + if_move_used_count_eq 4, AI_CheckBoring_4thRepeat @ No repeats end -AI_CheckBoring_FirstRepeat: +AI_CheckBoring_1stRepeat: score -5 end -AI_CheckBoring_SecondRepeat: +AI_CheckBoring_2ndRepeat: score -15 end -AI_CheckBoring_ThirdRepeat: +AI_CheckBoring_3rdRepeat: score -20 end -AI_CheckBoring_FourthRepeat: +AI_CheckBoring_4thRepeat: score -25 end AI_CheckBoring_NotBoring: end +@ Strongly encourages using an exciting move if user is in a position to receive the max excitement bonus +@ Encourages using exciting moves in general +@ If the user doesnt have a good exciting move to use, then encourage lowering excitement to prevent +@ opponents from benefitting from the excitement AI_CheckExcitement: - if_move_excitement_less_than 0, AI_contest09_081DC2AB - if_move_excitement_eq 0, AI_contest7D_4_081DC2AB - if_move_excitement_eq 1, AI_contest3D_081DC2AB + if_move_excitement_less_than 0, AI_CheckExcitement_Negative + if_move_excitement_eq 0, AI_CheckExcitement_Neutral + if_move_excitement_eq 1, AI_CheckExcitement_Positive end -AI_contest09_081DC2AB: - if_excitement_eq 4, AI_contest0F_1_081DC2AB - if_excitement_eq 3, AI_contest0F_2_081DC2AB - if_user_has_exciting_move AI_end_081DC2AB +AI_CheckExcitement_Negative: + if_excitement_eq 4, AI_CheckExcitement_Negative_1AwayFromMax + if_excitement_eq 3, AI_CheckExcitement_Negative_2AwayFromMax + if_user_has_exciting_move AI_CheckExcitement_End score +15 end -AI_contest0F_1_081DC2AB: - if_user_order_not_eq MON_1, AI_contest7D_1_081DC2AB - if_random_less_than 51, AI_end_081DC2AB +AI_CheckExcitement_Negative_1AwayFromMax: + if_user_order_not_eq MON_1, AI_CheckExcitement_Negative_1AwayFromMax_Not1stUp + if_random_less_than 51, AI_CheckExcitement_End score +20 end -AI_contest7D_1_081DC2AB: - if_random_less_than 127, AI_end_081DC2AB +AI_CheckExcitement_Negative_1AwayFromMax_Not1stUp: + if_random_less_than 127, AI_CheckExcitement_End score -10 end -AI_contest0F_2_081DC2AB: - if_user_order_not_eq MON_1, AI_contest7D_3_081DC2AB - if_last_appeal AI_score_081DC2AB -AI_contest7D_2_081DC2AB: - if_random_less_than 51, AI_end_081DC2AB +AI_CheckExcitement_Negative_2AwayFromMax: + if_user_order_not_eq MON_1, AI_CheckExcitement_Negative_2AwayFromMax_Not1stUp + if_last_appeal AI_CheckExcitement_Negative_2AwayFromMax_LastAppeal + if_random_less_than 51, AI_CheckExcitement_End score +10 end -AI_score_081DC2AB: +AI_CheckExcitement_Negative_2AwayFromMax_LastAppeal: score +15 end -AI_contest7D_3_081DC2AB: - if_random_less_than 127, AI_end_081DC2AB +AI_CheckExcitement_Negative_2AwayFromMax_Not1stUp: + if_random_less_than 127, AI_CheckExcitement_End score +10 end -AI_contest7D_4_081DC2AB: - if_random_less_than 127, AI_end_081DC2AB +AI_CheckExcitement_Neutral: + if_random_less_than 127, AI_CheckExcitement_End score +10 end -AI_contest3D_081DC2AB: - if_move_used_count_more_than 0, AI_contest29_081DC2AB - if_user_order_not_eq MON_1, AI_contest7D_5_081DC2AB - if_excitement_not_eq 4, AI_contest7D_5_081DC2AB +AI_CheckExcitement_Positive: + if_move_used_count_more_than 0, AI_CheckExcitement_Positive_Repeat + if_user_order_not_eq MON_1, AI_CheckExcitement_Positive_Not1stUpForMax + if_excitement_not_eq 4, AI_CheckExcitement_Positive_Not1stUpForMax score +30 end -AI_contest7D_5_081DC2AB: - if_random_less_than 100, AI_end_081DC2AB +AI_CheckExcitement_Positive_Not1stUpForMax: + if_random_less_than 100, AI_CheckExcitement_End score +10 end -AI_contest29_081DC2AB: - if_effect_not_eq CONTEST_EFFECT_REPETITION_NOT_BORING, AI_end_081DC2AB - if_user_order_not_eq MON_1, AI_contest7D_5_081DC2AB - if_excitement_not_eq 4, AI_contest7D_5_081DC2AB +AI_CheckExcitement_Positive_Repeat: + if_effect_not_eq CONTEST_EFFECT_REPETITION_NOT_BORING, AI_CheckExcitement_End + if_user_order_not_eq MON_1, AI_CheckExcitement_Positive_Not1stUpForMax + if_excitement_not_eq 4, AI_CheckExcitement_Positive_Not1stUpForMax score +30 end -AI_end_081DC2AB: +AI_CheckExcitement_End: end -AI_CheckForCombo: - if_would_finish_combo AI_score_081DC348 - call AI_contest3F_081DC348 - call AI_contest45_081DC348 +@ Strongly encourages using a move if it would finish a combo +@ Encourages using a move if it would start a combo, esp if the user goes earlier +@ Discourages starting a combo in the last round +@ Discourages using a combo finisher when its combo starter hasnt been used yet +AI_CheckCombo: + if_would_finish_combo AI_CheckCombo_WouldFinish + call AI_CheckCombo_CheckStarter + call AI_CheckCombo_CheckFinisherWithoutStarter end -AI_contest3F_081DC348: - if_move_used_count_not_eq 0, AI_end_081DC348 - if_not_combo_starter AI_end_081DC348 - if_user_order_eq MON_1, AI_contest04_1_081DC348 - if_user_order_eq MON_2, AI_contest04_2_081DC348 - if_user_order_eq MON_3, AI_contest04_3_081DC348 - if_user_order_eq MON_4, AI_contest04_4_081DC348 +AI_CheckCombo_CheckStarter: + if_move_used_count_not_eq 0, AI_CheckCombo_End + if_not_combo_starter AI_CheckCombo_End + if_user_order_eq MON_1, AI_CheckCombo_Starter1stUp + if_user_order_eq MON_2, AI_CheckCombo_Starter2ndUp + if_user_order_eq MON_3, AI_CheckCombo_Starter3rdUp + if_user_order_eq MON_4, AI_CheckCombo_StarterLast end -AI_contest45_081DC348: - if_not_combo_finisher AI_end_081DC348 +AI_CheckCombo_CheckFinisherWithoutStarter: + if_not_combo_finisher AI_CheckCombo_End score -10 end -AI_score_081DC348: +AI_CheckCombo_WouldFinish: score +25 end -AI_contest04_1_081DC348: - if_last_appeal AI_contest7D_081DC348 - if_random_less_than 150, AI_end_081DC348 +AI_CheckCombo_Starter1stUp: + if_last_appeal AI_CheckCombo_StarterOnLastAppeal + if_random_less_than 150, AI_CheckCombo_End score +10 end -AI_contest04_2_081DC348: - if_last_appeal AI_contest7D_081DC348 - if_random_less_than 125, AI_end_081DC348 +AI_CheckCombo_Starter2ndUp: + if_last_appeal AI_CheckCombo_StarterOnLastAppeal + if_random_less_than 125, AI_CheckCombo_End score +10 end -AI_contest04_3_081DC348: - if_last_appeal AI_contest7D_081DC348 - if_random_less_than 50, AI_end_081DC348 +AI_CheckCombo_Starter3rdUp: + if_last_appeal AI_CheckCombo_StarterOnLastAppeal + if_random_less_than 50, AI_CheckCombo_End score +10 end -AI_contest04_4_081DC348: - if_last_appeal AI_contest7D_081DC348 +AI_CheckCombo_StarterLast: + if_last_appeal AI_CheckCombo_StarterOnLastAppeal score +10 end -AI_contest7D_081DC348: - if_random_less_than 125, AI_end_081DC348 +AI_CheckCombo_StarterOnLastAppeal: + if_random_less_than 125, AI_CheckCombo_End score -15 end -AI_end_081DC348: +AI_CheckCombo_End: end -AI_CheckForGoodMove: - if_effect_eq CONTEST_EFFECT_BETTER_WITH_GOOD_CONDITION, ContestEffect39 - if_effect_eq CONTEST_EFFECT_NEXT_APPEAL_EARLIER, ContestEffect40 - if_effect_eq CONTEST_EFFECT_NEXT_APPEAL_LATER, ContestEffect41 - if_effect_eq CONTEST_EFFECT_REPETITION_NOT_BORING, ContestEffect3 - if_effect_eq CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, ContestEffect38 - if_effect_eq CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, ContestEffect47 - if_effect_eq CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONES, ContestEffect31 - if_effect_eq CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONE, ContestEffect32 - if_effect_eq CONTEST_EFFECT_BETTER_WHEN_AUDIENCE_EXCITED, ContestEffect46 - if_effect_eq CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS, ContestEffect27 - if_effect_eq CONTEST_EFFECT_SHIFT_JUDGE_ATTENTION, ContestEffect16or17 - if_effect_eq CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, ContestEffect16or17 - if_effect_eq CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, ContestEffect_FollowingMonsNervous - if_effect_eq CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN, ContestEffect18 +@ Checks if move should be encouraged based on its effect +AI_CheckGoodMove: + if_effect_eq CONTEST_EFFECT_BETTER_WITH_GOOD_CONDITION, AI_CGM_BetterWithGoodCondition + if_effect_eq CONTEST_EFFECT_NEXT_APPEAL_EARLIER, AI_CGM_NextAppealEarlier + if_effect_eq CONTEST_EFFECT_NEXT_APPEAL_LATER, AI_CGM_NextAppealLater + if_effect_eq CONTEST_EFFECT_REPETITION_NOT_BORING, AI_CGM_RepetitionNotBoring + if_effect_eq CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, AI_CGM_ImproveCondition + if_effect_eq CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, AI_CGM_DontExciteAudience + if_effect_eq CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONES, AI_CGM_AppealAsGoodAsPrevOnes + if_effect_eq CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONE, AI_CGM_AppealAsGoodAsPrevOne + if_effect_eq CONTEST_EFFECT_BETTER_WHEN_AUDIENCE_EXCITED, AI_CGM_BetterWhenAudienceExcited + if_effect_eq CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS, AI_CGM_WorsenConditionOfPrevMons + if_effect_eq CONTEST_EFFECT_SHIFT_JUDGE_ATTENTION, AI_CGM_TargetMonWithJudgesAttention + if_effect_eq CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, AI_CGM_TargetMonWithJudgesAttention + if_effect_eq CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, AI_CGM_MakeFollowingMonsNervous + if_effect_eq CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN, AI_CGM_JamsOthersButMissOneTurn end -ContestEffect39: - if_user_condition_eq 3, ContestEffect39_score1 - if_user_condition_eq 2, ContestEffect39_score2 - if_user_condition_eq 1, ContestEffect39_score3 - if_user_condition_eq 0, ContestEffect39_score4 +AI_CGM_BetterWithGoodCondition: + if_user_condition_eq 3, AI_CGM_BetterWithGoodCondition_3 + if_user_condition_eq 2, AI_CGM_BetterWithGoodCondition_2 + if_user_condition_eq 1, AI_CGM_BetterWithGoodCondition_1 + if_user_condition_eq 0, AI_CGM_BetterWithGoodCondition_0 end -ContestEffect39_score1: +AI_CGM_BetterWithGoodCondition_3: score +20 end -ContestEffect39_score2: - if_random_less_than 125, ContestEffectEnd +AI_CGM_BetterWithGoodCondition_2: + if_random_less_than 125, AI_CGM_End score +15 end -ContestEffect39_score3: - if_random_less_than 125, ContestEffectEnd +AI_CGM_BetterWithGoodCondition_1: + if_random_less_than 125, AI_CGM_End score +5 end -ContestEffect39_score4: +AI_CGM_BetterWithGoodCondition_0: score -20 end -ContestEffect40: - if_effect_in_user_moveset CONTEST_EFFECT_BETTER_IF_FIRST, ContestEffectEnd - if_random_less_than 50, ContestEffectEnd +AI_CGM_NextAppealEarlier: + if_user_doesnt_have_move CONTEST_EFFECT_BETTER_IF_FIRST, AI_CGM_End + if_random_less_than 50, AI_CGM_End score +20 end -ContestEffect41: - if_effect_in_user_moveset CONTEST_EFFECT_BETTER_IF_LAST, ContestEffectEnd - if_random_less_than 50, ContestEffectEnd +AI_CGM_NextAppealLater: + if_user_doesnt_have_move CONTEST_EFFECT_BETTER_IF_LAST, AI_CGM_End + if_random_less_than 50, AI_CGM_End score +20 end -ContestEffect3: - if_user_order_not_eq MON_4, ContestEffectEnd - if_random_less_than 50, ContestEffectEnd +AI_CGM_RepetitionNotBoring: + if_user_order_not_eq MON_4, AI_CGM_End + if_random_less_than 50, AI_CGM_End score +15 end - if_last_appeal ContestEffect3_7D - if_random_less_than 220, ContestEffect3_score + +AI_CGM_Unused: + if_last_appeal AI_CGM_Unused_LastAppeal + if_random_less_than 220, AI_CGM_Unused_Discourage score +10 end -ContestEffect3_7D: - if_random_less_than 20, ContestEffectEnd +AI_CGM_Unused_LastAppeal: + if_random_less_than 20, AI_CGM_End score +15 end -ContestEffect3_score: +AI_CGM_Unused_Discourage: score -20 end -ContestEffect38: - if_effect_in_user_moveset CONTEST_EFFECT_BETTER_WITH_GOOD_CONDITION, ContestEffect38_contest04 - if_user_condition_eq 3, ContestEffect38_score1 - if_random_less_than 50, ContestEffectEnd +@ Enourages improving condition, esp if user has moves better with good condition or on 1st appeal +@ Discourages improving condition if at max condition, or if last appeal +AI_CGM_ImproveCondition: + if_user_doesnt_have_move CONTEST_EFFECT_BETTER_WITH_GOOD_CONDITION, AI_CGM_ImproveCondition_CheckAppealNum + if_user_condition_eq 3, AI_CGM_ImproveCondition_AtMax + if_random_less_than 50, AI_CGM_End score +15 end -ContestEffect38_score1: +AI_CGM_ImproveCondition_AtMax: score -10 end -ContestEffect38_contest04: - if_last_appeal ContestEffect38_score2 - if_appeal_num_eq 0, ContestEffect38_random - if_move_used_count_eq 1, ContestEffectEnd - if_random_less_than 125, ContestEffectEnd +AI_CGM_ImproveCondition_CheckAppealNum: + if_last_appeal AI_CGM_ImproveCondition_LastAppeal + if_appeal_num_eq 0, AI_CGM_ImproveCondition_FirstAppeal + if_move_used_count_eq 1, AI_CGM_End + if_random_less_than 125, AI_CGM_End score +10 end -ContestEffect38_random: - if_random_less_than 100, ContestEffectEnd +AI_CGM_ImproveCondition_FirstAppeal: + if_random_less_than 100, AI_CGM_End score +10 end -ContestEffect38_score2: +AI_CGM_ImproveCondition_LastAppeal: score -10 end -ContestEffect47: - if_move_used_count_eq 1, ContestEffectEnd - if_user_order_eq MON_1, ContestEffect47_random - if_user_order_eq MON_2, ContestEffect47_random - if_not_last_appeal ContestEffectEnd - if_user_has_exciting_move ContestEffectEnd - if_excitement_less_than 1, ContestEffectEnd +@ Encourage stopping audience excitement early in the appeal, or last appeal if no better options +AI_CGM_DontExciteAudience: + if_move_used_count_eq 1, AI_CGM_End + if_user_order_eq MON_1, AI_CGM_DontExciteAudience_EarlyTurn + if_user_order_eq MON_2, AI_CGM_DontExciteAudience_EarlyTurn + if_not_last_appeal AI_CGM_End + if_user_has_exciting_move AI_CGM_End + if_excitement_less_than 1, AI_CGM_End score +10 end -ContestEffect47_random: - if_random_less_than 127, ContestEffectEnd +AI_CGM_DontExciteAudience_EarlyTurn: + if_random_less_than 127, AI_CGM_End score +10 end -ContestEffect31: - if_user_order_eq MON_2, ContestEffect31_score1 - if_user_order_eq MON_3, ContestEffect31_score2 - if_user_order_eq MON_4, ContestEffect31_score3 +@ Encourages move the later the user goes +AI_CGM_AppealAsGoodAsPrevOnes: + if_user_order_eq MON_2, AI_CGM_AppealAsGoodAsPrevOnes_2ndUp + if_user_order_eq MON_3, AI_CGM_AppealAsGoodAsPrevOnes_3rdUp + if_user_order_eq MON_4, AI_CGM_AppealAsGoodAsPrevOnes_Last end -ContestEffect31_score1: +AI_CGM_AppealAsGoodAsPrevOnes_2ndUp: score +5 end -ContestEffect31_score2: +AI_CGM_AppealAsGoodAsPrevOnes_3rdUp: score +15 end -ContestEffect31_score3: +AI_CGM_AppealAsGoodAsPrevOnes_Last: score +20 end -ContestEffect32: - if_user_order_eq MON_1, ContestEffect32_score1 - if_user_order_eq MON_2, ContestEffect32_score2 - if_user_order_eq MON_3, ContestEffect32_score3 - if_user_order_eq MON_4, ContestEffect32_score5 +@ Encourages move more for each opponent who will have a turn before the user +AI_CGM_AppealAsGoodAsPrevOne: + if_user_order_eq MON_1, AI_CGM_AppealAsGoodAsPrevOne_1stUp + if_user_order_eq MON_2, AI_CGM_AppealAsGoodAsPrevOne_2ndUp + if_user_order_eq MON_3, AI_CGM_AppealAsGoodAsPrevOne_3rdUp + if_user_order_eq MON_4, AI_CGM_AppealAsGoodAsPrevOne_Last end -ContestEffect32_score1: +AI_CGM_AppealAsGoodAsPrevOne_1stUp: score -10 end -ContestEffect32_score2: - if_cannot_participate MON_1, ContestEffectEnd +AI_CGM_AppealAsGoodAsPrevOne_2ndUp: + if_cannot_participate MON_1, AI_CGM_End score +5 end -ContestEffect32_score3: - if_cannot_participate MON_1, ContestEffect32_score4 +AI_CGM_AppealAsGoodAsPrevOne_3rdUp: + if_cannot_participate MON_1, AI_CGM_AppealAsGoodAsPrevOne_3rdUp_CheckMon2 score +5 - goto ContestEffect32_score4 + goto AI_CGM_AppealAsGoodAsPrevOne_3rdUp_CheckMon2 end -ContestEffect32_score4: - if_cannot_participate MON_2, ContestEffectEnd +AI_CGM_AppealAsGoodAsPrevOne_3rdUp_CheckMon2: + if_cannot_participate MON_2, AI_CGM_End score +5 end -ContestEffect32_score5: - if_cannot_participate MON_1, ContestEffect32_score6 +AI_CGM_AppealAsGoodAsPrevOne_Last: + if_cannot_participate MON_1, AI_CGM_AppealAsGoodAsPrevOne_Last_CheckMon2 score +5 - goto ContestEffect32_score6 + goto AI_CGM_AppealAsGoodAsPrevOne_Last_CheckMon2 end -ContestEffect32_score6: - if_cannot_participate MON_2, ContestEffect32_score7 +AI_CGM_AppealAsGoodAsPrevOne_Last_CheckMon2: + if_cannot_participate MON_2, AI_CGM_AppealAsGoodAsPrevOne_Last_CheckMon3 score +5 - goto ContestEffect32_score7 + goto AI_CGM_AppealAsGoodAsPrevOne_Last_CheckMon3 end -ContestEffect32_score7: - if_cannot_participate MON_3, ContestEffectEnd +AI_CGM_AppealAsGoodAsPrevOne_Last_CheckMon3: + if_cannot_participate MON_3, AI_CGM_End score +5 end -ContestEffect46: - if_user_order_eq MON_1, ContestEffect46_05 - if_user_order_more_than MON_1, ContestEffect46_score4 +@ Encourage move if audience is close to full exictement and user goes first +@ See bug note, only does this on 1st appeal (when it will never happen) +AI_CGM_BetterWhenAudienceExcited: + if_user_order_eq MON_1, AI_CGM_BetterWhenAudienceExcited_1stUp + if_user_order_more_than MON_1, AI_CGM_BetterWhenAudienceExcited_Not1stUp end -ContestEffect46_05: - if_appeal_num_not_eq 0, ContestEffect46_score1 - if_excitement_eq 4, ContestEffect46_score2 - if_excitement_eq 3, ContestEffect46_score3 +AI_CGM_BetterWhenAudienceExcited_1stUp: + @ BUG: Should be if_appeal_num_eq 0 + @ 1st up on 1st appeal excitement will always be 0 + if_appeal_num_not_eq 0, AI_CGM_BetterWhenAudienceExcited_Not1stAppeal + if_excitement_eq 4, AI_CGM_BetterWhenAudienceExcited_1AwayFromMax + if_excitement_eq 3, AI_CGM_BetterWhenAudienceExcited_2AwayFromMax end -ContestEffect46_score1: - if_random_less_than 125, ContestEffectEnd +AI_CGM_BetterWhenAudienceExcited_Not1stAppeal: + if_random_less_than 125, AI_CGM_End score -15 end -ContestEffect46_score2: - if_random_less_than 125, ContestEffectEnd +AI_CGM_BetterWhenAudienceExcited_1AwayFromMax: + if_random_less_than 125, AI_CGM_End score +20 end -ContestEffect46_score3: - if_random_less_than 125, ContestEffectEnd +AI_CGM_BetterWhenAudienceExcited_2AwayFromMax: + if_random_less_than 125, AI_CGM_End score +15 end -ContestEffect46_score4: - if_random_less_than 178, ContestEffectEnd +AI_CGM_BetterWhenAudienceExcited_Not1stUp: + if_random_less_than 178, AI_CGM_End score +10 end -ContestEffect27: - if_user_order_eq MON_1, ContestEffectEnd - goto ContestEffect27_55_1 +@ Encourage move more for each condition star the prev mons have +AI_CGM_WorsenConditionOfPrevMons: + if_user_order_eq MON_1, AI_CGM_End + goto AI_CGM_WorsenConditionOfPrevMons_CheckMon1 end -ContestEffect27_55_1: - if_cannot_participate MON_1, ContestEffect27_noscore - if_condition_eq MON_1, 0, ContestEffect27_noscore - if_condition_eq MON_1, 1, ContestEffect27_score1 - if_condition_eq MON_1, 2, ContestEffect27_score2 - if_condition_eq MON_1, 3, ContestEffect27_score3 +AI_CGM_WorsenConditionOfPrevMons_CheckMon1: + if_cannot_participate MON_1, AI_CGM_WorsenConditionOfPrevMons_TryCheckMon2 + if_condition_eq MON_1, 0, AI_CGM_WorsenConditionOfPrevMons_TryCheckMon2 + if_condition_eq MON_1, 1, AI_CGM_WorsenConditionOfPrevMons_Mon1Has1Star + if_condition_eq MON_1, 2, AI_CGM_WorsenConditionOfPrevMons_Mon1Has2Stars + if_condition_eq MON_1, 3, AI_CGM_WorsenConditionOfPrevMons_Mon1Has3Stars end -ContestEffect27_score1: - if_random_less_than 125, ContestEffect27_55_2 +AI_CGM_WorsenConditionOfPrevMons_Mon1Has1Star: + if_random_less_than 125, AI_CGM_WorsenConditionOfPrevMons_CheckMon2 score +5 - if_user_order_more_than MON_2, ContestEffect27_55_2 + if_user_order_more_than MON_2, AI_CGM_WorsenConditionOfPrevMons_CheckMon2 end -ContestEffect27_score2: - if_random_less_than 125, ContestEffect27_55_2 +AI_CGM_WorsenConditionOfPrevMons_Mon1Has2Stars: + if_random_less_than 125, AI_CGM_WorsenConditionOfPrevMons_CheckMon2 score +10 - if_user_order_more_than MON_2, ContestEffect27_55_2 + if_user_order_more_than MON_2, AI_CGM_WorsenConditionOfPrevMons_CheckMon2 end -ContestEffect27_score3: - if_random_less_than 125, ContestEffect27_55_2 +AI_CGM_WorsenConditionOfPrevMons_Mon1Has3Stars: + if_random_less_than 125, AI_CGM_WorsenConditionOfPrevMons_CheckMon2 score +15 - if_user_order_more_than MON_2, ContestEffect27_55_2 + if_user_order_more_than MON_2, AI_CGM_WorsenConditionOfPrevMons_CheckMon2 end -ContestEffect27_noscore: - if_user_order_more_than MON_2, ContestEffect27_55_2 +AI_CGM_WorsenConditionOfPrevMons_TryCheckMon2: + if_user_order_more_than MON_2, AI_CGM_WorsenConditionOfPrevMons_CheckMon2 end -ContestEffect27_55_2: - if_cannot_participate MON_2, ContestEffect27_noscore2 - if_condition_eq MON_2, 0, ContestEffect27_noscore2 - if_condition_eq MON_2, 1, ContestEffect27_score4 - if_condition_eq MON_2, 2, ContestEffect27_score5 - if_condition_eq MON_2, 3, ContestEffect27_score6 +AI_CGM_WorsenConditionOfPrevMons_CheckMon2: + if_cannot_participate MON_2, AI_CGM_WorsenConditionOfPrevMons_TryCheckMon3 + if_condition_eq MON_2, 0, AI_CGM_WorsenConditionOfPrevMons_TryCheckMon3 + if_condition_eq MON_2, 1, AI_CGM_WorsenConditionOfPrevMons_Mon2Has1Star + if_condition_eq MON_2, 2, AI_CGM_WorsenConditionOfPrevMons_Mon2Has2Stars + if_condition_eq MON_2, 3, AI_CGM_WorsenConditionOfPrevMons_Mon2Has3Stars end -ContestEffect27_score4: - if_random_less_than 125, ContestEffect27_55_3 +AI_CGM_WorsenConditionOfPrevMons_Mon2Has1Star: + if_random_less_than 125, AI_CGM_WorsenConditionOfPrevMons_CheckMon3 score +5 - if_user_order_more_than MON_3, ContestEffect27_55_3 + if_user_order_more_than MON_3, AI_CGM_WorsenConditionOfPrevMons_CheckMon3 end -ContestEffect27_score5: - if_random_less_than 125, ContestEffect27_55_3 +AI_CGM_WorsenConditionOfPrevMons_Mon2Has2Stars: + if_random_less_than 125, AI_CGM_WorsenConditionOfPrevMons_CheckMon3 score +10 - if_user_order_more_than MON_3, ContestEffect27_55_3 + if_user_order_more_than MON_3, AI_CGM_WorsenConditionOfPrevMons_CheckMon3 end -ContestEffect27_score6: - if_random_less_than 125, ContestEffect27_55_3 +AI_CGM_WorsenConditionOfPrevMons_Mon2Has3Stars: + if_random_less_than 125, AI_CGM_WorsenConditionOfPrevMons_CheckMon3 score +15 - if_user_order_more_than MON_3, ContestEffect27_55_3 + if_user_order_more_than MON_3, AI_CGM_WorsenConditionOfPrevMons_CheckMon3 end -ContestEffect27_noscore2: - if_user_order_more_than MON_3, ContestEffect27_55_3 +AI_CGM_WorsenConditionOfPrevMons_TryCheckMon3: + if_user_order_more_than MON_3, AI_CGM_WorsenConditionOfPrevMons_CheckMon3 end -ContestEffect27_55_3: - if_cannot_participate MON_3, ContestEffect27_end - if_condition_eq MON_3, 0, ContestEffect27_end - if_condition_eq MON_3, 1, ContestEffect27_score7 - if_condition_eq MON_3, 2, ContestEffect27_score8 - if_condition_eq MON_3, 3, ContestEffect27_score9 +AI_CGM_WorsenConditionOfPrevMons_CheckMon3: + if_cannot_participate MON_3, AI_CGM_WorsenConditionOfPrevMons_end + if_condition_eq MON_3, 0, AI_CGM_WorsenConditionOfPrevMons_end + if_condition_eq MON_3, 1, AI_CGM_WorsenConditionOfPrevMons_Mon3Has1Star + if_condition_eq MON_3, 2, AI_CGM_WorsenConditionOfPrevMons_Mon3Has2Stars + if_condition_eq MON_3, 3, AI_CGM_WorsenConditionOfPrevMons_Mon3Has3Stars end -ContestEffect27_score7: - if_random_less_than 125, ContestEffectEnd +AI_CGM_WorsenConditionOfPrevMons_Mon3Has1Star: + if_random_less_than 125, AI_CGM_End score +5 end -ContestEffect27_score8: - if_random_less_than 125, ContestEffectEnd +AI_CGM_WorsenConditionOfPrevMons_Mon3Has2Stars: + if_random_less_than 125, AI_CGM_End score +10 end -ContestEffect27_score9: - if_random_less_than 125, ContestEffectEnd +AI_CGM_WorsenConditionOfPrevMons_Mon3Has3Stars: + if_random_less_than 125, AI_CGM_End score +15 end -ContestEffect27_end: +AI_CGM_WorsenConditionOfPrevMons_end: end -ContestEffect16or17: - if_user_order_eq MON_1, ContestEffectEnd - goto ContestEffect16or17_55 +@ Encourage if a prev mon has started a combo, esp if they havent completed it yet +@ BUG: Incorrectly uses if_used_combo_starter below, instead of if_not_used_combo_starter +@ As a result it encourages move if a prev mon has not begun a combo +AI_CGM_TargetMonWithJudgesAttention: + if_user_order_eq MON_1, AI_CGM_End + goto AI_CGM_TargetMonWithJudgesAttention_CheckMon1 end -ContestEffect16or17_55: - if_cannot_participate MON_1, ContestEffect16or17_0E_1 - if_used_combo_starter_eq MON_1, TRUE, ContestEffect16or17_0E_1 - if_random_less_than 125, ContestEffect16or17_0E_1 +AI_CGM_TargetMonWithJudgesAttention_CheckMon1: + if_cannot_participate MON_1, AI_CGM_TargetMonWithJudgesAttention_CheckMon2 + if_used_combo_starter MON_1, AI_CGM_TargetMonWithJudgesAttention_CheckMon2 + if_random_less_than 125, AI_CGM_TargetMonWithJudgesAttention_CheckMon2 score +2 - if_not_completed_combo MON_1, ContestEffect16or17_0E_1 + if_not_completed_combo MON_1, AI_CGM_TargetMonWithJudgesAttention_CheckMon2 score +8 end -ContestEffect16or17_0E_1: - if_user_order_eq MON_2, ContestEffectEnd - if_cannot_participate MON_2, ContestEffect16or17_0E_2 - if_used_combo_starter_eq MON_2, TRUE, ContestEffect16or17_0E_2 - if_random_less_than 125, ContestEffect16or17_0E_2 +AI_CGM_TargetMonWithJudgesAttention_CheckMon2: + if_user_order_eq MON_2, AI_CGM_End + if_cannot_participate MON_2, AI_CGM_TargetMonWithJudgesAttention_CheckMon3 + if_used_combo_starter MON_2, AI_CGM_TargetMonWithJudgesAttention_CheckMon3 + if_random_less_than 125, AI_CGM_TargetMonWithJudgesAttention_CheckMon3 score +2 - if_not_completed_combo MON_2, ContestEffect16or17_0E_2 + if_not_completed_combo MON_2, AI_CGM_TargetMonWithJudgesAttention_CheckMon3 score +8 end -ContestEffect16or17_0E_2: - if_user_order_eq MON_3, ContestEffectEnd - if_cannot_participate MON_3, ContestEffectEnd - if_used_combo_starter_eq MON_3, TRUE, ContestEffectEnd - if_random_less_than 125, ContestEffectEnd +AI_CGM_TargetMonWithJudgesAttention_CheckMon3: + if_user_order_eq MON_3, AI_CGM_End + if_cannot_participate MON_3, AI_CGM_End + if_used_combo_starter MON_3, AI_CGM_End + if_random_less_than 125, AI_CGM_End score +2 - if_not_completed_combo MON_3, ContestEffectEnd + if_not_completed_combo MON_3, AI_CGM_End score +8 end -ContestEffect_FollowingMonsNervous: - if_user_order_eq MON_4, ContestEffectEnd - goto ContestEffect_FollowingMonsNervous_CheckMon4 +@ Encourage making mons nervous that have started a combo and can appeal after the user +AI_CGM_MakeFollowingMonsNervous: + if_user_order_eq MON_4, AI_CGM_End + goto AI_CGM_MakeFollowingMonsNervous_CheckMon4 end -ContestEffect_FollowingMonsNervous_CheckMon4: - if_cannot_participate MON_4, ContestEffect_FollowingMonsNervous_CheckMon3 - if_used_combo_starter_eq MON_4, FALSE, ContestEffect_FollowingMonsNervous_CheckMon3 +AI_CGM_MakeFollowingMonsNervous_CheckMon4: + if_cannot_participate MON_4, AI_CGM_MakeFollowingMonsNervous_CheckMon3 + if_not_used_combo_starter MON_4, AI_CGM_MakeFollowingMonsNervous_CheckMon3 score +5 - if_random_less_than 125, ContestEffect16or17_0E_1 + if_random_less_than 125, AI_CGM_TargetMonWithJudgesAttention_CheckMon2 score +5 end -ContestEffect_FollowingMonsNervous_CheckMon3: - if_user_order_eq MON_3, ContestEffectEnd - if_cannot_participate MON_3, ContestEffect_FollowingMonsNervous_CheckMon2 - if_used_combo_starter_eq MON_3, FALSE, ContestEffect_FollowingMonsNervous_CheckMon2 +AI_CGM_MakeFollowingMonsNervous_CheckMon3: + if_user_order_eq MON_3, AI_CGM_End + if_cannot_participate MON_3, AI_CGM_MakeFollowingMonsNervous_CheckMon2 + if_not_used_combo_starter MON_3, AI_CGM_MakeFollowingMonsNervous_CheckMon2 score +5 - if_random_less_than 125, ContestEffect16or17_0E_2 + if_random_less_than 125, AI_CGM_TargetMonWithJudgesAttention_CheckMon3 score +5 end -ContestEffect_FollowingMonsNervous_CheckMon2: - if_user_order_eq MON_2, ContestEffectEnd - if_cannot_participate MON_2, ContestEffectEnd - if_used_combo_starter_eq MON_2, FALSE, ContestEffectEnd +AI_CGM_MakeFollowingMonsNervous_CheckMon2: + if_user_order_eq MON_2, AI_CGM_End + if_cannot_participate MON_2, AI_CGM_End + if_not_used_combo_starter MON_2, AI_CGM_End score +5 - if_random_less_than 125, ContestEffectEnd + if_random_less_than 125, AI_CGM_End score +5 end -ContestEffect18: - if_last_appeal ContestEffect18_score1 - goto ContestEffect18_0E +@ Encourages move if users turn is later, or if its the last appeal +AI_CGM_JamsOthersButMissOneTurn: + if_last_appeal AI_CGM_JamsOthersButMissOneTurn_LastAppeal + goto AI_CGM_JamsOthersButMissOneTurn_TurnOrder end -ContestEffect18_score1: +AI_CGM_JamsOthersButMissOneTurn_LastAppeal: score +5 - goto ContestEffect18_0E + goto AI_CGM_JamsOthersButMissOneTurn_TurnOrder end -ContestEffect18_0E: - if_user_order_eq MON_1, ContestEffect18_score2 - if_user_order_eq MON_2, ContestEffect18_random1 - if_user_order_eq MON_3, ContestEffect18_random2 - if_user_order_eq MON_4, ContestEffect18_random3 +AI_CGM_JamsOthersButMissOneTurn_TurnOrder: + if_user_order_eq MON_1, AI_CGM_JamsOthersButMissOneTurn_1stUp + if_user_order_eq MON_2, AI_CGM_JamsOthersButMissOneTurn_2ndUp + if_user_order_eq MON_3, AI_CGM_JamsOthersButMissOneTurn_3rdUp + if_user_order_eq MON_4, AI_CGM_JamsOthersButMissOneTurn_Last end -ContestEffect18_score2: +AI_CGM_JamsOthersButMissOneTurn_1stUp: score -15 end -ContestEffect18_random1: - if_random_less_than 125, ContestEffectEnd +AI_CGM_JamsOthersButMissOneTurn_2ndUp: + if_random_less_than 125, AI_CGM_End score -10 end -ContestEffect18_random2: - if_random_less_than 125, ContestEffectEnd +AI_CGM_JamsOthersButMissOneTurn_3rdUp: + if_random_less_than 125, AI_CGM_End score +5 end -ContestEffect18_random3: - if_random_less_than 125, ContestEffectEnd +AI_CGM_JamsOthersButMissOneTurn_Last: + if_random_less_than 125, AI_CGM_End score +15 end -ContestEffectEnd: +AI_CGM_End: end @ Randomly encourage moves in Cute, Smart, and Tough contests. AI_Erratic: - if_contest_type_eq CONTEST_CATEGORY_CUTE, Erratic_CuteSmartTough - if_contest_type_eq CONTEST_CATEGORY_SMART, Erratic_CuteSmartTough - if_contest_type_eq CONTEST_CATEGORY_TOUGH, Erratic_CuteSmartTough + if_contest_type_eq CONTEST_CATEGORY_CUTE, AI_Erratic_CuteSmartTough + if_contest_type_eq CONTEST_CATEGORY_SMART, AI_Erratic_CuteSmartTough + if_contest_type_eq CONTEST_CATEGORY_TOUGH, AI_Erratic_CuteSmartTough end -Erratic_CuteSmartTough: - if_random_less_than 125, Erratic_NoScoreIncrease +AI_Erratic_CuteSmartTough: + if_random_less_than 125, AI_Erratic_End score +10 end -Erratic_NoScoreIncrease: +AI_Erratic_End: end -AI_CheckForBadMove: - if_effect_eq CONTEST_EFFECT_STARTLE_FRONT_MON, ContestEffect2_8 - if_effect_eq CONTEST_EFFECT_STARTLE_PREV_MON, ContestEffect2_8 - if_effect_eq CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, ContestEffect2_8 - if_effect_eq CONTEST_EFFECT_STARTLE_PREV_MON_2, ContestEffect2_8 - if_effect_eq CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONE, ContestEffect2_8 - if_effect_eq CONTEST_EFFECT_BETTER_IF_SAME_TYPE, ContestEffect2_8 - if_effect_eq CONTEST_EFFECT_BETTER_IF_DIFF_TYPE, ContestEffect2_8 - if_effect_eq CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL, ContestEffect2_8 - if_effect_eq CONTEST_EFFECT_SLIGHTLY_STARTLE_PREV_MONS, ContestEffect2_9 - if_effect_eq CONTEST_EFFECT_STARTLE_PREV_MONS, ContestEffect2_9 - if_effect_eq CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, ContestEffect2_9 - if_effect_eq CONTEST_EFFECT_STARTLE_PREV_MONS_2, ContestEffect2_9 - if_effect_eq CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, ContestEffect2_9 - if_effect_eq CONTEST_EFFECT_SHIFT_JUDGE_ATTENTION, ContestEffect2_9 - if_effect_eq CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN, ContestEffect2_9 - if_effect_eq CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, ContestEffect2_9 - if_effect_eq CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, ContestEffect2_9 - if_effect_eq CONTEST_EFFECT_STARTLE_MONS_COOL_APPEAL, ContestEffect2_9 - if_effect_eq CONTEST_EFFECT_STARTLE_MONS_BEAUTY_APPEAL, ContestEffect2_9 - if_effect_eq CONTEST_EFFECT_STARTLE_MONS_CUTE_APPEAL, ContestEffect2_9 - if_effect_eq CONTEST_EFFECT_STARTLE_MONS_SMART_APPEAL, ContestEffect2_9 - if_effect_eq CONTEST_EFFECT_STARTLE_MONS_TOUGH_APPEAL, ContestEffect2_9 - if_effect_eq CONTEST_EFFECT_BADLY_STARTLES_MONS_IN_GOOD_CONDITION, ContestEffect2_9 - if_effect_eq CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS, ContestEffect2_9 - if_effect_eq CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONES, ContestEffect2_9 - if_effect_eq CONTEST_EFFECT_MAKE_FOLLOWING_MON_NERVOUS, ContestEffect2_25 - if_effect_eq CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, ContestEffect2_26 - if_effect_eq CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, ContestEffect2_26 - if_effect_eq CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, ContestEffect2_38 - if_effect_eq CONTEST_EFFECT_AVOID_STARTLE_ONCE, ContestEffect2_4 - if_effect_eq CONTEST_EFFECT_AVOID_STARTLE, ContestEffect2_4 - if_effect_eq CONTEST_EFFECT_AVOID_STARTLE_SLIGHTLY, ContestEffect2_4 - if_effect_eq CONTEST_EFFECT_GREAT_APPEAL_BUT_NO_MORE_MOVES, ContestEffect2_2 +@ Checks if move should be discouraged based on its effect +AI_CheckBadMove: + if_effect_eq CONTEST_EFFECT_STARTLE_FRONT_MON, AI_CBM_DependsOnPrevMon + if_effect_eq CONTEST_EFFECT_STARTLE_PREV_MON, AI_CBM_DependsOnPrevMon + if_effect_eq CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, AI_CBM_DependsOnPrevMon + if_effect_eq CONTEST_EFFECT_STARTLE_PREV_MON_2, AI_CBM_DependsOnPrevMon + if_effect_eq CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONE, AI_CBM_DependsOnPrevMon + if_effect_eq CONTEST_EFFECT_BETTER_IF_SAME_TYPE, AI_CBM_DependsOnPrevMon + if_effect_eq CONTEST_EFFECT_BETTER_IF_DIFF_TYPE, AI_CBM_DependsOnPrevMon + if_effect_eq CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL, AI_CBM_DependsOnPrevMon + if_effect_eq CONTEST_EFFECT_SLIGHTLY_STARTLE_PREV_MONS, AI_CBM_DependsOnPrevMons + if_effect_eq CONTEST_EFFECT_STARTLE_PREV_MONS, AI_CBM_DependsOnPrevMons + if_effect_eq CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, AI_CBM_DependsOnPrevMons + if_effect_eq CONTEST_EFFECT_STARTLE_PREV_MONS_2, AI_CBM_DependsOnPrevMons + if_effect_eq CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, AI_CBM_DependsOnPrevMons + if_effect_eq CONTEST_EFFECT_SHIFT_JUDGE_ATTENTION, AI_CBM_DependsOnPrevMons + if_effect_eq CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN, AI_CBM_DependsOnPrevMons + if_effect_eq CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, AI_CBM_DependsOnPrevMons + if_effect_eq CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, AI_CBM_DependsOnPrevMons + if_effect_eq CONTEST_EFFECT_STARTLE_MONS_COOL_APPEAL, AI_CBM_DependsOnPrevMons + if_effect_eq CONTEST_EFFECT_STARTLE_MONS_BEAUTY_APPEAL, AI_CBM_DependsOnPrevMons + if_effect_eq CONTEST_EFFECT_STARTLE_MONS_CUTE_APPEAL, AI_CBM_DependsOnPrevMons + if_effect_eq CONTEST_EFFECT_STARTLE_MONS_SMART_APPEAL, AI_CBM_DependsOnPrevMons + if_effect_eq CONTEST_EFFECT_STARTLE_MONS_TOUGH_APPEAL, AI_CBM_DependsOnPrevMons + if_effect_eq CONTEST_EFFECT_BADLY_STARTLES_MONS_IN_GOOD_CONDITION, AI_CBM_DependsOnPrevMons + if_effect_eq CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS, AI_CBM_DependsOnPrevMons + if_effect_eq CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONES, AI_CBM_DependsOnPrevMons + if_effect_eq CONTEST_EFFECT_MAKE_FOLLOWING_MON_NERVOUS, AI_CBM_DependsOnNextMon + if_effect_eq CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, AI_CBM_DependsOnNextMons + if_effect_eq CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, AI_CBM_DependsOnNextMons + if_effect_eq CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, AI_CBM_ImproveCondition + if_effect_eq CONTEST_EFFECT_AVOID_STARTLE_ONCE, AI_CBM_AvoidStartle + if_effect_eq CONTEST_EFFECT_AVOID_STARTLE, AI_CBM_AvoidStartle + if_effect_eq CONTEST_EFFECT_AVOID_STARTLE_SLIGHTLY, AI_CBM_AvoidStartle + if_effect_eq CONTEST_EFFECT_GREAT_APPEAL_BUT_NO_MORE_MOVES, AI_CBM_NoMoreMoves end -ContestEffect2_8: - if_user_order_eq MON_1, ContestEffect2_8_score1 - if_user_order_eq MON_2, ContestEffect2_8_score2 - if_user_order_eq MON_3, ContestEffect2_8_score3 - if_user_order_eq MON_4, ContestEffect2_8_score4 +@ If previous mon is skipping turn (or user is first), discourage move +AI_CBM_DependsOnPrevMon: + if_user_order_eq MON_1, AI_CBM_DependsOnPrevMon_1stUp + if_user_order_eq MON_2, AI_CBM_DependsOnPrevMon_2ndUp + if_user_order_eq MON_3, AI_CBM_DependsOnPrevMon_3rdUp + if_user_order_eq MON_4, AI_CBM_DependsOnPrevMon_Last end -ContestEffect2_8_score1: +AI_CBM_DependsOnPrevMon_1stUp: score -10 end -ContestEffect2_8_score2: - if_can_participate MON_1, ContestEffectEnd2 +AI_CBM_DependsOnPrevMon_2ndUp: + if_can_participate MON_1, AI_CBM_End score -10 end -ContestEffect2_8_score3: - if_can_participate MON_2, ContestEffectEnd2 +AI_CBM_DependsOnPrevMon_3rdUp: + if_can_participate MON_2, AI_CBM_End score -10 end -ContestEffect2_8_score4: - if_can_participate MON_3, ContestEffectEnd2 +AI_CBM_DependsOnPrevMon_Last: + if_can_participate MON_3, AI_CBM_End score -10 end -ContestEffect2_9: - if_user_order_eq MON_1, ContestEffect2_9_score1 - if_user_order_eq MON_2, ContestEffect2_9_score2 - if_user_order_eq MON_3, ContestEffect2_9_score3 - if_user_order_eq MON_4, ContestEffect2_9_score4 +@ If previous mons are all skipping turns (or user is first), discourage move +AI_CBM_DependsOnPrevMons: + if_user_order_eq MON_1, AI_CBM_DependsOnPrevMons_1stUp + if_user_order_eq MON_2, AI_CBM_DependsOnPrevMons_2ndUp + if_user_order_eq MON_3, AI_CBM_DependsOnPrevMons_3rdUp + if_user_order_eq MON_4, AI_CBM_DependsOnPrevMons_Last end -ContestEffect2_9_score1: +AI_CBM_DependsOnPrevMons_1stUp: score -20 end -ContestEffect2_9_score2: - if_can_participate MON_1, ContestEffectEnd2 +AI_CBM_DependsOnPrevMons_2ndUp: + if_can_participate MON_1, AI_CBM_End score -15 end -ContestEffect2_9_score3: - if_can_participate MON_1, ContestEffectEnd2 - if_can_participate MON_2, ContestEffectEnd2 +AI_CBM_DependsOnPrevMons_3rdUp: + if_can_participate MON_1, AI_CBM_End + if_can_participate MON_2, AI_CBM_End score -15 end -ContestEffect2_9_score4: - if_can_participate MON_1, ContestEffectEnd2 - if_can_participate MON_2, ContestEffectEnd2 - if_can_participate MON_3, ContestEffectEnd2 +AI_CBM_DependsOnPrevMons_Last: + if_can_participate MON_1, AI_CBM_End + if_can_participate MON_2, AI_CBM_End + if_can_participate MON_3, AI_CBM_End score -15 end -ContestEffect2_25: - if_user_order_eq MON_1, ContestEffect2_25_score1 - if_user_order_eq MON_2, ContestEffect2_25_score2 - if_user_order_eq MON_3, ContestEffect2_25_score3 +@ If next mon is skipping turn (or user is last), discourage move +AI_CBM_DependsOnNextMon: + if_user_order_eq MON_1, AI_CBM_DependsOnNextMon_1stUp + if_user_order_eq MON_2, AI_CBM_DependsOnNextMon_2ndUp + if_user_order_eq MON_3, AI_CBM_DependsOnNextMon_3rdUp score -10 end -ContestEffect2_25_score1: - if_can_participate MON_2, ContestEffectEnd2 +AI_CBM_DependsOnNextMon_1stUp: + if_can_participate MON_2, AI_CBM_End score -10 end -ContestEffect2_25_score2: - if_can_participate MON_3, ContestEffectEnd2 +AI_CBM_DependsOnNextMon_2ndUp: + if_can_participate MON_3, AI_CBM_End score -10 end -ContestEffect2_25_score3: - if_can_participate MON_4, ContestEffectEnd2 +AI_CBM_DependsOnNextMon_3rdUp: + if_can_participate MON_4, AI_CBM_End score -10 end -ContestEffect2_26: - if_user_order_eq MON_1, ContestEffect2_26_score1 - if_user_order_eq MON_2, ContestEffect2_26_score2 - if_user_order_eq MON_3, ContestEffect2_26_score3 +@ If next mons are all skipping turns (or user is last), discourage move +AI_CBM_DependsOnNextMons: + if_user_order_eq MON_1, AI_CBM_DependsOnNextMons_1stUp + if_user_order_eq MON_2, AI_CBM_DependsOnNextMons_2ndUp + if_user_order_eq MON_3, AI_CBM_DependsOnNextMons_3rdUp score -10 end -ContestEffect2_26_score1: - if_can_participate MON_2, ContestEffectEnd2 - if_can_participate MON_3, ContestEffectEnd2 - if_can_participate MON_4, ContestEffectEnd2 +AI_CBM_DependsOnNextMons_1stUp: + if_can_participate MON_2, AI_CBM_End + if_can_participate MON_3, AI_CBM_End + if_can_participate MON_4, AI_CBM_End score -10 end -ContestEffect2_26_score2: - if_can_participate MON_3, ContestEffectEnd2 - if_can_participate MON_4, ContestEffectEnd2 +AI_CBM_DependsOnNextMons_2ndUp: + if_can_participate MON_3, AI_CBM_End + if_can_participate MON_4, AI_CBM_End score -10 end -ContestEffect2_26_score3: - if_can_participate MON_4, ContestEffectEnd2 +AI_CBM_DependsOnNextMons_3rdUp: + if_can_participate MON_4, AI_CBM_End score -10 end -ContestEffect2_38: - if_user_condition_less_than 3, ContestEffectEnd2 +@ If at max condition, discourage move +AI_CBM_ImproveCondition: + if_user_condition_less_than 3, AI_CBM_End score -20 end -ContestEffect2_4: - if_user_order_eq MON_1, ContestEffect2_4_score1 - if_user_order_eq MON_2, ContestEffect2_4_score2 - if_user_order_eq MON_3, ContestEffect2_4_score3 +@ If there are no upcoming mons who can make an appeal (or if user is last), discourage move +@ Identical to AI_CBM_DependsOnNextMons +AI_CBM_AvoidStartle: + if_user_order_eq MON_1, AI_CBM_AvoidStartle_1stUp + if_user_order_eq MON_2, AI_CBM_AvoidStartle_2ndUp + if_user_order_eq MON_3, AI_CBM_AvoidStartle_3rdUp score -10 end -ContestEffect2_4_score1: - if_can_participate MON_2, ContestEffectEnd2 - if_can_participate MON_3, ContestEffectEnd2 - if_can_participate MON_4, ContestEffectEnd2 +AI_CBM_AvoidStartle_1stUp: + if_can_participate MON_2, AI_CBM_End + if_can_participate MON_3, AI_CBM_End + if_can_participate MON_4, AI_CBM_End score -10 end -ContestEffect2_4_score2: - if_can_participate MON_3, ContestEffectEnd2 - if_can_participate MON_4, ContestEffectEnd2 +AI_CBM_AvoidStartle_2ndUp: + if_can_participate MON_3, AI_CBM_End + if_can_participate MON_4, AI_CBM_End score -10 end -ContestEffect2_4_score3: - if_can_participate MON_4, ContestEffectEnd2 +AI_CBM_AvoidStartle_3rdUp: + if_can_participate MON_4, AI_CBM_End score -10 end -ContestEffect2_2: - if_appeal_num_eq 0, ContestEffect2_2_score1 - if_appeal_num_eq 1, ContestEffect2_2_score2 - if_appeal_num_eq 2, ContestEffect2_2_score3 - if_appeal_num_eq 3, ContestEffect2_2_score4 - if_last_appeal ContestEffect2_2_score5 +@ Very good if its the last appeal, otherwise discourage move +AI_CBM_NoMoreMoves: + if_appeal_num_eq 0, AI_CBM_NoMoreMoves_1stAppeal + if_appeal_num_eq 1, AI_CBM_NoMoreMoves_2ndAppeal + if_appeal_num_eq 2, AI_CBM_NoMoreMoves_3rdAppeal + if_appeal_num_eq 3, AI_CBM_NoMoreMoves_4thAppeal + if_last_appeal AI_CBM_NoMoreMoves_LastAppeal end -ContestEffect2_2_score1: - if_random_less_than 20, ContestEffectEnd2 +AI_CBM_NoMoreMoves_1stAppeal: + if_random_less_than 20, AI_CBM_End score -15 end -ContestEffect2_2_score2: - if_random_less_than 40, ContestEffectEnd2 +AI_CBM_NoMoreMoves_2ndAppeal: + if_random_less_than 40, AI_CBM_End score -15 end -ContestEffect2_2_score3: - if_random_less_than 60, ContestEffectEnd2 +AI_CBM_NoMoreMoves_3rdAppeal: + if_random_less_than 60, AI_CBM_End score -15 end -ContestEffect2_2_score4: - if_random_less_than 80, ContestEffectEnd2 +AI_CBM_NoMoreMoves_4thAppeal: + if_random_less_than 80, AI_CBM_End score -15 end -ContestEffect2_2_score5: - if_random_less_than 20, ContestEffectEnd2 +AI_CBM_NoMoreMoves_LastAppeal: + if_random_less_than 20, AI_CBM_End score +20 end -ContestEffectEnd2: +AI_CBM_End: end +@ Encourages/discourages move affected by the move order +@ e.g. use BETTER_IF_FIRST moves if user is first, dont use AVOID_STARTLE moves if last AI_CheckOrder: - if_user_order_eq MON_1, AI_effectcheck1_081DCA4C - if_user_order_eq MON_2, AI_effectcheck2_081DCA4C - if_user_order_eq MON_3, AI_effectcheck3_081DCA4C - if_user_order_eq MON_4, AI_effectcheck4_081DCA4C + if_user_order_eq MON_1, AI_CheckOrder_1stUp + if_user_order_eq MON_2, AI_CheckOrder_2ndUp + if_user_order_eq MON_3, AI_CheckOrder_3rdUp + if_user_order_eq MON_4, AI_CheckOrder_Last end -AI_effectcheck1_081DCA4C: - if_effect_eq CONTEST_EFFECT_BETTER_IF_FIRST, AI_score1_081DCA4C - if_effect_eq CONTEST_EFFECT_BETTER_WHEN_LATER, AI_score2_081DCA4C - if_effect_type_eq 1, AI_random1_081DCA4C +AI_CheckOrder_1stUp: + if_effect_eq CONTEST_EFFECT_BETTER_IF_FIRST, AI_CheckOrder_1stUp_Encourage + if_effect_eq CONTEST_EFFECT_BETTER_WHEN_LATER, AI_CheckOrder_1stUp_Discourage + if_effect_type_eq CONTEST_EFFECT_TYPE_AVOID_STARTLE, AI_CheckOrder_1stUp_RandomEncourage end -AI_score1_081DCA4C: +AI_CheckOrder_1stUp_Encourage: score +15 end -AI_score2_081DCA4C: +AI_CheckOrder_1stUp_Discourage: score -15 end -AI_random1_081DCA4C: - if_random_less_than 100, ContestEffectEnd2 +AI_CheckOrder_1stUp_RandomEncourage: + if_random_less_than 100, AI_CBM_End score +10 end -AI_effectcheck2_081DCA4C: - if_effect_eq CONTEST_EFFECT_BETTER_WHEN_LATER, AI_score3_081DCA4C - if_effect_type_eq 1, AI_random2_081DCA4C +AI_CheckOrder_2ndUp: + if_effect_eq CONTEST_EFFECT_BETTER_WHEN_LATER, AI_CheckOrder_2ndUp_Discourage + if_effect_type_eq CONTEST_EFFECT_TYPE_AVOID_STARTLE, AI_CheckOrder_2ndUp_RandomEncourage end -AI_score3_081DCA4C: +AI_CheckOrder_2ndUp_Discourage: score -5 end -AI_random2_081DCA4C: - if_random_less_than 125, ContestEffectEnd2 +AI_CheckOrder_2ndUp_RandomEncourage: + if_random_less_than 125, AI_CBM_End score +10 end -AI_effectcheck3_081DCA4C: - if_effect_eq CONTEST_EFFECT_BETTER_WHEN_LATER, AI_score4_081DCA4C - if_effect_eq CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONES, AI_score4_081DCA4C - if_effect_eq CONTEST_EFFECT_USER_MORE_EASILY_STARTLED, AI_score4_081DCA4C +AI_CheckOrder_3rdUp: + if_effect_eq CONTEST_EFFECT_BETTER_WHEN_LATER, AI_CheckOrder_3rdUp_Encourage + if_effect_eq CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONES, AI_CheckOrder_3rdUp_Encourage + if_effect_eq CONTEST_EFFECT_USER_MORE_EASILY_STARTLED, AI_CheckOrder_3rdUp_Encourage end -AI_score4_081DCA4C: +AI_CheckOrder_3rdUp_Encourage: score +5 end -AI_effectcheck4_081DCA4C: - if_effect_eq CONTEST_EFFECT_BETTER_WHEN_LATER, AI_score5_081DCA4C - if_effect_eq CONTEST_EFFECT_BETTER_IF_LAST, AI_score5_081DCA4C - if_effect_eq CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONES, AI_score5_081DCA4C - if_effect_eq CONTEST_EFFECT_USER_MORE_EASILY_STARTLED, AI_score5_081DCA4C - if_effect_eq CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN, AI_score7_081DCA4C - if_effect_type_eq 1, AI_score6_081DCA4C - if_effect_type_eq 3, AI_random3_081DCA4C +AI_CheckOrder_Last: + if_effect_eq CONTEST_EFFECT_BETTER_WHEN_LATER, AI_CheckOrder_Last_StronglyEncourage + if_effect_eq CONTEST_EFFECT_BETTER_IF_LAST, AI_CheckOrder_Last_StronglyEncourage + if_effect_eq CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONES, AI_CheckOrder_Last_StronglyEncourage + if_effect_eq CONTEST_EFFECT_USER_MORE_EASILY_STARTLED, AI_CheckOrder_Last_StronglyEncourage + if_effect_eq CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN, AI_CheckOrder_Last_Encourage + if_effect_type_eq CONTEST_EFFECT_TYPE_AVOID_STARTLE, AI_CheckOrder_Last_Discourage + if_effect_type_eq CONTEST_EFFECT_TYPE_STARTLE_MONS, AI_CheckOrder_Last_RandomEncourage end -AI_score5_081DCA4C: +AI_CheckOrder_Last_StronglyEncourage: score +15 end -AI_score6_081DCA4C: +AI_CheckOrder_Last_Discourage: score -10 end -AI_random3_081DCA4C: - if_random_less_than 125, ContestEffectEnd2 +AI_CheckOrder_Last_RandomEncourage: + if_random_less_than 125, AI_CBM_End score +10 end -AI_score7_081DCA4C: +AI_CheckOrder_Last_Encourage: score +5 end diff --git a/include/constants/contest.h b/include/constants/contest.h index 5ec4c4f694..9eb6b26e41 100644 --- a/include/constants/contest.h +++ b/include/constants/contest.h @@ -52,6 +52,37 @@ #define CONTEST_AI_CHECK_ORDER (1 << 4) #define CONTEST_AI_CHECK_GOOD_MOVE (1 << 5) #define CONTEST_AI_ERRATIC (1 << 6) +#define CONTEST_AI_DUMMY_1 (1 << 7) +#define CONTEST_AI_DUMMY_2 (1 << 8) +#define CONTEST_AI_DUMMY_3 (1 << 9) +#define CONTEST_AI_DUMMY_4 (1 << 10) +#define CONTEST_AI_DUMMY_5 (1 << 11) +#define CONTEST_AI_DUMMY_6 (1 << 12) +#define CONTEST_AI_DUMMY_7 (1 << 13) +#define CONTEST_AI_DUMMY_8 (1 << 14) +#define CONTEST_AI_DUMMY_9 (1 << 15) +#define CONTEST_AI_DUMMY_10 (1 << 16) +#define CONTEST_AI_DUMMY_11 (1 << 17) +#define CONTEST_AI_DUMMY_12 (1 << 18) +#define CONTEST_AI_DUMMY_13 (1 << 19) +#define CONTEST_AI_DUMMY_14 (1 << 20) +#define CONTEST_AI_DUMMY_15 (1 << 21) +#define CONTEST_AI_DUMMY_16 (1 << 22) +#define CONTEST_AI_DUMMY_17 (1 << 23) +#define CONTEST_AI_DUMMY_18 (1 << 24) +#define CONTEST_AI_DUMMY_19 (1 << 25) +#define CONTEST_AI_DUMMY_20 (1 << 26) +#define CONTEST_AI_DUMMY_21 (1 << 27) +#define CONTEST_AI_DUMMY_22 (1 << 28) +#define CONTEST_AI_DUMMY_23 (1 << 29) +#define CONTEST_AI_DUMMY_24 (1 << 30) +#define CONTEST_AI_DUMMY_25 (1 << 31) + +// The below scripts are used by every AI contest opponent +// It includes every non-dummy script +#define CONTEST_AI_COMMON (CONTEST_AI_CHECK_BAD_MOVE | CONTEST_AI_CHECK_COMBO | CONTEST_AI_CHECK_BORING | \ + CONTEST_AI_CHECK_EXCITEMENT | CONTEST_AI_CHECK_ORDER | CONTEST_AI_CHECK_GOOD_MOVE | CONTEST_AI_ERRATIC | \ + CONTEST_AI_DUMMY_1 | CONTEST_AI_DUMMY_2 | CONTEST_AI_DUMMY_3 | CONTEST_AI_DUMMY_4 | CONTEST_AI_DUMMY_5) #define CONTEST_EFFECT_HIGHLY_APPEALING 0 #define CONTEST_EFFECT_USER_MORE_EASILY_STARTLED 1 @@ -102,6 +133,16 @@ #define CONTEST_EFFECT_BETTER_WHEN_AUDIENCE_EXCITED 46 #define CONTEST_EFFECT_DONT_EXCITE_AUDIENCE 47 +// Each of the above effects is grouped into one of these effect type categories +// Only a few of these get checked by the AI, the rest go unused +#define CONTEST_EFFECT_TYPE_APPEAL 0 +#define CONTEST_EFFECT_TYPE_AVOID_STARTLE 1 +#define CONTEST_EFFECT_TYPE_STARTLE_MON 2 +#define CONTEST_EFFECT_TYPE_STARTLE_MONS 3 +#define CONTEST_EFFECT_TYPE_WORSEN 4 +#define CONTEST_EFFECT_TYPE_SPECIAL_APPEAL 5 +#define CONTEST_EFFECT_TYPE_TURN_ORDER 6 + #define COMBO_STARTER_RAIN_DANCE 1 #define COMBO_STARTER_RAGE 2 #define COMBO_STARTER_FOCUS_ENERGY 3 diff --git a/include/contest.h b/include/contest.h index d53aec2129..1dd4340bd8 100644 --- a/include/contest.h +++ b/include/contest.h @@ -90,7 +90,7 @@ struct ContestPokemon u8 nickname[POKEMON_NAME_LENGTH + 1]; u8 trainerName[PLAYER_NAME_LENGTH + 1]; u8 trainerGfxId; - u32 aiChecks; + u32 aiFlags; u8 whichRank:2; u8 aiPool_Cool:1; u8 aiPool_Beauty:1; @@ -231,8 +231,8 @@ struct ContestAIInfo /*0x05*/ u8 moveScores[MAX_MON_MOVES]; /*0x09*/ u8 aiAction; /*0x0A*/ u8 filler[6]; - /*0x10*/ u8 currentAICheck; - /*0x14*/ u32 aiChecks; + /*0x10*/ u8 currentAIFlag; + /*0x14*/ u32 aiFlags; /*0x18*/ s16 scriptResult; /*0x1A*/ s16 vars[3]; /*0x20*/ const u8 *stack[8]; diff --git a/src/contest.c b/src/contest.c index 32a8675e58..af9e734fa6 100644 --- a/src/contest.c +++ b/src/contest.c @@ -2789,7 +2789,7 @@ void CreateContestMonFromParty(u8 partyIndex) gContestMons[gContestPlayerMonIndex].trainerGfxId = OBJ_EVENT_GFX_LINK_BRENDAN; else gContestMons[gContestPlayerMonIndex].trainerGfxId = OBJ_EVENT_GFX_LINK_MAY; - gContestMons[gContestPlayerMonIndex].aiChecks = 0; + gContestMons[gContestPlayerMonIndex].aiFlags = 0; gContestMons[gContestPlayerMonIndex].highestRank = 0; gContestMons[gContestPlayerMonIndex].species = GetMonData(&gPlayerParty[partyIndex], MON_DATA_SPECIES); GetMonData(&gPlayerParty[partyIndex], MON_DATA_NICKNAME, name); @@ -5620,7 +5620,7 @@ void ClearContestWinnerPicsInContestHall(void) s32 i; for (i = 0; i < 8; i++) - gSaveBlock1Ptr->contestWinners[i] = gUnknown_08587FA4[i]; + gSaveBlock1Ptr->contestWinners[i] = gDefaultContestWinners[i]; } static void SetContestLiveUpdateFlags(u8 contestant) diff --git a/src/contest_ai.c b/src/contest_ai.c index 4635539982..2f048718ff 100644 --- a/src/contest_ai.c +++ b/src/contest_ai.c @@ -7,7 +7,7 @@ #include "constants/moves.h" extern const u8 *gAIScriptPtr; -extern const u8 *gContestAIChecks[]; +extern const u8 *gContestAI_ScriptsTable[]; static void ContestAICmd_score(void); static void ContestAICmd_get_appeal_num(void); @@ -144,7 +144,7 @@ static void ContestAICmd_if_user_has_exciting_move(void); static void ContestAICmd_if_user_doesnt_have_exciting_move(void); static void ContestAICmd_check_user_has_move(void); static void ContestAICmd_if_user_has_move(void); -static void ContestAICmd_if_effect_in_user_moveset(void); +static void ContestAICmd_if_user_doesnt_have_move(void); typedef void (* ContestAICmdFunc)(void); @@ -285,7 +285,7 @@ static const ContestAICmdFunc sContestAICmdTable[] = ContestAICmd_if_user_doesnt_have_exciting_move, // 0x84 ContestAICmd_check_user_has_move, // 0x85 ContestAICmd_if_user_has_move, // 0x86 - ContestAICmd_if_effect_in_user_moveset, // 0x87 + ContestAICmd_if_user_doesnt_have_move, // 0x87 }; static void ContestAI_DoAIProcessing(void); @@ -303,20 +303,20 @@ void ContestAI_ResetAI(u8 contestantAI) eContestAI.contestantId = contestantAI; eContestAI.stackSize = 0; - eContestAI.aiChecks = gContestMons[eContestAI.contestantId].aiChecks; + eContestAI.aiFlags = gContestMons[eContestAI.contestantId].aiFlags; } u8 ContestAI_GetActionToUse(void) { - while (eContestAI.aiChecks != 0) + while (eContestAI.aiFlags != 0) { - if (eContestAI.aiChecks & 1) + if (eContestAI.aiFlags & 1) { eContestAI.aiState = CONTESTAI_SETTING_UP; ContestAI_DoAIProcessing(); } - eContestAI.aiChecks >>= 1; - eContestAI.currentAICheck++; + eContestAI.aiFlags >>= 1; + eContestAI.currentAIFlag++; eContestAI.nextMoveIndex = 0; } @@ -346,7 +346,7 @@ static void ContestAI_DoAIProcessing(void) case CONTESTAI_DO_NOT_PROCESS: break; case CONTESTAI_SETTING_UP: - gAIScriptPtr = gContestAIChecks[eContestAI.currentAICheck]; + gAIScriptPtr = gContestAI_ScriptsTable[eContestAI.currentAIFlag]; if (gContestMons[eContestAI.contestantId].moves[eContestAI.nextMoveIndex] == MOVE_NONE) eContestAI.nextMove = MOVE_NONE; // don't process a move that doesn't exist. @@ -1627,7 +1627,8 @@ static void ContestAICmd_if_not_eq_var(void) } // UB: Should just be comparing to gAIScriptPtr[1] in the functions below -// With the values passed to if_random_less_than this goes way OOB on vars +// The values passed via gAIScriptPtr[1] range from 0-255 +// and vars is an s16[3], so this goes way out of bounds static void ContestAICmd_if_random_less_than(void) { #ifndef UBFIX @@ -1729,6 +1730,12 @@ static void ContestAICmd_if_user_doesnt_have_exciting_move(void) gAIScriptPtr += 4; } +// BUG: This is checking if the user has a specific move, but when it's used in the AI script +// they're checking for an effect. Checking for a specific effect would make more sense, +// but given that effects are normally read as a single byte and this reads 2 bytes, it +// seems reading a move was intended and the AI script is using it incorrectly. +// In any case, to fix it to correctly check for effects replace the u16 move assignment with +// u16 move = gContestMoves[gContestMons[eContestAI.contestantId].moves[i]].effect; static void ContestAICmd_check_user_has_move(void) { int hasMove = FALSE; @@ -1759,7 +1766,7 @@ static void ContestAICmd_if_user_has_move(void) gAIScriptPtr += 4; } -static void ContestAICmd_if_effect_in_user_moveset(void) +static void ContestAICmd_if_user_doesnt_have_move(void) { ContestAICmd_check_user_has_move(); diff --git a/src/data/contest_moves.h b/src/data/contest_moves.h index 5460ac806f..658528210a 100644 --- a/src/data/contest_moves.h +++ b/src/data/contest_moves.h @@ -2838,289 +2838,289 @@ const struct ContestEffect gContestEffects[] = { [CONTEST_EFFECT_HIGHLY_APPEALING] = { - .effectType = 0, + .effectType = CONTEST_EFFECT_TYPE_APPEAL, .appeal = 40, .jam = 0, }, [CONTEST_EFFECT_USER_MORE_EASILY_STARTLED] = { - .effectType = 0, + .effectType = CONTEST_EFFECT_TYPE_APPEAL, .appeal = 60, .jam = 0, }, [CONTEST_EFFECT_GREAT_APPEAL_BUT_NO_MORE_MOVES] = { - .effectType = 0, + .effectType = CONTEST_EFFECT_TYPE_APPEAL, .appeal = 80, .jam = 0, }, [CONTEST_EFFECT_REPETITION_NOT_BORING] = { - .effectType = 0, + .effectType = CONTEST_EFFECT_TYPE_APPEAL, .appeal = 30, .jam = 0, }, [CONTEST_EFFECT_AVOID_STARTLE_ONCE] = { - .effectType = 1, + .effectType = CONTEST_EFFECT_TYPE_AVOID_STARTLE, .appeal = 20, .jam = 0, }, [CONTEST_EFFECT_AVOID_STARTLE] = { - .effectType = 1, + .effectType = CONTEST_EFFECT_TYPE_AVOID_STARTLE, .appeal = 10, .jam = 0, }, [CONTEST_EFFECT_AVOID_STARTLE_SLIGHTLY] = { - .effectType = 1, + .effectType = CONTEST_EFFECT_TYPE_AVOID_STARTLE, .appeal = 30, .jam = 0, }, [CONTEST_EFFECT_USER_LESS_EASILY_STARTLED] = { - .effectType = 1, + .effectType = CONTEST_EFFECT_TYPE_AVOID_STARTLE, .appeal = 30, .jam = 0, }, [CONTEST_EFFECT_STARTLE_FRONT_MON] = { - .effectType = 2, + .effectType = CONTEST_EFFECT_TYPE_STARTLE_MON, .appeal = 30, .jam = 20, }, [CONTEST_EFFECT_SLIGHTLY_STARTLE_PREV_MONS] = { - .effectType = 3, + .effectType = CONTEST_EFFECT_TYPE_STARTLE_MONS, .appeal = 30, .jam = 10, }, [CONTEST_EFFECT_STARTLE_PREV_MON] = { - .effectType = 2, + .effectType = CONTEST_EFFECT_TYPE_STARTLE_MON, .appeal = 20, .jam = 30, }, [CONTEST_EFFECT_STARTLE_PREV_MONS] = { - .effectType = 3, + .effectType = CONTEST_EFFECT_TYPE_STARTLE_MONS, .appeal = 20, .jam = 20, }, [CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON] = { - .effectType = 2, + .effectType = CONTEST_EFFECT_TYPE_STARTLE_MON, .appeal = 10, .jam = 40, }, [CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS] = { - .effectType = 3, + .effectType = CONTEST_EFFECT_TYPE_STARTLE_MONS, .appeal = 10, .jam = 30, }, [CONTEST_EFFECT_STARTLE_PREV_MON_2] = { - .effectType = 2, + .effectType = CONTEST_EFFECT_TYPE_STARTLE_MON, .appeal = 30, .jam = 20, }, [CONTEST_EFFECT_STARTLE_PREV_MONS_2] = { - .effectType = 3, + .effectType = CONTEST_EFFECT_TYPE_STARTLE_MONS, .appeal = 30, .jam = 10, }, [CONTEST_EFFECT_SHIFT_JUDGE_ATTENTION] = { - .effectType = 4, + .effectType = CONTEST_EFFECT_TYPE_WORSEN, .appeal = 30, .jam = 0, }, [CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION] = { - .effectType = 3, + .effectType = CONTEST_EFFECT_TYPE_STARTLE_MONS, .appeal = 20, .jam = 10, }, [CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN] = { - .effectType = 3, + .effectType = CONTEST_EFFECT_TYPE_STARTLE_MONS, .appeal = 40, .jam = 40, }, [CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL] = { - .effectType = 3, + .effectType = CONTEST_EFFECT_TYPE_STARTLE_MONS, .appeal = 20, .jam = 10, }, [CONTEST_EFFECT_STARTLE_MONS_COOL_APPEAL] = { - .effectType = 3, + .effectType = CONTEST_EFFECT_TYPE_STARTLE_MONS, .appeal = 20, .jam = 10, }, [CONTEST_EFFECT_STARTLE_MONS_BEAUTY_APPEAL] = { - .effectType = 3, + .effectType = CONTEST_EFFECT_TYPE_STARTLE_MONS, .appeal = 20, .jam = 10, }, [CONTEST_EFFECT_STARTLE_MONS_CUTE_APPEAL] = { - .effectType = 3, + .effectType = CONTEST_EFFECT_TYPE_STARTLE_MONS, .appeal = 20, .jam = 10, }, [CONTEST_EFFECT_STARTLE_MONS_SMART_APPEAL] = { - .effectType = 3, + .effectType = CONTEST_EFFECT_TYPE_STARTLE_MONS, .appeal = 20, .jam = 10, }, [CONTEST_EFFECT_STARTLE_MONS_TOUGH_APPEAL] = { - .effectType = 3, + .effectType = CONTEST_EFFECT_TYPE_STARTLE_MONS, .appeal = 20, .jam = 10, }, [CONTEST_EFFECT_MAKE_FOLLOWING_MON_NERVOUS] = { - .effectType = 4, + .effectType = CONTEST_EFFECT_TYPE_WORSEN, .appeal = 20, .jam = 0, }, [CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS] = { - .effectType = 4, + .effectType = CONTEST_EFFECT_TYPE_WORSEN, .appeal = 20, .jam = 0, }, [CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS] = { - .effectType = 4, + .effectType = CONTEST_EFFECT_TYPE_WORSEN, .appeal = 30, .jam = 0, }, [CONTEST_EFFECT_BADLY_STARTLES_MONS_IN_GOOD_CONDITION] = { - .effectType = 3, + .effectType = CONTEST_EFFECT_TYPE_STARTLE_MONS, .appeal = 30, .jam = 10, }, [CONTEST_EFFECT_BETTER_IF_FIRST] = { - .effectType = 5, + .effectType = CONTEST_EFFECT_TYPE_SPECIAL_APPEAL, .appeal = 20, .jam = 0, }, [CONTEST_EFFECT_BETTER_IF_LAST] = { - .effectType = 5, + .effectType = CONTEST_EFFECT_TYPE_SPECIAL_APPEAL, .appeal = 20, .jam = 0, }, [CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONES] = { - .effectType = 5, + .effectType = CONTEST_EFFECT_TYPE_SPECIAL_APPEAL, .appeal = 10, .jam = 0, }, [CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONE] = { - .effectType = 5, + .effectType = CONTEST_EFFECT_TYPE_SPECIAL_APPEAL, .appeal = 10, .jam = 0, }, [CONTEST_EFFECT_BETTER_WHEN_LATER] = { - .effectType = 5, + .effectType = CONTEST_EFFECT_TYPE_SPECIAL_APPEAL, .appeal = 10, .jam = 0, }, [CONTEST_EFFECT_QUALITY_DEPENDS_ON_TIMING] = { - .effectType = 5, + .effectType = CONTEST_EFFECT_TYPE_SPECIAL_APPEAL, .appeal = 10, .jam = 0, }, [CONTEST_EFFECT_BETTER_IF_SAME_TYPE] = { - .effectType = 5, + .effectType = CONTEST_EFFECT_TYPE_SPECIAL_APPEAL, .appeal = 20, .jam = 0, }, [CONTEST_EFFECT_BETTER_IF_DIFF_TYPE] = { - .effectType = 5, + .effectType = CONTEST_EFFECT_TYPE_SPECIAL_APPEAL, .appeal = 20, .jam = 0, }, [CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL] = { - .effectType = 5, + .effectType = CONTEST_EFFECT_TYPE_SPECIAL_APPEAL, .appeal = 30, .jam = 0, }, [CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS] = { - .effectType = 5, + .effectType = CONTEST_EFFECT_TYPE_SPECIAL_APPEAL, .appeal = 10, .jam = 0, }, [CONTEST_EFFECT_BETTER_WITH_GOOD_CONDITION] = { - .effectType = 5, + .effectType = CONTEST_EFFECT_TYPE_SPECIAL_APPEAL, .appeal = 10, .jam = 0, }, [CONTEST_EFFECT_NEXT_APPEAL_EARLIER] = { - .effectType = 6, + .effectType = CONTEST_EFFECT_TYPE_TURN_ORDER, .appeal = 30, .jam = 0, }, [CONTEST_EFFECT_NEXT_APPEAL_LATER] = { - .effectType = 6, + .effectType = CONTEST_EFFECT_TYPE_TURN_ORDER, .appeal = 30, .jam = 0, }, [CONTEST_EFFECT_MAKE_SCRAMBLING_TURN_ORDER_EASIER] = { - .effectType = 6, + .effectType = CONTEST_EFFECT_TYPE_TURN_ORDER, .appeal = 30, .jam = 0, }, [CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER] = { - .effectType = 6, + .effectType = CONTEST_EFFECT_TYPE_TURN_ORDER, .appeal = 30, .jam = 0, }, [CONTEST_EFFECT_EXCITE_AUDIENCE_IN_ANY_CONTEST] = { - .effectType = 5, + .effectType = CONTEST_EFFECT_TYPE_SPECIAL_APPEAL, .appeal = 10, .jam = 0, }, [CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS] = { - .effectType = 3, + .effectType = CONTEST_EFFECT_TYPE_STARTLE_MONS, .appeal = 20, .jam = 10, }, [CONTEST_EFFECT_BETTER_WHEN_AUDIENCE_EXCITED] = { - .effectType = 5, + .effectType = CONTEST_EFFECT_TYPE_SPECIAL_APPEAL, .appeal = 10, .jam = 0, }, [CONTEST_EFFECT_DONT_EXCITE_AUDIENCE] = { - .effectType = 4, + .effectType = CONTEST_EFFECT_TYPE_WORSEN, .appeal = 30, .jam = 0, }, diff --git a/src/data/contest_opponents.h b/src/data/contest_opponents.h index 53868fc84f..6de931ef20 100644 --- a/src/data/contest_opponents.h +++ b/src/data/contest_opponents.h @@ -100,7 +100,44 @@ #define CONTEST_OPPONENT_TREY 94 #define CONTEST_OPPONENT_LANE 95 -const struct ContestWinner gUnknown_08587FA4[] = +// All contest opponents have a common set of AI flags (which contains all of the actually +// useful AI scripts, as well as some dummys) and a random combination of 2-3 dummy flags. +// Seems that like the battle AI they had more plans for this than what ended up in the final game +#define CONTEST_AI_SET_1 (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_20 | CONTEST_AI_DUMMY_21) +#define CONTEST_AI_SET_2 (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_19 | CONTEST_AI_DUMMY_25) +#define CONTEST_AI_SET_3 (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_18 | CONTEST_AI_DUMMY_23) +#define CONTEST_AI_SET_4 (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_17 | CONTEST_AI_DUMMY_23) +#define CONTEST_AI_SET_5 (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_16 | CONTEST_AI_DUMMY_25) +#define CONTEST_AI_SET_6 (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_15 | CONTEST_AI_DUMMY_22) +#define CONTEST_AI_SET_7 (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_14 | CONTEST_AI_DUMMY_23) +#define CONTEST_AI_SET_8 (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_13 | CONTEST_AI_DUMMY_21) +#define CONTEST_AI_SET_9 (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_12 | CONTEST_AI_DUMMY_24) +#define CONTEST_AI_SET_A (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_11 | CONTEST_AI_DUMMY_25) +#define CONTEST_AI_SET_B (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_10 | CONTEST_AI_DUMMY_21) +#define CONTEST_AI_SET_C (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_9 | CONTEST_AI_DUMMY_21) +#define CONTEST_AI_SET_D (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_8 | CONTEST_AI_DUMMY_22 | CONTEST_AI_DUMMY_25) +#define CONTEST_AI_SET_E (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_7 | CONTEST_AI_DUMMY_24) +#define CONTEST_AI_SET_F (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_6 | CONTEST_AI_DUMMY_25) +#define CONTEST_AI_SET_10 (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_20 | CONTEST_AI_DUMMY_23) +#define CONTEST_AI_SET_11 (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_18 | CONTEST_AI_DUMMY_25) +#define CONTEST_AI_SET_12 (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_17 | CONTEST_AI_DUMMY_25) +#define CONTEST_AI_SET_13 (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_16 | CONTEST_AI_DUMMY_22) +#define CONTEST_AI_SET_14 (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_15 | CONTEST_AI_DUMMY_21) +#define CONTEST_AI_SET_15 (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_14 | CONTEST_AI_DUMMY_22) +#define CONTEST_AI_SET_16 (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_13 | CONTEST_AI_DUMMY_25) +#define CONTEST_AI_SET_17 (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_12 | CONTEST_AI_DUMMY_23 | CONTEST_AI_DUMMY_25) +#define CONTEST_AI_SET_18 (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_10 | CONTEST_AI_DUMMY_25) +#define CONTEST_AI_SET_19 (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_9 | CONTEST_AI_DUMMY_25) +#define CONTEST_AI_SET_1A (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_8 | CONTEST_AI_DUMMY_25) +#define CONTEST_AI_SET_1B (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_7 | CONTEST_AI_DUMMY_21) +#define CONTEST_AI_SET_1C (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_6 | CONTEST_AI_DUMMY_21) +#define CONTEST_AI_SET_1D (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_20 | CONTEST_AI_DUMMY_25) +#define CONTEST_AI_SET_1E (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_15 | CONTEST_AI_DUMMY_25) +#define CONTEST_AI_SET_1F (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_14 | CONTEST_AI_DUMMY_25) +#define CONTEST_AI_SET_20 (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_12 | CONTEST_AI_DUMMY_25) +#define CONTEST_AI_SET_21 (CONTEST_AI_COMMON | CONTEST_AI_DUMMY_7 | CONTEST_AI_DUMMY_25) + +const struct ContestWinner gDefaultContestWinners[] = { { .personality = 0, @@ -183,7 +220,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("POOCHY"), .trainerName = _("JIMMY"), .trainerGfxId = OBJ_EVENT_GFX_BOY_1, - .aiChecks = 0xC000FFF, + .aiFlags = CONTEST_AI_SET_1, .whichRank = CONTEST_RANK_NORMAL, .aiPool_Cool = TRUE, .aiPool_Beauty = FALSE, @@ -211,7 +248,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("MUSILLE"), .trainerName = _("EDITH"), .trainerGfxId = OBJ_EVENT_GFX_GIRL_1, - .aiChecks = 0x82000FFF, + .aiFlags = CONTEST_AI_SET_2, .whichRank = CONTEST_RANK_NORMAL, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, @@ -239,7 +276,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("DUSTER"), .trainerName = _("EVAN"), .trainerGfxId = OBJ_EVENT_GFX_LITTLE_BOY, - .aiChecks = 0x21000FFF, + .aiFlags = CONTEST_AI_SET_3, .whichRank = CONTEST_RANK_NORMAL, .aiPool_Cool = FALSE, .aiPool_Beauty = TRUE, @@ -267,7 +304,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("DOTS"), .trainerName = _("KELSEY"), .trainerGfxId = OBJ_EVENT_GFX_WOMAN_1, - .aiChecks = 0x20800FFF, + .aiFlags = CONTEST_AI_SET_4, .whichRank = CONTEST_RANK_NORMAL, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, @@ -295,7 +332,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("TATAY"), .trainerName = _("MADISON"), .trainerGfxId = OBJ_EVENT_GFX_POKEFAN_F, - .aiChecks = 0x80400FFF, + .aiFlags = CONTEST_AI_SET_5, .whichRank = CONTEST_RANK_NORMAL, .aiPool_Cool = TRUE, .aiPool_Beauty = FALSE, @@ -323,7 +360,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("NINDA"), .trainerName = _("RAYMOND"), .trainerGfxId = OBJ_EVENT_GFX_BLACK_BELT, - .aiChecks = 0x10200FFF, + .aiFlags = CONTEST_AI_SET_6, .whichRank = CONTEST_RANK_NORMAL, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, @@ -351,7 +388,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("SMISH"), .trainerName = _("GRANT"), .trainerGfxId = OBJ_EVENT_GFX_YOUNGSTER, - .aiChecks = 0x20100FFF, + .aiFlags = CONTEST_AI_SET_7, .whichRank = CONTEST_RANK_NORMAL, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, @@ -379,7 +416,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("SLEAL"), .trainerName = _("PAIGE"), .trainerGfxId = OBJ_EVENT_GFX_WOMAN_4, - .aiChecks = 0x8080FFF, + .aiFlags = CONTEST_AI_SET_8, .whichRank = CONTEST_RANK_NORMAL, .aiPool_Cool = FALSE, .aiPool_Beauty = TRUE, @@ -407,7 +444,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("SLOKTH"), .trainerName = _("ALEC"), .trainerGfxId = OBJ_EVENT_GFX_CAMPER, - .aiChecks = 0x40040FFF, + .aiFlags = CONTEST_AI_SET_9, .whichRank = CONTEST_RANK_NORMAL, .aiPool_Cool = FALSE, .aiPool_Beauty = TRUE, @@ -435,7 +472,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("WHIRIS"), .trainerName = _("SYDNEY"), .trainerGfxId = OBJ_EVENT_GFX_LASS, - .aiChecks = 0x80020FFF, + .aiFlags = CONTEST_AI_SET_A, .whichRank = CONTEST_RANK_NORMAL, .aiPool_Cool = TRUE, .aiPool_Beauty = FALSE, @@ -463,7 +500,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("MAHITA"), .trainerName = _("MORRIS"), .trainerGfxId = OBJ_EVENT_GFX_SCHOOL_KID_M, - .aiChecks = 0x8010FFF, + .aiFlags = CONTEST_AI_SET_B, .whichRank = CONTEST_RANK_NORMAL, .aiPool_Cool = TRUE, .aiPool_Beauty = FALSE, @@ -491,7 +528,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("RONAR"), .trainerName = _("MARIAH"), .trainerGfxId = OBJ_EVENT_GFX_GIRL_2, - .aiChecks = 0x8008FFF, + .aiFlags = CONTEST_AI_SET_C, .whichRank = CONTEST_RANK_NORMAL, .aiPool_Cool = TRUE, .aiPool_Beauty = FALSE, @@ -519,7 +556,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("BATRO"), .trainerName = _("RUSSELL"), .trainerGfxId = OBJ_EVENT_GFX_MAN_3, - .aiChecks = 0x90004FFF, + .aiFlags = CONTEST_AI_SET_D, .whichRank = CONTEST_RANK_NORMAL, .aiPool_Cool = FALSE, .aiPool_Beauty = TRUE, @@ -547,7 +584,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("GULIN"), .trainerName = _("MELANIE"), .trainerGfxId = OBJ_EVENT_GFX_TWIN, - .aiChecks = 0x40002FFF, + .aiFlags = CONTEST_AI_SET_E, .whichRank = CONTEST_RANK_NORMAL, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, @@ -575,7 +612,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("RIKELEC"), .trainerName = _("CHANCE"), .trainerGfxId = OBJ_EVENT_GFX_RICH_BOY, - .aiChecks = 0x80001FFF, + .aiFlags = CONTEST_AI_SET_F, .whichRank = CONTEST_RANK_NORMAL, .aiPool_Cool = TRUE, .aiPool_Beauty = TRUE, @@ -603,7 +640,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("BULBY"), .trainerName = _("AGATHA"), .trainerGfxId = OBJ_EVENT_GFX_WOMAN_2, - .aiChecks = 0xC000FFF, + .aiFlags = CONTEST_AI_SET_1, .whichRank = CONTEST_RANK_NORMAL, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, @@ -631,7 +668,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("FUTTERBE"), .trainerName = _("BEAU"), .trainerGfxId = OBJ_EVENT_GFX_HEX_MANIAC, - .aiChecks = 0x82000FFF, + .aiFlags = CONTEST_AI_SET_2, .whichRank = CONTEST_RANK_NORMAL, .aiPool_Cool = FALSE, .aiPool_Beauty = TRUE, @@ -659,7 +696,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("PIDEOT"), .trainerName = _("KAY"), .trainerGfxId = OBJ_EVENT_GFX_WOMAN_5, - .aiChecks = 0x21000FFF, + .aiFlags = CONTEST_AI_SET_3, .whichRank = CONTEST_RANK_NORMAL, .aiPool_Cool = TRUE, .aiPool_Beauty = TRUE, @@ -687,7 +724,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("DIGLE"), .trainerName = _("CALE"), .trainerGfxId = OBJ_EVENT_GFX_HIKER, - .aiChecks = 0x20800FFF, + .aiFlags = CONTEST_AI_SET_4, .whichRank = CONTEST_RANK_NORMAL, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, @@ -715,7 +752,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("WAGIL"), .trainerName = _("CAITLIN"), .trainerGfxId = OBJ_EVENT_GFX_TUBER_F, - .aiChecks = 0x80400FFF, + .aiFlags = CONTEST_AI_SET_5, .whichRank = CONTEST_RANK_NORMAL, .aiPool_Cool = FALSE, .aiPool_Beauty = TRUE, @@ -743,7 +780,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("TOTDIL"), .trainerName = _("COLBY"), .trainerGfxId = OBJ_EVENT_GFX_NINJA_BOY, - .aiChecks = 0x10200FFF, + .aiFlags = CONTEST_AI_SET_6, .whichRank = CONTEST_RANK_NORMAL, .aiPool_Cool = TRUE, .aiPool_Beauty = TRUE, @@ -771,7 +808,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("BALEDY"), .trainerName = _("KYLIE"), .trainerGfxId = OBJ_EVENT_GFX_BEAUTY, - .aiChecks = 0x20100FFF, + .aiFlags = CONTEST_AI_SET_7, .whichRank = CONTEST_RANK_NORMAL, .aiPool_Cool = TRUE, .aiPool_Beauty = FALSE, @@ -799,7 +836,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("BIRDLY"), .trainerName = _("LIAM"), .trainerGfxId = OBJ_EVENT_GFX_MAN_5, - .aiChecks = 0x8080FFF, + .aiFlags = CONTEST_AI_SET_8, .whichRank = CONTEST_RANK_NORMAL, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, @@ -827,7 +864,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("TARVITAR"), .trainerName = _("MILO"), .trainerGfxId = OBJ_EVENT_GFX_MANIAC, - .aiChecks = 0x40040FFF, + .aiFlags = CONTEST_AI_SET_9, .whichRank = CONTEST_RANK_NORMAL, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, @@ -855,7 +892,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("RELIA"), .trainerName = _("KARINA"), .trainerGfxId = OBJ_EVENT_GFX_PICNICKER, - .aiChecks = 0x24000FFF, + .aiFlags = CONTEST_AI_SET_10, .whichRank = CONTEST_RANK_SUPER, .aiPool_Cool = FALSE, .aiPool_Beauty = TRUE, @@ -883,7 +920,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("DUODO"), .trainerName = _("BOBBY"), .trainerGfxId = OBJ_EVENT_GFX_RUNNING_TRIATHLETE_M, - .aiChecks = 0x82000FFF, + .aiFlags = CONTEST_AI_SET_2, .whichRank = CONTEST_RANK_SUPER, .aiPool_Cool = TRUE, .aiPool_Beauty = TRUE, @@ -911,7 +948,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("PINCHIN"), .trainerName = _("CLAIRE"), .trainerGfxId = OBJ_EVENT_GFX_GIRL_1, - .aiChecks = 0x81000FFF, + .aiFlags = CONTEST_AI_SET_11, .whichRank = CONTEST_RANK_SUPER, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, @@ -939,7 +976,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("NACAC"), .trainerName = _("WILLIE"), .trainerGfxId = OBJ_EVENT_GFX_LITTLE_BOY, - .aiChecks = 0x80800FFF, + .aiFlags = CONTEST_AI_SET_12, .whichRank = CONTEST_RANK_SUPER, .aiPool_Cool = TRUE, .aiPool_Beauty = FALSE, @@ -967,7 +1004,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("SHRAND"), .trainerName = _("CASSIDY"), .trainerGfxId = OBJ_EVENT_GFX_POKEFAN_F, - .aiChecks = 0x10400FFF, + .aiFlags = CONTEST_AI_SET_13, .whichRank = CONTEST_RANK_SUPER, .aiPool_Cool = TRUE, .aiPool_Beauty = FALSE, @@ -995,7 +1032,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("TOYBAL"), .trainerName = _("MORGAN"), .trainerGfxId = OBJ_EVENT_GFX_BLACK_BELT, - .aiChecks = 0x8200FFF, + .aiFlags = CONTEST_AI_SET_14, .whichRank = CONTEST_RANK_SUPER, .aiPool_Cool = FALSE, .aiPool_Beauty = TRUE, @@ -1023,7 +1060,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("CHAMCHAM"), .trainerName = _("SUMMER"), .trainerGfxId = OBJ_EVENT_GFX_WOMAN_4, - .aiChecks = 0x10100FFF, + .aiFlags = CONTEST_AI_SET_15, .whichRank = CONTEST_RANK_SUPER, .aiPool_Cool = TRUE, .aiPool_Beauty = TRUE, @@ -1051,7 +1088,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("SPININ"), .trainerName = _("MILES"), .trainerGfxId = OBJ_EVENT_GFX_CAMPER, - .aiChecks = 0x80080FFF, + .aiFlags = CONTEST_AI_SET_16, .whichRank = CONTEST_RANK_SUPER, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, @@ -1079,7 +1116,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("SWABY"), .trainerName = _("AUDREY"), .trainerGfxId = OBJ_EVENT_GFX_LASS, - .aiChecks = 0xA0040FFF, + .aiFlags = CONTEST_AI_SET_17, .whichRank = CONTEST_RANK_SUPER, .aiPool_Cool = FALSE, .aiPool_Beauty = TRUE, @@ -1107,7 +1144,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("POINKER"), .trainerName = _("AVERY"), .trainerGfxId = OBJ_EVENT_GFX_SCHOOL_KID_M, - .aiChecks = 0x80020FFF, + .aiFlags = CONTEST_AI_SET_A, .whichRank = CONTEST_RANK_SUPER, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, @@ -1135,7 +1172,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("KECON"), .trainerName = _("ARIANA"), .trainerGfxId = OBJ_EVENT_GFX_GIRL_2, - .aiChecks = 0x80010FFF, + .aiFlags = CONTEST_AI_SET_18, .whichRank = CONTEST_RANK_SUPER, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, @@ -1163,7 +1200,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("GOLDEN"), .trainerName = _("ASHTON"), .trainerGfxId = OBJ_EVENT_GFX_MAN_3, - .aiChecks = 0x80008FFF, + .aiFlags = CONTEST_AI_SET_19, .whichRank = CONTEST_RANK_SUPER, .aiPool_Cool = TRUE, .aiPool_Beauty = TRUE, @@ -1191,7 +1228,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("BOBOACH"), .trainerName = _("SANDRA"), .trainerGfxId = OBJ_EVENT_GFX_TWIN, - .aiChecks = 0x80004FFF, + .aiFlags = CONTEST_AI_SET_1A, .whichRank = CONTEST_RANK_SUPER, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, @@ -1219,7 +1256,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("CORPY"), .trainerName = _("CARSON"), .trainerGfxId = OBJ_EVENT_GFX_YOUNGSTER, - .aiChecks = 0x8002FFF, + .aiFlags = CONTEST_AI_SET_1B, .whichRank = CONTEST_RANK_SUPER, .aiPool_Cool = TRUE, .aiPool_Beauty = TRUE, @@ -1247,7 +1284,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("TADO"), .trainerName = _("KATRINA"), .trainerGfxId = OBJ_EVENT_GFX_WOMAN_1, - .aiChecks = 0x8001FFF, + .aiFlags = CONTEST_AI_SET_1C, .whichRank = CONTEST_RANK_SUPER, .aiPool_Cool = FALSE, .aiPool_Beauty = TRUE, @@ -1275,7 +1312,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("BROWLO"), .trainerName = _("LUKE"), .trainerGfxId = OBJ_EVENT_GFX_FAT_MAN, - .aiChecks = 0xC000FFF, + .aiFlags = CONTEST_AI_SET_1, .whichRank = CONTEST_RANK_SUPER, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, @@ -1303,7 +1340,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("FETCHIN"), .trainerName = _("RAUL"), .trainerGfxId = OBJ_EVENT_GFX_MAN_5, - .aiChecks = 0x82000FFF, + .aiFlags = CONTEST_AI_SET_2, .whichRank = CONTEST_RANK_SUPER, .aiPool_Cool = TRUE, .aiPool_Beauty = FALSE, @@ -1331,7 +1368,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("SEELEY"), .trainerName = _("JADA"), .trainerGfxId = OBJ_EVENT_GFX_WOMAN_2, - .aiChecks = 0x21000FFF, + .aiFlags = CONTEST_AI_SET_3, .whichRank = CONTEST_RANK_SUPER, .aiPool_Cool = FALSE, .aiPool_Beauty = TRUE, @@ -1359,7 +1396,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("DROWZIN"), .trainerName = _("ZEEK"), .trainerGfxId = OBJ_EVENT_GFX_PSYCHIC_M, - .aiChecks = 0x20800FFF, + .aiFlags = CONTEST_AI_SET_4, .whichRank = CONTEST_RANK_SUPER, .aiPool_Cool = FALSE, .aiPool_Beauty = TRUE, @@ -1387,7 +1424,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("HITEMON"), .trainerName = _("DIEGO"), .trainerGfxId = OBJ_EVENT_GFX_EXPERT_M, - .aiChecks = 0x80400FFF, + .aiFlags = CONTEST_AI_SET_5, .whichRank = CONTEST_RANK_SUPER, .aiPool_Cool = TRUE, .aiPool_Beauty = FALSE, @@ -1415,7 +1452,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("BLISS"), .trainerName = _("ALIYAH"), .trainerGfxId = OBJ_EVENT_GFX_TEALA, - .aiChecks = 0x10200FFF, + .aiFlags = CONTEST_AI_SET_6, .whichRank = CONTEST_RANK_SUPER, .aiPool_Cool = FALSE, .aiPool_Beauty = TRUE, @@ -1443,7 +1480,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("KIDLEK"), .trainerName = _("NATALIA"), .trainerGfxId = OBJ_EVENT_GFX_POKEFAN_F, - .aiChecks = 0x20100FFF, + .aiFlags = CONTEST_AI_SET_7, .whichRank = CONTEST_RANK_SUPER, .aiPool_Cool = TRUE, .aiPool_Beauty = FALSE, @@ -1471,7 +1508,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("SNUBBINS"), .trainerName = _("DEVIN"), .trainerGfxId = OBJ_EVENT_GFX_GENTLEMAN, - .aiChecks = 0x8080FFF, + .aiFlags = CONTEST_AI_SET_8, .whichRank = CONTEST_RANK_SUPER, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, @@ -1499,7 +1536,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("DREAVIS"), .trainerName = _("TYLOR"), .trainerGfxId = OBJ_EVENT_GFX_HEX_MANIAC, - .aiChecks = 0x40040FFF, + .aiFlags = CONTEST_AI_SET_9, .whichRank = CONTEST_RANK_SUPER, .aiPool_Cool = FALSE, .aiPool_Beauty = TRUE, @@ -1527,7 +1564,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("LAIRN"), .trainerName = _("RONNIE"), .trainerGfxId = OBJ_EVENT_GFX_HIKER, - .aiChecks = 0x84000FFF, + .aiFlags = CONTEST_AI_SET_1D, .whichRank = CONTEST_RANK_HYPER, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, @@ -1555,7 +1592,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("SHIFTY"), .trainerName = _("CLAUDIA"), .trainerGfxId = OBJ_EVENT_GFX_GIRL_1, - .aiChecks = 0x82000FFF, + .aiFlags = CONTEST_AI_SET_2, .whichRank = CONTEST_RANK_HYPER, .aiPool_Cool = TRUE, .aiPool_Beauty = TRUE, @@ -1583,7 +1620,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("NINAS"), .trainerName = _("ELIAS"), .trainerGfxId = OBJ_EVENT_GFX_LITTLE_BOY, - .aiChecks = 0x81000FFF, + .aiFlags = CONTEST_AI_SET_11, .whichRank = CONTEST_RANK_HYPER, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, @@ -1611,7 +1648,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("WELOW"), .trainerName = _("JADE"), .trainerGfxId = OBJ_EVENT_GFX_POKEFAN_F, - .aiChecks = 0x80800FFF, + .aiFlags = CONTEST_AI_SET_12, .whichRank = CONTEST_RANK_HYPER, .aiPool_Cool = TRUE, .aiPool_Beauty = TRUE, @@ -1639,7 +1676,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("YENA"), .trainerName = _("FRANCIS"), .trainerGfxId = OBJ_EVENT_GFX_BLACK_BELT, - .aiChecks = 0x80400FFF, + .aiFlags = CONTEST_AI_SET_5, .whichRank = CONTEST_RANK_HYPER, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, @@ -1667,7 +1704,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("TIFLY"), .trainerName = _("ALISHA"), .trainerGfxId = OBJ_EVENT_GFX_WOMAN_4, - .aiChecks = 0x80200FFF, + .aiFlags = CONTEST_AI_SET_1E, .whichRank = CONTEST_RANK_HYPER, .aiPool_Cool = FALSE, .aiPool_Beauty = TRUE, @@ -1695,7 +1732,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("KINGSEA"), .trainerName = _("SAUL"), .trainerGfxId = OBJ_EVENT_GFX_CAMPER, - .aiChecks = 0x80100FFF, + .aiFlags = CONTEST_AI_SET_1F, .whichRank = CONTEST_RANK_HYPER, .aiPool_Cool = TRUE, .aiPool_Beauty = FALSE, @@ -1723,7 +1760,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("CASTER"), .trainerName = _("FELICIA"), .trainerGfxId = OBJ_EVENT_GFX_LASS, - .aiChecks = 0x80080FFF, + .aiFlags = CONTEST_AI_SET_16, .whichRank = CONTEST_RANK_HYPER, .aiPool_Cool = TRUE, .aiPool_Beauty = TRUE, @@ -1751,7 +1788,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("CHOKEM"), .trainerName = _("EMILIO"), .trainerGfxId = OBJ_EVENT_GFX_SCHOOL_KID_M, - .aiChecks = 0x80040FFF, + .aiFlags = CONTEST_AI_SET_20, .whichRank = CONTEST_RANK_HYPER, .aiPool_Cool = TRUE, .aiPool_Beauty = FALSE, @@ -1779,7 +1816,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("LOMBE"), .trainerName = _("KARLA"), .trainerGfxId = OBJ_EVENT_GFX_GIRL_2, - .aiChecks = 0x80020FFF, + .aiFlags = CONTEST_AI_SET_A, .whichRank = CONTEST_RANK_HYPER, .aiPool_Cool = FALSE, .aiPool_Beauty = TRUE, @@ -1807,7 +1844,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("VIPES"), .trainerName = _("DARRYL"), .trainerGfxId = OBJ_EVENT_GFX_MAN_3, - .aiChecks = 0x80010FFF, + .aiFlags = CONTEST_AI_SET_18, .whichRank = CONTEST_RANK_HYPER, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, @@ -1835,7 +1872,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("MERAIL"), .trainerName = _("SELENA"), .trainerGfxId = OBJ_EVENT_GFX_EXPERT_F, - .aiChecks = 0x80008FFF, + .aiFlags = CONTEST_AI_SET_19, .whichRank = CONTEST_RANK_HYPER, .aiPool_Cool = FALSE, .aiPool_Beauty = TRUE, @@ -1863,7 +1900,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("KARPAG"), .trainerName = _("NOEL"), .trainerGfxId = OBJ_EVENT_GFX_YOUNGSTER, - .aiChecks = 0x80004FFF, + .aiFlags = CONTEST_AI_SET_1A, .whichRank = CONTEST_RANK_HYPER, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, @@ -1891,7 +1928,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("LUNONE"), .trainerName = _("LACEY"), .trainerGfxId = OBJ_EVENT_GFX_WOMAN_1, - .aiChecks = 0x80002FFF, + .aiFlags = CONTEST_AI_SET_21, .whichRank = CONTEST_RANK_HYPER, .aiPool_Cool = FALSE, .aiPool_Beauty = TRUE, @@ -1919,7 +1956,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("ABSO"), .trainerName = _("CORBIN"), .trainerGfxId = OBJ_EVENT_GFX_MANIAC, - .aiChecks = 0x80001FFF, + .aiFlags = CONTEST_AI_SET_F, .whichRank = CONTEST_RANK_HYPER, .aiPool_Cool = TRUE, .aiPool_Beauty = TRUE, @@ -1947,7 +1984,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("EGGSOR"), .trainerName = _("GRACIE"), .trainerGfxId = OBJ_EVENT_GFX_PICNICKER, - .aiChecks = 0xC000FFF, + .aiFlags = CONTEST_AI_SET_1, .whichRank = CONTEST_RANK_HYPER, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, @@ -1975,7 +2012,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("CUBIN"), .trainerName = _("COLTIN"), .trainerGfxId = OBJ_EVENT_GFX_MAN_4, - .aiChecks = 0x82000FFF, + .aiFlags = CONTEST_AI_SET_2, .whichRank = CONTEST_RANK_HYPER, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, @@ -2003,7 +2040,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("HITMON"), .trainerName = _("ELLIE"), .trainerGfxId = OBJ_EVENT_GFX_EXPERT_F, - .aiChecks = 0x21000FFF, + .aiFlags = CONTEST_AI_SET_3, .whichRank = CONTEST_RANK_HYPER, .aiPool_Cool = TRUE, .aiPool_Beauty = FALSE, @@ -2031,7 +2068,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("SURTLE"), .trainerName = _("MARCUS"), .trainerGfxId = OBJ_EVENT_GFX_SAILOR, - .aiChecks = 0x20800FFF, + .aiFlags = CONTEST_AI_SET_4, .whichRank = CONTEST_RANK_HYPER, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, @@ -2059,7 +2096,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("KHANKAN"), .trainerName = _("KIARA"), .trainerGfxId = OBJ_EVENT_GFX_GIRL_3, - .aiChecks = 0x80400FFF, + .aiFlags = CONTEST_AI_SET_5, .whichRank = CONTEST_RANK_HYPER, .aiPool_Cool = TRUE, .aiPool_Beauty = FALSE, @@ -2087,7 +2124,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("PINOC"), .trainerName = _("BRYCE"), .trainerGfxId = OBJ_EVENT_GFX_BUG_CATCHER, - .aiChecks = 0x10200FFF, + .aiFlags = CONTEST_AI_SET_6, .whichRank = CONTEST_RANK_HYPER, .aiPool_Cool = FALSE, .aiPool_Beauty = TRUE, @@ -2115,7 +2152,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("DILTOT"), .trainerName = _("JAMIE"), .trainerGfxId = OBJ_EVENT_GFX_WOMAN_5, - .aiChecks = 0x20100FFF, + .aiFlags = CONTEST_AI_SET_7, .whichRank = CONTEST_RANK_HYPER, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, @@ -2143,7 +2180,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("DOOMOND"), .trainerName = _("JORGE"), .trainerGfxId = OBJ_EVENT_GFX_GENTLEMAN, - .aiChecks = 0x8080FFF, + .aiFlags = CONTEST_AI_SET_8, .whichRank = CONTEST_RANK_HYPER, .aiPool_Cool = TRUE, .aiPool_Beauty = TRUE, @@ -2171,7 +2208,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("MILKAN"), .trainerName = _("DEVON"), .trainerGfxId = OBJ_EVENT_GFX_POKEFAN_M, - .aiChecks = 0x40040FFF, + .aiFlags = CONTEST_AI_SET_9, .whichRank = CONTEST_RANK_HYPER, .aiPool_Cool = FALSE, .aiPool_Beauty = TRUE, @@ -2199,7 +2236,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("RADOS"), .trainerName = _("JUSTINA"), .trainerGfxId = OBJ_EVENT_GFX_PICNICKER, - .aiChecks = 0x84000FFF, + .aiFlags = CONTEST_AI_SET_1D, .whichRank = CONTEST_RANK_MASTER, .aiPool_Cool = TRUE, .aiPool_Beauty = TRUE, @@ -2227,7 +2264,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("LOUDERD"), .trainerName = _("RALPH"), .trainerGfxId = OBJ_EVENT_GFX_EXPERT_M, - .aiChecks = 0x82000FFF, + .aiFlags = CONTEST_AI_SET_2, .whichRank = CONTEST_RANK_MASTER, .aiPool_Cool = TRUE, .aiPool_Beauty = FALSE, @@ -2255,7 +2292,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("SITTY"), .trainerName = _("ROSA"), .trainerGfxId = OBJ_EVENT_GFX_GIRL_1, - .aiChecks = 0x81000FFF, + .aiFlags = CONTEST_AI_SET_11, .whichRank = CONTEST_RANK_MASTER, .aiPool_Cool = FALSE, .aiPool_Beauty = TRUE, @@ -2283,7 +2320,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("SLING"), .trainerName = _("KEATON"), .trainerGfxId = OBJ_EVENT_GFX_LITTLE_BOY, - .aiChecks = 0x80800FFF, + .aiFlags = CONTEST_AI_SET_12, .whichRank = CONTEST_RANK_MASTER, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, @@ -2311,7 +2348,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("TARIA"), .trainerName = _("MAYRA"), .trainerGfxId = OBJ_EVENT_GFX_POKEFAN_F, - .aiChecks = 0x80400FFF, + .aiFlags = CONTEST_AI_SET_5, .whichRank = CONTEST_RANK_MASTER, .aiPool_Cool = TRUE, .aiPool_Beauty = TRUE, @@ -2339,7 +2376,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("LIRKI"), .trainerName = _("LAMAR"), .trainerGfxId = OBJ_EVENT_GFX_RICH_BOY, - .aiChecks = 0x80200FFF, + .aiFlags = CONTEST_AI_SET_1E, .whichRank = CONTEST_RANK_MASTER, .aiPool_Cool = TRUE, .aiPool_Beauty = FALSE, @@ -2367,7 +2404,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("BLOSSOM"), .trainerName = _("AUBREY"), .trainerGfxId = OBJ_EVENT_GFX_WOMAN_4, - .aiChecks = 0x80100FFF, + .aiFlags = CONTEST_AI_SET_1F, .whichRank = CONTEST_RANK_MASTER, .aiPool_Cool = FALSE, .aiPool_Beauty = TRUE, @@ -2395,7 +2432,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("EYESAB"), .trainerName = _("NIGEL"), .trainerGfxId = OBJ_EVENT_GFX_CAMPER, - .aiChecks = 0x80080FFF, + .aiFlags = CONTEST_AI_SET_16, .whichRank = CONTEST_RANK_MASTER, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, @@ -2423,7 +2460,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("UTAN"), .trainerName = _("CAMILLE"), .trainerGfxId = OBJ_EVENT_GFX_LASS, - .aiChecks = 0x80040FFF, + .aiFlags = CONTEST_AI_SET_20, .whichRank = CONTEST_RANK_MASTER, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, @@ -2451,7 +2488,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("PEDOS"), .trainerName = _("DEON"), .trainerGfxId = OBJ_EVENT_GFX_SCHOOL_KID_M, - .aiChecks = 0x80020FFF, + .aiFlags = CONTEST_AI_SET_A, .whichRank = CONTEST_RANK_MASTER, .aiPool_Cool = TRUE, .aiPool_Beauty = FALSE, @@ -2479,7 +2516,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("LUVIS"), .trainerName = _("JANELLE"), .trainerGfxId = OBJ_EVENT_GFX_GIRL_2, - .aiChecks = 0x80010FFF, + .aiFlags = CONTEST_AI_SET_18, .whichRank = CONTEST_RANK_MASTER, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, @@ -2507,7 +2544,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("HEROSS"), .trainerName = _("HEATH"), .trainerGfxId = OBJ_EVENT_GFX_MAN_3, - .aiChecks = 0x80008FFF, + .aiFlags = CONTEST_AI_SET_19, .whichRank = CONTEST_RANK_MASTER, .aiPool_Cool = TRUE, .aiPool_Beauty = FALSE, @@ -2535,7 +2572,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("RODLECT"), .trainerName = _("SASHA"), .trainerGfxId = OBJ_EVENT_GFX_TWIN, - .aiChecks = 0x80004FFF, + .aiFlags = CONTEST_AI_SET_1A, .whichRank = CONTEST_RANK_MASTER, .aiPool_Cool = TRUE, .aiPool_Beauty = TRUE, @@ -2563,7 +2600,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("CHUPY"), .trainerName = _("FRANKIE"), .trainerGfxId = OBJ_EVENT_GFX_YOUNGSTER, - .aiChecks = 0x80002FFF, + .aiFlags = CONTEST_AI_SET_21, .whichRank = CONTEST_RANK_MASTER, .aiPool_Cool = FALSE, .aiPool_Beauty = TRUE, @@ -2591,7 +2628,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("WOBET"), .trainerName = _("HELEN"), .trainerGfxId = OBJ_EVENT_GFX_WOMAN_1, - .aiChecks = 0x80001FFF, + .aiFlags = CONTEST_AI_SET_F, .whichRank = CONTEST_RANK_MASTER, .aiPool_Cool = TRUE, .aiPool_Beauty = TRUE, @@ -2619,7 +2656,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("GAREN"), .trainerName = _("CAMILE"), .trainerGfxId = OBJ_EVENT_GFX_HEX_MANIAC, - .aiChecks = 0xC000FFF, + .aiFlags = CONTEST_AI_SET_1, .whichRank = CONTEST_RANK_MASTER, .aiPool_Cool = TRUE, .aiPool_Beauty = FALSE, @@ -2647,7 +2684,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("GONPOR"), .trainerName = _("MARTIN"), .trainerGfxId = OBJ_EVENT_GFX_SCIENTIST_1, - .aiChecks = 0x82000FFF, + .aiFlags = CONTEST_AI_SET_2, .whichRank = CONTEST_RANK_MASTER, .aiPool_Cool = TRUE, .aiPool_Beauty = TRUE, @@ -2675,7 +2712,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("DRITE"), .trainerName = _("SERGIO"), .trainerGfxId = OBJ_EVENT_GFX_BOY_1, - .aiChecks = 0x21000FFF, + .aiFlags = CONTEST_AI_SET_3, .whichRank = CONTEST_RANK_MASTER, .aiPool_Cool = TRUE, .aiPool_Beauty = FALSE, @@ -2703,7 +2740,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("MEOWY"), .trainerName = _("KAILEY"), .trainerGfxId = OBJ_EVENT_GFX_TWIN, - .aiChecks = 0x20800FFF, + .aiFlags = CONTEST_AI_SET_4, .whichRank = CONTEST_RANK_MASTER, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, @@ -2731,7 +2768,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("NYX"), .trainerName = _("PERLA"), .trainerGfxId = OBJ_EVENT_GFX_BEAUTY, - .aiChecks = 0x80400FFF, + .aiFlags = CONTEST_AI_SET_5, .whichRank = CONTEST_RANK_MASTER, .aiPool_Cool = FALSE, .aiPool_Beauty = TRUE, @@ -2759,7 +2796,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("GEPITO"), .trainerName = _("CLARA"), .trainerGfxId = OBJ_EVENT_GFX_WOMAN_2, - .aiChecks = 0x10200FFF, + .aiFlags = CONTEST_AI_SET_6, .whichRank = CONTEST_RANK_MASTER, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, @@ -2787,7 +2824,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("SPEON"), .trainerName = _("JAKOB"), .trainerGfxId = OBJ_EVENT_GFX_PSYCHIC_M, - .aiChecks = 0x20100FFF, + .aiFlags = CONTEST_AI_SET_7, .whichRank = CONTEST_RANK_MASTER, .aiPool_Cool = TRUE, .aiPool_Beauty = TRUE, @@ -2815,7 +2852,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("SLOWGO"), .trainerName = _("TREY"), .trainerGfxId = OBJ_EVENT_GFX_SAILOR, - .aiChecks = 0x8080FFF, + .aiFlags = CONTEST_AI_SET_8, .whichRank = CONTEST_RANK_MASTER, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, @@ -2843,7 +2880,7 @@ const struct ContestPokemon gContestOpponents[] = .nickname = _("URSING"), .trainerName = _("LANE"), .trainerGfxId = OBJ_EVENT_GFX_BLACK_BELT, - .aiChecks = 0x40040FFF, + .aiFlags = CONTEST_AI_SET_9, .whichRank = CONTEST_RANK_MASTER, .aiPool_Cool = TRUE, .aiPool_Beauty = FALSE, From a20745422bc9db472142f9825f4a0becfdcb38b5 Mon Sep 17 00:00:00 2001 From: PokeCodec Date: Tue, 28 Jul 2020 11:24:45 -0400 Subject: [PATCH 082/101] Remove unused variable remaining from ruby --- src/contest.c | 26 +++++++++----------------- src/fldeff_cut.c | 15 +++++---------- 2 files changed, 14 insertions(+), 27 deletions(-) diff --git a/src/contest.c b/src/contest.c index af9e734fa6..4470ec2a2c 100644 --- a/src/contest.c +++ b/src/contest.c @@ -999,8 +999,6 @@ void ResetLinkContestBoolean(void) static void SetupContestGpuRegs(void) { - u16 savedIme; - SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_1D_MAP); SetGpuReg(REG_OFFSET_BLDCNT, 0); SetGpuReg(REG_OFFSET_BLDALPHA, 0); @@ -3410,8 +3408,7 @@ static void GetAllChosenMoves(void) static void RankContestants(void) { - s32 i; - s32 j; + s32 i, j; s16 arr[CONTESTANT_COUNT]; for (i = 0; i < CONTESTANT_COUNT; i++) @@ -3486,8 +3483,7 @@ static bool8 ContestantCanUseTurn(u8 contestant) { if (eContestantStatus[contestant].numTurnsSkipped != 0 || eContestantStatus[contestant].noMoreTurns) return FALSE; - else - return TRUE; + return TRUE; } static void SetContestantStatusesForNextRound(void) @@ -3541,8 +3537,7 @@ bool8 Contest_IsMonsTurnDisabled(u8 contestant) { if (eContestantStatus[contestant].numTurnsSkipped != 0 || eContestantStatus[contestant].noMoreTurns) return TRUE; - else - return FALSE; + return FALSE; } static void CalculateTotalPointsForContestant(u8 contestant) @@ -4485,17 +4480,14 @@ static void CalculateAppealMoveImpact(u8 contestant) eContestantStatus[contestant].comboAppealBonus = eContestantStatus[contestant].baseAppeal * eContestantStatus[contestant].completedCombo; eContestantStatus[contestant].completedComboFlag = TRUE; // Redundant with completedCombo, used by AI } + else if (gContestMoves[eContestantStatus[contestant].currMove].comboStarterId != 0) + { + eContestantStatus[contestant].hasJudgesAttention = TRUE; + eContestantStatus[contestant].usedComboMove = TRUE; + } else { - if (gContestMoves[eContestantStatus[contestant].currMove].comboStarterId != 0) - { - eContestantStatus[contestant].hasJudgesAttention = TRUE; - eContestantStatus[contestant].usedComboMove = TRUE; - } - else - { - eContestantStatus[contestant].hasJudgesAttention = FALSE; - } + eContestantStatus[contestant].hasJudgesAttention = FALSE; } } if (eContestantStatus[contestant].repeatedMove) diff --git a/src/fldeff_cut.c b/src/fldeff_cut.c index 34868342fb..1a4260900e 100644 --- a/src/fldeff_cut.c +++ b/src/fldeff_cut.c @@ -227,9 +227,7 @@ bool8 SetUpFieldMove_Cut(void) y = gPlayerFacingPosition.y + sHyperCutStruct[i].y; tileCuttable = TRUE; - j = 0; - do - { + for (j = 0; j < 2; ++j) { if (sHyperCutStruct[i].unk2[j] == 0) break; if (cutTiles[(u8)(sHyperCutStruct[i].unk2[j] - 1)] == FALSE) @@ -237,13 +235,13 @@ bool8 SetUpFieldMove_Cut(void) tileCuttable = FALSE; break; } - } while (++j <= 1); + } if (tileCuttable == TRUE) { if (MapGridGetZCoordAt(x, y) == gPlayerFacingPosition.height) { - u8 tileArrayId = ((sHyperCutStruct[i].y * 5) + 12) + (sHyperCutStruct[i].x); + const u8 tileArrayId = ((sHyperCutStruct[i].y * 5) + 12) + (sHyperCutStruct[i].x); tileBehavior = MapGridGetMetatileBehaviorAt(x, y); if (MetatileBehavior_IsPokeGrass(tileBehavior) == TRUE || MetatileBehavior_IsAshGrass(tileBehavior) == TRUE) @@ -253,11 +251,8 @@ bool8 SetUpFieldMove_Cut(void) sHyperCutTiles[tileArrayId] = TRUE; ret = TRUE; } - else - { - if (MetatileBehavior_IsCuttableGrass(tileBehavior) == TRUE) - sHyperCutTiles[tileArrayId] = TRUE; - } + else if (MetatileBehavior_IsCuttableGrass(tileBehavior) == TRUE) + sHyperCutTiles[tileArrayId] = TRUE; } } } From cc018fe6c90ea84422af94cd5e613d0d9e52da95 Mon Sep 17 00:00:00 2001 From: PokeCodec Date: Sun, 23 Aug 2020 17:22:15 -0400 Subject: [PATCH 083/101] Remove const --- src/fldeff_cut.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/fldeff_cut.c b/src/fldeff_cut.c index 1a4260900e..939c15dbf0 100644 --- a/src/fldeff_cut.c +++ b/src/fldeff_cut.c @@ -241,7 +241,7 @@ bool8 SetUpFieldMove_Cut(void) { if (MapGridGetZCoordAt(x, y) == gPlayerFacingPosition.height) { - const u8 tileArrayId = ((sHyperCutStruct[i].y * 5) + 12) + (sHyperCutStruct[i].x); + u8 tileArrayId = ((sHyperCutStruct[i].y * 5) + 12) + (sHyperCutStruct[i].x); tileBehavior = MapGridGetMetatileBehaviorAt(x, y); if (MetatileBehavior_IsPokeGrass(tileBehavior) == TRUE || MetatileBehavior_IsAshGrass(tileBehavior) == TRUE) From 3ddf7175bf5164e252139dd0864a59a1109e5f14 Mon Sep 17 00:00:00 2001 From: PokeCodec Date: Mon, 24 Aug 2020 16:32:21 -0400 Subject: [PATCH 084/101] Match sub_81D5F58 --- src/trainer_hill.c | 73 +++++++++------------------------------------- 1 file changed, 13 insertions(+), 60 deletions(-) diff --git a/src/trainer_hill.c b/src/trainer_hill.c index c5aea14d94..bed8df2e06 100644 --- a/src/trainer_hill.c +++ b/src/trainer_hill.c @@ -356,7 +356,7 @@ static void SetUpDataStruct(void) { if (sHillData == NULL) { - sHillData = AllocZeroed(sizeof(*sHillData)); + sHillData = AllocZeroed(sizeof(struct TrHillStruct2)); sHillData->floorId = gMapHeader.mapLayoutId - LAYOUT_TRAINER_HILL_1F; CpuCopy32(sDataPerTag[gSaveBlock1Ptr->trainerHill.tag], &sHillData->tag, sizeof(sHillData->tag) + 4 * sizeof(struct TrHillFloor)); nullsub_2(); @@ -672,70 +672,23 @@ bool32 LoadTrainerHillFloorObjectEventScripts(void) return TRUE; } -// Functionally equivalent. -#ifdef NONMATCHING static u32 sub_81D5F58(u8 floorId, u32 bit, u32 arg2, u32 arg3) { - u32 var0, var1, var2, var3; + u16 var0, var1; + #ifndef NONMATCHING + register u16 var2 asm("r3"); //compiler keeps wanting to "mov r3, 0x80" instead of "mov r2 0x80" and then later "add r3, r2, 0" + #else + u16 var2; + #endif + u16 var3; - var0 = (sHillData->floors[floorId].display.unk3A0[arg2] >> (15 - bit)) & 1; - var1 = sHillData->floors[floorId].display.data[arg2 * arg3 + bit]; - var3 = 0x200; - var2 = 0x3000; + var0 = (sHillData->floors[floorId].display.unk3A0[arg2] >> (15 - bit) & 1); + var1 = sHillData->floors[floorId].display.data[arg3 * arg2 + bit]; + var2 = 0x200; + var3 = 0x3000; - return ((var0 << 10) | var2) | (var1 | var3); + return ((var0 << 10) | var3) | (var1 | var2); } -#else -NAKED -static u32 sub_81D5F58(u8 floorId, u32 bit, u32 arg2, u32 arg3) -{ - asm_unified("\n\ - push {r4,r5,lr}\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - ldr r4, =sHillData\n\ - ldr r4, [r4]\n\ - mov r12, r4\n\ - lsls r4, r2, 1\n\ - lsls r5, r0, 4\n\ - subs r5, r0\n\ - lsls r5, 3\n\ - subs r5, r0\n\ - lsls r5, 3\n\ - adds r4, r5\n\ - movs r0, 0xE8\n\ - lsls r0, 2\n\ - add r0, r12\n\ - adds r0, r4\n\ - ldrh r0, [r0]\n\ - movs r4, 0xF\n\ - subs r4, r1\n\ - asrs r0, r4\n\ - movs r4, 0x1\n\ - ands r0, r4\n\ - muls r2, r3\n\ - adds r2, r1\n\ - adds r2, r5\n\ - movs r1, 0xA8\n\ - lsls r1, 2\n\ - add r1, r12\n\ - adds r1, r2\n\ - ldrb r1, [r1]\n\ - movs r2, 0x80\n\ - lsls r2, 2\n\ - adds r3, r2, 0\n\ - movs r2, 0xC0\n\ - lsls r2, 6\n\ - lsls r0, 10\n\ - orrs r0, r2\n\ - orrs r1, r3\n\ - orrs r0, r1\n\ - pop {r4,r5}\n\ - pop {r1}\n\ - bx r1\n\ - .pool"); -} -#endif // NONMATCHING void GenerateTrainerHillFloorLayout(u16 *mapArg) { From 96d2066abe917d81c3778b37cde604644bc46297 Mon Sep 17 00:00:00 2001 From: PokeCodec Date: Mon, 24 Aug 2020 17:28:55 -0400 Subject: [PATCH 085/101] Changed assignment from 136 to -120 --- src/list_menu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/list_menu.c b/src/list_menu.c index ebf02bab65..ef55f58723 100644 --- a/src/list_menu.c +++ b/src/list_menu.c @@ -1282,7 +1282,7 @@ void ListMenuSetUpRedOutlineCursorSpriteOamTable(u16 rowWidth, u16 rowHeight, st { subsprites[id] = sSubsprite_RedOutline3; subsprites[id].x = i - 120; - subsprites[id].y = 136; + subsprites[id].y = -120; id++; subsprites[id] = sSubsprite_RedOutline6; From d40870e5f899f0dfc3b706f64aeceb3ea159b5f7 Mon Sep 17 00:00:00 2001 From: PokeCodec Date: Tue, 25 Aug 2020 14:23:12 -0400 Subject: [PATCH 086/101] Match InitContestMonPixels --- src/contest_painting.c | 119 +++-------------------------------------- 1 file changed, 6 insertions(+), 113 deletions(-) diff --git a/src/contest_painting.c b/src/contest_painting.c index 5dd4a70a53..0ea5e8000a 100644 --- a/src/contest_painting.c +++ b/src/contest_painting.c @@ -384,11 +384,9 @@ static void InitContestMonPixels(u16 species, u8 whichSprite) } } -#ifdef NONMATCHING -// functionally equivalent. static void _InitContestMonPixels(u8 *spriteGfx, u16 *palette, u16 (*destPixels)[64][64]) { - u16 tileY, tileX, pixelY, pixelX; + u16 tileY, tileX, pixelY, pixelX, temp; u8 colorIndex; for (tileY = 0; tileY < 8; tileY++) @@ -399,125 +397,20 @@ static void _InitContestMonPixels(u8 *spriteGfx, u16 *palette, u16 (*destPixels) { for (pixelX = 0; pixelX < 8; pixelX++) { - int offset = 32 * (8 * tileY + tileX) + (pixelY * 4 + pixelX / 2); - colorIndex = spriteGfx[offset]; + colorIndex = spriteGfx[(((tileY * 8) + tileX) * 32) + (pixelY << 2) + (pixelX >> 1)]; if (pixelX & 1) colorIndex >>= 4; else - colorIndex &= 0xF; - - if (colorIndex == 0) // transparent pixel - (*destPixels)[8 * tileY + pixelY][tileX * 8 + pixelX] = 0x8000; + colorIndex &= 0xF; // %=16 works here too. Both match + if (colorIndex == 0) // transparent pixel + (*destPixels)[((tileY * 8) + pixelY)][((tileX * 8) + pixelX)] = 0x8000; else - (*destPixels)[8 * tileY + pixelY][tileX * 8 + pixelX] = palette[colorIndex]; + (*destPixels)[((tileY * 8) + pixelY)][((tileX * 8) + pixelX)] = palette[colorIndex]; } } } } } -#else -NAKED -static void _InitContestMonPixels(u8 *spriteGfx, u16 *palette, u16 (*destPixels)[64][64]) -{ - asm_unified("\n\ - push {r4-r7,lr}\n\ - mov r7, r10\n\ - mov r6, r9\n\ - mov r5, r8\n\ - push {r5-r7}\n\ - sub sp, 0xC\n\ - mov r10, r0\n\ - mov r9, r1\n\ - str r2, [sp]\n\ - movs r0, 0\n\ -_08130394:\n\ - movs r3, 0\n\ - adds r1, r0, 0x1\n\ - str r1, [sp, 0x4]\n\ - lsls r0, 3\n\ - str r0, [sp, 0x8]\n\ -_0813039E:\n\ - movs r1, 0\n\ - adds r2, r3, 0x1\n\ - mov r8, r2\n\ - ldr r7, [sp, 0x8]\n\ - adds r0, r7, r3\n\ - lsls r0, 5\n\ - mov r12, r0\n\ - lsls r4, r3, 3\n\ -_081303AE:\n\ - movs r3, 0\n\ - lsls r0, r1, 2\n\ - adds r6, r1, 0x1\n\ - mov r2, r12\n\ - adds r5, r2, r0\n\ - ldr r7, [sp, 0x8]\n\ - adds r0, r7, r1\n\ - lsls r0, 7\n\ - ldr r1, [sp]\n\ - adds r2, r0, r1\n\ -_081303C2:\n\ - lsrs r0, r3, 1\n\ - adds r0, r5, r0\n\ - add r0, r10\n\ - ldrb r1, [r0]\n\ - movs r0, 0x1\n\ - ands r0, r3\n\ - cmp r0, 0\n\ - beq _081303D6\n\ - lsrs r1, 4\n\ - b _081303DA\n\ -_081303D6:\n\ - movs r0, 0xF\n\ - ands r1, r0\n\ -_081303DA:\n\ - cmp r1, 0\n\ - bne _081303EC\n\ - adds r0, r4, r3\n\ - lsls r0, 1\n\ - adds r0, r2\n\ - movs r7, 0x80\n\ - lsls r7, 8\n\ - adds r1, r7, 0\n\ - b _081303F8\n\ -_081303EC:\n\ - adds r0, r4, r3\n\ - lsls r0, 1\n\ - adds r0, r2\n\ - lsls r1, 1\n\ - add r1, r9\n\ - ldrh r1, [r1]\n\ -_081303F8:\n\ - strh r1, [r0]\n\ - adds r0, r3, 0x1\n\ - lsls r0, 16\n\ - lsrs r3, r0, 16\n\ - cmp r3, 0x7\n\ - bls _081303C2\n\ - lsls r0, r6, 16\n\ - lsrs r1, r0, 16\n\ - cmp r1, 0x7\n\ - bls _081303AE\n\ - mov r1, r8\n\ - lsls r0, r1, 16\n\ - lsrs r3, r0, 16\n\ - cmp r3, 0x7\n\ - bls _0813039E\n\ - ldr r2, [sp, 0x4]\n\ - lsls r0, r2, 16\n\ - lsrs r0, 16\n\ - cmp r0, 0x7\n\ - bls _08130394\n\ - add sp, 0xC\n\ - pop {r3-r5}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - mov r10, r5\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0"); -} -#endif #define VRAM_PICTURE_DATA(x, y) (((u16 *)(BG_SCREEN_ADDR(12)))[(y) * 32 + (x)]) From bf1e261177a4a7177173c631c2da68d3d218f7cd Mon Sep 17 00:00:00 2001 From: PokeCodec Date: Tue, 25 Aug 2020 16:03:04 -0400 Subject: [PATCH 087/101] Fix mistakes --- src/contest_painting.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/contest_painting.c b/src/contest_painting.c index 0ea5e8000a..789d300067 100644 --- a/src/contest_painting.c +++ b/src/contest_painting.c @@ -386,7 +386,7 @@ static void InitContestMonPixels(u16 species, u8 whichSprite) static void _InitContestMonPixels(u8 *spriteGfx, u16 *palette, u16 (*destPixels)[64][64]) { - u16 tileY, tileX, pixelY, pixelX, temp; + u16 tileY, tileX, pixelY, pixelX; u8 colorIndex; for (tileY = 0; tileY < 8; tileY++) @@ -402,6 +402,7 @@ static void _InitContestMonPixels(u8 *spriteGfx, u16 *palette, u16 (*destPixels) colorIndex >>= 4; else colorIndex &= 0xF; // %=16 works here too. Both match + if (colorIndex == 0) // transparent pixel (*destPixels)[((tileY * 8) + pixelY)][((tileX * 8) + pixelX)] = 0x8000; else From ba853d6b39be12b8ce6954401d124c6f580a984d Mon Sep 17 00:00:00 2001 From: PokeCodec Date: Tue, 25 Aug 2020 16:08:37 -0400 Subject: [PATCH 088/101] Removed unneeded parenthesis --- src/contest_painting.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/contest_painting.c b/src/contest_painting.c index 789d300067..5ec774d829 100644 --- a/src/contest_painting.c +++ b/src/contest_painting.c @@ -397,16 +397,16 @@ static void _InitContestMonPixels(u8 *spriteGfx, u16 *palette, u16 (*destPixels) { for (pixelX = 0; pixelX < 8; pixelX++) { - colorIndex = spriteGfx[(((tileY * 8) + tileX) * 32) + (pixelY << 2) + (pixelX >> 1)]; + colorIndex = spriteGfx[((tileY * 8) + tileX) * 32 + (pixelY << 2) + (pixelX >> 1)]; if (pixelX & 1) colorIndex >>= 4; else colorIndex &= 0xF; // %=16 works here too. Both match if (colorIndex == 0) // transparent pixel - (*destPixels)[((tileY * 8) + pixelY)][((tileX * 8) + pixelX)] = 0x8000; + (*destPixels)[(tileY * 8 + pixelY)][(tileX * 8 + pixelX)] = 0x8000; else - (*destPixels)[((tileY * 8) + pixelY)][((tileX * 8) + pixelX)] = palette[colorIndex]; + (*destPixels)[(tileY * 8 + pixelY)][(tileX * 8 + pixelX)] = palette[colorIndex]; } } } From a2efccd6d59050b46ab52e323a51e2327f52500f Mon Sep 17 00:00:00 2001 From: PokeCodec Date: Tue, 25 Aug 2020 16:11:23 -0400 Subject: [PATCH 089/101] remove outside parenthesis --- src/contest_painting.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/contest_painting.c b/src/contest_painting.c index 5ec774d829..a0c39dfc7e 100644 --- a/src/contest_painting.c +++ b/src/contest_painting.c @@ -404,9 +404,9 @@ static void _InitContestMonPixels(u8 *spriteGfx, u16 *palette, u16 (*destPixels) colorIndex &= 0xF; // %=16 works here too. Both match if (colorIndex == 0) // transparent pixel - (*destPixels)[(tileY * 8 + pixelY)][(tileX * 8 + pixelX)] = 0x8000; + (*destPixels)[tileY * 8 + pixelY][tileX * 8 + pixelX] = 0x8000; else - (*destPixels)[(tileY * 8 + pixelY)][(tileX * 8 + pixelX)] = palette[colorIndex]; + (*destPixels)[tileY * 8 + pixelY][tileX * 8 + pixelX] = palette[colorIndex]; } } } From 5054cff7e80b42321971782850f4f69eebd42030 Mon Sep 17 00:00:00 2001 From: PokeCodec Date: Wed, 26 Aug 2020 20:27:18 -0400 Subject: [PATCH 090/101] removed fakematch --- src/battle_main.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/src/battle_main.c b/src/battle_main.c index 0ea19dfaa9..799c2f79ae 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -4962,12 +4962,8 @@ static void CheckFocusPunch_ClearVarsBeforeTurnStarts(void) } TryClearRageStatuses(); - gCurrentTurnActionNumber = 0; -{ - // something stupid needed to match - u8 zero; - gCurrentActionFuncId = gActionsByTurnOrder[(zero = 0)]; -} + gCurrentTurnActionNumber = 0; //See comment underneath + gCurrentActionFuncId = gActionsByTurnOrder[gCurrentTurnActionNumber]; //Should be gActionsByTurnOrder[gCurrentTurnActionNumber = 0], but that doesn't match gDynamicBasePower = 0; gBattleStruct->dynamicMoveType = 0; gBattleMainFunc = RunTurnActionsFunctions; From ab73820ce0446fc8db3dd1d4ebbab8cebe24ae9d Mon Sep 17 00:00:00 2001 From: PokeCodec Date: Wed, 26 Aug 2020 22:31:25 -0400 Subject: [PATCH 091/101] more fakematch fixing --- src/link_rfu_2.c | 54 +++++++++++++++++++++--------------------------- 1 file changed, 23 insertions(+), 31 deletions(-) diff --git a/src/link_rfu_2.c b/src/link_rfu_2.c index 3372aa766f..f966fbb1ef 100644 --- a/src/link_rfu_2.c +++ b/src/link_rfu_2.c @@ -923,7 +923,7 @@ static bool32 RfuProcessEnqueuedRecvBlock(void) static void HandleSendFailure(u8 unused, u32 flags) { - s32 i, j; + s32 i, j, temp; const u8 *r10 = Rfu.sendBlock.payload; for (i = 0; i < Rfu.sendBlock.count; i++) @@ -933,14 +933,14 @@ static void HandleSendFailure(u8 unused, u32 flags) sResendBlock16[0] = RFU_COMMAND_0x8900 | i; for (j = 0; j < 7; j++) { - sResendBlock16[j + 1] = (r10[12 * i + (j << 1) + 1] << 8) | r10[12 * i + (j << 1) + 0]; + temp = j << 1; + sResendBlock16[j + 1] = (r10[i * 12 + temp + 1] << 8) | r10[i * 12 + temp]; } for (j = 0; j < 7; j++) { - sResendBlock8[2 * j + 1] = sResendBlock16[j] >> 8; - sResendBlock8[2 * j + 0] = sResendBlock16[j]; - - j++;j--; // Needed to match; + temp = j << 1; + sResendBlock8[temp + 1] = sResendBlock16[j] >> 8; + sResendBlock8[temp + 0] = sResendBlock16[j]&0xff; } RfuSendQueue_Enqueue(&Rfu.sendQueue, sResendBlock8); Rfu.sendBlock.failedFlags |= (1 << i); @@ -1024,8 +1024,7 @@ void sub_800F850(void) static void RfuHandleReceiveCommand(u8 unused) { - u16 i; - u16 j; + u16 i, j; for (i = 0; i < MAX_RFU_PLAYERS; i++) { @@ -1039,7 +1038,7 @@ static void RfuHandleReceiveCommand(u8 unused) if (gRfuLinkStatus->parentChild == MODE_CHILD) { Rfu.playerCount = gRecvCmds[i][1]; - Rfu.multiplayerId = sub_800F74C((u8 *)(gRecvCmds[i] + 2)); + Rfu.multiplayerId = sub_800F74C((u8 *)(&gRecvCmds[i][2])); } break; case RFU_COMMAND_0x8800: @@ -1238,10 +1237,9 @@ void sub_800FE50(void *a0) bool32 Rfu_InitBlockSend(const u8 *src, size_t size) { bool8 r4; - if (Rfu.callback != NULL) - return FALSE; - if (gSendCmd[0] != 0) + if (Rfu.callback != NULL || gSendCmd[0] != 0) return FALSE; + if (Rfu.sendBlock.sending) { sRfuDebug.unk_83++; @@ -1458,8 +1456,7 @@ static void LinkLeaderReadyToExitStandby(void) // RFU equivalent of LinkCB_Standby and LinkCB_StandbyForAll static void Rfu_LinkStandby(void) { - u8 i; - u8 playerCount; + u8 i, playerCount; if (GetMultiplayerId() != 0) { @@ -1555,28 +1552,23 @@ static bool8 CheckForLeavingGroupMembers(void) bool8 memberLeft = FALSE; for (i = 0; i < RFU_CHILD_MAX; i++) { - if (Rfu.partnerSendStatuses[i] < RFU_STATUS_JOIN_GROUP_OK - || Rfu.partnerSendStatuses[i] > RFU_STATUS_JOIN_GROUP_NO) + if (Rfu.partnerSendStatuses[i] == RFU_STATUS_JOIN_GROUP_OK || Rfu.partnerSendStatuses[i] == RFU_STATUS_JOIN_GROUP_NO) + continue; + if (gRfuSlotStatusNI[i]->recv.state == SLOT_STATE_RECV_SUCCESS || gRfuSlotStatusNI[i]->recv.state == SLOT_STATE_RECV_SUCCESS_AND_SENDSIDE_UNKNOWN) { - if (gRfuSlotStatusNI[i]->recv.state == SLOT_STATE_RECV_SUCCESS - || gRfuSlotStatusNI[i]->recv.state == SLOT_STATE_RECV_SUCCESS_AND_SENDSIDE_UNKNOWN) + if (Rfu.partnerRecvStatuses[i] == RFU_STATUS_LEAVE_GROUP_NOTICE) { - if (Rfu.partnerRecvStatuses[i] == RFU_STATUS_LEAVE_GROUP_NOTICE) - { - Rfu.partnerSendStatuses[i] = RFU_STATUS_LEAVE_GROUP; - Rfu.partnerRecvStatuses[i] = RFU_STATUS_10; - rfu_clearSlot(TYPE_NI_RECV, i); - rfu_NI_setSendData(1 << i, 8, &Rfu.partnerSendStatuses[i], 1); - memberLeft = TRUE; - } - - } - else if (gRfuSlotStatusNI[Rfu.childSlot]->recv.state == SLOT_STATE_RECV_FAILED) + Rfu.partnerSendStatuses[i] = RFU_STATUS_LEAVE_GROUP; + Rfu.partnerRecvStatuses[i] = RFU_STATUS_10; rfu_clearSlot(TYPE_NI_RECV, i); - { - + rfu_NI_setSendData(1 << i, 8, &Rfu.partnerSendStatuses[i], 1); + memberLeft = TRUE; } } + else if (gRfuSlotStatusNI[Rfu.childSlot]->recv.state == SLOT_STATE_RECV_FAILED) + { + rfu_clearSlot(TYPE_NI_RECV, i); + } } return memberLeft; } From 58786a7ac03b919254d381dd705ea7a82b5a041c Mon Sep 17 00:00:00 2001 From: Thomas Winwood Date: Fri, 28 Aug 2020 02:25:02 +0100 Subject: [PATCH 092/101] Add MAX_PER_STAT_EVS macro --- include/constants/pokemon.h | 1 + src/pokemon.c | 28 ++++++++++++++-------------- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/include/constants/pokemon.h b/include/constants/pokemon.h index 286726838b..f026fa0e31 100644 --- a/include/constants/pokemon.h +++ b/include/constants/pokemon.h @@ -230,6 +230,7 @@ #define STATUS_PRIMARY_POKERUS 6 #define STATUS_PRIMARY_FAINTED 7 +#define MAX_PER_STAT_EVS 255 #define MAX_TOTAL_EVS 510 #define EV_ITEM_RAISE_LIMIT 100 diff --git a/src/pokemon.c b/src/pokemon.c index 690f83bb13..b93c5f2ffe 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -1898,22 +1898,22 @@ static const u16 sDeoxysBaseStats[] = const u16 gLinkPlayerFacilityClasses[NUM_MALE_LINK_FACILITY_CLASSES + NUM_FEMALE_LINK_FACILITY_CLASSES] = { // Male classes - FACILITY_CLASS_COOLTRAINER_M, - FACILITY_CLASS_BLACK_BELT, + FACILITY_CLASS_COOLTRAINER_M, + FACILITY_CLASS_BLACK_BELT, FACILITY_CLASS_CAMPER, - FACILITY_CLASS_YOUNGSTER, - FACILITY_CLASS_PSYCHIC_M, + FACILITY_CLASS_YOUNGSTER, + FACILITY_CLASS_PSYCHIC_M, FACILITY_CLASS_BUG_CATCHER, - FACILITY_CLASS_PKMN_BREEDER_M, + FACILITY_CLASS_PKMN_BREEDER_M, FACILITY_CLASS_GUITARIST, // Female Classes - FACILITY_CLASS_COOLTRAINER_F, - FACILITY_CLASS_HEX_MANIAC, + FACILITY_CLASS_COOLTRAINER_F, + FACILITY_CLASS_HEX_MANIAC, FACILITY_CLASS_PICNICKER, - FACILITY_CLASS_LASS, - FACILITY_CLASS_PSYCHIC_F, + FACILITY_CLASS_LASS, + FACILITY_CLASS_PSYCHIC_F, FACILITY_CLASS_BATTLE_GIRL, - FACILITY_CLASS_PKMN_BREEDER_F, + FACILITY_CLASS_PKMN_BREEDER_F, FACILITY_CLASS_BEAUTY }; @@ -5806,7 +5806,7 @@ void AdjustFriendship(struct Pokemon *mon, u8 event) if (friendship > 199) friendshipLevel++; - if ((event != FRIENDSHIP_EVENT_WALKING || !(Random() & 1)) + if ((event != FRIENDSHIP_EVENT_WALKING || !(Random() & 1)) && (event != FRIENDSHIP_EVENT_LEAGUE_BATTLE || IS_LEAGUE_BATTLE)) { s8 mod = sFriendshipEventModifiers[event][friendshipLevel]; @@ -5848,7 +5848,7 @@ void MonGainEVs(struct Pokemon *mon, u16 defeatedSpecies) { if (totalEVs >= MAX_TOTAL_EVS) break; - + if (CheckPartyHasHadPokerus(mon, 0)) multiplier = 2; else @@ -5895,9 +5895,9 @@ void MonGainEVs(struct Pokemon *mon, u16 defeatedSpecies) if (totalEVs + (s16)evIncrease > MAX_TOTAL_EVS) evIncrease = ((s16)evIncrease + MAX_TOTAL_EVS) - (totalEVs + evIncrease); - if (evs[i] + (s16)evIncrease > 255) + if (evs[i] + (s16)evIncrease > MAX_PER_STAT_EVS) { - int val1 = (s16)evIncrease + 255; + int val1 = (s16)evIncrease + MAX_PER_STAT_EVS; int val2 = evs[i] + evIncrease; evIncrease = val1 - val2; } From 4ac10eb807b1c752c7551dac3934e17b0c0623df Mon Sep 17 00:00:00 2001 From: pi1024e <49824824+pi1024e@users.noreply.github.com> Date: Fri, 28 Aug 2020 11:52:48 -0400 Subject: [PATCH 093/101] Make formatting corrections --- src/battle_main.c | 2 +- src/link_rfu_2.c | 27 ++++++++++++--------------- 2 files changed, 13 insertions(+), 16 deletions(-) diff --git a/src/battle_main.c b/src/battle_main.c index 799c2f79ae..627f7514f1 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -4963,7 +4963,7 @@ static void CheckFocusPunch_ClearVarsBeforeTurnStarts(void) TryClearRageStatuses(); gCurrentTurnActionNumber = 0; //See comment underneath - gCurrentActionFuncId = gActionsByTurnOrder[gCurrentTurnActionNumber]; //Should be gActionsByTurnOrder[gCurrentTurnActionNumber = 0], but that doesn't match + gCurrentActionFuncId = gActionsByTurnOrder[gCurrentTurnActionNumber]; //Should be gActionsByTurnOrder[(gCurrentTurnActionNumber = 0)], but that doesn't match gDynamicBasePower = 0; gBattleStruct->dynamicMoveType = 0; gBattleMainFunc = RunTurnActionsFunctions; diff --git a/src/link_rfu_2.c b/src/link_rfu_2.c index f966fbb1ef..43067405db 100644 --- a/src/link_rfu_2.c +++ b/src/link_rfu_2.c @@ -876,8 +876,7 @@ static void sub_800F498(u16 *a0, u8 *a1) static bool32 RfuProcessEnqueuedRecvBlock(void) { - u8 i; - u8 j; + u8 i, j; u8 sp00[MAX_RFU_PLAYERS * (2 * (CMD_LENGTH - 1))]; u8 sp48[2 * (CMD_LENGTH - 1)]; u8 status; @@ -936,11 +935,12 @@ static void HandleSendFailure(u8 unused, u32 flags) temp = j << 1; sResendBlock16[j + 1] = (r10[i * 12 + temp + 1] << 8) | r10[i * 12 + temp]; } + for (j = 0; j < 7; j++) { temp = j << 1; sResendBlock8[temp + 1] = sResendBlock16[j] >> 8; - sResendBlock8[temp + 0] = sResendBlock16[j]&0xff; + sResendBlock8[temp + 0] = sResendBlock16[j] & 0xff; } RfuSendQueue_Enqueue(&Rfu.sendQueue, sResendBlock8); Rfu.sendBlock.failedFlags |= (1 << i); @@ -1417,16 +1417,12 @@ void Rfu_SetCloseLinkCallback(void) static void SendReadyExitStandbyUntilAllReady(void) { - u8 playerCount; - u8 i; + u8 i, playerCount; - if (GetMultiplayerId() != 0) + if (GetMultiplayerId() != 0 && Rfu.recvQueue.count == 0 && Rfu.resendExitStandbyTimer > 60) { - if (Rfu.recvQueue.count == 0 && Rfu.resendExitStandbyTimer > 60) - { - RfuPrepareSendBuffer(RFU_COMMAND_READY_EXIT_STANDBY); - Rfu.resendExitStandbyTimer = 0; - } + RfuPrepareSendBuffer(RFU_COMMAND_READY_EXIT_STANDBY); + Rfu.resendExitStandbyTimer = 0; } playerCount = GetLinkPlayerCount(); for (i = 0; i < playerCount; i++) @@ -1552,9 +1548,11 @@ static bool8 CheckForLeavingGroupMembers(void) bool8 memberLeft = FALSE; for (i = 0; i < RFU_CHILD_MAX; i++) { - if (Rfu.partnerSendStatuses[i] == RFU_STATUS_JOIN_GROUP_OK || Rfu.partnerSendStatuses[i] == RFU_STATUS_JOIN_GROUP_NO) + if (Rfu.partnerSendStatuses[i] == RFU_STATUS_JOIN_GROUP_OK + || Rfu.partnerSendStatuses[i] == RFU_STATUS_JOIN_GROUP_NO) continue; - if (gRfuSlotStatusNI[i]->recv.state == SLOT_STATE_RECV_SUCCESS || gRfuSlotStatusNI[i]->recv.state == SLOT_STATE_RECV_SUCCESS_AND_SENDSIDE_UNKNOWN) + if (gRfuSlotStatusNI[i]->recv.state == SLOT_STATE_RECV_SUCCESS + || gRfuSlotStatusNI[i]->recv.state == SLOT_STATE_RECV_SUCCESS_AND_SENDSIDE_UNKNOWN) { if (Rfu.partnerRecvStatuses[i] == RFU_STATUS_LEAVE_GROUP_NOTICE) { @@ -2089,8 +2087,7 @@ static void sub_80111FC(void) static void sub_801120C(u8 msg, u8 paramCount) { - u8 i; - u8 disconnectFlag = 0; + u8 i, disconnectFlag = 0; switch (msg) { case LMAN_MSG_INITIALIZE_COMPLETED: From 5faf2507080e3a3a37651cf0e89fdaef976fedd6 Mon Sep 17 00:00:00 2001 From: pi1024e <49824824+pi1024e@users.noreply.github.com> Date: Fri, 28 Aug 2020 11:59:16 -0400 Subject: [PATCH 094/101] format --- src/battle_main.c | 57 ++++++++++++++++++++--------------------------- 1 file changed, 24 insertions(+), 33 deletions(-) diff --git a/src/battle_main.c b/src/battle_main.c index 627f7514f1..a62f3d86b9 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -4851,40 +4851,34 @@ static void SetActionsAndBattlersTurnOrder(void) gBattleStruct->focusPunchBattlerId = 0; return; } - else + for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) { - for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) + if (gChosenActionByBattler[gActiveBattler] == B_ACTION_USE_ITEM || gChosenActionByBattler[gActiveBattler] == B_ACTION_SWITCH) { - if (gChosenActionByBattler[gActiveBattler] == B_ACTION_USE_ITEM || gChosenActionByBattler[gActiveBattler] == B_ACTION_SWITCH) - { - gActionsByTurnOrder[turnOrderId] = gChosenActionByBattler[gActiveBattler]; - gBattlerByTurnOrder[turnOrderId] = gActiveBattler; - turnOrderId++; - } + gActionsByTurnOrder[turnOrderId] = gChosenActionByBattler[gActiveBattler]; + gBattlerByTurnOrder[turnOrderId] = gActiveBattler; + turnOrderId++; } - for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) + } + for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) + { + if (gChosenActionByBattler[gActiveBattler] != B_ACTION_USE_ITEM && gChosenActionByBattler[gActiveBattler] != B_ACTION_SWITCH) { - if (gChosenActionByBattler[gActiveBattler] != B_ACTION_USE_ITEM && gChosenActionByBattler[gActiveBattler] != B_ACTION_SWITCH) - { - gActionsByTurnOrder[turnOrderId] = gChosenActionByBattler[gActiveBattler]; - gBattlerByTurnOrder[turnOrderId] = gActiveBattler; - turnOrderId++; - } + gActionsByTurnOrder[turnOrderId] = gChosenActionByBattler[gActiveBattler]; + gBattlerByTurnOrder[turnOrderId] = gActiveBattler; + turnOrderId++; } - for (i = 0; i < gBattlersCount - 1; i++) + } + for (i = 0; i < gBattlersCount - 1; i++) + { + for (j = i + 1; j < gBattlersCount; j++) { - for (j = i + 1; j < gBattlersCount; j++) + u8 battler1 = gBattlerByTurnOrder[i]; + u8 battler2 = gBattlerByTurnOrder[j]; + if (gActionsByTurnOrder[i] != B_ACTION_USE_ITEM && gActionsByTurnOrder[j] != B_ACTION_USE_ITEM && gActionsByTurnOrder[i] != B_ACTION_SWITCH && gActionsByTurnOrder[j] != B_ACTION_SWITCH) { - u8 battler1 = gBattlerByTurnOrder[i]; - u8 battler2 = gBattlerByTurnOrder[j]; - if (gActionsByTurnOrder[i] != B_ACTION_USE_ITEM - && gActionsByTurnOrder[j] != B_ACTION_USE_ITEM - && gActionsByTurnOrder[i] != B_ACTION_SWITCH - && gActionsByTurnOrder[j] != B_ACTION_SWITCH) - { - if (GetWhoStrikesFirst(battler1, battler2, FALSE)) - SwapTurnOrder(i, j); - } + if (GetWhoStrikesFirst(battler1, battler2, FALSE)) + SwapTurnOrder(i, j); } } } @@ -4986,13 +4980,10 @@ static void RunTurnActionsFunctions(void) gHitMarker &= ~(HITMARKER_x100000); gBattleMainFunc = sEndTurnFuncsTable[gBattleOutcome & 0x7F]; } - else + else if (gBattleStruct->savedTurnActionNumber != gCurrentTurnActionNumber) // action turn has been done, clear hitmarker bits for another battlerId { - if (gBattleStruct->savedTurnActionNumber != gCurrentTurnActionNumber) // action turn has been done, clear hitmarker bits for another battlerId - { - gHitMarker &= ~(HITMARKER_NO_ATTACKSTRING); - gHitMarker &= ~(HITMARKER_UNABLE_TO_USE_MOVE); - } + gHitMarker &= ~(HITMARKER_NO_ATTACKSTRING); + gHitMarker &= ~(HITMARKER_UNABLE_TO_USE_MOVE); } } From a2fb98934e79e9f5a9903056a888000677eccee6 Mon Sep 17 00:00:00 2001 From: Eduardo Quezada Date: Fri, 28 Aug 2020 13:31:58 -0400 Subject: [PATCH 095/101] Partially document item_menu.c --- include/menu.h | 8 +- src/battle_pyramid_bag.c | 8 +- src/item_menu.c | 156 ++++++++++++++++++++------------------- src/menu.c | 56 ++++++-------- 4 files changed, 116 insertions(+), 112 deletions(-) diff --git a/include/menu.h b/include/menu.h index a57b3718f6..1bd8007426 100644 --- a/include/menu.h +++ b/include/menu.h @@ -8,6 +8,12 @@ #define MENU_NOTHING_CHOSEN -2 #define MENU_B_PRESSED -1 +#define MENU_CURSOR_DELTA_NONE 0 +#define MENU_CURSOR_DELTA_UP -1 +#define MENU_CURSOR_DELTA_DOWN 1 +#define MENU_CURSOR_DELTA_LEFT -1 +#define MENU_CURSOR_DELTA_RIGHT 1 + enum { SAVE_MENU_NAME, @@ -77,7 +83,7 @@ void AddTextPrinterForMessage(bool8 allowSkippingDelayWithButtonPress); void AddItemMenuActionTextPrinters(u8 windowId, u8 fontId, u8 left, u8 top, u8 letterSpacing, u8 lineHeight, u8 itemCount, const struct MenuAction *strs, const u8 *a8); void sub_8198DBC(u8 windowId, u8 fontId, u8 left, u8 top, u8 a4, u8 itemCount, u8 itemCount2, const struct MenuAction *strs, const u8 *a8); u8 sub_8199944(u8 windowId, u8 optionWidth, u8 columns, u8 rows, u8 initialCursorPos); -u8 sub_8199134(s8, s8); +u8 ChangeListMenuCursorPosition(s8 deltaX, s8 deltaY); u8 GetStartMenuWindowId(void); void ListMenuLoadStdPalAt(u8, u8); u8 Menu_MoveCursor(s8 cursorDelta); diff --git a/src/battle_pyramid_bag.c b/src/battle_pyramid_bag.c index 33daed80ce..e038e71e18 100644 --- a/src/battle_pyramid_bag.c +++ b/src/battle_pyramid_bag.c @@ -970,7 +970,7 @@ static void HandleMenuActionInput(u8 taskId) if (id > 0 && IsValidMenuAction(id - 2)) { PlaySE(SE_SELECT); - sub_8199134(0, -1); + ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_NONE, MENU_CURSOR_DELTA_UP); } } else if (gMain.newKeys & DPAD_DOWN) @@ -978,7 +978,7 @@ static void HandleMenuActionInput(u8 taskId) if (id < gPyramidBagResources->menuActionsCount - 2 && IsValidMenuAction(id + 2)) { PlaySE(SE_SELECT); - sub_8199134(0, 1); + ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_NONE, MENU_CURSOR_DELTA_DOWN); } } else if (gMain.newKeys & DPAD_LEFT || GetLRKeysPressed() == MENU_L_PRESSED) @@ -986,7 +986,7 @@ static void HandleMenuActionInput(u8 taskId) if (id & 1 && IsValidMenuAction(id - 1)) { PlaySE(SE_SELECT); - sub_8199134(-1, 0); + ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_LEFT, MENU_CURSOR_DELTA_NONE); } } else if (gMain.newKeys & DPAD_RIGHT || GetLRKeysPressed() == MENU_R_PRESSED) @@ -994,7 +994,7 @@ static void HandleMenuActionInput(u8 taskId) if (!(id & 1) && IsValidMenuAction(id + 1)) { PlaySE(SE_SELECT); - sub_8199134(1, 0); + ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_RIGHT, MENU_CURSOR_DELTA_NONE); } } else if (gMain.newKeys & A_BUTTON) diff --git a/src/item_menu.c b/src/item_menu.c index ae09ec7edf..3ae71bc0f2 100755 --- a/src/item_menu.c +++ b/src/item_menu.c @@ -52,6 +52,13 @@ #include "battle_pike.h" #include "constants/rgb.h" +enum +{ + SWITCH_POCKET_NONE, + SWITCH_POCKET_LEFT, + SWITCH_POCKET_RIGHT +}; + void GoToBagMenu(u8 bagMenuType, u8 pocketId, void (*postExitMenuMainCallback2)()); void CB2_Bag(void); bool8 SetupBagMenu(void); @@ -62,7 +69,7 @@ void AllocateBagItemListBuffers(void); void LoadBagItemListBuffers(u8); void BagMenu_PrintPocketNames(const u8*, const u8*); void BagMenu_CopyPocketNameToWindow(u32); -void BagMenu_DrawPocketIndicatorSquare(u8, u8); +static void DrawPocketIndicatorSquare(u8 x, bool8 isCurrentPocket); void CreatePocketScrollArrowPair(void); void CreatePocketSwitchArrowPair(void); void BagMenu_PrepareTMHMMoveWindow(void); @@ -80,16 +87,16 @@ u16 BagGetQuantityByPocketPosition(u8, u16); void BagDestroyPocketSwitchArrowPair(void); void TaskCloseBagMenu_2(u8); u8 AddItemMessageWindow(u8); -void bag_menu_RemoveBagItem_message_window(u8); +void BagMenu_RemoveBagItemMessageindow(u8); void set_callback3_to_bag(u8); void PrintItemDepositAmount(u8, s16); -u8 BagMenu_AddWindow(u8); -u8 GetSwitchBagPocketDirection(void); -void SwitchBagPocket(u8, s16, u16); -bool8 sub_81AC2C0(void); -void BagMenu_SwapItems(u8); -void sub_81AC10C(u8); -void sub_81AC3C0(u8); +static u8 BagMenu_AddWindow(u8); +static u8 GetSwitchBagPocketDirection(void); +static void SwitchBagPocket(u8, s16, u16); +static bool8 CanSwapItems(void); +static void BagMenu_SwapItems(u8 taskId); +static void sub_81AC10C(u8); +static void Task_HandleSwappingItemsInput(u8); void sub_81AC498(u8); void sub_81AC590(u8); void PrintTMHMMoveData(u16); @@ -106,19 +113,18 @@ void BagMenu_YesNo(u8, u8, const struct YesNoFuncTable*); void Task_ActuallyToss(u8); void ItemMenu_Cancel(u8); void sub_81AD350(u8); -void BagMenu_PrintItemCantBeHeld(u8); -void DisplayCurrentMoneyWindow(void); -void DisplaySellItemPriceAndConfirm(u8); +static void BagMenu_PrintItemCantBeHeld(u8); +static void DisplayCurrentMoneyWindow(void); +static void DisplaySellItemPriceAndConfirm(u8); void sub_81AD730(u8); void sub_81AD6E4(u8); -void bag_menu_remove_money_window(void); -void bag_menu_RemoveBagItem_message_window(u8); -void Task_BuyHowManyDialogueHandleInput(u8); -void sub_81AD8C8(u8); -void sub_81AD9C0(u8); -void sub_81ADB14(u8); -void sub_81ADA7C(u8); -void sub_81ADC0C(u8); +static void RemoveMoneyWindow(void); +static void Task_SellHowManyDialogueHandleInput(u8); +static void BagMenu_Sell_UpdateItemListAndMoney(u8); +static void BagMenu_Sell_WaitForABPress(u8); +static void BagMenu_TryDepositItem(u8); +static void Task_ChooseHowManyToDeposit(u8 taskId); +static void BagMenu_Deposit_WaitForABPress(u8); void CB2_ApprenticeExitBagMenu(void); void CB2_FavorLadyExitBagMenu(void); void CB2_QuizLadyExitBagMenu(void); @@ -686,7 +692,7 @@ bool8 SetupBagMenu(void) case 13: BagMenu_PrintPocketNames(gPocketNamesStringsTable[gBagPositionStruct.pocket], 0); BagMenu_CopyPocketNameToWindow(0); - BagMenu_DrawPocketIndicatorSquare(gBagPositionStruct.pocket, 1); + DrawPocketIndicatorSquare(gBagPositionStruct.pocket, TRUE); gMain.state++; break; case 14: @@ -1109,7 +1115,7 @@ void BagMenu_InitListsMenu(u8 taskId) s16* data = gTasks[taskId].data; u16* scrollPos = &gBagPositionStruct.scrollPosition[gBagPositionStruct.pocket]; u16* cursorPos = &gBagPositionStruct.cursorPosition[gBagPositionStruct.pocket]; - bag_menu_RemoveBagItem_message_window(4); + BagMenu_RemoveBagItemMessageindow(4); DestroyListMenuTask(data[0], scrollPos, cursorPos); UpdatePocketItemList(gBagPositionStruct.pocket); SetInitialScrollAndCursorPositions(gBagPositionStruct.pocket); @@ -1152,16 +1158,16 @@ void Task_BagMenu_HandleInput(u8 taskId) { switch (GetSwitchBagPocketDirection()) { - case 1: - SwitchBagPocket(taskId, -1, 0); + case SWITCH_POCKET_LEFT: + SwitchBagPocket(taskId, MENU_CURSOR_DELTA_LEFT, 0); return; - case 2: - SwitchBagPocket(taskId, 1, 0); + case SWITCH_POCKET_RIGHT: + SwitchBagPocket(taskId, MENU_CURSOR_DELTA_RIGHT, 0); return; default: if (gMain.newKeys & SELECT_BUTTON) { - if (sub_81AC2C0() == 1) + if (CanSwapItems() == TRUE) { ListMenuGetScrollAndRow(data[0], scrollPos, cursorPos); if ((*scrollPos + *cursorPos) != gBagMenu->numItemStacks[gBagPositionStruct.pocket] - 1) @@ -1215,26 +1221,26 @@ void set_callback3_to_bag(u8 taskId) gTasks[taskId].func = Task_BagMenu_HandleInput; } -u8 GetSwitchBagPocketDirection(void) +static u8 GetSwitchBagPocketDirection(void) { u8 LRKeys; if (gBagMenu->pocketSwitchDisabled) - return 0; + return SWITCH_POCKET_NONE; LRKeys = GetLRKeysPressed(); if ((gMain.newKeys & DPAD_LEFT) || LRKeys == MENU_L_PRESSED) { PlaySE(SE_SELECT); - return 1; + return SWITCH_POCKET_LEFT; } if ((gMain.newKeys & DPAD_RIGHT) || LRKeys == MENU_R_PRESSED) { PlaySE(SE_SELECT); - return 2; + return SWITCH_POCKET_RIGHT; } - return 0; + return SWITCH_POCKET_NONE; } -void ChangeBagPocketId(u8 *bagPocketId, s8 deltaBagPocketId) +static void ChangeBagPocketId(u8 *bagPocketId, s8 deltaBagPocketId) { if (deltaBagPocketId == 1 && *bagPocketId == POCKETS_COUNT - 1) *bagPocketId = 0; @@ -1244,7 +1250,7 @@ void ChangeBagPocketId(u8 *bagPocketId, s8 deltaBagPocketId) *bagPocketId += deltaBagPocketId; } -void SwitchBagPocket(u8 taskId, s16 deltaBagPocketId, u16 a3) +static void SwitchBagPocket(u8 taskId, s16 deltaBagPocketId, u16 a3) { s16* data = gTasks[taskId].data; u8 pocketId; @@ -1263,7 +1269,7 @@ void SwitchBagPocket(u8 taskId, s16 deltaBagPocketId, u16 a3) } pocketId = gBagPositionStruct.pocket; ChangeBagPocketId(&pocketId, deltaBagPocketId); - if (deltaBagPocketId == 1) + if (deltaBagPocketId == MENU_CURSOR_DELTA_RIGHT) { BagMenu_PrintPocketNames(gPocketNamesStringsTable[gBagPositionStruct.pocket], gPocketNamesStringsTable[pocketId]); BagMenu_CopyPocketNameToWindow(0); @@ -1273,8 +1279,8 @@ void SwitchBagPocket(u8 taskId, s16 deltaBagPocketId, u16 a3) BagMenu_PrintPocketNames(gPocketNamesStringsTable[pocketId], gPocketNamesStringsTable[gBagPositionStruct.pocket]); BagMenu_CopyPocketNameToWindow(8); } - BagMenu_DrawPocketIndicatorSquare(gBagPositionStruct.pocket, 0); - BagMenu_DrawPocketIndicatorSquare(pocketId, 1); + DrawPocketIndicatorSquare(gBagPositionStruct.pocket, FALSE); + DrawPocketIndicatorSquare(pocketId, TRUE); FillBgTilemapBufferRect_Palette0(2, 11, 14, 2, 15, 16); ScheduleBgCopyTilemapToVram(2); SetBagVisualPocketId(pocketId, 1); @@ -1291,15 +1297,15 @@ void sub_81AC10C(u8 taskId) { switch (GetSwitchBagPocketDirection()) { - case 1: + case SWITCH_POCKET_LEFT: ChangeBagPocketId(&gBagPositionStruct.pocket, data[11]); SwitchTaskToFollowupFunc(taskId); - SwitchBagPocket(taskId, -1, 1); + SwitchBagPocket(taskId, MENU_CURSOR_DELTA_LEFT, 1); return; - case 2: + case SWITCH_POCKET_RIGHT: ChangeBagPocketId(&gBagPositionStruct.pocket, data[11]); SwitchTaskToFollowupFunc(taskId); - SwitchBagPocket(taskId, 1, 1); + SwitchBagPocket(taskId, MENU_CURSOR_DELTA_RIGHT, 1); return; } } @@ -1336,16 +1342,16 @@ void sub_81AC23C(u8 a) ScheduleBgCopyTilemapToVram(2); } -void BagMenu_DrawPocketIndicatorSquare(u8 x, u8 is_current_bag) +static void DrawPocketIndicatorSquare(u8 x, bool8 isCurrentPocket) { - if (is_current_bag == 0) + if (!isCurrentPocket) FillBgTilemapBufferRect_Palette0(2, 0x1017, x + 5, 3, 1, 1); else FillBgTilemapBufferRect_Palette0(2, 0x102B, x + 5, 3, 1, 1); ScheduleBgCopyTilemapToVram(2); } -bool8 sub_81AC2C0(void) +static bool8 CanSwapItems(void) { if (gBagPositionStruct.location <= ITEMMENULOCATION_BATTLE) { @@ -1370,10 +1376,10 @@ void BagMenu_SwapItems(u8 taskId) sub_80D4FEC(data[1]); BagDestroyPocketSwitchArrowPair(); BagMenu_PrintCursor_(data[0], 2); - gTasks[taskId].func = sub_81AC3C0; + gTasks[taskId].func = Task_HandleSwappingItemsInput; } -void sub_81AC3C0(u8 taskId) +static void Task_HandleSwappingItemsInput(u8 taskId) { s16* data = gTasks[taskId].data; int input; @@ -1642,7 +1648,7 @@ void Task_HandleOutOfBattleItemMenuInput(u8 taskId) if (cursorPos > 0 && sub_81ACDFC(cursorPos - 2)) { PlaySE(SE_SELECT); - sub_8199134(0, -1); + ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_NONE, MENU_CURSOR_DELTA_UP); } } else if (gMain.newKeys & DPAD_DOWN) @@ -1650,7 +1656,7 @@ void Task_HandleOutOfBattleItemMenuInput(u8 taskId) if (cursorPos < (gBagMenu->contextMenuNumItems - 2) && sub_81ACDFC(cursorPos + 2)) { PlaySE(SE_SELECT); - sub_8199134(0, 1); + ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_NONE, MENU_CURSOR_DELTA_DOWN); } } else if ((gMain.newKeys & DPAD_LEFT) || GetLRKeysPressed() == MENU_L_PRESSED) @@ -1658,7 +1664,7 @@ void Task_HandleOutOfBattleItemMenuInput(u8 taskId) if ((cursorPos & 1) && sub_81ACDFC(cursorPos - 1)) { PlaySE(SE_SELECT); - sub_8199134(-1, 0); + ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_LEFT, MENU_CURSOR_DELTA_NONE); } } else if ((gMain.newKeys & DPAD_RIGHT) || GetLRKeysPressed() == MENU_R_PRESSED) @@ -1666,7 +1672,7 @@ void Task_HandleOutOfBattleItemMenuInput(u8 taskId) if (!(cursorPos & 1) && sub_81ACDFC(cursorPos + 1)) { PlaySE(SE_SELECT); - sub_8199134(1, 0); + ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_RIGHT, MENU_CURSOR_DELTA_NONE); } } else if (gMain.newKeys & A_BUTTON) @@ -1869,7 +1875,7 @@ void BagMenu_PrintThereIsNoPokemon(u8 taskId) DisplayItemMessage(taskId, 1, gText_NoPokemon, sub_81AD350); } -void BagMenu_PrintItemCantBeHeld(u8 taskId) +static void BagMenu_PrintItemCantBeHeld(u8 taskId) { CopyItemName(gSpecialVar_ItemId, gStringVar1); StringExpandPlaceholders(gStringVar4, gText_Var1CantBeHeld); @@ -2010,7 +2016,7 @@ void Task_ItemContext_Sell(u8 taskId) } } -void DisplaySellItemPriceAndConfirm(u8 taskId) +static void DisplaySellItemPriceAndConfirm(u8 taskId) { s16* data = gTasks[taskId].data; @@ -2028,8 +2034,8 @@ void BagMenu_CancelSell(u8 taskId) { s16* data = gTasks[taskId].data; - bag_menu_remove_money_window(); - bag_menu_RemoveBagItem_message_window(4); + RemoveMoneyWindow(); + BagMenu_RemoveBagItemMessageindow(4); BagMenu_PrintCursor_(data[0], 0); set_callback3_to_bag(taskId); } @@ -2041,10 +2047,10 @@ void sub_81AD730(u8 taskId) PrintItemSoldAmount(windowId, 1, (ItemId_GetPrice(gSpecialVar_ItemId) / 2) * tItemCount); DisplayCurrentMoneyWindow(); - gTasks[taskId].func = Task_BuyHowManyDialogueHandleInput; + gTasks[taskId].func = Task_SellHowManyDialogueHandleInput; } -void Task_BuyHowManyDialogueHandleInput(u8 taskId) +static void Task_SellHowManyDialogueHandleInput(u8 taskId) { s16* data = gTasks[taskId].data; @@ -2062,9 +2068,9 @@ void Task_BuyHowManyDialogueHandleInput(u8 taskId) { PlaySE(SE_SELECT); BagMenu_PrintCursor_(data[0], 0); - bag_menu_remove_money_window(); + RemoveMoneyWindow(); BagMenu_RemoveWindow(8); - bag_menu_RemoveBagItem_message_window(4); + BagMenu_RemoveBagItemMessageindow(4); set_callback3_to_bag(taskId); } } @@ -2076,10 +2082,10 @@ void BagMenu_ConfirmSell(u8 taskId) CopyItemName(gSpecialVar_ItemId, gStringVar2); ConvertIntToDecimalStringN(gStringVar1, (ItemId_GetPrice(gSpecialVar_ItemId) / 2) * tItemCount, STR_CONV_MODE_LEFT_ALIGN, 6); StringExpandPlaceholders(gStringVar4, gText_TurnedOverVar1ForVar2); - DisplayItemMessage(taskId, 1, gStringVar4, sub_81AD8C8); + DisplayItemMessage(taskId, 1, gStringVar4, BagMenu_Sell_UpdateItemListAndMoney); } -void sub_81AD8C8(u8 taskId) +static void BagMenu_Sell_UpdateItemListAndMoney(u8 taskId) { s16* data = gTasks[taskId].data; u16* scrollPos = &gBagPositionStruct.scrollPosition[gBagPositionStruct.pocket]; @@ -2095,15 +2101,15 @@ void sub_81AD8C8(u8 taskId) data[0] = ListMenuInit(&gMultiuseListMenuTemplate, *scrollPos, *cursorPos); BagMenu_PrintCursor_(data[0], 2); PrintMoneyAmountInMoneyBox(gBagMenu->windowPointers[9], GetMoney(&gSaveBlock1Ptr->money), 0); - gTasks[taskId].func = sub_81AD9C0; + gTasks[taskId].func = BagMenu_Sell_WaitForABPress; } -void sub_81AD9C0(u8 taskId) +static void BagMenu_Sell_WaitForABPress(u8 taskId) { if (gMain.newKeys & (A_BUTTON | B_BUTTON)) { PlaySE(SE_SELECT); - bag_menu_remove_money_window(); + RemoveMoneyWindow(); BagMenu_InitListsMenu(taskId); } } @@ -2115,7 +2121,7 @@ void Task_ItemContext_Deposit(u8 taskId) tItemCount = 1; if (data[2] == 1) { - sub_81ADB14(taskId); + BagMenu_TryDepositItem(taskId); } else { @@ -2124,11 +2130,11 @@ void Task_ItemContext_Deposit(u8 taskId) FillWindowPixelBuffer(1, PIXEL_FILL(0)); BagMenu_Print(1, 1, gStringVar4, 3, 1, 0, 0, 0, 0); sub_81ABC3C(7); - gTasks[taskId].func = sub_81ADA7C; + gTasks[taskId].func = Task_ChooseHowManyToDeposit; } } -void sub_81ADA7C(u8 taskId) +static void Task_ChooseHowManyToDeposit(u8 taskId) { s16* data = gTasks[taskId].data; @@ -2140,7 +2146,7 @@ void sub_81ADA7C(u8 taskId) { PlaySE(SE_SELECT); BagMenu_RemoveWindow(7); - sub_81ADB14(taskId); + BagMenu_TryDepositItem(taskId); } else if (gMain.newKeys & B_BUTTON) { @@ -2152,7 +2158,7 @@ void sub_81ADA7C(u8 taskId) } } -void sub_81ADB14(u8 taskId) +static void BagMenu_TryDepositItem(u8 taskId) { s16* data = gTasks[taskId].data; @@ -2160,7 +2166,7 @@ void sub_81ADB14(u8 taskId) if (ItemId_GetImportance(gSpecialVar_ItemId)) { BagMenu_Print(1, 1, gText_CantStoreImportantItems, 3, 1, 0, 0, 0, 0); - gTasks[taskId].func = sub_81ADC0C; + gTasks[taskId].func = BagMenu_Deposit_WaitForABPress; } else if (AddPCItem(gSpecialVar_ItemId, tItemCount) == TRUE) { @@ -2173,11 +2179,11 @@ void sub_81ADB14(u8 taskId) else { BagMenu_Print(1, 1, gText_NoRoomForItems, 3, 1, 0, 0, 0, 0); - gTasks[taskId].func = sub_81ADC0C; + gTasks[taskId].func = BagMenu_Deposit_WaitForABPress; } } -void sub_81ADC0C(u8 taskId) +static void BagMenu_Deposit_WaitForABPress(u8 taskId) { s16* data = gTasks[taskId].data; @@ -2248,7 +2254,7 @@ void Task_WallyTutorialBagMenu(u8 taskId) { case 0x66: PlaySE(SE_SELECT); - SwitchBagPocket(taskId, 1, 0); + SwitchBagPocket(taskId, MENU_CURSOR_DELTA_RIGHT, 0); data[8]++; break; case 0xCC: @@ -2414,7 +2420,7 @@ u8 AddItemMessageWindow(u8 which) return *ptr; } -void bag_menu_RemoveBagItem_message_window(u8 which) +void BagMenu_RemoveBagItemMessageindow(u8 which) { u8 *ptr = &gBagMenu->windowPointers[which]; if (*ptr != 0xFF) @@ -2433,14 +2439,14 @@ void BagMenu_YesNo(u8 a, u8 b, const struct YesNoFuncTable *funcTable) CreateYesNoMenuWithCallbacks(a, &sContextMenuWindowTemplates[b], 1, 0, 2, 1, 14, funcTable); } -void DisplayCurrentMoneyWindow(void) +static void DisplayCurrentMoneyWindow(void) { u8 windowId = BagMenu_AddWindow(9); PrintMoneyAmountInMoneyBoxWithBorder(windowId, 1, 14, GetMoney(&gSaveBlock1Ptr->money)); AddMoneyLabelObject(19, 11); } -void bag_menu_remove_money_window(void) +static void RemoveMoneyWindow(void) { BagMenu_RemoveWindow(9); RemoveMoneyLabelObject(); diff --git a/src/menu.c b/src/menu.c index ac2f7d85bd..f3334919c4 100644 --- a/src/menu.c +++ b/src/menu.c @@ -1299,10 +1299,12 @@ u8 sub_8198F58(u8 windowId, u8 fontId, u8 left, u8 top, u8 a4, u8 cursorHeight, else sMenu.cursorPos = pos; - sub_8199134(0, 0); + // Why call this when it's not gonna move? + ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_NONE, MENU_CURSOR_DELTA_NONE); return sMenu.cursorPos; } +// Unused u8 sub_8198FD4(u8 windowId, u8 fontId, u8 left, u8 top, u8 a4, u8 a5, u8 a6, u8 a7) { u8 cursorHeight = GetMenuCursorDimensionByFont(fontId, 1); @@ -1333,40 +1335,28 @@ void sub_8199060(u8 oldCursorPos, u8 newCursorPos) 0); } -u8 sub_8199134(s8 deltaX, s8 deltaY) +u8 ChangeListMenuCursorPosition(s8 deltaX, s8 deltaY) { u8 oldPos = sMenu.cursorPos; if (deltaX != 0) { if ((sMenu.cursorPos % sMenu.columns) + deltaX < 0) - { sMenu.cursorPos += sMenu.columns - 1; - } else if ((sMenu.cursorPos % sMenu.columns) + deltaX >= sMenu.columns) - { sMenu.cursorPos = (sMenu.cursorPos / sMenu.columns) * sMenu.columns; - } else - { sMenu.cursorPos += deltaX; - } } if (deltaY != 0) { if ((sMenu.cursorPos / sMenu.columns) + deltaY < 0) - { sMenu.cursorPos += sMenu.columns * (sMenu.rows - 1); - } else if ((sMenu.cursorPos / sMenu.columns) + deltaY >= sMenu.rows) - { sMenu.cursorPos -= sMenu.columns * (sMenu.rows - 1); - } else - { sMenu.cursorPos += (sMenu.columns * deltaY); - } } if (sMenu.cursorPos > sMenu.maxCursorPos) @@ -1381,7 +1371,7 @@ u8 sub_8199134(s8 deltaX, s8 deltaY) } } -u8 sub_81991F8(s8 deltaX, s8 deltaY) +u8 ChangeGridMenuCursorPosition(s8 deltaX, s8 deltaY) { u8 oldPos = sMenu.cursorPos; @@ -1429,25 +1419,25 @@ s8 sub_8199284(void) else if (gMain.newKeys & DPAD_UP) { PlaySE(SE_SELECT); - sub_8199134(0, -1); + ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_NONE, MENU_CURSOR_DELTA_UP); return MENU_NOTHING_CHOSEN; } else if (gMain.newKeys & DPAD_DOWN) { PlaySE(SE_SELECT); - sub_8199134(0, 1); + ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_NONE, MENU_CURSOR_DELTA_DOWN); return MENU_NOTHING_CHOSEN; } else if (gMain.newKeys & DPAD_LEFT || GetLRKeysPressed() == MENU_L_PRESSED) { PlaySE(SE_SELECT); - sub_8199134(-1, 0); + ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_LEFT, MENU_CURSOR_DELTA_NONE); return MENU_NOTHING_CHOSEN; } else if (gMain.newKeys & DPAD_RIGHT || GetLRKeysPressed() == MENU_R_PRESSED) { PlaySE(SE_SELECT); - sub_8199134(1, 0); + ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_RIGHT, MENU_CURSOR_DELTA_NONE); return MENU_NOTHING_CHOSEN; } @@ -1469,25 +1459,25 @@ s8 Menu_ProcessInputGridLayout(void) } else if (gMain.newKeys & DPAD_UP) { - if (oldPos != sub_81991F8(0, -1)) + if (oldPos != ChangeGridMenuCursorPosition(0, -1)) PlaySE(SE_SELECT); return MENU_NOTHING_CHOSEN; } else if (gMain.newKeys & DPAD_DOWN) { - if (oldPos != sub_81991F8(0, 1)) + if (oldPos != ChangeGridMenuCursorPosition(0, 1)) PlaySE(SE_SELECT); return MENU_NOTHING_CHOSEN; } else if (gMain.newKeys & DPAD_LEFT || GetLRKeysPressed() == MENU_L_PRESSED) { - if (oldPos != sub_81991F8(-1, 0)) + if (oldPos != ChangeGridMenuCursorPosition(-1, 0)) PlaySE(SE_SELECT); return MENU_NOTHING_CHOSEN; } else if (gMain.newKeys & DPAD_RIGHT || GetLRKeysPressed() == MENU_R_PRESSED) { - if (oldPos != sub_81991F8(1, 0)) + if (oldPos != ChangeGridMenuCursorPosition(1, 0)) PlaySE(SE_SELECT); return MENU_NOTHING_CHOSEN; } @@ -1509,31 +1499,32 @@ s8 sub_81993D8(void) else if ((gMain.newAndRepeatedKeys & DPAD_ANY) == DPAD_UP) { PlaySE(SE_SELECT); - sub_8199134(0, -1); + ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_NONE, MENU_CURSOR_DELTA_UP); return MENU_NOTHING_CHOSEN; } else if ((gMain.newAndRepeatedKeys & DPAD_ANY) == DPAD_DOWN) { PlaySE(SE_SELECT); - sub_8199134(0, 1); + ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_NONE, MENU_CURSOR_DELTA_DOWN); return MENU_NOTHING_CHOSEN; } else if ((gMain.newAndRepeatedKeys & DPAD_ANY) == DPAD_LEFT || GetLRKeysPressedAndHeld() == MENU_L_PRESSED) { PlaySE(SE_SELECT); - sub_8199134(-1, 0); + ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_LEFT, MENU_CURSOR_DELTA_NONE); return MENU_NOTHING_CHOSEN; } else if ((gMain.newAndRepeatedKeys & DPAD_ANY) == DPAD_RIGHT || GetLRKeysPressedAndHeld() == MENU_R_PRESSED) { PlaySE(SE_SELECT); - sub_8199134(1, 0); + ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_RIGHT, MENU_CURSOR_DELTA_NONE); return MENU_NOTHING_CHOSEN; } return MENU_NOTHING_CHOSEN; } +//Unused s8 sub_8199484(void) { u8 oldPos = sMenu.cursorPos; @@ -1549,25 +1540,25 @@ s8 sub_8199484(void) } else if ((gMain.newAndRepeatedKeys & DPAD_ANY) == DPAD_UP) { - if (oldPos != sub_81991F8(0, -1)) + if (oldPos != ChangeGridMenuCursorPosition(0, -1)) PlaySE(SE_SELECT); return MENU_NOTHING_CHOSEN; } else if ((gMain.newAndRepeatedKeys & DPAD_ANY) == DPAD_DOWN) { - if (oldPos != sub_81991F8(0, 1)) + if (oldPos != ChangeGridMenuCursorPosition(0, 1)) PlaySE(SE_SELECT); return MENU_NOTHING_CHOSEN; } else if ((gMain.newAndRepeatedKeys & DPAD_ANY) == DPAD_LEFT || GetLRKeysPressedAndHeld() == MENU_L_PRESSED) { - if (oldPos != sub_81991F8(-1, 0)) + if (oldPos != ChangeGridMenuCursorPosition(-1, 0)) PlaySE(SE_SELECT); return MENU_NOTHING_CHOSEN; } else if ((gMain.newAndRepeatedKeys & DPAD_ANY) == DPAD_RIGHT || GetLRKeysPressedAndHeld() == MENU_R_PRESSED) { - if (oldPos != sub_81991F8(1, 0)) + if (oldPos != ChangeGridMenuCursorPosition(1, 0)) PlaySE(SE_SELECT); return MENU_NOTHING_CHOSEN; } @@ -1732,7 +1723,8 @@ u8 sub_8199944(u8 windowId, u8 optionWidth, u8 columns, u8 rows, u8 initialCurso else sMenu.cursorPos = pos; - sub_8199134(0, 0); + // Why call this when it's not gonna move? + ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_NONE, MENU_CURSOR_DELTA_NONE); return sMenu.cursorPos; } From 1515a2ecc489a8976c4a26a3bed73edaf444d403 Mon Sep 17 00:00:00 2001 From: PokeCodec <67983839+PokeCodec@users.noreply.github.com> Date: Fri, 28 Aug 2020 14:00:31 -0400 Subject: [PATCH 096/101] Fix To-Dos --- src/event_object_movement.c | 76 +++++++++++-------------------------- src/script.c | 6 +-- 2 files changed, 26 insertions(+), 56 deletions(-) diff --git a/src/event_object_movement.c b/src/event_object_movement.c index a076a2a222..a5615f3482 100644 --- a/src/event_object_movement.c +++ b/src/event_object_movement.c @@ -8216,15 +8216,13 @@ bool8 FreezeObjectEvent(struct ObjectEvent *objectEvent) { return TRUE; } - else - { - objectEvent->frozen = 1; - objectEvent->spriteAnimPausedBackup = gSprites[objectEvent->spriteId].animPaused; - objectEvent->spriteAffineAnimPausedBackup = gSprites[objectEvent->spriteId].affineAnimPaused; - gSprites[objectEvent->spriteId].animPaused = 1; - gSprites[objectEvent->spriteId].affineAnimPaused = 1; - return FALSE; - } + + objectEvent->frozen = 1; + objectEvent->spriteAnimPausedBackup = gSprites[objectEvent->spriteId].animPaused; + objectEvent->spriteAffineAnimPausedBackup = gSprites[objectEvent->spriteId].affineAnimPaused; + gSprites[objectEvent->spriteId].animPaused = 1; + gSprites[objectEvent->spriteId].affineAnimPaused = 1; + return FALSE; } void FreezeObjectEvents(void) @@ -8397,8 +8395,8 @@ bool8 sub_80976EC(struct Sprite *sprite) if (sprite->data[5] > 15) return TRUE; - else - return FALSE; + + return FALSE; } static const s8 sFigure8XOffsets[FIGURE_8_LENGTH] = { @@ -8478,15 +8476,15 @@ static bool8 AnimateSpriteInFigure8(struct Sprite *sprite) return finished; } -static const s8 gUnknown_0850E802[] = { +static const s8 gUnknown_0850E802[16] = { -4, -6, -8, -10, -11, -12, -12, -12, -11, -10, -9, -8, -6, -4, 0, 0 }; -static const s8 gUnknown_0850E812[] = { +static const s8 gUnknown_0850E812[16] = { 0, -2, -3, -4, -5, -6, -6, -6, -5, -5, -4, -3, -2, 0, 0, 0 }; -static const s8 gUnknown_0850E822[] = { +static const s8 gUnknown_0850E822[16] = { -2, -4, -6, -8, -9, -10, -10, -10, -9, -8, -6, -5, -3, -2, 0, 0 }; @@ -8509,23 +8507,11 @@ void sub_809783C(struct Sprite *sprite, u8 a2, u8 a3, u8 a4) sprite->data[6] = 0; } -static const s16 gUnknown_0850E840[] = { - 16, 16, 32, -}; - -static const u8 gUnknown_0850E846[] = { - 0, 0, 1, -}; - u8 sub_809785C(struct Sprite *sprite) { - s16 v5[3]; - u8 v6[3]; - u8 v2; - - memcpy(v5, gUnknown_0850E840, 6); // TODO: get rid of memcpy - memcpy(v6, gUnknown_0850E846, 3); - v2 = 0; + s16 v5[] = {16, 16, 32}; + u8 v6[] = {0, 0, 1}; + u8 v2 = 0; if (sprite->data[4]) Step1(sprite, sprite->data[3]); @@ -8546,23 +8532,11 @@ u8 sub_809785C(struct Sprite *sprite) return v2; } -static const s16 gUnknown_0850E84A[] = { - 32, 32, 64, -}; - -static const u8 gUnknown_0850E850[] = { - 1, 1, 2, -}; - u8 sub_80978E4(struct Sprite *sprite) { - s16 v5[3]; - u8 v6[3]; - u8 v2; - - memcpy(v5, gUnknown_0850E84A, 6); - memcpy(v6, gUnknown_0850E850, 3); - v2 = 0; + s16 v5[] = {32, 32, 64}; + u8 v6[] = {1, 1, 2}; + u8 v2 = 0; if (sprite->data[4] && !(sprite->data[6] & 1)) Step1(sprite, sprite->data[3]); @@ -8590,12 +8564,9 @@ static void SetMovementDelay(struct Sprite *sprite, s16 timer) static bool8 WaitForMovementDelay(struct Sprite *sprite) { - sprite->data[3]--; - - if (sprite->data[3] == 0) + if (--sprite->data[3] == 0) return TRUE; - else - return FALSE; + return FALSE; } void SetAndStartSpriteAnim(struct Sprite *sprite, u8 animNum, u8 animCmdIndex) @@ -8609,8 +8580,7 @@ bool8 SpriteAnimEnded(struct Sprite *sprite) { if (sprite->animEnded) return TRUE; - else - return FALSE; + return FALSE; } void UpdateObjectEventSpriteVisibility(struct Sprite *sprite, bool8 invisible) @@ -8789,14 +8759,14 @@ static void UpdateObjectEventSpritePosition(struct Sprite *sprite) { switch(sprite->tAnimNum) { + case 0: + break; case UNION_ROOM_SPAWN_IN: MoveUnionRoomObjectDown(sprite); break; case UNION_ROOM_SPAWN_OUT: MoveUnionRoomObjectUp(sprite); break; - case 0: - break; default: sprite->tAnimNum = 0; break; diff --git a/src/script.c b/src/script.c index 9ba1a74297..889c25765c 100644 --- a/src/script.c +++ b/src/script.c @@ -26,9 +26,9 @@ void InitScriptContext(struct ScriptContext *ctx, void *cmdTable, void *cmdTable s32 i; ctx->mode = 0; - ctx->scriptPtr = 0; + ctx->scriptPtr = NULL; ctx->stackDepth = 0; - ctx->nativePtr = 0; + ctx->nativePtr = NULL; ctx->cmdTable = cmdTable; ctx->cmdTableEnd = cmdTableEnd; @@ -55,7 +55,7 @@ void SetupNativeScript(struct ScriptContext *ctx, bool8 (*ptr)(void)) void StopScript(struct ScriptContext *ctx) { ctx->mode = 0; - ctx->scriptPtr = 0; + ctx->scriptPtr = NULL; } bool8 RunScriptCommand(struct ScriptContext *ctx) From a04b0ff487dfdf97d3dbe61602bc7bc914c6dbb2 Mon Sep 17 00:00:00 2001 From: PokeCodec <67983839+PokeCodec@users.noreply.github.com> Date: Fri, 28 Aug 2020 14:35:37 -0400 Subject: [PATCH 097/101] More formatting fixes --- src/battle_gfx_sfx_util.c | 13 ++-- src/battle_main.c | 6 +- src/event_object_movement.c | 3 +- src/link_rfu_2.c | 7 +- src/menu_specialized.c | 129 ++++++++++++++++++------------------ 5 files changed, 79 insertions(+), 79 deletions(-) diff --git a/src/battle_gfx_sfx_util.c b/src/battle_gfx_sfx_util.c index 50a5f8ad5a..1638e2f577 100644 --- a/src/battle_gfx_sfx_util.c +++ b/src/battle_gfx_sfx_util.c @@ -1014,15 +1014,12 @@ void BattleLoadSubstituteOrMonSpriteGfx(u8 battlerId, bool8 loadMonSprite) palOffset = (battlerId * 16) + 0x100; LoadCompressedPalette(gSubstituteDollPal, palOffset, 32); } - else + else if (!IsContest()) { - if (!IsContest()) - { - if (GetBattlerSide(battlerId) != B_SIDE_PLAYER) - BattleLoadOpponentMonSpriteGfx(&gEnemyParty[gBattlerPartyIndexes[battlerId]], battlerId); - else - BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlerPartyIndexes[battlerId]], battlerId); - } + if (GetBattlerSide(battlerId) != B_SIDE_PLAYER) + BattleLoadOpponentMonSpriteGfx(&gEnemyParty[gBattlerPartyIndexes[battlerId]], battlerId); + else + BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlerPartyIndexes[battlerId]], battlerId); } } diff --git a/src/battle_main.c b/src/battle_main.c index a62f3d86b9..03e958c613 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -4875,7 +4875,11 @@ static void SetActionsAndBattlersTurnOrder(void) { u8 battler1 = gBattlerByTurnOrder[i]; u8 battler2 = gBattlerByTurnOrder[j]; - if (gActionsByTurnOrder[i] != B_ACTION_USE_ITEM && gActionsByTurnOrder[j] != B_ACTION_USE_ITEM && gActionsByTurnOrder[i] != B_ACTION_SWITCH && gActionsByTurnOrder[j] != B_ACTION_SWITCH) + + if (gActionsByTurnOrder[i] != B_ACTION_USE_ITEM + && gActionsByTurnOrder[j] != B_ACTION_USE_ITEM + && gActionsByTurnOrder[i] != B_ACTION_SWITCH + && gActionsByTurnOrder[j] != B_ACTION_SWITCH) { if (GetWhoStrikesFirst(battler1, battler2, FALSE)) SwapTurnOrder(i, j); diff --git a/src/event_object_movement.c b/src/event_object_movement.c index a5615f3482..72de880c85 100644 --- a/src/event_object_movement.c +++ b/src/event_object_movement.c @@ -8847,8 +8847,7 @@ u8 MovementAction_StoreAndLockAnim_Step0(struct ObjectEvent *objectEvent, struct } else { - u8 i; - u8 firstFreeSlot; + u8 i, firstFreeSlot; bool32 found; for (firstFreeSlot = 16, found = FALSE, i = 0; i < 16; i++) { diff --git a/src/link_rfu_2.c b/src/link_rfu_2.c index 43067405db..a8ead95d60 100644 --- a/src/link_rfu_2.c +++ b/src/link_rfu_2.c @@ -1549,10 +1549,13 @@ static bool8 CheckForLeavingGroupMembers(void) for (i = 0; i < RFU_CHILD_MAX; i++) { if (Rfu.partnerSendStatuses[i] == RFU_STATUS_JOIN_GROUP_OK - || Rfu.partnerSendStatuses[i] == RFU_STATUS_JOIN_GROUP_NO) + || Rfu.partnerSendStatuses[i] == RFU_STATUS_JOIN_GROUP_NO) + { continue; + } + if (gRfuSlotStatusNI[i]->recv.state == SLOT_STATE_RECV_SUCCESS - || gRfuSlotStatusNI[i]->recv.state == SLOT_STATE_RECV_SUCCESS_AND_SENDSIDE_UNKNOWN) + || gRfuSlotStatusNI[i]->recv.state == SLOT_STATE_RECV_SUCCESS_AND_SENDSIDE_UNKNOWN) { if (Rfu.partnerRecvStatuses[i] == RFU_STATUS_LEAVE_GROUP_NOTICE) { diff --git a/src/menu_specialized.c b/src/menu_specialized.c index a99c5c9d0b..d402ecb518 100644 --- a/src/menu_specialized.c +++ b/src/menu_specialized.c @@ -894,76 +894,73 @@ static u8 *GetConditionMenuMonString(u8 *dst, u16 boxId, u16 monId) { return StringCopyPadded(dst, gText_EggNickname, 0, 12); } + GetBoxOrPartyMonData(boxId, monId, MON_DATA_NICKNAME, dst); + StringGetEnd10(dst); + species = GetBoxOrPartyMonData(boxId, monId, MON_DATA_SPECIES, NULL); + if (boxId == TOTAL_BOXES_COUNT) // Party mon. + { + level = GetMonData(&gPlayerParty[monId], MON_DATA_LEVEL); + gender = GetMonGender(&gPlayerParty[monId]); + } else { - GetBoxOrPartyMonData(boxId, monId, MON_DATA_NICKNAME, dst); - StringGetEnd10(dst); - species = GetBoxOrPartyMonData(boxId, monId, MON_DATA_SPECIES, NULL); - if (boxId == TOTAL_BOXES_COUNT) // Party mon. - { - level = GetMonData(&gPlayerParty[monId], MON_DATA_LEVEL); - gender = GetMonGender(&gPlayerParty[monId]); - } - else - { - // Needed to match, feel free to remove. - boxId++;boxId--; - monId++;monId--; + // Needed to match, feel free to remove. + boxId++, boxId--; + monId++, monId--; - boxMon = GetBoxedMonPtr(boxId, monId); - gender = GetBoxMonGender(boxMon); - level = GetLevelFromBoxMonExp(boxMon); - } - - if ((species == SPECIES_NIDORAN_F || species == SPECIES_NIDORAN_M) && !StringCompare(dst, gSpeciesNames[species])) - gender = MON_GENDERLESS; - - for (str = dst; *str != EOS; str++) - ; - - *(str++) = EXT_CTRL_CODE_BEGIN; - *(str++) = EXT_CTRL_CODE_SKIP; - *(str++) = 60; - - switch (gender) - { - default: - *(str++) = CHAR_SPACE; - break; - case MON_MALE: - *(str++) = EXT_CTRL_CODE_BEGIN; - *(str++) = EXT_CTRL_CODE_COLOR; - *(str++) = TEXT_COLOR_RED; - *(str++) = EXT_CTRL_CODE_BEGIN; - *(str++) = EXT_CTRL_CODE_SHADOW; - *(str++) = TEXT_COLOR_LIGHT_RED; - *(str++) = CHAR_MALE; - break; - case MON_FEMALE: - *(str++) = EXT_CTRL_CODE_BEGIN; - *(str++) = EXT_CTRL_CODE_COLOR; - *(str++) = TEXT_COLOR_GREEN; - *(str++) = EXT_CTRL_CODE_BEGIN; - *(str++) = EXT_CTRL_CODE_SHADOW; - *(str++) = TEXT_COLOR_LIGHT_GREEN; - *(str++) = CHAR_FEMALE; - break; - } - - *(str++) = EXT_CTRL_CODE_BEGIN; - *(str++) = EXT_CTRL_CODE_COLOR_HIGHLIGHT_SHADOW; - *(str++) = TEXT_COLOR_BLUE; - *(str++) = TEXT_COLOR_TRANSPARENT; - *(str++) = TEXT_COLOR_LIGHT_BLUE; - *(str++) = CHAR_SLASH; - *(str++) = CHAR_EXTRA_SYMBOL; - *(str++) = CHAR_LV_2; - str = ConvertIntToDecimalStringN(str, level, STR_CONV_MODE_LEFT_ALIGN, 3); - *(str++) = CHAR_SPACE; - *str = EOS; - - return str; + boxMon = GetBoxedMonPtr(boxId, monId); + gender = GetBoxMonGender(boxMon); + level = GetLevelFromBoxMonExp(boxMon); } + + if ((species == SPECIES_NIDORAN_F || species == SPECIES_NIDORAN_M) && !StringCompare(dst, gSpeciesNames[species])) + gender = MON_GENDERLESS; + + for (str = dst; *str != EOS; str++) + ; + + *(str++) = EXT_CTRL_CODE_BEGIN; + *(str++) = EXT_CTRL_CODE_SKIP; + *(str++) = 60; + + switch (gender) + { + default: + *(str++) = CHAR_SPACE; + break; + case MON_MALE: + *(str++) = EXT_CTRL_CODE_BEGIN; + *(str++) = EXT_CTRL_CODE_COLOR; + *(str++) = TEXT_COLOR_RED; + *(str++) = EXT_CTRL_CODE_BEGIN; + *(str++) = EXT_CTRL_CODE_SHADOW; + *(str++) = TEXT_COLOR_LIGHT_RED; + *(str++) = CHAR_MALE; + break; + case MON_FEMALE: + *(str++) = EXT_CTRL_CODE_BEGIN; + *(str++) = EXT_CTRL_CODE_COLOR; + *(str++) = TEXT_COLOR_GREEN; + *(str++) = EXT_CTRL_CODE_BEGIN; + *(str++) = EXT_CTRL_CODE_SHADOW; + *(str++) = TEXT_COLOR_LIGHT_GREEN; + *(str++) = CHAR_FEMALE; + break; + } + + *(str++) = EXT_CTRL_CODE_BEGIN; + *(str++) = EXT_CTRL_CODE_COLOR_HIGHLIGHT_SHADOW; + *(str++) = TEXT_COLOR_BLUE; + *(str++) = TEXT_COLOR_TRANSPARENT; + *(str++) = TEXT_COLOR_LIGHT_BLUE; + *(str++) = CHAR_SLASH; + *(str++) = CHAR_EXTRA_SYMBOL; + *(str++) = CHAR_LV_2; + str = ConvertIntToDecimalStringN(str, level, STR_CONV_MODE_LEFT_ALIGN, 3); + *(str++) = CHAR_SPACE; + *str = EOS; + + return str; } // Buffers the string in src to dest up to n chars. If src is less than n chars, fill with spaces From 5e7b6a089ce765c4033934cce20dfe8960aca9ad Mon Sep 17 00:00:00 2001 From: kiliwily <69381603+kiliwily@users.noreply.github.com> Date: Fri, 28 Aug 2020 20:36:07 +0200 Subject: [PATCH 098/101] add MAX_LEVEL_UP_MOVES macro --- include/constants/pokemon.h | 2 ++ src/pokemon.c | 8 ++++---- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/include/constants/pokemon.h b/include/constants/pokemon.h index f026fa0e31..52eabe71bf 100644 --- a/include/constants/pokemon.h +++ b/include/constants/pokemon.h @@ -204,6 +204,8 @@ #define LEVEL_UP_MOVE_LV 0xFE00 #define LEVEL_UP_END 0xFFFF +#define MAX_LEVEL_UP_MOVES 20 + #define MON_MALE 0x00 #define MON_FEMALE 0xFE #define MON_GENDERLESS 0xFF diff --git a/src/pokemon.c b/src/pokemon.c index b93c5f2ffe..885559cb62 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -6138,7 +6138,7 @@ u8 GetMoveRelearnerMoves(struct Pokemon *mon, u16 *moves) for (i = 0; i < MAX_MON_MOVES; i++) learnedMoves[i] = GetMonData(mon, MON_DATA_MOVE1 + i, 0); - for (i = 0; i < 20; i++) + for (i = 0; i < MAX_LEVEL_UP_MOVES; i++) { u16 moveLevel; @@ -6171,7 +6171,7 @@ u8 GetLevelUpMovesBySpecies(u16 species, u16 *moves) u8 numMoves = 0; int i; - for (i = 0; i < 20 && gLevelUpLearnsets[species][i] != LEVEL_UP_END; i++) + for (i = 0; i < MAX_LEVEL_UP_MOVES && gLevelUpLearnsets[species][i] != LEVEL_UP_END; i++) moves[numMoves++] = gLevelUpLearnsets[species][i] & LEVEL_UP_MOVE_ID; return numMoves; @@ -6180,7 +6180,7 @@ u8 GetLevelUpMovesBySpecies(u16 species, u16 *moves) u8 GetNumberOfRelearnableMoves(struct Pokemon *mon) { u16 learnedMoves[MAX_MON_MOVES]; - u16 moves[20]; + u16 moves[MAX_LEVEL_UP_MOVES]; u8 numMoves = 0; u16 species = GetMonData(mon, MON_DATA_SPECIES2, 0); u8 level = GetMonData(mon, MON_DATA_LEVEL, 0); @@ -6192,7 +6192,7 @@ u8 GetNumberOfRelearnableMoves(struct Pokemon *mon) for (i = 0; i < MAX_MON_MOVES; i++) learnedMoves[i] = GetMonData(mon, MON_DATA_MOVE1 + i, 0); - for (i = 0; i < 20; i++) + for (i = 0; i < MAX_LEVEL_UP_MOVES; i++) { u16 moveLevel; From c68c2b66e8a9e4d1b6fd79c6b3403970f07b376a Mon Sep 17 00:00:00 2001 From: kiliwily <69381603+kiliwily@users.noreply.github.com> Date: Sat, 29 Aug 2020 01:02:20 +0200 Subject: [PATCH 099/101] add more macros --- include/constants/daycare.h | 2 +- src/move_relearner.c | 24 +++++++++++++----------- 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/include/constants/daycare.h b/include/constants/daycare.h index 103f920f29..adb62fab50 100644 --- a/include/constants/daycare.h +++ b/include/constants/daycare.h @@ -22,6 +22,6 @@ // Array buffers #define EGG_MOVES_ARRAY_COUNT 10 -#define EGG_LVL_UP_MOVES_ARRAY_COUNT 50 +#define EGG_LVL_UP_MOVES_ARRAY_COUNT (MAX_LEVEL_UP_MOVES > 50 ? MAX_LEVEL_UP_MOVES : 50) #endif //GUARD_DAYCARE_CONSTANTS_H diff --git a/src/move_relearner.c b/src/move_relearner.c index 1c863804be..3741d59732 100644 --- a/src/move_relearner.c +++ b/src/move_relearner.c @@ -150,20 +150,22 @@ #define JAM_HEART_EMPTY 2 #define JAM_HEART_FULL 3 +#define MAX_RELEARNER_MOVES (MAX_LEVEL_UP_MOVES > 25 ? MAX_LEVEL_UP_MOVES : 25) + static EWRAM_DATA struct { u8 state; - u8 heartSpriteIds[16]; /*0x001*/ - u16 movesToLearn[25]; /*0x01A*/ - u8 partyMon; /*0x044*/ - u8 moveSlot; /*0x045*/ - struct ListMenuItem menuItems[25]; /*0x0E8*/ - u8 numMenuChoices; /*0x110*/ - u8 numToShowAtOnce; /*0x111*/ - u8 moveListMenuTask; /*0x112*/ - u8 moveListScrollArrowTask; /*0x113*/ - u8 moveDisplayArrowTask; /*0x114*/ - u16 scrollOffset; /*0x116*/ + u8 heartSpriteIds[16]; /*0x001*/ + u16 movesToLearn[MAX_RELEARNER_MOVES]; /*0x01A*/ + u8 partyMon; /*0x044*/ + u8 moveSlot; /*0x045*/ + struct ListMenuItem menuItems[MAX_RELEARNER_MOVES]; /*0x0E8*/ + u8 numMenuChoices; /*0x110*/ + u8 numToShowAtOnce; /*0x111*/ + u8 moveListMenuTask; /*0x112*/ + u8 moveListScrollArrowTask; /*0x113*/ + u8 moveDisplayArrowTask; /*0x114*/ + u16 scrollOffset; /*0x116*/ } *sMoveRelearnerStruct = {0}; static EWRAM_DATA struct { From e4d26262e32ee626ad4389e6565677c35a8ba3d4 Mon Sep 17 00:00:00 2001 From: kiliwily <69381603+kiliwily@users.noreply.github.com> Date: Sat, 29 Aug 2020 01:04:42 +0200 Subject: [PATCH 100/101] Update move_relearner.c --- src/move_relearner.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/move_relearner.c b/src/move_relearner.c index 3741d59732..dc3e22b73c 100644 --- a/src/move_relearner.c +++ b/src/move_relearner.c @@ -155,17 +155,17 @@ static EWRAM_DATA struct { u8 state; - u8 heartSpriteIds[16]; /*0x001*/ + u8 heartSpriteIds[16]; /*0x001*/ u16 movesToLearn[MAX_RELEARNER_MOVES]; /*0x01A*/ - u8 partyMon; /*0x044*/ - u8 moveSlot; /*0x045*/ + u8 partyMon; /*0x044*/ + u8 moveSlot; /*0x045*/ struct ListMenuItem menuItems[MAX_RELEARNER_MOVES]; /*0x0E8*/ - u8 numMenuChoices; /*0x110*/ - u8 numToShowAtOnce; /*0x111*/ - u8 moveListMenuTask; /*0x112*/ - u8 moveListScrollArrowTask; /*0x113*/ - u8 moveDisplayArrowTask; /*0x114*/ - u16 scrollOffset; /*0x116*/ + u8 numMenuChoices; /*0x110*/ + u8 numToShowAtOnce; /*0x111*/ + u8 moveListMenuTask; /*0x112*/ + u8 moveListScrollArrowTask; /*0x113*/ + u8 moveDisplayArrowTask; /*0x114*/ + u16 scrollOffset; /*0x116*/ } *sMoveRelearnerStruct = {0}; static EWRAM_DATA struct { From 028502fce5c2565c372c3b28760c44bc313cf59f Mon Sep 17 00:00:00 2001 From: kiliwily <69381603+kiliwily@users.noreply.github.com> Date: Sat, 29 Aug 2020 01:09:17 +0200 Subject: [PATCH 101/101] Update move_relearner.c --- src/move_relearner.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/move_relearner.c b/src/move_relearner.c index dc3e22b73c..ac078269ae 100644 --- a/src/move_relearner.c +++ b/src/move_relearner.c @@ -155,17 +155,17 @@ static EWRAM_DATA struct { u8 state; - u8 heartSpriteIds[16]; /*0x001*/ + u8 heartSpriteIds[16]; /*0x001*/ u16 movesToLearn[MAX_RELEARNER_MOVES]; /*0x01A*/ - u8 partyMon; /*0x044*/ - u8 moveSlot; /*0x045*/ + u8 partyMon; /*0x044*/ + u8 moveSlot; /*0x045*/ struct ListMenuItem menuItems[MAX_RELEARNER_MOVES]; /*0x0E8*/ - u8 numMenuChoices; /*0x110*/ - u8 numToShowAtOnce; /*0x111*/ - u8 moveListMenuTask; /*0x112*/ - u8 moveListScrollArrowTask; /*0x113*/ - u8 moveDisplayArrowTask; /*0x114*/ - u16 scrollOffset; /*0x116*/ + u8 numMenuChoices; /*0x110*/ + u8 numToShowAtOnce; /*0x111*/ + u8 moveListMenuTask; /*0x112*/ + u8 moveListScrollArrowTask; /*0x113*/ + u8 moveDisplayArrowTask; /*0x114*/ + u16 scrollOffset; /*0x116*/ } *sMoveRelearnerStruct = {0}; static EWRAM_DATA struct {