You've already forked pokecrystal-board
mirror of
https://gitlab.com/xCrystal/pokecrystal-board.git
synced 2025-09-08 08:13:02 -07:00
flypoints and spawn points
This commit is contained in:
@@ -48,6 +48,9 @@
|
|||||||
const DARK_CAVE
|
const DARK_CAVE
|
||||||
const ROUTE_46
|
const ROUTE_46
|
||||||
const SILVER_CAVE
|
const SILVER_CAVE
|
||||||
|
|
||||||
|
KANTO_LANDMARK EQU const_value
|
||||||
|
|
||||||
const PALLET_TOWN
|
const PALLET_TOWN
|
||||||
const ROUTE_1
|
const ROUTE_1
|
||||||
const VIRIDIAN_CITY
|
const VIRIDIAN_CITY
|
||||||
|
172
main.asm
172
main.asm
@@ -27124,7 +27124,38 @@ Function15273: ; 15273
|
|||||||
INCBIN "baserom.gbc",$15283,$152ab - $15283
|
INCBIN "baserom.gbc",$15283,$152ab - $15283
|
||||||
|
|
||||||
|
|
||||||
BlackoutPoints: ; 0x152ab
|
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_KRISS_HOUSE_2F, MAP_KRISS_HOUSE_2F, 3, 3
|
||||||
db GROUP_VIRIDIAN_POKECENTER_1F, MAP_VIRIDIAN_POKECENTER_1F, 5, 3 ; unused
|
db GROUP_VIRIDIAN_POKECENTER_1F, MAP_VIRIDIAN_POKECENTER_1F, 5, 3 ; unused
|
||||||
db GROUP_PALLET_TOWN, MAP_PALLET_TOWN, 5, 6
|
db GROUP_PALLET_TOWN, MAP_PALLET_TOWN, 5, 6
|
||||||
@@ -27153,38 +27184,42 @@ BlackoutPoints: ; 0x152ab
|
|||||||
db GROUP_BLACKTHORN_CITY, MAP_BLACKTHORN_CITY, 21, 30
|
db GROUP_BLACKTHORN_CITY, MAP_BLACKTHORN_CITY, 21, 30
|
||||||
db GROUP_SILVER_CAVE_OUTSIDE, MAP_SILVER_CAVE_OUTSIDE, 23, 20
|
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
|
db GROUP_FAST_SHIP_CABINS_SW_SSW_NW, MAP_FAST_SHIP_CABINS_SW_SSW_NW, 6, 2
|
||||||
db $ff, $ff, $ff, $ff
|
db -1, -1, -1, -1
|
||||||
|
|
||||||
|
|
||||||
|
Function1531f: ; 1531f
|
||||||
push hl
|
push hl
|
||||||
push de
|
push de
|
||||||
ld a, [$d001]
|
ld a, [$d001]
|
||||||
cp $ff
|
cp -1
|
||||||
jr z, .asm_15341
|
jr z, .asm_15341
|
||||||
ld l, a
|
ld l, a
|
||||||
ld h, $0
|
ld h, 0
|
||||||
add hl, hl
|
add hl, hl
|
||||||
add hl, hl
|
add hl, hl
|
||||||
ld de, $52ab
|
ld de, SpawnPoints
|
||||||
add hl, de
|
add hl, de
|
||||||
ld a, [hli]
|
ld a, [hli]
|
||||||
ld [MapGroup], a ; $dcb5
|
ld [MapGroup], a
|
||||||
ld a, [hli]
|
ld a, [hli]
|
||||||
ld [MapNumber], a ; $dcb6
|
ld [MapNumber], a
|
||||||
ld a, [hli]
|
ld a, [hli]
|
||||||
ld [XCoord], a ; $dcb8
|
ld [XCoord], a
|
||||||
ld a, [hli]
|
ld a, [hli]
|
||||||
ld [YCoord], a ; $dcb7
|
ld [YCoord], a
|
||||||
.asm_15341
|
.asm_15341
|
||||||
pop de
|
pop de
|
||||||
pop hl
|
pop hl
|
||||||
ret
|
ret
|
||||||
|
; 15344
|
||||||
|
|
||||||
|
|
||||||
Function15344: ; 15344
|
Function15344: ; 15344
|
||||||
ld hl, BlackoutPoints
|
ld hl, SpawnPoints
|
||||||
ld c, $0
|
ld c, 0
|
||||||
.asm_15349
|
.asm_15349
|
||||||
ld a, [hl]
|
ld a, [hl]
|
||||||
cp $ff
|
cp -1
|
||||||
jr z, .asm_1535f
|
jr z, .asm_1535f
|
||||||
cp d
|
cp d
|
||||||
jr nz, .asm_15356
|
jr nz, .asm_15356
|
||||||
@@ -27195,7 +27230,7 @@ Function15344: ; 15344
|
|||||||
|
|
||||||
.asm_15356
|
.asm_15356
|
||||||
push bc
|
push bc
|
||||||
ld bc, $0004
|
ld bc, 4
|
||||||
add hl, bc
|
add hl, bc
|
||||||
pop bc
|
pop bc
|
||||||
inc c
|
inc c
|
||||||
@@ -83045,12 +83080,12 @@ Function91c3c: ; 91c3c
|
|||||||
push de
|
push de
|
||||||
push hl
|
push hl
|
||||||
ld l, [hl]
|
ld l, [hl]
|
||||||
ld h, $0
|
ld h, 0
|
||||||
add hl, hl
|
add hl, hl
|
||||||
ld de, $5c5f
|
ld de, Flypoints + 1
|
||||||
add hl, de
|
add hl, de
|
||||||
ld c, [hl]
|
ld c, [hl]
|
||||||
call GetFlyPermission
|
call GetSpawnPermission
|
||||||
pop hl
|
pop hl
|
||||||
pop de
|
pop de
|
||||||
pop bc
|
pop bc
|
||||||
@@ -83058,8 +83093,8 @@ Function91c3c: ; 91c3c
|
|||||||
ret
|
ret
|
||||||
; 91c50
|
; 91c50
|
||||||
|
|
||||||
GetFlyPermission: ; 91c50
|
GetSpawnPermission: ; 91c50
|
||||||
; Return flypoint c permission flag in a
|
; Return spawn point c permission flag in a
|
||||||
ld hl, FlypointPerms
|
ld hl, FlypointPerms
|
||||||
ld b, $2
|
ld b, $2
|
||||||
ld d, $0
|
ld d, $0
|
||||||
@@ -83070,39 +83105,66 @@ GetFlyPermission: ; 91c50
|
|||||||
; 91c5e
|
; 91c5e
|
||||||
|
|
||||||
Flypoints: ; 91c5e
|
Flypoints: ; 91c5e
|
||||||
; landmark, blackout point
|
; landmark, spawn point
|
||||||
|
|
||||||
|
const_def
|
||||||
|
|
||||||
; Johto
|
; Johto
|
||||||
db NEW_BARK_TOWN, 14
|
const FLY_NEW_BARK
|
||||||
db CHERRYGROVE_CITY, 15
|
const FLY_CHERRYGROVE
|
||||||
db VIOLET_CITY, 16
|
const FLY_VIOLET
|
||||||
db AZALEA_TOWN, 18
|
const FLY_AZALEA
|
||||||
db GOLDENROD_CITY, 20
|
const FLY_GOLDENROD
|
||||||
db ECRUTEAK_CITY, 22
|
const FLY_ECRUTEAK
|
||||||
db OLIVINE_CITY, 21
|
const FLY_OLIVINE
|
||||||
db CIANWOOD_CITY, 19
|
const FLY_CIANWOOD
|
||||||
db MAHOGANY_TOWN, 23
|
const FLY_MAHOGANY
|
||||||
db LAKE_OF_RAGE, 24
|
const FLY_LAKE
|
||||||
db BLACKTHORN_CITY, 25
|
const FLY_BLACKTHORN
|
||||||
db SILVER_CAVE, 26
|
const FLY_MT_SILVER
|
||||||
|
|
||||||
|
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
|
||||||
db PALLET_TOWN, 02
|
const FLY_PALLET
|
||||||
db VIRIDIAN_CITY, 03
|
const FLY_VIRIDIAN
|
||||||
db PEWTER_CITY, 04
|
const FLY_PEWTER
|
||||||
db CERULEAN_CITY, 05
|
const FLY_CERULEAN
|
||||||
db VERMILION_CITY, 07
|
const FLY_VERMILION
|
||||||
db ROCK_TUNNEL, 06
|
const FLY_ROCK_TUNNEL
|
||||||
db LAVENDER_TOWN, 08
|
const FLY_LAVENDER
|
||||||
db CELADON_CITY, 10
|
const FLY_CELADON
|
||||||
db SAFFRON_CITY, 09
|
const FLY_SAFFRON
|
||||||
db FUCHSIA_CITY, 11
|
const FLY_FUCHSIA
|
||||||
db CINNABAR_ISLAND, 12
|
const FLY_CINNABAR
|
||||||
db INDIGO_PLATEAU, 13
|
const FLY_INDIGO_PLATEAU
|
||||||
|
|
||||||
; 91c8e
|
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
|
||||||
|
|
||||||
INCBIN "baserom.gbc",$91c8e,$91c8f - $91c8e
|
db -1
|
||||||
|
; 91c8f
|
||||||
|
|
||||||
Function91c8f: ; 91c8f
|
Function91c8f: ; 91c8f
|
||||||
ret
|
ret
|
||||||
@@ -83119,7 +83181,7 @@ FlyMap: ; 91c90
|
|||||||
; If we're not in a valid location, i.e. Pokecenter floor 2F,
|
; If we're not in a valid location, i.e. Pokecenter floor 2F,
|
||||||
; the backup map information is used
|
; the backup map information is used
|
||||||
|
|
||||||
cp 0
|
cp SPECIAL_MAP
|
||||||
jr nz, .CheckRegion
|
jr nz, .CheckRegion
|
||||||
|
|
||||||
ld a, [BackupMapGroup]
|
ld a, [BackupMapGroup]
|
||||||
@@ -83130,7 +83192,7 @@ FlyMap: ; 91c90
|
|||||||
|
|
||||||
.CheckRegion
|
.CheckRegion
|
||||||
; The first 46 locations are part of Johto. The rest are in Kanto
|
; The first 46 locations are part of Johto. The rest are in Kanto
|
||||||
cp 47
|
cp KANTO_LANDMARK
|
||||||
jr nc, .KantoFlyMap
|
jr nc, .KantoFlyMap
|
||||||
|
|
||||||
.JohtoFlyMap
|
.JohtoFlyMap
|
||||||
@@ -83139,13 +83201,13 @@ FlyMap: ; 91c90
|
|||||||
push af
|
push af
|
||||||
|
|
||||||
; Start from New Bark Town
|
; Start from New Bark Town
|
||||||
ld a, 0
|
ld a, FLY_NEW_BARK
|
||||||
ld [DefaultFlypoint], a
|
ld [DefaultFlypoint], a
|
||||||
|
|
||||||
; Flypoints begin at New Bark Town...
|
; Flypoints begin at New Bark Town...
|
||||||
ld [StartFlypoint], a
|
ld [StartFlypoint], a
|
||||||
; ..and end at Silver Cave
|
; ..and end at Silver Cave
|
||||||
ld a, $b
|
ld a, FLY_MT_SILVER
|
||||||
ld [EndFlypoint], a
|
ld [EndFlypoint], a
|
||||||
|
|
||||||
; Fill out the map
|
; Fill out the map
|
||||||
@@ -83168,18 +83230,18 @@ FlyMap: ; 91c90
|
|||||||
; visited and its flypoint enabled
|
; visited and its flypoint enabled
|
||||||
|
|
||||||
push af
|
push af
|
||||||
ld c, $d ; Indigo Plateau
|
ld c, SPAWN_INDIGO_PLATEAU
|
||||||
call GetFlyPermission
|
call GetSpawnPermission
|
||||||
and a
|
and a
|
||||||
jr z, .NoKanto
|
jr z, .NoKanto
|
||||||
|
|
||||||
; Kanto's map is only loaded if we've visited Indigo Plateau
|
; Kanto's map is only loaded if we've visited Indigo Plateau
|
||||||
|
|
||||||
; Flypoints begin at Pallet Town...
|
; Flypoints begin at Pallet Town...
|
||||||
ld a, $c
|
ld a, FLY_PALLET
|
||||||
ld [StartFlypoint], a
|
ld [StartFlypoint], a
|
||||||
; ...and end at Indigo Plateau
|
; ...and end at Indigo Plateau
|
||||||
ld a, $17
|
ld a, FLY_INDIGO_PLATEAU
|
||||||
ld [EndFlypoint], a
|
ld [EndFlypoint], a
|
||||||
|
|
||||||
; Because Indigo Plateau is the first flypoint the player
|
; Because Indigo Plateau is the first flypoint the player
|
||||||
@@ -83197,13 +83259,13 @@ FlyMap: ; 91c90
|
|||||||
; If Indigo Plateau hasn't been visited, we use Johto's map instead
|
; If Indigo Plateau hasn't been visited, we use Johto's map instead
|
||||||
|
|
||||||
; Start from New Bark Town
|
; Start from New Bark Town
|
||||||
ld a, 0
|
ld a, FLY_NEW_BARK
|
||||||
ld [DefaultFlypoint], a
|
ld [DefaultFlypoint], a
|
||||||
|
|
||||||
; Flypoints begin at New Bark Town...
|
; Flypoints begin at New Bark Town...
|
||||||
ld [StartFlypoint], a
|
ld [StartFlypoint], a
|
||||||
; ..and end at Silver Cave
|
; ..and end at Silver Cave
|
||||||
ld a, $b
|
ld a, FLY_MT_SILVER
|
||||||
ld [EndFlypoint], a
|
ld [EndFlypoint], a
|
||||||
|
|
||||||
call FillJohtoMap
|
call FillJohtoMap
|
||||||
|
Reference in New Issue
Block a user