diff options
author | entrpntr <entrpntr@gmail.com> | 2020-05-09 20:31:18 -0400 |
---|---|---|
committer | entrpntr <entrpntr@gmail.com> | 2020-05-09 20:31:18 -0400 |
commit | fa45a690ee4b7734b371f18addcd35184df97c86 (patch) | |
tree | 9b350107641d8a614580cdd5d4d1e1c3ddcb9492 | |
parent | 14f623c65c3f80ade737ba9ace7f1ba132e71939 (diff) |
Add engine/overworld/landmarks.asm and engine/events/fish.asm.
-rw-r--r-- | constants/script_constants.asm | 6 | ||||
-rw-r--r-- | data/maps/landmarks.asm | 205 | ||||
-rw-r--r-- | data/wild/fish.asm | 205 | ||||
-rw-r--r-- | engine/events/fish.asm | 121 | ||||
-rw-r--r-- | engine/overworld/landmarks.asm | 82 | ||||
-rw-r--r-- | main.asm | 8 |
6 files changed, 521 insertions, 106 deletions
diff --git a/constants/script_constants.asm b/constants/script_constants.asm index 49588f84..de59a7ee 100644 --- a/constants/script_constants.asm +++ b/constants/script_constants.asm @@ -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 diff --git a/data/maps/landmarks.asm b/data/maps/landmarks.asm new file mode 100644 index 00000000..8e25aca2 --- /dev/null +++ b/data/maps/landmarks.asm @@ -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@" diff --git a/data/wild/fish.asm b/data/wild/fish.asm index de7e57a3..1976c8f9 100644 --- a/data/wild/fish.asm +++ b/data/wild/fish.asm @@ -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 diff --git a/engine/events/fish.asm b/engine/events/fish.asm new file mode 100644 index 00000000..8cdcd3f2 --- /dev/null +++ b/engine/events/fish.asm @@ -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" diff --git a/engine/overworld/landmarks.asm b/engine/overworld/landmarks.asm new file mode 100644 index 00000000..bee64c75 --- /dev/null +++ b/engine/overworld/landmarks.asm @@ -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 @@ -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 |