Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- GivePoke:: ; e277
- push de
- push bc
- xor a ; PARTYMON
- ld [MonType], a
- call TryAddMonToParty
- jr nc, .failed
- ld hl, PartyMonNicknames
- ld a, [PartyCount]
- dec a
- ld [wCurPartyMon], a
- call SkipNames
- ld d, h
- ld e, l
- pop bc
- ld a, b
- ld b, 0
- push bc
- push de
- push af
- .item
- ld a, [wCurItem]
- and a
- jr z, .personality
- ld a, [wCurPartyMon]
- ld hl, PartyMon1Item
- ld bc, PARTYMON_STRUCT_LENGTH
- call AddNTimes
- ld a, [wCurItem]
- ld [hl], a
- .personality
- ld a, [TempMonForm]
- and a
- jr z, .done
- ld a, [wCurPartyMon]
- ld hl, PartyMon1Form
- ld bc, PARTYMON_STRUCT_LENGTH
- call AddNTimes
- ld a, [TempMonForm]
- ld [hl], a
- jr .done
- .failed
- ld a, [CurPartySpecies]
- ld [TempEnemyMonSpecies], a
- farcall LoadEnemyMon
- call SentPkmnIntoBox
- jp nc, .FailedToGiveMon
- ld a, BOXMON
- ld [MonType], a
- xor a
- ld [wCurPartyMon], a
- ld de, wMonOrItemNameBuffer
- pop bc
- ld a, b
- ld b, 1
- push bc
- push de
- push af
- ld a, [wCurItem]
- and a
- jr z, .done
- ld a, [wCurItem]
- ld [sBoxMon1Item], a
- .done
- ld a, [CurPartySpecies]
- ld [wd265], a
- ld [TempEnemyMonSpecies], a
- call GetPokemonName
- ld hl, StringBuffer1
- ld de, wMonOrItemNameBuffer
- ld bc, PKMN_NAME_LENGTH
- call CopyBytes
- pop af
- and a
- jp z, .wildmon
- pop de
- pop bc
- pop hl
- push bc
- push hl
- ld a, [ScriptBank]
- call GetFarHalfword
- ld bc, PKMN_NAME_LENGTH
- ld a, [ScriptBank]
- call FarCopyBytes
- pop hl
- inc hl
- inc hl
- ld a, [ScriptBank]
- call GetFarHalfword
- pop bc
- ld a, b
- and a
- push de
- push bc
- jr nz, .send_to_box
- push hl
- ld a, [wCurPartyMon]
- ld hl, PartyMonOT
- call SkipNames
- ld d, h
- ld e, l
- pop hl
- .otnameloop
- ld a, [ScriptBank]
- call GetFarByte
- ld [de], a
- inc hl
- inc de
- cp "@"
- jr nz, .otnameloop
- ld a, [ScriptBank]
- call GetFarByte
- ld b, a
- push bc
- ld a, [wCurPartyMon]
- ld hl, PartyMon1ID
- ld bc, PARTYMON_STRUCT_LENGTH
- call AddNTimes
- ld a, 01001 / $100
- ld [hli], a
- ld [hl], 01001 % $100
- pop bc
- farcall SetGiftPartyMonCaughtData
- jr .skip_nickname
- .send_to_box
- ld a, BANK(sBoxMonOT)
- call GetSRAMBank
- ld de, sBoxMonOT
- .loop
- ld a, [ScriptBank]
- call GetFarByte
- ld [de], a
- inc hl
- inc de
- cp "@"
- jr nz, .loop
- ld a, [ScriptBank]
- call GetFarByte
- ld b, a
- ld hl, sBoxMon1ID
- call Random
- ld [hli], a
- call Random
- ld [hl], a
- call CloseSRAM
- farcall SetGiftBoxMonCaughtData
- jr .skip_nickname
- .wildmon
- pop de
- pop bc
- push bc
- push de
- ld a, b
- and a
- jr z, .party
- farcall SetBoxMonCaughtData
- jr .set_caught_data
- .party
- farcall SetCaughtData
- .set_caught_data
- farcall GiveANickname_YesNo
- pop de
- jr c, .skip_nickname
- call InitNickname
- .skip_nickname
- pop bc
- pop de
- ld a, b
- and a
- ret z
- ld hl, TextJump_WasSentToBillsPC
- call PrintText
- ld a, BANK(sBoxMonNicknames)
- call GetSRAMBank
- ld hl, wMonOrItemNameBuffer
- ld de, sBoxMonNicknames
- ld bc, PKMN_NAME_LENGTH
- call CopyBytes
- call CloseSRAM
- ld b, $1
- ret
- ; e3d4
- .FailedToGiveMon: ; e3d4
- pop bc
- pop de
- ld b, $2
- ret
- ; e3d9
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement