mirror of
https://github.com/pret/pokered.git
synced 2024-10-22 22:55:31 +00:00
money / coins hram constants
This commit is contained in:
parent
aa3da5f3b0
commit
6931ce9625
13 changed files with 95 additions and 89 deletions
|
@ -179,11 +179,11 @@ LoadCoinsToSubtract: ; 528b1 (14:68b1)
|
|||
ld hl,wd141 ; first prize's price
|
||||
add hl,de ; get selected prize's price
|
||||
xor a
|
||||
ld [$FF9F],a
|
||||
ld [hCoins - 1],a
|
||||
ld a,[hli]
|
||||
ld [$FFA0],a
|
||||
ld [hCoins],a
|
||||
ld a,[hl]
|
||||
ld [$FFA1],a
|
||||
ld [hCoins + 1],a
|
||||
ret
|
||||
|
||||
HandlePrizeChoice: ; 528c6 (14:68c6)
|
||||
|
@ -239,7 +239,7 @@ HandlePrizeChoice: ; 528c6 (14:68c6)
|
|||
ret nc
|
||||
.SubtractCoins
|
||||
call LoadCoinsToSubtract
|
||||
ld hl,$FFA1
|
||||
ld hl,hCoins + 1
|
||||
ld de,wPlayerCoins + 1
|
||||
ld c,$02 ; how many bytes
|
||||
predef SubBCDPredef ; subtract coins (BCD daa operations)
|
||||
|
|
|
@ -37,10 +37,10 @@ VendingMachineMenu: ; 74ee0 (1d:4ee0)
|
|||
cp 3 ; chose Cancel?
|
||||
jr z, .notThirsty
|
||||
xor a
|
||||
ld [$ff9f], a
|
||||
ld [$ffa1], a
|
||||
ld [hMoney], a
|
||||
ld [hMoney + 2], a
|
||||
ld a, $2
|
||||
ld [$ffa0], a
|
||||
ld [hMoney + 1], a
|
||||
call HasEnoughMoney
|
||||
jr nc, .enoughMoney
|
||||
ld hl, VendingMachineText4
|
||||
|
|
|
@ -67,9 +67,9 @@ HiddenCoins: ; 76799 (1d:6799)
|
|||
and a
|
||||
ret nz
|
||||
xor a
|
||||
ld [$ff9f], a
|
||||
ld [$ffa0], a
|
||||
ld [$ffa1], a
|
||||
ld [hCoins - 1], a
|
||||
ld [hCoins], a
|
||||
ld [hCoins + 1], a
|
||||
ld a, [wWhichTrade]
|
||||
sub COIN
|
||||
cp 10
|
||||
|
@ -81,22 +81,22 @@ HiddenCoins: ; 76799 (1d:6799)
|
|||
jr .bcd100
|
||||
.bcd10
|
||||
ld a, $10
|
||||
ld [$ffa1], a
|
||||
ld [hCoins + 1], a
|
||||
jr .bcddone
|
||||
.bcd20
|
||||
ld a, $20
|
||||
ld [$ffa1], a
|
||||
ld [hCoins + 1], a
|
||||
jr .bcddone
|
||||
.bcd40 ; due to a typo, this is never used
|
||||
ld a, $40
|
||||
ld [$ffa1], a
|
||||
ld [hCoins + 1], a
|
||||
jr .bcddone
|
||||
.bcd100
|
||||
ld a, $1
|
||||
ld [$ffa0], a
|
||||
ld [hCoins], a
|
||||
.bcddone
|
||||
ld de, wPlayerCoins + 1
|
||||
ld hl, $ffa1
|
||||
ld hl, hCoins + 1
|
||||
ld c, $2
|
||||
predef AddBCDPredef
|
||||
ld hl, wd6fe
|
||||
|
|
|
@ -206,7 +206,7 @@ DisplayPokemartDialogue_: ; 6c20 (1:6c20)
|
|||
jp .loop
|
||||
.isThereEnoughMoney
|
||||
ld de,wPlayerMoney
|
||||
ld hl,$ff9f ; item price
|
||||
ld hl,hMoney
|
||||
ld c,3 ; length of money in bytes
|
||||
jp StringCmp
|
||||
.notEnoughMoney
|
||||
|
|
34
home.asm
34
home.asm
|
@ -1630,15 +1630,15 @@ DisplayChooseQuantityMenu:: ; 2d57 (0:2d57)
|
|||
ld c,$03
|
||||
ld a,[wItemQuantity]
|
||||
ld b,a
|
||||
ld hl,$ff9f ; total price
|
||||
ld hl,hMoney ; total price
|
||||
; initialize total price to 0
|
||||
xor a
|
||||
ld [hli],a
|
||||
ld [hli],a
|
||||
ld [hl],a
|
||||
.addLoop ; loop to multiply the individual price by the quantity to get the total price
|
||||
ld de,$ffa1
|
||||
ld hl,$ff8d
|
||||
ld de,hMoney + 2
|
||||
ld hl,hItemPrice + 2
|
||||
push bc
|
||||
predef AddBCDPredef ; add the individual price to the current sum
|
||||
pop bc
|
||||
|
@ -1648,23 +1648,23 @@ DisplayChooseQuantityMenu:: ; 2d57 (0:2d57)
|
|||
and a ; should the price be halved (for selling items)?
|
||||
jr z,.skipHalvingPrice
|
||||
xor a
|
||||
ld [$ffa2],a
|
||||
ld [$ffa3],a
|
||||
ld [hDivideBCDDivisor],a
|
||||
ld [hDivideBCDDivisor + 1],a
|
||||
ld a,$02
|
||||
ld [$ffa4],a
|
||||
ld [hDivideBCDDivisor + 2],a
|
||||
predef DivideBCDPredef3 ; halves the price
|
||||
; store the halved price
|
||||
ld a,[$ffa2]
|
||||
ld [$ff9f],a
|
||||
ld a,[$ffa3]
|
||||
ld [$ffa0],a
|
||||
ld a,[$ffa4]
|
||||
ld [$ffa1],a
|
||||
ld a,[hDivideBCDQuotient]
|
||||
ld [hMoney],a
|
||||
ld a,[hDivideBCDQuotient + 1]
|
||||
ld [hMoney + 1],a
|
||||
ld a,[hDivideBCDQuotient + 2]
|
||||
ld [hMoney + 2],a
|
||||
.skipHalvingPrice
|
||||
hlCoord 12, 10
|
||||
ld de,SpacesBetweenQuantityAndPriceText
|
||||
call PlaceString
|
||||
ld de,$ff9f ; total price
|
||||
ld de,hMoney ; total price
|
||||
ld c,$a3
|
||||
call PrintBCDNumber
|
||||
hlCoord 9, 10
|
||||
|
@ -2942,17 +2942,17 @@ GetTrainerName:: ; 359e (0:359e)
|
|||
|
||||
HasEnoughMoney::
|
||||
; Check if the player has at least as much
|
||||
; money as the 3-byte BCD value at $ff9f.
|
||||
; money as the 3-byte BCD value at hMoney.
|
||||
ld de, wPlayerMoney
|
||||
ld hl, $ff9f
|
||||
ld hl, hMoney
|
||||
ld c, 3
|
||||
jp StringCmp
|
||||
|
||||
HasEnoughCoins::
|
||||
; Check if the player has at least as many
|
||||
; coins as the 2-byte BCD value at $ffa0.
|
||||
; coins as the 2-byte BCD value at hCoins.
|
||||
ld de, wPlayerCoins
|
||||
ld hl, $ffa0
|
||||
ld hl, hCoins
|
||||
ld c, 2
|
||||
jp StringCmp
|
||||
|
||||
|
|
6
hram.asm
6
hram.asm
|
@ -92,6 +92,12 @@ hNPCPlayerRelativePosPerspective EQU $FF9B
|
|||
; 1 = target is to the west
|
||||
hNPCPlayerRelativePosFlags EQU $FF9D
|
||||
|
||||
hMoney EQU $FF9F ; 3-byte BCD number
|
||||
hCoins EQU $FFA0 ; 2-byte BCD number
|
||||
|
||||
hDivideBCDDivisor EQU $FFA2 ; 3-byte BCD number
|
||||
hDivideBCDQuotient EQU $FFA2 ; 3-byte BCD number
|
||||
|
||||
hSerialReceivedNewData EQU $FFA9
|
||||
|
||||
; $01 = using external clock
|
||||
|
|
28
main.asm
28
main.asm
|
@ -31,30 +31,30 @@ ResetStatusAndHalveMoneyOnBlackout::
|
|||
ld [wNPCMovementScriptPointerTableNum], a
|
||||
ld [wFlags_0xcd60], a
|
||||
|
||||
ld [$ff9f], a
|
||||
ld [$ff9f + 1], a
|
||||
ld [$ff9f + 2], a
|
||||
ld [hMoney], a
|
||||
ld [hMoney + 1], a
|
||||
ld [hMoney + 2], a
|
||||
call HasEnoughMoney
|
||||
jr c, .lostmoney ; never happens
|
||||
|
||||
; Halve the player's money.
|
||||
ld a, [wPlayerMoney]
|
||||
ld [$ff9f], a
|
||||
ld [hMoney], a
|
||||
ld a, [wPlayerMoney + 1]
|
||||
ld [$ff9f + 1], a
|
||||
ld [hMoney + 1], a
|
||||
ld a, [wPlayerMoney + 2]
|
||||
ld [$ff9f + 2], a
|
||||
ld [hMoney + 2], a
|
||||
xor a
|
||||
ld [$ffa2], a
|
||||
ld [$ffa3], a
|
||||
ld [hDivideBCDDivisor], a
|
||||
ld [hDivideBCDDivisor + 1], a
|
||||
ld a, 2
|
||||
ld [$ffa4], a
|
||||
ld [hDivideBCDDivisor + 2], a
|
||||
predef DivideBCDPredef3
|
||||
ld a, [$ffa2]
|
||||
ld a, [hDivideBCDQuotient]
|
||||
ld [wPlayerMoney], a
|
||||
ld a, [$ffa2 + 1]
|
||||
ld a, [hDivideBCDQuotient + 1]
|
||||
ld [wPlayerMoney + 1], a
|
||||
ld a, [$ffa2 + 2]
|
||||
ld a, [hDivideBCDQuotient + 2]
|
||||
ld [wPlayerMoney + 2], a
|
||||
|
||||
.lostmoney
|
||||
|
@ -789,12 +789,12 @@ INCLUDE "engine/oak_speech2.asm"
|
|||
; sets carry flag if there is enough money and unsets carry flag if not
|
||||
SubtractAmountPaidFromMoney_: ; 6b21 (1:6b21)
|
||||
ld de,wPlayerMoney
|
||||
ld hl,$ff9f ; total price of items
|
||||
ld hl,hMoney ; total price of items
|
||||
ld c,3 ; length of money in bytes
|
||||
call StringCmp
|
||||
ret c
|
||||
ld de,wPlayerMoney + 2
|
||||
ld hl,$ffa1 ; total price of items
|
||||
ld hl,hMoney + 2 ; total price of items
|
||||
ld c,3 ; length of money in bytes
|
||||
predef SubBCDPredef ; subtract total price from money
|
||||
ld a,MONEY_BOX
|
||||
|
|
|
@ -151,31 +151,31 @@ CeladonGameCornerText2: ; 48ca9 (12:4ca9)
|
|||
call Has9990Coins
|
||||
jr nc, .asm_48d14
|
||||
xor a
|
||||
ld [$ff9f], a
|
||||
ld [$ffa1], a
|
||||
ld [hMoney], a
|
||||
ld [hMoney + 2], a
|
||||
ld a, $10
|
||||
ld [$ffa0], a
|
||||
ld [hMoney + 1], a
|
||||
call HasEnoughMoney
|
||||
jr nc, .asm_48cdb
|
||||
ld hl, CeladonGameCornerText_48d31
|
||||
jr .asm_48d1c
|
||||
.asm_48cdb
|
||||
xor a
|
||||
ld [$ff9f], a
|
||||
ld [$ffa1], a
|
||||
ld [hMoney], a
|
||||
ld [hMoney + 2], a
|
||||
ld a, $10
|
||||
ld [$ffa0], a
|
||||
ld hl, $ffa1
|
||||
ld [hMoney + 1], a
|
||||
ld hl, hMoney + 2
|
||||
ld de, wPlayerMoney + 2
|
||||
ld c, $3
|
||||
predef SubBCDPredef
|
||||
xor a
|
||||
ld [$ff9f], a
|
||||
ld [$ffa0], a
|
||||
ld [hCoins - 1], a
|
||||
ld [hCoins], a
|
||||
ld a, $50
|
||||
ld [$ffa1], a
|
||||
ld [hCoins + 1], a
|
||||
ld de, wPlayerCoins + 1
|
||||
ld hl, $ffa1
|
||||
ld hl, hCoins + 1
|
||||
ld c, $2
|
||||
predef AddBCDPredef
|
||||
call CeladonGameCornerScript_48f1e
|
||||
|
@ -238,12 +238,12 @@ CeladonGameCornerText5: ; 48d4a (12:4d4a)
|
|||
call Has9990Coins
|
||||
jr nc, .asm_48d8e
|
||||
xor a
|
||||
ld [$ff9f], a
|
||||
ld [$ffa0], a
|
||||
ld [hCoins - 1], a
|
||||
ld [hCoins], a
|
||||
ld a, $10
|
||||
ld [$ffa1], a
|
||||
ld [hCoins + 1], a
|
||||
ld de, wPlayerCoins + 1
|
||||
ld hl, $ffa1
|
||||
ld hl, hCoins + 1
|
||||
ld c, $2
|
||||
predef AddBCDPredef
|
||||
ld hl, wd77e
|
||||
|
@ -320,12 +320,12 @@ CeladonGameCornerText9: ; 48dd9 (12:4dd9)
|
|||
call Has9990Coins
|
||||
jr nc, .asm_48e18
|
||||
xor a
|
||||
ld [$ff9f], a
|
||||
ld [$ffa0], a
|
||||
ld [hCoins - 1], a
|
||||
ld [hCoins], a
|
||||
ld a, $20
|
||||
ld [$ffa1], a
|
||||
ld [hCoins + 1], a
|
||||
ld de, wPlayerCoins + 1
|
||||
ld hl, $ffa1
|
||||
ld hl, hCoins + 1
|
||||
ld c, $2
|
||||
predef AddBCDPredef
|
||||
ld hl, wd77e
|
||||
|
@ -373,12 +373,12 @@ CeladonGameCornerText10: ; 48e3b (12:4e3b)
|
|||
call Has9990Coins
|
||||
jr z, .asm_48e7a
|
||||
xor a
|
||||
ld [$ff9f], a
|
||||
ld [$ffa0], a
|
||||
ld [hCoins - 1], a
|
||||
ld [hCoins], a
|
||||
ld a, $20
|
||||
ld [$ffa1], a
|
||||
ld [hCoins + 1], a
|
||||
ld de, wPlayerCoins + 1
|
||||
ld hl, $ffa1
|
||||
ld hl, hCoins + 1
|
||||
ld c, $2
|
||||
predef AddBCDPredef
|
||||
ld hl, wd77e
|
||||
|
@ -527,7 +527,7 @@ GameCornerBlankText2: ; 48f8d (12:4f8d)
|
|||
|
||||
Has9990Coins: ; 48f95 (12:4f95)
|
||||
ld a, $99
|
||||
ld [$ffa0], a
|
||||
ld [hCoins], a
|
||||
ld a, $90
|
||||
ld [$ffa1], a
|
||||
ld [hCoins + 1], a
|
||||
jp HasEnoughCoins
|
||||
|
|
|
@ -137,11 +137,11 @@ DayCareMScript_562e1: ; 562e1 (15:62e1)
|
|||
and a
|
||||
jp nz, .asm_56403
|
||||
ld hl, wTrainerFacingDirection
|
||||
ld [$ff9f], a
|
||||
ld [hMoney], a
|
||||
ld a, [hli]
|
||||
ld [$ffa0], a
|
||||
ld [hMoney + 1], a
|
||||
ld a, [hl]
|
||||
ld [$ffa1], a
|
||||
ld [hMoney + 2], a
|
||||
call HasEnoughMoney
|
||||
jr nc, .asm_56396
|
||||
ld hl, DayCareMText_56454
|
||||
|
|
|
@ -35,10 +35,10 @@ MtMoonPokecenterText4: ; 492ec (12:52ec)
|
|||
ld a, [wCurrentMenuItem]
|
||||
and a
|
||||
jp nz, .asm_4934e
|
||||
ld [$ff9f], a
|
||||
ld [$ffa1], a
|
||||
ld [hMoney], a
|
||||
ld [hMoney + 2], a
|
||||
ld a, $5
|
||||
ld [$ffa0], a
|
||||
ld [hMoney + 1], a
|
||||
call HasEnoughMoney
|
||||
jr nc, .asm_faa09
|
||||
ld hl, MtMoonPokecenterText_49366
|
||||
|
|
|
@ -81,10 +81,10 @@ Museum1FText1: ; 5c135 (17:4135)
|
|||
and a
|
||||
jr nz, .asm_de133
|
||||
xor a
|
||||
ld [$ff9f], a
|
||||
ld [$ffa0], a
|
||||
ld [hMoney], a
|
||||
ld [hMoney + 1], a
|
||||
ld a, $50
|
||||
ld [$ffa1], a
|
||||
ld [hMoney + 2], a
|
||||
call HasEnoughMoney
|
||||
jr nc, .asm_0f3e3
|
||||
ld hl, Museum1FText_5c229
|
||||
|
|
|
@ -155,11 +155,11 @@ SafariZoneEntranceTextPointers: ; 752b9 (1d:52b9)
|
|||
and a
|
||||
jp nz,.PleaseComeAgain
|
||||
xor a
|
||||
ld [$ff9f],a
|
||||
ld [hMoney],a
|
||||
ld a,$05
|
||||
ld [$ffa0],a
|
||||
ld [hMoney + 1],a
|
||||
ld a,$00
|
||||
ld [$ffa1],a
|
||||
ld [hMoney + 2],a
|
||||
call HasEnoughMoney
|
||||
jr nc,.success
|
||||
ld hl,.NotEnoughMoneyText
|
||||
|
|
10
text.asm
10
text.asm
|
@ -15,7 +15,7 @@ POKEDEX_TEXT EQU $2b
|
|||
MOVE_NAMES EQU $2c
|
||||
|
||||
INCLUDE "macros.asm"
|
||||
|
||||
INCLUDE "hram.asm"
|
||||
|
||||
|
||||
SECTION "Text 1", ROMX, BANK[TEXT_1]
|
||||
|
@ -1015,13 +1015,13 @@ _HiddenItemBagFullText:: ; 894e1 (22:54e1)
|
|||
_FoundHiddenCoinsText:: ; 8950b (22:550b)
|
||||
text $52, " found"
|
||||
line "@"
|
||||
TX_BCD $ffa0, $c2
|
||||
TX_BCD hCoins, $c2
|
||||
text " coins!@@"
|
||||
|
||||
_FoundHiddenCoins2Text:: ; 89523 (22:5523)
|
||||
text $52, " found"
|
||||
line "@"
|
||||
TX_BCD $ffa0, $c2
|
||||
TX_BCD hCoins, $c2
|
||||
text " coins!@@"
|
||||
|
||||
_DroppedHiddenCoinsText:: ; 8953b (22:553b)
|
||||
|
@ -2635,7 +2635,7 @@ _PokemartTellBuyPriceText:: ; a2619 (28:6619)
|
|||
text "?"
|
||||
line "That will be"
|
||||
cont "¥@"
|
||||
TX_BCD $ff9f, $c3
|
||||
TX_BCD hMoney, $c3
|
||||
text ". OK?"
|
||||
done
|
||||
|
||||
|
@ -2662,7 +2662,7 @@ _PokemonSellingGreetingText:: ; a2690 (28:6690)
|
|||
_PokemartTellSellPriceText:: ; a26ae (28:66ae)
|
||||
text "I can pay you"
|
||||
line "¥@"
|
||||
TX_BCD $ff9f, $c3
|
||||
TX_BCD hMoney, $c3
|
||||
text " for that."
|
||||
done
|
||||
|
||||
|
|
Loading…
Reference in a new issue