Add engine/overworld/landmarks.asm and engine/events/fish.asm.

This commit is contained in:
entrpntr
2020-05-09 20:31:18 -04:00
parent 14f623c65c
commit fa45a690ee
6 changed files with 521 additions and 106 deletions

View File

@@ -229,6 +229,12 @@ NUM_FRUIT_TREES EQU const_value - 1
const DECODESC_BIG_DOLL ; 3
const DECODESC_CONSOLE ; 4
; ActivateFishingSwarm setval arguments
const_def
const FISHSWARM_NONE ; 0
const FISHSWARM_QWILFISH ; 1
const FISHSWARM_REMORAID ; 2
; SpecialGameboyCheck return values
const_def
const GBCHECK_GB ; 0

205
data/maps/landmarks.asm Normal file
View File

@@ -0,0 +1,205 @@
landmark: MACRO
; x, y, name
db \1 + 8, \2 + 16
dw \3
ENDM
Landmarks:
; entries correspond to constants/landmark_constants.asm
dbbw 0, 0, SpecialMapName
landmark 140, 100, NewBarkTownName
landmark 128, 100, Route29Name
landmark 100, 100, CherrygroveCityName
landmark 100, 80, Route30Name
landmark 96, 60, Route31Name
landmark 84, 60, VioletCityName
landmark 85, 58, SproutTowerName
landmark 84, 92, Route32Name
landmark 76, 76, RuinsOfAlphName
landmark 84, 124, UnionCaveName
landmark 82, 124, Route33Name
landmark 68, 124, AzaleaTownName
landmark 70, 122, SlowpokeWellName
landmark 52, 120, IlexForestName
landmark 52, 112, Route34Name
landmark 52, 92, GoldenrodCityName
landmark 50, 92, RadioTowerName
landmark 52, 76, Route35Name
landmark 52, 60, NationalParkName
landmark 64, 60, Route36Name
landmark 68, 52, Route37Name
landmark 68, 44, EcruteakCityName
landmark 70, 42, TinTowerName
landmark 66, 42, BurnedTowerName
landmark 52, 44, Route38Name
landmark 36, 48, Route39Name
landmark 36, 60, OlivineCityName
landmark 38, 62, LighthouseName
landmark 28, 64, Route40Name
landmark 28, 92, WhirlIslandsName
landmark 28, 100, Route41Name
landmark 20, 100, CianwoodCityName
landmark 92, 44, Route42Name
landmark 84, 44, MtMortarName
landmark 108, 44, MahoganyTownName
landmark 108, 36, Route43Name
landmark 108, 28, LakeOfRageName
landmark 120, 44, Route44Name
landmark 130, 38, IcePathName
landmark 132, 44, BlackthornCityName
landmark 132, 36, DragonsDenName
landmark 132, 64, Route45Name
landmark 112, 72, DarkCaveName
landmark 124, 88, Route46Name
landmark 148, 68, SilverCaveName
landmark 52, 108, PalletTownName
landmark 52, 92, Route1Name
landmark 52, 76, ViridianCityName
landmark 52, 64, Route2Name
landmark 52, 52, PewterCityName
landmark 64, 52, Route3Name
landmark 76, 52, MtMoonName
landmark 88, 52, Route4Name
landmark 100, 52, CeruleanCityName
landmark 100, 44, Route24Name
landmark 108, 36, Route25Name
landmark 100, 60, Route5Name
landmark 108, 76, UndergroundName
landmark 100, 76, Route6Name
landmark 100, 84, VermilionCityName
landmark 88, 60, DiglettsCaveName
landmark 88, 68, Route7Name
landmark 116, 68, Route8Name
landmark 116, 52, Route9Name
landmark 132, 52, RockTunnelName
landmark 132, 56, Route10Name
landmark 132, 60, PowerPlantName
landmark 132, 68, LavenderTownName
landmark 140, 68, LavRadioTowerName
landmark 76, 68, CeladonCityName
landmark 100, 68, SaffronCityName
landmark 116, 84, Route11Name
landmark 132, 80, Route12Name
landmark 124, 100, Route13Name
landmark 116, 112, Route14Name
landmark 104, 116, Route15Name
landmark 68, 68, Route16Name
landmark 68, 92, Route17Name
landmark 80, 116, Route18Name
landmark 92, 116, FuchsiaCityName
landmark 92, 128, Route19Name
landmark 76, 132, Route20Name
landmark 68, 132, SeafoamIslandsName
landmark 52, 132, CinnabarIslandName
landmark 52, 120, Route21Name
landmark 36, 68, Route22Name
landmark 28, 52, VictoryRoadName
landmark 28, 44, Route23Name
landmark 28, 36, IndigoPlateauName
landmark 28, 92, Route26Name
landmark 20, 100, Route27Name
landmark 12, 100, TohjoFallsName
landmark 20, 68, Route28Name
landmark 140, 116, FastShipName
NewBarkTownName: db "NEW BARK¯TOWN@"
CherrygroveCityName: db "CHERRYGROVE¯CITY@"
VioletCityName: db "VIOLET CITY@"
AzaleaTownName: db "AZALEA TOWN@"
GoldenrodCityName: db "GOLDENROD¯CITY@"
EcruteakCityName: db "ECRUTEAK¯CITY@"
OlivineCityName: db "OLIVINE¯CITY@"
CianwoodCityName: db "CIANWOOD¯CITY@"
MahoganyTownName: db "MAHOGANY¯TOWN@"
BlackthornCityName: db "BLACKTHORN¯CITY@"
LakeOfRageName: db "LAKE OF¯RAGE@"
SilverCaveName: db "SILVER CAVE@"
SproutTowerName: db "SPROUT¯TOWER@"
RuinsOfAlphName: db "RUINS¯OF ALPH@"
UnionCaveName: db "UNION CAVE@"
SlowpokeWellName: db "SLOWPOKE¯WELL@"
RadioTowerName: db "RADIO TOWER@"
PowerPlantName: db "POWER PLANT@"
NationalParkName: db "NATIONAL¯PARK@"
TinTowerName: db "TIN TOWER@"
LighthouseName: db "LIGHTHOUSE@"
WhirlIslandsName: db "WHIRL¯ISLANDS@"
MtMortarName: db "MT.MORTAR@"
DragonsDenName: db "DRAGON'S¯DEN@"
IcePathName: db "ICE PATH@"
NotApplicableName: db "N/A@" ; "オバケやしき" ("HAUNTED HOUSE") in Japanese
PalletTownName: db "PALLET TOWN@"
ViridianCityName: db "VIRIDIAN¯CITY@"
PewterCityName: db "PEWTER CITY@"
CeruleanCityName: db "CERULEAN¯CITY@"
LavenderTownName: db "LAVENDER¯TOWN@"
VermilionCityName: db "VERMILION¯CITY@"
CeladonCityName: db "CELADON¯CITY@"
SaffronCityName: db "SAFFRON¯CITY@"
FuchsiaCityName: db "FUCHSIA¯CITY@"
CinnabarIslandName: db "CINNABAR¯ISLAND@"
IndigoPlateauName: db "INDIGO¯PLATEAU@"
VictoryRoadName: db "VICTORY¯ROAD@"
MtMoonName: db "MT.MOON@"
RockTunnelName: db "ROCK TUNNEL@"
LavRadioTowerName: db "LAV¯RADIO TOWER@"
SilphCoName: db "SILPH CO.@"
SafariZoneName: db "SAFARI ZONE@"
SeafoamIslandsName: db "SEAFOAM¯ISLANDS@"
PokemonMansionName: db "#MON¯MANSION@"
CeruleanCaveName: db "CERULEAN¯CAVE@"
Route1Name: db "ROUTE 1@"
Route2Name: db "ROUTE 2@"
Route3Name: db "ROUTE 3@"
Route4Name: db "ROUTE 4@"
Route5Name: db "ROUTE 5@"
Route6Name: db "ROUTE 6@"
Route7Name: db "ROUTE 7@"
Route8Name: db "ROUTE 8@"
Route9Name: db "ROUTE 9@"
Route10Name: db "ROUTE 10@"
Route11Name: db "ROUTE 11@"
Route12Name: db "ROUTE 12@"
Route13Name: db "ROUTE 13@"
Route14Name: db "ROUTE 14@"
Route15Name: db "ROUTE 15@"
Route16Name: db "ROUTE 16@"
Route17Name: db "ROUTE 17@"
Route18Name: db "ROUTE 18@"
Route19Name: db "ROUTE 19@"
Route20Name: db "ROUTE 20@"
Route21Name: db "ROUTE 21@"
Route22Name: db "ROUTE 22@"
Route23Name: db "ROUTE 23@"
Route24Name: db "ROUTE 24@"
Route25Name: db "ROUTE 25@"
Route26Name: db "ROUTE 26@"
Route27Name: db "ROUTE 27@"
Route28Name: db "ROUTE 28@"
Route29Name: db "ROUTE 29@"
Route30Name: db "ROUTE 30@"
Route31Name: db "ROUTE 31@"
Route32Name: db "ROUTE 32@"
Route33Name: db "ROUTE 33@"
Route34Name: db "ROUTE 34@"
Route35Name: db "ROUTE 35@"
Route36Name: db "ROUTE 36@"
Route37Name: db "ROUTE 37@"
Route38Name: db "ROUTE 38@"
Route39Name: db "ROUTE 39@"
Route40Name: db "ROUTE 40@"
Route41Name: db "ROUTE 41@"
Route42Name: db "ROUTE 42@"
Route43Name: db "ROUTE 43@"
Route44Name: db "ROUTE 44@"
Route45Name: db "ROUTE 45@"
Route46Name: db "ROUTE 46@"
DarkCaveName: db "DARK CAVE@"
IlexForestName: db "ILEX¯FOREST@"
BurnedTowerName: db "BURNED¯TOWER@"
FastShipName: db "FAST SHIP@"
ViridianForestName: db "VIRIDIAN¯FOREST@"
DiglettsCaveName: db "DIGLETT's¯CAVE@"
TohjoFallsName: db "TOHJO FALLS@"
UndergroundName: db "UNDERGROUND@"
SpecialMapName: db "SPECIAL@"

