money / coins hram constants

This commit is contained in:
YamaArashi 2015-07-17 01:21:40 -07:00
parent aa3da5f3b0
commit 6931ce9625
13 changed files with 95 additions and 89 deletions

View file

@ -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)

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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