mirror of https://github.com/pret/pokecrystal.git
GetSquareRoot
This commit is contained in:
parent
37355aef99
commit
767cc1376b
34
main.asm
34
main.asm
|
@ -4805,7 +4805,39 @@ OpenPartyStats: ; 12e00
|
|||
ret
|
||||
; 0x12e1b
|
||||
|
||||
INCBIN "baserom.gbc",$12e1b,$13d96 - $12e1b
|
||||
INCBIN "baserom.gbc",$12e1b,$13b87 - $12e1b
|
||||
|
||||
GetSquareRoot: ; 13b87
|
||||
; Return the square root of de in b.
|
||||
|
||||
; Rather than calculating the result, we take the index of the
|
||||
; first value in a table of squares that isn't lower than de.
|
||||
|
||||
ld hl, Squares
|
||||
ld b, 0
|
||||
.loop
|
||||
; Make sure we don't go past the end of the table.
|
||||
inc b
|
||||
ld a, b
|
||||
cp $ff
|
||||
ret z
|
||||
|
||||
; Iterate over the table until b**2 >= de.
|
||||
ld a, [hli]
|
||||
sub e
|
||||
ld a, [hli]
|
||||
sbc d
|
||||
|
||||
jr c, .loop
|
||||
ret
|
||||
|
||||
Squares: ; 13b98
|
||||
root set 1
|
||||
rept $ff
|
||||
dw root*root
|
||||
root set root+1
|
||||
endr
|
||||
; 13d96
|
||||
|
||||
|
||||
SECTION "bank5",DATA,BANK[$5]
|
||||
|
|
Loading…
Reference in New Issue