mirror of https://github.com/pret/pokecrystal.git
66 lines
801 B
NASM
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
|