summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/bugs_and_glitches.md30
-rw-r--r--engine/battle/move_effects/counter.asm1
-rw-r--r--engine/battle/move_effects/mirror_coat.asm1
3 files changed, 31 insertions, 1 deletions
diff --git a/docs/bugs_and_glitches.md b/docs/bugs_and_glitches.md
index 786c51ab3..875a2ac77 100644
--- a/docs/bugs_and_glitches.md
+++ b/docs/bugs_and_glitches.md
@@ -246,7 +246,35 @@ DefenseDownHit:
([Video](https://www.youtube.com/watch?v=uRYyzKRatFk))
-*To do:* Identify specific code causing this bug and fix it.
+This is a bug with `BattleCommand_Counter` in [engine/battle/move_effects/counter.asm](/engine/battle/move_effects/counter.asm) and `BattleCommand_MirrorCoat` in [engine/battle/move_effects/mirror_coat.asm](/engine/battle/move_effects/mirror_coat.asm):
+
+```asm
+ ; BUG: Move should fail with all non-damaging battle actions
+ ld hl, wCurDamage
+ ld a, [hli]
+ or [hl]
+ ret z
+```
+
+**Fix:**
+
+```diff
+ ld hl, wCurDamage
+ ld a, [hli]
+ or [hl]
+- ret z
++ jp z, .failed
+```
+
+Add this to the end of each file:
+
+```diff
++.failed
++ ld a, 1
++ ld [wEffectFailed], a
++ and a
++ ret
+```
## A Disabled but PP Up–enhanced move may not trigger Struggle
diff --git a/engine/battle/move_effects/counter.asm b/engine/battle/move_effects/counter.asm
index f92e1b3ac..031c399a6 100644
--- a/engine/battle/move_effects/counter.asm
+++ b/engine/battle/move_effects/counter.asm
@@ -36,6 +36,7 @@ BattleCommand_Counter:
cp SPECIAL
ret nc
+ ; BUG: Move should fail with all non-damaging battle actions
ld hl, wCurDamage
ld a, [hli]
or [hl]
diff --git a/engine/battle/move_effects/mirror_coat.asm b/engine/battle/move_effects/mirror_coat.asm
index 8743c389d..fb3a30d58 100644
--- a/engine/battle/move_effects/mirror_coat.asm
+++ b/engine/battle/move_effects/mirror_coat.asm
@@ -37,6 +37,7 @@ BattleCommand_MirrorCoat:
cp SPECIAL
ret c
+ ; BUG: Move should fail with all non-damaging battle actions
ld hl, wCurDamage
ld a, [hli]
or [hl]