mirror of
https://github.com/thornAvery/kep-hack.git
synced 2025-11-13 16:54:47 +13:00
Use constants to delineate map types, and factor out more data
This commit is contained in:
parent
70eac3a1f7
commit
bfd9f617c9
|
|
@ -13,6 +13,7 @@ ENDM
|
||||||
; - MapSpriteSets (see data/maps/sprite_sets.asm)
|
; - MapSpriteSets (see data/maps/sprite_sets.asm)
|
||||||
; - ExternalMapEntries (see data/maps/town_map_entries.asm)
|
; - ExternalMapEntries (see data/maps/town_map_entries.asm)
|
||||||
; Each map also has associated data in maps.asm.
|
; Each map also has associated data in maps.asm.
|
||||||
|
; Order: towns/cities, then routes, then indoor/dungeon maps
|
||||||
const_def
|
const_def
|
||||||
mapconst PALLET_TOWN, 9, 10 ; $00
|
mapconst PALLET_TOWN, 9, 10 ; $00
|
||||||
mapconst VIRIDIAN_CITY, 18, 20 ; $01
|
mapconst VIRIDIAN_CITY, 18, 20 ; $01
|
||||||
|
|
@ -25,7 +26,9 @@ ENDM
|
||||||
mapconst CINNABAR_ISLAND, 9, 10 ; $08
|
mapconst CINNABAR_ISLAND, 9, 10 ; $08
|
||||||
mapconst INDIGO_PLATEAU, 9, 10 ; $09
|
mapconst INDIGO_PLATEAU, 9, 10 ; $09
|
||||||
mapconst SAFFRON_CITY, 18, 20 ; $0A
|
mapconst SAFFRON_CITY, 18, 20 ; $0A
|
||||||
|
NUM_CITY_MAPS EQU const_value
|
||||||
mapconst UNUSED_MAP_0B, 0, 0 ; $0B
|
mapconst UNUSED_MAP_0B, 0, 0 ; $0B
|
||||||
|
FIRST_ROUTE_MAP EQU const_value
|
||||||
mapconst ROUTE_1, 18, 10 ; $0C
|
mapconst ROUTE_1, 18, 10 ; $0C
|
||||||
mapconst ROUTE_2, 36, 10 ; $0D
|
mapconst ROUTE_2, 36, 10 ; $0D
|
||||||
mapconst ROUTE_3, 9, 35 ; $0E
|
mapconst ROUTE_3, 9, 35 ; $0E
|
||||||
|
|
@ -51,6 +54,7 @@ ENDM
|
||||||
mapconst ROUTE_23, 72, 10 ; $22
|
mapconst ROUTE_23, 72, 10 ; $22
|
||||||
mapconst ROUTE_24, 18, 10 ; $23
|
mapconst ROUTE_24, 18, 10 ; $23
|
||||||
mapconst ROUTE_25, 9, 30 ; $24
|
mapconst ROUTE_25, 9, 30 ; $24
|
||||||
|
FIRST_INDOOR_MAP EQU const_value
|
||||||
mapconst REDS_HOUSE_1F, 4, 4 ; $25
|
mapconst REDS_HOUSE_1F, 4, 4 ; $25
|
||||||
mapconst REDS_HOUSE_2F, 4, 4 ; $26
|
mapconst REDS_HOUSE_2F, 4, 4 ; $26
|
||||||
mapconst BLUES_HOUSE, 4, 4 ; $27
|
mapconst BLUES_HOUSE, 4, 4 ; $27
|
||||||
|
|
@ -263,7 +267,6 @@ ENDM
|
||||||
mapconst BRUNOS_ROOM, 6, 5 ; $F6
|
mapconst BRUNOS_ROOM, 6, 5 ; $F6
|
||||||
mapconst AGATHAS_ROOM, 6, 5 ; $F7
|
mapconst AGATHAS_ROOM, 6, 5 ; $F7
|
||||||
|
|
||||||
|
|
||||||
; Indoor maps, such as houses, use this as the Map ID in their exit warps
|
; Indoor maps, such as houses, use this as the Map ID in their exit warps
|
||||||
; This map ID takes the player back to the last outdoor map they were on, stored in wLastMap
|
; This map ID takes the player back to the last outdoor map they were on, stored in wLastMap
|
||||||
LAST_MAP EQU -1
|
LAST_MAP EQU -1
|
||||||
|
|
|
||||||
20
data/events/bench_guys.asm
Normal file
20
data/events/bench_guys.asm
Normal file
|
|
@ -0,0 +1,20 @@
|
||||||
|
bench_guy_text: MACRO
|
||||||
|
db \1, \2
|
||||||
|
db_tx_pre \3
|
||||||
|
ENDM
|
||||||
|
|
||||||
|
BenchGuyTextPointers:
|
||||||
|
; map id, player facing direction, predef text
|
||||||
|
bench_guy_text VIRIDIAN_POKECENTER, SPRITE_FACING_LEFT, ViridianCityPokecenterBenchGuyText
|
||||||
|
bench_guy_text PEWTER_POKECENTER, SPRITE_FACING_LEFT, PewterCityPokecenterBenchGuyText
|
||||||
|
bench_guy_text CERULEAN_POKECENTER, SPRITE_FACING_LEFT, CeruleanCityPokecenterBenchGuyText
|
||||||
|
bench_guy_text LAVENDER_POKECENTER, SPRITE_FACING_LEFT, LavenderCityPokecenterBenchGuyText
|
||||||
|
bench_guy_text VERMILION_POKECENTER, SPRITE_FACING_LEFT, VermilionCityPokecenterBenchGuyText
|
||||||
|
bench_guy_text CELADON_POKECENTER, SPRITE_FACING_LEFT, CeladonCityPokecenterBenchGuyText
|
||||||
|
bench_guy_text CELADON_HOTEL, SPRITE_FACING_LEFT, CeladonCityHotelText
|
||||||
|
bench_guy_text FUCHSIA_POKECENTER, SPRITE_FACING_LEFT, FuchsiaCityPokecenterBenchGuyText
|
||||||
|
bench_guy_text CINNABAR_POKECENTER, SPRITE_FACING_LEFT, CinnabarIslandPokecenterBenchGuyText
|
||||||
|
bench_guy_text SAFFRON_POKECENTER, SPRITE_FACING_LEFT, SaffronCityPokecenterBenchGuyText
|
||||||
|
bench_guy_text MT_MOON_POKECENTER, SPRITE_FACING_LEFT, MtMoonPokecenterBenchGuyText
|
||||||
|
bench_guy_text ROCK_TUNNEL_POKECENTER, SPRITE_FACING_LEFT, RockTunnelPokecenterBenchGuyText
|
||||||
|
db -1 ; end
|
||||||
36
data/events/card_key_coords.asm
Normal file
36
data/events/card_key_coords.asm
Normal file
|
|
@ -0,0 +1,36 @@
|
||||||
|
; These tables are probably supposed to be door locations in Silph Co.,
|
||||||
|
; but they are unused.
|
||||||
|
; The reason there are 3 tables is unknown.
|
||||||
|
|
||||||
|
; Format: map ID, Y, X, gate ID?
|
||||||
|
|
||||||
|
CardKeyTable1:
|
||||||
|
db SILPH_CO_2F, $04, $04, 0
|
||||||
|
db SILPH_CO_2F, $04, $05, 1
|
||||||
|
db SILPH_CO_4F, $0C, $04, 2
|
||||||
|
db SILPH_CO_4F, $0C, $05, 3
|
||||||
|
db SILPH_CO_7F, $06, $0A, 4
|
||||||
|
db SILPH_CO_7F, $06, $0B, 5
|
||||||
|
db SILPH_CO_9F, $04, $12, 6
|
||||||
|
db SILPH_CO_9F, $04, $13, 7
|
||||||
|
db SILPH_CO_10F, $08, $0A, 8
|
||||||
|
db SILPH_CO_10F, $08, $0B, 9
|
||||||
|
db -1 ; end
|
||||||
|
|
||||||
|
CardKeyTable2:
|
||||||
|
db SILPH_CO_3F, $08, $09, 10
|
||||||
|
db SILPH_CO_3F, $09, $09, 11
|
||||||
|
db SILPH_CO_5F, $04, $07, 12
|
||||||
|
db SILPH_CO_5F, $05, $07, 13
|
||||||
|
db SILPH_CO_6F, $0C, $05, 14
|
||||||
|
db SILPH_CO_6F, $0D, $05, 15
|
||||||
|
db SILPH_CO_8F, $08, $07, 16
|
||||||
|
db SILPH_CO_8F, $09, $07, 17
|
||||||
|
db SILPH_CO_9F, $08, $03, 18
|
||||||
|
db SILPH_CO_9F, $09, $03, 19
|
||||||
|
db -1 ; end
|
||||||
|
|
||||||
|
CardKeyTable3:
|
||||||
|
db SILPH_CO_11F, $08, $09, 20
|
||||||
|
db SILPH_CO_11F, $09, $09, 21
|
||||||
|
db -1 ; end
|
||||||
12
data/events/card_key_maps.asm
Normal file
12
data/events/card_key_maps.asm
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
SilphCoMapList:
|
||||||
|
db SILPH_CO_2F
|
||||||
|
db SILPH_CO_3F
|
||||||
|
db SILPH_CO_4F
|
||||||
|
db SILPH_CO_5F
|
||||||
|
db SILPH_CO_6F
|
||||||
|
db SILPH_CO_7F
|
||||||
|
db SILPH_CO_8F
|
||||||
|
db SILPH_CO_9F
|
||||||
|
db SILPH_CO_10F
|
||||||
|
db SILPH_CO_11F
|
||||||
|
db -1 ; end
|
||||||
|
|
@ -1,3 +1,8 @@
|
||||||
|
; GetBattleTransitionID_IsDungeonMap fails to recognize
|
||||||
|
; VICTORY_ROAD_2F, VICTORY_ROAD_3F, all ROCKET_HIDEOUT maps,
|
||||||
|
; POKEMON_MANSION_1F, SEAFOAM_ISLANDS_[B1F-B4F], POWER_PLANT,
|
||||||
|
; DIGLETTS_CAVE, and SILPH_CO_[9-11]F as dungeon maps
|
||||||
|
|
||||||
; GetBattleTransitionID_IsDungeonMap checks if wCurMap
|
; GetBattleTransitionID_IsDungeonMap checks if wCurMap
|
||||||
; is equal to one of these maps
|
; is equal to one of these maps
|
||||||
DungeonMaps1:
|
DungeonMaps1:
|
||||||
|
|
|
||||||
|
|
@ -118,9 +118,6 @@ GetBattleTransitionID_CompareLevels:
|
||||||
ld [wBattleTransitionSpiralDirection], a
|
ld [wBattleTransitionSpiralDirection], a
|
||||||
ret
|
ret
|
||||||
|
|
||||||
; fails to recognize VICTORY_ROAD_2F, VICTORY_ROAD_3F, all ROCKET_HIDEOUT maps,
|
|
||||||
; POKEMON_MANSION_1F, SEAFOAM_ISLANDS_[B1F-B4F], POWER_PLANT, DIGLETTS_CAVE
|
|
||||||
; and SILPH_CO_[9-11]F as dungeon maps
|
|
||||||
GetBattleTransitionID_IsDungeonMap:
|
GetBattleTransitionID_IsDungeonMap:
|
||||||
ld a, [wCurMap]
|
ld a, [wCurMap]
|
||||||
ld e, a
|
ld e, a
|
||||||
|
|
|
||||||
|
|
@ -39,7 +39,7 @@ TryDoWildEncounter:
|
||||||
; so long as the map is "indoor" and has wild pokemon defined.
|
; so long as the map is "indoor" and has wild pokemon defined.
|
||||||
; ...as long as it's not Viridian Forest or Safari Zone.
|
; ...as long as it's not Viridian Forest or Safari Zone.
|
||||||
ld a, [wCurMap]
|
ld a, [wCurMap]
|
||||||
cp REDS_HOUSE_1F ; is this an indoor map?
|
cp FIRST_INDOOR_MAP ; is this an indoor map?
|
||||||
jr c, .CantEncounter2
|
jr c, .CantEncounter2
|
||||||
ld a, [wCurMapTileset]
|
ld a, [wCurMapTileset]
|
||||||
cp FOREST ; Viridian Forest/Safari Zone
|
cp FOREST ; Viridian Forest/Safari Zone
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ PrintCardKeyText:
|
||||||
ld b, a
|
ld b, a
|
||||||
.silphCoMapListLoop
|
.silphCoMapListLoop
|
||||||
ld a, [hli]
|
ld a, [hli]
|
||||||
cp $ff
|
cp -1
|
||||||
ret z
|
ret z
|
||||||
cp b
|
cp b
|
||||||
jr nz, .silphCoMapListLoop
|
jr nz, .silphCoMapListLoop
|
||||||
|
|
@ -58,18 +58,7 @@ PrintCardKeyText:
|
||||||
ldh [hSpriteIndexOrTextID], a
|
ldh [hSpriteIndexOrTextID], a
|
||||||
jp PrintPredefTextID
|
jp PrintPredefTextID
|
||||||
|
|
||||||
SilphCoMapList:
|
INCLUDE "data/events/card_key_maps.asm"
|
||||||
db SILPH_CO_2F
|
|
||||||
db SILPH_CO_3F
|
|
||||||
db SILPH_CO_4F
|
|
||||||
db SILPH_CO_5F
|
|
||||||
db SILPH_CO_6F
|
|
||||||
db SILPH_CO_7F
|
|
||||||
db SILPH_CO_8F
|
|
||||||
db SILPH_CO_9F
|
|
||||||
db SILPH_CO_10F
|
|
||||||
db SILPH_CO_11F
|
|
||||||
db $FF
|
|
||||||
|
|
||||||
CardKeySuccessText::
|
CardKeySuccessText::
|
||||||
text_far _CardKeySuccessText1
|
text_far _CardKeySuccessText1
|
||||||
|
|
|
||||||
|
|
@ -83,17 +83,18 @@ UnusedPlayerNameLengthFunc:
|
||||||
dec c
|
dec c
|
||||||
jr .loop
|
jr .loop
|
||||||
|
|
||||||
|
diploma_text: MACRO
|
||||||
|
dw \3
|
||||||
|
dwcoord \1, \2
|
||||||
|
ENDM
|
||||||
|
|
||||||
DiplomaTextPointersAndCoords:
|
DiplomaTextPointersAndCoords:
|
||||||
dw DiplomaText
|
; x, y, text
|
||||||
dwcoord 5, 2
|
diploma_text 5, 2, DiplomaText
|
||||||
dw DiplomaPlayer
|
diploma_text 3, 4, DiplomaPlayer
|
||||||
dwcoord 3, 4
|
diploma_text 15, 4, DiplomaEmptyText
|
||||||
dw DiplomaEmptyText
|
diploma_text 2, 6, DiplomaCongrats
|
||||||
dwcoord 15, 4
|
diploma_text 9, 16, DiplomaGameFreak
|
||||||
dw DiplomaCongrats
|
|
||||||
dwcoord 2, 6
|
|
||||||
dw DiplomaGameFreak
|
|
||||||
dwcoord 9, 16
|
|
||||||
|
|
||||||
DiplomaText:
|
DiplomaText:
|
||||||
db CIRCLE_TILE_ID, "Diploma", CIRCLE_TILE_ID, "@"
|
db CIRCLE_TILE_ID, "Diploma", CIRCLE_TILE_ID, "@"
|
||||||
|
|
|
||||||
|
|
@ -17,30 +17,11 @@ PrintBenchGuyText:
|
||||||
ld b, a
|
ld b, a
|
||||||
ld a, [wSpritePlayerStateData1FacingDirection]
|
ld a, [wSpritePlayerStateData1FacingDirection]
|
||||||
cp b
|
cp b
|
||||||
jr nz, .loop ; player isn't facing left at the bench guy
|
jr nz, .loop ; player isn't facing the bench guy
|
||||||
ld a, [hl]
|
ld a, [hl]
|
||||||
jp PrintPredefTextID
|
jp PrintPredefTextID
|
||||||
|
|
||||||
bench_guy_text: MACRO
|
INCLUDE "data/events/bench_guys.asm"
|
||||||
db \1, \2
|
|
||||||
db_tx_pre \3
|
|
||||||
ENDM
|
|
||||||
|
|
||||||
BenchGuyTextPointers:
|
|
||||||
; map id, player facing direction, predef text
|
|
||||||
bench_guy_text VIRIDIAN_POKECENTER, SPRITE_FACING_LEFT, ViridianCityPokecenterBenchGuyText
|
|
||||||
bench_guy_text PEWTER_POKECENTER, SPRITE_FACING_LEFT, PewterCityPokecenterBenchGuyText
|
|
||||||
bench_guy_text CERULEAN_POKECENTER, SPRITE_FACING_LEFT, CeruleanCityPokecenterBenchGuyText
|
|
||||||
bench_guy_text LAVENDER_POKECENTER, SPRITE_FACING_LEFT, LavenderCityPokecenterBenchGuyText
|
|
||||||
bench_guy_text VERMILION_POKECENTER, SPRITE_FACING_LEFT, VermilionCityPokecenterBenchGuyText
|
|
||||||
bench_guy_text CELADON_POKECENTER, SPRITE_FACING_LEFT, CeladonCityPokecenterBenchGuyText
|
|
||||||
bench_guy_text CELADON_HOTEL, SPRITE_FACING_LEFT, CeladonCityHotelText
|
|
||||||
bench_guy_text FUCHSIA_POKECENTER, SPRITE_FACING_LEFT, FuchsiaCityPokecenterBenchGuyText
|
|
||||||
bench_guy_text CINNABAR_POKECENTER, SPRITE_FACING_LEFT, CinnabarIslandPokecenterBenchGuyText
|
|
||||||
bench_guy_text SAFFRON_POKECENTER, SPRITE_FACING_LEFT, SaffronCityPokecenterBenchGuyText
|
|
||||||
bench_guy_text MT_MOON_POKECENTER, SPRITE_FACING_LEFT, MtMoonPokecenterBenchGuyText
|
|
||||||
bench_guy_text ROCK_TUNNEL_POKECENTER, SPRITE_FACING_LEFT, RockTunnelPokecenterBenchGuyText
|
|
||||||
db -1 ; end
|
|
||||||
|
|
||||||
ViridianCityPokecenterBenchGuyText::
|
ViridianCityPokecenterBenchGuyText::
|
||||||
text_far _ViridianCityPokecenterGuyText
|
text_far _ViridianCityPokecenterGuyText
|
||||||
|
|
|
||||||
|
|
@ -56,38 +56,22 @@ PokedexRatingText_441cc:
|
||||||
text_end
|
text_end
|
||||||
|
|
||||||
DexRatingsTable:
|
DexRatingsTable:
|
||||||
db 10
|
dbw 10, PokedexRatingText_44201
|
||||||
dw PokedexRatingText_44201
|
dbw 20, PokedexRatingText_44206
|
||||||
db 20
|
dbw 30, PokedexRatingText_4420b
|
||||||
dw PokedexRatingText_44206
|
dbw 40, PokedexRatingText_44210
|
||||||
db 30
|
dbw 50, PokedexRatingText_44215
|
||||||
dw PokedexRatingText_4420b
|
dbw 60, PokedexRatingText_4421a
|
||||||
db 40
|
dbw 70, PokedexRatingText_4421f
|
||||||
dw PokedexRatingText_44210
|
dbw 80, PokedexRatingText_44224
|
||||||
db 50
|
dbw 90, PokedexRatingText_44229
|
||||||
dw PokedexRatingText_44215
|
dbw 100, PokedexRatingText_4422e
|
||||||
db 60
|
dbw 110, PokedexRatingText_44233
|
||||||
dw PokedexRatingText_4421a
|
dbw 120, PokedexRatingText_44238
|
||||||
db 70
|
dbw 130, PokedexRatingText_4423d
|
||||||
dw PokedexRatingText_4421f
|
dbw 140, PokedexRatingText_44242
|
||||||
db 80
|
dbw 150, PokedexRatingText_44247
|
||||||
dw PokedexRatingText_44224
|
dbw NUM_POKEMON + 1, PokedexRatingText_4424c
|
||||||
db 90
|
|
||||||
dw PokedexRatingText_44229
|
|
||||||
db 100
|
|
||||||
dw PokedexRatingText_4422e
|
|
||||||
db 110
|
|
||||||
dw PokedexRatingText_44233
|
|
||||||
db 120
|
|
||||||
dw PokedexRatingText_44238
|
|
||||||
db 130
|
|
||||||
dw PokedexRatingText_4423d
|
|
||||||
db 140
|
|
||||||
dw PokedexRatingText_44242
|
|
||||||
db 150
|
|
||||||
dw PokedexRatingText_44247
|
|
||||||
db NUM_POKEMON + 1
|
|
||||||
dw PokedexRatingText_4424c
|
|
||||||
|
|
||||||
PokedexRatingText_44201:
|
PokedexRatingText_44201:
|
||||||
text_far _OaksLabText_44201
|
text_far _OaksLabText_44201
|
||||||
|
|
|
||||||
|
|
@ -145,11 +145,11 @@ SetPal_Overworld:
|
||||||
cp CAVERN
|
cp CAVERN
|
||||||
jr z, .caveOrBruno
|
jr z, .caveOrBruno
|
||||||
ld a, [wCurMap]
|
ld a, [wCurMap]
|
||||||
cp REDS_HOUSE_1F
|
cp FIRST_INDOOR_MAP
|
||||||
jr c, .townOrRoute
|
jr c, .townOrRoute
|
||||||
cp CERULEAN_CAVE_2F
|
cp CERULEAN_CAVE_2F
|
||||||
jr c, .normalDungeonOrBuilding
|
jr c, .normalDungeonOrBuilding
|
||||||
cp NAME_RATERS_HOUSE
|
cp CERULEAN_CAVE_1F + 1
|
||||||
jr c, .caveOrBruno
|
jr c, .caveOrBruno
|
||||||
cp LORELEIS_ROOM
|
cp LORELEIS_ROOM
|
||||||
jr z, .Lorelei
|
jr z, .Lorelei
|
||||||
|
|
@ -158,7 +158,7 @@ SetPal_Overworld:
|
||||||
.normalDungeonOrBuilding
|
.normalDungeonOrBuilding
|
||||||
ld a, [wLastMap] ; town or route that current dungeon or building is located
|
ld a, [wLastMap] ; town or route that current dungeon or building is located
|
||||||
.townOrRoute
|
.townOrRoute
|
||||||
cp SAFFRON_CITY + 1
|
cp NUM_CITY_MAPS
|
||||||
jr c, .town
|
jr c, .town
|
||||||
ld a, PAL_ROUTE - 1
|
ld a, PAL_ROUTE - 1
|
||||||
.town
|
.town
|
||||||
|
|
|
||||||
|
|
@ -1573,7 +1573,7 @@ ItemUseCardKey:
|
||||||
ld b, a
|
ld b, a
|
||||||
.loop
|
.loop
|
||||||
ld a, [hli]
|
ld a, [hli]
|
||||||
cp $ff
|
cp -1
|
||||||
jp z, ItemUseNotTime
|
jp z, ItemUseNotTime
|
||||||
cp b
|
cp b
|
||||||
jr nz, .nextEntry1
|
jr nz, .nextEntry1
|
||||||
|
|
@ -1600,46 +1600,7 @@ ItemUseCardKey:
|
||||||
set 7, [hl]
|
set 7, [hl]
|
||||||
ret
|
ret
|
||||||
|
|
||||||
; These tables are probably supposed to be door locations in Silph Co.,
|
INCLUDE "data/events/card_key_coords.asm"
|
||||||
; but they are unused.
|
|
||||||
; The reason there are 3 tables is unknown.
|
|
||||||
|
|
||||||
; Format:
|
|
||||||
; 00: Map ID
|
|
||||||
; 01: Y
|
|
||||||
; 02: X
|
|
||||||
; 03: ID?
|
|
||||||
|
|
||||||
CardKeyTable1:
|
|
||||||
db SILPH_CO_2F,$04,$04,$00
|
|
||||||
db SILPH_CO_2F,$04,$05,$01
|
|
||||||
db SILPH_CO_4F,$0C,$04,$02
|
|
||||||
db SILPH_CO_4F,$0C,$05,$03
|
|
||||||
db SILPH_CO_7F,$06,$0A,$04
|
|
||||||
db SILPH_CO_7F,$06,$0B,$05
|
|
||||||
db SILPH_CO_9F,$04,$12,$06
|
|
||||||
db SILPH_CO_9F,$04,$13,$07
|
|
||||||
db SILPH_CO_10F,$08,$0A,$08
|
|
||||||
db SILPH_CO_10F,$08,$0B,$09
|
|
||||||
db $ff
|
|
||||||
|
|
||||||
CardKeyTable2:
|
|
||||||
db SILPH_CO_3F,$08,$09,$0A
|
|
||||||
db SILPH_CO_3F,$09,$09,$0B
|
|
||||||
db SILPH_CO_5F,$04,$07,$0C
|
|
||||||
db SILPH_CO_5F,$05,$07,$0D
|
|
||||||
db SILPH_CO_6F,$0C,$05,$0E
|
|
||||||
db SILPH_CO_6F,$0D,$05,$0F
|
|
||||||
db SILPH_CO_8F,$08,$07,$10
|
|
||||||
db SILPH_CO_8F,$09,$07,$11
|
|
||||||
db SILPH_CO_9F,$08,$03,$12
|
|
||||||
db SILPH_CO_9F,$09,$03,$13
|
|
||||||
db $ff
|
|
||||||
|
|
||||||
CardKeyTable3:
|
|
||||||
db SILPH_CO_11F,$08,$09,$14
|
|
||||||
db SILPH_CO_11F,$09,$09,$15
|
|
||||||
db $ff
|
|
||||||
|
|
||||||
ItemUsePokedoll:
|
ItemUsePokedoll:
|
||||||
ld a, [wIsInBattle]
|
ld a, [wIsInBattle]
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,5 @@
|
||||||
|
NOT_VISITED EQU $fe
|
||||||
|
|
||||||
DisplayTownMap:
|
DisplayTownMap:
|
||||||
call LoadTownMap
|
call LoadTownMap
|
||||||
ld hl, wUpdateSpritesEnabled
|
ld hl, wUpdateSpritesEnabled
|
||||||
|
|
@ -224,7 +226,7 @@ LoadTownMap_Fly::
|
||||||
ld a, [hl]
|
ld a, [hl]
|
||||||
cp $ff
|
cp $ff
|
||||||
jr z, .wrapToStartOfList
|
jr z, .wrapToStartOfList
|
||||||
cp $fe
|
cp NOT_VISITED
|
||||||
jr z, .pressedUp ; skip past unvisited towns
|
jr z, .pressedUp ; skip past unvisited towns
|
||||||
jp .townMapFlyLoop
|
jp .townMapFlyLoop
|
||||||
.wrapToStartOfList
|
.wrapToStartOfList
|
||||||
|
|
@ -236,11 +238,11 @@ LoadTownMap_Fly::
|
||||||
ld a, [hl]
|
ld a, [hl]
|
||||||
cp $ff
|
cp $ff
|
||||||
jr z, .wrapToEndOfList
|
jr z, .wrapToEndOfList
|
||||||
cp $fe
|
cp NOT_VISITED
|
||||||
jr z, .pressedDown ; skip past unvisited towns
|
jr z, .pressedDown ; skip past unvisited towns
|
||||||
jp .townMapFlyLoop
|
jp .townMapFlyLoop
|
||||||
.wrapToEndOfList
|
.wrapToEndOfList
|
||||||
ld hl, wFlyLocationsList + 11
|
ld hl, wFlyLocationsList + NUM_CITY_MAPS
|
||||||
jr .pressedDown
|
jr .pressedDown
|
||||||
|
|
||||||
ToText:
|
ToText:
|
||||||
|
|
@ -254,11 +256,11 @@ BuildFlyLocationsList:
|
||||||
ld e, a
|
ld e, a
|
||||||
ld a, [wTownVisitedFlag + 1]
|
ld a, [wTownVisitedFlag + 1]
|
||||||
ld d, a
|
ld d, a
|
||||||
ld bc, SAFFRON_CITY + 1
|
lb bc, 0, NUM_CITY_MAPS
|
||||||
.loop
|
.loop
|
||||||
srl d
|
srl d
|
||||||
rr e
|
rr e
|
||||||
ld a, $fe ; store $fe if the town hasn't been visited
|
ld a, NOT_VISITED
|
||||||
jr nc, .notVisited
|
jr nc, .notVisited
|
||||||
ld a, b ; store the map number of the town if it has been visited
|
ld a, b ; store the map number of the town if it has been visited
|
||||||
.notVisited
|
.notVisited
|
||||||
|
|
@ -554,7 +556,7 @@ ZeroOutDuplicatesInList:
|
||||||
LoadTownMapEntry:
|
LoadTownMapEntry:
|
||||||
; in: a = map number
|
; in: a = map number
|
||||||
; out: lower nybble of [de] = x, upper nybble of [de] = y, hl = address of name
|
; out: lower nybble of [de] = x, upper nybble of [de] = y, hl = address of name
|
||||||
cp REDS_HOUSE_1F
|
cp FIRST_INDOOR_MAP
|
||||||
jr c, .external
|
jr c, .external
|
||||||
ld bc, 4
|
ld bc, 4
|
||||||
ld hl, InternalMapEntries
|
ld hl, InternalMapEntries
|
||||||
|
|
|
||||||
|
|
@ -255,7 +255,7 @@ ReadSpriteSheetData:
|
||||||
; sets carry if the map is a city or route, unsets carry if not
|
; sets carry if the map is a city or route, unsets carry if not
|
||||||
InitOutsideMapSprites:
|
InitOutsideMapSprites:
|
||||||
ld a, [wCurMap]
|
ld a, [wCurMap]
|
||||||
cp REDS_HOUSE_1F ; is the map a city or a route (map ID less than $25)?
|
cp FIRST_INDOOR_MAP ; is the map a city or a route?
|
||||||
ret nc ; if not, return
|
ret nc ; if not, return
|
||||||
ld hl, MapSpriteSets
|
ld hl, MapSpriteSets
|
||||||
add l
|
add l
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
MarkTownVisitedAndLoadMissableObjects::
|
MarkTownVisitedAndLoadMissableObjects::
|
||||||
ld a, [wCurMap]
|
ld a, [wCurMap]
|
||||||
cp ROUTE_1
|
cp FIRST_ROUTE_MAP
|
||||||
jr nc, .notInTown
|
jr nc, .notInTown
|
||||||
ld c, a
|
ld c, a
|
||||||
ld b, FLAG_SET
|
ld b, FLAG_SET
|
||||||
|
|
|
||||||
4
wram.asm
4
wram.asm
|
|
@ -897,7 +897,7 @@ wBadgeNameTile::
|
||||||
; first tile ID of the name being drawn
|
; first tile ID of the name being drawn
|
||||||
|
|
||||||
wFlyLocationsList::
|
wFlyLocationsList::
|
||||||
; 11 bytes plus $ff sentinel values at each end
|
; NUM_CITY_MAPS bytes plus $ff sentinel values at each end
|
||||||
|
|
||||||
wSlotMachineWheel1Offset::
|
wSlotMachineWheel1Offset::
|
||||||
|
|
||||||
|
|
@ -2818,7 +2818,7 @@ wWalkBikeSurfState::
|
||||||
ds 10
|
ds 10
|
||||||
|
|
||||||
wTownVisitedFlag::
|
wTownVisitedFlag::
|
||||||
flag_array 13
|
flag_array NUM_CITY_MAPS
|
||||||
|
|
||||||
wSafariSteps::
|
wSafariSteps::
|
||||||
; starts at 502
|
; starts at 502
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue