pokecrystal-board/home/array.asm
mid-kid 43eff93861 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-22 00:23:47 +01:00

45 lines
458 B
NASM

IsInArray::
; Find value a for every de bytes in array hl.
; Return index in b and carry if found.
ld b, 0
ld c, a
.loop
ld a, [hl]
cp -1
jr z, .NotInArray
cp c
jr z, .InArray
inc b
add hl, de
jr .loop
.NotInArray:
and a
ret
.InArray:
scf
ret
SkipNames::
; Skip a names.
ld bc, NAME_LENGTH
and a
ret z
.loop
add hl, bc
dec a
jr nz, .loop
ret
AddNTimes::
; Add bc * a to hl.
and a
ret z
.loop
add hl, bc
dec a
jr nz, .loop
ret