View File

@@ -1,225 +1,230 @@
FishGroups: ; 92488
dbwww 50 percent + 1, .Shore_Old, .Shore_Good, .Shore_Super
dbwww 50 percent + 1, .Ocean_Old, .Ocean_Good, .Ocean_Super
dbwww 50 percent + 1, .Lake_Old, .Lake_Good, .Lake_Super
dbwww 50 percent + 1, .Pond_Old, .Pond_Good, .Pond_Super
dbwww 50 percent + 1, .Dratini_Old, .Dratini_Good, .Dratini_Super
dbwww 50 percent + 1, .Qwilfish_Swarm_Old, .Qwilfish_Swarm_Good, .Qwilfish_Swarm_Super
dbwww 50 percent + 1, .Remoraid_Swarm_Old, .Remoraid_Swarm_Good, .Remoraid_Swarm_Super
dbwww 50 percent + 1, .Gyarados_Old, .Gyarados_Good, .Gyarados_Super
dbwww 50 percent + 1, .Dratini_2_Old, .Dratini_2_Good, .Dratini_2_Super
dbwww 50 percent + 1, .WhirlIslands_Old, .WhirlIslands_Good, .WhirlIslands_Super
dbwww 50 percent + 1, .Qwilfish_Old, .Qwilfish_Good, .Qwilfish_Super
dbwww 50 percent + 1, .Remoraid_Old, .Remoraid_Good, .Remoraid_Super
dbwww 50 percent + 1, .Qwilfish_NoSwarm_Old, .Qwilfish_NoSwarm_Good, .Qwilfish_NoSwarm_Super
time_group EQUS "0," ; use the nth TimeFishGroups entry
.Shore_Old: ; 924e3
fishgroup: MACRO
; chance, old rod, good rod, super rod
dbwww \1, \2, \3, \4
ENDM
FishGroups:
; entries correspond to FISHGROUP_* constants
fishgroup 50 percent + 1, .Shore_Old, .Shore_Good, .Shore_Super
fishgroup 50 percent + 1, .Ocean_Old, .Ocean_Good, .Ocean_Super
fishgroup 50 percent + 1, .Lake_Old, .Lake_Good, .Lake_Super
fishgroup 50 percent + 1, .Pond_Old, .Pond_Good, .Pond_Super
fishgroup 50 percent + 1, .Dratini_Old, .Dratini_Good, .Dratini_Super
fishgroup 50 percent + 1, .Qwilfish_Swarm_Old, .Qwilfish_Swarm_Good, .Qwilfish_Swarm_Super
fishgroup 50 percent + 1, .Remoraid_Swarm_Old, .Remoraid_Swarm_Good, .Remoraid_Swarm_Super
fishgroup 50 percent + 1, .Gyarados_Old, .Gyarados_Good, .Gyarados_Super
fishgroup 50 percent + 1, .Dratini_2_Old, .Dratini_2_Good, .Dratini_2_Super
fishgroup 50 percent + 1, .WhirlIslands_Old, .WhirlIslands_Good, .WhirlIslands_Super
fishgroup 50 percent + 1, .Qwilfish_Old, .Qwilfish_Good, .Qwilfish_Super
fishgroup 50 percent + 1, .Remoraid_Old, .Remoraid_Good, .Remoraid_Super
fishgroup 50 percent + 1, .Qwilfish_NoSwarm_Old, .Qwilfish_NoSwarm_Good, .Qwilfish_NoSwarm_Super
.Shore_Old:
db 70 percent + 1, MAGIKARP, 10
db 85 percent + 1, MAGIKARP, 10
db 100 percent, KRABBY, 10
.Shore_Good: ; 924ec
.Shore_Good:
db 35 percent, MAGIKARP, 20
db 70 percent, KRABBY, 20
db 90 percent + 1, KRABBY, 20
db 100 percent, 0, 0
.Shore_Super: ; 924f8
db 100 percent, time_group 0
.Shore_Super:
db 40 percent, KRABBY, 40
db 70 percent, 0, 1
db 70 percent, time_group 1
db 90 percent + 1, KRABBY, 40
db 100 percent, KINGLER, 40
.Ocean_Old: ; 92504
.Ocean_Old:
db 70 percent + 1, MAGIKARP, 10
db 85 percent + 1, MAGIKARP, 10
db 100 percent, TENTACOOL, 10
.Ocean_Good: ; 9250d
.Ocean_Good:
db 35 percent, MAGIKARP, 20
db 70 percent, TENTACOOL, 20
db 90 percent + 1, CHINCHOU, 20
db 100 percent, 0, 2
.Ocean_Super: ; 92519
db 100 percent, time_group 2
.Ocean_Super:
db 40 percent, CHINCHOU, 40
db 70 percent, 0, 3
db 70 percent, time_group 3
db 90 percent + 1, TENTACRUEL, 40
db 100 percent, LANTURN, 40
.Lake_Old: ; 92525
.Lake_Old:
db 70 percent + 1, MAGIKARP, 10
db 85 percent + 1, MAGIKARP, 10
db 100 percent, GOLDEEN, 10
.Lake_Good: ; 9252e
.Lake_Good:
db 35 percent, MAGIKARP, 20
db 70 percent, GOLDEEN, 20
db 90 percent + 1, GOLDEEN, 20
db 100 percent, 0, 4
.Lake_Super: ; 9253a
db 100 percent, time_group 4
.Lake_Super:
db 40 percent, GOLDEEN, 40
db 70 percent, 0, 5
db 70 percent, time_group 5
db 90 percent + 1, MAGIKARP, 40
db 100 percent, SEAKING, 40
.Pond_Old: ; 92546
.Pond_Old:
db 70 percent + 1, MAGIKARP, 10
db 85 percent + 1, MAGIKARP, 10
db 100 percent, POLIWAG, 10
.Pond_Good: ; 9254f
.Pond_Good:
db 35 percent, MAGIKARP, 20
db 70 percent, POLIWAG, 20
db 90 percent + 1, POLIWAG, 20
db 100 percent, 0, 6
.Pond_Super: ; 9255b
db 100 percent, time_group 6
.Pond_Super:
db 40 percent, POLIWAG, 40
db 70 percent, 0, 7
db 70 percent, time_group 7
db 90 percent + 1, MAGIKARP, 40
db 100 percent, POLIWAG, 40
.Dratini_Old: ; 92567
.Dratini_Old:
db 70 percent + 1, MAGIKARP, 10
db 85 percent + 1, MAGIKARP, 10
db 100 percent, MAGIKARP, 10
.Dratini_Good: ; 92570
.Dratini_Good:
db 35 percent, MAGIKARP, 20
db 70 percent, MAGIKARP, 20
db 90 percent + 1, MAGIKARP, 20
db 100 percent, 0, 8
.Dratini_Super: ; 9257c
db 100 percent, time_group 8
.Dratini_Super:
db 40 percent, MAGIKARP, 40
db 70 percent, 0, 9
db 70 percent, time_group 9
db 90 percent + 1, MAGIKARP, 40
db 100 percent, DRAGONAIR, 40
.Qwilfish_Swarm_Old: ; 92588
.Qwilfish_Swarm_Old:
db 70 percent + 1, MAGIKARP, 5
db 85 percent + 1, MAGIKARP, 5
db 100 percent, QWILFISH, 5
.Qwilfish_Swarm_Good: ; 92591
.Qwilfish_Swarm_Good:
db 35 percent, MAGIKARP, 20
db 70 percent, QWILFISH, 20
db 90 percent + 1, QWILFISH, 20
db 100 percent, 0, 10
.Qwilfish_Swarm_Super: ; 9259d
db 100 percent, time_group 10
.Qwilfish_Swarm_Super:
db 40 percent, QWILFISH, 40
db 70 percent, 0, 11
db 70 percent, time_group 11
db 90 percent + 1, QWILFISH, 40
db 100 percent, QWILFISH, 40
.Remoraid_Swarm_Old: ; 925a9
.Remoraid_Swarm_Old:
db 70 percent + 1, MAGIKARP, 10
db 85 percent + 1, MAGIKARP, 10
db 100 percent, REMORAID, 10
.Remoraid_Swarm_Good: ; 925b2
.Remoraid_Swarm_Good:
db 35 percent, MAGIKARP, 20
db 70 percent, REMORAID, 20
db 90 percent + 1, REMORAID, 20
db 100 percent, 0, 12
.Remoraid_Swarm_Super: ; 925be
db 100 percent, time_group 12
.Remoraid_Swarm_Super:
db 40 percent, REMORAID, 40
db 70 percent, 0, 13
db 70 percent, time_group 13
db 90 percent + 1, REMORAID, 40
db 100 percent, REMORAID, 40
.Gyarados_Old: ; 925ca
.Gyarados_Old:
db 70 percent + 1, MAGIKARP, 10
db 85 percent + 1, MAGIKARP, 10
db 100 percent, MAGIKARP, 10
.Gyarados_Good: ; 925d3
.Gyarados_Good:
db 35 percent, MAGIKARP, 20
db 70 percent, MAGIKARP, 20
db 90 percent + 1, MAGIKARP, 20
db 100 percent, 0, 14
.Gyarados_Super: ; 925df
db 100 percent, time_group 14
.Gyarados_Super:
db 40 percent, MAGIKARP, 40
db 70 percent, 0, 15
db 70 percent, time_group 15
db 90 percent + 1, MAGIKARP, 40
db 100 percent, MAGIKARP, 40
.Dratini_2_Old: ; 925eb
.Dratini_2_Old:
db 70 percent + 1, MAGIKARP, 10
db 85 percent + 1, MAGIKARP, 10
db 100 percent, MAGIKARP, 10
.Dratini_2_Good: ; 925f4
.Dratini_2_Good:
db 35 percent, MAGIKARP, 10
db 70 percent, MAGIKARP, 10
db 90 percent + 1, MAGIKARP, 10
db 100 percent, 0, 16
.Dratini_2_Super: ; 92600
db 100 percent, time_group 16
.Dratini_2_Super:
db 40 percent, MAGIKARP, 10
db 70 percent, 0, 17
db 70 percent, time_group 17
db 90 percent + 1, MAGIKARP, 10
db 100 percent, DRAGONAIR, 10
.WhirlIslands_Old: ; 9260c
.WhirlIslands_Old:
db 70 percent + 1, MAGIKARP, 10
db 85 percent + 1, MAGIKARP, 10
db 100 percent, KRABBY, 10
.WhirlIslands_Good: ; 92615
.WhirlIslands_Good:
db 35 percent, MAGIKARP, 20
db 70 percent, KRABBY, 20
db 90 percent + 1, KRABBY, 20
db 100 percent, 0, 18
.WhirlIslands_Super: ; 92621
db 100 percent, time_group 18
.WhirlIslands_Super:
db 40 percent, KRABBY, 40
db 70 percent, 0, 19
db 70 percent, time_group 19
db 90 percent + 1, KINGLER, 40
db 100 percent, SEADRA, 40
.Qwilfish_NoSwarm_Old:
.Qwilfish_Old: ; 9262d
.Qwilfish_Old:
db 70 percent + 1, MAGIKARP, 10
db 85 percent + 1, MAGIKARP, 10
db 100 percent, TENTACOOL, 10
.Qwilfish_NoSwarm_Good:
.Qwilfish_Good: ; 92636
.Qwilfish_Good:
db 35 percent, MAGIKARP, 20
db 70 percent, TENTACOOL, 20
db 90 percent + 1, TENTACOOL, 20
db 100 percent, 0, 20
db 100 percent, time_group 20
.Qwilfish_NoSwarm_Super:
.Qwilfish_Super: ; 92642
.Qwilfish_Super:
db 40 percent, TENTACOOL, 40
db 70 percent, 0, 21
db 70 percent, time_group 21
db 90 percent + 1, MAGIKARP, 40
db 100 percent, QWILFISH, 40
.Remoraid_Old: ; 9264e
.Remoraid_Old:
db 70 percent + 1, MAGIKARP, 10
db 85 percent + 1, MAGIKARP, 10
db 100 percent, POLIWAG, 10
.Remoraid_Good: ; 92657
.Remoraid_Good:
db 35 percent, MAGIKARP, 20
db 70 percent, POLIWAG, 20
db 90 percent + 1, POLIWAG, 20
db 100 percent, 0, 6
.Remoraid_Super: ; 92663
db 100 percent, time_group 6
.Remoraid_Super:
db 40 percent, POLIWAG, 40
db 70 percent, 0, 7
db 70 percent, time_group 7
db 90 percent + 1, MAGIKARP, 40
db 100 percent, REMORAID, 40
; 9266f
TimeFishGroups: ; 9266f
TimeFishGroups:
; day nite
db CORSOLA, 20, STARYU, 20
db CORSOLA, 40, STARYU, 40
db SHELLDER, 20, SHELLDER, 20
db SHELLDER, 40, SHELLDER, 40
db GOLDEEN, 20, GOLDEEN, 20
db GOLDEEN, 40, GOLDEEN, 40
db POLIWAG, 20, POLIWAG, 20
db POLIWAG, 40, POLIWAG, 40
db DRATINI, 20, DRATINI, 20
db DRATINI, 40, DRATINI, 40
db QWILFISH, 20, QWILFISH, 20
db QWILFISH, 40, QWILFISH, 40
db REMORAID, 20, REMORAID, 20
db REMORAID, 40, REMORAID, 40
db GYARADOS, 20, GYARADOS, 20
db GYARADOS, 40, GYARADOS, 40
db DRATINI, 10, DRATINI, 10
db DRATINI, 10, DRATINI, 10
db HORSEA, 20, HORSEA, 20
db HORSEA, 40, HORSEA, 40
db TENTACOOL, 20, TENTACOOL, 20
db TENTACOOL, 40, TENTACOOL, 40
; 926c7
db CORSOLA, 20, STARYU, 20 ; 0
db CORSOLA, 40, STARYU, 40 ; 1
db SHELLDER, 20, SHELLDER, 20 ; 2
db SHELLDER, 40, SHELLDER, 40 ; 3
db GOLDEEN, 20, GOLDEEN, 20 ; 4
db GOLDEEN, 40, GOLDEEN, 40 ; 5
db POLIWAG, 20, POLIWAG, 20 ; 6
db POLIWAG, 40, POLIWAG, 40 ; 7
db DRATINI, 20, DRATINI, 20 ; 8
db DRATINI, 40, DRATINI, 40 ; 9
db QWILFISH, 20, QWILFISH, 20 ; 10
db QWILFISH, 40, QWILFISH, 40 ; 11
db REMORAID, 20, REMORAID, 20 ; 12
db REMORAID, 40, REMORAID, 40 ; 13
db GYARADOS, 20, GYARADOS, 20 ; 14
db GYARADOS, 40, GYARADOS, 40 ; 15
db DRATINI, 10, DRATINI, 10 ; 16
db DRATINI, 10, DRATINI, 10 ; 17
db HORSEA, 20, HORSEA, 20 ; 18
db HORSEA, 40, HORSEA, 40 ; 19
db TENTACOOL, 20, TENTACOOL, 20 ; 20
db TENTACOOL, 40, TENTACOOL, 40 ; 21

