mirror of
https://gitlab.com/xCrystal/pokecrystal-board.git
synced 2025-01-23 09:16:20 -08:00
Merge pull request #354 from FredrIQ/comments
Fix a reversed label mistake and reference a major bug
This commit is contained in:
commit
d0d61cb3ab
@ -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
|
||||||
|
@ -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
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
|
||||||
|
@ -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]
|
||||||
|
4
wram.asm
4
wram.asm
@ -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
|
||||||
|
Loading…
x
Reference in New Issue
Block a user