mirror of
https://github.com/thornAvery/kep-hack.git
synced 2025-09-17 02:40:50 +12:00
Merge branch 'label-naming' of https://github.com/joefarebrother/pokered into joefarebrother-label-naming
This commit is contained in:
commit
2eabbc26a9
|
@ -340,13 +340,14 @@ _AddEnemyMonToPlayerParty:
|
||||||
|
|
||||||
_MoveMon:
|
_MoveMon:
|
||||||
ld a, [wMoveMonType]
|
ld a, [wMoveMonType]
|
||||||
and a
|
and a ; BOX_TO_PARTY
|
||||||
jr z, .checkPartyMonSlots
|
jr z, .checkPartyMonSlots
|
||||||
cp DAYCARE_TO_PARTY
|
cp DAYCARE_TO_PARTY
|
||||||
jr z, .checkPartyMonSlots
|
jr z, .checkPartyMonSlots
|
||||||
cp PARTY_TO_DAYCARE
|
cp PARTY_TO_DAYCARE
|
||||||
ld hl, wDayCareMon
|
ld hl, wDayCareMon
|
||||||
jr z, .asm_f575
|
jr z, .findMonDataSrc
|
||||||
|
; else it's PARTY_TO_BOX
|
||||||
ld hl, wNumInBox
|
ld hl, wNumInBox
|
||||||
ld a, [hl]
|
ld a, [hl]
|
||||||
cp MONS_PER_BOX
|
cp MONS_PER_BOX
|
||||||
|
@ -369,24 +370,26 @@ _MoveMon:
|
||||||
ld a, [wMoveMonType]
|
ld a, [wMoveMonType]
|
||||||
cp DAYCARE_TO_PARTY
|
cp DAYCARE_TO_PARTY
|
||||||
ld a, [wDayCareMon]
|
ld a, [wDayCareMon]
|
||||||
jr z, .asm_f556
|
jr z, .copySpecies
|
||||||
ld a, [wcf91]
|
ld a, [wcf91]
|
||||||
.asm_f556
|
.copySpecies
|
||||||
ld [hli], a ; write new mon ID
|
ld [hli], a ; write new mon ID
|
||||||
ld [hl], $ff ; write new sentinel
|
ld [hl], $ff ; write new sentinel
|
||||||
|
.findMonDataDest
|
||||||
ld a, [wMoveMonType]
|
ld a, [wMoveMonType]
|
||||||
dec a
|
dec a
|
||||||
ld hl, wPartyMons
|
ld hl, wPartyMons
|
||||||
ld bc, wPartyMon2 - wPartyMon1 ; $2c
|
ld bc, wPartyMon2 - wPartyMon1 ; $2c
|
||||||
ld a, [wPartyCount]
|
ld a, [wPartyCount]
|
||||||
jr nz, .skipToNewMonEntry
|
jr nz, .addMonOffset
|
||||||
|
; if it's PARTY_TO_BOX
|
||||||
ld hl, wBoxMons
|
ld hl, wBoxMons
|
||||||
ld bc, wBoxMon2 - wBoxMon1 ; $21
|
ld bc, wBoxMon2 - wBoxMon1 ; $21
|
||||||
ld a, [wNumInBox]
|
ld a, [wNumInBox]
|
||||||
.skipToNewMonEntry
|
.addMonOffset
|
||||||
dec a
|
dec a
|
||||||
call AddNTimes
|
call AddNTimes
|
||||||
.asm_f575
|
.findMonDataSrc
|
||||||
push hl
|
push hl
|
||||||
ld e, l
|
ld e, l
|
||||||
ld d, h
|
ld d, h
|
||||||
|
@ -394,16 +397,16 @@ _MoveMon:
|
||||||
and a
|
and a
|
||||||
ld hl, wBoxMons
|
ld hl, wBoxMons
|
||||||
ld bc, wBoxMon2 - wBoxMon1 ; $21
|
ld bc, wBoxMon2 - wBoxMon1 ; $21
|
||||||
jr z, .asm_f591
|
jr z, .addMonOffset2
|
||||||
cp DAYCARE_TO_PARTY
|
cp DAYCARE_TO_PARTY
|
||||||
ld hl, wDayCareMon
|
ld hl, wDayCareMon
|
||||||
jr z, .asm_f597
|
jr z, .copyMonData
|
||||||
ld hl, wPartyMons
|
ld hl, wPartyMons
|
||||||
ld bc, wPartyMon2 - wPartyMon1 ; $2c
|
ld bc, wPartyMon2 - wPartyMon1 ; $2c
|
||||||
.asm_f591
|
.addMonOffset2
|
||||||
ld a, [wWhichPokemon]
|
ld a, [wWhichPokemon]
|
||||||
call AddNTimes
|
call AddNTimes
|
||||||
.asm_f597
|
.copyMonData
|
||||||
push hl
|
push hl
|
||||||
push de
|
push de
|
||||||
ld bc, wBoxMon2 - wBoxMon1
|
ld bc, wBoxMon2 - wBoxMon1
|
||||||
|
@ -411,84 +414,85 @@ _MoveMon:
|
||||||
pop de
|
pop de
|
||||||
pop hl
|
pop hl
|
||||||
ld a, [wMoveMonType]
|
ld a, [wMoveMonType]
|
||||||
and a
|
and a ; BOX_TO_PARTY
|
||||||
jr z, .asm_f5b4
|
jr z, .findOTdest
|
||||||
cp DAYCARE_TO_PARTY
|
cp DAYCARE_TO_PARTY
|
||||||
jr z, .asm_f5b4
|
jr z, .findOTdest
|
||||||
ld bc, wBoxMon2 - wBoxMon1
|
ld bc, wBoxMon2 - wBoxMon1
|
||||||
add hl, bc
|
add hl, bc
|
||||||
ld a, [hl]
|
ld a, [hl] ; hl = Level
|
||||||
inc de
|
inc de
|
||||||
inc de
|
inc de
|
||||||
inc de
|
inc de
|
||||||
ld [de], a
|
ld [de], a ; de = BoxLevel
|
||||||
.asm_f5b4
|
.findOTdest
|
||||||
ld a, [wMoveMonType]
|
ld a, [wMoveMonType]
|
||||||
cp PARTY_TO_DAYCARE
|
cp PARTY_TO_DAYCARE
|
||||||
ld de, wDayCareMonOT
|
ld de, wDayCareMonOT
|
||||||
jr z, .asm_f5d3
|
jr z, .findOTsrc
|
||||||
dec a
|
dec a
|
||||||
ld hl, wPartyMonOT
|
ld hl, wPartyMonOT
|
||||||
ld a, [wPartyCount]
|
ld a, [wPartyCount]
|
||||||
jr nz, .asm_f5cd
|
jr nz, .addOToffset
|
||||||
ld hl, wBoxMonOT
|
ld hl, wBoxMonOT
|
||||||
ld a, [wNumInBox]
|
ld a, [wNumInBox]
|
||||||
.asm_f5cd
|
.addOToffset
|
||||||
dec a
|
dec a
|
||||||
call SkipFixedLengthTextEntries
|
call SkipFixedLengthTextEntries
|
||||||
ld d, h
|
ld d, h
|
||||||
ld e, l
|
ld e, l
|
||||||
.asm_f5d3
|
.findOTsrc
|
||||||
ld hl, wBoxMonOT
|
ld hl, wBoxMonOT
|
||||||
ld a, [wMoveMonType]
|
ld a, [wMoveMonType]
|
||||||
and a
|
and a
|
||||||
jr z, .asm_f5e6
|
jr z, .addOToffset2
|
||||||
ld hl, wDayCareMonOT
|
ld hl, wDayCareMonOT
|
||||||
cp DAYCARE_TO_PARTY
|
cp DAYCARE_TO_PARTY
|
||||||
jr z, .asm_f5ec
|
jr z, .copyOT
|
||||||
ld hl, wPartyMonOT
|
ld hl, wPartyMonOT
|
||||||
.asm_f5e6
|
.addOToffset2
|
||||||
ld a, [wWhichPokemon]
|
ld a, [wWhichPokemon]
|
||||||
call SkipFixedLengthTextEntries
|
call SkipFixedLengthTextEntries
|
||||||
.asm_f5ec
|
.copyOT
|
||||||
ld bc, NAME_LENGTH
|
ld bc, NAME_LENGTH
|
||||||
call CopyData
|
call CopyData
|
||||||
ld a, [wMoveMonType]
|
ld a, [wMoveMonType]
|
||||||
|
.findNickDest
|
||||||
cp PARTY_TO_DAYCARE
|
cp PARTY_TO_DAYCARE
|
||||||
ld de, wDayCareMonName
|
ld de, wDayCareMonName
|
||||||
jr z, .asm_f611
|
jr z, .findNickSrc
|
||||||
dec a
|
dec a
|
||||||
ld hl, wPartyMonNicks
|
ld hl, wPartyMonNicks
|
||||||
ld a, [wPartyCount]
|
ld a, [wPartyCount]
|
||||||
jr nz, .asm_f60b
|
jr nz, .addNickOffset
|
||||||
ld hl, wBoxMonNicks
|
ld hl, wBoxMonNicks
|
||||||
ld a, [wNumInBox]
|
ld a, [wNumInBox]
|
||||||
.asm_f60b
|
.addNickOffset
|
||||||
dec a
|
dec a
|
||||||
call SkipFixedLengthTextEntries
|
call SkipFixedLengthTextEntries
|
||||||
ld d, h
|
ld d, h
|
||||||
ld e, l
|
ld e, l
|
||||||
.asm_f611
|
.findNickSrc
|
||||||
ld hl, wBoxMonNicks
|
ld hl, wBoxMonNicks
|
||||||
ld a, [wMoveMonType]
|
ld a, [wMoveMonType]
|
||||||
and a
|
and a
|
||||||
jr z, .asm_f624
|
jr z, .addNickOffset2
|
||||||
ld hl, wDayCareMonName
|
ld hl, wDayCareMonName
|
||||||
cp DAYCARE_TO_PARTY
|
cp DAYCARE_TO_PARTY
|
||||||
jr z, .asm_f62a
|
jr z, .copyNick
|
||||||
ld hl, wPartyMonNicks
|
ld hl, wPartyMonNicks
|
||||||
.asm_f624
|
.addNickOffset2
|
||||||
ld a, [wWhichPokemon]
|
ld a, [wWhichPokemon]
|
||||||
call SkipFixedLengthTextEntries
|
call SkipFixedLengthTextEntries
|
||||||
.asm_f62a
|
.copyNick
|
||||||
ld bc, NAME_LENGTH
|
ld bc, NAME_LENGTH
|
||||||
call CopyData
|
call CopyData
|
||||||
pop hl
|
pop hl
|
||||||
ld a, [wMoveMonType]
|
ld a, [wMoveMonType]
|
||||||
cp PARTY_TO_BOX
|
cp PARTY_TO_BOX
|
||||||
jr z, .asm_f664
|
jr z, .done
|
||||||
cp PARTY_TO_DAYCARE
|
cp PARTY_TO_DAYCARE
|
||||||
jr z, .asm_f664
|
jr z, .done
|
||||||
push hl
|
push hl
|
||||||
srl a
|
srl a
|
||||||
add $2
|
add $2
|
||||||
|
@ -507,6 +511,6 @@ _MoveMon:
|
||||||
add hl, bc
|
add hl, bc
|
||||||
ld b, $1
|
ld b, $1
|
||||||
call CalcStats
|
call CalcStats
|
||||||
.asm_f664
|
.done
|
||||||
and a
|
and a
|
||||||
ret
|
ret
|
||||||
|
|
146
engine/bcd.asm
146
engine/bcd.asm
|
@ -6,155 +6,157 @@ DivideBCDPredef4::
|
||||||
|
|
||||||
DivideBCD::
|
DivideBCD::
|
||||||
xor a
|
xor a
|
||||||
ld [$ffa5], a
|
ld [hDivideBCDBuffer], a
|
||||||
ld [$ffa6], a
|
ld [hDivideBCDBuffer+1], a
|
||||||
ld [$ffa7], a
|
ld [hDivideBCDBuffer+2], a
|
||||||
ld d, $1
|
ld d, $1
|
||||||
.asm_f72a
|
.mulBy10Loop
|
||||||
ld a, [$ffa2]
|
; multiply the divisor by 10 until the leading digit is nonzero
|
||||||
|
; to set up the standard long division algorithm
|
||||||
|
ld a, [hDivideBCDDivisor]
|
||||||
and $f0
|
and $f0
|
||||||
jr nz, .asm_f75b
|
jr nz, .next
|
||||||
inc d
|
inc d
|
||||||
ld a, [$ffa2]
|
ld a, [hDivideBCDDivisor]
|
||||||
swap a
|
swap a
|
||||||
and $f0
|
and $f0
|
||||||
ld b, a
|
ld b, a
|
||||||
ld a, [$ffa3]
|
ld a, [hDivideBCDDivisor+1]
|
||||||
swap a
|
swap a
|
||||||
ld [$ffa3], a
|
ld [hDivideBCDDivisor+1], a
|
||||||
and $f
|
and $f
|
||||||
or b
|
or b
|
||||||
ld [$ffa2], a
|
ld [hDivideBCDDivisor], a
|
||||||
ld a, [$ffa3]
|
ld a, [hDivideBCDDivisor+1]
|
||||||
and $f0
|
and $f0
|
||||||
ld b, a
|
ld b, a
|
||||||
ld a, [$ffa4]
|
ld a, [hDivideBCDDivisor+2]
|
||||||
swap a
|
swap a
|
||||||
ld [$ffa4], a
|
ld [hDivideBCDDivisor+2], a
|
||||||
and $f
|
and $f
|
||||||
or b
|
or b
|
||||||
ld [$ffa3], a
|
ld [hDivideBCDDivisor+1], a
|
||||||
ld a, [$ffa4]
|
ld a, [hDivideBCDDivisor+2]
|
||||||
and $f0
|
and $f0
|
||||||
ld [$ffa4], a
|
ld [hDivideBCDDivisor+2], a
|
||||||
jr .asm_f72a
|
jr .mulBy10Loop
|
||||||
.asm_f75b
|
.next
|
||||||
push de
|
push de
|
||||||
push de
|
push de
|
||||||
call DivideBCD_f800
|
call DivideBCD_getNextDigit
|
||||||
pop de
|
pop de
|
||||||
ld a, b
|
ld a, b
|
||||||
swap a
|
swap a
|
||||||
and $f0
|
and $f0
|
||||||
ld [$ffa5], a
|
ld [hDivideBCDBuffer], a
|
||||||
dec d
|
dec d
|
||||||
jr z, .asm_f7bc
|
jr z, .next2
|
||||||
push de
|
push de
|
||||||
call DivideBCD_f7d7
|
call DivideBCD_divDivisorBy10
|
||||||
call DivideBCD_f800
|
call DivideBCD_getNextDigit
|
||||||
pop de
|
pop de
|
||||||
ld a, [$ffa5]
|
ld a, [hDivideBCDBuffer]
|
||||||
or b
|
or b
|
||||||
ld [$ffa5], a
|
ld [hDivideBCDBuffer], a
|
||||||
dec d
|
dec d
|
||||||
jr z, .asm_f7bc
|
jr z, .next2
|
||||||
push de
|
push de
|
||||||
call DivideBCD_f7d7
|
call DivideBCD_divDivisorBy10
|
||||||
call DivideBCD_f800
|
call DivideBCD_getNextDigit
|
||||||
pop de
|
pop de
|
||||||
ld a, b
|
ld a, b
|
||||||
swap a
|
swap a
|
||||||
and $f0
|
and $f0
|
||||||
ld [$ffa6], a
|
ld [hDivideBCDBuffer+1], a
|
||||||
dec d
|
dec d
|
||||||
jr z, .asm_f7bc
|
jr z, .next2
|
||||||
push de
|
push de
|
||||||
call DivideBCD_f7d7
|
call DivideBCD_divDivisorBy10
|
||||||
call DivideBCD_f800
|
call DivideBCD_getNextDigit
|
||||||
pop de
|
pop de
|
||||||
ld a, [$ffa6]
|
ld a, [hDivideBCDBuffer+1]
|
||||||
or b
|
or b
|
||||||
ld [$ffa6], a
|
ld [hDivideBCDBuffer+1], a
|
||||||
dec d
|
dec d
|
||||||
jr z, .asm_f7bc
|
jr z, .next2
|
||||||
push de
|
push de
|
||||||
call DivideBCD_f7d7
|
call DivideBCD_divDivisorBy10
|
||||||
call DivideBCD_f800
|
call DivideBCD_getNextDigit
|
||||||
pop de
|
pop de
|
||||||
ld a, b
|
ld a, b
|
||||||
swap a
|
swap a
|
||||||
and $f0
|
and $f0
|
||||||
ld [$ffa7], a
|
ld [hDivideBCDBuffer+2], a
|
||||||
dec d
|
dec d
|
||||||
jr z, .asm_f7bc
|
jr z, .next2
|
||||||
push de
|
push de
|
||||||
call DivideBCD_f7d7
|
call DivideBCD_divDivisorBy10
|
||||||
call DivideBCD_f800
|
call DivideBCD_getNextDigit
|
||||||
pop de
|
pop de
|
||||||
ld a, [$ffa7]
|
ld a, [hDivideBCDBuffer+2]
|
||||||
or b
|
or b
|
||||||
ld [$ffa7], a
|
ld [hDivideBCDBuffer+2], a
|
||||||
.asm_f7bc
|
.next2
|
||||||
ld a, [$ffa5]
|
ld a, [hDivideBCDBuffer]
|
||||||
ld [$ffa2], a
|
ld [hDivideBCDQuotient], a ; the same memory location as hDivideBCDDivisor
|
||||||
ld a, [$ffa6]
|
ld a, [hDivideBCDBuffer+1]
|
||||||
ld [$ffa3], a
|
ld [hDivideBCDQuotient+1], a
|
||||||
ld a, [$ffa7]
|
ld a, [hDivideBCDBuffer+2]
|
||||||
ld [$ffa4], a
|
ld [hDivideBCDQuotient+2], a
|
||||||
pop de
|
pop de
|
||||||
ld a, $6
|
ld a, $6
|
||||||
sub d
|
sub d
|
||||||
and a
|
and a
|
||||||
ret z
|
ret z
|
||||||
.asm_f7ce
|
.divResultBy10loop
|
||||||
push af
|
push af
|
||||||
call DivideBCD_f7d7
|
call DivideBCD_divDivisorBy10
|
||||||
pop af
|
pop af
|
||||||
dec a
|
dec a
|
||||||
jr nz, .asm_f7ce
|
jr nz, .divResultBy10loop
|
||||||
ret
|
ret
|
||||||
|
|
||||||
DivideBCD_f7d7:
|
DivideBCD_divDivisorBy10:
|
||||||
ld a, [$ffa4]
|
ld a, [hDivideBCDDivisor+2]
|
||||||
swap a
|
swap a
|
||||||
and $f
|
and $f
|
||||||
ld b, a
|
ld b, a
|
||||||
ld a, [$ffa3]
|
ld a, [hDivideBCDDivisor+1]
|
||||||
swap a
|
swap a
|
||||||
ld [$ffa3], a
|
ld [hDivideBCDDivisor+1], a
|
||||||
and $f0
|
and $f0
|
||||||
or b
|
or b
|
||||||
ld [$ffa4], a
|
ld [hDivideBCDDivisor+2], a
|
||||||
ld a, [$ffa3]
|
ld a, [hDivideBCDDivisor+1]
|
||||||
and $f
|
and $f
|
||||||
ld b, a
|
ld b, a
|
||||||
ld a, [$ffa2]
|
ld a, [hDivideBCDDivisor]
|
||||||
swap a
|
swap a
|
||||||
ld [$ffa2], a
|
ld [hDivideBCDDivisor], a
|
||||||
and $f0
|
and $f0
|
||||||
or b
|
or b
|
||||||
ld [$ffa3], a
|
ld [hDivideBCDDivisor+1], a
|
||||||
ld a, [$ffa2]
|
ld a, [hDivideBCDDivisor]
|
||||||
and $f
|
and $f
|
||||||
ld [$ffa2], a
|
ld [hDivideBCDDivisor], a
|
||||||
ret
|
ret
|
||||||
|
|
||||||
DivideBCD_f800:
|
DivideBCD_getNextDigit:
|
||||||
ld bc, $3
|
ld bc, $3
|
||||||
.asm_f803
|
.loop
|
||||||
ld de, $ff9f
|
ld de, hMoney ; the dividend
|
||||||
ld hl, $ffa2
|
ld hl, hDivideBCDDivisor
|
||||||
push bc
|
push bc
|
||||||
call StringCmp
|
call StringCmp
|
||||||
pop bc
|
pop bc
|
||||||
ret c
|
ret c
|
||||||
inc b
|
inc b
|
||||||
ld de, $ffa1
|
ld de, hMoney+2 ; since SubBCD works starting from the least significant digit
|
||||||
ld hl, $ffa4
|
ld hl, hDivideBCDDivisor+2
|
||||||
push bc
|
push bc
|
||||||
call SubBCD
|
call SubBCD
|
||||||
pop bc
|
pop bc
|
||||||
jr .asm_f803
|
jr .loop
|
||||||
|
|
||||||
|
|
||||||
AddBCDPredef::
|
AddBCDPredef::
|
||||||
|
|
1
hram.asm
1
hram.asm
|
@ -155,6 +155,7 @@ hCoins EQU $FFA0 ; 2-byte BCD number
|
||||||
|
|
||||||
hDivideBCDDivisor EQU $FFA2 ; 3-byte BCD number
|
hDivideBCDDivisor EQU $FFA2 ; 3-byte BCD number
|
||||||
hDivideBCDQuotient EQU $FFA2 ; 3-byte BCD number
|
hDivideBCDQuotient EQU $FFA2 ; 3-byte BCD number
|
||||||
|
hDivideBCDBuffer EQU $FFA5 ; 3-byte BCD number
|
||||||
|
|
||||||
hSerialReceivedNewData EQU $FFA9
|
hSerialReceivedNewData EQU $FFA9
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue