shithub: pokecrystal

Download patch

ref: 1ba907e3539f51c70c95eed6189c14cea259b71a
parent: a2077704708eaf925e7b6bdead70a70d8e756536
parent: 2f996085261ef665fd38df33a58c779df557baf7
author: Bryan Bishop <[email protected]>
date: Fri Jul 18 15:45:20 EDT 2014

Merge pull request #258 from yenatch/spawns

Use macros for spawns and flypoints.

--- a/main.asm
+++ b/main.asm
@@ -3818,8 +3818,10 @@
 	call Function5d23
 	ld a, $1
 	ld [$c2d8], a
-	ld a, $0
+
+	ld a, 0 ; SPAWN_HOME
 	ld [$d001], a
+
 	ld a, $f1
 	ld [$ff9f], a
 	jp Function5e5d
@@ -4132,7 +4134,7 @@
 	ret
 
 .asm_5dd7
-	ld a, $e
+	ld a, $e ; SPAWN_NEW_BARK
 	ld [$d001], a
 	call Function5de7
 	jp Function5e5d
@@ -4139,7 +4141,7 @@
 ; 5de2
 
 Function5de2: ; 5de2
-	ld a, $1a
+	ld a, $1a ; SPAWN_MT_SILVER
 	ld [$d001], a
 ; 5de7
 
@@ -9587,10 +9589,11 @@
 	call ClearSprites
 	callba Function91af3
 	ld a, e
-	cp $ff
+	cp -1
 	jr z, .asm_ca8b
-	cp $1c
+	cp $1c ; NUM_SPAWNS
 	jr nc, .asm_ca8b
+
 	ld [$d001], a
 	call Function1c17
 	ld a, $1
@@ -25459,66 +25462,51 @@
 SpawnPoints: ; 0x152ab
 
 	const_def
-	const SPAWN_HOME
-	const SPAWN_VIRIDIAN_POKECENTER
-	const SPAWN_PALLET
-	const SPAWN_VIRIDIAN
-	const SPAWN_PEWTER
-	const SPAWN_CERULEAN
-	const SPAWN_ROCK_TUNNEL
-	const SPAWN_VERMILION
-	const SPAWN_LAVENDER
-	const SPAWN_SAFFRON
-	const SPAWN_CELADON
-	const SPAWN_FUCHSIA
-	const SPAWN_CINNABAR
-	const SPAWN_INDIGO_PLATEAU
-	const SPAWN_NEW_BARK
-	const SPAWN_CHERRYGROVE
-	const SPAWN_VIOLET
-	const SPAWN_UNION_CAVE
-	const SPAWN_AZALEA
-	const SPAWN_CIANWOOD
-	const SPAWN_GOLDENROD
-	const SPAWN_OLIVINE
-	const SPAWN_ECRUTEAK
-	const SPAWN_MAHOGANY
-	const SPAWN_LAKE
-	const SPAWN_BLACKTHORN
-	const SPAWN_MT_SILVER
-	const SPAWN_FAST_SHIP
 
-	db GROUP_KRISS_HOUSE_2F, MAP_KRISS_HOUSE_2F, 3, 3
-	db GROUP_VIRIDIAN_POKECENTER_1F, MAP_VIRIDIAN_POKECENTER_1F, 5, 3 ; unused
-	db GROUP_PALLET_TOWN, MAP_PALLET_TOWN, 5, 6
-	db GROUP_VIRIDIAN_CITY, MAP_VIRIDIAN_CITY, 23, 26
-	db GROUP_PEWTER_CITY, MAP_PEWTER_CITY, 13, 26
-	db GROUP_CERULEAN_CITY, MAP_CERULEAN_CITY, 19, 22
-	db GROUP_ROUTE_10A, MAP_ROUTE_10A, 11, 2
-	db GROUP_VERMILION_CITY, MAP_VERMILION_CITY, 9, 6
-	db GROUP_LAVENDER_TOWN, MAP_LAVENDER_TOWN, 5, 6
-	db GROUP_SAFFRON_CITY, MAP_SAFFRON_CITY, 9, 30
-	db GROUP_CELADON_CITY, MAP_CELADON_CITY, 29, 10
-	db GROUP_FUCHSIA_CITY, MAP_FUCHSIA_CITY, 19, 28
-	db GROUP_CINNABAR_ISLAND, MAP_CINNABAR_ISLAND, 11, 12
-	db GROUP_ROUTE_23, MAP_ROUTE_23, 9, 6
-	db GROUP_NEW_BARK_TOWN, MAP_NEW_BARK_TOWN, 13, 6
-	db GROUP_CHERRYGROVE_CITY, MAP_CHERRYGROVE_CITY, 29, 4
-	db GROUP_VIOLET_CITY, MAP_VIOLET_CITY, 31, 26
-	db GROUP_ROUTE_32, MAP_ROUTE_32, 11, 74
-	db GROUP_AZALEA_TOWN, MAP_AZALEA_TOWN, 15, 10
-	db GROUP_CIANWOOD_CITY, MAP_CIANWOOD_CITY, 23, 44
-	db GROUP_GOLDENROD_CITY, MAP_GOLDENROD_CITY, 15, 28
-	db GROUP_OLIVINE_CITY, MAP_OLIVINE_CITY, 13, 22
-	db GROUP_ECRUTEAK_CITY, MAP_ECRUTEAK_CITY, 23, 28
-	db GROUP_MAHOGANY_TOWN, MAP_MAHOGANY_TOWN, 15, 14
-	db GROUP_LAKE_OF_RAGE, MAP_LAKE_OF_RAGE, 21, 29
-	db GROUP_BLACKTHORN_CITY, MAP_BLACKTHORN_CITY, 21, 30
-	db GROUP_SILVER_CAVE_OUTSIDE, MAP_SILVER_CAVE_OUTSIDE, 23, 20
-	db GROUP_FAST_SHIP_CABINS_SW_SSW_NW, MAP_FAST_SHIP_CABINS_SW_SSW_NW, 6, 2
+spawn: MACRO
+; name, map, y, x
+\1\@ EQUS "SPAWN_\1"
+	const \1\@
+	map \2
+	db \3, \4
+ENDM
+
+	spawn HOME,        KRISS_HOUSE_2F,              3,  3
+	spawn DEBUG,       VIRIDIAN_POKECENTER_1F,      5,  3
+
+	spawn PALLET,      PALLET_TOWN,                 5,  6
+	spawn VIRIDIAN,    VIRIDIAN_CITY,              23, 26
+	spawn PEWTER,      PEWTER_CITY,                13, 26
+	spawn CERULEAN,    CERULEAN_CITY,              19, 22
+	spawn ROCK_TUNNEL, ROUTE_10A,                  11,  2
+	spawn VERMILION,   VERMILION_CITY,              9,  6
+	spawn LAVENDER,    LAVENDER_TOWN,               5,  6
+	spawn SAFFRON,     SAFFRON_CITY,                9, 30
+	spawn CELADON,     CELADON_CITY,               29, 10
+	spawn FUCHSIA,     FUCHSIA_CITY,               19, 28
+	spawn CINNABAR,    CINNABAR_ISLAND,            11, 12
+	spawn INDIGO,      ROUTE_23,                    9,  6
+
+	spawn NEW_BARK,    NEW_BARK_TOWN,              13,  6
+	spawn CHERRYGROVE, CHERRYGROVE_CITY,           29,  4
+	spawn VIOLET,      VIOLET_CITY,                31, 26
+	spawn UNION_CAVE,  ROUTE_32,                   11, 74
+	spawn AZALEA,      AZALEA_TOWN,                15, 10
+	spawn CIANWOOD,    CIANWOOD_CITY,              23, 44
+	spawn GOLDENROD,   GOLDENROD_CITY,             15, 28
+	spawn OLIVINE,     OLIVINE_CITY,               13, 22
+	spawn ECRUTEAK,    ECRUTEAK_CITY,              23, 28
+	spawn MAHOGANY,    MAHOGANY_TOWN,              15, 14
+	spawn LAKE,        LAKE_OF_RAGE,               21, 29
+	spawn BLACKTHORN,  BLACKTHORN_CITY,            21, 30
+	spawn MT_SILVER,   SILVER_CAVE_OUTSIDE,        23, 20
+	spawn FAST_SHIP,   FAST_SHIP_CABINS_SW_SSW_NW,  6,  2
+
 	db -1, -1, -1, -1
 
+	const NUM_SPAWNS
 
+
 LoadSpawnPoint: ; 1531f
 	push hl
 	push de
@@ -83079,62 +83067,43 @@
 
 	const_def
 
+flypoint: MACRO
+\1\@FLY   EQUS "FLY_\1"
+\1\@SPAWN EQUS "SPAWN_\1"
+	const \1\@FLY
+	db \2, \1\@SPAWN
+ENDM
+
 ; Johto
-	const FLY_NEW_BARK
-	const FLY_CHERRYGROVE
-	const FLY_VIOLET
-	const FLY_AZALEA
-	const FLY_GOLDENROD
-	const FLY_ECRUTEAK
-	const FLY_OLIVINE
-	const FLY_CIANWOOD
-	const FLY_MAHOGANY
-	const FLY_LAKE
-	const FLY_BLACKTHORN
-	const FLY_MT_SILVER
+	flypoint NEW_BARK,    NEW_BARK_TOWN
+	flypoint CHERRYGROVE, CHERRYGROVE_CITY
+	flypoint VIOLET,      VIOLET_CITY
+	flypoint AZALEA,      AZALEA_TOWN
+	flypoint GOLDENROD,   GOLDENROD_CITY
+	flypoint ECRUTEAK,    ECRUTEAK_CITY
+	flypoint OLIVINE,     OLIVINE_CITY
+	flypoint CIANWOOD,    CIANWOOD_CITY
+	flypoint MAHOGANY,    MAHOGANY_TOWN
+	flypoint LAKE,        LAKE_OF_RAGE
+	flypoint BLACKTHORN,  BLACKTHORN_CITY
+	flypoint MT_SILVER,   SILVER_CAVE
 
