diff options
author | yenatch <yenatch@gmail.com> | 2017-06-24 17:43:48 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-06-24 17:43:48 -0400 |
commit | d0d61cb3ab847ff0c72a840363b89d4acf05b5f5 (patch) | |
tree | 8c5fd287e727f253f84c89ce32f01a76f948e4fb | |
parent | 080704e49f49777baac124d1bba8c1066acd1bb1 (diff) | |
parent | 0e76127da878efbe86997eb5a58e6bcd4bf66ff5 (diff) |
Merge pull request #354 from FredrIQ/comments
Fix a reversed label mistake and reference a major bug
-rw-r--r-- | battle/ai/items.asm | 2 | ||||
-rw-r--r-- | battle/ai/scoring.asm | 22 | ||||
-rwxr-xr-x | battle/ai/switch.asm | 8 | ||||
-rw-r--r-- | battle/core.asm | 8 | ||||
-rw-r--r-- | battle/effect_commands.asm | 8 | ||||
-rw-r--r-- | home/battle.asm | 2 | ||||
-rwxr-xr-x | misc/mobile_5c.asm | 2 | ||||
-rw-r--r-- | wram.asm | 4 |
8 files changed, 31 insertions, 25 deletions
diff --git a/battle/ai/items.asm b/battle/ai/items.asm index f8c97578a..325c7b555 100644 --- a/battle/ai/items.asm +++ b/battle/ai/items.asm @@ -238,7 +238,7 @@ AI_TryItem: ; 38105 res SUBSTATUS_RAGE, [hl] xor a - ld [LastPlayerCounterMove], a + ld [LastEnemyCounterMove], a scf ret diff --git a/battle/ai/scoring.asm b/battle/ai/scoring.asm index 3091697e5..733322f82 100644 --- a/battle/ai/scoring.asm +++ b/battle/ai/scoring.asm @@ -756,7 +756,7 @@ AI_Smart_AlwaysHit: ; 38947 AI_Smart_MirrorMove: ; 3895b ; If the player did not use any move last turn... - ld a, [LastEnemyCounterMove] + ld a, [LastPlayerCounterMove] and a jr nz, .asm_38968 @@ -1353,7 +1353,7 @@ AI_Smart_Rage: ; 38b7f AI_Smart_Mimic: ; 38ba8 - ld a, [LastEnemyCounterMove] + ld a, [LastPlayerCounterMove] and a jr z, .asm_38be9 @@ -1361,7 +1361,7 @@ AI_Smart_Mimic: ; 38ba8 jr nc, .asm_38bef push hl - ld a, [LastEnemyCounterMove] + ld a, [LastPlayerCounterMove] call AIGetEnemyMove ld a, $1 @@ -1380,7 +1380,7 @@ AI_Smart_Mimic: ; 38ba8 dec [hl] .asm_38bd4 - ld a, [LastEnemyCounterMove] + ld a, [LastPlayerCounterMove] push hl ld hl, UsefulMoves ld de, 1 @@ -1438,7 +1438,7 @@ AI_Smart_Counter: ; 38bf1 cp $3 jr nc, .asm_38c30 - ld a, [LastEnemyCounterMove] + ld a, [LastPlayerCounterMove] and a jr z, .asm_38c38 @@ -1499,7 +1499,7 @@ AI_Smart_Encore: ; 38c3b .asm_38c68 push hl - ld a, [LastEnemyCounterMove] + ld a, [LastPlayerCounterMove] ld hl, .EncoreMoves ld de, 1 call IsInArray @@ -1615,7 +1615,7 @@ AI_Smart_DefrostOpponent: ; 38ccb AI_Smart_Spite: ; 38cd5 - ld a, [LastEnemyCounterMove] + ld a, [LastPlayerCounterMove] and a jr nz, .asm_38ce7 @@ -1837,7 +1837,7 @@ AI_Smart_Disable: ; 38dd1 jr nc, .asm_38df3 push hl - ld a, [LastEnemyCounterMove] + ld a, [LastPlayerCounterMove] ld hl, UsefulMoves ld de, 1 call IsInArray @@ -2367,7 +2367,7 @@ AI_Smart_Magnitude: AI_Smart_Earthquake: ; 39044 ; Greatly encourage this move if the player is underground and the enemy is faster. - ld a, [LastEnemyCounterMove] + ld a, [LastPlayerCounterMove] cp DIG ret nz @@ -2741,7 +2741,7 @@ AI_Smart_MirrorCoat: ; 3918b cp $3 jr nc, .asm_391ca - ld a, [LastEnemyCounterMove] + ld a, [LastPlayerCounterMove] and a jr z, .asm_391d2 @@ -2775,7 +2775,7 @@ AI_Smart_Twister: AI_Smart_Gust: ; 391d5 ; Greatly encourage this move if the player is flying and the enemy is faster. - ld a, [LastEnemyCounterMove] + ld a, [LastPlayerCounterMove] cp FLY ret nz diff --git a/battle/ai/switch.asm b/battle/ai/switch.asm index cb1fe3660..c2f83fa1f 100755 --- a/battle/ai/switch.asm +++ b/battle/ai/switch.asm @@ -229,7 +229,7 @@ CheckAbleToSwitch: ; 34941 cp 11 ret nc - ld a, [LastEnemyCounterMove] + ld a, [LastPlayerCounterMove] and a jr z, .no_last_counter_move @@ -378,8 +378,8 @@ FindEnemyMonsImmuneToLastCounterMove: ; 34a2a ld [CurSpecies], a call GetBaseData - ; the enemy's last move is damaging... - ld a, [LastEnemyCounterMove] + ; the player's last move is damaging... + ld a, [LastPlayerCounterMove] dec a ld hl, Moves + MOVE_POWER call GetMoveAttr @@ -568,7 +568,7 @@ FindEnemyMonsThatResistPlayer: ; 34b20 push hl ld [CurSpecies], a call GetBaseData - ld a, [LastEnemyCounterMove] + ld a, [LastPlayerCounterMove] and a jr z, .skip_move diff --git a/battle/core.asm b/battle/core.asm index be6e24eca..cb709e08d 100644 --- a/battle/core.asm +++ b/battle/core.asm @@ -3366,8 +3366,8 @@ CheckWhetherSwitchmonIsPredetermined: ; 3d533 ResetEnemyBattleVars: ; 3d557 ; and draw empty TextBox xor a - ld [LastEnemyCounterMove], a ld [LastPlayerCounterMove], a + ld [LastEnemyCounterMove], a ld [LastEnemyMove], a ld [CurEnemyMove], a dec a @@ -3766,8 +3766,8 @@ Function_SetEnemyPkmnAndSendOutAnimation: ; 3d7c7 NewEnemyMonStatus: ; 3d834 xor a - ld [LastEnemyCounterMove], a ld [LastPlayerCounterMove], a + ld [LastEnemyCounterMove], a ld [LastEnemyMove], a ld hl, EnemySubStatus1 rept 4 @@ -4217,8 +4217,8 @@ SendOutPlayerMon: ; 3db5f ld [CurMoveNum], a ld [TypeModifier], a ld [wPlayerMoveStruct + MOVE_ANIM], a - ld [LastEnemyCounterMove], a ld [LastPlayerCounterMove], a + ld [LastEnemyCounterMove], a ld [LastPlayerMove], a call CheckAmuletCoin call FinishBattleAnim @@ -4258,8 +4258,8 @@ SendOutPlayerMon: ; 3db5f NewBattleMonStatus: ; 3dbde xor a - ld [LastEnemyCounterMove], a ld [LastPlayerCounterMove], a + ld [LastEnemyCounterMove], a ld [LastPlayerMove], a ld hl, PlayerSubStatus1 rept 4 diff --git a/battle/effect_commands.asm b/battle/effect_commands.asm index 54af56a10..221570d76 100644 --- a/battle/effect_commands.asm +++ b/battle/effect_commands.asm @@ -971,7 +971,7 @@ BattleCommand_CheckObedience: ; 343db .EndDisobedience: xor a ld [LastPlayerMove], a - ld [LastEnemyCounterMove], a + ld [LastPlayerCounterMove], a ; Break Encore too. ld hl, PlayerSubStatus5 @@ -1542,6 +1542,12 @@ BattleCheckTypeMatchup: ; 347c8 jr z, CheckTypeMatchup ld hl, BattleMonType1 CheckTypeMatchup: ; 347d3 +; There is an incorrect assumption about this function made in the AI related code: when +; the AI calls CheckTypeMatchup (not BattleCheckTypeMatchup), it assumes that placing the +; offensive type in a will make this function do the right thing. Since a is overwritten, +; this assumption is incorrect. A simple fix would be to load the move type for the +; current move into a in BattleCheckTypeMatchup, before falling through, which is +; consistent with how the rest of the code assumes this code works like. push hl push de push bc diff --git a/home/battle.asm b/home/battle.asm index e8aa0747c..3c2e4de43 100644 --- a/home/battle.asm +++ b/home/battle.asm @@ -227,7 +227,7 @@ GetBattleVarAddr:: ; 39e7 dw wPlayerMoveStructPower, wEnemyMoveStructPower dw wPlayerMoveStructType, wEnemyMoveStructType dw CurPlayerMove, CurEnemyMove - dw LastEnemyCounterMove, LastPlayerCounterMove + dw LastPlayerCounterMove, LastEnemyCounterMove dw LastPlayerMove, LastEnemyMove ; 3a90 diff --git a/misc/mobile_5c.asm b/misc/mobile_5c.asm index ef9db89a8..34bdb15ad 100755 --- a/misc/mobile_5c.asm +++ b/misc/mobile_5c.asm @@ -206,7 +206,7 @@ Function170c06: ; 170c06 ; 170c8b Function170c8b: ; 170c8b - ld hl, LastPlayerCounterMove + ld hl, LastEnemyCounterMove ld b, $5 .asm_170c90 ld a, [hl] @@ -635,9 +635,9 @@ EnemyDisabledMove:: ; c6f6 wWhichMonFaintedFirst:: ds 1 ; exists so you can't counter on switch -LastEnemyCounterMove:: ; c6f8 +LastPlayerCounterMove:: ; c6f8 ds 1 -LastPlayerCounterMove:: ; c6f9 +LastEnemyCounterMove:: ; c6f9 ds 1 wEnemyMinimized:: ds 1 ; c6fa |