diff --git a/constants/battle_constants.asm b/constants/battle_constants.asm index b394b7a2..2ae1cdef 100644 --- a/constants/battle_constants.asm +++ b/constants/battle_constants.asm @@ -57,7 +57,7 @@ DEF NOT_VERY_EFFECTIVE EQU 05 DEF NO_EFFECT EQU 00 ; non-volatile statuses -DEF SLP EQU %111 ; sleep counter +DEF SLP_MASK EQU %111 ; 0-7 turns const_def 3 const PSN ; 3 const BRN ; 4 diff --git a/engine/battle/core.asm b/engine/battle/core.asm index 66ca1aa9..1a252c02 100644 --- a/engine/battle/core.asm +++ b/engine/battle/core.asm @@ -308,7 +308,7 @@ MainInBattleLoop: and a ret nz ; return if pokedoll was used to escape from battle ld a, [wBattleMonStatus] - and (1 << FRZ) | SLP ; is mon frozen or asleep? + and (1 << FRZ) | SLP_MASK jr nz, .selectEnemyMove ; if so, jump ld a, [wPlayerBattleStatus1] and (1 << STORING_ENERGY) | (1 << USING_TRAPPING_MOVE) ; check player is using Bide or using a multi-turn attack like wrap @@ -2934,7 +2934,7 @@ SelectEnemyMove: and (1 << CHARGING_UP) | (1 << THRASHING_ABOUT) ; using a charging move or thrash/petal dance ret nz ld a, [wEnemyMonStatus] - and SLP | 1 << FRZ ; sleeping or frozen + and (1 << FRZ) | SLP_MASK ret nz ld a, [wEnemyBattleStatus1] and (1 << USING_TRAPPING_MOVE) | (1 << STORING_ENERGY) ; using a trapping move like wrap or bide @@ -3275,7 +3275,7 @@ PrintGhostText: and a jr nz, .Ghost ld a, [wBattleMonStatus] ; player's turn - and SLP | (1 << FRZ) + and (1 << FRZ) | SLP_MASK ret nz ld hl, ScaredText call PrintText @@ -3317,7 +3317,7 @@ IsGhostBattle: CheckPlayerStatusConditions: ld hl, wBattleMonStatus ld a, [hl] - and SLP ; sleep mask + and SLP_MASK jr z, .FrozenCheck ; sleeping dec a @@ -4029,7 +4029,7 @@ CheckForDisobedience: call BattleRandom add a swap a - and SLP ; sleep mask + and SLP_MASK jr z, .monNaps ; keep trying until we get at least 1 turn of sleep ld [wBattleMonStatus], a ld hl, BeganToNapText @@ -5362,7 +5362,7 @@ MoveHitTest: cp DREAM_EATER_EFFECT jr nz, .swiftCheck ld a, [bc] - and SLP ; is the target pokemon sleeping? + and SLP_MASK jp z, .moveMissed .swiftCheck ld a, [de] @@ -5796,7 +5796,7 @@ ExecuteEnemyMoveDone: CheckEnemyStatusConditions: ld hl, wEnemyMonStatus ld a, [hl] - and SLP ; sleep mask + and SLP_MASK jr z, .checkIfFrozen dec a ; decrement number of turns left ld [wEnemyMonStatus], a diff --git a/engine/battle/move_effects/haze.asm b/engine/battle/move_effects/haze.asm index c15c848b..76722d0e 100644 --- a/engine/battle/move_effects/haze.asm +++ b/engine/battle/move_effects/haze.asm @@ -24,7 +24,7 @@ HazeEffect_: .cureStatuses ld a, [hl] ld [hl], $0 - and SLP | (1 << FRZ) + and (1 << FRZ) | SLP_MASK jr z, .cureVolatileStatuses ; prevent the Pokemon from executing a move if it was asleep or frozen ld a, $ff diff --git a/engine/items/item_effects.asm b/engine/items/item_effects.asm index f58b737e..16b4140a 100644 --- a/engine/items/item_effects.asm +++ b/engine/items/item_effects.asm @@ -225,7 +225,7 @@ ItemUseBall: ld a, [wEnemyMonStatus] and a jr z, .skipAilmentValueSubtraction ; no ailments - and 1 << FRZ | SLP + and (1 << FRZ) | SLP_MASK ld c, 12 jr z, .notFrozenOrAsleep ld c, 25 @@ -380,7 +380,7 @@ ItemUseBall: ld a, [wEnemyMonStatus] and a jr z, .skip5 - and 1 << FRZ | SLP + and (1 << FRZ) | SLP_MASK ld b, 5 jr z, .addAilmentValue ld b, 10 @@ -878,7 +878,7 @@ ItemUseMedicine: lb bc, ICE_HEAL_MSG, 1 << FRZ cp ICE_HEAL jr z, .checkMonStatus - lb bc, AWAKENING_MSG, SLP + lb bc, AWAKENING_MSG, SLP_MASK cp AWAKENING jr z, .checkMonStatus lb bc, PARALYZ_HEAL_MSG, 1 << PAR @@ -1700,7 +1700,7 @@ ItemUsePokeflute: .inBattle xor a ld [wWereAnyMonsAsleep], a - ld b, ~SLP & $ff + ld b, ~SLP_MASK ld hl, wPartyMon1Status call WakeUpEntireParty ld a, [wIsInBattle] @@ -1752,7 +1752,7 @@ WakeUpEntireParty: .loop ld a, [hl] push af - and SLP ; is pokemon asleep? + and SLP_MASK jr z, .notAsleep ld a, 1 ld [wWereAnyMonsAsleep], a ; indicate that a pokemon had to be woken up diff --git a/engine/pokemon/status_ailments.asm b/engine/pokemon/status_ailments.asm index 3da1fc43..05205a34 100644 --- a/engine/pokemon/status_ailments.asm +++ b/engine/pokemon/status_ailments.asm @@ -8,7 +8,7 @@ PrintStatusAilment:: jr nz, .frz bit PAR, a jr nz, .par - and SLP + and SLP_MASK ret z ld a, "S" ld [hli], a