You've already forked pokecrystal-board
mirror of
https://gitlab.com/xCrystal/pokecrystal-board.git
synced 2025-12-11 05:02:16 -08:00
Rename search.asm and search2.asm
This commit is contained in:
134
engine/pokemon/search_party.asm
Normal file
134
engine/pokemon/search_party.asm
Normal file
@@ -0,0 +1,134 @@
|
||||
_FindPartyMonAboveLevel:
|
||||
ld hl, wPartyMon1Level
|
||||
call FindAboveLevel
|
||||
ret
|
||||
|
||||
_FindPartyMonAtLeastThatHappy:
|
||||
ld hl, wPartyMon1Happiness
|
||||
call FindAtLeastThatHappy
|
||||
ret
|
||||
|
||||
_FindPartyMonThatSpecies:
|
||||
ld hl, wPartyMon1Species
|
||||
jp FindThatSpecies
|
||||
|
||||
_FindPartyMonThatSpeciesYourTrainerID:
|
||||
ld hl, wPartyMon1Species
|
||||
call FindThatSpecies
|
||||
ret z
|
||||
ld a, c
|
||||
ld hl, wPartyMon1ID
|
||||
ld bc, PARTYMON_STRUCT_LENGTH
|
||||
call AddNTimes
|
||||
ld a, [wPlayerID]
|
||||
cp [hl]
|
||||
jr nz, .nope
|
||||
inc hl
|
||||
ld a, [wPlayerID + 1]
|
||||
cp [hl]
|
||||
jr nz, .nope
|
||||
ld a, $1
|
||||
and a
|
||||
ret
|
||||
|
||||
.nope
|
||||
xor a
|
||||
ret
|
||||
|
||||
FindAtLeastThatHappy:
|
||||
; Sets the bits for the Pokemon that have a happiness greater than or equal to b.
|
||||
; The lowest bits are used. Sets z if no Pokemon in your party is at least that happy.
|
||||
ld c, $0
|
||||
ld a, [wPartyCount]
|
||||
ld d, a
|
||||
.loop
|
||||
ld a, d
|
||||
dec a
|
||||
push hl
|
||||
push bc
|
||||
ld bc, PARTYMON_STRUCT_LENGTH
|
||||
call AddNTimes
|
||||
pop bc
|
||||
ld a, b
|
||||
cp [hl]
|
||||
pop hl
|
||||
jr z, .greater_equal
|
||||
jr nc, .lower
|
||||
|
||||
.greater_equal
|
||||
ld a, c
|
||||
or $1
|
||||
ld c, a
|
||||
|
||||
.lower
|
||||
sla c
|
||||
dec d
|
||||
jr nz, .loop
|
||||
call RetroactivelyIgnoreEggs
|
||||
ld a, c
|
||||
and a
|
||||
ret
|
||||
|
||||
FindAboveLevel:
|
||||
ld c, $0
|
||||
ld a, [wPartyCount]
|
||||
ld d, a
|
||||
.loop
|
||||
ld a, d
|
||||
dec a
|
||||
push hl
|
||||
push bc
|
||||
ld bc, PARTYMON_STRUCT_LENGTH
|
||||
call AddNTimes
|
||||
pop bc
|
||||
ld a, b
|
||||
cp [hl]
|
||||
pop hl
|
||||
jr c, .greater
|
||||
ld a, c
|
||||
or $1
|
||||
ld c, a
|
||||
|
||||
.greater
|
||||
sla c
|
||||
dec d
|
||||
jr nz, .loop
|
||||
call RetroactivelyIgnoreEggs
|
||||
ld a, c
|
||||
and a
|
||||
ret
|
||||
|
||||
FindThatSpecies:
|
||||
; Find species b in your party.
|
||||
; If you have no Pokemon, returns c = -1 and z.
|
||||
; If that species is in your party, returns its location in c, and nz.
|
||||
; Otherwise, returns z.
|
||||
ld c, -1
|
||||
ld hl, wPartySpecies
|
||||
.loop
|
||||
ld a, [hli]
|
||||
cp -1
|
||||
ret z
|
||||
inc c
|
||||
cp b
|
||||
jr nz, .loop
|
||||
ld a, $1
|
||||
and a
|
||||
ret
|
||||
|
||||
RetroactivelyIgnoreEggs:
|
||||
ld e, %11111110
|
||||
ld hl, wPartySpecies
|
||||
.loop
|
||||
ld a, [hli]
|
||||
cp -1
|
||||
ret z
|
||||
cp EGG
|
||||
jr nz, .skip_notegg
|
||||
ld a, c
|
||||
and e
|
||||
ld c, a
|
||||
|
||||
.skip_notegg
|
||||
rlc e
|
||||
jr .loop
|
||||
Reference in New Issue
Block a user