mirror of
https://github.com/thornAvery/jep-hack.git
synced 2026-02-08 00:55:28 +13:00
First Commit
Upload literally everything from the pokecrystal16 expand-move-ID branch
This commit is contained in:
commit
2f8a41f833
4618 changed files with 480386 additions and 0 deletions
209
engine/events/money.asm
Normal file
209
engine/events/money.asm
Normal file
|
|
@ -0,0 +1,209 @@
|
|||
GiveMoney::
|
||||
ld a, 3
|
||||
call AddMoney
|
||||
ld bc, MaxMoney
|
||||
ld a, 3
|
||||
call CompareMoney
|
||||
jr z, .not_maxed_out
|
||||
jr c, .not_maxed_out
|
||||
ld hl, MaxMoney
|
||||
ld a, [hli]
|
||||
ld [de], a
|
||||
inc de
|
||||
ld a, [hli]
|
||||
ld [de], a
|
||||
inc de
|
||||
ld a, [hli]
|
||||
ld [de], a
|
||||
scf
|
||||
ret
|
||||
|
||||
.not_maxed_out
|
||||
and a
|
||||
ret
|
||||
|
||||
MaxMoney:
|
||||
dt MAX_MONEY
|
||||
|
||||
TakeMoney::
|
||||
ld a, 3
|
||||
call SubtractMoney
|
||||
jr nc, .okay
|
||||
; leave with 0 money
|
||||
xor a
|
||||
ld [de], a
|
||||
inc de
|
||||
ld [de], a
|
||||
inc de
|
||||
ld [de], a
|
||||
scf
|
||||
ret
|
||||
|
||||
.okay
|
||||
and a
|
||||
ret
|
||||
|
||||
CompareMoney::
|
||||
ld a, 3
|
||||
CompareFunds:
|
||||
; a: number of bytes
|
||||
; bc: start addr of amount (big-endian)
|
||||
; de: start addr of account (big-endian)
|
||||
push hl
|
||||
push de
|
||||
push bc
|
||||
ld h, b
|
||||
ld l, c
|
||||
ld c, 0
|
||||
ld b, a
|
||||
.loop1
|
||||
dec a
|
||||
jr z, .done
|
||||
inc de
|
||||
inc hl
|
||||
jr .loop1
|
||||
|
||||
.done
|
||||
and a
|
||||
.loop2
|
||||
ld a, [de]
|
||||
sbc [hl]
|
||||
jr z, .okay
|
||||
inc c
|
||||
|
||||
.okay
|
||||
dec de
|
||||
dec hl
|
||||
dec b
|
||||
jr nz, .loop2
|
||||
jr c, .set_carry
|
||||
ld a, c
|
||||
and a
|
||||
jr .skip_carry
|
||||
|
||||
.set_carry
|
||||
ld a, 1
|
||||
and a
|
||||
scf
|
||||
.skip_carry
|
||||
pop bc
|
||||
pop de
|
||||
pop hl
|
||||
ret
|
||||
|
||||
SubtractMoney:
|
||||
ld a, 3
|
||||
SubtractFunds:
|
||||
; a: number of bytes
|
||||
; bc: start addr of amount (big-endian)
|
||||
; de: start addr of account (big-endian)
|
||||
push hl
|
||||
push de
|
||||
push bc
|
||||
ld h, b
|
||||
ld l, c
|
||||
ld b, a
|
||||
ld c, 0
|
||||
.loop
|
||||
dec a
|
||||
jr z, .done
|
||||
inc de
|
||||
inc hl
|
||||
jr .loop
|
||||
|
||||
.done
|
||||
and a
|
||||
.loop2
|
||||
ld a, [de]
|
||||
sbc [hl]
|
||||
ld [de], a
|
||||
dec de
|
||||
dec hl
|
||||
dec b
|
||||
jr nz, .loop2
|
||||
pop bc
|
||||
pop de
|
||||
pop hl
|
||||
ret
|
||||
|
||||
AddMoney:
|
||||
ld a, 3
|
||||
AddFunds:
|
||||
; a: number of bytes
|
||||
; bc: start addr of amount (big-endian)
|
||||
; de: start addr of account (big-endian)
|
||||
push hl
|
||||
push de
|
||||
push bc
|
||||
|
||||
ld h, b
|
||||
ld l, c
|
||||
ld b, a
|
||||
.loop1
|
||||
dec a
|
||||
jr z, .done
|
||||
inc de
|
||||
inc hl
|
||||
jr .loop1
|
||||
|
||||
.done
|
||||
and a
|
||||
.loop2
|
||||
ld a, [de]
|
||||
adc [hl]
|
||||
ld [de], a
|
||||
dec de
|
||||
dec hl
|
||||
dec b
|
||||
jr nz, .loop2
|
||||
|
||||
pop bc
|
||||
pop de
|
||||
pop hl
|
||||
ret
|
||||
|
||||
GiveCoins::
|
||||
ld a, 2
|
||||
ld de, wCoins
|
||||
call AddFunds
|
||||
ld a, 2
|
||||
ld bc, .maxcoins
|
||||
call CompareFunds
|
||||
jr c, .not_maxed
|
||||
ld hl, .maxcoins
|
||||
ld a, [hli]
|
||||
ld [de], a
|
||||
inc de
|
||||
ld a, [hli]
|
||||
ld [de], a
|
||||
scf
|
||||
ret
|
||||
|
||||
.not_maxed
|
||||
and a
|
||||
ret
|
||||
|
||||
.maxcoins
|
||||
bigdw MAX_COINS
|
||||
|
||||
TakeCoins::
|
||||
ld a, 2
|
||||
ld de, wCoins
|
||||
call SubtractFunds
|
||||
jr nc, .okay
|
||||
; leave with 0 coins
|
||||
xor a
|
||||
ld [de], a
|
||||
inc de
|
||||
ld [de], a
|
||||
scf
|
||||
ret
|
||||
|
||||
.okay
|
||||
and a
|
||||
ret
|
||||
|
||||
CheckCoins::
|
||||
ld a, 2
|
||||
ld de, wCoins
|
||||
jp CompareFunds
|
||||
Loading…
Add table
Add a link
Reference in a new issue