pokecrystal-board/home/pokedex_flags.asm

66 lines
801 B
NASM
Raw Normal View History

Small home/ reorganization Time to move everything out of home.asm: - InexplicablyEmptyFunction was moved to home/map.asm - The wDebugFlags functions and xor_a brothers were moved to home/flag.asm because they're all flag-related. - ret_2f3e was moved into home/region.asm - The register alias sisters were moved to a new file called home/call_regs.asm - IsInArray and SkipNames were joined by AddNTimes from home/math.asm into home/array.asm, as they're all used to index arrays. - CallPointerAt was moved into home/print_text.asm because given the contents of that file it doesn't feel very out of place (that file isn't very aptly named...) - CountSetBits was moved into home/pokedex_flags.asm because it's unique use is counting the amount of seen/caught mon in the podedex. GetWeekday was pulled into this by proximity. Other changes were also made: - PushLYOverrides was moved from home/sprite_anims.asm to home/battle.asm, because it's almost exclusively used for battle animations, with the lone exception being the Magnet Train. - home/copy.asm was renamed to home/gfx.asm, as it's all gfx-related - home/copy2.asm was renamed to home/copy.asm, now it's the only file called copy. - SetHPPal and GetHPPal were moved from home/hp_pals.asm to home/tilemap.asm, as they're attrmap related, like many functions in that file are. - home/rtc.asm was renamed to home/time_palettes.asm, as it had very little to do with the RTC at all, all RTC functions being in home/time.asm - home/handshake.asm was renamed to home/printer.asm. - home/mon_data_2.asm was renamed to home/mon_party.asm.
2020-02-21 14:48:51 -08:00
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
2018-06-24 07:09:41 -07:00
SetSeenAndCaughtMon::
push af
ld c, a
2018-01-23 14:39:09 -08:00
ld hl, wPokedexCaught
ld b, SET_FLAG
call PokedexFlagAction
pop af
; fallthrough
2018-06-24 07:09:41 -07:00
SetSeenMon::
ld c, a
2018-01-23 14:39:09 -08:00
ld hl, wPokedexSeen
ld b, SET_FLAG
jr PokedexFlagAction
2018-06-24 07:09:41 -07:00
CheckCaughtMon::
ld c, a
2018-01-23 14:39:09 -08:00
ld hl, wPokedexCaught
ld b, CHECK_FLAG
jr PokedexFlagAction
2018-06-24 07:09:41 -07:00
CheckSeenMon::
ld c, a
2018-01-23 14:39:09 -08:00
ld hl, wPokedexSeen
ld b, CHECK_FLAG
; fallthrough
2018-06-24 07:09:41 -07:00
PokedexFlagAction::
ld d, 0
predef SmallFarFlagAction
ld a, c
and a
ret