diff options
| -rwxr-xr-x | data/item_prices.asm | 194 | ||||
| -rwxr-xr-x | data/prizes.asm | 31 | ||||
| -rwxr-xr-x | data/tm_prices.asm | 30 | ||||
| -rwxr-xr-x | engine/battle/e.asm | 94 | ||||
| -rwxr-xr-x | engine/items/tm_prices.asm | 11 | ||||
| -rwxr-xr-x | engine/menu/prize_menu.asm | 2 | ||||
| -rw-r--r-- | home.asm | 8 | ||||
| -rw-r--r-- | macros.asm | 14 | 
8 files changed, 213 insertions, 171 deletions
| diff --git a/data/item_prices.asm b/data/item_prices.asm index 45537ded..f6882fd0 100755 --- a/data/item_prices.asm +++ b/data/item_prices.asm @@ -1,98 +1,98 @@  ItemPrices: ; 4608 (1:4608) -	db $00,$00,$00 -	db $00,$12,$00 -	db $00,$06,$00 -	db $00,$02,$00 -	db $00,$00,$00 -	db $00,$00,$00 -	db $00,$00,$00 -	db $00,$10,$00 -	db $00,$00,$00 -	db $00,$00,$00 -	db $00,$01,$00 -	db $00,$02,$50 -	db $00,$02,$50 -	db $00,$02,$00 -	db $00,$02,$00 -	db $00,$30,$00 -	db $00,$25,$00 -	db $00,$15,$00 -	db $00,$07,$00 -	db $00,$03,$00 -	db $00,$00,$00 -	db $00,$00,$00 -	db $00,$00,$00 -	db $00,$00,$00 -	db $00,$00,$00 -	db $00,$00,$00 -	db $00,$00,$00 -	db $00,$00,$00 -	db $00,$05,$50 -	db $00,$03,$50 -	db $00,$00,$00 -	db $00,$21,$00 -	db $00,$21,$00 -	db $00,$21,$00 -	db $00,$98,$00 -	db $00,$98,$00 -	db $00,$98,$00 -	db $00,$98,$00 -	db $00,$98,$00 -	db $00,$48,$00 -	db $00,$00,$00 -	db $00,$00,$00 -	db $00,$00,$00 -	db $00,$00,$00 -	db $00,$00,$00 -	db $00,$09,$50 -	db $00,$21,$00 -	db $00,$00,$00 -	db $01,$00,$00 -	db $00,$98,$00 -	db $00,$10,$00 -	db $00,$06,$00 -	db $00,$15,$00 -	db $00,$40,$00 -	db $00,$07,$00 -	db $00,$05,$00 -	db $00,$07,$00 -	db $00,$06,$50 -	db $00,$00,$10 -	db $00,$02,$00 -	db $00,$03,$00 -	db $00,$03,$50 -	db $00,$00,$00 -	db $00,$00,$00 -	db $00,$05,$00 -	db $00,$05,$50 -	db $00,$03,$50 -	db $00,$03,$50 -	db $00,$00,$00 -	db $00,$00,$00 -	db $00,$00,$00 -	db $00,$00,$00 -	db $00,$00,$00 -	db $00,$00,$00 -	db $00,$00,$00 -	db $00,$00,$00 -	db $00,$00,$00 -	db $00,$00,$00 -	db $00,$00,$00 -	db $00,$00,$00 -	db $00,$00,$00 -	db $00,$00,$00 -	db $00,$00,$00 -	db $00,$00,$00 -	db $00,$00,$00 -	db $00,$00,$00 -	db $00,$00,$00 -	db $00,$00,$00 -	db $00,$00,$00 -	db $00,$00,$00 -	db $00,$00,$00 -	db $00,$00,$00 -	db $00,$00,$00 -	db $00,$00,$00 -	db $00,$00,$00 -	db $00,$00,$00 -	db $00,$00,$00 +	money 0     ; MASTER_BALL +	money 1200  ; ULTRA_BALL +	money 600   ; GREAT_BALL +	money 200   ; POKE_BALL +	money 0     ; TOWN_MAP +	money 0     ; BICYCLE +	money 0     ; SURFBOARD +	money 1000  ; SAFARI_BALL +	money 0     ; POKEDEX +	money 0     ; MOON_STONE +	money 100   ; ANTIDOTE +	money 250   ; BURN_HEAL +	money 250   ; ICE_HEAL +	money 200   ; AWAKENING +	money 200   ; PARLYZ_HEAL +	money 3000  ; FULL_RESTORE +	money 2500  ; MAX_POTION +	money 1500  ; HYPER_POTION +	money 700   ; SUPER_POTION +	money 300   ; POTION +	money 0     ; BOULDERBADGE +	money 0     ; CASCADEBADGE +	money 0     ; THUNDERBADGE +	money 0     ; RAINBOWBADGE +	money 0     ; SOULBADGE +	money 0     ; MARSHBADGE +	money 0     ; VOLCANOBADGE +	money 0     ; EARTHBADGE +	money 550   ; ESCAPE_ROPE +	money 350   ; REPEL +	money 0     ; OLD_AMBER +	money 2100  ; FIRE_STONE +	money 2100  ; THUNDER_STONE +	money 2100  ; WATER_STONE +	money 9800  ; HP_UP +	money 9800  ; PROTEIN +	money 9800  ; IRON +	money 9800  ; CARBOS +	money 9800  ; CALCIUM +	money 4800  ; RARE_CANDY +	money 0     ; DOME_FOSSIL +	money 0     ; HELIX_FOSSIL +	money 0     ; SECRET_KEY +	money 0     ; XXX +	money 0     ; BIKE_VOUCHER +	money 950   ; X_ACCURACY +	money 2100  ; LEAF_STONE +	money 0     ; CARD_KEY +	money 10000 ; NUGGET +	money 9800  ; XXX PP_UP +	money 1000  ; POKE_DOLL +	money 600   ; FULL_HEAL +	money 1500  ; REVIVE +	money 4000  ; MAX_REVIVE +	money 700   ; GUARD_SPEC_ +	money 500   ; SUPER_REPEL +	money 700   ; MAX_REPEL +	money 650   ; DIRE_HIT +	money 10    ; COIN +	money 200   ; FRESH_WATER +	money 300   ; SODA_POP +	money 350   ; LEMONADE +	money 0     ; S_S__TICKET +	money 0     ; GOLD_TEETH +	money 500   ; X_ATTACK +	money 550   ; X_DEFEND +	money 350   ; X_SPEED +	money 350   ; X_SPECIAL +	money 0     ; COIN_CASE +	money 0     ; OAKS_PARCEL +	money 0     ; ITEMFINDER +	money 0     ; SILPH_SCOPE +	money 0     ; POKE_FLUTE +	money 0     ; LIFT_KEY +	money 0     ; EXP__ALL +	money 0     ; OLD_ROD +	money 0     ; GOOD_ROD +	money 0     ; SUPER_ROD +	money 0     ; PP_UP +	money 0     ; ETHER +	money 0     ; MAX_ETHER +	money 0     ; ELIXER +	money 0     ; MAX_ELIXER +	money 0     ; B2F +	money 0     ; B1F +	money 0     ; 1F +	money 0     ; 2F +	money 0     ; 3F +	money 0     ; 4F +	money 0     ; 5F +	money 0     ; 6F +	money 0     ; 7F +	money 0     ; 8F +	money 0     ; 9F +	money 0     ; 10F +	money 0     ; 11F +	money 0     ; B4F diff --git a/data/prizes.asm b/data/prizes.asm index 92736715..3d4102b6 100755 --- a/data/prizes.asm +++ b/data/prizes.asm @@ -21,16 +21,17 @@ IF DEF(_BLUE)  	db NIDORINO  ENDC  	db "@" +  PrizeMenuMon1Cost: ; 5285d (14:685d)  IF DEF(_RED) -	db $01,$80 -	db $05,$00 +	coins 180 +	coins 500  ENDC  IF DEF(_BLUE) -	db $01,$20 -	db $07,$50 +	coins 120 +	coins 750  ENDC -	db $12,$00 +	coins 1200  	db "@"  PrizeMenuMon2Entries: ; 52864 (14:6864) @@ -44,16 +45,17 @@ IF DEF(_BLUE)  ENDC  	db PORYGON  	db "@" +  PrizeMenuMon2Cost: ; 52868 (14:6868)  IF DEF(_RED) -	db $28,$00 -	db $55,$00 -	db $99,$99 +	coins 2800 +	coins 5500 +	coins 9999  ENDC  IF DEF(_BLUE) -	db $25,$00 -	db $46,$00 -	db $65,$00 +	coins 2500 +	coins 4600 +	coins 6500  ENDC  	db "@" @@ -62,8 +64,9 @@ PrizeMenuTMsEntries: ; 5286f (14:686f)  	db TM_15  	db TM_50  	db "@" +  PrizeMenuTMsCost: ; 52873 (14:6873) -	db $33,$00 ; 3300 Coins -	db $55,$00 ; 5500 Coins -	db $77,$00 ; 7700 Coins +	coins 3300 +	coins 5500 +	coins 7700  	db "@" diff --git a/data/tm_prices.asm b/data/tm_prices.asm index 4fce3f60..89fdb8e9 100755 --- a/data/tm_prices.asm +++ b/data/tm_prices.asm @@ -1,7 +1,27 @@  TechnicalMachinePrices: ; 7bfa7 (1e:7fa7)  ; In thousands (nybbles). -	db $32, $21, $34, $24, $34 -	db $21, $45, $55, $32, $32 -	db $55, $52, $54, $52, $41 -	db $21, $12, $42, $25, $24 -	db $22, $52, $24, $34, $42 +	dn 3, 2  ; TM_01, TM_02 +	dn 2, 1  ; TM_03, TM_04 +	dn 3, 4  ; TM_05, TM_06 +	dn 2, 4  ; TM_07, TM_08 +	dn 3, 4  ; TM_09, TM_10 +	dn 2, 1  ; TM_11, TM_12 +	dn 4, 5  ; TM_13, TM_14 +	dn 5, 5  ; TM_15, TM_16 +	dn 3, 2  ; TM_17, TM_18 +	dn 3, 2  ; TM_19, TM_20 +	dn 5, 5  ; TM_21, TM_22 +	dn 5, 2  ; TM_23, TM_24 +	dn 5, 4  ; TM_25, TM_26 +	dn 5, 2  ; TM_27, TM_28 +	dn 4, 1  ; TM_29, TM_30 +	dn 2, 1  ; TM_31, TM_32 +	dn 1, 2  ; TM_33, TM_34 +	dn 4, 2  ; TM_35, TM_36 +	dn 2, 5  ; TM_37, TM_38 +	dn 2, 4  ; TM_39, TM_40 +	dn 2, 2  ; TM_41, TM_42 +	dn 5, 2  ; TM_43, TM_44 +	dn 2, 4  ; TM_45, TM_46 +	dn 3, 4  ; TM_47, TM_48 +	dn 4, 2  ; TM_49, TM_50 diff --git a/engine/battle/e.asm b/engine/battle/e.asm index 072aca49..dd227be7 100755 --- a/engine/battle/e.asm +++ b/engine/battle/e.asm @@ -435,145 +435,145 @@ TrainerPicAndMoneyPointers: ; 39914 (e:5914)  ; trainer pic pointers and base money.  ; money received after battle = base money × level of highest-level enemy mon  	dw YoungsterPic -	db 0,$15,0 +	money 1500  	dw BugCatcherPic -	db 0,$10,0 +	money 1000  	dw LassPic -	db 0,$15,0 +	money 1500  	dw SailorPic -	db 0,$30,0 +	money 3000  	dw JrTrainerMPic -	db 0,$20,0 +	money 2000  	dw JrTrainerFPic -	db 0,$20,0 +	money 2000  	dw PokemaniacPic -	db 0,$50,0 +	money 5000  	dw SuperNerdPic -	db 0,$25,0 +	money 2500  	dw HikerPic -	db 0,$35,0 +	money 3500  	dw BikerPic -	db 0,$20,0 +	money 2000  	dw BurglarPic -	db 0,$90,0 +	money 9000  	dw EngineerPic -	db 0,$50,0 +	money 5000  	dw JugglerPic -	db 0,$35,0 +	money 3500  	dw FisherPic -	db 0,$35,0 +	money 3500  	dw SwimmerPic -	db 0,$05,0 +	money 500  	dw CueBallPic -	db 0,$25,0 +	money 2500  	dw GamblerPic -	db 0,$70,0 +	money 7000  	dw BeautyPic -	db 0,$70,0 +	money 7000  	dw PsychicPic -	db 0,$10,0 +	money 1000  	dw RockerPic -	db 0,$25,0 +	money 2500  	dw JugglerPic -	db 0,$35,0 +	money 3500  	dw TamerPic -	db 0,$40,0 +	money 4000  	dw BirdKeeperPic -	db 0,$25,0 +	money 2500  	dw BlackbeltPic -	db 0,$25,0 +	money 2500  	dw Rival1Pic -	db 0,$35,0 +	money 3500  	dw ProfOakPic -	db 0,$99,0 +	money 9900  	dw ChiefPic -	db 0,$30,0 +	money 3000  	dw ScientistPic -	db 0,$50,0 +	money 5000  	dw GiovanniPic -	db 0,$99,0 +	money 9900  	dw RocketPic -	db 0,$30,0 +	money 3000  	dw CooltrainerMPic -	db 0,$35,0 +	money 3500  	dw CooltrainerFPic -	db 0,$35,0 +	money 3500  	dw BrunoPic -	db 0,$99,0 +	money 9900  	dw BrockPic -	db 0,$99,0 +	money 9900  	dw MistyPic -	db 0,$99,0 +	money 9900  	dw LtSurgePic -	db 0,$99,0 +	money 9900  	dw ErikaPic -	db 0,$99,0 +	money 9900  	dw KogaPic -	db 0,$99,0 +	money 9900  	dw BlainePic -	db 0,$99,0 +	money 9900  	dw SabrinaPic -	db 0,$99,0 +	money 9900  	dw GentlemanPic -	db 0,$70,0 +	money 7000  	dw Rival2Pic -	db 0,$65,0 +	money 6500  	dw Rival3Pic -	db 0,$99,0 +	money 9900  	dw LoreleiPic -	db 0,$99,0 +	money 9900  	dw ChannelerPic -	db 0,$30,0 +	money 3000  	dw AgathaPic -	db 0,$99,0 +	money 9900  	dw LancePic -	db 0,$99,0 +	money 9900  INCLUDE "text/trainer_names.asm" diff --git a/engine/items/tm_prices.asm b/engine/items/tm_prices.asm index c55a25b4..7c5c56fa 100755 --- a/engine/items/tm_prices.asm +++ b/engine/items/tm_prices.asm @@ -1,5 +1,8 @@  GetMachinePrice: ; 7bf86 (1e:7f86) -	ld a, [wcf91] +; Input:  [wcf91] = Item Id of a TM +; Output: Stores the 2-byte TM price in [H_DOWNARROWBLINKCNT1] and [H_DOWNARROWBLINKCNT2] +;         as a BCD +	ld a, [wcf91] ; a contains TM item id  	sub TM_01  	ret c  	ld d, a @@ -8,11 +11,11 @@ GetMachinePrice: ; 7bf86 (1e:7f86)  	ld c, a  	ld b, 0  	add hl, bc -	ld a, [hl] +	ld a, [hl] ; a contains byte whose high or low nybble is the TM price (in thousands)  	srl d -	jr nc, .asm_7bf9d +	jr nc, .highNybbleIsPrice ; is TM id odd?  	swap a -.asm_7bf9d +.highNybbleIsPrice  	and $f0  	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c  	xor a diff --git a/engine/menu/prize_menu.asm b/engine/menu/prize_menu.asm index 141b9beb..0e904200 100755 --- a/engine/menu/prize_menu.asm +++ b/engine/menu/prize_menu.asm @@ -6,7 +6,7 @@ CeladonPrizeMenu: ; 5271b (14:671b)  	jp PrintText  .havingCoinCase  	ld hl,wd730 -	set 6,[hl] +	set 6,[hl] ; disable letter-printing delay  	ld hl,ExchangeCoinsForPrizesTextPtr  	call PrintText  ; the following are the menu settings @@ -3335,6 +3335,8 @@ GetName:: ; 376b (0:376b)  	ret  GetItemPrice:: ; 37df (0:37df) +; Stores item's price as BCD in [H_DOWNARROWBLINKCNT1] and [[H_DOWNARROWBLINKCNT2] +; Input: [wcf91] = item id  	ld a, [H_LOADEDROMBANK]  	push af  	ld a, [wListMenuID] ; wListMenuID @@ -3349,9 +3351,9 @@ GetItemPrice:: ; 37df (0:37df)  	ld a, [hli]  	ld h, [hl]  	ld l, a -	ld a, [wcf91] +	ld a, [wcf91] ; a contains item id  	cp HM_01 -	jr nc, .asm_3812 +	jr nc, .getTMPrice  	ld bc, $3  .asm_3802  	add hl, bc @@ -3365,7 +3367,7 @@ GetItemPrice:: ; 37df (0:37df)  	ld a, [hl]  	ld [H_DOWNARROWBLINKCNT1], a ; $ff8b  	jr .asm_381c -.asm_3812 +.getTMPrice  	ld a, Bank(GetMachinePrice)  	ld [H_LOADEDROMBANK], a  	ld [$2000], a @@ -49,6 +49,20 @@ callab: MACRO  	call Bankswitch  	ENDM +bcd2: MACRO +    dn ((\1) / 1000) % 10, ((\1) / 100) % 10 +    dn ((\1) / 10) % 10, (\1) % 10 +    ENDM + +bcd3: MACRO +    dn ((\1) / 100000) % 10, ((\1) / 10000) % 10 +    dn ((\1) / 1000) % 10, ((\1) / 100) % 10 +    dn ((\1) / 10) % 10, (\1) % 10 +    ENDM + +coins equs "bcd2" +money equs "bcd3" +  ;\1 = X  ;\2 = Y  hlCoord: MACRO | 
