mirror of
https://gitlab.com/xCrystal/pokecrystal-board.git
synced 2024-11-16 11:27:33 -08:00
Gender check
This commit is contained in:
parent
4941f473a2
commit
37355aef99
122
main.asm
122
main.asm
@ -7103,9 +7103,129 @@ Dragon:
|
|||||||
Dark:
|
Dark:
|
||||||
db "DARK@"
|
db "DARK@"
|
||||||
|
|
||||||
INCBIN "baserom.gbc",$50A28, $51424 - $50A28
|
INCBIN "baserom.gbc", $50a28, $50bdd - $50a28
|
||||||
|
|
||||||
|
|
||||||
|
GetGender: ; 50bdd
|
||||||
|
; Return the gender of a given monster in a.
|
||||||
|
|
||||||
|
; 1: male
|
||||||
|
; 0: female
|
||||||
|
; c: genderless
|
||||||
|
|
||||||
|
; This is determined by comparing the Attack and Speed DVs
|
||||||
|
; with the species' gender ratio.
|
||||||
|
|
||||||
|
|
||||||
|
; Figure out what type of monster struct we're looking at.
|
||||||
|
|
||||||
|
; 0: PartyMon
|
||||||
|
ld hl, PartyMon1DVs
|
||||||
|
ld bc, PartyMon2 - PartyMon1
|
||||||
|
ld a, [MonType]
|
||||||
|
and a
|
||||||
|
jr z, .PartyMon
|
||||||
|
|
||||||
|
; 1: OTPartyMon
|
||||||
|
ld hl, OTPartyMon1DVs
|
||||||
|
dec a
|
||||||
|
jr z, .PartyMon
|
||||||
|
|
||||||
|
; 2: BoxMon
|
||||||
|
ld hl, $ad26 + $15 ; BoxMon1DVs
|
||||||
|
ld bc, $20 ; BoxMon2 - BoxMon1
|
||||||
|
dec a
|
||||||
|
jr z, .BoxMon
|
||||||
|
|
||||||
|
; 3: Unknown
|
||||||
|
ld hl, $d123 ; DVBuffer
|
||||||
|
dec a
|
||||||
|
jr z, .DVs
|
||||||
|
|
||||||
|
; else: WildMon
|
||||||
|
ld hl, EnemyMonDVs
|
||||||
|
jr .DVs
|
||||||
|
|
||||||
|
|
||||||
|
; Get our place in the party/box.
|
||||||
|
|
||||||
|
.PartyMon
|
||||||
|
.BoxMon
|
||||||
|
ld a, [CurPartyMon]
|
||||||
|
call AddNTimes
|
||||||
|
|
||||||
|
|
||||||
|
.DVs
|
||||||
|
|
||||||
|
; BoxMon data is read directly from SRAM.
|
||||||
|
ld a, [MonType]
|
||||||
|
cp 2
|
||||||
|
ld a, 1
|
||||||
|
call z, GetSRAMBank
|
||||||
|
|
||||||
|
; Attack DV
|
||||||
|
ld a, [hli]
|
||||||
|
and $f0
|
||||||
|
ld b, a
|
||||||
|
; Speed DV
|
||||||
|
ld a, [hl]
|
||||||
|
and $f0
|
||||||
|
swap a
|
||||||
|
|
||||||
|
; Put our DVs together.
|
||||||
|
or b
|
||||||
|
ld b, a
|
||||||
|
|
||||||
|
; Close SRAM if we were dealing with a BoxMon.
|
||||||
|
ld a, [MonType] ; MonType
|
||||||
|
cp 2 ; BOXMON
|
||||||
|
call z, CloseSRAM
|
||||||
|
|
||||||
|
|
||||||
|
; We need the gender ratio to do anything with this.
|
||||||
|
push bc
|
||||||
|
ld a, [CurPartySpecies]
|
||||||
|
dec a
|
||||||
|
ld hl, BaseStats + 13 ; BASE_GENDER
|
||||||
|
ld bc, BaseStats1 - BaseStats
|
||||||
|
call AddNTimes
|
||||||
|
pop bc
|
||||||
|
|
||||||
|
ld a, BANK(BaseStats)
|
||||||
|
call GetFarByte
|
||||||
|
|
||||||
|
|
||||||
|
; The higher the ratio, the more likely the monster is to be female.
|
||||||
|
|
||||||
|
cp $ff
|
||||||
|
jr z, .Genderless
|
||||||
|
|
||||||
|
and a
|
||||||
|
jr z, .Male
|
||||||
|
|
||||||
|
cp $fe
|
||||||
|
jr z, .Female
|
||||||
|
|
||||||
|
; Values below the ratio are male, and vice versa.
|
||||||
|
cp b
|
||||||
|
jr c, .Male
|
||||||
|
|
||||||
|
.Female
|
||||||
|
xor a
|
||||||
|
ret
|
||||||
|
|
||||||
|
.Male
|
||||||
|
ld a, 1
|
||||||
|
and a
|
||||||
|
ret
|
||||||
|
|
||||||
|
.Genderless
|
||||||
|
scf
|
||||||
|
ret
|
||||||
|
; 50c50
|
||||||
|
|
||||||
|
INCBIN "baserom.gbc", $50c50, $51424 - $50c50
|
||||||
|
|
||||||
BaseStats:
|
BaseStats:
|
||||||
INCLUDE "stats/base_stats.asm"
|
INCLUDE "stats/base_stats.asm"
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user