121
engine/events/fish.asm Normal file
View File

@@ -0,0 +1,121 @@
Fish:
; Using a fishing rod.
; Fish for monsters with rod e in encounter group d.
; Return monster d at level e.
push af
push bc
push hl
ld b, e
call GetFishGroupIndex
ld hl, FishGroups
rept FISHGROUP_DATA_LENGTH
add hl, de
endr
call .Fish
pop hl
pop bc
pop af
ret
.Fish:
; Fish for monsters with rod b from encounter data in FishGroup at hl.
; Return monster d at level e.
call Random
cp [hl]
jr nc, .no_bite
; Get encounter data by rod:
; 0: Old
; 1: Good
; 2: Super
inc hl
ld e, b
ld d, 0
add hl, de
add hl, de
ld a, [hli]
ld h, [hl]
ld l, a
; Compare the encounter chance to select a Pokemon.
call Random
.loop
cp [hl]
jr z, .ok
jr c, .ok
inc hl
inc hl
inc hl
jr .loop
.ok
inc hl
; Species 0 reads from a time-based encounter table.
ld a, [hli]
ld d, a
and a
call z, .TimeEncounter
ld e, [hl]
ret
.no_bite
ld de, 0
ret
.TimeEncounter:
; The level byte is repurposed as the index for the new table.
ld e, [hl]
ld d, 0
ld hl, TimeFishGroups
rept 4
add hl, de
endr
ld a, [wTimeOfDay]
maskbits NUM_DAYTIMES
cp NITE_F
jr c, .time_species
inc hl
inc hl
.time_species
ld d, [hl]
inc hl
ret
GetFishGroupIndex:
; Return the index of fishgroup d in de.
ld a, d
cp FISHGROUP_QWILFISH
jr z, .qwilfish
cp FISHGROUP_REMORAID
jr z, .remoraid
.done
dec d
ld e, d
ld d, 0
ret
.qwilfish
ld a, [wFishingSwarmFlag]
cp FISHSWARM_QWILFISH
jr nz, .done
ld d, FISHGROUP_QWILFISH_SWARM
jr .done
.remoraid
ld a, [wFishingSwarmFlag]
cp FISHSWARM_REMORAID
jr nz, .done
ld d, FISHGROUP_REMORAID_SWARM
jr .done
INCLUDE "data/wild/fish.asm"