-	db NEW_BARK_TOWN,    SPAWN_NEW_BARK
-	db CHERRYGROVE_CITY, SPAWN_CHERRYGROVE
-	db VIOLET_CITY,      SPAWN_VIOLET
-	db AZALEA_TOWN,      SPAWN_AZALEA
-	db GOLDENROD_CITY,   SPAWN_GOLDENROD
-	db ECRUTEAK_CITY,    SPAWN_ECRUTEAK
-	db OLIVINE_CITY,     SPAWN_OLIVINE
-	db CIANWOOD_CITY,    SPAWN_CIANWOOD
-	db MAHOGANY_TOWN,    SPAWN_MAHOGANY
-	db LAKE_OF_RAGE,     SPAWN_LAKE
-	db BLACKTHORN_CITY,  SPAWN_BLACKTHORN
-	db SILVER_CAVE,      SPAWN_MT_SILVER
-
 ; Kanto
 KANTO_FLYPOINT EQU const_value
 
-	const FLY_PALLET
-	const FLY_VIRIDIAN
-	const FLY_PEWTER
-	const FLY_CERULEAN
-	const FLY_VERMILION
-	const FLY_ROCK_TUNNEL
-	const FLY_LAVENDER
-	const FLY_CELADON
-	const FLY_SAFFRON
-	const FLY_FUCHSIA
-	const FLY_CINNABAR
-	const FLY_INDIGO_PLATEAU
+	flypoint PALLET,      PALLET_TOWN
+	flypoint VIRIDIAN,    VIRIDIAN_CITY
+	flypoint PEWTER,      PEWTER_CITY
+	flypoint CERULEAN,    CERULEAN_CITY
+	flypoint VERMILION,   VERMILION_CITY
+	flypoint ROCK_TUNNEL, ROCK_TUNNEL
+	flypoint LAVENDER,    LAVENDER_TOWN
+	flypoint CELADON,     CELADON_CITY
+	flypoint SAFFRON,     SAFFRON_CITY
+	flypoint FUCHSIA,     FUCHSIA_CITY
+	flypoint CINNABAR,    CINNABAR_ISLAND
+	flypoint INDIGO,      INDIGO_PLATEAU
 
-	db PALLET_TOWN,      SPAWN_PALLET
-	db VIRIDIAN_CITY,    SPAWN_VIRIDIAN
-	db PEWTER_CITY,      SPAWN_PEWTER
-	db CERULEAN_CITY,    SPAWN_CERULEAN
-	db VERMILION_CITY,   SPAWN_VERMILION
-	db ROCK_TUNNEL,      SPAWN_ROCK_TUNNEL
-	db LAVENDER_TOWN,    SPAWN_LAVENDER
-	db CELADON_CITY,     SPAWN_CELADON
-	db SAFFRON_CITY,     SPAWN_SAFFRON
-	db FUCHSIA_CITY,     SPAWN_FUCHSIA
-	db CINNABAR_ISLAND,  SPAWN_CINNABAR
-	db INDIGO_PLATEAU,   SPAWN_INDIGO_PLATEAU
-
 	db -1
 ; 91c8f
 
@@ -83202,7 +83171,7 @@
 ; visited and its flypoint enabled
 	
 	push af
-	ld c, SPAWN_INDIGO_PLATEAU
+	ld c, SPAWN_INDIGO
 	call HasVisitedSpawn
 	and a
 	jr z, .NoKanto
@@ -83213,7 +83182,7 @@
 	ld a, FLY_PALLET
 	ld [StartFlypoint], a
 ; ...and end at Indigo Plateau
-	ld a, FLY_INDIGO_PLATEAU
+	ld a, FLY_INDIGO
 	ld [EndFlypoint], a
 	
 ; Because Indigo Plateau is the first flypoint the player
@@ -83860,7 +83829,7 @@
 .asm_923c6
 	ld hl, DefaultFlypoint
 	ld a, [hl]
-	cp FLY_INDIGO_PLATEAU
+	cp FLY_INDIGO
 	jr c, .asm_923d0
 	ld [hl], -1
 .asm_923d0
@@ -83872,7 +83841,7 @@
 	ld a, [hl]
 	and a
 	jr nz, .asm_923dc
-	ld [hl], FLY_INDIGO_PLATEAU + 1
+	ld [hl], FLY_INDIGO + 1
 .asm_923dc
 	dec [hl]