pokecrystal/home/pokedex_flags.asm

66 lines
801 B
NASM

CountSetBits::
; Count the number of set bits in b bytes starting from hl.
; Return in a, c and [wNumSetBits].
ld c, 0
.next
ld a, [hli]
ld e, a
ld d, 8
.count
srl e
ld a, 0
adc c
ld c, a
dec d
jr nz, .count
dec b
jr nz, .next
ld a, c
ld [wNumSetBits], a
ret
GetWeekday::
ld a, [wCurDay]
.mod
sub 7
jr nc, .mod
add 7
ret
SetSeenAndCaughtMon::
push af
ld c, a
ld hl, wPokedexCaught
ld b, SET_FLAG
call PokedexFlagAction
pop af
; fallthrough
SetSeenMon::
ld c, a
ld hl, wPokedexSeen
ld b, SET_FLAG
jr PokedexFlagAction
CheckCaughtMon::
ld c, a
ld hl, wPokedexCaught
ld b, CHECK_FLAG
jr PokedexFlagAction
CheckSeenMon::
ld c, a
ld hl, wPokedexSeen
ld b, CHECK_FLAG
; fallthrough
PokedexFlagAction::
ld d, 0
predef SmallFarFlagAction
ld a, c
and a
ret