From 97ad668aecb621a28418d93bd23409cf1da76eef Mon Sep 17 00:00:00 2001 From: AnonymousRandomPerson Date: Thu, 17 Jul 2025 22:31:32 -0400 Subject: [PATCH] Decomped MirrorMoveIsActive --- asm/include/overlay_10_rodata_022C464C.inc | 1 + asm/include/overlay_29_02318E70.inc | 3 - asm/overlay_10_rodata_022C4584.s | 498 -------------------- asm/overlay_10_rodata_022C464C.s | 499 +++++++++++++++++++++ asm/overlay_29_02318E70.s | 30 -- include/dungeon_parameters_1.h | 6 + include/move_effects.h | 8 + include/overlay_29_023197A8.h | 3 + main.lsf | 2 + src/dungeon_parameters_1.c | 3 + src/move_checks.c | 4 +- src/overlay_29_023197A8.c | 18 + 12 files changed, 542 insertions(+), 533 deletions(-) create mode 100644 asm/include/overlay_10_rodata_022C464C.inc create mode 100644 asm/overlay_10_rodata_022C464C.s create mode 100644 include/dungeon_parameters_1.h create mode 100644 include/move_effects.h create mode 100644 src/dungeon_parameters_1.c diff --git a/asm/include/overlay_10_rodata_022C464C.inc b/asm/include/overlay_10_rodata_022C464C.inc new file mode 100644 index 00000000..6f70f09b --- /dev/null +++ b/asm/include/overlay_10_rodata_022C464C.inc @@ -0,0 +1 @@ +#pragma once diff --git a/asm/include/overlay_29_02318E70.inc b/asm/include/overlay_29_02318E70.inc index b84b2a15..5d820d81 100644 --- a/asm/include/overlay_29_02318E70.inc +++ b/asm/include/overlay_29_02318E70.inc @@ -1,13 +1,10 @@ #pragma once .public AbilityIsActiveVeneer .public CalcStatusDuration -.public DungeonRandOutcome__022EAB20 .public EntityIsValid__02318E4C -.public ExclusiveItemEffectIsActive__023197A8 .public LogMessageByIdWithPopupCheckUserTarget .public SubstitutePlaceholderStringTags .public UpdateStatusIconFlags -.public ov10_022C4648 .public ov10_022C472C .public ov10_022C4730 .public ov10_022C4734 diff --git a/asm/overlay_10_rodata_022C4584.s b/asm/overlay_10_rodata_022C4584.s index cc54a10c..18ce5a05 100644 --- a/asm/overlay_10_rodata_022C4584.s +++ b/asm/overlay_10_rodata_022C4584.s @@ -149,501 +149,3 @@ SPAWN_COOLDOWN_THIEF_ALERT: .global POISON_FANG_POISON_CHANCE POISON_FANG_POISON_CHANCE: .byte 0x1E, 0x00, 0x00, 0x00 - .global ov10_022C4648 -ov10_022C4648: - .byte 0x14, 0x00, 0x00, 0x00 - .global ov10_022C464C -ov10_022C464C: - .byte 0x0A, 0x00, 0x00, 0x00 - .global ov10_022C4650 -ov10_022C4650: - .byte 0x0A, 0x00, 0x00, 0x00 - .global WEATHER_MOVE_TURN_COUNT -WEATHER_MOVE_TURN_COUNT: - .byte 0xB8, 0x0B, 0x00, 0x00 - .global THUNDER_PARALYZE_CHANCE -THUNDER_PARALYZE_CHANCE: - .byte 0x14, 0x00, 0x00, 0x00 - .global THUNDERBOLT_PARALYZE_CHANCE -THUNDERBOLT_PARALYZE_CHANCE: - .byte 0x0F, 0x00, 0x00, 0x00 - .global MONSTER_HOUSE_MAX_MONSTER_SPAWNS -MONSTER_HOUSE_MAX_MONSTER_SPAWNS: - .byte 0x1E, 0x00, 0x00, 0x00 - .global ov10_022C4664 -ov10_022C4664: - .byte 0x14, 0x00, 0x00, 0x00 - .global TWISTER_CRINGE_CHANCE -TWISTER_CRINGE_CHANCE: - .byte 0x0F, 0x00, 0x00, 0x00 - .global SPEED_BOOST_TURNS -SPEED_BOOST_TURNS: - .byte 0xFA, 0x00, 0x00, 0x00 - .global FAKE_OUT_CRINGE_CHANCE -FAKE_OUT_CRINGE_CHANCE: - .byte 0x23, 0x00, 0x00, 0x00 - .global ov10_022C4674 -ov10_022C4674: - .byte 0x9C, 0xFF, 0x00, 0x00 - .global THUNDER_FANG_CRINGE_CHANCE -THUNDER_FANG_CRINGE_CHANCE: - .byte 0x19, 0x00, 0x00, 0x00 - .global ov10_022C467C -ov10_022C467C: - .byte 0x0C, 0x00, 0x00, 0x00 - .global ov10_022C4680 -ov10_022C4680: - .byte 0x3C, 0x00, 0x00, 0x00 - .global FLARE_BLITZ_BURN_CHANCE -FLARE_BLITZ_BURN_CHANCE: - .byte 0x19, 0x00, 0x00, 0x00 - .global FLAME_WHEEL_BURN_CHANCE -FLAME_WHEEL_BURN_CHANCE: - .byte 0x0A, 0x00, 0x00, 0x00 - .global ov10_022C468C -ov10_022C468C: - .byte 0x0C, 0x00, 0x00, 0x00 - .global PSYBEAM_CONFUSE_CHANCE -PSYBEAM_CONFUSE_CHANCE: - .byte 0x0A, 0x00, 0x00, 0x00 - .global TRI_ATTACK_STATUS_CHANCE -TRI_ATTACK_STATUS_CHANCE: - .byte 0x14, 0x00, 0x00, 0x00 - .global MIRACLE_CHEST_EXP_BOOST -MIRACLE_CHEST_EXP_BOOST: - .byte 0x1E, 0x00, 0x00, 0x00 - .global WONDER_CHEST_EXP_BOOST -WONDER_CHEST_EXP_BOOST: - .byte 0x0F, 0x00, 0x00, 0x00 - .global ov10_022C46A0 -ov10_022C46A0: - .byte 0x32, 0x00, 0x00, 0x00 - .global SPAWN_CAP_WITH_MONSTER_HOUSE -SPAWN_CAP_WITH_MONSTER_HOUSE: - .byte 0x04, 0x00, 0x00, 0x00 - .global POISON_DAMAGE_COOLDOWN -POISON_DAMAGE_COOLDOWN: - .byte 0x14, 0x00, 0x00, 0x00 - .global LEECH_SEED_DAMAGE_COOLDOWN -LEECH_SEED_DAMAGE_COOLDOWN: - .byte 0x02, 0x00, 0x00, 0x00 - .global THROWN_ITEM_HIT_CHANCE -THROWN_ITEM_HIT_CHANCE: - .byte 0x5A, 0x00, 0x00, 0x00 - .global GEO_PEBBLE_DAMAGE -GEO_PEBBLE_DAMAGE: - .byte 0x0A, 0x00, 0x00, 0x00 - .global GRAVELEROCK_DAMAGE -GRAVELEROCK_DAMAGE: - .byte 0x14, 0x00, 0x00, 0x00 - .global RARE_FOSSIL_DAMAGE -RARE_FOSSIL_DAMAGE: - .byte 0x64, 0x00, 0x00, 0x00 - .global GINSENG_CHANCE_3 -GINSENG_CHANCE_3: - .byte 0x0C, 0x00, 0x00, 0x00 - .global ZINC_STAT_BOOST -ZINC_STAT_BOOST: - .byte 0x03, 0x00, 0x00, 0x00 - .global IRON_STAT_BOOST -IRON_STAT_BOOST: - .byte 0x03, 0x00, 0x00, 0x00 - .global CALCIUM_STAT_BOOST -CALCIUM_STAT_BOOST: - .byte 0x03, 0x00, 0x00, 0x00 - .global WISH_BONUS_REGEN -WISH_BONUS_REGEN: - .byte 0x24, 0xFF, 0x00, 0x00 - .global DRAGON_RAGE_FIXED_DAMAGE -DRAGON_RAGE_FIXED_DAMAGE: - .byte 0x1E, 0x00, 0x00, 0x00 - .global CORSOLA_TWIG_POWER -CORSOLA_TWIG_POWER: - .byte 0x0F, 0x00, 0x00, 0x00 - .global CACNEA_SPIKE_POWER -CACNEA_SPIKE_POWER: - .byte 0x0A, 0x00, 0x00, 0x00 - .global GOLD_FANG_POWER -GOLD_FANG_POWER: - .byte 0x07, 0x00, 0x00, 0x00 - .global SILVER_SPIKE_POWER -SILVER_SPIKE_POWER: - .byte 0x06, 0x00, 0x00, 0x00 - .global IRON_THORN_POWER -IRON_THORN_POWER: - .byte 0x04, 0x00, 0x00, 0x00 - .global ov10_022C46EC -ov10_022C46EC: - .byte 0x03, 0x00, 0x00, 0x00 - .global SCOPE_LENS_CRIT_RATE_BOOST -SCOPE_LENS_CRIT_RATE_BOOST: - .byte 0x0F, 0x00, 0x00, 0x00 - .global HEALING_WISH_HP_RESTORATION -HEALING_WISH_HP_RESTORATION: - .byte 0xE7, 0x03, 0x00, 0x00 - .global ov10_022C46F8 -ov10_022C46F8: - .byte 0x9C, 0xFF, 0x00, 0x00 - .global ov10_022C46FC -ov10_022C46FC: - .byte 0xC8, 0x00, 0x00, 0x00 - .global ov10_022C4700 -ov10_022C4700: - .byte 0xC8, 0x00, 0x00, 0x00 - .global ov10_022C4704 -ov10_022C4704: - .byte 0xC8, 0x00, 0x00, 0x00 - .global ov10_022C4708 -ov10_022C4708: - .byte 0xC8, 0x00, 0x00, 0x00 - .global ov10_022C470C -ov10_022C470C: - .byte 0xC8, 0x00, 0x00, 0x00 - .global ME_FIRST_MULTIPLIER -ME_FIRST_MULTIPLIER: - .byte 0x80, 0x01, 0x00, 0x00 - .global ov10_022C4714 -ov10_022C4714: - .byte 0x01, 0x00, 0x01, 0x00 - .global FACADE_DAMAGE_MULTIPLIER -FACADE_DAMAGE_MULTIPLIER: - .byte 0x00, 0x02, 0x00, 0x00 - .global IMPRISON_TURN_RANGE -IMPRISON_TURN_RANGE: - .byte 0x03, 0x00, 0x06, 0x00 - .global SLEEP_TURN_RANGE -SLEEP_TURN_RANGE: - .byte 0x03, 0x00, 0x07, 0x00 - .global NIGHTMARE_TURN_RANGE -NIGHTMARE_TURN_RANGE: - .byte 0x04, 0x00, 0x08, 0x00 - .global ov10_022C4728 -ov10_022C4728: - .byte 0x7F, 0x00, 0x7F, 0x00 - .global ov10_022C472C -ov10_022C472C: - .byte 0x0A, 0x00, 0x0C, 0x00 - .global ov10_022C4730 -ov10_022C4730: - .byte 0x0A, 0x00, 0x0C, 0x00 - .global ov10_022C4734 -ov10_022C4734: - .byte 0x0F, 0x00, 0x14, 0x00 - .global ov10_022C4738 -ov10_022C4738: - .byte 0x0A, 0x00, 0x0E, 0x00 - .global ov10_022C473C -ov10_022C473C: - .byte 0x50, 0x00, 0x00, 0x00 - .global ov10_022C4740 -ov10_022C4740: - .byte 0x0A, 0x00, 0x0C, 0x00 - .global BURN_DAMAGE_MULTIPLIER -BURN_DAMAGE_MULTIPLIER: - .byte 0xCC, 0x00, 0x00, 0x00 - .global REST_TURN_RANGE -REST_TURN_RANGE: - .byte 0x01, 0x00, 0x04, 0x00 - .global MATCHUP_SUPER_EFFECTIVE_MULTIPLIER_ERRATIC_PLAYER -MATCHUP_SUPER_EFFECTIVE_MULTIPLIER_ERRATIC_PLAYER: - .byte 0xB3, 0x01, 0x00, 0x00 - .global ov10_022C4750 -ov10_022C4750: - .byte 0x06, 0x00, 0x0C, 0x00 - .global ov10_022C4754 -ov10_022C4754: - .byte 0x03, 0x00, 0x05, 0x00 - .global MATCHUP_IMMUNE_MULTIPLIER -MATCHUP_IMMUNE_MULTIPLIER: - .byte 0x80, 0x00, 0x00, 0x00 - .global ov10_022C475C -ov10_022C475C: - .byte 0x04, 0x00, 0x0A, 0x00 - .global ov10_022C4760 -ov10_022C4760: - .byte 0x49, 0x00, 0x00, 0x00 - .global ov10_022C4764 -ov10_022C4764: - .byte 0x08, 0x00, 0x10, 0x00 - .global ov10_022C4768 -ov10_022C4768: - .byte 0x08, 0x00, 0x10, 0x00 - .global ov10_022C476C -ov10_022C476C: - .byte 0x04, 0x00, 0x0A, 0x00 - .global ov10_022C4770 -ov10_022C4770: - .byte 0x20, 0x00, 0x00, 0x00 - .global ov10_022C4774 -ov10_022C4774: - .byte 0x04, 0x00, 0x0A, 0x00 - .global ov10_022C4778 -ov10_022C4778: - .byte 0x04, 0x00, 0x0A, 0x00 - .global ov10_022C477C -ov10_022C477C: - .byte 0x7F, 0x00, 0x7F, 0x00 - .global ov10_022C4780 -ov10_022C4780: - .byte 0x04, 0x00, 0x0A, 0x00 - .global ov10_022C4784 -ov10_022C4784: - .byte 0x03, 0x00, 0x09, 0x00 - .global ov10_022C4788 -ov10_022C4788: - .byte 0x03, 0x00, 0x05, 0x00 - .global SPORT_CONDITION_TURN_RANGE -SPORT_CONDITION_TURN_RANGE: - .byte 0x0A, 0x00, 0x0C, 0x00 - .global ov10_022C4790 -ov10_022C4790: - .byte 0x0A, 0x00, 0x0C, 0x00 - .global ov10_022C4794 -ov10_022C4794: - .byte 0x0A, 0x00, 0x0C, 0x00 - .global SURE_SHOT_TURN_RANGE -SURE_SHOT_TURN_RANGE: - .byte 0x0A, 0x00, 0x0C, 0x00 - .global ov10_022C479C -ov10_022C479C: - .byte 0x0A, 0x00, 0x14, 0x00 - .global ov10_022C47A0 -ov10_022C47A0: - .byte 0x7F, 0x00, 0x7F, 0x00 - .global ov10_022C47A4 -ov10_022C47A4: - .byte 0x02, 0x00, 0x04, 0x00 - .global DETECT_BAND_MOVE_ACCURACY_DROP -DETECT_BAND_MOVE_ACCURACY_DROP: - .byte 0x1E, 0x00, 0x00, 0x00 - .global ov10_022C47AC -ov10_022C47AC: - .byte 0x02, 0x00, 0x04, 0x00 - .global ov10_022C47B0 -ov10_022C47B0: - .byte 0x0A, 0x00, 0x0C, 0x00 - .global ov10_022C47B4 -ov10_022C47B4: - .byte 0x14, 0x00, 0x32, 0x00 - .global ov10_022C47B8 -ov10_022C47B8: - .byte 0x01, 0x00, 0x03, 0x00 - .global ov10_022C47BC -ov10_022C47BC: - .byte 0x0A, 0x00, 0x0C, 0x00 - .global TINTED_LENS_MULTIPLIER -TINTED_LENS_MULTIPLIER: - .byte 0x33, 0x01, 0x00, 0x00 - .global SMOKESCREEN_TURN_RANGE -SMOKESCREEN_TURN_RANGE: - .byte 0x01, 0x00, 0x04, 0x00 - .global ov10_022C47C8 -ov10_022C47C8: - .byte 0x14, 0x00, 0x1E, 0x00 - .global ov10_022C47CC -ov10_022C47CC: - .byte 0x0A, 0x00, 0x0C, 0x00 - .global PERISH_SONG_TURN_RANGE -PERISH_SONG_TURN_RANGE: - .byte 0x03, 0x00, 0x03, 0x00 - .global ov10_022C47D4 -ov10_022C47D4: - .byte 0x0A, 0x00, 0x0A, 0x00 - .global ov10_022C47D8 -ov10_022C47D8: - .byte 0x0A, 0x00, 0x0A, 0x00 - .global SHADOW_FORCE_DAMAGE_MULTIPLIER -SHADOW_FORCE_DAMAGE_MULTIPLIER: - .byte 0x00, 0x02, 0x00, 0x00 - .global ov10_022C47E0 -ov10_022C47E0: - .byte 0x0A, 0x00, 0x05, 0x00 - .global DIG_DAMAGE_MULTIPLIER -DIG_DAMAGE_MULTIPLIER: - .byte 0x00, 0x02, 0x00, 0x00 - .global DIVE_DAMAGE_MULTIPLIER -DIVE_DAMAGE_MULTIPLIER: - .byte 0x00, 0x02, 0x00, 0x00 - .global BOUNCE_DAMAGE_MULTIPLIER -BOUNCE_DAMAGE_MULTIPLIER: - .byte 0x00, 0x02, 0x00, 0x00 - .global ov10_022C47F0 -ov10_022C47F0: - .byte 0x0A, 0x00, 0x00, 0x00 - .global ov10_022C47F4 -ov10_022C47F4: - .byte 0x01, 0x00, 0x04, 0x00 - .global POWER_PITCHER_DAMAGE_MULTIPLIER -POWER_PITCHER_DAMAGE_MULTIPLIER: - .byte 0x80, 0x01, 0x00, 0x00 - .global ov10_022C47FC -ov10_022C47FC: - .byte 0x7F, 0x00, 0x7F, 0x00 - .global ov10_022C4800 -ov10_022C4800: - .byte 0x78, 0x00, 0x00, 0x00 - .global ov10_022C4804 -ov10_022C4804: - .byte 0x04, 0x00, 0x06, 0x00 - .global QUICK_DODGER_MOVE_ACCURACY_DROP -QUICK_DODGER_MOVE_ACCURACY_DROP: - .byte 0x0A, 0x00, 0x00, 0x00 - .global ov10_022C480C -ov10_022C480C: - .byte 0x7F, 0x00, 0x7F, 0x00 - .global MATCHUP_NOT_VERY_EFFECTIVE_MULTIPLIER -MATCHUP_NOT_VERY_EFFECTIVE_MULTIPLIER: - .byte 0xB5, 0x00, 0x00, 0x00 - .global ov10_022C4814 -ov10_022C4814: - .byte 0x44, 0x00, 0x00, 0x00 - .global MATCHUP_SUPER_EFFECTIVE_MULTIPLIER -MATCHUP_SUPER_EFFECTIVE_MULTIPLIER: - .byte 0x66, 0x01, 0x00, 0x00 - .global MATCHUP_NEUTRAL_MULTIPLIER -MATCHUP_NEUTRAL_MULTIPLIER: - .byte 0x00, 0x01, 0x00, 0x00 - .global MATCHUP_IMMUNE_MULTIPLIER_ERRATIC_PLAYER -MATCHUP_IMMUNE_MULTIPLIER_ERRATIC_PLAYER: - .byte 0x40, 0x00, 0x00, 0x00 - .global MATCHUP_NOT_VERY_EFFECTIVE_MULTIPLIER_ERRATIC_PLAYER -MATCHUP_NOT_VERY_EFFECTIVE_MULTIPLIER_ERRATIC_PLAYER: - .byte 0x80, 0x00, 0x00, 0x00 - .global ov10_022C4828 -ov10_022C4828: - .byte 0x0A, 0x00, 0x0A, 0x00 - .global MATCHUP_NEUTRAL_MULTIPLIER_ERRATIC_PLAYER -MATCHUP_NEUTRAL_MULTIPLIER_ERRATIC_PLAYER: - .byte 0x00, 0x01, 0x00, 0x00 - .global ov10_022C4830 -ov10_022C4830: - .byte 0x0A, 0x00, 0x0A, 0x00 - .global ov10_022C4834 -ov10_022C4834: - .byte 0x32, 0x00, 0x00, 0x00 - .global ov10_022C4838 -ov10_022C4838: - .byte 0x7F, 0x00, 0x7F, 0x00 - .global ov10_022C483C -ov10_022C483C: - .byte 0x3C, 0x00, 0x00, 0x00 - .global ov10_022C4840 -ov10_022C4840: - .byte 0x01, 0x00, 0x03, 0x00 - .global AIR_BLADE_DAMAGE_MULTIPLIER -AIR_BLADE_DAMAGE_MULTIPLIER: - .byte 0x80, 0x01, 0x00, 0x00 - .global ov10_022C4848 -ov10_022C4848: - .byte 0x0A, 0x00, 0x0A, 0x00 - .global KECLEON_SHOP_BOOST_CHANCE_MULTIPLIER -KECLEON_SHOP_BOOST_CHANCE_MULTIPLIER: - .byte 0x33, 0x01, 0x00, 0x00 - .global HIDDEN_STAIRS_SPAWN_CHANCE_MULTIPLIER -HIDDEN_STAIRS_SPAWN_CHANCE_MULTIPLIER: - .byte 0x33, 0x01, 0x00, 0x00 - .global ov10_022C4854 -ov10_022C4854: - .byte 0x0A, 0x00, 0x0A, 0x00 - .global ov10_022C4858 -ov10_022C4858: - .byte 0x59, 0x01, 0x00, 0x00 - .global ov10_022C485C -ov10_022C485C: - .byte 0x0F, 0x00, 0x14, 0x00 - .global YAWN_TURN_RANGE -YAWN_TURN_RANGE: - .byte 0x02, 0x00, 0x02, 0x00 - .global ov10_022C4864 -ov10_022C4864: - .byte 0x0A, 0x00, 0x00, 0x00 - .global ov10_022C4868 -ov10_022C4868: - .byte 0x04, 0x00, 0x08, 0x00 - .global ov10_022C486C -ov10_022C486C: - .byte 0x7F, 0x00, 0x7F, 0x00 - .global ov10_022C4870 -ov10_022C4870: - .byte 0x03, 0x00, 0x05, 0x00 - .global ov10_022C4874 -ov10_022C4874: - .byte 0x7F, 0x00, 0x7F, 0x00 - .global ov10_022C4878 -ov10_022C4878: - .byte 0x7F, 0x00, 0x7F, 0x00 - .global ov10_022C487C -ov10_022C487C: - .byte 0x28, 0x00, 0x32, 0x00 - .global ov10_022C4880 -ov10_022C4880: - .byte 0x7F, 0x00, 0x7F, 0x00 - .global ov10_022C4884 -ov10_022C4884: - .byte 0x01, 0x00, 0x01, 0x00 - .global SPEED_BOOST_TURN_RANGE -SPEED_BOOST_TURN_RANGE: - .byte 0x08, 0x00, 0x0A, 0x00 - .global ov10_022C488C -ov10_022C488C: - .byte 0x06, 0x00, 0x08, 0x00 - .global ov10_022C4890 -ov10_022C4890: - .byte 0x06, 0x00, 0x0C, 0x00 - .global ov10_022C4894 -ov10_022C4894: - .byte 0x01, 0x00, 0x02, 0x00 - .global ov10_022C4898 -ov10_022C4898: - .byte 0x02, 0x00, 0x05, 0x00 - .global ov10_022C489C -ov10_022C489C: - .byte 0x00, 0x00, 0x00, 0x00 - .global ov10_022C48A0 -ov10_022C48A0: - .byte 0x03, 0x00, 0x06, 0x00 - .global SOLARBEAM_DAMAGE_MULTIPLIER -SOLARBEAM_DAMAGE_MULTIPLIER: - .byte 0x00, 0x02, 0x00, 0x00 - .global SKY_ATTACK_DAMAGE_MULTIPLIER -SKY_ATTACK_DAMAGE_MULTIPLIER: - .byte 0x00, 0x02, 0x00, 0x00 - .global ov10_022C48AC -ov10_022C48AC: - .byte 0x02, 0x00, 0x05, 0x00 - .global RAZOR_WIND_DAMAGE_MULTIPLIER -RAZOR_WIND_DAMAGE_MULTIPLIER: - .byte 0x00, 0x02, 0x00, 0x00 - .global FOCUS_PUNCH_DAMAGE_MULTIPLIER -FOCUS_PUNCH_DAMAGE_MULTIPLIER: - .byte 0x00, 0x02, 0x00, 0x00 - .global ov10_022C48B8 -ov10_022C48B8: - .byte 0x0F, 0x00, 0x1E, 0x00 - .global SKULL_BASH_DAMAGE_MULTIPLIER -SKULL_BASH_DAMAGE_MULTIPLIER: - .byte 0x00, 0x02, 0x00, 0x00 - .global FLY_DAMAGE_MULTIPLIER -FLY_DAMAGE_MULTIPLIER: - .byte 0x00, 0x02, 0x00, 0x00 - .global ov10_022C48C4 -ov10_022C48C4: - .byte 0x4D, 0x00, 0x59, 0x00, 0x00, 0x00, 0x00, 0x00 - .global ov10_022C48CC -ov10_022C48CC: - .byte 0x4D, 0x00, 0x59, 0x00, 0x00, 0x00, 0x00, 0x00 - .global ov10_022C48D4 -ov10_022C48D4: - .byte 0x4D, 0x00, 0x59, 0x00, 0x00, 0x00, 0x00, 0x00 - .global WEATHER_BALL_TYPE_TABLE -WEATHER_BALL_TYPE_TABLE: - .byte 0x01, 0x02, 0x0D, 0x01, 0x03, 0x06, 0x01, 0x06 - .global ov10_022C48E4 -ov10_022C48E4: - .byte 0x20, 0x00, 0x20, 0x00, 0x47, 0x00, 0x47, 0x00 - .global ov10_022C48EC -ov10_022C48EC: - .byte 0x00, 0x00, 0x64, 0x00, 0x1E, 0x00, 0x1E, 0x00 - .global ov10_022C48F4 -ov10_022C48F4: - .byte 0x7C, 0x05, 0x79, 0x05, 0x7A, 0x05, 0x7B, 0x05, 0x00, 0x00, 0x00, 0x00 diff --git a/asm/overlay_10_rodata_022C464C.s b/asm/overlay_10_rodata_022C464C.s new file mode 100644 index 00000000..e3b9f966 --- /dev/null +++ b/asm/overlay_10_rodata_022C464C.s @@ -0,0 +1,499 @@ + .include "asm/macros.inc" + .include "overlay_10_rodata_022C464C.inc" + + .rodata + .global ov10_022C464C +ov10_022C464C: + .byte 0x0A, 0x00, 0x00, 0x00 + .global ov10_022C4650 +ov10_022C4650: + .byte 0x0A, 0x00, 0x00, 0x00 + .global WEATHER_MOVE_TURN_COUNT +WEATHER_MOVE_TURN_COUNT: + .byte 0xB8, 0x0B, 0x00, 0x00 + .global THUNDER_PARALYZE_CHANCE +THUNDER_PARALYZE_CHANCE: + .byte 0x14, 0x00, 0x00, 0x00 + .global THUNDERBOLT_PARALYZE_CHANCE +THUNDERBOLT_PARALYZE_CHANCE: + .byte 0x0F, 0x00, 0x00, 0x00 + .global MONSTER_HOUSE_MAX_MONSTER_SPAWNS +MONSTER_HOUSE_MAX_MONSTER_SPAWNS: + .byte 0x1E, 0x00, 0x00, 0x00 + .global ov10_022C4664 +ov10_022C4664: + .byte 0x14, 0x00, 0x00, 0x00 + .global TWISTER_CRINGE_CHANCE +TWISTER_CRINGE_CHANCE: + .byte 0x0F, 0x00, 0x00, 0x00 + .global SPEED_BOOST_TURNS +SPEED_BOOST_TURNS: + .byte 0xFA, 0x00, 0x00, 0x00 + .global FAKE_OUT_CRINGE_CHANCE +FAKE_OUT_CRINGE_CHANCE: + .byte 0x23, 0x00, 0x00, 0x00 + .global ov10_022C4674 +ov10_022C4674: + .byte 0x9C, 0xFF, 0x00, 0x00 + .global THUNDER_FANG_CRINGE_CHANCE +THUNDER_FANG_CRINGE_CHANCE: + .byte 0x19, 0x00, 0x00, 0x00 + .global ov10_022C467C +ov10_022C467C: + .byte 0x0C, 0x00, 0x00, 0x00 + .global ov10_022C4680 +ov10_022C4680: + .byte 0x3C, 0x00, 0x00, 0x00 + .global FLARE_BLITZ_BURN_CHANCE +FLARE_BLITZ_BURN_CHANCE: + .byte 0x19, 0x00, 0x00, 0x00 + .global FLAME_WHEEL_BURN_CHANCE +FLAME_WHEEL_BURN_CHANCE: + .byte 0x0A, 0x00, 0x00, 0x00 + .global ov10_022C468C +ov10_022C468C: + .byte 0x0C, 0x00, 0x00, 0x00 + .global PSYBEAM_CONFUSE_CHANCE +PSYBEAM_CONFUSE_CHANCE: + .byte 0x0A, 0x00, 0x00, 0x00 + .global TRI_ATTACK_STATUS_CHANCE +TRI_ATTACK_STATUS_CHANCE: + .byte 0x14, 0x00, 0x00, 0x00 + .global MIRACLE_CHEST_EXP_BOOST +MIRACLE_CHEST_EXP_BOOST: + .byte 0x1E, 0x00, 0x00, 0x00 + .global WONDER_CHEST_EXP_BOOST +WONDER_CHEST_EXP_BOOST: + .byte 0x0F, 0x00, 0x00, 0x00 + .global ov10_022C46A0 +ov10_022C46A0: + .byte 0x32, 0x00, 0x00, 0x00 + .global SPAWN_CAP_WITH_MONSTER_HOUSE +SPAWN_CAP_WITH_MONSTER_HOUSE: + .byte 0x04, 0x00, 0x00, 0x00 + .global POISON_DAMAGE_COOLDOWN +POISON_DAMAGE_COOLDOWN: + .byte 0x14, 0x00, 0x00, 0x00 + .global LEECH_SEED_DAMAGE_COOLDOWN +LEECH_SEED_DAMAGE_COOLDOWN: + .byte 0x02, 0x00, 0x00, 0x00 + .global THROWN_ITEM_HIT_CHANCE +THROWN_ITEM_HIT_CHANCE: + .byte 0x5A, 0x00, 0x00, 0x00 + .global GEO_PEBBLE_DAMAGE +GEO_PEBBLE_DAMAGE: + .byte 0x0A, 0x00, 0x00, 0x00 + .global GRAVELEROCK_DAMAGE +GRAVELEROCK_DAMAGE: + .byte 0x14, 0x00, 0x00, 0x00 + .global RARE_FOSSIL_DAMAGE +RARE_FOSSIL_DAMAGE: + .byte 0x64, 0x00, 0x00, 0x00 + .global GINSENG_CHANCE_3 +GINSENG_CHANCE_3: + .byte 0x0C, 0x00, 0x00, 0x00 + .global ZINC_STAT_BOOST +ZINC_STAT_BOOST: + .byte 0x03, 0x00, 0x00, 0x00 + .global IRON_STAT_BOOST +IRON_STAT_BOOST: + .byte 0x03, 0x00, 0x00, 0x00 + .global CALCIUM_STAT_BOOST +CALCIUM_STAT_BOOST: + .byte 0x03, 0x00, 0x00, 0x00 + .global WISH_BONUS_REGEN +WISH_BONUS_REGEN: + .byte 0x24, 0xFF, 0x00, 0x00 + .global DRAGON_RAGE_FIXED_DAMAGE +DRAGON_RAGE_FIXED_DAMAGE: + .byte 0x1E, 0x00, 0x00, 0x00 + .global CORSOLA_TWIG_POWER +CORSOLA_TWIG_POWER: + .byte 0x0F, 0x00, 0x00, 0x00 + .global CACNEA_SPIKE_POWER +CACNEA_SPIKE_POWER: + .byte 0x0A, 0x00, 0x00, 0x00 + .global GOLD_FANG_POWER +GOLD_FANG_POWER: + .byte 0x07, 0x00, 0x00, 0x00 + .global SILVER_SPIKE_POWER +SILVER_SPIKE_POWER: + .byte 0x06, 0x00, 0x00, 0x00 + .global IRON_THORN_POWER +IRON_THORN_POWER: + .byte 0x04, 0x00, 0x00, 0x00 + .global ov10_022C46EC +ov10_022C46EC: + .byte 0x03, 0x00, 0x00, 0x00 + .global SCOPE_LENS_CRIT_RATE_BOOST +SCOPE_LENS_CRIT_RATE_BOOST: + .byte 0x0F, 0x00, 0x00, 0x00 + .global HEALING_WISH_HP_RESTORATION +HEALING_WISH_HP_RESTORATION: + .byte 0xE7, 0x03, 0x00, 0x00 + .global ov10_022C46F8 +ov10_022C46F8: + .byte 0x9C, 0xFF, 0x00, 0x00 + .global ov10_022C46FC +ov10_022C46FC: + .byte 0xC8, 0x00, 0x00, 0x00 + .global ov10_022C4700 +ov10_022C4700: + .byte 0xC8, 0x00, 0x00, 0x00 + .global ov10_022C4704 +ov10_022C4704: + .byte 0xC8, 0x00, 0x00, 0x00 + .global ov10_022C4708 +ov10_022C4708: + .byte 0xC8, 0x00, 0x00, 0x00 + .global ov10_022C470C +ov10_022C470C: + .byte 0xC8, 0x00, 0x00, 0x00 + .global ME_FIRST_MULTIPLIER +ME_FIRST_MULTIPLIER: + .byte 0x80, 0x01, 0x00, 0x00 + .global ov10_022C4714 +ov10_022C4714: + .byte 0x01, 0x00, 0x01, 0x00 + .global FACADE_DAMAGE_MULTIPLIER +FACADE_DAMAGE_MULTIPLIER: + .byte 0x00, 0x02, 0x00, 0x00 + .global IMPRISON_TURN_RANGE +IMPRISON_TURN_RANGE: + .byte 0x03, 0x00, 0x06, 0x00 + .global SLEEP_TURN_RANGE +SLEEP_TURN_RANGE: + .byte 0x03, 0x00, 0x07, 0x00 + .global NIGHTMARE_TURN_RANGE +NIGHTMARE_TURN_RANGE: + .byte 0x04, 0x00, 0x08, 0x00 + .global ov10_022C4728 +ov10_022C4728: + .byte 0x7F, 0x00, 0x7F, 0x00 + .global ov10_022C472C +ov10_022C472C: + .byte 0x0A, 0x00, 0x0C, 0x00 + .global ov10_022C4730 +ov10_022C4730: + .byte 0x0A, 0x00, 0x0C, 0x00 + .global ov10_022C4734 +ov10_022C4734: + .byte 0x0F, 0x00, 0x14, 0x00 + .global ov10_022C4738 +ov10_022C4738: + .byte 0x0A, 0x00, 0x0E, 0x00 + .global ov10_022C473C +ov10_022C473C: + .byte 0x50, 0x00, 0x00, 0x00 + .global ov10_022C4740 +ov10_022C4740: + .byte 0x0A, 0x00, 0x0C, 0x00 + .global BURN_DAMAGE_MULTIPLIER +BURN_DAMAGE_MULTIPLIER: + .byte 0xCC, 0x00, 0x00, 0x00 + .global REST_TURN_RANGE +REST_TURN_RANGE: + .byte 0x01, 0x00, 0x04, 0x00 + .global MATCHUP_SUPER_EFFECTIVE_MULTIPLIER_ERRATIC_PLAYER +MATCHUP_SUPER_EFFECTIVE_MULTIPLIER_ERRATIC_PLAYER: + .byte 0xB3, 0x01, 0x00, 0x00 + .global ov10_022C4750 +ov10_022C4750: + .byte 0x06, 0x00, 0x0C, 0x00 + .global ov10_022C4754 +ov10_022C4754: + .byte 0x03, 0x00, 0x05, 0x00 + .global MATCHUP_IMMUNE_MULTIPLIER +MATCHUP_IMMUNE_MULTIPLIER: + .byte 0x80, 0x00, 0x00, 0x00 + .global ov10_022C475C +ov10_022C475C: + .byte 0x04, 0x00, 0x0A, 0x00 + .global ov10_022C4760 +ov10_022C4760: + .byte 0x49, 0x00, 0x00, 0x00 + .global ov10_022C4764 +ov10_022C4764: + .byte 0x08, 0x00, 0x10, 0x00 + .global ov10_022C4768 +ov10_022C4768: + .byte 0x08, 0x00, 0x10, 0x00 + .global ov10_022C476C +ov10_022C476C: + .byte 0x04, 0x00, 0x0A, 0x00 + .global ov10_022C4770 +ov10_022C4770: + .byte 0x20, 0x00, 0x00, 0x00 + .global ov10_022C4774 +ov10_022C4774: + .byte 0x04, 0x00, 0x0A, 0x00 + .global ov10_022C4778 +ov10_022C4778: + .byte 0x04, 0x00, 0x0A, 0x00 + .global ov10_022C477C +ov10_022C477C: + .byte 0x7F, 0x00, 0x7F, 0x00 + .global ov10_022C4780 +ov10_022C4780: + .byte 0x04, 0x00, 0x0A, 0x00 + .global ov10_022C4784 +ov10_022C4784: + .byte 0x03, 0x00, 0x09, 0x00 + .global ov10_022C4788 +ov10_022C4788: + .byte 0x03, 0x00, 0x05, 0x00 + .global SPORT_CONDITION_TURN_RANGE +SPORT_CONDITION_TURN_RANGE: + .byte 0x0A, 0x00, 0x0C, 0x00 + .global ov10_022C4790 +ov10_022C4790: + .byte 0x0A, 0x00, 0x0C, 0x00 + .global ov10_022C4794 +ov10_022C4794: + .byte 0x0A, 0x00, 0x0C, 0x00 + .global SURE_SHOT_TURN_RANGE +SURE_SHOT_TURN_RANGE: + .byte 0x0A, 0x00, 0x0C, 0x00 + .global ov10_022C479C +ov10_022C479C: + .byte 0x0A, 0x00, 0x14, 0x00 + .global ov10_022C47A0 +ov10_022C47A0: + .byte 0x7F, 0x00, 0x7F, 0x00 + .global ov10_022C47A4 +ov10_022C47A4: + .byte 0x02, 0x00, 0x04, 0x00 + .global DETECT_BAND_MOVE_ACCURACY_DROP +DETECT_BAND_MOVE_ACCURACY_DROP: + .byte 0x1E, 0x00, 0x00, 0x00 + .global ov10_022C47AC +ov10_022C47AC: + .byte 0x02, 0x00, 0x04, 0x00 + .global ov10_022C47B0 +ov10_022C47B0: + .byte 0x0A, 0x00, 0x0C, 0x00 + .global ov10_022C47B4 +ov10_022C47B4: + .byte 0x14, 0x00, 0x32, 0x00 + .global ov10_022C47B8 +ov10_022C47B8: + .byte 0x01, 0x00, 0x03, 0x00 + .global ov10_022C47BC +ov10_022C47BC: + .byte 0x0A, 0x00, 0x0C, 0x00 + .global TINTED_LENS_MULTIPLIER +TINTED_LENS_MULTIPLIER: + .byte 0x33, 0x01, 0x00, 0x00 + .global SMOKESCREEN_TURN_RANGE +SMOKESCREEN_TURN_RANGE: + .byte 0x01, 0x00, 0x04, 0x00 + .global ov10_022C47C8 +ov10_022C47C8: + .byte 0x14, 0x00, 0x1E, 0x00 + .global ov10_022C47CC +ov10_022C47CC: + .byte 0x0A, 0x00, 0x0C, 0x00 + .global PERISH_SONG_TURN_RANGE +PERISH_SONG_TURN_RANGE: + .byte 0x03, 0x00, 0x03, 0x00 + .global ov10_022C47D4 +ov10_022C47D4: + .byte 0x0A, 0x00, 0x0A, 0x00 + .global ov10_022C47D8 +ov10_022C47D8: + .byte 0x0A, 0x00, 0x0A, 0x00 + .global SHADOW_FORCE_DAMAGE_MULTIPLIER +SHADOW_FORCE_DAMAGE_MULTIPLIER: + .byte 0x00, 0x02, 0x00, 0x00 + .global ov10_022C47E0 +ov10_022C47E0: + .byte 0x0A, 0x00, 0x05, 0x00 + .global DIG_DAMAGE_MULTIPLIER +DIG_DAMAGE_MULTIPLIER: + .byte 0x00, 0x02, 0x00, 0x00 + .global DIVE_DAMAGE_MULTIPLIER +DIVE_DAMAGE_MULTIPLIER: + .byte 0x00, 0x02, 0x00, 0x00 + .global BOUNCE_DAMAGE_MULTIPLIER +BOUNCE_DAMAGE_MULTIPLIER: + .byte 0x00, 0x02, 0x00, 0x00 + .global ov10_022C47F0 +ov10_022C47F0: + .byte 0x0A, 0x00, 0x00, 0x00 + .global ov10_022C47F4 +ov10_022C47F4: + .byte 0x01, 0x00, 0x04, 0x00 + .global POWER_PITCHER_DAMAGE_MULTIPLIER +POWER_PITCHER_DAMAGE_MULTIPLIER: + .byte 0x80, 0x01, 0x00, 0x00 + .global ov10_022C47FC +ov10_022C47FC: + .byte 0x7F, 0x00, 0x7F, 0x00 + .global ov10_022C4800 +ov10_022C4800: + .byte 0x78, 0x00, 0x00, 0x00 + .global ov10_022C4804 +ov10_022C4804: + .byte 0x04, 0x00, 0x06, 0x00 + .global QUICK_DODGER_MOVE_ACCURACY_DROP +QUICK_DODGER_MOVE_ACCURACY_DROP: + .byte 0x0A, 0x00, 0x00, 0x00 + .global ov10_022C480C +ov10_022C480C: + .byte 0x7F, 0x00, 0x7F, 0x00 + .global MATCHUP_NOT_VERY_EFFECTIVE_MULTIPLIER +MATCHUP_NOT_VERY_EFFECTIVE_MULTIPLIER: + .byte 0xB5, 0x00, 0x00, 0x00 + .global ov10_022C4814 +ov10_022C4814: + .byte 0x44, 0x00, 0x00, 0x00 + .global MATCHUP_SUPER_EFFECTIVE_MULTIPLIER +MATCHUP_SUPER_EFFECTIVE_MULTIPLIER: + .byte 0x66, 0x01, 0x00, 0x00 + .global MATCHUP_NEUTRAL_MULTIPLIER +MATCHUP_NEUTRAL_MULTIPLIER: + .byte 0x00, 0x01, 0x00, 0x00 + .global MATCHUP_IMMUNE_MULTIPLIER_ERRATIC_PLAYER +MATCHUP_IMMUNE_MULTIPLIER_ERRATIC_PLAYER: + .byte 0x40, 0x00, 0x00, 0x00 + .global MATCHUP_NOT_VERY_EFFECTIVE_MULTIPLIER_ERRATIC_PLAYER +MATCHUP_NOT_VERY_EFFECTIVE_MULTIPLIER_ERRATIC_PLAYER: + .byte 0x80, 0x00, 0x00, 0x00 + .global ov10_022C4828 +ov10_022C4828: + .byte 0x0A, 0x00, 0x0A, 0x00 + .global MATCHUP_NEUTRAL_MULTIPLIER_ERRATIC_PLAYER +MATCHUP_NEUTRAL_MULTIPLIER_ERRATIC_PLAYER: + .byte 0x00, 0x01, 0x00, 0x00 + .global ov10_022C4830 +ov10_022C4830: + .byte 0x0A, 0x00, 0x0A, 0x00 + .global ov10_022C4834 +ov10_022C4834: + .byte 0x32, 0x00, 0x00, 0x00 + .global ov10_022C4838 +ov10_022C4838: + .byte 0x7F, 0x00, 0x7F, 0x00 + .global ov10_022C483C +ov10_022C483C: + .byte 0x3C, 0x00, 0x00, 0x00 + .global ov10_022C4840 +ov10_022C4840: + .byte 0x01, 0x00, 0x03, 0x00 + .global AIR_BLADE_DAMAGE_MULTIPLIER +AIR_BLADE_DAMAGE_MULTIPLIER: + .byte 0x80, 0x01, 0x00, 0x00 + .global ov10_022C4848 +ov10_022C4848: + .byte 0x0A, 0x00, 0x0A, 0x00 + .global KECLEON_SHOP_BOOST_CHANCE_MULTIPLIER +KECLEON_SHOP_BOOST_CHANCE_MULTIPLIER: + .byte 0x33, 0x01, 0x00, 0x00 + .global HIDDEN_STAIRS_SPAWN_CHANCE_MULTIPLIER +HIDDEN_STAIRS_SPAWN_CHANCE_MULTIPLIER: + .byte 0x33, 0x01, 0x00, 0x00 + .global ov10_022C4854 +ov10_022C4854: + .byte 0x0A, 0x00, 0x0A, 0x00 + .global ov10_022C4858 +ov10_022C4858: + .byte 0x59, 0x01, 0x00, 0x00 + .global ov10_022C485C +ov10_022C485C: + .byte 0x0F, 0x00, 0x14, 0x00 + .global YAWN_TURN_RANGE +YAWN_TURN_RANGE: + .byte 0x02, 0x00, 0x02, 0x00 + .global ov10_022C4864 +ov10_022C4864: + .byte 0x0A, 0x00, 0x00, 0x00 + .global ov10_022C4868 +ov10_022C4868: + .byte 0x04, 0x00, 0x08, 0x00 + .global ov10_022C486C +ov10_022C486C: + .byte 0x7F, 0x00, 0x7F, 0x00 + .global ov10_022C4870 +ov10_022C4870: + .byte 0x03, 0x00, 0x05, 0x00 + .global ov10_022C4874 +ov10_022C4874: + .byte 0x7F, 0x00, 0x7F, 0x00 + .global ov10_022C4878 +ov10_022C4878: + .byte 0x7F, 0x00, 0x7F, 0x00 + .global ov10_022C487C +ov10_022C487C: + .byte 0x28, 0x00, 0x32, 0x00 + .global ov10_022C4880 +ov10_022C4880: + .byte 0x7F, 0x00, 0x7F, 0x00 + .global ov10_022C4884 +ov10_022C4884: + .byte 0x01, 0x00, 0x01, 0x00 + .global SPEED_BOOST_TURN_RANGE +SPEED_BOOST_TURN_RANGE: + .byte 0x08, 0x00, 0x0A, 0x00 + .global ov10_022C488C +ov10_022C488C: + .byte 0x06, 0x00, 0x08, 0x00 + .global ov10_022C4890 +ov10_022C4890: + .byte 0x06, 0x00, 0x0C, 0x00 + .global ov10_022C4894 +ov10_022C4894: + .byte 0x01, 0x00, 0x02, 0x00 + .global ov10_022C4898 +ov10_022C4898: + .byte 0x02, 0x00, 0x05, 0x00 + .global ov10_022C489C +ov10_022C489C: + .byte 0x00, 0x00, 0x00, 0x00 + .global ov10_022C48A0 +ov10_022C48A0: + .byte 0x03, 0x00, 0x06, 0x00 + .global SOLARBEAM_DAMAGE_MULTIPLIER +SOLARBEAM_DAMAGE_MULTIPLIER: + .byte 0x00, 0x02, 0x00, 0x00 + .global SKY_ATTACK_DAMAGE_MULTIPLIER +SKY_ATTACK_DAMAGE_MULTIPLIER: + .byte 0x00, 0x02, 0x00, 0x00 + .global ov10_022C48AC +ov10_022C48AC: + .byte 0x02, 0x00, 0x05, 0x00 + .global RAZOR_WIND_DAMAGE_MULTIPLIER +RAZOR_WIND_DAMAGE_MULTIPLIER: + .byte 0x00, 0x02, 0x00, 0x00 + .global FOCUS_PUNCH_DAMAGE_MULTIPLIER +FOCUS_PUNCH_DAMAGE_MULTIPLIER: + .byte 0x00, 0x02, 0x00, 0x00 + .global ov10_022C48B8 +ov10_022C48B8: + .byte 0x0F, 0x00, 0x1E, 0x00 + .global SKULL_BASH_DAMAGE_MULTIPLIER +SKULL_BASH_DAMAGE_MULTIPLIER: + .byte 0x00, 0x02, 0x00, 0x00 + .global FLY_DAMAGE_MULTIPLIER +FLY_DAMAGE_MULTIPLIER: + .byte 0x00, 0x02, 0x00, 0x00 + .global ov10_022C48C4 +ov10_022C48C4: + .byte 0x4D, 0x00, 0x59, 0x00, 0x00, 0x00, 0x00, 0x00 + .global ov10_022C48CC +ov10_022C48CC: + .byte 0x4D, 0x00, 0x59, 0x00, 0x00, 0x00, 0x00, 0x00 + .global ov10_022C48D4 +ov10_022C48D4: + .byte 0x4D, 0x00, 0x59, 0x00, 0x00, 0x00, 0x00, 0x00 + .global WEATHER_BALL_TYPE_TABLE +WEATHER_BALL_TYPE_TABLE: + .byte 0x01, 0x02, 0x0D, 0x01, 0x03, 0x06, 0x01, 0x06 + .global ov10_022C48E4 +ov10_022C48E4: + .byte 0x20, 0x00, 0x20, 0x00, 0x47, 0x00, 0x47, 0x00 + .global ov10_022C48EC +ov10_022C48EC: + .byte 0x00, 0x00, 0x64, 0x00, 0x1E, 0x00, 0x1E, 0x00 + .global ov10_022C48F4 +ov10_022C48F4: + .byte 0x7C, 0x05, 0x79, 0x05, 0x7A, 0x05, 0x7B, 0x05, 0x00, 0x00, 0x00, 0x00 diff --git a/asm/overlay_29_02318E70.s b/asm/overlay_29_02318E70.s index 8a3b21af..3ba86bcd 100644 --- a/asm/overlay_29_02318E70.s +++ b/asm/overlay_29_02318E70.s @@ -737,33 +737,3 @@ _02319744: .word 0x00000AA1 _02319744: .word 0x00000D61 #endif arm_func_end TryResetStatChanges - - arm_func_start MirrorMoveIsActive -MirrorMoveIsActive: ; 0x02319748 - stmdb sp!, {r4, lr} - mov r4, r0 - bl EntityIsValid__02318E4C - cmp r0, #0 - beq _0231979C - ldr r0, [r4, #0xb4] - ldrb r0, [r0, #0xd5] - cmp r0, #0xb - moveq r0, #1 - ldmeqia sp!, {r4, pc} - mov r0, r4 - mov r1, #0x25 - bl ExclusiveItemEffectIsActive__023197A8 - cmp r0, #0 - beq _0231979C - ldr r0, _023197A4 ; =ov10_022C4648 - ldrsh r0, [r0] - bl DungeonRandOutcome__022EAB20 - cmp r0, #0 - movne r0, #2 - ldmneia sp!, {r4, pc} -_0231979C: - mov r0, #0 - ldmia sp!, {r4, pc} - .align 2, 0 -_023197A4: .word ov10_022C4648 - arm_func_end MirrorMoveIsActive diff --git a/include/dungeon_parameters_1.h b/include/dungeon_parameters_1.h new file mode 100644 index 00000000..e694ef69 --- /dev/null +++ b/include/dungeon_parameters_1.h @@ -0,0 +1,6 @@ +#ifndef PMDSKY_DUNGEON_PARAMETERS_1_H +#define PMDSKY_DUNGEON_PARAMETERS_1_H + +extern const s16 CHATOT_SCARF_BOUNCE_CHANCE; + +#endif //PMDSKY_DUNGEON_PARAMETERS_1_H diff --git a/include/move_effects.h b/include/move_effects.h new file mode 100644 index 00000000..61d8b69f --- /dev/null +++ b/include/move_effects.h @@ -0,0 +1,8 @@ +#ifndef PMDSKY_MOVE_EFFECTS_H +#define PMDSKY_MOVE_EFFECTS_H + +#define EFFECT_INACTIVE 0 +#define EFFECT_ACTIVE_FROM_STATUS 1 +#define EFFECT_ACTIVE_FROM_EXCLUSIVE_ITEM 2 + +#endif // PMDSKY_MOVE_EFFECTS_H diff --git a/include/overlay_29_023197A8.h b/include/overlay_29_023197A8.h index f6bcf940..30943d28 100644 --- a/include/overlay_29_023197A8.h +++ b/include/overlay_29_023197A8.h @@ -3,6 +3,9 @@ #include "dungeon_mode.h" +// Checks if the monster is under the effect of Mirror Move. +// Returns 1 if the effects is a status, 2 if it comes from an exclusive item, 0 otherwise. +u8 MirrorMoveIsActive(struct entity *entity); // Checks if a monster is a team member under the effects of a certain exclusive item effect. bool8 ExclusiveItemEffectIsActive__023197A8(struct entity *entity, enum exclusive_item_effect_id effect_id); diff --git a/main.lsf b/main.lsf index b372da7a..1e9b816b 100644 --- a/main.lsf +++ b/main.lsf @@ -165,6 +165,8 @@ Overlay OVY_10 Object asm/overlay_10_022C2588.o Object src/dungeon_parameters.o Object asm/overlay_10_rodata_022C4584.o + Object src/dungeon_parameters_1.o + Object asm/overlay_10_rodata_022C464C.o Object src/dungeon_ai_itcm.o Object asm/overlay_10_rodata_022C490C.o } diff --git a/src/dungeon_parameters_1.c b/src/dungeon_parameters_1.c new file mode 100644 index 00000000..2c735383 --- /dev/null +++ b/src/dungeon_parameters_1.c @@ -0,0 +1,3 @@ +#include "dungeon_parameters.h" + +const s16 CHATOT_SCARF_BOUNCE_CHANCE = 20; diff --git a/src/move_checks.c b/src/move_checks.c index 0c1a50fc..4318fdd5 100644 --- a/src/move_checks.c +++ b/src/move_checks.c @@ -4,12 +4,12 @@ #include "dungeon_util_static.h" #include "dungeon_visibility.h" #include "number_util.h" +#include "overlay_29_023197A8.h" #include "tileset.h" +#include "weather.h" extern struct dungeon* DUNGEON_PTR[]; -extern enum weather_id GetApparentWeather(struct entity *entity); -extern bool8 MirrorMoveIsActive(struct entity *entity); extern bool8 MistIsActive(struct entity *entity); extern bool8 IsCurrentFixedRoomBossFight(); extern bool8 CanLayTrap(struct position *pos); diff --git a/src/overlay_29_023197A8.c b/src/overlay_29_023197A8.c index 41550a03..57588395 100644 --- a/src/overlay_29_023197A8.c +++ b/src/overlay_29_023197A8.c @@ -1,6 +1,24 @@ #include "overlay_29_023197A8.h" +#include "dg_random.h" +#include "dungeon_parameters_1.h" #include "dungeon_util_static.h" #include "exclusive_item.h" +#include "move_effects.h" +#include "overlay_29_02318E4C.h" + +u8 MirrorMoveIsActive(struct entity *entity) +{ + if (EntityIsValid__02318E4C(entity)) + { + if (GetEntInfo(entity)->reflect_class_status.reflect == STATUS_REFLECT_MIRROR_MOVE) + return EFFECT_ACTIVE_FROM_STATUS; + + if (ExclusiveItemEffectIsActive__023197A8(entity, EXCLUSIVE_EFF_MAY_BOUNCE_MOVES) && DungeonRandOutcome__022EAB20(CHATOT_SCARF_BOUNCE_CHANCE)) + return EFFECT_ACTIVE_FROM_EXCLUSIVE_ITEM; + } + + return EFFECT_INACTIVE; +} bool8 ExclusiveItemEffectIsActive__023197A8(struct entity *entity, enum exclusive_item_effect_id effect_id) {