You've already forked pokecrystal-board
mirror of
https://gitlab.com/xCrystal/pokecrystal-board.git
synced 2025-09-08 08:13:02 -07:00
Move more contiguous related code blocks from main.asm to engine/ and events/
This commit is contained in:
247
engine/caught_data.asm
Normal file
247
engine/caught_data.asm
Normal file
@@ -0,0 +1,247 @@
|
||||
CheckPartyFullAfterContest: ; 4d9e5
|
||||
ld a, [wContestMon]
|
||||
and a
|
||||
jp z, .DidntCatchAnything
|
||||
ld [CurPartySpecies], a
|
||||
ld [CurSpecies], a
|
||||
call GetBaseData
|
||||
ld hl, PartyCount
|
||||
ld a, [hl]
|
||||
cp 6
|
||||
jp nc, .TryAddToBox
|
||||
inc a
|
||||
ld [hl], a
|
||||
ld c, a
|
||||
ld b, $0
|
||||
add hl, bc
|
||||
ld a, [wContestMon]
|
||||
ld [hli], a
|
||||
ld [CurSpecies], a
|
||||
ld a, $ff
|
||||
ld [hl], a
|
||||
ld hl, PartyMon1Species
|
||||
ld a, [PartyCount]
|
||||
dec a
|
||||
ld bc, PARTYMON_STRUCT_LENGTH
|
||||
call AddNTimes
|
||||
ld d, h
|
||||
ld e, l
|
||||
ld hl, wContestMon
|
||||
ld bc, PARTYMON_STRUCT_LENGTH
|
||||
call CopyBytes
|
||||
ld a, [PartyCount]
|
||||
dec a
|
||||
ld hl, PartyMonOT
|
||||
call SkipNames
|
||||
ld d, h
|
||||
ld e, l
|
||||
ld hl, PlayerName
|
||||
call CopyBytes
|
||||
ld a, [CurPartySpecies]
|
||||
ld [wd265], a
|
||||
call GetPokemonName
|
||||
ld hl, StringBuffer1
|
||||
ld de, wMonOrItemNameBuffer
|
||||
ld bc, PKMN_NAME_LENGTH
|
||||
call CopyBytes
|
||||
call GiveANickname_YesNo
|
||||
jr c, .Party_SkipNickname
|
||||
ld a, [PartyCount]
|
||||
dec a
|
||||
ld [CurPartyMon], a
|
||||
xor a
|
||||
ld [MonType], a
|
||||
ld de, wMonOrItemNameBuffer
|
||||
callab InitNickname
|
||||
|
||||
.Party_SkipNickname:
|
||||
ld a, [PartyCount]
|
||||
dec a
|
||||
ld hl, PartyMonNicknames
|
||||
call SkipNames
|
||||
ld d, h
|
||||
ld e, l
|
||||
ld hl, wMonOrItemNameBuffer
|
||||
call CopyBytes
|
||||
ld a, [PartyCount]
|
||||
dec a
|
||||
ld hl, PartyMon1Level
|
||||
call GetPartyLocation
|
||||
ld a, [hl]
|
||||
ld [CurPartyLevel], a
|
||||
call SetCaughtData
|
||||
ld a, [PartyCount]
|
||||
dec a
|
||||
ld hl, PartyMon1CaughtLocation
|
||||
call GetPartyLocation
|
||||
ld a, [hl]
|
||||
and $80
|
||||
ld b, $13
|
||||
or b
|
||||
ld [hl], a
|
||||
xor a
|
||||
ld [wContestMon], a
|
||||
and a
|
||||
ld [ScriptVar], a
|
||||
ret
|
||||
|
||||
.TryAddToBox: ; 4daa3
|
||||
ld a, BANK(sBoxCount)
|
||||
call GetSRAMBank
|
||||
ld hl, sBoxCount
|
||||
ld a, [hl]
|
||||
cp MONS_PER_BOX
|
||||
call CloseSRAM
|
||||
jr nc, .BoxFull
|
||||
xor a
|
||||
ld [CurPartyMon], a
|
||||
ld hl, wContestMon
|
||||
ld de, wBufferMon
|
||||
ld bc, BOXMON_STRUCT_LENGTH
|
||||
call CopyBytes
|
||||
ld hl, PlayerName
|
||||
ld de, wBufferMonOT
|
||||
ld bc, NAME_LENGTH
|
||||
call CopyBytes
|
||||
callab InsertPokemonIntoBox
|
||||
ld a, [CurPartySpecies]
|
||||
ld [wd265], a
|
||||
call GetPokemonName
|
||||
call GiveANickname_YesNo
|
||||
ld hl, StringBuffer1
|
||||
jr c, .Box_SkipNickname
|
||||
ld a, BOXMON
|
||||
ld [MonType], a
|
||||
ld de, wMonOrItemNameBuffer
|
||||
callab InitNickname
|
||||
ld hl, wMonOrItemNameBuffer
|
||||
|
||||
.Box_SkipNickname:
|
||||
ld a, BANK(sBoxMonNicknames)
|
||||
call GetSRAMBank
|
||||
ld de, sBoxMonNicknames
|
||||
ld bc, PKMN_NAME_LENGTH
|
||||
call CopyBytes
|
||||
call CloseSRAM
|
||||
|
||||
.BoxFull:
|
||||
ld a, BANK(sBoxMon1Level)
|
||||
call GetSRAMBank
|
||||
ld a, [sBoxMon1Level]
|
||||
ld [CurPartyLevel], a
|
||||
call CloseSRAM
|
||||
call SetBoxMonCaughtData
|
||||
ld a, BANK(sBoxMon1CaughtLocation)
|
||||
call GetSRAMBank
|
||||
ld hl, sBoxMon1CaughtLocation
|
||||
ld a, [hl]
|
||||
and $80
|
||||
ld b, $13
|
||||
or b
|
||||
ld [hl], a
|
||||
call CloseSRAM
|
||||
xor a
|
||||
ld [wContestMon], a
|
||||
ld a, $1
|
||||
ld [ScriptVar], a
|
||||
ret
|
||||
|
||||
.DidntCatchAnything: ; 4db35
|
||||
ld a, $2
|
||||
ld [ScriptVar], a
|
||||
ret
|
||||
|
||||
GiveANickname_YesNo: ; 4db3b
|
||||
ld hl, TextJump_GiveANickname
|
||||
call PrintText
|
||||
jp YesNoBox
|
||||
|
||||
TextJump_GiveANickname: ; 0x4db44
|
||||
; Give a nickname to the @ you received?
|
||||
text_jump UnknownText_0x1c12fc
|
||||
db "@"
|
||||
|
||||
SetCaughtData: ; 4db49
|
||||
ld a, [PartyCount]
|
||||
dec a
|
||||
ld hl, PartyMon1CaughtLevel
|
||||
call GetPartyLocation
|
||||
SetBoxmonOrEggmonCaughtData: ; 4db53
|
||||
ld a, [TimeOfDay]
|
||||
inc a
|
||||
rrca
|
||||
rrca
|
||||
ld b, a
|
||||
ld a, [CurPartyLevel]
|
||||
or b
|
||||
ld [hli], a
|
||||
ld a, [MapGroup]
|
||||
ld b, a
|
||||
ld a, [MapNumber]
|
||||
ld c, a
|
||||
cp MAP_POKECENTER_2F
|
||||
jr nz, .NotPokecenter2F
|
||||
ld a, b
|
||||
cp GROUP_POKECENTER_2F
|
||||
jr nz, .NotPokecenter2F
|
||||
|
||||
ld a, [BackupMapGroup]
|
||||
ld b, a
|
||||
ld a, [BackupMapNumber]
|
||||
ld c, a
|
||||
|
||||
.NotPokecenter2F:
|
||||
call GetWorldMapLocation
|
||||
ld b, a
|
||||
ld a, [PlayerGender]
|
||||
rrca
|
||||
or b
|
||||
ld [hl], a
|
||||
ret
|
||||
|
||||
SetBoxMonCaughtData: ; 4db83
|
||||
ld a, BANK(sBoxMon1CaughtLevel)
|
||||
call GetSRAMBank
|
||||
ld hl, sBoxMon1CaughtLevel
|
||||
call SetBoxmonOrEggmonCaughtData
|
||||
call CloseSRAM
|
||||
ret
|
||||
|
||||
SetGiftBoxMonCaughtData: ; 4db92
|
||||
push bc
|
||||
ld a, BANK(sBoxMon1CaughtLevel)
|
||||
call GetSRAMBank
|
||||
ld hl, sBoxMon1CaughtLevel
|
||||
pop bc
|
||||
call SetGiftMonCaughtData
|
||||
call CloseSRAM
|
||||
ret
|
||||
|
||||
SetGiftPartyMonCaughtData: ; 4dba3
|
||||
ld a, [PartyCount]
|
||||
dec a
|
||||
ld hl, PartyMon1CaughtLevel
|
||||
push bc
|
||||
call GetPartyLocation
|
||||
pop bc
|
||||
SetGiftMonCaughtData: ; 4dbaf
|
||||
xor a
|
||||
ld [hli], a
|
||||
ld a, $7e
|
||||
rrc b
|
||||
or b
|
||||
ld [hl], a
|
||||
ret
|
||||
|
||||
SetEggMonCaughtData: ; 4dbb8 (13:5bb8)
|
||||
ld a, [CurPartyMon]
|
||||
ld hl, PartyMon1CaughtLevel
|
||||
call GetPartyLocation
|
||||
ld a, [CurPartyLevel]
|
||||
push af
|
||||
ld a, $1
|
||||
ld [CurPartyLevel], a
|
||||
call SetBoxmonOrEggmonCaughtData
|
||||
pop af
|
||||
ld [CurPartyLevel], a
|
||||
ret
|
||||
Reference in New Issue
Block a user