diff options
author | Rangi <35663410+Rangi42@users.noreply.github.com> | 2021-03-08 07:01:30 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-03-08 07:01:30 -0800 |
commit | f9431c6aab479601ee0229a109154fa4f8b8b889 (patch) | |
tree | 39a5c61fd37951b562c35db534d16146d531a7e5 /data | |
parent | fb3e541e86ac6c95ad027d9c5dac055f00643aa7 (diff) | |
parent | e950809640f81c5d621c39becc4dcce15a82c064 (diff) |
Merge pull request #69 from Rangi42/tables
Verify data table sizes with table_width and assert_table_length macros
Diffstat (limited to 'data')
80 files changed, 518 insertions, 273 deletions
diff --git a/data/battle/effect_command_pointers.asm b/data/battle/effect_command_pointers.asm index d1f747a1..7239e815 100644 --- a/data/battle/effect_command_pointers.asm +++ b/data/battle/effect_command_pointers.asm @@ -4,6 +4,7 @@ BattleCommandPointers: ; entries correspond to macros/scripts/battle_commands.asm + table_width 2, BattleCommandPointers dw BattleCommand_CheckTurn dw BattleCommand_CheckObedience dw BattleCommand_UsedMoveText @@ -179,3 +180,4 @@ BattleCommandPointers: dw BattleCommand_SuperEffectiveLoopText dw BattleCommand_StartLoop dw BattleCommand_Curl + assert_table_length NUM_EFFECT_COMMANDS diff --git a/data/battle_anims/framesets.asm b/data/battle_anims/framesets.asm index a5641570..555ec30f 100644 --- a/data/battle_anims/framesets.asm +++ b/data/battle_anims/framesets.asm @@ -1,5 +1,6 @@ BattleAnimFrameData: ; entries correspond to BATTLEANIMFRAMESET_* constants + table_width 2, BattleAnimFrameData dw .Frameset_00 ; BATTLEANIMFRAMESET_00 dw .Frameset_01 ; BATTLEANIMFRAMESET_01 dw .Frameset_02 ; BATTLEANIMFRAMESET_02 @@ -185,6 +186,7 @@ BattleAnimFrameData: dw .Frameset_b6 ; BATTLEANIMFRAMESET_B6 dw .Frameset_b7 ; BATTLEANIMFRAMESET_B7 dw .Frameset_b8 ; BATTLEANIMFRAMESET_B8 + assert_table_length NUM_BATTLEANIMFRAMESETS .Frameset_00: frame BATTLEANIMOAMSET_00, 6 diff --git a/data/battle_anims/oam.asm b/data/battle_anims/oam.asm index 4bf4a331..73f24ec5 100644 --- a/data/battle_anims/oam.asm +++ b/data/battle_anims/oam.asm @@ -1,5 +1,6 @@ BattleAnimOAMData: ; entries correspond to BATTLEANIMOAMSET_* constants + table_width 4, BattleAnimOAMData ; vtile offset, data length, data pointer dbbw $00, 16, .OAMData_00 ; BATTLEANIMOAMSET_00 dbbw $04, 9, .OAMData_01 ; BATTLEANIMOAMSET_01 @@ -217,6 +218,7 @@ BattleAnimOAMData: dbbw $00, 6, .OAMData_d5 ; BATTLEANIMOAMSET_D5 dbbw $00, 14, .OAMData_d6 ; BATTLEANIMOAMSET_D6 dbbw $00, 12, .OAMData_d7 ; BATTLEANIMOAMSET_D7 + assert_table_length NUM_BATTLEANIMOAMSETS .OAMData_11: dbsprite -1, -1, 4, 0, $00, $0 diff --git a/data/battle_anims/object_gfx.asm b/data/battle_anims/object_gfx.asm index b132c0ed..103b97eb 100644 --- a/data/battle_anims/object_gfx.asm +++ b/data/battle_anims/object_gfx.asm @@ -6,6 +6,7 @@ ENDM AnimObjGFX: ; entries correspond to ANIM_GFX_* constants + table_width 4, AnimObjGFX anim_obj_gfx 0, AnimObj00GFX anim_obj_gfx 21, AnimObjHitGFX anim_obj_gfx 6, AnimObjCutGFX @@ -48,3 +49,4 @@ AnimObjGFX: anim_obj_gfx 24, AnimObjAeroblastGFX anim_obj_gfx 1, NULL anim_obj_gfx 1, NULL + assert_table_length NUM_ANIM_GFX + 1 diff --git a/data/battle_anims/objects.asm b/data/battle_anims/objects.asm index 16dc7e65..1f7d7b4a 100644 --- a/data/battle_anims/objects.asm +++ b/data/battle_anims/objects.asm @@ -18,6 +18,7 @@ ENDM BattleAnimObjects: ; entries correspond to ANIM_OBJ_* constants + table_width BATTLEANIMOBJ_LENGTH, BattleAnimObjects ; ANIM_OBJ_HIT_BIG_YFIX battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_00, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_HIT ; ANIM_OBJ_HIT_YFIX @@ -394,3 +395,4 @@ BattleAnimObjects: battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_B7, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_ENEMY, ANIM_GFX_PLAYERHEAD ; ANIM_OBJ_PLAYERHEAD_2ROW battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_B8, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_PLAYER, ANIM_GFX_ENEMYFEET + assert_table_length NUM_ANIM_OBJS diff --git a/data/collision/collision_permissions.asm b/data/collision/collision_permissions.asm index 57172ca5..188338ca 100644 --- a/data/collision/collision_permissions.asm +++ b/data/collision/collision_permissions.asm @@ -1,5 +1,6 @@ TileCollisionTable:: ; entries correspond to COLL_* constants + table_width 1, TileCollisionTable db LAND_TILE ; COLL_FLOOR db LAND_TILE ; COLL_01 db LAND_TILE ; 02 @@ -256,3 +257,4 @@ TileCollisionTable:: db LAND_TILE ; fd db LAND_TILE ; fe db WALL_TILE ; COLL_FF + assert_table_length $100 diff --git a/data/credits_strings_pointers.asm b/data/credits_strings_pointers.asm index 4d79bfad..0b178d1d 100644 --- a/data/credits_strings_pointers.asm +++ b/data/credits_strings_pointers.asm @@ -1,5 +1,6 @@ CreditsStringsPointers: ; entries correspond to constants/credits_constants.asm + table_width 2, CreditsStringsPointers dw Credits_SatoshiTajiri dw Credits_JunichiMasuda dw Credits_TetsuyaWatanabe @@ -76,3 +77,4 @@ CreditsStringsPointers: dw Credits_UsCoordination dw Credits_TextTranslation dw Credits_PaadTesting + assert_table_length NUM_CREDITS_STRINGS diff --git a/data/decorations/attributes.asm b/data/decorations/attributes.asm index 77cd1388..5e62c3a1 100644 --- a/data/decorations/attributes.asm +++ b/data/decorations/attributes.asm @@ -1,5 +1,5 @@ decoration: MACRO - ; type, name, command, event flag, tile/sprite + ; type, name, action, event flag, tile/sprite db \1, \2, \3 dw \4 db \5 @@ -7,6 +7,7 @@ ENDM DecorationAttributes: ; entries correspond to deco constants + table_width DECOATTR_STRUCT_LENGTH, DecorationAttributes decoration DECO_PLANT, 0, 0, EVENT_TEMPORARY_UNTIL_MAP_RELOAD_1, 0 decoration DECO_PLANT, PUT_IT_AWAY, PUT_AWAY_BED, EVENT_TEMPORARY_UNTIL_MAP_RELOAD_1, 0 decoration DECO_BED, FEATHERY_BED, SET_UP_BED, EVENT_DECO_BED_1, $1b @@ -60,3 +61,4 @@ DecorationAttributes: decoration DECO_DOLL, TENTACOOL, SET_UP_DOLL, EVENT_DECO_TENTACOOL_DOLL, SPRITE_TENTACOOL decoration DECO_PLANT, GOLD_TROPHY, SET_UP_DOLL, EVENT_DECO_GOLD_TROPHY, SPRITE_GOLD_TROPHY decoration DECO_PLANT, SILVER_TROPHY, SET_UP_DOLL, EVENT_DECO_SILVER_TROPHY, SPRITE_SILVER_TROPHY + assert_table_length NUM_DECOS + NUM_DECO_CATEGORIES + 1 diff --git a/data/decorations/decorations.asm b/data/decorations/decorations.asm index e3ec28f1..a5519efa 100644 --- a/data/decorations/decorations.asm +++ b/data/decorations/decorations.asm @@ -1,5 +1,7 @@ DecorationIDs: ; see constants/deco_constants.asm + table_width 1, DecorationIDs + db DECO_FEATHERY_BED ; 2 db DECO_PINK_BED ; 3 db DECO_POLKADOT_BED ; 4 @@ -52,4 +54,5 @@ DecorationIDs: db DECO_GOLD_TROPHY_DOLL ; 33 db DECO_SILVER_TROPHY_DOLL ; 34 + assert_table_length NUM_DECOS db -1 ; end diff --git a/data/default_options.asm b/data/default_options.asm index 00fcfa10..76de3438 100644 --- a/data/default_options.asm +++ b/data/default_options.asm @@ -14,3 +14,5 @@ DefaultOptions: db $00 db $00 +.End + assert DefaultOptions.End - DefaultOptions == wOptionsEnd - wOptions diff --git a/data/events/bug_contest_flags.asm b/data/events/bug_contest_flags.asm index 734bf11f..f3d9ff74 100644 --- a/data/events/bug_contest_flags.asm +++ b/data/events/bug_contest_flags.asm @@ -1,5 +1,5 @@ BugCatchingContestantEventFlagTable: -; there are NUM_BUG_CONTESTANTS entries + table_width 2, BugCatchingContestantEventFlagTable dw EVENT_BUG_CATCHING_CONTESTANT_1A dw EVENT_BUG_CATCHING_CONTESTANT_2A dw EVENT_BUG_CATCHING_CONTESTANT_3A @@ -10,3 +10,4 @@ BugCatchingContestantEventFlagTable: dw EVENT_BUG_CATCHING_CONTESTANT_8A dw EVENT_BUG_CATCHING_CONTESTANT_9A dw EVENT_BUG_CATCHING_CONTESTANT_10A + assert_table_length NUM_BUG_CONTESTANTS diff --git a/data/events/bug_contest_winners.asm b/data/events/bug_contest_winners.asm index e29ce043..525283af 100644 --- a/data/events/bug_contest_winners.asm +++ b/data/events/bug_contest_winners.asm @@ -1,5 +1,5 @@ BugContestantPointers: -; there are NUM_BUG_CONTESTANTS + 1 entries + table_width 2, BugContestantPointers dw BugContestant_BugCatcherDon ; this reverts back to the player dw BugContestant_BugCatcherDon dw BugContestant_BugCatcherEd @@ -11,6 +11,7 @@ BugContestantPointers: dw BugContestant_BugCatcherJosh dw BugContestant_YoungsterSamuel dw BugContestant_SchoolboyKipp + assert_table_length NUM_BUG_CONTESTANTS + 1 ; contestant format: ; db class, id diff --git a/data/events/elevator_floors.asm b/data/events/elevator_floors.asm index abc793cf..861653ba 100644 --- a/data/events/elevator_floors.asm +++ b/data/events/elevator_floors.asm @@ -1,5 +1,6 @@ ElevatorFloorNames: ; entries correspond to FLOOR_* constants + table_width 2, ElevatorFloorNames dw .B4F dw .B3F dw .B2F @@ -16,6 +17,7 @@ ElevatorFloorNames: dw ._10F dw ._11F dw .ROOF + assert_table_length NUM_FLOORS .B4F: db "B4F@" .B3F: db "B3F@" diff --git a/data/events/engine_flags.asm b/data/events/engine_flags.asm index bd135f36..2557b0a4 100644 --- a/data/events/engine_flags.asm +++ b/data/events/engine_flags.asm @@ -6,6 +6,7 @@ ENDM EngineFlags: ; entries correspond to ENGINE_* constants + table_width 3, EngineFlags ; pokegear engine_flag wPokegearFlags, POKEGEAR_RADIO_CARD_F @@ -118,3 +119,5 @@ EngineFlags: engine_flag wDailyFlags2, DAILYFLAGS2_GOLDENROD_DEPT_STORE_TM27_RETURN_F engine_flag wDailyFlags2, DAILYFLAGS2_DAISYS_GROOMING_F engine_flag wDailyFlags2, DAILYFLAGS2_INDIGO_PLATEAU_RIVAL_FIGHT_F + + assert_table_length NUM_ENGINE_FLAGS diff --git a/data/events/happiness_changes.asm b/data/events/happiness_changes.asm index aa154e4c..8e3c4687 100644 --- a/data/events/happiness_changes.asm +++ b/data/events/happiness_changes.asm @@ -1,6 +1,7 @@ HappinessChanges: ; entries correspond to HAPPINESS_* constants -; change if happiness < 100, change if happiness < 200, change otherwise + table_width 3, HappinessChanges + ; change if happiness < 100, change if happiness < 200, change otherwise db +5, +3, +2 ; Gained a level db +5, +3, +2 ; Vitamin db +1, +1, +0 ; X Item @@ -19,3 +20,4 @@ HappinessChanges: db -10, -10, -15 ; Used Energy Root (bitter) db -15, -15, -20 ; Used Revival Herb (bitter) db +3, +3, +1 ; Grooming + assert_table_length NUM_HAPPINESS_CHANGES diff --git a/data/events/npc_trades.asm b/data/events/npc_trades.asm index dae70fe0..42715df1 100644 --- a/data/events/npc_trades.asm +++ b/data/events/npc_trades.asm @@ -8,9 +8,11 @@ ENDM NPCTrades: ; entries correspond to NPCTRADE_* constants + table_width NPCTRADE_STRUCT_LENGTH, NPCTrades npctrade TRADE_DIALOGSET_COLLECTOR, DROWZEE, MACHOP, "MUSCLE@@@@@", $37, $66, GOLD_BERRY, 37460, "MIKE@@@@@@@", TRADE_GENDER_EITHER npctrade TRADE_DIALOGSET_COLLECTOR, BELLSPROUT, ONIX, "ROCKY@@@@@@", $96, $66, BITTER_BERRY, 48926, "KYLE@@@@@@@", TRADE_GENDER_EITHER npctrade TRADE_DIALOGSET_HAPPY, KRABBY, VOLTORB, "VOLTY@@@@@@", $98, $88, PRZCUREBERRY, 29189, "TIM@@@@@@@@", TRADE_GENDER_EITHER npctrade TRADE_DIALOGSET_NEWBIE, DRAGONAIR, RHYDON, "DON@@@@@@@@", $77, $66, BITTER_BERRY, 00283, "EMY@@@@@@@@", TRADE_GENDER_FEMALE npctrade TRADE_DIALOGSET_HAPPY, GLOOM, RAPIDASH, "RUNNY@@@@@@", $96, $66, BURNT_BERRY, 15616, "CHRIS@@@@@@", TRADE_GENDER_EITHER npctrade TRADE_DIALOGSET_NEWBIE, CHANSEY, AERODACTYL, "AEROY@@@@@@", $96, $66, GOLD_BERRY, 26491, "KIM@@@@@@@@", TRADE_GENDER_EITHER + assert_table_length NUM_NPC_TRADES diff --git a/data/icon_pointers.asm b/data/icon_pointers.asm index bfe07abb..1ad361c1 100644 --- a/data/icon_pointers.asm +++ b/data/icon_pointers.asm @@ -1,5 +1,6 @@ IconPointers: -; entries correspond to ICON_* constants +; entries correspond to ICON_* constants (see constants/icon_constants.asm) + table_width 2, IconPointers dw NullIcon dw PoliwagIcon dw JigglypuffIcon @@ -39,3 +40,4 @@ IconPointers: dw SlowpokeIcon dw SudowoodoIcon dw BigmonIcon + assert_table_length NUM_ICONS + 1 diff --git a/data/items/attributes.asm b/data/items/attributes.asm index 1ed369f0..964843c1 100644 --- a/data/items/attributes.asm +++ b/data/items/attributes.asm @@ -6,7 +6,8 @@ item_attribute: MACRO ENDM ItemAttributes: -; entries correspond to item ids +; entries correspond to item ids (see constants/item_constants.asm) + table_width ITEMATTR_STRUCT_LENGTH, ItemAttributes ; MASTER_BALL item_attribute 0, HELD_NONE, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE ; ULTRA_BALL @@ -387,6 +388,7 @@ ItemAttributes: item_attribute 50, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE ; ITEM_BE item_attribute $9999, HELD_NONE, 0, NO_LIMITS, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE + assert_table_length NUM_ITEMS ; TM01 item_attribute 3000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE ; TM02 @@ -491,6 +493,7 @@ ItemAttributes: item_attribute 3000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE ; TM50 item_attribute 2000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE + assert_table_length NUM_ITEMS + NUM_TMS + 2 ; count ITEM_C3 and ITEM_DC ; HM01 item_attribute 0, HELD_NONE, 0, CANT_SELECT | CANT_TOSS, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE ; HM02 @@ -505,6 +508,7 @@ ItemAttributes: item_attribute 0, HELD_NONE, 0, CANT_SELECT | CANT_TOSS, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE ; HM07 item_attribute 0, HELD_NONE, 0, CANT_SELECT | CANT_TOSS, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE + assert_table_length NUM_ITEMS + NUM_TMS + 2 + NUM_HMS ; count ITEM_C3 and ITEM_DC ; ITEM_FA item_attribute $9999, HELD_NONE, 0, NO_LIMITS, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE ; $fb @@ -519,3 +523,4 @@ ItemAttributes: item_attribute $9999, HELD_NONE, 0, NO_LIMITS, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE ; $00 item_attribute $9999, HELD_NONE, 0, NO_LIMITS, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE + assert_table_length $100 diff --git a/data/items/descriptions.asm b/data/items/descriptions.asm index d259b364..7c195f78 100644 --- a/data/items/descriptions.asm +++ b/data/items/descriptions.asm @@ -1,5 +1,6 @@ ItemDescriptions: -; entries correspond to item ids +; entries correspond to item ids (see constants/item_constants.asm) + table_width 2, ItemDescriptions dw MasterBallDesc dw UltraBallDesc dw BrightpowderDesc @@ -190,6 +191,7 @@ ItemDescriptions: dw MusicMailDesc dw MirageMailDesc dw TeruSama29Desc + assert_table_length NUM_ITEMS dw TeruSama30Desc dw TeruSama30Desc dw TeruSama30Desc @@ -256,6 +258,7 @@ ItemDescriptions: dw TeruSama36Desc dw TeruSama37Desc dw TeruSama37Desc + assert_table_length $100 MasterBallDesc: db "The best BALL. It" diff --git a/data/items/fruit_trees.asm b/data/items/fruit_trees.asm index 9c4e4793..ff39551e 100644 --- a/data/items/fruit_trees.asm +++ b/data/items/fruit_trees.asm @@ -1,5 +1,6 @@ FruitTreeItems: ; entries correspond to FRUITTREE_* constants + table_width 1, FruitTreeItems db BERRY ; ROUTE_29 db BERRY ; ROUTE_30_1 db BERRY ; ROUTE_38 @@ -30,3 +31,4 @@ FruitTreeItems: db ICE_BERRY ; PEWTER_CITY_1 db MINT_BERRY ; PEWTER_CITY_2 db BURNT_BERRY ; FUCHSIA_CITY + assert_table_length NUM_FRUIT_TREES diff --git a/data/items/marts.asm b/data/items/marts.asm index 37bf846b..d96281df 100644 --- a/data/items/marts.asm +++ b/data/items/marts.asm @@ -1,5 +1,6 @@ Marts: -; entries correspond to MART_* constants +; entries correspond to MART_* constants (see constants/mart_constants.asm) + table_width 2, Marts dw MartCherrygrove dw MartCherrygroveDex dw MartViolet @@ -34,6 +35,7 @@ Marts: dw MartMtMoon dw MartIndigoPlateau dw MartUnderground + assert_table_length NUM_MARTS MartCherrygrove: db 4 ; # items diff --git a/data/maps/landmarks.asm b/data/maps/landmarks.asm index 2ab7fcff..286171a5 100644 --- a/data/maps/landmarks.asm +++ b/data/maps/landmarks.asm @@ -6,6 +6,7 @@ ENDM Landmarks: ; entries correspond to constants/landmark_constants.asm + table_width 4, Landmarks dbbw 0, 0, SpecialMapName landmark 140, 100, NewBarkTownName landmark 128, 100, Route29Name @@ -52,6 +53,7 @@ Landmarks: landmark 112, 72, DarkCaveName landmark 124, 88, Route46Name landmark 148, 68, SilverCaveName + assert_table_length KANTO_LANDMARK landmark 52, 108, PalletTownName landmark 52, 92, Route1Name landmark 52, 76, ViridianCityName @@ -101,6 +103,7 @@ Landmarks: landmark 12, 100, TohjoFallsName landmark 20, 68, Route28Name landmark 140, 116, FastShipName + assert_table_length NUM_LANDMARKS NewBarkTownName: db "NEW BARK¯TOWN@" CherrygroveCityName: db "CHERRYGROVE¯CITY@" diff --git a/data/maps/maps.asm b/data/maps/maps.asm index c32071bb..a7876800 100644 --- a/data/maps/maps.asm +++ b/data/maps/maps.asm @@ -16,6 +16,7 @@ ENDM MapGroupPointers:: ; pointers to the first map of each map group + table_width 2, MapGroupPointers dw MapGroup_Olivine ; 1 dw MapGroup_Mahogany ; 2 dw MapGroup_Dungeons ; 3 @@ -42,6 +43,7 @@ MapGroupPointers:: dw MapGroup_NewBark ; 24 dw MapGroup_Saffron ; 25 dw MapGroup_Cherrygrove ; 26 + assert_table_length NUM_MAP_GROUPS MapGroup_Olivine: map OlivinePokecenter1F, TILESET_POKECENTER, INDOOR, LANDMARK_OLIVINE_CITY, MUSIC_POKEMON_CENTER, FALSE, PALETTE_DAY, FISHGROUP_SHORE diff --git a/data/maps/outdoor_sprites.asm b/data/maps/outdoor_sprites.asm index 671f39a4..1c41e49b 100644 --- a/data/maps/outdoor_sprites.asm +++ b/data/maps/outdoor_sprites.asm @@ -3,6 +3,7 @@ OutdoorSprites: ; entries correspond to map groups + table_width 2, OutdoorSprites dw OlivineGroupSprites dw MahoganyGroupSprites dw DungeonsGroupSprites @@ -29,6 +30,7 @@ OutdoorSprites: dw NewBarkGroupSprites dw SaffronGroupSprites dw CherrygroveGroupSprites + assert_table_length NUM_MAP_GROUPS PalletGroupSprites: db SPRITE_TEACHER diff --git a/data/maps/roofs.asm b/data/maps/roofs.asm index ac1ea556..dee4991d 100644 --- a/data/maps/roofs.asm +++ b/data/maps/roofs.asm @@ -5,10 +5,12 @@ const ROOF_AZALEA ; 2 const ROOF_OLIVINE ; 3 const ROOF_GOLDENROD ; 4 +NUM_ROOFS EQU const_value MapGroupRoofs: ; entries correspond to map groups ; values are indexes for Roofs (see below) + table_width 1, MapGroupRoofs db -1 ; 0 db ROOF_OLIVINE ; 1 (Olivine) db ROOF_AZALEA ; 2 (Mahogany) @@ -36,11 +38,14 @@ MapGroupRoofs: db ROOF_NEW_BARK ; 24 (New Bark) db -1 ; 25 db ROOF_NEW_BARK ; 26 (Cherrygrove) + assert_table_length NUM_MAP_GROUPS + 1 Roofs: ; entries correspond to ROOF_* constants + table_width ROOF_LENGTH * LEN_2BPP_TILE, Roofs INCBIN "gfx/tilesets/roofs/new_bark.2bpp" INCBIN "gfx/tilesets/roofs/violet.2bpp" INCBIN "gfx/tilesets/roofs/azalea.2bpp" INCBIN "gfx/tilesets/roofs/olivine.2bpp" INCBIN "gfx/tilesets/roofs/goldenrod.2bpp" + assert_table_length NUM_ROOFS diff --git a/data/maps/sgb_roof_pal_inds.asm b/data/maps/sgb_roof_pal_inds.asm index ac6779b1..5f95b58f 100644 --- a/data/maps/sgb_roof_pal_inds.asm +++ b/data/maps/sgb_roof_pal_inds.asm @@ -1,5 +1,6 @@ MapGroupRoofSGBPalInds: ; entries correspond to map groups + table_width 1, MapGroupRoofSGBPalInds db PREDEFPAL_ROUTES db PREDEFPAL_OLIVINE db PREDEFPAL_MAHOGANY @@ -27,3 +28,4 @@ MapGroupRoofSGBPalInds: db PREDEFPAL_NEW_BARK db PREDEFPAL_SAFFRON db PREDEFPAL_CHERRYGROVE + assert_table_length NUM_MAP_GROUPS + 1 diff --git a/data/maps/spawn_points.asm b/data/maps/spawn_points.asm index 2d99fff7..32699548 100644 --- a/data/maps/spawn_points.asm +++ b/data/maps/spawn_points.asm @@ -6,6 +6,7 @@ ENDM SpawnPoints: ; entries correspond to SPAWN_* constants + table_width 4, SpawnPoints spawn PLAYERS_HOUSE_2F, 3, 3 spawn VIRIDIAN_POKECENTER_1F, 5, 3 @@ -39,3 +40,5 @@ SpawnPoints: spawn FAST_SHIP_CABINS_SW_SSW_NW, 6, 2 spawn N_A, -1, -1 + + assert_table_length NUM_SPAWNS + 1 diff --git a/data/mon_menu.asm b/data/mon_menu.asm index f2b9f3ac..a69f4132 100644 --- a/data/mon_menu.asm +++ b/data/mon_menu.asm @@ -20,6 +20,7 @@ MonMenuOptionStrings: MonMenuOptions: ; category, item, value; actions are in PokemonActionSubmenu (see engine/pokemon/mon_menu.asm) + table_width 3, MonMenuOptions ; moves db MONMENU_FIELD_MOVE, MONMENUITEM_CUT, CUT db MONMENU_FIELD_MOVE, MONMENUITEM_FLY, FLY @@ -43,4 +44,5 @@ MonMenuOptions: db MONMENU_MENUOPTION, MONMENUITEM_MOVE, MONMENUVALUE_MOVE db MONMENU_MENUOPTION, MONMENUITEM_MAIL, MONMENUVALUE_MAIL db MONMENU_MENUOPTION, MONMENUITEM_ERROR, MONMENUVALUE_ERROR - db -1 + assert_table_length NUM_MONMENUITEMS + db -1 ; end diff --git a/data/moves/animations.asm b/data/moves/animations.asm index e215957a..56cff04c 100644 --- a/data/moves/animations.asm +++ b/data/moves/animations.asm @@ -1,5 +1,6 @@ BattleAnimations:: ; entries correspond to constants/move_constants.asm + table_width 2, BattleAnimations dw BattleAnim_0 dw BattleAnim_Pound dw BattleAnim_KarateChop @@ -252,10 +253,12 @@ BattleAnimations:: dw BattleAnim_RockSmash dw BattleAnim_Whirlpool dw BattleAnim_BeatUp + assert_table_length NUM_ATTACKS + 1 dw BattleAnim_252 dw BattleAnim_253 dw BattleAnim_254 dw BattleAnim_SweetScent2 + assert_table_length $100 ; $100 dw BattleAnim_ThrowPokeBall dw BattleAnim_SendOutMon @@ -279,6 +282,7 @@ BattleAnimations:: dw BattleAnim_Wobble dw BattleAnim_Shake dw BattleAnim_HitConfusion + assert_table_length NUM_BATTLE_ANIMS + 1 BattleAnim_0: BattleAnim_252: diff --git a/data/moves/descriptions.asm b/data/moves/descriptions.asm index 160c7d7f..9773852f 100644 --- a/data/moves/descriptions.asm +++ b/data/moves/descriptions.asm @@ -1,5 +1,6 @@ MoveDescriptions:: ; entries correspond to move ids (see constants/move_constants.asm) + table_width 2, MoveDescriptions dw PoundDescription dw KarateChopDescription dw DoubleslapDescription @@ -251,11 +252,13 @@ MoveDescriptions:: dw RockSmashDescription dw WhirlpoolDescription dw BeatUpDescription + assert_table_length NUM_ATTACKS dw MoveFCDescription dw MoveFDDescription dw MoveFEDescription dw MoveFFDescription dw Move00Description + assert_table_length $100 MoveFCDescription: MoveFDDescription: diff --git a/data/moves/effects_pointers.asm b/data/moves/effects_pointers.asm index 94834de7..6f8fb2e9 100644 --- a/data/moves/effects_pointers.asm +++ b/data/moves/effects_pointers.asm @@ -1,5 +1,6 @@ MoveEffectsPointers: ; entries correspond to EFFECT_* constants + table_width 2, MoveEffectsPointers dw NormalHit dw DoSleep dw PoisonHit @@ -157,3 +158,4 @@ MoveEffectsPointers: dw BeatUp dw Fly dw DefenseCurl + assert_table_length NUM_MOVE_EFECTS diff --git a/data/moves/moves.asm b/data/moves/moves.asm index 49c17d9b..31f9d27d 100644 --- a/data/moves/moves.asm +++ b/data/moves/moves.asm @@ -11,7 +11,8 @@ move: MACRO ENDM Moves: -; entries correspond to constants/move_constants.asm +; entries correspond to move ids (see constants/move_constants.asm) + table_width MOVE_LENGTH, Moves move POUND, EFFECT_NORMAL_HIT, 40, NORMAL, 100, 35, 0 move KARATE_CHOP, EFFECT_NORMAL_HIT, 50, FIGHTING, 100, 25, 0 move DOUBLESLAP, EFFECT_MULTI_HIT, 15, NORMAL, 85, 10, 0 @@ -263,3 +264,4 @@ Moves: move ROCK_SMASH, EFFECT_DEFENSE_DOWN_HIT, 20, FIGHTING, 100, 15, 50 move WHIRLPOOL, EFFECT_TRAP_TARGET, 15, WATER, 70, 15, 0 move BEAT_UP, EFFECT_BEAT_UP, 10, DARK, 100, 10, 0 + assert_table_length NUM_ATTACKS diff --git a/data/moves/tmhm_moves.asm b/data/moves/tmhm_moves.asm index e2c44f23..ed8cc6c2 100644 --- a/data/moves/tmhm_moves.asm +++ b/data/moves/tmhm_moves.asm @@ -3,6 +3,7 @@ TMHMMoves: ; entries correspond to *_TMNUM constants (see constants/item_constants.asm) + table_width 1, TMHMMoves ; TMs n = 1 @@ -30,6 +31,8 @@ PURGE MOVE_FOR_HM n = n + 1 endr + assert_table_length NUM_TM_HM + db 0 ; end ; unused diff --git a/data/party_menu_qualities.asm b/data/party_menu_qualities.asm index 94b10067..1e00e523 100644 --- a/data/party_menu_qualities.asm +++ b/data/party_menu_qualities.asm @@ -19,6 +19,7 @@ ENDM PartyMenuQualityPointers: ; entries correspond to PARTYMENUACTION_* constants + table_width 2, PartyMenuQualityPointers dw .Default ; PARTYMENUACTION_CHOOSE_POKEMON dw .Default ; PARTYMENUACTION_HEALING_ITEM dw .Default ; PARTYMENUACTION_SWITCH @@ -28,6 +29,7 @@ PartyMenuQualityPointers: dw .Gender ; PARTYMENUACTION_GIVE_MON dw .Gender ; PARTYMENUACTION_GIVE_MON_FEMALE dw .Default ; PARTYMENUACTION_GIVE_ITEM + assert_table_length NUM_PARTYMENUACTIONS .Default: partymenuqualities NICKNAMES, HP_BAR, HP_DIGITS, LEVEL, STATUS .TMHM: partymenuqualities NICKNAMES, TMHM_COMPAT, LEVEL, STATUS diff --git a/data/phone/non_trainer_names.asm b/data/phone/non_trainer_names.asm index 4159014a..0a1fd5b1 100644 --- a/data/phone/non_trainer_names.asm +++ b/data/phone/non_trainer_names.asm @@ -1,10 +1,12 @@ NonTrainerCallerNames: -; entries correspond to PHONECONTACT_* constants +; entries correspond to PHONECONTACT_* constants (see constants/trainer_constants.asm) + table_width 2, NonTrainerCallerNames dw .none dw .mom dw .bikeshop dw .bill dw .elm + assert_table_length NUM_NONTRAINER_PHONECONTACTS + 1 .none: db "----------@" .mom: db "MOM@" diff --git a/data/phone/phone_contacts.asm b/data/phone/phone_contacts.asm index d2b2c7a7..e0b48f91 100644 --- a/data/phone/phone_contacts.asm +++ b/data/phone/phone_contacts.asm @@ -10,6 +10,7 @@ ENDM PhoneContacts: ; entries correspond to PHONE_* constants + table_width PHONE_CONTACT_SIZE, PhoneContacts phone TRAINER_NONE, PHONE_00, N_A, 0, UnusedPhoneScript, 0, UnusedPhoneScript phone TRAINER_NONE, PHONECONTACT_MOM, PLAYERS_HOUSE_1F, ANYTIME, MomPhoneCalleeScript, 0, UnusedPhoneScript phone TRAINER_NONE, PHONECONTACT_BIKESHOP, OAKS_LAB, 0, UnusedPhoneScript, 0, UnusedPhoneScript @@ -47,3 +48,4 @@ PhoneContacts: phone BLACKBELT_T, KENJI3, ROUTE_45, ANYTIME, KenjiPhoneCalleeScript, ANYTIME, KenjiPhoneCallerScript phone HIKER, PARRY1, ROUTE_45, ANYTIME, ParryPhoneCalleeScript, ANYTIME, ParryPhoneCallerScript phone PICNICKER, ERIN1, ROUTE_46, ANYTIME, ErinPhoneCalleeScript, ANYTIME, ErinPhoneCallerScript + assert_table_length NUM_PHONE_CONTACTS + 1 diff --git a/data/phone/special_calls.asm b/data/phone/special_calls.asm index 826a5d28..a516e595 100644 --- a/data/phone/special_calls.asm +++ b/data/phone/special_calls.asm @@ -7,6 +7,7 @@ ENDM SpecialPhoneCallList: ; entries correspond to SPECIALCALL_* constants + table_width SPECIALCALL_SIZE, SpecialPhoneCallList specialcall SpecialCallOnlyWhenOutside, PHONECONTACT_ELM, ElmPhoneCallerScript specialcall SpecialCallOnlyWhenOutside, PHONECONTACT_ELM, ElmPhoneCallerScript specialcall SpecialCallOnlyWhenOutside, PHONECONTACT_ELM, ElmPhoneCallerScript @@ -15,3 +16,4 @@ SpecialPhoneCallList: specialcall SpecialCallWhereverYouAre, PHONECONTACT_BIKESHOP, BikeShopPhoneCallerScript specialcall SpecialCallWhereverYouAre, PHONECONTACT_MOM, MomPhoneLectureScript specialcall SpecialCallOnlyWhenOutside, PHONECONTACT_ELM, ElmPhoneCallerScript + assert_table_length NUM_SPECIALCALLS diff --git a/data/pokemon/base_stats.asm b/data/pokemon/base_stats.asm index f3a3ed32..4b4bdfa4 100644 --- a/data/pokemon/base_stats.asm +++ b/data/pokemon/base_stats.asm @@ -32,6 +32,7 @@ endr ENDM BaseData:: + table_width BASE_DATA_SIZE, BaseData INCLUDE "data/pokemon/base_stats/bulbasaur.asm" INCLUDE "data/pokemon/base_stats/ivysaur.asm" INCLUDE "data/pokemon/base_stats/venusaur.asm" @@ -283,5 +284,4 @@ INCLUDE "data/pokemon/base_stats/tyranitar.asm" INCLUDE "data/pokemon/base_stats/lugia.asm" INCLUDE "data/pokemon/base_stats/ho_oh.asm" INCLUDE "data/pokemon/base_stats/celebi.asm" -.End: - assert BaseData.End - BaseData == NUM_POKEMON * BASE_DATA_SIZE + assert_table_length NUM_POKEMON diff --git a/data/pokemon/cries.asm b/data/pokemon/cries.asm index e6255e04..dc0d08df 100644 --- a/data/pokemon/cries.asm +++ b/data/pokemon/cries.asm @@ -5,6 +5,7 @@ ENDM PokemonCries:: ; entries correspond to constants/pokemon_constants.asm + table_width MON_CRY_LENGTH, PokemonCries mon_cry CRY_BULBASAUR, 128, 129 ; BULBASAUR mon_cry CRY_BULBASAUR, 32, 256 ; IVYSAUR mon_cry CRY_BULBASAUR, 0, 320 ; VENUSAUR @@ -256,7 +257,9 @@ PokemonCries:: mon_cry CRY_TYPHLOSION, 0, 256 ; LUGIA mon_cry CRY_AIPOM, 0, 384 ; HO_OH mon_cry CRY_ENTEI, 330, 273 ; CELEBI + assert_table_length NUM_POKEMON mon_cry CRY_NIDORAN_M, 0, 0 ; 252 mon_cry CRY_NIDORAN_M, 0, 0 ; 253 mon_cry CRY_NIDORAN_M, 0, 0 ; 254 mon_cry CRY_NIDORAN_M, 0, 0 ; 255 + assert_table_length $ff diff --git a/data/pokemon/dex_entry_pointers.asm b/data/pokemon/dex_entry_pointers.asm index 6081757e..89074550 100644 --- a/data/pokemon/dex_entry_pointers.asm +++ b/data/pokemon/dex_entry_pointers.asm @@ -1,5 +1,6 @@ PokedexDataPointerTable: ; entries correspond to constants/pokemon_constants.asm + table_width 2, PokedexDataPointerTable dw BulbasaurPokedexEntry dw IvysaurPokedexEntry dw VenusaurPokedexEntry @@ -251,3 +252,4 @@ PokedexDataPointerTable: dw LugiaPokedexEntry dw HoOhPokedexEntry dw CelebiPokedexEntry + assert_table_length NUM_POKEMON diff --git a/data/pokemon/dex_order_alpha.asm b/data/pokemon/dex_order_alpha.asm index b93238cb..63e80c3c 100644 --- a/data/pokemon/dex_order_alpha.asm +++ b/data/pokemon/dex_order_alpha.asm @@ -1,6 +1,7 @@ ; Every Pokémon sorted alphabetically by name. AlphabeticalPokedexOrder: + table_width 1, AlphabeticalPokedexOrder db ABRA db AERODACTYL db AIPOM @@ -252,3 +253,4 @@ AlphabeticalPokedexOrder: db YANMA db ZAPDOS db ZUBAT + assert_table_length NUM_POKEMON diff --git a/data/pokemon/dex_order_new.asm b/data/pokemon/dex_order_new.asm index 853fbe73..77977cb3 100644 --- a/data/pokemon/dex_order_new.asm +++ b/data/pokemon/dex_order_new.asm @@ -1,6 +1,7 @@ ; Every Pokémon sorted in New Pokédex Order. NewPokedexOrder: + table_width 1, NewPokedexOrder db CHIKORITA db BAYLEEF db MEGANIUM @@ -252,3 +253,4 @@ NewPokedexOrder: db MEWTWO db MEW db CELEBI + assert_table_length NUM_POKEMON diff --git a/data/pokemon/egg_move_pointers.asm b/data/pokemon/egg_move_pointers.asm index 67a2c625..fadb531c 100644 --- a/data/pokemon/egg_move_pointers.asm +++ b/data/pokemon/egg_move_pointers.asm @@ -1,4 +1,5 @@ EggMovePointers:: + table_width 2, EggMovePointers dw BulbasaurEggMoves dw NoEggMoves dw NoEggMoves @@ -250,3 +251,4 @@ EggMovePointers:: dw NoEggMoves dw NoEggMoves dw NoEggMoves + assert_table_length NUM_POKEMON diff --git a/data/pokemon/evos_attacks_pointers.asm b/data/pokemon/evos_attacks_pointers.asm index 7b27c6a7..3b415525 100644 --- a/data/pokemon/evos_attacks_pointers.asm +++ b/data/pokemon/evos_attacks_pointers.asm @@ -1,6 +1,7 @@ ; Evolutions and attacks are grouped together since they're both checked at level-up. EvosAttacksPointers:: + table_width 2, EvosAttacksPointers dw BulbasaurEvosAttacks dw IvysaurEvosAttacks dw VenusaurEvosAttacks @@ -252,3 +253,4 @@ EvosAttacksPointers:: dw LugiaEvosAttacks dw HoOhEvosAttacks dw CelebiEvosAttacks + assert_table_length NUM_POKEMON diff --git a/data/pokemon/gen1_base_special.asm b/data/pokemon/gen1_base_special.asm index 306ce31d..1c523a01 100644 --- a/data/pokemon/gen1_base_special.asm +++ b/data/pokemon/gen1_base_special.asm @@ -1,6 +1,7 @@ ; The original base Special stat for each Pokémon from Red/Blue KantoMonSpecials: + table_width 1, KantoMonSpecials db 65 ; BULBASAUR db 80 ; IVYSAUR db 100 ; VENUSAUR @@ -152,3 +153,4 @@ KantoMonSpecials: db 100 ; DRAGONITE db 154 ; MEWTWO db 100 ; MEW + assert_table_length JOHTO_POKEMON - 1 diff --git a/data/pokemon/gen1_order.asm b/data/pokemon/gen1_order.asm index 45efcafa..ca40398a 100644 --- a/data/pokemon/gen1_order.asm +++ b/data/pokemon/gen1_order.asm @@ -1,4 +1,5 @@ Pokered_MonIndices: + table_width 1, Pokered_MonIndices db RHYDON db KANGASKHAN db NIDORAN_M @@ -189,7 +190,7 @@ Pokered_MonIndices: db BELLSPROUT db WEEPINBELL db VICTREEBEL - + assert_table_length 190 ; gen 1 mon indexes db CHIKORITA db BAYLEEF db MEGANIUM @@ -252,3 +253,4 @@ Pokered_MonIndices: db QWILFISH db WOBBUFFET db WOBBUFFET + assert_table_length NUM_POKEMON + 1 diff --git a/data/pokemon/menu_icons.asm b/data/pokemon/menu_icons.asm index f378cbfb..506d060c 100644 --- a/data/pokemon/menu_icons.asm +++ b/data/pokemon/menu_icons.asm @@ -1,6 +1,7 @@ ; party menu icons MonMenuIcons: + table_width 1, MonMenuIcons db ICON_BULBASAUR ; BULBASAUR db ICON_BULBASAUR ; IVYSAUR db ICON_BULBASAUR ; VENUSAUR @@ -252,3 +253,4 @@ MonMenuIcons: db ICON_LUGIA ; LUGIA db ICON_HO_OH ; HO_OH db ICON_HUMANSHAPE ; CELEBI + assert_table_length NUM_POKEMON diff --git a/data/pokemon/names.asm b/data/pokemon/names.asm index 266b0c02..ad1d0ef5 100644 --- a/data/pokemon/names.asm +++ b/data/pokemon/names.asm @@ -1,4 +1,5 @@ PokemonNames:: + table_width NAME_LENGTH - 1, PokemonNames db "BULBASAUR@" db "IVYSAUR@@@" db "VENUSAUR@@" @@ -250,8 +251,11 @@ PokemonNames:: db "LUGIA@@@@@" db "HO-OH@@@@@" db "CELEBI@@@@" + assert_table_length NUM_POKEMON db "?????@@@@@" db "EGG@@@@@@@" + assert_table_length EGG db "?????@@@@@" db "?????@@@@@" db "?????@@@@@" + assert_table_length $100 diff --git a/data/pokemon/palettes.asm b/data/pokemon/palettes.asm index 36d2c662..421fa57c 100644 --- a/data/pokemon/palettes.asm +++ b/data/pokemon/palettes.asm @@ -6,6 +6,9 @@ PokemonPalettes: ; (Back sprites are used since they are the same in Gold and Silver.) ; Shiny palettes are defined directly, not generated. + ; 2 middle palettes, front and shiny, with 2 colors each + table_width PAL_COLOR_SIZE * 2 * 2, PokemonPalettes + ; 000 RGB 30, 22, 17 RGB 16, 14, 19 @@ -516,6 +519,8 @@ INCLUDE "gfx/pokemon/ho_oh/shiny.pal" INCBIN "gfx/pokemon/celebi/back.gbcpal", middle_colors INCLUDE "gfx/pokemon/celebi/shiny.pal" + assert_table_length NUM_POKEMON + 1 + ; 252 RGB 30, 26, 11 RGB 23, 16, 00 @@ -526,6 +531,8 @@ INCLUDE "gfx/pokemon/celebi/shiny.pal" INCBIN "gfx/pokemon/egg/front.gbcpal", middle_colors INCLUDE "gfx/pokemon/egg/shiny.pal" + assert_table_length EGG + 1 + ; 254 RGB 30, 26, 11 RGB 23, 16, 00 @@ -539,3 +546,5 @@ INCLUDE "gfx/pokemon/egg/shiny.pal" ; 255 shiny RGB 23, 23, 23 RGB 17, 17, 17 + + assert_table_length $100 diff --git a/data/pokemon/pic_pointers.asm b/data/pokemon/pic_pointers.asm index b5912852..1e797c01 100644 --- a/data/pokemon/pic_pointers.asm +++ b/data/pokemon/pic_pointers.asm @@ -2,6 +2,7 @@ PokemonPicPointers:: ; entries correspond to Pokémon species, two apiece + table_width 3 * 2, PokemonPicPointers dba_pic BulbasaurFrontpic dba_pic BulbasaurBackpic dba_pic IvysaurFrontpic @@ -507,3 +508,4 @@ PokemonPicPointers:: dba_pic HoOhBackpic dba_pic CelebiFrontpic dba_pic CelebiBackpic + assert_table_length NUM_POKEMON diff --git a/data/pokemon/unown_pic_pointers.asm b/data/pokemon/unown_pic_pointers.asm index 1ae0da6b..6ecfb4e6 100644 --- a/data/pokemon/unown_pic_pointers.asm +++ b/data/pokemon/unown_pic_pointers.asm @@ -1,5 +1,6 @@ UnownPicPointers:: ; entries correspond to Unown letters, two apiece + table_width 3 * 2, UnownPicPointers dba_pic UnownAFrontpic dba_pic UnownABackpic dba_pic UnownBFrontpic @@ -52,3 +53,4 @@ UnownPicPointers:: dba_pic UnownYBackpic dba_pic UnownZFrontpic dba_pic UnownZBackpic + assert_table_length NUM_UNOWN diff --git a/data/pokemon/unown_words.asm b/data/pokemon/unown_words.asm index 6ddd0f46..329a6aae 100644 --- a/data/pokemon/unown_words.asm +++ b/data/pokemon/unown_words.asm @@ -9,7 +9,8 @@ ENDM UnownWords: ; entries correspond to UNOWN_* form constants - dw UnownWordA + table_width 2, UnownWords + dw UnownWordA ; unused dw UnownWordA dw UnownWordB dw UnownWordC @@ -36,6 +37,7 @@ UnownWords: dw UnownWordX dw UnownWordY dw UnownWordZ + assert_table_length NUM_UNOWN + 1 UnownWordA: unownword "ANGRY" UnownWordB: unownword "BEAR" diff --git a/data/radio/channel_music.asm b/data/radio/channel_music.asm index c11360af..e8536821 100644 --- a/data/radio/channel_music.asm +++ b/data/radio/channel_music.asm @@ -1,5 +1,6 @@ RadioChannelSongs: -; entries correspond to radio channel ids +; entries correspond to radio channel ids (see constants/radio_constants.asm) + table_width 2, RadioChannelSongs dw MUSIC_POKEMON_TALK dw MUSIC_POKEMON_CENTER dw MUSIC_TITLE @@ -10,3 +11,4 @@ RadioChannelSongs: dw MUSIC_POKE_FLUTE_CHANNEL dw MUSIC_RUINS_OF_ALPH_RADIO dw MUSIC_LAKE_OF_RAGE_ROCKET_RADIO + assert_table_length NUM_RADIO_CHANNELS diff --git a/data/radio/oaks_pkmn_talk_routes.asm b/data/radio/oaks_pkmn_talk_routes.asm index db244740..acef4bdd 100644 --- a/data/radio/oaks_pkmn_talk_routes.asm +++ b/data/radio/oaks_pkmn_talk_routes.asm @@ -1,7 +1,6 @@ ; Oak's Pokémon Talk will list wild Pokémon on these maps. OaksPKMNTalkRoutes: -; there are NUM_OAKS_POKEMON_TALK_ROUTES entries map_id ROUTE_29 map_id ROUTE_46 map_id ROUTE_30 @@ -17,3 +16,4 @@ OaksPKMNTalkRoutes: map_id ROUTE_45 map_id ROUTE_36 map_id ROUTE_31 +.End diff --git a/data/sprite_anims/framesets.asm b/data/sprite_anims/framesets.asm index 9660043f..94723816 100644 --- a/data/sprite_anims/framesets.asm +++ b/data/sprite_anims/framesets.asm @@ -1,5 +1,6 @@ SpriteAnimFrameData: -; entries correspond to SPRITE_ANIM_FRAMESET_* constants +; entries correspond to SPRITE_ANIM_FRAMESET_* constants (see constants/sprite_anim_constants.asm) + table_width 2, SpriteAnimFrameData dw .Frameset_00 dw .Frameset_PartyMon dw .Frameset_PartyMonWithMail @@ -56,6 +57,7 @@ SpriteAnimFrameData: dw .Frameset_EggHatch4 dw .Frameset_GSIntroHoOhLugia dw .Frameset_HeadbuttTree + assert_table_length NUM_SPRITE_ANIM_FRAMESETS .Frameset_00: frame SPRITE_ANIM_OAMSET_RED_WALK_1, 32 diff --git a/data/sprite_anims/oam.asm b/data/sprite_anims/oam.asm index 00da9b51..d5b59f85 100644 --- a/data/sprite_anims/oam.asm +++ b/data/sprite_anims/oam.asm @@ -1,5 +1,6 @@ SpriteAnimOAMData: -; entries correspond to SPRITE_ANIM_OAMSET_* constants +; entries correspond to SPRITE_ANIM_OAMSET_* constants (see constants/sprite_anim_constants.asm) + table_width 3, SpriteAnimOAMData ; vtile offset, data pointer dbw $00, .OAMData_RedWalk ; SPRITE_ANIM_OAMSET_RED_WALK_1 dbw $04, .OAMData_RedWalk ; SPRITE_ANIM_OAMSET_RED_WALK_2 @@ -101,6 +102,7 @@ ELIF DEF(_SILVER) dbw $00, .OAMData_GSIntroLugia1 ; SPRITE_ANIM_OAMSET_GS_INTRO_HO_OH_5 ENDC dbw $04, .OAMData_Tree ; SPRITE_ANIM_OAMSET_HEADBUTT_TREE_2 + assert_table_length NUM_SPRITE_ANIM_OAMSETS .OAMData_1x1_Palette0: db 1 diff --git a/data/sprites/emotes.asm b/data/sprites/emotes.asm index 2371c462..32f4c259 100644 --- a/data/sprites/emotes.asm +++ b/data/sprites/emotes.asm @@ -7,6 +7,7 @@ ENDM Emotes: ; entries correspond to EMOTE_* constants + table_width EMOTE_LENGTH, Emotes emote ShockEmote, 4, $f8 emote QuestionEmote, 4, $f8 emote HappyEmote, 4, $f8 @@ -19,3 +20,4 @@ Emotes: emote FishingRodGFX, 2, $fc emote BoulderDustGFX, 2, $fe emote GrassRustleGFX, 1, $fe + assert_table_length NUM_EMOTES diff --git a/data/sprites/facings.asm b/data/sprites/facings.asm index ccf91082..405194f6 100644 --- a/data/sprites/facings.asm +++ b/data/sprites/facings.asm @@ -1,5 +1,6 @@ Facings: -; entries correspond to FACING_* constants +; entries correspond to FACING_* constants (see constants/map_object_constants.asm) + table_width 2, Facings dw FacingStepDown0 dw FacingStepDown1 dw FacingStepDown2 @@ -32,10 +33,8 @@ Facings: dw FacingBoulderDust2 dw FacingGrass1 dw FacingGrass2 -.End - dw 0 - -NUM_FACINGS EQU (Facings.End - Facings) / 2 + assert_table_length NUM_FACINGS + dw 0 ; end ; Tables used as a reference to transform OAM data. diff --git a/data/sprites/map_objects.asm b/data/sprites/map_objects.asm index 05b2e084..60a71813 100644 --- a/data/sprites/map_objects.asm +++ b/data/sprites/map_objects.asm @@ -1,5 +1,6 @@ SpriteMovementData:: ; entries correspond to SPRITEMOVEDATA_* constants + table_width NUM_SPRITEMOVEDATA_FIELDS, SpriteMovementData ; SPRITEMOVEDATA_00 db SPRITEMOVEFN_00 ; movement function @@ -304,3 +305,5 @@ SpriteMovementData:: db 0 ; flags1 db 0 ; flags2 db 0 ; palette flags + + assert_table_length NUM_SPRITEMOVEDATA + 1 diff --git a/data/sprites/sprite_mons.asm b/data/sprites/sprite_mons.asm index 3d53804d..9d3e62ac 100644 --- a/data/sprites/sprite_mons.asm +++ b/data/sprites/sprite_mons.asm @@ -1,5 +1,6 @@ SpriteMons: ; entries correspond to SPRITE_* constants past SPRITE_POKEMON + table_width 1, SpriteMons db UNOWN db GEODUDE db GROWLITHE @@ -35,3 +36,4 @@ SpriteMons: db GYARADOS db LUGIA db HO_OH + assert_table_length NUM_POKEMON_SPRITES diff --git a/data/sprites/sprites.asm b/data/sprites/sprites.asm index b3035fe2..c0b5a3a1 100644 --- a/data/sprites/sprites.asm +++ b/data/sprites/sprites.asm @@ -6,6 +6,7 @@ ENDM OverworldSprites: ; entries correspond to SPRITE_* constants + table_width NUM_SPRITEDATA_FIELDS, OverworldSprites overworld_sprite ChrisSpriteGFX, 12, WALKING_SPRITE, PAL_OW_RED overworld_sprite ChrisBikeSpriteGFX, 12, WALKING_SPRITE, PAL_OW_RED overworld_sprite GameboyKidSpriteGFX, 12, STANDING_SPRITE, PAL_OW_GREEN @@ -101,3 +102,4 @@ OverworldSprites: overworld_sprite FruitTreeSpriteGFX, 4, STILL_SPRITE, PAL_OW_TREE overworld_sprite GoldTrophySpriteGFX, 4, STILL_SPRITE, PAL_OW_BROWN overworld_sprite SilverTrophySpriteGFX, 4, STILL_SPRITE, PAL_OW_SILVER + assert_table_length NUM_OVERWORLD_SPRITES diff --git a/data/tilesets.asm b/data/tilesets.asm index bc1f1b2f..b3b4ed9f 100644 --- a/data/tilesets.asm +++ b/data/tilesets.asm @@ -11,7 +11,8 @@ ENDM ; - The *Anim are defined in engine/tilesets/tileset_anims.asm Tilesets:: -; entries correspond to TILESET_* constants +; entries correspond to TILESET_* constants (see constants/tileset_constants.asm) + table_width TILESET_LENGTH, Tilesets tileset Tileset0 tileset TilesetJohto tileset TilesetJohtoModern @@ -41,3 +42,4 @@ Tilesets:: tileset TilesetIcePath tileset TilesetDarkCave tileset TilesetForest + assert_table_length NUM_TILESETS + 1 diff --git a/data/trainers/attributes.asm b/data/trainers/attributes.asm index 86f5841c..8170f28b 100644 --- a/data/trainers/attributes.asm +++ b/data/trainers/attributes.asm @@ -1,5 +1,6 @@ TrainerClassAttributes: ; entries correspond to trainer classes (see constants/trainer_constants.asm) + table_width NUM_TRAINER_ATTRIBUTES, TrainerClassAttributes ; Falkner db NO_ITEM, NO_ITEM ; items @@ -396,3 +397,5 @@ TrainerClassAttributes: db 10 ; base reward dw AI_BASIC | AI_TYPES | AI_OPPORTUNIST | AI_CAUTIOUS | AI_STATUS | AI_RISKY dw CONTEXT_USE | SWITCH_SOMETIMES + + assert_table_length NUM_TRAINER_CLASSES diff --git a/data/trainers/dvs.asm b/data/trainers/dvs.asm index 09c63a8b..9abf35be 100644 --- a/data/trainers/dvs.asm +++ b/data/trainers/dvs.asm @@ -1,5 +1,6 @@ TrainerClassDVs: ; entries correspond to trainer classes (see constants/trainer_constants.asm) + table_width 2, TrainerClassDVs ; atk,def,spd,spc dn 9, 10, 7, 7 ; FALKNER dn 8, 8, 8, 8 ; WHITNEY @@ -67,3 +68,4 @@ TrainerClassDVs: dn 9, 13, 13, 13 ; BLUE dn 9, 8, 8, 8 ; OFFICER dn 7, 14, 10, 8 ; GRUNTF + assert_table_length NUM_TRAINER_CLASSES diff --git a/data/trainers/encounter_music.asm b/data/trainers/encounter_music.asm index a64d160f..8f9c55e2 100644 --- a/data/trainers/encounter_music.asm +++ b/data/trainers/encounter_music.asm @@ -2,6 +2,7 @@ TrainerEncounterMusic:: ; entries correspond to trainer classes (see constants/trainer_constants.asm) + table_width 1, TrainerEncounterMusic db MUSIC_HIKER_ENCOUNTER ; none db MUSIC_YOUNGSTER_ENCOUNTER ; falkner db MUSIC_LASS_ENCOUNTER ; whitney @@ -69,7 +70,8 @@ TrainerEncounterMusic:: db MUSIC_RIVAL_ENCOUNTER ; blue db MUSIC_HIKER_ENCOUNTER ; officer db MUSIC_ROCKET_ENCOUNTER ; gruntf - db MUSIC_HIKER_ENCOUNTER ; mysticalman - db MUSIC_HIKER_ENCOUNTER - db MUSIC_HIKER_ENCOUNTER - db MUSIC_HIKER_ENCOUNTER + assert_table_length NUM_TRAINER_CLASSES + 1 + db MUSIC_HIKER_ENCOUNTER ; unused + db MUSIC_HIKER_ENCOUNTER ; unused + db MUSIC_HIKER_ENCOUNTER ; unused + db MUSIC_HIKER_ENCOUNTER ; unused diff --git a/data/trainers/palettes.asm b/data/trainers/palettes.asm index 6641e0df..f44f65ff 100644 --- a/data/trainers/palettes.asm +++ b/data/trainers/palettes.asm @@ -4,6 +4,8 @@ TrainerPalettes: ; Each .gbcpal is generated from the corresponding .png, and ; only the middle two colors are included, not black or white. + table_width PAL_COLOR_SIZE * 2, TrainerPalettes + PlayerPalette: ; Chris uses the same colors as Cal INCBIN "gfx/trainers/cal.gbcpal", middle_colors INCBIN "gfx/trainers/falkner.gbcpal", middle_colors @@ -72,3 +74,5 @@ INCBIN "gfx/trainers/red.gbcpal", middle_colors INCBIN "gfx/trainers/blue.gbcpal", middle_colors INCBIN "gfx/trainers/officer.gbcpal", middle_colors INCBIN "gfx/trainers/grunt_f.gbcpal", middle_colors + + assert_table_length NUM_TRAINER_CLASSES + 1 diff --git a/data/trainers/party_pointers.asm b/data/trainers/party_pointers.asm index ff476a41..4acfb70e 100644 --- a/data/trainers/party_pointers.asm +++ b/data/trainers/party_pointers.asm @@ -2,6 +2,7 @@ TrainerGroups: ; entries correspond to trainer classes (see constants/trainer_constants.asm) + table_width 2, TrainerGroups dw FalknerGroup dw WhitneyGroup dw BugsyGroup @@ -68,3 +69,4 @@ TrainerGroups: dw BlueGroup dw OfficerGroup dw GruntFGroup + assert_table_length NUM_TRAINER_CLASSES diff --git a/data/trainers/pic_pointers.asm b/data/trainers/pic_pointers.asm index 134fec36..371d3d35 100644 --- a/data/trainers/pic_pointers.asm +++ b/data/trainers/pic_pointers.asm @@ -2,6 +2,7 @@ TrainerPicPointers:: ; entries correspond to trainer classes (see constants/trainer_constants.asm) + table_width 3, TrainerPicPointers dba_pic FalknerPic dba_pic WhitneyPic dba_pic BugsyPic @@ -68,3 +69,4 @@ TrainerPicPointers:: dba_pic BluePic dba_pic OfficerPic dba_pic GruntfPic + assert_table_length NUM_TRAINER_CLASSES diff --git a/data/types/names.asm b/data/types/names.asm index 62d8e13b..94fe67e1 100644 --- a/data/types/names.asm +++ b/data/types/names.asm @@ -1,5 +1,6 @@ TypeNames: ; entries correspond to types (see constants/type_constants.asm) + table_width 2, TypeNames dw Normal dw Fighting dw Flying @@ -10,6 +11,7 @@ TypeNames: dw Bug dw Ghost dw Steel + assert_table_length UNUSED_TYPES dw Normal dw Normal dw Normal @@ -20,6 +22,7 @@ TypeNames: dw Normal dw Normal dw CurseType + assert_table_length UNUSED_TYPES_END dw Fire dw Water dw Grass @@ -28,6 +31,7 @@ TypeNames: dw Ice dw Dragon dw Dark + assert_table_length TYPES_END Normal: db "NORMAL@" Fighting: db "FIGHTING@" diff --git a/data/types/search_strings.asm b/data/types/search_strings.asm index d03d2786..1345c27c 100644 --- a/data/types/search_strings.asm +++ b/data/types/search_strings.asm @@ -1,5 +1,6 @@ PokedexTypeSearchStrings: ; entries correspond with PokedexTypeSearchConversionTable (see data/types/search_types.asm) + table_width POKEDEX_TYPE_STRING_LENGTH, PokedexTypeSearchStrings db " ---- @" db " NORMAL @" db " FIRE @" @@ -18,3 +19,4 @@ PokedexTypeSearchStrings: db " DRAGON @" db " DARK @" db " STEEL @" + assert_table_length NUM_TYPES + 1 diff --git a/data/types/search_types.asm b/data/types/search_types.asm index c3aba3c9..dd9ea562 100644 --- a/data/types/search_types.asm +++ b/data/types/search_types.asm @@ -1,5 +1,6 @@ PokedexTypeSearchConversionTable: ; entries correspond with PokedexTypeSearchStrings (see data/types/search_strings.asm) + table_width 1, PokedexTypeSearchConversionTable db NORMAL db FIRE db WATER @@ -17,3 +18,4 @@ PokedexTypeSearchConversionTable: db DRAGON db DARK db STEEL + assert_table_length NUM_TYPES diff --git a/data/wild/fish.asm b/data/wild/fish.asm index 1976c8f9..b849b933 100644 --- a/data/wild/fish.asm +++ b/data/wild/fish.asm @@ -7,6 +7,7 @@ ENDM FishGroups: ; entries correspond to FISHGROUP_* constants + table_width FISHGROUP_DATA_LENGTH, FishGroups 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 @@ -20,6 +21,7 @@ FishGroups: 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 + assert_table_length NUM_FISHGROUPS .Shore_Old: db 70 percent + 1, MAGIKARP, 10 diff --git a/data/wild/johto_grass.asm b/data/wild/johto_grass.asm index ebc95c3f..563ba0e4 100644 --- a/data/wild/johto_grass.asm +++ b/data/wild/johto_grass.asm @@ -2,7 +2,7 @@ JohtoGrassWildMons: - map_id SPROUT_TOWER_2F + def_grass_wildmons SPROUT_TOWER_2F db 2 percent, 2 percent, 2 percent ; encounter rates: morn/day/nite ; morn db 3, RATTATA @@ -28,8 +28,9 @@ JohtoGrassWildMons: db 6, GASTLY db 5, RATTATA db 5, RATTATA + end_grass_wildmons - map_id SPROUT_TOWER_3F + def_grass_wildmons SPROUT_TOWER_3F db 2 percent, 2 percent, 2 percent ; encounter rates: morn/day/nite ; morn db 3, RATTATA @@ -55,8 +56,9 @@ JohtoGrassWildMons: db 6, GASTLY db 5, RATTATA db 5, RATTATA + end_grass_wildmons - map_id TIN_TOWER_2F + def_grass_wildmons TIN_TOWER_2F db 2 percent, 2 percent, 2 percent ; encounter rates: morn/day/nite ; morn db 20, RATTATA @@ -82,8 +84,9 @@ JohtoGrassWildMons: db 23, RATTATA db 24, RATTATA db 24, RATTATA + end_grass_wildmons - map_id TIN_TOWER_3F + def_grass_wildmons TIN_TOWER_3F db 2 percent, 2 percent, 2 percent ; encounter rates: morn/day/nite ; morn db 20, RATTATA @@ -109,8 +112,9 @@ JohtoGrassWildMons: db 23, RATTATA db 24, RATTATA db 24, RATTATA + end_grass_wildmons - map_id TIN_TOWER_4F + def_grass_wildmons TIN_TOWER_4F db 2 percent, 2 percent, 2 percent ; encounter rates: morn/day/nite ; morn db 20, RATTATA @@ -136,8 +140,9 @@ JohtoGrassWildMons: db 23, RATTATA db 24, RATTATA db 24, RATTATA + end_grass_wildmons - map_id TIN_TOWER_5F + def_grass_wildmons TIN_TOWER_5F db 2 percent, 2 percent, 2 percent ; encounter rates: morn/day/nite ; morn db 20, RATTATA @@ -163,8 +168,9 @@ JohtoGrassWildMons: db 23, RATTATA db 24, RATTATA db 24, RATTATA + end_grass_wildmons - map_id TIN_TOWER_6F + def_grass_wildmons TIN_TOWER_6F db 2 percent, 2 percent, 2 percent ; encounter rates: morn/day/nite ; morn db 20, RATTATA @@ -190,8 +196,9 @@ JohtoGrassWildMons: db 23, RATTATA db 24, RATTATA db 24, RATTATA + end_grass_wildmons - map_id TIN_TOWER_7F + def_grass_wildmons TIN_TOWER_7F db 2 percent, 2 percent, 2 percent ; encounter rates: morn/day/nite ; morn db 20, RATTATA @@ -217,8 +224,9 @@ JohtoGrassWildMons: db 23, RATTATA db 24, RATTATA db 24, RATTATA + end_grass_wildmons - map_id TIN_TOWER_8F + def_grass_wildmons TIN_TOWER_8F db 2 percent, 2 percent, 2 percent ; encounter rates: morn/day/nite ; morn db 20, RATTATA @@ -244,8 +252,9 @@ JohtoGrassWildMons: db 23, RATTATA db 24, RATTATA db 24, RATTATA + end_grass_wildmons - map_id TIN_TOWER_9F + def_grass_wildmons TIN_TOWER_9F db 2 percent, 2 percent, 2 percent ; encounter rates: morn/day/nite ; morn db 20, RATTATA @@ -271,8 +280,9 @@ JohtoGrassWildMons: db 23, RATTATA db 24, RATTATA db 24, RATTATA + end_grass_wildmons - map_id BURNED_TOWER_1F + def_grass_wildmons BURNED_TOWER_1F db 4 percent, 4 percent, 4 percent ; encounter rates: morn/day/nite ; morn db 13, RATTATA @@ -298,8 +308,9 @@ JohtoGrassWildMons: db 16, KOFFING db 15, RATICATE db 15, RATICATE + end_grass_wildmons - map_id BURNED_TOWER_B1F + def_grass_wildmons BURNED_TOWER_B1F db 6 percent, 6 percent, 6 percent ; encounter rates: morn/day/nite ; morn db 14, RATTATA @@ -325,10 +336,10 @@ JohtoGrassWildMons: db 15, ZUBAT db 14, MAGMAR db 14, MAGMAR + end_grass_wildmons - map_id NATIONAL_PARK + def_grass_wildmons NATIONAL_PARK db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite - IF DEF(_GOLD) ; morn db 10, CATERPIE @@ -346,7 +357,6 @@ JohtoGrassWildMons: db 13, SUNKERN db 14, PIDGEY db 14, PIDGEY - ELIF DEF(_SILVER) ; morn db 10, WEEDLE @@ -365,7 +375,6 @@ JohtoGrassWildMons: db 14, PIDGEY db 14, PIDGEY ENDC - ; nite db 10, HOOTHOOT db 10, HOOTHOOT @@ -374,8 +383,9 @@ JohtoGrassWildMons: db 10, HOOTHOOT db 14, HOOTHOOT db 14, HOOTHOOT + end_grass_wildmons - map_id RUINS_OF_ALPH_OUTSIDE + def_grass_wildmons RUINS_OF_ALPH_OUTSIDE db 4 percent, 4 percent, 4 percent ; encounter rates: morn/day/nite ; morn db 20, NATU @@ -401,8 +411,9 @@ JohtoGrassWildMons: db 20, SMEARGLE db 22, SMEARGLE db 22, SMEARGLE + end_grass_wildmons - map_id RUINS_OF_ALPH_INNER_CHAMBER + def_grass_wildmons RUINS_OF_ALPH_INNER_CHAMBER db 6 percent, 6 percent, 6 percent ; encounter rates: morn/day/nite ; morn db 5, UNOWN @@ -428,10 +439,10 @@ JohtoGrassWildMons: db 5, UNOWN db 5, UNOWN db 5, UNOWN + end_grass_wildmons - map_id UNION_CAVE_1F + def_grass_wildmons UNION_CAVE_1F db 6 percent, 6 percent, 6 percent ; encounter rates: morn/day/nite - IF DEF(_GOLD) ; morn db 6, GEODUDE @@ -457,7 +468,6 @@ JohtoGrassWildMons: db 7, ZUBAT db 6, ONIX db 6, ONIX - ELIF DEF(_SILVER) ; morn db 6, GEODUDE @@ -484,10 +494,10 @@ JohtoGrassWildMons: db 6, ONIX db 6, ONIX ENDC + end_grass_wildmons - map_id UNION_CAVE_B1F + def_grass_wildmons UNION_CAVE_B1F db 6 percent, 6 percent, 6 percent ; encounter rates: morn/day/nite - IF DEF(_GOLD) ; morn db 8, GEODUDE @@ -513,7 +523,6 @@ JohtoGrassWildMons: db 9, ZUBAT db 6, RATTATA db 6, RATTATA - ELIF DEF(_SILVER) ; morn db 8, GEODUDE @@ -540,8 +549,9 @@ JohtoGrassWildMons: db 6, RATTATA db 6, RATTATA ENDC + end_grass_wildmons - map_id UNION_CAVE_B2F + def_grass_wildmons UNION_CAVE_B2F db 4 percent, 4 percent, 4 percent ; encounter rates: morn/day/nite ; morn db 22, ZUBAT @@ -567,8 +577,9 @@ JohtoGrassWildMons: db 20, RATTATA db 23, ONIX db 23, ONIX + end_grass_wildmons - map_id SLOWPOKE_WELL_B1F + def_grass_wildmons SLOWPOKE_WELL_B1F db 2 percent, 2 percent, 2 percent ; encounter rates: morn/day/nite ; morn db 5, ZUBAT @@ -594,8 +605,9 @@ JohtoGrassWildMons: db 8, ZUBAT db 8, SLOWPOKE db 8, SLOWPOKE + end_grass_wildmons - map_id SLOWPOKE_WELL_B2F + def_grass_wildmons SLOWPOKE_WELL_B2F db 2 percent, 2 percent, 2 percent ; encounter rates: morn/day/nite ; morn db 21, ZUBAT @@ -621,10 +633,10 @@ JohtoGrassWildMons: db 23, GOLBAT db 23, SLOWPOKE db 23, SLOWPOKE + end_grass_wildmons - map_id ILEX_FOREST + def_grass_wildmons ILEX_FOREST db 4 percent, 4 percent, 4 percent ; encounter rates: morn/day/nite - IF DEF(_GOLD) ; morn db 5, CATERPIE @@ -642,7 +654,6 @@ JohtoGrassWildMons: db 5, ZUBAT db 6, PARAS db 6, PARAS - ELIF DEF(_SILVER) ; morn db 5, WEEDLE @@ -670,8 +681,9 @@ JohtoGrassWildMons: db 5, ZUBAT db 6, PARAS db 6, PARAS + end_grass_wildmons - map_id MOUNT_MORTAR_1F_OUTSIDE + def_grass_wildmons MOUNT_MORTAR_1F_OUTSIDE db 6 percent, 6 percent, 6 percent ; encounter rates: morn/day/nite ; morn db 13, ZUBAT @@ -697,8 +709,9 @@ JohtoGrassWildMons: db 14, GEODUDE db 16, RATTATA db 15, MARILL + end_grass_wildmons - map_id MOUNT_MORTAR_1F_INSIDE + def_grass_wildmons MOUNT_MORTAR_1F_INSIDE db 6 percent, 6 percent, 6 percent ; encounter rates: morn/day/nite ; morn db 13, GEODUDE @@ -724,8 +737,9 @@ JohtoGrassWildMons: db 15, MACHOP db 14, ZUBAT db 14, ZUBAT + end_grass_wildmons - map_id MOUNT_MORTAR_2F_INSIDE + def_grass_wildmons MOUNT_MORTAR_2F_INSIDE db 6 percent, 6 percent, 6 percent ; encounter rates: morn/day/nite ; morn db 31, GRAVELER @@ -751,8 +765,9 @@ JohtoGrassWildMons: db 28, MACHOP db 30, GOLBAT db 30, GOLBAT + end_grass_wildmons - map_id MOUNT_MORTAR_B1F + def_grass_wildmons MOUNT_MORTAR_B1F db 6 percent, 6 percent, 6 percent ; encounter rates: morn/day/nite ; morn db 15, ZUBAT @@ -778,10 +793,10 @@ JohtoGrassWildMons: db 16, GEODUDE db 16, RATICATE db 16, RATICATE + end_grass_wildmons - map_id ICE_PATH_1F + def_grass_wildmons ICE_PATH_1F db 2 percent, 2 percent, 2 percent ; encounter rates: morn/day/nite - IF DEF(_GOLD) ; morn db 21, SWINUB @@ -807,7 +822,6 @@ JohtoGrassWildMons: db 22, ZUBAT db 22, JYNX db 22, JYNX - ELIF DEF(_SILVER) ; morn db 21, SWINUB @@ -834,10 +848,10 @@ JohtoGrassWildMons: db 22, JYNX db 22, JYNX ENDC + end_grass_wildmons - map_id ICE_PATH_B1F + def_grass_wildmons ICE_PATH_B1F db 2 percent, 2 percent, 2 percent ; encounter rates: morn/day/nite - IF DEF(_GOLD) ; morn db 21, SWINUB @@ -863,7 +877,6 @@ JohtoGrassWildMons: db 22, ZUBAT db 22, JYNX db 22, JYNX - ELIF DEF(_SILVER) ; morn db 21, SWINUB @@ -890,10 +903,10 @@ JohtoGrassWildMons: db 22, JYNX db 22, JYNX ENDC + end_grass_wildmons - map_id ICE_PATH_B2F_MAHOGANY_SIDE + def_grass_wildmons ICE_PATH_B2F_MAHOGANY_SIDE db 2 percent, 2 percent, 2 percent ; encounter rates: morn/day/nite - IF DEF(_GOLD) ; morn db 22, SWINUB @@ -919,7 +932,6 @@ JohtoGrassWildMons: db 23, ZUBAT db 23, JYNX db 23, JYNX - ELIF DEF(_SILVER) ; morn db 22, SWINUB @@ -946,10 +958,10 @@ JohtoGrassWildMons: db 23, JYNX db 23, JYNX ENDC + end_grass_wildmons - map_id ICE_PATH_B2F_BLACKTHORN_SIDE + def_grass_wildmons ICE_PATH_B2F_BLACKTHORN_SIDE db 2 percent, 2 percent, 2 percent ; encounter rates: morn/day/nite - IF DEF(_GOLD) ; morn db 22, SWINUB @@ -975,7 +987,6 @@ JohtoGrassWildMons: db 23, ZUBAT db 23, JYNX db 23, JYNX - ELIF DEF(_SILVER) ; morn db 22, SWINUB @@ -1002,10 +1013,10 @@ JohtoGrassWildMons: db 23, JYNX db 23, JYNX ENDC + end_grass_wildmons - map_id ICE_PATH_B3F + def_grass_wildmons ICE_PATH_B3F db 2 percent, 2 percent, 2 percent ; encounter rates: morn/day/nite - IF DEF(_GOLD) ; morn db 23, SWINUB @@ -1031,7 +1042,6 @@ JohtoGrassWildMons: db 24, ZUBAT db 24, JYNX db 24, JYNX - ELIF DEF(_SILVER) ; morn db 23, SWINUB @@ -1058,8 +1068,9 @@ JohtoGrassWildMons: db 24, JYNX db 24, JYNX ENDC + end_grass_wildmons - map_id WHIRL_ISLAND_NW + def_grass_wildmons WHIRL_ISLAND_NW db 6 percent, 6 percent, 6 percent ; encounter rates: morn/day/nite ; morn db 22, KRABBY @@ -1085,8 +1096,9 @@ JohtoGrassWildMons: db 23, GOLBAT db 24, SEEL db 24, SEEL + end_grass_wildmons - map_id WHIRL_ISLAND_NE + def_grass_wildmons WHIRL_ISLAND_NE db 6 percent, 6 percent, 6 percent ; encounter rates: morn/day/nite ; morn db 22, KRABBY @@ -1112,8 +1124,9 @@ JohtoGrassWildMons: db 23, GOLBAT db 24, SEEL db 24, SEEL + end_grass_wildmons - map_id WHIRL_ISLAND_SW + def_grass_wildmons WHIRL_ISLAND_SW db 6 percent, 6 percent, 6 percent ; encounter rates: morn/day/nite ; morn db 22, KRABBY @@ -1139,8 +1152,9 @@ JohtoGrassWildMons: db 23, GOLBAT db 24, SEEL db 24, SEEL + end_grass_wildmons - map_id WHIRL_ISLAND_CAVE + def_grass_wildmons WHIRL_ISLAND_CAVE db 6 percent, 6 percent, 6 percent ; encounter rates: morn/day/nite ; morn db 22, KRABBY @@ -1166,8 +1180,9 @@ JohtoGrassWildMons: db 23, GOLBAT db 24, SEEL db 24, SEEL + end_grass_wildmons - map_id WHIRL_ISLAND_SE + def_grass_wildmons WHIRL_ISLAND_SE db 6 percent, 6 percent, 6 percent ; encounter rates: morn/day/nite ; morn db 22, KRABBY @@ -1193,8 +1208,9 @@ JohtoGrassWildMons: db 23, GOLBAT db 24, SEEL db 24, SEEL + end_grass_wildmons - map_id WHIRL_ISLAND_B1F + def_grass_wildmons WHIRL_ISLAND_B1F db 6 percent, 6 percent, 6 percent ; encounter rates: morn/day/nite ; morn db 23, KRABBY @@ -1220,8 +1236,9 @@ JohtoGrassWildMons: db 24, GOLBAT db 25, SEEL db 25, SEEL + end_grass_wildmons - map_id WHIRL_ISLAND_B2F + def_grass_wildmons WHIRL_ISLAND_B2F db 6 percent, 6 percent, 6 percent ; encounter rates: morn/day/nite ; morn db 23, KRABBY @@ -1247,8 +1264,9 @@ JohtoGrassWildMons: db 24, GOLBAT db 25, SEEL db 25, SEEL + end_grass_wildmons - map_id WHIRL_ISLAND_LUGIA_CHAMBER + def_grass_wildmons WHIRL_ISLAND_LUGIA_CHAMBER db 6 percent, 6 percent, 6 percent ; encounter rates: morn/day/nite ; morn db 24, KRABBY @@ -1274,10 +1292,10 @@ JohtoGrassWildMons: db 25, GOLBAT db 26, SEEL db 26, SEEL + end_grass_wildmons - map_id SILVER_CAVE_ROOM_1 + def_grass_wildmons SILVER_CAVE_ROOM_1 db 6 percent, 6 percent, 6 percent ; encounter rates: morn/day/nite - IF DEF(_GOLD) ; morn db 42, ONIX @@ -1303,7 +1321,6 @@ JohtoGrassWildMons: db 45, GOLBAT db 20, LARVITAR db 15, LARVITAR - ELIF DEF(_SILVER) ; morn db 42, ONIX @@ -1330,10 +1347,10 @@ JohtoGrassWildMons: db 20, LARVITAR db 15, LARVITAR ENDC + end_grass_wildmons - map_id SILVER_CAVE_ROOM_2 + def_grass_wildmons SILVER_CAVE_ROOM_2 db 6 percent, 6 percent, 6 percent ; encounter rates: morn/day/nite - IF DEF(_GOLD) ; morn db 45, QUAGSIRE @@ -1359,7 +1376,6 @@ JohtoGrassWildMons: db 48, GOLBAT db 20, LARVITAR db 15, LARVITAR - ELIF DEF(_SILVER) ; morn db 45, QUAGSIRE @@ -1386,10 +1402,10 @@ JohtoGrassWildMons: db 20, LARVITAR db 15, LARVITAR ENDC + end_grass_wildmons - map_id SILVER_CAVE_ROOM_3 + def_grass_wildmons SILVER_CAVE_ROOM_3 db 6 percent, 6 percent, 6 percent ; encounter rates: morn/day/nite - IF DEF(_GOLD) ; morn db 51, GOLBAT @@ -1415,7 +1431,6 @@ JohtoGrassWildMons: db 51, GOLDUCK db 20, LARVITAR db 15, LARVITAR - ELIF DEF(_SILVER) ; morn db 51, GOLBAT @@ -1442,10 +1457,10 @@ JohtoGrassWildMons: db 20, LARVITAR db 15, LARVITAR ENDC + end_grass_wildmons - map_id SILVER_CAVE_ITEM_ROOMS + def_grass_wildmons SILVER_CAVE_ITEM_ROOMS db 6 percent, 6 percent, 6 percent ; encounter rates: morn/day/nite - IF DEF(_GOLD) ; morn db 45, QUAGSIRE @@ -1471,7 +1486,6 @@ JohtoGrassWildMons: db 48, GOLBAT db 20, LARVITAR db 15, LARVITAR - ELIF DEF(_SILVER) ; morn db 45, QUAGSIRE @@ -1498,8 +1512,9 @@ JohtoGrassWildMons: db 20, LARVITAR db 15, LARVITAR ENDC + end_grass_wildmons - map_id DARK_CAVE_VIOLET_ENTRANCE + def_grass_wildmons DARK_CAVE_VIOLET_ENTRANCE db 4 percent, 4 percent, 4 percent ; encounter rates: morn/day/nite ; morn db 3, GEODUDE @@ -1525,8 +1540,9 @@ JohtoGrassWildMons: db 3, ZUBAT db 4, ZUBAT db 4, DUNSPARCE + end_grass_wildmons - map_id DARK_CAVE_BLACKTHORN_ENTRANCE + def_grass_wildmons DARK_CAVE_BLACKTHORN_ENTRANCE db 4 percent, 4 percent, 4 percent ; encounter rates: morn/day/nite ; morn db 23, GEODUDE @@ -1552,8 +1568,9 @@ JohtoGrassWildMons: db 25, WOBBUFFET db 23, GOLBAT db 23, GOLBAT + end_grass_wildmons - map_id ROUTE_29 + def_grass_wildmons ROUTE_29 db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite ; morn db 2, PIDGEY @@ -1579,10 +1596,10 @@ JohtoGrassWildMons: db 4, RATTATA db 4, HOOTHOOT db 4, HOOTHOOT + end_grass_wildmons - map_id ROUTE_30 + def_grass_wildmons ROUTE_30 db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite - IF DEF(_GOLD) ; morn db 2, PIDGEY @@ -1608,7 +1625,6 @@ JohtoGrassWildMons: db 4, HOOTHOOT db 4, HOOTHOOT db 4, HOOTHOOT - ELIF DEF(_SILVER) ; morn db 3, LEDYBA @@ -1635,10 +1651,10 @@ JohtoGrassWildMons: db 4, HOOTHOOT db 4, HOOTHOOT ENDC + end_grass_wildmons - map_id ROUTE_31 + def_grass_wildmons ROUTE_31 db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite - IF DEF(_GOLD) ; morn db 3, PIDGEY @@ -1664,7 +1680,6 @@ JohtoGrassWildMons: db 5, HOOTHOOT db 5, HOOTHOOT db 5, HOOTHOOT - ELIF DEF(_SILVER) ; morn db 4, LEDYBA @@ -1691,10 +1706,10 @@ JohtoGrassWildMons: db 5, HOOTHOOT db 5, HOOTHOOT ENDC + end_grass_wildmons - map_id ROUTE_32 + def_grass_wildmons ROUTE_32 db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite - IF DEF(_GOLD) ; morn db 6, BELLSPROUT @@ -1720,7 +1735,6 @@ JohtoGrassWildMons: db 8, WOOPER db 8, ZUBAT db 8, ZUBAT - ELIF DEF(_SILVER) ; morn db 6, BELLSPROUT @@ -1747,10 +1761,10 @@ JohtoGrassWildMons: db 8, ZUBAT db 8, ZUBAT ENDC + end_grass_wildmons - map_id ROUTE_33 + def_grass_wildmons ROUTE_33 db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite - IF DEF(_GOLD) ; morn db 6, HOPPIP @@ -1776,7 +1790,6 @@ JohtoGrassWildMons: db 8, ZUBAT db 8, ZUBAT db 8, ZUBAT - ELIF DEF(_SILVER) ; morn db 6, HOPPIP @@ -1803,8 +1816,9 @@ JohtoGrassWildMons: db 8, ZUBAT db 8, ZUBAT ENDC + end_grass_wildmons - map_id ROUTE_34 + def_grass_wildmons ROUTE_34 db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite ; morn db 10, DROWZEE @@ -1830,10 +1844,10 @@ JohtoGrassWildMons: db 13, RATTATA db 10, DITTO db 10, DITTO + end_grass_wildmons - map_id ROUTE_35 + def_grass_wildmons ROUTE_35 db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite - IF DEF(_GOLD) ; morn db 12, NIDORAN_M @@ -1859,7 +1873,6 @@ JohtoGrassWildMons: db 14, HOOTHOOT db 10, DITTO db 12, YANMA - ELIF DEF(_SILVER) ; morn db 12, NIDORAN_F @@ -1886,10 +1899,10 @@ JohtoGrassWildMons: db 10, DITTO db 12, YANMA ENDC + end_grass_wildmons - map_id ROUTE_36 + def_grass_wildmons ROUTE_36 db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite - IF DEF(_GOLD) ; morn db 12, NIDORAN_M @@ -1915,7 +1928,6 @@ JohtoGrassWildMons: db 13, STANTLER db 15, HOOTHOOT db 15, HOOTHOOT - ELIF DEF(_SILVER) ; morn db 12, NIDORAN_F @@ -1942,10 +1954,10 @@ JohtoGrassWildMons: db 15, HOOTHOOT db 15, HOOTHOOT ENDC + end_grass_wildmons - map_id ROUTE_37 + def_grass_wildmons ROUTE_37 db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite - IF DEF(_GOLD) ; morn db 13, PIDGEY @@ -1971,7 +1983,6 @@ JohtoGrassWildMons: db 15, SPINARAK db 15, SPINARAK db 15, SPINARAK - ELIF DEF(_SILVER) ; morn db 13, LEDYBA @@ -1998,10 +2009,10 @@ JohtoGrassWildMons: db 15, HOOTHOOT db 15, HOOTHOOT ENDC + end_grass_wildmons - map_id ROUTE_38 + def_grass_wildmons ROUTE_38 db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite - IF DEF(_GOLD) ; morn db 16, RATTATA @@ -2027,7 +2038,6 @@ JohtoGrassWildMons: db 13, MILTANK db 13, TAUROS db 13, SNUBBULL - ELIF DEF(_SILVER) ; morn db 16, MEOWTH @@ -2054,8 +2064,9 @@ JohtoGrassWildMons: db 13, TAUROS db 13, SNUBBULL ENDC + end_grass_wildmons - map_id ROUTE_39 + def_grass_wildmons ROUTE_39 IF DEF(_GOLD) db 2 percent, 2 percent, 10 percent ; encounter rates: morn/day/nite ; morn @@ -2082,7 +2093,6 @@ JohtoGrassWildMons: db 15, MILTANK db 15, TAUROS db 15, TAUROS - ELIF DEF(_SILVER) db 2 percent, 2 percent, 2 percent ; encounter rates: morn/day/nite ; morn @@ -2110,10 +2120,10 @@ JohtoGrassWildMons: db 15, TAUROS db 15, TAUROS ENDC + end_grass_wildmons - map_id ROUTE_42 + def_grass_wildmons ROUTE_42 db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite - IF DEF(_GOLD) ; morn db 15, MANKEY @@ -2139,7 +2149,6 @@ JohtoGrassWildMons: db 15, FLAAFFY db 17, FLAAFFY db 17, FLAAFFY - ELIF DEF(_SILVER) ; morn db 13, MAREEP @@ -2166,8 +2175,9 @@ JohtoGrassWildMons: db 17, FLAAFFY db 17, FLAAFFY ENDC + end_grass_wildmons - map_id ROUTE_43 + def_grass_wildmons ROUTE_43 db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite ; morn db 15, FLAAFFY @@ -2193,8 +2203,9 @@ JohtoGrassWildMons: db 15, MAREEP db 16, VENONAT db 16, VENONAT + end_grass_wildmons - map_id ROUTE_44 + def_grass_wildmons ROUTE_44 db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite ; morn db 23, TANGELA @@ -2220,10 +2231,10 @@ JohtoGrassWildMons: db 24, WEEPINBELL db 26, LICKITUNG db 26, LICKITUNG + end_grass_wildmons - map_id ROUTE_45 + def_grass_wildmons ROUTE_45 db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite - IF DEF(_GOLD) ; morn db 23, GEODUDE @@ -2249,7 +2260,6 @@ JohtoGrassWildMons: db 25, GRAVELER db 27, GRAVELER db 27, GRAVELER - ELIF DEF(_SILVER) ; morn db 23, GEODUDE @@ -2276,8 +2286,9 @@ JohtoGrassWildMons: db 27, SKARMORY db 27, SKARMORY ENDC + end_grass_wildmons - map_id ROUTE_46 + def_grass_wildmons ROUTE_46 db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite ; morn db 3, GEODUDE @@ -2303,10 +2314,10 @@ JohtoGrassWildMons: db 4, GEODUDE db 3, JIGGLYPUFF db 5, JIGGLYPUFF + end_grass_wildmons - map_id SILVER_CAVE_OUTSIDE + def_grass_wildmons SILVER_CAVE_OUTSIDE db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite - IF DEF(_GOLD) ; morn db 41, TANGELA @@ -2332,7 +2343,6 @@ JohtoGrassWildMons: db 38, SNEASEL db 42, SNEASEL db 42, SNEASEL - ELIF DEF(_SILVER) ; morn db 41, TANGELA @@ -2359,5 +2369,6 @@ JohtoGrassWildMons: db 42, SNEASEL db 42, SNEASEL ENDC + end_grass_wildmons db -1 ; end diff --git a/data/wild/johto_water.asm b/data/wild/johto_water.asm index 0924807c..e6e40860 100644 --- a/data/wild/johto_water.asm +++ b/data/wild/johto_water.asm @@ -2,37 +2,42 @@ JohtoWaterWildMons: - map_id RUINS_OF_ALPH_OUTSIDE + def_water_wildmons RUINS_OF_ALPH_OUTSIDE db 2 percent ; encounter rate db 15, WOOPER db 20, QUAGSIRE db 15, QUAGSIRE + end_water_wildmons - map_id UNION_CAVE_1F + def_water_wildmons UNION_CAVE_1F db 2 percent ; encounter rate db 15, WOOPER db 20, QUAGSIRE db 15, QUAGSIRE + end_water_wildmons - map_id UNION_CAVE_B1F + def_water_wildmons UNION_CAVE_B1F db 2 percent ; encounter rate db 15, WOOPER db 20, QUAGSIRE db 15, QUAGSIRE + end_water_wildmons - map_id UNION_CAVE_B2F + def_water_wildmons UNION_CAVE_B2F db 4 percent ; encounter rate db 15, TENTACOOL db 20, QUAGSIRE db 20, TENTACRUEL + end_water_wildmons - map_id SLOWPOKE_WELL_B1F + def_water_wildmons SLOWPOKE_WELL_B1F db 2 percent ; encounter rate db 15, SLOWPOKE db 20, SLOWPOKE db 10, SLOWPOKE + end_water_wildmons - map_id SLOWPOKE_WELL_B2F + def_water_wildmons SLOWPOKE_WELL_B2F IF DEF(_GOLD) db 4 percent ; encounter rate ELIF DEF(_SILVER) @@ -41,184 +46,211 @@ JohtoWaterWildMons: db 15, SLOWPOKE db 20, SLOWPOKE db 20, SLOWBRO + end_water_wildmons - map_id ILEX_FOREST + def_water_wildmons ILEX_FOREST db 2 percent ; encounter rate db 15, PSYDUCK db 10, PSYDUCK db 15, GOLDUCK + end_water_wildmons - map_id MOUNT_MORTAR_1F_OUTSIDE + def_water_wildmons MOUNT_MORTAR_1F_OUTSIDE db 4 percent ; encounter rate db 20, GOLDEEN db 15, GOLDEEN db 20, SEAKING + end_water_wildmons - map_id MOUNT_MORTAR_2F_INSIDE + def_water_wildmons MOUNT_MORTAR_2F_INSIDE db 2 percent ; encounter rate db 20, GOLDEEN db 25, GOLDEEN db 25, SEAKING + end_water_wildmons - map_id MOUNT_MORTAR_B1F + def_water_wildmons MOUNT_MORTAR_B1F db 2 percent ; encounter rate db 20, GOLDEEN db 15, GOLDEEN db 20, SEAKING + end_water_wildmons - map_id WHIRL_ISLAND_SW + def_water_wildmons WHIRL_ISLAND_SW db 4 percent ; encounter rate db 20, TENTACOOL db 15, HORSEA db 20, TENTACRUEL + end_water_wildmons - map_id WHIRL_ISLAND_B2F + def_water_wildmons WHIRL_ISLAND_B2F db 4 percent ; encounter rate db 15, HORSEA db 20, HORSEA db 20, TENTACRUEL + end_water_wildmons - map_id WHIRL_ISLAND_LUGIA_CHAMBER + def_water_wildmons WHIRL_ISLAND_LUGIA_CHAMBER db 4 percent ; encounter rate db 20, HORSEA db 20, TENTACRUEL db 20, SEADRA + end_water_wildmons - map_id SILVER_CAVE_ROOM_2 + def_water_wildmons SILVER_CAVE_ROOM_2 db 2 percent ; encounter rate db 35, SEAKING db 40, SEAKING db 35, GOLDEEN + end_water_wildmons - map_id DARK_CAVE_VIOLET_ENTRANCE + def_water_wildmons DARK_CAVE_VIOLET_ENTRANCE db 2 percent ; encounter rate db 15, MAGIKARP db 10, MAGIKARP db 5, MAGIKARP + end_water_wildmons - map_id DARK_CAVE_BLACKTHORN_ENTRANCE + def_water_wildmons DARK_CAVE_BLACKTHORN_ENTRANCE db 2 percent ; encounter rate db 15, MAGIKARP db 10, MAGIKARP db 5, MAGIKARP + end_water_wildmons - map_id DRAGONS_DEN_B1F + def_water_wildmons DRAGONS_DEN_B1F db 4 percent ; encounter rate db 15, MAGIKARP db 10, MAGIKARP db 10, DRATINI + end_water_wildmons - map_id ROUTE_30 + def_water_wildmons ROUTE_30 db 2 percent ; encounter rate db 20, POLIWAG db 15, POLIWAG db 20, POLIWHIRL + end_water_wildmons - map_id ROUTE_31 + def_water_wildmons ROUTE_31 db 2 percent ; encounter rate db 20, POLIWAG db 15, POLIWAG db 20, POLIWHIRL + end_water_wildmons - map_id ROUTE_32 + def_water_wildmons ROUTE_32 db 6 percent ; encounter rate db 15, TENTACOOL db 20, QUAGSIRE db 20, TENTACRUEL + end_water_wildmons - map_id ROUTE_34 + def_water_wildmons ROUTE_34 db 6 percent ; encounter rate db 20, TENTACOOL db 15, TENTACOOL db 20, TENTACRUEL + end_water_wildmons - map_id ROUTE_35 + def_water_wildmons ROUTE_35 db 4 percent ; encounter rate db 20, PSYDUCK db 15, PSYDUCK db 20, GOLDUCK + end_water_wildmons - map_id ROUTE_40 + def_water_wildmons ROUTE_40 db 6 percent ; encounter rate db 20, TENTACOOL db 15, TENTACOOL db 20, TENTACRUEL + end_water_wildmons - map_id ROUTE_41 + def_water_wildmons ROUTE_41 db 6 percent ; encounter rate - IF DEF(_GOLD) db 20, TENTACOOL db 20, TENTACRUEL db 20, MANTINE - ELIF DEF(_SILVER) db 20, TENTACOOL db 20, TENTACRUEL db 15, TENTACOOL ENDC + end_water_wildmons - map_id ROUTE_42 + def_water_wildmons ROUTE_42 db 4 percent ; encounter rate db 20, GOLDEEN db 15, GOLDEEN db 20, SEAKING + end_water_wildmons - map_id ROUTE_43 + def_water_wildmons ROUTE_43 db 2 percent ; encounter rate db 20, MAGIKARP db 15, MAGIKARP db 10, MAGIKARP + end_water_wildmons - map_id ROUTE_44 + def_water_wildmons ROUTE_44 db 2 percent ; encounter rate db 25, POLIWAG db 20, POLIWAG db 25, POLIWHIRL + end_water_wildmons - map_id ROUTE_45 + def_water_wildmons ROUTE_45 db 2 percent ; encounter rate db 20, MAGIKARP db 15, MAGIKARP db 5, MAGIKARP + end_water_wildmons - map_id NEW_BARK_TOWN + def_water_wildmons NEW_BARK_TOWN db 6 percent ; encounter rate db 20, TENTACOOL db 15, TENTACOOL db 20, TENTACRUEL + end_water_wildmons - map_id CHERRYGROVE_CITY + def_water_wildmons CHERRYGROVE_CITY db 6 percent ; encounter rate db 20, TENTACOOL db 15, TENTACOOL db 20, TENTACRUEL + end_water_wildmons - map_id VIOLET_CITY + def_water_wildmons VIOLET_CITY db 2 percent ; encounter rate db 20, POLIWAG db 15, POLIWAG db 20, POLIWHIRL + end_water_wildmons - map_id CIANWOOD_CITY + def_water_wildmons CIANWOOD_CITY db 6 percent ; encounter rate db 20, TENTACOOL db 15, TENTACOOL db 20, TENTACRUEL + end_water_wildmons - map_id OLIVINE_CITY + def_water_wildmons OLIVINE_CITY db 6 percent ; encounter rate db 20, TENTACOOL db 15, TENTACOOL db 20, TENTACRUEL + end_water_wildmons - map_id ECRUTEAK_CITY + def_water_wildmons ECRUTEAK_CITY db 2 percent ; encounter rate db 20, POLIWAG db 15, POLIWAG db 20, POLIWHIRL + end_water_wildmons - map_id LAKE_OF_RAGE + def_water_wildmons LAKE_OF_RAGE IF DEF(_GOLD) db 4 percent ; encounter rate ELIF DEF(_SILVER) @@ -227,23 +259,27 @@ JohtoWaterWildMons: db 15, MAGIKARP db 10, MAGIKARP db 15, GYARADOS + end_water_wildmons - map_id BLACKTHORN_CITY + def_water_wildmons BLACKTHORN_CITY db 4 percent ; encounter rate db 15, MAGIKARP db 10, MAGIKARP db 5, MAGIKARP + end_water_wildmons - map_id SILVER_CAVE_OUTSIDE + def_water_wildmons SILVER_CAVE_OUTSIDE db 2 percent ; encounter rate db 35, POLIWHIRL db 40, POLIWHIRL db 35, POLIWAG + end_water_wildmons - map_id OLIVINE_PORT + def_water_wildmons OLIVINE_PORT db 2 percent ; encounter rate db 20, TENTACOOL db 15, TENTACOOL db 20, TENTACRUEL + end_water_wildmons db -1 ; end diff --git a/data/wild/kanto_grass.asm b/data/wild/kanto_grass.asm index 2884d010..29008441 100644 --- a/data/wild/kanto_grass.asm +++ b/data/wild/kanto_grass.asm @@ -2,7 +2,7 @@ KantoGrassWildMons: - map_id DIGLETTS_CAVE + def_grass_wildmons DIGLETTS_CAVE db 4 percent, 2 percent, 8 percent ; encounter rates: morn/day/nite ; morn db 15, DIGLETT @@ -28,10 +28,10 @@ KantoGrassWildMons: db 19, DUGTRIO db 24, DUGTRIO db 29, DUGTRIO + end_grass_wildmons - map_id MOUNT_MOON + def_grass_wildmons MOUNT_MOON db 6 percent, 6 percent, 6 percent ; encounter rates: morn/day/nite - IF DEF(_GOLD) ; morn db 6, ZUBAT @@ -57,7 +57,6 @@ KantoGrassWildMons: db 10, SANDSLASH db 8, CLEFAIRY db 8, CLEFAIRY - ELIF DEF(_SILVER) ; morn db 6, ZUBAT @@ -84,8 +83,9 @@ KantoGrassWildMons: db 8, CLEFAIRY db 8, CLEFAIRY ENDC + end_grass_wildmons - map_id ROCK_TUNNEL_1F + def_grass_wildmons ROCK_TUNNEL_1F db 6 percent, 6 percent, 6 percent ; encounter rates: morn/day/nite ; morn db 10, CUBONE @@ -111,8 +111,9 @@ KantoGrassWildMons: db 14, MACHOKE db 13, CUBONE db 13, CUBONE + end_grass_wildmons - map_id ROCK_TUNNEL_B1F + def_grass_wildmons ROCK_TUNNEL_B1F db 6 percent, 6 percent, 6 percent ; encounter rates: morn/day/nite ; morn db 12, CUBONE @@ -138,10 +139,10 @@ KantoGrassWildMons: db 14, MAROWAK db 14, KANGASKHAN db 14, KANGASKHAN + end_grass_wildmons - map_id VICTORY_ROAD + def_grass_wildmons VICTORY_ROAD db 6 percent, 6 percent, 6 percent ; encounter rates: morn/day/nite - IF DEF(_GOLD) ; morn db 32, GRAVELER @@ -167,7 +168,6 @@ KantoGrassWildMons: db 36, ONIX db 35, RHYHORN db 35, RHYHORN - ELIF DEF(_SILVER) ; morn db 32, GRAVELER @@ -194,8 +194,9 @@ KantoGrassWildMons: db 35, RHYHORN db 35, RHYHORN ENDC + end_grass_wildmons - map_id TOHJO_FALLS + def_grass_wildmons TOHJO_FALLS IF DEF(_GOLD) db 4 percent, 4 percent, 4 percent ; encounter rates: morn/day/nite ELIF DEF(_SILVER) @@ -225,8 +226,9 @@ KantoGrassWildMons: db 20, RATTATA db 23, SLOWPOKE db 23, SLOWPOKE + end_grass_wildmons - map_id ROUTE_1 + def_grass_wildmons ROUTE_1 db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite ; morn db 2, PIDGEY @@ -252,10 +254,10 @@ KantoGrassWildMons: db 6, RATTATA db 4, HOOTHOOT db 4, HOOTHOOT + end_grass_wildmons - map_id ROUTE_2 + def_grass_wildmons ROUTE_2 db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite - IF DEF(_GOLD) ; morn db 3, CATERPIE @@ -281,7 +283,6 @@ KantoGrassWildMons: db 7, ARIADOS db 4, PIKACHU db 4, PIKACHU - ELIF DEF(_SILVER) ; morn db 3, WEEDLE @@ -308,10 +309,10 @@ KantoGrassWildMons: db 4, PIKACHU db 4, PIKACHU ENDC + end_grass_wildmons - map_id ROUTE_3 + def_grass_wildmons ROUTE_3 db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite - IF DEF(_GOLD) ; morn db 5, SPEAROW @@ -337,7 +338,6 @@ KantoGrassWildMons: db 10, RATTATA db 8, RATTATA db 8, RATTATA - ELIF DEF(_SILVER) ; morn db 5, SPEAROW @@ -364,11 +364,11 @@ KantoGrassWildMons: db 8, RATTATA db 8, RATTATA ENDC + end_grass_wildmons - map_id ROUTE_4 + def_grass_wildmons ROUTE_4 db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite ; morn - IF DEF(_GOLD) ; morn db 5, SPEAROW @@ -394,7 +394,6 @@ KantoGrassWildMons: db 10, RATTATA db 8, RATTATA db 8, RATTATA - ELIF DEF(_SILVER) ; morn db 5, SPEAROW @@ -421,10 +420,10 @@ KantoGrassWildMons: db 8, RATTATA db 8, RATTATA ENDC + end_grass_wildmons - map_id ROUTE_5 + def_grass_wildmons ROUTE_5 db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite - IF DEF(_GOLD) ; morn db 13, PIDGEY @@ -450,7 +449,6 @@ KantoGrassWildMons: db 12, ABRA db 14, ABRA db 14, ABRA - ELIF DEF(_SILVER) ; morn db 13, PIDGEY @@ -477,10 +475,10 @@ KantoGrassWildMons: db 14, ABRA db 14, ABRA ENDC + end_grass_wildmons - map_id ROUTE_6 + def_grass_wildmons ROUTE_6 db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite - IF DEF(_GOLD) ; morn db 13, PIDGEY @@ -506,7 +504,6 @@ KantoGrassWildMons: db 12, ABRA db 14, ABRA db 14, ABRA - ELIF DEF(_SILVER) ; morn db 13, PIDGEY @@ -533,10 +530,10 @@ KantoGrassWildMons: db 14, ABRA db 14, ABRA ENDC + end_grass_wildmons - map_id ROUTE_7 + def_grass_wildmons ROUTE_7 db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite - IF DEF(_GOLD) ; morn db 17, RATTATA @@ -562,7 +559,6 @@ KantoGrassWildMons: db 19, MURKROW db 15, HOUNDOUR db 15, HOUNDOUR - ELIF DEF(_SILVER) ; morn db 17, MEOWTH @@ -589,10 +585,10 @@ KantoGrassWildMons: db 15, HOUNDOUR db 15, HOUNDOUR ENDC + end_grass_wildmons - map_id ROUTE_8 + def_grass_wildmons ROUTE_8 db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite - IF DEF(_GOLD) ; morn db 17, PIDGEOTTO @@ -618,7 +614,6 @@ KantoGrassWildMons: db 18, GROWLITHE db 15, KADABRA db 15, KADABRA - ELIF DEF(_SILVER) ; morn db 17, MEOWTH @@ -645,10 +640,10 @@ KantoGrassWildMons: db 15, KADABRA db 15, KADABRA ENDC + end_grass_wildmons - map_id ROUTE_9 + def_grass_wildmons ROUTE_9 db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite - IF DEF(_GOLD) ; morn db 13, MANKEY @@ -674,7 +669,6 @@ KantoGrassWildMons: db 15, RATICATE db 15, PRIMEAPE db 15, PRIMEAPE - ELIF DEF(_SILVER) ; morn db 13, RATTATA @@ -701,8 +695,9 @@ KantoGrassWildMons: db 15, RATICATE db 15, RATICATE ENDC + end_grass_wildmons - map_id ROUTE_10_NORTH + def_grass_wildmons ROUTE_10_NORTH db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite ; morn db 16, SPEAROW @@ -728,8 +723,9 @@ KantoGrassWildMons: db 18, RATICATE db 15, ELECTABUZZ db 15, ELECTABUZZ + end_grass_wildmons - map_id ROUTE_11 + def_grass_wildmons ROUTE_11 db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite ; morn db 14, DROWZEE @@ -755,10 +751,10 @@ KantoGrassWildMons: db 16, HYPNO db 16, HYPNO db 16, HYPNO + end_grass_wildmons - map_id ROUTE_13 + def_grass_wildmons ROUTE_13 db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite - IF DEF(_GOLD) ; morn db 23, NIDORINA @@ -784,7 +780,6 @@ KantoGrassWildMons: db 24, QUAGSIRE db 24, QUAGSIRE db 25, CHANSEY - ELIF DEF(_SILVER) ; morn db 23, NIDORINO @@ -811,10 +806,10 @@ KantoGrassWildMons: db 24, QUAGSIRE db 25, CHANSEY ENDC + end_grass_wildmons - map_id ROUTE_14 + def_grass_wildmons ROUTE_14 db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite - IF DEF(_GOLD) ; morn db 23, NIDORINA @@ -840,7 +835,6 @@ KantoGrassWildMons: db 24, QUAGSIRE db 24, QUAGSIRE db 25, CHANSEY - ELIF DEF(_SILVER) ; morn db 23, NIDORINO @@ -867,10 +861,10 @@ KantoGrassWildMons: db 24, QUAGSIRE db 25, CHANSEY ENDC + end_grass_wildmons - map_id ROUTE_15 + def_grass_wildmons ROUTE_15 db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite - IF DEF(_GOLD) ; morn db 23, NIDORINA @@ -896,7 +890,6 @@ KantoGrassWildMons: db 24, QUAGSIRE db 24, QUAGSIRE db 25, CHANSEY - ELIF DEF(_SILVER) ; morn db 23, NIDORINO @@ -923,8 +916,9 @@ KantoGrassWildMons: db 24, QUAGSIRE db 25, CHANSEY ENDC + end_grass_wildmons - map_id ROUTE_16 + def_grass_wildmons ROUTE_16 db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite ; morn db 26, GRIMER @@ -950,8 +944,9 @@ KantoGrassWildMons: db 27, SLUGMA db 30, MUK db 30, MUK + end_grass_wildmons - map_id ROUTE_17 + def_grass_wildmons ROUTE_17 db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite ; morn db 28, FEAROW @@ -977,8 +972,9 @@ KantoGrassWildMons: db 29, SLUGMA db 32, MUK db 32, MUK + end_grass_wildmons - map_id ROUTE_18 + def_grass_wildmons ROUTE_18 db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite ; morn db 26, GRIMER @@ -1004,8 +1000,9 @@ KantoGrassWildMons: db 27, SLUGMA db 30, MUK db 30, MUK + end_grass_wildmons - map_id ROUTE_21 + def_grass_wildmons ROUTE_21 db 6 percent, 6 percent, 6 percent ; encounter rates: morn/day/nite ; morn db 30, TANGELA @@ -1031,8 +1028,9 @@ KantoGrassWildMons: db 30, TANGELA db 28, MR__MIME db 28, MR__MIME + end_grass_wildmons - map_id ROUTE_22 + def_grass_wildmons ROUTE_22 db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite ; morn db 3, RATTATA @@ -1058,8 +1056,9 @@ KantoGrassWildMons: db 6, PONYTA db 7, RATTATA db 7, RATTATA + end_grass_wildmons - map_id ROUTE_24 + def_grass_wildmons ROUTE_24 db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite ; morn db 8, BELLSPROUT @@ -1085,8 +1084,9 @@ KantoGrassWildMons: db 10, BELLSPROUT db 10, VENOMOTH db 10, VENOMOTH + end_grass_wildmons - map_id ROUTE_25 + def_grass_wildmons ROUTE_25 db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite ; morn db 8, PIDGEY @@ -1112,10 +1112,10 @@ KantoGrassWildMons: db 14, WEEPINBELL db 10, BELLSPROUT db 10, BELLSPROUT + end_grass_wildmons - map_id ROUTE_26 + def_grass_wildmons ROUTE_26 db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite - IF DEF(_GOLD) ; morn db 28, DODUO @@ -1141,7 +1141,6 @@ KantoGrassWildMons: db 30, QUAGSIRE db 32, QUAGSIRE db 32, QUAGSIRE - ELIF DEF(_SILVER) ; morn db 28, DODUO @@ -1168,10 +1167,10 @@ KantoGrassWildMons: db 30, ARBOK db 30, ARBOK ENDC + end_grass_wildmons - map_id ROUTE_27 + def_grass_wildmons ROUTE_27 db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite - IF DEF(_GOLD) ; morn db 28, DODUO @@ -1197,7 +1196,6 @@ KantoGrassWildMons: db 32, PONYTA db 30, SANDSLASH db 30, SANDSLASH - ELIF DEF(_SILVER) ; morn db 28, DODUO @@ -1224,10 +1222,10 @@ KantoGrassWildMons: db 32, QUAGSIRE db 32, QUAGSIRE ENDC + end_grass_wildmons - map_id ROUTE_28 + def_grass_wildmons ROUTE_28 db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite - IF DEF(_GOLD) ; morn db 39, TANGELA @@ -1253,7 +1251,6 @@ KantoGrassWildMons: db 42, RAPIDASH db 42, RAPIDASH db 42, RAPIDASH - ELIF DEF(_SILVER) ; morn db 39, TANGELA @@ -1280,5 +1277,6 @@ KantoGrassWildMons: db 42, RAPIDASH db 42, RAPIDASH ENDC + end_grass_wildmons db -1 ; end diff --git a/data/wild/kanto_water.asm b/data/wild/kanto_water.asm index 1f91e95e..c63c7fa8 100644 --- a/data/wild/kanto_water.asm +++ b/data/wild/kanto_water.asm @@ -2,148 +2,172 @@ KantoWaterWildMons: - map_id ROUTE_4 + def_water_wildmons ROUTE_4 db 4 percent ; encounter rate db 10, GOLDEEN db 5, GOLDEEN db 10, SEAKING + end_water_wildmons - map_id ROUTE_6 + def_water_wildmons ROUTE_6 db 2 percent ; encounter rate db 10, PSYDUCK db 5, PSYDUCK db 10, GOLDUCK + end_water_wildmons - map_id ROUTE_9 + def_water_wildmons ROUTE_9 db 4 percent ; encounter rate db 15, GOLDEEN db 10, GOLDEEN db 15, SEAKING + end_water_wildmons - map_id ROUTE_10_NORTH + def_water_wildmons ROUTE_10_NORTH db 4 percent ; encounter rate db 15, GOLDEEN db 10, GOLDEEN db 15, SEAKING + end_water_wildmons - map_id ROUTE_12 + def_water_wildmons ROUTE_12 db 6 percent ; encounter rate db 25, TENTACOOL db 25, QUAGSIRE db 25, TENTACRUEL + end_water_wildmons - map_id ROUTE_13 + def_water_wildmons ROUTE_13 db 6 percent ; encounter rate db 25, TENTACOOL db 25, QUAGSIRE db 25, TENTACRUEL + end_water_wildmons - map_id ROUTE_19 + def_water_wildmons ROUTE_19 db 6 percent ; encounter rate db 35, TENTACOOL db 30, TENTACOOL db 35, TENTACRUEL + end_water_wildmons - map_id ROUTE_20 + def_water_wildmons ROUTE_20 db 6 percent ; encounter rate db 35, TENTACOOL db 30, TENTACOOL db 35, TENTACRUEL + end_water_wildmons - map_id ROUTE_21 + def_water_wildmons ROUTE_21 db 6 percent ; encounter rate db 35, TENTACOOL db 30, TENTACOOL db 35, TENTACRUEL + end_water_wildmons - map_id ROUTE_22 + def_water_wildmons ROUTE_22 db 2 percent ; encounter rate db 10, POLIWAG db 5, POLIWAG db 10, POLIWHIRL + end_water_wildmons - map_id ROUTE_24 + def_water_wildmons ROUTE_24 db 4 percent ; encounter rate db 10, GOLDEEN db 5, GOLDEEN db 10, SEAKING + end_water_wildmons - map_id ROUTE_25 + def_water_wildmons ROUTE_25 db 4 percent ; encounter rate db 10, GOLDEEN db 5, GOLDEEN db 10, SEAKING + end_water_wildmons - map_id ROUTE_26 + def_water_wildmons ROUTE_26 db 6 percent ; encounter rate db 30, TENTACOOL db 25, TENTACOOL db 30, TENTACRUEL + end_water_wildmons - map_id ROUTE_27 + def_water_wildmons ROUTE_27 db 6 percent ; encounter rate db 20, TENTACOOL db 15, TENTACOOL db 20, TENTACRUEL + end_water_wildmons - map_id TOHJO_FALLS + def_water_wildmons TOHJO_FALLS db 4 percent ; encounter rate db 20, GOLDEEN db 20, SLOWPOKE db 20, SEAKING + end_water_wildmons - map_id ROUTE_28 + def_water_wildmons ROUTE_28 db 2 percent ; encounter rate db 40, POLIWAG db 35, POLIWAG db 40, POLIWHIRL + end_water_wildmons - map_id PALLET_TOWN + def_water_wildmons PALLET_TOWN db 6 percent ; encounter rate db 35, TENTACOOL db 30, TENTACOOL db 35, TENTACRUEL + end_water_wildmons - map_id VIRIDIAN_CITY + def_water_wildmons VIRIDIAN_CITY db 2 percent ; encounter rate db 10, POLIWAG db 5, POLIWAG db 10, POLIWHIRL + end_water_wildmons - map_id CERULEAN_CITY + def_water_wildmons CERULEAN_CITY db 4 percent ; encounter rate db 10, GOLDEEN db 5, GOLDEEN db 10, SEAKING + end_water_wildmons - map_id VERMILION_CITY + def_water_wildmons VERMILION_CITY db 6 percent ; encounter rate db 35, TENTACOOL db 30, TENTACOOL db 35, TENTACRUEL + end_water_wildmons - map_id CELADON_CITY + def_water_wildmons CELADON_CITY db 2 percent ; encounter rate db 20, GRIMER db 15, GRIMER db 15, MUK + end_water_wildmons - map_id FUCHSIA_CITY + def_water_wildmons FUCHSIA_CITY db 2 percent ; encounter rate db 20, MAGIKARP db 15, MAGIKARP db 10, MAGIKARP + end_water_wildmons - map_id CINNABAR_ISLAND + def_water_wildmons CINNABAR_ISLAND db 6 percent ; encounter rate db 35, TENTACOOL db 30, TENTACOOL db 35, TENTACRUEL + end_water_wildmons - map_id VERMILION_PORT + def_water_wildmons VERMILION_PORT db 2 percent ; encounter rate db 35, TENTACOOL db 30, TENTACOOL db 35, TENTACRUEL + end_water_wildmons db -1 ; end diff --git a/data/wild/probabilities.asm b/data/wild/probabilities.asm index bf3144bb..f3f44e0a 100644 --- a/data/wild/probabilities.asm +++ b/data/wild/probabilities.asm @@ -4,6 +4,7 @@ mon_prob: MACRO ENDM GrassMonProbTable: + table_width 2, GrassMonProbTable mon_prob 30, 0 ; 30% chance mon_prob 60, 1 ; 30% chance mon_prob 80, 2 ; 20% chance @@ -11,8 +12,11 @@ GrassMonProbTable: mon_prob 95, 4 ; 5% chance mon_prob 99, 5 ; 4% chance mon_prob 100, 6 ; 1% chance + assert_table_length NUM_GRASSMON WaterMonProbTable: + table_width 2, WaterMonProbTable mon_prob 60, 0 ; 60% chance mon_prob 90, 1 ; 30% chance mon_prob 100, 2 ; 10% chance + assert_table_length NUM_WATERMON diff --git a/data/wild/swarm_grass.asm b/data/wild/swarm_grass.asm index 954ec7bb..2f1335c8 100644 --- a/data/wild/swarm_grass.asm +++ b/data/wild/swarm_grass.asm @@ -3,7 +3,7 @@ SwarmGrassWildMons: ; Yanma swarm - map_id ROUTE_35 + def_grass_wildmons ROUTE_35 db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite ; morn db 12, NIDORAN_M @@ -29,11 +29,11 @@ SwarmGrassWildMons: db 14, HOOTHOOT db 10, DITTO db 10, DITTO + end_grass_wildmons ; Snubbull swarm - map_id ROUTE_38 + def_grass_wildmons ROUTE_38 db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite - IF DEF(_GOLD) ; morn db 16, SNUBBULL @@ -59,7 +59,6 @@ SwarmGrassWildMons: db 13, MILTANK db 13, TAUROS db 13, TAUROS - ELIF DEF(_SILVER) ; morn db 16, SNUBBULL @@ -86,9 +85,10 @@ SwarmGrassWildMons: db 13, TAUROS db 13, TAUROS ENDC + end_grass_wildmons ; Dunsparce swarm - map_id DARK_CAVE_VIOLET_ENTRANCE + def_grass_wildmons DARK_CAVE_VIOLET_ENTRANCE db 4 percent, 4 percent, 4 percent ; encounter rates: morn/day/nite ; morn db 3, GEODUDE @@ -114,9 +114,10 @@ SwarmGrassWildMons: db 2, DUNSPARCE db 4, DUNSPARCE db 4, DUNSPARCE + end_grass_wildmons ; Marill swarm - map_id MOUNT_MORTAR_1F_OUTSIDE + def_grass_wildmons MOUNT_MORTAR_1F_OUTSIDE db 6 percent, 6 percent, 6 percent ; encounter rates: morn/day/nite ; morn db 13, MARILL @@ -142,5 +143,6 @@ SwarmGrassWildMons: db 14, GEODUDE db 16, RATTATA db 16, RATTATA + end_grass_wildmons db -1 ; end diff --git a/data/wild/swarm_water.asm b/data/wild/swarm_water.asm index d535dc6d..67f10efe 100644 --- a/data/wild/swarm_water.asm +++ b/data/wild/swarm_water.asm @@ -3,10 +3,11 @@ SwarmWaterWildMons: ; Marill swarm - map_id MOUNT_MORTAR_1F_OUTSIDE + def_water_wildmons MOUNT_MORTAR_1F_OUTSIDE db 4 percent ; encounter rate db 20, GOLDEEN db 20, MARILL db 20, SEAKING + end_water_wildmons db -1 ; end diff --git a/data/wild/treemons.asm b/data/wild/treemons.asm index f2687339..4b877084 100644 --- a/data/wild/treemons.asm +++ b/data/wild/treemons.asm @@ -1,9 +1,12 @@ TreeMons: ; entries correspond to TREEMON_SET_* constants + table_width 2, TreeMons dw TreeMonSet_None dw TreeMonSet_Forest dw TreeMonSet_Canyon dw TreeMonSet_Rock + assert_table_length NUM_TREEMON_SETS +; last two are unused/ignored dw TreeMonSet_Unused dw TreeMonSet_City |