summaryrefslogtreecommitdiff
path: root/constants
diff options
context:
space:
mode:
Diffstat (limited to 'constants')
-rw-r--r--constants/battle_anim_constants.asm186
-rw-r--r--constants/battle_constants.asm15
-rwxr-xr-xconstants/battle_tower_constants.asm32
-rwxr-xr-xconstants/cgb_constants.asm36
-rw-r--r--constants/collision_constants.asm36
-rw-r--r--constants/gfx_constants.asm24
-rw-r--r--constants/hardware_constants.asm2
-rw-r--r--constants/item_constants.asm530
-rw-r--r--constants/item_data_constants.asm38
-rw-r--r--constants/landmark_constants.asm11
-rw-r--r--constants/map_constants.asm783
-rw-r--r--constants/map_data_constants.asm265
-rw-r--r--constants/menu_constants.asm33
-rw-r--r--constants/misc_constants.asm12
-rw-r--r--constants/music_constants.asm8
-rw-r--r--constants/npctrade_constants.asm22
-rw-r--r--constants/phone_constants.asm4
-rw-r--r--constants/pokemon_constants.asm5
-rw-r--r--constants/pokemon_data_constants.asm100
-rw-r--r--constants/radio_constants.asm214
-rwxr-xr-xconstants/scgb_constants.asm150
-rw-r--r--constants/script_constants.asm219
-rw-r--r--constants/serial_constants.asm20
-rw-r--r--constants/sfx_constants.asm2
-rw-r--r--constants/sprite_anim_constants.asm570
-rw-r--r--constants/sprite_constants.asm4
-rw-r--r--constants/sprite_data_constants.asm7
-rw-r--r--constants/text_constants.asm33
-rw-r--r--constants/tileset_constants.asm29
-rw-r--r--constants/trainer_constants.asm22
-rw-r--r--constants/type_constants.asm10
-rw-r--r--constants/wram_constants.asm8
32 files changed, 1951 insertions, 1479 deletions
diff --git a/constants/battle_anim_constants.asm b/constants/battle_anim_constants.asm
index d49aafec4..c55d4e9d6 100644
--- a/constants/battle_anim_constants.asm
+++ b/constants/battle_anim_constants.asm
@@ -37,13 +37,13 @@ BATTLEANIMSTRUCT_LENGTH EQU const_value
const ANIM_OBJ_06
const ANIM_OBJ_07
const ANIM_OBJ_08
- const ANIM_OBJ_09
+ const ANIM_OBJ_FANG
const ANIM_OBJ_0A
- const ANIM_OBJ_0B
- const ANIM_OBJ_0C
- const ANIM_OBJ_0D
- const ANIM_OBJ_0E
- const ANIM_OBJ_0F
+ const ANIM_OBJ_EMBER
+ const ANIM_OBJ_DRAGON_RAGE
+ const ANIM_OBJ_FLAMETHROWER
+ const ANIM_OBJ_FIRE_SPIN
+ const ANIM_OBJ_FIRE_BLAST
const ANIM_OBJ_BURNED
const ANIM_OBJ_BLIZZARD
const ANIM_OBJ_12
@@ -57,32 +57,32 @@ BATTLEANIMSTRUCT_LENGTH EQU const_value
const ANIM_OBJ_1A
const ANIM_OBJ_1B
const ANIM_OBJ_BALL_POOF
- const ANIM_OBJ_1D
- const ANIM_OBJ_1E
- const ANIM_OBJ_1F
- const ANIM_OBJ_20
+ const ANIM_OBJ_BIG_ROCK
+ const ANIM_OBJ_SMALL_ROCK
+ const ANIM_OBJ_STRENGTH
+ const ANIM_OBJ_SEISMIC_TOSS
const ANIM_OBJ_BUBBLE
- const ANIM_OBJ_22
- const ANIM_OBJ_23
- const ANIM_OBJ_24
- const ANIM_OBJ_25
- const ANIM_OBJ_26
+ const ANIM_OBJ_SURF
+ const ANIM_OBJ_SING
+ const ANIM_OBJ_WATER_GUN
+ const ANIM_OBJ_HYDRO_PUMP
+ const ANIM_OBJ_POWDER
const ANIM_OBJ_27
const ANIM_OBJ_28
const ANIM_OBJ_ICE_BUILDUP
const ANIM_OBJ_FROZEN
const ANIM_OBJ_MASTER_BALL_SPARKLE
- const ANIM_OBJ_2C
+ const ANIM_OBJ_RECOVER
const ANIM_OBJ_2D
const ANIM_OBJ_2E
const ANIM_OBJ_2F
- const ANIM_OBJ_30
+ const ANIM_OBJ_THUNDER_WAVE
const ANIM_OBJ_31
const ANIM_OBJ_LIGHTNING_BOLT
const ANIM_OBJ_33
const ANIM_OBJ_34
- const ANIM_OBJ_35
- const ANIM_OBJ_36
+ const ANIM_OBJ_CLAMP
+ const ANIM_OBJ_BITE
const ANIM_OBJ_37
const ANIM_OBJ_38
const ANIM_OBJ_39
@@ -95,127 +95,127 @@ BATTLEANIMSTRUCT_LENGTH EQU const_value
const ANIM_OBJ_40
const ANIM_OBJ_41
const ANIM_OBJ_42
- const ANIM_OBJ_43
+ const ANIM_OBJ_SONICBOOM_JP
const ANIM_OBJ_44
const ANIM_OBJ_ABSORB
- const ANIM_OBJ_46
+ const ANIM_OBJ_EGG
const ANIM_OBJ_47
const ANIM_OBJ_48
const ANIM_OBJ_49
const ANIM_OBJ_LEECH_SEED
const ANIM_OBJ_4B
- const ANIM_OBJ_4C
- const ANIM_OBJ_4D
+ const ANIM_OBJ_WAVE
+ const ANIM_OBJ_CONFUSE_RAY
const ANIM_OBJ_4E
const ANIM_OBJ_4F
- const ANIM_OBJ_50
- const ANIM_OBJ_51
+ const ANIM_OBJ_SCREEN
+ const ANIM_OBJ_HARDEN
const ANIM_OBJ_CHICK
- const ANIM_OBJ_53
- const ANIM_OBJ_54
+ const ANIM_OBJ_AMNESIA
+ const ANIM_OBJ_ASLEEP
const ANIM_OBJ_SKULL
const ANIM_OBJ_56
const ANIM_OBJ_57
const ANIM_OBJ_58
const ANIM_OBJ_PARALYZED
- const ANIM_OBJ_5A
+ const ANIM_OBJ_STRING_SHOT
const ANIM_OBJ_HAZE
const ANIM_OBJ_MIST
const ANIM_OBJ_SMOG
const ANIM_OBJ_POISON_GAS
const ANIM_OBJ_HORN
const ANIM_OBJ_60
- const ANIM_OBJ_61
- const ANIM_OBJ_62
- const ANIM_OBJ_63
+ const ANIM_OBJ_PETAL_DANCE
+ const ANIM_OBJ_SLUDGE_BOMB
+ const ANIM_OBJ_PAY_DAY
const ANIM_OBJ_64
- const ANIM_OBJ_65
- const ANIM_OBJ_66
- const ANIM_OBJ_67
- const ANIM_OBJ_68
- const ANIM_OBJ_69
- const ANIM_OBJ_6A
- const ANIM_OBJ_6B
- const ANIM_OBJ_6C
- const ANIM_OBJ_6D
- const ANIM_OBJ_SKY_ATTACK_FEAROW
+ const ANIM_OBJ_MIMIC
+ const ANIM_OBJ_ATTRACT
+ const ANIM_OBJ_BONEMERANG
+ const ANIM_OBJ_BONE_CLUB
+ const ANIM_OBJ_BONE_RUSH
+ const ANIM_OBJ_SWIFT
+ const ANIM_OBJ_KINESIS
+ const ANIM_OBJ_FLASH
+ const ANIM_OBJ_SHINY
+ const ANIM_OBJ_SKY_ATTACK
const ANIM_OBJ_LICK
const ANIM_OBJ_WITHDRAW
const ANIM_OBJ_71
- const ANIM_OBJ_72
- const ANIM_OBJ_73
- const ANIM_OBJ_74
- const ANIM_OBJ_75
- const ANIM_OBJ_76
- const ANIM_OBJ_77
- const ANIM_OBJ_78
- const ANIM_OBJ_79
+ const ANIM_OBJ_GROWTH
+ const ANIM_OBJ_CONVERSION2
+ const ANIM_OBJ_SMOKE
+ const ANIM_OBJ_SMOKESCREEN
+ const ANIM_OBJ_SWORDS_DANCE
+ const ANIM_OBJ_SPEED_LINE
+ const ANIM_OBJ_SHARPEN
+ const ANIM_OBJ_DEFENSE_CURL
const ANIM_OBJ_7A
const ANIM_OBJ_7B
- const ANIM_OBJ_7C
- const ANIM_OBJ_7D
+ const ANIM_OBJ_DISABLE
+ const ANIM_OBJ_AGILITY
const ANIM_OBJ_HEART
- const ANIM_OBJ_7F
- const ANIM_OBJ_80
+ const ANIM_OBJ_FLAME_WHEEL
+ const ANIM_OBJ_SACRED_FIRE
const ANIM_OBJ_COTTON_SPORE
- const ANIM_OBJ_82
- const ANIM_OBJ_83
+ const ANIM_OBJ_MILK_DRINK
+ const ANIM_OBJ_ANGER
const ANIM_OBJ_84
const ANIM_OBJ_85
- const ANIM_OBJ_86
- const ANIM_OBJ_87
- const ANIM_OBJ_88
- const ANIM_OBJ_89
- const ANIM_OBJ_8A
- const ANIM_OBJ_8B
- const ANIM_OBJ_8C
- const ANIM_OBJ_8D
+ const ANIM_OBJ_BATON_PASS
+ const ANIM_OBJ_LOCK_ON
+ const ANIM_OBJ_MIND_READER
+ const ANIM_OBJ_SAFEGUARD
+ const ANIM_OBJ_PROTECT
+ const ANIM_OBJ_THIEF
+ const ANIM_OBJ_OCTAZOOKA
+ const ANIM_OBJ_PRESENT
const ANIM_OBJ_SPIKES
- const ANIM_OBJ_8F
- const ANIM_OBJ_90
- const ANIM_OBJ_91
- const ANIM_OBJ_92
+ const ANIM_OBJ_POWDER_SNOW
+ const ANIM_OBJ_DRAGONBREATH
+ const ANIM_OBJ_CONVERSION
+ const ANIM_OBJ_SPIDER_WEB
const ANIM_OBJ_93
- const ANIM_OBJ_94
- const ANIM_OBJ_95
- const ANIM_OBJ_96
- const ANIM_OBJ_97
- const ANIM_OBJ_98
+ const ANIM_OBJ_NIGHTMARE
+ const ANIM_OBJ_IN_NIGHTMARE
+ const ANIM_OBJ_LOVELY_KISS
+ const ANIM_OBJ_SWEET_KISS
+ const ANIM_OBJ_SKETCH
const ANIM_OBJ_99
const ANIM_OBJ_9A
- const ANIM_OBJ_9B
- const ANIM_OBJ_9C
- const ANIM_OBJ_9D
- const ANIM_OBJ_9E
- const ANIM_OBJ_9F
+ const ANIM_OBJ_DESTINY_BOND
+ const ANIM_OBJ_MORNING_SUN
+ const ANIM_OBJ_GLIMMER
+ const ANIM_OBJ_MOONLIGHT
+ const ANIM_OBJ_HIDDEN_POWER
const ANIM_OBJ_A0
const ANIM_OBJ_A1
- const ANIM_OBJ_A2
- const ANIM_OBJ_A3
- const ANIM_OBJ_A4
- const ANIM_OBJ_A5
+ const ANIM_OBJ_SANDSTORM
+ const ANIM_OBJ_ZAP_CANNON
+ const ANIM_OBJ_SPITE
+ const ANIM_OBJ_CURSE
const ANIM_OBJ_PERISH_SONG
- const ANIM_OBJ_A7
- const ANIM_OBJ_A8
- const ANIM_OBJ_A9
+ const ANIM_OBJ_FORESIGHT
+ const ANIM_OBJ_RAPID_SPIN
+ const ANIM_OBJ_SWAGGER
const ANIM_OBJ_AA
const ANIM_OBJ_AB
- const ANIM_OBJ_AC
+ const ANIM_OBJ_MEAN_LOOK
const ANIM_OBJ_AD
const ANIM_OBJ_AE
- const ANIM_OBJ_AF
+ const ANIM_OBJ_RAIN
const ANIM_OBJ_B0
- const ANIM_OBJ_B1
- const ANIM_OBJ_B2
- const ANIM_OBJ_B3
- const ANIM_OBJ_B4
- const ANIM_OBJ_B5
+ const ANIM_OBJ_PSYCH_UP
+ const ANIM_OBJ_ANCIENTPOWER
+ const ANIM_OBJ_AEROBLAST
+ const ANIM_OBJ_SHADOW_BALL
+ const ANIM_OBJ_ROCK_SMASH
const ANIM_OBJ_FLOWER
const ANIM_OBJ_COTTON
const ANIM_OBJ_PLAYERFEETFOLLOW
const ANIM_OBJ_ENEMYFEETFOLLOW
- const ANIM_OBJ_BA
- const ANIM_OBJ_BB
+ const ANIM_OBJ_PLAYERHEADFOLLOW
+ const ANIM_OBJ_ENEMYHEADFOLLOW
; DoBattleAnimFrame arguments (see engine/battle_anims/functions.asm)
const_def
diff --git a/constants/battle_constants.asm b/constants/battle_constants.asm
index 9a3323509..816625e60 100644
--- a/constants/battle_constants.asm
+++ b/constants/battle_constants.asm
@@ -17,8 +17,18 @@ MIN_NEUTRAL_DAMAGE EQU 2
REST_SLEEP_TURNS EQU 2
TREEMON_SLEEP_TURNS EQU 7
-; PlayerStatLevels and EnemyStatLevels indexes
-; used for GetStatName
+; default move priority
+BASE_PRIORITY EQU 1
+
+; type effectiveness factors, scaled by 10
+SUPER_EFFECTIVE EQU 20
+MORE_EFFECTIVE EQU 15
+EFFECTIVE EQU 10
+NOT_VERY_EFFECTIVE EQU 05
+NO_EFFECT EQU 00
+
+; PlayerStatLevels and EnemyStatLevels indexes (see wram.asm)
+; GetStatName arguments (see data/battle/stat_names.asm)
const_def
const ATTACK
const DEFENSE
@@ -53,6 +63,7 @@ const_value set 1
const STAT_SATK
const STAT_SDEF
NUM_STATS EQU const_value
+STAT_SPC EQU STAT_SATK
; stat formula constants
STAT_MIN_NORMAL EQU 5
diff --git a/constants/battle_tower_constants.asm b/constants/battle_tower_constants.asm
index 74df3a36a..71b8de8be 100755
--- a/constants/battle_tower_constants.asm
+++ b/constants/battle_tower_constants.asm
@@ -1,4 +1,13 @@
-; BattleTowerAction arguments (see mobile/battle_tower_5c.asm)
+BATTLETOWER_PARTY_LENGTH EQU 3
+BATTLETOWER_STREAK_LENGTH EQU 7
+
+BATTLETOWER_NUM_UNIQUE_PKMN EQU 21
+BATTLETOWER_NUM_UNIQUE_TRAINERS EQU 70
+
+BATTLETOWER_TRAINERDATALENGTH EQU $24
+BATTLE_TOWER_STRUCT_LENGTH EQU $e0 ; NAME_LENGTH + BATTLETOWER_PARTY_LENGTH * (PARTYMON_STRUCT_LENGTH + MON_NAME_LENGTH) + BATTLETOWER_TRAINERDATALENGTH
+
+; BattleTowerAction writebyte arguments (see engine/events/battle_tower/battle_tower.asm)
const_def
const BATTLETOWERACTION_CHECK_EXPLANATION_READ
const BATTLETOWERACTION_SET_EXPLANATION_READ
@@ -33,19 +42,20 @@
const BATTLETOWERACTION_CHOOSEREWARD ; save options
const BATTLETOWERACTION_SAVEOPTIONS
-; sBattleTowerChallengeState
+; BattleTowerAction return values
+; - from BATTLETOWERACTION_CHECKMOBILEEVENT
+MOBILE_EVENT_OBJECT_GS_BALL EQU $b
+
+; BattleTowerText arguments (see engine/events/battle_tower/trainer_text.asm)
+const_value set 1
+ const BATTLETOWERTEXT_INTRO
+ const BATTLETOWERTEXT_WIN_TEXT
+ const BATTLETOWERTEXT_LOSS_TEXT
+
+; sBattleTowerChallengeState values
const_def
const BATTLETOWER_NO_CHALLENGE
const BATTLETOWER_SAVED_AND_LEFT
const BATTLETOWER_CHALLENGE_IN_PROGESS
const BATTLETOWER_WON_CHALLENGE
const BATTLETOWER_RECEIVED_REWARD
-
-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
-
-; return value from BattleTowerAction(BATTLETOWERACTION_CHECKMOBILEEVENT)
-MOBILE_EVENT_OBJECT_GS_BALL EQU $b
diff --git a/constants/cgb_constants.asm b/constants/cgb_constants.asm
deleted file mode 100755
index c419cd465..000000000
--- a/constants/cgb_constants.asm
+++ /dev/null
@@ -1,36 +0,0 @@
-; GetSGBLayout arguments (see engine/cgb_layouts.asm and engine/sgb_layouts.asm)
- const_def
- const SCGB_BATTLE_GRAYSCALE
- const SCGB_BATTLE_COLORS
- const SCGB_POKEGEAR_PALS
- const SCGB_STATS_SCREEN_HP_PALS
- const SCGB_POKEDEX
- const SCGB_SLOT_MACHINE
- const SCGB_06
- const SCGB_07
- const SCGB_DIPLOMA
- const SCGB_MAPPALS
- const SCGB_PARTY_MENU
- const SCGB_EVOLUTION
- const SCGB_0C
- const SCGB_0D
- const SCGB_MOVE_LIST
- const SCGB_0F
- const SCGB_POKEDEX_SEARCH_OPTION
- const SCGB_11
- const SCGB_POKEPIC
- const SCGB_13
- const SCGB_PACKPALS
- const SCGB_TRAINER_CARD
- const SCGB_POKEDEX_UNOWN_MODE
- const SCGB_BILLS_PC
- const SCGB_UNOWN_PUZZLE
- const SCGB_GAMEFREAK_LOGO
- const SCGB_PLAYER_OR_MON_FRONTPIC_PALS
- const SCGB_TRADE_TUBE
- const SCGB_TRAINER_OR_MON_FRONTPIC_PALS
- const SCGB_MYSTERY_GIFT
- const SCGB_1E
-
-SCGB_PARTY_MENU_HP_PALS EQU -4
-SCGB_RAM EQU -1
diff --git a/constants/collision_constants.asm b/constants/collision_constants.asm
index 88fe9ca6e..86fdf9384 100644
--- a/constants/collision_constants.asm
+++ b/constants/collision_constants.asm
@@ -1,10 +1,10 @@
-; collision permissions (see tilesets/collision_permissions.asm)
+; collision permissions (see data/collision_permissions.asm)
LANDTILE EQU $00
WATERTILE EQU $01
WALLTILE EQU $0f
TALK EQU $10
-; collision data types (see tilesets/*_collision.asm)
+; collision data types (see data/tilesets/*_collision.asm)
; TileCollisionTable indexes (see data/collision_permissions.asm)
COLL_FLOOR EQU $00
COLL_01 EQU $01 ; garbage
@@ -28,19 +28,19 @@ COLL_CUT_28 EQU $28 ; garbage
COLL_WATER EQU $29
COLL_ICE_2B EQU $2b ; unused
COLL_WHIRLPOOL_2C EQU $2c ; unused
-COLL_WATERFALL_RIGHT EQU $30 ; unused !!!
-COLL_WATERFALL_LEFT EQU $31 ; unused !!!
-COLL_WATERFALL_UP EQU $32 ; unused !!!
+COLL_WATERFALL_RIGHT EQU $30 ; unused
+COLL_WATERFALL_LEFT EQU $31 ; unused
+COLL_WATERFALL_UP EQU $32 ; unused
COLL_WATERFALL EQU $33
-COLL_CURRENT_RIGHT EQU $38 ; unused !!!
-COLL_CURRENT_LEFT EQU $39 ; unused !!!
-COLL_CURRENT_UP EQU $3a ; unused !!!
-COLL_CURRENT_DOWN EQU $3b ; unused !!!
-COLL_BRAKE EQU $40 ; unused !!!
-COLL_WALK_RIGHT EQU $41 ; unused !!!
-COLL_WALK_LEFT EQU $42 ; unused !!!
-COLL_WALK_UP EQU $43 ; unused !!!
-COLL_WALK_DOWN EQU $44 ; unused !!!
+COLL_CURRENT_RIGHT EQU $38 ; unused
+COLL_CURRENT_LEFT EQU $39 ; unused
+COLL_CURRENT_UP EQU $3a ; unused
+COLL_CURRENT_DOWN EQU $3b ; unused
+COLL_BRAKE EQU $40 ; unused
+COLL_WALK_RIGHT EQU $41 ; unused
+COLL_WALK_LEFT EQU $42 ; unused
+COLL_WALK_UP EQU $43 ; unused
+COLL_WALK_DOWN EQU $44 ; unused
COLL_BRAKE_45 EQU $45 ; garbage
COLL_BRAKE_46 EQU $46 ; unused
COLL_BRAKE_47 EQU $47 ; unused
@@ -92,16 +92,16 @@ COLL_WINDOW EQU $9d
COLL_INCENSE_BURNER EQU $9f
COLL_HOP_RIGHT EQU $a0
COLL_HOP_LEFT EQU $a1
-COLL_HOP_UP EQU $a2 ; unused !!!
+COLL_HOP_UP EQU $a2 ; unused
COLL_HOP_DOWN EQU $a3
COLL_HOP_DOWN_RIGHT EQU $a4
COLL_HOP_DOWN_LEFT EQU $a5
-COLL_HOP_UP_RIGHT EQU $a6 ; unused !!!
-COLL_HOP_UP_LEFT EQU $a7 ; unused !!!
+COLL_HOP_UP_RIGHT EQU $a6 ; unused
+COLL_HOP_UP_LEFT EQU $a7 ; unused
COLL_RIGHT_WALL EQU $b0
COLL_LEFT_WALL EQU $b1
COLL_UP_WALL EQU $b2
-COLL_DOWN_WALL EQU $b3 ; unused !!!
+COLL_DOWN_WALL EQU $b3 ; unused
COLL_FF EQU $ff ; garbage
; collision data type nybbles
diff --git a/constants/gfx_constants.asm b/constants/gfx_constants.asm
index ca468f477..864a4bd50 100644
--- a/constants/gfx_constants.asm
+++ b/constants/gfx_constants.asm
@@ -1,13 +1,14 @@
-LEN_1BPP_TILE EQU 8 ; bytes
-LEN_2BPP_TILE EQU 16 ; bytes
-
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
-SCREEN_WIDTH EQU 20 ; tiles
+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_WIDTH_PX EQU SCREEN_WIDTH * TILE_WIDTH ; pixels
SCREEN_HEIGHT_PX EQU SCREEN_HEIGHT * TILE_WIDTH ; pixels
BG_MAP_WIDTH EQU 32 ; tiles
@@ -15,9 +16,16 @@ BG_MAP_HEIGHT EQU 32 ; tiles
WMISC_WIDTH EQU 6 * 4
WMISC_HEIGHT EQU 5 * 4
-HP_BAR_LENGTH EQU 6 ; tiles
-HP_BAR_LENGTH_PX EQU HP_BAR_LENGTH * TILE_WIDTH ; pixels
+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
-PALPACKET_LENGTH EQU $10
+; 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 Sprites
diff --git a/constants/hardware_constants.asm b/constants/hardware_constants.asm
index c315d3cf5..d96672c3a 100644
--- a/constants/hardware_constants.asm
+++ b/constants/hardware_constants.asm
@@ -56,7 +56,7 @@ VRAM_BANK_1 EQU 1 << OAM_TILE_BANK ; $08
OBP_NUM EQU 1 << OAM_OBP_NUM ; $10
X_FLIP EQU 1 << OAM_X_FLIP ; $20
Y_FLIP EQU 1 << OAM_Y_FLIP ; $40
-BEHIND_BG EQU 1 << OAM_PRIORITY ; $80
+PRIORITY EQU 1 << OAM_PRIORITY ; $80
; Other useful constants
LCDC_DEFAULT EQU %11100011
diff --git a/constants/item_constants.asm b/constants/item_constants.asm
index c1079e82d..0914e7ab6 100644
--- a/constants/item_constants.asm
+++ b/constants/item_constants.asm
@@ -5,271 +5,295 @@
; - ItemAttributes (see data/items/attributes.asm)
; - ItemEffects (see engine/item_effects.asm)
const_def
- const NO_ITEM ; $00
- const MASTER_BALL ; $01
- const ULTRA_BALL ; $02
- const BRIGHTPOWDER ; $03
- const GREAT_BALL ; $04
- const POKE_BALL ; $05
- const TOWN_MAP ; $06
- const BICYCLE ; $07
- const MOON_STONE ; $08
- const ANTIDOTE ; $09
- const BURN_HEAL ; $0A
- const ICE_HEAL ; $0B
- const AWAKENING ; $0C
- const PARLYZ_HEAL ; $0D
- const FULL_RESTORE ; $0E
- const MAX_POTION ; $0F
- const HYPER_POTION ; $10
- const SUPER_POTION ; $11
- const POTION ; $12
- const ESCAPE_ROPE ; $13
- const REPEL ; $14
- const MAX_ELIXER ; $15
- const FIRE_STONE ; $16
- const THUNDERSTONE ; $17
- const WATER_STONE ; $18
- const ITEM_19 ; $19
- const HP_UP ; $1A
- const PROTEIN ; $1B
- const IRON ; $1C
- const CARBOS ; $1D
- const LUCKY_PUNCH ; $1E
- const CALCIUM ; $1F
- const RARE_CANDY ; $20
- const X_ACCURACY ; $21
- const LEAF_STONE ; $22
- const METAL_POWDER ; $23
- const NUGGET ; $24
- const POKE_DOLL ; $25
- const FULL_HEAL ; $26
- const REVIVE ; $27
- const MAX_REVIVE ; $28
- const GUARD_SPEC ; $29
- const SUPER_REPEL ; $2A
- const MAX_REPEL ; $2B
- const DIRE_HIT ; $2C
- const ITEM_2D ; $2D
- const FRESH_WATER ; $2E
- const SODA_POP ; $2F
- const LEMONADE ; $30
- const X_ATTACK ; $31
- const ITEM_32 ; $32
- const X_DEFEND ; $33
- const X_SPEED ; $34
- const X_SPECIAL ; $35
- const COIN_CASE ; $36
- const ITEMFINDER ; $37
- const POKE_FLUTE ; $38
- const EXP_SHARE ; $39
- const OLD_ROD ; $3A
- const GOOD_ROD ; $3B
- const SILVER_LEAF ; $3C
- const SUPER_ROD ; $3D
- const PP_UP ; $3E
- const ETHER ; $3F
- const MAX_ETHER ; $40
- const ELIXER ; $41
- const RED_SCALE ; $42
- const SECRETPOTION ; $43
- const S_S_TICKET ; $44
- const MYSTERY_EGG ; $45
- const CLEAR_BELL ; $46
- const SILVER_WING ; $47
- const MOOMOO_MILK ; $48
- const QUICK_CLAW ; $49
- const PSNCUREBERRY ; $4A
- const GOLD_LEAF ; $4B
- const SOFT_SAND ; $4C
- const SHARP_BEAK ; $4D
- const PRZCUREBERRY ; $4E
- const BURNT_BERRY ; $4F
- const ICE_BERRY ; $50
- const POISON_BARB ; $51
- const KINGS_ROCK ; $52
- const BITTER_BERRY ; $53
- const MINT_BERRY ; $54
- const RED_APRICORN ; $55
- const TINYMUSHROOM ; $56
- const BIG_MUSHROOM ; $57
- const SILVERPOWDER ; $58
- const BLU_APRICORN ; $59
- const ITEM_5A ; $5A
- const AMULET_COIN ; $5B
- const YLW_APRICORN ; $5C
- const GRN_APRICORN ; $5D
- const CLEANSE_TAG ; $5E
- const MYSTIC_WATER ; $5F
- const TWISTEDSPOON ; $60
- const WHT_APRICORN ; $61
- const BLACKBELT ; $62
- const BLK_APRICORN ; $63
- const ITEM_64 ; $64
- const PNK_APRICORN ; $65
- const BLACKGLASSES ; $66
- const SLOWPOKETAIL ; $67
- const PINK_BOW ; $68
- const STICK ; $69
- const SMOKE_BALL ; $6A
- const NEVERMELTICE ; $6B
- const MAGNET ; $6C
- const MIRACLEBERRY ; $6D
- const PEARL ; $6E
- const BIG_PEARL ; $6F
- const EVERSTONE ; $70
- const SPELL_TAG ; $71
- const RAGECANDYBAR ; $72
- const GS_BALL ; $73
- const BLUE_CARD ; $74
- const MIRACLE_SEED ; $75
- const THICK_CLUB ; $76
- const FOCUS_BAND ; $77
- const ITEM_78 ; $78
- const ENERGYPOWDER ; $79
- const ENERGY_ROOT ; $7A
- const HEAL_POWDER ; $7B
- const REVIVAL_HERB ; $7C
- const HARD_STONE ; $7D
- const LUCKY_EGG ; $7E
- const CARD_KEY ; $7F
- const MACHINE_PART ; $80
- const EGG_TICKET ; $81
- const LOST_ITEM ; $82
- const STARDUST ; $83
- const STAR_PIECE ; $84
- const BASEMENT_KEY ; $85
- const PASS ; $86
- const ITEM_87 ; $87
- const ITEM_88 ; $88
- const ITEM_89 ; $89
- const CHARCOAL ; $8A
- const BERRY_JUICE ; $8B
- const SCOPE_LENS ; $8C
- const ITEM_8D ; $8D
- const ITEM_8E ; $8E
- const METAL_COAT ; $8F
- const DRAGON_FANG ; $90
- const ITEM_91 ; $91
- const LEFTOVERS ; $92
- const ITEM_93 ; $93
- const ITEM_94 ; $94
- const ITEM_95 ; $95
- const MYSTERYBERRY ; $96
- const DRAGON_SCALE ; $97
- const BERSERK_GENE ; $98
- const ITEM_99 ; $99
- const ITEM_9A ; $9A
- const ITEM_9B ; $9B
- const SACRED_ASH ; $9C
- const HEAVY_BALL ; $9D
- const FLOWER_MAIL ; $9E
- const LEVEL_BALL ; $9F
- const LURE_BALL ; $A0
- const FAST_BALL ; $A1
- const ITEM_A2 ; $A2
- const LIGHT_BALL ; $A3
- const FRIEND_BALL ; $A4
- const MOON_BALL ; $A5
- const LOVE_BALL ; $A6
- const NORMAL_BOX ; $A7
- const GORGEOUS_BOX ; $A8
- const SUN_STONE ; $A9
- const POLKADOT_BOW ; $AA
- const ITEM_AB ; $AB
- const UP_GRADE ; $AC
- const BERRY ; $AD
- const GOLD_BERRY ; $AE
- const SQUIRTBOTTLE ; $AF
- const ITEM_B0 ; $B0
- const PARK_BALL ; $B1
- const RAINBOW_WING ; $B2
- const ITEM_B3 ; $B3
- const BRICK_PIECE ; $B4
- const SURF_MAIL ; $B5
- const LITEBLUEMAIL ; $B6
- const PORTRAITMAIL ; $B7
- const LOVELY_MAIL ; $B8
- const EON_MAIL ; $B9
- const MORPH_MAIL ; $BA
- const BLUESKY_MAIL ; $BB
- const MUSIC_MAIL ; $BC
- const MIRAGE_MAIL ; $BD
- const ITEM_BE ; $BE
+ const NO_ITEM ; 00
+ const MASTER_BALL ; 01
+ const ULTRA_BALL ; 02
+ const BRIGHTPOWDER ; 03
+ const GREAT_BALL ; 04
+ const POKE_BALL ; 05
+ const TOWN_MAP ; 06
+ const BICYCLE ; 07
+ const MOON_STONE ; 08
+ const ANTIDOTE ; 09
+ const BURN_HEAL ; 0a
+ const ICE_HEAL ; 0b
+ const AWAKENING ; 0c
+ const PARLYZ_HEAL ; 0d
+ const FULL_RESTORE ; 0e
+ const MAX_POTION ; 0f
+ const HYPER_POTION ; 10
+ const SUPER_POTION ; 11
+ const POTION ; 12
+ const ESCAPE_ROPE ; 13
+ const REPEL ; 14
+ const MAX_ELIXER ; 15
+ const FIRE_STONE ; 16
+ const THUNDERSTONE ; 17
+ const WATER_STONE ; 18
+ const ITEM_19 ; 19
+ const HP_UP ; 1a
+ const PROTEIN ; 1b
+ const IRON ; 1c
+ const CARBOS ; 1d
+ const LUCKY_PUNCH ; 1e
+ const CALCIUM ; 1f
+ const RARE_CANDY ; 20
+ const X_ACCURACY ; 21
+ const LEAF_STONE ; 22
+ const METAL_POWDER ; 23
+ const NUGGET ; 24
+ const POKE_DOLL ; 25
+ const FULL_HEAL ; 26
+ const REVIVE ; 27
+ const MAX_REVIVE ; 28
+ const GUARD_SPEC ; 29
+ const SUPER_REPEL ; 2a
+ const MAX_REPEL ; 2b
+ const DIRE_HIT ; 2c
+ const ITEM_2D ; 2d
+ const FRESH_WATER ; 2e
+ const SODA_POP ; 2f
+ const LEMONADE ; 30
+ const X_ATTACK ; 31
+ const ITEM_32 ; 32
+ const X_DEFEND ; 33
+ const X_SPEED ; 34
+ const X_SPECIAL ; 35
+ const COIN_CASE ; 36
+ const ITEMFINDER ; 37
+ const POKE_FLUTE ; 38
+ const EXP_SHARE ; 39
+ const OLD_ROD ; 3a
+ const GOOD_ROD ; 3b
+ const SILVER_LEAF ; 3c
+ const SUPER_ROD ; 3d
+ const PP_UP ; 3e
+ const ETHER ; 3f
+ const MAX_ETHER ; 40
+ const ELIXER ; 41
+ const RED_SCALE ; 42
+ const SECRETPOTION ; 43
+ const S_S_TICKET ; 44
+ const MYSTERY_EGG ; 45
+ const CLEAR_BELL ; 46
+ const SILVER_WING ; 47
+ const MOOMOO_MILK ; 48
+ const QUICK_CLAW ; 49
+ const PSNCUREBERRY ; 4a
+ const GOLD_LEAF ; 4b
+ const SOFT_SAND ; 4c
+ const SHARP_BEAK ; 4d
+ const PRZCUREBERRY ; 4e
+ const BURNT_BERRY ; 4f
+ const ICE_BERRY ; 50
+ const POISON_BARB ; 51
+ const KINGS_ROCK ; 52
+ const BITTER_BERRY ; 53
+ const MINT_BERRY ; 54
+ const RED_APRICORN ; 55
+ const TINYMUSHROOM ; 56
+ const BIG_MUSHROOM ; 57
+ const SILVERPOWDER ; 58
+ const BLU_APRICORN ; 59
+ const ITEM_5A ; 5a
+ const AMULET_COIN ; 5b
+ const YLW_APRICORN ; 5c
+ const GRN_APRICORN ; 5d
+ const CLEANSE_TAG ; 5e
+ const MYSTIC_WATER ; 5f
+ const TWISTEDSPOON ; 60
+ const WHT_APRICORN ; 61
+ const BLACKBELT ; 62
+ const BLK_APRICORN ; 63
+ const ITEM_64 ; 64
+ const PNK_APRICORN ; 65
+ const BLACKGLASSES ; 66
+ const SLOWPOKETAIL ; 67
+ const PINK_BOW ; 68
+ const STICK ; 69
+ const SMOKE_BALL ; 6a
+ const NEVERMELTICE ; 6b
+ const MAGNET ; 6c
+ const MIRACLEBERRY ; 6d
+ const PEARL ; 6e
+ const BIG_PEARL ; 6f
+ const EVERSTONE ; 70
+ const SPELL_TAG ; 71
+ const RAGECANDYBAR ; 72
+ const GS_BALL ; 73
+ const BLUE_CARD ; 74
+ const MIRACLE_SEED ; 75
+ const THICK_CLUB ; 76
+ const FOCUS_BAND ; 77
+ const ITEM_78 ; 78
+ const ENERGYPOWDER ; 79
+ const ENERGY_ROOT ; 7a
+ const HEAL_POWDER ; 7b
+ const REVIVAL_HERB ; 7c
+ const HARD_STONE ; 7d
+ const LUCKY_EGG ; 7e
+ const CARD_KEY ; 7f
+ const MACHINE_PART ; 80
+ const EGG_TICKET ; 81
+ const LOST_ITEM ; 82
+ const STARDUST ; 83
+ const STAR_PIECE ; 84
+ const BASEMENT_KEY ; 85
+ const PASS ; 86
+ const ITEM_87 ; 87
+ const ITEM_88 ; 88
+ const ITEM_89 ; 89
+ const CHARCOAL ; 8a
+ const BERRY_JUICE ; 8b
+ const SCOPE_LENS ; 8c
+ const ITEM_8D ; 8d
+ const ITEM_8E ; 8e
+ const METAL_COAT ; 8f
+ const DRAGON_FANG ; 90
+ const ITEM_91 ; 91
+ const LEFTOVERS ; 92
+ const ITEM_93 ; 93
+ const ITEM_94 ; 94
+ const ITEM_95 ; 95
+ const MYSTERYBERRY ; 96
+ const DRAGON_SCALE ; 97
+ const BERSERK_GENE ; 98
+ const ITEM_99 ; 99
+ const ITEM_9A ; 9a
+ const ITEM_9B ; 9b
+ const SACRED_ASH ; 9c
+ const HEAVY_BALL ; 9d
+ const FLOWER_MAIL ; 9e
+ const LEVEL_BALL ; 9f
+ const LURE_BALL ; a0
+ const FAST_BALL ; a1
+ const ITEM_A2 ; a2
+ const LIGHT_BALL ; a3
+ const FRIEND_BALL ; a4
+ const MOON_BALL ; a5
+ const LOVE_BALL ; a6
+ const NORMAL_BOX ; a7
+ const GORGEOUS_BOX ; a8
+ const SUN_STONE ; a9
+ const POLKADOT_BOW ; aa
+ const ITEM_AB ; ab
+ const UP_GRADE ; ac
+ const BERRY ; ad
+ const GOLD_BERRY ; ae
+ const SQUIRTBOTTLE ; af
+ const ITEM_B0 ; b0
+ const PARK_BALL ; b1
+ const RAINBOW_WING ; b2
+ const ITEM_B3 ; b3
+ const BRICK_PIECE ; b4
+ const SURF_MAIL ; b5
+ const LITEBLUEMAIL ; b6
+ const PORTRAITMAIL ; b7
+ const LOVELY_MAIL ; b8
+ const EON_MAIL ; b9
+ const MORPH_MAIL ; ba
+ const BLUESKY_MAIL ; bb
+ const MUSIC_MAIL ; bc
+ const MIRAGE_MAIL ; bd
+ const ITEM_BE ; be
+
+add_tm: MACRO
+if !DEF(TM01)
+TM01 = const_value
+ enum_start 1
+endc
+ define _\@_1, "TM_\1"
+ const _\@_1
+ enum \1_TMNUM
+ENDM
+
+add_hm: MACRO
+if !DEF(HM01)
+HM01 = const_value
+endc
+ define _\@_1, "HM_\1"
+ const _\@_1
+ enum \1_TMNUM
+ENDM
+
+add_mt: MACRO
+ enum \1_TMNUM
+ENDM
; see data/moves/tmhm_moves.asm for moves
- add_tm DYNAMICPUNCH ; $BF
- add_tm HEADBUTT ; $C0
- add_tm CURSE ; $C1
- add_tm ROLLOUT ; $C2
- const ITEM_C3 ; $C3
- add_tm ROAR ; $C4
- add_tm TOXIC ; $C5
- add_tm ZAP_CANNON ; $C6
- add_tm ROCK_SMASH ; $C7
- add_tm PSYCH_UP ; $C8
- add_tm HIDDEN_POWER ; $C9
- add_tm SUNNY_DAY ; $CA
- add_tm SWEET_SCENT ; $CB
- add_tm SNORE ; $CC
- add_tm BLIZZARD ; $CD
- add_tm HYPER_BEAM ; $CE
- add_tm ICY_WIND ; $CF
- add_tm PROTECT ; $D0
- add_tm RAIN_DANCE ; $D1
- add_tm GIGA_DRAIN ; $D2
- add_tm ENDURE ; $D3
- add_tm FRUSTRATION ; $D4
- add_tm SOLARBEAM ; $D5
- add_tm IRON_TAIL ; $D6
- add_tm DRAGONBREATH ; $D7
- add_tm THUNDER ; $D8
- add_tm EARTHQUAKE ; $D9
- add_tm RETURN ; $DA
- add_tm DIG ; $DB
- const ITEM_DC ; $DC
- add_tm PSYCHIC_M ; $DD
- add_tm SHADOW_BALL ; $DE
- add_tm MUD_SLAP ; $DF
- add_tm DOUBLE_TEAM ; $E0
- add_tm ICE_PUNCH ; $E1
- add_tm SWAGGER ; $E2
- add_tm SLEEP_TALK ; $E3
- add_tm SLUDGE_BOMB ; $E4
- add_tm SANDSTORM ; $E5
- add_tm FIRE_BLAST ; $E6
- add_tm SWIFT ; $E7
- add_tm DEFENSE_CURL ; $E8
- add_tm THUNDERPUNCH ; $E9
- add_tm DREAM_EATER ; $EA
- add_tm DETECT ; $EB
- add_tm REST ; $EC
- add_tm ATTRACT ; $ED
- add_tm THIEF ; $EE
- add_tm STEEL_WING ; $EF
- add_tm FIRE_PUNCH ; $F0
- add_tm FURY_CUTTER ; $F1
- add_tm NIGHTMARE ; $F2
+ add_tm DYNAMICPUNCH ; bf
+ add_tm HEADBUTT ; c0
+ add_tm CURSE ; c1
+ add_tm ROLLOUT ; c2
+ const ITEM_C3 ; c3
+ add_tm ROAR ; c4
+ add_tm TOXIC ; c5
+ add_tm ZAP_CANNON ; c6
+ add_tm ROCK_SMASH ; c7
+ add_tm PSYCH_UP ; c8
+ add_tm HIDDEN_POWER ; c9
+ add_tm SUNNY_DAY ; ca
+ add_tm SWEET_SCENT ; cb
+ add_tm SNORE ; cc
+ add_tm BLIZZARD ; cd
+ add_tm HYPER_BEAM ; ce
+ add_tm ICY_WIND ; cf
+ add_tm PROTECT ; d0
+ add_tm RAIN_DANCE ; d1
+ add_tm GIGA_DRAIN ; d2
+ add_tm ENDURE ; d3
+ add_tm FRUSTRATION ; d4
+ add_tm SOLARBEAM ; d5
+ add_tm IRON_TAIL ; d6
+ add_tm DRAGONBREATH ; d7
+ add_tm THUNDER ; d8
+ add_tm EARTHQUAKE ; d9
+ add_tm RETURN ; da
+ add_tm DIG ; db
+ const ITEM_DC ; dc
+ add_tm PSYCHIC_M ; dd
+ add_tm SHADOW_BALL ; de
+ add_tm MUD_SLAP ; df
+ add_tm DOUBLE_TEAM ; e0
+ add_tm ICE_PUNCH ; e1
+ add_tm SWAGGER ; e2
+ add_tm SLEEP_TALK ; e3
+ add_tm SLUDGE_BOMB ; e4
+ add_tm SANDSTORM ; e5
+ add_tm FIRE_BLAST ; e6
+ add_tm SWIFT ; e7
+ add_tm DEFENSE_CURL ; e8
+ add_tm THUNDERPUNCH ; e9
+ add_tm DREAM_EATER ; ea
+ add_tm DETECT ; eb
+ add_tm REST ; ec
+ add_tm ATTRACT ; ed
+ add_tm THIEF ; ee
+ add_tm STEEL_WING ; ef
+ add_tm FIRE_PUNCH ; f0
+ add_tm FURY_CUTTER ; f1
+ add_tm NIGHTMARE ; f2
NUM_TMS = const_value - TM01 - 2 ; discount ITEM_C3 and ITEM_DC
- add_hm CUT ; $F3
- add_hm FLY ; $F4
- add_hm SURF ; $F5
- add_hm STRENGTH ; $F6
- add_hm FLASH ; $F7
- add_hm WHIRLPOOL ; $F8
- add_hm WATERFALL ; $F9
+ add_hm CUT ; f3
+ add_hm FLY ; f4
+ add_hm SURF ; f5
+ add_hm STRENGTH ; f6
+ add_hm FLASH ; f7
+ add_hm WHIRLPOOL ; f8
+ add_hm WATERFALL ; f9
NUM_HMS = const_value - HM01
- const ITEM_FA ; $FA
+ const ITEM_FA ; fa
add_mt FLAMETHROWER
add_mt THUNDERBOLT
add_mt ICE_BEAM
NUM_TM_HM_TUTOR = __enum__ +- 1
-ITEM_FROM_MEM EQU $FF
+USE_SCRIPT_VAR EQU $00
+ITEM_FROM_MEM EQU $ff
; leftovers from red
SAFARI_BALL EQU $08 ; MOON_STONE
-MOON_STONE_RED EQU $0A ; BURN_HEAL
+MOON_STONE_RED EQU $0a ; BURN_HEAL
FULL_HEAL_RED EQU $34 ; X_SPEED
diff --git a/constants/item_data_constants.asm b/constants/item_data_constants.asm
index dfcff9eb0..b3a35d72b 100644
--- a/constants/item_data_constants.asm
+++ b/constants/item_data_constants.asm
@@ -9,21 +9,15 @@
const ITEMATTR_HELP
ITEMATTR_STRUCT_LENGTH EQU const_value
-
-; pack pockets
-ITEM EQU 1
-KEY_ITEM EQU 2
-BALL EQU 3
-TM_HM EQU 4
-
-; pack pocket sizes
-MAX_ITEMS EQU 20
-MAX_KEY_ITEMS EQU 25
-MAX_BALLS EQU 12
-MAX_PC_ITEMS EQU 50
-
+; item types
+const_value set 1
+ const ITEM ; 1
+ const KEY_ITEM ; 2
+ const BALL ; 3
+ const TM_HM ; 4
; item menu types
+; UseItem.dw indexes (see engine/pack.asm)
ITEMMENU_NOUSE EQU 0
ITEMMENU_CURRENT EQU 4
ITEMMENU_PARTY EQU 5
@@ -34,7 +28,22 @@ CANT_SELECT EQU 1 << 6
CANT_TOSS EQU 1 << 7
+; 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 +- 1
+
+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
@@ -163,8 +172,7 @@ const_value set 70
const MART_UNDERGROUND
-; PartyMenuActionText values
-; GetPartyMenuTilemapPointers arguments (see engine/party_menu.asm)
+; PartyMenuQualityPointers indexes (see data/party_menu_qualities.asm)
const_def
const PARTYMENUACTION_CHOOSE_POKEMON
const PARTYMENUACTION_HEALING_ITEM
diff --git a/constants/landmark_constants.asm b/constants/landmark_constants.asm
index 4a15928f0..5f74b3386 100644
--- a/constants/landmark_constants.asm
+++ b/constants/landmark_constants.asm
@@ -100,3 +100,14 @@ KANTO_LANDMARK EQU const_value
const TOHJO_FALLS ; 5d
const ROUTE_28 ; 5e
const FAST_SHIP ; 5f
+
+; used in CaughtData
+GIFT_LOCATION EQU $7e
+EVENT_LOCATION EQU $7f
+
+
+; Regions
+ const_def
+ const JOHTO_REGION ; 0
+ const KANTO_REGION ; 1
+NUM_REGIONS EQU const_value
diff --git a/constants/map_constants.asm b/constants/map_constants.asm
index e7580dfb9..204b2cf20 100644
--- a/constants/map_constants.asm
+++ b/constants/map_constants.asm
@@ -3,7 +3,7 @@ const_value = const_value + 1
enum_start 1
ENDM
-mapgroup: MACRO
+mapconst: MACRO
;\1: map id
;\2: height: in blocks
;\3: width: in blocks
@@ -15,474 +15,475 @@ ENDM
; map group ids
; `newgroup` indexes are for:
-; - MapGroupPointers (see maps/map_headers.asm)
+; - MapGroupPointers (see data/maps/definitions.asm)
; - MapGroupRoofs (see data/maps/roofs.asm)
; - OutdoorSprites (see data/maps/outdoor_sprites.asm)
-; `mapgroup` indexes are for the sub-tables of MapGroupPointers (see maps/map_headers.asm)
+; - RoofPals (see gfx/tilesets/roofs.pal)
+; `mapconst` indexes are for the sub-tables of MapGroupPointers (see data/maps/definitions.asm)
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
+ mapconst OLIVINE_POKECENTER_1F, 4, 5 ; 1
+ mapconst OLIVINE_GYM, 8, 5 ; 2
+ mapconst OLIVINE_TIMS_HOUSE, 4, 4 ; 3
+ mapconst OLIVINE_HOUSE_BETA, 4, 4 ; 4
+ mapconst OLIVINE_PUNISHMENT_SPEECH_HOUSE, 4, 4 ; 5
+ mapconst OLIVINE_GOOD_ROD_HOUSE, 4, 4 ; 6
+ mapconst OLIVINE_CAFE, 4, 4 ; 7
+ mapconst OLIVINE_MART, 4, 6 ; 8
+ mapconst ROUTE_38_ECRUTEAK_GATE, 4, 5 ; 9
+ mapconst ROUTE_39_BARN, 4, 4 ; 10
+ mapconst ROUTE_39_FARMHOUSE, 4, 4 ; 11
+ mapconst ROUTE_38, 9, 20 ; 12
+ mapconst ROUTE_39, 18, 10 ; 13
+ mapconst 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
+ mapconst MAHOGANY_RED_GYARADOS_SPEECH_HOUSE, 4, 4 ; 1
+ mapconst MAHOGANY_GYM, 9, 5 ; 2
+ mapconst MAHOGANY_POKECENTER_1F, 4, 5 ; 3
+ mapconst ROUTE_42_ECRUTEAK_GATE, 4, 5 ; 4
+ mapconst ROUTE_42, 9, 30 ; 5
+ mapconst ROUTE_44, 9, 30 ; 6
+ mapconst 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 GOLDENROD_UNDERGROUND, 18, 15 ; 53
- mapgroup GOLDENROD_UNDERGROUND_SWITCH_ROOM_ENTRANCES, 18, 15 ; 54
- mapgroup GOLDENROD_DEPT_STORE_B1F, 9, 10 ; 55
- mapgroup GOLDENROD_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_PATH, 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
+ mapconst SPROUT_TOWER_1F, 8, 10 ; 1
+ mapconst SPROUT_TOWER_2F, 8, 10 ; 2
+ mapconst SPROUT_TOWER_3F, 8, 10 ; 3
+ mapconst TIN_TOWER_1F, 9, 10 ; 4
+ mapconst TIN_TOWER_2F, 9, 10 ; 5
+ mapconst TIN_TOWER_3F, 9, 10 ; 6
+ mapconst TIN_TOWER_4F, 9, 10 ; 7
+ mapconst TIN_TOWER_5F, 9, 10 ; 8
+ mapconst TIN_TOWER_6F, 9, 10 ; 9
+ mapconst TIN_TOWER_7F, 9, 10 ; 10
+ mapconst TIN_TOWER_8F, 9, 10 ; 11
+ mapconst TIN_TOWER_9F, 9, 10 ; 12
+ mapconst BURNED_TOWER_1F, 9, 10 ; 13
+ mapconst BURNED_TOWER_B1F, 9, 10 ; 14
+ mapconst NATIONAL_PARK, 27, 20 ; 15
+ mapconst NATIONAL_PARK_BUG_CONTEST, 27, 20 ; 16
+ mapconst RADIO_TOWER_1F, 4, 9 ; 17
+ mapconst RADIO_TOWER_2F, 4, 9 ; 18
+ mapconst RADIO_TOWER_3F, 4, 9 ; 19
+ mapconst RADIO_TOWER_4F, 4, 9 ; 20
+ mapconst RADIO_TOWER_5F, 4, 9 ; 21
+ mapconst RUINS_OF_ALPH_OUTSIDE, 18, 10 ; 22
+ mapconst RUINS_OF_ALPH_HO_OH_CHAMBER, 5, 4 ; 23
+ mapconst RUINS_OF_ALPH_KABUTO_CHAMBER, 5, 4 ; 24
+ mapconst RUINS_OF_ALPH_OMANYTE_CHAMBER, 5, 4 ; 25
+ mapconst RUINS_OF_ALPH_AERODACTYL_CHAMBER, 5, 4 ; 26
+ mapconst RUINS_OF_ALPH_INNER_CHAMBER, 14, 10 ; 27
+ mapconst RUINS_OF_ALPH_RESEARCH_CENTER, 4, 4 ; 28
+ mapconst RUINS_OF_ALPH_HO_OH_ITEM_ROOM, 5, 4 ; 29
+ mapconst RUINS_OF_ALPH_KABUTO_ITEM_ROOM, 5, 4 ; 30
+ mapconst RUINS_OF_ALPH_OMANYTE_ITEM_ROOM, 5, 4 ; 31
+ mapconst RUINS_OF_ALPH_AERODACTYL_ITEM_ROOM, 5, 4 ; 32
+ mapconst RUINS_OF_ALPH_HO_OH_WORD_ROOM, 12, 10 ; 33
+ mapconst RUINS_OF_ALPH_KABUTO_WORD_ROOM, 7, 10 ; 34
+ mapconst RUINS_OF_ALPH_OMANYTE_WORD_ROOM, 8, 10 ; 35
+ mapconst RUINS_OF_ALPH_AERODACTYL_WORD_ROOM, 7, 10 ; 36
+ mapconst UNION_CAVE_1F, 18, 10 ; 37
+ mapconst UNION_CAVE_B1F, 18, 10 ; 38
+ mapconst UNION_CAVE_B2F, 18, 10 ; 39
+ mapconst SLOWPOKE_WELL_B1F, 9, 10 ; 40
+ mapconst SLOWPOKE_WELL_B2F, 9, 10 ; 41
+ mapconst OLIVINE_LIGHTHOUSE_1F, 9, 10 ; 42
+ mapconst OLIVINE_LIGHTHOUSE_2F, 9, 10 ; 43
+ mapconst OLIVINE_LIGHTHOUSE_3F, 9, 10 ; 44
+ mapconst OLIVINE_LIGHTHOUSE_4F, 9, 10 ; 45
+ mapconst OLIVINE_LIGHTHOUSE_5F, 9, 10 ; 46
+ mapconst OLIVINE_LIGHTHOUSE_6F, 9, 10 ; 47
+ mapconst MAHOGANY_MART_1F, 4, 4 ; 48
+ mapconst TEAM_ROCKET_BASE_B1F, 9, 15 ; 49
+ mapconst TEAM_ROCKET_BASE_B2F, 9, 15 ; 50
+ mapconst TEAM_ROCKET_BASE_B3F, 9, 15 ; 51
+ mapconst ILEX_FOREST, 27, 15 ; 52
+ mapconst GOLDENROD_UNDERGROUND, 18, 15 ; 53
+ mapconst GOLDENROD_UNDERGROUND_SWITCH_ROOM_ENTRANCES, 18, 15 ; 54
+ mapconst GOLDENROD_DEPT_STORE_B1F, 9, 10 ; 55
+ mapconst GOLDENROD_UNDERGROUND_WAREHOUSE, 9, 10 ; 56
+ mapconst MOUNT_MORTAR_1F_OUTSIDE, 18, 20 ; 57
+ mapconst MOUNT_MORTAR_1F_INSIDE, 27, 20 ; 58
+ mapconst MOUNT_MORTAR_2F_INSIDE, 18, 20 ; 59
+ mapconst MOUNT_MORTAR_B1F, 18, 20 ; 60
+ mapconst ICE_PATH_1F, 18, 20 ; 61
+ mapconst ICE_PATH_B1F, 18, 10 ; 62
+ mapconst ICE_PATH_B2F_MAHOGANY_SIDE, 9, 10 ; 63
+ mapconst ICE_PATH_B2F_BLACKTHORN_SIDE, 9, 5 ; 64
+ mapconst ICE_PATH_B3F, 9, 10 ; 65
+ mapconst WHIRL_ISLAND_NW, 9, 5 ; 66
+ mapconst WHIRL_ISLAND_NE, 9, 10 ; 67
+ mapconst WHIRL_ISLAND_SW, 9, 10 ; 68
+ mapconst WHIRL_ISLAND_CAVE, 9, 5 ; 69
+ mapconst WHIRL_ISLAND_SE, 9, 5 ; 70
+ mapconst WHIRL_ISLAND_B1F, 18, 20 ; 71
+ mapconst WHIRL_ISLAND_B2F, 18, 10 ; 72
+ mapconst WHIRL_ISLAND_LUGIA_CHAMBER, 9, 10 ; 73
+ mapconst SILVER_CAVE_ROOM_1, 18, 10 ; 74
+ mapconst SILVER_CAVE_ROOM_2, 18, 15 ; 75
+ mapconst SILVER_CAVE_ROOM_3, 18, 10 ; 76
+ mapconst SILVER_CAVE_ITEM_ROOMS, 9, 10 ; 77
+ mapconst DARK_CAVE_VIOLET_ENTRANCE, 18, 20 ; 78
+ mapconst DARK_CAVE_BLACKTHORN_ENTRANCE, 18, 15 ; 79
+ mapconst DRAGONS_DEN_1F, 9, 5 ; 80
+ mapconst DRAGONS_DEN_B1F, 18, 20 ; 81
+ mapconst DRAGON_SHRINE, 5, 5 ; 82
+ mapconst TOHJO_FALLS, 9, 15 ; 83
+ mapconst DIGLETTS_CAVE, 18, 10 ; 84
+ mapconst MOUNT_MOON, 9, 15 ; 85
+ mapconst UNDERGROUND_PATH, 14, 3 ; 86
+ mapconst ROCK_TUNNEL_1F, 18, 15 ; 87
+ mapconst ROCK_TUNNEL_B1F, 18, 15 ; 88
+ mapconst SAFARI_ZONE_FUCHSIA_GATE_BETA, 4, 5 ; 89
+ mapconst SAFARI_ZONE_BETA, 18, 10 ; 90
+ mapconst 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
+ mapconst ECRUTEAK_HOUSE, 9, 10 ; 1
+ mapconst WISE_TRIOS_ROOM, 4, 4 ; 2
+ mapconst ECRUTEAK_POKECENTER_1F, 4, 5 ; 3
+ mapconst ECRUTEAK_LUGIA_SPEECH_HOUSE, 4, 4 ; 4
+ mapconst DANCE_THEATRE, 7, 6 ; 5
+ mapconst ECRUTEAK_MART, 4, 6 ; 6
+ mapconst ECRUTEAK_GYM, 9, 5 ; 7
+ mapconst ECRUTEAK_ITEMFINDER_HOUSE, 4, 4 ; 8
+ mapconst 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
+ mapconst BLACKTHORN_GYM_1F, 9, 5 ; 1
+ mapconst BLACKTHORN_GYM_2F, 9, 5 ; 2
+ mapconst BLACKTHORN_DRAGON_SPEECH_HOUSE, 4, 4 ; 3
+ mapconst BLACKTHORN_EMYS_HOUSE, 4, 4 ; 4
+ mapconst BLACKTHORN_MART, 4, 6 ; 5
+ mapconst BLACKTHORN_POKECENTER_1F, 4, 5 ; 6
+ mapconst MOVE_DELETERS_HOUSE, 4, 4 ; 7
+ mapconst ROUTE_45, 45, 10 ; 8
+ mapconst ROUTE_46, 18, 10 ; 9
+ mapconst 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
+ mapconst CINNABAR_POKECENTER_1F, 4, 5 ; 1
+ mapconst CINNABAR_POKECENTER_2F_BETA, 4, 8 ; 2
+ mapconst ROUTE_19_FUCHSIA_GATE, 4, 5 ; 3
+ mapconst SEAFOAM_GYM, 4, 5 ; 4
+ mapconst ROUTE_19, 18, 10 ; 5
+ mapconst ROUTE_20, 9, 30 ; 6
+ mapconst ROUTE_21, 18, 10 ; 7
+ mapconst 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
+ mapconst CERULEAN_GYM_BADGE_SPEECH_HOUSE, 4, 4 ; 1
+ mapconst CERULEAN_POLICE_STATION, 4, 4 ; 2
+ mapconst CERULEAN_TRADE_SPEECH_HOUSE, 4, 4 ; 3
+ mapconst CERULEAN_POKECENTER_1F, 4, 5 ; 4
+ mapconst CERULEAN_POKECENTER_2F_BETA, 4, 8 ; 5
+ mapconst CERULEAN_GYM, 8, 5 ; 6
+ mapconst CERULEAN_MART, 4, 6 ; 7
+ mapconst ROUTE_10_POKECENTER_1F, 4, 5 ; 8
+ mapconst ROUTE_10_POKECENTER_2F_BETA, 4, 8 ; 9
+ mapconst POWER_PLANT, 9, 10 ; 10
+ mapconst BILLS_HOUSE, 4, 4 ; 11
+ mapconst ROUTE_4, 9, 20 ; 12
+ mapconst ROUTE_9, 9, 30 ; 13
+ mapconst ROUTE_10_NORTH, 9, 10 ; 14
+ mapconst ROUTE_24, 9, 10 ; 15
+ mapconst ROUTE_25, 9, 30 ; 16
+ mapconst 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
+ mapconst AZALEA_POKECENTER_1F, 4, 5 ; 1
+ mapconst CHARCOAL_KILN, 4, 4 ; 2
+ mapconst AZALEA_MART, 4, 6 ; 3
+ mapconst KURTS_HOUSE, 4, 8 ; 4
+ mapconst AZALEA_GYM, 8, 5 ; 5
+ mapconst ROUTE_33, 9, 10 ; 6
+ mapconst 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
+ mapconst LAKE_OF_RAGE_HIDDEN_POWER_HOUSE, 4, 4 ; 1
+ mapconst LAKE_OF_RAGE_MAGIKARP_HOUSE, 4, 4 ; 2
+ mapconst ROUTE_43_MAHOGANY_GATE, 4, 5 ; 3
+ mapconst ROUTE_43_GATE, 4, 5 ; 4
+ mapconst ROUTE_43, 27, 10 ; 5
+ mapconst 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_KYLES_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
+ mapconst ROUTE_32, 45, 10 ; 1
+ mapconst ROUTE_35, 18, 10 ; 2
+ mapconst ROUTE_36, 9, 30 ; 3
+ mapconst ROUTE_37, 9, 10 ; 4
+ mapconst VIOLET_CITY, 18, 20 ; 5
+ mapconst VIOLET_MART, 4, 6 ; 6
+ mapconst VIOLET_GYM, 8, 5 ; 7
+ mapconst EARLS_POKEMON_ACADEMY, 8, 4 ; 8
+ mapconst VIOLET_NICKNAME_SPEECH_HOUSE, 4, 4 ; 9
+ mapconst VIOLET_POKECENTER_1F, 4, 5 ; 10
+ mapconst VIOLET_KYLES_HOUSE, 4, 4 ; 11
+ mapconst ROUTE_32_RUINS_OF_ALPH_GATE, 4, 5 ; 12
+ mapconst ROUTE_32_POKECENTER_1F, 4, 5 ; 13
+ mapconst ROUTE_35_GOLDENROD_GATE, 4, 5 ; 14
+ mapconst ROUTE_35_NATIONAL_PARK_GATE, 4, 4 ; 15
+ mapconst ROUTE_36_RUINS_OF_ALPH_GATE, 4, 5 ; 16
+ mapconst 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 GOLDENROD_POKECOM_CENTER_2F_MOBILE, 16, 16 ; 21
- mapgroup ILEX_FOREST_AZALEA_GATE, 4, 5 ; 22
- mapgroup ROUTE_34_ILEX_FOREST_GATE, 4, 5 ; 23
- mapgroup DAY_CARE, 4, 5 ; 24
+ mapconst ROUTE_34, 27, 10 ; 1
+ mapconst GOLDENROD_CITY, 18, 20 ; 2
+ mapconst GOLDENROD_GYM, 9, 10 ; 3
+ mapconst GOLDENROD_BIKE_SHOP, 4, 4 ; 4
+ mapconst GOLDENROD_HAPPINESS_RATER, 4, 4 ; 5
+ mapconst GOLDENROD_BILLS_HOUSE, 4, 4 ; 6
+ mapconst GOLDENROD_MAGNET_TRAIN_STATION, 9, 10 ; 7
+ mapconst GOLDENROD_FLOWER_SHOP, 4, 4 ; 8
+ mapconst GOLDENROD_PP_SPEECH_HOUSE, 4, 4 ; 9
+ mapconst GOLDENROD_NAME_RATER, 4, 4 ; 10
+ mapconst GOLDENROD_DEPT_STORE_1F, 4, 8 ; 11
+ mapconst GOLDENROD_DEPT_STORE_2F, 4, 8 ; 12
+ mapconst GOLDENROD_DEPT_STORE_3F, 4, 8 ; 13
+ mapconst GOLDENROD_DEPT_STORE_4F, 4, 8 ; 14
+ mapconst GOLDENROD_DEPT_STORE_5F, 4, 8 ; 15
+ mapconst GOLDENROD_DEPT_STORE_6F, 4, 8 ; 16
+ mapconst GOLDENROD_DEPT_STORE_ELEVATOR, 2, 2 ; 17
+ mapconst GOLDENROD_DEPT_STORE_ROOF, 4, 8 ; 18
+ mapconst GOLDENROD_GAME_CORNER, 7, 10 ; 19
+ mapconst GOLDENROD_POKECENTER_1F, 4, 5 ; 20
+ mapconst GOLDENROD_POKECOM_CENTER_2F_MOBILE, 16, 16 ; 21
+ mapconst ILEX_FOREST_AZALEA_GATE, 4, 5 ; 22
+ mapconst ROUTE_34_ILEX_FOREST_GATE, 4, 5 ; 23
+ mapconst DAY_CARE, 4, 5 ; 24
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_PATH_ENTRANCE, 4, 4 ; 13
+ mapconst ROUTE_6, 9, 10 ; 1
+ mapconst ROUTE_11, 9, 20 ; 2
+ mapconst VERMILION_CITY, 18, 20 ; 3
+ mapconst VERMILION_HOUSE_FISHING_SPEECH_HOUSE, 4, 4 ; 4
+ mapconst VERMILION_POKECENTER_1F, 4, 5 ; 5
+ mapconst VERMILION_POKECENTER_2F_BETA, 4, 8 ; 6
+ mapconst POKEMON_FAN_CLUB, 4, 5 ; 7
+ mapconst VERMILION_MAGNET_TRAIN_SPEECH_HOUSE, 4, 4 ; 8
+ mapconst VERMILION_MART, 4, 6 ; 9
+ mapconst VERMILION_HOUSE_DIGLETTS_CAVE_SPEECH_HOUSE, 4, 4 ; 10
+ mapconst VERMILION_GYM, 9, 5 ; 11
+ mapconst ROUTE_6_SAFFRON_GATE, 4, 5 ; 12
+ mapconst ROUTE_6_UNDERGROUND_PATH_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
+ mapconst ROUTE_1, 18, 10 ; 1
+ mapconst PALLET_TOWN, 9, 10 ; 2
+ mapconst REDS_HOUSE_1F, 4, 4 ; 3
+ mapconst REDS_HOUSE_2F, 4, 4 ; 4
+ mapconst BLUES_HOUSE, 4, 4 ; 5
+ mapconst 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
+ mapconst ROUTE_3, 9, 30 ; 1
+ mapconst PEWTER_CITY, 18, 20 ; 2
+ mapconst PEWTER_NIDORAN_SPEECH_HOUSE, 4, 4 ; 3
+ mapconst PEWTER_GYM, 7, 5 ; 4
+ mapconst PEWTER_MART, 4, 6 ; 5
+ mapconst PEWTER_POKECENTER_1F, 4, 5 ; 6
+ mapconst PEWTER_POKECENTER_2F_BETA, 4, 8 ; 7
+ mapconst 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
+ mapconst OLIVINE_PORT, 18, 10 ; 1
+ mapconst VERMILION_PORT, 18, 10 ; 2
+ mapconst FAST_SHIP_1F, 9, 16 ; 3
+ mapconst FAST_SHIP_CABINS_NNW_NNE_NE, 16, 4 ; 4
+ mapconst FAST_SHIP_CABINS_SW_SSW_NW, 16, 4 ; 5
+ mapconst FAST_SHIP_CABINS_SE_SSE_CAPTAINS_CABIN, 17, 5 ; 6
+ mapconst FAST_SHIP_B1F, 8, 16 ; 7
+ mapconst OLIVINE_PORT_PASSAGE, 9, 10 ; 8
+ mapconst VERMILION_PORT_PASSAGE, 9, 10 ; 9
+ mapconst MOUNT_MOON_SQUARE, 9, 15 ; 10
+ mapconst MOUNT_MOON_GIFT_SHOP, 4, 4 ; 11
+ mapconst 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
+ mapconst ROUTE_23, 9, 10 ; 1
+ mapconst INDIGO_PLATEAU_POKECENTER_1F, 7, 9 ; 2
+ mapconst WILLS_ROOM, 9, 5 ; 3
+ mapconst KOGAS_ROOM, 9, 5 ; 4
+ mapconst BRUNOS_ROOM, 9, 5 ; 5
+ mapconst KARENS_ROOM, 9, 5 ; 6
+ mapconst LANCES_ROOM, 12, 5 ; 7
+ mapconst 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
+ mapconst ROUTE_13, 9, 30 ; 1
+ mapconst ROUTE_14, 18, 10 ; 2
+ mapconst ROUTE_15, 9, 20 ; 3
+ mapconst ROUTE_18, 9, 10 ; 4
+ mapconst FUCHSIA_CITY, 18, 20 ; 5
+ mapconst FUCHSIA_MART, 4, 6 ; 6
+ mapconst SAFARI_ZONE_MAIN_OFFICE, 4, 4 ; 7
+ mapconst FUCHSIA_GYM, 9, 5 ; 8
+ mapconst FUCHSIA_BILL_SPEECH_HOUSE, 4, 4 ; 9
+ mapconst FUCHSIA_POKECENTER_1F, 4, 5 ; 10
+ mapconst FUCHSIA_POKECENTER_2F_BETA, 4, 8 ; 11
+ mapconst SAFARI_ZONE_WARDENS_HOME, 4, 5 ; 12
+ mapconst 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
+ mapconst ROUTE_8, 9, 20 ; 1
+ mapconst ROUTE_12, 27, 10 ; 2
+ mapconst ROUTE_10_SOUTH, 9, 10 ; 3
+ mapconst LAVENDER_TOWN, 9, 10 ; 4
+ mapconst LAVENDER_POKECENTER_1F, 4, 5 ; 5
+ mapconst LAVENDER_POKECENTER_2F_BETA, 4, 8 ; 6
+ mapconst MR_FUJIS_HOUSE, 4, 5 ; 7
+ mapconst LAVENDER_SPEECH_HOUSE, 4, 4 ; 8
+ mapconst LAVENDER_NAME_RATER, 4, 4 ; 9
+ mapconst LAVENDER_MART, 4, 6 ; 10
+ mapconst SOUL_HOUSE, 4, 5 ; 11
+ mapconst LAV_RADIO_TOWER_1F, 4, 10 ; 12
+ mapconst ROUTE_8_SAFFRON_GATE, 4, 5 ; 13
+ mapconst 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
+ mapconst ROUTE_28, 9, 20 ; 1
+ mapconst SILVER_CAVE_OUTSIDE, 18, 20 ; 2
+ mapconst SILVER_CAVE_POKECENTER_1F, 4, 5 ; 3
+ mapconst 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
- mapgroup MOBILE_TRADE_ROOM_MOBILE, 4, 5 ; 5
- mapgroup MOBILE_BATTLE_ROOM, 4, 5 ; 6
+ mapconst POKECENTER_2F, 4, 8 ; 1
+ mapconst TRADE_CENTER, 4, 5 ; 2
+ mapconst COLOSSEUM, 4, 5 ; 3
+ mapconst TIME_CAPSULE, 4, 5 ; 4
+ mapconst MOBILE_TRADE_ROOM_MOBILE, 4, 5 ; 5
+ mapconst MOBILE_BATTLE_ROOM, 4, 5 ; 6
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
+ mapconst ROUTE_7, 9, 10 ; 1
+ mapconst ROUTE_16, 9, 10 ; 2
+ mapconst ROUTE_17, 45, 10 ; 3
+ mapconst CELADON_CITY, 18, 20 ; 4
+ mapconst CELADON_DEPT_STORE_1F, 4, 8 ; 5
+ mapconst CELADON_DEPT_STORE_2F, 4, 8 ; 6
+ mapconst CELADON_DEPT_STORE_3F, 4, 8 ; 7
+ mapconst CELADON_DEPT_STORE_4F, 4, 8 ; 8
+ mapconst CELADON_DEPT_STORE_5F, 4, 8 ; 9
+ mapconst CELADON_DEPT_STORE_6F, 4, 8 ; 10
+ mapconst CELADON_DEPT_STORE_ELEVATOR, 2, 2 ; 11
+ mapconst CELADON_MANSION_1F, 5, 4 ; 12
+ mapconst CELADON_MANSION_2F, 5, 4 ; 13
+ mapconst CELADON_MANSION_3F, 5, 4 ; 14
+ mapconst CELADON_MANSION_ROOF, 5, 4 ; 15
+ mapconst CELADON_MANSION_ROOF_HOUSE, 4, 4 ; 16
+ mapconst CELADON_POKECENTER_1F, 4, 5 ; 17
+ mapconst CELADON_POKECENTER_2F_BETA, 4, 8 ; 18
+ mapconst CELADON_GAME_CORNER, 7, 10 ; 19
+ mapconst CELADON_GAME_CORNER_PRIZE_ROOM, 3, 3 ; 20
+ mapconst CELADON_GYM, 9, 5 ; 21
+ mapconst CELADON_CAFE, 4, 6 ; 22
+ mapconst ROUTE_16_FUCHSIA_SPEECH_HOUSE, 4, 4 ; 23
+ mapconst ROUTE_16_GATE, 4, 5 ; 24
+ mapconst ROUTE_7_SAFFRON_GATE, 4, 5 ; 25
+ mapconst ROUTE_17_ROUTE_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
- mapgroup POKE_SEERS_HOUSE, 4, 4 ; 10
- mapgroup BATTLE_TOWER_1F, 5, 8 ; 11
- mapgroup BATTLE_TOWER_BATTLE_ROOM, 4, 4 ; 12
- mapgroup BATTLE_TOWER_ELEVATOR, 2, 2 ; 13
- mapgroup BATTLE_TOWER_HALLWAY, 2, 11 ; 14
- mapgroup ROUTE_40_BATTLE_TOWER_GATE, 4, 5 ; 15
- mapgroup BATTLE_TOWER_OUTSIDE, 14, 10 ; 16
+ mapconst ROUTE_40, 18, 10 ; 1
+ mapconst ROUTE_41, 27, 25 ; 2
+ mapconst CIANWOOD_CITY, 27, 15 ; 3
+ mapconst MANIAS_HOUSE, 4, 4 ; 4
+ mapconst CIANWOOD_GYM, 9, 5 ; 5
+ mapconst CIANWOOD_POKECENTER_1F, 4, 5 ; 6
+ mapconst CIANWOOD_PHARMACY, 4, 4 ; 7
+ mapconst CIANWOOD_PHOTO_STUDIO, 4, 4 ; 8
+ mapconst CIANWOOD_LUGIA_SPEECH_HOUSE, 4, 4 ; 9
+ mapconst POKE_SEERS_HOUSE, 4, 4 ; 10
+ mapconst BATTLE_TOWER_1F, 5, 8 ; 11
+ mapconst BATTLE_TOWER_BATTLE_ROOM, 4, 4 ; 12
+ mapconst BATTLE_TOWER_ELEVATOR, 2, 2 ; 13
+ mapconst BATTLE_TOWER_HALLWAY, 2, 11 ; 14
+ mapconst ROUTE_40_BATTLE_TOWER_GATE, 4, 5 ; 15
+ mapconst BATTLE_TOWER_OUTSIDE, 14, 10 ; 16
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
+ mapconst ROUTE_2, 27, 10 ; 1
+ mapconst ROUTE_22, 9, 20 ; 2
+ mapconst VIRIDIAN_CITY, 18, 20 ; 3
+ mapconst VIRIDIAN_GYM, 9, 5 ; 4
+ mapconst VIRIDIAN_NICKNAME_SPEECH_HOUSE, 4, 4 ; 5
+ mapconst TRAINER_HOUSE_1F, 7, 5 ; 6
+ mapconst TRAINER_HOUSE_B1F, 8, 5 ; 7
+ mapconst VIRIDIAN_MART, 4, 6 ; 8
+ mapconst VIRIDIAN_POKECENTER_1F, 4, 5 ; 9
+ mapconst VIRIDIAN_POKECENTER_2F_BETA, 4, 8 ; 10
+ mapconst ROUTE_2_NUGGET_SPEECH_HOUSE, 4, 4 ; 11
+ mapconst ROUTE_2_GATE, 4, 5 ; 12
+ mapconst 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
+ mapconst ROUTE_26, 54, 10 ; 1
+ mapconst ROUTE_27, 9, 40 ; 2
+ mapconst ROUTE_29, 9, 30 ; 3
+ mapconst NEW_BARK_TOWN, 9, 10 ; 4
+ mapconst ELMS_LAB, 6, 5 ; 5
+ mapconst KRISS_HOUSE_1F, 4, 5 ; 6
+ mapconst KRISS_HOUSE_2F, 3, 4 ; 7
+ mapconst KRISS_NEIGHBORS_HOUSE, 4, 4 ; 8
+ mapconst ELMS_HOUSE, 4, 4 ; 9
+ mapconst ROUTE_26_HEAL_SPEECH_HOUSE, 4, 4 ; 10
+ mapconst ROUTE_26_DAY_OF_WEEK_SIBLINGS_HOUSE, 4, 4 ; 11
+ mapconst ROUTE_27_SANDSTORM_HOUSE, 4, 4 ; 12
+ mapconst ROUTE_29_ROUTE_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_PATH_ENTRANCE, 4, 4 ; 13
- mapgroup ROUTE_5_SAFFRON_CITY_GATE, 4, 5 ; 14
- mapgroup ROUTE_5_CLEANSE_TAG_SPEECH_HOUSE, 4, 4 ; 15
+ mapconst ROUTE_5, 9, 10 ; 1
+ mapconst SAFFRON_CITY, 18, 20 ; 2
+ mapconst FIGHTING_DOJO, 6, 5 ; 3
+ mapconst SAFFRON_GYM, 9, 10 ; 4
+ mapconst SAFFRON_MART, 4, 6 ; 5
+ mapconst SAFFRON_POKECENTER_1F, 4, 5 ; 6
+ mapconst SAFFRON_POKECENTER_2F_BETA, 4, 8 ; 7
+ mapconst MR_PSYCHICS_HOUSE, 4, 4 ; 8
+ mapconst SAFFRON_MAGNET_TRAIN_STATION, 9, 10 ; 9
+ mapconst SILPH_CO_1F, 4, 8 ; 10
+ mapconst COPYCATS_HOUSE_1F, 4, 4 ; 11
+ mapconst COPYCATS_HOUSE_2F, 3, 5 ; 12
+ mapconst ROUTE_5_UNDERGROUND_PATH_ENTRANCE, 4, 4 ; 13
+ mapconst ROUTE_5_SAFFRON_GATE, 4, 5 ; 14
+ mapconst 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
+ mapconst ROUTE_30, 27, 10 ; 1
+ mapconst ROUTE_31, 9, 20 ; 2
+ mapconst CHERRYGROVE_CITY, 9, 20 ; 3
+ mapconst CHERRYGROVE_MART, 4, 6 ; 4
+ mapconst CHERRYGROVE_POKECENTER_1F, 4, 5 ; 5
+ mapconst CHERRYGROVE_GYM_SPEECH_HOUSE, 4, 4 ; 6
+ mapconst GUIDE_GENTS_HOUSE, 4, 4 ; 7
+ mapconst CHERRYGROVE_EVOLUTION_SPEECH_HOUSE, 4, 4 ; 8
+ mapconst ROUTE_30_BERRY_SPEECH_HOUSE, 4, 4 ; 9
+ mapconst MR_POKEMONS_HOUSE, 4, 4 ; 10
+ mapconst ROUTE_31_VIOLET_GATE, 4, 5 ; 11
diff --git a/constants/map_data_constants.asm b/constants/map_data_constants.asm
index 5a1ec6ede..7bb9dbd70 100644
--- a/constants/map_data_constants.asm
+++ b/constants/map_data_constants.asm
@@ -3,18 +3,19 @@ MAP_N_A EQU -1
GROUP_NONE EQU 0
MAP_NONE EQU 0
-; map header struct members (see maps/map_headers.asm)
+
+; map header struct members (see data/maps/definitions.asm)
const_def
- const MAPHEADER_MAPHEADER2_BANK ; 0
- const MAPHEADER_TILESET ; 1
- const MAPHEADER_ENVIRONMENT ; 2
- const MAPHEADER_MAPHEADER2 ; 3
- const MAPHEADER_MAPHEADER2_HI ; 4
- const MAPHEADER_LOCATION ; 5
- const MAPHEADER_MUSIC ; 6
- const MAPHEADER_PALETTE ; 7
- const MAPHEADER_FISHGROUP ; 8
-NUM_MAPHEADER_ATTRIBUTES EQU const_value
+ const MAPDEF_MAPDATA_BANK ; 0
+ const MAPDEF_TILESET ; 1
+ const MAPDEF_ENVIRONMENT ; 2
+ const MAPDEF_MAPDATA ; 3
+ const MAPDEF_MAPDATA_HI ; 4
+ const MAPDEF_LOCATION ; 5
+ const MAPDEF_MUSIC ; 6
+ const MAPDEF_PALETTE ; 7
+ const MAPDEF_FISHGROUP ; 8
+NUM_MAPDEF_ATTRIBUTES EQU const_value
; map environments (wEnvironment)
const_value set 1
@@ -52,7 +53,7 @@ const_value set 1
const FISHGROUP_QWILFISH_NO_SWARM
-; connection directions
+; connection directions (see data/maps/data.asm)
const_def
const EAST_F
const WEST_F
@@ -67,6 +68,71 @@ const_value set 1
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
+ const SPAWN_BLACKTHORN
+ const SPAWN_MT_SILVER
+ const SPAWN_FAST_SHIP
+NUM_SPAWNS EQU const_value
+
+
+; outdoor sprite limits (see engine/overworld.asm)
+MAX_OUTDOOR_SPRITES EQU 23
+SPRITE_GFX_LIST_CAPACITY EQU $20
+
+
+; 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
+
+MAPOBJECT_SCREEN_HEIGHT EQU 11
+MAPOBJECT_SCREEN_WIDTH EQU 12
+
+
; object_struct members (see macros/wram.asm)
const_def
const OBJECT_SPRITE ; 00
@@ -102,30 +168,9 @@ const_value set 1
const OBJECT_1E ; 1e
const OBJECT_1F ; 1f
const OBJECT_RANGE ; 20
-; 33-39 are not used
-
-; 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
-
-MAPOBJECT_SCREEN_HEIGHT EQU 11
-MAPOBJECT_SCREEN_WIDTH EQU 12
+ ; 21-27 are not used
+OBJECT_STRUCT_LENGTH EQU 40
+NUM_OBJECT_STRUCTS EQU 13 ; see ObjectStructs
; object_struct OBJECT_FACING values
OW_DOWN EQU DOWN << 2
@@ -138,151 +183,3 @@ INVISIBLE EQU 0
FIXED_FACING EQU 2
SLIDING EQU 3
EMOTE_OBJECT EQU 7
-
-
-; 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
- const SPAWN_BLACKTHORN
- const SPAWN_MT_SILVER
- const SPAWN_FAST_SHIP
-NUM_SPAWNS EQU const_value
-
-
-; TryBGEvent arguments (see engine/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/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
-
-
-; Emotes indexes (see data/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
-
-; FruitTreeItems indexes (see data/items/fruit_trees.asm)
-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
-
-
-; elevator floors
-; used by `elevfloor`
- 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
-
-; 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
-
-; command queue types
-CMDQUEUE_STONETABLE EQU 2
-
-; see engine/overworld.asm
-MAX_OUTDOOR_SPRITES EQU 23
-SPRITE_GFX_LIST_CAPACITY EQU $20
diff --git a/constants/menu_constants.asm b/constants/menu_constants.asm
new file mode 100644
index 000000000..9174159ea
--- /dev/null
+++ b/constants/menu_constants.asm
@@ -0,0 +1,33 @@
+; MenuDataHeader flags
+ const_def
+ shift_const MENU_RESTORE_TILES ; Will be set if MENU_BACKUP_TILES(_2) is set.
+ shift_const MENU_UNUSED_1
+ shift_const MENU_UNUSED_2
+ shift_const MENU_NO_CLICK_SFX
+ shift_const MENU_SPRITE_ANIMS
+ shift_const MENU_UNUSED_3
+ shift_const MENU_BACKUP_TILES
+ shift_const MENU_BACKUP_TILES_2
+
+; VerticalMenu/DoNthMenu/SetUpMenu/_2DMenu MenuDataHeader2 flags
+; Per flag the comment specifies which menus actually implement it
+ const_def
+ shift_const STATICMENU_DISABLE_B ; VerticalMenu/_2DMenu
+ shift_const STATICMENU_ENABLE_SELECT ; VerticalMenu/_2DMenu
+ shift_const STATICMENU_ENABLE_LEFT_RIGHT ; DoNthMenu/SetUpMenu
+ shift_const STATICMENU_ENABLE_START ; DoNthMenu/SetUpMenu
+ shift_const STATICMENU_PLACE_TITLE ; VerticalMenu
+ shift_const STATICMENU_WRAP ; All
+ shift_const STATICMENU_NO_TOP_SPACING ; VerticalMenu/_2DMenu
+ shift_const STATICMENU_CURSOR ; VerticalMenu/_2DMenu
+
+; ScrollingMenu MenuDataHeader2 flags
+ const_def
+ shift_const SCROLLINGMENU_CALL_FUNCTION1_CANCEL
+ shift_const SCROLLINGMENU_CALL_FUNCTION3_NO_SWITCH
+ shift_const SCROLLINGMENU_ENABLE_LEFT
+ shift_const SCROLLINGMENU_ENABLE_RIGHT
+ shift_const SCROLLINGMENU_DISPLAY_ARROWS
+ shift_const SCROLLINGMENU_ENABLE_FUNCTION3
+ shift_const SCROLLINGMENU_ENABLE_START
+ shift_const SCROLLINGMENU_ENABLE_SELECT
diff --git a/constants/misc_constants.asm b/constants/misc_constants.asm
index 6289b610c..adcaf9a49 100644
--- a/constants/misc_constants.asm
+++ b/constants/misc_constants.asm
@@ -16,6 +16,9 @@ HP_GREEN EQU 0
HP_YELLOW EQU 1
HP_RED EQU 2
+; G/S version ID: 0 = Gold, 1 = Silver (used by checkver)
+GS_VERSION EQU 0
+
; save file corruption check values
SAVE_CHECK_VALUE_1 EQU 99
SAVE_CHECK_VALUE_2 EQU 127
@@ -47,7 +50,7 @@ MONS_PER_BOX EQU 20
NUM_BOXES EQU 14
; hall of fame
-HOF_MON_LENGTH = 1 + 2 + 2 + 1 + (PKMN_NAME_LENGTH +- 1) ; species, id, dvs, level, nick
+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
@@ -83,3 +86,10 @@ const_value = 1
; day-care
MAX_DAY_CARE_EXP EQU $500000
+
+; 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/music_constants.asm b/constants/music_constants.asm
index 453bf9098..83085ef0c 100644
--- a/constants/music_constants.asm
+++ b/constants/music_constants.asm
@@ -108,9 +108,13 @@
const MUSIC_BATTLE_TOWER_LOBBY ; 65
const MUSIC_MOBILE_CENTER ; 66
-; GetMapHeaderMusic picks music for this value (see home/map.asm)
+; GetMapMusic picks music for this value (see home/map.asm)
MUSIC_MAHOGANY_MART EQU $64
-; GetMapHeaderMusic picks music for this bit flag
+; ExitPokegearRadio_HandleMusic uses these values
+RESTART_MAP_MUSIC EQU $fe
+ENTER_MAP_MUSIC EQU $ff
+
+; GetMapMusic picks music for this bit flag
RADIO_TOWER_MUSIC_F EQU 7
RADIO_TOWER_MUSIC EQU 1 << RADIO_TOWER_MUSIC_F
diff --git a/constants/npctrade_constants.asm b/constants/npctrade_constants.asm
index 2da4abd64..5464e4dbb 100644
--- a/constants/npctrade_constants.asm
+++ b/constants/npctrade_constants.asm
@@ -19,3 +19,25 @@ TRADE_PADDING EQU 31
const NPCTRADE_CHRIS ; 4
const NPCTRADE_KIM ; 5
const NPCTRADE_FOREST ; 6
+
+; trade gender limits
+TRADE_EITHER_GENDER EQU 0
+TRADE_MALE_ONLY EQU 1
+TRADE_FEMALE_ONLY EQU 2
+
+; TradeTexts indexes (see engine/npctrade.asm)
+
+; trade dialogs
+ const_def
+ const TRADE_INTRO
+ const TRADE_CANCEL
+ const TRADE_WRONG
+ const TRADE_COMPLETE
+ const TRADE_AFTER
+
+; trade dialog sets
+ const_def
+ const TRADE_DIALOG_COLLECTOR
+ const TRADE_DIALOG_HAPPY
+ const TRADE_DIALOG_NEWBIE
+ const TRADE_DIALOG_GIRL
diff --git a/constants/phone_constants.asm b/constants/phone_constants.asm
index b2312ab4b..058772f2d 100644
--- a/constants/phone_constants.asm
+++ b/constants/phone_constants.asm
@@ -1,4 +1,4 @@
-; PhoneContacts indexes (see data/phone_contacts.asm)
+; PhoneContacts indexes (see data/phone/phone_contacts.asm)
const_def
const PHONE_00
const PHONE_MOM
@@ -39,7 +39,7 @@
const PHONE_PICNICKER_ERIN
const PHONE_BUENA
-; SpecialPhoneCallList indexes (see data/phone_special.asm)
+; SpecialPhoneCallList indexes (see data/phone/special_calls.asm)
const_def
const SPECIALCALL_NONE
const SPECIALCALL_POKERUS
diff --git a/constants/pokemon_constants.asm b/constants/pokemon_constants.asm
index d52086b08..d4c49c5f5 100644
--- a/constants/pokemon_constants.asm
+++ b/constants/pokemon_constants.asm
@@ -10,14 +10,14 @@
; - PokemonPalettes (see data/pokemon/palettes.asm)
; - PokedexDataPointerTable (see data/pokemon/dex_entry_pointers.asm)
; - AlphabeticalPokedexOrder (see data/pokemon/dex_order_alpha.asm)
+; - EZChat_SortedPokemon (see data/pokemon/ezchat_order.asm)
; - NewPokedexOrder (see data/pokemon/dex_order_new.asm)
-; - Pokered_MonIndices (see data/time_capsule/mon_order.asm)
+; - Pokered_MonIndices (see data/pokemon/rby_order.asm)
; - AnimationPointers (see gfx/pokemon/anim_pointers.asm)
; - AnimationIdlePointers (see gfx/pokemon/idle_pointers.asm)
; - BitmasksPointers (see gfx/pokemon/bitmask_pointers.asm)
; - FramesPointers (see gfx/pokemon/frame_pointers.asm)
; - Footprints (see gfx/footprints.asm)
-; - SortedPokemon (see mobile/fixed_words.asm)
const_value set 1
const BULBASAUR ; 01
const IVYSAUR ; 02
@@ -170,6 +170,7 @@ const_value set 1
const DRAGONITE ; 95
const MEWTWO ; 96
const MEW ; 97
+JOHTO_POKEMON EQU const_value
const CHIKORITA ; 98
const BAYLEEF ; 99
const MEGANIUM ; 9a
diff --git a/constants/pokemon_data_constants.asm b/constants/pokemon_data_constants.asm
index 6e8c2d322..cc9e4407b 100644
--- a/constants/pokemon_data_constants.asm
+++ b/constants/pokemon_data_constants.asm
@@ -63,6 +63,10 @@ const_value set 1
const NO_EGGS ; f
+; pokedex entries (see data/pokemon/dex_entries.asm)
+NUM_DEX_ENTRY_BANKS EQU 4
+
+
; party_struct members (see macros/wram.asm)
MON_SPECIES EQUS "(PartyMon1Species - PartyMon1)"
MON_ITEM EQUS "(PartyMon1Item - PartyMon1)"
@@ -98,6 +102,21 @@ PARTYMON_STRUCT_LENGTH EQUS "(PartyMon1StatsEnd - PartyMon1)"
REDMON_STRUCT_LENGTH EQU 44
+; caught data
+
+CAUGHT_TIME_MASK EQU %11000000
+CAUGHT_LEVEL_MASK EQU %00111111
+
+CAUGHT_GENDER_MASK EQU %10000000
+CAUGHT_LOCATION_MASK EQU %01111111
+
+CAUGHT_BY_UNKNOWN EQU 0
+CAUGHT_BY_GIRL EQU 1
+CAUGHT_BY_BOY EQU 2
+
+CAUGHT_EGG_LEVEL EQU 1
+
+
; maximum number of party pokemon
PARTY_LENGTH EQU 6
@@ -123,32 +142,6 @@ const_value set 1
const ATK_EQ_DEF
-; 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
-
-
-; wild data
-
-NUM_GRASSMON EQU 7 ; data/wild/*_grass.asm table size
-NUM_WATERMON EQU 3 ; data/wild/*_water.asm table size
-
-GRASS_WILDDATA_LENGTH EQU (NUM_GRASSMON * 2 + 1) * 3 + 2
-WATER_WILDDATA_LENGTH EQU (NUM_WATERMON * 2 + 1) * 1 + 2
-
-
-; swarms
-
-SWARM_DUNSPARCE EQU 0
-SWARM_YANMA EQU 1
-
-FISHSWARM_QWILFISH EQU 1
-FISHSWARM_REMORAID EQU 2
-
-
; PokeAnims indexes (see engine/pic_animation.asm)
const_def
const ANIM_MON_SLOW
@@ -161,6 +154,7 @@ FISHSWARM_REMORAID EQU 2
const ANIM_MON_EGG1
const ANIM_MON_EGG2
+
; MonMenuOptions indexes (see engine/mon_menu.asm)
const_value set 1
; moves
@@ -192,3 +186,57 @@ MONMENU_FIELD_MOVE EQU 0
MONMENU_MENUOPTION EQU 1
NUM_MONMENU_ITEMS EQU 8
+
+
+; treemon sets
+; TreeMons indexes (see data/wild/treemons.asm)
+ const_def
+ const TREEMON_SET_CITY
+ const TREEMON_SET_CANYON
+ const TREEMON_SET_AZALEA
+ const TREEMON_SET_ROUTE
+ const TREEMON_SET_KANTO
+ const TREEMON_SET_LAKE
+ const TREEMON_SET_FOREST
+ const TREEMON_SET_ROCK
+NUM_TREEMON_SETS EQU const_value
+
+; treemon scores
+ const_def
+ const TREEMON_SCORE_BAD ; 0
+ const TREEMON_SCORE_GOOD ; 1
+ const TREEMON_SCORE_RARE ; 2
+
+
+; wild data
+
+NUM_GRASSMON EQU 7 ; data/wild/*_grass.asm table size
+NUM_WATERMON EQU 3 ; data/wild/*_water.asm table size
+
+GRASS_WILDDATA_LENGTH EQU (NUM_GRASSMON * 2 + 1) * 3 + 2
+WATER_WILDDATA_LENGTH EQU (NUM_WATERMON * 2 + 1) * 1 + 2
+
+NUM_ROAMMON_MAPS EQU 16 ; RoamMaps table size (see data/wild/roammon_maps.asm)
+
+
+; swarms
+
+SWARM_DUNSPARCE EQU 0
+SWARM_YANMA EQU 1
+
+FISHSWARM_QWILFISH EQU 1
+FISHSWARM_REMORAID EQU 2
+
+
+; 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/radio_constants.asm b/constants/radio_constants.asm
index 86817081e..d3f14e34c 100644
--- a/constants/radio_constants.asm
+++ b/constants/radio_constants.asm
@@ -1,123 +1,123 @@
-; PlayRadioShow arguments, RadioJumptable indexes (see engine/radio.asm)
+; radio channel ids
+; indexes for:
+; - RadioChannelSongs (see data/radio/channel_music.asm)
+; - PlayRadioShow/RadioJumptable (see engine/radio.asm)
+; - RadioChannels (see engine/radio.asm)
const_def
- const OAKS_POKEMON_TALK ; $00
- const POKEDEX_SHOW ; $01
- const POKEMON_MUSIC ; $02
- const LUCKY_CHANNEL ; $03
- const BUENAS_PASSWORD ; $04
- const PLACES_AND_PEOPLE ; $05
- const LETS_ALL_SING ; $06
- const ROCKET_RADIO ; $07
- const POKE_FLUTE_RADIO ; $08
- const UNOWN_RADIO ; $09
- const EVOLUTION_RADIO ; $0a
- const OAKS_POKEMON_TALK_2 ; $0b
- const OAKS_POKEMON_TALK_3 ; $0c
- const OAKS_POKEMON_TALK_4 ; $0d
- const OAKS_POKEMON_TALK_5 ; $0e
- const OAKS_POKEMON_TALK_6 ; $0f
- const OAKS_POKEMON_TALK_7 ; $10
- const OAKS_POKEMON_TALK_8 ; $11
- const OAKS_POKEMON_TALK_9 ; $12
- const POKEDEX_SHOW_2 ; $13
- const POKEDEX_SHOW_3 ; $14
- const POKEDEX_SHOW_4 ; $15
- const POKEDEX_SHOW_5 ; $16
- const POKEMON_MUSIC_2 ; $17
- const POKEMON_MUSIC_3 ; $18
- const POKEMON_MUSIC_4 ; $19
- const POKEMON_MUSIC_5 ; $1a
- const POKEMON_MUSIC_6 ; $1b
- const POKEMON_MUSIC_7 ; $1c
- const LETS_ALL_SING_2 ; $1d
- const LUCKY_NUMBER_SHOW_2 ; $1e
- const LUCKY_NUMBER_SHOW_3 ; $1f
- const LUCKY_NUMBER_SHOW_4 ; $20
- const LUCKY_NUMBER_SHOW_5 ; $21
- const LUCKY_NUMBER_SHOW_6 ; $22
- const LUCKY_NUMBER_SHOW_7 ; $23
- const LUCKY_NUMBER_SHOW_8 ; $24
- const LUCKY_NUMBER_SHOW_9 ; $25
- const LUCKY_NUMBER_SHOW_10 ; $26
- const LUCKY_NUMBER_SHOW_11 ; $27
- const LUCKY_NUMBER_SHOW_12 ; $28
- const LUCKY_NUMBER_SHOW_13 ; $29
- const LUCKY_NUMBER_SHOW_14 ; $2a
- const LUCKY_NUMBER_SHOW_15 ; $2b
- const PLACES_AND_PEOPLE_2 ; $2c
- const PLACES_AND_PEOPLE_3 ; $2d
- const PLACES_AND_PEOPLE_4 ; $2e
- const PLACES_AND_PEOPLE_5 ; $2f
- const PLACES_AND_PEOPLE_6 ; $30
- const PLACES_AND_PEOPLE_7 ; $31
- const ROCKET_RADIO_2 ; $32
- const ROCKET_RADIO_3 ; $33
- const ROCKET_RADIO_4 ; $34
- const ROCKET_RADIO_5 ; $35
- const ROCKET_RADIO_6 ; $36
- const ROCKET_RADIO_7 ; $37
- const ROCKET_RADIO_8 ; $38
- const ROCKET_RADIO_9 ; $39
- const ROCKET_RADIO_10 ; $3a
- const OAKS_POKEMON_TALK_10 ; $3b
- const OAKS_POKEMON_TALK_11 ; $3c
- const OAKS_POKEMON_TALK_12 ; $3d
- const OAKS_POKEMON_TALK_13 ; $3e
- const OAKS_POKEMON_TALK_14 ; $3f
- const BUENAS_PASSWORD_2 ; $40
- const BUENAS_PASSWORD_3 ; $41
- const BUENAS_PASSWORD_4 ; $42
- const BUENAS_PASSWORD_5 ; $43
- const BUENAS_PASSWORD_6 ; $44
- const BUENAS_PASSWORD_7 ; $45
- const BUENAS_PASSWORD_8 ; $46
- const BUENAS_PASSWORD_9 ; $47
- const BUENAS_PASSWORD_10 ; $48
- const BUENAS_PASSWORD_11 ; $49
- const BUENAS_PASSWORD_12 ; $4a
- const BUENAS_PASSWORD_13 ; $4b
- const BUENAS_PASSWORD_14 ; $4c
- const BUENAS_PASSWORD_15 ; $4d
- const BUENAS_PASSWORD_16 ; $4e
- const BUENAS_PASSWORD_17 ; $4f
- const BUENAS_PASSWORD_18 ; $50
- const BUENAS_PASSWORD_19 ; $51
- const BUENAS_PASSWORD_20 ; $52
- const BUENAS_PASSWORD_21 ; $53
- const RADIO_SCROLL ; $54
- const POKEDEX_SHOW_6 ; $55
- const POKEDEX_SHOW_7 ; $56
- const POKEDEX_SHOW_8 ; $57
+ const OAKS_POKEMON_TALK ; 00
+ const POKEDEX_SHOW ; 01
+ const POKEMON_MUSIC ; 02
+ const LUCKY_CHANNEL ; 03
+ const BUENAS_PASSWORD ; 04
+ const PLACES_AND_PEOPLE ; 05
+ const LETS_ALL_SING ; 06
+ const ROCKET_RADIO ; 07
+ const POKE_FLUTE_RADIO ; 08
+ const UNOWN_RADIO ; 09
+ const EVOLUTION_RADIO ; 0a
+; internal indexes for channel segments
+ const OAKS_POKEMON_TALK_2 ; 0b
+ const OAKS_POKEMON_TALK_3 ; 0c
+ const OAKS_POKEMON_TALK_4 ; 0d
+ const OAKS_POKEMON_TALK_5 ; 0e
+ const OAKS_POKEMON_TALK_6 ; 0f
+ const OAKS_POKEMON_TALK_7 ; 10
+ const OAKS_POKEMON_TALK_8 ; 11
+ const OAKS_POKEMON_TALK_9 ; 12
+ const POKEDEX_SHOW_2 ; 13
+ const POKEDEX_SHOW_3 ; 14
+ const POKEDEX_SHOW_4 ; 15
+ const POKEDEX_SHOW_5 ; 16
+ const POKEMON_MUSIC_2 ; 17
+ const POKEMON_MUSIC_3 ; 18
+ const POKEMON_MUSIC_4 ; 19
+ const POKEMON_MUSIC_5 ; 1a
+ const POKEMON_MUSIC_6 ; 1b
+ const POKEMON_MUSIC_7 ; 1c
+ const LETS_ALL_SING_2 ; 1d
+ const LUCKY_NUMBER_SHOW_2 ; 1e
+ const LUCKY_NUMBER_SHOW_3 ; 1f
+ const LUCKY_NUMBER_SHOW_4 ; 20
+ const LUCKY_NUMBER_SHOW_5 ; 21
+ const LUCKY_NUMBER_SHOW_6 ; 22
+ const LUCKY_NUMBER_SHOW_7 ; 23
+ const LUCKY_NUMBER_SHOW_8 ; 24
+ const LUCKY_NUMBER_SHOW_9 ; 25
+ const LUCKY_NUMBER_SHOW_10 ; 26
+ const LUCKY_NUMBER_SHOW_11 ; 27
+ const LUCKY_NUMBER_SHOW_12 ; 28
+ const LUCKY_NUMBER_SHOW_13 ; 29
+ const LUCKY_NUMBER_SHOW_14 ; 2a
+ const LUCKY_NUMBER_SHOW_15 ; 2b
+ const PLACES_AND_PEOPLE_2 ; 2c
+ const PLACES_AND_PEOPLE_3 ; 2d
+ const PLACES_AND_PEOPLE_4 ; 2e
+ const PLACES_AND_PEOPLE_5 ; 2f
+ const PLACES_AND_PEOPLE_6 ; 30
+ const PLACES_AND_PEOPLE_7 ; 31
+ const ROCKET_RADIO_2 ; 32
+ const ROCKET_RADIO_3 ; 33
+ const ROCKET_RADIO_4 ; 34
+ const ROCKET_RADIO_5 ; 35
+ const ROCKET_RADIO_6 ; 36
+ const ROCKET_RADIO_7 ; 37
+ const ROCKET_RADIO_8 ; 38
+ const ROCKET_RADIO_9 ; 39
+ const ROCKET_RADIO_10 ; 3a
+ const OAKS_POKEMON_TALK_10 ; 3b
+ const OAKS_POKEMON_TALK_11 ; 3c
+ const OAKS_POKEMON_TALK_12 ; 3d
+ const OAKS_POKEMON_TALK_13 ; 3e
+ const OAKS_POKEMON_TALK_14 ; 3f
+ const BUENAS_PASSWORD_2 ; 40
+ const BUENAS_PASSWORD_3 ; 41
+ const BUENAS_PASSWORD_4 ; 42
+ const BUENAS_PASSWORD_5 ; 43
+ const BUENAS_PASSWORD_6 ; 44
+ const BUENAS_PASSWORD_7 ; 45
+ const BUENAS_PASSWORD_8 ; 46
+ const BUENAS_PASSWORD_9 ; 47
+ const BUENAS_PASSWORD_10 ; 48
+ const BUENAS_PASSWORD_11 ; 49
+ const BUENAS_PASSWORD_12 ; 4a
+ const BUENAS_PASSWORD_13 ; 4b
+ const BUENAS_PASSWORD_14 ; 4c
+ const BUENAS_PASSWORD_15 ; 4d
+ const BUENAS_PASSWORD_16 ; 4e
+ const BUENAS_PASSWORD_17 ; 4f
+ const BUENAS_PASSWORD_18 ; 50
+ const BUENAS_PASSWORD_19 ; 51
+ const BUENAS_PASSWORD_20 ; 52
+ const BUENAS_PASSWORD_21 ; 53
+ const RADIO_SCROLL ; 54
+ const POKEDEX_SHOW_6 ; 55
+ const POKEDEX_SHOW_7 ; 56
+ const POKEDEX_SHOW_8 ; 57
-; PlayRadio arguments (see engine/pokegear.asm)
+; PlayRadio.StationPointers indexes (see engine/pokegear.asm)
const_def
const MAPRADIO_POKEMON_CHANNEL
const MAPRADIO_OAKS_MON_TALK
const MAPRADIO_POKEDEX_SHOW
- const MAPRADIO_PKMN_MUSIC
+ const MAPRADIO_POKEMON_MUSIC
const MAPRADIO_LUCKY_CHANNEL
const MAPRADIO_UNOWN
const MAPRADIO_PLACES_PEOPLE
const MAPRADIO_LETS_ALL_SING
const MAPRADIO_ROCKET
-; PasswordTable indexes (see engine/radio.asm)
- const_def
- const BUENA_STARTERS
- const BUENA_DRINKS
- const BUENA_ITEMS
- const BUENA_BALLS
- const BUENA_MON1
- const BUENA_MON2
- const BUENA_TOWNS
- const BUENA_TYPES
- const BUENA_MOVES
- const BUENA_XITEMS
- const BUENA_STATIONS
-NUM_PASSWORD_CATEGORIES EQU const_value
-NUM_PASSWORDS_PER_CATEGORY EQU 3
+; These tables in engine/radio.asm are all sized to a power of 2
+; so there's no need for a rejection sampling loop
+NUM_OAKS_MON_TALK_ADVERBS EQU 16 ; OaksPkmnTalk8.Adverbs
+NUM_OAKS_MON_TALK_ADJECTIVES EQU 16 ; OaksPkmnTalk9.Adjectives
+NUM_PNP_PEOPLE_ADJECTIVES EQU 16 ; PeoplePlaces5.Adjectives
+NUM_PNP_PLACES_ADJECTIVES EQU 16 ; PeoplePlaces7.Adjectives
+
+; BuenasPasswordTable sizes (see data/radio/buenas_passwords.asm)
+NUM_PASSWORD_CATEGORIES EQU 11
+NUM_PASSWORDS_PER_CATEGORY EQU 3
-; PasswordTable string types (see engine/radio.asm)
+; GetBuenasPassword.StringFunctionJumpTable indexes (see engine/radio.asm)
const_def
const BUENA_MON
const BUENA_ITEM
diff --git a/constants/scgb_constants.asm b/constants/scgb_constants.asm
new file mode 100755
index 000000000..e31a2139f
--- /dev/null
+++ b/constants/scgb_constants.asm
@@ -0,0 +1,150 @@
+; GetSGBLayout arguments (see engine/cgb_layouts.asm and engine/sgb_layouts.asm)
+ const_def
+ const SCGB_BATTLE_GRAYSCALE
+ const SCGB_BATTLE_COLORS
+ const SCGB_POKEGEAR_PALS
+ const SCGB_STATS_SCREEN_HP_PALS
+ const SCGB_POKEDEX
+ const SCGB_SLOT_MACHINE
+ const SCGB_06
+ const SCGB_GS_INTRO
+ const SCGB_DIPLOMA
+ const SCGB_MAPPALS
+ const SCGB_PARTY_MENU
+ const SCGB_EVOLUTION
+ const SCGB_GS_TITLE_SCREEN
+ const SCGB_0D
+ const SCGB_MOVE_LIST
+ const SCGB_0F
+ const SCGB_POKEDEX_SEARCH_OPTION
+ const SCGB_11
+ const SCGB_POKEPIC
+ const SCGB_13
+ const SCGB_PACKPALS
+ const SCGB_TRAINER_CARD
+ const SCGB_POKEDEX_UNOWN_MODE
+ const SCGB_BILLS_PC
+ const SCGB_UNOWN_PUZZLE
+ const SCGB_GAMEFREAK_LOGO
+ const SCGB_PLAYER_OR_MON_FRONTPIC_PALS
+ const SCGB_TRADE_TUBE
+ const SCGB_TRAINER_OR_MON_FRONTPIC_PALS
+ const SCGB_MYSTERY_GIFT
+ const SCGB_1E
+
+SCGB_PARTY_MENU_HP_PALS EQU -4
+SCGB_RAM EQU -1
+
+; PredefPals indexes (see gfx/sgb/predef.pal)
+; GetPredefPal arguments (see engine/color.asm)
+ const_def
+ const PREDEFPAL_00
+ const PREDEFPAL_PALLET
+ const PREDEFPAL_VIRIDIAN
+ const PREDEFPAL_PEWTER
+ const PREDEFPAL_CERULEAN
+ const PREDEFPAL_LAVENDER
+ const PREDEFPAL_VERMILION
+ const PREDEFPAL_CELADON
+ const PREDEFPAL_FUCHSIA
+ const PREDEFPAL_CINNABAR
+ const PREDEFPAL_SAFFRON
+ const PREDEFPAL_INDIGO
+ const PREDEFPAL_NEW_BARK
+ const PREDEFPAL_CHERRYGROVE
+ const PREDEFPAL_VIOLET
+ const PREDEFPAL_AZALEA
+ const PREDEFPAL_GOLDENROD
+ const PREDEFPAL_ECRUTEAK
+ const PREDEFPAL_OLIVINE
+ const PREDEFPAL_CIANWOOD
+ const PREDEFPAL_MAHOGANY
+ const PREDEFPAL_BLACKTHORN
+ const PREDEFPAL_LAKE_OF_RAGE
+ const PREDEFPAL_SILVER_CAVE
+ const PREDEFPAL_DUNGEONS
+ const PREDEFPAL_NITE
+ const PREDEFPAL_BLACKOUT
+ const PREDEFPAL_DIPLOMA ; RB_MEWMON
+ const PREDEFPAL_TRADE_TUBE ; RB_BLUEMON
+ const PREDEFPAL_POKEDEX ; RB_REDMON
+ const PREDEFPAL_RB_CYANMON
+ const PREDEFPAL_RB_PURPLEMON
+ const PREDEFPAL_RB_BROWNMON
+ const PREDEFPAL_RB_GREENMON
+ const PREDEFPAL_RB_PINKMON
+ const PREDEFPAL_RB_YELLOWMON
+ const PREDEFPAL_CGB_BADGE ; RB_GREYMON
+ const PREDEFPAL_MEWMON_NITE
+ const PREDEFPAL_BLUEMON_NITE
+ const PREDEFPAL_REDMON_NITE
+ const PREDEFPAL_CYANMON_NITE
+ const PREDEFPAL_PURPLEMON_NITE
+ const PREDEFPAL_BROWNMON_NITE
+ const PREDEFPAL_GREENMON_NITE
+ const PREDEFPAL_PINKMON_NITE
+ const PREDEFPAL_YELLOWMON_NITE
+ const PREDEFPAL_PARTY_ICON ; GREYMON_NITE
+ const PREDEFPAL_HP_GREEN
+ const PREDEFPAL_HP_YELLOW
+ const PREDEFPAL_HP_RED
+ const PREDEFPAL_POKEGEAR
+ const PREDEFPAL_33
+ const PREDEFPAL_34
+ const PREDEFPAL_GS_INTRO_GAMEFREAK_LOGO
+ const PREDEFPAL_GS_INTRO_SHELLDER_LAPRAS
+ const PREDEFPAL_37
+ const PREDEFPAL_GS_INTRO_JIGGLYPUFF_PIKACHU_BG
+ const PREDEFPAL_GS_INTRO_JIGGLYPUFF_PIKACHU_OB
+ const PREDEFPAL_GS_INTRO_STARTERS_TRANSITION
+ const PREDEFPAL_3B
+ const PREDEFPAL_PACK ; GS_INTRO_CHARIZARD
+ const PREDEFPAL_SLOT_MACHINE_0
+ const PREDEFPAL_SLOT_MACHINE_1
+ const PREDEFPAL_SLOT_MACHINE_2
+ const PREDEFPAL_SLOT_MACHINE_3
+ const PREDEFPAL_SCGB_11_0
+ const PREDEFPAL_SCGB_11_1
+ const PREDEFPAL_SCGB_11_2
+ const PREDEFPAL_SCGB_11_3
+ const PREDEFPAL_45
+ const PREDEFPAL_46
+ const PREDEFPAL_47
+ const PREDEFPAL_GS_TITLE_SCREEN_0
+ const PREDEFPAL_GS_TITLE_SCREEN_1
+ const PREDEFPAL_GS_TITLE_SCREEN_2
+ const PREDEFPAL_GS_TITLE_SCREEN_3
+ const PREDEFPAL_UNOWN_PUZZLE
+ const PREDEFPAL_4D
+ const PREDEFPAL_GAMEFREAK_LOGO
+
+; SGB system command codes
+; http://gbdev.gg8.se/wiki/articles/SGB_Functions#SGB_System_Command_Table
+ const_def
+ const SGB_PAL01
+ const SGB_PAL23
+ const SGB_PAL03
+ const SGB_PAL12
+ const SGB_ATTR_BLK
+ const SGB_ATTR_LIN
+ const SGB_ATTR_DIV
+ const SGB_ATTR_CHR
+ const SGB_SOUND
+ const SGB_SOU_TRN
+ const SGB_PAL_SET
+ const SGB_PAL_TRN
+ const SGB_ATRC_EN
+ const SGB_TEST_EN
+ const SGB_ICON_EN
+ const SGB_DATA_SND
+ const SGB_DATA_TRN
+ const SGB_MLT_REG
+ const SGB_JUMP
+ const SGB_CHR_TRN
+ const SGB_PCT_TRN
+ const SGB_ATTR_TRN
+ const SGB_ATTR_SET
+ const SGB_MASK_EN
+ const SGB_OBJ_TRN
+
+PALPACKET_LENGTH EQU $10
diff --git a/constants/script_constants.asm b/constants/script_constants.asm
index 9f7dae6d2..fd5affce6 100644
--- a/constants/script_constants.asm
+++ b/constants/script_constants.asm
@@ -2,7 +2,43 @@
PLAYER EQU 0
LAST_TALKED EQU -2
-; GetVarAction arguments (see engine/variables.asm)
+
+; memory constants
+ const_def
+ const MEM_BUFFER_0 ; use StringBuffer3
+ const MEM_BUFFER_1 ; use StringBuffer4
+ const MEM_BUFFER_2 ; use StringBuffer5
+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
+
+; checkpokeitem 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/variables.asm)
const_def
const VAR_STRINGBUFFER2 ; 00
const VAR_PARTYCOUNT ; 01
@@ -38,6 +74,7 @@ RETVAR_STRBUF2 EQU (0 << 6)
RETVAR_ADDR_DE EQU (1 << 6)
RETVAR_EXECUTE EQU (2 << 6)
+
; PlayerEventScriptPointers indexes (see engine/events.asm)
const_value set -1
const PLAYEREVENT_MAPSCRIPT
@@ -52,3 +89,183 @@ const_value set -1
const PLAYEREVENT_HATCH
const PLAYEREVENT_JOYCHANGEFACING
NUM_PLAYER_EVENTS EQU const_value
+
+
+; TryBGEvent arguments (see engine/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/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
+
+
+; 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_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
+
+
+; describedecoration arguments
+; DescribeDecoration.JumpTable indexes (see engine/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
+
+
+; elevfloor macro values
+; ElevatorFloorNames indexes (see data/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
+
+
+; 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
+
+; command queue types
+CMDQUEUE_STONETABLE EQU 2
+
+
+; SpecialGameboyCheck return values
+ const_def
+ const GBCHECK_GB ; 0
+ const GBCHECK_SGB ; 1
+ const GBCHECK_CGB ; 2
+
+; Special_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
+
+; Special_UnownPuzzle writebyte arguments
+; LoadUnownPuzzlePiecesGFX.LZPointers indexes (see engine/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
+
+; Special_DisplayUnownWords writebyte arguments
+; UnownWalls and MenuDataHeaders_UnownWalls indexes (see data/unown_walls.asm)
+ const_def
+ const UNOWNWORDS_ESCAPE ; 0
+ const UNOWNWORDS_LIGHT ; 1
+ const UNOWNWORDS_WATER ; 2
+ const UNOWNWORDS_HO_OH ; 3
+
+; Special_MoveTutor writebyte arguments
+const_value set 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
index e7b4c4b2c..757292ee9 100644
--- a/constants/serial_constants.asm
+++ b/constants/serial_constants.asm
@@ -6,7 +6,25 @@
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/sfx_constants.asm b/constants/sfx_constants.asm
index 0dee70793..9d98e147d 100644
--- a/constants/sfx_constants.asm
+++ b/constants/sfx_constants.asm
@@ -180,7 +180,7 @@
const SFX_ENCORE ; b0
const SFX_BEAT_UP ; b1
const SFX_BATON_PASS ; b2
- const SFX_BALL_WIGGLE ; b3
+ const SFX_BALL_WOBBLE ; b3
const SFX_SWEET_SCENT ; b4
const SFX_SWEET_SCENT_2 ; b5
const SFX_HIT_END_OF_EXP_BAR ; b6
diff --git a/constants/sprite_anim_constants.asm b/constants/sprite_anim_constants.asm
index 8bb2aed35..8be0f312a 100644
--- a/constants/sprite_anim_constants.asm
+++ b/constants/sprite_anim_constants.asm
@@ -16,301 +16,303 @@
const SPRITEANIMSTRUCT_0D ; d
const SPRITEANIMSTRUCT_0E ; e
const SPRITEANIMSTRUCT_0F ; f
+SPRITEANIMSTRUCT_LENGTH EQU const_value
+NUM_SPRITE_ANIM_STRUCTS EQU 10 ; see wSpriteAnimationStructs
; SpriteAnimSeqData indexes (see data/sprite_anims/sequences.asm)
const_def
- const SPRITE_ANIM_INDEX_PARTY_MON ; 00
- const SPRITE_ANIM_INDEX_GS_TITLE_TRAIL ; 01
- const SPRITE_ANIM_INDEX_NAMING_SCREEN_CURSOR ; 02
- const SPRITE_ANIM_INDEX_GAMEFREAK_LOGO ; 03
- const SPRITE_ANIM_INDEX_GS_INTRO_STAR ; 04
- const SPRITE_ANIM_INDEX_GS_INTRO_SPARKLE ; 05
- const SPRITE_ANIM_INDEX_SLOTS_GOLEM ; 06
- const SPRITE_ANIM_INDEX_SLOTS_CHANSEY ; 07
- const SPRITE_ANIM_INDEX_SLOTS_EGG ; 08
- const SPRITE_ANIM_INDEX_COMPOSE_MAIL_CURSOR ; 09
- const SPRITE_ANIM_INDEX_RED_WALK ; 0a
- const SPRITE_ANIM_INDEX_UNUSED_CURSOR ; 0b
- const SPRITE_ANIM_INDEX_DUMMY_GAME ; 0c
- const SPRITE_ANIM_INDEX_POKEGEAR_ARROW ; 0d
- const SPRITE_ANIM_INDEX_TRADE_POKE_BALL ; 0e
- const SPRITE_ANIM_INDEX_TRADE_POOF ; 0f
- const SPRITE_ANIM_INDEX_TRADE_TUBE_BULGE ; 10
- const SPRITE_ANIM_INDEX_TRADEMON_ICON ; 11
- const SPRITE_ANIM_INDEX_TRADEMON_BUBBLE ; 12
- const SPRITE_ANIM_INDEX_EVOLUTION_BALL_OF_LIGHT ; 13
- const SPRITE_ANIM_INDEX_RADIO_TUNING_KNOB ; 14
- const SPRITE_ANIM_INDEX_MAGNET_TRAIN_RED ; 15
- const SPRITE_ANIM_INDEX_LEAF ; 16
- const SPRITE_ANIM_INDEX_CUT_TREE ; 17
- const SPRITE_ANIM_INDEX_FLY_LEAF ; 18
- const SPRITE_ANIM_INDEX_EGG_CRACK ; 19
- const SPRITE_ANIM_INDEX_1A ; 1a
- const SPRITE_ANIM_INDEX_HEADBUTT ; 1b
- const SPRITE_ANIM_INDEX_EGG_HATCH ; 1c
- const SPRITE_ANIM_INDEX_1D ; 1d
- const SPRITE_ANIM_INDEX_BLUE_WALK ; 1e
- const SPRITE_ANIM_INDEX_MAGNET_TRAIN_BLUE ; 1f
- const SPRITE_ANIM_INDEX_MOBILE_TRADE_SENT_BALL ; 20
- const SPRITE_ANIM_INDEX_MOBILE_TRADE_OT_BALL ; 21
- const SPRITE_ANIM_INDEX_MOBILE_22 ; 22
- const SPRITE_ANIM_INDEX_MOBILE_23 ; 23
- const SPRITE_ANIM_INDEX_MOBILE_24 ; 24
- const SPRITE_ANIM_INDEX_MOBILE_25 ; 25
- const SPRITE_ANIM_INDEX_INTRO_SUICUNE ; 26
- const SPRITE_ANIM_INDEX_INTRO_PICHU ; 27
- const SPRITE_ANIM_INDEX_INTRO_WOOPER ; 28
- const SPRITE_ANIM_INDEX_INTRO_UNOWN ; 29
- const SPRITE_ANIM_INDEX_INTRO_UNOWN_F ; 2a
- const SPRITE_ANIM_INDEX_INTRO_SUICUNE_AWAY ; 2b
- const SPRITE_ANIM_INDEX_CELEBI ; 2c
+ const SPRITE_ANIM_INDEX_PARTY_MON ; 00
+ const SPRITE_ANIM_INDEX_GS_TITLE_TRAIL ; 01
+ const SPRITE_ANIM_INDEX_NAMING_SCREEN_CURSOR ; 02
+ const SPRITE_ANIM_INDEX_GAMEFREAK_LOGO ; 03
+ const SPRITE_ANIM_INDEX_GS_INTRO_STAR ; 04
+ const SPRITE_ANIM_INDEX_GS_INTRO_SPARKLE ; 05
+ const SPRITE_ANIM_INDEX_SLOTS_GOLEM ; 06
+ const SPRITE_ANIM_INDEX_SLOTS_CHANSEY ; 07
+ const SPRITE_ANIM_INDEX_SLOTS_EGG ; 08
+ const SPRITE_ANIM_INDEX_COMPOSE_MAIL_CURSOR ; 09
+ const SPRITE_ANIM_INDEX_RED_WALK ; 0a
+ const SPRITE_ANIM_INDEX_UNUSED_CURSOR ; 0b
+ const SPRITE_ANIM_INDEX_DUMMY_GAME ; 0c
+ const SPRITE_ANIM_INDEX_POKEGEAR_ARROW ; 0d
+ const SPRITE_ANIM_INDEX_TRADE_POKE_BALL ; 0e
+ const SPRITE_ANIM_INDEX_TRADE_POOF ; 0f
+ const SPRITE_ANIM_INDEX_TRADE_TUBE_BULGE ; 10
+ const SPRITE_ANIM_INDEX_TRADEMON_ICON ; 11
+ const SPRITE_ANIM_INDEX_TRADEMON_BUBBLE ; 12
+ const SPRITE_ANIM_INDEX_EVOLUTION_BALL_OF_LIGHT ; 13
+ const SPRITE_ANIM_INDEX_RADIO_TUNING_KNOB ; 14
+ const SPRITE_ANIM_INDEX_MAGNET_TRAIN_RED ; 15
+ const SPRITE_ANIM_INDEX_LEAF ; 16
+ const SPRITE_ANIM_INDEX_CUT_TREE ; 17
+ const SPRITE_ANIM_INDEX_FLY_LEAF ; 18
+ const SPRITE_ANIM_INDEX_EGG_CRACK ; 19
+ const SPRITE_ANIM_INDEX_GS_INTRO_HO_OH ; 1a
+ const SPRITE_ANIM_INDEX_HEADBUTT ; 1b
+ const SPRITE_ANIM_INDEX_EGG_HATCH ; 1c
+ const SPRITE_ANIM_INDEX_EZCHAT_CURSOR ; 1d
+ const SPRITE_ANIM_INDEX_BLUE_WALK ; 1e
+ const SPRITE_ANIM_INDEX_MAGNET_TRAIN_BLUE ; 1f
+ const SPRITE_ANIM_INDEX_MOBILE_TRADE_SENT_BALL ; 20
+ const SPRITE_ANIM_INDEX_MOBILE_TRADE_OT_BALL ; 21
+ const SPRITE_ANIM_INDEX_MOBILE_TRADE_CABLE_BULGE ; 22
+ const SPRITE_ANIM_INDEX_MOBILE_TRADE_SENT_PULSE ; 23
+ const SPRITE_ANIM_INDEX_MOBILE_TRADE_OT_PULSE ; 24
+ const SPRITE_ANIM_INDEX_MOBILE_TRADE_PING ; 25
+ const SPRITE_ANIM_INDEX_INTRO_SUICUNE ; 26
+ const SPRITE_ANIM_INDEX_INTRO_PICHU ; 27
+ const SPRITE_ANIM_INDEX_INTRO_WOOPER ; 28
+ const SPRITE_ANIM_INDEX_INTRO_UNOWN ; 29
+ const SPRITE_ANIM_INDEX_INTRO_UNOWN_F ; 2a
+ const SPRITE_ANIM_INDEX_INTRO_SUICUNE_AWAY ; 2b
+ const SPRITE_ANIM_INDEX_CELEBI ; 2c
; DoAnimFrame.Jumptable indexes (see engine/sprite_anims.asm)
const_def
- const SPRITE_ANIM_SEQ_NULL ; 00
- const SPRITE_ANIM_SEQ_PARTY_MON ; 01
- const SPRITE_ANIM_SEQ_PARTY_MON_SWITCH ; 02
- const SPRITE_ANIM_SEQ_PARTY_MON_SELECTED ; 03
- const SPRITE_ANIM_SEQ_GS_TITLE_TRAIL ; 04
- const SPRITE_ANIM_SEQ_NAMING_SCREEN_CURSOR ; 05
- const SPRITE_ANIM_SEQ_GAMEFREAK_LOGO ; 06
- const SPRITE_ANIM_SEQ_GS_INTRO_STAR ; 07
- const SPRITE_ANIM_SEQ_GS_INTRO_SPARKLE ; 08
- const SPRITE_ANIM_SEQ_SLOTS_GOLEM ; 09
- const SPRITE_ANIM_SEQ_SLOTS_CHANSEY ; 0a
- const SPRITE_ANIM_SEQ_SLOTS_EGG ; 0b
- const SPRITE_ANIM_SEQ_MAIL_CURSOR ; 0c
- const SPRITE_ANIM_SEQ_FOR_UNUSED_CURSOR ; 0d
- const SPRITE_ANIM_SEQ_DUMMY_GAME_CURSOR ; 0e
- const SPRITE_ANIM_SEQ_POKEGEAR_ARROW ; 0f
- const SPRITE_ANIM_SEQ_TRADE_POKE_BALL ; 10
- const SPRITE_ANIM_SEQ_TRADE_TUBE_BULGE ; 11
- const SPRITE_ANIM_SEQ_TRADEMON_IN_TUBE ; 12
- const SPRITE_ANIM_SEQ_REVEAL_NEW_MON ; 13
- const SPRITE_ANIM_SEQ_RADIO_TUNING_KNOB ; 14
- const SPRITE_ANIM_SEQ_CUT_LEAVES ; 15
- const SPRITE_ANIM_SEQ_FLY_FROM ; 16
- const SPRITE_ANIM_SEQ_FLY_LEAF ; 17
- const SPRITE_ANIM_SEQ_FLY_TO ; 18
- const SPRITE_ANIM_SEQ_19 ; 19
- const SPRITE_ANIM_SEQ_1A ; 1a
- const SPRITE_ANIM_SEQ_FOR_MOBILE_23 ; 1b
- const SPRITE_ANIM_SEQ_FOR_MOBILE_24 ; 1c
- const SPRITE_ANIM_SEQ_INTRO_SUICUNE ; 1d
- const SPRITE_ANIM_SEQ_INTRO_PICHU_WOOPER ; 1e
- const SPRITE_ANIM_SEQ_CELEBI ; 1f
- const SPRITE_ANIM_SEQ_INTRO_UNOWN ; 20
- const SPRITE_ANIM_SEQ_INTRO_UNOWN_F ; 21
- const SPRITE_ANIM_SEQ_INTRO_SUICUNE_AWAY ; 22
+ const SPRITE_ANIM_SEQ_NULL ; 00
+ const SPRITE_ANIM_SEQ_PARTY_MON ; 01
+ const SPRITE_ANIM_SEQ_PARTY_MON_SWITCH ; 02
+ const SPRITE_ANIM_SEQ_PARTY_MON_SELECTED ; 03
+ const SPRITE_ANIM_SEQ_GS_TITLE_TRAIL ; 04
+ const SPRITE_ANIM_SEQ_NAMING_SCREEN_CURSOR ; 05
+ const SPRITE_ANIM_SEQ_GAMEFREAK_LOGO ; 06
+ const SPRITE_ANIM_SEQ_GS_INTRO_STAR ; 07
+ const SPRITE_ANIM_SEQ_GS_INTRO_SPARKLE ; 08
+ const SPRITE_ANIM_SEQ_SLOTS_GOLEM ; 09
+ const SPRITE_ANIM_SEQ_SLOTS_CHANSEY ; 0a
+ const SPRITE_ANIM_SEQ_SLOTS_EGG ; 0b
+ const SPRITE_ANIM_SEQ_MAIL_CURSOR ; 0c
+ const SPRITE_ANIM_SEQ_UNUSED_CURSOR ; 0d
+ const SPRITE_ANIM_SEQ_DUMMY_GAME_CURSOR ; 0e
+ const SPRITE_ANIM_SEQ_POKEGEAR_ARROW ; 0f
+ const SPRITE_ANIM_SEQ_TRADE_POKE_BALL ; 10
+ const SPRITE_ANIM_SEQ_TRADE_TUBE_BULGE ; 11
+ const SPRITE_ANIM_SEQ_TRADEMON_IN_TUBE ; 12
+ const SPRITE_ANIM_SEQ_REVEAL_NEW_MON ; 13
+ const SPRITE_ANIM_SEQ_RADIO_TUNING_KNOB ; 14
+ const SPRITE_ANIM_SEQ_CUT_LEAVES ; 15
+ const SPRITE_ANIM_SEQ_FLY_FROM ; 16
+ const SPRITE_ANIM_SEQ_FLY_LEAF ; 17
+ const SPRITE_ANIM_SEQ_FLY_TO ; 18
+ const SPRITE_ANIM_SEQ_GS_INTRO_HO_OH ; 19
+ const SPRITE_ANIM_SEQ_EZCHAT_CURSOR ; 1a
+ const SPRITE_ANIM_SEQ_MOBILE_TRADE_SENT_PULSE ; 1b
+ const SPRITE_ANIM_SEQ_MOBILE_TRADE_OT_PULSE ; 1c
+ const SPRITE_ANIM_SEQ_INTRO_SUICUNE ; 1d
+ const SPRITE_ANIM_SEQ_INTRO_PICHU_WOOPER ; 1e
+ const SPRITE_ANIM_SEQ_CELEBI ; 1f
+ const SPRITE_ANIM_SEQ_INTRO_UNOWN ; 20
+ const SPRITE_ANIM_SEQ_INTRO_UNOWN_F ; 21
+ const SPRITE_ANIM_SEQ_INTRO_SUICUNE_AWAY ; 22
; SpriteAnimFrameData indexes (see data/sprite_anims/framesets.asm)
const_def
- const SPRITE_ANIM_FRAMESET_00
- const SPRITE_ANIM_FRAMESET_PARTY_MON ; 01
- const SPRITE_ANIM_FRAMESET_PARTY_MON_WITH_MAIL ; 02
- const SPRITE_ANIM_FRAMESET_PARTY_MON_WITH_ITEM ; 03
- const SPRITE_ANIM_FRAMESET_PARTY_MON_FAST ; 04
+ const SPRITE_ANIM_FRAMESET_00 ; 00
+ const SPRITE_ANIM_FRAMESET_PARTY_MON ; 01
+ const SPRITE_ANIM_FRAMESET_PARTY_MON_WITH_MAIL ; 02
+ const SPRITE_ANIM_FRAMESET_PARTY_MON_WITH_ITEM ; 03
+ const SPRITE_ANIM_FRAMESET_PARTY_MON_FAST ; 04
const SPRITE_ANIM_FRAMESET_PARTY_MON_WITH_MAIL_FAST ; 05
const SPRITE_ANIM_FRAMESET_PARTY_MON_WITH_ITEM_FAST ; 06
- const SPRITE_ANIM_FRAMESET_GS_TITLE_TRAIL ; 07
- const SPRITE_ANIM_FRAMESET_TEXT_ENTRY_CURSOR ; 08
- const SPRITE_ANIM_FRAMESET_09
- const SPRITE_ANIM_FRAMESET_GAMEFREAK_LOGO ; 0a
- const SPRITE_ANIM_FRAMESET_GS_INTRO_STAR ; 0b
- const SPRITE_ANIM_FRAMESET_GS_INTRO_SPARKLE ; 0c
- const SPRITE_ANIM_FRAMESET_SLOTS_GOLEM ; 0d
- const SPRITE_ANIM_FRAMESET_SLOTS_CHANSEY ; 0e
- const SPRITE_ANIM_FRAMESET_SLOTS_CHANSEY_2 ; 0f
- const SPRITE_ANIM_FRAMESET_SLOTS_EGG ; 10
- const SPRITE_ANIM_FRAMESET_RED_WALK ; 11
- const SPRITE_ANIM_FRAMESET_STILL_CURSOR ; 12
- const SPRITE_ANIM_FRAMESET_TRADE_POKE_BALL ; 13
- const SPRITE_ANIM_FRAMESET_TRADE_POKE_BALL_0 ; 14
- const SPRITE_ANIM_FRAMESET_TRADE_POOF ; 15
- const SPRITE_ANIM_FRAMESET_TRADE_TUBE_BULGE ; 16
- const SPRITE_ANIM_FRAMESET_TRADEMON_ICON ; 17
- const SPRITE_ANIM_FRAMESET_TRADEMON_BUBBLE ; 18
- const SPRITE_ANIM_FRAMESET_EVOLUTION_BALL_OF_LIGHT ; 19
- const SPRITE_ANIM_FRAMESET_RADIO_TUNING_KNOB ; 1a
- const SPRITE_ANIM_FRAMESET_MAGNET_TRAIN_RED ; 1b
- const SPRITE_ANIM_FRAMESET_1C
- const SPRITE_ANIM_FRAMESET_LEAF ; 1d
- const SPRITE_ANIM_FRAMESET_CUT_TREE ; 1e
- const SPRITE_ANIM_FRAMESET_EGG_CRACK ; 1f
- const SPRITE_ANIM_FRAMESET_EGG_HATCH ; 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_HEADBUTT ; 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_BLUE_WALK ; 2d
- const SPRITE_ANIM_FRAMESET_MAGNET_TRAIN_BLUE ; 2e
- const SPRITE_ANIM_FRAMESET_MOBILE_TRADE_SENT_BALL ; 2f
- const SPRITE_ANIM_FRAMESET_MOBILE_TRADE_OT_BALL ; 30
- const SPRITE_ANIM_FRAMESET_FOR_MOBILE_22 ; 31
- const SPRITE_ANIM_FRAMESET_FOR_MOBILE_23 ; 32
- const SPRITE_ANIM_FRAMESET_FOR_MOBILE_24 ; 33
- const SPRITE_ANIM_FRAMESET_FOR_MOBILE_25 ; 34
- const SPRITE_ANIM_FRAMESET_INTRO_SUICUNE ; 35
- const SPRITE_ANIM_FRAMESET_INTRO_SUICUNE_2 ; 36
- const SPRITE_ANIM_FRAMESET_INTRO_PICHU ; 37
- const SPRITE_ANIM_FRAMESET_INTRO_WOOPER ; 38
- const SPRITE_ANIM_FRAMESET_INTRO_UNOWN_1 ; 39
- const SPRITE_ANIM_FRAMESET_INTRO_UNOWN_2 ; 3a
- const SPRITE_ANIM_FRAMESET_INTRO_UNOWN_3 ; 3b
- const SPRITE_ANIM_FRAMESET_INTRO_UNOWN_4 ; 3c
- const SPRITE_ANIM_FRAMESET_INTRO_UNOWN_F_2 ; 3d
- const SPRITE_ANIM_FRAMESET_INTRO_SUICUNE_AWAY ; 3e
- const SPRITE_ANIM_FRAMESET_INTRO_UNOWN_F ; 3f
- const SPRITE_ANIM_FRAMESET_CELEBI_LEFT ; 40
- const SPRITE_ANIM_FRAMESET_CELEBI_RIGHT ; 41
+ const SPRITE_ANIM_FRAMESET_GS_TITLE_TRAIL ; 07
+ const SPRITE_ANIM_FRAMESET_TEXT_ENTRY_CURSOR ; 08
+ const SPRITE_ANIM_FRAMESET_TEXT_ENTRY_CURSOR_BIG ; 09
+ const SPRITE_ANIM_FRAMESET_GAMEFREAK_LOGO ; 0a
+ const SPRITE_ANIM_FRAMESET_GS_INTRO_STAR ; 0b
+ const SPRITE_ANIM_FRAMESET_GS_INTRO_SPARKLE ; 0c
+ const SPRITE_ANIM_FRAMESET_SLOTS_GOLEM ; 0d
+ const SPRITE_ANIM_FRAMESET_SLOTS_CHANSEY ; 0e
+ const SPRITE_ANIM_FRAMESET_SLOTS_CHANSEY_2 ; 0f
+ const SPRITE_ANIM_FRAMESET_SLOTS_EGG ; 10
+ const SPRITE_ANIM_FRAMESET_RED_WALK ; 11
+ const SPRITE_ANIM_FRAMESET_STILL_CURSOR ; 12
+ const SPRITE_ANIM_FRAMESET_TRADE_POKE_BALL ; 13
+ const SPRITE_ANIM_FRAMESET_TRADE_POKE_BALL_WOBBLE ; 14
+ const SPRITE_ANIM_FRAMESET_TRADE_POOF ; 15
+ const SPRITE_ANIM_FRAMESET_TRADE_TUBE_BULGE ; 16
+ const SPRITE_ANIM_FRAMESET_TRADEMON_ICON ; 17
+ const SPRITE_ANIM_FRAMESET_TRADEMON_BUBBLE ; 18
+ const SPRITE_ANIM_FRAMESET_EVOLUTION_BALL_OF_LIGHT ; 19
+ const SPRITE_ANIM_FRAMESET_RADIO_TUNING_KNOB ; 1a
+ const SPRITE_ANIM_FRAMESET_MAGNET_TRAIN_RED ; 1b
+ const SPRITE_ANIM_FRAMESET_UNUSED_1C ; 1c
+ const SPRITE_ANIM_FRAMESET_LEAF ; 1d
+ const SPRITE_ANIM_FRAMESET_CUT_TREE ; 1e
+ const SPRITE_ANIM_FRAMESET_EGG_CRACK ; 1f
+ const SPRITE_ANIM_FRAMESET_EGG_HATCH_1 ; 20
+ const SPRITE_ANIM_FRAMESET_EGG_HATCH_2 ; 21
+ const SPRITE_ANIM_FRAMESET_EGG_HATCH_3 ; 22
+ const SPRITE_ANIM_FRAMESET_EGG_HATCH_4 ; 23
+ const SPRITE_ANIM_FRAMESET_GS_INTRO_HO_OH ; 24
+ const SPRITE_ANIM_FRAMESET_HEADBUTT ; 25
+ const SPRITE_ANIM_FRAMESET_EZCHAT_CURSOR_1 ; 26
+ const SPRITE_ANIM_FRAMESET_EZCHAT_CURSOR_2 ; 27
+ const SPRITE_ANIM_FRAMESET_EZCHAT_CURSOR_3 ; 28
+ const SPRITE_ANIM_FRAMESET_EZCHAT_CURSOR_4 ; 29
+ const SPRITE_ANIM_FRAMESET_EZCHAT_CURSOR_5 ; 2a
+ const SPRITE_ANIM_FRAMESET_EZCHAT_CURSOR_6 ; 2b
+ const SPRITE_ANIM_FRAMESET_EZCHAT_CURSOR_7 ; 2c
+ const SPRITE_ANIM_FRAMESET_BLUE_WALK ; 2d
+ const SPRITE_ANIM_FRAMESET_MAGNET_TRAIN_BLUE ; 2e
+ const SPRITE_ANIM_FRAMESET_MOBILE_TRADE_SENT_BALL ; 2f
+ const SPRITE_ANIM_FRAMESET_MOBILE_TRADE_OT_BALL ; 30
+ const SPRITE_ANIM_FRAMESET_MOBILE_TRADE_CABLE_BULGE ; 31
+ const SPRITE_ANIM_FRAMESET_MOBILE_TRADE_SENT_PULSE ; 32
+ const SPRITE_ANIM_FRAMESET_MOBILE_TRADE_OT_PULSE ; 33
+ const SPRITE_ANIM_FRAMESET_MOBILE_TRADE_PING ; 34
+ const SPRITE_ANIM_FRAMESET_INTRO_SUICUNE ; 35
+ const SPRITE_ANIM_FRAMESET_INTRO_SUICUNE_2 ; 36
+ const SPRITE_ANIM_FRAMESET_INTRO_PICHU ; 37
+ const SPRITE_ANIM_FRAMESET_INTRO_WOOPER ; 38
+ const SPRITE_ANIM_FRAMESET_INTRO_UNOWN_1 ; 39
+ const SPRITE_ANIM_FRAMESET_INTRO_UNOWN_2 ; 3a
+ const SPRITE_ANIM_FRAMESET_INTRO_UNOWN_3 ; 3b
+ const SPRITE_ANIM_FRAMESET_INTRO_UNOWN_4 ; 3c
+ const SPRITE_ANIM_FRAMESET_INTRO_UNOWN_F_2 ; 3d
+ const SPRITE_ANIM_FRAMESET_INTRO_SUICUNE_AWAY ; 3e
+ const SPRITE_ANIM_FRAMESET_INTRO_UNOWN_F ; 3f
+ const SPRITE_ANIM_FRAMESET_CELEBI_LEFT ; 40
+ const SPRITE_ANIM_FRAMESET_CELEBI_RIGHT ; 41
; SpriteAnimOAMData indexes (see data/sprite_anims/oam.asm)
const_def
- const SPRITE_ANIM_OAMSET_RED_WALK_1 ; 00
- const SPRITE_ANIM_OAMSET_RED_WALK_2 ; 01
- const SPRITE_ANIM_OAMSET_02
- const SPRITE_ANIM_OAMSET_03
- const SPRITE_ANIM_OAMSET_04
- const SPRITE_ANIM_OAMSET_05
- const SPRITE_ANIM_OAMSET_06
- const SPRITE_ANIM_OAMSET_07
- const SPRITE_ANIM_OAMSET_08
- const SPRITE_ANIM_OAMSET_09
- const SPRITE_ANIM_OAMSET_0A
- const SPRITE_ANIM_OAMSET_0B
- const SPRITE_ANIM_OAMSET_0C
- const SPRITE_ANIM_OAMSET_0D
- const SPRITE_ANIM_OAMSET_0E
- const SPRITE_ANIM_OAMSET_0F
- const SPRITE_ANIM_OAMSET_10
- const SPRITE_ANIM_OAMSET_11
- const SPRITE_ANIM_OAMSET_12
- const SPRITE_ANIM_OAMSET_13
- const SPRITE_ANIM_OAMSET_14
- const SPRITE_ANIM_OAMSET_15
- const SPRITE_ANIM_OAMSET_16
- const SPRITE_ANIM_OAMSET_17
- const SPRITE_ANIM_OAMSET_18
- const SPRITE_ANIM_OAMSET_19
- const SPRITE_ANIM_OAMSET_1A
- const SPRITE_ANIM_OAMSET_1B
- const SPRITE_ANIM_OAMSET_1C
- const SPRITE_ANIM_OAMSET_1D
- const SPRITE_ANIM_OAMSET_GS_TITLE_TRAIL_1 ; 1e
- const SPRITE_ANIM_OAMSET_GS_TITLE_TRAIL_2 ; 1f
- const SPRITE_ANIM_OAMSET_TEXT_ENTRY_CURSOR ; 20
- const SPRITE_ANIM_OAMSET_FOR_FRAMESET_09 ; 21
- const SPRITE_ANIM_OAMSET_22
- const SPRITE_ANIM_OAMSET_GS_INTRO_STAR ; 23
- const SPRITE_ANIM_OAMSET_GS_INTRO_SPARKLE_1 ; 24
- const SPRITE_ANIM_OAMSET_GS_INTRO_SPARKLE_2 ; 25
- const SPRITE_ANIM_OAMSET_GS_INTRO_SPARKLE_3 ; 26
- const SPRITE_ANIM_OAMSET_SLOTS_GOLEM_1 ; 27
- const SPRITE_ANIM_OAMSET_SLOTS_GOLEM_2 ; 28
- const SPRITE_ANIM_OAMSET_SLOTS_CHANSEY_1 ; 29
- const SPRITE_ANIM_OAMSET_SLOTS_CHANSEY_2 ; 2a
- const SPRITE_ANIM_OAMSET_SLOTS_CHANSEY_3 ; 2b
- const SPRITE_ANIM_OAMSET_SLOTS_CHANSEY_4 ; 2c
- const SPRITE_ANIM_OAMSET_SLOTS_CHANSEY_5 ; 2d
- const SPRITE_ANIM_OAMSET_SLOTS_EGG ; 2e
- const SPRITE_ANIM_OAMSET_STILL_CURSOR ; 2f
- const SPRITE_ANIM_OAMSET_TRADE_POKE_BALL_1 ; 30
- const SPRITE_ANIM_OAMSET_TRADE_POKE_BALL_2 ; 31
- const SPRITE_ANIM_OAMSET_TRADE_POOF_1 ; 32
- const SPRITE_ANIM_OAMSET_TRADE_POOF_2 ; 33
- const SPRITE_ANIM_OAMSET_TRADE_POOF_3 ; 34
- const SPRITE_ANIM_OAMSET_35
- const SPRITE_ANIM_OAMSET_36
- const SPRITE_ANIM_OAMSET_TRADEMON_ICON_1 ; 37
- const SPRITE_ANIM_OAMSET_TRADEMON_ICON_2 ; 38
- const SPRITE_ANIM_OAMSET_TRADEMON_BUBBLE ; 39
- const SPRITE_ANIM_OAMSET_EVOLUTION_BALL_OF_LIGHT_1 ; 3a
- const SPRITE_ANIM_OAMSET_EVOLUTION_BALL_OF_LIGHT_2 ; 3b
- const SPRITE_ANIM_OAMSET_RADIO_TUNING_KNOB ; 3c
- const SPRITE_ANIM_OAMSET_PARTY_MON_WITH_MAIL_1 ; 3d
- const SPRITE_ANIM_OAMSET_PARTY_MON_WITH_MAIL_2 ; 3e
- const SPRITE_ANIM_OAMSET_PARTY_MON_WITH_ITEM_1 ; 3f
- const SPRITE_ANIM_OAMSET_PARTY_MON_WITH_ITEM_2 ; 40
- const SPRITE_ANIM_OAMSET_MAGNET_TRAIN_RED_1 ; 41
- const SPRITE_ANIM_OAMSET_MAGNET_TRAIN_RED_2 ; 42
- const SPRITE_ANIM_OAMSET_43
- const SPRITE_ANIM_OAMSET_44
- const SPRITE_ANIM_OAMSET_45
- const SPRITE_ANIM_OAMSET_46
- const SPRITE_ANIM_OAMSET_47
- const SPRITE_ANIM_OAMSET_48
- const SPRITE_ANIM_OAMSET_49
- const SPRITE_ANIM_OAMSET_4A
- const SPRITE_ANIM_OAMSET_4B
- const SPRITE_ANIM_OAMSET_4C
- const SPRITE_ANIM_OAMSET_4D
- const SPRITE_ANIM_OAMSET_4E
- const SPRITE_ANIM_OAMSET_LEAF ; 4f
- const SPRITE_ANIM_OAMSET_TREE_1 ; 50
- const SPRITE_ANIM_OAMSET_CUT_TREE_2 ; 51
- const SPRITE_ANIM_OAMSET_CUT_TREE_3 ; 52
- const SPRITE_ANIM_OAMSET_CUT_TREE_4 ; 53
- const SPRITE_ANIM_OAMSET_EGG_CRACK ; 54
- const SPRITE_ANIM_OAMSET_55
- const SPRITE_ANIM_OAMSET_56
- const SPRITE_ANIM_OAMSET_57
- const SPRITE_ANIM_OAMSET_58
- const SPRITE_ANIM_OAMSET_59
- const SPRITE_ANIM_OAMSET_5A
- const SPRITE_ANIM_OAMSET_HEADBUTT_TREE_2 ; 5b
- const SPRITE_ANIM_OAMSET_5C
- const SPRITE_ANIM_OAMSET_5D
- const SPRITE_ANIM_OAMSET_5E
- const SPRITE_ANIM_OAMSET_5F
- const SPRITE_ANIM_OAMSET_60
- const SPRITE_ANIM_OAMSET_61
- const SPRITE_ANIM_OAMSET_62
- const SPRITE_ANIM_OAMSET_BLUE_WALK_1 ; 63
- const SPRITE_ANIM_OAMSET_BLUE_WALK_2 ; 64
- const SPRITE_ANIM_OAMSET_MAGNET_TRAIN_BLUE_1 ; 65
- const SPRITE_ANIM_OAMSET_MAGNET_TRAIN_BLUE_2 ; 66
- const SPRITE_ANIM_OAMSET_FOR_MOBILE_22_1 ; 67
- const SPRITE_ANIM_OAMSET_FOR_MOBILE_22_2 ; 68
- const SPRITE_ANIM_OAMSET_FOR_MOBILE_25_1 ; 69
- const SPRITE_ANIM_OAMSET_FOR_MOBILE_25_2 ; 6a
- const SPRITE_ANIM_OAMSET_FOR_MOBILE_25_3 ; 6b
- const SPRITE_ANIM_OAMSET_FOR_MOBILE_23 ; 6c
- const SPRITE_ANIM_OAMSET_FOR_MOBILE_24 ; 6d
- const SPRITE_ANIM_OAMSET_INTRO_SUICUNE_1 ; 6e
- const SPRITE_ANIM_OAMSET_INTRO_SUICUNE_2 ; 6f
- const SPRITE_ANIM_OAMSET_INTRO_SUICUNE_3 ; 70
- const SPRITE_ANIM_OAMSET_INTRO_SUICUNE_4 ; 71
- const SPRITE_ANIM_OAMSET_INTRO_PICHU_1 ; 72
- const SPRITE_ANIM_OAMSET_INTRO_PICHU_2 ; 73
- const SPRITE_ANIM_OAMSET_INTRO_PICHU_3 ; 74
- const SPRITE_ANIM_OAMSET_INTRO_WOOPER ; 75
- const SPRITE_ANIM_OAMSET_INTRO_UNOWN_1 ; 76
- const SPRITE_ANIM_OAMSET_INTRO_UNOWN_2 ; 77
- const SPRITE_ANIM_OAMSET_INTRO_UNOWN_3 ; 78
- const SPRITE_ANIM_OAMSET_INTRO_UNOWN_F_2_1 ; 79
- const SPRITE_ANIM_OAMSET_INTRO_UNOWN_F_2_2 ; 7a
- const SPRITE_ANIM_OAMSET_INTRO_UNOWN_F_2_3 ; 7b
- const SPRITE_ANIM_OAMSET_INTRO_UNOWN_F_2_4 ; 7c
- const SPRITE_ANIM_OAMSET_INTRO_UNOWN_F_2_5 ; 7d
- const SPRITE_ANIM_OAMSET_INTRO_SUICUNE_AWAY ; 7e
- const SPRITE_ANIM_OAMSET_CELEBI_1 ; 7f
- const SPRITE_ANIM_OAMSET_CELEBI_2 ; 80
- const SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_1 ; 81
- const SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_2 ; 82
- const SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_3 ; 83
- const SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_4 ; 84
- const SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_5 ; 85
- const SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_6 ; 86
- const SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_7 ; 87
- const SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_8 ; 88
- const SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_9 ; 89
- const SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_10 ; 8A
- const SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_11 ; 8B
+ const SPRITE_ANIM_OAMSET_RED_WALK_1 ; 00
+ const SPRITE_ANIM_OAMSET_RED_WALK_2 ; 01
+ const SPRITE_ANIM_OAMSET_GS_INTRO_BUBBLE_1 ; 02
+ const SPRITE_ANIM_OAMSET_GS_INTRO_BUBBLE_2 ; 03
+ const SPRITE_ANIM_OAMSET_GS_INTRO_SHELLDER_1 ; 04
+ const SPRITE_ANIM_OAMSET_GS_INTRO_SHELLDER_2 ; 05
+ const SPRITE_ANIM_OAMSET_GS_INTRO_MAGIKARP_1 ; 06
+ const SPRITE_ANIM_OAMSET_GS_INTRO_MAGIKARP_2 ; 07
+ const SPRITE_ANIM_OAMSET_GS_INTRO_LAPRAS_1 ; 08
+ const SPRITE_ANIM_OAMSET_GS_INTRO_LAPRAS_2 ; 09
+ const SPRITE_ANIM_OAMSET_GS_INTRO_LAPRAS_3 ; 0a
+ const SPRITE_ANIM_OAMSET_GS_INTRO_LAPRAS_4 ; 0b
+ const SPRITE_ANIM_OAMSET_GS_INTRO_NOTE ; 0c
+ const SPRITE_ANIM_OAMSET_GS_INTRO_INVISIBLE_NOTE ; 0d
+ const SPRITE_ANIM_OAMSET_GS_INTRO_JIGGLYPUFF_1 ; 0e
+ const SPRITE_ANIM_OAMSET_GS_INTRO_JIGGLYPUFF_2 ; 0f
+ const SPRITE_ANIM_OAMSET_GS_INTRO_JIGGLYPUFF_3 ; 10
+ const SPRITE_ANIM_OAMSET_GS_INTRO_PIKACHU_1 ; 11
+ const SPRITE_ANIM_OAMSET_GS_INTRO_PIKACHU_2 ; 12
+ const SPRITE_ANIM_OAMSET_GS_INTRO_PIKACHU_3 ; 13
+ const SPRITE_ANIM_OAMSET_GS_INTRO_PIKACHU_4 ; 14
+ const SPRITE_ANIM_OAMSET_GS_INTRO_PIKACHU_TAIL_1 ; 15
+ const SPRITE_ANIM_OAMSET_GS_INTRO_PIKACHU_TAIL_2 ; 16
+ const SPRITE_ANIM_OAMSET_GS_INTRO_PIKACHU_TAIL_3 ; 17
+ const SPRITE_ANIM_OAMSET_GS_INTRO_SMALL_FIREBALL ; 18
+ const SPRITE_ANIM_OAMSET_GS_INTRO_MED_FIREBALL ; 19
+ const SPRITE_ANIM_OAMSET_GS_INTRO_BIG_FIREBALL ; 1a
+ const SPRITE_ANIM_OAMSET_GS_INTRO_CHIKORITA ; 1b
+ const SPRITE_ANIM_OAMSET_GS_INTRO_CYNDAQUIL ; 1c
+ const SPRITE_ANIM_OAMSET_GS_INTRO_TOTODILE ; 1d
+ const SPRITE_ANIM_OAMSET_GS_TITLE_TRAIL_1 ; 1e
+ const SPRITE_ANIM_OAMSET_GS_TITLE_TRAIL_2 ; 1f
+ const SPRITE_ANIM_OAMSET_TEXT_ENTRY_CURSOR ; 20
+ const SPRITE_ANIM_OAMSET_TEXT_ENTRY_CURSOR_BIG ; 21
+ const SPRITE_ANIM_OAMSET_GS_INTRO_GAMEFREAK_LOGO ; 22
+ const SPRITE_ANIM_OAMSET_GS_INTRO_STAR ; 23
+ const SPRITE_ANIM_OAMSET_GS_INTRO_SPARKLE_1 ; 24
+ const SPRITE_ANIM_OAMSET_GS_INTRO_SPARKLE_2 ; 25
+ const SPRITE_ANIM_OAMSET_GS_INTRO_SPARKLE_3 ; 26
+ const SPRITE_ANIM_OAMSET_SLOTS_GOLEM_1 ; 27
+ const SPRITE_ANIM_OAMSET_SLOTS_GOLEM_2 ; 28
+ const SPRITE_ANIM_OAMSET_SLOTS_CHANSEY_1 ; 29
+ const SPRITE_ANIM_OAMSET_SLOTS_CHANSEY_2 ; 2a
+ const SPRITE_ANIM_OAMSET_SLOTS_CHANSEY_3 ; 2b
+ const SPRITE_ANIM_OAMSET_SLOTS_CHANSEY_4 ; 2c
+ const SPRITE_ANIM_OAMSET_SLOTS_CHANSEY_5 ; 2d
+ const SPRITE_ANIM_OAMSET_SLOTS_EGG ; 2e
+ const SPRITE_ANIM_OAMSET_STILL_CURSOR ; 2f
+ const SPRITE_ANIM_OAMSET_TRADE_POKE_BALL_1 ; 30
+ const SPRITE_ANIM_OAMSET_TRADE_POKE_BALL_2 ; 31
+ const SPRITE_ANIM_OAMSET_TRADE_POOF_1 ; 32
+ const SPRITE_ANIM_OAMSET_TRADE_POOF_2 ; 33
+ const SPRITE_ANIM_OAMSET_TRADE_POOF_3 ; 34
+ const SPRITE_ANIM_OAMSET_TRADE_TUBE_BULGE_1 ; 35
+ const SPRITE_ANIM_OAMSET_TRADE_TUBE_BULGE_2 ; 36
+ const SPRITE_ANIM_OAMSET_TRADEMON_ICON_1 ; 37
+ const SPRITE_ANIM_OAMSET_TRADEMON_ICON_2 ; 38
+ const SPRITE_ANIM_OAMSET_TRADEMON_BUBBLE ; 39
+ const SPRITE_ANIM_OAMSET_EVOLUTION_BALL_OF_LIGHT_1 ; 3a
+ const SPRITE_ANIM_OAMSET_EVOLUTION_BALL_OF_LIGHT_2 ; 3b
+ const SPRITE_ANIM_OAMSET_RADIO_TUNING_KNOB ; 3c
+ const SPRITE_ANIM_OAMSET_PARTY_MON_WITH_MAIL_1 ; 3d
+ const SPRITE_ANIM_OAMSET_PARTY_MON_WITH_MAIL_2 ; 3e
+ const SPRITE_ANIM_OAMSET_PARTY_MON_WITH_ITEM_1 ; 3f
+ const SPRITE_ANIM_OAMSET_PARTY_MON_WITH_ITEM_2 ; 40
+ const SPRITE_ANIM_OAMSET_MAGNET_TRAIN_RED_1 ; 41
+ const SPRITE_ANIM_OAMSET_MAGNET_TRAIN_RED_2 ; 42
+ const SPRITE_ANIM_OAMSET_UNUSED_43 ; 43
+ const SPRITE_ANIM_OAMSET_UNUSED_44 ; 44
+ const SPRITE_ANIM_OAMSET_UNUSED_45 ; 45
+ const SPRITE_ANIM_OAMSET_UNUSED_46 ; 46
+ const SPRITE_ANIM_OAMSET_UNUSED_47 ; 47
+ const SPRITE_ANIM_OAMSET_UNUSED_48 ; 48
+ const SPRITE_ANIM_OAMSET_UNUSED_49 ; 49
+ const SPRITE_ANIM_OAMSET_UNUSED_4A ; 4a
+ const SPRITE_ANIM_OAMSET_UNUSED_4B ; 4b
+ const SPRITE_ANIM_OAMSET_UNUSED_4C ; 4c
+ const SPRITE_ANIM_OAMSET_UNUSED_4D ; 4d
+ const SPRITE_ANIM_OAMSET_UNUSED_4E ; 4e
+ const SPRITE_ANIM_OAMSET_LEAF ; 4f
+ const SPRITE_ANIM_OAMSET_TREE_1 ; 50
+ const SPRITE_ANIM_OAMSET_CUT_TREE_2 ; 51
+ const SPRITE_ANIM_OAMSET_CUT_TREE_3 ; 52
+ const SPRITE_ANIM_OAMSET_CUT_TREE_4 ; 53
+ const SPRITE_ANIM_OAMSET_EGG_CRACK ; 54
+ const SPRITE_ANIM_OAMSET_EGG_HATCH ; 55
+ const SPRITE_ANIM_OAMSET_GS_INTRO_HO_OH_1 ; 56
+ const SPRITE_ANIM_OAMSET_GS_INTRO_HO_OH_2 ; 57
+ const SPRITE_ANIM_OAMSET_GS_INTRO_HO_OH_3 ; 58
+ const SPRITE_ANIM_OAMSET_GS_INTRO_HO_OH_4 ; 59
+ const SPRITE_ANIM_OAMSET_GS_INTRO_HO_OH_5 ; 5a
+ const SPRITE_ANIM_OAMSET_HEADBUTT_TREE_2 ; 5b
+ const SPRITE_ANIM_OAMSET_EZCHAT_CURSOR_1 ; 5c
+ const SPRITE_ANIM_OAMSET_EZCHAT_CURSOR_2 ; 5d
+ const SPRITE_ANIM_OAMSET_EZCHAT_CURSOR_3 ; 5e
+ const SPRITE_ANIM_OAMSET_EZCHAT_CURSOR_4 ; 5f
+ const SPRITE_ANIM_OAMSET_EZCHAT_CURSOR_5 ; 60
+ const SPRITE_ANIM_OAMSET_EZCHAT_CURSOR_6 ; 61
+ const SPRITE_ANIM_OAMSET_EZCHAT_CURSOR_7 ; 62
+ const SPRITE_ANIM_OAMSET_BLUE_WALK_1 ; 63
+ const SPRITE_ANIM_OAMSET_BLUE_WALK_2 ; 64
+ const SPRITE_ANIM_OAMSET_MAGNET_TRAIN_BLUE_1 ; 65
+ const SPRITE_ANIM_OAMSET_MAGNET_TRAIN_BLUE_2 ; 66
+ const SPRITE_ANIM_OAMSET_MOBILE_TRADE_CABLE_BULGE_1 ; 67
+ const SPRITE_ANIM_OAMSET_MOBILE_TRADE_CABLE_BULGE_2 ; 68
+ const SPRITE_ANIM_OAMSET_MOBILE_TRADE_PING_1 ; 69
+ const SPRITE_ANIM_OAMSET_MOBILE_TRADE_PING_2 ; 6a
+ const SPRITE_ANIM_OAMSET_MOBILE_TRADE_PING_3 ; 6b
+ const SPRITE_ANIM_OAMSET_MOBILE_TRADE_SENT_PULSE ; 6c
+ const SPRITE_ANIM_OAMSET_MOBILE_TRADE_OT_PULSE ; 6d
+ const SPRITE_ANIM_OAMSET_INTRO_SUICUNE_1 ; 6e
+ const SPRITE_ANIM_OAMSET_INTRO_SUICUNE_2 ; 6f
+ const SPRITE_ANIM_OAMSET_INTRO_SUICUNE_3 ; 70
+ const SPRITE_ANIM_OAMSET_INTRO_SUICUNE_4 ; 71
+ const SPRITE_ANIM_OAMSET_INTRO_PICHU_1 ; 72
+ const SPRITE_ANIM_OAMSET_INTRO_PICHU_2 ; 73
+ const SPRITE_ANIM_OAMSET_INTRO_PICHU_3 ; 74
+ const SPRITE_ANIM_OAMSET_INTRO_WOOPER ; 75
+ const SPRITE_ANIM_OAMSET_INTRO_UNOWN_1 ; 76
+ const SPRITE_ANIM_OAMSET_INTRO_UNOWN_2 ; 77
+ const SPRITE_ANIM_OAMSET_INTRO_UNOWN_3 ; 78
+ const SPRITE_ANIM_OAMSET_INTRO_UNOWN_F_2_1 ; 79
+ const SPRITE_ANIM_OAMSET_INTRO_UNOWN_F_2_2 ; 7a
+ const SPRITE_ANIM_OAMSET_INTRO_UNOWN_F_2_3 ; 7b
+ const SPRITE_ANIM_OAMSET_INTRO_UNOWN_F_2_4 ; 7c
+ const SPRITE_ANIM_OAMSET_INTRO_UNOWN_F_2_5 ; 7d
+ const SPRITE_ANIM_OAMSET_INTRO_SUICUNE_AWAY ; 7e
+ const SPRITE_ANIM_OAMSET_CELEBI_1 ; 7f
+ const SPRITE_ANIM_OAMSET_CELEBI_2 ; 80
+ const SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_1 ; 81
+ const SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_2 ; 82
+ const SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_3 ; 83
+ const SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_4 ; 84
+ const SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_5 ; 85
+ const SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_6 ; 86
+ const SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_7 ; 87
+ const SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_8 ; 88
+ const SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_9 ; 89
+ const SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_10 ; 8a
+ const SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_11 ; 8b
diff --git a/constants/sprite_constants.asm b/constants/sprite_constants.asm
index e657c4027..767d7a3c6 100644
--- a/constants/sprite_constants.asm
+++ b/constants/sprite_constants.asm
@@ -1,5 +1,5 @@
; sprite ids
-; OverworldSprites indexes (see gfx/sprite_data.asm)
+; OverworldSprites indexes (see data/sprites.asm)
const_def
const SPRITE_NONE ; 00
const SPRITE_CHRIS ; 01
@@ -105,7 +105,7 @@
const SPRITE_RAIKOU ; 65
const SPRITE_STANDING_YOUNGSTER ; 66
-; SpriteMons indexes (see data/sprite_mons.asm)
+; SpriteMons indexes (see data/sprites/sprite_mons.asm)
const_value set $80
SPRITE_POKEMON EQU const_value
const SPRITE_UNOWN ; 80
diff --git a/constants/sprite_data_constants.asm b/constants/sprite_data_constants.asm
index 9ec78d1fb..db53c3ca1 100644
--- a/constants/sprite_data_constants.asm
+++ b/constants/sprite_data_constants.asm
@@ -1,4 +1,4 @@
-; overworld_sprite struct members (see gfx/sprite_data.asm)
+; overworld_sprite struct members (see data/sprites.asm)
const_def
const SPRITEDATA_ADDR ; 0
const SPRITEDATA_ADDR_HI ; 1
@@ -26,6 +26,7 @@ const_value set 1
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_value set (1 << 3)
const PAL_NPC_RED ; 8
const PAL_NPC_BLUE ; 9
@@ -36,7 +37,7 @@ const_value set (1 << 3)
const PAL_NPC_TREE ; e
const PAL_NPC_ROCK ; f
-; SpriteMovementData indexes (see data/map_objects.asm)
+; SpriteMovementData indexes (see data/sprites/map_objects.asm)
const_def
const SPRITEMOVEDATA_00 ; 00
const SPRITEMOVEDATA_ITEM_TREE ; 01
@@ -158,7 +159,7 @@ SPRITEMOVEDATA_FIELDS EQU 6
const OBJECT_ACTION_GRASS_SHAKE ; 0f
const OBJECT_ACTION_SKYFALL ; 10
-; Facings indexes (see data/facings.asm)
+; Facings indexes (see data/sprites/facings.asm)
const_def
const FACING_STEP_DOWN_0 ; 00
const FACING_STEP_DOWN_1 ; 01
diff --git a/constants/text_constants.asm b/constants/text_constants.asm
index d867c77f7..a6052065c 100644
--- a/constants/text_constants.asm
+++ b/constants/text_constants.asm
@@ -1,22 +1,23 @@
; name lengths
-NAME_LENGTH EQU 11
-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
+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)
-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
+const_value set 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
@@ -39,3 +40,7 @@ const_value set 5
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/tileset_constants.asm b/constants/tileset_constants.asm
index 90dd0f8d2..5fda5bd5b 100644
--- a/constants/tileset_constants.asm
+++ b/constants/tileset_constants.asm
@@ -1,43 +1,44 @@
-; Tilesets indexes (see tilesets/tilesets.asm)
+; Tilesets indexes (see data/tilesets.asm)
const_value set 1
- const TILESET_JOHTO_1 ; 01
- const TILESET_JOHTO_2 ; 02
+ const TILESET_JOHTO ; 01
+ const TILESET_JOHTO_MODERN ; 02
const TILESET_KANTO ; 03
const TILESET_BATTLE_TOWER_OUTSIDE ; 04
- const TILESET_HOUSE_1 ; 05
+ const TILESET_HOUSE ; 05
const TILESET_PLAYERS_HOUSE ; 06
const TILESET_POKECENTER ; 07
const TILESET_GATE ; 08
const TILESET_PORT ; 09
const TILESET_LAB ; 0a
- const TILESET_POWER_PLANT ; 0b
+ const TILESET_FACILITY ; 0b
const TILESET_MART ; 0c
- const TILESET_CELADON_MANSION ; 0d
+ const TILESET_MANSION ; 0d
const TILESET_GAME_CORNER ; 0e
- const TILESET_GYM_1 ; 0f
- const TILESET_KURTS_HOUSE ; 10
+ const TILESET_ELITE_FOUR_ROOM ; 0f
+ const TILESET_TRADITIONAL_HOUSE ; 10
const TILESET_TRAIN_STATION ; 11
- const TILESET_OLIVINE_GYM ; 12
+ const TILESET_CHAMPIONS_ROOM ; 12
const TILESET_LIGHTHOUSE ; 13
- const TILESET_PLAYERS_HOUSE_2F ; 14
+ const TILESET_PLAYERS_ROOM ; 14
const TILESET_POKECOM_CENTER ; 15
const TILESET_BATTLE_TOWER ; 16
- const TILESET_SPROUT_TOWER ; 17
+ const TILESET_TOWER ; 17
const TILESET_CAVE ; 18
const TILESET_PARK ; 19
const TILESET_RUINS_OF_ALPH ; 1a
const TILESET_RADIO_TOWER ; 1b
const TILESET_UNDERGROUND ; 1c
const TILESET_ICE_PATH ; 1d
- const TILESET_WHIRL_ISLANDS ; 1e
- const TILESET_ILEX_FOREST ; 1f
+ const TILESET_DARK_CAVE ; 1e
+ const TILESET_FOREST ; 1f
const TILESET_BETA_WORD_ROOM ; 20
const TILESET_HO_OH_WORD_ROOM ; 21
const TILESET_KABUTO_WORD_ROOM ; 22
const TILESET_OMANYTE_WORD_ROOM ; 23
const TILESET_AERODACTYL_WORD_ROOM ; 24
-; bg palette values (see tilesets/*_palette_map.asm)
+; bg palette values (see gfx/tilesets/*_palette_map.asm)
+; TilesetBGPalette indexes (see gfx/tilesets/bg_tiles.pal)
const_def
const PAL_BG_GRAY ; 0
const PAL_BG_RED ; 1
diff --git a/constants/trainer_constants.asm b/constants/trainer_constants.asm
index 2590ed34e..7976fdffa 100644
--- a/constants/trainer_constants.asm
+++ b/constants/trainer_constants.asm
@@ -12,6 +12,7 @@ ENDM
; - TrainerEncounterMusic (see data/trainers/encounter_music.asm)
; - TrainerPicPointers (see data/trainers/pic_pointers.asm)
; - TrainerPalettes (see data/trainers/palettes.asm)
+; - BTTrainerClassSprites (see data/trainers/sprites.asm)
; - BTTrainerClassGenders (see data/trainers/genders.asm)
; trainer constants are Trainers indexes, for the sub-tables of TrainerGroups (see data/trainers/parties.asm)
enum_start
@@ -25,20 +26,28 @@ CHRIS EQU __enum__
KRIS EQU __enum__
trainerclass FALKNER ; 1
+ const FALKNER1
trainerclass WHITNEY ; 2
+ const WHITNEY1
trainerclass BUGSY ; 3
+ const BUGSY1
trainerclass MORTY ; 4
+ const MORTY1
trainerclass PRYCE ; 5
+ const PRYCE1
trainerclass JASMINE ; 6
+ const JASMINE1
trainerclass CHUCK ; 7
+ const CHUCK1
trainerclass CLAIR ; 8
+ const CLAIR1
trainerclass RIVAL1 ; 9
const RIVAL1_1_CHIKORITA
@@ -60,6 +69,7 @@ KRIS EQU __enum__
trainerclass POKEMON_PROF ; a
trainerclass WILL ; b
+ const WILL1
trainerclass CAL ; c
const CAL1
@@ -67,19 +77,25 @@ KRIS EQU __enum__
const CAL3
trainerclass BRUNO ; d
+ const BRUNO1
trainerclass KAREN ; e
+ const KAREN1
trainerclass KOGA ; f
+ const KOGA1
trainerclass CHAMPION ; 10
const LANCE
trainerclass BROCK ; 11
+ const BROCK1
trainerclass MISTY ; 12
+ const MISTY1
trainerclass LT_SURGE ; 13
+ const LT_SURGE1
trainerclass SCIENTIST ; 14
const ROSS
@@ -89,6 +105,7 @@ KRIS EQU __enum__
const RICH
trainerclass ERIKA ; 15
+ const ERIKA1
trainerclass YOUNGSTER ; 16
const JOEY1
@@ -173,6 +190,7 @@ KRIS EQU __enum__
const DANA5
trainerclass JANINE ; 1a
+ const JANINE1
trainerclass COOLTRAINERM ; 1b
const NICK
@@ -305,6 +323,7 @@ KRIS EQU __enum__
const SHIRLEY
trainerclass SABRINA ; 23
+ const SABRINA1
trainerclass BUG_CATCHER ; 24
const DON
@@ -477,6 +496,7 @@ KRIS EQU __enum__
const GLENN
trainerclass BLAINE ; 2e
+ const BLAINE1
trainerclass BURGLAR ; 2f
const DUNCAN
@@ -661,8 +681,10 @@ KRIS EQU __enum__
const JAIME
trainerclass RED ; 3f
+ const RED1
trainerclass BLUE ; 40
+ const BLUE1
trainerclass OFFICER ; 41
const KEITH
diff --git a/constants/type_constants.asm b/constants/type_constants.asm
index c2cf2d709..6587c3a70 100644
--- a/constants/type_constants.asm
+++ b/constants/type_constants.asm
@@ -1,7 +1,8 @@
-; TypeNames indexes (see data/type_names.asm)
+; TypeNames indexes (see data/types/names.asm)
; also used in:
-; - TypeMatchups (see data/type_matchups.asm)
-; - Pokedex_SearchForMons.TypeConversionTable and Pokedex_PlaceSearchScreenTypeStrings.TypeStrings (see engine/pokedex.asm)
+; - PokedexTypeSearchConversionTable (see data/types/search_types.asm)
+; - PokedexTypeSearchStrings (see data/types/search_strings.asm)
+; - TypeMatchups (see data/battle/type_matchups.asm)
const_def
PHYSICAL EQU const_value
@@ -38,5 +39,6 @@ SPECIAL EQU const_value
const ICE
const DRAGON
const DARK
-
TYPES_END EQU const_value
+
+NUM_TYPES EQU TYPES_END + UNUSED_TYPES - UNUSED_TYPES_END
diff --git a/constants/wram_constants.asm b/constants/wram_constants.asm
index 8cf06db06..6faa87be4 100644
--- a/constants/wram_constants.asm
+++ b/constants/wram_constants.asm
@@ -28,6 +28,7 @@ TEXT_DELAY_SLOW EQU 5
const FRAME_6 ; 5
const FRAME_7 ; 6
const FRAME_8 ; 7
+NUM_FRAMES EQU const_value
; TextBoxFlags:
const_def
@@ -52,6 +53,7 @@ const_value set -1
const UP ; 1
const LEFT ; 2
const RIGHT ; 3
+NUM_DIRECTIONS EQU const_value
DOWN_MASK EQU 1 << DOWN
UP_MASK EQU 1 << UP
@@ -71,12 +73,15 @@ FACE_RIGHT EQU 1
const DAY_F ; 1
const NITE_F ; 2
const DARKNESS_F ; 3
+NUM_DAYTIMES EQU const_value
MORN EQU 1 << MORN_F
DAY EQU 1 << DAY_F
NITE EQU 1 << NITE_F
DARKNESS EQU 1 << DARKNESS_F
+ANYTIME EQU MORN | DAY | NITE
+
; ScriptFlags: ; d434
SCRIPT_RUNNING EQU 2
@@ -116,9 +121,6 @@ PLAYER_SKATE 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