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