Merge pull request #354 from FredrIQ/comments

Fix a reversed label mistake and reference a major bug
This commit is contained in:
yenatch 2017-06-24 17:43:48 -04:00 committed by GitHub
commit d0d61cb3ab
8 changed files with 31 additions and 25 deletions

View File

@ -238,7 +238,7 @@ AI_TryItem: ; 38105
res SUBSTATUS_RAGE, [hl] res SUBSTATUS_RAGE, [hl]
xor a xor a
ld [LastPlayerCounterMove], a ld [LastEnemyCounterMove], a
scf scf
ret ret

View File

@ -756,7 +756,7 @@ AI_Smart_AlwaysHit: ; 38947
AI_Smart_MirrorMove: ; 3895b AI_Smart_MirrorMove: ; 3895b
; If the player did not use any move last turn... ; If the player did not use any move last turn...
ld a, [LastEnemyCounterMove] ld a, [LastPlayerCounterMove]
and a and a
jr nz, .asm_38968 jr nz, .asm_38968
@ -1353,7 +1353,7 @@ AI_Smart_Rage: ; 38b7f
AI_Smart_Mimic: ; 38ba8 AI_Smart_Mimic: ; 38ba8
ld a, [LastEnemyCounterMove] ld a, [LastPlayerCounterMove]
and a and a
jr z, .asm_38be9 jr z, .asm_38be9
@ -1361,7 +1361,7 @@ AI_Smart_Mimic: ; 38ba8
jr nc, .asm_38bef jr nc, .asm_38bef
push hl push hl
ld a, [LastEnemyCounterMove] ld a, [LastPlayerCounterMove]
call AIGetEnemyMove call AIGetEnemyMove
ld a, $1 ld a, $1
@ -1380,7 +1380,7 @@ AI_Smart_Mimic: ; 38ba8
dec [hl] dec [hl]
.asm_38bd4 .asm_38bd4
ld a, [LastEnemyCounterMove] ld a, [LastPlayerCounterMove]
push hl push hl
ld hl, UsefulMoves ld hl, UsefulMoves
ld de, 1 ld de, 1
@ -1438,7 +1438,7 @@ AI_Smart_Counter: ; 38bf1
cp $3 cp $3
jr nc, .asm_38c30 jr nc, .asm_38c30
ld a, [LastEnemyCounterMove] ld a, [LastPlayerCounterMove]
and a and a
jr z, .asm_38c38 jr z, .asm_38c38
@ -1499,7 +1499,7 @@ AI_Smart_Encore: ; 38c3b
.asm_38c68 .asm_38c68
push hl push hl
ld a, [LastEnemyCounterMove] ld a, [LastPlayerCounterMove]
ld hl, .EncoreMoves ld hl, .EncoreMoves
ld de, 1 ld de, 1
call IsInArray call IsInArray
@ -1615,7 +1615,7 @@ AI_Smart_DefrostOpponent: ; 38ccb
AI_Smart_Spite: ; 38cd5 AI_Smart_Spite: ; 38cd5
ld a, [LastEnemyCounterMove] ld a, [LastPlayerCounterMove]
and a and a
jr nz, .asm_38ce7 jr nz, .asm_38ce7
@ -1837,7 +1837,7 @@ AI_Smart_Disable: ; 38dd1
jr nc, .asm_38df3 jr nc, .asm_38df3
push hl push hl
ld a, [LastEnemyCounterMove] ld a, [LastPlayerCounterMove]
ld hl, UsefulMoves ld hl, UsefulMoves
ld de, 1 ld de, 1
call IsInArray call IsInArray
@ -2367,7 +2367,7 @@ AI_Smart_Magnitude:
AI_Smart_Earthquake: ; 39044 AI_Smart_Earthquake: ; 39044
; Greatly encourage this move if the player is underground and the enemy is faster. ; Greatly encourage this move if the player is underground and the enemy is faster.
ld a, [LastEnemyCounterMove] ld a, [LastPlayerCounterMove]
cp DIG cp DIG
ret nz ret nz
@ -2741,7 +2741,7 @@ AI_Smart_MirrorCoat: ; 3918b
cp $3 cp $3
jr nc, .asm_391ca jr nc, .asm_391ca
ld a, [LastEnemyCounterMove] ld a, [LastPlayerCounterMove]
and a and a
jr z, .asm_391d2 jr z, .asm_391d2
@ -2775,7 +2775,7 @@ AI_Smart_Twister:
AI_Smart_Gust: ; 391d5 AI_Smart_Gust: ; 391d5
; Greatly encourage this move if the player is flying and the enemy is faster. ; Greatly encourage this move if the player is flying and the enemy is faster.
ld a, [LastEnemyCounterMove] ld a, [LastPlayerCounterMove]
cp FLY cp FLY
ret nz ret nz

View File

@ -229,7 +229,7 @@ CheckAbleToSwitch: ; 34941
cp 11 cp 11
ret nc ret nc
ld a, [LastEnemyCounterMove] ld a, [LastPlayerCounterMove]
and a and a
jr z, .no_last_counter_move jr z, .no_last_counter_move
@ -378,8 +378,8 @@ FindEnemyMonsImmuneToLastCounterMove: ; 34a2a
ld [CurSpecies], a ld [CurSpecies], a
call GetBaseData call GetBaseData
; the enemy's last move is damaging... ; the player's last move is damaging...
ld a, [LastEnemyCounterMove] ld a, [LastPlayerCounterMove]
dec a dec a
ld hl, Moves + MOVE_POWER ld hl, Moves + MOVE_POWER
call GetMoveAttr call GetMoveAttr
@ -568,7 +568,7 @@ FindEnemyMonsThatResistPlayer: ; 34b20
push hl push hl
ld [CurSpecies], a ld [CurSpecies], a
call GetBaseData call GetBaseData
ld a, [LastEnemyCounterMove] ld a, [LastPlayerCounterMove]
and a and a
jr z, .skip_move jr z, .skip_move