View File

@@ -0,0 +1,82 @@
GetLandmarkCoords:
; Return coordinates (d, e) of landmark e.
push hl
ld l, e
ld h, 0
add hl, hl
add hl, hl
ld de, Landmarks
add hl, de
ld a, [hli]
ld e, a
ld d, [hl]
pop hl
ret
GetLandmarkName::
; Copy the name of landmark e to wStringBuffer1.
push hl
push de
push bc
ld l, e
ld h, 0
add hl, hl
add hl, hl
ld de, Landmarks + 2
add hl, de
ld a, [hli]
ld h, [hl]
ld l, a
ld de, wStringBuffer1
ld c, 18
.copy
ld a, [hli]
ld [de], a
inc de
dec c
jr nz, .copy
pop bc
pop de
pop hl
ret
INCLUDE "data/maps/landmarks.asm"
RegionCheck:
; Checks if the player is in Kanto or Johto.
; If in Johto, returns 0 in e.
; If in Kanto, returns 1 in e.
ld a, [wMapGroup]
ld b, a
ld a, [wMapNumber]
ld c, a
call GetWorldMapLocation
cp LANDMARK_FAST_SHIP ; S.S. Aqua
jr z, .johto
cp LANDMARK_SPECIAL
jr nz, .checkagain
; In a special map, get the backup map group / map id
ld a, [wBackupMapGroup]
ld b, a
ld a, [wBackupMapNumber]
ld c, a
call GetWorldMapLocation
.checkagain
cp KANTO_LANDMARK
jr c, .johto
; Victory Road area is considered to be Johto.
cp LANDMARK_VICTORY_ROAD
jr c, .kanto
.johto
ld e, JOHTO_REGION
ret
.kanto
ld e, KANTO_REGION
ret

View File

@@ -593,13 +593,9 @@ SECTION "bank24", ROMX
INCLUDE "engine/phone/phone.asm"
INCLUDE "engine/rtc/timeset.asm"
INCLUDE "engine/pokegear/pokegear.asm"
INCLUDE "engine/overworld/landmarks.asm"
INCLUDE "engine/events/fish.asm"
GetLandmarkCoords::
dr $92355, $92364
GetLandmarkName::
dr $92364, $9297a
Fish::
dr $9297a, $92c36
_SlotMachine::
dr $92c36, $93f86