diff options
author | mid-kid <esteve.varela@gmail.com> | 2020-02-21 23:48:51 +0100 |
---|---|---|
committer | mid-kid <esteve.varela@gmail.com> | 2020-02-22 00:23:47 +0100 |
commit | 43eff93861b5b00473e567e6449c64f039f8f4ba (patch) | |
tree | 7eb66fc5272b26fbc0e99a5ea4327013516a89fc /home/array.asm | |
parent | 9a927c1b3efa2eca886f346a4fcca0eb57278faf (diff) |
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.
Diffstat (limited to 'home/array.asm')
-rw-r--r-- | home/array.asm | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/home/array.asm b/home/array.asm new file mode 100644 index 000000000..0abf9b7d3 --- /dev/null +++ b/home/array.asm @@ -0,0 +1,44 @@ +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 |