diff options
| author | entrpntr <12521136+entrpntr@users.noreply.github.com> | 2020-05-29 15:31:19 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-05-29 15:31:19 -0400 |
| commit | bfe026e42eb769755cf2d0a1cbcbc7340ad49c36 (patch) | |
| tree | 76c0823380c5df50f299a92e6af72145fac61ad4 /engine/pokemon | |
| parent | c688dd59fba5ddc1275b098cff9662aeb2794043 (diff) | |
| parent | 1228317ce7240347be692995eae539ab7e850016 (diff) | |
Merge pull request #39 from libjet/bank31
Disassemble bank $31
Diffstat (limited to 'engine/pokemon')
| -rwxr-xr-x | engine/pokemon/caught_data.asm | 130 |
1 files changed, 130 insertions, 0 deletions
diff --git a/engine/pokemon/caught_data.asm b/engine/pokemon/caught_data.asm new file mode 100755 index 00000000..408e284a --- /dev/null +++ b/engine/pokemon/caught_data.asm @@ -0,0 +1,130 @@ +CheckPartyFullAfterContest: + ld a, [wContestMon] + and a + jp z, .DidntCatchAnything + ld [wCurPartySpecies], a + ld [wCurSpecies], a + call GetBaseData + ld hl, wPartyCount + ld a, [hl] + cp PARTY_LENGTH + jp nc, .TryAddToBox + inc a + ld [hl], a + ld c, a + ld b, 0 + add hl, bc + ld a, [wContestMon] + ld [hli], a + ld [wCurSpecies], a + ld a, -1 + ld [hl], a + ld hl, wPartyMon1Species + ld a, [wPartyCount] + 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, [wPartyCount] + dec a + ld hl, wPartyMonOT + call SkipNames + ld d, h + ld e, l + ld hl, wPlayerName + call CopyBytes + ld a, [wCurPartySpecies] + ld [wNamedObjectIndexBuffer], a + call GetPokemonName + ld hl, wStringBuffer1 + ld de, wMonOrItemNameBuffer + ld bc, MON_NAME_LENGTH + call CopyBytes + call GiveANickname_YesNo + jr c, .Party_SkipNickname + ld a, [wPartyCount] + dec a + ld [wCurPartyMon], a + xor a + ld [wMonType], a + ld de, wMonOrItemNameBuffer + callfar InitNickname + +.Party_SkipNickname: + ld a, [wPartyCount] + dec a + ld hl, wPartyMonNicknames + call SkipNames + ld d, h + ld e, l + ld hl, wMonOrItemNameBuffer + call CopyBytes + xor a + ld [wContestMonSpecies], a + and a + ld [wScriptVar], a + ret + +.TryAddToBox: + ld a, BANK(sBoxCount) + call OpenSRAM + ld hl, sBoxCount + ld a, [hl] + cp MONS_PER_BOX + call CloseSRAM + jr nc, .BoxFull + xor a + ld [wCurPartyMon], a + ld hl, wContestMon + ld de, wBufferMon + ld bc, BOXMON_STRUCT_LENGTH + call CopyBytes + ld hl, wPlayerName + ld de, wBufferMonOT + ld bc, NAME_LENGTH + call CopyBytes + callfar InsertPokemonIntoBox + ld a, [wCurPartySpecies] + ld [wNamedObjectIndexBuffer], a + call GetPokemonName + call GiveANickname_YesNo + ld hl, wStringBuffer1 + jr c, .Box_SkipNickname + ld a, BOXMON + ld [wMonType], a + ld de, wMonOrItemNameBuffer + callfar InitNickname + ld hl, wMonOrItemNameBuffer + +.Box_SkipNickname: + ld a, BANK(sBoxMonNicknames) + call OpenSRAM + ld de, sBoxMonNicknames + ld bc, MON_NAME_LENGTH + call CopyBytes + call CloseSRAM + +.BoxFull: + xor a + ld [wContestMon], a + ld a, BUGCONTEST_BOXED_MON + ld [wScriptVar], a + ret + +.DidntCatchAnything: + ld a, BUGCONTEST_NO_CATCH + ld [wScriptVar], a + ret + +GiveANickname_YesNo: + ld hl, CaughtAskNicknameText + call PrintText + jp YesNoBox + +CaughtAskNicknameText: + text_far _CaughtAskNicknameText + text_end |
