diff options
author | IIMarckus <iimarckus@gmail.com> | 2018-08-16 07:48:39 -0600 |
---|---|---|
committer | IIMarckus <iimarckus@gmail.com> | 2018-08-16 07:51:39 -0600 |
commit | 46f02aaee0fa392c1d2219818982a45dfffb348b (patch) | |
tree | cfbd402ecb6d399a467bf029b4a142eb145aad07 | |
parent | 439f493aa9335759ed9d82b689ba0cd8f38882b2 (diff) |
Sync many constant/macro files with pokecrystal.
40 files changed, 2832 insertions, 1822 deletions
diff --git a/constants.asm b/constants.asm index a9004b73..bdbecc5e 100644 --- a/constants.asm +++ b/constants.asm @@ -13,6 +13,7 @@ INCLUDE "constants/map_constants.asm" INCLUDE "constants/map_setup_constants.asm" INCLUDE "constants/landmark_constants.asm" INCLUDE "constants/item_constants.asm" +INCLUDE "constants/item_data_constants.asm" INCLUDE "constants/trainer_constants.asm" INCLUDE "constants/script_constants.asm" INCLUDE "constants/event_flags.asm" @@ -22,6 +23,8 @@ INCLUDE "constants/sfx_constants.asm" INCLUDE "constants/animation_constants.asm" INCLUDE "constants/phone_constants.asm" INCLUDE "constants/gfx_constants.asm" +INCLUDE "constants/map_object_constants.asm" +INCLUDE "constants/text_constants.asm" INCLUDE "constants/pokemon_data_constants.asm" INCLUDE "constants/misc_constants.asm" INCLUDE "constants/std_constants.asm" @@ -34,3 +37,7 @@ INCLUDE "constants/battle_tower_constants.asm" INCLUDE "constants/cry_constants.asm" INCLUDE "constants/audio_constants.asm" INCLUDE "constants/printer_constants.asm" +INCLUDE "constants/map_data_constants.asm" +INCLUDE "constants/input_constants.asm" +INCLUDE "constants/sprite_data_constants.asm" +INCLUDE "constants/serial_constants.asm" diff --git a/constants/animation_constants.asm b/constants/animation_constants.asm index ea052aab..0170d570 100644 --- a/constants/animation_constants.asm +++ b/constants/animation_constants.asm @@ -1,3 +1,4 @@ +; battle_anim_struct members (see macros/wram.asm) const_def const BATTLEANIMSTRUCT_INDEX const BATTLEANIMSTRUCT_01 @@ -25,6 +26,7 @@ const BATTLEANIMSTRUCT_17 BATTLEANIMSTRUCT_LENGTH EQU const_value +; BattleAnimObjects indexes (see data/battle_anims/objects.asm) const_def const ANIM_OBJ_00 const ANIM_OBJ_01 @@ -215,6 +217,7 @@ BATTLEANIMSTRUCT_LENGTH EQU const_value const ANIM_OBJ_BA const ANIM_OBJ_BB +; DoBattleAnimFrame arguments (see engine/battle_anims/functions.asm) const_def const BATTLEANIMFUNC_00 const BATTLEANIMFUNC_01 @@ -297,6 +300,7 @@ BATTLEANIMSTRUCT_LENGTH EQU const_value const BATTLEANIMFUNC_4E const BATTLEANIMFUNC_4F +; BattleAnimFrameData indexes (see data/battle_anims/framesets.asm) const_def const BATTLEANIMFRAMESET_00 const BATTLEANIMFRAMESET_01 @@ -484,6 +488,7 @@ BATTLEANIMSTRUCT_LENGTH EQU const_value const BATTLEANIMFRAMESET_B7 const BATTLEANIMFRAMESET_B8 +; BattleAnimOAMData indexes (see data/battle_anims/oam.asm) const_def const BATTLEANIMOAMSET_00 const BATTLEANIMOAMSET_01 @@ -702,6 +707,7 @@ BATTLEANIMSTRUCT_LENGTH EQU const_value const BATTLEANIMOAMSET_D6 const BATTLEANIMOAMSET_D7 +; BattleBGEffects indexes (see engine/battle_anims/bg_effects.asm) const_value SET 1 const ANIM_BG_FLASH_INVERTED const ANIM_BG_FLASH_WHITE @@ -757,17 +763,7 @@ const_value SET 1 const ANIM_BG_WOBBLE_MON const ANIM_BG_35 - const_def - const ANIM_MON_SLOW ; 0 - const ANIM_MON_NORMAL ; 1 - const ANIM_MON_MENU ; 2 - const ANIM_MON_TRADE ; 3 - const ANIM_MON_EVOLVE ; 4 - const ANIM_MON_HATCH ; 5 - const ANIM_MON_UNUSED ; 6 - const ANIM_MON_EGG1 ; 7 - const ANIM_MON_EGG2 ; 8 - +; AnimObjGFX indexes (see data/battle_anims/object_gfx.asm) const_value SET 1 const ANIM_GFX_HIT const ANIM_GFX_CUT @@ -809,8 +805,31 @@ const_value SET 1 const ANIM_GFX_WAVE const ANIM_GFX_AEROBLAST +; battle_bg_effect struct members (see macros/wram.asm) const_def const BG_EFFECT_STRUCT_FUNCTION const BG_EFFECT_STRUCT_JT_INDEX const BG_EFFECT_STRUCT_BATTLE_TURN const BG_EFFECT_STRUCT_03 + +; battle palettes + const_def + const PAL_BATTLE_BG_PLAYER ; 0 + const PAL_BATTLE_BG_ENEMY ; 1 + const PAL_BATTLE_BG_ENEMY_HP ; 2 + const PAL_BATTLE_BG_PLAYER_HP ; 3 + const PAL_BATTLE_BG_EXP ; 4 + const PAL_BATTLE_BG_5 ; 5 + const PAL_BATTLE_BG_6 ; 6 + const PAL_BATTLE_BG_TEXT ; 7 + +; animation object palettes + const_def + const PAL_BATTLE_OB_ENEMY ; 0 + const PAL_BATTLE_OB_PLAYER ; 1 + const PAL_BATTLE_OB_GRAY ; 2 + const PAL_BATTLE_OB_YELLOW ; 3 + const PAL_BATTLE_OB_RED ; 4 + const PAL_BATTLE_OB_GREEN ; 5 + const PAL_BATTLE_OB_BLUE ; 6 + const PAL_BATTLE_OB_BROWN ; 7 diff --git a/constants/gfx_constants.asm b/constants/gfx_constants.asm index 9478cd12..70b24344 100644 --- a/constants/gfx_constants.asm +++ b/constants/gfx_constants.asm @@ -1,4 +1,54 @@ -LEN_2BPP_TILE EQU 16 -LEN_1BPP_TILE EQU 8 -TILES_PER_FRAME EQU 6 -TILESIZE EQU $10 +TILE_WIDTH EQU 8 ; pixels +LEN_1BPP_TILE EQU 1 * TILE_WIDTH ; bytes +LEN_2BPP_TILE EQU 2 * TILE_WIDTH ; bytes + +NUM_PAL_COLORS EQU 4 +PAL_COLOR_SIZE EQU 2 +PALETTE_SIZE EQU NUM_PAL_COLORS * PAL_COLOR_SIZE + +PALRGB_WHITE EQUS "palred 31 + palgreen 31 + palblue 31" ; $7fff + +SCREEN_WIDTH EQU 20 ; tiles +SCREEN_HEIGHT EQU 18 ; tiles +SCREEN_WIDTH_PX EQU SCREEN_WIDTH * TILE_WIDTH ; pixels +SCREEN_HEIGHT_PX EQU SCREEN_HEIGHT * TILE_WIDTH ; pixels + +BG_MAP_WIDTH EQU 32 ; tiles +BG_MAP_HEIGHT EQU 32 ; tiles + +METATILE_WIDTH EQU 4 ; tiles +SCREEN_META_WIDTH EQU 6 ; metatiles +SCREEN_META_HEIGHT EQU 5 ; metatiles +SURROUNDING_WIDTH EQU SCREEN_META_WIDTH * METATILE_WIDTH ; tiles +SURROUNDING_HEIGHT EQU SCREEN_META_HEIGHT * METATILE_WIDTH ; tiles + +HP_BAR_LENGTH EQU 6 ; tiles +EXP_BAR_LENGTH EQU 8 ; tiles +HP_BAR_LENGTH_PX EQU HP_BAR_LENGTH * TILE_WIDTH ; pixels +EXP_BAR_LENGTH_PX EQU EXP_BAR_LENGTH * TILE_WIDTH ; pixels + +; GetHPPal return values (see home.asm) +HP_GREEN EQU 0 +HP_YELLOW EQU 1 +HP_RED EQU 2 + +; sprite_oam_struct members (see macros/wram.asm) + const_def + const SPRITEOAMSTRUCT_YCOORD ; 0 + const SPRITEOAMSTRUCT_XCOORD ; 1 + const SPRITEOAMSTRUCT_TILE_ID ; 2 + const SPRITEOAMSTRUCT_ATTRIBUTES ; 3 +SPRITEOAMSTRUCT_LENGTH EQU const_value +NUM_SPRITE_OAM_STRUCTS EQU 40 ; see wVirtualOAM + +; PokeAnims indexes (see engine/gfx/pic_animation.asm) + const_def + const ANIM_MON_SLOW + const ANIM_MON_NORMAL + const ANIM_MON_MENU + const ANIM_MON_TRADE + const ANIM_MON_EVOLVE + const ANIM_MON_HATCH + const ANIM_MON_HOF + const ANIM_MON_EGG1 + const ANIM_MON_EGG2 diff --git a/constants/input_constants.asm b/constants/input_constants.asm new file mode 100644 index 00000000..3042c3f8 --- /dev/null +++ b/constants/input_constants.asm @@ -0,0 +1,26 @@ +; joypad buttons + const_def + const A_BUTTON_F ; 0 + const B_BUTTON_F ; 1 + const SELECT_F ; 2 + const START_F ; 3 + const D_RIGHT_F ; 4 + const D_LEFT_F ; 5 + const D_UP_F ; 6 + const D_DOWN_F ; 7 + +NO_INPUT EQU %00000000 +A_BUTTON EQU 1 << A_BUTTON_F +B_BUTTON EQU 1 << B_BUTTON_F +SELECT EQU 1 << SELECT_F +START EQU 1 << START_F +D_RIGHT EQU 1 << D_RIGHT_F +D_LEFT EQU 1 << D_LEFT_F +D_UP EQU 1 << D_UP_F +D_DOWN EQU 1 << D_DOWN_F + +BUTTONS EQU A_BUTTON | B_BUTTON | SELECT | START +D_PAD EQU D_RIGHT | D_LEFT | D_UP | D_DOWN + +R_DPAD EQU %00100000 +R_BUTTONS EQU %00010000 diff --git a/constants/item_constants.asm b/constants/item_constants.asm index 1c69ba57..57b5b4c9 100644 --- a/constants/item_constants.asm +++ b/constants/item_constants.asm @@ -1,3 +1,9 @@ +; item ids +; indexes for: +; - ItemNames (see data/items/names.asm) +; - ItemDescriptions (see data/items/descriptions.asm) +; - ItemAttributes (see data/items/attributes.asm) +; - ItemEffects (see engine/items/item_effects.asm) const_def const NO_ITEM ; $00 const MASTER_BALL ; $01 @@ -264,109 +270,6 @@ MOON_STONE_RED EQU 10 ; BURN_HEAL FULL_HEAL_RED EQU 52 ; X_SPEED MAIL_MAX_LENGTH EQU $20 -; pockets -ITEM EQU 1 -KEY_ITEM EQU 2 -BALL EQU 3 -TM_HM EQU 4 - -; item actions -CANT_SELECT EQU 1 << 6 -CANT_TOSS EQU 1 << 7 - - -; held item effects - const_def - - const HELD_NONE - const HELD_BERRY - const HELD_2 - const HELD_LEFTOVERS - const HELD_4 - const HELD_5 - const HELD_RESTORE_PP - const HELD_7 - const HELD_CLEANSE_TAG - -const_value SET 10 - const HELD_HEAL_POISON - const HELD_HEAL_FREEZE - const HELD_HEAL_BURN - const HELD_HEAL_SLEEP - const HELD_HEAL_PARALYZE - const HELD_HEAL_STATUS - const HELD_HEAL_CONFUSION - -const_value SET 20 - const HELD_PREVENT_POISON - const HELD_PREVENT_BURN - const HELD_PREVENT_FREEZE - const HELD_PREVENT_SLEEP - const HELD_PREVENT_PARALYZE - const HELD_PREVENT_CONFUSE - -const_value SET 30 - const HELD_30 - const HELD_ATTACK_UP - const HELD_DEFENSE_UP - const HELD_SPEED_UP - const HELD_SP_ATTACK_UP - const HELD_SP_DEFENSE_UP - const HELD_ACCURACY_UP - const HELD_EVASION_UP - const HELD_38 - -const_value SET 40 - const HELD_40 - const HELD_41 - const HELD_METAL_POWDER - -const_value SET 50 - const HELD_NORMAL_BOOST - const HELD_FIGHTING_BOOST - const HELD_FLYING_BOOST - const HELD_POISON_BOOST - const HELD_GROUND_BOOST - const HELD_ROCK_BOOST - const HELD_BUG_BOOST - const HELD_GHOST_BOOST - const HELD_FIRE_BOOST - const HELD_WATER_BOOST - const HELD_GRASS_BOOST - const HELD_ELECTRIC_BOOST - const HELD_PSYCHIC_BOOST - const HELD_ICE_BOOST - const HELD_DRAGON_BOOST - const HELD_DARK_BOOST - const HELD_STEEL_BOOST - -const_value SET 70 - const HELD_CATCH_CHANCE - const HELD_71 - const HELD_ESCAPE - const HELD_CRITICAL_UP - const HELD_QUICK_CLAW - const HELD_TRADE_EVOLVE - const HELD_AMULET_COIN - const HELD_BRIGHTPOWDER - const HELD_78 - const HELD_FOCUS_BAND - - const_def - const ITEMATTR_PRICE - const ITEMATTR_PRICE_HI - const ITEMATTR_EFFECT - const ITEMATTR_PARAM - const ITEMATTR_PERMISSIONS - const ITEMATTR_POCKET - const ITEMATTR_HELP -NUM_ITEMATTRS EQU const_value - -ITEMMENU_NOUSE EQU 0 -ITEMMENU_CURRENT EQU 4 -ITEMMENU_PARTY EQU 5 -ITEMMENU_CLOSE EQU 6 - const_def const MARTTYPE_STANDARD const MARTTYPE_BITTER diff --git a/constants/item_data_constants.asm b/constants/item_data_constants.asm new file mode 100644 index 00000000..5040ab04 --- /dev/null +++ b/constants/item_data_constants.asm @@ -0,0 +1,128 @@ +; item_attributes struct members (see data/items/attributes.asm) + const_def + const ITEMATTR_PRICE + const ITEMATTR_PRICE_HI + const ITEMATTR_EFFECT + const ITEMATTR_PARAM + const ITEMATTR_PERMISSIONS + const ITEMATTR_POCKET + const ITEMATTR_HELP +ITEMATTR_STRUCT_LENGTH EQU const_value + +; item types + const_def 1 + const ITEM ; 1 + const KEY_ITEM ; 2 + const BALL ; 3 + const TM_HM ; 4 + +; item menu types +; UseItem.dw indexes (see engine/items/pack.asm) +; UseRegisteredItem.SwitchTo indexes (see engine/overworld/select_menu.asm) +ITEMMENU_NOUSE EQU 0 +ITEMMENU_CURRENT EQU 4 +ITEMMENU_PARTY EQU 5 +ITEMMENU_CLOSE EQU 6 + +; item actions +CANT_SELECT_F EQU 6 +CANT_TOSS_F EQU 7 + +NO_LIMITS EQU 0 +CANT_SELECT EQU 1 << CANT_SELECT_F +CANT_TOSS EQU 1 << CANT_TOSS_F + +; pack pockets + const_def + const ITEM_POCKET ; 0 + const BALL_POCKET ; 1 + const KEY_ITEM_POCKET ; 2 + const TM_HM_POCKET ; 3 +NUM_POCKETS EQU const_value + +MAX_ITEMS EQU 20 +MAX_BALLS EQU 12 +MAX_KEY_ITEMS EQU 25 +MAX_PC_ITEMS EQU 50 + +; mail +MAIL_LINE_LENGTH EQU $10 +MAIL_MSG_LENGTH EQU $20 +MAILBOX_CAPACITY EQU 10 +MAIL_STRUCT_LENGTH EQU $2f ; mailmsg struct + +; held item effects + const_def + const HELD_NONE + const HELD_BERRY + const HELD_2 + const HELD_LEFTOVERS + const HELD_4 + const HELD_5 + const HELD_RESTORE_PP + const HELD_7 + const HELD_CLEANSE_TAG + + const_def 10 + const HELD_HEAL_POISON + const HELD_HEAL_FREEZE + const HELD_HEAL_BURN + const HELD_HEAL_SLEEP + const HELD_HEAL_PARALYZE + const HELD_HEAL_STATUS + const HELD_HEAL_CONFUSION + + const_def 20 + const HELD_PREVENT_POISON + const HELD_PREVENT_BURN + const HELD_PREVENT_FREEZE + const HELD_PREVENT_SLEEP + const HELD_PREVENT_PARALYZE + const HELD_PREVENT_CONFUSE + + const_def 30 + const HELD_30 + const HELD_ATTACK_UP + const HELD_DEFENSE_UP + const HELD_SPEED_UP + const HELD_SP_ATTACK_UP + const HELD_SP_DEFENSE_UP + const HELD_ACCURACY_UP + const HELD_EVASION_UP + const HELD_38 + + const_def 40 + const HELD_40 + const HELD_41 + const HELD_METAL_POWDER + + const_def 50 + const HELD_NORMAL_BOOST + const HELD_FIGHTING_BOOST + const HELD_FLYING_BOOST + const HELD_POISON_BOOST + const HELD_GROUND_BOOST + const HELD_ROCK_BOOST + const HELD_BUG_BOOST + const HELD_GHOST_BOOST + const HELD_FIRE_BOOST + const HELD_WATER_BOOST + const HELD_GRASS_BOOST + const HELD_ELECTRIC_BOOST + const HELD_PSYCHIC_BOOST + const HELD_ICE_BOOST + const HELD_DRAGON_BOOST + const HELD_DARK_BOOST + const HELD_STEEL_BOOST + + const_def 70 + const HELD_CATCH_CHANCE + const HELD_71 + const HELD_ESCAPE + const HELD_CRITICAL_UP + const HELD_QUICK_CLAW + const HELD_FLINCH + const HELD_AMULET_COIN + const HELD_BRIGHTPOWDER + const HELD_78 + const HELD_FOCUS_BAND diff --git a/constants/map_constants.asm b/constants/map_constants.asm index b63c17be..d9e56382 100644 --- a/constants/map_constants.asm +++ b/constants/map_constants.asm @@ -1,702 +1,485 @@ -GROUP_N_A EQU -1 -MAP_N_A EQU -1 +newgroup: MACRO +const_value = const_value + 1 + enum_start 1 +ENDM + +map_const: MACRO +;\1: map id +;\2: width: in blocks +;\3: height: in blocks +GROUP_\1 EQU const_value + enum MAP_\1 +\1_WIDTH EQU \2 +\1_HEIGHT EQU \3 +ENDM -GROUP_NONE EQU 0 -MAP_NONE EQU 0 +; map group ids +; `newgroup` indexes are for: +; - MapGroupPointers (see data/maps/maps.asm) +; - MapGroupRoofs (see data/maps/roofs.asm) +; - OutdoorSprites (see data/maps/outdoor_sprites.asm) +; - RoofPals (see gfx/tilesets/roofs.pal) +; `map_const` indexes are for the sub-tables of MapGroupPointers (see data/maps/maps.asm) +; Each map also has associated data: +; - attributes (see data/maps/attributes.asm) +; - blocks (see data/maps/blocks.asm) +; - scripts and events (see data/maps/scripts.asm) ; map group ids const_def + newgroup ; 1 - mapgroup OLIVINE_POKECENTER_1F, 4, 5 ; 1 - mapgroup OLIVINE_GYM, 8, 5 ; 2 - mapgroup OLIVINE_TIMS_HOUSE, 4, 4 ; 3 - mapgroup OLIVINE_HOUSE_BETA, 4, 4 ; 4 - mapgroup OLIVINE_PUNISHMENT_SPEECH_HOUSE, 4, 4 ; 5 - mapgroup OLIVINE_GOOD_ROD_HOUSE, 4, 4 ; 6 - mapgroup OLIVINE_CAFE, 4, 4 ; 7 - mapgroup OLIVINE_MART, 4, 6 ; 8 - mapgroup ROUTE_38_ECRUTEAK_GATE, 4, 5 ; 9 - mapgroup ROUTE_39_BARN, 4, 4 ; 10 - mapgroup ROUTE_39_FARMHOUSE, 4, 4 ; 11 - mapgroup ROUTE_38, 9, 20 ; 12 - mapgroup ROUTE_39, 18, 10 ; 13 - mapgroup OLIVINE_CITY, 18, 20 ; 14 + map_const OLIVINE_POKECENTER_1F, 4, 5 ; 1 + map_const OLIVINE_GYM, 8, 5 ; 2 + map_const OLIVINE_TIMS_HOUSE, 4, 4 ; 3 + map_const OLIVINE_HOUSE_BETA, 4, 4 ; 4 + map_const OLIVINE_PUNISHMENT_SPEECH_HOUSE, 4, 4 ; 5 + map_const OLIVINE_GOOD_ROD_HOUSE, 4, 4 ; 6 + map_const OLIVINE_CAFE, 4, 4 ; 7 + map_const OLIVINE_MART, 4, 6 ; 8 + map_const ROUTE_38_ECRUTEAK_GATE, 4, 5 ; 9 + map_const ROUTE_39_BARN, 4, 4 ; 10 + map_const ROUTE_39_FARMHOUSE, 4, 4 ; 11 + map_const ROUTE_38, 9, 20 ; 12 + map_const ROUTE_39, 18, 10 ; 13 + map_const OLIVINE_CITY, 18, 20 ; 14 newgroup ; 2 - mapgroup MAHOGANY_RED_GYARADOS_SPEECH_HOUSE, 4, 4 ; 1 - mapgroup MAHOGANY_GYM, 9, 5 ; 2 - mapgroup MAHOGANY_POKECENTER_1F, 4, 5 ; 3 - mapgroup ROUTE_42_ECRUTEAK_GATE, 4, 5 ; 4 - mapgroup ROUTE_42, 9, 30 ; 5 - mapgroup ROUTE_44, 9, 30 ; 6 - mapgroup MAHOGANY_TOWN, 9, 10 ; 7 + map_const MAHOGANY_RED_GYARADOS_SPEECH_HOUSE, 4, 4 ; 1 + map_const MAHOGANY_GYM, 9, 5 ; 2 + map_const MAHOGANY_POKECENTER_1F, 4, 5 ; 3 + map_const ROUTE_42_ECRUTEAK_GATE, 4, 5 ; 4 + map_const ROUTE_42, 9, 30 ; 5 + map_const ROUTE_44, 9, 30 ; 6 + map_const MAHOGANY_TOWN, 9, 10 ; 7 newgroup ; 3 - mapgroup SPROUT_TOWER_1F, 8, 10 ; 1 - mapgroup SPROUT_TOWER_2F, 8, 10 ; 2 - mapgroup SPROUT_TOWER_3F, 8, 10 ; 3 - mapgroup TIN_TOWER_1F, 9, 10 ; 4 - mapgroup TIN_TOWER_2F, 9, 10 ; 5 - mapgroup TIN_TOWER_3F, 9, 10 ; 6 - mapgroup TIN_TOWER_4F, 9, 10 ; 7 - mapgroup TIN_TOWER_5F, 9, 10 ; 8 - mapgroup TIN_TOWER_6F, 9, 10 ; 9 - mapgroup TIN_TOWER_7F, 9, 10 ; 10 - mapgroup TIN_TOWER_8F, 9, 10 ; 11 - mapgroup TIN_TOWER_9F, 9, 10 ; 12 - mapgroup BURNED_TOWER_1F, 9, 10 ; 13 - mapgroup BURNED_TOWER_B1F, 9, 10 ; 14 - mapgroup NATIONAL_PARK, 27, 20 ; 15 - mapgroup NATIONAL_PARK_BUG_CONTEST, 27, 20 ; 16 - mapgroup RADIO_TOWER_1F, 4, 9 ; 17 - mapgroup RADIO_TOWER_2F, 4, 9 ; 18 - mapgroup RADIO_TOWER_3F, 4, 9 ; 19 - mapgroup RADIO_TOWER_4F, 4, 9 ; 20 - mapgroup RADIO_TOWER_5F, 4, 9 ; 21 - mapgroup RUINS_OF_ALPH_OUTSIDE, 18, 10 ; 22 - mapgroup RUINS_OF_ALPH_HO_OH_CHAMBER, 5, 4 ; 23 - mapgroup RUINS_OF_ALPH_KABUTO_CHAMBER, 5, 4 ; 24 - mapgroup RUINS_OF_ALPH_OMANYTE_CHAMBER, 5, 4 ; 25 - mapgroup RUINS_OF_ALPH_AERODACTYL_CHAMBER, 5, 4 ; 26 - mapgroup RUINS_OF_ALPH_INNER_CHAMBER, 14, 10 ; 27 - mapgroup RUINS_OF_ALPH_RESEARCH_CENTER, 4, 4 ; 28 - mapgroup RUINS_OF_ALPH_HO_OH_ITEM_ROOM, 5, 4 ; 29 - mapgroup RUINS_OF_ALPH_KABUTO_ITEM_ROOM, 5, 4 ; 30 - mapgroup RUINS_OF_ALPH_OMANYTE_ITEM_ROOM, 5, 4 ; 31 - mapgroup RUINS_OF_ALPH_AERODACTYL_ITEM_ROOM, 5, 4 ; 32 - mapgroup RUINS_OF_ALPH_HO_OH_WORD_ROOM, 12, 10 ; 33 - mapgroup RUINS_OF_ALPH_KABUTO_WORD_ROOM, 7, 10 ; 34 - mapgroup RUINS_OF_ALPH_OMANYTE_WORD_ROOM, 8, 10 ; 35 - mapgroup RUINS_OF_ALPH_AERODACTYL_WORD_ROOM, 7, 10 ; 36 - mapgroup UNION_CAVE_1F, 18, 10 ; 37 - mapgroup UNION_CAVE_B1F, 18, 10 ; 38 - mapgroup UNION_CAVE_B2F, 18, 10 ; 39 - mapgroup SLOWPOKE_WELL_B1F, 9, 10 ; 40 - mapgroup SLOWPOKE_WELL_B2F, 9, 10 ; 41 - mapgroup OLIVINE_LIGHTHOUSE_1F, 9, 10 ; 42 - mapgroup OLIVINE_LIGHTHOUSE_2F, 9, 10 ; 43 - mapgroup OLIVINE_LIGHTHOUSE_3F, 9, 10 ; 44 - mapgroup OLIVINE_LIGHTHOUSE_4F, 9, 10 ; 45 - mapgroup OLIVINE_LIGHTHOUSE_5F, 9, 10 ; 46 - mapgroup OLIVINE_LIGHTHOUSE_6F, 9, 10 ; 47 - mapgroup MAHOGANY_MART_1F, 4, 4 ; 48 - mapgroup TEAM_ROCKET_BASE_B1F, 9, 15 ; 49 - mapgroup TEAM_ROCKET_BASE_B2F, 9, 15 ; 50 - mapgroup TEAM_ROCKET_BASE_B3F, 9, 15 ; 51 - mapgroup ILEX_FOREST, 27, 15 ; 52 - mapgroup WAREHOUSE_ENTRANCE, 18, 15 ; 53 - mapgroup UNDERGROUND_PATH_SWITCH_ROOM_ENTRANCES, 18, 15 ; 54 - mapgroup GOLDENROD_DEPT_STORE_B1F, 9, 10 ; 55 - mapgroup UNDERGROUND_WAREHOUSE, 9, 10 ; 56 - mapgroup MOUNT_MORTAR_1F_OUTSIDE, 18, 20 ; 57 - mapgroup MOUNT_MORTAR_1F_INSIDE, 27, 20 ; 58 - mapgroup MOUNT_MORTAR_2F_INSIDE, 18, 20 ; 59 - mapgroup MOUNT_MORTAR_B1F, 18, 20 ; 60 - mapgroup ICE_PATH_1F, 18, 20 ; 61 - mapgroup ICE_PATH_B1F, 18, 10 ; 62 - mapgroup ICE_PATH_B2F_MAHOGANY_SIDE, 9, 10 ; 63 - mapgroup ICE_PATH_B2F_BLACKTHORN_SIDE, 9, 5 ; 64 - mapgroup ICE_PATH_B3F, 9, 10 ; 65 - mapgroup WHIRL_ISLAND_NW, 9, 5 ; 66 - mapgroup WHIRL_ISLAND_NE, 9, 10 ; 67 - mapgroup WHIRL_ISLAND_SW, 9, 10 ; 68 - mapgroup WHIRL_ISLAND_CAVE, 9, 5 ; 69 - mapgroup WHIRL_ISLAND_SE, 9, 5 ; 70 - mapgroup WHIRL_ISLAND_B1F, 18, 20 ; 71 - mapgroup WHIRL_ISLAND_B2F, 18, 10 ; 72 - mapgroup WHIRL_ISLAND_LUGIA_CHAMBER, 9, 10 ; 73 - mapgroup SILVER_CAVE_ROOM_1, 18, 10 ; 74 - mapgroup SILVER_CAVE_ROOM_2, 18, 15 ; 75 - mapgroup SILVER_CAVE_ROOM_3, 18, 10 ; 76 - mapgroup SILVER_CAVE_ITEM_ROOMS, 9, 10 ; 77 - mapgroup DARK_CAVE_VIOLET_ENTRANCE, 18, 20 ; 78 - mapgroup DARK_CAVE_BLACKTHORN_ENTRANCE, 18, 15 ; 79 - mapgroup DRAGONS_DEN_1F, 9, 5 ; 80 - mapgroup DRAGONS_DEN_B1F, 18, 20 ; 81 - mapgroup DRAGON_SHRINE, 5, 5 ; 82 - mapgroup TOHJO_FALLS, 9, 15 ; 83 - mapgroup DIGLETTS_CAVE, 18, 10 ; 84 - mapgroup MOUNT_MOON, 9, 15 ; 85 - mapgroup UNDERGROUND, 14, 3 ; 86 - mapgroup ROCK_TUNNEL_1F, 18, 15 ; 87 - mapgroup ROCK_TUNNEL_B1F, 18, 15 ; 88 - mapgroup SAFARI_ZONE_FUCHSIA_GATE_BETA, 4, 5 ; 89 - mapgroup SAFARI_ZONE_BETA, 18, 10 ; 90 - mapgroup VICTORY_ROAD, 36, 10 ; 91 + map_const SPROUT_TOWER_1F, 8, 10 ; 1 + map_const SPROUT_TOWER_2F, 8, 10 ; 2 + map_const SPROUT_TOWER_3F, 8, 10 ; 3 + map_const TIN_TOWER_1F, 9, 10 ; 4 + map_const TIN_TOWER_2F, 9, 10 ; 5 + map_const TIN_TOWER_3F, 9, 10 ; 6 + map_const TIN_TOWER_4F, 9, 10 ; 7 + map_const TIN_TOWER_5F, 9, 10 ; 8 + map_const TIN_TOWER_6F, 9, 10 ; 9 + map_const TIN_TOWER_7F, 9, 10 ; 10 + map_const TIN_TOWER_8F, 9, 10 ; 11 + map_const TIN_TOWER_9F, 9, 10 ; 12 + map_const BURNED_TOWER_1F, 9, 10 ; 13 + map_const BURNED_TOWER_B1F, 9, 10 ; 14 + map_const NATIONAL_PARK, 27, 20 ; 15 + map_const NATIONAL_PARK_BUG_CONTEST, 27, 20 ; 16 + map_const RADIO_TOWER_1F, 4, 9 ; 17 + map_const RADIO_TOWER_2F, 4, 9 ; 18 + map_const RADIO_TOWER_3F, 4, 9 ; 19 + map_const RADIO_TOWER_4F, 4, 9 ; 20 + map_const RADIO_TOWER_5F, 4, 9 ; 21 + map_const RUINS_OF_ALPH_OUTSIDE, 18, 10 ; 22 + map_const RUINS_OF_ALPH_HO_OH_CHAMBER, 5, 4 ; 23 + map_const RUINS_OF_ALPH_KABUTO_CHAMBER, 5, 4 ; 24 + map_const RUINS_OF_ALPH_OMANYTE_CHAMBER, 5, 4 ; 25 + map_const RUINS_OF_ALPH_AERODACTYL_CHAMBER, 5, 4 ; 26 + map_const RUINS_OF_ALPH_INNER_CHAMBER, 14, 10 ; 27 + map_const RUINS_OF_ALPH_RESEARCH_CENTER, 4, 4 ; 28 + map_const RUINS_OF_ALPH_HO_OH_ITEM_ROOM, 5, 4 ; 29 + map_const RUINS_OF_ALPH_KABUTO_ITEM_ROOM, 5, 4 ; 30 + map_const RUINS_OF_ALPH_OMANYTE_ITEM_ROOM, 5, 4 ; 31 + map_const RUINS_OF_ALPH_AERODACTYL_ITEM_ROOM, 5, 4 ; 32 + map_const RUINS_OF_ALPH_HO_OH_WORD_ROOM, 12, 10 ; 33 + map_const RUINS_OF_ALPH_KABUTO_WORD_ROOM, 7, 10 ; 34 + map_const RUINS_OF_ALPH_OMANYTE_WORD_ROOM, 8, 10 ; 35 + map_const RUINS_OF_ALPH_AERODACTYL_WORD_ROOM, 7, 10 ; 36 + map_const UNION_CAVE_1F, 18, 10 ; 37 + map_const UNION_CAVE_B1F, 18, 10 ; 38 + map_const UNION_CAVE_B2F, 18, 10 ; 39 + map_const SLOWPOKE_WELL_B1F, 9, 10 ; 40 + map_const SLOWPOKE_WELL_B2F, 9, 10 ; 41 + map_const OLIVINE_LIGHTHOUSE_1F, 9, 10 ; 42 + map_const OLIVINE_LIGHTHOUSE_2F, 9, 10 ; 43 + map_const OLIVINE_LIGHTHOUSE_3F, 9, 10 ; 44 + map_const OLIVINE_LIGHTHOUSE_4F, 9, 10 ; 45 + map_const OLIVINE_LIGHTHOUSE_5F, 9, 10 ; 46 + map_const OLIVINE_LIGHTHOUSE_6F, 9, 10 ; 47 + map_const MAHOGANY_MART_1F, 4, 4 ; 48 + map_const TEAM_ROCKET_BASE_B1F, 9, 15 ; 49 + map_const TEAM_ROCKET_BASE_B2F, 9, 15 ; 50 + map_const TEAM_ROCKET_BASE_B3F, 9, 15 ; 51 + map_const ILEX_FOREST, 27, 15 ; 52 + map_const WAREHOUSE_ENTRANCE, 18, 15 ; 53 + map_const UNDERGROUND_PATH_SWITCH_ROOM_ENTRANCES, 18, 15 ; 54 + map_const GOLDENROD_DEPT_STORE_B1F, 9, 10 ; 55 + map_const UNDERGROUND_WAREHOUSE, 9, 10 ; 56 + map_const MOUNT_MORTAR_1F_OUTSIDE, 18, 20 ; 57 + map_const MOUNT_MORTAR_1F_INSIDE, 27, 20 ; 58 + map_const MOUNT_MORTAR_2F_INSIDE, 18, 20 ; 59 + map_const MOUNT_MORTAR_B1F, 18, 20 ; 60 + map_const ICE_PATH_1F, 18, 20 ; 61 + map_const ICE_PATH_B1F, 18, 10 ; 62 + map_const ICE_PATH_B2F_MAHOGANY_SIDE, 9, 10 ; 63 + map_const ICE_PATH_B2F_BLACKTHORN_SIDE, 9, 5 ; 64 + map_const ICE_PATH_B3F, 9, 10 ; 65 + map_const WHIRL_ISLAND_NW, 9, 5 ; 66 + map_const WHIRL_ISLAND_NE, 9, 10 ; 67 + map_const WHIRL_ISLAND_SW, 9, 10 ; 68 + map_const WHIRL_ISLAND_CAVE, 9, 5 ; 69 + map_const WHIRL_ISLAND_SE, 9, 5 ; 70 + map_const WHIRL_ISLAND_B1F, 18, 20 ; 71 + map_const WHIRL_ISLAND_B2F, 18, 10 ; 72 + map_const WHIRL_ISLAND_LUGIA_CHAMBER, 9, 10 ; 73 + map_const SILVER_CAVE_ROOM_1, 18, 10 ; 74 + map_const SILVER_CAVE_ROOM_2, 18, 15 ; 75 + map_const SILVER_CAVE_ROOM_3, 18, 10 ; 76 + map_const SILVER_CAVE_ITEM_ROOMS, 9, 10 ; 77 + map_const DARK_CAVE_VIOLET_ENTRANCE, 18, 20 ; 78 + map_const DARK_CAVE_BLACKTHORN_ENTRANCE, 18, 15 ; 79 + map_const DRAGONS_DEN_1F, 9, 5 ; 80 + map_const DRAGONS_DEN_B1F, 18, 20 ; 81 + map_const DRAGON_SHRINE, 5, 5 ; 82 + map_const TOHJO_FALLS, 9, 15 ; 83 + map_const DIGLETTS_CAVE, 18, 10 ; 84 + map_const MOUNT_MOON, 9, 15 ; 85 + map_const UNDERGROUND, 14, 3 ; 86 + map_const ROCK_TUNNEL_1F, 18, 15 ; 87 + map_const ROCK_TUNNEL_B1F, 18, 15 ; 88 + map_const SAFARI_ZONE_FUCHSIA_GATE_BETA, 4, 5 ; 89 + map_const SAFARI_ZONE_BETA, 18, 10 ; 90 + map_const VICTORY_ROAD, 36, 10 ; 91 newgroup ; 4 - mapgroup ECRUTEAK_HOUSE, 9, 10 ; 1 - mapgroup WISE_TRIOS_ROOM, 4, 4 ; 2 - mapgroup ECRUTEAK_POKECENTER_1F, 4, 5 ; 3 - mapgroup ECRUTEAK_LUGIA_SPEECH_HOUSE, 4, 4 ; 4 - mapgroup DANCE_THEATRE, 7, 6 ; 5 - mapgroup ECRUTEAK_MART, 4, 6 ; 6 - mapgroup ECRUTEAK_GYM, 9, 5 ; 7 - mapgroup ECRUTEAK_ITEMFINDER_HOUSE, 4, 4 ; 8 - mapgroup ECRUTEAK_CITY, 18, 20 ; 9 + map_const ECRUTEAK_HOUSE, 9, 10 ; 1 + map_const WISE_TRIOS_ROOM, 4, 4 ; 2 + map_const ECRUTEAK_POKECENTER_1F, 4, 5 ; 3 + map_const ECRUTEAK_LUGIA_SPEECH_HOUSE, 4, 4 ; 4 + map_const DANCE_THEATRE, 7, 6 ; 5 + map_const ECRUTEAK_MART, 4, 6 ; 6 + map_const ECRUTEAK_GYM, 9, 5 ; 7 + map_const ECRUTEAK_ITEMFINDER_HOUSE, 4, 4 ; 8 + map_const ECRUTEAK_CITY, 18, 20 ; 9 newgroup ; 5 - mapgroup BLACKTHORN_GYM_1F, 9, 5 ; 1 - mapgroup BLACKTHORN_GYM_2F, 9, 5 ; 2 - mapgroup BLACKTHORN_DRAGON_SPEECH_HOUSE, 4, 4 ; 3 - mapgroup BLACKTHORN_EMYS_HOUSE, 4, 4 ; 4 - mapgroup BLACKTHORN_MART, 4, 6 ; 5 - mapgroup BLACKTHORN_POKECENTER_1F, 4, 5 ; 6 - mapgroup MOVE_DELETERS_HOUSE, 4, 4 ; 7 - mapgroup ROUTE_45, 45, 10 ; 8 - mapgroup ROUTE_46, 18, 10 ; 9 - mapgroup BLACKTHORN_CITY, 18, 20 ; 10 + map_const BLACKTHORN_GYM_1F, 9, 5 ; 1 + map_const BLACKTHORN_GYM_2F, 9, 5 ; 2 + map_const BLACKTHORN_DRAGON_SPEECH_HOUSE, 4, 4 ; 3 + map_const BLACKTHORN_EMYS_HOUSE, 4, 4 ; 4 + map_const BLACKTHORN_MART, 4, 6 ; 5 + map_const BLACKTHORN_POKECENTER_1F, 4, 5 ; 6 + map_const MOVE_DELETERS_HOUSE, 4, 4 ; 7 + map_const ROUTE_45, 45, 10 ; 8 + map_const ROUTE_46, 18, 10 ; 9 + map_const BLACKTHORN_CITY, 18, 20 ; 10 newgroup ; 6 - mapgroup CINNABAR_POKECENTER_1F, 4, 5 ; 1 - mapgroup CINNABAR_POKECENTER_2F_BETA, 4, 8 ; 2 - mapgroup ROUTE_19___FUCHSIA_GATE, 4, 5 ; 3 - mapgroup SEAFOAM_GYM, 4, 5 ; 4 - mapgroup ROUTE_19, 18, 10 ; 5 - mapgroup ROUTE_20, 9, 30 ; 6 - mapgroup ROUTE_21, 18, 10 ; 7 - mapgroup CINNABAR_ISLAND, 9, 10 ; 8 + map_const CINNABAR_POKECENTER_1F, 4, 5 ; 1 + map_const CINNABAR_POKECENTER_2F_BETA, 4, 8 ; 2 + map_const ROUTE_19___FUCHSIA_GATE, 4, 5 ; 3 + map_const SEAFOAM_GYM, 4, 5 ; 4 + map_const ROUTE_19, 18, 10 ; 5 + map_const ROUTE_20, 9, 30 ; 6 + map_const ROUTE_21, 18, 10 ; 7 + map_const CINNABAR_ISLAND, 9, 10 ; 8 newgroup ; 7 - mapgroup CERULEAN_GYM_BADGE_SPEECH_HOUSE, 4, 4 ; 1 - mapgroup CERULEAN_POLICE_STATION, 4, 4 ; 2 - mapgroup CERULEAN_TRADE_SPEECH_HOUSE, 4, 4 ; 3 - mapgroup CERULEAN_POKECENTER_1F, 4, 5 ; 4 - mapgroup CERULEAN_POKECENTER_2F_BETA, 4, 8 ; 5 - mapgroup CERULEAN_GYM, 8, 5 ; 6 - mapgroup CERULEAN_MART, 4, 6 ; 7 - mapgroup ROUTE_10_POKECENTER_1F, 4, 5 ; 8 - mapgroup ROUTE_10_POKECENTER_2F_BETA, 4, 8 ; 9 - mapgroup POWER_PLANT, 9, 10 ; 10 - mapgroup BILLS_HOUSE, 4, 4 ; 11 - mapgroup ROUTE_4, 9, 20 ; 12 - mapgroup ROUTE_9, 9, 30 ; 13 - mapgroup ROUTE_10_NORTH, 9, 10 ; 14 - mapgroup ROUTE_24, 9, 10 ; 15 - mapgroup ROUTE_25, 9, 30 ; 16 - mapgroup CERULEAN_CITY, 18, 20 ; 17 + map_const CERULEAN_GYM_BADGE_SPEECH_HOUSE, 4, 4 ; 1 + map_const CERULEAN_POLICE_STATION, 4, 4 ; 2 + map_const CERULEAN_TRADE_SPEECH_HOUSE, 4, 4 ; 3 + map_const CERULEAN_POKECENTER_1F, 4, 5 ; 4 + map_const CERULEAN_POKECENTER_2F_BETA, 4, 8 ; 5 + map_const CERULEAN_GYM, 8, 5 ; 6 + map_const CERULEAN_MART, 4, 6 ; 7 + map_const ROUTE_10_POKECENTER_1F, 4, 5 ; 8 + map_const ROUTE_10_POKECENTER_2F_BETA, 4, 8 ; 9 + map_const POWER_PLANT, 9, 10 ; 10 + map_const BILLS_HOUSE, 4, 4 ; 11 + map_const ROUTE_4, 9, 20 ; 12 + map_const ROUTE_9, 9, 30 ; 13 + map_const ROUTE_10_NORTH, 9, 10 ; 14 + map_const ROUTE_24, 9, 10 ; 15 + map_const ROUTE_25, 9, 30 ; 16 + map_const CERULEAN_CITY, 18, 20 ; 17 newgroup ; 8 - mapgroup AZALEA_POKECENTER_1F, 4, 5 ; 1 - mapgroup CHARCOAL_KILN, 4, 4 ; 2 - mapgroup AZALEA_MART, 4, 6 ; 3 - mapgroup KURTS_HOUSE, 4, 8 ; 4 - mapgroup AZALEA_GYM, 8, 5 ; 5 - mapgroup ROUTE_33, 9, 10 ; 6 - mapgroup AZALEA_TOWN, 9, 20 ; 7 + map_const AZALEA_POKECENTER_1F, 4, 5 ; 1 + map_const CHARCOAL_KILN, 4, 4 ; 2 + map_const AZALEA_MART, 4, 6 ; 3 + map_const KURTS_HOUSE, 4, 8 ; 4 + map_const AZALEA_GYM, 8, 5 ; 5 + map_const ROUTE_33, 9, 10 ; 6 + map_const AZALEA_TOWN, 9, 20 ; 7 newgroup ; 9 - mapgroup LAKE_OF_RAGE_HIDDEN_POWER_HOUSE, 4, 4 ; 1 - mapgroup LAKE_OF_RAGE_MAGIKARP_HOUSE, 4, 4 ; 2 - mapgroup ROUTE_43_MAHOGANY_GATE, 4, 5 ; 3 - mapgroup ROUTE_43_GATE, 4, 5 ; 4 - mapgroup ROUTE_43, 27, 10 ; 5 - mapgroup LAKE_OF_RAGE, 18, 20 ; 6 + map_const LAKE_OF_RAGE_HIDDEN_POWER_HOUSE, 4, 4 ; 1 + map_const LAKE_OF_RAGE_MAGIKARP_HOUSE, 4, 4 ; 2 + map_const ROUTE_43_MAHOGANY_GATE, 4, 5 ; 3 + map_const ROUTE_43_GATE, 4, 5 ; 4 + map_const ROUTE_43, 27, 10 ; 5 + map_const LAKE_OF_RAGE, 18, 20 ; 6 newgroup ; 10 - mapgroup ROUTE_32, 45, 10 ; 1 - mapgroup ROUTE_35, 18, 10 ; 2 - mapgroup ROUTE_36, 9, 30 ; 3 - mapgroup ROUTE_37, 9, 10 ; 4 - mapgroup VIOLET_CITY, 18, 20 ; 5 - mapgroup VIOLET_MART, 4, 6 ; 6 - mapgroup VIOLET_GYM, 8, 5 ; 7 - mapgroup EARLS_POKEMON_ACADEMY, 8, 4 ; 8 - mapgroup VIOLET_NICKNAME_SPEECH_HOUSE, 4, 4 ; 9 - mapgroup VIOLET_POKECENTER_1F, 4, 5 ; 10 - mapgroup VIOLET_ONIX_TRADE_HOUSE, 4, 4 ; 11 - mapgroup ROUTE_32_RUINS_OF_ALPH_GATE, 4, 5 ; 12 - mapgroup ROUTE_32_POKECENTER_1F, 4, 5 ; 13 - mapgroup ROUTE_35_GOLDENROD_GATE, 4, 5 ; 14 - mapgroup ROUTE_35_NATIONAL_PARK_GATE, 4, 4 ; 15 - mapgroup ROUTE_36_RUINS_OF_ALPH_GATE, 4, 5 ; 16 - mapgroup ROUTE_36_NATIONAL_PARK_GATE, 4, 5 ; 17 + map_const ROUTE_32, 45, 10 ; 1 + map_const ROUTE_35, 18, 10 ; 2 + map_const ROUTE_36, 9, 30 ; 3 + map_const ROUTE_37, 9, 10 ; 4 + map_const VIOLET_CITY, 18, 20 ; 5 + map_const VIOLET_MART, 4, 6 ; 6 + map_const VIOLET_GYM, 8, 5 ; 7 + map_const EARLS_POKEMON_ACADEMY, 8, 4 ; 8 + map_const VIOLET_NICKNAME_SPEECH_HOUSE, 4, 4 ; 9 + map_const VIOLET_POKECENTER_1F, 4, 5 ; 10 + map_const VIOLET_ONIX_TRADE_HOUSE, 4, 4 ; 11 + map_const ROUTE_32_RUINS_OF_ALPH_GATE, 4, 5 ; 12 + map_const ROUTE_32_POKECENTER_1F, 4, 5 ; 13 + map_const ROUTE_35_GOLDENROD_GATE, 4, 5 ; 14 + map_const ROUTE_35_NATIONAL_PARK_GATE, 4, 4 ; 15 + map_const ROUTE_36_RUINS_OF_ALPH_GATE, 4, 5 ; 16 + map_const ROUTE_36_NATIONAL_PARK_GATE, 4, 5 ; 17 newgroup ; 11 - mapgroup ROUTE_34, 27, 10 ; 1 - mapgroup GOLDENROD_CITY, 18, 20 ; 2 - mapgroup GOLDENROD_GYM, 9, 10 ; 3 - mapgroup GOLDENROD_BIKE_SHOP, 4, 4 ; 4 - mapgroup GOLDENROD_HAPPINESS_RATER, 4, 4 ; 5 - mapgroup GOLDENROD_BILLS_HOUSE, 4, 4 ; 6 - mapgroup GOLDENROD_MAGNET_TRAIN_STATION, 9, 10 ; 7 - mapgroup GOLDENROD_FLOWER_SHOP, 4, 4 ; 8 - mapgroup GOLDENROD_PP_SPEECH_HOUSE, 4, 4 ; 9 - mapgroup GOLDENROD_NAME_RATER, 4, 4 ; 10 - mapgroup GOLDENROD_DEPT_STORE_1F, 4, 8 ; 11 - mapgroup GOLDENROD_DEPT_STORE_2F, 4, 8 ; 12 - mapgroup GOLDENROD_DEPT_STORE_3F, 4, 8 ; 13 - mapgroup GOLDENROD_DEPT_STORE_4F, 4, 8 ; 14 - mapgroup GOLDENROD_DEPT_STORE_5F, 4, 8 ; 15 - mapgroup GOLDENROD_DEPT_STORE_6F, 4, 8 ; 16 - mapgroup GOLDENROD_DEPT_STORE_ELEVATOR, 2, 2 ; 17 - mapgroup GOLDENROD_DEPT_STORE_ROOF, 4, 8 ; 18 - mapgroup GOLDENROD_GAME_CORNER, 7, 10 ; 19 - mapgroup GOLDENROD_POKECENTER_1F, 4, 5 ; 20 - mapgroup ILEX_FOREST_AZALEA_GATE, 4, 5 ; 21 - mapgroup ROUTE_34_ILEX_FOREST_GATE, 4, 5 ; 22 - mapgroup DAYCARE, 4, 5 ; 23 + map_const ROUTE_34, 27, 10 ; 1 + map_const GOLDENROD_CITY, 18, 20 ; 2 + map_const GOLDENROD_GYM, 9, 10 ; 3 + map_const GOLDENROD_BIKE_SHOP, 4, 4 ; 4 + map_const GOLDENROD_HAPPINESS_RATER, 4, 4 ; 5 + map_const GOLDENROD_BILLS_HOUSE, 4, 4 ; 6 + map_const GOLDENROD_MAGNET_TRAIN_STATION, 9, 10 ; 7 + map_const GOLDENROD_FLOWER_SHOP, 4, 4 ; 8 + map_const GOLDENROD_PP_SPEECH_HOUSE, 4, 4 ; 9 + map_const GOLDENROD_NAME_RATER, 4, 4 ; 10 + map_const GOLDENROD_DEPT_STORE_1F, 4, 8 ; 11 + map_const GOLDENROD_DEPT_STORE_2F, 4, 8 ; 12 + map_const GOLDENROD_DEPT_STORE_3F, 4, 8 ; 13 + map_const GOLDENROD_DEPT_STORE_4F, 4, 8 ; 14 + map_const GOLDENROD_DEPT_STORE_5F, 4, 8 ; 15 + map_const GOLDENROD_DEPT_STORE_6F, 4, 8 ; 16 + map_const GOLDENROD_DEPT_STORE_ELEVATOR, 2, 2 ; 17 + map_const GOLDENROD_DEPT_STORE_ROOF, 4, 8 ; 18 + map_const GOLDENROD_GAME_CORNER, 7, 10 ; 19 + map_const GOLDENROD_POKECENTER_1F, 4, 5 ; 20 + map_const ILEX_FOREST_AZALEA_GATE, 4, 5 ; 21 + map_const ROUTE_34_ILEX_FOREST_GATE, 4, 5 ; 22 + map_const DAYCARE, 4, 5 ; 23 newgroup ; 12 - mapgroup ROUTE_6, 9, 10 ; 1 - mapgroup ROUTE_11, 9, 20 ; 2 - mapgroup VERMILION_CITY, 18, 20 ; 3 - mapgroup VERMILION_HOUSE_FISHING_SPEECH_HOUSE, 4, 4 ; 4 - mapgroup VERMILION_POKECENTER_1F, 4, 5 ; 5 - mapgroup VERMILION_POKECENTER_2F_BETA, 4, 8 ; 6 - mapgroup POKEMON_FAN_CLUB, 4, 5 ; 7 - mapgroup VERMILION_MAGNET_TRAIN_SPEECH_HOUSE, 4, 4 ; 8 - mapgroup VERMILION_MART, 4, 6 ; 9 - mapgroup VERMILION_HOUSE_DIGLETTS_CAVE_SPEECH_HOUSE, 4, 4 ; 10 - mapgroup VERMILION_GYM, 9, 5 ; 11 - mapgroup ROUTE_6_SAFFRON_GATE, 4, 5 ; 12 - mapgroup ROUTE_6_UNDERGROUND_ENTRANCE, 4, 4 ; 13 + map_const ROUTE_6, 9, 10 ; 1 + map_const ROUTE_11, 9, 20 ; 2 + map_const VERMILION_CITY, 18, 20 ; 3 + map_const VERMILION_HOUSE_FISHING_SPEECH_HOUSE, 4, 4 ; 4 + map_const VERMILION_POKECENTER_1F, 4, 5 ; 5 + map_const VERMILION_POKECENTER_2F_BETA, 4, 8 ; 6 + map_const POKEMON_FAN_CLUB, 4, 5 ; 7 + map_const VERMILION_MAGNET_TRAIN_SPEECH_HOUSE, 4, 4 ; 8 + map_const VERMILION_MART, 4, 6 ; 9 + map_const VERMILION_HOUSE_DIGLETTS_CAVE_SPEECH_HOUSE, 4, 4 ; 10 + map_const VERMILION_GYM, 9, 5 ; 11 + map_const ROUTE_6_SAFFRON_GATE, 4, 5 ; 12 + map_const ROUTE_6_UNDERGROUND_ENTRANCE, 4, 4 ; 13 newgroup ; 13 - mapgroup ROUTE_1, 18, 10 ; 1 - mapgroup PALLET_TOWN, 9, 10 ; 2 - mapgroup REDS_HOUSE_1F, 4, 4 ; 3 - mapgroup REDS_HOUSE_2F, 4, 4 ; 4 - mapgroup BLUES_HOUSE, 4, 4 ; 5 - mapgroup OAKS_LAB, 6, 5 ; 6 + map_const ROUTE_1, 18, 10 ; 1 + map_const PALLET_TOWN, 9, 10 ; 2 + map_const REDS_HOUSE_1F, 4, 4 ; 3 + map_const REDS_HOUSE_2F, 4, 4 ; 4 + map_const BLUES_HOUSE, 4, 4 ; 5 + map_const OAKS_LAB, 6, 5 ; 6 newgroup ; 14 - mapgroup ROUTE_3, 9, 30 ; 1 - mapgroup PEWTER_CITY, 18, 20 ; 2 - mapgroup PEWTER_NIDORAN_SPEECH_HOUSE, 4, 4 ; 3 - mapgroup PEWTER_GYM, 7, 5 ; 4 - mapgroup PEWTER_MART, 4, 6 ; 5 - mapgroup PEWTER_POKECENTER_1F, 4, 5 ; 6 - mapgroup PEWTER_POKECENTER_2F_BETA, 4, 8 ; 7 - mapgroup PEWTER_SNOOZE_SPEECH_HOUSE, 4, 4 ; 8 + map_const ROUTE_3, 9, 30 ; 1 + map_const PEWTER_CITY, 18, 20 ; 2 + map_const PEWTER_NIDORAN_SPEECH_HOUSE, 4, 4 ; 3 + map_const PEWTER_GYM, 7, 5 ; 4 + map_const PEWTER_MART, 4, 6 ; 5 + map_const PEWTER_POKECENTER_1F, 4, 5 ; 6 + map_const PEWTER_POKECENTER_2F_BETA, 4, 8 ; 7 + map_const PEWTER_SNOOZE_SPEECH_HOUSE, 4, 4 ; 8 newgroup ; 15 - mapgroup OLIVINE_PORT, 18, 10 ; 1 - mapgroup VERMILION_PORT, 18, 10 ; 2 - mapgroup FAST_SHIP_1F, 9, 16 ; 3 - mapgroup FAST_SHIP_CABINS_NNW_NNE_NE, 16, 4 ; 4 - mapgroup FAST_SHIP_CABINS_SW_SSW_NW, 16, 4 ; 5 - mapgroup FAST_SHIP_CABINS_SE_SSE_CAPTAINS_CABIN, 17, 5 ; 6 - mapgroup FAST_SHIP_B1F, 8, 16 ; 7 - mapgroup OLIVINE_PORT_PASSAGE, 9, 10 ; 8 - mapgroup VERMILION_PORT_PASSAGE, 9, 10 ; 9 - mapgroup MOUNT_MOON_SQUARE, 9, 15 ; 10 - mapgroup MOUNT_MOON_GIFT_SHOP, 4, 4 ; 11 - mapgroup TIN_TOWER_ROOF, 9, 10 ; 12 + map_const OLIVINE_PORT, 18, 10 ; 1 + map_const VERMILION_PORT, 18, 10 ; 2 + map_const FAST_SHIP_1F, 9, 16 ; 3 + map_const FAST_SHIP_CABINS_NNW_NNE_NE, 16, 4 ; 4 + map_const FAST_SHIP_CABINS_SW_SSW_NW, 16, 4 ; 5 + map_const FAST_SHIP_CABINS_SE_SSE_CAPTAINS_CABIN, 17, 5 ; 6 + map_const FAST_SHIP_B1F, 8, 16 ; 7 + map_const OLIVINE_PORT_PASSAGE, 9, 10 ; 8 + map_const VERMILION_PORT_PASSAGE, 9, 10 ; 9 + map_const MOUNT_MOON_SQUARE, 9, 15 ; 10 + map_const MOUNT_MOON_GIFT_SHOP, 4, 4 ; 11 + map_const TIN_TOWER_ROOF, 9, 10 ; 12 newgroup ; 16 - mapgroup ROUTE_23, 9, 10 ; 1 - mapgroup INDIGO_PLATEAU_POKECENTER_1F, 7, 9 ; 2 - mapgroup WILLS_ROOM, 9, 5 ; 3 - mapgroup KOGAS_ROOM, 9, 5 ; 4 - mapgroup BRUNOS_ROOM, 9, 5 ; 5 - mapgroup KARENS_ROOM, 9, 5 ; 6 - mapgroup LANCES_ROOM, 12, 5 ; 7 - mapgroup HALL_OF_FAME, 7, 5 ; 8 + map_const ROUTE_23, 9, 10 ; 1 + map_const INDIGO_PLATEAU_POKECENTER_1F, 7, 9 ; 2 + map_const WILLS_ROOM, 9, 5 ; 3 + map_const KOGAS_ROOM, 9, 5 ; 4 + map_const BRUNOS_ROOM, 9, 5 ; 5 + map_const KARENS_ROOM, 9, 5 ; 6 + map_const LANCES_ROOM, 12, 5 ; 7 + map_const HALL_OF_FAME, 7, 5 ; 8 newgroup ; 17 - mapgroup ROUTE_13, 9, 30 ; 1 - mapgroup ROUTE_14, 18, 10 ; 2 - mapgroup ROUTE_15, 9, 20 ; 3 - mapgroup ROUTE_18, 9, 10 ; 4 - mapgroup FUCHSIA_CITY, 18, 20 ; 5 - mapgroup FUCHSIA_MART, 4, 6 ; 6 - mapgroup SAFARI_ZONE_MAIN_OFFICE, 4, 4 ; 7 - mapgroup FUCHSIA_GYM, 9, 5 ; 8 - mapgroup FUCHSIA_BILL_SPEECH_HOUSE, 4, 4 ; 9 - mapgroup FUCHSIA_POKECENTER_1F, 4, 5 ; 10 - mapgroup FUCHSIA_POKECENTER_2F_BETA, 4, 8 ; 11 - mapgroup SAFARI_ZONE_WARDENS_HOME, 4, 5 ; 12 - mapgroup ROUTE_15_FUCHSIA_GATE, 4, 5 ; 13 + map_const ROUTE_13, 9, 30 ; 1 + map_const ROUTE_14, 18, 10 ; 2 + map_const ROUTE_15, 9, 20 ; 3 + map_const ROUTE_18, 9, 10 ; 4 + map_const FUCHSIA_CITY, 18, 20 ; 5 + map_const FUCHSIA_MART, 4, 6 ; 6 + map_const SAFARI_ZONE_MAIN_OFFICE, 4, 4 ; 7 + map_const FUCHSIA_GYM, 9, 5 ; 8 + map_const FUCHSIA_BILL_SPEECH_HOUSE, 4, 4 ; 9 + map_const FUCHSIA_POKECENTER_1F, 4, 5 ; 10 + map_const FUCHSIA_POKECENTER_2F_BETA, 4, 8 ; 11 + map_const SAFARI_ZONE_WARDENS_HOME, 4, 5 ; 12 + map_const ROUTE_15_FUCHSIA_GATE, 4, 5 ; 13 newgroup ; 18 - mapgroup ROUTE_8, 9, 20 ; 1 - mapgroup ROUTE_12, 27, 10 ; 2 - mapgroup ROUTE_10_SOUTH, 9, 10 ; 3 - mapgroup LAVENDER_TOWN, 9, 10 ; 4 - mapgroup LAVENDER_POKECENTER_1F, 4, 5 ; 5 - mapgroup LAVENDER_POKECENTER_2F_BETA, 4, 8 ; 6 - mapgroup MR_FUJIS_HOUSE, 4, 5 ; 7 - mapgroup LAVENDER_TOWN_SPEECH_HOUSE, 4, 4 ; 8 - mapgroup LAVENDER_NAME_RATER, 4, 4 ; 9 - mapgroup LAVENDER_MART, 4, 6 ; 10 - mapgroup SOUL_HOUSE, 4, 5 ; 11 - mapgroup LAV_RADIO_TOWER_1F, 4, 10 ; 12 - mapgroup ROUTE_8_SAFFRON_GATE, 4, 5 ; 13 - mapgroup ROUTE_12_SUPER_ROD_HOUSE, 4, 4 ; 14 + map_const ROUTE_8, 9, 20 ; 1 + map_const ROUTE_12, 27, 10 ; 2 + map_const ROUTE_10_SOUTH, 9, 10 ; 3 + map_const LAVENDER_TOWN, 9, 10 ; 4 + map_const LAVENDER_POKECENTER_1F, 4, 5 ; 5 + map_const LAVENDER_POKECENTER_2F_BETA, 4, 8 ; 6 + map_const MR_FUJIS_HOUSE, 4, 5 ; 7 + map_const LAVENDER_TOWN_SPEECH_HOUSE, 4, 4 ; 8 + map_const LAVENDER_NAME_RATER, 4, 4 ; 9 + map_const LAVENDER_MART, 4, 6 ; 10 + map_const SOUL_HOUSE, 4, 5 ; 11 + map_const LAV_RADIO_TOWER_1F, 4, 10 ; 12 + map_const ROUTE_8_SAFFRON_GATE, 4, 5 ; 13 + map_const ROUTE_12_SUPER_ROD_HOUSE, 4, 4 ; 14 newgroup ; 19 - mapgroup ROUTE_28, 9, 20 ; 1 - mapgroup SILVER_CAVE_OUTSIDE, 18, 20 ; 2 - mapgroup SILVER_CAVE_POKECENTER_1F, 4, 5 ; 3 - mapgroup ROUTE_28_FAMOUS_SPEECH_HOUSE, 4, 4 ; 4 + map_const ROUTE_28, 9, 20 ; 1 + map_const SILVER_CAVE_OUTSIDE, 18, 20 ; 2 + map_const SILVER_CAVE_POKECENTER_1F, 4, 5 ; 3 + map_const ROUTE_28_FAMOUS_SPEECH_HOUSE, 4, 4 ; 4 newgroup ; 20 - mapgroup POKECENTER_2F, 4, 8 ; 1 - mapgroup TRADE_CENTER, 4, 5 ; 2 - mapgroup COLOSSEUM, 4, 5 ; 3 - mapgroup TIME_CAPSULE, 4, 5 ; 4 + map_const POKECENTER_2F, 4, 8 ; 1 + map_const TRADE_CENTER, 4, 5 ; 2 + map_const COLOSSEUM, 4, 5 ; 3 + map_const TIME_CAPSULE, 4, 5 ; 4 newgroup ; 21 - mapgroup ROUTE_7, 9, 10 ; 1 - mapgroup ROUTE_16, 9, 10 ; 2 - mapgroup ROUTE_17, 45, 10 ; 3 - mapgroup CELADON_CITY, 18, 20 ; 4 - mapgroup CELADON_DEPT_STORE_1F, 4, 8 ; 5 - mapgroup CELADON_DEPT_STORE_2F, 4, 8 ; 6 - mapgroup CELADON_DEPT_STORE_3F, 4, 8 ; 7 - mapgroup CELADON_DEPT_STORE_4F, 4, 8 ; 8 - mapgroup CELADON_DEPT_STORE_5F, 4, 8 ; 9 - mapgroup CELADON_DEPT_STORE_6F, 4, 8 ; 10 - mapgroup CELADON_DEPT_STORE_ELEVATOR, 2, 2 ; 11 - mapgroup CELADON_MANSION_1F, 5, 4 ; 12 - mapgroup CELADON_MANSION_2F, 5, 4 ; 13 - mapgroup CELADON_MANSION_3F, 5, 4 ; 14 - mapgroup CELADON_MANSION_ROOF, 5, 4 ; 15 - mapgroup CELADON_MANSION_ROOF_HOUSE, 4, 4 ; 16 - mapgroup CELADON_POKECENTER_1F, 4, 5 ; 17 - mapgroup CELADON_POKECENTER_2F_BETA, 4, 8 ; 18 - mapgroup CELADON_GAME_CORNER, 7, 10 ; 19 - mapgroup CELADON_GAME_CORNER_PRIZE_ROOM, 3, 3 ; 20 - mapgroup CELADON_GYM, 9, 5 ; 21 - mapgroup CELADON_CAFE, 4, 6 ; 22 - mapgroup ROUTE_16_FUCHSIA_SPEECH_HOUSE, 4, 4 ; 23 - mapgroup ROUTE_16_GATE, 4, 5 ; 24 - mapgroup ROUTE_7_SAFFRON_GATE, 4, 5 ; 25 - mapgroup ROUTE_17_18_GATE, 4, 5 ; 26 + map_const ROUTE_7, 9, 10 ; 1 + map_const ROUTE_16, 9, 10 ; 2 + map_const ROUTE_17, 45, 10 ; 3 + map_const CELADON_CITY, 18, 20 ; 4 + map_const CELADON_DEPT_STORE_1F, 4, 8 ; 5 + map_const CELADON_DEPT_STORE_2F, 4, 8 ; 6 + map_const CELADON_DEPT_STORE_3F, 4, 8 ; 7 + map_const CELADON_DEPT_STORE_4F, 4, 8 ; 8 + map_const CELADON_DEPT_STORE_5F, 4, 8 ; 9 + map_const CELADON_DEPT_STORE_6F, 4, 8 ; 10 + map_const CELADON_DEPT_STORE_ELEVATOR, 2, 2 ; 11 + map_const CELADON_MANSION_1F, 5, 4 ; 12 + map_const CELADON_MANSION_2F, 5, 4 ; 13 + map_const CELADON_MANSION_3F, 5, 4 ; 14 + map_const CELADON_MANSION_ROOF, 5, 4 ; 15 + map_const CELADON_MANSION_ROOF_HOUSE, 4, 4 ; 16 + map_const CELADON_POKECENTER_1F, 4, 5 ; 17 + map_const CELADON_POKECENTER_2F_BETA, 4, 8 ; 18 + map_const CELADON_GAME_CORNER, 7, 10 ; 19 + map_const CELADON_GAME_CORNER_PRIZE_ROOM, 3, 3 ; 20 + map_const CELADON_GYM, 9, 5 ; 21 + map_const CELADON_CAFE, 4, 6 ; 22 + map_const ROUTE_16_FUCHSIA_SPEECH_HOUSE, 4, 4 ; 23 + map_const ROUTE_16_GATE, 4, 5 ; 24 + map_const ROUTE_7_SAFFRON_GATE, 4, 5 ; 25 + map_const ROUTE_17_18_GATE, 4, 5 ; 26 newgroup ; 22 - mapgroup ROUTE_40, 18, 10 ; 1 - mapgroup ROUTE_41, 27, 25 ; 2 - mapgroup CIANWOOD_CITY, 27, 15 ; 3 - mapgroup MANIAS_HOUSE, 4, 4 ; 4 - mapgroup CIANWOOD_GYM, 9, 5 ; 5 - mapgroup CIANWOOD_POKECENTER_1F, 4, 5 ; 6 - mapgroup CIANWOOD_PHARMACY, 4, 4 ; 7 - mapgroup CIANWOOD_CITY_PHOTO_STUDIO, 4, 4 ; 8 - mapgroup CIANWOOD_LUGIA_SPEECH_HOUSE, 4, 4 ; 9 + map_const ROUTE_40, 18, 10 ; 1 + map_const ROUTE_41, 27, 25 ; 2 + map_const CIANWOOD_CITY, 27, 15 ; 3 + map_const MANIAS_HOUSE, 4, 4 ; 4 + map_const CIANWOOD_GYM, 9, 5 ; 5 + map_const CIANWOOD_POKECENTER_1F, 4, 5 ; 6 + map_const CIANWOOD_PHARMACY, 4, 4 ; 7 + map_const CIANWOOD_CITY_PHOTO_STUDIO, 4, 4 ; 8 + map_const CIANWOOD_LUGIA_SPEECH_HOUSE, 4, 4 ; 9 newgroup ; 23 - mapgroup ROUTE_2, 27, 10 ; 1 - mapgroup ROUTE_22, 9, 20 ; 2 - mapgroup VIRIDIAN_CITY, 18, 20 ; 3 - mapgroup VIRIDIAN_GYM, 9, 5 ; 4 - mapgroup VIRIDIAN_NICKNAME_SPEECH_HOUSE, 4, 4 ; 5 - mapgroup TRAINER_HOUSE_1F, 7, 5 ; 6 - mapgroup TRAINER_HOUSE_B1F, 8, 5 ; 7 - mapgroup VIRIDIAN_MART, 4, 6 ; 8 - mapgroup VIRIDIAN_POKECENTER_1F, 4, 5 ; 9 - mapgroup VIRIDIAN_POKECENTER_2F_BETA, 4, 8 ; 10 - mapgroup ROUTE_2_NUGGET_SPEECH_HOUSE, 4, 4 ; 11 - mapgroup ROUTE_2_GATE, 4, 5 ; 12 - mapgroup VICTORY_ROAD_GATE, 9, 10 ; 13 + map_const ROUTE_2, 27, 10 ; 1 + map_const ROUTE_22, 9, 20 ; 2 + map_const VIRIDIAN_CITY, 18, 20 ; 3 + map_const VIRIDIAN_GYM, 9, 5 ; 4 + map_const VIRIDIAN_NICKNAME_SPEECH_HOUSE, 4, 4 ; 5 + map_const TRAINER_HOUSE_1F, 7, 5 ; 6 + map_const TRAINER_HOUSE_B1F, 8, 5 ; 7 + map_const VIRIDIAN_MART, 4, 6 ; 8 + map_const VIRIDIAN_POKECENTER_1F, 4, 5 ; 9 + map_const VIRIDIAN_POKECENTER_2F_BETA, 4, 8 ; 10 + map_const ROUTE_2_NUGGET_SPEECH_HOUSE, 4, 4 ; 11 + map_const ROUTE_2_GATE, 4, 5 ; 12 + map_const VICTORY_ROAD_GATE, 9, 10 ; 13 newgroup ; 24 - mapgroup ROUTE_26, 54, 10 ; 1 - mapgroup ROUTE_27, 9, 40 ; 2 - mapgroup ROUTE_29, 9, 30 ; 3 - mapgroup NEW_BARK_TOWN, 9, 10 ; 4 - mapgroup ELMS_LAB, 6, 5 ; 5 - mapgroup KRISS_HOUSE_1F, 4, 5 ; 6 - mapgroup KRISS_HOUSE_2F, 3, 4 ; 7 - mapgroup KRISS_NEIGHBORS_HOUSE, 4, 4 ; 8 - mapgroup ELMS_HOUSE, 4, 4 ; 9 - mapgroup ROUTE_26_HEAL_SPEECH_HOUSE, 4, 4 ; 10 - mapgroup ROUTE_26_DAY_OF_WEEK_SIBLINGS_HOUSE, 4, 4 ; 11 - mapgroup ROUTE_27_SANDSTORM_HOUSE, 4, 4 ; 12 - mapgroup ROUTE_29_46_GATE, 4, 5 ; 13 + map_const ROUTE_26, 54, 10 ; 1 + map_const ROUTE_27, 9, 40 ; 2 + map_const ROUTE_29, 9, 30 ; 3 + map_const NEW_BARK_TOWN, 9, 10 ; 4 + map_const ELMS_LAB, 6, 5 ; 5 + map_const KRISS_HOUSE_1F, 4, 5 ; 6 + map_const KRISS_HOUSE_2F, 3, 4 ; 7 + map_const KRISS_NEIGHBORS_HOUSE, 4, 4 ; 8 + map_const ELMS_HOUSE, 4, 4 ; 9 + map_const ROUTE_26_HEAL_SPEECH_HOUSE, 4, 4 ; 10 + map_const ROUTE_26_DAY_OF_WEEK_SIBLINGS_HOUSE, 4, 4 ; 11 + map_const ROUTE_27_SANDSTORM_HOUSE, 4, 4 ; 12 + map_const ROUTE_29_46_GATE, 4, 5 ; 13 newgroup ; 25 - mapgroup ROUTE_5, 9, 10 ; 1 - mapgroup SAFFRON_CITY, 18, 20 ; 2 - mapgroup FIGHTING_DOJO, 6, 5 ; 3 - mapgroup SAFFRON_GYM, 9, 10 ; 4 - mapgroup SAFFRON_MART, 4, 6 ; 5 - mapgroup SAFFRON_POKECENTER_1F, 4, 5 ; 6 - mapgroup SAFFRON_POKECENTER_2F_BETA, 4, 8 ; 7 - mapgroup MR_PSYCHICS_HOUSE, 4, 4 ; 8 - mapgroup SAFFRON_TRAIN_STATION, 9, 10 ; 9 - mapgroup SILPH_CO_1F, 4, 8 ; 10 - mapgroup COPYCATS_HOUSE_1F, 4, 4 ; 11 - mapgroup COPYCATS_HOUSE_2F, 3, 5 ; 12 - mapgroup ROUTE_5_UNDERGROUND_ENTRANCE, 4, 4 ; 13 - mapgroup ROUTE_5_SAFFRON_CITY_GATE, 4, 5 ; 14 - mapgroup ROUTE_5_CLEANSE_TAG_SPEECH_HOUSE, 4, 4 ; 15 + map_const ROUTE_5, 9, 10 ; 1 + map_const SAFFRON_CITY, 18, 20 ; 2 + map_const FIGHTING_DOJO, 6, 5 ; 3 + map_const SAFFRON_GYM, 9, 10 ; 4 + map_const SAFFRON_MART, 4, 6 ; 5 + map_const SAFFRON_POKECENTER_1F, 4, 5 ; 6 + map_const SAFFRON_POKECENTER_2F_BETA, 4, 8 ; 7 + map_const MR_PSYCHICS_HOUSE, 4, 4 ; 8 + map_const SAFFRON_TRAIN_STATION, 9, 10 ; 9 + map_const SILPH_CO_1F, 4, 8 ; 10 + map_const COPYCATS_HOUSE_1F, 4, 4 ; 11 + map_const COPYCATS_HOUSE_2F, 3, 5 ; 12 + map_const ROUTE_5_UNDERGROUND_ENTRANCE, 4, 4 ; 13 + map_const ROUTE_5_SAFFRON_CITY_GATE, 4, 5 ; 14 + map_const ROUTE_5_CLEANSE_TAG_SPEECH_HOUSE, 4, 4 ; 15 newgroup ; 26 - mapgroup ROUTE_30, 27, 10 ; 1 - mapgroup ROUTE_31, 9, 20 ; 2 - mapgroup CHERRYGROVE_CITY, 9, 20 ; 3 - mapgroup CHERRYGROVE_MART, 4, 6 ; 4 - mapgroup CHERRYGROVE_POKECENTER_1F, 4, 5 ; 5 - mapgroup CHERRYGROVE_GYM_SPEECH_HOUSE, 4, 4 ; 6 - mapgroup GUIDE_GENTS_HOUSE, 4, 4 ; 7 - mapgroup CHERRYGROVE_EVOLUTION_SPEECH_HOUSE, 4, 4 ; 8 - mapgroup ROUTE_30_BERRY_SPEECH_HOUSE, 4, 4 ; 9 - mapgroup MR_POKEMONS_HOUSE, 4, 4 ; 10 - mapgroup ROUTE_31_VIOLET_GATE, 4, 5 ; 11 - -NUM_MAP_GROUPS EQU const_value - -; elevator floors - - const_def - const _B4F - const _B3F - const _B2F - const _B1F - const _1F - const _2F - const _3F - const _4F - const _5F - const _6F - const _7F - const _8F - const _9F - const _10F - const _11F - const _ROOF - -; connection directions - const_def - const EAST_F - const WEST_F - const SOUTH_F - const NORTH_F - - const_def - shift_const EAST - shift_const WEST - shift_const SOUTH - shift_const NORTH - -; permissions -const_value SET 1 - const TOWN - const ROUTE - const INDOOR - const CAVE - const PERM_5 - const GATE - const DUNGEON - -; object struct - const_def - const OBJECT_SPRITE ; 00 - const OBJECT_MAP_OBJECT_INDEX ; 01 - const OBJECT_SPRITE_TILE ; 02 - const OBJECT_MOVEMENTTYPE ; 03 - const OBJECT_FLAGS1 ; 04 - const OBJECT_FLAGS2 ; 05 - const OBJECT_PALETTE ; 06 - const OBJECT_DIRECTION_WALKING ; 07 - const OBJECT_FACING ; 08 - const OBJECT_STEP_TYPE ; 09 - const OBJECT_STEP_DURATION ; 0a - const OBJECT_ACTION ; 0b - const OBJECT_STEP_FRAME ; 0c - const OBJECT_FACING_STEP ; 0d - const OBJECT_NEXT_TILE ; 0e - const OBJECT_STANDING_TILE ; 0f - const OBJECT_NEXT_MAP_X ; 10 - const OBJECT_NEXT_MAP_Y ; 11 - const OBJECT_MAP_X ; 12 - const OBJECT_MAP_Y ; 13 - const OBJECT_INIT_X ; 14 - const OBJECT_INIT_Y ; 15 - const OBJECT_RADIUS ; 16 - const OBJECT_SPRITE_X ; 17 - const OBJECT_SPRITE_Y ; 18 - const OBJECT_SPRITE_X_OFFSET ; 19 - const OBJECT_SPRITE_Y_OFFSET ; 1a - const OBJECT_MOVEMENT_BYTE_INDEX ; 1b - const OBJECT_28 ; 1c - const OBJECT_29 ; 1d - const OBJECT_30 ; 1e - const OBJECT_31 ; 1f - const OBJECT_RANGE ; 20 -; 33-39 are not used - -; map object struct - const_def - const MAPOBJECT_OBJECT_STRUCT_ID ; 0 - const MAPOBJECT_SPRITE ; 1 - const MAPOBJECT_Y_COORD ; 2 - const MAPOBJECT_X_COORD ; 3 - const MAPOBJECT_MOVEMENT ; 4 - const MAPOBJECT_RADIUS ; 5 - const MAPOBJECT_HOUR ; 6 - const MAPOBJECT_TIMEOFDAY ; 7 - const MAPOBJECT_COLOR ; 8 - const MAPOBJECT_RANGE ; 9 - const MAPOBJECT_SCRIPT_POINTER ; a - const MAPOBJECT_POINTER_HI ; b - const MAPOBJECT_EVENT_FLAG ; c - const MAPOBJECT_FLAG_HI ; d - const MAPOBJECT_E ; unused - const MAPOBJECT_F ; unused -OBJECT_LENGTH EQU const_value - -MAPOBJECT_SCREEN_HEIGHT EQU 11 -MAPOBJECT_SCREEN_WIDTH EQU 12 - -OW_DOWN EQU DOWN << 2 -OW_UP EQU UP << 2 -OW_LEFT EQU LEFT << 2 -OW_RIGHT EQU RIGHT << 2 - - const_def - const EMOTE_SHOCK ; 0 - const EMOTE_QUESTION ; 1 - const EMOTE_HAPPY ; 2 - const EMOTE_SAD ; 3 - const EMOTE_HEART ; 4 - const EMOTE_BOLT ; 5 - const EMOTE_SLEEP ; 6 - const EMOTE_FISH ; 7 - const EMOTE_SHADOW ; 8 - const EMOTE_ROD ; 9 - const EMOTE_BOULDER_DUST ; 10 - const EMOTE_0B ; 11 -EMOTE_MEM EQU -1 - - const_def - const SIGNPOST_READ - const SIGNPOST_UP - const SIGNPOST_DOWN - const SIGNPOST_RIGHT - const SIGNPOST_LEFT - const SIGNPOST_IFSET - const SIGNPOST_IFNOTSET - const SIGNPOST_ITEM - const SIGNPOST_COPY - -; I'm relocating spawn constants here, so that they can be used anywhere in the disassembly. - - -const_value = -1 - const SPAWN_N_A - - const SPAWN_HOME - const SPAWN_DEBUG - - const SPAWN_PALLET - const SPAWN_VIRIDIAN - const SPAWN_PEWTER - const SPAWN_CERULEAN - const SPAWN_ROCK_TUNNEL - const SPAWN_VERMILION - const SPAWN_LAVENDER - const SPAWN_SAFFRON - const SPAWN_CELADON - const SPAWN_FUCHSIA - const SPAWN_CINNABAR - const SPAWN_INDIGO - - const SPAWN_NEW_BARK - const SPAWN_CHERRYGROVE - const SPAWN_VIOLET - const SPAWN_UNION_CAVE - const SPAWN_AZALEA - const SPAWN_CIANWOOD - const SPAWN_GOLDENROD - const SPAWN_OLIVINE - const SPAWN_ECRUTEAK - const SPAWN_MAHOGANY - const SPAWN_LAKE - const SPAWN_BLACKTHORN - const SPAWN_MT_SILVER - const SPAWN_FAST_SHIP -NUM_SPAWNS EQU const_value - - const_def - const PALETTE_AUTO - const PALETTE_DAY - const PALETTE_NITE - const PALETTE_MORN - const PALETTE_DARK - -INVISIBLE EQU 0 -FIXED_FACING EQU 2 -SLIDING EQU 3 -EMOTE_OBJECT EQU 7 - - const_def - const PERSONTYPE_SCRIPT - const PERSONTYPE_ITEMBALL - const PERSONTYPE_TRAINER - const PERSONTYPE_3 - const PERSONTYPE_4 - const PERSONTYPE_5 - const PERSONTYPE_6 - -; fruit trees -const_value SET 1 - const FRUITTREE_ROUTE_29 ; 01 - const FRUITTREE_ROUTE_30_1 ; 02 - const FRUITTREE_ROUTE_38 ; 03 - const FRUITTREE_ROUTE_46_1 ; 04 - const FRUITTREE_ROUTE_30_2 ; 05 - const FRUITTREE_ROUTE_33 ; 06 - const FRUITTREE_ROUTE_31 ; 07 - const FRUITTREE_ROUTE_43 ; 08 - const FRUITTREE_VIOLET_CITY ; 09 - const FRUITTREE_ROUTE_46_2 ; 0a - const FRUITTREE_ROUTE_35 ; 0b - const FRUITTREE_ROUTE_45 ; 0c - const FRUITTREE_ROUTE_36 ; 0d - const FRUITTREE_ROUTE_26 ; 0e - const FRUITTREE_ROUTE_39 ; 0f - const FRUITTREE_ROUTE_44 ; 10 - const FRUITTREE_ROUTE_37_1 ; 11 - const FRUITTREE_ROUTE_37_2 ; 12 - const FRUITTREE_ROUTE_37_3 ; 13 - const FRUITTREE_AZALEA_TOWN ; 14 - const FRUITTREE_ROUTE_42_1 ; 15 - const FRUITTREE_ROUTE_42_2 ; 16 - const FRUITTREE_ROUTE_42_3 ; 17 - const FRUITTREE_ROUTE_11 ; 18 - const FRUITTREE_ROUTE_2 ; 19 - const FRUITTREE_ROUTE_1 ; 1a - const FRUITTREE_ROUTE_8 ; 1b - const FRUITTREE_PEWTER_CITY_1 ; 1c - const FRUITTREE_PEWTER_CITY_2 ; 1d - const FRUITTREE_FUCHSIA_CITY ; 1e -NUM_FRUIT_TREES EQU const_value +- 1 - -CMDQUEUE_TYPE EQU 0 -CMDQUEUE_ADDR EQU 1 -CMDQUEUE_03 EQU 3 -CMDQUEUE_04 EQU 4 -CMDQUEUE_05 EQU 5 -CMDQUEUE_ENTRY_SIZE EQU 6 -CMDQUEUE_CAPACITY EQU 4 - -CMDQUEUE_STONETABLE EQU 2 + map_const ROUTE_30, 27, 10 ; 1 + map_const ROUTE_31, 9, 20 ; 2 + map_const CHERRYGROVE_CITY, 9, 20 ; 3 + map_const CHERRYGROVE_MART, 4, 6 ; 4 + map_const CHERRYGROVE_POKECENTER_1F, 4, 5 ; 5 + map_const CHERRYGROVE_GYM_SPEECH_HOUSE, 4, 4 ; 6 + map_const GUIDE_GENTS_HOUSE, 4, 4 ; 7 + map_const CHERRYGROVE_EVOLUTION_SPEECH_HOUSE, 4, 4 ; 8 + map_const ROUTE_30_BERRY_SPEECH_HOUSE, 4, 4 ; 9 + map_const MR_POKEMONS_HOUSE, 4, 4 ; 10 + map_const ROUTE_31_VIOLET_GATE, 4, 5 ; 11 diff --git a/constants/map_data_constants.asm b/constants/map_data_constants.asm new file mode 100644 index 00000000..5098e28d --- /dev/null +++ b/constants/map_data_constants.asm @@ -0,0 +1,104 @@ +GROUP_N_A EQU -1 +MAP_N_A EQU -1 +GROUP_NONE EQU 0 +MAP_NONE EQU 0 + +; map struct members (see data/maps/maps.asm) + const_def + const MAP_MAPATTRIBUTES_BANK ; 0 + const MAP_TILESET ; 1 + const MAP_ENVIRONMENT ; 2 + const MAP_MAPATTRIBUTES ; 3 + const MAP_MAPATTRIBUTES_HI ; 4 + const MAP_LOCATION ; 5 + const MAP_MUSIC ; 6 + const MAP_PALETTE ; 7 + const MAP_FISHGROUP ; 8 + +; map environments (wEnvironment) + const_def 1 + const TOWN + const ROUTE + const INDOOR + const CAVE + const ENVIRONMENT_5 + const GATE + const DUNGEON + +; map palettes (wEnvironment) + const_def + const PALETTE_AUTO + const PALETTE_DAY + const PALETTE_NITE + const PALETTE_MORN + const PALETTE_DARK + +; FishGroups indexes (see data/wild/fish.asm) + const_def + const FISHGROUP_NONE + const FISHGROUP_SHORE + const FISHGROUP_OCEAN + const FISHGROUP_LAKE + const FISHGROUP_POND + const FISHGROUP_DRATINI + const FISHGROUP_QWILFISH_SWARM + const FISHGROUP_REMORAID_SWARM + const FISHGROUP_GYARADOS + const FISHGROUP_DRATINI_2 + const FISHGROUP_WHIRL_ISLANDS + const FISHGROUP_QWILFISH + const FISHGROUP_REMORAID + const FISHGROUP_QWILFISH_NO_SWARM + +; connection directions (see data/maps/data.asm) + const_def + const EAST_F + const WEST_F + const SOUTH_F + const NORTH_F + +; wMapConnections + const_def + shift_const EAST + shift_const WEST + shift_const SOUTH + shift_const NORTH + +; SpawnPoints indexes (see data/maps/spawn_points.asm) +const_value = -1 + const SPAWN_N_A + const SPAWN_HOME + const SPAWN_DEBUG +; kanto + const SPAWN_PALLET + const SPAWN_VIRIDIAN + const SPAWN_PEWTER + const SPAWN_CERULEAN + const SPAWN_ROCK_TUNNEL + const SPAWN_VERMILION + const SPAWN_LAVENDER + const SPAWN_SAFFRON + const SPAWN_CELADON + const SPAWN_FUCHSIA + const SPAWN_CINNABAR + const SPAWN_INDIGO +; johto + const SPAWN_NEW_BARK + const SPAWN_CHERRYGROVE + const SPAWN_VIOLET + const SPAWN_UNION_CAVE + const SPAWN_AZALEA + const SPAWN_CIANWOOD + const SPAWN_GOLDENROD + const SPAWN_OLIVINE + const SPAWN_ECRUTEAK + const SPAWN_MAHOGANY + const SPAWN_LAKE_OF_RAGE + const SPAWN_BLACKTHORN + const SPAWN_MT_SILVER + const SPAWN_FAST_SHIP +NUM_SPAWNS EQU const_value + +; outdoor sprite limits (see engine/overworld/overworld.asm) +MAX_OUTDOOR_SPRITES EQU 23 +SPRITE_GFX_LIST_CAPACITY EQU $20 diff --git a/constants/map_object_constants.asm b/constants/map_object_constants.asm new file mode 100644 index 00000000..55a3f358 --- /dev/null +++ b/constants/map_object_constants.asm @@ -0,0 +1,294 @@ +; object_struct members (see macros/wram.asm) + const_def + const OBJECT_SPRITE ; 00 + const OBJECT_MAP_OBJECT_INDEX ; 01 + const OBJECT_SPRITE_TILE ; 02 + const OBJECT_MOVEMENTTYPE ; 03 + const OBJECT_FLAGS1 ; 04 + const OBJECT_FLAGS2 ; 05 + const OBJECT_PALETTE ; 06 + const OBJECT_DIRECTION_WALKING ; 07 + const OBJECT_FACING ; 08 + const OBJECT_STEP_TYPE ; 09 + const OBJECT_STEP_DURATION ; 0a + const OBJECT_ACTION ; 0b + const OBJECT_STEP_FRAME ; 0c + const OBJECT_FACING_STEP ; 0d + const OBJECT_NEXT_TILE ; 0e + const OBJECT_STANDING_TILE ; 0f + const OBJECT_NEXT_MAP_X ; 10 + const OBJECT_NEXT_MAP_Y ; 11 + const OBJECT_MAP_X ; 12 + const OBJECT_MAP_Y ; 13 + const OBJECT_INIT_X ; 14 + const OBJECT_INIT_Y ; 15 + const OBJECT_RADIUS ; 16 + const OBJECT_SPRITE_X ; 17 + const OBJECT_SPRITE_Y ; 18 + const OBJECT_SPRITE_X_OFFSET ; 19 + const OBJECT_SPRITE_Y_OFFSET ; 1a + const OBJECT_MOVEMENT_BYTE_INDEX ; 1b + const OBJECT_1C ; 1c + const OBJECT_1D ; 1d + const OBJECT_1E ; 1e + const OBJECT_1F ; 1f + const OBJECT_RANGE ; 20 + ; 21-27 are not used +OBJECT_STRUCT_LENGTH EQU 40 +NUM_OBJECT_STRUCTS EQU 13 ; see wObjectStructs + +; object_struct OBJECT_FACING values +OW_DOWN EQU DOWN << 2 +OW_UP EQU UP << 2 +OW_LEFT EQU LEFT << 2 +OW_RIGHT EQU RIGHT << 2 + +; object_struct OBJECT_FLAGS1 bit flags + const_def + const INVISIBLE_F ; 0 + const WONT_DELETE_F ; 1 + const FIXED_FACING_F ; 2 + const SLIDING_F ; 3 + const NOCLIP_TILES_F ; 4 + const MOVE_ANYWHERE_F ; 5 + const NOCLIP_OBJS_F ; 6 + const EMOTE_OBJECT_F ; 7 + +INVISIBLE EQU 1 << INVISIBLE_F +WONT_DELETE EQU 1 << WONT_DELETE_F +FIXED_FACING EQU 1 << FIXED_FACING_F +SLIDING EQU 1 << SLIDING_F +NOCLIP_TILES EQU 1 << NOCLIP_TILES_F +MOVE_ANYWHERE EQU 1 << MOVE_ANYWHERE_F +NOCLIP_OBJS EQU 1 << NOCLIP_OBJS_F +EMOTE_OBJECT EQU 1 << EMOTE_OBJECT_F + +; object_struct OBJECT_FLAGS2 bit flags + const_def + const LOW_PRIORITY_F ; 0 + const HIGH_PRIORITY_F ; 1 + const OBJ_FLAGS2_2 ; 2 + const OVERHEAD_F ; 3 + const USE_OBP1_F ; 4 + +LOW_PRIORITY EQU 1 << LOW_PRIORITY_F +HIGH_PRIORITY EQU 1 << HIGH_PRIORITY_F +OVERHEAD EQU 1 << OVERHEAD_F +USE_OBP1 EQU 1 << USE_OBP1_F + +; object_struct OBJECT_PALETTE bit flags + const_def 5 + const SWIMMING_F ; 5 + const STRENGTH_BOULDER_F ; 6 + const BIG_OBJECT_F ; 7 + +SWIMMING EQU 1 << SWIMMING_F +STRENGTH_BOULDER EQU 1 << STRENGTH_BOULDER_F +BIG_OBJECT EQU 1 << BIG_OBJECT_F + +; facing attribute bit flags +RELATIVE_ATTRIBUTES_F EQU 1 +ABSOLUTE_TILE_ID_F EQU 2 + +RELATIVE_ATTRIBUTES EQU 1 << RELATIVE_ATTRIBUTES_F +ABSOLUTE_TILE_ID EQU 1 << ABSOLUTE_TILE_ID_F + +; map_object struct members (see macros/wram.asm) + const_def + const MAPOBJECT_OBJECT_STRUCT_ID ; 0 + const MAPOBJECT_SPRITE ; 1 + const MAPOBJECT_Y_COORD ; 2 + const MAPOBJECT_X_COORD ; 3 + const MAPOBJECT_MOVEMENT ; 4 + const MAPOBJECT_RADIUS ; 5 + const MAPOBJECT_HOUR ; 6 + const MAPOBJECT_TIMEOFDAY ; 7 + const MAPOBJECT_COLOR ; 8 + const MAPOBJECT_RANGE ; 9 + const MAPOBJECT_SCRIPT_POINTER ; a + const MAPOBJECT_POINTER_HI ; b + const MAPOBJECT_EVENT_FLAG ; c + const MAPOBJECT_FLAG_HI ; d + const MAPOBJECT_E ; unused + const MAPOBJECT_F ; unused +OBJECT_LENGTH EQU const_value + +; SpriteMovementData struct members (see data/sprites/map_objects.asm) + const_def + const SPRITEMOVEATTR_MOVEMENT ; 0 + const SPRITEMOVEATTR_FACING ; 1 + const SPRITEMOVEATTR_ACTION ; 2 + const SPRITEMOVEATTR_FLAGS1 ; 3 + const SPRITEMOVEATTR_FLAGS2 ; 4 + const SPRITEMOVEATTR_PALFLAGS ; 5 +NUM_SPRITEMOVEDATA_FIELDS EQU const_value + +MAPOBJECT_SCREEN_WIDTH EQU (SCREEN_WIDTH / 2) + 2 +MAPOBJECT_SCREEN_HEIGHT EQU (SCREEN_HEIGHT / 2) + 2 + +; SpriteMovementData indexes (see data/sprites/map_objects.asm) + const_def + const SPRITEMOVEDATA_00 ; 00 + const SPRITEMOVEDATA_STILL ; 01 + const SPRITEMOVEDATA_WANDER ; 02 + const SPRITEMOVEDATA_SPINRANDOM_SLOW ; 03 + const SPRITEMOVEDATA_WALK_UP_DOWN ; 04 + const SPRITEMOVEDATA_WALK_LEFT_RIGHT ; 05 + const SPRITEMOVEDATA_STANDING_DOWN ; 06 + const SPRITEMOVEDATA_STANDING_UP ; 07 + const SPRITEMOVEDATA_STANDING_LEFT ; 08 + const SPRITEMOVEDATA_STANDING_RIGHT ; 09 + const SPRITEMOVEDATA_SPINRANDOM_FAST ; 0a + const SPRITEMOVEDATA_PLAYER ; 0b + const SPRITEMOVEDATA_0C ; 0c + const SPRITEMOVEDATA_0D ; 0d + const SPRITEMOVEDATA_0E ; 0e + const SPRITEMOVEDATA_0F ; 0f + const SPRITEMOVEDATA_10 ; 10 + const SPRITEMOVEDATA_11 ; 11 + const SPRITEMOVEDATA_12 ; 12 + const SPRITEMOVEDATA_FOLLOWING ; 13 + const SPRITEMOVEDATA_SCRIPTED ; 14 + const SPRITEMOVEDATA_BIGDOLLSYM ; 15 + const SPRITEMOVEDATA_POKEMON ; 16 + const SPRITEMOVEDATA_SUDOWOODO ; 17 + const SPRITEMOVEDATA_SMASHABLE_ROCK ; 18 + const SPRITEMOVEDATA_STRENGTH_BOULDER ; 19 + const SPRITEMOVEDATA_FOLLOWNOTEXACT ; 1a + const SPRITEMOVEDATA_SHADOW ; 1b + const SPRITEMOVEDATA_EMOTE ; 1c + const SPRITEMOVEDATA_SCREENSHAKE ; 1d + const SPRITEMOVEDATA_SPINCOUNTERCLOCKWISE ; 1e + const SPRITEMOVEDATA_SPINCLOCKWISE ; 1f + const SPRITEMOVEDATA_BIGDOLLASYM ; 20 + const SPRITEMOVEDATA_BIGDOLL ; 21 + const SPRITEMOVEDATA_BOULDERDUST ; 22 + const SPRITEMOVEDATA_GRASS ; 23 + const SPRITEMOVEDATA_SWIM_WANDER ; 24 +NUM_SPRITEMOVEDATA EQU const_value + +; MapObjectMovementPattern.Pointers indexes (see engine/overworld/map_objects.asm) + const_def + const SPRITEMOVEFN_00 ; 00 + const SPRITEMOVEFN_RANDOM_WALK_Y ; 01 + const SPRITEMOVEFN_RANDOM_WALK_X ; 02 + const SPRITEMOVEFN_RANDOM_WALK_XY ; 03 + const SPRITEMOVEFN_SLOW_RANDOM_SPIN ; 04 + const SPRITEMOVEFN_FAST_RANDOM_SPIN ; 05 + const SPRITEMOVEFN_STANDING ; 06 + const SPRITEMOVEFN_OBEY_DPAD ; 07 + const SPRITEMOVEFN_08 ; 08 + const SPRITEMOVEFN_09 ; 09 + const SPRITEMOVEFN_0A ; 0a + const SPRITEMOVEFN_0B ; 0b + const SPRITEMOVEFN_0C ; 0c + const SPRITEMOVEFN_0D ; 0d + const SPRITEMOVEFN_0E ; 0e + const SPRITEMOVEFN_FOLLOW ; 0f + const SPRITEMOVEFN_SCRIPTED ; 10 + const SPRITEMOVEFN_STRENGTH ; 11 + const SPRITEMOVEFN_FOLLOWNOTEXACT ; 12 + const SPRITEMOVEFN_SHADOW ; 13 + const SPRITEMOVEFN_EMOTE ; 14 + const SPRITEMOVEFN_BIG_SNORLAX ; 15 + const SPRITEMOVEFN_BOUNCE ; 16 + const SPRITEMOVEFN_SCREENSHAKE ; 17 + const SPRITEMOVEFN_SPIN_CLOCKWISE ; 18 + const SPRITEMOVEFN_SPIN_COUNTERCLOCKWISE ; 19 + const SPRITEMOVEFN_BOULDERDUST ; 1a + const SPRITEMOVEFN_GRASS ; 1b + +; StepTypesJumptable indexes (see engine/overworld/map_objects.asm) + const_def + const STEP_TYPE_00 ; 00 + const STEP_TYPE_SLEEP ; 01 + const STEP_TYPE_NPC_WALK ; 02 + const STEP_TYPE_03 ; 03 + const STEP_TYPE_04 ; 04 + const STEP_TYPE_05 ; 05 + const STEP_TYPE_PLAYER_WALK ; 06 + const STEP_TYPE_07 ; 07 + const STEP_TYPE_NPC_JUMP ; 08 + const STEP_TYPE_PLAYER_JUMP ; 09 + const STEP_TYPE_HALF_STEP ; 0a + const STEP_TYPE_BUMP ; 0b + const STEP_TYPE_TELEPORT_FROM ; 0c + const STEP_TYPE_TELEPORT_TO ; 0d + const STEP_TYPE_SKYFALL ; 0e + const STEP_TYPE_0F ; 0f + const STEP_TYPE_GOT_BITE ; 10 + const STEP_TYPE_ROCK_SMASH ; 11 + const STEP_TYPE_RETURN_DIG ; 12 + const STEP_TYPE_TRACKING_OBJECT ; 13 + const STEP_TYPE_14 ; 14 + const STEP_TYPE_15 ; 15 + const STEP_TYPE_16 ; 16 + const STEP_TYPE_17 ; 17 + const STEP_TYPE_18 ; 18 + const STEP_TYPE_SKYFALL_TOP ; 19 + +; ObjectActionPairPointers indexes (see engine/overworld/map_object_action.asm) + const_def + const OBJECT_ACTION_00 ; 00 + const OBJECT_ACTION_STAND ; 01 + const OBJECT_ACTION_STEP ; 02 + const OBJECT_ACTION_BUMP ; 03 + const OBJECT_ACTION_SPIN ; 04 + const OBJECT_ACTION_SPIN_FLICKER ; 05 + const OBJECT_ACTION_FISHING ; 06 + const OBJECT_ACTION_SHADOW ; 07 + const OBJECT_ACTION_EMOTE ; 08 + const OBJECT_ACTION_BIG_DOLL_SYM ; 09 + const OBJECT_ACTION_BOUNCE ; 0a + const OBJECT_ACTION_WEIRD_TREE ; 0b + const OBJECT_ACTION_BIG_DOLL_ASYM ; 0c + const OBJECT_ACTION_BIG_DOLL ; 0d + const OBJECT_ACTION_BOULDER_DUST ; 0e + const OBJECT_ACTION_GRASS_SHAKE ; 0f + const OBJECT_ACTION_SKYFALL ; 10 + +; Facings indexes (see data/sprites/facings.asm) + const_def + const FACING_STEP_DOWN_0 ; 00 + const FACING_STEP_DOWN_1 ; 01 + const FACING_STEP_DOWN_2 ; 02 + const FACING_STEP_DOWN_3 ; 03 + const FACING_STEP_UP_0 ; 04 + const FACING_STEP_UP_1 ; 05 + const FACING_STEP_UP_2 ; 06 + const FACING_STEP_UP_3 ; 07 + const FACING_STEP_LEFT_0 ; 08 + const FACING_STEP_LEFT_1 ; 09 + const FACING_STEP_LEFT_2 ; 0a + const FACING_STEP_LEFT_3 ; 0b + const FACING_STEP_RIGHT_0 ; 0c + const FACING_STEP_RIGHT_1 ; 0d + const FACING_STEP_RIGHT_2 ; 0e + const FACING_STEP_RIGHT_3 ; 0f + const FACING_FISH_DOWN ; 10 + const FACING_FISH_UP ; 11 + const FACING_FISH_LEFT ; 12 + const FACING_FISH_RIGHT ; 13 + const FACING_EMOTE ; 14 + const FACING_SHADOW ; 15 + const FACING_BIG_DOLL_ASYM ; 16 + const FACING_BIG_DOLL_SYM ; 17 + const FACING_WEIRD_TREE_0 ; 18 + const FACING_WEIRD_TREE_1 ; 19 + const FACING_WEIRD_TREE_2 ; 1a + const FACING_WEIRD_TREE_3 ; 1b + const FACING_BOULDER_DUST_1 ; 1c + const FACING_BOULDER_DUST_2 ; 1d + const FACING_GRASS_1 ; 1e + const FACING_GRASS_2 ; 1f + +; DoPlayerMovement.DoStep arguments (see engine/overworld/player_movement.asm) + const_def + const STEP_SLOW ; 0 + const STEP_WALK ; 1 + const STEP_BIKE ; 2 + const STEP_LEDGE ; 3 + const STEP_ICE ; 4 + const STEP_TURN ; 5 + const STEP_BACK_LEDGE ; 6 + const STEP_WALK_IN_PLACE ; 7 diff --git a/constants/misc_constants.asm b/constants/misc_constants.asm index 807c9b93..03911c50 100644 --- a/constants/misc_constants.asm +++ b/constants/misc_constants.asm @@ -1,280 +1,48 @@ -PARTY_LENGTH EQU 6 - -MAX_ITEMS EQU 20 -MAX_BALLS EQU 12 -MAX_KEY_ITEMS EQU 25 -MAX_PC_ITEMS EQU 50 - -; strings -PLAYER_NAME_LENGTH EQU 8 -BOX_NAME_LENGTH EQU 9 -PKMN_NAME_LENGTH EQU 11 -MOVE_NAME_LENGTH EQU 13 -ITEM_NAME_LENGTH EQU 13 -TRAINER_CLASS_NAME_LENGTH EQU 13 -NAME_LENGTH EQU 11 -LV_CHAR EQU $6e - -; GetName types -PKMN_NAME EQU 1 -MOVE_NAME EQU 2 -; dummied out EQU 3 -ITEM_NAME EQU 4 -PARTY_OT_NAME EQU 5 -ENEMY_OT_NAME EQU 6 -TRAINER_NAME EQU 7 -; broken ptr EQU 8 - -; hp -HP_GREEN EQU 0 -HP_YELLOW EQU 1 -HP_RED EQU 2 - -; boxes -MONS_PER_BOX EQU 20 -NUM_BOXES EQU 14 - -; mail -MAIL_STRUCT_LENGTH EQU $2f -MAILBOX_CAPACITY EQU 10 -MAIL_MSG_LENGTH EQU $20 - -; hall of fame -HOF_MON_LENGTH = 1 + 2 + 2 + 1 + (PKMN_NAME_LENGTH +- 1) ; species, id, dvs, level, nick -HOF_LENGTH = 1 + HOF_MON_LENGTH * PARTY_LENGTH + 1 ; win count, party, terminator -NUM_HOF_TEAMS = 30 - - -; flag manipulation -RESET_FLAG EQU 0 -SET_FLAG EQU 1 -CHECK_FLAG EQU 2 - ; Boolean checks FALSE EQU 0 TRUE EQU 1 -; joypad - - const_def - const A_BUTTON_F - const B_BUTTON_F - const SELECT_F - const START_F - const D_RIGHT_F - const D_LEFT_F - const D_UP_F - const D_DOWN_F - -NO_INPUT EQU %00000000 -A_BUTTON EQU 1 << A_BUTTON_F -B_BUTTON EQU 1 << B_BUTTON_F -SELECT EQU 1 << SELECT_F -START EQU 1 << START_F -D_RIGHT EQU 1 << D_RIGHT_F -D_LEFT EQU 1 << D_LEFT_F -D_UP EQU 1 << D_UP_F -D_DOWN EQU 1 << D_DOWN_F - -BUTTONS EQU A_BUTTON | B_BUTTON | SELECT | START -D_PAD EQU D_RIGHT | D_LEFT | D_UP | D_DOWN - -R_DPAD EQU %00100000 -R_BUTTONS EQU %00010000 - -; screen -HP_BAR_LENGTH EQU 6 -HP_BAR_LENGTH_PX EQU HP_BAR_LENGTH * 8 -EXP_BAR_LENGTH EQU 8 -EXP_BAR_LENGTH_PX EQU EXP_BAR_LENGTH * 8 - -SCREEN_WIDTH EQU 20 -SCREEN_HEIGHT EQU 18 -SCREEN_WIDTH_PX EQU SCREEN_WIDTH * 8 -SCREEN_HEIGHT_PX EQU SCREEN_HEIGHT * 8 - -BG_MAP_WIDTH EQU 32 -BG_MAP_HEIGHT EQU 32 -WMISC_WIDTH EQU 6 * 4 -WMISC_HEIGHT EQU 5 * 4 - -TILE_WIDTH EQU 8 - - -; movement -STEP_SLOW EQU 0 -STEP_WALK EQU 1 -STEP_BIKE EQU 2 -STEP_LEDGE EQU 3 -STEP_ICE EQU 4 -STEP_TURN EQU 5 -STEP_BACK_LEDGE EQU 6 -STEP_WALK_IN_PLACE EQU 7 - - -; ai -CONTEXT_USE_F EQU 6 -UNKNOWN_USE_F EQU 5 -ALWAYS_USE_F EQU 4 -SWITCH_SOMETIMES_F EQU 2 -SWITCH_RARELY_F EQU 1 -SWITCH_OFTEN_F EQU 0 - -CONTEXT_USE EQU 1 << CONTEXT_USE_F -UNKNOWN_USE EQU 1 << UNKNOWN_USE_F -ALWAYS_USE EQU 1 << ALWAYS_USE_F -SWITCH_SOMETIMES EQU 1 << SWITCH_SOMETIMES_F -SWITCH_RARELY EQU 1 << SWITCH_RARELY_F -SWITCH_OFTEN EQU 1 << SWITCH_OFTEN_F -SPRITE_GFX_LIST_CAPACITY EQU $20 - -const_value = 1 - const MOM_ITEM - const MOM_DOLL - -BATTLETOWER_NROFPKMNS EQU 3 -BATTLETOWER_TRAINERDATALENGTH EQU $24 -BATTLETOWER_NROFTRAINERS EQU 7 -BATTLETOWER_NRMONSPERLEVELBRACKET EQU BATTLETOWER_NROFPKMNS * BATTLETOWER_NROFTRAINERS -BATTLE_TOWER_STRUCT_LENGTH EQU $e0 ; NAME_LENGTH + 3 * (PARTYMON_STRUCT_LENGTH + PKMN_NAME_LENGTH) + BATTLETOWER_TRAINERDATALENGTH - -NUM_WILDMONS_PER_AREA_TIME_OF_DAY EQU 7 -WILDMON_GRASS_STRUCTURE_LENGTH EQU 2 + 3 * (1 + 2 * NUM_WILDMONS_PER_AREA_TIME_OF_DAY) - -MOBILE_EVENT_OBJECT_GS_BALL EQU $b - -MALE EQU 0 +; genders +MALE EQU 0 FEMALE EQU 1 -PRINTNUM_MONEY_F EQU 5 -PRINTNUM_RIGHTALIGN_F EQU 6 -PRINTNUM_LEADINGZEROS_F EQU 7 - -PRINTNUM_MONEY EQU 1 << PRINTNUM_MONEY_F -PRINTNUM_RIGHTALIGN EQU 1 << PRINTNUM_RIGHTALIGN_F -PRINTNUM_LEADINGZEROS EQU 1 << PRINTNUM_LEADINGZEROS_F - -const_value = 1 - const HAPPINESS_GAINLEVEL ; 01 - const HAPPINESS_USEDITEM ; 02 - const HAPPINESS_USEDXITEM ; 03 - const HAPPINESS_GYMBATTLE ; 04 - const HAPPINESS_LEARNMOVE ; 05 - const HAPPINESS_FAINTED ; 06 - const HAPPINESS_POISONFAINT ; 07 - const HAPPINESS_BEATENBYSTRONGFOE ; 08 - const HAPPINESS_YOUNGCUT1 ; 09 - const HAPPINESS_YOUNGCUT2 ; 0a - const HAPPINESS_YOUNGCUT3 ; 0b - const HAPPINESS_OLDERCUT1 ; 0c - const HAPPINESS_OLDERCUT2 ; 0d - const HAPPINESS_OLDERCUT3 ; 0e - const HAPPINESS_BITTERPOWDER ; 0f - const HAPPINESS_ENERGYROOT ; 10 - const HAPPINESS_REVIVALHERB ; 11 - const HAPPINESS_MASSAGE ; 12 - const HAPPINESS_GAINLEVELATHOME ; 13 - - - const_def - const LINK_NULL - const LINK_TIMECAPSULE - const LINK_TRADECENTER - const LINK_COLOSSEUM - const LINK_MOBILE - -SERIAL_TIMECAPSULE EQU $60 -SERIAL_TRADECENTER EQU $70 -SERIAL_BATTLE EQU $80 - -HMENURETURN_SCRIPT EQU %10000000 -HMENURETURN_ASM EQU %11111111 - -NUM_MON_SUBMENU_ITEMS EQU 8 - - const_def - const ZEPHYRBADGE - const HIVEBADGE - const PLAINBADGE - const FOGBADGE - const MINERALBADGE - const STORMBADGE - const GLACIERBADGE - const RISINGBADGE -NUM_JOHTO_BADGES EQU const_value - const_def - const BOULDERBADGE - const CASCADEBADGE - const THUNDERBADGE - const RAINBOWBADGE - const SOULBADGE - const MARSHBADGE - const VOLCANOBADGE - const EARTHBADGE -NUM_KANTO_BADGES EQU const_value -NUM_BADGES EQU NUM_JOHTO_BADGES + NUM_KANTO_BADGES -NUM_KANA EQU $2d - - const_def - const EZCHAT_POKEMON - const EZCHAT_TYPES - const EZCHAT_GREETINGS - const EZCHAT_PEOPLE - const EZCHAT_BATTLE - const EZCHAT_EXCLAMATIONS - const EZCHAT_CONVERSATION - const EZCHAT_FEELINGS - const EZCHAT_CONDITIONS - const EZCHAT_LIFE - const EZCHAT_HOBBIES - const EZCHAT_ACTIONS - const EZCHAT_TIME - const EZCHAT_FAREWELLS - const EZCHAT_THISANDTHAT - -SWARM_DUNSPARCE EQU 0 -SWARM_YANMA EQU 1 - -FISHSWARM_QWILFISH EQU 1 -FISHSWARM_REMORAID EQU 2 - - const_def - const FISHGROUP_NONE - const FISHGROUP_SHORE - const FISHGROUP_OCEAN - const FISHGROUP_LAKE - const FISHGROUP_POND - const FISHGROUP_DRATINI - const FISHGROUP_QWILFISH_SWARM - const FISHGROUP_REMORAID_SWARM - const FISHGROUP_GYARADOS - const FISHGROUP_DRATINI_2 - const FISHGROUP_WHIRL_ISLANDS - const FISHGROUP_QWILFISH - const FISHGROUP_REMORAID - const FISHGROUP_QWILFISH_NO_SWARM - -INIT_ENEMYOT_LIST EQU 1 -INIT_BAG_ITEM_LIST EQU 2 -INIT_OTHER_ITEM_LIST EQU 3 -INIT_PLAYEROT_LIST EQU 4 -INIT_MON_LIST EQU 5 +; FlagAction arguments (see home/flag.asm) +RESET_FLAG EQU 0 +SET_FLAG EQU 1 +CHECK_FLAG EQU 2 +; G/S version ID: 0 = Gold, 1 = Silver (used by checkver) +GS_VERSION EQU 0 -; serial +; save file corruption check values +SAVE_CHECK_VALUE_1 EQU 99 +SAVE_CHECK_VALUE_2 EQU 127 -ESTABLISH_CONNECTION_WITH_INTERNAL_CLOCK EQU $01 -ESTABLISH_CONNECTION_WITH_EXTERNAL_CLOCK EQU $02 +; time of day boundaries +MORN_HOUR EQU 4 ; 4 AM +DAY_HOUR EQU 10 ; 10 AM +NITE_HOUR EQU 18 ; 6 PM +NOON_HOUR EQU 12 ; 12 PM +MAX_HOUR EQU 24 ; 12 AM -USING_EXTERNAL_CLOCK EQU $01 -USING_INTERNAL_CLOCK EQU $02 -CONNECTION_NOT_ESTABLISHED EQU $ff +; significant money values +START_MONEY EQU 3000 +MOM_MONEY EQU 2300 +MAX_MONEY EQU 999999 +MAX_COINS EQU 9999 -; signals the start of an array of bytes transferred over the link cable -SERIAL_PREAMBLE_BYTE EQU $FD +; link record +MAX_LINK_RECORD EQU 9999 -; this byte is used when there is no data to send -SERIAL_NO_DATA_BYTE EQU $FE +; day-care +MAX_DAY_CARE_EXP EQU $500000 -; signals the end of one part of a patch list (there are two parts) for player/enemy party data -SERIAL_PATCH_LIST_PART_TERMINATOR EQU $FF +; hall of fame +HOF_MASTER_COUNT EQU 200 + +; bug-catching contest +BUG_CONTEST_MINUTES EQU 20 +BUG_CONTEST_SECONDS EQU 0 +BUG_CONTEST_PLAYER EQU 1 +NUM_BUG_CONTESTANTS EQU 10 ; not counting the player +BUG_CONTESTANT_SIZE EQU 4 diff --git a/constants/pokemon_data_constants.asm b/constants/pokemon_data_constants.asm index 9a34e2ae..dc4d8f40 100644 --- a/constants/pokemon_data_constants.asm +++ b/constants/pokemon_data_constants.asm @@ -1,3 +1,39 @@ +; base data struct members (see data/pokemon/base_stats/*.asm) +BASE_DEX_NO EQUS "(wBaseDexNo - wCurBaseData)" +BASE_STATS EQUS "(wBaseStats - wCurBaseData)" +BASE_HP EQUS "(wBaseHP - wCurBaseData)" +BASE_ATK EQUS "(wBaseAttack - wCurBaseData)" +BASE_SPD EQUS "(wBaseSpeed - wCurBaseData)" +BASE_SAT EQUS "(wBaseSpecialAttack - wCurBaseData)" +BASE_SDF EQUS "(wBaseSpecialDefense - wCurBaseData)" +BASE_TYPES EQUS "(wBaseType - wCurBaseData)" +BASE_TYPE_1 EQUS "(wBaseType1 - wCurBaseData)" +BASE_TYPE_2 EQUS "(wBaseType2 - wCurBaseData)" +BASE_CATCH_RATE EQUS "(wBaseCatchRate - wCurBaseData)" +BASE_EXP EQUS "(wBaseExp - wCurBaseData)" +BASE_ITEMS EQUS "(wBaseItems - wCurBaseData)" +BASE_ITEM_1 EQUS "(wBaseItem1 - wCurBaseData)" +BASE_ITEM_2 EQUS "(wBaseItem2 - wCurBaseData)" +BASE_GENDER EQUS "(wBaseGender - wCurBaseData)" +BASE_UNKNOWN_1 EQUS "(wBaseUnknown1 - wCurBaseData)" +BASE_EGG_STEPS EQUS "(wBaseEggSteps - wCurBaseData)" +BASE_UNKNOWN_2 EQUS "(wBaseUnknown2 - wCurBaseData)" +BASE_PIC_SIZE EQUS "(wBasePicSize - wCurBaseData)" +BASE_PADDING EQUS "(wBasePadding - wCurBaseData)" +BASE_GROWTH_RATE EQUS "(wBaseGrowthRate - wCurBaseData)" +BASE_EGG_GROUPS EQUS "(wBaseEggGroups - wCurBaseData)" +BASE_TMHM EQUS "(wBaseTMHM - wCurBaseData)" +BASE_DATA_SIZE EQUS "(wCurBaseDataEnd - wCurBaseData)" + +; gender ratio constants +GENDER_F0 EQU 0 percent +GENDER_F12_5 EQU 12 percent + 1 +GENDER_F25 EQU 25 percent +GENDER_F50 EQU 50 percent +GENDER_F75 EQU 75 percent +GENDER_F100 EQU 100 percent - 1 +GENDER_UNKNOWN EQU -1 + ; growth rate const_def const MEDIUM_FAST @@ -67,6 +103,17 @@ const_value SET 1 const ICON_SUDOWOODO const ICON_BIGMON +; maximum number of party pokemon +PARTY_LENGTH EQU 6 + +; boxes +MONS_PER_BOX EQU 20 +NUM_BOXES EQU 14 + +; hall of fame +HOF_MON_LENGTH = 1 + 2 + 2 + 1 + (MON_NAME_LENGTH + -1) ; species, id, dvs, level, nick +HOF_LENGTH = 1 + HOF_MON_LENGTH * PARTY_LENGTH + 1 ; win count, party, terminator +NUM_HOF_TEAMS = 30 ; evolution types const_value SET 1 @@ -77,11 +124,7 @@ const_value SET 1 const EVOLVE_STAT -BASE_HAPPINESS EQU 70 -FRIEND_BALL_HAPPINESS EQU 200 - ; happiness evolution triggers -HAPPINESS_TO_EVOLVE EQU 220 const_value SET 1 const TR_ANYTIME const TR_MORNDAY @@ -99,3 +142,37 @@ NUM_WATERMON EQU 3 GRASS_WILDDATA_LENGTH EQU (NUM_GRASSMON * 2 + 1) * 3 + 2 WATER_WILDDATA_LENGTH EQU (NUM_WATERMON * 2 + 1) * 1 + 2 + +; ChangeHappiness arguments (see data/happiness_changes.asm) +const_value = 1 + const HAPPINESS_GAINLEVEL ; 01 + const HAPPINESS_USEDITEM ; 02 + const HAPPINESS_USEDXITEM ; 03 + const HAPPINESS_GYMBATTLE ; 04 + const HAPPINESS_LEARNMOVE ; 05 + const HAPPINESS_FAINTED ; 06 + const HAPPINESS_POISONFAINT ; 07 + const HAPPINESS_BEATENBYSTRONGFOE ; 08 + const HAPPINESS_YOUNGCUT1 ; 09 + const HAPPINESS_YOUNGCUT2 ; 0a + const HAPPINESS_YOUNGCUT3 ; 0b + const HAPPINESS_OLDERCUT1 ; 0c + const HAPPINESS_OLDERCUT2 ; 0d + const HAPPINESS_OLDERCUT3 ; 0e + const HAPPINESS_BITTERPOWDER ; 0f + const HAPPINESS_ENERGYROOT ; 10 + const HAPPINESS_REVIVALHERB ; 11 + const HAPPINESS_GROOMING ; 12 + const HAPPINESS_GAINLEVELATHOME ; 13 + +; significant happiness values +BASE_HAPPINESS EQU 70 +FRIEND_BALL_HAPPINESS EQU 200 +HAPPINESS_TO_EVOLVE EQU 220 +HAPPINESS_THRESHOLD_1 EQU 100 +HAPPINESS_THRESHOLD_2 EQU 200 + +; PP +PP_UP_MASK EQU %11000000 +PP_UP_ONE EQU %01000000 +PP_MASK EQU %00111111 diff --git a/constants/script_constants.asm b/constants/script_constants.asm index 5c7b1ab7..7870fc84 100644 --- a/constants/script_constants.asm +++ b/constants/script_constants.asm @@ -2,6 +2,40 @@ PLAYER EQU 0 LAST_TALKED EQU -2 +; memory constants + const_def + const MEM_BUFFER_0 ; use wStringBuffer3 + const MEM_BUFFER_1 ; use wStringBuffer4 + const MEM_BUFFER_2 ; use wStringBuffer5 +NUM_MEM_BUFFERS EQU const_value + +; checkmoney/takemoney accounts + const_def + const YOUR_MONEY ; 0 + const MOMS_MONEY ; 1 + +; checkmoney/checkcoins return values + const_def + const HAVE_MORE ; 0 + const HAVE_AMOUNT ; 1 + const HAVE_LESS ; 2 + +; checkpokemail return values + const_def + const POKEMAIL_WRONG_MAIL ; 0 + const POKEMAIL_CORRECT ; 1 + const POKEMAIL_REFUSED ; 2 + const POKEMAIL_NO_MAIL ; 3 + const POKEMAIL_LAST_MON ; 4 + +; askforphonenumber return values + const_def + const PHONE_CONTACT_GOT ; 0 + const PHONE_CONTACTS_FULL ; 1 + const PHONE_CONTACT_REFUSED ; 2 + +; writecode/checkcode arguments +; _GetVarAction.VarActionTable indexes (see engine/overworld/variables.asm) const_def const VAR_STRINGBUFFER2 ; 00 const VAR_PARTYCOUNT ; 01 @@ -26,10 +60,12 @@ LAST_TALKED EQU -2 const VAR_SPECIALPHONECALL ; 14 NUM_VARS EQU const_value ; 15 +; variable action types RETVAR_STRBUF2 EQU (0 << 6) RETVAR_ADDR_DE EQU (1 << 6) RETVAR_EXECUTE EQU (2 << 6) +; PlayerEventScriptPointers indexes (see engine/overworld/events.asm) const_value SET -1 const PLAYEREVENT_MAPSCRIPT const PLAYEREVENT_NONE @@ -43,3 +79,195 @@ const_value SET -1 const PLAYEREVENT_HATCH const PLAYEREVENT_JOYCHANGEFACING NUM_PLAYER_EVENTS EQU const_value + +; bg_event types +; TryBGEvent arguments (see engine/overworld/events.asm) + const_def + const BGEVENT_READ + const BGEVENT_UP + const BGEVENT_DOWN + const BGEVENT_RIGHT + const BGEVENT_LEFT + const BGEVENT_IFSET + const BGEVENT_IFNOTSET + const BGEVENT_ITEM + const BGEVENT_COPY + +; object_event types +; TryObjectEvent arguments (see engine/overworld/events.asm) + const_def + const OBJECTTYPE_SCRIPT + const OBJECTTYPE_ITEMBALL + const OBJECTTYPE_TRAINER + const OBJECTTYPE_3 + const OBJECTTYPE_4 + const OBJECTTYPE_5 + const OBJECTTYPE_6 + +; command queue members +CMDQUEUE_TYPE EQU 0 +CMDQUEUE_ADDR EQU 1 +CMDQUEUE_03 EQU 3 +CMDQUEUE_04 EQU 4 +CMDQUEUE_05 EQU 5 +CMDQUEUE_ENTRY_SIZE EQU 6 +CMDQUEUE_CAPACITY EQU 4 + +; HandleQueuedCommand.Jumptable indexes (see engine/overworld/events.asm) + const_def + const CMDQUEUE_NULL + const CMDQUEUE_NULL2 + const CMDQUEUE_STONETABLE + const CMDQUEUE_TYPE3 + const CMDQUEUE_TYPE4 +NUM_CMDQUEUE_TYPES EQU const_value + +; elevfloor macro values +; ElevatorFloorNames indexes (see data/events/elevator_floors.asm) + const_def + const FLOOR_B4F + const FLOOR_B3F + const FLOOR_B2F + const FLOOR_B1F + const FLOOR_1F + const FLOOR_2F + const FLOOR_3F + const FLOOR_4F + const FLOOR_5F + const FLOOR_6F + const FLOOR_7F + const FLOOR_8F + const FLOOR_9F + const FLOOR_10F + const FLOOR_11F + const FLOOR_ROOF + +; showemote arguments +; Emotes indexes (see data/sprites/emotes.asm) + const_def + const EMOTE_SHOCK ; 0 + const EMOTE_QUESTION ; 1 + const EMOTE_HAPPY ; 2 + const EMOTE_SAD ; 3 + const EMOTE_HEART ; 4 + const EMOTE_BOLT ; 5 + const EMOTE_SLEEP ; 6 + const EMOTE_FISH ; 7 + const EMOTE_SHADOW ; 8 + const EMOTE_ROD ; 9 + const EMOTE_BOULDER_DUST ; 10 + const EMOTE_GRASS_RUSTLE ; 11 +EMOTE_MEM EQU -1 + +; fruittree arguments +; FruitTreeItems indexes (see data/items/fruit_trees.asm) + const_def 1 + const FRUITTREE_ROUTE_29 ; 01 + const FRUITTREE_ROUTE_30_1 ; 02 + const FRUITTREE_ROUTE_38 ; 03 + const FRUITTREE_ROUTE_46_1 ; 04 + const FRUITTREE_ROUTE_30_2 ; 05 + const FRUITTREE_ROUTE_33 ; 06 + const FRUITTREE_ROUTE_31 ; 07 + const FRUITTREE_ROUTE_43 ; 08 + const FRUITTREE_VIOLET_CITY ; 09 + const FRUITTREE_ROUTE_46_2 ; 0a + const FRUITTREE_ROUTE_35 ; 0b + const FRUITTREE_ROUTE_45 ; 0c + const FRUITTREE_ROUTE_36 ; 0d + const FRUITTREE_ROUTE_26 ; 0e + const FRUITTREE_ROUTE_39 ; 0f + const FRUITTREE_ROUTE_44 ; 10 + const FRUITTREE_ROUTE_37_1 ; 11 + const FRUITTREE_ROUTE_37_2 ; 12 + const FRUITTREE_ROUTE_37_3 ; 13 + const FRUITTREE_AZALEA_TOWN ; 14 + const FRUITTREE_ROUTE_42_1 ; 15 + const FRUITTREE_ROUTE_42_2 ; 16 + const FRUITTREE_ROUTE_42_3 ; 17 + const FRUITTREE_ROUTE_11 ; 18 + const FRUITTREE_ROUTE_2 ; 19 + const FRUITTREE_ROUTE_1 ; 1a + const FRUITTREE_ROUTE_8 ; 1b + const FRUITTREE_PEWTER_CITY_1 ; 1c + const FRUITTREE_PEWTER_CITY_2 ; 1d + const FRUITTREE_FUCHSIA_CITY ; 1e +NUM_FRUIT_TREES EQU const_value + -1 + +; describedecoration arguments +; DescribeDecoration.JumpTable indexes (see engine/overworld/decorations.asm) + const_def + const DECODESC_POSTER ; 0 + const DECODESC_LEFT_DOLL ; 1 + const DECODESC_RIGHT_DOLL ; 2 + const DECODESC_BIG_DOLL ; 3 + const DECODESC_CONSOLE ; 4 + +; swarm arguments +; StoreSwarmMapIndices arguments + const_def + const SWARM_DUNSPARCE ; 0 + const SWARM_YANMA ; 1 + +; ActivateFishingSwarm writebyte arguments + const_def + const FISHSWARM_NONE ; 0 + const FISHSWARM_QWILFISH ; 1 + const FISHSWARM_REMORAID ; 2 + +; SpecialGameboyCheck return values + const_def + const GBCHECK_GB ; 0 + const GBCHECK_SGB ; 1 + const GBCHECK_CGB ; 2 + +; CheckMagikarpLength return values + const_def + const MAGIKARPLENGTH_NOT_MAGIKARP ; 0 + const MAGIKARPLENGTH_REFUSED ; 1 + const MAGIKARPLENGTH_TOO_SHORT ; 2 + const MAGIKARPLENGTH_BEAT_RECORD ; 3 + +; SpecialReturnShuckle return values + const_def + const SHUCKIE_WRONG_MON ; 0 + const SHUCKIE_REFUSED ; 1 + const SHUCKIE_RETURNED ; 2 + const SHUCKIE_HAPPY ; 3 + const SHUCKIE_FAINTED ; 4 + +; CheckPartyFullAfterContest return values + const_def + const BUGCONTEST_CAUGHT_MON ; 0 + const BUGCONTEST_BOXED_MON ; 1 + const BUGCONTEST_NO_CATCH ; 2 + +; HealMachineAnim writebyte arguments +; HealMachineAnim.Pointers indexes (see engine/events/heal_machine_anim.asm) + const_def + const HEALMACHINE_POKECENTER ; 0 + const HEALMACHINE_ELMS_LAB ; 1 + const HEALMACHINE_HALL_OF_FAME ; 2 + +; UnownPuzzle writebyte arguments +; LoadUnownPuzzlePiecesGFX.LZPointers indexes (see engine/games/unown_puzzle.asm) + const_def + const UNOWNPUZZLE_KABUTO ; 0 + const UNOWNPUZZLE_OMANYTE ; 1 + const UNOWNPUZZLE_AERODACTYL ; 2 + const UNOWNPUZZLE_HO_OH ; 3 +NUM_UNOWN_PUZZLES EQU const_value + +; DisplayUnownWords writebyte arguments +; UnownWalls and MenuHeaders_UnownWalls indexes (see data/events/unown_walls.asm) + const_def + const UNOWNWORDS_ESCAPE ; 0 + const UNOWNWORDS_LIGHT ; 1 + const UNOWNWORDS_WATER ; 2 + const UNOWNWORDS_HO_OH ; 3 + +; MoveTutor writebyte arguments + const_def 1 + const MOVETUTOR_FLAMETHROWER ; 1 + const MOVETUTOR_THUNDERBOLT ; 2 + const MOVETUTOR_ICE_BEAM ; 3 diff --git a/constants/serial_constants.asm b/constants/serial_constants.asm new file mode 100644 index 00000000..757292ee --- /dev/null +++ b/constants/serial_constants.asm @@ -0,0 +1,30 @@ +; link types + const_def + const LINK_NULL ; 0 + const LINK_TIMECAPSULE ; 1 + const LINK_TRADECENTER ; 2 + const LINK_COLOSSEUM ; 3 + const LINK_MOBILE ; 4 + +; hSerialReceive high nybbles +SERIAL_TIMECAPSULE EQU $60 +SERIAL_TRADECENTER EQU $70 +SERIAL_BATTLE EQU $80 + +ESTABLISH_CONNECTION_WITH_INTERNAL_CLOCK EQU $01 +ESTABLISH_CONNECTION_WITH_EXTERNAL_CLOCK EQU $02 + +START_TRANSFER_EXTERNAL_CLOCK EQU $80 ; 1 << rSC_ON +START_TRANSFER_INTERNAL_CLOCK EQU $81 ; (1 << rSC_ON) | 1 + +; hSerialConnectionStatus +USING_EXTERNAL_CLOCK EQU $01 +USING_INTERNAL_CLOCK EQU $02 +CONNECTION_NOT_ESTABLISHED EQU $ff + +; signals the start of an array of bytes transferred over the link cable +SERIAL_PREAMBLE_BYTE EQU $fd +; this byte is used when there is no data to send +SERIAL_NO_DATA_BYTE EQU $fe +; signals the end of one part of a patch list (there are two parts) for player/enemy party data +SERIAL_PATCH_LIST_PART_TERMINATOR EQU $ff diff --git a/constants/sprite_constants.asm b/constants/sprite_constants.asm index 541934b8..caa6743c 100644 --- a/constants/sprite_constants.asm +++ b/constants/sprite_constants.asm @@ -1,5 +1,5 @@ - -; sprites +; sprite ids +; OverworldSprites indexes (see data/sprites/sprites.asm) const_def const SPRITE_NONE ; 00 const SPRITE_CHRIS ; 01 @@ -105,8 +105,8 @@ const SPRITE_RAIKOU ; 65 const SPRITE_STANDING_YOUNGSTER ; 66 -const_value SET $80 - +; SpriteMons indexes (see data/sprites/sprite_mons.asm) + const_def $80 SPRITE_POKEMON EQU const_value const SPRITE_UNOWN ; 80 const SPRITE_GEODUDE ; 81 @@ -144,11 +144,13 @@ SPRITE_POKEMON EQU const_value const SPRITE_LUGIA ; a1 const SPRITE_HO_OH ; a2 -const_value SET $e0 - const SPRITE_DAYCARE_MON_1 ; e0 - const SPRITE_DAYCARE_MON_2 ; e1 +; special GetMonSprite values (see engine/overworld/overworld.asm) + const_def $e0 + const SPRITE_DAY_CARE_MON_1 ; e0 + const SPRITE_DAY_CARE_MON_2 ; e1 -const_value SET $f0 +; wVariableSprites indexes (see wram.asm) + const_def $f0 SPRITE_VARS EQU const_value const SPRITE_CONSOLE ; f0 const SPRITE_DOLL_1 ; f1 @@ -163,500 +165,3 @@ SPRITE_VARS EQU const_value const SPRITE_FUCHSIA_GYM_4 ; fa const SPRITE_COPYCAT ; fb const SPRITE_JANINE_IMPERSONATOR ; fc - -; sprite types -const_value SET 1 - const WALKING_SPRITE - const STANDING_SPRITE - const STILL_SPRITE - -; sprite header fields - const_def - const SPRITEHEADER_ADDR_LO - const SPRITEHEADER_ADDR_HI - const SPRITEHEADER_SIZE - const SPRITEHEADER_BANK - const SPRITEHEADER_TYPE - const SPRITEHEADER_PALETTE -NUM_SPRITEHEADER_FIELDS EQU const_value - -; sprite palettes - const_def - const PAL_OW_RED - const PAL_OW_BLUE - const PAL_OW_GREEN - const PAL_OW_BROWN - const PAL_OW_PINK - const PAL_OW_SILVER - const PAL_OW_TREE - const PAL_OW_ROCK - -; sprite movement data table indices - const_def - const SPRITEMOVEDATA_00 ; 00 - const SPRITEMOVEDATA_ITEM_TREE ; 01 - const SPRITEMOVEDATA_WANDER ; 02 - const SPRITEMOVEDATA_SPINRANDOM_SLOW ; 03 - const SPRITEMOVEDATA_WALK_UP_DOWN ; 04 - const SPRITEMOVEDATA_WALK_LEFT_RIGHT ; 05 - const SPRITEMOVEDATA_STANDING_DOWN ; 06 - const SPRITEMOVEDATA_STANDING_UP ; 07 - const SPRITEMOVEDATA_STANDING_LEFT ; 08 - const SPRITEMOVEDATA_STANDING_RIGHT ; 09 - const SPRITEMOVEDATA_SPINRANDOM_FAST ; 0a - const SPRITEMOVEDATA_PLAYER ; 0b - const SPRITEMOVEDATA_0C ; 0c - const SPRITEMOVEDATA_0D ; 0d - const SPRITEMOVEDATA_0E ; 0e - const SPRITEMOVEDATA_0F ; 0f - const SPRITEMOVEDATA_10 ; 10 - const SPRITEMOVEDATA_11 ; 11 - const SPRITEMOVEDATA_12 ; 12 - const SPRITEMOVEDATA_FOLLOWING ; 13 - const SPRITEMOVEDATA_SCRIPTED ; 14 - const SPRITEMOVEDATA_SNORLAX ; 15 - const SPRITEMOVEDATA_POKEMON ; 16 - const SPRITEMOVEDATA_SUDOWOODO ; 17 - const SPRITEMOVEDATA_SMASHABLE_ROCK ; 18 - const SPRITEMOVEDATA_STRENGTH_BOULDER ; 19 - const SPRITEMOVEDATA_FOLLOWNOTEXACT ; 1a - const SPRITEMOVEDATA_SHADOW ; 1b - const SPRITEMOVEDATA_EMOTE ; 1c - const SPRITEMOVEDATA_SCREENSHAKE ; 1d - const SPRITEMOVEDATA_SPINCOUNTERCLOCKWISE ; 1e - const SPRITEMOVEDATA_SPINCLOCKWISE ; 1f - const SPRITEMOVEDATA_20 ; 20 - const SPRITEMOVEDATA_BIGDOLL ; 21 - const SPRITEMOVEDATA_BOULDERDUST ; 22 - const SPRITEMOVEDATA_GRASS ; 23 - const SPRITEMOVEDATA_LAPRAS ; 24 - const SPRITEMOVEDATA_25 ; 25 -NUM_SPRITEMOVEDATA EQU const_value +- 1 -SPRITEMOVEDATA_FIELDS EQU 6 - -; sprite movement functions - const_def - const SPRITEMOVEFN_00 - const SPRITEMOVEFN_RANDOM_WALK_Y - const SPRITEMOVEFN_RANDOM_WALK_X - const SPRITEMOVEFN_RANDOM_WALK_XY - const SPRITEMOVEFN_SLOW_RANDOM_SPIN - const SPRITEMOVEFN_FAST_RANDOM_SPIN - const SPRITEMOVEFN_STANDING - const SPRITEMOVEFN_OBEY_DPAD - const SPRITEMOVEFN_08 - const SPRITEMOVEFN_09 - const SPRITEMOVEFN_0A - const SPRITEMOVEFN_0B - const SPRITEMOVEFN_0C - const SPRITEMOVEFN_0D - const SPRITEMOVEFN_0E - const SPRITEMOVEFN_FOLLOW - const SPRITEMOVEFN_SCRIPTED - const SPRITEMOVEFN_STRENGTH - const SPRITEMOVEFN_FOLLOWNOTEXACT - const SPRITEMOVEFN_SHADOW - const SPRITEMOVEFN_EMOTE - const SPRITEMOVEFN_BIG_SNORLAX - const SPRITEMOVEFN_BOUNCE - const SPRITEMOVEFN_SCREENSHAKE - const SPRITEMOVEFN_SPIN_CLOCKWISE - const SPRITEMOVEFN_SPIN_COUNTERCLOCKWISE - const SPRITEMOVEFN_BOULDERDUST - const SPRITEMOVEFN_GRASS - -MAX_OUTDOOR_SPRITES EQU 23 - - const_def - const STEP_TYPE_00 - const STEP_TYPE_SLEEP - const STEP_TYPE_NPC_WALK - const STEP_TYPE_03 - const STEP_TYPE_04 - const STEP_TYPE_05 - const STEP_TYPE_PLAYER_WALK - const STEP_TYPE_07 - const STEP_TYPE_NPC_JUMP - const STEP_TYPE_PLAYER_JUMP - const STEP_TYPE_HALF_STEP - const STEP_TYPE_BUMP - const STEP_TYPE_TELEPORT_FROM - const STEP_TYPE_TELEPORT_TO - const STEP_TYPE_SKYFALL - const STEP_TYPE_0F - const STEP_TYPE_GOT_BITE - const STEP_TYPE_ROCK_SMASH - const STEP_TYPE_RETURN_DIG - const STEP_TYPE_TRACKING_OBJECT - const STEP_TYPE_14 - const STEP_TYPE_15 - const STEP_TYPE_16 - const STEP_TYPE_17 - const STEP_TYPE_18 - const STEP_TYPE_SKYFALL_TOP - - const_def - const PERSON_ACTION_00 - const PERSON_ACTION_STAND - const PERSON_ACTION_STEP - const PERSON_ACTION_BUMP - const PERSON_ACTION_SPIN - const PERSON_ACTION_SPIN_FLICKER - const PERSON_ACTION_FISHING - const PERSON_ACTION_07 - const PERSON_ACTION_EMOTE - const PERSON_ACTION_09 - const PERSON_ACTION_0A - const PERSON_ACTION_0B - const PERSON_ACTION_0C - const PERSON_ACTION_0D - const PERSON_ACTION_0E - const PERSON_ACTION_0F - const PERSON_ACTION_10 - - const_def - const FACING_00 - const FACING_01 - const FACING_02 - const FACING_03 - const FACING_04 - const FACING_05 - const FACING_06 - const FACING_07 - const FACING_08 - const FACING_09 - const FACING_0A - const FACING_0B - const FACING_0C - const FACING_0D - const FACING_0E - const FACING_0F - const FACING_10 - const FACING_11 - const FACING_12 - const FACING_13 - const FACING_EMOTE - const FACING_15 - const FACING_16 - const FACING_17 - const FACING_18 - const FACING_19 - const FACING_1A - const FACING_1B - const FACING_1C - const FACING_1D - const FACING_1E - const FACING_1F - - const_def - const SPRITEANIMSTRUCT_INDEX ; 0 - const SPRITEANIMSTRUCT_FRAMESET_ID ; 1 - const SPRITEANIMSTRUCT_ANIM_SEQ_ID ; 2 - const SPRITEANIMSTRUCT_TILE_ID ; 3 - const SPRITEANIMSTRUCT_XCOORD ; 4 - const SPRITEANIMSTRUCT_YCOORD ; 5 - const SPRITEANIMSTRUCT_XOFFSET ; 6 - const SPRITEANIMSTRUCT_YOFFSET ; 7 - const SPRITEANIMSTRUCT_DURATION ; 8 - const SPRITEANIMSTRUCT_DURATIONOFFSET ; 9 - const SPRITEANIMSTRUCT_FRAME ; a - const SPRITEANIMSTRUCT_JUMPTABLE_INDEX ; b - const SPRITEANIMSTRUCT_0C ; c - const SPRITEANIMSTRUCT_0D ; d - const SPRITEANIMSTRUCT_0E ; e - const SPRITEANIMSTRUCT_0F ; f - - const_def - const SPRITE_ANIM_FRAMESET_00 - const SPRITE_ANIM_FRAMESET_01 - const SPRITE_ANIM_FRAMESET_02 - const SPRITE_ANIM_FRAMESET_03 - const SPRITE_ANIM_FRAMESET_04 - const SPRITE_ANIM_FRAMESET_05 - const SPRITE_ANIM_FRAMESET_06 - const SPRITE_ANIM_FRAMESET_07 - const SPRITE_ANIM_FRAMESET_08 - const SPRITE_ANIM_FRAMESET_09 - const SPRITE_ANIM_FRAMESET_GAMEFREAK_LOGO - const SPRITE_ANIM_FRAMESET_0B - const SPRITE_ANIM_FRAMESET_0C - const SPRITE_ANIM_FRAMESET_SLOT_GOLEM - const SPRITE_ANIM_FRAMESET_SLOTS_CHANSEY - const SPRITE_ANIM_FRAMESET_0F - const SPRITE_ANIM_FRAMESET_SLOTS_EGG - const SPRITE_ANIM_FRAMESET_WALK_CYCLE - const SPRITE_ANIM_FRAMESET_12 - const SPRITE_ANIM_FRAMESET_13 - const SPRITE_ANIM_FRAMESET_14 - const SPRITE_ANIM_FRAMESET_15 - const SPRITE_ANIM_FRAMESET_16 - const SPRITE_ANIM_FRAMESET_TRADEMON_ICON - const SPRITE_ANIM_FRAMESET_TRADEMON_BUBBLE - const SPRITE_ANIM_FRAMESET_19 - const SPRITE_ANIM_FRAMESET_1A - const SPRITE_ANIM_FRAMESET_1B - const SPRITE_ANIM_FRAMESET_1C - const SPRITE_ANIM_FRAMESET_LEAF - const SPRITE_ANIM_FRAMESET_1E - const SPRITE_ANIM_FRAMESET_1F - const SPRITE_ANIM_FRAMESET_20 - const SPRITE_ANIM_FRAMESET_21 - const SPRITE_ANIM_FRAMESET_22 - const SPRITE_ANIM_FRAMESET_23 - const SPRITE_ANIM_FRAMESET_24 - const SPRITE_ANIM_FRAMESET_25 - const SPRITE_ANIM_FRAMESET_26 - const SPRITE_ANIM_FRAMESET_27 - const SPRITE_ANIM_FRAMESET_28 - const SPRITE_ANIM_FRAMESET_29 - const SPRITE_ANIM_FRAMESET_2A - const SPRITE_ANIM_FRAMESET_2B - const SPRITE_ANIM_FRAMESET_2C - const SPRITE_ANIM_FRAMESET_2D - const SPRITE_ANIM_FRAMESET_2E - const SPRITE_ANIM_FRAMESET_2F - const SPRITE_ANIM_FRAMESET_30 - const SPRITE_ANIM_FRAMESET_31 - const SPRITE_ANIM_FRAMESET_32 - const SPRITE_ANIM_FRAMESET_33 - const SPRITE_ANIM_FRAMESET_34 - const SPRITE_ANIM_FRAMESET_35 - const SPRITE_ANIM_FRAMESET_36 - const SPRITE_ANIM_FRAMESET_37 - const SPRITE_ANIM_FRAMESET_38 - const SPRITE_ANIM_FRAMESET_39 - const SPRITE_ANIM_FRAMESET_3A - const SPRITE_ANIM_FRAMESET_3B - const SPRITE_ANIM_FRAMESET_3C - const SPRITE_ANIM_FRAMESET_3D - const SPRITE_ANIM_FRAMESET_3E - const SPRITE_ANIM_FRAMESET_3F - const SPRITE_ANIM_FRAMESET_40 - const SPRITE_ANIM_FRAMESET_41 - - const_def - const SPRITE_ANIM_SEQ_NULL - const SPRITE_ANIM_SEQ_01 - const SPRITE_ANIM_SEQ_02 - const SPRITE_ANIM_SEQ_03 - const SPRITE_ANIM_SEQ_04 - const SPRITE_ANIM_SEQ_05 - const SPRITE_ANIM_SEQ_GAMEFREAK_LOGO - const SPRITE_ANIM_SEQ_07 - const SPRITE_ANIM_SEQ_08 - const SPRITE_ANIM_SEQ_SLOT_GOLEM - const SPRITE_ANIM_SEQ_SLOTS_CHANSEY - const SPRITE_ANIM_SEQ_SLOTS_EGG - const SPRITE_ANIM_SEQ_0C - const SPRITE_ANIM_SEQ_0D - const SPRITE_ANIM_SEQ_0E - const SPRITE_ANIM_SEQ_0F - const SPRITE_ANIM_SEQ_10 - const SPRITE_ANIM_SEQ_11 - const SPRITE_ANIM_SEQ_TRADEMON_IN_TUBE - const SPRITE_ANIM_SEQ_13 - const SPRITE_ANIM_SEQ_14 - const SPRITE_ANIM_SEQ_15 - const SPRITE_ANIM_SEQ_FLY_FROM - const SPRITE_ANIM_SEQ_FLY_LEAF - const SPRITE_ANIM_SEQ_FLY_TO - const SPRITE_ANIM_SEQ_19 - const SPRITE_ANIM_SEQ_1A - const SPRITE_ANIM_SEQ_1B - const SPRITE_ANIM_SEQ_1C - const SPRITE_ANIM_SEQ_1D - const SPRITE_ANIM_SEQ_1E - const SPRITE_ANIM_SEQ_1F - const SPRITE_ANIM_SEQ_20 - const SPRITE_ANIM_SEQ_21 - const SPRITE_ANIM_SEQ_22 - - const_def - const SPRITE_ANIM_INDEX_00 - const SPRITE_ANIM_INDEX_01 - const SPRITE_ANIM_INDEX_02 - const SPRITE_ANIM_INDEX_GAMEFREAK_LOGO - const SPRITE_ANIM_INDEX_04 - const SPRITE_ANIM_INDEX_NAMING_SCREEN_CURSOR - const SPRITE_ANIM_INDEX_SLOT_GOLEM - const SPRITE_ANIM_INDEX_SLOTS_CHANSEY - const SPRITE_ANIM_INDEX_SLOTS_EGG - const SPRITE_ANIM_INDEX_09 - const SPRITE_ANIM_INDEX_RED_WALK - const SPRITE_ANIM_INDEX_0B - const SPRITE_ANIM_INDEX_COMPOSE_MAIL_CURSOR - const SPRITE_ANIM_INDEX_0D - const SPRITE_ANIM_INDEX_0E - const SPRITE_ANIM_INDEX_0F - const SPRITE_ANIM_INDEX_10 - const SPRITE_ANIM_INDEX_TRADEMON_ICON - const SPRITE_ANIM_INDEX_TRADEMON_BUBBLE - const SPRITE_ANIM_INDEX_13 - const SPRITE_ANIM_INDEX_14 - const SPRITE_ANIM_INDEX_15 - const SPRITE_ANIM_INDEX_LEAF - const SPRITE_ANIM_INDEX_CUT_TREE - const SPRITE_ANIM_INDEX_FLY_LEAF - const SPRITE_ANIM_INDEX_19 - const SPRITE_ANIM_INDEX_1A - const SPRITE_ANIM_INDEX_1B - const SPRITE_ANIM_INDEX_1C - const SPRITE_ANIM_INDEX_1D - const SPRITE_ANIM_INDEX_BLUE_WALK - const SPRITE_ANIM_INDEX_1F - const SPRITE_ANIM_INDEX_20 - const SPRITE_ANIM_INDEX_21 - const SPRITE_ANIM_INDEX_22 - const SPRITE_ANIM_INDEX_23 - const SPRITE_ANIM_INDEX_24 - const SPRITE_ANIM_INDEX_25 - const SPRITE_ANIM_INDEX_26 - const SPRITE_ANIM_INDEX_27 - const SPRITE_ANIM_INDEX_28 - const SPRITE_ANIM_INDEX_29 - const SPRITE_ANIM_INDEX_2A - const SPRITE_ANIM_INDEX_2B - const SPRITE_ANIM_INDEX_2C - - const_def - - const SPRITE_ANIM_FRAME_IDX_00 - const SPRITE_ANIM_FRAME_IDX_01 - const SPRITE_ANIM_FRAME_IDX_02 - const SPRITE_ANIM_FRAME_IDX_03 - const SPRITE_ANIM_FRAME_IDX_04 - const SPRITE_ANIM_FRAME_IDX_05 - const SPRITE_ANIM_FRAME_IDX_06 - const SPRITE_ANIM_FRAME_IDX_07 - const SPRITE_ANIM_FRAME_IDX_08 - const SPRITE_ANIM_FRAME_IDX_09 - const SPRITE_ANIM_FRAME_IDX_0A - const SPRITE_ANIM_FRAME_IDX_0B - const SPRITE_ANIM_FRAME_IDX_0C - const SPRITE_ANIM_FRAME_IDX_0D - const SPRITE_ANIM_FRAME_IDX_0E - const SPRITE_ANIM_FRAME_IDX_0F - const SPRITE_ANIM_FRAME_IDX_10 - const SPRITE_ANIM_FRAME_IDX_11 - const SPRITE_ANIM_FRAME_IDX_12 - const SPRITE_ANIM_FRAME_IDX_13 - const SPRITE_ANIM_FRAME_IDX_14 - const SPRITE_ANIM_FRAME_IDX_15 - const SPRITE_ANIM_FRAME_IDX_16 - const SPRITE_ANIM_FRAME_IDX_17 - const SPRITE_ANIM_FRAME_IDX_18 - const SPRITE_ANIM_FRAME_IDX_19 - const SPRITE_ANIM_FRAME_IDX_1A - const SPRITE_ANIM_FRAME_IDX_1B - const SPRITE_ANIM_FRAME_IDX_1C - const SPRITE_ANIM_FRAME_IDX_1D - const SPRITE_ANIM_FRAME_IDX_1E - const SPRITE_ANIM_FRAME_IDX_1F - const SPRITE_ANIM_FRAME_IDX_20 - const SPRITE_ANIM_FRAME_IDX_21 - const SPRITE_ANIM_FRAME_IDX_22 - const SPRITE_ANIM_FRAME_IDX_23 - const SPRITE_ANIM_FRAME_IDX_24 - const SPRITE_ANIM_FRAME_IDX_25 - const SPRITE_ANIM_FRAME_IDX_26 - const SPRITE_ANIM_FRAME_IDX_27 - const SPRITE_ANIM_FRAME_IDX_28 - const SPRITE_ANIM_FRAME_IDX_29 - const SPRITE_ANIM_FRAME_IDX_2A - const SPRITE_ANIM_FRAME_IDX_2B - const SPRITE_ANIM_FRAME_IDX_2C - const SPRITE_ANIM_FRAME_IDX_2D - const SPRITE_ANIM_FRAME_IDX_2E - const SPRITE_ANIM_FRAME_IDX_2F - const SPRITE_ANIM_FRAME_IDX_30 - const SPRITE_ANIM_FRAME_IDX_31 - const SPRITE_ANIM_FRAME_IDX_32 - const SPRITE_ANIM_FRAME_IDX_33 - const SPRITE_ANIM_FRAME_IDX_34 - const SPRITE_ANIM_FRAME_IDX_35 - const SPRITE_ANIM_FRAME_IDX_36 - const SPRITE_ANIM_FRAME_IDX_37 - const SPRITE_ANIM_FRAME_IDX_38 - const SPRITE_ANIM_FRAME_IDX_39 - const SPRITE_ANIM_FRAME_IDX_3A - const SPRITE_ANIM_FRAME_IDX_3B - const SPRITE_ANIM_FRAME_IDX_3C - const SPRITE_ANIM_FRAME_IDX_3D - const SPRITE_ANIM_FRAME_IDX_3E - const SPRITE_ANIM_FRAME_IDX_3F - const SPRITE_ANIM_FRAME_IDX_40 - const SPRITE_ANIM_FRAME_IDX_41 - const SPRITE_ANIM_FRAME_IDX_42 - const SPRITE_ANIM_FRAME_IDX_43 - const SPRITE_ANIM_FRAME_IDX_44 - const SPRITE_ANIM_FRAME_IDX_45 - const SPRITE_ANIM_FRAME_IDX_46 - const SPRITE_ANIM_FRAME_IDX_47 - const SPRITE_ANIM_FRAME_IDX_48 - const SPRITE_ANIM_FRAME_IDX_49 - const SPRITE_ANIM_FRAME_IDX_4A - const SPRITE_ANIM_FRAME_IDX_4B - const SPRITE_ANIM_FRAME_IDX_4C - const SPRITE_ANIM_FRAME_IDX_4D - const SPRITE_ANIM_FRAME_IDX_4E - const SPRITE_ANIM_FRAME_IDX_4F - const SPRITE_ANIM_FRAME_IDX_50 - const SPRITE_ANIM_FRAME_IDX_51 - const SPRITE_ANIM_FRAME_IDX_52 - const SPRITE_ANIM_FRAME_IDX_53 - const SPRITE_ANIM_FRAME_IDX_54 - const SPRITE_ANIM_FRAME_IDX_55 - const SPRITE_ANIM_FRAME_IDX_56 - const SPRITE_ANIM_FRAME_IDX_57 - const SPRITE_ANIM_FRAME_IDX_58 - const SPRITE_ANIM_FRAME_IDX_59 - const SPRITE_ANIM_FRAME_IDX_5A - const SPRITE_ANIM_FRAME_IDX_5B - const SPRITE_ANIM_FRAME_IDX_5C - const SPRITE_ANIM_FRAME_IDX_5D - const SPRITE_ANIM_FRAME_IDX_5E - const SPRITE_ANIM_FRAME_IDX_5F - const SPRITE_ANIM_FRAME_IDX_60 - const SPRITE_ANIM_FRAME_IDX_61 - const SPRITE_ANIM_FRAME_IDX_62 - const SPRITE_ANIM_FRAME_IDX_63 - const SPRITE_ANIM_FRAME_IDX_64 - const SPRITE_ANIM_FRAME_IDX_65 - const SPRITE_ANIM_FRAME_IDX_66 - const SPRITE_ANIM_FRAME_IDX_67 - const SPRITE_ANIM_FRAME_IDX_68 - const SPRITE_ANIM_FRAME_IDX_69 - const SPRITE_ANIM_FRAME_IDX_6A - const SPRITE_ANIM_FRAME_IDX_6B - const SPRITE_ANIM_FRAME_IDX_6C - const SPRITE_ANIM_FRAME_IDX_6D - const SPRITE_ANIM_FRAME_IDX_6E - const SPRITE_ANIM_FRAME_IDX_6F - const SPRITE_ANIM_FRAME_IDX_70 - const SPRITE_ANIM_FRAME_IDX_71 - const SPRITE_ANIM_FRAME_IDX_72 - const SPRITE_ANIM_FRAME_IDX_73 - const SPRITE_ANIM_FRAME_IDX_74 - const SPRITE_ANIM_FRAME_IDX_75 - const SPRITE_ANIM_FRAME_IDX_76 - const SPRITE_ANIM_FRAME_IDX_77 - const SPRITE_ANIM_FRAME_IDX_78 - const SPRITE_ANIM_FRAME_IDX_79 - const SPRITE_ANIM_FRAME_IDX_7A - const SPRITE_ANIM_FRAME_IDX_7B - const SPRITE_ANIM_FRAME_IDX_7C - const SPRITE_ANIM_FRAME_IDX_7D - const SPRITE_ANIM_FRAME_IDX_7E - const SPRITE_ANIM_FRAME_IDX_7F - const SPRITE_ANIM_FRAME_IDX_80 - const SPRITE_ANIM_FRAME_IDX_81 - const SPRITE_ANIM_FRAME_IDX_82 - const SPRITE_ANIM_FRAME_IDX_83 - const SPRITE_ANIM_FRAME_IDX_84 - const SPRITE_ANIM_FRAME_IDX_85 - const SPRITE_ANIM_FRAME_IDX_86 - const SPRITE_ANIM_FRAME_IDX_87 - const SPRITE_ANIM_FRAME_IDX_88 - const SPRITE_ANIM_FRAME_IDX_89 - const SPRITE_ANIM_FRAME_IDX_8A - const SPRITE_ANIM_FRAME_IDX_8B diff --git a/constants/sprite_data_constants.asm b/constants/sprite_data_constants.asm new file mode 100644 index 00000000..329833b1 --- /dev/null +++ b/constants/sprite_data_constants.asm @@ -0,0 +1,38 @@ +; overworld_sprite struct members (see data/sprites.asm) + const_def + const SPRITEDATA_ADDR ; 0 + const SPRITEDATA_ADDR_HI ; 1 + const SPRITEDATA_SIZE ; 2 + const SPRITEDATA_BANK ; 3 + const SPRITEDATA_TYPE ; 4 + const SPRITEDATA_PALETTE ; 5 +NUM_SPRITEDATA_FIELDS EQU const_value + +; sprite types + const_def 1 + const WALKING_SPRITE ; 1 + const STANDING_SPRITE ; 2 + const STILL_SPRITE ; 3 + +; sprite palettes + const_def + const PAL_OW_RED ; 0 + const PAL_OW_BLUE ; 1 + const PAL_OW_GREEN ; 2 + const PAL_OW_BROWN ; 3 + const PAL_OW_PINK ; 4 + const PAL_OW_SILVER ; 5 + const PAL_OW_TREE ; 6 + const PAL_OW_ROCK ; 7 + +; object_events set bit 3 so as not to use the sprite's default palette +; MapObjectPals indexes (see gfx/overworld/npc_sprites.pal) + const_def 1 << 3 + const PAL_NPC_RED ; 8 + const PAL_NPC_BLUE ; 9 + const PAL_NPC_GREEN ; a + const PAL_NPC_BROWN ; b + const PAL_NPC_PINK ; c + const PAL_NPC_SILVER ; d + const PAL_NPC_TREE ; e + const PAL_NPC_ROCK ; f diff --git a/constants/text_constants.asm b/constants/text_constants.asm new file mode 100644 index 00000000..ee558956 --- /dev/null +++ b/constants/text_constants.asm @@ -0,0 +1,46 @@ +; name lengths +NAME_LENGTH EQU 11 +PLAYER_NAME_LENGTH EQU 8 +BOX_NAME_LENGTH EQU 9 +MON_NAME_LENGTH EQU 11 +MOVE_NAME_LENGTH EQU 13 +ITEM_NAME_LENGTH EQU 13 +TRAINER_CLASS_NAME_LENGTH EQU 13 +NAME_LENGTH_JAPANESE EQU 6 + +; GetName types (see home/names.asm) + const_def 1 + const MON_NAME ; 1 + const MOVE_NAME ; 2 + const DUMMY_NAME ; 3 + const ITEM_NAME ; 4 + const PARTY_OT_NAME ; 5 + const ENEMY_OT_NAME ; 6 + const TRAINER_NAME ; 7 + const MOVE_DESC_NAME_BROKEN ; 8 + +; see home/text.asm +BORDER_WIDTH EQU 2 +TEXTBOX_WIDTH EQU SCREEN_WIDTH +TEXTBOX_INNERW EQU TEXTBOX_WIDTH - BORDER_WIDTH +TEXTBOX_HEIGHT EQU 6 +TEXTBOX_INNERH EQU TEXTBOX_HEIGHT - BORDER_WIDTH +TEXTBOX_X EQU 0 +TEXTBOX_INNERX EQU TEXTBOX_X + 1 +TEXTBOX_Y EQU SCREEN_HEIGHT - TEXTBOX_HEIGHT +TEXTBOX_INNERY EQU TEXTBOX_Y + 2 + +; PrintNum bit flags + const_def 5 + const PRINTNUM_MONEY_F ; 5 + const PRINTNUM_RIGHTALIGN_F ; 6 + const PRINTNUM_LEADINGZEROS_F ; 7 + +; PrintNum arguments (see engine/math/print_num.asm) +PRINTNUM_MONEY EQU 1 << PRINTNUM_MONEY_F +PRINTNUM_RIGHTALIGN EQU 1 << PRINTNUM_RIGHTALIGN_F +PRINTNUM_LEADINGZEROS EQU 1 << PRINTNUM_LEADINGZEROS_F + +; character sets (see charmap.asm) +FIRST_REGULAR_TEXT_CHAR EQU $60 +FIRST_HIRAGANA_DAKUTEN_CHAR EQU $20 diff --git a/constants/wram_constants.asm b/constants/wram_constants.asm index 3561c9be..74d27aab 100644 --- a/constants/wram_constants.asm +++ b/constants/wram_constants.asm @@ -84,9 +84,6 @@ PLAYER_SLIP EQU 2 PLAYER_SURF EQU 4 PLAYER_SURF_PIKA EQU 8 -OBJECT_STRUCT_LENGTH EQU 40 -NUM_OBJECT_STRUCTS EQU 13 - ; After-Champion Spawn SPAWN_LANCE EQU 1 SPAWN_RED EQU 2 diff --git a/data/map_objects.asm b/data/map_objects.asm index cdd0b0a6..fe218e42 100755 --- a/data/map_objects.asm +++ b/data/map_objects.asm @@ -4,41 +4,41 @@ sprite_movement_data: macro endm ; function, facing, action, flags1, flags2, palette flags - sprite_movement_data SPRITEMOVEFN_00, DOWN, PERSON_ACTION_STAND, $02, $00, %0000 ; 00 - sprite_movement_data SPRITEMOVEFN_STANDING, DOWN, PERSON_ACTION_STAND, $0c, $00, %0000 ; 01 - sprite_movement_data SPRITEMOVEFN_RANDOM_WALK_XY, DOWN, PERSON_ACTION_STAND, $00, $00, %0000 ; 02 - sprite_movement_data SPRITEMOVEFN_SLOW_RANDOM_SPIN, DOWN, PERSON_ACTION_STAND, $00, $00, %0000 ; 03 - sprite_movement_data SPRITEMOVEFN_RANDOM_WALK_Y, DOWN, PERSON_ACTION_STAND, $00, $00, %0000 ; 04 - sprite_movement_data SPRITEMOVEFN_RANDOM_WALK_X, DOWN, PERSON_ACTION_STAND, $00, $00, %0000 ; 05 - sprite_movement_data SPRITEMOVEFN_STANDING, DOWN, PERSON_ACTION_STAND, $00, $00, %0000 ; 06 - sprite_movement_data SPRITEMOVEFN_STANDING, UP, PERSON_ACTION_STAND, $00, $00, %0000 ; 07 - sprite_movement_data SPRITEMOVEFN_STANDING, LEFT, PERSON_ACTION_STAND, $00, $00, %0000 ; 08 - sprite_movement_data SPRITEMOVEFN_STANDING, RIGHT, PERSON_ACTION_STAND, $00, $00, %0000 ; 09 - sprite_movement_data SPRITEMOVEFN_FAST_RANDOM_SPIN, DOWN, PERSON_ACTION_STAND, $00, $00, %0000 ; 0a - sprite_movement_data SPRITEMOVEFN_OBEY_DPAD, DOWN, PERSON_ACTION_STAND, $02, $00, %0000 ; 0b - sprite_movement_data SPRITEMOVEFN_08, DOWN, PERSON_ACTION_STAND, $00, $00, %0000 ; 0c - sprite_movement_data SPRITEMOVEFN_09, DOWN, PERSON_ACTION_STAND, $00, $00, %0000 ; 0d - sprite_movement_data SPRITEMOVEFN_0A, DOWN, PERSON_ACTION_STAND, $00, $00, %0000 ; 0e - sprite_movement_data SPRITEMOVEFN_0B, DOWN, PERSON_ACTION_STAND, $00, $00, %0000 ; 0f - sprite_movement_data SPRITEMOVEFN_0C, DOWN, PERSON_ACTION_STAND, $00, $00, %0000 ; 10 - sprite_movement_data SPRITEMOVEFN_0D, DOWN, PERSON_ACTION_STAND, $00, $00, %0000 ; 11 - sprite_movement_data SPRITEMOVEFN_0E, DOWN, PERSON_ACTION_STAND, $00, $00, %0000 ; 12 - sprite_movement_data SPRITEMOVEFN_FOLLOW, DOWN, PERSON_ACTION_STAND, $02, $00, %0000 ; 13 - sprite_movement_data SPRITEMOVEFN_SCRIPTED, DOWN, PERSON_ACTION_STAND, $02, $00, %0000 ; 14 - sprite_movement_data SPRITEMOVEFN_BIG_SNORLAX, DOWN, PERSON_ACTION_09, $2e, $01, %1100 ; 15 - sprite_movement_data SPRITEMOVEFN_BOUNCE, DOWN, PERSON_ACTION_0A, $2e, $00, %0000 ; 16 - sprite_movement_data SPRITEMOVEFN_STANDING, DOWN, PERSON_ACTION_STAND, $0c, $00, %0000 ; 17 - sprite_movement_data SPRITEMOVEFN_STANDING, DOWN, PERSON_ACTION_STAND, $2e, $10, %0000 ; 18 - sprite_movement_data SPRITEMOVEFN_STRENGTH, DOWN, PERSON_ACTION_STAND, $2e, $00, %0100 ; 19 - sprite_movement_data SPRITEMOVEFN_FOLLOWNOTEXACT, DOWN, PERSON_ACTION_STAND, $02, $00, %0000 ; 1a - sprite_movement_data SPRITEMOVEFN_SHADOW, DOWN, PERSON_ACTION_00, $8e, $01, %0000 ; 1b - sprite_movement_data SPRITEMOVEFN_EMOTE, DOWN, PERSON_ACTION_EMOTE, $8e, $02, %0000 ; 1c - sprite_movement_data SPRITEMOVEFN_SCREENSHAKE, DOWN, PERSON_ACTION_00, $82, $00, %0000 ; 1d - sprite_movement_data SPRITEMOVEFN_SPIN_COUNTERCLOCKWISE, LEFT, PERSON_ACTION_STAND, $00, $00, %0000 ; 1e - sprite_movement_data SPRITEMOVEFN_SPIN_CLOCKWISE, RIGHT, PERSON_ACTION_STAND, $00, $00, %0000 ; 1f - sprite_movement_data SPRITEMOVEFN_STRENGTH, DOWN, PERSON_ACTION_0C, $2e, $01, %1100 ; 20 - sprite_movement_data SPRITEMOVEFN_STRENGTH, DOWN, PERSON_ACTION_0D, $2e, $01, %1100 ; 21 - sprite_movement_data SPRITEMOVEFN_BOULDERDUST, DOWN, PERSON_ACTION_0E, $8e, $01, %0000 ; 22 - sprite_movement_data SPRITEMOVEFN_GRASS, DOWN, PERSON_ACTION_0F, $8e, $02, %0000 ; 23 - sprite_movement_data SPRITEMOVEFN_RANDOM_WALK_XY, DOWN, PERSON_ACTION_STAND, $00, $00, %0010 ; 24 - sprite_movement_data SPRITEMOVEFN_00, DOWN, PERSON_ACTION_STAND, $00, $00, %0000 ; 25 + sprite_movement_data SPRITEMOVEFN_00, DOWN, OBJECT_ACTION_STAND, $02, $00, %0000 ; 00 + sprite_movement_data SPRITEMOVEFN_STANDING, DOWN, OBJECT_ACTION_STAND, $0c, $00, %0000 ; 01 + sprite_movement_data SPRITEMOVEFN_RANDOM_WALK_XY, DOWN, OBJECT_ACTION_STAND, $00, $00, %0000 ; 02 + sprite_movement_data SPRITEMOVEFN_SLOW_RANDOM_SPIN, DOWN, OBJECT_ACTION_STAND, $00, $00, %0000 ; 03 + sprite_movement_data SPRITEMOVEFN_RANDOM_WALK_Y, DOWN, OBJECT_ACTION_STAND, $00, $00, %0000 ; 04 + sprite_movement_data SPRITEMOVEFN_RANDOM_WALK_X, DOWN, OBJECT_ACTION_STAND, $00, $00, %0000 ; 05 + sprite_movement_data SPRITEMOVEFN_STANDING, DOWN, OBJECT_ACTION_STAND, $00, $00, %0000 ; 06 + sprite_movement_data SPRITEMOVEFN_STANDING, UP, OBJECT_ACTION_STAND, $00, $00, %0000 ; 07 + sprite_movement_data SPRITEMOVEFN_STANDING, LEFT, OBJECT_ACTION_STAND, $00, $00, %0000 ; 08 + sprite_movement_data SPRITEMOVEFN_STANDING, RIGHT, OBJECT_ACTION_STAND, $00, $00, %0000 ; 09 + sprite_movement_data SPRITEMOVEFN_FAST_RANDOM_SPIN, DOWN, OBJECT_ACTION_STAND, $00, $00, %0000 ; 0a + sprite_movement_data SPRITEMOVEFN_OBEY_DPAD, DOWN, OBJECT_ACTION_STAND, $02, $00, %0000 ; 0b + sprite_movement_data SPRITEMOVEFN_08, DOWN, OBJECT_ACTION_STAND, $00, $00, %0000 ; 0c + sprite_movement_data SPRITEMOVEFN_09, DOWN, OBJECT_ACTION_STAND, $00, $00, %0000 ; 0d + sprite_movement_data SPRITEMOVEFN_0A, DOWN, OBJECT_ACTION_STAND, $00, $00, %0000 ; 0e + sprite_movement_data SPRITEMOVEFN_0B, DOWN, OBJECT_ACTION_STAND, $00, $00, %0000 ; 0f + sprite_movement_data SPRITEMOVEFN_0C, DOWN, OBJECT_ACTION_STAND, $00, $00, %0000 ; 10 + sprite_movement_data SPRITEMOVEFN_0D, DOWN, OBJECT_ACTION_STAND, $00, $00, %0000 ; 11 + sprite_movement_data SPRITEMOVEFN_0E, DOWN, OBJECT_ACTION_STAND, $00, $00, %0000 ; 12 + sprite_movement_data SPRITEMOVEFN_FOLLOW, DOWN, OBJECT_ACTION_STAND, $02, $00, %0000 ; 13 + sprite_movement_data SPRITEMOVEFN_SCRIPTED, DOWN, OBJECT_ACTION_STAND, $02, $00, %0000 ; 14 + sprite_movement_data SPRITEMOVEFN_BIG_SNORLAX, DOWN, OBJECT_ACTION_BIG_DOLL_SYM, $2e, $01, %1100 ; 15 + sprite_movement_data SPRITEMOVEFN_BOUNCE, DOWN, OBJECT_ACTION_BOUNCE, $2e, $00, %0000 ; 16 + sprite_movement_data SPRITEMOVEFN_STANDING, DOWN, OBJECT_ACTION_STAND, $0c, $00, %0000 ; 17 + sprite_movement_data SPRITEMOVEFN_STANDING, DOWN, OBJECT_ACTION_STAND, $2e, $10, %0000 ; 18 + sprite_movement_data SPRITEMOVEFN_STRENGTH, DOWN, OBJECT_ACTION_STAND, $2e, $00, %0100 ; 19 + sprite_movement_data SPRITEMOVEFN_FOLLOWNOTEXACT, DOWN, OBJECT_ACTION_STAND, $02, $00, %0000 ; 1a + sprite_movement_data SPRITEMOVEFN_SHADOW, DOWN, OBJECT_ACTION_00, $8e, $01, %0000 ; 1b + sprite_movement_data SPRITEMOVEFN_EMOTE, DOWN, OBJECT_ACTION_EMOTE, $8e, $02, %0000 ; 1c + sprite_movement_data SPRITEMOVEFN_SCREENSHAKE, DOWN, OBJECT_ACTION_00, $82, $00, %0000 ; 1d + sprite_movement_data SPRITEMOVEFN_SPIN_COUNTERCLOCKWISE, LEFT, OBJECT_ACTION_STAND, $00, $00, %0000 ; 1e + sprite_movement_data SPRITEMOVEFN_SPIN_CLOCKWISE, RIGHT, OBJECT_ACTION_STAND, $00, $00, %0000 ; 1f + sprite_movement_data SPRITEMOVEFN_STRENGTH, DOWN, OBJECT_ACTION_BIG_DOLL_ASYM, $2e, $01, %1100 ; 20 + sprite_movement_data SPRITEMOVEFN_STRENGTH, DOWN, OBJECT_ACTION_BIG_DOLL, $2e, $01, %1100 ; 21 + sprite_movement_data SPRITEMOVEFN_BOULDERDUST, DOWN, OBJECT_ACTION_BOULDER_DUST, $8e, $01, %0000 ; 22 + sprite_movement_data SPRITEMOVEFN_GRASS, DOWN, OBJECT_ACTION_GRASS_SHAKE, $8e, $02, %0000 ; 23 + sprite_movement_data SPRITEMOVEFN_RANDOM_WALK_XY, DOWN, OBJECT_ACTION_STAND, $00, $00, %0010 ; 24 + sprite_movement_data SPRITEMOVEFN_00, DOWN, OBJECT_ACTION_STAND, $00, $00, %0000 ; 25 diff --git a/engine/color.asm b/engine/color.asm index 16e4c29d..0f73ff99 100755 --- a/engine/color.asm +++ b/engine/color.asm @@ -1469,7 +1469,7 @@ Pointers_b6ce: dw .OutdoorColors ; ROUTE dw .IndoorColors ; INDOOR dw .DungeonColors ; CAVE - dw .Perm5Colors ; PERM_5 + dw .Perm5Colors ; ENVIRONMENT_5 dw .IndoorColors ; GATE dw .DungeonColors ; DUNGEON diff --git a/engine/main_menu.asm b/engine/main_menu.asm index 2da93de6..40acea32 100755 --- a/engine/main_menu.asm +++ b/engine/main_menu.asm @@ -345,8 +345,6 @@ Function5c41: ; 5c41 (1:5c41) ld [wCoins], a ld [wCoins + 1], a -START_MONEY EQU 3000 - IF START_MONEY / $10000 ld a, START_MONEY / $10000 ENDC diff --git a/engine/move_mon.asm b/engine/move_mon.asm index 007f3b2a..e1ffa672 100755 --- a/engine/move_mon.asm +++ b/engine/move_mon.asm @@ -1534,7 +1534,7 @@ GivePoke: ; Give a Pokemon from script call GetPokemonName ld hl, wStringBuffer1 ld de, wMonOrItemNameBuffer - ld bc, PKMN_NAME_LENGTH + ld bc, MON_NAME_LENGTH call CopyBytes pop af and a @@ -1546,7 +1546,7 @@ GivePoke: ; Give a Pokemon from script push hl ld a, [wScriptBank] call GetFarHalfword - ld bc, PKMN_NAME_LENGTH + ld bc, MON_NAME_LENGTH ld a, [wScriptBank] call FarCopyBytes pop hl @@ -1582,7 +1582,7 @@ GivePoke: ; Give a Pokemon from script ld a, BANK(sBoxMonOT) call OpenSRAM ld de, sBoxMonOT - ld bc, PKMN_NAME_LENGTH + ld bc, MON_NAME_LENGTH ld a, [wScriptBank] call FarCopyBytes ld hl, sBoxMon1ID @@ -1610,7 +1610,7 @@ GivePoke: ; Give a Pokemon from script call OpenSRAM ld hl, wMonOrItemNameBuffer ld de, sBoxMonNicknames - ld bc, PKMN_NAME_LENGTH + ld bc, MON_NAME_LENGTH call CopyBytes call CloseSRAM ld b, $1 diff --git a/engine/overworld/player_object.asm b/engine/overworld/player_object.asm index 45562e8e..40edd8b5 100755 --- a/engine/overworld/player_object.asm +++ b/engine/overworld/player_object.asm @@ -37,7 +37,10 @@ SpawnPlayer: ; 861a (2:461a) ret .PlayerObjectTemplate - person_event SPRITE_CHRIS, -4, -4, SPRITEMOVEDATA_PLAYER, 15, 15, -1, -1, 0, PERSONTYPE_SCRIPT, 0, 0, -1 +; A dummy map object used to initialize the player object. +; Shorter than the actual amount copied by two bytes. +; Said bytes seem to be unused. + object_event -4, -4, SPRITE_CHRIS, SPRITEMOVEDATA_PLAYER, 15, 15, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, 0, -1 CopyDECoordsToMapObject: ; 8653 (2:4653) push de @@ -117,7 +120,7 @@ SpawnPlayer2: ret .PlayerObjectTemplate: - person_event SPRITE_CHRIS, -4, -4, SPRITEMOVEDATA_12, 15, 15, -1, -1, 0, PERSONTYPE_SCRIPT, 0, 0, -1 + object_event -4, -4, SPRITE_CHRIS, SPRITEMOVEDATA_12, 15, 15, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, 0, -1 CopyObjectStruct_:: ; 86d7 (2:46d7) call CheckObjectMask diff --git a/engine/specials.asm b/engine/specials.asm index 4232bb9e..2179c3af 100755 --- a/engine/specials.asm +++ b/engine/specials.asm @@ -12,8 +12,23 @@ Special:: ; c22b rst FarCall ret +; Special routines can be used with the "special" map script command. +; They often use wScriptVar for arguments and return values. + +add_special: MACRO +; Some ROM0 specials have a nonzero bank. +\1Special:: +IF _NARG == 1 + dba \1 +ELSE + dbw \2, \1 +ENDC +ENDM + SpecialsPointers: add_special WarpToSpawnPoint + +; Communications add_special Function29b22 add_special Function29b4b add_special Function29bcc @@ -33,6 +48,8 @@ SpecialsPointers: add_special Special_CheckMysteryGift add_special Special_GetMysteryGiftItem add_special Function2a4e7 + +; Map events add_special BugContestJudging add_special Functionc7bbf add_special Function13dce diff --git a/event/overworld.asm b/event/overworld.asm index 4a9a4751..59848f21 100755 --- a/event/overworld.asm +++ b/event/overworld.asm @@ -986,7 +986,7 @@ Text_AllowedToMoveBoulders: AskStrengthScript: ; cd4e callasm TryStrengthOW iffalse .ask - if_equal 1, .not_able + ifequal 1, .not_able jump .already_active .not_able @@ -1334,7 +1334,7 @@ Text_UsedRockSmash: ; cf60 AskRockSmashScript: callasm TryRockSmashOW - if_equal 1, .fail + ifequal 1, .fail opentext writetext Text_AskRockSmash yesorno diff --git a/event/special.asm b/event/special.asm index ddc530d1..1c7edb2a 100755 --- a/event/special.asm +++ b/event/special.asm @@ -192,5 +192,5 @@ Data_753f: Function7542: ; 7542 (1:7542) ld hl, wStringBuffer1 ld de, wStringBuffer3 - ld bc, PKMN_NAME_LENGTH + ld bc, MON_NAME_LENGTH jp CopyBytes @@ -1025,14 +1025,14 @@ GetPokemonName:: ; 367e (0:367e) ld hl, PokemonNames ld e, a ld d, $0 -rept PKMN_NAME_LENGTH +- 1 +rept MON_NAME_LENGTH +- 1 add hl, de endr ld de, wStringBuffer1 push de - ld bc, PKMN_NAME_LENGTH - 1 + ld bc, MON_NAME_LENGTH - 1 call CopyBytes - ld hl, wStringBuffer1 + PKMN_NAME_LENGTH - 1 + ld hl, wStringBuffer1 + MON_NAME_LENGTH - 1 ld [hl], "@" pop de pop hl diff --git a/home/map.asm b/home/map.asm index 3088996c..c6ad4ae6 100644 --- a/home/map.asm +++ b/home/map.asm @@ -106,12 +106,12 @@ LoadMetatiles:: ; 1fe6 (0:1fe6) ld a, [wOverworldMapAnchor + 1] ld d, a ld hl, wMisc - ld b, WMISC_HEIGHT / 4 ; 5 + ld b, SURROUNDING_HEIGHT / METATILE_WIDTH ; 5 .row push de push hl - ld c, WMISC_WIDTH / 4 ; 6 + ld c, SURROUNDING_WIDTH / METATILE_WIDTH ; 6 .col push de @@ -142,20 +142,20 @@ LoadMetatiles:: ; 1fe6 (0:1fe6) ld h, a ; copy the 4x4 metatile -rept 3 -rept 4 +rept METATILE_WIDTH + -1 +rept METATILE_WIDTH ld a, [hli] ld [de], a inc de endr ld a, e - add WMISC_WIDTH - 4 + add SURROUNDING_WIDTH - METATILE_WIDTH ld e, a jr nc, .next\@ inc d .next\@ endr -rept 4 +rept METATILE_WIDTH ld a, [hli] ld [de], a inc de @@ -170,7 +170,7 @@ endr jp nz, .col ; Next metarow pop hl - ld de, WMISC_WIDTH * 4 + ld de, SURROUNDING_WIDTH * METATILE_WIDTH add hl, de pop de ld a, [wMapWidth] @@ -692,7 +692,7 @@ CheckDungeonMap:: ret z cp GATE ret z - cp PERM_5 + cp ENVIRONMENT_5 ret LoadMapAttributes:: diff --git a/home/text.asm b/home/text.asm index 806351d5..b689701d 100644 --- a/home/text.asm +++ b/home/text.asm @@ -1,13 +1,3 @@ -BORDER_WIDTH EQU 2 -TEXTBOX_WIDTH EQU SCREEN_WIDTH -TEXTBOX_INNERW EQU TEXTBOX_WIDTH - BORDER_WIDTH -TEXTBOX_HEIGHT EQU 6 -TEXTBOX_INNERH EQU TEXTBOX_HEIGHT - BORDER_WIDTH -TEXTBOX_X EQU 0 -TEXTBOX_INNERX EQU TEXTBOX_X + 1 -TEXTBOX_Y EQU SCREEN_HEIGHT - TEXTBOX_HEIGHT -TEXTBOX_INNERY EQU TEXTBOX_Y + 2 - TEXTBOX_PAL EQU 7 ClearBox:: ; ebd (0:0ebd) diff --git a/items/item_attributes.asm b/items/item_attributes.asm index 7b02c7f5..14ce8e92 100755 --- a/items/item_attributes.asm +++ b/items/item_attributes.asm @@ -16,7 +16,7 @@ Item2Attributes: item_attribute 1200, 0, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE ; BRIGHTPOWDER - item_attribute 10, HELD_BRIGHTPOWDER, 20, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE + item_attribute 10, HELD_BRIGHTPOWDER, 20, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE ; GREAT BALL item_attribute 600, 0, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE @@ -253,7 +253,7 @@ Item2Attributes: item_attribute 100, HELD_POISON_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE ; KING'S ROCK - item_attribute 100, HELD_TRADE_EVOLVE, 30, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE + item_attribute 100, HELD_FLINCH, 30, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE ; BITTER BERRY item_attribute 10, HELD_HEAL_CONFUSION, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_PARTY diff --git a/items/item_effects.asm b/items/item_effects.asm index 84ff853e..225bf541 100755 --- a/items/item_effects.asm +++ b/items/item_effects.asm @@ -538,7 +538,7 @@ UltraBall: ; e926 dec a ld [wd005], a ld hl, wPartyMon1Nickname - ld bc, PKMN_NAME_LENGTH + ld bc, MON_NAME_LENGTH call AddNTimes ld d, h ld e, l @@ -590,7 +590,7 @@ UltraBall: ; e926 call OpenSRAM ld hl, wMonOrItemNameBuffer ld de, sBoxMonNicknames - ld bc, PKMN_NAME_LENGTH + ld bc, MON_NAME_LENGTH call CopyBytes ld hl, sBoxMonNicknames ld de, wStringBuffer1 @@ -601,7 +601,7 @@ UltraBall: ; e926 call OpenSRAM ld hl, sBoxMonNicknames ld de, wMonOrItemNameBuffer - ld bc, PKMN_NAME_LENGTH + ld bc, MON_NAME_LENGTH call CopyBytes call CloseSRAM ld hl, Text_SentToBillsPC ; $6e3f @@ -1,19 +1,18 @@ INCLUDE "macros/enum.asm" INCLUDE "macros/basestats.asm" -INCLUDE "macros/event.asm" +INCLUDE "macros/scripts/maps.asm" +INCLUDE "macros/scripts/events.asm" INCLUDE "macros/sound.asm" INCLUDE "macros/text.asm" INCLUDE "macros/charmap.asm" INCLUDE "macros/move_effect.asm" INCLUDE "macros/move_anim.asm" INCLUDE "macros/movement.asm" -INCLUDE "macros/map.asm" INCLUDE "macros/pic.asm" INCLUDE "macros/predef.asm" INCLUDE "macros/rst.asm" INCLUDE "macros/mobile.asm" -INCLUDE "macros/trainer.asm" INCLUDE "macros/trade_anim.asm" INCLUDE "macros/pals.asm" INCLUDE "macros/flag.asm" @@ -282,6 +281,12 @@ else endc endm +menu_coords: MACRO +; x1, y1, x2, y2 + db \2, \1 ; start coords + db \4, \3 ; end coords +ENDM + jumptable: MACRO ld a, [\2] ld e, a diff --git a/macros/enum.asm b/macros/enum.asm index 933f7b18..4830c339 100644 --- a/macros/enum.asm +++ b/macros/enum.asm @@ -22,11 +22,14 @@ enum_set: macro __enum__ = \1 endm - ; Enumerate constants const_def: MACRO +if _NARG >= 1 +const_value = \1 +else const_value = 0 +endc ENDM const: MACRO diff --git a/macros/event.asm b/macros/event.asm index e3d20b48..359fe553 100644 --- a/macros/event.asm +++ b/macros/event.asm @@ -100,15 +100,15 @@ special: macro dw (\1Special - SpecialsPointers) / 3 endm -add_special: MACRO -; Some ROM0 specials have a nonzero bank. -\1Special:: -IF _NARG == 1 - dba \1 -ELSE - dbw \2, \1 -ENDC -ENDM +;add_special: MACRO +;; Some ROM0 specials have a nonzero bank. +;\1Special:: +;IF _NARG == 1 +; dba \1 +;ELSE +; dbw \2, \1 +;ENDC +;ENDM enum ptcallasm_command ptcallasm: macro diff --git a/macros/map.asm b/macros/map.asm deleted file mode 100644 index 2e876577..00000000 --- a/macros/map.asm +++ /dev/null @@ -1,189 +0,0 @@ -map: MACRO - db GROUP_\1, MAP_\1 -ENDM - -roam_map: MACRO -; A map and an arbitrary number of some more maps. - - map \1 - db \2 - - rept \2 - map \3 - shift - endr - - db 0 -ENDM - -person_event: macro - db \1 ; sprite - db \2 + 4 ; y - db \3 + 4 ; x - db \4 ; movement function - dn \5, \6 ; radius: y, x - db \7 ; clock_hour - db \8 ; clock_daytime - shift - dn \8, \9 ; color_function - shift - db \9 ; sight_range - shift - dw \9 ; pointer - shift - dw \9 ; event flag - endm - -signpost: macro - db \1 ; y - db \2 ; x - db \3 ; function - dw \4 ; pointer - endm - -xy_trigger: macro - db \1 ; number - db \2 ; y - db \3 ; x - db \4 ; unknown1 - dw \5 ; script - db \6 ; unknown2 - db \7 ; unknown3 - endm - -warp_def: macro - db \1 ; y - db \2 ; x - db \3 ; warp_to - map \4 ; map - endm - - -map_header: MACRO - ; label, tileset, permission, location, music, phone service flag, time of day, fishing group -\1_MapHeader: - db BANK(\1_SecondMapHeader), \2, \3 - dw \1_SecondMapHeader - db \4, \5 - dn \6, \7 - db \8 -ENDM - - -map_header_2: MACRO -; label, map, border block, connections -\1_SecondMapHeader:: - db \3 - db \2_HEIGHT, \2_WIDTH - db BANK(\1_BlockData) - dw \1_BlockData - db BANK(\1_MapScriptHeader) - dw \1_MapScriptHeader - dw \1_MapEventHeader - db \4 -ENDM - -connection: MACRO -if "\1" == "north" -;\2: map id -;\3: map label (eventually will be rolled into map id) -;\4: x -;\5: offset? -;\6: strip length -;\7: this map id - map \2 - dw \3_BlockData + \2_WIDTH * (\2_HEIGHT - 3) + \5 - dw OverworldMap + \4 + 3 - db \6 - db \2_WIDTH - db \2_HEIGHT * 2 - 1 - db (\4 - \5) * -2 - dw OverworldMap + \2_HEIGHT * (\2_WIDTH + 6) + 1 -endc - -if "\1" == "south" -;\2: map id -;\3: map label (eventually will be rolled into map id) -;\4: x -;\5: offset? -;\6: strip length -;\7: this map id - map \2 - dw \3_BlockData + \5 - dw OverworldMap + (\7_HEIGHT + 3) * (\7_WIDTH + 6) + \4 + 3 - db \6 - db \2_WIDTH - db 0 - db (\4 - \5) * -2 - dw OverworldMap + \2_WIDTH + 7 -endc - -if "\1" == "west" -;\2: map id -;\3: map label (eventually will be rolled into map id) -;\4: y -;\5: offset? -;\6: strip length -;\7: this map id - map \2 - dw \3_BlockData + (\2_WIDTH * \5) + \2_WIDTH - 3 - dw OverworldMap + (\7_WIDTH + 6) * (\4 + 3) - db \6 - db \2_WIDTH - db (\4 - \5) * -2 - db \2_WIDTH * 2 - 1 - dw OverworldMap + \2_WIDTH * 2 + 6 -endc - -if "\1" == "east" -;\2: map id -;\3: map label (eventually will be rolled into map id) -;\4: y -;\5: offset? -;\6: strip length -;\7: this map id - map \2 - dw \3_BlockData + (\2_WIDTH * \5) - dw OverworldMap + (\7_WIDTH + 6) * (\4 + 3 + 1) - 3 - db \6 - db \2_WIDTH - db (\4 - \5) * -2 - db 0 - dw OverworldMap + \2_WIDTH + 7 -endc - -ENDM - -mapgroup: MACRO -GROUP_\1 EQU const_value - enum MAP_\1 -\1_HEIGHT EQU \2 -\1_WIDTH EQU \3 -ENDM - -newgroup: MACRO -const_value = const_value + 1 - enum_start 1 -ENDM - -elevfloor: MACRO - db \1, \2 - map \3 -ENDM - -itemball: MACRO -if _NARG == 2 - db \1, \2 -else - db \1, 1 -endc -endm - -stonetable: MACRO - db \1, \2 - dw \3 -endm - -maptrigger: MACRO - dw \1, 0 -endm diff --git a/macros/scripts/events.asm b/macros/scripts/events.asm new file mode 100644 index 00000000..4740fd8a --- /dev/null +++ b/macros/scripts/events.asm @@ -0,0 +1,1054 @@ +; ScriptCommandTable indexes (see engine/overworld/scripting.asm) + enum_start + + enum scall_command ; $00 +scall: MACRO + db scall_command + dw \1 ; pointer +ENDM + + enum farscall_command ; $01 +farscall: MACRO + db farscall_command + dba \1 +ENDM + + enum ptcall_command ; $02 +ptcall: MACRO + db ptcall_command + dw \1 ; pointer +ENDM + + enum jump_command ; $03 +jump: MACRO + db jump_command + dw \1 ; pointer +ENDM + + enum farjump_command ; $04 +farjump: MACRO + db farjump_command + dba \1 +ENDM + + enum ptjump_command ; $05 +ptjump: MACRO + db ptjump_command + dw \1 ; pointer +ENDM + + enum ifequal_command ; $06 +ifequal: MACRO + db ifequal_command + db \1 ; byte + dw \2 ; pointer +ENDM + + enum ifnotequal_command ; $07 +ifnotequal: MACRO + db ifnotequal_command + db \1 ; byte + dw \2 ; pointer +ENDM + + enum iffalse_command ; $08 +iffalse: MACRO + db iffalse_command + dw \1 ; pointer +ENDM + + enum iftrue_command ; $09 +iftrue: MACRO + db iftrue_command + dw \1 ; pointer +ENDM + + enum ifgreater_command ; $0a +ifgreater: MACRO + db ifgreater_command + db \1 ; byte + dw \2 ; pointer +ENDM + + enum ifless_command ; $0b +ifless: MACRO + db ifless_command + db \1 ; byte + dw \2 ; pointer +ENDM + + enum jumpstd_command ; $0c +jumpstd: MACRO + db jumpstd_command + dw \1 ; predefined_script +ENDM + + enum callstd_command ; $0d +callstd: MACRO + db callstd_command + dw \1 ; predefined_script +ENDM + + enum callasm_command ; $0e +callasm: MACRO + db callasm_command + dba \1 +ENDM + + enum special_command ; $0f +special: MACRO + db special_command + dw (\1Special - SpecialsPointers) / 3 +ENDM + + enum ptcallasm_command ; $10 +ptcallasm: MACRO + db ptcallasm_command + dw \1 ; asm +ENDM + + enum checkmapscene_command ; $11 +checkmapscene: MACRO + db checkmapscene_command + map_id \1 ; map +ENDM + + enum setmapscene_command ; $12 +setmapscene: MACRO + db setmapscene_command + map_id \1 ; map + db \2 ; scene_id +ENDM + + enum checkscene_command ; $13 +checkscene: MACRO + db checkscene_command +ENDM + + enum setscene_command ; $14 +setscene: MACRO + db setscene_command + db \1 ; scene_id +ENDM + + enum writebyte_command ; $15 +writebyte: MACRO + db writebyte_command + db \1 ; value +ENDM + + enum addvar_command ; $16 +addvar: MACRO + db addvar_command + db \1 ; value +ENDM + + enum random_command ; $17 +random: MACRO + db random_command + db \1 ; input +ENDM + + enum checkver_command ; $18 +checkver: MACRO + db checkver_command +ENDM + + enum copybytetovar_command ; $19 +copybytetovar: MACRO + db copybytetovar_command + dw \1 ; address +ENDM + + enum copyvartobyte_command ; $1a +copyvartobyte: MACRO + db copyvartobyte_command + dw \1 ; address +ENDM + + enum loadvar_command ; $1b +loadvar: MACRO + db loadvar_command + dw \1 ; address + db \2 ; value +ENDM + + enum checkcode_command ; $1c +checkcode: MACRO + db checkcode_command + db \1 ; variable_id +ENDM + + enum writevarcode_command ; $1d +writevarcode: MACRO + db writevarcode_command + db \1 ; variable_id +ENDM + + enum writecode_command ; $1e +writecode: MACRO + db writecode_command + db \1 ; variable_id + db \2 ; value +ENDM + + enum giveitem_command ; $1f +giveitem: MACRO +if _NARG == 1 + giveitem \1, 1 +else + db giveitem_command + db \1 ; item + db \2 ; quantity +endc +ENDM + + enum takeitem_command ; $20 +takeitem: MACRO +if _NARG == 1 + takeitem \1, 1 +else + db takeitem_command + db \1 ; item + db \2 ; quantity +endc +ENDM + + enum checkitem_command ; $21 +checkitem: MACRO + db checkitem_command + db \1 ; item +ENDM + + enum givemoney_command ; $22 +givemoney: MACRO + db givemoney_command + db \1 ; account + dt \2 ; money +ENDM + + enum takemoney_command ; $23 +takemoney: MACRO + db takemoney_command + db \1 ; account + dt \2 ; money +ENDM + + enum checkmoney_command ; $24 +checkmoney: MACRO + db checkmoney_command + db \1 ; account + dt \2 ; money +ENDM + + enum givecoins_command ; $25 +givecoins: MACRO + db givecoins_command + dw \1 ; coins +ENDM + + enum takecoins_command ; $26 +takecoins: MACRO + db takecoins_command + dw \1 ; coins +ENDM + + enum checkcoins_command ; $27 +checkcoins: MACRO + db checkcoins_command + dw \1 ; coins +ENDM + + enum addcellnum_command ; $28 +addcellnum: MACRO + db addcellnum_command + db \1 ; person +ENDM + + enum delcellnum_command ; $29 +delcellnum: MACRO + db delcellnum_command + db \1 ; person +ENDM + + enum checkcellnum_command ; $2a +checkcellnum: MACRO + db checkcellnum_command + db \1 ; person +ENDM + + enum checktime_command ; $2b +checktime: MACRO + db checktime_command + db \1 ; time +ENDM + + enum checkpoke_command ; $2c +checkpoke: MACRO + db checkpoke_command + db \1 ; pkmn +ENDM + + enum givepoke_command ; $2d +givepoke: MACRO +if _NARG == 2 + givepoke \1, \2, NO_ITEM, FALSE +elif _NARG == 3 + givepoke \1, \2, \3, FALSE +else + db givepoke_command + db \1 ; pokemon + db \2 ; level + db \3 ; item + db \4 ; trainer +if \4 + dw \5 ; trainer_name_pointer + dw \6 ; pkmn_nickname +endc +endc +ENDM + + enum giveegg_command ; $2e +giveegg: MACRO + db giveegg_command + db \1 ; pkmn + db \2 ; level +ENDM + + enum givepokemail_command ; $2f +givepokemail: MACRO + db givepokemail_command + dw \1 ; pointer +ENDM + + enum checkpokemail_command ; $30 +checkpokemail: MACRO + db checkpokemail_command + dw \1 ; pointer +ENDM + + enum checkevent_command ; $31 +checkevent: MACRO + db checkevent_command + dw \1 ; event_flag +ENDM + + enum clearevent_command ; $32 +clearevent: MACRO + db clearevent_command + dw \1 ; event_flag +ENDM + + enum setevent_command ; $33 +setevent: MACRO + db setevent_command + dw \1 ; event_flag +ENDM + + enum checkflag_command ; $34 +checkflag: MACRO + db checkflag_command + dw \1 ; engine_flag +ENDM + + enum clearflag_command ; $35 +clearflag: MACRO + db clearflag_command + dw \1 ; engine_flag +ENDM + + enum setflag_command ; $36 +setflag: MACRO + db setflag_command + dw \1 ; engine_flag +ENDM + + enum wildon_command ; $37 +wildon: MACRO + db wildon_command +ENDM + + enum wildoff_command ; $38 +wildoff: MACRO + db wildoff_command +ENDM + + enum xycompare_command ; $39 +xycompare: MACRO + db xycompare_command + dw \1 ; pointer +ENDM + + enum warpmod_command ; $3a +warpmod: MACRO + db warpmod_command + db \1 ; warp_id + map_id \2 ; map +ENDM + + enum blackoutmod_command ; $3b +blackoutmod: MACRO + db blackoutmod_command + map_id \1 ; map +ENDM + + enum warp_command ; $3c +warp: MACRO + db warp_command + map_id \1 ; map + db \2 ; x + db \3 ; y +ENDM + + enum readmoney_command ; $3d +readmoney: MACRO + db readmoney_command + db \1 ; account + db \2 ; memory +ENDM + + enum readcoins_command ; $3e +readcoins: MACRO + db readcoins_command + db \1 ; memory +ENDM + + enum vartomem_command ; $3f +vartomem: MACRO + db vartomem_command + db \1 ; memory +ENDM + + enum pokenamemem_command ; $40 +pokenamemem: MACRO + db pokenamemem_command + db \1 ; pokemon + db \2 ; memory +ENDM + + enum itemtotext_command ; $41 +itemtotext: MACRO + db itemtotext_command + db \1 ; item + db \2 ; memory +ENDM + + enum mapnametotext_command ; $42 +mapnametotext: MACRO + db mapnametotext_command + db \1 ; memory +ENDM + + enum trainertotext_command ; $43 +trainertotext: MACRO + db trainertotext_command + db \1 ; trainer_id + db \2 ; trainer_group + db \3 ; memory +ENDM + + enum stringtotext_command ; $44 +stringtotext: MACRO + db stringtotext_command + dw \1 ; text_pointer + db \2 ; memory +ENDM + + enum itemnotify_command ; $45 +itemnotify: MACRO + db itemnotify_command +ENDM + + enum pocketisfull_command ; $46 +pocketisfull: MACRO + db pocketisfull_command +ENDM + + enum opentext_command ; $47 +opentext: MACRO + db opentext_command +ENDM + + enum refreshscreen_command ; $48 +refreshscreen: MACRO +if _NARG == 0 + refreshscreen 0 +else + db refreshscreen_command + db \1 ; dummy +endc +ENDM + + enum closetext_command ; $49 +closetext: MACRO + db closetext_command +ENDM + + enum loadbytec2cf_command ; $4a +loadbytec2cf: MACRO + db loadbytec2cf_command + db \1 ; byte +ENDM + + enum farwritetext_command ; $4b +farwritetext: MACRO + db farwritetext_command + dba \1 +ENDM + + enum writetext_command ; $4c +writetext: MACRO + db writetext_command + dw \1 ; text_pointer +ENDM + + enum repeattext_command ; $4d +repeattext: MACRO + db repeattext_command + db \1 ; byte + db \2 ; byte +ENDM + + enum yesorno_command ; $4e +yesorno: MACRO + db yesorno_command +ENDM + + enum loadmenu_command ; $4f +loadmenu: MACRO + db loadmenu_command + dw \1 ; menu_header +ENDM + + enum closewindow_command ; $50 +closewindow: MACRO + db closewindow_command +ENDM + + enum jumptextfaceplayer_command ; $51 +jumptextfaceplayer: MACRO + db jumptextfaceplayer_command + dw \1 ; text_pointer +ENDM + + enum jumptext_command ; $53 +jumptext: MACRO + db jumptext_command + dw \1 ; text_pointer +ENDM + + enum waitbutton_command ; $54 +waitbutton: MACRO + db waitbutton_command +ENDM + + enum buttonsound_command ; $55 +buttonsound: MACRO + db buttonsound_command +ENDM + + enum pokepic_command ; $56 +pokepic: MACRO + db pokepic_command + db \1 ; pokemon +ENDM + + enum closepokepic_command ; $57 +closepokepic: MACRO + db closepokepic_command +ENDM + + enum _2dmenu_command ; $58 +_2dmenu: MACRO + db _2dmenu_command +ENDM + + enum verticalmenu_command ; $59 +verticalmenu: MACRO + db verticalmenu_command +ENDM + + enum loadpikachudata_command ; $5a +loadpikachudata: MACRO + db loadpikachudata_command +ENDM + + enum randomwildmon_command ; $5b +randomwildmon: MACRO + db randomwildmon_command +ENDM + + enum loadmemtrainer_command ; $5c +loadmemtrainer: MACRO + db loadmemtrainer_command +ENDM + + enum loadwildmon_command ; $5d +loadwildmon: MACRO + db loadwildmon_command + db \1 ; pokemon + db \2 ; level +ENDM + + enum loadtrainer_command ; $5e +loadtrainer: MACRO + db loadtrainer_command + db \1 ; trainer_group + db \2 ; trainer_id +ENDM + + enum startbattle_command ; $5f +startbattle: MACRO + db startbattle_command +ENDM + + enum reloadmapafterbattle_command ; $60 +reloadmapafterbattle: MACRO + db reloadmapafterbattle_command +ENDM + + enum catchtutorial_command ; $61 +catchtutorial: MACRO + db catchtutorial_command + db \1 ; byte +ENDM + + enum trainertext_command ; $62 +trainertext: MACRO + db trainertext_command + db \1 ; which_text +ENDM + + enum trainerflagaction_command ; $63 +trainerflagaction: MACRO + db trainerflagaction_command + db \1 ; action +ENDM + + enum winlosstext_command ; $64 +winlosstext: MACRO + db winlosstext_command + dw \1 ; win_text_pointer + dw \2 ; loss_text_pointer +ENDM + + enum scripttalkafter_command ; $65 +scripttalkafter: MACRO + db scripttalkafter_command +ENDM + + enum endifjustbattled_command ; $66 +endifjustbattled: MACRO + db endifjustbattled_command +ENDM + + enum checkjustbattled_command ; $67 +checkjustbattled: MACRO + db checkjustbattled_command +ENDM + + enum setlasttalked_command ; $68 +setlasttalked: MACRO + db setlasttalked_command + db \1 ; object id +ENDM + + enum applymovement_command ; $69 +applymovement: MACRO + db applymovement_command + db \1 ; object id + dw \2 ; data +ENDM + + enum applymovement2_command ; $6a +applymovement2: MACRO + db applymovement2_command + dw \1 ; data +ENDM + + enum faceplayer_command ; $6b +faceplayer: MACRO + db faceplayer_command +ENDM + + enum faceobject_command ; $6c +faceobject: MACRO + db faceobject_command + db \1 ; object1 + db \2 ; object2 +ENDM + + enum variablesprite_command ; $6d +variablesprite: MACRO + db variablesprite_command + db \1 - SPRITE_VARS ; byte + db \2 ; sprite +ENDM + + enum disappear_command ; $6e +disappear: MACRO + db disappear_command + db \1 ; object id +ENDM + + enum appear_command ; $6f +appear: MACRO + db appear_command + db \1 ; object id +ENDM + + enum follow_command ; $70 +follow: MACRO + db follow_command + db \1 ; object2 + db \2 ; object1 +ENDM + + enum stopfollow_command ; $71 +stopfollow: MACRO + db stopfollow_command +ENDM + + enum moveobject_command ; $72 +moveobject: MACRO + db moveobject_command + db \1 ; object id + db \2 ; x + db \3 ; y +ENDM + + enum writeobjectxy_command ; $73 +writeobjectxy: MACRO + db writeobjectxy_command + db \1 ; object id +ENDM + + enum loademote_command ; $74 +loademote: MACRO + db loademote_command + db \1 ; bubble +ENDM + + enum showemote_command ; $75 +showemote: MACRO + db showemote_command + db \1 ; bubble + db \2 ; object id + db \3 ; time +ENDM + + enum turnobject_command ; $76 +turnobject: MACRO + db turnobject_command + db \1 ; object id + db \2 ; facing +ENDM + + enum follownotexact_command ; $77 +follownotexact: MACRO + db follownotexact_command + db \1 ; object2 + db \2 ; object1 +ENDM + + enum earthquake_command ; $78 +earthquake: MACRO + db earthquake_command + db \1 ; param +ENDM + + enum changemap_command ; $79 +changemap: MACRO + db changemap_command + db \1 ; map_bank + dw \2 ; map_data_pointer +ENDM + + enum changeblock_command ; $7a +changeblock: MACRO + db changeblock_command + db \1 ; x + db \2 ; y + db \3 ; block +ENDM + + enum reloadmap_command ; $7b +reloadmap: MACRO + db reloadmap_command +ENDM + + enum reloadmappart_command ; $7c +reloadmappart: MACRO + db reloadmappart_command +ENDM + + enum writecmdqueue_command ; $7d +writecmdqueue: MACRO + db writecmdqueue_command + dw \1 ; queue_pointer +ENDM + + enum delcmdqueue_command ; $7e +delcmdqueue: MACRO + db delcmdqueue_command + db \1 ; byte +ENDM + + enum playmusic_command ; $7f +playmusic: MACRO + db playmusic_command + dw \1 ; music_pointer +ENDM + + enum encountermusic_command ; $80 +encountermusic: MACRO + db encountermusic_command +ENDM + + enum musicfadeout_command ; $81 +musicfadeout: MACRO + db musicfadeout_command + dw \1 ; music + db \2 ; fadetime +ENDM + + enum playmapmusic_command ; $82 +playmapmusic: MACRO + db playmapmusic_command +ENDM + + enum dontrestartmapmusic_command ; $83 +dontrestartmapmusic: MACRO + db dontrestartmapmusic_command +ENDM + + enum cry_command ; $84 +cry: MACRO + db cry_command + dw \1 ; cry_id +ENDM + + enum playsound_command ; $85 +playsound: MACRO + db playsound_command + dw \1 ; sound_pointer +ENDM + + enum waitsfx_command ; $86 +waitsfx: MACRO + db waitsfx_command +ENDM + + enum warpsound_command ; $87 +warpsound: MACRO + db warpsound_command +ENDM + + enum specialsound_command ; $88 +specialsound: MACRO + db specialsound_command +ENDM + + enum passtoengine_command ; $89 +passtoengine: MACRO + db passtoengine_command + db \1 ; data_pointer +ENDM + + enum newloadmap_command ; $8a +newloadmap: MACRO + db newloadmap_command + db \1 ; which_method +ENDM + + enum pause_command ; $8b +pause: MACRO + db pause_command + db \1 ; length +ENDM + + enum deactivatefacing_command ; $8c +deactivatefacing: MACRO + db deactivatefacing_command + db \1 ; time +ENDM + + enum priorityjump_command ; $8d +priorityjump: MACRO + db priorityjump_command + dw \1 ; pointer +ENDM + + enum warpcheck_command ; $8e +warpcheck: MACRO + db warpcheck_command +ENDM + + enum ptpriorityjump_command ; $8f +ptpriorityjump: MACRO + db ptpriorityjump_command + dw \1 ; pointer +ENDM + + enum return_command ; $90 +return: MACRO + db return_command +ENDM + + enum end_command ; $91 +end: MACRO + db end_command +ENDM + + enum reloadandreturn_command ; $92 +reloadandreturn: MACRO + db reloadandreturn_command + db \1 ; which_method +ENDM + + enum endall_command ; $93 +endall: MACRO + db endall_command +ENDM + + enum pokemart_command ; $94 +pokemart: MACRO + db pokemart_command + db \1 ; dialog_id + dw \2 ; mart_id +ENDM + + enum elevator_command ; $95 +elevator: MACRO + db elevator_command + dw \1 ; floor_list_pointer +ENDM + + enum trade_command ; $96 +trade: MACRO + db trade_command + db \1 ; trade_id +ENDM + + enum askforphonenumber_command ; $97 +askforphonenumber: MACRO + db askforphonenumber_command + db \1 ; number +ENDM + + enum phonecall_command ; $98 +phonecall: MACRO + db phonecall_command + dw \1 ; caller_name +ENDM + + enum hangup_command ; $99 +hangup: MACRO + db hangup_command +ENDM + + enum describedecoration_command ; $9a +describedecoration: MACRO + db describedecoration_command + db \1 ; byte +ENDM + + enum fruittree_command ; $9b +fruittree: MACRO + db fruittree_command + db \1 ; tree_id +ENDM + + enum specialphonecall_command ; $9c +specialphonecall: MACRO + db specialphonecall_command + dw \1 ; call_id +ENDM + + enum checkphonecall_command ; $9d +checkphonecall: MACRO + db checkphonecall_command +ENDM + + enum verbosegiveitem_command ; $9e +verbosegiveitem: MACRO +if _NARG == 1 + verbosegiveitem \1, 1 +else + db verbosegiveitem_command + db \1 ; item + db \2 ; quantity +endc +ENDM + + enum verbosegiveitem2_command ; $9f +verbosegiveitem2: MACRO + db verbosegiveitem2_command + db \1 ; item + db \2 ; var +ENDM + + enum swarm_command ; $a0 +swarm: MACRO + db swarm_command + db \1 ; flag + map_id \2 ; map +ENDM + + enum halloffame_command ; $a1 +halloffame: MACRO + db halloffame_command +ENDM + + enum credits_command ; $a2 +credits: MACRO + db credits_command +ENDM + + enum warpfacing_command ; $a3 +warpfacing: MACRO + db warpfacing_command + db \1 ; facing + map_id \2 ; map + db \3 ; x + db \4 ; y +ENDM + + enum battletowertext_command ; $a4 +battletowertext: MACRO + db battletowertext_command + db \1 ; memory +ENDM + + enum landmarktotext_command ; $a5 +landmarktotext: MACRO + db landmarktotext_command + db \1 ; id + db \2 ; memory +ENDM + + enum trainerclassname_command ; $a6 +trainerclassname: MACRO + db trainerclassname_command + db \1 ; id + db \2 ; memory +ENDM + + enum name_command ; $a7 +name: MACRO + db name_command + db \1 ; type + db \2 ; id + db \3 ; memory +ENDM + + enum wait_command ; $a8 +wait: MACRO + db wait_command + db \1 ; duration +ENDM + + enum checksave_command ; $a9 +checksave: MACRO + db checksave_command +ENDM diff --git a/macros/scripts/maps.asm b/macros/scripts/maps.asm new file mode 100644 index 00000000..7f5947a5 --- /dev/null +++ b/macros/scripts/maps.asm @@ -0,0 +1,132 @@ +map_id: MACRO +;\1: map id + db GROUP_\1, MAP_\1 +ENDM + +scene_script: MACRO +;\1: script pointer + dw \1 + dw 0 ; filler +ENDM + +callback: MACRO +;\1: type: a MAPCALLBACK_* constant +;\2: script pointer + dbw \1, \2 +ENDM + +warp_event: MACRO +;\1: x: left to right, starts at 0 +;\2: y: top to bottom, starts at 0 +;\3: map id: from constants/map_constants.asm +;\4: warp destination: starts at 1 + db \2, \1, \4 + map_id \3 +ENDM + +coord_event: MACRO +;\1: x: left to right, starts at 0 +;\2: y: top to bottom, starts at 0 +;\3: scene id: a SCENE_* constant; controlled by setscene/setmapscene +;\4: script pointer + db \3, \2, \1 + db 0 ; filler + dw \4 + db 0, 0 ; filler +ENDM + +bg_event: MACRO +;\1: x: left to right, starts at 0 +;\2: y: top to bottom, starts at 0 +;\3: function: a BGEVENT_* constant +;\4: script pointer + db \2, \1, \3 + dw \4 +ENDM + +object_event: MACRO +;\1: x: left to right, starts at 0 +;\2: y: top to bottom, starts at 0 +;\3: sprite: a SPRITE_* constant +;\4: movement function: a SPRITEMOVEDATA_* constant +;\5, \6: movement radius: x, y +;\7, \8: hour limits: h1, h2 (0-23) +; * if h1 < h2, the object_event will only appear from h1 to h2 +; * if h1 > h2, the object_event will not appear from h2 to h1 +; * if h1 == h2, the object_event will always appear +; * if h1 == -1, h2 is treated as a time-of-day value: +; a combo of MORN, DAY, and/or NITE, or -1 to always appear +;\9: color: a PAL_NPC_* constant, or 0 for sprite default +;\10: function: a OBJECTTYPE_* constant +;\11: sight range: applies to OBJECTTYPE_TRAINER +;\12: script pointer +;\13: event flag: an EVENT_* constant, or -1 to always appear + db \3, \2 + 4, \1 + 4, \4 + dn \6, \5 + db \7, \8 + shift + dn \8, \9 + shift + db \9 + shift + dw \9 + shift + dw \9 +ENDM + +trainer: MACRO +;\1: trainer group +;\2: trainer id +;\3: flag: an EVENT_BEAT_* constant +;\4: seen text +;\5: win text +;\6: loss text +;\7: after-battle text + dw \3 + db \1, \2 + dw \4, \5, \6, \7 +ENDM + +itemball: MACRO +;\1: item: from constants/item_constants.asm +;\2: quantity: default 1 +if _NARG == 1 + itemball \1, 1 +else + db \1, \2 +endc +ENDM + +hiddenitem: MACRO +;\1: item: from constants/item_constants.asm +;\2: flag: an EVENT_* constant + dwb \2, \1 +ENDM + +elevfloor: MACRO +;\1: floor: a FLOOR_* constant +;\2: warp destination: starts at 1 +;\3: map id + db \1, \2 + map_id \3 +ENDM + +conditional_event: MACRO +;\1: flag: an EVENT_* constant +;\2: script pointer + dw \1, \2 +ENDM + +cmdqueue: MACRO +;\1: type: a CMDQUEUE_* constant +;\2: data pointer + dbw \1, \2 + dw 0 ; filler +ENDM + +stonetable: MACRO +;\1: warp id +;\2: object_event id +;\3: script pointer + dbbw \1, \2, \3 +ENDM diff --git a/macros/trainer.asm b/macros/trainer.asm deleted file mode 100644 index 0fec28dc..00000000 --- a/macros/trainer.asm +++ /dev/null @@ -1,6 +0,0 @@ -trainer: MACRO - ; flag, group, id, seen text, win text, lost text, talk-again text - dw \1 - db \2, \3 - dw \4, \5, \6, \7 -ENDM diff --git a/macros/wram.asm b/macros/wram.asm index 97df2415..4da9654e 100755 --- a/macros/wram.asm +++ b/macros/wram.asm @@ -109,7 +109,7 @@ box: MACRO \1Mon1:: box_struct \1Mon1 \1Mon2:: ds BOXMON_STRUCT_LENGTH * (MONS_PER_BOX +- 1) \1MonOT:: ds NAME_LENGTH * MONS_PER_BOX -\1MonNicknames:: ds PKMN_NAME_LENGTH * MONS_PER_BOX +\1MonNicknames:: ds MON_NAME_LENGTH * MONS_PER_BOX \1MonNicknamesEnd:: \1End:: ds 2 ; padding ENDM @@ -178,7 +178,7 @@ hof_mon: MACRO \1ID:: ds 2 \1DVs:: ds 2 \1Level:: ds 1 -\1Nickname:: ds PKMN_NAME_LENGTH +- 1 +\1Nickname:: ds MON_NAME_LENGTH +- 1 \1End:: endm @@ -211,8 +211,8 @@ ENDM trademon: MACRO \1Species:: ds 1 ; wc6d0 | wc702 -\1SpeciesName:: ds PKMN_NAME_LENGTH ; wc6d1 | wc703 -\1Nickname:: ds PKMN_NAME_LENGTH ; wc6dc | wc70e +\1SpeciesName:: ds MON_NAME_LENGTH ; wc6d1 | wc703 +\1Nickname:: ds MON_NAME_LENGTH ; wc6dc | wc70e \1SenderName:: ds NAME_LENGTH ; wc6e7 | wc719 \1OTName:: ds NAME_LENGTH ; wc6f2 | wc724 \1DVs:: ds 2 ; wc6fd | wc72f @@ -150,7 +150,7 @@ INCLUDE "engine/learn.asm" CheckNickErrors:: ; 677e (1:677e) push bc push de - ld b, PKMN_NAME_LENGTH + ld b, MON_NAME_LENGTH .checkchar ld a, [de] cp "@" @@ -317,7 +317,7 @@ ScrollBGMapPalettes:: ; 804f (2:404f) INCLUDE "tilesets/palette_maps.asm" Unknown85d7: - rept NUM_MAP_GROUPS + rept 26 ; NUM_MAP_GROUPS db PAL_BG_ROOF endr @@ -1597,8 +1597,8 @@ wcae7:: ds 1 ; cae7 wEnemyMoveStruct:: move_struct wEnemyMoveStruct wPlayerMoveStruct:: move_struct wPlayerMoveStruct -wEnemyMonNick:: ds PKMN_NAME_LENGTH ; caf6 -wBattleMonNick:: ds PKMN_NAME_LENGTH ; cb01 +wEnemyMonNick:: ds MON_NAME_LENGTH ; caf6 +wBattleMonNick:: ds MON_NAME_LENGTH ; cb01 wBattleMon:: battle_struct wBattleMon ; cb0c @@ -3687,12 +3687,12 @@ wPartyMon5OT:: ds NAME_LENGTH ; db76 wPartyMon6OT:: ds NAME_LENGTH ; db81 wPartyMonNicknames:: -wPartyMon1Nickname:: ds PKMN_NAME_LENGTH ; db8c -wPartyMon2Nickname:: ds PKMN_NAME_LENGTH ; db97 -wPartyMon3Nickname:: ds PKMN_NAME_LENGTH ; dba2 -wPartyMon4Nickname:: ds PKMN_NAME_LENGTH ; dbad -wPartyMon5Nickname:: ds PKMN_NAME_LENGTH ; dbb8 -wPartyMon6Nickname:: ds PKMN_NAME_LENGTH ; dbc3 +wPartyMon1Nickname:: ds MON_NAME_LENGTH ; db8c +wPartyMon2Nickname:: ds MON_NAME_LENGTH ; db97 +wPartyMon3Nickname:: ds MON_NAME_LENGTH ; dba2 +wPartyMon4Nickname:: ds MON_NAME_LENGTH ; dbad +wPartyMon5Nickname:: ds MON_NAME_LENGTH ; dbb8 +wPartyMon6Nickname:: ds MON_NAME_LENGTH ; dbc3 wdbce:: ds 1 ; dbce wdbcf:: ds 1 ; dbcf @@ -3942,12 +3942,12 @@ wOTPartyMon5OT:: ds NAME_LENGTH ; dea9 wOTPartyMon6OT:: ds NAME_LENGTH ; deb4 wOTPartyMonNicknames:: -wOTPartyMon1Nickname:: ds PKMN_NAME_LENGTH ; debf -wOTPartyMon2Nickname:: ds PKMN_NAME_LENGTH ; deca -wOTPartyMon3Nickname:: ds PKMN_NAME_LENGTH ; ded5 -wOTPartyMon4Nickname:: ds PKMN_NAME_LENGTH ; dee0 -wOTPartyMon5Nickname:: ds PKMN_NAME_LENGTH ; deeb -wOTPartyMon6Nickname:: ds PKMN_NAME_LENGTH ; def6 +wOTPartyMon1Nickname:: ds MON_NAME_LENGTH ; debf +wOTPartyMon2Nickname:: ds MON_NAME_LENGTH ; deca +wOTPartyMon3Nickname:: ds MON_NAME_LENGTH ; ded5 +wOTPartyMon4Nickname:: ds MON_NAME_LENGTH ; dee0 +wOTPartyMon5Nickname:: ds MON_NAME_LENGTH ; deeb +wOTPartyMon6Nickname:: ds MON_NAME_LENGTH ; def6 ENDU wGameDataEnd:: |