mirror of https://github.com/pret/pokecrystal.git
128 lines
1.8 KiB
NASM
128 lines
1.8 KiB
NASM
|
CopyPkmnToTempMon: ; 5084a
|
||
|
; gets the BaseData of a Pkmn
|
||
|
; and copys the PkmnStructure to TempMon
|
||
|
|
||
|
ld a, [CurPartyMon]
|
||
|
ld e, a
|
||
|
call GetPkmnSpecies
|
||
|
ld a, [CurPartySpecies]
|
||
|
ld [CurSpecies], a
|
||
|
call GetBaseData
|
||
|
|
||
|
ld a, [MonType]
|
||
|
ld hl, PartyMon1Species
|
||
|
ld bc, PARTYMON_STRUCT_LENGTH
|
||
|
and a
|
||
|
jr z, .copywholestruct
|
||
|
ld hl, OTPartyMon1Species
|
||
|
ld bc, PARTYMON_STRUCT_LENGTH
|
||
|
cp OTPARTYMON
|
||
|
jr z, .copywholestruct
|
||
|
ld bc, BOXMON_STRUCT_LENGTH
|
||
|
callab CopyBoxmonToTempMon
|
||
|
jr .done
|
||
|
|
||
|
.copywholestruct
|
||
|
ld a, [CurPartyMon]
|
||
|
call AddNTimes
|
||
|
ld de, TempMon
|
||
|
ld bc, PARTYMON_STRUCT_LENGTH
|
||
|
call CopyBytes
|
||
|
|
||
|
.done
|
||
|
ret
|
||
|
|
||
|
CalcwBufferMonStats: ; 5088b
|
||
|
ld bc, wBufferMon
|
||
|
jr _TempMonStatsCalculation
|
||
|
|
||
|
CalcTempmonStats: ; 50890
|
||
|
ld bc, TempMon
|
||
|
_TempMonStatsCalculation: ; 50893
|
||
|
ld hl, MON_LEVEL
|
||
|
add hl, bc
|
||
|
ld a, [hl]
|
||
|
ld [CurPartyLevel], a
|
||
|
ld hl, MON_MAXHP
|
||
|
add hl, bc
|
||
|
ld d, h
|
||
|
ld e, l
|
||
|
ld hl, MON_STAT_EXP - 1
|
||
|
add hl, bc
|
||
|
push bc
|
||
|
ld b, $1
|
||
|
predef CalcPkmnStats
|
||
|
pop bc
|
||
|
ld hl, MON_HP
|
||
|
add hl, bc
|
||
|
ld d, h
|
||
|
ld e, l
|
||
|
ld a, [CurPartySpecies]
|
||
|
cp EGG
|
||
|
jr nz, .not_egg
|
||
|
xor a
|
||
|
ld [de], a
|
||
|
inc de
|
||
|
ld [de], a
|
||
|
jr .zero_status
|
||
|
|
||
|
.not_egg
|
||
|
push bc
|
||
|
ld hl, MON_MAXHP
|
||
|
add hl, bc
|
||
|
ld bc, 2
|
||
|
call CopyBytes
|
||
|
pop bc
|
||
|
|
||
|
.zero_status
|
||
|
ld hl, MON_STATUS
|
||
|
add hl, bc
|
||
|
xor a
|
||
|
ld [hli], a
|
||
|
ld [hl], a
|
||
|
ret
|
||
|
|
||
|
GetPkmnSpecies: ; 508d5
|
||
|
; [MonType] has the type of the Pkmn
|
||
|
; e = Nr. of Pkmn (i.e. [CurPartyMon])
|
||
|
|
||
|
ld a, [MonType]
|
||
|
and a ; PARTYMON
|
||
|
jr z, .partymon
|
||
|
cp OTPARTYMON
|
||
|
jr z, .otpartymon
|
||
|
cp BOXMON
|
||
|
jr z, .boxmon
|
||
|
cp TEMPMON
|
||
|
jr z, .breedmon
|
||
|
; WILDMON
|
||
|
|
||
|
.partymon
|
||
|
ld hl, PartySpecies
|
||
|
jr .done
|
||
|
|
||
|
.otpartymon
|
||
|
ld hl, OTPartySpecies
|
||
|
jr .done
|
||
|
|
||
|
.boxmon
|
||
|
ld a, BANK(sBoxSpecies)
|
||
|
call GetSRAMBank
|
||
|
ld hl, sBoxSpecies
|
||
|
call .done
|
||
|
call CloseSRAM
|
||
|
ret
|
||
|
|
||
|
.breedmon
|
||
|
ld a, [wBreedMon1Species]
|
||
|
jr .done2
|
||
|
|
||
|
.done
|
||
|
ld d, 0
|
||
|
add hl, de
|
||
|
ld a, [hl]
|
||
|
|
||
|
.done2
|
||
|
ld [CurPartySpecies], a
|
||
|
ret
|