You've already forked pokecrystal-board
mirror of
https://gitlab.com/xCrystal/pokecrystal-board.git
synced 2025-12-11 05:02:16 -08:00
Plus 4 on person events; feeble attempt to annotate color functions
This commit is contained in:
@@ -2286,7 +2286,7 @@ PokeDoll: ; f48f
|
||||
inc a
|
||||
ld [wd232], a
|
||||
ld a, [wd0ee]
|
||||
and $c0
|
||||
and 3 << 6
|
||||
or $2
|
||||
ld [wd0ee], a
|
||||
jp Functionf789
|
||||
@@ -2368,7 +2368,7 @@ PokeFlute: ; f50c
|
||||
.asm_f512
|
||||
|
||||
xor a
|
||||
ld [wd002], a
|
||||
ld [MiscBuffer2], a
|
||||
|
||||
ld b, $ff ^ SLP
|
||||
|
||||
@@ -2391,7 +2391,7 @@ PokeFlute: ; f50c
|
||||
and b
|
||||
ld [hl], a
|
||||
|
||||
ld a, [wd002]
|
||||
ld a, [MiscBuffer2]
|
||||
and a
|
||||
ld hl, UnknownText_0xf56c
|
||||
jp z, PrintText
|
||||
@@ -2416,7 +2416,7 @@ PokeFlute: ; f50c
|
||||
and SLP
|
||||
jr z, .asm_f564
|
||||
ld a, 1
|
||||
ld [wd002], a
|
||||
ld [MiscBuffer2], a
|
||||
.asm_f564
|
||||
pop af
|
||||
and b
|
||||
@@ -2517,27 +2517,27 @@ MaxEther:
|
||||
Elixer:
|
||||
Mysteryberry: ; f5bf
|
||||
ld a, [CurItem]
|
||||
ld [wd002], a
|
||||
ld [MiscBuffer2], a
|
||||
|
||||
.asm_f5c5
|
||||
.loop
|
||||
ld b, $1
|
||||
call Functionf1f9
|
||||
jp c, Functionf6e0
|
||||
|
||||
.asm_f5cd
|
||||
ld a, [wd002]
|
||||
.loop2
|
||||
ld a, [MiscBuffer2]
|
||||
cp MAX_ELIXER
|
||||
jp z, Functionf6af
|
||||
jp z, Elixer_RestorePPofAllMoves
|
||||
cp ELIXER
|
||||
jp z, Functionf6af
|
||||
jp z, Elixer_RestorePPofAllMoves
|
||||
|
||||
ld hl, UnknownText_0xf725
|
||||
ld a, [wd002]
|
||||
ld a, [MiscBuffer2]
|
||||
cp PP_UP
|
||||
jr z, .asm_f5e7
|
||||
jr z, .ppup
|
||||
ld hl, UnknownText_0xf72a
|
||||
|
||||
.asm_f5e7
|
||||
.ppup
|
||||
call PrintText
|
||||
|
||||
ld a, [CurMoveNum]
|
||||
@@ -2551,10 +2551,10 @@ Mysteryberry: ; f5bf
|
||||
pop bc
|
||||
ld a, b
|
||||
ld [CurMoveNum], a
|
||||
jr nz, .asm_f5c5
|
||||
jr nz, .loop
|
||||
ld hl, PartyMon1Moves
|
||||
ld bc, PartyMon2 - PartyMon1
|
||||
call Functionf963
|
||||
call GetMthMoveOfNthPartymon
|
||||
|
||||
push hl
|
||||
ld a, [hl]
|
||||
@@ -2563,28 +2563,28 @@ Mysteryberry: ; f5bf
|
||||
call CopyName1
|
||||
|
||||
pop hl
|
||||
ld a, [wd002]
|
||||
ld a, [MiscBuffer2]
|
||||
cp PP_UP
|
||||
jp nz, Functionf6a7
|
||||
|
||||
ld a, [hl]
|
||||
cp $a6
|
||||
jr z, .asm_f62f
|
||||
cp SKETCH
|
||||
jr z, .CantUsePPUpOnSketch
|
||||
|
||||
ld bc, $0015
|
||||
add hl, bc
|
||||
ld a, [hl]
|
||||
cp $c0
|
||||
jr c, .asm_f637
|
||||
cp 3 << 6
|
||||
jr c, .do_ppup
|
||||
|
||||
.asm_f62f
|
||||
.CantUsePPUpOnSketch
|
||||
ld hl, UnknownText_0xf72f
|
||||
call PrintText
|
||||
jr .asm_f5cd
|
||||
jr .loop2
|
||||
|
||||
.asm_f637
|
||||
.do_ppup
|
||||
ld a, [hl]
|
||||
add $40
|
||||
add 1 << 6
|
||||
ld [hl], a
|
||||
ld a, $1
|
||||
ld [wd265], a
|
||||
@@ -2657,37 +2657,37 @@ Functionf652: ; f652
|
||||
; f6a7
|
||||
|
||||
Functionf6a7: ; f6a7
|
||||
call Functionf6e8
|
||||
call RestorePP
|
||||
jr nz, Functionf652
|
||||
jp Functionf6dd
|
||||
; f6af
|
||||
|
||||
Functionf6af: ; f6af
|
||||
Elixer_RestorePPofAllMoves: ; f6af
|
||||
xor a
|
||||
ld hl, wcfa9
|
||||
ld [hli], a
|
||||
ld [hl], a
|
||||
ld b, NUM_MOVES
|
||||
.asm_f6b7
|
||||
.moveLoop
|
||||
push bc
|
||||
ld hl, PartyMon1Moves
|
||||
ld bc, PartyMon2 - PartyMon1
|
||||
call Functionf963
|
||||
call GetMthMoveOfNthPartymon
|
||||
ld a, [hl]
|
||||
and a
|
||||
jr z, .asm_f6ce
|
||||
jr z, .cant_restore_pp
|
||||
|
||||
call Functionf6e8
|
||||
jr z, .asm_f6ce
|
||||
call RestorePP
|
||||
jr z, .cant_restore_pp
|
||||
ld hl, wcfaa
|
||||
inc [hl]
|
||||
|
||||
.asm_f6ce
|
||||
.cant_restore_pp
|
||||
ld hl, wcfa9
|
||||
inc [hl]
|
||||
pop bc
|
||||
dec b
|
||||
jr nz, .asm_f6b7
|
||||
jr nz, .moveLoop
|
||||
ld a, [wcfaa]
|
||||
and a
|
||||
jp nz, Functionf652
|
||||
@@ -2702,48 +2702,48 @@ Functionf6e0: ; f6e0
|
||||
ret
|
||||
; f6e8
|
||||
|
||||
Functionf6e8: ; f6e8
|
||||
RestorePP: ; f6e8
|
||||
xor a ; PARTYMON
|
||||
ld [MonType], a
|
||||
call Functionf8ec
|
||||
ld hl, PartyMon1PP
|
||||
ld bc, PartyMon2 - PartyMon1
|
||||
call Functionf963
|
||||
call GetMthMoveOfNthPartymon
|
||||
ld a, [wd265]
|
||||
ld b, a
|
||||
ld a, [hl]
|
||||
and $3f
|
||||
and (1 << 6) - 1
|
||||
cp b
|
||||
jr nc, .asm_f723
|
||||
jr nc, .dont_restore
|
||||
|
||||
ld a, [wd002]
|
||||
ld a, [MiscBuffer2]
|
||||
cp MAX_ELIXER
|
||||
jr z, .asm_f71d
|
||||
jr z, .restore_all
|
||||
cp MAX_ETHER
|
||||
jr z, .asm_f71d
|
||||
jr z, .restore_all
|
||||
|
||||
ld c, 5
|
||||
cp MYSTERYBERRY
|
||||
jr z, .asm_f715
|
||||
jr z, .restore_some
|
||||
|
||||
ld c, 10
|
||||
|
||||
.asm_f715
|
||||
.restore_some
|
||||
ld a, [hl]
|
||||
and $3f
|
||||
and (1 << 6) - 1
|
||||
add c
|
||||
cp b
|
||||
jr nc, .asm_f71d
|
||||
jr nc, .restore_all
|
||||
ld b, a
|
||||
|
||||
.asm_f71d
|
||||
.restore_all
|
||||
ld a, [hl]
|
||||
and $c0
|
||||
and 3 << 6
|
||||
or b
|
||||
ld [hl], a
|
||||
ret
|
||||
|
||||
.asm_f723
|
||||
.dont_restore
|
||||
xor a
|
||||
ret
|
||||
; f725
|
||||
@@ -3127,9 +3127,9 @@ Functionf84c: ; f84c
|
||||
|
||||
.asm_f876
|
||||
ld a, [hl]
|
||||
and $c0
|
||||
ld a, [de]
|
||||
call nz, Functionf881
|
||||
and 3 << 6
|
||||
ld a, [de] ; wasted cycle
|
||||
call nz, ComputeMaxPP
|
||||
|
||||
.asm_f87d
|
||||
inc hl
|
||||
@@ -3139,8 +3139,9 @@ Functionf84c: ; f84c
|
||||
|
||||
|
||||
|
||||
Functionf881: ; f881
|
||||
ComputeMaxPP: ; f881
|
||||
push bc
|
||||
; Divide the base PP by 5.
|
||||
ld a, [de]
|
||||
ld [hDividend + 3], a
|
||||
xor a
|
||||
@@ -3151,6 +3152,7 @@ Functionf881: ; f881
|
||||
ld [hDivisor], a
|
||||
ld b, 4
|
||||
call Divide
|
||||
; Get the number of PP, which are bits 6 and 7 of the PP value stored in RAM.
|
||||
ld a, [hl]
|
||||
ld b, a
|
||||
swap a
|
||||
@@ -3158,24 +3160,30 @@ Functionf881: ; f881
|
||||
srl a
|
||||
srl a
|
||||
ld c, a
|
||||
; If this value is 0, we are done
|
||||
and a
|
||||
jr z, .asm_f8b6
|
||||
.asm_f8a3
|
||||
ld a, [$ffb6]
|
||||
jr z, .NoPPUp
|
||||
|
||||
.loop
|
||||
; Normally, a move with 40 PP would have 64 PP with three PP Ups.
|
||||
; Since this would overflow into bit 6, we prevent that from happening
|
||||
; by decreasing the extra amount of PP each PP Up provides, resulting
|
||||
; in a maximum of 61.
|
||||
ld a, [hQuotient + 2]
|
||||
cp $8
|
||||
jr c, .asm_f8ab
|
||||
jr c, .okay
|
||||
ld a, $7
|
||||
|
||||
.asm_f8ab
|
||||
.okay
|
||||
add b
|
||||
ld b, a
|
||||
ld a, [wd265]
|
||||
dec a
|
||||
jr z, .asm_f8b6
|
||||
jr z, .NoPPUp
|
||||
dec c
|
||||
jr nz, .asm_f8a3
|
||||
jr nz, .loop
|
||||
|
||||
.asm_f8b6
|
||||
.NoPPUp
|
||||
ld [hl], b
|
||||
pop bc
|
||||
ret
|
||||
@@ -3203,7 +3211,7 @@ Functionf8b9: ; f8b9
|
||||
pop bc
|
||||
pop de
|
||||
ld a, [de]
|
||||
and $c0
|
||||
and 3 << 6
|
||||
ld b, a
|
||||
ld a, [wd265]
|
||||
add b
|
||||
@@ -3229,30 +3237,30 @@ Functionf8ec: ; f8ec
|
||||
|
||||
ld hl, PartyMon1Moves
|
||||
ld bc, PartyMon2 - PartyMon1
|
||||
jr z, .asm_f91a ; PARTYMON
|
||||
jr z, .got_partymon ; PARTYMON
|
||||
|
||||
ld hl, OTPartyMon1Moves
|
||||
dec a
|
||||
jr z, .asm_f91a ; OTPARTYMON
|
||||
jr z, .got_partymon ; OTPARTYMON
|
||||
|
||||
ld hl, TempMonMoves
|
||||
dec a
|
||||
jr z, .asm_f915 ; BOXMON
|
||||
jr z, .got_nonpartymon ; BOXMON
|
||||
|
||||
ld hl, TempMonMoves ; Wasted cycles
|
||||
dec a
|
||||
jr z, .asm_f915 ; BREEDMON
|
||||
jr z, .got_nonpartymon ; BREEDMON
|
||||
|
||||
ld hl, BattleMonMoves ; WILDMON
|
||||
|
||||
.asm_f915 ; BOXMON, BREEDMON, WILDMON
|
||||
call Functionf969
|
||||
jr .asm_f91d
|
||||
.got_nonpartymon ; BOXMON, BREEDMON, WILDMON
|
||||
call GetMthMoveOfCurrentMon
|
||||
jr .gotdatmove
|
||||
|
||||
.asm_f91a ; PARTYMON, OTPARTYMON
|
||||
call Functionf963
|
||||
.got_partymon ; PARTYMON, OTPARTYMON
|
||||
call GetMthMoveOfNthPartymon
|
||||
|
||||
.asm_f91d
|
||||
.gotdatmove
|
||||
ld a, [hl]
|
||||
dec a
|
||||
|
||||
@@ -3271,12 +3279,12 @@ Functionf8ec: ; f8ec
|
||||
ld bc, PartyMon1PP - PartyMon1Moves
|
||||
ld a, [MonType]
|
||||
cp WILDMON
|
||||
jr nz, .asm_f942
|
||||
jr nz, .notwild
|
||||
ld bc, EnemyMonPP - EnemyMonMoves
|
||||
.asm_f942
|
||||
.notwild
|
||||
add hl, bc
|
||||
ld a, [hl]
|
||||
and $c0
|
||||
and 3 << 6
|
||||
pop bc
|
||||
|
||||
or b
|
||||
@@ -3284,10 +3292,10 @@ Functionf8ec: ; f8ec
|
||||
ld [hl], a
|
||||
xor a
|
||||
ld [wd265], a
|
||||
ld a, b
|
||||
call Functionf881
|
||||
ld a, b ; this gets lost anyway
|
||||
call ComputeMaxPP
|
||||
ld a, [hl]
|
||||
and $3f
|
||||
and (1 << 6) - 1
|
||||
ld [wd265], a
|
||||
|
||||
pop af
|
||||
@@ -3297,11 +3305,11 @@ Functionf8ec: ; f8ec
|
||||
ret
|
||||
; f963
|
||||
|
||||
Functionf963: ; f963
|
||||
GetMthMoveOfNthPartymon: ; f963
|
||||
ld a, [CurPartyMon]
|
||||
call AddNTimes
|
||||
|
||||
Functionf969: ; f969
|
||||
GetMthMoveOfCurrentMon: ; f969
|
||||
ld a, [wcfa9]
|
||||
ld c, a
|
||||
ld b, 0
|
||||
|
||||
Reference in New Issue
Block a user