mirror of https://github.com/pret/pokecrystal.git
128 lines
1.8 KiB
NASM
128 lines
1.8 KiB
NASM
CopyMonToTempMon:
|
|
; gets the BaseData of a mon
|
|
; and copies the party_struct to wTempMon
|
|
|
|
ld a, [wCurPartyMon]
|
|
ld e, a
|
|
call GetMonSpecies
|
|
ld a, [wCurPartySpecies]
|
|
ld [wCurSpecies], a
|
|
call GetBaseData
|
|
|
|
ld a, [wMonType]
|
|
ld hl, wPartyMon1Species
|
|
ld bc, PARTYMON_STRUCT_LENGTH
|
|
and a
|
|
jr z, .copywholestruct
|
|
ld hl, wOTPartyMon1Species
|
|
ld bc, PARTYMON_STRUCT_LENGTH
|
|
cp OTPARTYMON
|
|
jr z, .copywholestruct
|
|
ld bc, BOXMON_STRUCT_LENGTH
|
|
callfar CopyBoxmonToTempMon
|
|
jr .done
|
|
|
|
.copywholestruct
|
|
ld a, [wCurPartyMon]
|
|
call AddNTimes
|
|
ld de, wTempMon
|
|
ld bc, PARTYMON_STRUCT_LENGTH
|
|
call CopyBytes
|
|
|
|
.done
|
|
ret
|
|
|
|
CalcBufferMonStats:
|
|
ld bc, wBufferMon
|
|
jr _TempMonStatsCalculation
|
|
|
|
CalcTempmonStats:
|
|
ld bc, wTempMon
|
|
_TempMonStatsCalculation:
|
|
ld hl, MON_LEVEL
|
|
add hl, bc
|
|
ld a, [hl]
|
|
ld [wCurPartyLevel], 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, TRUE
|
|
predef CalcMonStats
|
|
pop bc
|
|
ld hl, MON_HP
|
|
add hl, bc
|
|
ld d, h
|
|
ld e, l
|
|
ld a, [wCurPartySpecies]
|
|
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
|
|
|
|
GetMonSpecies:
|
|
; [wMonType] has the type of the mon
|
|
; e = Nr. of mon (i.e. [wCurPartyMon])
|
|
|
|
ld a, [wMonType]
|
|
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, wPartySpecies
|
|
jr .done
|
|
|
|
.otpartymon
|
|
ld hl, wOTPartySpecies
|
|
jr .done
|
|
|
|
.boxmon
|
|
ld a, BANK(sBoxSpecies)
|
|
call OpenSRAM
|
|
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 [wCurPartySpecies], a
|
|
ret
|