View File

@ -3366,8 +3366,8 @@ CheckWhetherSwitchmonIsPredetermined: ; 3d533
ResetEnemyBattleVars: ; 3d557 ResetEnemyBattleVars: ; 3d557
; and draw empty TextBox ; and draw empty TextBox
xor a xor a
ld [LastEnemyCounterMove], a
ld [LastPlayerCounterMove], a ld [LastPlayerCounterMove], a
ld [LastEnemyCounterMove], a
ld [LastEnemyMove], a ld [LastEnemyMove], a
ld [CurEnemyMove], a ld [CurEnemyMove], a
dec a dec a
@ -3766,8 +3766,8 @@ Function_SetEnemyPkmnAndSendOutAnimation: ; 3d7c7
NewEnemyMonStatus: ; 3d834 NewEnemyMonStatus: ; 3d834
xor a xor a
ld [LastEnemyCounterMove], a
ld [LastPlayerCounterMove], a ld [LastPlayerCounterMove], a
ld [LastEnemyCounterMove], a
ld [LastEnemyMove], a ld [LastEnemyMove], a
ld hl, EnemySubStatus1 ld hl, EnemySubStatus1
rept 4 rept 4
@ -4217,8 +4217,8 @@ SendOutPlayerMon: ; 3db5f
ld [CurMoveNum], a ld [CurMoveNum], a
ld [TypeModifier], a ld [TypeModifier], a
ld [wPlayerMoveStruct + MOVE_ANIM], a ld [wPlayerMoveStruct + MOVE_ANIM], a
ld [LastEnemyCounterMove], a
ld [LastPlayerCounterMove], a ld [LastPlayerCounterMove], a
ld [LastEnemyCounterMove], a
ld [LastPlayerMove], a ld [LastPlayerMove], a
call CheckAmuletCoin call CheckAmuletCoin
call FinishBattleAnim call FinishBattleAnim
@ -4258,8 +4258,8 @@ SendOutPlayerMon: ; 3db5f
NewBattleMonStatus: ; 3dbde NewBattleMonStatus: ; 3dbde
xor a xor a
ld [LastEnemyCounterMove], a
ld [LastPlayerCounterMove], a ld [LastPlayerCounterMove], a
ld [LastEnemyCounterMove], a
ld [LastPlayerMove], a ld [LastPlayerMove], a
ld hl, PlayerSubStatus1 ld hl, PlayerSubStatus1
rept 4 rept 4

View File

@ -971,7 +971,7 @@ BattleCommand_CheckObedience: ; 343db
.EndDisobedience: .EndDisobedience:
xor a xor a
ld [LastPlayerMove], a ld [LastPlayerMove], a
ld [LastEnemyCounterMove], a ld [LastPlayerCounterMove], a
; Break Encore too. ; Break Encore too.
ld hl, PlayerSubStatus5 ld hl, PlayerSubStatus5
@ -1542,6 +1542,12 @@ BattleCheckTypeMatchup: ; 347c8
jr z, CheckTypeMatchup jr z, CheckTypeMatchup
ld hl, BattleMonType1 ld hl, BattleMonType1
CheckTypeMatchup: ; 347d3 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 hl
push de push de
push bc push bc

View File

@ -227,7 +227,7 @@ GetBattleVarAddr:: ; 39e7
dw wPlayerMoveStructPower, wEnemyMoveStructPower dw wPlayerMoveStructPower, wEnemyMoveStructPower
dw wPlayerMoveStructType, wEnemyMoveStructType dw wPlayerMoveStructType, wEnemyMoveStructType
dw CurPlayerMove, CurEnemyMove dw CurPlayerMove, CurEnemyMove
dw LastEnemyCounterMove, LastPlayerCounterMove dw LastPlayerCounterMove, LastEnemyCounterMove
dw LastPlayerMove, LastEnemyMove dw LastPlayerMove, LastEnemyMove
; 3a90 ; 3a90

View File

@ -206,7 +206,7 @@ Function170c06: ; 170c06
; 170c8b ; 170c8b
Function170c8b: ; 170c8b Function170c8b: ; 170c8b
ld hl, LastPlayerCounterMove ld hl, LastEnemyCounterMove
ld b, $5 ld b, $5
.asm_170c90 .asm_170c90
ld a, [hl] ld a, [hl]

View File

@ -635,9 +635,9 @@ EnemyDisabledMove:: ; c6f6
wWhichMonFaintedFirst:: ds 1 wWhichMonFaintedFirst:: ds 1
; exists so you can't counter on switch ; exists so you can't counter on switch
LastEnemyCounterMove:: ; c6f8 LastPlayerCounterMove:: ; c6f8
ds 1 ds 1
LastPlayerCounterMove:: ; c6f9 LastEnemyCounterMove:: ; c6f9
ds 1 ds 1
wEnemyMinimized:: ds 1 ; c6fa wEnemyMinimized:: ds 1 ; c6fa