diff options
Diffstat (limited to 'engine/money.asm')
-rwxr-xr-x | engine/money.asm | 221 |
1 files changed, 0 insertions, 221 deletions
diff --git a/engine/money.asm b/engine/money.asm deleted file mode 100755 index 585c85618..000000000 --- a/engine/money.asm +++ /dev/null @@ -1,221 +0,0 @@ -GiveMoney:: ; 15fd7 - 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 -; 15ff7 - -MaxMoney: ; 15ff7 - dt MAX_MONEY -; 15ffa - - -TakeMoney:: ; 15ffa - 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 -; 1600b - -CompareMoney:: ; 1600b - ld a, 3 -CompareFunds: ; 1600d -; 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 -; 16035 - -SubtractMoney: ; 16035 - ld a, 3 -SubtractFunds: ; 16037 -; 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 -; 16053 - -AddMoney: ; 16053 - ld a, 3 -AddFunds: ; 16055 -; 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 -; 1606f - -GiveCoins:: ; 1606f - 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 -; 1608d - -.maxcoins ; 1608d - bigdw MAX_COINS -; 1608f - - -TakeCoins:: ; 1608f - 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 -; 160a1 - -CheckCoins:: ; 160a1 - ld a, 2 - ld de, wCoins - jp CompareFunds -; 160a9 |