shithub: pokecrystal

Download patch

ref: aa97752efeef1425a0e0a00059f4a44569c917fc
parent: daa071451d998e7cf460468870ca82498a5eb4af
author: Remy Oukaour <remy.oukaour@gmail.com>
date: Fri Dec 22 19:31:04 EST 2017

Move NUM_BUENA_PRIZES to event/buena.asm (still hard-coded)

Buena_PrizeMenu has "rept NUM_BUENA_PRIZES", which needs NUM_BUENA_PRIZES to be already defined. BuenaPrizeItems and BuenaPrizeItemsEnd are needed to define NUM_BUENA_PRIZES; but BuenaPrizeItems is defined after Buena_PrizeMenu. I don't see a way to avoid hard-coding its value of 9.

Contrast that with the NUM_MOM_ITEMS constants, which are not used as "rept" arguments and so can be defined within their code file.

--- a/constants/radio_constants.asm
+++ b/constants/radio_constants.asm
@@ -123,6 +123,3 @@
 	const BUENA_ITEM
 	const BUENA_MOVE
 	const BUENA_STRING
-
-; BuenaPrizeItems table length (see data/items/buena_prizes.asm)
-NUM_BUENA_PRIZES EQU 9
--- a/data/items/buena_prizes.asm
+++ b/data/items/buena_prizes.asm
@@ -1,5 +1,5 @@
 BuenaPrizeItems: ; 8b15e
-; there are NUM_BUENA_PRIZES entries
+; there are NUM_BUENA_PRIZES items (see event/buena.asm)
 	db ULTRA_BALL,   2
 	db FULL_RESTORE, 2
 	db NUGGET,       3
@@ -9,4 +9,5 @@
 	db CARBOS,       5
 	db CALCIUM,      5
 	db HP_UP,        5
+BuenaPrizeItemsEnd:
 ; 8b170
--- a/event/buena.asm
+++ b/event/buena.asm
@@ -288,6 +288,8 @@
 	dba .prizepoints
 ; 8b129
 
+NUM_BUENA_PRIZES EQU 9 ; ((BuenaPrizeItemsEnd - BuenaPrizeItems) / 2)
+
 .indices ; 8b129
 	db NUM_BUENA_PRIZES
 x = 1
--- a/event/mom_phone.asm
+++ b/event/mom_phone.asm
@@ -1,3 +1,6 @@
+NUM_MOM_ITEMS_1 EQUS "((MomItems_1End - MomItems_1) / 8)"
+NUM_MOM_ITEMS_2 EQUS "((MomItems_2End - MomItems_2) / 8)"
+
 const_value = 1
 	const MOM_ITEM
 	const MOM_DOLL
@@ -57,7 +60,7 @@
 
 CheckBalance_MomItem2: ; fd044
 	ld a, [wWhichMomItem]
-	cp 10
+	cp NUM_MOM_ITEMS_2
 	jr nc, .nope
 	call GetItemFromMom
 	ld a, [hli]
@@ -100,7 +103,7 @@
 
 .exact
 	call .AddMoney
-	ld a, 5
+	ld a, NUM_MOM_ITEMS_1
 	call RandomRange
 	inc a
 	ld [wWhichMomItemSet], a
@@ -195,7 +198,7 @@
 
 .zero
 	ld a, [wWhichMomItem]
-	cp 10 ; length of MomItems_2
+	cp NUM_MOM_ITEMS_2
 	jr c, .ok
 	xor a