Use maskbits some more

This commit is contained in:
Remy Oukaour
2018-01-11 12:00:01 -05:00
parent a436bbc23b
commit 94d6a32721
50 changed files with 576 additions and 452 deletions

View File

@@ -56,7 +56,7 @@ AIChooseMove: ; 440ce
inc hl
ld a, [de]
inc de
and $3f
and PP_MASK
jr nz, .CheckMovePP
ld [hl], 80
jr .CheckMovePP
@@ -186,7 +186,7 @@ AIChooseMove: ; 440ce
.ChooseMove:
ld hl, Buffer1
call Random
and 3
maskbits NUM_MOVES +- 1
ld c, a
ld b, 0
add hl, bc

View File

@@ -640,8 +640,8 @@ StartTrainerBattle_LoadPokeBallGraphics: ; 8c5dc (23:45dc)
.cgb
ld hl, .daypals
ld a, [TimeOfDayPal]
and $3
cp 3
maskbits NUM_DAYTIMES +- 1
cp DARKNESS_F
jr nz, .daytime
ld hl, .nightpals
.daytime

View File

@@ -730,7 +730,7 @@ HandleEncore: ; 3c4df
ld b, 0
add hl, bc
ld a, [hl]
and $3f
and PP_MASK
ret nz
.end_player_encore
@@ -754,7 +754,7 @@ HandleEncore: ; 3c4df
ld b, 0
add hl, bc
ld a, [hl]
and $3f
and PP_MASK
ret nz
.end_enemy_encore
@@ -1401,7 +1401,7 @@ HandleMysteryberry: ; 3c93c
and a
jr z, .quit
ld a, [de]
and $3f
and PP_MASK
jr z, .restore
inc hl
inc de
@@ -5650,7 +5650,7 @@ MoveSelectionScreen: ; 3e4bc
ld b, 0
add hl, bc
ld a, [hl]
and $3f
and PP_MASK
jr z, .no_pp_left
ld a, [PlayerDisableCount]
swap a
@@ -5849,7 +5849,7 @@ MoveInfoBox: ; 3e6c8
ld hl, BattleMonPP
add hl, bc
ld a, [hl]
and $3f
and PP_MASK
ld [StringBuffer1], a
call .PrintPP
@@ -5912,7 +5912,7 @@ CheckPlayerHasUsableMoves: ; 3e786
or [hl]
inc hl
or [hl]
and $3f
and PP_MASK
ret nz
jr .force_struggle
@@ -5934,8 +5934,7 @@ CheckPlayerHasUsableMoves: ; 3e786
.done
; Bug: this will result in a move with PP Up confusing the game.
; Replace with "and $3f" to fix.
and a
and a ; should be "and PP_MASK"
ret nz
.force_struggle
@@ -6014,7 +6013,7 @@ ParseEnemyAction: ; 3e7c1
cp [hl]
jr z, .disabled
ld a, [de]
and $3f
and PP_MASK
jr nz, .enough_pp
.disabled
@@ -6032,7 +6031,7 @@ ParseEnemyAction: ; 3e7c1
.loop2
ld hl, EnemyMonMoves
call BattleRandom
and 3 ; TODO factor in NUM_MOVES
maskbits NUM_MOVES +- 1
ld c, a
ld b, 0
add hl, bc
@@ -6049,7 +6048,7 @@ ParseEnemyAction: ; 3e7c1
add hl, bc
ld b, a
ld a, [hl]
and $3f
and PP_MASK
jr z, .loop2
ld a, c
ld [CurEnemyMoveNum], a

View File

@@ -846,19 +846,20 @@ BattleCommand_CheckObedience: ; 343db
.DoNothing:
; 4 random choices
call BattleRandom
and 3
and %11
ld hl, LoafingAroundText
and a
and a ; 0
jr z, .Print
ld hl, WontObeyText
dec a
dec a ; 1
jr z, .Print
ld hl, TurnedAwayText
dec a
dec a ; 2
jr z, .Print
ld hl, IgnoredOrdersText
@@ -888,7 +889,7 @@ BattleCommand_CheckObedience: ; 343db
.GetTotalPP:
ld a, [hli]
and $3f ; exclude pp up
and PP_MASK
add b
ld b, a
@@ -911,7 +912,7 @@ BattleCommand_CheckObedience: ; 343db
; Can't use another move if only one move has PP.
ld a, [hl]
and $3f
and PP_MASK
cp b
jr z, .DoNothing
@@ -931,7 +932,7 @@ BattleCommand_CheckObedience: ; 343db
.RandomMove:
call BattleRandom
and 3 ; TODO NUM_MOVES
maskbits NUM_MOVES +- 1
cp b
jr nc, .RandomMove
@@ -947,7 +948,7 @@ BattleCommand_CheckObedience: ; 343db
ld d, 0
add hl, de
ld a, [hl]
and $3f
and PP_MASK
jr z, .RandomMove
@@ -1118,7 +1119,7 @@ BattleCommand_DoTurn: ; 34555
ld b, 0
add hl, bc
ld a, [hl]
and $3f
and PP_MASK
jr z, .out_of_pp
dec [hl]
ld b, 0
@@ -3906,7 +3907,7 @@ BattleCommand_Encore: ; 35864
ld bc, BattleMonPP - BattleMonMoves - 1
add hl, bc
ld a, [hl]
and $3f
and PP_MASK
jp z, .failed
ld a, [AttackMissed]
and a
@@ -4386,7 +4387,7 @@ BattleCommand_SleepTalk: ; 35b33
.sample_move
push hl
call BattleRandom
and 3 ; TODO factor in NUM_MOVES
maskbits NUM_MOVES +- 1
ld c, a
ld b, 0
add hl, bc
@@ -4550,17 +4551,18 @@ BattleCommand_Spite: ; 35c0f
add hl, bc
pop bc
ld a, [hl]
and $3f
and PP_MASK
jr z, .failed
push bc
call GetMoveName
; lose 2-5 PP
call BattleRandom
and 3
and %11
inc a
inc a
ld b, a
ld a, [hl]
and $3f
and PP_MASK
cp b
jr nc, .deplete_pp
ld b, a
@@ -6208,13 +6210,12 @@ BattleCommand_TriStatusChance: ; 3658f
call BattleCommand_EffectChance
; 1/3 chance of each status
.loop
; 1/3 chance of each status
call BattleRandom
swap a
and 3
and %11
jr z, .loop
; jump
dec a
ld hl, .ptrs
rst JumpTable
@@ -7392,7 +7393,8 @@ BattleCommand_TrapTarget: ; 36c2d
bit SUBSTATUS_SUBSTITUTE, a
ret nz
call BattleRandom
and 3
; trapped for 2-5 turns
and %11
inc a
inc a
inc a
@@ -7590,8 +7592,9 @@ BattleCommand_FinishConfusingTarget: ; 36d70
.got_confuse_count
set SUBSTATUS_CONFUSED, [hl]
; confused for 2-5 turns
call BattleRandom
and 3
and %11
inc a
inc a
ld [bc], a
@@ -8201,7 +8204,7 @@ BattleCommand_Conversion: ; 3707f
.done
.loop3
call BattleRandom
and 3 ; TODO factor in NUM_MOVES
maskbits NUM_MOVES +- 1
ld c, a
ld b, 0
ld hl, StringBuffer1