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