mirror of
https://gitlab.com/xCrystal/pokecrystal-board.git
synced 2024-11-16 11:27:33 -08:00
752 lines
14 KiB
NASM
752 lines
14 KiB
NASM
; PrintDayCareText.TextTable indexes
|
|
const_def
|
|
const DAYCARETEXT_MAN_INTRO
|
|
const DAYCARETEXT_MAN_EGG
|
|
const DAYCARETEXT_LADY_INTRO
|
|
const DAYCARETEXT_LADY_EGG
|
|
const DAYCARETEXT_WHICH_ONE
|
|
const DAYCARETEXT_DEPOSIT
|
|
const DAYCARETEXT_CANT_BREED_EGG
|
|
const DAYCARETEXT_LAST_MON
|
|
const DAYCARETEXT_LAST_ALIVE_MON
|
|
const DAYCARETEXT_COME_BACK_LATER
|
|
const DAYCARETEXT_REMOVE_MAIL
|
|
const DAYCARETEXT_GENIUSES
|
|
const DAYCARETEXT_ASK_WITHDRAW
|
|
const DAYCARETEXT_WITHDRAW
|
|
const DAYCARETEXT_GOT_BACK
|
|
const DAYCARETEXT_TOO_SOON
|
|
const DAYCARETEXT_PARTY_FULL
|
|
const DAYCARETEXT_NOT_ENOUGH_MONEY
|
|
const DAYCARETEXT_OH_FINE
|
|
const DAYCARETEXT_COME_AGAIN
|
|
|
|
DayCareMan:
|
|
ld hl, wDayCareMan
|
|
bit DAYCAREMAN_HAS_MON_F, [hl]
|
|
jr nz, .AskWithdrawMon
|
|
ld hl, wDayCareMan
|
|
ld a, DAYCARETEXT_MAN_INTRO
|
|
call DayCareManIntroText
|
|
jr c, .cancel
|
|
call DayCareAskDepositPokemon
|
|
jr c, .print_text
|
|
farcall DepositMonWithDayCareMan
|
|
ld hl, wDayCareMan
|
|
set DAYCAREMAN_HAS_MON_F, [hl]
|
|
call DayCare_DepositPokemonText
|
|
call DayCare_InitBreeding
|
|
ret
|
|
|
|
.AskWithdrawMon:
|
|
farcall GetBreedMon1LevelGrowth
|
|
ld hl, wBreedMon1Nick
|
|
call GetPriceToRetrieveBreedmon
|
|
call DayCare_AskWithdrawBreedMon
|
|
jr c, .print_text
|
|
farcall RetrieveMonFromDayCareMan
|
|
call DayCare_GetBackMonForMoney
|
|
ld hl, wDayCareMan
|
|
res DAYCAREMAN_HAS_MON_F, [hl]
|
|
res DAYCAREMAN_MONS_COMPATIBLE_F, [hl]
|
|
jr .cancel
|
|
|
|
.print_text
|
|
call PrintDayCareText
|
|
|
|
.cancel
|
|
ld a, DAYCARETEXT_COME_AGAIN
|
|
call PrintDayCareText
|
|
ret
|
|
|
|
DayCareLady:
|
|
ld hl, wDayCareLady
|
|
bit DAYCARELADY_HAS_MON_F, [hl]
|
|
jr nz, .AskWithdrawMon
|
|
ld hl, wDayCareLady
|
|
ld a, DAYCARETEXT_LADY_INTRO
|
|
call DayCareLadyIntroText
|
|
jr c, .cancel
|
|
call DayCareAskDepositPokemon
|
|
jr c, .print_text
|
|
farcall DepositMonWithDayCareLady
|
|
ld hl, wDayCareLady
|
|
set DAYCARELADY_HAS_MON_F, [hl]
|
|
call DayCare_DepositPokemonText
|
|
call DayCare_InitBreeding
|
|
ret
|
|
|
|
.AskWithdrawMon:
|
|
farcall GetBreedMon2LevelGrowth
|
|
ld hl, wBreedMon2Nick
|
|
call GetPriceToRetrieveBreedmon
|
|
call DayCare_AskWithdrawBreedMon
|
|
jr c, .print_text
|
|
farcall RetrieveMonFromDayCareLady
|
|
call DayCare_GetBackMonForMoney
|
|
ld hl, wDayCareLady
|
|
res DAYCARELADY_HAS_MON_F, [hl]
|
|
ld hl, wDayCareMan
|
|
res DAYCAREMAN_MONS_COMPATIBLE_F, [hl]
|
|
jr .cancel
|
|
|
|
.print_text
|
|
call PrintDayCareText
|
|
|
|
.cancel
|
|
ld a, DAYCARETEXT_COME_AGAIN
|
|
call PrintDayCareText
|
|
ret
|
|
|
|
DayCareLadyIntroText:
|
|
bit DAYCARELADY_ACTIVE_F, [hl]
|
|
jr nz, .okay
|
|
set DAYCARELADY_ACTIVE_F, [hl]
|
|
inc a
|
|
.okay
|
|
call PrintDayCareText
|
|
call YesNoBox
|
|
ret
|
|
|
|
DayCareManIntroText:
|
|
set DAYCAREMAN_ACTIVE_F, [hl]
|
|
call PrintDayCareText
|
|
call YesNoBox
|
|
ret
|
|
|
|
DayCareAskDepositPokemon:
|
|
ld a, [wPartyCount]
|
|
cp 2
|
|
jr c, .OnlyOneMon
|
|
ld a, DAYCARETEXT_WHICH_ONE
|
|
call PrintDayCareText
|
|
ld b, PARTYMENUACTION_GIVE_MON
|
|
farcall SelectTradeOrDayCareMon
|
|
jr c, .Declined
|
|
ld a, [wCurPartySpecies]
|
|
cp EGG
|
|
jr z, .Egg
|
|
farcall CheckCurPartyMonFainted
|
|
jr c, .OutOfUsableMons
|
|
ld hl, wPartyMon1Item
|
|
ld bc, PARTYMON_STRUCT_LENGTH
|
|
ld a, [wCurPartyMon]
|
|
call AddNTimes
|
|
ld d, [hl]
|
|
farcall ItemIsMail
|
|
jr c, .HoldingMail
|
|
ld hl, wPartyMonNicknames
|
|
ld a, [wCurPartyMon]
|
|
call GetNick
|
|
and a
|
|
ret
|
|
|
|
.Declined:
|
|
ld a, DAYCARETEXT_OH_FINE
|
|
scf
|
|
ret
|
|
|
|
.Egg:
|
|
ld a, DAYCARETEXT_CANT_BREED_EGG
|
|
scf
|
|
ret
|
|
|
|
.OnlyOneMon:
|
|
ld a, DAYCARETEXT_LAST_MON
|
|
scf
|
|
ret
|
|
|
|
.OutOfUsableMons:
|
|
ld a, DAYCARETEXT_LAST_ALIVE_MON
|
|
scf
|
|
ret
|
|
|
|
.HoldingMail:
|
|
ld a, DAYCARETEXT_REMOVE_MAIL
|
|
scf
|
|
ret
|
|
|
|
.DummyText:
|
|
;
|
|
text_far UnknownText_0x1bdaa7
|
|
text_end
|
|
|
|
DayCare_DepositPokemonText:
|
|
ld a, DAYCARETEXT_DEPOSIT
|
|
call PrintDayCareText
|
|
ld a, [wCurPartySpecies]
|
|
call PlayMonCry
|
|
ld a, DAYCARETEXT_COME_BACK_LATER
|
|
call PrintDayCareText
|
|
ret
|
|
|
|
DayCare_AskWithdrawBreedMon:
|
|
ld a, [wStringBuffer2 + 1]
|
|
and a
|
|
jr nz, .grew_at_least_one_level
|
|
ld a, DAYCARETEXT_TOO_SOON
|
|
call PrintDayCareText
|
|
call YesNoBox
|
|
jr c, .refused
|
|
jr .check_money
|
|
|
|
.grew_at_least_one_level
|
|
ld a, DAYCARETEXT_GENIUSES
|
|
call PrintDayCareText
|
|
call YesNoBox
|
|
jr c, .refused
|
|
ld a, DAYCARETEXT_ASK_WITHDRAW
|
|
call PrintDayCareText
|
|
call YesNoBox
|
|
jr c, .refused
|
|
|
|
.check_money
|
|
ld de, wMoney
|
|
ld bc, wStringBuffer2 + 2
|
|
farcall CompareMoney
|
|
jr c, .not_enough_money
|
|
ld a, [wPartyCount]
|
|
cp PARTY_LENGTH
|
|
jr nc, .PartyFull
|
|
and a
|
|
ret
|
|
|
|
.refused
|
|
ld a, DAYCARETEXT_OH_FINE
|
|
scf
|
|
ret
|
|
|
|
.not_enough_money
|
|
ld a, DAYCARETEXT_NOT_ENOUGH_MONEY
|
|
scf
|
|
ret
|
|
|
|
.PartyFull:
|
|
ld a, DAYCARETEXT_PARTY_FULL
|
|
scf
|
|
ret
|
|
|
|
DayCare_GetBackMonForMoney:
|
|
ld bc, wStringBuffer2 + 2
|
|
ld de, wMoney
|
|
farcall TakeMoney
|
|
ld a, DAYCARETEXT_WITHDRAW
|
|
call PrintDayCareText
|
|
ld a, [wCurPartySpecies]
|
|
call PlayMonCry
|
|
ld a, DAYCARETEXT_GOT_BACK
|
|
call PrintDayCareText
|
|
ret
|
|
|
|
GetPriceToRetrieveBreedmon:
|
|
ld a, b
|
|
ld [wStringBuffer2], a
|
|
ld a, d
|
|
ld [wStringBuffer2 + 1], a
|
|
ld de, wStringBuffer1
|
|
ld bc, NAME_LENGTH
|
|
call CopyBytes
|
|
ld hl, 0
|
|
ld bc, 100
|
|
ld a, [wStringBuffer2 + 1]
|
|
call AddNTimes
|
|
ld de, 100
|
|
add hl, de
|
|
xor a
|
|
ld [wStringBuffer2 + 2], a
|
|
ld a, h
|
|
ld [wStringBuffer2 + 3], a
|
|
ld a, l
|
|
ld [wStringBuffer2 + 4], a
|
|
ret
|
|
|
|
PrintDayCareText:
|
|
ld e, a
|
|
ld d, 0
|
|
ld hl, .TextTable
|
|
add hl, de
|
|
add hl, de
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
call PrintText
|
|
ret
|
|
|
|
.TextTable:
|
|
; entries correspond to DAYCARETEXT_* constants
|
|
dw .DayCareManIntro ; 00
|
|
dw .DayCareManOddEgg ; 01
|
|
dw .DayCareLadyIntro ; 02
|
|
dw .DayCareLadyOddEgg ; 03
|
|
dw .WhichOne ; 04
|
|
dw .OkayIllRaiseYourMon ; 05
|
|
dw .CantAcceptEgg ; 06
|
|
dw .JustOneMon ; 07
|
|
dw .LastHealthyMon ; 08
|
|
dw .ComeBackForItLater ; 09
|
|
dw .RemoveMail ; 0a
|
|
dw .AreWeGeniusesOrWhat ; 0b
|
|
dw .AskRetrieveMon ; 0c
|
|
dw .PerfectHeresYourMon ; 0d
|
|
dw .GotBackMon ; 0e
|
|
dw .ImmediatelyWithdrawMon ; 0f
|
|
dw .PartyFull ; 10
|
|
dw .NotEnoughMoney ; 11
|
|
dw .OhFineThen ; 12
|
|
dw .ComeAgain ; 13
|
|
|
|
.DayCareManIntro:
|
|
; I'm the DAY-CARE MAN. Want me to raise a #MON?
|
|
text_far UnknownText_0x1bdaa9
|
|
text_end
|
|
|
|
.DayCareManOddEgg:
|
|
; I'm the DAY-CARE MAN. Do you know about EGGS? I was raising #MON with my wife, you see. We were shocked to find an EGG! How incredible is that? So, want me to raise a #MON?
|
|
text_far UnknownText_0x1bdad8
|
|
text_end
|
|
|
|
.DayCareLadyIntro:
|
|
; I'm the DAY-CARE LADY. Should I raise a #MON for you?
|
|
text_far UnknownText_0x1bdb85
|
|
text_end
|
|
|
|
.DayCareLadyOddEgg:
|
|
; I'm the DAY-CARE LADY. Do you know about EGGS? My husband and I were raising some #MON, you see. We were shocked to find an EGG! How incredible could that be? Should I raise a #MON for you?
|
|
text_far UnknownText_0x1bdbbb
|
|
text_end
|
|
|
|
.WhichOne:
|
|
; What should I raise for you?
|
|
text_far UnknownText_0x1bdc79
|
|
text_end
|
|
|
|
.JustOneMon:
|
|
; Oh? But you have just one #MON.
|
|
text_far UnknownText_0x1bdc97
|
|
text_end
|
|
|
|
.CantAcceptEgg:
|
|
; Sorry, but I can't accept an EGG.
|
|
text_far UnknownText_0x1bdcb8
|
|
text_end
|
|
|
|
.RemoveMail:
|
|
; Remove MAIL before you come see me.
|
|
text_far UnknownText_0x1bdcda
|
|
text_end
|
|
|
|
.LastHealthyMon:
|
|
; If you give me that, what will you battle with?
|
|
text_far UnknownText_0x1bdcff
|
|
text_end
|
|
|
|
.OkayIllRaiseYourMon:
|
|
; OK. I'll raise your @ .
|
|
text_far UnknownText_0x1bdd30
|
|
text_end
|
|
|
|
.ComeBackForItLater:
|
|
; Come back for it later.
|
|
text_far UnknownText_0x1bdd4b
|
|
text_end
|
|
|
|
.AreWeGeniusesOrWhat:
|
|
; Are we geniuses or what? Want to see your @ ?
|
|
text_far UnknownText_0x1bdd64
|
|
text_end
|
|
|
|
.AskRetrieveMon:
|
|
; Your @ has grown a lot. By level, it's grown by @ . If you want your #MON back, it will cost ÂĄ@ .
|
|
text_far UnknownText_0x1bdd96
|
|
text_end
|
|
|
|
.PerfectHeresYourMon:
|
|
; Perfect! Here's your #MON.
|
|
text_far UnknownText_0x1bde04
|
|
text_end
|
|
|
|
.GotBackMon:
|
|
; got back @ .
|
|
text_far UnknownText_0x1bde1f
|
|
text_end
|
|
|
|
.ImmediatelyWithdrawMon:
|
|
; Huh? Back already? Your @ needs a little more time with us. If you want your #MON back, it will cost ÂĄ100.
|
|
text_far UnknownText_0x1bde32
|
|
text_end
|
|
|
|
.PartyFull:
|
|
; You have no room for it.
|
|
text_far UnknownText_0x1bdea2
|
|
text_end
|
|
|
|
.NotEnoughMoney:
|
|
; You don't have enough money.
|
|
text_far UnknownText_0x1bdebc
|
|
text_end
|
|
|
|
.OhFineThen:
|
|
; Oh, fine then.
|
|
text_far UnknownText_0x1bded9
|
|
text_end
|
|
|
|
.ComeAgain:
|
|
; Come again.
|
|
text_far UnknownText_0x1bdee9
|
|
text_end
|
|
|
|
DayCareManOutside:
|
|
ld hl, wDayCareMan
|
|
bit DAYCAREMAN_HAS_EGG_F, [hl]
|
|
jr nz, .AskGiveEgg
|
|
ld hl, .NotYet
|
|
call PrintText
|
|
ret
|
|
|
|
.NotYet:
|
|
; Not yet…
|
|
text_far UnknownText_0x1bdef6
|
|
text_end
|
|
|
|
.AskGiveEgg:
|
|
ld hl, .IntroText
|
|
call PrintText
|
|
call YesNoBox
|
|
jr c, .Declined
|
|
ld a, [wPartyCount]
|
|
cp PARTY_LENGTH
|
|
jr nc, .PartyFull
|
|
call DayCare_GiveEgg
|
|
ld hl, wDayCareMan
|
|
res DAYCAREMAN_HAS_EGG_F, [hl]
|
|
call DayCare_InitBreeding
|
|
ld hl, .GotEggText
|
|
call PrintText
|
|
ld de, SFX_GET_EGG_FROM_DAY_CARE_LADY
|
|
call PlaySFX
|
|
ld c, 120
|
|
call DelayFrames
|
|
ld hl, .TakeGoodCareOfItText
|
|
jr .Load0
|
|
|
|
.Declined:
|
|
ld hl, .IllKeepItThanksText
|
|
|
|
.Load0:
|
|
call PrintText
|
|
xor a ; FALSE
|
|
ld [wScriptVar], a
|
|
ret
|
|
|
|
.PartyFull:
|
|
ld hl, .PartyFullText
|
|
call PrintText
|
|
ld a, TRUE
|
|
ld [wScriptVar], a
|
|
ret
|
|
|
|
.IntroText:
|
|
; Ah, it's you! We were raising your #MON, and my goodness, were we surprised! Your #MON had an EGG! We don't know how it got there, but your #MON had it. You want it?
|
|
text_far UnknownText_0x1bdf00
|
|
text_end
|
|
|
|
.GotEggText:
|
|
; received the EGG!
|
|
text_far UnknownText_0x1bdfa5
|
|
text_end
|
|
|
|
.TakeGoodCareOfItText:
|
|
; Take good care of it.
|
|
text_far UnknownText_0x1bdfba
|
|
text_end
|
|
|
|
.IllKeepItThanksText:
|
|
; Well then, I'll keep it. Thanks!
|
|
text_far UnknownText_0x1bdfd1
|
|
text_end
|
|
|
|
.PartyFullText:
|
|
; You have no room in your party. Come back later.
|
|
text_far UnknownText_0x1bdff2
|
|
text_end
|
|
|
|
DayCare_GiveEgg:
|
|
ld a, [wEggMonLevel]
|
|
ld [wCurPartyLevel], a
|
|
ld hl, wPartyCount
|
|
ld a, [hl]
|
|
cp PARTY_LENGTH
|
|
jr nc, .PartyFull
|
|
inc a
|
|
ld [hl], a
|
|
|
|
ld c, a
|
|
ld b, 0
|
|
add hl, bc
|
|
ld a, EGG
|
|
ld [hli], a
|
|
ld a, [wEggMonSpecies]
|
|
ld [wCurSpecies], a
|
|
ld [wCurPartySpecies], a
|
|
ld a, -1
|
|
ld [hl], a
|
|
|
|
ld hl, wPartyMonNicknames
|
|
ld bc, MON_NAME_LENGTH
|
|
call DayCare_GetCurrentPartyMember
|
|
ld hl, wEggNick
|
|
call CopyBytes
|
|
|
|
ld hl, wPartyMonOT
|
|
ld bc, NAME_LENGTH
|
|
call DayCare_GetCurrentPartyMember
|
|
ld hl, wEggOT
|
|
call CopyBytes
|
|
|
|
ld hl, wPartyMon1
|
|
ld bc, PARTYMON_STRUCT_LENGTH
|
|
call DayCare_GetCurrentPartyMember
|
|
ld hl, wEggMon
|
|
ld bc, wEggMonEnd - wEggMon
|
|
call CopyBytes
|
|
|
|
call GetBaseData
|
|
ld a, [wPartyCount]
|
|
dec a
|
|
ld hl, wPartyMon1
|
|
ld bc, PARTYMON_STRUCT_LENGTH
|
|
call AddNTimes
|
|
ld b, h
|
|
ld c, l
|
|
ld hl, MON_ID + 1
|
|
add hl, bc
|
|
push hl
|
|
ld hl, MON_MAXHP
|
|
add hl, bc
|
|
ld d, h
|
|
ld e, l
|
|
pop hl
|
|
push bc
|
|
ld b, FALSE
|
|
predef CalcMonStats
|
|
pop bc
|
|
ld hl, MON_HP
|
|
add hl, bc
|
|
xor a
|
|
ld [hli], a
|
|
ld [hl], a
|
|
and a
|
|
ret
|
|
|
|
.PartyFull:
|
|
scf
|
|
ret
|
|
|
|
DayCare_GetCurrentPartyMember:
|
|
ld a, [wPartyCount]
|
|
dec a
|
|
call AddNTimes
|
|
ld d, h
|
|
ld e, l
|
|
ret
|
|
|
|
DayCare_InitBreeding:
|
|
ld a, [wDayCareLady]
|
|
bit DAYCARELADY_HAS_MON_F, a
|
|
ret z
|
|
ld a, [wDayCareMan]
|
|
bit DAYCAREMAN_HAS_MON_F, a
|
|
ret z
|
|
callfar CheckBreedmonCompatibility
|
|
ld a, [wBreedingCompatibility]
|
|
and a
|
|
ret z
|
|
inc a
|
|
ret z
|
|
ld hl, wDayCareMan
|
|
set DAYCAREMAN_MONS_COMPATIBLE_F, [hl]
|
|
.loop
|
|
call Random
|
|
cp 150
|
|
jr c, .loop
|
|
ld [wStepsToEgg], a
|
|
jp .UselessJump
|
|
|
|
.UselessJump:
|
|
xor a
|
|
ld hl, wEggMon
|
|
ld bc, wEggMonEnd - wEggMon
|
|
call ByteFill
|
|
ld hl, wEggNick
|
|
ld bc, MON_NAME_LENGTH
|
|
call ByteFill
|
|
ld hl, wEggOT
|
|
ld bc, NAME_LENGTH
|
|
call ByteFill
|
|
ld a, [wBreedMon1DVs]
|
|
ld [wTempMonDVs], a
|
|
ld a, [wBreedMon1DVs + 1]
|
|
ld [wTempMonDVs + 1], a
|
|
ld a, [wBreedMon1Species]
|
|
ld [wCurPartySpecies], a
|
|
ld a, $3
|
|
ld [wMonType], a
|
|
ld a, [wBreedMon1Species]
|
|
cp DITTO
|
|
ld a, $1
|
|
jr z, .LoadWhichBreedmonIsTheMother
|
|
ld a, [wBreedMon2Species]
|
|
cp DITTO
|
|
ld a, $0
|
|
jr z, .LoadWhichBreedmonIsTheMother
|
|
farcall GetGender
|
|
ld a, $0
|
|
jr z, .LoadWhichBreedmonIsTheMother
|
|
inc a
|
|
|
|
.LoadWhichBreedmonIsTheMother:
|
|
ld [wBreedMotherOrNonDitto], a
|
|
and a
|
|
ld a, [wBreedMon1Species]
|
|
jr z, .GotMother
|
|
ld a, [wBreedMon2Species]
|
|
|
|
.GotMother:
|
|
ld [wCurPartySpecies], a
|
|
callfar GetPreEvolution
|
|
callfar GetPreEvolution
|
|
ld a, EGG_LEVEL
|
|
ld [wCurPartyLevel], a
|
|
|
|
; Nidoran♀ can give birth to either gender of Nidoran
|
|
ld a, [wCurPartySpecies]
|
|
cp NIDORAN_F
|
|
jr nz, .GotEggSpecies
|
|
call Random
|
|
cp 50 percent + 1
|
|
ld a, NIDORAN_F
|
|
jr c, .GotEggSpecies
|
|
ld a, NIDORAN_M
|
|
.GotEggSpecies:
|
|
ld [wCurPartySpecies], a
|
|
ld [wCurSpecies], a
|
|
ld [wEggMonSpecies], a
|
|
|
|
call GetBaseData
|
|
ld hl, wEggNick
|
|
ld de, .String_EGG
|
|
call CopyName2
|
|
ld hl, wPlayerName
|
|
ld de, wEggOT
|
|
ld bc, NAME_LENGTH
|
|
call CopyBytes
|
|
xor a
|
|
ld [wEggMonItem], a
|
|
ld de, wEggMonMoves
|
|
xor a
|
|
ld [wBuffer1], a
|
|
predef FillMoves
|
|
farcall InitEggMoves
|
|
ld hl, wEggMonID
|
|
ld a, [wPlayerID]
|
|
ld [hli], a
|
|
ld a, [wPlayerID + 1]
|
|
ld [hl], a
|
|
ld a, [wCurPartyLevel]
|
|
ld d, a
|
|
callfar CalcExpAtLevel
|
|
ld hl, wEggMonExp
|
|
ldh a, [hMultiplicand]
|
|
ld [hli], a
|
|
ldh a, [hMultiplicand + 1]
|
|
ld [hli], a
|
|
ldh a, [hMultiplicand + 2]
|
|
ld [hl], a
|
|
xor a
|
|
ld b, wEggMonDVs - wEggMonStatExp
|
|
ld hl, wEggMonStatExp
|
|
.loop2
|
|
ld [hli], a
|
|
dec b
|
|
jr nz, .loop2
|
|
ld hl, wEggMonDVs
|
|
call Random
|
|
ld [hli], a
|
|
ld [wTempMonDVs], a
|
|
call Random
|
|
ld [hld], a
|
|
ld [wTempMonDVs + 1], a
|
|
ld de, wBreedMon1DVs
|
|
ld a, [wBreedMon1Species]
|
|
cp DITTO
|
|
jr z, .GotDVs
|
|
ld de, wBreedMon2DVs
|
|
ld a, [wBreedMon2Species]
|
|
cp DITTO
|
|
jr z, .GotDVs
|
|
ld a, TEMPMON
|
|
ld [wMonType], a
|
|
push hl
|
|
farcall GetGender
|
|
pop hl
|
|
ld de, wBreedMon1DVs
|
|
ld bc, wBreedMon2DVs
|
|
jr c, .SkipDVs
|
|
jr z, .ParentCheck2
|
|
ld a, [wBreedMotherOrNonDitto]
|
|
and a
|
|
jr z, .GotDVs
|
|
ld d, b
|
|
ld e, c
|
|
jr .GotDVs
|
|
|
|
.ParentCheck2:
|
|
ld a, [wBreedMotherOrNonDitto]
|
|
and a
|
|
jr nz, .GotDVs
|
|
ld d, b
|
|
ld e, c
|
|
|
|
.GotDVs:
|
|
ld a, [de]
|
|
inc de
|
|
and $f
|
|
ld b, a
|
|
ld a, [hl]
|
|
and $f0
|
|
add b
|
|
ld [hli], a
|
|
ld a, [de]
|
|
and $7
|
|
ld b, a
|
|
ld a, [hl]
|
|
and $f8
|
|
add b
|
|
ld [hl], a
|
|
|
|
.SkipDVs:
|
|
ld hl, wStringBuffer1
|
|
ld de, wMonOrItemNameBuffer
|
|
ld bc, NAME_LENGTH
|
|
call CopyBytes
|
|
ld hl, wEggMonMoves
|
|
ld de, wEggMonPP
|
|
predef FillPP
|
|
ld hl, wMonOrItemNameBuffer
|
|
ld de, wStringBuffer1
|
|
ld bc, NAME_LENGTH
|
|
call CopyBytes
|
|
ld a, [wBaseEggSteps]
|
|
ld hl, wEggMonHappiness
|
|
ld [hli], a
|
|
xor a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hl], a
|
|
ld a, [wCurPartyLevel]
|
|
ld [wEggMonLevel], a
|
|
ret
|
|
|
|
.String_EGG:
|
|
db "EGG@"
|