Advertisement
Guest User

Untitled

a guest
Jun 17th, 2019
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. GivePoke:: ; e277
  2.     push de
  3.     push bc
  4.     xor a ; PARTYMON
  5.     ld [MonType], a
  6.     call TryAddMonToParty
  7.     jr nc, .failed
  8.     ld hl, PartyMonNicknames
  9.     ld a, [PartyCount]
  10.     dec a
  11.     ld [wCurPartyMon], a
  12.     call SkipNames
  13.     ld d, h
  14.     ld e, l
  15.     pop bc
  16.     ld a, b
  17.     ld b, 0
  18.     push bc
  19.     push de
  20.     push af
  21.    
  22.  
  23. .item
  24.     ld a, [wCurItem]
  25.     and a
  26.     jr z, .personality
  27.     ld a, [wCurPartyMon]
  28.     ld hl, PartyMon1Item
  29.     ld bc, PARTYMON_STRUCT_LENGTH
  30.     call AddNTimes
  31.     ld a, [wCurItem]
  32.     ld [hl], a
  33.  
  34. .personality
  35.     ld a, [TempMonForm]
  36.     and a
  37.     jr z, .done
  38.     ld a, [wCurPartyMon]
  39.     ld hl, PartyMon1Form
  40.     ld bc, PARTYMON_STRUCT_LENGTH
  41.     call AddNTimes
  42.     ld a, [TempMonForm]
  43.     ld [hl], a
  44.  
  45.     jr .done
  46.  
  47. .failed
  48.     ld a, [CurPartySpecies]
  49.     ld [TempEnemyMonSpecies], a
  50.     farcall LoadEnemyMon
  51.     call SentPkmnIntoBox
  52.     jp nc, .FailedToGiveMon
  53.     ld a, BOXMON
  54.     ld [MonType], a
  55.     xor a
  56.     ld [wCurPartyMon], a
  57.     ld de, wMonOrItemNameBuffer
  58.     pop bc
  59.     ld a, b
  60.     ld b, 1
  61.     push bc
  62.     push de
  63.     push af
  64.     ld a, [wCurItem]
  65.     and a
  66.     jr z, .done
  67.     ld a, [wCurItem]
  68.     ld [sBoxMon1Item], a
  69.  
  70. .done
  71.     ld a, [CurPartySpecies]
  72.     ld [wd265], a
  73.     ld [TempEnemyMonSpecies], a
  74.     call GetPokemonName
  75.     ld hl, StringBuffer1
  76.     ld de, wMonOrItemNameBuffer
  77.     ld bc, PKMN_NAME_LENGTH
  78.     call CopyBytes
  79.     pop af
  80.     and a
  81.     jp z, .wildmon
  82.     pop de
  83.     pop bc
  84.     pop hl
  85.     push bc
  86.     push hl
  87.     ld a, [ScriptBank]
  88.     call GetFarHalfword
  89.     ld bc, PKMN_NAME_LENGTH
  90.     ld a, [ScriptBank]
  91.     call FarCopyBytes
  92.     pop hl
  93.     inc hl
  94.     inc hl
  95.     ld a, [ScriptBank]
  96.     call GetFarHalfword
  97.     pop bc
  98.     ld a, b
  99.     and a
  100.     push de
  101.     push bc
  102.     jr nz, .send_to_box
  103.  
  104.     push hl
  105.     ld a, [wCurPartyMon]
  106.     ld hl, PartyMonOT
  107.     call SkipNames
  108.     ld d, h
  109.     ld e, l
  110.     pop hl
  111. .otnameloop
  112.     ld a, [ScriptBank]
  113.     call GetFarByte
  114.     ld [de], a
  115.     inc hl
  116.     inc de
  117.     cp "@"
  118.     jr nz, .otnameloop
  119.     ld a, [ScriptBank]
  120.     call GetFarByte
  121.     ld b, a
  122.     push bc
  123.     ld a, [wCurPartyMon]
  124.     ld hl, PartyMon1ID
  125.     ld bc, PARTYMON_STRUCT_LENGTH
  126.     call AddNTimes
  127.     ld a, 01001 / $100
  128.     ld [hli], a
  129.     ld [hl], 01001 % $100
  130.     pop bc
  131.     farcall SetGiftPartyMonCaughtData
  132.     jr .skip_nickname
  133.  
  134. .send_to_box
  135.     ld a, BANK(sBoxMonOT)
  136.     call GetSRAMBank
  137.     ld de, sBoxMonOT
  138. .loop
  139.     ld a, [ScriptBank]
  140.     call GetFarByte
  141.     ld [de], a
  142.     inc hl
  143.     inc de
  144.     cp "@"
  145.     jr nz, .loop
  146.     ld a, [ScriptBank]
  147.     call GetFarByte
  148.     ld b, a
  149.     ld hl, sBoxMon1ID
  150.     call Random
  151.     ld [hli], a
  152.     call Random
  153.     ld [hl], a
  154.     call CloseSRAM
  155.     farcall SetGiftBoxMonCaughtData
  156.     jr .skip_nickname
  157.  
  158. .wildmon
  159.     pop de
  160.     pop bc
  161.     push bc
  162.     push de
  163.     ld a, b
  164.     and a
  165.     jr z, .party
  166.     farcall SetBoxMonCaughtData
  167.     jr .set_caught_data
  168.  
  169. .party
  170.     farcall SetCaughtData
  171. .set_caught_data
  172.     farcall GiveANickname_YesNo
  173.     pop de
  174.     jr c, .skip_nickname
  175.     call InitNickname
  176.  
  177. .skip_nickname
  178.     pop bc
  179.     pop de
  180.     ld a, b
  181.     and a
  182.     ret z
  183.     ld hl, TextJump_WasSentToBillsPC
  184.     call PrintText
  185.     ld a, BANK(sBoxMonNicknames)
  186.     call GetSRAMBank
  187.     ld hl, wMonOrItemNameBuffer
  188.     ld de, sBoxMonNicknames
  189.     ld bc, PKMN_NAME_LENGTH
  190.     call CopyBytes
  191.     call CloseSRAM
  192.     ld b, $1
  193.     ret
  194. ; e3d4
  195.  
  196. .FailedToGiveMon: ; e3d4
  197.     pop bc
  198.     pop de
  199.     ld b, $2
  200.     ret
  201. ; e3d9
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement